{"version":3,"mappings":"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SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,UAAW,QACX,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACTkB,GAAI,KACJC,GAAI,KACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QA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W,GACAkG,GACAyf,GACAhB,GACAjO,EACA0V,GACA/G,GACAoX,GACAkB,GACAtK,GACA5F,GACA2P,GACA5yB,GACA8F,GACAO,GACAiB,GACAuR,GACAC,GACAC,GACAC,GACAC,GACAtZ,GACAqe,GACA+E,GACAC,GACA4C,GACAkF,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAO,GACAC,GACAC,GACAtf,GACA2O,IACA8X,IACAhmB,GACA0H,GACAqJ,GACAc,GACAqN,GACA3N,GACAgD,IACAsE,IACA5e,GACAoiB,GACAQ,GACAkI,GACAU,IACAW,IACArkB,IACA5zF,GACA1H,IACD6hF,GACHa,GACA2B,GACAoI,GACA+W,GACAoE,GACAiO,GACA5pB,GACAnK,GACAyG,GACA6J,GACAzJ,GACA6gB,GACA9Q,GACAkN,GACAV,GACAoH,GACAG,GACAF,GACAF,GACAxjB,GACA0vB,GACAuE,GACAF,GACAM,GACAhlB,GACAC,GACAC,GACA/L,GACAiM,GACAvW,GACAkG,GACAyf,GACAhB,GACAjO,EACA0V,GACA/G,GACAoX,GACAkB,GACAtK,GACA5F,GACA2P,GACA5yB,GACA8F,GACAO,GACAiB,GACAuR,GACAC,GACAC,GACAC,GACAC,GACAtZ,GACAqe,GACA+E,GACAC,GACA4C,GACAkF,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAO,GACAC,GACAC,GACAtf,GACA2O,IACA8X,IACAhmB,GACA0H,GACAqJ,GACAc,GACAqN,GACA3N,GACAgD,IACAsE,IACA5e,GACAoiB,GACAQ,GACAkI,GACAU,IACAW,IACArkB,IACAt7F,MA/KFw/a,MCn7BN,IAAI77P,IAAuB,0BACvBC,IAAoB,uBACT,iBAAqBhiJ,GAChCg5G,WACI,IAAIh7H,EAAQryE,MAAMqtM,WAClBh7H,SAAM42B,UAAY,KAEd,GADsC,SAAW/oG,KAAKszD,OAAO,yBACxB,CACjC,IAAIukL,GAA4Bz8K,QCzBzC,aAAqC76D,EAAI6+E,GAC5C,IAAI4yZ,EAAiBC,EAErB,OADW,QAAUD,EAAkB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AUzL,cAAe,IA56B/Jo6rB,MAi0CAuF,UAAN,SAEmBA,SAAiB5ksB,UAAO,SAAkCP,GAAK,OAAO,IAAKA,GAAKmlsB,IAChFA,EAAiBp2rB,UAAiCtO,MAAoB,CAAE8E,KAAM4/rB,IAC9EA,EAAiBn2rB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACzFmxI,GACA0a,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqI,GACAQ,GACA1d,GACA0kB,GACA3kB,GACAvF,GACA0U,GACA+D,GACAhG,GACAzB,GACA+F,GACAvZ,GACAuQ,GACArN,GACA8R,GACAvR,GACAxB,GACA2mB,GACAxnB,GACAqB,GACA2b,GACA3rB,GACA6kB,GACApC,GACAgY,GACAjH,GACAvY,GACAsD,GACAwB,GACApJ,GACA0B,GACA2H,GACAoD,GACArE,GACAkB,GACAY,GACAwJ,GACAtG,IACAP,IACAgC,GACA2C,GACAY,IACA+B,GACAI,GACAoC,GACAsB,GACAvY,GACAga,GACAmC,GACAyB,IACAQ,GACAc,GACAW,IACA/S,IACAuZ,IACAzG,IACA+E,GACAh2G,GACA1H,IACD+zF,GACH0a,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqI,GACAQ,GACA1d,GACA0kB,GACA3kB,GACAvF,GACA0U,GACA+D,GACAhG,GACAzB,GACA+F,GACAvZ,GACAuQ,GACArN,GACA8R,GACAvR,GACAxB,GACA2mB,GACAxnB,GACAqB,GACA2b,GACA3rB,GACA6kB,GACApC,GACAgY,GACAjH,GACAvY,GACAsD,GACAwB,GACApJ,GACA0B,GACA2H,GACAoD,GACArE,GACAkB,GACAY,GACAwJ,GACAtG,IACAP,IACAgC,GACA2C,GACAY,IACA+B,GACAI,GACAoC,GACAsB,GACAvY,GACAga,GACAmC,GACAyB,IACAQ,GACAc,GACAW,IACA/S,IACAuZ,IACAzG,IACA+E,GACA19G,MAvIF84oB,MCr0CN,MAAMv9a,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMkmrB,IAC9BzmsB,OAAO,OAMLymsB,SAAN,gBAAiCp1oB,GAC7Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,OAAQsI,KAAM,UAC3B,CAAEtI,UAAW,MAAOsI,KAAM,SAC1B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,gCACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,aACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,aACR,CAAEA,KAAM,cACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB6vP,wBACA,OAAO7vP,KAAKozD,WAAW,qBAEvBy8L,sBAAkBjjP,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCk8F,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC21kB,wBACA,OAAOvilB,KAAKozD,WAAW,qBAEvBmvhB,sBAAkB31kB,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC2jP,sBACA,OAAOvwP,KAAKozD,WAAW,mBAEvBm9L,oBAAgB3jP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCkjP,qBACA,OAAO9vP,KAAKozD,WAAW,kBAEvB08L,mBAAeljP,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCy6I,cACA,OAAOrnJ,KAAKozD,WAAW,WAEvBi0F,YAAQz6I,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BorkB,sBACA,OAAOh4kB,KAAKozD,WAAW,mBAEvB4khB,oBAAgBprkB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC4jP,uBACA,OAAOxwP,KAAKozD,WAAW,oBAEvBo9L,qBAAiB5jP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC01kB,4BACA,OAAOtilB,KAAKozD,WAAW,yBAEvBkvhB,0BAAsB11kB,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzC8vc,8BACA,OAAO18c,KAAKozD,WAAW,2BAEvBspZ,4BAAwB9vc,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3CykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B+kc,oBACA,OAAO3xc,KAAKozD,WAAW,iBAEvBu+Y,kBAAc/kc,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCwuJ,oBACA,OAAOp7J,KAAKozD,WAAW,iBAEvBgoG,kBAAcxuJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCmjP,6BACA,OAAO/vP,KAAKozD,WAAW,0BAEvB28L,2BAAuBnjP,GACvB5M,KAAK6yD,WAAW,yBAA0BjmD,GAM1CujP,sBACA,OAAOnwP,KAAKozD,WAAW,mBAEvB+8L,oBAAgBvjP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC44J,gBACA,OAAOxlK,KAAKozD,WAAW,aAEvBoyG,cAAU54J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bw/C,eACA,OAAOpsD,KAAKozD,WAAW,YAEvBhH,aAASx/C,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5By1kB,yBACA,OAAOrilB,KAAKozD,WAAW,sBAEvBivhB,uBAAmBz1kB,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3ByrI,YACA,OAAOr4I,KAAKozD,WAAW,SAEvBilF,UAAMzrI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB2pJ,gBACA,OAAOv2J,KAAKozD,WAAW,aAEvBmjG,cAAU3pJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B4N,UACA,OAAOxa,KAAKozD,WAAW,OAEvB54C,QAAI5N,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvBk5J,gBACA,OAAO9lK,KAAKozD,WAAW,aAEvB0yG,cAAUl5J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B88D,UACA,OAAO1pE,KAAKozD,WAAW,OAEvBsW,QAAI98D,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvBvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BqjP,uBACA,OAAOjwP,KAAKozD,WAAW,oBAEvB68L,qBAAiBrjP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCw1kB,iBACA,OAAOpilB,KAAKozD,WAAW,cAEvBgvhB,eAAWx1kB,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B05J,kBACA,OAAOtmK,KAAKozD,WAAW,eAEvBkzG,gBAAY15J,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bu1kB,sBACA,OAAOnilB,KAAKozD,WAAW,mBAEvB+uhB,oBAAgBv1kB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC25J,sBACA,OAAOvmK,KAAKozD,WAAW,mBAEvBmzG,oBAAgB35J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCsjP,yBACA,OAAOlwP,KAAKozD,WAAW,sBAEvB88L,uBAAmBtjP,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC65J,iBACA,OAAOzmK,KAAKozD,WAAW,cAEvBqzG,eAAW75J,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B6J,WACA,OAAOzW,KAAKozD,WAAW,QAEvB38C,SAAK7J,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB0qkB,sBACA,OAAOt3kB,KAAKozD,WAAW,mBAEvBkkhB,oBAAgB1qkB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCnB,WACA,OAAOzL,KAAKozD,WAAW,QAEvB3nD,SAAKmB,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBuwe,sBACA,OAAOn9e,KAAKozD,WAAW,mBAEvB+pb,oBAAgBvwe,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBo6J,uBACA,OAAOhnK,KAAKozD,WAAW,oBAEvB4zG,qBAAiBp6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHqlI,sBACA,OAAO7pJ,KAAKozD,WAAW,WAEvBy2F,oBAAgBj9I,GAChB5M,KAAKm0D,YAAY,UAAWvnD,GAEhCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI25qB,IAAU/jsB,EAASoqB,GAElChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,UAAWv8I,GAC7Bj2B,KAAKwyK,aAAa,gBAAiBv8I,GACnCj2B,KAAKwyK,aAAa,mBAAoBv8I,GAE1Cu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,WAClB76D,KAAKsyK,KAAKz3G,QAAQ,iBAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB0+rB,SAAmB7ksB,UAAO,SAAoCP,GAAK,OAAO,IAAKA,GAAKolsB,GAAoB3ksB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACtZ03rB,EAAmBx/pB,UAAiCnlC,MAAqB,CAAE8E,KAAM6/rB,EAAoBtlrB,UAAW,CAAC,CAAC,gBAAiBk4H,eAAgB,SAA2CxpF,EAAIv9C,EAAKgnI,GAEpN,GAFyO,EAALzpF,GAClO/tD,MAAkBw3I,EAAU4G,GAAoB,GACzC,EAALrwF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI0yI,gBAAkBzL,KAClE6vI,aAAc,SAAyCv5N,EAAIv9C,GAAgB,EAALu9C,GACvE/tD,MAAc,cAAe,SAA2DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAApHluB,CAAgI,SAAU,SAAsDkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MAC5NK,OAAQ,CAAE26N,kBAAmB,oBAAqB/mJ,UAAW,YAAaJ,mBAAoB,qBAAsB65e,kBAAmB,oBAAqBhyV,gBAAiB,kBAAmBT,eAAgB,iBAAkBzoG,QAAS,UAAW2wb,gBAAiB,kBAAmBxnV,iBAAkB,mBAAoB8xV,sBAAuB,wBAAyB5lI,wBAAyB,0BAA2BrrU,eAAgB,iBAAkBjpH,SAAU,WAAYupb,cAAe,gBAAiBv2S,cAAe,gBAAiB20F,uBAAwB,yBAA0BI,gBAAiB,kBAAmBhvJ,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB48D,UAAW,YAAap5G,SAAU,WAAYi2hB,mBAAoB,qBAAsBhsb,QAAS,UAAWoP,QAAS,UAAWptB,MAAO,QAASke,UAAW,YAAa/7I,IAAK,MAAOsrJ,UAAW,YAAap8F,IAAK,MAAOrmE,KAAM,OAAQusP,OAAQ,SAAUK,iBAAkB,mBAAoBmyV,WAAY,aAAc97a,YAAa,cAAe93E,SAAU,WAAY/pB,WAAY,aAAc09gB,gBAAiB,kBAAmB57a,gBAAiB,kBAAmB2pF,mBAAoB,qBAAsBzpF,WAAY,aAAcrnB,YAAa,cAAevwE,SAAU,WAAYp4D,KAAM,OAAQ6gkB,gBAAiB,kBAAmB7rkB,KAAM,OAAQ0xe,gBAAiB,kBAAmBx2U,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASo6J,iBAAkB,mBAAoBj4F,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE95H,SAAU,WAAYorO,SAAU,WAAYhnJ,eAAgB,iBAAkBo9D,OAAQ,SAAUC,MAAO,QAAStxE,YAAa,cAAeuxE,WAAY,aAAcl9D,UAAW,YAAaC,WAAY,aAAcxU,cAAe,gBAAiB0xE,QAAS,UAAWC,UAAW,YAAaC,QAAS,UAAWspF,SAAU,WAAYj7J,gBAAiB,kBAAmB4xE,QAAS,UAAW3R,eAAgB,iBAAkBsjW,wBAAyB,0BAA2BplV,gBAAiB,kBAAmBC,yBAA0B,2BAA4B24hB,wBAAyB,0BAA2BvzM,sBAAuB,wBAAyBC,qBAAsB,uBAAwBhqO,cAAe,gBAAiBu9a,sBAAuB,wBAAyBtzM,uBAAwB,yBAA0BuzM,4BAA6B,8BAA+BvlP,8BAA+B,gCAAiClzS,qBAAsB,uBAAwBC,eAAgB,iBAAkBkzS,oBAAqB,sBAAuBulP,oBAAqB,sBAAuBv9a,6BAA8B,+BAAgCC,sBAAuB,wBAAyBl7G,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bk7G,gBAAiB,kBAAmBo9a,eAAgB,iBAAkBC,yBAA0B,2BAA4Bp9a,cAAe,gBAAiBC,cAAe,gBAAiBC,YAAa,cAAeC,gBAAiB,kBAAmB03L,UAAW,YAAax3L,gBAAiB,kBAAmB03L,UAAW,YAAax3L,WAAY,aAAcC,aAAc,eAAgBC,uBAAwB,yBAA0B48a,iBAAkB,mBAAoB38a,kBAAmB,oBAAqBC,eAAgB,iBAAkBr7G,iBAAkB,mBAAoBg4hB,sBAAuB,wBAAyBv8a,sBAAuB,wBAAyBC,yBAA0B,2BAA4BC,iBAAkB,mBAAoBC,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBjN,WAAY,aAAc6kiB,sBAAuB,wBAAyB99P,WAAY,aAAc+9P,sBAAuB,wBAAyBp8a,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAem7H,uBAAwB,yBAA0B7lI,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACjkJ2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAqC4F,EAAIv9C,KAAUzL,cAAe,IAjuB9J4/rB,MAwgCAY,UAAN,SAEmBA,SAAgBzlsB,UAAO,SAAiCP,GAAK,OAAO,IAAKA,GAAKgmsB,IAC9EA,EAAgBj3rB,UAAiCtO,MAAoB,CAAE8E,KAAMygsB,IAC7EA,EAAgBh3rB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACxF6vI,GACAua,GACAra,GACA0I,GACA4C,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAj2F,GACA1H,IACDyyF,GACHua,GACAra,GACA0I,GACA4C,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACA39F,MAzCF25oB,MC5hCC,IAAIC,GAAsBv/rB,GAAS+pT,mBAAkC/pT,GACjEw/rB,GAAc,CAACnxa,EAAOC,KACxBD,IAAUC,GAGRS,YAAmBwwa,GAAoBlxa,GAAQkxa,GAAoBjxa,IAEnEmxa,GAAmB,CAACz/rB,EAAOypB,KAClC,IAAK43B,EAAWiyO,GAAWtzR,GACtB0/rB,EAAmBC,GAAmBl2qB,EAC3C,OAAO+1qB,GAAYn+oB,EAAWq+oB,IAAsBF,GAAYlsa,EAASqsa,IC+L7E,UA7LA,kBAAoCl1H,GAChCx3kB,YAAY+1kB,GACR91kB,QACAE,KAAK41kB,QAAUA,EACf51kB,KAAKwssB,aAAe52H,EAAQtihB,OAAO,yBAEvCwgM,YAAYA,GACR,OAAOz0O,SAAO,EAAMvf,MAAMg0P,YAAYA,GAAc,CAChD95N,SAAU,CACN5d,GAAIpc,KAAKwssB,aAAarxoB,cAIlC07gB,sBACI,IAAI41H,EACJ,QAAUA,EAAgBzssB,KAAK24U,eAAY,OAAoC8zX,EAAcrnP,6BAC7Fpld,KAAK0ssB,qBAAuB,EAEhCh2H,YACI,OAAO52kB,MAAM42kB,aAAe12kB,KAAKwssB,aAAaG,kBAAkBx7d,OAEpEglW,gBACI,OAAOxpf,QAAS,GAAI7sF,MAAMq2kB,gBAAiB,CACvCnyd,WAAY,KACR,GAAIhkH,KAAKwssB,aAAal5oB,OAAO,UACzB,OAAO,GAGfywD,UAAW,KACP,GAAI/jH,KAAKwssB,aAAal5oB,OAAO,UACzB,OAAO,GAGfoc,MAAO15D,IACH,GAAIhW,KAAKwssB,aAAal5oB,OAAO,UAAW,CACpC,IAAIyjhB,EAAe/2kB,KAAK41kB,QAAQ98H,WAAW,SAC3C94c,KAAK41kB,QAAQ3wV,yBAAyBjvO,GACtC,IAAI42rB,EAAkB5ssB,KAAK41kB,QAAQ98H,WAAW,SAE9C,OAD2BszP,GAAYr1H,EAAc61H,GAIjD5ssB,KAAKwssB,aAAaG,kBAAkBl4b,UAAUkkE,QAAQ70N,iBAAiB9tG,GAFvEhW,KAAKwssB,aAAaG,kBAAkBl4b,UAAUkkE,QAAQrlR,OAAO,QAAStzD,KAAKwssB,aAAal5oB,OAAO,WAI5F,IAGfmc,IAAKz5D,IACD,GAAKhW,KAAK6ssB,kBAAkBv5oB,OAAO,UAGnC,KAAKtzD,KAAK02kB,YAAYhrW,uBAAuBjnO,OAIzC,cAHKuR,EAAEzE,UAAYvR,KAAK6ssB,kBAAkBC,2BAA6B92rB,EAAEzE,UAAYvR,KAAK6ssB,kBAAkBE,8BACxG/ssB,KAAKwssB,aAAap9c,SAI1B,MAAKp5O,EAAEzE,UAAYvR,KAAK6ssB,kBAAkBE,6BAA+B/2rB,EAAEzE,UAAYvR,KAAK6ssB,kBAAkBC,2BAG9G,KAAIz9c,EAAoBr5O,EAAEzE,SAAWvR,KAAK6ssB,kBAAkBF,kBAAkBr9c,uBAAyBtvP,KAAK6ssB,kBAAkBF,kBAAkBp9c,wBAC5IF,IACA5gM,aAAqB4gM,EAAmB,SACxCA,EAAkB54I,UAEtBzgG,EAAEjL,sBAIdkrkB,oBACI,IACItkI,cAAeq7P,EACfpgsB,MAAOA,EACPqgsB,UAAWA,GACXjtsB,KAAKwssB,aAAal5oB,SAClBq+Y,KAAgBn5b,OAAWw0rB,GAAsBhtsB,KAAKyhd,iBAAiBurP,GAAsB,QAA+DA,OAAqB,EACrL,OAAO3trB,QAAOvf,MAAMm2kB,oBAAqB,CACrCtkI,cAAeA,EACf/kc,MAAOA,EACPu4H,cAAe,QACf82U,WAAYgxP,EAAY,EAAI,EAC5BlxP,4BAA4B,EAC5BC,kBAAmBh8c,KAAKktsB,wBAGhC5klB,yBAAyBtyG,GACrBhW,KAAKwssB,aAAaz+lB,QAAQ,mBAAoB/3F,EAAEwhF,aAEpDiqX,iBAAiBhzX,GACb,OAAO35E,GAAU25E,GAAKpvE,QAAOvK,EAAQ,CACjCtG,UAAWxO,KAAKwssB,gBAGxBp2H,sBACI,OAAOp2kB,KAAKwssB,aAAaG,kBAAoB3ssB,KAAKwssB,aAAaG,kBAAkBl4b,UAAUkkE,QAAU34U,KAAK24U,QAE9Gl7T,WACI,OAAOzd,KAAK24U,QAAQrlR,OAAO,SAE/BjkC,eACI,IACIziB,MAAOA,GACP5M,KAAKwssB,aAAal5oB,UACjBtzD,KAAK24U,UAGV34U,KAAKmtsB,2BAA4B,EACjCntsB,KAAK24U,QAAQrlR,OAAO,QAAS1mD,IAEjCwgsB,mBACI,MAAO,mBAAqBZ,aAAal5oB,OAAO,kBAEpDukhB,qBAAqB70jB,GACjB,IACIpW,MAAOA,EACPypB,cAAeA,EACfvrB,MAAOA,GACPkY,EACJ,IAAIqprB,GAAiBz/rB,EAAOypB,IAAmBr2B,KAAK24U,QAAQkjI,eAA5D,CAKA,GADA77c,KAAK24U,QAAQkjI,gBAAiB,EAC1B77c,KAAKotsB,mBAAoB,CACzB,IAAKptsB,KAAKwssB,aAAal5oB,OAAO,8BAC1B,GAAI,cAAgBtzD,KAAKqtsB,+BACrBrtsB,KAAK0ssB,qBAAuB,UAE5B1ssB,KAAK0ssB,qBAAuB,EACvB9/rB,EAAM,IACqB,GACrBu/rB,GAAoBv/rB,EAAM,IAAMu/rB,GAAoBv/rB,EAAM,IAEjE,YADA5M,KAAKwssB,aAAarprB,YAAY,CAACvW,EAAM,GAAI,MAAO9B,QAFhD9K,KAAK0ssB,sBAAuB,EASxC,GAFA1ssB,KAAKwssB,aAAarprB,YAAYvW,EAAO9B,GACrC9K,KAAK0ssB,sBAAwB,EACzB,SAAWA,qBAEX,YADA1ssB,KAAK6ssB,kBAAkBz9c,aACvB,GAEG,YAAcpvP,KAAKqtsB,gCACtBzgsB,EAAM,IAAMu/rB,GAAoBv/rB,EAAM,IAAMu/rB,GAAoBv/rB,EAAM,IACtE,OAGH5M,KAAKmtsB,2BACNntsB,KAAKstsB,wBAETttsB,KAAKmtsB,2BAA4B,OAhC7BntsB,KAAKmtsB,2BAA4B,EAkCzCG,wBACI,IAAIC,EAAgB,mBAAqBF,+BAAiCrtsB,KAAK6ssB,kBAAkBW,gBAAkBxtsB,KAAK6ssB,kBAAkBF,kBAC1IY,EAAclxmB,QACd5tC,aAAqB8+oB,EAAcv8oB,QAAS,WAEhDk8oB,sBACI,OAAOltsB,KAAKwssB,aAAal5oB,OAAO,qBAEpC+5oB,+BACI,OAAOrtsB,KAAK24U,QAAQrlR,OAAO,qBAE/BskhB,wBACI,MAAI,cAAgB53kB,KAAKqtsB,+BAM7Bt2H,eACI,OAAIh3kB,UAAU0E,OACHzE,KAAK41kB,QAAQ58H,UAAUt9a,MAAM17B,KAAK41kB,QAAS71kB,WAE3CC,KAAK41kB,QAAQ98H,WAAWp9a,MAAM17B,KAAK41kB,QAAS,CAAC,UAG5Dl0H,qBACA+rP,wBACIztsB,KAAK41kB,QAAU51kB,KAAKwssB,aAAaG,kBAErCe,sBACI1tsB,KAAK41kB,QAAU51kB,KAAKwssB,aAAagB,gBAErCX,kBACI,OAAO7ssB,KAAKwssB,eCLpBmB,IApLA,kBAAiCzrH,GAC7BY,gBACI9ilB,KAAKy0Q,UAAY,IAAIm5b,IAAsB5tsB,MAE/CuiG,cACIziG,MAAMyiG,cACNviG,KAAK6tsB,yBAETA,yBACI,IAAIzilB,EAAiB18C,GAAa,UAAW1uE,KAAKo1F,MAClD3mC,SAAiBzuD,KAAK89O,SAAU1yH,GAChC38D,QAAgBzuD,KAAK89O,SAAU1yH,EAAgBp1G,IAC3ChW,KAAK8tsB,oBAAoB93rB,KAGjCmgP,oBAAoBnzO,GAChB,IACIlY,MAAOA,GACPkY,EACApW,EAAQ5M,KAAKy0Q,UAAUh3P,WAC3Bzd,KAAKy0Q,UAAU+3b,aAAarprB,YAAYvW,EAAO9B,GAC/C9K,KAAKovP,QACLpvP,KAAKszD,OAAO,sBAAwBtzD,KAAKq8F,QAE7Ci2I,aAAat8N,GACLhW,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,WAGvCxzD,MAAMwyO,aAAat8N,GAEvBo7O,qBACI,IACIxB,OAAQA,GACR5vP,KAAKszD,SACTtzD,KAAK+tsB,mBAAmBz6oB,OAAO,SAAUs8L,GACrC5vP,KAAKgusB,oBACDp+c,GACA5vP,KAAKgxO,eAEThxO,KAAK+tsB,mBAAmBE,wBAAwBjusB,KAAKyzP,oBACrDzzP,KAAK2zP,gBAAgB,UAAW/D,GAChC5vP,KAAK+tsB,mBAAmB3jM,sBAGhC2jM,mBACI,OAAO/tsB,KAAKy0Q,UAAU+3b,aAE1BwB,kBACI,OAAOhusB,KAAKm7D,WAAWxF,SAjDL,oBAmDtBi7K,eACI9wO,MAAM8wO,eACF5wO,KAAKgusB,mBACchusB,KAAKy0Q,UAAU+3b,aACrB/imB,wBAAwBzpG,KAAKmxO,OAAQ,mBAG1D8iB,qBACI,IAAIi6c,EACJpusB,MAAMm0P,qBACN,QAAUi6c,EAAwBlusB,KAAKy0Q,UAAU+3b,aAAa10d,0BAAuB,IAAWo2d,GAAiCA,EAAsB56oB,OAAO,eAAgBtzD,KAAK01P,qCAEvLvB,sBACI,IAAIg6c,EACJrusB,MAAMq0P,sBACN,QAAUg6c,EAAyBnusB,KAAKy0Q,UAAU+3b,aAAa10d,0BAAuB,IAAWq2d,GAAkCA,EAAuB76oB,OAAO,eAAgBtzD,KAAK01P,qCAE1L7pJ,gBAAgB71F,GACZlW,MAAM+rG,gBAAgB71F,GACtBhW,KAAK8tsB,oBAAoB93rB,GAE7By+O,iBAAiBz+O,GACb,IAAImlD,GAAWC,QAAEplD,EAAEhU,QACfgU,EAAEzE,UAAY4pD,EAASlxC,GAAGjqB,KAAKuvP,2BAC/BvvP,KAAKy0Q,UAAU+3b,aAAagB,gBAAgBnxmB,QAC5CrmF,EAAEjL,mBAEDiL,EAAEzE,UAAY4pD,EAASlxC,GAAGjqB,KAAKsvP,0BAChCtvP,KAAKy0Q,UAAU+3b,aAAaG,kBAAkBtwmB,QAC9CrmF,EAAEjL,kBAGV+isB,oBAAoB93rB,GAChB,IACIhU,OAAQA,GACRgU,GACCo4rB,EAAgBC,GAAgBrusB,KAAKy0Q,UAAU+3b,aAAax7oB,QAOjE,IANIoK,QAAEp5D,GAAQioB,GAAGmkrB,IACbpusB,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,oBAAqB,cAExD8H,QAAEp5D,GAAQioB,GAAGokrB,IACbrusB,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,oBAAqB,WAEvDtzD,KAAKy0Q,UAAU+3b,aAAaG,kBAAkBl4b,UAAUkkE,QAG7D,KAAIkgI,EAAW74c,KAAKy0Q,UAAU+3b,aAAaG,kBAAkBl4b,UAAUkkE,QACnE/rU,EAAQisc,EAASvlZ,OAAO,SACxBrF,EAAYk+oB,GAAoBv/rB,EAAM,IACtCszR,EAAUisa,GAAoBv/rB,EAAM,KACpCwuD,QAAEp5D,GAAQioB,GAAGmkrB,KACTngpB,IACA4qZ,EAASM,eAAgB,EACzBN,EAASvlZ,OAAO,cAAerF,IAEnCjuD,KAAKy0Q,UAAUg5b,wBACf50P,EAASvlZ,OAAO,oBAAqB,aACjCtzD,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,+BACnCulZ,EAASwM,mBAAmBnlL,OAGhC9kO,MAAEp5D,GAAQioB,GAAGokrB,KACTnua,IACIjyO,GF1GS,EAACgtO,EAAOC,IAAU,IAAMA,EAAMjB,cAAgBgB,EAAMhB,eAAiBgB,EAAMvB,WAAawB,EAAMxB,WE0G1F40a,CAAgBrgpB,EAAWiyO,GAAW,IACnD24K,EAASvlZ,OAAO,cAAeulZ,EAASyH,iBAAiB,KAAMpgL,IAC/D24K,EAASvlZ,OAAO,cAAeulZ,EAASyH,kBAAiB,EAAIpgL,KAEjE24K,EAASM,eAAgB,EACzBN,EAASvlZ,OAAO,cAAe4sO,IAEnClgS,KAAKy0Q,UAAU+3b,aAAaG,kBAAkBl4b,UAAUi5b,sBACxD70P,EAASvlZ,OAAO,oBAAqB,WACjCtzD,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,+BACnCulZ,EAASsM,mBAAmBl3Z,KAIxC21C,cACI9jG,MAAM8jG,cACN5jG,KAAK4llB,mBAETJ,+BAA+B//a,EAAS8/a,GACpCvllB,KAAKszD,OAAO,CACRmyG,QAASA,EACTkB,gBAAiBlB,EAAU,KAAO,CAC9BjrI,QAAS+qjB,KAIrBJ,0BAA0Bv4kB,GACtB5M,KAAKkllB,yBAAyBt4kB,GAElComP,wBAAwBhxP,GACpB,IAAIussB,EAAgBvusB,KAAKy0Q,UAAU+3b,aAAarxoB,WAC5CqzoB,EAA4B,KAAMpzoB,QAAEp5D,GAAQ87E,QAAQywnB,GAAe9psB,OACvE,OAAO3E,MAAMkzP,wBAAwBhxP,IAAWwssB,EAEpDltd,oBACI,IAAImtd,EAA0BzusB,KAAKy0Q,UAAU+3b,aAAalvd,0BAEtD/mF,UAAWA,GACXv2J,KAAKszD,SACL,eAA2Bm7oB,GAA2BzusB,KAAKgusB,kBAC3DhusB,KAAKuhP,OAAOkC,yBAAsB99K,OAAS8ooB,IAG/C3usB,MAAMwhP,oBAEV/qJ,eAAe59E,GACX,GACS,YADDA,EAAKtV,MAEL,IAAIoiK,EAAUzlK,KAAKy0Q,UAAU+3b,aAAal5oB,OAAO,WACjD,GAAItzD,KAAK0usB,0BAA4BjpiB,IAAY9sJ,EAAK/L,MAElD,YADA9M,MAAMy2F,eAAe59E,GAGzB3Y,KAAK0usB,0BAA2B,EAChC1usB,KAAKszD,OAAO,CACRmyG,QAASA,IAEbzlK,KAAK0usB,0BAA2B,OAGhC5usB,MAAMy2F,eAAe59E,GAGjCy2O,QACIpvP,KAAKy0Q,UAAUo4b,kBAAkBF,kBAAkBr5oB,OAAO,UAAU,KCtJ5E,IACIq7oB,IAAgC,2BAChCjyd,IAAiC,8BACjCkyd,IAAkC,oCASlCC,GAA+B,sBAI/B9xd,IAAc,CAAC,UAAW,QAAS,SAAU,MAAO,OAAQ,QAAS,QAAS,YAClF,kBAA2BvG,GACvBjiJ,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCs7J,mBAAmB,EACnBnnJ,oBAAoB,EACpB6nJ,gBAAiBvwI,UAA2B,MAC5C8vI,eAAgB,YAChBzoG,aAAS,EACT2wb,gBAAiB,GACjBxnV,iBAAkBxwI,UAA2B,UAC7C8ulB,yBAA0B9ulB,UAA2B,2CACrD08V,6BAAyB,EACzBrrU,gBAAgB,EAChB09jB,4BAA4B,EAC5Bp9P,cAAe,KACfv2S,cAAe,KACf20F,uBAAwB,iBACxBI,gBAAiB,GACjB+vC,QAAS,KACT8ua,iBAAkB,GAClBC,aAAcjvlB,UAA2B,+BACzCkvlB,YAAa,GACbC,mBAAoB,GACpBC,iBAAa,EACbvmmB,mBAAmB,EACnBD,mBAAmB,EACnBymmB,wBAAyBrvlB,UAA2B,0CACpDsvlB,sBAAuBtvlB,UAA2B,wCAClDylD,SAAS,EACTlP,UAAW,SACX/7I,SAAK,EACLkvD,SAAK,EACLujoB,WAAW,EACX1orB,SAAU,KACVorO,SAAU,KACV5pF,OAAQ,KACRC,MAAO,KACPC,WAAY,KACZC,QAAS,KACTC,UAAW,KACXC,QAAS,KACTspF,SAAU,KACVrpF,QAAS,KACT3R,eAAgB,KAChBu7F,kBAAkB,EAClBL,QAAQ,EACRwyV,WAAY,WACZ5zf,UAAU,EACV+3E,iBAAiB,EACjB2pF,oBAAoB,EACpBzpF,YAAY,EACZx4G,UAAW,KACXshpB,mBAAoB,GACpBC,eAAgBxvlB,UAA2B,iCAC3CyvlB,cAAe,GACfC,2BAA4B1vlB,UAA2B,6CACvD2vlB,qBAAsB,GACtBC,mBAAe,EACfxwjB,aAAar7H,UAAS25N,mBAAqB,WAC3C45V,gBAAiBt3d,UAA2B,8BAC5C0wI,wBAAwB,EACxBysP,iBAAiB,EACjBx2U,gBAAiB,KACjBC,iBAAkB,KAClBC,sBAAuB,OACvBC,0BAA2B,OAC3BC,iBAAkB,QAClBn6J,MAAO,CAAC,KAAM,MACdo6J,iBAAkB,SAClB6oiB,0BAA2B,GAC3B7zP,kBAAmB,cAG3BpnX,uBACI,OAAO90F,MAAM80F,uBAAuB/yE,OAAO,CAAC,CACxCwiD,OAAQ,WAEJ,OAAO2rE,GADStoH,OAGpBkK,QAAS,CACL2kI,UAAW,WACXnX,aAAar7H,UAAS25N,mBAAqB,WAEhD,CACCr5K,OAAQ,WAEJ,OAAO4rE,GADSvoH,OAGpBkK,QAAS,CACL2kI,UAAW,YAEhB,CACClyF,OAAQ,WACJ,IACI5C,EADauB,UACSvB,SAC1B,MAAO,WAAsB,YAAcA,GAE/C7vC,QAAS,CACLq7qB,WAAW,MAIvBl2oB,aAAanlC,GACT9xB,MAAMi3D,aAAanlC,GACnB,IACIhlB,MAAOsmF,GACPlzF,KAAKo3F,iBAELxqF,MAAOA,EACPqhD,UAAWA,EACXiyO,QAASA,GACTlgS,KAAKszD,SACL1mD,EAAM,IAAMA,EAAM,IAAMu/rB,GAAoBv/rB,EAAM,IAAMu/rB,GAAoBv/rB,EAAM,MAClFA,EAAQ,CAACA,EAAM,GAAIA,EAAM,KAEzBqhD,GAAaiyO,GAAWisa,GAAoBl+oB,GAAak+oB,GAAoBjsa,MAC5EjyO,EAAWiyO,GAAW,CAACA,EAASjyO,IAErC6hpB,GAAqB58mB,EAActmF,GAC/BA,EAAQ,CAACqhD,EAAWiyO,IAEnBjyO,EAAWiyO,GAAWtzR,EAE3B5M,KAAKszD,OAAO,CACRrF,UAAWA,EACXiyO,QAASA,EACTtzR,MAAOA,IAGfmjsB,oBACI/vsB,KAAK8wP,YAAc9wP,KAAKo2F,sBAAsB,WAAY,CACtD3I,kBAAmB,CAAC,WAAY,cAGxCuinB,mBACShwsB,KAAK8wP,aACN9wP,KAAK+vsB,oBAET/vsB,KAAK8wP,cAETm/c,qBACIjwsB,KAAK+wP,aAAe/wP,KAAKo2F,sBAAsB,WAAY,CACvD3I,kBAAmB,CAAC,WAAY,cAGxCyinB,oBACSlwsB,KAAK+wP,cACN/wP,KAAKiwsB,qBAETjwsB,KAAK+wP,eAETo/c,mBAAmB1osB,GACfzH,KAAK,IAAI6hB,UAAOy8L,OAAS72M,GAAY,WAAazH,KAAKo2F,sBAAsB,KAAKv0E,OAAOpa,GAAY,CACjGgmF,kBAAmB,CAAC,cAG5B2inB,aAAa3osB,EAAWqD,GACP9K,KAAK,IAAI6hB,QAAOy8L,SAAS72M,GAAY,YAE9CzH,KAAKmwsB,mBAAmB1osB,GAE5BzH,KAAK,IAAI6hB,QAAOy8L,SAAS72M,GAAY,WAAW,CAC5CqD,MAAOA,IAGfm6F,iBACIjlG,KAAK+jG,iBAAiB5K,oBAAoB,CACtCs5J,eAAgB,IAAIn6J,GAAkB,SAAS1mE,GAC3C,IAAI8gO,GAAQt3L,QAAE,SAASxtD,SAlLJ,2BAmLnBwtD,QAAExpC,EAAQsC,WAAW01D,OAAO8oK,OAGpC1yP,KAAKm5D,WAETkkL,qBACI,MAAO,CAAC,CACJh6O,KAAM,QACNq3O,KAAMmD,KACP,CACCx6O,KAAM,WACNq3O,KAAM+U,MAGdltJ,cACIviG,KAAKm7D,WAAWvtD,SAzMC,mBAyM4BA,SA/L9B,iBA+LyDA,SA5LnD,qBA6LrB5N,KAAKqwsB,mCACLrwsB,KAAKswsB,0BACLtwsB,KAAKm3O,uBACLn3O,KAAKg4O,qBACLh4O,KAAKuwsB,oBACLvwsB,KAAK0jgB,mBACL1jgB,KAAKwwsB,sBACLxwsB,KAAKywsB,wBACLzwsB,KAAK4+O,wBACL5+O,KAAK0wsB,0BACL5wsB,MAAMyiG,cACNviG,KAAKm7D,WAAWrtD,YA7ME,yBA+MtB8wO,wBACI,IAAIn3O,EAAYinE,GAAa,aAAc1uE,KAAKo1F,MAChD3mC,SAAiBzuD,KAAKs7F,eAAgB7zF,GACtCgnD,QAAgBzuD,KAAKs7F,eAAgB7zF,EAAWzH,KAAKywsB,sBAAsBxnpB,KAAKjpD,OAEpFywsB,wBACI,IAAIpjoB,EAAUrtE,KAAK2ssB,kBAAkBxxoB,WAAWxF,SAASk5oB,KAAiC7usB,KAAKwtsB,gBAAgBryoB,WAAWxF,SAASk5oB,IACnI7usB,KAAKm7D,WAAW+oC,YAAY2qmB,GAA8BxhoB,GAE9D49B,wBACSjrG,KAAKszD,OAAO,aACbxzD,MAAMmrG,wBAGdksI,uBACI,IACI3oJ,SAAUA,GACVxuF,KAAKszD,SACTtzD,KAAKm7D,WAAW+oC,YAhOG,sBAgOiC1V,GAExD6hnB,mCACI,IACIzgd,OAAQA,GACR5vP,KAAKszD,SACTtzD,KAAKm7D,WAAW+oC,YAjOY,2BAiO+B0rJ,GAE/D0gd,0BACI,IACId,eAAgBA,EAChBP,aAAcA,EACd14iB,UAAWA,GACXv2J,KAAKszD,SACLq9oB,KAAoBnB,IAAoBP,GAAiB,WAAa14iB,GAC1Ev2J,KAAKm7D,WAAWrtD,YAAY8gsB,KAAiC9gsB,YAAY4uO,KAAgC5uO,YAAY6gsB,KACjHgC,IACA3wsB,KAAKm7D,WAAWvtD,SAAS,aAAe2oJ,EAAYq4iB,IAAkCD,KAClF,eACA3usB,KAAKm7D,WAAWvtD,SAAS8uO,MAIrC8zd,sBACIxwsB,KAAK4wsB,kBAAiBx1oB,MAAE,SAASxtD,SA7Pf,oBA6P6CogO,UAAUhuO,KAAKm7D,YAC9En7D,KAAK6wsB,cAAgB7wsB,KAAK24F,iBAAiB34F,KAAK4wsB,eAAgBE,IAAoB9wsB,KAAK+wsB,0BACzF/wsB,KAAK6wsB,cAAcz7mB,KAAO,gBAE9Bm7mB,oBACIvwsB,KAAKgxsB,gBAAe51oB,MAAE,SAASxtD,SAjQf,kBAiQ2Ci9D,SAAS7qE,KAAKm7D,YACzEn7D,KAAKixsB,YAAcjxsB,KAAK24F,iBAAiB34F,KAAKgxsB,aAAcF,IAAoB9wsB,KAAKkxsB,wBACrFlxsB,KAAKixsB,YAAY77mB,KAAO,cAE5Bsua,mBACI,IAAIhxQ,EAAQ1lH,GA5PM,MA6PlBhtI,KAAKmxsB,aAAc/1oB,QAAE,SAASxtD,SAtQH,6BAsQ0CogO,UAAUhuO,KAAKm7D,YACpFn7D,KAAKoxsB,qCACL1+c,EAAM7nL,SAAS7qE,KAAKmxsB,aAExBC,qCACI,IAAI3psB,EAAYinE,GAAa,YAAa1uE,KAAKo1F,MAC/C3mC,SAAiBzuD,KAAKmxsB,YAAa1psB,GACnCgnD,QAAgBzuD,KAAKmxsB,YAAa1psB,EAAWuO,IACpChW,KAAKo5O,qBACNp5O,KAAKq8F,QAETrmF,EAAEjL,mBAGV2lsB,0BACI1wsB,KAAKm9O,kBAAoB,IAAIC,IAA2Bp9O,KAAMA,KAAKq9O,sBACnEr9O,KAAKs9O,yBAA2B,KAChCt9O,KAAKu9O,wBAA0B,KAC/B,IACIl2F,QAASA,GACTrnJ,KAAKszD,SACTtzD,KAAKs9O,yBAA2Bt9O,KAAKm9O,kBAAkB9B,oBAAoBh0F,EAASrnJ,KAAKm7D,YACzFn7D,KAAKu9O,wBAA0Bv9O,KAAKm9O,kBAAkB/B,mBAAmB/zF,EAASrnJ,KAAKm7D,YAE3FmlL,eAAevqI,GACX/1G,KAAKm9O,kBAAkB7B,cAAcvlI,GAEzCu8H,eACItyO,KAAKozP,mBAET/gB,yBACI,OAAO,EAEX+gB,mBACI,IACIxD,OAAQA,GACR5vP,KAAKszD,SACJs8L,GACD5vP,KAAK2ssB,kBAAkBx5c,cAEtBnzP,KAAKszD,OAAO,aACbtzD,KAAKszD,OAAO,UAAWtzD,KAAKszD,OAAO,WAG3CqmL,mBAAmB3jO,GACfA,EAAEouE,kBACFpkF,KAAKy3O,sBAAsBzhO,GAC3BhW,KAAKszB,SACJtzB,KAAK+ssB,6BAA+B/ssB,KAAKq8F,QAC1C5tC,cAAqB2M,QAAEp7D,KAAKqxsB,kBAAmB,SAEnD53d,wBACI,OAAOz5O,KAAKszD,OAAO,qBAAuBtzD,KAAKszD,OAAO,YAE1Du4C,gBAAgB/gG,GACR9K,KAAK8kd,sBAAsBh6c,IAG/BhL,MAAM+rG,gBAAgB/gG,GAE1BihG,iBAAiBjhG,GACT9K,KAAK8kd,sBAAsBh6c,IAG/BhL,MAAMisG,iBAAiBjhG,GAE3Bg6c,sBAAsBh6c,GAClB,IACI9I,OAAQA,EACR+7E,cAAeA,GACfjzE,EACJ,OAAOswD,QAAEp5D,GAAQioB,GAAGjqB,KAAKqxsB,sBAAqBj2oB,MAAE2iB,GAAe9zD,GAAGjqB,KAAKsxsB,kBAAmBl2oB,QAAEp5D,GAAQioB,GAAGjqB,KAAKsxsB,kBAAmBl2oB,QAAE2iB,GAAe9zD,GAAGjqB,KAAKqxsB,kBAE5JE,iBACI,IACInvH,WAAYA,GACZpilB,KAAKszD,SACT,MAAO,CAAC,WAAY,UAAU9rC,SAAS46jB,GAAcA,EAAa,WAEtEovH,eAAeC,EAAWC,GACtB,OAAOD,EAAU3qrB,OAAOlG,IAAU8wrB,EAAcl+qB,KAAKm+qB,GAAa/wrB,EAAM4Z,UAAYm3qB,EAAUn3qB,UAElGo3qB,sBAAsB9/mB,EAAY+/mB,EAAkBC,GAChDD,IAAqBA,EAAmB,IACxCC,IAA0BA,EAAwB,IAClD,IAAIL,EAAYzxsB,KAAKszD,OAAOw+B,IAAe,GACvCignB,EAAc/xsB,KAAKwxsB,eAAeC,EAAWK,GACjD9xsB,KAAKszD,OAAOw+B,EAAY,IAAIignB,KAAgBF,IAEhDG,oBACI,IAAIpgrB,EAAU5xB,KAAKszD,SACf2+oB,EAAgB,CAChBpid,kBAAmBj+N,EAAQi+N,kBAC3BnnJ,mBAAoB92E,EAAQ82E,mBAC5BonJ,eAAgBl+N,EAAQk+N,eACxBwyV,sBAAuB1wjB,EAAQ0wjB,sBAC/B5lI,wBAAyB9qb,EAAQ8qb,wBACjCrrU,eAAgBz/G,EAAQy/G,eACxBjpH,SAAUwJ,EAAQxJ,SAClBgzI,cAAexpI,EAAQwpI,cACvBvyD,kBAAmBj3E,EAAQi3E,kBAC3B48D,QAAS7zI,EAAQ6zI,QACjB52F,SAAUj9C,EAAQi9C,SAClB/O,OAAQluC,EAAQkuC,OAChB8oC,kBAAmBh3E,EAAQg3E,kBAC3B2tD,UAAW3kI,EAAQ2kI,UACnB/7I,IAAKoX,EAAQpX,IACbkvD,IAAK93C,EAAQ83C,IACbumL,iBAAkBr+N,EAAQq+N,iBAC1BmyV,WAAYpilB,KAAKuxsB,iBACjB/inB,SAAU58D,EAAQ48D,SAClB/pB,WAAY7yC,EAAQ6yC,WACpBgiG,WAAY70I,EAAQ60I,WACpBrnB,YAAaxtH,EAAQwtH,YACrB3zI,KAAM,OACN0xe,gBAAiBvrd,EAAQurd,gBACzBt2U,sBAAuBj1I,EAAQi1I,sBAC/BC,0BAA2Bl1I,EAAQk1I,0BACnCE,iBAAkBp1I,EAAQo1I,iBAC1Bb,UAAWv0I,EAAQu0I,UACnBC,QAASx0I,EAAQw0I,QACjB7hJ,SAAUqN,EAAQrN,SAClB2hJ,QAASt0I,EAAQs0I,QACjBF,MAAOp0I,EAAQo0I,MACfD,OAAQn0I,EAAQm0I,OAChBM,QAASz0I,EAAQy0I,QACjBJ,WAAYr0I,EAAQq0I,WACpBisiB,sBAAuBlysB,KACvB62O,wBAAwB,GAE5B/tK,gBAAKi0K,IAAa,CAACv4N,EAAG/c,KAClB,IAAIqqF,EAAa,KAAKjwE,OAAOpa,GACzBzH,KAAKg4F,sBAAsBlG,KAC3BmgnB,EAAcngnB,GAAc97E,IACxBhW,KAAKowsB,aAAa3osB,EAAWuO,EAAElL,WAIpCmnsB,EAEXnqM,2BAA2B9kf,GACvB,IACIhhB,OAAQA,GACRghB,EACA6uD,GAAUzW,QAAEp5D,GACZywP,EAAiBzyP,KAAKk7O,UAAU,YAChC4a,EAAkBrD,GAAkBA,EAAet3L,WACnD46L,IAAmBlkL,EAAQiM,QAAQ99E,KAAKm7D,YAAY12D,OACpDuxP,IAA4BnkL,EAAQiM,QAAQg4K,GAAiBrxP,OAEjE,OADsBsxP,IAAmBC,EAG7C+6c,yBACI,IAAIoB,EACAvgrB,EAAU5xB,KAAKszD,SACnB,OAAOq5B,QAAS,GAAI3sF,KAAKgysB,oBAAqB,CAC1Czhd,gBAAiB3+N,EAAQ2+N,gBACzBynV,gBAAiBpmjB,EAAQomjB,gBACzBxnV,iBAAkB5+N,EAAQ4+N,iBAC1B8xV,sBAAuB1wjB,EAAQ89qB,2BAC/Br+jB,eAAgBz/G,EAAQy/G,eACxBsgU,cAAe,QAAUwgQ,EAAwBvgrB,EAAQu+N,uBAAoB,WAAmC,EAASgid,EAAsBxgQ,cAC/IxhN,mBAAiBxjK,MAAS,CACtB8iE,WAAW,EACXhe,MAAO,GACP8c,mBAAoBv4I,GAAKhW,KAAK8ngB,2BAA2B9xf,GACzDw4I,oBAAoB,EACpB2gE,qBAAqB,GACtBv9L,EAAQu+N,iBACXkyV,mBAAoBzwjB,EAAQy9qB,wBAC5B36iB,eAAgBp6D,IACZ,IACI1tF,MAAOA,EACP9B,MAAOA,GACPwvF,EACAzvE,EAAW,CAACje,EAAO5M,KAAKszD,OAAO,SAAS,IAC5CtzD,KAAKmjB,YAAY0H,EAAU/f,IAE/B8kP,OAAQh+N,EAAQg+N,OAChBF,SAAU,KACN1vP,KAAKgwsB,oBAETrgd,SAAU,KACN3vP,KAAKkwsB,qBAETz7mB,gBAAiB97E,IACb,IACItV,KAAMA,EACNuJ,MAAOA,EACPypB,cAAeA,GACf1d,EACA,YACA3Y,KAAKszD,OAAO,gBAAiB1mD,GAE7B,wBACA5M,KAAK4xsB,sBAAsB,4BAA6BhlsB,EAAOypB,IAGvEihjB,gBAAiB1ljB,EAAQ0ljB,gBACzB/wa,iBAAiB,EACjB2pF,oBAAoB,EACpBtjP,MAAO5M,KAAKszD,OAAO,SAAS,GAC5B+kF,MAAOzmH,EAAQ49qB,eACflpiB,YAAa10I,EAAQ+9qB,qBACrBnqiB,UAAW5zI,EAAQ29qB,mBACnBlssB,KAAMuuB,EAAQ69qB,cACdjtH,qBAAqB,IAG7B0uH,uBACI,IAAIt/qB,EAAU5xB,KAAKszD,SACnB,OAAOq5B,QAAS,GAAI3sF,KAAKgysB,oBAAqB,CAC1C3vH,mBAAoBzwjB,EAAQ09qB,sBAC5BhtH,sBAAuB1wjB,EAAQk9qB,yBAC/Bp6iB,eAAgBvjF,IACZ,IACIvkE,MAAOA,EACP9B,MAAOA,GACPqmE,EACAtmD,EAAW,CAAC7qB,KAAKszD,OAAO,SAAS,GAAI1mD,GACzC5M,KAAKmjB,YAAY0H,EAAU/f,IAE/B2pF,gBAAiB97E,IACb,IACItV,KAAMA,EACNuJ,MAAOA,EACPypB,cAAeA,GACf1d,EACA,YACA3Y,KAAKszD,OAAO,cAAe1mD,GAE3B,wBACA5M,KAAK4xsB,sBAAsB,4BAA6BhlsB,EAAOypB,IAGvEu5N,OAAQh+N,EAAQg+N,OAChBrpF,iBAAiB,EACjB2pF,oBAAoB,EACpBtjP,MAAO5M,KAAKszD,OAAO,SAAS,GAC5B+kF,MAAOzmH,EAAQq9qB,aACf3oiB,YAAa10I,EAAQu9qB,mBACrB99jB,gBAAgB,EAChBm0B,UAAW5zI,EAAQo9qB,iBACnB3rsB,KAAMuuB,EAAQs9qB,cAGtBv2d,gCACI,IACI7xE,0BAA2BA,GAC3B9mK,KAAKszD,SACT,MAAI,WACOtzD,KAAKszD,OAAO,UAAY,MAAQ,SAEpCwzG,EAEXsriB,oBAAoB9/nB,GAChB,IAAKrkB,EAAWiyO,GAAW5tN,EAC3B,MAAO,CAACtyE,KAAK2ssB,kBAAkBlnH,eAAe0mH,GAAoBl+oB,IAAajuD,KAAK2ssB,kBAAkBlnH,eAAe0mH,GAAoBjsa,KAE7I/8Q,YAAY0H,EAAU/f,GACbuhsB,GAAiBxhrB,EAAU7qB,KAAKszD,OAAO,YACpCxoD,GACA9K,KAAKy3O,sBAAsB3sO,GAE/B9K,KAAKszD,OAAO,QAAStzD,KAAKoysB,oBAAoBvnrB,KAGtDwnrB,sBAAsBxnrB,GAClB,IAAIynrB,EAAetysB,KAAK2ssB,kBACpB4F,EAAavysB,KAAKwtsB,iBACjBgF,EAAcC,GAAc5nrB,EAC7B6nrB,EAAeJ,EAAah/oB,OAAO,SACnCq/oB,EAAaJ,EAAWj/oB,OAAO,SAC9B84oB,GAAYoG,EAAcE,IAC3BJ,EAAah/oB,OAAO,QAASk/oB,GAE5BpG,GAAYqG,EAAYE,IACzBJ,EAAWj/oB,OAAO,QAASm/oB,GAGnCtnmB,mBACI,IAAIynmB,GAAkBx3oB,QAAEp7D,KAAKgxD,QAAQ,KAEjC83C,UAAWA,GACX9oG,KAAKszD,SACTs/oB,EAAgBxjoB,KAAK,YAAa05B,GAEtCxN,eACI,OAAOt7F,KAAKm7D,WAAW11B,KAAK,IAAI5jB,OAjiBX,wBAmiBzB+pF,oBACI,OAAO5rG,KAAKwH,UAEhBi+O,oBACI,OAAOzlP,KAAKm7D,WAEhB8wC,kBAAkBD,EAAW7wC,GACzBr7D,MAAMmsG,kBAAkBD,EAAWhsG,KAAKylP,kBAAkBtqL,IAE9Di+K,oBACI,OAAOp5O,KAAK+ssB,6BAA+B/ssB,KAAK8ssB,0BAEpDC,4BACI,OAAO/ssB,KAAK6ysB,iBAAiB7ysB,KAAKqxsB,kBAEtCvE,0BACI,OAAO9ssB,KAAK6ysB,iBAAiB7ysB,KAAKsxsB,gBAEtCuB,iBAAiBrsoB,GACb,SAAOpL,MAAEoL,GAAOv8C,GAAGmoC,sBAA4BoU,IAEnDynoB,wBAAwBxunB,GACpB,OAAIA,IACAz/E,KAAK0zP,gBAAkBj0K,GAEpBz/E,KAAK0zP,gBAEhB02Q,qBACI,IACIx6Q,OAAQA,GACR5vP,KAAKszD,SACLsgM,EAAQ,CACR/xG,SAAU+tG,EACVriO,SAAUvtB,KAAKiusB,2BAEf6E,EAAWljd,EAAS5vP,KAAKiusB,+BAA4B,EACzDjusB,KAAK+tG,QAAQ6lJ,GACb5zP,KAAK+tG,QAAQ,OAAQ+kmB,EAAU9ysB,KAAKm7D,YAExCukL,yBACI,IAAIC,EAAuBC,EAC3B,QAAUD,EAAwB3/O,KAAKs9O,gCAA6B,OAA4CqC,EAAsB9+O,SACtI,QAAU++O,EAAwB5/O,KAAKu9O,+BAA4B,OAA4CqC,EAAsB/+O,SACrIb,KAAKm9O,kBAAkBlC,QACvBj7O,KAAKs9O,yBAA2B,KAChCt9O,KAAKu9O,wBAA0B,KAEnC6nW,uBAAuBx4kB,GACnB5M,KAAK02O,kBAAkBx2K,KAAK,CACxByxK,OAAQ3xO,KACR4M,MAAOA,IAGf62F,SACI,IAAIsvmB,EAAsBC,EAAoBC,EAC9CjzsB,KAAK0/O,yBACL,QAAUqzd,EAAuB/ysB,KAAK4wsB,sBAAmB,OAA2CmC,EAAqBlysB,SACzH,QAAUmysB,EAAqBhzsB,KAAKgxsB,oBAAiB,OAAyCgC,EAAmBnysB,SACjH,QAAUoysB,EAAoBjzsB,KAAKmxsB,mBAAgB,IAAW8B,GAA6BA,EAAkBpysB,SAC7Gf,MAAM2jG,SAEVlN,eAAe59E,GACX,IACItV,KAAMA,EACN6vD,SAAUA,EACVtmD,MAAOA,EACPypB,cAAeA,GACf1d,EACJ,OAAQtV,OACC,wBACA,8BACA,oBACA,UACA,UACA,uBACA,iBACA,sBACA,mBACDrD,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,UACC,aA6LD,QAEA9M,MAAMy2F,eAAe59E,SA7LrB,IACC,YACD3Y,KAAKswsB,0BACLtwsB,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,UACC,sBACA,qBACA,uBACA,qBACA,oBACA,kBACD5M,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC,UACC,SACD5M,KAAKqwsB,mCACLrwsB,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBt1mB,8BAA8B70F,EAAMuJ,GACzD,UACC,UACD5M,KAAK0/O,yBACL1/O,KAAK0wsB,0BACL,UACC,sBACA,kBACD1wsB,KAAK2ssB,kBAAkBr5oB,OAAOJ,EAAUtmD,GACxC,UACC,aACD,IAAIw1kB,EAAapilB,KAAKuxsB,iBACtBvxsB,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAM++kB,GACpCpilB,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAM++kB,GAClC,UACC,wBA+ED,IACC,6BASD,IACC,oBACA,kBACA,yBA6DD,IACC,oBACD,MA1JA,IACC,SACDpilB,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC9M,MAAMy2F,eAAe59E,GACrB,UACC,6BACA,qBACD3Y,KAAKsgP,eAAe,CAAC,aACrB,UACC,kBACDtgP,KAAKsgP,eAAe,CAAC,UACrB,UACC,UACDtgP,KAAKmjB,YAAY,CAACnjB,KAAKszD,OAAO,SAAS,GAAI1mD,IAC3C,UACC,iBACD5M,KAAKswsB,0BACLtwsB,KAAK2ssB,kBAAkBr5oB,OAAO,QAAS1mD,GACvC,UACC,eACD5M,KAAKswsB,0BACLtwsB,KAAKwtsB,gBAAgBl6oB,OAAO,QAAS1mD,GACrC,UACC,uBACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,cAAe1mD,GAC7C,UACC,qBACD5M,KAAKwtsB,gBAAgBl6oB,OAAO,cAAe1mD,GAC3C,UACC,qBACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,YAAa1mD,GAC3C,UACC,gBACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,OAAQ1mD,GACtC,UACC,mBACD5M,KAAKwtsB,gBAAgBl6oB,OAAO,YAAa1mD,GACzC,UACC,cACD5M,KAAKwtsB,gBAAgBl6oB,OAAO,OAAQ1mD,GACpC,UACC,YACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,6BAA8B1mD,EAAQ,EAAI,GACxE,UACC,eACA,yBACA,wBACA,oBACD9M,MAAMy2F,eAAe59E,GACrB3Y,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,UACC,iBACD5M,KAAK82O,2BACL,UACC,WACD92O,KAAK+vsB,oBACL,UACC,WACD/vsB,KAAKiwsB,qBACL,UACC,gBACA,cACA,eACA,cACA,YACA,aACA,cACA,aACDjwsB,KAAKmwsB,mBAAmB9ssB,EAAKuH,QAAQ,KAAM,KAC3C,UACC,eACA,WACD5K,KAAKsgP,iBACLxgP,MAAMy2F,eAAe59E,GACrB3Y,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,MAEA,IACC,YACD5M,KAAKmjB,YAAY,CAACvW,EAAO5M,KAAKszD,OAAO,SAAS,KAC9C,UACC,cACDtzD,KAAKg4O,qBACLh4O,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,MAIA,IACC,0BACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,qBAAsB1mD,GACpD,UACC,wBACD5M,KAAKwtsB,gBAAgBl6oB,OAAO,qBAAsB1mD,GAClD,UACC,6BACD5M,KAAK2ssB,kBAAkBr5oB,OAAO,wBAAyB1mD,GACvD,UACC,2BACD5M,KAAKwtsB,gBAAgBl6oB,OAAO,wBAAyB1mD,GACrD,UACC,4BACD5M,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC9M,MAAMy2F,eAAe59E,GACrB,UACC,4BACD3Y,KAAK4xsB,sBAAsB,mBAAoBhlsB,EAAOypB,GACtD,IAAIuwI,EAAmB5mK,KAAKszD,OAAO,oBACnCtzD,KAAKszD,OAAO,YAAa,MAASszG,GAAmDA,EAAiBniK,SACtG,UACC,UACDzE,KAAK2ssB,kBAAkBr5oB,OAAOjwD,EAAMuJ,GACpC5M,KAAKwtsB,gBAAgBl6oB,OAAOjwD,EAAMuJ,GAClC,IAAI64J,EAAU74J,IAAU5M,KAAKszD,OAAO,6BAA6B7uD,OACjE,GAAIzE,KAAKkzsB,0BAA4BztiB,IAAY74J,EAE7C,YADA9M,MAAMy2F,eAAe59E,GAGzB3Y,KAAKkzsB,0BAA2B,EAChClzsB,KAAKszD,OAAO,UAAWmyG,GACvBzlK,KAAKkzsB,0BAA2B,EAChC,UACC,mBACD,IAAIC,EAA2BnzsB,KAAKszD,OAAO,8BAAgC,GAGvE/sC,EAAS,IADQvmB,KAAKwxsB,eADV5ksB,GAAS,GAC2BumsB,MAChBA,GAChCtorB,EAAWtE,EAAO9hB,OAAS8hB,EAAS,KACxCvmB,KAAK2vF,SAASM,OAAO,mBAAoBplE,GACzC/qB,MAAMy2F,gBAAe5J,QAAS,GAAIh0E,EAAM,CACpC/L,MAAOie,KAEX,UACC,QACD,IAAI2sd,GHx0BQ5qe,KACxB,IAAKqhD,EAAWiyO,GAAWtzR,EAC3B,OAAIqhD,GAAaiyO,GAAWisa,GAAoBl+oB,GAAak+oB,GAAoBjsa,GACtE,CAACA,EAASjyO,GAEVrhD,GGm0BiBwmsB,CAAexmsB,GAC/B,IAAKy/rB,GAAiB70N,GAAWnhd,GAAgB,CAC7C,IAAIggI,IAAWg2iB,GAAiB70N,GAAWx3e,KAAK22O,eAChD32O,KAAKszD,OAAO,UAAW+iG,IACvBr2J,KAAKk4F,8BAA8B,QAASs/Y,IAC5Cx3e,KAAKk4F,8BAA8B,YAAas/Y,GAAU,IAC1Dx3e,KAAKk4F,8BAA8B,UAAWs/Y,GAAU,IACxDx3e,KAAKollB,uBAAuB5tG,IAC5Bx3e,KAAKqysB,sBAAsB76N,IAC3Bx3e,KAAK2ssB,kBAAkBl4b,UAAU0iU,cACjCn3kB,KAAKywsB,wBACLzwsB,KAAKs3O,wBAAwBkgQ,GAAWnhd,GACxCr2B,KAAKy3O,2BAAsB,KAS3Ck1d,kBACI,OAAO3ssB,KAAK6wsB,cAEhBrD,gBACI,OAAOxtsB,KAAKixsB,YAEhB/1d,UAAU73O,GACN,OAAOrD,KAAKm9O,kBAAkBjC,UAAU73O,GAE5CqzP,OACI12P,KAAKszD,OAAO,UAAU,GAE1B87L,QACIpvP,KAAKszD,OAAO,UAAU,GAE1Bu2I,UACI,OAAO7pM,KAAK2ssB,kBAAkB9igB,UAElC74I,QACI,MAAO,CAAChxD,KAAKqxsB,iBAAkBrxsB,KAAKsxsB,gBAExCD,iBACI,OAAOrxsB,KAAK2ssB,kBAAkB37oB,QAElCsgpB,eACI,OAAOtxsB,KAAKwtsB,gBAAgBx8oB,QAEhCqrC,QACIr8F,KAAK2ssB,kBAAkBtwmB,QAE3B9yE,QACIzpB,MAAMypB,QACN,IAAI+orB,EAAetysB,KAAK2ssB,kBACpB4F,EAAavysB,KAAKwtsB,gBACtB8E,EAAa/orB,QACbgprB,EAAWhprB,QACX+orB,EAAa9sH,gCAA+B,GAC5C+sH,EAAW/sH,gCAA+B,GAE9ClyjB,QACIxzB,MAAMwzB,QACNtzB,KAAKwtsB,gBAAgBl6qB,QACrBtzB,KAAK2ssB,kBAAkBr5qB,SAG/B4gH,GAAkB,iBAAkBm/jB,KCv5BpC,UDw5BeA,IE54BTvlb,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMkurB,KAC9BzusB,OAAO,OAMLyusB,UAAN,gBAAsCp9oB,GAClCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,OAAQsI,KAAM,UAC3B,CAAEtI,UAAW,MAAOsI,KAAM,SAC1B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oCACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,gCACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kCACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,aACR,CAAEA,KAAM,aACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,oCACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB6vP,wBACA,OAAO7vP,KAAKozD,WAAW,qBAEvBy8L,sBAAkBjjP,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCk8F,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC2jP,sBACA,OAAOvwP,KAAKozD,WAAW,mBAEvBm9L,oBAAgB3jP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCkjP,qBACA,OAAO9vP,KAAKozD,WAAW,kBAEvB08L,mBAAeljP,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCy6I,cACA,OAAOrnJ,KAAKozD,WAAW,WAEvBi0F,YAAQz6I,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BorkB,sBACA,OAAOh4kB,KAAKozD,WAAW,mBAEvB4khB,oBAAgBprkB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC4jP,uBACA,OAAOxwP,KAAKozD,WAAW,oBAEvBo9L,qBAAiB5jP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC8vc,8BACA,OAAO18c,KAAKozD,WAAW,2BAEvBspZ,4BAAwB9vc,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3CykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BmisB,iCACA,OAAO/usB,KAAKozD,WAAW,8BAEvB27oB,+BAA2BnisB,GAC3B5M,KAAK6yD,WAAW,6BAA8BjmD,GAM9CwuJ,oBACA,OAAOp7J,KAAKozD,WAAW,iBAEvBgoG,kBAAcxuJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCmjP,6BACA,OAAO/vP,KAAKozD,WAAW,0BAEvB28L,2BAAuBnjP,GACvB5M,KAAK6yD,WAAW,yBAA0BjmD,GAM1CujP,sBACA,OAAOnwP,KAAKozD,WAAW,mBAEvB+8L,oBAAgBvjP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BszR,cACA,OAAOlgS,KAAKozD,WAAW,WAEvB8sO,YAAQtzR,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BoisB,uBACA,OAAOhvsB,KAAKozD,WAAW,oBAEvB47oB,qBAAiBpisB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCqisB,mBACA,OAAOjvsB,KAAKozD,WAAW,gBAEvB67oB,iBAAarisB,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCsisB,kBACA,OAAOlvsB,KAAKozD,WAAW,eAEvB87oB,gBAAYtisB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BkisB,+BACA,OAAO9usB,KAAKozD,WAAW,4BAEvB07oB,6BAAyBlisB,GACzB5M,KAAK6yD,WAAW,2BAA4BjmD,GAM5CuisB,yBACA,OAAOnvsB,KAAKozD,WAAW,sBAEvB+7oB,uBAAmBvisB,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCwisB,kBACA,OAAOpvsB,KAAKozD,WAAW,eAEvBg8oB,gBAAYxisB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC0isB,4BACA,OAAOtvsB,KAAKozD,WAAW,yBAEvBk8oB,0BAAsB1isB,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCyisB,8BACA,OAAOrvsB,KAAKozD,WAAW,2BAEvBi8oB,4BAAwBzisB,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3CypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B2pJ,gBACA,OAAOv2J,KAAKozD,WAAW,aAEvBmjG,cAAU3pJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B4N,UACA,OAAOxa,KAAKozD,WAAW,OAEvB54C,QAAI5N,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvB88D,UACA,OAAO1pE,KAAKozD,WAAW,OAEvBsW,QAAI98D,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvBqgsB,gBACA,OAAOjtsB,KAAKozD,WAAW,aAEvB65oB,cAAUrgsB,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BqjP,uBACA,OAAOjwP,KAAKozD,WAAW,oBAEvB68L,qBAAiBrjP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B25J,sBACA,OAAOvmK,KAAKozD,WAAW,mBAEvBmzG,oBAAgB35J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCsjP,yBACA,OAAOlwP,KAAKozD,WAAW,sBAEvB88L,uBAAmBtjP,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC65J,iBACA,OAAOzmK,KAAKozD,WAAW,cAEvBqzG,eAAW75J,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BqhD,gBACA,OAAOjuD,KAAKozD,WAAW,aAEvBnF,cAAUrhD,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B2isB,yBACA,OAAOvvsB,KAAKozD,WAAW,sBAEvBm8oB,uBAAmB3isB,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC4isB,qBACA,OAAOxvsB,KAAKozD,WAAW,kBAEvBo8oB,mBAAe5isB,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC6isB,oBACA,OAAOzvsB,KAAKozD,WAAW,iBAEvBq8oB,kBAAc7isB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC8isB,iCACA,OAAO1vsB,KAAKozD,WAAW,8BAEvBs8oB,+BAA2B9isB,GAC3B5M,KAAK6yD,WAAW,6BAA8BjmD,GAM9C+isB,2BACA,OAAO3vsB,KAAKozD,WAAW,wBAEvBu8oB,yBAAqB/isB,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxCgjsB,oBACA,OAAO5vsB,KAAKozD,WAAW,iBAEvBw8oB,kBAAchjsB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B0qkB,sBACA,OAAOt3kB,KAAKozD,WAAW,mBAEvBkkhB,oBAAgB1qkB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCuwe,sBACA,OAAOn9e,KAAKozD,WAAW,mBAEvB+pb,oBAAgBvwe,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBo6J,uBACA,OAAOhnK,KAAKozD,WAAW,oBAEvB4zG,qBAAiBp6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHqlI,sBACA,OAAO7pJ,KAAKozD,WAAW,WAEvBy2F,oBAAgBj9I,GAChB5M,KAAKm0D,YAAY,UAAWvnD,GAEhCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI2hrB,IAAe/rsB,EAASoqB,GAEvChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,UAAWv8I,GAC7Bj2B,KAAKwyK,aAAa,mBAAoBv8I,GACtCj2B,KAAKwyK,aAAa,QAASv8I,GAE/Bu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,WAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB0msB,SAAwB7ssB,UAAO,SAAyCP,GAAK,OAAO,IAAKA,GAAKotsB,GAAyB3ssB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACra0/rB,EAAwBxnqB,UAAiCnlC,MAAqB,CAAE8E,KAAM6nsB,EAAyBttrB,UAAW,CAAC,CAAC,sBAAuBk4H,eAAgB,SAAgDxpF,EAAIv9C,EAAKgnI,GAEzO,GAF8P,EAALzpF,GACvP/tD,MAAkBw3I,EAAU4G,GAAoB,GACzC,EAALrwF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI0yI,gBAAkBzL,KAClE6vI,aAAc,SAA8Cv5N,EAAIv9C,GAAgB,EAALu9C,GAC5E/tD,MAAc,cAAe,SAAgEkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAzHluB,CAAqI,SAAU,SAA2DkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MACtOK,OAAQ,CAAE26N,kBAAmB,oBAAqB/mJ,UAAW,YAAaJ,mBAAoB,qBAAsB6nJ,gBAAiB,kBAAmBT,eAAgB,iBAAkBzoG,QAAS,UAAW2wb,gBAAiB,kBAAmBxnV,iBAAkB,mBAAoBksN,wBAAyB,0BAA2BrrU,eAAgB,iBAAkBjpH,SAAU,WAAY2mrB,2BAA4B,6BAA8B3ziB,cAAe,gBAAiB20F,uBAAwB,yBAA0BI,gBAAiB,kBAAmBhvJ,YAAa,cAAe++L,QAAS,UAAW8ua,iBAAkB,mBAAoBC,aAAc,eAAgBC,YAAa,cAAeJ,yBAA0B,2BAA4BK,mBAAoB,qBAAsBC,YAAa,cAAevmmB,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB0mmB,sBAAuB,wBAAyBD,wBAAyB,0BAA2Bh5iB,QAAS,UAAWoP,QAAS,UAAWlP,UAAW,YAAa/7I,IAAK,MAAOkvD,IAAK,MAAOujoB,UAAW,YAAar9c,OAAQ,SAAUK,iBAAkB,mBAAoBzhK,SAAU,WAAY/pB,WAAY,aAAc8hG,gBAAiB,kBAAmB2pF,mBAAoB,qBAAsBzpF,WAAY,aAAcx4G,UAAW,YAAashpB,mBAAoB,qBAAsBC,eAAgB,iBAAkBC,cAAe,gBAAiBC,2BAA4B,6BAA8BC,qBAAsB,uBAAwBC,cAAe,gBAAiBxwjB,YAAa,cAAevwE,SAAU,WAAYyogB,gBAAiB,kBAAmBn6F,gBAAiB,kBAAmBx2U,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASo6J,iBAAkB,mBAAoBj4F,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE95H,SAAU,WAAYorO,SAAU,WAAYhnJ,eAAgB,iBAAkBo9D,OAAQ,SAAUC,MAAO,QAAStxE,YAAa,cAAeuxE,WAAY,aAAcl9D,UAAW,YAAaC,WAAY,aAAcxU,cAAe,gBAAiB0xE,QAAS,UAAWC,UAAW,YAAaC,QAAS,UAAWspF,SAAU,WAAYj7J,gBAAiB,kBAAmB4xE,QAAS,UAAW3R,eAAgB,iBAAkBsjW,wBAAyB,0BAA2BplV,gBAAiB,kBAAmBC,yBAA0B,2BAA4BolV,sBAAuB,wBAAyBC,qBAAsB,uBAAwBhqO,cAAe,gBAAiBu9a,sBAAuB,wBAAyBtzM,uBAAwB,yBAA0BhyC,8BAA+B,gCAAiClzS,qBAAsB,uBAAwBC,eAAgB,iBAAkBsgiB,iCAAkC,mCAAoC7H,oBAAqB,sBAAuBv9a,6BAA8B,+BAAgCC,sBAAuB,wBAAyBl7G,kBAAmB,oBAAqBsgiB,cAAe,gBAAiBC,uBAAwB,yBAA0BC,mBAAoB,qBAAsBC,kBAAmB,oBAAqBC,+BAAgC,iCAAkCC,yBAA0B,2BAA4BC,kBAAmB,oBAAqB3giB,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2B0giB,4BAA6B,8BAA+BC,8BAA+B,gCAAiCxlb,cAAe,gBAAiBC,cAAe,gBAAiBE,gBAAiB,kBAAmB03L,UAAW,YAAaE,UAAW,YAAa0tP,gBAAiB,kBAAmBjlb,aAAc,eAAgBC,uBAAwB,yBAA0BE,eAAgB,iBAAkBr7G,iBAAkB,mBAAoBy7G,sBAAuB,wBAAyBC,yBAA0B,2BAA4BC,iBAAkB,mBAAoBykb,gBAAiB,kBAAmBC,yBAA0B,2BAA4BC,qBAAsB,uBAAwBC,oBAAqB,sBAAuBC,iCAAkC,mCAAoCC,2BAA4B,6BAA8BC,oBAAqB,sBAAuB9kb,kBAAmB,oBAAqBv7G,eAAgB,iBAAkB43hB,sBAAuB,wBAAyBC,sBAAuB,wBAAyBp8a,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAem7H,uBAAwB,yBAA0B7lI,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CAC7tK2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA0C4F,EAAIv9C,KAAUzL,cAAe,IA7wBnK4nsB,MAokCAoB,UAAN,SAEmBA,SAAqBjusB,UAAO,SAAsCP,GAAK,OAAO,IAAKA,GAAKwusB,IACxFA,EAAqBz/rB,UAAiCtO,MAAoB,CAAE8E,KAAMipsB,IAClFA,EAAqBx/rB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC7F6vI,GACAua,GACAra,GACA0I,GACA4C,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAj2F,GACA1H,IACDyyF,GACHua,GACAra,GACA0I,GACA4C,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACA39F,MAzCFmipB,MC5kCN,IAAIC,GAAqB,CACrBxmU,QAAS,cACTS,SAAU,eACVnkU,KAAM,mBACN70D,UAAW,oBAGXg/rB,IAA4BzgnB,WAAkB,CAC9C/V,KAAM,WACFp+E,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK60sB,mBAAqB,GAC1B70sB,KAAK80sB,mBAETvgnB,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B47oB,yBAA0B,IAC1BC,sBAAuB,EACvBC,gCAAiC,IACjCC,6BAA8B,GAC9BC,kCAAmC,OAG3CvgnB,qBAAsB,WAClB,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,SAAS88J,GACb,OAAOA,EAAQx/J,OAEnB/vC,QAAS,CACLqjrB,gCAAiC,IACjCC,6BAA8B,GAC9BC,kCAAmC,IAExC,CACC9woB,OAAQ,WACJ,OAAOrB,aAAkBnB,SAAWmB,iBAExCpxC,QAAS,CACLojrB,sBAAuB,SAInCI,qBAAsB,SAASC,GAC3B,MApCW,UAoCWA,GAE1BC,mCAAoC,SAASC,EAAgBC,GACzD,IAAIlioB,EAAOtzE,KACPy1sB,EAAmB,SAASC,GAC5B,MAAO,CACHjqsB,KAAM,QACNipE,WAAO,MAA0BA,MAAQpB,EAAKhgB,OAAO,yBAA2BoipB,EAAehhoB,MAC/FL,cAAU,MAA0BA,SAAWf,EAAKhgB,OAAO,4BAA8BoipB,EAAerhoB,WAGhH,MAAO,CACH3E,MAAO,SAASvU,EAAUu6oB,GACtB,IAAI91oB,KAAQ+F,OAASxK,EAASpuD,UAAYyosB,EACtC5roB,EAAY8roB,EAAe9roB,UAC3B7lD,EAAS0xrB,EAAiBC,GAC9B3xrB,SAAOwtD,GAAK,CACRjW,KAAM,EACN8c,QAAS,GAGTr0D,EAAOlb,KADP,cACc,CACVyyD,KAAMsE,EACNwY,QAASm9nB,GAEN,eACO,CACVj6oB,MAAOsE,EACPwY,QAASm9nB,GAGC,CACVj6oB,KAAM,EACN8c,QAAS,GAGVnD,mBAAmB9Z,EAAUp3C,IAExCq+D,MAAO,SAASjnB,EAAUu6oB,GACtB,IAAI91oB,KAAQ+F,OAASxK,EAASpuD,UAAYyosB,EACtC5roB,EAAY8roB,EAAe9roB,UAC3B7lD,EAAS0xrB,EAAiBC,GAC9B3xrB,SAAOlb,KAAO,CACVyyD,KAAM,EACN8c,QAAS,GAGTr0D,EAAOwtD,GADP,cACY,CACRjW,MAAOsE,EACPwY,QAASm9nB,GAEN,eACK,CACRj6oB,KAAMsE,EACNwY,QAASm9nB,GAGD,CACRj6oB,KAAM,EACN8c,QAAS,GAGVnD,mBAAmB9Z,EAAUp3C,MAIhD4xrB,sBAAuB,WACnB,IAAIrioB,EAAOtzE,KACPy1sB,EAAmB,SAASC,GAC5B,MAAO,CACHjqsB,KAAM,MACNmqsB,gBAAiB,wBACjBlhoB,WAAO,MAA0BA,MAAQpB,EAAKhgB,OAAO,yBAA2BoipB,EAAehhoB,MAC/FL,cAAU,MAA0BA,SAAWf,EAAKhgB,OAAO,4BAA8BoipB,EAAerhoB,WAGhH,MAAO,CACH3E,MAAO,SAASvU,EAAUu6oB,GACtB,IAAI9roB,EAAY8roB,EAAe9roB,UAC3B7lD,EAAS0xrB,EAAiBC,GAC9B3xrB,SAAO2wD,MAAQ,WAAuB3wD,EAAO2wD,MAAQ3wD,EAAOswD,SAC5DtwD,EAAOlb,KAAO,iCAAmC8rsB,GAAmB/qoB,GACpE7lD,EAAOwtD,GAAK,kBACL0D,mBAAmB9Z,EAAUp3C,IAExCq+D,MAAO,SAASjnB,EAAUu6oB,GACtB,IAAI9roB,EAAY8roB,EAAe9roB,UAC3B7lD,EAAS0xrB,EAAiBC,GAC9B3xrB,SAAOlb,KAAO,iCAAmC8rsB,GAAmB/qoB,GACpE7lD,EAAOwtD,GAAK,kBACL0D,mBAAmB9Z,EAAUp3C,MAIhD8xrB,oBAAqB,WACjB,IAAIvioB,EAAOtzE,KACP81sB,EAAa,CACbrqsB,KAAM,MACNmqsB,gBAAiB,uBACjBvhoB,SAAUf,EAAKhgB,OAAO,6BAE1B,MAAO,CACHoc,MAAO,SAASvU,EAAUu6oB,GACtB,IAAI3xrB,EAAS+xrB,EACTlsoB,EAAY8roB,EAAe9roB,UAC/B7lD,SAAO2wD,MAAQ,WAAuBpB,EAAKhgB,OAAO,yBAA2BggB,EAAKhgB,OAAO,4BAA8B,EACvHvvC,EAAOlb,KAAO,gCAAkC8rsB,GAAmB/qoB,GACnE7lD,EAAOwtD,GAAK,kBACL0D,mBAAmB9Z,EAAUp3C,IAExCq+D,MAAO,SAASjnB,EAAUu6oB,GACtB,IAAI3xrB,EAAS+xrB,EACTlsoB,EAAY8roB,EAAe9roB,UAC/B7lD,SAAO2wD,MAAQpB,EAAKhgB,OAAO,yBAC3BvvC,EAAOlb,KAAO,gCAAkC8rsB,GAAmB/qoB,GACnE7lD,EAAOwtD,GAAK,kBACL0D,mBAAmB9Z,EAAUp3C,MAIhD+wrB,gBAAiB,WACb90sB,KAAKszB,QACLtzB,KAAK+1sB,yBACL/1sB,KAAKyyY,gBAETn/W,MAAO,SAASjwB,GACZ,IAAIiwE,EAAOtzE,KACPg2sB,EAAuB,MAC3BltoB,OAAK9oE,KAAK60sB,mBAAqB,SAAStisB,EAAO0jsB,GACtC5ysB,GAAQA,IAAS4ysB,EAAO5ysB,KAGzB2ysB,EAAqB3ssB,KAAK4ssB,GAF1B3ioB,EAAKhgB,OAAOggB,EAAK8hoB,qBAAqBa,EAAO5ysB,WAAO,KAK5DrD,KAAK60sB,mBAAqBmB,EAC1Bh2sB,KAAKyyY,gBAETyjU,eAAgB,SAAS7ysB,EAAM0gB,GAC3B/jB,KAAK60sB,mBAAmBxrsB,KAAK,CACzBhG,KAAMA,EACN0gB,OAAQA,KAGhB0uX,aAAc,WACV,IAAIn/T,EAAOtzE,KACPm2sB,EAAc,MAClBrtoB,OAAK9oE,KAAK60sB,mBAAqB,SAAStisB,EAAO0jsB,GAC3C,IAAI1wmB,EAAO,CACPlhC,OAAQ4xoB,EAAOlyrB,OAAOsgD,OACtBzyC,QAAS,IAEb2zE,EAAK3zE,QAAQ0hD,EAAK8hoB,qBAAqBa,EAAO5ysB,OAAS4ysB,EAAOlyrB,OAAOkjD,UACrEkvoB,EAAY9ssB,KAAKk8F,KAErBvlG,KAAK60F,oBAAoBshnB,IAE7BC,UAAW,SAAS/ysB,GAEhB,QADIqP,EAASrP,EACN,iBAAoBqP,GACvBA,EAAS1S,KAAKszD,OAAOtzD,KAAKo1sB,qBAAqB1isB,IAEnD,OAAOA,GAEXqjsB,uBAAwB,WACpB/1sB,KAAKk2sB,eAAe,MAAO,CACvBjvoB,UAAW,CACP2uoB,gBAAiB,2BACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,WAAY,CAC5BjvoB,UAAWjnE,KAAK21sB,0BAEpB31sB,KAAKk2sB,eAAe,UAAW,CAC3BjvoB,UAAWjnE,KAAK61sB,wBAEpB71sB,KAAKk2sB,eAAe,OAAQ,CACxBjvoB,UAAW,CACP2uoB,gBAAiB,oBACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,QAAS,CACzB7xoB,OAAQ,WACJ,OAAOrB,aAAkBnB,SAAWmB,iBAExCiE,UAAWjnE,KAAKs1sB,mCAAmC,EAAG,KAE1Dt1sB,KAAKk2sB,eAAe,QAAS,CACzB7xoB,OAAQ,WACJ,OAAQrB,aAAkBnB,UAAYmB,iBAE1CiE,UAAW,CACP2uoB,gBAAiB,qBACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,aAAc,CAC9BjvoB,UAAW,CACP2uoB,gBAAiB,0BACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,WAAY,CAC5BjvoB,UAAW,CACP2uoB,gBAAiB,wBACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,eAAgB,CAChC7xoB,OAAQ,WACJ,OAAQrB,aAAkBnB,UAAYmB,iBAE1CiE,UAAW,CACP2uoB,gBAAiB,4BACjBlhoB,MAAO10E,KAAKszD,OAAO,yBACnB+gB,SAAUr0E,KAAKszD,OAAO,+BAG9BtzD,KAAKk2sB,eAAe,eAAgB,CAChC7xoB,OAAQ,WACJ,OAAOrB,aAAkBnB,SAAWmB,iBAExCiE,UAAWjnE,KAAKs1sB,mCAAmC,EAAG,MAE1Dt1sB,KAAKk2sB,eAAe,eAAgB,CAChCjvoB,UAAW,CACP2uoB,gBAAiB,oBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,gBAAiB,CACjCjvoB,UAAW,CACP2uoB,gBAAiB,qBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,qBAAsB,CACtCjvoB,UAAW,CACP2uoB,gBAAiB,0BACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,eAAgB,CAChCjvoB,UAAW,CACP2uoB,gBAAiB,oBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,oBAAqB,CACrCjvoB,UAAW,CACP2uoB,gBAAiB,yBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,oBAAqB,CACrCjvoB,UAAW,CACP2uoB,gBAAiB,yBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,kBAAmB,CACnCjvoB,UAAW,CACP2uoB,gBAAiB,uBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,wCAG3BtzD,KAAKk2sB,eAAe,oBAAqB,CACrCjvoB,UAAW,CACP2uoB,gBAAiB,yBACjBjhkB,aAAc30I,KAAKszD,OAAO,gCAC1B+gB,SAAUr0E,KAAKszD,OAAO,mCACtBohB,MAAO10E,KAAKszD,OAAO,2CAK/B+ipB,IAAmB,IAAIzB,IC1UvBD,IAAqB,CACrBxmU,QAAS,cACTS,SAAU,eACVnkU,KAAM,mBACN70D,UAAW,oBAEX0gsB,IAAqB,eACdC,IAAqBp4nB,aAAc,CAC1CC,KAAM,WACFp+E,KAAKw2sB,mBAAqB,CACtB9moB,MAAO,EACP0S,MAAO,GAEXpiF,KAAKwiU,YAAc,GACnBxiU,KAAKupB,SAETktrB,kBAAmB,SAASjhf,EAAWz7I,EAAe27nB,EAAgBjqsB,GAClE+pN,KAAYp6J,MAAEo6J,GACd,IAAIliJ,EAAOtzE,KACP0S,EAAS,GAET2xrB,EAAkBrksB,KAAK02sB,+BAA+B38nB,EAD1D27nB,EAAiBA,GAAkB,GACsDjqsB,GACzF,OAAI44rB,GACA7ue,EAAU1sJ,KAAM,WACZ,IAAI7B,EAAYqM,EAAKqjoB,kBAAiBv7oB,QAAEp7D,MAAOqksB,EAAiBqR,GAC5DzuoB,IACAA,EAAUz/D,QAAQoG,SAAS0osB,KAC3BrvoB,EAAU3M,QACV5nD,EAAOrJ,KAAK49D,MAIjBv0D,GAEXgksB,+BAAgC,SAAS3yrB,EAAQ2xrB,EAAgBjqsB,GAC7D,IAAIiH,EAKJ,GAJI,iBAAoBqR,IAEpBA,EAAS6yrB,cADQ7yrB,IAGhBA,EACQ,IACFvL,SAAWuL,EAAOtY,IACzBiH,EAASqR,EAAOtY,OACb,CAKH,KAJAiH,KAAS2M,MAAO,CACZi5D,0BAA0B,EAC1B7E,YAAazzE,KAAK62sB,kBACnB9yrB,EAAQ2xrB,IACCjqsB,MAAQ,QAAUiH,EAAOjH,KAAM,CACvC,IAAIm5F,EAAW,MAAQn5F,EACnBmqsB,GAAmBljsB,EAAOkjsB,gBAAkB,IAAMljsB,EAAOkjsB,gBAAkB,IAAMjB,IAAmBjisB,EAAOk3D,WAC/Gl3D,EAAOjH,KAAO,MACdiH,EAAO7J,MAAQ6J,EAAO7J,MAAQ+7F,GAAYgxmB,EAC1CljsB,EAAO6+D,GAAK7+D,EAAO6+D,IAAMqzB,EAAW,UAExClyF,EAAOiiI,aAAejiI,EAAOiiI,cAAgB,EAC7CjiI,EAAOgiE,MAAQhiE,EAAOgiE,OAAS,EAC3BhiE,EAAOiiI,eACPjiI,EAAOgiE,OAAS10E,KAAKw2sB,mBAAmB/qsB,GACxCzL,KAAKw2sB,mBAAmB/qsB,IAASiH,EAAOiiI,mBAnB5CjiI,OAAS,EAsBb,OAAOA,GAEXiksB,iBAAkB,SAASx7oB,EAAUkpoB,EAAiBqR,GAClD,IAAIhjsB,EACJ,OAAIuyD,SAAco/nB,GACd3xrB,EAASuiE,mBAAmB9Z,EAAUkpoB,MAC/B7rrB,OAAW6rrB,KAClB3xrB,EAAS2xrB,EAAgBlpoB,EAAUu6oB,IAEhChjsB,GAEXoksB,iBAAkB,WAEd,QADIh0Y,EAAa9iU,KAAKwiU,YACbh+T,EAAI,EAAGA,EAAIs+T,EAAWr+T,OAAQD,IACnCs+T,EAAWt+T,GAAG4oD,SAGtB2ppB,gBAAiB,SAASxhoB,GAEtB,QADIutP,EAAa9iU,KAAKwiU,YACbh+T,EAAI,EAAGA,EAAIs+T,EAAWr+T,OAAQD,IACnCs+T,EAAWt+T,GAAGwwE,KAAKO,IAG3ByhoB,iBAAkB,WAEd,QADIl0Y,EAAa9iU,KAAKwiU,YACbh+T,EAAI,EAAGA,EAAIs+T,EAAWr+T,OAAQD,IACnCs+T,EAAWt+T,GAAGgD,QAAQsG,YAAYwosB,KAEtCt2sB,KAAKwiU,YAAY/9T,OAAS,GAE9B8kB,MAAO,WACHvpB,KAAKw2sB,mBAAmB9moB,MAAQ,EAChC1vE,KAAKw2sB,mBAAmBp0nB,MAAQ,EAChCpiF,KAAKg3sB,mBACLh3sB,KAAKsqQ,kBAAoB,IAAI92L,MAC7BxzE,KAAK62sB,iBAAmB72sB,KAAKsqQ,kBAAkBxwN,WAEnD41B,MAAO,SAAS8lJ,EAAW6ue,EAAiBqR,GACxC,IAAI5yY,EAAa9iU,KAAKy2sB,kBAAkBjhf,EAAW6ue,EAAiBqR,EAAgB,SACpF11sB,KAAKwiU,YAAYn5T,KAAKqyB,MAAM17B,KAAKwiU,YAAaM,IAElD1gP,MAAO,SAASozI,EAAW6ue,EAAiBqR,GACxC,IAAI5yY,EAAa9iU,KAAKy2sB,kBAAkBjhf,EAAW6ue,EAAiBqR,EAAgB,SACpF11sB,KAAKwiU,YAAYn5T,KAAKqyB,MAAM17B,KAAKwiU,YAAaM,IAElD11Q,MAAO,WACH,IACI16C,EADA4gE,EAAOtzE,KAEX,GAAKA,KAAKwiU,YAAY/9T,OAGf,CACH,IAAIwysB,GAAqBv2rB,SAAI1gB,KAAKwiU,YAAc,SAASv7P,GACrD,IAAIv0D,EAAS,IAAI8gE,MACjBvM,SAAUsM,SAASO,OAAQ,WACvBphE,EAAOmhB,YAEJnhB,EAAOonC,YAElBpnC,EAASmhE,YAAWzY,KAAG67oB,GAAoBnjoB,OAAQ,WAC/CR,EAAKg3L,kBAAkBz2O,UACvBy/C,EAAK/pD,WAETuvF,SAAc,WACVxlC,EAAKwjoB,0BAfTxjoB,EAAK/pD,QACL7W,GAAU,IAAI8gE,OAAU3/C,UAAUimB,UAiBtC,OAAOpnC,GAEXsiE,KAAM,SAASO,GACXv1E,KAAK+2sB,gBAAgBxhoB,MCxHzBtzE,KAASk8D,WAGT+4oB,IAA0B,uBAC1BC,IAAiC,8BACjCC,IAAiC,8BAOjC9xM,IAAU,CAAC,aAAc,WACzB+xM,IAAiBjvmB,WAAe,CAChC7T,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3Bm+oB,mBAAmB,EACnBC,gBAAY,EACZtwoB,eAAW,EACXuwoB,yBAAqB,EACrBhunB,WAAY,KACZ0lE,QAAS,QAGjBlqD,0BAA2B,WACvB,MAdsB,WAgB1BlP,MAAO,WACH91F,KAAKy3sB,mBAAqB,IAAIlB,IAC9Bv2sB,KAAK03sB,eACL13sB,KAAK23sB,cACL33sB,KAAK43sB,iBAAmB53sB,KAAKm7D,WAAWkvB,QAAQrO,WAChDh8E,KAAKyvN,eACLzvN,KAAKm5D,YAETu+oB,aAAc,WACV13sB,KAAKm7D,WAAWvtD,SAlCI,sBAoCxB+psB,YAAa,WACT,IAAIrkoB,EAAOtzE,KACPm7D,EAAWn7D,KAAKm7D,WAChBo8oB,EAAav3sB,KAAKszD,OAAO,cACzBukpB,EAAW,IAAMvkoB,EAAKwkoB,4BACtB9phB,OAAUuphB,IACVhukB,SAAYgukB,GAAYrjoB,KAAK2joB,IAE7B18oB,EAAS/uD,KAAK,qBAAsByrsB,QAChC,OACA18oB,EAASvtD,SAASupsB,OAI9B1nf,aAAc,WACVzvN,KAAKqwN,SAAW,IAChBvnJ,SAAKw8b,IAAS,CAAC9gf,EAAGuoE,KACd/sF,KAAKqwN,SAAStjI,GAAU/sF,KAAKo2F,sBAAsBrJ,IAAWzgC,SAGtEi2C,YAAa,WACTviG,KAAKm5D,WACAn5D,KAAK24Q,eACN34Q,KAAK24Q,aAAe34Q,KAAKmqG,eACzBnqG,KAAKmqG,eAAiB,QAE1BnqG,KAAK24Q,gBAETluK,mBAAoB,WAChBzqG,KAAKm7D,WAAWrtD,YAlEL,aAmEX9N,KAAKm7D,WAAWyuB,OAAO5pF,KAAK43sB,kBAC5B53sB,KAAK+3sB,oBAETD,uBAAwB,WACpB,IAAIxkoB,EAAOtzE,KACPm7D,EAAWn7D,KAAKm7D,WAChBzoD,EAAS,IAAI8gE,MACjBrY,SAASrtD,YAAYqpsB,KACrBh8oB,EAASvtD,SAASwpsB,KAClBp3sB,KAAKg4sB,mBACLh4sB,KAAKi4sB,aAAcn/lB,SAAa,KAC5BxlC,EAAK2+X,cAAc/9X,KAAK,KACpB,IAAIgkoB,EAAY,CACZ1wsB,QAAS2zD,GAEbmY,EAAK+8I,SAASnhE,QAAQ,CAACgpjB,IACvBxlsB,EAAOmhB,QAAQqkrB,KAChB/joB,KAAM,WACLzhE,EAAO0hE,WAAW1hE,EAAQ3S,eAG3B2S,EAAOonC,WAElBq+pB,qBAAsB,SAAS3wsB,GAC3B,IAAIo4T,EAAOt4P,GAAgB9/D,GAC3B,OAAOo4T,EAAKvoP,QAAU,GAAKuoP,EAAKtoP,OAAS,GAAKsoP,EAAKrkQ,MAAQt5D,IAAO89D,aAAe3N,0BAAgCua,eAAiBizP,EAAKtkQ,OAASr5D,IAAO49D,YAAczN,0BAAgC2Y,cAEzMynJ,SAAU,WACN,IAII4lf,EAJA9koB,EAAOtzE,KACPm7D,EAAWn7D,KAAKm7D,WAChB8L,KAAY/I,UAAel+D,KAAKszD,OAAO,aACvCkkpB,EAAsBx3sB,KAAKszD,OAAO,uBAEtCggB,SAAKmkoB,mBAAmBzioB,OACpB/N,GACIuwoB,EACAr8oB,EAAS11B,KAAK+xqB,GAAqB1uoB,KAAM,WACjCwK,EAAK6koB,qBAAqBn4sB,OAC1BszE,EAAKmkoB,mBAAmB/noB,OAAMtU,QAAEp7D,MAAOinE,KAI/CqM,EAAKmkoB,mBAAmB/noB,MAAMvU,EAAU8L,GAE5CmxoB,EAAiB9koB,EAAKmkoB,mBAAmBrqpB,SAEzCgrpB,GAAkB,IAAI5koB,OAAU3/C,UAAUimB,UAEvCs+pB,GAEXnmQ,YAAa,WACT,IAAI92Y,EAAWn7D,KAAKm7D,WAChBk9oB,EAAe,CACf7wsB,QAAS2zD,GAET6yF,EAAkBhuJ,KAAKolG,aAAaplG,KAAK+jG,iBAAiBnL,uBAC9D,OAAIo1D,GACAA,EAAgB/7F,OAAO,CACnB/9B,UAAWinC,EAAS6nB,QACpBo0I,SAAS,IAGjBp3N,KAAKs4sB,kBAAkBn9oB,GACvB1M,aAAqB0M,EAAU,qBAC/Bn7D,KAAKqwN,SAAS7mI,WAAW,CAAC6unB,IAC1Br4sB,KAAKgyO,aAAc,EACZhyO,KAAKwyN,YAEhBulf,iBAAkB,WACd,IAAI58oB,EAAWn7D,KAAKm7D,WAChBo9oB,IAA2Bp9oB,EAAS11B,KAAK,uCAA6ChhC,OAC1F02D,EAASvtD,SAASspsB,KACbqB,GACDp9oB,EAASh/B,WAAWvuB,SAtIc,wCAwIlC5N,KAAKszD,OAAO,sBACZtzD,KAAKw4sB,mBAAmBr9oB,IAGhCq9oB,mBAAoB,SAASzunB,GACzB/pF,KAAKy4sB,gBAAkB,IAAIj9d,IAAcpgL,QAAE,SAAU,CACjD2T,SAAS,IACV5T,WAAWvtD,SA5IqB,uCA6InCwtD,MAAE,SAASxtD,SA/IiB,8BA+IuBA,SA9IP,6CA8I+Dg8E,OAAO5pF,KAAKy4sB,iBAAiB5toB,SAASkf,IAErJuunB,kBAAmB,WACf,IAAIn9oB,EAAWn7D,KAAKm7D,WAChBn7D,KAAKy4sB,iBACLz4sB,KAAKy4sB,gBAAgB53sB,SAEzBs6D,EAASrtD,YAAYopsB,KACrB/7oB,EAASrtD,YAAYspsB,KACrBxhpB,GAAkBuF,EAASh/B,aAE/Bo6D,eAAgB,SAAS59E,GACrB,IAAI/L,EAAQ+L,EAAK/L,MACbypB,EAAgB1d,EAAK0d,cACzB,OAAQ1d,EAAKtV,UACJ,cACG,QAA2B,IAASuJ,EACpC5M,KAAK04sB,oBACE,IAASrirB,IAAiB,IAAUzpB,IAC3C5M,KAAKy3sB,mBAAmBzioB,OACxBh1E,KAAK+3sB,oBAET,UACC,wBACA,iBACA,UACD,cAEA/3sB,KAAKm5D,SAASxgD,KAG1B+/rB,iBAAkB,WACd,IAAIhmsB,EACJ,OAAI1S,KAAKgyO,aACLhyO,KAAKs4sB,oBACL5lsB,EAAS1S,KAAKwyN,YAEd9/M,EAAS1S,KAAK83sB,yBAEXplsB,GAEXimsB,cAAe,WACX,OAAO34sB,KAAK04sB,oBAEhBV,iBAAkB,WACVh4sB,KAAKi4sB,cACLj4sB,KAAKi4sB,YAAYnimB,QACjB91G,KAAKi4sB,iBAAc,IAG3Bv0rB,SAAU,WACN1jB,KAAKy3sB,mBAAmBzioB,MAAK,GAC7Bh1E,KAAKg4sB,mBACLh4sB,KAAKqwN,cAAW,EAChBrwN,KAAK43sB,sBAAmB,EACxB53sB,KAAKm5D,cAGb+6E,GAAkB,mBAAoBmjkB,SCgEhCuB,UAAN,SAEmBA,SAAuBnysB,UAAO,SAAwCP,GAAK,OAAO,IAAKA,GAAK0ysB,IAC5FA,EAAuB3jsB,UAAiCtO,MAAoB,CAAE8E,KAAMmtsB,IACpFA,EAAuB1jsB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC/F8/H,GACAyiB,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAz1G,GACA1H,IACD0iF,GACHyiB,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAn9G,MAzBFqmpB,qCCnTC,cACH,IAAKC,MACD,MAAM3+mB,SAAa,QAAS,sBAEhC,OAAO4+mB,ICgCX,SAnCA,UACIj5sB,YAAYs+G,GACR,IACI46lB,gBAAiBA,GACjBC,KACJh5sB,KAAKgxF,UAAY,IAAI+nnB,EACrB/4sB,KAAK42b,OAASz4U,EAElB86lB,wBAAwB9msB,EAAK+msB,GACzBl5sB,KAAKgxF,UAAU0lU,MAAM,2BAA4B3jZ,SAASZ,GAAM+msB,GAEpEC,iBACI,KAAM,kBAEVC,aAAajnsB,EAAKvF,IAClByssB,eAAelnsB,EAAKkW,IACpBixrB,eAAennsB,EAAKkW,IACpBkxrB,WAAWlxrB,IACXmxrB,gBAAgBrnsB,EAAKkiD,IACrBs+K,YACI,OAAO,EAEX8me,SAASplpB,GAUL,OATWA,EAAM9gC,OAAO,CAAC+R,EAAU1oB,UAC3B,IAAWA,EAAK6nB,SAChBa,EAASj8B,KAAKuT,EAAK6nB,SAEnB7nB,EAAKy3C,QACL/uB,EAAWA,EAASzjB,OAAO7hB,KAAKy5sB,SAAS78rB,EAAKy3C,SAE3C/uB,GACR,MC3BX,IAAI6zc,IAAuBzqa,GAAa7H,MAAkB,kBAsC1D,UApCA,kBAA2BuhC,GACvBtS,QACIh2F,MAAMg2F,QACN91F,KAAK05sB,2BAETthnB,UACIt4F,MAAMs4F,UACNp4F,KAAK25sB,wBAETC,wBACI,MAAO,CAAC55sB,KAAKm7D,YAEjBw+oB,wBACmB35sB,KAAK45sB,wBACX5zsB,QAAQwB,IACbinD,SAAiBjnD,EAAS2xe,KAC1B1qb,QAAgBjnD,EAAS2xe,IAAsBnje,OACtColD,MAAEplD,EAAEhU,QAAQ87E,QAlBF,eAkBoCr5E,QAC/CzE,KAAK65sB,yBAKrBH,2BACI15sB,KAAK65sB,mBAAqB75sB,KAAKo2F,sBAAsB,eAEzDG,eAAe59E,GAEF,gBADDA,EAAKtV,KAELrD,KAAK05sB,2BAGL55sB,MAAMy2F,eAAe59E,KCrCrC,IACImhsB,GAAoB,CACpBC,2BAA2BhiK,EAAazzb,EAAUsI,EAAWY,GACzD,IAAInJ,KAAejpD,MAAEoyD,GACrBnJ,EAAarhC,QACb,IAAI2gD,OAAU,MAAoBq2kB,YAAc11lB,EAAS01lB,aAAc,EACvE,GAAI11lB,EAASqtB,OAASrtB,EAASw0E,QAAS,CACpC,IAAIpnD,EAAe1E,GAAkB1oB,EAASqtB,MAC9CttB,EAAaz6B,OAAO8nD,WACbqma,EAAYkiK,uBAAwB,MAAqBA,qBAAqBt2kB,GAAU,CAC/F,IAAI2shB,EAAgBtjhB,GAAkB,SACtCsjhB,EAAcv0lB,IAAI,aAAc76B,EAAU43J,QAAqB,UAAX,UACpDz0E,EAAaz6B,OAAO0mkB,GAExBjsiB,EAAaz6B,OAAO,mCAAqC06B,EAAS7tG,KAAO,WACrE7N,MAAM8B,QAAQ45G,EAASjwD,QAAUiwD,EAASjwD,MAAM5vD,OAAS,GACzD4/G,EAAaz6B,OAAO,+FAG5BswnB,uBAAwB,IAnBK,yBAoB7BC,uBAAuB3hnB,EAAQ8rB,EAAU2rJ,GACrC,QAAK,IAAW3rJ,EAAS7/E,cAAW,IAAW6/E,EAASjhH,MAAWuF,MAAM8B,QAAQ45G,EAASjwD,QAAWiwD,EAASjwD,MAAM5vD,QAEtDy0sB,QACnD,IAAW50lB,EAAS01lB,kBAAe,IAAW11lB,EAAS13G,MAAO,CACrE,IAAIwtsB,EAAaN,GAAkBO,wBAAwB7hnB,EAAQ8rB,EAAUA,EAAS13G,OACtFqjQ,EAAc71O,KAAKp6B,KAAMskH,EAAS01lB,iBAAa,EAAQI,QALkE,CACzH,IAAIlB,EAAYY,GAAkBO,wBAAwB7hnB,EAAQ8rB,GAClE2rJ,EAAc71O,KAAKp6B,KAAMskH,EAAS7/E,QAAS6/E,EAASjhH,KAAM61sB,KAMlEoB,aAAc19rB,GAAQ,iBAAoBA,EAAKhQ,MAAQuJ,KAAKC,UAAUwG,EAAKhQ,OAASgQ,EAAKhQ,MACzF2tsB,kBAAkBxiK,EAAayiK,GAC3B,GAAIziK,EAAa,CACbyiK,EAAYA,EAAUlzsB,QACtB,IAAImzsB,EAAuBz6sB,KAAK06sB,yBAAyBF,GACrDziK,EAAY4iK,oBAAsB5iK,EAAY4iK,mBAAmBF,KACjED,EAAUA,EAAU/1sB,OAAS,IAAMsziB,EAAY4iK,mBAAmBF,GAAsBG,qBAGhG,OAAO56sB,KAAK66sB,uBAAuBL,IAEvCE,yBAAyBF,GACrB,IAAIM,EAAkBN,EAAUlzsB,MAAM,EAAGkzsB,EAAU/1sB,OAAS,GAC5D,OAAOzE,KAAK66sB,uBAAuBC,IAEvCD,uBAAwBL,GAAaA,EAAUjnrB,OAAO,CAACtc,EAAGzS,IAAMyS,EAAI,SAAS4K,OAAOrd,EAAG,MAAO,IAC9F61sB,yBAAwB7hnB,EAAQ57E,EAAMhQ,IAC9BgQ,EAAKm+rB,aACEn+rB,EAAKm+rB,aAAavinB,GAEtB5rF,EAEXousB,uBAAuBjjK,EAAakjK,EAAgBC,EAAgB7mpB,GAC3D0jf,EAAY4iK,qBACb5iK,EAAY4iK,mBAAqB,IAEhC5iK,EAAY4iK,mBAAmBM,KAChCljK,EAAY4iK,mBAAmBM,GAAkB,CAC7C5mpB,MAAO0jf,EAAYzkf,OAAO2npB,EAAiB,UAAY,KAG/D5mpB,EAAQA,EAAM3zC,IAAI9D,IAAS,CACvBhQ,MAAO5M,KAAKs6sB,aAAa19rB,GACzBnG,KAAMmG,EAAKnG,KACXqiL,QAASl8K,EAAKk8K,QACdtgG,OAAQu/c,EACRiiK,YAAakB,KAEjB,IAAIr3D,EAAgB9rG,EAAY4iK,mBAAmBM,GAAgB5mpB,MACnE0jf,EAAYzkf,OAAO2npB,EAAiB,QAAS5mpB,EAAMxyC,OAAOgioB,IACtD9rG,EAAY4iK,mBAAmBM,IAAmBp3D,EAAcp/oB,SAChEsziB,EAAY4iK,mBAAmBM,GAAgBL,oBAAsBvmpB,EAAM5vD,SAGnF02sB,6BAA6BpjK,EAAakjK,EAAgBlsoB,GACtDgpe,EAAYzkf,OAAO2npB,EAAiB,UAAWlsoB,IAEnDqsoB,2BAA2BrjK,EAAakjK,EAAgBC,EAAgBtusB,GACpE,IAAIynD,EAAQ0jf,EAAYzkf,OAAO2npB,EAAiB,SAC5C,kBAAqBrusB,GAAWynD,GAAUA,EAAM5vD,YAGzC,QACPzE,KAAKq7sB,+BAA+BtjK,EAAamjK,GAC7CtysB,MAAM8B,QAAQ2pD,IACdA,EAAMruD,QAAQ,CAAC4W,EAAMrK,KACjBqK,EAAKk8K,QAAUl8K,EAAKhQ,QAAUA,MANtC5M,KAAKq7sB,+BAA+BtjK,GAAa,GACjDA,EAAYzkf,OAAO2npB,EAAiB,UAAWrusB,KAUvDyusB,+BAA+BtjK,EAAa5liB,GACnC4liB,EAAYkiK,uBACbliK,EAAYkiK,qBAAuB,IAEvCliK,EAAYkiK,qBAAqB9nsB,IAAO,IAGhD,SAAe2nsB,GC/Ef,IAIIwB,GAAgD,6CA8cpD,kBAAgCC,GAC5BpC,iBACI,OAAOn5sB,KAAKy5sB,SAASz5sB,KAAK42b,OAAO4kR,WAErCpC,aAAajnsB,EAAKvF,GACd5M,KAAK42b,OAAO6kR,cAActpsB,EAAKvF,GAEnCyssB,eAAelnsB,EAAKkW,GAChBroB,KAAK42b,OAAO8kR,gBAAgBvpsB,EAAKkW,GAErCkxrB,WAAWlxrB,GACProB,KAAK42b,OAAO+kR,YAAYtzrB,GAE5BmxrB,gBAAgBrnsB,EAAKkiD,GACjBr0D,KAAK42b,OAAOglR,iBAAiBzpsB,EAAKkiD,IAG1C,UACIx0D,YAAY24F,GACRx4F,KAAK24U,QAAUngP,EAEnBqjnB,UAAUC,GACN,YAAO,MAEXvC,WAAWlxrB,GACProB,KAAK24U,QAAQrlR,OAAO,YAAajrC,GAErCja,SAASxB,EAAOyhH,EAAc0pb,EAAamjK,GACnC,UAAWl7sB,KAAK24U,QAAQrlR,SACxBtzD,KAAKg2oB,mBAAmBppoB,EAAOyhH,QACxB,IAAWzhH,GAClB5M,KAAK+7sB,mBAAmBnvsB,GAExBmriB,GACA/3iB,KAAKg8sB,4BAA4BjkK,EAAa,GAAImjK,EAAgBtusB,GAG1EqvsB,SAAS5npB,EAAO0jf,EAAamjK,GACrBnjK,EACA/3iB,KAAKk8sB,wBAAwBnkK,EAAa,GAAImjK,EAAgB7mpB,GAE9Dr0D,KAAKm8sB,mBAAmB9npB,GAGhC6npB,wBAAwBnkK,EAAakjK,EAAgBC,EAAgB7mpB,GACjEylpB,0BAAyC/hK,EAAakjK,EAAgBC,EAAgB7mpB,GAE1F8npB,mBAAmB9npB,GACX,UAAWr0D,KAAK24U,QAAQrlR,UACxBtzD,KAAK24U,QAAQrlR,OAAO,QAASe,EAAM3zC,IAAI9D,IAAS,CAC5ChQ,MAAOktsB,gBAA+Bl9rB,GACtCnG,KAAMmG,EAAKnG,SAIvBu/nB,mBAAmBppoB,EAAOyhH,GACtBruH,KAAK24U,QAAQrlR,OAAO,QAAS1mD,IACxB5M,KAAK24U,QAAQrlR,OAAO,iBAAmB+6D,GACxCruH,KAAK24U,QAAQrlR,OAAO,QAAS+6D,GAGrC0tlB,mBAAmBnvsB,GACX5M,KAAK24U,QAAQrlR,OAAO,gBAAkBtzD,KAAK24U,QAAQrlR,OAAO,iBAC1DtzD,KAAK24U,QAAQrlR,OAAO,OAAgBtzD,KAAK24U,QAAQrlR,OAArB1mD,EAA4B,cAAqC,kBAE7F5M,KAAK24U,QAAQx9Q,WAAW+oC,YAnhBV,mBAmhB2Ct3F,GAGjEovsB,4BAA4BjkK,EAAakjK,EAAgBC,EAAgBtusB,GACrEktsB,8BAA6C/hK,EAAakjK,EAAgBC,EAAgBtusB,IAGlG,kBAA0CwvsB,IACtCv8sB,YAAY24F,EAAQginB,EAAWU,EAAgBmB,GAC3Cv8sB,MAAM04F,GACNx4F,KAAKs8sB,WAAa9B,EAClBx6sB,KAAKu8sB,gBAAkBrB,EACvBl7sB,KAAKw8sB,YAAcH,EAEvBR,UAAUC,GACN,OAAOh8sB,MAAM+7sB,UAAUC,IAAmBA,IAAmB97sB,KAAK24U,QAEtE4gY,WAAWlxrB,GACProB,KAAK24U,QAAQrlR,OAAOtzD,KAAKy8sB,qBAAuB,YAAap0rB,GAC7D,IAAIq0rB,EAAc18sB,KAAK28sB,wBAAwB38sB,KAAK24U,QAAQrlR,OAAO,UACnEtzD,KAAKw8sB,YAAYlppB,OAAO,YAAaoppB,GAEzCC,wBAAwBtopB,GACpB,QAAIA,GACOA,EAAM7gC,KAAK5W,QAAQ,IAAWA,EAAK6nB,UAAY7nB,EAAKwL,UAAYpoB,KAAK28sB,wBAAwB//rB,EAAKy3C,QAIjHjmD,SAASxB,GACL5M,KAAKg8sB,4BAA4Bh8sB,KAAK24U,QAAS34U,KAAKy8sB,qBAAsBz8sB,KAAKu8sB,gBAAiB3vsB,GAEpGqvsB,SAAS5npB,GACLr0D,KAAKk8sB,wBAAwBl8sB,KAAK24U,QAAS34U,KAAKy8sB,qBAAsBz8sB,KAAKu8sB,gBAAiBlopB,GAEhGoopB,qBACI,OAAO3C,qBAAoC95sB,KAAK24U,QAAS34U,KAAKs8sB,aAGtE,SApjBA,kBAA6BM,IACzB9mnB,QACI91F,KAAKw7sB,UAAY,GACjBx7sB,KAAK68sB,aAAe,GACpB78sB,KAAK88sB,qBAAuB,GAC5B98sB,KAAK+8sB,iBAAmB,GACxB/8sB,KAAKg9sB,iBAAmB,GACxBh9sB,KAAKm3I,IAAM,IAAI8lkB,IAAkBj9sB,MACjCA,KAAKk9sB,2BACLl9sB,KAAKm9sB,yBACLn9sB,KAAKo9sB,2CACLt9sB,MAAMg2F,QAEVyM,cACIziG,MAAMyiG,cACN,IAAIw1K,IAAgB75M,YACfl+D,KAAKszD,OAAO,oBAAsBykN,IACnChpC,SAAS/uO,KAAKm7D,WAAY,IAE9Bn7D,KAAKw7sB,UAAYx7sB,KAAKq9sB,eACtBr9sB,KAAK68sB,aAAe,GACpB78sB,KAAK88sB,qBAAuB,GAC5B98sB,KAAK+8sB,iBAAmB,GACxB,IAAIr4e,EAAW1kO,KAAK6zX,qBAEpB,GADA7zX,KAAK66N,eAAe6J,IACf1kO,KAAKszD,OAAO,oBAAsBykN,EAAc,CACjD,IAAIulc,EAAkBt9sB,KAAKm7D,WAAW11B,KAAK,yBAC3CspM,OAAS/uO,KAAKm7D,cAAYwK,OAAS23oB,KAG3CzpV,qBACI,SAAOz4T,MAAE,SAASxtD,SAnCE,sBAmC8Bi9D,SAAS7qE,KAAKwiF,WAEpE66nB,eACI,OAAOr9sB,KAAKszD,OAAO,aAAe,GAEtCunK,eAAe6J,GACX,IAAI64e,EAAiBv9sB,KAAKw7sB,UAAU10rB,OAAO2d,IAAW,KAAQ,QAAS,UAAUjyB,QAAQiyB,EAAQxxB,WAC7FuqsB,EAAiBx9sB,KAAKw7sB,UAAU10rB,OAAO2d,GAAW,WAAaA,EAAQxxB,UACvEwqsB,EAAgBz9sB,KAAKw7sB,UAAU10rB,OAAO2d,GAAW,UAAYA,EAAQxxB,UACrEupG,EAAa,GAAG36F,OAAO7hB,KAAK09sB,qBAAqBH,EAAgB,SAAUv9sB,KAAK29sB,kBAAkB97rB,OAAO7hB,KAAK09sB,qBAAqBF,EAAgB,SAAUx9sB,KAAK29sB,kBAAkB97rB,OAAO7hB,KAAK09sB,qBAAqBD,EAAe,QAASz9sB,KAAK29sB,kBACtP39sB,KAAK49sB,iBAAmB59sB,KAAK24F,iBAAiB+rI,EAAU4gV,GAAS,CAC7D9oc,WAAYA,IAGpBkhmB,qBAAqBrppB,EAAOphD,EAAUg9P,GAClC,OAAO57M,EAAM3zC,IAAI9D,IAAQyC,SAAO,EAAM,CAClCpM,SAAUA,EACVguI,aAAcjhJ,KAAKszD,OAAO,iBAC3BtzD,KAAK69sB,YAAYjhsB,EAAM3J,EAAUg9P,GAAgBjwQ,KAAK89sB,mBAAmBlhsB,GAAO5c,KAAK+9sB,yBAAyBnhsB,EAAMqzP,KAE3H4tc,YAAYjhsB,EAAM3J,EAAUg9P,GAQxB,OAPIrzP,EAAKohsB,iBAAmBphsB,EAAKqhsB,gBAAkBrhsB,EAAKshsB,yBACpDl+sB,KAAKg9sB,iBAAiBpgsB,EAAK6nB,SAAW,CAClCu5qB,gBAAiBphsB,EAAKohsB,gBACtBC,eAAgBrhsB,EAAKqhsB,eACrBC,sBAAuBthsB,EAAKshsB,wBAGhC,cAAgBthsB,EAAK47E,OACd,CACH1pC,SAAU,CAAC1iD,EAAMmG,EAAO/K,MACpB4zD,QAAE5zD,GAASoG,SAjEO,iCAmEtBszI,iBAAkB,CAAC90I,EAAMmG,EAAO/K,MAC5B4zD,QAAE5zD,GAASoG,SAnEY,uCAuE5B,CACH4qF,OAAQ57E,EAAK47E,QAAU,WACvBoM,SAAUhoF,EAAKgoF,SACfhzE,QAAS,CACLwtH,YAAap/I,KAAKszD,OAAO,qBACzB7nD,KAAMzL,KAAKszD,OAAO,cAClB78C,KAAMmG,EAAKnG,KACXgyF,KAAM7rF,EAAK6rF,KACXkpC,KAAM/0H,EAAK+0H,MAAQ/0H,EAAKuhsB,eAAiBvhsB,EAAKwhsB,YAC9CA,YAAaxhsB,EAAKwhsB,YAClBD,cAAevhsB,EAAKuhsB,cACpB3pnB,cAAex+E,GAAKhW,KAAKq+sB,mBAAmBrosB,EAAExH,UAAWoO,GACzD+rF,eAAgB3yF,GAAKhW,KAAKs+sB,oBAAoBtosB,EAAExH,UAAWoO,EAAMqzP,KAI7E6tc,mBAAmB96rB,GACf,IACIw1E,OAAQA,EACR/zD,QAASA,EACT4vB,MAAOA,EACPmpG,UAAWA,EACX/3C,YAAaA,EACb07B,SAAUA,EACV14C,KAAMA,EACNkpC,KAAMA,GACN3uH,EACJ,MAAI,kBACOhjB,KAAKu+sB,4BAA4B95qB,EAASgkE,EAAMp0C,EAAOmpG,EAAW/3C,GAClE,gBACAzlH,KAAKw+sB,0BAA0B/5qB,EAASgkE,GACxC,iBACAzoG,KAAKy+sB,2BAA2Bh6qB,EAASgkE,EAAMkpC,GAC9Cn5C,GAAU,aAAeA,OAA9B,EACI,CACH2oD,SAAUA,GAAY,UAIlCo9jB,4BAA4B95qB,EAASgkE,EAAMp0C,EAAOmpG,EAAW/3C,GACzD,IAAI7zF,EAAU5xB,KAAK0+sB,6BAA6Bj2mB,GAShD,OARA72E,GAAUvS,SAAO,EAAMuS,EAAS,CAC5BA,QAAS,CACL4qF,WAAYnoD,EACZoxD,YAAaA,GAAe,OAC5B+3C,UAAWA,GAAa,WAGXnpG,GAASA,EAAM74B,MAAMh3B,QAAK,IAAWA,EAAEmtI,QAExD//G,GAAUvS,SAAO,EAAMuS,EAAS,CAC5BA,QAAS,CACLo+N,cAAe,CAAC5jP,EAAM8nB,MAClBknC,QAAE,OAAOxtD,SAASxB,GAAQA,EAAKulI,MAAQ,iDAAiD9mE,SAAS32C,IACjGknC,QAAE,SAASuxhB,UAAU,CACjBn+f,UAAU,EACV4wD,YAAa,aACdv0E,SAAS32C,IAEhB0wF,aAAc,CAACx4G,EAAMmG,EAAO2hB,QACxBknC,MAAElnC,GAAWk7C,KAAK,QAAShjE,EAAKq8F,MACzB,aAAa5mF,OAAOzV,EAAKulI,KAAM,eAK/C//G,EAEX4srB,0BAA0B/5qB,EAASgkE,GAC/B,IAAI72E,EAAU5xB,KAAK0+sB,6BAA6Bj2mB,GAChD72E,OAAUvS,SAAO,EAAMuS,EAAS,CAC5BA,QAAS,CACL48D,UAAU,EACVqa,mBAAmB,EACnBD,mBAAmB,EACnBy+C,QAAS,CAAC,CACNhkJ,KAAM,WACN4P,SAAU,QACV2e,QAAS,CACL+/G,KAAM,WACNvpH,UAAU,EACVg3H,YAAa,OACbt7F,QAAS9tC,IACL,IAAI+hiB,EAAc/3iB,KAAK88sB,qBAAqBr4qB,GACxCszgB,GACA/3iB,KAAK2+sB,mBAAmB5mK,UASpD0mK,2BAA2Bh6qB,EAASgkE,EAAMkpC,GACtC,IAAI//G,EAAU5xB,KAAK0+sB,6BAA6Bj2mB,GAChD,OAAIkpC,IACA//G,GAAUvS,SAAO,EAAMuS,EAAS,CAC5BA,QAAS,CACLq+N,kBAAkB,EAClBD,cAAe,CAAC5jP,EAAM8nB,MAClBknC,QAAE,OAAOxtD,SAAS+jI,GAAM51E,IAAI,oBAAqB3vD,GAAMy+D,SAAS32C,IAChEknC,QAAE,SAASuxhB,UAAU,CACjBn+f,UAAU,EACV4wD,YAAa,aACdv0E,SAAS32C,SAKlB7U,SAAO,EAAMuS,EAAS,CAC5BA,QAAS,CACL89N,SAAU,KACF1vP,KAAKszD,OAAO,kBACZ8H,QAAE,QAAQxtD,SAAS0tsB,KAG3B3rd,SAAU,MACNv0L,QAAE,QAAQttD,YAAYwtsB,QAMtCoD,6BAA6Bj2mB,GACzB,MAAO,CACH72E,QAAS,CACLwtH,YAAap/I,KAAKszD,OAAO,qBACzBm1C,KAAMA,IAIlBs1mB,yBAAyBnhsB,EAAMlV,GAC3B,OAAQkV,EAAK47E,YACJ,kBACA,iBACA,aACD,MAAO,CACH5mE,QAAS,CACL8iI,eAAgB1+I,IACZ,IAAIkjsB,EAAYY,2BAA0C95sB,KAAM4c,EAAM5G,EAAExH,UAAU8kD,OAAO,UACzF5rD,EAAQ0yB,KAAKp6B,KAAM4c,EAAK6nB,QAAS7nB,EAAKvZ,KAAM61sB,UAIvD,YACD,MAAO,WAEP,MAAO,CACHtnrB,QAAS,CACLkyB,QAAS9tC,IACL,GAAK4G,EAAKy3C,MAGH,CACH,IAAI0jf,EAAc/hiB,EAAExH,UAAUowsB,aAC1B7mK,GACA/3iB,KAAK2+sB,mBAAmB5mK,OANf,CACb,IAAImhK,EAAYY,2BAA0C95sB,KAAM4c,GAChElV,EAAQ0yB,KAAKp6B,KAAM4c,EAAK6nB,QAAS7nB,EAAKvZ,KAAM61sB,QAYxEyF,mBAAmB5mK,GACf/3iB,KAAK+8sB,iBAAiB/2sB,QAAQ64sB,IACtB9mK,IAAgB8mK,GAChBA,EAAGrqkB,SAGXuja,EAAY3jW,SAEhBiqgB,mBAAmB7lnB,EAAQ57E,GACvB5c,KAAK8+sB,eAAelisB,EAAK6nB,QAAS,IAAI23qB,IAAyB5jnB,IAEnE8lnB,oBAAoB9lnB,EAAQ57E,EAAMqzP,GAC9B,IAAK,aAAez3K,EAAOpD,MAAQ,cAAgBoD,EAAOpD,OAASx4E,EAAKy3C,MAAO,CAC3E,IAAI0qpB,EAAc/+sB,KAAKg/sB,eACnBrwD,GAAiBvzlB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAC9Cq9B,EAAOomnB,aAAe5+sB,KAAK24F,iBAAiBg2jB,EAAgBtsiB,GAAa,CACrEhuD,MAAOz3C,EAAKy3C,MACZryD,OAAQw2F,EAAOr9B,WACfypC,SAAUk1mB,4BACVjqjB,UAAW,GACXtB,mBAAoBv4I,IAAM+osB,GAAe,OAAM3jpB,MAAEplD,EAAEhU,QAAQ87E,QAAQ0a,EAAOomnB,aAAaK,wBAAwBx6sB,OAC/GokG,mBAAmB,EACnB7uE,SAAU,CACNvJ,GAAI,eAERm0F,aAAc,SAASN,EAAUsI,EAAWY,GACxCsslB,8BAA6C95sB,KAAMskH,EAAUsI,EAAWY,IAE5E1I,YAAaxqB,IACT,IACI9rF,UAAWA,EACX81G,SAAUA,GACVhqB,EACJw/mB,0BAAyC95sB,KAAMskH,EAAU2rJ,EAAchnN,KAAKjpD,SACvEskH,EAASjwD,QAAUiwD,EAASjwD,MAAM5vD,SACnC+J,EAAUgmI,QAGlBya,UAAWj5I,IACHhW,KAAKk/sB,kBAGTl/sB,KAAKk/sB,gBAAkBlpsB,EAAExH,UACzBxO,KAAKm/sB,mCAAmC,CACpCpwoB,SAAS,EACTvgE,UAAWxO,OAEfgW,EAAExH,UAAU8kD,OAAO,QAASt9C,EAAExH,UAAU8kD,OAAO,iBACxCtzD,KAAKk/sB,kBAEhB1qnB,cAAerjB,IACX,IACI3iE,UAAWA,GACX2iE,EACJ,OAAOnxE,KAAKo/sB,0BAA0B5wsB,EAAWoO,EAAM47E,IAE3D9D,YAAapiB,IACT,IACI9jE,UAAWA,GACX8jE,EACJ,OAAOtyE,KAAKq/sB,wBAAwB7wsB,EAAWoO,MAGlDmisB,IACDvmnB,EAAOomnB,aAAaK,uBAAyBzmnB,EAAOr9B,WAChD,cAAgBq9B,EAAOpD,OACvBoD,EAAOomnB,aAAaK,uBAAyBzmnB,EAAO0iJ,UAAU,YAAY1zO,aAK1Fw3sB,eACI,IACIM,QAASA,GACTtG,KACJ,OAAOsG,EAAQC,QAEnBH,0BAA0B5mnB,EAAQ57E,EAAMy/rB,GACpCr8sB,KAAK+8sB,iBAAiB1zsB,KAAKmvF,GACvB57E,EAAK6nB,UACLzkC,KAAK88sB,qBAAqBlgsB,EAAK6nB,SAAW+zD,GAE9Cx4F,KAAKw/sB,sBAAsB5isB,EAAM47E,EAAQ,GAAI6jnB,GAEjDyC,eAAer6qB,EAASg7qB,GACpB,QAAI,MAAoB,CACpB,GAAIz/sB,KAAK68sB,aAAap4qB,GAClB,MAAM,IAAIl/B,MAAM,+CAEpBvF,KAAK68sB,aAAap4qB,GAAWg7qB,GAGrCD,sBAAsB5isB,EAAM47E,EAAQginB,EAAW6B,GACvCz/rB,EAAKy3C,OACLz3C,EAAKy3C,MAAMruD,QAAQ,CAAC05sB,EAASntsB,KACzB,IAAIotsB,EAAgBnF,EAAU34rB,OAAOtP,GACrCvS,KAAK8+sB,eAAeY,EAAQj7qB,QAAS,IAAIm7qB,IAA4BpnnB,EAAQmnnB,EAAeD,EAAQj7qB,QAAS43qB,IAC7Gr8sB,KAAKw/sB,sBAAsBE,EAASlnnB,EAAQmnnB,EAAetD,KAIvEgD,wBAAwB7mnB,EAAQ57E,GAC5B5c,KAAK+8sB,iBAAiBtqsB,OAAOzS,KAAK+8sB,iBAAiBvqsB,QAAQgmF,GAAS,UAC7Dx4F,KAAK88sB,qBAAqBlgsB,EAAK6nB,SAE1Ck5qB,gBAAgBl5qB,EAASphC,EAAMuJ,GAC3B,IAAI5M,KAAK6/sB,cAGT,IAAI,iBAAoBp7qB,EAAS,CAC7B,IAAIq7qB,EAAiB9/sB,KAAKg9sB,iBAAiBv4qB,GACvCq7qB,GAAkBA,EAAe9B,kBACjCpxsB,EAAQkzsB,EAAe9B,gBAAgBpxsB,IAE3C5M,KAAKm3I,IAAI8hkB,wBAAwBx0qB,EAAS73B,OACnC,iBAAoB63B,GAC3BzkC,KAAK+/sB,yBAAyB,CAC1Bt7qB,QAASA,SAGb,OACAzkC,KAAKggtB,uBAAuB,CACxB38sB,KAAMA,KAIlB65sB,2BACIl9sB,KAAK+/sB,yBAA2B//sB,KAAKo2F,sBAAsB,qBAE/D+mnB,yBACIn9sB,KAAKggtB,uBAAyBhgtB,KAAKo2F,sBAAsB,mBAE7DslnB,gBAAgBj3qB,EAASpc,GACrB,GAAIoc,KAAWzkC,KAAK68sB,aAAc,CAC9B,IAAI4C,EAASz/sB,KAAK68sB,aAAap4qB,GAC3Bg7qB,EAAO5D,UAAU77sB,KAAKk/sB,kBACtBO,EAAOlG,WAAWlxrB,IAI9BszrB,YAAYtzrB,GACRroB,KAAK49sB,iBAAiBtqpB,OAAO,YAAajrC,GAC1CroB,KAAK+8sB,iBAAiB/2sB,QAAQ+xiB,IAC1BA,EAAYzkf,OAAO,YAAajrC,KAGxCozrB,cAAch3qB,EAAS73B,GACnB,IAEI,GADA5M,KAAK6/sB,eAAgB,EACjBp7qB,KAAWzkC,KAAK68sB,aAAc,CAC9B,IAAI4C,EAASz/sB,KAAK68sB,aAAap4qB,GAC/B,GAAIg7qB,EAAO5D,UAAU77sB,KAAKk/sB,iBAAkB,CACxC,IAII7wlB,EAJAyxlB,EAAiB9/sB,KAAKg9sB,iBAAiBv4qB,GACvCq7qB,GAAkBA,EAAe7B,iBACjCrxsB,EAAQkzsB,EAAe7B,eAAerxsB,IAGtCkzsB,GAAkBA,EAAe5B,wBACjC7vlB,EAAeyxlB,EAAe5B,sBAAsBtxsB,IAExD,IAAImriB,EAAc/3iB,KAAK88sB,qBAAqBr4qB,GAC5Cg7qB,EAAOrxsB,SAASxB,EAAOyhH,EAAc0pb,EAAaA,GAAetzgB,aAIzEzkC,KAAK6/sB,eAAgB,GAG7BjE,iBAAiBn3qB,EAAS4vB,GAEtB,GADAr0D,KAAK6/sB,eAAgB,EACjBp7qB,KAAWzkC,KAAK68sB,aAAc,CAC9B,IAAI4C,EAASz/sB,KAAK68sB,aAAap4qB,GAC/B,GAAIg7qB,EAAO5D,UAAU77sB,KAAKk/sB,iBAAkB,CACxC,IAAInnK,EAAc/3iB,KAAK88sB,qBAAqBr4qB,GAC5Cg7qB,EAAOxD,SAAS5npB,EAAO0jf,EAAaA,GAAetzgB,IAG3DzkC,KAAK6/sB,eAAgB,EAEzBzC,2CACIp9sB,KAAKm/sB,mCAAqCn/sB,KAAKo2F,sBAAsB,+BAEzEG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,gBACD+3D,QAAE,QAAQttD,YAAYwtsB,IACtBt7sB,KAAK4jG,cACL,UACC,8BACD5jG,KAAKo9sB,2CACL,UACC,oBACDp9sB,KAAKk9sB,2BACL,UACC,kBACDl9sB,KAAKm9sB,yBACL,UACC,gBACA,WACDn9sB,KAAK4jG,cACL,UACC,SACD,cAEA9jG,MAAMy2F,eAAe59E,IAGjC47E,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC0rnB,cAAc,EACd19Z,OAAQ,CACJrvJ,SAAU,WAEdjS,aAAc,OACdi/jB,kBAAmB,OACnBC,WAAY,SACZzie,kBAAmB,SACnB0ie,gBAAgB,IAGxBC,kBAAkB57qB,EAASq0J,GACvB94L,KAAKy7sB,cAAch3qB,EAASq0J,GAEhCwnhB,kBAAkB77qB,EAASpc,GACvBroB,KAAK07sB,gBAAgBj3qB,EAASpc,KCrdtC,IAAIk4rB,GAAY,YACZC,GAAoB,CACpBhonB,OAAQ+nnB,IAERE,mBAMiB,0BAEjBC,IAAyB,CACzBC,0BAA2B,UAC3BC,mCAAoC,kBACpCC,eAAgB,WACZ,IACIC,eAAgBA,GAChB9H,KACJ,OAAOh5sB,KAAK+gtB,eAAiB/gtB,KAAK+gtB,aAAe,CAC7CjxX,UAAW0wX,GACXQ,UAAW,CACPv8qB,QAASq8qB,EAAeG,UACxBxqsB,KAAMupG,UAA2B,gCACjC+6lB,aAAcvinB,GAAUk0P,GAAW1sV,KAAKqwV,UAAU73P,EAAQk0P,EAAS,MAAO,kBAE9Ew0X,UAAW,CACPz8qB,QAASq8qB,EAAeK,UACxB1qsB,KAAMupG,UAA2B,gCACjC+6lB,aAAcvinB,GAAUk0P,GAAW1sV,KAAKqwV,UAAU73P,EAAQk0P,EAAS,MAAO,cAE9E00X,UAAW,CACP38qB,QAASq8qB,EAAeO,UACxB5qsB,KAAMupG,UAA2B,gCACjC+6lB,aAAcvinB,GAAUk0P,GAAW1sV,KAAKqwV,UAAU73P,EAAQk0P,EAAS,OAAQ,eAE/E40X,KAAM,CACF78qB,QAASq8qB,EAAeS,KACxB94mB,KAAMuX,UAA2B,yBACjCvpG,KAAMupG,UAA2B,yBACjC2xB,KAAM,OACN6vkB,SAAU,QAEdC,KAAM,CACFh9qB,QAASq8qB,EAAeY,KACxBj5mB,KAAMuX,UAA2B,yBACjCvpG,KAAMupG,UAA2B,yBACjC2xB,KAAM,OACN6vkB,SAAU,QAEdG,IAAK,CACDl9qB,QAASq8qB,EAAec,IACxBn5mB,KAAMuX,UAA2B,wBACjCvpG,KAAMupG,UAA2B,wBACjC2xB,KAAM,MACN6vkB,SAAU,OAEdxmsB,KAAM,CACFypB,QAASq8qB,EAAee,KACxBp5mB,KAAMuX,UAA2B,yBACjCvpG,KAAMupG,UAA2B,yBACjC2xB,KAAM,OACN6vkB,SAAU,QAEdM,MAAO,CACHr9qB,QAASq8qB,EAAeiB,gBACxBt5mB,KAAMuX,UAA2B,0BACjCvpG,KAAMupG,UAA2B,0BACjC2xB,KAAM,QACN6vkB,SAAU,SAEd78kB,UAAW,CACPlgG,QAASq8qB,EAAekB,UACxBv5mB,KAAMuX,UAA2B,8BACjCvpG,KAAMupG,UAA2B,8BACjC2xB,KAAM,8CACN6vkB,SAAU,6CAEd73sB,OAAQ,CACJ86B,QAASq8qB,EAAemB,OACxBx5mB,KAAMuX,UAA2B,2BACjCvpG,KAAMupG,UAA2B,2BACjC2xB,KAAM,SACN6vkB,SAAU,UAEdU,SAAU,CACNz9qB,QAASq8qB,EAAeqB,SACxB15mB,KAAMuX,UAA2B,6BACjCvpG,KAAMupG,UAA2B,6BACjCxnB,OAAQ,cACRnkC,MAAO,CAAC,QAAS,cAAe,YAAa,kBAAmB,cAAe,UAAW,UAAW,UAAW,gBAAiB,gBAAgB3zC,IAAI9D,IAAS,CAC1JnG,KAAMmG,EACNhQ,MAAOgQ,KAEXgoF,SAxFQ,2BA0FZ5nB,SAAU,CACNv4C,QAASq8qB,EAAesB,SACxB35mB,KAAMuX,UAA2B,6BACjCvpG,KAAMupG,UAA2B,6BACjCxnB,OAAQ,cACRnkC,MAAO,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI3zC,IAAI9D,IAAS,CAC/EnG,KAAMmG,EAAO,KACbhQ,MAAOgQ,EAAO,QAElBgoF,SApGO,2BAsGX2vlB,KAAM,CACF9vpB,QAASq8qB,EAAeuB,KACxB55mB,KAAMuX,UAA2B,yBACjCvpG,KAAMupG,UAA2B,yBACjC2xB,KAAM,OACN6vkB,SAAU,QAEdc,OAAQ,CACJ79qB,QAASq8qB,EAAeyB,OACxB95mB,KAAMuX,UAA2B,2BACjCvpG,KAAMupG,UAA2B,2BACjC2xB,KAAM,SACN6vkB,SAAU,UAEdgB,UAAW,CACP/9qB,QAASq8qB,EAAe2B,UACxBh6mB,KAAMuX,UAA2B,8BACjCvpG,KAAMupG,UAA2B,8BACjC2xB,KAAM,YACN6vkB,SAAU,aAEd16W,UAAW,CACPriU,QAASq8qB,EAAe4B,UACxBjssB,KAAMupG,UAA2B,8BACjCvX,KAAMuX,UAA2B,8BACjCxnB,OAAQ,aACRm5C,KAAM,wBACN6vkB,SAAU,wBACV58mB,SA9HO,8BAgIXokN,UAAW,CACPvkR,QAASq8qB,EAAe6B,YACxBlssB,KAAMupG,UAA2B,8BACjCvX,KAAMuX,UAA2B,8BACjCxnB,OAAQ,aACRm5C,KAAM,6BACN6vkB,SAAU,6BACV58mB,SAvIO,8BAyIXk+M,UAAW,CACPr+Q,QAASq8qB,EAAe8B,YACxBnssB,KAAMupG,UAA2B,8BACjCvX,KAAMuX,UAA2B,8BACjCxnB,OAAQ,cACRnkC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG3zC,IAAI9D,IAAS,CACzCnG,KAAMmG,EAAO,KACbhQ,MAAOgQ,EAAKpF,cAEhBotF,SAtJO,2BAwJXi+mB,UAAW,CACPp+qB,QAASq8qB,EAAegC,YACxBrssB,KAAMupG,UAA2B,8BACjCvX,KAAMuX,UAA2B,8BACjCxnB,OAAQ,cACRnkC,MAAO,CAAC,CACJznD,MAAO,GACP40sB,SAAU,uCACV/4mB,KAAMuX,UAA2B,oCAClC,CACCpzG,MAAO,MACP40sB,SAAU,wCACV/4mB,KAAMuX,UAA2B,qCAClC,CACCpzG,MAAO,MACP40sB,SAAU,wCACV/4mB,KAAMuX,UAA2B,sCAErCpb,SAvKS,kCAyKbm+mB,UAAW,CACPt+qB,QAASq8qB,EAAekC,UACxBvssB,KAAMupG,UAA2B,8BACjCvX,KAAMuX,UAA2B,8BACjCxnB,OAAQ,aACRm5C,KAAM,wCACN6vkB,SAAU,sCACV58mB,SA/KO,8BAiLXq+mB,cAAe,CACXx+qB,QAASq8qB,EAAeoC,cACxBz6mB,KAAMuX,UAA2B,8BACjCvpG,KAAMupG,UAA2B,8BACjC2xB,KAAM,YACN6vkB,SAAU,aAEd2B,gBAAiB,CACb1+qB,QAASq8qB,EAAesC,gBACxB36mB,KAAMuX,UAA2B,gCACjCvpG,KAAMupG,UAA2B,gCACjC2xB,KAAM,cACN6vkB,SAAU,eAEd6B,eAAgB,CACZ5+qB,QAASq8qB,EAAewC,eACxB76mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,+BACjC2xB,KAAM,aACN6vkB,SAAU,cAEdn6mB,KAAM,CACF5iE,QAASq8qB,EAAeyC,KACxB96mB,KAAMuX,UAA2B,yBACjCvpG,KAAMupG,UAA2B,yBACjC2xB,KAAM,wCACN6vkB,SAAU,uCAEd9uY,OAAQ,CACJjuS,QAASq8qB,EAAe0C,OACxB/6mB,KAAMuX,UAA2B,2BACjCvpG,KAAMupG,UAA2B,2BACjC2xB,KAAM,0CACN6vkB,SAAU,yCAEdiC,aAAc,CACVh/qB,QAASq8qB,EAAe4C,aACxBj7mB,KAAMuX,UAA2B,iCACjCvpG,KAAMupG,UAA2B,iCACjC2xB,KAAM,kDACN6vkB,SAAU,iDAEdmC,WAAY,CACRl/qB,QAASq8qB,EAAe8C,WACxBn7mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,+BACjC2xB,KAAM,gDACN6vkB,SAAU,+CAEdqC,iBAAkB,CACdp/qB,QAASq8qB,EAAegD,iBACxBrtsB,KAAMupG,UAA2B,qCACjC2xB,KAAM,gDACN6vkB,SAAU,+CAEduC,eAAgB,CACZt/qB,QAASq8qB,EAAekD,eACxBvtsB,KAAMupG,UAA2B,mCACjC2xB,KAAM,8CACN6vkB,SAAU,6CAEdyC,iBAAkB,CACdx/qB,QAASq8qB,EAAeoD,iBACxBztsB,KAAMupG,UAA2B,qCACjC2xB,KAAM,gDACN6vkB,SAAU,+CAEd2C,kBAAmB,CACf1/qB,QAASq8qB,EAAesD,oBACxB5rnB,OAAQ,cACRiQ,KAAMuX,UAA2B,sCACjCvpG,KAAMupG,UAA2B,sCACjC3rD,MAAO,CAAC,CACJznD,MAAO,EACP40sB,SAAU,+CACV/4mB,KAAMuX,UAA2B,0CACjCvpG,KAAMupG,UAA2B,2CAClC,CACCpzG,MAAO,EACP40sB,SAAU,iDACV/4mB,KAAMuX,UAA2B,4CACjCvpG,KAAMupG,UAA2B,8CAErCpb,SArQS,kCAuQby/mB,mBAAoB,CAChB5/qB,QAASq8qB,EAAewD,yBACxB9rnB,OAAQ,cACRnkC,MAAO,CAAC,CACJznD,MAAO,EACP40sB,SAAU,iDACV/4mB,KAAMuX,UAA2B,sCACjCvpG,KAAMupG,UAA2B,uCAClC,CACCpzG,MAAO,EACP40sB,SAAU,kDACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,wCAClC,CACCpzG,MAAO,EACP40sB,SAAU,8DACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,wCAClC,CACCpzG,MAAO,EACP40sB,SAAU,4DACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,yCAErCvX,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,uCACjCpb,SAjSS,kCAmSb2/mB,iBAAkB,CACd9/qB,QAASq8qB,EAAe0D,uBACxBhsnB,OAAQ,cACRnkC,MAAO,CAAC,CACJznD,MAAO,EACP40sB,SAAU,+CACV/4mB,KAAMuX,UAA2B,sCACjCvpG,KAAMupG,UAA2B,uCAClC,CACCpzG,MAAO,EACP40sB,SAAU,gDACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,wCAClC,CACCpzG,MAAO,EACP40sB,SAAU,4DACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,wCAClC,CACCpzG,MAAO,EACP40sB,SAAU,0DACV/4mB,KAAMuX,UAA2B,uCACjCvpG,KAAMupG,UAA2B,yCAErCvX,KAAMuX,UAA2B,qCACjCvpG,KAAMupG,UAA2B,qCACjCpb,SA7TS,kCA+Tb6/mB,sBAAuB,CACnBhgrB,QAASq8qB,EAAe4D,uBACxBjusB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,kDACN/sC,SAAU67mB,oBAEdkE,sBAAuB,CACnBlgrB,QAASq8qB,EAAe8D,kCACxBnusB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,kDACN/sC,SAAU67mB,oBAEdoE,sBAAuB,CACnBpgrB,QAASq8qB,EAAegE,yBACxBrusB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,kDACN/sC,SAAU67mB,oBAEdsE,sBAAuB,CACnBtgrB,QAASq8qB,EAAekE,oCACxBvusB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,kDACN/sC,SAAU67mB,oBAEdwE,yBAA0B,CACtBxgrB,QAASq8qB,EAAeoE,0BACxBzusB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,qDACN/sC,SAAU67mB,oBAEd0E,yBAA0B,CACtB1grB,QAASq8qB,EAAesE,qCACxB3usB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,qDACN/sC,SAAU67mB,oBAEd4E,yBAA0B,CACtB5grB,QAASq8qB,EAAewE,4BACxB7usB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,qDACN/sC,SAAU67mB,oBAEd8E,yBAA0B,CACtB9grB,QAASq8qB,EAAe0E,uCACxB/usB,KAAMupG,UAA2B,sCACjCvX,KAAMuX,UAA2B,sCACjC2xB,KAAM,qDACN/sC,SAAU67mB,oBAEdnyjB,WAAY,CACR7pH,QAASq8qB,EAAe2E,WACxBh9mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,+BACjC2xB,KAAM,8CACN6vkB,SAAU,4CACV58mB,SA5XO,8BA8XX8gnB,MAAO,CACHjhrB,QAASq8qB,EAAe6E,UACxBl9mB,KAAMuX,UAA2B,0BACjCvpG,KAAMupG,UAA2B,0BACjCxnB,OAAQ,eAEZotnB,WAAY,CACRnhrB,QAASq8qB,EAAe+E,iBACxBp9mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,+BACjCxnB,OAAQ,cAEZstnB,SAAU,CACNrhrB,QAASq8qB,EAAeiF,SACxBt9mB,KAAMuX,UAA2B,6BACjCvpG,KAAMupG,UAA2B,6BACjCxnB,OAAQ,cAEZwtnB,WAAY,CACRvhrB,QAASq8qB,EAAemF,WACxBx9mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,+BACjCxnB,OAAQ,cAEZ0tnB,SAAU,CACNzhrB,QAASq8qB,EAAeqF,SACxB19mB,KAAMuX,UAA2B,6BACjCvpG,KAAMupG,UAA2B,6BACjCxnB,OAAQ,eAEZgc,SAAU,CACN/vE,QAASq8qB,EAAesF,SACxB39mB,KAAMuX,UAA2B,6BACjCvpG,KAAMupG,UAA2B,6BACjCxnB,OAAQ,cACRoM,SAnaO,0BAoaPo5mB,gBAAiBn2rB,GAAK1R,KAAKK,MAAMqR,GACjCo2rB,eAAgBp2rB,GAAK1R,KAAKC,UAAUyR,IAExCw+rB,gBAAiB,CACb5hrB,QAASq8qB,EAAewF,cACxB79mB,KAAMuX,UAA2B,oCACjCvpG,KAAMupG,UAA2B,oCACjCxnB,OAAQ,cACRnkC,MAAO,CAAC,CACJznD,OAAO,EACP6J,KAAMupG,UAA2B,8CAClC,CACCpzG,OAAO,EACP6J,KAAMupG,UAA2B,8CAErCpb,SApbQ,2BAsbZ2hnB,UAAW,CACP9hrB,QAASq8qB,EAAe0F,UACxB/9mB,KAAMuX,UAA2B,8BACjCvpG,KAAMupG,UAA2B,8BACjCxnB,OAAQ,aACRm5C,KAAM,wCACN6vkB,SAAU,sCACV58mB,SA1bO,8BA4bX+3W,UAAW,CACPl4a,QAASq8qB,EAAe2F,UACxBh+mB,KAAMuX,UAA2B,8BACjCvpG,KAAMupG,UAA2B,8BACjCxnB,OAAQ,YACRnkC,MAAO,CAACmspB,GAAmB,CACvB/7qB,QAASq8qB,EAAe4F,YACxBj+mB,KAAMuX,UAA2B,iCACjCvpG,KAAMupG,UAA2B,kCAClC,CACCv7E,QAASq8qB,EAAe6F,WACxBl+mB,KAAMuX,UAA2B,+BACjCvpG,KAAMupG,UAA2B,gCAClCwgmB,GAAmB,CAClB/7qB,QAASq8qB,EAAe8F,kBACxBn+mB,KAAMuX,UAA2B,sCACjCvpG,KAAMupG,UAA2B,uCAClC,CACCv7E,QAASq8qB,EAAe+F,gBACxBp+mB,KAAMuX,UAA2B,oCACjCvpG,KAAMupG,UAA2B,sCAErCk+lB,sBAAuBr2rB,GAAKtN,KAAK2zC,MAAM,IAAMrmC,GAAK,IAClD+8E,SAvdO,2BAydXkinB,QAAS,CACLrirB,QAASzkC,KAAK2gtB,0BACdvC,YAAa,iDACbD,cAAe,gDACf11mB,KAAMuX,UAA2B,2BACjCvpG,KAAMupG,UAA2B,4BAErC+mmB,gBAAiB,CACbtirB,QAASzkC,KAAK4gtB,mCACdxC,YAAa,QACbD,cAAe,yDACf11mB,KAAMuX,UAA2B,0BACjCvpG,KAAMupG,UAA2B,8BAI7CgnmB,uBAAwB,SAAS1hrB,EAAU2hrB,GACvC,IAAIC,EAAclntB,KAAK6gtB,iBACnBsG,EAAsB7hrB,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAAYtlC,KAAKqntB,+BAA+BH,GAC5H,OAAOlntB,KAAKsntB,wBAAwBH,EAAqBF,IAE7DI,+BAAgC,SAASH,GACrC,OAAOlntB,KAAKuntB,8BAAgCvntB,KAAKuntB,4BAA8B,CAACL,EAAY5F,KAAM4F,EAAYzF,KAAMyF,EAAYp3X,UAAWo3X,EAAYhF,SAAUgF,EAAYlqoB,SAAUkqoB,EAAY3yB,KAAM2yB,EAAY5E,OAAQ4E,EAAY1E,UAAW0E,EAAYp3X,UAAWo3X,EAAYpka,UAAWoka,EAAYrE,UAAWqE,EAAYp3X,UAAWo3X,EAAYpgX,UAAWogX,EAAYl+Z,UAAWk+Z,EAAYnE,UAAWmE,EAAYp3X,UAAWo3X,EAAYjE,cAAeiE,EAAY/D,gBAAiB+D,EAAY7D,eAAgB6D,EAAYp3X,UAAWo3X,EAAY/C,kBAAmB+C,EAAY7C,mBAAoB6C,EAAY3C,iBAAkB2C,EAAYp3X,UAAW,CACvoBr5U,KAAMupG,UAA2B,sBACjCmhC,SAAU,SACV9sF,MAAO,CAAC,CACJ59C,KAAMupG,UAA2B,0BACjC3rD,MAAO,CAAC6ypB,EAAYzC,sBAAuByC,EAAYvC,sBAAuBuC,EAAYrC,sBAAuBqC,EAAYnC,wBAC9H,CACCtusB,KAAMupG,UAA2B,6BACjC3rD,MAAO,CAAC6ypB,EAAYjC,yBAA0BiC,EAAY/B,yBAA0B+B,EAAY7B,yBAA0B6B,EAAY3B,gCAIlJiC,0BAA2B,SAASlirB,EAAU2hrB,GAC1C,IAAIC,EAAclntB,KAAK6gtB,iBACnB4G,EAAyBnirB,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAAYtlC,KAAK0ntB,kCAAkCR,GAClI,OAAOlntB,KAAKsntB,wBAAwBG,EAAwBR,IAEhES,kCAAmC,SAASR,GACxC,OAAOlntB,KAAK2ntB,iCAAmC3ntB,KAAK2ntB,+BAAiC,CAACT,EAAY5F,KAAM4F,EAAYzF,KAAMyF,EAAYp3X,UAAWo3X,EAAYJ,WAEjKc,uBAAwB,SAAStirB,EAAU2hrB,GACvC,IAAIC,EAAclntB,KAAK6gtB,iBACnBgH,EAAsBvirB,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAAYtlC,KAAK8ntB,+BAA+BZ,GAC5H,OAAOlntB,KAAKsntB,wBAAwBO,EAAqBZ,IAE7Da,+BAAgC,SAASZ,GACrC,OAAOlntB,KAAK+ntB,8BAAgC/ntB,KAAK+ntB,4BAA8B,CAACb,EAAYvqQ,UAAWuqQ,EAAYp3X,UAAWo3X,EAAY54jB,WAAY44jB,EAAYp3X,UAAW,CACzKt3P,OAAQ,WACRm5C,KAAM,SACNl7H,KAAMupG,UAA2B,sBACjCvX,KAAMuX,UAA2B,sBACjC3rD,MAAO,CAAC6ypB,EAAYlG,UAAWkG,EAAYhG,UAAWgG,EAAY9F,YACnE,CACCzvkB,KAAM,cACNlpC,KAAMuX,UAA2B,wBACjCvpG,KAAMupG,UAA2B,wBACjC3rD,MAAO,CAAC6ypB,EAAYxB,MAAOwB,EAAYp3X,UAAWo3X,EAAYpB,SAAUoB,EAAYlB,WAAYkB,EAAYhB,SAAUgB,EAAYp3X,UAAWo3X,EAAYtB,WAAYsB,EAAYJ,aAGzLkB,6BAA8B,SAAS1irB,EAAU2hrB,GAC7C,IAAIC,EAAclntB,KAAK6gtB,iBACnBoH,EAAqB3irB,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAAYtlC,KAAKkotB,qCAAqChB,GACjI,OAAOlntB,KAAKsntB,wBAAwBW,EAAoBhB,IAE5DiB,qCAAsC,SAAShB,GAC3C,OAAOlntB,KAAKmotB,oCAAsCnotB,KAAKmotB,kCAAoC,CAACjB,EAAYH,mBAE5GqB,sCAAuC,WACnC,OAAOpotB,KAAKqotB,qCAAuCrotB,KAAKqotB,mCAAqC,CAAC,CAC1F52kB,MAAOzxB,UAA2B,qBAClC0iC,OAAQ,CAAC,CACLjR,MAAOzxB,UAA2B,oBAClC16E,SAAU,CAAC,WAAY,WAAY,OAAQ,SAAU,YAAa,gBAAiB,kBAAmB,iBAAkB,cACzH,CACCmsG,MAAOzxB,UAA2B,sBAClC16E,SAAU,CAAC,YAAa,YAAa,YAAa,cACnD,CACCmsG,MAAOzxB,UAA2B,yBAClC16E,SAAU,CAAC,oBAAqB,qBAAsB,uBAE3D,CACCmsG,MAAOzxB,UAA2B,sBAClC0iC,OAAQ,CAAC,CACLjR,MAAOzxB,UAA2B,6BAClC16E,SAAU,CAAC,2BAA4B,2BAA4B,2BAA4B,6BAChG,CACCmsG,MAAOzxB,UAA2B,0BAClC16E,SAAU,CAAC,wBAAyB,wBAAyB,wBAAyB,4BAE3F,CACCmsG,MAAOzxB,UAA2B,uBAClC0iC,OAAQ,CAAC,CACLjR,MAAOzxB,UAA2B,oBAClC16E,SAAU,CAAC,WAAY,kBAAmB,mBAItDgjrB,4BAA6B,SAAS5lkB,GAClC,IAAIwkkB,EAAclntB,KAAK6gtB,iBACnBnusB,EAAS,GACbgwI,SAAO18I,QAAQwgC,IACX,IAKI+hrB,EALAjjrB,EAAWkB,EAAElB,SACbA,IACAA,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAClDA,EAAWtlC,KAAKsntB,wBAAwBhirB,IAGxCkB,EAAEk8G,SACF6lkB,EAAY,GACZ/hrB,EAAEk8G,OAAO18I,QAAQs8K,IACb,IAAIkmiB,EAAclmiB,EAAGh9I,SACjBkjrB,IACAA,EAAcxotB,KAAKontB,qBAAqBF,EAAasB,GACrDA,EAAcxotB,KAAKsntB,wBAAwBkB,IAE/CD,EAAUl/sB,KAAK,CACXooI,MAAO6wC,EAAG7wC,MACVnsG,SAAUkjrB,OAItB91sB,EAAOrJ,KAAK,CACRooI,MAAOjrG,EAAEirG,MACTnsG,SAAUA,EACVo9G,OAAQ6lkB,MAGT71sB,GAEX+1sB,4BAA6B,SAASC,GAClCA,SAAgBA,GAAiB1otB,KAAKootB,wCAC/BpotB,KAAKsotB,4BAA4BI,IAE5CC,uBAAwB,SAASrjrB,GAC7B,IAAI4hrB,EAAclntB,KAAK6gtB,iBACnB+H,EAAsBtjrB,EAAWtlC,KAAKontB,qBAAqBF,EAAa5hrB,GAAYtlC,KAAK6otB,+BAA+B3B,GAC5H,OAAOlntB,KAAK8otB,4BAA4BF,IAE5CC,+BAAgC,SAAS3B,GACrC,OAAOlntB,KAAK+otB,8BAAgC/otB,KAAK+otB,4BAA8B,CAAC7B,EAAYvF,IAAKuF,EAAYlssB,KAAMkssB,EAAYpF,MAAOoF,EAAYv9sB,OAAQu9sB,EAAYp3X,UAAWo3X,EAAYvilB,UAAWuilB,EAAYp3X,UAAWo3X,EAAYzD,aAAcyD,EAAYvD,WAAYuD,EAAYp3X,UAAWo3X,EAAY7/mB,KAAM6/mB,EAAYx0Y,OAAQw0Y,EAAYp3X,UAAWo3X,EAAYrD,iBAAkBqD,EAAYnD,eAAgBmD,EAAYjD,oBAE/amD,qBAAqBF,EAAa5hrB,GAC9B,OAAOA,EAAS5kB,IAAIkG,IAChB,GAAIA,EAAE4xE,QAAU5xE,EAAE4xE,SAAW+nnB,GAKzB,MAJc,CACV97qB,QAAS7d,EACT3T,SAAU2T,EAAE3T,UAGb,GAAIi0sB,EAAYtgsB,GACnB,OAAOsgsB,EAAYtgsB,GAChB,GAAIA,EAAEnQ,MAAQmQ,EAAE+qH,MAAQ/qH,EAAEvjB,KAAM,CACnC,IAAI2ltB,EAAkBpisB,EAAEvjB,MAAQ6jtB,EAAYtgsB,EAAEvjB,MAC1C4ltB,EAAW,CACXxkrB,QAASukrB,GAAmBA,EAAgBvkrB,QAC5CphC,KAAMujB,EAAEvjB,KACR4P,SAAU2T,EAAE3T,SACZwD,KAAMmQ,EAAEnQ,MAAQuysB,GAAmBA,EAAgBvysB,KACnDgyF,KAAM7hF,EAAEnQ,MAAQuysB,GAAmBA,EAAgBvgnB,KACnDkpC,KAAM/qH,EAAE+qH,MAAQq3kB,GAAmBA,EAAgBr3kB,KACnD6vkB,SAAU56rB,EAAE+qH,MAAQq3kB,GAAmBA,EAAgBxH,SACvDhpnB,OAAQwwnB,GAAmBA,EAAgBxwnB,OAC3CoM,SAAUoknB,GAAmBA,EAAgBpknB,SAC7Cm2mB,aAAciO,GAAmBA,EAAgBjO,aACjDiD,gBAAiBgL,GAAmBA,EAAgBhL,gBACpDC,eAAgB+K,GAAmBA,EAAgB/K,eACnDC,sBAAuB8K,GAAmBA,EAAgB9K,sBAC1DE,YAAa4K,GAAmBA,EAAgB5K,YAChDD,cAAe6K,GAAmBA,EAAgB7K,eAEtD,OACI8K,EAAS50pB,MADTzrD,MAAM8B,QAAQkc,EAAEytC,OACCr0D,KAAKontB,qBAAqBF,EAAatgsB,EAAEytC,OAEzC20pB,GAAmBA,EAAgB30pB,MAEjD40pB,KAEZnisB,OAAOF,GAAKA,IAEnBkisB,4BAA4BxjrB,EAAU2hrB,EAAiBjN,GACnD,IAAIv6jB,GAAa,EACjB,OAAOn6G,EAAS5kB,IAAIkG,IAChB,GAAK5mB,KAAKkptB,gBAAgBtisB,EAAGqgsB,GAG7B,KAAIrgsB,EAAE4xE,QAAU5xE,EAAE4xE,SAAW+nnB,GAEtB,CACH,IAAI97qB,EAAUzkC,KAAKmptB,cAAcvisB,EAAGqgsB,GACpCxirB,SAAQktG,KAAOltG,EAAQ+8qB,SACvB/8qB,EAAQg7G,WAAaA,EACrBh7G,EAAQu1qB,YAAev1qB,EAAQA,aAA+C,EAArCu1qB,GAAeA,EAAYv1qB,QACpEg7G,GAAa,EACNh7G,EAPPg7G,GAAa,KASlB34H,OAAOF,GAAKA,IAEnB0gsB,wBAAwBhirB,EAAU2hrB,GAC9B,OAAO3hrB,EAAS5kB,IAAIkG,IAChB,GAAI5mB,KAAKkptB,gBAAgBtisB,EAAGqgsB,GACxB,OAAOjntB,KAAKmptB,cAAcvisB,EAAGqgsB,KAElCngsB,OAAOF,GAAKA,GAAGE,OAAO,CAACF,EAAGrU,EAAOkP,KAC5BmF,EAAE4xE,SAAW+nnB,IAAahusB,IAAUkP,EAAIhd,OAAS,IAG9CmiB,IAGfuisB,cAAcvisB,EAAGqgsB,GACb,IAAIxirB,GAAUplB,QAAO,GAAIuH,GACzB,OAAIhe,MAAM8B,QAAQkc,EAAEytC,SAChB5vB,EAAQ4vB,MAAQr0D,KAAK8otB,4BAA4BlisB,EAAEytC,MAAO4ypB,EAAiBxirB,IAExEA,GAEXykrB,iBAAgBtisB,EAAGqgsB,KAER,KADPA,EAAkBA,GAAmB,IACPz0sB,QAAQoU,EAAE6d,SAE5C4rT,UAAU73P,EAAQk0P,EAASvsP,EAAQipnB,GAC/B,IAAInntB,KAASk8D,SACb,GAAIl8D,GAAUA,EAAOy6F,OAAQlkF,SAAWvW,EAAO2hV,MAAO,CAClD,IAAI3C,EAAOjhV,KAAKqptB,kBAAkBpntB,EAAQyqV,EAAS08X,GAC/Cx3rB,EAAU4mE,EAAOllC,OAAO,UAC5BktR,UAAiB5uT,EAAQshI,UAAY,MAAO/yD,EAAQ8gP,KAG5DooY,kBAAkBpntB,EAAQyqV,EAAS08X,GAG/B,QAFIE,EAAarntB,EAAOy6F,KAAKgwP,EAAQx6U,MAAM,KAAK,IAC5CqqK,EAAK,IAAI9/E,WAAW6snB,EAAW7ktB,QAC1BD,EAAI,EAAGA,EAAI8ktB,EAAW7ktB,OAAQD,IACnC+3K,EAAG/3K,GAAK8ktB,EAAW3snB,WAAWn4F,GAElC,OAAO,IAAIvC,EAAO2hV,KAAK,CAACrnK,EAAGljJ,QAAS,CAChC5tB,KAAM29sB,MAIlB,SAAe1I,ICxtBf6I,IALA,kBAAiCC,GAC7BnM,eACI,OAAOqD,0BAA8C1gtB,KAAKszD,OAAO,YAAatzD,KAAKszD,OAAO,sBCUlGm2pB,IAZA,kBAAoCD,GAChCnM,eACI,OAAOqD,6BAAiD1gtB,KAAKszD,OAAO,YAAatzD,KAAK0ptB,uBAE1FA,sBACI,IAAIpkrB,EAAW,GAAGzjB,OAAO7hB,KAAKszD,OAAO,oBACrC,OAAKtzD,KAAKszD,OAAO,iBACbhuB,EAASj8B,KAAKq3sB,8BAEXp7qB,ICJfqkrB,IALA,kBAAiCH,GAC7BnM,eACI,OAAOqD,0BAA8C1gtB,KAAKszD,OAAO,YAAatzD,KAAKszD,OAAO,sBCGlGs2pB,IALA,kBAAuCJ,GACnCnM,eACI,OAAOqD,oCC0Mf,kBAAiCr+lB,GAC7B+kZ,4BACItngB,MAAMsngB,4BACFpngB,KAAK2wV,UAAY3wV,KAAKszD,OAAO,mBAC7BtzD,KAAK2wV,UAAY3wV,KAAK2wV,SAASr9R,OAAO,UAAW,MAC9B8H,QAAEp7D,KAAK2wV,SAAShgJ,YACtB5jM,SAASa,SA1MG,kCA+MrC,kBAAoC2tsB,GAChC17sB,YAAYs+G,GACRr+G,MAAMq+G,GAEVg7lB,iBACI,OAAOn5sB,KAAKy5sB,SAASz5sB,KAAK42b,OAAO4kR,WAErCpC,aAAajnsB,EAAKvF,GACd5M,KAAK42b,OAAO6kR,cAActpsB,EAAKvF,GAEnCyssB,eAAelnsB,EAAKkW,GAChBroB,KAAK42b,OAAO8kR,gBAAgBvpsB,EAAKkW,GAErCixrB,eAAennsB,EAAK48D,GAChB/uE,KAAK42b,OAAOizR,gBAAgB13sB,EAAK48D,GAErCyqoB,gBAAgBrnsB,EAAKkiD,GACjBr0D,KAAK42b,OAAOglR,iBAAiBzpsB,EAAKkiD,GAEtCklpB,WAAWlxrB,GACProB,KAAK42b,OAAO+kR,YAAYtzrB,GAE5BsqN,YACI,OAAO3yO,KAAK42b,OAAOjkN,aAG3B,oCArOA,kBAAwCvqI,GACpCtS,QACIh2F,MAAMg2F,QACN91F,KAAK8ptB,oCACL9ptB,KAAKk9sB,2BACLl9sB,KAAKm9sB,yBACLn9sB,KAAK+ptB,2BACL/ptB,KAAKgqtB,gBAAa,EAClBhqtB,KAAKw7sB,UAAY,GACjBx7sB,KAAKiqtB,mBAAqB,GAC1BjqtB,KAAKm3I,IAAM,IAAI+ykB,IAAsBlqtB,MAEzCuiG,cACIziG,MAAMyiG,cACNviG,KAAKw7sB,UAAYx7sB,KAAKq9sB,eACtBr9sB,KAAKiqtB,mBAAqB,GAC1BjqtB,KAAKmqtB,uBAAuBnqtB,KAAKw7sB,UAAW,IAC5Cx7sB,KAAKoqtB,8BAA6BhvpB,MAAE,SAASxtD,SApBjB,8BAoByDi9D,SAAS7qE,KAAKm7D,YACnG,IAAIkvpB,GAAejvpB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAC5Cn7D,KAAKsqtB,qBAAuBtqtB,KAAK24F,iBAAiB0xnB,EAAcE,IAAoB,CAChFC,eAAgBxqtB,KAAKyqtB,kBACrB7lnB,SAAU5kG,KAAKyqtB,kBA1BE,sBA0B2C3Q,4BAC5DvrjB,oBAAoB,EACpBsB,UAAW,GACXhnD,mBAAmB,EACnBx0C,MAAOr0D,KAAKw7sB,UACZxhrB,SAAUh6B,KAAKyqtB,kBAAoB,CAC/Bp/oB,GAAI,CACAz6C,EAAG,SACH4qC,EAAG,UAEP/qC,GAAI,CACAG,EAAG,SACH4qC,EAAG,OAEPp/C,GAAIpc,KAAKoqtB,4BACT,GACJxlmB,aAAc,SAASN,EAAUsI,EAAWY,GACxCsslB,8BAA6C95sB,KAAMskH,EAAUsI,EAAWY,IAE5E1I,YAAa9hG,IACT,IACIshG,SAAUA,GACVthG,EACJ,OAAOhjB,KAAK0qtB,aAAapmmB,IAE7B2qC,UAAWj5I,KACH,IAAShW,KAAK2qtB,eAGlB3qtB,KAAK2qtB,cAAe,EACpB3qtB,KAAK4qtB,4BAA4B,CAC7B77oB,SAAS,EACTvgE,UAAWxO,OAEfgW,EAAExH,UAAU8kD,OAAO,QAASt9C,EAAExH,UAAU8kD,OAAO,iBACxCtzD,KAAK2qtB,iBAIxBh5f,MAAM/gM,EAAG4qC,EAAGw6I,GAER,GADAh2M,KAAKsqtB,qBAAqB91kB,OACtBx0I,KAAKyqtB,kBAAmB,CACxBzqtB,KAAKoqtB,2BAA2B31kB,OAC3BuhE,IACDA,EAAY,CACRplL,EAAGA,EACH4qC,EAAGA,EACHoE,MAAO,EACPE,OAAQ,IAGhB,IAAI+qpB,EAAkB70gB,EAAUp2I,MA1ED,IA0EgD,GA1EhD,IA0E4Fo2I,EAAUp2I,OAAS,EAC9I5/D,KAAKoqtB,2BAA2BrupB,IAAI,CAChCT,KAAM06I,EAAUplL,EAAIi6rB,EACpBtvpB,IAAKy6I,EAAUx6I,EA5EC,GA6EhBoE,MAAOo2I,EAAUp2I,MAAQ,EAAIirpB,EAC7B/qpB,OAAQk2I,EAAUl2I,OAAS,KAE/B9/D,KAAKsqtB,qBAAqB71kB,YAE1Bz0I,KAAKsqtB,qBAAqBh3pB,OAAO,WAAY,CACzC6W,OAAQv5C,EAAI,IAAM4qC,IAEtBx7D,KAAKsqtB,qBAAqB71kB,OAGlCm9E,QACI5xN,KAAKoqtB,2BAA2B51kB,OAChCx0I,KAAKsqtB,qBAAqB91kB,OAE9Bi2kB,kBACI,IACInL,QAASA,GACTtG,KACJ,OAAOsG,EAAQC,QAEnBmL,aAAapmmB,GACT,IAAIwmmB,GAAY,EACZ9qtB,KAAK+qtB,qBACLD,EAAY9qtB,KAAK+qtB,mBAAmBzmmB,IAEnCwmmB,IACDhR,0BAAyC95sB,KAAMskH,EAAUtkH,KAAK29sB,gBAAgB10pB,KAAKjpD,OACnFA,KAAKsqtB,qBAAqB91kB,QAGlCmpkB,gBAAgBl5qB,EAASphC,EAAMuJ,GACvB,iBAAoB63B,EACpBzkC,KAAKm3I,IAAI8hkB,wBAAwBx0qB,EAAS73B,GACnC,iBAAoB63B,GAC3BzkC,KAAK+/sB,yBAAyB,CAC1Bt7qB,QAASA,SAGb,OACAzkC,KAAKggtB,uBAAuB,CACxB38sB,KAAMA,IAIlB65sB,2BACIl9sB,KAAK+/sB,yBAA2B//sB,KAAKo2F,sBAAsB,qBAE/D+mnB,yBACIn9sB,KAAKggtB,uBAAyBhgtB,KAAKo2F,sBAAsB,mBAE7DinnB,eACI,OAAOqD,0BAA8C1gtB,KAAKszD,OAAO,aAErE62pB,uBAAuB7krB,EAAUk1qB,GAC7Bl1qB,EAASt/B,QAAQ,CAACy+B,EAASlyB,KACvB,IAAIy4sB,EAAmBxQ,EAAU34rB,OAAO,CAACtP,SACrC,IAAWkyB,EAAQA,UACnBzkC,KAAKiqtB,mBAAmBxlrB,EAAQA,SAAWumrB,GAE3CpitB,MAAM8B,QAAQ+5B,EAAQ4vB,QACtBr0D,KAAKmqtB,uBAAuB1lrB,EAAQ4vB,MAAO22pB,KAIvDtP,gBAAgBvpsB,EAAKkW,GACjBroB,KAAK6ptB,gBAAgB13sB,EAAKkW,GAE9BwhsB,gBAAgB13sB,EAAK48D,GACjB,IAAIksoB,EAAiBnB,qBAAoC95sB,KAAKsqtB,qBAAsBtqtB,KAAKiqtB,mBAAmB93sB,IAC5G2nsB,gCAA+C95sB,KAAKsqtB,qBAAsBrP,EAAgBlsoB,GAE9F0soB,cAActpsB,EAAKvF,GACf,IAAIqusB,EAAiBnB,qBAAoC95sB,KAAKsqtB,qBAAsBtqtB,KAAKiqtB,mBAAmB93sB,IAC5G2nsB,8BAA6C95sB,KAAKsqtB,qBAAsBrP,EAAgB9osB,EAAKvF,GAEjGgvsB,iBAAiBzpsB,EAAKkiD,GAClB,IAAI4mpB,EAAiBnB,qBAAoC95sB,KAAKsqtB,qBAAsBtqtB,KAAKiqtB,mBAAmB93sB,IAC5G2nsB,0BAAyC95sB,KAAKsqtB,qBAAsBrP,EAAgB9osB,EAAKkiD,GAE7FsnpB,YAAYtzrB,GACRroB,KAAKsqtB,qBAAqBh3pB,OAAO,YAAajrC,GAElDsqN,YACI,OAAO3yO,KAAK2qtB,aAEhBb,oCACI9ptB,KAAK4qtB,4BAA8B5qtB,KAAKo2F,sBAAsB,wBAElE2znB,2BACI/ptB,KAAK+qtB,mBAAqB/qtB,KAAKo2F,sBAAsB,eAEzDG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,uBACDrD,KAAK8ptB,oCACL,UACC,oBACD9ptB,KAAKk9sB,2BACL,UACC,kBACDl9sB,KAAKm9sB,yBACL,UACC,cACDn9sB,KAAK+ptB,2BACL,UACC,WACD/ptB,KAAK4jG,cACL,UACC,SACD,cAEA9jG,MAAMy2F,eAAe59E,MCjMrC,IAGIsysB,IAAwC,qCA6H5C,UA3HA,kBAAoC7inB,GAChCtS,QACIh2F,MAAMg2F,QACN91F,KAAKkrtB,eAAiBlrtB,KAAKo2F,sBAAsB,WACjD,IAAIn0F,KAASk8D,SACbn+D,KAAKmrtB,qBAAuB,CAAC,CACzB9/oB,GAAI,CACAz6C,EAAG,SACH4qC,EAAG,OAEP/qC,GAAI,CACAG,EAAG,SACH4qC,EAAG,UAEP2O,OAAQ,CACJv5C,EAAG,EACH4qC,EAAG,GAEP4vpB,cAAexrZ,GAAQrlT,KAAKC,IAnBA,IAmBuCvY,EAAO89D,YAAc6/P,EAAKvoP,OAAS,IACvG,CACChM,GAAI,CACAz6C,EAAG,QACH4qC,EAAG,UAEP/qC,GAAI,CACAG,EAAG,OACH4qC,EAAG,UAEP2O,OAAQ,CACJv5C,GAAG,EACH4qC,EAAG,GAEP4vpB,cAAexrZ,GAAQrlT,KAAKC,IAjCA,IAiCuC,EAAID,KAAKmvD,IAAIk2P,EAAKrkQ,IAAKt5D,EAAO89D,YAAc6/P,EAAKvoP,QAAU,IAC/H,CACChM,GAAI,CACAz6C,EAAG,SACH4qC,EAAG,UAEP/qC,GAAI,CACAG,EAAG,SACH4qC,EAAG,OAEP2O,OAAQ,CACJv5C,EAAG,EACH4qC,GAAG,GAEP4vpB,cAAexrZ,GAAQrlT,KAAKC,IA/CA,IA+CuColT,EAAKrkQ,IAAM,IAC/E,CACC8P,GAAI,CACAz6C,EAAG,OACH4qC,EAAG,UAEP/qC,GAAI,CACAG,EAAG,QACH4qC,EAAG,UAEP2O,OAAQ,CACJv5C,EAAG,EACH4qC,EAAG,GAEP4vpB,cAAexrZ,GAAQrlT,KAAKC,IA7DA,IA6DuC,EAAID,KAAKmvD,IAAIk2P,EAAKrkQ,IAAKt5D,EAAO89D,YAAc6/P,EAAKvoP,QAAU,KAGtIkrB,cACIziG,MAAMyiG,cACNviG,KAAKqrtB,0BAAyBjwpB,MAAE,SAASxtD,SAtEN,qCAsEqDi9D,SAAS7qE,KAAKm7D,YACtG,IAAImwpB,KAAkBlwpB,MAAE,SAASxtD,SAtEL,8BAsE6Ci9D,SAAS7qE,KAAKm7D,YACnFn7D,KAAKg/sB,gBACLsM,EAAgB19sB,SAvEc,oCAyElC5N,KAAKurtB,iBAAmBvrtB,KAAK24F,iBAAiB2ynB,EAAiB59e,GAAS,CACpEn/E,oBAAoB,EACpBr6H,UAAWl0B,KAAKm7D,aAGxB6jpB,eACI,IACIM,QAASA,GACTtG,KACJ,OAAOsG,EAAQC,QAEnB5tf,MAAM/gM,EAAG4qC,EAAGoxK,EAAMp+G,EAAU9oH,GACxB1F,KAAKurtB,iBAAiB/2kB,OACtBx0I,KAAKqrtB,uBAAuBtvpB,IAAI,CAC5BT,KAAM1qC,EAAI5wB,KAAKmrtB,qBAAqBv+e,GAAMziK,OAAOv5C,EACjD2qC,IAAKC,EAAIx7D,KAAKmrtB,qBAAqBv+e,GAAMziK,OAAO3O,IACjDi5E,OACH,IAAIxyI,GAASk8D,WACTqtpB,EAAYxrtB,KAAKqrtB,uBAAuBrntB,IAAI,GAChDhE,KAAKqrtB,uBAAuBtvpB,IAAI,CAC5BT,KAAMkwpB,EAAUt/oB,YAAcs/oB,EAAU9jpB,wBAAwBpM,KAAOr5D,EAAOkkN,QAAUqlgB,EAAUt/oB,YAClG3Q,IAAKiwpB,EAAUr/oB,WAAaq/oB,EAAU9jpB,wBAAwBnM,IAAMt5D,EAAOqkN,QAAUklgB,EAAUr/oB,aAEnG,IAAIs/oB,EAAUD,EAAU9jpB,wBACxB1nE,KAAKurtB,iBAAiBj4pB,OAAO,CACzBm7F,UAAWzuJ,KAAKmrtB,qBAAqBv+e,GAAMw+e,cAAcK,GACzD7rpB,WAAO,IAAW5/D,KAAKszD,OAAO,gBAAkBtzD,KAAKszD,OAAO,qBAAkB,EAC9Et5B,SAAU,CACNqxC,GAAIrrE,KAAKmrtB,qBAAqBv+e,GAAMvhK,GACpC56C,GAAIzwB,KAAKmrtB,qBAAqBv+e,GAAMn8M,GACpCrU,GAAIpc,KAAKqrtB,wBAEbr9jB,gBAAiB,KAAM5yF,QAAE,SAASwuB,QAAOxuB,QAAE,SAASxtD,SAASq9sB,MAAwCS,aAAa,CAC9G9rpB,MAAO,OACPE,OAAQ,SAEZ6oC,eAAgB,KACZ,IAAIxtC,EAAWn7D,KAAKm7D,WAAW11B,KAAK,IAAMwlrB,KAC1CjrtB,KAAKkrtB,eAAe,CAChB18lB,SAAUA,EACV9oH,SAAUA,EACVy1D,SAAUA,EACVq5E,KAAM,IAAMx0I,KAAKurtB,iBAAiB/2kB,YAI9Cx0I,KAAKurtB,iBAAiB92kB,OAE1Bm9E,QACI5xN,KAAKqrtB,uBAAuB72kB,OAC5Bx0I,KAAKurtB,iBAAiB/2kB,SC3B9Bm3kB,IApGA,kBAA4BvjnB,GACxBtS,QACIh2F,MAAMg2F,QACN91F,KAAKiptB,cAAW,EAChBjptB,KAAK89pB,UAAW,EAChB99pB,KAAK4rtB,4BACL5rtB,KAAK6rtB,wBAETtpnB,cACIziG,MAAMyiG,cACNviG,KAAKiptB,SAAWjptB,KAAKszD,OAAO,WAC5BtzD,KAAK8rtB,gBAAiB1wpB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAC/Cn7D,KAAKmxO,OAASnxO,KAAK24F,iBAAiB34F,KAAK8rtB,eAAgB3rf,GAAO,CAC5D1uF,MAAOzxI,KAAKszD,OAAO,SACnBo7F,SAAU1uJ,KAAKszD,OAAO,YACtBwM,OAAQ9/D,KAAKszD,OAAO,UACpBo8F,aAAc1vJ,KAAKszD,OAAO,gBAC1Bs7F,SAAU5uJ,KAAK+rtB,kBAGvBtonB,gBACWzjG,KAAKmxO,OACZnxO,KAAK8rtB,gBAAkB9rtB,KAAK8rtB,eAAejrtB,SAE/C0zF,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCk9C,MAAO,GACPid,SAAU,IACV5uF,OAAQ,OACR4vF,aAAc1vJ,KAAK09N,qBAG3BA,mBACI,MAAO,CAAC19N,KAAKgstB,oBAAqBhstB,KAAKistB,yBAE3CD,oBACI,MAAO,CACHxznB,OAAQ,WACRvlF,SAAU,QACVg9I,QAAS,SACTr+H,QAAS,CACLnb,KAAMupG,UAA2B,4BACjCl8D,QAAS,WACL9jD,KAAKiptB,SAASt7nB,QAAQ3tF,KAAKkstB,mBAC3BlstB,KAAK4xN,SACP3oK,KAAKjpD,QAInBistB,wBACI,MAAO,CACHzznB,OAAQ,WACRvlF,SAAU,QACVg9I,QAAS,SACTr+H,QAAS,CACLnb,KAAMupG,UAA2B,gCACjCl8D,QAAS9jD,KAAK4xN,MAAM3oK,KAAKjpD,QAIrCu2F,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,YACA,eACA,aACA,eACDrD,KAAKmxO,OAAO79K,OAAO36C,EAAKtV,KAAMsV,EAAK/L,OACnC,UACC,UACD5M,KAAKiptB,SAAWtwsB,EAAK/L,MACrB,UACC,eACD5M,KAAK4rtB,4BACL,UACC,WACD5rtB,KAAK6rtB,wBACL,cAEA/rtB,MAAMy2F,eAAe59E,IAGjCizsB,4BACI5rtB,KAAKmstB,oBAAsBnstB,KAAKo2F,sBAAsB,gBAE1Dy1nB,wBACI7rtB,KAAK+rtB,gBAAkB/rtB,KAAKo2F,sBAAsB,YAEtDw7H,QACI5xN,KAAKmxO,OAAO38F,OACZx0I,KAAK89pB,UAAW,EAEpBnsc,QACI3xN,KAAKmxO,OAAOxgC,WAAW3tH,QAAQ4G,OAAO5pF,KAAKmstB,uBAC3CnstB,KAAKmxO,OAAO18F,OACZz0I,KAAK89pB,UAAW,EAEpBnrb,YACI,OAAO3yO,KAAK89pB,WCxGb,IC+BHsuD,GAAmB,SAASp7pB,EAAOi4D,EAAUr8G,EAAOy/sB,GACpD,IAAIC,EAAiBt7pB,EAAMu7pB,gBAAkBv7pB,EAAMu7pB,iBAAmB,GAClEr5rB,EAAYm5rB,EAAmBz/sB,EAAQokD,EAAMi4D,KACzB58G,OAAO8tB,UAAUjnB,eAAeknB,KAAKkyrB,EAAgBrjmB,IAAaojmB,IAClE,wBACpBC,EAAerjmB,GAAY/1F,GAE/B89B,EAAMi4D,GAAYr8G,GAMlB4/sB,IAAuB,IAAIx+pB,KAE/B,aAA+B4yd,GAC3B,OAAO,WAAyBvsd,EAAO3uD,EAAU+mtB,EAAeltY,EAAShtU,EAAOm6sB,GAG5E,IAAIlotB,EACA+uE,EAGJ,WAAuCA,EAAU/uE,GAAGkotB,KAChD74oB,SAAK84oB,EAAgBt4pB,EAAO3uD,EAAU+mtB,EAAeltY,EAAS/6U,GAAGkotB,KAAuBx4oB,KAAKX,EAAS1/C,SAE1G,IATA0rT,EAAUA,GAAW,GACrBlrR,EAAQA,GAAS,GAQZ7vD,EALL+N,EAAQA,GAAS,EAKD/N,EAAI6vD,EAAM5vD,OAAQD,GAAK,EAAG,CACtC,GAAIo8gB,GAAWp8gB,EAAI+N,GAAS/N,EAAI,KAAQ,GAAK,IAAIwpD,KAAOw+pB,KAAwB,IAC5EA,WAAuB,IAAIx+pB,KAE3B4+pB,EADAr5oB,EAAW,IAAIC,MACyBhvE,GAAG,GACpC+uE,EAEX,IAAI32D,EAAOy3C,EAAM7vD,GACjB,IAAKkotB,EAAsB,CAEvB,GADAntY,EAAQ/9S,QAAQ5kB,GACZ6vsB,IAAiB,MAAmBltY,EAAS/6U,GAC7C,OAEJ,GAAIoY,EAAKuf,SAAU,CACf,IAAI0wrB,EAAmBF,EAAgB/vsB,EAAKuf,SAAUz2B,EAAU+mtB,EAAeltY,GAC/E,GAAIqhM,GAAWisM,EACXt5oB,SAAW,IAAIC,MACfq5oB,EAAiB34oB,KAAK04oB,EAA8Br5oB,EAAU/uE,GAAG,IAC1D+uE,GAKnB,GADAm5oB,GAAuB,GAClBD,IAAiB,MAAmBltY,EAAS/6U,GAC9C,OAEJ+6U,EAAQjuU,QACJ+iD,EAAM7vD,KAAOoY,IACbpY,GAAK,KAMrB,IAAIsotB,GAAcC,KAAsB,GACpCC,GAAmBD,KAAsB,GAE7C,YAAmBtqmB,EAAQ52G,GACvB,GAAI42G,MAAU/kG,OAAU7R,GACpB,QAASrH,EAAI,EAAGA,EAAIi+G,EAAOh+G,OAAQD,GAAK,EAAG,CACvC,IAAIwsD,EAAQyxD,EAAOj+G,GACnB,GAAIwsD,EAAM3tD,OAASwI,GAAMmlD,EAAMuvF,UAAY10I,GAAMmlD,EAAM8uF,YAAcj0I,GAAMmlD,EAAMz+C,QAAU1G,EACvF,OAAOrH,EAInB,OAAO,EAGX,YAAqBoI,EAAOglB,GACxB,IACIs2J,EAAe,CACft7K,MAAOA,EACP4qK,UAHY5qK,GAAUA,GAASi4V,UAAoBj4V,EAAOglB,EAAQuuE,SAG1C,IAE5B,OAAOvuE,EAAQi2H,cAAgBj2H,EAAQi2H,cAAcztH,KAAKxI,EAASs2J,GAAgBA,EAAa1Q,UAGpG,YAA4BwlM,GACxB,OAAO,SAAS/hV,EAAGpd,GACf,IAAInL,EAAS,EACTu6sB,EAASjwW,EAAc/hV,GACvBiyrB,EAASlwW,EAAcn/V,GACvBsvsB,KAAazvsB,OAAUuvsB,GACvBG,KAAa1vsB,OAAUwvsB,GAC3B,OAAIC,GAAcC,IACVH,EAASC,EACTx6sB,EAAS,EACFu6sB,EAASC,IAChBx6sB,GAAS,IAGby6sB,IAAeC,IACf16sB,EAAS,IAERy6sB,GAAcC,IACf16sB,GAAS,GAENA,GAIf,YAAoB2hD,GAEhB,QADI3hD,EAAS,GACJlO,EAAI6vD,EAAM5vD,OAAS,EAAGD,GAAK,EAAGA,GAAK,EACxCkO,EAAOrJ,KAAKgrD,EAAM7vD,GAAG2N,KAAOkiD,EAAM7vD,GAAGoI,OAEzC,OAAO8F,EAGX,YAA0BtG,EAAM1G,EAAU6M,EAAO86sB,GAC7C96sB,EAAQA,GAAS,EACjB86sB,EAAgBA,GAAiB,WAC7BjhtB,EAAK3H,QACLiB,EAAS0G,EAAMmG,GAEnB,QAAS/N,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,GAAK,EAAG,CACrC,IAAIoY,EAAOxQ,EAAK5H,GACZoY,EAAKywsB,IAAkBzwsB,EAAKywsB,GAAe5otB,QAC3C6otB,GAAiB1wsB,EAAKywsB,GAAgB3ntB,EAAU6M,EAAQ,EAAG86sB,IAKvE,aAA+BE,EAASC,GAEpC,QADI96sB,EAAS,GACJlO,EAAI,EAAGA,EAAI+otB,EAAQ9otB,OAAQD,GAAK,EACrCkO,EAAOrJ,KAAKkR,KAAKC,IAAI+ysB,EAAQ/otB,IAAM,EAAGgptB,EAAQhptB,IAAM,IAExD,OAAOkO,EAGX,YAA0Bkf,EAASw2b,GAC/B,IAAIpgQ,EAAap2L,EAAQw2b,GACrBqlQ,EAAc,EAWlB,IATI77rB,EAAQ87rB,aAAetlQ,EACvBqlQ,EAAc77rB,EAAQ/I,KAAKpkB,OACxByB,EAAYwntB,YAAc97rB,EAAQ87rB,aAAetlQ,GAAYx2b,EAAQ+7rB,aACxEF,EAAc77rB,EAAQ+7rB,aAAalptB,QAEnCqkE,UANiB,YAAcs/Y,EAAWx2b,EAAQg8rB,oBAAsBh8rB,EAAQi8rB,mBAAqB,GAMjF,CAACrpsB,EAAGqE,KACpB4ksB,EAAclzsB,KAAKC,IAAIizsB,EAAa5ksB,EAAKpkB,UAG1CujN,EAAWylgB,EAAc,IAAMzlgB,EAAWylgB,GAAa5rkB,UAC1D4rkB,GAAe,EAEnB,OAAOA,EAUX,aAAqBjxmB,EAAYsxmB,EAAYjlsB,EAAMklsB,GAC/C,IAAIr7sB,EAAS,GACbrG,cAAO0M,KAAK+0sB,GAAc,IAAI9ntB,QAAQgrD,IAClC,IAAIA,IAASA,EAAMp+C,WAAW,MAS9B,SADIyhD,EALAyoU,EAAY,EACZ8rP,EAAc//lB,EAAKpkB,OAAS,GAAGod,OAAOgH,EAAM,KAAKhH,OAAOmvC,GAASA,EACjEyhD,EAAWs7mB,EAAenlG,GAC1B7pgB,GAASpuB,SAAci4hB,GACvBh8mB,EAAQkhtB,EAAW98pB,OAEftzC,OAAU9Q,IAAU4vG,EAAWsgR,IACnClwX,EAAQmyG,EAAOvC,EAAWsgR,IAC1BA,GAAa,GAEZrqR,IAAY/0F,SAAU9Q,KACvB6lG,GAAWhnG,SAAKmB,IAEpBynD,EAAQ,CAAC,CACLyrF,UAAW8oe,EACXn2gB,SAAUA,EACVzY,UAAW,WAAsBhpC,OAAQ,EACzCu7F,mBAAe,EACfD,cAAezjI,IAEf,WACAwrC,EAAQA,EAAMxyC,OAlC1B,aAA2BjF,GACvB,OAAO8D,SAAI,CAAC,OAAQ,UAAW,SAAU,CAAC9T,EAAO2F,KAAU8M,QAAO,GAAIzC,EAAM,CACxE2vI,cAAe3/I,EACf67I,WAAYl2I,KA+Bay7sB,CAAkB35pB,EAAM,KACtC,WAAao+C,IACpBp+C,EAAQ45pB,IAAYzxmB,EAAY5vG,EAAOg8mB,EAAamlG,IAExDr7sB,EAAOrJ,KAAKqyB,MAAMhpB,EAAQ2hD,MAEvB3hD,EAGX,aAA8B2hD,EAAOouD,GACjC,IAAIsrmB,EAAiBG,GAAkBzrmB,GACvC,OAAOwrmB,IAAY55pB,EAAOA,EAAM,GAAI,GAAI05pB,GAG5C,YAA2BtrmB,GACvB,IAAI/vG,EAAS,GACbo2D,gBAAK25C,EAAQ,CAACj+F,EAAGwsC,KACbt+C,EAAOs+C,EAAM8uF,WAAaptI,EAAOs+C,EAAM8uF,YAAc9uF,EAAMyhD,WAExD//F,EAEX,IAAI0qoB,IAAwB,CACxBllX,MAAOtrR,GAASuhtB,mBAAiCvhtB,EAAQ,GACzDurR,QAASvrR,GAASuhtB,UAAwB,IAAIngqB,KAAK,IAAK,EAAIphD,EAAQ,GAAI,WACxEwhtB,UAAWxhtB,GAASuhtB,iBAA+BvhtB,IAGvD,YAAwCokD,GACpC,GAAI,SAAWA,EAAMyhD,SACZzhD,EAAMmvC,QACPisnB,GAAiBp7pB,EAAO,SAAUoslB,IAAsBpslB,EAAMu7F,wBAE3D,WAAav7F,EAAMyhD,SAAU,CACpC,IAAI85C,KAAgBn2C,OAAUplD,EAAMu7F,gBAAkBv7F,EAAMu7F,cAAgB,GAAKv7F,EAAMu7F,cACnFA,IAAkBv7F,EAAM62F,eACxBukkB,GAAiBp7pB,EAAO,gBAAiBk3H,IACrC,IACI61d,EAAkBl5S,UADJ38K,EAAat7K,MAAQ2/I,EACgBv7F,EAAMmvC,QAC7D,OAAO+nF,EAAa1Q,WAAaume,EAAkB,GAAGl8nB,OAAOqmK,EAAa1Q,UAAW,OAAO31J,OAAOk8nB,GAAmB,MAMtI,YAA0Bt7hB,EAAQ55F,GAC9B,IAAInW,EAAS,GACbmW,EAAOA,GAAQ,GACf,QAASrkB,EAAI,EAAGA,EAAIqkB,EAAKpkB,OAAQD,GAAK,EAClCkO,EAAOrJ,MAAKgW,QAAO,GAAIojG,EAAOj+G,GAAI,CAC9BikJ,WAAY,KACZzuD,UAAW,KACXkuD,WAAY,UACZE,aAAc,CAACv/H,EAAKrkB,OAG5B,OAAOkO,EAEX,IAAI27sB,GAAsB,CACtBC,0BAA0BC,EAAcz5sB,GACpC,IAAIu/C,EAAQr0D,KAAKwutB,kBAAkBD,EAAcz5sB,GAEjD,WAAiCy0C,GAC7B,OAAO,SAAS33B,GACZ,IAAIksB,EAIAA,SAAI,IAAI01B,OACRK,SAAKxf,GAAO6f,KAAK9nE,IACI,IAAIkkG,GAAWlkG,GACrBm9C,GAAY33B,GAASsiD,KAAKp2B,EAAEjqB,SAASsgD,KAAKr2B,EAAEjE,UACxDs6B,KAAKr2B,EAAEjE,QAEPiE,GAQf,OALiB,IAAIq1D,GAAW,CAC5BziE,KAAM+9qB,EAAwB,QAC9Bz3mB,WAAYy3mB,EAAwB,cACpCt8sB,IAAKnS,KAAKmS,UAMtB,YAA+B8qF,GAC3B,OAAOA,EAAOn6F,OAAO,GAAGgjP,cAAgB7oJ,EAAO31F,MAAM,GAEzD,IAAIwtiB,IAAoBj/R,GAAoBA,EAAiB/qM,YAAc+qM,EAAiB9qM,YACxFL,IAA0BjM,QAAS,KACnC,IAAIn9D,EAAW8wD,mBACf9wD,EAASY,KAAKwstB,mBAAmB,YAAa,eAAe7ssB,ODxTpC,yCCwT4E,aACrG,IAAIi/O,EAAYx/P,EAASY,KAAKystB,iBAC1BzmpB,EAAiB4se,IAAkBh0S,GACvC,OAAIA,GACAx/P,EAASY,KAAKlB,YAAY8/P,GAEvB54L,IAEX,SAAe,CACXkkpB,iBAAkBA,GAClBwC,YA1RJ,aAAqBh9rB,GACjB,OAAOi9rB,uBAA0Bj9rB,IA0RjCk7rB,YAAaA,GACbE,iBAAkBA,GAClB8B,UAAWA,GACXp5X,YAAaA,GACbq5X,mBAAoBA,GACpBC,WAAYA,GACZ1B,iBAAkBA,GAClB2B,sBAAuBA,IACvBC,iBAAkBA,GAClBC,qBAAsBA,IACtBjB,kBAAmBA,GACnBkB,+BAAgCA,GAChCC,iBAAkBA,GAClBhB,oBAAqBA,GACrBiB,sBAAuBA,GACvBx6K,kBAAmBA,IACnBpqe,wBAAyBA,IC/O7B6kpB,IAxFA,kBAAgCnnnB,GAC5BtS,QACIh2F,MAAMg2F,QACN,IACIijnB,gBAAiBA,GACjBC,KACJh5sB,KAAK0zQ,SAAW,IAAIqlc,EACpB/4sB,KAAKwvtB,+BAETjtnB,cACIziG,MAAMyiG,cACN,IAAIktnB,KAAqBr0pB,MAAE,SAASyP,SAAS7qE,KAAKm7D,YAC9CvpC,EAAU,CACVg4C,UAAW,OACXqkM,eAAe,EACfjpG,iBAAiB,EACjB0uG,SAAU1wP,IACN,IACI6kC,aAAcA,GACd7kC,EACJhjB,KAAK0vtB,eAAe7nqB,EAAayT,KAAMzT,EAAa0T,OAGxDygN,EAAqBh8Q,KAAKszD,OAAO,2BACjC,QACA1hC,EAAQuzI,UAAY62G,GAExBh8Q,KAAKg+Q,YAAch+Q,KAAK24F,iBAAiB82nB,EAAoBv3c,GAAYtmP,GACzE5xB,KAAK2vtB,uBAAuB,CACxB34f,SAAS57J,QAAEp7D,KAAKg+Q,YAAYn0E,WAC5B+4D,WAAY5iQ,OAGpB4vtB,UAAUt0pB,EAAMC,GACZv7D,KAAKg+Q,YAAY1lD,SAAS,CACtBh9J,KAAMA,EACNC,IAAKA,IAETv7D,KAAK6vtB,6BAETC,aAAax0pB,EAAMC,GACfv7D,KAAKg+Q,YAAY1b,SAAS,CACtBhnM,KAAMA,EACNC,IAAKA,IAETv7D,KAAK6vtB,6BAET9+X,UACI,IACIg/X,KAAMA,GACN/W,KACA79oB,EAAWn7D,KAAKg+Q,YAAY7iN,WAChC,OAAO,IAAI40pB,EAAKx1sB,KAAKo7J,SAAMhwG,OAASxK,IAAY5gD,KAAKo7J,SAAMjwG,OAAUvK,KAEzE60pB,qBACI,OAAOhwtB,KAAKg+Q,YAAY7iN,WAAW,GAEvC80pB,oBACI,OAAOjwtB,KAAKszD,OAAO,sBAAwBoX,KAA4B,EAE3E5/B,gBACA4krB,eAAep0pB,EAAMC,GACjB,IACIuoT,MAAOA,GACPk1V,KACJh5sB,KAAK0zQ,SAASgjJ,MAAM,sBAAuB,IAAM,IAAI5yC,EAAMxoT,EAAMC,IAErEs0pB,6BACI,IACI/rW,MAAOA,GACPk1V,KACJh5sB,KAAK0zQ,SAASgjJ,MAAM,sBAAuB,IAAM,IAAI5yC,EAAM9jX,KAAKg+Q,YAAYjyM,aAAc/rE,KAAKg+Q,YAAYhyM,cAE/GwjpB,+BACIxvtB,KAAK2vtB,uBAAyB3vtB,KAAKo2F,sBAAsB,mBAE7DG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,kBACDrD,KAAKwvtB,+BACL,UACC,qBACD,cAEA1vtB,MAAMy2F,eAAe59E,MChGrC,IAAIu3sB,IAAwB,CACxBC,mBACI,OAAOnwtB,KAAKowtB,UAAYpwtB,KAAKowtB,QAAU,CACnCC,QAAS,CACL7hmB,SAAU,UACVijB,MAAOzxB,UAA2B,8BAEtCswmB,UAAW,CACP9hmB,SAAU,YACVijB,MAAOzxB,UAA2B,gCAEtCuwmB,SAAU,CACN/hmB,SAAU,WACVijB,MAAOzxB,UAA2B,+BAEtCwwmB,WAAY,CACRhimB,SAAU,aACVijB,MAAOzxB,UAA2B,iCAEtCnnC,OAAQ,CACJ21C,SAAU,SACVijB,MAAOzxB,UAA2B,gCAI9CywmB,UAAW,SAAS/tkB,GAChB,IAAIgukB,EAAgB1wtB,KAAKmwtB,mBACzB,OAAIztkB,EACOA,EAAOhiI,IAAK,SAAS8lB,GACxB,MAAI,iBAAoBA,EACb,CACHgoF,SAAUhoF,EACVirG,MAAOi/kB,EAAclqrB,IAAMkqrB,EAAclqrB,GAAGirG,OAASjrG,GAGtDA,IACP1f,OAAQ,SAAS0f,GACjB,OAAOA,IAGR,CAACkqrB,EAAcL,QAASK,EAAcJ,UAAWI,EAAcH,SAAUG,EAAcF,cAGtG,UAAeN,ICrCf,IAKIjrX,IAAUv3H,WAAgB,CAC1Bn5I,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3Bu2F,aAAc,GACdF,iBAAiB,EACjBnB,kBAAkB,EAClBoB,WAAW,EACXhe,MAAO,KACP0N,cAAe,KACfgQ,gBAAiB,KACjB0xE,eAAgB,KAChB1R,qBAAqB,EACrBC,uBAAuB,KAG/Bh3H,QAAS,WACLp4F,KAAKm7D,WAAWvtD,SArBJ,cAsBZ5N,KAAKwrN,WAAW59M,SArBI,sBAsBpB5N,KAAKm5D,YAETgxC,eAAgB,WACZnqG,KAAKm5D,WACLn5D,KAAK2wtB,yBAETC,uBAAwB,SAAS53f,GAC7B,IAAInnJ,KAAUzW,MAAEp7D,KAAKszD,OAAO,WACxB+kF,EAAQ2gF,EAAUh5N,KAAK6wtB,gBAAa,KACnCtppB,OAASsK,EAAQ7tE,IAAI,KACtBhE,KAAK+tG,QAAQ,cAAesqC,EAAOxmE,IAG3C8+oB,sBAAuB,WACnB3wtB,KAAK6wtB,WAAa,MAAMhvsB,OAAO,IAAI4kG,MACnCzmH,KAAK0hO,kBAAkBtyJ,KAAK,CACxBvjE,GAAI7L,KAAK6wtB,aAEb7wtB,KAAK4wtB,wBAAuB,MAGpC18kB,GAAkB,YAAa+wN,KAC/B,UAAeA,ICnDf6rX,GAAe7rX,IC2Nf8rX,IA5MA,kBAAmCnU,IAC/B9mnB,QACIh2F,MAAMg2F,QACN91F,KAAK8ptB,oCACL9ptB,KAAKgxtB,mCAETr+e,YACI,OAAO3yO,KAAKszD,OAAO,aAEvB2spB,eACI,OAAOjgtB,KAAKszD,OAAO,gBAEvBivC,cACIziG,MAAMyiG,cACN,IAAIy0H,EAAUh3N,KAAKm7D,WACf81pB,GAAgB71pB,QAAE,SAASxtD,SAAS5N,KAAKkxtB,kBAAkBtjtB,SAAS5N,KAAKigtB,gBAhBpD,2BAgBkGp1oB,SAASmsJ,GACpIh3N,KAAKmxO,OAASnxO,KAAK24F,iBAAiBs4nB,EAAe9wf,GAAOngO,KAAKmxtB,oBAC/DnxtB,KAAKoxtB,sBAET38kB,OACIz0I,KAAKszD,OAAO,aAAa,GAE7BkhF,OACIx0I,KAAKszD,OAAO,aAAa,GAE7B8gJ,SACIp0M,KAAKszD,OAAO,aAActzD,KAAK2yO,aAEnCtkI,UACIruG,KAAKmxO,OAAO9iI,UAEhBgjnB,mBACI,OAAOrxtB,KAAKmxO,OAAOtnC,UAEvB66Y,iBAEI,SADetphB,MAAEp7D,KAAKqxtB,oBACNtktB,SAAS04B,KAAK,mBAElCm0qB,wBACI,MAAO,CAAC55sB,KAAKqxtB,mBAAoBrxtB,KAAK0klB,kBAE1C4sI,iCACI,IAAI3ghB,GAAWv1I,QAAEp7D,KAAKqxtB,oBACtB,SAAOzlpB,OAAe+kI,MAAYjrI,OAAUirI,GAEhD4ghB,mCACI,IAAI5ghB,GAAWv1I,QAAEp7D,KAAKqxtB,oBACtB,SAAO1lpB,OAAcglI,MAAYhrI,OAASgrI,GAE9CughB,iBACI,MAAO,GAEXM,iBACI,OAAOxxtB,KAAKszD,OAAO,UAAY,OAEnCm+pB,oBACI,OAAOzxtB,KAAKszD,OAAO,YAEvBo+pB,oBACI,OAAO1xtB,KAAKszD,OAAO,YAEvBq+pB,kBACI,OAAO3xtB,KAAKszD,OAAO,WAAa,OAEpCs+pB,qBACI,OAAO5xtB,KAAKszD,OAAO,aAEvBu+pB,qBACI,OAAO7xtB,KAAKszD,OAAO,aAEvBw+pB,oBACI,MAAO,GAEXC,qBACI,OAAO/xtB,KAAKszD,OAAO,aAEvB0+pB,8BAA8B59O,GAC1B,SAAO/0d,MAAO,CACV5T,KAAM,QACN2hD,MAAO,MACHgO,QAAE,QAAQW,IAAI,WAAY,WAE9B7iD,SAAU,MACNkiD,QAAE,QAAQW,IAAI,WAAY,MAE/Bq4a,GAEP69O,qBACI,MAAO,CACHz9kB,KAAM,CACF/oI,KAAM,WAEVgpI,KAAM,CACFhpI,KAAM,WAIlB0ltB,mBACI,IAAI79oB,EAAOtzE,KACX,MAAO,CACHinE,WAAW/I,WAAcl+D,KAAKiytB,qBAAuB,KACrD3ikB,SAAS,EACTG,WAAW,EACX5mD,mBAAmB,EACnB30E,UAAWl0B,KAAK+xtB,qBAChBnypB,MAAO5/D,KAAKwxtB,iBACZ1xpB,OAAQ9/D,KAAK2xtB,kBACbjjkB,SAAU1uJ,KAAKyxtB,oBACfhjkB,UAAWzuJ,KAAK4xtB,qBAChB7okB,SAAU/oJ,KAAK0xtB,oBACf/ikB,UAAW3uJ,KAAK6xtB,qBAChB73rB,SAAUh6B,KAAK8xtB,oBACftikB,iBAAiB,EACjBvB,0BAA0B,EAC1B6gE,4CAA4C,EAC5CnmH,eAAgB,WACZr1B,EAAKugL,oBAAoBvgL,EAAK69J,OAAOtnC,YAEzC56C,UAAW,KACPjvJ,KAAK4qtB,4BAA4B,CAC7B77oB,SAAS,EACTvgE,UAAWxO,QAGnBkvJ,QAAS,KACLlvJ,KAAKszD,OAAO,aAAa,GACzBtzD,KAAKkytB,2BAA2B,CAC5BnjpB,SAAS,EACTvgE,UAAWxO,QAGnB6uJ,SAAU,KACN7uJ,KAAK4qtB,4BAA4B,CAC7B77oB,SAAS,EACTvgE,UAAWxO,QAGnB4uJ,SAAU,KACN5uJ,KAAKszD,OAAO,aAAa,GACzBtzD,KAAKkytB,2BAA2B,CAC5BnjpB,SAAS,EACTvgE,UAAWxO,SAK3B6zP,oBAAoB78B,IACpBo6f,sBACIpxtB,KAAKmxO,OAAO79K,OAAO,UAAWtzD,KAAK2yO,aAEvCm3e,oCACI9ptB,KAAK4qtB,4BAA8B5qtB,KAAKo2F,sBAAsB,wBAElE46nB,mCACIhxtB,KAAKkytB,2BAA6BlytB,KAAKo2F,sBAAsB,uBAEjEG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,uBACDrD,KAAK8ptB,oCACL,UACC,sBACD9ptB,KAAKgxtB,mCACL,UACC,YACDhxtB,KAAKmxO,OAAO79K,OAAO,YAAatzD,KAAK+xtB,sBACrC,UACC,QACD/xtB,KAAKmxO,OAAO79K,OAAO,QAAStzD,KAAKwxtB,kBACjC,UACC,SACDxxtB,KAAKmxO,OAAO79K,OAAO,SAAUtzD,KAAK2xtB,mBAClC,UACC,WACD3xtB,KAAKmxO,OAAO79K,OAAO,WAAYtzD,KAAKyxtB,qBACpC,UACC,YACDzxtB,KAAKmxO,OAAO79K,OAAO,YAAatzD,KAAK4xtB,sBACrC,UACC,WACD5xtB,KAAKmxO,OAAO79K,OAAO,WAAYtzD,KAAK0xtB,qBACpC,UACC,YACD1xtB,KAAKmxO,OAAO79K,OAAO,YAAatzD,KAAK6xtB,sBACrC,UACC,eACD7xtB,KAAK4jG,cACL,UACC,YACD5jG,KAAKoxtB,sBACL,cAEAtxtB,MAAMy2F,eAAe59E,IAGjC47E,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCo+I,WAAW,EACXste,cAAc,EACdpqkB,QAAS,EACTC,QAAS,MChMrB,IAKIq8kB,IAA6B,wBAqVjC,UAnVA,kBAA6BC,IACzBt8nB,QACIh2F,MAAMg2F,QACN91F,KAAKqytB,WAAa,GAClBrytB,KAAKsytB,YAAc,GACnBtytB,KAAKuytB,uCACLvytB,KAAKwytB,+BAETtB,iBACI,MAf0B,2BAiB9BS,kBACI,OAAO3xtB,KAAKigtB,eAAiB,OAASngtB,MAAM6xtB,kBAEhDC,qBACI,OAAO5xtB,KAAKigtB,eAAiB,OAASngtB,MAAM8xtB,qBAEhDC,qBACI,OAzByB,IA2B7BC,oBACI,IACI93rB,EAAW,CACXqxC,GAAI,WACJ56C,GAAI,WACJrU,GAJUpc,KAAKszD,OAAO,iBAM1B,OAAKtzD,KAAKigtB,eAKHjmrB,GAJI3a,QAAO2a,EAAU,CACpBmwC,OAAQnqE,KAAKszD,OAAO,WAAa,IAAMtzD,KAAKszD,OAAO,aAK/D2+pB,qBACI,IAAIj7f,EAAUh3N,KAAKszD,OAAO,gBAC1B,OAAItzD,KAAKigtB,eACE,CACHzrkB,KAAMx0I,KAAKgytB,8BAA8B,CACrCpopB,UAAW,OACX/gE,KAAM,CACFmxB,SAAU,CACNqxC,GAAI,WACJ56C,GAAI,WACJrU,GAAI46M,IAGZzlJ,GAAI,CACAv3C,SAAU,CACNqxC,GAAI,YACJ56C,GAAI,WACJrU,GAAI46M,MAIhBviF,KAAMz0I,KAAKgytB,8BAA8B,CACrCpopB,UAAW,QACX/gE,KAAM,CACFmxB,SAAU,CACNqxC,GAAI,YACJ56C,GAAI,WACJrU,GAAI46M,IAGZzlJ,GAAI,CACAv3C,SAAU,CACNqxC,GAAI,WACJ56C,GAAI,WACJrU,GAAI46M,OAMjBl3N,MAAMmytB,qBAEjBd,mBACI,IAAIv/rB,EAAU9xB,MAAMqxtB,mBACpB,OAAKnxtB,KAAKigtB,eAiBHrurB,GAhBIvS,QAAOuS,EAAS,CACnB69H,WAAW,EACXC,aAAc,CAAC,CACXl3D,OAAQ,WACRvlF,SAAU,SACV2e,QAAS,CACL82E,oBAAoB,EACpBG,mBAAmB,EACnBD,mBAAmB,EACnB+oC,KAAM,uBACNyN,YAAa,WACb3zI,KAAM,cAO1BooP,oBAAoB78B,GAChB,IAAIy7f,EAAc,OAClB,GAAIzytB,KAAKszD,OAAO,cAAe,CAC3B,IAAI8rL,GAAkBhkL,QAAE,SAASxtD,SAxGD,sCAwGiDi9D,SAASmsJ,GAC1Fh3N,KAAK0ytB,oBAAoBtze,GACzBp/O,KAAK2ytB,mBAAmBvze,IACpBlhL,aACAu0pB,EAAc,gBAAiB/spB,SAAU1lE,KAAK4ytB,aAAaz3pB,YAAc,OAGjF,IAAI03pB,GAASz3pB,QAAE,SAASxtD,SAhHE,4BAgHoCi9D,SAASmsJ,MACvE1jF,OAAUu/kB,EAAQJ,GAClBzytB,KAAK0ytB,oBAAoBG,GACzB7ytB,KAAK8ytB,kBAAkBD,GAE3BH,oBAAoBv3pB,QACZ,IAAWn7D,KAAKszD,OAAO,iBACvB6H,EAASY,IAAI,QAAS/7D,KAAKszD,OAAO,iBAG1Cy/pB,kBACI,IAAI/ytB,KAAKigtB,eAGT,KAAIxxjB,EAAY,EAChB,GAAIzuJ,KAAKmxO,OAAQ,CACb,IAAIh+F,EAASnzI,KAAK0klB,iBAClBj2b,MAAa7iF,OAAeunE,GAE5BnzI,KAAKgztB,aACLvkkB,IAAa7iF,SAAe5rE,KAAKgztB,WAAW73pB,aAE5Cn7D,KAAK4ytB,eACLnkkB,MAAa7iF,OAAe5rE,KAAK4ytB,aAAaz3pB,aAElDn7D,KAAKszD,OAAO,YAAam7F,IAE7BkkkB,mBAAmB37f,GACf,IAAIpmB,GAASx1I,QAAE,SAASxtD,SA1IE,4BA0IoCi9D,SAASmsJ,GACvEh3N,KAAK4ytB,aAAe5ytB,KAAK24F,iBAAiBi4G,EAAQm9C,GAAS,CACvD3uG,YAAa,WACbknB,YAAatmD,UAA2B,sBACxC00C,eAAgBtoJ,IACZpM,KAAKiztB,gBAAgB7mtB,EAAKQ,QAE9Bo6J,iBAAkB,QAClB3f,QAAS,CAAC,CACNhkJ,KAAM,SACN4P,SAAU,QACV2e,QAAS,CACL82E,oBAAoB,EACpBG,mBAAmB,EACnBD,mBAAmB,EACnB+oC,KAAM,SACNyN,YAAa,WACb3zI,KAAM,SACNq4C,QAAS,KACL9jD,KAAK4ytB,aAAav2nB,cAMtCy2nB,kBAAkB97f,GACd,IAAIy4f,GAAqBr0pB,QAAE,SAASyP,SAASmsJ,GAC7Ch3N,KAAKg+Q,YAAch+Q,KAAK24F,iBAAiB82nB,EAAoBv3c,IAC7D,IAAIpD,EAAiB90Q,KAAKg+Q,YAAYlJ,eAAe7rN,KAAKjpD,KAAKg+Q,aAC/Dh+Q,KAAKg+Q,YAAYlJ,eAAiB9+P,IAC9B,QAASxR,EAAI,EAAGA,EAAIxE,KAAKqytB,WAAW5ttB,OAAQD,IAExC,IAAI42D,QADWp7D,KAAKqytB,WAAW7ttB,IACf23B,SAxKO,4BAwKoC13B,OACvD,OAAO,EAGf,OAAOqwQ,EAAe9+P,IAE1B,IAAIk9sB,GAAa93pB,QAAE,SAASyP,SAAS7qE,KAAKg+Q,YAAYn0E,WACtD7pM,KAAK0ytB,oBAAoBQ,GACzBlztB,KAAKmztB,iBAAiBD,GAE1BE,0BAGI,QAFI1gtB,EAAS,GACT2gtB,EAAgBrztB,KAAKszD,OAAO,iBACvB9uD,EAAI,EAAGA,EAAI6utB,EAAc5utB,OAAQD,IAAK,CAC3C,IAAIgqH,EAAW6kmB,EAAc7utB,GAAGgqH,SA2BhC97G,EAAOrJ,KAzBQ,CACXmlH,SAAUA,EACVijB,MAHQ4hlB,EAAc7utB,GAAGitI,OAGTjjB,EAChBqzB,SAAUwxkB,EAAc7utB,GAAGq9I,SAC3BsB,YAAakwkB,EAAc7utB,GAAG2+I,YAC9BC,OAAQiwkB,EAAc7utB,GAAG4+I,OACzBkwkB,WAAY,CAAC96nB,EAAQr9B,EAAU/uD,KAC3B,IAAImntB,KAAkBn4pB,MAAED,GACxBn7D,KAAKwztB,+BAA+B,CAChChlmB,SAAUpiH,EAAKoiH,SACf20B,YAAa/2I,EAAK+2I,YAClBswkB,WAAYtB,IACZ/ukB,OAAQh3I,EAAKg3I,OACbjoF,SAAUo4pB,IAEdvztB,KAAKqytB,WAAWhptB,KAAKkqtB,GACjB,KAAOvztB,KAAKsytB,aACZtytB,KAAK0ztB,uBAAuB,CACxBj9sB,KAAMzW,KAAKsytB,YACXqB,mBAAoB3ztB,KAAKqytB,WAAW5ttB,OAAS,IAGrDzE,KAAK4ztB,gBAAgBL,MAKjC,OAAO7gtB,EAEXkhtB,gBAAgBL,GACZ,IAAIvztB,KAAKg/sB,eAGT,KAAI5wU,EAAUmlV,EAAgB9trB,KAAK,iBAAmB0srB,IAA6B,MAC/EpooB,EAAa/pF,KAAKm7D,WACtBizU,EAAQtlU,KAAK,CAACv2D,EAAO/K,KACjB,IAAIqqE,GAAUzW,QAAE5zD,GACZiqI,EAAQ5/D,EAAQzC,KAAK,SACzB,GAAIqiE,EAAO,CACP,IAAIoilB,GAAWz4pB,QAAE,SAAS3kD,KAAKg7H,GAAO5mE,SAASkf,GAC/C/pF,KAAK24F,iBAAiBk7nB,EAAU5uX,GAAS,CACrCjjW,OAAQ6vE,EAAQ7tE,IAAI,GACpB6rJ,UAAW,aACXD,UAAW,aACX51H,SAAU,MACVitC,UAAW,CACPwtE,KAAM,CACFhpI,KAAM,OACN5C,KAAM,EACN0oE,GAAI,EACJmD,MAAO,KAEX8/D,KAAM,CACF/oI,KAAM,OACN5C,KAAM,EACN0oE,GAAI,EACJmD,MAAO,YAO/BsqoB,eACI,IACIM,QAASA,GACTtG,KACJ,OAAOsG,EAAQC,QAEnB4T,iBAAiBppoB,GACb/pF,KAAKgztB,WAAahztB,KAAK24F,iBAAiB5O,EAAYgnD,GAAW,CAC3DI,UAAU,EACVC,kBAAmB,EACnB1oC,oBAAoB,EACpBG,mBAAmB,EACnBD,mBAAmB,EACnBsoC,aAAa,EACbzrB,YAAa,QACbjJ,WAAYx8G,KAAKoztB,0BACjBhrsB,SAAUpoB,KAAKszD,OAAO,YACtBsxD,aAAc,CAACx4G,EAAMmG,EAAO4oD,KACxB/uD,EAAKkntB,WAAWtztB,KAAMm7D,EAAU/uD,IAEpC4qH,mBAAoBhhH,IAChBhW,KAAK8ztB,iCAAiC99sB,EAAExH,YAE5Cm6F,eAAgB3yF,IACZA,EAAExH,UAAU8kD,OAAO,gBAAiB,IAEpC,QADIe,EAAQr+C,EAAExH,UAAU8kD,OAAO,cACtB9uD,EAAI,EAAGA,EAAI6vD,EAAM5vD,OAAQD,KAC1B,IAAU6vD,EAAM7vD,GAAGq9I,SACnB7rI,EAAExH,UAAUwlI,aAAaxvI,IAClB,IAAS6vD,EAAM7vD,GAAGq9I,UACzB7rI,EAAExH,UAAUulI,WAAWvvI,GAG3B6vD,EAAM5vD,aAAU,MAAiB,GAAGo9I,UACpC7rI,EAAExH,UAAUulI,WAAW,GAE3B/zI,KAAK8ztB,iCAAiC99sB,EAAExH,cAIpDsltB,iCAAiCtltB,GAC7BA,EAAUskI,iBAAmB,IAAIt/D,MACjChlE,EAAUskI,iBAAiB5+D,KAAK,KAC5Bl0E,KAAK+ytB,kBACL/ytB,KAAKg+Q,YAAYvoP,SACjBz1B,KAAK8ztB,iCAAiCtltB,KAG9CyktB,gBAAgBx8sB,GACZzW,KAAKsytB,YAAc77sB,EACnBzW,KAAK0ztB,uBAAuB,CACxBj9sB,KAAMzW,KAAKsytB,YACXqB,mBAAoB3ztB,KAAKqytB,WAAW3xsB,IAAI,CAACy6C,EAAU5oD,IAAUA,KAEjEvS,KAAK+ztB,iBACL/ztB,KAAK+ytB,kBACL/ytB,KAAKg+Q,YAAYvoP,SAErBmmgB,eACI57hB,KAAKiztB,gBAAgBjztB,KAAKsytB,aAE9ByB,iBACI/ztB,KAAKqytB,WAAWrstB,QAAQm1D,IACpB,IAAI64pB,KAAoB54pB,MAAED,GAC1Bn7D,KAAK4ztB,gBAAgBI,KAG7BzB,uCACIvytB,KAAKwztB,+BAAiCxztB,KAAKo2F,sBAAsB,2BAErEo8nB,+BACIxytB,KAAK0ztB,uBAAyB1ztB,KAAKo2F,sBAAsB,mBAE7DG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,0BACDrD,KAAKuytB,uCACL,UACC,kBACDvytB,KAAKwytB,+BACL,UACC,iBACA,eACDxytB,KAAK4jG,cACL,UACC,gBACD5jG,KAAKgztB,WAAW1/pB,OAAO,aAActzD,KAAKoztB,2BAC1C,cAEAtztB,MAAMy2F,eAAe59E,MChKrCs7sB,IA3LA,kBAAqC7B,IACjCt8nB,QACIh2F,MAAMg2F,QACN91F,KAAKk0tB,aAAexT,+BAAmD1gtB,KAAKszD,OAAO,iBACnFtzD,KAAKm0tB,yBACLn0tB,KAAKo0tB,gCAET7xnB,cACIviG,KAAKq0tB,UAAY,GACjBr0tB,KAAKs0tB,sBAAmB,EACxBx0tB,MAAMyiG,cAEV2unB,iBACI,IAAI57oB,EAlByB,8BAmB7B,OAAKt1E,KAAKu0tB,iBACNj/oB,GAAa,uCAEVA,EAEXk8oB,iBACI,OAAOxxtB,KAAKigtB,eAAiB,OA3BA,IA6BjC0R,kBACI,OA7B8B,IA+BlCG,oBACI,IAAI96f,EAAUh3N,KAAKszD,OAAO,gBAC1B,OAAItzD,KAAKigtB,eACE,CACH50oB,GAAI,cACJ56C,GAAI,cACJrU,GAAI46M,GAGL,CACH3rJ,GAAI,eACJ56C,GAAI,eACJrU,GAAI46M,EACJ7sJ,OAAQ,IAAMnqE,KAAKszD,OAAO,WAAa,KAAOtzD,KAAKszD,OAAO,YAGlE2+pB,qBACI,IAAIj7f,EAAUh3N,KAAKszD,OAAO,gBAC1B,OAAItzD,KAAKigtB,eACE,CACHzrkB,KAAMx0I,KAAKgytB,8BAA8B,CACrCpopB,UAAW,SACX/gE,KAAM,CACFmxB,SAAU,CACNqxC,GAAI,cACJ56C,GAAI,cACJrU,GAAI46M,IAGZzlJ,GAAI,CACAv3C,SAAU,CACNqxC,GAAI,WACJ56C,GAAI,cACJrU,GAAI46M,MAIhBviF,KAAMz0I,KAAKgytB,8BAA8B,CACrCpopB,UAAW,MACX/gE,KAAM,CACFmxB,SAAU,CACNqxC,GAAI,WACJ56C,GAAI,cACJrU,GAAI46M,IAGZzlJ,GAAI,CACAv3C,SAAU,CACNqxC,GAAI,cACJ56C,GAAI,cACJrU,GAAI46M,OAMjBl3N,MAAMmytB,qBAEjBd,mBACI,OAAO9xsB,QAAOvf,MAAMqxtB,mBAAoB,CACpC1hkB,UAAWzvJ,KAAKigtB,eAChBzwjB,gBAAiBxvJ,KAAKigtB,iBAG9Bpsd,oBAAoB78B,GAChB,GAAKh3N,KAAKk0tB,aAAazvtB,OAGvB,KAAIoutB,GAASz3pB,QAAE,SAASxtD,SAhGK,+BAgGoCi9D,SAASmsJ,GACtEh3N,KAAKu0tB,eACLv0tB,KAAKw0tB,gBAAgB3B,GAErB7ytB,KAAKy0tB,kBAAkB5B,EAAQ7ytB,KAAKk0tB,aAAa,GAAI,GAAG,IAGhEK,eACI,OAAOv0tB,KAAKk0tB,aAAazvtB,OAAS,EAEtC+vtB,gBAAgBx9f,GACZ,IAAI0yZ,GAAYtujB,QAAE,SAASyP,SAASmsJ,GACpCh3N,KAAK00tB,UAAY10tB,KAAK24F,iBAAiB+whB,EAAW5a,GAAU,CACxDjmgB,mBAAmB,EACnB2T,WAAYx8G,KAAKk0tB,aACjBtvmB,aAAc,CAACx4G,EAAMmG,EAAO4oD,KACxBn7D,KAAKy0tB,kBAAkBt5pB,EAAU/uD,EAAMmG,IAE3CykH,mBAAoBhhH,IAChBhW,KAAK20tB,gCACL30tB,KAAK65sB,sBAETlxmB,eAAgB3yF,IACZhW,KAAKmxO,OAAO79K,OAAO,YAAUoS,OAAU1vD,EAAExH,UAAU2sD,YAAcn7D,KAAKsxtB,kCAClEtxtB,KAAK40tB,mBACL50tB,KAAK60tB,qBAAoBjppB,OAAe5rE,KAAK40tB,iBAAiBz5pB,YAC9Dn7D,KAAK40tB,iBAAiBthqB,OAAO,SAAUtzD,KAAK60tB,uBAK5DJ,kBAAkBz9f,EAASvnJ,EAAKl9D,EAAOuitB,GACnC,IAAIrF,KAAqBr0pB,MAAE,SAASyP,SAASmsJ,GACzC4rC,EAAa5iQ,KAAK24F,iBAAiB82nB,EAAoBv3c,GAAY,CACnEp4M,OAAQ9/D,KAAK60tB,oBAEjB70tB,KAAK+0tB,uBAAuBnyd,EAAW/4D,UAAWp6H,EAAKl9D,GACvDoL,EACI3d,KAAKmxO,OAAO79K,OAAO,YAAUoS,OAAUk9L,EAAWznM,YAAcn7D,KAAKsxtB,kCAErEtxtB,KAAK40tB,iBAAmB50tB,KAAK40tB,kBAAoBhyd,EAGzDmyd,uBAAuB/9f,EAASziM,EAAOhiB,GAC/BgiB,EAAMmuH,OACNnuH,EAAMmuH,OAAO18I,QAAQ,CAACs8K,EAAIE,KACtBxiL,KAAKg1tB,uBAAuBh+f,EAASzkN,EAAO+vK,EAAG7wC,MAAO6wC,EAAGh9I,YAEtD/Q,EAAM+Q,UACbtlC,KAAKg1tB,uBAAuBh+f,EAASzkN,OAAO,EAAQgiB,EAAM+Q,UAGlE0vrB,uBAAuBh+f,EAASzkN,EAAOk/H,EAAOnsG,GACtCmsG,MACAr2E,MAAE,SAASxtD,SArJ0B,2CAqJ2Bi9D,SAASmsJ,GAASvgN,KAAKg7H,GAE3F,IACI94H,EAAO,CACPq+M,SAFW57J,QAAE,SAASxtD,SAtJiB,6CAsJsCi9D,SAASmsJ,GAGtF1xL,SAAUA,GAEdtlC,KAAKi1tB,uBAAuBt8sB,GACvB3Y,KAAKq0tB,UAAU9htB,KAChBvS,KAAKq0tB,UAAU9htB,GAAS,IAE5BvS,KAAKq0tB,UAAU9htB,GAAOlJ,KAAKsP,EAAKs3I,SAChCjwJ,KAAKs0tB,iBAAmB37sB,EAAKs3I,QAEjCilkB,oBACI,IAAI3itB,EAAQvS,KAAK00tB,UAAY10tB,KAAK00tB,UAAUphqB,OAAO,iBAAmB,EACtE,OAAOtzD,KAAKq0tB,UAAU9htB,GAE1B4htB,yBACIn0tB,KAAKi1tB,uBAAyBj1tB,KAAKo2F,sBAAsB,mBAE7Dg+nB,gCACIp0tB,KAAK20tB,8BAAgC30tB,KAAKo2F,sBAAsB,0BAEpEG,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,kBACDrD,KAAKm0tB,yBACL,UACC,yBACDn0tB,KAAKo0tB,gCACL,UACC,eACDp0tB,KAAK4jG,cACL,cAEA9jG,MAAMy2F,eAAe59E,MC9FrCw8sB,IAxGA,kBAAsC5Z,GAClC17sB,YAAYs+G,GACRr+G,MAAMq+G,GACN,IACI2imB,eAAgBA,GAChB9H,KACJh5sB,KAAKo1tB,eAAiB,GACtBp1tB,KAAKo1tB,eAAetU,EAAe2E,YAAc,aACjDzltB,KAAKo1tB,eAAetU,EAAe2F,WAAa,SAAS75sB,GACjD,iBAAoB5M,KAAKozD,WAAW,aACpCpzD,KAAK6yD,WAAW,kBAAmBjmD,GAEnC5M,KAAK6yD,WAAW,YAAajmD,IAGrC5M,KAAKo1tB,eAAetU,EAAeuU,gBAAkB,SAASzotB,GAC1D,IACI0otB,aAAcA,GACdtc,KACJ,OAAQpssB,QACC0otB,EAAaC,WACdv1tB,KAAK6yD,WAAW,eAAgB,cAChC,WACCyiqB,EAAa3O,WACd3mtB,KAAK6yD,WAAW,eAAgB,YAChC,WACCyiqB,EAAaE,SACdx1tB,KAAK6yD,WAAW,eAAgB,cAG5C7yD,KAAKo1tB,eAAetU,EAAe+E,kBAAoB,aACvD7ltB,KAAKo1tB,eAAetU,EAAeiF,UAAY,WAC/C/ltB,KAAKo1tB,eAAetU,EAAemF,YAAc,aACjDjmtB,KAAKo1tB,eAAetU,EAAeqF,UAAY,SAASv5sB,GAChD,iBAAoB5M,KAAKozD,WAAW,YACpCpzD,KAAK6yD,WAAW,iBAAkBjmD,GAElC5M,KAAK6yD,WAAW,WAAYjmD,IAGpC5M,KAAKo1tB,eAAetU,EAAe6E,WAAa,YAChD3ltB,KAAKo1tB,eAAetU,EAAesF,UAAY,SAASx5sB,GACpD,IAAI4nG,EAAWx0G,KAAKozD,WAAW,kBAC3B,IAAWohD,GAAYA,EAAS50C,QAAUhzD,EAAMgzD,OAAS40C,EAAS10C,SAAWlzD,EAAMkzD,SACnF9/D,KAAK6yD,WAAW,WAAYjmD,IAGpC5M,KAAKo1tB,eAAetU,EAAewF,eAAiB,SAAS15sB,GACzD5M,KAAK6yD,WAAW,kBAAmBjmD,EAAQ,YAAc,aAE7D5M,KAAKo1tB,eAAetU,EAAe6E,WAAa,SAAS/4sB,GACrD,IACI6otB,YAAaA,GACbzc,KACJ,OAAQpssB,QACC6otB,EAAYC,GACb11tB,KAAK6yD,WAAW,YAAa,MAC7B,WACC4iqB,EAAYE,GACb31tB,KAAK6yD,WAAW,YAAa,MAC7B,WACC4iqB,EAAYG,GACb51tB,KAAK6yD,WAAW,YAAa,QAGzC7yD,KAAKo1tB,eAAetU,EAAe0F,WAAa,YAChDxmtB,KAAK61tB,YAAc,EAEvB1c,iBACI,OAAO9ssB,OAAO0M,KAAK/Y,KAAKo1tB,gBAAgB10sB,IAAK,SAASvO,GAClD,OAAOY,SAASZ,KAGxBinsB,aAAajnsB,EAAKvF,GACd,IAAI5M,KAAK81tB,iBAGT,MAAKj+pB,cACL,IACQ,mBAAsB73D,KAAKo1tB,eAAejjtB,GAC1CnS,KAAKo1tB,eAAejjtB,GAAKioB,KAAKp6B,KAAM4M,GAEpC5M,KAAK6yD,WAAW7yD,KAAKo1tB,eAAejjtB,GAAMvF,WAG9C5M,KAAK+3D,cAGbF,cACI73D,KAAK61tB,cAET99pB,YACI/3D,KAAK61tB,cAETC,iBACI,OAAO91tB,KAAK61tB,YAAc,EAE9BziqB,WAAW/vD,GACP,OAAOrD,KAAK42b,OAAOtjY,OAAOjwD,GAE9BwvD,WAAWxvD,EAAMuJ,GACb5M,KAAK42b,OAAOtjY,OAAOjwD,EAAMuJ,KC/FjC,IAIImptB,IAAWv/e,WAAe,CAC1BjiJ,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BuQ,IAAK,EACLlvD,IAAK,IACL5N,MAAO,KAGf21F,YAAa,WACTviG,KAAKm7D,WAAWvtD,SAbH,eAcb5N,KAAKotM,iBACLptM,KAAKsjgB,mBACLtjgB,KAAKsyc,eACLtyc,KAAKu+O,eACLv+O,KAAKg2tB,kBACLh2tB,KAAKm5D,YAETi/B,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAKg2tB,gBAAgBh2tB,KAAKi2tB,uBAE9B7ohB,eAAgB,WACZptM,KAAK+rN,aAAY3wJ,MAAE,SAASxtD,SAvBP,uBAuBwCi9D,SAAS7qE,KAAKm7D,aAE/Emoc,iBAAkB,WACdtjgB,KAAKk2tB,SAAQ96pB,MAAE,SAASxtD,SA5BD,yBA4BoCi9D,SAAS7qE,KAAK+rN,YAE7EumP,aAAc,WACVtyc,KAAKm2tB,WAAU/6pB,MAAE,SAASxtD,SA9BP,qBA8BsCi9D,SAAS7qE,KAAKk2tB,QAE3E33e,aAAc,WACV,IAAI9iN,EAAMz7B,KAAKszD,OAAO,SAClBoW,EAAM1pE,KAAKszD,OAAO,OAClB94C,EAAMxa,KAAKszD,OAAO,OACtB,KAAIoW,EAAMlvD,GAGV,IAAIihB,EAAMiuC,EAGN,OAFA1pE,KAAKszD,OAAO,QAASoW,QACrB1pE,KAAKo2tB,cAAgB,GAGzB,GAAI36rB,EAAMjhB,EAGN,OAFAxa,KAAKszD,OAAO,QAAS94C,QACrBxa,KAAKo2tB,cAAgB,GAGzB,IAAI72kB,EAAQ71E,IAAQlvD,EAAM,GAAKihB,EAAMiuC,IAAQlvD,EAAMkvD,IAClD1pE,KAAKq2tB,uBAAyBr2tB,KAAKg2tB,gBAAgB,CAChDp2pB,MAAO,IAAM2/E,EAAQ,MAEzBv/I,KAAK+tG,QAAQ,CACTytY,SAAUx7e,KAAKszD,OAAO,OACtBmob,SAAUjhe,EACV6ge,SAAU5/c,IAEdz7B,KAAKo2tB,cAAgB72kB,IAEzB02kB,mBAAoB,WAChB,MAAO,CACHr2pB,MAAO,IAAM5/D,KAAKo2tB,cAAgB,MAG1CJ,gBAAiB,SAASpksB,GACtBqjD,QAAQj1E,KAAKm2tB,SACRvksB,EAMD5xB,KAAKq2tB,yBAA0Bn4pB,YAGnC+W,WAAWj1E,KAAKm2tB,QAAS,CACrB1qtB,KAAM,SACN4oE,SAAU,IACV9C,GAAI3/C,IAXJ5xB,KAAKm2tB,QAAQp6pB,IAAI,CACb6D,MAAO,KAanB22B,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,QACDrD,KAAKu+O,eACLv+O,KAAKm5D,SAASxgD,GACd,UACC,UACA,MACD3Y,KAAKu+O,eACL,cAEAv+O,KAAKm5D,SAASxgD,KAG1B+K,SAAU,WACNuxD,QAAQj1E,KAAKm2tB,SACbn2tB,KAAKm5D,cAGb+6E,GAAkB,aAAc6hlB,KAChC,UAAeA,ICzGf,IAOIO,IAAoC,mCACpCC,IAAcR,YAAiB,CAC/BxhoB,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BvsD,MAAO,EACP4ptB,aAAc,SAASj3kB,GACnB,MAAO,aAAehlI,KAAK2zC,MAAM,IAAMqxF,GAAS,KAEpDk3kB,YAAY,EACZC,WAAY,KACZhunB,oBAAoB,EACpBiunB,eAAgB,cAChBl7e,uBAAwB,KAGhC7mJ,qBAAsB,WAClB,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,SAAS88J,GACb,MAAO,YAAcA,EAAQ1/J,UAEjC7vC,QAAS,CACL6pN,uBAAwB,OAIpCl5I,YAAa,WACTviG,KAAK42tB,gBACL52tB,KAAK62tB,wBACL72tB,KAAKm5D,WACLn5D,KAAKm7D,WAAWvtD,SApCA,kBAqChB5N,KAAK+rN,UAAUn+M,SAjCS,0BAkCxB5N,KAAKk2tB,MAAMtotB,SArCe,4BAsC1B5N,KAAK+tG,QAAQ,OAAQ,kBACrB3yC,MAAE,SAASxtD,SAtCqB,kCAsCuBi9D,SAAS7qE,KAAK+rN,WAAWniI,OAAO5pF,KAAKk2tB,OAC5Fl2tB,KAAKm2tB,QAAQvotB,SAtCS,wBAuCtB5N,KAAK82tB,cAAc92tB,KAAKszD,OAAO,gBAEnC8tC,cAAe,WACX,OAAO,GAEXy1nB,sBAAuB,WACnB72tB,KAAK+2tB,gBAAkB/2tB,KAAKo2F,sBAAsB,eAEtDwgoB,cAAe,WACX52tB,KAAKg3tB,UAAW57pB,QAAE,SAASxtD,SA9CJ,0BAgD3BqptB,0BAA2B,WACvBj3tB,KAAKk3tB,oBAAqB97pB,QAAE,SAASxtD,SAhDK,sCAkD1C,QADI6sB,EAAWz6B,KAAKszD,OAAO,0BAClB9uD,EAAI,EAAGA,EAAIi2B,EAAUj2B,KAC1B42D,QAAE,SAASxtD,SAAS0otB,KAAmC1otB,SAAS0otB,IAAoC,KAAO9xtB,EAAI,IAAIqmE,SAAS7qE,KAAKk3tB,oBAErIl3tB,KAAKk3tB,mBAAmBrspB,SAAS7qE,KAAK+rN,YAE1C+qgB,cAAe,SAASlqtB,GACpB,IAAIuqtB,EAAgBn3tB,KAAKszD,OAAO,kBAAkBphD,MAAM,KACpDtF,EACI,UAAwB,IAAM,SAAWuqtB,EAAc,GACvDn3tB,KAAKg3tB,SAAShpf,UAAUhuO,KAAK+rN,WAE7B/rN,KAAKg3tB,SAASnspB,SAAS7qE,KAAK+rN,WAGhC/rN,KAAKg3tB,SAASxurB,SAElBxoC,KAAK0uO,wBAETA,qBAAsB,WAClB,IACIyof,EADWn3tB,KAAKszD,OAAO,kBACEphD,MAAM,KACnClS,KAAK+rN,UAAUj+M,YAAY,kIAC3B,IAAIshO,EAAgB,eAAiB+nf,EAAc,GAC/CA,EAAc,KACd/nf,GAAiB,IAAM+nf,EAAc,IAEzCn3tB,KAAK+rN,UAAUn+M,SAASwhO,IAE5Bgof,0BAA2B,SAASxqtB,GAC5BA,GACA5M,KAAKi3tB,4BACLj3tB,KAAKk2tB,MAAM9hhB,QAAO,KAElBp0M,KAAKk2tB,MAAM9hhB,QAAO,GAClBp0M,KAAKk3tB,mBAAmBr2tB,gBACjBb,KAAKk3tB,qBAGpB34e,aAAc,WACV,IAAI9iN,EAAMz7B,KAAKszD,OAAO,SAClB94C,EAAMxa,KAAKszD,OAAO,OACjB73B,GAAO,IAAMA,GAIdz7B,KAAKk3tB,oBACLl3tB,KAAKo3tB,2BAA0B,GAE/B37rB,IAAQjhB,GACRxa,KAAK+2tB,kBAET/2tB,KAAKm5D,WACLn5D,KAAKq3tB,cAVDr3tB,KAAKo3tB,2BAA0B,IAYvCC,WAAY,WACR,IAAIl3nB,EAASngG,KAAKszD,OAAO,gBAErB6sC,GADA3nF,SAAW2nF,GACFA,EAAOl3C,KAAKjpD,MAEZ,SAAS4M,GACd,OAAOA,GAGf,IAAI0qtB,EAAan3nB,EAAOngG,KAAKo2tB,cAAep2tB,KAAKszD,OAAO,UACxDtzD,KAAKg3tB,SAASvgtB,KAAK6gtB,IAEvB5zsB,SAAU,WACN1jB,KAAKg3tB,SAASn2tB,SACdb,KAAKm5D,YAETo9B,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,eACDrD,KAAKq3tB,aACL,UACC,aACDr3tB,KAAK82tB,cAAcn+sB,EAAK/L,OACxB,UACC,iBACD5M,KAAK82tB,cAAc92tB,KAAKszD,OAAO,eAC/B,UACC,aACDtzD,KAAK62tB,wBACL,UACC,yBACD,cAEA72tB,KAAKm5D,SAASxgD,OAI9Bu7H,GAAkB,gBAAiBqilB,KACnC,SAAeA,IChHf,IAAIt0tB,IAASk8D,WAITo5pB,IAA8B,2BAS9BC,IAAoC,iCAIpCC,IAA+B,4BAC/BC,IAA+B,4BAC/BC,GAA4B,yBAC5BC,GAAsC,mCAEtCC,IAAmC,gCAMnCC,GAAsB,MAAQ71tB,GAAO81tB,SACzC,kBAA2Bvhf,GACvBjuI,iBACI,IAAIkoG,EAAQz6L,IACRA,EAAEjL,iBACF,IAAIittB,EAAgBh4tB,KAAKi4tB,cAAc98pB,WACvC1M,aAAqBupqB,EAAe5smB,KAExC,OAAO/rG,QAAOvf,MAAMyoG,iBAAkB,CAClCsb,MAAO4sF,EACP/gI,MAAO+gI,IAGfz7G,yBACIl1F,MAAMk1F,0BACN31E,QAAOrf,KAAK4vF,oBAAqB,CAC7BhjF,OAAO,IAGf2nF,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC2joB,UAAW,EACXtrtB,MAAO,GACPurtB,iBAAkBn4mB,UAA2B,6BAC7Co4mB,iBAAkBp4mB,UAA2B,yBAC7Cm0Y,UAAWn0Y,UAA2B,2BACtC38G,KAAM,UACN8tI,UAAU,EACVknlB,OAAQ,GACRC,UAAW,IACXC,gBAAgB,EAChBC,cAAc,EACdn3Z,SAAU,EACVo3Z,mBAAe,EACfC,cAAU,EACVC,qBAAsB34mB,UAA2B,gCACjD44mB,gBAAiB54mB,UAA2B,2BAC5C64mB,oBAAqB74mB,UAA2B,sCAChD84mB,qBAAsB94mB,UAA2B,uCACjD+4mB,WAAY,YACZC,aAAc,OACdC,cAAe,GACfC,iBAAkB,GAClBC,aAAc,KACdC,gBAAiB,KACjBC,WAAY,KACZC,gBAAiB,KACjBC,WAAY,KACZC,cAAe,KACfC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBC,sBAAuB,GACvBC,YAAa,EACbC,YAAa,EACbt0jB,UAAW,GACXu0jB,4BAA6B/5mB,UAA2B,uCACxDg6mB,0BAA2Bh6mB,UAA2B,qCACtDi6mB,0BAA2Bj6mB,UAA2B,qCACtDk6mB,iBAAiB,EACjBrzjB,sBAAuB,SACvBszjB,WAAY,KACZC,YAAa,KACbC,YAAa,KACb/jf,wBAAyB,CACrB3tK,EAAG,EACH9gD,EAAG,GAEP+gF,mBAAmB,EACnB0xnB,qBAAqB,EACrBC,aAAa,EACbC,qBAAqB,EACrBC,kBAAmB,SACnBC,mBAAoB,cAG5B9loB,uBACI,OAAO90F,MAAM80F,uBAAuB/yE,OAAO,CAAC,CACxCwiD,OAAQ,IAAM,eAAcrB,OAAexB,aAAewB,iBAC1DpxC,QAAS,CACLi3E,mBAAmB,IAExB,CACCxkC,OAAQ,CAAC,CACL5C,SAAU,YAEd7vC,QAAS,CACL0kN,wBAAyB,CACrBzuN,EAAG,KAGZ,CACCw8C,OAAQ,IAAM,eAAcrB,OAAexB,WAC3C5vC,QAAS,CACL2osB,aAAa,IAElB,CACCl2pB,OAAQ,KAAOyzpB,KACflmsB,QAAS,CACLmnsB,WAAY,YAEjB,CACC10pB,OAAQ,IAAM,eAAcrB,OAAexB,WAC3C5vC,QAAS,CACL4osB,qBAAqB,IAE1B,CACCn2pB,OAAQ,IAAM2rE,KACdp+G,QAAS,CACL6osB,kBAAmB,YAExB,CACCp2pB,OAAQ,IAAM4rE,KACdr+G,QAAS,CACL8osB,mBAAoB,WAIhC3jqB,aAAanlC,GACT,IAAI+osB,EAAqB,cAAe/osB,EACxC9xB,MAAMi3D,aAAanlC,IACd+osB,IAAuB36tB,KAAK46tB,6BAC7B56tB,KAAKszD,OAAO,YAAa,IAGjCwiC,QACIh2F,MAAMg2F,QACN91F,KAAK66tB,iBACL76tB,KAAK86tB,aACL96tB,KAAK+6tB,qBACL/6tB,KAAKg7tB,eACLh7tB,KAAKi7tB,0BACLj7tB,KAAKk7tB,6BACLl7tB,KAAKm7tB,wBACLn7tB,KAAKo7tB,6BACLp7tB,KAAKq7tB,wBACLr7tB,KAAKs7tB,2BACLt7tB,KAAKu7tB,6BACLv7tB,KAAKw7tB,6BACLx7tB,KAAKy7tB,6BAETV,qBACI,IAAIzjqB,EAAW,KACf,GAAIt3D,KAAKszD,OAAO,aAAe,EAAG,CAC9B,IAAI8mqB,EAAcp6tB,KAAKszD,OAAO,eAC9BgE,EAAW8iqB,MAAe5htB,OAAW4htB,GAAe,IAAIsB,IAA+B17tB,MAAQ,IAAI27tB,IAAgC37tB,UAChI,CACH,IAAIm6tB,EAAan6tB,KAAKszD,OAAO,cAC7BgE,EAAW6iqB,MAAc3htB,OAAW2htB,GAAc,IAAIyB,IAA8B57tB,MAAQ,IAAI67tB,IAA+B77tB,MAEnIA,KAAK87tB,gBAAkBxkqB,EAE3BujqB,iBACI76tB,KAAK+7tB,qBAAsB,EACtB/7tB,KAAKg8tB,cACNh8tB,KAAKg8tB,eA5JmB5gqB,MAAE,WAAWgU,KAAK,OAAQ,QA6JlD3gB,QAAgBzuD,KAAKg8tB,YAAa,SAAUh8tB,KAAKi8tB,oBAAoBhzqB,KAAKjpD,OAC1EyuD,QAAgBzuD,KAAKg8tB,YAAa,QAAShmtB,IACvCA,EAAEouE,kBACFpkF,KAAK03f,mBACE13f,KAAKszD,OAAO,wBAA0BtzD,KAAK+7tB,uBAG1D/7tB,KAAKg8tB,YAAYrgsB,KAAK,CAClBw1G,SAAUnxI,KAAKszD,OAAO,YACtB+kqB,OAAQr4tB,KAAKszD,OAAO,UACpBm+E,MAAOzxI,KAAKszD,OAAO,SAAW,KAC9Bub,UAAU,IAGlBotpB,sBACI,IAAIj8tB,KAAKk8tB,sBAGT,KAAIhpkB,EAAWlzJ,KAAKg8tB,YAAYvgsB,MAAM7wB,QAAQ,QAAS,IACnDuxtB,EAAQn8tB,KAAKg8tB,YAAYrgsB,KAAK,SAClC,IAAIwgsB,GAAUA,EAAM13tB,QAAU,iBAAmB6uD,OAAO,cAGxD,KAAI1mD,EAAQuvtB,EAAQn8tB,KAAKo8tB,UAAUD,GAAS,CAAC,CACzC94tB,KAAM6vJ,IAEVlzJ,KAAKqzb,aAAazmb,GACd,mBAAqB0mD,OAAO,eAC5BtzD,KAAKq8tB,iBAGbC,4BACI,MAAO,YAAct8tB,KAAKszD,OAAO,eAAiBtzD,KAAKszD,OAAO,oBAAsBtzD,KAAKszD,OAAO,YAEpG+/X,aAAazmb,GACT,IAAIuvtB,EAAQn8tB,KAAKs8tB,4BAA8Bt8tB,KAAKszD,OAAO,SAAShsD,QAAU,GAC9EtH,KAAKszD,OAAO,QAAS6oqB,EAAMt6sB,OAAOjV,IAEtCwvtB,UAAUG,GACN,IAAIpjtB,EAAS,GACb2vD,gBAAKyzpB,EAAU,CAAC/3sB,EAAG5X,IAAUuM,EAAO9P,KAAKuD,IAClCuM,EAEXqjtB,SAASC,GACL,IAAIC,KAAkBtmnB,OAAUqmnB,GAAYz8tB,KAAKszD,OAAO,SAASmpqB,GAAYA,EAC7E,OAAOz8tB,KAAK28tB,OAAO71sB,OAAOg7T,GAAQA,EAAKl1U,QAAU8vtB,GAAiB,GAEtE5B,aACS96tB,KAAK48tB,eACN58tB,KAAK48tB,cAAexhqB,QAAE,UAE1Bp7D,KAAK68tB,wBAETA,wBACI,IAAIC,EAAiB98tB,KAAK+8tB,yBAA2B,GAAK/8tB,KAAKszD,OAAO,aACtEtzD,KAAK48tB,aAAanmtB,KAAKqmtB,GAE3BxhoB,eACI,OAAOt7F,KAAKm7D,WAAW11B,KAAK,IAAMkyrB,IAEtC1+e,oBACI,OAAOj5O,KAAKg8tB,YAEhBz5nB,cACIziG,MAAMyiG,cACNviG,KAAKm7D,WAAWvtD,SAxPC,mBAyPjB5N,KAAKotM,iBACLptM,KAAKg9tB,sBACLh9tB,KAAKi9tB,sBACLj9tB,KAAKk9tB,wBACLl9tB,KAAKm9tB,sBACLn9tB,KAAKo9tB,yBAA0B,EAC/Bp9tB,KAAKq9tB,gBAAkB,KAE3BjloB,UACIp4F,KAAKo9tB,yBAA0B,EAC/Bp9tB,KAAKs9tB,yBAAyBt9tB,KAAKu9tB,gBACnCv9tB,KAAKs9tB,yBAAyBt9tB,KAAKszD,OAAO,aAC1CtzD,KAAKw9tB,eACL19tB,MAAMs4F,UAEVqloB,uBAAuB37Y,GACnBA,EAAK47Y,YAAc19tB,KAAK29tB,mBAAmB77Y,EAAKl1U,MAAM4zJ,MACtDshL,EAAK47Y,YAAYviqB,WAAW0P,SAASi3Q,EAAK87Y,OAC1C59tB,KAAK69tB,mBAAmB/7Y,GACxB9hV,KAAK89tB,+BAA+Bh8Y,GAExCi8Y,kBAAkBj8Y,EAAMtnT,GACpBulB,WAAW,KACH//C,KAAKszD,OAAO,iBACRwuR,EAAKk8Y,iBACLl8Y,EAAKk8Y,eAAevntB,KAAK+jB,GACzBsnT,EAAKk8Y,eAAejiqB,IAAI,UAAW,IACnC+lR,EAAK47Y,YAAYviqB,WAAWt6D,WA7PZ,KAkQhCo9tB,iCACI,MAAO,cAAgBj+tB,KAAKszD,OAAO,cAAgBtzD,KAAKszD,OAAO,wBAA0BtzD,KAAKszD,OAAO,wBAEzG0nqB,eACI,IAAIputB,EAAQ5M,KAAKszD,OAAO,SACpBtzD,KAAK28tB,SAAW,IAAM/vtB,EAAMnI,SAAWzE,KAAKs8tB,+BAC5Ct8tB,KAAKk+tB,uBAAuBl+tB,KAAK28tB,QACjC38tB,KAAK28tB,OAAS,MAEb38tB,KAAK28tB,SACN38tB,KAAK28tB,OAAS,OAElB7zpB,OAAKl8D,EAAMtF,MAAMtH,KAAK28tB,OAAOl4tB,QAAS,CAAC+f,EAAG5X,KACtC,IAAIk1U,EAAO9hV,KAAKm+tB,YAAYvxtB,GAC5B5M,KAAKo+tB,cAAct8Y,GACnB9hV,KAAK28tB,OAAOtztB,KAAKy4U,KAGzBo8Y,uBAAuB/B,GACnBA,EAAMn2tB,QAAQ87U,GAAQ9hV,KAAK87tB,gBAAgBzB,YAAYv4Y,IAE3Ds8Y,cAAct8Y,GACVA,EAAKu8Y,qBAAuBr+tB,KAAKs+tB,uBAAuBx8Y,GACxDA,EAAKy8Y,eAAiBv+tB,KAAKw+tB,qBAAqB18Y,GAChDA,EAAK28Y,eAAiBz+tB,KAAK0+tB,qBAAqB58Y,GAEpDw8Y,uBAAuBx8Y,GACnB,IAAI68Y,EAAoB3+tB,KAAKszD,OAAO,yBAChC+kqB,EAASr4tB,KAAKszD,OAAO,UACrBsrqB,EAAe5+tB,KAAK6+tB,qBAAqBxG,GACzC32Y,EAAgBI,EAAKl1U,MAAMvJ,KAAK2P,UAAU8uU,EAAKl1U,MAAMvJ,KAAKksF,YAAY,MAAMt9E,cAChF,GAAI,IAAMomtB,EAAO5ztB,SAAWzE,KAAK8+tB,mBAAmBh9Y,EAAKl1U,MAAOgytB,GAC5D,OAAO,EAEX,GAAI,IAAMD,EAAkBl6tB,OACxB,OAAO,EAEX,QAASD,EAAI,EAAGA,EAAIm6tB,EAAkBl6tB,OAAQD,IAC1C,GAAIk9U,IAAkBi9Y,EAAkBn6tB,GAAGyN,cACvC,OAAO,EAGf,OAAO,EAEXystB,qBAAqB58Y,GACjB,IAAIi9Y,EAAWj9Y,EAAKl1U,MAAM4zJ,KACtBq5jB,EAAc75tB,KAAKszD,OAAO,eAC9B,QAAOumqB,EAAc,IAAIkF,GAAYlF,EAEzC2E,qBAAqB18Y,GACjB,IAAIi9Y,EAAWj9Y,EAAKl1U,MAAM4zJ,KACtBs5jB,EAAc95tB,KAAKszD,OAAO,eAC9B,QAAOwmqB,EAAc,IAAIiF,GAAYjF,EAEzCmB,0BACIj7tB,KAAKg/tB,kBAAoBh/tB,KAAKo2F,sBAAsB,eAAgB,CAChE3I,kBAAmB,CAAC,cAG5BytoB,6BACIl7tB,KAAKi/tB,qBAAuBj/tB,KAAKo2F,sBAAsB,kBAAmB,CACtE3I,kBAAmB,CAAC,cAG5B0toB,wBACIn7tB,KAAKk/tB,gBAAkBl/tB,KAAKo2F,sBAAsB,aAAc,CAC5D3I,kBAAmB,CAAC,cAG5B2toB,6BACIp7tB,KAAKm/tB,qBAAuBn/tB,KAAKo2F,sBAAsB,kBAAmB,CACtE3I,kBAAmB,CAAC,cAG5B4toB,wBACIr7tB,KAAKo/tB,gBAAkBp/tB,KAAKo2F,sBAAsB,aAAc,CAC5D3I,kBAAmB,CAAC,cAG5B8toB,6BACIv7tB,KAAKq/tB,qBAAuBr/tB,KAAKo2F,sBAAsB,kBAAmB,CACtE3I,kBAAmB,CAAC,cAG5B6toB,2BACIt7tB,KAAKs/tB,mBAAqBt/tB,KAAKo2F,sBAAsB,gBAAiB,CAClE3I,kBAAmB,CAAC,cAG5B+toB,6BACIx7tB,KAAKu/tB,qBAAuBv/tB,KAAKo2F,sBAAsB,mBAE3DqloB,6BACIz7tB,KAAKw/tB,qBAAuBx/tB,KAAKo2F,sBAAsB,mBAE3D+noB,YAAYvxtB,GACR,MAAO,CACHA,MAAOA,EACP6ytB,WAAY,EACZlG,cAAY/5pB,QACZkgqB,WAASlgqB,QACTmgqB,UAAQngqB,QACRogqB,WAASpgqB,QACTqgqB,eAAargqB,QACb6+pB,sBAAsB,EACtBI,gBAAgB,EAChBF,gBAAgB,EAChB94jB,UACI,OAAOzlK,KAAKq+tB,sBAAwBr+tB,KAAKy+tB,gBAAkBz+tB,KAAKu+tB,gBAEpEznoB,eAAe,GAGvBgpoB,gBAAgBh+Y,GACZA,EAAKi+Y,WAAY,EACjBj+Y,EAAKk+Y,eAAgB,EACrBl+Y,EAAKm+Y,aAAc,EACnBn+Y,EAAK29Y,WAAa,EAClB39Y,EAAKo+Y,gBAAa,EAClBp+Y,EAAK1jR,aAAU,EAEnBo/pB,eACI,IAAI5lf,EACAhrO,EAAQ5M,KAAKszD,OAAO,SACnBtzD,KAAKmguB,mBAEEnguB,KAAKs8tB,6BAA+B,IAAM1vtB,EAAMnI,SACxDzE,KAAKmguB,iBAAiBn9oB,QAFtBhjF,KAAKmguB,oBAAmB/kqB,MAAE,SAASxtD,SA3YN,mCA2YmDi9D,SAAS7qE,KAAK8rN,WAIlG,IAAI0sgB,EAAex4tB,KAAKszD,OAAO,gBAC3BklqB,MACA1vpB,OAAK9oE,KAAK28tB,OAAQ,CAACn4sB,EAAGs9T,KACbA,EAAK87Y,OACN59tB,KAAKoguB,YAAYt+Y,KAI7B9hV,KAAKm7D,WAAW+oC,YAhagB,iCAga+Bs0nB,GAC/Dx4tB,KAAKqguB,oCACLrguB,KAAKsguB,0BACL,QAAU1of,EAAwB53O,KAAK83O,0BAAuB,OAA4CF,EAAsBvpI,UAEpI+xnB,YAAYt+Y,GACR,IAAIl1U,EAAQk1U,EAAKl1U,MACb2ztB,KAAiBnlqB,MAAE,SAASxtD,SAAS4ptB,KAAmC3spB,SAAS7qE,KAAKmguB,kBAC1FnguB,KAAKwguB,mBAAmB1+Y,EAAMy+Y,GAC9Bz+Y,EAAK87Y,OAAQxiqB,QAAE,SAASxtD,SA5ZF,wBA4ZoCi9D,SAAS01pB,GACnE,IAAIE,KAAYrlqB,MAAE,SAASxtD,SA/ZA,6BA+ZuCi9D,SAASi3Q,EAAK87Y,OAChF97Y,EAAKk8Y,gBAAiB5iqB,QAAE,SAASxtD,SA/ZI,uCA+Z6Ci9D,SAASi3Q,EAAK87Y,QAChGxiqB,QAAE,SAASxtD,SAAS6ptB,KAA8BhhtB,KAAK7J,EAAMvJ,MAAMwnE,SAAS41pB,MACxE/itB,OAAU9Q,EAAM4zJ,UAChBplG,MAAE,SAASxtD,SAAS8ptB,KAA8BjhtB,KAAKzW,KAAK0guB,aAAa9ztB,EAAM4zJ,OAAO31F,SAAS41pB,GAEnGv/rB,EAASukI,UACLq8K,EAAKk8Y,eAAevntB,KAAKzW,KAAKszD,OAAO,0BAEhCwuR,EAAKu8Y,sBACNv8Y,EAAKk8Y,eAAep0oB,OAAO5pF,KAAK2guB,yBAAyB,gCAExD7+Y,EAAK28Y,gBACN38Y,EAAKk8Y,eAAep0oB,OAAO5pF,KAAK2guB,yBAAyB,8BAExD7+Y,EAAKy8Y,gBACNz8Y,EAAKk8Y,eAAep0oB,OAAO5pF,KAAK2guB,yBAAyB,8BAE7DJ,EAAe3ytB,SAxaM,4BA2a7B+ytB,yBAAyBxutB,GACrB,OAAOipD,QAAE,UAAU3kD,KAAKzW,KAAKszD,OAAOnhD,IAExCmutB,0BACI,IAAIM,EAAqB5guB,KAAKszD,OAAO,mBAAqB,iBAAmBA,OAAO,cAAgB,EAAI,EACpGutqB,EAAqB,oBAAsBvtqB,OAAO,cAAgB,EAAI,EACtEwtqB,GAAsBn7pB,SAAS3lE,KAAKmguB,iBAAiB16rB,KAAK,IAAM+xrB,KAAmC5nrB,WAAY+1B,SAAS3lE,KAAKmguB,kBAC7HY,EAAmB/guB,KAAKmguB,iBAAiB16rB,KAAK,IAAMmyrB,IAAqCzwmB,GAAG,GAC5F65mB,GAAer7pB,SAASo7pB,IAAqBH,EAAqBC,GAClEI,EAAYjhuB,KAAKmguB,iBAAiB16rB,KAAK,IAAMiyrB,KAA8BvwmB,GAAG,GAC9E+5mB,EAAeD,EAAUxqtB,OAC7BwqtB,EAAUxqtB,KAAK,WACf,IAAI0qtB,KAAgBx7pB,OAASs7pB,GAC7BA,EAAUxqtB,KAAKyqtB,GACflhuB,KAAKmguB,iBAAiB16rB,KAAK,IAAMgyrB,KAA8B17pB,IAAI,WAAY+kqB,EAAsBE,EAAeG,GAExHX,mBAAmB1+Y,EAAM/3P,GACrB,IAAIq3oB,EAAgBphuB,KAAKqhuB,iBAAiBv/Y,GAC1Cs/Y,GAAiBr3oB,EAAWH,OAAOw3oB,GACnC,IAAIE,EAAgBthuB,KAAKuhuB,iBAAiBz/Y,GAC1Cw/Y,GAAiBv3oB,EAAWH,OAAO03oB,GAEvCD,iBAAiBv/Y,GACb,GAAI,YAAc9hV,KAAKszD,OAAO,cAC1B,OAAO,KAEX,IACIilqB,eAAgBA,EAChB/poB,SAAUA,EACVoa,kBAAmBA,EACnB8xnB,mBAAoBA,GACpB16tB,KAAKszD,SACTwuR,SAAK0/Y,aAAexhuB,KAAK24F,oBAAiBv9B,MAAE,SAASxtD,SAAS+ptB,qCAAqE34gB,GAAQ,CACvIl7J,QAAS,IAAM9jD,KAAKyhuB,YAAY3/Y,GAChCnwM,KAAM,QACN5iE,QAASwppB,EACTnwsB,SAAUomE,EACVx3B,mBAAoB,GACpB4xC,kBAAmBA,EACnBw2C,YAAas7kB,OAEVt/pB,MAAE,SAASxtD,SAASgqtB,IAAqChuoB,OAAOk4P,EAAK0/Y,aAAarmqB,YAE7FomqB,iBAAiBz/Y,GACb,IAAKA,EAAKr8K,WAAa,oBAAsBnyG,OAAO,cAChD,OAAO,KAEX,IACIs1C,kBAAmBA,EACnB8xnB,mBAAoBA,GACpB16tB,KAAKszD,SACTwuR,SAAK4/Y,aAAe1huB,KAAK24F,oBAAiBv9B,MAAE,SAASxtD,SAAS+ptB,GAA4B,IAAME,KAAmC74gB,GAAQ,CACvIl7J,QAAS,IAAM9jD,KAAK2huB,YAAY7/Y,GAChCnwM,KAAM,SACN/oC,kBAAmBA,EACnBw2C,YAAas7kB,IAEjB54Y,EAAK+9Y,YAAYp3tB,IAAI,IAAMq5U,EAAK4/Y,aAAapuqB,OAAO,CAChDyb,SAAS,EACT3mD,UAAU,KAEd05T,EAAK49Y,QAAQj3tB,IAAI,IAAMq5U,EAAK4/Y,aAAapuqB,OAAO,CAC5Cyb,SAAS,EACT3mD,UAAU,QAEPgzC,MAAE,SAASxtD,SAASgqtB,IAAqChuoB,OAAOk4P,EAAK4/Y,aAAavmqB,YAE7FsmqB,YAAY3/Y,GACR,IAAI8/Y,EACJ,QAAUA,EAAc9/Y,EAAK87Y,aAAU,OAAkCgE,EAAY70tB,SAASlM,SAC9Fb,KAAK28tB,OAAOlqtB,OAAOzS,KAAK28tB,OAAOnqtB,QAAQsvU,GAAO,GAC9C,IAAIl1U,EAAQ5M,KAAKszD,OAAO,SAAShsD,QACjCsF,EAAM6F,OAAO7F,EAAM4F,QAAQsvU,EAAKl1U,OAAQ,GACxC5M,KAAKo9tB,yBAA0B,EAC/Bp9tB,KAAKszD,OAAO,QAAS1mD,GACrB5M,KAAKo9tB,yBAA0B,EAC/Bp9tB,KAAKqguB,oCACLrguB,KAAK03f,kBAAiB,GAE1BmqO,WAAWpF,GACP,GAAI,YAAcz8tB,KAAKszD,OAAO,kBAAkB51C,OAAU++sB,GAG1D,KAAI36Y,EAAO9hV,KAAKw8tB,SAASC,GACrB36Y,IACIA,EAAKk+Y,eACLhguB,KAAKk+tB,uBAAuB,CAACp8Y,IAEjC9hV,KAAKyhuB,YAAY3/Y,KAGzBu+Y,oCACIrguB,KAAKm7D,WAAW+oC,YA5hBO,yBA4hBgClkG,KAAK28tB,OAAOl4tB,QAAUzE,KAAK8huB,gBAAgB9huB,KAAK28tB,SAE3GmF,gBAAgB3F,GACZ,QAAS33tB,EAAI,EAAGA,EAAI23tB,EAAM13tB,OAAQD,IAC9B,IAAK23tB,EAAM33tB,GAAGihK,UACV,OAAO,EAGf,OAAO,EAEXi7jB,aAAalgkB,GAIT,QAHIh8J,EAAI,EACJg4N,EAAS,CAACx8G,UAA2B,wBAAyBA,UAA2B,qBAAsBA,UAA2B,qBAAsBA,UAA2B,sBAC3Lp6G,EAAQ42N,EAAO/3N,OAAS,EACrBD,EAAIoB,GAAS46J,GAAQ,MACxBA,GAAQ,KACRh8J,IAEJ,OAAO+V,KAAK2zC,MAAMsyG,GAAQ,IAAMg8D,EAAOh4N,GAE3Cy4tB,sBACI,IAAI93f,KAAU/pK,MAAE,SAASxtD,SAAS+ptB,IAA2B9spB,SAAS7qE,KAAKu9tB,gBAC3Ev9tB,KAAKi4tB,cAAgBj4tB,KAAK24F,iBAAiBwsI,EAASnmB,GAAQ,CACxDvoM,KAAMzW,KAAKszD,OAAO,oBAClBu1C,mBAAmB,EACnB7xC,mBAAoB,GACpB5uC,SAAUpoB,KAAKszD,OAAO,YACtBs1C,kBAAmB5oG,KAAKszD,OAAO,uBAEnCtzD,KAAK+huB,yBAA2B/huB,KAAKgiuB,0BAA0B/4qB,KAAKjpD,MAChE,YAAcgjE,UAAexB,WAC7BxhE,KAAKi4tB,cAAc3kqB,OAAO,UAAWtzD,KAAK+huB,0BAE1C/huB,KAAKiiuB,+BAA+BjiuB,KAAKi4tB,cAAc98pB,YAE3Dn7D,KAAKiiuB,+BAA+BjiuB,KAAKszD,OAAO,kBAEpD0uqB,4BACI,IAAIhiuB,KAAKszD,OAAO,uBAGhB,IAAItzD,KAAK+8tB,yBACL,OAAO,EAEX/8tB,KAAK+7tB,qBAAsB,EAC3BttqB,aAAqBzuD,KAAKg8tB,YAAa,SACvCh8tB,KAAK+7tB,qBAAsB,GAE/BkG,+BAA+BjguB,KACtB0b,SAAU1b,KAGfhC,KAAKkiuB,+BAA+BlguB,GACpCysD,SAAgB2M,QAAEp5D,GAAS,QAAShC,KAAK+huB,2BAE7CG,+BAA+BlguB,OACtB0b,OAAU1b,IAGfysD,UAAiB2M,QAAEp5D,GAAS,QAAShC,KAAK+huB,0BAE9C5E,sBACI,GAAI,eAAiBn9tB,KAAKszD,OAAO,cAGjC,KAAIguqB,KAAgBlmqB,MAAE,SAASxtD,SAAS+ptB,IAA2B/ptB,SAASiqtB,KAAkChtpB,SAAS7qE,KAAK8rN,WAC5H9rN,KAAKmiuB,cAAgBniuB,KAAK24F,iBAAiB2ooB,EAAetihB,GAAQ,CAC9DvoM,KAAMzW,KAAKszD,OAAO,oBAClBxP,QAAS9jD,KAAKoiuB,0BAA0Bn5qB,KAAKjpD,MAC7CyL,KAAMzL,KAAKszD,OAAO,qBAClB0D,mBAAoB,GACpB4xC,kBAAmB5oG,KAAKszD,OAAO,wBAGvC8uqB,4BACIpiuB,KAAKq8tB,eAETzB,4BACI,OAAQ56tB,KAAKszD,OAAO,cAAgB,YAActzD,KAAKszD,OAAO,eAAiBtzD,KAAKszD,OAAO,wBAE/FypqB,yBACI,OAAO/8tB,KAAKszD,OAAO,aAAetzD,KAAKszD,OAAO,YAElD4pqB,wBACIl9tB,KAAKqiuB,kBAAmBjnqB,QAAE,SAASxtD,SAzmBF,mCAymB+Ci9D,SAAS7qE,KAAKu9tB,gBAC9Fv9tB,KAAKg8tB,YAAYputB,SAxmBM,yBAymBvB5N,KAAKm+O,eACL,IAAIyD,EAAU,+BAA+B//N,OAAO,IAAI4kG,MACxDzmH,KAAK48tB,aAAaxtpB,KAAK,KAAMwyK,GAASh0O,SA5mBT,+BA4mBkDi9D,SAAS7qE,KAAKqiuB,kBAC7FriuB,KAAK+tG,QAAQ,aAAc6zI,EAAS5hP,KAAKg8tB,aAE7C79e,eACQn+O,KAAKszD,OAAO,uBACZtzD,KAAKi4tB,cAAc3kqB,OAAO,WAAYtzD,KAAKsiuB,2BAA2Br5qB,KAAKjpD,QAE3EA,KAAKg8tB,YAAYnxpB,SAAS7qE,KAAKqiuB,kBAC/BriuB,KAAKi4tB,cAAc3kqB,OAAO,WAAY,YAE1CtzD,KAAK8/O,sBAAsB9/O,KAAKszD,OAAO,cAE3CgvqB,2BAA2Bl2tB,EAAMy9L,GAC7B,IAAI8G,GAAWv1I,QAAEyuI,GACb65D,KAAQtoM,MAAE,UAAUxtD,SAAS,kBAAkB6I,KAAKrK,EAAKqK,MAC7Dk6L,SAAS/mH,OAAO85K,GAAO95K,OAAO5pF,KAAKg8tB,aAC5BrrhB,EAEXqshB,sBACIh9tB,KAAKu9tB,kBAAiBniqB,MAAE,SAASxtD,SAjoBF,iCAioB6Ci9D,SAAS7qE,KAAK8rN,WAE9Fy2gB,yBAAyBvguB,KAChB0b,SAAU1b,IAGfysD,UAAiB2M,QAAEp5D,GAAS0sE,GAAa,GAAI1uE,KAAKo1F,OAEtDkooB,yBAAyBt7tB,GACrB,IAAIwguB,EAAiBxguB,IAAWhC,KAAKu9tB,mBAChC7/sB,OAAU1b,KAAYhC,KAAK46tB,8BAGhC56tB,KAAKuiuB,yBAAyBvguB,GAC9BA,KAASo5D,MAAEp5D,GACXysD,QAAgBzsD,EAAQ0sE,GAAa,YAAa1uE,KAAKo1F,MAAOp1F,KAAK6pf,kBAAkB5gc,KAAKjpD,KAAMwiuB,IAChG/zqB,QAAgBzsD,EAAQ0sE,GAAa,WAAY1uE,KAAKo1F,MAAOp1F,KAAKyiuB,iBAAiBx5qB,KAAKjpD,KAAMwiuB,IAC9F/zqB,QAAgBzsD,EAAQ0sE,GAAa,YAAa1uE,KAAKo1F,MAAOp1F,KAAK8pf,kBAAkB7gc,KAAKjpD,KAAMwiuB,IAChG/zqB,QAAgBzsD,EAAQ0sE,GAAa,OAAQ1uE,KAAKo1F,MAAOp1F,KAAK8oP,aAAa7/L,KAAKjpD,KAAMwiuB,KAE1F1if,sBAAsBE,GAClBhgP,KAAKg8tB,YAAY5spB,KAAK4wK,GAE1B0if,mBACI,OAAO1iuB,KAAKszD,OAAO,wBAA0B,iBAAmBA,OAAO,cAE3EqvqB,oBAAoBH,EAAgBxstB,GAChC,IAAI4stB,EAAaJ,EAAiB55tB,MAAMC,QAAKuyD,MAAEp7D,KAAKszD,OAAO,cAAgB,CAACtzD,KAAKu9tB,gBACjFqF,SAAaA,EAAWlitB,IAAIlZ,MAAW4zD,MAAE5zD,GAASxD,IAAI,KACpC4+tB,EAAWpwtB,QAAQwD,EAAEgoE,gBAE3C6ra,kBAAkB24O,EAAgBxstB,GAC9B,GAAIhW,KAAKszD,OAAO,YACZ,OAAO,EAENtzD,KAAK0iuB,oBACN1stB,EAAEjL,iBAEN,IAAI83tB,EAAkB7iuB,KAAK2iuB,oBAAoBH,EAAgBxstB,IAC3D0H,SAAUmltB,IAAoB7iuB,KAAK8iuB,qBAAqB9stB,EAAG6stB,KAC3D7iuB,KAAKq9tB,gBAAkBwF,EACvB7iuB,KAAK+iuB,0BAAyB,EAAMP,EAAgBxstB,IAG5D8stB,qBAAqB9stB,EAAG6stB,GACpB,OAAO,OAAS7iuB,KAAKq9tB,iBAAmBr9tB,KAAKgjuB,mBAAmBhttB,EAAG6stB,GAAiB,IAAU7stB,EAAEy7D,cAAcwxpB,aAAalkQ,MAAMt5b,KAAK7oB,GAAQ,aAElJ6ltB,iBAAiBD,EAAgBxstB,GAK7B,GAJKhW,KAAK0iuB,oBACN1stB,EAAEjL,iBAENiL,EAAEy7D,cAAcwxpB,aAAaC,WAAa,QACrCV,EAAgB,CACjB,IAAIK,EAAkB7iuB,KAAK2iuB,qBAAoB,EAAO3stB,GAClDhW,KAAK8iuB,qBAAqB9stB,EAAG6stB,IAC7B7iuB,KAAK6pf,mBAAkB,EAAO7ze,GAE9BhW,KAAKmjuB,sBAAsBnttB,GAAG,IAC9BhW,KAAK8pf,mBAAkB,EAAO9ze,IAI1C8ze,kBAAkB04O,EAAgBxstB,GACzBhW,KAAK0iuB,oBACN1stB,EAAEjL,iBAEF/K,KAAKmjuB,sBAAsBnttB,EAAGwstB,KAC9BxiuB,KAAK+iuB,0BAAyB,EAAOP,EAAgBxstB,GACrDhW,KAAKq9tB,gBAAkB,MAG/B8F,sBAAsBnttB,EAAGwstB,GACrB,OAAO,OAASxiuB,KAAKq9tB,kBAAoBr9tB,KAAKgjuB,mBAAmBhttB,EAAGhW,KAAKq9tB,iBAAkBmF,GAvrB5E,GAyrBnBO,yBAAyB/1nB,EAAQ0/iB,EAAU5hpB,GACvC,IAAIs4tB,EAAcp2nB,EAAS,WAAa,cAExChtG,KADkBgtG,EAAS,uBAAyB,wBAClC,CACdliG,MAAOA,EACP+3tB,gBAAiB7iuB,KAAKq9tB,kBAErB3wE,GACD1spB,KAAKm7D,WAAWioqB,GAAa7L,KAGrCzue,aAAa05e,EAAgBxstB,GAKzB,GAJAhW,KAAKq9tB,gBAAkB,KAClBmF,GACDxiuB,KAAKm7D,WAAWrtD,YAAYyptB,OAE5Bv3tB,KAAK0iuB,oBAAsBF,GAAkBxiuB,KAAK+8tB,0BAGtD/mtB,GAAEjL,iBACF,IACIoxtB,EAAQn8tB,KAAKo8tB,UADFpmtB,EAAEy7D,cAAcwxpB,aAAa9G,QAEvCn8tB,KAAKszD,OAAO,aAAe6oqB,EAAM13tB,OAAS,GAAK,MAAYA,SAGhEzE,KAAKqzb,aAAa8oS,GACd,mBAAqB7oqB,OAAO,eAC5BtzD,KAAKq8tB,iBAGbgH,qBACI,OAAOrjuB,KAAK28tB,OAAOnhsB,MAAMsmT,IAASA,EAAKr8K,WAAaq8K,EAAKwhZ,UAAYxhZ,EAAKpsO,WAAaosO,EAAKi+Y,WAEhGwD,0BACIvjuB,KAAKwjuB,uBACDxjuB,KAAKqjuB,sBACLrjuB,KAAKm/tB,uBAGbN,qBAAqB4E,GACjB,OAAKA,EAAYh/tB,OAGVg/tB,EAAYvxtB,MAAM,KAAKwO,IAAI9D,GAAQA,EAAKq/D,QAFpC,GAIf6ipB,mBAAmBh9Y,EAAM88Y,GACrB,QAASp6tB,EAAI,EAAG08B,EAAI09rB,EAAan6tB,OAAQD,EAAI08B,EAAG18B,IAAK,CACjD,IAAIk/tB,EAAc9E,EAAap6tB,GAC/B,GAAI,MAAQk/tB,EAAY,IAEpB,GADAA,EAAcA,EAAY94tB,QAAQ,IAAK,OACnCk3U,EAAKz+U,KAAKi8B,MAAM,IAAIkhF,OAAOkjnB,EAAc,IAAK,MAC9C,OAAO,UAGXA,EAAcA,EAAY94tB,QAAQ,IAAI41G,OAAO,MAAO,KAAM,IACtDshO,EAAKr2U,KAAK6zB,MAAM,IAAIkhF,OAAOkjnB,EAAa,MACxC,OAAO,EAInB,OAAO,EAEXt2hB,iBACI,IAAIoe,GAAWpwJ,QAAE,SAASxtD,SA7wBD,2BA6wBsCi9D,SAAS7qE,KAAKm7D,YACzE4uB,GAAa3uB,QAAE,SAASxtD,SA7wBD,6BA6wBwCi9D,SAAS2gJ,GAC5ExrN,KAAK8rN,WAAY1wJ,QAAE,SAASxtD,SA7wBH,2BA6wBwCi9D,SAASkf,GAE9E0Z,SACIzjG,KAAKg8tB,YAAYxzrB,gBACVxoC,KAAKmguB,iBACZnguB,KAAKkiuB,+BAA+BliuB,KAAKszD,OAAO,kBAChDtzD,KAAKuiuB,yBAAyBviuB,KAAKszD,OAAO,aACtCtzD,KAAK28tB,QACL38tB,KAAK28tB,OAAO32tB,QAAQ87U,IAChBA,EAAK87Y,MAAQ,KACb97Y,EAAKk8Y,eAAiB,OAG9Bl+tB,MAAM2jG,SAEV42nB,YAAYoC,GACR,GAAI,YAAcz8tB,KAAKszD,OAAO,cAG9B,IAAI51C,SAAU++sB,GAAW,CACrB,IAAI36Y,EAAO9hV,KAAKw8tB,SAASC,GACrB36Y,GACA9hV,KAAKk+tB,uBAAuB,CAACp8Y,SAGjC9hV,KAAKk+tB,uBAAuBl+tB,KAAK28tB,QAGzCgH,OAAOlH,GACH,GAAI,YAAcz8tB,KAAKszD,OAAO,cAG9B,IAAI51C,SAAU++sB,GAAW,CACrB,IAAI36Y,EAAO9hV,KAAKw8tB,SAASC,GACrB36Y,GAAQg2Y,MACR93tB,KAAK2huB,YAAY7/Y,QAGrB9hV,KAAKq8tB,eAGbA,eACQvE,SACAhvpB,OAAK9oE,KAAK28tB,OAAQ,CAACn4sB,EAAGs9T,IAAS9hV,KAAK2huB,YAAY7/Y,IAGxD6/Y,YAAY7/Y,GACR9hV,KAAK87tB,gBAAgB6H,OAAO7hZ,GAEhC8hZ,mBAAmB9hZ,EAAM+hZ,GACrB/hZ,EAAK47Y,aAAe57Y,EAAK47Y,YAAYpqqB,OAAO,CACxC1mD,MAAOi3tB,EAAeC,OACtBrN,YAAY,IAEhBz2tB,KAAKo/tB,gBAAgB,CACjBt9Y,KAAMA,EAAKl1U,MACXm3tB,YAAaF,EAAeG,mBAC5BC,YAAaJ,EAAeC,OAC5BI,WAAYL,EAAe/0jB,MAC3BhkK,MAAO+4tB,EAAe/4tB,MACtBszD,QAAS0jR,EAAK1jR,UAGtB+lqB,qBAAqBC,EAAgBC,GACjC,IAAIhja,EAAW,GACX3jT,SAAU0mtB,KACNpkuB,KAAK28tB,OAAOl4tB,OAAS,GAAKzE,KAAKqjuB,sBAAwB,OAAwB,MAC/Ehia,EAAWrhU,KAAKskuB,kBAAkB,GAC3BF,IACP/ia,EAAWrhU,KAAKskuB,kBAAkBD,EAAuBD,KAGjEpkuB,KAAKszD,OAAO,WAAY+tQ,GACxBrhU,KAAKukuB,eAAeF,GAExBC,kBAAkB/klB,GACd,OAAOhlI,KAAKo7J,MAAM,IAAMp2B,GAE5Bs+kB,mBAAmB/7Y,GACfA,EAAKk8Y,eAAejiqB,IAAI,UAAW,QAEvC+hqB,+BAA+Bh8Y,GAC3B,IAAIA,EAAKhrP,cAGTgrP,GAAK0/Y,aAAaluqB,OAAO,UAAW,KAChCtzD,KAAKk+tB,uBAAuB,CAACp8Y,IAC7B9hV,KAAKyhuB,YAAY3/Y,KAErB,IAAI0iZ,EAAmB,KACnBzkrB,WAAW,KACP+hS,EAAK0/Y,aAAaluqB,OAAO,CACrByb,SAAS,KAx1BO,MA41B5B+yQ,EAAK69Y,OAAOl3tB,IAAI+7tB,GAChB1iZ,EAAK89Y,QAAQn3tB,IAAI+7tB,IAErB7G,mBAAmBoB,GACf,OAAO/+tB,KAAK24F,kBAAiBv9B,QAAE,SAAUm7pB,GAAa,CAClD3ptB,WAAO,EACP88D,IAAK,EACLlvD,IAAKuktB,EACLvI,aAAcj3kB,GAASv/I,KAAKskuB,kBAAkB/klB,GAAS,IACvDk3kB,YAAY,EACZE,eAAgB,UAGxB8N,qBACI,OAAKzkuB,KAAK0kuB,kBACN1kuB,KAAK0kuB,gBAAkB,KACvB57pB,OAAK9oE,KAAK28tB,OAAQ,CAACn4sB,EAAGs9T,KAClB9hV,KAAK0kuB,iBAAmB5iZ,EAAKl1U,MAAM4zJ,QAGpCxgK,KAAK0kuB,gBAEhBC,2BACI,OAAK3kuB,KAAK4kuB,wBACN5kuB,KAAK4kuB,sBAAwB,KAC7B97pB,OAAK9oE,KAAK28tB,OAAQ,CAACn4sB,EAAGs9T,KAClB9hV,KAAK4kuB,uBAAyB9iZ,EAAK29Y,cAGpCz/tB,KAAK4kuB,sBAEhBL,eAAe33tB,GACX5M,KAAK4kuB,sBAAwBh4tB,EAEjC42tB,uBACIxjuB,KAAK0kuB,gBAAkB,EACvB1kuB,KAAK4kuB,sBAAwB,EAC7B5kuB,KAAKmkuB,qBAAqBnkuB,KAAKykuB,qBAAsBzkuB,KAAK2kuB,4BAE9D3B,mBAAmBh8nB,EAAYx/F,EAASq9tB,GACpC,IAAIC,EAAiB/kuB,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAl4BlE,EAm4Bf,IAAKyH,EACD,OAAO,EAEX,IAAIu9tB,EAAeF,EAAwB3oqB,WAAWj6D,GAAO06E,iBAAiBn1E,EAAS,WAAWs4D,QAAU,EACxGklqB,EAAcH,EAAwB3oqB,WAAWj6D,GAAO06E,iBAAiBn1E,EAAS,UAAUs4D,QAAU,EACtGlvC,GAAI83M,SAAUlhO,GAAS8zD,KACvBE,KAAIktK,OAAUlhO,GAAS+zD,IAAMwpqB,EAC7Bh8pB,EAAIvhE,EAAQsjE,YACZnC,EAAInhE,EAAQ4hO,aAAe27f,EAAeC,EAC1CC,EAASjluB,KAAKkluB,WAAWl+nB,GACzBm+nB,EAASnluB,KAAKoluB,WAAWp+nB,GAC7B,OAAOi+nB,EAASH,GAAkBl0sB,GAAKq0sB,EAASH,EAAiBl0sB,EAAIm4C,GAAKo8pB,EAASL,GAAkBtpqB,GAAK2pqB,EAASL,EAAiBtpqB,EAAImN,EAE5Iu8pB,WAAWlvtB,GACP,OAAOi7D,GAAaj7D,GAAKhW,KAAKqluB,gBAAgBrvtB,GAAKA,EAAEsvtB,QAAUtluB,KAAKuluB,yBAExEH,WAAWpvtB,GACP,OAAOi7D,GAAaj7D,GAAKhW,KAAKwluB,gBAAgBxvtB,GAAKA,EAAEyvtB,QAAUzluB,KAAK0luB,wBAExEL,gBAAgBrvtB,GACZ,IAAI2vtB,EAAa,KACjB,OAAI3vtB,EAAE0pE,eAAej7E,OAAS,EAC1BkhuB,EAAa3vtB,EAAE0pE,eACR1pE,EAAE4vtB,cAAcnhuB,OAAS,IAChCkhuB,EAAa3vtB,EAAE4vtB,eAEZD,EAAaA,EAAW,GAAG95pB,MAAQ,EAE9C25pB,gBAAgBxvtB,GACZ,IAAI2vtB,EAAa,KACjB,OAAI3vtB,EAAE0pE,eAAej7E,OAAS,EAC1BkhuB,EAAa3vtB,EAAE0pE,eACR1pE,EAAE4vtB,cAAcnhuB,OAAS,IAChCkhuB,EAAa3vtB,EAAE4vtB,eAEZD,EAAaA,EAAW,GAAG75pB,MAAQ,EAE9C45pB,wBACI,IAAIpkuB,EAAW8wD,mBACf,OAAO9wD,EAASkrE,gBAAgBR,WAAa1qE,EAASY,KAAK8pE,UAE/Du5pB,yBACI,IAAIjkuB,EAAW8wD,mBACf,OAAO9wD,EAASkrE,gBAAgBT,YAAczqE,EAASY,KAAK6pE,WAEhE85pB,uBACI,IAAIr3oB,EAAWxuF,KAAKszD,OAAO,YAC3BtzD,KAAKi4tB,cAAc3kqB,OAAO,WAAYk7B,GACtCxuF,KAAK28tB,OAAO32tB,QAAQ87U,IAChB,IAAIgkZ,EACJ,OAAO,QAAUA,EAAqBhkZ,EAAK0/Y,oBAAiB,WAAgC,EAASsE,EAAmBxyqB,OAAO,WAAYk7B,KAE/IxuF,KAAK68tB,wBACL78tB,KAAKs9tB,yBAAyBt9tB,KAAKu9tB,gBAEvCwI,oBACI,IAAIC,EAAqBC,EACrBr5tB,EAAQ5M,KAAKszD,OAAO,qBACxB,QAAU0yqB,EAAsBhmuB,KAAKi4tB,qBAAkB,OAA0C+N,EAAoB1yqB,OAAO,oBAAqB1mD,GACjJ,QAAUq5tB,EAAsBjmuB,KAAKmiuB,qBAAkB,OAA0C8D,EAAoB3yqB,OAAO,oBAAqB1mD,GACjJ5M,KAAK28tB,OAAO32tB,QAAQ87U,IAChB,IAAIokZ,EAAoBC,EACxB,QAAUD,EAAqBpkZ,EAAK4/Y,oBAAiB,OAAyCwE,EAAmB5yqB,OAAO,oBAAqB1mD,GAC7I,QAAUu5tB,EAAsBrkZ,EAAK0/Y,oBAAiB,OAA0C2E,EAAoB7yqB,OAAO,oBAAqB1mD,KAGxJ2pF,eAAe59E,GACX,IACItV,KAAMA,EACNuJ,MAAOA,EACPypB,cAAeA,GACf1d,EACJ,OAAQtV,OACC,aACA,QACDrD,KAAKsguB,0BACLxguB,MAAMy2F,eAAe59E,GACrB,UACC,SACA/L,EAAMnI,QAAUzE,KAAKg8tB,YAAYvgsB,IAAI,IACjCz7B,KAAKo9tB,0BACNp9tB,KAAKg7tB,eACLh7tB,KAAKw9tB,gBAETx9tB,KAAKwjuB,uBACL1juB,MAAMy2F,eAAe59E,GACrB,UACC,OA6HD,IACC,OACD3Y,KAAK66tB,iBACL/6tB,MAAMy2F,eAAe59E,GACrB,MA9HA,IACC,SACD3Y,KAAK66tB,iBACL,UACC,WACD76tB,KAAK66tB,iBACAlitB,EAAK/L,OACN5M,KAAKszB,QAET,UACC,WACDtzB,KAAK6luB,uBACL/luB,MAAMy2F,eAAe59E,GACrB,UACC,WACD3Y,KAAK68tB,wBACL/8tB,MAAMy2F,eAAe59E,GACrB,UACC,mBACD3Y,KAAKi4tB,cAAc3kqB,OAAO,OAAQ1mD,GAClC,UACC,mBACD5M,KAAKmiuB,eAAiBniuB,KAAKmiuB,cAAc7uqB,OAAO,OAAQ1mD,GACxD,UACC,oBACD5M,KAAKmiuB,eAAiBniuB,KAAKmiuB,cAAc7uqB,OAAO,OAAQ1mD,GACxD,UACC,qBACD5M,KAAK28tB,OAAO32tB,QAAQ87U,IAChB,IAAIskZ,EAAqBC,EACzB,QAAUD,EAAsBtkZ,EAAK4/Y,oBAAiB,OAA0C0E,EAAoB9yqB,OAAO,cAAe1mD,GAC1I,QAAUy5tB,EAAsBvkZ,EAAK0/Y,oBAAiB,OAA0C6E,EAAoB/yqB,OAAO,cAAe1mD,KAE9I,UACC,gBACD5M,KAAKkiuB,+BAA+B7rsB,GACpCr2B,KAAKiiuB,+BAA+Br1tB,GACpC,UACC,WACD5M,KAAKuiuB,yBAAyBlssB,GAC9Br2B,KAAKs9tB,yBAAyB1wtB,GAC9B,UACC,kBACA,kBACA,4BACA,kCACA,gCACA,gCACA,2BACA,sBACA,0BACA,uBAiED,IACC,sBACD5M,KAAK4jG,cACL,MAlEA,IACC,YACD5jG,KAAK68tB,wBACL,UACC,eACI78tB,KAAKo9tB,yBACNp9tB,KAAKw9tB,eAET,UACC,iBACA,kBACA,YACDx9tB,KAAK+6tB,qBACL,UACC,kBACA,gBACA,eACA,mBACA,oBACA,uBACA,kBACD,UACC,oBACD/6tB,KAAK+luB,oBACLjmuB,MAAMy2F,eAAe59E,GACrB,UACC,qBACA,aACD3Y,KAAKszB,QACLtzB,KAAK4jG,cACL,UACC,eACD5jG,KAAKi7tB,0BACL,UACC,kBACDj7tB,KAAKk7tB,6BACL,UACC,aACDl7tB,KAAKm7tB,wBACL,UACC,kBACDn7tB,KAAKo7tB,6BACL,UACC,aACDp7tB,KAAKq7tB,wBACL,UACC,gBACDr7tB,KAAKs7tB,2BACL,UACC,kBACDt7tB,KAAKu7tB,6BACL,UACC,kBACDv7tB,KAAKw7tB,6BACL,UACC,kBACDx7tB,KAAKy7tB,6BACL,UACC,sBACDz7tB,KAAKm+O,eACL,UACC,cACDn+O,KAAKs9tB,yBAAyBt9tB,KAAKu9tB,gBACnC,MAGA,IACC,YACDv9tB,KAAK8/O,sBAAsB9/O,KAAKszD,OAAOjwD,IACvC,MAIA,QAEAvD,MAAMy2F,eAAe59E,IAGjC++e,iBAAiBtxZ,GACT,YAAcpmG,KAAKszD,OAAO,gBAAkB8yC,IAGhDpmG,KAAKk8tB,uBAAwB,EAC7Bl8tB,KAAKg8tB,YAAYvgsB,IAAI,IACrBz7B,KAAKk8tB,uBAAwB,GAEjC5osB,QACItzB,KAAKszD,OAAO,QAAS,KAG7B,UACIzzD,YAAYiiV,EAAMo2Y,GACdl4tB,KAAK8hV,KAAOA,EACZ9hV,KAAKk4tB,UAAYA,EACjBl4tB,KAAKuS,MAAQ,EAEjB+ztB,OACI,IAAKtmuB,KAAK8hV,KACN,OAAO,KAEX,IAAIpvU,EAAS1S,KAAKumuB,iBAAiBvmuB,KAAK8hV,KAAM9hV,KAAKuS,MAAOvS,KAAKk4tB,WAC/D,OAAIxltB,EAAO8ztB,cACPxmuB,KAAK8hV,KAAO,MAEhB9hV,KAAKuS,QACEG,EAEX6ztB,iBAAiBzkZ,EAAMvvU,EAAO2ltB,GAC1B,IAAIp9oB,EAAkBvoE,EAAQ2ltB,EAC9B,MAAO,CACHj3Y,KAAMjhV,KAAKymuB,UAAU3kZ,EAAMhnQ,EAAiBo9oB,GAC5C3ltB,MAAOA,EACPi0tB,YAAa1rpB,EAAkBo9oB,GAAap2Y,EAAKthL,MAGzDimkB,UAAU3kZ,EAAM4kZ,EAAUjiuB,GACtB,OAAIq9U,EAAKx6U,MACEw6U,EAAKx6U,MAAMo/tB,EAAUA,EAAWjiuB,GAEvCq9U,EAAK6kZ,YACE7kZ,EAAK6kZ,YAAYD,EAAUA,EAAWjiuB,GAE1C,MAGf,UACI5E,YAAY+muB,GACR5muB,KAAK4muB,aAAeA,EAExBjD,OAAO7hZ,GACCA,EAAKhrP,eAAiBgrP,EAAKi+Y,WAC3B//tB,KAAK4muB,aAAa9G,gBAAgBh+Y,GAElCA,EAAKr8K,YAAcq8K,EAAKk+Y,gBACxBhguB,KAAK6muB,yBAAyB/kZ,GAC9B9hV,KAAK8muB,YAAYhlZ,IAGzBu4Y,YAAYv4Y,GACR,KAAIA,EAAKwhZ,UAAYxhZ,EAAKpsO,WAAaosO,EAAKi+Y,YAAcj+Y,EAAKk+Y,gBAG/Dl+Y,EAAKi+Y,WAAY,EACjBj+Y,EAAK1jR,SAAW0jR,EAAK1jR,QAAQ03C,QACzB91G,KAAK+muB,kBAAkB,gBAAgB,CACvC,IAAI1M,EAAcr6tB,KAAK4muB,aAAatzqB,OAAO,eACvCgyB,EAAMtlF,KAAKgnuB,sBAAsBllZ,GACjCvuQ,EAAW,KACf,IACI,IAAI7gE,EAAS2ntB,EAAYv4Y,EAAKl1U,MAAO04E,GACrC/R,KAAWg2D,OAAY72H,SAClBkO,GACL2yD,GAAY,IAAIC,OAAU35B,OAAOj5B,GAAOk5B,UAE5Cy5B,EAASW,KAAK,IAAM4tQ,EAAK49Y,QAAQx/pB,QAAQiU,KAAKvzD,GAAS5gB,KAAKinuB,iBAAiBnlZ,EAAMlhU,KAG3FsmtB,YAAYC,EAAKrlZ,GACb,IAAIx8P,EAAMtlF,KAAKgnuB,sBAAsBllZ,GACrC9hV,KAAK4muB,aAAa5H,kBAAkB,CAChC5gqB,QAAS+oqB,EACTrlZ,KAAMA,EAAKl1U,MACXw6tB,WAAY9hpB,IAEhBw8P,EAAK1jR,QAAU+oqB,EAEnBH,sBAAsBllZ,IACtBglZ,YAAYhlZ,IACZilZ,kBAAkB1juB,GACd,IAAIqC,EAAW1F,KAAK4muB,aAAatzqB,OAAOjwD,GACxC,OAAOqC,MAAY8S,OAAW9S,GAElC2huB,gBAAgBvlZ,EAAM9rU,GACd8rU,EAAKwhZ,WAGTxhZ,EAAKwlZ,oBAAqB,EAC1BtnuB,KAAKunuB,oBAAoBzlZ,EAAM9rU,IAEnCuxtB,oBAAoBzlZ,EAAM9rU,IAC1BixtB,iBAAiBnlZ,EAAMlhU,GACnBkhU,EAAKwhZ,UAAW,EAChBxhZ,EAAK89Y,QAAQ1/pB,KAAKt/C,GAEtBimtB,yBAAyB/kZ,GAEjB,IAAI0lZ,EADJ1lZ,EAAK87Y,QAEL,QAAU4J,EAAoB1lZ,EAAK47Y,mBAAgB,OAAwC8J,EAAkB1mrB,UAC7G9gD,KAAK4muB,aAAanJ,uBAAuB37Y,IAEzCA,EAAKhrP,gBAGTgrP,EAAK+9Y,YAAYp3tB,IAAIzI,KAAKynuB,iBAAiBx+qB,KAAKjpD,KAAM8hV,IACtDA,EAAK69Y,OAAOl3tB,IAAIzI,KAAK0nuB,iBAAiBz+qB,KAAKjpD,KAAM8hV,IACjDA,EAAK89Y,QAAQn3tB,IAAIzI,KAAK2nuB,gBAAgB1+qB,KAAKjpD,KAAM8hV,IACjDA,EAAK49Y,QAAQj3tB,IAAIzI,KAAK4nuB,gBAAgB3+qB,KAAKjpD,KAAM8hV,IACjDA,EAAKy3Y,WAAW9wtB,IAAIzI,KAAK6nuB,mBAAmB5+qB,KAAKjpD,KAAM8hV,IACvDA,EAAKhrP,eAAgB,GAEzBgxoB,mBAAmBhmZ,EAAM9rU,GACrB,OAAQhW,KAAK+nuB,eAAe/xtB,EAAEyS,UAAYq5T,EAAKwlZ,sBAAwBxlZ,EAAKi+Y,UAEhFgI,eAAet/sB,GACX,OAAO,KAAOA,GAAUA,EAAS,KAAO,KAAOA,GAAUA,EAAS,IAEtEg/sB,iBAAiB3lZ,EAAM9rU,GACnB8rU,EAAKk+Y,eAAgB,EACrBhguB,KAAK4muB,aAAa3H,qBAAqB,CACnCn9Y,KAAMA,EAAKl1U,MACX9B,MAAOkL,EACPooD,QAAS0jR,EAAK1jR,UAGtBwpqB,gBAAgB9lZ,EAAM9rU,GAClB,IAAI2C,EAAO,CACPmpU,KAAMA,EAAKl1U,MACX9B,MAAOkL,EACPooD,QAAS0jR,EAAK1jR,QACd5jC,QAASx6B,KAAK4muB,aAAa3I,kCAE/Bj+tB,KAAK4muB,aAAavH,qBAAqB1mtB,GACvC3Y,KAAK4muB,aAAa7I,kBAAkBj8Y,EAAMnpU,EAAK6hB,SAC/Cx6B,KAAK4muB,aAAarD,0BAEtBoE,gBAAgB7lZ,EAAMlhU,GAClB,IAAIjI,EAAO,CACPmpU,KAAMA,EAAKl1U,MACX9B,WAAO,EACPszD,QAAS0jR,EAAK1jR,QACdx9C,MAAOA,EACP4Z,QAASx6B,KAAK4muB,aAAatzqB,OAAO,wBAEtCtzD,KAAK4muB,aAAatH,mBAAmB3mtB,GACrC3Y,KAAK4muB,aAAa7I,kBAAkBj8Y,EAAMnpU,EAAK6hB,SAC/Cx6B,KAAK4muB,aAAarD,0BAEtBmE,iBAAiB5lZ,EAAM9rU,GACnB,IAAI2C,EAAO,CACPmpU,KAAMA,EAAKl1U,MACX9B,MAAOkL,EACPooD,QAAS0jR,EAAK1jR,QACd5jC,QAASx6B,KAAK4muB,aAAatzqB,OAAO,oBAEtCwuR,EAAKpsO,WAAY,EACjB11G,KAAK4muB,aAAa1H,gBAAgBvmtB,GAClC3Y,KAAK4muB,aAAa7I,kBAAkBj8Y,EAAMnpU,EAAK6hB,SAC/Cx6B,KAAK4muB,aAAarD,0BAEtBsE,mBAAmB/lZ,EAAM9rU,GACrB,GAAI8rU,EAAM,CACN,IAAIsiZ,EAAiBpkuB,KAAK4muB,aAAanC,qBACnCJ,EAAuBrkuB,KAAK4muB,aAAajC,2BACzClF,EAAalltB,KAAKmvD,IAAI1zD,EAAE8ttB,OAAQhiZ,EAAKl1U,MAAM4zJ,MAC3CujkB,EAActE,EAAa39Y,EAAK29Y,WACpC39Y,EAAK29Y,WAAaA,EAClBz/tB,KAAK4muB,aAAazC,qBAAqBC,EAAgBC,EAAuBN,GAC9E/juB,KAAK4muB,aAAahD,mBAAmB9hZ,EAAM9hV,KAAKgouB,eAAevI,EAAYzptB,EAAE84J,MAAOi1jB,EAAa/ttB,KAGzGgytB,eAAelE,EAAQh1jB,EAAOk1jB,EAAoBl5tB,GAC9C,MAAO,CACHg5tB,OAAQA,EACRh1jB,MAAOA,EACPk1jB,mBAAoBA,GAG5BiE,gBAAgB7xkB,GACZ,IAAI8xkB,EAAkBlouB,KAAK4muB,aAAatzqB,OAAO,oBAC/C,QAAS60qB,KAAaD,EACd77tB,OAAO8tB,UAAUjnB,eAAeknB,KAAK8tsB,EAAiBC,OAAczqtB,OAAUwqtB,EAAgBC,KAC9F/xkB,EAASxsE,OAAOu+oB,EAAWD,EAAgBC,KAK3D,kBAA2CC,IACvCvouB,YAAY+muB,GACR9muB,MAAM8muB,GACN5muB,KAAKk4tB,UAAYl4tB,KAAK4muB,aAAatzqB,OAAO,aAE9CwzqB,YAAYhlZ,GACR,IAAIumZ,EAAWvmZ,EAAKl1U,MAChBsztB,EAAa,CACb78tB,KAAMgluB,EAAShluB,KACfiluB,YAAa,EACb78tB,KAAM48tB,EAAS58tB,KACf88tB,WAAY,IAAIC,IAAeH,EAAUrouB,KAAKk4tB,WAC9ClwnB,KAAM,IAAIye,KACVs4mB,SAAUsJ,EAAS7nkB,KACnB56J,MAAO5F,KAAKyouB,oBAAoBJ,GAChCK,WAAY,IAEhB5mZ,EAAKo+Y,WAAaA,EAClBlguB,KAAK2ouB,WAAW7mZ,EAAMo+Y,GAE1BuI,oBAAoBG,GAChB,OAAO,IAAMA,EAAOpokB,KAAO,EAAIjmJ,KAAKojF,KAAKiroB,EAAOpokB,KAAOxgK,KAAKk4tB,WAEhEyQ,WAAW7mZ,EAAMo+Y,GACb,IAAI2I,EAAQ3I,EAAWqI,WAAWjC,OAClCpG,EAAW4I,aAAeD,EACtBA,GACA7ouB,KAAK+ouB,eAAejnZ,EAAMo+Y,EAAY2I,GAAO30pB,KAAK,KAC1C4tQ,EAAKi+Y,YAGTG,EAAWoI,aAAeO,EAAM5nZ,KAAKzgL,KACrCshL,EAAKy3Y,WAAWr5pB,KAAK,CACjB4jqB,OAAQ5D,EAAWoI,YACnBx5jB,MAAOgzK,EAAKl1U,MAAM4zJ,OAElBqokB,EAAMrC,aACN1kZ,EAAK69Y,OAAOz/pB,OAEhBngB,WAAW,IAAM//C,KAAK2ouB,WAAW7mZ,EAAMo+Y,OACxC/rpB,KAAKvzD,IACA5gB,KAAK8nuB,mBAAmBhmZ,EAAMlhU,IAC9B5gB,KAAKinuB,iBAAiBnlZ,EAAMlhU,KAK5CmotB,eAAejnZ,EAAMo+Y,EAAY2I,IACjCG,mBAAmBlnZ,GACVA,EAAKm+Y,cACNn+Y,EAAKm+Y,aAAc,EACnBn+Y,EAAK+9Y,YAAY3/pB,QAGzB+oqB,UAAUjztB,GACN,OAAO,KAEXgxtB,sBAAsBllZ,GAClB,OAAO9hV,KAAKkpuB,kBAAkBpnZ,EAAKo+Y,YAEvCgJ,kBAAkBhJ,GACd,MAAO,CACHiJ,cAAejJ,EAAWoI,YAC1Bc,WAAYlJ,EAAWt6tB,MACvB8iuB,WAAYxI,EAAWwI,WACvBW,UAAWnJ,EAAW4I,aAAa7nZ,KACnCqoZ,WAAYpJ,EAAW4I,aAAav2tB,QAIhD,kBAA8Cg3tB,IAC1CR,eAAejnZ,EAAMo+Y,EAAY2I,GAC7B,OAAO38Y,uBAAiB,CACpBzpV,IAAKzC,KAAK4muB,aAAatzqB,OAAO,aAC9B+xB,OAAQrlF,KAAK4muB,aAAatzqB,OAAO,gBACjCk2qB,QAASxpuB,KAAK4muB,aAAatzqB,OAAO,iBAClCm2qB,WAAYtC,GAAOnnuB,KAAKknuB,YAAYC,EAAKrlZ,GACzC6hZ,OAAQ,CACJ+F,WAAY1ztB,GAAKhW,KAAKqnuB,gBAAgBvlZ,EAAM9rU,GAC5C2ztB,YAAa,IAAM3puB,KAAKgpuB,mBAAmBlnZ,GAC3C8nZ,QAAS,IAAM9nZ,EAAK49Y,QAAQx/pB,QAEhC9zD,KAAMpM,KAAK6puB,gBAAgB,CACvB32kB,SAAUgtkB,EAAW78tB,KACrBymuB,SAAU9puB,KAAK4muB,aAAatzqB,OAAO,QACnC2tR,KAAM4nZ,EAAM5nZ,KACZ1uU,MAAOs2tB,EAAMt2tB,MACb3M,MAAOs6tB,EAAWt6tB,MAClB6F,KAAMy0tB,EAAWz0tB,KACjBu8F,KAAMk4nB,EAAWl4nB,KACjBw4D,KAAM0/jB,EAAWnB,aAI7B8K,gBAAgBj4sB,GACZ,IAAIwkI,EAAW,IAAIn0J,GAAO81tB,SAC1B3hkB,SAASxsE,OAAOh4D,EAAQk4sB,SAAUl4sB,EAAQqvT,MAC1C7qL,EAASxsE,OAx4CuB,gBAw4CmBzzE,KAAKC,UAAU,CAC9D2ztB,SAAUn4sB,EAAQshI,SAClB82kB,MAAOp4sB,EAAQrf,MACf03tB,WAAYr4sB,EAAQhsB,MACpBskuB,SAAUt4sB,EAAQ4uI,KAClB2pkB,SAAUv4sB,EAAQnmB,KAClB2+tB,SAAUx4sB,EAAQo2E,QAEtBhoG,KAAKiouB,gBAAgB7xkB,GACdA,GAGf,kBAA6CmzkB,IACzCR,eAAejnZ,EAAMo+Y,GACjBlguB,KAAKgpuB,mBAAmBlnZ,GACxB,IAAIuoZ,EAAarquB,KAAKkpuB,kBAAkBhJ,GACpC9F,EAAcp6tB,KAAK4muB,aAAatzqB,OAAO,eAC3C,IACI,IAAI5gD,EAAS0ntB,EAAYt4Y,EAAKl1U,MAAOy9tB,GACrC,SAAO9gmB,OAAY72H,SACdkO,GACL,OAAQ,IAAI4yD,OAAU35B,OAAOj5B,GAAOk5B,WAG5CgurB,mBAAmBhmZ,EAAMlhU,GACrB,OAAO,GAGf,kBAA0CwntB,IACtCtB,YAAYhlZ,GACRA,EAAK29Y,WAAa,EAClBz/tB,KAAK2huB,YAAY7/Y,GAAM5tQ,KAAK,KACnB4tQ,EAAKi+Y,WACNj+Y,EAAK69Y,OAAOz/pB,SAEjBiU,KAAKvzD,IACA5gB,KAAK8nuB,mBAAmBhmZ,EAAMlhU,IAC9B5gB,KAAKinuB,iBAAiBnlZ,EAAMlhU,KAIxC+gtB,YAAY7/Y,IACZylZ,oBAAoBzlZ,EAAM9rU,GACtB8rU,EAAKy3Y,WAAWr5pB,KAAKlqD,GAEzBgytB,eAAelE,EAAQh1jB,EAAOi1jB,EAAaj5tB,GACvC,IAAI4H,EAAS5S,MAAMkouB,eAAelE,EAAQh1jB,EAAOi1jB,EAAaj5tB,GAC9D4H,SAAO5H,MAAQA,EACR4H,GAGf,kBAA6C43tB,IACzC3I,YAAY7/Y,GACR,OAAOoK,uBAAiB,CACpBzpV,IAAKzC,KAAK4muB,aAAatzqB,OAAO,aAC9B+xB,OAAQrlF,KAAK4muB,aAAatzqB,OAAO,gBACjCk2qB,QAASxpuB,KAAK4muB,aAAatzqB,OAAO,iBAClCm2qB,WAAYtC,GAAOnnuB,KAAKknuB,YAAYC,EAAKrlZ,GACzC6hZ,OAAQ,CACJ+F,WAAY1ztB,GAAKhW,KAAKqnuB,gBAAgBvlZ,EAAM9rU,GAC5C2ztB,YAAa,IAAM7nZ,EAAK+9Y,YAAY3/pB,OACpC0pqB,QAAS,IAAM9nZ,EAAK49Y,QAAQx/pB,QAEhC9zD,KAAMpM,KAAK6puB,gBAAgB7puB,KAAK4muB,aAAatzqB,OAAO,QAASwuR,EAAKl1U,SAG1Ei9tB,gBAAgB95oB,EAAW66Q,GACvB,IAAIx0M,EAAW,IAAIn0J,GAAO81tB,SAC1B3hkB,SAASxsE,OAAOmG,EAAW66Q,EAAYA,EAAWvnW,MAClDrD,KAAKiouB,gBAAgB7xkB,GACdA,GAGf,kBAA4Ck0kB,IACxC3I,YAAY7/Y,GACRA,EAAK+9Y,YAAY3/pB,OACjB,IAAIi6pB,EAAan6tB,KAAK4muB,aAAatzqB,OAAO,cAC1C,IACI,IAAI5gD,EAASyntB,EAAWr4Y,EAAKl1U,MAAO07tB,IAKhCtouB,KAAKqnuB,gBAAgBvlZ,EAJX,CACNgiZ,OAAQwE,EACRx5jB,MAAOgzK,EAAKl1U,MAAM4zJ,SAI1B,SAAOj3B,OAAY72H,SACdkO,GACL,OAAQ,IAAI4yD,OAAU35B,OAAOj5B,GAAOk5B,WAG5CgurB,mBAAmBhmZ,EAAM9rU,GACrB,OAAO,GAGfk+H,GAAkB,iBAAkBq2lB,KACpC,SAAeA,ICpiDf,IAAIC,IAAuB,CACvBC,kBAAmB,WACf,IACI3pB,eAAgBA,GAChB9H,KACJ,OAAOh5sB,KAAK0quB,aAAe1quB,KAAK0quB,WAAa,CAAC,CAC1CjmsB,QAASq8qB,EAAegD,iBACxBrykB,MAAOzxB,UAA2B,yCAClC2qnB,aAAc3quB,KAAK4quB,6BACpB,CACCnmsB,QAASq8qB,EAAekD,eACxBvykB,MAAOzxB,UAA2B,uCAClC2qnB,aAAc3quB,KAAK4quB,gCAG3BA,4BAA6B,SAASjytB,GAClC,IAAIkytB,KAAYzvqB,MAAE,SAClBziD,SAAKnK,UAAUmqF,iBAAiBkyoB,EAAWN,GAAc,CACrDpS,iBAAkBn4mB,UAA2B,8CAC7Cq4mB,OAAQ,UACRU,WAAY,UACZrkkB,eAAgB,SAAS1+I,GACrB,IACI80tB,EAAS,OADA3sqB,SACW4sqB,YACxBD,EAAO9jZ,OAAS,SAAShxU,GACrB2C,EAAKnK,UAAU09sB,kBAAoBl2sB,EAAEhU,OAAO0Q,QAEhDo4tB,EAAOE,cAAch1tB,EAAEpJ,MAAM,OAG9Bi+tB,GAEXI,oBAAoBxmsB,GAChB,IAAI2B,EAAepmC,KAAKyquB,oBAAoB/ptB,IAAIkG,GAAKA,EAAE6d,SAASjyB,QAAQiyB,GACxE,OAAI2B,GAAgB,EACTpmC,KAAKyquB,oBAAoBrksB,GAEzB,OAInB,UAAeoksB,IC3Cf,IAAIU,IAAkB/2oB,WAAkB,IAAI07B,QAAQtU,IAwNpD,UAvNA,kBAA0B2vnB,IACtBrruB,YAAYsruB,GACRrruB,QACAE,KAAKoruB,eAAiBD,EACtBnruB,KAAKqruB,cAETrhnB,0BAA0BC,EAAUj0G,GAIhC,GAHAhW,KAAKqruB,cACLrruB,KAAKu1G,OAAS0U,EAASvpG,IAAI9D,IAAQyC,SAAO,EAAM,GAAIzC,IACpD5c,KAAK6/U,iBAAmB51N,EAAS3iH,QAC7B0O,GAAKA,EAAEigB,QAAS,CAChB,IAAIq1sB,EAAkBt1tB,EAAEigB,QAAQnP,OAAO4P,GAAUA,EAAO60sB,gBACpDC,EAAkBx1tB,EAAEigB,QAAQnP,OAAO4P,IAAWA,EAAO60sB,gBACrDD,EAAgB7muB,QAChBzE,KAAKyruB,wBAAwBH,GAAiB,GAE9CE,EAAgB/muB,QAChBzE,KAAKyruB,wBAAwBD,GAAiB,QAGlDxruB,KAAKoruB,eAAeM,uBAG5Bxsd,iCAAiChoK,GACzBA,IAAcl3G,KAAKi8G,YAAYhF,WAC/Bj3G,KAAKoruB,eAAeO,wBAEpB3ruB,KAAKoruB,eAAeQ,wBAG5BC,aAAaC,GACT,QAAS35tB,KAAO25tB,GACPz/tB,OAAO8tB,UAAUjnB,eAAeknB,KAAK0xsB,EAAS35tB,SAG/C,MAAmBA,KACnB25tB,EAAQ35tB,GAAO,MAGvB,OAAO25tB,EAEX14sB,OAAOhnB,EAAM1G,EAAUqmuB,GACnB/ruB,KAAKqruB,cACL,IAAI91tB,EAAQvV,KAAKgsuB,YACjBz2tB,EAAM6d,OAAOpzB,KAAK6ruB,aAAaz/tB,IAAO8nE,KAAK,CAAC9nE,EAAM+F,KAC9CoD,EAAMlM,KAAK,CAAC,CACRoC,KAAM,SACN0G,IAAKA,EACL/F,KAAMA,EACNm/tB,gBAAgB,KAEhB7luB,GACAA,EAAS0G,GAEbpM,KAAKqruB,gBACNl3pB,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,GAElB5gB,KAAKqruB,gBAGb51sB,OAAOtjB,EAAK/F,EAAM1G,EAAUqmuB,GACxB,IAAIx2tB,EAAQvV,KAAKgsuB,YACbl7C,EAAW9wrB,KAAKisuB,aAAa12tB,EAAOpD,EAAK/F,GAC7CmJ,EAAMkgB,OAAOq7pB,EAAU9wrB,KAAK6ruB,aAAaz/tB,IAAO8nE,KAAK,CAAC9nE,EAAM+F,KACxDoD,EAAMlM,KAAK,CAAC,CACRoC,KAAM,SACN0G,IAAKA,EACL/F,KAAMA,EACNm/tB,gBAAgB,KAEhB7luB,GACAA,EAASyM,EAAK/F,KAEnB+nE,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,KAI1B/f,OAAOsR,EAAK/F,EAAM1G,EAAUqmuB,GACxB/ruB,KAAKqruB,cACL,IAAI91tB,EAAQvV,KAAKgsuB,YACbl7C,EAAW9wrB,KAAKisuB,aAAa12tB,EAAOpD,EAAK/F,GAC7CmJ,EAAM1U,OAAOiwrB,GAAU58mB,KAAK/hE,IACxBoD,EAAMlM,KAAK,CAAC,CACRoC,KAAM,SACN0G,IAAKA,EACLo5tB,gBAAgB,KAEhB7luB,GACAA,EAASyM,GAEbnS,KAAKqruB,gBACNl3pB,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,GAElB5gB,KAAKqruB,gBAGba,SAASvomB,GACL,OAAK3jI,KAAKu1G,OAGHv1G,KAAKmsuB,cAAcxomB,GAFf,KAIfuhe,WACI,OAAOllmB,KAAKu1G,OAEhBusC,WACI,QAAS9hJ,KAAKu1G,OAElBk2nB,wBAAwBx1sB,EAASm2sB,GAC7Bn2sB,EAAUA,EAAQvV,IAAIgW,IAAUrX,QAAOqX,EAAQ,CAC3C21sB,YAAarsuB,KAAKssuB,gBAAgB51sB,EAAOvkB,QAE7CnS,KAAKoruB,eAAeK,wBAAwBx1sB,EAASm2sB,GAEzDD,cAAch6tB,GACVnS,KAAKusuB,eACL,IAAI94oB,EAAQzzF,KAAKy1H,OACbljH,EAAQvS,KAAKmmI,eAAeh0H,GAChC,OAAOshF,EAAMp/B,MAAM9hD,GAEvB4zH,eAAeh0H,GACXnS,KAAKusuB,eACL,IAAI94oB,EAAQzzF,KAAKy1H,OACjB,GAAI,iBAAoBtjH,EAMjB,CACH,IAAIsK,EAASg3E,EAAMh3E,QAAUg3E,EAAM16E,KAAKwa,OAAO,CAACqF,EAAazmB,EAAKI,KAC9DqmB,EAAYzmB,GAAOI,EACZqmB,GACR,IACH,OAAK66D,EAAMh3E,SACPg3E,EAAMh3E,OAASA,GAEZA,EAAOtK,GAbd,QAAS3N,EAAI,EAAGC,EAASgvF,EAAM16E,KAAKtU,OAAQD,EAAIC,EAAQD,IACpD,GAAIivF,EAAM16E,KAAKvU,KAAO2N,EAClB,OAAO3N,EAanB,OAAO,EAEX+nuB,eACI,IAAI94oB,EAAQzzF,KAAKy1H,OACZhiC,EAAM16E,OACP06E,EAAM16E,KAAO,GACb06E,EAAMp/B,MAAQ,GACdr0D,KAAKwsuB,WAAW/4oB,EAAOzzF,KAAKu1G,SAGpCi3nB,WAAW/4oB,EAAOp/B,GACd,GAAKA,GAAUA,EAAM5vD,OAGrB,KAAI41H,EAAUr6H,KAAKm6H,cACfE,GACAhmE,EAAMruD,QAAQ4W,IACV62E,EAAM16E,KAAK1P,KAAKgxH,EAAQz9G,IACxB62E,EAAMp/B,MAAMhrD,KAAKuT,KAGzB,IAAIsif,EAAYl/f,KAAKysuB,gBACjBvtO,GACA7qc,EAAMruD,QAAQ4W,GAAQ5c,KAAKwsuB,WAAW/4oB,EAAOyra,EAAUtif,KAE3D,IAAI8vtB,EAAwB1suB,KAAK2suB,4BAC7BD,GACAr4qB,EAAMruD,QAAQ4W,GAAQ5c,KAAKwsuB,WAAW/4oB,EAAOi5oB,EAAsB9vtB,MAG3Eu9G,cACI,KAAM,kBAEVsymB,iBACAE,6BACAhxnB,kBACI77G,MAAM67G,kBACN37G,KAAKi8G,aAAej8G,KAAKi8G,YAAYpJ,UAAS,GAElD8T,qBACI,MAAO,CACH9T,UAAU,GAGlBm5nB,YACI,OAAOhsuB,KAAKi8G,aAAej8G,KAAKi8G,YAAY1mG,QAEhD02tB,aAAa12tB,EAAO82tB,EAAajguB,GAC7B,IAAI0krB,EAAWv7qB,EAAMslG,MAAMzuG,GAC3B,GAAI0krB,IAAa1krB,EAAM,CACnB,IAAIiuH,EAAUr6H,KAAKm6H,cACnBn6H,KAAK6/U,iBAAiB75U,QAAQ4W,IACtBy9G,EAAQz9G,KAAUyvtB,IAClBv7C,EAAWl0qB,KAIvB,OAAOk0qB,EAEXw7C,gBAAgBx7C,GACZ,MAAI,iBAAoBA,EACN9wrB,KAAKm6H,aACZE,CAAQy2jB,GAEZA,EAEXu6C,cACIrruB,KAAKy1H,OAAS,KChNtBm3mB,IAXA,kBAA0BC,IACtB1ymB,cACI,OAAOn6H,KAAKoruB,eAAe0B,oBAAoB,iBAEnDL,gBACI,OAAOzsuB,KAAKoruB,eAAe0B,oBAAoB,mBAEnDH,4BACI,OAAO3suB,KAAKoruB,eAAe0B,oBAAoB,iCCHvDC,IALA,kBAA0BF,IACtB1ymB,cACI,OAAOn6H,KAAKoruB,eAAe0B,oBAAoB,mBCqDvD,IAAIE,GAAgB,aAMhBC,GAA2CD,GAAgB,8BAe3DE,GAAoB,iBACpBC,IAA+Bz+pB,GAAa,mBAAoBw+pB,IAChEE,IAAkC1+pB,GAAa,qBAAsBw+pB,IACrEG,IAAsC3+pB,GAAa,yBAA0Bw+pB,IAC7EI,IAAmC5+pB,GAAa,sBAAuBw+pB,IA0oE3Eh5lB,GAAkB,YAzoElB,kBAAsB9rC,GAClBtS,QACI91F,KAAKutuB,wBAA0B,EAC/BvtuB,KAAKwtuB,qBAAuB,EAC5BxtuB,KAAKq0tB,UAAY,GACjBv0tB,MAAMg2F,QACN91F,KAAKytuB,eACLztuB,KAAK0tuB,uBAETnroB,cACIziG,MAAMyiG,cACNviG,KAAKq0tB,UAAY,UACVr0tB,KAAK2tuB,oBACZ,IAAI51d,IAAgB75M,WACpBl+D,KAAKm7D,WAAWvtD,SAASo/tB,WAClBhtuB,KAAK4tuB,aACR5tuB,KAAKszD,OAAO,wBACZtzD,KAAK6tuB,qBAET,IAAIC,KAAkB1yqB,MAAE,SAASxtD,SA1CLo/tB,8BA0C6CniqB,SAAS7qE,KAAKm7D,YAqCvF,UApCOn7D,KAAK+tuB,uBACL/tuB,KAAKguuB,8BACRhuuB,KAAKiuuB,4BACLjuuB,KAAKkuuB,sBAAsBJ,UAExB9tuB,KAAKmuuB,0BACLnuuB,KAAKouuB,iCACRpuuB,KAAKquuB,6BACLruuB,KAAKsuuB,yBAAyBR,UAE3B9tuB,KAAKuuuB,oBACLvuuB,KAAKwuuB,2BACRxuuB,KAAKszD,OAAO,wBACZtzD,KAAKyuuB,mBAAmBX,UAErB9tuB,KAAK0uuB,gBACL1uuB,KAAK2uuB,uBACR3uuB,KAAK4uuB,qBACL5uuB,KAAK6uuB,eAAef,UAEjB9tuB,KAAK8uuB,wBACL9uuB,KAAK+uuB,+BACR/uuB,KAAKquuB,6BACLruuB,KAAKgvuB,uBAAuBlB,GAEhC9tuB,KAAK8rN,WAAY1wJ,QAAE,SAASxtD,SAnERo/tB,sBAmEwCniqB,SAASijqB,UAC9D9tuB,KAAK4+sB,aACZ5+sB,KAAKivuB,iBAAiB38a,SAASx5J,mBAAqB94J,KAAKszD,OAAO,uBAC5DtzD,KAAKivuB,iBAAiB38a,SAASx5J,oBAC/B94J,KAAKkvuB,mBAAmBpB,UAErB9tuB,KAAKmvuB,gBACRnvuB,KAAKszD,OAAO,2BACZtzD,KAAKovuB,sBAAsBtB,GAE/B9tuB,KAAKqvuB,cAAcvB,IACd/1d,EAAc,CACf,IAAI03c,KAAqBr0pB,MAAE,SAASxtD,SA9EhBo/tB,0BA8EoDniqB,SAAS7qE,KAAK8rN,WACtF9rN,KAAK24F,iBAAiB82nB,EAAoB6f,IAAmB,CACzDtzd,mBAAoBh8Q,KAAKszD,OAAO,sBAChCi8qB,gBAAiBv5tB,IACbhW,KAAKivuB,iBAAiBO,eAAex5tB,EAAEghN,QAAQ,GAAIhhN,EAAE4sP,WAAYkre,EAAgB,OAI7F9tuB,KAAKyvuB,yBAAyB/uB,sCAA2D1gtB,KAAK0vuB,6BAC9F1vuB,KAAKyvuB,yBAAyB/uB,6BAAkD1gtB,KAAK2vuB,qBACrF3vuB,KAAK4vuB,0BAET/toB,oBACI7hG,KAAK2tuB,yBAAsB,EAC3B3tuB,KAAK6vuB,wBAETjuoB,mBAAmB7yB,GACXA,IACA/uE,KAAK8vuB,mBACL9vuB,KAAKquG,WAGbwhoB,wBACI7vuB,KAAKivuB,iBAAiB7zhB,qBAClBp7M,KAAKguuB,+BACLhuuB,KAAKguuB,8BAA8B5zsB,KAAKp6B,MAExCA,KAAKouuB,kCACLpuuB,KAAKouuB,iCAAiCh0sB,KAAKp6B,MAE3CA,KAAK+uuB,gCACL/uuB,KAAK+uuB,+BAA+B30sB,KAAKp6B,MAEzCA,KAAKwuuB,4BACLxuuB,KAAKwuuB,2BAA2Bp0sB,KAAKp6B,MAErCA,KAAK2uuB,wBACL3uuB,KAAK2uuB,uBAAuBv0sB,KAAKp6B,MAGzC+vuB,qBACI,YAAI,IAAW/vuB,KAAK2tuB,sBAChB3tuB,KAAK2tuB,uBAAsBzvqB,WAAeyN,SAAc3rE,KAAKm7D,YA9GnC,KAgHvBn7D,KAAK2tuB,oBAEhBqC,gBACQhwuB,KAAKivuB,kBACLjvuB,KAAKivuB,iBAAiBgB,eAG9BC,yBACIlwuB,KAAKmwuB,qBAAuBpwrB,WAAW,KACnC//C,KAAKgwuB,uBACEhwuB,KAAKmwuB,sBACb,KAEPC,2BACQpwuB,KAAKmwuB,uBACL5xqB,aAAav+D,KAAKmwuB,6BACXnwuB,KAAKmwuB,sBAGpBE,2BACIrwuB,KAAKkwuB,yBAETI,iBAAiB9huB,GACbxO,KAAKuwuB,aAAa/huB,GAClBxO,KAAKq0tB,UAAUhrtB,KAAKmF,GAExB+huB,aAAa/huB,GACTA,EAAU2oI,IAAInmD,UAAUvoF,IAAIzI,MAC5BA,KAAKivuB,iBAAiBuB,YAAYhiuB,EAAU2oI,KAEhDuykB,sBACI,IAAIzC,EAAkB,GACtB,OAAKjntB,KAAK4uuB,qBACN3nB,EAAgB59sB,KAAKq3sB,8BAEpB1gtB,KAAKquuB,6BACNpnB,EAAgB59sB,KAAKq3sB,uCAElBuG,EAEXwpB,yBACI,MAAO,CACH9noB,eAAgB3lF,IACZ,IACIxU,UAAWA,GACXwU,EACJ,OAAOhjB,KAAKswuB,iBAAiB9huB,IAEjCkiuB,4BAA6Bp2oB,IACzB,IACI9rF,UAAWA,GACX8rF,EACJ,OAAOt6F,KAAKivuB,iBAAiB0B,oBAAoBniuB,EAAU2oI,MAE/Dy5lB,YAAa5wuB,KAAK6wuB,kBAAkB5nrB,KAAKjpD,MACzCuiT,OAAQviT,KAAKszD,OAAO,UACpB2zpB,gBAAiBjntB,KAAK0ptB,sBACtBonB,kBAAmB9wuB,KAAK+wuB,mBAAmB9nrB,KAAKjpD,MAChDgxuB,gBAAiBhxuB,KAAKixuB,iBAAiBhorB,KAAKjpD,MAC5CigtB,aAAcjgtB,KAAK+vuB,sBAG3BgB,mBAAmB/6tB,GACf,OAAQA,EAAEyuB,cACDi8qB,6BACG1gtB,KAAK0uuB,UACL1uuB,KAAK0uuB,SAASt6hB,SAElB,WACCssgB,sCACG1gtB,KAAK8uuB,kBACL9uuB,KAAK8uuB,iBAAiB16hB,UAItC68hB,iBAAiBj7tB,GACbhW,KAAKkxuB,qBAAqB,CACtB7tuB,KAAM2S,EAAE3S,OAGhBwquB,qBACI,IAAIsD,KAAkB/1qB,MAAE,SAASxtD,SA9MLo/tB,8BA8M6CniqB,SAAS7qE,KAAKm7D,YACvFn7D,KAAK4tuB,aAAe5tuB,KAAK24F,iBAAiBw4oB,EAAiBC,KAAoB/xtB,QAAOrf,KAAKywuB,yBAA0B,CACjHnrsB,SAAUtlC,KAAKszD,OAAO,wBACtB8spB,gBAAgB,KAGxB6tB,2BACI,OAAOjuuB,KAAKszD,OAAO,4BAA8BtzD,KAAKqxuB,iBAE1DnD,sBAAsBl3gB,GAClB,IAAIjtI,GAAa3uB,QAAE,SAASxtD,SAASq/tB,IAA0CpiqB,SAASmsJ,GACxFh3N,KAAK+tuB,gBAAkB/tuB,KAAK24F,iBAAiB5O,EAAYunpB,KAAuBjytB,QAAOrf,KAAKywuB,yBAA0B,CAClHnrsB,SAAUtlC,KAAKszD,OAAO,2BACtB2tF,aAAc,WAElBjhJ,KAAKuxuB,gCACLvxuB,KAAKguuB,8BAAgC,KACjChuuB,KAAK+tuB,gBAAgBz6qB,OAAO,eAAgBtzD,KAAK+vuB,uBAGzDwB,kCACSrzqB,YAGL2c,SAAoB76E,KAAK+tuB,gBAAgB5yqB,WAAY,CACjDkQ,GAAI,WACJ56C,GAAI,WACJrU,GAAIpc,KAAK+tuB,gBAAgB5yqB,WAAWpuD,SACpCo9D,OAAQqnqB,UAGhB5C,oBACI,MAAO,aAAe5uuB,KAAKszD,OAAO,wBAA0BtzD,KAAKqxuB,iBAErE1B,oBACI,MAAO,YAAc3vuB,KAAKszD,OAAO,uBAAyB,cAAgBA,OAAO,wBAA0BtzD,KAAK+vuB,qBAEpHlB,eAAe73gB,GACX,IAAI+gD,IAAgB75M,WAChBuzqB,KAAWr2qB,MAAE,SAASyP,SAASmsJ,GAC/BztJ,EAASvpE,KAAK0xuB,kBAAkB16gB,EAAS+gD,GAC7C/3Q,KAAK0uuB,SAAW1uuB,KAAK24F,iBAAiB84oB,EAAUE,IAAgB,CAC5D1xB,aAAcjgtB,KAAK+vuB,qBACnBp9f,UAAW3yO,KAAK2vuB,oBAChBz7sB,UAAWl0B,KAAKm7D,WAChB2E,OAAQyJ,EAAOzJ,OACfkzM,aAAch8C,EACdnhF,QAAStsE,EAAOssE,QAChBC,QAASvsE,EAAOusE,QAChB87lB,WAAY5xuB,KAAKszD,OAAO,sBACxB+/pB,cAAerztB,KAAK6xuB,oBACpBC,aAAc9xuB,KAAKszD,OAAO,iBAC1By+qB,wBAAyB/7tB,IACjB+hQ,GAGJ/3Q,KAAKivuB,iBAAiB+C,cAAch8tB,EAAEmlD,SAAS,GAAI,YAAcgoF,YAAantI,EAAEotI,QAAUptI,EAAEw4G,SAAU,CAClGyjnB,iBAzPgB,GA0PhBC,oBAAqBlyuB,KAAKszD,OAAO,4BACjC6+qB,oBAAqB,CACjB,cAAen8tB,EAAEy9sB,eAI7B2e,gBAAiBp8tB,IACT+hQ,GAGJ/3Q,KAAKivuB,iBAAiBoD,mBAAmBr8tB,EAAES,KAAMT,EAAE29sB,qBAEvD2e,qBAAsBt8tB,IACd+hQ,IAGJ/3Q,KAAKyvuB,yBAAyB/uB,6BAAkD1qsB,EAAE+4D,SAC9E/uE,KAAK8uuB,kBACD94tB,EAAE+4D,SAAW/uE,KAAK+vuB,sBAClB/vuB,KAAK8uuB,iBAAiBt6lB,OAG1Bx0I,KAAK+tuB,iBACD/3tB,EAAE+4D,SAAW/uE,KAAK+vuB,uBAClB/vuB,KAAKuyuB,sBAAwBp9gB,GAAkBtG,iBAC/C7uN,KAAK+tuB,gBAAgB5yqB,WAAWY,IAAI,SAAU/7D,KAAKuyuB,uBACnDvyuB,KAAK+tuB,gBAAgB5yqB,WAAWY,IAAI,YAAa,SAGrD/7D,KAAKuuuB,eACLvuuB,KAAKuuuB,aAAapzqB,WAAWY,IAAI,UAAW/lD,EAAE+4D,SAAW/uE,KAAK+vuB,qBAAuB,IAAM,KAC3F/vuB,KAAKuuuB,aAAapzqB,WAAWY,IAAI,gBAAiB/lD,EAAE+4D,SAAW/uE,KAAK+vuB,qBAAuB,OAAS,OAG5GyC,oBAAqBx8tB,KACZA,EAAE+4D,UAAY/uE,KAAKyyuB,mBACpBzyuB,KAAKgwuB,gBAEJj4d,GACG/3Q,KAAK+tuB,kBACA/3tB,EAAE+4D,SAAW/uE,KAAK+vuB,sBAAwB/vuB,KAAKuyuB,wBAChDp9gB,GAAkBn1N,KAAKuyuB,uBACvBvyuB,KAAK+tuB,gBAAgB5yqB,WAAWY,IAAI,SAAU,IAC9C/7D,KAAK+tuB,gBAAgB5yqB,WAAWY,IAAI,YAAa,IACjD/7D,KAAKuyuB,2BAAwB,IAK7C3B,YAAa5wuB,KAAK6wuB,kBAAkB5nrB,KAAKjpD,QAE7CA,KAAK0uuB,SAASv9f,OAAO79K,OAAO,yBAA0BtzD,KAAKszD,OAAO,eAClEtzD,KAAK2uuB,uBAAyB,KAC1B,IAAIplqB,EAASvpE,KAAK0xuB,kBAAkB16gB,EAAS+gD,GAC7C/3Q,KAAK0uuB,SAASp7qB,OAAO,SAAUiW,EAAOzJ,QACf9/D,KAAK0uuB,SAASp7qB,OAAO,kBACnBtzD,KAAK+vuB,uBAC1B/vuB,KAAK0uuB,SAASp7qB,OAAO,CACjB2spB,aAAcjgtB,KAAK+vuB,qBACnBp9f,UAAW3yO,KAAK2vuB,sBAEpB3vuB,KAAKyvuB,yBAAyB/uB,6BAAkD1gtB,KAAK2vuB,sBAEzF3vuB,KAAK0uuB,SAAS3b,mBAGtB2e,kBAAkB16gB,EAAS+gD,GACvB,IAAIrlQ,EAAS,CACTmjI,QArUwB,GAsUxBC,QAtUwB,GAuUxBh2E,OAASi4M,EAAwE,GAAzDryM,SAAUsxJ,GAAW,IAEjD,OAAIh3N,KAAK+tuB,kBAAoBh2d,IACzBrlQ,EAAOojI,UAAWlqE,SAAe5rE,KAAK+tuB,gBAAgB5yqB,YA1U9B,GA2UxBzoD,EAAOotD,WAAU8L,OAAe5rE,KAAK+tuB,gBAAgB5yqB,YA3U7B,IA6UxBn7D,KAAKuuuB,eAAiBx2d,IACtBrlQ,EAAOotD,WAAU8L,OAAe5rE,KAAKuuuB,aAAapzqB,YAAcn7D,KAAK0yuB,uBAAuB36d,IAEzFrlQ,EAEX+7tB,mBAAmBz3gB,GACf,IAAI+gD,MAAgB75M,SAChB6rB,GAAa3uB,QAAE,SAASxtD,SAASq/tB,IAA0CpiqB,SAASmsJ,GACxFh3N,KAAKuuuB,aAAevuuB,KAAK24F,iBAAiB5O,EAAY4opB,KAAoBtztB,QAAOrf,KAAKywuB,yBAA0B,CAC5GnrsB,SAAUtlC,KAAKszD,OAAO,wBACtB2tF,aAAc,WAElBjhJ,KAAK4yuB,2BAA2B7opB,EAAYitI,EAAS+gD,GACrD/3Q,KAAKwuuB,2BAA6B,KAC9BxuuB,KAAK4yuB,2BAA2B7opB,EAAYitI,EAAS+gD,IAG7D26d,uBAAuB36d,GACnB,IAAIA,EAGJ,KAAIrlQ,EAlWwB,GAmW5B,OAAI1S,KAAKuuuB,cAAgBvuuB,KAAKmuuB,qBAC1Bz7tB,OAAWk5D,OAAe5rE,KAAKmuuB,mBAAmBhzqB,aAAcyQ,SAAe5rE,KAAKuuuB,aAAapzqB,aAAe,GAE7GzoD,GAEXkguB,2BAA2B7opB,EAAYitI,EAAS+gD,GACxCA,GAGJl9L,SAAoBkP,EAAY,CAC5B1e,GAAI,cACJ56C,GAAI,cACJrU,GAAI46M,EACJ7sJ,OAAQqnqB,OAAuCxxuB,KAAK0yuB,uBAAuB36d,KAGnFs2d,4BACI,MAAO,aAAeruuB,KAAKszD,OAAO,gCAAkCtzD,KAAKqxuB,iBAE7E3B,4BACI,MAAO,YAAc1vuB,KAAKszD,OAAO,8BAErCg7qB,yBAAyBt3gB,GACrB,IAAI+gD,MAAgB75M,SAChB6rB,KAAa3uB,MAAE,SAASxtD,SAASq/tB,IAA0Cr/tB,SA7XhCo/tB,iDA6X2FniqB,SAASmsJ,GACnJh3N,KAAKmuuB,mBAAqBnuuB,KAAK24F,iBAAiB5O,EAAY8opB,KAA0BxztB,QAAOrf,KAAKywuB,yBAA0B,CACxHvwB,kBAAmB,YACnBC,WAAY,UACZl/jB,aAAc,WAElBjhJ,KAAK8yuB,iCAAiC/opB,EAAYitI,EAAS+gD,GAC3D/3Q,KAAKouuB,iCAAmC,KACpCpuuB,KAAK8yuB,iCAAiC/opB,EAAYitI,EAAS+gD,IAGnE+6d,iCAAiC/opB,EAAYitI,EAAS+gD,GAC9CA,GAGJl9L,SAAoBkP,EAAY,CAC5B1e,GAAI,eACJ56C,GAAI,eACJrU,GAAI46M,EACJ7sJ,OAAQ,YAGhB6kqB,uBAAuBh4gB,GACnB,IAAI+gD,IAAgB75M,WAChB60qB,KAAmB33qB,MAAE,SAASyP,SAASmsJ,GAEvClhF,EAAU,IAAsCiiI,EAAoE,GAArDnsM,SAAe5rE,KAAKmuuB,mBAAmBhzqB,aAC1Gn7D,KAAK8uuB,iBAAmB9uuB,KAAK24F,iBAAiBo6oB,EAAkBC,IAAwB,CACpF/yB,aAAcjgtB,KAAK+vuB,qBACnBp9f,UAAW3yO,KAAK0vuB,4BAChBx7sB,UAAWl0B,KAAKm7D,WAChB63M,aAAch8C,EACdnhF,QA3ZwB,GA4ZxBC,QAASA,EACTm9lB,aAAcjzuB,KAAKszD,OAAO,wBAC1B4/qB,gBAAiBl9tB,IACbA,EAAEi6I,QAAUjwJ,KAAK24F,iBAAiB3iF,EAAEghN,QAASwyf,IAAgBnqsB,QAAOrf,KAAKywuB,yBAA0B,CAC/FnrsB,SAAUtvB,EAAEsvB,SACZ27G,aAAc,QACdy8F,kBAAmB,eAG3B40f,qBAAsBt8tB,IACd+hQ,IAGJ/3Q,KAAKmzuB,gCAAgCn9tB,EAAExH,WACvCxO,KAAKyvuB,yBAAyB/uB,sCAA2D1qsB,EAAE+4D,SACvF/uE,KAAK0uuB,UACD14tB,EAAE+4D,SAAW/uE,KAAK+vuB,sBAClB/vuB,KAAK0uuB,SAASl6lB,SAI1Bg+lB,oBAAqBx8tB,KACZA,EAAE+4D,UAAY/uE,KAAKyyuB,mBACpBzyuB,KAAKgwuB,iBAGboD,uBAAwBjiqB,IACpB,IACI3iE,UAAWA,GACX2iE,EACJ,OAAOnxE,KAAKmzuB,gCAAgC3kuB,IAEhDoiuB,YAAa5wuB,KAAK6wuB,kBAAkB5nrB,KAAKjpD,QAE7CA,KAAK+uuB,+BAAiC,KACX/uuB,KAAK8uuB,iBAAiBx7qB,OAAO,kBAC3BtzD,KAAK+vuB,uBAC1B/vuB,KAAK8uuB,iBAAiBx7qB,OAAO,CACzB2spB,aAAcjgtB,KAAK+vuB,qBACnBp9f,UAAW3yO,KAAK0vuB,8BAEpB1vuB,KAAKyvuB,yBAAyB/uB,sCAA2D1gtB,KAAK0vuB,+BAI1GyD,gCAAgC3kuB,GAC5BA,EAAU0mtB,oBAAoBlvtB,QAAQiqJ,IAClCjwJ,KAAKivuB,iBAAiB0B,oBAAoB1glB,EAAQ9Y,OAG1D05lB,oBACI7wuB,KAAKkwuB,yBAEThB,mBAAmBl4gB,GACf,IAAIqzf,GAAejvpB,QAAE,SAASyP,SAASmsJ,GACvCh3N,KAAK4+sB,aAAe5+sB,KAAK24F,iBAAiB0xnB,EAAcgpB,8BAAoD,CACxG/tsB,SAAUtlC,KAAKszD,OAAO,wBACtBq1C,eAAgBr2B,IACZ,IACI9jE,UAAWA,GACX8jE,EACJ,OAAOtyE,KAAKuwuB,aAAa/huB,IAE7B8juB,qBAAsB5/pB,IAClB,IACIlkE,UAAWA,GACXkkE,EACJ,OAAO1yE,KAAKivuB,iBAAiB0B,oBAAoBniuB,EAAU2oI,MAE/DryB,YAAaR,GAAYtkH,KAAKszuB,yBAAyBhvnB,EAAS7/E,SAChE89Q,OAAQviT,KAAKszD,OAAO,UACpB2zpB,gBAAiBjntB,KAAK0ptB,sBACtBonB,kBAAmB9wuB,KAAK+wuB,mBAAmB9nrB,KAAKjpD,MAChDgxuB,gBAAiBhxuB,KAAKixuB,iBAAiBhorB,KAAKjpD,QAGpDovuB,sBAAsBp4gB,GAClB,IAAI+gD,IAAgB75M,WAChBswD,EAAWxuH,KAAKszD,OAAO,2BACvB6vF,EAAcnjJ,KAAKszD,OAAO,8BAC1B8vF,EAASpjJ,KAAKszD,OAAO,yBACrBigrB,GAAkBn4qB,QAAE,SAASyP,SAASmsJ,GAC1Ch3N,KAAKmvuB,gBAAkBnvuB,KAAK24F,iBAAiB46oB,EAAiBC,IAAuB,CACjF1B,aAAc9xuB,KAAKszD,OAAO,wBAC1B47F,QAASl5I,IACL,IAAI+hQ,EAGJ,KAAI07d,KAAoBr4qB,MAAEplD,EAAEmlD,UACxBu4qB,EAAc,UAAYvwlB,EAC9B,IAAKC,IAAW50B,IAAaklnB,EAAa,CACtC,IAAIn/sB,EAAQv0B,KAAK6xuB,oBAAoB/qtB,OAAQ,SAAS0f,GAClD,OAAOA,EAAEgoF,WAAax4G,EAAEw4G,WACxB,GACAj6F,IACAm/sB,EAAc,YAAkBvwlB,aAGxCnjJ,KAAKivuB,iBAAiB0E,qBAAqBF,EAAkB,GAAIC,EAAatwlB,GAAU50B,GAAYx4G,EAAEw4G,SAAU,CAC5GyjnB,iBAtfwB,GAufxBC,oBAAqBlyuB,KAAKszD,OAAO,oCAClCsgrB,IACC59tB,EAAEtQ,SAASkuuB,GACX5zuB,KAAKgwuB,gBACLh6tB,EAAEw+H,aAKlBi7lB,yBAAyBhrsB,EAASq0J,GAC9B94L,KAAKq0tB,UAAUrutB,QAAQ6tuB,IACnBA,EAAGxzB,kBAAkB57qB,EAASq0J,KAGtCw6iB,yBAAyB7usB,GACrB,IAAIqvsB,EAAmBtJ,wBAAyC/lsB,GAChE,OAAIqvsB,GACA9zuB,KAAK+zuB,YAAYD,KAEZA,EAEbzE,cAAcr4gB,GACV,IAAIg9gB,GAAiB54qB,QAAE,SAASyP,SAASmsJ,GACzCh3N,KAAKi0uB,gBAAkBj0uB,KAAK24F,iBAAiBq7oB,EAAgBE,IAAe,IAEhFH,YAAYD,GACJ9zuB,KAAKi0uB,kBACLj0uB,KAAKi0uB,gBAAgB3grB,OAAO,eAAgBwgrB,EAAiBnJ,cAC7D3quB,KAAKi0uB,gBAAgB3grB,OAAO,WAAY,WACpCtzD,KAAKgwuB,iBACP/mrB,KAAKjpD,OACPA,KAAKi0uB,gBAAgB3grB,OAAO,UAAWtzD,KAAKivuB,iBAAiBkF,WAAWL,EAAiBrvsB,UACzFzkC,KAAKi0uB,gBAAgB3grB,OAAO,QAASwgrB,EAAiBrimB,OACtDzxI,KAAKi0uB,gBAAgBtihB,SAG7Bg6gB,wBACI3ruB,KAAKg6Q,qBAAoB5+M,MAAE,SAASxtD,SAtiBNo/tB,gCAuiB9BhtuB,KAAK24F,iBAAiB34F,KAAKg6Q,kBAAmBx+B,GAAe,KAC/Cx7O,KAAK8rN,WAAa9rN,KAAKm7D,YAC7ByuB,OAAO5pF,KAAKg6Q,mBAExB4xd,yBACS5ruB,KAAKg6Q,oBAGVh6Q,KAAKg6Q,kBAAkBn5Q,SACvBb,KAAKg6Q,kBAAoB,MAE7Byzd,eACI,IACI2G,eAAgBA,GAChBp7B,KAuEJ,GAtEAh5sB,KAAKivuB,iBAAmB,IAAImF,EAC5Bp0uB,KAAKivuB,iBAAiBj+oB,UAAYhxF,KAAKq0uB,uBAAuBprrB,KAAKjpD,MACnEA,KAAKivuB,iBAAiBqF,eAAiBt0uB,KAAKu0uB,yBAAyBtrrB,KAAKjpD,MAC1EA,KAAKivuB,iBAAiBuF,cAAgBx0uB,KAAKy0uB,wBAAwBxrrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiByF,cAAgB10uB,KAAK20uB,wBAAwB1rrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiB2F,eAAiB50uB,KAAK60uB,yBAAyB5rrB,KAAKjpD,MAC1EA,KAAKivuB,iBAAiB6F,cAAgB90uB,KAAK+0uB,wBAAwB9rrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiB+F,cAAgBh1uB,KAAKi1uB,wBAAwBhsrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiBiG,mBAAqBl1uB,KAAKm1uB,uBAAuBlsrB,KAAKjpD,MAC5EA,KAAKivuB,iBAAiBmG,iBAAmBp1uB,KAAKq1uB,qBAAqBpsrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiBqG,iBAAmBt1uB,KAAKu1uB,qBAAqBtsrB,KAAKjpD,MACxEA,KAAKivuB,iBAAiBuG,eAAiBx1uB,KAAKy1uB,mBAAmBxsrB,KAAKjpD,MACpEA,KAAKivuB,iBAAiByG,mBAAqB11uB,KAAK21uB,oBAAoB1srB,KAAKjpD,MACzEA,KAAKivuB,iBAAiB2G,kBAAoB51uB,KAAK61uB,mBAAmB5srB,KAAKjpD,MACvEA,KAAKivuB,iBAAiB6G,kBAAoB91uB,KAAK+1uB,mBAAmB9srB,KAAKjpD,MACvEA,KAAKivuB,iBAAiB+G,qBAAuBh2uB,KAAKi2uB,sBAAsBhtrB,KAAKjpD,MAC7EA,KAAKivuB,iBAAiBiH,qBAAuBl2uB,KAAKm2uB,sBAAsBltrB,KAAKjpD,MAC7EA,KAAKivuB,iBAAiBmH,eAAe3tuB,IAAI,CACrC4tuB,gBAAiBr2uB,KAAKs2uB,sBAAsBrtrB,KAAKjpD,MACjDu2uB,mBAAoBv2uB,KAAKw2uB,yBAAyBvtrB,KAAKjpD,MACvDy2uB,uBAAwBz2uB,KAAK02uB,uBAAuBztrB,KAAKjpD,QAE7DA,KAAKivuB,iBAAiB0H,mBAAqB32uB,KAAK42uB,2BAA2B3trB,KAAKjpD,MAChFA,KAAK62uB,kCACL72uB,KAAK82uB,+BACL92uB,KAAK+2uB,yBACL/2uB,KAAKg3uB,oBACLh3uB,KAAKi3uB,mBACLj3uB,KAAKk3uB,2BAhlBc,OAilBfl3uB,KAAKszD,OAAO,UACZtzD,KAAKm3uB,oBAELn3uB,KAAKqxuB,kBACLrxuB,KAAK6luB,uBAEL7luB,KAAKszD,OAAO,cACRtzD,KAAKszD,OAAO,mBACZtzD,KAAKo3uB,4BAELp3uB,KAAKszD,OAAO,mBAAqBtzD,KAAKszD,OAAO,oBAC7CtzD,KAAKq3uB,wBAzlBkB,aA4lB3Br3uB,KAAKszD,OAAO,oBACZtzD,KAAKs3uB,8BA5lBgB,YA8lBrBt3uB,KAAKszD,OAAO,cACZtzD,KAAKu3uB,wBAnmBU,OAqmBfv3uB,KAAKszD,OAAO,cACZtzD,KAAKw3uB,wBAEJx3uB,KAAKszD,OAAO,aACbtzD,KAAKy3uB,uBAEJz3uB,KAAKszD,OAAO,eACbtzD,KAAK03uB,yBAEL13uB,KAAKszD,OAAO,aACZtzD,KAAK23uB,uBA9mBe,IAgnBpB33uB,KAAKszD,OAAO,cACZtzD,KAAK43uB,wBAEL53uB,KAAKszD,OAAO,eACZtzD,KAAK63uB,yBAnnBmB,aAqnBxB73uB,KAAKszD,OAAO,iBACZtzD,KAAK83uB,uBAEL93uB,KAAKszD,OAAO,cAAe,CAC3B,IAAIrxD,KAASk8D,SACTl8D,GAAUA,EAAO6iE,OAAS7iE,EAAOs5D,IACjCv7D,KAAKszD,OAAO,cAAc,GAE1BtzD,KAAK+3uB,yBAGb/3uB,KAAK4vuB,2BACD1xqB,YACAl+D,KAAKivuB,iBAAiB+I,aAAah4uB,KAAKm7D,WAAW,IAEvDn7D,KAAKi4uB,oBAAoBj4uB,KAAKk4uB,oBAC9Bl4uB,KAAKm4uB,sBAETvI,0BACS5vuB,KAAKo4uB,mBACNp4uB,KAAKo4uB,iBAAmB,IAAIC,IAAwBr4uB,MACpDA,KAAKivuB,iBAAiBuB,YAAYxwuB,KAAKo4uB,mBAG/CE,iCACWt4uB,KAAKo4uB,iBAEhB30oB,SACQzjG,KAAKivuB,mBACLjvuB,KAAKivuB,iBAAiBsJ,YAAY/wuB,KAC9B4zD,QAAE5zD,GAASw7E,UAEfhjF,KAAKs4uB,2BAETx4uB,MAAM2jG,SAEV//E,WACI1jB,KAAKowuB,2BACLtwuB,MAAM4jB,WACF1jB,KAAKivuB,mBACLjvuB,KAAKivuB,iBAAiBnurB,UACtB9gD,KAAKivuB,sBAAmB,GAGhCuJ,uBAAuB/zsB,EAASy0qB,GAC5Bl5sB,KAAKivuB,iBAAiBkF,WAAW1vsB,GAASkpD,QAAQurnB,GAEtDu/B,oBACI,OAAOz4uB,KAAK04uB,cAAgB14uB,KAAK04uB,aAAa39nB,gBAElD49nB,oBACI,OAAO34uB,KAAK44uB,cAAgB54uB,KAAK44uB,aAAa79nB,gBAElDo9nB,sBACIn4uB,KAAK64uB,sBACL74uB,KAAK84uB,0BACL94uB,KAAK+4uB,0BACL/4uB,KAAKg5uB,oBAETF,0BACQ94uB,KAAK04uB,eACL14uB,KAAK04uB,aAAaj9nB,4BACXz7G,KAAK04uB,cAEZ14uB,KAAKszD,OAAO,sBACZtzD,KAAK04uB,aAAe,IAAIO,IAAYj5uB,MACpCA,KAAK04uB,aAAaplrB,OAAO,aAActzD,KAAKszD,OAAO,qBACnDtzD,KAAK04uB,aAAah9nB,sBAG1Bq9nB,0BACQ/4uB,KAAK44uB,eACL54uB,KAAK44uB,aAAan9nB,4BACXz7G,KAAK44uB,cAEZ54uB,KAAKszD,OAAO,sBACZtzD,KAAK44uB,aAAe,IAAIM,IAAYl5uB,MACpCA,KAAK44uB,aAAatlrB,OAAO,aAActzD,KAAKszD,OAAO,qBACnDtzD,KAAK44uB,aAAal9nB,sBAG1By9nB,kBACI,IAAIvsuB,GAEAk0sB,eAAgBA,GAChB9H,KACJ,YAAKw/B,uBAAuB13B,EAAes4B,OAAS,SAAShtuB,GACzDQ,EAAQR,IAELQ,EAEXysuB,gBAAgBjtuB,EAAMktuB,GAClB,IACIx4B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAey4B,OAAQ,CAC/CntuB,KAAMA,EACNktuB,kBAAmBA,IAG3BjI,iBACI,OAAOrxuB,KAAKszD,OAAO,aAAetzD,KAAKszD,OAAO,YAElDo4qB,uBACI1ruB,KAAK8vuB,mBAET0J,gBAAgBvjtB,GACZ,OAAOA,EAAQvV,IAAIgW,MACXhZ,OAAUgZ,EAAO21sB,aACV31sB,EAAO21sB,aACP3utB,SAAUgZ,EAAOvkB,KACjBukB,EAAOvkB,IAEP,MAEZ2U,OAAO3U,MAAOuL,OAAUvL,IAE/B26tB,oBAAoBh7oB,GAChB,IAAIx0E,EAAOtd,KAAKszD,OAAOw+B,GACvB,OAAOx0E,MAAQqzE,OAAcrzE,GAEjCm8tB,uBAAuBxjtB,GACdj2B,KAAK05uB,4BACN15uB,KAAK25uB,mCAET,IAAI/prB,EAAY,CACZ35B,QAASA,EACT2jtB,SAAS,GAEb,YAAKF,2BAA2B9prB,GACzBA,EAAUgqrB,QAErBC,oBAAoB/npB,GAChB,IAAIx0E,EAAOtd,KAAKszD,OAAOw+B,GACvB,SAAIt5E,OAAW8E,GACJA,EAEJA,MAAQ8yE,OAAc9yE,GAEjCwytB,mBACI,IAAI9vuB,KAAKutuB,yBAA4BvtuB,KAAK85uB,iBAG1C,KAKIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAXAx5B,eAAgBA,EAChBsD,oBAAqBA,EACrBm2B,oBAAqBA,GACrBvhC,KASA5ssB,EAAO,CACPouuB,eAAgBx6uB,KAAK04uB,cAAgB14uB,KAAK04uB,aAAaxzI,WACvDu1I,eAAgBz6uB,KAAK44uB,cAAgB54uB,KAAK44uB,aAAa1zI,WACvDw1I,iBAAkB,CACdr+mB,OAAQr8H,KAAK8suB,oBAAoB,iBACjC6N,OAAQ36uB,KAAK65uB,oBAAoB,iBACjCe,cAAe56uB,KAAK8suB,oBAAoB,wBACxC+N,cAAe76uB,KAAK65uB,oBAAoB,wBACxCiB,UAAW96uB,KAAK8suB,oBAAoB,oBACpCiO,UAAW/6uB,KAAK65uB,oBAAoB,oBACpCmB,SAAUh7uB,KAAK8suB,oBAAoB,mBACnC/+tB,SAAU/N,KAAK65uB,oBAAoB,mBACnCoB,aAAcj7uB,KAAK8suB,oBAAoB,uBACvCoO,aAAcl7uB,KAAK65uB,oBAAoB,uBACvCsB,UAAWn7uB,KAAK8suB,oBAAoB,oBACpCsO,UAAWp7uB,KAAK65uB,oBAAoB,oBACpCjgb,QAAS55T,KAAK8suB,oBAAoB,kBAClCuO,QAASr7uB,KAAK65uB,oBAAoB,kBAClCyB,QAASt7uB,KAAK8suB,oBAAoB,kBAClCyO,QAASv7uB,KAAK65uB,oBAAoB,kBAClC2B,SAAUx7uB,KAAK8suB,oBAAoB,sBACnC2O,SAAUz7uB,KAAK65uB,oBAAoB,sBACnC6B,QAAS17uB,KAAK8suB,oBAAoB,kBAClC6O,QAAS37uB,KAAK65uB,oBAAoB,kBAClC+B,OAAQ57uB,KAAK8suB,oBAAoB,iBACjC+O,OAAQ77uB,KAAK65uB,oBAAoB,iBACjCl0qB,SAAU3lE,KAAK8suB,oBAAoB,mBACnC/9f,SAAU/uO,KAAK65uB,oBAAoB,mBACnCn0qB,UAAW1lE,KAAK8suB,oBAAoB,oBACpCx5lB,UAAWtzI,KAAK65uB,oBAAoB,oBACpCiC,aAAc97uB,KAAK8suB,oBAAoB,uBACvCiP,aAAc/7uB,KAAK65uB,oBAAoB,uBACvC30I,SAAUllmB,KAAK8suB,oBAAoB,mBACnC7wB,SAAUj8sB,KAAK65uB,oBAAoB,mBACnCmC,YAAa3B,EAA0Br6uB,KAAK8suB,oBAAoB,+BAChE34qB,YAAammrB,EAA0Bt6uB,KAAK65uB,oBAAoB,+BAChEoC,iBAAkB5B,IAA4BC,GAA2Bt6uB,KAAK8suB,oBAAoB,0BAClGoP,iBAAkB7B,IAA4BC,GAA2Bt6uB,KAAK65uB,oBAAoB,2BAEtGsC,iBAAkB,CACd9/mB,OAAQr8H,KAAK8suB,oBAAoB,iBACjC6N,OAAQ36uB,KAAK65uB,oBAAoB,iBACjCe,cAAe56uB,KAAK8suB,oBAAoB,wBACxC+N,cAAe76uB,KAAK65uB,oBAAoB,wBACxCiB,UAAW96uB,KAAK8suB,oBAAoB,oBACpCiO,UAAW/6uB,KAAK65uB,oBAAoB,oBACpCmB,SAAUh7uB,KAAK8suB,oBAAoB,mBACnC/+tB,SAAU/N,KAAK65uB,oBAAoB,mBACnCoB,aAAcj7uB,KAAK8suB,oBAAoB,uBACvCoO,aAAcl7uB,KAAK65uB,oBAAoB,uBACvCsB,UAAWn7uB,KAAK8suB,oBAAoB,oBACpCsO,UAAWp7uB,KAAK65uB,oBAAoB,oBACpCuC,QAASp8uB,KAAK8suB,oBAAoB,kBAClCuP,QAASr8uB,KAAK65uB,oBAAoB,kBAClCyC,kBAAmBt8uB,KAAK8suB,oBAAoB,4BAC5CyP,kBAAmBv8uB,KAAK65uB,oBAAoB,4BAC5C2C,MAAOx8uB,KAAK8suB,oBAAoB,gBAChC2P,MAAOz8uB,KAAK65uB,oBAAoB,gBAChC6C,gBAAiB18uB,KAAK8suB,oBAAoB,0BAC1C6P,gBAAiB38uB,KAAK65uB,oBAAoB,0BAC1C9ic,UAAW/2S,KAAK8suB,oBAAoB,oBACpC8P,UAAW58uB,KAAK65uB,oBAAoB,oBACpCyB,QAASt7uB,KAAK8suB,oBAAoB,kBAClCyO,QAASv7uB,KAAK65uB,oBAAoB,kBAClCgD,eAAgB9C,EAAmB/5uB,KAAK8suB,oBAAoB,wBAA0B,SAASx0tB,GAC3F,IAAIwkuB,GAAW/C,EAAiBzhuB,GAChC,OAAOtY,KAAK+8uB,wBAAwBD,KACtC7zrB,KAAKjpD,MACPg9uB,eAAgBhD,EAAmBh6uB,KAAK65uB,oBAAoB,wBAA0B,SAASvhuB,EAAK1L,IAChG,OAAQA,SACCw3sB,EAAoB64B,SACrBrwuB,GAAQ,WACR,WACCw3sB,EAAoB84B,WACrBtwuB,GAAQ,aAEhBotuB,EAAiB1huB,EAAK1L,KACxBq8C,KAAKjpD,MACPm9uB,oBAAqBlD,EAAwBj6uB,KAAK8suB,oBAAoB,2BAA6B,SAASx0tB,GACxG,IAAI8kuB,GAAUnD,EAAsB3huB,GACpC,OAAOtY,KAAKq9uB,wBAAwBD,KACtCn0rB,KAAKjpD,MACPs9uB,oBAAqBpD,EAAwBl6uB,KAAK65uB,oBAAoB,2BAA6B,SAASvhuB,EAAK1L,IAC7G,OAAQA,SACC2tuB,EAAoBgD,MACrB3wuB,GAAQ,QACR,WACC2tuB,EAAoBiD,iBACrB5wuB,GAAQ,mBACR,WACC2tuB,EAAoBkD,eACrB7wuB,GAAQ,iBACR,WACC2tuB,EAAoBmD,KACrB9wuB,GAAQ,OAEhBstuB,EAAsB5huB,EAAK1L,KAC7Bq8C,KAAKjpD,MACP29uB,kBAAmBxD,EAAsBn6uB,KAAK8suB,oBAAoB,yBAA2B,SAASx0tB,GAClG,IAAI8kuB,GAAUjD,EAAoB7huB,GAClC,OAAOtY,KAAKq9uB,wBAAwBD,KACtCn0rB,KAAKjpD,MACP49uB,kBAAmBxD,EAAsBp6uB,KAAK65uB,oBAAoB,yBAA2B,SAASvhuB,EAAK1L,IACvG,OAAQA,SACC2tuB,EAAoBgD,MACrB3wuB,GAAQ,QACR,WACC2tuB,EAAoBiD,iBACrB5wuB,GAAQ,mBACR,WACC2tuB,EAAoBkD,eACrB7wuB,GAAQ,iBACR,WACC2tuB,EAAoBmD,KACrB9wuB,GAAQ,OAEhBwtuB,EAAoB9huB,EAAK1L,KAC3Bq8C,KAAKjpD,OAEX69uB,iBAAkB79uB,KAAK89uB,mCAEvB1xuB,EAAKouuB,gBACLx6uB,KAAKw4uB,uBAAuB13B,EAAei9B,aAAc3xuB,IAGjEq/tB,wBAAwBx1sB,EAASm2sB,GAC7B,IAAIrztB,EAAO/Y,KAAKw5uB,gBAAgBvjtB,GAC5B+ntB,EAAch+uB,KAAKy5uB,uBAAuBxjtB,GAC9Cj2B,KAAKi+uB,eAAelluB,EAAMiluB,EAAa5R,GAE3C6R,eAAeC,EAAUF,EAAa5R,GAClCpsuB,KAAKivuB,iBAAiBkP,cAAcD,EAAU,KAC1C,IAAI1D,EACAC,EACJ,OAAIz6uB,KAAK04uB,cAAgBtM,IACrBoO,EAAiBx6uB,KAAK04uB,aAAaxzI,YAEnCllmB,KAAK44uB,cAAgBxM,IACrBqO,EAAiBz6uB,KAAK44uB,aAAa1zI,YAEhC,CACHs1I,eAAgBA,EAChBC,eAAgBA,IAErBuD,GAAeh+uB,KAAK89uB,kCAAmC1R,GAE9D2Q,wBAAwBD,GACpB,IACI14B,oBAAqBA,GACrBpL,KACJ,MACS,aADD8jC,EAEO14B,EAAoB64B,SAEpB74B,EAAoB84B,WAGvCG,wBAAwBD,GACpB,IACI7C,oBAAqBA,GACrBvhC,KACJ,OAAQokC,OACC,QACD,OAAO7C,EAAoBgD,UAC1B,mBACD,OAAOhD,EAAoBiD,qBAC1B,iBACD,OAAOjD,EAAoBkD,uBAE3B,OAAOlD,EAAoBmD,MAGvCI,kCACI,IACIM,eAAgBA,EAChBC,sBAAuBA,GACvBrlC,KACAslC,EAAyBt+uB,KAAKszD,OAAO,qBAAuB,MAC5DirrB,EAAaD,EAAuB7yuB,MAAQ6yuB,EAC5CrhtB,EAAa,GACjB,GAAI,YAAyB,SAAWshtB,IAAev+uB,KAAKw+uB,yBAA0B,CAQlF,OALQvhtB,EAAWxxB,KADV,SADD8yuB,EAEkBH,EAAe18sB,KAGf08sB,EAAeK,SAEjCH,EAAuBt6qB,iBACtB,WACD/mC,EAAW+mC,YAAcq6qB,EAAsBK,SAC/C,UACC,aACDzhtB,EAAW+mC,YAAcq6qB,EAAsBM,YAEnD3+uB,KAAKszD,OAAO,6BAA+BtzD,KAAKszD,OAAO,6BACvDr2B,EAAW2htB,kBAAmB,GAGtC3htB,SAAW4htB,kBAAoB7+uB,KAAKszD,OAAO,yBACpCr2B,EAEXuhtB,wBACI,OAAOx+uB,KAAKszD,OAAO,kBAAoBtzD,KAAKszD,OAAO,kBAEvDwrrB,kBAAkBxrrB,GACd,IACIgiqB,aAAcA,GACdtc,KACJ,OAAQ1lpB,OACC,aACD,OAAOgiqB,EAAaC,eACnB,WACD,OAAOD,EAAa3O,mBAEpB,OAAO2O,EAAaE,UAGhCskB,iBACI,OAAO95uB,KAAK04uB,cAAgB14uB,KAAK04uB,aAAa52lB,YAAc9hJ,KAAK44uB,cAAgB54uB,KAAK44uB,aAAa92lB,WAEvG+2lB,sBACI74uB,KAAKutuB,0BAETyL,oBACIh5uB,KAAKutuB,wBAA0BhztB,KAAKC,IAAIxa,KAAKutuB,wBAA0B,EAAG,GACrEvtuB,KAAKutuB,yBACNvtuB,KAAK8vuB,mBAGboI,mBACI,OAAOl4uB,KAAKszD,OAAO,iBAAmB,GAE1Cu+qB,oBACI,OAAO3hB,cAAgClwtB,KAAKszD,OAAO,mBAEvDyrrB,yBACI/+uB,KAAKivuB,iBAAiB+P,wBACtBh/uB,KAAKi4uB,oBAAoBj4uB,KAAKk4uB,oBAElCD,oBAAoBgH,EAAcC,GAC1Bt2uB,MAAM8B,QAAQw0uB,IACdl/uB,KAAKivuB,iBAAiBkQ,mBAAmBD,EAAiBx+tB,IAAI/J,GAAKA,EAAElL,OAErE7C,MAAM8B,QAAQu0uB,IACdj/uB,KAAKivuB,iBAAiBmQ,gBAAgBH,EAAav+tB,IAAI/J,IACnD,IAAI84L,EAAiB94L,EAAEm4C,UAAY9uD,KAAKszD,OAAO,uBAC3CxE,EAAW2gJ,GAAkBzvM,KAAKolG,aAAaqqG,GAC/C4viB,EAAwB1ouB,EAAE2ouB,iBAAmBt/uB,KAAKszD,OAAO,8BACzDgsrB,EAAkBD,GAAyBr/uB,KAAKolG,aAAai6oB,GACjE,MAAO,CACH7wnB,SAAU73G,EAAE63G,SACZ/iH,KAAMkL,EAAElL,KACR8zuB,SAAU5ouB,EAAE4ouB,SACZ9tmB,MAAO96H,EAAE86H,MACT+tmB,OAAQ7ouB,EAAE8ouB,mBACVC,cAAe/ouB,EAAEgpuB,0BACjBC,QAASjpuB,EAAEkpuB,oBACXC,OAAQnpuB,EAAEopuB,mBACVC,SAAUrpuB,EAAEspuB,qBACZC,UAAWvpuB,EAAEwpuB,sBACbC,aAAczpuB,EAAEypuB,aAChBC,cAAe1puB,EAAE0puB,cACjBC,0BAA2B3puB,EAAE2puB,0BAC7Bv3lB,SAAUpyI,EAAEoyI,SACZ4F,UAAWh4I,EAAEg4I,UACbD,SAAU/3I,EAAE+3I,SACZD,UAAW93I,EAAE83I,UACb8xlB,YAAa5puB,EAAE4puB,YACfC,YAAa7puB,EAAE6puB,YACfC,cAAe9puB,EAAE8puB,cACjBC,SAAU/puB,EAAE+puB,SACZC,QAAShquB,EAAEgquB,QACXnwa,UAAW75T,EAAE65T,UACbmW,WAAYhwU,EAAEgwU,WACdi6Z,gBAAiBjquB,EAAEiquB,gBACnBC,eAAgBlquB,EAAEkquB,eAClBC,UAAWnquB,EAAEmquB,UACbC,SAAUpquB,EAAEoquB,SACZpsR,WAAYh+c,EAAEg+c,WACdC,YAAaj+c,EAAEi+c,YACfosR,iBAAkBrquB,EAAEqquB,kBAAoBrquB,EAAEqquB,iBAAiBtguB,IAAIygK,IAAO,CAClEvwJ,EAAGuwJ,EAAGvwJ,EACN4qC,EAAG2lH,EAAG3lH,KAEV4wB,eAAgBt9B,GAAa,EAAC56B,EAAWtX,KACrCkyC,EAASmD,OAAO,CACZt7B,MAAO32B,KAAKihvB,yBAAyBrkuB,GACrCsX,UAAWqlD,MAAiBne,MAAElnC,QAGtCgttB,sBAAuB5B,GAAoB,EAACprtB,EAAWtX,KACnD0iuB,EAAgBrtrB,OAAO,CACnBt7B,MAAO32B,KAAKihvB,yBAAyBrkuB,GACrCsX,UAAWqlD,MAAiBne,MAAElnC,QAGtCittB,gBAAiBryrB,GAAa56B,MAC1BknC,QAAElnC,GAAW8uD,UAEjBo+pB,aAAczquB,EAAEyquB,aAChBC,YAAa1quB,EAAE0quB,YACfC,cAAe3quB,EAAE2quB,cACjBC,eAAgB5quB,EAAE4quB,eAClBC,oBAAqB7quB,EAAE6quB,wBAKvCC,eACI,IAAIC,EAAY1hvB,KAAKm7D,WAAW2iB,QAAQ,gBACxC,OAAO4jqB,EAAUj9uB,OAASi9uB,KAAYtmrB,MAAE,QAE5Cu6qB,oBAAoBrnlB,GACZtuJ,KAAKwtuB,qBAAuB,IAGhCxtuB,KAAK2hvB,wBAAwBrzlB,GAC7BptH,GACIlhC,KAAK4hvB,YAAc5hvB,KAAKm7D,WAAWpuD,SACnC/M,KAAK6hvB,sBAAwB7hvB,KAAKm7D,WAAWY,IAAI,UACjD/7D,KAAK8hvB,kBAAoB3shB,GAAkBtG,iBAC3C7uN,KAAKm7D,WAAWY,IAAI,SAAU/7D,KAAK8hvB,mBACnC9hvB,KAAKm7D,WAAW0P,SAAS7qE,KAAKyhvB,kBAE9BzhvB,KAAKm7D,WAAW0P,SAAS7qE,KAAK4hvB,aAC1B5hvB,KAAK8hvB,oBACL3shB,GAAkBn1N,KAAK8hvB,mBACvB9hvB,KAAKm7D,WAAWY,IAAI,SAAU/7D,KAAK6hvB,yBAG3C7hvB,KAAKm7D,WAAW+oC,YAvmCO,wBAumC+BoqD,GACtDtuJ,KAAK6vuB,wBACD7vuB,KAAK0uuB,WACL1uuB,KAAK0uuB,SAASrgoB,UACdruG,KAAK0uuB,SAASv9f,OAAO79K,OAAO,yBAA0Bg7F,IAEtDtuJ,KAAK8uuB,kBACL9uuB,KAAK8uuB,iBAAiBzgoB,UAEtBruG,KAAK+tuB,iBACL/tuB,KAAKuxuB,iCAGboQ,wBAAwBI,GACpB,IAAI9/uB,KAASk8D,SACTl8D,EAAO6iE,OAAS7iE,EAAOs5D,KAAOwmrB,IAAc/hvB,KAAKgivB,wBAGjDD,EACA/hvB,KAAKiivB,oCAELjivB,KAAKkivB,sCAETlivB,KAAKmivB,qBAAqBJ,IAE9BI,qBAAqBv4rB,GACjB,IAAI3nD,KAASk8D,SACT78D,EAAWW,EAAO6iE,KAAKxjE,SACvBY,EAAOD,EAAO6iE,KAAKxjE,SAASY,KAC5B0nD,EACAjsC,EAASykuB,kBACLlgvB,EAAKkgvB,oBACFzkuB,EAAS0kuB,qBACZngvB,EAAKmgvB,uBACEngvB,EAAKogvB,wBACZpgvB,EAAKogvB,0BACEpgvB,EAAKqgvB,qBACZrgvB,EAAKqgvB,sBAENtruB,EAAauruB,eAChBlhvB,EAASkhvB,iBACNvruB,EAAawruB,oBAChBnhvB,EAASmhvB,sBACNxruB,EAAayruB,qBAChBphvB,EAASohvB,uBACFphvB,EAASqhvB,kBAChBrhvB,EAASqhvB,mBAGjBX,sBACI,IAAI1gvB,GAAW68D,WAAY78D,SAG3B,SAFwBA,EAASshvB,mBAAqBthvB,EAASuhvB,qBAAuBvhvB,EAASwhvB,2BACpDxhvB,EAASY,OAAQZ,EAASyhvB,oBAGzEd,oCACI,IAAI3gvB,KAAW68D,SAAY78D,SACvBoG,EAAU1H,KAAKgjvB,iCAAiC/5rB,KAAKjpD,MACzDyuD,QAAgBntD,EAAU6ruB,IAA8BzluB,GACxD+mD,QAAgBntD,EAAU8ruB,IAAiC1luB,GAC3D+mD,QAAgBntD,EAAU+ruB,IAAqC3luB,GAC/D+mD,QAAgBntD,EAAUgsuB,IAAkC5luB,GAEhEw6uB,sCACI,IAAI5gvB,KAAW68D,SAAY78D,SAC3BmtD,SAAiBntD,EAAU6ruB,KAC3B1+qB,SAAiBntD,EAAU8ruB,KAC3B3+qB,SAAiBntD,EAAU+ruB,KAC3B5+qB,SAAiBntD,EAAUgsuB,KAE/B0V,mCACShjvB,KAAKgivB,wBACNhivB,KAAKkivB,sCACLlivB,KAAKszD,OAAO,cAAc,IAGlC2vrB,iCAAiCC,GAC7B,IACIpiC,eAAgBA,GAChB9H,KACJh5sB,KAAKwtuB,uBACLxtuB,KAAKw4uB,uBAAuB13B,EAAe2E,WAAYy9B,GACvDljvB,KAAKwtuB,uBAETqI,mBAAmBjltB,EAAG4qC,EAAGw6I,GACjBh2M,KAAK4+sB,cACL5+sB,KAAK4+sB,aAAajtf,MAAM/gM,EAAG4qC,EAAGw6I,GAGtC+/hB,qBACQ/1uB,KAAK4+sB,cACL5+sB,KAAK4+sB,aAAahtf,QAG1BqkhB,sBAAsBrltB,EAAG4qC,EAAGoxK,EAAMp+G,EAAU9oH,GACpC1F,KAAKmvuB,iBACLnvuB,KAAKmvuB,gBAAgBx9gB,MAAM/gM,EAAG4qC,EAAGoxK,EAAMp+G,EAAU9oH,GAGzDywuB,wBACQn2uB,KAAKmvuB,iBACLnvuB,KAAKmvuB,gBAAgBv9gB,QAG7BuxhB,qBAAqBv2uB,GACjB,IACI6otB,YAAaA,GACbzc,KACJ,OAAQpssB,OACC,KAKkBgptB,QAEnB,OAAOH,EAAYC,GANAA,IAClB,KACD,OAAOD,EAAYE,OAClB,KACD,OAAOF,EAAYG,IAK/BiQ,uBACI,IACI/kB,eAAgBA,GAChB9H,KACAxqnB,EAAWxuF,KAAKqxuB,iBACpBrxuB,KAAKw4uB,uBAAuB13B,EAAesiC,eAAgB50pB,GAE/DoppB,wBACI,GAAI53uB,KAAKszD,OAAO,mBAAoB,CAChCtzD,KAAKqjvB,6BACL,IAAI1mS,EAAY38c,KAAKszD,OAAO,mBAC5B,IAAKqpZ,EACD,OAEJ,IACImkQ,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe2F,UAAW9pQ,OACnD,CACH,IAAI2mS,EAAatjvB,KAAKszD,OAAO,oBAAsBtzD,KAAKszD,OAAO,aAC/D,IAAKgwrB,EACD,OAEJ,IACIxiC,eAAgByiC,GAChBvqC,KACJh5sB,KAAKw4uB,uBAAuB+K,EAAgB98B,UAAW68B,IAG/DD,6BACI,IAAIG,EAAiBxjvB,KAAKszD,OAAO,mBACjC,GAAK1qD,MAAM8B,QAAQ84uB,GAGnB,KACI1iC,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe2iC,eAAgBD,IAE/D1L,uBACI,IACIh3B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAeuU,eAAgBr1tB,KAAK8+uB,kBAAkB9+uB,KAAKszD,OAAO,kBAElGukrB,yBACI,IACI/2B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe+E,iBAAkB7ltB,KAAKszD,OAAO,eAE7EykrB,yBACI,IAAImL,EAAaljvB,KAAKszD,OAAO,cAC7BtzD,KAAKijvB,iCAAiCC,GACtCljvB,KAAK21uB,oBAAoBuN,GAE7BzL,uBACI,IACI32B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAeiF,SAAU/ltB,KAAKszD,OAAO,aAErEokrB,yBACI,IACI52B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAemF,WAAYjmtB,KAAKszD,OAAO,eAEvEqkrB,uBACI,GAAI33uB,KAAKszD,OAAO,kBAAmB,CAC/BtzD,KAAK0jvB,4BACL,IAAIx9B,EAAWlmtB,KAAKszD,OAAO,kBAC3B,IAAK4ypB,EACD,OAEJ,IACIpF,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAeqF,SAAUD,OAClD,CACH,IAAIy9B,EAAY3jvB,KAAKszD,OAAO,mBAAqBtzD,KAAKszD,OAAO,YAC7D,IAAKqwrB,EACD,OAEJ,IACI7iC,eAAgB8iC,GAChB5qC,KACJh5sB,KAAKw4uB,uBAAuBoL,EAAiBz9B,SAAUw9B,IAG/DD,4BACI,IAAIG,EAAgB7jvB,KAAKszD,OAAO,kBAChC,GAAK1qD,MAAM8B,QAAQm5uB,GAGnB,KACI/iC,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAegjC,cAAeD,IAE9D5M,mBACI,IACI8M,2BAA4BA,GAC5B/qC,KACA3kpB,EAAQr0D,KAAKgkvB,gBACbhkvB,KAAKikvB,aAAe5vrB,IACpBr0D,KAAKikvB,WAAa5vrB,EAClB0vrB,EAA2BG,UAAY7vrB,GAG/C2vrB,gBACI,IACIvuB,YAAaA,GACbzc,KACA3kpB,EAAQ,GACZA,SAAMohqB,EAAYC,IAAM11mB,UAA2B,oBACnD3rD,EAAMohqB,EAAYE,IAAM31mB,UAA2B,oBACnD3rD,EAAMohqB,EAAYG,IAAM51mB,UAA2B,oBAC5C3rD,EAEX6irB,2BACI,IACI6M,2BAA4BA,GAC5B/qC,KACJ+qC,EAA2BI,WAAa,SAASv3uB,GAC7C,OAAOi7K,UAA0Bj7K,IAGzC4quB,wBACI,IACI12B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe6E,UAAW3ltB,KAAKmjvB,qBAAqBnjvB,KAAKszD,OAAO,eAEhG6jrB,oBACI,IACIr2B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAesjC,MAAOpkvB,KAAKmjvB,qBAAqBnjvB,KAAKszD,OAAO,WAE5F+jrB,uBACI,IAAI7ioB,EAAWx0G,KAAKszD,OAAO,YAC3B,GAAKkhD,GAAaA,EAAS50C,OAAU40C,EAAS10C,OAG9C,KACIghpB,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAesF,SAAU5xmB,IAEzD4ioB,4BACI,IAAIiN,EAAgBrkvB,KAAKszD,OAAO,kBAChC,GAAK1qD,MAAM8B,QAAQ25uB,GAGnB,KACIvjC,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAewjC,cAAeD,IAE9D/M,8BACI,IACIx2B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAewF,cAAe,mBAAqBhzpB,OAAO,oBAE1FikrB,wBACI,IACIz2B,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe0F,UAAWxmtB,KAAKszD,OAAO,cAEtE0jrB,oBACI,IACI+M,2BAA4BA,GAC5B/qC,KACA1njB,EAAQtxJ,KAAKukvB,iBACbvkvB,KAAKwkvB,cAAgBlzlB,IACrBtxJ,KAAKwkvB,YAAclzlB,EACnByylB,EAA2BU,WAAanzlB,GAGhDizlB,iBACI,IACIG,WAAYA,GACZ1rC,KACA1njB,EAAQ,GACZA,SAAMozlB,EAAWC,MAAQ3koB,UAA2B,uBACpDsxC,EAAMozlB,EAAWE,WAAa5koB,UAA2B,4BACzDsxC,EAAMozlB,EAAWG,SAAW7koB,UAA2B,0BACvDsxC,EAAMozlB,EAAWI,OAAS9koB,UAA2B,wBACrDsxC,EAAMozlB,EAAWK,UAAY/koB,UAA2B,2BACxDsxC,EAAMozlB,EAAWM,SAAWhloB,UAA2B,0BACvDsxC,EAAMozlB,EAAWO,OAASjloB,UAA2B,wBACrDsxC,EAAMozlB,EAAWQ,UAAYlloB,UAA2B,2BACxDsxC,EAAMozlB,EAAWS,SAAWnloB,UAA2B,0BACvDsxC,EAAMozlB,EAAWU,SAAWploB,UAA2B,0BACvDsxC,EAAMozlB,EAAWW,MAAQrloB,UAA2B,uBACpDsxC,EAAMozlB,EAAWY,WAAatloB,UAA2B,4BACzDsxC,EAAMozlB,EAAWa,SAAWvloB,UAA2B,0BACvDsxC,EAAMozlB,EAAWc,YAAcxloB,UAA2B,6BAC1DsxC,EAAMozlB,EAAWe,WAAazloB,UAA2B,4BACzDsxC,EAAMozlB,EAAWgB,aAAe1loB,UAA2B,8BAC3DsxC,EAAMozlB,EAAWiB,gBAAkB3loB,UAA2B,iCAC9DsxC,EAAMozlB,EAAWkB,SAAW5loB,UAA2B,0BACvDsxC,EAAMozlB,EAAWmB,UAAY7loB,UAA2B,2BACxDsxC,EAAMozlB,EAAWoB,YAAc9loB,UAA2B,6BAC1DsxC,EAAMozlB,EAAWqB,mBAAqB/loB,UAA2B,oCACjEsxC,EAAMozlB,EAAWsB,UAAYhmoB,UAA2B,2BACxDsxC,EAAMozlB,EAAWuB,mBAAqBjmoB,UAA2B,oCACjEsxC,EAAMozlB,EAAWwB,aAAelmoB,UAA2B,8BAC3DsxC,EAAMozlB,EAAWyB,aAAenmoB,UAA2B,8BAC3DsxC,EAAMozlB,EAAW0B,MAAQpmoB,UAA2B,uBACpDsxC,EAAMozlB,EAAW2B,UAAYrmoB,UAA2B,2BACxDsxC,EAAMozlB,EAAW4B,UAAYtmoB,UAA2B,2BACxDsxC,EAAMozlB,EAAW6B,iBAAmBvmoB,UAA2B,kCAC/DsxC,EAAMozlB,EAAW8B,WAAaxmoB,UAA2B,4BACzDsxC,EAAMozlB,EAAW+B,iBAAmBzmoB,UAA2B,kCAC/DsxC,EAAMozlB,EAAWgC,OAAS1moB,UAA2B,wBACrDsxC,EAAMozlB,EAAWiC,YAAc3moB,UAA2B,6BAC1DsxC,EAAMozlB,EAAWkC,SAAW5moB,UAA2B,0BACvDsxC,EAAMozlB,EAAWmC,OAAS7moB,UAA2B,wBACrDsxC,EAAMozlB,EAAWoC,WAAa9moB,UAA2B,4BACzDsxC,EAAMozlB,EAAWqC,IAAM/moB,UAA2B,qBAClDsxC,EAAMozlB,EAAWsC,iBAAmBhnoB,UAA2B,kCAC/DsxC,EAAMozlB,EAAWuC,WAAajnoB,UAA2B,uCACzDsxC,EAAMozlB,EAAWwC,mBAAqBlnoB,UAA2B,oCACjEsxC,EAAMozlB,EAAWyC,qBAAuBnnoB,UAA2B,sCACnEsxC,EAAMozlB,EAAW0C,MAAQpnoB,UAA2B,kCACpDsxC,EAAMozlB,EAAW2C,qBAAuBrnoB,UAA2B,sCACnEsxC,EAAMozlB,EAAW4C,oBAAsBtnoB,UAA2B,qCAClEsxC,EAAMozlB,EAAW6C,sBAAwBvnoB,UAA2B,uCAC7DsxC,EAEXullB,kCACI,IACI2Q,aAAcA,GACdxuC,KACJwuC,EAAa9mvB,iBAAmB,CAAC8G,EAASC,EAAWC,KACjD+mD,QAAgBjnD,EAASC,EAAWC,IAExC8/uB,EAAa7mvB,oBAAsB,CAAC6G,EAASC,EAAWC,KACpD+mD,SAAiBjnD,EAASC,EAAWC,IAG7CovuB,+BACQ92uB,KAAKszD,OAAO,gCACZtzD,KAAKivuB,iBAAiBwY,0BAA0BznvB,KAAKszD,OAAO,gCAE5DtzD,KAAKszD,OAAO,oCACZtzD,KAAKivuB,iBAAiByY,8BAA8B1nvB,KAAKszD,OAAO,oCAEpEtzD,KAAKivuB,iBAAiB0Y,8BAA8B,CAChDC,WAAY5nvB,KAAK+8uB,wBAAwB/8uB,KAAKszD,OAAO,4CACrDu0rB,gBAAiB7nvB,KAAKq9uB,wBAAwBr9uB,KAAKszD,OAAO,6CAC1Dw0rB,cAAe9nvB,KAAKq9uB,wBAAwBr9uB,KAAKszD,OAAO,6CAE5DtzD,KAAKivuB,iBAAiB8Y,uBAAuB,CACzCC,cAAehovB,KAAKszD,OAAO,uCAC3B20rB,cAAejovB,KAAKszD,OAAO,uCAC3B40rB,eAAgBlovB,KAAKszD,OAAO,wCAC5B60rB,eAAgBnovB,KAAKszD,OAAO,0CAGpCyjrB,yBACI/2uB,KAAKivuB,iBAAiBmZ,uBAAuB,CACzCC,SAAUrovB,KAAKszD,OAAO,yBACtBg1rB,oBAAqBtovB,KAAKszD,OAAO,yBACjCi1rB,YAAavovB,KAAKszD,OAAO,4BACzBk1rB,gBAAiBxovB,KAAKszD,OAAO,gCAC7Bm1rB,iBAAkBzovB,KAAKszD,OAAO,iCAC9Bo1rB,sBAAuB1ovB,KAAKszD,OAAO,sCACnCq1rB,gBAAiB3ovB,KAAKszD,OAAO,gCAC7Bs1rB,oBAAqB5ovB,KAAKszD,OAAO,oCACjCu1rB,YAAa7ovB,KAAKszD,OAAO,4BACzBw1rB,UAAW9ovB,KAAKszD,OAAO,4BAG/By1rB,eACI,IACIjoC,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe4F,aAE/CsiC,aACI,IACIloC,eAAgBA,GAChB9H,KACJh5sB,KAAKw4uB,uBAAuB13B,EAAe6F,YAE/CtqnB,QACIr8F,KAAKgwuB,gBAETztb,SACI,OAAOviT,KAAKm5uB,kBAEhBxskB,SAASxsE,EAAQz6F,GACb,IAAI++B,EAAUzkC,KAAKipvB,2BAA2B9opB,GAC9CngG,KAAKw4uB,uBAAuB/zsB,EAAS/+B,GAEzCujvB,2BAA2B9opB,GACvB,IACI2gnB,eAAgBA,GAChB9H,KACJ,OAAQ74mB,OACC,MACD,OAAO2gnB,EAAeK,cACrB,MACD,OAAOL,EAAeO,kBAEtB,OAAOP,EAAeG,WAGlCioC,OAAO98uB,EAAM+8uB,GACTnpvB,KAAKq5uB,gBAAgBjtuB,EAAM+8uB,GAC3BnpvB,KAAKq0uB,yBAET+U,gBACIppvB,KAAKivuB,kBAAoBjvuB,KAAKivuB,iBAAiBoa,iBAC3CrpvB,KAAK0uuB,WACL1uuB,KAAK0uuB,SAAS3a,iBACd/ztB,KAAK0uuB,SAAS9yM,eACd57hB,KAAK0uuB,SAAS3b,mBAGtBx+nB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC/F,UAAU,EACVmuX,UA5hDoB,EA6hDpBipQ,YAAY,EACZ0jC,aA7hDwB,WA8hDxBh7lB,YAAY,EACZw3jB,UAAU,EACVE,YAAY,EACZN,MAniDe,KAoiDf6jC,UApiDe,KAqiDfljC,gBAliD2B,WAmiD3BE,UAliDqB,UAmiDrB9sK,YAAY,EACZ3kgB,MAAO,CACH0nE,WAAY,KACZ6d,QAAS,KACTmvnB,oBAAgB,EAChBC,gBAAY,EACZC,eAAW,EACXC,mBAAe,EACfC,gBAAY,EACZC,SAAU,OACVC,SAAU,OACVC,kBAAc,EACdC,mBAAe,EACf9qP,eAAW,EACX+qP,cAAU,EACVC,aAAS,EACTC,eAAW,EACXC,gBAAY,EACZC,iBAAkB,eAClB3d,2BAAuB,EACvB4d,WAAY,OACZzL,iBAAiB,GAErB0L,MAAO,CACH/toB,WAAY,KACZ6d,QAAS,KACTmvnB,oBAAgB,EAChBC,gBAAY,EACZC,eAAW,EACXC,mBAAe,EACfC,gBAAY,EACZY,SAAU,OACVC,wBAAoB,EACpBC,OAAQ,KACRC,sBAAkB,EAClBC,gBAAY,EACZd,cAAU,EACVe,kBAAc,EACdC,qBAAiB,EACjBC,mBAAe,GAEnB9L,aAAc,GACdn4B,QAAS,CACLvuoB,WAAY,OACZyyqB,iBA5kDqB,EA6kDrBpZ,YAAY,GAEhBqZ,YAAa,CACTl8qB,SAAS,GAEbm8qB,eAAgB,CACZn8qB,SAAS,GAEbo8qB,YAAa,CACTp8qB,SAAS,GAEbgpe,YAAa,CACT1vhB,SAAS,GAEb+iuB,eAAgB,CACZ/iuB,SAAS,EACT2iuB,iBA3lD6B,EA4lD7BprrB,MA3lD4B,KA6lDhCmnpB,gBAAiB,CACbxuoB,WAAY,QAEhB8yqB,sBAAuB,CACnBlnC,kBAAmB,aACnBE,mBAAoB,OACpBE,iBAAkB,SAEtBv9J,QAAS,CACLx1Z,eAAe,EACfM,kBAAkB,EAClBD,sBAAsB,EACtBJ,uBAAuB,EACvBC,4BAA4B,EAC5BE,sBAAsB,EACtBD,0BAA0B,EAC1BK,kBAAkB,EAClBD,gBAAgB,GAEpBwwJ,OAAQ,CACJrvJ,SAAU,WAEdpuC,YAAa,KACbwmoB,eAAgB,KAChBt0nB,mBAAoB,KACpBu0nB,uBAAwB,KACxBC,sBAAuB,OAG/BnX,yBACQr0uB,KAAK01F,cACL11F,KAAKszD,OAAO,cAAc,GAGlCihrB,yBAAyBnouB,EAAM1G,EAAUqmuB,GACjC/ruB,KAAK44uB,cACL54uB,KAAK44uB,aAAaxltB,OAAOhnB,EAAM1G,EAAUqmuB,GAGjD0I,wBAAwBtiuB,EAAK/F,EAAM1G,EAAUqmuB,GACrC/ruB,KAAK44uB,cACL54uB,KAAK44uB,aAAanjtB,OAAOtjB,EAAK/F,EAAM1G,EAAUqmuB,GAGtD4I,wBAAwBxiuB,EAAK/F,EAAM1G,EAAUqmuB,GACrC/ruB,KAAK44uB,cACL54uB,KAAK44uB,aAAa/3uB,OAAOsR,EAAK/F,EAAM1G,EAAUqmuB,GAGtD8I,yBAAyBzouB,EAAM1G,EAAUqmuB,GACjC/ruB,KAAK04uB,cACL14uB,KAAK04uB,aAAatltB,OAAOhnB,EAAM1G,EAAUqmuB,GAGjDgJ,wBAAwB5iuB,EAAK/F,EAAM1G,EAAUqmuB,GACrC/ruB,KAAK04uB,cACL14uB,KAAK04uB,aAAajjtB,OAAOtjB,EAAK/F,EAAM1G,EAAUqmuB,GAGtDkJ,wBAAwB9iuB,EAAK/F,EAAM1G,EAAUqmuB,GACrC/ruB,KAAK04uB,cACL14uB,KAAK04uB,aAAa73uB,OAAOsR,EAAK/F,EAAM1G,EAAUqmuB,GAGtDoJ,yBACQn1uB,KAAK0uuB,UAAY1uuB,KAAK+vuB,uBACtB/vuB,KAAK0uuB,SAASl6lB,OACdx0I,KAAKyrvB,oBAAqB,GAGlCpW,uBACQr1uB,KAAK0uuB,UAAY1uuB,KAAKyrvB,qBACtBzrvB,KAAK0uuB,SAASj6lB,cACPz0I,KAAKyrvB,oBAGpBlW,uBACIv1uB,KAAKyyuB,mBAAoB,EACrBzyuB,KAAK8uuB,kBACD9uuB,KAAK+vuB,sBAAwB/vuB,KAAK8uuB,iBAAiBn8f,cACnD3yO,KAAK8uuB,iBAAiBt6lB,OACtBx0I,KAAK0rvB,iCAAkC,GAG3C1rvB,KAAK0uuB,UACD1uuB,KAAK+vuB,sBAAwB/vuB,KAAK0uuB,SAAS/7f,cAC3C3yO,KAAK0uuB,SAASl6lB,OACdx0I,KAAK2rvB,yBAA0B,GAI3ClW,qBACQz1uB,KAAK8uuB,kBACD9uuB,KAAK0rvB,kCACL1rvB,KAAK8uuB,iBAAiBr6lB,cACfz0I,KAAK0rvB,iCAGhB1rvB,KAAK0uuB,UACD1uuB,KAAK2rvB,0BACL3rvB,KAAK0uuB,SAASj6lB,cACPz0I,KAAK2rvB,yBAGpB3rvB,KAAKyyuB,mBAAoB,EAE7BvjS,yBACIlvc,KAAK2oR,iBAAmB3oR,KAAKo2F,sBAAsB,eAEvDw1pB,4BACI5rvB,KAAK6rvB,oBAAsB7rvB,KAAKo2F,sBAAsB,kBAE1Do6lB,gCACIxwrB,KAAK0oR,wBAA0B1oR,KAAKo2F,sBAAsB,sBAE9D01pB,oCACI9rvB,KAAK+rvB,4BAA8B/rvB,KAAKo2F,sBAAsB,0BAElEujpB,mCACI35uB,KAAK05uB,2BAA6B15uB,KAAKo2F,sBAAsB,yBAEjEs3oB,uBACI1tuB,KAAKkxuB,qBAAuBlxuB,KAAKo2F,sBAAsB,mBAE3DkgpB,sBAAsB0V,GACbhsvB,KAAK2oR,kBACN3oR,KAAKkvc,yBAETlvc,KAAK2oR,iBAAiB,CAClB/rQ,KAAM5c,KAAKihvB,yBAAyB+K,KAG5CxV,yBAAyBwV,GAChBhsvB,KAAK6rvB,qBACN7rvB,KAAK4rvB,4BAET5rvB,KAAK6rvB,oBAAoB,CACrBjvuB,KAAM5c,KAAKihvB,yBAAyB+K,KAG5CtV,uBAAuBuV,GACdjsvB,KAAK0oR,yBACN1oR,KAAKwwrB,gCAETxwrB,KAAK0oR,wBAAwB,CACzBr0N,MAAO43rB,EAAYvruB,IAAI1gB,KAAKihvB,yBAAyBh4rB,KAAKjpD,SAGlE42uB,2BAA2B7ipB,EAAWp7E,GAC7B3Y,KAAK+rvB,6BACN/rvB,KAAK8rvB,oCAET,IAAIl8rB,EAAY5vD,KAAKksvB,kCAAkCn4pB,EAAWp7E,GAClE3Y,KAAK+rvB,4BAA4Bn8rB,GACjCj3C,EAAKihuB,QAAUhqrB,EAAUgqrB,QAE7BuS,mBAAmBp4pB,GACf,IACIq4pB,sBAAuBA,GACvBpzC,KACJ,OAAQjlnB,QACCq4pB,EAAsBC,SACvB,MAAO,gBACND,EAAsBE,oBACvB,MAAO,2BACNF,EAAsBG,YACvB,MAAO,mBACNH,EAAsBI,gBACvB,MAAO,uBACNJ,EAAsBK,iBACvB,MAAO,wBACNL,EAAsBM,sBACvB,MAAO,6BACNN,EAAsBO,sBACvB,MAAO,6BACNP,EAAsBQ,gBACvB,MAAO,uBACNR,EAAsBS,0BACvB,MAAO,iCACNT,EAAsBU,oBACvB,MAAO,2BACNV,EAAsBW,YACvB,MAAO,mBACNX,EAAsBY,UACvB,MAAO,aAGnBd,kCAAkCn4pB,EAAWp7E,GACzC,IACIyzuB,sBAAuBA,EACvBa,kBAAmBA,GACnBj0C,KACApppB,EAAY,CACZmkC,UAAW/zF,KAAKmsvB,mBAAmBp4pB,GACnC6lpB,QAASjhuB,EAAKihuB,QACdsT,SAAUv0uB,EAAKu0uB,SACfxztB,OAAQ/gB,EAAKu0uB,SAAW,6BAA+B,qBAE3D,OAAQn5pB,QACCq4pB,EAAsBC,SACvBz8rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,OACxDn6S,SAAUrhB,EAAKqhB,UAAY,CACvBpJ,EAAGjY,EAAKqhB,SAASpJ,EACjB4qC,EAAG7iD,EAAKqhB,SAASwhC,IAGzB,WACC4wrB,EAAsBE,oBACvB18rB,EAAUj3C,KAAO,CACbi7tB,UAAWj7tB,EAAKi7tB,WAEpB,WACCwY,EAAsBG,YACvB38rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,QAE5D,WACCi4a,EAAsBI,gBACvB58rB,EAAUj3C,KAAO,CACbgD,UAAWhD,EAAKgD,WAAa3b,KAAKihvB,yBAAyBtouB,EAAKgD,YAEpE,WACCywuB,EAAsBK,iBACvB78rB,EAAUj3C,KAAO,CACbw0uB,SAAUx0uB,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,OAC3Di5a,SAAUz0uB,EAAKy0uB,UAAYptvB,KAAKihvB,yBAAyBtouB,EAAKy0uB,UAC9DzxuB,UAAWhD,EAAKgD,WAAa3b,KAAKihvB,yBAAyBtouB,EAAKgD,WAChE0xuB,qBAAsB10uB,EAAK00uB,qBAC3BC,kBAAmB30uB,EAAKqhB,WAAaiztB,EAAkBM,MAAQ,QAAU,OAE7E,WACCnB,EAAsBM,sBACvB98rB,EAAUj3C,KAAO,CACbgD,UAAWhD,EAAKgD,WAAa3b,KAAKihvB,yBAAyBtouB,EAAKgD,WAChE6xuB,UAAW70uB,EAAK4+R,QAAU5+R,EAAK4+R,OAAO72R,IAAIygK,IAAO,CAC7CvwJ,EAAGuwJ,EAAGvwJ,EACN4qC,EAAG2lH,EAAG3lH,KAEViyrB,UAAW90uB,EAAK80uB,WAAa90uB,EAAK80uB,UAAU/suB,IAAIygK,IAAO,CACnDvwJ,EAAGuwJ,EAAGvwJ,EACN4qC,EAAG2lH,EAAG3lH,MAGd,WACC4wrB,EAAsBO,sBACvB/8rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,QAE5D,WACCi4a,EAAsBQ,gBACvBh9rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,OACxD19T,KAAMkC,EAAKlC,MAEf,WACC21uB,EAAsBS,0BACvBj9rB,EAAUj3C,KAAO,CACbgD,UAAWhD,EAAKgD,WAAa3b,KAAKihvB,yBAAyBtouB,EAAKgD,WAChEpJ,MAAOoG,EAAKpG,OAEhB,WACC65uB,EAAsBU,oBACvBl9rB,EAAUj3C,KAAO,CACbgD,UAAWhD,EAAKgD,WAAa3b,KAAKihvB,yBAAyBtouB,EAAKgD,WAChEpJ,MAAOoG,EAAKpG,MACZkE,KAAMkC,EAAKlC,MAEf,WACC21uB,EAAsBW,YACvBn9rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,OACxDu5a,QAAS/0uB,EAAK6nJ,MAAQ,CAClB5gG,MAAOjnD,EAAK6nJ,KAAK5gG,MACjBE,OAAQnnD,EAAK6nJ,KAAK1gG,QAEtB6trB,QAASh1uB,EAAKg1uB,SAAW,CACrB/trB,MAAOjnD,EAAKg1uB,QAAQ/trB,MACpBE,OAAQnnD,EAAKg1uB,QAAQ7trB,SAG7B,WACCssrB,EAAsBY,UACvBp9rB,EAAUj3C,KAAO,CACbw7T,MAAOx7T,EAAKw7T,OAASn0U,KAAKihvB,yBAAyBtouB,EAAKw7T,OACxDpmH,YAAap1M,EAAKqhB,UAAY,CAC1BpJ,EAAGjY,EAAKqhB,SAASpJ,EACjB4qC,EAAG7iD,EAAKqhB,SAASwhC,GAErBoyrB,YAAaj1uB,EAAKi1uB,aAAe,CAC7Bh9tB,EAAGjY,EAAKi1uB,YAAYh9tB,EACpB4qC,EAAG7iD,EAAKi1uB,YAAYpyrB,IAIpC,OAAO5L,EAEXqxrB,yBAAyB+K,GACrB,IACI6B,YAAaA,GACb70C,KACA80C,EAAe9B,aAAsB6B,EAAc7tvB,KAAK+tvB,2BAA2B9ksB,KAAKjpD,MAAQA,KAAKguvB,mCAAmC/ksB,KAAKjpD,MACjJ,SAAOqf,MAAO,CACVxT,GAAImgvB,EAAWngvB,GACfsG,IAAK65uB,EAAW75uB,IAChBoqT,cAAU,GACXuxb,EAAa9B,IAEpB+B,2BAA2BE,GACvB,MAAO,CACH1xb,SAAUv8T,KAAK04uB,cAAgB14uB,KAAK04uB,aAAaxM,SAAS+hB,EAAY97uB,KACtEguI,SAAU,QACV1pI,KAAMw3uB,EAAYx3uB,KAClBhL,KAAMwivB,EAAYxivB,KAClBuuB,SAAU,CACNpJ,EAAGq9tB,EAAYj0tB,SAASpJ,EACxB4qC,EAAGyyrB,EAAYj0tB,SAASwhC,GAE5BglG,KAAM,CACF5gG,MAAOqurB,EAAYztlB,KAAK5gG,MACxBE,OAAQmurB,EAAYztlB,KAAK1gG,QAE7BourB,qBAAsBD,EAAYC,qBAClCC,YAAaF,EAAYE,YACzBC,sBAAuBH,EAAYG,sBACnCC,kBAAmBJ,EAAYI,mBAGvCL,mCAAmCM,GAC/B,MAAO,CACH/xb,SAAUv8T,KAAK44uB,cAAgB54uB,KAAK44uB,aAAa1M,SAASoiB,EAAgBn8uB,KAC1EguI,SAAU,YACVmR,MAAOg9lB,EAAgBh9lB,MACvBi9lB,QAASD,EAAgBC,QACzBC,MAAOF,EAAgBE,MACvBC,OAAQH,EAAgBG,OACxBC,eAAgBJ,EAAgBI,eAChCC,KAAML,EAAgBK,KACtBC,aAAcN,EAAgBM,aAC9Br3c,OAAQ+2c,EAAgB/2c,OAAO72R,IAAIygK,IAAO,CACtCvwJ,EAAGuwJ,EAAGvwJ,EACN4qC,EAAG2lH,EAAG3lH,MAIlBqzrB,aAAa18uB,GACT,IAAI65uB,EAAahsvB,KAAKivuB,kBAAoBjvuB,KAAKivuB,iBAAiB6f,uBAAuB38uB,GACvF,OAAO65uB,GAAchsvB,KAAKihvB,yBAAyB+K,GAEvD+C,YAAYljvB,GACR,IAAImgvB,EAAahsvB,KAAKivuB,kBAAoBjvuB,KAAKivuB,iBAAiB+f,mBAAmBnjvB,GACnF,OAAOmgvB,GAAchsvB,KAAKihvB,yBAAyB+K,GAEvD9mJ,WACI,OAAOllmB,KAAKivuB,iBAAiBggB,iBAAiBvuuB,IAAIsruB,GAAcA,GAAchsvB,KAAKihvB,yBAAyB+K,IAEhHrynB,mBACI,OAAO35H,KAAKivuB,iBAAiBigB,yBAAyBxuuB,IAAIsruB,GAAcA,GAAchsvB,KAAKihvB,yBAAyB+K,IAExH/xnB,iBAAiB5lE,GACb,OAAOr0D,KAAKivuB,iBAAiBh1mB,iBAAiB5lE,EAAM3zC,IAAI9D,GAAQA,EAAK/Q,KAEzE8vQ,aAAa/+P,GACT,OAAO5c,KAAKivuB,iBAAiBkgB,cAAc,CAACvyuB,EAAK/Q,KAErDujvB,iCACQpvvB,KAAK4+sB,cACL5+sB,KAAK4+sB,aAAatrpB,OAAO,CACrBhuB,SAAUtlC,KAAKszD,OAAO,0BAIlC+7rB,iCACQrvvB,KAAK4tuB,cACL5tuB,KAAK4tuB,aAAat6qB,OAAO,CACrBhuB,SAAUtlC,KAAKszD,OAAO,0BAIlCg8rB,oCACQtvvB,KAAK+tuB,iBACL/tuB,KAAK+tuB,gBAAgBz6qB,OAAO,CACxBhuB,SAAUtlC,KAAKszD,OAAO,6BAIlCi8rB,iCACQvvvB,KAAKuuuB,cACLvuuB,KAAKuuuB,aAAaj7qB,OAAO,CACrBhuB,SAAUtlC,KAAKszD,OAAO,0BAIlCk8rB,2BACQxvvB,KAAK0uuB,UACL1uuB,KAAK0uuB,SAASp7qB,OAAO,CACjB+/pB,cAAerztB,KAAK6xuB,sBAIhCt7oB,eAAe59E,GACX,GAAK3Y,KAAKo4uB,mBAAoBp4uB,KAAKo4uB,iBAAiBtiB,iBAGpD,MAAKsiB,iBAAiBvgrB,cACtB,IACI73D,KAAKyvvB,mBAAmB92uB,WAExB3Y,KAAKo4uB,iBAAiBrgrB,cAG9B03rB,mBAAmB92uB,GACf,OAAQA,EAAKtV,UACJ,eACA,WACDrD,KAAK6luB,uBACL7luB,KAAK4jG,cACL,UACC,aACG,cAAgBjrF,EAAKu6C,UAAY,oBAAsBv6C,EAAKu6C,UAAY,sBAA2BA,WACnGlzD,KAAK43uB,wBAET,UACC,eACD53uB,KAAK83uB,uBACL,UACC,aACD93uB,KAAK63uB,yBACL,UACC,qBA6DD,IACC,qBACA,kBACD73uB,KAAK4jG,cACL,MA/DA,IACC,aACD5jG,KAAK+3uB,yBACL,UACC,WACD/3uB,KAAKy3uB,uBACL,UACC,aACDz3uB,KAAK03uB,yBACL,UACC,YACG,aAAe/+tB,EAAKu6C,UAAY,mBAAqBv6C,EAAKu6C,UAAY,qBAA0BA,WAChGlzD,KAAK23uB,uBAET,UACC,YACD33uB,KAAKw3uB,wBACL,UACC,QACDx3uB,KAAKm3uB,oBACL,UACC,YACG,aAAex+tB,EAAKu6C,UAAY,mBAAqBv6C,EAAKu6C,WAC1DlzD,KAAKo3uB,6BAEL,aAAez+tB,EAAKu6C,UAAY,mBAAqBv6C,EAAKu6C,UAAY,oBAAsBv6C,EAAKu6C,WACjGlzD,KAAKq3uB,uBAET,UACC,kBACDr3uB,KAAKs3uB,8BACL,UACC,YACDt3uB,KAAKu3uB,wBACL,UACC,QACG,MAAWrkrB,SAAS1gD,QAAQ,oBAC5BxS,KAAKm4uB,sBAELn4uB,KAAK84uB,0BAET,UACC,QACD94uB,KAAK+4uB,0BACL,UACC,eACGpguB,EAAKu6C,WAAav6C,EAAKtV,KACvBrD,KAAK++uB,yBAEL/+uB,KAAKi4uB,oBAAoBt/tB,EAAK/L,MAAO+L,EAAK0d,eAE9Cr2B,KAAK4jG,cACL,UACC,cACG,yBAA2BjrF,EAAKu6C,SAChClzD,KAAKovvB,iCAELpvvB,KAAK4jG,cAET,MAIA,IACC,UACG,mBAAqBjrF,EAAKu6C,SAC1BlzD,KAAKwvvB,2BAELxvvB,KAAK4jG,cAET,UACC,cACG,yBAA2BjrF,EAAKu6C,SAChClzD,KAAKqvvB,iCAELrvvB,KAAK4jG,cAET,UACC,iBACG,4BAA8BjrF,EAAKu6C,SACnClzD,KAAKsvvB,oCAELtvvB,KAAK4jG,cAET,UACC,cACG,yBAA2BjrF,EAAKu6C,SAChClzD,KAAKuvvB,iCAELvvvB,KAAK4jG,cAET,UACC,cACD5jG,KAAKkvc,yBACL,UACC,iBACDlvc,KAAK4rvB,4BACL,UACC,qBACD5rvB,KAAKwwrB,gCACL,UACC,yBACDxwrB,KAAK8rvB,oCACL,UACC,wBACD9rvB,KAAK25uB,mCACL,UACC,kBACD35uB,KAAK0tuB,uBACL,UACC,wBACD1tuB,KAAK82uB,+BACL,UACC,UACD92uB,KAAK+2uB,yBACL,UACC,SACD/2uB,KAAKq0tB,UAAUrutB,QAAQiqJ,IACnBA,EAAQ38F,OAAO,SAAUtzD,KAAKszD,OAAO,aAErCtzD,KAAK4+sB,cACL5+sB,KAAK4+sB,aAAatrpB,OAAO,SAAUtzD,KAAKszD,OAAO,WAEnD,UACC,aACD,cAEAxzD,MAAMy2F,eAAe59E,WCjkD/B+2uB,UAAN,SAEmBA,SAAgBjpvB,UAAO,SAAiCP,GAAK,OAAO,IAAKA,GAAKwpvB,IAC9EA,EAAgBz6uB,UAAiCtO,MAAoB,CAAE8E,KAAMikvB,IAC7EA,EAAgBx6uB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACxF+1I,GACAjI,GACAwB,GACA0G,GACAU,GACAf,EACA0C,GACAiD,IACAsC,GACAS,GACAyE,IACA8B,IACA2D,IACAyB,IACAxgB,GACA6gB,IACA0B,IACAtd,GACAN,GACA4sB,IACA8B,IACAG,IACAl4G,GACA1H,IACD24F,GACHjI,GACAwB,GACA0G,GACAU,GACAf,EACA0C,GACAiD,IACAsC,GACAS,GACAyE,IACA8B,IACA2D,IACAyB,IACAxgB,GACA6gB,IACA0B,IACAtd,GACAN,GACA4sB,IACA8B,IACAG,IACA5/G,MAnDFm9rB,MC7VAC,UAAN,SAEmBA,SAAkBlpvB,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAKypvB,IAClFA,EAAkB16uB,UAAiCtO,MAAoB,CAAE8E,KAAMkkvB,IAC/EA,EAAkBz6uB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC1Fm2I,GACArxF,GACA1H,IACD+4F,GACH/4F,MATFo9rB,MCrTC,IAAI1orB,GAAY,CACnBw3L,OAAO16O,GACH,IAIIgzD,EAJA5b,EAAWp3C,EAAOo3C,SAClBnhC,EAAWjW,EAAOiW,SAElB41tB,EAAW,GAEf,OAHgB7ruB,EAAO6lD,WAAa,QAG5BA,IACC,QACDgmrB,EAAStsuB,UAAY,aAAe0W,EAAW,WAC/C+8C,EAAgB,SAChB,UACC,OACD64qB,EAASt0rB,KAAOthC,EAChB+8C,EAAgB,QAChB,UACC,UACA,SACD64qB,EAASr0rB,IAAMvhC,EACf+8C,EAAgB,QAExB9B,WAAW9Z,EAAU,CACjB1vD,KAAMsrE,EACNxF,GAAIq+qB,EACJv7qB,SAAUtwD,EAAOswD,SACjBn7D,SAAU6K,EAAO7K,YAGzBk6I,OAAOrvI,GACH,IAAIo3C,EAAWp3C,EAAOo3C,SAClBi4F,EAASrvI,EAAOqvI,OAEhBw8lB,EAAW,GACfA,EAAS,YAAWtxiB,OAFJv6L,EAAO6lD,WAAa,QAEI,IAASwpF,EACjDn+E,WAAW9Z,EAAU,CACjBoW,GAAIq+qB,EACJv7qB,SAAUtwD,EAAOswD,SACjBn7D,SAAU6K,EAAO7K,YAGzB+/D,KAAK9d,EAAUp3C,EAAQswD,EAAU8xhB,GAC7BlxhB,WAAW9Z,EAAU,CACjB1vD,KAAM,OACN8lE,GAAIxtD,EAAOwtD,GACX1oE,KAAMkb,EAAOlb,KACbwrE,SAAUA,EACVn7D,SAAUitlB,KAGlB3lc,KAAKz8I,GACD,IAAIo3C,EAAWp3C,EAAOo3C,SAClBqlG,EAAOz8I,EAAOy8I,KACd52F,EAAY7lD,EAAO6lD,WAAa,OAChCkpc,EAAY/uf,EAAO+uf,WAAa,EAChCz+b,EAAWtwD,EAAOswD,SAClBu7qB,EAAW,GACX,aAAyB,SAAWhmrB,EACpCgmrB,EAAShwrB,MAAQ4gG,EAEjBovlB,EAAS9vrB,OAAS0gG,EAElB,eACAovlB,EAAS98O,UAAYA,GAEzB79b,WAAW9Z,EAAU,CACjBoW,GAAIq+qB,EACJv7qB,SAAUA,EACVn7D,SAAU6K,EAAO7K,YAGzBA,SAASiiD,GACL8Z,QAAQ9Z,GAAU,KCuB1B,SAtFA,UACIt7D,YAAYiza,GACR9ya,KAAK6vvB,QAAU/8U,EAEnBg9U,oBACI,OAAO9vvB,KAAK6vvB,QAEhBE,mBAAmBC,GACf,IAAIl9U,EAAS9ya,KAAK8vvB,oBACdhhsB,EAAWgkX,EAAO1tU,aAAa0tU,EAAOx/W,OAAO,aAC7CxE,GACAA,EAASmD,OAAO,CACZ/9B,UAAW4+Y,EAAOjpO,UAClBrgH,WAAY,KACRwmqB,EAAyBn8tB,aAKzCo8tB,eAAeC,EAAgC9+mB,GAC3C,IAAI++mB,EAAiC,IAAI38qB,MACrC48qB,EAA+B,IAAI58qB,MACnCs/V,EAAS9ya,KAAK8vvB,oBACdI,GACAr8qB,YAAWzY,KAAG,CAAC+0rB,EAAgCC,IAA+Bl8qB,KAAK,KAC/E4+V,EAAOu9U,8BAGfrwvB,KAAKswvB,wBAAwBJ,EAAgCC,GACxDD,GACDp9U,EAAOy9U,oBAEXvwvB,KAAKwwvB,uBAAuBN,EAAgC9+mB,EAAmBg/mB,GAEnFK,gBAAgBC,GACZ,IAAI59U,EAAS9ya,KAAK8vvB,oBACdtvlB,EAAOsyQ,EAAO69U,wBAA0B79U,EAAO89U,oBAAsB99U,EAAO+9U,qBAChF,OAAIH,IACSlwlB,EAAOsyQ,EAAOg+U,gBAEdtwlB,EAAOsyQ,EAAOi+U,cAG/BC,cAAcN,GACV,OAAOA,EAAiB1wvB,KAAK8vvB,oBAAoBgB,aAAe9wvB,KAAK8vvB,oBAAoBiB,aAE7FP,uBAAuBN,EAAgC77qB,EAAU48qB,GAC7D,IAAIn+U,EAAS9ya,KAAK8vvB,oBACdoB,EAAkBp+U,EAAOx/W,OAAO,UAChC69rB,EAAaD,EAAkB,CAC/BrovB,KAAM,EACN0oE,GAAI,GACJ,CACA1oE,KAAM,EACN0oE,GAAI,GAEJ2+qB,EACAjprB,WAAe7L,MAAE03W,EAAOs+U,UAAWD,EAAY98qB,EAAU,KACrDr0E,KAAK6vvB,QAAQwB,wBAAwBH,GACrCD,EAAuBp9tB,aAG3Bi/Y,EAAOu+U,wBAAwBH,GAC/Bp+U,EAAOs+U,SAASr1rB,IAAI,UAAWo1rB,EAAW5/qB,KAGlD+/qB,kBACI,OAAOl2rB,QAAEp7D,KAAK8vvB,oBAAoBjmjB,WAEtC0njB,aAAaC,GACTxxvB,KAAKyxvB,wBAAwBD,GAEjCC,wBAAwBD,GACpB,IAAI1+U,EAAS9ya,KAAK8vvB,oBACd4B,EAAY1xvB,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,WAC7Cw/W,EAAO69U,2BACP5hhB,UAAS3zK,MAAE03W,EAAOjpO,WAAY2njB,EAAwB1+U,EAAO89U,oBAAsBc,IAEnFp+mB,YAAUl4E,MAAE03W,EAAOjpO,WAAY2njB,EAAwB1+U,EAAO+9U,qBAAuBa,GAG7FC,qBACI,OAAO,EAEXC,4BCzCJC,IA/CA,kBAA2BC,GACvBxB,wBAAwBJ,EAAgCe,GACpD,IAAIn+U,EAAS9ya,KAAK8vvB,oBACdiC,EAAkB/xvB,KAAKgxvB,eAAc,GACrC1ihB,EAAkBtuO,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,WAAaw/W,EAAOk/U,yBAE3E,IADA52rB,QAAE03W,EAAOjpO,WAAW9tI,IAAI+2W,EAAO69U,wBAA0B,QAAU,SAAUoB,GACzEj/U,EAAOi+U,aAAc,CACrB,IAAIkB,EAAyB,UAC7B,OAAQn/U,EAAOo/U,0BACN,OACDD,GAA0B,QAC1B,UACC,QACDA,GAA0B,OAC1B,UACC,MACDA,GAA0B,SAC1B,UACC,SACDA,GAA0B,SAElC72rB,MAAE03W,EAAOq/U,eAAep2rB,IAAIk2rB,EAAwBn/U,EAAOi+U,cAE3Db,EACAjprB,UAAiB,CACb9L,UAAUC,QAAE03W,EAAOq/U,eACnBn4tB,SAAUs0M,EACV1kK,UAAWkpW,EAAOo/U,qBAClB79qB,SAAUy+V,EAAOx/W,OAAO,qBACxBp6C,SAAU,KACN+3uB,EAAuBp9tB,aAGxBi/Y,EAAO69U,wBACdv0rB,IAAKhB,QAAE03W,EAAOq/U,eAAgB,CAC1B72rB,KAAMgzK,IAGVlyK,IAAKhB,QAAE03W,EAAOq/U,eAAgB,CAC1B52rB,IAAK+yK,IAIjBsjhB,0BACIx2rB,QAAEp7D,KAAK8vvB,oBAAoBqC,eAAevkvB,SAAS,+BCJ3DwkvB,IAxCA,kBAA6BN,GACzBxB,wBAAwBJ,EAAgCe,GACpD,IAAIn+U,EAAS9ya,KAAK8vvB,oBACdlmrB,EAAYkpW,EAAOo/U,qBACnBr/B,KAASz3pB,MAAE03W,EAAOjpO,WAClB6njB,EAAY1xvB,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,WAC7C++rB,EAAcryvB,KAAKywvB,gBAAgB39U,EAAOx/W,OAAO,WACjDg/rB,EAAax/U,EAAOx/W,OAAO,cAC3B48rB,EACI,UAAJt/tB,EACIq2C,UAAiB,CACb/tD,SAAU,KACN+3uB,EAAuBp9tB,WAE3BsnC,SAAU03pB,EACVx+oB,SAAUy+V,EAAOx/W,OAAO,qBACxBsW,UAAWA,EACXwpF,OAAQi/lB,IAEL,cACPprrB,QAAe,CACX/tD,SAAU,KACN+3uB,EAAuBp9tB,WAE3BsnC,SAAU03pB,EACVx+oB,SAAUy+V,EAAOx/W,OAAO,qBACxBsW,UAAWA,EACX42F,KAAMkxlB,IAGP,YACP7+B,EAAO92pB,IAAI,UAAWuiJ,SAAS10I,GAAW,GAAOyorB,GAC1C,cACPx/B,EAAO92pB,IAAI+2W,EAAO69U,wBAA0B,QAAU,SAAUe,GAGxEC,mBAAmB33tB,EAAUgpb,GACzB,OAAQA,EAAQ,WAAsB,cAAyB,eC8IvEuvS,IAzKA,kBAA8BT,GAC1B/B,mBAAmBC,UACRhwvB,KAAKosN,iBACZ,IAAI0mN,EAAS9ya,KAAK8vvB,qBAEdlggB,OAAQA,EACRsnC,QAASA,GACT47I,EAAOx/W,SACXw/W,EAAOniF,SAAWmiF,EAAOn6U,iBAAiBm6U,EAAOjpO,UAAWglB,GAAS,CACjEv/D,SAAS,EACTp7H,UAAW4+Y,EAAOjpO,UAClByhB,gBAAiBwnN,EAAO0/U,mBACxBx4tB,SAAUh6B,KAAKyyvB,sBACf7yrB,MAAOgwL,EAAS,OAASsnC,GAAW,EACpCp3N,OAAQ,OACRi1K,8BAA+B+9L,EAAOx/W,OAAO,iCAC7C2T,UAAW,CACPwtE,KAAM,CACFpgE,SAAU,IAGlBo3I,aAAc,SAASz1M,GACnBhW,KAAK0yvB,oBAAoB18uB,EAAExH,UAAUmiM,aACvC1nJ,KAAKjpD,MACPguJ,gBAAiB8kR,EAAOx/W,OAAO,YAC/Bq1C,eAAgBhwF,IACZq3uB,EAAyBn8tB,UACzB7zB,KAAK2yvB,sBAAsBh6uB,EAAKnK,UAAUq7L,YAE9C96H,SAAS,EACTqgJ,uBAAuB,IAG/BsjiB,oBAAoBhxhB,GAChB,IAAI1nM,GAAWktE,SAAclnG,KAAKosN,iBAAkB,CAChD9wJ,KAAM,EACNC,IAAK,IAETa,GAAKslK,EAAiB1nM,GAClB,eAAiB81tB,oBAAoBoC,sBACrCxwhB,EAAgB3lK,IAAI,OAAQ,QAE5B,gBAAkB+zrB,oBAAoBoC,uBACtCxwhB,EAAgB3lK,IAAI,MAAO,QAC3B2lK,EAAgB3lK,IAAI,SAAU,QAGtC02rB,sBACI,IAAI3/U,EAAS9ya,KAAK8vvB,oBACd8C,EAAgB9/U,EAAOo/U,qBACvBx/uB,EAAS,GACb,OAAQkgvB,OACC,OACDlgvB,EAAS,CACL24D,GAAI,WACJ56C,GAAI,YAER,UACC,QACD/d,EAAS,CACL24D,GAAIynW,EAAOx/W,OAAO,cAAgB,WAAa,YAC/C7iC,GAAI,aAER,UACC,UACA,SACD/d,EAAS,CACL24D,GAAIunrB,EACJniuB,GAAImiuB,GAGhBlgvB,SAAO0J,GAAK02Z,EAAO0/U,mBACZ9/uB,EAEX++uB,wBAAwBD,GACpB,IAAI1+U,EAAS9ya,KAAK8vvB,oBACd+C,EAAU//U,EAAOggV,aACjBhgV,EAAO69U,yBACPkC,EAAQv/rB,OAAO,SAAU,QACzBu/rB,EAAQv/rB,OAAO,QAASk+rB,EAAwB1+U,EAAO89U,oBAAsB5wvB,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,cAE9Gu/rB,EAAQv/rB,OAAO,SAASqS,SAASmtW,EAAO0/U,qBACxCK,EAAQv/rB,OAAO,SAAUk+rB,EAAwB1+U,EAAO+9U,qBAAuB7wvB,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,aAGxHs+rB,yBACI5xvB,KAAK+yvB,2BAETA,2BACI,IAAIjgV,EAAS9ya,KAAK8vvB,uBAClB10rB,MAAE03W,EAAOq/U,eAAep2rB,IAAI,WAAYuiJ,SAASw0N,EAAOo/U,sBAAsB,GAAOp/U,EAAOx/W,OAAO,aACnG8H,QAAE03W,EAAOq/U,eAAep2rB,IAAI,YAAa,WAE7Cu0rB,wBAAwBJ,EAAgCe,GACpD,IAAIn+U,EAAS9ya,KAAK8vvB,oBACdj9B,GAASz3pB,QAAE03W,EAAOjpO,WAClBmpjB,EAAuBlgV,EAAOggV,aAAanijB,WAC3C2hjB,EAAax/U,EAAOx/W,OAAO,cAC3B2/rB,EAAsBngV,EAAOo/U,qBAC7BR,EAAY1xvB,KAAKgxvB,cAAcl+U,EAAOx/W,OAAO,WAC7C++rB,EAAcryvB,KAAKywvB,gBAAgB39U,EAAOx/W,OAAO,WAAaw/W,EAAOk/U,yBACrEl/O,EAAYhgG,EAAO+9U,qBAAuBa,EAC9C1xvB,KAAK+yvB,2BACD7C,EACI,aACAlwvB,KAAKosN,iBAAmB0mN,EAAO69U,wBAA0B,CACrDr1rB,KAAM+2rB,GACN,CACA92rB,IAAK82rB,GAETprrB,UAAiB,CACb/tD,SAAU,KACN+3uB,EAAuBp9tB,WAE3BwgD,SAAUy+V,EAAOx/W,OAAO,qBACxBsW,UAAWqprB,EACX93rB,SAAU03pB,EACV74rB,SAAUq4tB,KAEP,eACPryvB,KAAKosN,iBAAmB,CACpB9wJ,KAAM,GAEVc,GAAK42rB,EAAsBhzvB,KAAKosN,kBAChCnlJ,QAAe,CACX/tD,SAAU,KACN+3uB,EAAuBp9tB,WAE3BwgD,SAAUy+V,EAAOx/W,OAAO,qBACxBsW,UAAWqprB,EACX93rB,SAAU63rB,EACVxylB,KAAMkxlB,EACN5+O,UAAWA,KAGZ,aACP9ygB,KAAKosN,iBAAmB0mN,EAAO69U,wBAA0B,CACrDr1rB,KAAM+2rB,GACN,CACA92rB,IAAK82rB,GAETj2rB,GAAKy2pB,EAAQ7ytB,KAAKosN,mBACX,eACPpsN,KAAKosN,iBAAmB,CACpB9wJ,KAAM,GAEVc,GAAK42rB,EAAsBhzvB,KAAKosN,kBAChCn1M,EAAW05uB,2BACPv1rB,MAAE43rB,GAAsBj3rB,IAAI,QAAS21rB,OAErCt2rB,MAAE43rB,GAAsBj3rB,IAAI,SAAU21rB,GAClC,WAAauB,IACb73rB,QAAE43rB,GAAsBj3rB,IAAI,YAAa+2c,KAKzDw+O,kBACI,OAAOl2rB,QAAEp7D,KAAK8vvB,oBAAoBgD,aAAajpjB,WAEnD8ojB,sBAAsBx3rB,GAClB,IACIk1G,GADSj1G,QAAED,GAAUn3D,IAAI,GAAGuE,MACZ8nK,QAAU,EAC9BrwK,KAAK8vvB,oBAAoB1U,UAAU/qkB,GAEvCshlB,mBAAmB33tB,GACf,MAAO,aAAwB,WAAaA,ICjJpD,IAAIk5tB,GAAe,YAEfC,IAA6B,0BAE7BC,IAAsB,mBACtB3kiB,IAAwB,qBAExB4kiB,GAA0B,UAE1BC,IAASlrpB,WAAe,CACxB7T,qBACI,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3Bn/B,SAAU,OACV41N,QAAQ,EACRsnC,QAAS,KACTuxB,QAAS,KACTn5J,SAAS,EACTxgG,SATc,QAUdyksB,gBAAiB,SACjBjB,WAAY,QACZ9qc,kBAAkB,EAClBp2K,kBAAmB,IACnB2c,qBAAqB,EACrBC,gBAAiBqlmB,MAGzBv9pB,QACI91F,KAAKm5D,WACLn5D,KAAK8ilB,gBACL9ilB,KAAKm7D,WAAWvtD,SAASslvB,IACzBlzvB,KAAKwzvB,6BAA0B,EAC/BxzvB,KAAKyzvB,+BAA4B,EACjCzzvB,KAAK0zvB,gCAA6B,EAClC1zvB,KAAK+rN,aAAY3wJ,MAAE,SAASxtD,SAhCT,qBAiCnB5N,KAAK2zvB,sBAAuBv4rB,QAAE,SAASxtD,SA/Bf,qBAgCxB5N,KAAK+rN,UAAUniI,OAAO5pF,KAAK2zvB,sBAC3B3zvB,KAAKm7D,WAAWyuB,OAAO5pF,KAAK+rN,YAEhC+2X,gBACI,OAAQ9ilB,KAAKszD,OAAO,wBACX,OAQD,QAEAtzD,KAAKy0Q,UAAY,IAAIm/e,IAAa5zvB,YARlC,IACC,SACDA,KAAKy0Q,UAAY,IAAIo/e,IAAe7zvB,MACpC,UACC,UACDA,KAAKy0Q,UAAY,IAAIq/e,IAAgB9zvB,QAMjDglG,0BAA2B,WACvB,OAAOqupB,IAEXpupB,iBACI,IAAI1Y,EAAmB,GACvBA,EAAiBwnqB,MAAuB,IAAIvnqB,GAC5CD,EAAiB8mqB,IAA2B,IAAI7mqB,GAChDxsF,KAAK+jG,iBAAiB5K,oBAAoB5M,GAC1CvsF,KAAKm5D,YAET66rB,gCAAgCh+uB,GAC5B,IAAI+3I,EAAsB/tJ,KAAKszD,OAAO,wBAClC96C,SAAWu1I,KACXA,EAAsBA,EAAoB/3I,IAE1C+3I,GAAuB/tJ,KAAKszD,OAAO,YACnCtzD,KAAKi0vB,iBACDj0vB,KAAKszD,OAAO,YACZt9C,EAAEjL,iBAEN/K,KAAKw0I,SAGbjyC,cACIviG,KAAKm5D,WACLn5D,KAAKk0vB,wBAAwBl0vB,KAAKszD,OAAO,WACzCtzD,KAAKm0vB,6BACLn0vB,KAAKo0vB,+BACLp0vB,KAAKq0vB,0BACLr0vB,KAAKs0vB,gBACLt0vB,KAAKu0vB,wBACLv0vB,KAAKyzvB,0BAA4B,IAAIjgrB,MACrCxzE,KAAKy0Q,UAAUs7e,mBAAmB/vvB,KAAKyzvB,2BACvCzzvB,KAAKy0Q,UAAUm9e,yBACf5xvB,KAAKw0vB,qBACL/lsB,SAAiBzuD,KAAK2zvB,qBAAsBvsqB,IAC5C34B,QAAgBzuD,KAAK2zvB,qBAAsBvsqB,GAAkBpnF,KAAKg0vB,gCAAgC/qsB,KAAKjpD,OACvGA,KAAKy0vB,gCAETr8pB,UACIp4F,KAAK00vB,kBACL10vB,KAAKm5D,WACLn5D,KAAKyzvB,0BAA0B3/qB,OAAO,KAClC9zE,KAAK00vB,kBACL10vB,KAAKy0Q,UAAUg9e,wBAAwB,eAAiBn+rB,OAAO,gBAAkBtzD,KAAK2wvB,yBACtF3wvB,KAAK+3N,gBAAgB/3N,KAAKszD,OAAO,WAAW,GAC5CtzD,KAAK20vB,gCAGbA,6BACQ30vB,KAAK40vB,sBAAsBxlrB,KAAK,oBAChCpvE,KAAK40vB,sBAAsBjopB,WAAW,kBACtC3sG,KAAK40vB,sBAAsB74rB,IAAI,CAC3B/hC,SAAU,GACVuhC,IAAK,GACLD,KAAM,GACNgc,MAAO,GACPD,OAAQ,OAIpB88qB,6BACIn0vB,KAAK40vB,uBAAwBx5rB,QAAE,SAASxtD,SAASulvB,KACjD,IAAIn5tB,EAAWh6B,KAAKkyvB,qBAChB,SAAWlyvB,KAAKszD,OAAO,oBAAsB,CAAC,MAAO,UAAU9gD,QAAQwnB,IAAY,GACnFh6B,KAAK40vB,sBAAsBhnvB,SAASulvB,IAA6B,uBAEjE,iBAAmB7/rB,OAAO,qBAAuBtzD,KAAKszD,OAAO,YAActzD,KAAKszD,OAAO,aACvFtzD,KAAK40vB,sBAAsBxlrB,KAAK,kBAAkB,GAClDpvE,KAAK40vB,sBAAsB74rB,IAAI,CAC3B/hC,SAAU,WACVuhC,IAAK,WACLD,KAAM,WACNgc,MAAO,OACPD,OAAQ,UAGhBr3E,KAAK+rN,UAAUniI,OAAO5pF,KAAK40vB,wBAE/BR,6BAA6BS,GACrBA,GACA70vB,KAAKm7D,WAAWrtD,YAAYolvB,GAAe,IAAM2B,GAErD70vB,KAAKm7D,WAAWvtD,SAASslvB,GAAe,IAAMlzvB,KAAKszD,OAAO,qBAE9DihsB,sBAAsBnxH,GACdA,GACApjoB,KAAKm7D,WAAWrtD,YAAYolvB,GAAe,IAAM9vH,GAErDpjoB,KAAKm7D,WAAWvtD,SAASslvB,GAAe,IAAMlzvB,KAAKkyvB,uBAEvDuC,+BACI,IAAIz6tB,EAAWh6B,KAAKkyvB,qBAChBlyvB,KAAKy0Q,UAAUk9e,mBAAmB33tB,EAAUh6B,KAAKszD,OAAO,eACxDtzD,KAAK+rN,UAAUivB,QAAQh7O,KAAK2zvB,sBAE5B3zvB,KAAK+rN,UAAUivB,QAAQh7O,KAAK40vB,wBAGpCP,wBAAwBS,GAChBA,GACA90vB,KAAKm7D,WAAWrtD,YAAYolvB,GAAe,IAAM4B,GAErD90vB,KAAKm7D,WAAWvtD,SAASslvB,GAAe,IAAMlzvB,KAAKszD,OAAO,gBAE9DkhsB,qBACI,IAAIr9hB,EAAwBn3N,KAAKszD,OAAO,mBACpC06F,EAAkBhuJ,KAAKolG,aAAa+xH,GACxC,GAAInpE,EAAiB,CACjB,IAAI+mmB,EAAgB/mmB,EAAgB/7F,OAAO,CACvC/9B,UAAWl0B,KAAKmyvB,cAChB/6hB,SAAS,EACT1tI,WAAY1pF,KAAK+jG,iBAAiBnL,wBAA0Bu+H,IAE5D49hB,EAAcp/rB,SAAS,gBACvByF,MAAEp7D,KAAK2zvB,sBAAsBx3tB,WAAWqvE,IAAI,IAAI3pF,OAAOuxuB,MAAsB11qB,YAAYq3qB,KAIrGT,gBACIt0vB,KAAKoxvB,SAAWpxvB,KAAKoxvB,WAAYh2rB,QAAE,SAASxtD,SAASwlvB,KACrDpzvB,KAAKoxvB,SAASvmrB,SAAS7qE,KAAKmyvB,eAC5BnyvB,KAAKqxvB,wBAAwBrxvB,KAAKszD,OAAO,YAE7C0hsB,YACIh1vB,KAAK00vB,mBAETA,kBACI,IAAIO,EAAgBj1vB,KAAK2wvB,wBAA0B3wvB,KAAK4wvB,oBAAsB5wvB,KAAK6wvB,qBACnF7wvB,KAAKk1vB,SAAWl1vB,KAAKszD,OAAO,YAAc2hsB,EAC1Cj1vB,KAAKm1vB,SAAWn1vB,KAAKszD,OAAO,YAAc,GAE9C4+rB,qBACI,IAAIl4tB,EAAWh6B,KAAKszD,OAAO,YACvB2wC,EAAMjkG,KAAKszD,OAAO,cAClB5gD,EAASsnB,EACb,MAAI,aACAtnB,EAASuxF,EAAM,QAAU,OAClB,cACPvxF,EAASuxF,EAAM,OAAS,SAErBvxF,GAEX8/uB,mBACI,OAAOxyvB,KAAK+rN,WAEhB+miB,aACI,OAAO9yvB,KAAK2wV,UAEhBmga,aACI,OAAO9wvB,KAAKk1vB,UAEhBnE,aACI,OAAO/wvB,KAAKm1vB,UAEhBvE,oBACI,OAAI1yrB,YACIxgD,SAAU1d,KAAKszD,OAAO,iBACftzD,KAAKszD,OAAO,gBAEZgU,GAAgBtnE,KAAKo1vB,4BAA4Bx1rB,MAGrD,GAGfixrB,qBACI,OAAI3yrB,YACIxgD,SAAU1d,KAAKszD,OAAO,iBACftzD,KAAKszD,OAAO,gBAEZgU,GAAgBtnE,KAAKo1vB,4BAA4Bt1rB,OAGrD,GAGfs1rB,2BACI,IAAIC,EAAgBr1vB,KAAKy0Q,UAAU68e,kBAC/B/nqB,EAAU8rqB,EACd,OAAIA,EAAcl5tB,WAAW13B,SACzB8kF,EAAU8rqB,EAAcl5tB,WAAWgrF,GAAG,GAClCkuoB,EAAc1/rB,SAAS,uBAAyB4zB,EAAQ5zB,SAAS,wBAA0B4zB,EAAQptD,WAAW13B,SAC9G8kF,EAAUA,EAAQptD,WAAWgrF,GAAG,KAGjC59B,EAAQvlF,IAAI,IAEvB6ugB,iBAAiB13c,GACb,IAAIm6rB,EAAYn6rB,EAASh/B,WACzB,OAAOm5tB,EAAU7wvB,OAAS6iE,GAAgBgurB,EAAUnuoB,GAAG,GAAGnjH,IAAI,IAAI87D,OAASwH,GAAgBnM,EAASn3D,IAAI,IAAI87D,QAEhH6wrB,wBACI,IAAI32tB,EAAWh6B,KAAKkyvB,qBACpB,MAAO,YAAuB,UAAYl4tB,GAE9Ci6tB,eAAe1+qB,GACXN,QAAQj1E,KAAKoxvB,SAAU77qB,GACvBN,SAAQ7Z,QAAEp7D,KAAK6pM,WAAYt0H,GAC3BN,SAAQ7Z,QAAEp7D,KAAKmyvB,eAAgB58qB,GAC/B,IAAIs9qB,EAAU7yvB,KAAK8yvB,aACfD,GACA59qB,SAAQ7Z,QAAEy3rB,EAAQlijB,YAAap7H,IAGvC6lqB,UAAU/qkB,GACNrwK,KAAKoxvB,SAASr1rB,IAAI,SAAUs0G,EAAS,GACrCrwK,KAAK40vB,sBAAsB74rB,IAAI,SAAUs0G,IAE7CkllB,kBAGAhF,oBACInnqB,GAAmBppF,KAAKmyvB,gBAE5BqD,sBACI,IAAIx7tB,EAAWh6B,KAAKkyvB,qBACpB,MAAO,aAAwB,WAAal4tB,GAEhD+9L,gBAAgB24hB,EAAgB+E,EAAkBlgrB,GAE9C,GADAv1E,KAAKi0vB,eAAe1+qB,MACfrX,SAGL9C,UAAEp7D,KAAKmyvB,eAAep2rB,IAAI,cAAe,MACzCX,MAAEp7D,KAAKmyvB,eAAep2rB,IAAI,eAAgB,IAC1CX,QAAEp7D,KAAKmyvB,eAAep2rB,IAAI,aAAc,IACxCX,QAAEp7D,KAAKmyvB,eAAep2rB,IAAI,gBAAiB,GAC3C,IAAIyrP,EAAmBxnT,KAAKszD,OAAO,qBAC/B,QACAk0P,GAAmB,GAEnBkpc,GACA1wvB,KAAKqxvB,wBAAwBX,GAEjC1wvB,KAAKy0Q,UAAUw7e,eAAezoc,EAAkBxnT,KAAKszD,OAAO,wBAEhE+8rB,4BACIrwvB,KAAKuwvB,oBACDvwvB,KAAKwzvB,yBACLxzvB,KAAKwzvB,wBAAwB3/tB,WAGrCm+tB,yBACI,OAAOhyvB,KAAKw1vB,uBAAwB,EAAK,GAE7C9xuB,WACIujD,aAAmB7L,QAAEp7D,KAAKmyvB,gBAC1BnyvB,KAAKm5D,YAETyoC,mBAAmB7yB,GACXA,GACA/uE,KAAK6hG,qBAGbA,oBACI7hG,KAAK00vB,kBACL10vB,KAAKy0Q,UAAUg9e,wBAAwB,eAAiBn+rB,OAAO,eAC/DtzD,KAAK+3N,gBAAgB/3N,KAAKszD,OAAO,WAAW,IAEhD+9rB,wBAAwBtirB,GAChB/uE,KAAKszD,OAAO,YACZtzD,KAAKoxvB,SAASltpB,YAAYuqH,KAAwB1/I,GAClD/uE,KAAKoxvB,SAASr1rB,IAAI,aAAcgT,EAAU,UAAY,WAEtD/uE,KAAKoxvB,SAASltpB,YAAYuqH,KAAuB,IAGzDyliB,wBAAwBtkgB,GACpB5vP,KAAKm7D,WAAW+oC,YA5TC,mBA4T+B0rJ,IAEpD8lgB,mBACIt6rB,MAAEp7D,KAAKmyvB,eAAep2rB,IAAI,OAAQ,MAClCX,MAAEp7D,KAAKmyvB,eAAep2rB,IAAI,YAAa,wBACvCX,QAAEp7D,KAAKmyvB,eAAerkvB,YAAY,6BAClC9N,KAAK21vB,6BACL31vB,KAAK41vB,iBACL51vB,KAAKm0vB,6BACLn0vB,KAAKy0vB,+BACLz0vB,KAAK0zvB,2BAA6B,IAAIlgrB,MACtCxzE,KAAKy0Q,UAAUs7e,mBAAmB/vvB,KAAK0zvB,4BACvC1zvB,KAAKy0Q,UAAUm9e,0BACX1zrB,YACAl+D,KAAK0zvB,2BAA2B5/qB,OAAO,KACnC9zE,KAAKy0Q,UAAUg9e,wBAAwB,eAAiBn+rB,OAAO,eAC/DtzD,KAAK+3N,gBAAgB/3N,KAAKszD,OAAO,WAAW,GAAM,GAClDtzD,KAAK20vB,gCAIjBlxpB,SACIzjG,KAAKgrG,mBACLhrG,KAAK21vB,6BACL31vB,KAAK41vB,kBAETD,6BACQ31vB,KAAK40vB,uBACL50vB,KAAK40vB,sBAAsB/zvB,UAGnC+0vB,iBACQ51vB,KAAK2wV,WACL3wV,KAAK2wV,SAAS7vS,iBACP9gD,KAAK2wV,gBACL3wV,KAAK40vB,wBAGpBr+pB,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,QACDrD,KAAKm5D,SAASxgD,GACd3Y,KAAK6hG,oBACL,UACC,SACD7hG,KAAK+3N,gBAAgB/3N,KAAKszD,OAAO,WACjCtzD,KAAKk0vB,wBAAwBv7uB,EAAK/L,OAClC,UACC,WACD5M,KAAKu0vB,sBAAsB57uB,EAAK0d,eAChCr2B,KAAKy0vB,+BACLz0vB,KAAK4jG,cACL,UACC,sBACA,WACD5jG,KAAK4jG,cACL,UACC,kBACD5jG,KAAK8ilB,gBACL9ilB,KAAKo0vB,6BAA6Bz7uB,EAAK0d,eACvCr2B,KAAK01vB,gBACL,UACC,cACA,UACD11vB,KAAK00vB,kBACL10vB,KAAK+3N,gBAAgB/3N,KAAKszD,OAAO,WAAW,GAC5C,UACC,aACDtzD,KAAKq0vB,wBAAwB17uB,EAAK0d,eAClCr2B,KAAK01vB,gBACL,UACC,UACD11vB,KAAKqxvB,wBAAwBrxvB,KAAKszD,OAAO,WACzC,UACC,uBACA,wBACA,sBACD,cAEAtzD,KAAKm5D,SAASxgD,KAG1BkxL,UACI,OAAOtwH,GAAiBv5E,KAAK40vB,wBAEjCzC,cACI,OAAO54qB,GAAiBv5E,KAAK2zvB,uBAEjCl/mB,OACI,OAAOz0I,KAAKo0M,QAAO,IAEvB5/D,OACI,OAAOx0I,KAAKo0M,QAAO,IAEvBA,OAAOw7C,GACH,IAAIimgB,OAAe,OAAqB71vB,KAAKszD,OAAO,UAAYs8L,EAChE,YAAK4jgB,wBAA0B,IAAIhgrB,MACnCxzE,KAAKszD,OAAO,SAAUuisB,GACf71vB,KAAKwzvB,wBAAwB15sB,aAG5Co6F,GAAkB,WAAYo/mB,KAC9B,SAAeA,IC9cfwC,IAAexC,GCUTx1lB,IAAM,CAAC,SAKPi4lB,UAAN,gBAAgC7/rB,GAC5Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBt9B,EAAYr/H,EAAe0gD,GACrFt2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEA,KAAM,4BACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBAEZ+zH,EAAWnmF,QAAQ5uD,MAMnB0oG,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCwkI,wBACA,OAAOpxI,KAAKozD,WAAW,qBAEvBg+E,sBAAkBxkI,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC46S,uBACA,OAAOxnT,KAAKozD,WAAW,oBAEvBo0P,qBAAiB56S,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCmhJ,0BACA,OAAO/tJ,KAAKozD,WAAW,uBAEvB26F,wBAAoBnhJ,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC67S,cACA,OAAOzoT,KAAKozD,WAAW,WAEvBq1P,YAAQ77S,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BsqR,cACA,OAAOl3R,KAAKozD,WAAW,WAEvB8jO,YAAQtqR,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B2mvB,sBACA,OAAOvzvB,KAAKozD,WAAW,mBAEvBmgsB,oBAAgB3mvB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCotB,eACA,OAAOh6B,KAAKozD,WAAW,YAEvBp5B,aAASptB,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B0lvB,iBACA,OAAOtyvB,KAAKozD,WAAW,cAEvBk/rB,eAAW1lvB,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B0iJ,cACA,OAAOtvJ,KAAKozD,WAAW,WAEvBk8F,YAAQ1iJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BkiD,eACA,OAAO9uD,KAAKozD,WAAW,YAEvBtE,aAASliD,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIokuB,IAASxuvB,EAASoqB,GAEjChoB,cACI5J,KAAKm4D,kBAGM49rB,SAAkBtvvB,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAK6vvB,GAAmBpvvB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACpWmivB,EAAkBjqtB,UAAiCnlC,MAAqB,CAAE8E,KAAMsqvB,EAAmB/vuB,UAAW,CAAC,CAAC,cAAekP,OAAQ,CAAEwzE,mBAAoB,qBAAsB0oC,kBAAmB,oBAAqBo2K,iBAAkB,mBAAoBz5J,oBAAqB,sBAAuB3lI,SAAU,WAAY+4E,YAAa,cAAerhC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB6/M,QAAS,UAAWvxB,QAAS,UAAWtnC,OAAQ,SAAU2jgB,gBAAiB,kBAAmBv5tB,SAAU,WAAYs4tB,WAAY,aAAc7trB,WAAY,aAAc6qF,QAAS,UAAWxgG,SAAU,WAAYigB,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE3pD,YAAa,cAAeF,cAAe,gBAAiBC,gBAAiB,kBAAmBo+E,yBAA0B,2BAA4BC,wBAAyB,0BAA2BmjlB,uBAAwB,yBAA0BnrP,0BAA2B,4BAA6B53V,eAAgB,iBAAkBC,kBAAmB,oBAAqB9iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2B4ilB,cAAe,gBAAiBC,cAAe,gBAAiBlne,aAAc,eAAgBmne,sBAAuB,wBAAyB9lmB,eAAgB,iBAAkB+lmB,iBAAkB,mBAAoBtilB,iBAAkB,mBAAoBuilB,cAAe,gBAAiBroT,eAAgB,iBAAkB5jT,cAAe,gBAAiBkG,YAAa,eAAiBtrI,SAAU,CAACte,MAAsB,CACxjD2rD,GACAxC,GACAklF,KACAruI,OAAgCg9I,mBAAoBma,IAAKtpG,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAoC4F,EAAIv9C,GAAgB,EAALu9C,IAC7I/tD,QACAA,MAAgB,KACf+E,cAAe,IArPlBqqvB,MA2VAQ,UAAN,SAEmBA,SAAe9vvB,UAAO,SAAgCP,GAAK,OAAO,IAAKA,GAAKqwvB,IAC5EA,EAAethvB,UAAiCtO,MAAoB,CAAE8E,KAAM8qvB,IAC5EA,EAAerhvB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACvF8kD,GACA1H,IACDA,MAPLgksB,MCtUN,IAAIC,IAAmBpksB,sBAEnBihsB,GAA0B,UAC1B/urB,IAAatB,UACbyzrB,IAActngB,WAAuB,CACrC5mJ,eAAgB,WACZ,OAAOlpF,QAAO,GAAIrf,KAAKm5D,WAAY,CAC/BsW,IAAK,SAASz5D,GACV,GAAKhW,KAAKszD,OAAO,UAGjB,KAAIojsB,EAAoB12vB,KAAK22vB,uBACzBtngB,EAAoBr5O,EAAEzE,SAAWmlvB,EAAkBt7uB,OAASs7uB,EAAkB9mtB,QAClFy/M,GAAqB5gM,aAAqB4gM,EAAmB,SAC7Dr5O,EAAEjL,sBAId4rvB,qBAAsB,WAClB,OAAO32vB,KAAK42vB,eAAe9vuB,OAAOuoD,KAEtCunrB,aAAc,WACV,OAAOx7rB,QAAEp7D,KAAK6pM,WAAWpkK,KAAK,MAElC8uD,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B02L,mBAAmB,EACnB7hG,gBAAiBqlmB,GACjBpjgB,kBAAkB,EAClBxS,sBAAuB,SAAS7wO,GAC5B,OAAOhE,MAAM8B,QAAQkC,GAASA,EAAM0xB,KAAK,MAAQ1xB,GAErD8jP,wBAAwB,KAGhC1rJ,0BAA2B,WACvB,OAAOqupB,IAEXpupB,eAAgB,WACZjlG,KAAKm5D,YAETopC,YAAa,WACTviG,KAAK0lR,uBACL1lR,KAAKm7D,WAAWvtD,SA1CE,kBA2ClB5N,KAAKm5D,YAET04L,gBAAiB,WACb,IAAIjlP,EAAQ5M,KAAKszD,OAAO,SACpBm6N,EAAcztR,KAAK0tR,uBAAuB9gR,GAAS5M,KAAK8lH,eAAel5G,GAASA,EACpF5M,KAAKi5O,oBAAoBx9M,IAAIgyP,IAEjCC,uBAAwB,SAAS9gR,GAC7B,MAAO,SAAW5M,KAAKszD,OAAO,iBAAgBt2C,OAASpQ,IAE3DiqvB,wBAAuBC,EAAa39uB,IACbA,EAAOmiB,KAAK,CAACL,EAAGpd,IAAMi5uB,EAAYtkvB,QAAQyoB,EAAE0oG,SAAWmznB,EAAYtkvB,QAAQqL,EAAE8lH,UAC5EjjH,IAAIkQ,GAAKA,EAAEmmuB,kBAEnCv2gB,kBAAmB,WACfxgP,KAAKqmR,sBACL,IAAIltQ,EAAS,GACb,IAAKnZ,KAAKi8G,YACN,YAAK9iD,SAAShgD,IACN,IAAIq6D,OAAU3/C,UAE1B,IAAIgD,EAAe72B,KAAKwmR,mBACpBztQ,EAAO,QAAmD8d,EAAe,GAC7E9d,EAAOnQ,MAAM8B,QAAQqO,GAAQA,EAAO,CAACA,GACrC,IAAIi+uB,GAAoBt2uB,SAAI3H,EAAM5G,IAC9B,IAAIohE,EAAW,IAAIC,MACnB,YAAK+1M,UAAUp3Q,GAAK2hE,OAAOl3D,IACvB,IAAIyxG,EAAeruH,KAAK8lH,eAAelpG,IACnCc,SAAU2wG,GACVl1G,EAAO9P,KAAK,CACRs6H,QAASxxH,EACT4kvB,iBAAkB1ooB,IAEfruH,KAAKszD,OAAO,sBACnBn6C,EAAO9P,KAAK,CACRs6H,QAASxxH,EACT4kvB,iBAAkB5kvB,IAG1BohE,EAAS1/C,YAEN0/C,IAEPpa,EAAWn5D,KAAKm5D,SAASlQ,KAAKjpD,MAClC,OAAO6zE,YAAW7zE,KAAMg3vB,GAAmBljrB,OAAO,KAC9C,IAAImjrB,EAAgBj3vB,KAAK62vB,uBAAuB99uB,EAAMI,GACtDnZ,KAAKszD,OAAO,eAAgB2jsB,GAC5B99rB,EAAShgD,EAAO1U,QAAUwyvB,MAGlC1te,UAAW,SAAS38Q,GAChB,IAAI2mE,EAAW,IAAIC,MACfF,EAAOtzE,KACPklI,KAAe9gC,OAAKpkG,KAAKszD,OAAO,UAAY,GAAI,SAAS12C,GACzD,OAAO5c,KAAKmmR,eAAenmR,KAAK+lR,aAAanpQ,GAAOhQ,IACtDq8C,KAAKjpD,OAAO,GACd,YAAI,MACAuzE,EAAS1/C,QAAQqxG,GAEjBllI,KAAKimR,WAAWr5Q,GAAOsnE,KAAM,SAASt3D,GAClC22D,EAAS1/C,QAAQjX,KACjBu3D,KAAM,SAASx7D,GACX,SAAoCA,EAAK4tQ,qBAGzCjzM,EAAKhgB,OAAO,qBACZigB,EAAS1/C,QAAQjnB,GAEjB2mE,EAAS15B,YAId05B,EAASz5B,WAEpB26M,iBAAkB,SAASz+O,GACvB,GAAI,QAAUq8D,GAAiBr8D,GAG/B,KAAI0/M,EAAiB11N,KAAK22vB,uBAAuB/mtB,QAAQ5rC,IAAI,GACzD2xN,EAAgB31N,KAAK22vB,uBAAuBv7uB,OAAOpX,IAAI,GACvD6tE,EAAU77D,EAAEhU,OACZ2yP,IAAkB9iL,IAAY6jJ,IAAkB1/M,EAAEzE,WAElDojP,GADiB9iL,IAAY8jJ,IAAkB3/M,EAAEzE,YAEjDvR,KAAKovP,QACL3gM,aAAqBzuD,KAAK89O,SAAU,SAChC6W,GACA3+O,EAAEjL,oBAId8oP,oBAAqB,WACjB,GAAI7zP,KAAKszD,OAAO,qBAAuB+/rB,GAGvC,KAAIrlmB,EAAkBhuJ,KAAKmlG,qBAAqB,mBAChD,GAAM6oD,GAAmBhuJ,KAAKszD,OAAO,mBAGrC,KAAIshM,EAAgB50P,KAAKmxO,OAAOxgC,WAC5BE,EAAe,CACfjkM,MAAO5M,KAAK4xP,mBACZpjP,UAAWxO,MAEf40P,EAAc5xK,QACdgrE,EAAgB/7F,OAAO,CACnB/9B,UAAWqlD,GAAiBq7K,GAC5Bj+N,MAAOk6K,OAGfqmjB,wBAAyB,WACrB,OAAO5yrB,IAAWrC,KAEtBk1rB,uBAAwB,WACpB,IAAI/7qB,EAAgBo7qB,MACpB,OAAOp7qB,GAAiBp7E,KAAKmxO,OAAOxgC,WAAW3sM,IAAI,GAAGwuB,SAAS4oD,IAEnEg8qB,0BAA2B,WACvB,MAAO,YAAc9yrB,IAAW9C,YAAcxhE,KAAKk3vB,2BAA6Bl3vB,KAAKm3vB,0BAEzFhjgB,oBAAqB,WACjBn0P,KAAKm5D,WACLn5D,KAAKq3vB,oBAAiB,GAE1BpigB,wBAAyB,SAASj/O,GAC9BhW,KAAKm5D,SAASnjD,GACdhW,KAAKq3vB,eAAiBrhvB,EAAEgkB,UAE5Bq2N,yBAA0B,SAAShpL,GAC/B,IACIgE,GAAIA,EACJ56C,GAAIA,GACJzwB,KAAKm5D,SAASkO,GAClB,MAAO,CACHgE,GAAIA,EACJ56C,GAAIA,EACJ05C,OAAQ,CACJtiD,GAAG,GAEP0jD,UAAW,YAGnBwoL,aAAc,WACV,IACIlrJ,kBAAmBA,GACnB7oG,KAAKszD,SACT,OAAOj0C,QAAOrf,KAAKm5D,WAAY,CAC3B0V,UAAU,EACVs/E,aAAa,EACbtlD,kBAAmBA,EACnBmlD,gBAAiBqlmB,GACjB7kmB,mBAAoBxuJ,KAAKo3vB,0BAA0BnusB,KAAKjpD,MACxDg6B,UAAU3a,QAAOrf,KAAKszD,OAAO,iBAAkB,CAC3Cl3C,GAAIpc,KAAKm7D,aAEb25L,iCAAiC,EACjCrmG,UAAW,WACP,IAAI6omB,EACAC,EAAgB,QAAUD,EAAuBt3vB,KAAKq3vB,sBAAmB,WAAkC,EAASC,EAAqBzvuB,EAAE5U,SAC/I,OAAOk6nB,GAA4BntoB,KAAKm7D,WAAYo8rB,IACtDtusB,KAAKjpD,SAGfi0P,mBAAoB,WAChBj0P,KAAKm5D,WACL,IAAIq+rB,EAAgBx3vB,KAAK22vB,uBAAuB/mtB,QAChD6e,aAAqB+osB,EAAe,UAExClwe,2BAA4Bh7N,MAC5BiqC,eAAgB,SAAS59E,GAErB,OADA3Y,KAAKwnR,6BAA6B7uQ,GAC1BA,EAAKtV,UACJ,aACDrD,KAAKwgP,oBACL,UACC,eACDxgP,KAAKszD,OAAO,OAAQ36C,EAAK/L,OACzB,UACC,cACD5M,KAAKu+O,eACL,UACC,kBACDv+O,KAAK4jG,cACL,cAEA5jG,KAAKm5D,SAASxgD,OAG3Bk3G,QAAQ21J,IACXtxI,GAAkB,gBAAiBuinB,KACnC,UAAeA,IClQT34lB,IAAM,CAAC,KACPgwH,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMqyuB,IAC9B5yvB,OAAO,OAML4yvB,SAAN,gBAAqCvhsB,GACjCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,OAAQsI,KAAM,UAC3B,CAAEtI,UAAW,MAAOsI,KAAM,SAC1B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,gCACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB6vP,wBACA,OAAO7vP,KAAKozD,WAAW,qBAEvBy8L,sBAAkBjjP,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCk8F,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCy6I,cACA,OAAOrnJ,KAAKozD,WAAW,WAEvBi0F,YAAQz6I,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BohJ,sBACA,OAAOhuJ,KAAKozD,WAAW,mBAEvB46F,oBAAgBphJ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B64G,kBACA,OAAOzlH,KAAKozD,WAAW,eAEvBqyD,gBAAY74G,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B6wO,4BACA,OAAOz9O,KAAKozD,WAAW,yBAEvBqqL,0BAAsB7wO,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCmjP,6BACA,OAAO/vP,KAAKozD,WAAW,0BAEvB28L,2BAAuBnjP,GACvB5M,KAAK6yD,WAAW,yBAA0BjmD,GAM1CujP,sBACA,OAAOnwP,KAAKozD,WAAW,mBAEvB+8L,oBAAgBvjP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BojP,oBACA,OAAOhwP,KAAKozD,WAAW,iBAEvB48L,kBAAcpjP,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC44J,gBACA,OAAOxlK,KAAKozD,WAAW,aAEvBoyG,cAAU54J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BynD,YACA,OAAOr0D,KAAKozD,WAAW,SAEvBiB,UAAMznD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzByrI,YACA,OAAOr4I,KAAKozD,WAAW,SAEvBilF,UAAMzrI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB2pJ,gBACA,OAAOv2J,KAAKozD,WAAW,aAEvBmjG,cAAU3pJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bk5J,gBACA,OAAO9lK,KAAKozD,WAAW,aAEvB0yG,cAAUl5J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BqjP,uBACA,OAAOjwP,KAAKozD,WAAW,oBAEvB68L,qBAAiBrjP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC05J,kBACA,OAAOtmK,KAAKozD,WAAW,eAEvBkzG,gBAAY15J,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B25J,sBACA,OAAOvmK,KAAKozD,WAAW,mBAEvBmzG,oBAAgB35J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCsjP,yBACA,OAAOlwP,KAAKozD,WAAW,sBAEvB88L,uBAAmBtjP,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B6J,WACA,OAAOzW,KAAKozD,WAAW,QAEvB38C,SAAK7J,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBo6J,uBACA,OAAOhnK,KAAKozD,WAAW,oBAEvB4zG,qBAAiBp6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC4wJ,gBACA,OAAOx9J,KAAKozD,WAAW,aAEvBoqG,cAAU5wJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHqlI,sBACA,OAAO7pJ,KAAKozD,WAAW,WAEvBy2F,oBAAgBj9I,GAChB5M,KAAKm0D,YAAY,UAAWvnD,GAE5Bm2I,oBACA,OAAO/iJ,KAAKozD,WAAW,SAEvB2vF,kBAAcn2I,GACd5M,KAAKm0D,YAAY,QAASvnD,GAE9BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI8luB,IAAclwvB,EAASoqB,GAEtChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,UAAWv8I,GAC7Bj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,QAASv8I,GAC3Bj2B,KAAKwyK,aAAa,mBAAoBv8I,GAE1Cu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,WAClB76D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB6qvB,SAAuBhxvB,UAAO,SAAwCP,GAAK,OAAO,IAAKA,GAAKuxvB,GAAwB9wvB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACla6jvB,EAAuB3rtB,UAAiCnlC,MAAqB,CAAE8E,KAAMgsvB,EAAwBzxuB,UAAW,CAAC,CAAC,qBAAsBk4H,eAAgB,SAA+CxpF,EAAIv9C,EAAKgnI,GAGrO,GAH0P,EAALzpF,IACnP/tD,MAAkBw3I,EAAU4G,GAAoB,GAChDp+I,MAAkBw3I,EAAU6E,GAAkB,IACvC,EAALtuF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI0yI,gBAAkBzL,GACnEz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI4rI,cAAgB3E,KAChE6vI,aAAc,SAA6Cv5N,EAAIv9C,GAAgB,EAALu9C,GAC3E/tD,MAAc,cAAe,SAA+DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAxHluB,CAAoI,SAAU,SAA0DkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MACpOK,OAAQ,CAAE26N,kBAAmB,oBAAqB/mJ,UAAW,YAAaJ,mBAAoB,qBAAsB2+C,QAAS,UAAW2G,gBAAiB,kBAAmBxxC,WAAY,aAAc60B,eAAgB,iBAAkBjpH,SAAU,WAAYq9F,YAAa,cAAeg4H,sBAAuB,wBAAyBsS,uBAAwB,yBAA0BI,gBAAiB,kBAAmBhvJ,YAAa,cAAe6uJ,cAAe,gBAAiBnnJ,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB48D,UAAW,YAAanP,QAAS,UAAWoP,QAAS,UAAWpxG,MAAO,QAASgkF,MAAO,QAASke,UAAW,YAAauP,UAAW,YAAaziK,KAAM,OAAQusP,OAAQ,SAAUK,iBAAkB,mBAAoB3pF,YAAa,cAAe93E,SAAU,WAAY/pB,WAAY,aAAc8hG,gBAAiB,kBAAmB2pF,mBAAoB,qBAAsB9wG,YAAa,cAAevwE,SAAU,WAAYp4D,KAAM,OAAQkwJ,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASo6J,iBAAkB,mBAAoBxJ,UAAW,YAAazuF,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE95H,SAAU,WAAYorO,SAAU,WAAY5pF,OAAQ,SAAUC,MAAO,QAAStxE,YAAa,cAAeuxE,WAAY,aAAcl9D,UAAW,YAAaC,WAAY,aAAcxU,cAAe,gBAAiB0xE,QAAS,UAAWC,UAAW,YAAaC,QAAS,UAAWspF,SAAU,WAAYj7J,gBAAiB,kBAAmB4xE,QAAS,UAAW3R,eAAgB,iBAAkBsjW,wBAAyB,0BAA2BplV,gBAAiB,kBAAmBC,yBAA0B,2BAA4Bq7G,cAAe,gBAAiBype,sBAAuB,wBAAyB3klB,iBAAkB,mBAAoBC,qBAAsB,uBAAwBC,eAAgB,iBAAkB+3V,kBAAmB,oBAAqB2sP,4BAA6B,8BAA+Bxpe,6BAA8B,+BAAgCC,sBAAuB,wBAAyBl7G,kBAAmB,oBAAqBklV,oBAAqB,sBAAuBjlV,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bk7G,gBAAiB,kBAAmBC,cAAe,gBAAiBC,cAAe,gBAAiBl7G,YAAa,cAAem7G,YAAa,cAAeC,gBAAiB,kBAAmBE,gBAAiB,kBAAmBE,WAAY,aAAcC,aAAc,eAAgBC,uBAAwB,yBAA0BC,kBAAmB,oBAAqBC,eAAgB,iBAAkBr7G,iBAAkB,mBAAoBy7G,sBAAuB,wBAAyBC,yBAA0B,2BAA4BE,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBjN,WAAY,aAAc0oH,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAem7H,uBAAwB,yBAA0BC,gBAAiB,kBAAmB9lI,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CAC/mH2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0Bg9I,mBAAoBma,IAAKtpG,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAyC4F,EAAIv9C,GAAgB,EAALu9C,IAC3K/tD,QACAA,MAAgB,KACf+E,cAAe,IAzmBlB+rvB,MAi2BAI,UAAN,SAEmBA,SAAoBpxvB,UAAO,SAAqCP,GAAK,OAAO,IAAKA,GAAK2xvB,IACtFA,EAAoB5ivB,UAAiCtO,MAAoB,CAAE8E,KAAMosvB,IACjFA,EAAoB3ivB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC5F6vI,GACAua,GACA/O,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAzL,GACAxqF,GACA1H,IACDyyF,GACHua,GACA/O,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAzL,GACAlyF,MAvCFslsB,MCx2BAC,UAAN,gBAAwC5hsB,GACpCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,cACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,cACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,wBAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B64G,kBACA,OAAOzlH,KAAKozD,WAAW,eAEvBqyD,gBAAY74G,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/ByjrB,8BACA,OAAOrwrB,KAAKozD,WAAW,2BAEvBi9nB,4BAAwBzjrB,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3CujP,sBACA,OAAOnwP,KAAKozD,WAAW,mBAEvB+8L,oBAAgBvjP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC+kI,WACA,OAAO3xI,KAAKozD,WAAW,QAEvBu+E,SAAK/kI,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBynD,YACA,OAAOr0D,KAAKozD,WAAW,SAEvBiB,UAAMznD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBg4G,mBACA,OAAO5kH,KAAKozD,WAAW,gBAEvBwxD,iBAAah4G,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCytH,cACA,OAAOr6H,KAAKozD,WAAW,WAEvBinE,YAAQztH,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3Bu4G,iBACA,OAAOnlH,KAAKozD,WAAW,cAEvB+xD,eAAWv4G,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bs4H,mBACA,OAAOllI,KAAKozD,WAAW,gBAEvB8xE,iBAAat4H,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC43f,sBACA,OAAOxkgB,KAAKozD,WAAW,mBAEvBoxc,oBAAgB53f,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCwjrB,oBACA,OAAOpwrB,KAAKozD,WAAW,iBAEvBg9nB,kBAAcxjrB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCujrB,kBACA,OAAOnwrB,KAAKozD,WAAW,eAEvB+8nB,gBAAYvjrB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B6J,WACA,OAAOzW,KAAKozD,WAAW,QAEvB38C,SAAK7J,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBnB,WACA,OAAOzL,KAAKozD,WAAW,QAEvB3nD,SAAKmB,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBq7Q,yBACA,OAAOjoR,KAAKozD,WAAW,sBAEvB60N,uBAAmBr7Q,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCsjrB,oBACA,OAAOlwrB,KAAKozD,WAAW,iBAEvB88nB,kBAActjrB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB+vQ,mBACA,OAAO38Q,KAAKozD,WAAW,gBAEvBupN,iBAAa/vQ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAEhCm2I,oBACA,OAAO/iJ,KAAKozD,WAAW,SAEvB2vF,kBAAcn2I,GACd5M,KAAKm0D,YAAY,QAASvnD,GAE9BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAImmuB,IAAiBvwvB,EAASoqB,GAEzChoB,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,QAASv8I,GAE/Bu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBkrvB,SAA0BrxvB,UAAO,SAA2CP,GAAK,OAAO,IAAKA,GAAK4xvB,GAA2BnxvB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAC3akkvB,EAA0BhstB,UAAiCnlC,MAAqB,CAAE8E,KAAMqsvB,EAA2B9xuB,UAAW,CAAC,CAAC,wBAAyBk4H,eAAgB,SAAkDxpF,EAAIv9C,EAAKgnI,GAEjP,GAFsQ,EAALzpF,GAC/P/tD,MAAkBw3I,EAAU6E,GAAkB,GACvC,EAALtuF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI4rI,cAAgB3E,KAChElpH,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsB8T,WAAY,aAAc60B,eAAgB,iBAAkBjpH,SAAU,WAAYq9F,YAAa,cAAe4qkB,wBAAyB,0BAA2Blgc,gBAAiB,kBAAmBhvJ,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB+oC,KAAM,OAAQt9E,MAAO,QAASuwD,aAAc,eAAgByV,QAAS,UAAWlV,WAAY,aAAcyqI,OAAQ,SAAUnrL,WAAY,aAAcygE,aAAc,eAAgBs/X,gBAAiB,kBAAmB4rL,cAAe,gBAAiBD,YAAa,cAAe/wiB,YAAa,cAAevwE,SAAU,WAAYp4D,KAAM,OAAQhL,KAAM,OAAQw8Q,mBAAoB,qBAAsBioa,cAAe,gBAAiBnhnB,QAAS,UAAWnP,MAAO,QAAS+8M,aAAc,gBAAkBt+H,QAAS,CAAEyja,cAAe,gBAAiBn5c,eAAgB,iBAAkBjU,YAAa,cAAeF,cAAe,gBAAiBswB,YAAa,cAAerwB,gBAAiB,kBAAmBuiC,mBAAoB,qBAAsB47C,gBAAiB,kBAAmBC,yBAA0B,2BAA4BG,iBAAkB,mBAAoBC,qBAAsB,uBAAwBC,eAAgB,iBAAkB+3V,kBAAmB,oBAAqB+sP,8BAA+B,gCAAiC3pe,sBAAuB,wBAAyBl7G,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2B06R,WAAY,aAAcx6R,YAAa,cAAeC,mBAAoB,qBAAsBE,cAAe,gBAAiBE,iBAAkB,mBAAoBo7G,aAAc,eAAgBl7G,iBAAkB,mBAAoBE,mBAAoB,qBAAsBgklB,sBAAuB,wBAAyBC,oBAAqB,sBAAuBC,kBAAmB,oBAAqBxoe,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBjN,WAAY,aAAc+mS,WAAY,aAAct+K,yBAA0B,2BAA4Bwoe,oBAAqB,sBAAuB/tmB,cAAe,gBAAiBkG,YAAa,cAAe6/H,mBAAoB,sBAAwBnrQ,SAAU,CAACte,MAAsB,CAC/6E2rD,GACAxC,GACAklF,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA4C4F,EAAIv9C,KAAUzL,cAAe,IA5arKosvB,MAklBAO,UAAN,SAEmBA,SAAuB5xvB,UAAO,SAAwCP,GAAK,OAAO,IAAKA,GAAKmyvB,IAC5FA,EAAuBpjvB,UAAiCtO,MAAoB,CAAE8E,KAAM4svB,IACpFA,EAAuBnjvB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC/Fq7I,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAzL,GACAxqF,GACA1H,IACDi+F,GACHvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAvY,GACAzL,GACAlyF,MAnCF8lsB,MCjlBN,IAEIC,GAAqBC,YAMrBC,IAAa,CAAC,OAAQ,UAAW,QAAS,WAC1CC,GAAc,GAEdC,IAAmB,CACnBn9rB,IAAK,CACD8P,GAAI,MACJ56C,GAAI,MACJrU,GAAI,KACJ+tD,OAAQ,OAEZkN,OAAQ,CACJhM,GAAI,SACJ56C,GAAI,SACJrU,GAAI,KACJ+tD,OAAQ,SAEZihJ,OAAQ,CACJ//I,GAAI,SACJ56C,GAAI,SACJrU,GAAI,KACJ+tD,OAAQ,OAEZmN,MAAO,CACHjM,GAAI,eACJ56C,GAAI,eACJrU,GAAI,KACJ+tD,OAAQ,OAEZ7O,KAAM,CACF+P,GAAI,cACJ56C,GAAI,cACJrU,GAAI,KACJ+tD,OAAQ,QAGZwurB,IAA0B,CAC1BhwrB,EAAG,EACH9gD,EAAG,IAGP04C,EAhDYnH,UAgDL,WACH3K,qBAA6B2D,mBAA0ByU,QAAqB,SAAS7wD,GACjF,QAASxR,EAAIi0vB,GAAYh0vB,OAAS,EAAGD,GAAK,EAAGA,IACzC,IAAKi0vB,GAAYj0vB,GAAGoqN,4BAA4B54M,GAC5C,WAKhB,IAAI4ivB,IAAQ/piB,WAAgB,CACxBt6H,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B3+B,QAAS,GACT/uB,KAAM,OACNotvB,YAAa,IACb7+tB,SAAU,gBACVitC,UAAW,CACPwtE,KAAM,CACFhpI,KAAM,OACN4oE,SAAU,IACVxrE,KAAM,EACN0oE,GAAI,GAERijE,KAAM,CACF/oI,KAAM,OACN4oE,SAAU,IACVxrE,KAAM,EACN0oE,GAAI,IAGZ+9E,SAAS,EACTxvF,OAAQ,OACRovJ,sBAAuB,KACvBC,qBAAqB,EACrB2piB,cAAc,EACd/2M,cAAc,KAGtBntd,qBAAsB,WAClB,IAAImkqB,EAA+B,CAC/BF,YAAanpnB,KAAoB,IAAM,IACvC6e,oBAAoB,EACpBtnF,UAAW,CACPwtE,KAAM,CACFhpI,KAAM,OACN4oE,SAAU,IACVxrE,KAAM,EACN0oE,GAAI,GAERijE,KAAM,CACF/oI,KAAM,OACN4oE,SAAU,IACVxrE,KAAM,EACN0oE,GAAI,KAIhB,OAAOvxE,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQA,GAAU,YAAmB7C,WACrC5vC,WAAS+6D,MAAS,CACd/sB,MAAO,gBAAgB/9C,OAAO,GAAoB,QACnDk3uB,IACJ,CACC10rB,OAAQA,GAAU,aAAoB7C,WACtC5vC,WAAS+6D,MAAS,CACd/sB,MAAO,OACP8uF,SAAU,QACXqqmB,IACJ,CACC10rB,OAAQA,GAAUqrE,MAAqB,YAAcrrE,EAAO7C,WAC5D5vC,QAAS,CACLm3H,SAAU,IACV2F,SAAU,IACVmqmB,YAAa,SAIzB/iqB,MAAO,WACH91F,KAAKm5D,WACLn5D,KAAKg5vB,sBAETvupB,mBAAoB,WAChBzqG,KAAKi5vB,UAAW79rB,QAAE,SAASxtD,SA7HT0qvB,oBA6HuC7hvB,KAAKzW,KAAKszD,OAAO,YAAYuX,SAAS7qE,KAAK2wM,YACpG3wM,KAAK+tG,QAAQ,OAAQ,QAAS/tG,KAAKi5vB,UAC/BT,IAAWhxuB,SAASxnB,KAAKszD,OAAO,QAAQrhD,gBACxCjS,KAAK2wM,WAAWqqC,SAAQ5/K,QAAE,SAASxtD,SA/HxB0qvB,kBAiIft4vB,KAAKm5D,YAETi/B,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAKm7D,WAAWvtD,SA1IN,YA2IV5N,KAAKwrN,WAAW59M,SAzIE0qvB,oBA0IlBt4vB,KAAK2wM,WAAW/iM,SAAS0qvB,GAAqBzlvB,OAAO7S,KAAKszD,OAAO,SAASrhD,eAC1EjS,KAAK2wM,WAAW/iM,SA1IE0qvB,oBA2IlBt4vB,KAAKk5vB,mBAAmB,SACxBl5vB,KAAKk5vB,mBAAmB,UAE5BA,mBAAoB,SAASpuvB,GACzB,IAAIikH,EAAU,KAAOjkH,EAAMmH,cAC3Bw8C,SAAiBzuD,KAAK2wM,WAAY5hF,GAClC/uH,KAAKszD,OAAO,UAAYxoD,IAAU2jD,QAAgBzuD,KAAK2wM,WAAY5hF,EAAS/uH,KAAKw0I,KAAKvrF,KAAKjpD,QAE/Fg5vB,mBAAoB,WAChB,IAAKz8qB,SAASv8E,KAAKszD,OAAO,aAG1B,KAAI6lsB,EAAmBn5vB,KAAKszD,OAAO,YAAYphD,MAAM,KAAK,GACtDknvB,EAAqBp5vB,KAAKszD,OAAO,YAAYphD,MAAM,KAAK,GAI5D,OAHAlS,KAAKszD,OAAO,cAAYj0C,MAAO,CAC3BqsD,eAAgBitrB,KACjBD,IAAiBS,KACZC,OACC,aACA,WACA,QACDp5vB,KAAKszD,OAAO,YAAY7iC,IAAM,IAAM2ouB,EACpCp5vB,KAAKszD,OAAO,YAAY+X,IAAM,IAAM+trB,KAGhDzniB,MAAO,WACH,OAAO3xN,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAAW+zE,OAAO,WAC/CvV,aAAav+D,KAAKq5vB,cAClBr5vB,KAAKq5vB,aAAet5sB,WAAW//C,KAAKw0I,KAAKvrF,KAAKjpD,MAAOA,KAAKszD,OAAO,iBACnErK,KAAKjpD,QAEXkxN,cAAe,WACX,OAAOuniB,IAEXpniB,iBAAkB,WACd,OAAOrxN,KAAKm5D,WAxKO,KA0KvBz1C,SAAU,WACN66C,aAAav+D,KAAKq5vB,cAClBr5vB,KAAKm5D,YAETo9B,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,OACDrD,KAAK2wM,WAAW7iM,YAAYwqvB,GAAqB3/uB,EAAK0d,eACtDr2B,KAAK2wM,WAAW/iM,SAAS0qvB,GAAqBzlvB,OAAO8F,EAAK/L,OAAOqF,eACjE,UACC,UACGjS,KAAKi5vB,UACLj5vB,KAAKi5vB,SAASxivB,KAAKkC,EAAK/L,OAE5B,UACC,eACD5M,KAAKk5vB,mBAAmB,SACxB,UACC,eACDl5vB,KAAKk5vB,mBAAmB,SACxB,UACC,cACD,cAEAl5vB,KAAKm5D,SAASxgD,OAI9Bu7H,GAzMkB,UAyMa0knB,KChO/B,UDiOeA,IEnNf,IAAI32vB,KAASk8D,WACTm7rB,IAAU,KACVC,IAAc,GAuEdC,IAAwB,CAAC/mqB,EAAOzvE,KAChC,IACIy2uB,WAAYA,EACZC,YAAaA,EACbntrB,aAAcA,EACd3G,YAAaA,GACb5iD,EACJ,OAAQyvE,OACC,WACD,MAAO,CACHl3B,IAAK,GAAID,KAAM,QAElB,YACD,MAAO,CACHC,IAAK,GAAI+b,MAAO,QAEnB,cACD,MAAO,CACHD,OAAQ,GAAI/b,KAAM,QAErB,eACD,MAAO,CACH+b,OAAQ,GAAIC,MAAO,QAEtB,aACD,MAAO,CACH/b,IAAK,GAAID,KAAM/gD,KAAK2zC,MAAM0X,EAAc,EAAI6zrB,EAAa,QAE5D,cACD,MAAO,CACHl+rB,IAAKhhD,KAAK2zC,MAAMqe,EAAe,EAAImtrB,EAAc,GAAIp+rB,KAAM,QAE9D,eACD,MAAO,CACHC,IAAKhhD,KAAK2zC,MAAMqe,EAAe,EAAImtrB,EAAc,GAAIpirB,MAAO,QAE/D,SACD,MAAO,CACH/b,IAAKhhD,KAAK2zC,MAAMqe,EAAe,EAAImtrB,EAAc,GAAIp+rB,KAAM/gD,KAAK2zC,MAAM0X,EAAc,EAAI6zrB,EAAa,IAExG,QAED,MAAO,CACHpirB,OAAQ,GAAI/b,KAAM/gD,KAAK2zC,MAAM0X,EAAc,EAAI6zrB,EAAa,MAIxEE,IAAiC,CAAC/vrB,EAAW6sE,EAAauxE,KAC1D,IAAI4xiB,EAAqBC,EAAmBC,EAAoBC,EAAkBC,EAAoBC,EAAqBC,EAAqBC,EAAmBC,EAAsBC,EAAoBC,EAAmBC,IAE5Nd,WAAYA,GACZC,YAAaA,GACbntrB,aAAcA,GACd3G,YAAaA,IACboiJ,EACJ,OAAQp+I,EAAUh/D,QAAQ,gBAAiB,SAClC,KACD,MAAO,CACHysE,OAAQ,QAAUuirB,EAAsBnjnB,EAAYp/D,cAAW,MAAiCuirB,EAAsBrtrB,GAAemtrB,GAAcjjnB,EAAYl7E,IAAKA,IAAK,GAAID,KAAM,QAAUu+rB,EAAoBpjnB,EAAYn7E,YAAS,MAA+Bu+rB,EAAoB,GAAIvirB,MAAO,QAAUwirB,EAAqBrjnB,EAAYn/D,aAAU,MAAgCwirB,EAAqB,QAEjZ,OACD,MAAO,CACHv+rB,IAAK,QAAUw+rB,EAAmBtjnB,EAAYl7E,WAAQ,MAA8Bw+rB,EAAmBxtrB,GAAemtrB,GAAcjjnB,EAAYp/D,OAAQA,OAAQ,GAAI/b,KAAM,QAAU0+rB,EAAqBvjnB,EAAYn7E,YAAS,MAAgC0+rB,EAAqB,GAAI1irB,MAAO,QAAU2irB,EAAsBxjnB,EAAYn/D,aAAU,MAAiC2irB,EAAsB,QAE9Y,OACD,MAAO,CACH3irB,MAAO,QAAU4irB,EAAsBzjnB,EAAYn/D,aAAU,MAAiC4irB,EAAsBt0rB,GAAc6zrB,GAAahjnB,EAAYn7E,KAAMA,KAAM,GAAIC,IAAK,QAAU4+rB,EAAoB1jnB,EAAYl7E,WAAQ,MAA+B4+rB,EAAoB,GAAI9irB,OAAQ,QAAU+irB,EAAuB3jnB,EAAYp/D,cAAW,MAAkC+irB,EAAuB,QAErZ,QACD,MAAO,CACH9+rB,KAAM,QAAU++rB,EAAqB5jnB,EAAYn7E,YAAS,MAAgC++rB,EAAqBz0rB,GAAc6zrB,GAAahjnB,EAAYn/D,MAAOA,MAAO,GAAI/b,IAAK,QAAU++rB,EAAoB7jnB,EAAYl7E,WAAQ,MAA+B++rB,EAAoB,GAAIjjrB,OAAQ,QAAUkjrB,GAAuB9jnB,EAAYp/D,cAAW,OAAkCkjrB,GAAuB,MAI/Z,SA/IA,aAAgB//tB,EAASgguB,EAAa3B,GAClC,IAAIjnuB,GAAUqzC,SAAczqC,GAAWA,EAAU,CAC7CA,QAASA,GAETg/G,GAAQv0E,SAAcu1rB,GAAeA,OAAc,EACnD/uvB,GAAOw5D,SAAcu1rB,QAAe,EAASA,GAE7C5rmB,SAAU6rmB,GACV7ouB,EACJ,GAAI,SAAsC4nH,EAAMx/G,SAAU,CACtD,IACIA,SAAUA,GACVw/G,EACA5vE,EAAY4vE,EAAM5vE,WA2BJ5vC,OAAYuiD,OAASviD,IAAaA,EAASxS,SAAS,OAAS,YAAc,UA3B1DkzuB,CAAoB1guB,GACnD2guB,KAAep+qB,OAASviD,GAAYA,EAAW,GAAGnY,OAAOmY,EAASuhC,IAAK,KAAK15C,OAAOmY,EAASshC,KAAM,KAAKz5C,OAAOmY,EAASq9C,OAAQ,KAAKx1D,OAAOmY,EAASs9C,QAEpJ23E,UAAW2rmB,GACXhpuB,EACAm4D,EA4BY53E,IACHonvB,IAAYpnvB,IANNA,KACvB,IAAI43E,GAAa3uB,QAAE,SAASyP,SAAS9E,MACrCwzrB,WAAYpnvB,GAAO43E,EACZA,GAI0B8wqB,CAAqB1ovB,GA9BjC2ovB,CAAkBH,GAgCjB,EAACzmuB,EAAW01C,KAClC,IAAImxrB,EAAmB,iCAAiCl5uB,OAAO+nD,EAAW,cAC1E11C,EAAUy4E,WAAW,SAAS/+F,SAASmtvB,IAjCnCC,CAAoBjxqB,EAAYngB,IAChCvqD,QAAOuS,EAAS,CACZsC,UAAW61D,EACX6hI,yBAAyB,EACzB38D,UAAW,SAASt2I,GA+BP,EAACub,EAAW01C,EAAW5vC,KAC5C,IACI8wC,YAAa2urB,EACbrwhB,aAAcswhB,GACdxluB,EAAUiI,WAAWyT,QAAQ5rC,IAAI,GACjCgkN,EAAa,CACbyxiB,WAAYA,EACZC,YAAaA,EACbntrB,aAActqE,IAAO89D,YACrB6F,YAAa3jE,IAAO49D,YAEpB42E,GAAcl6D,SAASviD,GAAYw/tB,IAAsBx/tB,EAAUguL,GAAchuL,EACjF11B,EAASq1vB,IAA+B/vrB,EAAW6sE,EAAauxE,GACpE9zL,EAAU6nC,IAAIz3D,IA3CF22vB,CAAmBlxqB,EAAYngB,EAAW5vC,GAC1C,MAAS4guB,GAAqDA,EAAcjivB,OAIxF0G,QAAOuS,EAAS,CACZnmB,KAAMA,EACNotvB,YAAaA,EACbjqmB,SAAU,SAASj2I,MACfyiD,MAAEziD,EAAKnR,SAAS3G,SAChB,SAA4D45vB,EAAa9hvB,MAGjF2gvB,OAAUl+rB,MAAE,SAASyP,SAAS9E,MAC9B,IAAI6yrB,IAAMU,IAAS1nuB,GAAS6iH,QC3CzB,IAAIymnB,GAAW,SAAS51qB,EAAK61qB,EAAWv7B,GAC3Cu7B,EAAYA,GAAa7usB,MACzBszqB,EAAUA,GAAWtzqB,MAChB1jD,MAAM8B,QAAQ46E,KACfA,EAAM,CAACA,IAEX,IAAI+qL,EAAY/qL,EAAI5kE,IAAI,CAAC9D,EAAMrK,KAAUshE,SAAKj3D,GAAMzY,KAAKuO,OACrD8F,OAAW2ivB,IAAcA,EAAU,CAC/Bv+uB,KAAMA,EACNrK,MAAOA,EACPG,OAAQA,IAELA,GACRkO,IACMA,IACDA,EAAQ,IAEZA,EAAMrO,MAAQA,KACdiG,OAAWontB,IAAYA,EAAQh/sB,IACvB,IAAI4yD,OAAU3/C,UAAUimB,aAEpC,OAAO+5B,YAAW,KAAMw8L,IAEjB+qf,IAAqB,SAASC,GAIrC,QAHIC,EAAc,CAAC,IAAK,KAAM,KAAM,KAAM,MACtC/ovB,EAAQ,EACRgpvB,EAAcF,EACXE,GAAe,MAAQhpvB,GAAS+ovB,EAAY72vB,OAAS,GACxD82vB,GAAe,KACfhpvB,IAEJgpvB,SAAchhvB,KAAK2zC,MAAM,GAAKqtsB,GAAe,GACtC,GAAG15uB,OAAO05uB,EAAa,KAAK15uB,OAAOy5uB,EAAY/ovB,KAE/CipvB,GAAmB,SAASC,EAAcC,EAAcC,GAC/DA,SAAgB31vB,QAAQ41vB,OACpBv8uB,OAAO,EAAMo8uB,GAAc/9uB,SAAUg+uB,EAAaE,IAAc,EAC3DA,GAAYF,EAAaE,IAC1B,MAEDH,GAsBAI,IAAmB,SAASl7G,GACnC,IAAI5noB,EAAO1M,OAAO0M,KAAK4noB,GACnBxnoB,EAAS,GACbJ,SAAK/S,QAAQmM,GAAOgH,EAAO9P,KAAKs3oB,EAAOxuoB,KAChC,CACH4G,KAAMA,EACNI,OAAQA,IC9EL2ivB,IAAmBjzuB,IAC1B,IAAItW,EAAQsW,EAAK0mE,YAAY,KAC7B,OAAO,MAAe1mE,EAAKkY,OAAOxuB,GAAS,IAEpC+1E,IAAUz/D,IACjB,IAAItW,EAAQsW,EAAK0mE,YANO,KAOxB,OAAO,MAAe1mE,EAAKkY,OAAOxuB,EAPV,IAOiC9N,QAAUokB,GAM5DqnE,IAAe,CAACrnE,EAAMkzuB,KAC7B,IAAKlzuB,GAAQ,MAAQA,EACjB,MAAO,GAIX,QAFInW,EAAS,GACTspvB,EAAW,GACNx3vB,EAAI,EAAGA,EAAIqkB,EAAKpkB,OAAQD,IAAK,CAClC,IAAIkzK,EAAO7uJ,EAAK/lB,OAAO0B,GACvB,GArBoB,MAqBhBkzK,EAAyB,CACzB,IAAI49K,EAAWzsU,EAAK/lB,OAAO0B,EAAI,GAtBf,MAuBZ8wV,IACI0ma,IACAtpvB,EAAOrJ,KAAK2yvB,GACZA,EAAW,IAEftklB,EAAO49K,GAEX9wV,IAEJw3vB,GAAYtklB,EAKhB,GAHIsklB,GACAtpvB,EAAOrJ,KAAK2yvB,GAEZD,EACA,QAASpznB,EAAK,EAAGA,EAAKj2H,EAAOjO,OAAQkkI,IACjCj2H,EAAOi2H,GAAMsznB,GAAY,IAAMtznB,EAAK,GAAKj2H,EAAOi2H,EAAK,GAAIuznB,GAAmBxpvB,EAAOi2H,KAG3F,OAAOj2H,GAEAwpvB,GAAqB,SAAShpmB,GACrC,OAAOA,EAAStoJ,QAAQ,WAAY,OAE7BqxvB,GAAc,WACrB,IAAIvpvB,EAAS,GACbo2D,gBAAK/oE,UAAW,CAACykB,EAAG8gE,KACZA,IACI5yE,IACAA,GApDY,KAsDhBA,GAAU4yE,KAGX5yE,GCjDX,SACI7S,gBACe08E,SAASx8E,UAAU,IAAMC,KAAKm8vB,YAAcn8vB,KAAKo8vB,eACvD1guB,MAAM17B,KAAMD,WAErBq8vB,cAAcC,EAAUh5vB,EAAMi5vB,EAAanqvB,GACvCnS,KAAKqD,KAAOA,GAAQ,GACpBrD,KAAKq8vB,SAAWA,GAAY,IAAIA,IAAa,GAC7Cr8vB,KAAK+rC,WAAa/rC,KAAKu8vB,mBAAmBv8vB,KAAKq8vB,UAC/Cr8vB,KAAKw8vB,aAAeP,GAAYj8vB,KAAK+rC,WAAY1oC,GACjDrD,KAAKmS,IAAMA,GAAOnS,KAAKu8vB,mBAAmBv8vB,KAAKy8vB,mBAAmB,GAClEz8vB,KAAK6oB,KAAOozuB,GAAYj8vB,KAAK+rC,WAAY1oC,GACzCrD,KAAK08vB,SAAW18vB,KAAKq8vB,SAAS37uB,IAAIsC,IAC9B,IACI7Q,IAAKA,GACL6Q,EACJ,OAAO7Q,IAENnS,KAAKupnB,UACNvpnB,KAAK08vB,SAASrzvB,KAAKrJ,KAAKmS,KAE5BnS,KAAK28vB,YAAYL,GAErBH,YAAYtzuB,EAAMyzuB,EAAaI,GAC3B18vB,KAAK6oB,KAAOA,GAAQ,GACpB7oB,KAAK08vB,SAAWA,GAAY,GAG5B,QAFIL,EAAW,GACXrqvB,EAAQk+E,IAAarnE,GAAM,GACtBrkB,EAAI,EAAGA,EAAIwN,EAAMvN,OAAS,EAAGD,IAAK,CACvC,IAAIs2B,EAAO9oB,EAAMxN,GACbo4vB,EAAe,CACfzqvB,IAAKnS,KAAK08vB,SAASl4vB,IAAMs2B,EACzBz3B,KAAMilF,IAAQxtD,IAElBuhuB,EAAShzvB,KAAKuzvB,GAElB58vB,KAAKq8vB,SAAWA,EAChBr8vB,KAAKw8vB,aAAe3zuB,EACpB7oB,KAAKqD,KAAOilF,IAAQz/D,GACpB7oB,KAAKmS,IAAMnS,KAAK08vB,SAASj4vB,OAASzE,KAAK08vB,SAAS18vB,KAAK08vB,SAASj4vB,OAAS,GAAKokB,EAC5E7oB,KAAK+rC,WAAa/5B,EAAMvN,OAAS,EAAIuN,EAAMA,EAAMvN,OAAS,GAAK,GAC/DzE,KAAK28vB,YAAYL,GAErBK,YAAYL,GACRt8vB,KAAKs8vB,cAAgBA,EACrBt8vB,KAAKwgK,KAAO,EACZxgK,KAAK68vB,aAAe,IAAI7usB,KACxBhuD,KAAK88vB,UAAY,GACjB98vB,KAAK+8vB,YAAc,GAEvBN,kBACI,IAAIJ,EAAW,IAAIr8vB,KAAKq8vB,UACxB,OAAKr8vB,KAAKupnB,UACN8yI,EAAShzvB,KAAK,CACV8I,IAAKnS,KAAKmS,IACV9O,KAAMrD,KAAKqD,OAGZg5vB,EAEX9yI,SACI,MAAO,KAAOvpnB,KAAK6oB,KAEvBizuB,mBACI,OAAO97vB,KAAKs8vB,YAAc,GAAKR,IAAiB97vB,KAAKqD,MAEzDsZ,OAAOC,GACH,OAAOA,GAAQ5c,KAAKmS,MAAQyK,EAAKzK,IAErC6qvB,cACI,IAAItqvB,EAAS,IAAIuqvB,GAAej9vB,KAAKq8vB,SAAUr8vB,KAAKqD,KAAMrD,KAAKs8vB,YAAat8vB,KAAKmS,KACjFO,SAAOP,IAAMnS,KAAKmS,IAClBO,EAAO8tJ,KAAOxgK,KAAKwgK,KACnB9tJ,EAAOmqvB,aAAe78vB,KAAK68vB,aAC3BnqvB,EAAOoqvB,UAAY98vB,KAAK88vB,UACxBpqvB,EAAOqqvB,YAAc/8vB,KAAK+8vB,YAC1BrqvB,EAAOwqvB,kBAAoBl9vB,KAAKk9vB,kBAChCxqvB,EAAO6pT,SAAWv8T,KAAKu8T,SAChB7pT,EAEX6pvB,mBAAmBF,EAAU1srB,GACzB,OAAO0srB,EAAS37uB,IAAIsxE,GAAQriB,EAASusrB,GAAmBlqqB,EAAK3uF,MAAQ2uF,EAAK3uF,MAAMi7B,KDzF5D,MC4F5B,SAAe2+tB,GCkBfE,GA9FA,UACIt9vB,YAAY+xB,GACRA,KAAUs1E,OAAct1E,EAAS,IACjC5xB,KAAK8lI,cAAan1C,OAAc3wF,KAAKm6H,YAAYvoG,IACjD5xB,KAAKo9vB,aAAczsqB,SAAc3wF,KAAKq9vB,aAAazruB,IACnD5xB,KAAKs9vB,cAAe3sqB,SAAc3wF,KAAKu9vB,cAAc3ruB,IACrD5xB,KAAKw9vB,eAAc7sqB,OAAc3wF,KAAKy9vB,aAAa7ruB,IACnD5xB,KAAK09vB,qBAAsB/sqB,SAAc3wF,KAAK29vB,qBAAqB/ruB,IACnE5xB,KAAK49vB,kBAAmBjtqB,SAAc/+D,EAAQisuB,eAAiB,aAEnE34J,SAAS44J,GACL,MAAO,GAEXC,WAAWnhvB,EAAMvZ,IACjB26vB,gBAAgBF,EAAiBz6vB,IACjC46vB,YAAY5psB,IACZ6psB,UAAU7psB,EAAO8psB,IACjBC,UAAU/psB,EAAO8psB,IACjBE,gBAAgB5hC,EAAU4N,EAAY8zB,IACtCG,gBAAgB7hC,EAAU4N,EAAY8zB,IACtCI,cAAclqsB,IACdmqsB,gBAAgBnqsB,IAChBoqsB,yBACI,OAxB6B,IA0BjCC,+BAA+Br9oB,EAASg7oB,GACpC,IAAI3pvB,EAAS,GACbo2D,gBAAKu4C,EAAS,CAAC78F,EAAGi6M,KACd,IAAIkgiB,EAAW3+vB,KAAK4+vB,gBAAgBngiB,EAAO49hB,GAC3C3pvB,EAAOrJ,KAAKs1vB,KAETjsvB,EAEXksvB,gBAAgB9yB,EAASuwB,GACrB,IAAIlqvB,EAAMnS,KAAK8lI,WAAWgmmB,GACtB6yB,EAAW,IAAI1B,GAAeZ,EAAUr8vB,KAAKo9vB,YAAYtxB,KAAY9ruB,KAAKs9vB,aAAaxxB,GAAU35tB,GACrGwsvB,SAASn+lB,KAAOxgK,KAAKw9vB,YAAY1xB,QAC7B,IAAW6yB,EAASn+lB,OACpBm+lB,EAASn+lB,KAAO,GAEpBm+lB,EAAS9B,aAAelmc,mBAAkC32T,KAAK09vB,oBAAoB5xB,SAC/E,IAAW6yB,EAAS9B,eACpB8B,EAAS9B,aAAe,IAAI7usB,MAE5B2wsB,EAASrC,cACTqC,EAASzB,kBAAoBl9vB,KAAK6+vB,YAAY/yB,IAE7C35tB,IACDwsvB,EAASxsvB,IAAMwsvB,EAASnC,cAE5BmC,EAAS7B,UAAY98vB,KAAK49vB,iBAAiB9xB,IAAY,GACvD6yB,EAASpic,SAAWuva,EACb6yB,EAEXE,YAAY/yB,GACR,OAAO,EAEX3xmB,YAAYvoG,GACR,OAAOA,EAAQyoG,SAAWr6H,KAAK8+vB,gBAEnCA,gBAAgBH,GACZ,GAAI,IAAM5+vB,UAAU0E,OAIpB,OAAO4H,OAAO8tB,UAAUjnB,eAAeknB,KAAKukuB,EAAU,WAAaA,EAASxkK,QAAU,KAHlFwkK,EAASxkK,QAAUp6lB,UAAU,GAKrCs9vB,aAAazruB,GACT,OAAOA,EAAQmtuB,UAAY,OAE/BxB,cAAc3ruB,GACV,OAAOA,EAAQotuB,iBAAmB,cAEtCvB,aAAa7ruB,GACT,OAAOA,EAAQqtuB,UAAY,OAE/BtB,qBAAqB/ruB,GACjB,OAAOA,EAAQstuB,kBAAoB,eAEvCC,yBAAyBpyqB,EAAQqyqB,GAC7B,IAAI7rrB,EAAW,IAAIC,MACnB,IACI,IAAI9gE,EAASq6E,OACTihG,OAAUt7K,MACV62H,OAAY72H,GAAQwhE,KAAKmrrB,GAAc9rrB,EAAS1/C,QAAQuruB,GAAcC,QAAc,IAASlrrB,KAAKvzD,GAAS2yD,EAAS15B,OAAOj5B,IAE3H2yD,EAAS1/C,QAAQuruB,GAAc1svB,QAAU,SAExCkO,GACL,OAAO2yD,EAAS15B,OAAOj5B,GAE3B,OAAO2yD,EAASz5B,0CCvGxB,SAPA,UACIj6C,YAAY4pB,EAAW61uB,EAAgB5pI,GACnC11nB,KAAKypB,UAAYA,EACjBzpB,KAAKs/vB,eAAiBA,EACtBt/vB,KAAK01nB,UAAYA,ICOzB6pI,YAVc,EAUdA,cATgB,EAShBA,gBARkB,EAQlBA,mBAPqB,EAOrBA,qBANuB,EAMvBA,sBALwB,EAKxBA,uBAJyB,EAIzBA,kBAHoB,EAGpBA,SAFW,MCsBX,IAAIt9vB,MAASk8D,SA0Sb,UAzSA,kBAAuCqhsB,GACnC3/vB,YAAY+xB,GAER9xB,MADA8xB,GAAUs1E,SAAct1E,EAAS,KAEjC,IAAI4+E,EAAe5+E,EAAQxlB,KAC3B,GAAIokG,IAAiB5nG,MAAM8B,QAAQ8lG,GAC/B,MAAMjqF,YAAa,SAEvB,IAAI24e,EAAYtte,EAAQste,WAAa,QACrCl/f,KAAKy/vB,uBAAsB9uqB,OAAcuua,GACzCl/f,KAAK0/vB,oBAAsB1/vB,KAAK2/vB,WAAWzgQ,GAC3C,IAAI0gQ,EAAchuuB,EAAQguuB,aAAe,UACzC5/vB,KAAK6/vB,kBAAiBlvqB,OAAcivqB,GACpC5/vB,KAAK8/vB,eAAiB9/vB,KAAK2/vB,WAAWC,GACtC,IAAIb,EAAW/+vB,KAAKq9vB,aAAazruB,GACjC5xB,KAAK+/vB,YAAc//vB,KAAK2/vB,WAAWZ,GACnC,IAAIiB,EAAYhgwB,KAAKu9vB,cAAc3ruB,GACnC5xB,KAAKigwB,gBAAkBjgwB,KAAK2/vB,WAAWK,GACvC,IAAI3loB,EAAUr6H,KAAKm6H,YAAYvoG,GAC/B5xB,KAAKkgwB,WAAalgwB,KAAK2/vB,WAAWtloB,GAClC,IAAI4koB,EAAWj/vB,KAAKy9vB,aAAa7ruB,GACjC5xB,KAAKmgwB,YAAcngwB,KAAK2/vB,WAAWV,GACnC,IAAIC,EAAmBl/vB,KAAK29vB,qBAAqB/ruB,GACjD5xB,KAAKogwB,oBAAsBpgwB,KAAK2/vB,WAAWT,GAC3Cl/vB,KAAKkyG,MAAQ1B,GAAgB,GAEjC00f,SAASm7J,GACL,OAAOrgwB,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKugsB,UAAU8/D,IAAY,GAE1EtC,WAAWnhvB,EAAMvZ,GACb,OAAOrD,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKsgwB,gBAAgB1jvB,EAAMvZ,IAE1Ei9vB,gBAAgB1jvB,EAAMvZ,GAClB,GAAKuZ,EAGL,KAAI2/S,EAAWv8T,KAAKugwB,gBAAgB3jvB,GACpC5c,KAAK+/vB,YAAYxjc,EAAUl5T,GAC3BuZ,EAAKvZ,KAAOA,EACZuZ,EAAKzK,IAAMnS,KAAKwgwB,qBAAqBjkc,IAEzCyhc,gBAAgBqC,EAAWh9vB,GACvB,OAAOrD,KAAKm/vB,yBAAyB,KACjCn/vB,KAAKygwB,yBAAyBJ,GAC9BrgwB,KAAK0gwB,kBAAkBL,EAAWh9vB,GAAM,KAGhD46vB,YAAY5psB,GACR,OAAOA,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,IAAMn/vB,KAAK2gwB,YAAY/jvB,KAElFshvB,UAAU7psB,EAAOussB,GACb,IAAIC,EAAsB7gwB,KAAKugwB,gBAAgBK,GAC3Cn2qB,EAAQzqF,KAAK8gwB,uBAAuBD,GAOxC,OANgBxssB,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,KAC5Dn/vB,KAAK+gwB,8BAA8BnkvB,EAAMgkvB,GACzC,IAAIrkc,EAAWv8T,KAAKugwB,gBAAgB3jvB,GACpC5c,KAAK2gwB,YAAY/jvB,GACjB6tE,EAAMphF,KAAKkzT,MAInB6hc,UAAU/psB,EAAOussB,GACb,IAAIC,EAAsB7gwB,KAAKugwB,gBAAgBK,GAC3Cn2qB,EAAQzqF,KAAK8gwB,uBAAuBD,GAOxC,OANgBxssB,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,KAC5Dn/vB,KAAK+gwB,8BAA8BnkvB,EAAMgkvB,GACzC,IAAIrkc,EAAWv8T,KAAKugwB,gBAAgB3jvB,GAChCokvB,EAAahhwB,KAAKihwB,YAAY1kc,GAClC9xO,EAAMphF,KAAK23vB,MAInB3C,gBAAgB5hC,EAAU4N,EAAY8zB,GAClC,GAAI9zB,EAAWf,WAAa,EACxB,OAAOe,EAAW3B,WAAWn1pB,SAEjCvzE,KAAKygwB,yBAAyBtC,GAC9B,IAAI5qrB,EAAW82pB,EAAW3B,WAAWn1pB,SAAW,IAAIC,MAChDs3pB,EAAS9quB,KAAKkhwB,oBAClBp2B,SAAOE,cAAcvO,GACrBqO,EAAO9jZ,OAAS,KACZ,IAAIn9I,EAAUihiB,EAAOp4tB,OAAOR,MAAM,KAAK,GACnC45tB,EAAU9ruB,KAAK0gwB,kBAAkBvC,EAAsB1hC,EAASp5tB,MAAM,GAC1ErD,KAAKmgwB,YAAYr0B,EAASrP,EAASj8jB,MACnCxgK,KAAKogwB,oBAAoBt0B,EAASrP,EAAS0kC,kBAC3CnhwB,KAAK8/vB,eAAeh0B,EAASjiiB,GAC7Bt2H,EAAS1/C,WAEbi3sB,EAAO3jZ,QAAUvmU,GAAS2yD,EAAS15B,OAAOj5B,GACnC2yD,EAEXgrrB,cAAclqsB,GACN,IAAMA,EAAM5vD,OACZzE,KAAKohwB,oBAAoB/ssB,EAAM,IAE/Br0D,KAAKqhwB,uBAAuBhtsB,GAGpC+ssB,oBAAoBt/a,GAKhB,QAJIj4I,EAAU7pM,KAAKshwB,gBAAgBx/a,GAC/BwnY,EAAarntB,GAAOy6F,KAAKmtG,GACzB03jB,EAAc,IAAIC,YAAYl4C,EAAW7ktB,QACzCgmF,EAAQ,IAAIgS,WAAW8kqB,GAClB/8vB,EAAI,EAAGA,EAAI8ktB,EAAW7ktB,OAAQD,IACnCimF,EAAMjmF,GAAK8ktB,EAAW3snB,WAAWn4F,GAErC,IAAIy8U,EAAO,IAAIh/U,GAAO2hV,KAAK,CAAC29a,GAAc,CACtC91vB,KAAM,6BAEV+0U,UAAiBsB,EAAKz+U,KAAM,KAAM49U,GAEtCogb,uBAAuBllC,GACnB,IACIslC,EAAM,IAkLlB,eACI,IAAKC,MACD,MAAMxnqB,SAAa,QAAS,SAEhC,OAAOwnqB,MAvLSC,IAEZxlC,EAAMn2tB,QAAQ87U,GAAQ2/a,EAAI3/a,KAAKA,EAAKz+U,KAAMrD,KAAKshwB,gBAAgBx/a,GAAO,CAClEtlP,QAAQ,KAEZ,IAAI5qE,EAAU,CACVnmB,KAAM,OACNm2vB,YAAa,UACbjhb,SAAU,mBAEVptQ,EAAW,IAAIC,MACfiurB,EAAII,cACJJ,EAAII,cAAcjwuB,GAASztB,KAAKovE,EAAS1/C,SAEzC0/C,EAAS1/C,QAAQ4tuB,EAAIK,SAASlwuB,IAElC2hD,EAASW,KAAK+sQ,GAAQT,UAAiB,YAAa,KAAMS,IAE9Dqgb,gBAAgBx/a,GACZ,IAAIvlB,EAAWv8T,KAAKugwB,gBAAgBz+a,GACpC,OAAO9hV,KAAK6/vB,eAAetjc,IAAa,GAE5Ckkc,yBAAyBsB,GACrB,IAAK/hwB,KAAKgiwB,kBAAkBD,IAAkB/hwB,KAAKs9vB,aAAayE,EAAcpD,UAC1E,MAAM,IAAIsD,GAAgBC,qBAA6BH,GAG/DhB,8BAA8BnkvB,EAAMgkvB,GAChC,IAAIrkc,EAAWv8T,KAAKugwB,gBAAgB3jvB,GAChC+mH,EAAU3jI,KAAKmiwB,sBAAsB5lc,EAAU3/S,EAAKmvB,YACpDswtB,EAAWuE,EAAenE,kBAC1B7zI,EAAc,GAClByzI,EAASr2vB,QAAQgsF,IAGb,GAFA42hB,EAAcqzI,GAAYrzI,EAAa52hB,EAAK3uF,MAC9BrD,KAAKoiwB,kBAAkBpwqB,EAAK7/E,IAAKy2mB,KAC/Bjlf,EACZ,MAAM,IAAIs+nB,GAAgBC,SAAiBtlvB,KAIvD8jvB,kBAAkBL,EAAWh9vB,EAAMi5vB,GAC/B,IAAIxwB,EAAU,GACd9ruB,KAAK+/vB,YAAYj0B,EAASzouB,GAC1BrD,KAAKigwB,gBAAgBn0B,EAASwwB,GAC9Bt8vB,KAAKkgwB,WAAWp0B,EAASj5tB,OAAO,IAAI4zG,OACpC,IAAI47oB,EAAiBriwB,KAAKugwB,gBAAgBF,GAE1C51qB,OADYzqF,KAAK8gwB,uBAAuBuB,GAClCh5vB,KAAKyiuB,GACJA,EAEXm1B,YAAYn1B,GACR,IAAIw2B,EAAU,GACdtiwB,KAAK+/vB,YAAYuC,EAAStiwB,KAAKo9vB,YAAYtxB,IAC3C9ruB,KAAKigwB,gBAAgBqC,EAAStiwB,KAAKs9vB,aAAaxxB,IAChD,IAAIz3qB,EAAQr0D,KAAKy/vB,oBAAoB3zB,GACrC,GAAIljuB,MAAM8B,QAAQ2pD,GAAQ,CACtB,IAAIkusB,EAAY,GAChBlusB,EAAMruD,QAAQw8vB,IACV,IAAIC,EAAYziwB,KAAKihwB,YAAYuB,GACjCD,EAAUl5vB,KAAKo5vB,KAEnBziwB,KAAK0/vB,oBAAoB4C,EAASC,GAEtC,OAAOD,EAEX3B,YAAYhC,GACR,IAAIpic,EAAWv8T,KAAKugwB,gBAAgB5B,GAChC+D,EAAmB1iwB,KAAK2iwB,iBAAiBhE,EAAStC,UAClD5xqB,EAAQzqF,KAAK8gwB,uBAAuB4B,GACpCnwvB,EAAQk4E,EAAMj4E,QAAQ+pT,GAC1B9xO,EAAMh4E,OAAOF,EAAO,GAExBuuvB,uBAAuB8B,GACnB,IAAKA,EACD,OAAO5iwB,KAAKkyG,MAEhB,IAAI2wpB,EAAY7iwB,KAAKy/vB,oBAAoBmD,GACzC,OAAKh6vB,MAAM8B,QAAQm4vB,IAEf7iwB,KAAK0/vB,oBAAoBkD,EADzBC,EAAY,IAGTA,EAEXtiE,UAAU8/D,GACNrgwB,KAAKygwB,yBAAyBJ,GAC9B,IAAIhE,EAAWgE,EAAU5D,kBAErBqG,EAAiB9iwB,KAAKkyG,MAC1B,GAFmBmqpB,GAAYA,EAAS53vB,OAAS,GAAI43vB,EAASA,EAAS53vB,OAAS,GAAG0N,IAEjE,CACd,IAAI4wvB,EAAiB/iwB,KAAK2iwB,iBAAiBtG,GAC3CyG,EAAiBC,GAAkB/iwB,KAAKy/vB,oBAAoBsD,IAAmB,GAEnF,YAAKC,iCAAiCF,GAC/B9iwB,KAAK0+vB,+BAA+BoE,EAAgBzG,GAE/D2G,iCAAiCC,GAC7B,IAAIltpB,EAAQ,GACZktpB,EAAYj9vB,QAAQsS,IAChB,IAAIjV,EAAOrD,KAAKo9vB,YAAY9kvB,GACxBy9F,EAAM1yG,GACNrD,KAAKwgwB,qBAAqBlovB,GAE1By9F,EAAM1yG,IAAQ,IAI1Bk9vB,gBAAgB3jvB,GACZ,GAAIA,EAAK2smB,SACL,OAAO,KAEX,IAAI72mB,EAAS1S,KAAK2iwB,iBAAiB/lvB,EAAK6/uB,mBACxC,IAAK/pvB,EAED,MAAM,IAAIuvvB,GADMrlvB,EAAK0/uB,YAAc4F,qBAA8BA,gBAC5BtlvB,GAEzC,OAAOlK,EAEXiwvB,iBAAiBtG,GACb,IAAI3kqB,EAAQ13F,KACP4I,MAAM8B,QAAQ2xvB,KACfA,EAAW,IAef,QAbIzzI,EAAc,GACds6I,EAAc,KACdC,EAAkBnjwB,KAAKkyG,MACvB0wN,EAAQ,SAASp+T,IACjB0+vB,EAAcC,EAAgB19tB,KAAK7oB,IAC/B,IAAIwmvB,EAAyB1rqB,EAAM4lqB,aAAa1gvB,IAASpY,IAAM63vB,EAAS53vB,OAAS,EACjF,OAAOizF,EAAMyqqB,sBAAsBvlvB,EAAMgsmB,KAAiByzI,EAAS73vB,GAAG2N,KAAOulF,EAAM0lqB,YAAYxgvB,KAAUy/uB,EAAS73vB,GAAGnB,MAAQ+/vB,OAG7Hx6I,EAAcqzI,GAAYrzI,EAAalxhB,EAAM0lqB,YAAY8F,IACzDC,EAAkBzrqB,EAAM+nqB,oBAAoByD,KAG3C1+vB,EAAI,EAAGA,EAAI63vB,EAAS53vB,SAAW,IAAMD,GAAK0+vB,GAAc1+vB,IAC7Do+T,EAAMp+T,GAEV,OAAO0+vB,EAEXf,sBAAsBr2B,EAASu3B,GAC3B,IAAIlxvB,EAAMnS,KAAK8lI,WAAWgmmB,GACtB0wB,EAAeP,GAAYoH,EAAkBrjwB,KAAKo9vB,YAAYtxB,IAClE,OAAO9ruB,KAAKoiwB,kBAAkBjwvB,EAAKqqvB,GAEvC4F,kBAAkBjwvB,EAAKqqvB,GACnB,OAAOrqvB,GAAYqqvB,EAEvBgE,qBAAqB10B,GACjB,IAAI35tB,EAAMnS,KAAK8lI,WAAWgmmB,GAC1B,OAAK35tB,IACDA,EAAMU,OAAO,IAAI4zG,MACjBzmH,KAAKkgwB,WAAWp0B,EAAS35tB,IAEtBA,EAEX0svB,YAAY/yB,GACR,IAAIw3B,GAAWp8pB,SAAclnG,KAAKy/vB,oBAAoB3zB,GAAU,IAChE,IAAKljuB,MAAM8B,QAAQ44vB,GACf,OAAO,EAEX,QAAS9+vB,EAAI,EAAGA,EAAI8+vB,EAAS7+vB,OAAQD,IACjC,IAAI,SAAc84vB,aAAagG,EAAS9+vB,IACpC,OAAO,EAGf,OAAO,EAEXm7vB,WAAWrivB,GACP,SAAO9E,OAAW8E,GAAQA,KAAO8yE,OAAc9yE,GAEnD0kvB,kBAAkBrD,GACd,OAAOA,EAASrC,aAAeqC,EAASp1I,YAAcvpnB,KAAK2iwB,iBAAiBhE,EAASlC,mBAEzFyE,oBACI,OAAO,IAAIj/vB,GAAO8ouB,aCrS1B,IAAI9ouB,KAASk8D,WAkRb,UAjQA,kBAAuCqhsB,GACnC3/vB,YAAY+xB,GAER9xB,MADA8xB,GAAUs1E,SAAct1E,EAAS,KAEjC5xB,KAAKujwB,aAAe3xuB,EAAQ4xuB,YAC5BxjwB,KAAKyjwB,gBAAkB7xuB,EAAQ8xuB,eAC/B1jwB,KAAK2jwB,cAAgB/xuB,EAAQgyuB,aAC7B5jwB,KAAK6jwB,gBAAkBjyuB,EAAQkyuB,eAC/B9jwB,KAAK+jwB,mBAAoBpzqB,SAAc/+D,EAAQoyuB,uBAAyB,qBAE5E9+J,SAASm7J,GACL,IAAIhE,EAAWgE,EAAU5D,kBACzB,OAAOz8vB,KAAKikwB,gBA1BE,iBA0BoD,CAC9D5H,SAAUA,IACXl4vB,KAAKuO,GAAU1S,KAAK0+vB,+BAA+BhsvB,EAAOA,OAAQ2pvB,IAEzE0B,WAAWnhvB,EAAMvZ,GACb,OAAOrD,KAAKikwB,gBA7BR,SA6BoD,CACpD5H,SAAUz/uB,EAAK6/uB,kBACfH,YAAa1/uB,EAAK0/uB,YAClBj5vB,KAAMA,IAGd26vB,gBAAgBqC,EAAWh9vB,GACvB,OAAOrD,KAAKikwB,gBArCJ,YAqCoD,CACxD5H,SAAUgE,EAAU5D,kBACpBp5vB,KAAMA,IAGd46vB,YAAY5psB,GACR,OAAOA,EAAM3zC,IAAI9D,GAAQ5c,KAAKikwB,gBAvC1B,SAuCsE,CACtE5H,SAAUz/uB,EAAK6/uB,kBACfH,YAAa1/uB,EAAK0/uB,eAG1B4B,UAAU7psB,EAAO8psB,GACb,OAAO9psB,EAAM3zC,IAAI9D,GAAQ5c,KAAKikwB,gBA/C5B,OA+CsE,CACpEC,eAAgBtnvB,EAAK6/uB,kBACrB0H,kBAAmBvnvB,EAAK0/uB,YACxB8H,oBAAqBjG,EAAqB1B,qBAGlD2B,UAAU/psB,EAAOgwsB,GACb,OAAOhwsB,EAAM3zC,IAAI9D,GAAQ5c,KAAKikwB,gBArD5B,OAqDsE,CACpEC,eAAgBtnvB,EAAK6/uB,kBACrB0H,kBAAmBvnvB,EAAK0/uB,YACxB8H,oBAAqBC,EAAkB5H,qBAG/C4B,gBAAgB5hC,EAAU4N,EAAY8zB,GAC9B,IAAM9zB,EAAWf,aACjBe,EAAW3B,WAAW47B,SAAW,IAAI79oB,MAEzC,IAAI9tG,EAAO,CACPyrvB,oBAAqBjG,EAAqB1B,kBAC1C8H,cAAepuvB,KAAKC,UAAU,CAC1BouvB,SAAUn6B,EAAW3B,WAAW47B,SAChCv6B,SAAUtN,EAASp5tB,KACnB2muB,MAAOK,EAAWf,WAClBW,WAAYI,EAAWjB,WACvBc,SAAUzN,EAASj8jB,QAGvBikmB,EAAe,CACfhiwB,IAAKzC,KAAKujwB,aACV/5B,QAASxpuB,KAAK6jwB,iBAAmB,GACjCx+qB,OApEF,OAqEEotB,SAAU,OACVrmG,KAAM,OACsBi+tB,EAAWhB,UACnCtpuB,UAAWoW,KAAKC,UAAUuC,GAC1B8rB,QA/EE,eAiFNk/rB,OAAQ,CACJ+F,WAAYp9qB,MACZq9qB,YAAar9qB,MACbs9qB,QAASt9qB,OAEbo4sB,UAAW,GACXjxqB,OAAO,GAEPlgB,EAAW,IAAIC,MACnB,YAAKmxrB,oBAAoBF,GACzBv4a,uBAAiBu4a,GAAcvwrB,KAAKxhE,KAC/BA,EAAOkyvB,SAAWrxrB,EAAS15B,OAAOnnC,IAAW6gE,EAAS1/C,YACxDsgD,KAAKZ,EAAS15B,QACV05B,EAASz5B,UAEpBwktB,gBAAgB7hC,EAAU4N,EAAY8zB,GAClC,OAAOn+vB,KAAKikwB,gBAhGF,cAgGoD,CAC1DK,SAAUj6B,EAAW3B,WAAW47B,WAGxC/F,cAAclqsB,GACV,IAAI17C,EAAO3Y,KAAK6kwB,iBAAiBxwsB,GAC7BywsB,GAAQ1psB,QAAE,UAAUW,IAAI,CACxBm0Q,QAAS,SACV9gQ,KAAK,CACJiW,OApGF,OAqGE0H,OAAQp0E,EAAKlW,MAEbyluB,EAAkB,CAClBzjsB,QAAS9rB,EAAK8rB,QACd1kC,UAAW4Y,EAAK5Y,WAEpBC,KAAK+kwB,sBAAsB78B,GAC3BlouB,KAAKglwB,4BAA4B98B,EAAiB48B,GAClDA,EAAMj6rB,SAAS,QACfpc,aAAqBq2sB,EAAO,UAC5B/ktB,WAAW,IAAM+ktB,EAAMjkwB,UAE3B29vB,gBAAgBnqsB,GACZ,IAAI17C,EAAO3Y,KAAK6kwB,iBAAiBxwsB,GAC7BowsB,EAAe,CACfhiwB,IAAKkW,EAAKlW,IACV+muB,QAASxpuB,KAAK6jwB,iBAAmB,GACjCx+qB,OAtHF,OAuHE8mQ,aAAc,cACd//U,KAAM,CACFq4B,QAAS9rB,EAAK8rB,QACd1kC,UAAW4Y,EAAK5Y,WAEpB4juB,OAAQ,CACJ+F,WAAYp9qB,MACZq9qB,YAAar9qB,MACbs9qB,QAASt9qB,OAEbo4sB,UAAW,GACXjxqB,OAAO,GAEX,YAAKkxqB,oBAAoBF,GAClBv4a,uBAAiBu4a,GAE5BI,iBAAiBxwsB,GACb,IAAI4wsB,EAAe5wsB,EAAM3zC,IAAI9D,GAAQA,EAAK6/uB,mBAItCyI,EAAU/uvB,KAAKC,UAHR,CACP6uvB,aAAcA,IAGlB,MAAO,CACHxiwB,IAAKzC,KAAKujwB,aACVxjwB,UAAWmlwB,EACXzguB,QApJC,YAuJT0guB,aAAa9wsB,GACT,OAAOA,EAAM3zC,IAAI2iH,GAAMA,EAAGm5nB,cAE9ByH,gBAAgBx/tB,EAAS9rB,GACrB,IAAI0sE,EAnKU,mBAmKD5gD,EAxJZ,MACC,OAwJE8uC,EAAW,IAAIC,MACfixrB,EAAe,CACfhiwB,IAAKzC,KAAKolwB,gBAAgB3guB,EAAS9rB,GACnC6wtB,QAASxpuB,KAAK6jwB,iBAAmB,GACjCx+qB,OAAQA,EACRotB,SAAU,OACVrmG,KAAM,GACNs4vB,UAAW,GACXjxqB,OAAO,GAEX,YAAKkxqB,oBAAoBF,GACzBv4a,uBAAiBu4a,GAActgwB,KAAKuO,KAC/BA,EAAOkyvB,SAAWrxrB,EAAS15B,OAAOnnC,IAAW6gE,EAAS1/C,QAAQnhB,IAChEsD,GAAKu9D,EAAS15B,OAAO7jC,IACjBu9D,EAASz5B,UAEpBirtB,sBAAsB78B,IACd1vtB,SAAWxY,KAAK2jwB,gBAChB3jwB,KAAK2jwB,cAAc,CACfvtmB,SAAU8xkB,IAItBy8B,oBAAoBF,GAChB,IAAIjsvB,SAAWxY,KAAKyjwB,iBAAkB,CAClC,IAAI4B,EAAgB,CAChB77B,QAASi7B,EAAaj7B,QACtBpzkB,SAAUqumB,EAAar4vB,KACvBs4vB,UAAWD,EAAaC,WAE5B1kwB,KAAKyjwB,gBAAgB4B,GACrBZ,EAAaj7B,QAAU67B,EAAc77B,QACrCi7B,EAAar4vB,KAAOi5vB,EAAcjvmB,SAClCqumB,EAAaC,UAAYW,EAAcX,WAEvCt1qB,SAAcq1qB,EAAar4vB,aACpBq4vB,EAAar4vB,MACbq4vB,EAAat4a,cAAgBs4a,EAAa9gC,UACjD8gC,EAAar4vB,KAAOpM,KAAK6puB,gBAAgB46B,EAAar4vB,OAG9Dy9tB,gBAAgB3B,GACZ,IAAI9xkB,EAAW,IAAIn0J,IAAO81tB,SAC1B,QAASoQ,KAAaD,EACd77tB,OAAO8tB,UAAUjnB,eAAeknB,KAAK8tsB,EAAiBC,OAAczqtB,OAAUwqtB,EAAgBC,KAC9F/xkB,EAASxsE,OAAOu+oB,EAAWD,EAAgBC,IAGnD,OAAO/xkB,EAEX4umB,4BAA4B98B,EAAiBo9B,GACzC,QAASn9B,KAAaD,EACd77tB,OAAO8tB,UAAUjnB,eAAeknB,KAAK8tsB,EAAiBC,OAAczqtB,OAAUwqtB,EAAgBC,MAC9F/sqB,QAAE,WAAWgU,KAAK,CACd3jE,KAAM,SACNpI,KAAM8kuB,EACNv7tB,MAAOs7tB,EAAgBC,KACxBt9pB,SAASy6rB,GAIxBF,gBAAgB3guB,EAAS9rB,GACrB,IAAI4svB,EAAcvlwB,KAAKwlwB,gBAAgB,CACnC/guB,QAASA,EACT1kC,UAAWoW,KAAKC,UAAUuC,KAE1Bm3U,EAAY9vV,KAAKujwB,cAAgBvjwB,KAAKujwB,aAAa/wvB,QAAQ,KAAO,EAAI,IAAM,IAChF,OAAOxS,KAAKujwB,aAAezza,EAAYy1a,EAE3CC,gBAAgB1wvB,GAGZ,QAFI2wvB,EAAQ,GACR1svB,EAAO1M,OAAO0M,KAAKjE,GACdtQ,EAAI,EAAGA,EAAIuU,EAAKtU,OAAQD,IAAK,CAClC,IAAI2N,EAAM4G,EAAKvU,GACXoI,EAAQkI,EAAO3C,GACnB,QAAI,MAMJ,GAHI,WACAvF,EAAQ,IAERhE,MAAM8B,QAAQkC,GACd5M,KAAK0lwB,8BAA8BvzvB,EAAKvF,EAAO64vB,OAC5C,CACH,IAAI78rB,EAAO5oE,KAAK2lwB,oBAAoBxzvB,EAAKvF,GACzC64vB,EAAMp8vB,KAAKu/D,IAGnB,OAAO68rB,EAAMnnuB,KAAK,KAEtBonuB,8BAA8BvzvB,EAAKs4E,EAAOg7qB,IACtC38rB,SAAK2hB,EAAO,CAACjmE,EAAG5H,KACZ,IAAIgsD,EAAO5oE,KAAK2lwB,oBAAoBxzvB,EAAKyK,GACzC6ovB,EAAMp8vB,KAAKu/D,KAGnB+8rB,oBAAoBxzvB,EAAKvF,GACrB,OAAOkyB,mBAAmB3sB,GAAO,IAAM2sB,mBAAmBlyB,GAE9DiyvB,YAAY/yB,GACR,IAAI85B,EAAa5lwB,KAAK+jwB,kBAAkBj4B,GACxC,MAAO,kBAAqB85B,GAAaA,EAE7CzroB,YAAYvoG,GACR,OAAOA,EAAQyoG,SAAW,QCnOlCwroB,IA3DA,kBAAuCrG,GACnC3/vB,YAAY+xB,GAER9xB,MADA8xB,GAAUs1E,SAAct1E,EAAS,KAEjC5xB,KAAK+jwB,mBAAoBpzqB,SAAc/+D,EAAQoyuB,uBAAyB,qBACxEhkwB,KAAK8lwB,kBAAoB9lwB,KAAK+lwB,gBAAgBn0uB,EAAQszkB,SAAU,IAAM,IACtEllmB,KAAKgmwB,oBAAsBhmwB,KAAK+lwB,gBAAgBn0uB,EAAQmsuB,YACxD/9vB,KAAKimwB,yBAA2BjmwB,KAAK+lwB,gBAAgBn0uB,EAAQosuB,iBAC7Dh+vB,KAAKkmwB,oBAAsBlmwB,KAAK+lwB,gBAAgBn0uB,EAAQw4G,YACxDpqI,KAAKmmwB,kBAAoBnmwB,KAAK+lwB,gBAAgBn0uB,EAAQw0uB,UACtDpmwB,KAAKqmwB,kBAAoBrmwB,KAAK+lwB,gBAAgBn0uB,EAAQ00uB,UACtDtmwB,KAAKumwB,yBAA2BvmwB,KAAK+lwB,gBAAgBn0uB,EAAQysuB,iBAC7Dr+vB,KAAKwmwB,yBAA2BxmwB,KAAK+lwB,gBAAgBn0uB,EAAQ0suB,iBAC7Dt+vB,KAAKymwB,uBAAyBzmwB,KAAK+lwB,gBAAgBn0uB,EAAQ2suB,eAC3Dv+vB,KAAK0mwB,yBAA2B1mwB,KAAK+lwB,gBAAgBn0uB,EAAQ4suB,iBAEjEt5J,SAASm7J,GACL,IAAIhE,EAAWgE,EAAU5D,kBACzB,OAAOz8vB,KAAKm/vB,yBAAyB,IAAMn/vB,KAAK8lwB,kBAAkBzF,IAAY,GAAMl8vB,KAAK0+vB,GAAa7iwB,KAAK0+vB,+BAA+BmE,EAAWxG,IAEzJ0B,WAAWnhvB,EAAMvZ,GACb,OAAOrD,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKgmwB,oBAAoBppvB,EAAMvZ,IAE9E26vB,gBAAgBqC,EAAWh9vB,GACvB,OAAOrD,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKimwB,yBAAyB5F,EAAWh9vB,IAExF46vB,YAAY5psB,GACR,OAAOA,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKkmwB,oBAAoBtpvB,KAE1FshvB,UAAU7psB,EAAO8psB,GACb,OAAO9psB,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKmmwB,kBAAkBvpvB,EAAMuhvB,KAE9FC,UAAU/psB,EAAOgwsB,GACb,OAAOhwsB,EAAM3zC,IAAI9D,GAAQ5c,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKqmwB,kBAAkBzpvB,EAAMynvB,KAE9FhG,gBAAgB5hC,EAAU4N,EAAY8zB,GAClC,OAAOn+vB,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKumwB,yBAAyB9pC,EAAU4N,EAAY8zB,IAEnGG,gBAAgB7hC,EAAU4N,EAAY8zB,GAClC,OAAOn+vB,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKwmwB,yBAAyB/pC,EAAU4N,EAAY8zB,IAEnGI,cAAclqsB,GACV,OAAOr0D,KAAKm/vB,yBAAyB,IAAMn/vB,KAAKymwB,uBAAuBpysB,IAE3EmqsB,gBAAgBnqsB,GACZ,OAAOr0D,KAAKm/vB,yBAAyB,IAAMn/vB,KAAK0mwB,yBAAyBrysB,IAE7EwqsB,YAAY/yB,GACR,IAAI85B,EAAa5lwB,KAAK+jwB,kBAAkBj4B,GACxC,MAAO,kBAAqB85B,GAAaA,EAE7CzroB,YAAYvoG,GACR,OAAOA,EAAQyoG,SAAW,MAE9B0roB,gBAAgBY,EAAgBC,GAC5BA,SAAkBA,GAAmBt6sB,OAC9B9zC,SAAWmuvB,GAAkBA,EAAiBC,IC9BtD,UACH/mwB,YAAY+xB,GAER5xB,KAAK2vF,UAAWtwE,QAAO,GADvBuS,EAAUA,GAAW,IAErB5xB,KAAK6mwB,gBAAiB,EACtB7mwB,KAAK8mwB,cAAe,EACpB9mwB,KAAK+mwB,qBAAuB,KAC5B/mwB,KAAKgnwB,mBAAqBhnwB,KAAKinwB,yBAAyBr1uB,EAAQs1uB,UAChElnwB,KAAKmnwB,sBAAwBnnwB,KAAKgnwB,mBAClChnwB,KAAKonwB,gBAAkBpnwB,KAAKqnwB,wBAC5BrnwB,KAAKsnwB,kBACLtnwB,KAAKunwB,yBACLvnwB,KAAKwnwB,aAAa51uB,EAAQ61uB,cAC1BznwB,KAAK28vB,cAETA,cACI,IAAIjqvB,EAAS1S,KAAK2vF,SAAS+3qB,iBAAmB1nwB,KAAK2vF,SAAS+3qB,gBAAgBjjwB,OAASzE,KAAK2nwB,qBAAqB3nwB,KAAK2vF,SAAS+3qB,iBAAmB1nwB,KAAK4nwB,eAAe5nwB,KAAK2vF,SAASi5hB,aAC9Ki/I,EAAyB,KACzB7nwB,KAAK6mwB,gBAAiB,EACtB7mwB,KAAK8nwB,qBAELp1vB,GACAmhE,SAAKnhE,GAAQohE,OAAO+zrB,GAEpBA,IAGRN,yBACIvnwB,KAAK+nwB,oBAAsB,IAAIC,IAAuB,CAClDpuC,sBAAuB55tB,KAAK2vF,SAASiqoB,sBACrCC,YAAa75tB,KAAK2vF,SAASs4qB,oBAE/BjowB,KAAKkowB,cAETC,yBAAyBvuC,MACjBl8sB,OAAUk8sB,KACV55tB,KAAK2vF,SAASiqoB,sBAAwBA,GAE1C55tB,KAAKunwB,yBACLvnwB,KAAKo4G,UAETgwpB,iBAAiBplvB,GACb,IACI62sB,YAAaA,EACb3B,UAAWA,GACXl1sB,KACAtF,OAAUw6sB,KACVl4tB,KAAK2vF,SAAS04qB,gBAAkBnwC,MAEhCx6sB,OAAUm8sB,KACV75tB,KAAK2vF,SAASs4qB,kBAAoBpuC,EAClC75tB,KAAKunwB,yBACLvnwB,KAAKo4G,WAGbovpB,aAAaC,GACTznwB,KAAKsowB,cAAgBtowB,KAAKuowB,oBAAoBd,GAC9CznwB,KAAKkowB,cAETM,eAAef,EAAcC,GACzB,OAAKhqvB,SAAUgqvB,MAGR7zrB,OAAK7zE,KAAKyowB,yBAAyBzowB,KAAKgnwB,mBAAoBU,GAAiB,IAAOvjwB,KAAKukwB,IACxFA,IAAiB1owB,KAAKgnwB,oBACtBhnwB,KAAK2owB,yBAET3owB,KAAKwnwB,aAAaC,KACnBtjwB,KAAK,IAAMnE,KAAK2nwB,qBAAqBD,IAP7B1nwB,KAAK4owB,oBAAoBnB,GASxCmB,oBAAoBnB,GAChB,YAAKkB,yBACL3owB,KAAKwnwB,aAAaC,IACX5zrB,SAAK7zE,KAAKo4G,WAErBmwpB,oBAAoBd,GAIhB,GAHKA,IACDA,EAAe,IAEf7+vB,MAAM8B,QAAQ+8vB,GACd,OAAO,IAAIoB,IAAyB,CAChCz8vB,KAAMq7vB,IAGd,GAAIA,aAAwBjI,GACxB,OAAOiI,EAEX,OAAQA,EAAah8vB,UACZ,SACD,OAAO,IAAIq9vB,IAAyBrB,OACnC,SACD,OAAO,IAAIsB,IAAyBtB,GAE5C,OAAO,IAAIoB,IAAyBpB,GAExCG,eAAe/+uB,GACX,IAAI+jmB,EAAY18hB,IAAarnE,GACzBmgvB,EAAU/M,MAAervI,GAC7B,OAAI5snB,KAAKipwB,sBAAsBtK,SAASnC,eAAiBwM,GAC7C,IAAIx1rB,OAAU3/C,UAAUimB,UAE7B95C,KAAKkpwB,gCAAgCt8I,GAEhD+6I,qBAAqBjL,GACjB,OAAIxrsB,SAAalxD,KAAKipwB,sBAAsBtK,SAASjC,SAAUA,IACnD,IAAIlprB,OAAU3/C,UAAUimB,UAE7B95C,KAAKkpwB,gCAAgCxM,GAAU,GAE1DyM,iBAGI,QAFIvgJ,EAAc,GACdwgJ,EAAYppwB,KAAKipwB,sBACdG,IAAcA,EAAUzK,SAASp1I,UAAU,CAC9C,IAAI8/I,EAAcnN,GAAmBkN,EAAUzK,SAASt7vB,MACxDulnB,EAAcqzI,GAAYoN,EAAazgJ,GACvCwgJ,EAAYA,EAAUtL,gBAE1B,OAAOl1I,EAEX0gJ,qBACI,OAAOtpwB,KAAKipwB,sBAAsBtK,SAASjC,SAE/CuM,sBACI,OAAOjpwB,KAAKmnwB,sBAEhBoC,oBAAoBxH,EAAeyH,GAC/B,GAAKzH,EAML,IAHIyH,IACAzH,EAAgB/hwB,KAAKypwB,wBAAwB1H,IAE7C/hwB,KAAKmnwB,uBAAyBnnwB,KAAKmnwB,wBAA0BpF,EAE7D,YADA/hwB,KAAK0pwB,+BAGT,IAAIC,EAAgC3pwB,KAAKmnwB,sBAAsBxI,SAASxsvB,MAAQ4vvB,EAAcpD,SAASxsvB,IACvGnS,KAAKmnwB,sBAAwBpF,EACzB4H,GAAiC3pwB,KAAK6mwB,iBACjC7mwB,KAAK8mwB,cACN9mwB,KAAK4pwB,kBA/IL,cAiJJ5pwB,KAAK6pwB,+BAA+B9H,KAG5C4G,yBACI3owB,KAAKmnwB,sBAAwBnnwB,KAAKgnwB,mBAEtC8C,gBAAgBC,GACZ,OAAO/pwB,KAAK+mwB,qBAAuB/mwB,KAAK+mwB,qBAAqB5iwB,KAAK,IAAMnE,KAAKgqwB,yBAAyBD,IAAc/pwB,KAAKgqwB,yBAAyBD,GAEtJC,yBAAyBD,GACrB,IAAIE,EAAmBjqwB,KAAKipwB,sBAE5B,OADsBjpwB,KAAKkqwB,qBAAqBD,GACzB9lwB,KAAKkwD,IACxB,IAAI81sB,EAAiBnqwB,KAAKoqwB,qBAAqB/1sB,GAC/C41sB,SAAiBtL,SAASzB,oBAAsBiN,EAAeE,QAAQ5lwB,OAChEslwB,EAAYI,EAAehuC,MAAQ9nqB,IAGlDi2sB,eAAeC,EAAqBC,GAChC,OAAOxqwB,KAAKkqwB,qBAAqBK,EAAqBC,GAAuBrmwB,KAAKsmwB,GAAaA,EAAU3jvB,OAAOkrE,GAAQA,EAAK2sqB,SAASrC,cAE1I8N,qBAAqBK,GACjB,IAAIJ,EAAU,GACVluC,EAAQ,GACZsuC,SAAUzkwB,QAAQgsF,GAAQA,EAAK2sqB,SAASrC,YAAc+N,EAAQhhwB,KAAK2oF,GAAQmqoB,EAAM9ytB,KAAK2oF,IAC/E,CACHq4qB,QAASA,EACTluC,MAAOA,GAGf+tC,qBAAqBK,EAAqBC,GACtC,IAAKD,EACD,OAAQ,IAAI/2rB,OAAU3/C,QAAQ,CAAC7zB,KAAKgnwB,qBAAqBlttB,UAE7D,GAAIywtB,EAAoBG,YACpB,OAAQ,IAAIl3rB,OAAU3/C,QAAQ02uB,EAAoBl2sB,OAAOva,UAE7D,GAAI95C,KAAK2qwB,wBAA0BJ,EAAoBK,yBAA2B5qwB,KAAK2qwB,uBACnF,YAAKE,wBAAwBN,EAAqBC,GAAuB,IACjE,IAAIh3rB,OAAU35B,SAASC,UAEnC,IAAIgxtB,EAASP,EAAoBQ,iBAC7BC,EAAoBhrwB,KAAKirwB,aAAaH,GAC1C,OAAIE,IAGJA,EAAoBhrwB,KAAKkrwB,cAAcX,EAAqBC,GAAuBrmwB,KAAKgnwB,IAEpFZ,EAAoBl2sB,OADpB82sB,EAAYA,GAAa,IACazqvB,IAAIi+uB,GAAYA,EAASrC,aAAet8vB,KAAKorwB,qBAAqBzM,EAAU4L,IAAwBvqwB,KAAKqrwB,gBAAgB1M,EAAU4L,IACzKA,EAAoBG,aAAc,EAC3BH,EAAoBl2sB,OAC5B,KACKr0D,KAAK2qwB,wBAA0BJ,EAAoBK,yBAA2B5qwB,KAAK2qwB,yBACnFJ,EAAoBK,uBAAyB5qwB,KAAK2qwB,wBAE/C,KAEX3qwB,KAAKirwB,aAAaH,GAAUE,EAC5BA,EAAkBl3rB,OAAO,YACd9zE,KAAKirwB,aAAaH,KAEtBE,GAEXE,cAAcX,EAAqBC,GAC/B,IAAIQ,EAAoB,KACxB,IACIA,EAAoBhrwB,KAAKsowB,cAAcpjK,SAASqlK,EAAoB5L,gBAC/D/9uB,GACL,OAAO5gB,KAAKsrwB,qBAAqBf,EAAqB3pvB,EAAO4pvB,GAEjE,OAAO32rB,SAAKm3rB,GAAmB7mwB,KAAKgnwB,GAAanrwB,KAAK+nwB,oBAAoBwD,gBAAgBJ,GAAYK,GAAaxrwB,KAAKsrwB,qBAAqBf,EAAqBiB,EAAWhB,IAEjLxM,gBAAgBuM,EAAqBlnwB,GACjC,IAAIoowB,EAAgBlB,EAAoB5L,SACpC+M,EAAc1rwB,KAAK2rwB,qBAAqBtowB,EAAMknwB,GAC9CqB,EAAa5rwB,KAAK6rwB,sBAAsB,SAAUH,EAAanB,GACnE,OAAOvqwB,KAAK8rwB,mBAAmBF,EAAYjzvB,IACvCA,EAAKmlvB,gBAAkB2N,EACvB9yvB,EAAKtV,KAAOA,EACZrD,KAAK+rwB,eAAeC,oBAAoBrzvB,IACzC,IAAM3Y,KAAKsowB,cAActK,gBAAgByN,EAAepowB,GAAM6wE,KAAK8d,IAC7Dy5qB,EAAcliJ,WACfkiJ,EAAcvO,mBAAoB,GAE/BlrqB,IACP,KAKAhyF,KAAK+rwB,eAAeE,mBAJT,CACPnO,gBAAiB2N,EACjBpowB,KAAMA,KAGX,IAAMrD,KAAKkswB,qBAAqB3B,GAAqB,IAE5DxM,WAAWoO,EAAc9owB,GACrB,IAAI+owB,EAAaD,EAAaxN,SAAS3B,cACnC4O,EAAa5rwB,KAAK6rwB,sBAAsB,SAAUM,EAAcA,EAAarO,gBAAiB,CAC9FuO,YAAahpwB,IAEjB,OAAOrD,KAAK8rwB,mBAAmBF,EAAY,CAACjzvB,EAAMs8lB,KACzCA,EAAS0pJ,SAASrC,aACnBt8vB,KAAK+nwB,oBAAoBuE,kBAAkBjpwB,GAE/CsV,EAAKiE,KAAOwvvB,EACZzzvB,EAAK6vE,QAAUnlF,EACfrD,KAAK+rwB,eAAeQ,eAAe5zvB,IACpCiE,GAAQ5c,KAAKsowB,cAAcvK,WAAWnhvB,EAAMvZ,GAAO,KAKlDrD,KAAK+rwB,eAAeS,cAJT,CACPJ,WAAYA,EACZtvJ,SAAUz5mB,KAGf,KACC,IAAIy6vB,EAAkB99vB,KAAKypwB,wBAAwB0C,EAAarO,iBAChE99vB,KAAKkswB,qBAAqBpO,GAC1B99vB,KAAKupwB,oBAAoBzL,KAGjCI,UAAUuM,EAAWtM,GACjB,IAAIyN,EAAa5rwB,KAAK6rwB,sBAAsB,OAAQpB,EAAWtM,GAC/D,OAAOn+vB,KAAK8rwB,mBAAmBF,EAAY,CAACjzvB,EAAMs8lB,KAC9Ct8lB,EAAKiE,KAAOq4lB,EAAS0pJ,SACrBhmvB,EAAKwlvB,qBAAuBA,EAAqBQ,SACjD3+vB,KAAK+rwB,eAAeU,aAAa9zvB,IAClCiE,GAAQ5c,KAAKsowB,cAAcpK,UAAU,CAACthvB,GAAOuhvB,EAAqBQ,UAAW1pJ,IAC5E,IAAIt8lB,EAAO,CACPyzvB,WAAYn3J,EAAS0pJ,SACrBb,gBAAiBK,EAAqBQ,SACtC7hJ,SAAU7H,EAAS0pJ,SAASt7vB,KAC5BimH,SAAU2yoB,GAAYkC,EAAqBQ,SAAS91uB,KAAMoslB,EAAS0pJ,SAASt7vB,OAEhFrD,KAAK+rwB,eAAeW,YAAY/zvB,IACjCg0vB,IACClC,EAAUzkwB,QAAQivmB,GAAYj1mB,KAAKkswB,qBAAqBj3J,EAAS6oJ,iBAAiB,IAC9E6O,IACA3swB,KAAKkswB,qBAAqB/N,GAC1Bn+vB,KAAK2nwB,qBAAqBxJ,EAAqBQ,SAASjC,UACxDyB,EAAqBt8mB,UAAW,KAI5Cu8mB,UAAUqM,EAAWtM,GACjB,IAAIyN,EAAa5rwB,KAAK6rwB,sBAAsB,OAAQpB,EAAWtM,GAC/D,OAAOn+vB,KAAK8rwB,mBAAmBF,EAAY,CAACjzvB,EAAMs8lB,KAC9Ct8lB,EAAKiE,KAAOq4lB,EAAS0pJ,SACrBhmvB,EAAKwlvB,qBAAuBA,EAAqBQ,SACjD3+vB,KAAK+rwB,eAAea,cAAcj0vB,IACnCiE,GAAQ5c,KAAKsowB,cAAclK,UAAU,CAACxhvB,GAAOuhvB,EAAqBQ,UAAW1pJ,IAC5E,IAAIt8lB,EAAO,CACPyzvB,WAAYn3J,EAAS0pJ,SACrBb,gBAAiBK,EAAqBQ,SACtC7hJ,SAAU7H,EAAS0pJ,SAASt7vB,KAC5BimH,SAAU2yoB,GAAYkC,EAAqBQ,SAAS91uB,KAAMoslB,EAAS0pJ,SAASt7vB,OAEhFrD,KAAK+rwB,eAAec,aAAal0vB,IAClCg0vB,IACKA,IACAxO,EAAuBn+vB,KAAKypwB,wBAAwBtL,GACpDn+vB,KAAKkswB,qBAAqB/N,GAC1Bn+vB,KAAKupwB,oBAAoBpL,GACzBA,EAAqBt8mB,UAAW,KAI5Co8mB,YAAYwM,GACR,IACImB,EAAa5rwB,KAAK6rwB,sBAAsB,SAAUpB,EADtCA,EAAUhmwB,OAAS,EAAIgmwB,EAAU,GAAG3M,gBAAkB,MAEtE,OAAO99vB,KAAK8rwB,mBAAmBF,EAAY,CAACjzvB,EAAMs8lB,KAC9Ct8lB,EAAKiE,KAAOq4lB,EAAS0pJ,SACrB3+vB,KAAK+rwB,eAAevmoB,eAAe7sH,IACpCiE,GAAQ5c,KAAKsowB,cAAcrK,YAAY,CAACrhvB,IAAQq4lB,GAAYj1mB,KAAK+rwB,eAAetmoB,cAAc,CAC7F7oH,KAAMq4lB,EAAS0pJ,WACf,KACA8L,EAAUzkwB,QAAQivmB,IACd,IAAIorJ,EAAYrgwB,KAAKypwB,wBAAwBx0J,EAAS6oJ,iBACtD99vB,KAAKkswB,qBAAqB7L,GAC1BrgwB,KAAKupwB,oBAAoBlJ,OAIrCyM,qBAAqBC,EAAaC,GAC9B,IAAIvC,EAAYzqwB,KAAKitwB,8BAA8BF,EAAY5wC,MAAO6wC,GAClEpB,EAAa5rwB,KAAK6rwB,sBAAsB,SAAUpB,EAAWuC,EAAqB,CAClFD,YAAaA,IAEjB,OAAO/swB,KAAK8rwB,mBAAmBF,EAAY,OAAU,CAACpnvB,EAAGjS,IAAUw6vB,EAAY18f,UAAU99P,GAAQ,OAAU,IAAMvS,KAAKkswB,qBAAqBc,GAAqB,IAEpK3O,gBAAgB5hC,EAAU4N,EAAY8zB,GAClC,IAAI+O,EAAgB,KAChB,IAAM7iC,EAAWf,YACjBtpuB,KAAK+nwB,oBAAoBoF,oBAAoB1wC,EAASj8jB,MACtDxgK,KAAK+nwB,oBAAoBuE,kBAAkB7vC,EAASp5tB,MACpD6pwB,EAAgBltwB,KAAKotwB,6BAA6Bz0vB,IAC9CA,EAAK8jtB,SAAWA,EAChB9jtB,EAAKwlvB,qBAAuBA,EAC5Bn+vB,KAAK+rwB,eAAesB,gBAAgB10vB,MAGxCu0vB,GAAiB,IAAI15rB,OAAU3/C,UAAUimB,UAE7C,IAAIpnC,EAASw6vB,EAAc/owB,KAAK,IAAMnE,KAAKsowB,cAAcjK,gBAAgB5hC,EAAU4N,EAAY8zB,IAC/F,OAAI9zB,EAAWf,aAAee,EAAWjB,WAAa,IAClD12tB,EAASA,EAAOwhE,KAAK,KAKjBl0E,KAAK+rwB,eAAeuB,eAJT,CACP7wC,SAAUA,EACVqhC,gBAAiBK,OAKtBzrvB,EAEX4rvB,gBAAgB7hC,EAAU4N,EAAY8zB,GAClC,SAAOtqrB,OAAK7zE,KAAKsowB,cAAchK,gBAAgB7hC,EAAU4N,EAAY8zB,IAEzEM,yBACI,IAAIvmC,EAAYl4tB,KAAK2vF,SAAS04qB,gBAC9B,OAAInwC,GAAaA,EAAY,EAClBA,EAEJl4tB,KAAKsowB,cAAc7J,yBAE9BF,cAAckM,GACV,IAAIp6f,EAAYo6f,EAAU/pvB,IAAIu0lB,GAAYj1mB,KAAKotwB,6BAA6Bz0vB,IACxEA,EAAKiE,KAAOq4lB,EAAS0pJ,SACrB3+vB,KAAK+rwB,eAAewB,kBAAkB50vB,IACvCs8lB,IACH,OAAOphiB,YAAQw8L,GAAWlsQ,KAAK,KAC3B,IAAIkwD,EAAQo2sB,EAAU/pvB,IAAIlc,GAAKA,EAAEm6vB,UACjC,SAAO9qrB,OAAK7zE,KAAKwtwB,qBAAqBxtwB,KAAKsowB,cAAc/J,cAAclqsB,KAASlwD,KAAK,OAAUqnwB,IAC3FxrwB,KAAKytwB,yBAAyBhD,EAAWA,EAAU,GAAG3M,gBAAiB0N,MAE5EA,IACCxrwB,KAAKytwB,yBAAyBhD,EAAWA,EAAU,GAAG3M,gBAAiB0N,KAG/EkC,eAAejD,GACX,IAAIp2sB,EAAQo2sB,EAAU/pvB,IAAIlc,GAAKA,EAAEm6vB,UACjC,OAAO9qrB,SAAK7zE,KAAKsowB,cAAc9J,gBAAgBnqsB,IAEnDi3sB,qBAAqBf,EAAqBiB,EAAWhB,GACjDD,SAAsBvqwB,KAAKypwB,wBAAwBc,GACnDvqwB,KAAK2twB,oBAAoBpD,EAAqBiB,GAC9CxrwB,KAAK6qwB,wBAAwBN,EAAqBC,IAC1C,IAAIh3rB,OAAU35B,SAASC,UAEnC6ztB,oBAAoBpD,EAAqBiB,GACrC,IAAII,EAAa5rwB,KAAK6rwB,sBAAsB,WAAYtB,EAAqBA,GAC7EvqwB,KAAK4twB,yBAAyBhC,GAC9B5rwB,KAAK6twB,+BAA+BjC,GACpC5rwB,KAAK8twB,sBAAsBlC,EAAY,CACnCnivB,UAAW+hvB,EAAU/hvB,UACrBismB,UAAW81I,EAAU91I,UACrBipI,SAAU4L,EAAoB5L,SAC9BpsvB,MAAO,IAGfk7vB,yBAAyBM,EAAiB3E,EAAWoC,GACjD,IAAII,EAAa5rwB,KAAK6rwB,sBAAsB,WAAYkC,EAAiB3E,GACrEhqI,EAAc2uI,EAAgBtpwB,OAClCmnwB,EAAWoC,cAAgB,MAC3BhuwB,KAAK4twB,yBAAyBhC,GAC9B5rwB,KAAK6twB,+BAA+BjC,GACpC,QAASr5vB,EAAQ,EAAGA,EAAQ6snB,EAAc,EAAG7snB,IACzCvS,KAAKiuwB,0BAA0BrC,EAAY,CACvCnivB,UAAW+hvB,EAAU/hvB,UACrBismB,UAAW81I,EAAU91I,UACrBipI,SAAUoP,EAAgBx7vB,GAAOosvB,SACjCpsvB,MAAOA,IAGfvS,KAAK8twB,sBAAsBlC,EAAY,CACnCnivB,UAAW+hvB,EAAU/hvB,UACrBismB,UAAW81I,EAAU91I,UACrBipI,SAAUoP,EAAgB3uI,EAAc,GAAGu/H,SAC3CpsvB,MAAO6snB,EAAc,IAG7ByrI,wBAAwBqD,EAAS1D,EAAuB2D,GAChDA,IACAD,EAAUluwB,KAAKypwB,wBAAwByE,IAE3CluwB,KAAKkswB,qBAAqBgC,GAC1BA,EAAQrsnB,UAAW,EACd2onB,GACDxqwB,KAAKupwB,oBAAoB2E,EAAQpQ,iBAGzC0P,qBAAqB96L,GACjB,OAAO9pkB,MAAM8B,QAAQgokB,GAAgBA,EAAa,GAAKA,EAE3Do5L,mBAAmBF,EAAYwC,EAAcrhrB,EAAQshrB,EAAaloK,GAC9D,IAAImoK,GAA2B,EAC/BtuwB,KAAK4twB,yBAAyBhC,GAC9B,IAAIl5L,EAAek5L,EAAWnB,UAAU/pvB,IAAI,CAACu0lB,EAAUrof,IAAc5sH,KAAKotwB,6BAA6BgB,EAAcn5J,GAAU9wmB,KAAK,IACzGnE,KAAKwtwB,qBAAqBzgrB,EAAOkohB,EAAS0pJ,SAAU/xoB,IACnD14C,KAAK,IAAMm6rB,EAAYp5J,MAEnD22J,SAAWoC,cAAgB,MAAmBvpwB,OAC9CzE,KAAK6twB,+BAA+BjC,GAC7B1Q,GAASxoL,EAAc1gf,IAC1Bs8qB,GAA2B,EAC3BtuwB,KAAKuuwB,6BAA6B3C,EAAY55qB,IAC/Cw5qB,GAAaxrwB,KAAKiuwB,0BAA0BrC,EAAYJ,IAAYrnwB,KAAK,KACxEgimB,EAAemoK,GACftuwB,KAAKwuwB,yBAAyB5C,KAGtCC,sBAAsBxowB,EAAMorwB,EAAiBrF,EAAW1gC,GAEpDA,EAAaA,GAAc,GAC3B,IAAIr0qB,GAFJo6sB,EAAkB7lwB,MAAM8B,QAAQ+jwB,GAAmBA,EAAkB,CAACA,IAE1C/tvB,IAAIu0lB,GAAYA,EAAS0pJ,UACrD,MAAO,CACHt7vB,KAAMA,EACNonwB,UAAWgE,EACXp6sB,MAAOA,EACP+0sB,UAAWA,EACX1gC,WAAYA,EACZslC,eAAe,GAGvBZ,6BAA6BrgrB,EAAQkohB,GACjC,IAAI1hiB,EAAW,IAAIC,MACf76D,EAAO3Y,KAAK0uwB,0BAChB,IACI3hrB,EAAOp0E,EAAMs8lB,SACRu2J,GACL,OAAOj4rB,EAAS15B,OAAO2xtB,GAAW1xtB,UAEtC,GAAKnhC,EAAK0lD,OAEH,KAAI,IAAS1lD,EAAK0lD,OACrB,OAAOkV,EAAS15B,OAAO,CACnB67kB,UAAW/8mB,EAAK+8mB,UAChBjsmB,UAAW9Q,EAAK8Q,aAEbukK,SAAUr1K,EAAK0lD,UACtBwV,SAAKl7D,EAAK0lD,QAAQl6D,KAAKgc,KACf,MACAozD,EAAS15B,YACF78B,OAASmD,KAAQ,MAAak+C,QACrCkV,EAAS15B,OAAO,CACZ67kB,UAAWv1mB,EAAIu1mB,UACfjsmB,UAAWtJ,EAAIsJ,YAGvB8pD,EAAS1/C,WACV0/C,EAAS1/C,cAjBZ0/C,EAAS1/C,UAmBb,OAAO0/C,EAASz5B,UAEpB40tB,0BACI,MAAO,CACHjlvB,eAAW,EACXismB,UAAW,GACXr3jB,QAAQ,GAGhB4usB,8BAA8B9wC,EAAOouC,GAGjC,QAFIlO,EAAWr8vB,KAAK2uwB,aAAapE,GAC7B73vB,EAAS,GACJlO,EAAI,EAAGA,EAAI23tB,EAAM13tB,OAAQD,IAAK,CACnC,IACIoY,EAAO,IAAIqgvB,GAAeZ,EADnBlgC,EAAM33tB,GAC4BnB,MAAM,GAC/C4xmB,EAAWj1mB,KAAKqrwB,gBAAgBzuvB,EAAM2tvB,GAC1C73vB,EAAOrJ,KAAK4rmB,GAEhB,OAAOvimB,EAEX0lG,UACI,OAAIp4G,KAAK4uwB,aACE5uwB,KAAK6uwB,kBAEhB7uwB,KAAK4uwB,cAAe,EACb5uwB,KAAK8uwB,iBAAiB,IAAM9uwB,KAAK6uwB,iBAAmB7uwB,KAAK+uwB,mBArgB3D,YAugBTzH,kBACItnwB,KAAK2qwB,wBAA0B,IAAIlkpB,MAAMjvG,WAE7Cw3vB,uBACWhvwB,KAAK2qwB,uBAEhBoE,mBACI,IAAIE,EAAiB,CACjB56sB,MAAOr0D,KAAKgnwB,mBAAmB3ysB,OAE/B66sB,EAAmBlvwB,KAAKmvwB,0BAA0BnvwB,KAAKipwB,uBAC3D,YAAKiD,qBAAqBlswB,KAAKgnwB,oBACxBhnwB,KAAKovwB,oBAAoBpvwB,KAAKgnwB,mBAAoBiI,GAAgB9qwB,KAAK,KAC1E,IAAI+pwB,EAAUluwB,KAAKqvwB,6BAA6BH,GAChDlvwB,KAAKupwB,oBAAoB2E,UAClBluwB,KAAK4uwB,eAGpBQ,oBAAoBrN,EAAeuN,GAC/B,IAAI53qB,EAAQ13F,KACZ,OAAOA,KAAKsqwB,eAAevI,GAAe59vB,KAAKorwB,IAY3C,QAXIC,EAAgB,GAChB5sc,EAAQ,SAASp+T,GACjB,IAAIirwB,EAAaH,EAAoBj7sB,MAAM5uB,KAAKguD,GAAS87qB,EAAS/qwB,GAAGm6vB,SAASxsvB,MAAQshF,EAAMkrqB,SAASxsvB,KACrG,IAAKs9vB,EACD,OAAO,EAEXF,EAAS/qwB,GAAGq9I,SAAW4tnB,EAAW5tnB,SAC9B0tnB,EAAS/qwB,GAAGq9I,UACZ2tnB,EAAcnmwB,KAAKquF,EAAM03qB,oBAAoBG,EAAS/qwB,GAAIirwB,KAGzDjrwB,EAAI,EAAGA,EAAI+qwB,EAAS9qwB,OAAQD,IAC7Bo+T,EAAMp+T,GAId,OAAO02vB,GAASsU,IACjB,IAAM,MAEbtG,gCAAgCt8I,EAAW8iJ,GACvC,OAAO1vwB,KAAK8uwB,iBAAiB,IAAM9uwB,KAAK2vwB,wCAAwC/iJ,EAAW8iJ,GAjjBnF,cAmjBZC,wCAAwC/iJ,EAAW8iJ,GAC/C,OAAO1vwB,KAAKyowB,yBAAyBzowB,KAAKgnwB,mBAAoBp6I,EAAW8iJ,GAASvrwB,KAAK49vB,IACnF,QAAS/vqB,EAAO+vqB,EAAcjE,gBAAiB9rqB,EAAMA,EAAOA,EAAK8rqB,gBAC7D9rqB,EAAK6vD,UAAW,EAEpB7hJ,KAAKupwB,oBAAoBxH,IAC1B,KACC/hwB,KAAK0pwB,iCAGboF,iBAAiB/hrB,EAAQgH,GACrB,OAAI/zF,KAAK+mwB,qBACE/mwB,KAAK+mwB,qBAAqB5iwB,KAAK,IAAMnE,KAAK8uwB,iBAAiB/hrB,EAAQgH,KAE9E/zF,KAAK8mwB,cAAe,EACpB9mwB,KAAK+mwB,qBAAuB,IAAIvzrB,MAC5BxzE,KAAK6mwB,gBACL7mwB,KAAK4pwB,kBAAkB71qB,GAEpBhH,IAASjZ,OAAO,KACnB,IAAI87rB,EAAe5vwB,KAAK+mwB,qBACxB/mwB,KAAK+mwB,qBAAuB,KAC5B/mwB,KAAK8mwB,cAAe,EACpB8I,EAAa/7uB,aAGrB40uB,yBAAyB8B,EAAqB39I,EAAW8iJ,GACrD,GAAI9iJ,EAAUnonB,OAAS,EACnB,OAAQ,IAAI+uE,OAAU3/C,QAAQ02uB,GAAqBzwtB,UAEvD,IAAIi2C,EAAY2/qB,EAAU,MAAQ,OAClC,OAAO1vwB,KAAKsqwB,eAAeC,GAAqBpmwB,KAAKorwB,IACjD,IAAIM,EAAaN,EAAS9puB,KAAKqY,GAAKA,EAAE6gtB,SAAS5uqB,KAAe68hB,EAAU,IACxE,IAAKijJ,EACD,OAAQ,IAAIr8rB,OAAU35B,SAASC,UAEnC,IAAIg2tB,EAAgB,IAAIljJ,GAAWn6mB,OAAO,GAC1C,OAAOzS,KAAKyowB,yBAAyBoH,EAAYC,EAAeJ,KAGxEP,0BAA0BpN,GAEtB,QADIn1I,EAAY,GACTm1I,GAAiBA,EAAcjE,iBAClClxI,EAAUprlB,QAAQuguB,EAAcpD,SAASxsvB,KACzC4vvB,EAAgBA,EAAcjE,gBAElC,OAAOlxI,EAEXyiJ,6BAA6BU,GACzB,IAAIC,EAAkBhwwB,KAAKgnwB,mBAC3B,GAAI,IAAM+I,EAAStrwB,OACf,OAAOurwB,EAIX,QAFIxrwB,EAAI,EACJyrwB,EAAiBD,EACdC,GAAkBzrwB,EAAIurwB,EAAStrwB,SAClCwrwB,EAAiBD,EAAgB37sB,MAAM5uB,KAAKusD,GAAQA,EAAK2sqB,SAASxsvB,MAAQ49vB,EAASvrwB,OAE/EwrwB,EAAkBC,GAEtBzrwB,IAEJ,OAAOwrwB,EAEXvG,wBAAwB1H,GACpB,IAAIhpvB,EAAO/Y,KAAKmvwB,0BAA0BpN,GAC1C,OAAO/hwB,KAAKqvwB,6BAA6Bt2vB,GAE7C4yvB,qBAAqBtowB,EAAMknwB,GACvB,IAAI2F,EAAclwwB,KAAK2uwB,aAAapE,GAChC5L,EAAW,IAAI1B,GAAeiT,EAAa7swB,GAAM,GACrD,OAAOrD,KAAKorwB,qBAAqBzM,EAAU4L,GAE/Ca,qBAAqBzM,EAAU4L,GAC3B,OAAOlrvB,QAAOrf,KAAKqrwB,gBAAgB1M,EAAU4L,GAAsB,CAC/D54nB,KAAM,SACNkQ,SAAU88mB,EAASp1I,SACnBl1jB,MAAO,KAGfg3sB,gBAAgB1M,EAAU4L,GACtB,MAAO,CACH5L,SAAUA,EACVb,gBAAiByM,EACjB54nB,KAAM3xI,KAAKmwwB,wBAAwBxR,GACnCoM,iBACI,MAAO,OAAOlpvB,OAAO7hB,KAAK2+vB,SAASxsvB,MAEvCi+vB,iBACI,OAAOpwwB,KAAKqwwB,aAAerwwB,KAAK2+vB,SAASt7vB,OAIrD6owB,qBAAqBnK,EAAeoM,GAC5BA,IACApM,EAAgB/hwB,KAAKypwB,wBAAwB1H,IAEjDA,EAAc2I,aAAc,EAC5B3I,EAAc1tsB,MAAQ,GAE1B87sB,wBAAwBxR,GACpB,GAAIA,EAASrC,YACT,MAAO,SAEX,IAAIz6M,EAAY88M,EAAS7C,mBAEzB,OADW97vB,KAAKonwB,gBAAgBvlN,IACjB,MAEnBwlN,wBACI,IAAI30vB,EAAS,CACT,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,QAAS,WACT,OAAQ,UACR,QAAS,WACT,OAAQ,UACR,QAAS,WACT,OAAQ,WAEZ,OAAC,OAAQ,OAAQ,OAAQ,QAAS,OAAQ,QAAQ1M,QAAQ67iB,IACtDnviB,EAAOmviB,GAAa,UAEjBnviB,EAEXu0vB,yBAAyBxwvB,GACrB,IAAI65vB,EAAgB,IAAIrT,GAAe,KAAM,IAAI,GAC7CvqvB,EAAS1S,KAAKorwB,qBAAqBkF,EAAe,MACtD59vB,SAAO29vB,YAAc55vB,GArrBY,QAsrB1B/D,EAEX69vB,YAAYrJ,GACRlnwB,KAAKgnwB,mBAAmBqJ,YAAcnJ,GAzrBL,QA2rBrCY,oBACI9nwB,KAAKwwwB,eAAe,gBAAiB,CACjCl1P,WAAYt7gB,OAGpB4pwB,kBAAkB71qB,GACd/zF,KAAKwwwB,eAAe,gBAAiB,CACjCz8qB,UAAWA,IAGnB81qB,+BAA+B9H,GAC3B/hwB,KAAKwwwB,eAAe,6BAA8B,CAC9CC,sBAAuB1O,IAG/B6L,yBAAyBhC,GACrB5rwB,KAAKwwwB,eAAe,uBAAwB5E,GAEhDiC,+BAA+BjC,GAC3B5rwB,KAAKwwwB,eAAe,6BAA8B5E,GAEtDkC,sBAAsBlC,EAAYJ,GAC9BxrwB,KAAKwwwB,eAAe,oBAAqB5E,EAAYJ,GAEzDyC,0BAA0BrC,EAAYJ,GAClCxrwB,KAAKwwwB,eAAe,wBAAyB5E,EAAYJ,GAE7D+C,6BAA6B3C,EAAY55qB,GACrChyF,KAAKwwwB,eAAe,2BAA4B5E,EAAY55qB,GAEhEw8qB,yBAAyB5C,GACrB5rwB,KAAKwwwB,eAAe,uBAAwB5E,GAEhDlC,+BACI1pwB,KAAKwwwB,eAAe,4BAExBA,eAAev8qB,GACX,IAAIt7E,EAAO/P,MAAMuxB,UAAU7yB,MAAM8yB,KAAKr6B,UAAW,GAC7CC,KAAK6mwB,gBAAkB7mwB,KAAK2vF,SAASsE,IACrCj0F,KAAK2vF,SAASsE,MAAet7E,GAGrCuvvB,cACIlowB,KAAK0wwB,mBAAqB,KAC1B1wwB,KAAKgnwB,mBAAmB3ysB,MAAQ,GAChCr0D,KAAKgnwB,mBAAmB0D,aAAc,EACtC1qwB,KAAKirwB,aAAe,GAExB0D,aAAa5M,GAET,QADI1F,EAAW,GACN6R,EAAUnM,EAAemM,IAAYA,EAAQvP,SAASp1I,SAAU2kJ,EAAUA,EAAQpQ,gBACvFzB,EAAS76tB,QAAQ,CACbrvB,IAAK+7vB,EAAQvP,SAASxsvB,IACtB9O,KAAM6qwB,EAAQvP,SAASt7vB,OAG/B,OAAOg5vB,EAEXzysB,GAAGniD,EAAWoD,GACV,IAAI8lwB,EAAiB,KAAK9uvB,OAAOpa,GACjCzH,KAAK2vF,SAASghrB,GAAkB9lwB,EAEhCkhwB,qBACA,OAAO/rwB,KAAK2vF,SAASihrB,eAG7B,UACI/wwB,YAAY+xB,GACR5xB,KAAK2vF,YAAWtwE,MAAO,CACnBu6sB,sBAAuB,GACvBC,YAAa,GACdjosB,GACH5xB,KAAK6wwB,eAAiB,GACtB7wwB,KAAK8wwB,uBAAuB9qwB,QAAQ67iB,IAChC7hjB,KAAK6wwB,eAAehvN,EAAU/7T,gBAAiB,IAGvDylhB,gBAAgBl3sB,GACZ,OAAI,IAAMr0D,KAAK8wwB,uBAAuBrswB,OAC3B4vD,EAEJA,EAAMvtC,OAAOlK,GAAQA,EAAK0/uB,aAAet8vB,KAAK+wwB,kBAAkBn0vB,EAAKvZ,OAEhFipwB,kBAAkBjpwB,GACd,IAAKrD,KAAK+wwB,kBAAkB1twB,GACxB,MAAM,IAAI4+vB,GAAgBC,sBAA8B,MAGhEiL,oBAAoB3smB,GAChB,GAAIxgK,KAAKgxwB,cAAgBxwmB,EAAOxgK,KAAKgxwB,aACjC,MAAM,IAAI/O,GAAgBC,uBAA+B,MAGjE6O,kBAAkB1twB,GACd,GAAI,IAAMrD,KAAK8wwB,uBAAuBrswB,OAClC,OAAO,EAEX,IAAIo9iB,EAAYi6M,IAAiBz4vB,GAAMyiP,cACvC,OAAO9lP,KAAK6wwB,eAAehvN,GAE3BivN,6BACA,OAAO9wwB,KAAK2vF,SAASiqoB,sBAErBo3C,mBACA,OAAOhxwB,KAAK2vF,SAASkqoB,aCzzBtB,IAAIo3C,IAAqB,CAC5B3kwB,QAAQ,EACR0O,MAAM,EACNohD,MAAM,EACNzyD,QAAQ,EACRunwB,QAAQ,EACRvtC,QAAQ,EACR5iZ,UAAU,GAEP,UACHlhV,YAAYsxwB,GACRnxwB,KAAKqwN,SAAW,GAChBrwN,KAAKoxwB,aAAeD,GAAe,GACnCnxwB,KAAKqxwB,gBAETA,gBACIrxwB,KAAKw7sB,UAAY,CAAC,CACdn4sB,KAAM,SACNoT,KAAMupG,UAA2B,+BACjC2xB,KAAM,YACNtpH,QAASroB,KAAKoxwB,aAAa9kwB,OAC3BglwB,oBAAoB,GACrB,CACCjuwB,KAAM,SACNoT,KAAMupG,UAA2B,+BACjC2xB,KAAM,SACNtpH,QAASroB,KAAKoxwB,aAAaF,OAC3BK,yBAAyB,GAC1B,CACCluwB,KAAM,OACNoT,KAAMupG,UAA2B,6BACjC2xB,KAAM,eACNtpH,QAASroB,KAAKoxwB,aAAah1sB,MAC5B,CACC/4D,KAAM,OACNoT,KAAMupG,UAA2B,6BACjC2xB,KAAM,OACNtpH,QAASroB,KAAKoxwB,aAAap2vB,MAC5B,CACC3X,KAAM,SACNoT,KAAMupG,UAA2B,+BACjC2xB,KAAM,QACNtpH,QAASroB,KAAKoxwB,aAAaznwB,QAC5B,CACCtG,KAAM,WACNoT,KAAMupG,UAA2B,iCACjC2xB,KAAM,WACNtpH,QAASroB,KAAKoxwB,aAAarwb,UAC5B,CACC19U,KAAM,SACNoT,KAAMupG,UAA2B,+BACjC2xB,KAAM,SACNtpH,QAASroB,KAAKoxwB,aAAaztC,OAC3B2tC,oBAAoB,GACrB,CACCjuwB,KAAM,UACNoT,KAAMupG,UAA2B,gCACjC2xB,KAAM,4CACNtpH,SAAS,EACTipvB,oBAAoB,GACrB,CACCjuwB,KAAM,aACNoT,KAAMupG,UAA2B,mCACjC2xB,KAAM,oBACNtpH,SAAS,EACTipvB,oBAAoB,GACrB,CACCjuwB,KAAM,UACNoT,KAAMupG,UAA2B,gCACjC2xB,KAAM,gBACNtpH,SAAS,EACTipvB,oBAAoB,GACrB,CACCjuwB,KAAM,iBACNoT,KAAMupG,UAA2B,uCACjC2xB,KAAM,SACNtpH,SAAS,GACV,CACChlB,KAAM,cACNolG,KAAMuX,UAA2B,oCACjC2xB,KAAM,OACNtpH,SAAS,EACTipvB,oBAAoB,IAExBtxwB,KAAKwxwB,YAAc,GACnBxxwB,KAAKw7sB,UAAUx1sB,QAAQy+B,IACnBzkC,KAAKwxwB,YAAY/suB,EAAQphC,MAAQohC,IAGzCgtuB,gBAAgBnhjB,GACZtwN,KAAKqwN,UAAWhxM,QAAOrf,KAAKqwN,SAAUC,GAE1CohjB,eAAejtuB,EAAS6gD,GACpB,IAAIqsrB,KAAcp1rB,OAAS93C,GAAWA,EAAUA,EAAQphC,KACpD0pF,EAAS/sF,KAAKqwN,SAASshjB,GAC3B,GAAI5krB,EACA,OAAOA,EAAOzH,GAGtBssrB,kBAAkBT,GACd,IAAIU,GAAoBxyvB,QAAO,GAAI4xvB,IAAoBE,GACvDnxwB,KAAKoxwB,aAAeS,GACpB/osB,SAAK9oE,KAAKoxwB,aAAcU,IACpB9xwB,KAAKwxwB,YAAYM,GAAYzpvB,QAAUroB,KAAKoxwB,aAAaU,KAGjExxD,kBAAkBqxD,EAAatpvB,GAC3B,IAAIoc,EAAUzkC,KAAK+xwB,iBAAiBJ,GAChCltuB,IACAA,EAAQpc,QAAUA,GAG1B0pvB,iBAAiB1uwB,GACb,OAAOrD,KAAKwxwB,YAAYnuwB,GAE5B2uwB,mBAAmBL,EAAalH,GAC5B,IAAIhmuB,EAAUzkC,KAAK+xwB,iBAAiBJ,GACpC,IAAKltuB,IAAYA,EAAQpc,QACrB,OAAO,EAEX,GAAIoc,EAAQ6suB,mBACR,OAAO,EAEX,IAAIlyI,EAAcqrI,GAAaA,EAAUhmwB,QAAU,EACnD,OAAI,QAAqBgmwB,EAAUj3uB,KAAK5W,GAAQA,EAAK+hvB,SAASp1I,UAAY3smB,EAAK+hvB,SAASsT,kBAGpF,eACOxH,EAAUjvuB,MAAMy5kB,IAAaA,EAAS0pJ,SAASrC,cAElD73tB,EAAQ8suB,yBAA2B,IAAMnyI,IC5HzD,IACI8yI,IAA6B,CAC7B5lwB,OAAQ,GACRq3tB,OAAQ,GACR5iZ,SAAU,GACVmwb,OAAQ,GACR90sB,KAAM,GACNphD,KAAM,GACNrR,OAAQ,GACRyuG,QAAS,CACLqnC,YAAY,IAGhB0ynB,IAAkC,CAAC,aAAc,mBAAoB,WAAY,OAAQ,aAAc,WAAY,OAAQ,WA2M/H,UA1MA,kBAAqC/pqB,GACjC7F,cACIviG,KAAKyvN,eACLzvN,KAAKsjG,YAAa,EAClB,IAAI4/c,GAAQ9nf,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACrCn7D,KAAK4+sB,aAAe5+sB,KAAK24F,iBAAiBuqd,EAAO7gc,IAAa,CAC1Dzd,SApByB,8BAqBzBirD,UAAW,GACX/qC,YAAansG,GAAQ3Y,KAAKoywB,wBAAwBz5vB,EAAK2rG,SAASjhH,KAAMsV,GACtEs2I,UAAWj5I,GAAKhW,KAAKqywB,sBAAsBr8vB,GAC3Ck5I,QAAS,IAAMlvJ,KAAKsywB,sBACpB1jnB,SAAU,IAAM5uJ,KAAKuywB,yBAEzBzywB,MAAMyiG,cAEViwqB,OAAOrH,EAAW3jwB,EAASsD,EAAO9I,GAC9B,IACIsiH,SAAUA,EACVkJ,YAAaA,EACGukkB,kBAAiB,GACjC/vrB,EACAhC,KAAKsjG,YACLtjG,KAAKuywB,uBAETvywB,KAAKyywB,oBAAsB,CACvBjliB,cAAehgH,EACflJ,SAAUA,EACV6mpB,UAAWA,EACXrgwB,MAAOA,EACPinrB,eAAgBA,GAEpB,IAAI/3pB,EAAW,CACX5d,GAAI5U,EACJipB,GAAI,WACJ46C,GAAI,WACJlB,OAAQ,IAERr/D,EACAkvB,EAASmwC,OAASr/D,EAAM+qI,QAAU,IAAM/qI,EAAMgrI,SAE9C97G,EAASqxC,GAAK,WACdrxC,EAASvJ,GAAK,cACduJ,EAAS0xC,eAAiB,KAE9B1rE,KAAK4+sB,aAAatrpB,OAAO,CACrBtxD,OAAQwF,EACRwyB,SAAUA,IAEdh6B,KAAK4+sB,aAAanqkB,OAEtBi+nB,uBAAuBvH,EAAWwH,EAAkBC,GAChD5ywB,KAAK6ywB,iBAAmB1H,EACxBnrwB,KAAK8ywB,mBAAkBp1vB,OAAUk1vB,GAAkBA,EAAiB,MAASzH,OAAoC,EAASA,EAAU,GACpI,IAAIz4vB,EAAS,GAEbqgwB,OADgBJ,GAAoB3ywB,KAAKszD,OAAO,UACtCttD,QAAQgtwB,IACd,IAAIrB,GAAcp1rB,SAASy2rB,GAAWA,EAAUA,EAAQ3vwB,KACpDuZ,EAAO5c,KAAKizwB,4BAA4BtB,EAAaqB,EAAS7H,EAAWnrwB,KAAK8ywB,iBAC9E9ywB,KAAKkzwB,4BAA4Bt2vB,EAAMuuvB,IACvCz4vB,EAAOrJ,KAAKuT,KAGblK,EAEXwgwB,4BAA4B74iB,EAAU8wiB,GAClC,OAAKnrwB,KAAKmzwB,eAAe94iB,EAASh3N,OAAUg3N,EAAS+4iB,YAGjDpzwB,KAAKqzwB,+BAA+Bh5iB,EAASh3N,OAAS8nwB,GAAaA,EAAU1mwB,SAG1EzE,KAAKszwB,gBAAgBtB,mBAAmB33iB,EAASh3N,KAAM8nwB,MALnDjkqB,OAAcmzH,EAAStrJ,SAAS,GAO/CsksB,+BAA+B1B,GAC3B,OAAQ,WAAaA,GAAe,WAAaA,IAAgB3xwB,KAAKszD,OAAO,+BAEjF6/sB,eAAexB,GACX,QAASO,IAA2BP,GAExCsB,4BAA4BtB,EAAa/0vB,EAAMuuvB,EAAWyH,GACtD,IAAK5ywB,KAAKmzwB,eAAexB,GAAc,CACnC,IAAIxxvB,GAAMd,SAAO,EAAM,GAAIzC,GAC3BuD,SAAIozvB,iBAAmB32vB,EACvB5c,KAAKwzwB,qBAAqB7B,EAAaxxvB,GACnCvX,MAAM8B,QAAQkS,EAAKy3C,SACnBl0C,EAAIk0C,MAAQr0D,KAAK0ywB,uBAAuBvH,EAAWvuvB,EAAKy3C,MAAOu+sB,IAE5DzyvB,EAEX,IAAIzN,EAAS1S,KAAKyzwB,6BAA6B9B,GAE/CtyvB,eAAO3M,EADaw/vB,IAA2BP,IAE/Cj/vB,EAAO6gwB,iBAAmB32vB,EAC1B4+uB,GAAiB9ovB,EAAQkK,EAAMu1vB,MAC1Bz0vB,SAAUhL,EAAOq8D,WAClBr8D,EAAO0gwB,WAAY,GAEnBzB,IAAgBj/vB,EAAOrP,OACvBgc,QAAO3M,EAAQ,CACXrP,KAAMsuwB,IAGPj/vB,EAEX+gwB,6BAA6B9B,GACzB,IACIl7vB,KAAMA,EACNk7H,KAAMA,GACN3xI,KAAKszwB,gBAAgBvB,iBAAiBJ,GACtCt3iB,EAAW,CACXh3N,KAAMsuwB,EACNl7vB,KAAMA,EACNk7H,KAAMA,GAEV,YAAK6hoB,qBAAqB7B,EAAat3iB,GAChCA,EAEXm5iB,qBAAqB7B,EAAa+B,GAC9BA,EAAgB5upB,YAAcnsG,GAAQ3Y,KAAKoywB,wBAAwBT,EAAah5vB,GAEpFy5vB,wBAAwBT,EAAah5vB,GACjC,IAAIg7vB,EACAC,GAAcv0vB,SAAO,EAAM,GAAI1G,GAKnC,GAJAi7vB,EAAYtvpB,SAAW3rG,EAAK2rG,SAASivpB,iBACrCK,EAAYtU,eAAiB,QAAUqU,EAAwB3zwB,KAAK8ywB,uBAAoB,WAAmC,EAASa,EAAsBhV,SAC1JiV,EAAYC,SAAW7zwB,KAAKszD,OAAO,YACnCtzD,KAAKqwN,SAASvrG,YAAY8upB,GACtB5zwB,KAAKmzwB,eAAexB,GAAc,CAClC,IAAImC,EAAkB9zwB,KAAKqzwB,+BAA+B1B,GAAe,KAAO3xwB,KAAK6ywB,iBACrF7ywB,KAAKszwB,gBAAgB5B,eAAeC,EAAamC,IAGzDrkjB,eACIzvN,KAAKqwN,SAAW,CACZ0jjB,oBAAqB/zwB,KAAKo2F,sBAAsB,uBAChD49qB,qBAAsBh0wB,KAAKo2F,sBAAsB,wBACjD0uB,YAAa9kH,KAAKo2F,sBAAsB,gBAGhDi8qB,sBAAsBr8vB,GASlB,GARIhW,KAAKsjG,YACLtjG,KAAKuywB,sBAAqB,GAE9Bv8vB,GAAIqJ,QAAOrJ,EAAGhW,KAAKyywB,oBAAqB,CACpC7gvB,QAAS5xB,KAAKszD,SACd+K,QAAQ,IAEZr+D,KAAKqwN,SAAS2jjB,qBAAqBh+vB,IAC9BA,EAAEqoD,OAAQ,CACX,IAAIhK,EAAQr0D,KAAK0ywB,uBAAuB1ywB,KAAKyywB,oBAAoBtH,UAAW,KAAMnrwB,KAAKyywB,oBAAoBnT,gBAC3Gt/vB,KAAK4+sB,aAAatrpB,OAAO,aAAce,IAG/C4/sB,8BACI,GAAIj0wB,KAAKsjG,WAAY,CACjB,IAAIjvC,EAAQr0D,KAAK0ywB,uBAAuB1ywB,KAAK6ywB,kBAC7C7ywB,KAAK4+sB,aAAatrpB,OAAO,aAAce,IAG/Ci+sB,sBACItywB,KAAKsjG,YAAa,EAEtBivqB,qBAAqB2B,GACjBl0wB,KAAKsjG,YAAa,EACb4wqB,IACDl0wB,KAAKyywB,oBAAsB,IAE/BzywB,KAAK4+sB,aAAatrpB,OAAO,WAAW,GACpCtzD,KAAKm0wB,0BAETA,0BACIn0wB,KAAKqwN,SAAS0jjB,sBAElBx/qB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC6/qB,eAAgB,KAChBL,oBAAqB,KACrBjvpB,YAAa,OAGrBvuB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,iBACDrD,KAAKquG,UACL,UACC,QACDruG,KAAKi0wB,8BACL,UACC,kBACA,2BACA,sBACDj0wB,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAG7B26vB,sBACA,OAAOtzwB,KAAKszD,OAAO,oBClL3B+gtB,IA1CA,kBAA2CjsqB,GACvC7F,cACIviG,KAAK0wM,qBACL,IAAIy0B,KAAU/pK,MAAE,SAChBp7D,KAAKm7D,WAAWyuB,OAAOu7I,GAASv3N,SAPD,sCAQ/B5N,KAAK2xV,QAAU3xV,KAAK24F,iBAAiBwsI,EAASnmB,GAAQ,CAClDrtE,KAAM,WACNyN,YAAa,OACbt7F,QAAS9tC,GAAKhW,KAAKs0wB,YAAYt+vB,KAEnClW,MAAMyiG,cAEVmuG,qBACI1wM,KAAKmwM,aAAenwM,KAAKo2F,sBAAsB,WAEnDk+qB,YAAYt+vB,GACRhW,KAAKmwM,aAAan6L,GAEtBu+E,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCqQ,SAAU,GACV9gD,QAAS,OAGjByyC,eAAe59E,GAEX,OADWA,EAAKtV,MACRA,IACC,WACDrD,KAAKquG,UACL,UACC,UACDruG,KAAK0wM,qBACL,cAEA5wM,MAAMy2F,eAAe59E,IAGjC47vB,UAAUvnqB,GACNhtG,KAAKm7D,WAAW+oC,YAxCyB,+CAwC+B8I,GACxEjtD,WAAW,IAAM//C,KAAK2xV,QAAQx2R,WAAW+oC,YAxCxB,kBAwCwD8I,MC1BjF,IACIwnqB,IAA4C,8BAuQhD,UApQA,kBAAuCpsqB,GACnC7F,cACIviG,KAAKyvN,eACLzvN,KAAKy0wB,qBAAuBz0wB,KAAKszD,OAAO,uBACxCtzD,KAAK00wB,yBAA2BpotB,MAChCtsD,KAAK20wB,oBAAsB30wB,KAAKszD,OAAO,wBAAyB,EAChE,IAAIshtB,KAAYx5sB,MAAE,SAASxtD,SAVA,4BAUuCi9D,SAAS7qE,KAAKm7D,YAC5E05sB,EAAkB,CAClBp2Q,cAAe,QACf7D,UAAW,GACX22D,eAAgBvxjB,KAAK80wB,qCAAqC7rtB,KAAKjpD,MAC/D4kH,aAAc5kH,KAAK+0wB,iCAAiC9rtB,KAAKjpD,MACzDq6H,QAAS,iBACT8kY,aAAc,iCACd15Y,YAAawvf,GAAYA,EAASm7J,iBAClCx/M,aAAc,6BACd9rc,YAAa9uG,GAAKhW,KAAKqwN,SAAS2kjB,iBAAiBh/vB,GACjDk7iB,eAAgBl7iB,GAAKhW,KAAKi1wB,6BAA6Bj/vB,GACvDm7iB,gBAAiBn7iB,GAAKhW,KAAKk1wB,8BAA8Bl/vB,GACzD6uG,eAAgB7uG,GAAKhW,KAAKm1wB,6BAA6Bn/vB,GACvD2yF,eAAgB,IAAM3oG,KAAKqwN,SAAS+kjB,+BAEpCp1wB,KAAK4+sB,eACL5+sB,KAAK4+sB,aAAatrpB,OAAO,sBAAuB,IAAMtzD,KAAKuywB,wBAC3DsC,EAAgB5vpB,kBAAoBjvG,GAAKhW,KAAKq1wB,gCAAgCr/vB,GAC9EhW,KAAK00wB,yBAA2B,CAACltwB,EAASoqB,IAAY5xB,KAAK24F,iBAAiBnxF,EAAS8twB,IAA8B1jvB,IAEvH5xB,KAAKu1wB,eAAiBv1wB,KAAK24F,iBAAiBi8qB,EAAW/4M,IAAgBg5M,GAE3EpljB,eACIzvN,KAAKqwN,SAAW,CACZ2kjB,iBAAkBh1wB,KAAKo2F,sBAAsB,oBAC7Cg/qB,4BAA6Bp1wB,KAAKo2F,sBAAsB,gCAGhEgC,UACIt4F,MAAMs4F,UACN,IAAI9kB,EAAOtzE,KACX+/C,WAAW,KACPuzB,EAAKm7hB,0BAGbqmK,qCAAqC3kN,GACjC,IAAIm6M,EAAiBtqwB,KAAKszD,OAAO,kBAEjC,OAAOg3sB,GAAkBA,EADLn6M,GAAYA,EAAS7rc,UAAY,MACE,GAE3D6wpB,6BAA6BnyvB,GACzB,IACIshG,SAAUA,GACVthG,EACAinvB,EAAmBjqwB,KAAKy0wB,uBACxBxK,GAAoBA,EAAiBtL,SAAShivB,OAAO2nG,EAASq6oB,YAC9D3+vB,KAAKyumB,wBACLzumB,KAAKw1wB,6BAGbP,6BAA6B36qB,GACzB,IACIgqB,SAAUA,GACVhqB,EACAt6F,KAAK20wB,sBACLrwpB,EAASu9B,UAAW,GAG5BqznB,8BAA8B/jsB,GAC1B,IACImzC,SAAUA,GACVnzC,EACAnxE,KAAK20wB,sBACLrwpB,EAASu9B,UAAW,GAG5BkznB,iCAAiCzwpB,EAAUsI,EAAWY,GAClD,IAAInJ,KAAejpD,MAAEoyD,GACFnJ,EAAavmC,QAAQ99E,KAAKy1wB,4BAChCrpwB,KAAK,OAAQk4G,GAC1B,IAAIi/I,EAASv2H,GAAkB1oB,EAASqtB,MACpC+xH,GAAQtoM,QAAE,UAAU3kD,KAAK6tG,EAAS8rpB,kBAAkBxiwB,SAhFnB,sCAiFjCu3N,KAAU/pK,MAAE,SAChBipD,EAAaz6B,OAAO25K,EAAQG,EAAOv+B,GACnCnlO,KAAK00wB,yBAAyBvviB,EAAS,CACnCrhL,QAAS9tC,GAAKhW,KAAK01wB,6BAA6B1/vB,KAGxDq/vB,gCAAgC/isB,GAC5B,IACIk7C,YAAaA,EACb1iH,MAAOA,GACPwnE,EACJxnE,EAAMC,iBACND,EAAMs5E,kBACN,IAAIkgC,GAAWlpD,QAAEoyD,GAAaphH,KAAK,QACnCpM,KAAK4+sB,aAAa4zD,OAAO,CAAClupB,GAAWkJ,EAAa1iH,EAAO,CACrDw5G,SAAUA,EACVkJ,YAAaA,IAGrBkopB,6BAA6BhjsB,GACzB,IACIlkE,UAAWA,EACXhH,QAASA,EACTsD,MAAOA,GACP4nE,EACJ5nE,EAAMs5E,kBACN,IAAIopC,EAAch/G,EAAU2sD,WAAW2iB,QAAQ99E,KAAKy1wB,4BAChDnxpB,EAAWkJ,EAAYphH,KAAK,QAMhCpM,KAAK4+sB,aAAa4zD,OAAO,CAAClupB,GAAW98G,EAASsD,EALjC,CACTw5G,SAAUA,EACVkJ,YAAaA,EACbukkB,gBAAgB,IAGpB/xrB,KAAK21wB,yBAA2BnnwB,EAChCxO,KAAK21wB,yBAAyBpB,WAAU,GAE5ChC,uBACQvywB,KAAK21wB,0BACL31wB,KAAK21wB,yBAAyBpB,WAAU,GAGhDj2Q,wBAAwBnsf,EAAK+mB,GACzB,IAAIp4B,EAAOd,KAAK41wB,cAAczjwB,GAC9B,GAAKrR,EAGL,KACI8rH,EADQ5sH,KAAKu1wB,eAAejitB,OAAO,SACjB5yC,IAAI9D,GAAQA,EAAKmuvB,kBAAkBv4vB,QAAQ1R,EAAKiqwB,mBAClE,OACA/qwB,KAAKu1wB,eAAejitB,OAAO,SAASzxC,OAAO+qG,EAAW,cAAe1zF,IAG7E28uB,2BACS33sB,aAGLl+D,KAAK81wB,mBAAqB91wB,KAAKu1wB,eAAenkO,gBAAgBple,aAElEwpsB,8BACSt3sB,gBAAgBk4C,OAAUp2G,KAAK81wB,qBAGpC/1tB,WAAW,IAAM//C,KAAKu1wB,eAAenkO,gBAAgB94U,SAASt4N,KAAK81wB,qBAEvErnK,wBACI,IAAIszJ,EAAgB/hwB,KAAKy0wB,uBACrBt5sB,EAAWn7D,KAAK+1wB,qBAAqB,aAAqD,EAAShU,EAAcgJ,kBACjH/qwB,KAAK6ulB,kBACL7ulB,KAAK6ulB,iBAAiB3qf,YAAYswqB,KAA2C,GAEjFx0wB,KAAK6ulB,iBAAmB1zhB,IAAYC,UACpCp7D,KAAK6ulB,iBAAiB3qf,YAAYswqB,KAA2C,GAEjFoB,cAAczjwB,GACV,IAAI6jwB,EACJ,OAAO,QAAUA,EAAuBh2wB,KAAKu1wB,sBAAmB,WAAkC,EAASS,EAAqBrhN,SAASxijB,GAE7I8jwB,eAAe9jwB,GAGX,QAFI+jwB,EACAC,EAAa,IAAI,QAAUD,EAAwBl2wB,KAAKu1wB,sBAAmB,IAAWW,OAAwB,EAASA,EAAsBp7M,YAC1Iq7M,EAAW1xwB,QAAQ,CACtB,IAAI3D,EAAOq1wB,EAAW7kwB,QACtB,GAAIxQ,EAAKwjH,SAASympB,mBAAqB54vB,EACnC,OAAOrR,EACAA,EAAKq7B,SAAS13B,QACrB0xwB,EAAW9swB,QAAQvI,EAAKq7B,WAKpC45uB,qBAAqB5jwB,GACjB,IAAIrR,EAAOd,KAAK41wB,cAAczjwB,GAC9B,GAAIrR,EAAM,CACN,IAAImtH,EAAQjuH,KAAKu1wB,eAAe/kN,gBAAgB1vjB,GAChD,GAAImtH,EACA,OAAOA,EAAM9xF,SAASn8B,KAAKy1wB,4BAGnC,OAAO,KAEXlhrB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC6hrB,oBAAoB,EACpBC,cAAe,KACft+N,YAAa,KACbmtD,SAAU,KACV+jK,oBAAqB,KACrB+L,iBAAkB,OAG1Bz+qB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,qBACDrD,KAAK20wB,oBAAsB30wB,KAAKszD,OAAOjwD,GACvC,UACC,eACA,4BACA,oBACA,cACDrD,KAAKquG,UACL,UACC,sBACDruG,KAAKipwB,oBAAsBjpwB,KAAKszD,OAAOjwD,GACvC,UACC,uBACA,8BACDrD,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAG7B88vB,iCACA,MAAO,IAAI5zvB,OAvNQ,oBAyNnB+8rB,mBACA,OAAO5+sB,KAAKszD,OAAO,eAEvBgjtB,6BAA6BvU,EAAe7ouB,GACxC,IAAIq6C,EAAW,IAAIC,MACf+isB,EAAev2wB,KAAKi2wB,eAAe,aAAqD,EAASlU,EAAcgJ,kBACnH,OAAKwL,EAGDA,EAAa10nB,WAAa3oH,GAASq9uB,EAAa7L,cAAgB6L,EAAajypB,SAASq6oB,SAASzB,kBACxF3prB,EAAS1/C,UAAUimB,UAGvB95C,KAAKu1wB,eADCr8uB,EAAQ,aAAe,gBACD6ouB,EAAcgJ,kBANtCx3rB,EAAS15B,SAASC,UAQjCs+D,UACIp4G,KAAK6ulB,iBAAmB,KACxB7ulB,KAAK61wB,yBACL71wB,KAAKu1wB,eAAejitB,OAAO,aAAc,IAE7CkjtB,yBACQx2wB,KAAKw2F,YAGTx2F,KAAKyumB,wBACLzumB,KAAK20wB,qBAAuB30wB,KAAKy2wB,0CAErCA,yCACI,OAAOz2wB,KAAK02wB,sCAAsC12wB,KAAKy0wB,uBAAuB3W,iBAAiB,GAEnG4Y,sCAAsC3U,EAAe7ouB,GAEjD,QADIy9uB,EAAU,GACLzI,EAAUnM,EAAemM,EAASA,EAAUA,EAAQpQ,gBACzD6Y,EAAQn1uB,QAAQ0suB,GAEpB,OAAOluwB,KAAK42wB,iCAAiCD,EAASz9uB,GAE1D09uB,iCAAiCD,EAASz9uB,GACtC,OAAKy9uB,EAAQlywB,OAGNzE,KAAKs2wB,6BAA6BK,EAAQrlwB,QAAS4nB,GAAO/0B,KAAK,IAAMnE,KAAK42wB,iCAAiCD,EAASz9uB,KAF/G,IAAIs6C,OAAU3/C,UAAUimB,YCxR5C+8tB,IAAe9vN,IC+Rf+vN,IAxQA,kBAAsC1uqB,GAClCtS,QACI91F,KAAKyvN,eACLzvN,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKg3wB,gBAAkBh3wB,KAAKszD,OAAO,kBACnCxzD,MAAMg2F,QAEVyM,cACIviG,KAAKi3wB,0BAA2B,EAChCj3wB,KAAKm7D,WAAWvtD,SAXY,6BAY5B,IAAIspwB,EAAoBxosB,GAAayosB,GAXU,sBAY/C1otB,QAAgBzuD,KAAKm7D,WAAY+7sB,EAAmBl3wB,KAAKo5kB,mBAAoBp5kB,KAAKo3wB,gBAAgBnutB,KAAKjpD,OACvGF,MAAMyiG,cAEVktH,eACIzvN,KAAKqwN,SAAW,CACZuvgB,QAAS5/tB,KAAKo2F,sBAAsB,WACpC4gC,mBAAoBh3H,KAAKo2F,sBAAsB,sBAC/C8uB,qBAAsBllH,KAAKo2F,sBAAsB,wBACjDihrB,qBAAsBr3wB,KAAKo2F,sBAAsB,wBACjD49qB,qBAAsBh0wB,KAAKo2F,sBAAsB,wBACjDkhrB,qBAAsBt3wB,KAAKo2F,sBAAsB,yBAGzD7B,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC4wC,cAAe,SACf7N,iBAAkB,GAClBigpB,oBAAgB,EAChBx/N,YAAa,KACbmtD,SAAU,KACVsyK,iBAAkB,KAClB53C,QAAS,KACT5omB,mBAAoB,KACpB9R,qBAAsB,KACtBmypB,qBAAsB,KACtBrD,qBAAsB,OAG9Bz9qB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,oBACA,kBACA,eACA,mBACDrD,KAAKquG,UACL,UACC,mBACDruG,KAAKy3wB,qBAAqB9+vB,EAAK/L,OAC/B,UACC,iBACI5M,KAAK+2wB,4BACN/2wB,KAAK03wB,mBAAmB/+vB,EAAK/L,OAEjC,UACC,cACA,2BACA,yBACA,2BACA,2BACA,uBACD5M,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAGjC4nrB,YACI,OAAOvgsB,KAAK23wB,oBAAoBzjsB,KAAKu2rB,IACjCzqwB,KAAK8poB,WAAa2gI,EAAUhmwB,OACxB,IAAMzE,KAAK8poB,YACX9poB,KAAK43wB,cAET,IAAIC,EAAsB73wB,KAAK83wB,yBAAyBrN,GACxDzqwB,KAAK+3wB,0BAA4BF,EACjC73wB,KAAKg4wB,wBAA0BH,EAAsBA,EAAoBlZ,SAASxsvB,IAAM,OACzF2hE,OAAO,KACN9zE,KAAKi4wB,kBAGbN,oBACI,IAAI3ipB,EAAch1H,KAAKszD,OAAO,YAC1B4ktB,EAAcljpB,EAAcA,IAAgB,GAChD,SAAOnhD,OAAKqksB,GAEhBC,cAAcv3vB,GACV5gB,KAAKqwN,SAASuvgB,QAAQ,CAClBh/sB,MAAOA,IAGf81tB,uBAAuB/9tB,GACnB3Y,KAAKqwN,SAASr5F,mBAAmBr+G,GAErCy/vB,yBAAyBz/vB,GACrB3Y,KAAKqwN,SAASnrG,qBAAqBvsG,GAEvC0/vB,yBAAyBlM,GACrBnswB,KAAKqwN,SAASgnjB,qBAAqB,CAC/BlL,aAAcA,IAGtBmM,yBAAyBtiwB,GACrBhW,KAAKqwN,SAAS2jjB,qBAAqBh+vB,GAEvCuiwB,2BACIv4wB,KAAKqwN,SAASinjB,uBAElBW,gBACI,IAAIO,EACJx4wB,KAAKu4wB,2BACL,QAAUC,EAAwBx4wB,KAAK6uwB,wBAAqB,OAA4C2J,EAAsB3kvB,UAElI4kvB,kBACQz4wB,KAAKi3wB,2BACLj3wB,KAAK04wB,0BACL14wB,KAAKi3wB,0BAA2B,GAGxC0B,0BAA0B31vB,GACtB,IACI41vB,kBAAmBA,EACnBvhpB,cAAeA,EACfC,iBAAkBA,EAClBuhpB,wBAAyBA,EACzBC,0BAA2BA,GAC3B91vB,EACA60vB,EAAsB73wB,KAAK83wB,yBAAyB93wB,KAAK25H,oBACzDk+oB,GACA73wB,KAAK+4wB,cAAclB,GAEvB,IAAImB,GAAch5wB,KAAK+3wB,yBACvBiB,EAAaA,GAAch5wB,KAAKi5wB,cAAcJ,IAA4B74wB,KAAKi5wB,cAAcH,MAEzFF,EAAoB54wB,KAAKk5wB,0BAA0BN,EAAmBh8vB,GAAQA,EAAK+hvB,SAASxsvB,MAAQnS,KAAKg4wB,yBACzG3gpB,EAAgBr3H,KAAKm5wB,0BAA0B9hpB,GAC/CC,EAAmBt3H,KAAKo5wB,6BAA6B9hpB,GAAkB,GACvEuhpB,EAA0B74wB,KAAKo5wB,6BAA6BP,GAAyB,GACrFC,EAA4B94wB,KAAKo5wB,6BAA6BN,GAA2B,GACzF94wB,KAAK02uB,uBAAuB,CACxBkiC,kBAAmBA,EACnBvhpB,cAAeA,EACfC,iBAAkBA,EAClBuhpB,wBAAyBA,EACzBC,0BAA2BA,KAIvCO,sBAAsB1gwB,GACd3Y,KAAKg3wB,kBAAoBr+vB,EAAKgrH,UAGlC3jI,KAAKg3wB,gBAAkBr+vB,EAAKgrH,QAC5B3jI,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKszD,OAAO,iBAAkB36C,EAAKgrH,SACnC3jI,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKo4wB,yBAAyBz/vB,IAElCi/vB,eACAc,4BACSx6sB,YAGLne,WAAW,KACP,IAAIu5tB,EACJ,OAAO,QAAUA,EAAuBt5wB,KAAK4pf,wBAAqB,WAAkC,EAAS0vR,EAAqBhhjB,SAAS,KAGnJsxR,kBACA2vR,kBAAkBC,GACd,IAAIC,EAAsBz5wB,KAAKszD,OAAO,oBACtC,OAAOmmtB,EAAsBA,EAAoBD,GAAY,CACzD1c,UAAW,IAGnB4c,2BAA2BF,GACvB,IACI1c,UAAWA,EACXl4pB,SAAUA,GACV5kG,KAAKu5wB,kBAAkBC,GACvBG,EAAiB3soB,GAAkB8vnB,GAAWlvvB,SAAS5N,KAAK45wB,6BAChE,OAAIh1qB,GACA+0qB,EAAe/rwB,SAASg3F,GAErB+0qB,EAEXC,4BACI,MAAO,GAEXxgM,oBACAg+L,gBAAgBphwB,IAChB6jwB,aACI,MAAO,YAAc72sB,UAAexB,WAExCs4sB,iBAAiBzltB,EAAO7sD,EAASsD,EAAO9I,GACpChC,KAAK4+sB,aAAa4zD,OAAOn+sB,EAAO7sD,EAASsD,EAAO9I,GAEhD48sB,mBACA,OAAO5+sB,KAAKszD,OAAO,eAEvBwktB,yBAAyBrN,GACrB,QAASjmwB,EAAI,EAAGA,EAAIimwB,EAAUhmwB,OAAQD,IAAK,CACvC,IAAIywmB,EAAWw1J,EAAUjmwB,GACzB,GAAIxE,KAAK+5wB,uBAAuB9kK,GAC5B,OAAOA,EAGf,OAAO,KAEX+kK,4BAA4Brb,GACxB,IAAIjsvB,EAAS1S,KAAK25H,mBAClB,OAAI35H,KAAK+5wB,uBAAuBpb,IAC5BjsvB,EAAOrJ,KAAKs1vB,GAETjsvB,EAEXqnwB,uBAAuB9kK,GACnB,OAAOA,EAAS0pJ,SAASsT,eAE7BgH,cAAclgwB,GACV,OAAOA,EAAKtU,OAAS,GAAK,IAAMsU,EAAKtU,QAAUsU,EAAK,KAAO/Y,KAAKg4wB,wBAEpEmB,0BAA0B1urB,EAAOwvrB,GAC7B,OAAOj6wB,KAAKk5wB,0BAA0BzurB,EAAO7tE,GAAQA,EAAKzK,MAAQnS,KAAKg4wB,wBAAyBiC,GAEpGb,6BAA6B3urB,EAAOwvrB,GAChC,OAAOj6wB,KAAKk5wB,0BAA0BzurB,EAAOt4E,GAAOA,IAAQnS,KAAKg4wB,wBAAyBiC,GAE9Ff,0BAA0BzurB,EAAOv7C,EAAW+quB,GAGxC,QAFIvnwB,EAAS+3E,EACTl4E,GAAQ,EACH/N,EAAI,EAAGA,EAAIimF,EAAMhmF,OAAQD,IAC9B,GAAI0qC,EAAUu7C,EAAMjmF,IAAK,CACrB+N,EAAQ/N,EACR,MAGR,OAAI,QACIy1wB,IACAvnwB,EAAS,IAAI+3E,IAEjB/3E,EAAOD,OAAOF,EAAO,IAElBG,EAEXwnwB,2BACI,MAAO,aAAel6wB,KAAKszD,OAAO,iBAEtCyltB,cAAcn8vB,IACd66vB,qBAAqBv5B,IACrBw5B,mBAAmB/zoB,IACnBw2oB,oBACI,MAAO,CACH5kwB,MAAO,IAAI88F,WAAY,CACnBlgG,IAAK,eACLu+B,KAAM1wC,KAAKugsB,UAAUt3oB,KAAKjpD,SAItC25H,oBACA6I,kBACApa,cACAhQ,QAAQxmF,EAASmiE,MCvQrB,IAOIqmrB,IAAyB,CACzBtd,UAAW,CACPv8mB,QAAS,GACTmH,mBAAoB,cACpB9nF,MAAO,GACP4mF,UAAW,SACX5hD,SAT2C,4CAW/CvhG,KAAM,CACFk9I,QAASvgC,UAA2B,+CAExC68oB,aAAc,CACVt8mB,QAASvgC,UAA2B,sDACpCpgD,MAAO,IACPgpF,eAAgB,GAEpB4X,KAAM,CACFjgB,QAASvgC,UAA2B,kDACpCpgD,MAAO,GACP4mF,UAAW,QACXoC,eAAgB,GAEpBqpnB,eAAgB,CACZ1xnB,QAAS,iBACTxxE,SAAS,EACTw6E,UAAW,EACXE,UAAW,QA2YnB,UAxYA,kBAAyC4wnB,IACrC93qB,cACIviG,KAAK8poB,WAAa,EAClB9poB,KAAKs6wB,aAAe,KACpBt6wB,KAAK+3wB,yBAA0B,EAC/B/3wB,KAAKg4wB,wBAA0B,KAC/Bh4wB,KAAK2tkB,mBAAqB,KAC1B3tkB,KAAKu6wB,4BAA6B,EAClCv6wB,KAAKm7D,WAAWvtD,SA5CmB,0BA6CnC5N,KAAKw6wB,mBACLx6wB,KAAK4+sB,aAAatrpB,OAAO,sBAAuB,IAAMtzD,KAAKuywB,wBAC3DzywB,MAAMyiG,cAEVi4qB,mBACI,IAAIC,KAAar/sB,MAAE,SAASyP,SAAS7qE,KAAKm7D,YACtCgqE,EAAgBnlI,KAAKk6wB,2BAA6B,WAAa,OACnEl6wB,KAAK06wB,WAAa16wB,KAAK24F,iBAAiB8hrB,EAAY1zN,IAAU,CAC1Dvqc,WAAYx8G,KAAKm6wB,oBACjBvxqB,mBAAmB,EACnBotG,UAAW,CACP/mM,KAAMk2H,EACN4iC,mBAAoB/nK,KAAK65wB,aAAe,UAAY,QAExDzxN,gBAAiBpojB,KAAKszD,OAAO,oBAC7Bo1f,cAAe1ojB,KAAKszD,OAAO,kBAC3B+/mB,mBAAmB,EACnBx/I,qBAAqB,EACrB0c,UAAW,CACPthiB,KAAM,WAEVozJ,QAAS,CACLpzJ,KAAM,SACNs6J,iBAAiB,GAErBinY,UAAW,CACPlhZ,SAAS,GAEbsgX,iBAAiB,EACjB8gC,cAAc,EACdg3I,qBAAqB,EACrB9/hB,QAAS5nJ,KAAK26wB,iBACdlmnB,kBAAmBz0J,KAAK46wB,mBAAmB3xtB,KAAKjpD,MAChDylsB,cAAezlsB,KAAK66wB,eAAe5xtB,KAAKjpD,MACxC83iB,uBAAwB93iB,KAAK86wB,wBAAwB7xtB,KAAKjpD,MAC1Dg3H,mBAAoBh3H,KAAK+6wB,6BAA6B9xtB,KAAKjpD,MAC3DymsB,oBAAqBzmsB,KAAKg7wB,8BAA8B/xtB,KAAKjpD,MAC7Dy0F,gBAAiBz0F,KAAKi7wB,0BAA0BhytB,KAAKjpD,MACrD2oG,eAAgB3oG,KAAKy4wB,gBAAgBxvtB,KAAKjpD,QAGlD26wB,iBACI,IAAI/ynB,EAAU5nJ,KAAKszD,OAAO,iBAE1Bs0F,GADAA,EAAUA,EAAQtgJ,MAAM,IACNoZ,IAAIwuf,IAClB,IAAIgsQ,EAAehsQ,EACnB,OAAI3yb,SAAS2yb,KACTgsQ,EAAe,CACXp7nB,UAAWovX,IAGZlvgB,KAAKm7wB,mBAAmBD,KAEnC,IAAIE,EAAyBp7wB,KAAKszD,OAAO,0BACzC,SAAI96C,OAAW4iwB,KACXxznB,EAAUwznB,EAAuBxznB,IAErCA,EAAQv+I,KAAKrJ,KAAKm7wB,mBAAmB,CACjCr7nB,UAAW,oBAEf8H,EAAQ5hJ,QAAQkpgB,GAAUlvgB,KAAKq7wB,uBAAuBnsQ,IAC/CtnX,EAEXuznB,mBAAmBvuP,GACf,IAAIl6gB,EAAS,GACT4owB,EAAiB,GACrB,GAAIt7wB,KAAKu7wB,iBAAiB3uP,EAAc9sY,WAAY,CAChD,IAAI07nB,GAAgBn8vB,SAAO,EAAM,GAAI+6vB,IAAuBxtP,EAAc9sY,YAE1E,OADAw7nB,EAAiBE,EAAc52qB,UAAY,GACnCgob,EAAc9sY,eACb,YACD07nB,EAAc7znB,aAAe3nJ,KAAKy7wB,2BAA2BxytB,KAAKjpD,MAClEw7wB,EAAc9znB,mBAAqB,YAAY7lI,OAAO25vB,EAAc9znB,oBACpE,UACC,OACD8znB,EAAc7znB,aAAe3nJ,KAAK07wB,sBAAsBzytB,KAAKjpD,MAC7Dw7wB,EAAcj7nB,QAAUvgC,UAA2B,8CACnD,UACC,OACDw7pB,EAAcl0nB,mBAAqBtnJ,KAAK27wB,8BAA8B1ytB,KAAKjpD,MAC3Ew7wB,EAAcj7nB,QAAUvgC,UAA2B,kDACnDw7pB,EAAc9znB,mBAAqB+qT,GAAWA,EAAQksT,SAASrC,aAAc,EAAK7pT,EAAQksT,SAASn+lB,KACnG,UACC,eACDg7mB,EAAcj7nB,QAAUvgC,UAA2B,uDAE3D3gG,SAAO,EAAM3M,EAAQ8owB,GAEzBhgB,UAAiB9ovB,EAAQk6gB,EAAe,CAAC,YAAa,UAAW,YAAa,WAAY,iBAAkB,YAAa,YAAa,UAAW,eAAgB,UAC7JA,EAAchob,WACd02qB,EAAiB,GAAGz5vB,OAAOy5vB,EAAgB,KAAKz5vB,OAAO+qgB,EAAchob,WAErE02qB,IACA5owB,EAAOkyF,SAAW02qB,GAEf5owB,EAEX2owB,uBAAuBnsQ,GACnB,IAAI0sQ,EAAiB57wB,KAAKu7wB,iBAAiBrsQ,EAAOpvX,WAAa,GAAK,YACpEovX,SAAOpvX,UAAY,YAAc87nB,EAAiB1sQ,EAAOpvX,UAClDovX,EAEXqsQ,iBAAiBM,GACb,QAASzB,IAAuByB,GAEpCnG,6BAA6B1yvB,GACzB,IACIxU,UAAWA,EACXhH,QAASA,EACTsD,MAAOA,GACPkY,EACJlY,EAAMs5E,kBACN,IAAImwX,EAAO/lc,EAAU2sD,WAAW2iB,QAAQ99E,KAAKo5kB,oBACzC+yL,EAAe53T,EAAKnoc,KAAK,QAC7BpM,KAAK87wB,YAAY3P,GACjB,IAAInqwB,EAAS,CACTsiH,SAAU6npB,EACV3+oB,YAAa+mV,EACbw9O,gBAAgB,GAEhB19nB,EAAQr0D,KAAKg6wB,4BAA4B7N,GAC7CnswB,KAAK85wB,iBAAiBzltB,EAAO7sD,EAASsD,EAAO9I,GAC7ChC,KAAK21wB,yBAA2BnnwB,EAChCxO,KAAK21wB,yBAAyBpB,WAAU,GAE5ChC,uBACQvywB,KAAK21wB,0BACL31wB,KAAK21wB,yBAAyBpB,WAAU,GAGhDqF,4BACI,MA/KwC,wCAiL5CxgM,mBACI,MAAO,IAAIv3jB,OA7KY,eA+K3Bu1vB,gBAAgBphwB,GACZ,IACIm2vB,GADO/wsB,QAAEplD,EAAEgoE,eACS5xE,KAAK,QAC7BpM,KAAKq4wB,yBAAyBlM,GAElC4P,sBACI,IAAIC,EAAuBh8wB,KAAK+3wB,wBAA0B/3wB,KAAK8poB,WAAa,EAAI9poB,KAAK8poB,WACjF1hF,EAAkBpojB,KAAK06wB,WAAWpntB,OAAO,mBAC7C,QAAK80f,EAAgB3jjB,SAGd2jjB,EAAgB3jjB,QAAUu3wB,QAA8B,GAEnEpB,mBAAmBtgrB,GACf,IACI9rF,UAAWA,EACXi2B,QAASA,EACTy/G,IAAKA,EACL2pa,WAAYA,EACZ9ta,cAAeA,GACfzlD,EACCt6F,KAAK06wB,aACN16wB,KAAK06wB,WAAalswB,GAElB,cAAwB01I,EACpBlkJ,KAAK+5wB,uBAAuB71nB,EAAI93I,QAChC2zI,EAAc33H,UAAW,GAEtB,kBACP23H,EAAcvrD,cAAgBrjB,IAC1B,IACI3iE,UAAWA,GACX2iE,EACJnxE,KAAK2tkB,mBAAqBn/jB,GAE9BuxI,EAAcnzI,MAAQ5M,KAAK+7wB,sBAC3Bh8nB,EAAc2U,eAAiB/7I,GAAQ3Y,KAAKi8wB,iCAAiCtjwB,IAGrFsjwB,iCAAiC3psB,GAC7B,IACIxnE,MAAOA,EACPurB,cAAeA,EACfzpB,MAAOA,GACP0lE,EACCxnE,EAMD9K,KAAK+7wB,wBAA0BnvwB,IAG/BA,EACA5M,KAAK06wB,WAAW/1oB,YAEhB3kI,KAAK06wB,WAAW51oB,cAEpBh6H,EAAMC,kBAbEsrB,IAAkBr2B,KAAKu6wB,4BAA8Bv6wB,KAAK2tkB,oBAC1D3tkB,KAAK2tkB,mBAAmBr6gB,OAAO,QAASj9B,GAcpDwkvB,eAAenosB,GACX,IACI0mc,QAASA,EACTwG,WAAYA,EACZxzgB,KAAMA,GACNsmE,EACJ,GAAI,WAAoB,CACpB,IAAI6hY,KAAOn5Y,MAAEwkd,GACbrrE,EAAKnoc,KAAK,OAAQA,GACdpM,KAAK+5wB,uBAAuB3twB,IAC5Bmoc,EAAK3mc,SAvPoB,yCA2PrCktwB,wBAAwB9kwB,GACpB,GAAKhW,KAAK65wB,aAGV,KAAI1O,EAAY,KACZvuvB,EAAO,GACP5G,EAAEkuI,KAAO,WAAaA,IAAIk1X,UAE1Bp5gB,KAAK87wB,YADLl/vB,EAAO5G,EAAEkuI,IAAI93I,MAEb++vB,EAAYnrwB,KAAKg6wB,4BAA4Bp9vB,IAEjD,IAAIgzC,GAAYvwC,QAAO,GAAI,CACvBmuN,cAAe,cAAgBxrO,SAAU0b,SAAU1H,EAAEkuI,KAAOlkJ,KAAK06wB,WAAW1zP,cAAchxgB,EAAE68b,eAAY,EACxGvuV,SAAU1nG,EACVgV,QAAS5xB,KAAK4+sB,aAAatrpB,SAC3BxoD,MAAOkL,EAAElL,MACTinrB,gBAAgB,EAChB1znB,QAAQ,IAEZr+D,KAAKs4wB,yBAAyB1otB,GAC9B55C,EAAEq+C,MAAQzE,EAAUyO,OAAS,GAAKr+D,KAAK4+sB,aAAa8zD,uBAAuBvH,EAAW,KAAMvuvB,IAEhGm+vB,6BAA6BnosB,GACzB,IACIpkE,UAAWA,EACXo+iB,iBAAkBA,EAClBxE,gBAAiBA,EACjByE,uBAAwBA,EACxBC,yBAA0BA,GAC1Bl6e,EACJ5yE,KAAK06wB,WAAa16wB,KAAK06wB,YAAclswB,EACjCxO,KAAK2tkB,qBACL3tkB,KAAKu6wB,4BAA6B,EAClCv6wB,KAAK2tkB,mBAAmBr6gB,OAAO,QAAStzD,KAAK+7wB,uBAC7C/7wB,KAAKu6wB,4BAA6B,GAEtC,IAAIljpB,EAAgBu1b,EAAiBlsiB,IAAIu0lB,GAAYA,EAAS0pJ,UAC9D3+vB,KAAK24wB,0BAA0B,CAC3BC,kBAAmBhsN,EACnBv1b,cAAeA,EACfC,iBAAkB8wb,EAClBywN,wBAAyBhsN,EACzBisN,0BAA2BhsN,IAGnCkuN,8BAA8BhlwB,GAC1B,IAAIkmwB,EAEIC,EADHn8wB,KAAKk6wB,4BAENl6wB,KAAKo8wB,2BAA2B,QAAUD,EAASnmwB,EAAEkuI,WAAQ,WAAoB,EAASi4nB,EAAO/vwB,MAErG,IAAIkzvB,GAAkB,QAAU4c,EAAUlmwB,EAAEkuI,WAAQ,WAAqB,EAASg4nB,EAAQ9vwB,KAAKuyvB,WAAa,KAC5G3+vB,KAAKq5wB,sBAAsB,CACvBz8vB,KAAM0ivB,EACN37nB,QAAS,aAAuD,EAAS27nB,EAAentvB,IACxFq7G,YAAax3G,EAAE4pgB,aAGvBq7P,0BAA0B7tqB,GACtB,IACIl6C,SAAUA,GACVk6C,EACAl6C,EAAS1gD,QAAQ,cAAe,GAChCxS,KAAK06wB,WAAWzzP,aAAa,iBAAkB,CAC3Cx9X,UAAW,MACXF,UAAW,IAIvBqunB,cACI53wB,KAAK03wB,wBAAmB,GAE5B+D,2BAA2BvnvB,EAAWmovB,GAClCr8wB,KAAK05wB,2BAA2B2C,EAASjwwB,MAAMy+D,SAAS32C,GAE5DwnvB,sBAAsBxnvB,EAAWmovB,GAC7B,IAAIl3iB,KAAU/pK,MAAE,SACZkhtB,KAAQlhtB,MAAE,UAAU3kD,KAAK4lwB,EAASjwwB,KAAKuyvB,SAASt7vB,MAAMuK,SA3UvB,oCA4U/B49M,KAAWpwJ,MAAE,SAASwuB,OAAO0yrB,EAAOn3iB,GAASv3N,SA3UN,+CA4U3CwtD,MAAElnC,GAAW01D,OAAO4hI,GACpBxrN,KAAK24F,iBAAiBwsI,EAASmwiB,IAA8B,CACzDxxtB,QAAS9tC,GAAKhW,KAAK01wB,6BAA6B1/vB,KAGxD2lwB,8BAA8BlpU,GAC1B,OAAOA,EAAQksT,SAASrC,YAAc,GAAKlB,IAAmB3oT,EAAQksT,SAASn+lB,MAEnFs7mB,YAAY3P,IACanswB,KAAKk6wB,2BAA6Bl6wB,KAAKu8wB,6BAA+Bv8wB,KAAKo8wB,4BACjFhivB,KAAKp6B,KAAMmswB,GAE9B4M,cAAcn8vB,GACV5c,KAAK06wB,WAAWtvN,aAAa,CAACxuiB,EAAK+hvB,SAASxsvB,MAEhDiqwB,2BAA2BjQ,GACvB,IAAKnswB,KAAKs6wB,eAAiBnO,GAAgBnswB,KAAKs6wB,aAAa3b,SAASxsvB,MAAQg6vB,EAAaxN,SAASxsvB,IAAK,CACrG,IAAIqqwB,EAAiBx8wB,KAAKs6wB,aAC1Bt6wB,KAAKs6wB,aAAenO,EACpB,IAAIsQ,EAAiB,GACjBD,GACAC,EAAepzwB,KAAKmzwB,EAAe7d,SAASxsvB,KAEhD,IAAIklH,EAAgB,GAChB0K,EAAe,GACfoqoB,IAAiBnswB,KAAK+5wB,uBAAuB5N,KAC7C90oB,EAAchuH,KAAK8iwB,EAAaxN,UAChC58nB,EAAa14H,KAAK8iwB,EAAaxN,SAASxsvB,MAE5CnS,KAAK02uB,uBAAuB,CACxBr/mB,cAAeA,EACfC,iBAAkByK,EAClB82oB,wBAAyB,IAAI92oB,GAC7B+2oB,0BAA2B2D,KAIvCF,6BAA6BhkJ,GACzB,IACIomI,SAAUA,GACVpmI,EACJ,IAAKv4nB,KAAK06wB,WAAWnwN,cAAco0M,EAASxsvB,KAAM,CAC9C,IACIwlH,EADsB33H,KAAK06wB,WAAWvsQ,cAAc,aACrBg8C,4BACnCnqjB,KAAK06wB,WAAW1tN,WAAW,CAAC2xM,EAASxsvB,KAAMwlH,IAGnD8/oB,qBAAqBv5B,GACjBl+uB,KAAK06wB,WAAWpntB,OAAO,kBAAmB4qrB,GAE9Cw5B,mBAAmB/zoB,GACf,IAAI+4oB,EACJ,QAAUA,EAAmB18wB,KAAK06wB,kBAAe,OAAuCgC,EAAiBpptB,OAAO,gBAAiBqwE,GAErInB,iBACQxiI,KAAKk6wB,2BACLl6wB,KAAK06wB,WAAWl4oB,iBAEhBxiI,KAAK06wB,WAAWpntB,OAAO,mBAAmB,GAGlD8kD,QAAQxmF,EAASmiE,GACb,IAAI4orB,EAAgB,CAChBngqB,WAAYx8G,KAAKm6wB,qBAUrB,OARIvovB,GAAWvlB,OAAO8tB,UAAUjnB,eAAeknB,KAAKxI,EAAS,uBACrDlU,OAAUkU,EAAQ2lvB,gBAClBoF,EAAcj0N,cAAgB92hB,EAAQ2lvB,eAEtCoF,EAAc/kG,iBAAkB,OAGfl6pB,OAAUi/vB,EAAcj0N,iBAAkB,MAAqBkvH,iBP5YhF,eO6YiB7jlB,IACrB4orB,EAAcv6mB,OAAS,CACnB9tD,UAAW,GAEft0G,KAAKi3wB,0BAA2B,GAEpCj3wB,KAAK06wB,WAAWpntB,OAAOqptB,GACvB38wB,KAAK6uwB,iBAAmB,IAAIr7rB,MACrBxzE,KAAK6uwB,iBAAiB/0tB,UAEjC8vc,iBACI,OAAO5pf,KAAK06wB,WAAWtpO,gBAE3Bz3a,mBACI,OAAI35H,KAAKk6wB,2BACEl6wB,KAAK06wB,WAAWpvN,sBAEpBtrjB,KAAKs6wB,eAAiBt6wB,KAAK+5wB,uBAAuB/5wB,KAAKs6wB,cAAgB,CAACt6wB,KAAKs6wB,cAAgB,KCna5G,IAOIsC,IAAmDlusB,G5lBiB7C+yC,S4lBlBuC,kCA2YjD,UACI5hH,YAAY+iQ,EAAY8+e,EAAW51nB,EAAgB9D,GAC/ChoH,KAAK68wB,aAAe,KACpB78wB,KAAKg+Q,YAAcpb,EACnB5iQ,KAAK88wB,WAAap7B,EAClB1hvB,KAAK0wO,gBAAkB5kH,EACvB9rH,KAAK+8wB,OAAS/0pB,EAElB44a,YAAY54a,GACRhoH,KAAK+8wB,OAAS/0pB,EAElBz+F,QACIvpB,KAAK68wB,aAAe,KAExBG,iBACI,OAAKh9wB,KAAK68wB,eACN78wB,KAAK68wB,aAAe78wB,KAAKi9wB,sBAEtBj9wB,KAAK68wB,aAEhBI,qBACI,IAAKj9wB,KAAK+8wB,OACN,OAAO,KAEX,IAAIn7E,GAAYj2nB,SAAc3rE,KAAK+8wB,QAAQ,GAC3C,GAAI,MACA,OAAO,KAEX,IAAIhqoB,GAAannE,SAAe5rE,KAAK+8wB,QAAQ,GACzCG,KAAgBlzjB,OAAchqN,KAAK0wO,iBACnCysiB,GAAiBlzjB,SAAejqN,KAAK88wB,YACrCM,EAAoBp9wB,KAAKg+Q,YAAYhyM,YAIzC,MAAO,CACH41nB,UAAWA,EACX7ujB,WAAYA,EACZmqoB,cAAeA,EACfC,eAAgBA,EAChBC,kBAAmBA,EACnBC,qBATuBD,EAAoBD,EAU3CG,gBATkB/iwB,KAAKo7J,MAAMunmB,EAAgBt7E,GAU7C27E,eATiBJ,EAAiBpqoB,GAY1CyqoB,sBAAsBjrwB,GAClB,IAAIikR,EAASx2R,KAAKg9wB,iBAClB,IAAKxmf,EACD,OAAO,KAEX,IAAIinf,EAAeljwB,KAAKo7J,MAAMpjK,EAAQikR,EAAO8mf,iBAEzCI,EAAUD,EAAejnf,EAAOzjJ,WAEpC,MAAO,CACH0qoB,aAAcA,EACdE,gBALkBprwB,EAAQikR,EAAO8mf,gBAMjCI,QAASA,EACTE,WALaF,EAAUlnf,EAAOzjJ,YAQtC4oI,aAAappQ,GACT,IAAIikR,EAASx2R,KAAKg9wB,iBAClB,GAAKxmf,EAGL,KACIknf,EADenjwB,KAAKo7J,MAAMpjK,EAAQikR,EAAO8mf,iBAChB9mf,EAAOzjJ,WAChC6qoB,EAAaF,EAAUlnf,EAAOzjJ,WAC9B8qoB,EAAernf,EAAO4mf,kBACtBM,EAAUlnf,EAAO4mf,kBACjBS,EAAeH,EACRE,EAAapnf,EAAO6mf,uBAC3BQ,EAAeD,EAAapnf,EAAO2mf,gBAEvCn9wB,KAAKg+Q,YAAY1lD,SAASuljB,KAGlC,UAxdA,kBAA0Cl6pB,GACtCphB,cACIviG,KAAKyvN,eACLzvN,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKm7D,WAAWvtD,SAZsB,uCAatC5N,KAAK8ytB,oBACL9ytB,KAAK89wB,wBACL99wB,KAAK+9wB,2BACLj+wB,MAAMyiG,cACNviG,KAAKklH,qBAAuBllH,KAAKq5wB,sBAAsBpwtB,KAAKjpD,MAC5DA,KAAKg+wB,aAAe,IAAIC,IAAmBj+wB,KAAKg+Q,YAAah+Q,KAAKm7D,WAAYn7D,KAAK0wO,gBAAiB1wO,KAAK6oH,eAAej5E,SACxH5vC,KAAKk+wB,sBAETzujB,eACIzvN,KAAKqwN,SAAW,CACZ8tjB,sBAAuBn+wB,KAAKo2F,sBAAsB,yBAClD8uB,qBAAsBllH,KAAKo2F,sBAAsB,yBAGzD6O,iBACInlG,MAAMmlG,iBACNjlG,KAAKo+wB,uBAAyBp+wB,KAAKszD,OAAO,yBAC1CtzD,KAAKq+wB,gBAAkBr+wB,KAAKszD,OAAO,kBACnCtzD,KAAK+jG,iBAAiB5K,oBAAoB,CACtCv8E,KAAM,IAAIspG,GAAiB,SAASn8B,EAAY39E,EAAMkywB,GAClD,IAAIj6pB,EAAerkH,KAAKu+wB,wBAAwBD,EAAWv0rB,GAC3DA,EAAWH,OAAOy6B,IACpBp7D,KAAKjpD,MAAO,CAAC,YAAaA,KAAKszD,OAAO,qCAGhDyqtB,2BACS/9wB,KAAKg+Q,cACNh+Q,KAAKg+Q,YAAch+Q,KAAK24F,iBAAiB34F,KAAKw+wB,aAActmgB,GAAY,CACpElzG,iBAAiB,EACjBC,eAAe,EACf+uG,aAAa,EACb9uG,cAAe,aAI3B4tjB,oBACS9ytB,KAAKw+wB,eACNx+wB,KAAKw+wB,cAAepjtB,QAAE,SAASyP,SAAS7qE,KAAKm7D,aAGrDi2e,gBACI,OAAOpxiB,KAAKg+Q,YAEhB8/f,wBACS99wB,KAAK0wO,kBACN1wO,KAAK0wO,mBAAkBt1K,MAAE,SAASxtD,SAzDU,uCAyDkDi9D,SAAS7qE,KAAKw+wB,eAGpHpmrB,UACIt4F,MAAMs4F,UACNp4F,KAAKklN,uBACLllN,KAAK2kN,uBAETlhH,SACIzjG,KAAKklN,uBACLplN,MAAM2jG,SAEV8E,iBACI,OAAOlpF,QAAOvf,MAAMyoG,iBAAkB,CAClC0b,QAAQjuG,GACJhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK0+wB,mBAAkB,GAAI,EAAO1owB,IAEtCkuG,UAAUluG,GACNhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK0+wB,kBAAkB,GAAG,EAAO1owB,IAErC85D,KAAK95D,GACDhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK2+wB,oBAAoB,GAAG,EAAM3owB,IAEtC9J,IAAI8J,GACAhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK2+wB,oBAAoB3+wB,KAAK4+wB,kBAAoB,GAAG,EAAM5owB,IAE/DmuG,OAAOnuG,GACHhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK6+wB,oBAAmB,EAAM7owB,IAElCouG,SAASpuG,GACLhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAK6+wB,oBAAmB,EAAO7owB,IAEnC05D,MAAM15D,GACFhW,KAAKy+wB,qBAAqBzowB,GAC1BhW,KAAKqwN,SAAS8tjB,sBAAsBn+wB,KAAK8+wB,oBAE7C7uwB,EAAE+F,GACEhW,KAAKy+wB,qBAAqBzowB,GACtB28D,GAAoB38D,IACpBhW,KAAK2kI,eAKrB85oB,qBAAqBzowB,GACjBA,EAAEjL,iBACF/K,KAAKg+wB,aAAaz0vB,QAEtBm1vB,kBAAkBv0sB,EAAQuxL,EAAY9rM,GAClC,IAAIhzC,EAAO5c,KAAK8+wB,kBAChB,GAAIliwB,EAAM,CACN,IAAK8+O,EAAY,CACb,IAAI86B,EAASx2R,KAAKg+wB,aAAahB,iBAC/B,IAAKxmf,EACD,OAEJrsN,GAAUqsN,EAAO8mf,gBAErB,IAAIyB,EAAe/+wB,KAAK+oH,gBAAgBnsG,GAAQutD,EAChDnqE,KAAKg/wB,kBAAkBD,GAAc,EAAMnvtB,IAGnD+utB,oBAAoBpswB,EAAOopQ,EAAc/rN,GACrC5vD,KAAKg/wB,kBAAkBzswB,EAAOopQ,EAAc/rN,GAEhDivtB,mBAAmB16pB,EAAQv0D,GACvB,IAAIhzC,EAAO5c,KAAK8+wB,kBAChB,GAAKliwB,EAGL,KAAI45Q,EAASx2R,KAAKg+wB,aAAahB,iBAC/B,GAAKxmf,EAGL,KAAIyof,EAAaj/wB,KAAKg+wB,aAAaR,sBAAsBx9wB,KAAK+oH,gBAAgBnsG,IAK1EmiwB,GAFY56pB,EAAS5pG,KAAKojF,KAAOpjF,KAAKo7J,OADzBspmB,EAAWxB,cADZt5pB,EAASqyK,EAAO+mf,gBAAkB/mf,EAAO+mf,iBAIxB/mf,EAAO8mf,gBAAkB2B,EAAWtB,gBACjEoB,EAAe,EACfA,EAAe,EACRA,GAAgB/+wB,KAAK4+wB,oBAC5BG,EAAe/+wB,KAAK4+wB,kBAAoB,GAE5C5+wB,KAAKg/wB,kBAAkBD,GAAc,EAAMnvtB,KAE/CsvtB,gBAAgBlpwB,GACZ,IAAIktrB,EAAcljsB,KAAKsvH,uBAAoBl0D,MAAEplD,EAAEhU,SAC3C4qH,EAAY5sH,KAAKm/wB,uBAAuBj8E,GAC5CljsB,KAAKumI,WAAW3D,oBAAoBhW,EAAW,CAC3C17G,SAAS,IAGjByzM,uBACQ,aAAe3kN,KAAKszD,OAAO,kBAC3B7E,QAAgBzuD,KAAKyqH,iBAAkBmypB,IAAkD,IAAI/6vB,OAAO7hB,KAAK4qH,qBAAsB50G,IAC3HhW,KAAKk/wB,gBAAgBlpwB,GACrBA,EAAEouE,oBAGV31B,QAAgBzuD,KAAKyqH,iBAAkB,wBAAyBz0G,IACxDA,EAAEzE,UACFyE,EAAEjL,mBAIdm6M,uBACIz2J,SAAiBzuD,KAAKyqH,iBAAkBmypB,KACxCnutB,SAAiBzuD,KAAKyqH,iBAAkB,yBAE5CA,iBACI,OAAOzqH,KAAK0wO,gBAEhB/lH,aACI,MAjLiC,iCAmLrC7B,eACI,MAjLoC,wBAmLxCy1pB,wBAAwBpS,EAAc9npB,GAClCA,EAAaj1C,KAAK,QAASpvE,KAAKq+wB,gBAAgBlS,IAChD,IAAIwN,EAAiB35wB,KAAKo+wB,uBAAuBjS,GAC7CiT,GAAchktB,QAAE,SAASxtD,SAvLW,yCAwLpCyxwB,KAAYjktB,MAAE,SAASxtD,SAzLW,uCAyLuC6I,KAAK01vB,EAAaxN,SAASt7vB,MACxGghH,EAAaz6B,OAAO+vrB,EAAgByF,EAAaC,GAErDv3oB,mBAAmB9xH,GACf,IAAI4b,EAAU,GACV,aAAe5xB,KAAKszD,OAAO,mBACtBtzD,KAAKs/wB,2BACNt/wB,KAAKs/wB,yBAA2B3ssB,GAAoB38D,IAAMA,EAAEzE,UAEhEqgB,EAAU,CACN1gB,QAASlR,KAAKs/wB,yBACdhuwB,MAAO0E,EAAEzE,WAGjB,IAAIgB,EAAQvS,KAAKm/wB,uBAAuBnpwB,EAAEgoE,eAC1Ch+E,KAAKumI,WAAW3D,oBAAoBrwH,EAAOqf,GAE/Ci0G,uBACI/lI,MAAM+lI,uBACN,IAAIj0G,GAAUvS,QAAOrf,KAAKumI,WAAW30G,QAAS,CAC1CmwG,aAAc/hI,KAAKszD,OAAO,oBAC1B0jE,mBAAoBr+G,IAChB3Y,KAAKszD,OAAO,gBAAiBtzD,KAAKimI,gBAAgBttH,EAAK2+G,iBAAkB3+G,EAAK0+G,gBAC9Er3H,KAAKymI,qBAAqB9tH,MAGlC3Y,KAAKumI,WAAa,IAAIC,GAAU50G,GAEpC60G,qBAAqB9tH,GACjB,IAAIs+G,EAAgBt+G,EAAKs+G,cACrBC,EAAkBv+G,EAAKu+G,gBAC3B,GAAIl3H,KAAKknI,YAAcjQ,EAAcxyH,QAAUyyH,EAAgBzyH,QAAS,CACpE,IAAI4jI,EAAyBroI,KAAKsoI,wBAClC,IAAKtoI,KAAK+mI,WAAY,CAClB,IACIwB,EADAC,EAAiB,GAEjBC,EAAmB,GACvBzoI,KAAKgmI,cAAcxQ,aACnB,QAAShxH,EAAI,EAAGA,EAAI0yH,EAAgBzyH,OAAQD,IACxC+jI,EAAkBvoI,KAAKmmI,eAAejP,EAAgB1yH,IACtDikI,EAAiBp/H,KAAKk/H,GACtBvoI,KAAK4oI,iBAAiBL,GAE1B,QAASI,EAAK,EAAGA,EAAK1R,EAAcxyH,OAAQkkI,IACxCJ,EAAkBvoI,KAAKmmI,eAAelP,EAAc0R,IACpDH,EAAen/H,KAAKk/H,GACpBvoI,KAAK0oI,cAAcH,GAEvBvoI,KAAKgmI,cAActQ,WACnB11H,KAAK6oI,iBAAiBL,EAAgBC,MAE1C50D,OAAKw0D,GAAwBn0D,KAAK,IAAMl0E,KAAK8oI,0BAA0BnwH,KAG/EmwH,0BAA0BnwH,GACtB3Y,KAAKo2F,sBAAsB,qBAAsB,CAC7C3I,kBAAmB,CAAC,WAAY,aADpCztF,CAEG2Y,GAEPkwH,iBAAiBL,EAAgBC,GAEzB,IADqBzoI,KAAK25H,mBAAmBl1H,SAE7CzE,KAAKs/wB,0BAA2B,GAGxCr4oB,0BACI,IAAI7G,EAAUpgI,KAAK+lI,gBAAgB/lI,KAAKszD,OAAO,kBAC3C6sE,EAAUngI,KAAKumI,WAAW1M,sBAC9B,OAAK75H,KAAKwnI,aAAarH,EAASC,IAC5BpgI,KAAKumI,WAAWlE,aAAajC,IAEzB,IAAI5sD,OAAU3/C,UAAUimB,UAEpCiyD,oBACAw0lB,YACI,OAAOvgsB,KAAKszD,OAAO,UAAY,GAEnCsrtB,kBACI,OAAO5+wB,KAAKugsB,YAAY97rB,OAE5B06wB,uBAAuB3xpB,GACnB,OAAOxtH,KAAKgmI,cAAcpQ,mBAAmBpI,GAEjD+xpB,gBAAgBhtwB,GACZ,OAAOvS,KAAKugsB,YAAYhurB,GAE5BuswB,kBACI,OAAO9+wB,KAAKw/wB,qBAAqBx/wB,KAAKszD,OAAO,mBAEjDmstB,WAAW7iwB,EAAM++P,GACb37Q,KAAKszD,OAAO,iBAAkBtzD,KAAK0/wB,qBAAqB9iwB,IACpD++P,GACA37Q,KAAKg+wB,aAAarigB,aAAa37Q,KAAK+oH,gBAAgBnsG,IAG5DoiwB,kBAAkBzswB,EAAOopQ,EAAc/rN,GACnC,GAAIr9C,GAAS,GAAKA,EAAQvS,KAAK4+wB,kBAAmB,CAC9C,IAAIhiwB,EAAO5c,KAAKu/wB,gBAAgBhtwB,GAChCvS,KAAKy/wB,WAAW7iwB,EAAM++P,EAAc/rN,IAG5CsutB,sBACSl+wB,KAAK2/wB,8BACN3/wB,KAAK2/wB,4BAA8B,IAAInssB,OAE3C,IAAID,EAAWvzE,KAAK2/wB,4BACpB,GAAI3/wB,KAAKi8G,aAAej8G,KAAKi8G,YAAY/E,YACrC,OAAO3jC,EAASz5B,UAEpB,IAAIy9tB,EAAiBv3wB,KAAKszD,OAAO,kBACjC,IAAI51C,SAAU65vB,GAAiB,CAC3B,IACIhzoB,EADQvkI,KAAKszD,OAAO,SACA7tB,KAAK7oB,GAAQ5c,KAAK66G,MAAMj+F,KAAU26vB,GACtDhzoB,GACAvkI,KAAKy/wB,WAAWl7oB,GAAa,GAC7BhxD,EAAS1/C,YAET7zB,KAAKszD,OAAO,sBAAkB,GAC9BigB,EAAS15B,eAGb05B,EAAS1/C,UAEb,YAAK8rvB,4BAA8B,KAC5BpssB,EAASz5B,UAEpBu/tB,wBACI,IAAI90oB,EAAcvkI,KAAK8+wB,kBACnBc,EAAoB5/wB,KAAK66G,MAAM0pB,GAE/Bq7oB,IADoB5/wB,KAAKszD,OAAO,oBAEhCtzD,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKszD,OAAO,iBAAkBsstB,GAC9B5/wB,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKo4wB,yBAAyB7zoB,IAGtC6zoB,yBAAyB7zoB,GACrB,IAAI5rH,EAAO,CACPiE,KAAM2nH,EACN/W,YAAaxtH,KAAKszD,OAAO,mBAE7BtzD,KAAKqwN,SAASnrG,qBAAqBvsG,GAEvCknwB,qBAAqBjjwB,EAAM65F,GACvB,GAAIz2G,KAAK64H,eAAej8G,KAAU65F,EAGlC,KAAI+W,EAAcxtH,KAAK0/wB,qBAAqB9iwB,GACxCrK,EAAQvS,KAAKm/wB,uBAAuB3xpB,GACxCxtH,KAAKumI,WAAW3D,oBAAoBrwH,EAAO,CACvCrB,QAASlR,KAAKs/wB,4BAGtBl4oB,sBACI,MAAO,mBAEXzN,mBACI,OAAO35H,KAAKumI,WAAW5M,mBAE3B+lpB,qBAAqB9iwB,GACjB,OAAO5c,KAAKgmI,cAAc7P,eAAev5G,GAE7C4iwB,qBAAqBhypB,GACjB,OAAOxtH,KAAKu/wB,gBAAgBv/wB,KAAKm/wB,uBAAuB3xpB,IAE5DmX,YACQ,aAAe3kI,KAAKszD,OAAO,mBAG/BtzD,KAAKumI,WAAW5B,YAChB3kI,KAAKs/wB,0BAA2B,GAEpCl3pB,WAAWxrG,GACP5c,KAAK6/wB,qBAAqBjjwB,GAAM,GAEpCkjwB,aAAaljwB,GACT5c,KAAK6/wB,qBAAqBjjwB,GAAM,GAEpC4lH,iBACIxiI,KAAKumI,WAAWzB,cAEpBvuC,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,QACGrD,KAAKg+wB,cACLh+wB,KAAKg+wB,aAAap9O,YAAY5giB,KAAK6oH,eAAej5E,SAEtD9vC,MAAMy2F,eAAe59E,GACrB,UACC,iBACD,GAAI3Y,KAAK+2wB,2BACL,SAEAr5vB,OAAU/E,EAAK/L,OACf5M,KAAKk+wB,sBAAsBhqsB,KAAK,KAC5B,IAAIqwD,EAAcvkI,KAAK8+wB,kBACvB9+wB,KAAKo4wB,yBAAyB7zoB,MAGlCvkI,KAAKszD,OAAO,iBAAkB,MAC9BtzD,KAAKo4wB,yBAAyB,OAElC,UACC,4BACA,uBACDp4wB,KAAKqwN,SAAS13M,EAAKtV,MAAQrD,KAAKo2F,sBAAsBz9E,EAAKtV,MAC3D,cAEAvD,MAAMy2F,eAAe59E,MCtOrConwB,IAtKA,kBAA4C1F,IACxC93qB,cACIziG,MAAMyiG,cACNviG,KAAKm7D,WAAWvtD,SAPsB,6BAQtC,IAAIoywB,EAAmBtxsB,GAAaw9C,GALE,4BAMtCz9D,QAAgBzuD,KAAKm7D,WAAY6ktB,EAAkBhgxB,KAAKigxB,eAAeh3tB,KAAKjpD,OAC5EA,KAAKkgxB,kBAETA,kBACI,IAAI/6oB,EAAgBnlI,KAAKk6wB,2BAA6B,WAAa,SAC/DiG,GAAqB/ktB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAClDn7D,KAAKogxB,UAAYpgxB,KAAK24F,iBAAiBwnrB,EAAoBE,IAA6B,CACpF7jqB,WAAYx8G,KAAKm6wB,oBACjBh1oB,cAAeA,EACf7N,iBAAkBt3H,KAAKszD,OAAO,oBAC9BiktB,eAAgBv3wB,KAAKszD,OAAO,kBAC5Bo1C,oBAAoB,EACpBE,mBAAmB,EACnB+b,eAAe,EACf9b,mBAAmB,EACnBs1qB,sBAAuBn+wB,KAAKsgxB,SAASr3tB,KAAKjpD,MAC1CugxB,sBAAuBvgxB,KAAK05wB,2BAA2BzwtB,KAAKjpD,MAC5DwgxB,eAAgBxgxB,KAAKq+wB,gBAAgBp1tB,KAAKjpD,MAC1Cg3H,mBAAoBh3H,KAAKygxB,4BAA4Bx3tB,KAAKjpD,MAC1DklH,qBAAsBllH,KAAK0gxB,8BAA8Bz3tB,KAAKjpD,MAC9D2oG,eAAgB3oG,KAAKy4wB,gBAAgBxvtB,KAAKjpD,QAGlDigxB,eAAejqwB,GAGX,GAFAA,EAAEjL,iBACFiL,EAAEouE,kBACGpkF,KAAK65wB,aAGV,KAAIxltB,EAAQ,KACRsstB,KAAoBvltB,MAAEplD,EAAEhU,QAAQ87E,QAAQ99E,KAAKo5kB,oBAC7C4sB,EAAa,KACb26K,EAAkBl8wB,OAAS,IAC3BuhmB,EAAahmmB,KAAKogxB,UAAUZ,qBAAqBmB,GACjD3gxB,KAAKogxB,UAAUh4pB,WAAW49e,GAC1B3xiB,EAAQr0D,KAAKg6wB,4BAA4Bh0K,IAM7ChmmB,KAAK85wB,iBAAiBzltB,EAAOr+C,EAAEhU,OAAQgU,EAJ1B,CACTsuG,SAAU0hf,EACVx4e,YAAamzpB,EAAkBl8wB,OAASk8wB,OAAoB,KAIpE/G,4BACI,MAnD2C,2CAqD/CxgM,mBACI,MAAO,IAAIv3jB,OAvDsB,kCAyDrCw8vB,gBAAgBlS,GACZ,IAAIvvvB,EAAOuvvB,EAAaxN,SACxB,GAAI/hvB,EAAKmgvB,YACL,OAAOngvB,EAAKmgvB,YAEhB,IAAItmvB,EAAO,GAAGoL,OAAOjF,EAAKvZ,KAAM,QAChC,OAAKuZ,EAAK0/uB,cACN7lvB,GAAQ,GAAGoL,OAAOm+F,UAA2B,+CAAgD,MAAMn+F,OAAOu5uB,IAAmBx+uB,EAAK4jJ,MAAO,SAE7I/pJ,EAAQ,GAAGoL,OAAOm+F,UAA2B,uDAAwD,MAAMn+F,OAAOjF,EAAKigvB,cAG3Hua,gBAAgBphwB,GACZ,IAAIgyG,KAAQ5sD,MAAEplD,EAAEgoE,eACZphE,EAAO5c,KAAKogxB,UAAUZ,qBAAqBx3pB,GAC/ChoH,KAAKsgxB,SAAS1jwB,GAElB0jwB,SAAS1jwB,GACDA,GACA5c,KAAKq4wB,yBAAyBz7vB,GAGtC+6vB,oBACI,OAAO73wB,MAAM63wB,oBAAoBxzwB,KAAKkwD,IAClC,IAAIkf,EAAW,IAAIC,MACnBzzB,kBAAW,IAAMwzB,EAAS1/C,QAAQwgC,IAC3Bkf,EAASz5B,YAGxB8muB,mBACI,OAAO,EAEXrsrB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCsU,mBAAmB,IAG3B43qB,4BAA4Bz9vB,GACxB,IACIi0G,cAAeA,EACfC,gBAAiBA,GACjBl0G,EACA41vB,EAAoB54wB,KAAK25H,mBACzBtC,EAAgBuhpB,EAAkBl4vB,IAAIu0lB,GAAYA,EAAS0pJ,UAC3DrnoB,EAAmBD,EAAc32G,IAAI9D,GAAQA,EAAKzK,KACtDnS,KAAK24wB,0BAA0B,CAC3BC,kBAAmBA,EACnBvhpB,cAAeA,EACfC,iBAAkBA,EAClBuhpB,wBAAyB5hpB,EACzB6hpB,0BAA2B5hpB,IAGnCwppB,8BAA8BpmrB,GAC1B,IACI19E,KAAMA,EACN4wG,YAAaA,GACblzB,EACCt6F,KAAKk6wB,4BACNl6wB,KAAKo8wB,2BAA2Bx/vB,GAEpC,IAAI0ivB,GAAkB,MAAS1ivB,OAA0B,EAASA,EAAK+hvB,WAAa,KACpF3+vB,KAAKq5wB,sBAAsB,CACvBz8vB,KAAM0ivB,EACN37nB,QAAS,aAAuD,EAAS27nB,EAAentvB,IACxFq7G,YAAaA,QAAe,IAGpCo8X,iBACI,OAAO5pf,KAAKogxB,UAAUhvO,gBAE1BqmO,qBAAqBv5B,GACjBl+uB,KAAKogxB,UAAU9stB,OAAO,mBAAoB4qrB,GAE9Cw5B,mBAAmB/zoB,GACf3jI,KAAKogxB,UAAU9stB,OAAO,iBAAkBqwE,GAE5CvrB,QAAQxmF,EAASmiE,GACb,IAAI4orB,EAAgB,CAChBngqB,WAAYx8G,KAAKm6wB,qBAErB,OAAIvovB,GAAWvlB,OAAO8tB,UAAUjnB,eAAeknB,KAAKxI,EAAS,oBACzD+qvB,EAAcpF,eAAiB3lvB,EAAQ2lvB,gBAEvC3lvB,GAAWvlB,OAAO8tB,UAAUjnB,eAAeknB,KAAKxI,EAAS,sBACzD+qvB,EAAcrlpB,iBAAmB1lG,EAAQ0lG,oBAExC55G,SAAUi/vB,EAAcpF,iBTzIrB,eSyIwCxjrB,IAC5C/zF,KAAKi3wB,0BAA2B,GAEpCj3wB,KAAKogxB,UAAU9stB,OAAOqptB,GACtB38wB,KAAK6uwB,iBAAmB,IAAIr7rB,MACrBxzE,KAAK6uwB,iBAAiB/0tB,UAEjCi/tB,cAAcn8vB,GACV,IAAI4wG,EAAcxtH,KAAKogxB,UAAUV,qBAAqB9iwB,GACtD5c,KAAKogxB,UAAUp4oB,aAAaxa,GAEhC4upB,2BAA2Bx/vB,GACnBA,EACA5c,KAAKogxB,UAAUh4pB,WAAWxrG,GAE1B5c,KAAKogxB,UAAU59oB,iBAGvBA,iBACIxiI,KAAKogxB,UAAU59oB,iBAEnB7I,mBACI,OAAO35H,KAAKogxB,UAAUzmpB,qBCvK9B,IACIknpB,IAAqC,iCAMrCC,IAAuB,CACvBC,YAAa,CACT9twB,SAAU,UAEd3G,OAAQ,CACJ2G,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtB0ilB,OAAQ,CACJ1wtB,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtB7oC,QAAS,CACLnlG,SAAU,QACVkuI,SAAU,SACVv8C,SAvBwCo8qB,wCAwBxCz6iB,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtBggoB,WAAY,CACRhuwB,SAAU,SAEd8tU,SAAU,CACN9tU,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtB7kF,KAAM,CACFnpD,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtBjmI,KAAM,CACF/H,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtBiwnB,OAAQ,CACJj+vB,SAAU,SACVszN,YAAa,CACTplF,SAAU,SACVF,aAAc,SAGtBt3I,OAAQ,CACJsJ,SAAU,SACVszN,YAAa,CACTplF,SAAU,WAGlB3e,eAAgB,CACZvvH,SAAU,QACVguI,aAAc,QACdslF,YAAa,CACTplF,SAAU,WAGlB2uM,UAAW,CACP78U,SAAU,WAGdk/vB,IAAkC,CAAC,UAAW,WAAY,eAAgB,WAAY,YACtF+O,IAAyC,CAAC,YAAa,cAAe,SAAU,OAAQ,OAAQ,cAAe,WAAY,OAAQ,SACnIC,IAA+B,CAAC,YAAa,cAC7CC,IAAmB,CACnB5+d,QAAS,4CACT6e,SAAU,6CACVujc,QAAS,yCACThkvB,MAAO,4CA0fX,UAvfA,kBAAiCwnF,GAC7BtS,QACIh2F,MAAMg2F,QACN91F,KAAKqhxB,wBAAyB,EAC9BrhxB,KAAKshxB,kBAAoB,CACrB9mvB,QAAS,GACT/R,OAAQ,WAGhB85E,cACIviG,KAAKuhxB,2BACLvhxB,KAAKwhxB,qBAAsBpmtB,QAAE,SAASxtD,SAjGD,sCAkGrC5N,KAAKyhxB,gBAAkBzhxB,KAAK0hxB,eAAe1hxB,KAAKszD,OAAO,iBAAkBtzD,KAAKqhxB,wBAC9ErhxB,KAAK2hxB,aAAe3hxB,KAAK0hxB,eAAe1hxB,KAAKszD,OAAO,aAActzD,KAAKqhxB,wBACvErhxB,KAAKwhxB,oBAAoB32sB,SAAS7qE,KAAKm7D,YACvCn7D,KAAKm7D,WAAWvtD,SAASozwB,0BAAmCH,KAEhEzorB,UACIt4F,MAAMs4F,UACN,IAAI63D,EAAUjwJ,KAAK4hxB,qBACnB5hxB,KAAK6hxB,kBAAkB5xnB,GAE3BxsD,gBACWzjG,KAAKszwB,uBACLtzwB,KAAK8hxB,0BACL9hxB,KAAKwhxB,2BACLxhxB,KAAKyhxB,uBACLzhxB,KAAK2hxB,aACZ7hxB,MAAM2jG,SAEV5B,kBAAkB4tB,GACd,IAAKA,GAAa,WAAaA,EAAW,CACtC,IAAIwgC,EAAUjwJ,KAAK4hxB,qBACnB5hxB,KAAK6hxB,kBAAkB5xnB,IAG/B2xnB,qBACI,OAAO5hxB,KAAKqhxB,uBAAyBrhxB,KAAKyhxB,gBAAkBzhxB,KAAK2hxB,aAErED,eAAerttB,EAAO0oJ,GAClB,IAAIrtD,EAAe1vJ,KAAK+hxB,kBAAkB1ttB,GACtCqwK,GAAWtpK,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACpCzoD,EAAS1S,KAAK24F,iBAAiB+rI,EAAU4gV,GAAS,CAClDjxf,MAAOq7F,EACP3gF,SAAUguI,EACVj4F,YAAansG,GAAQ3Y,KAAKgixB,kBAAkBrpwB,KAEhDjG,SAAO6zN,aAAc,EACd7zN,EAEXqvwB,kBAAkB1ttB,GACdA,SAAQA,EAAM3zC,IAAI9D,IACd,IAAIs+vB,EAAet+vB,GACf2/D,SAAS3/D,KACTs+vB,EAAe,CACX73wB,KAAMuZ,IAGd,IAAI+0vB,EAAcuJ,EAAa73wB,KAC3B6umB,EAAelymB,KAAKizwB,4BAA4BtB,EAAauJ,GACjEhpK,SAAaqhK,iBAAmB32vB,EAC5B,cAAgB+0vB,GAChB3xwB,KAAKiixB,yBAAyB/vK,GAE3BA,IAEXlymB,KAAKkixB,4BAA4B7ttB,GAC1BA,EAEX6ttB,4BAA4B7ttB,EAAO47F,GAC/B,IAAIkynB,GAAmB,EACnBv/f,EAAY5iR,KAAK8gjB,cAAc7wZ,GAC/BmynB,EAAiB,CACjBrqN,QAAQ,EACR3sW,QAAQ,EACRt8E,OAAO,GAEPuzoB,EAAa,CACbtqN,OAAQ/3jB,KAAKsixB,iBAAiBjutB,EAAOuuN,EAAW,UAChDx3D,OAAQprN,KAAKsixB,iBAAiBjutB,EAAOuuN,EAAW,UAChD9zI,MAAO9uI,KAAKsixB,iBAAiBjutB,EAAOuuN,EAAW,UAEnDvuN,SAAMruD,QAAQ,CAAC4W,EAAMpY,KACjB,IAAI+9wB,EAAe3lwB,EAAK3J,SACxB,GAAI,cAAgB2J,EAAKvZ,KAAM,CAC3B,IAAIm/wB,EAAqBJ,EAAeG,IAAiBvixB,KAAKyixB,oBAAoBJ,EAAWE,IACzF3lwB,EAAKmyD,UAAYyzsB,IACjBL,GAAmB,EACnBvlwB,EAAKmyD,QAAUyzsB,GAEnBJ,EAAeG,IAAgB,OAE1BvixB,KAAK0ixB,cAAc9/f,EAAWhmQ,KAC/BwlwB,EAAeG,GAAgBH,EAAeG,IAAiB3lwB,EAAKmyD,SAExEszsB,EAAWE,GAAcjxwB,UAG7B2+I,GAAWkynB,GACXlynB,EAAQ5hD,UAEL8zqB,EAEXrhO,cAAc7wZ,GAEV,OADaA,EAAUA,EAAQ6wZ,gBAAkB,IACnCpgiB,IAAI25M,GAAYA,EAASk5iB,kBAE3CmP,cAAc9/f,EAAWhmQ,GACrB,QAASgmQ,EAAUn+Q,QAAU,WAAYyiG,SAActqF,EAAKqkI,aAAc,WAAY,MAAiBzuI,QAAQoK,EAAK22vB,kBAExH+O,iBAAiBjutB,EAAOuuN,EAAW5oL,GAC/B,OAAO3lC,EAAMvtC,OAAOlK,GAAQA,EAAK3J,WAAa+mF,IAAch6F,KAAK0ixB,cAAc9/f,EAAWhmQ,IAE9F6lwB,oBAAoBputB,GAChB,QAAS7vD,EAAI,EAAGA,EAAI6vD,EAAM5vD,OAAQD,IAC9B,GAAI,cAAgB6vD,EAAM7vD,GAAGnB,MAAQgxD,EAAM7vD,GAAGuqE,QAC1C,OAAO,EAGf,OAAO,EAEXkksB,4BAA4BtB,EAAa/0vB,GACrC,IAAI+lwB,EACAjwwB,EAAS,GACT+xB,EAAUzkC,KAAKszwB,gBAAgBvB,iBAAiBJ,GAIpD,OAHIltuB,IACA/xB,EAAS1S,KAAK4ixB,mBAAmBn+uB,IAE7BktuB,OACC,YACDj/vB,EAAS1S,KAAK6ixB,uBACd,UACC,aACDnwwB,EAAS1S,KAAK8ixB,sBAEtB,GAAI9ixB,KAAKmzwB,eAAexB,GAAc,EAElCtyvB,SAAO,EAAM3M,EADOouwB,IAAqBnP,IAEzC,IAAI2J,EAAiB5owB,EAAOkyF,UAAY,GACxC42pB,GAAiB9ovB,EAAQkK,EAAMu1vB,MAC3Bz0vB,SAAUd,EAAKgV,UACf4puB,GAAiB9ovB,EAAOkf,QAAShV,EAAKgV,QAASsvvB,KAEnD1lB,GAAiB9ovB,EAAOkf,QAAShV,EAAM,CAAC,OAAQ,SAC5CA,EAAKgoF,WACL02qB,EAAiB,GAAGz5vB,OAAOy5vB,EAAgB,KAAKz5vB,OAAOjF,EAAKgoF,WAE5D02qB,IACA5owB,EAAOkyF,SAAW02qB,IAEjB59vB,SAAUd,EAAKmyD,WAChBr8D,EAAO0gwB,WAAY,GAEnB,eAAsB56qB,SAClB,WAAa9lF,EAAOyuI,cAAazjI,OAAUhL,EAAOkf,QAAQ62E,QAC1D/1F,EAAOkf,QAAQ62E,KAAO/1F,EAAOkf,QAAQnb,MAErC/D,EAAO6zN,eAAgB7oN,SAAUhL,EAAOkf,QAAQ62E,OAChDzoG,KAAK+ixB,6BAA6BrwwB,SAI1C2M,SAAO,EAAM3M,EAAQkK,GAChBlK,EAAO8lF,SACR9lF,EAAO8lF,OAAS,YAEhB,aAAe9lF,EAAO8lF,SAAW9lF,EAAO6zN,cAAgB7zN,EAAOyuI,UAAYzuI,EAAOkf,SAAWlf,EAAOkf,QAAQ+/G,MAAQj/H,EAAOkf,QAAQnb,OACnI/D,EAAO6zN,YAAc,CACjBplF,SAAU,WAItB,OAAIwwnB,IAAgBj/vB,EAAOrP,OACvBgc,QAAO3M,EAAQ,CACXrP,KAAMsuwB,IAGdj/vB,EAAOO,UAAWi0F,SAAcx0F,EAAOO,SAAU,aAC5CyK,OAAU,QAAUilwB,EAAkBjwwB,EAAOkf,eAAY,WAA6B,EAAS+wvB,EAAgBvjoB,eAC5G,aAAe1sI,EAAO8lF,SACtBn5E,SAAO,EAAM3M,EAAQ,CACjBkf,QAAS,CACLwtH,YAAa,UAIrB,gBAAkB1sI,EAAO8lF,SACzBn5E,SAAO,EAAM3M,EAAQ,CACjBkf,QAAS,CACLwtH,YAAa,aAKtB1sI,EAEXygwB,eAAexB,GACX,QAASmP,IAAqBnP,GAElCiR,mBAAmBn+uB,GACf,MAAO,CACH+zD,OAAQ,WACR5mE,QAAS,CACLnb,KAAMguB,EAAQhuB,KACdgyF,KAAMhkE,EAAQgkE,KACdu6qB,YAAav+uB,EAAQhuB,KACrBk7H,KAAMltG,EAAQktG,KACdyN,YAAa,OACbt7F,QAAS9tC,GAAKhW,KAAK29sB,gBAAgBl5qB,KAI/Co+uB,uBACI,MAAO,CACH/ztB,SAAU,CAAC1iD,EAAMmG,EAAO/K,MACpB4zD,QAAE5zD,GAASoG,SAhTqBozwB,2CAoT5C8B,sBACI,IAAIG,EAAe,CAAC,UAAW,cAAcviwB,IAAIrd,IAC7C,IACIoT,KAAMA,EACNk7H,KAAMA,GACN3xI,KAAKszwB,gBAAgBvB,iBAAiB1uwB,GAC1C,MAAO,CACHA,KAAMA,EACNoT,KAAMA,EACNk7H,KAAMA,KAGVrM,EAAgB,eAAiBtlI,KAAKszD,OAAO,gBAAkB,EAAI,EACnE68L,EAAkB,CAClBj8N,UAAWl0B,KAAKwhxB,qBAEpB,OAAIxxoB,KACAmgH,EAAgBvwL,MAAQo2a,KAAc,GAAK,GACpC/lW,OACPkgH,EAAgBvwL,MAAQo2a,KAAc,GAAK,IAExC,CACHpxY,SAzUmCo8qB,uCA0UnCxorB,OAAQ,mBACR5mE,QAAS,CACLyiC,MAAO4utB,EACP5opB,QAAS,OACTmqY,gBAAiBxkgB,KAAKszD,OAAO,gBAC7BmyD,YAAa,IACbhd,KAAMw6qB,EAAa39oB,GAAe7uH,KAClC2oI,YAAa,OACbgxiB,eAAe,EACfF,eAAe,EACf//b,gBAAiBA,EACjBrrI,YAAa9uG,GAAKhW,KAAK29sB,gBAAgB3nsB,EAAEsuG,SAASjhH,QAI9D0/wB,6BAA6BnmwB,GACzBA,EAAKgV,QAAQ62E,KAAO,GACpB7rF,EAAK2pN,YAAY30M,QAAUhV,EAAK2pN,YAAY30M,SAAW,GACvDhV,EAAK2pN,YAAY30M,QAAQ62E,KAAO7rF,EAAKgV,QAAQnb,KAEjDorwB,kBAAkB5xnB,GACVA,EAAQs2E,aACRvmO,KAAKkjxB,mBAAmBjznB,GAAS,GAErC,IAAIkznB,EAAiBnjxB,KAAKojxB,yBAAyBnznB,GAC/CA,EAAQs2E,cAAgB48iB,GACnBlznB,EAAQs2E,aACTvmO,KAAKkjxB,mBAAmBjznB,EAASkznB,GAErClznB,EAAQs2E,YAAc48iB,GACflznB,EAAQs2E,aACfvmO,KAAKkjxB,mBAAmBjznB,GAAS,GAGzCmznB,yBAAyBnznB,GAGrB,OAFmBtqF,SAASsqF,EAAQ90F,YACnB80F,EAAQ+wZ,iBAG7BkiO,mBAAmBjznB,EAASkznB,GACxB,IAAIhB,GAAmB,EACnB9ttB,EAAQ47F,EAAQ38F,OAAO,SAC3Be,EAAMruD,QAAQ4W,IACV,GAAIA,EAAK2pN,YAAa,CAClB,IAAI88iB,EAAgB,KAChBF,GACAvmwB,EAAK0mwB,MAAQtjxB,KAAKujxB,uBAAuB3mwB,EAAMA,EAAK4mwB,YACpDH,EAAgBzmwB,EAAK2pN,aAErB88iB,EAAgBzmwB,EAAK0mwB,MAEzB,IAAI1xvB,EAAU5xB,KAAKujxB,uBAAuBF,EAAezmwB,EAAK4mwB,aAC9DnkwB,SAAO,EAAMzC,EAAMgV,GACnBuwvB,GAAmB,MAG3BA,EAAmBnixB,KAAKkixB,4BAA4B7ttB,IAAU8ttB,IAE1DlynB,EAAQ5hD,UAEZruG,KAAKkixB,4BAA4B7ttB,EAAO47F,GAE5CsznB,uBAAuBvgwB,EAAMygwB,GACzB,IACItioB,SAAUA,EACVF,aAAcA,EACdrvH,QAASA,GACT5O,EACJ,MAAO,CACH+rD,QAAS00sB,EACTtioB,UAAUj6C,SAAci6C,EAAU,UAClCF,cAAc/5C,SAAc+5C,EAAc,SAC1CrvH,QAAS,CACL62E,KAAM,aAAyC,EAAS72E,EAAQ62E,OAI5Ei7qB,gCAAgCzznB,GAC5B,IAAIkynB,GAAmB,EACnB9ttB,EAAQ47F,EAAQ38F,OAAO,SAC3Be,EAAMruD,QAAQ4W,IACV,GAAI,cAAgBA,EAAKvZ,KAAM,CAC3B,IAAI8gjB,EAAcvniB,EAAK4mwB,WACvBxjxB,KAAKiixB,yBAAyBrlwB,GAC1BA,EAAK4mwB,aAAer/N,IACpBg+N,GAAmB,OAI/BA,EAAmBnixB,KAAKkixB,4BAA4B7ttB,IAAU8ttB,IAE1DlynB,EAAQ5hD,UAEZruG,KAAKkixB,4BAA4B7ttB,EAAO47F,GAE5CgynB,yBAAyBrlwB,GACrB,IAAI+mwB,EACAC,EAAkB,QAAUD,EAAwB/mwB,EAAK22vB,wBAAqB,WAAmC,EAASoQ,EAAsB50sB,QACpJnyD,EAAK4mwB,WAAaxjxB,KAAK6jxB,wBAAwBjnwB,GAC/CA,EAAKmyD,SAAUrxD,SAAUkmwB,GAAmBA,EAAkBhnwB,EAAK4mwB,WAEvEM,gCAEI,OADY9jxB,KAAK2hxB,aAAarutB,OAAO,SACxB9/B,KAAK5W,GAAQ5c,KAAK+jxB,4BAA4BnnwB,IAE/D+gsB,gBAAgBl5qB,GACZzkC,KAAKszwB,gBAAgB5B,eAAejtuB,GAExCo/uB,wBAAwBG,GACpB,OAAKhkxB,KAAKmzwB,eAAe6Q,EAAY3gxB,OAAU2gxB,EAAY5Q,UAGvD,YAAc4Q,EAAY3gxB,KACnBrD,KAAKqhxB,0BAA4BrhxB,KAAKikxB,+BAE7C9C,IAA6B3uwB,QAAQwxwB,EAAY3gxB,OAAQ,GAGtDrD,KAAKkkxB,oBAAoBF,EAAY3gxB,SARjC6jG,OAAc88qB,EAAYj1sB,SAAS,GAUlDg1sB,4BAA4BzprB,GACxB,IACIj3F,KAAMA,EACN0rE,QAASA,GACTurB,EACJ,OAAQt6F,KAAKmzwB,eAAe9vwB,KAAS6jG,SAAcn4B,GAAS,IAAS,mBAAqB1rE,GAAQ,eAAsBrD,KAAKkkxB,oBAAoB7gxB,GAErJ6gxB,oBAAoB7gxB,GAChB,OAAOrD,KAAKszwB,gBAAgBtB,mBAAmB3uwB,EAAMrD,KAAKszD,OAAO,iBAErE6wtB,qBAAqBl0nB,EAAS0hnB,EAAa//uB,GACvCq+H,EAAQp4F,cAER,QADIxD,EAAQ47F,EAAQ38F,OAAO,SAClB9uD,EAAI,EAAGA,EAAI6vD,EAAM5vD,OAAQD,IAE9B,GADW6vD,EAAM7vD,GACRnB,OAASsuwB,EAAa,CAC3B1hnB,EAAQ38F,OAAO,SAASzxC,OAAOrd,EAAG,KAAMotB,GACxC,MAGRq+H,EAAQl4F,YAEZiqtB,kBAAkBrpwB,GACd,IAAIi7vB,GAAcv0vB,SAAO,EAAM,GAAI1G,GACnCi7vB,EAAYtvpB,SAAW3rG,EAAK2rG,SAASivpB,iBACrCvzwB,KAAK8hxB,mBAAmBlO,GAE5B2N,2BACIvhxB,KAAK8hxB,mBAAqB9hxB,KAAKo2F,sBAAsB,eAEzD7B,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC6/qB,eAAgB,KAChBgQ,aAAc,GACdjZ,UAAW,GACXkZ,aAAc,GACdC,aAAc,UACdx/pB,YAAa,OAGrBvuB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,qBACA,mBACA,mBACA,YACDrD,KAAKquG,UACL,UACC,eACDruG,KAAK29P,UACL,UACC,cACD39P,KAAK8hxB,mBAAqB9hxB,KAAKo2F,sBAAsB/yF,GACrD,cAEAvD,MAAMy2F,eAAe59E,IAGjC4rwB,wBACIvkxB,KAAKquG,UACLruG,KAAKwkxB,2BAETA,2BACIxkxB,KAAKykxB,kBAAkBzkxB,KAAKshxB,kBAAkB9mvB,QAASx6B,KAAKshxB,kBAAkB74vB,QAElFg8vB,kBAAkBjqvB,EAAS/R,GACvB,IAAIi8vB,EAAwB,KACxBjuwB,EAAOupG,UAA2B,gCAClCmhC,EAAW,SACfnhJ,KAAKikxB,gCAAiC,EACtCjkxB,KAAKshxB,kBAAoB,CACrB9mvB,QAASA,EACT/R,OAAQA,GAER,cACAi8vB,EAAwB,CACpB9yvB,QAAS,CACL+/G,KAAMyvoB,IAAiB5+d,WAI/Bkie,EAAwB,CACpB9yvB,QAAS,CACL+/G,KAAMyvoB,IAAiB34vB,KAG/BzoB,KAAKikxB,gCAAiC,EACtCxtwB,EAAO+jB,EACP2mH,EAAW,UAEf,IAAIwjoB,GAAqBtlwB,QAAO,GAAIqlwB,EAAuB,CACvD31sB,QAAS/uE,KAAKikxB,iCAElBjkxB,KAAK4kxB,yBAAyBF,EAAuBC,GACrD3kxB,KAAK6kxB,wBAA0B7kxB,KAAK8kxB,uBAAuB,eAAuBruwB,EAAM0qI,GAE5F2joB,uBAAuBC,EAAkBtuwB,EAAM0qI,GAC3C,IAAIvvH,EAAU,CACVuvH,SAAUA,EACVvvH,QAAS,CACLnb,KAAMA,IAGd,GAAIsuwB,EACA,OAAOhluB,WAAW,KACd//C,KAAK4kxB,yBAAyBhzvB,GAC9B5xB,KAAK6kxB,6BAA0B,GAtdL,KAyd1B7kxB,KAAK6kxB,yBACLtmtB,aAAav+D,KAAK6kxB,yBAEtB7kxB,KAAK4kxB,yBAAyBhzvB,GAItCgzvB,yBAAyBF,EAAuBC,GACvCA,IACDA,GAAqBtlwB,QAAO,GAAIqlwB,IAEpC1kxB,KAAKmkxB,qBAAqBnkxB,KAAKyhxB,gBAAiB,UAAWiD,GAC3D1kxB,KAAKmkxB,qBAAqBnkxB,KAAK2hxB,aAAc,UAAWgD,GAE5DhnhB,UACI,IAAIqnhB,EAAqB,IAAMhlxB,KAAKszD,OAAO,gBAAgB7uD,SAAWzE,KAAK8jxB,gCACvE9jxB,KAAKqhxB,yBAA2B2D,IAChChlxB,KAAKyhxB,gBAAgBnutB,OAAO,UAAW0xtB,GACvChlxB,KAAK2hxB,aAAarutB,OAAO,WAAY0xtB,GACrChlxB,KAAKqhxB,uBAAyB2D,EAC9BhlxB,KAAKm7D,WAAW+oC,YAAY28qB,IAAoCmE,GAChEhlxB,KAAKm7D,WAAW+oC,YAvkBU,+BAukBoC8grB,IAElE,IAAI/0nB,EAAUjwJ,KAAK4hxB,qBACnB5hxB,KAAK0jxB,gCAAgCzznB,GACrCjwJ,KAAK6hxB,kBAAkB5xnB,GAEvBqjnB,sBACA,OAAOtzwB,KAAKszD,OAAO,oBC3lB3B,IAAI2xtB,GAAoC,gCACpCC,IAA8C,GAAGrjwB,OAAOojwB,GAAmC,cAC3FE,IAA0C,GAAGtjwB,OAAOojwB,GAAmC,UACvFG,IAA+C,GAAGvjwB,OAAOojwB,GAAmC,eAC5FI,IAAiD,GAAGxjwB,OAAOojwB,GAAmC,iBAC9FK,IAAoD,GAAGzjwB,OAAOojwB,GAAmC,oBACjGM,IAA8C,GAAG1jwB,OAAOojwB,GAAmC,cAC3FO,IAAyC,GAAG3jwB,OAAOojwB,GAAmC,SACtFQ,IAA2C,GAAG5jwB,OAAOojwB,GAAmC,WACxFS,IAAsD,GAAG7jwB,OAAOojwB,GAAmC,sBACnGU,IAA4C,GAAG9jwB,OAAOojwB,GAAmC,YACzFW,GAAkC,8BAClCC,IAAwC,GAAGhkwB,OAAO+jwB,GAAiC,UACnFE,IAAuD,GAAGjkwB,OAAO+jwB,GAAiC,yBAClGG,IAAwC,GAAGlkwB,OAAO+jwB,GAAiC,UACnFI,IAA0C,GAAGnkwB,OAAO+jwB,GAAiC,YACrFK,IAAyC,GAAGpkwB,OAAO+jwB,GAAiC,WACpFM,IAA+C,GAAGrkwB,OAAO+jwB,GAAiC,iBAC1FO,IAA+C,GAAGtkwB,OAAO+jwB,GAAiC,iBAiQ9F,UA/PA,kBAAuCx9qB,GACnC7F,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACLzvN,KAAKomxB,gBAAkB,EACvBpmxB,KAAKm7D,WAAWvtD,SAASq3wB,IACzB,IAAIoB,GAAcjrtB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACvC4uB,GAAa3uB,QAAE,SAASxtD,SAASs3wB,KAA6Cr6sB,SAASw7sB,GAC3FrmxB,KAAKg+Q,YAAch+Q,KAAK24F,iBAAiB0trB,EAAanugB,GAAY,CAC9DlzG,iBAAiB,EACjBC,eAAe,EACfC,cAAe,aAEnB,IAAI/xB,GAAS/3E,QAAE,SAASxtD,SAASu3wB,KAAyCt6sB,SAASkf,MACnF3uB,MAAE,SAAS3kD,KAAKupG,UAA2B,iDAAiDpyG,SAASw3wB,KAA8Cv6sB,SAASsoE,GAC5J,IAAIsla,GAAer9e,QAAE,SAASxtD,SAASy3wB,KAAgDx6sB,SAASsoE,GAChGnzI,KAAK24F,iBAAiB8/c,EAAcz5V,GAAQ,CACxCrtE,KAAM,QACNyN,YAAa,OACbt7F,QAAS,IAAM9jD,KAAKsmxB,sBAExBtmxB,KAAKumxB,oBAAmBnrtB,MAAE,SAASxtD,SAAS03wB,KAAmDz6sB,SAASkf,GACxG/pF,KAAKwmxB,uBAETjyrB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCkyrB,kBAAmB,KACnBC,oBAAqB,KACrBC,wBAAyB,KACzBC,cAAe,OAGvBn3jB,eACIzvN,KAAKqwN,SAAW,CACZo2jB,kBAAmBzmxB,KAAKo2F,sBAAsB,qBAC9CswrB,oBAAqB1mxB,KAAKo2F,sBAAsB,uBAChDuwrB,wBAAyB3mxB,KAAKo2F,sBAAsB,2BACpDwwrB,cAAe5mxB,KAAKo2F,sBAAsB,kBAGlDG,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,OACD,UACC,wBACA,0BACA,0BACDrD,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAGjCkuwB,aAAaC,EAAYC,EAAuBC,GACxChnxB,KAAKomxB,iBACLhrtB,QAAE,SAASxtD,SAAS23wB,KAA6Cv3iB,UAAUhuO,KAAKumxB,kBAEhFvmxB,KAAKumxB,iBAAiBvjsB,QAE1BhjF,KAAKomxB,kBACL,IAAIp0rB,EAAO,CACPi1rB,oBAAqBF,EACrBC,yBAAyB9/qB,SAAc8/qB,GAAyB,IAEhEE,KAAQ9rtB,MAAE,SAASxtD,SAAS43wB,KAAwCx3iB,UAAUhuO,KAAKumxB,kBACvFv0rB,EAAKk1rB,MAAQA,EACb,IAAIC,GAAU/rtB,QAAE,SAASxtD,SAAS63wB,KAA0C56sB,SAASq8sB,GACrFl1rB,SAAK+hM,OAAS/zR,KAAKonxB,mBAAmBD,EAAS,CAC3CL,WAAYA,EACZt3nB,iBAAiB,EACjBu3nB,sBAAuBA,EACvBM,mBAAoB,IAAMrnxB,KAAKsnxB,gBAAgBt1rB,KAE5CA,EAEXu1rB,oBAAoBv1rB,EAAMw1rB,EAASh4nB,GAC/Bx9D,EAAKk1rB,MAAMt5wB,SAAS83wB,KACpB,IAAI+B,KAAWrstB,MAAE,SAASxtD,SAAS+3wB,KAA2C96sB,SAASmnB,EAAKk1rB,OAC5Fl1rB,EAAKw1rB,QAAUA,EAAQ9mwB,IAAI,CAACu0lB,EAAU1imB,KAClC0imB,EAASjjhB,KAAOA,EACThyF,KAAK0nxB,mBAAmBD,EAAUxyK,EAAU1imB,GAAO,EAAOi9I,KAGzEk4nB,mBAAmB39rB,EAAYntE,EAAMgwG,EAAW+6pB,EAAiBn4nB,GAC7D,IAAIo4nB,GAAexstB,QAAE,SAASyP,SAASkf,GACvC,OAAI,OACA69rB,EAAah6wB,SAxFL,WA0FL5N,KAAKonxB,mBAAmBQ,EAAc,CACzCd,WAAYlqwB,EAAKkqwB,WACjBe,SAAUjrwB,EAAKirwB,SACfF,gBAAiBA,EACjBn4nB,gBAAiBA,EACjBu3nB,sBAAuBv3nB,EACvB63nB,mBAAoB,IAAMrnxB,KAAK8nxB,qBAAqBlrwB,EAAMgwG,KAGlEm7pB,sBAAsBC,EAAep7pB,EAAWq7pB,GACxCD,EAAchB,yBACdhnxB,KAAKkoxB,4BAA4BF,EAAep7pB,EAAW,IAAKq7pB,GAEpEjoxB,KAAKmoxB,uBAAuBH,EAAcR,QAAQ56pB,IAAY,GAElEs7pB,4BAA4BF,EAAep7pB,EAAWw7pB,EAAcH,GAChEjoxB,KAAKqoxB,8BAA8BL,EAAeC,GAC9CD,EAAcR,SACIQ,EAAcR,QAAQ56pB,GAC5B8wmB,YAAYpqqB,OAAO,QAAS80tB,GAGhDC,8BAA8BL,EAAeC,GACzC,IAAIK,EACJ,QAAUA,EAAwBN,EAAcj0f,OAAO2pc,mBAAgB,OAA4C4qD,EAAsBh1tB,OAAO,QAAS20tB,GAE7JM,kBAAkBv2rB,EAAM80rB,EAAYrzJ,EAAS6jG,GACzCtloB,EAAKr3C,WAAY,EACjBq3C,EAAK+hM,OAAOy0f,YAAY/xwB,KAAKqwwB,GACzBrzJ,EACAzznB,KAAKyoxB,mBAAmBz2rB,EAAK+hM,QACtB/hM,EAAKg1rB,yBACZhnxB,KAAKqoxB,8BAA8Br2rB,EAAM,KAEzCsloB,GACAt3tB,KAAK0oxB,oBAAoB12rB,EAAK+hM,OAAQujc,GAE1Ct3tB,KAAKmoxB,uBAAuBn2rB,EAAK+hM,QAAQ,GAE7C40f,iCAAiC32rB,EAAM0jiB,GACnC,IAAIkzJ,EACAC,EAAc,QAAUD,EAAgB52rB,EAAKw1rB,eAAY,WAA2B,EAASoB,EAAc,GAC/G52rB,EAAKr3C,WAAY,EACjB36C,KAAK8oxB,sBAAsBD,GAAe72rB,EAAK+hM,OAAQ2hW,GACvD11nB,KAAKmoxB,uBAAuBn2rB,EAAK+hM,QAAQ,GACrC80f,GACA7oxB,KAAKmoxB,uBAAuBU,GAAa,GAGjDE,yBAAyB/2rB,EAAMz/E,EAAOmjnB,GAClC,IAAImzJ,EAAc72rB,EAAKw1rB,QAAQj1wB,GAC/BvS,KAAK8oxB,sBAAsBD,EAAanzJ,GACxC11nB,KAAKmoxB,uBAAuBU,GAAa,GAE7CG,aAAaj/rB,EAAYlY,EAAS6jjB,MAC9Bt6jB,MAAE,SAAS3kD,KAAKi/mB,GAAW9nnB,SAASi4wB,KAAuCh7sB,SAASkf,GAExFy8rB,uBACIxmxB,KAAKumxB,iBAAiB9vwB,KAAKupG,UAA2B,yDAE1D8oqB,sBAAsB92rB,EAAM0jiB,GACxB11nB,KAAKyoxB,mBAAmBz2rB,GACxBhyF,KAAKgpxB,aAAah3rB,EAAKw5H,SAAUx5H,EAAKw2rB,YAAa9yJ,GAEvD+yJ,mBAAmBQ,GACXA,EAAYvrD,cACZurD,EAAYvrD,YAAY58qB,UACxBmouB,EAAYvrD,YAAYviqB,WAAWt6D,SACnCooxB,EAAYvrD,YAAc,MAGlC0pD,mBAAmBr9rB,EAAYn4D,GAC3Bm4D,EAAWn8E,SAASg4wB,IACfh0vB,EAAQm1vB,uBACTh9rB,EAAWn8E,SAASk4wB,KAEpBl0vB,EAAQi2vB,UACR76oB,GAAkBp7G,EAAQi2vB,UAAUj6wB,SAASm4wB,KAAuCl7sB,SAASkf,GAEjG,IAAIyhI,KAAWpwJ,MAAE,SAASxtD,SAASo4wB,KAAyCn7sB,SAASkf,GACjFy+rB,GAAcpttB,QAAE,SAASxtD,SAASq4wB,KAAwCxvwB,KAAKmb,EAAQk1vB,YAAYj8sB,SAAS2gJ,GAC5GkygB,EAAc,KAClB,IAAK9rsB,EAAQ+1vB,gBAAiB,CAC1B,IAAIuB,GAAe9ttB,QAAE,SAASxtD,SAASs4wB,KAA8Cr7sB,SAAS2gJ,GAC9FkygB,EAAc19tB,KAAK24F,iBAAiBuwrB,EAAc3yD,GAAa,CAC3D7spB,IAAK,EACLlvD,IAAK,IACLolD,MAAO,OACPinG,sBAAuB,SACvB2vjB,aAAc,CAACj3kB,EAAO3yI,IAAU5M,KAAKmpxB,iBAAiB5poB,EAAO3yI,KAGrE,IAAIw8wB,EAAc,KAClB,GAAIx3vB,EAAQ49H,gBAAiB,CACzB,IAAI21E,GAAU/pK,QAAE,SAASxtD,SAASu4wB,KAA8Ct7sB,SAASkf,GACzFq/rB,EAAcppxB,KAAK24F,iBAAiBwsI,EAASnmB,GAAQ,CACjDrtE,KAAM,2CACNyN,YAAa,OACbrwE,QAASn9C,EAAQm1vB,sBACjBjjuB,QAASlyB,EAAQy1vB,qBAGzB,MAAO,CACHmB,YAAaA,EACb9qD,YAAaA,EACbviqB,SAAU4uB,EACVyhI,SAAUA,EACV49jB,YAAaA,GAGrBjB,uBAAuBc,EAAal6sB,GAC5Bk6sB,EAAYG,cACZH,EAAY9ttB,SAAS+oC,YAAY4hrB,KAAuD/2sB,GACxFk6sB,EAAYG,YAAY91tB,OAAO,UAAWyb,IAGlD25sB,oBAAoBO,EAAaxywB,GAC7BwywB,EAAYvrD,YAAYpqqB,OAAO,eAAgB,IAAM78C,GAEzD6wwB,gBAAgBt1rB,GACRA,EAAKi1rB,sBAAwBj1rB,EAAKr3C,WAClC36C,KAAKqpxB,wBAAwBr3rB,GAC7BhyF,KAAKmoxB,uBAAuBn2rB,EAAK+hM,QAAQ,GACzC/hM,EAAKw1rB,QAAQxhxB,QAAQ4W,GAAQ5c,KAAKspxB,4BAA4B1swB,MAE9D5c,KAAKupxB,sBAAsBv3rB,GAC3BA,EAAKk1rB,MAAMxtwB,KAAK,IAAImI,OAAO0jwB,MAA8C1kxB,SACzEmxF,EAAKk1rB,MAAMrmxB,SACXb,KAAKomxB,kBACApmxB,KAAKomxB,iBACNpmxB,KAAKwmxB,wBAIjBsB,qBAAqBlrwB,EAAMgwG,GACvB5sH,KAAKwpxB,4BAA4B5swB,EAAMgwG,GAEvC5sH,KAAKspxB,4BADU1swB,EAAKo1E,KAAKw1rB,QAAQ56pB,IAGrC08pB,4BAA4Br0K,GACxBj1mB,KAAK0oxB,oBAAoBzzK,EAAUj1f,UAA2B,6DAC9DhgH,KAAKmoxB,uBAAuBlzK,GAAU,GAE1Ck0K,iBAAiB5poB,EAAO3yI,GACpB,OAAO,MAAcozG,UAA2B,QAAUzlG,KAAK2zC,MAAM,IAAMqxF,GAAS,IAExFgqoB,sBAAsBv3rB,GAClBhyF,KAAKqwN,SAASo2jB,kBAAkB,CAC5Bz0rB,KAAMA,IAGdq3rB,wBAAwBr3rB,GACpBhyF,KAAKqwN,SAASq2jB,oBAAoB,CAC9B10rB,KAAMA,IAGdw3rB,4BAA4B5swB,EAAMgwG,GAC9B5sH,KAAKqwN,SAASs2jB,wBAAwB,CAClC/pwB,KAAMA,EACNgwG,UAAWA,IAGnB05pB,oBACItmxB,KAAKqwN,SAASu2jB,kBCtRtB,IAAIhB,GAAkC,8BAClCC,IAAwC,GAAGhkwB,OAAO+jwB,GAAiC,UACnFG,IAAwC,GAAGlkwB,OAAO+jwB,GAAiC,UACnFI,IAA0C,GAAGnkwB,OAAO+jwB,GAAiC,YACrFK,IAAyC,GAAGpkwB,OAAO+jwB,GAAiC,WACpF6D,GAAkB,yBAOtB,UACI5pxB,YAAYmjB,GACR,IACI0mwB,8BAA+BA,EAC/BC,SAAUA,GACV3mwB,EACJhjB,KAAKuiP,KAAO,IAAI97H,MAAMjvG,WACtBxX,KAAK4pxB,UAAYD,IAAY,EAC7B3pxB,KAAK6pxB,sBAbA,UAcL7pxB,KAAK8pxB,qBAAuBJ,EAEhC7niB,QACI,OAAO7hP,KAAKuiP,IAEhBoniB,WACI,OAAO3pxB,KAAK4pxB,UAEhBG,8BAA8BhgsB,EAAYntE,EAAM84mB,GAC5C,IAAImzJ,EAAc7oxB,KAAK0nxB,mBAAmB39rB,EAAYntE,GACtD5c,KAAKgqxB,YAAYnB,EAAYr9jB,SAAUkqa,GAE3Cs0J,YAAYjgsB,EAAY2riB,MACpBt6jB,MAAE,SAAS3kD,KAAKi/mB,GAAW9nnB,SAASi4wB,KAAuCh7sB,SAASkf,GAExFkgsB,gCACI,MA9BK,YA8BEjqxB,KAAK6pxB,sBAEhBnC,mBAAmB39rB,EAAYntE,GAC3B,IAAIgrwB,GAAexstB,QAAE,SAASyP,SAASkf,GACvC,OAAO/pF,KAAKonxB,mBAAmBQ,EAAc,CACzCd,WAAYlqwB,EAAKkqwB,WACjBe,SAAUjrwB,EAAKirwB,WAGvBT,mBAAmBr9rB,EAAYn4D,GAC3Bm4D,EAAWn8E,SAASg4wB,IAChBh0vB,EAAQi2vB,UACR76oB,GAAkBp7G,EAAQi2vB,UAAUj6wB,SAASm4wB,KAAuCl7sB,SAASkf,GAEjG,IAAIyhI,KAAWpwJ,MAAE,SAASxtD,SAASo4wB,KAAyCn7sB,SAASkf,GAErF,MAAO,CACHy+rB,aAFcpttB,QAAE,SAASxtD,SAASq4wB,KAAwCxvwB,KAAKmb,EAAQk1vB,YAAYj8sB,SAAS2gJ,GAG5GrwJ,SAAU4uB,EACVyhI,SAAUA,IAItB,kBAAsC0+jB,IAClCrD,eACI,MAAO,EACF4C,IAAkBzpxB,KAAKuiP,KAGhCgliB,uBACAW,+BACAH,yBACAoC,mBACA5B,qBACAI,oCACAI,4BACAqB,yBACI,OAAO,EAEXC,8BACAC,wBACItqxB,KAAKuqxB,sBAAsB,GAvEtB,WAyETC,6BACIxqxB,KAAKuqxB,sBAAsB,GA1EtB,WA4ETA,sBAAsB/vvB,EAAS/R,GA5EtB,YA6EDA,GA5EE,aA4E2CA,IAGjDzoB,KAAK6pxB,sBAAwBphwB,EAC7BzoB,KAAK8pxB,qBAAqBtvvB,EAAS/R,IAEvCgiwB,kBACI,OAAO,EAEPC,gCACA,OAAO,EAEPA,8BAA0B99wB,IAC1B+9wB,4BACA,OAAO,EAEPA,0BAAsB/9wB,KAE9B,kBAAkCs9wB,IAC9BrqxB,YAAY+xB,GACR9xB,MAAM8xB,GACN5xB,KAAK2qxB,sBAAwB,EAC7B3qxB,KAAK0qxB,0BAA4B,EAErC7D,aAAa+D,EAAmBC,EAAa7D,GACzChnxB,KAAK0qxB,4BACL,IAAI1C,EAAgBhoxB,KAAK8qxB,eAAejE,aAAa+D,EAAmBC,EAAa7D,GACrFgB,SAAcyB,IAAmBzpxB,KAAKuiP,IACtCviP,KAAKuqxB,sBAAsBK,EAxGrB,YAyGC5C,EAEXT,oBAAoBS,EAAeR,EAASh4nB,GACxCxvJ,KAAK8qxB,eAAevD,oBAAoBS,EAAeR,EAASh4nB,GAEpE04nB,4BAA4BF,EAAep7pB,EAAWw7pB,EAAcH,GAChEjoxB,KAAK8qxB,eAAe5C,4BAA4BF,EAAep7pB,EAAWw7pB,EAAcH,GAE5FF,sBAAsBC,EAAep7pB,EAAWq7pB,GAC5CjoxB,KAAK8qxB,eAAe/C,sBAAsBC,EAAep7pB,EAAWq7pB,GAExEkC,gBAAgBnC,EAAeC,GAC3BjoxB,KAAK8qxB,eAAezC,8BAA8BL,EAAeC,GAErEM,kBAAkBP,EAAelB,EAAYrzJ,EAAS6jG,GAClDt3tB,KAAK0qxB,4BACDj3J,GACAzznB,KAAK2qxB,wBAET3qxB,KAAK8qxB,eAAevC,kBAAkBP,EAAelB,EAAYrzJ,EAAS6jG,GAE9EqxD,iCAAiCX,EAAexc,GAC5CxrwB,KAAK8qxB,eAAenC,iCAAiCX,EAAexc,EAAUuf,iBAC9E/qxB,KAAKgrxB,aAAaxf,GAEtBud,yBAAyBf,EAAexc,GACpCxrwB,KAAK8qxB,eAAe/B,yBAAyBf,EAAexc,EAAU5+oB,UAAW4+oB,EAAUuf,iBAC3F/qxB,KAAKgrxB,aAAaxf,GAEtB4e,yBACI,OAAIpqxB,KAAK8qxB,gBACL9qxB,KAAK8qxB,eAAe3vtB,WAAW3yB,UAE5B,EAEX6hvB,2BAA2Bn2vB,EAAWtC,GAClC,GAAK5xB,KAAK8qxB,eAYN9qxB,KAAK8qxB,eAAe3vtB,WAAW0P,SAAS32C,OAZlB,CACtB,IAAI+2vB,KAAwB7vtB,MAAE,SAASyP,SAAS32C,GAC5Cg3vB,EAAqBlrxB,KAAKmrxB,6BAC9BnrxB,KAAK8qxB,eAAiB,IAAII,EAAmBD,GAAuB5rwB,QAAO,GAAIuS,EAAS,CACpF60vB,kBAAmBnsrB,IACf,IACItI,KAAMA,GACNsI,EACJ,OAAOt6F,KAAKorxB,gCAAgCp5rB,QAO5Dm5rB,6BACI,OAAOE,IAEXD,gCAAgCpD,GACxBA,EAAcx+vB,WACdxpB,KAAK2qxB,wBACL3qxB,KAAKsqxB,yBAGbA,wBACQtqxB,KAAKyqxB,mBACLzqxB,KAAKuqxB,sBAAsB,GAxK1B,WA2KTC,2BAA2BxC,GACnBA,GAEAhoxB,KAAKuqxB,sBAAsB,GADd,SAAWI,sBA1KvB,UADF,SA+KPK,aAAaxf,GACT,IAAI/ivB,EAASzoB,KAAKyqxB,kBAlLb,UAEF,QAiLHzqxB,KAAKuqxB,sBAAsB/e,EAAU8f,gBAAiB7iwB,GAE1D8hwB,sBAAsB/vvB,EAAS/R,GAC3BzoB,KAAK6pxB,sBAAwBphwB,EAC7BzoB,KAAK8pxB,qBAAqBtvvB,EAAS/R,GAEvCgiwB,kBACI,OAAO,IAAMzqxB,KAAK0qxB,2BAA6B,IAAM1qxB,KAAK2qxB,sBAE1DD,gCACA,OAAO1qxB,KAAKurxB,kCAEZb,8BAA0B99wB,GAC1B5M,KAAKurxB,kCAAoC3+wB,EAEzC+9wB,4BACA,OAAO3qxB,KAAKwrxB,8BAEZb,0BAAsB/9wB,GACtB5M,KAAKwrxB,8BAAgC5+wB,GC7L7C,IAAI3K,OAASk8D,SAETsttB,GAAkC,8BAClCC,IAAyC,GAAG7pwB,OAAO4pwB,GAAiC,WACpFE,IAA+C,GAAG9pwB,OAAO6pwB,IAAwC,UACjGE,IAAwC,GAAG/pwB,OAAO4pwB,GAAiC,UACnFI,IAA8C,GAAGhqwB,OAAO4pwB,GAAiC,gBACzFK,IAAyC,GAAGjqwB,OAAO4pwB,GAAiC,WACpFM,IAA4C,GAAGlqwB,OAAO4pwB,GAAiC,cACvFO,IAA0C,GAAGnqwB,OAAO4pwB,GAAiC,YACrFQ,IAAiD,GAAGpqwB,OAAO4pwB,GAAiC,mBACjF,kBAA6CrjrB,GACxD7F,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACLzvN,KAAKksxB,mBAAqBlsxB,KAAK0/kB,iBAC/B1/kB,KAAKmsxB,YAAc,GACnBnsxB,KAAKosxB,2BAA6B,KAClCpsxB,KAAKqsxB,0BACL,IAAIC,EAA0BtsxB,KAAKszD,OAAO,0BACtCi5tB,GAAkBnxtB,QAAE,SAASxtD,SAAS89wB,KAAwC7gtB,SAASyhtB,IAC3FlxtB,QAAE,SAASxtD,SAAS+9wB,KAA8C9gtB,SAAS0htB,GAC3E,IAAIC,KAAgBntwB,MAAO,CACvBuwO,QAAQ,EACR51N,SAAU,QACV80B,SAAU56B,GAAal0B,KAAKysxB,4BAA4Bv4vB,IACzDl0B,KAAK0sxB,qCACR1sxB,KAAK2sxB,gBAAkB3sxB,KAAK24F,iBAAiB4zrB,EAAiBj5B,GAAQk5B,GACtE,IAAII,EAAiBL,EAAgB9mvB,KAAK,IAAI5jB,OAAO8pwB,MAA+C/7uB,QAChGi9uB,EAAkB7sxB,KAAKszD,OAAO,oBAC9B96C,SAAWq0wB,IACXA,EAAgBD,EAAgB5sxB,MAGxCqsxB,wBAAwBz6vB,GAIpB,GAHAA,KAAUvS,MAAO,CACbqqwB,8BAA+B1pxB,KAAK8pxB,qBAAqB7guB,KAAKjpD,OAC/D4xB,IACE5xB,KAAKosxB,2BAA4B,CAClC,IAAIU,EAAc,IAAIC,IAAwBn7vB,GAC9C5xB,KAAKosxB,2BAA6BU,EAAYjriB,QAC9C7hP,KAAKmsxB,YAAYnsxB,KAAKosxB,4BAA8BU,EAExD,IAAK9sxB,KAAKgtxB,4BAA6B,CACnC,IAAIC,EAA+BjtxB,KAAKktxB,+BACxCt7vB,EAAQ+3vB,UAAW,EACnB,IAAIwD,EAAiB,IAAIF,EAA6Br7vB,GACtD5xB,KAAKmsxB,YAAYgB,EAAetriB,SAAWsriB,GAGnDC,wBAAwBpF,GACpB,IAAIqF,GAAmB,MAASrF,OAA4C,EAASA,EAAcyB,MAAqBzpxB,KAAKstxB,kCAC7H,OAAOttxB,KAAKmsxB,YAAYkB,IAAoBrtxB,KAAKmsxB,YAAYnsxB,KAAKosxB,4BAEtEmB,mBACI,IAAIT,EAAc9sxB,KAAKmsxB,YAAYnsxB,KAAKosxB,mCACjCpsxB,KAAKmsxB,YACZnsxB,KAAKmsxB,YAAc,EACdnsxB,KAAKosxB,4BAA6BU,GAG3CQ,kCACI,OAAOjhxB,OAAO0M,KAAK/Y,KAAKmsxB,aAAarlwB,OAAO0mwB,GAAaxtxB,KAAKmsxB,YAAYqB,GAAW7D,YAAY,GAErG8D,uBACI,IAAI3zuB,EAAU,IAAI05B,MACdk6sB,EAAsB1txB,KAAKotxB,0BAC/B,OAAIM,EAAoBzD,iCAAmCjqxB,KAAK2txB,2BAA6B3txB,KAAKgtxB,4BACvFlzuB,EAAQjmB,UAAUimB,WAE7BiG,WAAW,KACP//C,KAAK2sxB,gBAAgBl4oB,OAAOvgE,KAAKp6B,EAAQjmB,SACzC7zB,KAAK4txB,aACLF,EAAoBpD,0BAEjBxwuB,EAAQA,WAEnB+suB,aAAa+D,EAAmBC,EAAa7D,GAEzC,OAD0BhnxB,KAAKotxB,0BACJvG,aAAa+D,EAAmBC,EAAa7D,GAE5EO,oBAAoBS,EAAeR,EAASh4nB,GACdxvJ,KAAKotxB,wBAAwBpF,GACnCT,oBAAoBS,EAAeR,EAASh4nB,GAEpE04nB,4BAA4BF,EAAep7pB,EAAWw7pB,EAAcH,GACtCjoxB,KAAKotxB,wBAAwBpF,GACnCE,4BAA4BF,EAAep7pB,EAAWw7pB,EAAcH,GAE5FF,sBAAsBC,EAAep7pB,EAAWq7pB,GAClBjoxB,KAAKotxB,wBAAwBpF,GACnCD,sBAAsBC,EAAep7pB,EAAWq7pB,GAExEkC,gBAAgBnC,EAAeC,GACDjoxB,KAAKotxB,wBAAwBpF,GACnCmC,gBAAgBnC,EAAeC,GAEvDM,kBAAkBP,EAAelB,EAAYrzJ,EAAS6jG,GAClD,IAAIo2D,EAAsB1txB,KAAKotxB,wBAAwBpF,GAClDv0J,GACDzznB,KAAK6txB,WAAW/G,GAEpB4G,EAAoBnF,kBAAkBP,EAAelB,EAAYrzJ,EAAS6jG,GACrEt3tB,KAAK2txB,2BAA8BD,EAAoBjD,kBAGxDiD,EAAoBpD,wBAFpBoD,EAAoBlD,2BAA2BxC,GAKvDW,iCAAiCX,EAAexc,GAClBxrwB,KAAKotxB,wBAAwBpF,GACnCW,iCAAiCX,EAAexc,GACpExrwB,KAAK8txB,gBAAgBtiB,GAEzBud,yBAAyBf,EAAexc,GACVxrwB,KAAKotxB,wBAAwBpF,GACnCe,yBAAyBf,EAAexc,GAC5DxrwB,KAAK8txB,gBAAgBtiB,GAEzBuiB,qBACIhuuB,WAAW,IAAM//C,KAAK2sxB,gBAAgBn4oB,QAE1Ckrc,iBACI,WAAKxhhB,WAGEyH,SAAS1jE,MA7HU,IA+H9B4/F,kBAAkB4tB,GACRA,GAAa,cACfzvH,KAAKguxB,sBAGbA,sBACI,IAAIhmV,EAAWhoc,KAAKksxB,mBAEpB,GADAlsxB,KAAKksxB,mBAAqBlsxB,KAAK0/kB,iBAC3B13I,IAAahoc,KAAKksxB,oBAAsBlsxB,KAAK2sxB,iBACnB3sxB,KAAKotxB,0BACPhD,yBAA0B,CAC9C,IAAIx4vB,EAAU5xB,KAAK0sxB,oCACnB1sxB,KAAK2sxB,gBAAgBr5tB,OAAO1hC,IAIxC86vB,oCACI,OAAI1sxB,KAAKksxB,mBACE,CACH34B,gBAAiB,UACjBjkmB,SAAS,EACTf,oBAAoB,GAGjB,CACHglmB,gBAAiB,SACjBjkmB,SAAS,EACTf,oBAAoB,GAIhCk+nB,4BAA4Bv4vB,GACEl0B,KAAKotxB,0BACX/C,2BAA2Bn2vB,EAAW,CACtDwyvB,oBAAqB1jwB,IACjB,IACIgvE,KAAMA,GACNhvE,EACJ,OAAOhjB,KAAKqpxB,wBAAwBr3rB,IAExC20rB,wBAAyBrsrB,IACrB,IACI19E,KAAMA,EACNgwG,UAAWA,GACXtyB,EACJ,OAAOt6F,KAAKwpxB,4BAA4B5swB,EAAMgwG,IAElDg6pB,cAAe,IAAM5mxB,KAAK+txB,uBAGlCb,+BACI,OAAOe,IAEXjB,4BACI,OAAQhtxB,KAAKszD,OAAO,qBAExBq6tB,0BACI,OAAO3txB,KAAK2sxB,gBAAgBr5tB,OAAO,UAEvCs6tB,WAAWM,IACFluxB,KAAKszD,OAAO,2BAA6B46tB,GAG9CluxB,KAAKmuxB,wBAAwB35oB,OAEjCq5oB,WAAWhklB,EAASuklB,GACZpuxB,KAAK2txB,4BAA8B3txB,KAAKszD,OAAO,2BAGnDtzD,KAAKmuxB,wBAAwB3ikB,WAAWtnH,YAAY2nrB,MAA+CuC,GACnGpuxB,KAAKmuxB,wBAAwB76tB,OAAO,kBAAmBu2I,GAClD7pM,KAAKmuxB,wBAAwB76tB,OAAO,YACrCtzD,KAAKmuxB,wBAAwB15oB,QAGrCq5oB,gBAAgBtiB,GACZ,GAAKxrwB,KAAKszD,OAAO,yBAGjB,KAAIo6tB,EAAsB1txB,KAAKotxB,0BAC3Bz8kB,KAAWv1I,MAAE,SACbm8M,GAAWn8M,QAAE,SAASxtD,SAASk+wB,KAAwCr1wB,KAAK+0vB,EAAU8f,iBACtF+C,GAAajztB,QAAE,SAASxtD,SAASm+wB,MACrC3wtB,QAAE,SAASyP,SAASwjtB,GACpB,IAAI5G,GAAWrstB,QAAE,SAASxtD,SAASo+wB,KAC/BxgB,EAAU5uvB,KACV8wwB,EAAoB3D,8BAA8BtC,EAAUjc,EAAU5uvB,KAAM4uvB,EAAUuf,kBAEtFxzgB,EAAS3pQ,SAASq+wB,KAClByB,EAAoB1D,YAAYvC,EAAUjc,EAAUuf,kBAExDp6kB,EAAS/mH,OAAO2tL,EAAU82gB,EAAY5G,GACtCznxB,KAAK6txB,WAAWl9kB,GAAU,IAE9Bw9kB,wBACI,IAAKnuxB,KAAKsuxB,mBAAoB,CAC1B,IAAI5/H,GAAStzlB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACtCn7D,KAAKsuxB,mBAAqBtuxB,KAAK24F,iBAAiB+1jB,EAAQvub,GAAO,CAC3DjsM,UAAWl0B,KAAKm7D,WAChByE,MAAO,OACPE,OAAQ,OACR2vF,WAAW,EACXtB,aAAa,EACbmB,SAAS,EACTvgF,SAAS,EACTw/E,oBAAoB,EACpBtnF,UAAW,CACPoN,SAAU,GAEdr6C,SAAU,CACNqxC,GAAI,YACJ56C,GAAI,YACJrU,GAAIpc,KAAKszD,OAAO,kBAChB6W,OAAQ,UAEZ+qL,sBAAuB02hB,MAG/B,OAAO5rxB,KAAKsuxB,mBAEhBxE,qBAAqBtvvB,EAAS/R,GAC1BzoB,KAAKqwN,SAASk+jB,iBAAiB,CAC3B/zvB,QAASA,EACT/R,OAAQA,IAGhB4gwB,wBAAwBr3rB,GACpBhyF,KAAKqwN,SAASq2jB,oBAAoB,CAC9B10rB,KAAMA,IAGdw3rB,4BAA4B5swB,EAAMrK,GAC9BvS,KAAKqwN,SAASs2jB,wBAAwB,CAClC/pwB,KAAMA,EACNgwG,UAAWr6G,IAGnBk9M,eACIzvN,KAAKqwN,SAAW,CACZk+jB,iBAAkBvuxB,KAAKo2F,sBAAsB,oBAC7CswrB,oBAAqB1mxB,KAAKo2F,sBAAsB,uBAChDuwrB,wBAAyB3mxB,KAAKo2F,sBAAsB,4BAG5D7B,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCi6rB,uBAAwB,KACxBxgoB,gBAAiB,KACjBugoB,iBAAkB,KAClB7H,oBAAqB,KACrBC,wBAAyB,KACzB8H,mBAAmB,EACnBC,uBAAuB,IAG/Bn4rB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,6BACA,kBACD,UACC,oBACDrD,KAAKqsxB,0BACLrsxB,KAAKotxB,0BAA0B5C,6BAC1B7xwB,EAAK/L,QACN5M,KAAK+txB,qBACL/txB,KAAKutxB,oBAETvtxB,KAAK2sxB,gBAAgBt+qB,UACrB,UACC,wBACI11F,EAAK/L,OACN5M,KAAK4txB,YAAW,GAEpB,UACC,uBACA,0BACA,0BACD5txB,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,KCnNrC,SA/GA,kBAAoCyvF,GAChC7F,cACI,IAAIosrB,EACJ7uxB,MAAMyiG,cACNviG,KAAK4uxB,wBACL,IAAIh9vB,EAAU5xB,KAAK6uxB,oBACfngI,KAAStzlB,MAAE,SAASyP,SAAS7qE,KAAKm7D,YAClCy1hB,EAAe,CACfnhc,WAAW,EACXhe,MAAO7/G,EAAQ6/G,MACf1iE,SAAS,EACTw/E,oBAAoB,EACpBP,gBAAiBhuJ,KAAK8uxB,uBAAuB7luB,KAAKjpD,MAClD0vJ,aAAc,CAAC,CACXl3D,OAAQ,WACRy3D,QAAS,SACTh9I,SAAU,QACV2e,QAAS,CACLnb,KAAMmb,EAAQm9vB,WACdjruB,QAAS9jD,KAAKgvxB,oBAAoB/luB,KAAKjpD,QAE5C,CACCw4F,OAAQ,WACRy3D,QAAS,SACTh9I,SAAU,QACV2e,QAAS,CACLnb,KAAMupG,UAA2B,oCACjCl8D,QAAS9jD,KAAKivxB,aAAahmuB,KAAKjpD,SAGxCw0F,cAAexxE,IACX,IACIxU,UAAWA,GACXwU,EACJxU,EAAU8/F,mBAAmB,QAAStuG,KAAKgvxB,oBAAoB/luB,KAAKjpD,QAExE6uJ,SAAU7uJ,KAAKkvxB,eAAejmuB,KAAKjpD,MACnCkvJ,QAASlvJ,KAAKmvxB,cAAclmuB,KAAKjpD,MACjCk1P,sBAAuB,GAAGrzO,OAvCN,8BAuCwC,KAAKA,OAAO,QAAU8swB,EAAwB/8vB,EAAQw9vB,qBAAkB,IAAWT,EAAwBA,EAAwB,QAE/LjxwB,OAAUkU,EAAQkuC,UAClB8whB,EAAa9whB,OAASluC,EAAQkuC,SAE9BpiD,SAAUkU,EAAQ68H,aAClBmic,EAAanic,UAAY78H,EAAQ68H,WAErCzuJ,KAAKmxO,OAASnxO,KAAK24F,iBAAiB+1jB,EAAQvub,GAAOywX,GAEvDn8c,OACIz0I,KAAKqvxB,cAAgB,KACrBrvxB,KAAKmxO,OAAO18F,OAEhBo6oB,oBACI,MAAO,CACHp9oB,MAAO,QACPs9oB,WAAY,aACZO,gBAAiB,GACjBF,cAAe,IAGvBN,uBAAuBtnxB,GACnBxH,KAAKuvxB,kBAAmBn0tB,QAAE,SAASyP,SAASrjE,GAASoG,SA/D3B,yBAgE1B,IAAIg3F,EAAW5kG,KAAK6uxB,oBAAoBS,gBACpC1qrB,GACA5kG,KAAKuvxB,iBAAiB3hxB,SAASg3F,GAGvC4qrB,mBACI,OAAO,KAEXR,sBACI,IAAIt8wB,EAAS1S,KAAKwvxB,mBACd98wB,IACA1S,KAAKqvxB,cAAgB38wB,EACrB1S,KAAKivxB,gBAGbA,eACIjvxB,KAAKmxO,OAAO38F,OAEhB06oB,iBACIlvxB,KAAKyvxB,gBAAgB,CACjBC,aAAc1vxB,KAAKqvxB,gBAG3BF,iBACAP,wBACI5uxB,KAAKyvxB,gBAAkBzvxB,KAAKo2F,sBAAsB,YAEtDu5rB,UAAUC,GACN5vxB,KAAKmxO,OAAO79K,OAAO,QAASs8tB,GAEhCC,uBAAuBj+vB,GACnB5xB,KAAKmxO,OAAO79K,OAAO,0BAA2B1hC,GAElD2iE,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCo7J,SAAU,OAGlBp5J,eAAe59E,GAGF,aAFEA,EAAKtV,KAGRrD,KAAK8vxB,6BAGLhwxB,MAAMy2F,eAAe59E,KCzDrCo3wB,IAtDA,kBAA0CC,GACtCv7oB,KAAKpxI,GACDA,EAAOA,GAAQ,GACXrD,KAAKiwxB,aACLjwxB,KAAKiwxB,aAAa38tB,OAAO,QAASjwD,GAElCrD,KAAKkwxB,kBAAoB7sxB,EAE7BvD,MAAM20I,OAEV06oB,gBACI,GAAKnvxB,KAAKiwxB,aAGV,KAAIE,EAAgBnwxB,KAAKiwxB,aAAanyiB,SACtCqyiB,EAAc1rxB,QAAU0rxB,EAAc,GAAG15qB,SACzCz2G,KAAKiwxB,aAAa5zrB,SAEtBwyrB,oBACI,OAAOxvwB,QAAOvf,MAAM+uxB,oBAAqB,CACrCp9oB,MAAOzxI,KAAKszD,OAAO,SACnBy7tB,WAAY/uxB,KAAKszD,OAAO,cACxBg8tB,gBAxB0B,oCAyB1BF,cAxBgC,4CA2BxCN,uBAAuBtnxB,GACnB1H,MAAMgvxB,uBAAuBtnxB,GAC7BxH,KAAKiwxB,aAAejwxB,KAAK24F,kBAAiBv9B,QAAE,SAAU2yL,GAAS,CAC3DnhP,MAAO5M,KAAKkwxB,kBACZjqnB,WAAY,IAAMjmK,KAAKowxB,0BAA4BpwxB,KAAKgvxB,sBACxD7onB,UAAWnwJ,GAAKhW,KAAKqwxB,uBAAuBr6wB,KAEhDhW,KAAKuvxB,iBAAiB3lsB,OAAO5pF,KAAKiwxB,aAAa90tB,YAEnDk1tB,uBAAuBrtwB,GACnB,IACIlY,MAAOA,GACPkY,EACJhjB,KAAKowxB,yBAA2B,QAAcp+sB,MAElDw9sB,mBACI,IAAIc,EAAYtwxB,KAAKiwxB,aAAa38tB,OAAO,SACzC,OAAOg9tB,EAAY,CACfjtxB,KAAMitxB,GACN,KAER/7rB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCk9C,MAAO,GACPs9oB,WAAY,OCuDxBwB,IArGA,kBAA6CP,GACzCv7oB,OACI,IAAIuhoB,EACJh2wB,KAAKwwxB,oBAAoB,MACzB,QAAUxa,EAAuBh2wB,KAAKu1wB,sBAAmB,OAA2CS,EAAqB59pB,UACzHt4G,MAAM20I,OAEVg8oB,mBAAmBhiB,GACfzuwB,KAAK0wxB,iBAAmBjiB,EACxBzuwB,KAAK2vxB,UAAU3vqB,UAA2B,kDAC1ChgH,KAAK6vxB,uBAAuB,CACxBp5wB,KAAMupG,UAA2B,sDACjC53F,UAAU,IAGlBuowB,mBAAmBliB,GACfzuwB,KAAK0wxB,iBAAmBjiB,EACxBzuwB,KAAK2vxB,UAAU3vqB,UAA2B,kDAC1ChgH,KAAK6vxB,uBAAuB,CACxBp5wB,KAAMupG,UAA2B,sDACjC53F,UAAU,IAGlBymwB,oBACI,OAAOxvwB,QAAOvf,MAAM+uxB,oBAAqB,CACrCS,gBA3B6B,uCA4B7BF,cA3BmC,+CA8B3CN,uBAAuBtnxB,GACnB1H,MAAMgvxB,uBAAuBtnxB,GAC7BxH,KAAKu1wB,eAAiBv1wB,KAAK24F,kBAAiBv9B,QAAE,SAAUw1tB,IAA0B,CAC9EtmB,eAAgBtqwB,KAAKszD,OAAO,kBAC5B21sB,oBAAqB,IAAMjpwB,KAAK6wxB,8BAChC7b,iBAAkBh/vB,GAAKhW,KAAK8wxB,+BAA+B96wB,GAC3Do/vB,4BAA6B,IAAMp1wB,KAAK+wxB,qCAAoC,KAEhF/wxB,KAAKuvxB,iBAAiB3lsB,OAAO5pF,KAAKu1wB,eAAep6sB,YAErDq0tB,mBACI,IAAI98wB,EAAS1S,KAAK6wxB,8BAClB,OAAOn+wB,GAAS,CACZs+wB,OAAQt+wB,GAGhB6hF,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC2wgB,SAAU,OAGlB2rL,8BACI,OAAO7wxB,KAAKixxB,uBAEhBH,+BAA+B9twB,GAC3B,IACIshG,SAAUA,GACVthG,EACJhjB,KAAKwwxB,oBAAoBlsqB,GACzBtkH,KAAKu1wB,eAAeiB,yBAExBga,oBAAoBtiB,GAChBluwB,KAAKixxB,uBAAyB/iB,EAC9BluwB,KAAK6vxB,uBAAuB,CACxBznwB,UAAW8lvB,IAGnBihB,gBACInvxB,KAAK+wxB,qCAAoC,GACzCjxxB,MAAMqvxB,gBAEVD,iBACIlvxB,KAAK+wxB,qCAAoC,GACzCjxxB,MAAMovxB,iBAEV6B,oCAAoCjswB,GAChC,GAAK9kB,KAAKu1wB,eAGV,KAAIpgK,EAAYn1mB,KAAKkxxB,uBAAuBpswB,GAC5C9kB,KAAKu1wB,eAAemB,sCAAsCvhK,EAAUg8K,kBAAkB,GAAIrswB,GAAY3gB,KAAK,IAAMnE,KAAKu1wB,eAAeqB,iCAAiCzhK,EAAUi8K,qBAAsBtswB,GAAY3gB,KAAK,IAAMgxmB,EAAUk8K,sBAAsBrrxB,QAAQmM,GAAOnS,KAAKu1wB,eAAej3Q,wBAAwBnsf,EAAK2S,OAEjUoswB,uBAAuBpswB,GACnB,IAAIwswB,EAAkB,GAClBC,EAAoB,GACxBvxxB,KAAK0wxB,iBAAiB1qxB,QAAQivmB,IACtBA,EAAS6oJ,kBACTwzB,EAAgBr8K,EAAS6oJ,gBAAgBiN,kBAAoB91J,EAAS6oJ,iBAEtE7oJ,EAAS0pJ,SAASrC,cAClBi1B,EAAkBt8K,EAAS81J,kBAAoB91J,KAGvD,IAAIu8K,EAAY31B,IAAiBy1B,GAC7BG,EAAc51B,IAAiB01B,GACnC,MAAO,CACHJ,kBAAmBrswB,EAAa0swB,EAAUr4wB,OAAS,GACnDi4wB,oBAAqBtswB,EAAa2swB,EAAYt4wB,OAAS,GACvDk4wB,sBAAuBG,EAAUz4wB,KAAK8I,UAAU4vwB,EAAY14wB,SChExE24wB,IApCA,kBAA0C1B,GACtCv7oB,KAAKzxH,GACD,IACI85lB,SAAUA,EACV//e,UAAWA,GACX/5G,EACAvM,EAAO,IAAMsmH,EAAY/c,UAA2B,uDAAwD88f,GAAY98f,UAA2B,0DAA2D+c,GAC9M/8H,KAAK2xxB,OACL3xxB,KAAK2xxB,OAAOl7wB,KAAKA,GAEjBzW,KAAK4xxB,aAAen7wB,EAExB3W,MAAM20I,OAEVo6oB,oBACI,OAAOxvwB,QAAOvf,MAAM+uxB,oBAAqB,CACrCp9oB,MAAOzxB,UAA2B,uCAClC+uqB,WAAY/uqB,UAA2B,4CACvCsvqB,gBApB0B,oCAqB1BF,cApBgC,0CAqBhCtvtB,OAAQ,OACR2uF,UAAW,SAGnBqgoB,uBAAuBtnxB,GACnB1H,MAAMgvxB,uBAAuBtnxB,GAC7BxH,KAAK2xxB,QAASv2tB,QAAE,SAAS3kD,KAAKzW,KAAK4xxB,cAAc/mtB,SAAS7qE,KAAKuvxB,kBAC/DvvxB,KAAK24F,iBAAiB34F,KAAKuvxB,iBAAkBr3gB,GAAY,CACrDt4M,MAAO,OACPE,OAAQ,SAGhB0vtB,mBACI,MAAO,KC6SfqC,IAhUA,kBAAsCzprB,GAClC7F,cACIviG,KAAKyvN,eACLzvN,KAAKm7D,WAAWvtD,SALe,+BAM/B5N,KAAK8xxB,eAAiB,GACtB9xxB,KAAK+xxB,8BACL/xxB,KAAKgyxB,6BACLhyxB,KAAKiyxB,gCAA+B,GACpCnyxB,MAAMyiG,cAEVwvrB,8BACI,IAAI75D,EAAYl4tB,KAAKkyxB,iBAAiBh6D,UAClCi6D,GAAgB/2tB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACzCyrqB,EAAe5muB,KAAK24F,iBAAiBw5rB,EAAe5nD,GAAc,CAClElnuB,KAAM,OACN8tI,UAAU,EACVqnlB,cAAc,EACd9vnB,oBAAoB,EACpBG,mBAAmB,EACnBD,mBAAmB,EACnBurZ,UAAW,GACXwkO,qBAAsB,GACtBN,OAAQ,IACRH,UAAWA,EACXQ,SAAU14tB,KAAKszD,OAAO,YACtBohG,eAAgB1+I,GAAKhW,KAAKoyxB,4BAA4Bp8wB,GACtDujtB,WAAYvjtB,GAAKhW,KAAKqyxB,wBAAwBr8wB,GAC9CqjtB,WAAYrjtB,GAAKhW,KAAKsyxB,wBAAwBt8wB,GAC9CsjtB,gBAAiBtjtB,GAAKhW,KAAKuyxB,gCAAgCv8wB,GAC3DyjtB,gBAAiBzjtB,GAAKhW,KAAKwyxB,6BAA6Bx8wB,GACxDwjtB,cAAexjtB,GAAKhW,KAAKyyxB,2BAA2Bz8wB,GACpD0jtB,gBAAiB,IAAM15tB,KAAKiyxB,gCAA+B,GAC3Dt4D,gBAAiB,IAAM35tB,KAAKiyxB,gCAA+B,KAE/DrrD,EAAatzqB,OAAO,CAChB8mqB,YAAa,CAACt4Y,EAAMo+Y,IAAelguB,KAAK0yxB,yBAAyB9rD,EAAc9kZ,EAAMo+Y,GACrF7F,YAAa,CAACv4Y,EAAMo+Y,IAAelguB,KAAK2yxB,yBAAyB/rD,EAAc9kZ,EAAMo+Y,KAEzF0G,EAAagsD,0BAA4BhsD,EAAazD,sBACtDyD,EAAazD,sBAAwBnttB,GAAKhW,KAAKmjuB,sBAAsBnttB,EAAG4wtB,GAIxE5muB,KAAK8xxB,eAAezoxB,KAHD,CACfu9tB,aAAcA,IAItBisD,YACI,IAAI7gsB,EAAOhyF,KAAK8yxB,sCACZ9gsB,GACAA,EAAK40oB,aAAa5E,4BAG1B+wD,aAAaC,GACThzxB,KAAKizxB,cAAcD,GAEvBE,iBAAiBF,EAAWG,GACxBnzxB,KAAKizxB,cAAcD,EAAWG,GAElCF,cAAcD,EAAWG,GACrB,IACIvsD,aAAcA,GACd5muB,KAAKozxB,6BAA6BJ,GACtCpsD,EAAavM,YAAY84D,GAE7BT,yBAAyB9rD,EAAc9kZ,EAAMuoZ,GACzC,IACIgpD,QAASA,EACTF,UAAWA,GACXnzxB,KAAKszxB,mBAAmB1sD,EAAc9kZ,GACtCw5L,EAAa+3Q,EAAQ/3Q,WACzB+uN,SAAW8oD,UAAYA,EAChB73Q,EAAW+iP,gBAAgBv8a,EAAMuoZ,GAE5CsoD,yBAAyB/rD,EAAc9kZ,EAAMuoZ,GACzC,IACIgpD,QAASA,EACTF,UAAWA,GACXnzxB,KAAKszxB,mBAAmB1sD,EAAc9kZ,GACtCw5L,EAAa+3Q,EAAQ/3Q,WACzB+uN,SAAW8oD,UAAYA,EAChB73Q,EAAWgjP,gBAAgBx8a,EAAMuoZ,GAE5C+nD,4BAA4BpvwB,GACxB,IACIxU,UAAWA,EACX5B,MAAOA,GACPoW,EACJ,GAAI,IAAMpW,EAAMnI,OAGhB,KAAI03tB,EAAQvvtB,EAAMtF,QACdisxB,EAAevzxB,KAAKwzxB,kBAAkBhlxB,GAC1CxO,KAAKq8tB,aAAak3D,EAAcp3D,GAChCp8qB,WAAW,KACF//C,KAAK8yxB,uCACN9yxB,KAAK+xxB,iCAIjBM,wBAAwB/3rB,GACpB,IACI9rF,UAAWA,EACXszU,KAAMA,EACNmiZ,YAAaA,EACbC,WAAYA,GACZ5poB,GAEA+4rB,QAASA,EACTF,UAAWA,GACXnzxB,KAAKszxB,mBAAmB9kxB,EAAWszU,GACnC2xc,EAAY,MAAmBxvD,EAAcC,EAAa,EAC1DwvD,EAAcllxB,EAAU8kD,OAAO,YAAc,IAOjDtzD,KAAK2zxB,qBANM,CACPX,UAAWK,EAAQxnxB,GACnBsnxB,UAAWA,EACXO,YAAaA,EACbD,UAAWA,IAInBlB,gCAAgCphtB,GAC5B,IACI3iE,UAAWA,GACX2iE,GAEAkitB,QAASA,GACTrzxB,KAAKszxB,mBAAmB9kxB,EAAWA,EAAUmutB,OAAO,GAAG/vtB,OAC3D5M,KAAK4zxB,qBAAqB,CACtBZ,UAAWK,EAAQxnxB,GACnB6nxB,YAAallxB,EAAU8kD,OAAO,YAAc,MAGpDg/tB,wBAAwBhgtB,GACpB,IACI9jE,UAAWA,EACXszU,KAAMA,GACNxvQ,EACWtyE,KAAK6zxB,oBAAoBrlxB,EAAWszU,GAC1CjuT,UAEb2+vB,6BAA6B9/sB,GACzB,IACIlkE,UAAWA,EACXszU,KAAMA,GACNpvQ,EACW1yE,KAAK6zxB,oBAAoBrlxB,EAAWszU,GAC1CjuT,QAAQ,CACbi2e,UAAU,IAGlB2oR,2BAA2B7/sB,GACvB,IACIpkE,UAAWA,EACXszU,KAAMA,EACNlhU,MAAOA,GACPgyD,EACW5yE,KAAK6zxB,oBAAoBrlxB,EAAWszU,GAC1CjoS,OAAOj5B,GAEpBoxwB,6BACIhyxB,KAAK8zxB,yBAAwB14tB,MAAE,SAASxtD,SAhKW,oDAgKoDi9D,SAAS7qE,KAAKszD,OAAO,iCAEhIyguB,6BACI,IAAIC,EAAkBh0xB,KAAKszD,OAAO,YAClC,IAAK4K,YAAe,IAAM81tB,EAAgBvvxB,OAG1C,KAAIwvxB,EAA4B/3tB,WAAWl8D,KAAK8zxB,sBAAsB/3tB,IAAI,mBACtEm4tB,EAA6Bh4tB,WAAWl8D,KAAK8zxB,sBAAsB/3tB,IAAI,oBACvEwloB,EAAwBvhsB,KAAKszD,OAAO,gCACpC6guB,EAA6Bj4tB,WAAWqloB,EAAsBxloB,IAAI,sBAClEq4tB,EAA2Bl4tB,WAAWqloB,EAAsBxloB,IAAI,oBAChEysK,KAAkBve,OAAes3e,GACjCzzD,EAAkByzD,EAAsBp3nB,SACxCkqtB,EAAiBL,EAAgB7ptB,SACrCnqE,KAAK8zxB,sBAAsB/3tB,IAAI,CAC3BR,IAAK84tB,EAAe94tB,IAAMuykB,EAAgBvykB,IAAMitK,EAAkB2rjB,EAClE74tB,KAAM+4tB,EAAe/4tB,KAAOwykB,EAAgBxykB,KAAO84tB,OAEvD9gpB,OAAUtzI,KAAK8zxB,sBAAuBE,EAAgBhwxB,IAAI,GAAGolO,aAAe,EAAI6qjB,MAChFlljB,OAAS/uO,KAAK8zxB,sBAAuBE,EAAgBhwxB,IAAI,GAAG8mE,YAAc,EAAIoptB,IAElFjC,+BAA+BljtB,GACvBA,GACA/uE,KAAK+zxB,6BACL/zxB,KAAK8zxB,sBAAsB/3tB,IAAI,UAAW,KAE1C/7D,KAAK8zxB,sBAAsB/3tB,IAAI,UAAW,QAGlDonqB,sBAAsBnttB,EAAGs+wB,GACrB,OAAOA,EAAiBtxD,mBAAmBhttB,EAAGhW,KAAKszD,OAAO,qBAAuBghuB,EAAiB1B,0BAA0B58wB,GAAG,GAEnIqmtB,aAAak3D,EAAcp3D,GACvBn8tB,KAAKiyxB,gCAA+B,GACpC,IAAIe,GAAa,IAAIvsqB,MAAMjvG,WACvB8jgB,EAAat7gB,KAAKkyxB,iBAClB7hhB,EAAY8rd,EAAMz7sB,IAAI,IAAM,IAAI8yD,OAapC,OANA+/sB,EAAaF,QANC,CACVxnxB,GAAImnxB,EACJ13Q,WAAYA,EACZ6gN,MAAOA,EACP9rd,UAAWA,GAQfrwQ,KAAKu0xB,2BALa,CACdvB,UAAWA,EACX3ihB,UAAWA,EACX8rd,MAAOA,IAGJ++B,GAAS7qf,GAAWv8L,OAAO,IAAM/zB,WAAW,KAC/CwzuB,EAAa3sD,aAAatzsB,QAC1BigwB,EAAaF,QAAU,QAG/BQ,oBAAoBjtD,EAAc9kZ,GAC9B,IACIuxc,QAASA,EACTF,UAAWA,GACXnzxB,KAAKszxB,mBAAmB1sD,EAAc9kZ,GAC1C,OAAOuxc,EAAQhjhB,UAAU8ihB,GAE7BG,mBAAmB1sD,EAAc9kZ,GAC7B,IACIuxc,EADerzxB,KAAKwzxB,kBAAkB5sD,GACfysD,QACvBF,EAAYE,EAAQl3D,MAAM3ptB,QAAQsvU,GACtC,MAAO,CACHuxc,QAASA,EACTF,UAAWA,GAGnBC,6BAA6BJ,GACzB,QAASxuxB,EAAI,EAAGA,EAAIxE,KAAK8xxB,eAAertxB,OAAQD,IAAK,CACjD,IAAI+uxB,EAAevzxB,KAAK8xxB,eAAettxB,GACnC6uxB,EAAUE,EAAaF,QAC3B,GAAIA,GAAWA,EAAQxnxB,KAAOmnxB,EAC1B,OAAOO,EAGf,OAAO,KAEXT,sCAGI,QAFI0B,EACAxisB,EAAO,KACFxtF,EAAI,EAAGA,EAAIxE,KAAK8xxB,eAAertxB,OAAQD,IAAK,CACjD,IAAIiwxB,EAAcz0xB,KAAK8xxB,eAAettxB,GACtCiwxB,EAAY7tD,aAAatzqB,OAAO,WAAY,KACvC0+B,IAASyisB,EAAYpB,UACtBrhsB,EAAOyisB,GAGf,eAAUD,EAAQxisB,SAAS,IAAWwisB,GAAiBA,EAAM5tD,aAAatzqB,OAAO,WAAYtzD,KAAKszD,OAAO,aAClG0+B,EAEXwhsB,kBAAkB5sD,GACd,QAASpiuB,EAAI,EAAGA,EAAIxE,KAAK8xxB,eAAertxB,OAAQD,IAAK,CACjD,IAAIwtF,EAAOhyF,KAAK8xxB,eAAettxB,GAC/B,GAAIwtF,EAAK40oB,eAAiBA,EACtB,OAAO50oB,EAGf,OAAO,KAEXkgsB,iBAEI,OADuBlyxB,KAAKszD,OAAO,gBAC5BohuB,GAEXH,2BAA2BxnB,GACvB/swB,KAAKqwN,SAASskkB,uBAAuB,CACjC5nB,YAAaA,IAGrB4mB,qBAAqBh7wB,GACjB3Y,KAAKqwN,SAASukkB,iBAAiBj8wB,GAEnCi7wB,qBAAqBj7wB,GACjB3Y,KAAKqwN,SAASwkkB,iBAAiBl8wB,GAEnC82M,eACIzvN,KAAKqwN,SAAW,CACZskkB,uBAAwB30xB,KAAKo2F,sBAAsB,0BACnDw+rB,iBAAkB50xB,KAAKo2F,sBAAsB,oBAC7Cy+rB,iBAAkB70xB,KAAKo2F,sBAAsB,qBAGrD7B,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC45a,cAAe,KACfwmR,uBAAwB,KACxBC,iBAAkB,KAClBC,iBAAkB,KAClBC,gBAAiB,OAGzBv+rB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,gBACDrD,KAAKquG,UACL,UACC,6BACA,uBACA,mBACDruG,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,UACC,WACDrD,KAAK8yxB,sCACL9yxB,KAAK+zxB,6BACL,UACC,+BACD/zxB,KAAK8zxB,sBAAsBtrvB,SAC3BxoC,KAAK8zxB,sBAAsBjptB,SAASlyD,EAAK/L,OACzC,UACC,kBACD,cAEA9M,MAAMy2F,eAAe59E,MCoKrC,UACI9Y,YAAYk1xB,EAAgBtqB,EAAW1I,GACnC/hwB,KAAKg1xB,gBAAkBD,EACvB/0xB,KAAKi1xB,WAAaxqB,EAClBzqwB,KAAKk1xB,YAAcl1xB,KAAKg1xB,gBAAgBG,iBAAmBn1xB,KAAKi1xB,WAAWz5vB,MAAMw2D,IAASA,EAAK2sqB,SAASrC,aACxGt8vB,KAAKu1G,OAASv1G,KAAKi1xB,WAAWv0wB,IAAIu0lB,GAAYA,EAAS0pJ,UACvD3+vB,KAAKo1xB,eAAiBp1xB,KAAKu1G,OAAO9wG,OAAS,EAC3CzE,KAAK8kQ,UAAYi9f,EAAcqO,iBAC/BpwwB,KAAKq1xB,gBAAiB,EACtBr1xB,KAAKs1xB,gBAAkB,GACvBt1xB,KAAKu1xB,gBAAkB,EACvBv1xB,KAAKw1xB,YAAc,CACfC,YAAa,GAEjBz1xB,KAAK01xB,aAAe,GAExB3N,sBAAsBn7pB,GACd5sH,KAAKq1xB,eACLr1xB,KAAKs1xB,gBAAkB,IAAIt1xB,KAAKu1G,QAGhCv1G,KAAKs1xB,gBAAgBjsxB,KADVrJ,KAAKu1G,OAAOqX,IAGtB5sH,KAAKg1xB,gBAAgBW,oBACtB31xB,KAAKu1xB,gBAAkBv1xB,KAAKs1xB,gBAAgB7wxB,OAASzE,KAAKu1G,OAAO9wG,OAAS,KAGlFmxxB,0BAA0BlgK,GACtB11nB,KAAKw1xB,YAAYC,YAAc,EAC/Bz1xB,KAAKw1xB,YAAYlK,gBAAkBtrxB,KAAKo1xB,eAAiBp1xB,KAAKg1xB,gBAAgBa,mBAAqB71xB,KAAKg1xB,gBAAgBc,uBACxH,IAAIlpqB,EAAY5sH,KAAKo1xB,gBAAiB,EAAK,EACvCngL,EAAWj1mB,KAAK+1xB,+BACpB/1xB,KAAKg2xB,uBAAuBppqB,EAAWqof,EAAUygB,GAErDugK,4BAA4BrpqB,EAAW8ogB,GACnC11nB,KAAKw1xB,YAAYC,cACjBz1xB,KAAKw1xB,YAAYlK,gBAAkBtrxB,KAAKw1xB,YAAYC,YAAc,KAAIt1rB,OAAOngG,KAAKg1xB,gBAAgBkB,0BAA2Bl2xB,KAAKw1xB,YAAYC,aAAez1xB,KAAKg1xB,gBAAgBc,uBAClL,IAAI7gL,EAAWj1mB,KAAKm2xB,+BAA+BvpqB,GACnD5sH,KAAKg2xB,uBAAuBppqB,EAAWqof,EAAUygB,GAErD0gK,mBACI,OAAOp2xB,KAAKq2xB,sBAAwBr2xB,KAAKq1xB,iBAAmBr1xB,KAAK4kwB,SAAW5kwB,KAAKo1xB,eAErFW,+BACI,OAAO/1xB,KAAKo1xB,eAAiB,KAAOp1xB,KAAKi1xB,WAAW,GAExDkB,+BAA+BvpqB,GAC3B,OAAO5sH,KAAKi1xB,WAAWroqB,GAE3B0pqB,YAAY7swB,EAAWmjG,GACnB,IAAIqof,EAAWj1mB,KAAKguwB,cAAgBhuwB,KAAK+1xB,+BAAiC/1xB,KAAKm2xB,+BAA+BvpqB,GAC1Gl6G,EAAS,MAASuimB,OAAkC,EAASA,EAAS0pJ,SAASt7vB,KACnF,OAAIrD,KAAKqswB,aAAerswB,KAAKu2xB,uBAAuB9swB,KAChD/W,EAAS1S,KAAKqswB,aAEX35vB,EAEX6jxB,uBAAuB9swB,GACnB,OAAOA,IAAcy4uB,oBAA6Bz4uB,IAAcy4uB,cAEpE8zB,uBAAuBppqB,EAAWqof,EAAUygB,GACxC11nB,KAAKw1xB,YAAYgB,mBAAqB,CAClC5pqB,UAAWA,EACXqof,SAAUA,EACVygB,UAAWA,GAGnB2gK,qBACI,OAAOr2xB,KAAKs1xB,gBAAgB7wxB,OAAS,EAErCswxB,qBACA,OAAO/0xB,KAAKg1xB,gBAEZvqB,gBACA,OAAOzqwB,KAAKi1xB,WAEZ5oB,kBACA,OAAOrswB,KAAK01xB,aAEZrpB,gBAAYz/vB,GACZ5M,KAAK01xB,aAAe9oxB,EAEpB6pxB,iBACA,OAAOz2xB,KAAKw1xB,YAEZxnB,oBACA,OAAOhuwB,KAAKq1xB,eAEZrnB,kBAAcphwB,GACd5M,KAAKq1xB,eAAiBzoxB,EAEtB8pxB,oBACA,OAAO12xB,KAAKo1xB,eAEZrrB,gBACA,OAAO/pwB,KAAKk1xB,WAEZtK,wBACA,OAAO5qxB,KAAKo1xB,gBAAiBj1rB,SAAOngG,KAAKg1xB,gBAAgB2B,+BAAgC32xB,KAAKu1G,OAAO9wG,OAAQzE,KAAK8kQ,YAAa3kK,SAAOngG,KAAKg1xB,gBAAgB4B,4BAA6B52xB,KAAK8kQ,WAE7L+xhB,qBACA,OAAI72xB,KAAKq2xB,qBACEr2xB,KAAKo1xB,gBAAiBj1rB,SAAOngG,KAAKg1xB,gBAAgB8B,4BAA6B92xB,KAAKs1xB,gBAAgB7wxB,OAAQzE,KAAK8kQ,cAAa3kK,OAAOngG,KAAKg1xB,gBAAgB+B,yBAA0B/2xB,KAAK8kQ,WAEzL9kQ,KAAKo1xB,kBAAiBj1rB,OAAOngG,KAAKg1xB,gBAAgBkB,0BAA2Bl2xB,KAAKu1G,OAAO9wG,QAAUzE,KAAKg1xB,gBAAgBc,uBAGnIkB,wBACA,OAAOh3xB,KAAK4kwB,QAAU5kwB,KAAK62xB,eAAiB72xB,KAAKy2xB,WAAWnL,gBAE5Dh0D,iBACA,OAAOt3tB,KAAK4kwB,UAAY5kwB,KAAKq2xB,qBAAuBr2xB,KAAKg1xB,gBAAgBiC,qBAAkB,EAE3FhP,qBACA,OAAOjoxB,KAAKu1xB,gBAEZ3wB,cACA,OAAQ5kwB,KAAKw1xB,YAAYC,aAGjC,UAvlBA,kBAAwCrtrB,GACpC7F,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACLzvN,KAAK09nB,YAAc19nB,KAAKszD,OAAO,cAC/BtzD,KAAK09nB,YAAY9zkB,GAAG,qBAAsB5pD,KAAKk3xB,sBAAsBjuuB,KAAKjpD,OAC1EA,KAAK09nB,YAAY9zkB,GAAG,2BAA4B5pD,KAAKm3xB,4BAA4BluuB,KAAKjpD,OACtFA,KAAK09nB,YAAY9zkB,GAAG,sBAAuB5pD,KAAKo3xB,uBAAuBnuuB,KAAKjpD,OAC5EA,KAAK09nB,YAAY9zkB,GAAG,kBAAmB5pD,KAAKq3xB,mBAAmBpuuB,KAAKjpD,OACpEA,KAAK09nB,YAAY9zkB,GAAG,yBAA0B5pD,KAAKs3xB,0BAA0BruuB,KAAKjpD,OAClFA,KAAK09nB,YAAY9zkB,GAAG,qBAAsB5pD,KAAKu3xB,sBAAsBtuuB,KAAKjpD,OAC1EA,KAAK+ppB,OAAS/ppB,KAAKszD,OAAO,SAC1BtzD,KAAKw3xB,wBAA0B,GAC/Bx3xB,KAAKy3xB,eAAiB,IC7B9B,UACI53xB,YAAYs7D,EAAUvpC,GAClB5xB,KAAKwiF,UAAYrnB,EACjBn7D,KAAK2vF,SAAW/9D,EAChB,IAAI8lwB,EAAoB,CACpB/niB,SAAU3vP,KAAK2vF,SAASgosB,eACxBlztB,WAAYzkE,KAAK2vF,SAASlrB,YAE1BmztB,GAAsBx8tB,QAAE,SAASyP,SAAS7qE,KAAKwiF,WACnDxiF,KAAK63xB,uBAAyB,IAAIC,IAA+BF,GAAqBv4wB,QAAOq4wB,EAAmB13xB,KAAK2vF,SAASoosB,wBAC9H,IAAIC,GAAgB58tB,QAAE,SAASyP,SAAS7qE,KAAKwiF,WAC7CxiF,KAAKi4xB,kBAAoB,IAAIC,IAA4BF,GAAe34wB,QAAOq4wB,EAAmB,CAC9FjmpB,MAAOzxB,UAA2B,uCAClC+uqB,WAAY/uqB,UAA2B,+CAE3C,IAAIm4qB,GAAgB/8tB,QAAE,SAASyP,SAAS7qE,KAAKwiF,WAC7CxiF,KAAKo4xB,kBAAoB,IAAIF,IAA4BC,GAAe94wB,QAAOq4wB,EAAmB,CAC9FjmpB,MAAOzxB,UAA2B,4CAClC+uqB,WAAY/uqB,UAA2B,oDAE3C,IAAIq4qB,GAAoBj9tB,QAAE,SAASyP,SAAS7qE,KAAKwiF,WACjDxiF,KAAKs4xB,kBAAoB,IAAIC,IAA4BF,EAAmBX,GAEhFc,cAAc/pB,GACV,YAAKopB,uBAAuBpH,mBAAmBhiB,GACxCzuwB,KAAK63xB,uBAEhBY,cAAchqB,GACV,YAAKopB,uBAAuBlH,mBAAmBliB,GACxCzuwB,KAAK63xB,uBAEhBa,sBACI,OAAO14xB,KAAKi4xB,kBAEhBU,sBACI,OAAO34xB,KAAKo4xB,kBAEhBQ,sBACI,OAAO54xB,KAAKs4xB,kBAEhBO,gBAAgBjsxB,GACZ,CAAC5M,KAAK63xB,uBAAwB73xB,KAAKi4xB,kBAAmBj4xB,KAAKo4xB,kBAAmBp4xB,KAAKs4xB,mBAAmBtyxB,QAAQ8yxB,IAC1GA,EAAOxluB,OAAO,aAAc1mD,ODbmB5M,KAAKm7D,WAAY,CAChE48tB,sBAAuB,CACnBgB,SAAU/4xB,KAAK09nB,YAAY4qI,cAC3BgC,eAAgBtqwB,KAAK09nB,YAAY4sI,eAAerhtB,KAAKjpD,KAAK09nB,aAC1DurI,oBAAqBjpwB,KAAK09nB,YAAYurI,oBAAoBhgtB,KAAKjpD,KAAK09nB,cAExEj5jB,WAAYzkE,KAAKszD,OAAO,cACxBqkuB,eAAgB33xB,KAAKg5xB,gBAAgB/vuB,KAAKjpD,QAE9CA,KAAKi5xB,cAAgBj5xB,KAAKk5xB,sBAC1B,IAAIC,EAAsBn5xB,KAAKszD,OAAO,uBAClC6luB,GACAn5xB,KAAKo5xB,yBAAyBD,GAElCn5xB,KAAKq5xB,qBAETD,yBAAyBD,GACrBn5xB,KAAKs5xB,qBAAuBH,EAC5Bn5xB,KAAKs5xB,qBAAqBhmuB,OAAO,CAC7BoztB,oBAAqB1jwB,IACjB,IACIgvE,KAAMA,GACNhvE,EACJ,OAAOhjB,KAAKu5xB,uBAAuBvnsB,IAEvC20rB,wBAAyBrsrB,IACrB,IACI19E,KAAMA,EACNgwG,UAAWA,GACXtyB,EACJ,OAAOt6F,KAAKw5xB,oBAAoB58wB,EAAMgwG,MAIlD6sqB,4BACI,OAAOC,IAEXR,sBACI,IAAI/G,GAAgB/2tB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAC7C,OAAOn7D,KAAK24F,iBAAiBw5rB,EAAenyxB,KAAKy5xB,4BAA6B,CAC1EtrR,cAAenugB,KAAK25xB,2BAA2B1wuB,KAAKjpD,MACpD45xB,6BAA8B55xB,KAAKszD,OAAO,sCAC1CqhuB,uBAAwB3+wB,GAAKhW,KAAK65xB,wBAAwB7jxB,GAC1D4+wB,iBAAkB5+wB,GAAKhW,KAAK85xB,kBAAkB9jxB,GAC9C6+wB,iBAAkB7+wB,GAAKhW,KAAK+5xB,kBAAkB/jxB,KAGtDgkxB,oBAAoB7+tB,GAChBn7D,KAAKi5xB,cAAc3luB,OAAO,WAAY6H,GAE1C8+tB,2BAA2BzyxB,GACvBxH,KAAKi5xB,cAAc3luB,OAAO,kBAAmB9rD,GAEjDmyxB,6BACI,IAAIO,EAAkBl6xB,KAAKgtwB,oBAAoBrO,SAC/C,MAAO,CACHzmC,UAAWl4tB,KAAK09nB,YAAY+gI,yBAC5BJ,gBAAiB,CAAC5hC,EAAU4N,IAAerquB,KAAK09nB,YAAY2gI,gBAAgB5hC,EAAU4N,EAAY6vD,GAClG57B,gBAAiB,CAAC7hC,EAAU4N,IAAerquB,KAAK09nB,YAAY4gI,gBAAgB7hC,EAAU4N,EAAY6vD,IAG1Gb,qBACIr5xB,KAAKm6xB,aAAe,CAChB7txB,OAAQ,CACJygF,OAAQzH,GAAOtlF,KAAKo6xB,WAAW90sB,GAC/B6vsB,iBAAiB,EACjByB,4BAA6B52qB,UAA2B,0DACxD+2qB,yBAA0B/2qB,UAA2B,uDACrD81qB,uBAAwB91qB,UAA2B,qDACnD61qB,mBAAoB71qB,UAA2B,kDAEnDkxpB,OAAQ,CACJnkrB,OAAQzH,GAAOtlF,KAAKq6xB,WAAW/0sB,GAC/BsxsB,4BAA6B52qB,UAA2B,0DACxD+2qB,yBAA0B/2qB,UAA2B,uDACrD81qB,uBAAwB91qB,UAA2B,qDACnD61qB,mBAAoB71qB,UAA2B,kDAEnDr2G,OAAQ,CACJojF,OAAQzH,GAAOtlF,KAAKs6xB,WAAWh1sB,GAC/BsxsB,4BAA6B52qB,UAA2B,0DACxD22qB,+BAAgC32qB,UAA2B,6DAC3D+2qB,yBAA0B/2qB,UAA2B,uDACrD82qB,4BAA6B92qB,UAA2B,0DACxD81qB,uBAAwB91qB,UAA2B,qDACnDk2qB,0BAA2Bl2qB,UAA2B,wDACtD61qB,mBAAoB71qB,UAA2B,kDAEnD5jD,KAAM,CACF2wB,OAAQzH,GAAOtlF,KAAKu6xB,SAASj1sB,GAC7BsxsB,4BAA6B52qB,UAA2B,wDACxD22qB,+BAAgC32qB,UAA2B,2DAC3D+2qB,yBAA0B/2qB,UAA2B,qDACrD82qB,4BAA6B92qB,UAA2B,wDACxD81qB,uBAAwB91qB,UAA2B,mDACnDk2qB,0BAA2Bl2qB,UAA2B,sDACtD61qB,mBAAoB71qB,UAA2B,gDAEnDhlG,KAAM,CACF+xE,OAAQzH,GAAOtlF,KAAKw6xB,SAASl1sB,GAC7BsxsB,4BAA6B52qB,UAA2B,wDACxD22qB,+BAAgC32qB,UAA2B,2DAC3D+2qB,yBAA0B/2qB,UAA2B,qDACrD82qB,4BAA6B92qB,UAA2B,wDACxD81qB,uBAAwB91qB,UAA2B,mDACnDk2qB,0BAA2Bl2qB,UAA2B,sDACtD61qB,mBAAoB71qB,UAA2B,gDAEnD2jnB,OAAQ,CACJ52oB,OAAQzH,GAAOtlF,KAAKy6xB,WAAWn1sB,GAC/BulsB,aAAa,EACb8K,mBAAmB,EACnBiB,4BAA6B52qB,UAA2B,0DACxD22qB,+BAAgC32qB,UAA2B,6DAC3D+2qB,yBAA0B/2qB,UAA2B,uDACrD82qB,4BAA6B92qB,UAA2B,0DACxD81qB,uBAAwB91qB,UAA2B,qDACnDk2qB,0BAA2Bl2qB,UAA2B,wDACtDi3qB,gBAAiBj3qB,UAA2B,+CAEhD+gO,SAAU,CACNh0P,OAAQzH,GAAOtlF,KAAK06xB,UAAUp1sB,GAC9BsxsB,4BAA6B,GAC7BD,+BAAgC,GAChCb,uBAAwB91qB,UAA2B,uDACnDk2qB,0BAA2Bl2qB,UAA2B,2DAE1D0tpB,eAAgB,CACZ3grB,OAAQzH,GAAOtlF,KAAKktH,gBAAgB5nC,IAExC4/gB,SAAU,CACN0xL,4BAA6B,GAC7Bd,uBAAwB91qB,UAA2B,0CACnD61qB,mBAAoB71qB,UAA2B,4CAI3D26qB,oBACI,IAAIjoxB,EAAS,GACbo2D,gBAAK9oE,KAAKm6xB,aAAc92xB,IAChBgJ,OAAO8tB,UAAUjnB,eAAeknB,KAAKp6B,KAAKm6xB,aAAc92xB,KACxDqP,EAAOrP,GAAQiiF,GAAOtlF,KAAK+tF,eAAe1qF,EAAMiiF,MAGjD5yE,EAEXq7E,eAAekG,EAAY3O,GACvB,IAAIyvsB,EAAiB/0xB,KAAKm6xB,aAAalmsB,GACvC,OAAO8gsB,EAAiBA,EAAehosB,OAAOzH,GAAO,KAEzDi0sB,uBAAuBvnsB,GACnBhyF,KAAKi5xB,cAAclG,aAAa/gsB,EAAK4osB,iBAEzCpB,oBAAoB58wB,EAAMgwG,GACtB5sH,KAAKi5xB,cAAc/F,iBAAiBt2wB,EAAKo1E,KAAK4osB,gBAAiBhuqB,GAEnEktqB,kBAAkB3otB,GACd,IACI6htB,UAAWA,EACXG,UAAWA,EACXO,YAAaA,EACbD,UAAWA,GACXtitB,GAEA62sB,cAAeA,GACfhoxB,KAAKw3xB,wBAAwBxE,GACjChzxB,KAAKs5xB,qBAAqBpR,4BAA4BF,EAAemL,EAAW,IAAMM,EAAW,IAAMC,GAE3GqG,kBAAkBzntB,GACd,IACI0gtB,UAAWA,EACXU,YAAaA,GACbphtB,GAEA01sB,cAAeA,GACfhoxB,KAAKw3xB,wBAAwBxE,GACjChzxB,KAAKs5xB,qBAAqBnP,gBAAgBnC,EAAe,IAAM0L,GAC/D1zxB,KAAK66xB,+BAA+B7H,EAAW,YAEnD6G,wBAAwBnntB,GACpB,IACIq6rB,YAAaA,GACbr6rB,EACJ1yE,KAAK09nB,YAAYovI,qBAAqBC,EAAa/swB,KAAKgtwB,qBAE5DkqB,sBAAsBtrB,GAClB,IAAImpB,EAAiB/0xB,KAAKm6xB,aAAavuB,EAAWvowB,MAC9C6kC,EAAU,IAAI4yvB,IAAyB/F,EAAgBnpB,EAAWnB,UAAWmB,EAAWxC,WACxF4e,EAAgBhoxB,KAAKs5xB,qBAAqBzS,aAAa3+uB,EAAQ0ivB,kBAAmBmK,EAAelK,aAAckK,EAAeY,mBAKlI,QAJAt2wB,QAAOusvB,EAAWljC,WAAY,CAC1BxgsB,QAASA,EACT8/uB,cAAeA,IAEXpc,EAAWvowB,UACV,SACD,IAAI2vxB,EAAYpnB,EAAWljC,WAAWqkC,YAAYimB,UAClDhL,EAAc4S,gBAAkB5H,EAChChzxB,KAAKw3xB,wBAAwBxE,GAAa,CACtChL,cAAeA,GAEnB,UACC,SACDpc,EAAWljC,WAAWxgsB,QAAQmkuB,YAAcT,EAAWljC,WAAW2jC,aAG9E8qB,4BAA4BvrB,GACxB,IACI1juB,QAASA,EACT8/uB,cAAeA,GACfpc,EAAWljC,WACfxgsB,EAAQ8luB,cAAgBpC,EAAWoC,cACnC,IAAIwZ,EAAUt/uB,EAAQuiuB,UAAU/pvB,IAAIu0lB,GAAYj1mB,KAAK+6xB,4BAA4B9lL,IACjFj1mB,KAAKs5xB,qBAAqB/R,oBAAoBS,EAAeR,EAASt/uB,EAAQ6svB,eAAelK,aAEjGwM,mBAAmBzrB,EAAYJ,GAC3B,IACItjuB,QAASA,EACT8/uB,cAAeA,GACfpc,EAAWljC,WACfxgsB,EAAQ8luB,cAAgBpC,EAAWoC,cACnChuwB,KAAKg7xB,mBAAmBhT,EAAe9/uB,EAASsjuB,GAChDxrwB,KAAK+2tB,gBAAgBixD,EAAe9/uB,GAExCkvvB,uBAAuBxrB,EAAYJ,GAC/B,IACItjuB,QAASA,EACT8/uB,cAAeA,GACfpc,EAAWljC,WACf1ouB,KAAKg7xB,mBAAmBhT,EAAe9/uB,EAASsjuB,GAEpD8rB,0BAA0B1rB,EAAY55qB,GAClC,IACI9pD,QAASA,EACT8/uB,cAAeA,GACfpc,EAAWljC,aACV12oB,EAAKt/E,SAAWs/E,EAAKt/E,OAAOo3f,YAC7B5he,EAAQ6/uB,sBAAsB/1rB,EAAKz/E,OACnCvS,KAAKs5xB,qBAAqBvR,sBAAsBC,EAAeh2rB,EAAKz/E,MAAO21B,EAAQ+/uB,iBAG3FsP,sBAAsB3rB,GAClB,IACI1juB,QAASA,EACT8/uB,cAAeA,GACfpc,EAAWljC,WACf1ouB,KAAK+2tB,gBAAgBixD,EAAe9/uB,GAChC,WAAa0juB,EAAWvowB,MACxBrD,KAAK66xB,+BAA+BjvB,EAAWljC,WAAWqkC,YAAYimB,UAAW,cAGzF6H,+BAA+B7H,EAAWiI,MAClCv9wB,OAAU1d,KAAKw3xB,wBAAwBxE,GAAWiI,YAAcj7xB,KAAKw3xB,wBAAwBxE,GAAWiI,YAAcA,SAC/Gj7xB,KAAKw3xB,wBAAwBxE,GAEpChzxB,KAAKw3xB,wBAAwBxE,GAAWiI,UAAYA,EAG5Db,WAAWc,GACP,IAAI3wB,EAAsB2wB,GAAqBA,EAAkB,IAAMl7xB,KAAKy0wB,uBACxE0mB,EAAan7qB,UAA2B,kCAC5C,OAAOhgH,KAAK+zuB,YAAY/zuB,KAAKy3xB,eAAekB,sBAAuBwC,GAAYh3xB,KAAKyuE,IAChF,IACIvvE,KAAMA,GACNuvE,EACJ,OAAO5yE,KAAK09nB,YAAYsgI,gBAAgBuM,EAAqBlnwB,KAGrEg3xB,WAAW5vB,GACP,IAAIx1J,EAAWw1J,GAAaA,EAAU,IAAMzqwB,KAAK+ppB,OAAOqxI,2BAA2B,GACnF,OAAKnmL,EAGEj1mB,KAAK+zuB,YAAY/zuB,KAAKy3xB,eAAeiB,sBAAuBzjL,EAAS0pJ,SAASt7vB,MAAMc,KAAKipG,IAC5F,IACI/pG,KAAMA,GACN+pG,EACJ,OAAOptG,KAAK09nB,YAAYqgI,WAAW9oJ,EAAU5xmB,MANrC,IAAImwE,OAAU35B,SAASC,UASvCwgvB,WAAW7vB,GAEP,GAAI,KADJA,EAAYA,GAAazqwB,KAAK+ppB,OAAOqxI,4BACjB32xB,OAChB,OAAQ,IAAI+uE,OAAU35B,SAASC,UAEnC,IAAIgjkB,EAAW2tJ,EAAU,GAAG9L,SAASt7vB,KACjC05H,EAAY0toB,EAAUhmwB,OAC1B,OAAOzE,KAAK+zuB,YAAY/zuB,KAAKy3xB,eAAemB,sBAAuB,CAC/D97K,SAAUA,EACV//e,UAAWA,IACZ54H,KAAK,IAAMnE,KAAK09nB,YAAYugI,YAAYwM,IAE/C8vB,SAAS9vB,GAEL,OAAI,KADJA,EAAYA,GAAazqwB,KAAK+ppB,OAAOqxI,4BACjB32xB,QACR,IAAI+uE,OAAU35B,SAASC,UAE5B95C,KAAK+zuB,YAAY/zuB,KAAKy3xB,eAAegB,cAAchuB,IAAYtmwB,KAAKo0nB,IACvE,IACIy4J,OAAQA,GACRz4J,EACJ,OAAOv4nB,KAAK09nB,YAAYwgI,UAAUuM,EAAWumB,KAGrDwJ,SAAS/vB,GAEL,OAAI,KADJA,EAAYA,GAAazqwB,KAAK+ppB,OAAOqxI,4BACjB32xB,QACR,IAAI+uE,OAAU35B,SAASC,UAE5B95C,KAAK+zuB,YAAY/zuB,KAAKy3xB,eAAee,cAAc/tB,IAAYtmwB,KAAK20nB,IACvE,IACIk4J,OAAQA,GACRl4J,EACJ,OAAO94nB,KAAK09nB,YAAY0gI,UAAUqM,EAAWumB,KAGrDyJ,WAAWp2B,GACPrkwB,KAAKq7xB,qBAAuB,aAA6D,EAASh3B,EAAkB,GACpHrkwB,KAAKi5xB,cAAcpG,YAEvB6H,UAAUjwB,GAEN,OAAI,KADJA,EAAYA,GAAazqwB,KAAK+ppB,OAAOqxI,4BACjB32xB,QACR,IAAI+uE,OAAU35B,SAASC,UAE5B95C,KAAK09nB,YAAY6gI,cAAckM,GAE1Cv9oB,gBAAgBu9oB,GACZA,SAAYA,GAAazqwB,KAAK+ppB,OAAOqxI,2BAC9Bp7xB,KAAK09nB,YAAYgwI,eAAejD,GAE3C1zC,gBAAgBixD,EAAe9/uB,GAC3BloC,KAAKs5xB,qBAAqB/Q,kBAAkBP,EAAe9/uB,EAAQ8uvB,mBAAoB9uvB,EAAQ08tB,QAAS18tB,EAAQovrB,YAC5GpvrB,EAAQkuvB,oBACRp2xB,KAAKs7xB,gBAAgBpzvB,EAAQ6huB,WAGrCixB,mBAAmBhT,EAAe9/uB,EAASsjuB,GACvCwc,EAAcx+vB,UAAW,EACrB0e,EAAQ8luB,cACRhuwB,KAAKu7xB,gCAAgCvT,EAAe9/uB,EAASsjuB,GAE7DxrwB,KAAKw7xB,kCAAkCxT,EAAe9/uB,EAASsjuB,GAGvE+vB,gCAAgCvT,EAAe9/uB,EAASsjuB,GACpD,IAAIv2J,EAAW/skB,EAAQ6tvB,+BACnBj5K,EAAW50kB,EAAQouvB,YAAY9qB,EAAU/hvB,WACzCismB,EAAY11nB,KAAKy7xB,cAAcjwB,EAAWv2J,EAAU6H,GACxD50kB,EAAQ0tvB,0BAA0BlgK,GAClC,IAAIgmK,EAAqB17xB,KAAK27xB,uBAAuBzzvB,GACrDloC,KAAKs5xB,qBAAqB3Q,iCAAiCX,EAAe0T,GACtExzvB,EAAQwuvB,eACR12xB,KAAKs7xB,gBAAgBpzvB,EAAQ6huB,WAGrCyxB,kCAAkCxT,EAAe9/uB,EAASsjuB,GACtD,IAAIv2J,EAAW/skB,EAAQiuvB,+BAA+B3qB,EAAUj5vB,OAC5DuqmB,EAAW50kB,EAAQouvB,YAAY9qB,EAAU/hvB,UAAW+hvB,EAAUj5vB,OAC9DmjnB,EAAY11nB,KAAKy7xB,cAAcjwB,EAAWv2J,EAAU6H,GACxD50kB,EAAQ+tvB,4BAA4BzqB,EAAUj5vB,MAAOmjnB,GACrD,IAAIgmK,EAAqB17xB,KAAK27xB,uBAAuBzzvB,GACrDloC,KAAKs5xB,qBAAqBvQ,yBAAyBf,EAAe0T,GAEtEC,uBAAuBzzvB,GACnB,IAAI0zvB,EAAc1zvB,EAAQuuvB,WAAWD,mBACrC,MAAO,CACHlL,gBAAiBpjvB,EAAQuuvB,WAAWnL,gBACpC1uwB,KAAMg/wB,EAAY3mL,SAAWj1mB,KAAK+6xB,4BAA4Ba,EAAY3mL,UAAY,KACtFrof,UAAWgvqB,EAAYhvqB,UACvBm+pB,gBAAiB6Q,EAAYlmK,WAGrC+lK,cAAcjwB,EAAWv2J,EAAU6H,GAC/B,IAAI4Y,EAAY81I,EAAU91I,WEvZzB,EAACjsmB,EAAW9Q,KACb,OAAQ8Q,QACCy4uB,YACD,OAAOlipB,UAA2B,oCACjCkipB,cACD,OAAOlipB,UAA2B,sCAAuCrnG,QACxEupvB,gBACD,OAAOlipB,UAA2B,wCAAyCrnG,QAC1EupvB,mBACD,OAAOlipB,UAA2B,2CAA4CrnG,QAC7EupvB,qBACD,OAAOlipB,UAA2B,6CAA8CrnG,QAC/EupvB,sBACD,OAAOlipB,UAA2B,8CACjCkipB,uBACD,OAAOlipB,UAA2B,+CACjCkipB,kBACD,OAAOlipB,UAA2B,qCAE1C,OAAOA,UAA2B,+BFoYK67qB,CAAwBrwB,EAAU/hvB,UAAWqzlB,GAChFg/K,EAAY,CACZx8B,eAAgB,aAA2C,EAASrqJ,EAAS0pJ,SAC7El1uB,UAAW+hvB,EAAU/hvB,UACrBismB,UAAWA,GAEf,YAAKyiJ,cAAc2jB,GACZA,EAAUpmK,UAErBqlK,4BAA4B9lL,GACxB,MAAO,CACH6xK,WAAY7xK,EAAS0pJ,SAASt7vB,KAC9BwkxB,SAAU7nxB,KAAKu5wB,kBAAkBtkK,IAGzC8+H,YAAY+kD,EAAQiD,GAChB,YAAKC,gBAAkB,IAAIxotB,MAC3BsltB,EAAOrkpB,KAAKsnpB,GACL/7xB,KAAKg8xB,gBAAgBlivB,UAEhCk/uB,gBAAgBhjxB,GACZ,IAAItD,EAASsD,EAAE05wB,aACXh9wB,EACA1S,KAAKg8xB,gBAAgBnowB,QAAQnhB,GAE7B1S,KAAKg8xB,gBAAgBnivB,SAG7Bg/uB,gBAAgBjsxB,GACZ5M,KAAKy3xB,eAAeoB,gBAAgBjsxB,GAExC2swB,kBAAkB38vB,GACd,IAAI68vB,EAAsBz5wB,KAAKszD,OAAO,oBACtC,IAAKmmtB,EACD,OAAO,KAEX,IAAIznrB,EAAOynrB,EAAoB78vB,GAC/B,OAAOo1E,EAAOA,EAAK8qqB,UAAY,KAEnCrtiB,eACIzvN,KAAKqwN,SAAW,CACZ8qiB,UAAWn7vB,KAAKo2F,sBAAsB,aACtCwpoB,QAAS5/tB,KAAKo2F,sBAAsB,YAG5C7B,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC59D,MAAO,CACHykwB,yBAA0B,MAE9BjC,oBAAqB,KACrB3hB,iBAAkB,KAClBrc,UAAW,KACXv7B,QAAS,OAGjBrpoB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,QACDrD,KAAKquG,UACL,UACC,sBACDruG,KAAKo5xB,yBAAyBzgxB,EAAK/L,OACnC,UACC,mBACD,UACC,qCACD5M,KAAKi5xB,cAAc3luB,OAAO,+BAAgC36C,EAAK/L,OAC/D,UACC,gBACA,UACD5M,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAGjC2ixB,gBAAgBW,GACZj8xB,KAAKqwN,SAAS8qiB,UAAU,CACpB8gC,iBAAkBA,IAG1B9jB,cAAcx/vB,GACV3Y,KAAKqwN,SAASuvgB,QAAQjntB,GAE1B87vB,uBACI,OAAOz0wB,KAAK09nB,YAAYurI,sBAExB+D,0BACA,OAAOhtwB,KAAKq7xB,sBAAwBr7xB,KAAKy0wB,yBGtXjD,UApHA,kBAAqCrsqB,GACjCtS,QACIh2F,MAAMg2F,QACN91F,KAAKk8xB,kBAAoB,KAE7B35rB,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACDzvN,KAAKk8xB,mBACLl8xB,KAAKm8xB,cAETn8xB,KAAKm7D,WAAWvtD,SAfa,8BAiBjC27vB,oBAAoBH,GACXppwB,KAAKo8xB,cAAcp8xB,KAAKk8xB,kBAAmB9yB,KAC5CppwB,KAAKk8xB,kBAAoB9yB,EACzBppwB,KAAKquG,WAGb8trB,cACI,IAAIj5O,GAAQ9nf,QAAE,SAASyP,SAAS7qE,KAAKm7D,YACrCn7D,KAAKqjjB,MAAQrjjB,KAAK24F,iBAAiBuqd,EAAOrziB,IAAM,CAC5C2sG,WAAYx8G,KAAK8gjB,gBACjBh8b,YAAa9kH,KAAK0qtB,aAAazhqB,KAAKjpD,MACpC6kH,eAAgB7kH,KAAKq8xB,gBAAgBpzuB,KAAKjpD,QAGlD8gjB,gBACI,IAAI61N,EAAU32wB,KAAKs8xB,qBACf5pxB,EAAS,CAAC,CACVi/H,KAAM,UACNy3nB,UAAWppwB,KAAKk8xB,kBAAkBp+B,gBAClCy+B,YAAY,EACZ33rB,SApC4C43rB,iDAqC7C,CACC/lxB,KAAM,OACNmuF,SAtCwC43rB,8CAwC5C7lB,SAAQ3wwB,QAAQ,CAAC2kB,EAAKpY,KAClBG,EAAOrJ,KAAK,CACRoN,KAAMkU,EAAIylvB,iBACVhH,UAAWz+uB,EACX4xwB,YAAY,IAEZhqxB,IAAUokwB,EAAQlywB,OAAS,GAC3BiO,EAAOrJ,KAAK,CACRsoI,KAAM,WACN/sC,SAhDqC43rB,qDAoD1C9pxB,EAEXg4sB,aAAa1nsB,GACT,IACIshG,SAAUA,GACVthG,EACJ,GAAKshG,EAASi4qB,WAGd,KAAIE,EAASn4qB,EAAS8kpB,UACjBppwB,KAAKo8xB,cAAcK,EAAQz8xB,KAAKk8xB,oBACjCl8xB,KAAK08xB,8BAA8BD,IAG3CJ,gBAAgB/hsB,GACZ,IACIkzB,YAAaA,EACblJ,SAAUA,GACVhqB,EACAgqB,EAAS1f,WACTxpC,QAAEoyD,GAAa5/G,SAAS02G,EAAS1f,UAGzC03rB,qBAGI,QAFIryB,EAAmBjqwB,KAAKk8xB,kBACxBxpxB,EAAS,GACNu3vB,GACHv3vB,EAAO8uB,QAAQyouB,GACfA,EAAmBA,EAAiBnM,gBAExC,OAAOprvB,EAEX0pxB,cAAcO,EAAMC,GAChB,OAAOD,GAAQC,GAAQD,IAASC,GAAQD,EAAKh+B,SAASxsvB,MAAQyqxB,EAAKj+B,SAASxsvB,IAEhFs9M,eACIzvN,KAAKqwN,SAAW,CACZwskB,2BAA4B78xB,KAAKo2F,sBAAsB,+BAG/DsmsB,8BAA8BzyB,GAC1BjqwB,KAAKqwN,SAASwskB,2BAA2B,CACrC5yB,iBAAkBA,IAG1B11qB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCuosB,sBAAuB,QACvBD,2BAA4B,OAGpCtmsB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,wBACDrD,KAAKquG,UACL,UACC,6BACDruG,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,MC9GrC,IAAI1W,KAASk8D,WACT4+tB,GAAiB,cACjBC,IAAyB,GAAGn7wB,OAAOk7wB,GAAgB,YACnDE,GAA0B,GAAGp7wB,OAAOk7wB,GAAgB,aACpDG,IAAwB,GAAGr7wB,OAAOk7wB,GAAgB,WAClDI,GAA+B,GAAGt7wB,OAAOk7wB,GAAgB,YACzDzzL,IAAuB,oBACvB8zL,GAA4B,qBACjB,kBAA8Bh1rB,GACzCtS,QACIh2F,MAAMg2F,QACN,IAAIunsB,GAAa,IAAI52qB,MAAMjvG,WAC3BxX,KAAKs9xB,iCAAmC5utB,GAAa7H,QAAoBu2tB,GAA4BC,GACrGr9xB,KAAKu9xB,iCAAmC7utB,GAAa7H,QAAoBu2tB,GAA4BC,GACrGr9xB,KAAKw9xB,+BAAiC9utB,GAAa7H,MAAkBu2tB,GAA4BC,GAErG96rB,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACLzvN,KAAKwxI,YAAcxxI,KAAKszD,OAAO,aAC/BtzD,KAAKy9xB,cAAgBz9xB,KAAKszD,OAAO,eACjCtzD,KAAK09xB,eAAiB19xB,KAAKszD,OAAO,gBAClCtzD,KAAKm7D,WAAWvtD,SAASovxB,KAAwBpvxB,SAASuvxB,IAC1Dn9xB,KAAK29xB,oBAAmBviuB,MAAE,SAASxtD,SAASsvxB,KAAuBrytB,SAAS7qE,KAAKm7D,YACjFn7D,KAAK49xB,cAAaxiuB,MAAE,SAASxtD,SAASmvxB,IAAgBnvxB,SAASqvxB,IAAyBpytB,SAAS7qE,KAAK29xB,kBAE1GlukB,eACIzvN,KAAKqwN,SAAW,CACZwtkB,iBAAkB79xB,KAAKo2F,sBAAsB,oBAC7C0nsB,qBAAsB99xB,KAAKo2F,sBAAsB,yBAGzDgC,UACIt4F,MAAMs4F,UACNp4F,KAAKklN,uBACLllN,KAAK2kN,uBAETlhH,SACIzjG,KAAKklN,uBACLplN,MAAM2jG,SAEVkhH,uBACI,IAAIrjN,EAAW8wD,mBACf3D,QAAgBzuD,KAAK29xB,iBAAkB39xB,KAAKs9xB,iCAAkCt9xB,KAAK+9xB,oBAAoB90uB,KAAKjpD,OAC5GyuD,QAAgBntD,EAAUtB,KAAKu9xB,iCAAkCv9xB,KAAKg+xB,oBAAoB/0uB,KAAKjpD,OAC/FyuD,QAAgBntD,EAAUtB,KAAKw9xB,+BAAgCx9xB,KAAKi+xB,kBAAkBh1uB,KAAKjpD,OAE/FklN,uBACI,IAAI5jN,EAAW8wD,mBACf3D,SAAiBzuD,KAAK29xB,iBAAkB39xB,KAAKs9xB,kCAC7C7uuB,SAAiBntD,EAAUtB,KAAKu9xB,kCAChC9uuB,SAAiBntD,EAAUtB,KAAKw9xB,gCAEpC37rB,kBAAkB4tB,KACTA,GAAa,WAAaA,KAC3BzvH,KAAKk+xB,gBAAkBl+xB,KAAKwxI,YAAYxtI,IAAI,GAAG+mE,YAC/C/qE,KAAKm+xB,yBAAyB,CAC1BC,kBAAkB,EAClBC,0BAA0B,KAItCN,oBAAoB/nxB,GAChBA,EAAEjL,iBACF/K,KAAKs+xB,SAAWtoxB,EAAE61D,MAAQ7rE,KAAK29xB,iBAAiBxztB,SAAS7O,MAAQt7D,KAAKu+xB,0BAA4BvoxB,EAAE61D,MAAQ7rE,KAAK29xB,iBAAiBxztB,SAAS7O,KAAO,EAClJt7D,KAAKk+xB,gBAAkBl+xB,KAAKwxI,YAAYxtI,IAAI,GAAG+mE,YAC/C/qE,KAAKm7D,WAAWrtD,YAAYqvxB,IAC5Bn9xB,KAAK+5kB,eAAc,GACnB/5kB,KAAKm+xB,yBAAyB,CAC1BC,kBAAkB,IAG1BJ,oBAAoBhoxB,IACXhW,KAAKw+xB,mBAGVx+xB,KAAKm+xB,yBAAyB,CAC1BM,qBAAsBz+xB,KAAK0+xB,4BAA4B1oxB,GACvDooxB,kBAAkB,IAG1BH,qBACSj+xB,KAAKw+xB,oBAGVx+xB,KAAK2+xB,0BAA4B,KACjC3+xB,KAAK+5kB,eAAc,GACnB/5kB,KAAKm+xB,yBAAyB,CAC1BC,kBAAkB,EAClBC,0BAA0B,KAGlCK,4BAA4B1oxB,GACxB,IAAI4oxB,EAA0B5oxB,EAAE61D,MAAQ7rE,KAAK6+xB,0BAA4B7+xB,KAAKs+xB,SAC9EM,SAA0BrkxB,KAAKC,IAAI,EAAIxa,KAAK8+xB,qBAAsBF,GACxCrkxB,KAAKmvD,IAAI1pE,KAAKk+xB,gBAAkBl+xB,KAAK8+xB,qBAAuB9+xB,KAAK++xB,oBAAqBH,GAGpHC,0BACI,IAAI3ytB,EAAalsE,KAAKwxI,YAAYrnE,SAAS7O,KAC3C,GAAIr5D,IAAQ,CACR,IAAIsG,EAAQtG,IAAO06E,iBAAiB38E,KAAKwxI,YAAYxtI,IAAI,IAGzDkoE,IAFkBhQ,WAAW3zD,EAAMg1E,cAAgB,IAClCrhB,WAAW3zD,EAAMy2xB,kBAAoB,GAG1D,OAAO9ytB,EAEX4ytB,qBACI,OAAQ9+xB,KAAKu+xB,0BAA4Bv+xB,KAAK++xB,qBAAuB,EAEzEA,oBACI,OAAO/+xB,KAAK49xB,WAAW55xB,IAAI,GAAG+mE,YAElCwztB,0BACI,OAAOv+xB,KAAK29xB,iBAAiB35xB,IAAI,GAAG+mE,YAExCk0tB,qBACI,OAAOj/xB,KAAKy9xB,cAAcz5xB,IAAI,GAAG+mE,YAErCm0tB,2BACI,OAAOl/xB,KAAK29xB,iBAEhB5jN,cAAcz3hB,GACVtiD,KAAKm7D,WAAW+oC,YAAY+4rB,IAA0B36uB,GACtDtiD,KAAK49xB,WAAW15rB,YAAY+4rB,IAA0B36uB,GACtDtiD,KAAKw+xB,kBAAoBl8uB,EACzBtiD,KAAKqwN,SAASytkB,qBAAqB,CAC/Bx7uB,SAAUA,IAGlB68uB,eAAer6wB,GACX9kB,KAAKm7D,WAAW+oC,YAAYolgB,IAAsBxklB,GAClD9kB,KAAK49xB,WAAW15rB,YAAYolgB,IAAsBxklB,GAEtDs6wB,kBACI,OAAQp/xB,KAAKm7D,WAAWxF,SAASwnuB,IAErCkC,2BAA2BzyxB,GACvB5M,KAAKs/xB,+BAAiC1yxB,EAE1CuxxB,2BACI,IAC0BM,uBAAuB,KAC3BL,oBAAmB,EACXC,4BAA2B,GACrDt+xB,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,GAEjEw/xB,GADJd,EAAuBA,GAAwBz+xB,KAAKi/xB,qBAAuBj/xB,KAAK8+xB,sBACpC9+xB,KAAK8+xB,qBAC7CU,EAAkBx/xB,KAAKk+xB,gBAAkBqB,EACxCv/xB,KAAKs/xB,gCACNt/xB,KAAKm7D,WAAWY,IAAI,OAAQ0iuB,GAEhCz+xB,KAAK2+xB,0BAA4B3+xB,KAAK2+xB,2BAA6B3+xB,KAAKy/xB,qBAAqBF,GAC7F,IAAIG,EAA4B1/xB,KAAKy/xB,qBAAqBz/xB,KAAKk+xB,gBAAkBl+xB,KAAK2/xB,iBAAiB3/xB,KAAK2+xB,6BACvGP,GAGLp+xB,KAAKqwN,SAASwtkB,iBAAiB,CAC3B0B,eAAgBlB,EAA2B,GAAGx8wB,OAAO7hB,KAAK2+xB,0BAA2B,KAAOY,EAC5FC,gBAAiBnB,EAA2B,GAAGx8wB,OAAO69wB,EAA2B,KAAOF,IAGhGjpsB,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,wBACDrD,KAAK2+xB,0BAA4B3+xB,KAAKy/xB,qBAAqB9mxB,EAAK/L,OAChE5M,KAAK6hG,oBACL,UACC,cACD7hG,KAAKquG,UACL,UACC,2BACA,mBACDruG,KAAKqwN,SAAS13M,EAAKtV,MAAQrD,KAAKo2F,sBAAsBz9E,EAAKtV,MAC3D,cAEAvD,MAAMy2F,eAAe59E,IAGjC8mxB,qBAAqBG,GACjB,OAAOA,EAAa5/xB,KAAKwxI,YAAYxtI,IAAI,GAAG+mE,YAAc,IAE9D40tB,iBAAiBE,GACb,OAAOA,EAAkB,IAAM7/xB,KAAKwxI,YAAYxtI,IAAI,GAAG+mE,aCnL/D,IAAI9oE,OAASk8D,SAET2huB,IAA6C,yCAC7CC,IAA+B,kCAoInC,UAlIA,kBAA2C33rB,GACvC7F,cACIziG,MAAMyiG,cACNviG,KAAKyvN,eACLzvN,KAAKksxB,oBAAqB,EAC1B,IAAI8T,GAAU5kuB,QAAE,SAASyP,SAAS7qE,KAAKm7D,aACvCC,QAAE,SAASxtD,SAASkyxB,KAA4Cj1tB,SAASm1tB,GACzEhgyB,KAAK6vvB,QAAU7vvB,KAAK24F,iBAAiBqnsB,EAAS1sC,IAC9CtzvB,KAAK6vvB,QAAQv8rB,OAAO,CAChBs8L,QAAQ,EACR9gM,SAAU9uD,KAAKigyB,sBAAsBh3uB,KAAKjpD,SAE9Co7D,QAAEp7D,KAAK6vvB,QAAQhmjB,WAAWj8L,SAASmyxB,KACnC,IAAInT,EAAiBoT,EAAQv6vB,KAAK,IAAI5jB,OAAOi+wB,MAA6ClwvB,QACtFi9uB,EAAkB7sxB,KAAKszD,OAAO,oBAC9B96C,SAAWq0wB,IACXA,EAAgBD,GAEpB5sxB,KAAKkgyB,uBAETD,sBAAsB/rwB,GAClBl0B,KAAKszD,OAAO,iBAAZtzD,CAA8Bk0B,GAC9Bl0B,KAAKmgyB,UAAYngyB,KAAK24F,iBAAiB,QAASynsB,IAAiB,CAC7DlswB,UAAWl0B,KAAKm7D,WAChBkluB,aAAajluB,QAAEp7D,KAAK6vvB,QAAQhmjB,WAC5By2lB,cAAclluB,QAAEp7D,KAAK6vvB,QAAQsC,eAC7B0rC,iBAAkB79xB,KAAKugyB,kBAAkBt3uB,KAAKjpD,MAC9C89xB,qBAAsB99xB,KAAKwgyB,sBAAsBv3uB,KAAKjpD,QAE1DA,KAAKmgyB,UAAUhluB,WAAW0P,SAAS32C,GACnCl0B,KAAKmgyB,UAAUd,4BAA2B,GAE9CjnsB,UACIt4F,MAAMs4F,UACNp4F,KAAKguxB,sBAETuS,kBAAkBvqxB,GACd,MAAKkoD,SAGL,KAAKl+D,KAAKmgyB,UAAUf,kBAEhB,YADAp/xB,KAAKygyB,gBAAgB,OAGzBrluB,MAAEp7D,KAAK6vvB,QAAQhmjB,WAAW/7L,YAAYiyxB,KACtC//xB,KAAKygyB,gBAAgBzqxB,EAAEupxB,iBAE3BiB,sBAAsBx9wB,GAClB,IACIs/B,SAAUA,GACVt/B,EACJhjB,KAAKmgyB,UAAUd,4BAA4B/8uB,IAC1CA,GAAYtiD,KAAKmgyB,UAAUhluB,WAAWY,IAAI,OAAQ,QAEvD0kuB,gBAAgB7guB,IACZxE,QAAEp7D,KAAK6vvB,QAAQhmjB,WAAW9tI,IAAI,QAAS6D,GACvC5/D,KAAKkgyB,uBACLlgyB,KAAK6vvB,QAAQU,oBAEjB2vC,uBACIlgyB,KAAK6vvB,QAAQv8rB,OAAO,UAAWtzD,KAAK6vvB,QAAQe,qBAEhD/upB,kBAAkB4tB,KACTA,GAAa,WAAaA,IAC3BzvH,KAAKguxB,sBAGbA,sBACI,IAAIhmV,EAAWhoc,KAAKksxB,mBACpBlsxB,KAAKksxB,mBAAqBlsxB,KAAK0/kB,iBAC3B13I,IAAahoc,KAAKksxB,qBAClBlsxB,KAAK0gyB,cAAc1gyB,KAAKksxB,oBAAoB,IAC5C9wtB,QAAEp7D,KAAK6vvB,QAAQhmjB,WAAW3lG,YAzEF,mCAyE6ClkG,KAAKksxB,oBAC1ElsxB,KAAK2gyB,2BAA2B3gyB,KAAKksxB,qBAErClsxB,KAAKksxB,oBAAsBlsxB,KAAK4gyB,mBAChC5gyB,KAAKkgyB,uBAGbxgN,iBACI,OAAO/5gB,SAAS1jE,MApFU,IAsF9B2+xB,kBACI,OAAO5gyB,KAAK6vvB,QAAQv8rB,OAAO,UAE/Bm8J,eACIzvN,KAAKqwN,SAAW,CACZwwkB,uBAAwB7gyB,KAAKo2F,sBAAsB,2BAG3DuqsB,2BAA2Bt4wB,GACvBroB,KAAKqwN,SAASwwkB,uBAAuB,CACjCx4wB,QAASA,IAGjBksE,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCussB,eAAgB,KAChB9yoB,gBAAiB,KACjB6yoB,uBAAwB,OAGhCtqsB,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,qBACA,kBACDrD,KAAKquG,UACL,UACC,yBACDruG,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,cAEAvD,MAAMy2F,eAAe59E,IAGjCooxB,oBACI,OAAO/gyB,KAAKksxB,mBAEhBwU,aAAa1nkB,EAASrmF,GAClB3yI,KAAKkgyB,uBACLlgyB,KAAK6vvB,QAAQv8rB,OAAO,oBAAqBq/E,GACzC3yI,KAAK6vvB,QAAQz7iB,OAAO4kB,GACpB,IAAIgokB,EAAmBhhyB,KAAK4gyB,oBAAsB5gyB,KAAK+gyB,oBACvD/gyB,KAAKmgyB,UAAUhB,gBAAgB6B,GAEnCC,qBACI,OAAOjhyB,KAAKmgyB,UAAUjB,2BAA2Bl7xB,IAAI,KCpG7D,IAAIk9xB,GAAqB,iBAErBC,IAA+BD,GAAqB,aA4rBxDhtpB,GAAkB,gBAlrBlB,kBAA0B9rC,GACtBnD,kBACAnP,QACIh2F,MAAMg2F,QACN91F,KAAKyvN,eACLzvN,KAAKohyB,wBAA0B,KAC/BphyB,KAAKqhyB,4BAA6B,EAClCrhyB,KAAKshyB,cAAe,EACpBthyB,KAAK09nB,YAAc,IAAI6jK,IAAoB,CACvC34K,YAAa5onB,KAAKszD,OAAO,eACzBo0sB,gBAAiB1nwB,KAAKszD,OAAO,mBAC7B4zsB,SAAUlnwB,KAAKszD,OAAO,kBACtBm0sB,aAAcznwB,KAAKszD,OAAO,sBAC1BsmqB,sBAAuB55tB,KAAKszD,OAAO,yBACnC20sB,kBAAmBjowB,KAAKszD,OAAO,UAAUumqB,YACzCwuC,gBAAiBrowB,KAAKszD,OAAO,UAAU4kqB,UACvC1joB,cAAex0F,KAAKwhyB,yBAAyBv4uB,KAAKjpD,MAClDyhyB,cAAezhyB,KAAK0hyB,eAAez4uB,KAAKjpD,MACxC2hyB,2BAA4B3hyB,KAAK4hyB,4BAA4B34uB,KAAKjpD,MAClE6hyB,yBAA0B7hyB,KAAK8hyB,oBAAoB74uB,KAAKjpD,MACxD4wwB,cAAe5wwB,KAAKqwN,SAAS22V,UAGrCzkd,cACIziG,MAAMyiG,cACNviG,KAAK+hyB,oBAAqB,EAC1B/hyB,KAAKgiyB,0BAA2B,EAChChiyB,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKiiyB,qBAAkB,EACvBjiyB,KAAKkiyB,eAAiB,GACtBliyB,KAAKszwB,gBAAkB,IAAI6uB,IAA0BniyB,KAAKszD,OAAO,gBACjEtzD,KAAKm7D,WAAWvtD,SAASszxB,IACrBlhyB,KAAKshyB,aACLthyB,KAAKoiyB,iBAELpiyB,KAAKshyB,cAAe,EAExBthyB,KAAKqiyB,6BACLriyB,KAAKsiyB,sBAETD,6BACI,IAAIE,KAAuBnnuB,MAAE,SAASxtD,SAAS,yCAAyCi9D,SAAS7qE,KAAKm7D,YACtGn7D,KAAKs5xB,qBAAuBt5xB,KAAK24F,iBAAiB4psB,EAAsBC,IAAgC,CACpGhU,uBAAwBxuxB,KAAKm7D,WAC7B6yF,gBAAiB,CAAC95H,EAAWilwB,IAAwBn5xB,KAAKyiyB,eAAevuwB,EAAWilwB,GACpF5K,iBAAkBv4wB,GAAKhW,KAAK0iyB,kBAAkB1sxB,GAC9C2sxB,eAAgB,IAAI9gxB,OAAOs/wB,KAC3B1S,kBAAmBzuxB,KAAKszD,OAAO,2BAC/Bo7tB,sBAAuB1uxB,KAAKszD,OAAO,6BAG3CmvuB,eAAevuwB,EAAWilwB,GACtBn5xB,KAAK+rN,aAAY3wJ,MAAE,SAASxtD,SA/DHszxB,0BA+DwCr2tB,SAAS32C,GAC1El0B,KAAK4iyB,eAAezJ,GACpB,IAAIz0jB,GAAWtpK,QAAE,SAASyP,SAAS7qE,KAAK+rN,WACxC/rN,KAAK2gjB,SAAW3gjB,KAAK24F,iBAAiB+rI,EAAUm+jB,IAAoB,CAChEzuB,eAAgBp0wB,KAAKszwB,gBACrB8Q,aAAcpkxB,KAAKszD,OAAO,iBAC1B63sB,UAAWnrwB,KAAKszD,OAAO,8BACvBgxtB,aAActkxB,KAAKszD,OAAO,YAAYrkD,KACtC61G,YAAansG,GAAQ3Y,KAAKqwN,SAASyykB,mBAAmBnqxB,KAE1D3Y,KAAK+iyB,2BAETA,2BACI,IAAIh5sB,KAAa3uB,MAAE,SAASxtD,SAASuzxB,KAA8Bt2tB,SAAS7qE,KAAK+rN,WACjF/rN,KAAKgjyB,mBAAqBhjyB,KAAK24F,iBAAiB5O,EAAYk5sB,IAA8B,CACtFnC,eAAgB5swB,GAAal0B,KAAKkjyB,qBAAqBhvwB,GACvD85H,gBAAiB95H,GAAal0B,KAAKmjyB,kBAAkBjvwB,GACrD2swB,uBAAwB7qxB,GAAKhW,KAAKojyB,wBAAwBptxB,KAE9DhW,KAAKqjyB,SAASpJ,2BAA2Bj6xB,KAAKgjyB,mBAAmB/B,sBAErE2B,eAAezJ,GACX,IAAImK,KAAoBlouB,MAAE,SAASxtD,SAlFAszxB,oCAkF+Cr2tB,SAAS7qE,KAAKm7D,YAChGn7D,KAAKqjyB,SAAWrjyB,KAAK24F,iBAAiB2qsB,EAAmBC,IAA2B,CAChFjoR,WAAYt7gB,KAAK09nB,YACjB/mmB,MAAO,CACHykwB,yBAA0Bp7xB,KAAKwjyB,sBAAsBv6uB,KAAKjpD,OAE9Dw3wB,iBAAkBx3wB,KAAKyjyB,sBAAsBx6uB,KAAKjpD,MAClDm5xB,oBAAqBA,EACrBuK,mCAAoC1jyB,KAAKm7D,WACzCsJ,WAAYzkE,KAAKszD,OAAO,cACxB6nsB,UAAWn4uB,IACP,IACIi5wB,iBAAkBA,GAClBj5wB,EACJ,OAAOhjB,KAAK2jyB,iBAAiB1H,IAEjCr8D,QAAS5ptB,GAAKhW,KAAK4jyB,gBAAgB5txB,KAG3CmtxB,kBAAkBp5sB,GACd/pF,KAAK6jyB,cAAezouB,QAAE,SAASxtD,SArGFszxB,8BAqG2Cr2tB,SAASkf,GACjF/pF,KAAK8jyB,mBAAmB9jyB,KAAK6jyB,cAC7B7jyB,KAAK+jyB,gBAAgB/jyB,KAAK6jyB,cAC1B7jyB,KAAKgkyB,wBAETA,wBACI,IAAItrE,EAAW14tB,KAAKszwB,gBAAgBtB,mBAAmB,UAAYhywB,KAAK6jyB,gBAAezouB,QACvFp7D,KAAKqjyB,SAASrJ,oBAAoBthE,GAEtCwqE,qBAAqBhvwB,GACjBl0B,KAAKikyB,0BAA4BjkyB,KAAKkkyB,oBAAmB,EA3GpD,WA4GL,IAAIC,GAAiB/ouB,QAAE,SAASxtD,SAlHJszxB,6BAkH4Cr2tB,SAAS32C,GACjFl0B,KAAKu1wB,eAAiBv1wB,KAAK24F,iBAAiBwrsB,EAAgBvT,IAA0B,CAClFxa,oBAAoB,EACpBr+N,YAAa/3iB,KAAKikyB,0BAClB35B,eAAgBtqwB,KAAKsqwB,eAAerhtB,KAAKjpD,MACzCipwB,oBAAqBjpwB,KAAKy0wB,qBAAqBxrtB,KAAKjpD,MACpDg1wB,iBAAkB16qB,IACd,IACIgqB,SAAUA,GACVhqB,EACJ,OAAOt6F,KAAKokyB,qBAAqB9/qB,IAErCgzpB,qBAAsB,IAAMt3wB,KAAKqkyB,eAxHhC,aA0HLrkyB,KAAKu1wB,eAAeiB,yBAExButB,gBAAgBh6sB,EAAYu6sB,GACxBtkyB,KAAKukyB,qBAAuBvkyB,KAAKkkyB,oBAAmB,EA5HjD,YA6HH,IAAIM,EAAkBxkyB,KAAKszD,OAAO,YAC9B1hC,EAAU,CACVuzG,cAAenlI,KAAKszD,OAAO,iBAC3BgkE,iBAAkBt3H,KAAKszD,OAAO,oBAC9BiktB,eAAgBv3wB,KAAKszD,OAAO,kBAC5Bykf,YAAa/3iB,KAAKukyB,qBAClBr/L,SAAUllmB,KAAKykyB,kBAAkBx7uB,KAAKjpD,MACtC4/tB,QAASzupB,IACL,IACIvwD,MAAOA,GACPuwD,EACJ,OAAOnxE,KAAK0kyB,WAAW9jxB,IAE3Bo2G,mBAAoBh3H,KAAK2kyB,4BAA4B17uB,KAAKjpD,MAC1DklH,qBAAsBllH,KAAK4kyB,8BAA8B37uB,KAAKjpD,MAC9Dq3wB,qBAAsBr3wB,KAAK6kyB,sBAAsB57uB,KAAKjpD,MACtDg0wB,qBAAsBh+vB,GAAKhW,KAAKqywB,sBA7IjC,WA6IyEr8vB,GACxE8uxB,sBAAuB,IAAM9kyB,KAAKqkyB,eA9InC,YA+IC7sB,iBAAkBx3wB,KAAKyjyB,sBAAsBx6uB,KAAKjpD,MAClDo7wB,uBAAwBp7wB,KAAKszD,OAAO,0BACpCyxuB,cAAe/kyB,KAAKszD,OAAO,6BAE3B0xuB,GAAY5puB,QAAE,SAASyP,SAASkf,GAGpC/pF,KAAKilyB,UAAYjlyB,KAAK24F,iBAAiBqssB,EADrB,gBADlBV,EAAWA,GAAYE,EAAgBv1xB,MACOi2xB,IAAgCC,IACfvzwB,GAEnEkywB,mBAAmB/5sB,GACf,IAAIq7sB,GAAehquB,QAAE,SAASyP,SAASkf,GACvC/pF,KAAKqlyB,aAAerlyB,KAAK24F,iBAAiByssB,EAAcE,IAAwB,CAC5ExI,sBAAuB98xB,KAAKszD,OAAO,kBACnCupuB,2BAA4BvqtB,IACxB,IACI23rB,iBAAkBA,GAClB33rB,EACJ,OAAOtyE,KAAKokyB,qBAAqBn6B,GAAkB,MAG3DjqwB,KAAKqlyB,aAAa97B,oBAAoBvpwB,KAAKy0wB,wBAE/CyvB,mBAAmBqB,EAA6B1xB,GAC5C,IAAIxpD,GAAejvpB,QAAE,SAASyP,SAAS7qE,KAAK+rN,WAC5C,OAAO/rN,KAAK24F,iBAAiB0xnB,EAAcm7E,IAAwB,CAC/DpxB,eAAgBp0wB,KAAKszwB,gBACrBj/sB,MAAOr0D,KAAKszD,OAAO,qBACnBwxD,YAAansG,GAAQ3Y,KAAKqwN,SAAS8pf,uBAAuBxhsB,GAC1Dq7vB,qBAAsBh+vB,GAAKhW,KAAKqywB,sBAAsBwB,EAAU79vB,GAChEuvxB,4BAA6BA,EAC7B1xB,SAAUA,IAGlByuB,sBACI,IAAIhykB,GAAUjxM,QAAOrf,KAAKqjyB,SAAS1I,oBAAqB,CACpDvirB,QAAS,IAAMp4G,KAAKylyB,0BACpBC,WAAY,IAAM1lyB,KAAKszD,OAAO,gBAAiB,cAC/Ck0tB,QAAS,IAAMxnxB,KAAKszD,OAAO,gBAAiB,WAC5CkvE,eAAgB,IAAMxiI,KAAK03H,kBAC3BqppB,YAAa,IAAM/gxB,KAAKgjyB,mBAAmBtC,iBAE/C1gyB,KAAKszwB,gBAAgB7B,gBAAgBnhjB,GAEzCq0kB,4BAA4BjytB,GACxB,IACIkmsB,kBAAmBA,EACnBvhpB,cAAeA,EACfC,iBAAkBA,EAClBuhpB,wBAAyBA,EACzBC,0BAA2BA,GAC3BpmsB,EACJ1yE,KAAKgiyB,0BAA2B,EAChChiyB,KAAKszD,OAAO,mBAAoBgkE,GAChCt3H,KAAKgiyB,0BAA2B,EAChChiyB,KAAKqwN,SAASr5F,mBAAmB,CAC7BK,cAAeA,EACfC,iBAAkBA,EAClBuhpB,wBAAyBA,EACzBC,0BAA2BA,IAE/B94wB,KAAK2lyB,eAAe/sB,GAExBgsB,8BAA8B5uxB,GAC1BhW,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKszD,OAAO,iBAAkBt9C,EAAE2tH,SAChC3jI,KAAK+2wB,4BAA6B,EAClC/2wB,KAAKqwN,SAASnrG,qBAAqB,CAC/BtoG,KAAM5G,EAAE4G,KACR4wG,YAAax3G,EAAEw3G,cAGvB41qB,wBAAwBxwtB,GACpB,IACIvqD,QAASA,GACTuqD,EACJ5yE,KAAKszwB,gBAAgBhzD,kBAAkB,cAAej4rB,GACtDroB,KAAK2lyB,iBAETjD,kBAAkBt1rB,GACd,IACI5yE,QAASA,EACT/R,OAAQA,GACR2kF,EACJptG,KAAK2gjB,SAAS8jO,kBAAkBjqvB,EAAS/R,GACzCzoB,KAAK2lyB,iBAET/B,gBAAgB5txB,GACZ,IAAI2C,EAAO6ivB,GAAiB,GAAIxlvB,EAAG,CAAC,YAAa,YAAa,mBAC9DhW,KAAKqwN,SAASu1kB,gBAAgBjtxB,GAC9B3C,EAAE0/mB,UAAY/8mB,EAAK+8mB,UAEvB+vK,0BACI,YAAKrD,kBACEvutB,SAAK7zE,KAAKs5xB,qBAAqB7L,uBAAwBztxB,KAAK09nB,YAAYtlhB,WAAWj0G,KAAK,IAAMnE,KAAKu1wB,eAAen9pB,WAE7HytrB,sBACI,OAAO,IAAM7lyB,KAAKkiyB,eAAez9xB,SAAU,SAAYy9xB,eAAe1vxB,QAhPjE,aAgPgG,IAAOxS,KAAKkiyB,eAAe1vxB,QA/O7H,YAiPP6xxB,eAAeptpB,GACXj3I,KAAKkiyB,eAAe74xB,KAAK4tI,GACrBj3I,KAAK6lyB,uBACL7lyB,KAAK09nB,YAAYsxI,gBAGzBozB,iBACIpiyB,KAAKkiyB,eAAiB,GACtBliyB,KAAK09nB,YAAY4pI,kBAErBq+B,eAAetuqB,GACX,IAAIhjE,EAAQgjE,GAAiBr3H,KAAKwjyB,wBAClCxjyB,KAAK2gjB,SAASrtf,OAAO,gBAAgB4zC,SAAc7yC,EAAO,KAE9DyxuB,YAAYxB,GACRtkyB,KAAK+lyB,eAAe/lyB,KAAKilyB,UAAU3xuB,OAAO,gBAC1CtzD,KAAK+lyB,eAAe/lyB,KAAKilyB,WACzBjlyB,KAAK+jyB,gBAAgB/jyB,KAAK6jyB,aAAcS,GACxCtkyB,KAAK2gjB,SAASrtf,OAAO,CACjBgxtB,aAAcggB,IAGtByB,eAAevtsB,GACXA,EAAO13C,UACP03C,EAAOr9B,WAAWt6D,SAEtB62H,kBACI13H,KAAKilyB,UAAUziqB,iBAEnBkiqB,WAAWlqwB,GACPx6B,KAAKgmyB,kBAAkBxrwB,GAAS,GAEpCwrwB,kBAAkBxrwB,EAASyrwB,GACvB1sf,GAAO,CACH/+Q,QAASA,EACTolC,MAAO,KACRqmuB,EAAY,UAAY,QAAS,KAExCtC,iBAAiBuC,GACblmyB,KAAKilyB,UAAU7srB,UAAUj0G,KAAK,KAAO+hyB,GAAqBlmyB,KAAKu1wB,eAAen9pB,WAElFqsrB,oBACI,IAAI0B,EAAcnmyB,KAAKszD,OAAO,YAAY6yuB,YACtCzzxB,EAAS1S,KAAK09nB,YAAYosI,iBAAiBq8B,GAC/C,YAAKC,uCAAuC1zxB,GACxC1S,KAAKszD,OAAO,+BACZ5gD,KAASmhE,OAAKnhE,GAAQvO,KAAKkwD,GAASr0D,KAAKqmyB,0BAA0BhyuB,KAEhE3hD,EAEX0zxB,uCAAuCluB,GACnC,GAAKl4wB,KAAK+hyB,mBAGV,MAAKA,oBAAqB,EAC1B,IAAIzqqB,EAAmBt3H,KAAKszD,OAAO,oBAC/BgkE,EAAiB7yH,OAAS,IAC1BovE,SAAKqksB,GAAahksB,KAAK7f,IACnB,IAAIgjE,ElC9SS,EAACozoB,EAAW1xvB,KACrC,IAAIutxB,EAAU,GACdvtxB,EAAK/S,QAAQmM,IACTm0xB,EAAQn0xB,GAAO,OAEnBs4vB,EAAUzkwB,QAAQivmB,IACd,IAAI9imB,EAAM8imB,EAAS0pJ,SAASxsvB,IACxB9F,OAAO8tB,UAAUjnB,eAAeknB,KAAKkswB,EAASn0xB,KAC9Cm0xB,EAAQn0xB,GAAO8imB,KAGvB,IAAIvimB,EAAS,GACbqG,SAAK/S,QAAQmM,IACT,IAAI8imB,EAAWqxL,EAAQn0xB,GACnB8imB,GACAvimB,EAAOrJ,KAAK4rmB,KAGbvimB,GkC4RyB6zxB,CAAgBlyuB,EAAOijE,GACvCD,EAAc5yH,OAAS,GACvBzE,KAAK2lyB,eAAetuqB,MAKpCgvqB,0BAA0BhyuB,GACtB,IAAImyuB,EAAcxmyB,KAAKy0wB,uBACvB,GAAI+xB,EAAY7nC,SAASp1I,SACrB,OAAOl1jB,EAEX,IAAIo3sB,EAAgB+6B,EAAY7nC,SAAS3B,cACzCyO,EAAcwG,gBAAiB,EAC/BxG,EAAcpowB,KAAO,KACrBoowB,EAAcjP,aAAe,KAC7BiP,EAAct5vB,IAAM,GAAG0P,OA9TG,mDA8TiCA,OAAO2kxB,EAAY7nC,SAASxsvB,KACvF,IAAIowvB,EAAY,IAAIlusB,GACpBkusB,SAAU/guB,QAAQ,CACdm9tB,SAAU8M,EACV95nB,KAAM,iBAEH4wnB,EAEX8P,sBAAsBwB,EAAU79vB,GAC5B,IAAIywxB,EACA72uB,EAAY4rsB,GAAiB,GAAIxlvB,EAAG,CAAC,gBAAiB,SAAU,UACpE45C,GAAYvwC,QAAOuwC,EAAW,CAC1BiktB,SAAUA,EACVvU,eAAgB,QAAUmnC,EAAczwxB,EAAEsuG,gBAAa,WAAyB,EAASmirB,EAAY9nC,SACrG+nC,gBAAiB1wxB,EAAE+7qB,iBAEvB/xrB,KAAKqwN,SAAS2jjB,qBAAqBpktB,GACnC55C,EAAEqoD,QAAS6oC,SAAct3C,EAAUyO,QAAQ,GAE/ColuB,sBAAsBjqB,GAClB,IAAI/qrB,EAAOzuF,KAAKszD,OAAO,sBACnBwpsB,KAAYtkvB,OAAWi2E,GAAQA,EAAK+qrB,EAAS7a,UAAY6a,EAAS7a,SAAS7B,UAC/E,OAAIA,EACO,CACHA,UAAWA,EACXl4pB,SAxV+Bs8rB,wCA2VhC,CACHpkC,UAAW0c,EAAS7noB,MAG5Bp9C,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtCoysB,mBAAoB,KACpB/9K,YAAa,GACb8+I,gBAAiB,GACjBk/B,eAAgB5mrB,UAA2B,mCAC3CmlB,cAAe,WACf7N,iBAAkB,GAClBigpB,oBAAgB,EAChBtnnB,QAAS,CACL57F,MAAO,CAAC,cAAe,SAAU,SAAU,aAAc,CACrDhxD,KAAM,YACN4P,SAAU,SACX,WACH28J,mBAAoB,CAAC,WAAY,YAAa,OAAQ,OAAQ,SAAU,YAAa,SAAU,iBAAkB,CAC7GvsK,KAAM,YACN4P,SAAU,SACX,YAEP8kiB,YAAa,CACT1jf,MAAO,CAAC,SAAU,SAAU,SAAU,OAAQ,OAAQ,SAAU,UAAW,aAE/EwyuB,SAAU,CACNrf,QAAS,CACL5/nB,QAAS,CAAC,YAAa,OAAQ,eAAgB,SAEnD34I,KAAM,UACNk3xB,aAAa,EACbW,kBAAkB,GAEtBC,mBAAoB,KACpB3rB,uBAAwB,KACxBjhE,uBAAwB,KACxB65D,qBAAsB,KACtBgzB,0BAA2B,KAC3BC,qBAAsB,KACtBjwqB,mBAAoB,KACpB9R,qBAAsB,KACtB49qB,mBAAoB,KACpB8C,gBAAiB,KACjB55B,oBAAqB,KACrBC,mBAAoB,KACpBM,eAAgB,KAChBC,cAAe,KACfhnoB,eAAgB,KAChBC,cAAe,KACfmnoB,cAAe,KACfC,aAAc,KACdJ,aAAc,KACdC,YAAa,KACbW,gBAAiB,KACjBC,eAAgB,KAChBC,kBAAmB,KACnB3zC,sBAAuB,GACvB+J,OAAQ,CACJ9J,YAAa,EACb3B,UAAW,KAEfi5C,aAAa9xvB,QAAO,GAAI4xvB,KACxBi2B,cAAe,CACXC,WAAW,EACXC,WAAW,KAIvB9zuB,OAAO1hC,EAAShlB,GACZ,IAAIy6xB,EAAiBl4sB,GAAiBv9D,EAAShlB,GAC3C06xB,EAAWvnyB,UAAU0E,OAAS,GAAK,cAAagH,OAAKmmB,GACrD01G,EAAkBjkI,IAAQqa,SAAU2pxB,EAAehkyB,IACnDkkyB,EAAuBlkyB,IACvB,IAAKikI,EAAgBjkI,GACjB,OAAO,EAEX,IAAIgzB,EAAgBr2B,KAAKszD,OAAOjwD,GAEhC,OAAQsZ,GAAO0Z,EADHgxwB,EAAehkyB,KAG/B,OAAKikyB,GAAYhgqB,EAAgB,wBAC7BtnI,KAAKohyB,wBAA0B,IAAI5ttB,OAC/B+ztB,EAAqB,gBAAkBA,EAAqB,sBAC5DvnyB,KAAKqhyB,4BAA6B,IAGnCvhyB,MAAMwzD,UAAUvzD,WAE3Bw2F,eAAe59E,GACX,IAAItV,EAAOsV,EAAKtV,KAChB,OAAQA,OACC,cACD,IAAImkyB,EAAa,KACbxnyB,KAAKqhyB,4BAA6B,EAC3BrhyB,KAAK09nB,YAAYkqI,eAAejvvB,EAAK/L,QAEhD5M,KAAKqhyB,4BAA6B,EAClCrhyB,KAAKohyB,wBAA0BphyB,KAAKohyB,wBAAwBj9xB,KAAKqjyB,GAAcA,IAC/E,UACC,kBACD,IAAIC,EAAc,KACdznyB,KAAKqhyB,4BAA6B,EAC3BrhyB,KAAK09nB,YAAYiqI,qBAAqBhvvB,EAAK/L,QAEtD5M,KAAKqhyB,4BAA6B,EAClCrhyB,KAAKohyB,wBAA0BphyB,KAAKohyB,wBAAwBj9xB,KAAKsjyB,GAAeA,IAChF,UACC,oBACIznyB,KAAKgiyB,0BAA4BhiyB,KAAKilyB,WACvCjlyB,KAAKilyB,UAAU3xuB,OAAO,mBAAoB36C,EAAK/L,OAEnD,UACC,kBACI5M,KAAK+2wB,4BAA8B/2wB,KAAKilyB,WACzCjlyB,KAAKilyB,UAAU3xuB,OAAO,iBAAkB36C,EAAK/L,OAEjD,UACC,iBACD5M,KAAK09nB,YAAY6yI,YAAY53vB,EAAK/L,OAClC5M,KAAK4jG,cACL,UACC,qBACI5jG,KAAKqhyB,6BACNrhyB,KAAKohyB,wBAA0B,IAAI5ttB,OAEvC,IAAIkprB,EAAW18vB,KAAKqhyB,gCAA6B,EAASrhyB,KAAKszD,OAAO,mBACtEtzD,KAAK09nB,YAAY8qI,eAAe7vvB,EAAK/L,MAAO8vvB,GAAUv4vB,KAAK,IAAMnE,KAAKohyB,wBAAwBvtwB,WAAWigD,OAAO,KAC5G9zE,KAAKohyB,wBAA0B,KAC/BphyB,KAAKquG,YAET,UACC,wBACDruG,KAAK09nB,YAAYyqI,yBAAyBxvvB,EAAK/L,OAC/C5M,KAAK4jG,cACL,UACC,SACD5jG,KAAK09nB,YAAY0qI,iBAAiBpowB,KAAKszD,OAAO,WAC9CtzD,KAAK4jG,cACL,UACC,cACD5jG,KAAKszwB,gBAAgB1B,kBAAkB5xwB,KAAKszD,OAAO,gBACnDtzD,KAAKikyB,0BAA0BhwB,8BAC/Bj0wB,KAAKukyB,qBAAqBtwB,8BAC1Bj0wB,KAAK2gjB,SAAS4jO,wBACdvkxB,KAAKgkyB,wBACL,UACC,oBACA,yBACA,yBACDhkyB,KAAK4jG,cACL,UACC,WACG,kBAAoBjrF,EAAKu6C,SACzBlzD,KAAK8lyB,YAAYntxB,EAAK/L,OAEtB5M,KAAK4jG,cAET,UACC,UACD,IAAI4gI,EAAiB,GACjB,YAAc7rN,EAAKu6C,WACfv6C,EAAK/L,MAAMynD,QACXmwK,EAAe4/iB,aAAezrwB,EAAK/L,MAAMynD,OAEzC17C,EAAK/L,MAAMgjK,qBACX40D,EAAe2miB,UAAYxyvB,EAAK/L,MAAMgjK,qBAG1C,MAAW18G,SAAS1gD,QAAQ,mBAC5BgyN,EAAe4/iB,aAAepkxB,KAAKszD,OAAO,kBAE1C,IAAM36C,EAAKu6C,SAAS1gD,QAAQ,gCAC5BgyN,EAAe2miB,UAAYnrwB,KAAKszD,OAAO,+BAE3CtzD,KAAK2gjB,SAASrtf,OAAOkxK,GACrB,UACC,cACD,GAAI,gBAAkB7rN,EAAKu6C,UAAYv6C,EAAK/L,MAAMynD,OAAS,MAAWnB,SAAS1gD,QAAQ,qBAAsB,CACzG,IAAImgwB,EAAmB3ywB,KAAKszD,OAAO,qBACnCtzD,KAAKikyB,0BAA0B3wuB,OAAO,QAASq/sB,GAC/C3ywB,KAAKukyB,qBAAqBjxuB,OAAO,QAASq/sB,GAE9C,UACC,gBACD3ywB,KAAKs5xB,qBAAqBhmuB,OAAO,oBAAqBtzD,KAAKszD,OAAO,4BAClEtzD,KAAKs5xB,qBAAqBhmuB,OAAO,wBAAyBtzD,KAAKszD,OAAO,4BACtE,UACC,6BACA,2BACA,gCACA,2BACA,yBACA,2BACA,yBACA,kBACDtzD,KAAKqwN,SAAShtN,GAAQrD,KAAKo2F,sBAAsB/yF,GACjD,UACC,0BACA,yBACA,qBACA,oBACA,qBACA,oBACA,oBACA,mBACA,mBACA,kBACA,sBACA,qBACA,oBACDrD,KAAKqwN,SAAS22V,QAAQ3jjB,GAAQrD,KAAKo2F,sBAAsB/yF,GACzD,UACC,aACDrD,KAAKqjyB,SAASxK,gBAAgBlgxB,EAAK/L,OACnC9M,MAAMy2F,eAAe59E,GACrB,cAEA7Y,MAAMy2F,eAAe59E,IAGjC82M,eACIzvN,KAAKqwN,SAAW,CACZ8pf,uBAAwBn6sB,KAAKo2F,sBAAsB,0BACnD49qB,qBAAsBh0wB,KAAKo2F,sBAAsB,wBACjD4wsB,0BAA2BhnyB,KAAKo2F,sBAAsB,6BACtD6wsB,qBAAsBjnyB,KAAKo2F,sBAAsB,wBACjD4gC,mBAAoBh3H,KAAKo2F,sBAAsB,sBAC/C8uB,qBAAsBllH,KAAKo2F,sBAAsB,wBACjD0ssB,mBAAoB9iyB,KAAKo2F,sBAAsB,sBAC/CwvsB,gBAAiB5lyB,KAAKo2F,sBAAsB,mBAC5C4wd,QAAS,CACLglN,oBAAqBhswB,KAAKo2F,sBAAsB,uBAChD61qB,mBAAoBjswB,KAAKo2F,sBAAsB,sBAC/Cm2qB,eAAgBvswB,KAAKo2F,sBAAsB,kBAC3Co2qB,cAAexswB,KAAKo2F,sBAAsB,iBAC1CovC,eAAgBxlI,KAAKo2F,sBAAsB,kBAC3CqvC,cAAezlI,KAAKo2F,sBAAsB,iBAC1Cw2qB,cAAe5swB,KAAKo2F,sBAAsB,iBAC1Cy2qB,aAAc7swB,KAAKo2F,sBAAsB,gBACzCq2qB,aAAczswB,KAAKo2F,sBAAsB,gBACzCs2qB,YAAa1swB,KAAKo2F,sBAAsB,eACxCi3qB,gBAAiBrtwB,KAAKo2F,sBAAsB,mBAC5Ck3qB,eAAgBttwB,KAAKo2F,sBAAsB,kBAC3Cm3qB,kBAAmBvtwB,KAAKo2F,sBAAsB,uBAI1Ds7qB,eAAeC,GACX,OAAO3xwB,KAAKszwB,gBAAgB5B,eAAeC,GAE/CyyB,qBAAqBriC,EAAeyH,GAChCxpwB,KAAK09nB,YAAY6rI,oBAAoBxH,EAAeyH,GAExDiL,uBACI,OAAOz0wB,KAAK09nB,YAAYurI,sBAE5Bu4B,yBAAyBjpK,GACrB,IACIj9G,WAAYA,GACZi9G,EACJv4nB,KAAK09nB,YAAc19nB,KAAK09nB,aAAepiH,EACvCt7gB,KAAK0nyB,0BAEThG,eAAe5oK,GACX,IACI/kiB,UAAWA,GACX+kiB,EACAlnmB,EAAU,KzB5nBN,eyB6nBJmiE,IACAniE,EAAU,CACN2lvB,eAAgBv3wB,KAAKiiyB,gBACrB3qqB,iBAAkBt3H,KAAKszD,OAAO,qBAElCtzD,KAAKiiyB,qBAAkB,GAE3BjiyB,KAAKilyB,UAAU7srB,QAAQxmF,EAASmiE,GAEpC6tsB,8BACI,IAAI33B,EAAmBjqwB,KAAKy0wB,uBAC5Bz0wB,KAAK0nyB,0BACL1nyB,KAAKqwN,SAAS22kB,0BAA0B,CACpC59B,UAAWa,EAAiBtL,WAGpC+oC,0BACI,IAAIz9B,EAAmBjqwB,KAAKy0wB,uBACxBz0wB,KAAKu1wB,gBACLv1wB,KAAKu1wB,eAAeiB,yBAEpBx2wB,KAAKqlyB,cACLrlyB,KAAKqlyB,aAAa97B,oBAAoBU,GAE1CjqwB,KAAK8hyB,sBAETA,sBACI,IAAI9hyB,KAAKqhyB,2BAGT,KAAIz4K,EAAc5onB,KAAK09nB,YAAYyrI,iBAC/BzB,EAAkB1nwB,KAAK09nB,YAAY4rI,qBACnC13uB,EAAU,GACV5xB,KAAKszD,OAAO,iBAAmBs1jB,IAC/Bh3lB,EAAQg3lB,YAAcA,IAErB13jB,SAAalxD,KAAKszD,OAAO,mBAAoBo0sB,KAC9C91uB,EAAQ81uB,gBAAkBA,IAEzBt4qB,SAAcx9D,IACf5xB,KAAKszD,OAAO1hC,IAGpB04uB,eAAeC,EAAqBC,GAChC,OAAOxqwB,KAAK09nB,YAAY4sI,eAAeC,EAAqBC,GAEhEg5B,wBACI,OAAOxjyB,KAAKilyB,UAAYjlyB,KAAKilyB,UAAUtrqB,mBAAqB,GAEhEvhB,UACI,OAAOp4G,KAAK0xwB,eAAe,WAE/BzI,sBACI,IAAIlH,EAAgB/hwB,KAAKy0wB,uBACzB,OAAO1S,GAAiBA,EAAcpD,UAAY,KAEtDhloB,mBACI,OAAO35H,KAAKwjyB,wBAAwB9ixB,IAAIu0lB,GAAYA,EAAS0pJ,UAEjEkmC,sBAAsB8C,GAClB,IACIx7B,aAAcA,GACdw7B,EACAhpC,EAAWwN,EAAaxN,SAC5B,GAAKA,EAASrC,YAAd,CAMIqC,EAASsT,iBACTjywB,KAAKiiyB,gBAAkBjiyB,KAAKy0wB,uBAAuB9V,SAASxsvB,KAEhE,IAAIy1xB,EAAsBjpC,EAASsT,eAAiBjywB,KAAKy0wB,uBAAuB3W,gBAAkBqO,EAClGnswB,KAAKokyB,qBAAqBwD,GACtBA,GACA5nyB,KAAKu1wB,eAAee,6BAA6BsxB,EAAoB9pC,iBAAiB,QAXtF99vB,KAAKqwN,SAAS42kB,qBAAqB,CAC/Bnld,KAAM68a,WChKhBkpC,UAAN,SAEmBA,SAAoBphyB,UAAO,SAAqCP,GAAK,OAAO,IAAKA,GAAK2hyB,IACtFA,EAAoB5yxB,UAAiCtO,MAAoB,CAAE8E,KAAMo8xB,IACjFA,EAAoB3yxB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC5F+1I,GACAzG,GACA8V,IACA5M,IACApD,GACA6U,IACAkB,IACA2P,GACAnc,IACAgd,IACA72G,GACA1H,IACD24F,GACHzG,GACA8V,IACA5M,IACApD,GACA6U,IACAkB,IACA2P,GACAnc,IACAgd,IACAv+G,MA3BFs1uB,MCrjBN,MAAM/5gB,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAM0ixB,IAC9BjjyB,OAAO,OAMLijyB,SAAN,gBAAsC5xuB,GAClCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,aAAcsI,KAAM,gBACjC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,qCACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnBq6tB,kBACA,OAAOr6tB,KAAKozD,WAAW,eAEvBinqB,gBAAYzttB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/ByrtB,aACA,OAAOr4tB,KAAKozD,WAAW,UAEvBilqB,WAAOzrtB,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1Bk8F,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC2rtB,qBACA,OAAOv4tB,KAAKozD,WAAW,kBAEvBmlqB,mBAAe3rtB,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCgttB,4BACA,OAAO55tB,KAAKozD,WAAW,yBAEvBwmqB,0BAAsBhttB,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCsrtB,gBACA,OAAOl4tB,KAAKozD,WAAW,aAEvB8kqB,cAAUtrtB,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B6rtB,oBACA,OAAOz4tB,KAAKozD,WAAW,iBAEvBqlqB,kBAAc7rtB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B8rtB,eACA,OAAO14tB,KAAKozD,WAAW,YAEvBslqB,aAAS9rtB,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC44J,gBACA,OAAOxlK,KAAKozD,WAAW,aAEvBoyG,cAAU54J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BmttB,kCACA,OAAO/5tB,KAAKozD,WAAW,+BAEvB2mqB,gCAA4BnttB,GAC5B5M,KAAK6yD,WAAW,8BAA+BjmD,GAM/CottB,gCACA,OAAOh6tB,KAAKozD,WAAW,6BAEvB4mqB,8BAA0BpttB,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7CqttB,gCACA,OAAOj6tB,KAAKozD,WAAW,6BAEvB6mqB,8BAA0BrttB,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7CypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3Bunf,gBACA,OAAOn0f,KAAKozD,WAAW,aAEvB+gc,cAAUvnf,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BittB,kBACA,OAAO75tB,KAAKozD,WAAW,eAEvBymqB,gBAAYjttB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BkttB,kBACA,OAAO95tB,KAAKozD,WAAW,eAEvB0mqB,gBAAYlttB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BukI,eACA,OAAOnxI,KAAKozD,WAAW,YAEvB+9E,aAASvkI,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBy0T,eACA,OAAOrhU,KAAKozD,WAAW,YAEvBiuQ,aAASz0T,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B+rtB,2BACA,OAAO34tB,KAAKozD,WAAW,wBAEvBulqB,yBAAqB/rtB,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BurtB,uBACA,OAAOn4tB,KAAKozD,WAAW,oBAEvB+kqB,qBAAiBvrtB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC4rtB,mBACA,OAAOx4tB,KAAKozD,WAAW,gBAEvBolqB,iBAAa5rtB,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BkstB,2BACA,OAAO94tB,KAAKozD,WAAW,wBAEvB0lqB,yBAAqBlstB,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxCwrtB,uBACA,OAAOp4tB,KAAKozD,WAAW,oBAEvBglqB,qBAAiBxrtB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCwttB,kBACA,OAAOp6tB,KAAKozD,WAAW,eAEvBgnqB,gBAAYxttB,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BsstB,uBACA,OAAOl5tB,KAAKozD,WAAW,oBAEvB8lqB,qBAAiBtstB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCgstB,sBACA,OAAO54tB,KAAKozD,WAAW,mBAEvBwlqB,oBAAgBhstB,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCistB,0BACA,OAAO74tB,KAAKozD,WAAW,uBAEvBylqB,wBAAoBjstB,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvCuttB,iBACA,OAAOn6tB,KAAKozD,WAAW,cAEvB+mqB,eAAWvttB,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BqstB,oBACA,OAAOj5tB,KAAKozD,WAAW,iBAEvB6lqB,kBAAcrstB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCostB,mBACA,OAAOh5tB,KAAKozD,WAAW,gBAEvB4lqB,iBAAapstB,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCmstB,iBACA,OAAO/4tB,KAAKozD,WAAW,cAEvB2lqB,eAAWnstB,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B0rtB,gBACA,OAAOt4tB,KAAKozD,WAAW,aAEvBklqB,cAAU1rtB,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACP0zC,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIm2wB,GAAevgyB,EAASoqB,GAEvChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,wBAAyBv8I,GAC3Cj2B,KAAKwyK,aAAa,mBAAoBv8I,GACtCj2B,KAAKwyK,aAAa,QAASv8I,GAE/Bu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,yBAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBk7xB,SAAwBrhyB,UAAO,SAAyCP,GAAK,OAAO,IAAKA,GAAK4hyB,GAAyBnhyB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACrak0xB,EAAwBh8vB,UAAiCnlC,MAAqB,CAAE8E,KAAMq8xB,EAAyB9hxB,UAAW,CAAC,CAAC,qBAAsBioQ,aAAc,SAA8Cv5N,EAAIv9C,GAAgB,EAALu9C,GACxO/tD,MAAc,cAAe,SAAgEkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAzHluB,CAAqI,SAAU,SAA2DkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MACtOK,OAAQ,CAAEmlsB,YAAa,cAAehC,OAAQ,SAAUvvnB,UAAW,YAAaJ,mBAAoB,qBAAsB6vnB,eAAgB,iBAAkBqB,sBAAuB,wBAAyB1B,UAAW,YAAaO,cAAe,gBAAiBrwsB,SAAU,WAAYswsB,SAAU,WAAYv3nB,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB48D,UAAW,YAAau0jB,4BAA6B,8BAA+BC,0BAA2B,4BAA6BC,0BAA2B,4BAA6B5jkB,QAAS,UAAWoP,QAAS,UAAW0uV,UAAW,YAAa0lO,YAAa,cAAeC,YAAa,cAAe3olB,SAAU,WAAY9tI,KAAM,OAAQg+T,SAAU,WAAY7yO,SAAU,WAAYmqoB,qBAAsB,uBAAwBl0pB,WAAY,aAAc0zpB,iBAAkB,mBAAoBK,aAAc,eAAgB3ppB,SAAU,WAAYiqpB,qBAAsB,uBAAwBV,iBAAkB,mBAAoBgC,YAAa,cAAelB,iBAAkB,mBAAoBN,gBAAiB,kBAAmBC,oBAAqB,sBAAuBsB,WAAY,aAAclB,cAAe,gBAAiBD,aAAc,eAAgBD,WAAY,aAAcT,UAAW,YAAa3xjB,gBAAiB,kBAAmBC,iBAAkB,mBAAoBG,iBAAkB,mBAAoBn6J,MAAO,QAASmiE,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE86kB,aAAc,eAAgBxwnB,eAAgB,iBAAkBjU,YAAa,cAAegloB,gBAAiB,kBAAmBC,gBAAiB,kBAAmBL,gBAAiB,kBAAmB9koB,cAAe,gBAAiBC,gBAAiB,kBAAmB8koB,WAAY,aAAcE,gBAAiB,kBAAmBJ,WAAY,aAAcG,cAAe,gBAAiBJ,gBAAiB,kBAAmB1kkB,eAAgB,iBAAkBszoB,kBAAmB,oBAAqBC,aAAc,eAAgBr1nB,gBAAiB,kBAAmBC,yBAA0B,2BAA4Bq1nB,qBAAsB,uBAAwBC,4BAA6B,8BAA+BC,gBAAiB,kBAAmBC,oBAAqB,sBAAuBn1nB,eAAgB,iBAAkBo1nB,eAAgB,iBAAkBn1nB,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bk7G,gBAAiB,kBAAmB+5gB,kCAAmC,oCAAqCC,gCAAiC,kCAAmCC,gCAAiC,kCAAmCh6gB,cAAe,gBAAiBC,cAAe,gBAAiBg6gB,gBAAiB,kBAAmBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBh1nB,eAAgB,iBAAkBo7G,WAAY,aAAc65gB,eAAgB,iBAAkBz5gB,eAAgB,iBAAkB05gB,2BAA4B,6BAA8B/0nB,iBAAkB,mBAAoBg1nB,uBAAwB,yBAA0BC,mBAAoB,qBAAsB50nB,eAAgB,iBAAkB60nB,2BAA4B,6BAA8BC,uBAAwB,yBAA0BC,kBAAmB,oBAAqBC,uBAAwB,yBAA0BC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBC,oBAAqB,sBAAuBC,mBAAoB,qBAAsBC,iBAAkB,mBAAoBC,gBAAiB,kBAAmB95gB,sBAAuB,wBAAyBC,uBAAwB,yBAA0BG,uBAAwB,yBAA0Bl7H,YAAa,cAAe1K,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACnlI2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA0C4F,EAAIv9C,KAAUzL,cAAe,IA3nBnKo8xB,MAy3BA8B,UAAN,SAEmBA,SAAqBnjyB,UAAO,SAAsCP,GAAK,OAAO,IAAKA,GAAK0jyB,IACxFA,EAAqB30xB,UAAiCtO,MAAoB,CAAE8E,KAAMm+xB,IAClFA,EAAqB10xB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC7F8kD,GACA1H,IACDA,MAPLq3uB,MCj4BN,MAAM97gB,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMykxB,KAC9BhlyB,OAAO,OAMLglyB,UAAN,gBAAuC3zuB,GACnCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,iBAAkBsI,KAAM,oBACrC,CAAEtI,UAAW,kBAAmBsI,KAAM,qBACtC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,qCACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,oCACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCsnJ,8BACA,OAAOl0J,KAAKozD,WAAW,2BAEvB8gG,4BAAwBtnJ,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3CunJ,uBACA,OAAOn0J,KAAKozD,WAAW,oBAEvB+gG,qBAAiBvnJ,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B61G,aACA,OAAOziH,KAAKozD,WAAW,UAEvBqvD,WAAO71G,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BwnJ,kCACA,OAAOp0J,KAAKozD,WAAW,+BAEvBghG,gCAA4BxnJ,GAC5B5M,KAAK6yD,WAAW,8BAA+BjmD,GAM/Ci8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCynJ,iCACA,OAAOr0J,KAAKozD,WAAW,8BAEvBihG,+BAA2BznJ,GAC3B5M,KAAK6yD,WAAW,6BAA8BjmD,GAM9C0nJ,sBACA,OAAOt0J,KAAKozD,WAAW,mBAEvBkhG,oBAAgB1nJ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC2nJ,oBACA,OAAOv0J,KAAKozD,WAAW,iBAEvBmhG,kBAAc3nJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHqwI,+BACA,OAAO70J,KAAKozD,WAAW,oBAEvByhG,6BAAyBjoJ,GACzB5M,KAAKm0D,YAAY,mBAAoBvnD,GAErCkoJ,qBACA,OAAO90J,KAAKozD,WAAW,UAEvB0hG,mBAAeloJ,GACf5M,KAAKm0D,YAAY,SAAUvnD,GAE/BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIk4wB,IAAgBtiyB,EAASoqB,GAExChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,mBAAoBv8I,GACtCj2B,KAAKwyK,aAAa,SAAUv8I,GAC5Bj2B,KAAKwyK,aAAa,kBAAmBv8I,GAEzCu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKsyK,KAAKz3G,QAAQ,UAClB76D,KAAKsyK,KAAKz3G,QAAQ,mBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBi9xB,SAAyBpjyB,UAAO,SAA0CP,GAAK,OAAO,IAAKA,GAAK2jyB,GAA0BljyB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACxai2xB,EAAyB/9vB,UAAiCnlC,MAAqB,CAAE8E,KAAMo+xB,EAA0B7jxB,UAAW,CAAC,CAAC,sBAAuBk4H,eAAgB,SAAiDxpF,EAAIv9C,EAAKgnI,GAG5O,GAHiQ,EAALzpF,IAC1P/tD,MAAkBw3I,EAAUwN,GAA6B,GACzDhlJ,MAAkBw3I,EAAUkP,GAAmB,IACxC,EAAL34F,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI09I,yBAA2BzW,GAC5Ez3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI29I,eAAiB1W,KACjE6vI,aAAc,SAA+Cv5N,EAAIv9C,GAAgB,EAALu9C,GAC7E/tD,MAAc,cAAe,SAAiEkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAA1HluB,CAAsI,SAAU,SAA4DkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MACxOK,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsBwrD,wBAAyB,0BAA2BC,iBAAkB,mBAAoB/rI,SAAU,WAAY+4E,YAAa,cAAeshB,OAAQ,SAAU2xC,4BAA6B,8BAA+BvrD,kBAAmB,oBAAqBwrD,2BAA4B,6BAA8BC,gBAAiB,kBAAmBx0F,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB2rD,cAAe,gBAAiB9vF,WAAY,aAAcoK,SAAU,WAAYjiE,MAAO,QAASmiE,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAe8/D,iBAAkB,mBAAoBC,kBAAmB,oBAAqBjgE,cAAe,gBAAiBC,gBAAiB,kBAAmBigE,eAAgB,iBAAkBke,gBAAiB,kBAAmBC,yBAA0B,2BAA4Bk3nB,8BAA+B,gCAAiCC,uBAAwB,yBAA0B92nB,eAAgB,iBAAkBC,kBAAmB,oBAAqB82nB,aAAc,eAAgBC,kCAAmC,oCAAqC92nB,wBAAyB,0BAA2B+2nB,iCAAkC,mCAAoCC,sBAAuB,wBAAyB/5oB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2B+2nB,oBAAqB,sBAAuBt2nB,iBAAkB,mBAAoBK,eAAgB,iBAAkBrf,YAAa,cAAe1K,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACvwD2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA2C4F,EAAIv9C,KAAUzL,cAAe,IA7TpKm+xB,MA2bAS,UAAN,SAEmBA,SAAsB7jyB,UAAO,SAAuCP,GAAK,OAAO,IAAKA,GAAKokyB,IAC1FA,EAAsBr1xB,UAAiCtO,MAAoB,CAAE8E,KAAM6+xB,IACnFA,EAAsBp1xB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC9Fy2I,GACA0B,GACAmK,GACAgG,GACAxI,GACAoD,GACAp+F,GACA1H,IACDq5F,GACH0B,GACAmK,GACAgG,GACAxI,GACAoD,GACA9lG,MAnBF+3uB,MC2JAC,UAAN,SAEmBA,SAAa9jyB,UAAO,SAA8BP,GAAK,OAAO,IAAKA,GAAKqkyB,IACxEA,EAAat1xB,UAAiCtO,MAAoB,CAAE8E,KAAM8+xB,IAC1EA,EAAar1xB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACrF8wI,GACAxB,GACAsX,GACAvZ,GACA4oB,GACAxnB,GACAqB,GACAhrF,GACA1H,IACD0zF,GACHxB,GACAsX,GACAvZ,GACA4oB,GACAxnB,GACAqB,GACA1yF,MArBFg4uB,MCzmBN,IACIC,IADAC,GAAa,GAKV,aAAsBpnyB,EAAMqC,EAAUglyB,GACzCD,GAAWpnyB,GAAQqC,EACfglyB,IACAF,IAAmBC,GAAWpnyB,ICVtC,UAAe,CACXsnyB,WAAY,SAASv+xB,GACjB,IAAI0zD,EAAS,EAAI1zD,EAAK3H,OACtB,OAAO2H,EAAKsU,IAAK,SAAS9T,EAAO2F,EAAOk4E,GACpC,IAAIopG,EAAYppG,EAAMl4E,EAAQ,GAAKk4E,EAAMl4E,EAAQ,GAAKk4E,EAAMl4E,GAC5D,MAAO,CANN,GAMgB3F,EAAQ,EAAGkzD,EAASvtD,EANpC,GAMoD3F,EAAQ,EAAGkzD,EAASvtD,EANxE,GAMwFshL,EAAY,EAAG/zH,GAAUvtD,EAAQ,GANzH,GAMsIshL,EAAY,EAAG/zH,GAAUvtD,EAAQ,OAGhLq4xB,gBAAiB,SAASv2uB,GACtB,IAAI75C,EAAM65C,EAAM9gC,OAAQ,SAAS/Y,EAAKoC,GAClC,OAAOrC,KAAKC,IAAIoC,EAAKhQ,MAAO4N,IAC5B65C,EAAM,IAAMA,EAAM,GAAGznD,OAAS,GAClC,OAAOynD,EAAM3zC,IAAK,SAAS9D,GACvB,OAAOA,EAAKhQ,MAAQ4N,MCdhC,IAAI62Q,IAAS,CAAC,SAAU,QAAS,YAAa,aAK9C,YAAqB77I,EAAOjtI,EAAOsiyB,GAC/B,IAAI1ttB,EAAS50E,EAAM40E,OACf2ttB,EAAaD,EAAU1ttB,OACvB4ttB,GAAgBrtxB,SAAUy/D,EAAOpO,SAAWoO,EAAOpO,QAAU+7tB,EAAW/7tB,QACxE03I,KAAc/oM,OAAUy/D,EAAOvd,OAASud,EAAOvd,MAAQkruB,EAAWlruB,MACtE,MAAO,CACHy9B,KAAMm4C,EACNqtK,SAAUt6S,EAAMs6S,SAChBkF,OAAQ5qO,EAAOq4D,OAASs1pB,EAAWt1pB,MACnC,eAAgBu1pB,EAAgBtklB,EAAc,GAItD,aAAcjuH,EAAQ5mE,GAClB,IAAIxlB,EAAOwlB,EAAQxlB,KACnBpM,KAAKk7F,KAAO,EACZl7F,KAAKw4F,OAASA,EACdx4F,KAAK2oW,OAAS/2U,EAAQ+2U,OACtB3oW,KAAKo1I,SAAWhpI,EAAKgpI,SACrBp1I,KAAK4M,MAAQR,EAAKQ,MAClB5M,KAAKoM,KAAOA,EAAKmwT,SACjBv8T,KAAK2rW,QAAU/5U,EAAQ+5U,QACvB3rW,KAAK6L,GAAK+lB,EAAQ/lB,GAClB7L,KAAKw1I,MAAQ5jH,EAAQ4jH,MACrBx1I,KAAKqxR,OAAS,CACVC,OAAQyzD,GAAYnzT,EAAQ4jH,MAAO5jH,EAAQo5wB,YAAap5wB,EAAQo5wB,aAChEp+rB,MAAOm4O,GAAYnzT,EAAQ4jH,MAAO5jH,EAAQo5wB,YAAY9ypB,WAAYtmH,EAAQo5wB,aAC1Eh1lB,UAAW+uI,GAAYnzT,EAAQ4jH,MAAO5jH,EAAQo5wB,YAAY7xpB,eAAgBvnH,EAAQo5wB,cAG1FC,IAAK9wwB,UAAY,CACbqgB,SAAU,WACN,OAAO62O,IAAOrxR,KAAKk7F,OAEvBgwsB,eAAgB,WACZ,OAAOlryB,KAAKqxR,OAAOC,QAEvB65gB,SAAU,WACNnryB,KAAK4sG,OAAM,IAEfA,MAAO,SAAS1zE,IACPl5B,KAAKw4F,OAAOplC,WAAW,gBAAgB,IAASl6B,IAAUl5B,KAAK44S,cAGpE54S,KAAKw4F,OAAO4ysB,WACZlywB,GAASl5B,KAAKw4F,OAAOy9M,aACrBj2S,KAAKglM,SAAS,EAAG9rK,GACjBl5B,KAAKw4F,OAAOs8M,cAAc,eAAgB,CACtCl4R,KAAM5c,OAEVA,KAAKw4F,OAAO6ysB,YAEhBrmmB,SAAU,SAAS9pG,EAAMhiE,GACjBA,EACAl5B,KAAKk7F,MAAQA,EAEbl7F,KAAKk7F,OAASA,EAElBl7F,KAAKw4F,OAAO2mP,yBAEhB1oO,OAAQ,SAASv9E,GACb,IAAIjqB,EAAOjP,KAAKw4F,OAAOplC,WAAW,iBAAiB,GAC/C,YAAmBl6B,IAAUl5B,KAAK+jI,eAGtC/jI,KAAKw4F,OAAO4ysB,WACRlywB,GAAS,aAAejqB,GACxBjP,KAAKw4F,OAAOgqC,iBAEhBxiI,KAAKglM,SAAS,EAAG9rK,GACjBl5B,KAAKw4F,OAAOs8M,cAAc,mBAAoB,CAC1Cl4R,KAAM5c,OAEVA,KAAKw4F,OAAO6ysB,YAEhB9lb,YAAa,SAAS/tE,GAClBx3S,KAAKw4F,OAAOg+M,aAAax2S,KAAK6L,GAAI2rS,IAEtCuG,SAAU,WACN,OAAO/9S,KAAKw1I,OAEhBojK,UAAW,WACP,SAAU,EAAI54S,KAAKk7F,OAEvB6oC,WAAY,WACR,SAAU,EAAI/jI,KAAKk7F,QAG3B,UAAe+vsB,ICjFf,IAAIK,GAAsB,eAU1B,YAA4BC,GACxB,MAAO,CACHlusB,KAAMkusB,EAAUlusB,KAChBwlN,SAAU0of,EAAU1of,UAZ5B2of,IAAa,eAAgBC,KAAc,GAC3CD,IAAa,gBCXE,CACXb,WAAY,SAASv+xB,EAAMq+S,EAAWC,GAClC,IAAI5qP,EAAS,EACTtE,EAAI,EACJ5qC,EAAI,EACJilH,EAAU,EACV61pB,EAAgBjhf,EAAY,EAC5Bkhf,EAVC,GAU2BD,EAC5BE,EAAe,EAAIlhf,EACnBmhf,EAZC,GAYyBH,EAC1BI,EAbC,GAa0BJ,EAC/B,OAAOt/xB,EAAKsU,IAAK,SAAS9T,GAKtB,OAJAgkB,EAAIilH,EACJr6E,EAAIsE,EAEJ+1E,EAAU81pB,GADV7ruB,GAAUlzD,GAC4Bg/xB,EAClCpwuB,GAAKowuB,GAAgB9ruB,GAAU8ruB,EACxB,CAACh7wB,EAAG4qC,EAlBT,EAkB0B5qC,EAAG4qC,EAlB7B,EAkB8Cq6E,EAAS/1E,EAnBxD,EAmB6E+1E,EAAS/1E,GAChFtE,GAAKowuB,GAAgB9ruB,EAAS8ruB,EAC9B,CAACh7wB,EAAG4qC,EApBT,EAoB0B5qC,EAAG4qC,EAAGswuB,EAAiBF,EAAcE,EAAiBhsuB,EAAQ+ruB,EAAgB/ruB,EAAQ+ruB,EAAgBD,GAE3H,CAACC,EAAgBrwuB,EAAGswuB,EAAiBtwuB,EAAGswuB,EAAiBhsuB,EAAQ+ruB,EAAgB/ruB,MAIpG8quB,gBAAiB,SAASv2uB,GACtB,IAAIq5G,EAAMr5G,EAAM9gC,OAAQ,SAASm6I,EAAK9wJ,GAClC,OAAO8wJ,EAAM9wJ,EAAKhQ,OAClB,GACJ,OAAOynD,EAAM3zC,IAAK,SAAS9D,GACvB,OAAOA,EAAKhQ,MAAQ8gK,ODLhC,IAAIq+nB,GAAWl8Z,WAAmB,CAC9B2D,WAAY,aACZvzE,iBAAkB,MAClByf,WAAY,GACZyT,kBAAmB,CACf32O,WAAY,cACZiuM,UAAW6gf,GACX5gf,WAAY4gf,GACZvvqB,SAAUuvqB,GACV9gf,UAAW8gf,GACX1uxB,KAAM0uxB,GACNnxpB,WAAYmxpB,GACZp0pB,cAAeo0pB,GACfhhf,WAAYghf,GACZhqoB,QAASgqoB,GACT/poB,qBAAsB+poB,GACtBjhf,SAAUihf,IAEdzga,uBAAwB,CAACyga,IACzBj3Z,gBAAiB,WACb,MAAO,CACHz0U,MAAO,IACPE,OAAQ,MAGhBivP,cAAe,SACfE,YAAa,CAAC,oBAAqB,6BAA8B,eACjEy7E,oBAAqB,CAAC,eACtBkB,gBAAiB,CAAC,eAClBqF,UAAW,WACPjxY,KAAKw9T,OAASx9T,KAAKqkB,UAAUmiB,IAAIojD,OAAO5pF,KAAKqkB,UAAUsM,MACvD3wB,KAAKu1G,OAAS,IAElBu/O,WAAY,CACRk3c,eAAgB,CACZ3oyB,KAAM,gBAEV2zH,mBAAoB,CAChB3zH,KAAM,qBAGd0wY,aAAcznV,MACdwoV,WAAY,SAASl1E,GACjB,YAAK6zB,MAAQ7zB,EAAKt4T,QAClBtH,KAAKugU,QAAQ,CAAC,WACPvgU,KAAKyzV,OAEhBmhD,kBAAmB,WACf,OAAO50Y,KAAKyzV,OAEhBw4c,eAAgB,WACZ,IAAI34tB,EAAOtzE,KACPq0D,EAAQif,EAAKiiC,OACbqqN,EAAOtsP,EAAKmgR,MACZy4c,EAAe,SAAS3jc,EAAOh2V,GAC/B,IAAI43D,EAAS53D,EAAQ,EACrB,OAAOqtT,EAAK,EAAIz1P,IAAWy1P,EAAK,EAAIz1P,GAAUy1P,EAAK,EAAIz1P,IAAWo+R,GAEtEvoW,KAAKw9T,OAAOlqS,QACZ+gC,EAAMruD,QAAS,SAAS4W,EAAMrK,GAC1B,IAAIilS,EAAS56R,EAAK+rV,OAAOjoV,IAAIwrxB,GACzB1kyB,EAAU8rE,EAAKjvD,UAAUwE,KAAK,GAAI,QAAQumD,KAAK,CAC/CmoO,OAAQC,IACT5tN,OAAOtW,EAAKkqP,QACf5gT,EAAK46R,OAASA,EACd56R,EAAKpV,QAAUA,IAEnBxH,KAAKy/U,eAAe,CAAC,WAEzBmrD,oBAAqB,CAAC0ga,GAAqB,SAAU,SAAU,QAAS,SACxEthrB,0BAA2B,WACvBhqH,KAAKy/U,eAAe,CAAC6rd,MAEzBa,cAAe,WACXnsyB,KAAKg1V,UAETwuD,oBAAqB,WACjBxjZ,KAAKugU,QAAQ,CAAC,UACdvgU,KAAK2/U,qBAETysd,qBAAsB,WAClBpsyB,KAAKq/U,eAETgtd,cAAe,WACXrsyB,KAAKm/U,yBAETisd,SAAU,WACDpryB,KAAKqxY,kBACNrxY,KAAKuwY,mBAGb86Z,QAAS,WACArryB,KAAKqxY,kBACNrxY,KAAKoxY,kBAGbjyD,sBAAuB,WACnBn/U,KAAKu1G,OAAOvvG,QAAS,SAAS4W,GAC1B,IAAIsc,EAAQtc,EAAK49B,WACjB59B,EAAKpV,QAAQ+lU,UAAU3wT,EAAKy0Q,OAAOn4P,OAG3CozwB,gBAAiB,SAAS17wB,EAAG4qC,GACzB,IACIpvD,EADAknE,EAAOtzE,KAEX,YAAK0/U,WAAWlsT,KAAM,SAAS9tB,GAE3B,GADA0G,EAAO1G,EAAS00B,KAAKk5C,EAAM1iD,EAAG4qC,GAE1B,OAAO,IAGRpvD,GAEX6pS,WAAY,WACRj2S,KAAKoryB,WACLpryB,KAAKu1G,OAAOvvG,QAAS,SAAS4W,GAC1BA,EAAKg8R,aAAeh8R,EAAKgwF,OAAM,KAEnC5sG,KAAKqryB,WAET7oqB,eAAgB,WACZxiI,KAAKoryB,WACLpryB,KAAKu1G,OAAOvvG,QAAS,SAAS4W,GAC1BA,EAAKmnH,cAAgBnnH,EAAK65F,QAAO,KAErCz2G,KAAKqryB,WAETroa,SAAU,WACN,IAAI52X,EAAOpM,KAAK6/U,oBAAsB,GAClC1lM,EAAan6I,KAAKozD,WAAW,cAAc,GAC3C8jF,EAAgBl3I,KAAKozD,WAAW,iBAAiB,GACjDk3P,EAAatqT,KAAKozD,WAAW,cAAc,GAC3Cm5uB,EAAgBngyB,EAAKmnB,OAAQ,SAASuqB,EAAGlhC,GACzC,IAAIhQ,EAAQ2sD,OAAO38C,EAAKu9H,IACxB,OAAIvtI,GAAS,IACTkxC,EAAE,GAAGz0C,KAAK,CACNuD,MAAOA,EACP4oI,MAAO54H,EAAK0tS,GACZl1K,SAAUx4H,EAAKs6H,GACfqlL,SAAU3/S,IAEdkhC,EAAE,IAAMlxC,GAELkxC,GACP,CACA,GAAI,IAEJuW,EAAQk4uB,EAAc,GAI1B,OAHIngyB,EAAK3H,OAAS,GAAK,IAAM4vD,EAAM5vD,QAC/BzE,KAAKkgU,kBAAkB,QAAS/lL,GAE/BoypB,EAAc,IAGfvsyB,KAAKozD,WAAW,YAAY,IAC5BiB,EAAM/4B,KAAM,SAASL,EAAGpd,GACpB,OAAOA,EAAEjR,MAAQquB,EAAEruB,QAGpBynD,GAPI,IASfgrR,YAAa,WACT,IAAI/rQ,EAAOtzE,KACPoM,EAAOknE,EAAK0vT,WACZx4E,EH3LL,aAAsBnnT,GACzB,OAAOonyB,GAAWzvf,GAAe33S,KAAUmnyB,IG0LvBgC,CAAal5tB,EAAKlgB,WAAW,aAAa,IACtDq5uB,EAAWjif,EAAUogf,gBAAgBx+xB,GACrC4+xB,EAAc13tB,EAAKlgB,WAAW,QAC9Bs5uB,EAAUlif,EAAUmgf,WAAW8B,EAAUn5tB,EAAKlgB,WAAW,aAAa,GAAOkgB,EAAKlgB,WAAW,cAAc,IAC3GkuG,EAAUhuF,EAAKgtP,cAActQ,cAAc18O,EAAKlgB,WAAW,WAAW,GAAO,CAC7EkrP,cAAc,EACdJ,cAAe5qO,EAAKlgB,WAAW,wBAAwB,GACvDxtD,MAAO8myB,EAAQjoyB,SAEnB6uE,EAAKiiC,OAASm3rB,EAAQhsxB,IAAK,SAASioV,EAAQp2V,GACxC,IAAIo6xB,EAAUvgyB,EAAKmG,GASnB,OARW,IAAI04xB,IAAK33tB,EAAM,CACtBq1R,OAAQA,EACRv8V,KAAMugyB,EACNhhc,QAAS8gc,EAASl6xB,GAClB1G,GAAI0G,EACJijI,MAAOm3pB,EAAQn3pB,OAAS8rB,EAAQw8I,eAChCktf,YAAaA,MAIjB13tB,EAAKlgB,WAAW,YAAY,IAC5BkgB,EAAKiiC,OAAOvvG,QAAS,SAAS4W,GAC1BA,EAAK+rV,OAvMrB,aAAsBA,GAClB,OAAOA,EAAOjoV,IAAK,SAAS6nV,EAAOh2V,GAC/B,OAAOA,EAAQ,EAAI,EAAIg2V,EAAQA,IAqMTqkc,CAAahwxB,EAAK+rV,UAGxCr1R,EAAKjvD,UAAUyxR,mBACfxiO,EAAKitP,QAAQ,CAAC,SAAU,WAE5B/pB,aAAclqP,MACdkvT,YAAalvT,MACbugvB,YAAa,WACT,OAAO7syB,KAAKu1G,OAAOjuG,SAEvBk4U,iBACI,OAAOx/U,KAAKu1G,OAAO70F,IAAI9D,IACnB,IAAIy0Q,EAASz0Q,EAAKy0Q,OAClB,MAAO,CACHxlR,GAAI+Q,EAAK/Q,GACTkjE,SAAS,EACTt4D,KAAMmG,EAAKw4H,SACXx4H,KAAMA,EACNy0Q,OAAQ,CACJC,OAAQw7gB,GAAmBz7gB,EAAOC,QAClC1kL,MAAOkgsB,GAAmBz7gB,EAAOzkL,OACjCopG,UAAW82lB,GAAmBz7gB,EAAOr7E,gBAKrD2+L,YAAa,WACT,IAAIrxF,EAAiBtjT,KAAKozD,WAAW,kBACrC,MAAO,CAACkwP,EAAe1jP,MAAO0jP,EAAexjP,WAGrD8tY,GAAqB,WAAYm+V,IACjC,SAAeA,GAIfA,GAAStga,UAAU9jY,IEhPnB,IAAIolyB,GAAmB,UAiBvB,YAA2Bj6vB,GACvBA,SAAMu8P,GAAcv8P,MACLi6vB,IAlBG,WAkBiBj6vB,EAGvC,YAA6B0oB,EAAG42N,EAAMr2J,GAClC,OAAOA,EAAWvgE,EAAI42N,EAAKtyN,OAAStE,EAGxC,aAAsCg8O,EAAQplB,EAAMxgQ,EAASmqG,GACzD,MAAO,CACHnrG,EAAG4mR,EAAO,GAAK5lR,EAAQypI,iBA1BJ,EA2BnB7/F,EAAGwxuB,GAAoBx1f,EAAO,GAAK5lR,EAAQ2pI,eAAgB62H,EAAMr2J,IAIzE,aAAqCy7K,EAAQplB,EAAMxgQ,EAASmqG,GACxD,MAAO,CACHnrG,EAAG4mR,EAAO,GAAKplB,EAAKxyN,MAAQhuC,EAAQypI,iBAjCjB,EAkCnB7/F,EAAGwxuB,GAAoBx1f,EAAO,GAAK5lR,EAAQ2pI,eAAgB62H,EAAMr2J,IAIzE,aAAgCy7K,EAAQplB,EAAMxgQ,GAG1C,MAAO,CACHhB,EAAG4mR,EAAO,IAHFA,EAAO,GAAKA,EAAO,IAGJ,EAAI5lR,EAAQypI,iBAAmB+2H,EAAKxyN,MAAQ,EACnEpE,EAAGg8O,EAAO,GAAK5lR,EAAQ2pI,gBAHdi8I,EAAO,GAAKA,EAAO,IAGqB,EAAIplB,EAAKtyN,OAAS,GAyHpE,IAAIn4D,IAAS,CAChBtE,KAAM,SACN4Q,KAAMq4C,MACNxL,QAASwL,MACT4yR,UAAW,CACP+xD,UAAW,WACPjxY,KAAK2uW,aAAe3uW,KAAKqkB,UAAUmiB,IAAI4oC,KAAK,CACxC4zB,MAAOhjG,KAAKigU,iBAAmB,YAChCr2O,OAAO5pF,KAAKqkB,UAAUsM,MACzB3wB,KAAKityB,QAAU,IAEnBn4Z,WAAY,WACR,IAAIljX,EAAU5xB,KAAKozD,WAAW,SAC1BkwP,EAAiBtjT,KAAKozD,WAAW,kBACjCwsQ,EAAO5/T,KAAKyzV,MACZ6mB,EAAa,EACb16S,EAAQggQ,EAAK,GAAKA,EAAK,GAC3B5/T,KAAKktyB,WAAatte,EAAKt4T,QAClBtH,KAAKityB,QAAQxoyB,QAAW0oyB,GAAkBv7wB,EAAQoI,WAYvDsgV,EANiBt6W,KAAKityB,QAAQvsxB,IAAK,SAAS23H,GACxCA,SAAMq1N,gBACCr1N,EAAM/wE,kBAAkB1H,QAC/BrsC,OAAQ,SAAS/Y,EAAKolD,GACtB,OAAOrlD,KAAKC,IAAIA,EAAKolD,IACrB,GACsBhuC,EAAQypI,iBA7L9C,aAAwBvoH,GAEpB,OADAA,EAAMu8P,GAAcv8P,MACRi6vB,GAPW,EADL,WAUPj6vB,EACA,EATY,GAiMsCs6vB,CAAex7wB,EAAQoI,WACvEspR,EAAeC,YAAc3jP,EAAQ06S,EAAah3D,EAAe1jP,MAClE5/D,KAAKityB,QAAQjnyB,QAAS,SAASqyI,GAC3BA,EAAMziE,MAAK,MAIXhW,EAAQ06S,EAAah3D,EAAe1jP,QAEpC06S,GADAA,EAAa16S,EAAQ0jP,EAAe1jP,OACV,EAAI06S,EAAa,GAE/Ct6W,KAAKityB,QAAQjnyB,QAAS,SAASqyI,GAC3BA,EAAMziE,MAAK,KAGf,SAAWhkD,EAAQmvH,oBACnB6+K,EAAK,IAAM06C,EAEX16C,EAAK,IAAM06C,IA7BPjrE,GAAc,SAAWrvS,KAAKozD,WAAW,2BAA2B,KACpEpzD,KAAKityB,QAAQjnyB,QAAQikP,IAAMA,EAAEtX,aAAesX,EAAEr0K,MAAK,KA+B/DypQ,YAAa,WACTr/U,KAAKiod,iBAETgkV,eAAgB,WACZ,IAIItpf,EAJArvO,EAAOtzE,KACP4xB,EAAU0hD,EAAKlgB,WAAW,SAC1BovT,EAAY6qb,IACZtxqB,EAAWzoD,EAAKlgB,WAAW,YAAY,GAEvC+5uB,GAAkBv7wB,EAAQoI,YACtBq1Q,GAAcz9Q,EAAQoI,YAAc+ywB,GACpCvqb,EAAY,WAAmBzhO,oBAAsBuspB,IAA8BC,KAEnF5qf,EAAgB3iT,KAAKwtyB,6BACrBhrb,EAAY,WAAmBzhO,oBA7KnD,aAAoC0spB,EAAW7te,EAAMjd,GACjD,OAAO,SAASnL,EAAQplB,EAAMxgQ,EAASmqG,GACnC,MAAO,CACHnrG,EAAG,WAA2B68wB,EAAU,GAAK7te,EAAK,GAAKxtC,EAAKxyN,MAAQhuC,EAAQypI,iBA1D7D,GA2Df7/F,EAAGwxuB,GAAoBx1f,EAAO,GAAK5lR,EAAQ2pI,eAAgB62H,EAAMr2J,KAyKJ2xqB,CAA2B1tyB,KAAKktyB,WAAYltyB,KAAKyzV,MAAO9wC,GAtLjI,aAAqC8qf,EAAW7te,EAAMjd,GAClD,OAAO,SAASnL,EAAQplB,EAAMxgQ,EAASmqG,GACnC,MAAO,CACHnrG,EAAG,WAA2BgvS,EAAK,GAAKhuS,EAAQypI,iBAjDjC,GAiD2EoyoB,EAAU,GAAKr7gB,EAAKxyN,MAC9GpE,EAAGwxuB,GAAoBx1f,EAAO,GAAK5lR,EAAQ2pI,eAAgB62H,EAAMr2J,KAkLqE4xqB,CAA4B3tyB,KAAKktyB,WAAYltyB,KAAKyzV,MAAO9wC,KAG/LrvO,EAAK25tB,QAAQjnyB,QAAS,SAASqyI,EAAO9lI,GAClC,IAAIqK,EAAO02D,EAAKiiC,OAAOhjG,GACnBk0M,EAAc7pM,EAAKsuxB,iBAAiB,gBACpC0C,EAAkB7xqB,EAAW0qF,EAAc,GAAKA,EAAc,EAC9D+wF,EAASo2f,EAAkBhxxB,EAAK46R,OAAO92R,IAAK,SAAS6nV,EAAOh2V,IAC5D,OAAI,QAAe,IAAMA,GACdg2V,EAAQqlc,EACR,IAAMr7xB,GACNg2V,EAAQ9hJ,EACR,OACA8hJ,EAAQ9hJ,EAEZ8hJ,IACL3rV,EAAK46R,OACX,GAAK5lR,EAAQ0pI,mBAAqB,IAAM1+I,EAAKhQ,MAA7C,CAIIugyB,GAAkBv7wB,EAAQoI,WAC1Bs5C,EAAKu6tB,mBAAmBx1pB,EAAOz7H,EAAK46R,OAAQ5lR,GAEhD,IAAIwgQ,EAAO/5I,EAAM/wE,kBACbx0B,EA3HpB,aAA8BA,EAAKs/O,EAAMwtC,GACrC,OAAI9sR,EAAIliB,EAAIgvS,EAAK,KACb9sR,EAAIliB,EAAIgvS,EAAK,IAEb9sR,EAAIliB,EAAIwhQ,EAAKxyN,MAAQggQ,EAAK,KAC1B9sR,EAAIliB,EAAIgvS,EAAK,GAAKxtC,EAAKxyN,OAEvB9sB,EAAI0oB,EAAIokQ,EAAK,KACb9sR,EAAI0oB,EAAIokQ,EAAK,IAEb9sR,EAAI0oB,EAAI42N,EAAKtyN,OAAS8/P,EAAK,KAC3B9sR,EAAI0oB,EAAIokQ,EAAK,GAAKxtC,EAAKtyN,QAEpBhtB,EA8Ge24T,CAAqB+W,EAAUhrE,EAAQplB,EAAMxgQ,EAASmqG,GAAWq2J,EAAM9+M,EAAK45tB,YACtF70pB,EAAMwyN,yBAAyBrzD,GAC/Bn/J,EAAM/mI,MAAMwhC,EAAIliB,EAAGkiB,EAAI0oB,QATnB68E,EAAMziE,MAAK,KAWnBtC,EAAK4tU,6BAGb3hE,QAAS,CACL2hE,2BACI,IAAI5tU,EAAOtzE,KACPyjT,EAA0BpU,GAAc/7N,EAAKlgB,WAAW,2BAA2B,IACnFopK,EAASx8N,KAAKozD,WAAW,YAAY,GAAQkgB,EAAK25tB,QAAQ3lyB,QAAQC,UAAY+rE,EAAK25tB,QACvF,GAAI,WACAzwkB,EAAOjpM,OAAO,CAACusC,EAAQu4E,KACfA,EAAM/wE,kBAAkB9L,EAAIsE,EAC5Bu4E,EAAM7D,OAEN10E,EAASu4E,EAAM/wE,kBAAkB9L,EAAI68E,EAAM/wE,kBAAkBxH,OAE1DA,GACR,WACI,YAAqC,CAC5C,IAAI2uF,EAAYzuJ,KAAKktyB,WAAW,GAChC1wkB,EAAO11M,OAAOuxH,GAASA,EAAMs6F,aAAap/M,OAAO,CAACvQ,EAAMq1H,EAAO9lI,EAAOiqN,KAClE,IAAK18J,EAAQ6ja,GAAc3gd,EACvBovQ,EAAO/5I,EAAM/wE,kBACb9L,EAAI42N,EAAK52N,EACb,OAAI42N,EAAK52N,EAAIsE,IACTu4E,EAAM/mI,MAAM8gR,EAAKxhQ,EAAGkvC,GACpBtE,EAAIsE,GAEJtE,EAAIsE,EAAS,IACb6ja,GAAcnoa,EAAIsE,GAElBtE,EAAI42N,EAAKtyN,OAAS2uF,EACdk1U,GAAcA,EAAanoa,EAAI42N,EAAKtyN,OAAS2uF,GA9IzE,aAA0B+tE,EAAQsxkB,EAAevyY,GAC7C/+L,EAAOjpM,OAAO,CAACu6wB,EAAez1pB,EAAO9lI,EAAOiqN,KACxC,IAAIyxN,EAAYzxN,EAAOjqN,EAAQ,GAC/B,GAAIu7xB,EAAgB,EAAG,CACnB,IAAI17gB,EAAO/5I,EAAM/wE,kBACbsxE,EAAQq1S,EAAYA,EAAU3mX,kBAAkB9L,EAAIyyX,EAAU3mX,kBAAkBxH,OAASy7V,EAEzFjqZ,EAAQiJ,KAAKmvD,IADA0oN,EAAK52N,EAAIo9E,EACOk1pB,GACjCtxkB,EAAOl1N,MAAM,EAAGiL,EAAQ,GAAGvM,QAAQqyI,IAC/B,IAAI+5I,EAAO/5I,EAAM/wE,kBACjB+wE,EAAM/mI,MAAM8gR,EAAKxhQ,EAAGwhQ,EAAK52N,EAAIlqD,KAEjCw8xB,GAAiBx8xB,EAErB,OAAOw8xB,GACRA,GAgIqBC,CAAiBvxkB,EAAOl1N,MAAM,EAAGiL,GAAOhL,UAAWi0D,EAAI42N,EAAKtyN,OAAS2uF,EAAWn7E,EAAK45tB,WAAW,IAChGvpU,GAAcnoa,EAAI42N,EAAKtyN,OAAS2uF,EAChCpW,EAAM/mI,MAAM8gR,EAAKxhQ,EAAG4qC,GAAKA,EAAI42N,EAAKtyN,OAAS2uF,IAC3C3uF,EAAStE,GAAKA,EAAI42N,EAAKtyN,OAAS2uF,GAAa2jI,EAAKtyN,QAElDu4E,EAAM7D,OAGV10E,EAAStE,EAAI42N,EAAKtyN,OAEf,CAACA,EAAQ6ja,IACjB,CAAC3je,KAAKktyB,WAAW,GAAI,MAGhCM,2BAA4B,WACxB,OAAOxtyB,KAAKozD,WAAW,cAAc,GAAQ,QAAU,QAE3Dy6uB,mBAAoB,SAASx1pB,EAAOz7H,EAAMgV,GACtC,IAAIo8wB,EAAY,WAAmBjtpB,oBAG/B2N,GADOs/oB,EAAYpxxB,EAAK,GAAK5c,KAAKktyB,WAAW,KADtCc,EAAYhuyB,KAAKktyB,WAAW,GAAKtwxB,EAAK,IAG7Cy7H,EAAM/wE,kBAAkB1H,MAAQ8uF,GAChCrW,EAAMhuE,IAAIqkF,IAGlBu5T,cAAe,WACX,IAAI30Y,EAAOtzE,KACPsyW,EAAeh/R,EAAKlgB,WAAW,SAC/B66uB,EA9PhB,aAA8Br8wB,EAASmqG,GACnC,IAAIiyqB,EAAY,WAAmBjtpB,oBAC/BmtpB,EAAkBF,EAjEH,KAkEfG,EAAqBpyqB,GAjEI,EAiEqC,EAElE,WAAyB4sO,GACrB,OAAOqlc,EAAY,CAACrlc,EAAO,GApEF,EAoEmCA,EAAO,GAAKwlc,GAAsB,CAACxlc,EAAO,GApE7E,EAoE8GA,EAAO,GAAKwlc,GAEvJ,MAAO,CACH1lc,cAAe,WACX,OAAQ0kc,GAAkBv7wB,EAAQoI,WAEtCovU,gBAAiBA,EACjBN,mBAAoB,SAAS12E,GACzB,IAAIxhQ,EAAIwhQ,EAAKxhQ,EAAIs9wB,EACb1yuB,EAAI42N,EAAK52N,EACT4B,EAAKxsC,EAAIwhQ,EAAKxyN,MAClB,MAAO,IAAIh3D,MAAMwpR,EAAKtyN,OAAS,IAAIp/C,IAAI,CAAC8D,EAAGhgB,IAAM,CAACosB,EAAG4qC,EAAIh3D,IAAIqd,OAAO,IAAIjZ,MAAMwpR,EAAKtyN,OAAS,IAAIp/C,IAAI,CAAC8D,EAAGhgB,IAAM,CAAC44D,EAAI5B,EAAIh3D,MAE3HwkW,aAAc,WACV,OAAO,GAEXK,gBAAiB,SAASV,GACtB,OAAOS,EAAgBT,IAE3BY,aAAc,SAAShyD,GACnB,OAAOA,EAAO72R,IAAInG,KAAK2zC,SAoOCkgvB,CAAqB97b,EAAch/R,EAAKlgB,WAAW,YAAY,IACvFpzD,KAAK2uW,aAAar7U,QACbg/U,EAAavjS,UAGlB/uE,KAAKityB,QAAU35tB,EAAKiiC,OAAO70F,IAAK,SAAS9D,GACrC,IAAIy7H,EAAQ,IAAIoyN,GAAM,CAClB7+V,SAAU0nE,EAAKjvD,UACfkmV,YAAaj3R,EAAKq7R,aAClBr3S,SAAU22uB,IAEd51pB,SAAMs9I,WA1OtB,aAAyB28E,EAAcx3B,EAAcuzd,GACjD,IAAI9ld,EAAM+pB,GAAgB,GACtByzB,GAAY1mX,QAAO,GAAIkpU,EAAI5yM,OAAS,GACpCqwP,EAAcz9C,EAAIprQ,QAAU,GAC5B8oT,EAAiB19C,EAAI5sU,WAAa,GAClCuqX,EAAiB,CACjB7oS,KAAMkrP,EAAIt1L,iBAAmB6nL,EAC7B,eAAgBkrD,EAAYj3T,SAAUi3T,EAAYpmU,OAAS,EAC3DmoP,OAAQi+E,EAAYj3T,SAAWi3T,EAAYpmU,MAAQomU,EAAYxwP,MAAQ,OACvEkC,UAAWsuP,EAAYtuP,WAEvByuP,EAAgB,CAChBp+E,OAAQk+E,EAAel3T,SAAWk3T,EAAermU,MAAQqmU,EAAezwP,OAASslM,EAAe,OAChG,eAAgBmrD,EAAel3T,SAAUk3T,EAAermU,OAAS,EACjEwY,QAAS6tT,EAAe7tT,SAE5B2tT,SAAUvwP,MAAQ,WAAeyd,iBAAmB,eAA4B8yO,EAAUvwP,QAAU,aAAiBx7G,SAAW8gT,EAAeirD,EAAUvwP,MAClJ,CACHr1C,OAAQooP,EAAIpoP,OACZwiN,cAAe4lC,EAAI5lC,gBAAkBwqf,GAAkB5kd,EAAIvuT,UAAYq0wB,EAAuB,UAC9FxmpB,cAAe0gM,EAAI1gM,cACnB/kD,WAAY,CACR6yC,KAAMowP,GAEVh3T,QAAS,MAAgByxF,MAAO+nL,EAAIx5Q,QACpCusF,kBAAmBitL,EAAIjtL,kBACvBD,iBAAkBktL,EAAIltL,iBACtBE,eAAgBgtL,EAAIhtL,eACpB8rJ,WAAY6+E,EACZvqX,UAAWwqX,EACX7vP,SAAUg8N,EAAah8N,SACvBH,aAAcm8N,EAAan8N,cA2MFiwP,CAAgB9zB,EAAc11V,EAAK44H,MAAOliE,EAAKk6tB,+BAChEn1pB,EAAMh8D,QAAQ,CACVz/D,KAAMA,EACNhQ,MAAOgQ,EAAKhQ,MACZ++V,QAAS/uV,EAAK+uV,UAElBtzN,EAAMziE,MAAK,GACJyiE,IAEPr4I,KAAKityB,QAAQxoyB,QAAU0oyB,GAAkB76b,EAAat4U,WACtDh6B,KAAKy/U,eAAe,CAAC,cAIjCrf,UAAW,SAASvgU,GAChBA,EAAYs6B,UAAUulT,WAAWr2U,KAAM,SAASunB,EAAG4qC,GAC/C,IACIpvD,EADAknE,EAAOtzE,KAEXszE,SAAK25tB,QAAQjnyB,QAAS,SAASqyI,EAAO9lI,GAClC,IAAIqtT,EAAOvnL,EAAM/wE,kBACjB,GAAI12C,GAAKgvS,EAAKhvS,GAAKA,GAAKgvS,EAAKhvS,EAAIgvS,EAAKhgQ,OAASpE,GAAKokQ,EAAKpkQ,GAAKA,GAAKokQ,EAAKpkQ,EAAIokQ,EAAK9/P,OAAQ,CACrF,IAAIhtB,EAAMq6vB,GAAkB75tB,EAAKlgB,WAAW,SAASp5B,UAAY,UAAY,SAC7E5tB,SAAO,CACHP,GAAI0G,EACJ9G,KAAMqnC,EAAM,WAET,KAGR1mC,IAEX,CAAC,QAAS,2BAA2BpG,QAAQ8rF,IACzCjyF,EAAYwgU,UAAU,CAClBnlO,KAAMpJ,EAAWg0J,cACjBp+O,QAAS,WACL1H,KAAKiod,gBACLjod,KAAKy/U,eAAe,CAAC,YAEzBjf,kBAAkB,EAClBC,gBAAgB,EAChBntQ,OAAQw+B,OAIpBo9N,WAAY,CAAC,eC3Xbo/e,GAAuB99tB,QACvB+9tB,IAAuB/9tB,QACpB,YAAiBvzC,GACpBj9B,KAAKwuyB,cAAcvxwB,GAEvBqsX,GAAQnvX,UAAY,CAChBt6B,YAAaypZ,GACbklZ,cAAe,SAASvxwB,GACpB,IAAI37B,EAAW8wD,mBAiBf,WAAsBp8C,IA0B9B,aAAsBA,EAAGlB,GACrB,IAAIjJ,EAAKiJ,EAAOmgC,QAAQj/B,GACpBnK,GAAM,GACNiJ,EAAO27L,MAAM,CACT3vM,KAAMgU,EAAO25xB,QAAQ5iyB,GACrB2rS,OAAQ1iS,EAAO0tW,UAAUxsW,GACzBlL,MAAOkL,IA/BP04xB,CAAa14xB,EAAGinB,GAjBpBA,EAAWulV,UAAY,SAASxsW,GAC5B,IAAI5J,EAAOs6V,GAAW1wV,GAClBm0D,EAASltC,EAAWu7D,OAAOn0E,UAAUuzR,gBACzC,MAAO,CAACxrS,EAAKwkB,EAAIu5C,EAAO7O,KAAMlvD,EAAKovD,EAAI2O,EAAO5O,MAElDt+B,EAAWtM,KAAKi5B,GAAGwhE,GAAgB5jC,GACnCvqD,EAAWtM,KAAKi5B,GAAG0kvB,GAAsBK,GACzClgvB,QAAgBntD,EAAUgtyB,GAAsBK,GAChDlgvB,QAAgBntD,EAAUityB,IAAsBK,GAChD5uyB,KAAK6uyB,iBAAmB,WACpB5xwB,EAAWtM,KAAKk5B,IAAIuhE,GAAgB5jC,GACpCvqD,EAAWtM,KAAKk5B,IAAIykvB,GAAsBK,GAC1ClgvB,SAAiBntD,EAAUgtyB,GAAsBK,GACjDlgvB,SAAiBntD,EAAUityB,IAAsBK,IAMrD,IAAIE,GAAa,EAEjB,WAAqB94xB,GACb84xB,EACAA,GAAa,QAET,IAAW7xwB,EAAWgY,QAAQj/B,KAC9B84xB,GAAa,GAEjBF,EAAY54xB,IAIpB,WAAqBA,IAqB7B,aAAsBA,EAAGlB,GACrB,IAAIjJ,EAAKiJ,EAAOmgC,QAAQj/B,GACpBnK,GAAM,EACNiJ,EAAO25xB,QAAQ5iyB,GAAIs/xB,WAEnBr2xB,EAAO0jF,OAAOy9M,cAzBV84f,CAAa/4xB,EAAGinB,GAChBA,EAAWu7D,OAAOplC,WAAW,WAAW/qC,SA4BpD,aAAwBrS,EAAGlB,GACvB,IACI0iS,EADA3rS,EAAKiJ,EAAOmgC,QAAQj/B,GAAG,GAEvBnK,GAAM,GACN2rS,EAASkvD,GAAW1wV,GACpBlB,EAAO25xB,QAAQ5iyB,GAAI05W,YAAY,CAAC/tE,EAAO5mR,EAAG4mR,EAAOh8O,KAEjD1mD,EAAO0jF,OAAOgjR,cAnCyCwzb,CAAeh5xB,EAAGinB,KAG7E6jB,QAAS,WACL9gD,KAAK6uyB,qBCpDb,IAIII,IAAkB,EAClBzqe,IAAQ0qe,aACZ1qe,IAAMswB,WAAWhwO,YAAc,CAC3BzhH,KAAM,aAEVmhU,IAAMswB,WAAWilD,cAAgB,CAC7B12Y,KAAM,eAEV,IAGWsE,IAAS,CAChBtE,KAAM,UACN4Q,KAAM,WACF,IAAIq/D,EAAOtzE,KACPk0S,EAnBQ,iBAaO+6f,MAOfE,EAAe,SAASn5xB,GACxB,IAAI2hS,EAAarkO,EAAKjvD,UAAUuzR,gBAC5BhnR,EAAIrW,KAAKo7J,MAAM3/J,EAAE61D,MAAQ8rO,EAAWr8O,MACpCE,EAAIjhD,KAAKo7J,MAAM3/J,EAAE81D,MAAQ6rO,EAAWp8O,KACxC,OAAO+X,EAAKg5tB,gBAAgB17wB,EAAG4qC,IAEnC8X,EAAK8pU,SAAW,IAAIkM,GAAQ,CACxB9wT,OAAQllB,EACR3iD,KAAM2iD,EAAKjvD,UAAUsM,KACrBskB,QAAS,SAASj/B,EAAGo5xB,GACjB,IACIhjyB,EADS4J,EAAEhU,OACGkyS,GAClB,MAAIx2R,OAAUtR,GACV,OAAOA,EAEX,IAAIijyB,EAAYF,EAAan5xB,GAC7B,OAAIo5xB,GAAeC,GAAa,mBAA6B5jyB,UAA7D,EAGO4jyB,GAAaA,EAAUxjyB,IAElC4iyB,QAAS,SAASl8xB,GACd,OAAO+gE,EAAKiiC,OAAOhjG,IAEvBk+L,MAAO,SAASz6L,GACZ,IAAIq5xB,EAAYF,EAAan5xB,EAAElL,OAG/BwoE,EAAKwhO,cADO,YADGu6f,GAAaA,EAAU5jyB,MACF,cAAgB,YAC1B,CACtBmR,KAAM5G,EAAElV,KACRgK,MAAOkL,EAAElL,WAIrB9K,KAAKsvyB,SAAWp7f,GAEpBpzP,QAAS,WACL9gD,KAAKo9Y,SAASt8V,WAElBo+R,UAAW,CACP+sd,eAAgB,WACZ,IAAI/3f,EAAUl0S,KAAKsvyB,SACnBtvyB,KAAKu1G,OAAOvvG,QAAS,SAAS4W,EAAMrK,GAChCqK,EAAKpV,QAAQ4E,KAAK8nS,EAAS3hS,QC5D3C,aAAmBilS,EAAQ+3f,EAAc3jyB,GACrC,IAAIu+D,EAASv+D,EAASgsS,gBACtB,OAAOJ,GAAU+3f,GAAgB,EAAEA,EAAa,GAAKA,EAAa,IAAM,EAAIpluB,EAAO7O,MAAOi0uB,EAAa,GAAKA,EAAa,IAAM,EAAIpluB,EAAO5O,MAAQ,EAAC,KAAM,KAEtJ,IAAI5zD,IAAS,CAChBtE,KAAM,iBACN4Q,KAAMq4C,MACNxL,QAASwL,MACT4yR,UAAW,CACPG,YAAa,WACTr/U,KAAKw7W,eAETywb,eAAgB,WACRjsyB,KAAKwvyB,eAAiB,GACtBxvyB,KAAKyvyB,aAAazvyB,KAAKu1G,OAAOv1G,KAAKwvyB,kBAI/Cjwd,QAAS,CACLi8B,YAAa,WACLx7W,KAAKwvyB,eAAiB,IACtBxvyB,KAAKwvyB,eAAgB,EACrBxvyB,KAAK40S,SAASpgK,SAGtBi7pB,aAAc,SAAS7yxB,EAAM46R,GACzB,IAAIujI,EAAKv4D,IAAUhrE,EAAQ56R,EAAK46R,OAAQx3S,KAAKqkB,WAC7CrkB,KAAK40S,SAASx4O,KAAK2+W,EAAG,GAAIA,EAAG,GAAI,IAErCvkI,aAAc,SAASjkS,EAAOilS,GAC1B,IAAIlkO,EAAOtzE,KACP60S,EAAUvhO,EAAKshO,SACfh4R,EAAO02D,EAAKiiC,OAAOhjG,GACvB,GAAI+gE,EAAKk8tB,gBAAkBj9xB,EAA3B,CAIA,IAAI7M,EAAWgN,SACP,QAGCA,GACDmiS,EAAQrgK,OAEZlhE,EAAKk8tB,cAAgB98xB,EAASH,GAAQ,IAEtCwoa,EAAKv4D,IAAUhrE,EAAQ56R,EAAK46R,OAAQx3S,KAAKqkB,WAC7C3e,EAASmvS,EAAQpgK,KAAK,CAClB7nI,MAAOgQ,EAAKhQ,MACZ4qK,UAAWq9H,EAAQ6gD,YAAY94U,EAAKhQ,OACpCg/V,YAAa/2D,EAAQ6gD,YAAY94U,EAAK+uV,QAAS,WAC/CA,QAAS/uV,EAAK+uV,QACd/uV,KAAMA,GACP,CACCgU,EAAGmqZ,EAAG,GACNv/W,EAAGu/W,EAAG,GACN5wW,OAAQ,GACT,CACCvtD,KAAMA,QACP,EAAQlX,SAzBP4tE,EAAKm8tB,aAAa7yxB,EAAM46R,KA4BpC4oB,UAAW,SAASvgU,GAChBA,EAAY4rY,UAAUika,MChD9B3D,aAAmB4D,KACnB5D,aAAmB6D,IACnB7D,aAAmB8D,IACnB9D,aAAmBtmW,KACnBsmW,aAAmB+D,KACnB/D,aAAmB2D,KACnB3D,aAAmBgE,QC2hBbC,UAAN,SAEmBA,SAAevpyB,UAAO,SAAgCP,GAAK,OAAO,IAAKA,GAAK8pyB,IAC5EA,EAAe/6xB,UAAiCtO,MAAoB,CAAE8E,KAAMukyB,IAC5EA,EAAe96xB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACvFi/H,GACAof,GACAgH,IACAxb,GACAib,GACAhB,GACA0O,GACA5L,GACA/Q,EACA+K,GACA0B,GACAoF,GACAc,GACA8R,GACAzE,GACA3N,GACAsL,GACAkI,GACAzI,GACAnuG,GACA1H,IACD6hF,GACHof,GACAgH,IACAxb,GACAib,GACAhB,GACA0O,GACA5L,GACA/Q,EACA+K,GACA0B,GACAoF,GACAc,GACA8R,GACAzE,GACA3N,GACAsL,GACAkI,GACAzI,GACA71G,MA7CFy9uB,MCtgBN,IAAIC,GAAgB,aAGhBC,IAAqB,kBAErBC,IAAuBF,GAAgB,UACvCG,GAAqBH,GAAgB,QACrCI,IAA+BJ,GAAgB,kBAC/CK,GAA0BF,GAAqB,QAE/CG,GAA8BH,GAAqB,YACnDI,IAA0BP,GAAgB,aAC1CQ,GAA+BD,IAA0B,QACzDE,IAAkC,IAAMD,GACxCE,IAAwCF,GAA+B,YACvEG,GAAwB,mBAIxBC,IAAmBzosB,WAAe,CAClCG,eAAgB,WACZ,OAAOlpF,QAAOrf,KAAKm5D,WAAY,CAC3BgrD,OAAQ73D,MACR83D,SAAU93D,SAGlBioC,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3ByQ,UAAW,OACX9lB,QAAS,KACT8kD,mBAAmB,EACnBF,oBAAoB,KAG5BtQ,QAAS,WACLp4F,KAAKm5D,WACL,IAAIma,EAAOtzE,KACPm7D,EAAWn7D,KAAKm7D,WAChB1zD,EAAYinE,GAAa08C,GAAgBprH,KAAKo1F,MAClDj6B,EAASvtD,SAASqiyB,GAAgB,eAAiBjwyB,KAAKszD,OAAO,cAC/D7E,SAAiB0M,EAAU1zD,GAC3BgnD,QAAgB0M,EAAU1zD,EAAY,SAASuO,GAC3Cs9D,EAAK8iB,sBAAsB,UAA3B9iB,CAAsC,CAClCxoE,MAAOkL,OAInBugF,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,cACA,YACDrD,KAAK4jG,cACL,cAEA5jG,KAAKm5D,SAASxgD,OAI1Bm4xB,IAAUntrB,WAAyB,CACnCpY,iBAlDwB,mBAmDxBwlsB,6BAA6B,EAC7Bx8sB,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BuvC,oBAAoB,EACpB0oC,kBAAmB,IACnBo2K,kBAAkB,EAClBv/L,MAAM,EACNw+e,cAAc,EACduqM,kBAAkB,EAClB9zoB,eAAe,EACf53B,cAAe,EACf2rqB,eAAgB,EAChBlnM,gBAAgB,EAChBmnM,YAAY,EACZC,sBAAkB,EAClBC,eAAe,EACf/rrB,gBAAiB,CACbisB,KAAM,SACN,aAActxB,UAA2B,uBAE7C2E,eAAe,EACfD,eAAe,EACfygB,cAAe,SACfC,mBAAmB,EACnBC,eAAe,KAGvBzwC,qBAAsB,WAClB,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,WACJ,MAAO,YAAcrB,UAAexB,aAAewB,kBAEvDpxC,QAAS,CACLi3E,mBAAmB,OAI/B/S,MAAO,WACH91F,KAAKm5D,WACLn5D,KAAKszD,OAAO,gBAAiBtzD,KAAKszD,OAAO,UAE7C2xC,eAAgB,WACZjlG,KAAKm5D,WACLn5D,KAAK+jG,iBAAiB5K,oBAAoB,CACtCv8E,KAAM,IAAIspG,GAAiB,SAASn8B,EAAY39E,GAC5C,IAAIilyB,GAAOj2uB,QAAE,SAASxtD,SAzFZ,4BA0FNq3D,OAAc74D,IACdpM,KAAKmmH,4BAA4B/5G,EAAM29E,GACvCsntB,EAAKjiuB,KAAK,CACNsiI,IAAKtlM,EAAKi1I,SACVrwI,IAAK5E,EAAKg1I,WACXv2E,SAASkf,IAEZsntB,EAAKjiuB,KAAK,MAAOv8D,OAAOzG,IAAOy+D,SAASkf,IAE9C9gC,KAAKjpD,MAAO,CAAC,WAAY,WAAY,OAAQ,QAASA,KAAKszD,OAAO,sCAG5EqzD,mBAAoB,WAChB,MAAO,CACH9T,UAAU,IAGlB4X,eAAgB,WACZ,OAAOzqH,KAAKwxI,aAEhB7mB,WAAY,WACR,OAAOylrB,IAEXtnrB,aAAc,WACV,MAjHoB,qBAmHxBworB,iBAAkB,WACd,IAAIC,EAAevxyB,KAAKszD,OAAO,cAC/B,OAAItzD,KAAKszD,OAAO,iBAEL,GADWi+uB,EAAevxyB,KAAKwxyB,gBAAkB,EAAIxxyB,KAAKwxyB,iBAGjED,EACOvxyB,KAAKyxyB,oBAAsBzxyB,KAAKwxyB,iBAAmBxxyB,KAAKwxyB,gBAAkB,GAE9ExxyB,KAAKyxyB,qBAEhBA,kBAAmB,WACf,IACIx+lB,KAAetnI,OAAc3rE,KAAKm7D,YAClCg2uB,EAAmBnxyB,KAAKszD,OAAO,oBACnC,OAAI69uB,GAAoBA,GAAoBl+lB,EACzBk+lB,EAAmBl+lB,EAEnB,GAIvBu+lB,cAAe,WACX,IAAIE,KAAexzuB,SAAc3jD,KAAKo7J,MAAM,EAAI31K,KAAKyxyB,qBAAuB,EAC5E,OAAOl3xB,KAAKmvD,IAAIgouB,EAAc1xyB,KAAK04f,gBAEvCi5S,YAAa,WACT,OAAOp3xB,KAAKojF,KAAK39F,KAAK04f,cAAgB14f,KAAKwxyB,kBAE/C94S,YAAa,WACT,OAAQ14f,KAAKszD,OAAO,UAAY,IAAI7uD,QAExCmtyB,iBAAkB,WACd,OAAO5xyB,KAAKszD,OAAO,eAAgB,EAAK,GAE5CivC,YAAa,WACTviG,KAAKotM,iBACLptM,KAAK89wB,wBACL99wB,KAAKm7D,WAAWvtD,SAASqiyB,IACzBjwyB,KAAKm7D,WAAW+oC,YAAYgssB,IAAoBlwyB,KAAKszD,OAAO,SAC5DtzD,KAAKm5D,WACL,IAAI04uB,EAAiB7xyB,KAAK04f,cAAgB,EAK1C14f,KAAK+tG,QAJW,CACZujC,KAAMugqB,EAAiB,eAAY,EACnCx5pB,MAAO,aAIfjgD,QAAS,WACLp4F,KAAK8xyB,qBACL9xyB,KAAK+xyB,2BACL/xyB,KAAKgyyB,mBACLhyyB,KAAKiyyB,uBACLjyyB,KAAKirmB,oBACLjrmB,KAAK2vgB,mBACL3vgB,KAAK6hgB,sBACL7hgB,KAAKkyyB,wBACLlyyB,KAAKmyyB,yBACLnyyB,KAAKoyyB,kBACLpyyB,KAAKqyyB,oBACLryyB,KAAKm5D,YAET0oC,kBAAmB,WACf,IAAIyjC,EAAgBtlI,KAAKszD,OAAO,kBAAoB,EACpDtzD,KAAKsyyB,sBACLtyyB,KAAKuyyB,mBACLvyyB,KAAKwyyB,uBACLxyyB,KAAKgyyB,mBACLhyyB,KAAKiyyB,uBACLjyyB,KAAK2vgB,mBACL3vgB,KAAK+xyB,yBAAyB/xyB,KAAKyyyB,sBAAsBntqB,IAAgB,GACzEtlI,KAAKkyyB,yBAETJ,mBAAoB,WAChB,IAAIrqyB,EAAYinE,GAAa,YAAa1uE,KAAKo1F,MAC/C3mC,SAAiBzuD,KAAKm7D,WAAY1zD,GAClCgnD,QAAgBzuD,KAAKm7D,WAAY1zD,EAAW,MAAQ,WAChD,OAAO,KAGf2lM,eAAgB,WACRptM,KAAK+rN,YAGT/rN,KAAK+rN,aAAY3wJ,MAAE,SAASxtD,SAtNRqiyB,sBAsNwCpluB,SAAS7qE,KAAKm7D,cAE9EkxD,aAAc,SAASh4D,GACnB,OAAK6J,SAAa,CACd,IAAIonE,EAAgBtlI,KAAKszD,OAAO,iBAChCe,EAAQA,EAAM5vD,OAAS6gI,EAAgBjxE,EAAM/sD,MAAMg+H,EAAeA,EAAgB,GAAKjxE,EAAM/sD,MAAM,EAAG,GAE1GtH,KAAKm5D,SAAS9E,GACdr0D,KAAK0yyB,yBAET/jrB,0BACI,MAAO,KACE3uH,KAAK+wyB,8BACN/wyB,KAAK+wyB,6BAA8B,EACnC3ntB,GAAmBppF,KAAKm7D,eAIpC2itB,sBAAuB,WACf99wB,KAAKwxI,cAGTxxI,KAAKwxI,eAAcp2E,MAAE,SAASxtD,SA1OHqiyB,wBA0O0CpluB,SAAS7qE,KAAK+rN,aAEvFymlB,qBAAsB,WAClB,GAAKxyyB,KAAKszD,OAAO,QAGjB,KAGI9uD,EAFAqiI,GADQ7mI,KAAKszD,OAAO,UAAY,IACb7uD,OACnBspkB,EAAgBlnc,EAAa,EAEjC,GAAKA,EAGL,MAAK8rqB,kBAAkB9xyB,SACvB,IAAI+xyB,EAAiBr4xB,KAAKmvD,IAAI1pE,KAAKwxyB,gBAAiB3qqB,GAChDxf,EAASrnH,KAAK6yyB,gBACd9otB,EAAa/pF,KAAKyqH,iBACtB,IAAKjmH,EAAI,EAAGA,EAAIouyB,EAAgBpuyB,IAC5BxE,KAAK8yyB,uBAAuBzrrB,EAAO7iH,GAAIulF,GAE3C,IAAKvlF,EAAI,EAAGA,EAAIouyB,EAAgBpuyB,IAC5BxE,KAAK8yyB,uBAAuBzrrB,EAAO0md,EAAgBvpkB,GAAIulF,MAG/D+otB,uBAAwB,SAASl2xB,EAAMmtE,GACnC,GAAIntE,EAAM,CACN,IAAIm2xB,GAAc33uB,QAAEx+C,GAAMytE,OAAM,GAAOz8E,SAAS0iyB,IAAyB3jsB,WAAW,MAAM5wC,IAAI,SAAU,GAAG8O,SAASkf,GACpH/pF,KAAK+tG,QAAQ,CACTgvG,QAAQ,GACTg2lB,KAGXF,cAAe,WAEX,OAAO7yyB,KAAKm7D,WAAW11B,KADR,gDAGnBktwB,gBAAiB,WACb,OAAO3yyB,KAAKm7D,WAAW11B,KAAK,IAAM6qwB,KAEtC1hrB,uBAAwB,WACpB,OAAO5uH,KAAK+rN,WAEhBimlB,iBAAkB,SAASnswB,GACvB,IAAIwhF,EAASrnH,KAAK6nH,gBACd+5kB,EAAY5hsB,KAAKsxyB,wBACjB,QACAjqrB,EAASA,EAAO//G,MAAMu+B,IAE1BwhF,EAAOv+C,KAAM,SAASv2D,MAClBo8kB,QAAcvzhB,QAAEisD,EAAO90G,IAAS,IAAMqvrB,EAAY,QAG1DqwG,qBAAsB,WAClB,IAAIrwG,EAAY5hsB,KAAKsxyB,mBACjBzqqB,EAAa7mI,KAAK04f,cAClBg5S,EAAe1xyB,KAAKwxyB,gBACpBwB,EAAiBhzyB,KAAKm7D,WAAW11B,KAAK,IAAM6qwB,IAAyB7ryB,OACrEwuyB,EAAyBpsqB,EAAamsqB,EAAiB,EACvD92iB,EAAcl8P,KAAKszD,OAAO,cAAgB,GAAK,EAC/CqgF,EAAY3zI,KAAKkzyB,iBACjBC,IAAuBx/pB,EACvBlvE,EAAazkE,KAAKszD,OAAO,cACzBgyE,EAAgBtlI,KAAKszD,OAAO,iBAC5Bs5K,EAAOnoK,EAAa,QAAU,OAClCzkE,KAAK6nH,gBAAgB/+C,KAAM,SAASv2D,GAChC,IAAI6gyB,EAAY7gyB,EACZ8gyB,GAAaj4uB,QAAEp7D,MAAM21D,SAAS26uB,IAIlC,GAHI/9xB,EAAQs0H,EAAa6qqB,EAAe,IACpC0B,EAAYH,EAAyBG,EAAY1B,GAEhD2B,GAAc,IAAMD,EAAzB,CAMA,IAAIE,GAAe1xG,GAAawxG,EAAYl3iB,GAAevoH,GAAay/pB,EAAY,EAAIl3iB,GACpFjzI,GAAWoqrB,EAAazmkB,EAAK36N,cAAgB,SAAW26N,KAC5DxxK,MAAEp7D,MAAM+7D,IAAIktD,GAAU,IAAMqqrB,GAAe,UAPnCH,MACA/3uB,MAAEp7D,MAAM+7D,IAAI,SAAW6wK,EAAM,IAAMj5F,EAAY,OAQ3D3zI,KAAKuzyB,eAAejuqB,EAAeA,GAAe,IAEtD4tqB,eAAgB,WACZ,IAAIxB,EAAe1xyB,KAAKwxyB,gBACxB,OAAIxxyB,KAAKszD,OAAO,gBACZo+uB,GAAgB,IAEZ,EAAI1xyB,KAAKsxyB,mBAAqBI,IAAiBA,EAAe,IAE1EK,yBAA0B,SAAS5nuB,EAAQqpuB,EAAWl/tB,GAClDt0E,KAAKyzyB,yBACLtpuB,EAASA,GAAU,EACnB,IAIIupuB,EAJApguB,EAAOtzE,KACP4hsB,EAAY5hsB,KAAKsxyB,mBACjBxprB,EAAc39C,EACd4D,EAAiB/tE,KAAK4xyB,mBAAqB9prB,GAAe85kB,EAAY5hsB,KAAKkzyB,kBAE/E,SAAIx1xB,OAAU1d,KAAK2zyB,sBACfr/tB,EAAUt0E,KAAK2zyB,0BACR3zyB,KAAK2zyB,oBAEhB39xB,GACIs9D,EAAKsguB,cACLF,EAAgBpguB,EAAKk/I,SAASzkJ,GAAgBmG,KAAKZ,EAAKuguB,UAAU5qvB,KAAKqqB,MAEvElX,GAAKp8D,KAAKwxI,YAAa,CACnBl2E,KAAMyS,EAAiB/tE,KAAKk7N,gBAC5B3/J,IAAK,IAETm4uB,GAAiB,IAAIlguB,OAAUQ,YAAYV,IAE/CoguB,EAAcx/tB,KAAM,WAChBl0E,KAAK8yI,kBAAoBx/D,EAAKw/D,iBAAiB9+D,YAAYV,GAC3DkguB,GAAaxzyB,KAAKkyyB,0BAEfwB,EAAc55vB,WAEzB85vB,YAAa,WACT5zyB,KAAKm7D,WAAWvtD,SAASuiyB,MAE7B0D,UAAW,WACP7zyB,KAAKm7D,WAAWrtD,YAAYqiyB,MAEhC39kB,SAAU,SAASzkJ,EAAgB+luB,GAC/B,IAAIxguB,EAAOtzE,KACP+pF,EAAa/pF,KAAKwxI,YAClBwiP,EAAoB,IAAIxgT,MAC5ByB,kBAAWj1E,KAAKwxI,eAAanyH,MAAO,CAChC5T,KAAM,QACN8lE,GAAI,CACAjW,KAAMyS,EAAiB/tE,KAAKk7N,iBAEhC7mJ,SAAUf,EAAKhgB,OAAO,qBACtBp6C,SAAU,WACFo6D,EAAKyguB,6BACL33uB,GAAK2tB,EAAY,CACbzuB,KAAM,EACNC,IAAK,IAGT+X,EAAK0guB,0BACL53uB,GAAK2tB,EAAY,CACbzuB,KAAMgY,EAAK2guB,sBAAwB3guB,EAAK4nJ,gBACxC3/J,IAAK,IAGby4T,EAAkBhgT,YAAYV,KAEnCwguB,GAAe,KACX9/a,GAEX+/a,0BAA2B,WAGvB,OAFuB/zyB,KAAKwxI,YAAYx3G,WAAWshC,KAAOt7D,KAAK4xyB,qBACzC5xyB,KAAKk0yB,gBAAkBl0yB,KAAKk7N,gBAAkBl7N,KAAK04f,cArX5D,GAwXjBs7S,uBAAwB,WAGpB,OAFuBh0yB,KAAKwxI,YAAYx3G,WAAWshC,KAAOt7D,KAAK4xyB,oBAC1C5xyB,KAAKsxyB,mBAAqBtxyB,KAAKk7N,gBA1XvC,GA6XjB+4kB,oBAAqB,WACjB,OAAQj0yB,KAAKk0yB,iBAAmBl0yB,KAAK04f,cAAgB14f,KAAKwxyB,iBAAmBxxyB,KAAK4xyB,oBAEtFsC,cAAe,WACX,OAAOl0yB,KAAKsxyB,mBAAqBtxyB,KAAKkzyB,kBAE1Cb,kBAAmB,WACf,IAAIh4O,EAAar6jB,KAAK6nH,gBAAgBj4E,QAAQnK,KAAKmrwB,KAC9Cv2O,GAAcA,EAAWpwiB,GAAG,aAG5BjqB,KAAKszD,OAAO,WACbtzD,KAAKszD,OAAO,UAAUsY,SAAeyuf,IAEpCr6jB,KAAKszD,OAAO,UACbtzD,KAAKszD,OAAO,SAASqY,SAAc0uf,IAEvCr6jB,KAAK6hG,sBAET8ta,iBAAkB,WACd,IACIzyW,cAAeA,GACfl9J,KAAKszD,SAGT,GAFAtzD,KAAKm0yB,mBACLn0yB,KAAKm7D,WAAW+oC,YAtac,+BAsa+Bg5D,GACxDA,EAKL,SAFIyoJ,EAAY3lT,KAAKk8O,aAAc9gL,QAAE,SAASxtD,SAAS4iyB,KAAyB3luB,SAAS7qE,KAAK+rN,WAC1FqolB,EAAqBp0yB,KAAKszD,OAAO,oBAC5B9uD,EAAI,EAAGA,EAAIxE,KAAK2xyB,cAAentyB,IAAK,CACzC,IAAI6vyB,GAAiBj5uB,QAAE,SAASxtD,SAAS6iyB,IAA8B5luB,SAAS86O,GAC5Eyuf,GACAp0yB,KAAKs0yB,6BAA6BD,EAAgB7vyB,GAG1DxE,KAAKu0yB,iCAETD,6BAA8B,SAASn5uB,EAAU5oD,GAC7Ck8C,QAAgB0M,EAAUuT,GAAa08C,GAAgBprH,KAAKo1F,MAAO,SAAStqF,GACxE9K,KAAKw0yB,wBAAwB1pyB,EAAOyH,IACtC02C,KAAKjpD,QAEXy0yB,6BAA8B,SAASt5uB,GACnC1M,SAAiB0M,EAAUuT,GAAa08C,GAAgBprH,KAAKo1F,QAEjEs/sB,4BAA6B,SAASC,GAClC,IAAIC,EACAC,GAAmB,QAAUD,EAAoB50yB,KAAKk8O,mBAAgB,WAA+B,EAAS04jB,EAAkBnvwB,KAAKirwB,OAAqC,GAC1KmE,EAAgBpwyB,QAChBowyB,EAAgB/ruB,KAAK,SAASv2D,EAAO/K,GACjCmtyB,EAAe30yB,KAAKs0yB,gCAA6Bl5uB,MAAE5zD,GAAU+K,GAASvS,KAAKy0yB,gCAA6Br5uB,MAAE5zD,KAC5GyhD,KAAKjpD,QAGfm0yB,iBAAkB,WACVn0yB,KAAKk8O,aACLl8O,KAAKk8O,YAAYr7O,UAGzBghgB,oBAAqB,WACjB,IAAIv8X,EAAgBtlI,KAAKszD,OAAO,iBAChCtzD,KAAK6nH,gBAAgB/5G,YAAYyiyB,IAA6BpprB,GAAGme,GAAe13H,SAAS2iyB,KAE7F2B,sBAAuB,WACnB,GAAIlyyB,KAAKszD,OAAO,qBAAuBtzD,KAAKszD,OAAO,cAC/CtzD,KAAKyzyB,6BADT,CAIA,IAAInuqB,EAAgBtlI,KAAKszD,OAAO,iBAChCtzD,KAAK6nH,gBAAgB/+C,KAAK,CAACv2D,EAAOqK,KAC1B0oH,IAAkB/yH,IAClB6oD,QAAEx+C,GAAM6oB,KAAKmrwB,IAAuBhjyB,SAASyiyB,SAIzDoD,uBAAwB,WACpBzzyB,KAAK6nH,gBAAgBpiF,KAAKmrwB,IAAuB9iyB,YAAYuiyB,MAEjEkE,6BAA8B,WAC1B,GAAKv0yB,KAAKk8O,YAGV,KAAItvH,EAAY5sH,KAAKszD,OAAO,iBACxB4gU,EAAYl0X,KAAK2xyB,cAAgB,EACjCr9rB,EAAY/5F,KAAKojF,KAAKivB,EAAY5sH,KAAKwxyB,iBAC3Cl9rB,EAAY/5F,KAAKmvD,IAAIwqT,EAAW5/Q,GAChCt0G,KAAKk8O,YAAYz2M,KAAKirwB,KAAiC5iyB,YAAY6iyB,KAAuCxprB,GAAG7S,GAAW1mG,SAAS+iyB,OAErIwB,uBAAwB,WACpB,IAAInjY,EAAchva,KAAKm7D,WACnBsriB,EAAezmmB,KAAKszD,OAAO,iBAAmBtzD,KAAK04f,cAAgB,EACvE14f,KAAK24F,iBAAiBq2U,EAAa4gC,GAAW,CAC1Cxnb,SAAUpoB,KAAKszD,OAAO,cAAgBmziB,EACtC7yV,QAAS5zQ,KAAK0id,mBAAmBz5Z,KAAKjpD,MACtC2zQ,UAAW3zQ,KAAK2id,oBAAoB15Z,KAAKjpD,MACzC6zQ,MAAO7zQ,KAAK4id,iBAAiB35Z,KAAKjpD,MAClC8iN,aAAc9iN,KAAKk7N,cAAcjyK,KAAKjpD,SAG9Cw0yB,wBAAyB,SAASx+xB,EAAG8+xB,GACjC,GAAK90yB,KAAKszD,OAAO,oBAGjB,KAAIs5D,EAAY5sH,KAAK+0yB,mBAAmBD,EAAiB90yB,KAAKwxyB,iBAC9DxxyB,KAAKg1yB,eAAgB,EACrBh1yB,KAAKszD,OAAO,gBAAiBs5D,GAC7B5sH,KAAK0yyB,sBAAsB9lrB,KAE/Bq+e,kBAAmB,WACf,IAAI33hB,EAAOtzE,KACNszE,EAAKhgB,OAAO,mBAIjBggB,EAAK2huB,gBAAiB75uB,QAAE,SAASyP,SAAS7qE,KAAK+rN,WAC/Cz4I,EAAKqlB,iBAAiBrlB,EAAK2huB,eAAgBpE,IAAkB,CACzDjnuB,UAAW,OACX9lB,QAAS,WACLwvB,EAAK4huB,eAGb5huB,EAAK6huB,gBAAiB/5uB,QAAE,SAASyP,SAAS7qE,KAAK+rN,WAC/Cz4I,EAAKqlB,iBAAiBrlB,EAAK6huB,eAAgBtE,IAAkB,CACzDjnuB,UAAW,OACX9lB,QAAS,WACLwvB,EAAK8huB,eAGbp1yB,KAAKq1yB,+BAjBD/huB,EAAKs4hB,oBAmBbspM,UAAW,WACP,IAAII,EAAkBt1yB,KAAKwxyB,gBACvB13N,EAAmB95kB,KAAKszD,OAAO,iBAAmBgivB,EACtD,OAAIx7N,KAAsBw7N,GAAmBA,IAAoBt1yB,KAAK04f,cAC3D14f,KAAKuzyB,eAAez5N,EAAkB,GAEtC95kB,KAAKu1yB,SAASv1yB,KAAK+0yB,mBAAmBj7N,KAGrDs7N,UAAW,WACP,IAAIE,EAAkBt1yB,KAAKwxyB,gBACvB13N,EAAmB95kB,KAAKszD,OAAO,iBAAmBgivB,EACtD,OAAIx7N,IAAqBw7N,GAAmBA,IAAoBt1yB,KAAK04f,cAC1D14f,KAAKuzyB,eAAez5N,EAAkB,GAEtC95kB,KAAKu1yB,SAASv1yB,KAAK+0yB,mBAAmBj7N,IAAmB5lgB,KAAKl0E,KAAK0yyB,wBAGlFA,sBAAuB,SAASptqB,GAC5BA,OAAgB,MAA2BtlI,KAAKszD,OAAO,iBAAmBgyE,EACtEtlI,KAAKi8G,aAAej8G,KAAKi8G,YAAYpJ,YAAc7yG,KAAKw1yB,oBAAoBlwqB,KAAmBtlI,KAAKk9G,yBAA2Bl9G,KAAK21G,eACpI31G,KAAK2pH,gBAAgBz1C,KAAK,WACtBl0E,KAAK2vgB,mBACL3vgB,KAAKwyyB,uBACLxyyB,KAAKiyyB,uBACLjyyB,KAAKq1yB,8BACLr1yB,KAAKgyyB,iBAAiB1sqB,IACxBr8E,KAAKjpD,QAGfw1yB,oBAAqB,SAASlwqB,GAE1B,OAAOA,EAAgB,EADDtlI,KAAKwxyB,gBACkBxxyB,KAAKszD,OAAO,SAAS7uD,QAEtE6lH,yBAA0B,WACtB,OAAO,GAEXyqrB,mBAAoB,SAASnorB,GACzB,IAAI8krB,EAAe1xyB,KAAKwxyB,gBACpBiE,EAAiB7orB,EAAY,EAAI8krB,EAAe9krB,EAAY5sH,KAAK04f,cAAgB9rY,EACrF,OAAIA,EAAY5sH,KAAK04f,cAAgB,GACjC9rY,EAAY,EACZ5sH,KAAK01yB,gBAAiB,GACfD,EAAiB/D,GAAgB+D,EAAiB,IACrD7orB,EAAY,EACZA,GAAa8krB,EAAe+D,EAE5B7orB,GAAa8krB,EAAe+D,GAG7B7orB,GAEXg/e,iBAAkB,WACV5rmB,KAAKi1yB,iBACLj1yB,KAAKi1yB,eAAep0yB,gBACbb,KAAKi1yB,gBAEZj1yB,KAAKm1yB,iBACLn1yB,KAAKm1yB,eAAet0yB,gBACbb,KAAKm1yB,iBAGpBE,4BAA6B,WACzB,GAAKr1yB,KAAKszD,OAAO,mBAAsBtzD,KAAKi1yB,gBAAmBj1yB,KAAKm1yB,eAGpE,KAAI7vqB,EAAgBtlI,KAAKszD,OAAO,iBAC5B20D,EAAOjoH,KAAKszD,OAAO,QACnBuzE,EAAa7mI,KAAK04f,cAOtB,GANA14f,KAAKi1yB,eAAexgqB,OACpBz0I,KAAKm1yB,eAAe1gqB,OAChB,QACAz0I,KAAKi1yB,eAAezgqB,OACpBx0I,KAAKm1yB,eAAe3gqB,SAEpBvsB,EAGJ,KAAI0trB,EAAarwqB,IAAkBuB,EAAa7mI,KAAKwxyB,gBACjDoE,EAAa/uqB,EAAa,GAAK,IAAMvB,EAErCqwqB,EADA31yB,KAAKi8G,aAAej8G,KAAKi8G,YAAYpJ,WACxB8isB,GAAc31yB,KAAK21G,cAEnBggsB,GAAc9uqB,EAAa,EAExC+uqB,GACA51yB,KAAKi1yB,eAAezgqB,OAEpBmhqB,GACA31yB,KAAKm1yB,eAAe3gqB,UAG5B49pB,gBAAiB,WACb,IAAI9+tB,EAAOtzE,KACPixyB,EAAiB39tB,EAAKhgB,OAAO,kBACjCiL,aAAa+U,EAAKuiuB,iBACb5E,IAGL39tB,EAAKuiuB,gBAAkB91vB,WAAY,WAC3BuzB,EAAKwiuB,iBACLxiuB,EAAK8+tB,kBAGT9+tB,EAAKolhB,UAAS,GAAMxkhB,KAAKZ,EAAK8+tB,kBAC9BnB,KAER/1kB,cAAe,WACX,OAAKl7N,KAAK+1yB,qBACN/1yB,KAAK+1yB,oBAAqBpwuB,SAAS3lE,KAAKm7D,aAErCn7D,KAAK+1yB,oBAEhBxD,iBAAkB,kBACPvyyB,KAAK+1yB,oBAEhBrzV,mBAAoB,SAAS1sc,GACzBhW,KAAKyzyB,yBACLzzyB,KAAKuyyB,mBACLvyyB,KAAKk7N,gBACL,IAAIr0F,EAAa7mI,KAAK04f,cACtB,GAAK7xX,GAOL,GAHA7mI,KAAKsyyB,sBACLtyyB,KAAK4zyB,cACL5zyB,KAAK81yB,kBAAmB,GACnB91yB,KAAKszD,OAAO,QAAS,CACtB,IAAIgyE,EAAgBtlI,KAAKszD,OAAO,iBAC5B8oM,EAAcv1H,EAAavB,EAAgBtlI,KAAKwxyB,gBAChDwE,EAAY1wqB,EACZ7gE,EAAazkE,KAAKszD,OAAO,cAC7Bt9C,EAAElL,MAAMy1M,cAAgB97I,EAAauxuB,EAAY55iB,EACjDpmP,EAAElL,MAAM21M,eAAiBh8I,EAAa23L,EAAc45iB,QAZpDhgyB,EAAElL,MAAMuzD,QAAS,GAezBi0uB,oBAAqB,WACjBr9tB,QAAQj1E,KAAKwxI,aAAa,IAE9BmxU,oBAAqB,SAAS3sc,GAC1B,IAAIigyB,EAAkBj2yB,KAAKszD,OAAO,cAAgB,EAAI,EAClD6W,EAASnqE,KAAK4xyB,mBAAqB57xB,EAAElL,MAAMq/D,QAAUnqE,KAAKwxyB,gBAAkByE,GAAmBj2yB,KAAKszD,OAAO,iBAC3G6W,EAAS,GACTnqE,KAAK0yyB,sBAAsBn4xB,KAAKojF,KAAKpjF,KAAKyjD,IAAImM,KAElDnqE,KAAK+xyB,yBAAyB5nuB,IAElCy4Y,iBAAkB,SAAS5sc,GACvB,IAAI25N,EAAe35N,EAAElL,MAAM6kO,aAAe3vO,KAAK4xyB,mBAAqB5xyB,KAAKwxyB,gBACrElsqB,EAAgBtlI,KAAKszD,OAAO,iBAC5B6iD,EAAWn2G,KAAKg5kB,UAAU1zc,EAAgBqqG,GAC1CumkB,EAAiBl2yB,KAAK+0yB,mBAAmB5+rB,GACzC57F,KAAKyjD,IAAI2xK,GAAgB3vO,KAAKwxyB,gBAC9BxxyB,KAAKuzyB,eAAejuqB,GAGpBtlI,KAAKwxyB,kBAAoBxxyB,KAAK04f,cAQlC14f,KAAKszD,OAAO,gBAAiB4ivB,GANrBl2yB,KAAKuzyB,eADL5jkB,EAAe,GACMA,EAED,IAMhCwmkB,kBAAmB,WACfn2yB,KAAK81yB,kBAAmB,EACxB,IAAI5wqB,EAAellI,KAAK6yyB,gBAAgB/rxB,OAAO,IAAMypxB,IACrDvwyB,KAAKszD,OAAO,iBAAkBimB,GAAiB2rD,IAC/CllI,KAAK81yB,kBAAmB,GAE5BM,WAAY,SAAS7jyB,GACjB,IAAIs0H,EAAa7mI,KAAK04f,cACtBnmf,UAASs0H,IACIA,EAAa,GAAK,IAC3Bt0H,GAASs0H,GAETt0H,IAAUs0H,EAAa,GAAK,IAC5Bt0H,GAASs0H,GAENt0H,GAEXymkB,UAAW,SAASzmkB,GAChB,IAAKvS,KAAKszD,OAAO,QACb,OAAO/gD,EAEX,IAAIs0H,EAAa7mI,KAAK04f,cACtB,OAAInmf,GAASs0H,GAAct0H,EAAQ,KAC/BvS,KAAK01yB,gBAAiB,GAEtBnjyB,GAASs0H,IACTt0H,EAAQs0H,EAAat0H,IAEzBA,GAASs0H,GACG,IACRt0H,GAASs0H,GAENt0H,GAEXkxF,OAAQ,WACJzjG,KAAKm5D,WACLn5D,KAAKm0yB,mBACLn0yB,KAAK4rmB,oBAETlolB,SAAU,WACN1jB,KAAK+wyB,4BAA8B,KACnCxyuB,aAAav+D,KAAK61yB,iBAClB71yB,KAAKm5D,YAET0vE,iBAAkB,SAASL,EAAgBC,GACvCzoI,KAAKsyyB,sBACLtyyB,KAAKq1yB,8BACLr1yB,KAAK6hgB,sBACL7hgB,KAAKuzyB,eAAe/qqB,EAAe,GAAIC,EAAiB,IACxDzoI,KAAKu0yB,gCAEThB,eAAgB,SAASp9rB,EAAUqtb,EAAW6yQ,QACtC,QACA7yQ,EAAYrtb,GAEhB,IAAI8sB,EAAcjjI,KAAKyyyB,sBAAsBt8rB,EAAUqtb,GACvDxjiB,KAAK+xyB,yBAAyB9uqB,GAAa,EAAMjjI,KAAKszD,OAAO,sBAAwB+ivB,GAAkBniuB,KAAM,WACzGl0E,KAAKm2yB,oBACLn2yB,KAAK81yB,kBAAmB,EACxB91yB,KAAKoyyB,qBAGbvmsB,gBAAiB,WACT52B,eAAej1E,KAAKwxI,cAAgBxxI,KAAK81yB,kBAG7C91yB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAE9BgsG,iBAAkB,WACV92B,eAAej1E,KAAKwxI,cAAgBxxI,KAAK81yB,kBAG7C91yB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAE9BooH,mBAAoB77D,MACpBs3D,WAAY,WACR5jH,KAAKsyyB,sBACLtyyB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1B,IAAIwS,EAAQvS,KAAK6oH,eAAet2G,OAAM6oD,QAAEp7D,KAAKszD,OAAO,oBACpDtzD,KAAKu1yB,SAAShjyB,EAAOvS,KAAKszD,OAAO,sBAErCsuC,mBAAoB,SAAS7yB,GACrBA,GACA/uE,KAAKqyyB,qBAGbI,sBAAuB,SAASt8rB,EAAU+9Q,QAClC,QACAA,EAAY/9Q,GAEhB,IAAI8sB,EAAcixP,EAAY/9Q,EAC9B,OAAIn2G,KAAKszD,OAAO,UAAYtzD,KAAKg1yB,eAAiBh1yB,KAAK01yB,iBAC/C11yB,KAAKs2yB,mBAAmBngsB,IAAan2G,KAAKu2yB,kBAAkBrib,GAC5DjxP,GAAejjI,KAAKwxyB,gBACbxxyB,KAAKu2yB,kBAAkBpgsB,IAAan2G,KAAKs2yB,mBAAmBpib,KACnEjxP,EAAcjjI,KAAKwxyB,iBAEvBxxyB,KAAK01yB,gBAAiB,GAE1B11yB,KAAKg1yB,eAAgB,EACrB/xqB,EAAeixP,GAGnBqib,kBAAmB,SAAS3prB,GACxB,OAAOA,GAAa5sH,KAAK04f,cAAgB14f,KAAKwxyB,iBAElD8E,mBAAoB,SAAS1prB,GACzB,OAAOA,GAAa5sH,KAAKwxyB,iBAE7Bj7sB,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,YACA,mBACDrD,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK6hG,oBACL,UACC,oBACD7hG,KAAKq1yB,8BACL,UACC,mBACD,UACC,OACDr1yB,KAAKm7D,WAAW+oC,YAAYgssB,IAAoBv3xB,EAAK/L,OACrD5M,KAAKszD,OAAO,gBAAiB36C,EAAK/L,UAC9BsxD,WACAl+D,KAAKwyyB,uBACLxyyB,KAAKiyyB,uBACLjyyB,KAAKq1yB,+BAET,UACC,gBACDr1yB,KAAK2vgB,mBACL,UACC,iBACD3vgB,KAAKirmB,oBACL,UACC,iBACDjrmB,KAAKoyyB,kBACL,UACC,iBACA,mBACGl0uB,WACAl+D,KAAKgyyB,mBACLhyyB,KAAKiyyB,uBACLjyyB,KAAKkyyB,yBAET,UACC,eACDlyyB,KAAKmyyB,yBACL,UACC,mBACDnyyB,KAAK00yB,4BAA4B/7xB,EAAK/L,OACtC,cAEA5M,KAAKm5D,SAASxgD,KAG1B48xB,SAAU,SAAS3orB,EAAW3lD,GAC1B,IAAIq+D,EAAgBtlI,KAAKszD,OAAO,iBAC5BuzE,EAAa7mI,KAAK04f,cAMtB,YALI,QACA14f,KAAK2zyB,mBAAqB1suB,GAE9B2lD,EAAY5sH,KAAKg5kB,UAAUpsd,GAC3B5sH,KAAK8yI,iBAAmB,IAAIt/D,MACxBo5C,EAAYia,EAAa,GAAKja,EAAY,GAAK0Y,IAAkB1Y,EAC1D5sH,KAAK8yI,iBAAiB9+D,YAAYh0E,MAAM85C,WAEnD95C,KAAKszD,OAAO,gBAAiBs5D,GACtB5sH,KAAK8yI,iBAAiBh5F,YAEjCqppB,SAAU,SAASl8nB,GACf,OAAOjnE,KAAKu1yB,SAASv1yB,KAAKszD,OAAO,iBAAmB,EAAG2T,IAE3DyxhB,SAAU,SAASzxhB,GACf,OAAOjnE,KAAKu1yB,SAASv1yB,KAAKszD,OAAO,iBAAmB,EAAG2T,MAG/DitE,GAAkB,YAAa48pB,KAC/B,UAAeA,QC74BT0F,UAAN,gBAAiCtgvB,GAC7Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,kBAAmBsI,KAAM,qBACtC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEA,KAAM,mBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BwkI,wBACA,OAAOpxI,KAAKozD,WAAW,qBAEvBg+E,sBAAkBxkI,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC46S,uBACA,OAAOxnT,KAAKozD,WAAW,oBAEvBo0P,qBAAiB56S,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCokyB,uBACA,OAAOhxyB,KAAKozD,WAAW,oBAEvB49uB,qBAAiBpkyB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCukyB,uBACA,OAAOnxyB,KAAKozD,WAAW,oBAEvB+9uB,qBAAiBvkyB,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCo4G,sBACA,OAAOhlH,KAAKozD,WAAW,mBAEvB4xD,oBAAgBp4G,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCynD,YACA,OAAOr0D,KAAKozD,WAAW,SAEvBiB,UAAMznD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBg4G,mBACA,OAAO5kH,KAAKozD,WAAW,gBAEvBwxD,iBAAah4G,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCq7G,WACA,OAAOjoH,KAAKozD,WAAW,QAEvB60D,SAAKr7G,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBu4G,iBACA,OAAOnlH,KAAKozD,WAAW,cAEvB+xD,eAAWv4G,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B04H,oBACA,OAAOtlI,KAAKozD,WAAW,iBAEvBkyE,kBAAc14H,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCs4H,mBACA,OAAOllI,KAAKozD,WAAW,gBAEvB8xE,iBAAat4H,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCswJ,oBACA,OAAOl9J,KAAKozD,WAAW,iBAEvB8pG,kBAActwJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCm9lB,qBACA,OAAO/pmB,KAAKozD,WAAW,kBAEvB22iB,mBAAen9lB,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCqkyB,qBACA,OAAOjxyB,KAAKozD,WAAW,kBAEvB69uB,mBAAerkyB,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwkyB,oBACA,OAAOpxyB,KAAKozD,WAAW,iBAEvBg+uB,kBAAcxkyB,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC65lB,mBACA,OAAOzmmB,KAAKozD,WAAW,gBAEvBqziB,iBAAa75lB,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBskyB,iBACA,OAAOlxyB,KAAKozD,WAAW,cAEvB89uB,eAAWtkyB,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAE9Bm2I,oBACA,OAAO/iJ,KAAKozD,WAAW,SAEvB2vF,kBAAcn2I,GACd5M,KAAKm0D,YAAY,QAASvnD,GAE9BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI6kxB,IAAUjvyB,EAASoqB,GAElChoB,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,QAASv8I,GAE/Bu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB4pyB,SAAmB/vyB,UAAO,SAAoCP,GAAK,OAAO,IAAKA,GAAKswyB,GAAoB7vyB,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACtZ4iyB,EAAmB1qwB,UAAiCnlC,MAAqB,CAAE8E,KAAM+qyB,EAAoBxwxB,UAAW,CAAC,CAAC,eAAgBk4H,eAAgB,SAA2CxpF,EAAIv9C,EAAKgnI,GAEnN,GAFwO,EAALzpF,GACjO/tD,MAAkBw3I,EAAU6E,GAAkB,GACvC,EAALtuF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI4rI,cAAgB3E,KAChElpH,OAAQ,CAAE4zE,UAAW,YAAasoC,kBAAmB,oBAAqBo2K,iBAAkB,mBAAoBhrM,WAAY,aAAcp0F,SAAU,WAAY+4E,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqBoosB,iBAAkB,mBAAoBG,iBAAkB,mBAAoBnsrB,gBAAiB,kBAAmB3wD,MAAO,QAASuwD,aAAc,eAAgBqD,KAAM,OAAQ9C,WAAY,aAAc1gD,WAAY,aAAc6gE,cAAe,gBAAiBJ,aAAc,eAAgBg4B,cAAe,gBAAiB6sc,eAAgB,iBAAkBknM,eAAgB,iBAAkBG,cAAe,gBAAiB3qM,aAAc,eAAgB53hB,SAAU,WAAYE,QAAS,UAAWnP,MAAO,QAASsxuB,WAAY,cAAgB7ypB,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAeF,cAAe,gBAAiBswB,YAAa,cAAeG,kBAAmB,oBAAqBF,WAAY,aAAcF,eAAgB,iBAAkBpwB,gBAAiB,kBAAmBuiC,mBAAoB,qBAAsB47C,gBAAiB,kBAAmBE,wBAAyB,0BAA2BmjlB,uBAAwB,yBAA0BjjlB,iBAAkB,mBAAoBE,eAAgB,iBAAkBC,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2BojoB,uBAAwB,yBAA0BC,uBAAwB,yBAA0BpjoB,sBAAuB,wBAAyBC,YAAa,cAAeC,mBAAoB,qBAAsBmjoB,WAAY,aAAc/ioB,iBAAkB,mBAAoBE,iBAAkB,mBAAoBC,oBAAqB,sBAAuBC,mBAAoB,qBAAsB4ioB,oBAAqB,sBAAuBC,qBAAsB,uBAAwBC,qBAAsB,uBAAwBC,oBAAqB,sBAAuBC,mBAAoB,qBAAsB7ioB,eAAgB,iBAAkB/pB,cAAe,gBAAiBkG,YAAa,cAAe2mpB,iBAAkB,oBAAsBjyxB,SAAU,CAACte,MAAsB,CAC3yE2rD,GACAxC,GACAklF,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAqC4F,EAAIv9C,KAAUzL,cAAe,IAlY9J8qyB,MA4hBAW,UAAN,SAEmBA,SAAgB1wyB,UAAO,SAAiCP,GAAK,OAAO,IAAKA,GAAKixyB,IAC9EA,EAAgBliyB,UAAiCtO,MAAoB,CAAE8E,KAAM0ryB,IAC7EA,EAAgBjiyB,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACxFsvI,GACAxqF,GACA1H,IACDkyF,GACHlyF,MATF4kvB,MC5iBN,IAAIC,GAAc,QACdC,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,sBACtBC,WACCC,IAAU,CACdC,kBAAmB,CAAC/osB,EAAMjpG,EAAUqmuB,KAChC0rE,EAAME,kBAAkBP,GAAazosB,EAAMjpG,IAE/CkyyB,kBAAmB,CAACC,EAAQ9rE,EAAep9nB,KACvC8osB,EAAMK,iBAAiBV,GAAaS,EAAQlpsB,IAEhDopsB,kBAAmB,CAACF,EAAQ3jX,EAAW63S,KACnC0rE,EAAMO,iBAAiBZ,GAAaS,EAAQ3jX,IAEhD+jX,wBAAyB,CAACtpsB,EAAMo9nB,KAC5B0rE,EAAMS,qBAAqBvpsB,IAE/BwpsB,yBAA0B,CAAClxmB,EAAYvhM,EAAUqmuB,KAC7C0rE,EAAME,kBAAkBN,GAAoBpwmB,EAAYvhM,IAE5D0yyB,wBAAyB,CAACC,EAActsE,EAAe9kiB,KACnDwwmB,EAAMK,iBAAiBT,GAAoBgB,EAAcpxmB,IAE7DqxmB,sBAAuB,CAACC,EAAU7yyB,EAAUqmuB,KACxC0rE,EAAME,kBAAkBL,GAAiBiB,EAAU7yyB,IAEvD8yyB,sBAAuB,CAACC,EAAY1sE,EAAewsE,KAC/Cd,EAAMK,iBAAiBR,GAAiBmB,EAAYF,IAExDG,uBAAwB,CAACC,EAAYjzyB,EAAUqmuB,KAC3C0rE,EAAME,kBAAkBJ,GAA4BoB,EAAYjzyB,IAEpEkzyB,yBAA0B,CAACC,EAAc9sE,EAAe4sE,KACpDlB,EAAMK,iBAAiBP,GAA4BsB,EAAcF,IAErEG,6BAA8B1syB,IAC1BqryB,EAAMsB,2BAA2B3syB,IAErC4syB,mBAAoBrgyB,IAChB8+xB,EAAMwB,gBAAgBC,qBAAqB9B,GAAaz+xB,IAE5DwgyB,mBAAoBxgyB,IAChB8+xB,EAAMwB,gBAAgBG,oBAAoBhC,GAAaz+xB,IAE3D0gyB,mBAAoB1gyB,IAChB8+xB,EAAMwB,gBAAgBK,oBAAoBlC,GAAaz+xB,IAE3D4gyB,iBAAkB5gyB,IACd8+xB,EAAMwB,gBAAgBK,oBAAoBlC,GAAaz+xB,EAAM8+xB,EAAMwB,gBAAgBO,wBAEvFC,4BAA6B9gyB,IACzB8+xB,EAAMwB,gBAAgBS,iCAAiC/gyB,IAE3DghyB,mCAAoChhyB,IAChC8+xB,EAAMwB,gBAAgBW,wCAAwCjhyB,IAElEkhyB,0BAA2BlhyB,IACvB8+xB,EAAMwB,gBAAgBC,qBAAqB7B,GAAoB1+xB,IAEnEmhyB,yBAA0BnhyB,IACtB8+xB,EAAMwB,gBAAgBG,oBAAoB/B,GAAoB1+xB,IAElEohyB,uBAAwBphyB,IACpB8+xB,EAAMwB,gBAAgBC,qBAAqB5B,GAAiB3+xB,IAEhEqhyB,uBAAwBrhyB,IACpB8+xB,EAAMwB,gBAAgBG,oBAAoB9B,GAAiB3+xB,IAE/DshyB,wBAAyBthyB,IACrB8+xB,EAAMwB,gBAAgBC,qBAAqB3B,GAA4B5+xB,IAE3EuhyB,0BAA2BvhyB,IACvB8+xB,EAAMwB,gBAAgBG,oBAAoB7B,GAA4B5+xB,IAE1EwhyB,wBAAyBxhyB,IACrB8+xB,EAAMwB,gBAAgBmB,6BAA6BzhyB,IAEvD0hyB,uBAAwB,KACpB5C,EAAM6C,6BC3ElB,kBAAyBnmtB,GACrBt0F,YAAYiyF,EAAYyotB,EAAcC,GAClC16yB,QACAE,KAAKy6yB,YAAc3otB,EACnB9xF,KAAK06yB,cAAgBH,EACrBv6yB,KAAK26yB,2BAA6BH,EAEtCpnxB,OAAOhnB,EAAM1G,EAAUqmuB,GACnB/ruB,KAAK46yB,iBACL56yB,KAAKgsuB,YAAY54sB,OAAOhnB,GAAM8nE,KAAKgmL,IAC3Bx0P,GACAA,EAASw0P,GAEbl6P,KAAK66yB,mBACN1muB,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,GAElB5gB,KAAK66yB,mBAGbplxB,OAAOtjB,EAAK/F,EAAM1G,EAAUqmuB,GACxB/ruB,KAAK46yB,iBACL56yB,KAAKgsuB,YAAYv2sB,OAAOtjB,EAAK/F,GAAM8nE,KAAK,CAAC9nE,EAAM+F,KACvCzM,GACAA,EAAS0G,EAAM+F,GAEnBnS,KAAK66yB,mBACN1muB,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,GAElB5gB,KAAK66yB,mBAGbh6yB,OAAOsR,EAAKzM,EAAUqmuB,GAClB/ruB,KAAK46yB,iBACL56yB,KAAKgsuB,YAAYnruB,OAAOsR,GAAK+hE,KAAK/hE,IAC1BzM,GACAA,EAASyM,GAEbnS,KAAK66yB,mBACN1muB,KAAKvzD,IACAmrtB,GACAA,EAAcnrtB,GAElB5gB,KAAK66yB,mBAGb7wrB,0BAA0BC,EAAUj0G,GAChChW,KAAK26yB,2BAA2B36yB,KAAKy6yB,YAAaxwrB,GAEtDtD,qBACI,MAAO,CACH9T,UAAU,GAGlBqsK,iCAAiChoK,GACzBA,IAAcl3G,KAAKi8G,YAAYhF,WAC/Bj3G,KAAK46yB,iBAEL56yB,KAAK66yB,iBAGbD,iBACI,IAAIE,EACJ,QAAUA,EAAsB96yB,KAAK06yB,uBAAoB,OAA0CI,EAAoBrmqB,OAE3HomqB,iBACI,IAAIE,EACJ,QAAUA,EAAuB/6yB,KAAK06yB,uBAAoB,OAA2CK,EAAqBvmqB,OAE9Hw3lB,YACI,OAAOhsuB,KAAKi8G,YAAY1mG,QAE5BgrrB,YACI,OAAOvgsB,KAAKgsuB,YAAYv7nB,QAAUzwG,KAAKi8G,YAAY5nD,QAEvD2mvB,oBACI,OAAOh7yB,KAAKi8G,YAAYvrE,OAE5BoQ,UACI9gD,KAAKy7G,qBAETllB,eAAe59E,KAInBsiyB,IAAWprrB,QAAQtU,IACnB,UAAe0/rB,ICtFf,IA6BI7D,GAAc,QACdC,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,sBAE1B,UACH13yB,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EACdz3yB,KAAKm7yB,eAAiB1D,EAAM0D,eAC5Bn7yB,KAAKo7yB,qBAAuB3D,EAAM2D,qBAEtChltB,sBAAsBtE,GAClB,OAAO9xF,KAAKk7yB,OAAO9ktB,sBAAsBtE,GAE7CuptB,aAAalpyB,GACT,OAAOnS,KAAKk7yB,OAAOI,YAAYnpyB,GAEnCopyB,yBAAyBzptB,EAAY0ptB,GACjC,OAAOx7yB,KAAKm7yB,eAAeM,wBAAwB3ptB,EAAY0ptB,GAEnEE,yBAAyB5ptB,EAAY6ptB,GACjC,OAAO37yB,KAAKm7yB,eAAeS,wBAAwB9ptB,EAAY6ptB,GAEnEE,2BAA2B/ptB,EAAY2wB,GACnC,OAAOziH,KAAKm7yB,eAAeW,0BAA0BhqtB,EAAY2wB,GAErEs5rB,2BAA2BjqtB,EAAY2wB,GACnC,OAAOziH,KAAKm7yB,eAAea,0BAA0BlqtB,EAAY2wB,GAErEw5rB,6BAA6B9pyB,EAAK/F,GAG9BpM,KAAKo7yB,qBAAqBc,4BAA4B/pyB,EAAK/F,EAF9BrM,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GAC1DA,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,IAG/Fo8yB,2BACIn8yB,KAAKo8yB,oBAAsBp8yB,KAAKo2F,sBA9CpB,kBAgDhBimtB,mBAAmB1jyB,GACV3Y,KAAKo8yB,qBACNp8yB,KAAKm8yB,2BAETn8yB,KAAKo8yB,oBAAoBzjyB,GAE7B2jyB,wBAAwBnqyB,EAAKrH,GACzB,IAAI6N,EAAO,CACP0lD,QAAQ,EACRjyD,KAAMpM,KAAKq7yB,aAAalpyB,GACxBrH,MAAOA,EACPqH,IAAKA,GAET,YAAKkqyB,mBAAmB1jyB,IAChBA,EAAK0lD,OAEjBk+uB,wBACIv8yB,KAAKw8yB,iBAAmBx8yB,KAAKo2F,sBAlEpB,eAoEbqmtB,gBAAgB9jyB,GACP3Y,KAAKw8yB,kBACNx8yB,KAAKu8yB,wBAETv8yB,KAAKw8yB,iBAAiB7jyB,GAE1B+jyB,qBAAqBvqyB,EAAKrH,GACtB,IAAI6N,EAAO,CACPxG,IAAKA,EACLrH,MAAOA,EACPsB,KAAMpM,KAAKq7yB,aAAalpyB,IAE5BnS,KAAKy8yB,gBAAgB9jyB,GAEzBgkyB,+BACI38yB,KAAK0oR,wBAA0B1oR,KAAKo2F,sBApFpB,sBAsFpBwmtB,uBAAuBjkyB,GACd3Y,KAAK0oR,yBACN1oR,KAAK28yB,+BAET38yB,KAAK0oR,wBAAwB/vQ,GAEjCkkyB,4BAA4BC,GACxB98yB,KAAK48yB,uBAAuB,CACxBE,eAAgBA,IAGxBC,4BACI/8yB,KAAKkxuB,qBAAuBlxuB,KAAKo2F,sBAhHpB,mBAkHjB4mtB,oBAAoBrkyB,GACX3Y,KAAKkxuB,sBACNlxuB,KAAK+8yB,4BAET/8yB,KAAKkxuB,qBAAqBv4tB,GAE9BskyB,mBAAmBtrC,GACf3xwB,KAAKg9yB,oBAAoB,CACrB35yB,KAAMsuwB,IAGdurC,mCACIl9yB,KAAKm9yB,4BAA8Bn9yB,KAAKo2F,sBA/HpB,0BAiIxBgntB,2BAA2BzkyB,GAClB3Y,KAAKm9yB,6BACNn9yB,KAAKk9yB,mCAETl9yB,KAAKm9yB,4BAA4BxkyB,GAErC0kyB,0BAA0BzrxB,GACtB5xB,KAAKo9yB,2BAA2BxrxB,GAEpC0rxB,oBAAoBxrtB,GAChB,OAAQA,QACCsltB,GACD,OAAOp3yB,KAAKu9yB,+BACXlG,GACD,OAAOr3yB,KAAKw9yB,qCACXlG,GACD,OAAOt3yB,KAAKy9yB,mCACXlG,GACD,OAAOv3yB,KAAK09yB,8BAEpB,MAAO,OAEXxE,qBAAqBpntB,EAAY6rtB,GAC7B,IAAI5wtB,EAAS/sF,KAAKs9yB,oBAAoBxrtB,GACtC,GAAI/E,EAAQ,CACR,IAAIp0E,EAAO,CACP0lD,QAAQ,EACRllD,OAAQnZ,KAAKu7yB,yBAAyBzptB,EAAY6rtB,EAASxkyB,SAE/D4zE,EAAOp0E,GACPglyB,EAASt/uB,OAAS1lD,EAAK0lD,QACvBh/C,QAAOs+xB,EAASxkyB,OAAQnZ,KAAK07yB,yBAAyB5ptB,EAAYn5E,EAAKQ,SACnE24E,IAAesltB,IACfp3yB,KAAKi8yB,6BAlIU,qBAkI6CtjyB,EAAKQ,SAI7EykyB,4BACI59yB,KAAK69yB,qBAAuB79yB,KAAKo2F,sBAjJpB,mBAmJjB0ntB,oBAAoBnlyB,GACH3Y,KAAKu9yB,yBAClBxwtB,CAAOp0E,GAEX4kyB,0BACI,OAAKv9yB,KAAK69yB,sBACN79yB,KAAK49yB,4BAEF59yB,KAAK69yB,qBAEhBE,kCACI/9yB,KAAKg+yB,2BAA6Bh+yB,KAAKo2F,sBA/KpB,yBAiLvB6ntB,0BAA0BtlyB,GACT3Y,KAAKw9yB,+BAClBzwtB,CAAOp0E,GAEX6kyB,gCACI,OAAKx9yB,KAAKg+yB,4BACNh+yB,KAAK+9yB,kCAEF/9yB,KAAKg+yB,2BAEhBE,gCACIl+yB,KAAKm+yB,yBAA2Bn+yB,KAAKo2F,sBAtLpB,uBAwLrBgotB,wBAAwBzlyB,GACP3Y,KAAKy9yB,6BAClB1wtB,CAAOp0E,GAEX8kyB,8BACI,OAAKz9yB,KAAKm+yB,0BACNn+yB,KAAKk+yB,gCAEFl+yB,KAAKm+yB,yBAEhBE,gCACIr+yB,KAAKs+yB,yBAA2Bt+yB,KAAKo2F,sBAvMpB,uBAyMrBmotB,wBAAwB5lyB,GACP3Y,KAAK09yB,6BAClB3wtB,CAAOp0E,GAEX+kyB,8BACI,OAAK19yB,KAAKs+yB,0BACNt+yB,KAAKq+yB,gCAEFr+yB,KAAKs+yB,yBAEhBE,mBAAmB1stB,GACf,OAAQA,QACCsltB,GACD,OAAOp3yB,KAAKy+yB,8BACXpH,GACD,OAAOr3yB,KAAK0+yB,oCACXpH,GACD,OAAOt3yB,KAAK2+yB,kCACXpH,GACD,OAAOv3yB,KAAK4+yB,6BAEpB,MAAO,OAEXC,oBAAoB/stB,EAAY1lF,EAAM+F,GAClC,IAAI46E,EAAS/sF,KAAKw+yB,mBAAmB1stB,GACjC/E,GAKAA,EAJW,CACP5zE,OAAQ/M,EACR+F,IAAKA,IAKjB2syB,2BACI9+yB,KAAK++yB,oBAAsB/+yB,KAAKo2F,sBA7NpB,kBA+NhB4otB,mBAAmBrmyB,GACF3Y,KAAKy+yB,wBAClB1xtB,CAAOp0E,GAEX8lyB,yBACI,OAAKz+yB,KAAK++yB,qBACN/+yB,KAAK8+yB,2BAEF9+yB,KAAK++yB,oBAEhBE,iCACIj/yB,KAAKk/yB,0BAA4Bl/yB,KAAKo2F,sBA3PpB,wBA6PtB+otB,yBAAyBxmyB,GACR3Y,KAAK0+yB,8BAClB3xtB,CAAOp0E,GAEX+lyB,+BACI,OAAK1+yB,KAAKk/yB,2BACNl/yB,KAAKi/yB,iCAEFj/yB,KAAKk/yB,0BAEhBE,+BACIp/yB,KAAKq/yB,wBAA0Br/yB,KAAKo2F,sBAlQpB,sBAoQpBkptB,uBAAuB3myB,GACN3Y,KAAK2+yB,4BAClB5xtB,CAAOp0E,GAEXgmyB,6BACI,OAAK3+yB,KAAKq/yB,yBACNr/yB,KAAKo/yB,+BAEFp/yB,KAAKq/yB,wBAEhBE,+BACIv/yB,KAAKw/yB,wBAA0Bx/yB,KAAKo2F,sBAnRpB,sBAqRpBqptB,uBAAuB9myB,GACN3Y,KAAK4+yB,4BAClB7xtB,CAAOp0E,GAEXimyB,6BACI,OAAK5+yB,KAAKw/yB,yBACNx/yB,KAAKu/yB,+BAEFv/yB,KAAKw/yB,wBAEhBE,mBAAmB5ttB,GACf,OAAQA,QACCsltB,GACD,OAAOp3yB,KAAK2/yB,8BACXtI,GACD,OAAOr3yB,KAAK4/yB,oCACXtI,GACD,OAAOt3yB,KAAK6/yB,kCACXtI,GACD,OAAOv3yB,KAAK8/yB,gCAEpB,MAAO,OAEX1G,oBAAoBtntB,EAAY6rtB,GAC5B,IAAI5wtB,EAAS/sF,KAAK0/yB,mBAAmB5ttB,GACrC,GAAI/E,EAAQ,CACR,IAAIp0E,EAAO,CACP0lD,QAAQ,EACRlsD,IAAKwryB,EAASxryB,IACdgH,OAAQnZ,KAAKu7yB,yBAAyBzptB,EAAY6rtB,EAASxkyB,SAE/D4zE,EAAOp0E,GACPglyB,EAASt/uB,OAAS1lD,EAAK0lD,QAG/B0hvB,2BACI//yB,KAAKggzB,oBAAsBhgzB,KAAKo2F,sBA5SpB,kBA8ShB6ptB,mBAAmBtnyB,GACF3Y,KAAK2/yB,wBAClB5ytB,CAAOp0E,GAEXgnyB,yBACI,OAAK3/yB,KAAKggzB,qBACNhgzB,KAAK+/yB,2BAEF//yB,KAAKggzB,oBAEhBE,iCACIlgzB,KAAKmgzB,0BAA4BngzB,KAAKo2F,sBAzUpB,wBA2UtBgqtB,yBAAyBznyB,GACR3Y,KAAK4/yB,8BAClB7ytB,CAAOp0E,GAEXinyB,+BACI,OAAK5/yB,KAAKmgzB,2BACNngzB,KAAKkgzB,iCAEFlgzB,KAAKmgzB,0BAEhBE,+BACIrgzB,KAAKsgzB,wBAA0BtgzB,KAAKo2F,sBAhVpB,sBAkVpBmqtB,uBAAuB5nyB,GACN3Y,KAAK6/yB,4BAClB9ytB,CAAOp0E,GAEXknyB,6BACI,OAAK7/yB,KAAKsgzB,yBACNtgzB,KAAKqgzB,+BAEFrgzB,KAAKsgzB,wBAEhBE,kCACIxgzB,KAAKygzB,2BAA6BzgzB,KAAKo2F,sBAxVpB,yBA0VvBsqtB,0BAA0B/nyB,GACT3Y,KAAK8/yB,+BAClB/ytB,CAAOp0E,GAEXmnyB,gCACI,OAAK9/yB,KAAKygzB,4BACNzgzB,KAAKwgzB,kCAEFxgzB,KAAKygzB,2BAEhBE,kBAAkB7utB,GACd,OAAQA,QACCsltB,GACD,OAAOp3yB,KAAK4gzB,6BACXvJ,GACD,OAAOr3yB,KAAK6gzB,mCACXvJ,GACD,OAAOt3yB,KAAK8gzB,iCACXvJ,GACD,OAAOv3yB,KAAK+gzB,+BAEpB,MAAO,OAEXC,mBAAmBlvtB,EAAY3/E,EAAK/F,GAChC,IAAI2gF,EAAS/sF,KAAK2gzB,kBAAkB7utB,GAChC/E,GAKAA,EAJW,CACP56E,IAAKA,EACLgH,OAAQ/M,IAKpB60yB,0BACIjhzB,KAAKkhzB,mBAAqBlhzB,KAAKo2F,sBAxXpB,iBA0Xf+qtB,kBAAkBxoyB,GACD3Y,KAAK4gzB,uBAClB7ztB,CAAOp0E,GAEXioyB,wBACI,OAAK5gzB,KAAKkhzB,oBACNlhzB,KAAKihzB,0BAEFjhzB,KAAKkhzB,mBAEhBE,gCACIphzB,KAAKqhzB,yBAA2BrhzB,KAAKo2F,sBArZpB,uBAuZrBkrtB,wBAAwB3oyB,GACP3Y,KAAK6gzB,6BAClB9ztB,CAAOp0E,GAEXkoyB,8BACI,OAAK7gzB,KAAKqhzB,0BACNrhzB,KAAKohzB,gCAEFphzB,KAAKqhzB,yBAEhBE,8BACIvhzB,KAAKwhzB,uBAAyBxhzB,KAAKo2F,sBA5ZpB,qBA8ZnBqrtB,sBAAsB9oyB,GACL3Y,KAAK8gzB,2BAClB/ztB,CAAOp0E,GAEXmoyB,4BACI,OAAK9gzB,KAAKwhzB,wBACNxhzB,KAAKuhzB,8BAEFvhzB,KAAKwhzB,uBAEhBE,iCACI1hzB,KAAK2hzB,0BAA4B3hzB,KAAKo2F,sBApapB,wBAsatBwrtB,yBAAyBjpyB,GACR3Y,KAAK+gzB,8BAClBh0tB,CAAOp0E,GAEXooyB,+BACI,OAAK/gzB,KAAK2hzB,2BACN3hzB,KAAK0hzB,iCAEF1hzB,KAAK2hzB,0BAEhBE,mBAAmB/vtB,GACf,OAAQA,IACCsltB,GACMp3yB,KAAK8hzB,yBAEb,OAEXxI,oBAAoBxntB,EAAY6rtB,EAAU5wtB,GAEtC,GADAA,EAASA,GAAU/sF,KAAK6hzB,mBAAmB/vtB,GAC/B,CACR,IAAIiwtB,EAAiBjwtB,IAAesltB,GAChCz+xB,EAAO,CACP0lD,QAAQ,EACRlsD,IAAKwryB,EAASxryB,IACd+hb,UAAWl0b,KAAKu7yB,yBAAyBzptB,EAAY6rtB,EAASzpX,WAC9D/6a,OAAQ4oyB,EAAiB/hzB,KAAKq7yB,aAAasC,EAASxryB,KAAOnS,KAAKu7yB,yBAAyBzptB,EAAY6rtB,EAASxkyB,SAQlH,GANI4oyB,GAAkB/hzB,KAAKo7yB,qBAAqB3ntB,MAAMg/c,QAAQ95hB,EAAKxG,MAC/DnS,KAAKo7yB,qBAAqB4G,6BAA6BrpyB,EAAKxG,IAAKwG,EAAKu7a,WAE1EnnW,EAAOp0E,GACPglyB,EAASt/uB,OAAS1lD,EAAK0lD,UACvBh/C,MAAOs+xB,EAASzpX,UAAWl0b,KAAK07yB,yBAAyB5ptB,EAAYn5E,EAAKu7a,YACtE6tX,EACA,GAAIppyB,EAAK0lD,OACLr+D,KAAKo7yB,qBAAqB6G,2BAA2BtpyB,EAAKxG,SACvD,CACH,IAAI+vyB,GAA0B71yB,OAAO0M,KAAK4kyB,EAASzpX,WAAWzvb,OAC9DzE,KAAKi8yB,6BAA6BtjyB,EAAKxG,IAAKwG,EAAKu7a,UAAWguX,KAK5EC,2BACInizB,KAAKoizB,oBAAsBpizB,KAAKo2F,sBAtcpB,kBAwchBistB,mBAAmB1pyB,GACF3Y,KAAK8hzB,wBAClB/0tB,CAAOp0E,GAEXmpyB,yBACI,OAAK9hzB,KAAKoizB,qBACNpizB,KAAKmizB,2BAEFnizB,KAAKoizB,oBAEhBE,kBAAkBxwtB,GACd,OAAQA,IACCsltB,GACMp3yB,KAAKuizB,wBAEb,OAEXC,mBAAmB1wtB,EAAY1lF,EAAM+F,GACjC,IAAI46E,EAAS/sF,KAAKsizB,kBAAkBxwtB,GAChC/E,GAKAA,EAJW,CACP5zE,OAAQ/M,EACR+F,IAAKA,IAKjBswyB,0BACIzizB,KAAK0izB,mBAAqB1izB,KAAKo2F,sBArepB,iBAuefustB,kBAAkBhqyB,GACD3Y,KAAKuizB,uBAClBx1tB,CAAOp0E,GAEX4pyB,wBACI,OAAKvizB,KAAK0izB,oBACN1izB,KAAKyizB,0BAEFzizB,KAAK0izB,mBAEhBE,oCACI5izB,KAAK6izB,6BAA+B7izB,KAAKo2F,sBAtfpB,2BAwfzB0stB,4BAA4BnqyB,GACX3Y,KAAK+izB,iCAClBh2tB,CAAOp0E,GAEXoqyB,kCACI,OAAK/izB,KAAK6izB,8BACN7izB,KAAK4izB,oCAEF5izB,KAAK6izB,6BAEhBnJ,iCAAiCiE,GAC7B,IAAI5wtB,EAAS/sF,KAAK+izB,kCAClB,GAAIh2tB,EAAQ,CACR,IAAIp0E,EAAO,CACP0lD,QAAQ,EACRlsD,IAAKwryB,EAASxryB,IACdgH,OAAQnZ,KAAKu7yB,yBAAyBnE,GAAauG,EAASxkyB,QAC5D6pyB,eAAgBhjzB,KAAK+7yB,2BAA2B3E,GAAauG,EAASqF,gBACtEC,aAAcjjzB,KAAK+7yB,2BAA2B3E,GAAauG,EAASsF,eAExEl2tB,EAAOp0E,GACPglyB,EAASt/uB,OAAS1lD,EAAK0lD,UACvBh/C,MAAOs+xB,EAASxkyB,OAAQnZ,KAAK07yB,yBAAyBtE,GAAaz+xB,EAAKQ,SACxEwkyB,EAASqF,eAAiBhjzB,KAAK67yB,2BAA2BzE,GAAaz+xB,EAAKqqyB,gBAC5ErF,EAASsF,aAAejjzB,KAAK67yB,2BAA2BzE,GAAaz+xB,EAAKsqyB,eAGlFC,2CACIljzB,KAAKmjzB,oCAAsCnjzB,KAAKo2F,sBA5hBpB,kCA8hBhCgttB,mCAAmCzqyB,GAClB3Y,KAAKqjzB,wCAClBt2tB,CAAOp0E,GAEX0qyB,yCACI,OAAKrjzB,KAAKmjzB,qCACNnjzB,KAAKkjzB,2CAEFljzB,KAAKmjzB,oCAEhBvJ,wCAAwC+D,GACpC,IAAI5wtB,EAAS/sF,KAAKqjzB,yCAClB,GAAIt2tB,EAAQ,CACR,IACIp0E,EAAO,CACP0lD,QAAQ,EACRllD,OAHkBwkyB,EAASxkyB,OAAOmqyB,UAAUjvvB,MAAM3zC,IAAIzJ,GAAKjX,KAAK07yB,yBAAyBpE,GAAiBrgyB,KAK9G81E,EAAOp0E,GACPglyB,EAASt/uB,OAAS1lD,EAAK0lD,QAG/BklvB,yBACIvjzB,KAAKwjzB,kBAAoBxjzB,KAAKo2F,sBA1iBpB,gBA4iBdqttB,iBAAiB9qyB,GACA3Y,KAAKw5yB,qBAClBzstB,CAAOp0E,GAEX6gyB,sBACI,OAAKx5yB,KAAKwjzB,mBACNxjzB,KAAKujzB,yBAEFvjzB,KAAKwjzB,kBAEhBE,6BACI,OAAK1jzB,KAAK2jzB,0BACN3jzB,KAAK4jzB,gCAEF5jzB,KAAK2jzB,yBAEhBC,gCACI5jzB,KAAK2jzB,yBAA2B3jzB,KAAKo2F,sBA1jBpB,uBA4jBrBgktB,6BAA6BhuyB,GACzB,IAAI2gF,EAAS/sF,KAAK0jzB,6BACd32tB,GASAA,EARW,CACP82tB,WAAYz3yB,EAAKy3yB,WACjBC,UAAW9jzB,KAAK+jzB,cAAc33yB,EAAK03yB,WACnCE,aAAczquB,IAAiBne,QAAEhvD,EAAK43yB,eACtCC,iBAAkB1quB,IAAiBne,QAAEhvD,EAAK63yB,mBAC1Ch2vB,UAAW,IAAID,KAAK5hD,EAAKghD,OACzB8yO,QAAS,IAAIlyO,KAAK5hD,EAAKF,OAKnC63yB,cAAchmhB,GACV,OAAQA,QACC,EACD,MAAO,eACN,EACD,MAAO,aACN,EACD,MAAO,gBACN,EACD,MAAO,YACN,EACD,MAAO,aACN,EACD,MAAO,cACN,EACD,MAAO,gBACN,EACD,MAAO,aACN,EACD,MAAO,oBAEP,SC9nBT,UACHl+R,cACIG,KAAKy1H,OAAS,GACdz1H,KAAKkkzB,QAAU,GAEnBC,SAAShyyB,EAAK/F,EAAMg4yB,GAChB,GAAIh4yB,EAAM,CACNpM,KAAKq3M,YAAYllM,GACjB,IAAIojU,EAAUv1U,KAAKqkzB,UAAUlyyB,GAAK,MAClCmyyB,MAAiB/ue,EAASnpU,GAAM,GAC5Bg4yB,GACApkzB,KAAKukzB,gBAAgBpyyB,EAAKiyyB,IAItCI,kBAAkBryyB,EAAKnQ,GACnB,IAAIoK,EAAOpM,KAAKqkzB,UAAUlyyB,GACtB/F,IACAk4yB,QAAiBtizB,EAAQoK,GAE7BpM,KAAKykzB,cAActyyB,GAEvBsgiB,QAAQtgiB,GACJ,QAASnS,KAAKy1H,OAAOtjH,GAEzB84hB,WAAW94hB,GACPnS,KAAKykzB,cAActyyB,GAEvBkyyB,UAAUlyyB,EAAKuyyB,GACX,OAAK1kzB,KAAKy1H,OAAOtjH,IAAQuyyB,IACrB1kzB,KAAKy1H,OAAOtjH,GAAO,IAEhBnS,KAAKy1H,OAAOtjH,GAEvBoyyB,gBAAgBpyyB,EAAKzM,GACjB1F,KAAKkkzB,QAAQ/xyB,GAAO4tC,WAAW,KAC3Br6C,EAASyM,EAAKnS,KAAKqkzB,UAAUlyyB,IAC7BnS,KAAKykzB,cAActyyB,IACpB,KAEPsyyB,cAActyyB,GACVnS,KAAKy5G,YAAYtnG,GACjBnS,KAAKq3M,YAAYllM,GAErBsnG,YAAYtnG,UACDnS,KAAKy1H,OAAOtjH,GAEvBklM,YAAYllM,GACR,IAAIwyyB,EAAS3kzB,KAAKkkzB,QACdS,GAAUA,EAAOxyyB,KACjBosD,aAAaomvB,EAAOxyyB,WACbwyyB,EAAOxyyB,KC9CnB,IAAIyyyB,GAAc,CACrBC,kBAAmBxrT,GAAWjtf,GAAQC,OAAO0M,KAAKsgf,GAAS9le,OAAO,CAACkzK,EAAUt0L,KAEzEs0L,EADgB,UAAgB,KAAOt0L,GACjBknf,EAAQlnf,GAAK/F,GAC5Bq6L,GACR,IACHq+mB,wBAAyBhrT,GAAW1tf,GAAQC,OAAO0M,KAAK+gf,GAASvme,OAAO,CAACkzK,EAAUt0L,KAE/E2nf,EAAQ3nf,GAAKs0L,EAAUr6L,EADP,UAAgB,KAAO+F,IAEhCs0L,GACR,IACHs+mB,uBAAuBx9qB,GACnB,IAAI8xX,EAAU,GACd,QAASroc,KAASu2E,EAAa,CAC3B,IAAIy9qB,EAAch0vB,EAAM1xB,MAAM,aAC1B0lxB,IACA3rT,EAAQ2rT,EAAY,KAAMr0tB,SAAc42C,EAAYy9qB,EAAY,MAGxE,OAAO3rT,GAEX4rT,uBAAuB19qB,GACnB,IAAIuyX,EAAU,GACd,QAAS9oc,KAASu2E,EAAa,CAC3B,IAAIy9qB,EAAch0vB,EAAM1xB,MAAM,aAC1B0lxB,KAAgBxsyB,SAAW+uH,EAAYy9qB,EAAY,OACnDlrT,EAAQkrT,EAAY,KAAM50tB,SAAcm3C,EAAYy9qB,EAAY,MAGxE,OAAOlrT,GAEXorT,2BAA2B39qB,GACvB,IAAIuyX,EAAU,GACd,QAAS9oc,KAASu2E,EAAa,CAC3B,IAAIy9qB,EAAch0vB,EAAM1xB,MAAM,aAC1B0lxB,MAAexsyB,OAAW+uH,EAAYy9qB,EAAY,OAClDlrT,EAAQkrT,EAAY,IAAMz9qB,EAAYy9qB,EAAY,KAG1D,OAAOlrT,GAEXqrT,eAAe7xvB,EAAQ8xvB,GACnB,IAAItrT,EAAU8qT,GAAYK,uBAAuB3xvB,GACjD,OAAOjnD,OAAO0M,KAAK+gf,GAASvme,OAAO,CAACkzK,EAAUt0L,KACtC,QAAUA,GACV2nf,EAAQ3nf,GAAKs0L,EAAU2+mB,EAAYjzyB,IAEhCs0L,GACR,KAEP4+mB,gBAAgBj5yB,EAAMuxH,GAClB,IAAI5B,EAAW,GACf,GAAI3vH,EACA,QAAS5H,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,IAAK,CAClC,IAAI+3T,EAAWnwT,EAAK5H,GAEpBu3H,EADU4B,EAAU4+L,IACJA,EAGxB,OAAOxgM,GAEXuprB,uBAAwB99yB,GAAiC,MAASA,EAAU,GAAK,CAACA,GAClF+9yB,iBAAkBC,GAAkBA,EAAiB,SAAW,OAChEC,kBAAkB3kzB,EAAM2pF,GAChB,SAAoC3pF,EAAKsL,MAAhCtL,MAAiDA,GAA2BA,EAAKiuE,SAC1F0b,EAAMphF,KAAKvI,EAAKsL,MAEpB,QAAS5H,EAAI,EAAGA,GAAK,QAAUkhzB,EAAiB5kzB,EAAKq7B,gBAAa,IAAWupxB,OAAiB,EAASA,EAAejhzB,QAASD,IAAK,CAChI,IAAIkhzB,EAEJd,GAAYa,kBADA3kzB,EAAKq7B,SAAS33B,GACWimF,KAG7Ck7tB,sBAAsB7kzB,EAAM2pF,GACxB,IAAIm7tB,EACA,SAAoC9kzB,EAAKsL,MACzCq+E,EAAMphF,KAAKvI,EAAKqR,KAEhB,MAASrR,GAA2B,QAAU8kzB,EAAe9kzB,EAAKiM,cAAW,OAA2B64yB,EAAax5yB,MACrHw4yB,GAAYe,sBAAsB7kzB,EAAKiM,OAAQ09E,IAGvDyrf,kBAAmB,KAAO,CACtB/me,MAAO,CACHqN,WAAY,KACZ6d,QAAS,KACT8kY,aAAc,WACd0mT,UAAW,QACXC,QAAS,MACTC,aAAc,WACdC,UAAW,QACXC,UAAW,SAEfC,aAAc,CACV1psB,WAAY,KACZ6d,QAAS,KACT8rrB,kBAAmB,gBACnBC,gBAAiB,cACjBv8D,SAAU,QAEdy5D,UAAW,CACP9msB,WAAY,KACZ6d,QAAS,KACTyvnB,SAAU,OACVm8D,UAAW,SAEfI,oBAAqB,CACjB7psB,WAAY,KACZ6d,QAAS,KACTisrB,WAAY,SACZC,eAAgB,cAEpB3+pB,aAAS,EACT4+pB,cAAe,IACfC,eAAe,EACfC,kBAAkB,EAClBC,kBAAmB,SACnBzthB,oBAAgB,EAChB4jhB,oBAAgB,EAChB9lrB,mBAAoB,KACpB4vrB,YAAa,KACbC,eAAgB,KAChBC,gBAAiB,KACjBC,eAAgB,KAChBC,eAAgB,KAChBC,cAAe,KACfC,eAAgB,KAChBC,cAAe,KACfC,aAAc,KACdC,wBAAyB,KACzBC,sBAAuB,KACvBC,qBAAsB,KACtBC,qBAAsB,KACtBC,oBAAqB,KACrBC,oBAAqB,KACrBC,mBAAoB,KACpBC,mBAAoB,KACpBC,kBAAmB,KACnBC,oBAAqB,KACrBC,mBAAoB,KACpBC,sBAAuB,KACvBC,qBAAsB,KACtBj3E,gBAAiB,KACjBl5L,uBAAwB,KACxB0tQ,gBAAgB,EAChB90Q,cAAc,EACdw3Q,gBAAY,EACZpE,UAAW,OACXqE,eAAgB,CACZz+uB,IAAK,UACLlvD,IAAK,SAETwsiB,QAAS,CACL3+hB,SAAS,EACTiqI,iBAAiB,EACjBC,mBAAmB,EACnBE,mBAAmB,EACnBR,uBAAuB,EACvBC,yBAAyB,EACzBC,qBAAqB,EACrBC,uBAAuB,EACvBC,uBAAuB,EACvBG,2BAA2B,GAE/B41pB,WAAY,CACRC,sBAAsB,EACtBC,uBAAuB,EACvBC,sBAAsB,GAE1Bt4pB,QAAS,KACT8nZ,YAAa,CACT1vhB,SAAS,EACTgsC,WAAO,GAEXm0vB,2BAA4B,KAC5BC,mCAAoC,KACpCC,+BAAgC,KAChCC,oBAAqB,KACrB/tT,UAAW,EACXv4V,QAAS,CACL+G,cAAeppD,UAA2B,gCAC1CspD,eAAgBtpD,UAA2B,iCAC3CqpD,UAAWrpD,UAA2B,4BACtC/wG,KAAM,SACNs6J,iBAAiB,GAErB4iW,eAAW,EACXxjX,kBAAc,EACdlkF,YAAY,KC3LhB2yuB,GAAc,QACX,UACHv3yB,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EACdz3yB,KAAKm7yB,eAAiB1D,EAAM0D,eAC5Bn7yB,KAAKyzF,MAAQ,IAAIm1tB,IAErBC,uBACI,IAAIjhqB,EAAU5nJ,KAAKk7yB,OAAO5nvB,OAAO,WAC7Bu6G,EAAejmB,GAAWA,EAAQlnI,IAAIkG,GAAKA,EAAEk5H,WAC7CgpqB,EAAe9ozB,KAAKm7yB,eAAe4N,0BACvC,OAAOl7oB,EAAeA,EAAa/mJ,OAAOq6B,GAAK2nwB,EAAat2yB,QAAQ2uC,GAAK,GAAK,GAElF6nwB,qBAAqB58yB,GACjB,OAAOpM,KAAK6ozB,uBAAuBt1xB,OAAO,CAACkzK,EAAUz1I,KAC7C5kD,QAAQ,MAAgB4kD,KACxBy1I,EAASz1I,GAAS5kD,EAAK4kD,IAEpBy1I,GACR,IAEPwinB,oBAAoB92yB,EAAK/F,GACrB,GAAIA,EAAM,CACN,IAAI88yB,EAAYlpzB,KAAKk7yB,OAAOiO,cAAgBnpzB,KAAKk7yB,OAAOiO,aAAa5oH,YACjE5ikB,KAAYhtC,OAAc3wF,KAAKk7yB,OAAO5nvB,OAAO,GAAGzxC,OAAOu1xB,GAAa,cACpEgS,EAAYF,GAAaA,EAAUpiyB,OAAOxO,GAAOqlH,EAAUrlH,KAASnG,GAAK,GACzEk3yB,EAAerpzB,KAAK6ozB,uBACxB,GAAIO,EACA,QAAS5kzB,EAAI,EAAGA,EAAI6kzB,EAAa5kzB,OAAQD,IAAK,CAC1C,IAAIwsD,EAAQq4vB,EAAa7kzB,GACrB6H,OAAO8tB,UAAUjnB,eAAeknB,KAAKgvxB,EAAWp4vB,KAChD5kD,EAAK4kD,GAASo4vB,EAAUp4vB,MAM5Cs4vB,mBAAmBl9yB,GACf,IAAI88yB,EAAYlpzB,KAAKk7yB,OAAOiO,cAAgBnpzB,KAAKk7yB,OAAOiO,aAAa5oH,YACjE5ikB,EAAY39H,KAAKk7yB,OAAOqO,oBACxBC,EAAe5E,mBAA4BsE,EAAWvrrB,GAC1D,OAAOvxH,EAAKmnB,OAAO,CAACkzK,EAAU7pL,KAC1B,IAAIzK,EAAMwrH,EAAU/gH,GAChBwsyB,EAAYI,EAAar3yB,GAC7B,GAAKi3yB,EAEE,CACH,IAAIK,EAAc,GAClB,QAASz4vB,KAASo4vB,EACdK,EAAYz4vB,GAAS3kD,OAAO8tB,UAAUjnB,eAAeknB,KAAKxd,EAAMo0C,GAASp0C,EAAKo0C,GAASo4vB,EAAUp4vB,GAErGy1I,EAASp9L,KAAKogzB,QANdhjnB,EAASp9L,KAAKuT,GAQlB,OAAO6pL,GACR,IAEPu7mB,6BAA6B7vyB,EAAK/F,GAC9BpM,KAAKyzF,MAAM+wtB,kBAAkBryyB,EAAK/F,GAEtC8vyB,4BAA4B/pyB,EAAK/F,GAC7B,IAAI81yB,EAAyBnizB,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GACrF2pzB,EAA2B3pzB,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GACvF4pzB,EAAmB3pzB,KAAKgpzB,qBAAqB58yB,GAC7CC,OAAO0M,KAAK4wyB,GAAkBllzB,OAAS,GACvCzE,KAAKyzF,MAAM0wtB,SAAShyyB,EAAKw3yB,EAAkBzH,EAAyB,CAAC/vyB,EAAK/F,KACtE,IAAIw9yB,EAAa5pzB,KAAKk7yB,OAAO,IAAIr5xB,OAAOu1xB,GAAa,WACjDwS,GAAcx9yB,GACdw9yB,EAAWn0xB,OAAOtjB,EAAK/F,EAAM,CAACA,EAAM+F,KAChC,IAAI03yB,EAAsB,GAC1B7pzB,KAAKipzB,oBAAoB92yB,EAAK03yB,GAC9BD,EAAW5O,oBAAoB9muB,KAAK9nE,IAChCpM,KAAKk7yB,OAAO4O,eAAeC,iBAAiB,MAAS39yB,EAA0BA,EAAOw9yB,EAAW3tsB,aAAa,EAAOytsB,KAEzH,IAAI5M,EAAiB98yB,KAAKk7yB,OAAO5nvB,OAAO,kBACxCtzD,KAAKk7yB,OAAO8O,WAAWC,YAAYnN,GACnC98yB,KAAKk7yB,OAAOjC,gBAAgBuJ,mBAAmBpL,GAAayS,EAAqB13yB,MAGzF,MAGZ8vyB,2BAA2B9vyB,GACvBnS,KAAKyzF,MAAMw3c,WAAW94hB,ICvF9B,IAAI+3yB,GAAc,SAASh2xB,EAAWgwD,EAAO3yE,GACzC,IAAIw4E,GAAa3uB,QAAElnC,GACfi2xB,EAAe54yB,EAAWw4E,EAAWhe,aAAege,EAAW/d,YAC/DrwC,EAAOpqB,EAAW,QAAU,SAG5B64yB,EAFarguB,EAAWpuD,KAAK,SAAS9Z,OAAO8Z,IAChCouD,EAAWpuD,KAAK,SAAS9Z,OAAO8Z,IACDwuxB,EAAe,EAC/D,OAAI,OAAsB,IAAMC,QAGV,OAAsBlmuB,GAAS,GAC5B,OAAyBA,GAAS,GAClCimuB,EAAe,GAAKC,EAAkB,SAC/D,IAIAC,IAAoB,SAASn2xB,EAAWo2xB,GACxC,IAAIvguB,KAAa3uB,MAAElnC,GACnB,MAAO,CACHxN,SAAU,SAAS1Q,GACf,GAAIg7D,GAAoBh7D,MAA+Bs0yB,IAAiBlvvB,QAA3BplD,EAAEhU,QAAwCioB,GAAGiK,IACtF,QAAIg2xB,GAAYnguB,GAAa/zE,EAAEkuE,MAAOluE,EAAEzE,YACpCyE,EAAE0+L,gBAAiB,GACZ,MCyCvB61mB,GAAsB,YAGtBC,GAAmB,SACnBC,IAAyB,sBACzBC,IAA0B,gBAC1BC,IAAiC,uBAEjCC,IAA2B,wBAO3BC,IAASn8O,WAAkB,CAC3Bnme,eAAgB,WACZ,IAAIx7F,EAAS/M,KAAKm5D,WACd2xvB,EAAal5xB,GAAW5xB,KAAK44P,MAAMrsJ,iBAAiB36E,GACpD6yC,EAAazkE,KAAKszD,OAAO,cAC7B,OAAOj0C,QAAO,GAAItS,EAAQ,CACtByiE,UAAW,SAASx5D,GAChB,GAAKhW,KAAK+qzB,qBAGV,MAAKC,sBAAsBh1yB,GAC3BhW,KAAKirzB,eAAgB,EACrB,IAAIC,EAAelrzB,KAAKmrzB,cAAgBnrzB,KAAKorzB,eAAehwyB,OACxDpb,KAAKmrzB,cACLnrzB,KAAKqrzB,cAAc,QAAQ,GAE3B,IAAMH,EAAazmzB,SAGvBzE,KAAKsrzB,qBAAsB,EAC3BtrzB,KAAKurzB,kBAAkBL,UAChBlrzB,KAAKsrzB,uBAEhBrnsB,QAAS,CAACjuG,EAAGyY,IAASzY,EAAE/E,SAAWjR,KAAK44P,MAAQ7rP,EAAOk3G,QAAQ7pF,KAAKp6B,KAAMgW,GAAK80yB,EAAWr8xB,GAC1Fy1F,UAAW,CAACluG,EAAGyY,IAASzY,EAAE/E,SAAWjR,KAAK44P,MAAQ7rP,EAAOm3G,UAAU9pF,KAAKp6B,KAAMgW,GAAK80yB,EAAWr8xB,GAC9F67N,IAAK,SAASt0O,GACV,GAAKhW,KAAKmrzB,cAAiBnrzB,KAAK+qzB,qBAGhC,MAAKC,sBAAsBh1yB,GAC3BhW,KAAKirzB,eAAgB,EACrB,IAAIC,EAAelrzB,KAAKmrzB,aACxBnrzB,KAAKqrzB,cAAc,QAAQ,GAC3BrrzB,KAAKsrzB,qBAAsB,EAC3BtrzB,KAAKurzB,kBAAkBL,UAChBlrzB,KAAKsrzB,sBAEhB57uB,MAAO,SAAS15D,EAAG4b,GACf,IAAI45xB,EAAoBxrzB,KAAK44P,OAAS,YAAcA,MAAMtlM,OAAO,kBAEjE,GADmBtzD,KAAKszD,OAAO,uBAAyBk4vB,EAIpD,OAFAx1yB,EAAEjL,sBACF,UAAY6pG,gBAAkB50G,KAAKwykB,wBAAwBx8jB,IAG3DhW,KAAKszD,OAAO,YACZtzD,KAAKy3O,sBAAsBzhO,GAC3B80yB,EAAWl5xB,GACX5b,EAAEjL,mBAGV84G,MAAO,SAAS7tG,EAAG4b,GACf,IAAIw9iB,EAAWpvkB,KAAKszD,OAAO,UACvBm4vB,EAAgBzrzB,KAAKssR,2BACrB8iT,IAAaq8O,IACbzrzB,KAAKy3O,sBAAsBzhO,GAC3B80yB,EAAWl5xB,GACX5b,EAAEjL,mBAGVg5G,UAAW,SAAS/tG,GAChB,MAAKhW,KAAK+qzB,sBAAwB/qzB,KAAK0rzB,YAAc1rzB,KAAKwxP,eAAiB/sL,IAAezkE,KAAKmrzB,cAG/Fn1yB,GAAEjL,iBACF,IAAI6+D,EAAYnF,EAAa,OAAS,OACtCzkE,KAAKqrzB,cAAczhvB,IAClB5pE,KAAKszD,OAAO,cAAgBtzD,KAAK2rzB,iBAAiB/hvB,KAEvDo6C,WAAY,SAAShuG,GACjB,GAAKhW,KAAK+qzB,uBAAwB/qzB,KAAK0rzB,cAAc1rzB,KAAKwxP,eAAkB/sL,GAAezkE,KAAKmrzB,cAGhGn1yB,GAAEjL,iBACF,IAAI6+D,EAAYnF,EAAa,OAAS,OACtCzkE,KAAKqrzB,cAAczhvB,IAClB5pE,KAAKszD,OAAO,cAAgBtzD,KAAK2rzB,iBAAiB/hvB,QAI/DohvB,sBAAuB,SAASh1yB,GAC5BA,EAAEjL,iBACFiL,EAAEouE,kBACFpkF,KAAKy3O,sBAAsBzhO,IAE/B01yB,SAAU,WACN,OAAO,IAAM1rzB,KAAK07c,YAAYj3c,QAElCmnzB,qBAAsB,SAASzwvB,GAC3Bn7D,KAAK6rzB,gBAAkB1wvB,EAASvtD,SAtGP,qBAwG7Bg6Q,sBAAuB,WACnB,OAAO,GAEXmjiB,mBAAoB,WAChB,IAAI/wxB,EAAW45M,IAAM5zO,KAAK89O,UAC1B,OAAO,IAAM9jN,EAASozB,OAAS,IAAMpzB,EAAS9tB,KAElD4/yB,iCAAiCjgzB,GAC7B7L,KAAK+tG,QAAQ,mBAAoBliG,EAAI7L,KAAK89O,WAE9CutkB,cAAe,SAASzhvB,EAAWmivB,GAC/B,IAAK/rzB,KAAKmrzB,aAAc,CACpB,IAAIa,EAAchszB,KAAKorzB,eAIvB,OAHAprzB,KAAKmrzB,aAAe,WAAuBa,EAAYp8wB,QAAUo8wB,EAAY5wyB,OAC7Epb,KAAKisG,mBAAkB,EAAMjsG,KAAKmrzB,mBAClCnrzB,KAAK8rzB,iCAAiC9rzB,KAAKmrzB,aAAa/7uB,KAAK,OAGjE,IAAI68uB,EAAkBjszB,KAAKmrzB,aAAavhvB,GAAW,IAAI/nD,OAAO2oyB,KAC1DyB,EAAgBxnzB,OAAS,GACzBzE,KAAKkszB,mBAAmBD,GACxBjszB,KAAK8rzB,iCAAiCG,EAAgB78uB,KAAK,SACpD28uB,GAAmB,YAAwB/rzB,KAAKwxP,iBACvDxxP,KAAKmszB,iBACLnszB,KAAK8rzB,qCAGbI,mBAAoB,SAASD,GACzBjszB,KAAKisG,mBAAkB,EAAOjsG,KAAKmrzB,cACnCnrzB,KAAKmrzB,aAAec,EACpBjszB,KAAKisG,mBAAkB,EAAMjsG,KAAKmrzB,eAEtCgB,eAAgB,YACPnszB,KAAKmrzB,eAGVnrzB,KAAKisG,mBAAkB,EAAOjsG,KAAKmrzB,cACnCnrzB,KAAK8rzB,0CACE9rzB,KAAKmrzB,eAEhB1lkB,kBAAmB,SAAStqL,GACxB,OAAIA,GAAYA,EAAS12D,QAAU02D,EAAS,KAAOn7D,KAAKs7F,eAAe,GAC5DngC,EAEJn7D,KAAKm5D,YAEhB+nL,mBAAoB,WAChB,OAAOlhP,KAAK6rzB,iBAEhBpqkB,mBACI,OAAOzhP,KAAK89O,UAEhB6tkB,iBAAkB,SAAS/hvB,GACvB,IAAI5pE,KAAKszD,OAAO,eAAiB4K,YAG5Bl+D,KAAK6rzB,gBAGV,KAAIl2iB,EAAiB31Q,KAAKoszB,mBAAmBxivB,GAC7C5pE,KAAK6rzB,gBAAgB9/uB,WAAW4pM,KAEpCy2iB,mBAAoB,SAASxivB,GACzB,MAAI,aAAyB,QAAUA,EAC5B5pE,KAAKqszB,mBAAmBzivB,GAE5B5pE,KAAKmrzB,aAAenrzB,KAAKsszB,uBAAuB1ivB,GAAa5pE,KAAKqszB,mBAAmB,QAEhGA,mBAAoB,SAASzivB,GACzB,IAAInF,EAAazkE,KAAKszD,OAAO,cAG7B,MAFmB,UAAsBmR,GAElBA,EAAa,GADnBA,GAAa,EAAK,IACmBzkE,KAAK6rzB,gBAAgB7nzB,IAAI,GAAG0wQ,aAAc/oM,SAAc3rE,KAAK6rzB,mBAEvHS,uBAAwB,SAAS1ivB,GAC7B,IACI2ivB,EAAe,WADFvszB,KAAKszD,OAAO,eAGzBgI,KAAMzT,GACN7nD,KAAKmrzB,aAAanxxB,WAClB+xC,EAAa/rE,KAAK6rzB,gBAAgB9/uB,aACtC,OAAIwgvB,IACA1kwB,IAAgB8jB,SAAc3rE,KAAKmrzB,cAAc,MAAQx/uB,OAAc3rE,KAAK6rzB,kBAE5EU,EAAe1kwB,EAAe,IAC9BkkB,GAAclkB,GAEXkkB,GAEXmjgB,cAAe5ihB,MACfioC,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BvsD,MAAO,GACPsjP,oBAAoB,EACpBs8jB,qBAAsB,KACtBC,YAAa,MACb/piB,cAAe1iK,UAA2B,oBAC1C0ssB,mBAAmB,EACnBr1rB,cAAe,GACfywC,cAAe,OACf26G,wBAAyB,KACzBkqiB,sBAAkB,EAClBC,kBAAkB,EAClBC,oBAAqB,KACrBh9oB,WAAW,EACX8tC,mBAAmB,KAG3B7nH,MAAO,WACH91F,KAAKm5D,WACLn5D,KAAK8szB,eAAiB,GACtB9szB,KAAK+szB,oCAETt9lB,aAAc,WACVzvN,KAAKm5D,WACLn5D,KAAKgtzB,gCAETA,6BAA8B,WAC1BhtzB,KAAKitzB,yBAA2BjtzB,KAAKo2F,sBAAsB,sBAAuB,CAC9EjJ,cAAe,SAASn3E,GACpBhW,KAAKktzB,0BAA0Bl3yB,EAAE2C,KAAK,KACxCswC,KAAKjpD,MACPytF,kBAAmB,CAAC,WAAY,eAGxCy/tB,0BAA2B,SAASv0yB,GAChC,IACIlU,OAAQ0ozB,GACRntzB,KAAK07c,YAIL/ic,EAAKlC,KAHJzW,KAAKszD,OAAO,oBAGD0sD,gBAAiC,oBAAjCA,CAAsDmtsB,GAFtDntsB,gBAAiC,wBAAjCA,CAA0DmtsB,EAAgBntzB,KAAKszD,OAAO,oBAAsB,IAKhIsyN,sBAAuB,WACnB5lR,KAAKm5D,WACLn5D,KAAK+jG,iBAAiB5K,oBAAoB,CACtCysD,IAAK,IAAI1/B,GAAiB,CAACn8B,EAAY39E,KACnC,IAAIghzB,EACAC,GAAcjyvB,QAAE,SAASxtD,SA5Od,mBA6OfwtD,QAAE,UAAU3kD,KAAK,QAAU22yB,EAAahhzB,EAAKqK,YAAS,IAAW22yB,EAAaA,EAAahhzB,GAAMy+D,SAASwivB,MAC1GjyvB,MAAE,SAASxtD,SAAS+8yB,KAAgC9/uB,SAASwivB,GAC7DtjuB,EAAWH,OAAOyjuB,IACnB,CAAC,QAASrtzB,KAAKszD,OAAO,kCAAmC,CACxD78C,KAAMzW,KAAK8lH,oBAIvBwnsB,qBAAsB,SAASjlyB,GACvBA,GACAroB,KAAKixP,uBACLjxP,KAAK6xP,oBAEL7xP,KAAKoyP,iBAAmBpyP,KAAKoyP,gBAAgBvxP,gBACtCb,KAAKoyP,kBAGpBnB,qBAAsB,YACbjxP,KAAKszD,OAAO,uBAGjBtzD,KAAKoyP,iBAAkBh3L,QAAE,YAAYgU,KAAK,CACtC+hE,SAAU,WACV,aAAc,mBACfp1E,IAAI,UAAW,QAAQ8O,SAAS7qE,KAAKm7D,cAE5C02L,gBAAiB,WACb,GAAK7xP,KAAKszD,OAAO,qBAKjB,SAFI1mD,EAAQ5M,KAAK07c,YACb6xW,EAAW,GACN/ozB,EAAI,EAAG08B,EAAIt0B,EAAMnI,OAAQD,EAAI08B,EAAG18B,IAAK,CAC1C,IAAIgpzB,EAAiBxtzB,KAAK0tR,uBAAuB9gR,EAAMpI,IACvD+ozB,EAASlkzB,MAAK+xD,QAAE,YAAY3/B,IAAI+xxB,EAAiBxtzB,KAAK8lH,eAAel5G,EAAMpI,IAAMoI,EAAMpI,IAAI4qE,KAAK,WAAY,aAEhHpvE,KAAKi5O,oBAAoBj2J,QAAQ4G,OAAO2juB,KAE5ChrtB,YAAa,WACTviG,KAAKytzB,qBAAoBryvB,QACzB,IAAIsyvB,GAAoB1tzB,KAAKszD,OAAO,aACpCtzD,KAAKm7D,WAAWvtD,SA/RL,aA+R4Bs2F,YAzRhB,0BAyRwDlkG,KAAKszD,OAAO,kBAAoBtzD,KAAKszD,OAAO,uBAAuB4wC,YAAY0mtB,IAA0B8C,GACxL1tzB,KAAK+tG,QAAQ,CACTujC,KAAM,QACN4uI,gBAAiB,UAClBlgR,KAAKm7D,YACRn7D,KAAK2tzB,mBACL3tzB,KAAKm5D,YAETy0vB,gBAAeC,EAAUC,EAAOC,IACvBF,EAGDE,EACIF,IAAaC,OACb,EAEGD,EAAS37yB,MAAM,KAAK4U,OAAOjb,GAAMA,IAAOiizB,GAAOxvxB,KAAK,KAExD,GAAGzc,OAAOgsyB,EAAU,KAAKhsyB,OAAOisyB,GAR5BA,EAUfE,mBAAmBnizB,EAAIkizB,GAEnB,GADwBlizB,EACxB,CAIA,IAAI+1O,EAAU5hP,KAAKm7D,WAAWiU,KAAK,mBAC/B6+uB,EAAajuzB,KAAK4tzB,eAAehskB,EAAS/1O,EAAIkizB,GAClD/tzB,KAAK+tG,QAAQ,aAAckgtB,EAAYjuzB,KAAKm7D,iBALxCn7D,KAAK+tG,QAAQ,kBAAc,EAAQ/tG,KAAKm7D,aAOhDi9B,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAKkuzB,yBACLluzB,KAAKmuzB,0BACLnuzB,KAAK2rzB,iBAAiB,UAE1BgC,iBAAkB,WACd3tzB,KAAKouzB,aAAepuzB,KAAKmlG,qBAAqB,gBAElDusJ,aAAc,WACV,IAAI28jB,IAA0B3wyB,SAAU1d,KAAKszD,OAAO,kBACpDtzD,KAAKm7D,WAAW+oC,YA9TkB,6BA8T+BmqtB,GAAwBnqtB,YA7TxD,6BA6TyGmqtB,GAC1IruzB,KAAKm5D,YAET+0vB,uBAAwB,WACpB,IAAII,EAAkBtuzB,KAAKs3F,cAAct3F,KAAKuuzB,kBAAkBtlwB,KAAKjpD,OACjEyH,EAAYinE,GAAaoqI,GAAY,qBACzCrqJ,SAAiBzuD,KAAK6rzB,gBAAiBpkzB,GACvCgnD,QAAgBzuD,KAAK6rzB,gBAAiBpkzB,EAAW,IAAIoa,OAAO8oyB,KAAiC7/yB,IACzFwjzB,EAAgB,CACZxjzB,MAAOA,OAInBqjzB,wBAAyB,WACrB,IAAIK,EAAkB9/uB,GAAa,eAAgB1uE,KAAKo1F,MACpDj6B,EAAWn7D,KAAKm7D,WAChBszvB,EAAczuzB,KAAKszD,OAAO,aAC9B7E,SAAiB0M,EAAUqzvB,GACvB,eAAcxrvB,OAAexB,WAI7BitvB,GAGJhgwB,QAAgB0M,EAAUqzvB,EAAiBxuzB,KAAK0uzB,+BAA+BzlwB,KAAKjpD,OANhFA,KAAK6rzB,iBAAmB7rzB,KAAK6rzB,gBAAgB9vvB,IAAI,YAAa0yvB,EAAc,GAAK,SAQzFC,+BAAgC,SAAS14yB,GACrC,IAAI+1D,EAAa/rE,KAAK6rzB,gBAAgB9/uB,aAClCmY,GAxV8B,GAwVtBluE,EAAEkuE,MACd,IAAKvR,GAAoB38D,IAAMk0yB,GAAYlqzB,KAAK6rzB,gBAAiB3nuB,GAAO,GACpE,YAAK2nuB,gBAAgB9/uB,WAAWA,EAAamY,IACtC,GAGfw6J,cAAe,WACX1+O,KAAKm5D,WACL,IAAIqN,EAAQxmE,KAAK89O,SACbrxO,EAAYiiE,GAAa,UAAW1uE,KAAKo1F,MAC7C3mC,QAAgB+X,EAAO/5D,EAAWuJ,IAC9B,IAAIxC,EAAU6+D,GAAiBr8D,IAC1BhW,KAAKi+O,cAAczqO,IAAYxT,KAAKwxP,eACrCxxP,KAAKmszB,oBAIjBljiB,mBAAoB,WAChB,OAAOjpR,KAAKm5D,WAALn5D,4BAEXm+O,aAAc,WACVn+O,KAAKm5D,WACLn5D,KAAK2uzB,kCAETA,+BAAgC,WAC5B,IAAIlnzB,EAAYinE,GAAa,YAAa,YAC1CjgB,SAAiBzuD,KAAK+9O,gBAAiBt2O,GACvCgnD,QAAgBzuD,KAAK+9O,gBAAiBt2O,EAAWuO,IACzCA,EAAEhU,SAAWhC,KAAK89O,SAAS,IAAM99O,KAAKmsG,cACtCn2F,EAAEjL,oBAIdylkB,sBAAuB,WACnB,OAAOxwkB,KAAK4uzB,sBAEhBvliB,gBAAiB,WACb,SAAOx1M,UAEX+9f,gBAAiB,WACb5xkB,KAAK89O,SAASriN,IAAI,IAClBz7B,KAAK0gP,+BACL1gP,KAAKszD,OAAO,OAAQ,KAExBu4C,gBAAiB,SAAS71F,GACjBhW,KAAKslP,yBAAyBtvO,IAC/BhW,KAAK2rzB,iBAAiB,OAE1B3rzB,KAAKm5D,SAASnjD,IAElBwqO,kBAAmB,WACf,YAAKltL,OAAO,eAAgBtzD,KAAK40G,gBAC1B50G,KAAKm5D,YAEhBg4gB,kBAAmB,SAASM,GACnBA,GACDzxkB,KAAK4xkB,mBAGb7le,iBAAkB,SAAS/1F,GAClBhW,KAAKslP,yBAAyBtvO,KAC/BhW,KAAKmszB,iBACLnszB,KAAK2rzB,iBAAiB,UAE1B3rzB,KAAKm5D,SAASnjD,IAElB+2yB,iCAAkC,WAC9B/szB,KAAK6uzB,4BAA8B7uzB,KAAKo2F,sBAAsB,4BAElEq0L,YAAa,WACTzqR,KAAKm5D,WACLn5D,KAAK8uzB,4BAETnkiB,kBAAmB,WACf,MAAO,eAAiB3qR,KAAKszD,OAAO,mBAExCy3N,YAAa,WACT,IAAI5lJ,EAAgBnlI,KAAKszD,OAAO,yBAA2B,MAAQ,WACnE,OAAOj0C,QAAOrf,KAAKm5D,WAAY,CAC3Bi/D,yBAA0Bp4H,KAAKszD,OAAO,wBACtC6xE,cAAeA,EACfu9I,cAAe1iR,KAAKszD,OAAO,iBAC3BmvN,wBAAyBz/P,IACrB,IACIpW,MAAOA,GACPoW,EACJhjB,KAAK6uzB,4BAA4B,CAC7BjizB,MAAOA,KAGfk7J,cAAe9nK,KAAKszD,OAAO,iBAC3B+jE,cAAer3H,KAAK8szB,eACpB5nsB,qBAAsB,QAG9B0psB,mBAAoB,WAChB,IAAI9wwB,EAAI,IAAI01B,MACZ,YAAKo4uB,qBAAqB5rzB,KAAK++O,4BAC/B/+O,KAAK+uzB,mBACL/uzB,KAAKgvzB,cAAc96uB,KAAK,KACpBl0E,KAAKmxO,QAAUnxO,KAAKmxO,OAAO7F,kBAC3BxtL,EAAEjqB,YACHsgD,KAAKr2B,EAAEjE,QACHiE,EAAEhE,WAEb8xO,sBAAuB,SAAS51Q,IAC3BhW,KAAKszD,OAAO,0BAA4BtzD,KAAK4xkB,kBAC1C,eAAiB5xkB,KAAKszD,OAAO,oBAGjCtzD,KAAKm5D,SAASnjD,GACdhW,KAAKy3O,2BAAsB,KAE/By5V,mBAAoB,WAChB,IAAI+9O,EAAoBjvzB,KAAKm5D,WAE7B,OAD4Bn5D,KAAKszD,OAAO,0BACP27vB,GAErCF,iBAAkB,WACd,IAAIn+mB,EAAS5wM,KAAK89O,SACdlxO,EAAQgkM,EAAOn1K,MACfyzxB,GAAe3yuB,SAAS3vE,IAAUA,EAClCgzD,EAAQ,GACR4gG,EAAO,GACP2upB,EAAcnvzB,KAAKszD,OAAO,kBAAoBtzD,KAAKszD,OAAO,qBAC9D,GAAI47vB,GAAgBC,EAAa,CAC7B,IAAIC,EAAsB3yuB,GAA4Bm0H,EAAQhkM,EAAO,CACjEgwE,iBAAiB,IAErBwyuB,EAAoB9olB,YAAY11B,GAChChxI,GAAQ+L,SAAcyjvB,GAAuB,EAC7CA,EAAoBvuzB,cACZ+L,IACR4zJ,EAAO,GAEXowC,EAAO70I,IAAI,QAAS6D,GACpBgxI,EAAOxhI,KAAK,OAAQoxF,IAExBqya,yBAA0B,WACtB7ykB,KAAKm5D,WACLn5D,KAAKqvzB,uBAET3zW,UAAW,WACP,OAAO17c,KAAKszD,OAAO,UAAY,IAEnCg8vB,kBAAmB,WACf,IAAIn2yB,EAASnZ,KAAK07c,YACdixW,EAAmB3szB,KAAKszD,OAAO,oBACnC,OAAO51C,SAAUivyB,IAAqBxzyB,EAAO1U,OAASkozB,GAE1D4C,gBAAiB,SAAS3+mB,GACtB,IAAI4+mB,KAAOp0vB,MAAE,SAASxtD,SAAS48yB,IAAkB58yB,SAAS68yB,KACtD9xyB,EAAO,CACP82yB,gBAAiBl2uB,GAAiBi2uB,GAClCn4rB,cAAer3H,KAAKszD,OAAO,kBAG/B,OADAtzD,KAAKitzB,yBAAyBt0yB,IAC1BA,EAAK0lD,SAGTmxvB,EAAKpjzB,KAAKm+yB,GAAqB5xyB,EAAKlC,MACpC+4yB,EAAKvizB,aAAa2jM,GAClB5wM,KAAKouzB,aAAan8vB,OAAO,CACrBt7B,MAAOhe,EAAKlC,KACZyd,UAAWqlD,GAAiBi2uB,KAEzBA,IAEXE,WAAY,SAAS1ie,GACjB,IAAI5uN,EAAmBp+H,KAAKu8G,gBAAgBz1F,SACxCg3G,EAAakvN,EAAQ7uN,kBAAkBn+H,KAAKszD,OAAO,aAAc8qE,GACjEuxrB,EAAoBnxxB,UAAUroB,KAAKC,UAAU0nH,IAAar5H,OAC1D+nzB,EAAuBxszB,KAAKszD,OAAO,wBACvC,GAAIq8vB,GAAqBnD,EACrB,OAAO1urB,EAEXv3G,OAAW,QAASimyB,IAExBoD,kBAAmB,SAASz2yB,GACxB,IAAI02yB,EAAuBnmiB,EAC3B,QAAUmmiB,EAAwB7vzB,KAAK8vzB,iCAA8B,OAA4CD,EAAsBh2wB,SACvI,IAAImzS,EAAU,IAAI+ie,GAAc52yB,GAC5B62yB,EAAoB,QAAUtmiB,EAAc1pR,KAAK44P,aAAU,IAAW8wB,OAAc,EAASA,EAAYp2N,OAAO,iBAChH28vB,IAAsBD,GAAqBhwzB,KAAK44P,MAAMr8I,gBAAgBtF,WACtEogB,EAAgB24rB,GAAqBhwzB,KAAKszD,OAAO,iBACjD48vB,EAAuBlje,EAAQtvN,eAAe19H,KAAK+lR,cACnDztJ,EAAgBjB,EAAcvwG,OAAOopyB,GACrCC,EAA6B73rB,EAAc7zH,SAAW0U,EAAO1U,OAC7Dq5C,EAAI,IAAI01B,MACR8oC,EAAiBt8G,KAAKu8G,gBAC1B,KAAMv8G,KAAKowzB,sBAAwBH,IAAsBE,EACrD,OAAOrywB,EAAEjqB,QAAQykG,GAAex+E,UAEhC,IACI8sF,kBAAmBA,EACnBukQ,OAAQA,EACR10R,OAAQA,IACR6F,EAAepG,cACfpvF,GAAS9mB,KAAK0vzB,WAAW1ie,GAC7B1wO,SAAe7B,cAAc,CACzB3zF,OAAQA,GACR8/G,kBAAmBA,EACnBukQ,OAAQA,EACR10R,OAAQA,KACTviC,KAAK,CAAC9nE,GAAM8jG,MAEX,GADAlwG,KAAKowzB,sBAAuB,EACxBpwzB,KAAKw2F,UACL14C,EAAEjE,aADN,CAIA,IACIztC,KAAMioD,IACN49C,GAAoB7lG,GAAM8jG,IAC1BmgtB,GAAc/zsB,EAAexB,iBAAiBzmD,IAClDvW,EAAEjqB,QAAQw8xB,GAAYvpyB,OAAOopyB,OAC9B/7uB,KAAKr2B,EAAEjE,QACV75C,KAAK8vzB,0BAA4BhywB,EAC1BA,EAAEhE,WAGjBw2wB,gBAAiB,SAASn3yB,EAAQm/G,GAC9B,IAAIjkE,EAAQ,GACRo/B,EAAQ,GACR88tB,EAAuB,SAAWvwzB,KAAKgmR,mBACvCwqiB,EAAiB,GACrBl4rB,EAActyH,QAAQyqzB,IAClB,IAAIC,EAAoBH,EAAuBp6yB,KAAKC,UAAUq6yB,GAAgBzwzB,KAAK+lR,aAAa0qiB,GAChGD,EAAeE,GAAqBD,IAExC,IAAIE,EAAmB,GACvBx3yB,EAAOnT,QAAQ,CAAC4G,EAAO2F,KACnB,IAAI44E,EAAcqluB,EAAeD,EAAuBp6yB,KAAKC,UAAUxJ,GAASA,GAChF,GAAI2jzB,OAAyB7yyB,OAAUytE,GACnCwluB,EAAiBtnzB,KAAKrJ,KAAKupR,UAAU38Q,EAAO6mF,GAAO3f,OAAOl3D,IACtD,IAAIogH,EAAUh9H,KAAK4wzB,eAAeh0yB,EAAMhQ,GACxCynD,EAAM5hD,OAAOF,EAAO,EAAGyqH,UAExB,CACH,IAAIA,EAAUh9H,KAAK4wzB,eAAezluB,EAAav+E,GAC/CynD,EAAM5hD,OAAOF,EAAO,EAAGyqH,MAG/B,IAAIl/E,EAAI,IAAI01B,MACZK,mBAAW7zE,KAAM2wzB,GAAkB78uB,OAAQ,WACvCh2B,EAAEjqB,QAAQwgC,KAEPvW,EAAEhE,WAEb82wB,eAAgB,SAASh0yB,EAAMhQ,GAC3B,MAAI8Q,OAAUd,GACV,YAAKkwyB,eAAezjzB,KAAKuT,GAClBA,EAEP,IAAIsoH,EAAellI,KAAKszD,OAAO,gBAE/B,OADiBtzD,KAAK+lR,aAAa7gJ,KAAkBt4H,EAAQs4H,EAAet4H,GAIpFikzB,eAAgB,WACZ,OAAO7wzB,KAAKszD,OAAO,aAAetzD,KAAKu8G,gBAAgBhoF,SAE3Du8xB,kBAAmB,SAAS33yB,GACxB,IAAIg+O,EAAc,GAClBh+O,SAAOnT,QAAQ,SAAS4G,GACpB,IAAIgQ,EAAO5c,KAAKwpR,kBAAkB58Q,IAC9B8Q,SAAUd,IACVu6O,EAAY9tP,KAAKuT,IAEvBqsC,KAAKjpD,OACAm3P,GAEX45jB,yBAA0B,SAAS53yB,GAC/B,IAAIk+G,EAAgB,IAAI7jD,MACxB,OAAIxzE,KAAKgxzB,kCACLhxzB,KAAKu8G,gBAAgBl+C,OAAOr+D,KAAKgxzB,iCAAiC/9sB,aAEtEjzG,KAAUu8G,gBAAgBloD,QAAQ5vD,OAS9B4yH,EAAcxjG,QAAQ7zB,KAAK8wzB,kBAAkB33yB,IAR7CnZ,KAAKgxzB,iCAAmChxzB,KAAKu8G,gBAAgB7rE,OAAOwjC,KAAK,KACrEmjD,EAAcxjG,QAAQ7zB,KAAK8wzB,kBAAkB33yB,MAC9Cg7D,KAAK,KACJkjD,EAAcxjG,QAAQ,MACvBigD,OAAO,KACN9zE,KAAKgxzB,sCAAmC,IAKzC35rB,EAAcv9E,WAEzBm3wB,cAAe,WACX,IAAI93yB,EAASnZ,KAAK07c,YACdw1W,EAAU,IAAI19uB,MAGlB29uB,OAFAnxzB,KAAK8szB,eAAiB,IACK9szB,KAAK6wzB,iBAAmB7wzB,KAAK+wzB,yBAAyB53yB,GAAUnZ,KAAK4vzB,kBAAkBz2yB,IAC7F+6D,KAAKokD,IACVt4H,KAAKswzB,gBAAgBn3yB,EAAQm/G,GACnCxkD,OAAQ,SAAS1nE,GACnB8kzB,EAAQr9xB,QAAQznB,OAErB+nE,KAAK+8uB,EAAQr3wB,OAAOoP,KAAKjpD,OACrBkxzB,EAAQp3wB,WAEnBk1wB,YAAa,WACT,IAAIlxwB,EAAI,IAAI01B,MACR49uB,GAAkB,EACtB,OAAIpxzB,KAAKqxzB,yBAAyBrxzB,KAAKsxzB,mBACnCtxzB,KAAK8szB,eAAiB9szB,KAAKuxzB,mBAAmBvxzB,KAAKsxzB,iBAC/CtxzB,KAAK8szB,eAAerozB,SAAWzE,KAAKsxzB,gBAAgB7szB,SACpDzE,KAAKwxzB,gBAAgBxxzB,KAAK8szB,gBAC1BsE,GAAkB,EAClBtzwB,EAAEjqB,YAGLu9xB,GACDpxzB,KAAKixzB,gBAAgB/8uB,KAAK7f,IAClBr0D,KAAKw2F,UACL14C,EAAEjE,UAGN75C,KAAKwxzB,gBAAgBn9vB,GACrBvW,EAAEjqB,aACHsgD,KAAKr2B,EAAEjE,QAEPiE,EAAEhE,WAEb03wB,gBAAiB,SAASn9vB,GACtBr0D,KAAKyxzB,gBAAgBp9vB,GACrBr0D,KAAK0xzB,oBACA1xzB,KAAKsrzB,qBACNtrzB,KAAKmszB,kBAGbkF,yBAA0B,SAASl4yB,GAC/B,OAAOA,GAAUnZ,KAAKu8G,gBAAgBtF,YAAc99F,EAAO1U,QAAUzE,KAAK62H,iBAAiBpyH,QAE/F8szB,mBAAoB,SAASp4yB,GACzB,IAAIk+G,EAAgBr3H,KAAK2xzB,0BAA0Bx4yB,GAEnD,GAD2B,IAAMk+G,EAAc5yH,QAAU0U,EAAO1U,OAAS,GAAK4yH,EAAc5yH,OAAS0U,EAAO1U,OAClF,CACtB,IAAIs0H,EAAa/4H,KAAK62H,iBACtBQ,EAAgBr3H,KAAK4xzB,qBAAqB74rB,EAAY5/G,GAE1D,OAAOk+G,GAEXs6rB,0BAA2B,SAASx4yB,GAChC,IAAIopiB,EACAytQ,EAAoB,QAAUztQ,EAAevijB,KAAK44P,aAAU,WAA0B,EAAS2pT,EAAajvf,OAAO,iBACnH+jE,EAAgB,GACpB,OAAIl+G,EAAO1U,UAAY,MAASurzB,OAAoD,EAASA,EAAkBvrzB,UAC3G4yH,EAAgBr3H,KAAK4xzB,qBAAqB5B,EAAmB72yB,IAE1Dk+G,GAEXu6rB,qBAAsB,SAAS74rB,EAAY5/G,GAevC,OAdoB4/G,EAAWjyG,OAAOy1S,IAElC,QADI1lS,EACKryB,EAAI,EAAGA,EAAI2U,EAAO1U,OAAQD,IAE/B,IAAIwY,SADJ6Z,EAAe1d,EAAO3U,KAElB,GAAIxE,KAAKmmR,eAAeo2C,EAAU1lS,GAC9B,OAAO,UAEJ72B,KAAKmmR,eAAenmR,KAAK+lR,aAAaw2C,GAAW1lS,GACxD,OAAO,EAGf,OAAO,GACR72B,OAGPiyP,gBAAiB,WACbjyP,KAAK6xzB,cAAch+xB,UACnB7zB,KAAKm5D,WACL,IAAI24vB,EAAgB9xzB,KAAKm7D,WAAW11B,KAAK,IAAI5jB,OA9sBd,kCA+sB/B7hB,KAAK4rzB,qBAAqBkG,GAC1B9xzB,KAAKkuzB,0BAETuD,gBAAiB,SAASp9vB,GACtB,IAAI09vB,EACJ,QAAUA,EAAsB/xzB,KAAK6xzB,qBAAkB,OAA0CE,EAAoBl4wB,SACrH75C,KAAK6xzB,cAAgB,IAAIr+uB,MACzBxzE,KAAK0xP,eACL1xP,KAAKszD,OAAO,gBAAiBtzD,KAAK8szB,eAAexlzB,SACjDtH,KAAKgyzB,aACDhyzB,KAAK89O,SAASr5O,OAAS,GACvBzE,KAAK6xzB,cAAch+xB,WAEvBggD,SAAK7zE,KAAK6xzB,eAAe39uB,KAAK,KAC1Bl0E,KAAKiyzB,oBAAoB59vB,MAGjC49vB,oBAAoB59vB,GAChB,IAAI69vB,EAAYlyzB,KAAKsvzB,qBAAuBtvzB,KAAKuvzB,gBAAgBvvzB,KAAK89O,UAClE8ukB,EAAmB5szB,KAAKszD,OAAO,oBAC/Bq5vB,EAAmB3szB,KAAKszD,OAAO,oBACnCe,EAAMruD,QAAQ,CAAC4W,EAAMrK,KACjB,GAAI2/yB,GAAatF,GAAoBsF,IAActF,GAAoBr6yB,EAAQo6yB,IAAoB,EAC/F,OAAO,EAEX3szB,KAAKmyzB,WAAWv1yB,EAAMs1yB,GAAalyzB,KAAK89O,YAExC99O,KAAKmsG,cACLnsG,KAAK2rzB,iBAAiB,OAE1B3rzB,KAAKoyzB,uBAETJ,WAAY,WACR,GAAIhyzB,KAAKsvzB,oBACLtvzB,KAAKorzB,eAAevqzB,aACjB,CACH,IAAIwxzB,EAAQryzB,KAAKorzB,eACbjyyB,EAASnZ,KAAK07c,aAClB5yY,SAAKupvB,EAAQ,SAAS7tyB,EAAGohI,GACrB,IAAI4pqB,GAAOp0vB,QAAEwqF,GACTsrqB,EAAU1B,EAAKpjzB,KAAKm+yB,IAClB,SAAwCpxyB,EAAOqO,SAAS0pyB,IAC1D1B,EAAK3uzB,WAIjBb,KAAKguzB,sBAET0D,kBAAmB,WACf,IAAIrkvB,IAAYrtE,KAAK07c,YAAYj3c,QAAUzE,KAAK8szB,eAAerozB,QAAUzE,KAAK40G,gBAC9E50G,KAAK6gP,iBAAiBxzK,GACtBrtE,KAAKygP,sBAETA,mBAAoB,WAChBzgP,KAAK+uzB,oBAETqD,oBAAqB,WACjBpyzB,KAAKytzB,kBAAoBztzB,KAAKm7D,WAAW11B,KAAK,IAAI5jB,OAAO2oyB,MAE7DY,aAAc,WACV,OAAOprzB,KAAKytzB,mBAEhB6E,kBAAmB,SAAS11yB,EAAM4yyB,GAC9BxvzB,KAAKouzB,aAAan8vB,OAAO,CACrBt7B,MAAO/Z,EACPsX,UAAWqlD,GAAiBi2uB,MAGpC2C,WAAY,SAASv1yB,EAAMg0L,GACvB,IAAIhkM,EAAQ5M,KAAK+lR,aAAanpQ,GAC9B,MAAKc,OAAU9Q,GAGf,KAAI4izB,EAAOxvzB,KAAKuyzB,QAAQ3lzB,GACpByhH,EAAeruH,KAAK8lH,eAAelpG,GACnC0hwB,EAAYt+wB,KAAKwyzB,cAAc51yB,EAAMyxG,GACzC,GAAImhsB,GACI9xyB,SAAU2wG,KACVmhsB,EAAKxsuB,QACLhjF,KAAKsyzB,kBAAkBh0C,EAAWkxC,IAEtCA,EAAK1hzB,YAAY48yB,KACjB1qzB,KAAKguzB,mBAAmBwB,EAAKpgvB,KAAK,WAC/B,CACH,IAAIqjvB,EAAQ,MAAM5wyB,OAAO,IAAI4kG,MAC7B+osB,EAAOxvzB,KAAK0yzB,WAAW9lzB,EAAOgkM,EAAQ6hnB,IACtC,EAAI/0yB,OAAUd,GACV5c,KAAKsyzB,kBAAkBh0C,EAAWkxC,IAElCA,EAAK5hzB,SAAS88yB,KACd1qzB,KAAKsyzB,kBAAkB1lzB,EAAO4izB,IAElCxvzB,KAAKguzB,mBAAmByE,MAGhCD,cAAe,SAAS51yB,EAAMyxG,GAC1B,OAAIrxG,SAASJ,OAASc,OAAU2wG,GACrBzxG,GAEAsqF,SAAcmnB,EAAc,KAG3CkksB,QAAS,SAAS3lzB,GAId,QAHIylzB,EAAQryzB,KAAKorzB,eACbuH,EAAaN,EAAM5tzB,OACnBiO,GAAS,EACJlO,EAAI,EAAGA,EAAImuzB,EAAYnuzB,IAAK,CACjC,IAAIgrzB,EAAO6C,EAAM7tzB,GACb0szB,GAAUz1vB,SAAY+zvB,EAAMjF,IAChC,GAAI39yB,IAAUskzB,IAAWhgwB,SAAatkD,EAAOskzB,GAAU,CACnDx+yB,KAAS0oD,MAAEo0vB,GACX,OAGR,OAAO98yB,GAEXggzB,WAAY,SAAS9lzB,EAAOgkM,EAAQ6hnB,GAChC,OAAOr3vB,QAAE,SAASgU,KAAK,KAAMqjvB,GAAO7kzB,SAAS48yB,IAAkBp+yB,KAAKm+yB,GAAqB39yB,GAAOK,aAAa2jM,IAEjH8vC,6BAA8B,WAC1B1gP,KAAK6gP,kBAAkB7gP,KAAK07c,YAAYj3c,SAAWzE,KAAK40G,eAAenwG,SAE3E+tkB,wBAAyB,SAASx8jB,GAC9BhW,KAAKm5D,SAASnjD,GACdhW,KAAK4xkB,mBAET28O,kBAAmB,SAAS51yB,GACxB,IAAI3C,EAAI2C,EAAK7N,MACbkL,EAAEouE,kBACFpkF,KAAKy3O,sBAAsBzhO,GAC3B,IAAIw5yB,KAAOp0vB,MAAEplD,EAAEhU,QAAQ87E,QAAQ,IAAIj8D,OAAO2oyB,KAC1CxqzB,KAAKurzB,kBAAkBiE,IAE3BjE,kBAAmB,SAASiE,GACxB,GAAIA,EAAK75vB,SAAS80vB,KACTzqzB,KAAKszD,OAAO,oBAGbtzD,KAAKszB,QAFLtzB,KAAKszD,OAAO,QAAStzD,KAAK07c,YAAYp0c,MAAM,EAAGtH,KAAKszD,OAAO,0BAFnE,CAQA,IAAI25H,EAAYuioB,EAAKpjzB,KAAKm+yB,IACtB3oM,EAAS4tM,EAAKpgvB,KAAK,MACvBpvE,KAAK4yzB,qBAAqB3loB,GAC1BjtL,KAAKguzB,mBAAmBpsM,GAAQ,GAChC5hnB,KAAKoyzB,wBAETriP,aAAczjhB,MACdsmwB,qBAAsB,SAAS3loB,GAC3B,IAAIrgL,EAAQ5M,KAAK07c,YAAYp0c,QAC7BtH,KAAK6yzB,WAAWjmzB,EAAOqgL,GACvBjtL,KAAKszD,OAAO,QAAS1mD,GACrB5M,KAAKszD,OAAO,eAAgB,MACxB,IAAM1mD,EAAMnI,QACZzE,KAAKmszB,kBAGb3liB,iBAAkB,WACd,OAAOxmR,KAAK8yzB,cAEhB/hP,wBAAyB,SAAS/6jB,GAC9B,GAAI,eAAiBhW,KAAKszD,OAAO,kBAGjC,KAAI1mD,EAAQ5M,KAAK07c,YAAYp0c,QAQ7B,MAPAwhE,OAAK9yD,EAAEohH,cAAgB,GAAI,CAAC5yG,EAAGuuyB,KAC3B/yzB,KAAK6yzB,WAAWjmzB,EAAO5M,KAAK+lR,aAAagtiB,SAE7CjqvB,OAAK9yD,EAAEmhH,YAAc,GAAI,CAAC3yG,EAAGwsjB,KACzBhxkB,KAAKgzzB,QAAQpmzB,EAAO5M,KAAK+lR,aAAairT,MAE1ChxkB,KAAKqvzB,wBACAn+vB,SAAalxD,KAAK44P,MAAMtlM,OAAO,oBAAqBtzD,KAAKszD,OAAO,UAAW,CAC5E,IAAI2/vB,EAA2BjzzB,KAAK44P,MAAMwkB,2BAC1C61iB,GAA4BjzzB,KAAKy3O,sBAAsBw7kB,GACvDjzzB,KAAKszD,OAAO,QAAS1mD,GAEzB5M,KAAK44P,MAAMskB,+BAA0B,KAEzC21iB,WAAY,SAASjmzB,EAAOgQ,GACxB,IAAIrK,EAAQvS,KAAKkzzB,YAAYt2yB,EAAMhQ,GAC/B2F,GAAS,GACT3F,EAAM6F,OAAOF,EAAO,IAG5BygzB,QAAS,SAASpmzB,EAAOgQ,GACT5c,KAAKkzzB,YAAYt2yB,GACjB,GACRhQ,EAAMvD,KAAKuT,IAGnBg1O,iBAAkB,WACd,OAAO5xP,KAAK8szB,eAAexlzB,SAE/BirkB,mBAAoB,SAAS3lkB,GACpB5M,KAAKszD,OAAO,0BACbtzD,KAAK+nR,UAAUn7Q,IAGvBm7Q,UAAW,SAASn7Q,GAChB,GAAI,SAGJ,KAAIumzB,EAAa,eAAiBnzzB,KAAKszD,OAAO,kBAC1C8/vB,EAAapzzB,KAAKkzzB,YAAYtmzB,GAC9BuM,GAAUg6yB,EAAanzzB,KAAK44P,MAAMtlM,OAAO,oBAAsBtzD,KAAK07c,aAAap0c,QACjF8rzB,GAAc,EACdj6yB,EAAO1G,OAAO2gzB,EAAY,GAE1Bj6yB,EAAO9P,KAAKuD,GAEZ,oBAAsB0mD,OAAO,kBAC7BtzD,KAAK44P,MAAMtlM,OAAO,mBAAoBn6C,GAEtCnZ,KAAKszD,OAAO,QAASn6C,KAG7B6wQ,iBAAkB,SAASp9Q,EAAO6mF,GAC9B,OAAOzzF,KAAKkzzB,YAAYtmzB,EAAO,KAAM6mF,IAAS,GAElDy/tB,YAAa,SAAStmzB,EAAOuM,EAAQs6E,GACjC,IAAI/gF,GAAS,EACb,OAAI+gF,GAAS,iBAAoB7mF,IACxB6mF,EAAM4/tB,gBACP5/tB,EAAM4/tB,cAAgB,IACtBl6yB,EAASA,GAAUnZ,KAAK07c,aACjB11c,QAAS,SAAS4G,EAAO2F,GAC5BkhF,EAAM4/tB,cAAczmzB,GAAS2F,KAGjC3F,KAAS6mF,EAAM4/tB,eACR5/tB,EAAM4/tB,cAAczmzB,IAGnCuM,EAASA,GAAUnZ,KAAK07c,aACxB5yY,SAAK3vD,EAAQ,CAAC5G,EAAOyoc,KACjB,GAAIh7c,KAAKmmR,eAAev5Q,EAAOouc,GAC3Btoc,SAASH,GACF,IAGRG,IAEXogzB,WAAY,WACR,IAAI35yB,EAASnZ,KAAK07c,YACd9nR,EAAYz6K,EAAOA,EAAO1U,OAAS,GACvC,OAAO,QAA6CmvL,EAAY,MAEpE04F,yBAA0B,WACtB,OAAOtsR,KAAKszD,OAAO,kBAAoBtzD,KAAKszD,OAAO,sBAEvDi5N,eAAgB,SAASv2Q,GACjBhW,KAAKszD,OAAO,oBAAsBt9C,IAAMhW,KAAKirzB,gBAC7CjrzB,KAAKm5D,SAASp5D,WACdC,KAAK8uzB,4BAET9uzB,KAAKqvzB,6BACErvzB,KAAKirzB,eAEhBoE,oBAAqB,WACjB,IAAI7nzB,EAAUxH,KAAKm7D,WACfm4vB,KAAiB5tvB,OAAUl+D,GAC/BxH,KAAK+uzB,mBACL,IAAIwE,KAAgB7tvB,OAAUl+D,GAC1BxH,KAAKmxO,QAAUnxO,KAAKszD,OAAO,WAAatzD,KAAKwxP,eAAiB+hkB,IAAkBD,GAChFtzzB,KAAKmxO,OAAO9iI,WAGpBy7K,iBAAkB,WACd,IAAI24R,GACH,QAAUA,EAAezijB,KAAK44P,aAAU,WAA0B,EAAS6pT,EAAa1nc,kBAAoB/6G,KAAK44P,MAAMtlM,OAAO,gBAAiBtzD,KAAK8szB,iBAEzJ0G,2BAA4B,WACxB,IAAIl3sB,EAAiBt8G,KAAKu8G,uBACnBv8G,KAAKyzzB,YACZn3sB,EAAex1F,OAAO,MACtBw1F,EAAe9C,UAEnBs1sB,yBAA0B,WACtB,GAAK9uzB,KAAKszD,OAAO,sBAAyBtzD,KAAK44P,MAG/C,KAAIt8I,EAAiBt8G,KAAKu8G,gBACtBm3sB,EAAkB1zzB,KAAKgmR,mBAC3B,IAAIzpM,SAASm3uB,IAAoB,WAA4B,CACzD,IAAI5syB,EAAS9mB,KAAK2zzB,6BACd,IAAW3zzB,KAAKyzzB,cAChBzzzB,KAAKyzzB,YAAcn3sB,EAAex1F,UAAY,MAElD9mB,KAAKyzzB,aAAe3syB,EAAOzd,KAAKrJ,KAAKyzzB,aACrBn3sB,EAAex1F,OAA/BA,EAAOriB,OAA+BqiB,EAAgC,WAEtEw1F,EAAex1F,OAAO9mB,KAAK4zzB,0BAA0B3qwB,KAAKjpD,OAE9Ds8G,EAAe5rE,SAEnBijxB,sBAAuB,WACnB,IAAI7syB,EAAS,GACb,YAAK40b,YAAY11c,QAAQ4G,GAASka,EAAOzd,KAAK,CAAC,IAAK,CAACrJ,KAAKgmR,mBAAoBp5Q,MACvEka,GAEX8syB,0BAA2B,SAAStvsB,GAChC,IAAI2oE,EAAYjtL,KAAK+lR,aAAazhK,GAC9B5xG,GAAS,EACbo2D,gBAAK9oE,KAAK07c,YAAa,CAACnpc,EAAO3F,KAC3B,GAAI5M,KAAKmmR,eAAev5Q,EAAOqgL,GAC3Bv6K,UAAS,GACF,IAGRA,GAEXs3G,0BAA2B,WACvBhqH,KAAKowzB,sBAAuB,EAC5BpwzB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAE9Bo2P,oBAAqB,SAASx9O,GAC1B3Y,KAAKy3O,sBAAsB9+N,EAAK7N,OAChC9K,KAAKszD,OAAO,QAAStzD,KAAK6zzB,wBAC1B7zzB,KAAK4xkB,kBACL5xkB,KAAKm5D,WACLn5D,KAAKivkB,uBAET4kP,qBAAsB,WAClB,IAAIC,EAAa9zzB,KAAK+zzB,iBAClBl9xB,EAAe72B,KAAKszD,OAAO,UAAY,GACvC0gwB,EAAeF,EAAWrvzB,OjrBllCT,SAASwvzB,EAAYC,GAC9C,IAAIppuB,EAAcC,GAAoBmpuB,GACtC,OAAOD,EAAWntyB,OAAOla,IACrB,IAAIo+E,EAAmBF,EAAY9mF,IAAI4I,GACvCo+E,UAAoBF,EAAY9iF,IAAI4E,EAAOo+E,EAAmB,GACvDA,IirB6kCgCmpuB,CAAgBt9xB,EAAci9xB,GAAc,GAC/E7psB,EAAW+psB,EAAavvzB,OAASmmF,GAAiBkpuB,EAAYj9xB,GAAgBi9xB,EAClF,OAAOE,EAAanyyB,OAAOooG,IAE/B8psB,eAAgB,WACZ,OAAK/zzB,KAAK44P,MAGH54P,KAAK62H,eAAe72H,KAAK44P,MAAMtlM,OAAO,kBAAkB5yC,IAAI9D,GAAQ5c,KAAK+lR,aAAanpQ,IAFlF,IAIfsrQ,mBAAoB,WAChB,IAAIrxP,EAAe72B,KAAK07c,YACxB17c,KAAKm5D,WACDtiC,IAAiB72B,KAAKszD,OAAO,UAC7BtzD,KAAKszD,OAAO,QAASz8B,GAEzB72B,KAAK8pR,oBAET14B,mBAAoB,WAChBpxP,KAAKm5D,WACD,eAAiBn5D,KAAKszD,OAAO,oBAAsBtzD,KAAKszD,OAAO,WAC/DtzD,KAAK8pR,oBAGbx2P,MAAO,WACHtzB,KAAKmxkB,oBACL,IAAIx7jB,EAAe3V,KAAKu0F,qBAAqB3nF,MACzCiqB,EAAe72B,KAAKszD,OAAO,SAC3B39C,GAAgB,MAAmBlR,QAAUoyB,GAAgBlhB,EAAalR,SAAWoyB,EAAapyB,QAGtGzE,KAAKm5D,YAETsqC,OAAQ,WACJzjG,KAAKm5D,kBACEn5D,KAAKo0zB,2BACLp0zB,KAAKsxzB,uBACLtxzB,KAAKouzB,cAEhBiG,4BAA4BpqsB,EAAUqqsB,GAClC,IAAKrqsB,EAASxlH,OACV,MAAO,CACH0yH,WAAY,GACZC,aAAck9rB,EAAchtzB,SAGpC,IAAKgtzB,EAAc7vzB,OACf,MAAO,CACH0yH,WAAYlN,EAAS3iH,QACrB8vH,aAAc,IAGtB,IAAIm9rB,EAAyBD,EAAc/gyB,OAAO,CAAC7S,EAAK9D,KAEpD8D,EADY1gB,KAAK+lR,aAAanpQ,IACjBA,EACN8D,GACR,IACCy2G,EAAa,GACjBlN,SAASjkH,QAAQ4W,IACb,IAAIhQ,EAAQ5M,KAAK+lR,aAAanpQ,GACzB23yB,EAAuB3nzB,IACxBuqH,EAAW9tH,KAAKuT,UAEb23yB,EAAuB3nzB,KAE3B,CACHuqH,WAAYA,EACZC,aAAc/qH,OAAO8M,OAAOo7yB,KAGpCh+tB,eAAgB,SAAS59E,GACrB,IACItV,KAAMA,EACNuJ,MAAOA,EACPypB,cAAeA,GACf1d,EACJ,OAAQtV,OACC,0BACDrD,KAAK+szB,mCACL,UACC,sBACD/szB,KAAKgtzB,+BACLhtzB,KAAKgvzB,cACL,UACC,oBACGpizB,EACA5M,KAAK8uzB,2BAEL9uzB,KAAKwzzB,6BAET,UACC,oBACDxzzB,KAAKstzB,qBAAqB1gzB,GAC1B,UACC,cACD5M,KAAKm5D,SAASxgD,GACd3Y,KAAKilG,iBACLjlG,KAAK4jG,cACL,UACC,cACD5jG,KAAK2tzB,mBACL3tzB,KAAK4jG,cACL,UACC,gBACD5jG,KAAKoqR,eAAe,gBAAiBpqR,KAAKszD,OAAO,kBACjD,UACC,eACA,WACDtzD,KAAKm5D,SAASxgD,IACb/L,GAAS5M,KAAKukP,iBACf,UACC,QACDvkP,KAAKsxzB,gBAAkB1kzB,EACvB5M,KAAKm5D,SAASxgD,GACd3Y,KAAKsxzB,qBAAkB,EACvBtxzB,KAAK8uzB,2BACL,UACC,uBACA,mBACD9uzB,KAAKgvzB,cACL,UACC,gBACDhvzB,KAAKoqR,eAAe/mR,EAAMuJ,GAC1B,UACC,eAQD,IACC,uBACD,MATA,IACC,gBACD5M,KAAK0oR,wBAAwB1oR,KAAKq0zB,4BAA4BznzB,EAAOypB,IACrE,UACC,YACDr2B,KAAKm7D,WAAW+oC,YAAY0mtB,KAA2Bh+yB,GACvD5M,KAAKmuzB,0BACL,MAEA,QAEAnuzB,KAAKm5D,SAASxgD,KAG1Bs4jB,sBAAuB,WACnB,OAAOjxkB,KAAKm5D,YAAcn5D,KAAK40G,gBAEnCs/I,oBAAqB,WACjBl0P,KAAKm5D,WACLn5D,KAAKsqR,kBAGbp2I,GAAkB,WAAY22qB,KAC9B,UAAeA,IC1uCf,IACI2J,IAAqB,iBAErBlpP,IAA0B,sBAO9B,kBAA8B3nd,GAC1BroB,eACI,OAAOt7F,KAAKm7D,WAAWpuD,SAE3Bu5H,+BACI,OAAO,EAEX/xC,qBACI,IAAItD,EAAiBnxF,MAAMy0F,qBAC3B,OAAOl1E,QAAO4xE,EAAgBu0L,mCAAqD,CAC/EngK,gBAAiB,CACbisB,KAAM,WAIlB/uC,cACIziG,MAAMyiG,eACNiI,SAAY,KACRxqG,KAAK6oH,eAAej7G,SAAS4mzB,OAGrC/otB,8BACI,OAAOzrG,KAAKs7F,eAEhBiyB,uBAAuB50G,GACnB,IACI2rG,UACIvoC,KAAMA,GAEVyxC,YAAaA,GACb70G,EACJ,IAAKojE,EAAM,CACP,IAAI04uB,GAASr5vB,QAAE,SAASxtD,SAAS09jB,MACjClwgB,QAAE,SAASxtD,SAvCW,2BAuC2Bi9D,SAAS4pvB,GAC1D,IAAIC,GAAkBt5vB,QAAE,SAASwuB,OAAO6quB,GAAQ7mzB,SArC1B,6BAsCtBwtD,QAAEoyD,GAAawtH,QAAQ05kB,GAE3B50zB,MAAMytH,uBAAuB50G,GAEjCwvH,uBAAuB9jB,EAAc0f,GACjCjkI,MAAMqoI,uBAAuB9jB,EAAc0f,GAC3C1f,EAAangB,YAnDY,yBAmD4B6/B,GAAYt+F,KAAK,IAAI5jB,OAAOypjB,MAA0B17hB,QAAQs0D,YAjDrF,8BAiDkI6/B,GAChK/jI,KAAK+tG,QAAQ,UAAWg2B,EAAY1f,GAExC8F,kBACInqH,KAAKoqH,kBACLpqH,KAAKmqG,iBAET5B,iBACI,IAAIx7F,EAASjN,MAAMyoG,iBACnB,OAAOlpF,QAAO,GAAItS,EAAQ,CACtB2iE,MAAO,SAAS15D,GACZA,SAAEjL,iBACKgC,EAAO2iE,MAAMh0C,MAAM17B,KAAMD,YAEpC8jH,MAAO,SAAS7tG,GACZA,SAAEjL,iBACKgC,EAAO82G,MAAMnoF,MAAM17B,KAAMD,cAI5C8nH,gBACI,OAAO7nH,KAAKyqH,iBAAiBtuF,SAASn8B,KAAK+qH,iBAE/Cqd,+BAEJ,iBAAyBouG,GACrB7vH,qBACI,MAAO,CACH9T,UAAU,GAGlBje,uBAEI,OAD0B90F,MAAM80F,uBACL/yE,OAAO,CAAC,CAC/BwiD,OAAQ,CACJzC,QAAQ,GAEZhwC,QAAS,CACL4kQ,OAAQ,eAEb,CACCnyN,OAAQ,IAAM,eAAcrB,OAAexB,aAAewB,iBAC1DpxC,QAAS,CACLi3E,mBAAmB,MAI/B6B,wBAAwBtE,GACpBA,GAAStmG,MAAM4qG,0BAEnBpP,eACI,OAAOt7F,KAAKm7D,WAEhByuC,iBACI,OAAO5pG,KAAKm7D,WAEhBo5B,qBACI,IAAItD,EAAiBnxF,MAAMy0F,qBAC3B,SAAOl1E,MAAO4xE,GAAgB5xE,QAAOmmQ,mCAAqD,CACtF58K,mBAAmB,EACnBF,oBAAoB,EACpB8tL,OAAQ,cAGhBm+hB,cAAc/3yB,GACV,OAAO5c,KAAK+lR,aAAe/lR,KAAK+lR,aAAanpQ,GAAQA,EAAKnG,KAE9DwiO,oBACI,OAAOj5O,KAAKoyP,gBAEhBt8J,QACIh2F,MAAMg2F,QACN91F,KAAKurG,iBAAmB,IAAI1pF,OAAO2yyB,KACnCx0zB,KAAKqoG,qBAnHqB,IAoH1BroG,KAAK0lR,uBAETnjL,cACIviG,KAAKm7D,WAAWvtD,SAxHA,iBAyHhB5N,KAAKixP,uBACLjxP,KAAK+tG,QAAQ,OAAQ,cACrB/tG,KAAK40zB,gBACL50zB,KAAKqvmB,gBACLvvmB,MAAMyiG,cAEVkiB,kBAAkBzhG,GACd,IACIwqG,YAAaA,EACb1iH,MAAOA,EACPw5G,SAAUA,GACVthG,EACJ,GAAIhjB,KAAK6oH,eAAe5+F,GAAGujG,GAAc,CACrC,IAAI3iG,EAAW7qB,KAAK20zB,cAAcrwsB,GAC9Bz5F,IAAa7qB,KAAKszD,OAAO,WACzBtzD,KAAKy3O,sBAAsB3sO,GAC3B9K,KAAKszD,OAAO,QAASzoC,KAIjCgqyB,uBACI,IAAIjozB,EAAQ7M,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAKC,KAAKszD,OAAO,SAGzF,MAFuB,cAAgBA,OAAO,cACF,OAAS1mD,MAAS8Q,OAAU9Q,GAC7C,CAACA,GAAS,GAEzCkozB,cAAcj+xB,GACV,IAAIjqB,EAAQ5M,KAAKkmR,gBAAgBrvP,GACjC72B,KAAKsnR,2BAA2B,mBAAoBtnR,KAAK60zB,qBAAqBjozB,IAElFyqO,yBACI,IAAIO,EACJ93O,MAAMu3O,yBACN,QAAUO,EAAwB53O,KAAK83O,0BAAuB,OAA4CF,EAAsBjnC,WAAWvhI,KAAK,OAAQ,SAE5JmnB,eAAe59E,GACX,IACItV,KAAMA,EACNuJ,MAAOA,GACP+L,EAEJ,OADA3Y,KAAKwnR,6BAA6B7uQ,GAC1BtV,OACC,aACDrD,KAAK4jG,cACL,UACC,wBACA,gBACA,WACD5jG,KAAKsnR,2BAA2BjkR,EAAMuJ,GACtC,UACC,WACD9M,MAAMy2F,eAAe59E,GACrB3Y,KAAKsnR,2BAA2BjkR,EAAMuJ,GACtC,UACC,YACD5M,KAAKsnR,2BAA2B,UAAWtnR,KAAKunR,yBAChD,UACC,QACDvnR,KAAK80zB,cAAclozB,GACnB5M,KAAK6xP,gBAAgBjlP,GACrB9M,MAAMy2F,eAAe59E,GACrB,UACC,QACD3Y,KAAK80zB,cAAc90zB,KAAKszD,OAAO,UAC/B,UACC,mBACA,cACD,UACC,SACDtzD,KAAKqvmB,gBACLrvmB,KAAK+0zB,mBACL,cAEAj1zB,MAAMy2F,eAAe59E,IAGjCy/E,UACIt4F,MAAMs4F,UACNp4F,KAAK+0zB,mBAET1lN,gBACI,IAAI74U,EAASx2R,KAAKszD,OAAO,UACrB6H,EAAWn7D,KAAKm7D,WACpBA,EAAS+oC,YA9MgB,yBA8MwB,aAAesyL,GAChEr7N,EAAS+oC,YAhNkB,2BAgNwB,eAAiBsyL,GAExEo+hB,gBACI50zB,KAAKg1zB,kBAAoB,IAAIxhvB,MAC7B,IAAIyhvB,GAAU75vB,QAAE,SAASyP,SAAS7qE,KAAKm7D,aAEnCsqD,YAAaA,EACb3c,UAAWA,EACXD,kBAAmBA,EACnB+b,aAAcA,EACd/1C,SAAUA,GACV7uE,KAAKszD,SACTtzD,KAAK24F,iBAAiBs8tB,EAASC,IAAiB,CAC5C1guB,cAAe8F,IACX,IACI9rF,UAAWA,GACX8rF,EACJt6F,KAAKm1zB,QAAU3mzB,GAEnBm6F,eAAgB3yF,IACZhW,KAAK0qG,yBAAwB,IAEjCoa,YAAa9kH,KAAKykH,kBAAkBx7D,KAAKjpD,MACzCylH,YAAaA,EACb3c,UAAWA,EACX0T,WAAYx8G,KAAKi8G,YACjBpT,kBAAmBA,EACnB+b,aAAcA,EACdyV,QAASr6H,KAAKunR,wBACdpiK,WAAY,GACZ4xC,kBAAkB,EAClB1xB,eAAe,EACfF,cAAe,SACf7N,iBAAkBt3H,KAAK60zB,uBACvBhmvB,SAAUA,IAEd7uE,KAAKg1zB,kBAAkBnhyB,UAE3Bo9N,uBACIjxP,KAAKoyP,mBAAkBh3L,MAAE,WAAWgU,KAAK,OAAQ,UAAUvE,SAAS7qE,KAAKm7D,YACzEn7D,KAAK6xP,kBAET78J,yBACIl1F,MAAMk1F,0BACN31E,QAAOrf,KAAK4vF,oBAAqB,CAC7BhjF,OAAO,IAGfilP,gBAAgBjlP,GACZ,IAAI8qB,EACJ9qB,EAAQ,QAAU8qB,EAAS9qB,SAAU,MAAoB8qB,EAAS13B,KAAKszD,OAAO,SAC9E,IAAIm6N,EAAc,SAAWztR,KAAKszD,OAAO,aAAetzD,KAAK8lH,eAAel5G,GAASA,EACrF5M,KAAKoyP,gBAAgB32N,IAAIgyP,GAE7BnG,6BACItnR,KAAKg1zB,kBAAkB9gvB,KAAKl0E,KAAKguG,iBAAiB/kD,KAAKjpD,KAAM,UAAWD,YAE5Eg1zB,mBACI,GAAI,eAAiB/0zB,KAAKszD,OAAO,UAC7BtzD,KAAK6oH,eAAe9sD,IAAI,SAAU,YAC/B,CACH,IAAI8qE,EAAa7mI,KAAKszD,OAAO,SAAS7uD,OACtCzE,KAAK6oH,eAAe9sD,IAAI,SAAU,IAAM8qE,EAAa,MAG7DxqC,QACI,IAAI+4tB,EACJ,QAAUA,EAAgBp1zB,KAAKm1zB,eAAY,OAAoCC,EAAc/4tB,QAEjGwsB,eACI,IAAIwssB,EACJ,OAAO,QAAUA,EAAiBr1zB,KAAKm1zB,eAAY,WAA4B,EAASE,EAAexssB,gBAG/GyssB,GAAWzlsB,QAAQ21J,IACnBtxI,GAAkB,eAAgBohrB,ICjTlC,UDkTeA,GEnSfC,IAhBmC,CAC/BC,aAAc,WACV,QAASx1zB,KAAKyxV,aAAahtV,QAE/BgtV,WAAY,WACR,OAAOzxV,KAAK44P,MAAMtlM,OAAO,cAE7BmiwB,eAAgB,WACZ,OAAOz1zB,KAAK44P,MAAMtlM,OAAO,sBAE7BoiwB,gBAAiB,SAASrxsB,EAAct3B,GACpC/sF,KAAK44P,MAAMp0I,2BAA2BH,EAAct3B,EAAQ,GAAI,CAC5DU,kBAAmB,CAAC,WAAY,gBCG5C,IAAIkouB,IAAoB,uBAExB1oP,GAAkB,OAAQ,UAAWlB,WAAsB,CACvDj2e,MAAO,WACH,IAAIotd,GAAQ9nf,QAAE,SAASxtD,SAAS+nzB,KAChC31zB,KAAK44P,MAAMz9L,WAAWyuB,OAAOs5d,GAC7BljjB,KAAKqjjB,MAAQrjjB,KAAK41zB,eAAe1yQ,IAErC0yQ,eAAgB,SAASz6vB,GACrB,OAAOn7D,KAAK44P,MAAMjgK,iBAAiBx9B,EAAU0zJ,GAAS,CAClDv/D,SAAS,EACTje,gBAAgB,EAChBmd,oBAAoB,EACpBD,mBAAoB,SAASv4I,GACzB,QAAQolD,QAAEplD,EAAEhU,QAAQ87E,QAAQ,IAAM63uB,KAAmBlxzB,QAEzDwiE,UAAW,CACPwtE,KAAM,CACFhpI,KAAM,QACN4oE,SAAU,IACVxrE,KAAM,CACFi3D,OAAQ,EACRsY,QAAS,GAEb7G,GAAI,CACAzR,OAAQ,WACJ,OAAO8L,SAAe5rE,KAAK61zB,aAC7B5swB,KAAKjpD,MACPo4E,QAAS,IAGjBo8D,KAAM,CACF/oI,KAAM,QACN4oE,SAAU,EACVxrE,KAAM,CACFuvE,QAAS,GAEb7G,GAAI,CACA6G,QAAS,KAIrB08K,iCAAiC,EACjCh1L,OAAQ,WACJ,OAAO9/D,KAAK61zB,YAAajqvB,SAAe5rE,KAAK61zB,YAAc,GAC7D5swB,KAAKjpD,MACP4/D,MAAO,WACH,OAAO+L,SAAc3rE,KAAK44P,MAAMz9L,aAClClS,KAAKjpD,MACP2oG,eAAgB3oG,KAAK81zB,mBAAmB7swB,KAAKjpD,SAGrD81zB,mBAAoB,SAAS9/yB,GACzB,IAAI0rN,EAAkB1rN,EAAExH,UAAUmiM,WAC9Bt8I,EAAQr0D,KAAKyxV,aAAanqV,QAC1BtH,KAAKy1zB,kBACLphwB,EAAMhrD,KAAK,CACPoN,KAAMupG,UAA2B,8BACjCjzB,OAAQ/sF,KAAK2gwB,YAAY13sB,KAAKjpD,QAGtCA,KAAK61zB,cAAaz6vB,MAAE,SACpBp7D,KAAK44P,MAAMjgK,iBAAiB34F,KAAK61zB,WAAYr6iB,GAAU,CACnDnnN,MAAOA,EACPywD,YAAa9kH,KAAK+1zB,sBAAsB9swB,KAAKjpD,MAC7C8/D,OAAQ,OACR9I,mBAAoB,KAExB0qK,EAAgB9zN,SAnEY,+BAoE5B8zN,EAAgB93I,OAAO5pF,KAAK61zB,aAEhCE,sBAAuB,SAASp9yB,GAC5B3Y,KAAKqjjB,MAAM7ua,OACXx0I,KAAK01zB,gBAAgB11zB,KAAKg2zB,eAAgBr9yB,EAAK2rG,SAASv3B,SAE5D4zqB,YAAa,WACT3gwB,KAAK44P,MAAMxuH,WAAWpqI,KAAKg2zB,iBAE/Bv7jB,kBAAmB,SAASp2I,GACxB,YAAK2xsB,eAAiB3xsB,EACtBrkH,KAAKqjjB,MAAM/vf,OAAO,CACdt5B,SAAU,CACNqxC,GAAI,MACJ56C,GAAI,SACJrU,GAAIioG,EACJ94C,UAAW,UAGnBvrE,KAAKqjjB,MAAM5ua,QACJ,GAEX3zF,QAAS,WACD9gD,KAAKqjjB,OACLrjjB,KAAKqjjB,MAAMlof,WAAWt6D,SAE1Bb,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAE/B8vH,QAAQomsB,MCtGX,IAAIh1tB,IAAW8qe,YAQXJ,IAAsB,sBACtBuqP,IAA0BxnvB,GAAa7H,QAAoB8kgB,KAC3D7le,IAAoBp3B,GAAas+B,GAAQ2+d,KAEzCwqP,GAAgC,kCAIhCC,IAAgD,kDAGhDC,IAA0BtqP,WAAsB,CAChDj2e,MAAO,WACH91F,KAAKs2zB,eAAcl7vB,MAAE,SAASxtD,SAPG,wCAQjC5N,KAAKu2zB,kBAAiBn7vB,MAAE,SAASxtD,SAPG,2CAQpC5N,KAAKw2zB,qBAAsBp7vB,QAAE,SAASxtD,SANI,iDAO1C6gD,QAAgBzuD,KAAKs2zB,YAAaJ,IAAyBl2zB,KAAKy2zB,uBAAuBxtwB,KAAKjpD,OAC5FyuD,QAAgBzuD,KAAKu2zB,eAAgBL,IAAyBl2zB,KAAKy2zB,uBAAuBxtwB,KAAKjpD,OAC/FA,KAAK44P,MAAMz9L,WAAWyuB,OAAO5pF,KAAKs2zB,YAAYlinB,QAAO,IAAQxqH,OAAO5pF,KAAKu2zB,eAAeninB,QAAO,KAEnG+lD,YAAa,WACT,OAAOn6P,KAAKy2zB,0BAEhBA,uBAAwB,WACpB,QAAKz2zB,KAAK02zB,sBAGV12zB,KAAK22zB,cAAc32zB,KAAK02zB,sBACjB,IAEXC,cAAe,SAAStysB,GACpBrkH,KAAK42zB,mBAAmBvysB,GAAc,IAE1CuysB,mBAAoB,SAASvysB,EAAcwysB,QACnC,QACAA,GAAiB72zB,KAAK82zB,iBAAiBzysB,IAE3CrkH,KAAK+2zB,eAAe1ysB,EAAcwysB,GAClC72zB,KAAKg3zB,iBAAiBH,GACtB72zB,KAAKi3zB,wBAAwB5ysB,EAAcwysB,GAC3C72zB,KAAKk3zB,qBAAqB7ysB,EAAcwysB,IAE5CC,iBAAkB,SAASzysB,GACvB,OAAOA,EAAa1uD,SAASwgwB,KAEjCY,eAAgB,SAAS1ysB,EAAch8F,GACnCroB,KAAK44P,MAAMz9L,WAAW+oC,YAzCiB,6CAyCqC77E,GAC5EroB,KAAKs2zB,YAAYlinB,OAAO/rL,GACxBroB,KAAKu2zB,eAAeninB,OAAO/rL,GACvBA,GACAroB,KAAKm3zB,qBAAqB9ysB,GAE9BrkH,KAAKo3zB,qBAAqB/ysB,EAAch8F,IAE5C8uyB,qBAAsB,SAAS9ysB,GAC3B,IAAIwmK,EAAQ7qR,KAAK44P,MAAMz9L,WACnBk8vB,EAAgBxsiB,EAAM1gN,SAAS5O,IAC/B+7vB,KAAa1rvB,OAAei/M,GAG5B0siB,EAFgBlzsB,EAAal6C,SAAS5O,IAEC87vB,EACvCG,EAA0BF,GAFb1rvB,SAAey4C,GAEwBkzsB,GACxDjkrB,SAAUtzI,KAAKs2zB,YAAa/7yB,KAAKC,IAAI+8yB,EAAsB,OAC3DjkrB,OAAUtzI,KAAKu2zB,eAAgBh8yB,KAAKC,IAAIg9yB,EAAyB,KAErEJ,qBAAsB,SAAS/ysB,EAAch8F,GACrCA,EACAg8F,EAAa5+E,KAAK,yBAA+BmK,QAAQg6C,OAAO5pF,KAAKw2zB,qBAErEx2zB,KAAKw2zB,oBAAoBhuxB,UAGjCwuxB,iBAAkB,SAASH,GACvB,IAAIj0jB,EAAa5iQ,KAAK44P,MAAMz9L,WAAWuwpB,aAAa,YAChDmrG,EACAj0jB,EAAWh5M,GAAG,QAAS5pD,KAAKy3zB,kBAE5B70jB,EAAW/4M,IAAI,QAAS7pD,KAAKy3zB,mBAGrCA,iBAAkB,SAAS9+yB,GACvBA,EAAK7N,MAAMuzD,QAAS,GAExB44vB,wBAAyB,SAAS5ysB,EAAc5wB,GACxCA,EACAzzF,KAAK02zB,oBAAsBrysB,SAEpBrkH,KAAK02zB,qBAGpBQ,qBAAsB,SAAS7ysB,EAAcwysB,GACrCA,GACA72zB,KAAK03zB,mBAAmBrzsB,GACxBrkH,KAAK23zB,oBAAoBtzsB,GACzBrkH,KAAK43zB,2BAA2BvzsB,GAChC51D,SAAiB41D,EAAcx9C,SAE/B7mE,KAAK63zB,mBAAmBxzsB,GACxBrkH,KAAK83zB,0BAA0BzzsB,GAAcnwC,KAAKl0E,KAAK+3zB,oBAAoB9uwB,KAAKjpD,KAAMqkH,MAG9FqzsB,mBAAoB,SAASrzsB,GACzBA,EAAaz2G,SAASwozB,KACtB3nwB,QAAgB41D,EAAcve,IAAmBx5C,OACjDmC,SAAiB41D,EAAcx9C,MAAkB7mE,KAAK+3zB,oBAAoB9uwB,KAAKjpD,KAAMqkH,KAEzF0zsB,oBAAqB,SAAS1zsB,GAC1BA,EAAav2G,YAAYsozB,KACzB3nwB,SAAiB41D,EAAcve,MAEnC6xtB,oBAAqB,SAAStzsB,GAC1BA,EAAaz2G,SAASuozB,KAE1B0B,mBAAoB,SAASxzsB,GACzBA,EAAav2G,YAAYqozB,KAE7ByB,2BAA4B32tB,IAC5B62tB,0BAA2B72tB,IAC3B+2tB,0BAA2B,SAAS3zsB,GAChCA,SAAeA,GAAgBrkH,KAAK02zB,qBAChBv6xB,SAAS,gDAEjCwkuB,YAAa,SAASt8oB,GAElBrkH,KAAKg4zB,0BADL3zsB,EAAeA,GAAgBrkH,KAAK02zB,qBACSluxB,UACzC67E,EAAap6F,GAAG,6CAGpBjqB,KAAK44P,MAAMxuH,WAAW/lB,GAAcvwC,OAAO9zE,KAAK22zB,cAAc1twB,KAAKjpD,KAAMqkH,KAE7E4zsB,cAAe,WACX,OAAOj4zB,KAAK44P,MAAMtlM,OAAO,eAE7BxS,QAAS,WACD9gD,KAAKs2zB,aACLt2zB,KAAKs2zB,YAAYz1zB,SAEjBb,KAAKu2zB,gBACLv2zB,KAAKu2zB,eAAe11zB,SAExBb,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAGlC,UAAes2zB,IClJf,IAAI6B,IAA2C,6CAC3CC,IAAyC,2CACzCC,IAA+C,iDAC/CC,IAAiC,mCAEjCC,IAAgCjC,YAAgC,CAChEvguB,MAAO,WACH91F,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1B,IAAIghuB,GAAmB3lqB,QAAE,SAASxtD,SAASsqzB,KACvCK,KAAiBn9vB,MAAE,SAASxtD,SAASuqzB,KACrCK,GAAsBp9vB,QAAE,SAASxtD,SAASwqzB,KAC1CjzlB,GAAU/pK,QAAE,SAASxtD,SAASyqzB,KAClCr4zB,KAAK44P,MAAMjgK,iBAAiBwsI,EAASnmB,GAAQ,CACzCvoM,KAAMupG,UAA2B,8BACjCv0G,KAAM,SACN2zI,YAAa1P,KAAoB,OAAS,YAC1C5rF,QAAS,SAAS9tC,GACdhW,KAAK2gwB,cACL3qvB,EAAElL,MAAMs5E,mBACVn7B,KAAKjpD,MACPg3D,mBAAoB,KAExB+pqB,EAAiBn3oB,OAAO2uuB,GACxBA,EAAe3uuB,OAAO4uuB,GACtBA,EAAoB5uuB,OAAOu7I,GAC3BnlO,KAAKy4zB,kBAAoB13F,GAE7B22F,mBAAoB,SAASrzsB,GACzBrkH,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1Bk1E,QAAQj1E,KAAKy4zB,mBAAmB,GAChCz4zB,KAAKy4zB,kBAAkB5tvB,SAASw5C,IAEpC0zsB,oBAAqB,WACjB/3zB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAKy4zB,kBAAkBjwxB,UAE3BovxB,2BAA4B,WACxB,IAAI3ztB,EAAMjkG,KAAKi4zB,gBACXS,GAAY/yvB,SAAS3lE,KAAK44P,MAAMz9L,YAChCw9vB,EAAc34zB,KAAK44zB,eAGvB,OAAO3jvB,WAAWj1E,KAAKy4zB,kBAAmB,CACtChtzB,KAAM,SACN4oE,SAxCsC,IAyCtCxrE,KAAM,CACFyuE,MANQ2sB,EAAMy0tB,GAAaC,GAQ/BpnvB,GAAI,CACA+F,MARM2sB,EAAMy0tB,EAAYC,EAAc,MAYlDb,0BAA2B,WACvB,IAAI7ztB,EAAMjkG,KAAKi4zB,gBACXS,GAAY/yvB,SAAS3lE,KAAK44P,MAAMz9L,YAChCw9vB,EAAc34zB,KAAK44zB,eAGvB,OAAO3jvB,WAAWj1E,KAAKy4zB,kBAAmB,CACtChtzB,KAAM,SACN4oE,SAzDsC,IA0DtCxrE,KAAM,CACFyuE,MANQ2sB,EAAMy0tB,EAAYC,EAAc,GAQ5CpnvB,GAAI,CACA+F,MARM2sB,EAAMy0tB,GAAaC,MAYrCC,aAAc,WACV,OAAK54zB,KAAK64zB,wBACN74zB,KAAK64zB,uBAAwBltvB,SAAc3rE,KAAKy4zB,oBAE7Cz4zB,KAAK64zB,uBAEhB/3wB,QAAS,WACD9gD,KAAKy4zB,mBACLz4zB,KAAKy4zB,kBAAkB53zB,SAE3Bb,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAKlCktkB,GAAkB,SAAU,SAAUqrP,IAA8BpwtB,QAAQ,CACxEoke,UAAW,SAASvojB,GAChB,IAAIsgG,EAAetgG,EAAOsgG,aACtBt6B,EAAahmE,EAAOgmE,WACpB+uuB,GAAU19vB,QAAE,SAASxtD,SALA,gCAMzB5N,KAAK44P,MAAMjgK,iBAAiBmguB,EAAS95mB,GAAQ,CACzCrtE,KAAM,gBACN7tF,QAAS,SAAS9tC,GACdi/D,QAAQj1E,KAAKy4zB,mBAAmB,GAChCz4zB,KAAK42zB,mBAAmBvysB,GACxBruG,EAAElL,MAAMs5E,mBACVn7B,KAAKjpD,MACPg3D,mBAAoB,KAExB+yB,EAAWn8E,SAhBwB,0CAiBnCm8E,EAAWH,OAAOkvuB,OAG1B7rP,GAAkB,SAAU,cAAeqrP,IAA8BpwtB,QAAQ,CAC7E8je,oBAAoB,EACpBppH,iBAAkB,SAASv+V,EAAc1rG,GACrC,OAAI,IAAMA,EAAKg3N,eACX16J,QAAQj1E,KAAKy4zB,mBAAmB,GAChCz4zB,KAAK42zB,mBAAmBvysB,KAErB,MC5Ff,IAAIsnd,IAAsB,sBACtBvkf,IAAmB1Y,GAAa08C,GAAgBugd,KAChD7le,IAAoBp3B,GAAas+B,GAAQ2+d,KAEzCotP,IAA2B,6BAC3BC,GAA2B,6BAC3BC,IAAqC,uCACrCC,IAA2B,6BAC3BC,IAA0B,4BAK9BlsP,GAAkB,OAAQ,QAASopP,YAAgC,CAC/DrqP,oBAAoB,EACpBl2e,MAAO,WACH91F,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK6+O,oBAAqBzjL,QAAE,SAASxtD,SAASqrzB,KAC9CxqwB,QAAgBzuD,KAAK6+O,mBAAoB/4I,IAAmBx5C,OAC5DtsD,KAAKo5zB,WAAYh+vB,QAAE,SAASxtD,SAASsrzB,KAA0BruvB,SAAS7qE,KAAK6+O,oBAC7E7+O,KAAKm8xB,cACLn8xB,KAAKq5zB,uBAETl9B,YAAa,WACT,GAAKn8xB,KAAKw1zB,eAGV,KAAI5yiB,EAAY5iR,KAAKyxV,aACrB,GAAI,IAAM7uE,EAAUn+Q,OAAQ,CACxB,IAAI41N,EAAWuoD,EAAU,GACzB5iR,KAAKs5zB,kBAAkBj/lB,EAAS5jN,KAAM,SAAST,GAC3CA,EAAEouE,kBACFpkF,KAAKu5zB,YAAYl/lB,IACnBpxK,KAAKjpD,WACJ,CACH,IAAIkjjB,GAAQ9nf,QAAE,SAASxtD,SAhCZ,sBAiCX5N,KAAKqjjB,MAAQrjjB,KAAK44P,MAAMjgK,iBAAiBuqd,EAAO7yU,IAAa,CACzD5gF,WAAW,EACXp7F,MAAOuuN,EACP99J,YAAa,SAASnsG,GAClB3Y,KAAKu5zB,YAAY5gzB,EAAK2rG,WACxBr7D,KAAKjpD,MACPg3D,mBAAoB,KAExBksf,EAAMr4e,SAAS7qE,KAAK44P,MAAMz9L,YAC1B,IAAIq+vB,EAAcx5zB,KAAKs5zB,kBAAkBt5sB,UAA2B,4BAA6B,SAAShqG,GACtGA,EAAEouE,kBACFpkF,KAAKqjjB,MAAM5ua,QACbxrF,KAAKjpD,OACPA,KAAKqjjB,MAAM/vf,OAAO,SAAUkmwB,MAGpCF,kBAAmB,SAAS7izB,EAAMs2E,GAC9B,IAAIysuB,KAAcp+vB,MAAE,SAASxtD,SAASurzB,KAAyBvrzB,SA5CpC,kCA4C2E6I,KAAKA,GAC3G,YAAK2izB,UAAUxvuB,OAAO4vuB,GACtB/qwB,QAAgB+qwB,EAAapyuB,IAAkB2F,GACxCysuB,GAEXH,oBAAqB,WACjB,GAAKr5zB,KAAKy1zB,iBAGV,KAAIgE,GAAgBr+vB,QAAE,SAASxtD,SAASurzB,KAAyBvrzB,SApDpC,oCAoD6E6I,KAAKi5H,KAAoB,GAAK1vB,UAA2B,+BACnKvxD,QAAgBgrwB,EAAeryuB,IAAkB,SAASpxE,GACtDA,EAAEouE,kBACFpkF,KAAK2gwB,eACP13sB,KAAKjpD,OACPA,KAAKo5zB,UAAUxvuB,OAAO6vuB,KAE1BF,YAAa,SAASl/lB,GAClBr6N,KAAK01zB,mBAAgBt6vB,MAAEp7D,KAAK05zB,aAAcr/lB,EAASttI,QACnD/sF,KAAKy2zB,0BAEThqP,cAAe,SAAS1ojB,GACpB/jB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1B,IAAIskH,EAAetgG,EAAOsgG,aAC1BA,EAAaz2G,SAASmrzB,KACtB,IAAIY,GAAoBv+vB,QAAE,SAASxtD,SAASorzB,IAC5C30sB,EAAautB,UAAU+nrB,IAE3B3B,0BAA2B,WACvB,OAAOh4zB,KAAK6+O,oBAEhBsb,YAAa,SAAS31O,EAAGxO,GACrB,SAAIolD,QAAEplD,EAAEhU,QAAQ87E,QAAQ,IAAMk7uB,IAA0Bv0zB,QAC7CzE,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAIzC2id,mBAAoB,SAASr+V,GACzBrkH,KAAK03zB,mBAAmBrzsB,GACxBrkH,KAAK45zB,eAAev1sB,GACpBrkH,KAAK65zB,cAAc75zB,KAAKk6b,cAAc,KAE1CyoB,oBAAqB,SAASt+V,EAAc1rG,GACxC,IACImhzB,EADM95zB,KAAKi4zB,iBACY,EAAK,EAC5B8B,EAAsB/5zB,KAAK82zB,iBAAiBzysB,GAEhD,GADsBrkH,KAAKg6zB,uBAAuBnwnB,UAAY7pM,KAAKi6zB,qBAAqBpwnB,SAChEkwnB,KAAuBphzB,EAAKwxD,OAAS2vvB,EAAiB,GAA9E,CAIA,IAAI3vvB,EAASnqE,KAAKk6zB,iBAAmBvhzB,EAAKwxD,OACtCiyL,EAAc29jB,GAAuB/5zB,KAAKm6zB,mBAAqBL,EAAiB,EAEhFnud,GADmBxhS,EAASiyL,GAAe09jB,EACf,EAAIv/yB,KAAKyjD,KAAKmM,EAASiyL,GAAep8P,KAAKm6zB,oBAAsB,EACjG,YAAKN,cAAc75zB,KAAKk6b,cAAcvuF,KAC/B,EARHhzV,EAAK0lD,QAAS,GAUtB47vB,mBAAoB,WAChB,IAAIh2tB,EAAMjkG,KAAKi4zB,gBAEf,MAAO,CACHpunB,QAAS,EACTuwnB,iBAAkBn2tB,GAAOjkG,KAAKm6zB,mBAAqBn6zB,KAAKk6zB,iBACxD7yqB,SAAUrnJ,KAAKm6zB,oBAJEl2tB,GAAM,EAAK,KAOpCi2V,cAAe,SAASvuF,GACpB,IACImud,EADM95zB,KAAKi4zB,iBACY,EAAK,EAC5BoC,EAAiBr6zB,KAAKi6zB,qBAC1B,MAAO,CACHpwnB,QAASwwnB,EAAexwnB,QAAU8hK,EAAU3rW,KAAKm6zB,mBAAqBL,EACtEM,iBAAkBC,EAAeD,iBAAmB7/yB,KAAKmvD,IAAIiiS,EAAS,GAAK3rW,KAAKm6zB,mBAAqBL,EACrGzyqB,QAASgzqB,EAAehzqB,QAAU9sI,KAAKmvD,IAAIiiS,EAAS,GAAK3rW,KAAKm6zB,mBAAqBL,IAG3FE,qBAAsB,WAClB,MAAO,CACHnwnB,QAAS3uI,GAAOl7D,KAAKs6zB,iBAAiBh/vB,KACtC8+vB,iBAAkBl/vB,GAAOl7D,KAAK6+O,oBAAoBvjL,KAClD+rF,QAASnsF,GAAOl7D,KAAKo5zB,WAAW99vB,OAGxCu+vB,cAAe,SAAS5jlB,GACpB75K,GAAKp8D,KAAKs6zB,gBAAiB,CACvBh/vB,KAAM26K,EAAUpsC,UAEpBztI,GAAKp8D,KAAK6+O,mBAAoB,CAC1BvjL,KAAM26K,EAAUmklB,mBAEpBh+vB,GAAKp8D,KAAKo5zB,UAAW,CACjB99vB,KAAM26K,EAAU5uF,WAGxBuyqB,eAAgB,SAASv1sB,GACjBA,EAAa,KAAOrkH,KAAK05zB,cAG7B15zB,KAAKs6zB,gBAAkBj2sB,EAAa5+E,KAAK,IAAMuzxB,IAC/Ch5zB,KAAKk6zB,kBAAmBvuvB,SAAc04C,GACtCrkH,KAAKm6zB,mBAAqBn6zB,KAAKm6zB,qBAAsBxuvB,SAAc3rE,KAAKo5zB,YACxErqlB,SAAS/uO,KAAK6+O,mBAAoB7+O,KAAKm6zB,oBACnCn6zB,KAAKs6zB,gBAAgB71zB,SACrBzE,KAAK05zB,YAAcr1sB,EAAa,MAGxCk2sB,8BAA+B,WAC3B,OAAOv6zB,KAAKk6zB,iBAAmBl6zB,KAAKm6zB,oBAExCv3W,iBAAkB,SAASv+V,EAAc1rG,GACrC3Y,KAAK45zB,eAAev1sB,GACpB,IAAIy1sB,EAAiB95zB,KAAKi4zB,gBAAkB,GAAI,EAC5C9tvB,EAASnqE,KAAKk6zB,iBAAmBvhzB,EAAKwxD,OACtCqwvB,GAAwBx6zB,KAAK82zB,iBAAiBzysB,IAAiBl6C,EAAS2vvB,EAAiB,GAAK95zB,KAAKm6zB,mBAEvG,YAAKvD,mBAAmBvysB,EADJ1rG,EAAKg3N,eAAiBmqlB,GAAkBU,IAErD,GAEX9C,mBAAoB,SAASrzsB,GACzBpvC,QAAQj1E,KAAKs6zB,iBAAiB,GAC9Bt6zB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK6+O,mBAAmBh0K,SAASw5C,IAErC0zsB,oBAAqB,WACjB/3zB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK6+O,mBAAmBr2M,UAE5BovxB,2BAA4B,WACxB,OAAO53zB,KAAKy6zB,oBAAoBz6zB,KAAKk6b,cAAc,KAEvD49X,0BAA2B,SAASzzsB,GAChC,YAAKu1sB,eAAev1sB,GACbrkH,KAAKy6zB,oBAAoBz6zB,KAAKk6b,cAAc,KAEvDugY,oBAAqB,SAASxklB,GAC1B,IAAI3iK,EAAOtzE,KACP86E,EAAkB96E,KAAKg6zB,uBACvBU,EAAmBngzB,KAAKmvD,IAAInvD,KAAKyjD,IAAI8c,EAAgB+uH,QAAUosC,EAAUpsC,SAAW7pM,KAAKm6zB,mBAAoB,GACjH,OAAOllvB,WAAWj1E,KAAKs6zB,gBAAiB,CACpCzxzB,KAAMiyE,EACNvJ,GAAI0kK,EACJn5K,OAtLsB,sCAuLtBuX,SAxLwB,IAwLkBqmvB,EAC1CpjwB,SAAU,QACVse,KAAM,SAASqgK,GACX3iK,EAAKumvB,cAAc5jlB,OAI/Bn1L,QAAS,WACD9gD,KAAKqjjB,OACLrjjB,KAAKqjjB,MAAMlof,WAAWt6D,SAEtBb,KAAK6+O,oBACL7+O,KAAK6+O,mBAAmBh+O,SAE5Bb,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAE/B8vH,QAAQomsB,MC5OXhpP,GAAkB,SAAU,SAAUlB,WAAsB,CACxDQ,SAAU,SAASxojB,GACf,IAAIsgG,EAAetgG,EAAOsgG,aACtBt6B,EAAahmE,EAAOgmE,WACpBo7I,GAAU/pK,QAAE,SAASxtD,SALA,gCAMzB5N,KAAK44P,MAAMjgK,iBAAiBwsI,EAASnmB,GAAQ,CACzCrtE,KAAM,SACN7tF,QAAS,SAASnrC,GACdA,EAAK7N,MAAMs5E,kBACXpkF,KAAK2gwB,YAAYt8oB,IACnBp7D,KAAKjpD,MACPg3D,mBAAoB,KAExB+yB,EAAWn8E,SAfwB,0CAeuBg8E,OAAOu7I,IAErEw7hB,YAAa,SAASt8oB,GACdA,EAAap6F,GAAG,6CAGpBjqB,KAAK44P,MAAMxuH,WAAW/lB,OCb9B4od,GAAkB,SAAU,QAASlB,WAAsB,CACvDC,oBAAoB,EACpB2uP,oBAAqB,SAASt2sB,EAAcl6C,EAAQmK,GAChD,IAAIf,EAAW,IAAIC,MACfsvjB,EAAa34jB,EAASnqE,KAAK46zB,kBAC/B,OAAItmvB,EACAW,WAAWovC,EAAc,CACrB9yC,GAAI,CACAjW,KAAMwnkB,GAEVr3nB,KAAM,QACNyN,SAAU,WACNq6D,EAAS1/C,QAAQwwF,EAAcl6C,OAIvC/N,GAAKioD,EAAc,CACf/oD,KAAMwnkB,IAEVvvjB,EAAS1/C,WAEN0/C,EAASz5B,WAEpB4oa,mBAAoB,SAASr+V,GACzB,YAAKu2sB,mBAAoBj1vB,SAAS0+C,IAC3B,GAEXs+V,oBAAqB,SAASt+V,EAAc1rG,GACxC,YAAKgizB,oBAAoBt2sB,EAAc1rG,EAAKwxD,SACrC,GAEXy4Y,iBAAkB,SAASv+V,EAAc1rG,GAErC,YAAKgizB,oBAAoBt2sB,EADZ1rG,EAAKg3N,cAC6B,GAAMz7J,KAAK,SAASmwC,EAAcl6C,GACzE5vD,KAAKyjD,IAAImM,IACTnqE,KAAK44P,MAAMxuH,WAAW/lB,GAAclwC,KAAK,WACrCn0E,KAAK26zB,oBAAoBt2sB,EAAc,GAAG,IAC5Cp7D,KAAKjpD,QAEbipD,KAAKjpD,QACA,MC9CR,UACHH,YAAYs+G,EAAOhjD,GACfn7D,KAAK66zB,eAAiB18sB,EAAMxlB,iBAAiBx9B,EAAUglK,IACvDngO,KAAK86zB,QAAU,CACXC,SAAUC,IACVC,UAAWC,IACXC,aAAcC,IACdC,oBAAqBC,KAG7BC,SACI,GAAIv7zB,KAAKw7zB,YAAYzhM,cAAe,CAChC,IAAIrnnB,EAAS1S,KAAKw7zB,YAAYC,YAC9Bz7zB,KAAKsvT,UAAU58S,GACf1S,KAAKw0I,QAGbC,KAAKpxI,EAAM45B,EAAYv3B,EAAUg2zB,EAAcxlO,GAG3C,GAFAl2lB,KAAKsvT,UAAY5pT,EACjB1F,KAAK27zB,cAAgBD,EAChB17zB,KAAK86zB,QAAQz3zB,GAGlB,KAAIygoB,EAAY9joB,KAAK66zB,eAAev3tB,cAAgBtjG,KAAKw7zB,aAAex7zB,KAAKw7zB,uBAAuBx7zB,KAAK86zB,QAAQz3zB,GACjHrD,KAAKw7zB,YAAc,IAAIx7zB,KAAK86zB,QAAQz3zB,GAAM45B,EAAYj9B,KAAKu7zB,OAAOtywB,KAAKjpD,MAAOA,KAAKw0I,KAAKvrF,KAAKjpD,MAAOk2lB,GACpGl2lB,KAAK66zB,eAAevnwB,OAAO,CACvBm8F,YAAazvJ,KAAKw7zB,YAAY15Y,WAC9BrwS,MAAOzxI,KAAKw7zB,YAAY15Y,WACxBpyR,aAAc1vJ,KAAKw7zB,YAAYI,kBAC/BltqB,SAAU1uJ,KAAKw7zB,YAAYK,cAC3B/7vB,OAAQ9/D,KAAKw7zB,YAAY91vB,YACzBsoF,gBAAiBhuJ,KAAKw7zB,YAAYM,uBAElC97zB,KAAK27zB,eACL37zB,KAAK66zB,eAAevnwB,OAAO,WAAYtzD,KAAK27zB,eAE3C73L,GACD9joB,KAAK66zB,eAAepmrB,QAG5BD,OACIx0I,KAAK66zB,eAAermrB,OAChBx0I,KAAK27zB,eACL37zB,KAAK27zB,iBAIjB,SACI97zB,YAAYo9B,EAAY8+xB,EAAaC,EAAY9lO,GAC7Cl2lB,KAAKk1b,YAAcj4Z,EACnBj9B,KAAKi8zB,aAAeF,EACpB/7zB,KAAKk8zB,YAAcF,EACnBh8zB,KAAKm8zB,gBAAkBjmO,EAE3BkmO,gBACI,MAAO,GAEXC,mBACI,MAAO,GAEXC,eACI,OAAOt8zB,KAAKk1b,YAEhBqnY,qBACAvwG,oBACI,OAAOhstB,KAAKw8zB,gBAAgB,KAAMx8zB,KAAKi8zB,cAE3ChwG,wBACI,OAAOjstB,KAAKw8zB,gBAAgB,SAAUx8zB,KAAKk8zB,aAE/CO,qBACI,OAAOz8zB,KAAKw8zB,gBAAgB,MAAOx8zB,KAAKi8zB,cAE5CS,oBACI,OAAO18zB,KAAKw8zB,gBAAgB,KAAMx8zB,KAAKk8zB,aAE3CM,gBAAgBG,EAAkB5vuB,GAC9B,MAAO,CACHyL,OAAQ,WACRy3D,QAAS,SACTr+H,QAAS,CACLnb,KAAMupG,UAA2B28sB,GACjC74wB,QAASipC,IAIrB+0V,WACI,MAAO,GAEX85Y,kBACI,OAAO57zB,KAAKm8zB,gBAAgB9zyB,QAAU,CAACroB,KAAKgstB,oBAAqBhstB,KAAKistB,yBAA2B,CAACjstB,KAAKistB,yBAE3G4vG,cACI,OAAO,IAEXn2vB,YACI,MAAO,OAEXo2vB,qBACI,OAAOjynB,IACH7pM,KAAKwrrB,MAAQ,IAAI5lE,GAAK/7a,EAAS,CAC3BzzC,SAAUp2J,KAAKs8zB,eACfjowB,MAAOr0D,KAAKo8zB,gBACZj7tB,YAAa,CACT6B,MAAOhjG,KAAKq8zB,oBAEhB53vB,YAAY,IAETolI,GAGf4xnB,YACI,IAAIrlqB,EAAWp2J,KAAK48zB,cACpB,YAAKL,kBAAkBnmqB,GAChBp2J,KAAKk1b,YAEhB0nY,cAEI,OADe58zB,KAAKwrrB,OAASxrrB,KAAKwrrB,MAAMl4nB,OAAO,YAGnDymkB,cACI,OAAO,GAGf,kBAAiC8iM,GAC7B/6Y,WACI,OAAO9hU,UAA2B,kCAEtCo8sB,gBACI,IAAI5tuB,GAAYxuF,KAAKm8zB,gBAAgB9zyB,UAAYroB,KAAKm8zB,gBAAgB1pqB,kBAClEqqqB,EAAgBtuuB,IAAaxuF,KAAKk1b,YAAY6nY,gBAClD,MAAO,CAAC,CACJj9qB,UAAW,QACXE,WAAY,YACZ3H,MAAO,CACH5hI,KAAMupG,UAA2B,wBAErC+/B,cAAe,CACXvxD,SAAUA,GAAYxuF,KAAKg9zB,iBAAiB,UAEhDjuvB,SAAU/uE,KAAKi9zB,eAAe,UAC/B,CACCn9qB,UAAW,QACXE,WAAY,YACZ3H,MAAO,CACH5hI,KAAMupG,UAA2B,6BAErC+/B,cAAe,CACXt0I,KAAM,WACNm0D,MAAO,OACP4uB,SAAUsuuB,GAAiB98zB,KAAKg9zB,iBAAiB,UAErDjuvB,SAAU/uE,KAAKi9zB,eAAe,SAC9B78qB,gBAAiB,CAAC,CACd30I,KAAM,WACN+uB,QAASwlF,UAA2B,gCAAiCA,UAA2B,8BACjG,CACCv0G,KAAM,SACN22I,mBAAoBpsI,IAChB,GAAIhW,KAAKk1b,YAAYgoY,qBAAsB,CACvC,IAAIC,EAAmBn9zB,KAAKk1b,YAAYkoY,oBAAoBp9zB,KAAKk1b,YAAYrpb,GAAImK,EAAEpJ,MAAO5M,KAAKk1b,YAAYhpb,KAC3G,GAAIixzB,EAAiB/vwB,MAAMyD,YAAc76C,EAAEpJ,MAAMikD,UAC7C76C,SAAEuvF,KAAK/qE,QAAUx6B,KAAKq9zB,uBAAsB,EAAMF,EAAiB/vwB,QAC5D,EAGf,OAAO,MAGhB,CACC0yF,UAAW,MACXE,WAAY,YACZ3H,MAAO,CACH5hI,KAAMupG,UAA2B,2BAErC+/B,cAAe,CACXt0I,KAAM,WACNm0D,MAAO,OACP4uB,SAAUsuuB,GAAiB98zB,KAAKg9zB,iBAAiB,QAErDjuvB,SAAU/uE,KAAKi9zB,eAAe,OAC9B78qB,gBAAiB,CAAC,CACd30I,KAAM,WACN+uB,QAASwlF,UAA2B,gCAAiCA,UAA2B,4BACjG,CACCv0G,KAAM,SACN22I,mBAAoBpsI,IAChB,GAAIhW,KAAKk1b,YAAYgoY,qBAAsB,CACvC,IAAIC,EAAmBn9zB,KAAKk1b,YAAYkoY,oBAAoBp9zB,KAAKk1b,YAAYrpb,GAAI7L,KAAKk1b,YAAY9nY,MAAOp3C,EAAEpJ,OAC3G,GAAIuwzB,EAAiBjxzB,IAAI2kD,YAAc76C,EAAEpJ,MAAMikD,UAC3C76C,SAAEuvF,KAAK/qE,QAAUx6B,KAAKq9zB,uBAAsB,EAAOF,EAAiBjxzB,MAC7D,EAGf,OAAO,MAGhB,CACC4zI,UAAW,WACXE,WAAY,cACZ3H,MAAO,CACH5hI,KAAMupG,UAA2B,gCAErC+/B,cAAe,CACX26V,iBAAiB,EACjBhxa,IAAK,EACLlvD,IAAK,EACL2lF,OAAQ,MACR0jH,KAAM,IACNr1H,SAAUsuuB,GAAiB98zB,KAAKg9zB,iBAAiB,aAErDjuvB,SAAU/uE,KAAKi9zB,eAAe,aAC/B,CACCn9qB,UAAW,iBACXE,WAAY,WACZ3H,MAAO,CACH5hI,KAAMupG,UAA2B,iCAErC+/B,cAAe,CACXvxD,SAAUA,IAAaxuF,KAAKm8zB,gBAAgB3pqB,0BAC5Ch2C,WAAYx8G,KAAKk1b,YAAYouX,UAAUjvvB,MACvCoxD,YAAa,OACb4hC,QAAS,CAAC,CACNhkJ,KAAM,gBACN4P,SAAU,QACV2e,QAAS,CACLxJ,UAAWpoB,KAAKm8zB,gBAAgBhqqB,sBAAwBnyJ,KAAKm8zB,gBAAgB/pqB,sBAC7E37I,KAAM,MACNgyF,KAAMuX,UAA2B,sCACjCl8D,QAAS,KACL9jD,KAAKk1b,YAAYooY,2BAA2B3vuB,QAAQ,KAChD3tF,KAAKk1b,YAAYqoY,0BAA0B5vuB,mBAQvE0vuB,sBAAsBG,EAAqBC,GACvC,OACWz9sB,UADPw9sB,EACkC,oCAEJ,kCAFyCx9zB,KAAK09zB,sBAAsBD,IAI1GC,sBAAsB5ltB,GAClB,OAAOA,EAAOkkP,UAAwBlkP,EAAM,sBAAwB,GAExEkltB,iBAAiBhswB,GACb,OAAOhxD,KAAKk1b,YAAY8tX,eAAexwyB,QAAQw+C,IAAS,EAE5DiswB,eAAejswB,GACX,OAAOhxD,KAAKk1b,YAAY+tX,aAAazwyB,QAAQw+C,IAAS,EAE1DsrwB,eACI,IAAIlwzB,EAAO,GACX,QAAS4kD,KAAShxD,KAAKk1b,YACnB9ob,EAAK4kD,GAAS,eAAuBhxD,KAAKk1b,YAAYlkY,GAAS,IAAMhxD,KAAKk1b,YAAYlkY,GAE1F,OAAO5kD,EAEXmwzB,kBAAkBnmqB,GACdp2J,KAAKk1b,YAAYzjT,MAAQ2kB,EAAS3kB,MAClCzxI,KAAKk1b,YAAY9nY,MAAQgpG,EAAShpG,MAClCptD,KAAKk1b,YAAYhpb,IAAMkqJ,EAASlqJ,IAChClM,KAAKk1b,YAAY7zH,SAAW,IAAMjrK,EAASirK,SAC3CrhU,KAAKk1b,YAAYyoY,SAAWvnqB,EAASunqB,SAEzC5jM,cACI,IAAI6jM,EACAptnB,EAAmB,QAAUotnB,EAAc59zB,KAAKwrrB,aAAU,WAAyB,EAASoyI,EAAYl3yB,WAC5G,OAAO,aAA2D,EAAS8pL,EAAiB/qC,SAGpG,kBAAsCo3pB,GAClC/6Y,WACI,OAAO9hU,UAA2B,sCAEtCo8sB,gBACI,MAAO,CAAC,CACJ/jrB,MAAO,CACHtpE,SAAS,GAEb+wE,UAAW,kBACXE,WAAY,SACZD,cAAe,CACX+iI,kBAAmB9iR,KAAKm8zB,gBAAgB9zyB,SAAWroB,KAAKm8zB,gBAAgB/pqB,sBACxE2wH,eAAgB,SAChB59I,cAAe,OACf9wE,MAAOr0D,KAAKk1b,YAAYouX,UAAUjvvB,MAClCyL,OAAQ,IACRqlD,WAAYnF,UAA2B,iCACvCxrB,cAAex+E,IACXhW,KAAK0sB,KAAO1W,EAAExH,WAElBi3H,cAAezvH,IACXhW,KAAKk1b,YAAYouX,UAAUzizB,OAAOmV,EAAEsuG,aAG7C,CACC+zB,MAAO,CACHtpE,SAAS,GAEbixE,WAAY,YACZD,cAAe,CACXvxD,UAAWxuF,KAAKm8zB,gBAAgB9zyB,UAAYroB,KAAKm8zB,gBAAgBhqqB,oBACjE39D,cAAex+E,IACXhW,KAAK69zB,QAAU7nzB,EAAExH,WAErB03J,QAASlwJ,IACL,IAAI8nzB,EAAY9nzB,EAAExH,UAAU0sO,UAAU,eAClC6ilB,EAAe/nzB,EAAExH,UAAU8kD,OAAO,QACtCwqwB,EAAUxqwB,OAAO,WAAY,MAAmB7uD,SAEpD4iJ,QAAS,CAAC,CACNhkJ,KAAM,cACN4P,SAAU,QACV2e,QAAS,CACLnb,KAAMupG,UAA2B,2BACjC53F,UAAU,EACV07B,QAAS9tC,IACL,IAAIgnH,EAAUh9H,KAAKk1b,YAAYouX,UAAU0a,aACzChhsB,EAAQvmH,KAAOzW,KAAK69zB,QAAQvqwB,OAAO,QACnCtzD,KAAKk1b,YAAYouX,UAAU76yB,IAAIu0H,GAC/Bh9H,KAAK0sB,KAAK4mC,OAAO,QAAStzD,KAAKk1b,YAAYouX,UAAUjvvB,OACrDr0D,KAAK0sB,KAAKivP,aAAa3+I,GACvBh9H,KAAK69zB,QAAQvqyB,QACbtd,EAAExH,UAAU8kD,OAAO,YAAY,WAQ3D,kBAAgCupwB,GAC5Bf,qBACI,OAAOjynB,GAAW7pM,KAAKi+zB,qBAE3BA,qBACI,OAAQj+zB,KAAKk1b,YAAYzpb,WAChB,EACD,OAAOu0G,UAA2B,6CACjC,EACD,OAAOA,UAA2B,mDACjC,EACD,OAAOA,UAA2B,4CAA6ChgH,KAAKk1b,YAAY16Z,iBAEhG,MAAO,IAGnBohyB,kBACI,MAAO,CAAC57zB,KAAKy8zB,qBAAsBz8zB,KAAK08zB,sBAGhD,kBAA4CG,GACxCT,gBACI,IAKI8B,EALAC,EAAoBn+zB,KAAKk1b,YAAYipY,kBACrCC,EAAgBp+zB,KAAKk1b,YAAYmpY,YAAc,EAC/ChqwB,EAAQ,GACRiqwB,EAAgBF,EAAgB,0CAA4C,wCAC5EG,EAAcH,EAAgB,mDAAqD,iDAEvF,OACIF,EADAC,EACeC,EAAgB,+DAAiE,mDAEjFA,EAAgB,uDAAyD,2CAE5F/pwB,EAAMhrD,KAAK,CACPoN,KAAMupG,UAA2B,wCACjCpzG,MAAO,IAEXynD,EAAMhrD,KAAK,CACPoN,KAAMupG,UAA2Bs+sB,GACjC1xzB,MAAO,IAENuxzB,GACD9pwB,EAAMhrD,KAAK,CACPoN,KAAMupG,UAA2Bu+sB,GACjC3xzB,MAAO,IAGR,CAAC,CACJkiD,SAAUkxD,UAA2Bk+sB,IACtC,CACCt5tB,SAAU,mBACVk7C,UAAW,SACXzH,MAAO,CACHtpE,SAAS,GAEbixE,WAAY,eACZD,cAAe,CACX1rF,MAAOA,EACPmpG,UAAW,QACX5wJ,MAAO,KAInByvzB,mBACI,MAAO,eAEXE,kBAAkBnmqB,GACdp2J,KAAKk1b,YAAY5hY,OAAS8iG,EAAS9iG,QCzZ3C,SAAe+wd,GCUf,IAAIpihB,IAASk8D,WAGN,UACHt+D,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EACdz3yB,KAAKw+zB,UAAY/mB,EAAM+mB,UACvBx+zB,KAAKy1H,OAAS,GAElBlsG,QACIvpB,KAAKy1H,OAAS,GAElBgpsB,wBACI,IAAI3yX,EAAQ9rc,KAAK0+zB,oBACbn2zB,EAAQtG,GAAO06E,iBAAiBmvX,GACpC,MAAO,CACHt2T,MAAOjtI,EAAMitI,MACbyd,gBAAiB1qJ,EAAM0qJ,gBACvBj2E,SAAUz0E,EAAMy0E,SAChBC,WAAY10E,EAAM00E,WAClBF,WAAYx0E,EAAMw0E,WAClBF,UAAWt0E,EAAMs0E,UACjB6nQ,UAAW,OACXi6e,cAAe,UAGvBC,sBAGI,OAFiB5+zB,KAAK6+zB,iBACE/4S,kBAAkBh/f,OAAOiiD,GAAKA,EAAI,GAC5CtkE,OAElBq6zB,sBAAsB/rX,GAClB,IAAIvrc,EAAUxH,KAAK++zB,kBAAkBhsX,GACrC,IAAKvrc,EACD,OAAO,KAEX,IAAIe,EAAQtG,GAAO06E,iBAAiBn1E,GAChCw3zB,EAAiB,CACjBxprB,MAAOjtI,EAAMitI,MACbp4C,QAAS70F,EAAM60F,QACf7f,YAAah1E,EAAMg1E,YACnBH,WAAY70E,EAAM60E,WAClBC,aAAc90E,EAAM80E,aACpBC,cAAe/0E,EAAM+0E,cACrBqhvB,cAAep2zB,EAAMo2zB,cACrB/+vB,MAAO5/D,KAAKi/zB,gBAAgBlsX,IAEhC,MAAO,CACHlpQ,QAASriM,EAAQ4B,YACjB9E,OAAQ06zB,GAGhBE,oBAAoB/szB,EAAK4gc,GACrB,IAAIosX,EACAr+zB,EAAOd,KAAKw+zB,UAAU1hU,aAAa3qf,GACnCgyhB,EAAkBnkiB,KAAKw+zB,UAAUj3R,iBAAiBp1hB,GAClDmmT,EAAO6rO,GAAkB,EAAKnkiB,KAAKo/zB,aAAaj7R,EAAiBpxF,GAAY,KAC7Exqc,EAAQ+vT,EAAOr2T,GAAO06E,iBAAiB27O,GAAQt4T,KAAKq/zB,oBAAoBtsX,GACxEisX,EAAiB,CACjBxprB,MAAOjtI,EAAMitI,MACbp4C,QAAS70F,EAAM60F,QACf7f,YAAah1E,EAAMg1E,YACnBH,WAAY70E,EAAM60E,WAClBC,aAAc90E,EAAM80E,aACpBC,cAAe/0E,EAAM+0E,cACrB1d,MAAO5/D,KAAKi/zB,gBAAgBlsX,IAEhC,OAAI,QACAisX,EAAeM,iBAAmBt/zB,KAAKu/zB,oBAAoBz+zB,EAAK8wG,QAE7D,CACHi4F,QAAS,QAAUs1nB,EAAoB,MAAS7mgB,OAA0B,EAASA,EAAKlvT,mBAAgB,IAAW+1zB,EAAoBA,EAAoBn/zB,KAAKw/zB,gBAAgBrtzB,EAAK4gc,GACrLzuc,OAAQ06zB,GAGhBS,+BACI,MAAO,CACH51nB,QAAS7pM,KAAKw+zB,UAAUlrwB,OAAO,eAGvCoswB,wBAAwB3sX,GACpB,IAAI4sX,EAAcC,EAElB,GADA,QAAUA,GAAyBD,EAAe3/zB,KAAKy1H,QAAQsgb,oBAAoB,QAA2D4pR,EAAa5pR,aAAe,KACrK/1iB,KAAKy1H,OAAOsgb,aAAahjG,GAAW,CACrC,IAAI8sX,EACAr1lB,EAASxqO,KAAK++zB,kBAAkBhsX,GACpC/yc,KAAKy1H,OAAOsgb,aAAahjG,GAAY,QAAU8sX,EAAsB,aAAuC,EAASr1lB,EAAOz/J,mBAAgB,MAAiC80vB,EAAsB,GAG3MZ,gBAAgBlsX,GACZ/yc,KAAK0/zB,wBAAwB3sX,GAC7B,IAAIttH,EAASzlV,KAAKy1H,OAAOsgb,aACzB,OAAOtwN,GAAUA,EAAOstH,GAE5BwsX,oBAAoB3ttB,GAChB,IAAK5xG,KAAKy1H,OAAOqqsB,WAAY,CACzB,IAAIC,EAAeC,EAAuBC,EACtCz4zB,EAAUxH,KAAKkg0B,oBAhGJ,2BAiGf,QAAUF,GAAyBD,EAAgB//zB,KAAKy1H,QAAQqqsB,kBAAkB,QAA2DC,EAAcD,WAAa,QAAUG,EAAuBz4zB,EAAQsjE,mBAAgB,MAAkCm1vB,EAAuB,GAE9R,OAAOjg0B,KAAKy1H,OAAOqqsB,YAAclutB,EAAQ,GAE7CyttB,oBAAoBtsX,GAChB,YAAKotX,4BAA4BptX,GAC1B/yc,KAAKy1H,OAAOi/jB,aAAa3hP,GAEpCotX,4BAA4BptX,GACxB,IAAIqtX,EAAeC,EAEnB,GADA,QAAUA,GAAyBD,EAAgBpg0B,KAAKy1H,QAAQi/jB,oBAAoB,QAA2D0rI,EAAc1rI,aAAe,KACvK10rB,KAAKy1H,OAAOi/jB,aAAa3hP,GAAW,CACrC,IAAIz6I,EAAOt4T,KAAKo/zB,aAAa,EAAGrsX,GAChC/yc,KAAKy1H,OAAOi/jB,aAAa3hP,GAAY9wc,GAAO06E,iBAAiB27O,IAGrEgogB,SAASnuzB,GACL,YAAKouzB,iBAAiBpuzB,GACfnS,KAAKy1H,OAAOtmB,MAAMh9F,GAE7BouzB,iBAAiBpuzB,GACb,IAAIquzB,EAAeC,EAAsBC,EAAoBC,EAC7D,QAAUF,GAAwBD,EAAgBxg0B,KAAKy1H,QAAQtmB,aAAa,QAAyDqxtB,EAAcrxtB,MAAQ,IAC3J,QAAUwxtB,GAAyBD,EAAqB1g0B,KAAKy1H,OAAOtmB,OAAOh9F,UAAS,IAAWwuzB,IAAgDD,EAAmBvuzB,GAAOnS,KAAKk7yB,OAAO0lB,eAAezuzB,IAExMuszB,oBACI,OAAO1+zB,KAAKkg0B,oBA1HC,qBA4HjBA,oBAAoB5qvB,GAChB,OAAOt1E,KAAKw+zB,UAAUh8uB,UAAU/8C,KAAK,IAAM6vC,GAAWtxE,IAAI,GAE9Do7zB,aAAavsX,EAAUE,GACnB,IACI0K,EADWz9c,KAAKw+zB,UACOz3S,eAAel0E,EAAUE,GACpD,OAAO0K,GAAeA,EAAYh5c,OAASg5c,EAAY,GAAKA,EAEhEshX,kBAAkBxszB,GACd,OAAOvS,KAAK6+zB,iBAAiBh0S,iBAAiBt4gB,GAAOvO,IAAI,GAE7D66zB,iBACI,OAAO7+zB,KAAKw+zB,UAAUxsT,OAAOiB,kBAEjCusT,gBAAgBrtzB,EAAK4gc,GACjB,IAAIpkW,EAAO3uG,KAAKsg0B,SAASnuzB,GACzB,OAAOw8F,GAAQ3uG,KAAK6g0B,oBAAoB9tX,EAAUpkW,GAEtDkytB,oBAAoB9tX,EAAU3mc,GAC1B,IACI8igB,EADUlvgB,KAAKw+zB,UAAUrwT,cAAc,WAAWiC,aACjCr9D,GAEjB5yW,EAAS,aAAuC,EAAS+ua,EAAO/ua,OAChEvzF,EAAQy3gB,mBAA8BnV,EAAQ9igB,EAFtC,MAAS8igB,OAA8B,EAASA,EAAOpvX,WAEJ1zI,EAAM,QACrE,IAAIsR,SAAUyiF,GAAS,CACnB,GAAI,UAAY,MAAS+ua,OAA8B,EAASA,EAAOz8Z,WAAa,cAAgB,MAASy8Z,OAA8B,EAASA,EAAOz8Z,UAAW,CAClK,IAAIqF,GAAO61E,SAAO/gL,GAASA,EAAQ,IAAIohD,KAAKphD,GAC5C,OAAOovV,UAAwBlkP,EAAM3X,GAEzC,MAAIiW,OAAUxpG,GACV,OAAOi7K,UAA0Bj7K,EAAOuzF,GAGhD,MAAO,iBAAoBvzF,EAAQA,EAAQ,aAAqC,EAASA,EAAM4K,YCnKvG,IACIspzB,GAA2B,YACxB,UACHjh0B,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EAElBspB,oBAAoBjvuB,EAAYkvuB,GAC5B,IAAIC,EAAgBD,EACpB,MAAI,WACAC,EAAgB,OAEbjh0B,KAAKk7yB,OAAO5nvB,OAAO,GAAGzxC,OAAOiwE,EAAY,KAAKjwE,OAAOo/yB,EAAe,SAE/ElY,0BACI,IAAID,EAAe,GACfoY,EAAmBlh0B,KAAKk7yB,OAAO5nvB,OAfzB,SAgBV,QAAStC,KAASkwwB,EAAkB,CAChC,IAAIlc,EAAch0vB,EAAM1xB,MAAMwhyB,IAC1BK,EAAkBnc,GAAekc,EAAiBlc,EAAY,IAC9Dmc,GACArY,EAAaz/yB,KAAK83zB,GAG1B,OAAOrY,EAEXrN,wBAAwB3ptB,EAAY0ptB,GAChC,OAAOnvyB,OAAO0M,KAAKyiyB,GAAUjoxB,OAAO,CAACkzK,EAAUtlJ,KAC3C,IAAIigxB,EAAcph0B,KAAK+g0B,oBAAoBjvuB,EAAY3wC,GAKvD,OAJIigxB,OAAgB5ozB,OAAW4ozB,OACdhxuB,OAAcgxuB,EAC3B1gU,CAAOj6T,EAAU+0mB,EAASr6vB,IAEvBslJ,GACR,IAEPm1mB,wBAAwB9ptB,EAAY6ptB,GAChC,IAAIH,EAAW,GACf,GAAIG,EAAY,CACZ,IAAImN,EAAe9ozB,KAAKk7yB,OAAO5nvB,OAAOw+B,GACtC,QAAS9gC,KAAS83vB,EAAc,CAC5B,IAAI9D,EAAch0vB,EAAM1xB,MAAMwhyB,IAC1BK,EAAkBnc,GAAe8D,EAAa9D,EAAY,IAC9D,GAAImc,QAAmB,MAAsBA,GAAkB,CAC3D,IAAIpitB,GAASpuB,SAAcwwuB,GAE3B3lB,EADoBwJ,EAAY,IACNjmsB,EAAO48rB,KAI7C,OAAOH,EAEXQ,0BAA0BlqtB,EAAY2wB,GAClC,OAAOA,EAAOlvF,OAAO,CAACkzK,EAAUtlJ,KAC5B,IAAIigxB,EAAcph0B,KAAK+g0B,oBAAoBjvuB,EAAY3wC,GACvD,OAAIigxB,GACA36nB,EAASp9L,KAAK+3zB,GAEX36nB,GACR,IAEPq1mB,0BAA0BhqtB,EAAY2wB,GAClC,IAAI4+sB,EAAa,GACbvY,EAAe9ozB,KAAKk7yB,OAAO5nvB,OAAOw+B,GACtC,QAAS9gC,KAAS83vB,EAAc,CAC5B,IAAI9D,EAAch0vB,EAAM1xB,MAAMwhyB,IAC1BK,EAAkBnc,GAAe8D,EAAa9D,EAAY,IAC1Dmc,GAAmB1+sB,EAAOjwG,QAAQ2uzB,IAAmB,GAErDE,EAAWh4zB,KADS27yB,EAAY,IAIxC,OAAOqc,GCrER,UACHxh0B,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EAElB6pB,sBAAsB7xsB,EAAW7iH,GAC7B,IAAI20zB,EAEAxitB,EAAS,UAAY0Q,EAAY9pD,MAAWD,OADnC,UAAY+pD,EAAYs/G,MAAWz7F,OAEzCtzI,KAAKk7yB,OAAOsmB,kBAAmB50zB,GACtC,QAAU20zB,EAAwBvh0B,KAAKk7yB,OAAO4O,sBAAmB,IAAWyX,GAAiCA,EAAsB/lU,UAAU/rY,EAAW1Q,EAAO/+G,KAAKk7yB,OAAOsmB,oBAE/KC,uBAAuBhysB,EAAW7iH,GAC9B,IACImyG,EAAS,UAAY0Q,EAAY9pD,MAAWD,OADnC,YAAwBqpK,MAAWz7F,OAEzCtzI,KAAKk7yB,OAAOwmB,YAAa90zB,GAChC5M,KAAKk7yB,OAAOymB,oBAAoBlysB,EAAW1Q,EAAO/+G,KAAKk7yB,OAAOwmB,cAElEE,0BACI,IAAIC,EAAuBC,EAGvBtiC,EAFAuiC,KAAap8vB,OAAS3lE,KAAKk7yB,OAAO14tB,WAClC+8sB,EAAiBv/xB,KAAKk7yB,OAAO5nvB,OAAO,iBAExC,OAAK2b,MAAMswtB,IAEC,QAAUsiC,EAAwBtiC,EAAe/sxB,eAAY,IAAWqvzB,OAAwB,EAASA,EAAsBznyB,KAAKmlwB,EAAgB,OAAS,EACrKC,EAAkBuiC,EAAahvzB,SAASwsxB,EAAe30xB,QAAQ,KAAM,KAAO,MACpE,QAAUk3zB,EAAyBviC,EAAe/sxB,eAAY,WAAoC,EAASsvzB,EAAuB1nyB,KAAKmlwB,EAAgB,MAAQ,IACvKC,EAAkB,IAAMzsxB,SAASwsxB,EAAe30xB,QAAQ,IAAK,KAAO,KAJpE40xB,EAAkBuiC,EAAahvzB,SAASwsxB,GAMrC,CACHA,eAAgBA,EAChBC,gBAAiBA,GAGzBwiC,kBACI,IAAI9unB,GAAgBxtI,SAAU1lE,KAAKk7yB,OAAO14tB,WAC1CxiF,KAAKii0B,mBACLji0B,KAAKki0B,eAAehvnB,GAExB2qlB,iBAAiB7nxB,GACbhW,KAAKmi0B,sBAAsBnszB,GAC3BhW,KAAKoi0B,wBAETA,wBACI,IAEQC,EAFJv0J,EAAY9tqB,KAAKk7yB,OAAO4O,eAAewY,eACvCti0B,KAAKk7yB,OAAOqnB,oBAAoB,eAAiBz0J,IAEjD9tqB,KAAKk7yB,OAAOymB,oBAAoB,YAAa7zJ,GAC7C,QAAUu0J,EAAwBri0B,KAAKk7yB,OAAO8O,kBAAe,IAAWqY,GAAiCA,EAAsBG,eAAeC,iBAAiB30J,IAGvK40J,eACS1i0B,KAAKk7yB,OAAO5pQ,aACbtxiB,KAAKk7yB,OAAOymB,oBAAoB,SAAU,GAC1C3h0B,KAAKk7yB,OAAOymB,oBAAoB,SAAU3h0B,KAAKk7yB,OAAO4O,eAAe6Y,oBAG7ER,sBAAsB18e,GAClB,MAAKvnR,SAGL,KAAI0kwB,GAAsBn9e,EACtBm9e,IACAn9e,EAASzlV,KAAK4h0B,0BACd5h0B,KAAKsh0B,sBAAsB,QAAS,GACpCth0B,KAAKyh0B,uBAAuB,QAAS,IAEzCzh0B,KAAKsh0B,sBAAsB,QAAS77e,EAAO85c,gBAC3Cv/xB,KAAKyh0B,uBAAuB,QAASh8e,EAAO+5c,iBACxCojC,GACA5i0B,KAAKk7yB,OAAO/a,UAAUhC,4BAG9B8jC,mBACIji0B,KAAKk7yB,OAAO/a,UAAUt+rB,oBAE1BqguB,eAAepiwB,GACX,IAAI+iwB,EAEAC,EAAoBhjwB,EADE9/D,KAAKk7yB,OAAO6nB,iBAAiB/+zB,IAAI,GAAGolO,aAE9DppO,KAAKsh0B,sBAAsB,SAAUwB,GACrC9i0B,KAAKyh0B,uBAAuB,SAAUqB,GACtC,QAAUD,EAAyB7i0B,KAAKk7yB,OAAO8O,kBAAe,OAA6C6Y,EAAuBL,eAAeQ,kBCvFlJ,UACHnj0B,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EAElBwrB,kCAAkCC,GAC9B,IAAIp0wB,EAAWo0wB,GAAoClj0B,KAAKk7yB,OAAO91sB,aAAa89tB,GAW5E,OAV6Bp0wB,GAAa,EAAC56B,EAAWtX,EAAMlX,KACxDopD,EAASmD,OAAO,CACZt7B,MAAO32B,KAAKk7yB,OAAOioB,sBAAsBvmzB,GACzCsX,UAAWqlD,MAAiBne,MAAElnC,IAC9Bs1D,WAAY,KACR9jF,QAGD,IAIf09zB,0CAA0CF,GACtC,IAAIp0wB,EAAWo0wB,GAAoClj0B,KAAKk7yB,OAAO91sB,aAAa89tB,GAW5E,OAV6Bp0wB,GAAa,EAAC56B,EAAWtX,EAAMlX,KACxDopD,EAASmD,OAAO,CACZt7B,MAAO/Z,EACPsX,UAAWqlD,MAAiBne,MAAElnC,IAC9Bs1D,WAAY,KACR9jF,QAGD,IAIf29zB,sCAAsCH,GAClC,IAAIp0wB,EAAWo0wB,GAAoClj0B,KAAKk7yB,OAAO91sB,aAAa89tB,GAW5E,OAV6Bp0wB,GAAa,EAAC56B,EAAWtX,EAAMlX,KACxDopD,EAASmD,OAAO,CACZt7B,MAAO/Z,EACPsX,UAAWqlD,MAAiBne,MAAElnC,IAC9Bs1D,WAAY,KACR9jF,QAGD,IAIf49zB,2BAA2BC,GACvB,IAAIz0wB,EAAWy0wB,GAA6Bvj0B,KAAKk7yB,OAAO91sB,aAAam+tB,GAYrE,OAX6Bz0wB,GAAa,EAAC56B,EAAWtX,EAAMlX,EAAU6M,KAClEqK,EAAK4mzB,SAAWxj0B,KAAKk7yB,OAAOioB,sBAAsBvmzB,EAAK4mzB,UACvD10wB,EAASmD,OAAO,CACZt7B,MAAO/Z,EACPsX,UAAWqlD,MAAiBne,MAAElnC,IAC9Bs1D,WAAY,KACR9jF,EAASwuB,EAAW3hB,OAGrB,KCnCnB,UACI1S,YAAY2H,EAAS22G,GACjBn+G,KAAK2pF,SAAWniF,EAChBxH,KAAK42b,OAASz4U,EACdn+G,KAAKu1G,OAAS,GACdv1G,KAAKyj0B,iBAETC,YAAYrvwB,GACRr0D,KAAKy1H,OAAS,KACdz1H,KAAKu1G,OAASv1G,KAAK2j0B,iBAAiBtvwB,GACpCr0D,KAAKqjjB,MAAM/vf,OAAO,QAAStzD,KAAKu1G,QAEpCoutB,iBAAiBtvwB,GACb,OAAOA,EAAM3zC,IAAI9D,IACb,IAAIlK,EACJ,OACIA,EADA,iBAAoBkK,EACX5c,KAAK4j0B,kBAAkBhnzB,IAEXyC,QAAZzC,EAAKvZ,KAAcrD,KAAK4j0B,kBAAkBhnzB,EAAKvZ,MAAsBrD,KAAK6j0B,yBAApBjnzB,GAE/DA,EAAKy3C,QACL3hD,EAAO2hD,MAAQr0D,KAAK2j0B,iBAAiB/mzB,EAAKy3C,QAEvC3hD,IAGfkxzB,kBAAkBntzB,GACd,OAAQA,EAAKxE,mBACJ,YACD,OAAOjS,KAAK8j0B,uBACX,OACD,OAAO9j0B,KAAK+j0B,mBA1ClB,EA0CoD/jtB,UAA2B,gBAAiBhgH,KAAKgk0B,SAAS,aACvG,OACD,OAAOhk0B,KAAK+j0B,mBA3ClB,EA2CoD/jtB,UAA2B,gBAAiBhgH,KAAKgk0B,SAAS,aACvG,YACD,OAAOhk0B,KAAK+j0B,mBAxCb,GAwCoD/jtB,UAA2B,qBAAsBhgH,KAAKgk0B,SAAS,eACjH,cACD,OAAOhk0B,KAAK+j0B,mBA3CX,GA2CoD/jtB,UAA2B,uBAAwBhgH,KAAKgk0B,SAAS,iBACrH,UACD,OAAOhk0B,KAAK+j0B,mBAxDZ,EAwDoD/jtB,UAA2B,sBAAuBhgH,KAAKgk0B,SAAS,YACnH,aACD,OAAOhk0B,KAAK+j0B,mBAzDT,EAyDoD/jtB,UAA2B,iCAAkChgH,KAAKgk0B,SAAS,qBACjI,aACD,OAAOhk0B,KAAK+j0B,mBA1DZ,EA0DoD/jtB,UAA2B,8BAA+BhgH,KAAKgk0B,SAAS,eAC3H,mBACD,OAAOhk0B,KAAK+j0B,mBA3DN,EA2DoD/jtB,UAA2B,uCAAwChgH,KAAKgk0B,SAAS,0BAC1I,SACD,OAAOhk0B,KAAK+j0B,mBAxDhB,EAwDoD/jtB,UAA2B,kBAAmBhgH,KAAKgk0B,SAAS,gBAC3G,UACD,OAAOhk0B,KAAK+j0B,mBAzDf,EAyDoD/jtB,UAA2B,mBAAoBhgH,KAAKgk0B,SAAS,iBAC7G,aACD,OAAOhk0B,KAAK+j0B,mBA1DZ,GA0DoD/jtB,UAA2B,sBAAuBhgH,KAAKgk0B,SAAS,oBACnH,cACD,OAAOhk0B,KAAK+j0B,mBAlEP,EAkEoD/jtB,UAA2B,kCAAoC,MAAOhgH,KAAKgk0B,SAAS,qBAC5I,kBACD,OAAOhk0B,KAAK+j0B,mBA3DP,GA2DoD/jtB,UAA2B,sCAAuChgH,KAAKgk0B,SAAS,yBACxI,gBACD,OAAOhk0B,KAAK+j0B,mBA5DP,GA4DoD/jtB,UAA2B,yBAA0BhgH,KAAKgk0B,SAAS,yBAC3H,mBACD,OAAOhk0B,KAAK+j0B,mBA7DJ,GA6DoD/jtB,UAA2B,4BAA6BhgH,KAAKgk0B,SAAS,gCAElI,OAAO3kzB,QAAOrf,KAAK6j0B,yBAA0B,CACzCjyyB,QAAS,CACLnb,KAAMA,MAK1BotzB,yBACI,MAAO,GAEXI,iBACI,OAAKjk0B,KAAKy1H,SACNz1H,KAAKy1H,OAAS,GACdz1H,KAAKwsuB,WAAWxsuB,KAAKu1G,SAElBv1G,KAAKy1H,OAEhB+2mB,WAAWn4qB,GACPA,EAAMruD,QAAQ4W,IACV,IAAIzK,EAAMyK,EAAKsnzB,eACX,QACKlk0B,KAAKy1H,OAAOtjH,KACbnS,KAAKy1H,OAAOtjH,GAAO,IAEvBnS,KAAKy1H,OAAOtjH,GAAK9I,KAAKuT,IAEtBA,EAAKy3C,OACLr0D,KAAKwsuB,WAAW5vtB,EAAKy3C,SAIjC2vwB,SAAS3g0B,GACL,MAAO,yBAA2BA,EAEtC81sB,iBACI,IAAIgrH,EAAank0B,KAAKik0B,iBAClBvxzB,EAAS,GACb,QAASixH,KAAWwgsB,EAChBzxzB,EAAOrJ,KAAK0J,SAAS4wH,IAEzB,OAAOjxH,EAEX2msB,eAAelnsB,EAAKkW,GACCroB,KAAKik0B,iBACX9xzB,GAAKnM,QAAQ4W,IACpBA,EAAKwL,UAAYC,IAGzBixrB,eAAennsB,EAAK48D,GACC/uE,KAAKik0B,iBACX9xzB,GAAKnM,QAAQ4W,IACpBA,EAAKmyD,QAAUA,IAGvBqqoB,aAAa9qnB,EAAM52D,IACnB6hrB,WAAWlxrB,GACProB,KAAKqjjB,MAAM/vf,OAAO,YAAajrC,GAEnC+7yB,mBACAzxlB,YACI,OAAO,EAEX0xlB,gBACI,OAAO,EAEXC,mBAEG,kBAA2BC,IAC9Bd,iBACIzj0B,KAAKqjjB,MAAQrjjB,KAAK42b,OAAOj+V,iBAAiB34F,KAAK2pF,SAAU66uB,GAAa,CAClE1/sB,YAAa9uG,SAEL,IADYA,EAAEsuG,SAAS4/sB,WAEvBlk0B,KAAK29sB,gBAAgB3nsB,EAAEsuG,SAAS4/sB,cAKhDvmH,gBAAgBumH,GACZ,OAAQA,QA/IK,GAiJLlk0B,KAAK42b,OAAOtjY,OAAO,iBAAkBtzD,KAAK42b,OAAOtjY,OAAO,kBACxD,WAjJQ,GAmJRtzD,KAAK42b,OAAOtjY,OAAO,oBAAqBtzD,KAAK42b,OAAOtjY,OAAO,qBAC3D,cAEAtzD,KAAK42b,OAAO6tY,oBAAoBP,IAG5CH,mBAAmBG,EAAWz7tB,EAAMkpC,GAChC,MAAO,CACHuyrB,UAAWA,EACX97yB,UAAU,EACVowE,OAAQ,WACRvlF,SAAU,SACV2e,QAAS,CACL+/G,KAAMA,EACNyN,YAAa,OACb32C,KAAMA,IAIlBq7tB,mBACI,MAAO,CACH7wzB,SAAU,SACV67C,SAAU,CAACojD,EAAOr9C,EAAQrtD,MACtB4zD,QAAE5zD,GAASoG,SA3LG,gCA+L1Bi2zB,yBACI,MAAO,CACH5wzB,SAAU,SACVulF,OAAQ,YAGhB8ruB,iBACItk0B,KAAKqjjB,MAAM/vf,OAAO,QAAStzD,KAAKu1G,SAGjC,kBAAkCgvtB,IACrCd,iBACIzj0B,KAAKqjjB,MAAQrjjB,KAAK42b,OAAOj+V,iBAAiB34F,KAAK2pF,SAAU04B,GAAa,CAClEwtC,eAAW,EACX/qC,YAAa9uG,SACL,IAAWA,EAAEsuG,SAAS4/sB,UACtBlk0B,KAAK42b,OAAO6tY,oBAAoBzuzB,EAAEsuG,SAAS4/sB,gBACpC,MAAa5/sB,SAASjhH,MAC7BrD,KAAK42b,OAAOqiX,gBAAgBgE,mBAAmBjnyB,EAAEsuG,SAASjhH,SAK1Eqg0B,YAAYrvwB,KACHA,GAAS,MAAY5vD,UACtB4vD,EAAQr0D,KAAK0k0B,oBAEjB5k0B,MAAM4j0B,YAAYrvwB,GAEtBqwwB,mBACI,MAAO,CAAC,CACJjuzB,KAAMupG,UAA2B,2BACjCkktB,UAxNY,EAyNZvyrB,KAAM3xI,KAAKgk0B,SAAS,OACpB3vwB,MAAO,CAAC,CACJ59C,KAAMupG,UAA2B,8BACjCkktB,UAjOA,EAkOAvyrB,KAAM3xI,KAAKgk0B,SAAS,aACrB,CACCvtzB,KAAMupG,UAA2B,iCACjCkktB,UApOG,EAqOHvyrB,KAAM3xI,KAAKgk0B,SAAS,mBAEzB,CACCvtzB,KAAMupG,UAA2B,kCAAoC,MACrEkktB,UAtOS,EAuOTvyrB,KAAM3xI,KAAKgk0B,SAAS,iBACrB,CACCvtzB,KAAMupG,UAA2B,iCACjCkktB,UA5OI,EA6OJvyrB,KAAM3xI,KAAKgk0B,SAAS,WACrB,CACCvtzB,KAAMupG,UAA2B,uCACjCkktB,UA/OU,EAgPVvyrB,KAAM3xI,KAAKgk0B,SAAS,uBAG5BD,mBAAmBG,EAAWztzB,EAAMk7H,GAChC,MAAO,CACHuyrB,UAAWA,EACXztzB,KAAMA,EACNk7H,KAAMA,GAGd8C,KAAKmE,EAAOvkF,GACRr0D,KAAKqjjB,MAAM/vf,OAAO,QAASe,GAASr0D,KAAKu1G,QACzCv1G,KAAKqjjB,MAAM/vf,OAAO,kBAAmB,CACjC1iC,EAAGgoH,EAAMhoH,EACT4qC,EAAGo9E,EAAMp9E,IAEbx7D,KAAKqjjB,MAAM/vf,OAAO,qBAAsB,OACxCtzD,KAAKqjjB,MAAM5ua,OAEfD,OACIx0I,KAAKqjjB,MAAM7ua,OAEf6vrB,gBACI,OAAO,GC/Qf,UAAehlzB,QAAO,GAAI80f,GAAS,CAC/BA,QAAS,GACTwwT,aAAa7vxB,EAAOg8C,EAAU8zuB,GAC1B,QAASpg0B,EAAI,EAAGA,EAAIswC,EAAMrwC,OAAQD,KAC1B,IAAUssF,EAASh8C,EAAMtwC,MAAQog0B,GAAqB9vxB,EAAMtwC,GAAGo2B,cAAgBka,EAAMtwC,GAAG23B,SAAS13B,QACjGzE,KAAK2k0B,aAAa7vxB,EAAMtwC,GAAG23B,SAAU20D,EAAU8zuB,MCL/D3sR,kBAA4B,gBAAiBpwB,ICGtC,IAAIg9S,IAAoBnxS,+BAAoD,CAC/EW,eAAesS,GACX,OAAO3miB,KAAKm5D,SAASwte,GAAmBjmhB,IAAI5f,GAAQA,EAAKsL,OAE7D04zB,0BAII,QAHItmT,EAAiBx+gB,KAAK0+gB,oBACtBqmT,EAAuBvmT,EAAe/5gB,OACtCug0B,EAAuB,EAClBxg0B,EAAI,EAAGA,GAAKug0B,EAAuB,EAAGvg0B,IAC3C,KAAKkZ,SAAU8ggB,EAAeh6gB,GAAGigC,SAAU,CACvCugyB,EAAuBxmT,EAAeh6gB,GAAG+N,MACzC,MAGR,OAAOyyzB,KAGf/sR,kBAA4B,UAAW,CACnChnd,eAAgByic,kBAChBpe,YAAa,CACT1tX,QAASi9qB,OCIjB,IACII,eAAgBA,KAChB5tkB,KAEA6tkB,GAAyB5xvB,GAAQ,eAAiBA,EAAKhgB,OAAO,cAC9D6xwB,GAA4B72R,YAA0B,WACtD,IAAI82R,EAAe,CAACh5zB,EAAMkvB,IAAS2pyB,IAAe1hzB,GAAMnX,GAAO,CAC3DkvB,KAAMA,IACPmgE,UACH,MAAO,CACH4puB,mBACI,IAAIhrsB,EAAUr6H,KAAKsl0B,aACnB,SAAO30uB,OAAc0pC,IAEzBkrsB,mBACI,IAAIlrsB,EAAUr6H,KAAKsl0B,aACnB,SAAI9szB,OAAW6hH,GACJA,KAEJjqC,OAAciqC,IAEzBmrsB,uBACI,OAAO70uB,SAAc3wF,KAAKszD,OAAO,kBAErCmywB,uBACI,IAAItmU,EAAen/f,KAAKszD,OAAO,gBAC/B,SAAI96C,OAAW2mf,GACJA,KAEJ/ua,OAAc+ua,IAEzBumU,qBACI,OAAO/0uB,SAAc3wF,KAAKszD,OAAO,eAErCqywB,wBACI,IAAI/0Q,EAAe5wjB,KAAKszD,OAAO,gBAC/B,OAAOs9f,MAAgBjge,OAAcige,IAEzCg1Q,wBACI,IAAIh1Q,EAAe5wjB,KAAKszD,OAAO,gBAC/B,SAAI96C,OAAWo4iB,GACJA,EAEJA,MAAgBxge,OAAcwge,IAEzCi1Q,wBAAwBxxwB,GACpB,IAAIif,EAAOtzE,KACXszE,EAAKslb,YAAc,IACnB9vb,SAAKzU,EAAO,CAAC9hD,EAAOqK,KAChB02D,EAAKslb,YAAYh8e,EAAKzK,KAAOI,KAGrCuzzB,mBAAmBhl0B,EAAM8wB,GACrB,IAGIkwH,GAFAikrB,UAAWA,GACXn0yB,EAAQynF,iBAER2stB,EAAed,GAAuBll0B,MAC1C,OAAIA,KAAKs1jB,kBAAoBywQ,IAAcn0yB,EAAQynF,iBAAiBvyF,QAAUk/yB,KAC1ElkrB,EAAW9hJ,KAAKs1jB,gBAAgBx0jB,EAAKsL,YAErC,QAEI01I,IADC9hJ,KAAKim0B,kBAAkBnl0B,EAAKqR,OAAQyf,EAAQyqf,iBAAiBp6W,YAAc8jqB,IAAaC,KAElFp0yB,EAAQskF,YAAYpvF,SAAW8K,EAAQyqf,iBAAiBp6W,WAAa+jqB,EACjEll0B,EAAKq7B,SAAS13B,OAEd3D,EAAK85B,gBAGfknH,GAEbokrB,yBAAyBpxxB,EAAOljB,EAASlf,GACrC,QAASlO,EAAI,EAAGA,EAAIswC,EAAMrwC,OAAQD,IAC1BswC,EAAMtwC,GAAGuqE,SACTr8D,EAAOrJ,KAAKyrC,EAAMtwC,KAEjBxE,KAAKynkB,cAAc3yhB,EAAMtwC,GAAG2N,IAAKyf,KAAakjB,EAAMtwC,GAAGuqE,UAAYj6B,EAAMtwC,GAAGo2B,aAAeka,EAAMtwC,GAAG23B,SAAS13B,QAC9GzE,KAAKkm0B,yBAAyBpxxB,EAAMtwC,GAAG23B,SAAUvK,EAASlf,IAItEsmf,mBAAmBp8e,EAAMg+e,EAAWurU,GAChC,IAAIh0zB,EAAMnS,KAAK8lI,WAAWlpH,GACtBmlI,EAAW/hJ,KAAKizjB,gBAAgBr2iB,GAEhC7b,EAAaol0B,EADjBpkrB,GAAWrkI,SAAUqkI,GAAYA,EAAW64W,GACLurU,EAAUpkrB,IAAa,CAC1D5vI,IAAK4vI,EACL5lH,SAAU,IAEVr7B,EAAOql0B,EAAUh0zB,GAAOg0zB,EAAUh0zB,IAAQ,CAC1CA,IAAKA,EACLgqB,SAAU,IAEdr7B,SAAKsL,KAAOwQ,EACZ9b,EAAKiM,OAAShM,EACPD,GAEXsl0B,oBAAoB/xwB,EAAOkue,GACvB,IAGI/9hB,EAHAo2f,EAAY56f,KAAKszD,OAAO,aACxB+ywB,EAAe,GACfF,EAAYnm0B,KAAKsm0B,WAAa,GAElC,GAAI/jS,EACA,IAAK/9hB,EAAI,EAAGA,EAAI+9hB,EAAa99hB,OAAQD,IACjC6h0B,EAAarm0B,KAAK8lI,WAAWy8Z,EAAa/9hB,MAAO,EAGzD,IAAKA,EAAI,EAAGA,EAAI6vD,EAAM5vD,OAAQD,IAAK,CAC/B,IAAI1D,EAAOd,KAAKg5f,mBAAmB3kc,EAAM7vD,GAAIo2f,EAAWurU,GACxD,QAAI,IAAWrl0B,EAAKqR,IAChB,OAEJrR,EAAKiuE,SAAWwzd,KAAkB8jS,EAAavl0B,EAAKqR,KAChDrR,EAAKiM,QACLjM,EAAKiM,OAAOovB,SAAS9yB,KAAKvI,GAGlC,IAAIszC,EAAW+xxB,EAAUvrU,IAAc,CACnCzof,IAAKyof,EACLz+d,SAAU,IAEdiY,SAASw9D,OAAQ,EACVx9D,GAEXmyxB,6BAA6Bn6zB,EAAM21I,EAAUrvI,GACzC,IAAIP,EACJ,GAAInS,KAAK6/f,eAAiBzzf,EAAKo6zB,YAAa,CACxC9zzB,EAASA,GAAU,GACnB,QAASlO,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,IAAK,CAClC,IAAIoY,GAAOy4kB,SAAwBjplB,EAAK5H,SAEpC,KADJ2N,EAAMnS,KAAK8lI,WAAWlpH,KAGlB5c,KAAKkgwB,WAAWtjvB,EADhBzK,EAAMO,EAAOjO,OAAS,GAG1BzE,KAAKym0B,gBAAgB7pzB,OAAM,MAAsB5c,KAAKszD,OAAO,aAAeyuF,GAC5ErvI,EAAOrJ,KAAKuT,GACZ,IAAI23gB,EAAav0hB,KAAK6/f,aAAajjf,GACnC,GAAI23gB,GAAcA,EAAW9vhB,OAAQ,CACjCzE,KAAKum0B,6BAA6BhyS,EAAYpihB,EAAKO,GACnD,IAAIwsf,EAAYl/f,KAAKszD,OAAO,cACvB96C,SAAW0mf,WACLtif,EAAKsif,IAIxBxsf,SAAO8zzB,aAAc,EACd9zzB,EAEX,OAAOtG,GAEXs6zB,gBAAgB11wB,EAAOj4C,GAEnB,QADI4tzB,EAAkB,GACbni0B,EAAI,EAAGA,EAAIuU,EAAKtU,OAAQD,IAC7Bmi0B,EAAgBt9zB,KAAK,CAAC2nD,EAAO,IAAKj4C,EAAKvU,KAE3C,OAAO6/gB,kBAA6BsiT,EAAiB,OAEzDn6R,2BAA2B56gB,EAASitgB,GAChC7+hB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1B6xB,EAAQyqf,iBAAiBj6W,QAAS,EAClC,IAAIwkqB,GAAqB,EACrB5m0B,KAAKszD,OAAO,mBACZ1hC,EAAQyqf,iBAAiBh6W,SAAU,EACnCzwI,EAAQyqf,iBAAiBp6W,WAAY,IAC/BjiK,KAAKuriB,kBAAoB1M,EAAe58X,YAAcrwI,EAAQynF,iBAAiBvyF,UAAY8K,EAAQivgB,kBACrG+lS,GAAqB,IAGxBh1yB,EAAQivgB,kBACT7giB,KAAK6m0B,UAAY7m0B,KAAK6m0B,WAAahoS,EAAerlb,OAC7C5nF,EAAQ66gB,kBACTzsiB,KAAKim0B,kBAAoB,GACrBjm0B,KAAK6m0B,YACL7m0B,KAAKsm0B,WAAa,KAGtBtm0B,KAAKszD,OAAO,4BAA8Bure,EAAe58X,WAAajiK,KAAK6m0B,WAAaj1yB,EAAQynF,iBAAiBvyF,UAC7G8K,EAAQynF,iBAAiBvyF,OACzB8/yB,GAAqB,EAErBh1yB,EAAQk1yB,sBAAuB,IAI3Cl1yB,EAAQg1yB,mBAAqBA,GAEjCG,oBAAoBhB,GAEhB,QADIiB,EAAkB,GACbxi0B,EAAI,EAAGA,EAAIuh0B,EAAUth0B,OAAQD,IAAK,CACvC,IAAI1D,EAAOd,KAAK88f,aAAaipU,EAAUvh0B,MAClC1D,GAAQA,EAAK85B,cAAgB95B,EAAKq7B,SAAS13B,SAC5Cui0B,EAAgB39zB,KAAK08zB,EAAUvh0B,IAGvC,OAAOwi0B,GAEX3nS,iCAAiCztgB,GAC7B,IAAIgpe,EAAY56f,KAAKszD,OAAO,aACxB6rc,EAAen/f,KAAKszD,OAAO,iBAE3ByywB,UAAWA,GACXn0yB,EAAQynF,iBAKZ,GAJI0stB,IACAn0yB,EAAQivgB,iBAAkB,GAE9B7giB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACtB6xB,EAAQyqf,iBAAiBp6W,YAAcrwI,EAAQivgB,kBAC3CqkS,GAAuBll0B,OAAS4xB,EAAQ66gB,kBAAoB76gB,EAAQynF,iBAAiBvyF,QAAQ,CAC7F,IAAImgzB,EAAkBr1yB,EAAQk1yB,qBAAuB,GAAK9m0B,KAAKszD,OAAO,mBACtEyywB,EAAY,CAACnrU,GAAW/4e,OAAOolzB,GAAiBplzB,OAAOkkzB,GAAa,IACpE,IAAIiB,EAAkBp1yB,EAAQxlB,KAAOpM,KAAK+m0B,oBAAoBhB,GAAaA,EACvEiB,EAAgBvi0B,SAChBmtB,EAAQ86gB,sBAAmB,EAC3B96gB,EAAQxlB,UAAO,EACfwlB,EAAQ87gB,oBAAqB,EAC7B97gB,EAAQ8iD,MAAQ10E,KAAKszD,OAAO,mBAEhC1hC,EAAQynF,iBAAiB0stB,UAAYiB,EACrCp1yB,EAAQynF,iBAAiBvyF,OAAS9mB,KAAK0m0B,gBAAgBvnU,EAAc6nU,KAIjFE,oBAAoB96zB,EAAM+6zB,GACtB,IAAIh1zB,EAKA3N,EAJA4i0B,EAAS,GACTC,EAAe,GACfC,EAAa,GACb1sU,EAAY56f,KAAKszD,OAAO,aAE5B,IAAK9uD,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,IAEzB4i0B,EADAj1zB,EAAMg1zB,EAAenn0B,KAAKizjB,gBAAgB7mjB,EAAK5H,IAAMxE,KAAK8lI,WAAW15H,EAAK5H,MAC5D,EAElB,IAAKA,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,IAAK,CAC9B2N,EAAMg1zB,EAAenn0B,KAAK8lI,WAAW15H,EAAK5H,IAAMxE,KAAKizjB,gBAAgB7mjB,EAAK5H,IAC1E,IAAI+i0B,EAAaJ,EAAenn0B,KAAKynkB,cAAct1jB,GAAOA,IAAQyof,GAC7DwsU,EAAOj1zB,KAASk1zB,EAAal1zB,IAAQo1zB,IACtCF,EAAal1zB,IAAO,EACpBm1zB,EAAWj+zB,KAAK8I,IAGxB,MAAO,CACHi1zB,OAAQC,EACRtuzB,KAAMuuzB,IAGdE,uBAAuBp7zB,EAAMwlB,EAASu1yB,GAClC,IAAIj9yB,EAAIC,EAAIC,EACRtD,EACA2gzB,GAEA1uzB,KAAMA,EACNquzB,OAAQA,GACRpn0B,KAAKkn0B,oBAAoB96zB,EAAM+6zB,GAC/BrpxB,EAAI,IAAI01B,MACRitd,EAAoB7ugB,EAAQyqf,iBAAiBp6W,UAC7C7pC,EAA2Bp4H,KAAKszD,OAAO,4BACvCh4B,GAAO,QAAUnR,EAAK,QAAUD,EAAK0H,EAAQynF,wBAAqB,IAAWnvF,OAAK,EAASA,EAAGoR,YAAS,MAAgBnR,EAAK,QAAUC,EAAKwH,EAAQskF,mBAAgB,WAAgB,EAAS9rF,EAAGkR,KAC/L46E,GAAcuqb,EAAoB7ugB,EAAQynF,iBAAmBznF,EAAQskF,YACrEwxtB,GAAmBC,KACflnS,IACAzgiB,KAAKkriB,iBAAmBk6R,EAAapl0B,KAAKkriB,iBAAiBrphB,OAAO8lzB,IAAarsyB,KAE5E8pyB,EAAah5zB,EAAKyV,OAAO8lzB,IAAarsyB,KAEjD,IAAKviB,EAAKtU,OACN,OAAOq5C,EAAEjqB,QAAQznB,GAErB,IAAIw7zB,GAAc7uzB,EAAK2H,IAAI7U,IAAM7L,KAAK88f,aAAajxf,KAAKib,OAAOhmB,IAAQA,IAAQA,GAAKsL,MACpF,GAAIw7zB,GAAYnj0B,SAAWsU,EAAKtU,SACxB0i0B,IACAS,GAAcA,GAAYr0yB,OAAO,CAAC7gB,GAAQ5R,KAAS4R,GAAOmP,OAAO/gB,GAAKq7B,UAAW,KAEjFyryB,GAAYnj0B,QACZ,OAAOzE,KAAKwn0B,uBAAuBE,GAAiBE,GAAYlnzB,IAAI5f,IAAQA,GAAKsL,OAAQwlB,EAASu1yB,GAG1G,IAAI9ssB,GAAU8ssB,EAAenn0B,KAAKszD,OAAO,gBAAkBtzD,KAAKsl0B,aAChEx+yB,EAAS9mB,KAAK0m0B,gBAAgBrssB,GAASthH,GACpBylB,UAAUroB,KAAKC,UAAU0Q,IAASriB,OAClC2zH,IACftxG,EAASw9F,IAAY8itB,EAAOD,EAAenn0B,KAAKizjB,gBAAgB3uc,IAAYtkH,KAAK8lI,WAAWxhB,KAC5FmjtB,EAAqBhnS,GAEzBvqb,IAAc72F,QAAO,GAAI62F,GAAa,CAClCpvF,OAAS2gzB,EAA8B,KAAT3gzB,IAElC,IAAIvR,GAAQqc,EAAQ4liB,SAAW,IAAIlnd,GAAW1+E,EAAQ4liB,UAAYx3jB,KAAKi8G,YAAY1mG,QACnF,YAAKklG,cAAcvE,GAAa3gG,IAAO2+D,KAAKyzvB,KACpCA,GAAWlj0B,QACPgj0B,IACAE,GAAapkzB,GAAMokzB,IAAY7gzB,OAAOA,GAAQ20E,WAElDz7F,KAAKwn0B,uBAAuBE,GAAiBC,IAAa/1yB,EAASu1yB,GAAcjzvB,KAAKp2B,EAAEjqB,SAASsgD,KAAKr2B,EAAEjE,SAExGiE,EAAEjqB,QAAQznB,KAEf+nE,KAAKr2B,EAAEjE,QACHiE,GAEX+pxB,aAAaz7zB,EAAMwlB,GACf,OAAO5xB,KAAKwn0B,uBAAuBp7zB,EAAMwlB,IAE7Ck2yB,oBAAoB17zB,EAAMwlB,GACtB,OAAIszyB,GAAuBll0B,MAChBA,KAAKwn0B,uBAAuBp7zB,EAAMwlB,GAAS,MAE/CiiD,OAAKznE,IAEhB27zB,mBAAmBn2yB,GACf,IACIm0yB,UAAWA,GACXn0yB,EAAQynF,iBACZ,GAAI0stB,EACA,QAASvh0B,EAAI,EAAGA,EAAIuh0B,EAAUth0B,OAAQD,IAClCxE,KAAKim0B,kBAAkBF,EAAUvh0B,KAAM,GAInDsniB,YAAa,KAAO,CAChB35hB,IAAK,IAAM,MACX0oG,MAAOzuG,GAAQA,EAAK+F,MAExB8rlB,gBAAgBhokB,GACZ,IAAI+xyB,EAAmB,GACvB/xyB,SAAQjwB,QAAQ0wB,IACR,WAAaA,EAAOjrB,KACpBu8zB,EAAmBA,EAAiBnmzB,OAAO7hB,KAAKio0B,aAAavxyB,IACtD,WAAJzf,EAAwBxL,KAC3Bu8zB,EAAmBA,EAAiBnmzB,OAAO7hB,KAAKko0B,aAAaxxyB,IACtD,aAAoBjrB,MAC3Bu8zB,EAAiB3+zB,KAAK,CAClBoC,KAAMirB,EAAOjrB,KACb0G,IAAKukB,EAAOvkB,IACZ/F,KAAM,CACFA,KAAMsqB,EAAOtqB,UAKtB47zB,GAEXzoS,gBAAgBvphB,GACZhW,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BiW,EAAEkjG,mBAAqBjjF,IACnB,IAAIkyyB,EAAmBlyyB,EAAQnP,OAAOlK,GAAQ,WAAaA,EAAKnR,MAChE,OAAOzL,KAAKi+lB,gBAAgBkqO,KAGpCz8R,YAAYz1gB,GACR,IAAI+xyB,EAAmBho0B,KAAKi+lB,gBAAgBhokB,GAC5Cj2B,KAAKm5D,SAAS6uwB,IAElBI,aAAatn0B,EAAM8L,GACf,IAAIy7zB,EAAiBro0B,KAAKso0B,gBAC1Bxn0B,EAAK85B,YAAchuB,EACfy7zB,GAAkBvn0B,EAAKsL,MACvBi8zB,EAAevn0B,EAAKsL,KAAMQ,IAGlCq7zB,aAAavxyB,GACT,IAAI6xyB,EAAc,GACdxmrB,EAAW/hJ,KAAKwo0B,YAAY9xyB,EAAOtqB,MACnCrL,EAAaf,KAAK88f,aAAa/6W,GACnC,GAAIhhJ,EAAY,CACZ,IAAI65f,EAAY56f,KAAKszD,OAAO,aACxBxyD,EAAOd,KAAKg5f,mBAAmBtie,EAAOtqB,KAAMwuf,EAAW56f,KAAKsm0B,YAOhE,GANAxl0B,EAAK85B,aAAc,EACnB95B,EAAK8wG,MAAQ7wG,EAAW6wG,MAAQ,EAChC9wG,EAAKiuE,SAAU,EACfhuE,EAAWo7B,SAAS9yB,KAAKvI,GACzBd,KAAKim0B,kBAAkBnl0B,EAAKqR,MAAO,EACnCnS,KAAKoo0B,aAAarn0B,GAAY,KACxBA,EAAWgM,QAAU/M,KAAKynkB,cAAc1mkB,EAAWoR,YAAS,IAAWukB,EAAOnkB,MAAO,CACvF,IAAIA,EAAQvS,KAAKq0D,QAAQ7hD,QAAQzR,GAAc,EAC/CwR,GAASmkB,EAAOnkB,OAAS,EAAIgI,KAAKmvD,IAAIhzC,EAAOnkB,MAAOxR,EAAWo7B,SAAS13B,QAAU1D,EAAWo7B,SAAS13B,OACtG8j0B,EAAYl/zB,KAAK,CACboC,KAAMirB,EAAOjrB,KACbW,KAAMtL,EACNyR,MAAOA,KAInB,OAAOg2zB,GAEXx8R,sBAAuB,KAAM,EAC7Bm8R,aAAaxxyB,GACT,IAAI6xyB,EAAc,GACdzn0B,EAAOd,KAAK88f,aAAapme,EAAOvkB,KAChCpR,EAAaD,GAAQA,EAAKiM,OAC9B,GAAIhM,EAAY,CACZ,IAAIwR,EAAQxR,EAAWo7B,SAAS3pB,QAAQ1R,GACpCyR,GAAS,IACTxR,EAAWo7B,SAAS1pB,OAAOF,EAAO,GAC7BxR,EAAWo7B,SAAS13B,QACrBzE,KAAKoo0B,aAAarn0B,GAAY,GAElCwn0B,EAAYl/zB,KAAKqtB,GACjB6xyB,EAAcA,EAAY1mzB,OAAO7hB,KAAKyo0B,iBAAiB/xyB,EAAOvkB,KAAKuO,IAAIvO,IAAQ,CAC3E1G,KAAMirB,EAAOjrB,KACb0G,IAAKA,OAIjB,OAAOo2zB,GAEXlhS,kBAAkBz1gB,GACd,IAAIxlB,EAAOwlB,EAAQxlB,KAAOpM,KAAKum0B,6BAA6B30yB,EAAQxlB,OAC/DwlB,EAAQyqf,iBAAiBp6W,WAAarwI,EAAQskF,YAAYpvF,SAC3D8K,EAAQ4liB,SAAWytQ,IAAe1hzB,GAAMqO,EAAQxlB,MAAO,CACnDkvB,KAAM1J,EAAQskF,aAAetkF,EAAQskF,YAAY56E,OAClDmgE,WAEPz7F,KAAK+n0B,mBAAmBn2yB,GACxB5xB,KAAKm5D,SAASvnC,GACVxlB,EAAKo6zB,aAAexm0B,KAAKkriB,mBACzBlriB,KAAKkriB,iBAAiBs7R,aAAc,IAG5CkC,WAAW5zxB,EAAOljB,EAASq1yB,EAAiBr1tB,GACxC,IAAIo0tB,EAAed,GAAuBll0B,MAC1C4xG,EAAQA,GAAS,EACjB,QAASptG,EAAI,EAAGA,EAAIswC,EAAMrwC,OAAQD,IAAK,CACnC,IAAI1D,EAAOg0C,EAAMtwC,GACbmk0B,GAAe,EACnB3o0B,KAAK0o0B,WAAW5zxB,EAAMtwC,GAAG23B,SAAUvK,EAASq1yB,EAAiBr1tB,EAAQ,GACrE9wG,EAAK8wG,MAAQA,EACb9wG,EAAK85B,YAAc56B,KAAK8l0B,mBAAmBhl0B,EAAM8wB,GAC7C9wB,EAAKiuE,SAAWjuE,EAAK85B,cACjBoryB,EACAp/yB,EAASuV,SAASrV,OAAOhmB,GAAQA,EAAKiuE,SAAStqE,OAC3Ckk0B,GAAe,EACR7n0B,EAAKq7B,SAAS13B,QACrBwziB,gBAA0Bn3iB,EAAKq7B,SAAUr7B,IACrCA,EAAKiuE,SAAU,IAIvB45vB,GAAe,EAEf/2yB,EAAQg1yB,oBAAsB+B,GAC9B1B,EAAgB59zB,KAAKvI,EAAKqR,OAG9BrR,EAAKiuE,SAAWjuE,EAAK85B,eACrB95B,EAAKiM,OAAO6tB,aAAc,KAItCguyB,sBAAsBh3yB,EAAS2wgB,GAC3B,IACIn2hB,KAAMA,GACNwlB,GAEAm0yB,UAAWA,GACXn0yB,EAAQynF,iBACR4ttB,EAAkB,GACtB,GAAIlB,GAAaA,EAAUth0B,QAAUzE,KAAK6m0B,UAAW,CAMjD,GALIj1yB,EAAQ4liB,UAAY5liB,EAAQ4liB,SAAS/yjB,OAASmtB,EAAQxlB,KAAK3H,SAC3D2H,EAAOwlB,EAAQ4liB,SACfj1B,EAAeA,GAAgB3wgB,EAAQxlB,MAE3CpM,KAAK6o0B,UAAY7o0B,KAAKom0B,oBAAoBh6zB,EAAMm2hB,IAC3CviiB,KAAK6o0B,UAEN,YADAj3yB,EAAQxlB,MAAQ,IAAIonE,OAAU35B,OAAOtzB,SAAa,QAASvmB,KAAKsl0B,gBAGpEtl0B,KAAK0o0B,WAAW1o0B,KAAK6o0B,UAAU1syB,SAAUvK,EAASq1yB,GAClDjn0B,KAAK8o0B,sBAAuB,GACxBl3yB,EAAQk1yB,sBAAwBG,EAAgBxi0B,SAChDzE,KAAKszD,OAAO,kBAAmB2zwB,GAEnCjn0B,KAAK6m0B,WAAY,EACjB7m0B,KAAK6sG,cAAc,qBAAsB,CACrCl8E,KAAM3wB,KAAK6o0B,YAEf7o0B,KAAK8o0B,sBAAuB,EAEhC,IAAIC,EAAa,GACjB/o0B,KAAKkm0B,yBAAyBlm0B,KAAK6o0B,UAAU1syB,SAAUvK,EAASm3yB,GAChEn3yB,EAAQxlB,KAAO28zB,EACf/o0B,KAAKgp0B,iBAAmBD,EAAWtk0B,QAEvCkpiB,sBAAsB/7gB,GAClB,IASI2wgB,EATAjvd,EAAOtzE,MAEPoM,KAAMA,GACNwlB,GAEAunC,SAAUA,GACVma,EACAxsD,EAAS8K,EAAQynF,iBAAiBvyF,QAAU8K,EAAQskF,YAAYpvF,OAChEmizB,EAAa31vB,EAAKhgB,OAAO,eAGzByywB,UAAWA,GACXn0yB,EAAQynF,iBAEZ,IAAKznF,EAAQivgB,gBAAiB,CAC1B,GAFkB/5gB,KAAYi/yB,IAAcA,EAAUth0B,SAAW,aAAewk0B,EAE3D,CACjB,IAAInrxB,EAAIlsB,EAAQxlB,KAAO,IAAIonE,MAC3B,MAAI,kBACA+ud,EAAen2hB,GAEZknE,EAAKu0vB,aAAaz7zB,EAAMwlB,GAASsiD,KAAK9nE,IACzCknE,EAAKw0vB,oBAAoB17zB,EAAMwlB,GAASsiD,KAAK9nE,IACzCwlB,EAAQxlB,KAAOA,EACfknE,EAAKs1vB,sBAAsBh3yB,EAAS2wgB,GACpCppe,EAAS/+B,KAAKk5C,EAAM1hD,GACpBksB,EAAEjqB,QAAQjC,EAAQxlB,UAEvB+nE,KAAKr2B,EAAEjE,QAEdy5B,EAAKs1vB,sBAAsBh3yB,GAE/B0hD,EAAKna,SAASvnC,IAElBi5gB,YAAY7nhB,GACR,IACIiT,QAASA,GACTjT,EACgBhjB,KAAKi8G,YAAY9G,kBACEl/E,EAAQxxB,SAE3CzE,KAAK6m0B,WAAY,GAErB5wyB,EAAQjwB,QAAQ0wB,IACZ,IAAIxM,EACJ,QAAUA,EAAKwM,EAAOnkB,aAAU,QAAqBmkB,EAAOnkB,OAAQ,KAExEvS,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAE9BkU,KAAKuoG,EAAY6/Z,GACbr8gB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1B,IAAI0+f,EAAgBz+f,KAAKszD,OAAO,iBAChCtzD,KAAK8lI,WAAa9lI,KAAKql0B,mBACvBrl0B,KAAKizjB,gBAAkBjzjB,KAAKwl0B,uBAC5Bxl0B,KAAKs1jB,gBAAkBt1jB,KAAK2l0B,wBAC5B3l0B,KAAKso0B,gBAAkBto0B,KAAK4l0B,wBACxB,aACA5l0B,KAAK6/f,aAAe7/f,KAAK0l0B,qBACzB1l0B,KAAKkgwB,WAAalgwB,KAAKul0B,mBACvBvl0B,KAAKym0B,gBAAkBzm0B,KAAKyl0B,wBAEhCzl0B,KAAKsm0B,WAAa,GAClBtm0B,KAAKim0B,kBAAoB,GACzBjm0B,KAAKgp0B,iBAAmB,EACxBhp0B,KAAKqugB,aAAa,uBAEtBi3T,aACI,IAAI/vzB,EAAQvV,KAAKuV,QACbpD,EAAMoD,GAASA,EAAMpD,MACrBkoH,EAAUr6H,KAAKszD,OAAO,WAC1B,IAAI51C,SAAUvL,OAAQuL,OAAU28G,QACvBnpE,OAAa/+C,EAAKkoH,GACnB,MAAM9zG,SAAa,SAG3B,OAAOpU,GAAOkoH,GA7iBG,MA+iBrBxf,MAAMzuG,GACF,OAAOpM,KAAK8lI,YAAc9lI,KAAK8lI,WAAW15H,IAE9Co8zB,YAAYp8zB,GACR,OAAOpM,KAAKizjB,iBAAmBjzjB,KAAKizjB,gBAAgB7mjB,IAExDkwE,cACI,OAAOt8E,KAAK6o0B,WAEhBvgS,kBACI,OAAOtoiB,KAAKgp0B,iBAAmBhp0B,KAAKyqiB,uBAExCg9B,cAAct1jB,EAAKshF,GACf,GAAIA,EAAO,CACP,IACIy1uB,gBAAiBA,GACjBz1uB,EACJ,OAAKy1uB,IACDA,EAAkBz1uB,EAAMy1uB,gBAAkB,GAC1Clp0B,KAAKszD,OAAO,mBAAmBttD,QAAQmM,IACnC+2zB,EAAgB/2zB,IAAO,OAGtB+2zB,EAAgB/2zB,GAG7B,OAD2BkygB,iBAA4BlygB,EAAKnS,KAAKszD,OAAO,mBAAoB,OAC7D,GAEnCs0gB,qBAAqBz1jB,GACjB,IAAI80zB,EAAkBjn0B,KAAKszD,OAAO,mBAAmBhsD,QACjD6h0B,EAAuB9kT,iBAA4BlygB,EAAK80zB,EAAiB,MACzEkC,EAAuB,EACvBlC,EAAgB59zB,KAAK8I,GAErB80zB,EAAgBx0zB,OAAO02zB,EAAsB,GAEjDnp0B,KAAKszD,OAAO,kBAAmB2zwB,IAEnCviQ,gBAAgBvyjB,GACZ,YAAKy1jB,qBAAqBz1jB,GACnBnS,KAAK8o0B,sBAAwB,IAAIt1vB,OAAU3/C,UAAY7zB,KAAK0wC,QAEvEosd,aAAa3qf,GACT,GAAInS,KAAKsm0B,WACL,OAAOtm0B,KAAKsm0B,WAAWn0zB,IAG/Bi3zB,kBACI,IAAI91vB,EAAOtzE,KACP0S,EAAS,GAEbqG,OADWu6D,EAAKu1vB,UAAY,CAACv1vB,EAAKu1vB,UAAU12zB,KAAO,IAC9CnM,QAAQmM,IACT,IAAIrR,EAAOwyE,EAAKwpb,aAAa3qf,GAC7BrR,GAAQm3iB,gBAA0B,CAACn3iB,GAAO4xL,KACrCA,EAAUv2J,SAAS13B,QAAUiO,EAAOrJ,KAAKqpL,EAAUvgL,SAGrDO,GAEX+1zB,iBAAiB3vU,GACb,IAAIh4f,EAAOd,KAAK88f,aAAahE,GACzBa,EAAe,GACnB74f,UAAQm3iB,gBAA0Bn3iB,EAAKq7B,SAAUu2J,IAC7CinU,EAAatwf,KAAKqpL,EAAUvgL,OAEzBwnf,GAEX0vU,gBAAgBtwzB,EAAMuwzB,GAClB,IAAIh2vB,EAAOtzE,KACP89C,EAAI,IAAI01B,MACR6oc,EAAmB/oc,EAAK+oc,mBAM5B,GAJItjgB,KADA2E,OAAU3E,GACHnQ,MAAM8B,QAAQqO,GAAQA,EAAO,CAACA,GAE9Bu6D,EAAK81vB,mBAEX/sT,EAAiBp6W,YAAclpJ,EAAKtU,OACrC,OAAOq5C,EAAEjqB,UAEb,IAAIqiF,EAAc5iC,EAAK2oC,YAAY/D,0BACnChC,SAAY6vtB,UAAYhtzB,EACxBu6D,EAAK5iC,KAAKwlE,GAAahiC,KAAK,KACxB,IAAKo1vB,EAAc,CACf,IAAIC,GAAqBj2vB,EASvBA,EARMi2vB,EAAY,GAQZxwzB,EAPC/S,QAAQmM,IACT,IAAIrR,EAAOwyE,EAAKwpb,aAAa3qf,GAC7BrR,GAAQA,EAAKq7B,SAASn2B,QAAQgtB,IAC1Bu2yB,EAAUlg0B,KAAK2pB,EAAM7gB,SAGtBo3zB,GAEX,GAAIA,EAAU9k0B,OAEV,YADA6uE,EAAK+1vB,gBAAgBE,EAAWD,GAAcp1vB,KAAKp2B,EAAEjqB,SAASsgD,KAAKr2B,EAAEjE,QAXzD,IAASy5B,EACjBi2vB,EAcZzrxB,EAAEjqB,YACHsgD,KAAKr2B,EAAEjE,QACHiE,EAAEhE,WAEb0vxB,cACI,IACI9j0B,EADAovC,EAAQ,GAEZ,GAAI,IAAM/0C,UAAU0E,OAAQ,CACxBiB,EAAW3F,UAAU,GACrB,IAAIq0C,EAAWp0C,KAAKs8E,cACpBxnC,EAAQV,GAAYA,EAASjY,UAAY,QAClC,IAAMp8B,UAAU0E,SACvBiB,EAAW3F,UAAU,GACrB+0C,EAAQ/0C,UAAU,GAClB+0C,EAAQlsC,MAAM8B,QAAQoqC,GAASA,EAAQ,CAACA,IAE5CmjgB,gBAA0BnjgB,EAAOpvC,KA/pBa,IAmqB1D,UAAe,CACX2Z,OAAO40f,GACHkxT,GAA4BA,GAA0Bj9tB,QAAQ+ra,IAElE3ngB,OAAQkC,GAAa,IAAI22zB,GAA0B32zB,IC7rBhD,IAAI+/hB,IAAiBjQ,4BAA8C,CACtEmI,sBAAuB,IAAM+H,IAC7Bi7R,cAAc3o0B,GAEV,QADI8wG,GAAQ,EACL9wG,EAAKiM,QACJjM,EAAKiuE,SACL6iC,IAEJ9wG,EAAOA,EAAKiM,OAEhB,OAAO6kG,GAEXgxb,kBAAkB9hiB,EAAM8wB,GACpB,MAAO,CACHwnf,QAAS,OACTt4gB,KAAMA,EACNqR,IAAKrR,EAAKqR,IACV/F,KAAMtL,EAAKsL,KACXsrgB,WAAY13gB,KAAKynkB,cAAc3mkB,EAAKqR,IAAKyf,GACzCggF,MAAO5xG,KAAKyp0B,cAAc3o0B,KAGlC4o0B,sBACI1p0B,KAAKi8G,YAAYvrE,QAErB06F,cAAcE,EAAOC,GAOjB,QANID,EAAMvH,aAAewH,EAAMxH,YAG3BuH,EAAMxqI,MAAQyqI,EAAMzqI,MAAQwqI,EAAMxqI,KAAK85B,cAAgB2wG,EAAMzqI,KAAK85B,aAGlE0wG,EAAM15B,QAAU25B,EAAM35B,OAAS05B,EAAMosY,aAAensY,EAAMmsY,aAGvD13gB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErCikiB,eAAeC,EAAQC,EAAQC,EAAiB5sB,EAAa6sB,GAEzD,OAAI7sB,IADuBv3gB,KAAKy+gB,mBAAmBqmT,2BACP7gS,EAAOlga,aAAemga,EAAOnga,YAGlE/jI,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErCkU,OACIjU,KAAKqugB,aAAa,kBAClBrugB,KAAKqugB,aAAa,iBAClBrugB,KAAKqugB,aAAa,mBAClBrugB,KAAKqugB,aAAa,kBAClBrugB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAE9B86G,MAAMzuG,GACF,IAAIowG,EAAax8G,KAAKi8G,YACtB,GAAIO,EACA,OAAOA,EAAW3B,MAAMzuG,IAGhC+F,MACI,IAAIqqG,EAAax8G,KAAKi8G,YACtB,GAAIO,EACA,OAAOA,EAAW8otB,cAG1Bp0T,gBACI,OAAOlxgB,KAAKm5D,WAAWt3C,OAAO,CAAC,YAAa,cAAe,gBAAiB,cAAe,eAAgB,kBAAmB,iBAElI6ijB,gBAAgBvyjB,GACZ,GAAInS,KAAKi8G,YAAa,CAClB,IAAItjG,EAAO,CACPxG,IAAKA,GAELulgB,EAAa13gB,KAAKynkB,cAAct1jB,GAEpC,GADAnS,KAAK6sG,cAAc6qa,EAAa,kBAAoB,iBAAkB/+f,IACjEA,EAAK0lD,OACN,OAAOr+D,KAAKi8G,YAAYyod,gBAAgBvyjB,GAAK+hE,KAAK,KAC9Cl0E,KAAK6sG,cAAc6qa,EAAa,iBAAmB,gBAAiB/+f,KAIhF,OAAQ,IAAI66D,OAAU3/C,WAE1B4ziB,cAAct1jB,EAAKshF,GACf,OAAOzzF,KAAKi8G,aAAej8G,KAAKi8G,YAAYwrd,cAAct1jB,EAAKshF,IAEnE00e,UAAUh2jB,GACN,OAAKnS,KAAKynkB,cAAct1jB,IAGhB,IAAIqhE,OAAU3/C,UAFX7zB,KAAK0kkB,gBAAgBvyjB,IAIpCi2jB,YAAYj2jB,GACR,OAAInS,KAAKynkB,cAAct1jB,GACZnS,KAAK0kkB,gBAAgBvyjB,IAExB,IAAIqhE,OAAU3/C,WAE1ByoD,cACI,OAAOt8E,KAAKi8G,aAAej8G,KAAKi8G,YAAY3/B,eAEhDi1b,cAAc54f,GACV,OAAQA,EAAKtV,UACJ,gBACA,mBACA,gBACA,iBACA,6BACA,oBACA,mBACA,gBACDrD,KAAKy+gB,mBAAmBl1f,QACxBvpB,KAAKu1G,OAAS,GACdv1G,KAAK07G,qBACL/iG,EAAKi1E,SAAU,EACf,UACC,sBACA,qBACG5tF,KAAKi8G,cAAgBj8G,KAAKi8G,YAAY6stB,0BAAyB53wB,OAAav4C,EAAK/L,MAAO+L,EAAK0d,gBAC7Fr2B,KAAK0p0B,sBAET/wzB,EAAKi1E,SAAU,EACf,UACC,2BACDj1E,EAAKi1E,SAAU,EACf,cAEA5tF,KAAKm5D,SAASxgD,KAG1Bmkf,aAAa3qf,GACT,GAAKnS,KAAKi8G,YAGV,OAAOj8G,KAAKi8G,YAAY6gZ,aAAa3qf,IAEzCs2zB,iBAAiB3vU,GACb,GAAK94f,KAAKi8G,YAGV,OAAOj8G,KAAKi8G,YAAYwstB,iBAAiB3vU,IAE7CuwU,gBAAgBtwzB,EAAMuwzB,GAClB,GAAKtp0B,KAAKi8G,YAGV,OAAOj8G,KAAKi8G,YAAYottB,gBAAgBtwzB,EAAMuwzB,IAElDE,cACIxp0B,KAAKi8G,YAAYuttB,YAAY9tyB,MAAM17B,KAAMD,cAGjDk4iB,kBAA4B,OAAQ,CAChChnd,eAAgB,KAAM5xE,QAAO,GAAIi/gB,oBAAuC,CACpEp/B,UAAW,QACXC,aAAc,WACdvE,UAAW,EACX6D,cAAe,QACfwoU,gBAAiB,GACjBgC,WAAY,gBACZU,wBAAwB,EACxB9wqB,eAAe,EACf+wqB,mBAAoB,KACpBxxsB,yBAA0B,KAC1BgqC,OAAQ,CACJ/5I,SAAS,KAGjBitf,YAAa,CACTlpgB,KAAMmiiB,OCjLd0J,kBAA4B,UAAWpI,KCQvC,IAAIg6R,IAAwB,2BAIxBC,IAA0B,uBAC1BC,IAA2B,wBACpBC,IAAW15R,0BAAkC,WACpD,IAAI25R,EAAa,SAASpmU,EAAS6T,GAC/B,IAAIhmY,GAAet2E,QAAE,SAASxtD,SALX,2BAMnB,OAAIi2f,GACAnyX,EAAaxtC,YAAY4luB,IAAyBpyT,GAAYxza,YAAY6luB,KAA2BryT,GAAY9tb,QAAOxuB,QAAE,WAEvHs2E,GAEX,MAAO,CACHw4rB,qBAAqBngvB,EAAYn4D,GAC7B,IAAI4sP,GAAiBpjN,QAAE,SAASxtD,SAfD,8BAegDi9D,SAASkf,GACxF,GAAIn4D,EAAQoyf,MAAO,CACf,IAAIlje,EAAUlvB,EAAQoyf,MAAM,IAAM,CAACpyf,EAAQsyH,IAAItyC,MAAOhgF,EAAQsyH,IAAIwzX,WAAY9lf,EAAQsyH,IAAIpjJ,KAAK85B,aAAc,KACzG4jP,EAAex7L,QACfhjF,KAAKmq0B,aAAa3rjB,EAAgB5sP,KAEtC68B,QAAgB+vN,EAAgBlwM,GAAaxtB,GAEjDipC,SAAWn8E,SAtBc,+BAuBlB5N,KAAKmq0B,aAAa3rjB,EAAgB5sP,IAE7Cu4yB,aAAa3rjB,EAAgB5sP,GAOzB,QALIsyH,IAAKA,GACLtyH,GAEAggF,MAAOA,GACPsyC,EACK1/I,EAAI,EAAGA,GAAKotG,EAAOptG,IACxBg6Q,EAAe50L,OAAOqgvB,EAAWzl0B,IAAMotG,GAASsyC,EAAIpjJ,KAAK85B,YAAaspH,EAAIwzX,aAE9E,OAAOl5P,GAEX4rjB,0BAA0Bl2yB,EAAWyC,GACjC,YAAKuzyB,qBAAqBh2yB,EAAWyC,IAC9B,GAEXoqf,iBAAiBjyd,EAAUl9B,GACvB,IAAI1H,EACAopD,EAAOtzE,KAEPghhB,EAAoBhhhB,KAAKm5D,SAASrK,GAClCk2wB,EAAuB1xvB,EAAKmrc,mBAAmBqmT,0BACnD,OAAI9jT,IAAsB,QAAU92f,EAAK0H,EAAQs9e,cAAW,WAAgB,EAAShlf,EAAG3X,SAAWyyzB,EAC9E,CACb/ywB,OAAOrgC,GACH,IAEiCm4D,EAF7BA,EAAan4D,EAAQsC,UACrBo/C,EAAK82vB,0BAA0BrgvB,EAAYn4D,EAAQ+E,SACnD/E,EAAQsC,WAAqB61D,EAE3BA,GADS3uB,QAAE,SAASxtD,SAASi8zB,KAAuBh/vB,SAASkf,KAGnEi3b,EAAkB/ud,OAAOrgC,KAIhBovf,GAIzBjD,YAAY3qE,EAAOxhb,GACfwhb,EAAQA,EAAMz9Y,SAASk0wB,KAAyBz2X,EAAMrmc,SAAWqmc,EACjEpzc,KAAKm5D,SAASi6Y,EAAOxhb,IAEzBkuf,UAAU9pgB,GACN,IAAIsmG,EAAiBt8G,KAAKu8G,gBACtBsxZ,GAAiBzyc,QAAEplD,EAAElL,MAAM9I,QAC3Bqo0B,EAAerq0B,KAAKqq0B,aAAax8T,GACjCjxf,EAAO0/F,GAAkBA,EAAejoD,QAAQr+C,EAAE68b,UAClDw3X,GAAgBztzB,GAChB0/F,EAAeood,gBAAgB9njB,EAAKzK,KAExCnS,KAAKm5D,SAASnjD,IAElB88b,WAAW5uT,GACP,IAAIpjJ,EAAOojJ,GAAOA,EAAIpjJ,KAClBmihB,EAAcjjhB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC5C,OAAIe,IACAd,KAAK+tG,QAAQ,QAASm2C,EAAItyC,MAAQ,EAAGqxa,GACjCnihB,EAAK85B,aACL56B,KAAK+tG,QAAQ,WAAYm2C,EAAIwzX,WAAYuL,IAG1CA,GAEXuvB,iBAAkB,IAAM,WACxB63R,aAAcx8T,KAAoBA,EAAe/vb,QAAQ,IAAIj8D,OAAOiozB,IAAyB,OAAOjozB,OAAOkozB,MAA2Btl0B,OACtIqsiB,yBAAyBv8F,EAAMrwT,GAC3B,IAAIujb,EAAgBvjb,EAAIwzX,WACxB13gB,KAAK+tG,QAAQ,YAAYrwF,SAAU+pjB,IAAkBA,EAAcjwjB,WAAY+8b,KAzFnC,IA6FxD0jG,kBAA4B,OAAQ,CAChChnd,eAAgBq/c,kBAChB/6B,MAAO,CACHnJ,SAAU49T,OC9GlB/xR,kBAA4B,cAAeJ,KCA3CI,kBAA4B,gBAAiBoB,KCC7C,IAAIgG,IAAqBO,gCAA4C,CACjEnF,oBAAqB,IAAM,0BAC3BY,mBAAmBN,GACf/6iB,KAAKm5D,SAAS4hf,GACG/6iB,KAAKs4iB,UAAU7zB,kBACrBh/e,KAAK,gCAAgCy+D,YAAYlkG,KAAK0xgB,gBAAgB,YAAaqpC,MAGtG9C,kBAA4B,WAAY,CACpChnd,eAAgB2ud,kBAChBtqC,eAAa3ob,OAASA,QAAS,GAAIizd,gBAA6B,CAC5DE,SAAUT,MAEd9pC,MAAOqqC,WCdX3H,kBAA4B,cAAewN,IC0B3C,IACI5vC,sBAAuBA,IACvBoiC,GAGJA,wBAAkC,CAAC,eAAgB,UAAW,YAAa,gBAAiB,gBAAiB,kBAAmB,mBAAoB,mBAAoB,UAAW,WAAY,eAAgB,aAAc,aAAc,OAAQ,mBAAoB,gBAAiB,YAAa,cAAe,eAAgB,UAAW,SAAU,OAAQ,QAAS,4BAA6B,cAAe,qBAAsB,gBAAiB,UAAW,eAAgB,SAAU,aACle,IAAIqyR,GAAWliuB,WAAe,CAC1BmD,iBAJwB,UAKxBhX,qBACI,IAAI7hF,EAAS1S,KAAKm5D,WAClB2P,gBAAKmve,WAAuB,YACpBz/hB,SAAWxY,KAAKixF,kBAChB5xE,SAAO,EAAM3M,EAAQ1S,KAAKixF,oBAG3Bv+E,GAEX0hF,wBACIp0F,KAAKm5D,YACL95C,QAAOrf,KAAKq0F,mBAAoB,CAC5B,4BAA6B,CACzB4B,MAAO,OACPz7D,QAAS,yDAEb,8BAA+B,CAC3By7D,MAAO,OACPz7D,QAAS,4DAIrBo6D,uBACI,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,IAAMqrE,KACd99G,QAAS,CACL8+gB,cAAc,EACd9gC,iBAAiB,EACjBjnX,aAAc,CACV7oF,OAAQ,KAEZknf,QAAS,CACLz1Z,UAAU,QAK1Bz7D,QACI91F,KAAKm5D,WACAn5D,KAAKszD,OAAO,gCACb+wd,0CAAqDrkhB,MAEzDi4iB,kBAA4Bj4iB,KAAMi4iB,IAClCpiC,GAAsB71gB,KAAM,SAEhCyjG,OAAQn3C,MACRiqC,eAAe59E,GACXk9f,GAAsB71gB,KAAM,gBAAiB,CAAC2Y,IACzCA,EAAKi1E,SACN5tF,KAAKm5D,SAASxgD,IAGtBkpF,oBACI7hG,KAAKi0I,kBAAiB,IAE1BryC,mBAAmB7yB,GACXA,GACA/uE,KAAKi0I,oBAGb1xC,cACIviG,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAKm7D,WAAWvtD,SAlEH,eAmEb5N,KAAK+xgB,QAAQ,YAAY9/c,OAAOjyD,KAAKm7D,aAEzCsvC,qBACIzqG,KAAK+xgB,QAAQ,YAAYt8e,UAE7B00E,iBACI,IAAI72B,EAAOtzE,MACXwqG,SAAY,KACRl3B,EAAKm3B,wBAGb/mF,WACI1jB,KAAKm5D,WACL08c,GAAsB71gB,KAAM,YAEhCouG,UACI,OAAOpuG,KAAKmugB,cAAc,QAAQ//Z,WAEtCv2C,cACI73D,KAAKm5D,WACL08c,GAAsB71gB,KAAM,gBAEhC+3D,YACI89c,GAAsB71gB,KAAM,aAC5BA,KAAKm5D,YAETg1c,cAAc9qgB,GACV,OAAOrD,KAAKyxgB,aAAapugB,IAE7B0ugB,QAAQ1ugB,GACJ,OAAOrD,KAAKgygB,OAAO3ugB,IAEvBg5F,MAAM70F,GACFxH,KAAKm5D,cACDz7C,OAAUlW,IACVxH,KAAKmugB,cAAc,sBAAsB9xa,MAAM70F,MAI3D8i0B,GAASl2T,eAAiB6jC,uBAAiCA,IAC3D/ja,GAAkB,aAAco2rB,IAChC,UAAeA,GCvIf,IAAIC,IAAiB3iR,iDACrB3P,kBAA4B,gBAAgB54hB,SAAO,EAAM,GAAIuoiB,GAAoB,CAC7E1oO,UAAW,CACPo2L,YAAa,CACTuyC,aAAc,CACVvjX,WAAWprK,GACPqxyB,IAAe7uyB,MAAM17B,KAAMD,WAC3BC,KAAKszD,OAAO,kBAAmBp6B,EAAM+tyB,gBAAkB/tyB,EAAM+tyB,gBAAgB3/zB,QAAU,MAG/F8E,KAAM,CACF6phB,eACI,IAAI/8f,EAAQl5B,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACtC,OAAKC,KAAKszD,OAAO,mBACbp6B,EAAM+tyB,gBAAkBjn0B,KAAKszD,OAAO,oBAEjCp6B,SCnB3B++gB,kBAA4B,gBAAiBknB,ICG7ClnB,kBAA4B,gBAAgB54hB,SAAO,EAAM,GAAIqqjB,IAAoB,CAC7ExqP,UAAW,CACPo2L,YAAa,CACTlpgB,KAAM,CACFq7jB,gBACI,OAAOznkB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErC0iiB,gBACI,OAAOziiB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErC8iiB,mBACI,OAAO7iiB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,kBCdrDk4iB,kBAA4B,gBAAiBy1C,KCc7C,IAAI88O,IAAuC,6BAGvCC,IAAoBx2O,+BAA0C,CAC9D0E,iBAAiBxmlB,GACb,IAAIyK,EAAO5c,KAAKm5D,SAAShnD,GACzByK,SAAKxQ,KAAO,CACR+F,IAAKA,GAETyK,EAAKuf,SAAW,GAChBvf,EAAKg1F,MAAQ,EACbh1F,EAAKk8e,UAAY94f,KAAKszD,OAAO,aACtB12C,GAEX4sjB,iBAAkB,KAAM,EACxB8vB,2BAA2B5ikB,EAAQoie,QAC3B,OAAwBA,IAAc94f,KAAKszD,OAAO,aAClD58B,EAAO4uH,eAAiBwzW,EAExB94f,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAGlC84lB,mBAAmBxkiB,EAAO39B,GACtB,IACIiwgB,EADiB3miB,KAAKmugB,cAAc,QACD3xZ,aACnCs8Y,EAAY,MAAS6tC,OAAoD,EAASA,EAAkB6hS,YAAY9xyB,EAAOtqB,MAC3H,QAAI,OAAwB0sf,IAAc94f,KAAKszD,OAAO,aAAc,CAChE,IAAIu/Y,EAAWwxE,iBAA4BvrB,EAAWzkc,GACtD,OAAIw+Y,GAAY,GAAK7yc,KAAKu8G,gBAAgBkrd,cAAc3uE,GAC7CjmD,EAAW,GAEf,EAEX,OAAO7yc,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErC4/lB,uBACI,IAAIjtlB,EAAS1S,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACnCm2lB,EAAiBl2lB,KAAKszD,OAAO,WACjC,OAAO5gD,GAAUwjlB,EAAevlc,aAEpCilc,wBAAwBzxiB,EAAQvyB,GAC5B,IAAIlf,EAAS1S,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAEnCmkJ,IAAKA,GACLtyH,EACJ,MAAI,QAAUuyB,EAAO9gD,KACVrD,KAAK2wJ,YAAY/+H,IAAYsyH,EAAI2uT,WAAa7yc,KAAKi4lB,6BAA+B/zc,EAAItkB,SAAWskB,EAAIw2X,UAEzGhogB,GAEX0jlB,mBAAmBxkkB,GACf,IAAIy1H,EAAUrnJ,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACxC,OAAK6xB,EAAQs9e,OAAO7nX,SAChBA,EAAQ7lH,QAAQxhC,KAAK+1lB,iBAAiB,MAAOnkkB,IAE1Cy1H,GAEXg3c,oBAAoB3nkB,GAChB,IAAI4lF,EAAiBt8G,KAAKu8G,gBACtB7pG,EAAS1S,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACvC,GAAI22B,GA1DqB,WA0DXA,EAAOjrB,KAAqC,CACtD,IAAI8J,EAAQ,aAAuD,EAAS+mG,EAAe/mG,QACvFpD,EAAM,MAASoD,OAA4B,EAASA,EAAMpD,MAC9D,OAAKuL,OAAUvL,GACX,MAAMoU,SAAa,SAG3B,OAAO7T,GAEXg4zB,iBAAiB73X,GACb,IACI3uT,EADiBlkJ,KAAKmugB,cAAc,QACfu3B,iBAAiB7yF,GAC1C,OAAO7yc,KAAK8rK,OAAO5nB,EAAMA,EAAI/xI,SAAM,IAEvC25J,OAAO35J,GACH,YAAI,QACAA,EAAMnS,KAAKszD,OAAO,cAEftzD,KAAKm5D,SAAS/+B,KAAKp6B,KAAMmS,IAEpCiolB,YAAYhulB,EAAM0sf,EAAWkhG,GACzB,IACI7giB,SAAUA,GACVn5D,KACA46f,EAAY56f,KAAKszD,OAAO,aACxBgpD,EAAiBt8G,KAAKmugB,cAAc,QAEpCw8T,EADoBrutB,EAAeE,aACCgptB,uBAExC,QAAI,KADJ1sU,EAAY6xU,EAAgBv+zB,KACA0sf,IAAc8B,IAAct+Y,EAAemrd,cAAc3uE,GAAY,CAC7F,IAAIvlb,EAAW,IAAIC,MACnB8oC,SAAe6rd,UAAUrvE,GAAW5kb,KAAK,KACrCn0B,WAAW,KACPoZ,EAAS/+B,KAAKp6B,KAAMoM,EAAM0sf,EAAWkhG,GAAiB9lhB,KAAKX,EAAS1/C,SAASsgD,KAAKZ,EAAS15B,YAEhGs6B,KAAKZ,EAAS15B,QACV05B,EAASz5B,UAEpB,OAAOqf,EAAS/+B,KAAKp6B,KAAMoM,EAAM0sf,EAAWkhG,IAEhDd,YAAYtnkB,EAASkne,GAIjB8xU,OAHqB5q0B,KAAKmugB,cAAc,QACD3xZ,aACAiptB,sBACvCmF,CAAeh5yB,EAAQxlB,KAAM0sf,GACtB94f,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErC4wJ,YAAY/+H,GACR,OAAO5xB,KAAK6imB,iBAAiB,cAAejxkB,IAEhD8jkB,yBAAyB7nF,GACrB,OAAO7tgB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAAc8tgB,EAAe/vb,QAAQ,IAAIj8D,OAAO2ozB,MAAuC/l0B,QAAUzE,KAAKi/gB,aAE3IqjF,6BACI,IAAIvsf,EAAQ/1G,KAAKm5D,SAASz9B,MAAM17B,MAChC+1G,SAAMttG,IAAM,iCACLstG,KAGX80tB,IAAmB52O,sCACnB62O,IAAsB72O,yCACtB82O,IAAgB,SAAS/0zB,GACzB,IAAI63f,GAAiBzyc,QAAEplD,EAAElL,MAAM9I,QAC3Bgp0B,EAAuB,eAAiBh1zB,EAAElL,MAAMW,KAAOq/zB,IAAsBD,IACjF,OAAIh9T,EAAe/vb,QAAQ,IAAIj8D,OA3HP,uBA2HsCpd,SAGtDwm0B,IAA+B7wyB,KAAKp6B,KAAMgW,EAAGg1zB,IAGzD,aAAwCh1zB,EAAGg1zB,GAEvC,QADqB5vwB,QAAEplD,EAAElL,MAAM9I,QACX87E,QAAQ,IAAIj8D,OAAO2ozB,MAAuC/l0B,SAC1Eum0B,EAAqB5wyB,KAAKp6B,KAAMgW,IACzB,GAIf,IAAIk1zB,OAAmB7rzB,MAAO,GAAI40kB,4BAAwC,CACtEm2O,0BAA0BrgvB,EAAYn4D,GAClC,IACIw5iB,EAAYx5iB,EAAQsyH,KADAlkJ,KAAKmjmB,mBACoB/3B,UAAUx5iB,EAAQsyH,IAAI2uT,UAEvE,QADgBjhb,EAAQqtf,WAAamsD,IAE1BprkB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAIzC+/gB,UAAU9pgB,GACF+0zB,IAAc3wyB,KAAKp6B,KAAMgW,IACzBhW,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAGlCgghB,aAAa/pgB,GACL+0zB,IAAc3wyB,KAAKp6B,KAAMgW,IACzBhW,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAItCk4iB,kBAA4B,UAAW,CACnChnd,eAAgB,KAAM5xE,SAAO,EAAM40kB,oBAAgC,CAC/DjtC,QAAS,CACL11Z,MAAO,CACHyd,aAAc/uD,UAA2B,sCAIrDs1Z,YAAa,CACT0xC,QAASyjR,KAEbvrf,UAAW,CACPo2L,eAAaj2f,OAAO,EAAM,GAAI40kB,yBAAqC,CAC/D7nlB,KAAM,CACFs4jB,kBACI,YAAKy+B,mBAAmB/qf,UACjBp4G,KAAKm5D,SAASz9B,MAAM17B,KAAMD,eAI7Cw1gB,MAAO,CACHnJ,SAAU8+T,IACVp7R,YAAamkD,mCCnMzBh8C,kBAA4B,kBAAmBusD,KCA/CvsD,kBAA4B,mBAAoBi3E,KCAhDj3E,kBAA4B,mBAAoB85E,KCGhD,IAAIo5M,IAA4B9rzB,QAAO,GAAIo5mB,yCACpC0yM,GAA0B1sQ,oBAC1B0sQ,GAA0Bj7c,gBACjC+nL,kBAA4B,aAAc,CACtChnd,eAAgBwniB,kBAChBnjH,YAAamjH,eACbv5S,UAAW,CACPo2L,YAAa,CACT0xC,QAASmkR,GACTpsR,cAAe05E,wCAEnBljH,MAAOkjH,sBCVf,IAAI2yM,IAAoBjjM,kBAEpBkjM,IAAoCljM,+BACxCA,+BAAoD9onB,QAAO,GAFtB8onB,8BAE0D,CAC3FuhM,sBACI,IAAIrkM,EAA0BrloB,KAAKi8G,aAAej8G,KAAKi8G,YAAY8ohB,yBACnEM,GAA2BA,EAAwB97mB,QACnDvpB,KAAKm5D,cAGbgvkB,gCAAqD9onB,QAAO,GAAIgszB,IAAmC,CAC/F3mQ,kBACI,OAAO1kkB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAAWm0E,KAAK,KAC7C,IAAI0ujB,EAAoB5ioB,KAAK29nB,uBAC7BiF,GAAqB,GAAK5ioB,KAAKqjoB,qBAAqBT,QAIhEl3G,kBAAwB,oBAAoBrsgB,QAAO,GAAI8onB,GAAwB,CAC3El3iB,eAAgB,KAAM5xE,SAAO,EAAM+rzB,MAAqB,CACpD76R,UAAW,CACPthiB,KAAM,gBAIlB03hB,WAAyBwhG,gCC7BzBrgS,kBAAoB,YAAa6xS,KCAjC7xS,kBAAoB,eAAgBw3S,KCApCrnG,kBAA4B,aAAc4vG,KCA1C//S,kBAAoB,gBAAiBunT,KCArCvnT,kBAAoB,cAAe8pT,KCAnC35G,kBAA4B,QAASulH,KCArCvlH,kBAA4B,4BAA6B+lH,ICAzDl2T,kBAAoB,eAAgB0+U,KCApCvuI,kBAA4B,aAAcwvI,KCW1C,IAGIojJ,IAAmBjgR,sCACnB0gR,IAA4B1gR,iDAC5B2gR,IAAa,SAAS9gvB,EAAOv9B,GAC7B,QAASu9B,EAAM3jE,OAAO3U,GAAOA,IAAQ+6C,GAAYzoD,QAErDwziB,kBAA4B,aAAa54hB,SAAO,EAAM,GAAIuriB,GAAiB,CACvE35d,eAAgB,KAAM5xE,SAAO,EAAMuriB,oBAAkC,CACjE50W,UAAW,CACPjuC,mBAAoB,SACpBF,WAAW,KAGnBq3K,UAAW,CACPo2L,YAAa,CACTlpgB,KAAM,CACF04gB,mBAAmB9ugB,GACf,IAAIgyiB,EAAsBhojB,KAAKmugB,cAAc,aAClB65C,EAAoBwjR,0BACjBx1zB,GAAK,yBAA2BA,EAAEosgB,aAC5D4lC,EAAoByjR,qBAAqB,CACrCn0sB,iBAAkBt3H,KAAKszD,OAAO,qBAGtCg4wB,IAA0B5vyB,MAAM17B,KAAMD,YAE1Csp0B,kBACI,IAAI/1vB,EAAOtzE,KACP89C,EAAIw1B,EAAKna,SAASz9B,MAAM43C,EAAMvzE,WAC9BiojB,EAAsB10e,EAAK66b,cAAc,aAE7C,OAD2B65C,EAAoBwjR,wBAE3C1txB,EAAEo2B,KAAK,KACH8ze,EAAoByjR,qBAAqB,CACrCn0sB,iBAAkBhkD,EAAKhgB,OAAO,uBAInCxV,IAGfk4J,UAAW,CACP/hM,OACIjU,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAK0r0B,qBAAuB,IAEhCngR,sBACI,IAAIxniB,EAAS/jB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAEnCg5H,WAAYA,GACZh1G,EACJA,SAAOg1G,WAAa4ysB,IAChB,IAAIj5zB,EACJ,OAAIi5zB,IACAj5zB,EAAS1S,KAAKu8G,gBAAgB6rb,sBAElC11hB,IAAWA,EAASqmH,EAAWr9F,MAAM17B,KAAMD,WAAW2gB,IAAI9D,GAAQA,EAAKxQ,OAChEsG,GAAU,IAErBqR,EAAO80G,eAAiBj8G,IACpB,IAAIzK,EAAMnS,KAAKu8G,gBAAgB1B,MAAMj+F,GACrC,OAAO5c,KAAKuqjB,cAAcp4iB,IAE9B4R,EAAOy1G,iBAAmB58G,KAAUA,EACpCmH,EAAOw1G,YAAc38G,GAAQA,EAC7BmH,EAAOw/G,iBAAmB,KAAM,EACzBx/G,GAEXymiB,8BAA8Bzge,EAAYpzD,GACtC,IAAIy1e,EAAWpsgB,KAAKwO,UAAUujgB,QAAQ,YACtChob,EAAWn8E,SAvEC,0BAwEZ,IAAIsqjB,EAAY9rD,EAAS2hD,sBAAsBhke,EAAY,CACvDn9E,MAAO+pB,EAAMutH,IAAIngB,WACjBmgB,IAAKvtH,EAAMutH,IACXgrX,OAAQv4e,EAAMu4e,SAElB9C,EAAS0hD,0BAA0BoK,IAEvClN,oBAAqB1+f,MACrBs/wB,wBACI,IACIp9zB,UAAWA,GACXxO,KACA2wB,EAAOniB,EAAU8tE,cACjBmX,EAAQ,GACR16E,EAAO,GACPyyzB,EAAuBxr0B,KAAKwr0B,uBAChC76yB,UAAQsnhB,gBAA0BtnhB,EAAKwL,SAAUr7B,SACzC,IAAWA,EAAKqR,MAAQrR,EAAKiuE,SAAWy8vB,IACxCzyzB,EAAK1P,KAAKvI,EAAKqR,MAEdrR,EAAKiuE,UAGHy8vB,GAA+Bh9zB,EAAUi5jB,cAAc3mkB,EAAKqR,IAAKshF,KAErE16E,GAEX8+G,cAEI,GAAI,KADkB73H,KAAKszD,OAAO,oBAAsB,IAC9B7uD,OACtB,OAAO,EAEX,IACI+J,UAAWA,GACXxO,KACA6r0B,EAAc7r0B,KAAK4r0B,wBACnBJ,EAAuBxr0B,KAAKwr0B,uBAC5BM,GAAwB,EACxBC,EAAsBF,EAAY/kzB,OAAO3U,IACzC,IAAIo4iB,EAAgB/7iB,EAAU+7iB,cAAcp4iB,EAAKq5zB,GACjD,YAAI,QACAM,GAAwB,GAErBvhR,IAEX,OAAKwhR,EAAoBtn0B,OAGrBsn0B,EAAoBtn0B,SAAWon0B,EAAYpn0B,aAA/C,IAFWqn0B,QAAwB,GAOvCnnsB,YACI,IAAIknsB,EAAc7r0B,KAAK4r0B,wBAAwB9kzB,OAAO3U,IAAQnS,KAAKuqjB,cAAcp4iB,IACjF,YAAKgwQ,kBAAiB,GACfniR,KAAKgtjB,WAAW6+Q,GAAa,IAExC/msB,cACI,IAAI+msB,EAAc7r0B,KAAK4r0B,wBACvB,YAAKzpjB,kBAAiB,GACfniR,KAAKorjB,aAAaygR,IAE7Bv0sB,iBAAiB1qH,EAAO+qH,EAAUC,EAAYC,GAC1C,IAAIvkD,EAAOtzE,KACPoojB,EAAkB90e,EAAKhgB,OAAO,mBAE9BijD,EADuBv2G,KAAKwr0B,wBACal4vB,EAAK04vB,wBAAwB,CACtEjzzB,MAAM2E,SAAU9Q,GAASA,EAAQ,IAClC+qH,GAAWC,GACd,OAAIrhB,KAAmBrlD,SAAaqlD,EAAe6xc,gBAAiBA,IAChE90e,EAAK24vB,yBAA0B,EACxBjs0B,KAAKm5D,SAASo9C,EAAe6xc,iBAAiB,GAAO,GAAO,GAAOt0e,OAAO,KAC7ER,EAAK24vB,yBAA0B,IAChC/3vB,KAAK7f,IACJkiD,EAAeq2c,iBAAmBv4f,EAClCif,EAAKm2e,sBAAsBlzc,MAG5Bv2G,KAAKm5D,SAASvsD,EAAO+qH,EAAUC,EAAYC,IAEtD+K,oBAAoBhW,EAAWs/sB,GAC3B,IAAIV,EAAuBxr0B,KAAKwr0B,uBAC5BrywB,EAAWn5D,KAAKm5D,SAASlQ,KAAKjpD,MAClC,GAAIwr0B,IAAyBU,EAAa56zB,MAAO,CAC7C,IAAIa,EAAMnS,KAAKu8G,gBAAgB+qb,iBAAiB16a,GAChD,OAAO5sH,KAAKs3H,iBAAiBnlH,GAAK,EAAMnS,KAAKuqjB,cAAcp4iB,IAAM+hE,KAAK,KAClEl0E,KAAKuqjB,cAAcp4iB,IAAQgnD,EAASyzD,EAAWs/sB,GAAc,KAGrE,OAAOls0B,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErCos0B,4BAA4Brr0B,EAAMijI,GAC9B,IAAIzwD,EAAOtzE,KACPk5B,EAAQ6qG,EACRhjI,EAAaD,EAAKiM,OAClBhM,IACIA,EAAWo7B,SAAS13B,OAAS,KACzB,MAEAy0B,IADuBn4B,EAAWo7B,SAAS3I,KAAKk/J,GAAap/G,EAAKo4vB,qBAAqBh5oB,EAAUvgL,YACtE,GACpB,QAEP+mB,GAD0Bn4B,EAAWo7B,SAAS3I,KAAKk/J,IAAcp/G,EAAKo4vB,qBAAqBh5oB,EAAUvgL,YACvE,IAGtCnS,KAAK0r0B,qBAAqB3q0B,EAAWoR,KAAO+mB,EACxCn4B,EAAWgM,QAAUhM,EAAWgM,OAAO6kG,OAAS,GAChD5xG,KAAKms0B,4BAA4Bpr0B,EAAYm4B,KAIzDkzyB,8BAA8Btr0B,EAAMijI,GAChC,IAAIzwD,EAAOtzE,MAEPm8B,SAAUA,GACVr7B,EACJq7B,GAAYA,EAASn2B,QAAQ0sL,IACzBp/G,EAAKo4vB,qBAAqBh5oB,EAAUvgL,KAAO4xH,EACvC2uD,EAAUv2J,SAAS13B,OAAS,GAC5B6uE,EAAK84vB,8BAA8B15oB,EAAW3uD,MAI1DsosB,0BAA0BtzzB,EAAMgrH,GAE5B,QADIznB,EAAiBt8G,KAAKu8G,gBACjB/3G,EAAI,EAAGA,EAAIuU,EAAKtU,OAAQD,IAAK,CAClCxE,KAAK0r0B,qBAAqB3yzB,EAAKvU,IAAMu/H,EACrC,IAAIjjI,EAAOw7G,EAAewgZ,aAAa/jf,EAAKvU,IACxC1D,IACAd,KAAKms0B,4BAA4Brr0B,EAAMijI,GACvC/jI,KAAKos0B,8BAA8Btr0B,EAAMijI,MAIrDuosB,uBAAuBn6zB,EAAKmlH,EAAkBi1sB,GAK1C,QAJIC,EACA1r0B,EAAOd,KAAKu8G,gBAAgBugZ,aAAa3qf,GACzCpR,EAAaD,GAAQA,EAAKiM,OAC1B2F,EAAS,GACN3R,GAAcA,EAAW6wG,OAAS,GAAG,CAGxC,GAFAl/F,EAAO8uB,QAAQzgC,EAAWoR,KACTo6zB,GAAWhB,IAAWj0sB,EAAkBv2H,EAAWoR,MAAQnS,KAAKuqjB,cAAcxpjB,EAAWoR,KAAOmlH,EAAiB9kH,QAAQzR,EAAWoR,MAAQ,EAC7I,CAEZO,EAAS1S,KAAKss0B,wBADdE,EAAqBzr0B,GACmCoR,IAAKmlH,EAAkBi1sB,GAAS1qzB,OAAOnP,GAC/F,SACO65zB,EACP,MAEJxr0B,EAAaA,EAAWgM,OAE5B,OAAOy/zB,GAAsB95zB,GAAU,IAE3C+5zB,sBAAsBt6zB,EAAKu6zB,GACvB,IAAInD,EAAY,GACZzo0B,EAAOd,KAAKu8G,gBAAgBugZ,aAAa3qf,GAC7CrR,UAAQm3iB,gBAA0Bn3iB,EAAKq7B,SAAUu2J,IAC7C,IAAIi6oB,EAAiBD,EAAal6zB,QAAQkgL,EAAUvgL,KACpD,OAAIw6zB,EAAiB,GACjBpD,EAAUlg0B,KAAKqpL,EAAUvgL,KAEtBw6zB,EAAiB,GAAKA,EAAiB,QAAK,IAAW3s0B,KAAK0r0B,qBAAqBh5oB,EAAUvgL,OAE/Fo3zB,GAEXqD,qBAAqBz6zB,EAAKwG,GACtB,IAAI+zzB,EAAe,CAACv6zB,GAChB06zB,EAAiB7s0B,KAAKss0B,uBAAuBn6zB,EAAKwG,EAAKyviB,iBAC3D,GAAIykR,EAAepo0B,OAAQ,EACvBio0B,EAAeA,EAAa7qzB,OAAOgrzB,IACtB7m0B,QAAQmM,IACjB,IAAII,EAAQoG,EAAKyviB,gBAAgB51iB,QAAQL,GACrCI,GAAS,GACToG,EAAKyviB,gBAAgB31iB,OAAOF,EAAO,KAG3C,IAAIg3zB,EAAYvp0B,KAAKys0B,sBAAsBI,EAAe,GAAIH,GAC9D/zzB,EAAKyviB,gBAAkBzviB,EAAKyviB,gBAAgBvmiB,OAAO0nzB,KAG3DuD,uBAAuB36zB,EAAKwG,GACxB,IAAI7X,EAAOd,KAAKu8G,gBAAgBugZ,aAAa3qf,GAC7CrR,GAAQA,EAAKq7B,SAASn2B,QAAQ0sL,IAC1B,IAAIngL,EAAQoG,EAAKyviB,gBAAgB51iB,QAAQkgL,EAAUvgL,KAC/CI,GAAS,GACToG,EAAKyviB,gBAAgB31iB,OAAOF,EAAO,GAEvCvS,KAAK8s0B,uBAAuBp6oB,EAAUvgL,IAAKwG,MAGnDo0zB,8BAA8Bh0zB,EAAMJ,EAAMg/G,EAAUq1sB,GAChD,IAAI15vB,EAAOtzE,KACX+Y,EAAK/S,QAAQmM,IACT,IAAIwlH,GAAYrkD,EAAKi3e,cAAcp4iB,KAAS66zB,EAG5C15vB,GAAKw5vB,uBAAuB36zB,EAAKwG,GACjC,IAAIpG,EAAQoG,EAAKyviB,gBAAgB51iB,QAAQL,GACrC66zB,GACIz6zB,EAAQ,GACRoG,EAAKyviB,gBAAgB/+iB,KAAK8I,GAE9BwG,EAAKk0iB,uBAAuBxjjB,KAAK8I,KAE7BI,GAAS,GACToG,EAAKyviB,gBAAgB31iB,OAAOF,EAAO,GAEvCoG,EAAKm0iB,yBAAyBzjjB,KAAK8I,GACnCmhE,EAAKs5vB,qBAAqBz6zB,EAAKwG,QAI3CqzzB,wBAAwBrzzB,EAAMg/G,EAAUq1sB,GACpC,IAAIt6zB,EACAqG,EAAOnQ,MAAM8B,QAAQiO,EAAKI,MAAQJ,EAAKI,KAAO,CAACJ,EAAKI,MACpDqviB,EAAkBpojB,KAAKszD,OAAO,oBAAsB,GACxD,OAAIv6C,EAAKtU,SACLiO,EAAS,CACLm6iB,uBAAwB,GACxBC,yBAA0B,GAC1B1E,gBAAiBzwb,EAAWywb,EAAgB9gjB,MAAM,GAAK,IAE3DtH,KAAK+s0B,8BAA8Bh0zB,EAAMrG,EAAQilH,EAAUq1sB,IAExDt6zB,GAEX+zH,qBAAqB9tH,GACjB3Y,KAAKyr0B,qBAAqB9yzB,GAC1B3Y,KAAKm5D,SAASxgD,IAElB8wiB,wBACSzpjB,KAAKis0B,yBACNjs0B,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAGlCkt0B,kBAAmBh+zB,GAAQ,eAAiBA,EAC5Ci+zB,sBAAsBn0zB,GAClB,IAAIrG,EAAS,GACTsqf,EAAgB,GACpBjkf,SAAK/S,QAAQmM,IACJ6qf,EAAc7qf,KACf6qf,EAAc7qf,IAAO,EACrBO,EAAOrJ,KAAK8I,MAGbO,GAEXy6zB,iBAAiBh7zB,GACb,IAAIo3zB,EAAY,GACZzo0B,EAAOd,KAAKu8G,gBAAgBugZ,aAAa3qf,GAC7CrR,UAAQm3iB,gBAA0Bn3iB,EAAKq7B,SAAUu2J,IAC7C62oB,EAAUlg0B,KAAKqpL,EAAUvgL,OAC1B,GACIo3zB,GAEX6D,uBAAuBr0zB,GACnB,IAAIrG,EAAS,GACbqG,SAAK/S,QAAQmM,IACT,IAAIk7zB,EAAart0B,KAAKss0B,uBAAuBn6zB,EAAK,IAAI,GAClDo3zB,EAAYvp0B,KAAKmt0B,iBAAiBh7zB,GACtCO,EAAOrJ,KAAKqyB,MAAMhpB,EAAQ26zB,EAAWxrzB,OAAO,CAAC1P,GAAMo3zB,MAEvD72zB,EAAS1S,KAAKkt0B,sBAAsBx6zB,IAGxC46zB,0BAA0Bv0zB,GACtB,IAAIu6D,EAAOtzE,KACP0S,EAAS,GACbqG,SAAK/S,QAAQmM,KACQmhE,EAAKg5vB,uBAAuBn6zB,EAAK4G,GACtCtU,QAAUiO,EAAOrJ,KAAK8I,KAE/BO,GAEX66zB,wBAAwBx0zB,GACpB,IAAIrG,EAAS,GACT4pG,EAAiBt8G,KAAKu8G,gBAC1BxjG,SAAK/S,QAAQmM,IACT,IAAIrR,EAAOw7G,EAAewgZ,aAAa3qf,GACvCrR,IAASA,EAAK85B,aAAeloB,EAAOrJ,KAAK8I,KAEtCO,GAEX84zB,uBACI,IAAIrmsB,EAAgBnlI,KAAKszD,OAAO,kBAC5BkrgB,EAAcx+jB,KAAKszD,OAAO,uBAC9B,MAAO,gBAAgCkrgB,GAE3CitQ,qBAAqB75yB,GACjB,IAAIslG,EAAkBtlG,EAAQslG,iBAAmB,GAC7CI,EAAmB1lG,EAAQ0lG,kBAAoB,GAC/Ct3H,KAAKwr0B,yBACLxr0B,KAAKqs0B,0BAA0Bn1sB,GAAiB,GAChDl3H,KAAKqs0B,0BAA0B/0sB,GAAkB,KAGzDizb,cAAcp4iB,EAAKq5zB,GACf,IAAI94zB,EAAS1S,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAEvC,OADAyr0B,EAAuB,QAAmEA,EAAuBxr0B,KAAKwr0B,wBACjH94zB,GAAU84zB,EACPr5zB,KAAOnS,KAAK0r0B,sBACL1r0B,KAAK0r0B,qBAAqBv5zB,GAIlCO,GAEXw6iB,mBAAmBj+iB,GACf,IAAKjP,KAAKu8G,gBACN,MAAO,GAEX,IAAI6rc,EAAkBpojB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAChD,OAAIkP,IACIjP,KAAKwr0B,yBACLpjR,EAAkBpojB,KAAKot0B,uBAAuBhlR,IAE9C,YACI,qBAAuBn5iB,EACvBm5iB,EAAkBpojB,KAAKst0B,0BAA0BllR,GAC1CpojB,KAAKit0B,kBAAkBh+zB,KAC9Bm5iB,EAAkBpojB,KAAKut0B,wBAAwBnlR,MAIpDA,GAEXkD,oBAAoBr8iB,GAChB,IAAIqtG,EAAiBt8G,KAAKu8G,gBACtBwlB,EAAe/hI,KAAKktjB,mBAAmBj+iB,IAAS,GAChD29iB,EAAmB,GACvB7qb,SAAa/7H,QAAQmM,IACjB,IAAIrR,EAAOw7G,EAAewgZ,aAAa3qf,GACvCrR,GAAQ8rjB,EAAiBvjjB,KAAKvI,EAAKsL,QAEhCwgjB,GAEXx0c,UACI,YAAKsztB,qBAAuB,GACrB1r0B,KAAKm5D,SAASz9B,MAAM17B,KAAMD,cAI7Cw1gB,MAAO,CACHtC,kBAAmB,CACf8N,iBAAiBjyd,EAAUl9B,GACvB,IAAI0hD,EAAOtzE,KAEPghhB,EAAoBhhhB,KAAKm5D,SAASrK,EAAUl9B,GAC5CozyB,EAAuB1xvB,EAAKmrc,mBAAmBqmT,0BACnD,OAAI9jT,GAAqB,aAAqB5H,SAAWxnf,EAAQs9e,OAAO38f,QAAUyyzB,EAC7D,CACb/ywB,OAAOrgC,GACC,aAAe0hD,EAAKhgB,OAAO,mBAC3BggB,EAAKk6vB,gBAAgB57yB,EAAQsC,UAAWtC,EAAQ+E,OAEpDqqf,EAAkB/ud,OAAOrgC,KAIhBovf,GAIzBwsT,gBAAgBp6X,EAAOxhb,GACnBwhb,EAAMxlc,SAtbM,0BAubZ5N,KAAK0qjB,yBAAyBt3G,IAElCq3E,mBAAmB54c,GACf,OAAO7xE,KAAKm5D,SAAS0Y,KAAaA,EAAQiM,QAAQ,IAAIj8D,OAxb9C,uBAwb6Epd,SAG7F2ngB,SAAU,CACN+9T,aAAa3rjB,EAAgB5sP,GACzB,YAAKunC,SAASz9B,MAAM17B,KAAMD,YACrB6xB,EAAQsyH,IAAIw2X,UAAY,aAAe16gB,KAAKszD,OAAO,mBACpDtzD,KAAKmugB,cAAc,aAAaq8C,8BAA8BhsS,EAAgB5sP,GAE3E4sP,GAEXshQ,UAAU9pgB,GACN,IAAI63f,GAAiBzyc,QAAEplD,EAAElL,MAAM9I,QAC3BhC,KAAKqq0B,aAAax8T,GAClB7tgB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAE1B8q0B,IAAiBnvyB,MAAM17B,KAAMD,kBCrdrD+nW,kBAAoB,SAAUiqT,KCG9BjqT,kBAAoB,sBAAsBzoV,SAAO,EAAM,GAAI6opB,IAA0B,CACjFhpV,UAAW,CACPo2L,YAAa,CACT6yJ,mBAAoB,CAChBmE,sBAAsB18mB,EAAWqvd,GAC7B,IAAIpsE,EAAW7yc,KAAKktqB,qBAChB5wjB,EAAiBt8G,KAAKu8G,gBAC1B,IAAI3sD,EAAU5/B,KASV,OAAOhwB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WARjC,IAAIotqB,EAAgBntqB,KAAKotqB,uBAAuBx9mB,EAAUp8C,SACtDrB,EAAMmqG,EAAegrb,iBAAiBz0F,GACtC,gBACAv2V,EAAe6rd,UAAUh2jB,GAEzBmqG,EAAe8rd,YAAYj2jB,UChBvD8liB,kBAA4B,iBAAkB23I,KCgB9C9nV,kBAAoB,SAASzoV,SAAO,EAAM,GAAIi8qB,GAAa,CACvDp8W,UAAW,CACPo2L,YAAa,CACTlpgB,KAAM,CACFs4jB,gBAAgBvyjB,GACZ,OAAInS,KAAKszD,OAAO,sBAAwBtzD,KAAKynkB,cAAct1jB,IACnDnS,KAAKyt0B,oBAAoBt7zB,IACzBnS,KAAKszD,OAAO,gBAAiBnhD,GAG9BnS,KAAKm5D,SAASz9B,MAAM17B,KAAMD,YAErC0t0B,oBAAoB30U,GAKhB,QAJI4vD,EAAgB1ojB,KAAKszD,OAAO,iBAC5Bu/Y,EAAW7yc,KAAKuniB,iBAAiBmhB,GACjC0yI,EAAavoP,GAAY,GAAK7yc,KAAK0liB,iBAAiB7yF,GACpD9lc,EAASqurB,GAAcA,EAAWt6rB,KAAKiM,OACpCA,GAAQ,CACX,GAAIA,EAAOoF,MAAQ2mf,EACf,OAAO,EAEX/rf,EAASA,EAAOA,OAEpB,OAAO,GAEX+uuB,aAAa3puB,GACT,IAAIqqG,EAAax8G,KAAKi8G,YAClBn7G,EAAOd,KAAK88f,aAAa3qf,GACzB2rC,EAAI,IAAI01B,MACZ,OAAI1yE,EACAg9C,EAAEjqB,QAAQ/yB,EAAKiM,OAASjM,EAAKiM,OAAOoF,SAAM,GAE1CqqG,EAAW9rE,KAAK,CACZ5pB,OAAQ,CAAC01F,EAAW8otB,aAAc,IAAKnzzB,KACxC+hE,KAAK7f,IACJ,IAAIq5wB,EAAar5wB,EAAM,GACnBq5wB,EACA5vxB,EAAEjqB,QAAQ2oF,EAAWgstB,YAAYkF,IAEjC5vxB,EAAEjqB,YAEPsgD,KAAKr2B,EAAEjE,QAEPiE,EAAEhE,WAEb6zxB,iBAAiBx7zB,GACb,IAAImhE,EAAOtzE,KACPw8G,EAAalpC,EAAK2oC,YAClBn+D,EAAI,IAAI01B,MACZF,SAAKwoqB,aAAa3puB,GAAK+hE,KAAK4kb,IACpBt8Y,QAAc,OAAwBs8Y,IAAcxlb,EAAKhgB,OAAO,cAChEkpD,EAAWsstB,sBAAuB,EAClCx1vB,EAAK60f,UAAUrvE,GACft8Y,EAAWsstB,sBAAuB,EAClCx1vB,EAAKq6vB,iBAAiB70U,GAAW5kb,KAAKp2B,EAAEjqB,SAASsgD,KAAKr2B,EAAEjE,SAExDiE,EAAEjqB,YAEPsgD,KAAKr2B,EAAEjE,QACHiE,EAAEhE,WAEbqgpB,kBAAkBhorB,GACd,IAAImhE,EAAOtzE,KACPw8G,EAAalpC,EAAK2oC,YAClBn+D,EAAI,IAAI01B,MACZF,SAAKq6vB,iBAAiBx7zB,GAAK+hE,KAAK,KAC5BsoC,EAAW9rE,KAAK,CACZq1xB,UAAW,KACZ7xvB,KAAKp/B,IACJ,IAAIq1B,EA9EhC,aAAmB9V,EAAO3uD,GACtB,IAAIgN,GAAS,EACb2hD,SAAMruD,QAAQ,CAAClF,EAAMyR,KACb7M,EAAS5E,KACT4R,EAASH,KAGVG,EAuE8B4oc,CAAUxma,EAAOh0C,GAAQwyE,EAAKunC,MAAM/5G,EAAKsL,QAAU+F,GAC5DmiG,GAAY,EACZnqC,GAAU,IACVmqC,EAAY/5F,KAAKo7J,MAAMxrG,EAASmJ,EAAKkhC,aAEzC12D,EAAEjqB,QAAQygF,KACXngC,KAAKr2B,EAAEjE,UACXs6B,KAAKr2B,EAAEjE,QACHiE,EAAEhE,iBC7F7B4xe,kBAAwB,cAAek6K,KCqBvC,MCvBAgoI,IDuBetD,IEzBR,UACHzq0B,YAAYgu0B,GACR,IAAIC,EACJ9t0B,KAAK+t0B,WAAY,EACjB/t0B,KAAKmS,IAAM07zB,EAAa17zB,IACxBnS,KAAKm8B,SAAW0xyB,EAAa1xyB,SAASzb,IAAI5f,GAAQA,EAAKqR,KACvDnS,KAAK84f,UAAY,QAAUg1U,EAAuBD,EAAa9g0B,cAAW,IAAW+g0B,OAAuB,EAASA,EAAqB37zB,IAE9IyoB,cACI,OAAO56B,KAAKm8B,SAAS13B,OAAS,EAElCzD,YAAYk4B,GACR,IAAI3mB,EAAQvS,KAAKm8B,SAAS3pB,QAAQ0mB,EAAM/mB,KACpCI,GAAQ,IACRvS,KAAKm8B,SAAWn8B,KAAKm8B,SAAS1pB,OAAOF,EAAO,IAGpDsnoB,MAAM3gnB,GAIF,SAHKA,GAASA,EAAM/mB,MAAQnS,KAAKmS,KAAO+mB,EAAM4/d,YAAc94f,KAAK84f,WAG7D94f,KAAKm8B,SAAS13B,SAAWy0B,EAAMiD,SAAS13B,QAAUzE,KAAKm8B,SAAS3I,KAAK,CAAC5mB,EAAO2F,IAAU3F,IAAUssB,EAAMiD,SAAS5pB,MAMrH,UACH1S,cACIG,KAAKgu0B,aAET16yB,QACItzB,KAAKgu0B,aAETC,WAAWn5xB,EAAO8ld,GACV56f,KAAKy5f,aAAemB,IACpB56f,KAAKgu0B,aACLhu0B,KAAKy5f,WAAamB,GAEtB56f,KAAKku0B,wBAAwBp5xB,EAAMp0B,IAAI5f,GAAQA,EAAKqR,MACpD2iC,EAAM9uC,QAAQlF,GAAQd,KAAKmu0B,WAAWrt0B,IACtCd,KAAKou0B,gBAETC,kBAAkBC,GACdtu0B,KAAKuu0B,eAAgB,EACrBvu0B,KAAKwu0B,cAAct1yB,IACXA,EAAM0B,gBAAkB0zyB,EAAa9mzB,SAAS0R,EAAM/mB,OACpD+mB,EAAM60yB,WAAY,EAClB/t0B,KAAKuu0B,eAAgB,KAIjCE,kBACI,GAAIzu0B,KAAKuu0B,cAAe,CACpB,IAAIx1zB,EAAO,GACX,YAAKy1zB,cAAct1yB,IACXA,EAAM0B,gBAAkB1B,EAAM60yB,WAC9Bh1zB,EAAK1P,KAAK6vB,EAAM/mB,OAGjB4G,EAEX,OAAO,KAEXi1zB,aACIhu0B,KAAK0u0B,UAAY,GACjB1u0B,KAAKuu0B,eAAgB,EAEzBI,cAAcx8zB,GACV,OAAOnS,KAAK0u0B,UAAUv8zB,GAE1B+7zB,wBAAwBU,GAChBA,GACA5u0B,KAAKwu0B,cAAct1yB,IACV01yB,EAAapnzB,SAAS0R,EAAM/mB,MAC7BnS,KAAK6u0B,yBAAyB31yB,KAK9C21yB,yBAAyB18zB,GACrB,IAAI+mB,EAAQl5B,KAAK2u0B,cAAcx8zB,GAC/B,GAAI+mB,EAAO,CACPA,EAAMiD,SAASn2B,QAAQgtB,GAAShzB,KAAK6u0B,yBAAyB77yB,IAC9D,IAAIjmB,EAAS/M,KAAK2u0B,cAAcz1yB,EAAM4/d,WAClC/rf,GACAA,EAAO/L,YAAYk4B,UAEhBl5B,KAAK0u0B,UAAUv8zB,IAG9Bg8zB,WAAWrt0B,GACP,IAAIgu0B,EAAY,IAAIC,IAAuBju0B,GACvCknc,EAAWhoc,KAAK2u0B,cAAc7t0B,EAAKqR,KACjC,SAA4C61b,EAAS6xM,MAAMi1L,KAC7D9u0B,KAAK0u0B,UAAU5t0B,EAAKqR,KAAO28zB,EAC3B9u0B,KAAKgv0B,sBAAsBlu0B,EAAKqR,MAGxC68zB,sBAAsB78zB,GAGlB,QAFI+mB,EAAQl5B,KAAK2u0B,cAAcx8zB,GAC3BpF,EAAS/M,KAAK2u0B,cAAc,aAAqC,EAASz1yB,EAAM4/d,WAC7E/rf,GACHA,EAAOgh0B,WAAY,EACnBhh0B,EAAS/M,KAAK2u0B,cAAc5h0B,EAAO+rf,WAG3Cs1U,gBACI/h0B,OAAO0M,KAAK/Y,KAAK0u0B,WAAW1o0B,QAAQmM,IAChC,IAAI+mB,EAAQl5B,KAAK2u0B,cAAcx8zB,GAC3B2mf,EAAY,aAAqC,EAAS5/d,EAAM4/d,UAChEA,IAAc94f,KAAKy5f,aAAez5f,KAAK2u0B,cAAc71U,IACrD94f,KAAK6u0B,yBAAyB18zB,KAI1Cq8zB,cAAc9o0B,GACV2G,OAAO0M,KAAK/Y,KAAK0u0B,WAAW1o0B,QAAQmM,IAChC,IAAI+mB,EAAQl5B,KAAK0u0B,UAAUv8zB,GACvB+mB,GACAxzB,EAASwzB,MChGzB,IAAIk+wB,GAAc,QAIX,UACHv3yB,YAAY43yB,GACRz3yB,KAAKk7yB,OAASzD,EACdz3yB,KAAKiv0B,WAAajv0B,KAAKk7yB,OAAO+zB,WAElCC,cACI,IACI70sB,QAASA,EACT8kY,aAAcA,GACdn/f,KAAKk7yB,OAAO5nvB,OAAO8jvB,IACvB,YAAKonB,UAAYx+zB,KAAKk7yB,OAAOvitB,iBAAiB34F,KAAKiv0B,WAAYE,IAAY,CACvE3ytB,WAAYx8G,KAAKov0B,iBAAiBpv0B,KAAKk7yB,OAAOm0B,UAAWh1sB,GACzDA,QAASA,EACTythB,mBAAmB,EACnB3oJ,aAAcA,EACdv3W,QAAS5nJ,KAAKowgB,aACd0jB,mBAAoB,aACpBh0d,OAAQ9/D,KAAKsv0B,aACb1vwB,MAAO5/D,KAAKk7yB,OAAO5nvB,OAAO,iBAC1B0iJ,UAAW,CACP/mM,KAAM21yB,oBAA6B5kzB,KAAKk7yB,OAAO5nvB,OAAO,oBAE1D80f,gBAAiBw8P,0BAAmC5kzB,KAAKk7yB,OAAO5nvB,OAAO,mBACvE+uG,QAASriK,KAAKk7yB,OAAO5nvB,OAAO,WAC5B64c,UAAWnsgB,KAAKk7yB,OAAO5nvB,OAAO,aAC9Bq1F,aAAc3oJ,KAAKk7yB,OAAO5nvB,OAAO,gBACjCi9e,UAAW,CACPrrY,cAAe,UACfj2J,KAAM,WAEV4khB,qBAAqB,EACrBh7X,eAAe,EACf63Y,aAAc1wiB,KAAKk7yB,OAAO5nvB,OAAO,gBACjCsnc,UAAW56f,KAAKk7yB,OAAO5nvB,OAAO,aAC9Bq1C,eAAgB3yF,IACZhW,KAAKy4wB,gBAAgBziwB,IAEzBghH,mBAAoBhhH,IAChBhW,KAAKuv0B,oBAAoBv5zB,IAE7B6wrB,eAAgB7wrB,IACZhW,KAAKwv0B,gBAAgBx5zB,IAEzBgxrB,cAAehxrB,IACXhW,KAAKyv0B,eAAez5zB,IAExByvrB,cAAezvrB,IACXhW,KAAK66wB,eAAe7kwB,IAExB8hiB,uBAAwB9hiB,IACpBhW,KAAK86wB,wBAAwB9kwB,IAEjC4wrB,WAAY5wrB,IACRhW,KAAK4msB,WAAW5wrB,IAEpB+wrB,cAAe/wrB,IACXhW,KAAK+msB,cAAc/wrB,IAEvB4zzB,mBAAoB5zzB,IAChBhW,KAAK0v0B,oBAAoB15zB,IAE7B25zB,6BAA6B,IAE1B3v0B,KAAKw+zB,UAEhBoR,wBACQ5v0B,KAAK6v0B,8BACL7v0B,KAAK8v0B,yBAAyB,CAC1Bth0B,UAAWxO,KAAKw+zB,mBAEbx+zB,KAAK6v0B,6BAGpBp3D,gBAAgBziwB,GACQhW,KAAKw+zB,UAErBx+zB,KAAK8v0B,yBAAyB95zB,GAE9BhW,KAAK6v0B,6BAA8B,EAEvC7v0B,KAAKk7yB,OAAO60B,wBAAwB/5zB,GAExC85zB,yBAAyB95zB,GACjBA,EAAExH,UAAUusG,kBACZ/6G,KAAKk7yB,OAAO80B,iBACZhw0B,KAAKiw0B,gBAAgBj6zB,EAAExH,YAE3BxO,KAAKk7yB,OAAOg1B,iBACZlw0B,KAAKk7yB,OAAOi1B,YAAY/N,wBAE5BmN,oBAAoBv5zB,GAChB,IAAI8myB,EAAiB9myB,EAAE62iB,uBAAuB,GAC9C7sjB,KAAKk7yB,OAAOymB,oBAAoB,iBAAkB7kB,GAClD98yB,KAAKk7yB,OAAOhjtB,8BAA8B,iBAAkB4ktB,GAC5D98yB,KAAKk7yB,OAAOjC,gBAAgB4D,4BAA4BC,GAE5D0yB,gBAAgBx5zB,GACZhW,KAAKk7yB,OAAOk1B,4BAA4Bp6zB,GAAG,GAE/Cy5zB,eAAez5zB,GACXhW,KAAKk7yB,OAAOk1B,4BAA4Bp6zB,GAAG,GAE/C6kwB,eAAe7kwB,GACP,SAAWA,EAAEojgB,SAAWpjgB,EAAElV,KAAKq7B,SAAS13B,OAAS,IACjD22D,QAAEplD,EAAE4pgB,YAAYhygB,SA3GA,4BA8GxBktwB,wBAAwB9kwB,GACpB,IAAImmwB,EAAQD,EACZ,GAAI,WAAalmwB,EAAEhU,OAGnB,CAAI,UAAY,QAAUm6wB,EAASnmwB,EAAEkuI,WAAQ,WAAoB,EAASi4nB,EAAO/iQ,UAC7Ep5gB,KAAKw7f,UAAU,kBAAmB,CAACxlf,EAAEkuI,IAAI93I,KAAKpM,KAAKk7yB,OAAO5nvB,OAAO,oBAErEt9C,EAAEq+C,MAAQ,GACV,IAAI29B,EAAO,CACP3zB,QAAQ,EACRvzD,MAAOkL,EAAElL,MACTW,KAAM,OACN0G,IAAK,QAAU+pwB,EAAUlmwB,EAAEkuI,WAAQ,WAAqB,EAASg4nB,EAAQ/pwB,IACzE6nB,SAAU,CACNpJ,EAAG5a,EAAElL,MAAM+gE,MACXrQ,EAAGxlD,EAAElL,MAAMghE,QAGnB9rE,KAAKk7yB,OAAOm1B,eAAer+uB,IAE/Bs9uB,aACI,OAAI5pwB,SAAU1lE,KAAKiv0B,eACRvpwB,OAAU1lE,KAAKiv0B,aAE1Bjv0B,KAAKk7yB,OAAO5pQ,YAAa5zhB,SAAU1d,KAAKk7yB,OAAO5nvB,OAAO,YAAc,UAAY4nvB,OAAO5nvB,OAAO,UACvFtzD,KAAKk7yB,OAAO5pQ,WAAa,OAAS,IAE7C2+R,gBAAgBK,GACZ,IAAIC,EAAqBD,EAASl/R,gBAC9Bm/R,IACAA,EAAmB1mxB,IAAI,UACvB0mxB,EAAmB3mxB,GAAG,SAAU5zC,IAC5BhW,KAAKww0B,UAAUx6zB,MAI3Bw6zB,UAAUC,GACN,IAAIC,EAA6B1w0B,KAAKk7yB,OAAO8O,WAAW2mB,uBACpDD,EAA2B1kwB,YAAcykwB,EAAmBji0B,UAAUw9D,cACtE0kwB,EAA2B1kwB,UAAYykwB,EAAmBji0B,UAAUw9D,aAG5E4kwB,0BAA0B9wwB,GACtB,IAAI4gO,EAAO1gS,KAAKw+zB,UAAUxsT,QAAUhygB,KAAKw+zB,UAAUxsT,OAAO5F,UACrD,MAAS1rO,OAA0B,EAASA,EAAK4yQ,cAAgBxze,IAClE4gO,EAAK4yQ,WAAaxze,GAG1B+wwB,gCACI,OAAO7w0B,KAAKk7yB,OAAO5nvB,OAAO,oCAE9B05f,WAAWj0iB,GACP/Y,KAAKw7f,UAAU,kBAAmBzif,GAEtCupP,SAASt2L,GACL,IAAIukwB,EAAqBvw0B,KAAKw+zB,UAAUptR,gBACxC,GAAIm/R,EAAoB,CACpB,IAAI91wB,EAAOuR,EAAYukwB,EAAmBvkwB,YACtCzxD,KAAKyjD,IAAIvD,IAvKW,GAwKpB81wB,EAAmBjukB,SAAS,CACxBhnM,KAAM,EACNC,IAAKd,KAKrBsvvB,iBAAiB39yB,GACb,IAAI04L,EAAc/kM,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GAC1E+w0B,EAAkB/w0B,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GAClF,IAAKC,KAAK6w0B,iCAAmC/roB,EACzC9kM,KAAKmiiB,cAAc/1hB,WACZ0k0B,EAAiB,CACxB,IAAI5+tB,EAAQlyG,KAAKw+zB,UAAUlrwB,OAAO,cAClCtzD,KAAKk7yB,OAAOnC,2BAA2B7msB,IAG/Ciwb,cAAc/1hB,GACVpM,KAAKw7f,UAAU,aAAcx7f,KAAKov0B,iBAAiBhj0B,IAEvDgj0B,iBAAiBhj0B,EAAM+F,GACnB,OAAO/F,GAAQ,IAAI+mG,GAAW,CAC1B59F,MAAO,IAAI+6F,GAAW,CAClBlkG,KAAMA,EACN+F,IAAKA,GAAOnS,KAAK+w0B,UAAU,eAIvCnqI,WAAW5wrB,GACPhW,KAAKk7yB,OAAOjC,gBAAgByD,qBAAqB1myB,EAAE7D,IAAK6D,EAAElL,OAE9Di8rB,cAAc/wrB,GACNhW,KAAKk7yB,OAAOjC,gBAAgBqD,wBAAwBtmyB,EAAE7D,IAAK6D,EAAElL,QAC7D9K,KAAKk7yB,OAAO8O,WAAWwY,eAAewO,qBAG9CC,mBACI,IAAIX,EAAWtw0B,KAAKw+zB,UAChB0S,EAAkB,aAA2C,EAASZ,EAAS5qS,iBAAiBjhiB,OACpG,GAAIys0B,EAAkB,EAAG,CACrB,IAAIp8xB,EAAQ90C,KAAKmx0B,cACbp4zB,EAAO/Y,KAAK+w0B,UAAU,mBAE1B,GADsBh4zB,GAAQ+7B,EAAMrwC,SAAWys0B,EAC1B,CACjB,IAAIh4yB,EAAQl5B,KAAKox0B,gBACjBl4yB,EAAM+0yB,WAAWn5xB,EAAO90C,KAAK+w0B,UAAU,cACvC73yB,EAAMm1yB,kBAAkBt1zB,KAIpC22zB,oBAAoB15zB,GAChB,IAAIkjB,EAAQl5B,KAAKox0B,gBACbC,EAAYn4yB,EAAMu1yB,kBAClB35xB,EAAQ90C,KAAKmx0B,cACjBj4yB,EAAM+0yB,WAAWn5xB,EAAO90C,KAAK+w0B,UAAU,cACvC,IAAIzC,EAAep1yB,EAAMu1yB,kBAIzB,GAHIH,GACAtu0B,KAAKw7f,UAAU,kBAAmB8yU,GAElCtu0B,KAAKsx0B,uBAAuBD,EAAW/C,GAAe,CACtD,IAAIiD,EAAgBz8xB,EAAMvhB,OAAO,CAACkzK,EAAU3lM,KACxC2lM,EAAS3lM,EAAKqR,MAAOm8zB,GAAeA,EAAa9mzB,SAAS1mB,EAAKqR,KACxDs0L,GACR,IACHzmM,KAAKk7yB,OAAO8O,WAAWwnB,wBAAwBD,GAEnDr4yB,EAAM5F,QAEV89yB,gBACI,OAAKpx0B,KAAKyx0B,aACNzx0B,KAAKyx0B,WAAa,IAAIC,KAEnB1x0B,KAAKyx0B,WAEhBN,cACI,IAAIQ,EAAiBC,EAAuBC,EACxCt8zB,EAAQ,QAAUo8zB,EAAkB3x0B,KAAKw+zB,iBAAc,IAAWmT,GAA2B,QAAUC,EAAwBD,EAAgB52tB,uBAAoB,WAA/E,EAA2H62tB,EAAsBr8zB,QACzO,IAAKA,GAAW,QAAUs8zB,EAAmB7x0B,KAAKw+zB,iBAAc,IAAWqT,IAAoBA,EAAiB/0U,aAC5G,MAAO,GAEX,IAAIn/X,GAAYhtC,SAAcp7E,EAAMpD,OACpC,OAAOoD,EAAMk7F,OAAO/vF,IAAI9D,GAAQ5c,KAAKw+zB,UAAU1hU,aAAan/X,EAAU/gH,KAAQkK,OAAOlK,KAAUA,GAEnG00zB,uBAAuBQ,EAAOC,GAC1B,OAAI,UAAkB,OAASA,MAG1B,MAASD,OAA4B,EAASA,EAAMrt0B,WAAa,MAASst0B,OAA4B,EAASA,EAAMtt0B,SAGnHqt0B,EAAMt+yB,KAAK,CAACrhB,EAAKI,IAAUJ,IAAQ4/zB,EAAMx/zB,KAEpDowzB,kBACI,OAAO3i0B,KAAKk7yB,OAAOsjB,UAAUh8uB,UAAUx+E,IAAI,GAAGolO,aAElDk5lB,eACI,IAAI/tX,EAAOv0c,KAAKw+zB,UAAUh8uB,UAAU/8C,KAAK,gBACrCq6B,EAASy0Y,EAAK9vc,OAAS6iE,GAAgBitY,EAAKn5b,OAAOpX,IAAI,IAAI87D,OA1QxC,GA2QvB,OAAKA,IACDA,EA5QmB,IA8QvB9/D,KAAK4w0B,0BAA0B9wwB,GACxBA,EAEXkywB,kBACI,OAAO1qwB,GAAgBtnE,KAAKw+zB,UAAUh8uB,UAAU/8C,KAAK,wBAAwBzhC,IAAI,IAAI87D,OAEzFswc,aACI,IAAIxoX,EAAU5nJ,KAAKk7yB,OAAO5nvB,OAAO,WACjC,GAAIs0F,EACA,QAASpjJ,EAAI,EAAGA,EAAIojJ,EAAQnjJ,OAAQD,IAAK,CACrC,IAAI0qgB,EAAStnX,EAAQpjJ,IACH0qgB,EAAOpvX,YAAc9/I,KAAKk7yB,OAAO5nvB,OAAO,GAAGzxC,OAAOu1xB,GAAa,cAAgBloS,EAAOpvX,YAAc9/I,KAAKk7yB,OAAO5nvB,OAAO,GAAGzxC,OAAOu1xB,GAAa,qBAC5IloS,EAAOz8Z,WACvBy8Z,EAAOz8Z,SAAW,UAI9B,OAAOm1C,EAEXqqrB,iBACI,IAAI79xB,EAAWp0C,KAAKw+zB,UAAUlivB,cAC9B,GAAKloC,EAGL,KAAI89xB,EAAc,GAClBttB,qBAA8BxwwB,EAAU89xB,GACxC,IAAI74U,EAAUurT,0BAAmC5kzB,KAAKk7yB,OAAO5nvB,OAAO8jvB,KAGpE,OAFoBp3yB,KAAKk7yB,OAAOi3B,oBAAoB/6B,GAAa86B,GAClCxxzB,IAAIkkyB,qBAA8BvrT,KAGrEmC,UAAU1pa,EAAYllF,GAClB5M,KAAKw+zB,WAAax+zB,KAAKw+zB,UAAUlrwB,OAAOw+B,EAAYllF,GAExDmk0B,UAAUj/uB,GACN,IAAIsgvB,EACJ,OAAO,QAAUA,EAAmBpy0B,KAAKw+zB,iBAAc,WAA8B,EAAS4T,EAAiB9+wB,OAAOw+B,GAE1Hi1tB,eAAesrB,EAAYtwrB,GACvB,IAAIrkI,SAAUqkI,GAAW,CACrB,IAAIklrB,EAAkBjn0B,KAAK+w0B,UAAU,oBACjC,IAAO9J,EAAgBz0zB,QAAQuvI,KAC/BklrB,EAAgB59zB,KAAK04I,GACrB/hJ,KAAKw7f,UAAU,kBAAmByrU,IAG1Cjn0B,KAAKgtjB,WAAW43P,0BAAmCytB,IACnDry0B,KAAKw7f,UAAU,gBAAiB62U,GAEpCt3tB,gBACI,IAAIu3tB,EACJ,OAAO,QAAUA,EAAmBty0B,KAAKw+zB,iBAAc,WAA8B,EAAS8T,EAAiBv3tB,gDC1VhH,UACHl7G,YAAY2H,EAAS+q0B,GACjBvy0B,KAAK2pF,SAAWniF,EAChBxH,KAAKg+Q,YAAcu0jB,EAAgB55uB,iBAAiB34F,KAAK2pF,SAAU+hoB,GAAc,CAC7E1mjB,iBAAiB,EACjBC,eAAe,EACfC,cAAe,UACft7F,UAAW,OACX8pM,SAAU,KACN6+jB,EAAgBC,gBAIxBxmwB,gBACA,OAAOhsE,KAAKg+Q,YAAYhyM,YAExBA,cAAUp/D,GACV,IAAI6tD,EAAO7tD,EAAQ5M,KAAKg+Q,YAAYhyM,YAChC,OACAhsE,KAAKg+Q,YAAY1b,SAAS,CACtBhnM,KAAM,EACNC,IAAKd,IAIbsR,iBACA,OAAO/rE,KAAKg+Q,YAAYjyM,aAExBA,eAAWn/D,GACX,IAAI6tD,EAAO7tD,EAAQ5M,KAAKg+Q,YAAYjyM,aAChC,OACA/rE,KAAKg+Q,YAAY1b,SAAS,CACtBhnM,KAAMb,EACNc,IAAK,IAIbm5M,kBACA,OAAO10Q,KAAKg+Q,YAAYtJ,cAExBC,mBACA,OAAO30Q,KAAKg+Q,YAAYrJ,eAExB89jB,iBACA,OAAO,EAEX9swB,WACI,OAAO3lE,KAAK2pF,SAAS7e,YAEzBpF,YACI,OAAO1lE,KAAK2pF,SAASy/I,aAEzBr3K,aACI,OAAO/xD,KAAK2pF,UCrCb,kBAAwBye,GAC3BtS,QACIh2F,MAAMg2F,QACN91F,KAAKuv0B,oBAAsBvv0B,KAAKo2F,sBAAsB,sBACtDp2F,KAAK0y0B,mBAAqB1y0B,KAAKo2F,sBAAsB,qBACrDp2F,KAAKww0B,UAAYxw0B,KAAKo2F,sBAAsB,YAC5Cp2F,KAAK2y0B,iBAAmB3y0B,KAAKo2F,sBAAsB,mBACnDp2F,KAAK4y0B,oBAAsB5y0B,KAAKo2F,sBAAsB,sBACtDp2F,KAAK6y0B,mBAAqB7y0B,KAAKo2F,sBAAsB,qBACrDp2F,KAAK8y0B,WAAa9y0B,KAAKo2F,sBAAsB,eAC7Cp2F,KAAK+y0B,aAAe/y0B,KAAKo2F,sBAAsB,iBAC/Cp2F,KAAKgz0B,WAAahz0B,KAAKo2F,sBAAsB,eAC7Cp2F,KAAKiz0B,cAAgBjz0B,KAAKo2F,sBAAsB,kBAChDp2F,KAAKkz0B,iBAAmBlz0B,KAAKo2F,sBAAsB,mBAEvDmM,cACI,IAAI4wuB,EC/BL,eACH,IAAKC,MACD,MAAMl5uB,SAAa,QAAS,oBAEhC,OAAOk5uB,MD2BaC,GAChBrz0B,KAAKwi0B,eAAiB,IAAI2Q,EAAUnz0B,KAAKm7D,WAAWn3D,IAAI,GAAIhE,KAAM,CAC9DymzB,cAAezmzB,KAAKszD,OAAO,iBAC3BozvB,iBAAkB1mzB,KAAKszD,OAAO,oBAC9BqzvB,kBAAmB3mzB,KAAKsz0B,sBAAsBtz0B,KAAKszD,OAAO,sBAC1D4lO,eAAgBl5R,KAAKuz0B,mBAAmBvz0B,KAAKszD,OAAO,mBACpDkgxB,gBAAiBxz0B,KAAKszD,OAAO,kBAC7BmgxB,eAAgBzz0B,KAAKszD,OAAO,kBAC5BogxB,aAAc1z0B,KAAKszD,OAAO,gBAC1B0zf,QAAShnjB,KAAK2z0B,sBAAsB3z0B,KAAKszD,OAAO,YAChD80vB,WAAYpozB,KAAKszD,OAAO,cACxB40vB,WAAY,CACRA,WAAYlozB,KAAKszD,OAAO,eAE5BsgxB,4BAA6B5z0B,KAAKszD,OAAO,gBACzCugxB,yBAAyB,EACzB91iB,SAAU/9R,KAAK8z0B,wBAAwB9z0B,KAAKszD,OAAO,cACnDygxB,cAAe/z0B,KAAKg00B,4BAA4Bh00B,KAAKszD,OAAO,mBAC5D2gxB,YAAaj00B,KAAKk00B,kBAClB1rB,2BAA4BxozB,KAAKszD,OAAO,8BACxCm1vB,mCAAoCzozB,KAAKszD,OAAO,sCAChDo1vB,+BAAgC1ozB,KAAKszD,OAAO,kCAC5Cq1vB,oBAAqB3ozB,KAAKszD,OAAO,uBACjC6gxB,MAAOn00B,KAAKszD,OAAO,WAEvBtzD,KAAKiqzB,YAAYjqzB,KAAKszD,OAAO,mBAC7BtzD,KAAK2wuB,sBAET4iG,mBAAmB3m0B,GACf,OAAO8Q,SAAU9Q,GAASA,EAAQovV,yBAEtC20e,uBACI,OAAO3w0B,KAAKwi0B,eAAemO,uBAE/ByD,gBACI,OAAOp00B,KAAKwi0B,eAAe6R,WAE/BC,mBAAmBzo0B,GACf,IAAI44B,EAAUzkC,KAAKwi0B,eAAe+R,gBAAgB1o0B,GAC9C44B,GACAA,EAAQkpD,UAGhB6mvB,mBAAmB3o0B,EAAIe,GACnB5M,KAAKwi0B,eAAegS,mBAAmB3o0B,EAAIe,GAE/C4l0B,aACI,IAAIiC,EACJ,QAAUA,EAAuBz00B,KAAKwi0B,sBAAmB,OAA2CiS,EAAqBjC,aAE7H7hG,sBACI3wuB,KAAKwi0B,eAAe6R,WAAWK,iBAAiB,IAEpD3lmB,SAASniO,GACL5M,KAAKwi0B,eAAezzlB,SAASniO,GAEjC+n0B,sBACI300B,KAAKwi0B,eAAeoS,wBAExB3qB,YAAYp+yB,GACR7L,KAAKwi0B,eAAeqS,eAAehp0B,GAEvC8xP,QAAQm3kB,GACJ,IAAIC,EACJ,QAAUA,EAAwB/00B,KAAKwi0B,sBAAmB,OAA4CuS,EAAsBC,qBAAqBF,GAErJZ,kBACI,MAAO,CACH58e,WAAY0E,iBAA+B,QAC3CxE,SAAUwE,eAA6B,QACvCi5e,eAAgBj5e,iBAA+B,eAC/Ck5e,aAAcl5e,eAA6B,eAC3Cm5e,aAAcn10B,KAAKo10B,mBACnBC,OAAQr10B,KAAKs10B,aACbC,OAAQv10B,KAAKw10B,aACbpoxB,MAAO4yD,UAA2B,4BAClC9zG,IAAK8zG,UAA2B,0BAChCqhN,SAAUrhN,UAA2B,gCAG7Cs1tB,aACI,OAAOt10B,KAAKy10B,WAAaz5e,oBAAkC,GAAK,GAEpEw5e,aACI,OAAOx10B,KAAKy10B,WAAaz5e,oBAAkC,GAAK,GAEpEy5e,WACI,IAAI39tB,EAAO,IAAI9pD,KAAKA,KAAKqtO,IAAI,KAAM,GAAI,GAAI,EAAG,EAAG,IAEjD,OADiBvjL,EAAK49tB,mBAAmB10tB,aACvB1hF,MAAM,WAAaw4E,EAAKtgG,WAAW8nB,MAAM,UAE/D81yB,mBACI,IAAIO,EAAgB31tB,UAA2B,mBAC/C,OAAK21tB,EAGE,IAACx1uB,OAAOw1uB,EAAe,IAAIx1uB,SAAOw1uB,EAAe,IAAIx1uB,SAAOw1uB,EAAe,IAAIx1uB,SAAOw1uB,EAAe,IAFjG35e,qBAIfs3e,sBAAsB1m0B,GAClB,OAAQA,OACC,UACD,OAAO,MACN,OACD,OAAO,UAEP,OAAO,GAGnBkn0B,wBAAwBhwB,GACpB,OAAQA,OACC,UACD,OAAO,MACN,QACD,OAAO,MACN,WACD,OAAO,MACN,OACD,OAAO,MACN,QACD,OAAO,MACN,SACD,OAAO,MACN,WACD,OAAO,MACN,QACD,OAAO,UAEP,QAGZ6vB,sBAAsB/m0B,GAClB,MAAO,CACHyb,QAASzb,EAAMyb,QACfutzB,sBAAuBhp0B,EAAMslJ,wBAC7B2jrB,sBAAuBjp0B,EAAMqlJ,sBAC7B6jrB,gBAAiBlp0B,EAAM2lJ,kBACvBwjrB,gBAAiBnp0B,EAAM0lJ,gBACvB0jrB,gBAAiBpp0B,EAAM6lJ,kBACvBwjrB,oBAAqBrp0B,EAAMwlJ,sBAC3B8jrB,oBAAqBtp0B,EAAMulJ,oBAC3BgkrB,oBAAqBvp0B,EAAMylJ,sBAC3B+jrB,wBAAyBxp0B,EAAM4lJ,2BAGvCwhrB,4BAA4Bpn0B,GACxB,MAAO,CACH88D,IAAK1pE,KAAK8z0B,wBAAwBln0B,EAAM88D,KACxClvD,IAAKxa,KAAK8z0B,wBAAwBln0B,EAAM4N,MAGhD+7E,eAAe59E,GACX,OAAQA,EAAKtV,UACJ,QACDvD,MAAMy2F,eAAe59E,GACrB3Y,KAAKwi0B,eAAezzlB,SAASp2N,EAAK/L,OAClC,UACC,SACD5M,KAAKwi0B,eAAelvrB,UAAU36H,EAAK/L,OACnC,UACC,YACA,mBACA,gBACA,sBACD5M,KAAKq20B,mBAAgB,EACrBr20B,KAAK29P,SAAQ,GACb,UACC,gBACD39P,KAAKwi0B,eAAe8T,iBAAiB39zB,EAAK/L,OAC1C,UACC,mBACD5M,KAAKwi0B,eAAe+T,oBAAoB59zB,EAAK/L,OAC7C,UACC,oBACD5M,KAAKwi0B,eAAegU,qBAAqBx20B,KAAKsz0B,sBAAsB36zB,EAAK/L,QACzE,UACC,iBACD5M,KAAKwi0B,eAAeiU,kBAAkBz20B,KAAKuz0B,mBAAmB56zB,EAAK/L,QACnE,UACC,iBACD5M,KAAKwi0B,eAAekU,kBAAkB/9zB,EAAK/L,OAC3C,UACC,eACD5M,KAAKwi0B,eAAemU,gBAAgBh+zB,EAAK/L,OACzC,UACC,iBACD5M,KAAKwi0B,eAAeoU,kBAAkBj+zB,EAAK/L,OAC3C,UACC,iBACD5M,KAAKiqzB,YAAYtxyB,EAAK/L,OACtB,UACC,UACD5M,KAAKwi0B,eAAeqU,mBAAmB720B,KAAK2z0B,sBAAsBh7zB,EAAK/L,QACvE,UACC,aACD5M,KAAKwi0B,eAAesU,sBAAsBn+zB,EAAK/L,OAC/C5M,KAAK29P,SAAQ,GACb,UACC,eACD39P,KAAKwi0B,eAAeuU,mBAAmBp+zB,EAAK/L,OAC5C,UACC,YACD5M,KAAKwi0B,eAAewU,YAAYh30B,KAAK8z0B,wBAAwBn7zB,EAAK/L,QAClE,UACC,iBACD5M,KAAKwi0B,eAAeyU,iBAAiBj30B,KAAK8z0B,wBAAwBn7zB,EAAK/L,MAAM88D,KAAM1pE,KAAK8z0B,wBAAwBn7zB,EAAK/L,MAAM4N,MAC3H,UACC,aACDxa,KAAKwi0B,eAAe0U,cAAc,CAC9BhvB,WAAYvvyB,EAAK/L,QAErB,UACC,6BACD5M,KAAKwi0B,eAAe2U,8BAA8Bx+zB,EAAK/L,OACvD,UACC,qCACD5M,KAAKwi0B,eAAe4U,sCAAsCz+zB,EAAK/L,OAC/D,UACC,iCACD5M,KAAKwi0B,eAAe6U,kCAAkC1+zB,EAAK/L,OAC3D,UACC,sBACD5M,KAAKwi0B,eAAe8U,uBAAuB3+zB,EAAK/L,OAChD,UACC,QACD5M,KAAKkw0B,eAAev3zB,EAAK/L,OACzB,cAEA9M,MAAMy2F,eAAe59E,IAG7B6ob,WACA,OAAOxhc,KAAKszD,OAAO,QAEvBgvwB,eACI,OAAOti0B,KAAKszD,OAAO,aAEvB0+wB,kBACI,OAAOhy0B,KAAKszD,OAAO,gBAEvBikxB,oBACI,IAAIpouB,EAAQnvG,KAAKszD,OAAO,SACpBkkxB,EAAex30B,KAAKy30B,kBACxB,OAAI,SAAoDD,EAAaE,aAAxDF,MAAgFA,GAA2CA,EAAaG,YAC1IH,EAAaE,YAEjBvouB,EAEX+guB,eAAev3zB,GACX3Y,KAAKq20B,cAAgB19zB,EACrB3Y,KAAK29P,UAAU,MAAShlP,GAA2BA,EAAKi/zB,cACxD,IAAI96B,EAAiB98yB,KAAKszD,OAAO,kBACjCtzD,KAAKiqzB,YAAYnN,GAErB26B,kBACI,OAAOz30B,KAAKq20B,cAEhBwB,2BACI,OAAO730B,KAAKszD,OAAO,gBAEvBwkxB,wBACI,OAAO930B,KAAKszD,OAAO,aAEvBykxB,kCACI,OAAO/30B,KAAKszD,OAAO,uBAEvB0kxB,wBACI,OAAO,KAEXC,6BAA6Bzw0B,GACzB,OAAKxH,KAAKk40B,qBACNl40B,KAAKk40B,mBAAqB,IAAIC,IAAkB3w0B,EAASxH,OAEtDA,KAAKk40B,mBAEhBE,iCAAiC5w0B,EAASwqF,GAClC,SAAoCA,EAAKlyB,QACzC9/D,KAAKk40B,mBAAmBl6jB,YAAY1qN,OAAO,SAAU0+B,EAAKlyB,QAGlEu4wB,yBAAyBxs0B,EAAI+zI,GACzB5/I,KAAKuv0B,oBAAoB,CACrB1j0B,GAAIA,EACJ+zI,SAAUA,IAGlB04rB,cAActswB,GACVhsE,KAAKww0B,UAAU,CACXxkwB,UAAWA,IAGnBuswB,WAAWl10B,EAAM45B,EAAYv3B,EAAUg2zB,GACnC17zB,KAAK2y0B,iBAAiB,CAClBtv0B,KAAMA,EACN45B,WAAYA,EACZv3B,SAAUA,EACVg2zB,aAAcA,IAGtB8c,0BACI,OAAOx40B,KAAKszD,OAAO,wBAEvBmlxB,gBACI,OAAOz40B,KAAKszD,OAAO,cAEvBolxB,cAAc1mvB,GACVhyF,KAAK4y0B,oBAAoB5gvB,GAE7B2mvB,cAAc3mvB,GACVhyF,KAAK6y0B,mBAAmB7gvB,GAE5Bm7a,iBACI,OAAOntgB,KAAKszD,OAAO,eAAetvD,IAAI,GAE1C400B,gBACI540B,KAAKkz0B,mBAET2F,oCACI,OAAO740B,KAAKszD,OAAO,oCAEvB86G,cACIpuK,KAAK+y0B,eAETzkqB,YACItuK,KAAK8y0B,aAETlsB,YAAYz0yB,EAAKrH,GACb,YAAKko0B,WAAW,CACZ7g0B,IAAKA,EACLrH,MAAOA,KAEJ,EAEX+7yB,eAAe10yB,EAAKrH,GAChB,OAAO9K,KAAKiz0B,cAAc,CACtB9g0B,IAAKA,EACLrH,MAAOA,IAGfgu0B,uBAAuBhu0B,EAAOqH,EAAK1G,GAC/B,OAAO,EAEXst0B,qBAAqBjhuB,GACjB,IAAIplG,EAAS,GACb,GAAIolG,EAAM,CACN,IAAIkhuB,EAAWh9e,UAAwBlkP,EAAM,aACzCmhuB,EAAaj50B,KAAKy10B,WAAa,UAAY,QAE/C/i0B,EAASsm0B,EAAW,IADLh9e,UAAwBlkP,EAAMmhuB,GAGjD,OAAOvm0B,EAEXyuuB,gBAAgBjttB,IACZknC,QAAElnC,GAAW8uD,QAEjBk2vB,sBAAsBlnvB,GAClB,IAAI4wK,EAAa5iQ,KAAKk40B,mBAAmBl6jB,YACzC,MAAItgQ,OAAU,aAAmC,EAASs0E,EAAKlyB,QAAS,CACpE,IAAI8J,GAAa,MAASooB,OAA0B,EAASA,EAAKlyB,QAAU9/D,KAAKk40B,mBAAmBxywB,YAAc,OAAS,aAC3Hk9L,EAAWtvM,OAAO,YAAasW,IAGvCuvwB,oBAAoB1t0B,GAChBzL,KAAK0y0B,mBAAmB,CACpBjn0B,KAAMA,IAGdgzzB,wBACI,OAAOz+zB,KAAKo50B,uBAAuB,yBAEvCxa,sBACI,OAAO5+zB,KAAKo50B,uBAAuB,uBAEvCta,sBAAsB/rX,GAClB,OAAO/yc,KAAKo50B,uBAAuB,wBAAyBrmY,GAEhEmsX,oBAAoBrsX,EAAUE,EAAU5gc,GACpC,OAAOnS,KAAKo50B,uBAAuB,sBAAuBjn0B,EAAK4gc,GAEnE0sX,+BACI,OAAOz/zB,KAAKo50B,uBAAuB,gCAEvCA,uBAAuB7vxB,GAEnB,QADIk2pB,EAASz/sB,KAAKszD,OAAO,gBAChB+6B,EAAOtuF,UAAU0E,OAAQkU,EAAO,IAAI/P,MAAMylF,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAChG31E,EAAK21E,EAAO,GAAKvuF,UAAUuuF,GAE/B,OAAOmxnB,EAAOl2pB,MAAe5wC,GAEjC64zB,wBAAwBt4yB,GACpB,IAAImgzB,EACJ,QAAUA,EAAwBr50B,KAAKwi0B,sBAAmB,OAA4C6W,EAAsB7H,wBAAwBt4yB,IEvarJ,UACHr5B,cACIG,KAAKs50B,2BAA4B,EACjCt50B,KAAKu50B,0BAA2B,EAChCv50B,KAAKw50B,mBAAqB,GAE9BC,mBACIz50B,KAAK050B,6BACL150B,KAAK250B,2BAETC,kBACI550B,KAAK650B,4BACL750B,KAAK250B,2BAETG,oBAAoB/svB,EAAQgtvB,EAAoBC,GACxCjtvB,IACIgtvB,GACA/50B,KAAKi60B,8BAELD,GACAh60B,KAAKk60B,6BAETl60B,KAAKw50B,mBAAmBnw0B,KAAK0jF,IAGrC4svB,2BACQ350B,KAAKm60B,uBACLn60B,KAAKw50B,mBAAmBxz0B,QAAQw4U,GAAOA,KACvCx+U,KAAKw50B,mBAAqB,IAGlCS,8BACIj60B,KAAKs50B,2BAA4B,EAErCI,6BACI150B,KAAKs50B,2BAA4B,EAErCY,6BACIl60B,KAAKu50B,0BAA2B,EAEpCM,4BACI750B,KAAKu50B,0BAA2B,EAEpCY,qBACI,QAASn60B,KAAKs50B,2BAA6Bt50B,KAAKu50B,2BCkBxD,IAAIt30B,OAASk8D,SAMTi5uB,GAAc,QACdC,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,sBAC7B6iC,IAA2B,qBA23B/BlmsB,GAAkB,UA13BlB,kBAAoB9rC,GAChBtS,QACIh2F,MAAMg2F,QACNuub,0CAAqDrkhB,MACrDA,KAAKq60B,aACLr60B,KAAKs60B,kBAAmB,EACxBt60B,KAAKu60B,eAETF,aACIr60B,KAAKm4uB,sBAET51oB,cACIziG,MAAMyiG,cACNviG,KAAKm7D,WAAWvtD,SAvBN,YAwBV5N,KAAK+i0B,oBAAmB3nwB,MAAE,SAASxtD,SArBf,4BAqB+Ci9D,SAAS7qE,KAAKm7D,YACjFn7D,KAAKw60B,aAAYp/wB,MAAE,SAASyP,SAAS7qE,KAAK+i0B,kBAC1C/i0B,KAAKy60B,eAAgBr/wB,QAAE,SAASxtD,SAtBf,yBAsB4Ci9D,SAAS7qE,KAAKm7D,YAC3En7D,KAAKwh0B,mBAAoBpmwB,QAAE,SAASxtD,SAzBd,6BAyBgDi9D,SAAS7qE,KAAKy60B,eACpFz60B,KAAKiv0B,cAAa7zwB,MAAE,SAASyP,SAAS7qE,KAAKwh0B,mBAC3Cxh0B,KAAK49xB,cAAaxiuB,MAAE,SAASyP,SAAS7qE,KAAKy60B,eAC3Cz60B,KAAK0h0B,aAActmwB,QAAE,SAASxtD,SA7Bf,iBA6B0Ci9D,SAAS7qE,KAAKy60B,eACvEz60B,KAAK060B,YAAWt/wB,MAAE,SAASyP,SAAS7qE,KAAKm7D,YACzCn7D,KAAK260B,aAAcv/wB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAC5Cn7D,KAAK460B,eAAgBx/wB,QAAE,SAASyP,SAAS7qE,KAAKm7D,YAElDsoC,SACI,IAAIo3uB,EACJ,QAAUA,EAAmB760B,KAAKgqzB,kBAAe,OAAuC6wB,EAAiBrY,eAAejqF,qBACjHv4uB,KAAKgqzB,kBACLhqzB,KAAKi0uB,uBACLj0uB,KAAKs5Q,kBACLt5Q,KAAK860B,cACZh70B,MAAM2jG,SAEVK,WACI9jG,KAAKs60B,kBAAmB,EACxBt60B,KAAK+60B,qBAAsB,EAC3Bj70B,MAAMgkG,WAEV4G,0BACS1qG,KAAK+60B,qBACNj70B,MAAM4qG,0BAEV1qG,KAAK+60B,qBAAsB,EAE/Bl5uB,oBACI,IAAIm5uB,EACJ,QAAUA,EAAoBh70B,KAAKgqzB,kBAAe,OAAwCgxB,EAAkBrG,sBAEhH/yuB,mBAAmB7yB,GACXA,GACA/uE,KAAKi70B,gBAGbA,gBACIj70B,KAAKm4uB,sBACLn4uB,KAAK8jG,WAETq0oB,sBACIn4uB,KAAK07G,mBAAmB07rB,IACxBp3yB,KAAK07G,mBAAmB27rB,IACxBr3yB,KAAK07G,mBAAmB47rB,IACxBt3yB,KAAK07G,mBAAmB67rB,IAE5BptsB,iBACInqG,KAAKk70B,sBAAwBl70B,KAAKm7D,WAAWlxC,GAAG,YAC5CjqB,KAAKk70B,wBAA0Bl70B,KAAKs60B,mBACpCt60B,KAAKs60B,kBAAmB,EACxBt60B,KAAKgic,cACLhic,KAAKm70B,kBACLn70B,KAAKo70B,mBAGbD,kBACIn70B,KAAK8pzB,eAAiB,IAAIuxB,IAAcr70B,MACxCA,KAAKw+zB,UAAYx+zB,KAAK8pzB,eAAeolB,cACrClv0B,KAAK8pzB,eAAe8lB,wBAExBwL,kBACIp70B,KAAKmgyB,UAAYngyB,KAAK24F,iBAAiB34F,KAAK49xB,WAAYwC,IAAiB,CACrElswB,UAAWl0B,KAAKm7D,WAChBkluB,YAAargyB,KAAKwh0B,kBAClBlhC,aAActgyB,KAAK0h0B,YACnB7jC,iBAAkB7nxB,IACdhW,KAAKmw0B,YAAYtyC,iBAAiB7nxB,MAG1ChW,KAAKmgyB,UAAU7suB,OAAO,wBAAyBtzD,KAAKszD,OAAO,kBAE/D0uY,cACIhic,KAAKyhc,MAAQ,GACbzhc,KAAK2gjB,SAAW,IAAI26R,IAAat70B,KAAKw60B,UAAWx60B,MACjDA,KAAKu70B,wBACLv70B,KAAKyhc,MAAMp4b,KAAKrJ,KAAK2gjB,UACrB3gjB,KAAKw70B,gBAAkB,IAAIC,IAAoBz70B,KAAK460B,cAAe560B,MACnEA,KAAK070B,qBACL170B,KAAKyhc,MAAMp4b,KAAKrJ,KAAKw70B,iBAEzBjB,eACIv60B,KAAKm7yB,eAAiB,IAAIwgC,IAAmB370B,MAC7CA,KAAKo7yB,qBAAuB,IAAIwgC,IAAyB570B,MACzDA,KAAKi5yB,gBAAkB,IAAI4iC,IAAoB770B,MAC/CA,KAAK870B,uBAAyB,IAAIC,IAAsB/70B,MACxDA,KAAKmw0B,YAAc,IAAI6L,IAAgBh80B,MACvCA,KAAKi80B,sBAAwB,IAAIC,IAErClM,iBACQhw0B,KAAKgqzB,aAGThqzB,KAAKgqzB,WAAahqzB,KAAK24F,iBAAiB34F,KAAK0h0B,YAAayR,IAAW,CACjEvzwB,MAAO,OACPE,OAAQ9/D,KAAK8pzB,eAAe6Y,kBAC5B70J,UAAW9tqB,KAAK8pzB,eAAewY,eAC/B6Z,aAAcn80B,KAAK8pzB,eAAekoB,kBAClC7iuB,MAAOnvG,KAAKyuG,OACZy3sB,aAAclmzB,KAAKo80B,cACnB94B,UAAWtjzB,KAAKq80B,WAChBh2B,oBAAqBrmzB,KAAKs80B,qBAC1B92B,eAAgBxlzB,KAAKszD,OAAO,kBAC5BwpvB,eAAgB98yB,KAAKszD,OAAO,kBAC5BmzvB,cAAezmzB,KAAKszD,OAAO,iBAC3BozvB,iBAAkB1mzB,KAAKszD,OAAO,oBAC9BmgxB,eAAgBzz0B,KAAKszD,OAAO,kBAC5BogxB,aAAc1z0B,KAAKszD,OAAO,gBAC1BqzvB,kBAAmB3mzB,KAAKszD,OAAO,qBAC/B4lO,eAAgBl5R,KAAKszD,OAAO,kBAC5Bo9e,aAAc1wiB,KAAKszD,OAAO,gBAC1BwwvB,UAAW9jzB,KAAKszD,OAAO,aACvB60vB,eAAgBnozB,KAAKszD,OAAO,kBAC5B0zf,QAAShnjB,KAAKszD,OAAO,WACrB80vB,WAAYpozB,KAAKszD,OAAO,cACxB40vB,WAAYlozB,KAAKszD,OAAO,cACxBkuY,KAAMxhc,KAAKyhc,MACX86Y,YAAav80B,KAAKm7D,WAClB67D,mBAAoBhhH,IAChBhW,KAAK8pzB,eAAe98P,WAAW43P,0BAAmC5uyB,EAAEnK,MAExE2w0B,kBAAmBxm0B,IACfhW,KAAK0y0B,mBAAmB18zB,EAAEvK,OAE9BioQ,SAAU19P,IACNhW,KAAK8pzB,eAAexnjB,SAAStsP,EAAEg2D,YAEnCywwB,gBAAiBz80B,KAAK+zuB,YAAY9qrB,KAAKjpD,MACvC080B,mBAAoB180B,KAAKqw0B,eAAepnxB,KAAKjpD,MAC7C280B,kBAAmB380B,KAAK480B,eAAe3zxB,KAAKjpD,MAC5C680B,YAAa780B,KAAK8y0B,WAAW7pxB,KAAKjpD,MAClC880B,cAAe980B,KAAK+y0B,aAAa9pxB,KAAKjpD,MACtC+80B,qBAAsBvlC,WAA4Bx3yB,MAClDg90B,aAAch90B,KAAKi90B,mBACnBz0B,2BAA4BxozB,KAAK870B,uBAAuB7Y,kCAAkCjj0B,KAAKszD,OAAO,+BACtGm1vB,mCAAoCzozB,KAAK870B,uBAAuB1Y,0CAA0Cpj0B,KAAKszD,OAAO,uCACtHo1vB,+BAAgC1ozB,KAAK870B,uBAAuBzY,sCAAsCrj0B,KAAKszD,OAAO,mCAC9Gq1vB,oBAAqB3ozB,KAAK870B,uBAAuBxY,2BAA2Btj0B,KAAKszD,OAAO,wBACxFszvB,YAAa5wyB,IACThW,KAAK8pzB,eAAeljH,WAAW5wrB,IAEnC6wyB,eAAgB7wyB,IACZhW,KAAK8pzB,eAAe/iH,cAAc/wrB,IAEtCgszB,gBAAiB,KACbhi0B,KAAKmw0B,YAAYnO,mBAErBr5tB,eAAgB3oG,KAAKk90B,yBAAyBj0xB,KAAKjpD,SAG3Dk90B,yBAAyBln0B,GAChBhW,KAAKm90B,2BACNn90B,KAAK0qG,0BAGbyyuB,0BACI,OAAOn90B,KAAKszD,OAAO,oCAEvBy8wB,wBAAwB/5zB,GAChBhW,KAAKm90B,2BAA6Bn90B,KAAKo90B,yCACvCp90B,KAAK0qG,iCAEF1qG,KAAKo90B,wCACZp90B,KAAKi80B,sBAAsBrC,kBAE/BlH,mBAAmBjn0B,GACfzL,KAAKszD,OAAO,YAAatzD,KAAKi5yB,gBAAgB8K,cAAct4yB,IAEhEiwG,mBAAmBr4G,GACf,IAAIumzB,EAAa5pzB,KAAK,IAAI6hB,OAAOxe,EAAM,WACnCumzB,IACAA,EAAW9owB,iBACJ9gD,KAAK,IAAI6hB,OAAOxe,EAAM,kBACtBrD,KAAK,IAAI6hB,OAAOxe,MAE3BumzB,EAAa,IAAI3O,IAAW53yB,EAAMrD,KAAK06yB,cAAczxvB,KAAKjpD,MAAO,CAACqD,EAAM+I,KACpEpM,KAAKq90B,mBAAmBh60B,EAAM+I,MAEvBknD,OAAO,aAActzD,KAAKu6Q,6BAA6Bl3Q,IAClEumzB,EAAWlusB,qBACX17G,KAAK,IAAI6hB,OAAOxe,EAAM,WAAaumzB,EAEvCrviB,6BAA6Bl3Q,GACzB,IAAIm5G,EAAax8G,KAAKszD,OAAO,GAAGzxC,OAAOxe,EAAM,gBAC7C,OAAKm5G,GAAc5zG,MAAM8B,QAAQ8xG,GACtB,CACHjnG,MAAO,CACH9J,KAAM,QACNW,KAAM,QAA+CowG,EAAa,GAClErqG,IAAKnS,KAAKszD,OAAO,GAAGzxC,OAAOxe,EAAM,eAItCm5G,EAEX6guB,mBAAmBC,EAAgBlx0B,GAC/B,IAAIitf,EAAUurT,0BAAmC5kzB,KAAKszD,OAAOgqxB,IACzDC,EAAgBv90B,KAAKmy0B,oBAAoBmL,EAAgBlx0B,GACzDuvyB,EAAa4hC,EAAc78zB,IAAIkkyB,qBAA8BvrT,IAGjE,GAFAr5f,KAAK,IAAI6hB,OAAOy7zB,IAAmB3hC,EACnC37yB,KAAK2h0B,oBAAoB2b,EAAgB3hC,GACrC2hC,IAAmBlmC,GAAa,CAChC,IAAIomC,EAAsBC,EAAuBC,EACjD190B,KAAKqv0B,UAAYkO,EACjB,IAAIz4oB,IAAgB,QAAU04oB,EAAuBx90B,KAAK8pzB,sBAAmB,OAAmC0zB,EAAqBziuB,iBAAqB/6G,KAAKgqzB,YAC/J,QAAUyzB,EAAwBz90B,KAAK8pzB,sBAAmB,OAA4C2zB,EAAsBxM,mBAC5H,QAAUyM,EAAwB190B,KAAK8pzB,sBAAmB,OAA4C4zB,EAAsB3zB,iBAAiBwzB,EAAez4oB,IAGpKqtoB,oBAAoBmL,EAAgBlx0B,GAChC,OAAOA,GAAQkx0B,IAAmBlmC,GAAcp3yB,KAAK290B,kBAAkBvx0B,GAAQA,EAEnFux0B,kBAAkBvx0B,GAMd,QALIiwG,EACAshB,GAAYhtC,SAAc3wF,KAAKszD,OAAO,GAAGzxC,OAAOu1xB,GAAa,cAC7DwmC,GAAiBjtvB,SAAc3wF,KAAKszD,OAAO,GAAGzxC,OAAOu1xB,GAAa,mBAClEx8S,EAAY,QAAUv+Y,EAAer8G,KAAKszD,OAAO,oBAAiB,MAA0B+oD,EAAe,kCAC3GwhuB,EAAiB,GACZr50B,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,IAAK,CAClC,IAAIoY,EAAOxQ,EAAK5H,GAChB,GAAIoY,EAAM,CACN,IAAIkh0B,EACA3r0B,EAAMwrH,EAAU/gH,GAChBmh0B,EAAa5r0B,IAAQyof,EACrBojV,EAAW,QAAUF,EAAsBD,EAAe1r0B,UAAS,MAAiC2r0B,EAAsBD,EAAe1r0B,GAAO,CAChJA,IAAKA,EACLgqB,SAAU,IAEd,IAAK4hzB,EAAY,CACb,IAAI9qR,EAAiBgrR,GACjBl8rB,GAAW,QAAUkxa,EAAkB2qR,EAAehh0B,UAAU,IAAWq2iB,EAAkBA,EAAkBr4D,EAC/GsjV,GAAiB,QAAUD,GAAwBJ,EAAe97rB,WAAc,OAAmCk8rB,GAAwBJ,EAAe97rB,IAAY,CACtK5vI,IAAK4vI,GACL5lH,SAAU,IAEd+hzB,GAAe/hzB,SAAS9yB,KAAK200B,GAC7BA,EAASjx0B,OAASmx0B,KAI9B,IAAIC,GAAY,CAACvjV,GACjB,YAAKwjV,iBAAiBP,EAAejjV,GAAYujV,IAC1C/x0B,EAAK0a,OAAOlK,IAAQuh0B,GAAU3r0B,QAAQmrH,EAAU/gH,MAAS,GAEpEwh0B,iBAAiBJ,EAAUjl0B,GAEvB,QADIojB,EAAW,aAA2C,EAAS6hzB,EAAS7hzB,SACnE33B,EAAI,EAAGA,GAAK,MAAS23B,OAAkC,EAASA,EAAS13B,QAASD,IAAK,CAC5F,IAAIwuB,EAAQmJ,EAAS33B,GACrBuU,EAAK1P,KAAK2pB,EAAM7gB,KAChBnS,KAAKo+0B,iBAAiBprzB,EAAOja,IAGrC4+xB,kBAAkB7ltB,EAAYlmC,EAAQlmD,GAClC,IAAIkkzB,EAAa5pzB,KAAK,IAAI6hB,OAAOiwE,EAAY,WAC7C,GAAI83tB,EAAY,CACZ,IAAIx9yB,EAAOw4yB,kBAA2B5kzB,KAAKszD,OAAOw+B,GAAalmC,GAC3DyyxB,EAAevsvB,IAAesltB,GAC9BinC,GACAr+0B,KAAKo7yB,qBAAqB4G,6BAA6Bo4B,IAA0Bhu0B,GAErFw9yB,EAAWx2xB,OAAOhnB,EAAM8tP,IACpB,IACIm4kB,GADY1hvB,SAAc3wF,KAAKszD,OAAO,GAAGzxC,OAAOiwE,EAAY,aAC/C6rC,CAAUu8H,GAC3Bx0P,EAAS2s0B,GACTry0B,KAAKs+0B,oBAAoBxsvB,EAAYlmC,EAAQymxB,GAC7Cry0B,KAAKi80B,sBAAsBnC,oBAAoB,KAC3C950B,KAAKi5yB,gBAAgB4F,oBAAoB/stB,EAAY1lF,EAAMim0B,KAC5D,EAAMgM,GACTr+0B,KAAK8pzB,eAAemnB,mBACpBrnB,EAAW5O,oBAAoB9muB,KAAK9nE,IAC5Biy0B,GACAr+0B,KAAK8pzB,eAAe/C,eAAesrB,EAAYzmxB,EAAOm2F,eAM1Ei2pB,iBAAiBlmtB,EAAY3/E,EAAKgH,GAC9B,IAAIywyB,EAAa5pzB,KAAK,IAAI6hB,OAAOiwE,EAAY,WACzCysvB,EAAgBzsvB,IAAesltB,GACnC,GAAIwS,EAAY,CACZ,IAAIx9yB,EAAOpM,KAAKm7yB,eAAeM,wBAAwB3ptB,EAAY34E,GACzCol0B,GAAiBv+0B,KAAKo7yB,qBAAqB3ntB,MAAMg/c,QAAQtgiB,IAE/EnS,KAAKo7yB,qBAAqB4G,6BAA6B7vyB,EAAK/F,GAEhEw9yB,EAAWn0xB,OAAOtjB,EAAK/F,EAAM,KACzBpM,KAAKs+0B,oBAAoBxsvB,EAAY34E,EAAQhH,GAC7CnS,KAAK8pzB,eAAemnB,mBACpBjx0B,KAAKi80B,sBAAsBnC,oBAAoB,KAC3C950B,KAAKi5yB,gBAAgBuJ,mBAAmB1wtB,EAAY1lF,EAAM+F,KAC3D,EAAMos0B,GACT30B,EAAW5O,uBAIvBlD,iBAAiBhmtB,EAAY3/E,EAAK/F,GAC9B,IAAIw9yB,EAAa5pzB,KAAK,IAAI6hB,OAAOiwE,EAAY,WACzC83tB,GACAA,EAAW/ozB,OAAOsR,EAAK,KACnBnS,KAAK8pzB,eAAemnB,mBACpBjx0B,KAAKi80B,sBAAsBnC,oBAAoB,KAC3C950B,KAAKi5yB,gBAAgB+H,mBAAmBlvtB,EAAY3/E,EAAKnS,KAAKm7yB,eAAeM,wBAAwB3ptB,EAAY1lF,MAClH,EAAM0lF,IAAesltB,IACxBwS,EAAW5O,sBAIvB9C,qBAAqB9ryB,GACjB,IAAIuvyB,EAAa37yB,KAAKmj0B,sBAAsB/2zB,GAC5CpM,KAAKi5yB,gBAAgBuJ,mBAAmBpL,GAAauE,EAAYvvyB,EAAKP,IAE1EktyB,2BAA2B3syB,GACvB,IAAKpM,KAAKw+0B,UAAW,CACjB,IAAI1kV,EAAU8qT,0BAAmC5kzB,KAAKszD,OAAO8jvB,KACzDqnC,EAAiBz+0B,KAAKo7yB,qBAAqBkO,mBAAmBl9yB,EAAKsU,IAAIkkyB,2BAAoC9qT,KAC/G/5c,WAAW,KACP,IAAI2+xB,EACJ1+0B,KAAKo90B,yCAA0C,EAC/C,QAAUsB,EAAwB1+0B,KAAK8pzB,sBAAmB,OAA4C40B,EAAsBv8S,cAAcs8S,KAGlJz+0B,KAAKw+0B,WAAY,EAErBlkC,0BACIt6yB,KAAKi80B,sBAAsBxC,mBAE/B6E,oBAAoBxsvB,EAAY0ptB,EAAUrpyB,GACtC,IAAIws0B,EAAc/5B,8BAAuC5kzB,KAAKszD,OAAOw+B,IACjE8svB,EAAevy0B,OAAO0M,KAAK4l0B,GAAa73zB,OAAOxF,IAAK5D,SAAU89xB,EAASl6xB,KAC3E,GAAIs9zB,EAAan60B,OAAS,EAAG,CACzB,IAAIo60B,EAAa7+0B,KAAK8+0B,mBAAmBhtvB,EAAY3/E,GACrDys0B,EAAa540B,QAAQsb,KAEjBo/e,EADai+U,EAAYr9zB,IAClBu9zB,EAAYrjC,EAASl6xB,OAIxC4uzB,iBACI,IAAI6O,EAAuBC,EAAwBC,EAC/C3O,EAAWtw0B,KAAKw+zB,UAChB52qB,EAAU0orB,EAAS5xT,oBACnBwgU,EAAgBt3rB,EAAQ9gI,OAAOF,IAAKA,GAAE2iI,WAAY,GAClD41rB,EAAcD,EAAcx+zB,IAAIkG,KAAM,CACtC2iI,UAAW3iI,GAAE2iI,UACbE,UAAW7iI,GAAE6iI,aAEb21rB,GAAsBp/0B,KAAKq/0B,oBAAoB,QAAUN,EAAwB/+0B,KAAKs/0B,6BAA0B,IAAWP,OAAwB,EAASA,EAAsBzjzB,KAAM6jzB,GACxLh3rB,EAAcmorB,EAASh9wB,OAAO,eAC9BullB,EAAgBy3L,EAASh9wB,OAAO,2BAA6B60F,KAAiB,QAAU62rB,EAAyBh/0B,KAAKs/0B,6BAA0B,WAAoC,EAASN,EAAuBl4zB,QACpN6wzB,EAAcuH,EAAc,IAAMt3rB,EAAQ9gI,OAAOF,KACjD,IAAI24zB,GACJ,OAAO7h0B,SAAUkJ,GAAEuhI,eAAiB,QAAUo3rB,GAAkB34zB,GAAEwhI,oBAAiB,IAAWm3rB,QAAkB,EAASA,GAAgB960B,UAC1I,GACC+60B,GAAkB,QAAUP,EAAyBj/0B,KAAKs/0B,6BAA0B,WAAoC,EAASL,EAAuBtH,eAAiBA,EAC7K,GAAIA,GAAe6H,EAAgB,CAC/B,IAAIhI,EAAeG,GAAe,CAC9BD,YAAa130B,KAAK8pzB,eAAemoB,iBACjC0F,YAAaA,EACbC,YAAa/+L,GAAiB1wf,GAAei3rB,GAEjDp/0B,KAAKw+0B,WAAagB,EAClBx/0B,KAAK2h0B,oBAAoB,QAAS6V,GAEtCx30B,KAAKs/0B,sBAAwB,CACzBhkzB,KAAM6jzB,EACNr4zB,OAAQqhI,EACRwvrB,YAAaA,GAGrB0H,oBAAoBI,EAAQC,GACxB,SAAKD,IAAWC,GAAUD,EAAOh70B,SAAWi70B,EAAOj70B,SAG5Cg70B,EAAOjkzB,MAAM,CAAC5U,EAAGpiB,IAAMoiB,EAAE2iI,YAAcm2rB,EAAOl70B,GAAG+kJ,WAAa3iI,EAAE6iI,YAAci2rB,EAAOl70B,GAAGilJ,WAEnGi0E,mBAEI,OADY19N,KAAKszD,OAAO,kBACD,GAE3BioxB,wBACI,IAAIlnxB,EAAQr0D,KAAK09N,mBACbrpK,EAAM5vD,OACNzE,KAAK+i0B,iBAAiBturB,OAEtBz0I,KAAK+i0B,iBAAiBvurB,OAE1Bx0I,KAAK2gjB,UAAY3gjB,KAAK2gjB,SAAS+iR,YAAYrvwB,GAC3Cr0D,KAAK2/0B,uBAETjE,qBACI,IAAIkE,EAAqB5/0B,KAAKszD,OAAO,eACjCssxB,EAAmBv3zB,SAAWroB,KAAKw70B,kBACnCx70B,KAAKw70B,gBAAgB9X,YAAYkc,EAAmBvrxB,OACpDr0D,KAAK2/0B,wBAGbA,uBACI3/0B,KAAKgqzB,YAAchqzB,KAAKgqzB,WAAWr5E,sBAEvCoD,YAAY/9tB,GACHhW,KAAKi0uB,kBACNj0uB,KAAKi0uB,gBAAkB,IAAI4rG,IAAY7/0B,KAAMA,KAAK060B,WAEtD160B,KAAKi0uB,gBAAgBx/lB,KAAKz+H,EAAE3S,KAAM2S,EAAEinB,WAAYjnB,EAAEtQ,SAAUsQ,EAAE0lzB,aAAc17zB,KAAKszD,OAAO,YAE5F+8wB,eAAer+uB,GACX,GAAIhyF,KAAKszD,OAAO,uBAAwB,CACpCtzD,KAAKgqzB,WAAWoqB,gBAAgB0L,oBAChC,IAAInn0B,EAAO,CACP0lD,QAAQ,EACRvzD,MAAOknF,EAAKlnF,MACZi10B,WAAY/tvB,EAAKvmF,KACjBu00B,UAAWhuvB,EAAK7/E,IAChBkiD,OAAOh1C,SAAO,EAAM,GAAIrf,KAAKw70B,gBAAgBjmuB,QAC7CnpG,KAAM,WAAgBX,KAAOzL,KAAKs7yB,YAAYtptB,EAAK7/E,KAAOnS,KAAKig1B,kBAAkBjuvB,EAAK7/E,MAE1FnS,KAAKi5yB,gBAAgBoE,0BAA0B1kyB,GAC1CA,EAAK0lD,QACNr+D,KAAKw70B,gBAAgB/msB,KAAKziD,EAAKh4D,SAAUrhB,EAAK07C,QAI1DuoxB,iBACI580B,KAAKw70B,gBAAgBhnsB,OAEzBkmqB,gBACI,OAAK16yB,KAAKs5Q,aACNt5Q,KAAKs5Q,WAAat5Q,KAAK24F,iBAAiB34F,KAAK260B,YAAa9jkB,GAAW,CACjE78O,SAAU,CACN5d,GAAIpc,KAAKm7D,eAIdn7D,KAAKs5Q,WAEhBiwiB,oBACI,OAAOvpzB,KAAKkg1B,4BAA4B9oC,IAE5CwpB,eAAezuzB,GACX,OAAOnS,KAAK8+0B,mBAAmB1nC,GAAajlyB,GAEhD2s0B,mBAAmBqB,EAAgBhu0B,GAC/B,IAAIy3yB,EAAa5pzB,KAAK,IAAI6hB,OAAOs+zB,EAAgB,WAC7CxitB,EAAY39H,KAAKkg1B,4BAA4BC,GAEjD,OADY,MAASv2B,OAAsC,EAASA,EAAWrpH,aAClE96pB,KAAKv/B,GAAKy3H,EAAUz3H,KAAOiM,GAE5C+t0B,4BAA4BC,GACxB,SAAOxvvB,OAAc3wF,KAAKszD,OAAO,GAAGzxC,OAAOs+zB,EAAgB,cAE/Dxe,oBAAoB7vuB,EAAYllF,GAC5B5M,KAAKgqzB,YAAchqzB,KAAKgqzB,WAAW12vB,OAAOw+B,EAAYllF,GAE1D21zB,oBAAoBzwuB,EAAYllF,GAC5B,IAAIwz0B,EACJ,OAAO,QAAUA,EAAoBpg1B,KAAKgqzB,kBAAe,WAA+B,EAASo2B,EAAkB9sxB,OAAOw+B,GAE9HmrvB,mBACI,IAAIoD,EACJ,eAAUA,EAAsBrg1B,KAAK860B,qBAAkB,QAAuD960B,KAAK860B,cAAgB,IAAIwF,IAAkBtg1B,OAClJA,KAAK860B,cAEhBrW,oBAAoB54zB,GAChB7L,KAAKgqzB,WAAWsqB,mBAAmBzo0B,GAEvCin0B,aACI9y0B,KAAKug1B,kBAAiB,GAE1BxN,eACI/y0B,KAAKug1B,kBAAiB,GAE1BnQ,4BAA4Bp6zB,EAAG6rI,GACtB7hJ,KAAKwg1B,sBACNxg1B,KAAKgqzB,WAAWwqB,mBAAmBx+zB,EAAE7D,IAAK0vI,GAC1C7hJ,KAAKmw0B,YAAYzN,gBAGzB6d,iBAAiB1+rB,EAAUjwC,EAAO8uf,GAC9B,IAAI+/O,EAaA3myB,EAZA4myB,EAAqB,GACrBC,EAAgB,GAOpB,GANA3g1B,KAAKw+zB,UAAUgL,YAAY1o0B,IACvB,IAAI4kzB,EACA,QAAUA,EAAiB5kzB,EAAKq7B,gBAAa,OAA6BupxB,EAAejhzB,QACzFi80B,EAAmBr30B,KAAKvI,KAG5B4/lB,EAAQ,CACR,IAAI5/lB,EAAOd,KAAKw+zB,UAAU1hU,aAAa4jG,GACvCkkN,yBAAkC9jzB,EAAM6/0B,GAG5C3g1B,KAAKwg1B,oBAAsBE,EAAmBj80B,OAAS,EACvD,IAAIy0B,EAAQwnzB,EAAmBntzB,OAAO,CAACkzK,EAAU3lM,EAAMyR,KAC/CmulB,EACA7+c,EAAW8+rB,EAAcn5zB,SAAS1mB,EAAKqR,KAChCy/F,IACPiwC,EAAW/gJ,EAAK8wG,MAAQA,GAE5B60F,EAAS3lM,EAAKqR,KAAO0vI,EACrB,IAAI90D,EAAS80D,EAAW7hJ,KAAKw+zB,UAAUr2P,UAAYnokB,KAAKw+zB,UAAUp2P,YAElE,OADa71jB,IAAUmu0B,EAAmBj80B,OAAS,EAE/Cq1C,EAAUizC,EAAOjsF,EAAKqR,KAEtB46E,EAAOjsF,EAAKqR,KAETs0L,GACR,IACH,QAAUg6oB,EAAW3myB,SAAY,IAAW2myB,GAAoBA,EAASt80B,KAAK,KAC1EnE,KAAKgqzB,WAAWwnB,wBAAwBt4yB,GACxCl5B,KAAKmw0B,YAAYzN,sBACV1i0B,KAAKwg1B,sBAGpBI,iBAAiBzu0B,GACb,SAAKuL,OAAUvL,GAGAnS,KAAKgqzB,WAAWwY,eAAeoe,iBAAiBzu0B,GAC/CuO,IAAIzJ,GAAKjX,KAAKm7yB,eAAeM,wBAAwBnE,GAAiBrgyB,IAH3E,KAKf4p0B,qBACI,OAAO7g1B,KAAKgqzB,WAAWwY,eAAeqe,qBAE1CC,2BACI,OAAO9g1B,KAAKgqzB,WAAWwY,eAAese,2BAE1CC,yBACI,OAAO/g1B,KAAKgqzB,WAAWwY,eAAeue,yBAE1CC,mCACI,OAAOhh1B,KAAKgqzB,WAAWwY,eAAewe,mCAE1C1lC,YAAYnpyB,GACR,OAAKuL,OAAUvL,GACX,OAAO,KAEX,IAAIqpyB,EAAWx7yB,KAAKgqzB,WAAWwY,eAAelnB,YAAYnpyB,GAE1D,OADiBnS,KAAKmj0B,sBAAsB3nB,GAGhD2nB,sBAAsB3nB,GAClB,IAAIG,EAAaH,EAAWx7yB,KAAKm7yB,eAAeM,wBAAwBrE,GAAaoE,GAAY,KACjG,YAAKJ,qBAAqB6N,oBAAoBzN,EAAS3vyB,GAAI8vyB,GACpDA,EAEXslC,WAAW700B,GACPpM,KAAKo7yB,qBAAqBc,4BAA4Bk+B,IAA0Bhu0B,GAChFpM,KAAKgqzB,WAAWwY,eAAeye,WAAWjh1B,KAAKm7yB,eAAeS,wBAAwBxE,GAAahryB,IAEvG800B,WAAW/u0B,GACPnS,KAAKgqzB,WAAWwY,eAAe0e,WAAW/u0B,GAE9Cgv0B,WAAWhv0B,EAAK/F,GACZ,IAAIg10B,EAAeph1B,KAAKm7yB,eAAeS,wBAAwBxE,GAAahryB,GACxEs9yB,GAA4Br9yB,OAAO0M,KAAKqo0B,GAAc380B,OAE1D,GADAzE,KAAKo7yB,qBAAqBc,4BAA4B/pyB,EAAK/F,GAAM,EAAMs9yB,GACnEA,EAA0B,CAC1B,IAAIC,EAAmB3pzB,KAAKo7yB,qBAAqB4N,qBAAqB58yB,GAClEC,OAAO0M,KAAK4wyB,GAAkBllzB,OAAS,GACvCzE,KAAKi5yB,gBAAgBK,oBAAoBlC,GAAa,CAClD/4uB,QAAQ,EACRlsD,IAAKA,EACL+hb,UAAW,UAInBl0b,KAAKgqzB,WAAWwY,eAAe2e,WAAWhv0B,EAAKiv0B,GAGvDnB,kBAAkB9t0B,GACd,OAAKuL,OAAUvL,GACX,OAAO,KAEX,IAAIqpyB,EAAWx7yB,KAAKgqzB,WAAWwY,eAAeyd,kBAAkB9t0B,GAChE,OAAOqpyB,EAAWx7yB,KAAKm7yB,eAAeM,wBAAwBpE,GAAoBmE,GAAY,KAElG6lC,iBAAiBj10B,GACbpM,KAAKgqzB,WAAWwY,eAAe6e,iBAAiBrh1B,KAAKm7yB,eAAeS,wBAAwBvE,GAAoBjryB,IAEpHk10B,iBAAiBnv0B,GACbnS,KAAKgqzB,WAAWwY,eAAe8e,iBAAiBnv0B,GAEpDov0B,gBAAgBpv0B,GACZ,IAAIqpyB,EAAWx7yB,KAAKgqzB,WAAWwY,eAAe+e,gBAAgBpv0B,GAC9D,OAAOqpyB,EAAWx7yB,KAAKm7yB,eAAeM,wBAAwBnE,GAAiBkE,GAAY,KAE/FgmC,eAAerv0B,GACXnS,KAAKgqzB,WAAWwY,eAAegf,eAAerv0B,GAElDsv0B,eAAer10B,EAAMs10B,GACjB1h1B,KAAKgqzB,WAAWwY,eAAeif,eAAezh1B,KAAKm7yB,eAAeS,wBAAwBtE,GAAiBlryB,GAAOs10B,GAEtHC,0BAA0Bxv0B,GACtB,IAAIqpyB,EAAWx7yB,KAAKgqzB,WAAWwY,eAAemf,0BAA0Bxv0B,GACxE,OAAOqpyB,EAAWx7yB,KAAKm7yB,eAAeM,wBAAwBlE,GAA4BiE,GAAY,KAE1GomC,qBAAqBC,EAAaC,GAC9B9h1B,KAAKgqzB,WAAWwY,eAAeof,qBAAqBC,EAAaC,GAErEC,yBAAyBF,EAAaC,GAClC9h1B,KAAKgqzB,WAAWwY,eAAeuf,yBAAyBF,EAAaC,GAEzEE,6BAA6BF,GACzB9h1B,KAAKgqzB,WAAWwY,eAAewf,6BAA6BF,GAEhE7tsB,mBACIj0I,KAAKmw0B,YAAYnO,kBAErBigB,aAAanquB,GACT93G,KAAKgqzB,WAAWwY,eAAeyf,aAAanquB,GAEhDoquB,4BACIli1B,KAAKgqzB,WAAWwY,eAAe2f,sBAEnCC,sBAAsBN,GAClB9h1B,KAAKgqzB,WAAWwY,eAAe4f,sBAAsBN,GAEzDO,YAAYzwzB,GACR,OAAO5xB,KAAKsi1B,aAAa1wzB,GAE7B0wzB,aAAa1wzB,GACT,IAAI2wzB,EAAuBC,EAAuBC,EAAqBC,EAAeC,EACtF3i1B,KAAK860B,cAAcvxzB,QACnB,IAAIq5zB,GAAcvj0B,QAAO,GAAIuS,GAC7B,OAAIgxzB,EAAYC,uBACZD,EAAYE,gBAAkBF,EAAYC,sBAE9C,QAAUN,EAAwBK,EAAYG,mBAAgB,IAAWR,IAAgDK,EAAYG,YAAcH,EAAYI,eAC/J,QAAUR,EAAwBI,EAAYE,uBAAoB,IAAWN,IAAgDI,EAAYE,gBAAkB,QAAUL,EAAsB,QAAUC,EAAgBzg1B,IAAOgh1B,aAAU,WAA2B,EAASP,EAAcQ,aAAU,MAAiCT,EAAsBxg1B,IAAOih1B,OAChW,QAAUP,EAAsBC,EAAYzivB,cAAW,IAAWwivB,IAA4CC,EAAYzivB,OAAS,MAC5H,IAAIvsE,QAAQC,IACf,IAAIsvzB,EAEJtvzB,EADU,QAAUsvzB,EAAoBnj1B,KAAKgqzB,kBAAe,WAA+B,EAASm5B,EAAkB3gB,eAAe6f,YAAYO,MAIzJxquB,UACI,OAAO,IAAIxkF,QAAQ,CAACC,EAASgmB,KACzB,IACI75C,KAAKi70B,gBACLpnzB,UACK7d,GACL6jC,EAAO7jC,EAAEwkB,YAIrB8zI,YACItuK,KAAK8y0B,aAET1kqB,cACIpuK,KAAK+y0B,eAETqQ,iBAAiBxxuB,GACb5xG,KAAKug1B,kBAAiB,EAAO3uuB,GAEjCyxuB,aAAalx0B,GACT,IAAIyzyB,EACA9kzB,EAAOd,KAAKw+zB,UAAU1hU,aAAa3qf,GACvCnS,KAAKug1B,kBAAiB,EAAO,EAAG,MAASz/0B,GAAmC,QAAU8kzB,EAAe9kzB,EAAKiM,cAAW,IAAW64yB,OAA7D,EAAqFA,EAAazzyB,KAEzKmx0B,aAAanx0B,GACTnS,KAAKw+zB,UAAUp2P,YAAYj2jB,GAE/Box0B,WAAWpx0B,GACPnS,KAAKw+zB,UAAUr2P,UAAUh2jB,GAE7Bs0yB,cAAc75yB,GACV5M,KAAKszD,OAAO,gBAAiB1mD,GAEjC85yB,iBAAiB95yB,GACb5M,KAAKszD,OAAO,mBAAoB1mD,GAEpC420B,SACIxj1B,KAAKgqzB,WAAWwY,eAAeghB,SAEnCC,UACIzj1B,KAAKgqzB,WAAWwY,eAAeihB,UAEnClvvB,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsBqwtB,wBAE9CrutB,eAAe59E,GACX,IAAI+q0B,EAAuBC,EAAmBC,EAAuBC,EAAuBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAyBC,GAAuBC,GAAuBC,GAAuBC,GAAwBC,GAAwBC,GAAwBC,GAAuBC,GAAoBC,GAAoBC,GAAwBC,GAAwBC,GAC19B,OAAQxt0B,EAAKtV,UACJ,QACDrD,KAAK07G,mBAAmB07rB,IACxB,UACC,eACDp3yB,KAAK07G,mBAAmB27rB,IACxB,UACC,YACDr3yB,KAAK07G,mBAAmB47rB,IACxB,UACC,sBACDt3yB,KAAK07G,mBAAmB67rB,IACxB,UACC,UACD,QAAUmsC,EAAwB1j1B,KAAK8pzB,sBAAmB,OAA4C45B,EAAsBloV,UAAU,UAAWx7f,KAAK8pzB,eAAe15S,cACrK,UACC,gBACD,QAAUuzU,EAAoB3j1B,KAAKmw0B,mBAAgB,OAAwCwT,EAAkBxhB,wBAC7G,UACC,gBACDni0B,KAAK2h0B,oBAAoB,gBAAiBhpzB,EAAK/L,OAC/C,UACC,mBACD5M,KAAK2h0B,oBAAoB,mBAAoBhpzB,EAAK/L,OAClD,UACC,oBACD5M,KAAK2h0B,oBAAoB,oBAAqBhpzB,EAAK/L,OACnD,UACC,iBACD5M,KAAK2h0B,oBAAoB,iBAAkBhpzB,EAAK/L,OAChD,UACC,iBACD5M,KAAK2h0B,oBAAoB,iBAAkBhpzB,EAAK/L,OAChD,UACC,eACD5M,KAAK2h0B,oBAAoB,eAAgBhpzB,EAAK/L,OAC9C,UACC,iBACD,QAAUg30B,EAAwB5j1B,KAAK8pzB,sBAAmB,OAA4C85B,EAAsB52R,WAAW43P,0BAAmCjsyB,EAAK/L,QAC/K,UACC,qBACD,QAAUi30B,EAAwB7j1B,KAAKi5yB,uBAAoB,OAA4C4qC,EAAsBlnC,+BAC7H,UACC,cACD,QAAUmnC,EAAyB9j1B,KAAKi5yB,uBAAoB,OAA6C6qC,EAAuBvnC,wBAChI,UACC,iBACD,QAAUwnC,EAAyB/j1B,KAAKi5yB,uBAAoB,OAA6C8qC,EAAuB5nC,2BAChI,UACC,kBACD,QAAU6nC,EAAyBhk1B,KAAKi5yB,uBAAoB,OAA6C+qC,EAAuBpmC,4BAChI,UACC,iBACD,QAAUqmC,EAAyBjk1B,KAAKi5yB,uBAAoB,OAA6CgrC,EAAuBnlC,2BAChI,UACC,iBACD,QAAUolC,EAAyBlk1B,KAAKi5yB,uBAAoB,OAA6CirC,EAAuBnkC,2BAChI,UACC,gBACD,QAAUokC,EAAyBnk1B,KAAKi5yB,uBAAoB,OAA6CkrC,EAAuBljC,0BAChI,UACC,iBACD,QAAUmjC,EAAyBpk1B,KAAKi5yB,uBAAoB,OAA6CmrC,EAAuBjiC,2BAChI,UACC,gBACD,QAAUkiC,EAAyBrk1B,KAAKi5yB,uBAAoB,OAA6CorC,EAAuB5hC,0BAChI,UACC,eACD,QAAU6hC,GAA0Btk1B,KAAKi5yB,uBAAoB,QAA8CqrC,GAAwB/gC,yBACnI,UACC,0BACD,QAAUghC,GAA0Bvk1B,KAAKi5yB,uBAAoB,QAA8CsrC,GAAwB3hC,oCACnI,UACC,iCACD,QAAU4hC,GAA0Bxk1B,KAAKi5yB,uBAAoB,QAA8CurC,GAAwBthC,2CACnI,UACC,wBACD,QAAUuhC,GAA0Bzk1B,KAAKi5yB,uBAAoB,QAA8CwrC,GAAwB1mC,kCACnI,UACC,uBACD,QAAU2mC,GAA0B1k1B,KAAKi5yB,uBAAoB,QAA8CyrC,GAAwBzlC,iCACnI,UACC,uBACD,QAAU0lC,GAA0B3k1B,KAAKi5yB,uBAAoB,QAA8C0rC,GAAwBzkC,iCACnI,UACC,sBACD,QAAU0kC,GAA0B5k1B,KAAKi5yB,uBAAoB,QAA8C2rC,GAAwBxjC,gCACnI,UACC,sBACD,QAAUyjC,GAA0B7k1B,KAAKi5yB,uBAAoB,QAA8C4rC,GAAwB3mC,gCACnI,UACC,qBACD,QAAU4mC,GAA0B9k1B,KAAKi5yB,uBAAoB,QAA8C6rC,GAAwB1lC,+BACnI,UACC,qBACD,QAAU2lC,GAA0B/k1B,KAAKi5yB,uBAAoB,QAA8C8rC,GAAwB1kC,+BACnI,UACC,oBACD,QAAU2kC,GAA0Bhl1B,KAAKi5yB,uBAAoB,QAA8C+rC,GAAwBzjC,8BACnI,UACC,sBACD,QAAU0jC,GAA0Bjl1B,KAAKi5yB,uBAAoB,QAA8CgsC,GAAwB5mC,gCACnI,UACC,qBACD,QAAU6mC,GAA0Bll1B,KAAKi5yB,uBAAoB,QAA8CisC,GAAwB3lC,+BACnI,UACC,wBACD,QAAU4lC,GAA0Bnl1B,KAAKi5yB,uBAAoB,QAA8CksC,GAAwB3kC,kCACnI,UACC,uBACD,QAAU4kC,GAA0Bpl1B,KAAKi5yB,uBAAoB,QAA8CmsC,GAAwB1jC,iCACnI,UACC,kBACD,QAAU2jC,GAA0Brl1B,KAAKi5yB,uBAAoB,QAA8CosC,GAAwBtoC,4BACnI,UACC,yBACD,QAAUuoC,GAA0Btl1B,KAAKi5yB,uBAAoB,QAA8CqsC,GAAwBpoC,mCACnI,UACC,sBACD,QAAUqoC,GAA0Bvl1B,KAAKi5yB,uBAAoB,QAA8CssC,GAAwB3hC,gCACnI,UACC,iBACD,QAAU4hC,GAAwBxl1B,KAAK8pzB,sBAAmB,QAA4C07B,GAAsBhqV,UAAU,iBAAkBopT,oBAA6BjsyB,EAAK/L,QAC1L5M,KAAK2h0B,oBAAoB,iBAAkBhpzB,EAAK/L,OAChD,UACC,eACD,QAAU640B,GAAwBzl1B,KAAK8pzB,sBAAmB,QAA4C27B,GAAsBjqV,UAAU,eAAgB7if,EAAK/L,OAC3J5M,KAAK2h0B,oBAAoB,eAAgBhpzB,EAAK/L,OAC9C,UACC,aACD5M,KAAK2h0B,oBAAoB,aAAchpzB,EAAK/L,OAC5C,UACC,YACD5M,KAAK2h0B,oBAAoB,YAAahpzB,EAAK/L,OAC3C,UACC,iBACD5M,KAAK2h0B,oBAAoB,iBAAkB3h0B,KAAKszD,OAAO36C,EAAKtV,OAC5D,UACC,UACDrD,KAAK2h0B,oBAAoB,UAAW3h0B,KAAKszD,OAAO36C,EAAKtV,OACrD,UACC,aACDrD,KAAK2h0B,oBAAoB,aAAc3h0B,KAAKszD,OAAO36C,EAAKtV,OACxD,UACC,UACDrD,KAAKu70B,wBACL,UACC,cACDv70B,KAAK070B,qBACL,UACC,6BACD170B,KAAK2h0B,oBAAoB,6BAA8B,QAAU+jB,GAAwB1l1B,KAAK870B,8BAA2B,YAAmC,EAAS4J,GAAsBziB,kCAAkCtqzB,EAAK/L,QAClO,UACC,qCACD5M,KAAK2h0B,oBAAoB,qCAAsC,QAAUgkB,GAAyB3l1B,KAAK870B,8BAA2B,YAAoC,EAAS6J,GAAuBviB,0CAA0CzqzB,EAAK/L,QACrP,UACC,iCACD5M,KAAK2h0B,oBAAoB,iCAAkC,QAAUikB,GAAyB5l1B,KAAK870B,8BAA2B,YAAoC,EAAS8J,GAAuBviB,sCAAsC1qzB,EAAK/L,QAC7O,UACC,sBACD5M,KAAK2h0B,oBAAoB,sBAAuB,QAAUkkB,GAAyB7l1B,KAAK870B,8BAA2B,YAAoC,EAAS+J,GAAuBviB,2BAA2B3qzB,EAAK/L,QACvN,UACC,YACD,QAAUk50B,GAAwB9l1B,KAAK8pzB,sBAAmB,QAA4Cg8B,GAAsBtqV,UAAU,YAAa7if,EAAK/L,OACxJ,UACC,QACD9M,MAAMy2F,eAAe59E,GACrB,QAAUot0B,GAAqB/l1B,KAAKmw0B,mBAAgB,QAAyC4V,GAAmB9jB,mBAChH,UACC,SACDni0B,MAAMy2F,eAAe59E,GACrB,QAAUqt0B,GAAqBhm1B,KAAKmw0B,mBAAgB,QAAyC6V,GAAmB9jB,gBAAex8vB,SAAU1lE,KAAKwiF,YAC9I,UACC,UACD,QAAUyjwB,GAAyBjm1B,KAAK8pzB,sBAAmB,QAA6Cm8B,GAAuBzqV,UAAU,UAAWx7f,KAAKszD,OAAO36C,EAAKtV,OACrK,UACC,YACD,QAAU6i1B,GAAyBlm1B,KAAK8pzB,sBAAmB,QAA6Co8B,GAAuB1qV,UAAU,YAAax7f,KAAKszD,OAAO36C,EAAKtV,OACvK,UACC,eACD,QAAU8i1B,GAAyBnm1B,KAAK8pzB,sBAAmB,QAA6Cq8B,GAAuB3qV,UAAU,eAAgBx7f,KAAKszD,OAAO36C,EAAKtV,OAC1K,cAEAvD,MAAMy2F,eAAe59E,WClJ/Byt0B,UAAN,SAEmBA,SAAc3/0B,UAAO,SAA+BP,GAAK,OAAO,IAAKA,GAAKkg1B,IAC1EA,EAAcnx0B,UAAiCtO,MAAoB,CAAE8E,KAAM260B,IAC3EA,EAAclx0B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACtFo1I,GACAkN,GACAiC,GACAgO,GACAxc,GACAzG,GACAiJ,IACAqF,GACA+C,GACAwJ,GACA4P,GACA1M,IACAE,IACAqB,IACA2F,GACAmB,IACAU,IACA0E,GACAe,IACA/2G,GACA1H,IACDg4F,GACHkN,GACAiC,GACAgO,GACAxc,GACAzG,GACAiJ,IACAqF,GACA+C,GACAwJ,GACA4P,GACA1M,IACAE,IACAqB,IACA2F,GACAmB,IACAU,IACA0E,GACAe,IACAz+G,MA7CF6zxB,UC5yBFC,6BCCG,eACH,IAAKC,KACD,MAAMpsvB,SAAa,QAAS,SAEhC,OAAOosvB,KDJX,GAAIA,KAAO,CACP,IAAIC,IAAQD,YAAa,cACzBD,GAAY,cAAcE,IACtB1m1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKwm1B,MAAM71zB,KAAK9iB,UAAUpF,IAAI,yBAC9BzI,KAAKwm1B,MAAM71zB,KAAKhuB,aAAa,OAAQ,WACrC3C,KAAKwm1B,MAAM71zB,KAAKhuB,aAAa,aAAc,yBAInD0j1B,GAAY,GAEhB,UAAeA,GEXf,IAAII,GAAW,GACf,GAAIH,KAAO,CACP,IAAIv/f,IAAQu/f,YAAa,iBACzBG,GAAW,cAAc1/f,IAAM5mV,cACbiM,GACV,IACItL,EAAOhB,MAAMwM,OADPF,GAAQA,EAAKslM,KAAOtlM,GAE9B,IAAI4Q,SAAS5Q,GAAO,CAChB,IAAIzJ,EAAe,CAACysE,EAAMxiE,KACtBR,EAAKgjE,IAAStuE,EAAK6B,aAAaysE,EAAMxiE,IAE1CjK,EAAa,MAAOyJ,EAAK4E,KACzBrO,EAAa,QAASyJ,EAAKwzD,OAC3Bj9D,EAAa,SAAUyJ,EAAK0zD,QAEhC,OAAOh/D,iBAEI4l1B,GACX,IAAIvzrB,EAAUrzJ,MAAMqzJ,QAAQuzrB,GAC5BvzrB,SAAQ9R,SAAWqlsB,EAAQnk1B,aAAa,OACjC4wJ,EAEXA,UACI,IAAIA,EAAUrzJ,MAAMqzJ,UAChBwzrB,EAAa3m1B,KAAK0m1B,QAAQn+0B,MAAMk1E,MACpC,OAAIkpwB,IACAxzrB,EAAQ11E,MAAQkpwB,GAEbxzrB,EAEXhzD,OAAO98F,EAAMuJ,GACL,YACA5M,KAAK0m1B,QAAQn+0B,MAAMlF,GAAQuJ,EAE3B9M,MAAMqgG,OAAO98F,EAAMuJ,gBAGd850B,GACT,MAAO,CACHh1oB,IAAKg1oB,EAAQnk1B,aAAa,OAC1Bq9D,MAAO8mxB,EAAQnk1B,aAAa,SAC5Bu9D,OAAQ4mxB,EAAQnk1B,aAAa,UAC7ByO,IAAK010B,EAAQnk1B,aAAa,UAItCkk1B,GAASG,SAAW,gBAExB,UAAeH,GChDf,IAAII,IAAU,GACd,GAAIP,KAAO,CACP,IAAIQ,IAAOR,YAAa,gBACxBO,IAAU,kBAAsBC,IAAK3m1B,cACnBiM,GACV,IAAI260B,EACAC,EAAO,QAAUD,EAAa,aAAmC,EAAS360B,EAAKhK,YAAS,IAAW2k1B,EAAaA,EAAa360B,EAC7HtL,EAAOhB,MAAMwM,OAAO060B,GACxB,OAAIhq0B,SAAS5Q,KACLA,EAAKqK,OACL3V,EAAKmm1B,UAAY760B,EAAKqK,MAErBrK,EAAKpK,QACNlB,EAAK4M,gBAAgB,WAGtB5M,iBAEI4l1B,GACX,MAAO,CACHtk1B,KAAMsk1B,EAAQnk1B,aAAa,QAC3BP,OAAQ0k1B,EAAQnk1B,aAAa,WAGrC4wJ,UACI,IAAIA,EAAUrzJ,MAAMqzJ,WAEhB/wJ,KAAMA,EACNJ,OAAQA,GACR6k1B,IAAQ1zrB,QAAQnzJ,KAAK0m1B,SACzBvzrB,SAAQvkB,KAAOxsI,EACf+wJ,EAAQnxJ,OAASA,EACVmxJ,EAEXhzD,OAAO98F,EAAMuJ,GACL,aAAmBoQ,SAASpQ,IACxBA,EAAM6J,OACNzW,KAAK0m1B,QAAQO,UAAYr60B,EAAM6J,MAE/B7J,EAAM5K,OACNhC,KAAK0m1B,QAAQ/j1B,aAAa,SAAU,UAEpC3C,KAAK0m1B,QAAQh50B,gBAAgB,UAEjC1N,KAAK0m1B,QAAQ/j1B,aAAa,OAAQiK,EAAMxK,OAExCtC,MAAMqgG,OAAO98F,EAAMuJ,gBAGd850B,GACT,MAAO,CACHtk1B,KAAMsk1B,EAAQnk1B,aAAa,QAC3BkU,KAAMiw0B,EAAQO,UACdjl1B,SAAU0k1B,EAAQnk1B,aAAa,aAK/C,UAAesk1B,IC7Df,IAAIK,GAAY,GACZZ,QACAY,GAAYZ,YAAa,2BACfa,UAAY,MAE1B,UAAeD,GCLf,IAAIE,GAAY,GACZd,QACAc,GAAYd,YAAa,2BACfa,UAAY,MAE1B,UAAeC,GCLf,IAAIC,GAAa,GACbf,OACAe,GAAaf,YAAa,4BACfa,UAAU990B,KAAK,QAE9B,UAAeg+0B,GCAf,IAAIC,ICNW,YDOf,GAAIhB,KAAO,CACP,IAAIiB,IAAkBjB,YAAa,eACnCgB,IAAa,cAAcC,IACvB1n1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKojnB,eAAiBxxlB,EAAQwxlB,eAElCjxI,qBAAqBrne,GACjB9K,KAAKojnB,eAAe3rY,sBAAsB3sO,GAE9C080B,iBAAiB9h1B,GACb1F,KAAKojnB,eAAeokO,iBAAiB9h1B,GAEzC+h1B,wBAAwBxxzB,MAChBjZ,OAASiZ,GACT5pB,OAAOg1G,QAAQprF,GAASjwB,QAAQgd,IAC5B,IAAK3f,EAAMuJ,GAASoW,EACpB,OAAOhjB,KAAKszD,OAAOjwD,EAAMuJ,QAErB8Q,OAAUuY,UACTj2B,MAAmCA,KAAKi7O,UAKjE,SAAeqsmB,IE7BA,UACXzn1B,cACIG,KAAK0n1B,YAAc,GAEvBp0zB,QACItzB,KAAK0n1B,YAAc,GAEvBj/0B,IAAIpF,EAAM4nC,GACNjrC,KAAK0n1B,YAAYr+0B,KAAK,CAClBhG,KAAMA,EACN4nC,SAAUA,IAGlBpqC,OAAOwC,GACHrD,KAAK0n1B,YAAc1n1B,KAAK0n1B,YAAY5g0B,OAAOlK,GAAQA,EAAKvZ,OAASA,GAErEsk1B,UAAUpvvB,GACN,IAAIC,EAAS,KACb1vB,gBAAK9oE,KAAK0n1B,YAAa,CAACn10B,EAAOyQ,KAC3B,IACI3f,KAAMA,EACN4nC,SAAUA,GACVjoB,EACJ,GAAI3f,IAASk1F,EACTC,SAASvtD,GACF,IAGRutD,EAEX1vB,KAAKphE,GACD1H,KAAK0n1B,YAAY1h1B,QAAQs0F,IACrB,IACIj3F,KAAMA,EACN4nC,SAAUA,GACVqvD,EACJ,OAAOrvD,GAAYvjC,EAAQrE,EAAM4nC,MChC7C,IAAI28yB,IAAgB,CAAC,QAAS,mBAC1BC,IAAmB,CAAC,cAAe,kBAAmB,iBAAkB,iBAAkB,mBAAoB,oBAAqB,eAAgB,YAAa,cAAe,iBAAkB,mBAErM,aAAyBrB,GACrB,IAAIsB,EAActB,EAAMuB,UAAU,SAClC,OAAO,SAAkDD,EAAYE,aAAeF,EAAYE,eAAiBJ,IAOrH,YAAyBtpU,EAAQt7f,GAC7B,IACIil0B,UAAWA,EACXzB,MAAOA,GACPxj0B,GACa,MAASil0B,EAAoCA,EAAYzB,EAAMx5kB,OAAOvnO,KAAK64e,EAAOt6gB,IAAI,KAC5Fm8F,OAAO,aAAc,WAGpC,YAA2Bm+a,GACvB,IAAI/rgB,EAAQxS,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,EAC7E,OAAOu+gB,EAAO74e,KAAK,MAAM0hF,GAAG50G,GAAOkzB,KAAK,UAG5C,YAA8B64e,GAC1B,IAAI10c,EAAY7pE,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,aAC7E2S,EAAS,GACTs2V,EAAe,iBACfk/e,EAAgBl/e,EAAesnK,GAAkBgO,GAAU6pU,GAAe7pU,GAC9E4pU,SAAcp/wB,KAAK,CAACv2D,EAAO/K,KACvB,IAAI2zD,KAAWC,MAAE5zD,GACb,OAAgBxD,IAAI,GAAGuE,MAAMygW,EAAe,QAAU,WACtDt2V,EAAOrJ,KAAK8xD,KAGbzoD,EAGX,YAA+B62B,EAAQ+wD,GACnC,IACI7rB,SAAUA,EACVw6C,SAAUA,EACVr8G,MAAOA,GACP0tF,EACA8tvB,EAAiB7+yB,EAAOi9yB,MAAMuB,UAAU,SAASM,WACjDC,EAAmB,OAAOzm0B,QAAOy8L,SAASr1F,GAAU,KACxDngD,SAAK2F,EAAU,CAACjqE,EAAGgD,KACf,IAAI+g1B,EACAC,EAAaj/yB,EAAOi9yB,MAAMx5kB,OAAOvnO,KAAKj+B,GAC1C,IAAK4g1B,EAAe5g0B,SAASgh0B,EAAWC,QAAQ7B,UAAW,CACvD,IAAI8B,EAAcF,EAAWG,WAAWC,GAAQR,EAAe5g0B,SAASoh0B,EAAKH,QAAQ7B,WACrF4B,EAAaE,EAAcA,EAAY,GAAK,KAEhD,QAAUH,EAAcC,SAAe,IAAWD,GAAuBA,EAAYpovB,OAAOmovB,EAAkB170B,EAAQ,QAI9H,YAAyB0xgB,EAAQ/rgB,GAC7B,IAAIq3D,EAAY7pE,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,aACjF,MAAO,iBAA6Boo1B,GAAe7pU,EAAQ/rgB,GAAS+9f,GAAkBgO,EAAQ/rgB,GAGlG,YAAwB+rgB,GACpB,IAAI/rgB,EAAQxS,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,EAC7E,OAAOu+gB,EAAO74e,KAAK,gBAAgB5jB,OAAO,EAAItP,EAAO,oBAAoBsP,OAAO,EAAItP,EAAO,MAG/F,YAAkCi00B,EAAOh7S,GACrC,QAASn9c,EAAOtuF,UAAU0E,OAAQ47F,EAAO,IAAIz3F,MAAMylF,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAChG+R,EAAK/R,EAAO,GAAKvuF,UAAUuuF,GAE/B,MAAO,KACH,IAAIw9W,EAAQ06Y,EAAMuB,UAAU,SAC5B,GAAKj8Y,EAGL06Y,SAAMnqvB,QACCyvW,EAAM0/F,MAAkBnrc,ICpFvC,IAAIkR,IAAY,CAAC,WAAY,OAoBzBgnkB,IAAW,aAAYv1mB,UAAkBxB,WAgBzCqnxB,IAAoB,gBAOjB,UACHhp1B,YAAY0pC,EAAQxlB,GAChB/jB,KAAKupC,OAASA,EACdvpC,KAAK+jB,OAAS,QAAuCA,EAAS,GAC9D/jB,KAAKwm1B,MAAQxm1B,KAAKupC,OAAOi9yB,MACzBxm1B,KAAKojnB,eAAiBpjnB,KAAKupC,OAAO65kB,eAEtCnxjB,SACQjyD,KAAKojnB,eAAe0lO,cACpB9o1B,KAAKojnB,eAAe0lO,YAAYC,sBAAwB,IAAM/o1B,KAAKgp1B,gBAAgBrlH,UAEvF3juB,KAAKip1B,cAAgB,EACrBjp1B,KAAKo2J,SAAWp2J,KAAK48zB,cACrB58zB,KAAKkp1B,WAAalp1B,KAAKmp1B,kBACvBnp1B,KAAKop1B,UAAYpp1B,KAAKqp1B,gBAAgBrp1B,KAAK+jB,OAAO48H,MAClD3gJ,KAAK2gJ,KAAO3gJ,KAAKsp1B,WAAWtp1B,KAAKo2J,UACjC,IAAImzrB,EAAavp1B,KAAKwp1B,gBACtBxp1B,KAAKyp1B,oBACLzp1B,KAAK0p1B,uBACL1p1B,KAAKojnB,eAAeumO,eAAeJ,GAAYr1wB,KAAK,CAACkiF,EAAUtrJ,KAC3D9K,KAAK2gJ,KAAK3gJ,KAAK4p1B,qBAAqBtyxB,SAASuyxB,WAAWzzrB,EAAUtrJ,KACnEgpE,OAAO,KACN9zE,KAAK8p1B,0BACL9p1B,KAAKwm1B,MAAMnqvB,UAGnB2svB,gBACI,OAAOhp1B,KAAK2gJ,KAAK3gJ,KAAKip1B,eAE1BS,uBACI,IAAI5k0B,EAAa9kB,KAAKgp1B,gBAAgBe,kBACtC/p1B,KAAKgq1B,qBAAqBll0B,GAE9Bkl0B,qBAAqBp90B,GACjB5M,KAAKojnB,eAAe6mO,iBAAiB,CACjC,mCAAoCr90B,IAG5Cg90B,oBACI,OAAO5p1B,KAAKkp1B,WAAa,EAAIlp1B,KAAKip1B,cAEtCrsB,cACI,OAAO58zB,KAAKkq1B,wBAAwBlq1B,KAAKwm1B,MAAM5wf,aAEnDs0f,wBAAwB9zrB,GACpB,IACI/U,SAAUA,EACVqwD,IAAKA,GACLt7C,EAAUjkF,EAAQ4/B,GAA8BqkD,EAAU7kD,KAC9D,SAAO5kB,MAAS,CACZ+kH,IAAK,QAA2CrwD,EAAWqwD,GAC5Dv/H,GAEPg4wB,aAAa/zrB,GACT,OAAO,IAAIg0rB,IAAOpq1B,KAAKupC,OAAQ,CAC3BxlB,OAAQ/jB,KAAK+jB,OACbqyI,SAAUA,EACV8yrB,WAAYlp1B,KAAKkp1B,YAClB,IAAMlp1B,KAAK0p1B,wBAElBW,gBACI,OAAO,IAAIC,IAAQtq1B,KAAKupC,OAAQ,CAC5BxlB,OAAQ/jB,KAAK+jB,QACd,IAAM/jB,KAAK0p1B,wBAElBL,kBACI,IAAI1yzB,EAAQ52B,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,GAC7E,OAAI,IAAM42B,EAAMlyB,QAAUzE,KAAKkp1B,WACpB,CAAC,OAELvyzB,EAAMjW,IAAI+uD,GAAO,iBAAoBA,EAAMA,EAAIpsE,KAAOosE,GAEjE65wB,WAAWlzrB,GACP,OAAOp2J,KAAKop1B,UAAU1o0B,IAAI6p0B,GACP,UACGvq1B,KAAKmq1B,aAAa/zrB,GAAYp2J,KAAKqq1B,iBAG7DlB,kBACI,IAAIqB,EACJ,OAAOn+0B,OAAO8tB,UAAUjnB,eAAeknB,KAAK,QAAUowzB,EAAwBxq1B,KAAKupC,OAAOi9yB,MAAM5wf,mBAAgB,IAAW40f,EAAwBA,EAAwB,GAAI,YAEnLf,oBACI,IAAIgB,EAAiB,GAAG5o0B,OA7FD,gCA6FkC,KAAKA,OAAOgn0B,KACjE7o1B,KAAK0q1B,mBACLD,GAAkB,IAAI5o0B,OA9FO,4CAgGjC,IACI8o0B,EAAmB3q1B,KAAKkp1B,WAvGH,uCADH,oCAyGtBlp1B,KAAKojnB,eAAe6mO,iBAAiB,CACjCx4sB,MAAOkxI,UAHI3iR,KAAKkp1B,WA5GM,wCADP,mCAiHf,+BAAgCvmkB,UAA2BgokB,GAC3Dh7rB,YAAa,CACT3sD,MAAOynvB,KAInBX,0BACI9p1B,KAAKojnB,eAAe6mO,iBAAiB,CACjC,+BAAgCtnkB,UAA2B,MAC3D,mCAAmC,EACnC,oCAAoC,EACpChzH,YAAa,CACT3sD,MAAO6lvB,OAInB6B,iBACI,OAAO1q1B,KAAKop1B,UAAU3k1B,OAAS,EAEnCmm1B,eACI,OAAOryK,IAAW,OAAS,IAE/BixK,gBACI,MAAO,CACHpzrB,SAAUp2J,KAAKo2J,SACfx2F,MAAO5/D,KAAK4q1B,eACZt0rB,cAAe,MACf9V,SAAUxgJ,KAAK0q1B,iBAAmB,EAAI,GACtCr2xB,MAAOr0D,KAAK6q1B,kBAGpBA,iBACI,GAAI7q1B,KAAK0q1B,iBAAkB,CACvB,IAAII,GAAapq0B,SAAI1gB,KAAK2gJ,KAAMoqsB,IAAkB,CAC9Ct5sB,MAAOs5sB,EAAcC,aACrBxqsB,SAAU,GACVnsF,MAAO02xB,EAAcF,oBAEzB,MAAO,CAAC,CACJ1qsB,SAAU,SACVO,gBAAiB,CACb1pB,mBAAoBhhH,IAChBhW,KAAKip1B,cAAgBjz0B,EAAExH,UAAU8kD,OAAO,iBACxCtzD,KAAK0p1B,yBAGb/osB,KAAMmqsB,IAGd,OAAO9q1B,KAAK2gJ,KAAK,GAAGkqsB,kBAG5B,UACIhr1B,YAAY0pC,EAAQvmB,EAAMio0B,GACtB,IACIln0B,OAAQA,EACRqyI,SAAUA,EACV8yrB,WAAYA,GACZlm0B,EACJhjB,KAAKupC,OAASA,EACdvpC,KAAK+jB,OAASA,EACd/jB,KAAKo2J,SAAWA,EAChBp2J,KAAKkp1B,WAAaA,EAClBlp1B,KAAKir1B,eAAiBA,EACtBjr1B,KAAKs3D,SAAWt3D,KAAKkr1B,iBAEzBL,iBACI,OAAO7q1B,KAAKs3D,SAASuzxB,iBAEzBK,iBACI,OAAOlr1B,KAAKkp1B,WAAa,IAAIiC,IAAkBnr1B,KAAKupC,OAAQvpC,KAAK+jB,OAAQ/jB,KAAKo2J,UAAY,IAAIg1rB,IAAepr1B,KAAKupC,OAAQvpC,KAAK+jB,OAAQ/jB,KAAKir1B,gBAEhJlB,kBACI,OAAO,EAEXpmH,SACI,OAAO3juB,KAAKs3D,SAASqsqB,UAG7B,kBAAqB0nH,IACjBL,aACI,OAAOrokB,UA1LgB,uCA6L/B,kBAAsB0okB,IAClBL,aACI,OAAOrokB,UA9LgB,sCAgM3BuokB,iBACI,OAAO,IAAII,IAAatr1B,KAAKupC,OAAQvpC,KAAK+jB,OAAQ/jB,KAAKir1B,gBAE3DlB,kBACI,OAAQ/p1B,KAAKs3D,SAASmuG,WAG9B,UACI5lK,YAAY0pC,EAAQxlB,GAChB/jB,KAAKupC,OAASA,EACdvpC,KAAK+jB,OAASA,EACd/jB,KAAKojnB,eAAiB75kB,EAAO65kB,eAC7BpjnB,KAAKwm1B,MAAQj9yB,EAAOi9yB,MACpBxm1B,KAAKg2M,UAAYh2M,KAAKur1B,oBAE1BA,oBACI,IAAIv1oB,EAAYh2M,KAAKwm1B,MAAMvwoB,eAC3B,OAAO,QAA6CD,EAAY,CAC5DzjM,MAAOvS,KAAKwm1B,MAAM/nb,YAClBh6Z,OAAQ,GAGhBol1B,cACApkrB,UACI,OAAO,EAEXk+jB,WAEJ,kBAA6BzlpB,IACzBr+E,YAAY0pC,EAAQxlB,EAAQkn0B,GACxBnr1B,MAAMypC,EAAQxlB,EAAQkn0B,GACtBjr1B,KAAKynN,uBAAwB,EAEjCoioB,WAAWzzrB,EAAUtrJ,GACjB9K,KAAKupC,OAAO4oc,qBAAqBrne,GACjC0g1B,IAAUxr1B,KAAKwm1B,MAAOxm1B,KAAKg2M,UAAUzjM,MAAO6jJ,GAEhD4tD,gBAAgB53M,EAAMkuF,GAClB,IACImxvB,gBAAiBA,EACjBz10B,EAAGA,GACHskF,EACAzvE,EAAW9X,SAASiD,EAAEpJ,OACtBypB,EAAgBtjB,SAASiD,EAAEqgB,eAC3Bq1zB,EAA+B340B,SAAS040B,EAAgBn4xB,OAAO,UACnElnD,EAAKoC,UAAU41W,WAAWh4W,EAAK0zI,UAAWj1H,GACtC7qB,KAAKynN,uBAAyBikoB,GAAgCr1zB,IAAkBr2B,KAAK2r1B,uBACrF3r1B,KAAK2r1B,sBAAuB,EAC5BF,EAAgBn4xB,OAAO,QAAS/4C,KAAK2zC,MAAMrjC,EAAW6g0B,EAA+B340B,SAASsjB,IAAgB7e,aAElHxX,KAAK2r1B,sBAAuB,EAEhCC,4BAA4B7hwB,EAAY39E,EAAMy/0B,GAC1C,OAAO7r1B,KAAKojnB,eAAezqhB,iBAAiB5O,EAAYgkK,IAAS1uO,SAAO,EAAMjT,EAAK2zI,cAAe,CAC9FnzI,MAAOR,EAAKoC,UAAU8kD,OAAO,YAAYlnD,EAAK0zI,WAC9CmmB,WAAY75J,EAAKoC,UAAU8kD,OAAO,oBAAoBrK,KAAKjpD,KAAKojnB,eAAe0lO,YAAa180B,GAC5FsoJ,eAAgB1+I,IACZhW,KAAKgkN,gBAAgB53M,EAAM,CACvBq/0B,gBAAiBzr1B,KAAK6r1B,EAA2B,UACjD710B,EAAGA,QAKnB2ttB,SAEI,OADa3juB,KAAKojnB,eAAe0lO,YAAYt9J,MAAM9kqB,WACrC++I,QAElBolrB,iBACI,IAAIzrsB,EAAcnP,KAAa,OAAS,WACxC,MAAO,CAAC,CACJ6P,UAAW,MACXD,QAAS,GACTxH,MAAO,CACH5hI,KAAMksQ,UAjRO,qCAmRjBviI,gBAAiB,CAAC,CACd30I,KAAM,YACP,CACCA,KAAM,eACNi+D,IAAK,KAEV,CACCo2E,UAAW,QACXD,QAAS,EACTxH,MAAO,CACH5hI,KAAMksQ,UA3RS,uCA6RnB7zN,SAAU1iD,IACN,IAAIukM,GAAWv1I,QAAE,SAASxtD,SApRH,0BAqRnBk+0B,GAAe1wxB,QAAE,SAASyP,SAAS8lI,GACvC3wM,KAAK+r1B,YAAc/r1B,KAAK4r1B,4BAA4BE,EAAc1/0B,EAAM,UACxE,IAAI4/0B,GAAe5wxB,QAAE,SAASyP,SAAS8lI,GACvC,YAAKyya,eAAezqhB,iBAAiBqzvB,EAAch9Y,GAAa,CAC5D36Y,MAAO,CAAC,CACJs9E,KAAM,YACN/kI,MAAO,cAEX67F,KAAMk6K,UAjSW,2CAkSjB95K,mBAAmB,EACnBwxB,QAAS,QACT+kB,YAAaA,EACbja,cAAe,WACf7N,iBAAkB,CAAC,aACnBN,mBAAoBhhH,IAChBhW,KAAKynN,wBAA0BzxM,EAAExH,UAAU8kD,OAAO,iBAAiB7uD,UAGpEksM,IAEZ,CACC7wD,UAAW,SACXD,QAAS,EACTxH,MAAO,CACH5hI,KAAMksQ,UAtTU,wCAwTpB7zN,SAAU1iD,IACN,IAAIukM,KAAWv1I,MAAE,SACjB,YAAK6wxB,aAAejs1B,KAAK4r1B,4BAA4Bj7oB,EAAUvkM,EAAM,SAC9DukM,IAEZ,CACC7wD,UAAW,MACXD,QAAS,GACTxH,MAAO,CACH5hI,KAAMksQ,UAnUO,wCAwU7B,kBAAgCyokB,IAC5Bvr1B,YAAY0pC,EAAQxlB,EAAQqyI,EAAU60rB,GAClCnr1B,MAAMypC,EAAQxlB,EAAQkn0B,GACtBjr1B,KAAKo2J,SAAWA,EAChBp2J,KAAKks1B,iBAETA,iBACI,IACI7qsB,SAAUA,GACVrhJ,KAAKwm1B,MAAM5wf,UAAU51V,KAAKg2M,UAAUzjM,MAAQ,EAAG,KAC9C8uI,GAAY,SAAW20D,UAAUzjM,SAClCvS,KAAKg2M,UAAY,CACbzjM,MAAOvS,KAAKg2M,UAAUzjM,MAAQ,EAC9B9N,OAAQ,GAEZzE,KAAKwm1B,MAAMnktB,aAAariI,KAAKg2M,UAAUzjM,MAAOvS,KAAKg2M,UAAUvxM,OAzUrD,WA2UZ,IAEQ0n1B,EAAsBC,EAF1BC,EAAars1B,KAAKwm1B,MAAM8F,QAAQts1B,KAAKg2M,UAAUzjM,OAAO,GAAGm00B,QACzD2F,IAEArs1B,KAAKo2J,SAASx2F,MAAQ,QAAUusxB,EAAuBns1B,KAAKo2J,SAASx2F,aAAU,IAAWusxB,EAAuBA,GAAuBxmxB,YAASvK,MAAEixxB,IACnJrs1B,KAAKo2J,SAASt2F,OAAS,QAAUssxB,EAAwBps1B,KAAKo2J,SAASt2F,cAAW,MAAmCssxB,GAAwB1mxB,YAAUtK,MAAEixxB,KAGjKxC,WAAWzzrB,EAAUtrJ,GACjB9K,KAAKwm1B,MAAM+F,WAAWvs1B,KAAKws1B,mBAAoB,EAnVnC,UAoVZxs1B,KAAKg2M,UAAUzjM,OAAS,EACxBzS,MAAM+p1B,WAAWzzrB,EAAUtrJ,GAE/B0h1B,mBACI,IAAIC,EACAz2oB,EAAY,QAAUy2oB,EAAkBzs1B,KAAKg2M,iBAAc,MAA6By2oB,EAAkBzs1B,KAAKwm1B,MAAMvwoB,eACzH,OAAID,EACIA,EAAUvxM,OACHuxM,EAAUzjM,MAEVyjM,EAAUzjM,MAAQ,EAGtBvS,KAAKwm1B,MAAM/nb,aAI9B,kBAA2BvgV,IACvBr+E,YAAY0pC,EAAQxlB,EAAQkn0B,GACxBnr1B,MAAMypC,EAAQxlB,EAAQkn0B,GACtBjr1B,KAAKwrV,YAAa9tU,SAAU1d,KAAK+jB,OAAO2o0B,iBAAmB,WAAa1s1B,KAAK+jB,OAAO2o0B,eACpF1s1B,KAAK2s1B,iBAAkB,EACvB3s1B,KAAKir1B,eAAiBA,EACtBjr1B,KAAKoM,KAAO,KAEhBu3tB,SACI,OAAI3juB,KAAKwrV,UACLxrV,KAAK4s1B,aAAa5s1B,KAAKoM,MAChBpM,KAAKoM,KAAKQ,MAAMnI,QACvBzE,KAAKoM,KAAKoC,UAAUm1tB,UAEjB,EAEXl+jB,UACI,OAAOzlK,KAAK2s1B,gBAEhBtzH,WAAWjttB,GACPyg1B,IAAa7s1B,KAAK+jB,OAAOm2wB,gBAAiB9txB,EAAK01U,KAAKz+U,KAAMrD,KAAKwm1B,MAAOxm1B,KAAKg2M,UAAUzjM,OAEzFq60B,aAAaxg1B,GACTpM,KAAKwm1B,MAAMuB,UAAU,YAAYpkH,OAAO3juB,KAAKg2M,UAAW5pM,EAAKQ,OAAO,GAExEi90B,WAAWzzrB,EAAUtrJ,GACb9K,KAAKwrV,WACL1rV,MAAM+p1B,WAAWzzrB,EAAUtrJ,GAGnCgi1B,mBACI,MAAO,SAAW9s1B,KAAK+jB,OAAO2o0B,eAElChm0B,SAAS1Q,GACL,IAAI4wtB,EAAe5wtB,EAAExH,UACrBxO,KAAK2s1B,iBAAmB/lH,EAAajK,OAAOnpsB,KAAKsuT,IAASA,EAAKr8K,WAC3D,IAAMmhkB,EAAajK,OAAOl4tB,SAC1BzE,KAAK2s1B,iBAAkB,GAG/BI,yBACI,IAAIC,EAAsB,CACtB10H,UAAWt4tB,KAAK+jB,OAAOu0sB,UACvB5jkB,eAAgBtoJ,IACZpM,KAAK0mB,SAASta,GACdpM,KAAKoM,KAAOA,EACZpM,KAAKir1B,kBAET5xH,WAAYrjtB,GAAKhW,KAAKq5tB,WAAWrjtB,IAErC,SAAOqJ,MAAO,GAuCX,CACHzS,MAAO,GACPvJ,KA/biB,sBAgcjBg1tB,OAAQ,UACRU,WAAY,cA3CoCi0H,EAAqBht1B,KAAK+jB,OAAOip0B,qBAErFnC,iBACI,MAAO,CAAC,CACJ1qsB,SAAU,SACVL,UAAW,QACXD,QAAS,GACTxH,MAAO,CACHtpE,SAAS,GAEbjgB,SAAU,KACN,IAAI6hJ,KAAWv1I,MAAE,SACjB,YAAK7xB,OAAO65kB,eAAezqhB,iBAAiBg4G,EAAU45hB,GAAcvquB,KAAK+s1B,0BAClEp8oB,IAEZ,CACCxwD,SAAU,SACVN,QAAS,GACTxH,MAAO,CACHtpE,SAAS,GAEbixE,WAAY,aACZD,cAAe,CACXnzI,MAAO5M,KAAKwrV,UACZz8Q,QAAS/uE,KAAK8s1B,mBACdr20B,KAAMksQ,UAtbc,0CAubpBjuH,eAAgB1+I,IACRhW,KAAK8s1B,qBACL9s1B,KAAKwrV,UAAYx1U,EAAEpJ,YAkBpC,aAAmB450B,EAAOj00B,EAAOuwF,GACpC0jvB,EAAMyG,YAAY160B,EAAO,gBAAiBuwF,EAvc5B,QAwcd0jvB,EAAMnktB,aAAa9vH,EAAQ,EAAG,EAxchB,QA0cX,aAAsB9P,EAAKywJ,EAAUszrB,EAAO0G,GAC/C,GAAIzq1B,EAAK,CACL,IAAIolxB,EAjBL,aAA6BplxB,GAChC,MAAO,QAAYA,EAAIgC,OAAS,GAAKhC,EAAM,IAAMA,EAgB9B0q1B,CAAoB1q1B,GAAOywJ,EAC1Cs4rB,IAAUhF,EAAO0G,EAAY,CACzBx7oB,IAAKm2kB,KC7cjB,IAEIulE,IADgB,CAAC,OAAQ,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,QAAS,QAAS,UAC7D1s0B,IAAInY,IAAU,CACvDsD,GAAItD,EACJqE,MAAO+1Q,UAA2B,2BAA2B9gQ,QAAOy8L,SAAS/1M,GAAO,QAEpF8k1B,GAAc,OAYdC,IAAW,CACXC,gBAAiB,SACjBj6zB,MAAO,eAGX,aAA2BiW,GACvB,MAAO,CACHjW,MAAOtQ,IACH,IAKQwq0B,GAJJ1i1B,MAAOA,GACPkY,EACAwqK,EAAQjkJ,EAAOi9yB,MAAMvwoB,eACrBzoB,IAEAjkJ,EAAO4oc,qBAAqBrne,GAC5By+B,EAAOi9yB,MAAMiH,aAAajgqB,GAC1B,QAAUggqB,EAAoBE,GAAiBnkzB,UAAY,IAAWikzB,GAA6BA,EAAkBG,wBAG7H/+sB,KAAMg/sB,IAAmBrkzB,GACzBqsG,MAAOi4sB,IAAoBtkzB,EAAQA,EAAO65kB,eAAe9vjB,OAAO,gBAChEkiF,MAAOs4sB,IAAyBvkzB,EAAQ,SACxC89Q,WAAYymiB,IAAyBvkzB,EAAQ,cAC7CwkzB,YAAaC,GAAuBzkzB,EAAQ,OAAQ,WACpD0kzB,WAAYD,GAAuBzkzB,EAAQ,OAAQ,UACnD2kzB,UAAWF,GAAuBzkzB,EAAQ,QAAS,QACnD4kzB,YAAaH,GAAuBzkzB,EAAQ,QAAS,UACrD6kzB,WAAYJ,GAAuBzkzB,EAAQ,QAAS,SACpD8kzB,aAAcL,GAAuBzkzB,EAAQ,QAAS,WACtD+kzB,UAAWC,GAAuBhlzB,EAAQ,cAC1C+3qB,KAAMhnnB,IACF,IACIxvF,MAAOA,GACPwvF,EACJ/wD,EAAO4oc,qBAAqBrne,GAC5By+B,EAAOi9yB,MAAMgI,QAAQltI,QAEzBG,KAAMtwoB,IACF,IACIrmE,MAAOA,GACPqmE,EACJ5nC,EAAO4oc,qBAAqBrne,GAC5By+B,EAAOi9yB,MAAMgI,QAAQ/sI,QAEzBgtI,eAAgBn8wB,IACZ,IACIxnE,MAAOA,GACPwnE,EACJo8wB,GAAYnlzB,EAAQ,CAAC,SAAU,KAAM8jzB,IAAcvi1B,IAEvD6j1B,eAAgBj8wB,IACZ,IACI5nE,MAAOA,GACP4nE,EACJg8wB,GAAYnlzB,EAAQ,CAAC,SAAU,KAAM8jzB,IAAcvi1B,IAEvD8j1B,YAAaZ,GAAuBzkzB,EAAQ,SAAU,SACtDslzB,UAAWb,GAAuBzkzB,EAAQ,SAAU,OACpDulzB,YAAaC,IAA0BxlzB,GACvCgkzB,gBAAiByB,GAAyBzlzB,EAAOi9yB,MAAO,mBACxDyI,eAAgBD,GAAyBzlzB,EAAOi9yB,MAAO,kBACvD0I,eAAgBF,GAAyBzlzB,EAAOi9yB,MAAO,kBACvD2I,iBAAkBH,GAAyBzlzB,EAAOi9yB,MAAO,oBACzD4I,kBAAmBJ,GAAyBzlzB,EAAOi9yB,MAAO,qBAC1DrqT,aAAc6yT,GAAyBzlzB,EAAOi9yB,MAAO,gBACrDr6qB,UAAW6irB,GAAyBzlzB,EAAOi9yB,MAAO,aAClD6I,YAAaL,GAAyBzlzB,EAAOi9yB,MAAO,eACpD8I,eAAgBC,IAA0BhmzB,EAAQ,QAClDimzB,gBAAiBD,IAA0BhmzB,EAAQ,UAI3D,aAAgC65kB,EAAgBxwiB,GAC5C,IACIo7E,gBAAiBA,EACjBvc,MAAOA,EACPkd,UAAWA,EACX5F,SAAUA,EACV2F,SAAUA,GACV97E,EACJwwiB,EAAe6mO,iBAAiB,CAC5Bj8rB,gBAAiBA,EACjBvc,MAAOA,EACPkd,UAAW,QAA6CA,EAAY,EACpE5F,SAAU,QAA2CA,EAAW,EAChE2F,SAAU,QAA2CA,EAAW,SAIxE,aAAmCnlH,EAAQ99B,GACvC,OAAO0vD,IACH,IAAIqnB,EAAWitwB,EACT,QAAUjtwB,EAAYrnB,SAAa,OAAwBqnB,EAAU/9E,SACvE02D,GAAWC,QAyDvB,aAA4B7xB,EAAQ4yT,GAChC,IAAIuzf,EAAwBnmzB,EAAOi9yB,MAAMuB,UAAU,SAAS4H,WAC5D,MAAO,YAAuBD,EAAsB,GAAGhJ,QAAUgJ,EAAsB,GAAGhJ,QA3DrEkJ,CAAmBrmzB,EAAQ99B,KAE5C,IAsBIg4mB,IAtBCwkO,EAAW4H,GAAW,QAAUJ,EAAwBlmzB,EAAOi9yB,MAAMuB,UAAU,SAAS4H,kBAAe,IAAWF,EAAwBA,EAAwB,GACnKt8rB,EAAU5pH,EAAOi9yB,MAAM5wf,UAAUrsT,EAAO65kB,eAAenta,cAAa,IACpE65oB,EA6qBZ,aAAkCrk1B,GAC9B,MAAO,WAAkBsk1B,IAA8BC,IA9qBnBC,CAAyBxk1B,EAAzBwk1B,CAA+B1mzB,EAAQ,CACnE4xB,SAAUA,EACVg4F,QAASA,EACT80rB,UAAWA,EACX4H,QAASA,KAGT7hsB,gBAAiBA,EACjBvc,MAAOA,EACPkd,UAAWA,EACX5F,SAAUA,EACV2F,SAAUA,GACVnlH,EAAO65kB,eAAe0lO,YAAY33mB,OAAO79K,SACzC48xB,GAAe,CACflisB,gBAAiBA,EACjBvc,MAAOA,EACPkd,UAAWA,EACX5F,SAAUA,EACV2F,SAAUA,GAGdnlH,EAAO65kB,eAAe6mO,iBAAiB,CACnCj8rB,gBAAiB95H,KACb,IAAIy8K,IAAWv1I,QAAE,SAASyP,SAAS32C,IAC/B4wuB,IAAQ1psB,QAAE,SAASyP,SAAS8lI,IAChCpnK,SAAO65kB,eAAezqhB,iBAAiBmsqB,GAAOl/I,GAAMkqO,EAA0B7lO,aAC9E1glB,EAAO65kB,eAAezqhB,iBAAiBg4G,GAAUunE,GAAY,IAC7DurW,GAAeqhJ,GAAMqrF,OAAO,YACrBx/oB,IAEXl/D,MAAOkxI,UAA2B,gBAAgB9gQ,OAAOpW,EAAM,eAC/DkjJ,UAlJK,IAmJL5F,SAAUxuI,KAAKmvD,IAAI,IAAK,IAAK/D,YAASxH,UAAe,GACrDuwF,SAAU,IAAK/oF,YAASxH,YAE5B,IAAIrkB,GAAUvQ,EAAO65kB,eAAeumO,iBACpC7vyB,GAAQo6B,KAAK,CAACkiF,GAAUtrJ,MACpBy+B,EAAO4oc,qBAAqBrne,IAC5Bgl1B,EAA0BzpQ,aAAao9B,IACvC2sO,IAAuB7mzB,EAAO65kB,eAAgB8sO,MAElDp2yB,GAAQq6B,KAAK,KACT5qC,EAAOi9yB,MAAMnqvB,QACb+zvB,IAAuB7mzB,EAAO65kB,eAAgB8sO,OAK1D,YAAqB3mzB,EAAQ8mzB,EAAYvl1B,GACrCy+B,EAAO4oc,qBAAqBrne,GAC5By+B,EAAOi9yB,MAAMrmvB,UAAUkwvB,GA2B3B,aAA4Bzj1B,GACxB,OAAOhE,MAAM8B,QAAQkC,GAASA,EAAM,GAAKA,EAG7C,aAA4B28B,GACxB,MAAO,KACH,IAAIg9F,EACJh9F,EAAOi9yB,MAAMnqvB,QACb,IAAI25G,EAAYzsK,EAAOi9yB,MAAMvwoB,eACzB9iD,EAAU6iD,EAAYzsK,EAAOi9yB,MAAM5wf,YAAc,GACjD06f,OAAiB,IAAWn9rB,EAAQvkB,MAAQ,KAAO,QAAUrI,EAAayvE,SAAc,IAAWzvE,OAAa,EAASA,EAAW9hI,QACpIrC,EAAO+wJ,EAAQvkB,MAAQ,GAC3B,GAAI0htB,EAAgB,CAChB,IAAIC,EAhChB,aAAsBhnzB,EAAQikJ,GAC1B,IAEI5+C,EACA4htB,EAFAC,EADQC,MACSxnG,OAAO,gBAc5B,OAXCt6mB,EAAM4htB,GAAcjnzB,EAAOi9yB,MAAMx5kB,OAAO27kB,WAAW8H,EAAUjjqB,EAAMj7K,QAC/Dq8H,GAAQ,IAAM4+C,EAAM/oL,UACpBmqI,EAAM4htB,GAAcjnzB,EAAOi9yB,MAAMx5kB,OAAO27kB,WAAW8H,EAAUjjqB,EAAMj7K,MAAQ,GACxEq8H,IACA4htB,GAAc,IAGT7y0B,EAAe,CACxBpL,MAAOi7K,EAAMj7K,MAAQi+0B,EACrB/r1B,OAAQmqI,EAAKnqI,UAFI,KAoBGks1B,CAAapnzB,EAAQysK,GACjCu6oB,EACAv6oB,EAAYu6oB,EAEZnu1B,EAAO,GAGf,IAAIwu1B,EF7OZ,aAAyBrnzB,EAAQysK,GAC7B,QAASA,GAAazsK,EAAOi9yB,MAAMlrG,QAAQtliB,GAAWvxM,OAASuxM,EAAUvxM,OE4OtCos1B,CAAgBtnzB,EAAQysK,GACnD5/C,EAAW,CACXh0J,KAAMA,EACNqU,KAAMu/L,IAAc46oB,EAA2BrnzB,EAAOi9yB,MAAMlrG,QAAQtliB,GAAa,GACjFh0M,QAAQqK,OAAO8tB,UAAUjnB,eAAeknB,KAAK+4H,EAAS,aAAcA,EAAQnxJ,QAEhFunC,EAAO65kB,eAAe6mO,iBAAiB,QAAStnkB,UAhN9B,mCAiNlB,IAAI7oO,EAAUvQ,EAAO65kB,eAAeumO,eAAe,CAC/CvzrB,SAAUA,EACV/hG,MAAOy8xB,IAAiBF,KAE5B92yB,EAAQo6B,KAAK,CAACkiF,EAAUtrJ,KACpB,GAAIkrM,IAAc46oB,EAA0B,CACxC,IAAIn60B,EAAO2/I,EAAS3/I,MAAQ2/I,EAASh0J,MAEjCmQ,MAAOA,EACP9N,OAAQA,IACRuxM,EACJ5/C,EAAS3/I,UAAO,EAChB8yB,EAAO4oc,qBAAqBrne,GAC5BrG,IAAU8kC,EAAOi9yB,MAAM+F,WAAWh60B,EAAO9N,GAjOrC,UAkOJ8kC,EAAOi9yB,MAAMuK,WAAWx+0B,EAAOkE,EAAM,OAAQ2/I,EAAUi3rB,IACvD9jzB,EAAOi9yB,MAAMnktB,aAAa9vH,EAAQkE,EAAKhS,OAAQ,EAAG4o1B,SAElDj3rB,EAAS3/I,KAAQu/L,GAAc5/C,EAAS3/I,KAAuB2/I,EAAS3/I,KAAzB2/I,EAASh0J,KACxDss1B,GAAYnlzB,EAAQ,CAAC,OAAQ6sH,EAAUi3rB,IAAcvi1B,KAG7DgvC,EAAQq6B,KAAK,KACT5qC,EAAOi9yB,MAAMnqvB,WAKzB,aAA6B9yD,EAAQynzB,GACjC,IAAIC,EAAgB,IAAIC,IAAc3nzB,EAAQynzB,GAC9C,MAAO,KACHC,EAAch/xB,UAItB,aAA0B2+xB,GACtB,MAAO,CAAC,CACJ9wsB,UAAW,OACXzH,MAAO,CACH5hI,KAAMksQ,UArPU,qCAuPrB,CACC7iI,UAAW,OACXzH,MAAO,CACH5hI,KAAMksQ,UAzPW,qCA2PrB5zM,SAAU6hxB,GACX,CACC9wsB,UAAW,SACXE,WAAY,aACZD,cAAe,CACXtpI,KAAMksQ,UA/Pa,uCAiQvB/9K,SAhQ6B,6BAiQ7ByzC,MAAO,CACHtpE,SAAS,KAKrB,aAAkCxlC,EAAQlmC,GACtC,MAAO,KACH,IAAI+yJ,EAAW7sH,EAAOi9yB,MAAM5wf,YAE5BrsT,EAAO65kB,eAAe6mO,iBAAiB,QAAStnkB,UADlC,YAjRK,kCACK,yCAkRxB,IAAI7oO,EAAUvQ,EAAO65kB,eAAeumO,eAAe,CAC/CvzrB,SAAUA,EACV/hG,MAAO,CAAC,CACJyrF,UAAWz8I,EACX28I,WAAY,cACZD,cAAe,CACXl3C,mBAAmB,GAEvBwvC,MAAO,CACHtpE,SAAS,OAIrBj1B,EAAQo6B,KAAK,CAACkiF,EAAUtrJ,KACpB4j1B,GAAYnlzB,EAAQ,CAAClmC,EAAM+yJ,EAAS/yJ,GAAOgq1B,IAAcvi1B,KAE7DgvC,EAAQq6B,KAAK,KACT5qC,EAAOi9yB,MAAMnqvB,WAKzB,YAAgC9yD,EAAQlmC,EAAM8t1B,GAC1C,OAAO/jvB,IACH,IAAIgkvB,GAEAtm1B,MAAOA,GACPsiG,EACA+lD,EAAU5pH,EAAOi9yB,MAAM5wf,YAE3B84f,GAAYnlzB,EAAQ,CAAClmC,EADT8vJ,EAAQ9vJ,KAAU8t1B,GAAwBA,EACpB9D,IAAcvi1B,GAChD,QAAUsm1B,EAAqB1D,GAAiBnkzB,UAAY,IAAW6nzB,GAA8BA,EAAmBzD,qBAAoB,IAIpJ,YAA0BpkzB,GACtB,OAAOA,EAAO8nzB,oBAAsB9nzB,EAASA,EAAOi9yB,MAAMuB,UAAU,WAGxE,YAAgCx+yB,EAAQlmC,GACpC,OAAOk1nB,IACH,IAAI+4N,GAEAxm1B,MAAOA,GACPytnB,EACAple,EAAU5pH,EAAOi9yB,MAAM5wf,YACvBhpV,EAAQumJ,EAAQ9vJ,GAChBwnB,OAAauyB,OAAUxwC,GAASA,KAAQ8Q,OAAU9Q,IACtD8h1B,GAAYnlzB,EAAQ,CAAClmC,EAAMwnB,EAAUwi0B,IAAcvi1B,GACnD,QAAUwm1B,EAAqB5D,GAAiBnkzB,UAAY,IAAW+nzB,GAA8BA,EAAmBD,oBAAoBhu1B,EAAMwnB,EAAUsoI,IA0BpK,aAAmC5pH,GAC/B,MAAO,KACH,IAAI4pH,EAAU5pH,EAAOi9yB,MAAM5wf,YACNrsT,EAAOgozB,cAAc/9zB,KAAK2sE,GAAU9zF,OAAO8tB,UAAUjnB,eAAeknB,KAAK+4H,EAAShzD,IAEnG52D,EAAOi9yB,MAAMnqvB,SAGjB9yD,EAAO65kB,eAAe6mO,iBAAiB,QAAStnkB,UAnW7B,0CAoWLp5O,EAAO65kB,eAAeumO,eAAe,CAC/CvzrB,SAAU,CACNu7V,KAAM,EACN/pW,QAAS,GAEbvzF,MAnCD,CAAC,CACJyrF,UAAW,UACXE,WAAY,cACZD,cAAe,CACXr2E,IAAK,GAET2uE,MAAO,CACH5hI,KAAMksQ,UAxUe,6CA0U1B,CACC7iI,UAAW,OACXE,WAAY,cACZD,cAAe,CACXr2E,IAAK,GAET2uE,MAAO,CACH5hI,KAAMksQ,UAhVY,mDAqWdzuM,KAAK,CAACkiF,EAAUtrJ,KACpBy+B,EAAOi9yB,MAAMnqvB,QACb,IAAIyvW,EAAQvia,EAAOi9yB,MAAMuB,UAAU,SACnC,GAAIj8Y,EAAO,CACPvia,EAAO4oc,qBAAqBrne,GAC5B,IACI88I,QAASA,EACT+pW,KAAMA,GACNv7V,EACJ01S,EAAMgjZ,YAAYlnsB,EAAS+pW,MAEhC79a,OAAO,KACNvqC,EAAOi9yB,MAAMnqvB,YAKzB,aAAsC9yD,EAAQuvlB,GAC1C,IAMI04N,EACAC,EACAC,GAPAv2xB,SAAUA,EACVg4F,QAASA,EACT80rB,UAAWA,GACXnvN,EACA72nB,GAASk8D,WAITmgd,EAASnjd,EACTiojB,EAAiB75kB,EAAO65kB,eACxBuuO,EAAkB5+0B,SAASogJ,EAAQy+rB,cAAejmxB,SAAc2yc,GAChEuzU,EAAc5v1B,EAAO06E,iBAAiB2hc,EAAOt6gB,IAAI,IACjD8t1B,EAAiB,UAAYD,EAAYntgB,UAAY,OAASmtgB,EAAYntgB,UA+I9E,MAAO,CACHulS,YA/Ic,CACdzpe,SAAU,EACV4V,SAAU,CACNx2F,MAAO+xxB,EACP7xxB,QAAQpiD,SAAUy1I,EAAQ4+rB,aAAeh/0B,SAASogJ,EAAQ4+rB,gBAAenmxB,OAAe0yc,GACxFrrX,gBAAiBE,EAAQ6+rB,sBAAwBH,EAAY5+rB,gBAC7D4lO,YAAa1lO,EAAQ8+rB,kBAAoBJ,EAAYK,eACrDzviB,YAAatvJ,EAAQg/rB,kBAAoBN,EAAYO,eACrD3roB,YAAa1zM,YAAS2K,OAAUy1I,EAAQk/rB,kBAAoBl/rB,EAAQk/rB,iBAAmBR,EAAYS,gBACnG9rsB,UAAW2M,EAAQo/rB,YAAcT,GAErCz9xB,MAAO,CAAC,CACJ8rF,SAAU,QACVI,QAASoiI,UAA2B,uBACpCliI,iBAAkB,CACdq/d,GAAI,GAERt/d,SAAU,EACVnsF,MAAO,CAAC,CACJyrF,UAAW,cACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,uBAErC3iI,WAAY,cACZD,cAAe,CACX1rF,MAAO+4xB,IACP5vrB,UAAW,KACX/3C,YAAa,QACb6gD,YAAa,iBAElB,CACCxmB,UAAW,cACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC5iI,cAAe,CACXumB,YAAaq8G,UAA2B,yBAE7C,CACCxiI,SAAU,SACVL,UAAW,cACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC9iI,QAAS,EACT/wF,SAAU94C,KACN,IAAI26L,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAU+lT,GAAU,CAChDrG,kBAAkB,EAClBzjf,MAAOoJ,GAAExH,UAAU8kD,OAAO,YAAYmvP,YACtCjuN,cAAex+E,KACXy70B,EAA4Bz70B,GAAExH,aAG/BmiM,OAGhB,CACCxwD,SAAU,QACVI,QAASoiI,UAA2B,2BACpCliI,iBAAkB,CACdq/d,GAAI,GAERt/d,SAAU,EACVnsF,MAAO,CAAC,CACJyrF,UAAW,QACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,uBAErC5iI,cAAe,CACXr2E,IAAK,EACL48F,YAAaq8G,UAA2B,yBAE7C,CACC7iI,UAAW,SACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,wBAErC5iI,cAAe,CACXr2E,IAAK,EACL48F,YAAaq8G,UAA2B,2BAGjD,CACCxiI,SAAU,QACVI,QAASoiI,UAA2B,gCACpCtuN,MAAO,CAAC,CACJ8rF,SAAU,SACVL,UAAW,kBACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC7zN,SAAU94C,KACN,IAAI26L,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAU+lT,GAAU,CAChDrG,kBAAkB,EAClBzjf,MAAOoJ,GAAExH,UAAU8kD,OAAO,YAAY2/F,gBACtCz+D,cAAex+E,KACX070B,EAAgC170B,GAAExH,aAGnCmiM,OAGhB,CACCxwD,SAAU,QACVI,QAASoiI,UAA2B,0BACpCtuN,MAAO,CAAC,CACJ8rF,SAAU,SACV9H,MAAO,CACH5hI,KAAMksQ,UAA2B,4BAErC7zN,SAAU,KACN,IAAI6hJ,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAUq+P,GAAa,CACnD36Y,MAAO,CAAC,CACJznD,MAAO,OACP+kI,KAAM,aACP,CACC/kI,MAAO,SACP+kI,KAAM,eACP,CACC/kI,MAAO,QACP+kI,KAAM,cACP,CACC/kI,MAAO,UACP+kI,KAAM,iBAEVtX,QAAS,QACT/C,iBAAkB,CAACw6tB,GACnBt9vB,cAAex+E,KACXw70B,EAA0Bx70B,GAAExH,aAG7BmiM,QAInB35C,qBAAqB,EACrBV,cAAe,MACfE,YAAa,KAIb6vb,aAAco9B,KACV,IAAIrtd,GAAWqtd,GAAanwjB,OAAO,aA6P/C,aAAoC/pB,EAAQipzB,GACxC,IACIl0U,OAAQA,EACRm0U,UAAWA,EACXC,SAAUA,EACVzK,UAAWA,GACXuK,EACJ,IAAI900B,SAAUg10B,GAEV,GADuBC,GAAqBr0U,GACvB75gB,OAAS,EAC1B8kC,EAAO65kB,eAAejjhB,OAAO,aAAcuyvB,EAAW,UACnD,CACH,IAAIprN,EAAWh3H,GAAkBgO,GAC7Bs0U,KAAgBjnxB,OAAc2yc,GAClCu0U,GAAgBv0U,EAAQ,CACpB2pU,UAAWA,KAEfn/wB,SAAKw+jB,EAAU,CAAC9ioB,EAAGgD,KACf,IAAI2zD,IAAWC,QAAE5zD,GACbsr1B,GAAkBJ,EAAWE,KAAgBjnxB,OAAcxQ,IAC3D+sxB,GAAgB6K,GAAgBz0U,EAAQnjd,GAAS5oD,QAAS,cAC9Dyg1B,GAAsBzpzB,EAAQ,CAC1BklC,SAAUy5wB,GACVj/tB,SAAU,QACVr8G,MAAOkm1B,OAKvB,IAAIG,EAAiBN,GAAqBr0U,EAAQ,YAClD,IAAK,MAAS20U,OAA8C,EAASA,EAAexu1B,QAAU,EAC1Fwj1B,EAAU9nvB,OAAO,cAAesyvB,EAAY,UACzC,CACH,IAAI1sU,EAAQoiU,GAAe7pU,GACvB40U,KAAiBtnxB,OAAe0yc,IACpCx1c,SAAKi9c,EAAO,CAACvhhB,EAAGgD,KACZ,IAAI2zD,IAAWC,QAAE5zD,GACb2r1B,GAAmBV,EAAYS,KAAiBtnxB,OAAezQ,IAC/D+sxB,GAAgB6K,GAAgBz0U,EAAQ95gB,EAAG,YAC/Cwu1B,GAAsBzpzB,EAAQ,CAC1BklC,SAAUy5wB,GACVj/tB,SAAU,SACVr8G,MAAOum1B,SApSXC,CAA2B7pzB,EAAQ,CAC/B+0e,OAAQA,EACRm0U,UAHYr8rB,GAASt2F,OAIrB4yxB,SALWt8rB,GAASx2F,QAAU+xxB,OAAkB,EAASv7rB,GAASx2F,MAMlEqoxB,UAAWA,IAEf1+yB,EAAO65kB,eAAejjhB,OAAO,mBAAoBi2D,GAASyiO,aAC1DtvV,EAAO65kB,eAAejjhB,OAAO,mBAAoBi2D,GAASqwD,YAAc,MACxEl9K,EAAO65kB,eAAejjhB,OAAO,mBAAoBsxvB,EAA0Bn+xB,OAAO,UAClF/pB,EAAO65kB,eAAejjhB,OAAO,uBAAwBuxvB,EAA8Bp+xB,OAAO,UAC1F/pB,EAAO65kB,eAAejjhB,OAAO,iBAAkBqxvB,EAAwBl+xB,OAAO,oBAAoB,MAK9G,aAAqC/pB,EAAQo+vB,GACzC,IAOI6pD,EACA6B,EACA5B,EACAC,GATAv2xB,SAAUA,EACVg4F,QAASA,EACT80rB,UAAWA,EACX4H,QAASA,GACTloD,EACA1lyB,GAASk8D,WAKTi1Y,EAAQj4Y,EACRm4xB,GAAiB510B,SAAUy1I,EAAQ0ygB,WAAa9ypB,SAASogJ,EAAQ0ygB,cAAal6lB,OAAcynY,GAC5FgwK,EAAiB75kB,EAAO65kB,eACxBmwO,GAAatx1B,EAAO06E,iBAAiBy2X,EAAMpvc,IAAI,IAC/C8t1B,GAAiB,UAAYyB,GAAW7ugB,UAAY,OAAS6ugB,GAAW7ugB,UA4L5E,MAAO,CACHulS,YA5Lc,CACdzpe,SAAU,EACV4V,SAAU,CACNx2F,MAAO0zxB,EACPxzxB,QAAQpiD,SAAUy1I,EAAQqgsB,YAAczg1B,SAASogJ,EAAQqgsB,eAAc5nxB,OAAewnY,GACtFngT,gBAAiBwgsB,IAAmBtgsB,EAAQugsB,sBAAwBH,GAAWtgsB,gBAC/E4lO,YAAa1lO,EAAQwgsB,iBAAmBJ,GAAWrB,eACnDzviB,YAAagxiB,IAAmBtgsB,EAAQygsB,kBAAoBL,GAAWnB,eACvE3roB,YAAa1zM,YAAS2K,OAAUy1I,EAAQ0gsB,iBAAmB1gsB,EAAQ0gsB,gBAAkBN,GAAWjB,gBAChG9rsB,UAAW2M,EAAQ2gsB,eAAiBhC,GACpC9wsB,kBAAmBmS,EAAQ4gsB,mBAAqBR,GAAW50B,cAC3Dq1B,gBAAiBjh1B,YAAS2K,OAAUy1I,EAAQ8gsB,gBAAkB9gsB,EAAQ8gsB,eAAiBV,GAAWn2wB,YAClG82wB,kBAAmBnh1B,YAAS2K,OAAUy1I,EAAQghsB,iBAAmBhhsB,EAAQghsB,gBAAkBZ,GAAWh2wB,cAE1GlpB,MAAO,CAAC,CACJ8rF,SAAU,QACVI,QAASoiI,UAA2B,uBACpCliI,iBAAkB,CACdq/d,GAAI,GAERt/d,SAAU,EACVnsF,MAAO,CAAC,CACJyrF,UAAW,cACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,uBAErC3iI,WAAY,cACZD,cAAe,CACX1rF,MAAO+4xB,IACP5vrB,UAAW,KACX/3C,YAAa,UAElB,CACCq6B,UAAW,cACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC5iI,cAAe,CACXumB,YAAaq8G,UAA2B,yBAE7C,CACCxiI,SAAU,SACVL,UAAW,cACXD,QAAS,EACTxH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC7zN,SAAU94C,KACN,IAAI26L,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAU+lT,GAAU,CAChDrG,kBAAkB,EAClBzjf,MAAOoJ,GAAExH,UAAU8kD,OAAO,YAAYmvP,YACtCjuN,cAAex+E,KACXy70B,EAA4Bz70B,GAAExH,aAG/BmiM,OAGhB,CACCxwD,SAAU,QACVI,QAASoiI,UAA2B,2BACpCniI,SAAU,EACVC,iBAAkB,CACdq/d,GAAI,GAERzrjB,MAAO,CAAC,CACJyrF,UAAW,QACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,uBAErC5iI,cAAe,CACXr2E,IAAK,EACL48F,YAAaq8G,UAA2B,yBAE7C,CACC7iI,UAAW,SACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,wBAErC5iI,cAAe,CACXr2E,IAAK,EACL48F,YAAaq8G,UAA2B,yBAE7C,CACC7iI,UAAW,kBACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,iCAErC5iI,cAAe,CACXumB,YAAaq8G,UAA2B,yBAE7C,CACCtqI,MAAO,CACH5hI,KAAMksQ,UAA2B,mCAErC7iI,UAAW,oBACXC,cAAe,CACXumB,YAAaq8G,UAA2B,2BAGjD,CACCxiI,SAAU,QACVI,QAASoiI,UAA2B,gCACpCtuN,MAAO,CAAC,CACJ8rF,SAAU,SACVL,UAAW,kBACXzH,MAAO,CACH5hI,KAAMksQ,UAA2B,6BAErC7zN,SAAU94C,KACN,IAAI26L,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAU+lT,GAAU,CAChDrG,kBAAkB,EAClBzjf,MAAOoJ,GAAExH,UAAU8kD,OAAO,YAAY2/F,gBACtCz+D,cAAex+E,KACX070B,EAAgC170B,GAAExH,aAGnCmiM,OAGhB,CACCxwD,SAAU,QACVI,QAASoiI,UAA2B,0BACpCniI,SAAU,EACVnsF,MAAO,CAAC,CACJ8rF,SAAU,SACV9H,MAAO,CACH5hI,KAAMksQ,UAA2B,4BAErC7zN,SAAU,KACN,IAAI6hJ,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAUq+P,GAAa,CACnD36Y,MAAO,CAAC,CACJznD,MAAO,OACP+kI,KAAM,aACP,CACC/kI,MAAO,SACP+kI,KAAM,eACP,CACC/kI,MAAO,QACP+kI,KAAM,cACP,CACC/kI,MAAO,UACP+kI,KAAM,iBAEVtX,QAAS,QACT/C,iBAAkB,CAACw6tB,IACnBt9vB,cAAex+E,KACXw70B,EAA0Bx70B,GAAExH,aAG7BmiM,KAEZ,CACCxwD,SAAU,SACV9H,MAAO,CACH5hI,KAAMksQ,UAA2B,0BAErC7zN,SAAU,KACN,IAAI6hJ,MAAWv1I,MAAE,SACjBgojB,SAAezqhB,iBAAiBg4G,GAAUq+P,GAAa,CACnD36Y,MAAO,CAAC,CACJznD,MAAO,MACP+kI,KAAM,oBACP,CACC/kI,MAAO,SACP+kI,KAAM,uBACP,CACC/kI,MAAO,SACP+kI,KAAM,wBAEVtX,QAAS,QACT/C,iBAAkB,CAACi8tB,GAAW50B,eAC9BnquB,cAAex+E,KACXq90B,EAAkCr90B,GAAExH,aAGrCmiM,QAInB35C,qBAAqB,EACrBV,cAAe,MACfE,YAAa,KAIb6vb,aAAco9B,KACV,IAAIrtd,GAAWqtd,GAAanwjB,OAAO,YAC/Bo/xB,GAAWt8rB,GAASx2F,QAAU7sD,SAASug1B,QAAkB,EAASl9rB,GAASx2F,OA2E3F,aAAmCr2B,EAAQ6qzB,GACvC,IACIhhZ,MAAOA,EACPq/Y,UAAWA,EACXC,SAAUA,EACVzK,UAAWA,EACX4H,QAASA,GACTuE,EACA91U,GAASljd,QAAEg4Y,EAAMt1X,QAAQ,UAC7B,IAAIpgE,SAAUg10B,GAAW,CACrB,IAAIng1B,KAAQ6oD,MAAEg4Y,GAAO7gc,QACjB8h1B,EAAiBtB,GAAgBz0U,EAAQ/rgB,GACzC+h1B,EAAY5B,KAAW/mxB,OAAcynY,GAErCs/Y,KADa/mxB,OAAc2yc,IAE3Bu0U,GAAgBv0U,EAAQ,CACpB2pU,UAAWA,IAGnB+K,GAAsBzpzB,EAAQ,CAC1BklC,SAAU4lxB,EACVpruB,SAAU,QACVr8G,MAAO8l1B,IAEX,IAAI6B,EAAkBnhZ,EAAM15b,OAE5B,GADqC,OAA2B4kgB,GAAQ75gB,OAKpE,GAHAou1B,GAAgBv0U,EAAQ,CACpB2pU,UAAWA,IAEX,IAAMsM,EAAgB9v1B,OAAQ,CAC9B4v1B,EAAiBtB,GAAgBz0U,EAAQ/rgB,EAAQ,GACjD,IAAIyypB,IAAkBr5lB,SAAc0oxB,EAAeltuB,GAAG,IAAMmtuB,EAC5DtB,GAAsBzpzB,EAAQ,CAC1BklC,SAAU4lxB,EACVpruB,SAAU,QACVr8G,MAAO2N,KAAKC,IAAIwqpB,GAAiB,UAIrC,GAAI,IADkB5xN,EAAMrhE,OACFttY,OAAQ,CAC9B4v1B,EAAiBtB,GAAgBz0U,EAAQ/rgB,EAAQ,GACjD,IAAIii1B,IAAkB7oxB,SAAc0oxB,EAAeltuB,GAAG,IAAMmtuB,EAC5DtB,GAAsBzpzB,EAAQ,CAC1BklC,SAAU4lxB,EACVpruB,SAAU,QACVr8G,MAAO2N,KAAKC,IAAIg60B,GAAiB,MAMrD3E,EAAQ1zzB,SAASn2B,QAAQyu1B,KACrBA,GAAQt0vB,OAAO,aAAcsyvB,EAAY,QAGzC,IADiBE,GAAqBr0U,EAAQ,YACzB75gB,QACrB65gB,EAAOvid,IAAI,SAAU,SAlIjB24xB,CAA0BnrzB,EAAQ,CAC9B6pa,MAAOA,EACPq/Y,UAHYr8rB,GAASt2F,OAIrB4yxB,SAAUA,GACVzK,UAAWA,EACX4H,QAASA,IAEbtmzB,EAAO65kB,eAAejjhB,OAAO,kBAAmBi2D,GAASqwD,YAAc,MACvEl9K,EAAO65kB,eAAejjhB,OAAO,kBAAmBsxvB,EAA0Bn+xB,OAAO,UACjF/pB,EAAO65kB,eAAejjhB,OAAO,kBAAmBi2D,GAASyiO,aACzDtvV,EAAO65kB,eAAejjhB,OAAO,sBAAuBuxvB,EAA8Bp+xB,OAAO,UACzF/pB,EAAO65kB,eAAejjhB,OAAO,gBAAiBqxvB,EAAwBl+xB,OAAO,oBAAoB,IACjG/pB,EAAO65kB,eAAejjhB,OAAO,oBAAqBkzvB,EAAgC//xB,OAAO,oBAAoB,IAC7G/pB,EAAO65kB,eAAejjhB,OAAO,kBAAmBi2D,GAAS89rB,kBAAoB,MAC7E3qzB,EAAO65kB,eAAejjhB,OAAO,mBAAoBi2D,GAAS89rB,kBAAoB,MAC9E3qzB,EAAO65kB,eAAejjhB,OAAO,iBAAkBi2D,GAAS49rB,gBAAkB,MAC1EzqzB,EAAO65kB,eAAejjhB,OAAO,oBAAqBi2D,GAAS49rB,gBAAkB,QC3xBzF,IAAIW,IAAgBrN,GACpB,GAAIhB,KAAO,CACP,IAAIsO,IAAwB,gCAKxBC,IAAsB,mBACtBC,IAAuB,oBAKvBC,IAAiB,CACjB,GAAI,OACJ,GAAI,SACJ,GAAI,aAEJC,GAAY,CACZn30B,EAAG,GACHrZ,EAAG,GACHq+L,EAAG,IAEHyuU,GAAWjugB,GAAQs/Q,UAA2B,gBAAgB9gQ,UAAOy8L,OAASj7M,KAQlFsx1B,IAAgB,cAAcrN,GAC1Bzn1B,YAAY2m1B,EAAO50zB,GACf,IAAI8lE,EAMJ,GALA53F,MAAM0m1B,EAAO50zB,GACb8lE,EAAQ13F,KACRA,KAAKi11B,gBAAkB,IAAIC,IAC3Bl11B,KAAKm11B,gBAAkBC,IAAkBp11B,MACzCA,KAAKux1B,cAAgB8D,IAAgB7O,IACjC9o0B,SAAUkU,EAAQyiC,OAAQ,CAC1Br0D,KAAKs11B,gBACLt11B,KAAK66N,iBACL,IAAI06nB,EAAcv11B,KAAKw11B,gBAAgBvwS,gBAAgB5B,MACvD,GAAIkyS,EAAa,CACb,IAAI3knB,EAAe2knB,EAAY3knB,aAC/B2knB,EAAY3knB,aAAe,WACvB,QAASviJ,EAAOtuF,UAAU0E,OAAQkU,EAAO,IAAI/P,MAAMylF,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7E31E,EAAK21E,GAAQvuF,UAAUuuF,GAE3BsiJ,EAAal1M,MAAM65zB,KAAgB580B,GACnC480B,EAAYpknB,OAAOvnL,GAAG,UAAW,KAC7B8tC,EAAMiusB,gBAAe,MAIjC3lyB,KAAKwm1B,MAAM58xB,GAAG,gBAAiB,CAACniD,EAAWojB,EAAUslC,EAAUugB,KA3CvD,WA4CeA,IAAiC0e,SAAcpvF,KAAKwm1B,MAAM5wf,cAGzE51V,KAAK2lyB,eAjDI,qBAgDgBl+xB,MAMzC6t1B,gBACIt11B,KAAKwn1B,iBAAiBxn1B,KAAKi7O,MAAMhyL,KAAKjpD,OACtCA,KAAKojnB,eAAeqyO,8BAA8Bz11B,KAAK011B,qBAAqBzsyB,KAAKjpD,OAErF2lyB,eAAegwD,GACX311B,KAAK2t1B,oBAAoBgI,GACzB311B,KAAK011B,uBACL111B,KAAK411B,qBAETvE,oBAAoBhu1B,EAAMwy1B,EAAW1isB,GACjC,IAAI36D,EAASx4F,KAAKi11B,gBAAgBtN,UAAUtk1B,IACvCm1F,IAGDq9vB,EACA711B,KAAK811B,wBAAwBzy1B,EAAMm1F,EAAQ26D,IAE3CnzJ,KAAK+11B,mBAAmB1y1B,EAAMm1F,GAC1BnsF,OAAO8tB,UAAUjnB,eAAeknB,KAAK/2B,WAC9B8vJ,EAAQ9vJ,IAGvBrD,KAAKg21B,uBAAuBH,OAAczmwB,OAAc+jE,KAE5D0nE,iBACI,IAAI3mM,EAAYl0B,KAAK4xB,QAAQsC,WAAal0B,KAAKylW,gBAC/CzlW,KAAKw60B,WAAYp/wB,QAAE,SAASxtD,SAvFhB,yBAuFwCi9D,SAAS32C,GAC7Dl0B,KAAKi21B,oBAAqB76xB,QAAElnC,GAAWtmB,SAASgn1B,KAChDnmyB,QAAgBzuD,KAAKi21B,mBAAoBvnxB,GAAa,YAAa1uE,KAAKojnB,eAAehuhB,MAAOp/E,IAC1FA,EAAEhU,OAAOq6F,QACTrmF,EAAEjL,mBAEN/K,KAAKk21B,0BACLl21B,KAAKw11B,gBAAkBx11B,KAAKojnB,eAAezqhB,iBAAiB34F,KAAKw60B,UAAWl1R,GAAStljB,KAAKm21B,eAC1Fn21B,KAAKojnB,eAAex5jB,GAAG,gBAAiB5mC,IACpC,IACI3f,KAAMA,GACN2f,GACA,aAAe3f,GAAQ,aAAeA,IACtCrD,KAAKw11B,gBAAgBliyB,OAAO,WAAYtzD,KAAKo21B,yBAIrDD,oBACA,MAAO,CACH35uB,WAAYx8G,KAAK09sB,uBACjBt1rB,SAAUpoB,KAAKo21B,sBACftxS,cAAe9kjB,KAAKi21B,mBACpBpmrB,UAAW7vK,KAAKq21B,mBAGpBD,4BACA,OAAOp21B,KAAKojnB,eAAe9vjB,OAAO,aAAetzD,KAAKojnB,eAAe9vjB,OAAO,YAEhF+iyB,kBACI,IAAIC,EACJ,OAAO,QAAUA,EAAwBt21B,KAAK4xB,QAAQi+I,iBAAc,OAAmCymrB,EAE3Gr7mB,QACIj7O,KAAKi11B,gBAAgB3h0B,QACjBtzB,KAAKi21B,oBACLj21B,KAAKi21B,mBAAmBjzwB,QAAQl1E,YAAY8m1B,KAGpDvmvB,UACIruG,KAAKw11B,iBAAmBx11B,KAAKw11B,gBAAgBnnvB,UAEjDo3P,gBACI,IAAI17Q,KAAa3uB,MAAE,SACnB,YAAKgojB,eAAejojB,WAAW6/K,QAAQjxJ,GAChCA,EAEXwswB,sBAAsB350B,MACdI,OAASJ,KACTksD,SAAK,CAAC,CACF0f,QAAS,OACTpyD,QAAS,cACV,CACCoyD,QAAS,iBACTpyD,QAAS,iBACT,CAAC7jB,EAAOu/E,KACJzlF,OAAO8tB,UAAUjnB,eAAeknB,KAAKxd,EAAMk1E,EAAW17D,UACtD7P,OAAW,QAASurE,EAAW17D,QAAS07D,EAAWtJ,WAKnE0twB,0BACIl21B,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3BxkxB,MAAOgjxB,GAAUn30B,EACjB440B,UAAU,GACXz21B,KAAK021B,oBAAoBztyB,KAAKjpD,OACjCA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3BxkxB,MAAOgjxB,GAAUxw1B,EACjBiy1B,UAAU,GACXz21B,KAAK021B,oBAAoBztyB,KAAKjpD,OACjCA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3BxkxB,MAAOgjxB,GAAUnypB,EACjB4zpB,UAAU,GACXz21B,KAAK021B,oBAAoBztyB,KAAKjpD,OAErC021B,oBAAoBlpqB,EAAOtlJ,EAASoyD,GAChC,IACItoB,MAAOA,GACPsoB,EAEJt6F,KAAK221B,mBADY5B,IAAe/ixB,IAGpC2kxB,mBAAmBp1sB,GACf,IAAIq1sB,EAAe521B,KAAKi11B,gBAAgBtN,UAAUpmsB,GAC9CmiW,EAAgB1jf,KAAKwm1B,MAAM5wf,YACb8tJ,EAAcniW,GAE5BvhJ,KAAK811B,wBAAwBv0sB,EAAYq1sB,EAAclzW,GAEvD1jf,KAAK+11B,mBAAmBx0sB,EAAYq1sB,GAG5Cl5I,uBACI,IAAIvmd,EAAc,GAClBruL,gBAAK9oE,KAAK4xB,QAAQyiC,MAAO,CAAC9hD,EAAOqK,KAC7B,IAAIogH,EAEJ,GADAh9H,KAAKu21B,sBAAsB350B,MACvBI,OAASJ,GACTogH,EAAUh9H,KAAK621B,kBAAkBj60B,YAC1B2/D,SAAS3/D,GAAO,CACvB,IAAIk60B,EAAmB921B,KAAK+21B,yBAAyBn60B,GACrDogH,EAAUh9H,KAAKw8zB,gBAAgBs6B,GAE/B95tB,GACAm6H,EAAY9tP,KAAK2zH,KAGlBm6H,EAEX0/lB,kBAAkBj60B,GACd,GAAIA,EAAKvZ,MAAQuZ,EAAK0kI,gBAAkBthJ,KAAKk+mB,kBAAkBthmB,EAAK47E,OAAQ,eAAgB,CACxF,IAAIw+vB,EAAmBh31B,KAAKi31B,yBAAyBr60B,GACrD,OAAO5c,KAAKw8zB,gBAAgBw6B,MACrBp60B,EAAKvZ,MAAQrD,KAAKk+mB,kBAAkBthmB,EAAK47E,OAAQ,YAAa,CACrE,IAAI0+vB,EAA0Bl31B,KAAK+21B,yBAAyBn60B,EAAKvZ,MAC7Dyz1B,GAAmBz30B,SAAO,EAAM630B,EAAyBt60B,GAC7D,OAAO5c,KAAKw8zB,gBAAgBs6B,GAE5B,OAAO921B,KAAKw8zB,gBAAgB5/yB,GAGpCshmB,kBAAkB1lhB,EAAQ2+vB,GACtB,OAAQ3+vB,GAAUA,IAAW2+vB,EAEjCJ,yBAAyB1z1B,GACrB,IAAI+z1B,EACAC,EAAW,QAAUD,EAAiB9J,IAASjq1B,UAAU,MAA4B+z1B,EAAiB/z1B,EACtG0rxB,KAAa9khB,OAAS5mQ,GAC1B,MAAO,CACHm1F,OAAQ,WACRn1F,KAAMA,EACNuuB,QAAS,CACL62E,KAAM6oa,GAASy9Q,GACft4wB,KAAM66f,GAASy9Q,GACfp9oB,KAAM0ltB,EAASpl1B,cACf6xC,QAAS9jD,KAAKm11B,gBAAgB9x1B,IAASkr1B,GAAuBvu1B,KAAMqD,GACpE+7I,YAAa,QAEjB+B,SAAU,UAGlB81sB,yBAAyBr60B,GACrB,IACIvZ,KAAMA,EACNi+I,eAAgBA,GAChB1kI,EACJ,OAAOyC,SAAO,EAAM,CAChBm5E,OAAQ,cACRn1F,KAAMA,EACNuuB,QAAS,CACLwtH,YAAa,SACb5iC,WAAY8kC,EACZ77B,YAAa74G,GA1NT,EAACA,EAAOvJ,IACpB,cACoBqa,SAAU9Q,KAAU,MACjB,GAAGiV,OAAOyvf,GAAS,WAAY,KAAKzvf,OAAOjV,GAAS0kgB,GAAS,cAEjFA,GAAS1kgB,IAAUA,EAqNQ0q1B,CAAc1q1B,EAAOvJ,GAC3CijK,YAAagrW,GAASjugB,GACtBqxJ,eAAgB1+I,IACPhW,KAAKu31B,WACNv31B,KAAKw31B,oBACL9I,GAAY1u1B,KAAM,CAACqD,EAAM2S,EAAEpJ,MA5OjC,QA4OsDoJ,EAAElL,OAClD9K,KAAKy31B,gBAAgBzh1B,EAAExH,UAAWwH,EAAEpJ,WAIjDgQ,GAEP460B,oBACQx31B,KAAKw11B,gBAAgBliyB,OAAO,wBAC5BtzD,KAAKw11B,gBAAgBliyB,OAAO,uBAAuB,GAG3DkpwB,gBAAgB5/yB,GACZ,IAAI860B,EAAW,CACX9l0B,QAAS,CACL4iE,cAAex+E,IACP4G,EAAKvZ,OACL2S,EAAExH,UAAU2sD,WAAWvtD,SApQb,gCAqQVoI,EAAExH,UAAU2sD,WAAW+oC,YAAY,MAAMriF,OAAOjF,EAAKvZ,KAAK4O,cAAe,aAAc2K,EAAKvZ,MAC5FrD,KAAKi11B,gBAAgBxs1B,IAAImU,EAAKvZ,KAAM2S,EAAExH,aAG9CkmF,YAAa,KACT10F,KAAKi11B,gBAAgBp01B,OAAO+b,EAAKvZ,SAI7C,OAAOgc,SAAO,EAAM,CAChBpM,SAAU,SACVguI,aAAc,QACfjhJ,KAAK231B,kBAAkB/60B,EAAKvZ,MAAOuZ,EAAM860B,GAEhDE,yBACI,MAAO,CACHtk0B,MAAO,CACH1B,QAAS,CACLxJ,UAAU,IAGlBk5rB,KAAM,CACF1vrB,QAAS,CACLxJ,UAAU,IAGlBq5rB,KAAM,CACF7vrB,QAAS,CACLxJ,UAAU,IAGlB6m0B,eAAgB,CACZr9zB,QAAS,CACLxJ,UAAU,IAGlB8m0B,eAAgB,CACZt9zB,QAAS,CACLxJ,UAAU,IAGlBml0B,gBAAiB,CACb37zB,QAAS,CACLxJ,UAAU,IAGlB+m0B,iBAAkB,CACdv9zB,QAAS,CACLxJ,UAAU,IAGlBgn0B,kBAAmB,CACfx9zB,QAAS,CACLxJ,UAAU,IAGlB+jJ,UAAW,CACPv6I,QAAS,CACLxJ,UAAU,IAGlB+zgB,aAAc,CACVvqgB,QAAS,CACLxJ,UAAU,IAGlBin0B,YAAa,CACTz9zB,QAAS,CACLxJ,UAAU,IAGlBkn0B,eAAgB,CACZ19zB,QAAS,CACLxJ,UAAU,IAGlBon0B,gBAAiB,CACb59zB,QAAS,CACLxJ,UAAU,IAGlB0nU,UAAW,CACPhhS,SAAU,CAAC1iD,EAAMmG,EAAO/K,MACpB4zD,QAAE5zD,GAASoG,SAvVD,oCAyVdszI,iBAAkB,CAAC90I,EAAMmG,EAAO/K,MAC5B4zD,QAAE5zD,GAASoG,SAzVI,2CA8V/B+p1B,kBAAkBt01B,GACd,OAAOrD,KAAK431B,yBAAyBv01B,GAEzCqy1B,uBACI,IAAImC,EAAgB731B,KAAKwm1B,MAAMgI,QAC/B,GAAKqJ,EAGL,KACIv2I,KAAMw2I,EACNr2I,KAAMs2I,GACNF,EAAcr+sB,MAClBx5I,KAAKg41B,0BAA0Bh41B,KAAKi11B,gBAAgBtN,UAAU,QAAS75uB,QAAQgqvB,EAAQrz1B,SACvFzE,KAAKg41B,0BAA0Bh41B,KAAKi11B,gBAAgBtN,UAAU,QAAS75uB,QAAQiqvB,EAAQtz1B,UAE3Fmx1B,qBAEI,GADY511B,KAAKwm1B,MAAMuB,UAAU,SAIjC,KAAI/xoB,EAAYh2M,KAAKwm1B,MAAMvwoB,eACvB9iD,EAAU6iD,GAAah2M,KAAKwm1B,MAAM5wf,UAAU5/I,IAAc,GAC1DiipB,EAA2Bj41B,KAAKux1B,cAAc/9zB,KAAK2sE,GAAU2N,QAAQqlD,EAAQhzD,KACjF0nvB,YAAyBr8S,IACrB,IAAI0sT,EAAgB,kBAChB1/vB,EAASx4F,KAAKi11B,gBAAgBtN,UAAUn8S,GAC5CxriB,KAAKg41B,0BAA0Bx/vB,EAAQ0/vB,GAAiBD,EAA2BA,MAG3FD,0BAA0Bx/vB,EAAQ2/vB,IACzB3/vB,GAGLA,EAAOllC,OAAO,YAAa6kyB,GAE/BxK,oBAAoBt9gB,GAChB,IAAIr6H,EAAYh2M,KAAKwm1B,MAAMvwoB,eAC3B,GAAKD,EAGL,KAAI7iD,EAAUnzJ,KAAKwm1B,MAAM5wf,UAAU5/I,GAC/BoipB,MAAchpwB,OAAc+jE,GAIhC,QAAS5R,MAHJ62sB,GAAc/nhB,IACfrwU,KAAKq41B,sBAEcllsB,EAAS,CAC5B,IAAI56D,EAAav4F,KAAKs41B,qBAAqB/2sB,EAAY4R,GACnDyjsB,EAAe521B,KAAKi11B,gBAAgBtN,UAAUpvvB,IAAev4F,KAAKi11B,gBAAgBtN,UAAUpmsB,IAC3Fq1sB,GAGL521B,KAAK811B,wBAAwBv0sB,EAAYq1sB,EAAczjsB,GAE3DnzJ,KAAKg21B,uBAAuBoC,GAAcpipB,EAAUvxM,OAAS,IAEjEqx1B,wBAAwBzy1B,EAAMm1F,EAAQ26D,GAC9BnzJ,KAAKu41B,eAAel11B,IACpBrD,KAAKw41B,mBAAmBn11B,EAAM8vJ,EAAQ9vJ,IAE1C,UAAem1F,EAAOllC,SAClBtzD,KAAKy31B,gBAAgBj/vB,EAAQ26D,EAAQ9vJ,KAErCm1F,EAAOr9B,WAAWvtD,SAASin1B,KAC3Br8vB,EAAOr9B,WAAWvtD,SAASkn1B,MAGnCkB,uBAAuBoC,GACnB,IAAIK,EAAcz41B,KAAKi11B,gBAAgBtN,UAAU,SAC7C8Q,GACAA,EAAYnlyB,OAAO,YAAa8kyB,GAGxCG,eAAel11B,GACX,MAAO,aAAoB,eAAiBA,EAEhDm11B,mBAAmBn11B,EAAMmyI,GACrB,IAAIohtB,EAAe521B,KAAKi11B,gBAAgBtN,UAAUtk1B,IAC7Cuz1B,GAGLA,EAAaz7xB,WAAW11B,KAAK,IAAI5jB,OA3axB,YA2a4Ck6C,IAAI,oBAAqBy5E,GAAS,eAE3F8itB,qBAAqBj11B,EAAM8vJ,GACvB,IAAI56D,EACJ,OAAQl1F,OACC,QACDk1F,EAAal1F,GAAO4mQ,SAAS92G,EAAQ9vJ,IACrC,UACC,OACDk1F,EAAa46D,EAAQ9vJ,MAAQ4mQ,OAAS5mQ,GACtC,UACC,aACDk1F,EAAa,YACb,UACC,SACDA,EAAa46D,EAAQ9vJ,GAAQA,EAC7B,UACC,WACDk1F,EAAa,QACb,cAEAA,EAAal1F,EAErB,OAAOk1F,EAEXk/vB,gBAAgBj/vB,EAAQ5rF,GACpB5M,KAAKu31B,UAAW,EAChB/+vB,EAAOllC,OAAO,QAAS1mD,GACvB5M,KAAKu31B,UAAW,EAEpBc,sBACIr41B,KAAKi11B,gBAAgBnsxB,KAAK,CAACzlE,EAAMm1F,KAC7Bx4F,KAAK+11B,mBAAmB1y1B,EAAMm1F,KAGtCu9vB,mBAAmB1y1B,EAAMm1F,GACrBA,EAAOr9B,WAAWrtD,YAAY+m1B,KAC9Br8vB,EAAOr9B,WAAWrtD,YAAYgn1B,KAC1B901B,KAAKu41B,eAAel11B,IACpBrD,KAAKw41B,mBAAmBn11B,GAExB,aACAm1F,EAAOllC,OAAO,YAAY,GAE1B,kBAAyB8hC,MACzBp1F,KAAKy31B,gBAAgBj/vB,EAAQ,MAGrCkgwB,gBAAgBr11B,EAAMqE,GAClB1H,KAAKm11B,gBAAgB9x1B,GAAQqE,EAC7B,IAAIkv1B,EAAe521B,KAAKi11B,gBAAgBtN,UAAUtk1B,GAC9Cuz1B,GAAgB,eAA4BxhwB,MAC5CwhwB,EAAatjyB,OAAO,UAAW5rD,KAK/C,UAAeit1B,ICxgBf,IAAIgE,IAAkBrR,GAClBhB,OACAqS,IAAkB,cAAcrR,GAC5Bzn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb,IAAI2mE,EAAav4F,KAAKojnB,eAAehuhB,KACrC3mC,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAM+9C,GAAa,OAAQ6pB,GAAav4F,KAAK8oP,aAAa7/L,KAAKjpD,OAC1FyuD,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAM+9C,GAAa,QAAS6pB,GAAav4F,KAAKkpP,cAAcjgM,KAAKjpD,OAEhG8oP,aAAa9yO,GACT,IAAI4i1B,EACA31H,EAAejttB,EAAEy7D,cAAcwxpB,aAC/B41H,EAAW,SAA4D,QAAUD,EAAsB31H,EAAa9G,aAAU,WAAhE,EAA0Gy8H,EAAoBn01B,OAChMzE,KAAKmye,qBAAqBn8d,GAC1BA,EAAEjL,iBACE8t1B,GACA741B,KAAKu8W,UAAU0mX,EAAa9G,MAAOn8tB,KAAK841B,UAAU7vyB,KAAKjpD,OAG/DkpP,cAAclzO,GACV,IAAI+i1B,GAEA38wB,cAAeA,GACfpmE,EAAEy7D,cAEN,GADAzxE,KAAKmye,qBAAqBn8d,GACrBomE,EAGL,KAAI48wB,EAAe,QAAUD,EAAuB38wB,EAAc/nB,aAAU,WAAkC,EAAS0kyB,EAAqBt01B,QAC3H23E,EAAcnnC,QAAQ,cACpB+jzB,GACfh51B,KAAKu8W,UAAUngS,EAAc/nB,MAAO4kyB,IAC5BzwxB,YAGJxoE,KAAK841B,UAAUG,MAI3BC,SAASp3gB,GACL,QAASA,EAAKr2U,KAAK6zB,MAAM,kEAE7Bi9U,UAAU4/W,EAAOz2tB,GACb,IAAIzD,KAASk8D,UACb2K,SAAKqzpB,EAAO,CAAC5ptB,EAAOuvU,KAChB,GAAK9hV,KAAKk51B,SAASp3gB,GAGnB,KAAIgpZ,EAAS,IAAI7ouB,EAAO8ouB,WACxBD,EAAO9jZ,OAAShkU,IACZ,IACIhhB,OAAQA,GACRghB,EACJtd,EAAS1D,EAAO0Q,SAEpB,IAAIym1B,EAAer3gB,EAAKs3gB,UAAYt3gB,EAAKs3gB,YAAct3gB,EACnDq3gB,aAAwBl31B,EAAO2hV,MAC/BknZ,EAAOE,cAAcmuH,MAIjCL,UAAU1s1B,GACN,IAAI4pM,EAAYh2M,KAAKwm1B,MAAMvwoB,eACvBi3oB,EAAal3oB,EAAYA,EAAUzjM,MAAQvS,KAAKwm1B,MAAM/nb,YAC1Dz+Z,KAAKwm1B,MAAMyG,YAAYC,EAAY,gBAAiB9g1B,EAAM,WAItE,UAAeus1B,IC/Df,IACIU,IAAkB/R,GAClBhB,OAIA+S,IAAkB,cAAc/R,GAC5B/yvB,qBACI,MAAO,CACHioB,WAAY,MAGpB38G,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAK4xB,SAAUvS,QAAO,GAAIrf,KAAKu0F,qBAAsB3iE,GACrD5xB,KAAKmxO,OAASnxO,KAAKs51B,cACnBt51B,KAAKmxO,OAAO3lB,WAAW59M,SAZK,8BAa5B5N,KAAKu51B,yBAETC,WAAWzvwB,EAAYn4D,GACnB,IAAIi5P,GAAQzvN,QAAE,SAASxtD,SAjBH,sBAiBmCi9D,SAASkf,GAChE/pF,KAAK44P,MAAQ54P,KAAK4xB,QAAQwxlB,eAAezqhB,iBAAiBkyL,EAAOC,GAAMl5P,GAE3E0n0B,cACI,IAAIl2O,EAAiBpjnB,KAAK4xB,QAAQwxlB,eAC9Br5hB,KAAa3uB,MAAE,SAASyP,SAASu4iB,EAAejojB,YAChD24L,EAAc9zP,KAAKy51B,kBACvB,OAAOr2O,EAAezqhB,iBAAiB5O,EAAYo2I,GAAO2zB,GAE9D2lmB,kBACI,MAAO,CACHzrsB,gBAAiB0rsB,IACb,IAAIC,EAAa351B,KAAK451B,eAAe551B,KAAK4xB,SAC1C5xB,KAAKw51B,YAAWp+xB,QAAEs+xB,GAAcC,IAEpCtotB,gBAAgB,EAChB6d,QAAS,KACLlvJ,KAAK44P,MAAMv8J,SAEfuyD,SAAU,KACN5uJ,KAAK44P,MAAM8qB,cACX1jR,KAAK44P,MAAMtlM,OAAO,iBAAkB,OAExCm8F,WAAW,EACX7vF,MAAO,OACPE,OAAQ,OACRwvF,SAAS,EACTd,oBAAoB,EACpBD,oBAAoB,EACpBtnF,UAAW,CACPwtE,KAAM,CACFhpI,KAAM,OACN4oE,SAAU,EACVxrE,KAAM,EACN0oE,GAAI,GAERijE,KAAM,CACF/oI,KAAM,OACN4oE,SAAU,IACVxrE,KAAM,EACN0oE,GAAI,IAGZ+8E,YAAY,EACZG,UAAWzuJ,KAAKyuJ,WAGxBmrsB,eAAeho0B,GACX,MAAO,CACH4qF,WAAY5qF,EAAQ4qF,WACpBwa,mBAAoBh3H,KAAK651B,wBAAwB5wyB,KAAKjpD,MACtDmlI,cAAe,SACfi3I,aAAc,gBAGlB3tH,gBACA,IAAIxsJ,KAASk8D,SACToO,EAAetqE,IAAUyjE,SAAUzjE,IAAW,EAClD,OAAOsY,KAAKC,IAzEH,IAyEmB,GAAK+xD,GAErCstxB,wBAAwB7j1B,GAChBhW,KAAKmxO,OAAO79K,OAAO,aACnBtzD,KAAKmxO,OAAO38F,OACZx0I,KAAK851B,mBAAmB9j1B,IAGhCuj1B,yBACI,IAAI9x1B,EAAYinE,GAAa,YAvFlB,2BAwFXjgB,QAAgBzuD,KAAKmxO,OAAO3lB,WAAY/jN,EAAWuO,IAC/CA,EAAEjL,mBAGV+u1B,mBAAmBC,IACnB3yD,YACIpnyB,KAAKmxO,QAAUnxO,KAAKmxO,OAAO18F,OAE/BultB,aAAahg0B,GACTh6B,KAAKwzP,cAAgBx5N,EAEzB+kT,cACI,OAAO/+U,KAAKwzP,iBAIxB,UAAe6lmB,ICnHf,IAAIY,GAAW,GACf,GAAI3T,KAAO,CACP,IAAI4T,IAAQ5T,YAAa,eAEzB2T,GAAW,cAAcC,IAAM/51B,cACbiM,GACV,IACI+t1B,EACAC,EAFAt51B,EAAOhB,MAAMwM,SAGbmK,EAAOrK,EAAKQ,MAChB,OAAIhE,MAAM8B,QAAQ0B,EAAKiu1B,aACnBF,GAAkBjzvB,SAAc96F,EAAKiu1B,WAAW,GAAI,IACpDD,GAAgBlzvB,SAAc96F,EAAKiu1B,WAAW,GAAI,KAElDF,EAAkBC,EAAgBhu1B,EAAKiu1B,WAE3Cv51B,EAAKmm1B,UAAYkT,EAAkB1j1B,EAAO2j1B,EAC1Ct51B,EAAKw51B,QAAQC,gBAAkBJ,EAC/Br51B,EAAKw51B,QAAQE,cAAgBJ,EAC7Bt51B,EAAKw51B,QAAQG,SAAWru1B,EAAKQ,MACtB9L,eAEEA,GACT,OAAOue,QAAO,GAAI,CACdzS,MAAO9L,EAAKw51B,QAAQG,SACpBJ,WAAY,CAACv51B,EAAKw51B,QAAQC,iBAAmB,GAAIz51B,EAAKw51B,QAAQE,eAAiB,QAI3FP,GAASrT,SAAW,WACpBqT,GAAS/41B,QAAU,OACnB+41B,GAAS3kxB,UA5BY,cA8BzB,UAAe2kxB,GC7Bf,IAAIS,IAAiBpT,GACjBhB,OAIAA,cAAe,CACX,mBAAoB2T,MACrB,GACHS,IAAiB,cAAcC,IAC3BpmwB,qBACI,IAAIuhnB,EAAah2sB,MAAMy0F,qBACvB,OAAOl1E,QAAOy2rB,EAAY,CACtBukJ,WAAY,KAGpBx61B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb,IAAIq+H,EAAUu2rB,EAAMuB,UAAU,WAC1B93rB,GACAA,EAAQyosB,gBAAgB,WAAY141B,KAAKonyB,UAAUn+uB,KAAKjpD,OAE5Dwm1B,EAAMj2wB,SAASimxB,WAAW,CACtBrk1B,IAAK,IACLlB,QAAQ,GACTjR,KAAKonyB,UAAUn+uB,KAAKjpD,OACvBA,KAAKmxO,OAAOvnL,GAAG,QAAS5zC,IACpB,IAAI4k1B,GAAax/xB,QAAEplD,EAAExH,UAAU8kD,OAAO,YAAYl3C,IAC9Cw+0B,EAAWjlyB,SAzBC,wBA0BZilyB,EAAWht1B,SAzBD,oBA0BVgt1B,EAAWht1B,SAzBA,wBA6BvBw5xB,UAAUt8xB,GACN,IAAIkrM,EAAYh2M,KAAKwm1B,MAAMvwoB,cAAa,GACpCj8K,EAAWg8K,EAAYA,EAAUzjM,MAAQvS,KAAKwm1B,MAAM/nb,YACxDz+Z,KAAKg61B,aAAahg0B,GAClBh6B,KAAK661B,oBAAoB/v1B,EAAOkvB,GAChCl6B,MAAMsnyB,YAEVyzD,oBAAoB/v1B,EAAOkvB,GACvB,GAAIlvB,GAASA,EAAMtD,QACfxH,KAAKmxO,OAAO79K,OAAO,WAAY,CAC3Bl3C,GAAItR,EAAMtD,QACV2iE,OAAQ,CACJxB,EAAG,EACH9gD,EAAG,GAEPwjD,GAAI,aACJ56C,GAAI,gBACJ86C,UAAW,YAEZ,CACH,IAAIuvxB,EAAgB961B,KAAKwm1B,MAAMvrlB,UAAUjhO,GACrC+g0B,EAAWzzxB,GAAgBtnE,KAAKwm1B,MAAM71zB,MAC1C3wB,KAAKmxO,OAAO79K,OAAO,WAAY,CAC3Bl3C,GAAIpc,KAAKwm1B,MAAM71zB,KACfw5C,OAAQ,CACJxB,EAAGmyxB,EAAcx/xB,KACjBzzC,EAAGiz0B,EAAczjxB,OAAS0jxB,EAASj7xB,QAEvCuL,GAAI,aACJ56C,GAAI,cACJ86C,UAAW,cAIvBuuxB,mBAAmBC,GACf,IAAIvmmB,EAAgBxzP,KAAK++U,cACrB75M,EAAe60tB,EAAsBvr1B,UAAU8kD,OAAO,gBACtD0nyB,GAAe370B,QAAO,GAAI,CAC1BzS,MAAOs4H,EACPm1tB,WAAYr61B,KAAK4xB,QAAQyo0B,aAE7Bt6yB,WAAW,WACP//C,KAAKwm1B,MAAMyG,YAAYz5lB,EAAe,WAAYwnmB,GAClDh71B,KAAKwm1B,MAAMnktB,aAAamxH,EAAgB,IAC1CvqM,KAAKjpD,UAInB,UAAe061B,ICnEf,IAEIptQ,GAAmB,uBACnB2tQ,IAAgBvsxB,GAAa,UAAW4+gB,IACxC4tQ,IAAexsxB,GAAa,SAAU4+gB,IACtC6tQ,IAAkBzsxB,GAAa,YAAa4+gB,IAEjC,kBAA6Bg6P,GACxCzn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKo71B,eAAiBxp0B,EAAQwp0B,gBAAkB,CAAC,SACjDp71B,KAAKqoB,UAAYuJ,EAAQvJ,QACzBroB,KAAKq71B,sBAAwBr71B,KAAKs71B,UAAUryyB,KAAKjpD,MACjDA,KAAKu71B,6BAA+Bv71B,KAAKw71B,sCACrCx71B,KAAKqoB,UACLroB,KAAK+tO,gBACL/tO,KAAKy71B,sBAGb1tnB,gBACIt/K,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAM+9C,GAAagtxB,GAAYpuQ,IAAmBttlB,KAAKq1S,cAAcpsP,KAAKjpD,OACrGyuD,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAMuq0B,IAAcl71B,KAAKu71B,8BACpDv71B,KAAKojnB,eAAex5jB,GAAG,WAAY5pD,KAAKq71B,uBACxCr71B,KAAKwm1B,MAAM58xB,GAAG,cAAe5pD,KAAKu71B,8BAEtCztnB,gBACIr/K,SAAiBzuD,KAAKwm1B,MAAM71zB,KAAM28jB,IAClCttlB,KAAKojnB,eAAev5jB,IAAI,WAAY7pD,KAAKq71B,uBACzCr71B,KAAKwm1B,MAAM38xB,IAAI,cAAe7pD,KAAKu71B,8BAEvClmjB,cAAcr/R,GACV,GAAIhW,KAAK271B,iBAAiB3l1B,EAAEhU,QAAS,CACjC,GAAIhC,KAAK471B,WAAa5l1B,EAAEhU,OACpB,OAEJhC,KAAK471B,SAAW5l1B,EAAEhU,OAClB,IAAI6vE,GAAUzW,QAAEp7D,KAAK471B,UACjB7ysB,EAAWxuI,KAAKC,KAAImxD,SAAckG,MAAWlM,OAASkM,GAAU7xE,KAAK671B,UAAUvoyB,OAAO,aACtFq7F,EAAYp0I,KAAKC,KAAIoxD,SAAeiG,IAAWnM,SAAUmM,GAAU7xE,KAAK671B,UAAUvoyB,OAAO,cAC7FtzD,KAAK671B,UAAUvoyB,OAAO,CAClBy1F,SAAUA,EACV4F,UAAWA,IAEf3uJ,KAAK871B,sBACL971B,KAAK+71B,YACL/71B,KAAKg81B,wBACEh81B,KAAK471B,UACZ571B,KAAKs71B,YAGbE,oCAAoCxl1B,GAChC,MAAO,KACChW,KAAK471B,UACL571B,KAAK871B,uBAIjBE,mBACSh81B,KAAKwm1B,MAAMvwoB,gBACZj2M,KAAKwm1B,MAAMnktB,aAAa,EAAG,GAGnCs5tB,iBAAiBnunB,GACb,OAAOxtO,KAAKk51B,SAAS1rnB,GAEzB0rnB,SAAS1rnB,GACL,OAAO,SAAY4tnB,eAAe5o1B,QAAQ,UAAY,QAAUg7N,EAActsO,QAAQ4kP,cAE1Fi2mB,YACI/71B,KAAKi81B,cAAcxntB,OACnBhmF,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAMsq0B,IAAej71B,KAAKk81B,oBAAoBjzyB,KAAKjpD,OAElFk81B,oBAAoBlm1B,GAChB,IAAIxC,EAAU6+D,GAAiBr8D,IAC3B,QAAUxC,GAAW,cAAgBA,IACrCxT,KAAKm81B,eAETn81B,KAAKs71B,YAETA,YACIt71B,KAAK471B,SAAW,KAChB571B,KAAKi81B,cAAczntB,OACnB/lF,SAAiBzuD,KAAKwm1B,MAAM71zB,KAAMsq0B,KAEtCa,sBACI,IACIh8xB,OAAQA,EACRF,MAAOA,EACPrE,IAAK6gyB,EACL9gyB,KAAM+gyB,GACN/0xB,GAAgBtnE,KAAK471B,WAErBrgyB,IAAK+gyB,EACLhhyB,KAAMihyB,GACNj1xB,GAAgBtnE,KAAKwm1B,MAAM71zB,MAC3B81L,EAAczmN,KAAKwmN,kBACvBxmN,KAAKi81B,cAAclgyB,IAAI,CACnB+D,OAAQA,EACRF,MAAOA,EACPw9B,QA7FQ,EA8FR7hC,IAAK6gyB,EAAYE,EAAe71oB,EA9FxB,EA+FRnrJ,KAAM+gyB,EAAaE,EAAgB91oB,EA/F3B,IAiGZrqJ,GAAKp8D,KAAKi81B,cAAe,CACrB3gyB,KAAM,EACNC,IAAK,IAGbirJ,kBACI,OAAOzzM,SAAS/S,KAAKi81B,cAAclgyB,IAAI,mBAE3C0/xB,qBACI,IAAIz71B,KAAKi81B,cAGT,KACIz6xB,WAAYA,GACZwB,aACJhjE,KAAKi81B,iBAAgB7gyB,MAAE,SAASxtD,SAtHZ,mBAsH4Cs2F,YArH5C,kBAqH+E,YAAc1iC,GAAYqJ,SAAS7qE,KAAKojnB,eAAeo5O,sBAAsBhotB,OAChL/lF,QAAgBzuD,KAAKi81B,cAAed,IAAiBnl1B,IACjDA,EAAEjL,mBAEN/K,KAAK671B,UAAY771B,KAAKojnB,eAAezqhB,iBAAiB34F,KAAKi81B,cAAet4oB,GAAW,CACjF70D,SAAU94I,KACDhW,KAAK471B,cAGVxgyB,MAAEp7D,KAAK471B,UAAUxsxB,KAAK,CAClBtP,OAAQ9pD,EAAE8pD,OACVF,MAAO5pD,EAAE4pD,QAEb5/D,KAAK871B,2BAIjBK,eAEQ,IAAIM,EADJz81B,KAAK271B,iBAAiB371B,KAAK471B,YAE3B,QAAUa,EAAcnW,UAAWtm1B,KAAK471B,iBAAc,OAAkCa,EAAYC,SAAS,IAGrHppyB,OAAOA,EAAQ1mD,GACP,oBAIA,eACA5M,KAAKqoB,QAAUzb,EACfA,EAAQ5M,KAAK+tO,gBAAkB/tO,KAAK8tO,iBAC7B,mBAAqBx6K,GAAU1qD,MAAM8B,QAAQkC,KACpD5M,KAAKo71B,eAAiBxu1B,GAPtB5M,KAAKyn1B,wBAAwB760B,GAUrCquO,QACIj7O,KAAK8tO,gBACL9tO,KAAKi81B,cAAcp71B,SACnBb,KAAKi81B,mBAAgB,GC9I7B,IACIU,IAA0B,+BAC1BC,IAAuB,4BACvBn4hB,IAAW,CACXo4hB,eAAgB,GAChBC,aAAc,IAIdxvQ,GAAmB,4BACnByvQ,IAAoBruxB,GAAa,gBAAiB4+gB,IAClD4tQ,IAAexsxB,GAAa,SAAU4+gB,IAC3B,kBAAkCg6P,GAC7Czn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKqoB,UAAYuJ,EAAQvJ,QACzBroB,KAAKg91B,mBAAqB,GAC1Bh91B,KAAKi91B,gBAAkBj91B,KAAKk91B,cAAc,iBAAkBtr0B,EAAQir0B,gBACpE781B,KAAKm91B,cAAgBn91B,KAAKk91B,cAAc,eAAgBtr0B,EAAQkr0B,cAChE981B,KAAKo91B,gBAAkBp91B,KAAKojnB,eAAeo5O,qBAC3Cx81B,KAAKq91B,WAAa,GACdr91B,KAAKqoB,SACLroB,KAAKs91B,iBAGbA,eAAeC,GACPA,EACAv91B,KAAKw91B,qBAELx91B,KAAKojnB,eAAeqyO,8BAA8Bz11B,KAAKw91B,mBAAmBv0yB,KAAKjpD,OAEnFA,KAAKwn1B,iBAAiBxn1B,KAAKi7O,MAAMhyL,KAAKjpD,OACtCA,KAAKy91B,0BAA4Bnod,OAA2Bt1Y,KAAKmonB,eAAel/jB,KAAKjpD,OAEzFk91B,cAAc9oyB,EAAcvpC,GACxB,SAAOnN,OAAUmN,GAAYtQ,KAAKC,IAAIqQ,EAAU,GAAK45S,IAASrwQ,GAElEopyB,qBACI,IAAI1yR,EAAU9qkB,KAAK091B,cACf5yR,EAAQrmkB,SACRzE,KAAK291B,iBAAiB7yR,GACtB9qkB,KAAK491B,oBAAoB9yR,GACzB9qkB,KAAK691B,yBACL791B,KAAK891B,2BAET991B,KAAK+tO,gBAETA,gBACIt/K,QAAgBzuD,KAAKojnB,eAAen+F,cAAei2U,IAAcl71B,KAAK691B,uBAAuB50yB,KAAKjpD,OAClGA,KAAKwm1B,MAAM58xB,GAAG,cAAe5pD,KAAK+91B,8BAEtCjwnB,gBACIr/K,SAAiBzuD,KAAKojnB,eAAen+F,cAAeqoE,IACpDttlB,KAAKwm1B,MAAM38xB,IAAI,cAAe7pD,KAAKg+1B,yBAEvCD,2BAA2B75wB,EAAO+5wB,EAAYph1B,GAC1C,MAAO,CAACqnE,EAAO+5wB,EAAYph1B,KACvB,GAAI7c,KAAKk+1B,mBAAoB,CACzB,IAAIpzR,EAAU9qkB,KAAK091B,cACnB191B,KAAKm+1B,sBACD,WACAn+1B,KAAK291B,iBAAiB7yR,GAE1B9qkB,KAAKo+1B,0BAA0BtzR,GAC/B9qkB,KAAK491B,oBAAoB9yR,GACzB9qkB,KAAK691B,yBACL791B,KAAK891B,+BAEL991B,KAAK691B,yBACA791B,KAAKi/pB,aACNj/pB,KAAK891B,2BAKrBO,kBAAkB//U,GACd,IAAIggV,EACJ,OAAO,QAAUA,EAAwBt+1B,KAAKu+1B,wBAAqB,WAAmC,EAASD,EAAsBt61B,IAAIs6gB,EAAOt6gB,IAAI,IAExJmknB,iBACInonB,KAAKw+1B,qBAAuBz+yB,WAAW,KACnC,IAAI+qhB,EAAU9qkB,KAAK091B,eACnB50xB,SAAKgigB,EAAS,CAACv4jB,EAAOu5b,KAClB,IAAIwyE,GAASljd,QAAE0wY,GACX5xX,EAAQl6E,KAAKg91B,mBAAmBzq1B,GAChCks1B,GAAmB9yxB,SAAc2yc,GACjCogV,EAAiB1+1B,KAAK2+1B,gBAAgBzkxB,GACtC3/D,KAAKyjD,IAAIygyB,EAAmBC,GAAkB,IAC9C1+1B,KAAK2+1B,gBAAgBzkxB,EAAOukxB,GAC5Bz+1B,KAAK4+1B,oBAAoBtgV,EAAQ/rgB,MAGzCvS,KAAK691B,yBACL791B,KAAK891B,4BAGbJ,cACI,OAAOtiyB,QAAEp7D,KAAKo91B,iBAAiB33zB,KAAK,SAExCo5zB,oBAAoB1jyB,GAChB,IAAI2jyB,EAAa3jyB,EAAS,GAAG5yD,MAAMq3D,MACnC,MAAO,OAAoB7sD,SAAS+r1B,QAAc,EAEtDH,gBAAgBzkxB,EAAOrvD,GACnB,OAAInN,OAAUmN,GAGV,OAAO,aAAqC,EAASqvD,EAAM6kxB,UAF3D7kxB,EAAM6kxB,UAAYl00B,EAK1B8y0B,iBAAiB7yR,IACbhigB,SAAKgigB,EAAS,CAACv4jB,EAAOu5b,KAClB,IAAIwyE,KAASljd,MAAE0wY,GACXm/E,EAAkBjrhB,KAAKg/1B,6BAA6B1gV,EAAQ,cAC3Dt+gB,KAAKg91B,mBAAmBzq1B,KACzBvS,KAAKg91B,mBAAmBzq1B,GAAS,CAC7Bws1B,eAAW,IAGnB,IAAI7kxB,EAAQl6E,KAAKq+1B,kBAAkB//U,GAMnC,GALKpkc,GACDl6E,KAAKg91B,mBAAmB3z1B,KAAK,CACzBi1gB,OAAQA,IAGZ,IAAMq0U,GAAqBr0U,GAAQ75gB,OAAQ,CAC3C,IAAIw61B,GAEAC,WAAYA,GACZl/1B,KAAKm/1B,sBAAsBl0U,GAC/B4nU,GAAgBv0U,EAAQ,CACpBkoU,MAAOxm1B,KAAKwm1B,QAEhB,IAAIoL,EAAa,QAAUqN,EAAwBj/1B,KAAK2+1B,gBAAgBzkxB,UAAW,MAAmC+kxB,KAAwBtzxB,OAAc2yc,GACxJpkc,GACAl6E,KAAK2+1B,gBAAgBzkxB,EAAO3/D,KAAKC,IAAI0k1B,EAAYtN,OAKjEgM,oBAAoB9yR,GAChB9qkB,KAAKu+1B,iBAAmB,IAAIr31B,IAC5B4jkB,EAAQhigB,KAAK,CAACv2D,EAAOu5b,KACjB,IAAIszZ,EACA9gV,KAASljd,MAAE0wY,GACXuzZ,EAAa,QAAUD,EAAwBp/1B,KAAKg91B,mBAAmBzq1B,UAAW,WAAmC,EAAS6s1B,EAAsB9gV,OACpJghV,EAAkBt/1B,KAAKg91B,mBAAmBzq1B,GAAOws1B,UACrD/+1B,KAAKg91B,mBAAmBzq1B,GAAS,CAC7Bgt1B,OAAQv/1B,KAAKw/1B,wBAAwB1zZ,GACrCwyE,OAAQA,EACR/rgB,MAAOA,EACPws1B,UAAWM,GAAcvzZ,IAAUuzZ,EAAWr71B,IAAI,GAAKs71B,OAAkB,EACzEzrO,aAAc7znB,KAAKg/1B,6BAA6B1gV,EAAQ,cAAc75gB,OACtEqxmB,UAAW91mB,KAAKg/1B,6BAA6B1gV,EAAQ,YAAY75gB,QAErEzE,KAAKu+1B,iBAAiBv21B,IAAI8jc,EAAO9rc,KAAKg91B,mBAAmBzq1B,MAE7DvS,KAAKg91B,mBAAmBv41B,OAASqmkB,EAAQrmkB,OAE7Cy51B,mBACI,IAAIpzR,EAAU9qkB,KAAK091B,cACfhr1B,GAAS,EACb,OAAIo4jB,EAAQrmkB,SAAWzE,KAAKg91B,mBAAmBv41B,OAC3CiO,GAAS,GAETo2D,SAAKgigB,EAAS,CAACv4jB,EAAOu5b,KAClB,IAAIwyE,GAASljd,QAAE0wY,GACX5xX,EAAQl6E,KAAKg91B,mBAAmBzq1B,GAChCkt1B,GAAyB,MAASvlxB,OAA4B,EAASA,EAAM25iB,gBAAkB7znB,KAAKg/1B,6BAA6B1gV,EAAQ,cAAc75gB,OACvJi71B,GAAqB,MAASxlxB,OAA4B,EAASA,EAAM47hB,aAAe91mB,KAAKg/1B,6BAA6B1gV,EAAQ,YAAY75gB,OAClJ,GAAIg71B,GAAyBC,EACzBht1B,UAAS,GACF,IAIZA,EAEXyr1B,oBAAoBwB,GAChB,IAAIC,KACJ92xB,OAAK9oE,KAAKg91B,mBAAoB,CAACzq1B,EAAOst1B,KAClC,GAAIA,EAAYN,OAAQ,CACpB,IAAIO,EACAC,EAA0B,IAAIl+0B,OAAO860B,IAAyB,OAAO960B,OAAO+60B,KAChF581B,KAAKgg2B,uBAAuB,QAAUF,EAAsBD,EAAYN,cAAW,WAAiC,EAASO,EAAoBr6zB,KAAKs6zB,IACtJF,EAAYN,OAAO1+1B,YAG3B,QAAU++1B,EAAyB5/1B,KAAKu+1B,wBAAqB,OAA6CqB,EAAuBts0B,QAC7Hqs0B,IACA3/1B,KAAKg91B,mBAAqB,IAGlCgD,uBAAuBC,GACnBA,EAAgBn3xB,KAAK,CAACtkE,EAAG071B,KACrBzxyB,SAAiByxyB,EAAgBnD,OAGzCyC,0BACI,SAAOpkyB,MAAE,SAASxtD,SAvMS,yBAuM8Bi9D,SAAS7qE,KAAKo91B,iBAE3ES,4BACI/0xB,OAAK9oE,KAAKg91B,mBAAoB,CAACzq1B,EAAO4t1B,KAClCng2B,KAAKog2B,qBAAqBD,EAAiB7hV,OAAQ6hV,EAAiBZ,UAG5Ea,qBAAqB9hV,EAAQihV,GACzB,IACIz/xB,OAAQA,EACRF,MAAOA,EACPrE,IAAK6gyB,EACL9gyB,KAAM+gyB,GACN/0xB,GAAgBg3c,EAAOt6gB,IAAI,KAE3Bu3D,IAAK+gyB,EACLhhyB,KAAMihyB,GACNj1xB,GAAgBtnE,KAAKwm1B,MAAM71zB,MAC/B4u0B,EAAOxjyB,IAAI,CACP+D,OAAQA,EACRF,MAAOA,EACPrE,IAAK6gyB,EAAYE,EACjBhhyB,KAAM+gyB,EAAaE,IAEvBngyB,GAAKmjyB,EAAQ,CACTjkyB,KAAM,EACNC,IAAK,IAGbuiyB,wBAAwBl0xB,MACpBd,OAAK9oE,KAAKg91B,mBAAoB,CAACzq1B,EAAO2nE,KAC9BtQ,EACA5pE,KAAKqg2B,uBAAuBnmxB,EAAOtQ,IAEnC5pE,KAAKqg2B,uBAAuBnmxB,EAAO,YACnCl6E,KAAKqg2B,uBAAuBnmxB,EAAO,iBAI/ComxB,aAAanlyB,GACT,OAAOA,EAASxF,SAAS,iBAAmBwF,EAASlxC,GAAG,YAE5Ds20B,iBAAiBC,EAAuBC,GAChCzg2B,KAAKsg2B,aAAaE,MACFplyB,QAAEolyB,GAAuBE,YAAY,YAC3C5/yB,WACVsa,QAAEolyB,GAAuB5y1B,SAAS6y1B,IAG1CE,kBAAkB/2xB,GACd,MAAI,eACO,CACH62xB,iBAAkB7D,IAClBgE,aAAchw0B,MAAKg7C,OAAeh7C,GAClCiw0B,mBAAoB,MACpBC,sBAAuB,SACvBC,uBAAwB,KAGrB,CACHN,iBAAkB9D,IAClBiE,aAAchw0B,MAAK+6C,OAAc/6C,GACjCiw0B,mBAAoB7g2B,KAAKojnB,eAAe9vjB,OAAO,cAAgB,QAAU,OACzEwtyB,sBAAuB,QACvBC,uBAAwB,KAIpCC,SAAS7lyB,EAAU8lyB,GACf,OAAOA,EAAcL,aAAazlyB,GAEtCklyB,uBAAuBnmxB,EAAOtQ,GAU1B,QATIs3xB,EAAuBlh2B,KAAKg/1B,6BAA6B9kxB,EAAMokc,OAAQ10c,GAEvEu3xB,EAD2BD,EAAqBz81B,OACgB,EAChEw81B,EAAgBjh2B,KAAK2g2B,kBAAkB/2xB,GACvCw3xB,EAAiBlnxB,EAAMqlxB,OAAO95zB,KAAK,IAAI5jB,OAAOo/0B,EAAcR,mBAC5Dh1e,EAAe,CACfnoW,UAAW,QAEXw3D,EAAkB,EACbt2E,EAAI,EAAGA,GAAK281B,EAAoC381B,IAAK,CAC1Ds2E,GAAmB96E,KAAKgh2B,SAASE,EAAqB/5uB,GAAG3iH,GAAIy81B,IACxDvj1B,SAAU0j1B,EAAe581B,MAC1B481B,EAAe581B,MAAK42D,MAAE,SAASxtD,SAASqz1B,EAAcR,kBAAkB51xB,SAASqP,EAAMqlxB,QAAQv71B,IAAI,IAEvG,IAAIw81B,GAAwBplyB,QAAEgmyB,EAAe581B,IAC7CxE,KAAKug2B,iBAAiBC,EAAuBS,EAAcR,kBAC3Dh1e,EAAaw1e,EAAcJ,oBAAsB/lxB,EAxR9B,GAyRnB1f,QAAEolyB,GAAuBzkyB,IAAI0vT,GAQ7BzrX,KAAKqh2B,6BAPqB,CACtBC,cAAeF,EAAe581B,GAC9B+N,MAAO/N,EACP081B,qBAAsBA,EACtBhnxB,MAAOA,EACPtQ,UAAWA,KAKvBo1xB,6BAA6B1gV,EAAQ10c,GACjC,MAAI,eACO00c,EAAO74e,KAAK,kCAEZ6qe,GAAkBgO,GAGjC+iV,6BAA6Bzv0B,GACzB68B,QAAgB78B,EAAQ0v0B,cAAevE,IAAmB,KACtD/81B,KAAKuh2B,wBAAwB3v0B,KAGrCkzL,kBAAkB9hM,GACd,IACIk+0B,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,EACPtQ,UAAWA,EACX03xB,cAAeA,GACft+0B,EACAi+0B,EAAgBjh2B,KAAK2g2B,kBAAkB/2xB,GAC3C5pE,KAAKi/pB,aAAc,EACnBj/pB,KAAKwh2B,iBAAiBtnxB,EAAMokc,QAC5Bt+gB,KAAKyh2B,eAAiB1u1B,SAAS/S,KAAKgh2B,YAAS5lyB,MAAE8lyB,EAAqB3u1B,IAAS0u1B,IAC7Ejh2B,KAAK0h2B,kBAAmB/1xB,SAAcuO,EAAMokc,QAC5Ct+gB,KAAK2h2B,4BAA8B5u1B,UAASqoD,QAAEkmyB,GAAevlyB,IAAIklyB,EAAcJ,qBAC/E7g2B,KAAK4h2B,cAAgB,EACjBV,EAAqB3u1B,EAAQ,GAC7BvS,KAAK4h2B,cAAgB7u1B,SAAS/S,KAAKgh2B,UAAS5lyB,QAAE8lyB,EAAqB3u1B,EAAQ,IAAK0u1B,IACzE,eAAiBr3xB,GACxBipxB,GAAgB34wB,EAAMokc,OAAQ,CAC1BkoU,MAAOxm1B,KAAKwm1B,QAIxBqb,oBAAoBj4xB,GAChB,MAAO,kBAA8B5pE,KAAKojnB,eAAe9vjB,OAAO,cAEpEwuyB,yBAAyBC,EAAmBC,EAAoBC,GAC5D,IAAKji2B,KAAK4h2B,cACN,OAAO,EACJ,GAAIG,GAAqB/h2B,KAAKi91B,gBAAiB,CAClD,IAAIiF,EAAmBli2B,KAAKmi2B,uBAAyBF,EAAcji2B,KAAKmi2B,uBAAyBF,EAAc,EAC3GG,EAAiB7n1B,KAAKyjD,IAAIh+D,KAAK6+1B,oBAAoBmD,IAAsBr2xB,SAAcq2xB,IA9UpF,EA+UP,OAAOE,IAAqBE,EAEhC,OAAO,EAEXC,0BAA0BN,GACtB,OAAO/h2B,KAAK4h2B,eAAiBG,EAAoB,EAErDO,uBAAuBhowB,GACnB,IACIiowB,mBAAoBA,EACpBtB,cAAeA,EACfgB,YAAaA,EACbf,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,GACPogB,EACAynwB,EAAoB/h2B,KAAK4h2B,eAAiB5h2B,KAAK4h2B,cAAgBK,EAC/DO,EAA6BD,GAAsBvi2B,KAAKi91B,gBACxD/U,EAAgB6K,GAAgB74wB,EAAMokc,OAAQ/rgB,GAC9Ckw1B,EAAoB1P,GAAgB74wB,EAAMokc,OAAQ/rgB,EAAQ,GAC1Dmw1B,GAAgB/2xB,SAAcu8wB,EAAc/guB,GAAG,IAAMo7uB,EACzD,GAAIC,EACA,GAAIxi2B,KAAK8h2B,yBAAyBC,EAAmBb,EAAqB/5uB,GAAG50G,EAAQ,GAAI0v1B,GAAc,CACnGjP,GAAsBhz1B,KAAM,CACxByuE,SAAUy5wB,EACVj/tB,SAAUg4uB,EAAcH,sBACxBl01B,MAAO211B,IAEPvi2B,KAAKqi2B,0BAA0BN,IAC/B/O,GAAsBhz1B,KAAM,CACxByuE,SAAUg0xB,EACVx5uB,SAAUg4uB,EAAcH,sBACxBl01B,MAAOm11B,IAGf,IAAIY,EAAsBpo1B,KAAKyjD,IAAIh+D,KAAK0h2B,kBAAmB/1xB,SAAcuO,EAAMokc,SAlX5E,GAmXwB/jgB,KAAKyjD,IAAI0kyB,GAnXjC,IAmXmE1i2B,KAAK4h2B,eAAiBe,KAExF3P,GAAsBhz1B,KAAM,CACxByuE,SAAUy5wB,EACVj/tB,SAAUg4uB,EAAcH,sBACxBl01B,OAAO++D,SAAcu8wB,EAAc/guB,GAAG,MAE1C46uB,GAAqBQ,KAAqB52xB,OAAcu8wB,EAAc/guB,GAAG,IACrEnnH,KAAKqi2B,0BAA0BN,IAC/B/O,GAAsBhz1B,KAAM,CACxByuE,SAAUg0xB,EACVx5uB,SAAUg4uB,EAAcH,sBACxBl01B,MAAOm11B,UAKnB/h2B,KAAKmi2B,uBAAyBni2B,KAAKmi2B,wBAA0BF,EAGrEji2B,KAAK4i2B,qBAAqB7myB,IAAIklyB,EAAcJ,mBAAoB7g2B,KAAK2h2B,4BAA8BM,EAAcS,EAAgB,MAErIG,qBAAqB1xxB,GACjB,IACIoxxB,mBAAoBA,EACpBtB,cAAeA,EACfgB,YAAaA,EACbf,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,GACP/I,EACAshxB,EAAYl40B,KAAKC,IAAI+n1B,EAAoBvi2B,KAAKm91B,eAElDnK,GAAsBhz1B,KAAM,CACxByuE,SAFgBskxB,GAAgB74wB,EAAMokc,OAAQ/rgB,EAAO,YAGrD02G,SAAUg4uB,EAAcH,sBACxBl01B,MAAO6l1B,IAEX,IAAIqQ,GAAgBl3xB,SAAes1xB,EAAqB/5uB,GAAG50G,IAAUgw1B,EACrEvi2B,KAAK4i2B,qBAAqB7myB,IAAIklyB,EAAcJ,mBAAoB7g2B,KAAK2h2B,4BAA8BM,EAAca,EAAgB,MAErIh8W,iBAAiBh8e,EAAOwnE,GACpB,IACI4uxB,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,EACPtQ,UAAWA,GACX0I,EACA2uxB,EAAgBjh2B,KAAK2g2B,kBAAkB/2xB,GACvCq4xB,EAAcn31B,EAAMq/D,OAAO82xB,EAAcF,wBAC7C/g2B,KAAKojnB,eAAe3rY,sBAAsB3sO,GACtC9K,KAAK6h2B,oBAAoBj4xB,KACzBq4xB,GAAeA,GAEnB,IAAIM,EAAqBvi2B,KAAKyh2B,eAAiBQ,EAC3C,iBACAji2B,KAAKsi2B,uBAAuB,CACxBC,mBAAoBA,EACpBtB,cAAeA,EACfgB,YAAaA,EACbf,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,IAGXl6E,KAAK6i2B,qBAAqB,CACtBN,mBAAoBA,EACpBtB,cAAeA,EACfgB,YAAaA,EACbf,qBAAsBA,EACtB3u1B,MAAOA,EACP2nE,MAAOA,IAGfl6E,KAAKog2B,qBAAqBlmxB,EAAMokc,OAAQpkc,EAAMqlxB,QAElDv6oB,gBAAgBpzL,GACZ,IAAImx0B,EACJ,QAAUA,EAAwB/i2B,KAAK4i2B,4BAAyB,OAA4CG,EAAsBli2B,SAClIb,KAAKi/pB,iBAAc,EACnBj/pB,KAAKmi2B,4BAAyB,EAC9Bni2B,KAAK2+1B,gBAAgB/s0B,EAAQsoD,SAAOvO,OAAc/5C,EAAQsoD,MAAMokc,SAChEt+gB,KAAK691B,yBACL791B,KAAK891B,0BAETkF,sBAAsBtwxB,GAClB,IACIwuxB,qBAAsBA,EACtB3u1B,MAAOA,GACPmgE,EACJ,QAAQh1D,SAAUwj1B,EAAqB3u1B,EAAQ,IAEnD0w1B,mBAAmBrx0B,GACf,IAAIlf,EAAS,GACb,GAAI,aAAekf,EAAQg4C,UACvBl3D,EAAO+4D,SAAW75C,EAAQsoD,MAAMokc,OAChC5rgB,EAAOy1e,YAAc,CACjB9wa,QAAQnZ,eAAewH,UAAUvH,cAAgByN,OAAe5rE,KAAKo91B,iBACrE7hyB,IAAK,EACLD,KAAM,EACNgc,MAAO,WAEHt3E,KAAKgj2B,sBAAsBpx0B,GAEhC,CACH,IAAI++K,EAAW3wM,KAAKojnB,eAAen+F,cACnCvygB,EAAO+4D,SAAWklI,EAClBj+L,EAAOy1e,YAAc,CACjB9wa,OAAQ,EACR9b,IAAK,EACLD,KAAMq1I,EAAS50I,IAAI,eACnBub,MAAOq5H,EAAS50I,IAAI,sBARxBrpD,EAAO+4D,SAAW75C,EAAQsoD,MAAMokc,OAWpC,OAAO5rgB,EAEX6u1B,wBAAwB3v0B,GACpB,IAAIsx0B,EACAC,EAAiBnj2B,KAAKij2B,mBAAmBrx0B,GACzCwx0B,EAAiB,aAAexx0B,EAAQg4C,UAAY,gCAAkC,mCAC1F,QAAUs5xB,EAAyBlj2B,KAAK4i2B,4BAAyB,OAA6CM,EAAuBri2B,SACrIb,KAAK4i2B,sBAAuBxnyB,QAAE,SAASxtD,SAAS,GAAGiU,OAAOuh1B,IAAiB98nB,aAAYlrK,QAAExpC,EAAQ0v0B,gBACjG,IAAIv90B,EAAS,CACTiqI,gBAAiB,KACjBo6V,kBAAkB,EAClBplV,cAAepxI,EAAQg4C,UACvB05F,WAAY1wF,IACR,IAEI9nE,MAAOA,GACP8nE,EACJ5yE,KAAK8mf,iBAAiBh8e,EAAO8mB,IAEjC2xI,YAAa,KACTvjK,KAAK8kN,kBAAkBlzL,IAE3ByxI,UAAW,KACPrjK,KAAKglN,gBAAgBpzL,MAG7BvS,QAAO0E,EAAQo/0B,GACfnj2B,KAAKqj2B,yBAA2Brj2B,KAAKojnB,eAAezqhB,iBAAiB/mE,EAAQ0v0B,cAAeh6W,GAAWvje,GAE3Gy90B,iBAAiBljV,GACb,IAAIglV,EAAsBtj2B,KAAKg/1B,6BAA6B1gV,IAC5Dx1c,SAAKw6xB,EAAqB,CAAC/w1B,EAAO/K,KAC9B,IAAIwshB,GAAcrod,SAAcnkE,GAEhCwr1B,GAAsBhz1B,KAAM,CACxByuE,SAFgBskxB,GAAgBz0U,EAAQ/rgB,GAGxC02G,SAAU,QACVr8G,MAAO2N,KAAKC,IAAIw5gB,EAAah0hB,KAAKi91B,qBAI9CkC,sBAAsBr0U,GAClB,IAAIy4U,EAAgB,GAChBrE,EAAa,EACjBp2xB,gBAAKgid,EAAgB,CAACv4gB,EAAO/K,KACzB,IAAI2zD,GAAWC,QAAE5zD,GACbwshB,EAAch0hB,KAAK6+1B,oBAAoB1jyB,OAAawQ,OAAcxQ,GACtEooyB,EAAchx1B,GAASgI,KAAKC,IAAIw5gB,EAAah0hB,KAAKi91B,iBAClDiC,GAAcqE,EAAchx1B,KAEzB,CACHgx1B,cAAeA,EACfrE,WAAYA,GAGpBsE,sBAAsB14U,EAAgBvrY,EAAOgktB,EAAejlV,IACxDx1c,SAAKgid,EAAgBv4gB,IAQjByg1B,GAAsBhz1B,KAAM,CACxByuE,SARgBskxB,GAAgBz0U,EAAQ/rgB,GASxC02G,SAAU,QACVr8G,MARA2yI,EAAQ,EACMv/I,KAAKi91B,gBAAkB1i1B,KAAK2zC,OAAOq1yB,EAAchx1B,GAASvS,KAAKi91B,iBAAmB19sB,GAElFv/I,KAAKi91B,oBAS/B2B,oBAAoBtgV,EAAQmlV,GACxB,IAAIH,EAAsBtj2B,KAAKg/1B,6BAA6B1gV,GACxDpkc,EAAQl6E,KAAKg91B,mBAAmByG,GAC/BvpxB,IACDl6E,KAAKg91B,mBAAmByG,GAAc,IAG1C,IACIlktB,EADAqysB,EAAa5x1B,KAAK2+1B,gBADtBzkxB,EAAQl6E,KAAKg91B,mBAAmByG,MACgB93xB,SAAc2yc,IAG1DilV,cAAeA,EACfrE,WAAYA,GACZl/1B,KAAKm/1B,sBAAsBmE,GAC3BI,EAAqBJ,EAAoB7+1B,OAASzE,KAAKi91B,gBAM3Dj91B,KAAK2+1B,gBAAgBzkxB,GAJjBqlE,EADA2/sB,EAAawE,GACJ9R,EAAa8R,IAAuBxE,EAAawE,IAElD,GAEwB,EAAI9R,EAAa8R,GACrD1j2B,KAAKwj2B,sBAAsBF,EAAqB/jtB,EAAOgktB,EAAejlV,GAE1E8/U,0BAA0BtzR,IACtBhigB,SAAKgigB,EAAS,CAACv4jB,EAAOu5b,KAClB9rc,KAAK4+1B,qBAAoBxjyB,QAAE0wY,GAAQv5b,KAG3C+gD,OAAOA,EAAQ1mD,GACP,oBAIA,eACA5M,KAAKqoB,QAAUzb,EACfA,EAAQ5M,KAAKs91B,gBAAe,GAAQt91B,KAAKi7O,SAClC,CAAC,iBAAkB,gBAAgBzzN,SAAS8rC,KACnDtzD,KAAK,IAAI6hB,OAAOyxC,IAAWtzD,KAAKk91B,cAAc5pyB,EAAQ1mD,IAPtD5M,KAAKyn1B,wBAAwB760B,GAUrCquO,QACIj7O,KAAKm+1B,qBAAoB,GACzBn+1B,KAAK8tO,gBACLwnK,UAA8Bt1Y,KAAKy91B,2BACnCl/xB,aAAav+D,KAAKw+1B,sBAClBx+1B,KAAKy91B,+BAA4B,EACjCz91B,KAAKi/pB,iBAAc,EACnBj/pB,KAAK0h2B,sBAAmB,EACxBnjyB,aAAav+D,KAAK2j2B,wBC3mB1B,IACIC,IAAqBl1xB,GAAa,gBADf,gCAEnBm1xB,IAAyBvc,GACzBh2U,GAAWjugB,GAAQs/Q,UAA2B,gBAAgB9gQ,UAAOy8L,OAASj7M,KAC9Eij1B,OACAud,IAAyB,cAAcvc,GACnCzn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKqoB,UAAYuJ,EAAQvJ,QACzBroB,KAAKo91B,gBAAkBp91B,KAAKojnB,eAAeo5O,qBAC3Cx81B,KAAKwn1B,iBAAiBxn1B,KAAK8j2B,wBAC3B9j2B,KAAKm11B,gBAAkBC,IAAkBp11B,MACzCA,KAAKux1B,cAAgB8D,IAAgB7O,GACjCxm1B,KAAKqoB,SACLroB,KAAK+j2B,mBAAmBny0B,EAAQyiC,OAGxC0vyB,mBAAmB1vyB,GACf,IAAI2vyB,EACJ,QAAUA,EAAqBhk2B,KAAK4+sB,oBAAiB,OAAyColJ,EAAmBljzB,UACjH9gD,KAAK4+sB,aAAe5+sB,KAAKkkyB,mBAAmB7vuB,GAC5Cr0D,KAAK+tO,gBAETA,gBACIt/K,QAAgBzuD,KAAKojnB,eAAen+F,cAAe2+U,IAAoB5j2B,KAAKik2B,8BAEhFn2nB,gBACIr/K,SAAiBzuD,KAAKojnB,eAAen+F,cAAe2+U,KAExD1/D,mBAAmB7vuB,GACf,IAAI01B,KAAa3uB,MAAE,SAASyP,SAAS7qE,KAAKojnB,eAAejojB,YACrD+oyB,EAAalk2B,KAAKmk2B,eAAe9vyB,GACrC,OAAOr0D,KAAKojnB,eAAezqhB,iBAAiB5O,EAAYs4B,GAAa6hvB,GAEzEE,qBACI,IAAI341B,EAAO1L,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,GAAK,OACxEo7D,KAAWC,MAAEp7D,KAAKqk2B,gBAAgBvmxB,QAAQ,WAAkB,SAAW,SAC3E99E,KAAK4+sB,aAAapqkB,OAClBx0I,KAAKm11B,gBAAgB,GAAGtz0B,OAAOpW,EAAM,eAAe0vD,GACpDn7D,KAAKqk2B,eAAiB,KAE1BnmP,kBAAkB1lhB,EAAQ2+vB,GACtB,OAAQ3+vB,GAAUA,IAAW2+vB,EAEjCN,kBAAkBj60B,GACd,GAAIA,EAAKvZ,MAAQrD,KAAKk+mB,kBAAkBthmB,EAAK47E,OAAQ,YAAa,CAC9D,IAAI0+vB,EAA0Bl31B,KAAKsk2B,uBAAuB1n1B,EAAKvZ,MAE/D,SADuBgc,OAAO,EAAM630B,EAAyBt60B,GAE1D,OAAIA,EAAKy3C,QACZz3C,EAAKy3C,MAAQr0D,KAAKuk2B,kBAAkB3n1B,EAAKy3C,QAClCz3C,EAKf0n1B,uBAAuBjh2B,GACnB,IAAI+z1B,EAAgBoN,EAChBnN,EAAW,QAAUD,EAAiB9J,IAASjq1B,UAAU,IAAW+z1B,EAAiBA,EAAiB/z1B,EACtG0rxB,KAAa9khB,OAAS5mQ,GAC1B,MAAO,CACHoT,KAAM66f,GAASy9Q,GACfp9oB,KAAM0ltB,EAASpl1B,cACf6xC,QAAS,QAAU0gzB,EAAwBxk2B,KAAKm11B,gBAAgB9x1B,UAAU,MAAmCmh2B,EAAwBjW,GAAuBvu1B,KAAMqD,IAG1Kkh2B,kBAAkBlwyB,GACd,IAAI8iM,EAAc,GAClBruL,gBAAKzU,EAAO,CAAC7vC,EAAG5H,KACZ,IAAIogH,KACAhgH,OAASJ,GACTogH,EAAUh9H,KAAK621B,kBAAkBj60B,MAC1B2/D,OAAS3/D,KAChBogH,EAAUh9H,KAAKsk2B,uBAAuB1n1B,IAEtCogH,GACAm6H,EAAY9tP,KAAK2zH,KAGlBm6H,EAEXgtmB,eAAe9vyB,GACX,IAAI6xf,EAAe,CAAC,CAChBzviB,KAAM66f,GAAS,UACfj9c,MAAO,CAAC,kBAAmB,iBAAkB,kBAAkBh1C,QAAOrf,KAAKsk2B,uBAAuB,oBAAqB,CACnH7ktB,YAAY,IACZ,sBACL,CACChpI,KAAM66f,GAAS,UACfj9c,MAAO,CAAC,eAAgB,YAAa,iBACtCh1C,QAAOrf,KAAKsk2B,uBAAuB,kBAAmB,CACrDxgzB,QAAS9tC,IACLhW,KAAKok2B,mBAAmB,YAE5B/k1B,QAAOrf,KAAKsk2B,uBAAuB,mBAAoB,CACvDxgzB,QAAS9tC,IACLhW,KAAKok2B,mBAAmB,aAG5BK,EAAczk2B,KAAKuk2B,kBAAkB,MAASlwyB,GAA6BA,EAAM5vD,OAAS4vD,EAAQ6xf,GACtG,MAAO,CACHlkjB,OAAQhC,KAAKo91B,gBACbvtsB,UAAW,KACXrB,oBAAoB,EACpBn6F,MAAOowyB,GAGfR,6BACI,OAAOn51B,IACC9K,KAAK0k2B,eAAe551B,EAAM9I,UAC1BhC,KAAKqk2B,eAAiBv51B,EAAM9I,OAC5BhC,KAAK2k2B,wBAAwB751B,GAC7B9K,KAAK4+sB,aAAanqkB,OAClB3pI,EAAMC,mBAIlB451B,wBAAwB751B,GACpB,IAAI851B,EAAgB5k2B,KAAKo91B,gBAAgBp51B,IAAI,GAAG0jE,wBAChD1nE,KAAK4+sB,aAAatrpB,OAAO,CACrBt5B,SAAU,CACNqxC,GAAI,WACJ56C,GAAI,WACJ86C,UAAW,UACXpB,OAAQ,CACJv5C,EAAG9lB,EAAMw6tB,QAAUs/H,EAActpyB,KACjCE,EAAG1wD,EAAM26tB,QAAUm/H,EAAcrpyB,QAKjDmpyB,eAAel3nB,GACX,SAASpyK,QAAEoyK,GAAe1vJ,QAAQ,wDAAwDr5E,OAE9Fw2O,QACIj7O,KAAK8tO,gBAETx6K,OAAOA,EAAQ1mD,GACX,GAAI,wBAIJ,GAAI,cACA5M,KAAKqoB,QAAUzb,EACfA,EAAQ5M,KAAK+j2B,qBAAuB/j2B,KAAKi7O,gBAClC,YAAoB,CAC3B,IAAI4pnB,EACJ,QAAUA,EAAsB7k2B,KAAK4+sB,oBAAiB,OAA0CimJ,EAAoB/jzB,UACpH9gD,KAAK4+sB,aAAe5+sB,KAAKkkyB,mBAAmBt3xB,SAT5C5M,KAAKyn1B,wBAAwB760B,GAYrCk31B,uBACI,MAAO,KACH9j2B,KAAKi7O,YAKrB,UAAe4onB,IC3Kf,IAAIv2Q,GAAmB,0BAEnBw3Q,IAAoBxd,GACpBhB,OACAwe,IAAoB,cAAcxd,GAC9Bzn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAK4xB,QAAUA,EACf5xB,KAAKo91B,gBAAkBp91B,KAAKojnB,eAAeo5O,qBAC3Cx81B,KAAKwn1B,iBAAiBxn1B,KAAK8j2B,wBAC3B9j2B,KAAK+k2B,sBAETA,uBAC0Brn1B,SAAU1d,KAAK4xB,QAAQ86zB,iBAAmB,WAAa1s1B,KAAK4xB,QAAQ86zB,eACxE1s1B,KAAKgl2B,8BAAgChl2B,KAAKil2B,+BAEhEC,qBACI,OAAKll2B,KAAKml2B,kBACNnl2B,KAAKml2B,gBAAkBnl2B,KAAKwm1B,MAAMuB,UAAU,aAEzC/n1B,KAAKml2B,gBAEhBF,+BACI,IAAIG,EACJpl2B,KAAKkl2B,qBAAqBG,uBAAsB,GAChDrl2B,KAAK8tO,gBACL,QAAUs3nB,EAAsBpl2B,KAAKi5xB,qBAAkB,IAAWmsE,GAA+BA,EAAoBtkzB,UAEzHkkzB,8BACIhl2B,KAAKsl2B,oBACLtl2B,KAAKkl2B,qBAAqBG,uBAAsB,GAChDrl2B,KAAK+tO,gBAETu3nB,oBACI,IAAIv7wB,GAAa3uB,QAAE,SAASxtD,SAjCP,gCAiC4Ci9D,SAAS7qE,KAAKo91B,iBAC3EpQ,GAAsB3t0B,QAAO,GViblC,CACHzS,MAAO,GACPvJ,KA/biB,sBAgcjBg1tB,OAAQ,UACRU,WAAY,cUrb2D,CAC/DT,UAAWt4tB,KAAK4xB,QAAQ0msB,UACxBe,WAAYr5tB,KAAKul2B,YAAYt8yB,KAAKjpD,OACnCA,KAAK4xB,QAAQo7zB,qBAChB,YAAK/zD,cAAgBj5xB,KAAKojnB,eAAezqhB,iBAAiB5O,EAAYwgpB,GAAcyiH,GAC7EjjwB,EAEXw7wB,YAAYn51B,GACR,IAAIo51B,GAEAjz1B,MAAO260B,GACP,QAAUsY,EAAwBxl2B,KAAKwm1B,MAAMvwoB,sBAAmB,MAAmCuvpB,EAAwB,CAC3Hjz1B,MAAOvS,KAAKwm1B,MAAM/nb,aAEtBoub,IAAa7s1B,KAAK4xB,QAAQsowB,gBAAiB9txB,EAAK01U,KAAKz+U,KAAMrD,KAAKwm1B,MAAO0G,GAE3En/mB,gBACIt/K,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAM+9C,GAAa,OAAQ4+gB,IAAmBttlB,KAAK8oP,aAAa7/L,KAAKjpD,OAChGyuD,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAM+9C,GAAa,QAAS4+gB,IAAmBttlB,KAAKkpP,cAAcjgM,KAAKjpD,OAEtG8tO,gBACIr/K,SAAiBzuD,KAAKwm1B,MAAM71zB,KAAM28jB,IAEtCxkW,aAAa9yO,GACThW,KAAKyl2B,oBAAoBzv1B,EAAG,gBAEhCkzO,cAAclzO,GACVhW,KAAKyl2B,oBAAoBzv1B,EAAG,iBAEhCyv1B,oBAAoBzv1B,EAAG0v1B,GACnB1l2B,KAAKmye,qBAAqBn8d,GAC1B,IACI2v1B,EADQ/81B,MAAMC,KAAKmN,EAAEy7D,cAAci0xB,GAAYvpI,OAAS,IAExDwpI,EAAQlh2B,SACRuR,EAAEjL,iBACFiL,EAAEouE,kBACFpkF,KAAKi5xB,cAAc3luB,OAAO,QAASqyyB,GACnC3l2B,KAAKi5xB,cAAct1D,UAG3B1of,QACIj7O,KAAKil2B,+BAETnB,uBACI,MAAO,KACH9j2B,KAAKi7O,SAGb3nL,OAAOA,EAAQ1mD,GACX,OAAQ0mD,OACC,cACDtzD,KAAKyn1B,wBAAwB760B,GAC7B,UACC,iBACD5M,KAAK4xB,QAAQ86zB,eAAiB9/0B,EAC9B5M,KAAK+k2B,sBACL,UACC,sBACD/k2B,KAAKi5xB,cAAc3luB,OAAO1mD,OAK9C,UAAek41B,IC9Gf,IACIhspB,IAAapqI,GAAa,UADP,2BAEnBk3xB,IAAoBte,GACpBhB,OACAsf,IAAoB,cAActe,GAC9Bzn1B,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAKwn1B,iBAAiBxn1B,KAAKi7O,MAAMhyL,KAAKjpD,OACtCA,KAAK+tO,gBAETA,gBACIt/K,QAAgBzuD,KAAKwm1B,MAAM71zB,KAAMmoL,IAAY94M,KAAKq1S,cAAcpsP,KAAKjpD,OAEzE8tO,gBACIr/K,SAAiBzuD,KAAKwm1B,MAAM71zB,KAAMmoL,KAEtCu8F,cAAcr/R,GACNhW,KAAK271B,iBAAiB3l1B,EAAEhU,SACxBhC,KAAKg81B,iBAAiBhm1B,GAG9B2l1B,iBAAiBnunB,GACb,OAAOxtO,KAAKk51B,SAAS1rnB,GAEzB0rnB,SAAS1rnB,GACL,MAAO,QAAUA,EAActsO,QAAQ4kP,cAE3Ck2mB,iBAAiBhm1B,GACb,IAAI4y0B,EAAO5o1B,KAAKwm1B,MAAMx5kB,OAAOvnO,KAAKzvB,EAAEhU,QACpC,GAAI4m1B,EAAM,CACN,IAAIr20B,EAAQq20B,EAAKz+wB,OAAOnqE,KAAKwm1B,MAAMx5kB,QACnChtQ,KAAKwm1B,MAAMnktB,aAAa9vH,EAAQ,EAAG,QAEnCvS,KAAKwm1B,MAAMnktB,aAAa,EAAG,GAGnC44G,QACIj7O,KAAK8tO,mBAIjB,UAAe83nB,IC3CA,UACX/l2B,cACIG,KAAK6l2B,SAAW,GAEpB791B,IAAIgb,EAAMpW,GACN,IAAIk51B,EAAgBC,GAEhBC,UAAWA,EACX5nsB,OAAQA,GACRp7I,EACJ,QAAU+i1B,GAAyBD,EAAiB9l2B,KAAK6l2B,UAAUG,UAAe,QAA2DF,EAAeE,GAAa,IACzKhm2B,KAAK6l2B,SAASG,GAAW5nsB,GAAUxxJ,EAEvC5I,IAAIs2F,GACA,IAAI2rwB,EAAmBC,GAEnBF,UAAWA,EACX5nsB,OAAQA,GACR9jE,EAEJ,OADyB58E,SAAUso1B,GACkI,QAAUE,EAAyBlm2B,KAAK6l2B,SAASG,UAAe,IAAWE,OAAyB,EAASA,EAAuB9nsB,GAA9Q,QAAU6nsB,EAAoB551B,OAAO8M,OAAOnZ,KAAK6l2B,UAAUp10B,IAAG,UAAQ,IAAWw10B,OAAoB,EAASA,EAAkB7nsB,GAE/Jz0J,OAAOwnE,GACH,IACI60xB,UAAWA,EACX5nsB,OAAQA,GACRjtF,GACCnxE,KAAK6l2B,SAASG,YAGZhm2B,KAAK6l2B,SAASG,GAAW5nsB,MAC5BhvE,OAAcpvF,KAAK6l2B,SAASG,YACrBhm2B,KAAK6l2B,SAASG,KCjCjC,IAAIG,GAAU,GACd,GAAI7f,KAAO,CACP,IAAI4T,IAAQ5T,YAAa,eAEzB6f,GAAU,kBAAsBjM,IAC5Br61B,YAAYmtQ,EAAQlsQ,GAChBhB,MAAMktQ,EAAQlsQ,GACdd,KAAK24sB,cAAc34sB,KAAKom2B,YAAaD,IAAQv51B,MAAM9L,kBAEzCsL,GACV,IAAItL,EAAOhB,MAAMwM,SACjBxL,SAAK6B,aAAa,cAAc,GAChC7B,EAAKw51B,QAAQl8rB,OAAShyJ,EAAKgyJ,OAC3Bt9J,EAAKw51B,QAAQ+L,aAAej61B,EAAKQ,MACjC9L,EAAKw51B,QAAQzu1B,GAAKO,EAAKP,GAChB/K,eAEEA,GACT,MAAO,CACHs9J,OAAQt9J,EAAKw51B,QAAQl8rB,OACrBvyJ,GAAI/K,EAAKw51B,QAAQzu1B,GACjBe,MAAO9L,EAAKw51B,QAAQ+L,cAG5B1tJ,cAAc73sB,EAAMsL,GAChB,IAAI0iD,EAAWq3yB,IAAQG,kBAAkBti2B,IAAI,CACzCgi2B,UAAW551B,EAAKm61B,qBAChBnosB,OAAQhyJ,EAAKgyJ,SAEbtvG,EACAA,EAASmD,OAAO,CACZt7B,MAAOvqB,EACP8nB,UAAWpzB,IAGfd,KAAKwm2B,kBAAkB1l2B,EAAMsL,GAGrCo61B,kBAAkB1l2B,EAAMsL,GACpB,IAAIq61B,GAAUrryB,QAAE,UAAU3kD,KAAKrK,EAAKgyJ,WACpChjG,MAAEt6D,GAAM8oF,OAAO68wB,GAAS78wB,OAAOx9E,EAAKQ,0BAErBR,EAAM0iD,GACrB9uD,KAAKsm2B,kBAAkBt+1B,IAAIoE,EAAM0iD,yBAEf1iD,GAClBpM,KAAKsm2B,kBAAkB381B,OAAOyC,KAGtC+51B,GAAQvf,SAAW,UACnBuf,GAAQjl2B,QAAU,OAClBil2B,GAAQ7wxB,UAhDY,aAiDpB6wxB,GAAQG,kBAAoB,IAAII,IAEpC,SAAeP,GCvCf,IAAIQ,IAAgBrf,GACpB,GAAIhB,KAAO,CACP,IAEIsgB,GAAO,CACPC,SAAU,UACVC,WAAY,YACZC,WAAY,YACZC,YAAa,aACbC,MAAO,QACPC,OAAQ,SACRC,MAAO,QACPC,QAAS,SACTC,UAAW,WACXC,IAAK,MACLC,KAAM,QAENC,IAAkB,CAACZ,GAAKG,WAAYH,GAAKI,YAAaJ,GAAKQ,QAASR,GAAKS,UAAWT,GAAKU,IAAKV,GAAKW,MACnGE,IAAuB,CAAC,IAAK,MAEjCnhB,cAAe,CACX,kBAAmB6f,KACpB,GACHQ,IAAgB,cAAchM,IAC1BpmwB,qBACI,IAAIuhnB,EAAah2sB,MAAMy0F,qBACvB,OAAOl1E,QAAOy2rB,EAAY,CACtBlxlB,aAAc,OACd44C,UAAW,OACX/3C,YAAa,OACb32D,SAAU,KACVmmD,WAAY,KACZqkD,cAAe,IACf+E,gBAAiB,IAGzBx+J,YAAY2m1B,EAAO50zB,GACf9xB,MAAM0m1B,EAAO50zB,GACb5xB,KAAK0n2B,UAAY,GACjB910B,EAAQ+10B,SAAS3h2B,QAAQ4W,IACrB,IAAIwhJ,EAASxhJ,EAAKwhJ,OACbA,IACDxhJ,EAAKwhJ,OAASA,EAvCT,KAyCT,IAAItvG,EAAWlyC,EAAKkyC,SACpB,GAAIA,EAAU,CACV,IAAI84yB,EAAmB5n2B,KAAKojnB,eAAeh+gB,aAAat2C,GACxD84yB,GAAoBzB,eAAoB,CACpC/nsB,OAAQA,EACR4nsB,UAAWhm2B,KAAKojnB,eAAeykP,kCAChCD,GAEP5n2B,KAAK0n2B,UAAUtpsB,IAAU/+I,QAAO,GAAIrf,KAAKu0F,qBAAsB33E,KAEnE5c,KAAK8n2B,0BACL9n2B,KAAKwn1B,iBAAiBxn1B,KAAKi7O,MAAMhyL,KAAKjpD,OACtCA,KAAKwm1B,MAAM58xB,GAAG,cAAe5pD,KAAK+n2B,aAAa9+yB,KAAKjpD,OAExD8n2B,0BACI9n2B,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAKy01B,GAAKC,UACX7m2B,KAAKgo2B,YAAY/+yB,KAAKjpD,KAAM,SAC/BA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAKy01B,GAAKE,YACX9m2B,KAAKgo2B,YAAY/+yB,KAAKjpD,KAAM,SAC/BA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAK,CAACy01B,GAAKK,MAAOL,GAAKO,QACxBnn2B,KAAKio2B,mBAAmBh/yB,KAAKjpD,OAChC,IAAIko2B,EAAgBlo2B,KAAKwm1B,MAAMj2wB,SAAS43xB,SAASvB,GAAKK,OACtDiB,EAAc1m0B,QAAQ0m0B,EAAc711B,OACpCrS,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAKy01B,GAAKM,QACXln2B,KAAK4sqB,kBAAkB3jnB,KAAKjpD,OAC/BA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAK,CAACy01B,GAAKG,WAAYH,GAAKI,aAC5Bz11B,UAAU,GACXvR,KAAKoo2B,kBAAkBn/yB,KAAKjpD,OAC/BA,KAAKwm1B,MAAMj2wB,SAASimxB,WAAW,CAC3Brk1B,IAAKq11B,KACNxn2B,KAAKoo2B,kBAAkBn/yB,KAAKjpD,OAEnCgo2B,YAAYp+xB,GACR,IAAI4yC,EAAax8G,KAAK44P,MAAM79I,gBAC5B,GAAI/6G,KAAKqo2B,mBAAqB7rvB,EAAWtF,YAAa,CAClD,IACIoxvB,EAAsB,SAAW1+xB,EAAY,QAAU,OACvDiyM,KAFezgN,MAAEp7D,KAAK44P,MAAMtlM,OAAO,mBAEVsW,KAC7BiyM,EAAYA,EAAUp3Q,OAASo3Q,EAAY77Q,KAAKuo2B,iBAAiBD,KACjEto2B,KAAK44P,MAAMtlM,OAAO,iBAAkBimB,GAAiBsiM,IACrD77Q,KAAK44P,MAAM+iB,aAAaE,GAE5B,OAAQ77Q,KAAKqo2B,iBAEjBD,oBACI,OAAQpo2B,KAAKqo2B,iBAEjBx/kB,cAAcj8Q,EAAOwgD,EAAOlhD,GACxB,OAAIU,EAAQV,EACDkhD,EAEPxgD,EAAQwgD,EACDlhD,EAEJU,EAEXq71B,qBACI,OAAIjo2B,KAAKqo2B,mBACLro2B,KAAK44P,MAAMtlM,OAAO,SAAS7uD,OAASzE,KAAK44P,MAAMxwI,WAAWpoH,KAAK44P,MAAMtlM,OAAO,mBAAqBtzD,KAAKmxO,OAAO38F,SAEzGx0I,KAAKqo2B,iBAEjBz7L,oBACI,OAAI5sqB,KAAKqo2B,kBACLro2B,KAAKmxO,OAAO38F,QAERx0I,KAAKqo2B,iBAEjB7O,WAAWzvwB,EAAYn4D,GACnB5xB,KAAKwo2B,eAAexo2B,KAAK4xB,SACzB9xB,MAAM051B,WAAWzvwB,EAAYn4D,GAEjC420B,eAAexl1B,GACX,IACIyiG,YAAaA,EACb+3C,UAAWA,GACXx6I,EACJhjB,KAAK+lR,gBAAep1L,OAAc80B,GAClCzlH,KAAKyo2B,aAAY93wB,OAAc6sE,GAEnCo8rB,eAAeho0B,GACX,IAAIkkrB,EAAah2sB,MAAM851B,eAAeho0B,GACtC,OAAOvS,QAAOy2rB,EAAY,CACtBlxlB,aAAc5kH,KAAK4xB,QAAQgzF,aAC3Bjc,eAAgB,KACR3oG,KAAK0o2B,aACL1o2B,KAAKmxO,OAAO9iI,UACZruG,KAAK2o2B,qBACL3o2B,KAAK0o2B,YAAa,MAKlC5O,qBACI,IAAI8O,EAAe5o2B,KAAK6o2B,qBAAqBzqsB,OAAO35J,OAChDsjP,EAAa6gnB,EAAe5o2B,KAAK40G,aAAanwG,OAC9C+uP,EAAgBxzP,KAAK++U,cACrB75M,EAAellI,KAAK44P,MAAMtlM,OAAO,gBACjC1mD,EAAQ,CACRA,MAAO5M,KAAK+lR,aAAa7gJ,GACzBr5H,GAAI7L,KAAKyo2B,UAAUvjuB,GACnBk5B,OAAQp+J,KAAK6o2B,qBAAqBzqsB,OAClCmosB,qBAAsBvm2B,KAAKojnB,eAAeykP,kCAE1CiB,EAAQxiB,YAAa,SACrBzgzB,EAAatrB,KAAKC,IAAI,EAAGg5O,EAAgBo1mB,GACzCG,GAAY,IAAID,GAAOE,OAAOnj0B,GAAYl8B,OAAOo+O,GAAY30N,OAAO,CACpE610B,QAASr81B,IACVwmB,OAAO,KACVpzB,KAAKwm1B,MAAM0iB,eAAeH,GAC1B/o2B,KAAKwm1B,MAAMnktB,aAAax8F,EAAa,GAEzCsj0B,wBAAwBC,GACpB,IAAIC,EAAgBD,EAAIA,EAAI3k2B,OAAS,GAErC,GAD4B,WAAY4k2B,EAEpC,OAAOA,EAEX,IAAIC,EAAwB,WAAYD,EACxC,GAAIC,GAAyBF,EAAI3k2B,QAAU,EAAG,CAC1C,IAAI8k2B,EAAkBH,EAAIA,EAAI3k2B,OAAS,GAGvC,GAD2B6k2B,GADG,WAAYC,EAGtC,OAAOA,EAGf,OAAO,KAEXxB,aAAagB,EAAUS,EAAU3s1B,GAC7B,GAjLU,SAiLNA,EAEA,GAAI7c,KAAKqo2B,kBAAoBro2B,KAAKyp2B,gBAC9Bzp2B,KAAK0p2B,oBAFWX,EAASK,IAAIL,EAASK,IAAI3k2B,OAAS,KAERzE,KAAK2p2B,YAAY3p2B,KAAK40G,kBAC9D,CACH,IACIw0vB,IAAKA,GACLL,EACAa,EAAsB5p2B,KAAKmp2B,wBAAwBC,GACnDQ,GACA5p2B,KAAK6p2B,oBAAoBD,EAAqBR,IAK1DK,sBACA,IAAIhzmB,EACJ,OAAO,QAAUA,EAAez2P,KAAKmxO,cAAW,WAA0B,EAASslB,EAAanjM,OAAO,WAE3Go2yB,oBAAoB31wB,GAEhB,GADwB,WAAYA,EAEhC/zF,KAAK40G,cAAgB7gB,EAAU3gE,WAC5B,KAAKpzB,KAAK40G,aAAanwG,QAAUsvF,EAAUpqF,OAAS,EACvD,YAAKwnO,OAAO38F,QACL,EAEPx0I,KAAK40G,aAAe50G,KAAK40G,aAAattG,MAAM,GAAG,GAEnD,OAAO,EAEXui2B,oBAAoBvvwB,EAAO8uwB,GACvB,IACIh20B,OAAQA,GACRknE,EACAs5I,EAAQ5zO,KAAKwm1B,MAAMvwoB,eACvB,GAAK7iL,IAAWmpD,SAASnpD,IAAYwgN,IAAS5zO,KAAK8p2B,oBAAoBV,EAAI,GAAGJ,UAG9Ehp2B,KAAK6o2B,qBAAuB7o2B,KAAK0n2B,UAAUt00B,GACvCpzB,KAAK6o2B,sBAAsB,CAC3B7o2B,KAAKkxV,YAAYlxV,KAAK6o2B,sBACtB,IAAIkB,EAAcn2nB,EAAMrhO,OAAS,OAASvS,KAAKgq2B,gBAAgBp2nB,EAAMrhO,MAAQ,GAC7EvS,KAAKg61B,aAAapmnB,EAAMrhO,MAAQw31B,GAChC/p2B,KAAKmxO,OAAO79K,OAAO,WAAYtzD,KAAKq3vB,gBACpCr3vB,KAAK40G,aAAe,GACpB50G,KAAKmxO,OAAO18F,QAGpBq1tB,oBAAoBd,GAChB,SAAKA,IAAU,QAA4Bx21B,QAAQxS,KAAKgq2B,gBAAgBhB,EAAS,KAKrFgB,gBAAgBz31B,GACZ,OAAOvS,KAAKwm1B,MAAMyjB,YAAY131B,EAAO,GAAG621B,IAAI,GAAGh20B,OAEnD89T,YAAY//Q,GACR,IACIqrC,WAAYA,EACZiJ,YAAaA,EACb+3C,UAAWA,EACX54C,aAAcA,EACd3P,WAAYA,GACZ9jC,EACJnxE,KAAKwo2B,eAAe,CAChB/ivB,YAAaA,EACb+3C,UAAWA,IAEfx9J,KAAK44P,MAAM8qB,cACX1jR,KAAK44P,MAAMtlM,OAAO,CACdkpD,WAAYA,EACZiJ,YAAaA,EACbb,aAAcA,EACd3P,WAAYA,IAGpB00vB,YAAY90vB,GACR,GAAK70G,KAAK6rR,2BAA2Bh3K,GAArC,CAIA,IAAIykD,EAAgBt5J,KAAK6o2B,qBAAqBvvsB,cAC1CA,GACA/6F,aAAav+D,KAAK4sR,cAClB5sR,KAAK4sR,aAAe7sO,WAAW,KAC3B//C,KAAKkq2B,QAAQr1vB,IACdykD,IAEHt5J,KAAKkq2B,QAAQr1vB,QAVb70G,KAAKmq2B,eAabt+kB,2BAA2Bh3K,GACvB,OAAOA,EAAYpwG,QAAUzE,KAAK6o2B,qBAAqBxqsB,gBAE3D8rsB,eACI5ryB,aAAav+D,KAAK4sR,cAClB5sR,KAAKkq2B,QAAQ,MAEjBA,QAAQr1vB,GACJ70G,KAAK0o2B,YAAa,EAClB1o2B,KAAK44P,MAAMtlM,OAAO,cAAeuhD,GAErC8zvB,qBACI,GAAK3o2B,KAAK44P,MAGV,KAAIyhU,EAAar6jB,KAAKuo2B,iBAAiB34zB,QACvC5vC,KAAK44P,MAAMtlM,OAAO,iBAAkBimB,GAAiB8gf,IACrDr6jB,KAAK44P,MAAM+iB,aAAa0+S,IAExBg9L,qBACA,IAAIr9tB,EAAWh6B,KAAK++U,eAEhBzjR,KAAM8uyB,EACN7uyB,IAAK8uyB,EACLvqyB,OAAQwqyB,GACRtq2B,KAAKwm1B,MAAMvrlB,UAAUjhO,GAAWA,EAAW,IAE3CshC,KAAMivyB,EACNhvyB,IAAK+lkB,IACLlmkB,QAAEp7D,KAAKwm1B,MAAM71zB,MAAMw5C,SAKvB,MAAO,CACH/tD,GALgBqyC,WAAmB,gBAAiB,CACpDod,MAAO0+xB,EAAaH,EACpBt+xB,MAAOw1jB,EAAY+oO,IAInBlgyB,OAAQ,CACJtiD,EAAGyi1B,GAEPj/xB,GAAI,WACJ56C,GAAI,WACJ86C,UAAW,CACP/P,EAAG,OACH5qC,EAAG,YAIf6o0B,kBACI,OAAOp60B,QAAOvf,MAAM251B,kBAAmB,CACnCjrsB,oBAAoB,EACpBU,QAAS,KACLlvJ,KAAKqo2B,kBAAmB,EACxBro2B,KAAK0o2B,YAAa,EAClB1o2B,KAAK2o2B,sBAET/5sB,SAAU,KACN5uJ,KAAK44P,MAAM8qB,cACX1jR,KAAK44P,MAAMtlM,OAAO,iBAAkB,MACpCtzD,KAAKqo2B,kBAAmB,EACxBro2B,KAAKkq2B,QAAQ,OAEjBrhwB,mBAAmB,IAGvB0/vB,uBACA,OAAOvo2B,KAAK44P,MAAM/vI,eAAe/hG,OAAO,SAASjF,OA9T9B,oBA8T2D,MAElFo5N,QACI5uO,OAAO0M,KAAK/Y,KAAK0n2B,WAAW1h2B,QAAQo4J,IAC5Bp+J,KAAK0n2B,UAAUtpsB,GAAQtvG,UACvBq3yB,kBAAuB,CACnB/nsB,OAAQA,EACR4nsB,UAAWhm2B,KAAKojnB,eAAeykP,uCAOvD,UAAelB,IC/Vf,SACI9m2B,cACI,IAAI2q2B,GAAiBC,YAGrB,KAAIjkB,EAAQxm1B,KAAK0w1B,WACbga,EAAiBlkB,EAAMt9F,OAAO,+BAClCs9F,EAAMmkB,SAAS,CACX,gBAAiBtjB,IACjB,oBAAqBqjB,EACrB,eAAgBxjB,IAChB,eAAgBE,IAChB,wBAAyBrggB,IACzB,eAAgB+/f,IAChB,kBAAmBxhS,IACnB,oBAAqBslT,IACrB,oBAAqBC,IACrB,mBAAoBC,IACpB,wBAAyBC,IACzB,2BAA4BC,IAC5B,sBAAuBC,IACvB,sBAAuBC,IACvB,mBAAoBC,IACpB,eAAgB9kB,MACjB,GACHrm1B,KAAKor2B,eAAiB,GACtBZ,GAAiB90wB,cAAe,GAEpCk4d,aAAa15hB,EAAWnQ,GAEpB,OAAO,IADK/jB,KAAK0w1B,WACV,CAAUx8zB,EAAWnQ,GAEhCsn1B,gBAAgBC,GACZ,IAAIC,EAAW/qvB,OAAO,aAClBgmuB,EAAQxm1B,KAAK0w1B,WAEjB,QAAS8a,KAAcF,EACfC,EAAS7l1B,KAAK8l1B,KAFmBhlB,EAAMrx0B,QAEUq21B,IACjDxr2B,KAAKor2B,eAAe/h2B,KAAKmi2B,EAAWlk2B,MAAM,IAGlDk/0B,EAAMmkB,SAASW,GAAe,GAElCG,2BACI,OAAOzr2B,KAAKor2B,eAEhB1a,WACI,OAAOA,OAGf,UAAe8Z,GCzDf,IAAIlvV,IAAa,IAXjB,UACIz7gB,cACIG,KAAK0r2B,YAAc,GAEvBC,aAAato2B,EAAM6ld,GACflpd,KAAK0r2B,YAAYro2B,GAAQ6ld,EAE7B0iZ,aAAavo2B,GACT,OAAOrD,KAAK0r2B,YAAYro2B,KAIhC,SAAei4gB,ICZf,aAAqB34c,GAEjB,OADaA,EAAQ,GACPrjC,MAAM,SAAW,UAAY,SCsB/Cus0B,gBAAiC,QAvBjC,UACIC,iBAAiBC,GACb/r2B,KAAK+r2B,cAAgBA,EAEzBC,SACI,GAAKhs2B,KAAK+r2B,cAGV,OAAO/r2B,KAAKis2B,gBAAkB,GAAKjs2B,KAAK+r2B,cAAcG,gBAAgB,EAAGls2B,KAAK+r2B,cAActtc,YAAc,GAE9Gwtc,gBACI,IAAI/nxB,EAAQlkF,KAAK+r2B,cAAc9B,cAC/B,OAAO,IAAM/lxB,EAAMz/E,UAAYzE,KAAKms2B,cAAcjoxB,GAEtDioxB,cAAcjoxB,GACV,OAAOA,EAAM3wD,OAAO,CAAC2xM,EAAIliN,KACrB,IACIoQ,OAAQA,GACRpQ,EACJ,OAAO,IAAOoQ,EAAO5gB,QAAQ,WCAzC,IAAI451B,IAAe,gBC2BnB,IAKIC,GAAsB,WACtBh5G,GAA0B,cAC1B17iB,IAAQ,WAAU30I,UAAkBvB,SACpC6qyB,IAAe,EACfC,IAAa/1nB,WAAe,CAC5BjiJ,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B0vC,mBAAmB,EACnB27D,UAAW,OACX8B,YAAa,GACbrW,QAAS,KACTu8sB,UAAW,KACXC,cAAe,KACfC,cAAe,KACf/E,SAAU,KACVgF,iBAAkB,KAClBC,iBAAkB,KAClBC,oBAAoB,EACpBC,kBAAmB,KACnBC,YAAa,KACb3ttB,aAAar7H,UAAS25N,mBAAqB,cAGnD5nJ,MAAO,WACH91F,KAAKgt2B,6BAA+BV,MACpCts2B,KAAKm5D,WACLn5D,KAAKit2B,kBAAiBztyB,QACtBx/D,KAAKkt2B,+BAA8B1tyB,SAEvCwlC,0BAA2B,WACvB,OAAOqupB,IAEXpupB,eAAgB,WACZjlG,KAAK+jG,iBAAiB5K,oBAAoB,EACrCk6pB,IAA0B,IAAI7mqB,KAEnCxsF,KAAKm5D,YAETmiC,aAAc,WACV,OAAOt7F,KAAKilhB,eAEhBA,YAAa,WACT,OAAOjlhB,KAAKm7D,WAAW11B,KAAK,IAAI5jB,OA3CR,2BA6C5BgqF,gBAAiB,SAAS7oF,GACtB,IACI+6D,cAAeA,GACf/6D,EACAhjB,KAAK8kd,sBAAsB/mY,KAG/B/9E,KAAKisG,mBAAkB,EAAMjsG,KAAKm7D,YAClCn7D,KAAKm5D,SAASz9B,MAAM17B,KAAMD,aAE9BgsG,iBAAkB,SAASzR,GACvB,IACIvc,cAAeA,GACfuc,EACAt6F,KAAK8kd,sBAAsB/mY,KAG/B/9E,KAAKisG,mBAAkB,EAAOjsG,KAAKm7D,YACnCn7D,KAAKm5D,SAASz9B,MAAM17B,KAAMD,aAE9B+kd,sBAAuB,SAAS/mY,GAC5B,OAAO3iB,QAAE2iB,GAAepoB,SApEJ,iBAsExB4sC,YAAa,WACTviG,KAAKmt2B,iBAAkB/xyB,QAAE,SAASxtD,SAxEd,sBAyEpB5N,KAAKm7D,WAAWiU,KAAK,OAAQ,eAAexhE,SA1E5B,iBA0EwDgkI,UAAU5xI,KAAKmt2B,iBACvFnt2B,KAAKg4O,qBACL,IAAIlpL,EAAW9uD,KAAKolG,aAAaiupB,IACjCrzvB,KAAKot2B,iBAAmBt+yB,GAAYA,EAASmD,OAAO,CAChD/9B,UAAWqlD,GAAiBv5E,KAAKmt2B,iBACjC/1oB,SAAS,EACT1tI,YAAY,IAEhB1pF,KAAKixP,uBACLjxP,KAAKm5D,WACLn5D,KAAKqt2B,0BAETh2nB,yBAEQ,IADWr3O,KAAKilhB,cACDxghB,QACfzE,KAAKm5D,YAGb83L,qBAAsB,WAClBjxP,KAAKoyP,iBAAkBh3L,QAAE,cAAcxtD,SA1FR,gCA0FmDwhE,KAAK,UAAU,GAAMvE,SAAS7qE,KAAKm7D,YACrHn7D,KAAK6xP,gBAAgB7xP,KAAKszD,OAAO,WAErCu+L,gBAAiB,SAASjlP,GACtB5M,KAAKi5O,oBAAoBx9M,IAAI7uB,IAEjCqsO,kBAAmB,WACf,OAAOj5O,KAAKoyP,iBAEhBk7mB,qBAAsB,WAClB,SAAOlyyB,MAAE,YAAYW,IAAI,UAAW,QAAQqT,KAAK,CAC7Cm+xB,OAAQ,GACR1h2B,GAAI,YACJ2h2B,QAAS,uBAGjBC,yBAA0B,SAAS7g2B,GAC/B,IAAI2y1B,EAASv/1B,KAAKst2B,uBAAuBziyB,SAAS,QAI9C6iyB,EAHQnO,EAAOv71B,IAAI,GACC4uV,cACQtxV,SACMY,KACtCwr2B,EAAkBpnvB,UAAY15G,EAC9B,IAAI+g2B,EAAuBnm2B,IACvB,GAAIA,EAAQs7F,WACR,QAASt+F,EAAI,EAAGA,EAAIgD,EAAQs7F,WAAWr+F,OAAQD,IAAK,CAChD,IAAInB,EAAOmE,EAAQs7F,WAAWt+F,GAAGnB,KAC7BA,EAAKuP,WAAW,OAChBpL,EAAQkG,gBAAgBrK,GAIpC,GAAImE,EAAQ6tD,WACR,QAASszE,EAAK,EAAGA,EAAKnhI,EAAQ6tD,WAAW5wD,OAAQkkI,IAC7CgluB,EAAqBnm2B,EAAQ6tD,WAAWszE,KAIpDgluB,EAAqBD,GACrBA,EAAkBnp2B,iBAAiB,UAAUyB,QAAQ4n2B,IACjDA,EAAW/s2B,WAEf,IAAIgt2B,EAAgBH,EAAkBpnvB,UACtCi5uB,SAAO1+1B,SACAgt2B,GAEXR,uBAAwB,WACpB,IAAI1siB,EAAS3gU,KAAKszD,OAAO,SAKzB,GAJItzD,KAAK8t2B,qBACL9t2B,KAAK+t2B,4BACLptiB,EAAS3gU,KAAKgu2B,mBAAmBhC,OAAOrriB,IAExCA,EAAQ,CACR,IAAIstiB,EAAkBju2B,KAAKyt2B,yBAAyB9siB,GACpD3gU,KAAKmt2B,gBAAgBpxxB,KAAKkyxB,KAGlCF,0BAA2B,WACvB,IAAIG,EAAoBrC,gBAAiC,YACzD,IAAIqC,EAGA,MAAMh0wB,SAAa,QAAS,YAF5Bl6F,KAAKgu2B,mBAAqB,IAAIE,GAKtC91wB,QAAS,WACLp4F,KAAKmu2B,qBACLnu2B,KAAKm5D,YAETi1yB,yBAA0B,WACjBpu2B,KAAKqu2B,oBACNru2B,KAAKqu2B,kBAAoB,IAAI7D,MAGrC8D,gBAAiB,WACb,YAAKF,2BACEpu2B,KAAKqu2B,mBAEhBF,mBAAoB,WAChB,IAAKnu2B,KAAKuu2B,gBAAiB,CACvB,IAAIC,EAAiB3C,gBAAiC,SAClD2C,IACAxu2B,KAAKuu2B,gBAAkB,IAAIC,GAG/Bxu2B,KAAKszD,OAAO,eAAiB+4yB,KAAwBrs2B,KAAKgu2B,oBAC1Dhu2B,KAAK+t2B,6BAGbtjwB,mBAAoB,WAChBzqG,KAAKyu2B,yBAA2B,IAAIj7xB,MACpC,IAAI25C,EAAuBntH,KAAKyu2B,yBAAyB30zB,UACzD,YAAKqf,WACLn5D,KAAK0u2B,oBACL1u2B,KAAK2u2B,oBACL3u2B,KAAK4u2B,sBACEzhvB,GAEXtoC,oBAAqB,SAAS7uE,GACtB2hM,KACA3hM,EAAEouE,mBAGV8mB,mBAAoB,YAChBV,SAAYxqG,KAAKm5D,SAASlQ,KAAKjpD,QAEnC4u2B,oBAAqB,WACjB,IAAI5pnB,EAAet2K,GAAa,UAAW,GAAG7sD,OAAO7hB,KAAKo1F,KAAM,eAChE3mC,QAAgBzuD,KAAKmt2B,gBAAiBnonB,EAAchlP,KAAKykP,gBAAgBx7L,KAAKjpD,QAElFykP,gBAAiB,SAASzuO,GACtBhW,KAAKy3O,sBAAsBzhO,IAE/B041B,kBAAmB,WACf,IAAI/B,EAAmB3s2B,KAAKszD,OAAO,oBAC/Bg4yB,EAAgBtr2B,KAAK6u2B,qBACrBr21B,SAAWm01B,IACXA,EAAiBrB,GAErBtr2B,KAAK8u2B,eAAiB9u2B,KAAKsu2B,kBAAkB1gT,aAAa5tjB,KAAKmt2B,gBAAgB,GAAI,CAC/E7msB,YAAatmK,KAAKszD,OAAO,eACzBk7B,SAAUxuF,KAAKszD,OAAO,aAAetzD,KAAKszD,OAAO,YACjD6gd,QAASm3V,EACTt8tB,MAAO,UAEXhvI,KAAKq3O,yBACLr3O,KAAKuu2B,gBAAgBzC,iBAAiB9r2B,KAAK8u2B,gBAC3C9u2B,KAAK+u2B,8BAAgC/u2B,KAAKgv2B,mBAAmB/lzB,KAAKjpD,MAClEA,KAAK8u2B,eAAellzB,GAAG,cAAe5pD,KAAK+u2B,+BAC3C/u2B,KAAKiv2B,uBACDjv2B,KAAKkv2B,yBACLlv2B,KAAKmv2B,oBAAqBr2vB,SAAa,KACnC94G,KAAKov2B,6BAGTpv2B,KAAKqv2B,6BAGbJ,qBAAsB,WAClB,IAAIjqV,EAAmBhlhB,KAAKilhB,cACxBqqV,EAAiBjlD,IAAkBrlS,GACvCv2d,QAAgBu2d,EAAkBt2c,GAAasqI,QAAmBh5M,KAAKo1F,MAAOk6wB,EAAgBhjzB,OAC9FmC,QAAgBu2d,EAAkBt2c,GAAa7H,QAAoB7mE,KAAKo1F,MAAOp1F,KAAK6kF,oBAAoB57B,KAAKjpD,QAEjHov2B,yBAA0B,WACtB,IAAIG,EAAcvv2B,KAAKszD,OAAO,SAC9B,OAAK51C,OAAU6x1B,GAAc,CACzB,IAAIxzxB,EAAO/7E,KAAKuu2B,gBAAgBvC,SAC5BjD,EAAW/o2B,KAAK8u2B,eAAe3yxB,UAAUshV,QAAQ,CACjD1hV,KAAMA,IAEV,GAAIgtxB,EAASK,IAAI3k2B,OAEb,YADAzE,KAAK8u2B,eAAeU,YAAYzG,GAIxC/o2B,KAAKqv2B,6BAETH,uBAAwB,WACpB,OAAOlv2B,KAAKot2B,kBAAoBpt2B,KAAKot2B,iBAAiB3o2B,QAE1Doq2B,kBAAmB,WACf,IACIY,EH5RKjpB,KACb,IAAIsiB,EAAQtiB,EAAMt9F,OAAO,SACzB,MAAO,CAACpovB,EAAMojF,KACV,IAAIklxB,EAAMllxB,EAAMklxB,IAAI9h2B,QAChBoo2B,EAAkBtG,EAAI,GAC1BsG,EAAgBt80B,OAASs80B,EAAgBt80B,OAAOxoB,QAAQ,OAAQ,IAChE,IAAI+k2B,EAAuBD,EAAgBt80B,OAAOkM,MAAM,aACpDu7H,EAAS80sB,GArBrB,aAAmB7u2B,GACf,IAAIyH,EAAQzH,EAAKyB,aAAa,SAC9B,GAAIgG,EAAO,CACP,IAAIqpG,EAAQrpG,EAAMqC,QAAQ,OAAQ,IAAI00B,MAAM,cAC5C,OAAOsyE,EAAQA,EAAM,GAAK,EAAI,EAE9B,OAAO,EAe8Bg+vB,CAAU9u2B,GAC/C,OAAK6u2B,IAAwB,IAAU90sB,GAGvC60sB,EAAgBt80B,OAASs80B,EAAgBt80B,OAAOpgB,UAAU281B,EAAqB,GAAGlr2B,OAAQir2B,EAAgBt80B,OAAO3uB,QAfzH,aAA2Bor2B,GACvB,IAAIC,EAAmBD,EAAWA,EAAWpr2B,OAAS,GACtDqr2B,EAAiB180B,OAAS080B,EAAiB180B,OAAO6oD,OAc9C8zxB,CAAkB3G,GAClBA,EAAI//1B,KAAK,CACL+pB,OAAQ,KACR0vE,WAAY,CACRp2E,KAAMsj1B,IAAYL,GAClB90sB,OAAQA,KAGT,IAAIiusB,EAAMM,IAXNllxB,IGmRW+rxB,CADVjw2B,KAAKsu2B,kBAAkB5d,YA8BnC,OA5BoBrx0B,QAAO,GAAI,CAC3Bysb,OAAO,EACP77S,QAASjwJ,KAAKkw2B,yBAAyB,WACvC1D,UAAWxs2B,KAAKkw2B,yBAAyB,aACzCpwT,SAAU9/iB,KAAKkw2B,yBAAyB,iBACxCxD,cAAe1s2B,KAAKkw2B,yBAAyB,iBAC7CtD,iBAAkB5s2B,KAAKkw2B,yBAAyB,oBAChDnD,YAAa/s2B,KAAKkw2B,yBAAyB,eAC3CC,YAAanw2B,KAAKow2B,uBAClBzI,SAAU3n2B,KAAKkw2B,yBAAyB,YACxCG,SAAU,CACNnoX,OAAQlye,GAAKhW,KAAKy3O,sBAAsB1oH,GAAQ/4G,IAChDs61B,UAAW,iBAEf//xB,SAAU,CACNggyB,UAAWv61B,GAAKhW,KAAKy3O,sBAAsB1oH,GAAQ/4G,KAEvDmmE,UAAW,CACPkqF,QAASrwJ,GAAKhW,KAAKy3O,sBAAsB1oH,GAAQ/4G,IACjDgwJ,MAAOhwJ,GAAKhW,KAAKy3O,sBAAsB1oH,GAAQ/4G,IAC/Cw61B,SAAU,CACN,CAAC,8BAA+Bf,GAChC,CAAC,+BAAgCA,GACjC,CAAC,6BAA8BA,KAGvC5/rB,UAAW/hE,QAAQ9tG,KAAKszD,OAAO,wBAChCtzD,KAAKyw2B,sBAGZP,yBAA0B,SAASQ,GAC/B,IAAInpuB,EAAcvnI,KAAKszD,OAAOo9yB,GAC1B3s1B,EAAS,GACb,MAAKrG,OAAU6pH,GAGf,OAAI3+H,MAAM8B,QAAQ68H,GACdxjH,EAAO2s1B,GAAkBnpuB,EAEzBxjH,EAASwjH,GAENloH,QAAOrf,KAAKow2B,uBAAwBrs1B,IAE/Cqs1B,qBAAsB,WAClB,MAAO,CACHhtP,eAAgBpjnB,OAGxByw2B,kBAAmB,WACf,IAAIt8V,EAAU,GAEdG,OADkBt0gB,KAAKsu2B,kBAAkB7C,2BAC7Bzl2B,QAAQwl2B,IAChBr3V,EAAQq3V,GAAcxr2B,KAAKow2B,yBAExBj8V,GAEX66V,mBAAoB,SAASjG,EAAUS,EAAU3s1B,GAC7C,IAAI8z1B,EAAa3w2B,KAAKuu2B,gBAAgBvC,SAClC4E,EAAiB5w2B,KAAK8t2B,mBAAqB9t2B,KAAK6w2B,mBAAmBxE,GAAqBsE,GAAcA,EACtG950B,EAAe72B,KAAKszD,OAAO,SAC3Bz8B,IAAiB+50B,IAAmB5w2B,KAAK8w2B,sBAAsBj60B,EAAc+50B,KAC7E5w2B,KAAK+w2B,mBAAoB,EACzB/w2B,KAAKszD,OAAO,QAASs9yB,IAEzB5w2B,KAAKqv2B,6BAETyB,sBAAuB,SAASj60B,EAAc+50B,GAC1C,OAAO,UAAyB,KAAOA,GAE3CvB,0BAA2B,WACnBrv2B,KAAKyu2B,2BACLzu2B,KAAKgx2B,eACLhx2B,KAAKkt2B,4BAA4BhtyB,OACjClgE,KAAKyu2B,yBAAyB560B,UAC9B7zB,KAAKyu2B,8BAA2B,IAGxCoC,mBAAoB,SAASrssB,EAAW53J,GACpC,IAAIs8c,EAAYlpd,KAAKgu2B,mBACrB,MAAKtw1B,OAAUwrc,GAGf,KAAIryb,GAAeqwE,SAAct6F,EAAO5M,KAAKszD,OAAO,UACpD,OAAOkxG,IAAc6nsB,GAAsBnjZ,EAAU+nZ,WAAWp60B,GAAgBqyb,EAAU8iZ,OAAOn10B,KAErGi30B,iBAAkB,WACd,OAAO9t2B,KAAKszD,OAAO,eAAiB+4yB,IAExC6E,mBAAoB,WAChB,GAAIlx2B,KAAK8u2B,eAAgB,CACrB,IAAIl4jB,IAAc52S,KAAKszD,OAAO,aAAetzD,KAAKszD,OAAO,aACzDtzD,KAAK8u2B,eAAet/0B,OAAOonR,KAGnC+3jB,kBAAmB,WACf,IAAIx9iB,GAAc9xS,SAAO,EAAM,CAC3BugD,MAAO,OACPE,OAAQ,OACRyuF,oBAAoB,GACrBvuJ,KAAKszD,OAAO,sBACftzD,KAAK8o1B,YAAc,ID5W3B,UACIjp1B,YAAYujnB,EAAgBtvX,GACxB9zP,KAAKmx2B,gBAAkB/tP,EACvBpjnB,KAAKox2B,iBAAmBt9mB,EACxB9zP,KAAK4wO,eACL5wO,KAAKqx2B,8BAETzgoB,eACI,IAAIwyY,EAAiBpjnB,KAAKmx2B,gBACtBpnxB,KAAa3uB,MAAE,SAASxtD,SAASw+1B,KAAcvhyB,SAASu4iB,EAAejojB,YACvE24L,EAAc9zP,KAAKy51B,kBACvB,OAAOr2O,EAAezqhB,iBAAiB5O,EAAYo2I,GAAO2zB,GAE9Du9mB,8BACI,IAAI56mB,EACJ,QAAUA,EAAez2P,KAAKmxO,cAAW,OAAmCslB,EAAa7sM,GAAG,gBAAiB5mC,IACzG,IACI3f,KAAMA,EACNuJ,MAAOA,GACPoW,EACA,aACAhjB,KAAKsx2B,iBAAiB1k2B,KAIlC2k2B,iBACIvx2B,KAAKmxO,OAAO38F,OAEhBg9tB,kBAAkBx71B,GACdA,EAAExH,UAAU8/F,mBAAmB,SAAUtuG,KAAKux2B,eAAetozB,KAAKjpD,OAEtE0/kB,iBACI,IAAI2gC,GAAenijB,cAAcqijB,SAA2B,KAC5D,MAAO,UAAYv9iB,UAAexB,YAAc,SAEpDi4xB,kBACI,SAAOp60B,MAAO,CACVm1E,cAAex+E,IACXhW,KAAKmxO,OAASn7N,EAAExH,UAChBxO,KAAKmxO,OAAOvnL,GAAG,SAAU,IAAM5pD,KAAK6uJ,YACpC7uJ,KAAKmxO,OAAOvnL,GAAG,QAAS,KACpB5pD,KAAKwrrB,MAAMnvlB,WAGnBg1C,gBAAgB,EAChBxoC,mBAAmB,EACnB2mD,iBAAiB,EACjBlB,WAAYtuJ,KAAK0/kB,iBACjB1xb,gBAAiB0rsB,IACb,IAAIjoO,GAAiBr2jB,QAAE,SAASyP,SAAS6uxB,GACzC151B,KAAKyx2B,YAAYhgP,EAAgB,CAC7Bh7d,iBAAkBzgJ,GAAKhW,KAAK0x2B,oBAAoB171B,EAAElL,OAClDqrJ,cAAev5I,IACP,WAAaA,EAAKujI,WAClBvjI,EAAKmjI,eAAgB1gI,SAAO,EAAM,GAAIzC,EAAKmjI,cAAe,CACtDvrD,cAAex0F,KAAKwx2B,kBAAkBvozB,KAAKjpD,aAM/D0vJ,aAAc,CAAC,CACXO,QAAS,SACTh9I,SAAU,QACVulF,OAAQ,WACR5mE,WAAS+6D,MAAS,CACd6H,cAAex0F,KAAKwx2B,kBAAkBvozB,KAAKjpD,MAC3CyW,KAAMksQ,UAA2B,MACjC7+N,QAAS9tC,GAAKhW,KAAK0x2B,oBAAoB171B,EAAElL,QArFrDmlI,KACO,CACHmP,YAAa,YACb3zI,KAAM,WAGP,KAiFI,CACCwkJ,QAAS,SACTh9I,SAAU,QACVulF,OAAQ,WACR5mE,WAAS+6D,MAAS,CACd6H,cAAex0F,KAAKwx2B,kBAAkBvozB,KAAKjpD,MAC3CyW,KAAMksQ,UAA2B,UACjC7+N,QAAS,KACL9jD,KAAKmxO,OAAO38F,SAtF5BvE,KACO,CACHmP,YAAa,WACb3zI,KAAM,UAGP,MAoFCypP,sBAAuBk3mB,KACxBps2B,KAAKox2B,kBAEZvitB,WACI7uJ,KAAK+o1B,2BAAwB,EAC7B/o1B,KAAKuzE,SAAS15B,SAElB63zB,oBAAoB5m2B,GACZ9K,KAAK+o1B,wBAA0B/o1B,KAAK+o1B,yBAGxC/o1B,KAAKw0I,KAAKx0I,KAAKwrrB,MAAMl4nB,OAAO,YAAaxoD,GAE7C2m2B,YAAY1nxB,EAAYn4D,GACpBm4D,EAAWn8E,SAnHF,sBAoHT5N,KAAKwrrB,MAAQxrrB,KAAKmx2B,gBAAgBx4wB,iBAAiB5O,EAAY67hB,GAAMh0lB,GACrE5xB,KAAKsx2B,mBAETA,iBAAiB761B,GACb,IAAImnzB,EACAvlrB,EAAQ,MAAS5hI,EAA0BA,EAAOzW,KAAK2x2B,YAAY,SACvE,QAAU/zC,EAAc59zB,KAAKwrrB,aAAU,OAAkCoyI,EAAYziwB,WAAWiU,KAAK,aAAcipE,GAEvHu5tB,yBACI,MAAO,CACHpxtB,SAAU,EACV5gF,MAAO,OACP02F,cAAe5mB,KAAoB,MAAQ,QAGnDmiuB,WAAW//wB,EAAYy1C,GACnB,OAAOvnI,KAAKwrrB,MAAMl4nB,OAAO53B,MAAM17B,KAAKwrrB,MAAOzrrB,WAE/C00I,KAAKq9tB,GACD,IAAI9x2B,KAAKmxO,OAAO79K,OAAO,WAGvB,MAAKigB,SAAW,IAAIC,MACpB,IAAI+1wB,GAAalq0B,QAAOrf,KAAK4x2B,yBAA0BE,GACvD,YAAKtmL,MAAMl4nB,OAAOi2xB,GAClBvp1B,KAAKmxO,OAAO18F,OACLz0I,KAAKuzE,SAASz5B,WAEzB06F,KAAK4hB,EAAUtrJ,GACX9K,KAAKuzE,SAAS1/C,QAAQuiI,EAAUtrJ,GAChC9K,KAAKmxO,OAAO38F,OAEhBm9tB,YAAY7/wB,EAAYy1C,GACpB,OAAOvnI,KAAKmxO,OAAO79K,OAAO53B,MAAM17B,KAAKmxO,OAAQpxO,aC0OXC,KAAMmxT,IAE5Cp5E,sBAAuB,WACnB,MAAO,kBAEXyknB,mBAAoB,WAChB,OAAOx81B,KAAKmt2B,iBAEhB4E,sBAAsBp51B,GAClB,IAAIq51B,EACAC,EAAa,QAAUD,EAAiBr51B,EAAKu6C,gBAAa,WAA4B,EAAS8+yB,EAAe9/1B,MAAM,KACpHtF,EAAQ+L,EAAK/L,MAEjB,OAAI,IAAMql2B,EAAWxt2B,SACjBmI,EAAQ,EACHql2B,EAAW,IAAKrl2B,IAGlB,CANUql2B,EAAWxt2B,QAAU,EAAIwt2B,EAAW,GAAKt51B,EAAKtV,KAM3CuJ,IAExBsl2B,qBAAsB,SAAS78V,EAAY18f,GACvC,IAAIw51B,EAAiBny2B,KAAK+n1B,UAAU1yU,GACJvna,QAAQqkwB,GAEpCA,EAAe7+yB,UAAUtzD,KAAK+x2B,sBAAsBp51B,IAEpD3Y,KAAK4jG,eAGbrN,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,QACD,GAAIrD,KAAK8u2B,eACL,GAAI9u2B,KAAK+w2B,kBACL/w2B,KAAK+w2B,mBAAoB,MACtB,CACH,IAAIqB,EAAepy2B,KAAK8t2B,mBAAqB9t2B,KAAK6w2B,mBAAmB,OAAQl41B,EAAK/L,OAAS+L,EAAK/L,MAChG5M,KAAKg3O,6BACLh3O,KAAKqy2B,mBAAmBD,GACxBpy2B,KAAKk3O,gCAGTl3O,KAAKmt2B,gBAAgBpxxB,KAAKpjE,EAAK/L,OAEnC,IAAIA,EAAQ5M,KAAKszD,OAAO,SACpB1mD,IAAU+L,EAAK0d,gBACfr2B,KAAK6xP,gBAAgBjlP,GACrB5M,KAAKm5D,UAASwzB,QAAS,GAAIh0E,EAAM,CAC7B/L,MAAOA,MAGf,UACC,kBACA,gBACA,cACA,eACA,uBACA,qBACD5M,KAAK4jG,cACL,UACC,gBACD5jG,KAAKky2B,qBAAqB,gBAAiBv51B,GAC3C,UACC,YACD3Y,KAAKmu2B,qBACL,IAAItj1B,EAAW7qB,KAAK6w2B,mBAAmBl41B,EAAK/L,OACxC,SAAW+L,EAAK/L,OAAS5M,KAAK8u2B,eAC9B9u2B,KAAKqy2B,mBAAmBxn1B,GAExB7qB,KAAKszD,OAAO,QAASzoC,GAEzB,UACC,cACD7qB,KAAKg4O,qBACL,UACC,eACA,WACDh4O,KAAKm5D,SAASxgD,GACd3Y,KAAKkx2B,qBACL,UACC,oBACDlx2B,KAAK2u2B,oBACL,UACC,mBACD3u2B,KAAKky2B,qBAAqB,mBAAoBv51B,GAC9C,UACC,gBACIA,EAAK0d,eAAkB1d,EAAK/L,MAG7B5M,KAAK+n1B,UAAU,YAAYz0xB,OAAO36C,EAAKtV,KAAMsV,EAAK/L,OAFlD5M,KAAK4jG,cAIT,UACC,QACD5jG,KAAKm5D,SAASxgD,GACd3Y,KAAKsy2B,kBACL,UACC,cACDty2B,KAAKky2B,qBAAqB,cAAev51B,GACzC,cAEA3Y,KAAKm5D,SAASxgD,KAG1B251B,gBAAiB,WACbty2B,KAAKuy2B,oBAAoB,YAE7BF,mBAAoB,SAASt2xB,GACzB,IAAIgtxB,EAAW/o2B,KAAK8u2B,eAAe3yxB,UAAUshV,QAAQ,CACjD1hV,KAAMA,IAEV/7E,KAAK8u2B,eAAeU,YAAYzG,IAEpCtlwB,OAAQ,WACAzjG,KAAK8u2B,iBACLrgzB,SAAiBzuD,KAAKilhB,cAAe,IAAIpjgB,OAAO7hB,KAAKo1F,OACrDp1F,KAAK8u2B,eAAejlzB,IAAI,cAAe7pD,KAAK+u2B,+BAC5C/u2B,KAAKit2B,eAAe/syB,QAExBlgE,KAAKwy2B,0BACLxy2B,KAAKit2B,eAAejqxB,QACpBhjF,KAAKkt2B,4BAA4BlqxB,QACjChjF,KAAKm5D,YAETq5yB,wBAAyB,WACjBxy2B,KAAKmv2B,qBACLnv2B,KAAKmv2B,mBAAmBr5vB,QACxB91G,KAAKmv2B,wBAAqB,IAGlCsD,kBAAkBlpzB,EAAY5wC,GAC1B,GAAI3Y,KAAK8u2B,eACL,OAAO9u2B,KAAK8u2B,eAAevlzB,GAAY7tB,MAAM17B,KAAK8u2B,eAAgBn21B,IAG1E+51B,yBAAyBnpzB,GACjBvpD,KAAK8u2B,gBAAkB9u2B,KAAK8u2B,eAAetgB,SAC3Cxu1B,KAAK8u2B,eAAetgB,QAAQjlyB,MAGpCgpzB,oBAAoBhpzB,GAChB,IAAIopzB,EACJ,QAAUA,EAAkB3y2B,KAAK+n1B,UAAU,kBAAe,OAAsC4qB,EAAgBppzB,MAEpHi+xB,iBAAiB9h1B,GACb1F,KAAKit2B,eAAexk2B,IAAI/C,IAE5B+v1B,8BAA8B/v1B,GAC1B1F,KAAKkt2B,4BAA4Bzk2B,IAAI/C,IAEzCil2B,SAAU,SAAS5hzB,GACf/oD,KAAKsu2B,kBAAkBjD,gBAAgBtizB,GACnC/oD,KAAK8u2B,gBACL9u2B,KAAKquG,WAGbrqG,IAAK,SAASwn2B,GACV,OAAOxr2B,KAAKsu2B,kBAAkB5d,WAAWxnG,OAAOsiH,IAEpDzjB,UAAW,SAAS1yU,GAChB,OAAOr1gB,KAAKyy2B,kBAAkB,YAAa1y2B,YAE/C6y2B,iBAAkB,WACd,OAAO5y2B,KAAK8u2B,gBAEhB74pB,aAAc,SAAS55G,GACnB,OAAOr8F,KAAKyy2B,kBAAkB,eAAgB1y2B,YAElDsiI,aAAc,SAAS9vH,EAAO9N,GAC1BzE,KAAKyy2B,kBAAkB,eAAgB1y2B,YAE3Cu7uB,QAAS,SAAS/ouB,EAAO9N,GACrB,OAAOzE,KAAKyy2B,kBAAkB,UAAW1y2B,YAE7CogG,OAAQ,SAASohD,EAAYm0M,GACzB11V,KAAKyy2B,kBAAkB,SAAU1y2B,YAErC+sW,WAAY,SAASv6V,EAAO9N,EAAQ88I,EAAYm0M,GAC5C11V,KAAKyy2B,kBAAkB,aAAc1y2B,YAEzC8y2B,WAAY,SAAStg2B,EAAO9N,EAAQ88I,EAAYm0M,GAC5C11V,KAAKyy2B,kBAAkB,aAAc1y2B,YAEzC61V,UAAW,SAASrjV,EAAO9N,GACvB,OAAOzE,KAAKyy2B,kBAAkB,YAAa1y2B,YAE/C0t1B,aAAc,SAASl70B,EAAO9N,GAC1B,OAAOzE,KAAKyy2B,kBAAkB,eAAgB1y2B,YAElDix2B,aAAc,WACVhx2B,KAAK0y2B,yBAAyB,SAC9B1y2B,KAAKuy2B,oBAAoB,yBAE7BjxJ,KAAM,WACFthtB,KAAK0y2B,yBAAyB,SAElCjxJ,KAAM,WACFzhtB,KAAK0y2B,yBAAyB,SAElCj0c,UAAW,WACP,OAAOz+Z,KAAKyy2B,kBAAkB,cAElCx3mB,UAAW,SAAS1oP,EAAO9N,GACvB,OAAOzE,KAAKyy2B,kBAAkB,YAAa1y2B,YAE/C4J,OAAQ,SAAS4I,EAAO9N,GACpBzE,KAAKyy2B,kBAAkB,aAAc1y2B,YAEzCgx1B,WAAY,SAASx+0B,EAAOkE,EAAM08I,GAC9BnzJ,KAAKyy2B,kBAAkB,aAAc1y2B,YAEzCkt1B,YAAa,SAAS160B,EAAO9G,EAAMsY,GAC/B/jB,KAAKyy2B,kBAAkB,cAAe1y2B,YAE1C4p1B,eAAgB,SAASJ,GACrB,OAAOvp1B,KAAK8o1B,YAAYr0sB,KAAK80sB,IAEjCU,iBAAkB,SAASn4vB,EAAYy1C,GACnC,OAAOvnI,KAAK8o1B,YAAY6oB,YAAYj20B,MAAM17B,KAAK8o1B,YAAa/o1B,YAEhEs8F,MAAO,WACHr8F,KAAKm5D,WACLn5D,KAAKyy2B,kBAAkB,UAE3Bp3xB,KAAM,WACFr7E,KAAKyy2B,kBAAkB,SAE3B5K,iCACI,OAAO7n2B,KAAKgt2B,gCAGpB94tB,GAAkB,eAAgBq4tB,KC1nBlC,UD2nBeA,IE/mBTzusB,IAAM,CAAC,KACPgwH,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAM0t1B,IAC9Bju2B,OAAO,OAMLiu2B,SAAN,gBAAoC58yB,GAChCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCig2B,yBACA,OAAO7s2B,KAAKozD,WAAW,sBAEvBy5yB,uBAAmBjg2B,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC+/1B,uBACA,OAAO3s2B,KAAKozD,WAAW,oBAEvBu5yB,qBAAiB//1B,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCmg2B,kBACA,OAAO/s2B,KAAKozD,WAAW,eAEvB25yB,gBAAYng2B,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B6/1B,oBACA,OAAOzs2B,KAAKozD,WAAW,iBAEvBq5yB,kBAAc7/1B,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC+61B,eACA,OAAO3n2B,KAAKozD,WAAW,YAEvBu0yB,aAAS/61B,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB05J,kBACA,OAAOtmK,KAAKozD,WAAW,eAEvBkzG,gBAAY15J,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bgg2B,uBACA,OAAO5s2B,KAAKozD,WAAW,oBAEvBw5yB,qBAAiBhg2B,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC8/1B,oBACA,OAAO1s2B,KAAKozD,WAAW,iBAEvBs5yB,kBAAc9/1B,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCqjJ,cACA,OAAOjwJ,KAAKozD,WAAW,WAEvB68F,YAAQrjJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB43J,gBACA,OAAOxkK,KAAKozD,WAAW,aAEvBoxG,cAAU53J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B4/1B,gBACA,OAAOxs2B,KAAKozD,WAAW,aAEvBo5yB,cAAU5/1B,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHuu1B,uBACA,OAAO/y2B,KAAKozD,WAAW,YAEvB2/yB,qBAAiBnm2B,GACjB5M,KAAKm0D,YAAY,WAAYvnD,GAEjCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIoh1B,IAAaxr2B,EAASoqB,GAErChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,WAAYv8I,GAC9Bj2B,KAAKwyK,aAAa,mBAAoBv8I,GAE1Cu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,YAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBkm2B,SAAsBrs2B,UAAO,SAAuCP,GAAK,OAAO,IAAKA,GAAK4s2B,GAAuBns2B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAC/Zk/1B,EAAsBhn0B,UAAiCnlC,MAAqB,CAAE8E,KAAMqn2B,EAAuB9s1B,UAAW,CAAC,CAAC,mBAAoBk4H,eAAgB,SAA8CxpF,EAAIv9C,EAAKgnI,GAEhO,GAFqP,EAALzpF,GAC9O/tD,MAAkBw3I,EAAUogB,IAAqB,GAC1C,EAAL7pG,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI471B,iBAAmB30tB,KACnE6vI,aAAc,SAA4Cv5N,EAAIv9C,GAAgB,EAALu9C,GAC1E/tD,MAAc,cAAe,SAA8DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAvHluB,CAAmI,SAAU,SAAyDkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MAClOK,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsBmkwB,mBAAoB,qBAAsBF,iBAAkB,mBAAoBvk1B,SAAU,WAAY+4E,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqBmkwB,YAAa,cAAe12sB,QAAS,UAAWoP,QAAS,UAAWgnsB,cAAe,gBAAiB9E,SAAU,WAAYtk2B,KAAM,OAAQijK,YAAa,cAAe93E,SAAU,WAAY/pB,WAAY,aAAc26E,YAAa,cAAevwE,SAAU,WAAY+9xB,iBAAkB,mBAAoBF,cAAe,gBAAiBz8sB,QAAS,UAAW0W,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAAS43J,UAAW,YAAagosB,UAAW,YAAaz9xB,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAeqU,UAAW,YAAaC,WAAY,aAAcxU,cAAe,gBAAiBC,gBAAiB,kBAAmBigE,eAAgB,iBAAkBke,gBAAiB,kBAAmBC,yBAA0B,2BAA4BogsB,yBAA0B,2BAA4BC,uBAAwB,yBAA0BhgsB,eAAgB,iBAAkBC,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2B6/rB,kBAAmB,oBAAqB1klB,cAAe,gBAAiBC,cAAe,gBAAiB0klB,oBAAqB,sBAAuBC,eAAgB,iBAAkBrklB,WAAY,aAAcG,kBAAmB,oBAAqBC,eAAgB,iBAAkBr7G,iBAAkB,mBAAoB47G,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBk/rB,uBAAwB,yBAA0BC,oBAAqB,sBAAuBroK,cAAe,gBAAiBr7a,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAey+sB,gBAAiB,kBAAmBC,gBAAiB,kBAAmBpptB,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACvlF2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0Bg9I,mBAAoBma,IAAKtpG,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAwC4F,EAAIv9C,GAAgB,EAALu9C,IAC1K/tD,QACAA,MAAgB,KACf+E,cAAe,IAhdlBon2B,MAmoBAY,UAAN,SAEmBA,SAAmBjt2B,UAAO,SAAoCP,GAAK,OAAO,IAAKA,GAAKwt2B,IACpFA,EAAmBz+1B,UAAiCtO,MAAoB,CAAE8E,KAAMio2B,IAChFA,EAAmBx+1B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC3F+kJ,IACAnG,IACAnQ,GACAsa,IACAM,IACA6M,IACA5mB,GACA6mB,IACA2E,GACA4B,IACA53G,GACA1H,IACD2nG,IACHnG,IACAnQ,GACAsa,IACAM,IACA6M,IACA5mB,GACA6mB,IACA2E,GACA4B,IACAt/G,MA3BFmhzB,MCrpBN,IAAIpmkB,GAAU/zO,OAIVqhY,GAAkBnE,WAAsB,CACxCphP,MAAO,WACH,IAAInxH,EAAQlkF,KAAKg3b,gBAAkBh3b,KAAK2z2B,cACxC3z2B,KAAK02b,aAAat6X,KAAKp8D,KAAK27P,SAAW,EAAIz3K,EAAOlkF,KAAK27P,SAAWz3K,EAAQ,GAC1ElkF,KAAK62b,iBAAmB72b,KAAK62b,gBAAgBz6X,KAAKp8D,KAAK27P,SAAW,EAAIz3K,EAAOlkF,KAAK27P,SAAWz3K,EAAQ,IAEzGkzW,WAAY,WACR,YAAKz7L,SAAW37P,KAAK2vF,SAASgsK,SACvB37P,KAAK2vF,SAASlrF,OAAS,GAAKzE,KAAK2vF,SAAS/vB,MAAQ,GAE7D0jC,WAAY,WACR,OAAO,GAEXgxR,oBAAqB,WACjB,IACIl3T,EACAE,EACAD,EACAE,EAJA3rC,EAAU5xB,KAAK2vF,SAKf/vB,EAAQhuC,EAAQguC,MAAQ,EACxBn7D,EAASmtB,EAAQntB,OAAS,EAC1B0C,EAAInH,KAAK2z2B,cACb/zyB,SAAQ,KAAOA,EAAQ,IACvBn7D,EAAS,KAAOA,EAAS,IACzBzE,KAAS27P,UACLv+L,EAAKxrC,EAAQhB,EAAInsB,EACjB64D,EAAK1rC,EAAQhB,EAAInsB,EACjB44D,EAAKl2D,EAAIy4D,EACTrC,EAAKp2D,EAAIy4D,IAETxC,EAAKj2D,EAAIy4D,EACTtC,EAAKn2D,EAAIy4D,EACTvC,EAAKzrC,EAAQ4pC,EAAI/2D,EACjB84D,EAAK3rC,EAAQ4pC,EAAI/2D,GAEd,CACH8yS,OAAQ,CAACn6O,EAAIC,EAAID,EAAIG,EAAID,EAAIC,EAAID,EAAID,KAG7C+6B,QAAS,WACLp4F,KAAK2z2B,cAAgB3z2B,KAAK6qZ,YAAY9B,oBAE1C/hD,OAAQ,kBACGhnW,KAAK2pF,UAEhBg2O,QAAS,SAASnpC,GACd,IAAIrvR,EAAInH,KAAK27P,SAAW66B,EAAO5lQ,EAAI4lQ,EAAOh7N,EAC1C,MAAO,CACHkO,IAAKviE,EAAInH,KAAK2vF,SAASlrF,OAAS,EAChC+V,IAAKrT,EAAInH,KAAK2vF,SAASlrF,OAAS,IAGxC4mZ,qBAAsB,WAClB,IAAIz5X,EAAU5xB,KAAK2vF,SACfxoF,EAAInH,KAAKg3b,gBACT/5Z,EAAa,CACbrM,EAAGzpB,EACHq0D,EAAGr0D,EACHyF,MAAO5M,KAAKm3b,cACZ3hT,MAAO5jH,EAAQ4jH,MACfrrE,OAAQv4C,EAAQguC,MAAQ,GAE5B,YAAK+7L,SAAW1+N,EAAWrM,EAAIgB,EAAQhB,EAAIqM,EAAWu+B,EAAI5pC,EAAQ4pC,EAC3Dv+B,KAGXupR,IAAYo0I,GAAgB1yV,QAAQ,CACpC9P,QAAS,WACL,IACIh7B,EACAE,EACAD,EACAE,EAJA3rC,EAAU5xB,KAAK2vF,SAKnB3vF,KAAKm5D,WACL,IAAIhyD,EAAInH,KAAK2z2B,cACT3z2B,KAAK27P,UACLv+L,EAAKxrC,EAAQhB,EAAIgB,EAAQntB,OAAS,EAClC64D,EAAK1rC,EAAQhB,EAAIgB,EAAQntB,OAAS,EAClC44D,EAAKl2D,EAAIyqB,EAAQguC,MAAQ,EACzBrC,EAAKp2D,EAAIyqB,EAAQguC,MAAQ,IAEzBxC,EAAKj2D,EAAIyqB,EAAQguC,MAAQ,EACzBtC,EAAKn2D,EAAIyqB,EAAQguC,MAAQ,EACzBvC,EAAKzrC,EAAQ4pC,EAAI5pC,EAAQntB,OAAS,EAClC84D,EAAK3rC,EAAQ4pC,EAAI5pC,EAAQntB,OAAS,GAEtCzE,KAAK2pF,SAAW3pF,KAAK2pF,UAAY3pF,KAAKqkB,UAAUwE,KAAK,GAAI,QAAQ+gE,OAAO5pF,KAAK02b,cAC7E12b,KAAK2pF,SAASva,KAAK,CACfmoO,OAAQ,CAACn6O,EAAIC,EAAID,EAAIG,EAAID,EAAIC,EAAID,EAAID,QAI7Cu2yB,IAAUh5a,GAAgB1yV,QAAQ,CAClC9P,QAAS,WACL,IACIxnE,EACA4qC,EACA6U,EACAygO,EAJAl/Q,EAAU5xB,KAAK2vF,SAKnB3vF,KAAKm5D,WACDn5D,KAAK27P,UACL/qO,EAAIgB,EAAQhB,EACZ4qC,EAAIx7D,KAAK2z2B,cACTtjyB,EAAKz+C,EAAQntB,OAAS,GAAK,EAC3BqsS,EAAKl/Q,EAAQguC,MAAQ,GAAK,IAE1BhvC,EAAI5wB,KAAK2z2B,cACTn4yB,EAAI5pC,EAAQ4pC,EACZ6U,EAAKz+C,EAAQguC,MAAQ,GAAK,EAC1BkxO,EAAKl/Q,EAAQntB,OAAS,GAAK,GAE/BzE,KAAK2pF,SAAW3pF,KAAK2pF,UAAY3pF,KAAKqkB,UAAUwE,KAAK,GAAI,QAAQ+gE,OAAO5pF,KAAK02b,cAC7E12b,KAAK2pF,SAASva,KAAK,CACfmoO,OAAQ,CAAC3mR,EAAIy/C,EAAI7U,EAAG5qC,EAAG4qC,EAAIs1O,EAAIlgR,EAAIy/C,EAAI7U,EAAG5qC,EAAG4qC,EAAIs1O,QAIzDiiC,IAAS6nH,GAAgB1yV,QAAQ,CACjC9P,QAAS,WACL,IACIxnE,EACA4qC,EAFA5pC,EAAU5xB,KAAK2vF,SAGnB3vF,KAAKm5D,WACLn5D,KAAS27P,UACL/qO,EAAIgB,EAAQhB,EACZ4qC,EAAIx7D,KAAK2z2B,gBAET/i1B,EAAI5wB,KAAK2z2B,cACTn4yB,EAAI5pC,EAAQ4pC,GAEhB,IAAIvkD,EAAI2a,EAAQntB,OAAS,GAAK,EAC9BzE,KAAK2pF,SAAW3pF,KAAK2pF,UAAY3pF,KAAKqkB,UAAU0uT,SAASnpP,OAAO5pF,KAAK02b,cACrE12b,KAAK2pF,SAASva,KAAK,CACf4jQ,GAAIpiT,EACJopJ,GAAIx+G,EACJvkD,OAIRglb,IAAiBrB,GAAgB1yV,QAAQ,CACzCkvV,WAAY,WACR,YAAKz7L,SAAW37P,KAAK2vF,SAASgsK,SAC9B37P,KAAK6z2B,UAAY7z2B,KAAK27P,SAAW,aAA2B37P,KAAK2vF,SAAS8xE,uBAAyB,cAA4BzhK,KAAK2vF,SAAS+xE,qBACtI1hK,KAAK2vF,SAASlrF,OAAS,GAAKzE,KAAK2vF,SAAS/vB,MAAQ,GAE7D0jC,WAAY,WACR,OAAO,GAEXlL,QAAS,WACL,IACIh7B,EACAE,EACAD,EACAE,EAJA3rC,EAAU5xB,KAAK2vF,SAKf2iO,EAAW,CACXvK,OAAQ,OACR,eAAgB,EAChB,iBAAkB,UAEtB/nT,KAAKm5D,WACDn5D,KAAK27P,UAELt+L,EAAKr9D,KAAK2z2B,cACVr2yB,GAFAF,EAAKxrC,EAAQhB,GAEH08Q,GAAQttS,KAAK6z2B,UAAYji1B,EAAQntB,QAAUmtB,EAAQntB,QAC7D6tT,EAAS/a,OAAS,CAACn6O,EAAIC,EAAIC,EAAID,EAAKzrC,EAAQguC,MAAQ,EAAGtC,EAAID,EAAKzrC,EAAQguC,MAAQ,KAGhFxC,EAAKp9D,KAAK2z2B,cACVp2yB,GAFAF,EAAKzrC,EAAQ4pC,GAEH8xO,GAAQttS,KAAK6z2B,UAAYji1B,EAAQntB,QAAUmtB,EAAQntB,QAC7D6tT,EAAS/a,OAAS,CAACn6O,EAAIC,EAAID,EAAKxrC,EAAQguC,MAAQ,EAAGrC,EAAIH,EAAKxrC,EAAQguC,MAAQ,EAAGrC,IAE/E3rC,EAAQiyF,MAAQ,IAChByuM,EAAS,gBAAkB/3S,KAAKmvD,IAAI93C,EAAQiyF,MAAOjyF,EAAQguC,MAAQ,IAAM,EACzE0yP,EAASvK,OAASuK,EAAS,gBAAkB,GAAI1gS,EAAQygS,0BAA4B,QAEzFryT,KAAK2pF,SAAW3pF,KAAK2pF,UAAY3pF,KAAKqkB,UAAUwE,KAAK,GAAI,QAAQ+gE,OAAO5pF,KAAK02b,cAC7E12b,KAAK2pF,SAASva,KAAKkjP,GAAUob,SAEjC4mD,oBAAqB,WACjB,IAGIl3T,EACAE,EACAD,EACAE,EANA3rC,EAAU5xB,KAAK2vF,SACf/vB,EAAQhuC,EAAQguC,MAAQ,EACxBn7D,EAAS6oS,GAAQ17Q,EAAQntB,QAM7Bm7D,SAAQ,KAAOA,EAAQ,IACvBn7D,EAAS,KAAOA,EAAS,IAclB,CACH8yS,OAdAv3S,KAAK27P,SAKI,CAJTv+L,EAAKxrC,EAAQhB,EAEbysC,EAAKr9D,KAAK2z2B,cAAgB/zyB,EAD1BtC,EAAKF,GAAMp9D,KAAK6z2B,UAAYpv2B,GAAUA,GAGhB44D,EAAIC,EAD1BC,EAAKv9D,KAAK2z2B,cAAgB/zyB,EACQxC,EAAIG,GAM7B,CAFTH,EAAKp9D,KAAK2z2B,cAAgB/zyB,EAF1BvC,EAAKzrC,EAAQ4pC,EAIK4B,EAHlBG,EAAKF,GAAMr9D,KAAK6z2B,UAAYpv2B,GAAUA,GAEtC64D,EAAKt9D,KAAK2z2B,cAAgB/zyB,EACIrC,EAAID,EAAID,KAM9CsiQ,QAAS,SAASnpC,GACd,IACIymF,EACAC,EAFAz4W,EAAS6oS,GAAQttS,KAAK2vF,SAASlrF,QAGnC,OAAIzE,KAAK27P,UACLshH,EAAWC,EAAW1mF,EAAO5lQ,EACzB5wB,KAAK6z2B,UACL32f,EAAWD,EAAWx4W,EAEtBw4W,EAAWC,EAAWz4W,IAG1Bw4W,EAAWC,EAAW1mF,EAAOh7N,EACzBx7D,KAAK6z2B,UACL32f,EAAWD,EAAWx4W,EAEtBw4W,EAAWC,EAAWz4W,GAGvB,CACHilE,IAAKuzS,EACLziW,IAAK0iW,IAGbmuC,qBAAsB,WAClB,IAAIz5X,EAAU5xB,KAAK2vF,SACfh5E,GAAK3W,KAAK6z2B,UAAYji1B,EAAQntB,QAAUmtB,EAAQntB,QAAU,EAC1Dw4B,EAAaj9B,KAAKm5D,WACtB,YAAKwiM,SAAW1+N,EAAWrM,GAAKja,EAAIsmB,EAAWu+B,GAAK7kD,EACpDsmB,EAAWktC,OAASv4C,EAAQntB,OAAS,EAC9Bw4B,KAGXi/Z,IAAYxE,YAA4B,CACxCN,WAAY,WACR,YAAKz7L,SAAW37P,KAAK2vF,SAASgsK,SAC9B37P,KAAK6z2B,UAAY7z2B,KAAK27P,SAAW,aAA2B37P,KAAK2vF,SAAS8xE,uBAAyB,cAA4BzhK,KAAK2vF,SAAS+xE,sBACtI,GAEXp+D,WAAY,WACR,OAAO,GAEXs0V,qBAAsB,WAClB,IAEInsb,EAFAmlB,EAAI5wB,KAAKg3b,gBACTx7X,EAAIx7D,KAAKg3b,gBAEb,OAAIh3b,KAAK27P,UACL/qO,EAAI5wB,KAAK2vF,SAAS/+D,EAClBnlB,EAAOzL,KAAK6z2B,UAAY,WAAa,cAErCr4yB,EAAIx7D,KAAK2vF,SAASn0B,EAClB/vD,EAAOzL,KAAK6z2B,UAAY,YAAc,gBAEnC,CACHjj1B,EAAGA,EACH4qC,EAAGA,EACH/vD,KAAMA,IAGdk0T,QAAS,SAASnpC,GACd,IAAIymF,EACAC,EACA7nO,EAAci4J,GAAQttS,KAAK2vF,SAAS0lD,cAAgB,EACxD,YAAKkjT,eACDv4b,KAAK27P,SACL37P,KAAS6z2B,WACL52f,EAAWzmF,EAAO5lQ,EAClBssV,EAAW1mF,EAAO5lQ,EAAIykH,EAAcr1I,KAAK04b,iBAEzCz7E,EAAWzmF,EAAO5lQ,EAAIykH,EAAcr1I,KAAK04b,eACzCx7E,EAAW1mF,EAAO5lQ,GAEf5wB,KAAK6z2B,WACZ52f,EAAWzmF,EAAOh7N,EAClB0hT,EAAW1mF,EAAOh7N,EAAI65E,EAAcr1I,KAAK24b,kBAEzC17E,EAAWzmF,EAAOh7N,EAAI65E,EAAcr1I,KAAK24b,gBACzCz7E,EAAW1mF,EAAOh7N,GAEf,CACHkO,IAAKuzS,EACLziW,IAAK0iW,EACLriN,OAAQ,IAGhBw9R,kBAAkB5sb,EAAMuX,EAAMs3E,GAC1B,IACI1pE,EAAGA,EACH4qC,EAAGA,GACHx4C,GAEA48C,MAAOA,EACPE,OAAQA,GACRw6B,EACJ,MAAI,iBAAwB,iBAAmB7uF,EACvCmlB,EAAIgvC,EAAQ5/D,KAAK6qZ,YAAY9B,qBAC7Bt9Y,EAAO,QAAQoW,OAAOpW,EAAKyG,MAAM,KAAK,MAEnC,aAAezG,GAAQ,cAAgBA,IAC1C+vD,EAAIsE,EAAS9/D,KAAK6qZ,YAAY9B,qBAC9Bt9Y,EAAO,UAAUoW,OAAOpW,EAAKyG,MAAM,KAAK,KAGzCzG,KAGX2wb,IAAWxD,YAAqB,CAChCxB,WAAY,WACR,YAAKz7L,SAAW37P,KAAK2vF,SAASgsK,SAC9B37P,KAAK6z2B,UAAY7z2B,KAAK27P,SAAW,aAA2B37P,KAAK2vF,SAAS8xE,uBAAyB,cAA4BzhK,KAAK2vF,SAAS+xE,qBACtI1hK,KAAK2vF,SAAS6wE,KAAO,GAEhCl9D,WAAY,WACR,OAAO,GAEXm3V,eAAgB,WACZ,OAAOz6b,KAAKqkB,UAAUwE,KAAK,GAAI,QAAQ+gE,OAAO5pF,KAAK02b,eAEvD/7C,eAAgB,WACZ,OAAO36Y,KAAKqkB,UAAUwE,KAAK,GAAI,SAEnCswa,aAAc,WACV,IAEI26a,EACAC,EAHAni1B,EAAU5xB,KAAK2vF,SACf6wE,EAAO8sI,GAAQ17Q,EAAQ4uI,MAGvBxgK,KAAK27P,SACD37P,KAAK6z2B,WACLC,EAAUli1B,EAAQhB,EAClBmj1B,EAAUni1B,EAAQhB,EAAI4vI,IAEtBszsB,EAAUli1B,EAAQhB,EAAI4vI,EACtBuzsB,EAAUni1B,EAAQhB,GAEf5wB,KAAK6z2B,WACZC,EAAUli1B,EAAQ4pC,EAClBu4yB,EAAUni1B,EAAQ4pC,EAAIglG,IAEtBszsB,EAAUli1B,EAAQ4pC,EAAIglG,EACtBuzsB,EAAUni1B,EAAQ4pC,GAEtBx7D,KAAKs8b,SAAWw3a,EAChB9z2B,KAAKq8b,SAAW03a,EAChB/z2B,KAAKg02B,UAAYF,EACjB9z2B,KAAKi02B,UAAYF,GAErBv6a,UAAW,WACP,IAAI5na,EAAU5xB,KAAK2vF,SACnB,OAAO/9D,EAAQiyF,MAAQ,EAAIypL,GAAQ17Q,EAAQiyF,OAAS,GAExDg1U,eAAgB,WACZ,IAAI+I,EAAc5hc,KAAK2vF,SAASl5E,MAAQ,GACxC,OAAOmrb,EAAY/mS,OAAS,GAAK+mS,EAAY/mS,OAAS,GAE1Dk/R,cAAe,WACX,OAAO/5b,KAAK27P,SAAW37P,KAAK2vF,SAASl5E,KAAKokJ,OAAS,EAAI,OAAS,QAAU,UAE9Eo/R,mBAAoB,WAChB,IAAIp/R,EAASyyI,GAAQttS,KAAK2vF,SAASl5E,KAAKokJ,QACpCA,EAAS,GACT76J,KAAKk02B,WAAal02B,KAAKq8b,SACvBr8b,KAAKm02B,SAAWn02B,KAAKq8b,SAAWxhS,EAChC76J,KAAKo02B,cAAgBp02B,KAAKm02B,UAAYn02B,KAAK27P,SAAW,EAAI37P,KAAKg4b,YAAc,GAC7Eh4b,KAAKi02B,UAAYj02B,KAAKo02B,eAAiBp02B,KAAK27P,SAAW37P,KAAKy4b,WAAaz4b,KAAKg4b,YAAc,IACrFn9R,EAAS,IAChB76J,KAAKk02B,WAAal02B,KAAKs8b,SACvBt8b,KAAKm02B,SAAWn02B,KAAKs8b,SAAWzhS,EAChC76J,KAAKo02B,cAAgBp02B,KAAKm02B,UAAYn02B,KAAK27P,SAAW,EAAI37P,KAAKg4b,YAAc,GAC7Eh4b,KAAKg02B,UAAYh02B,KAAKo02B,eAAiBp02B,KAAK27P,SAAW37P,KAAKy4b,WAAaz4b,KAAKg4b,YAAc,KAGpGkC,cAAe,WACX,IAKIwC,EACAC,EACA03a,EACAC,EARA1P,EAAgB5k2B,KAAKo5b,eACrB2qB,EAAc/jd,KAAKq5b,aACnBx1U,EAAQ7jH,KAAKu5b,OACbqD,EAAe58b,KAAKs5b,cACpBuD,EAAiB78b,KAAKg3b,gBAK1B,OAAI4ta,EAAgB7gZ,GACZnnB,EAAeC,GACfH,EAAgBE,EAChBD,EAAgBE,IAEhBH,EAAgBG,EAChBF,EAAgBC,GAEpBy3a,EAAgB33a,EAAgB74U,EAChCywvB,EAAgB33a,EAAgB94U,IAE5B+4U,EAAeC,GACfH,EAAgBE,EAChBD,EAAgBE,IAEhBH,EAAgBG,EAChBF,EAAgBC,GAEpBy3a,EAAgB33a,EAAgB74U,EAChCywvB,EAAgB33a,EAAgB94U,GAE7B,CACHz2D,MAAOw3yB,EACP141B,IAAK63c,EACLzpB,MAAOoC,EACPnC,MAAOoC,EACPvC,MAAOi6a,EACPh6a,MAAOi6a,IAGfn6a,mBAAoB,SAAStxb,EAAM0oE,GAC/B,IAAI0yZ,EAAQjke,KAAKs8b,SACb4nC,EAAQlke,KAAKq8b,SAEjB,MAAO,CACH9kJ,OAFSv3S,KAAK27P,SAAW,CAACsoO,EAAOp7d,EAAMo7d,EAAO1yZ,EAAI2yZ,EAAO3yZ,EAAI2yZ,EAAOr7d,GAAQ,CAACA,EAAMo7d,EAAOp7d,EAAMq7d,EAAO3yZ,EAAI2yZ,EAAO3yZ,EAAI0yZ,KAK9HlrC,oBAAqB,WACjB/4b,KAAKkzU,MAAM9jQ,KAAKpvE,KAAK27P,SAAW,CAC5B/qO,EAAG5wB,KAAKo02B,cACR54yB,EAAGx7D,KAAKg3b,gBAAkBh3b,KAAKs4b,qBAC/B,CACA1na,EAAG5wB,KAAKg3b,gBACRx7X,EAAGx7D,KAAKo02B,cAAgBp02B,KAAKs4b,uBAGrCU,oBAAqB,WACjB,IACIirC,EACAC,EACA3sL,EAHAslJ,EAAiB78b,KAAKg3b,gBAItBh3b,KAAK27P,UACD37P,KAAKs5b,eAAiBuD,GACtBonC,EAAQpnC,EACRqnC,EAAQrnC,EAAiB,IAEzBonC,EAAQpnC,EAAiB,EACzBqnC,EAAQrnC,GAEZtlJ,EAAS,CAACv3S,KAAKk02B,WAAYjwY,EAAOjke,KAAKk02B,WAAYhwY,EAAOlke,KAAKm02B,SAAUjwY,EAAOlke,KAAKm02B,SAAUlwY,KAE3Fjke,KAAKs5b,eAAiBuD,GACtBonC,EAAQpnC,EAAiB,EACzBqnC,EAAQrnC,IAERonC,EAAQpnC,EACRqnC,EAAQrnC,EAAiB,GAE7BtlJ,EAAS,CAAC0sL,EAAOjke,KAAKk02B,WAAYjwY,EAAOjke,KAAKm02B,SAAUjwY,EAAOlke,KAAKm02B,SAAUjwY,EAAOlke,KAAKk02B,aAE9Fl02B,KAAK85b,MAAM1qX,KAAK,CACZmoO,OAAQA,IACTm2B,SAEPgtH,oBAAqB,WACjB,IAAI65a,GAAev02B,KAAKs8b,SAAWt8b,KAAKq8b,UAAY,EAChDm4a,GAAex02B,KAAKs5b,cAAgBt5b,KAAKg3b,iBAAmB,EAChE,OAAOh3b,KAAK27P,SAAW,CACnB/qO,EAAG2j1B,EACH/4yB,EAAGg5yB,GACH,CACA5j1B,EAAG4j1B,EACHh5yB,EAAG+4yB,IAGX50iB,QAAS,SAASnpC,GACd,IAEIymF,EACAC,EACAriN,EAJA2F,EAAO8sI,GAAQttS,KAAK2vF,SAAS6wE,MAC7BurQ,EAAaz+H,GAAQttS,KAAK2vF,SAASl5E,KAAKokJ,QAI5C,YAAK09R,eACLv4b,KAAS27P,UACLshH,EAAWC,EAAW1mF,EAAO5lQ,EACzB5wB,KAAK6z2B,UACL32f,GAAY18M,EAEZy8M,GAAYz8M,EAEZxgK,KAAK09T,WACL7iK,EAAS76J,KAAKg4b,YAAc,EACxBjsB,EAAa,IACb7uD,GAAY6uD,EAAa/ra,KAAKy4b,YAE9B1sB,EAAa,IACb9uD,GAAY8uD,EAAa/ra,KAAKy4b,eAItCx7E,EAAWC,EAAW1mF,EAAOh7N,EACzBx7D,KAAK6z2B,UACL32f,GAAY18M,EAEZy8M,GAAYz8M,EAEZxgK,KAAK09T,WACL7iK,EAAS76J,KAAKy4b,WAAa,EACvB1sB,EAAa,IACb7uD,GAAY6uD,EAAa/ra,KAAKg4b,aAE9BjsB,EAAa,IACb9uD,GAAY8uD,EAAa/ra,KAAKg4b,eAInC,CACHtuX,IAAKuzS,EACLziW,IAAK0iW,EACLriN,OAAQA,MC5gBhByyI,GAAU/zO,OACV05N,IAAO14Q,KAAKC,IAIZi61B,IAAuB33a,YAA2B,CAClDqB,gBAAiB,WAGb,GAFAn+b,KAAK27P,SAAW37P,KAAK2vF,SAASgsK,SAC9B37P,KAAK4+b,OAAS5+b,KAAK6+b,OAAS,EACxB7+b,KAAK27P,SACL,OAAQq/C,GAAeh7S,KAAK2vF,SAAS8xE,4BAC5B,OACDzhK,KAAK4+b,OAAS,EACd,UACC,SACD5+b,KAAK4+b,OAAS5+b,KAAK6+b,OAAS,GAC5B,cAEA7+b,KAAK6+b,OAAS,OAGtB,OAAQ7jJ,GAAeh7S,KAAK2vF,SAAS+xE,0BAC5B,MACD1hK,KAAK4+b,OAAS,EACd,UACC,SACD5+b,KAAK4+b,OAAS5+b,KAAK6+b,OAAS,GAC5B,cAEA7+b,KAAK6+b,OAAS,IAI9Bv7V,WAAY,WACR,OAAO,GAEX+6V,aAAc,SAAS7wQ,EAAOgpG,GAC1B,IAAI26J,EAAQnxb,KAAK4+b,OACb18P,EAAQliM,KAAK6+b,OACb+la,EAAgB5k2B,KAAK6qZ,YAAY9nY,UAAUyqK,EAAMpgI,OACjD22Z,EAAc/jd,KAAK6qZ,YAAY9nY,UAAUyqK,EAAMthL,KAE/C0kB,EAAI4lQ,EAAO5lQ,EACX4qC,EAAIg7N,EAAOh7N,EACXkiY,EAAalwQ,EAAMkwQ,WACnBC,EAAWnwQ,EAAMmwQ,SACrB,OAKO39b,KAAKqkB,UAAUwE,KALlB7oB,KAAK27P,SACI,CAAC/qO,EAAI8sa,EAAavM,EAAOyza,EAAeh00B,EAAI+sa,EAAWxM,EAAO4yB,EAAanzb,EAAI+sa,EAAWz7P,EAAO6hR,EAAanzb,EAAI8sa,EAAax7P,EAAO0iqB,GAEtI,CAACA,EAAeppyB,EAAIkiY,EAAax7P,EAAO0iqB,EAAeppyB,EAAIkiY,EAAavM,EAAO4yB,EAAavoZ,EAAImiY,EAAWxM,EAAO4yB,EAAavoZ,EAAImiY,EAAWz7P,GAExH,SAEvCy9H,QAAS,SAASnpC,GACd,IACI52N,EADAltD,EAAS,GAEbA,SAAOg3D,IAAMh3D,EAAO8H,IAAMg8Q,EAAOx2R,KAAK27P,SAAW,IAAM,KAEvD/7L,EAAQ0tO,GADR1tO,EAAQ5/D,KAAK2vF,SAAS/vB,QACIqzN,IAAKqa,GAAQ1tO,EAAMxS,OAAQkgP,GAAQ1tO,EAAM1zD,MACnEwG,EAAOg3D,KAAO1pE,KAAK4+b,OAASh/X,EAC5BltD,EAAO8H,KAAOxa,KAAK6+b,OAASj/X,EACrBltD,KAGf,UAAe+h2B,IC9Df,IAAIxhlB,IAAO14Q,KAAKC,IACZw4Q,IAAOz4Q,KAAKmvD,IACZsoN,GAASz3Q,KAAK2zC,MAoBdwmzB,GAAgBrlb,YAAgB,CAChC77C,WAAY,mBACZurD,gBAAiB,CACb15I,eAAgB,6BAChBM,UAAW,yBAEfmsI,mBAAoB,GACpB7B,YAAa,CACTxkb,KAAM,SACNgja,YAAa,UAEjBujB,qBAAsB,SAASvB,GAC3B,OAAOA,EAAaznF,aAAeynF,EAAa/uR,oBAAsB+uR,EAAahvR,uBAEvFyvO,0BACI,IAAIt/W,EAAU5xB,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACxC6xB,SAAQw3X,SAAW,UACZx3X,GAEX+i1B,oBACI,OAAQ302B,KAAKuxb,MAAM51L,UAAY37P,KAAKszD,OAAO,eAE/Cg+X,sBAAuB,WACnB,IAAIb,EAAezwb,KAAKm5D,WACxBs3X,SAAa10T,SAAW/7H,KAAK202B,oBACtBlkb,GAEXyB,uBAAwB,SAASzB,GAC7B,IAMImkb,EACA31a,EAPAxjS,EAAiBg1R,EAAap4S,MAAMojB,eACpCh3J,EAASgsb,EAAarzS,KAAK34I,OAC3Bosb,EAAa7wb,KAAKgwb,OAAO7Y,eAAc93Z,QAAO,GAAIrf,KAAK40V,UAEvDighB,EAAmBp5sB,EAAiB,EAIpCg1R,EAAaznF,cAUbi2F,EAAiBx6b,GATHow2B,EAAmB,CAC7BzppB,OAAQ,GACR7vJ,IAAK,EACL8b,OAAQ,GACR,CACA+zI,OAAQ,GACR7vJ,IAAK,EACL8b,OAAQ,IAE0Bo5W,EAAa/uR,qBACnDkzsB,EAAiB/jb,EAAWr1X,IAW5ByjY,EAAiBx6b,GATHow2B,EAAmB,CAC7BzppB,OAAQ,GACR9vJ,KAAM,EACNgc,MAAO,GACP,CACA8zI,OAAQ,GACR9vJ,KAAM,EACNgc,MAAO,IAE2Bm5W,EAAahvR,uBACnDmzsB,GAAkB/jb,EAAWjxX,OAEjC6wX,EAAap4S,MAAM0iB,gBAAkBU,GAAkBo5sB,GAAoB51a,EAAiB21a,EAAiB31a,GA9BhFxO,EAAaznF,aAAe6nF,EAAW/wX,OAAS+wX,EAAWr1X,EAAI,IA+B5Fx7D,KAAKgwb,OAAO7rE,cAAcssE,IAE9BmB,YAAa,SAASp7J,EAAQi6J,GAC1B,IAAIx8J,KAAS50Q,MAAO,GAAIrf,KAAK40V,SACzBoU,EAAeynF,EAAaznF,aAC5B77R,EAAQntE,KAAKgwb,OACjB/7J,EAAO+0E,EAAe,OAAS,OAAShpW,KAAKuxb,MAAMvoF,EAAe,aAAe,YACjF/0E,EAAO+0E,EAAe,QAAU,UAAY/0E,EAAO+0E,EAAe,QAAU,UAAYhpW,KAAKuxb,MAAMvoF,EAAe,WAAa,cAC/H77R,EAAMyI,KAAKq+M,GACX9mN,EAAM77D,MAAM,CACRgqD,MAAOk7N,EAAO5lQ,EACd2qC,KAAMi7N,EAAOh7N,KAGrB4wV,eAAgB,WACZ,IACIzwJ,EAAW,aAAeq/C,IADfh7S,KAAKszD,OAAO,aAAe,IACY0Q,aACtDhkE,KAAKuxb,MAAQ,CACT51L,SAAUA,EACV/qO,EAAG,EACH4qC,EAAG,EACHkkY,YAAY,IACZC,SAAU,KAEd3/b,KAAK2vb,gBAAgBh0L,SAAWA,EAChC37P,KAAK6qZ,YAAY9C,YAAY/nZ,KAAK202B,qBAClC302B,KAAK6qZ,YAAY/C,aAAY,IAAM,MAEvCipC,qBAAsB,WAClB,OAAO/wb,KAAKuxb,MAAMvxb,KAAKuxb,MAAM51L,SAAW,IAAM,MAElDs1L,sBAAuB,SAASr/Z,GAC5B,IAAIo/Z,EAAQ,CACRG,MAAO,EACPjvP,MAAO,GAEX,OAAIliM,KAAKuxb,MAAM51L,SACP,SAAJz1P,EAAuBu7J,uBACnBuvR,EAAMG,MAAQ,EACdH,EAAM9uP,MAAQ,GACP,WAAatwK,EAAQ6vI,wBAC5BuvR,EAAMG,MAAQH,EAAM9uP,MAAQ,IAEzB,UAAkBxgC,qBACzBsvR,EAAMG,MAAQ,EACdH,EAAM9uP,MAAQ,GACP,WAAatwK,EAAQ8vI,sBAC5BsvR,EAAMG,MAAQH,EAAM9uP,MAAQ,IAEzB8uP,GAEXK,qBAAsB,SAAS3+a,EAAQ+oJ,EAAgBo1R,GACnD,IAAIl1L,EAAW37P,KAAKuxb,MAAM51L,SACtBlgG,GAAkB,EAClB/oJ,EAAO8H,KAAOihJ,EAAiBo1R,EAAWl1L,EAAW,QAAU,UAE/DjpP,EAAOg3D,MAAQ+xF,EAAiBo1R,EAAWl1L,EAAW,QAAU,UAEpEjpP,EAAOmoJ,OAASg2R,EAAWl1L,EAAW,SAAW,SAAW,GAEhEikM,qBAAsB,SAASnxX,EAAUoxX,GACrC,IAAIjva,EAAI5wB,KAAKuxb,MAAM3ga,EACf4qC,EAAIx7D,KAAKuxb,MAAM/1X,EACfyhT,EAAW,IACXC,EAAW,EACXriN,EAAS,EAEb+gJ,gBAAMntO,EAAS5sD,OADH7hB,KAAKgwb,QACc,SAASxra,EAAGhd,GACvC,IAAI+hE,EAAS/hE,EAAQm4T,QAAUn4T,EAAQm4T,QAAQ,CAC3C/uS,EAAGA,EAAIppB,EAAQkhO,YACfltK,EAAGA,EAAIh0D,EAAQkhO,cACdm3N,OACL,IAAWt2X,EAAO/uD,MAAQ0iW,EAAWjqF,IAAKiqF,EAAU3zS,EAAO/uD,WAC3D,MAAkBkvD,MAAQuzS,EAAWjqF,IAAKiqF,EAAU1zS,EAAOG,MAC3DH,EAAOsxF,OAAS,IAAMA,EAASo4H,IAAKp4H,EAAQtxF,EAAOsxF,WAEhD,CACHoiN,SAAUA,EACVC,SAAUA,EACVriN,OAAQA,IAGhB62R,iBAAkB,SAASjjX,EAAUoxX,GACjC,IAEIjgI,EACAz1P,EAHAo2X,EAAevgc,KAAK4/b,qBAAqBnxX,EAAUoxX,GACnD5oT,EAAOj3I,KAAKuxb,MAGZt6S,EAAK0kH,UAILxxL,IAHAy1P,EAAOk1iB,IAAkB902B,KAAK2rZ,WAAY,CACtC/rV,MAAO2gY,EAAarjF,SAAWqjF,EAAatjF,YAEjC3hT,KAAOskQ,EAAKtoP,OAAS,GAAKipX,EAAatjF,SAAWsjF,EAAarjF,UAAY,EAC1FjmO,EAAKyoT,WAAa9/H,EAAKvoP,OAASkpX,EAAa1lS,OAC7C5jB,EAAK0oT,SAAW//H,EAAKrkQ,IAAMglY,EAAa1lS,OACxC5jB,EAAKrmH,EAAIohQ,GAAO/6I,EAAKrmH,EAAIu5C,KAKzBA,IAHAy1P,EAAOk1iB,IAAkB902B,KAAK2rZ,WAAY,CACtC7rV,OAAQygY,EAAarjF,SAAWqjF,EAAatjF,YAElC1hT,IAAMqkQ,EAAKvoP,QAAU,GAAKkpX,EAAatjF,SAAWsjF,EAAarjF,UAAY,EAC1FjmO,EAAKyoT,WAAa9/H,EAAKtkQ,KAAOilY,EAAa1lS,OAC3C5jB,EAAK0oT,SAAW//H,EAAKtoP,MAAQipX,EAAa1lS,OAC1C5jB,EAAKz7E,EAAIw2N,GAAO/6I,EAAKz7E,EAAI2O,IAE7BnqE,KAAK6qZ,YAAY/C,YAAY7wQ,EAAKyoT,WAAYzoT,EAAK0oT,UACnD3/b,KAAK2rZ,WAAa/rF,GAEtB+xH,kBAAmB,SAASxnX,GACxB,MAAO,CACHv5C,EAAGohQ,GAAOhyR,KAAKuxb,MAAM3ga,EAAIu5C,GACzB3O,EAAGw2N,GAAOhyR,KAAKuxb,MAAM/1X,EAAI2O,KAGjCyiV,2BAA4B,WACxB,IAAI31Q,EAAOj3I,KAAKuxb,MACZ56a,EAAIsgI,EAAK0kH,SAAW37P,KAAK40V,QAAQ90R,OAAS9/D,KAAK40V,QAAQh1R,MAC3DjpD,SAAIsgI,EAAK89tB,YAAcp+1B,EAAIsgI,EAAK89tB,WAC3B,GAALp+1B,GAGJ09X,gBAAiB,WAEb,MAAI,cADWr0Y,KAAKszD,OAAO,aAAe,IACd0Q,YACjB,CACHpE,MAAO,IACPE,OAAQ,KAGL,CACHF,MAAO,IACPE,OAAQ,MAIpBgrV,UAAUzgU,SAAMqgU,yBAGpB,aAA2B81C,EAAS3sK,EAAOmjD,GACvC,IACInzH,EADA+7G,GAAOvgT,QAAO,GAAImhb,GAEtBxpH,SAAUA,GAAW,GACjBnjD,IACA+rC,EAAKtkQ,MAAQ07Q,EAAQ17Q,MAAQ,EAC7BskQ,EAAKtoP,OAAS0/P,EAAQ1/P,OAAS,EAC/BsoP,EAAKrkQ,KAAOy7Q,EAAQz7Q,KAAO,EAC3BqkQ,EAAKvoP,QAAU2/P,EAAQ3/P,QAAU,EAC7Bw8M,EAAMj0N,MAAQ,IACdikJ,GAAQ+7G,EAAKtoP,MAAQsoP,EAAKtkQ,KAAOu4N,EAAMj0N,OAAS,GACrC,IACPggQ,EAAKtkQ,MAAQuoJ,EACb+7G,EAAKtoP,OAASusI,GAGlBgwE,EAAM/zN,OAAS,IACf+jJ,GAAQ+7G,EAAKvoP,OAASuoP,EAAKrkQ,IAAMs4N,EAAM/zN,QAAU,GACtC,IACP8/P,EAAKrkQ,KAAOsoJ,EACZ+7G,EAAKvoP,QAAUwsI,IAIpB+7G,EAEX,IAAIw1H,GAAas/a,GAAcv60B,UAAU2wX,SAASsqC,WAAa,GAC/Ds/a,GAAcv60B,UAAU2wX,SAASgoC,gBAAkBgO,IAAuB1L,IAC1EA,GAAWjkW,SAAW6jxB,IACtB5/a,GAAW5uI,UAAYwujB,IACvB5/a,GAAWw+a,QAAUoB,IACrB5/a,GAAWriH,OAASiiiB,IACpB5/a,GAAW3vI,eAAiBuvjB,IAC5B5/a,GAAW1vI,UAAYsvjB,IACvB5/a,GAAWt8S,SAAWk8tB,IACtBN,GAAcv60B,UAAU2wX,SAAS8kC,eAAiB6kb,IAClDvguB,GAAkB,gBAAiBwguB,ICnQnC,UDoQeA,OErPTO,UAAN,gBAAqC/+yB,GACjCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,aAAcsI,KAAM,gBACjC,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,kCACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,eACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnBinE,gBACA,OAAOjnE,KAAKozD,WAAW,aAEvB6T,cAAUr6D,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BylT,+BACA,OAAOryT,KAAKozD,WAAW,4BAEvBi/P,6BAAyBzlT,GACzB5M,KAAK6yD,WAAW,2BAA4BjmD,GAM5Cwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B21S,aACA,OAAOviT,KAAKozD,WAAW,UAEvBmvP,WAAO31S,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1Bi/Y,eACA,OAAO7rZ,KAAKozD,WAAW,YAEvBy4V,aAASj/Y,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B01S,uBACA,OAAOtiT,KAAKozD,WAAW,oBAEvBkvP,qBAAiB11S,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCwmJ,aACA,OAAOpzJ,KAAKozD,WAAW,UAEvBggG,WAAOxmJ,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1Bm4T,mBACA,OAAO/kU,KAAKozD,WAAW,gBAEvB2xQ,iBAAan4T,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCy4S,qBACA,OAAOrlT,KAAKozD,WAAW,kBAEvBiyP,mBAAez4S,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCq1S,qBACA,OAAOjiT,KAAKozD,WAAW,kBAEvB6uP,mBAAer1S,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BugE,YACA,OAAOntE,KAAKozD,WAAW,SAEvB+Z,UAAMvgE,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB4zJ,WACA,OAAOxgK,KAAKozD,WAAW,QAEvBotG,SAAK5zJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB6mb,wBACA,OAAOzzb,KAAKozD,WAAW,qBAEvBqgY,sBAAkB7mb,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCumb,gBACA,OAAOnzb,KAAKozD,WAAW,aAEvB+/X,cAAUvmb,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BoiI,YACA,OAAOhvI,KAAKozD,WAAW,SAEvB47E,UAAMpiI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB6kI,YACA,OAAOzxI,KAAKozD,WAAW,SAEvBq+E,UAAM7kI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBioS,cACA,OAAO70S,KAAKozD,WAAW,WAEvByhP,YAAQjoS,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB4mb,qBACA,OAAOxzb,KAAKozD,WAAW,kBAEvBogY,mBAAe5mb,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAEtCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIsj1B,IAAc1t2B,EAASoqB,GAEtChoB,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,YAAav8I,GAEnCu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,aAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBqo2B,SAAuBxu2B,UAAO,SAAwCP,GAAK,OAAO,IAAKA,GAAK+u2B,GAAwBtu2B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAClaqh2B,EAAuBnp0B,UAAiCnlC,MAAqB,CAAE8E,KAAMwp2B,EAAwBjv1B,UAAW,CAAC,CAAC,oBAAqBkP,OAAQ,CAAE+xC,UAAW,YAAaorP,yBAA0B,2BAA4BjqS,SAAU,WAAY+4E,YAAa,cAAeohN,OAAQ,SAAUspG,SAAU,WAAYvpG,iBAAkB,mBAAoBlvJ,OAAQ,SAAU2xK,aAAc,eAAgB1f,eAAgB,iBAAkBpD,eAAgB,iBAAkBx9O,WAAY,aAAc0I,MAAO,QAASqzF,KAAM,OAAQizR,kBAAmB,oBAAqBN,UAAW,YAAankT,MAAO,QAASyC,MAAO,QAASojK,QAAS,UAAWjoS,MAAO,QAAS4mb,eAAgB,kBAAoBn1S,QAAS,CAAE3pD,YAAa,cAAes7S,QAAS,UAAW38C,WAAY,aAAcD,YAAa,cAAeE,aAAc,eAAgBw8C,mBAAoB,qBAAsBt7S,cAAe,gBAAiBC,gBAAiB,kBAAmBozQ,gBAAiB,kBAAmBD,eAAgB,iBAAkBi+F,gBAAiB,kBAAmB4qC,+BAAgC,iCAAkCv9T,eAAgB,iBAAkBC,kBAAmB,oBAAqBgzR,aAAc,eAAgBC,eAAgB,iBAAkBE,uBAAwB,yBAA0BC,aAAc,eAAgBG,mBAAoB,qBAAsByua,qBAAsB,uBAAwBxua,qBAAsB,uBAAwB5yR,iBAAkB,mBAAoBqhsB,YAAa,cAAetua,WAAY,aAAcuua,wBAAyB,0BAA2BC,gBAAiB,kBAAmBtua,YAAa,cAAeC,YAAa,cAAeC,cAAe,gBAAiBnyS,YAAa,cAAewgtB,qBAAsB,wBAA0Btw1B,SAAU,CAACte,MAAsB,CACp0D2rD,GACAxC,GACAklF,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAyC4F,EAAIv9C,KAAU7S,OAAQ,CAAC,2CA9R5J2w2B,MAwZAO,UAAN,SAEmBA,SAAoB/u2B,UAAO,SAAqCP,GAAK,OAAO,IAAKA,GAAKsv2B,IACtFA,EAAoBvg2B,UAAiCtO,MAAoB,CAAE8E,KAAM+p2B,IACjFA,EAAoBtg2B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC5F8/H,GACAue,GACAwE,GACAqF,GACAtH,GACA4H,GACAiE,GACAhjB,GACAwiB,GACAhb,GACA6rB,GACAxN,GACA1I,GACAtE,GACAuH,GACAqQ,GACA1G,GACAsC,GACAO,GACAiE,GACAzE,GACA6F,GACA7xB,GACAopB,GACAwJ,GACA33G,GACA1H,IACD0iF,GACHue,GACAwE,GACAqF,GACAtH,GACA4H,GACAiE,GACAhjB,GACAwiB,GACAhb,GACA6rB,GACAxN,GACA1I,GACAtE,GACAuH,GACAqQ,GACA1G,GACAsC,GACAO,GACAiE,GACAzE,GACA6F,GACA7xB,GACAopB,GACAwJ,GACAr/G,MAzDFijzB,MCvZN,IACIC,IAAuB,yBAG3BxoS,GAAkB,UAAW,UAAWlB,WAAsB,CAC1Dj2e,MAAO,WACH,IAAIppE,EAAO1sB,KAAK44P,MAChB54P,KAAK012B,gBAAkB112B,KAAK44P,MAAMtlM,OAAO,WACzCtzD,KAAK212B,aAAc,EACnB,IAAI7u1B,EAAS9mB,KAAK012B,gBAAkB,0EAA4E,mCAChH112B,KAAKulsB,UAAY74qB,EAAKisE,iBAAiBjsE,EAAKsxP,YAAYn0E,UAAW20f,MAAUn/qB,MAAO,CAChF7Q,UAAWke,EACXshI,gBAAiB,KACjBhH,iBAAiB,EACjBlgI,OAAQA,EACRoN,UAAWxH,EAAKyuC,WAChB6nG,cAAet2I,EAAK4mC,OAAO,sBAAwB,OAAS,WAC5Dh3C,OAAQ,IAAIuF,OAAO4z1B,KACnBxysB,aAAcjjK,KAAK412B,cACnBrysB,YAAavjK,KAAK8kN,kBAAkB77J,KAAKjpD,MACzCojK,aAAcpjK,KAAK612B,mBAAmB5szB,KAAKjpD,MAC3CyjK,UAAWzjK,KAAK812B,gBAAgB7szB,KAAKjpD,OACtC0sB,EAAK4mC,OAAO,mBAEnBo5gB,YAAa,WACT1skB,KAAKulsB,UAAU9vqB,UAEnBmg1B,cAAe,SAAS5/1B,GACpB,IAAItD,KAAS0oD,MAAEplD,EAAEw3G,aAAanjC,QAAQz8E,SA1BZ,iCA0BkDA,SAzB5D,kBA0BhBmhO,gBAASr8N,GAAQizD,SAAS3vD,EAAEw3G,cACrB96G,GAEXoyM,kBAAmB,SAAS9uM,GACpBhW,KAAK212B,cACL3/1B,EAAEqoD,QAAS,IAInBw3yB,mBAAoB,SAAS7/1B,IACrBhW,KAAK012B,iBAAoB112B,KAAK+12B,YAAY//1B,EAAE00H,UAAW10H,EAAE20H,WACzD30H,EAAEqoD,QAAS,IAInB03yB,YAAa,SAASrruB,EAAWC,GAC7B,IAAIqruB,EAAYh22B,KAAK44P,MAAMgrB,0BAA0Bl5I,GAErD,OADY1qI,KAAK44P,MAAMgrB,0BAA0Bj5I,GACpC59H,SAAS/I,IAAI,KAAOgy2B,EAAUjp2B,SAAS/I,IAAI,IAE5D8x2B,gBAAiB,SAAS9/1B,GACtB,IAAI63f,EAAiB7tgB,KAAK44P,MAAMgrB,0BAA0B5tQ,EAAE20H,SAC5D3qI,KAAK44P,MAAMtuH,aAAYlvE,QAAEplD,EAAEw3G,aAAcqgZ,IAE7C0+D,SAAU,SAASxojB,GACf,IAAI6gM,GAAUxpJ,QAAE,SAASxtD,SAAS6n2B,KAClChnzB,QAAgBm2J,EAAS,gBAAiB5uM,IACtChW,KAAK212B,aAAe9kyB,GAAa76D,KAErCy4C,QAAgBm2J,EAAS,SAAU,CAC/Bh6J,QAAS,IACV50C,IACCA,EAAEqoD,QAAS,EACXr+D,KAAK212B,aAAc,IAEvB5x1B,EAAOgmE,WAAWn8E,SAhEW,oCAgE8Bg8E,OAAOg7H,OC3E1E,UAAekmE,OCUTmrlB,SAAN,gBAA8B//yB,GAC1Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,kBAAmBsI,KAAM,qBACtC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,wBAAyBsI,KAAM,2BAC5C,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCk2Q,wBACA,OAAO9iR,KAAKozD,WAAW,qBAEvB0vN,sBAAkBl2Q,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCqhQ,oBACA,OAAOjuQ,KAAKozD,WAAW,iBAEvB66M,kBAAcrhQ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC4vQ,wBACA,OAAOx8Q,KAAKozD,WAAW,qBAEvBopN,sBAAkB5vQ,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B64G,kBACA,OAAOzlH,KAAKozD,WAAW,eAEvBqyD,gBAAY74G,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC2tN,cACA,OAAOv6N,KAAKozD,WAAW,WAEvBmnK,YAAQ3tN,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B6vQ,oBACA,OAAOz8Q,KAAKozD,WAAW,iBAEvBqpN,kBAAc7vQ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC8vQ,sBACA,OAAO18Q,KAAKozD,WAAW,mBAEvBspN,oBAAgB9vQ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCm2Q,qBACA,OAAO/iR,KAAKozD,WAAW,kBAEvB2vN,mBAAen2Q,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCo2Q,mBACA,OAAOhjR,KAAKozD,WAAW,gBAEvB4vN,iBAAap2Q,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCo4G,sBACA,OAAOhlH,KAAKozD,WAAW,mBAEvB4xD,oBAAgBp4G,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCynD,YACA,OAAOr0D,KAAKozD,WAAW,SAEvBiB,UAAMznD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBg4G,mBACA,OAAO5kH,KAAKozD,WAAW,gBAEvBwxD,iBAAah4G,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCytH,cACA,OAAOr6H,KAAKozD,WAAW,WAEvBinE,YAAQztH,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3Bg2Q,gBACA,OAAO5iR,KAAKozD,WAAW,aAEvBwvN,cAAUh2Q,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bi2Q,eACA,OAAO7iR,KAAKozD,WAAW,YAEvByvN,aAASj2Q,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5ByvQ,qBACA,OAAOr8Q,KAAKozD,WAAW,kBAEvBipN,mBAAezvQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCu4G,iBACA,OAAOnlH,KAAKozD,WAAW,cAEvB+xD,eAAWv4G,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BqvQ,sBACA,OAAOj8Q,KAAKozD,WAAW,mBAEvB6oN,oBAAgBrvQ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCwvQ,mBACA,OAAOp8Q,KAAKozD,WAAW,gBAEvBgpN,iBAAaxvQ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCwrQ,qBACA,OAAOp4Q,KAAKozD,WAAW,kBAEvBglN,mBAAexrQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCurQ,sBACA,OAAOn4Q,KAAKozD,WAAW,mBAEvB+kN,oBAAgBvrQ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCmvQ,yBACA,OAAO/7Q,KAAKozD,WAAW,sBAEvB2oN,uBAAmBnvQ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCyrQ,qBACA,OAAOr4Q,KAAKozD,WAAW,kBAEvBilN,mBAAezrQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCi+H,yBACA,OAAO7qI,KAAKozD,WAAW,sBAEvBy3E,uBAAmBj+H,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bo4J,sBACA,OAAOhlK,KAAKozD,WAAW,mBAEvB4xG,oBAAgBp4J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCq4J,oBACA,OAAOjlK,KAAKozD,WAAW,iBAEvB6xG,kBAAcr4J,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCmqJ,uBACA,OAAO/2J,KAAKozD,WAAW,oBAEvB2jG,qBAAiBnqJ,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCy3Q,0BACA,OAAOrkR,KAAKozD,WAAW,uBAEvBixN,wBAAoBz3Q,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvCw3Q,oBACA,OAAOpkR,KAAKozD,WAAW,iBAEvBgxN,kBAAcx3Q,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCqoG,iBACA,OAAOj1G,KAAKozD,WAAW,cAEvB6hD,eAAWroG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BysJ,iBACA,OAAOr5J,KAAKozD,WAAW,cAEvBimG,eAAWzsJ,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B0sJ,oBACA,OAAOt5J,KAAKozD,WAAW,iBAEvBkmG,kBAAc1sJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCioG,kBACA,OAAO70G,KAAKozD,WAAW,eAEvByhD,gBAAYjoG,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bk7J,oBACA,OAAO9nK,KAAKozD,WAAW,iBAEvB00G,kBAAcl7J,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC81Q,oBACA,OAAO1iR,KAAKozD,WAAW,iBAEvBsvN,kBAAc91Q,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCy4H,oBACA,OAAOrlI,KAAKozD,WAAW,iBAEvBiyE,kBAAcz4H,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC0qH,uBACA,OAAOt3H,KAAKozD,WAAW,oBAEvBkkE,qBAAiB1qH,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCyqH,oBACA,OAAOr3H,KAAKozD,WAAW,iBAEvBikE,kBAAczqH,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCu4H,oBACA,OAAOnlI,KAAKozD,WAAW,iBAEvB+xE,kBAAcv4H,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCs4J,oBACA,OAAOllK,KAAKozD,WAAW,iBAEvB8xG,kBAAct4J,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjC41Q,4BACA,OAAOxiR,KAAKozD,WAAW,yBAEvBovN,0BAAsB51Q,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BovQ,yBACA,OAAOh8Q,KAAKozD,WAAW,sBAEvB4oN,uBAAmBpvQ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAEzBm2I,oBACA,OAAO/iJ,KAAKozD,WAAW,SAEvB2vF,kBAAcn2I,GACd5M,KAAKm0D,YAAY,QAASvnD,GAE1Bsp2B,wBACA,OAAOl22B,KAAKozD,WAAW,aAEvB8izB,sBAAkBtp2B,GAClB5M,KAAKm0D,YAAY,YAAavnD,GAElCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIuk1B,IAAO3u2B,EAASoqB,GAE/BhoB,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,QAASv8I,GAC3Bj2B,KAAKwyK,aAAa,YAAav8I,GAC/Bj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,mBAAoBv8I,GACtCj2B,KAAKwyK,aAAa,gBAAiBv8I,GAEvCu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKsyK,KAAKz3G,QAAQ,aAClB76D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKsyK,KAAKz3G,QAAQ,iBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBqp2B,SAAgBxv2B,UAAO,SAAiCP,GAAK,OAAO,IAAKA,GAAK+v2B,GAAiBtv2B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAC7Yqi2B,EAAgBnq0B,UAAiCnlC,MAAqB,CAAE8E,KAAMwq2B,EAAiBjw1B,UAAW,CAAC,CAAC,YAAak4H,eAAgB,SAAwCxpF,EAAIv9C,EAAKgnI,GAGvM,GAH4N,EAALzpF,IACrN/tD,MAAkBw3I,EAAU6E,GAAkB,GAC9Cr8I,MAAkBw3I,EAAUsgB,IAAsB,IAC3C,EAAL/pG,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI4rI,cAAgB3E,GACjEz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI++1B,kBAAoB93tB,KACpElpH,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsBo6K,kBAAmB,oBAAqB7U,cAAe,gBAAiBuO,kBAAmB,oBAAqBhgK,WAAY,aAAcp0F,SAAU,WAAYq9F,YAAa,cAAetkB,YAAa,cAAe0H,kBAAmB,oBAAqB0xH,QAAS,UAAWkiD,cAAe,gBAAiB38M,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB8zK,gBAAiB,kBAAmBqG,eAAgB,iBAAkBC,aAAc,eAAgBh+J,gBAAiB,kBAAmB3wD,MAAO,QAASuwD,aAAc,eAAgByV,QAAS,UAAWuoJ,UAAW,YAAaC,SAAU,WAAYxG,eAAgB,iBAAkBl3J,WAAY,aAAc82J,gBAAiB,kBAAmBG,aAAc,eAAgBhE,eAAgB,iBAAkBD,gBAAiB,kBAAmB4D,mBAAoB,qBAAsB1D,eAAgB,iBAAkBxtI,mBAAoB,qBAAsBpmE,WAAY,aAAcugG,gBAAiB,kBAAmBC,cAAe,gBAAiBlO,iBAAkB,mBAAoBstH,oBAAqB,sBAAuBD,cAAe,gBAAiBnvK,WAAY,aAAcokD,WAAY,aAAcC,cAAe,gBAAiBzkD,YAAa,cAAeizD,cAAe,gBAAiB46G,cAAe,gBAAiBr9I,cAAe,gBAAiB/N,iBAAkB,mBAAoBD,cAAe,gBAAiB8N,cAAe,gBAAiB+/B,cAAe,gBAAiBs9G,sBAAuB,wBAAyB3zM,SAAU,WAAYmtM,mBAAoB,qBAAsBjtM,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAe6nL,gBAAiB,kBAAmB/nL,cAAe,gBAAiBswB,YAAa,cAAeG,kBAAmB,oBAAqBwgB,cAAe,gBAAiBD,eAAgB,iBAAkBzgB,WAAY,aAAcF,eAAgB,iBAAkB0gB,gBAAiB,kBAAmB+2I,YAAa,cAAe7nL,gBAAiB,kBAAmB0nL,cAAe,gBAAiBD,cAAe,gBAAiBxI,SAAU,WAAY+O,wBAAyB,0BAA2BzrJ,mBAAoB,qBAAsB47C,gBAAiB,kBAAmBC,yBAA0B,2BAA4BujsB,wBAAyB,0BAA2BC,oBAAqB,sBAAuBC,wBAAyB,0BAA2BtjsB,iBAAkB,mBAAoBE,eAAgB,iBAAkB+3V,kBAAmB,oBAAqB93V,kBAAmB,oBAAqBC,wBAAyB,0BAA2Bk7G,cAAe,gBAAiBC,oBAAqB,sBAAuBl+H,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2BijsB,sBAAuB,wBAAyBC,qBAAsB,uBAAwBC,mBAAoB,qBAAsBljsB,sBAAuB,wBAAyBC,YAAa,cAAeC,mBAAoB,qBAAsBE,cAAe,gBAAiB+isB,gBAAiB,kBAAmBC,eAAgB,iBAAkBC,qBAAsB,uBAAwB/isB,iBAAkB,mBAAoBgjsB,sBAAuB,wBAAyBC,mBAAoB,qBAAsBC,qBAAsB,uBAAwBC,sBAAuB,wBAAyBC,yBAA0B,2BAA4BC,qBAAsB,uBAAwBpjsB,yBAA0B,2BAA4BC,iBAAkB,mBAAoBojsB,sBAAuB,wBAAyBC,oBAAqB,sBAAuBC,uBAAwB,yBAA0BC,0BAA2B,4BAA6BC,oBAAqB,sBAAuBlolB,iBAAkB,mBAAoBC,iBAAkB,mBAAoBC,oBAAqB,sBAAuBiolB,kBAAmB,oBAAqBC,oBAAqB,sBAAuBC,oBAAqB,sBAAuBtsW,oBAAqB,sBAAuBl3V,uBAAwB,yBAA0BC,oBAAqB,sBAAuBuyS,oBAAqB,sBAAuBixZ,oBAAqB,sBAAuBC,4BAA6B,8BAA+BxjsB,eAAgB,iBAAkByjsB,yBAA0B,2BAA4BxttB,cAAe,gBAAiBkG,YAAa,eAAiBtrI,SAAU,CAACte,MAAsB,CAC3nJ2rD,GACAxC,GACAklF,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAkC4F,EAAIv9C,KAAUzL,cAAe,IAzrB3Juq2B,MAg9BA6B,UAAN,SAEmBA,SAAarx2B,UAAO,SAA8BP,GAAK,OAAO,IAAKA,GAAK4x2B,IACxEA,EAAa7i2B,UAAiCtO,MAAoB,CAAE8E,KAAMqs2B,IAC1EA,EAAa5i2B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACrFklJ,IACA/O,GACA7G,GACAia,IACA0I,GACApiB,GACAua,GACAtlG,GACA1H,IACD8nG,IACH/O,GACA7G,GACAia,IACA0I,GACApiB,GACAua,GACAhtG,MArBFulzB,MCj9BAC,SAAN,gBAAuC7hzB,GACnCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBt9B,EAAYr/H,EAAe0gD,GACrFt2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBAEZ+zH,EAAWnmF,QAAQ5uD,MAMnBmhG,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBqwJ,mBACA,OAAOj9J,KAAKozD,WAAW,gBAEvB6pG,iBAAarwJ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIom1B,GAAgBxw2B,EAASoqB,GAExChoB,cACI5J,KAAKm4D,kBAGM4/yB,SAAyBtx2B,UAAO,SAA0CP,GAAK,OAAO,IAAKA,GAAK6x2B,GAA0Bpx2B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACzXmk2B,EAAyBjs0B,UAAiCnlC,MAAqB,CAAE8E,KAAMss2B,EAA0B/x1B,UAAW,CAAC,CAAC,sBAAuBkP,OAAQ,CAAEisE,YAAa,cAAerhC,OAAQ,SAAU2oC,KAAM,OAAQw0D,aAAc,eAAgBx4F,WAAY,aAAcsK,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAeF,cAAe,gBAAiBC,gBAAiB,kBAAmB0+E,kBAAmB,oBAAqB9iB,aAAc,eAAgBgjB,WAAY,aAAc4ksB,mBAAoB,qBAAsBlksB,iBAAkB,mBAAoB1pB,cAAe,gBAAiBkG,YAAa,eAAiBtrI,SAAU,CAACte,MAAsB,CAC5tB2rD,GACAxC,GACAklF,KACAruI,OAAgC6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA2C4F,EAAIv9C,KAAUzL,cAAe,IApG3Iqs2B,MAwJAG,UAAN,SAEmBA,SAAsBzx2B,UAAO,SAAuCP,GAAK,OAAO,IAAKA,GAAKgy2B,IAC1FA,EAAsBjj2B,UAAiCtO,MAAoB,CAAE8E,KAAMys2B,IACnFA,EAAsBhj2B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC9F8kD,GACA1H,IACDA,MAPL2lzB,MCvJAC,SAAN,gBAAmCjizB,GAC/Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBt9B,EAAYr/H,EAAe0gD,GACrFt2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEA,KAAM,mBACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,kCACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,uBAEZ+zH,EAAWnmF,QAAQ5uD,MAMnBinE,gBACA,OAAOjnE,KAAKozD,WAAW,aAEvB6T,cAAUr6D,GACV5M,KAAK6yD,WAAW,YAAajmD,GAQ7BmhJ,0BACA,OAAO/tJ,KAAKozD,WAAW,uBAEvB26F,wBAAoBnhJ,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvCsnB,gBACA,OAAOl0B,KAAKozD,WAAW,aAEvBl/B,cAAUtnB,GACV5M,KAAK6yD,WAAW,YAAajmD,GAQ7BqhJ,+BACA,OAAOjuJ,KAAKozD,WAAW,4BAEvB66F,6BAAyBrhJ,GACzB5M,KAAK6yD,WAAW,2BAA4BjmD,GAM5CykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC8nE,YACA,OAAO10E,KAAKozD,WAAW,SAEvBshB,UAAM9nE,GACN5M,KAAK6yD,WAAW,QAASjmD,GAQzBu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B2hJ,yBACA,OAAOvuJ,KAAKozD,WAAW,sBAEvBm7F,uBAAmB3hJ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC4hJ,yBACA,OAAOxuJ,KAAKozD,WAAW,sBAEvBo7F,uBAAmB5hJ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCqwJ,mBACA,OAAOj9J,KAAKozD,WAAW,gBAEvB6pG,iBAAarwJ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC6hJ,gBACA,OAAOzuJ,KAAKozD,WAAW,aAEvBq7F,cAAU7hJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B8hJ,eACA,OAAO1uJ,KAAKozD,WAAW,YAEvBs7F,aAAS9hJ,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B4tB,cACA,OAAOx6B,KAAKozD,WAAW,WAEvB54B,YAAQ5tB,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B+hJ,gBACA,OAAO3uJ,KAAKozD,WAAW,aAEvBu7F,cAAU/hJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bm8I,eACA,OAAO/oJ,KAAKozD,WAAW,YAEvB21F,aAASn8I,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BotB,eACA,OAAOh6B,KAAKozD,WAAW,YAEvBp5B,aAASptB,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B0iJ,cACA,OAAOtvJ,KAAKozD,WAAW,WAEvBk8F,YAAQ1iJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B2iJ,mBACA,OAAOvvJ,KAAKozD,WAAW,gBAEvBm8F,iBAAa3iJ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCswJ,oBACA,OAAOl9J,KAAKozD,WAAW,iBAEvB8pG,kBAActwJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCuwJ,eACA,OAAOn9J,KAAKozD,WAAW,YAEvB+pG,aAASvwJ,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB+iJ,kBACA,OAAO3vJ,KAAKozD,WAAW,eAEvBu8F,gBAAY/iJ,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAEnCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIwm1B,GAAY5w2B,EAASoqB,GAEpChoB,cACI5J,KAAKm4D,kBAGMggzB,SAAqB1x2B,UAAO,SAAsCP,GAAK,OAAO,IAAKA,GAAKiy2B,GAAsBxx2B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAC7Wuk2B,EAAqBrs0B,UAAiCnlC,MAAqB,CAAE8E,KAAM0s2B,EAAsBny1B,UAAW,CAAC,CAAC,kBAAmBkP,OAAQ,CAAE+xC,UAAW,YAAa8mF,oBAAqB,sBAAuB75H,UAAW,YAAa+5H,yBAA0B,2BAA4B5c,eAAgB,iBAAkB38D,MAAO,QAASysB,YAAa,cAAe0H,kBAAmB,oBAAqB/oC,OAAQ,SAAUyuF,mBAAoB,qBAAsBC,mBAAoB,qBAAsB/lD,KAAM,OAAQG,kBAAmB,oBAAqBq0D,aAAc,eAAgBxO,UAAW,YAAaC,SAAU,WAAYl0H,QAAS,UAAWm0H,UAAW,YAAa5F,SAAU,WAAY/uH,SAAU,WAAYyqC,WAAY,aAAc6qF,QAAS,UAAWC,aAAc,eAAgB2N,cAAe,gBAAiBC,SAAU,WAAYpuF,QAAS,UAAWnP,MAAO,QAAS+vF,YAAa,eAAiBtR,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAek6D,SAAU,WAAYC,SAAU,WAAYr6D,cAAe,gBAAiBC,gBAAiB,kBAAmBw6D,UAAW,YAAaC,QAAS,UAAW22S,gBAAiB,kBAAmBilE,0BAA2B,4BAA6ButW,gBAAiB,kBAAmBC,+BAAgC,iCAAkCrlsB,qBAAsB,uBAAwBslsB,YAAa,cAAeplsB,kBAAmB,oBAAqBC,wBAAyB,0BAA2B/iB,aAAc,eAAgB66W,yBAA0B,2BAA4BstW,yBAA0B,2BAA4BnlsB,WAAY,aAAcC,wBAAyB,0BAA2B2ksB,mBAAoB,qBAAsBQ,gBAAiB,kBAAmBC,eAAgB,iBAAkBC,cAAe,gBAAiBC,gBAAiB,kBAAmBC,eAAgB,iBAAkBvotB,eAAgB,iBAAkByjB,iBAAkB,mBAAoBuilB,cAAe,gBAAiBwiH,mBAAoB,qBAAsBjiE,oBAAqB,sBAAuBkiE,eAAgB,iBAAkB1utB,cAAe,gBAAiBkG,YAAa,cAAeyotB,kBAAmB,qBAAuB/z1B,SAAU,CAACte,MAAsB,CACxwE2rD,GACAxC,GACAklF,KACAruI,OAAgC6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAuC4F,EAAIv9C,KAAUzL,cAAe,IArVvIys2B,MAqeAc,UAAN,SAEmBA,SAAkBxy2B,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAK+y2B,IAClFA,EAAkBhk2B,UAAiCtO,MAAoB,CAAE8E,KAAMwt2B,IAC/EA,EAAkB/j2B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC1F8/H,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAxuG,GACA1H,IACD0iF,GACH6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAl2G,MA7BF0mzB,MC1eN,IAAIh32B,MAASk8D,SAgDT+6yB,IAA6B,0BAU7BC,IAA2B,wBAK3BC,IAASzxlB,WAAqB,CAC9Bp/K,eAAgB,WACZ,OAAOlpF,QAAOrf,KAAKm5D,WAAY,CAC3B0qD,MAAO,SAAS7tG,GACZA,EAAEjL,iBACF/K,KAAKwvP,qBAET9/K,MAAO,WACH1vE,KAAKwvP,wBAIjBj7J,mBAAoB,WAChB,IAAIw8P,EAAUnkH,GAdH,IAgBH,UAAY5pK,UAAexB,YAAcv/D,GAAOgqE,eACzChqE,GAAOgqE,eAAe2gK,GAEtB,aAAmBjnK,SAAS1jE,KAAUyjE,SAAUzjE,KAI/D,OAAOod,QAAOrf,KAAKm5D,WAAY,CAC3BmtG,YAAatmD,UAA2B,UACxCq5vB,kBAAmBr5vB,UAA2B,UAC9CokK,eAAe,EACfk1lB,iBAAkB,qBAClBC,sBAAsB,EACtBhpoB,kBAAkB,EAClBhqE,iBAAiB,EACjBizsB,gBAAiBx5vB,UAA2B,SAC5CuwI,gBAAiBvwI,UAA2B,MAC5C+7J,oBAAoB,EACpBC,oBAAoB,EACpB7D,gBAAiBn4J,UAA2B,0BAC5Co4J,eAAgBp4J,UAA2B,yBAC3Cq4J,eAAgBr4J,UAA2B,yBAC3Ci8J,gBAAiBj8J,UAA2B,0BAC5C0zJ,SAAU,KACVwI,cAAe,KACfC,cAAe,KACfC,aAAc,eACdC,eAAgBr8J,UAA2B,yBAC3Cu6G,SAAS,EACTkiD,cAAe,QACfnsC,YAAY,EACZ2f,kBAAkB,EAClBC,oBAAoB,EACpBrnJ,mBAAmB,EACnBsnJ,gBAAiB,CACb1gG,WAAW,EACX7vF,MAAO,WACH,OAAOmxR,EAAQ,UAEnBjxR,OAAQ,WACJ,OAAOixR,EAAQ,WAEnBzhM,SAAS,EACTf,oBAAoB,EACpBv0H,cAAU,EACVitC,UAAW,GACXwqE,MAAO,GACP0N,cAAe,QACfgQ,gBAAiB,KACjBb,YAAY,GAEhBmrtB,kBAAkB,EAClBC,8BAA8B,EAC9BhpnB,wBAAwB,KAGhCt8J,wBACIp0F,KAAKm5D,YACL95C,QAAOrf,KAAKq0F,mBAAoB,CAC5B2yE,iBAAkB,CACd/wE,MAAO,OACPxD,MAAO,uBAInBmC,qBAAsB,WAClB,IAAI44C,EAAY9lH,KAChB,OAAO1nB,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,WACJ,OAAQ6C,IAEZt1C,QAAS,CACLoqP,oBAAoB,IAEzB,CACC33M,OAAQ,SAAS88J,GACb,OAAQn+J,kBAAyB,eAAcA,OAAexB,YAAc,cAAsBC,UAEtG7vC,QAAS,CACL0+M,YAAY,EACZ6f,gBAAiB,CACbrwL,OAAQ,UAGjB,CACCuE,OAAQ,CACJ5C,SAAU,MACVE,OAAO,GAEX/vC,QAAS,CACLu+N,gBAAiB,CACb7hG,YAAY,KAGrB,CACCjqF,OAAQ,CACJ5C,SAAU,MACVG,QAAQ,GAEZhwC,QAAS,CACLu+N,gBAAiB,CACbvwL,MAAO,WACH,MAAO,GAAKrlD,KAAKmvD,OAAI/D,OAAS1jE,OAASyjE,OAAUzjE,MAErD69D,OAAQ,QAEZwwK,YAAY,IAEjB,CACCjsK,OAAQ,WACJ,MAAO,YAAcrB,UAAexB,aAAewB,kBAEvDpxC,QAAS,CACLi3E,mBAAmB,IAExB,CACCxkC,OAAQ,WACJ,OAAO2rE,GAAWxC,IAEtB57G,QAAS,CACL0+M,YAAY,EACZ8zC,eAAe,EACf7zC,kBAAkB,EAClBkpoB,kBAAkB,EAClBC,8BAA8B,EAC9BvpnB,gBAAiB,CACb5hG,oBAAoB,EACpBumG,iCAAiC,EACjCl1L,MAAO,IAAMkvL,GAAgB9uP,KAAKm7D,YAClC2E,OAAQ,WACJ,OAAO9/D,KAAK2xtB,mBACd1oqB,KAAKjpD,MACPyvJ,WAAW,EACXH,SAAS,QAKzBx5D,MAAO,WACH91F,KAAKm5D,WACLn5D,KAAKyvN,gBAETA,eACIzvN,KAAKm5D,WACLn5D,KAAK252B,oBACL352B,KAAK452B,yBACL552B,KAAK652B,0BAETD,uBAAwB,WACpB552B,KAAKu+Q,mBAAqBv+Q,KAAKo2F,sBAAsB,kBAEzDyjxB,uBAAwB,WACpB752B,KAAKs+Q,mBAAqBt+Q,KAAKo2F,sBAAsB,kBAEzDujxB,kBAAmB,WACf352B,KAAKghQ,cAAgBhhQ,KAAKo2F,sBAAsB,aAEpD8nL,eAAgB,SAASloQ,GACrBhW,KAAKghQ,cAAchrP,IAEvB8j2B,oBAAqB,SAAS9j2B,GAC1BhW,KAAKs+Q,mBAAmBtoQ,IAE5B+j2B,oBAAqB,SAAS/j2B,GAC1BhW,KAAKu+Q,mBAAmBvoQ,IAE5BivF,eAAgB,WACZjlG,KAAKm5D,WACLn5D,KAAK+jG,iBAAiB5K,oBAAoB,CACtC5kE,MAAO,IAAIk4D,GAAqB,SAChCglD,MAAO,IAAIhlD,GAAqB,YAGxC8V,YAAa,WACTviG,KAAKm7D,WAAWvtD,SAjNL,aAiN4Bs2F,YAxMrB,yBAwMsDlkG,KAAKszD,OAAO,eACpFtzD,KAAKm5D,YAET4kL,cAAe,WACX,OAAO/9O,KAAKm7D,WAAW11B,KAAK,IAAMyz0B,MAEtCvyvB,mBAAoB,WAChB,OAAOtnG,QAAOrf,KAAKm5D,WAAY,CAC3B05C,UAAU,KAGlBnI,wBAAyBp+C,MACzB28N,mBAAoB,WAChB,MAAO,IAEX9qC,aAAc,WACVn+O,KAAKg62B,WAAU5+yB,MAAE,SAASxtD,SA9NT,mBA+NjB5N,KAAK8/O,sBAAsB9/O,KAAKszD,OAAO,cACvC,IAAIy4K,GAAS3wK,QAAE,SAASxtD,SA/NP,mBAgOjB5N,KAAKi62B,gBAAiB7+yB,QAAE,SAASxtD,SAASsr2B,KAA4BtvxB,OAAO5pF,KAAKg62B,SAASpwxB,OAAOmiJ,GAAQlhK,SAAS7qE,KAAKm7D,aAE5H2kL,sBAAsBh9I,GAClB9iG,KAAKg62B,QAAQ5qyB,KAAK0zB,IAEtBo8I,qBACI,OAAOl/O,KAAKi62B,gBAEhBvonB,aAAc,WACV,IAAI1B,EAAgBhwP,KAAKmlG,qBAAqB,iBAC9C,GAAI6qJ,GAAiBhwP,KAAKszD,OAAO,iBAC7BtzD,KAAKk62B,qBAAqBlqnB,OAD9B,CAIA,IAAI3hI,EAAeruH,KAAKszD,OAAO,gBAC/BtzD,KAAK+vkB,aAAa1hd,GAClB,IAAI8rvB,GAAgBn62B,KAAKszD,OAAO,gBAChCtzD,KAAKm7D,WAAW+oC,YA3OC,kBA2O+Bi2wB,GAAcj2wB,YAxOzC,sBAwO6Ei2wB,KAEtGj5nB,mBAAoB,WAChB,OAAOlhP,KAAKg62B,SAEhBv5nB,mBAAoB,SAAShqO,GACrBzW,KAAK89O,SAASr5O,OACdzE,KAAKm5D,SAAS1iD,GAEdzW,KAAK+vkB,aAAat5jB,IAG1Bs5jB,aAAc,SAASt5jB,GAGnB,GAFAA,KAAOiH,OAAUjH,IAAS5D,OAAO4D,GACjCzW,KAAKg62B,QAAQh3xB,QACTvsE,EACAzW,KAAKg62B,QAAQvj2B,KAAKA,OACf,CACH,IAAI6mG,GAAeliD,QAAE,SAASgU,KAAK,CAC/B,sBAAuBpvE,KAAKszD,OAAO,iBAEvCtzD,KAAKg62B,QAAQpwxB,OAAO0zB,GACpBA,EAAa1vG,SAAS,oBAG9Bss2B,qBAAsB,SAASprzB,GAC3B9uD,KAAKg62B,QAAQh3xB,QACb,IAAI52E,EAAOpM,KAAK4xP,mBAChB9iM,EAASmD,OAAO,CACZt7B,MAAOvqB,EACP8nB,UAAWqlD,GAAiBv5E,KAAKg62B,YAGzCponB,iBAAkB,WACd,OAAO5xP,KAAKszD,OAAO,iBAEvB0gM,qBAAsB,WAClBh0P,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WACtBC,KAAKszD,OAAO,0BACRtzD,KAAKszD,OAAO,kBAAoBtzD,KAAKo62B,WAAW9mzB,OAAO,WACvDtzD,KAAKo62B,WAAW9mzB,OAAO,QAAS,IAChCtzD,KAAK0sR,mBAET1sR,KAAK44P,OAAS54P,KAAK44P,MAAMtlM,OAAO,iBAAkB,OAElDtzD,KAAKszD,OAAO,+BAAiCtzD,KAAKszD,OAAO,kCACzDtzD,KAAKmxO,OAAO79K,OAAO,YAAYl3C,MAAKg/C,MAAEn5D,MAG9CgyP,mBAAoB,WAChB,IAAIomnB,EAA8Br62B,KAAKszD,OAAO,iCAC7BtzD,KAAKszD,OAAO,+BACV+mzB,GACfr62B,KAAKs62B,oBAETt62B,KAAKm5D,YAET62gB,sBAAuB,WACnB,IAAI1qc,EAAgBtlI,KAAK44P,MAAMtlM,OAAO,iBAClCinzB,EAAYv62B,KAAK44P,MAAMtlM,OAAO,SAC9BuzE,EAAa0zuB,EAAU912B,OACvB,QACIzE,KAAK44P,MAAMtlM,OAAO,WAClBtzD,KAAK44P,MAAM+iB,aAAa,CACpBpnP,MAAOsyG,EAAa,EACpBjqH,KAAM291B,EAAU1zuB,EAAa,GAAGxyE,MAAM5vD,OAAS,IAGnDzE,KAAK44P,MAAM+iB,aAAa90I,EAAa,GAEzC7mI,KAAK44P,MAAM+iB,aAAar2I,KAGhCk1uB,sBAAuB,SAASC,GAC5B,OAAOA,EAAiBtwyB,SAAS5O,KAAMH,QAAEp7D,KAAKwH,WAAW2iE,SAAS5O,KAEtEm/yB,oBAAqB,CAACno2B,EAAO3M,IAAU,EAAI2M,GAASA,EAAQ3M,EAAQ,EACpE+02B,gBAAiB,WACb,IAAIC,EAAiB562B,KAAK+pR,oBAAoBtlR,OAC9C,GAAI,MAGJ,KAAIg22B,KAAmBr/yB,MAAEp7D,KAAK44P,MAAMpxP,WAAWi+B,KAAK,IAAM0z0B,KACtD7zuB,EAAgBtlI,KAAK+pR,oBAAoBx3Q,MAAMko2B,GAC/CI,MAAuBn1yB,OAAU+0yB,IAAoB/0yB,SAAU1lE,KAAKwH,YAAc,EAClFsz2B,KAAe1/yB,MAAEp7D,KAAK44P,MAAMpxP,WAAW2iE,SAAS5O,IAChDw/yB,EAAuB/62B,KAAKszD,OAAO,0BACnCiuhB,EAAc,mBAAsBw5R,EAAuBA,IAAyBA,EACpFxuyB,GAAe7G,SAAUzjE,IACzBkqE,EAAY,EAChB,IAAI,MAAsB,CACtB,GAAInsE,KAAK062B,oBAAoBp1uB,EAAes1uB,GAAiB,CACzD562B,KAAKgwkB,wBACL,IAAIu8B,GAAmBhrB,GAAc77gB,SAAU+0yB,IAAqB,EAAIz62B,KAAKw62B,sBAAsBC,GACnGz62B,KAAK44P,MAAMtgC,SAASt4N,KAAK44P,MAAM5sL,YAAcgvyB,EAAmCzuQ,GAE5EuuQ,GADJ3uyB,EAAY0uyB,EAAsB762B,KAAKw62B,sBAAsBC,KAC7Bn1uB,IAAkBs1uB,EAAiB,IAC/D562B,KAAK44P,MAAMtgC,SAASt4N,KAAK44P,MAAM5sL,YAAchsE,KAAKw62B,sBAAsBC,GAAoB,GAC5FtuyB,EAAY0uyB,EAAsB762B,KAAKw62B,sBAAsBC,SAE1Dn1uB,GAAiB,GACxBtlI,KAAK44P,MAAMtgC,SAAS,GACpBnsJ,EAAY0uyB,EAAsB762B,KAAKw62B,sBAAsBC,IACtDn1uB,GAAiBs1uB,EAAiB,IACzC562B,KAAKgwkB,wBACL7jgB,EAAY0uyB,EAAsB762B,KAAKw62B,sBAAsBC,IAE7DK,EAAe3uyB,IACfnsE,KAAKgwkB,wBACL7jgB,EAAY0uyB,EAhVO,GAmV3B,IAAIvtO,EAAe/rD,EAAcp1gB,GAAYzG,SAAU1lE,KAAKwH,WAC5D,OAAI+kE,EAAeuuyB,EAAextO,IAC9BttoB,KAAK44P,MAAMtgC,SAASt4N,KAAK44P,MAAM5sL,YAAc6uyB,EAAsBvtO,GACnEnhkB,EAAYo1gB,GAAc77gB,SAAU1lE,KAAKwH,WAtVlB,GAwVpB2kE,IAEXmuyB,kBAAmB,WACf,GAAKt62B,KAAKszD,OAAO,sBAGHtzD,KAAKmxO,OAAO3lB,WAAW71J,SArWJ,+BAyWjC,KAAIslzB,GAAqB7/yB,QAAEp7D,KAAKmxO,OAAOxgC,YAAY5jM,SAC/Cmu2B,EAAcl72B,KAAK262B,kBACnB3g1B,EAAWkhC,GAAO+/yB,GACtB7+yB,GAAK6+yB,EAAoB,CACrB1/yB,IAAKvhC,EAASuhC,IAAM2/yB,MAG5BC,yBAA0B,WACtB,IAAIz4tB,EAAS1iJ,KAAK44P,MAAMtsI,qBAAqBnwF,WACzCk4B,EAAQ,GACZquF,SAAO55E,KAAK,CAACtkD,EAAG+P,KACZ8/B,EAAMhrD,MAAK+xD,QAAE7mC,GAAOkR,KAAK,yBAA+B,KACrC21B,QAAE7mC,GAAOkR,KAAK,iBACpBqjC,KAAK,CAACtkD,EAAG5H,KAClBy3C,EAAMhrD,KAAKuT,UAGZw+C,MAAE/G,IAEb+mzB,qBAAsB,SAAS7gpB,GAC3B,IAAIggpB,EAAYhgpB,EAAUv6N,KAAKm72B,2BAA6Bn72B,KAAK+pR,oBAC7D0wlB,GAAmBr/yB,QAAE,IAAM+9yB,KAC3B7zuB,EAAgBi1uB,EAAUho2B,MAAMko2B,GAChCnjD,EAAa,EAEjB,OAAI,IAAMijD,EAAU912B,OAChB6yzB,GA5XuB,EA6XhBijD,EAAU912B,OA9XU,EA+X3B812B,EAAUzxyB,KAAK,CAACtkD,EAAG5H,KACf06yB,MAAc1rvB,OAAehvD,MAG7B0oH,GAAiB,EACEi1uB,EAAUjz2B,MAAM,EApYZ,GAqYhBtH,KAAK062B,oBAAoBp1uB,EAAei1uB,EAAU912B,QACtC812B,EAAUjz2B,MAAMg+H,EAAgB,EAAGA,EAAgB,GAEnDi1uB,EAAUjz2B,MAAMiz2B,EAAU912B,OAxYtB,EAwYiE812B,EAAU912B,SAErFqkE,KAAK,CAACtkD,EAAG5H,KACtB06yB,MAAc1rvB,OAAehvD,KAG9B06yB,GAAc/8lB,EA7YM,EA6YmC,KAElEo3f,gBAAiB,WACb,IAAIjoc,EACJ,OAAI,QAAUA,EAAc1pR,KAAK44P,aAAU,OAA0B8wB,EAAY7gK,eAAepkH,OACrFzE,KAAKo72B,qBAAqBp72B,KAAKszD,OAAO,aAAetzD,KAAKq72B,iBAAkBzvyB,SAAe5rE,KAAKq72B,iBAAmB,IAAMr72B,KAAKmxO,OAAO/K,UAAWx6J,SAAe5rE,KAAKmxO,OAAO/K,UAAY,IAAMpmO,KAAKmxO,OAAOpN,SAAUn4J,SAAe5rE,KAAKmxO,OAAOpN,SAAW,GAEzP,QAGf0wB,iBAAkBnoM,MAClBskL,aAAc,WACN5wO,KAAKszD,OAAO,gBAAkBtzD,KAAKszD,OAAO,8BAC1CtzD,KAASszD,OAAO,gCACZtzD,KAAKm5D,YAELn5D,KAAKs72B,iBACLt72B,KAAKs0P,0BAGTt0P,KAAKm5D,WAETn5D,KAAK6wO,QAAQjjO,SA/aI,mBAgbjB5N,KAAKmxO,OAAO3lB,WAAW59M,SA/aE,4BAib7B0t2B,eAAgB,WACZt72B,KAAKmxO,OAASnxO,KAAK24F,iBAAiB34F,KAAK6wO,QAASnD,MAASruN,MAAOrf,KAAK+zP,eAAgB/zP,KAAK2vF,SAAS8D,MAAM,mBAAoB,CAC3Ho8D,UAAW,KACXD,UAAW,KACX5tJ,OAAQhC,KAAKm7D,WACbmzF,YAAY,EACZgB,SAAS,EACTd,oBAAoB,EACpBm9D,qBAAqB,EACrB/rJ,MAAO5/D,KAAK+0F,sBAAsB,yBAA2B,WACzD,OAAOppB,SAAc3rE,KAAKm7D,aAC5BlS,KAAKjpD,MAAQA,KAAK+zP,eAAen0L,SAEvC5/D,KAAKmxO,OAAOzP,kBAAkBtyJ,KAAK,OAAQ,UAC3CpvE,KAAKmxO,OAAOvnL,GAAG,CACXovK,QAASh5N,KAAKg0P,qBAAqB/qM,KAAKjpD,MACxCm8F,MAAOn8F,KAAKi0P,mBAAmBhrM,KAAKjpD,MACpCo8F,OAAQp8F,KAAKk0P,oBAAoBjrM,KAAKjpD,MACtC+8M,OAAQ/8M,KAAKm0P,oBAAoBlrM,KAAKjpD,MACtCo0P,aAAcp0P,KAAKq0P,qBAAqBprM,KAAKjpD,QAE7CA,KAAKszD,OAAO,iCACZtzD,KAAKmxO,OAAOnF,QAAQnrO,SAExBb,KAAKu0P,mBAAmBv0P,KAAKmxO,OAAOxgC,YACpC3wM,KAAKq0P,wBAETH,oBAAqB,WACjBl0P,KAAKm5D,WACLn5D,KAAKszD,OAAO,sBAAwBtzD,KAAKq8F,SAE7C83J,oBAAqB,WACjBn0P,KAAKm5D,WACDn5D,KAAKszD,OAAO,iCACZ+I,IAAcjB,QAAEp7D,KAAKmxO,OAAOtnC,WAAW98L,WAG/C6pkB,qBAAsBtqhB,MACtBynM,aAAc,WACV,IAAIrhP,GAAS2M,QAAOrf,KAAKm5D,WAAY,CACjCu2F,aAAc1vJ,KAAKg1P,wBACnBxmG,oBAAoB,EACpBi9D,aAAc,KACdh9D,UAAW,QACXgB,UAAWzvJ,KAAKszD,OAAO,6BACvBm+E,MAAOzxI,KAAKszD,OAAO,yBACnB6rF,cAAen/I,KAAKmlG,qBAAqB,iCACzCgqD,gBAAiBnvJ,KAAKszD,OAAO,mCAC7Bg7F,WAAYtuJ,KAAKszD,OAAO,8BACxBg8F,QAAStvJ,KAAKszD,OAAO,2BACrBi7F,mBAAoBvuJ,KAAKszD,OAAO,uCAAyCtzD,KAAKszD,OAAO,yCAEzF,cAAO5gD,EAAOu0D,iBACPv0D,EAAOsnB,SACVh6B,KAAKszD,OAAO,kCACZ5gD,EAAOsnB,SAAWh6B,KAAKszD,OAAO,oBAAsB,CAChD+X,GAAI,WACJ56C,GAAI,WACJrU,GAAIpc,KAAKwH,WACT,CACA6jE,GAAI,WACJ56C,GAAI,cACJrU,GAAIpc,KAAKwH,WAEbkL,EAAO87I,oBAAqB,MAEhC1lF,OAAK,CAAC,WAAY,YAAa,QAAS,UAAW,CAACtkD,EAAGstE,KACnD,IAAIypxB,EAAmBv72B,KAAKszD,OAAO,mBAAmBzxC,OAAOiwE,SACzD,QACAp/E,EAAOo/E,GAAcypxB,KAGtB7o2B,GAEXsiP,sBAAuB,WACnB,IAAIkB,EAAgB,eAAiBl2P,KAAKszD,OAAO,kBAAoBtzD,KAAKi2P,2BAA6B,GACnGure,EAAexhuB,KAAKy8lB,yBACpB+kI,GACAtre,EAAc7sP,KAAKm4tB,GAEvB,IAAIg6I,EAAcx72B,KAAKy72B,wBACvB,OAAID,GACAtlnB,EAAc7sP,KAAKmy2B,GAEhBx72B,KAAKq2P,sBAAsBH,IAEtCD,yBAA0B,WACtB,MAAO,CAAC,CACJxwB,SAAU,OACV7zM,QAAS,CACLkyB,QAAS9jD,KAAKm2P,oBAAoBltM,KAAKjpD,MACvCyW,KAAMzW,KAAKszD,OAAO,uBAI9BmpiB,uBAAwB,WACpB,OAAOz8lB,KAAKszD,OAAO,oBAAsB,CACrCmyK,SAAU,SACV3hL,QAAS9jD,KAAKo2P,qBAAqBntM,KAAKjpD,MACxC4xB,QAAS,CACLnb,KAAMzW,KAAKszD,OAAO,sBAEtB,MAERmozB,sBAAuB,WACnB,OAAOz72B,KAAKszD,OAAO,mBAAqB,CACpCmyK,SAAU,QACV3hL,QAAS9jD,KAAK072B,YAAYzyzB,KAAKjpD,MAC/B4xB,QAAS,CACLnb,KAAMzW,KAAKszD,OAAO,qBAEtB,MAER6iM,oBAAqB,SAASx9O,GACtBA,GACA3Y,KAAKy3O,sBAAsB9+N,EAAK7N,OAEpC9K,KAAKszD,OAAO,QAAStzD,KAAK+lR,aAAa/lR,KAAK272B,yBAC5C372B,KAAKm5D,YAETi9L,qBAAsB,WAClBp2P,KAAK8pR,mBACL9pR,KAAKm5D,YAET6zN,wBAAyB,WACjBhtR,KAAKszD,OAAO,WACZtzD,KAAK2rR,yBAGb9pL,kBAAmB,WACX7hG,KAAKszD,OAAO,gBAAkBtzD,KAAKszD,OAAO,0BAC1CtzD,KAAKszD,OAAO,yBAAyBqS,SAAS3lE,KAAKm7D,aAEvDn7D,KAAK2rR,yBAET7tC,OAAQ,WACJ,OAAO99O,KAAK472B,aAAe572B,KAAKm5D,YAEpC06L,oBAAqB,WACjB7zP,KAAKm5D,WACLn5D,KAAKskR,iBAETz/B,wBAAyBv4L,MACzBg4N,cAAe,WACX,IAAIirT,EAAkBvvkB,KAAKszD,OAAO,iBAElC,GADAtzD,KAAK672B,mBAAmBtsS,GACpBA,EAAiB,CACjB,IAAIusS,EAAiB972B,KAAKq72B,iBAAkBjgzB,QAAE,SAASxtD,SAzkBjC,4BA0kBlBmu2B,EAAa/72B,KAAK472B,aAAcxgzB,QAAE,SAASxtD,SA3kBjC,oBA2kB+Di9D,SAASixyB,GAClF/sxB,EAAgB/rB,aAEhBg5yB,GAA6B,EAC7BC,EAAiB,CACjBht2B,KAHa8/E,EAAcltB,QAAU,OAAS,SAI9C0kG,iBAAiB,EACjBS,iBAAkBhnK,KAAKszD,OAAO,oBAC9BkyG,UAAW,CACP,aAAc,UAElB9wE,YAAa,IAAMsnxB,GAA6B,EAChDjzwB,UAAW,IAAMizwB,GAA6B,EAC9ChzwB,WAAY,IAAMgzwB,GAA6B,EAC/C/ywB,kBAAmBx6E,GAAQut1B,GAA8Bh82B,KAAK44P,MAAMrsJ,iBAAiB99E,GACrFimI,eAAgB1+I,GAAKhW,KAAKusR,eAAev2Q,IAE7ChW,KAAKo62B,WAAap62B,KAAK24F,iBAAiBojxB,EAAYhunB,GAASkunB,GAC7Dj82B,KAAKk82B,6BACLJ,EAAe7u2B,aAAajN,KAAKuqR,QACjCvqR,KAAKm82B,0BAGb5zlB,0BAEI,GADAvoR,KAAKm5D,WACAn5D,KAAK472B,YAGV,KAAIhrqB,EAAS5wM,KAAK472B,YAAYn20B,KAAK,SACnCzlC,KAAKm5D,SAASy3I,KAElBwrqB,cAAe,WACXp82B,KAAKq72B,iBAAmBr72B,KAAKq72B,gBAAgBx62B,gBACtCb,KAAKq72B,gBACZr72B,KAAK472B,aAAe572B,KAAK472B,YAAY/62B,gBAC9Bb,KAAK472B,mBACL572B,KAAKo62B,YAEhBiC,uBAAwB,SAASrm2B,GAC7B,IAAIquG,GAAejpD,QAAEp7D,KAAK44P,MAAMtlM,OAAO,oBAClC+wD,EAAa5/G,SAGlBuR,EAAEjL,iBACFiL,EAAEhU,OAASqiH,EAAargH,IAAI,GAC5BhE,KAAKy3O,sBAAsBzhO,GAC3BhW,KAAKs82B,gBAAgBtm2B,EAAEsuG,SAAUD,KAErC63vB,2BAA4B,WACxBl82B,KAAKo62B,WAAW9rwB,mBAAmB,QAAStuG,KAAKq82B,uBAAuBpzzB,KAAKjpD,OAC7EA,KAAKo62B,WAAW9rwB,mBAAmB,QAAStuG,KAAKq82B,uBAAuBpzzB,KAAKjpD,OAC7EA,KAAKo62B,WAAW9rwB,mBAAmB,MAAOhiD,OAC1CtsD,KAAKo62B,WAAW9rwB,mBAAmB,OAAQhiD,QAE/CuvzB,mBAAoB,SAAStsS,GACrBvvkB,KAAKmxO,QACLnxO,KAAKmxO,OAAO3lB,WAAWtnH,YA5nBH,yBA4nB0Cqre,IAGtE4sS,sBAAuB,WACnB,GAAKn82B,KAAK472B,YAGV,KAAIv9sB,EAAkBr+J,KAAKszD,OAAO,mBAC9BgzG,EAActmK,KAAKszD,OAAO,qBAC1B+qG,GAAmBiI,IAAgBtmD,UAA2B,YAC9DsmD,EAActmD,gBAAiC,6BAAjCA,CAA+Dq+C,IAEjFr+J,KAAKo62B,WAAW9mzB,OAAO,cAAegzG,KAE1Ci2sB,sBAAuBjwzB,MACvBy+N,YAAa,WACT,OAAO1rQ,QAAOrf,KAAKm5D,WAAY,CAC3B0V,SAAU,EACV0rJ,QAASv6N,KAAKszD,OAAO,WACrBmpN,cAAez8Q,KAAKmlG,qBAAqB,iBACzC42K,mBAAoB/7Q,KAAKszD,OAAO,sBAChC0oN,mBAAoBh8Q,KAAKszD,OAAO,sBAChC6kN,gBAAiBn4Q,KAAKszD,OAAO,mBAC7B8kN,eAAgBp4Q,KAAKszD,OAAO,kBAC5B+kN,eAAgBr4Q,KAAKszD,OAAO,kBAC5B2oN,gBAAiBj8Q,KAAKszD,OAAO,mBAC7BogN,SAAU1zQ,KAAKk+Q,eAAej1N,KAAKjpD,MACnCk8Q,cAAel8Q,KAAK852B,oBAAoB7wzB,KAAKjpD,MAC7Cm8Q,cAAen8Q,KAAK+52B,oBAAoB9wzB,KAAKjpD,MAC7Co8Q,aAAcp8Q,KAAKszD,OAAO,gBAC1B+oN,eAAgBr8Q,KAAKszD,OAAO,kBAC5BopN,gBAAiB18Q,KAAKszD,OAAO,iBAC7B0jE,mBAAoBh3H,KAAKw82B,iCAGjCA,4BAA6B,WACzB,OAAOx82B,KAAKszD,OAAO,yBAA2BtzD,KAAK+wkB,wBAAwB9nhB,KAAKjpD,MAAQssD,OAE5Fi/N,yBAA0B,WACtBvrR,KAAKm5D,YAAYp5D,WACjBC,KAAK8pR,oBAET2ylB,yBAA0B,SAAS/22B,GAC/B,IACIg02B,6BAA8BA,GAC9B152B,KAAKszD,SACLk7F,EAAqBxuJ,KAAKmxO,OAAO79K,OAAO,sBACvComzB,GAGD152B,KAAKmxO,OAAO79K,OAAO,sBAAsB,GACzC5tD,IACA1F,KAAK082B,yBAA2B38zB,WAAW,KACvC//C,KAAKmxO,OAAO79K,OAAO,qBAAsBk7F,MAL7C9oJ,KASRukR,gBAAiB,YACRjqR,KAAKszD,OAAO,sBAGjBtzD,KAAKy82B,yBAAyB,KACtBz82B,KAAKszD,OAAO,iBACZtzD,KAAKo62B,WAAW/9wB,QAEhBr8F,KAAK44P,MAAMv8J,WAIvBf,aAAc,WACV,OAAOt7F,KAAKg62B,SAEhBvuwB,4BAA6B,WACzB,OAAOzrG,KAAKg62B,SAEhBpulB,sBAAuB,SAAS51Q,GAC5BhW,KAAKy3O,sBAAsBzhO,EAAElL,OAC7B9K,KAAKs82B,gBAAgBtm2B,EAAEsuG,SAAUtuG,EAAElL,MAAMkzE,gBAE7Cs+xB,gBAAiB,SAASh4vB,EAAUtiH,GAChChC,KAAK44P,MAAMxwI,WAAWpmH,GAClB,mBAAqBsxD,OAAO,mBAC5BtzD,KAAKm2P,uBAGbwlnB,qBAAsB,WAClB,OAAO372B,KAAKszD,OAAO,WAAatzD,KAAK44P,MAAMtlM,OAAO,oBAAoBe,MAAM,GAAKr0D,KAAK44P,MAAMtlM,OAAO,qBAEvGoozB,YAAa,SAAS1l2B,GAClBhW,KAAKy3O,sBAAsBzhO,EAAElL,OAC7B9K,KAAKszD,OAAO,QAAS,MACrBtzD,KAAKszD,OAAO,UAAU,IAE1BshD,aAAc,WACV,OAAO50G,KAAKszD,OAAO,kBAAoBtzD,KAAKo62B,WAAap62B,KAAKo62B,WAAW9mzB,OAAO,SAAW,IAE/FktL,kBAAmB,WACf,OAAOxgP,KAAKm5D,WAAW2a,OAAO,KAC1B9zE,KAAK8pR,sBAGbzrC,mBAAoB,WACZ,SAAWljL,WAAW11B,KAAK,wBAA8BhhC,QAG7DzE,KAAKm5D,YAETsqC,OAAQ,WACJzjG,KAAKi62B,eAAep52B,SACpB09D,aAAav+D,KAAK082B,0BAClB182B,KAAK082B,yBAA2B,KAChC182B,KAAK472B,YAAc,KACnB572B,KAAKm5D,YAETo9B,eAAgB,SAAS59E,GACrB,IAAIgk2B,GAEAt52B,KAAMA,EACN6vD,SAAUA,EACVtmD,MAAOA,GACP+L,EACJ,OAAQtV,OACC,aACDrD,KAAKm5D,YAAYp5D,WACjBC,KAAK0xP,eACL,UACC,gBACG1xP,KAAKmxO,SACLnxO,KAAKo82B,gBACLp82B,KAAKskR,iBAET,UACC,oBACDtkR,KAAKm82B,wBACL,UACC,kBACDn82B,KAAKm82B,wBACLn82B,KAAKm5D,YAAYp5D,WACjB,UACC,YACDC,KAAK8/O,sBAAsBlzO,GAC3B,UACC,iBACA,cACD5M,KAAK4jG,cACL,UACC,sBACA,sBACA,mBACD5jG,KAAK2zP,gBAAgB,eAAgB3zP,KAAKg1P,yBAC1C,UACC,iBAoDD,QAEAh1P,KAAKm5D,YAAYp5D,iBApDjB,IACC,gBACDC,KAAK452B,yBACL,UACC,gBACD552B,KAAK652B,yBACL,UACC,yBACA,yBACA,sBACA,qBACA,qBACA,sBACA,qBACA,cACA,gBACD752B,KAAKoqR,eAAe/mR,GACpB,UACC,mBACD,QAAUs52B,EAAmB382B,KAAKo62B,kBAAe,OAAuCuC,EAAiBrpzB,OAAO,mBAAoB1mD,GACpI,UACC,WACD5M,KAAK252B,oBACL,UACC,eACD352B,KAAKoqR,eAAe,eAAgBpqR,KAAKszD,OAAO,iBAChD,UACC,2BACA,+BACD,UACC,kBACD,OAAQJ,OACC,4BACA,yBACDlzD,KAAKu2P,oBAAoB,CACrBlzP,KAAMA,EACN6vD,SAAUA,EACVtmD,MAAO,WAAmB5M,KAAKo3F,cAAc,mBAAmB9H,GAAap8B,IAAatmD,IAE9F5M,KAAK2vF,SAAS8D,MAAM,kBAAmBzzF,KAAKszD,OAAO,oBACnD,cAEAtzD,KAAKm5D,YAAYp5D,WAEzB,UACC,mBACGC,KAAKszD,OAAO,kCACZtzD,KAAKszD,OAAO,gCAA4B,GACxCtzD,KAAK4wO,kBAOrBv0I,MAAO,WACHr8F,KAAKszD,OAAO,UAAYtzD,KAAKiqR,kBAAoBx7N,aAAqBzuD,KAAKs7F,eAAgB,UAE/FtqC,MAAO,WACH,OAAOhxD,KAAKg62B,WAGpB9luB,GAAkB,WAAYkluB,KAC9B,UAAeA,ICr4BTtrlB,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMw31B,IAC9B/32B,OAAO,OAML+32B,SAAN,gBAAgC1mzB,GAC5Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,uBACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC2jP,sBACA,OAAOvwP,KAAKozD,WAAW,mBAEvBm9L,oBAAgB3jP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCkjP,qBACA,OAAO9vP,KAAKozD,WAAW,kBAEvB08L,mBAAeljP,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC4jP,uBACA,OAAOxwP,KAAKozD,WAAW,oBAEvBo9L,qBAAiB5jP,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC2s2B,2BACA,OAAOv52B,KAAKozD,WAAW,wBAEvBmmzB,yBAAqB3s2B,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxC4s2B,sBACA,OAAOx52B,KAAKozD,WAAW,mBAEvBomzB,oBAAgB5s2B,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BykI,qBACA,OAAOrxI,KAAKozD,WAAW,kBAEvBi+E,mBAAezkI,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B64G,kBACA,OAAOzlH,KAAKozD,WAAW,eAEvBqyD,gBAAY74G,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/ByhH,mBACA,OAAOruH,KAAKozD,WAAW,gBAEvBi7D,iBAAazhH,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC6s2B,uBACA,OAAOz52B,KAAKozD,WAAW,oBAEvBqmzB,qBAAiB7s2B,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCujP,sBACA,OAAOnwP,KAAKozD,WAAW,mBAEvB+8L,oBAAgBvjP,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BojP,oBACA,OAAOhwP,KAAKozD,WAAW,iBAEvB48L,kBAAcpjP,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAQrC0hJ,iBACA,OAAOtuJ,KAAKozD,WAAW,cAEvBk7F,eAAW1hJ,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B2tN,cACA,OAAOv6N,KAAKozD,WAAW,WAEvBmnK,YAAQ3tN,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B6vQ,oBACA,OAAOz8Q,KAAKozD,WAAW,iBAEvBqpN,kBAAc7vQ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC44J,gBACA,OAAOxlK,KAAKozD,WAAW,aAEvBoyG,cAAU54J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BynD,YACA,OAAOr0D,KAAKozD,WAAW,SAEvBiB,UAAMznD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBg4G,mBACA,OAAO5kH,KAAKozD,WAAW,gBAEvBwxD,iBAAah4G,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCyrI,YACA,OAAOr4I,KAAKozD,WAAW,SAEvBilF,UAAMzrI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB2pJ,gBACA,OAAOv2J,KAAKozD,WAAW,aAEvBmjG,cAAU3pJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7ByxJ,sBACA,OAAOr+J,KAAKozD,WAAW,mBAEvBirG,oBAAgBzxJ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxByvQ,qBACA,OAAOr8Q,KAAKozD,WAAW,kBAEvBipN,mBAAezvQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCu4G,iBACA,OAAOnlH,KAAKozD,WAAW,cAEvB+xD,eAAWv4G,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BgjP,aACA,OAAO5vP,KAAKozD,WAAW,UAEvBw8L,WAAOhjP,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BqvQ,sBACA,OAAOj8Q,KAAKozD,WAAW,mBAEvB6oN,oBAAgBrvQ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCwvQ,mBACA,OAAOp8Q,KAAKozD,WAAW,gBAEvBgpN,iBAAaxvQ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC05J,kBACA,OAAOtmK,KAAKozD,WAAW,eAEvBkzG,gBAAY15J,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BwrQ,qBACA,OAAOp4Q,KAAKozD,WAAW,kBAEvBglN,mBAAexrQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCurQ,sBACA,OAAOn4Q,KAAKozD,WAAW,mBAEvB+kN,oBAAgBvrQ,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCmvQ,yBACA,OAAO/7Q,KAAKozD,WAAW,sBAEvB2oN,uBAAmBnvQ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCyrQ,qBACA,OAAOr4Q,KAAKozD,WAAW,kBAEvBilN,mBAAezrQ,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bw3Q,oBACA,OAAOpkR,KAAKozD,WAAW,iBAEvBgxN,kBAAcx3Q,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCqoG,iBACA,OAAOj1G,KAAKozD,WAAW,cAEvB6hD,eAAWroG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BysJ,iBACA,OAAOr5J,KAAKozD,WAAW,cAEvBimG,eAAWzsJ,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9Bys2B,wBACA,OAAOr52B,KAAKozD,WAAW,qBAEvBimzB,sBAAkBzs2B,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC0s2B,uBACA,OAAOt52B,KAAKozD,WAAW,oBAEvBkmzB,qBAAiB1s2B,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC0sJ,oBACA,OAAOt5J,KAAKozD,WAAW,iBAEvBkmG,kBAAc1sJ,GACd5M,KAAK6yD,WAAW,gBAAiBjmD,GAMjCs4H,mBACA,OAAOllI,KAAKozD,WAAW,gBAEvB8xE,iBAAat4H,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhC2jO,uBACA,OAAOvwO,KAAKozD,WAAW,oBAEvBm9K,qBAAiB3jO,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC25J,sBACA,OAAOvmK,KAAKozD,WAAW,mBAEvBmzG,oBAAgB35J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCo7Q,2BACA,OAAOhoR,KAAKozD,WAAW,wBAEvB40N,yBAAqBp7Q,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxCwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B6J,WACA,OAAOzW,KAAKozD,WAAW,QAEvB38C,SAAK7J,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBq7Q,yBACA,OAAOjoR,KAAKozD,WAAW,sBAEvB60N,uBAAmBr7Q,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCovQ,yBACA,OAAOh8Q,KAAKozD,WAAW,sBAEvB4oN,uBAAmBpvQ,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtC0jO,iBACA,OAAOtwO,KAAKozD,WAAW,cAEvBk9K,eAAW1jO,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAQzBo6J,uBACA,OAAOhnK,KAAKozD,WAAW,oBAEvB4zG,qBAAiBp6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpC4wJ,gBACA,OAAOx9J,KAAKozD,WAAW,aAEvBoqG,cAAU5wJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB+vQ,mBACA,OAAO38Q,KAAKozD,WAAW,gBAEvBupN,iBAAa/vQ,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAEpC8pB,OAAOlS,IACHu+H,oBACA,OAAO/iJ,KAAKozD,WAAW,SAEvB2vF,kBAAcn2I,GACd5M,KAAKm0D,YAAY,QAASvnD,GAE9BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIir1B,IAASr12B,EAASoqB,GAEjChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,QAASv8I,GAC3Bj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,mBAAoBv8I,GAE1Cu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBgw2B,SAAkBn22B,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAK022B,GAAmBj22B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACnZgp2B,EAAkB9w0B,UAAiCnlC,MAAqB,CAAE8E,KAAMmx2B,EAAmB521B,UAAW,CAAC,CAAC,cAAek4H,eAAgB,SAA0CxpF,EAAIv9C,EAAKgnI,GAE/M,GAFoO,EAALzpF,GAC7N/tD,MAAkBw3I,EAAU6E,GAAkB,GACvC,EAALtuF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI4rI,cAAgB3E,KAChE6vI,aAAc,SAAwCv5N,EAAIv9C,GAAgB,EAALu9C,GACtE/tD,MAAc,cAAe,SAA0DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAnHluB,CAA+H,SAAU,SAAqDkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MAC1NK,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsB6nJ,gBAAiB,kBAAmBT,eAAgB,iBAAkBU,iBAAkB,mBAAoB+onB,qBAAsB,uBAAwBC,gBAAiB,kBAAmBh9vB,WAAY,aAAc60B,eAAgB,iBAAkBjpH,SAAU,WAAYq9F,YAAa,cAAe4I,aAAc,eAAgBorvB,iBAAkB,mBAAoBtpnB,gBAAiB,kBAAmBhvJ,YAAa,cAAe6uJ,cAAe,gBAAiBnnJ,kBAAmB,oBAAqBylD,WAAY,aAAcisE,QAAS,UAAWkiD,cAAe,gBAAiB38M,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB48D,UAAW,YAAanP,QAAS,UAAWoP,QAAS,UAAWpxG,MAAO,QAASuwD,aAAc,eAAgByzB,MAAO,QAASke,UAAW,YAAa8H,gBAAiB,kBAAmBh7J,KAAM,OAAQg5Q,eAAgB,iBAAkBl3J,WAAY,aAAcyqI,OAAQ,SAAUqsB,gBAAiB,kBAAmBG,aAAc,eAAgB91G,YAAa,cAAe8xG,eAAgB,iBAAkBD,gBAAiB,kBAAmB4D,mBAAoB,qBAAsB1D,eAAgB,iBAAkB5zM,WAAY,aAAc2/M,cAAe,gBAAiBnvK,WAAY,aAAcokD,WAAY,aAAcggtB,kBAAmB,oBAAqBC,iBAAkB,mBAAoBhgtB,cAAe,gBAAiBp0B,aAAc,eAAgBqrG,iBAAkB,mBAAoBhqE,gBAAiB,kBAAmByhH,qBAAsB,uBAAwB5oI,YAAa,cAAevwE,SAAU,WAAYp4D,KAAM,OAAQwxQ,mBAAoB,qBAAsBjM,mBAAoB,qBAAsB1rC,WAAY,aAAc3pE,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASo6J,iBAAkB,mBAAoBxJ,UAAW,YAAazuF,QAAS,UAAWnP,MAAO,QAAS+8M,aAAc,gBAAkBt+H,QAAS,CAAEsxG,SAAU,WAAYhnJ,eAAgB,iBAAkBjU,YAAa,cAAeF,cAAe,gBAAiBswB,YAAa,cAAe4qI,SAAU,WAAYj7J,gBAAiB,kBAAmB0nL,cAAe,gBAAiBD,cAAe,gBAAiBxI,SAAU,WAAY18I,mBAAoB,qBAAsB09B,eAAgB,iBAAkBke,gBAAiB,kBAAmBC,yBAA0B,2BAA4BolV,sBAAuB,wBAAyBC,qBAAsB,uBAAwBC,uBAAwB,yBAA0B2kX,2BAA4B,6BAA8BC,sBAAuB,wBAAyB/psB,iBAAkB,mBAAoBC,qBAAsB,uBAAwBC,eAAgB,iBAAkB+3V,kBAAmB,oBAAqB98O,mBAAoB,qBAAsB6ulB,uBAAwB,yBAA0B3ulB,sBAAuB,wBAAyBl7G,kBAAmB,oBAAqBklV,oBAAqB,sBAAuBjlV,wBAAyB,0BAA2B6psB,iBAAkB,mBAAoB3ulB,cAAe,gBAAiBC,oBAAqB,sBAAuBl+H,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bk7G,gBAAiB,kBAAmBC,cAAe,gBAAiBC,cAAe,gBAAiBl7G,YAAa,cAAeC,mBAAoB,qBAAsBk7G,YAAa,cAAeC,gBAAiB,kBAAmBG,sBAAuB,wBAAyBC,WAAY,aAAc4nlB,qBAAsB,uBAAwB/isB,iBAAkB,mBAAoBo7G,aAAc,eAAgB4nlB,sBAAuB,wBAAyBC,mBAAoB,qBAAsB3nlB,kBAAmB,oBAAqB4nlB,qBAAsB,uBAAwBC,sBAAuB,wBAAyBC,yBAA0B,2BAA4BC,qBAAsB,uBAAwBnjsB,iBAAkB,mBAAoBwjsB,oBAAqB,sBAAuBlolB,iBAAkB,mBAAoBC,iBAAkB,mBAAoB4tlB,wBAAyB,0BAA2BC,uBAAwB,yBAA0B5tlB,oBAAqB,sBAAuBt7G,mBAAoB,qBAAsBmpsB,uBAAwB,yBAA0B5tlB,sBAAuB,wBAAyB6tlB,2BAA4B,6BAA8B1tlB,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBjN,WAAY,aAAcyoH,yBAA0B,2BAA4BiolB,yBAA0B,2BAA4ByF,iBAAkB,mBAAoBztlB,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAem7H,uBAAwB,yBAA0BC,gBAAiB,kBAAmB9lI,cAAe,gBAAiBkG,YAAa,cAAe6/H,mBAAoB,qBAAsBC,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACz7K2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAoC4F,EAAIv9C,KAAUzL,cAAe,IAt2B7Jkx2B,MAmrCAW,UAAN,SAEmBA,SAAe922B,UAAO,SAAgCP,GAAK,OAAO,IAAKA,GAAKq32B,IAC5EA,EAAeto2B,UAAiCtO,MAAoB,CAAE8E,KAAM8x2B,IAC5EA,EAAero2B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACvFq7I,GACAvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACA7O,GACAyO,GACAnY,GACAzL,GACAxqF,GACA1H,IACDi+F,GACHvb,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACA7O,GACAyO,GACAnY,GACAzL,GACAlyF,MAvCFgrzB,MC9rCN,IAAIt8wB,GAAW9iB,cACX4oH,IAAW5oH,aAAc,CACzBq/xB,oBAAqB,WACjB,OAAO,GAEXC,qBAAsB,WAClB,MAAO,IAEXC,mBAAoB,WAChB,MAAO,WAEXt/xB,KAAM,SAAS19D,EAAKqpE,GAChB/pF,KAAK292B,WAAaj91B,EAClB1gB,KAAKwxI,YAAcznD,GAEvB93B,OAAQ,SAAS65W,EAAe8xc,GAC5B,OAAO592B,KAAKiyc,cAAc9tc,KAAK,WAC3B,OAAOyvB,QAAQ49J,IAAI,CAACxxL,KAAK692B,uBAAuB,aAAc/xc,GAAgB9ra,KAAK692B,uBAAuB,YAAaD,KAAgBz52B,KAAM,WACzI,OAAO,KAEb8kD,KAAKjpD,QAEXiyc,YAAahxW,GACbgzC,iBAAkBhzC,GAClB68wB,cAAe78wB,GACf88wB,aAAc98wB,GACd+8wB,aAAc/8wB,GACdg9wB,WAAYh9wB,GACZi9wB,eAAgBj9wB,GAChBk9wB,cAAe,SAASC,EAAuBC,GAC3C,OAAO,IAAIzq1B,QAAQ,SAASC,GACxB,OAAO7zB,KAAK692B,uBAAuB,gBAAiBO,GAAuBj62B,KAAK,SAASm62B,GACrFt+2B,KAAK692B,uBAAuB,aAAcQ,GAAoBl62B,KAAM,SAAS4lX,GACzEl2V,EAAQk2V,GAAsBu0f,MAEpCr1zB,KAAKjpD,QACTipD,KAAKjpD,QAEXu+2B,WAAYt9wB,GACZu9wB,cAAev9wB,GACfghV,eAAgBhhV,GAChBw9wB,aAAc,SAASC,EAAsBC,GACzC,OAAO,IAAI/q1B,QAAQ,SAASC,GACxB,OAAO7zB,KAAK692B,uBAAuB,eAAgBa,GAAsBv62B,KAAK,SAASm62B,GACnFt+2B,KAAK692B,uBAAuB,YAAac,GAAmBx62B,KAAM,SAAS4lX,GACvEl2V,EAAQk2V,GAAsBu0f,MAEpCr1zB,KAAKjpD,QACTipD,KAAKjpD,QAEX4+2B,UAAW39wB,GACX49wB,aAAc59wB,GACdg6I,MAAOh6I,GACPvgF,IAAK,WACD,OAAO1gB,KAAK0pV,MAEhBo1hB,iBAAkB,WACd,OAAO,GAEX72a,QAAS,SAAS5kc,EAAMuJ,GACpB,QAAI,MACA,OAAO5M,KAAK292B,WAAWrqzB,OAAOjwD,GAElCrD,KAAK292B,WAAWoB,gBAAgB172B,EAAMuJ,IAE1Coy2B,WAAY,SAASC,GACjB,IAAI9s2B,EAAMnS,KAAKioc,QAAQ,UACvB,YAAO,IAAW91b,EAAI8s2B,GAAgB9s2B,EAAMA,EAAI8s2B,IAEpDC,qBAAsB,SAAS5rzB,GAC3B,MAAO,CACH78C,KAAM68C,EAAO78C,MAAQ68C,EACrByb,QAASzb,EAAOi9G,UAAW,IAGnC4usB,WAAY,SAASls2B,GACjB,GAAI,iBAAoBA,EAAU,CAC9B,IAAIukS,KAAS92R,OAAIzN,EAASf,MAAM,KAAO,SAAS0K,GAC5C,OAAOA,EAAKq/D,SAEZmjyB,EAAe,yBACnB,GAAI,IAAM5nkB,EAAO/yS,QAAU+yS,EAAO,GAAGl4Q,MAAM8/0B,IAAiB5nkB,EAAO,GAAGl4Q,MAAM8/0B,GACxE,MAAO,CACHt7tB,IAAK5nF,WAAWs7O,EAAO,IACvBzzJ,IAAK7nF,WAAWs7O,EAAO,SAG5B,IAAI5uS,MAAM8B,QAAQuI,IAAa,IAAMA,EAASxO,OACjD,MAAO,CACHq/I,IAAK7wI,EAAS,GACd8wI,IAAK9wI,EAAS,IAEf,IAAIgyD,SAAchyD,OAAamjG,OAAUnjG,EAAS6wI,OAAQ1tC,SAAUnjG,EAAS8wI,KAChF,OAAO9wI,EAEX,OAAO,MAEXos2B,cAAe,WACX,OAAOr/2B,KAAKioc,QAAQ,qBAAuBjoc,KAAKioc,QAAQ,qBAE5Dq3a,mBAAoB,SAASj82B,GACzB,OAAOqrE,GAAarrE,EAAMrD,KAAK292B,WAAWvoxB,OAE9CyoxB,uBAAwB,SAAS0B,EAAQ90xB,GACrC,OAAKA,EAAMhmF,OAGJzE,KAAKu/2B,GAAQ90xB,GAFT72D,QAAQC,WAIvB0lyB,YAAa,SAASl2zB,EAAMm82B,GACxBx/2B,KAAK292B,WAAWvnxB,sBAAsB/yF,EAAtCrD,CAA4Cw/2B,IAEhDC,iBAAkB,SAASD,GACvBx/2B,KAAKu5zB,YAAY,UAAWimD,IAEhCE,uBAAwB,SAASF,GAC7Bx/2B,KAAKu5zB,YAAY,gBAAiBimD,IAEtCG,yBAA0B,SAASH,GAC/Bx/2B,KAAKu5zB,YAAY,kBAAmBimD,IAExCI,sBAAuB,SAASJ,GAC5Bx/2B,KAAKu5zB,YAAY,eAAgBimD,IAErCK,wBAAyB,SAASL,GAC9Bx/2B,KAAKu5zB,YAAY,iBAAkBimD,MAG3C,SAAez4qB,IC9Hf,IACI+4qB,IAAuB/4qB,WAAiB,CACxCg5qB,kBAAmB,SAAS9s2B,GACxB,IAAI+s2B,EAAShg3B,KAAKm/2B,WAAWls2B,GAC7B,OAAO+s2B,EAASA,EAAOl8tB,IAAM,IAAMk8tB,EAAOj8tB,IAAM9wI,EAASuE,WAAW5M,QAAQ,KAAM,MAEtFqnc,YAAa,WACT,OAAOjyc,KAAKig3B,cAEhBhsuB,iBAAkB,WACd,OAAOj0I,KAAKig3B,cAEhBnC,cAAe,WACX,OAAO992B,KAAKig3B,cAEhBlC,aAAc,WACV,OAAOnq1B,QAAQC,WAEnBmq1B,aAAc,WACV,OAAOh+2B,KAAKig3B,cAEhBhC,WAAY,WACR,OAAOj+2B,KAAKig3B,cAEhB/B,eAAgB,WACZ,OAAOtq1B,QAAQC,WAEnB0q1B,WAAY,SAAS3s1B,GACjB,IAAI0hD,EAAOtzE,KACX,OAAOA,KAAKig3B,aAAa972B,KAAM,SAASuO,GACpCo2D,gBAAKl3C,EAAU,SAASpN,EAAGoN,GACvB0hD,EAAKosyB,uBAAuB,CACxB9t1B,QAASA,MAGVlf,KAGf8r2B,cAAe,SAAS5s1B,GACpB,IAAI0hD,EAAOtzE,KACX,OAAOA,KAAKig3B,aAAa972B,KAAM,SAASuO,GACpCo2D,gBAAKl3C,EAAU,SAASpN,EAAGoN,GACvB0hD,EAAKqsyB,yBAAyB,CAC1B/t1B,QAASA,MAGVlf,KAGfuva,eAAgB,WACZ,OAAOruZ,QAAQC,WAEnB+q1B,UAAW,SAASht1B,GAChB,IAAI0hD,EAAOtzE,KACX,OAAOA,KAAKig3B,aAAa972B,KAAM,SAASuO,GACpCo2D,gBAAKl3C,EAAU,SAASpN,EAAGoN,GACvB0hD,EAAKssyB,sBAAsB,CACvBhu1B,QAASA,MAGVlf,KAGfms2B,aAAc,SAASjt1B,GACnB,IAAI0hD,EAAOtzE,KACX,OAAOA,KAAKig3B,aAAa972B,KAAM,SAASuO,GACpCo2D,gBAAKl3C,EAAU,SAASpN,EAAGoN,GACvB0hD,EAAKusyB,wBAAwB,CACzBju1B,QAASA,MAGVlf,KAGfuoO,MAAO,WACH,YAAKzpG,YAAYz1E,IAAI,kBAAmB,QACxCtN,SAAiBzuD,KAAKwxI,YAAaxxI,KAAKs/2B,mBAAmBl0vB,KACpDx3F,QAAQC,WAEnBqs1B,YAAa,WACT,OAAO,GAEXD,WAAY,WACR,IAAI9t2B,EAAMnS,KAAKg/2B,WAAW,gBACtBj1xB,EAAa/pF,KAAKwxI,YAClB2uuB,EAAiB,CAAC,eAAgB,QAAU5l2B,KAAK2zC,SAAMyX,OAASokB,IAAe,IAAMxvE,KAAK2zC,OAAMwX,SAAUqkB,IAAc,WAAa/pF,KAAKioc,QAAQ,QAAS,UAAYjoc,KAAK+/2B,kBAAkB//2B,KAAKioc,QAAQ,WAAY,QAAUjoc,KAAKioc,QAAQ,QAASjoc,KAAKog3B,qBAChQD,EAAe922B,KAAKqyB,MAAMyk1B,EAAgBng3B,KAAKqg3B,oBAC3Clu2B,GACAgu2B,EAAe922B,KAAK,OAAS8I,GAEjC,IAAIisD,EA1FY,8CA0FkB+hzB,EAAe7h1B,KAAK,KACtD,YAAKkzG,YAAYz1E,IAAI,aAAc,QAAUqC,EAAU,oBACvDp+D,KAAKgrH,oBACEp3F,QAAQC,SAAQ,IAE3Bus1B,kBAAmB,WACf,IAAI9syB,EAAOtzE,KACP0kX,EAAU,GACV47f,EAAatg3B,KAAKioc,QAAQ,iBAC9B,OAAIq4a,GACA57f,EAAQr7W,KAAK,QAAUi32B,MAE3Bx3yB,OAAK9oE,KAAKioc,QAAQ,WAAa,SAASzjb,EAAG45I,GACvCsmN,EAAQr7W,KAAKiqE,EAAKysyB,kBAAkB3htB,EAAOnrJ,aAExC,WAAayxW,EAAQpmV,KAAK,MAErC+h1B,iBAAkB,WACd,IAAI/syB,EAAOtzE,KACP0pC,EAAS,GACbo/B,gBAAK9oE,KAAKioc,QAAQ,UAAY,SAASzjb,EAAGoV,GACtC,IAAI47G,EAAQ,IAAIq2J,GAAMjyQ,EAAM47G,OAASliE,EAAKoqyB,sBAAsB1xkB,QAAQphS,QAAQ,IAAK,MACjFwtE,EAAU79D,KAAK2zC,MAAM,KAAOt0B,EAAMw+C,SAAW9E,EAAKmqyB,yBAAyBjm2B,SAAS,IACpFooD,EAAQhmC,EAAMooR,QAAU1uO,EAAKkqyB,sBAC7BroQ,EAAY,MAChBrsiB,OAAKlvC,EAAMu7kB,UAAY,SAAS3wlB,EAAG+71B,GAC/BprQ,EAAU9rmB,KAAKiqE,EAAKysyB,kBAAkBQ,MAE1C720B,EAAOrgC,KAAK,cAAgBmsI,EAAQp9D,EAAU,WAAaxY,EAAQ,IAAMu1iB,EAAU72kB,KAAK,QAErFoL,GAEXshF,kBAAmB,WACf,IAAI13C,EAAOtzE,KACPyH,EAAYzH,KAAKs/2B,mBAAmBl0vB,IACxC38D,SAAiBzuD,KAAKwxI,YAAa/pI,GACnCgnD,QAAgBzuD,KAAKwxI,YAAa/pI,EAAY,SAASuO,GACnDs9D,EAAKmsyB,iBAAiB,CAClB302B,MAAOkL,SAKvB,UAAe8p2B,IC1If,IAAI7+wB,GAAW8lG,YACXy5qB,IAAkBz5qB,WAAiB,CACnC05qB,iBAAkB,SAASxt2B,GACvB,OAAO,IAAI2gB,QAAQ,SAASC,GACxB,IAAI4/D,EAAQzzF,KAAK0g3B,mBACbC,EAAiBltxB,EAAMxgF,GACvB0t2B,EACA9s1B,EAAQ8s1B,GAER3g3B,KAAK4g3B,qBAAqB3t2B,GAAU9O,KAAM,SAAS082B,GAC/CptxB,EAAMxgF,GAAY4t2B,EAClBht1B,EAAQgt1B,MAGlB53zB,KAAKjpD,QAEXiyc,YAAa,WACT,OAAOjyc,KAAK8g3B,QAAQ382B,KAAK,WACrB,OAAOnE,KAAK81F,SACd7sC,KAAKjpD,OAAOmE,KAAK,WACf,OAAOyvB,QAAQ49J,IAAI,CAACxxL,KAAK892B,gBAAiB992B,KAAKq/2B,gBAAkBr/2B,KAAK+92B,eAAiB/92B,KAAKg+2B,kBAC9F/0zB,KAAKjpD,OAAOmE,KAAK,WACf,YAAKogF,kBACE,IAAI3wD,QAAS,SAASC,GACzB,IAAI+2B,EAAU7K,WAAY,WACtBwe,aAAa3T,GACb/2B,SAGVo1B,KAAKjpD,QAEX8g3B,MAAO,WACH,OAAK9g3B,KAAK+g3B,cACN/g3B,KAAK+g3B,YAAc/g3B,KAAKgh3B,aAE5Bhh3B,KAAKih3B,SAAW,GAChBjh3B,KAAKkh3B,QAAU,GACRlh3B,KAAK+g3B,aAEhBC,UAAW//wB,GACXnL,MAAOmL,GACP1c,gBAAiB0c,GACjBs9wB,WAAY,SAAS3s1B,GACjB,OAAOgC,QAAQ49J,KAAI9wK,SAAIkR,EAAS,SAASA,GACrC,OAAO5xB,KAAKmh3B,WAAWvv1B,IACzBq3B,KAAKjpD,QAAQmE,KAAK,SAASi92B,GACzB,YAAKC,aACE,EAAC,GAAO3g2B,SAAI0g2B,EAAgB,SAASE,GACxC,OAAOA,EAAaljtB,WAE1Bn1G,KAAKjpD,QAEXmh3B,WAAY,SAASvv1B,GACjB,OAAO5xB,KAAKuh3B,cAAc3v1B,GAASztB,KAAK,SAASm92B,GAC7C,YAAKL,SAAS532B,QAAKgW,MAAO,CACtBuS,QAASA,GACV0v1B,IACHth3B,KAAK0/2B,uBAAuB,CACxB9t1B,QAASA,EACT4v1B,eAAgBF,EAAaljtB,SAE1BkjtB,GACTr4zB,KAAKjpD,QAEXuh3B,cAAetgxB,GACfu9wB,cAAe,SAASiD,GACpB,IAAInuyB,EAAOtzE,KACX8oE,gBAAK24yB,EAAyB,SAASj91B,EAAGk91B,GACtCpuyB,EAAKquyB,cAAcD,KAEhB9t1B,QAAQC,WAEnB8t1B,cAAe,SAASC,GACpB,IAAItuyB,EAAOtzE,QACX8oE,OAAK9oE,KAAKih3B,SAAW,SAASY,EAAaP,GACvC,OAAIA,EAAa1v1B,UAAYgw1B,IAG7BtuyB,EAAKwuyB,eAAeR,GACpBhuyB,EAAK2tyB,SAASxu2B,OAAOov2B,EAAa,GAClCvuyB,EAAKqsyB,yBAAyB,CAC1B/t1B,QAAS0v1B,EAAa1v1B,WAEnB,MAGfkw1B,eAAgB7gxB,GAChB8gxB,cAAe,WACX,KAAO/h3B,KAAKih3B,SAASx82B,OAAS,GAC1BzE,KAAK2h3B,cAAc3h3B,KAAKih3B,SAAS,GAAGrv1B,UAG5Cgt1B,UAAW,SAASht1B,GAChB,OAAOgC,QAAQ49J,KAAI9wK,SAAIkR,EAAS,SAASA,GACrC,OAAO5xB,KAAKgi3B,UAAUpw1B,IACxBq3B,KAAKjpD,QAAQmE,KAAK,SAAS892B,GACzB,YAAKZ,aACE,EAAC,GAAO3g2B,SAAIuh2B,EAAe,SAASC,GACvC,OAAOA,EAAYj30B,aAEzBge,KAAKjpD,QAEXgi3B,UAAW,SAASpw1B,GAChB,OAAO5xB,KAAKmi3B,aAAavw1B,GAASztB,KAAK,SAAS+92B,GAC5C,YAAKhB,QAAQ732B,QAAKgW,MAAO,CACrBuS,QAASA,GACVsw1B,IACHli3B,KAAK4/2B,sBAAsB,CACvBhu1B,QAASA,EACTww1B,cAAeF,EAAYj30B,WAExBi30B,GACTj5zB,KAAKjpD,QAEXmi3B,aAAclhxB,GACd49wB,aAAc,SAASjt1B,GACnB,IAAI0hD,EAAOtzE,KACX8oE,gBAAKl3C,EAAU,SAASyw1B,EAAYzw1B,GAChC0hD,EAAKgvyB,aAAa1w1B,KAEfgC,QAAQC,WAEnByu1B,aAAc,SAAS1w1B,GACnB,IAAI0hD,EAAOtzE,QACX8oE,OAAK9oE,KAAKkh3B,QAAU,SAASmB,EAAYH,GACrC,OAAIA,EAAYtw1B,UAAYA,IAG5B0hD,EAAKivyB,cAAcL,GACnB5uyB,EAAK4tyB,QAAQzu2B,OAAO4v2B,EAAY,GAChC/uyB,EAAKusyB,wBAAwB,CACzBju1B,QAASA,KAEN,MAGf2w1B,cAAethxB,GACfuhxB,aAAc,WACV,KAAOxi3B,KAAKkh3B,QAAQz82B,OAAS,GACzBzE,KAAKsi3B,aAAati3B,KAAKkh3B,QAAQ,GAAGtv1B,UAG1CqwZ,eAAgB,WACZ,OAAOjib,KAAKqh3B,cAEhBvC,iBAAkB,WACd,OAAO,GAEXuC,WAAYpgxB,GACZyrK,cAAe,WACX,IAAIp5L,EAAOtzE,KACXA,KAAKyi3B,eACAzi3B,KAAKioc,QAAQ,mBAGlBn/X,OAAK9oE,KAAKih3B,SAAW,SAASz81B,EAAG881B,GAC7BhuyB,EAAKovyB,cAAcpB,EAAaru2B,eAEpC61D,OAAK9oE,KAAKkh3B,QAAU,SAAS181B,EAAG091B,GAC5BA,EAAYS,WAAarvyB,EAAKovyB,cAAcR,EAAYS,WACxDT,EAAYU,WAAatvyB,EAAKovyB,cAAcR,EAAYU,eAGhEH,aAAc,WACVzi3B,KAAK6i3B,QAAU,MAEnBH,cAAezhxB,KAEnB,UAAeu/wB,IC5Kf,IAqBIsC,GAsCAC,GA3DA9g3B,IAASk8D,WAkBT6kzB,GAAmB,qBAsCnBC,IAAmB,WACnB,OAAOhh3B,GAAOih3B,QAAUjh3B,GAAOih3B,OAAOC,MAGtCC,IAAiB5C,YAAwB,CACzC6C,SAAU,SAAS532B,GACf,IAAI632B,EAAW,CACXC,OAAQL,OAAOC,KAAKK,UAAUC,OAC9BC,QAASR,OAAOC,KAAKK,UAAUG,QAC/BC,UAAWV,OAAOC,KAAKK,UAAUK,WAErC,OAAOP,EAAS732B,IAAS632B,EAASC,QAEtCO,cAAe,SAASr42B,GACpB,IAAIs42B,EAAgB,CAChBC,QAASd,OAAOC,KAAKc,WAAWC,QAChCC,QAASjB,OAAOC,KAAKc,WAAWG,SAEpC,OAAOL,EAAct42B,IAASs42B,EAAcC,SAEhDK,iBAAkB,SAASpx2B,GACvB,OAAO,IAAI2gB,QAAQ,SAASC,GACxB,IAAIms1B,EAAShg3B,KAAKm/2B,WAAWls2B,GACzB+s2B,EACAns1B,EAAQ,IAAIqv1B,OAAOC,KAAKmB,OAAOtE,EAAOl8tB,IAAKk8tB,EAAOj8tB,MAElD/jJ,KAAKyg3B,iBAAiBxt2B,GAAU9O,KAAM,SAAS082B,GAC3Cht1B,EAAQgt1B,MAGlB53zB,KAAKjpD,QAEX0g3B,mBAAoB,GACpBE,qBAAsB,SAAS3t2B,GAC3B,OAAO,IAAI2gB,QAAS,SAASC,MACpBnW,OAAUzK,IAIA,IAAIiw2B,OAAOC,KAAKoB,UACtBC,QAAQ,CACbC,QAASxx2B,GACT,SAASirlB,EAASz1kB,GACdA,IAAWy61B,OAAOC,KAAKuB,eAAe5kwB,GACtCjsF,EAAQqqkB,EAAQ,GAAGryM,SAAS54Y,WAE5BsT,OAAW,QAASkC,GACpBoL,EAAQ,IAAIqv1B,OAAOC,KAAKmB,OAAO,EAAG,OAXtCzw1B,EAAQ,IAAIqv1B,OAAOC,KAAKmB,OAAO,EAAG,OAgB9CjvmB,mBAAoB,SAASpiQ,GACzB,MAAO,CACH6wI,IAAK7wI,EAAS6wI,MACdC,IAAK9wI,EAAS8wI,QAGtB4guB,uBAAwB,SAASC,GAC7B,MAAO,CACHjC,UAAW3i3B,KAAKq1Q,mBAAmBuvmB,EAAaC,gBAChDjC,UAAW5i3B,KAAKq1Q,mBAAmBuvmB,EAAaE,kBAGxD9D,UAAW,WACP,OAAO,IAAIpt1B,QAAQ,SAASC,GACpBov1B,MACApv1B,KAEKkv1B,KACDA,GAAmB/i3B,KAAK+k3B,kBAE5BhC,GAAiB5+2B,KAAK,WACd8+2B,MACApv1B,IAGJ7zB,KAAK+k3B,iBAAiB5g3B,KAAK0vB,IAC7Bo1B,KAAKjpD,SAEbipD,KAAKjpD,OAAOmE,KAAM,WAjHxB2+2B,GAAe,SAASlx1B,GACpB5xB,KAAK0sN,UAAY96L,EAAQoI,SACzBh6B,KAAKs5a,QAAU1nZ,EAAQu4C,OACvBnqE,KAAKgl3B,oBAAqB5pzB,QAAE,SAASW,IAAI,CACrC/hC,SAAU,WACVk2S,QAAS,OACT77H,OAAQ,YACTzqH,OAAOh4D,EAAQmqD,MAClB/7E,KAAKil3B,OAAOrz1B,EAAQlR,MAExBoi2B,GAAa3o1B,UAAY,IAAI+o1B,OAAOC,KAAK+B,YACzCpC,GAAa3o1B,UAAUgpI,MAAQ,YACf/nG,QAAEp7D,KAAKml3B,WAAWC,oBACxBx7xB,OAAO5pF,KAAKgl3B,oBAClBhl3B,KAAKql3B,eAAiBnC,OAAOC,KAAKr42B,MAAMw62B,eAAetl3B,KAAKgl3B,mBAAmBhh3B,IAAI,GAAI,QAAS,SAASgS,GACrGkt2B,OAAOC,KAAKr42B,MAAMgwC,QAAQ96C,KAAM,SAChCgW,EAAEjL,kBACJk+C,KAAKjpD,OACPA,KAAK41E,QAETktyB,GAAa3o1B,UAAUqpI,SAAW,WAC9B0/sB,OAAOC,KAAKr42B,MAAM2+C,eAAezpD,KAAKql3B,gBACtCrl3B,KAAKgl3B,mBAAmBnk3B,UAE5Bii3B,GAAa3o1B,UAAUy7C,KAAO,WAC1B,IAAI57C,EAAWh6B,KAAKul3B,gBAAgBC,qBAAqBxl3B,KAAK0sN,WAC9D1sN,KAAKgl3B,mBAAmBjpzB,IAAI,CACxBT,KAAMthC,EAASpJ,EAAI5wB,KAAKs5a,QAAQh+W,KAChCC,IAAKvhC,EAASwhC,EAAIx7D,KAAKs5a,QAAQ/9W,IAC/B20Q,QAAS,cAwFjB60iB,eAAgB,WACZ,OAAO,IAAInx1B,QAAQ,SAASC,GACxB,IAAI1hB,EAAMnS,KAAKg/2B,WAAW,UAC1B/82B,GAAO+g3B,IAAoBnv1B,EAC3Bq4T,uBAAiB,CACbzpV,IA9HC,uEA8HkB0P,EAAM,QAAUA,EAAM,IACzCsgG,SAAU,YAEhBxpD,KAAKjpD,OAAOmE,KAAM,WAChB,WACWlC,GAAO+g3B,UACTht2B,GACL/T,GAAO+g3B,SAAoB,MAIvCltxB,MAAO,WACH,OAAO,IAAIliE,QAAQ,SAASC,GACxB7zB,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,WAAW9jc,KAAK,SAASinN,GACxD,IAAIq6pB,EAAgBzl3B,KAAKioc,QAAQ,YACjCjoc,KAAK0pV,KAAO,IAAIw5hB,OAAOC,KAAKj82B,IAAIlH,KAAKwxI,YAAY,GAAI,CACjDmhL,KAAM3yT,KAAKioc,QAAQ,QACnB78O,OAAQA,EACRs6pB,kBAAmBD,IAEvB,IAAIhl3B,EAAWyi3B,OAAOC,KAAKr42B,MAAM0+C,YAAYxpD,KAAK0pV,KAAM,OAAS,WAC7D71T,EAAQpzB,MAEdwoD,KAAKjpD,QACTipD,KAAKjpD,OAAOmE,KAAM,SAAS1D,GACzByi3B,OAAOC,KAAKr42B,MAAM2+C,eAAehpD,MAGzC8jF,gBAAiB,WACbvkF,KAAK2l3B,sBAAwBzC,OAAOC,KAAKr42B,MAAM0+C,YAAYxpD,KAAK0pV,KAAM,iBAAkB1pV,KAAK4l3B,qBAAqB38zB,KAAKjpD,OACvHA,KAAKql3B,eAAiBnC,OAAOC,KAAKr42B,MAAM0+C,YAAYxpD,KAAK0pV,KAAM,QAAS1pV,KAAK6l3B,oBAAoB58zB,KAAKjpD,QAE1G4l3B,qBAAsB,WAClB,IAAIr8yB,EAASvpE,KAAK0pV,KAAKzuF,YACvBj7P,KAAKioc,QAAQ,SAAUjoc,KAAK2k3B,uBAAuBp7yB,IACnD,IAAI6hJ,EAASprN,KAAK0pV,KAAK04B,YACvBpiX,KAAKioc,QAAQ,SAAUjoc,KAAKq1Q,mBAAmBjqD,IAC1CprN,KAAK8l3B,yBACN9l3B,KAAKioc,QAAQ,OAAQjoc,KAAK0pV,KAAKq8hB,YAGvCF,oBAAqB,SAAS7v2B,GAC1BhW,KAAKy/2B,iBAAiB,CAClBxs2B,SAAUjT,KAAKq1Q,mBAAmBr/P,EAAEgq2B,WAG5C/ruB,iBAAkB,WACd,IAAIm3E,EAASprN,KAAKioc,QAAQ,UAC1Bi7a,cAAOC,KAAKr42B,MAAMgwC,QAAQ96C,KAAK0pV,KAAM,UACrC1pV,KAAKioc,QAAQ,SAAU78O,GAChBprN,KAAKg+2B,gBAEhBF,cAAe,WACX,YAAKp0hB,KAAKs8hB,aAAahm3B,KAAKqj3B,SAASrj3B,KAAKioc,QAAQ,UAC3Cr0a,QAAQC,WAEnBkq1B,aAAc,WACV,OAAOnq1B,QAAQ49J,IAAI,CAACxxL,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,qBAAsBjoc,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,uBAAuB9jc,KAAK,SAASuO,GACjJ,IAAI62D,EAAS,IAAI25yB,OAAOC,KAAK8C,aAC7B18yB,EAAOlqD,OAAO3M,EAAO,IACrB62D,EAAOlqD,OAAO3M,EAAO,IACrB1S,KAAK0pV,KAAKw8hB,UAAU38yB,IACtBtgB,KAAKjpD,QAEXg+2B,aAAc,WACV,OAAOh+2B,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,WAAW9jc,KAAK,SAASinN,GAC/DprN,KAAK0pV,KAAKy8hB,UAAU/6pB,GACpBprN,KAAKioc,QAAQ,SAAUjoc,KAAKq1Q,mBAAmBjqD,KACjDniK,KAAKjpD,QAEXi+2B,WAAY,WACR,YAAKv0hB,KAAK08hB,QAAQpm3B,KAAKioc,QAAQ,SACxBr0a,QAAQC,WAEnBqq1B,eAAgB,WACZ,IAAIuH,EAAgBzl3B,KAAKioc,QAAQ,YACjC,YAAKv+G,KAAK/zD,WAAW,CACjB+vlB,kBAAmBD,IAEhB7x1B,QAAQC,WAEnBir1B,iBAAkB,SAAS9o2B,GACvB,IAAIqw2B,EAAkBrm3B,KAAK0pV,MAAQ1pV,KAAK0pV,KAAK1lV,IAAI,mBAEjD,WAD0Bo3D,MAAEplD,EAAEhU,QAAQ87E,QAAQ,IAAIj8D,OAhNlC,gBAgN6Dpd,OAAS,GAC3D,YAAcu+D,UAAexB,YAAc,oBAG/DxhE,KAAKm5D,YAEhBoozB,cAAe,SAAS3v1B,GACpB,OAAO5xB,KAAKqk3B,iBAAiBzy1B,EAAQ3e,UAAU9O,KAAK,SAAS8O,GACzD,IAAImrJ,EAEAA,EADAxsI,EAAQmqD,KACC,IAAI+myB,GAAa,CACtBpi2B,IAAK1gB,KAAK0pV,KACV1vT,SAAU/mB,EACV8oE,KAAMnqD,EAAQmqD,KACd5R,UAAQ9qD,MAAO,CACXk8C,IAAK,EACLD,KAAM,GACP1pC,EAAQ001B,cAGN,IAAIpD,OAAOC,KAAKoD,OAAO,CAC5Bvs1B,SAAU/mB,EACVyN,IAAK1gB,KAAK0pV,KACV/3M,KAAM//G,EAAQ401B,SAAWxm3B,KAAKioc,QAAQ,mBAG9C,IACIxnc,EADAgm3B,EAAazm3B,KAAK6vkB,eAAezxa,EAAQxsI,EAAQijR,SAErD,GAAIjjR,EAAQkyB,SAAWlyB,EAAQijR,QAAS,CACpC,IAAI6xkB,EAAoB1m3B,KAAK292B,WAAWrmxB,cAAc1lE,EAAQkyB,SAAWwI,OACrEq6zB,EAA2B3m3B,KAAKq1Q,mBAAmBpiQ,GACvDxS,EAAWyi3B,OAAOC,KAAKr42B,MAAM0+C,YAAY40G,EAAQ,QAAS,WACtDsotB,EAAkB,CACdzz2B,SAAU0z2B,IAEVF,GACAA,EAAW/vnB,KAAK12P,KAAK0pV,KAAMtrL,IAEjCn1G,KAAKjpD,OAEX,MAAO,CACHiT,SAAUA,EACVmrJ,OAAQA,EACR39J,SAAUA,IAEhBwoD,KAAKjpD,QAEX6vkB,eAAgB,SAASzxa,EAAQxsI,GAC7B,GAAKA,EAGLA,GAAU5xB,KAAKk/2B,qBAAqBtt1B,GACpC,IAAI601B,EAAa,IAAIvD,OAAOC,KAAKyD,WAAW,CACxC/8qB,QAASj4K,EAAQnb,OAErB,OAAImb,EAAQm9C,SACR03yB,EAAW/vnB,KAAK12P,KAAK0pV,KAAMtrL,GAExBqotB,IAEX3E,eAAgB,SAAS1jtB,GACrBA,EAAOA,OAAO6mtB,OAAO,MACjB7mtB,EAAO39J,UACPyi3B,OAAOC,KAAKr42B,MAAM2+C,eAAe20G,EAAO39J,WAGhD0h3B,aAAc,SAASvw1B,GACnB,OAAOgC,QAAQ49J,KAAI9wK,SAAIkR,EAAQujlB,UAAW,SAASv8d,GAC/C,OAAO54I,KAAKqk3B,iBAAiBzruB,IAC/B3vF,KAAKjpD,QAAQmE,KAAK,SAASgxmB,GACzB,OAAO,IAAIvhlB,QAAQ,SAASC,GACxB,IAQIuqC,EAAU,CACVyozB,OATS1xQ,EAAU7jmB,QAUnBw12B,YATc3xQ,EAAU9imB,MAUxB002B,aATYrm2B,OAAIy0lB,EAAY,SAASlimB,GACrC,MAAO,CACHA,SAAUA,EACV+z2B,UAAU,KAOdC,mBAAmB,EACnBC,WAAYln3B,KAAK8j3B,cAAcly1B,EAAQ3iB,QAE1C,IAAIi02B,OAAOC,KAAKgE,mBAAmBvt1B,MAAMwkC,EAAS,SAAS87L,EAAUzxO,GAClE,GAAIA,IAAWy61B,OAAOC,KAAKiE,iBAAiBtnwB,GAAI,CAC5C,IAAI01B,EAAQ,IAAIq2J,GAAMj6Q,EAAQ4jH,OAASx1I,KAAK092B,sBAAsB1xkB,QAC9Dq7kB,EAAmB,CACnB9iqB,WAAY21C,EACZx5O,IAAK1gB,KAAK0pV,KACV49hB,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAiB,CACbC,aAAc711B,EAAQowR,QAAUhiT,KAAKw92B,sBACrChsiB,cAAe5/S,EAAQwmD,SAAWp4E,KAAKy92B,uBACvCiK,YAAalyuB,IAGjB57G,EAAQ,IAAIsp1B,OAAOC,KAAKwE,mBAAmBN,GAC3C99yB,EAAS2wL,EAASxwN,OAAO,GAAG6/B,OAChC11C,EAAQ,CACJoX,SAAUrR,EACV+o1B,UAAWp5yB,EAAOs7yB,eAClBjC,UAAWr5yB,EAAOu7yB,sBAGtBv+1B,OAAW,QAASkC,GACpBoL,EAAQ,CACJoX,SAAU,IAAIi40B,OAAOC,KAAKwE,mBAAmB,OAGvD1+zB,KAAKjpD,QACTipD,KAAKjpD,QACTipD,KAAKjpD,QAEXui3B,cAAe,SAASL,GACpBA,EAAYj30B,SAASg60B,OAAO,OAEhC5D,WAAY,WAER,GADArh3B,KAAK0sQ,gBACD1sQ,KAAK6i3B,SAAW7i3B,KAAKioc,QAAQ,cAAe,CAC5C,IAAI2/a,EAAoB5n3B,KAAK0pV,KAAKq8hB,UAClC/l3B,KAAK8l3B,yBAA0B,EAC/B9l3B,KAAK0pV,KAAKw8hB,UAAUlm3B,KAAK6i3B,SACzB7i3B,KAAK4l3B,uBACL,IAAIiC,EAAmB7n3B,KAAK0pV,KAAKq8hB,UAC7B6B,EAAoBC,EACpB7n3B,KAAK0pV,KAAK08hB,QAAQwB,GAElB5n3B,KAAKioc,QAAQ,OAAQ4/a,UAElB7n3B,KAAK8l3B,wBAEhB,OAAOly1B,QAAQC,WAEnB6u1B,cAAe,SAASzv2B,GAChBjT,KAAK6i3B,UAGL7i3B,KAAK6i3B,QAAU,IAAIK,OAAOC,KAAK8C,cAF/Bjm3B,KAAK6i3B,QAAQxj2B,OAAOpM,IAM5BgoO,MAAO,WACH,OAAIj7O,KAAK0pV,OACLw5hB,OAAOC,KAAKr42B,MAAM2+C,eAAezpD,KAAK2l3B,uBACtCzC,OAAOC,KAAKr42B,MAAM2+C,eAAezpD,KAAKql3B,gBACtCrl3B,KAAK+h3B,gBACL/h3B,KAAKwi3B,sBACExi3B,KAAK0pV,KACZ1pV,KAAKwxI,YAAYxuD,SAEdpvD,QAAQC,aAGvB,UAAeuv1B,IC3Xf,IAsBI0E,GAtBA7l3B,IAASk8D,WAeT4pzB,GAAiB,mBAIjBC,IAAe,WACf,OAAO/l3B,GAAOgm3B,WAAahm3B,GAAOgm3B,UAAUC,MAG5CC,IAAe3H,YAAwB,CACvC6C,SAAU,SAAS532B,GACf,IAAI632B,EAAW,CACXI,QAASuE,UAAUC,KAAK1E,UAAU4E,KAClC7E,OAAQ0E,UAAUC,KAAK1E,UAAU6E,OACjCzE,UAAWqE,UAAUC,KAAK1E,UAAU6E,QAExC,OAAO/E,EAAS732B,IAAS632B,EAAS8E,MAEtCtE,cAAe,SAASr42B,GACpB,IAAIs42B,EAAgB,CAChBC,QAASiE,UAAUC,KAAKI,WAAWC,UAAUvE,QAC7CG,QAAS8D,UAAUC,KAAKI,WAAWC,UAAUpE,SAEjD,OAAOJ,EAAct42B,IAASs42B,EAAcC,SAEhDK,iBAAkB,SAASpx2B,GACvB,OAAO,IAAI2gB,QAAQ,SAASC,GACxB,IAAIms1B,EAAShg3B,KAAKm/2B,WAAWls2B,GACzB+s2B,EACAns1B,EAAQ,IAAIo01B,UAAUC,KAAKji0B,SAAS+5zB,EAAOl8tB,IAAKk8tB,EAAOj8tB,MAEvD/jJ,KAAKyg3B,iBAAiBxt2B,GAAU9O,KAAM,SAAS082B,GAC3Cht1B,EAAQgt1B,MAGlB53zB,KAAKjpD,QAEX0g3B,mBAAoB,GACpBE,qBAAsB,SAAS3t2B,GAC3B,OAAO,IAAI2gB,QAAQ,SAASC,MACnBnW,OAAUzK,GAIK,IAAIg12B,UAAUC,KAAKtowB,OAAO4owB,cAAcxo3B,KAAK0pV,MAcnD86hB,QAbM,CAChBiE,MAAOx12B,EACPrN,MAAO,EACPF,SAAU,SAASgj3B,GAEf,GADaA,EAAexqR,QAAQ,GACxB,CACR,IAAIyqR,EAAYD,EAAexqR,QAAQ,GAAGjrlB,SAC1C4gB,EAAQ,IAAIo01B,UAAUC,KAAKji0B,SAAS0i0B,EAAUC,SAAUD,EAAUE,iBAElEh11B,EAAQ,IAAIo01B,UAAUC,KAAKji0B,SAAS,EAAG,OAb/CpyB,EAAQ,IAAIo01B,UAAUC,KAAKji0B,SAAS,EAAG,KAkB7CgD,KAAKjpD,QAEXq1Q,mBAAoB,SAASpiQ,GACzB,MAAO,CACH6wI,IAAK7wI,EAAS212B,SACd7kuB,IAAK9wI,EAAS412B,YAGtBlE,uBAAwB,SAASC,GAC7B,IAAIkE,EAAY9o3B,KAAKq1Q,mBAAmBuvmB,EAAamE,gBACjDC,EAAYhp3B,KAAKq1Q,mBAAmBuvmB,EAAaqE,gBACrD,MAAO,CACHtG,UAAW,CACP7+tB,IAAKgluB,EAAUhluB,IACfC,IAAKiluB,EAAUjluB,KAEnB6+tB,UAAW,CACP9+tB,IAAKkluB,EAAUlluB,IACfC,IAAK+kuB,EAAU/kuB,OAI3Bi9tB,UAAW,WACP,OAAO,IAAIpt1B,QAAQ,SAASC,GACpBm01B,MACAn01B,KAEKi01B,KACDA,GAAe9n3B,KAAK+k3B,kBAExB+C,GAAa3j3B,KAAK,WACV6j3B,MACAn01B,IAGJ7zB,KAAK+k3B,iBAAiB5g3B,KAAK0vB,IAC7Bo1B,KAAKjpD,SAEbipD,KAAKjpD,OAAOmE,KAAM,WAChB,OAAOyvB,QAAQ49J,IAAI,CAAC,IAAI59J,QAAS,SAASC,GACtCo01B,UAAUC,KAAKgB,WAAW,wBAAyB,CAC/Cxj3B,SAAUmuB,MAEb,IAAID,QAAS,SAASC,GACvBo01B,UAAUC,KAAKgB,WAAW,4BAA6B,CACnDxj3B,SAAUmuB,WAK1Bkx1B,eAAgB,WACZ,OAAO,IAAInx1B,QAAS,SAASC,GACzB5xB,GAAO8l3B,IAAkBl01B,EACzBq4T,uBAAiB,CACbzpV,IA/GE,qEAgHFgwG,SAAU,aAEdtuG,KAAM,WACN,WACWlC,GAAO8l3B,UACT/x2B,GACL/T,GAAO8l3B,SAAkB,MAIrCjyxB,MAAO,WACH,YAAKqzxB,aACEv11B,QAAQC,WAEnBs11B,WAAY,WACR,IAAI571B,EAAWvtB,KAAKioc,QAAQ,YAC5Bjoc,KAAK0pV,KAAO,IAAIu+hB,UAAUC,KAAKhh3B,IAAIlH,KAAKwxI,YAAY,GAAI,CACpD43uB,YAAapp3B,KAAKg/2B,WAAW,QAC7BrsjB,KAAM3yT,KAAKioc,QAAQ,QACnBohb,cAAe971B,EACf+71B,oBAAqB/71B,EACrBg81B,aAAch81B,KAGtBg3D,gBAAiB,WACbvkF,KAAKwp3B,2BAA6BvB,UAAUC,KAAKuB,OAAOC,WAAW1p3B,KAAK0pV,KAAM,aAAc1pV,KAAK2p3B,mBAAmB1g0B,KAAKjpD,OACzHA,KAAK4p3B,sBAAwB3B,UAAUC,KAAKuB,OAAOC,WAAW1p3B,KAAK0pV,KAAM,QAAS1pV,KAAK6l3B,oBAAoB58zB,KAAKjpD,QAEpH2p3B,mBAAoB,WAChB,IAAIpgzB,EAASvpE,KAAK0pV,KAAKzuF,YACvBj7P,KAAKioc,QAAQ,SAAUjoc,KAAK2k3B,uBAAuBp7yB,IACnD,IAAI6hJ,EAASprN,KAAK0pV,KAAK04B,YACvBpiX,KAAKioc,QAAQ,SAAUjoc,KAAKq1Q,mBAAmBjqD,IAC1CprN,KAAK8l3B,yBACN9l3B,KAAKioc,QAAQ,OAAQjoc,KAAK0pV,KAAKq8hB,YAGvCF,oBAAqB,SAAS7v2B,GACtB,QAAUA,EAAE+p0B,YACZ//0B,KAAKy/2B,iBAAiB,CAClBxs2B,SAAUjT,KAAKq1Q,mBAAmBr/P,EAAE/C,aAIhDghI,iBAAkB,WACd,IAAIlqD,EAAa/pF,KAAKwxI,YACtB,YAAKk4M,KAAK/zD,WAAW,CACjB/1N,SAAO+F,OAASokB,GAChBjqB,UAAQ4F,OAAUqkB,KAEfn2D,QAAQC,WAEnBiq1B,cAAe,WACX,IAAIry2B,EAAOzL,KAAKioc,QAAQ,QACpB4hb,EAAe5B,UAAUC,KAAK4B,aAClC,YAAKpgiB,KAAKu7B,QAAQ,CACd3wS,SAAS,EACTy1yB,UAAW/p3B,KAAKqj3B,SAAS532B,GACzBo+2B,aAAc,gBAAuBA,EAAa9sqB,OAAS8sqB,EAAa96yB,UAErEn7C,QAAQC,WAEnBkq1B,aAAc,WACV,OAAOnq1B,QAAQ49J,IAAI,CAACxxL,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,qBAAsBjoc,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,uBAAuB9jc,KAAK,SAASuO,GACjJ,IAAI62D,EAAS,IAAI0+yB,UAAUC,KAAK8B,aAAaC,cAAcv32B,EAAO,GAAIA,EAAO,IAC7E1S,KAAK0pV,KAAKu7B,QAAQ,CACd3wS,SAAS,EACT/K,OAAQA,KAEdtgB,KAAKjpD,QAEXg+2B,aAAc,WACV,OAAOh+2B,KAAKqk3B,iBAAiBrk3B,KAAKioc,QAAQ,WAAW9jc,KAAK,SAASinN,GAC/DprN,KAAK0pV,KAAKu7B,QAAQ,CACd3wS,SAAS,EACT82I,OAAQA,KAEdniK,KAAKjpD,QAEXi+2B,WAAY,WACR,YAAKv0hB,KAAKu7B,QAAQ,CACd3wS,SAAS,EACTq+O,KAAM3yT,KAAKioc,QAAQ,UAEhBr0a,QAAQC,WAEnBqq1B,eAAgB,WACZ,YAAKjjoB,QACEj7O,KAAKiyD,OAAOv2B,MAAM17B,KAAMD,YAEnCwh3B,cAAe,SAAS3v1B,GACpB,OAAO5xB,KAAKqk3B,iBAAiBzy1B,EAAQ3e,UAAU9O,KAAK,SAAS8O,GACzD,IAAIi32B,EAAiB,CACjBv4uB,KAAM//G,EAAQ401B,SAAWxm3B,KAAKioc,QAAQ,kBAE1C,GAAIr2a,EAAQmqD,KAAM,EACd18D,QAAO6q2B,EAAgB,CACnBC,YAAav41B,EAAQmqD,KACrBnc,MAAO,KACPE,OAAQ,OAEZ,IAAIwmzB,EAAa101B,EAAQ001B,WACrBA,IACA4D,EAAejw1B,OAAS,IAAIgu1B,UAAUC,KAAKpkgB,OAAOwigB,EAAWhrzB,MAAOgrzB,EAAW/qzB,MAGvF,IAAI6uzB,EAAU,IAAInC,UAAUC,KAAKmC,QAAQp32B,EAAUi32B,GACnDlq3B,KAAK0pV,KAAK4giB,SAASjh3B,KAAK+g3B,GACxB,IACI1i3B,EADA6i3B,EAAUvq3B,KAAK6vkB,eAAe58jB,EAAU2e,EAAQijR,SAEpD,GAAIjjR,EAAQkyB,SAAWlyB,EAAQijR,QAAS,CACpC,IAAI6xkB,EAAoB1m3B,KAAK292B,WAAWrmxB,cAAc1lE,EAAQkyB,SAAWwI,OACrEq6zB,EAA2B3m3B,KAAKq1Q,mBAAmBpiQ,GACvDvL,EAAUug3B,UAAUC,KAAKuB,OAAOC,WAAWU,EAAS,QAAU,WAC1D1D,EAAkB,CACdzz2B,SAAU0z2B,IAEV4D,GACAA,EAAQ50lB,WAAW,CACf5mN,SAAS,MAKzB,MAAO,CACH97D,SAAUA,EACVmrJ,OAAQgstB,EACRG,QAASA,EACT7i3B,QAASA,IAEfuhD,KAAKjpD,QAEX6vkB,eAAgB,SAAS58jB,EAAU2e,GAC/B,GAAKA,EAGLA,GAAU5xB,KAAKk/2B,qBAAqBtt1B,GACpC,IAAI241B,EAAU,IAAItC,UAAUC,KAAKsC,QAAQv32B,EAAU,CAC/CyiI,YAAa9jH,EAAQnb,KACrB0zD,OAAQ,IAAI89yB,UAAUC,KAAKpkgB,MAAM,EA1PnB,IA2Pd/0S,QAASn9C,EAAQm9C,UAErBw7yB,SAAQtF,OAAOjl3B,KAAK0pV,MACb6giB,IAEXzI,eAAgB,SAAS1jtB,GACrBp+J,KAAK0pV,KAAK4giB,SAASzp3B,OAAOu9J,EAAOA,QAC7BA,EAAOmstB,SACPnstB,EAAOmstB,QAAQtF,OAAO,MAEtB7mtB,EAAO12J,SACPug3B,UAAUC,KAAKuB,OAAOjsW,cAAcp/W,EAAO12J,UAGnDy62B,aAAc,SAASvw1B,GACnB,OAAOgC,QAAQ49J,KAAI9wK,SAAIkR,EAAQujlB,UAAW,SAASv8d,GAC/C,OAAO54I,KAAKqk3B,iBAAiBzruB,IAC/B3vF,KAAKjpD,QAAQmE,KAAK,SAASgxmB,GACzB,OAAO,IAAIvhlB,QAAQ,SAASC,GACxB,IAAI+1C,EAAY,IAAIq+yB,UAAUC,KAAKI,WAAWmC,kBAAkBzq3B,KAAK0pV,MACjEl0M,EAAQ,IAAIq2J,GAAMj6Q,EAAQ4jH,OAASx1I,KAAK092B,sBAAsB1xkB,QAC9D0+kB,EAAa,IAAIzC,UAAUC,KAAKr8kB,MAAM8+kB,QAAQn1uB,GAClDk1uB,EAAWzv1B,EAAI,KAAOrJ,EAAQwmD,SAAWp4E,KAAKy92B,wBAC9C7zyB,EAAUghzB,iBAAiB,CACvBC,mBAAmB,EACnBC,sBAAsB,EACtBC,uBAAwB,CACpBh8yB,SAAS,GAEbi8yB,uBAAwB,CACpBtD,YAAagD,EACbO,gBAAiBr51B,EAAQowR,QAAUhiT,KAAKw92B,uBAE5C0N,uBAAwB,CACpBxD,YAAagD,EACbO,gBAAiBr51B,EAAQowR,QAAUhiT,KAAKw92B,yBAGhD5zyB,EAAUuhzB,kBAAkB,CACxBC,UAAWpr3B,KAAK8j3B,cAAcly1B,EAAQ3iB,MACtCo82B,gBAAgB,KAEpBvizB,SAAKqsiB,EAAY,SAAS3wlB,EAAGvR,GACzB,IAAIq42B,EAAW,IAAIrD,UAAUC,KAAKI,WAAWiD,SAAS,CAClDt42B,SAAUA,IAEd22D,EAAU4hzB,YAAYF,KAE1B,IAAIG,EAAoB,GACxBA,EAAkBpi3B,KAAK4+2B,UAAUC,KAAKuB,OAAOC,WAAW9/yB,EAAW,oBAAsB,SAASjxD,GAC9F,KAAO8y2B,EAAkBhn3B,QACrBwj3B,UAAUC,KAAKuB,OAAOjsW,cAAciuW,EAAkBp52B,OAE1D,IAAIq52B,EAAe/y2B,EAAK+y2B,aAAa,GACrC731B,EAAQ,CACJoX,SAAU2+B,EACV+4yB,UAAW+I,EAAa/I,UACxBC,UAAW8I,EAAa9I,eAGhC6I,EAAkBpi3B,KAAK4+2B,UAAUC,KAAKuB,OAAOC,WAAW9/yB,EAAW,kBAAoB,SAASjxD,GAC5F,KAAO8y2B,EAAkBhn3B,QACrBwj3B,UAAUC,KAAKuB,OAAOjsW,cAAciuW,EAAkBp52B,OAG1DkU,OAAW,QADE,sBAAwB5N,EAAKgz2B,aAAe,MAAQhz2B,EAAK6hB,SAEtE3G,EAAQ,CACJoX,SAAU2+B,OAGlBA,EAAUgizB,uBACZ3i0B,KAAKjpD,QACTipD,KAAKjpD,QAEXui3B,cAAe,SAASL,GACpBA,EAAYj30B,SAAS6V,WAEzBug0B,WAAY,WAER,GADArh3B,KAAK0sQ,gBACD1sQ,KAAK6i3B,SAAW7i3B,KAAKioc,QAAQ,cAAe,CAC5C,IAAI2/a,EAAoB5n3B,KAAK0pV,KAAKq8hB,UAClC/l3B,KAAK8l3B,yBAA0B,EAC/B,IAAIv8yB,EAASvpE,KAAK6i3B,QAAQx4xB,QAC1B9gB,EAAOzJ,OAAS,IAAMyJ,EAAOzJ,OAC7ByJ,EAAO3J,MAAQ,IAAM2J,EAAO3J,MAC5B5/D,KAAK0pV,KAAKu7B,QAAQ,CACd3wS,SAAS,EACT/K,OAAQA,EACRopP,KAAMi1jB,IAEV,IAAIC,EAAmB7n3B,KAAK0pV,KAAKq8hB,UAC7B6B,EAAoBC,EACpB7n3B,KAAK0pV,KAAKu7B,QAAQ,CACd3wS,SAAS,EACTq+O,KAAMi1jB,IAGV5n3B,KAAKioc,QAAQ,OAAQ4/a,UAElB7n3B,KAAK8l3B,wBAEhB,OAAOly1B,QAAQC,WAEnB6u1B,cAAe,SAASzv2B,GAEhBjT,KAAK6i3B,QADL7i3B,KAAK6i3B,QACU,IAAIoF,UAAUC,KAAK8B,aAAaC,cAAcjq3B,KAAK6i3B,QAAQkG,eAAgB/o3B,KAAK6i3B,QAAQoG,eAAgBh22B,GAExG,IAAIg12B,UAAUC,KAAK8B,aAAa/22B,EArW5B,cAwW3BgoO,MAAO,WACH,OAAIj7O,KAAK0pV,OACLu+hB,UAAUC,KAAKuB,OAAOjsW,cAAcx9gB,KAAKwp3B,4BACzCvB,UAAUC,KAAKuB,OAAOjsW,cAAcx9gB,KAAK4p3B,uBACzC5p3B,KAAK+h3B,gBACL/h3B,KAAKwi3B,eACLxi3B,KAAK0pV,KAAK5oS,WAEPltB,QAAQC,aC1WnBg41B,IAAY,CACZC,aAAcA,IACd5I,OAAQA,IACR6I,KD0WW5D,KCtWX6D,IAAmB,gBACnB9k3B,IAAMkhG,WAAe,CACrB7T,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BoQ,OAAQ,CACJo5yB,UAAW,KACXC,UAAW,MAEfx3pB,OAAQ,CACJtnE,IAAK,EACLC,IAAK,GAET4uK,KAAM,EACN/yP,MAAO,IACPE,OAAQ,IACRr0D,KAAM,UACNstxB,SAAU,SACVkzF,YAAY,EACZvngB,QAAS,GACTwngB,cAAe,KACfC,cAAe,KACfC,gBAAiB,KACjB1i1B,OAAQ,GACR2i1B,aAAc,KACdC,eAAgB,KAChBC,OAAQ,CACJR,KAAM,GACN7I,OAAQ,GACR4I,aAAc,IAElBv+1B,UAAU,EACVi/1B,QAAS,KACT74mB,UAAW,KACX7vN,QAAS,QAGjB8wC,qBAAsB,WAClB,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,WACJ,MAAO,YAAcrB,UAAexB,aAAewB,kBAEvDpxC,QAAS,CACLi3E,mBAAmB,OAI/BqB,mBAAoB59C,MACpBwpC,MAAO,WACH91F,KAAKm5D,WACLn5D,KAAKm7D,WAAWvtD,SAnDR,UAoDR5N,KAAKys3B,iBAAmB741B,QAAQC,UAChC7zB,KAAK0s3B,aAAa,YAClB1s3B,KAAK0s3B,aAAa,WAClB1s3B,KAAK0s3B,aAAa,UAClB1s3B,KAAK2s3B,iBACL3s3B,KAAK4s3B,cACL5s3B,KAAKknI,UAAY,IAErB9lC,cAAe,WACX,OAAO,GAEXsrxB,aAAc,SAASp5zB,GACnB,IAAI1mD,EAAQ5M,KAAKszD,OAAOA,GACxB,GAAI,gBAAyB1qD,MAAM8B,QAAQkC,GACvC,MAAM2Z,SAAa,SAEvB,GAAI,eAAwB3d,MAAM8B,QAAQkC,GACtC,MAAM2Z,SAAa,UAG3Bom2B,eAAgB,WACZ3s3B,KAAKwxI,eAAcp2E,MAAE,SAASxtD,SAxEZ,oBAyElB5N,KAAKm7D,WAAWyuB,OAAO5pF,KAAKwxI,cAEhCo7uB,YAAa,WACT,IAAInl3B,EAAYinE,GAAa7H,QAAoB7mE,KAAKo1F,MACtD3mC,QAAgBzuD,KAAKm7D,WAAY1zD,EAAWzH,KAAK6s3B,aAAa5j0B,KAAKjpD,QAEvE6s3B,aAAc,SAAS722B,GACIhW,KAAK8s3B,WAAa9s3B,KAAK8s3B,UAAUhO,iBAAiB9o2B,KAAOhW,KAAKszD,OAAO,aAExFt9C,EAAEouE,mBAGV2oyB,cAAe,SAASz5zB,GACpB,IAAI1mD,EAAQ5M,KAAKszD,OAAOA,GACxBtzD,KAAKknI,UAAU5zE,GAAU1mD,EAAMtF,SAEnC8wF,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAKgt3B,gBACLht3B,KAAK+s3B,cAAc,WACnB/s3B,KAAK+s3B,cAAc,UACnB/s3B,KAAK8s3B,UAAY,IAAIjB,IAAU7r3B,KAAKszD,OAAO,cAActzD,KAAMA,KAAKwxI,aACpExxI,KAAKit3B,kBAAkB,SAAUjt3B,KAAKknI,UAAUw9O,QAAS1kX,KAAKknI,UAAUx9F,SAE5Esj1B,cAAe,WACX,IAAIE,EACAlt3B,KAAKszD,OAAO,aACZ45zB,GAAU9xzB,QAAE,SAASxtD,SAASo+2B,KAC9Bhs3B,KAAKm7D,WAAWyuB,OAAOsjyB,KAEvBA,EAAUlt3B,KAAKm7D,WAAW11B,KAAK,IAAMum1B,MAC7Bnr3B,UAGhB4iG,OAAQ,WACJzjG,KAAKgrG,mBACDhrG,KAAK8s3B,WACL9s3B,KAAK8s3B,UAAU7xoB,QAEnBj7O,KAAK8s3B,UAAY,KACjB9s3B,KAAKys3B,iBAAmB741B,QAAQC,UAChC7zB,KAAK++2B,gBAAgB,SAAU,CAC3B4D,UAAW,KACXC,UAAW,cAER5i3B,KAAKmt3B,sBAEhB52xB,eAAgB,SAAS59E,GACrB,IAAItV,EAAOsV,EAAKtV,KACZ+p3B,EAAYpt3B,KAAKqt3B,iBAErB,OADArt3B,KAAKqt3B,iBAAmB,KAChBhq3B,OACC,WACDrD,KAAKgt3B,gBACLht3B,KAAKm5D,SAASxgD,GACd,UACC,YACA,SACD3Y,KAAKm5D,SAASxgD,GACd3Y,KAAK6hG,oBACL,UACC,WACD7hG,KAAKmt3B,sBAAuB,EAC5Bnt3B,KAAK4jG,cACL,UACC,SACDr9E,OAAW,SACX,UACC,SACDvmB,KAAKit3B,kBAAkB,gBACvB,UACC,SACDjt3B,KAAKit3B,kBAAkB,gBACvB,UACC,OACDjt3B,KAAKit3B,kBAAkB,cACvB,UACC,OACDjt3B,KAAKit3B,kBAAkB,iBACvB,UACC,WACDjt3B,KAAKit3B,kBAAkB,iBAAkBjt3B,KAAKknI,UAAUw9O,QAAS1kX,KAAKknI,UAAUx9F,QAChF,UACC,aACD1pC,KAAKit3B,kBAAkB,kBACvB,UACC,cACA,SACDjt3B,KAAK0s3B,aAAarp3B,GAClB,IAAIq0D,EAAY13D,KAAKknI,UAAU7jI,GAC/BrD,KAAK+s3B,cAAc1p3B,GACnBrD,KAAKit3B,kBAAkB,UAAWhjnB,SAAS5mQ,GAAO+p3B,EAAYA,EAAUxtvB,QAAUloE,EAAW01zB,EAAYA,EAAUztvB,MAAQ3/H,KAAKknI,UAAU7jI,IAAOc,KAAM,SAASuO,GACxJ062B,GACAA,EAAUv51B,QAAQnhB,KAG1B,UACC,gBACD1S,KAAKit3B,kBAAkB,gBAAiBjt3B,KAAKknI,UAAUw9O,QAAS1kX,KAAKknI,UAAUw9O,SAC/E,UACC,cACA,gBACA,oBACA,sBACA,mBACA,qBACA,UACD,cAEA1kX,KAAKm5D,SAASz9B,MAAM17B,KAAMD,aAGtC6hG,mBAAoB,SAAS7yB,GACrBA,GACA/uE,KAAK6hG,qBAGbA,kBAAmB,WACf7hG,KAAKit3B,kBAAkB,qBAE3BA,kBAAmB,SAAS5p3B,GACxB,IAAIuuB,EAAU,GAAGtqB,MAAM8yB,KAAKr6B,WAAWuH,MAAM,GACzCgm3B,EAAqBtt3B,KAAKmt3B,qBAC9B,YAAKV,iBAAmBzs3B,KAAKys3B,iBAAiBto3B,KAAK,WAC/C,OAAKnE,KAAK8s3B,WAAaQ,EACZ151B,QAAQC,UAEZ7zB,KAAK8s3B,UAAUzp3B,GAAMq4B,MAAM17B,KAAK8s3B,UAAWl71B,GAASztB,KAAK,SAASuO,GAGrE,OAFAA,EAASi4E,GAAYj4E,IACK,KACL1S,KAAKw2F,WACtBx2F,KAAKut3B,sBAEF762B,EAAO,IAChBu2C,KAAKjpD,QACTipD,KAAKjpD,OACAA,KAAKys3B,kBAEhBc,oBAAqB,WACjBvt3B,KAAKo2F,sBAAsB,UAA3Bp2F,CAAsC,CAClCwt3B,YAAaxt3B,KAAK8s3B,UAAUps2B,SAGpC+s2B,qBAAsB,WAClBzt3B,KAAKo2F,sBAAsB,YAA3Bp2F,IAEJ++2B,gBAAiB,SAAS172B,EAAMuJ,GAC5B5M,KAAKk4F,8BAA8B70F,EAAMuJ,IAE7C8g3B,UAAW,SAAStvtB,GAChB,OAAOp+J,KAAK2t3B,aAAa,UAAWvvtB,IAExCwvtB,aAAc,SAASxvtB,GACnB,OAAOp+J,KAAK6t3B,gBAAgB,UAAWzvtB,IAE3C0vtB,SAAU,SAASl01B,GACf,OAAO55B,KAAK2t3B,aAAa,SAAU/z1B,IAEvCm01B,YAAa,SAASn01B,GAClB,OAAO55B,KAAK6t3B,gBAAgB,SAAUj01B,IAE1C+z1B,aAAc,SAAS77xB,EAAYk8xB,GAC/B,IAAIzmvB,EAAcvnI,KAAKszD,OAAOw+B,GAC1Bm8xB,EAAetjyB,GAAYqjyB,GAC/BzmvB,SAAYl+H,KAAKqyB,MAAM6rG,EAAa0mvB,GAC7Bju3B,KAAKku3B,0BAA0Bp8xB,EAAYy1C,EAAa0mvB,EAAc,KAEjFJ,gBAAiB,SAAS/7xB,EAAYq8xB,GAClC,IAAI5mvB,EAAcvnI,KAAKszD,OAAOw+B,GAC1Bs8xB,EAAiBzjyB,GAAYwjyB,GACjCrlzB,gBAAKslzB,EAAiB,SAASC,EAAeF,GAC1C,IAAI572B,KAAQ6jG,OAAU+3wB,GAAiBA,EAAgB,aAAiD,EAAS5mvB,EAAY/0H,QAAQ272B,GACrI,IAAI,MAIA,MAAM5n2B,OAAW,WAAS0jP,OAASn4K,EAAW9+E,UAAU,EAAG8+E,EAAWrtF,OAAS,IAAK0p3B,GAHpF,IAAIG,EAAW/mvB,EAAY90H,OAAOF,EAAO,GAAG,GAC5C672B,EAAe372B,OAAO472B,EAAe,EAAGC,KAKzCtu3B,KAAKku3B,0BAA0Bp8xB,EAAYy1C,EAAa,GAAI6mvB,IAEvEF,0BAA2B,SAASp8xB,EAAYy1C,EAAa0mvB,EAAcG,GACvE,OAAO7kvB,SAAY,IAAI31G,QAAQ,SAASC,GACpC7zB,KAAKqt3B,iBAAmB,CACpBx51B,QAASA,EACT8rG,MAAOsuvB,EACPruvB,QAASwuvB,GAEbpu3B,KAAKszD,OAAOw+B,EAAYy1C,IAC1Bt+E,KAAKjpD,OAAOmE,KAAM,SAASuO,GACzB,OAAOA,GAAU,MAAajO,OAASiO,EAAO,GAAKA,IAClD1S,SAGbk0I,GAAkB,QAAShtI,SCwKrBqn3B,UAAN,SAEmBA,SAAY9n3B,UAAO,SAA6BP,GAAK,OAAO,IAAKA,GAAKqo3B,IACtEA,EAAYt52B,UAAiCtO,MAAoB,CAAE8E,KAAM8i3B,IACzEA,EAAYr52B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACpF0hI,GACAuO,GACAwY,IACAxZ,GACAysB,GACAlO,IACA1oG,GACA1H,IACDskF,GACHuO,GACAwY,IACAxZ,GACAysB,GACAlO,IACApwG,MAnBFg8zB,MCyGAC,UAAN,SAEmBA,SAAa/n3B,UAAO,SAA8BP,GAAK,OAAO,IAAKA,GAAKso3B,IACxEA,EAAav52B,UAAiCtO,MAAoB,CAAE8E,KAAM+i3B,IAC1EA,EAAat52B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACrF8/H,GACA6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAhkB,GACA6jB,IACA7a,GACA8a,GACAtuG,GACA1H,IACD0iF,GACH6kB,GACApC,GACAsJ,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqQ,GACAjH,GACAhkB,GACA6jB,IACA7a,GACA8a,GACAh2G,MArCFi8zB,MClHAC,UAAN,SAEmBA,SAAkBho3B,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAKuo3B,IAClFA,EAAkBx52B,UAAiCtO,MAAoB,CAAE8E,KAAMgj3B,IAC/EA,EAAkBv52B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC1FsvI,GACAxqF,GACA1H,IACDkyF,GACHlyF,MATFk8zB,MCrcN,MAAM3gmB,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMsp2B,IAC9B7p3B,OAAO,OAML6p3B,SAAN,gBAAmCx4zB,GAC/Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,SAAUsI,KAAM,YAC7B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,OAAQsI,KAAM,UAC3B,CAAEtI,UAAW,MAAOsI,KAAM,SAC1B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,UAAWsI,KAAM,aAC9B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,aACR,CAAEA,KAAM,aACR,CAAEA,KAAM,cACR,CAAEA,KAAM,cACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCy6I,cACA,OAAOrnJ,KAAKozD,WAAW,WAEvBi0F,YAAQz6I,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3Bwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCuzF,aACA,OAAOngG,KAAKozD,WAAW,UAEvB+sC,WAAOvzF,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrC44J,gBACA,OAAOxlK,KAAKozD,WAAW,aAEvBoyG,cAAU54J,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bgue,0BACA,OAAO56e,KAAKozD,WAAW,uBAEvBwnb,wBAAoBhue,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvCypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3ByrI,YACA,OAAOr4I,KAAKozD,WAAW,SAEvBilF,UAAMzrI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB2pJ,gBACA,OAAOv2J,KAAKozD,WAAW,aAEvBmjG,cAAU3pJ,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B4N,UACA,OAAOxa,KAAKozD,WAAW,OAEvB54C,QAAI5N,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvB88D,UACA,OAAO1pE,KAAKozD,WAAW,OAEvBsW,QAAI98D,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvBqC,WACA,OAAOjP,KAAKozD,WAAW,QAEvBnkD,SAAKrC,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBvJ,WACA,OAAOrD,KAAKozD,WAAW,QAEvB/vD,SAAKuJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB05J,kBACA,OAAOtmK,KAAKozD,WAAW,eAEvBkzG,gBAAY15J,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B25J,sBACA,OAAOvmK,KAAKozD,WAAW,mBAEvBmzG,oBAAgB35J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnC8te,sBACA,OAAO16e,KAAKozD,WAAW,mBAEvBsnb,oBAAgB9te,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCi3M,WACA,OAAO7jN,KAAKozD,WAAW,QAEvBywJ,SAAKj3M,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBwyI,kBACA,OAAOp/I,KAAKozD,WAAW,eAEvBgsF,gBAAYxyI,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B6J,WACA,OAAOzW,KAAKozD,WAAW,QAEvB38C,SAAK7J,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxB+te,0BACA,OAAO36e,KAAKozD,WAAW,uBAEvBunb,wBAAoB/te,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvC+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBo6J,uBACA,OAAOhnK,KAAKozD,WAAW,oBAEvB4zG,qBAAiBp6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACHqlI,sBACA,OAAO7pJ,KAAKozD,WAAW,WAEvBy2F,oBAAgBj9I,GAChB5M,KAAKm0D,YAAY,UAAWvnD,GAEhCsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI+81B,GAAYnn3B,EAASoqB,GAEpChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,UAAWv8I,GAC7Bj2B,KAAKwyK,aAAa,mBAAoBv8I,GAE1Cu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,WAClB76D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB8h3B,SAAqBjo3B,UAAO,SAAsCP,GAAK,OAAO,IAAKA,GAAKwo3B,GAAsB/n3B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SAC5Z862B,EAAqB5i1B,UAAiCnlC,MAAqB,CAAE8E,KAAMij3B,EAAsB1o2B,UAAW,CAAC,CAAC,kBAAmBk4H,eAAgB,SAA6CxpF,EAAIv9C,EAAKgnI,GAE5N,GAFiP,EAALzpF,GAC1O/tD,MAAkBw3I,EAAU4G,GAAoB,GACzC,EAALrwF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAI0yI,gBAAkBzL,KAClE6vI,aAAc,SAA2Cv5N,EAAIv9C,GAAgB,EAALu9C,GACzE/tD,MAAc,cAAe,SAA6DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAtHluB,CAAkI,SAAU,SAAwDkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MAChOK,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsB2+C,QAAS,UAAWj/H,SAAU,WAAY+4E,YAAa,cAAe0H,kBAAmB,oBAAqB1I,OAAQ,SAAUrgC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqB48D,UAAW,YAAao1U,oBAAqB,sBAAuBvkV,QAAS,UAAWoP,QAAS,UAAWptB,MAAO,QAASke,UAAW,YAAa/7I,IAAK,MAAOkvD,IAAK,MAAOz6D,KAAM,OAAQ5L,KAAM,OAAQijK,YAAa,cAAe93E,SAAU,WAAY/pB,WAAY,aAAc8hG,gBAAiB,kBAAmBm0U,gBAAiB,kBAAmB72R,KAAM,OAAQzkE,YAAa,cAAevwE,SAAU,WAAYp4D,KAAM,OAAQkke,oBAAqB,sBAAuBh0U,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASo6J,iBAAkB,mBAAoBj4F,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE95H,SAAU,WAAYokF,eAAgB,iBAAkBo9D,OAAQ,SAAUC,MAAO,QAAStxE,YAAa,cAAeuxE,WAAY,aAAcl9D,UAAW,YAAaC,WAAY,aAAcxU,cAAe,gBAAiB0xE,QAAS,UAAWC,UAAW,YAAaC,QAAS,UAAW3xE,gBAAiB,kBAAmB4xE,QAAS,UAAW3R,eAAgB,iBAAkBke,gBAAiB,kBAAmBC,yBAA0B,2BAA4Bq7G,cAAe,gBAAiBh7G,eAAgB,iBAAkBC,kBAAmB,oBAAqBC,wBAAyB,0BAA2Bw7sB,aAAc,eAAgBv+tB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bk7G,gBAAiB,kBAAmBqgmB,0BAA2B,4BAA6BpgmB,cAAe,gBAAiBC,cAAe,gBAAiBC,YAAa,cAAeC,gBAAiB,kBAAmB03L,UAAW,YAAaE,UAAW,YAAasoa,WAAY,aAAc9/lB,WAAY,aAAcG,kBAAmB,oBAAqBC,eAAgB,iBAAkBr7G,iBAAkB,mBAAoBy7G,sBAAuB,wBAAyBu/lB,sBAAuB,wBAAyBC,WAAY,aAAcr/lB,kBAAmB,oBAAqBv7G,eAAgB,iBAAkBjN,WAAY,aAAc8ntB,0BAA2B,4BAA6Bp/lB,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAem7H,uBAAwB,yBAA0B7lI,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CAC77F2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAuC4F,EAAIv9C,KAAUzL,cAAe,IA5gBhKgj3B,MAmuBAQ,UAAN,SAEmBA,SAAkBzo3B,UAAO,SAAmCP,GAAK,OAAO,IAAKA,GAAKgp3B,IAClFA,EAAkBj62B,UAAiCtO,MAAoB,CAAE8E,KAAMyj3B,IAC/EA,EAAkBh62B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC1F6vI,GACAua,GACA9H,GACAx9F,GACA1H,IACDyyF,GACHua,GACA9H,GACAllG,MAbF28zB,MCvtBN,IACI79lB,OAAQA,IACR8B,GACAg8lB,IAAgBh8lB,oBAEhBkgB,IAAehiB,GAAOE,WACtB6hB,IAAc/hB,GAAOG,UACrB4xF,IAAiB/xF,GAAOI,aAExB29lB,IAAiB,CAAC/9lB,GAAOO,UAAWP,GAAOK,WAAYL,GAAOM,cAAeN,GAAOM,eAExF,aAA+BryI,EAAK76I,GAChC,MAAO,CACHmsB,EAAG0uH,EAAI1uH,EACP4qC,EAAG8jF,EAAI9jF,EAAI/2D,GAInB,aAAsBwxI,EAAQshK,GAC1B,OAAOthK,EAAOu9I,mBAAmBjgQ,OAAO,CAACtc,EAAG2hI,KACxC,IAAIrC,EAAQo3J,GAAe/0J,EAAMshO,aACjC,OAAC3jO,GAAS,IAAMA,GAAS,IAAMt/H,EAAEqgE,MAAQrgE,EAAEqkD,MAAMjyD,KAAKuvI,GAC/C3hI,GACRsgS,GAAU,CACTj8O,KAAM,GACNgc,MAAO,KAIf,YAAiCigO,EAAQ83kB,EAAeC,EAAkBr7lB,GACtE,IAAIs7lB,EACJ,OAAID,IACA/3kB,EAAOj8O,KAAK/zD,UACZgwS,EAAOjgO,MAAM/vE,WAEjBgo3B,EAAax2e,yCAAkDxhG,EAAOj8O,KAAM24N,GAAQ,GAAO,EAAOo7lB,GAC3Ft2e,yCAAkDxhG,EAAOjgO,MAAO28M,GAAQ,GAAO,EAAOo7lB,IAAkBE,EAoBnH,aAA6B3i3B,GACzB,OAAIwpG,SAAUxpG,GACNA,EAAQ,EACRA,EAAQ,EACDA,EAAQ,IACfA,EAAQ,GAGZA,OAAQ,EAELA,EAEX,IAAI4i3B,IAAmB,WACnB,WAAwB9i2B,EAAM9P,GAC1B,OAAO8P,EAAK5F,OAAO2o2B,GAAMA,IAAO7y2B,GAEpC,IAAI8y2B,EAAO,GACP/qE,EAAS,GACb,MAAO,CACHhgnB,MAAMogH,GACF,IAEUnoS,EAFN2X,EAAQwwR,EAAI4qkB,eAChBD,EAAiCE,EAAlBF,EAAM9y2B,EAAOmoS,GAAgCljS,OAAOjF,GAEnE2hD,aAAaomvB,EAAOpwxB,IACpBowxB,EAAOpwxB,GAASwrB,WAAW,KACrB,IAASxrB,EACHm71B,EACA5vb,EACA+vb,EAHGt71B,EAQTA,EAPMm71B,EAOCA,EAPc5o2B,OAAO3f,GAAKA,EAAEm8F,cAAgBn8F,EAAEwo3B,iBAAmBp71B,GAClEura,EAAYvlb,KAAKmvD,IAAIhuC,MAAM,KAAMg01B,EAAKhv2B,IAAIvZ,GAAKA,EAAE2o3B,qBAAqBt5uB,SACtEq5uB,EAASH,EAAK5o2B,OAAO3f,GAAKA,EAAE2o3B,qBAAqBt5uB,SAAWspT,GAChE4vb,EAAK1p3B,QAAQmB,GAAKA,EAAE8qD,OAAO,CACvBm0C,OAAO,EACP2pxB,gBAAiBF,EAAOpr3B,OAASor3B,EAAO,GAAGC,qBAAuB,SAKlFjv3B,OAAOkkT,IACH2qkB,EAAOE,EAAeF,EAAM3qkB,IAClBtgT,SACNkgzB,EAAS,MA3BF,GAgCnBqrE,GAAat2e,WAAkB,CAC/B3qF,cAAe,MACfisF,wBACI,OAAOnuF,SAAQ,EAAM,GAAI7sT,KAAKm5D,WAAY,CACtC68N,cAAei6lB,IAAoBjw3B,KAAKsgU,cAAc9rB,WAAW,aACjEve,iBAAkBg6lB,IAAoBjw3B,KAAKsgU,cAAc9rB,WAAW,mBAG5E2+C,kBAAmB,CACf0lB,SAAU,SACV7zD,YAAa,SACbkrkB,UAAW,UAEfn8e,eACIy7e,IAAiB3u3B,OAAOb,MACxBA,KAAKm5D,YAETusV,eACI,IAAIx7X,GAEA+rH,OAAQA,GACRj2I,KACJA,KAAK68Y,YAAc,CACfn6P,OAAQ,CAAC,CACLzM,OAAQA,EACRwjL,aAAc,CACVj1J,UAAW,aAGnB+0J,gBAAiB,QAAUrvS,EAAK+rH,EAAO,UAAO,WAAgB,EAAS/rH,EAAGsqR,eAGlF4jE,gBAAiB,IAAM,KACvB2uC,gBACI,IAAIjyC,GAAc,IAAIkzC,IAAcF,YAAY,IAAK,GACrD,MAAO,CACHzhC,cAAe,IAAMvR,EACrB2uE,iBAAiBj2P,GACbsnL,EAAW+yC,UAAUr6N,EAAM9jH,IAAK8jH,EAAMhzK,QAIlD0pY,yBACIlkZ,KAAKi2I,OAAOv1H,IAAIu1H,IACZ,IAAIu3C,EAAQ,IAAIqrO,GAChBrrO,SAAMsrO,SAAS7iR,EAAO4yO,eAAeptV,KACrCw6G,EAAOs6N,eAAekzE,iBAAiBj2P,GAChCA,KAGf84N,2BACI1qG,OAAM57S,KAAKi2I,OAAQ,CAACzxH,EAAG+uQ,KACnBA,EAAasqG,mBAGrB0oB,eAAgB,KAAM,EACtBtB,qBAAqB1xH,GACjBvzR,KAAKm5D,SAASo6N,GACdA,EAAasqG,iBAEjBqnB,2BACI,IAAIire,EAAgB,EACpBnw3B,KAAKi2I,OAAOjwI,QAAQ2Q,IAChBw52B,EAAgB512B,KAAKC,IAAI7D,EAAEgmX,iBAAkBwzf,KAEjDnw3B,KAAKi2I,OAAOjwI,QAAQ2Q,IAChBA,EAAEimX,kBAAkBuzf,KAExBnw3B,KAAKm5D,YAET6pV,kBAAkBpmY,GACd,IAAIwz2B,EAAapw3B,KAAKm5D,SAASv8C,IAE3B0lY,WAAYA,GACZ8te,EACJ9te,SAAWltQ,SAAWx4H,EAAKw4H,SAC3BktQ,EAAWvpG,cAAgBn8R,EAAKm8R,cAChCupG,EAAW/qG,OAAS,CAAC36R,GACdwz2B,GAEXtte,oBACI,IAAIute,EAAkB,IACrBrw3B,KAAKi2I,QAAU,IAAIjwI,QAAQiwI,IACxBA,EAAO8gK,YAAY/wS,QAAQ4yI,IACvB,IAAIxD,EAAWwD,EAAMxD,SAASjnF,UAC1B57C,EAAQ0jI,EAAOs8O,eAAen9O,GAAU5iI,QAAQomI,GAChDzmI,EAAMijI,EAASjnF,UAAU32C,WAAajF,EAC1C892B,EAAgBl+2B,GAAOk+2B,EAAgBl+2B,IAAQ,GAC/C,IAAIm+2B,EAAgBD,EAAgBl+2B,GAAK9I,KAAKuvI,GAC9CA,EAAMrmI,MAAQ892B,EAAgBl+2B,GAAKm+2B,EAAgB,GAAKD,EAAgBl+2B,GAAKm+2B,EAAgB,GAAG/92B,MAAQlG,OAAO0M,KAAKs32B,GAAiB5r3B,OAAS,EAC9Im0I,EAAMmgK,cAAgBxmS,MAG9B,IAAI8hD,EAAQ,GACZunP,gBAAMy0kB,EAAiB,CAAC7r2B,EAAG+yR,KACvBA,EAAOvxS,QAAQ,CAAC4yI,EAAOrmI,KACnB,GAAI,MAAJ,CAIA,IAAIqK,EAAOy3C,EAAMA,EAAM5vD,OAAS,GAChCmY,EAAK0lY,WAAW/qG,OAAOluS,KAAKuvI,GACvBh8H,EAAKmyD,UACNnyD,EAAKmyD,QAAU6pE,EAAM+5F,kBANrBt+K,EAAMhrD,KAAKrJ,KAAKgjZ,kBAAkBpqQ,QAUvCvkF,GAEX2qV,oBACI,MAAO,CAAC,CACJ/qH,OAAQj0R,KAAK40V,WAGrB27hB,iBAAiBt6uB,EAAQ0nQ,GACrB,IAAInnH,EACAvC,EAASj0R,KAAK40V,QACd47hB,GAAc,EAClBh6lB,SAASx2R,KAAK66Y,cAAcjlH,0BAA0B3B,EAAQh+I,GAAQ,GACtEA,EAAOjwI,QAAQutR,IACXA,EAAai4E,gBAAgBh1E,EAAQvC,GACrCu8lB,EAAcj9lB,EAAampG,sBAAwB8zf,IAEnDA,IACAh6lB,EAASx2R,KAAK66Y,cAAcjlH,0BAA0B3B,EAAQh+I,EAAQ0nQ,EAAY9nH,mBAEtF5/I,EAAOjwI,QAAQutR,IACXA,EAAa4wG,eAEjBnkY,KAAKyw3B,iBAAmB,CACpB7/1B,EAAG4lQ,EAAOrC,QACV34N,EAAGg7N,EAAOL,QACV3/I,OAAQggJ,EAAOF,YACfqnH,YAAaA,GAEVnnH,GAEXk6lB,6BAA6Bz6uB,EAAQ85uB,GACjC,IAAI97lB,EAASj0R,KAAK40V,QACdp+D,EAASx2R,KAAK66Y,cAActkH,yBAAyBtgJ,EAAQ85uB,GACjE95uB,SAAOjwI,QAAQ2Q,IACXA,EAAE60V,gBAAgBh1E,EAAQvC,GAC1Bt9Q,EAAE+lX,uBAEN18X,KAAK66Y,cAAcpkH,sBAAsBxgJ,EAAQugJ,EAAQvC,GAClDuC,GAEXypH,wBAAwBtC,GACpB,IAEIgze,EACAzsyB,EACAsyM,EAJAi2M,EAAgBzse,KAAKshZ,oBACrBsve,EAAsBnkZ,EAAchoe,QAKpCsr3B,gBAAiBA,GACjBpye,EACAize,IACAp6lB,EAASu5lB,EAAkB/v3B,KAAK0w3B,6BAA6BjkZ,EAAesjZ,GAAmB/v3B,KAAKuw3B,iBAAiB9jZ,EAAe9uF,GACpIz5T,GAASsyM,EAAOF,YAAcE,EAAOJ,YAAc+4lB,KAAiByB,EAAsB,IAAMA,EAChGD,EAAWn6lB,EAAOJ,YAClBp2R,KAAK6w3B,aAAar6lB,GAClBi2M,EAAczme,QAAQutR,IAClBA,EAAagmF,cAAc,CACvBnjF,YAAau6lB,EACbr6lB,YAAaq6lB,EAAWzsyB,IAE5BysyB,GAAYzsyB,EAAQiryB,QAIhCtve,cAAclC,EAAalH,EAAWmI,GAElC,GADA5+Y,KAAK+/Y,uBAAuBpC,EAAalH,IACpCkH,EAAYoye,iBAAmB/v3B,KAAK2v3B,eAGrC,OAFAH,IAAiB7qrB,MAAM3kM,WACvBA,KAAK+gZ,eAGT/gZ,KAAKggZ,sBAAsBrC,EAAaiB,IAE5Cs3C,aACI,OAAOl2b,KAAK23a,SAEhBthJ,iBACI,OAAOr2R,KAAKkic,cAEhBxhD,qBACI,IAAInpH,EAASv3R,KAAK20S,QACdtgP,EAAQr0D,KAAK8iZ,oBAAoBpiY,IAAIlc,GAAKA,EAAE89Y,YAChD,OAAOtgZ,IACHqyD,EAAMruD,QAAQoG,IACV,IAAImrS,EAAS,GACT7xS,EAAW6xR,EAAOgnD,kBAAkB,CACpChsU,MAAOnG,EAAKP,KAEhB7L,KAAKi2I,OAAOjwI,QAAQiwI,IAChB,IAAI0zV,EAAe1zV,EAAOomK,gBAAgBjwS,EAAKgpI,SAAUhpI,EAAK2sS,eAC9DxB,EAAOluS,KAAKqyB,MAAM67Q,EAAQoyL,KAE1B3ne,GAAUA,EAAOozI,WAAahpI,EAAKgpI,UAAYpzI,EAAO+2S,gBAAkB3sS,EAAK2sS,eAC7ExB,EAAOluS,KAAKrH,GAEhB0D,EAtQhB,aAA6B6xS,GACzB,IAAIr+Q,EAAQm6Q,IACZkE,SAAOvxS,QAAQ4yI,IACX,IAAI1uH,EACA87X,EAAgB,QAAU97X,EAAK0uH,EAAM3C,cAAW,WAAgB,EAAS/rH,EAAGsqR,aAC5Es8kB,EAAal4uB,EAAM0gK,UACnB,UAAY,MAAS0sG,OAA4C,EAASA,EAAc/tQ,aACxF64uB,IAAe19kB,KAEf,UAAY,MAAS4yG,OAA4C,EAASA,EAAc7gR,iBACxF2rvB,IAAe1tgB,KAEnBlqV,GAAS431B,IAEN1B,IAAel21B,GAwPD631B,CAAoBx5kB,QAIzCqpG,cAAcn9F,GACV,IACIutkB,EACAC,EAFAC,EAAiB,EAGrB,GACID,EAAkBjx3B,KAAK2gZ,oBAAoB,UAAYl9F,GACvDutkB,EAAuBhx3B,KAAKkhZ,yBAAyBz9F,UAC/CutkB,GAAwBC,MAAsBC,EAhT9B,IAkT9Bvwe,oBAAoBtmC,GAChB,OAAOr6W,KAAKi2I,OAAO1iH,OAAO,CAACtc,EAAGN,IAAMA,EAAE8lX,aAAapiB,IAAyBpjW,GAAG,IAEnFupY,oBAAqBlkG,MACrB+kG,gCACI,IAAIiue,EAAmB,kBAAoBtv3B,KAAKszD,OAAO,qBACnD69zB,EAAmBnx3B,KAAKi2I,OAAO1iH,OAAO,CAACtc,EAAGN,MACzCM,EAAEN,EAAE69R,aAAan8J,MAAMr+G,WAAa/iB,EAAEoia,SAAShwa,KAAKsN,GAC9CM,GACR,CACCmia,OAAQ,GACRxxR,QAAS,GACTyxR,QAAS,KAET+3c,GAAmB,EAcvBA,OAbID,EAAiB/3c,OAAO30a,OAAS,IAWjC2s3B,EAAmBC,GAVGF,EAAiB/3c,OAAO7lZ,OAAO,CAACtc,EAAGs8Q,IACjCA,EAAaC,mBACZjgQ,OAAO,CAACtc,EAAG2hI,KAC5B3hI,EAAEqkD,KAAKjyD,KAAKuvI,GACL3hI,GACRA,GACJ,CACCqkD,KAAM,GACNgc,MAAO,KAEiDg6yB,IAAuBhC,EAAkBtv3B,KAAK40V,UAAYw8hB,GAE1HA,EAAmBD,EAAiBvpuB,QAAQr0H,OAAO,CAACtc,EAAGs8Q,IAAiB89lB,GAAwBE,IAAah+lB,GAAe+9lB,IAAuBhC,EAAkBtv3B,KAAK40V,UAAY39U,EAAGm62B,GACrLD,EAAiB93c,QAAQ50a,OAAS,IAClC2s3B,EAAmBC,GAAwBF,EAAiB93c,QAAQ9lZ,OAAO,CAACtc,EAAGs8Q,IAAiBg+lB,IAAah+lB,EAAct8Q,GAAI,MAAO,CAACqoI,EAAK76I,IAAW+s3B,GAAmClyuB,GAAM76I,EAAQzE,KAAK23a,SAAU23c,EAAkBtv3B,KAAK40V,UAAYw8hB,GAEvPA,GAEXP,aAAa7t2B,GACT,IACImxQ,QAASvjQ,EACTulQ,QAAS36N,EACT46N,YAAaA,GACbpzQ,EACJhjB,KAAK23a,QAAU,CACX/mZ,EAAGA,EACH4qC,EAAGA,GAEPx7D,KAAKkic,aAAe9rK,GAExB8sH,iBACIljZ,KAAKm5D,SAASz9B,MAAM17B,KAAMD,WAC1BC,KAAKyx3B,gBAAkB,MAE3Btve,iBAAkB,QAClBc,qBAAsB,WACtBrD,6BAA8BtjG,MAC9BukG,gBAAiBvkG,MACjB6gG,aAAc,aACdrC,iBAAkBx+F,MAClBo1kB,kBAAmBp1kB,MACnB+iG,gBAAiB/iG,MACjBwjG,8BAA+BxjG,MAC/BoiG,iBAAkBpiG,MAClBuiG,gBAAiBviG,MACjB6iG,YAAa7iG,MACb8iG,YAAa9iG,MACbqiG,WAAYriG,MACZipG,4BAA6BjpG,MAC7B6+F,YAAa7+F,MACb8+F,aAAc9+F,MACd6pG,mBACI,MAAO,CACHroQ,WAAY99I,KAAKszD,OAAO,cACxBkhO,YAAax0R,KAAKszD,OAAO,eACzBmqU,kBAAmBz9X,KAAKszD,OAAO,qBAC/B7nD,KAAMzL,KAAKszD,OAAO,UAG1Bq8zB,eACI,OAAO3v3B,KAAKsgU,cAAc9rB,WAAW,cAEzCs7kB,qBACI,OAAO9v3B,KAAKyw3B,kBAAoB,OAGxC70kB,SAxYiC,CAAC,aAAc,cAAe,oBAAqB,QAwYlD,CAACp3R,EAAGnhB,KAClC2s3B,GAAW711B,UAAUg5T,kBAAkB9vV,GAAQ,6BAEnD2s3B,GAAWvkf,UAAUw1D,aACrB+ub,GAAWvkf,UAAUkmf,SACrB3B,GAAWvkf,UAAUkmf,aACrBz9uB,GAAkB,aAAc87uB,ICnbhC,UDobeA,OEraT4B,UAAN,gBAAkC17zB,GAC9Br2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,OAAQsI,KAAM,UAC3B,CAAEtI,UAAW,QAASsI,KAAM,WAC5B,CAAEtI,UAAW,WAAYsI,KAAM,cAC/B,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,aAAcsI,KAAM,gBACjC,CAAEtI,UAAW,mBAAoBsI,KAAM,sBACvC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,aAAcsI,KAAM,gBACjC,CAAEtI,UAAW,oBAAqBsI,KAAM,uBACxC,CAAEtI,UAAW,wBAAyBsI,KAAM,2BAC5C,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,wBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,kCACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,6BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,8BACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,wBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,eACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,gBAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnBsjT,qBACA,OAAOtjT,KAAKozD,WAAW,kBAEvBkwP,mBAAe12S,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCq6D,gBACA,OAAOjnE,KAAKozD,WAAW,aAEvB6T,cAAUr6D,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B4ie,kBACA,OAAOxve,KAAKozD,WAAW,eAEvBo8a,gBAAY5ie,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B+4b,qBACA,OAAO3lc,KAAKozD,WAAW,kBAEvBuyY,mBAAe/4b,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCw/S,+BACA,OAAOpsT,KAAKozD,WAAW,4BAEvBg5P,6BAAyBx/S,GACzB5M,KAAK6yD,WAAW,2BAA4BjmD,GAM5Cg2S,2BACA,OAAO5iT,KAAKozD,WAAW,wBAEvBwvP,yBAAqBh2S,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxCgqd,0BACA,OAAO52d,KAAKozD,WAAW,uBAEvBwja,wBAAoBhqd,GACpB5M,KAAK6yD,WAAW,sBAAuBjmD,GAMvC+4X,qBACA,OAAO3lY,KAAKozD,WAAW,kBAEvBuyU,mBAAe/4X,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlCo3W,qBACA,OAAOhkX,KAAKozD,WAAW,kBAEvB4wT,mBAAep3W,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC4vG,iBACA,OAAOx8G,KAAKozD,WAAW,cAEvBopD,eAAW5vG,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BisW,eACA,OAAO74W,KAAKozD,WAAW,YAEvBylT,aAASjsW,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B21S,aACA,OAAOviT,KAAKozD,WAAW,UAEvBmvP,WAAO31S,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B4nR,kBACA,OAAOx0R,KAAKozD,WAAW,eAEvBohO,gBAAY5nR,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B2qR,aACA,OAAOv3R,KAAKozD,WAAW,UAEvBmkO,WAAO3qR,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B01S,uBACA,OAAOtiT,KAAKozD,WAAW,oBAEvBkvP,qBAAiB11S,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCwmJ,aACA,OAAOpzJ,KAAKozD,WAAW,UAEvBggG,WAAOxmJ,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1Bo4S,kBACA,OAAOhlT,KAAKozD,WAAW,eAEvB4xP,gBAAYp4S,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/B00J,cACA,OAAOthK,KAAKozD,WAAW,WAEvBkuG,YAAQ10J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B20J,2BACA,OAAOvhK,KAAKozD,WAAW,wBAEvBmuG,yBAAqB30J,GACrB5M,KAAK6yD,WAAW,uBAAwBjmD,GAMxCm4T,mBACA,OAAO/kU,KAAKozD,WAAW,gBAEvB2xQ,iBAAan4T,GACb5M,KAAK6yD,WAAW,eAAgBjmD,GAMhCq2S,yBACA,OAAOjjT,KAAKozD,WAAW,sBAEvB6vP,uBAAmBr2S,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCq1S,qBACA,OAAOjiT,KAAKozD,WAAW,kBAEvB6uP,mBAAer1S,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC62S,8BACA,OAAOzjT,KAAKozD,WAAW,2BAEvBqwP,4BAAwB72S,GACxB5M,KAAK6yD,WAAW,0BAA2BjmD,GAM3C63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B6wX,wBACA,OAAOz9X,KAAKozD,WAAW,qBAEvBqqU,sBAAkB7wX,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCqpI,aACA,OAAOj2I,KAAKozD,WAAW,UAEvB6iF,WAAOrpI,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1BkjS,qBACA,OAAO9vS,KAAKozD,WAAW,kBAEvB08O,mBAAeljS,GACf5M,KAAK6yD,WAAW,iBAAkBjmD,GAMlC4zJ,WACA,OAAOxgK,KAAKozD,WAAW,QAEvBotG,SAAK5zJ,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBsj3B,gBACA,OAAOlw3B,KAAKozD,WAAW,aAEvB88zB,cAAUtj3B,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BkxI,iBACA,OAAO99I,KAAKozD,WAAW,cAEvB0qF,eAAWlxI,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9BoiI,YACA,OAAOhvI,KAAKozD,WAAW,SAEvB47E,UAAMpiI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB6kI,YACA,OAAOzxI,KAAKozD,WAAW,SAEvBq+E,UAAM7kI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBioS,cACA,OAAO70S,KAAKozD,WAAW,WAEvByhP,YAAQjoS,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BnB,WACA,OAAOzL,KAAKozD,WAAW,QAEvB3nD,SAAKmB,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAExB6ie,0BACA,OAAOzve,KAAKozD,WAAW,eAEvBq8a,wBAAoB7ie,GACpB5M,KAAKm0D,YAAY,cAAevnD,GAEhC+ie,qBACA,OAAO3ve,KAAKozD,WAAW,UAEvBu8a,mBAAe/ie,GACf5M,KAAKm0D,YAAY,SAAUvnD,GAE/BsrD,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAIig2B,IAAWrq3B,EAASoqB,GAEnChoB,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,cAAev8I,GACjCj2B,KAAKwyK,aAAa,aAAcv8I,GAChCj2B,KAAKwyK,aAAa,UAAWv8I,GAC7Bj2B,KAAKwyK,aAAa,SAAUv8I,GAEhCu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,eAClB76D,KAAKsyK,KAAKz3G,QAAQ,cAClB76D,KAAKsyK,KAAKz3G,QAAQ,WAClB76D,KAAKsyK,KAAKz3G,QAAQ,UAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhBgl3B,SAAoBnr3B,UAAO,SAAqCP,GAAK,OAAO,IAAKA,GAAK0r3B,GAAqBjr3B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACzZg+2B,EAAoB9l1B,UAAiCnlC,MAAqB,CAAE8E,KAAMmm3B,EAAqB5r2B,UAAW,CAAC,CAAC,iBAAkBk4H,eAAgB,SAA4CxpF,EAAIv9C,EAAKgnI,GAGxN,GAH6O,EAALzpF,IACtO/tD,MAAkBw3I,EAAUxH,GAAwB,GACpDhwI,MAAkBw3I,EAAU2H,GAAoB,IACzC,EAALpxF,EAAQ,CACV,IAAI0pF,EACJz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAIs4d,oBAAsBrxV,GACvEz3I,MAAkBy3I,EAAKz3I,WAAsBwQ,EAAIw4d,eAAiBvxV,KACjElpH,OAAQ,CAAEouR,eAAgB,iBAAkBr8O,UAAW,YAAauoa,YAAa,cAAe7pC,eAAgB,iBAAkBv5I,yBAA0B,2BAA4BxJ,qBAAsB,uBAAwBg0K,oBAAqB,sBAAuBjxF,eAAgB,iBAAkB3hB,eAAgB,iBAAkBxnQ,WAAY,aAAcq8P,SAAU,WAAYzwV,SAAU,WAAY+4E,YAAa,cAAeohN,OAAQ,SAAU/tB,YAAa,cAAe+C,OAAQ,SAAU+qB,iBAAkB,mBAAoBlvJ,OAAQ,SAAU4xJ,YAAa,cAAe1jJ,QAAS,UAAWC,qBAAsB,uBAAwBwjK,aAAc,eAAgB9hB,mBAAoB,qBAAsBhB,eAAgB,iBAAkBwB,wBAAyB,0BAA2Bh/O,WAAY,aAAcg5T,kBAAmB,oBAAqBxnP,OAAQ,SAAU65J,eAAgB,iBAAkBtvI,KAAM,OAAQ0vtB,UAAW,YAAapyuB,WAAY,aAAc9O,MAAO,QAASyC,MAAO,QAASojK,QAAS,UAAWppS,KAAM,QAAU4yI,QAAS,CAAE3pD,YAAa,cAAey0P,OAAQ,SAAU6mD,QAAS,UAAW38C,WAAY,aAAcD,YAAa,cAAeE,aAAc,eAAgBw8C,mBAAoB,qBAAsBt7S,cAAe,gBAAiBulT,cAAe,gBAAiBtlT,gBAAiB,kBAAmBolT,aAAc,eAAgBM,oBAAqB,sBAAuBF,wBAAyB,0BAA2BpyC,gBAAiB,kBAAmBD,eAAgB,iBAAkBkoI,qBAAsB,uBAAwBjqC,gBAAiB,kBAAmBmqC,kBAAmB,oBAAqB/pC,qBAAsB,uBAAwBoqC,+BAAgC,iCAAkCG,2BAA4B,6BAA8BG,0BAA2B,4BAA6BC,qBAAsB,uBAAwBC,qBAAsB,uBAAwB79T,iBAAkB,mBAAoB8+sB,eAAgB,iBAAkB5+sB,eAAgB,iBAAkBC,kBAAmB,oBAAqBgzR,aAAc,eAAgB4rb,kBAAmB,oBAAqB1rb,aAAc,eAAgBC,uBAAwB,yBAA0BC,aAAc,eAAgByrb,kBAAmB,oBAAqBxrb,cAAe,gBAAiBC,2BAA4B,6BAA8BC,mBAAoB,qBAAsB0qC,yBAA0B,2BAA4BzqC,qBAAsB,uBAAwBE,8BAA+B,gCAAiC9yR,iBAAkB,mBAAoBk+sB,wBAAyB,0BAA2BzgZ,aAAc,eAAgBE,qBAAsB,uBAAwB5qC,WAAY,aAAcorb,gBAAiB,kBAAmBC,iBAAkB,mBAAoBnrb,YAAa,cAAeC,YAAa,cAAeC,cAAe,gBAAiBgH,WAAY,cAAgBjpb,SAAU,CAACte,MAAsB,CACngG2rD,GACAxC,GACAklF,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAsC4F,EAAIv9C,KAAU7S,OAAQ,CAAC,2CAjezJst3B,MAuqBAQ,UAAN,SAEmBA,SAAiB3r3B,UAAO,SAAkCP,GAAK,OAAO,IAAKA,GAAKks3B,IAChFA,EAAiBn92B,UAAiCtO,MAAoB,CAAE8E,KAAM2m3B,IAC9EA,EAAiBl92B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACzFi/H,GACAa,GACA2B,GACAoI,GACA+W,GACAoE,GACAiO,GACA3d,GACAI,GACAzE,GACA6T,GACAhB,GACA8C,GACAtd,GACAuM,EACAyM,GACAkQ,GACAmB,IACAtV,GACAqJ,GACAc,GACA8R,GACAzE,GACA3N,GACAtX,GACAoiB,GACAQ,GACAkI,GACA52G,GACA1H,IACD6hF,GACHa,GACA2B,GACAoI,GACA+W,GACAoE,GACAiO,GACA3d,GACAI,GACAzE,GACA6T,GACAhB,GACA8C,GACAtd,GACAuM,EACAyM,GACAkQ,GACAmB,IACAtV,GACAqJ,GACAc,GACA8R,GACAzE,GACA3N,GACAtX,GACAoiB,GACAQ,GACAkI,GACAt+G,MA/DF6/zB,MC3qBN,IAAIC,IAAoB,CACpBplzB,OAAQ,UACR6qC,KAAM,YAENw6wB,GAAa,uBAEjB,aAA2Bzp2B,EAAM45F,GAC7B,IAAI71G,EAAQ,GACR2l3B,EAAiB9vwB,EAAOh+G,OAAS,EACrCqkE,gBAAKjgD,EAAM,CAACrkB,EAAGoY,KACXhQ,EAAMvD,KAAKuT,EAAKnG,MAAQi/U,GAAY94U,EAAKhQ,MAAO61G,EAAO8vwB,EAAiB/t3B,OAErEoI,EAAMrF,UAGjB,aAA0BzG,GACtB,IAAI8wG,EAAQ,EACZk7mB,UAAYhstB,EAAMy+U,IACd3tO,EAAQr3F,KAAKC,IAAIo3F,EAAO2tO,EAAQ96U,OAAS,KAEtCmtG,EAmIX,aAAgC4K,EAAY5qF,GACxC,IAAIymG,EAAa7b,EAAWg2wB,cAAc,QAC1C,GAAI,SAAW5g2B,EAAQ6g2B,mBAAqB,eAAiB7g2B,EAAQ8g2B,uBAAyB,MAAiBju3B,OAAQ,CACnH,IAAIku3B,EAAoB,GACxB7pzB,gBAAKuvD,EAAY,CAAC7zG,EAAGs7H,KACjB,IAAIkmV,EAAmB,CACnB3ie,KAAMy8I,EAAUS,QAChB9O,MAAOqO,EAAUS,QACjBikB,UAAW6ttB,IAAkBvyuB,EAAUrtC,WAAaqtC,EAAUrtC,SAC9D4lC,MAAO,CACHl4C,OAAQ2/C,EAAU3/C,SAGtB2/C,EAAU+H,gBACVm+U,EAAiB3tV,MAAMwP,cAAgB,SAASqgC,GAC5C,OAAOpoC,EAAU+H,cAAcztH,KAAK0lH,EAAWooC,KAGnD,eAAiBt2J,EAAQ8g2B,wBACzB1sZ,EAAiBrtV,KAAOmH,EAAUS,SAEtCoyuB,EAAkBtp3B,KAAK28d,KAEpB2sZ,EAEX,MAAO,CAAC,IAGZ,aAA4Bn2wB,EAAY5qF,GACpC,IAAI+kQ,EAAQ,GACRt+J,EAAa7b,EAAWg2wB,cAAc,QAC1C,OAAIn6vB,EAAW5zH,OAAS,GAAK,eAAiBmtB,EAAQ8g2B,uBAAyB,WAAmBD,oBAC9F3pzB,SAAKuvD,EAAY,CAAC7zG,EAAGs7H,KACjB62I,EAAMttR,KAAK,CACPhG,KAAMy8I,EAAUS,YAIvBo2I,EAAMlyR,QACPkyR,EAAMttR,KAAK,IAERstR,EAoDX,IAAIi8lB,IAAwB,CACxBC,UAAUt9kB,EAAOv+O,GACbA,GAAqB33C,QAAO,GAAI23C,GAChC,IAAIsc,EAAOtzE,KACP8y3B,EAAc,WACd97zB,EAAmB+7zB,eAAiBz/yB,EAAKhgB,OAAO,oBAChD,IAAI0/zB,EAvDhB,aAA4Bx2wB,EAAY5qF,GACpC,IACIm+Q,gBAAiBA,GACjBn+Q,GAEAqh2B,eAAgBA,GAChBrh2B,EACAoh2B,EAAe,CACf/ukB,UAAWivkB,IAAuB12wB,EAAY5qF,GAC9C+kQ,MAAOw8lB,IAAmB32wB,EAAY5qF,IAEtCwh2B,EAAiB,GACrB,OAAIH,IACAD,GAAe3z2B,SAAO,EAAM,GAAI2z2B,EAAcC,EAAeD,KAEjEA,EAAax2wB,WA5KjB,aAA+B62wB,EAAqBC,EAAYF,GAC5D,IAeIG,EACAzzuB,EACA0zuB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAxBA3n3B,EAAOin3B,EAAoBp+0B,UAC3BunE,EAAa,GACb6b,EAAag7vB,EAAoBb,cAAc,QAC/CzktB,EAAYsltB,EAAoBb,cAAc,OAC9C3ktB,EAAewltB,EAAoBb,cAAc,UACjD1nW,EAAiB,CAAC,CAClBv4gB,MAAOnG,EAAK4n3B,sBACZ731B,SAAU/vB,EAAKw7I,UAEfivZ,EAAc,CAAC,CACftkiB,MAAOnG,EAAK6n3B,mBACZ931B,SAAU/vB,EAAKulf,OAEfuiY,EAAWhlK,IAAiBr4K,GAC5Bs9U,EAAcjlK,IAAiBpkM,GAYnC,cACI,IAEIv1Y,GAFA6+uB,IAAYho3B,EAAK+M,OAAOq62B,KAAmB,IAAII,KAAsB,GACrEhn3B,GAAQwn3B,GAASb,GAEjBc,GAAkB,CAClBV,QAASA,GACTW,YAAaJ,EACbR,iBAAkBA,GAClB3ltB,UAAWA,EACXgmtB,oBAAqBA,GACrBQ,eAAgBJ,EAChBL,WAAYA,GACZjmtB,aAAcA,EACdx1C,WAAYA,EACZykQ,UAAWy2f,EACXiB,WAAYJ,GACZrlzB,QAAS8kzB,IAAoBJ,IAE7Bv9gB,IAAco9gB,EAAWv3vB,SAAWg4vB,GAAsBL,IAAkBp11B,KAAK,OACjF82G,IAAYk+uB,EAAWv3vB,SAAW23vB,GAAmBK,IAAqBz11B,KAAK,KAC/E+5F,EAAW5zH,OAAS,KAChB,SAAW6u3B,EAAWb,mBAAqB,WAAsBA,qBACjEr9uB,IAAY,MAAMvzH,OAAOi+H,EAAUS,UAEnC,SAAW+yuB,EAAWb,oBACtBv8gB,IAAc,MAAMr0V,OAAOi+H,EAAUS,SACjC,iBAA4BmyuB,wBAC5Bn9uB,GAAOuK,EAAUS,WAI7B8zuB,GAAgBI,cAAgB,CAC5Bh51B,SAAK,OAAmB,KAAO7uB,GAC/BqpI,OAAQigO,GACR5wR,IAAK8vD,IAETi/uB,GA9ER,aAAyBA,EAAiBK,GACtC,IACID,cAAeA,GACfJ,EACAM,EAAgBD,GAAeA,EAAYL,GAC/C,OAAIM,GACAF,GAAgBp12B,QAAO,GAAIo12B,EAAeE,EAAcF,eACxDE,GAAgBt12B,QAAO,GAAIg12B,EAAiBM,EAAe,CACvDF,cAAeA,KAIhBJ,EAkEeO,CAAgBP,GAAiBf,EAAWoB,aAC1DL,GAAgBtlzB,UAChBqkzB,EAAeiB,GAAgBI,cAAcx+uB,QAAUm9uB,EAAeiB,GAAgBI,cAAcx+uB,SAAWV,GAC/G/4B,EAAWnzG,KAAKgr3B,GAAgBI,gBAIxC,YAA0B3jyB,IACtBg8nB,GAAYj2K,EAAag+U,KACrBrB,GAAiBqB,GAAW,GAAGti3B,MAC/Bsi3B,GAAaA,GAAWvt3B,MAAM,EAAGut3B,GAAWpw3B,OAAS,GACrDgv3B,GAAgBS,IAAaW,GAAWpw3B,OACxCkv3B,GAAU3kK,GAAW6lK,IACrBnB,GAAmBpvc,IAAkBuwc,GAAY9mtB,GAC7C,OAActpK,SACdiv3B,GAAmB,CAACJ,EAAWP,iBAEnCjmK,GAAYhiM,EAAgBgqW,KACxBlB,GAAoBkB,GAAc,GAAGvi3B,MACrCui3B,GAAgBA,GAAcxt3B,MAAM,EAAGwt3B,GAAcrw3B,OAAS,GAC9Dov3B,GAAmBM,IAAgBW,GAAcrw3B,OACjDqv3B,GAAa9kK,GAAW8lK,IACxBf,GAAsBzvc,IAAkBwwc,GAAejntB,GACnD,OAAiBppK,SACjBsv3B,GAAsB,CAACT,EAAWP,iBAEtCjiyB,SAKZ,YAA0BprF,KACtBojE,SAAKuvD,EAAY,CAAC9lH,GAAOy+C,MACrB8uF,EAAY9uF,GACZui0B,EAAehh3B,GACf7M,OAGR,OAAI,IAAU4t3B,EAAWyB,oBACrBC,GAAiB,KACbC,GAAiBC,MAGrBD,GAAiB,KACbD,GAAiBE,MAGlB14wB,EA8DmB24wB,CAAsB34wB,EAAY5qF,EAASwh2B,GACrEJ,EAAaljlB,eAAiB,CAC1BE,UAAW,SACXD,gBAAgBmmE,GACZ,IAAI8vC,EAAgB,GACpB,MAAI,eAAiBp0X,EAAQ8g2B,sBACzB1se,EAAcrtQ,KAAOy6uB,EAAel9gB,GAC7B,iBAAyBw8gB,wBAChC1se,EAAczwQ,KAAO69uB,EAAel9gB,IAEpCnmE,IACAi2G,GAAgB3mY,QAAO2mY,EAAej2G,EAAgBmmE,EAAY8vC,KAE/DA,IAGRgte,EAwBoBoC,CAAmB9hzB,EAAKynC,gBAAiB/jD,GAC5Du+O,EAAMjiP,OAAO0/zB,IAGjB,GADAz9kB,EAxBR,aAA0B8/kB,GACtB,IAAKA,EACD,OAAO,EAEX,GAAIA,EAAajgyB,KACb,MAAO,YAAcigyB,EAAajgyB,MAAQigyB,EAE9C,IAAI7t3B,KAAU4zD,MAAEi6zB,GAChB,OAAO7t3B,EAAQ4E,KAAK,YAAc5E,EAAQs9d,QAAQ,YAgBtCwwZ,CAAiB//kB,IACpBA,EACD,OAAO,MAfnB,aAAuBA,GACnB,IAAIgglB,EAAShglB,EAAMp6O,WAAW/uD,KAAKkm3B,IACnCiD,GAAUA,KAeNC,CAAcjglB,GACdjiO,EAAK1pB,GAAG,UAAWkp0B,GACnBA,IACA,IAAI2C,EAAiB,WACjBlglB,EAAMp6O,WAAWQ,WAAW22zB,IAC5Bh/yB,EAAKzpB,IAAI,UAAWip0B,IAExBv9kB,SAAM3rP,GAAG,YAAa6r0B,GACtBz13B,KAAK4pD,GAAG,YAAa6r0B,GACrBlglB,EAAMp6O,WAAW/uD,KAAKkm3B,GAAYmD,GAC3BA,ICvRR,YAA4BC,GAC/B,IAAIzq1B,EAAWyq1B,IACXxy2B,EAAa,GACjB,OAAO,SAASpO,GACZ,IAAIsxF,EAAQrmG,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GACpE413B,EAAmB,CACnBp6zB,SAAK,MAAkBA,IAAMhhD,KAAKojF,KAAK7oF,EAAOymD,UAAO,EACrDD,UAAM,MAAkBA,KAAO/gD,KAAKojF,KAAK7oF,EAAOwmD,WAAQ,GAExDs6zB,EAAeD,EAAiBp6zB,MAAQr4C,EAAWq4C,KAAOo6zB,EAAiBr6zB,OAASp4C,EAAWo4C,MAC9F8qC,GAASwvxB,IAGd1y2B,EAAayy2B,EACb1q1B,EAASqtL,SAASxjN,KCW1B,IACI+g3B,IAAsB,SAASru3B,GAC/B,IAAIo4D,EAAQ,GAERkL,YAAaA,GACbtjE,EACJ,GAAIA,EAAQkgE,sBAAuB,CAC/B,IAAIg8nB,EAAap8nB,GAAgB9/D,IACjCo4D,EAAQ8joB,EAAW9joB,SAEfA,EAAQ8joB,EAAWpsnB,MAAQosnB,EAAWpooB,MAEtCsE,GAASkL,EAAc,IACvBlL,EAAQkL,GAGhB,OAAOlL,EAAQ,EAAIA,EAAQkL,GAG/B,aAA4Bo9jB,EAAWt/I,EAAey0D,EAAWy4U,GAC7D,IAAI3rzB,EAAS,EACT4rzB,EAAiB,EACjBC,EAAgB34U,EAAY,EAChC,OAAI6qF,EAAY4tP,GAAgBltY,EAAgBy0D,GAAa,GACrD6qF,GAAat/I,EAAgBy0D,EAAY24U,IACzCD,EAAiBhj3B,UAAUm1nB,GAAat/I,EAAgBy0D,IAAc24U,EAAe,KAEzF7rzB,EAASy+a,EAAgBy0D,EAAY24U,EAAgBD,GAClD7v3B,EAAgB0if,GACfs/I,GAAat/I,EAAgBotY,IAC7BD,EAAiBhj3B,UAAUm1nB,GAAat/I,EAAgBotY,IAAkBA,EAAe,KAE7F7rzB,EAASy+a,GAAiBy0D,EAAY24U,EAAgBD,IAEtD5rzB,EAASy+a,EAENz+a,EAEX,IAAI8rzB,GAAW93yB,aAAc,CACzBC,KAAK5vE,GACDxO,KAAKwO,UAAYA,GAErB8kD,SACI,OAAOtzD,KAAKwO,UAAU8kD,OAAO53B,MAAM17B,KAAKwO,UAAWzO,YAEvD8mhB,eAAet0gB,GACX,OAAIvS,KAAK8hhB,eAAiB9hhB,KAAK8hhB,cAAcr9gB,OAAS,EAC3CzE,KAAK8hhB,cAAc,GAAGnwB,KAAKp/e,GAE/B,MAEXs4oB,oBAAqB,OAAMzvlB,MAAE,SAC7B86zB,oBAAqB,OAAM96zB,MAAE,WAC7Bq4Y,aAAan7I,EAAMvwK,GACf,IAAIouuB,EAAW79jB,EAAK89jB,aAAe,QAAU99jB,EAAK7hT,MAAQ,QAC1D,OAAIsxI,KAAe,IAAOouuB,EAAS3j3B,QAAQ,OAAQ,IAAO2j3B,EAAS3j3B,QAAQ,QACvE2j3B,GAAW/6zB,QAAE,SAAS3kD,KAAK0/2B,GAAUp6yB,QAElCo6yB,GAEXE,sBACAC,mBAAmB1k2B,GACXA,EAAQ0mS,KAAK14P,OACbhuC,EAAQ2k2B,SAASlt3B,KAAK,aAAawY,OAAO+P,EAAQ0mS,KAAK14P,MAAO,OAE9DhuC,EAAQ0mS,KAAKk+jB,QACb5k2B,EAAQ6k2B,WAAWpt3B,KAAK,wBAGhCqt3B,sBAAuB,IAAMtk0B,mBAAyB,SACtDuk0B,2BAA4B,IAAM,WAClCC,oBAAoBp1W,EAAcp1gB,GAC9B,IACI83I,EACAo0K,EACA9zT,EACAq5F,EACAs4xB,EAGAU,EARA/gR,EAAY1pmB,EAAK3H,OAMjBggE,EAAazkE,KAAKszD,OAAO,cACzBy0F,EAAa/nJ,KAAKszD,OAAO,cAE7Bkud,EAAap1gB,KAAK,OAAQpM,KAAK823B,gBAC/Bt1W,EAAap1gB,KAAK,OAAQA,GAC1Bo1gB,EAAazld,IAAI,QAAS,IAC1B,IAAIg7zB,EAAQ/23B,KAAK023B,wBACjB,IAAKly3B,EAAI,EAAGA,EAAIsxmB,EAAWtxmB,GAAK,EAAG,CAC/B0/I,EAAM93I,EAAK5H,GACXqy3B,EAAgB,GAChB,IAAInzsB,EAAKtxH,mBAAyB,MAClC,IAAKyrC,EAAI,EAAGA,EAAIqmD,EAAIz/I,OAAQo5F,GAAK,EAAG,CAEhC79F,KAAKq23B,kBAAkB7x3B,EADvB8zT,EAAOp0K,EAAIrmD,GACqBg5xB,GAChC,IAAIG,EAAK5k0B,mBAAyB,MAClC,GAAIkmQ,EAAM,CACNA,EAAKn0K,SAAW6yuB,EAAGr03B,aAAa,UAAW21T,EAAKn0K,SAAW,GAC3Dm0K,EAAKr0K,SAAW+yuB,EAAGr03B,aAAa,UAAW21T,EAAKr0K,SAAW,GAC3D,IAAIwnO,GAAe,CACfgyF,iBAAa,EACbnlJ,KAAMA,EACN2+jB,WAAY/yuB,EAAIz/I,OAChB0uc,UAAWt1W,EACX+hb,gBAAY,EACZ/sE,SAAUruc,EACVsxmB,UAAWA,EACXrxiB,WAAYA,EACZgyzB,WAAY,GACZF,SAAU,IASd,GAPAv23B,KAAKs23B,mBAAmB7qgB,IACpBA,GAAa8qgB,SAAS9x3B,WACtBsJ,OAASip3B,EAAIvrgB,GAAa8qgB,SAASj41B,KAAK,MAExCmtV,GAAagrgB,WAAWhy3B,QACxBuy3B,EAAGr03B,aAAa,QAAS8oX,GAAagrgB,WAAWn41B,KAAK,OAEtD5gB,SAAU46S,EAAKz2K,UAAW,CAC1B,IAAIsvL,GAAM/+Q,mBAAyB,OACnC++Q,GAAItjU,UAAUpF,IAAI,4BAClB,IAAIyu3B,GAAQ9k0B,mBAAyB,QACrC8k0B,GAAMrp3B,UAAUpF,IAvHX,aAwHL0oU,GAAI7nU,YAAY4t3B,IAChBF,EAAG1t3B,YAAY6nU,IAEnBgljB,EAAWn23B,KAAKyzc,aAAan7I,EAAMvwK,QAEnCouuB,EAAW,GAEf,IAAIgB,GAAO/k0B,mBAAyB,QAMpC,MALI10C,OAAU46S,EAAKnrK,mBACfgquB,GAAK5u3B,MAAMi1E,WAAa86O,EAAKnrK,gBAAkB,SAAW,UAE9DgquB,GAAK7wwB,UAAY6vwB,EACjBa,EAAG1t3B,YAAY6t3B,IACX7+jB,EAAKk+jB,OAAQ,CACb,IAAIY,GAAShl0B,mBAAyB,QACtCgl0B,GAAOvp3B,UAAUpF,IAAI,kBACrBuu3B,EAAG1t3B,YAAY8t3B,IAEnB1zsB,EAAGp6K,YAAY0t3B,GAEfH,EAAcpy3B,QACdi/K,EAAG/gL,aAAa,QAASk03B,EAAcv41B,KAAK,MAEhDy41B,EAAMzt3B,YAAYo6K,GAEtB89V,EAAa53b,OAAOmtyB,GACpB/23B,KAAKq33B,uBAAuB71W,EAAcp1gB,IAE9Cir3B,uBAAuB71W,EAAcp1gB,GACjC,IAIIwzgB,EAEA03W,EAEApzuB,EACAo0K,EACAu6I,EACA0kE,EAXAs/B,EAAcr1B,EAAa/7e,KAAK,MAChC8x1B,EAAWv33B,KAAK823B,eAChB3wL,EAAiBnmsB,KAAKszD,OAAO,kBAC7BtE,EAAWhvD,KAAKwO,UAAU80D,gBAAgBtU,SAAS,gBAInDwo0B,EAAoBx33B,KAAKwO,UAAU0oF,qBAKvC,GAAIivmB,GAAkBn3oB,EAClB,IAAK6jZ,EAAW,EAAGA,EAAWzmc,EAAK3H,OAAQouc,GAAY,EAGnD,IAFA3uT,EAAM93I,EAAKymc,GACX+sE,EAAai3B,EAAY1vb,GAAG0rV,GACvB0kE,EAAc,EAAGA,EAAcrzX,EAAIz/I,OAAQ8ygB,GAAe,EAC3Dj/M,EAAOp0K,EAAIqzX,GAEX+/W,EAAqB,CACjBrgvB,KAAMsgvB,EACN1kb,SAAUA,EACV0kE,YAAaA,EACb95D,YAAalkY,GALFqmc,EAAWzjf,WAAWgrF,GAAGowZ,IAMpCj/M,KAAMA,GAEVr9R,EACIj7B,KAAKwO,UAAUip3B,SAAS,iBAAkBH,GAE1CnxL,GAAe9mrB,QAAOi42B,EAAoBE,KAM9DE,cAAcnl3B,GACV,IAAI2xI,EAAMlkJ,KAAK6mhB,eAAet0gB,GAC1ButD,EAAS,GAETspK,aAAcA,GACdllF,EACJ,OAAIA,GAAOA,EAAIm/C,WACPn/C,EAAIx8E,wBAEJ5H,EADiBwH,GAAgB48E,GACbpkF,SACNspK,EAAe,IACzBtpK,EAASspK,GAGVtpK,EAAS,EAAIA,EAASspK,GAE1B,GAEXuupB,cAAcpl3B,EAAO3F,GACjB,IAAIs3I,EAAMlkJ,KAAK6mhB,eAAet0gB,GAC1B2xI,IACAA,EAAI37I,MAAMu3D,OAAS,GAAGj+C,OAAOjV,EAAO,QAG5Cgr3B,gBACI,OAAI533B,KAAK8hhB,eAAiB9hhB,KAAK8hhB,cAAcr9gB,OAAS,EAC3CzE,KAAK8hhB,cAAc,GAAGnwB,KAAKltf,OAE/B,GAEXoz3B,gBAGI,QAFInl3B,EAAS,GACTol3B,EAAa933B,KAAK433B,gBACbpz3B,EAAI,EAAGA,EAAIsz3B,EAAYtz3B,GAAK,EACjCkO,EAAOrJ,KAAKrJ,KAAK033B,cAAclz3B,IAEnC,OAAOkO,GAEXql3B,cAAc5+2B,GAGV,QAFI6+2B,EAAc,EACdC,EAAe9+2B,EAAO1U,OACjBD,EAAI,EAAGA,EAAIyz3B,EAAczz3B,GAAK,EACnCwz3B,GAAe7+2B,EAAO3U,GACtBxE,KAAK233B,cAAcnz3B,EAAG2U,EAAO3U,IAEjCxE,KAAKk43B,aAAeF,EACpBh43B,KAAK8hhB,cAAc,GAAGv5gB,MAAMu3D,OAAS,GAAGj+C,OAAOm22B,EAAa,OAEhEG,kBACI,IACItlb,EACA3uT,EACA1/I,EACA+ygB,EAJAugX,EAAa933B,KAAK433B,gBAKlBQ,EAAiB,GACjB1l3B,EAAS,GACT2l3B,EAAY,SAAS5nX,EAAO59D,EAAU0kE,EAAaypG,EAASnhe,GAC5D,IAAIy4uB,EACAC,GACJ,IAAKD,EAAY,EAAGA,EAAYt3Q,EAASs3Q,GAAa,EAClD,IAAKC,GAAe,EAAGA,GAAe14uB,EAAS04uB,IAAgB,EAC3D9nX,EAAM59D,EAAWylb,GAAa7nX,EAAM59D,EAAWylb,IAAc,GAC7D7nX,EAAM59D,EAAWylb,GAAW/gX,EAAcghX,KAAgB,GAItE,GAAIT,EACA,IAAKjlb,EAAW,EAAGA,EAAWilb,EAAYjlb,GAAY,EAGlD,IAFAulb,EAAevlb,GAAYulb,EAAevlb,IAAa,GACvD3uT,EAAMlkJ,KAAK6mhB,eAAeh0E,GACrBruc,EAAI,EAAGA,EAAI0/I,EAAIusX,MAAMhsgB,OAAQD,GAAK,EAAG,CACtC,IAAK+ygB,EAAc,EAAG6gX,EAAevlb,GAAU0kE,GAAcA,GAAe,GAC5E8gX,EAAUD,EAAgBvlb,EAAU0kE,EAAarzX,EAAIusX,MAAMjsgB,GAAGw8mB,QAAS98d,EAAIusX,MAAMjsgB,GAAGq7I,SAChF,IAAMqE,EAAIusX,MAAMjsgB,GAAGq7I,UACnBntI,EAAO6kgB,GAAe7kgB,EAAO6kgB,IAAgBs+W,IAAoB3xuB,EAAIusX,MAAMjsgB,KAK3F,OAAOkO,GAEX8l3B,gBAAgBr/2B,GACZ,IAAI3U,EACAg9gB,EAAexhhB,KAAK8hhB,cAAc,GACtC9hhB,KAAKy43B,iBAAiB18yB,KAAK,IAC3B,IAAI83iB,EAAe7znB,KAAK043B,kBACpB1kW,EAAc,GAClB,IAAKxvhB,EAAI,EAAGA,EAAIqvnB,EAAcrvnB,GAAK,EAC/BwvhB,EAAY3qhB,KAAK8P,EAAO3U,IAAM,GAElC,IAAKA,EAAIqvnB,EAAcrvnB,EAAI2U,EAAO1U,QAAU0U,EAAQ3U,GAAK,EACrDwvhB,EAAY6/F,EAAe,IAAM16mB,EAAO3U,GAE5C,IAAKA,EAAI,EAAGA,EAAIqvnB,EAAcrvnB,GAAK,EAAG,CAClC,IAAIw/I,EAAM5xF,mBAAyB,OACnC4xF,EAAIz7I,MAAMq3D,MAAQ,GAAG/9C,OAAOmygB,EAAYxvhB,GAAI,MAC5CxE,KAAKy43B,iBAAiB7uyB,OAAOo6D,GAEjChkJ,KAAK243B,YAAc3kW,EAAYzggB,OAAO,CAACm6I,EAAK9tG,IAAU8tG,EAAM9tG,EAAO,GACnE4hd,EAAaj5gB,MAAMq3D,MAAQ,GAAG/9C,OAAO7hB,KAAK243B,YAAa,MACvDn3W,EAAaj5gB,MAAMqw3B,YAAc,SAErCC,uBACI9ppB,OAAS/uO,KAAKy43B,iBAAiBhz1B,KAAK,OAAQ,QAC5CzlC,KAAK8hhB,cAAc/ld,IAAI,CACnB6D,MAAO,GACPg5zB,YAAa,MAGrBE,cAAcls3B,GACV5M,KAAK4pf,iBAAiBt2b,OAAO,QAAS1mD,IAE1Cms3B,eAAens3B,GACX5M,KAAK4pf,iBAAiBt2b,OAAO,SAAU1mD,IAE3Cos3B,iBACI,OAAOh53B,KAAKi53B,qBAAqB,WAErCC,gBACI,OAAOl53B,KAAKi53B,qBAAqB,UAErCA,qBAAqBxpwB,GACjB,IAAI+wC,EAAOxgK,KAAKihR,eAAe,GAAG14Q,MAAMknH,GACxC,OAAI+wC,EAAKhuJ,QAAQ,MAAQ,EACd0pD,WAAWskG,GAEf,MAEXygH,eACI,OAAOjhR,KAAK0/iB,eAEhBl+B,eACI,OAAOxhhB,KAAK8hhB,eAEhBt6gB,UACI,OAAOxH,KAAK02b,cAEhByic,cACI,OAAOn53B,KAAK8hhB,cAAcr8e,KAAK,UAEnC2z1B,aAAa903B,GACLtE,KAAKszD,OAAO,gBACZhvD,EAAOgzE,MAAQhzE,EAAOg3D,YACfh3D,EAAOg3D,MAElBt7D,KAAKwhhB,eAAezld,IAAIz3D,IAE5B+03B,wBAAwBvk3B,GACpB9U,KAAKs53B,gBAAgBv9zB,IAAI,CACrB6D,MAAO9qD,EAAO8qD,MACdE,OAAQhrD,EAAOgrD,SAEnB,IAAI0/L,EAAax/P,KAAK4pf,kBAClB,MAASpqP,OAAsC,EAASA,EAAW7mC,eACnE34N,KAAK4pf,iBAAiBt2b,OAAO,UAAW,mBAExCtzD,KAAKihR,eAAerzQ,SAAS,oBAGrC2r3B,qBACI,IAAI/5nB,EAAax/P,KAAK4pf,kBAClB,MAASpqP,OAAsC,EAASA,EAAW7mC,eACnE34N,KAAK4pf,iBAAiBt2b,OAAO,UAAW,IAExCtzD,KAAKihR,eAAenzQ,YAAY,oBAGxC0r3B,yBACSx53B,KAAKs53B,iBAAmB,iBAAmBhm0B,OAAO,oBACnDtzD,KAAKs53B,mBAAkBl+zB,MAAE,SAASxtD,SAAS,sBAAsBX,aAAajN,KAAK8hhB,iBAG3Fv4f,QACI,IAAIi4f,EAAexhhB,KAAK8hhB,cAAc,GAOtC,GANA9hhB,KAAKy53B,YAAcz53B,KAAKy53B,WAAWjx1B,SACnCxoC,KAAKy53B,WAAa,KAClBz53B,KAAKu53B,qBACLv53B,KAAK843B,cAAc,QACnB943B,KAAK+43B,eAAe,QACpB/43B,KAAK643B,oBACDr3W,EAAc,CACd,QAASh9gB,EAAI,EAAGA,EAAIg9gB,EAAa7vB,KAAKltf,OAAQD,GAAK,EAC/Cg9gB,EAAa7vB,KAAKntf,GAAG+D,MAAMu3D,OAAS,GAExC0hd,EAAaj5gB,MAAMu3D,OAAS,GAC5B0hd,EAAaj5gB,MAAMq3D,MAAQ,SAGnC85zB,6BACI,IAAIl4W,EAAexhhB,KAAKwhhB,eAAe,GACnCm4W,EAAuB353B,KAAKszD,OAAO,cAAgB,QAAU,OAC7Dsm0B,EAAmB553B,KAAKy53B,WAAW,GACnCj4W,EAAaj5gB,MAAMgzD,MAAQq+zB,EAAiBrx3B,MAAMgzD,KAAOq+zB,EAAiBrx3B,MAAMox3B,KAA0Bn4W,EAAaj5gB,MAAMox3B,GAC7H353B,KAAKy53B,WAAW7r3B,SAAS,aAEzB5N,KAAKy53B,WAAW3r3B,YAAY,cAGpC+r3B,2BAA2B3xP,GACvB,IACI4xP,EADa953B,KAAKszD,OAAO,cACM,QAAU,OAEzC6W,EAAS4vzB,IAAmB7xP,EADPhskB,WAAWl8D,KAAKwhhB,eAAe,GAAGj5gB,MAAMux3B,IACF953B,KAAK243B,YAAa343B,KAAKk53B,iBAClFh9zB,WAAWl8D,KAAKy53B,WAAW,GAAGlx3B,MAAMux3B,MAAsB3vzB,IAC1DnqE,KAAKy53B,WAAW,GAAGlx3B,MAAMux3B,GAAmB,GAAGj42B,OAAOsoD,EAAQ,QAGtE6vzB,kBAAkB9xP,GACd,IACI/7jB,EAAY4tzB,IAAmB7xP,EADPhskB,WAAWl8D,KAAKwhhB,eAAe,GAAGj5gB,MAAMgzD,KACCv7D,KAAKk43B,aAAcl43B,KAAKg53B,kBACzF98zB,WAAWl8D,KAAKy53B,WAAW,GAAGlx3B,MAAMgzD,OAAS4Q,IAC7CnsE,KAAKy53B,WAAW,GAAGlx3B,MAAMgzD,IAAM,GAAG15C,OAAOsqD,EAAW,QAG5D8tzB,iBACIj63B,KAAK053B,8BAETQ,mBACSl63B,KAAKy53B,aACNz53B,KAAKy53B,WAAaz53B,KAAKwhhB,eAAen3b,QAAQz8E,SAAS,4BAA4Bi9D,SAAS7qE,KAAKs53B,mBAGzGrn0B,OAAO+8W,EAAa5ia,GAChB,GAAIpM,KAAK8hhB,cAAe,CACpB,IACI9hhB,KAAK8hhB,cAAc,GAAGx7Z,UAAY,SAC7BtwG,GACLhW,KAAK8hhB,cAAc9+b,QAEvBhjF,KAAK8hhB,cAAcn1a,WAAW,cAE9B3sG,KAAK0/iB,cAAgB1/iB,KAAK6qpB,sBAC1B7qpB,KAAK8hhB,cAAgB9hhB,KAAKk23B,sBAC1Bl23B,KAAK8hhB,cAAcj3c,SAAS7qE,KAAK0/iB,eACjC1/iB,KAAK0/iB,cAAc70e,SAASmkW,GAC5Bhva,KAAK02b,aAAe1nB,EAExBhva,KAAKy43B,kBAAmBr9zB,QAAE,cAAcyP,SAAS7qE,KAAK8hhB,eACtD9hhB,KAAK423B,oBAAoB523B,KAAK8hhB,cAAe11gB,GAC7CpM,KAAKw53B,yBAET5vY,iBACI,OAAO5pf,KAAKihR,eAAe70Q,KAAK,iBAEpC+t3B,sBACI,IAAIjw2B,EACJ,YAAKkw2B,iBAAmB,QAAUlw2B,EAAKlqB,KAAKo63B,wBAAqB,MAAgBlw2B,EAAKmw2B,GAAmB,IAAMr63B,KAAK4pf,kBAC7G5pf,KAAKo63B,kBAEhBE,kBAAkB96nB,GACd,IAAIqW,GAAmBz6M,QAAEokM,EAAWtrO,aAAalwB,IAAI,GACrD,OAAO6xQ,EAAiBnB,YAAcmB,EAAiB9qM,aAE3DnhB,GAAGniD,EAAWC,GACV,IAAI4rE,EAAOtzE,KACPw/P,EAAalsL,EAAKs2a,iBACtB,OAAIpqP,GACAA,EAAW51M,GAAGniD,EAAWuO,IACjBs9D,EAAKhgB,OAAO,gBAAiB51C,SAAU1H,EAAE6xC,aAAayT,QACtDtlD,EAAE6xC,aAAayT,KAAOgY,EAAKgnzB,kBAAkB96nB,GAAcxpP,EAAE6xC,aAAayT,MAE9E5zD,EAAQsO,KAGThW,MAEX6pD,IAAIpiD,GACA,IAAI+3P,EAAax/P,KAAK4pf,iBACtB,OAAIpqP,GACAA,EAAW31M,IAAIpiD,GAEZzH,MAEXs4N,SAASxlL,GACL,IAAIszD,EAAQrmG,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,IAAKA,UAAU,GACpEy/P,EAAax/P,KAAK4pf,iBACtB,GAAKpqP,EAGL,KAAI/6L,EAAazkE,KAAKszD,OAAO,cACzBik0B,EAAWv33B,KAAK823B,eAChByD,KAAgB5tyB,OAASA,QAAS,GAAI75C,GAAM,CAC5CwoB,MAAMmJ,GAAe,WAAa8yzB,GAAY,WAAuEzk1B,EAAIwoB,KAApDt7D,KAAKs63B,kBAAkB96nB,GAAc1sN,EAAIwoB,OAE5Ft7D,KAAKm63B,qBAC3BK,CAAgBD,EAAen0xB,GAC3BpmG,KAAKs53B,kBACLt53B,KAAKk63B,mBACLl63B,KAAKi63B,eAAenn1B,MAG5B2yc,mBACI,IAAIjmP,EAAax/P,KAAK4pf,iBACtB,GAAIpqP,EACA,OAAOA,EAAW/pO,UAI1Bij2B,kBACI,IAEIjoX,EAFAt0W,EAAc,EACdjY,EAAMlkJ,KAAK6mhB,eAAe,GAE9B,GAAI3iY,EAEA,QAAS1/I,EAAI,EAAGyuL,GADhBw9U,EAAQvsX,EAAIusX,OACgBhsgB,OAAQD,EAAIyuL,IAAOzuL,EAC3C23J,GAAes0W,EAAMjsgB,GAAGq7I,QAGhC,OAAOsc,GAEXlnH,UACI,IAAIuse,EAAexhhB,KAAK8hhB,cACxB,OAAON,EAAeA,EAAap1gB,KAAK,QAAU,MC1ftDqu3B,IAAWxE,WAAiB,CAC5Ba,aAAc,IAAM,OACpBjsO,oBAAqB,OAAMzvlB,MAAE,SAASxtD,SAPf,qBAO8CA,SANzC,0BAM6EmuD,IAAI,iBAAkB,GAC/Hu6zB,mBAAmB1k2B,GACf,IACI0mS,KAAMA,GACN1mS,GAEA6k2B,WAAYA,GACZ7k2B,GACA,MAAQ0mS,EAAK8gN,SAAW,MAAQ9gN,EAAKoikB,aACrCjE,EAAWpt3B,KAdK,aAgBhB,OAASivT,EAAK8gN,SAAW,OAAS9gN,EAAKoikB,aACvCjE,EAAWpt3B,KAhBW,kBAkBtB,MAAQivT,EAAK8gN,SAAW,SAAcA,UACtCq9W,EAAWpt3B,KAlBS,gBAoBpBuoB,EAAQihb,WAAajhb,EAAQkklB,UAAY,GACzClklB,EAAQ2k2B,SAASlt3B,KAAK,sBAE1BrJ,KAAKm5D,SAASvnC,IAElBqo2B,eAAe/xP,GACXlooB,KAAK653B,2BAA2B3xP,EAAUt3mB,GAC1C5wB,KAAKg63B,kBAAkB9xP,EAAU1skB,GACjCx7D,KAAKm5D,YAETwh0B,mBACI363B,KAAK0/iB,cAAcxJ,aAAa,CAC5B/wY,UAAWnlK,KAAK463B,oBAChB7mnB,uBAAuB,EACvBtvM,WAAYzkE,KAAKwO,UAAU8kD,OAAO,cAClC26M,eAAe,EACfgG,gBAAgB,KAGxB2mnB,oBACI,IACIz1tB,UAAWA,GACXnlK,KAAKwO,UAAU8kD,OAAO,aAC1B,MAAO,aAAyB4T,KAAoBi+F,GAExD2vY,oBACI,OAAO90iB,KAAK463B,oBAAsBlwzB,KAA4B,GAElEmwzB,wBAAwB732B,GACpB,IACI4mD,UAAWA,EACXnF,WAAYA,GACZzhD,EACAw8O,EAAax/P,KAAK4pf,iBACtBpqP,EAAWlsM,OAAO,YAAatzD,KAAK463B,qBACpCp7nB,EAAWlsM,OAAO,CACdsW,UAAWA,EACXnF,WAAYA,KAGpBq2zB,wBAAuBp/nB,EAAYC,IAC3BD,IAAeC,EACR,cAEND,GAAcC,EACR,WAEJ,OAEXpyO,QACIvpB,KAAKm5D,WACDn5D,KAAKs53B,iBACLt53B,KAAKs53B,gBAAgBvs3B,SAASgvD,IAAI,SAAU,SAGpDs9zB,wBAAwBvk3B,GACpB9U,KAAKm5D,SAASrkD,GACd9U,KAAKs53B,gBAAgBvs3B,SAASgvD,IAAI,SAAUjnD,EAAOgrD,QACnD9/D,KAAKo53B,aAAa,CACd79zB,IAAKzmD,EAAOymD,IACZD,KAAMxmD,EAAOwmD,UAIzB,UAAe,CACXm/zB,SAAUA,KC9Dd,IACIM,IAAa58yB,aAAc,WAC3B,IAAI64b,EAA0B,CAC1B5+O,KAAMtgL,IAAQA,IAAQA,GAAKmiL,cAC3B9B,QAASrgL,IAAQA,IAAQv9F,KAAKo7J,MAAM79D,GAAK4hL,WAAa,GAAK,EAC3DxB,MAAOpgL,IAAQA,IAAQA,GAAK4hL,WAAa,EACzC1B,IAAKlgL,IAAQA,IAAQA,GAAKuiL,UAC1B+zb,UAAWt2mB,IAAQA,IAAQA,GAAKsjL,UAGpC,WAAyBt7I,IACrB,OAAO,IAAOA,GAAUttI,QAAQ,MAAOm+E,SAAcmvD,IAAa,SAAS1zI,IACvE,OAAOA,GAAK0zI,KAIpB,WAAsB+iP,IAClB,OAAO,SAASz2X,IACZ,IAAIQ,GAAQi2X,GAAaz2X,IACzB,OAAIQ,MAAWA,cAAiBohD,QAC5BphD,GAAQ+pT,mBAAkC/pT,KAEvCA,IAIf,WAAuB61G,OACnB35C,OAAK25C,IAAU,GAAI,CAACj+F,GAAGwsC,MACnB,IAAIgq0B,GACAC,GAIA1uuB,GAIAs2O,IANA/iP,UAAWA,IACX9uF,IAGAkq0B,OAAQA,IACRlq0B,GAEJ,IAAKA,GAAMouB,SAAU,CAWjB,GALIyjT,GALJ1hN,GAKmBg6sB,EAAgBr7uB,IAJhB,SAAS1zI,IACpB,OAAOA,IAKX8u3B,IACAE,EAAcF,IAEd,SAAWlq0B,GAAMyhD,SAAU,CAC3BwoxB,GAAmBjkX,EAAwBhmd,GAAMu7F,eACjD,IAAIywN,GAAgBq+gB,EAAax4f,IACjCm4f,GAAgB,SAAS5u3B,IACrB,IAAIQ,GAAQowW,GAAc5wW,IAC1B,OAAO6u3B,GAAmBA,GAAiBru3B,IAASA,QAEjD,WAAaokD,GAAMyhD,UAC1B85C,IAAgBn2C,SAAUplD,GAAMu7F,gBAAkBv7F,GAAMu7F,cAAgB,GAAKv7F,GAAMu7F,cACnFyuuB,GAAgB,SAAS5u3B,IACrB,IAAIQ,GAAQi2X,GAAaz2X,IACzB,OAAImwE,SAAS3vE,MACTA,GAAQ2sD,OAAO3sD,KAEZ2/I,GAAgBhyI,KAAKo7J,MAAM/oK,GAAQ2/I,IAAiBA,GAAgB3/I,KAG/Eou3B,GAAgBn4f,GAEpBusV,GAA+Bp+pB,IAC/Bo7pB,GAAiBp7pB,GAAO,WAAYgq0B,OAKhD,WAAgC5u3B,GAAM8pG,GAAasznB,GAAS9b,IACxD,IAAIh7sB,GAAS,CAAC,GACVq3jB,GAAc7zd,GAAYw3mB,aAAeA,GAAax3mB,GAAYrtF,KAAKpkB,OAAS,EAChF623B,GAAgB,YAAwBplxB,GAAY23mB,iBAAmB33mB,GAAY03mB,oBAOvF,OAAE,YAAsCz3X,GAASvkU,GAASuK,GAAU4tiB,GAAawxT,IAC7E,IAIIC,GACAC,GAIgCC,GAAgBH,GAAUI,GAClDF,GAVRhswB,GAAY79F,GAAQo2L,WAAW+hX,KAE/B6xT,kBAAmBA,IACnBhq2B,GAGA69F,KACA+rwB,GAAiB/rwB,GAAUrwC,SAASxtD,GAAQxlB,MAC5Cmv3B,QAAW,OAAsBA,GA7F5B,MA6FwDC,GAAiB,GAAG352B,OAAO252B,IACxDE,GAWdv/1B,IAVVs/1B,IADkDE,GAWpB/p2B,GAAQ+p2B,cAXEJ,GAWpBA,OARpBE,GAAgB,CACZ7u3B,MAOV4u3B,GANUjp3B,MAAOop3B,GAAal33B,UAExBk33B,GAAaJ,IAAYE,GACzBC,GAAery3B,KAAKoy3B,KAI5BtliB,GAAQ9sV,MAZRoy3B,GAUWA,IAEgBlp3B,QACvBqp3B,IAAqBA,GAAkBL,KAAa9rwB,GAAUoyB,YACzD45uB,GAAct/1B,WACfs/1B,GAAct/1B,SAAW,IAE7B0/1B,GAA6B1liB,GAASvkU,GAAS6p2B,GAAct/1B,SAAU4tiB,GAAc,EAAGwxT,MA3BlG,CA8BA7o3B,GApCY,CACVtG,KAAMA,GACNuv3B,aAAcnyJ,GAAQ,GAAG3ntB,OAAO6rsB,GAAY,SAC5C1lgB,WAAY9xG,GAAYw3mB,IACxBkuK,kBAAmB1lxB,GAAYw3mB,aAAeA,IAAc4tK,IAAiBA,GAAcx+xB,MAgC5E0soB,GAAQ9b,IAAa3jJ,IACjCr3jB,GAGX,WAAkCtG,GAAMqkgB,GAAO+4N,GAAS53sB,IACpD,IACIhB,GACA4qC,GACAq3Y,GACA0kE,GAJAukX,GAAU,GAKV5zV,GAAa6zV,EAAuB3v3B,GAAMwlB,GAAS43sB,GAAS,QAC5Dx0M,GAAgB+mW,EAAuB3v3B,GAAMwlB,GAAS43sB,GAAS,WACnE,IAAKhuqB,GAAI,EAAGA,GAAI0se,GAAWzjiB,OAAQ+2D,IAAK,EAGpC,IADAi1c,GADA59D,GAAWq1F,GAAW1se,KACJi1c,GAAM59D,KAAa,GAChCjib,GAAI,EAAGA,GAAIokgB,GAAcvwhB,OAAQmsB,IAAK,EAEvCkr2B,GAAQzy3B,KAAKongB,GAAM59D,IADnB0kE,GAAcyd,GAAcpkgB,KACgB6/e,GAAM59D,IAAU0kE,KAAgB,IAGpF,OAAOukX,GAGX,WAA8BR,IAC1B,GAAIA,GAAe,CACf,IAAIx+xB,GAAOw+xB,GAAcx+xB,KAAO,GAChCw+xB,GAAct13B,QAAQ6iB,KAClB,IAAIu9iB,GAAYv9iB,GAAKnI,IAAI9T,IAAS,GAAGiV,OAAOjV,KAAQ0xB,KA7I/C,OA8ILw+D,GAAKspe,KAAa,KAK9B,WAA2Bx0iB,IACvBA,GAAQ+/d,KAAO//d,GAAQ+/d,MAAQ,GAC/B//d,GAAQg2H,QAAUh2H,GAAQg2H,SAAW,GACrCh2H,GAAQopG,QAAUppG,GAAQopG,SAAW,GACrCghwB,EAAqBpq2B,GAAQg8rB,qBAC7BouK,EAAqBpq2B,GAAQi8rB,kBAC7ButK,EAAcxp2B,GAAQg2H,SACtBwzuB,EAAcxp2B,GAAQ+/d,MACtBypY,EAAcxp2B,GAAQzY,QACtBii3B,EAAcxp2B,GAAQopG,SAG1B,WAAuBhqE,IACnB,MAAI,WAAaA,GAAMk8F,aACnBl8F,GAAMo7F,uBAAyBp7F,GAAMo7F,wBAA0B9/F,MACxD,CACHzzB,OACI,IAAIjH,GAAU,CACVuupB,eAAgB,QAChBC,gBAAY,GAEhBpvnB,UAAMo7F,uBAAuBx6H,IACtBA,IAEXiyL,MAAKjyL,GAAShlB,MACVglB,GAAQuupB,eAAiB,YACzBvupB,GAAQhlB,MAAQA,GAChBokD,GAAMo7F,uBAAuBx6H,IACtBA,IAEX8tB,SAAS9tB,KACLA,GAAQuupB,eAAiB,kBAClBvupB,GAAQhlB,MACfokD,GAAMo7F,uBAAuBx6H,IACtBA,GAAQwupB,cAIpBpF,eAAYhqnB,GAAMk8F,cAAgB8thB,qBAG7C,WAAyBihN,GAAUC,GAAkB9v3B,IACjD,QAAS+v3B,GAAkB,EAAGA,GAAkBF,GAASx33B,OAAQ033B,IAAmB,EAKhF,QAJIC,GAAYH,GAASE,IACrB53R,GAAY63R,GAAUh9yB,SAAShzE,IAC/B2uqB,GAAashN,EAAcD,IAC3BE,GAA2B,mBAAsBvhN,GAAWlipB,KACvD0j2B,GAAe,EAAGA,GAAeL,GAAiBz33B,OAAQ833B,IAAgB,EAAG,CAClF,IAAIjkkB,GAAO4jkB,GAAiBK,IACxBjkkB,GAAK7zT,QAAU033B,KACf7jkB,GAAK6jkB,IAAmBG,GAA2BvhN,GAAWlipB,OAASkipB,GAAWlipB,WAElF,IAAJ4soB,GAAoB02N,IAChB7jkB,GAAK6jkB,IAAmB53R,MACjB7mlB,OAAU6mlB,MACjBjsS,GAAK6jkB,IAAmBphN,GAAWl3d,KAAKy0G,GAAK6jkB,IAAkB53R,MAM/E,WAAwBp8c,GAAayiN,IACjC,IAAI4xhB,GAAgBr0uB,IAAeA,GAAYh6F,UAC3Csu0B,GAAe7xhB,IAAcA,GAAWz8S,UAC5C,GAAIvlD,MAAM8B,QAAQy9I,IAAc,CAC5ByiN,GAAaA,IAAc,GAC3B,QAASpmW,GAAI,EAAGA,GAAI2jJ,GAAY1jJ,OAAQD,IAAK,EAGzC,IAFAg43B,GAAgBr0uB,GAAY3jJ,KAAM2jJ,GAAY3jJ,IAAG2pD,cACjDsu0B,GAAe7xhB,GAAWpmW,KAAMomW,GAAWpmW,IAAG2pD,WAE1C,OAAO,EAGf,OAAO,EAEX,OAAOqu0B,KAAkBC,GAG7B,WAAgChtwB,IAC5B,IAAIuL,GAAU,GACdlyD,gBAAK2mD,GAAW,CAACjrG,GAAGwsC,MAChB,IAAIo3F,GAAep3F,GAAMo3F,cAAgB,IAErCpuD,UAAWA,IACXhpC,GACAgpC,OAAaoc,OAAUplD,GAAMy3F,aAGjCL,GAAa3jJ,QAAUu2H,GAAQ3xH,KAAM,SAASkzT,IAS1C,QARI3vT,GAAQokD,GAAMkq0B,OAAS,SAASA,GAAQ9u3B,IACxC,IAAIQ,GAAQ,GACZk8D,gBAAKoyzB,GAAQ,CAAC122B,GAAGwsC,MACbpkD,GAAMvD,KAAK2nD,GAAMouB,SAAShzE,OAEvBQ,GALgB,CAMzBokD,GAAMkq0B,OAAQ3+jB,IAAYvrQ,GAAMouB,SAASm9O,IACvC7pT,IAAS,EACJlO,GAAI,EAAGA,GAAI4jJ,GAAa3jJ,OAAQD,IAAK,EAC1C,GAAIk43B,EAAet0uB,GAAa5jJ,IAAIoI,IAAQ,CACxC8F,IAAS,EACT,MAGR,MAAO,YAAcs+C,GAAMk3F,YAAcx1I,GAASA,OAGnDsoH,GAGX,WAAsBppG,IAClB,IAAIopG,GAAU2hwB,EAAuB/q2B,GAAQ+/d,MAAM9ve,OAAO862B,EAAuB/q2B,GAAQg2H,UAAU/lI,OAAO862B,EAAuB/q2B,GAAQopG,UACrI4hwB,GAAqBhr2B,GAAQA,GAAQ87rB,aAErC7ksB,KAAMA,IACN+I,GACJ,OAAIgr2B,IACA5hwB,GAAQ3xH,KAAKkzT,KAET,QADIsgkB,GACKr43B,GAAI,EAAGA,GAAIqkB,GAAKpkB,OAAQD,IAAK,EAElC,GADAq43B,GAAcD,GAAmBp43B,IAAG46E,SAASm9O,OACzC7tO,OAAamuyB,IAAa,MAAUnuyB,SAAa7lE,GAAKrkB,KAAI,GAC1D,OAAO,EAGf,OAAO,IAGR,SAAS+3T,IACZ,QAAS/3T,GAAI,EAAGA,GAAIw2H,GAAQv2H,OAAQD,IAAK,EACrC,IAAKw2H,GAAQx2H,IAAG+3T,IACZ,OAAO,EAGf,OAAO,GA+Df,YAA0B//M,GAAYsgxB,IAClC,IAAIh22B,GAAS01F,GAAW11F,SACxB,OAAI01F,GAAWjnG,kBAAmB88F,YAAevrF,IAC7CA,GAASi22B,GAAcj22B,GAAQg22B,IACxBvkwB,GAAU/b,GAAWnoD,SAASvtC,OAAOA,IAAQ20E,WAEjD+gB,GAAWnoD,QAGtB,YAAwBmoD,GAAYsgxB,GAAgBtjxB,IAChD,IAAI17D,GAAI,IAAI01B,MACRwpzB,GAAmC,SAASpr2B,IACxC4qF,GAAWjnG,kBAAmB+6F,KAC9B1+E,GAAQynF,iBAAiBvyF,OAASi22B,GAAcnr2B,GAAQynF,iBAAiBvyF,OAAQg22B,MAIzF,GADAtgxB,GAAW5yD,GAAG,4BAA6Boz0B,KACtCxgxB,GAAWvF,YAAcuC,GAAQ,CAClC,IAAIyjxB,GAAezjxB,GAASgD,GAAW9rE,OAAS8rE,GAAWhD,UAC3D3lC,SAAKopzB,IAAc/ozB,KAAK,KACpBgpzB,GAAe1gxB,GAAYsgxB,IAAgB5ozB,KAAK,KAC5Cp2B,GAAEjqB,QAAQsp2B,GAAiB3gxB,GAAYsgxB,OACxC3ozB,KAAKr2B,GAAEjE,UACXs6B,KAAKr2B,GAAEjE,aAEViE,GAAEjqB,QAAQsp2B,GAAiB3gxB,GAAYsgxB,KAE3C,OAAOh/0B,GAAEg2B,OAAO,KACZ0oC,GAAW3yD,IAAI,4BAA6Bmz0B,MAIpD,YAA+Bh32B,GAAWy8F,IACtCA,GAAOz8G,QAAQgrD,KACX,GAAIA,GAAM8uF,WAAa,YAAiBrtC,SAAU,CAC9C,IAAIuqQ,GAAgBq+gB,EAAaF,EAAgBnq0B,GAAM8uF,YACvD95H,GAAUgrC,GAAM8uF,WAAa,SAAS1zI,IAClC,OAAO4wW,GAAc5wW,QAMrC,YAA2BwlB,IACvB,IAAI5L,GAAY,GAChB,OAAIpd,MAAM8B,QAAQknB,IACdwr2B,GAAsBp32B,GAAW4L,IAC1BA,IACP,CAAC,OAAQ,UAAW,WAAW5rB,QAAQixI,KACnCrlH,GAAQqlH,KAASmmvB,GAAsBp32B,GAAW4L,GAAQqlH,OAG3DjxH,GAGX,YAAuBc,GAAQg22B,IAC3B,IAAKl03B,MAAM8B,QAAQoc,IACf,OAAOA,GAEXA,GAASA,GAAOxf,MAAM,IAClBi1E,SAASz1D,GAAO,MAAQA,GAAO,aAAcknC,MAAQlnC,GAAO,aAAcknC,QAC1ElnC,GAAO,GAAKg22B,GAAeh22B,GAAO,KAEtC,QAAStiB,GAAI,EAAGA,GAAIsiB,GAAOriB,OAAQD,IAAK,EACpCsiB,GAAOtiB,IAAKu43B,GAAcj22B,GAAOtiB,IAAIs43B,IAEzC,OAAOh22B,GAEX,MAAO,CACHs3D,KAAKxsD,IACD5xB,KAAKq93B,iBAAmBzr2B,GAAQ0r2B,mBAAqBhx0B,MACrDtsD,KAAKi8G,YAAc,IAAI9I,GAAWvhF,IAClC5xB,KAAKi8G,YAAYpJ,UAAS,IAE9B0qxB,UAAU96wB,IACN,IAAIjG,GAAax8G,KAAKi8G,YAClBn+D,GAAI,IAAI01B,MACZ0pzB,UAAe1gxB,GAAYghxB,GAAkB/6wB,KAASvuC,KAAK9nE,KACvD0xC,GAAEjqB,QAAQs7rB,IAAqB/itB,GAAMq2G,OACtCtuC,KAAKr2B,GAAEjE,QACHiE,IAEX3rC,MACI,OAAOnS,KAAKi8G,YAAY9pG,OAE5Bu+B,KAAK9e,IACD,IAAI0hD,GAAOtzE,KACPw8G,GAAalpC,GAAK2oC,YAClBn+D,GAAI,IAAI01B,MACZiqzB,SAAkB7r2B,IAClBsr2B,GAAe1gxB,GAAYghxB,GAAkB5r2B,IAAUA,GAAQ4nF,QAAQtlC,KAAK9nE,QACxEynE,OAtJZ,WAAkBxf,GAAOziC,GAAS8r2B,IAC9B,IAWIxB,GACA9v3B,GAZAo9tB,GAAU,CACV5hlB,QAAS,GACT+pW,KAAM,GACNgsY,YAAa,CACTl53B,OAAQ,GAEZm53B,SAAU,CACNn53B,OAAQ,IAGZ0U,GAAS,GAGT2kC,GAAI,IAAI01B,MACRhvE,GAAI,EACJsiB,GAAS+lJ,EAAaj7I,IAC1B,OAAE,cAGE,QAFI1rB,GAAI,IAAI8nD,KACRnoB,GAAarhC,GACVA,GAAI6vD,GAAM5vD,OAAQD,IAAK,EAAG,CAC7B,GAAIA,GAAIqhC,IAAcrhC,GAAI,KAAQ,GAC1B,IAAIwpD,KAAO9nD,IAAK,IAGhB,OAFAw33B,GAAel53B,GAAI6vD,GAAM5vD,aACzBs7C,WAAW0mV,GAAa,GAK5B3/W,GADJ1a,GAAOioD,GAAM7vD,OAET033B,GAAmB2B,EAAyBzx3B,GAAM+M,GAAQqwtB,GAAS53sB,IACnEks2B,EAAgBls2B,GAAQzY,OAAQ+i3B,GAAkB9v3B,KAe1D,IAAcqkgB,GAZaA,GAAQt3f,IAAa2vD,SAArCl3C,GAAQzY,OAA4C,CAACgj3B,GAAiBC,MAC7E,IAAIrhN,GAAashN,EAAcD,IAC3BrhN,GAAWr7nB,WACXopB,SAAK2nc,GAAO,CAACjsf,GAAG0/H,OACZp7E,SAAKo7E,GAAK,CAAC1/H,GAAG8zS,MACNA,SAAQ,OAAgB6jkB,MACxB7jkB,GAAK6jkB,IAAmBphN,GAAWr7nB,SAAS44Q,GAAK6jkB,YAOrEuB,GAAe,GACf5/0B,GAAEjqB,QAAQ,CACN89d,KAAM63O,GAAQ73O,KACd/pW,QAAS4hlB,GAAQ5hlB,QACjBzuI,OAAQA,GACR862B,mBAAoB,EACpBD,sBAAuB,IApC7B,GAuCKl20B,GA8FMmilB,CAAS7znB,GAAMwlB,GAAS0hD,GAAK+pzB,mBAAmBnpzB,KAAKp2B,GAAEjqB,WAC7DsgD,KAAKr2B,GAAEjE,QACHiE,IAEXh3B,SACI,IAAI01F,GAAax8G,KAAKi8G,YACtB,OAAOO,GAAW11F,OAAO4U,MAAM8gF,GAAYz8G,YAE/Cg+3B,cAAe,KAAM,EACrBvvK,kBAAkBt4mB,GAAaphG,IAE3BA,GAASA,IAAU,GACnB2o3B,EAFAvnxB,GAAcA,IAAe,IAkB7B,QAbIt5F,GAFAoh3B,GAAiB,GACjB3p0B,GAAQr0D,KAAKi8G,YAAY5nD,SAGzB4p0B,YAAaA,IACbnp3B,IAEAop3B,cAAeA,IACfpp3B,GACAgS,GAAS+lJ,EAAa32D,IACtBioxB,GAAatxtB,EAAa,CAC1B8kV,KAAM09N,GAAiBn5mB,GAAYy7Y,KAAM78e,GAAO6+2B,SAChD/ruB,QAASynkB,GAAiBn5mB,GAAY0xC,QAAS9yI,GAAOg/2B,YACtD94vB,QAAS,KAEJx2H,GAAI,EAAGA,GAAI6vD,GAAM5vD,OAAQD,IAAK,EAAG,CACtC,GAAI253B,GAAW9p0B,GAAM7vD,MAAOsiB,GAAOutC,GAAM7vD,KAAK,CAC1C,GAAI053B,GAAe,CACfth3B,GAAO,GACP,QAASihF,GAAI,EAAGA,GAAIqgyB,GAAcz53B,OAAQo5F,IAAK,EAC3CjhF,GAAKsh3B,GAAcrgyB,KAAMxpC,GAAM7vD,IAAG053B,GAAcrgyB,UAGpDjhF,GAAOy3C,GAAM7vD,IAEjBw53B,GAAe303B,KAAKuT,IAExB,GAAIqh3B,GAAc,GAAKD,GAAev53B,SAAWw53B,GAC7C,MAGR,OAAOD,KA7dY,IAge1BnuwB,QAAQw+lB,ICtgBT1wC,IAAe,WAAsBvxqB,EAAM1G,EAAUksG,GACrDxlG,EAAOA,GAAQ,GACfwlG,EAAQA,GAAS,EACjB,QAASptG,EAAI,EAAGA,EAAI4H,EAAK3H,OAAQD,GAAK,EAAG,CACrC,IAAI+vB,EAAQnoB,EAAK5H,GACjBkB,EAAS6uB,EAAOq9E,GACZr9E,GAASA,EAAM8/B,OAAS9/B,EAAM8/B,MAAM5vD,QACpCk5qB,EAAapppB,EAAM8/B,MAAO3uD,EAAUksG,EAAQ,KCyBxD,aAA+BwsxB,EAAkBC,GAC7C,IAAIloW,EAAkB,GACtBrtd,gBAAKs1zB,EAAkB,CAAC7r3B,EAAO+r3B,KAC3BnoW,EAAgB9shB,KAAK,CACjB+1E,SAAUk/yB,EAAgBx+uB,UAC1ByM,cAAe+xuB,EAAgB/xuB,cAC/BytX,KAAMqkX,GAAgB,WAA2B50uB,UACjDiuX,WAAYnlgB,EAAQ6r3B,EAAiB353B,OAAS,MAG/C0xhB,EAiBX,aAAqC/2c,EAAUm/yB,EAAiB5nzB,EAAc6nzB,GAG1E,MAAO,CAFgB,CAACp/yB,EAAUo/yB,EAAuB,IAAM,KAAM7nzB,GAE3C6nzB,EAAuB,KAAO,MADnC,CAACp/yB,EAAUo/yB,EAAuB,KAAO,IAAK7nzB,EAAe4nzB,IAkBtF,aAAsCvt0B,EAAO+iC,GACzC,IAAI0qyB,EAAyB,GAC7B,OAAIzt0B,EAAM6jD,YACC,CAAC7jD,EAAM8uF,UAAW,WAAY9uF,EAAM6jD,cAG3C9gB,EADA,cAAoBm0D,WACRn0D,GAAa,MAEbA,GAAa,QAE7BjrB,OAAK9X,EAAMo3F,aAAc,CAAC71I,EAAO41I,KAC7B,IAAIu2uB,EAAoB,GACpB913B,MAAM8B,QAAQy9I,GACan3F,EAAMkq0B,QAAUlq0B,EAAMkq0B,OAAOz23B,SAEpDi63B,EAAoBC,IAA6B,CAC7Cv2uB,aAAcD,EACdD,WAAYl3F,EAAMk3F,WAClBgzuB,OAAQlq0B,EAAMkq0B,QACf,QAIPwD,EArCZ,aAA2C1t0B,EAAOm3F,GAC9C,IAAI/oE,EArBR,aAAgCpuB,GAC5B,IAAIouB,EAAWpuB,EAAM8uF,WAEjByM,cAAeA,GACfv7F,EACJ,MAAI,SAAWA,EAAMyhD,UAAY,iBAAoB85C,IAC7C,YAAcA,EAAct6I,gBAC5Bs6I,EAAgB,SAEpBntE,EAAW,GAAGv9D,OAAOu9D,EAAU,KAAKv9D,OAAOytsB,GAAsB/ikB,KAE9DntE,EAUQw/yB,CAAuB5t0B,GAClCwt0B,EAAuB,YAAcxt0B,EAAMk3F,WAC3C22uB,EAAa,CAACz/yB,EAAUo/yB,EAAuB,KAAO,IAAKr2uB,GAC/D,OAAIzqI,SAAUszC,EAAMu7F,iBACZ,iBAAoBv7F,EAAMu7F,eAAiB,cAAoBA,cAAct6I,cAC7E4s3B,EAAaC,IAA4B1/yB,EAAU,EAAG,GAAK+oE,EAAc,GAAK,EAAGq2uB,GAC1E,iBAAoBxt0B,EAAMu7F,eAAiB,SAAWv7F,EAAMyhD,WACnEosxB,EAAaC,IAA4B1/yB,EAAUpuB,EAAMu7F,cAAepE,EAAaq2uB,KAGtFK,EA0BqBE,CADD/t0B,EAAMkq0B,OAASlq0B,EAAMkq0B,OAAO3o3B,GAASy+C,EACYm3F,IAEnEu2uB,EAAkBj63B,SAGnBg63B,EAAuBh63B,QACvBg63B,EAAuBp13B,KAAK0qF,GAEhC0qyB,EAAuBp13B,KAAKq13B,MAEzBD,GAGX,aAAiCh8wB,GAC7B,IAAIu8wB,EAAoB,GACxBl2zB,gBAAK25C,EAAQ,CAACj+F,EAAGwsC,KACb,IAAIiu0B,EAAmBN,IAA6B3t0B,GACpD,IAAKiu0B,EAAiBx63B,OAClB,MAAO,GAEPu63B,EAAkBv63B,QAClBu63B,EAAkB313B,KAAK,OAE3B213B,EAAkB313B,KAAK413B,KAGvB,IAAMD,EAAkBv63B,SACxBu63B,EAAoBA,EAAkB,IAEnCA,EAGX,aAAsBjmX,EAASC,GAC3B,IACIkmX,EAAW,SAASp42B,GACpB,OAAOA,GAAUA,EAAOriB,QAE5B,OAAIy63B,EAASnmX,IAAYmmX,EAASlmX,GACf,CAACD,EAAS,MAAOC,GAEjBkmX,EAASnmX,GAAWA,EAAUC,EAwCrD,aAAkBmmX,EAAavy3B,EAAOimc,EAAU0kE,EAAaz6I,GACzDqigB,EAAYtsb,GAAYssb,EAAYtsb,IAAa,GACjDssb,EAAYtsb,GAAU0kE,GAAe4nX,EAAYtsb,GAAU0kE,IAAgB,MACtE75f,OAAUyh3B,EAAYtsb,GAAU0kE,GAAaz6I,MAC9CqigB,EAAYtsb,GAAU0kE,GAAaz6I,GAAalwX,GAIxD,aAAoBA,EAAOokD,GACvB,OAAIA,GAAS,aAAmByhD,WAAYl2B,SAAS3vE,GAC1C2sD,OAAO3sD,IAEdokD,GAAS,SAAWA,EAAMyhD,UAAazhD,EAAMu7F,eAAmB3/I,aAAiBohD,KAG9EphD,EAFI+pT,mBAAkC/pT,GAKjD,aAAqBR,EAAM0iK,EAAOy/iB,EAAc77sB,GAC5C,IAAIih3B,EAAU,GACVG,EAAa,IAEbsL,QAASA,GACT1s3B,GAEA2s3B,WAAYA,GACZ3s3B,EAYJ,WAAiB6pT,EAAU+ikB,EAAez22B,EAAM+oF,EAAO5gD,IACnD,IACIuu0B,GAEA3i3B,GAEA4i3B,GALAC,GAAgB/s3B,EAAO,GAAGmP,OAAOy92B,EAAe,SAIhDl5T,GAAYv9iB,EAAKvhB,MAAM,EAAGsqG,EAAQ,GAAGtzE,KAAK,KAE9C,YAAI,IAAWmh2B,GAAcr5T,IACzBxpjB,GAAO6i3B,GAAcr5T,KAErBxpjB,GAAO,CACHhQ,MAAOirK,IAAW0kJ,EAASpqT,IAAK6+C,IAChCz+C,MAAOG,EAAO,GAAGmP,OAAOy92B,EAAe,YACvCI,YAAanjkB,EAASmjkB,aAE1BF,GAAkB322B,EAAKvhB,MAAM,EAAGsqG,GAAOtzE,KAAK,MACxCszE,EAAQ,QAAK,OAAyB4txB,KACtCD,GAAaE,GAAcD,KACKrj2B,SAAWoj2B,GAAWpj2B,UAAY,GAE7CzpB,EAAO,GAAGmP,OAAOy92B,EAAe,OAEtCj23B,KAAKuT,IACxB6i3B,GAAcr5T,IAAaxpjB,IAExBA,GAEX+gqB,OAtCI7ugB,GAASA,EAAMxM,YACfx5F,OAAKgmG,EAAMxM,QAAS,CAAC/vJ,EAAO+vJ,KACxBl0J,IAASsE,EAAOyG,OAAQmpJ,EAAS5vJ,EAAOuh3B,mBAAoBvh3B,EAAOsh3B,sBAAuBzh3B,KAG9Fu8J,GAASA,EAAM31D,YAAc,KAE7B/sG,EAAO,IAAIxD,MADA2ltB,EAAa58N,KAAKltf,OAAS8ptB,EAAaoxK,QAAUpxK,EAAaqxK,aAClD/92B,OAAOzV,IAC1B3H,OAASqqK,EAAM31D,YA8BxBwkkB,IAAavxqB,EAAM,CAACwQ,EAAMg1F,KACtB,IAEIiuxB,GACAC,GAHA5L,EAAWtixB,GAAS28mB,EAAa58N,KAAKltf,OAAS8ptB,EAAa58N,KAAKltf,OAASmtG,EAC1EuixB,EAAcvixB,GAAS28mB,EAAa58N,KAAKltf,OAASmtG,EAAQ28mB,EAAa58N,KAAKltf,OAAS,EAGzF,KAAImtG,GAAS28mB,EAAa58N,KAAKltf,QAAU0v3B,GAAe5lK,EAAa3mkB,QAAQnjJ,QAG7E,CAAImtG,EAAQ28mB,EAAa58N,KAAKltf,SAC1Bqv3B,EAAa,IAEjB5qrB,GAAaqlhB,EAAa58N,KAAKltf,OACvBmY,GACAk32B,EAAWK,GAAe,GAAGty2B,OAAOjF,EAAKzK,KACzC0t3B,GAAav6zB,EAAQ1oD,EAAM,SAAUk32B,EAAYK,EAAa5lK,EAAa3mkB,QAAQusuB,IACnF2L,GAAUV,EAAQzL,EAAQrs3B,MAAM,EAAG4s3B,EAAW,GAAG511B,KAAK,OAEtD5rB,EAAOk1I,QAAQv+I,KAAK,IAErB4G,GACH0j3B,EAAQO,GAAY,GAAGry2B,OAAOjF,EAAKzK,KACnC2t3B,GAAUx6zB,EAAQ1oD,EAAM,MAAO+22B,EAASO,EAAU3lK,EAAa58N,KAAKuiY,IACpE2L,GAAaR,EAAWvL,EAAWxs3B,MAAM,EAAG6s3B,EAAc,GAAG711B,KAAK,OAElE5rB,EAAOi/e,KAAKtof,KAAK,IAErB,IAAI023B,GAAkBD,IAAWA,GAAQvt3B,OAASG,EAAOuh3B,mBACrD5vN,GAAqBw7N,IAAcA,GAAWtt3B,OAASG,EAAOsh3B,yBAClElrzB,OAAKlsD,GAAQA,EAAK0lJ,SAAW,GAAI,CAAC99J,GAAG89J,MACjCl0J,IAASsE,EAAOyG,OAAQmpJ,GAASy9tB,GAAiB17N,GAAoB7/pB,SAGvEkO,EAGX,YAAgC+vG,GAC5B,OAAQA,GAAU,IAAI37F,OAAOq6B,GAAKA,EAAEinG,cAAgBjnG,EAAEinG,aAAa3jJ,QAAU08C,EAAE0zD,aAGnF,aAA0BjjF,EAAS2jH,GAC/B,GAAI3jH,EAAQ87rB,WAAY,CACpB,GAAIn4kB,IAAS3jH,EAAQ87rB,WACjB,OAAO97rB,EAAQ/I,KAAKpkB,OAExB,GAAImtB,EAAQ+7rB,aACR,OAAO/7rB,EAAQ+7rB,aAAalptB,OAGpC,OAAO,EAOX,YAAoCmtB,EAAS0t2B,EAAe1txB,EAAOouxB,GAC/D,IAAItt3B,EAAS,GACTut3B,EAAkBruxB,EAAQouxB,EAA2B,EAAIA,EACzDv9wB,EAAS7wF,EAAQ87rB,aAAe4xK,EAAgB1t2B,EAAQ0t2B,GAAeh43B,MAAM243B,EAAiBruxB,GAAS,GACvGl1E,EAAQ,WAA2B9K,EAAQi8rB,iBAAmBj8rB,EAAQg8rB,oBAC1E9kpB,gBAAK25C,EAAQ,CAAClwG,EAAOy+C,KACjB,IAAIo3F,EAAe,IACnBt/E,SAAKpsC,EAAO,CAAClY,EAAGqE,KAEZ,GADAA,EAAOA,EAAKvhB,MAAM243B,EAAiBruxB,GAC/Br/F,EAAQsW,EAAKpkB,OAAQ,CACrB,IAAI0jJ,EAAct/H,EAAKtW,GAClB61I,EAAa5gI,SAAS2gI,IACvBC,EAAa/+I,KAAK8+I,MAI1BC,EAAa3jJ,QACbiO,EAAOrJ,MAAKgW,QAAO,GAAI2xC,EAAO,CAC1Bk3F,WAAY,UACZE,aAAcA,OAInB11I,EAGX,aAA8Bkf,EAAS0t2B,EAAeY,EAAeC,EAAeC,EAAeJ,GAC/F,IAII9gkB,EAHAmhkB,EAAwB,YAAcf,EAAgB,OAAS,UAC/D78wB,EAAS7wF,EAAQ0t2B,GACjB5s3B,EAAS,GAEb,KALqB,YAAc4s3B,EAAgB1t2B,EAAQg8rB,oBAAsBh8rB,EAAQi8rB,mBAAqB,IAK5FpptB,OACd,QAASD,EAAI073B,EAAe173B,EAAI273B,EAAgB,EAAG373B,GAAK,GACpD06T,EAAa,CACTlkM,QAASolwB,EAAcv+2B,OAAOy+2B,GAA2B1u2B,EAAS0t2B,EAAe963B,EAAGw73B,MAE7EV,GAAiB78wB,EAAOn7G,MAAM443B,EAAe173B,EAAI,GAC5D06T,EAAWmhkB,GAAyB,GACpC3t3B,EAAOrJ,MAAKgW,QAAO,GAAIuS,EAASstS,SAGpCA,EAAa,CACTlkM,QAASolwB,IAEFd,GAAiB78wB,EAAOn7G,MAAM443B,EAAeC,EAAgB,GACxEjhkB,EAAWmhkB,GAAyB,GACpC3t3B,EAAOrJ,MAAKgW,QAAO,GAAIuS,EAASstS,IAEpCxsT,SAAO,GAAG6t3B,qBAAsB,EACzB7t3B,EAGX,aAAgC+vG,GAC5B,IAAI+9wB,EAAsB,EAC1B13zB,gBAAK25C,EAAQ,CAAClwG,EAAOy+C,KACjB,IAAKA,EAAM6wF,SACP2+uB,SAAsBju3B,GACf,IAIRiu3B,EAoCX,YAAuB/9wB,MACnB35C,OAAK25C,GAAU,GAAI,CAACj+F,EAAGwsC,KACnB,IACIkq0B,OAAQA,GACRlq0B,EACAkq0B,GACAE,GAAcF,GAElB9rK,GAA+Bp+pB,KAGvC,IAAIyv0B,IAActizB,aAAc,CAC5BC,KAAKxsD,GACD5xB,KAAKi8G,YAAc,IAAI9I,GAAWvhF,GAClC5xB,KAAKqzG,OAASrzG,KAAKi8G,YAAY1mG,SAEnCgo3B,UAAU96wB,GACN,IAAI3kE,EAAI,IAAI01B,MACZ,YAAK6/B,OAAO3iE,KAAK,CACbynE,KAAM,EACNj4F,KAAM,KACPg0D,KAAK9nE,IACJ,IAAIs03B,EAAsBzuxB,GAAoB7lG,GAC9C0xC,EAAEjqB,QAAQ8s2B,wBAAoCD,EAAoBt03B,KAAMq2G,MACzEtuC,KAAKr2B,EAAEjE,QACHiE,GAEX3rC,MACI,OAAOnS,KAAKqzG,OAAOlhG,OAEvBu+B,KAAK9e,GACD,IAAI0hD,EAAOtzE,KACP89C,EAAI,IAAI01B,MACR9gE,EAAS,CACTi/e,KAAM,GACN/pW,QAAS,GACTzuI,OAAQ,GACR862B,mBAAoB,EACpBD,sBAAuB,EACvBoL,QAAS,GACTC,WAAY,GACZxsb,SAAU,EACV0kE,YAAa,GAEbqpX,EA7EZ,aAAyBhv2B,GACrB,IAAIiv2B,EAAmB3xK,GAAiBt9rB,EAAS,QAC7Ckv2B,EAAsB5xK,GAAiBt9rB,EAAS,WAChDopG,EAAUppG,EAAQopG,SAAW,GAC7B+lwB,EAAsBC,IAAiBpv2B,EAAS,WAChDqv2B,EAA4BC,IAAuBtv2B,EAAQg2H,SAC3Du5uB,EAAyBD,IAAuBtv2B,EAAQ+/d,MACxDyvY,EAAmBJ,IAAiBpv2B,EAAS,QAC7CxlB,EAAO,GAEPi13B,EAAsBC,IAAqB1v2B,EAAS,UAAWmv2B,EAAqBD,EADxF9lwB,EAAUA,EAAQn5G,OAAO0/2B,GAAuB3v2B,EAAQ+/d,OAAO9ve,OAAO0/2B,GAAuB3v2B,EAAQg2H,UAAU/lI,OA9EnH,aAAwC+P,GACpC,OAAOy9rB,GAAiBz9rB,EAAQA,EAAQ87rB,YAAa97rB,EAAQ/I,MAAMhH,OAAOwtsB,GAAiBz9rB,EAAQ,WAAmB87rB,WAAa,UAAY,QAAS97rB,EAAQ+7rB,cAAgB,KA6E1D6zK,CAA+B5v2B,IAC/Bqv2B,GACtH,GAAIrv2B,EAAQ+/d,KAAKltf,QAAUmtB,EAAQg2H,QAAQnjJ,OAAQ,CAC3C,SAAWmtB,EAAQ87rB,aACnBthtB,EAAOA,EAAKyV,OAAOw/2B,IAEvB,QAAS783B,EAAI483B,EAAkB583B,EAAIq83B,EAAmB,EAAGr83B,GAAK,EAG1D,QAFImtf,EAAO//d,EAAQ+/d,KAAKrqf,MAAM853B,EAAkB583B,EAAI,GAChDi93B,EAA2BnB,GAA2B1u2B,EAAS,OAAQptB,EAAG283B,GACrEtjyB,EAAIkjyB,EAAqBljyB,EAAIijyB,EAAsB,EAAGjjyB,GAAK,EAAG,CACnE,IAAI4gT,IAAkBp/X,QAAO,GAAIuS,EAAS,CACtCg2H,QAASh2H,EAAQg2H,QAAQtgJ,MAAMy53B,EAAqBljyB,EAAI,GACxD8zZ,KAAMA,EACN32X,QAASA,EAAQn5G,OAAOy+2B,GAA2B1u2B,EAAS,UAAWisE,EAAGojyB,IAA4Bp/2B,OAAO4/2B,KAEjHr13B,EAAK/C,KAAKo1Y,UAIlBryY,EAAOwlB,EAAQg2H,QAAQnjJ,OAAS483B,EAAsBC,IAAqB1v2B,EAAS,OAAQwv2B,EAAkBP,EAAkB7lwB,EAASmmwB,GAE7I,OAAO/03B,EA+CgBs13B,CAAgB9v2B,GAC/By+O,EAAY,GAChB+qnB,UAAcxp2B,EAAQ+/d,MACtBypY,GAAcxp2B,EAAQg2H,SACtBwzuB,GAAcxp2B,EAAQopG,UACtBlyD,SAAK83zB,EAAc,CAACp82B,EAAG+3S,KACnBlsD,EAAUhnQ,KAAKiqE,EAAK+/B,OAAO3iE,KA/SvC,aAA2B9e,EAAS+v2B,EAAoBC,GACpD,IAAI5C,EAAoB6C,IAAwBjw2B,EAAQopG,SACpDm7Z,EAAkB2rW,IAAsBlw2B,EAAQ+/d,KAAM//d,EAAQmw2B,SAASlg3B,OAAOig3B,IAAsBlw2B,EAAQg2H,QAASh2H,EAAQow2B,aAC7H9rxB,EAAc,CACdgtd,aAAc,GACdy7G,aAAc,GACdpqpB,MAAO4hgB,EAAgB1xhB,OAAS0xhB,OAAkB,EAClDj2gB,KAAMi2gB,EAAgB1xhB,YAAS,EAAS,GAE5C,OAAImtB,EAAQ+/d,KAAKltf,QAAUmtB,EAAQmw2B,SAC/B7rxB,EAAYiC,KAAOvmF,EAAQ+t2B,QAC3BzpxB,EAAYh2F,KAAO0R,EAAQmw2B,QAC3B7rxB,EAAY+sd,mBAAoB,GACzBrxiB,EAAQg2H,QAAQnjJ,QAAUmtB,EAAQow2B,aAAeJ,IACxD1rxB,EAAYiC,KAAOvmF,EAAQgu2B,WAC3B1pxB,EAAYh2F,KAAO0R,EAAQow2B,WAC3B9rxB,EAAY+sd,mBAAoB,GAEhC0+T,IACA3C,EAAoBiD,IAAajD,EAAmB2C,IAEpD3C,EAAkBv63B,SAClByxG,EAAYpvF,OAASk42B,MAEzBl2zB,OAAKl3C,EAAQzY,OAAQ,CAACqL,EAAG5X,KACrB,IAAIs13B,EAAgB,CAChB9izB,SAAUxyE,EAAMkzI,UAChBoN,YAAatgJ,EAAMsgJ,aAAe,SAEtCh3C,EAAYgtd,aAAa75jB,KAAK643B,GAC9Btw2B,EAAQ2u2B,qBAAuBrqxB,EAAYyokB,aAAat1qB,KAAK643B,KAE1DhsxB,EA+QiCisxB,CAAkB5lkB,EAAUjpP,EAAKxsD,SAAU8K,EAAQ+/d,KAAKltf,YAE5FovE,YAAW,KAAMw8L,GAAWn8L,KAAM,WAC9B,IAAIv7D,EAAO03P,EAAU5rQ,OAAS,EAAI1E,UAAY,CAACA,YAC/C+oE,SAAKnwD,EAAM,CAACpG,EAAO6iI,KACf,IAAIsrvB,EAAsBzuxB,GAAoBmjC,EAAS,GAAIA,EAAS,IACpEgtvB,IAAY1B,EAAoBt03B,KAAMs03B,EAAoBxwxB,MAAO0wxB,EAAaru3B,GAAQG,KAE1ForC,EAAEjqB,QAAQ,CACN89d,KAAMj/e,EAAOi/e,KACb/pW,QAASl1I,EAAOk1I,QAChBzuI,OAAQzG,EAAOyG,OACf862B,mBAAoBvh3B,EAAOuh3B,mBAC3BD,sBAAuBth3B,EAAOsh3B,0BAElC7/yB,KAAKr2B,EAAEjE,QACJiE,GAEXh3B,SACI,OAAO9mB,KAAKi8G,YAAYn1F,OAAO4U,MAAM17B,KAAKi8G,YAAal8G,YAE3Dg+3B,cAAe,KAAM,EACrBzvK,0BAA0Bp4mB,EAAaphG,GAGnC,IAAIS,EAAQvV,KAAKqzG,OAEbgvxB,EAAYR,IADFxyK,IAHdn5mB,EAAcA,GAAe,IAGcy7Y,MAF3C78e,EAASA,GAAU,IAEqC6+2B,SAAS9x2B,OAAOwtsB,GAAiBn5mB,EAAY0xC,QAAS9yI,EAAOg/2B,aAAajy2B,OAAO0/2B,GAAuBrrxB,EAAYy7Y,OAAO9ve,OAAOq0F,EAAY8kB,SAAW,IAAIn5G,OAAO0/2B,GAAuBrrxB,EAAY0xC,WAE/P,OAAO,IAAIz0C,GAAW,CAClBziE,KAAMwlE,GAAe3gG,EAAMm7B,MAAKrxB,QAAO,GAAI62F,EAAa,CACpDpvF,OAAQm72B,IAAaI,EAAWnsxB,EAAYpvF,QAC5C2vF,OAAQ3hG,EAAOop3B,sBCrd3BoE,GAAS,SACTC,GAAM,MACNC,GAAO,KACPC,IAAwB,SAAS713B,EAAOwzqB,GACxC,IAAI1tqB,EAAS9F,EAAQwzqB,EACrB,SAAK1iqB,SAAU9Q,IAAUqiE,MAAMv8D,MAC3BA,EAAS8v3B,IAEN9v3B,GAEPgw3B,GAAsB,SAAS1s3B,EAAGy5G,GAClC,OAAOgzwB,IAAsBzs3B,EAAEpJ,QAASoJ,EAAEw4J,WAAW/+C,GAAW7iH,UAEhE+13B,IAAkB,SAAS3s3B,EAAGy5G,GAC9B,IAAI1iH,EAASiJ,EAAEjJ,OAAO0iH,GAClBspc,EAAchsjB,EAASA,EAAOH,QAAUoJ,EAAEpJ,QAC9C,OAAO613B,IAAsBzs3B,EAAEpJ,QAASmsjB,IAExC6pU,IAA6B,SAASC,GACtC,OAAO,SAAS7s3B,GACZ,IAAI8s3B,EAAW9s3B,EAAE+7X,KAAKuwf,GAAQO,GAC1Bnr0B,EAAYor0B,GAAYA,EAASl23B,QACrC,OAAI8Q,SAAUg6C,OAAch6C,OAAU1H,EAAEpJ,SAC7BoJ,EAAEpJ,QAAU8qD,EAEhB8q0B,KAYXO,IAAoB,CACpBC,qBAAsBht3B,GAAK2s3B,IAAgB3s3B,EAAGus3B,IAC9CU,kBAAmBjt3B,GAAK2s3B,IAAgB3s3B,EAAGss3B,IAC3CY,0BAA2Blt3B,GAAK0s3B,GAAoB1s3B,EAAGus3B,IACvDY,uBAAwBnt3B,GAAK0s3B,GAAoB1s3B,EAAGss3B,IACpDI,oBAAqB1s3B,GAAK0s3B,GAAoB1s3B,IAE9Cot3B,IAAwB,WAA+B9qkB,EAAM1uP,GAC7D,GAAK0uP,GAASA,EAAKvrT,OAAO68D,GAG1B,KAAIk5zB,EAAWxqkB,EAAKy5E,KAAKnoU,GACzB,OAAKk5zB,IACDA,EAAWM,EAAsB9qkB,EAAKvrT,OAAO68D,GAAYA,IAEtDk5zB,IAEPO,IAAyB,SAASry0B,GAClC,GAAKA,EAAM07F,aAGX,KAAI9iF,EAAY5Y,EAAM07F,eAAiB41uB,GAASC,GAAMD,GACtD,OAAO,SAASts3B,GACZ,IAAI8s3B,EAAW9x0B,EAAMg7F,2BAA6Bo3uB,IAAsBpt3B,EAAG4zD,GAAa5zD,EAAE+7X,KAAKnoU,GAAW,GACtGh9D,EAAQoJ,EAAEpJ,OAAM,GAChB8qD,EAAYor0B,GAAYA,EAASl23B,OAAM,GAC3C,OAAI8Q,SAAUg6C,KAAch6C,SAAU9Q,GAClCA,EAAQ8qD,EAAY9qD,GACb8Q,SAAUg6C,KACjB9qD,EAAQ8qD,GAEL9qD,KAWf,YAAqB2htB,EAAcv9pB,EAAOyiC,GACtC,IAAI6vyB,EAAc,CACd/w3B,OAAO,GAEX,OAAKyK,OAASg0C,GACV,GAAIyiC,EAAMgvB,OAAOzxD,GACbA,EAAQyiC,EAAMziC,OACX,CACH,IAAI48G,EAAY2gjB,EAAa3mkB,QAAQ/lI,OAAO0ssB,EAAa58N,MAAM9ve,OAAO0ssB,EAAap1sB,QAC/Eoq3B,EAAaz0K,GAAUlhjB,EAAW58G,GACtCA,EAAQyiC,EAAMziC,GAAS48G,EAAU21tB,GAGzC,GAAIvy0B,EAAO,CACP,IAAIimF,EAAOjmF,EAAMimF,MAAQ,OACzBqsvB,EAAc7vyB,EAAMwiJ,UAAUjlL,EAAMz+C,OAASkhF,EAAMwiJ,UAAUjlL,EAAMz+C,QAAU,CACzE0kI,KAAMA,EACN1kI,MAAOg8sB,EAAa,SAAWt3kB,EAAO,SAAW,GAAGp1H,OAAOo1H,EAAM,MAAMzkI,QAAQw+C,IAGvF,OAAOsy0B,EAGX,YAA0B7zwB,GACtB,OAAOA,IAAc8ywB,GAAM,WAAa,cAE5C,IAAIiB,GAAc,SAAS1P,EAAYH,EAASvn3B,EAAMmitB,EAAcg1K,EAAYE,GAC5Ezj4B,KAAK0j4B,YAAc5P,EACnB9z3B,KAAK2j4B,SAAWhQ,EAChB3z3B,KAAK4j4B,YAAcL,EACnBvj4B,KAAK6j4B,aAAeJ,GApCb,CACHhhxB,OAAQ,GACRwzH,UAAW,IAmCfj2O,KAAKkyG,MAAQ9lG,EACbpM,KAAK8j4B,cAAgBv1K,EACrB,IAAIj2Z,EAAOlsT,EAAK+M,QAAU/M,EAAK+M,OAAOw62B,EAAQ,GAAGph3B,QAAUnG,EAAK+M,OAAOw62B,EAAQ,GAAGph3B,OAAOuh3B,EAAW,GAAGvh3B,OACnG+lT,IACAA,EAAKyrkB,aAAezrkB,EAAKyrkB,cAAgBzrkB,EAAKhxT,QAC9CgxT,EAAK0rkB,mBAAqB1rkB,EAAK0rkB,oBAAsB,GACrDhk4B,KAAKik4B,MAAQ3rkB,IAwLrB,aAAuBtnQ,GACnB,IACIi8F,mBAAoBA,GACpBj8F,EACAkz0B,EAAwBlz0B,EAAMg7F,2BAC9B6yuB,EAAa2D,GACjB,OAAIhq3B,SAAWw4C,EAAMq7F,uBACjBwyuB,EAAa7t0B,EAAMq7F,sBACZY,IAEH4xuB,EADA,sBAAwB5xuB,EACX21uB,IAA2BsB,GACjC,uBA3Ra,SAASrB,GACrC,IAAIsB,EAAcvB,IAA2BC,GAC7C,OAAO,SAAS7s3B,GACZ,IAAIou3B,EAASD,EAAYnu3B,GACrB8s3B,EAAW9s3B,EAAE+7X,KAAKuwf,GAAQO,GAC1Bnr0B,EAAYor0B,GAAYA,EAASl23B,QACrC,OAAOw33B,IAAW5B,IAAQ9q0B,EAAY0s0B,EAAS1s0B,EAAY8q0B,IAsR1C6B,CAA0BH,GAE1BnB,IAAkB91uB,GAE/B4xuB,IAAe7t0B,EAAMmvC,SAAU,MAA0B3tF,QAAQ,YACjEmu3B,oBAAgC3v0B,EAAO,SAAU,YAGlD6t0B,EAGX,aAAyBzy3B,EAAMymc,EAAU0kE,EAAa+sX,GAClD,IAAInr3B,EAAS/M,EAAK+M,OAAO05b,GAAU0kE,GAAenrgB,EAAK+M,OAAO05b,GAAU0kE,IAAgB,IAEpFwsX,aAAcA,GACd5q3B,GACC4q3B,KAGD5q3B,EAAOor3B,iBAAmBD,KAC1Bl43B,EAAK+M,OAAO05b,GAAU0kE,GAAewsX,EAAaz83B,SAEtD8E,EAAK+M,OAAO05b,GAAU0kE,GAAagtX,eAAiBD,GAvNxDd,GAAYrp2B,WAAY9a,QAAOmk3B,GAAYrp2B,UAAW,CAClD7D,SAASm5F,GACL,OAAOzvH,KAAKwk4B,GAAiB/0wB,KAEjCg1wB,cAAch1wB,GACVA,OACOzvH,KAAK8j4B,cADZr0wB,EAAYA,IAAc8ywB,GAAM,OAAS,YAG7Crvb,YAAYnvb,GACR,OAAO,IAAIy/2B,GAAYz/2B,EAAO2/2B,aAAe1j4B,KAAK0j4B,YAAa3/2B,EAAO4/2B,UAAY3j4B,KAAK2j4B,SAAU3j4B,KAAKkyG,MAAOlyG,KAAK8j4B,cAAe9j4B,KAAK4j4B,cAE1I723B,OAAO68D,GACH,IAAI/gD,EAAO7oB,KAAKs2B,SAASszC,GAAWtiE,QAChCyc,EAAS,GAEb,OADA8E,EAAKvX,QACDuX,EAAKpkB,QACLsf,EAAOyg3B,GAAiB56zB,IAAc/gD,EAC/B7oB,KAAKkzc,YAAYnvb,IAErBy+2B,IAEXrm2B,SAASytC,GACL,IAAI/gD,EAAO7oB,KAAKs2B,SAASszC,GAAWtiE,QAChCsV,EAAOiM,EAAK,GACZnW,EAAS,GACTgy3B,EAAa,GACjB,GAAI9n3B,EAAKuf,SACL,QAAS33B,EAAI,EAAGA,EAAIoY,EAAKuf,SAAS13B,OAAQD,GAAK,EAC3Ckg4B,EAAWF,GAAiB56zB,IAAc,CAAChtD,EAAKuf,SAAS33B,IAAIqd,OAAOgH,EAAKvhB,SACzEoL,EAAOrJ,KAAKrJ,KAAKkzc,YAAYwxb,IAGrC,OAAOhy3B,GAEX87J,WAAW5kG,GACP,IAAI7lD,EAAS,GACT4v2B,EAAU3z3B,KAAK2j4B,SACf7P,EAAa9z3B,KAAK0j4B,YAClBiB,EAAgB3k4B,KAAKs2B,SAASszC,GAC9Bg7zB,EAAgBJ,GAAiB56zB,GACrC,OAAKA,EAID7lD,EAAO6g3B,GAAiB,CAACD,EAAcA,EAAclg4B,OAAS,KAH9Dsf,EAAO4/2B,SAAW,CAAChQ,EAAQA,EAAQlv3B,OAAS,IAC5Csf,EAAO2/2B,YAAc,CAAC5P,EAAWA,EAAWrv3B,OAAS,KAIlDzE,KAAKkzc,YAAYnvb,IAE5BrK,KAAKkwD,EAAWi5zB,GACZ,IAGIxh2B,EAHAunlB,EAAc5onB,KAAKs2B,SAASszC,GAC5BhtD,EAAOgsmB,EAAY,GACnB77mB,EAAS/M,KAAK+M,OAAO68D,GAEzB,GAAI78D,EAAQ,CACR,IAAIwF,EAAQq2mB,EAAY,GAAGzslB,SAAS3pB,QAAQoK,GAE5C,IADAykB,EAAWt0B,EAAOovB,SAASytC,IACdr3D,EAAQ,GACjB,OAAO8uB,EAAS9uB,EAAQ,GAGhC,GAAIsw3B,GAAmB913B,EAAQ,CAC3B,GAEIs0B,GADAt0B,EAASA,EAAO2M,KAAKkwD,EAAWi5zB,IACZ913B,EAAOovB,SAASytC,GAAa,SAC5C78D,IAAWs0B,EAAS58B,QAC7B,OAAO48B,EAAS,IAAMmh2B,GAE1B,OAAOA,IAEXzwf,KAAKnoU,EAAWi5zB,GACZ,IAGIxh2B,EAHAunlB,EAAc5onB,KAAKs2B,SAASszC,GAC5BhtD,EAAOgsmB,EAAY,GACnB77mB,EAAS/M,KAAK+M,OAAO68D,GAEzB,GAAI78D,EAAQ,CACR,IAAIwF,EAAQq2mB,EAAY,GAAGzslB,SAAS3pB,QAAQoK,GAE5C,IADAykB,EAAWt0B,EAAOovB,SAASytC,IACdr3D,EAAQ,GACjB,OAAO8uB,EAAS9uB,EAAQ,GAGhC,GAAIsw3B,GAAmB913B,EAAQ,CAC3B,GAEIs0B,GADAt0B,EAASA,EAAOglY,KAAKnoU,EAAWi5zB,IACZ913B,EAAOovB,SAASytC,GAAa,SAC5C78D,IAAWs0B,EAAS58B,QAC7B,OAAO48B,EAASA,EAAS58B,OAAS,IAAM+93B,GAE5C,OAAOA,IAEXlqkB,OACI,OAAOt4T,KAAKik4B,OAEhBjz0B,MAAMimF,GACF,GAAI,WACA,OAAOj3I,KAAK8j4B,cAAc3q3B,OAAOnZ,KAAK4j4B,aAE1C,IAAI/62B,EAAO7oB,KAAKs2B,SAAS2gH,GAGzB,OAFmBj3I,KAAKyk4B,cAAcxtvB,GACbpuH,EAAKpkB,OAAS,IACvB+93B,IAEpBxv2B,MAAM42C,EAAWghS,GAGb,QAFIi6hB,EACA1o2B,EAAWn8B,KAAKm8B,SAASytC,GACpBplE,EAAI,EAAGA,EAAI23B,EAAS13B,OAAQD,GAAK,EAEtC,GADAqg4B,EAAkBA,GAAmB1o2B,EAAS33B,GAAGwsD,MAAM4Y,GACnDztC,EAAS33B,GAAGoI,MAAMi43B,KAAqBj6hB,EACvC,OAAOzuU,EAAS33B,GAGxB,OAAOg+3B,IAEXl73B,MAAM0pD,EAAOpkD,GACT,IAAImX,EAAS,GACT+g3B,EAAWC,GAAY/k4B,KAAK8j4B,cAAe9y0B,EAAOhxD,KAAK6j4B,eAEvD5svB,KAAMA,GACN6tvB,EACAvB,EAAauB,EAASvy3B,MACtByy3B,EAAYxC,GAChB,GAAIvrvB,IAASsrvB,IAAOtrvB,IAASqrvB,GAAQ,CACjC,IAAIz52B,EAAO7oB,KAAKs2B,SAAS2gH,GAAM3vI,QAC3BsqG,GAAQ,OAAqB/oF,EAAKpkB,OAAS,EAAI8+3B,EACnD,GAAI162B,EAAK+oF,GAAQ,CAEb,QAASptG,EAAIotG,EAAOptG,GAAK,EAAGA,GAAK,EAAG,CAChC,GAAIqkB,EAAKrkB,EAAI,GAAI,CACb,IAAI+vhB,EAAa1rgB,EAAKrkB,EAAI,GAAG23B,UAAY,GACrCtF,EAAeryB,IAAMotG,EAAQhlG,EAAQic,EAAKrkB,GAAGoI,MACjDic,EAAKrkB,QAAK,EACV,QAASyg4B,EAAa,EAAGA,EAAa1wW,EAAW9vhB,OAAQwg4B,GAAc,EACnE,GAAI1wW,EAAW0wW,GAAYr43B,QAAUiqB,EAAc,CAC/ChO,EAAKrkB,GAAK+vhB,EAAW0wW,GACrB,OAIZ,QAAI,IAAWp82B,EAAKrkB,GAChB,OAAOwg4B,EAGfjh3B,EAAOyg3B,GAAiBvtvB,IAASpuH,EACjCm82B,EAAYhl4B,KAAKkzc,YAAYnvb,IAGrC,OAAOih3B,GAEXp43B,MAAMonL,EAAMkxsB,GACR,IAAI5skB,EAAOt4T,KAAKik4B,MACZV,EAAavj4B,KAAK4j4B,YAClBuB,GAAmB,QAAiB,IAAUnxsB,EAC9ChjI,EAAQrzC,EAA2B6k3B,GAAPxusB,EAC5BoxsB,EAAsBD,GAAoBnxsB,GAAQkxsB,EACtD,IAAIxn3B,SAAUszC,GAAQ,CAClB,IAAI8z0B,EAAWC,GAAY/k4B,KAAK8j4B,cAAe9y0B,EAAOhxD,KAAK6j4B,cAE3D,GADAN,EAAauB,EAASvy3B,MAClB,SAAWuy3B,EAAS7tvB,KAAM,CAC1B,IAAIpuH,EAAO7oB,KAAKs2B,SAASwu2B,EAAS7tvB,MAC9BrlC,GAAQ,OAAqB/oF,EAAKpkB,OAAS,EAAI8+3B,EACnD,OAAO162B,EAAK+oF,IAAU/oF,EAAK+oF,GAAOhlG,OAG1C,OAAI0rT,GAAQA,EAAKyrkB,aACNqB,EAAsB9skB,EAAKirkB,GAAcjrkB,EAAKyrkB,aAAaR,GAE/Df,IAEX6C,gBAAgBr00B,GACZ,IAAIuy0B,EAAavj4B,KAAK4j4B,YACtB,IAAIlm3B,SAAUszC,GAAQ,CAClB,IAAI8z0B,EAAWC,GAAY/k4B,KAAK8j4B,cAAe9y0B,EAAOhxD,KAAK6j4B,cAE3D,GADAN,EAAauB,EAASvy3B,MAClB,SAAWuy3B,EAAS7tvB,KACpB,OAAO,EAGf,SAAUj3I,KAAKik4B,QAASjk4B,KAAKik4B,MAAMD,mBAAmBT,OAiJ9D,2BArDA,aAA2Bh1K,EAAcnitB,GACrC,IAAIk53B,EAAc,GACdx6W,EAAiB,CAAC,CAClBv4gB,MAAOnG,EAAK4n3B,sBACZ731B,SAAU/vB,EAAKw7I,UAEfivZ,EAAc,CAAC,CACftkiB,MAAOnG,EAAK6n3B,mBACZ931B,SAAU/vB,EAAKulf,OAEf7hI,EAAcy+V,EAAap1sB,OAC3Bsq3B,EAtUG,CACHhhxB,OAAQ,GACRwzH,UAAW,IAqUf7pO,EAAK+M,OAAS/M,EAAK+M,QAAU,GAC7B2zsB,GAAYj2K,EAAa88U,IACrB,IAAImM,EAAUnM,EAAQ,GACtBvn3B,EAAK+M,OAAO2m3B,EAAQvt3B,OAASnG,EAAK+M,OAAO2m3B,EAAQvt3B,QAAU,GAC3Du6sB,GAAYhiM,EAAgBgpW,IAExBc,IAAgBxo3B,EAAM0z3B,EAAQvt3B,MADbuh3B,EAAW,GACoBvh3B,OAAO,GACvD,QAAS/N,EAAI,EAAGA,EAAIsrX,EAAYrrX,OAAQD,GAAK,EAAG,CAC5C,IACIq63B,EAAayG,EAAY9g4B,QAAK,IAAW8g4B,EAAY9g4B,GAAK6+3B,IADlDvzgB,EAAYtrX,IACsE8g4B,EAAY9g4B,GAC1G,GAAIq63B,EAAY,CACZ,IAAI0G,GAAgB,IAAI/B,GAAY1P,EAAYH,EAASvn3B,EAAMmitB,EAAc/ptB,EAAGi/3B,GAC5EnrkB,GAAOitkB,GAAcjtkB,OACzBA,GAAK9zT,GAAKq63B,EAAW0G,IACrBjtkB,GAAK0rkB,mBAAmBx/3B,IAAK,MAGtC,KACJ,IAuBPgh4B,yBApBA,aAA+Bj3K,EAAc9rmB,EAAQwe,GACjD,IAAI6+iB,EAAc,IAAI0jN,GAAY,GAAI,GAAI,GAAIj1K,EAAc,GAC5DzuC,SAAYlzqB,MAAQ,SAAS643B,GACzB,IAAI/n3B,SAAU+n3B,GAAU,CACpB,IAAIlz3B,EAAQu8sB,GAAUrsmB,EAAQgjxB,GAC1Bz00B,EAAQyxD,EAAOlwG,IACd0uH,EAAQ1uH,IAAUy+C,OAAUtzC,OAAUszC,EAAMimF,QAC7Cs3kB,EAAap1sB,OAAO9P,KAAK2nD,GACzBiwE,EAAQ1uH,IAAS,KAI7ButqB,EAAYtxgB,WAAa,WACrB,OAAOxuK,MAEX8/qB,EAAY3jpB,SAAW,WACnB,MAAO,IAEJ2jpB,GAEX0lN,2BAxGA,aAAiCj3K,EAAcnitB,GAC3C,IAAIk53B,EAAc,GACdx6W,EAAiB,CAAC,CAClBv4gB,MAAOnG,EAAK4n3B,sBACZ731B,SAAU/vB,EAAKw7I,UAEfivZ,EAAc,CAAC,CACftkiB,MAAOnG,EAAK6n3B,mBACZ931B,SAAU/vB,EAAKulf,OAEf7hI,EAAcy+V,EAAap1sB,OAC3Bsq3B,EAnRG,CACHhhxB,OAAQ,GACRwzH,UAAW,IAkRf7pO,EAAK+M,OAAS/M,EAAK+M,QAAU,GAC7B2zsB,GAAYhiM,EAAgBgpW,IACxBA,EAAW,GAAGzmzB,QAAU,KACzB,GACHy/oB,GAAYj2K,EAAa88U,IACrB,IAAImM,EAAUnM,EAAQ,GACtBmM,EAAQzyzB,QAAU,GAClBjhE,EAAK+M,OAAO2m3B,EAAQvt3B,OAASnG,EAAK+M,OAAO2m3B,EAAQvt3B,QAAU,GAC3Du6sB,GAAYhiM,EAAgBgpW,IACxB,IACI5wM,EADA28M,EAAa/L,EAAW,GAE5Bc,IAAgBxo3B,EAAM0z3B,EAAQvt3B,MAAOst3B,EAAWtt3B,OAAO,GACvD,QAAS/N,EAAI,EAAGA,EAAIsrX,EAAYrrX,OAAQD,GAAK,EAAG,CAC5C,IACIq63B,GAAayG,EAAY9g4B,QAAK,IAAW8g4B,EAAY9g4B,GAAKkh4B,IADlD51gB,EAAYtrX,IAC6D8g4B,EAAY9g4B,GAEjG,GADA0+qB,GAAc,EACV27M,GAAY,CACZ,IAAI0G,GAAgB,IAAI/B,GAAY1P,EAAYH,EAASvn3B,EAAMmitB,EAAc/ptB,EAAGi/3B,GAC5EnrkB,GAAOitkB,GAAcjtkB,OACrB1rT,GAAQ0rT,GAAK9zT,GAAKq63B,GAAW0G,IACjCjtkB,GAAK0rkB,mBAAmBx/3B,IAAK,EAC7B0+qB,EAAc,cAEd,IAAW28M,EAAWxyzB,QAAQ7oE,KAC9Bq73B,EAAWxyzB,QAAQ7oE,IAAK,QAExB,IAAWs73B,EAAQzyzB,QAAQ7oE,KAC3Bs73B,EAAQzyzB,QAAQ7oE,IAAK,GAEpB0+qB,IACD48M,EAAQzyzB,QAAQ7oE,GAAKq73B,EAAWxyzB,QAAQ7oE,IAAK,MAGtD,KACJ,GACH4H,EAAKu53B,qBAAuB9uV,EAAY,GAAGxpe,QAC3CjhE,EAAKw53B,wBAA0B96W,EAAe,GAAGz9c,SC5YrD,IAAIw4zB,IAAiB,CACjBlttB,GAAI,EACJQ,GAAI,EACJM,GAAI,EACJ,UAAW,EACXvoI,GAAI,EACJ+oI,GAAI,EACJE,GAAI,EACJ55K,GAAI,EACJ4+G,GAAI,EACJy7D,GAAI,GACJM,GAAI,GACJG,GAAI,GACJY,GAAI,GACJI,GAAI,GACJpyJ,GAAI,GACJo5G,GAAI,GACJq5C,GAAI,GACJkB,GAAI,GACJ0C,GAAI,GACJG,GAAI,GACJQ,GAAI,GACJE,GAAI,GACJE,GAAI,GACJE,GAAI,GACJE,GAAI,GACJtF,GAAI,GACJsG,GAAI,GACJK,GAAI,GACJG,GAAI,GACJM,GAAI,GACJG,GAAI,GACJO,GAAI,GACJp4K,GAAI,GACJk4K,GAAI,GACJ/K,GAAI,GACJ0J,GAAI,GACJ7H,GAAI,GACJmE,GAAI,GACJJ,GAAI,GACJ0E,GAAI,GACJtI,GAAI,GACJoJ,GAAI,GACJ9H,GAAI,GACJxD,GAAI,GACJgC,GAAI,GACJsB,IAAK,GACLqD,GAAI,GACJqmtB,GAAI,GACJthtB,GAAI,GACJS,GAAI,GACJ1M,GAAI,GACJuE,GAAI,GACJ1B,GAAI,GACJc,GAAI,GACJ6D,GAAI,GACJoC,GAAI,GACJ3G,GAAI,GACJsE,GAAI,GACJxC,GAAI,GACJc,GAAI,GACJ8E,GAAI,GACJO,GAAI,GACJS,GAAI,GACJP,GAAI,GACJtK,GAAI,GACJ0H,GAAI,GACJnF,GAAI,GACJiF,GAAI,GACJsC,GAAI,GACJC,GAAI,GACJzF,GAAI,GACJ+B,GAAI,GACJ/hJ,GAAI,GACJkiJ,GAAI,GACJ+B,GAAI,GACJjC,GAAI,GACJrG,GAAI,GACJU,GAAI,GACJ0D,GAAI,GACJgB,GAAI,GACJhD,GAAI,GACJmC,IAAK,GACLkotB,IAAK,GACLvjtB,GAAI,GACJwjtB,GAAI,GACJtttB,GAAI,GACJmL,IAAK,GACLxD,GAAI,GACJ9E,GAAI,GACJ2F,GAAI,GACJ/F,IAAK,IACL8qtB,GAAI,IACJlqtB,GAAI,IACJ6I,GAAI,IACJshtB,IAAK,IACLC,IAAK,IACLC,GAAI,IACJ9ntB,GAAI,IACJd,GAAI,IACJhB,GAAI,IACJC,GAAI,IACJ4ptB,IAAK,IACLC,IAAK,IACL/stB,GAAI,IACJuK,GAAI,IACJtE,GAAI,IACJ+mtB,GAAI,IACJzpe,GAAI,IACJnhP,IAAK,IACLkG,IAAK,IACL2ktB,IAAK,IACL9ktB,GAAI,IACJ6C,GAAI,IACJkitB,IAAK,IACLhrtB,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAA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F,GAEXtxgB,6BAA8BtzV,MAC9BwuV,iBAAkBxuV,MAClBqyV,WAAYryV,MACZs5a,qBAAsBt5a,MACtBuyV,gBAAiBvyV,QAErBmk2B,GAAahlhB,UAAU1kY,SACvB0p5B,GAAahlhB,UAAU1kY,eACvBmtI,GAAkB,eAAgBu8wB,QCshB5BY,UAAN,SAEmBA,SAAmB5q5B,UAAO,SAAoCP,GAAK,OAAO,IAAKA,GAAKmr5B,IACpFA,EAAmBp84B,UAAiCtO,MAAoB,CAAE8E,KAAM4l5B,IAChFA,EAAmBn84B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC3Fi/H,GACAa,GACA2B,GACAoI,GACA+W,GACAoE,GACAiO,GACA5pB,GACAtD,GACA6gB,GACA9Q,GACAkN,GACAV,GACAoH,GACAG,GACAF,GACA1jB,GACA0vB,GACAuE,GACAF,GACA1kB,GACAC,GACAG,GACArQ,GACAyf,GACAhB,GACAjO,EACA0V,GACAiH,GACA+J,GACA5yB,GACAsH,GACA3H,GACAqe,GACA4H,GACAqF,GACAje,GACA0H,GACAqJ,GACAc,GACA8R,GACAzE,GACA3N,GACAtX,GACAoiB,GACAQ,GACAkI,GACAY,GACA7S,GACA3kG,GACA1H,IACD6hF,GACHa,GACA2B,GACAoI,GACA+W,GACAoE,GACAiO,GACA5pB,GACAtD,GACA6gB,GACA9Q,GACAkN,GACAV,GACAoH,GACAG,GACAF,GACA1jB,GACA0vB,GACAuE,GACAF,GACA1kB,GACAC,GACAG,GACArQ,GACAyf,GACAhB,GACAjO,EACA0V,GACAiH,GACA+J,GACA5yB,GACAsH,GACA3H,GACAqe,GACA4H,GACAqF,GACAje,GACA0H,GACAqJ,GACAc,GACA8R,GACAzE,GACA3N,GACAtX,GACAoiB,GACAQ,GACAkI,GACAY,GACA7S,GACArsG,MAzGF8+1B,MCjuBeC,UAAN,gBAA0B5jrB,GACrCn5I,qBACI,OAAOl1E,QAAOvf,MAAMy0F,qBAAsB,CACtC46H,qBAAqB,IAG7BsV,kBACI,MAAO,aAGf6srB,SAAYrg0B,eAAiB,SAASsU,GAClCmoI,kBAA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hsB,YAAa,cAAeuvD,yBAA0B,2BAA4BC,8BAA+B,gCAAiCC,cAAe,gBAAiB/9d,WAAY,aAAcg+d,mBAAoB,qBAAsBC,mBAAoB,qBAAsB/9d,YAAa,cAAeC,YAAa,cAAelyS,YAAa,cAAes7H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACz7D2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAA2C4F,EAAIv9C,KAAU7S,OAAQ,CAAC,2CA9V9J8/5B,MA+eAY,UAAN,SAEmBA,SAAsBv+5B,UAAO,SAAuCP,GAAK,OAAO,IAAKA,GAAK8+5B,IAC1FA,EAAsB/v5B,UAAiCtO,MAAoB,CAAE8E,KAAMu55B,IACnFA,EAAsB9v5B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC9F0pI,GACAsb,GACApb,GACAiH,GACA6E,GACAvW,GACAkG,GACAwE,GACAib,GACAhB,GACA8C,GACA/Q,EACA0V,GACA/G,GACAoX,GACAkB,GACAtK,GACA5F,GACA2P,GACA5yB,GACA8F,GACAO,GACAiB,GACAuR,GACAC,GACAC,GACAC,GACAC,GACAtZ,GACAsX,GACA0B,GACAqF,GACA+E,GACAC,GACA4C,GACAkF,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAO,GACAC,GACAC,GACA7e,GACA/F,GACAoiB,GACAsJ,GACAje,GACA4G,IACAiD,GACAM,GACA8G,GACApwB,GACAyG,GACA6J,GACAkZ,IACAI,IACAe,GACAF,GACAH,IACA0Q,GACAF,GACAzG,IACAC,GACAC,IACAC,IACA4G,GACAzE,GACA/wG,GACA1H,IACDssF,GACHsb,GACApb,GACAiH,GACA6E,GACAvW,GACAkG,GACAwE,GACAib,GACAhB,GACA8C,GACA/Q,EACA0V,GACA/G,GACAoX,GACAkB,GACAtK,GACA5F,GACA2P,GACA5yB,GACA8F,GACAO,GACAiB,GACAuR,GACAC,GACAC,GACAC,GACAC,GACAtZ,GACAsX,GACA0B,GACAqF,GACA+E,GACAC,GACA4C,GACAkF,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAO,GACAC,GACAC,GACA7e,GACA/F,GACAoiB,GACAsJ,GACAje,GACA4G,IACAiD,GACAM,GACA8G,GACApwB,GACAyG,GACA6J,GACAkZ,IACAI,IACAe,GACAF,GACAH,IACA0Q,GACAF,GACAzG,IACAC,GACAC,IACAC,IACA4G,GACAzE,GACAz4G,MAnJFyy2B,MCxfN,IAAIC,IAAkC,CAClC1p2B,IAAK,CACD8P,GAAI,gBACJ56C,GAAI,aACJ86C,UAAW,YAEf8L,OAAQ,CACJhM,GAAI,aACJ56C,GAAI,gBACJ86C,UAAW,aAGf251B,IAAyC,CACzCv81B,EAAG,EACH9gD,EAAG,GAGP,kBAA8CsoN,IAC1CnjB,mBAAmBD,GACf,IAAIo4sB,EAAgBnl6B,KAAK2sM,OAAO3qM,OAC5Boj6B,EAAc,IAAIvj5B,OAJX,aAKPwj5B,EAAU,MAASF,OAA4C,EAASA,EAAcrn1B,QAAQsn1B,GAC9F92sB,EAAwB,CACxBlyM,GAAI+o5B,EACJz51B,eAAgBw51B,IAChBz51B,SAAU,aAAyC,EAAS451B,EAAQrh6B,IAAI,IAExE6pN,KAAiBxuM,OAAO,EAAM,GAAIivM,EAAuBtuN,KAAKuuN,kBAAkBxB,IACpF,YAAKkf,cAAgBjsO,KAAK6sO,gBAAgBhf,GACnCA,EAEXL,gCACI1tN,MAAM0tN,gCACNxtN,KAAKsl6B,iBAETA,iBACI,IACI371B,cAAeA,EACfH,SAAUA,GACVqR,aAAwB76E,KAAK8rN,UAAW9rN,KAAK0sN,WAAW/jJ,EAI5DvM,GAAKp8D,KAAK8rN,UAAW,CACjBxwJ,KAJOt7D,KAAKmsN,gBAAgB7wJ,MACf,WACU,GAAI,GAAMkO,IAIrCxpE,KAAKqtN,6BAETkB,kBAAkBxB,GACd,SAAIxwI,OAASwwI,IACF1tM,QAAO,GAAI4l5B,IAAgCl4sB,IAE/CA,GCzDf,IACIw4sB,IAAgBtgkB,WAAgB,CAChC1wQ,qBACI,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B4V,SAAS,EACT/0C,SAAU,MACVu0H,oBAAoB,EACpB2gE,sBAAuB,KACvB1gE,oBAAoB,EACpBvnF,UAAW,KACX0mK,cAAe,KACfoH,+BAA+B,EAC/BppB,qBAAqB,EACrBxiH,mBAAmB,EACnBqnE,SAAU,UACVrwE,OAAQvzF,GAASA,EACjBA,MAAO,KAGf21F,cACIviG,KAAKm5D,WACLn5D,KAAKwl6B,gBAAgBxl6B,KAAKszD,OAAO,YACjCtzD,KAAKyl6B,wBAETt7zB,iBACInqG,KAAKm5D,WACLn5D,KAAK0l6B,sBAET/0M,0BACA+0M,qBACI,IACI945B,MAAOA,EACPuzF,OAAQA,GACRngG,KAAKszD,SACLqy2B,EAAgB99uB,UAA0B,QAAqCj7K,EAAQ,EAAGuzF,GAC9FngG,KAAK2wM,WAAWl6L,KAAKkv5B,GACrB3l6B,KAAK+3N,mBAET0tsB,uBACI,IAAIG,EAAc,YAAc5l6B,KAAKszD,OAAO,YACxBtzD,KAAKszD,OAAO,UAClB4wC,YAzCgB,qCAyC6B0h0B,IAE/Dn1sB,0BACIzwN,KAAKyxN,oBAAsB,IAAIo0sB,IAAgC7l6B,KAAKs3N,iCAExEkusB,gBAAgBn94B,GACZ,IAAI884B,EAAgBnl6B,KAAKszD,OAAO,UAChCjrC,EAAUroB,KAAKm7D,WAAW0P,SAASs61B,GAAiBnl6B,KAAKm7D,WAAW3yB,UAExE+tD,eAAe59E,GACX,IACItV,KAAMA,EACNuJ,MAAOA,GACP+L,EACJ,OAAQtV,OACC,UACDrD,KAAKwl6B,gBAAgB545B,GACrB5M,KAAKm5D,SAASxgD,GACd,UACC,WACD3Y,KAAKyl6B,uBACL,UACC,aACA,QACDzl6B,KAAK0l6B,qBACL,cAEA1l6B,KAAKm5D,SAASxgD,KAG1B4zM,iBACIvsN,KAAK+3N,qBAGb,UAAewtsB,IC7Ef,IACIO,IAAe19zB,WAAe,CAC9B7T,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3ByvC,mBAAmB,EACnBh8F,MAAO,EACPioS,QAAS,CACLxsR,SAAS,EACT83E,OAAQvzF,GAASA,EACjBotB,SAAU,MACVw2I,SAAU,cAItBjuE,YAAa,WACTviG,KAAKm5D,WACLn5D,KAAKm7D,WAAWvtD,SAhBE,oBAiBlB5N,KAAK+tG,QAAQ,CACTujC,KAAM,SACN+pW,SAAUr7e,KAAKszD,OAAO,SACtB+kF,MAAO,YAGfjgD,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAK6vkB,kBAETA,eAAgB,WACZ,IACIh7R,QAASA,EACTjoS,MAAOA,GACP5M,KAAKszD,UAELt5B,SAAUA,EACVmmE,OAAQA,EACR93E,QAASA,EACTmoJ,SAAUA,GACVqkI,EACAkxnB,KAAiB3q2B,MAAE,SACvBp7D,KAAKgm6B,eAAiBhm6B,KAAK24F,iBAAiBot0B,EAAgBR,IAAe,CACvEvj6B,OAAQhC,KAAKm7D,WACbjnC,UAAW6x4B,EACX/r4B,SAAUA,EACV+0C,QAAS1mD,EACTmoJ,SAAUA,EACVrwE,OAAQA,EACRvzF,MAAOA,KAGf62F,OAAQ,WACJzjG,KAAKm5D,WACLn5D,KAAKgm6B,eAAiB,MAE1BC,sBAAsBtt5B,GAClB,IAAIut5B,EACA3uc,EAAiBnvX,2BAA+BzvF,GACpD3Y,KAAKguG,iBAAiB,iBAAkB,CAACupX,IACzC,QAAU2uc,EAAuBlm6B,KAAKgm6B,sBAAmB,IAAWE,GAAgCA,EAAqB5y2B,OAAO,UAAWika,EAAelvc,UAE9JkuE,eAAgB,SAAS59E,GACrB,IACItV,KAAMA,EACNuJ,MAAOA,GACP+L,EACJ,OAAQtV,OACC,QACD,IAAI8i6B,EACJ,QAAUA,EAAwBnm6B,KAAKgm6B,sBAAmB,OAA4CG,EAAsB7y2B,OAAO,QAAS1mD,GAC5I5M,KAAK+tG,QAAQ,WAAYnhG,GACzB,UACC,UACD5M,KAAKim6B,sBAAsBtt5B,GAC3B,cAEA3Y,KAAKm5D,SAASxgD,KAG1Byt5B,sBAAuB,WACnB,IAAIC,EACJ,QAAUA,EAAwBrm6B,KAAKgm6B,sBAAmB,OAA4CK,EAAsB95sB,kBAEhIl+G,QAAS,WACL,IAAIi4zB,EACJ,QAAUA,EAAwBtm6B,KAAKgm6B,sBAAmB,OAA4CM,EAAsBj4zB,aAGpI,SAAey3zB,IC9Cf,IAMIS,IAAqB,kBACrBC,GAAqC,4BACrCC,IAAuC,8BAEvCC,IAA8B,aAC9BhR,IAAS3/L,YAAiB,CAC1BxqnB,iBAVyB,oBAWzBhD,eAAgB,WACZ,IAAI2zH,EAAQl8N,KAAKszD,OAAO,cACpBqz2B,EAAe,CAACx81B,EAAQy81B,KACxBz81B,EAASnqE,KAAK6m6B,WAAW181B,GACzB,IAAI05I,EAAO7jN,KAAKszD,OAAO,QACnB1mD,EAAQ5M,KAAKszD,OAAO,SAEpBwz2B,E1xB4EhB,aAAgCC,EAAUlvgB,EAAS1hP,GAC/C,GAAI0hP,IAAY9kZ,SAAS8kZ,GACrB,OAAOkvgB,EAAWlvgB,EAEtB,IAAImvgB,EAAW/ie,GAAe8ie,EAAWlvgB,EAAS1hP,GAClD,OAAQ6wvB,EAAWj05B,SAASi05B,IAAanvgB,E0xBjFjBovgB,CADMr65B,EAAQ5M,KAAKszD,OAAO,OACcuwJ,EAAM7jN,KAAKkn6B,2BAC/Dx05B,EAASk05B,EAAkBh65B,EAAQu9D,GAAU281B,EAAYjjtB,EAAOijtB,EAAY,GAAKl65B,EAAQu9D,EAAS281B,EAClGp91B,EAAM1pE,KAAKszD,OAAO,OAClB94C,EAAMxa,KAAKszD,OAAO,OACtB,OAAI5gD,EAASg3D,EACTh3D,EAASg3D,EACFh3D,EAAS8H,IAChB9H,EAAS8H,GAENxa,KAAKmn6B,uBAAuBz05B,IAEnC005B,EAAkBj91B,IAClBnqE,KAAKszD,OAAO,QAASqz2B,EAAax81B,EAAQ+xJ,KAE1CmrsB,EAAiBl91B,IACjBnqE,KAAKszD,OAAO,QAASqz2B,EAAax81B,GAAS+xJ,KAE/C,OAAO78M,QAAOrf,KAAKm5D,WAAY,CAC3B4qD,UAAW,SAAS/tG,GAChBhW,KAAKgrzB,sBAAsBh1yB,GAC3Bqx5B,EAAern6B,KAAKszD,OAAO,UAE/B0wD,WAAY,SAAShuG,GACjBhW,KAAKgrzB,sBAAsBh1yB,GAC3Box5B,EAAgBpn6B,KAAKszD,OAAO,UAEhC6wD,OAAQ,SAASnuG,GACbhW,KAAKgrzB,sBAAsBh1yB,GAC3Box5B,EAAgBpn6B,KAAKszD,OAAO,QAAUtzD,KAAKszD,OAAO,aAEtD8wD,SAAU,SAASpuG,GACfhW,KAAKgrzB,sBAAsBh1yB,GAC3Bqx5B,EAAern6B,KAAKszD,OAAO,QAAUtzD,KAAKszD,OAAO,aAErDwc,KAAM,SAAS95D,GACXhW,KAAKgrzB,sBAAsBh1yB,GAC3B,IAAI0zD,EAAM1pE,KAAKszD,OAAO,OACtBtzD,KAAKszD,OAAO,QAASoW,IAEzBx9D,IAAK,SAAS8J,GACVhW,KAAKgrzB,sBAAsBh1yB,GAC3B,IAAIwE,EAAMxa,KAAKszD,OAAO,OACtBtzD,KAAKszD,OAAO,QAAS94C,OAIjCwwyB,sBAAuB,SAASh1yB,GAC5BA,EAAEjL,iBACFiL,EAAEouE,kBACFpkF,KAAKy3O,sBAAsBzhO,IAE/Bu+E,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3BvsD,MAAO,GACPg8F,mBAAmB,EACnBF,oBAAoB,EACpBm7G,KAAM,EACNyjtB,WAAW,EACXzynB,QAAS,CACLxsR,SAAS,EACT83E,OAAQ,SAASvzF,GACb,OAAOA,GAEXotB,SAAU,MACVw2I,SAAU,WAEdn4B,MAAO,CACHtpE,SAAS,EACT/0C,SAAU,SACVmmE,OAAQ,SAASvzF,GACb,OAAOA,IAGf0jf,QAAS,EACT5yS,cAAc,EACd44B,wBAAyBtmG,KAAe,CACpCrnE,EAAG,GACH9gD,EAAG,GACH,CACA8gD,EAAG,EACH9gD,EAAG,GAEPghF,mBAAmB,EACnB++M,gBAAiB,kBAGzB2/mB,yBAA0B,SAASx41B,GAC1B/uE,KAAKszD,OAAO,YACbtzD,KAAKm7D,WAAW+oC,YAnGQ,6BAmGmCn1B,IAGnE6lB,qBAAsB,WAClB,OAAO50F,KAAKm5D,WAAWt3C,OAAO,CAAC,CAC3BwiD,OAAQ,WACJ,MAAO,YAAcrB,UAAexB,aAAewB,kBAEvDpxC,QAAS,CACLi3E,mBAAmB,IAExB,CACCxkC,OAAQ,WAEJ,OAAO2rE,GADSq9K,OAGpBz7R,QAAS,CACL8rL,cAAc,OAI1Bn7G,YAAa,WACTviG,KAAKm7D,WAAWvtD,SAlIL,aAmIX5N,KAAKixP,uBACLjxP,KAAKszD,OAAO,iBAAmBtzD,KAAKigR,mBACpCjgR,KAAKm5D,WACLn5D,KAAKwn6B,gBACLxn6B,KAAKyn6B,sBACLzn6B,KAAK0n6B,wBAETx8zB,mBAAoB,WAChBlrG,KAAKm5D,WACL,IAAI1sD,EAAYzM,KAAKo1F,KAAOsx0B,IACxBiB,EAAej51B,GAAa,UAAWjiE,GACvCm75B,EAAgBl51B,GAAa,WAAYjiE,GACzCi0iB,EAAe1gjB,KAAKs7F,eACxB7sC,QAAgBiyf,EAAcinX,EAAc3n6B,KAAKun6B,yBAAyBt+2B,KAAKjpD,MAAM,IACrFyuD,QAAgBiyf,EAAcknX,EAAe5n6B,KAAKun6B,yBAAyBt+2B,KAAKjpD,MAAM,KAE1F2rG,mBAAoB,WAChB3rG,KAAKm5D,WACL,IAAIunf,EAAe1gjB,KAAKs7F,eACxBt7F,KAAKun6B,0BAAyB,GAC9B942B,SAAiBiyf,EAAc1gjB,KAAKo1F,KAAOsx0B,MAE/Ctu0B,QAAS,WACLp4F,KAAKm5D,WACLn5D,KAAK6n6B,kBAET52qB,qBAAsB,WAClBjxP,KAAKoyP,mBAAkBh3L,MAAE,WAAWgU,KAAK,OAAQ,UAAUvE,SAAS7qE,KAAKm7D,aAE7E89K,kBAAmB,WACf,OAAOj5O,KAAKoyP,iBAEhB6tB,iBAAkB,WACdjgR,KAAKwqH,WAAav4D,GAAO,CACrBigJ,oBAAqB,GACrBC,YAAY,EACZC,YAAa,EACbH,kBAAkB,KAG1B61tB,eAAgB,SAAStg6B,EAASunH,EAAS8olB,EAAUkwN,GACjD,GAAK/n6B,KAAKwqH,WAGV,KAAIzmG,EAAS,CACTvc,QAASA,EACTsD,MAAOikH,EACP+jF,KAAMi1tB,GAENlwN,EACA73sB,KAAKwqH,WAAW+nF,SAASxuL,GAEzB/jB,KAAKwqH,WAAWgoF,SAASzuL,KAGjC69E,mBAAoB,WAChB5hG,KAAKquG,WAET++F,eAAgB,WACZptM,KAAKm5D,WACLn5D,KAAK+rN,UAAUn+M,SA9LI,qBA+LnB5N,KAAK24F,iBAAiB34F,KAAK+rN,UAAW6jP,GAAW,CAC7C9zM,SAAS,EACTvnD,WAAW,EACXS,iBAAkB,EAClB4+D,QAAS5zQ,KAAK0id,mBAAmBz5Z,KAAKjpD,MACtC2zQ,UAAW3zQ,KAAK2id,oBAAoB15Z,KAAKjpD,MACzC6zQ,MAAO7zQ,KAAK4id,iBAAiB35Z,KAAKjpD,MAClC8iN,aAAc9iN,KAAKgo6B,eAAe/+2B,KAAKjpD,SAG/CsjgB,iBAAkB,WACdtjgB,KAAKm5D,WACLn5D,KAAKk2tB,MAAMtotB,SAzMI,kBA2MnB0kc,aAAc,WACVtyc,KAAKm5D,WACLn5D,KAAKm2tB,QAAQvotB,SA5MI,mBA6MjB5N,KAAK0kN,gBACL1kN,KAAKio6B,0BAETA,uBAAwB,WACpBjo6B,KAAKm2tB,QAAQjynB,YAhNY,0BAgN4B4J,QAAQ9tG,KAAKszD,OAAO,gBAE7EoxJ,cAAe,WACX1kN,KAAKko6B,SAAWlo6B,KAAKmo6B,kBAAkBno6B,KAAKszD,OAAO,SAAUtzD,KAAKko6B,WAEtEC,kBAAmB,SAASv75B,EAAOuuD,GAC/B,IAAIypJ,EAAUzpJ,MAAYC,MAAE,SAASyP,SAAS7qE,KAAKm2tB,SAC/Cthb,EAAU70S,KAAKszD,OAAO,WAC1B,YAAK6H,WAAW+oC,YAAYui0B,IAAuC,SAAU5xnB,EAAQxsR,SAAW,WAAawsR,EAAQ76Q,UAAUkqE,YAAYui0B,IAAuC,MAAO5xnB,EAAQxsR,SAAW,QAAUwsR,EAAQ76Q,UAC9Nh6B,KAAK24F,iBAAiBisH,EAASkhtB,GAAc,CACzCl55B,MAAOA,EACPioS,QAASA,IAENjwF,GAEX8itB,qBAAsB,WAClB1n6B,KAAK+tG,QAAQ,CACTytY,SAAUx7e,KAAKszD,OAAO,OACtBmob,SAAUz7e,KAAKszD,OAAO,QACvBtzD,KAAKko6B,WAEZp9zB,mBAAoB,SAAS3vC,EAAUvuD,GACnC5M,KAAKm5D,SAASgC,EAAUvuD,GACxB5M,KAAK8n6B,eAAe3s2B,EAAU,OAAQvuD,EAAO,IAEjDq/F,kBAAmB,SAASD,EAAW7wC,GAEnC,GADAn7D,KAAKm5D,SAAS6yC,EAAW7wC,IACrBn7D,KAAKw2F,UAGT,KAAIkqd,GAAetlf,QAAED,GAAYn7D,KAAKs7F,gBACtCt7F,KAAK8n6B,eAAepnX,EAAc,KAAM10c,EAAW,KAEvDw7zB,cAAe,WAEX,GADAxn6B,KAAKm7D,WAAWrtD,YAAY045B,GAAqC,UAAU145B,YAAY045B,GAAqC,OACxHxm6B,KAAKszD,OAAO,iBAAkB,CAC9B,IAAIoW,EAAM1pE,KAAKszD,OAAO,OAClB94C,EAAMxa,KAAKszD,OAAO,OAClBt5B,EAAWh6B,KAAKszD,OAAO,kBACvB802B,EAAcpo6B,KAAKszD,OAAO,gBACzBtzD,KAAKqo6B,aACNro6B,KAAKqo6B,YAAajt2B,QAAE,SAASxtD,SAAS245B,KAAoB171B,SAAS7qE,KAAK+rN,YAE5E/rN,KAAKqo6B,WAAW5x5B,KAAKoxK,UAA0Bn+G,EAAK0+1B,IAC/Cpo6B,KAAKso6B,aACNto6B,KAAKso6B,cAAalt2B,MAAE,SAASxtD,SAAS245B,KAAoB171B,SAAS7qE,KAAK+rN,YAE5E/rN,KAAKso6B,WAAW7x5B,KAAKoxK,UAA0BrtK,EAAK4t5B,IACpDpo6B,KAAKm7D,WAAWvtD,SAAS445B,GAAqCxs4B,QAE1Dh6B,KAAKqo6B,aACLro6B,KAAKqo6B,WAAWxn6B,gBACTb,KAAKqo6B,YAEZro6B,KAAKso6B,aACLto6B,KAAKso6B,WAAWzn6B,gBACTb,KAAKso6B,aAIxBb,oBAAqB,WACjB,IAAIc,EAAuB751B,GAAa7H,QAAoB7mE,KAAKo1F,MAC7Dg2B,EAAiB18C,GAAa851B,GAAWxo6B,KAAKo1F,MAC9Cqz0B,EAAczo6B,KAAKs3F,cAAct3F,KAAKyrQ,cAAcxiN,KAAKjpD,OACzDm7D,EAAWn7D,KAAKm7D,WACpB1M,SAAiB0M,EAAUot2B,GAC3B952B,QAAgB0M,EAAUot2B,EAAsBvy5B,IACxC66D,GAAa76D,IACbyy5B,EAAY,CACR395B,MAAOkL,MAInBy4C,SAAiB0M,EAAUiwD,GAC3B38D,QAAgB0M,EAAUiwD,EAAgBp1G,IACtC,IAAI4uM,EAAU5kN,KAAK0o6B,gBACf9jtB,IACAn2J,aAAqBm2J,EAAS,WAC9Bn2J,aAAqBm2J,EAAS,UAElC6jtB,EAAY,CACR395B,MAAOkL,IAEP,oBAAsBhW,KAAKszD,OAAO,qBAClCtzD,KAAKszD,OAAO,QAAStzD,KAAK2o6B,mBAC1B3o6B,KAAK+2b,kBAAe,MAIhCixe,eAAgB,WACZ,OAAOho6B,KAAK4o6B,iBAEhBlmd,mBAAoB,SAAS1sc,GACzB,IAAIyuD,EAAazkE,KAAKszD,OAAO,cACzB2d,GAAaj7D,EAAElL,QACf9K,KAAKs3F,cAAct3F,KAAKyrQ,cAAcxiN,KAAKjpD,MAA3CA,CAAkD,CAC9C8K,MAAOkL,EAAElL,QAGjB9K,KAAK6o6B,kBAAoB,IAAIr11B,MAC7B6zB,GAAKrnG,KAAK6o6B,mBACV7o6B,KAAK8qG,mBAAmB9qG,KAAK0o6B,gBAAiB1o6B,KAAKszD,OAAO,uBAC1DtzD,KAAK8o6B,aAAe9o6B,KAAKo2tB,cACzB,IAAIh6d,EAAcp8P,KAAK8o6B,aAAe9o6B,KAAK+o6B,mBACvC/yH,GAAa,EAAIh2yB,KAAK8o6B,cAAgB9o6B,KAAK+o6B,mBAC/C/y5B,EAAElL,MAAMy1M,cAAgB97I,EAAauxuB,EAAY55iB,EACjDpmP,EAAElL,MAAM21M,eAAiBh8I,EAAa23L,EAAc45iB,EACpDh2yB,KAAK4o6B,mBAAkBjj2B,OAAS3lE,KAAKm7D,YAAcn7D,KAAK+o6B,mBACxD/o6B,KAAKq2tB,uBAAwB,GAEjCzzQ,iBAAkB,SAAS5sc,GACvB,IAAIhW,KAAKgp6B,yBAGT,MAAKH,kBAAkBh14B,UACvB7zB,KAAK8qG,mBAAmB9qG,KAAK0o6B,iBAAiB,GAC9C,IAAIO,EAAkBjp6B,KAAKszD,OAAO,eAAgB,EAAK,EACnDisF,EAAQv/I,KAAK8o6B,aAAeG,EAAkBjz5B,EAAElL,MAAM6kO,aAAe3vO,KAAK+o6B,0BACvE/o6B,KAAKq2tB,sBACZr2tB,KAAKy3O,sBAAsBzhO,EAAElL,OAC7B9K,KAAKkp6B,oBAAoB3pxB,GACrB,oBAAsBv/I,KAAKszD,OAAO,oBAClCtzD,KAAKszD,OAAO,QAAStzD,KAAK2o6B,mBAE9B3o6B,KAAK+2b,kBAAe,SACb/2b,KAAK8o6B,aACZ9o6B,KAAKu+O,iBAETmqrB,cAAe,WACX,OAAO1o6B,KAAKko6B,UAEhBvld,oBAAqB,SAAS3sc,GACtBhW,KAAKgp6B,2BAGThp6B,KAAKy3O,sBAAsBzhO,EAAElL,OAC7B9K,KAAKmp6B,sBAAsBnz5B,KAE/Bmz5B,sBAAuB,SAASnz5B,GAC5B,IAAIiz5B,EAAkBjp6B,KAAKszD,OAAO,eAAgB,EAAK,EACnD812B,EAAW7u5B,KAAKmvD,IAAI1pE,KAAK8o6B,aAAeG,EAAkBjz5B,EAAElL,MAAMq/D,OAASnqE,KAAK+o6B,mBAAoB,IACxGh6rB,SAAS/uO,KAAKm2tB,QAAS,IAAMizM,EAAW,KACxCtD,eAAyB9l6B,KAAK0o6B,iBAC9B1o6B,KAAKkp6B,oBAAoBE,IAE7BL,iBAAkB,WACd,IAAIr/1B,EAAM1pE,KAAKszD,OAAO,OAGtB,OAFUtzD,KAAKszD,OAAO,OAERoW,GADH1pE,KAAK6m6B,WAAW7m6B,KAAKszD,OAAO,UAG3Cuz2B,WAAY,SAAShjtB,GACjB,QAAKA,GAAQ50I,MAAM40I,MACfA,EAAO,GAEJA,GAEXqjtB,wBAAyB,WACrB,IACIrjtB,KAAMA,EACNn6I,IAAKA,GACL1pE,KAAKszD,SACT,OAAO/4C,KAAKC,IAAI6u5B,IAAkBxltB,GAAOwltB,IAAkB3/1B,KAE/Dy91B,uBAAwB,SAASv65B,GAE7B,OAAOq3b,GAAer3b,EADI5M,KAAKkn6B,4BAGnCgC,oBAAqB,SAAS3pxB,GAC1B,IAAI71E,EAAM1pE,KAAKszD,OAAO,OAClB94C,EAAMxa,KAAKszD,OAAO,OAClBuwJ,EAAO7jN,KAAK6m6B,WAAW7m6B,KAAKszD,OAAO,SAEnCzoC,EAAW6+C,EADC61E,GAAS/kI,EAAMkvD,GAE/B,KAAIm6I,EAAO,GAGX,GAAIh5L,IAAarQ,GAAOqQ,IAAa6+C,EACjC1pE,KAAKsp6B,iBAAiBz+4B,OACnB,CACH,IAAI0+4B,EAAYhv5B,KAAK2zC,OAAOrjC,EAAW6+C,GAAOm6I,GAC9Ch5L,EAAW7qB,KAAKmn6B,uBAAuBoC,EAAY1ltB,EAAOn6I,GAC1D1pE,KAAKsp6B,iBAAiB/u5B,KAAKC,IAAID,KAAKmvD,IAAI7+C,EAAUrQ,GAAMkvD,MAGhE4/1B,iBAAkB,SAAS185B,GACvB5M,KAAK+2b,aAAenqb,EAChB,yBAA2B0mD,OAAO,mBAClCwy2B,eAAyB9l6B,KAAK0o6B,iBAAiBp12B,OAAO,QAAS1mD,IAE/D5M,KAAKszD,OAAO,QAAS1mD,GACrB5M,KAAKy3O,2BAAsB,KAGnCkxrB,gBAAiB,WACb,IAAIa,EACJ,OAAO,QAAUA,EAAqBxp6B,KAAK+2b,oBAAiB,MAAgCyye,EAAqBxp6B,KAAKszD,OAAO,UAEjI012B,uBAAwB,WACpB,IACIt/1B,IAAKA,EACLlvD,IAAKA,GACLxa,KAAKszD,SACT,OAAOoW,IAAQlvD,GAEnBixP,cAAe,SAAS9yP,GACpB,IAAI3Y,KAAKgp6B,yBAGT,KAAIhz5B,EAAI2C,EAAK7N,MACb9K,KAAKo2tB,eAAiBllpB,GAAUl7D,GAAG4a,EAAI5wB,KAAKk2tB,MAAM/rpB,SAAS7O,OAAQqK,SAAS3lE,KAAKk2tB,OAC7El2tB,KAAKszD,OAAO,gBACZtzD,KAAKo2tB,cAAgB,EAAIp2tB,KAAKo2tB,eAElCp2tB,KAAKy3O,sBAAsBzhO,GAC3BhW,KAAKkp6B,oBAAoBlp6B,KAAKo2tB,iBAElC73e,aAAc,WACVv+O,KAAKm5D,WACL,IAAIvsD,EAAQ5M,KAAK2o6B,kBACjB3o6B,KAAKi5O,oBAAoBx9M,OAAIw/c,OAA4Brue,IACzDk55B,eAAyB9l6B,KAAK0o6B,iBAAiBp12B,OAAO,QAAS1mD,IAEnEoptB,gBAAiB,SAASpksB,GACtBA,GAAW5xB,KAAKm2tB,QAAQp6pB,IAAInqC,IAEhC634B,mBAAoB,SAASpm6B,EAAMsV,GAC/Bmt5B,eAAyB9l6B,KAAKko6B,UAAU7k6B,GAAMsV,IAElDkv5B,eAAgB,WACZ7n6B,KAAKyp6B,mBAAmB,YAE5BC,YAAa,WACT1p6B,KAAKyp6B,mBAAmB,0BAE5Blz0B,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,UACDrD,KAAKm5D,SAASxgD,GACd3Y,KAAK0kN,gBACL1kN,KAAK6n6B,iBACL,UACC,UACA,MACD7n6B,KAAKu+O,eACLv+O,KAAKm5D,SAASxgD,GACd3Y,KAAKwn6B,gBACLxn6B,KAAK0n6B,uBACL1n6B,KAAK0p6B,cACL,UACC,OACD1p6B,KAAKu+O,eACL,UACC,UAaD,IACC,kBACD,MAdA,IACC,YACDv+O,KAAKio6B,yBACL,UACC,UACDjo6B,KAAK0kN,gBACL,UACC,QACD1kN,KAAKwn6B,gBACL,UACC,eACDxn6B,KAAK4jG,cACL,MAEA,QAEA5jG,KAAKm5D,SAASxgD,KAG1BmrF,SAAU,WACN9jG,KAAKyiG,oBAAoBziG,KAAKszD,OAAO,eACrCtzD,KAAK2iG,oBACL3iG,KAAKu+O,eACLv+O,KAAK0kN,gBACL1kN,KAAK6n6B,kBAETpk0B,OAAQ,kBACGzjG,KAAKwqH,kBACLxqH,KAAK+2b,aACZ/2b,KAAKm5D,cAGb+6E,GAAkB,WAAYwhxB,KChiB9B,UDiiBeA,IEhhBf,IAAIiU,GAAqB,iBACrBC,GAAkCD,GAAqB,gBAEvDE,IAAcnU,YAAe,CAC7BntzB,eAAgB,WACZ,IAAI2zH,EAAQl8N,KAAKszD,OAAO,cACpBggB,EAAOtzE,KACP8p6B,EAAgB,SAAS9z5B,EAAG+z5B,GACxBz21B,EAAKhgB,OAAO,WAAaggB,EAAKhgB,OAAO,SACrCggB,EAAK021B,gBAAkBD,EACvB/z5B,EAAEhU,OAASsxE,EAAK021B,gBAChBv72B,aAAqB6kB,EAAK021B,gBAAiB,WAG/CC,EAAkB,SAASj05B,EAAG6tM,EAAMvvC,GACpC,IACIi7rB,GADUn0yB,QAAEplD,EAAEhU,QAAQ2zD,SAASi02B,IACP,QAAU,MAClCnu4B,EAAM63C,EAAKhgB,OAAOi8yB,GACtB1rpB,EAAOvwI,EAAKuz1B,WAAWhjtB,GAEvBvwI,EAAKhgB,OAAOi8yB,EADZ9z0B,GAAO64I,GAAQ4nD,GAASrY,EAAOA,KAG/BujtB,EAAkB,SAASpx5B,EAAG6tM,GAC9BimtB,EAAc9z5B,EAAGkmN,EAAQ5oJ,EAAK421B,cAAgB521B,EAAK621B,aACnDF,EAAgBj05B,EAAG6tM,EAAM,IAEzBwjtB,EAAiB,SAASrx5B,EAAG6tM,GAC7BimtB,EAAc9z5B,EAAGkmN,EAAQ5oJ,EAAK621B,YAAc721B,EAAK421B,eACjDD,EAAgBj05B,EAAG6tM,GAAM,IAE7B,OAAOxkM,QAAOrf,KAAKm5D,WAAY,CAC3B4qD,UAAW,SAAS/tG,GAChBhW,KAAKgrzB,sBAAsBh1yB,GAC3Bqx5B,EAAerx5B,EAAGhW,KAAKszD,OAAO,UAElC0wD,WAAY,SAAShuG,GACjBhW,KAAKgrzB,sBAAsBh1yB,GAC3Box5B,EAAgBpx5B,EAAGhW,KAAKszD,OAAO,UAEnC6wD,OAAQ,SAASnuG,GACbhW,KAAKgrzB,sBAAsBh1yB,GAC3Box5B,EAAgBpx5B,EAAGhW,KAAKszD,OAAO,QAAUtzD,KAAKszD,OAAO,aAEzD8wD,SAAU,SAASpuG,GACfhW,KAAKgrzB,sBAAsBh1yB,GAC3Bqx5B,EAAerx5B,EAAGhW,KAAKszD,OAAO,QAAUtzD,KAAKszD,OAAO,aAExDwc,KAAM,SAAS95D,GACXhW,KAAKgrzB,sBAAsBh1yB,GAC3B,IAAIo05B,GAAUhv2B,QAAEplD,EAAEhU,QAAQ2zD,SAASi02B,IAC/Br6D,EAAc66D,EAAU,QAAU,MAElC3u4B,EAAMz7B,KAAKszD,OADG822B,EAAU,MAAQ,SAEpCpq6B,KAAKszD,OAAOi8yB,EAAa9z0B,IAE7BvvB,IAAK,SAAS8J,GACVhW,KAAKgrzB,sBAAsBh1yB,GAC3B,IAAIo05B,GAAUhv2B,QAAEplD,EAAEhU,QAAQ2zD,SAASi02B,IAC/Br6D,EAAc66D,EAAU,QAAU,MAElC3u4B,EAAMz7B,KAAKszD,OADC822B,EAAU,MAAQ,OAElCpq6B,KAAKszD,OAAOi8yB,EAAa9z0B,OAIrC84D,mBAAoB,WAChB,OAAOl1E,QAAOrf,KAAKm5D,WAAY,CAC3B/L,MAAO,GACPlhD,IAAK,GACLU,MAAO,CAAC,GAAI,IACZ+7d,UAAW,GACXC,QAAS,MAGjB33O,qBAAsB,WAClB,IAAI91L,EAAWn7D,KAAKm7D,WACpBn7D,KAAKqq6B,sBAAuBjv2B,QAAE,WAAWgU,KAAK,OAAQ,UAAUA,KAAK,OAAQpvE,KAAKszD,OAAO,cAAcuX,SAAS1P,GAChHn7D,KAAKsq6B,oBAAqBlv2B,QAAE,WAAWgU,KAAK,OAAQ,UAAUA,KAAK,OAAQpvE,KAAKszD,OAAO,YAAYuX,SAAS1P,IAEhHpE,aAAc,SAASnlC,GACnB5xB,KAAKm5D,SAASvnC,GACd,IAAIshE,EAAelzF,KAAKo3F,cAAc,SAClCxqF,EAAQ5M,KAAKszD,OAAO,SACpB1mD,EAAM,KAAOsmF,EAAa,IAAMtmF,EAAM,KAAOsmF,EAAa,GAC1DlzF,KAAKszD,OAAO,QAAS,CAACtzD,KAAKszD,OAAO,SAAUtzD,KAAKszD,OAAO,SAExDtzD,KAAKszD,OAAO,CACRlG,MAAOxgD,EAAM,GACbV,IAAKU,EAAM,MAIvB21F,YAAa,WACTviG,KAAKm7D,WAAWvtD,SAAS+75B,IACzB3p6B,KAAKm5D,YAETsxC,mBAAoB,WAChBzqG,KAAKyp6B,mBAAmB,WACxBzp6B,KAAKm5D,YAETurJ,cAAe,WACX1kN,KAAKkq6B,cAAgBlq6B,KAAKmo6B,kBAAkBno6B,KAAKszD,OAAO,SAAUtzD,KAAKkq6B,eAAet85B,SAASg85B,IAC/F5p6B,KAAKmq6B,YAAcnq6B,KAAKmo6B,kBAAkBno6B,KAAKszD,OAAO,OAAQtzD,KAAKmq6B,aAAav85B,SApGpD+75B,6BAqG5B3p6B,KAAKuq6B,2BAET9+pB,cAAe,SAAS9yP,GACpB,IAAI3C,EAAI2C,EAAK7N,MACT0/5B,EAASxq6B,KAAKm2tB,QACds0M,GAAa9k2B,SAAS6k2B,GACtBE,EAAex51B,GAAUl7D,GAAG4a,EAAI5wB,KAAKk2tB,MAAM/rpB,SAAS7O,KACpDqv2B,EAAeH,EAAOxw4B,WAAWshC,KACjCsv2B,EAAaJ,EAAOxw4B,WAAWshC,KAAOmv2B,EACtChm2B,EAAazkE,KAAKszD,OAAO,cAE7BtzD,KAAKgq6B,iBADuBvl2B,GAAa,EAAK,KAAOkm2B,EAAeC,GAAc,EAAIF,GAAgB,EACxD1q6B,KAAKkq6B,cAAgBlq6B,KAAKmq6B,YACxEnq6B,KAAKm5D,SAASxgD,IAElB4x5B,wBAAyB,WACrBvq6B,KAAK+tG,QAAQ,QAASiS,gBAAiC,yBAAjCA,CAA2DhgH,KAAKszD,OAAO,2BAA4BtzD,KAAKkq6B,eAC9Hlq6B,KAAK+tG,QAAQ,QAASiS,gBAAiC,yBAAjCA,CAA2DhgH,KAAKszD,OAAO,2BAA4BtzD,KAAKmq6B,cAElIzB,cAAe,WACX,OAAO1o6B,KAAKgq6B,iBAEhBb,sBAAuB,SAASnz5B,GAC5B,IACIiz5B,EADajp6B,KAAKszD,OAAO,eACM,EAAK,EACpC94C,EAAMxa,KAAKszD,OAAO,OAClBoW,EAAM1pE,KAAKszD,OAAO,OAClB812B,EAAWpp6B,KAAK8o6B,aAAeG,EAAkBjz5B,EAAElL,MAAMq/D,OAASnqE,KAAK+o6B,mBAEvEl+4B,GADJu+4B,EAAWA,EAASxzvB,YAAY,MACLp7J,EAAMkvD,GAAOA,EACxC1pE,KAAK6q6B,6BAA6BzB,EAAUA,GAC5CtD,eAAyB9l6B,KAAK0o6B,iBAC9B1o6B,KAAKkp6B,oBAAoBE,GACzB,IACI0B,GADCnwxB,EAAYD,GAAY16I,KAAK2o6B,kBAE9BhuxB,IAAeD,IAMfjsF,aAJIq82B,EADAjg5B,EAAW8vH,EACG36I,KAAKkq6B,cAELlq6B,KAAKmq6B,YAEW,SAC9BW,GAAeA,IAAgB9q6B,KAAKgq6B,kBACpChq6B,KAAK6q6B,8BAA8BlwxB,EAAajxE,IAAQlvD,EAAMkvD,IAAOgxE,EAAWhxE,IAAQlvD,EAAMkvD,IAC9F1pE,KAAK8qG,mBAAmB9qG,KAAK0o6B,iBAAiB,GAC9C1o6B,KAAK8qG,mBAAmBgg0B,GAAa,GACrC9q6B,KAAKgq6B,gBAAkBc,GAE3B9q6B,KAAK6q6B,6BAA6BzB,EAAUA,GAC5Cpp6B,KAAKkp6B,oBAAoBE,KAGjCyB,6BAA8B,SAASE,EAAWC,GAC9C,IAAIvm2B,EAAazkE,KAAKszD,OAAO,cACzBstK,EAAY5gO,KAAKgq6B,kBAAoBhq6B,KAAKkq6B,eAAiBzl2B,GAAczkE,KAAKgq6B,kBAAoBhq6B,KAAKmq6B,cAAgB1l2B,EAGvHzkE,KAAKm2tB,QAAQp6pB,IAFN6kK,EAAY,QAAU,OAC7Bn8J,EAAam8J,EACU,IAAM,IAAMoqsB,EAAa,IAEzB,IAAMD,EAAY,MAGjDzB,iBAAkB,SAAS185B,GACvB,IAAI0mD,EAAStzD,KAAKgq6B,kBAAoBhq6B,KAAKkq6B,cAAgB,QAAU,OAChE982B,EAAOlhD,GAAOlM,KAAK2o6B,kBACpBnu5B,EAAMxa,KAAKszD,OAAO,OAClBoW,EAAM1pE,KAAKszD,OAAO,OACtBlG,EAAQ7yC,KAAKmvD,IAAInvD,KAAKC,IAAI4yC,EAAOsc,GAAMlvD,GACvCtO,EAAMqO,KAAKmvD,IAAInvD,KAAKC,IAAItO,EAAKw9D,GAAMlvD,GAC/B,YACA4yC,EAAQxgD,EAAQV,EAAMA,EAAMU,EAE5BV,EAAMU,EAAQwgD,EAAQA,EAAQxgD,EAE9B,sBAAwB0mD,OAAO,mBAC/BtzD,KAAKszD,OAAO,QAAS,CAAClG,EAAOlhD,KAE7BlM,KAAK+2b,aAAe,CAAC3pY,EAAOlhD,GAC5BlM,KAAKu+O,iBAGbA,aAAc,WACV,IAAK0srB,EAAUC,GAAUlr6B,KAAK2o6B,kBAC1Bj/1B,EAAM1pE,KAAKszD,OAAO,OAClB94C,EAAMxa,KAAKszD,OAAO,OAClBmR,EAAazkE,KAAKszD,OAAO,cAC7B232B,EAAW1w5B,KAAKC,IAAIkvD,EAAKnvD,KAAKmvD,IAAIuh2B,EAAUzw5B,IAC5C0w5B,EAAS3w5B,KAAKC,IAAIyw5B,EAAU1w5B,KAAKmvD,IAAIwh2B,EAAQ1w5B,IACzC,sBAAwB84C,OAAO,qBAC/BtzD,KAAKk4F,8BAA8B,QAAS+y0B,GAC5Cjr6B,KAAKk4F,8BAA8B,MAAOgz0B,GAC1Clr6B,KAAKk4F,8BAA8B,QAAS,CAAC+y0B,EAAUC,KAE3Dlr6B,KAAKqq6B,qBAAqB5u4B,OAAIw/c,OAA4Bgwb,IAC1Djr6B,KAAKsq6B,mBAAmB7u4B,OAAIw/c,OAA4Biwb,IACxD,IACIC,EAAS3w5B,IAAQkvD,EAAM,GAAKwh2B,EAASxh2B,IAAQlvD,EAAMkvD,GACnD0yL,EAAclgM,YAAY,KAFjB1hD,IAAQkvD,EAAM,GAAKuh2B,EAAWvh2B,IAAQlvD,EAAMkvD,KAEbksG,YAAY,KAAO,IAC3DogoB,EAAY95uB,YAAY,KAAO,EAAIiv2B,IAASv1vB,YAAY,KAAO,KAClE51K,KAAKq2tB,uBAAyBr2tB,KAAKg2tB,gBAAgB,CAChD1+oB,MAAO7S,EAAa23L,EAAc45iB,EAClC16uB,KAAMmJ,EAAauxuB,EAAY55iB,IAEnC0pqB,eAAyB9l6B,KAAKkq6B,eAAe522B,OAAO,QAAS232B,GAC7DnF,eAAyB9l6B,KAAKmq6B,aAAa722B,OAAO,QAAS432B,IAE/DzB,mBAAoB,SAASpm6B,EAAMsV,GAC/Bmt5B,eAAyB9l6B,KAAKkq6B,eAAe7m6B,GAAMsV,GACnDmt5B,eAAyB9l6B,KAAKmq6B,aAAa9m6B,GAAMsV,IAErDyy5B,gBAAiB,WACb,IAAIh+2B,EAAQptD,KAAKszD,OAAO,SACpBpnD,EAAMlM,KAAKszD,OAAO,OACtBtzD,KAAKszD,OAAO,QAAS,CAAClG,EAAOlhD,KAEjCm/5B,gBAAiB,CAACC,EAAYC,IAAgBD,EAAW,KAAOC,EAAY,IAAMD,EAAW,KAAOC,EAAY,GAChHh10B,eAAgB,SAAS59E,GACrB,OAAQA,EAAKtV,UACJ,QACD,GAAIrD,KAAKqr6B,gBAAgB1y5B,EAAK/L,MAAO+L,EAAK0d,eACtC,MAEJr2B,KAAKk4F,8BAA8B,QAASv/E,EAAK/L,MAAM,IACvD5M,KAAKk4F,8BAA8B,MAAOv/E,EAAK/L,MAAM,IACrD5M,KAAKu+O,eACL,IAAInxL,EAAQptD,KAAKszD,OAAO,SACpBpnD,EAAMlM,KAAKszD,OAAO,OAClB+iG,GAAWr2J,KAAKqr6B,gBAAgBrr6B,KAAK22O,cAAeh+N,EAAK/L,OAC7D5M,KAAKszD,OAAO,UAAW+iG,GACvBr2J,KAAKo2F,sBAAsB,iBAAkB,CACzC3I,kBAAmB,CAAC,WAAY,aADpCztF,CAEG,CACCotD,MAAOA,EACPlhD,IAAKA,EACLU,MAAO,CAACwgD,EAAOlhD,GACfpB,MAAO9K,KAAKw3O,0BACZnhN,cAAe1d,EAAK0d,gBAExBr2B,KAAK02O,kBAAkBx2K,KAAK,CACxBtzD,MAAO,CAACwgD,EAAOlhD,GACfylO,OAAQ3xO,OAEZA,KAAKy3O,2BAAsB,GAC3B,UACC,YACA,MACDz3O,KAAKor6B,kBACL,UACC,YACDpr6B,KAAKqq6B,qBAAqBj71B,KAAK,OAAQz2D,EAAK/L,OAC5C,UACC,UACD5M,KAAKsq6B,mBAAmBl71B,KAAK,OAAQz2D,EAAK/L,OAC1C,UACC,OACD,cAEA5M,KAAKm5D,SAASxgD,OAI9Bu7H,GAAkB,gBAAiB21xB,KACnC,UAAeA,IC7QT/7oB,IAAiC,CACnCnqR,QAASuhB,GACTzQ,aAAa2Q,SAAW,IAAMom5B,KAC9B3m6B,OAAO,OAML2m6B,UAAN,gBAAqCt12B,GACjCr2D,YAAY0lB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgBC,EAAMv9B,EAAYr/H,EAAe0gD,GAC3Ft2D,MAAMylB,EAAYozB,EAAQ6Y,EAAc6gH,EAAgB38J,EAAe0gD,GACvEp2D,KAAKqyK,eAAiBA,EACtBryK,KAAKsyK,KAAOA,EACZtyK,KAAKwoB,QAAWhE,MAChBxkB,KAAKmzD,qBAAqB,CACtB,CAAEz6C,UAAW,eAAgBsI,KAAM,kBACnC,CAAEtI,UAAW,YAAasI,KAAM,eAChC,CAAEtI,UAAW,cAAesI,KAAM,iBAClC,CAAEtI,UAAW,gBAAiBsI,KAAM,mBACpC,CAAEtI,UAAW,eAAgBsI,KAAM,kBACnC,CAAEA,KAAM,mBACR,CAAEA,KAAM,4BACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,qBACR,CAAEA,KAAM,aACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,aACR,CAAEA,KAAM,aACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,mBACR,CAAEA,KAAM,cACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,+BACR,CAAEA,KAAM,mCACR,CAAEA,KAAM,0BACR,CAAEA,KAAM,eACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,iBACR,CAAEA,KAAM,eACR,CAAEA,KAAM,YAEZhhB,KAAKsyK,KAAK1jH,QAAQ5uD,MAClB+0I,EAAWnmF,QAAQ5uD,MAMnB8oG,gBACA,OAAO9oG,KAAKozD,WAAW,aAEvB01C,cAAUl8F,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7B87F,yBACA,OAAO1oG,KAAKozD,WAAW,sBAEvBs1C,uBAAmB97F,GACnB5M,KAAK6yD,WAAW,qBAAsBjmD,GAMtCwb,eACA,OAAOpoB,KAAKozD,WAAW,YAEvBhrC,aAASxb,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5Bu0F,kBACA,OAAOnhG,KAAKozD,WAAW,eAEvB+tC,gBAAYv0F,GACZ5M,KAAK6yD,WAAW,cAAejmD,GAM/BV,UACA,OAAOlM,KAAKozD,WAAW,OAEvBlnD,QAAIU,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvBg8d,cACA,OAAO5oe,KAAKozD,WAAW,WAEvBw1a,YAAQh8d,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3Bi8F,wBACA,OAAO7oG,KAAKozD,WAAW,qBAEvBy1C,sBAAkBj8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCkzD,aACA,OAAO9/D,KAAKozD,WAAW,UAEvB0M,WAAOlzD,GACP5M,KAAK6yD,WAAW,SAAUjmD,GAM1B67F,WACA,OAAOzoG,KAAKozD,WAAW,QAEvBq1C,SAAK77F,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBg8F,wBACA,OAAO5oG,KAAKozD,WAAW,qBAEvBw1C,sBAAkBh8F,GAClB5M,KAAK6yD,WAAW,oBAAqBjmD,GAMrCypJ,cACA,OAAOr2J,KAAKozD,WAAW,WAEvBijG,YAAQzpJ,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B64J,cACA,OAAOzlK,KAAKozD,WAAW,WAEvBqyG,YAAQ74J,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B0jf,cACA,OAAOtwf,KAAKozD,WAAW,WAEvBk9b,YAAQ1jf,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3ByrI,YACA,OAAOr4I,KAAKozD,WAAW,SAEvBilF,UAAMzrI,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB4N,UACA,OAAOxa,KAAKozD,WAAW,OAEvB54C,QAAI5N,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvB88D,UACA,OAAO1pE,KAAKozD,WAAW,OAEvBsW,QAAI98D,GACJ5M,KAAK6yD,WAAW,MAAOjmD,GAMvB4hF,eACA,OAAOxuF,KAAKozD,WAAW,YAEvBo7B,aAAS5hF,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5B63D,iBACA,OAAOzkE,KAAKozD,WAAW,cAEvBqR,eAAW73D,GACX5M,KAAK6yD,WAAW,aAAcjmD,GAM9B065B,gBACA,OAAOtn6B,KAAKozD,WAAW,aAEvBk02B,cAAU165B,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7BwgD,YACA,OAAOptD,KAAKozD,WAAW,SAEvBhG,UAAMxgD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzB+7d,gBACA,OAAO3oe,KAAKozD,WAAW,aAEvBu1a,cAAU/7d,GACV5M,KAAK6yD,WAAW,YAAajmD,GAM7Bi3M,WACA,OAAO7jN,KAAKozD,WAAW,QAEvBywJ,SAAKj3M,GACL5M,KAAK6yD,WAAW,OAAQjmD,GAMxBiiE,eACA,OAAO7uE,KAAKozD,WAAW,YAEvByb,aAASjiE,GACT5M,KAAK6yD,WAAW,WAAYjmD,GAM5BioS,cACA,OAAO70S,KAAKozD,WAAW,WAEvByhP,YAAQjoS,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3B+5J,sBACA,OAAO3mK,KAAKozD,WAAW,mBAEvBuzG,oBAAgB/5J,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCg6J,uBACA,OAAO5mK,KAAKozD,WAAW,oBAEvBwzG,qBAAiBh6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCi6J,4BACA,OAAO7mK,KAAKozD,WAAW,yBAEvByzG,0BAAsBj6J,GACtB5M,KAAK6yD,WAAW,wBAAyBjmD,GAMzCk6J,gCACA,OAAO9mK,KAAKozD,WAAW,6BAEvB0zG,8BAA0Bl6J,GAC1B5M,KAAK6yD,WAAW,4BAA6BjmD,GAM7Cm6J,uBACA,OAAO/mK,KAAKozD,WAAW,oBAEvB2zG,qBAAiBn6J,GACjB5M,KAAK6yD,WAAW,mBAAoBjmD,GAMpCA,YACA,OAAO5M,KAAKozD,WAAW,SAEvBxmD,UAAMA,GACN5M,KAAK6yD,WAAW,QAASjmD,GAMzBg7S,sBACA,OAAO5nT,KAAKozD,WAAW,mBAEvBw0P,oBAAgBh7S,GAChB5M,KAAK6yD,WAAW,kBAAmBjmD,GAMnCmiE,cACA,OAAO/uE,KAAKozD,WAAW,WAEvB2b,YAAQniE,GACR5M,KAAK6yD,WAAW,UAAWjmD,GAM3BgzD,YACA,OAAO5/D,KAAKozD,WAAW,SAEvBwM,UAAMhzD,GACN5M,KAAK6yD,WAAW,QAASjmD,GAE7B8pB,OAAOlS,IACP0zC,gBAAgB1wD,EAASoqB,GACrB,OAAO,IAAI654B,IAAcjk6B,EAASoqB,GAEtChM,WAAWhZ,GACP5M,KAAK02D,YAAYhH,wBAAyB,EAC1C1vD,KAAK4M,MAAQA,EACb5M,KAAK02D,YAAYhH,wBAAyB,EAE9C7qC,iBAAiBC,GACb9kB,KAAKooB,SAAWtD,EAEpBF,iBAAiBhH,GAAM5d,KAAK02B,OAAS9Y,EACrC+G,kBAAkB/G,GAAM5d,KAAKwoB,QAAU5K,EACvCo6C,cAAcxwD,GACV1H,MAAMk4D,cAAcxwD,GACpBxH,KAAKirC,SAAS2e,GAAG,WAAa5zC,IAC1BhW,KAAK02D,YAAY/G,YAAY,SAAU,CAAC35C,MAGhDpM,cACI5J,KAAKm4D,iBAETniC,YAAYC,GACRn2B,MAAMk2B,YAAYC,GAClBj2B,KAAKwyK,aAAa,mBAAoBv8I,GACtCj2B,KAAKwyK,aAAa,QAASv8I,GAE/Bu8I,aAAa72I,EAAM1F,GACT0F,KAAQ37B,KAAKq2D,kBACfr2D,KAAKsyK,KAAKh4G,MAAM3+B,EAAM1F,GAG9BmiC,YACIp4D,KAAKsyK,KAAKz3G,QAAQ,oBAClB76D,KAAKsyK,KAAKz3G,QAAQ,SAClB76D,KAAKqyK,eAAelhH,gBACpBrxD,MAAMs4D,YACNt4D,MAAM63D,sBAEV9E,WAAWxvD,EAAMuJ,GACb,IAAI6lK,EAAUzyK,KAAKsyK,KAAK/3G,YAAYl3D,EAAMuJ,GACtC8lK,EAAkD,OAAtC1yK,KAAKsyK,KAAK93G,WAAWn3D,EAAMuJ,IACvC6lK,GAAWC,IACX5yK,MAAM+yD,WAAWxvD,EAAMuJ,IAIhB4+5B,SAAuB/k6B,UAAO,SAAwCP,GAAK,OAAO,IAAKA,GAAKsl6B,GAAwB7k6B,MAAqBA,OAAgBA,MAAqBA,OAAYA,MAAqBuzD,IAAoBvzD,MAAqBuzD,IAAmBvzD,MAAqBuzD,IAA0BvzD,MAAqBuzD,IAAsBvzD,MAAqBgsK,IAAmBhsK,MAAqBiN,SACla435B,EAAuB1/3B,UAAiCnlC,MAAqB,CAAE8E,KAAM+/5B,EAAwBxl5B,UAAW,CAAC,CAAC,oBAAqBioQ,aAAc,SAA6Cv5N,EAAIv9C,GAAgB,EAALu9C,GACpO/tD,MAAc,cAAe,SAA+DkuB,GAAU,OAAO1d,EAAIuf,OAAO7B,IAAxHluB,CAAoI,SAAU,SAA0DkuB,GAAU,OAAO1d,EAAIqR,QAAQqM,MACpOK,OAAQ,CAAE4zE,UAAW,YAAaJ,mBAAoB,qBAAsBtgF,SAAU,WAAY+4E,YAAa,cAAej1F,IAAK,MAAO08d,QAAS,UAAW//X,kBAAmB,oBAAqB/oC,OAAQ,SAAU2oC,KAAM,OAAQG,kBAAmB,oBAAqBytD,QAAS,UAAWoP,QAAS,UAAW6qV,QAAS,UAAWj4W,MAAO,QAAS79H,IAAK,MAAOkvD,IAAK,MAAO8kB,SAAU,WAAY/pB,WAAY,aAAc6i2B,UAAW,YAAal62B,MAAO,QAASu7a,UAAW,YAAa9kR,KAAM,OAAQh1I,SAAU,WAAYgmO,QAAS,UAAWluI,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,sBAAuB,wBAAyBC,0BAA2B,4BAA6BC,iBAAkB,mBAAoBn6J,MAAO,QAASg7S,gBAAiB,kBAAmB74O,QAAS,UAAWnP,MAAO,SAAWy+E,QAAS,CAAE11C,eAAgB,iBAAkBjU,YAAa,cAAeF,cAAe,gBAAiBC,gBAAiB,kBAAmBigE,eAAgB,iBAAkBke,gBAAiB,kBAAmBC,yBAA0B,2BAA4BK,eAAgB,iBAAkBC,kBAAmB,oBAAqBu4vB,UAAW,YAAaC,cAAe,gBAAiBv4vB,wBAAyB,0BAA2B/iB,aAAc,eAAgBgjB,WAAY,aAAcC,wBAAyB,0BAA2Bm7G,cAAe,gBAAiBC,cAAe,gBAAiB4pO,cAAe,gBAAiB3pO,YAAa,cAAe23L,UAAW,YAAaE,UAAW,YAAap3L,eAAgB,iBAAkBr7G,iBAAkB,mBAAoB63vB,gBAAiB,kBAAmBC,YAAa,cAAeC,gBAAiB,kBAAmB98C,WAAY,aAAc56sB,eAAgB,iBAAkB8yR,cAAe,gBAAiBr3K,sBAAuB,wBAAyBC,uBAAwB,yBAA0BC,4BAA6B,8BAA+BC,gCAAiC,kCAAmCC,uBAAwB,yBAA0Bl7H,YAAa,cAAeg3wB,sBAAuB,wBAAyB1hxB,cAAe,gBAAiBkG,YAAa,cAAe8/H,OAAQ,UAAYprQ,SAAU,CAACte,MAAsB,CACzvE2rD,GACAxC,GACAg+N,IACA94I,GACA76E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAyC4F,EAAIv9C,KAAUzL,cAAe,IArblK8/5B,MA6lBAQ,UAAN,SAEmBA,SAAoBvl6B,UAAO,SAAqCP,GAAK,OAAO,IAAKA,GAAK8l6B,IACtFA,EAAoB/25B,UAAiCtO,MAAoB,CAAE8E,KAAMug6B,IACjFA,EAAoB925B,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC5F4mJ,GACAtE,GACAoZ,GACA52G,GACA1H,IACDwpG,GACHtE,GACAoZ,GACAt+G,MAbFy52B,MCnnBC,IAAIC,IACT,SAASA,GACPA,EAAuBC,wBAA0B,gBACjDD,EAAuBE,wBAA0B,kBACjDF,EAAuBG,iBAAmB,SAC1CH,EAAuBI,iBAAmB,WAJ5C,CAKAJ,KAA2BA,GAAyB,KCX/C,IAAIK,GAAe,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,MAEAC,GAAyB,WACzB,WAAiB5ykB,EAASz4T,GACtB,GAAU,IAANA,EACA,MAAM,IAAI37B,MAAM,oCACpBvF,KAAK25V,QAAUA,EACf35V,KAAKkhC,EAAIA,EAEbqr4B,SAAQC,QAAU,SAAUnt4B,GACxB,OAAO,IAAIkt4B,EAAQD,GAAa955B,QAAQ6sB,KAI5Ckt4B,EAAQpy4B,UAAUsy4B,IAAM,SAAUvr4B,GAC9B,OAAOlhC,KAAKkhC,IAAMA,EAAIlhC,KAAO,IAAIus6B,EAAQvs6B,KAAK25V,QAASz4T,IAG3Dqr4B,EAAQpy4B,UAAUxd,OAAS,SAAUyvR,GACjC,OAAOpsS,KAAK25V,UAAYvtD,EAAMutD,SAAW35V,KAAKkhC,IAAMkrQ,EAAMlrQ,GAG9Dqr4B,EAAQpy4B,UAAU3iB,SAAW,WACzB,IAAIb,EAAI215B,GAAats6B,KAAK25V,SAC1B,OAAI35V,KAAKkhC,IACLvqB,GAAK3W,KAAKkhC,EAAI,EAAI,IAAM,IAAMruB,OAAO7S,KAAKkhC,GAAKvqB,GAC5CA,GAEX415B,EAAQpy4B,UAAUuy4B,aAAe,WAC7B,OAAwB,IAAjB1s6B,KAAK25V,QAAgB,EAAI35V,KAAK25V,QAAU,GAE5C4ykB,EA7BkB,GCRlBxl5B,GAAY,SAAUna,GAC7B,OAAiB,MAAVA,GAEA2sL,GAAW,SAAU3sL,GAC5B,MAAwB,iBAAVA,GAEP+/5B,IAAe,SAAU//5B,GAChC,MAAwB,iBAAVA,GAAsB0/5B,YAAsB1/5B,IAEnDlC,GAAU9B,MAAM8B,QAIhB8iL,GAAQ,SAAUpgI,EAAOlhD,QACpB,IAARA,IAAkBA,EAAMkhD,GACH,IAArBrtD,UAAU0E,SACVyH,EAAMkhD,EACNA,EAAQ,GAGZ,QADIw/2B,EAAO,GACFpo6B,EAAI4oD,EAAO5oD,EAAI0H,EAAK1H,IACzBoo6B,EAAKvj6B,KAAK7E,GACd,OAAOoo6B,GAKAzmrB,GAAS,SAAUv5O,EAAOig6B,GACjC,IAAIro6B,EAAI,EACJimF,EAAQ,GACZ,GAAI//E,GAAQkC,GACR,KAAOpI,EAAIqo6B,EAAOro6B,IACdimF,EAAMjmF,GAAK,GAAGqd,OAAOjV,QAGzB,KAAOpI,EAAIqo6B,EAAOro6B,IACdimF,EAAMjmF,GAAKoI,EAEnB,OAAO69E,GAEAgR,IAAU,SAAU7+E,GAC3B,OAAIlS,GAAQkS,GACDA,EAEJ,CAACA,IAEL,YAAkBA,EAAMkw5B,EAAcC,QACvB,IAAdA,IAAwBA,EAAY,KACxC,IAAI1t4B,EAAMxsB,OAAO+J,GAEjB,OAAIyiB,EAAI56B,QADRqo6B,IAA+B,GAEpBj65B,OAAOwsB,KAElByt4B,GAA8Bzt4B,EAAI56B,QACfso6B,EAAUto6B,SACzBso6B,GAAa5mrB,GAAO4mrB,EAAWD,EAAeC,EAAUto6B,SAErDso6B,EAAUzl6B,MAAM,EAAGwl6B,GAAgBj65B,OAAOwsB,IAK9C,IAqBI2t4B,GAAQ,SAAU/x4B,EAAGpd,GAC5B,IAAI5G,EAAIgkB,EAAIpd,EAEZ,OAAO5G,EAAI4G,EAAI,EAAI5G,EAAI4G,EAAI5G,GAKpBg25B,GAAS,SAAUhy4B,EAAGpd,GAC7B,MAAO,CAAEszT,IAAK52T,KAAKo7J,MAAM16I,EAAIpd,GAAIqv5B,IAAKF,GAAM/x4B,EAAGpd,KAExCmlE,GAAQ,SAAU1qE,GACzB,OAAQyO,GAAUzO,IAAuB,IAAfA,EAAI7T,QASvBy63B,GAAW,SAAU5m3B,GAC5B,OAAQ0qE,GAAM1qE,IAKPkP,GAAW,SAAU/F,EAAKga,GACjC,OAAOyj2B,GAASz92B,KAA6B,IAArBA,EAAIjP,QAAQipB,IClH7Bg7R,GAAW,SAAUj7P,EAAGz1B,EAAG+X,EAAG6qB,EAAGnkE,EAAGmS,GAC3C,YAAU,IAANgyD,IAAgBA,EAAI,QACd,IAANnkE,IAAgBA,EAAI,QACd,IAANmS,IAAgBA,EAAI,GACjB,IAAIq3C,KAAKA,KAAKqtO,IAAI7/N,EAAGz1B,EAAI,EAAG+X,EAAG6qB,EAAGnkE,EAAGmS,KAOrCw25B,IAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAc1DC,IAAe32mB,GAAS,KAAM,EAAG,GAKjC42mB,IAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GASjCC,GAAa,SAAUl1oB,GAC9B,OAAQA,EAAO,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,GAEvDzqG,IAAS,SAAU/gL,GAC1B,OAAOA,aAAiBohD,MAEjBu/2B,GAAc,SAAU3g6B,GAC/B,OAAO+gL,IAAO/gL,KAAWqiE,MAAMriE,EAAMikD,YAwB9B282B,GAAY,SAAU11zB,GAC7B,OAdqB,SAAUmjL,EAAOC,GAGtC,IAAIuyoB,EAAUxyoB,EAAMpqO,UAChB682B,EAAUxyoB,EAAMrqO,UAIpB,OAAOt2C,KAAK2zC,OAFOu/2B,EAAUC,GAhDZ,OAwDVC,CAAY71zB,EAAMs1zB,MAKlBQ,IAAc,SAAUC,GAC/B,OAAO,IAAI7/2B,KAAKo/2B,IAAav82B,UA9DZ,MA8DwBg92B,IAElCC,IAAe,SAAUh2zB,GAChC,IAAIogL,EAAQpgL,EAAKw2O,cACjB,OAAiB,IAAVp2D,GAAeo1oB,GAAWx1zB,EAAKs2O,kBAChC,GACA++kB,IAAWj1oB,IAKV61oB,GAAa,SAAUj2zB,GAC9B,OAAOu1zB,IAAYv1zB,EAAKk2zB,cAKjBC,IAAa,SAAU71oB,EAAMF,GACpC,IAAIpgL,EAAO2+M,GAASr+B,EAAMF,EAAQ,EAAG,GACrC,MAAO,CAAC61oB,GAAWj2zB,GAAOg2zB,IAAah2zB,KAKhCo2zB,IAAU,SAAUp2zB,EAAMzmC,GACjCA,SAAOA,GAAQymC,EACR,IAAI9pD,KAAKA,KAAKqtO,IAAIvjL,EAAKs2O,iBAAkBt2O,EAAKw2O,cAAex2O,EAAKy2O,aAAcl9Q,EAAKmqN,WAAYnqN,EAAK+qN,aAAc/qN,EAAKgrN,aAAchrN,EAAKirN,qBAE5IjyM,GAAQ,SAAUytB,GAEzB,OADY,IAAI9pD,KAAK8pD,EAAKjnD,YAGnBs92B,IAAa,SAAUrhgB,GAE9B,QADIshgB,EAAS,GACJ5p6B,EAAI,EAAGA,EAAIsoa,EAAMroa,OAAQD,IAC9B4p6B,EAAO/k6B,KAAKghF,GAAMyiV,EAAMtoa,KAE5B,OAAO4p6B,GAKA9y4B,GAAO,SAAUwxY,GACxBA,EAAMxxY,KAAK,SAAUL,EAAGpd,GACpB,OAAOod,EAAE41B,UAAYhzC,EAAEgzC,aAGpBw92B,GAAoB,SAAUh91B,EAAMi91B,QAC/B,IAARA,IAAkBA,GAAM,GAC5B,IAAIx2zB,EAAO,IAAI9pD,KAAKqjB,GACpB,MAAO,CACHk91B,GAASz2zB,EAAKs2O,iBAAiB52U,WAAY,EAAG,KAC9C+25B,GAASz2zB,EAAKw2O,cAAgB,EAAG,EAAG,KACpCiglB,GAASz2zB,EAAKy2O,aAAc,EAAG,KAC/B,IACAgglB,GAASz2zB,EAAK02O,cAAe,EAAG,KAChC+/kB,GAASz2zB,EAAK22O,gBAAiB,EAAG,KAClC8/kB,GAASz2zB,EAAK42O,gBAAiB,EAAG,KAClC4/kB,EAAM,IAAM,IACdhw4B,KAAK,KAEAkw4B,GAAoB,SAAUC,GACrC,IACIC,EADK,qDACK5m2B,KAAK2m2B,GACnB,IAAKC,EACD,MAAM,IAAInp6B,MAAM,wBAAwBsc,OAAO4s5B,IACnD,OAAO,IAAIzg3B,KAAKA,KAAKqtO,IAAItoR,SAAS275B,EAAK,GAAI,IAAK375B,SAAS275B,EAAK,GAAI,IAAM,EAAG375B,SAAS275B,EAAK,GAAI,IAAK375B,SAAS275B,EAAK,GAAI,KAAO,EAAG375B,SAAS275B,EAAK,GAAI,KAAO,EAAG375B,SAAS275B,EAAK,GAAI,KAAO,KAEnLC,IAAkB,SAAU72zB,EAAM2oL,GAIlC,OAFc3oL,EAAK82zB,eAAe,QAAS,CAAEnuoB,SAAUA,IAExC71R,QAAQ,IAAK,KAAO,KCnJnCik6B,IAA4B,WAC5B,WAAoBxp1B,EAAQ1sE,GACxB3Y,KAAKi/V,QAAU,KACfj/V,KAAKk/V,QAAU,KACfl/V,KAAK8u6B,QAAU,GACf9u6B,KAAK8uK,MAAQ,EACb9uK,KAAKqlF,OAASA,EACdrlF,KAAK2Y,KAAOA,EACG,YAAfuoB,GACIlhC,KAAKk/V,QAAUvmV,EAAKo25B,IACdp25B,EAAKo/iB,OACL,IAAI/pgB,KAAKr1C,EAAKo/iB,OAAOlngB,UAAY,GACvC7wD,KAAKi/V,QAAUtmV,EAAKo25B,IAAMp25B,EAAKm2H,MAAQ,IAAI9gF,KAAKr1C,EAAKm2H,MAAMj+E,UAAY,IAEvD,WAAXw0B,EACLrlF,KAAKk/V,QAAUvmV,EAAKo25B,IAAMp25B,EAAKq25B,GAAK,IAAIhh3B,KAAKr1C,EAAKq25B,GAAGn+2B,UAAY,GAEjD,UAAXw0B,IACLrlF,KAAKi/V,QAAUtmV,EAAKo25B,IAAMp25B,EAAKq25B,GAAK,IAAIhh3B,KAAKr1C,EAAKq25B,GAAGn+2B,UAAY,IAWzEg+2B,SAAW104B,UAAUk+rB,OAAS,SAAUvgnB,KAClC93G,KAAK8uK,MACP,IAAImgwB,EAAWjv6B,KAAKi/V,SAAWnnP,EAAO93G,KAAKi/V,QACvCiwkB,EAAUlv6B,KAAKk/V,SAAWpnP,EAAO93G,KAAKk/V,QAC1C,GAAoB,YAAhBl/V,KAAKqlF,OAAsB,CAC3B,GAAI4p1B,EACA,OAAO,EACX,GAAIC,EACA,OAAO,UAEU,WAAhBlv6B,KAAKqlF,QACV,GAAI6p1B,EACA,OAAO,UAEU,UAAhBlv6B,KAAKqlF,OACV,QAAI4p1B,IAEJjv6B,KAAKyI,IAAIqvG,IACF,GAEX,OAAO93G,KAAKyI,IAAIqvG,IAOpB+2zB,EAAW104B,UAAU1xB,IAAM,SAAUqvG,GACjC,YAAKg3zB,QAAQzl6B,KAAKyuG,IACX,GAQX+2zB,EAAW104B,UAAU1c,SAAW,WAC5B,IAAI0C,EAAMngB,KAAK8u6B,QACf,OAAQ9u6B,KAAKqlF,YACJ,UACA,UACD,OAAOllE,EAEN,QAED,OAAQA,EAAI1b,OAAS0b,EAAIA,EAAI1b,OAAS,GAAK,OAGvDoq6B,EAAW104B,UAAUkwD,MAAQ,WACzB,OAAO,IAAIwk1B,EAAW7u6B,KAAKqlF,OAAQrlF,KAAK2Y,OAErCk25B,EAjFqB,GAmFhC,SAAeA,oBChFXM,IAAoC,SAAUC,GAE9C,WAA4B/p1B,EAAQ1sE,EAAMmiD,GACtC,IAAI48B,EAAQ030B,EAAOh14B,KAAKp6B,KAAMqlF,EAAQ1sE,IAAS3Y,KAC/C03F,SAAM58B,SAAWA,EACV48B,EAEXy30B,OANAE,SAAUF,EAAoBC,GAM9BD,EAAmBh14B,UAAU1xB,IAAM,SAAUqvG,GACzC,QAAI93G,KAAK86D,SAASg9C,EAAM93G,KAAK8u6B,QAAQrq6B,UACjCzE,KAAK8u6B,QAAQzl6B,KAAKyuG,IACX,IAIRq3zB,EAd6B,CAetCN,IACF,UAAeM,ICkDfG,GArEc,CACV93kB,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,YAEJF,WAAY,CACR,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJi4kB,OAAQ,CACJC,KAAM,mBACNvi2B,OAAQ,eACRwi2B,aAAc,oBACdj04B,MAAO,UACP,SAAU,UACV,aAAc,cACd,UAAW,WACX,UAAW,WACX,YAAa,aACb,WAAY,YACZ,UAAW,WACXouB,GAAI,YACJn5B,GAAI,SACJi/4B,IAAK,QACL9/3B,MAAO,UACPuiJ,OAAQ,WACRw9uB,MAAO,UACPlD,IAAK,kCACLrx5B,KAAM,SACNw05B,IAAK,QACL,UAAW,WACXnB,MAAO,aACPoB,OAAQ,iBACRC,QAAS,qBACTC,UAAW,uBACXC,SAAU,sBACVC,OAAQ,iBACRC,SAAU,mBACVC,OAAQ,iBACRC,QAAS,eACTC,SAAU,gBACVC,MAAO,aACPC,MAAO,aACPC,IAAK,QACLC,KAAM,UACNC,KAAM,UACNC,OAAQ,cACRC,UAAW,oBACXC,QAAS,eACTC,SAAU,gBACVC,SAAU,gBACVC,MAAO,0BC5Df,IAAIx+4B,IAAW,SAAU/Q,EAAKga,GAC1B,OAA4B,IAArBha,EAAIjP,QAAQipB,IAEnBw14B,IAAiB,SAAUpl6B,GAAM,OAAOA,EAAG2L,YAC3C055B,IAAuB,SAAU94oB,EAAMF,EAAOF,GAAO,MAAO,GAAGn2Q,OAAOq2Q,EAAO,KAAKr2Q,OAAOm2Q,EAAK,MAAMn2Q,OAAOu2Q,IAS3G+4oB,IAAwB,WACxB,WAAgBC,EAAOC,EAAS9u5B,EAAU+u5B,GAWtC,QAVgB,IAAZD,IAAsBA,EAAUJ,UACnB,IAAb1u5B,IAAuBA,EAAWgv5B,SAChB,IAAlBD,IAA4BA,EAAgBJ,KAChDlx6B,KAAKyW,KAAO,GACZzW,KAAKuiB,SAAWA,GAAYgv5B,GAC5Bvx6B,KAAKqx6B,QAAUA,EACfrx6B,KAAKsx6B,cAAgBA,EACrBtx6B,KAAKox6B,MAAQA,EACbpx6B,KAAK4xB,QAAUw/4B,EAAMx/4B,QACrB5xB,KAAKwx6B,YAAcJ,EAAMI,YACrBxx6B,KAAKwx6B,YAAYC,WAAY,CAC7B,IAAIA,EAAa,GAAG5v5B,OAAO7hB,KAAK4xB,QAAQ6/4B,YACpCC,EAAc,GAAG7v5B,OAAO7hB,KAAK4xB,QAAQ8/4B,aACzCD,EAAWn24B,KAAK,SAAUL,EAAGpd,GAAK,OAAOod,EAAIpd,IAC7C6z5B,EAAYp24B,KAAK,SAAUL,EAAGpd,GAAK,OAAOA,EAAIod,IAE9Cj7B,KAAKyx6B,WAAaA,EAAW5v5B,OAAO6v5B,GAC/B1x6B,KAAKyx6B,WAAWht6B,SACjBzE,KAAKyx6B,WAAa,MAE1B,GAAI1q5B,GAAU/mB,KAAKwx6B,YAAYG,WAAY,CACvC,IAAIA,EAAYC,GAAS5x6B,KAAKwx6B,YAAYG,WAEpC3x6B,KAAKwx6B,YAAYG,UADjB,CAAC3x6B,KAAKwx6B,YAAYG,WAEpBr3oB,EAAOznR,OAAO8+5B,GAClB3x6B,KAAK2x6B,UAAY,CACbE,SAAUF,EAAU7q5B,OAAO,SAAU6yU,GACjC,OAAQA,EAAQz4T,IAEpB4w4B,UAAWH,EAAU7q5B,OAAO,SAAU6yU,GAClC,OAAO7rP,QAAQ6rP,EAAQz4T,KAE3B6w4B,YAAmC,IAAvBz3oB,EAAK9nR,QAAQ,QACE,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,MACjBw/5B,YAAmC,IAAvB13oB,EAAK9nR,QAAQ,QACE,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,QACU,IAAvB8nR,EAAK9nR,QAAQ,OAErB,IAAIy/5B,EAAe,SAAUh34B,EAAGpd,GAC5B,OAAOod,EAAE0+T,QAAU97U,EAAE87U,SAEzB35V,KAAK2x6B,UAAUE,SAASv24B,KAAK224B,GAC7Bjy6B,KAAK2x6B,UAAUG,UAAUx24B,KAAK224B,GACzBjy6B,KAAK2x6B,UAAUE,SAASpt6B,SACzBzE,KAAK2x6B,UAAUE,SAAW,MACzB7x6B,KAAK2x6B,UAAUG,UAAUrt6B,SAC1BzE,KAAK2x6B,UAAUG,UAAY,WAG/B9x6B,KAAK2x6B,UAAY,KASzBR,SAAOe,mBAAqB,SAAUd,GAIlC,KAFMA,EAAMx/4B,QAAQug5B,QAAQhB,EAAOiB,cAE/BhB,EAAMI,YAAY/C,OAAS2C,EAAMI,YAAY5r6B,MAC7C,OAAO,EACX,QAASuM,KAAOi/5B,EAAMI,YAAa,CAC/B,GAAIh/4B,IAAS,CAAC,UAAW,OAAQ,OAAQ,QAASrgB,GAC9C,OAAO,EACX,IAAKqgB,IAAS2+4B,EAAOiB,YAAYhB,EAAMx/4B,QAAQug5B,MAAOhg6B,GAClD,OAAO,EAEf,OAXiB,GAarBg/5B,EAAOh34B,UAAU+34B,mBAAqB,WAClC,OAAOf,EAAOe,mBAAmBly6B,KAAKox6B,QAS1CD,EAAOh34B,UAAU3iB,SAAW,WACxB,IAAI655B,EAAUrx6B,KAAKqx6B,QACnB,KAAMrx6B,KAAK4xB,QAAQug5B,QAAQhB,EAAOiB,aAC9B,OAAOf,EAAQ,2DAMnB,GAJArx6B,KAAKyW,KAAO,CAAC465B,EAAQ,UAGrBrx6B,KAAKqy6B,eAAkBry6B,KAAK4xB,QAAQug5B,SAChCny6B,KAAK4xB,QAAQ684B,MAAO,CACpBzu6B,KAAKyI,IAAI4o6B,EAAQ,UACjB,IAAI5C,EAAQzu6B,KAAK4xB,QAAQ684B,MACzBzu6B,KAAKyI,IAAIzI,KAAKsx6B,cAAc7C,EAAMrglB,iBAAkBpuV,KAAKuiB,SAAS+0U,WAAWm3kB,EAAMnglB,eAAgBmglB,EAAMlglB,oBAEpGvuV,KAAK4xB,QAAQhsB,OAClB5F,KAAKyI,IAAI4o6B,EAAQ,QACZ5o6B,IAAIzI,KAAK4xB,QAAQhsB,MAAM4R,YACvB/O,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQhsB,OAASyr6B,EAAQ,SAAWA,EAAQ,SAE1E,OAAKrx6B,KAAKky6B,sBACNly6B,KAAKyI,IAAI4o6B,EAAQ,oBACdrx6B,KAAKyW,KAAK6nB,KAAK,KAE1B6y4B,EAAOh34B,UAAUo44B,OAAS,WACtB,IAAIlB,EAAUrx6B,KAAKqx6B,QACW,IAA1Brx6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YACnCxX,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAAYil3B,EAAQ,SAAWA,EAAQ,UAE7EF,EAAOh34B,UAAUq44B,SAAW,WACxB,IAAInB,EAAUrx6B,KAAKqx6B,QACW,IAA1Brx6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YACnCxX,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAC5Bil3B,EAAQ,WACRA,EAAQ,YAElBF,EAAOh34B,UAAUs44B,MAAQ,WACrB,IAAIpB,EAAUrx6B,KAAKqx6B,QACW,IAA1Brx6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAE/BxX,KAAKyI,IADTzI,KAAS2x6B,WAAa3x6B,KAAK2x6B,UAAUI,WACxB/x6B,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAC5Bil3B,EAAQ,YACRA,EAAQ,WAGLrx6B,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAAYil3B,EAAQ,QAAUA,EAAQ,QAExErx6B,KAAKwx6B,YAAYkB,UACjB1y6B,KAAKyI,IAAI4o6B,EAAQ,OACjBrx6B,KAAK2y6B,YAET3y6B,KAASyx6B,WACLzx6B,KAAK4y6B,cAEA5y6B,KAAK2x6B,UACV3x6B,KAAK6y6B,aAEA7y6B,KAAKwx6B,YAAYsB,QACtB9y6B,KAAK+y6B,WAGb5B,EAAOh34B,UAAU644B,OAAS,WACtB,IAAI3B,EAAUrx6B,KAAKqx6B,QACW,IAA1Brx6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAAY/O,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAAYil3B,EAAQ,SAAWA,EAAQ,SAEnHrx6B,KAAS2x6B,WAAa3x6B,KAAK2x6B,UAAUI,WACH,IAA9B/x6B,KAAS4xB,QAAQw6B,SACbpsD,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAC5Bil3B,EAAQ,YACRA,EAAQ,YAGdrx6B,KAAKyI,IAAI4o6B,EAAQ,OAAO5o6B,IAAI4o6B,EAAQ,aAGnCrx6B,KAAK2x6B,WAAa3x6B,KAAK2x6B,UAAUK,WACtChy6B,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAAYil3B,EAAQ,QAAUA,EAAQ,SAG1C,IAA1Brx6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAI4o6B,EAAQ,SACjBrx6B,KAAKwx6B,YAAYkB,UACjB1y6B,KAAKyI,IAAI4o6B,EAAQ,OACjBrx6B,KAAK2y6B,YAET3y6B,KAASyx6B,WACLzx6B,KAAK4y6B,cAEA5y6B,KAAK2x6B,WACV3x6B,KAAK6y6B,aAEL7y6B,KAAKwx6B,YAAYsB,QACjB9y6B,KAAK+y6B,YAIjB5B,EAAOh34B,UAAU844B,QAAU,WACvB,IAAI5B,EAAUrx6B,KAAKqx6B,QACfrx6B,KAAKwx6B,YAAYkB,SACa,IAA1B1y6B,KAAK4xB,QAAQw6B,WACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAAY/O,IAAI4o6B,EAAQ,WACnDrx6B,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,WACzBpsD,KAAKyI,IAAI4o6B,EAAQ,QAKzBrx6B,KAAK2y6B,aAGyB,IAA1B3y6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAEnCxX,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAC5Bil3B,EAAQ,UACRA,EAAQ,WAEdrx6B,KAAKyx6B,WACLzx6B,KAAK4y6B,cAEJ5y6B,KAAS2x6B,WAAa3x6B,KAAK2x6B,UAAUI,WACtC/x6B,KAAKyI,IAAI4o6B,EAAQ,OAAO5o6B,IAAI4o6B,EAAQ,aAE/Brx6B,KAAK2x6B,WACV3x6B,KAAK6y6B,cAGb1B,EAAOh34B,UAAU+44B,OAAS,WACtB,IAAI7B,EAAUrx6B,KAAKqx6B,QACfrx6B,KAAKwx6B,YAAYkB,SACa,IAA1B1y6B,KAAK4xB,QAAQw6B,WACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAC/BxX,KAAKyI,IAAI4o6B,EAAQ,WAKrBrx6B,KAAK2y6B,aAGyB,IAA1B3y6B,KAAK4xB,QAAQw6B,UACbpsD,KAAKyI,IAAIzI,KAAK4xB,QAAQw6B,SAAS50C,YAEnCxX,KAAKyI,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQw6B,UAAYil3B,EAAQ,SAAWA,EAAQ,UAEzErx6B,KAAKyx6B,WACLzx6B,KAAK4y6B,cAEA5y6B,KAAK2x6B,WACV3x6B,KAAK6y6B,aAEL7y6B,KAAK4xB,QAAQuh5B,WACbnz6B,KAAKyI,IAAI4o6B,EAAQ,WACZ5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAK4xB,QAAQuh5B,UAAWnz6B,KAAKys6B,IAAK4E,EAAQ,SACxD5o6B,IAAI4o6B,EAAQ,QAEjBrx6B,KAAK4xB,QAAQwh5B,UACbpz6B,KAAKyI,IAAI4o6B,EAAQ,OACZ5o6B,IAAIzI,KAAKsy6B,OAAOty6B,KAAK4xB,QAAQwh5B,SAAS3u6B,QACrC4s6B,EAAQ,SACRA,EAAQ,SACT5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAK4xB,QAAQwh5B,cAAUx95B,EAAWy75B,EAAQ,UAGrEF,EAAOh34B,UAAUy44B,YAAc,WAC3B,IAAIvB,EAAUrx6B,KAAKqx6B,QACfrx6B,KAAK2x6B,WAAa3x6B,KAAK2x6B,UAAUE,SACjC7x6B,KAAKyI,IAAI4o6B,EAAQ,OACZ5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAK2x6B,UAAUE,SAAU7x6B,KAAKqz6B,YAAahC,EAAQ,QACjE5o6B,IAAI4o6B,EAAQ,QACZ5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAKyx6B,WAAYzx6B,KAAKys6B,IAAK4E,EAAQ,QAGtDrx6B,KAAKyI,IAAI4o6B,EAAQ,WAAW5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAKyx6B,WAAYzx6B,KAAKys6B,IAAK4E,EAAQ,UAIrFF,EAAOh34B,UAAU044B,WAAa,WAC1B,IAAIxB,EAAUrx6B,KAAKqx6B,QACfrx6B,KAAK2x6B,UAAUE,WAAa7x6B,KAAK2x6B,UAAUI,YAC3C/x6B,KAAKyI,IAAI4o6B,EAAQ,OAAO5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAK2x6B,UAAUE,SAAU7x6B,KAAKqz6B,cAEpErz6B,KAAK2x6B,UAAUG,YACX9x6B,KAAK2x6B,UAAUE,UACf7x6B,KAAKyI,IAAI4o6B,EAAQ,QACrBrx6B,KAAKyI,IAAI4o6B,EAAQ,WAAW5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAK2x6B,UAAUG,UAAW9x6B,KAAKqz6B,YAAahC,EAAQ,WAGtGF,EAAOh34B,UAAU444B,QAAU,WACvB,IAAI1B,EAAUrx6B,KAAKqx6B,QACnBrx6B,KAAKyI,IAAI4o6B,EAAQ,OAAO5o6B,IAAIzI,KAAK0sB,KAAK1sB,KAAKwx6B,YAAYsB,YAAQl95B,EAAWy75B,EAAQ,UAEtFF,EAAOh34B,UAAUw44B,SAAW,WACxB3y6B,KAAKyI,IAAIzI,KAAK0sB,KAAK1sB,KAAK4xB,QAAQ8g5B,QAAS1y6B,KAAKsz6B,UAAWtz6B,KAAKqx6B,QAAQ,UAE1EF,EAAOh34B,UAAUsy4B,IAAM,SAAUvr4B,GAC7BA,EAAInuB,SAASmuB,EAAE1pB,WAAY,IAC3B,IAAIi15B,EACA4E,EAAUrx6B,KAAKqx6B,QACnB,IAAU,IAANnw4B,EACA,OAAOmw4B,EAAQ,QACnB,IAAIkC,EAAOh55B,KAAKyjD,IAAI98B,GACpB,OAAQqy4B,QACC,OACA,QACA,GACD9G,EAAM8G,EAAOlC,EAAQ,MACrB,WACC,OACA,GACD5E,EAAM8G,EAAOlC,EAAQ,MACrB,WACC,OACA,GACD5E,EAAM8G,EAAOlC,EAAQ,MACrB,cAEA5E,EAAM8G,EAAOlC,EAAQ,MAE7B,OAAOnw4B,EAAI,EAAIur4B,EAAM,IAAM4E,EAAQ,QAAU5E,GAEjD0E,EAAOh34B,UAAUm54B,UAAY,SAAUvt4B,GACnC,OAAO/lC,KAAKuiB,SAAS+0U,WAAWvxT,EAAI,IAExCor4B,EAAOh34B,UAAUk54B,YAAc,SAAUG,GACrC,IAAI75kB,EAAUpgK,GAASi6uB,IAASA,EAAO,GAAK,EAAIA,EAAK9G,eACrD,OAAS8G,EAAKty4B,EAAIlhC,KAAKys6B,IAAI+G,EAAKty4B,GAAK,IAAM,IACvClhC,KAAKuiB,SAASi1U,SAASmC,IAE/Bw3kB,EAAOh34B,UAAUm44B,OAAS,SAAUpx4B,GAChC,OAAOA,EAAI,KAAQ,GAEvBiw4B,EAAOh34B,UAAU1xB,IAAM,SAAUkO,GAC7B,YAAKF,KAAKpN,KAAK,KACfrJ,KAAKyW,KAAKpN,KAAKsN,GACR3W,MAEXmx6B,EAAOh34B,UAAUzN,KAAO,SAAUjL,EAAK/b,EAAU+t6B,EAAYC,GACzD,IAAIh80B,EAAQ13F,UACE,IAAV0z6B,IAAoBA,EAAQ,KAC3Bhp6B,GAAQ+W,KACTA,EAAM,CAACA,IAiBX/b,EACIA,GACI,SAAUiY,GACN,OAAOA,EAAEnG,YAErB,IAAIm85B,EAAe,SAAUru1B,GACzB,OAAO5/E,GAAYA,EAAS00B,KAAKs9D,EAAOpS,IAE5C,OAAImu1B,EAvBY,SAAUhp1B,EAAOp6D,EAAWuj5B,GAExC,QADIln5B,EAAO,GACFloB,EAAI,EAAGA,EAAIimF,EAAMhmF,OAAQD,IACpB,IAANA,IAEIkoB,GADAloB,IAAMimF,EAAMhmF,OAAS,EACb,IAAMmv6B,EAAiB,IAGvBvj5B,EAAY,KAG5B3D,GAAQ+9D,EAAMjmF,GAElB,OAAOkoB,EAWAmn5B,CAAUpy5B,EAAIf,IAAIiz5B,GAAeD,EAAOD,GAGxChy5B,EAAIf,IAAIiz5B,GAAcr14B,KAAKo14B,EAAQ,MAG3CvC,EAjXiB,GAmX5B,SAAeA,ICpYf,IAAI2C,IAAwB,WACxB,WAAgBhl1B,GACZ9uF,KAAKk0E,MAAO,EACZl0E,KAAK8uF,MAAQA,EAEjBgl1B,SAAO354B,UAAUizB,MAAQ,SAAU32C,GAC/B,YAAKA,KAAOA,EACZzW,KAAKk0E,MAAO,EACLl0E,KAAK+z6B,cAEhBD,EAAO354B,UAAU654B,OAAS,WACtB,OAAOh06B,KAAKk0E,MAAwB,OAAhBl0E,KAAKygK,QAE7BqzwB,EAAO354B,UAAU454B,WAAa,WAC1B,IAAIE,EACAC,EACJl06B,KAAKygK,OAAS,KACdzgK,KAAK4M,MAAQ,KACb,EAAG,CACC,GAAI5M,KAAKk0E,KACL,OAAO,EAGX,QAASig2B,KADTF,EAAO,KACYj06B,KAAK8uF,MAAO,CAE3B,IAAIxvD,EADGt/B,KAAK8uF,MAAMql1B,GACDrs2B,KAAK9nE,KAAKyW,MACvB6oB,IACa,OAAT204B,GAAiB304B,EAAM,GAAG76B,OAASwv6B,EAAK,GAAGxv6B,UAC3Cwv6B,EAAO304B,EACP404B,EAAaC,GASzB,GALY,MAARF,IACAj06B,KAAKyW,KAAOzW,KAAKyW,KAAKsqB,OAAOkz4B,EAAK,GAAGxv6B,QACnB,KAAdzE,KAAKyW,OACLzW,KAAKk0E,MAAO,IAER,MAAR+/1B,EAIA,OAHAj06B,KAAKk0E,MAAO,EACZl0E,KAAKygK,OAAS,UACdzgK,KAAK4M,MAAQ,YAGG,SAAfsn6B,GACT,YAAKzzwB,OAASyzwB,EACdl06B,KAAK4M,MAAQqn6B,GACN,GAEXH,EAAO354B,UAAUk+rB,OAAS,SAAUh1tB,GAChC,GAAIrD,KAAKygK,SAAWp9J,EAAM,CACtB,GAAIrD,KAAK4M,MAAO,CACZ,IAAIib,EAAI7nB,KAAK4M,MACb,YAAKmn6B,aACEls5B,EAEX,YAAKks5B,cACE,EAEX,OAAO,GAEXD,EAAO354B,UAAUi64B,aAAe,WAC5B,OAAOp06B,KAAKq4tB,OAAO,WAEvBy7M,EAAO354B,UAAUk64B,OAAS,SAAUhx6B,GAChC,GAAIrD,KAAKq4tB,OAAOh1tB,GACZ,OAAO,EACX,MAAM,IAAIkC,MAAM,YAAclC,EAAO,cAAgBrD,KAAKygK,SAEvDqzwB,EArEiB,GAuEb,aAAmBr95B,EAAM8L,QACnB,IAAbA,IAAuBA,EAAWgv5B,IACtC,IAAI3/4B,EAAU,GACV0i5B,EAAM,IAAIR,IAAOvx5B,EAASgt5B,QAC9B,OAAK+E,EAAIln3B,MAAM32C,IAIf,aAEI695B,EAAID,OAAO,SACX,IAAInz4B,EAAIoz4B,EAAIF,eAGZ,GAFIlz4B,IACAtP,EAAQw6B,SAAWr5C,SAASmuB,EAAE,GAAI,KAClCoz4B,EAAIN,SACJ,MAAM,IAAIzu6B,MAAM,kBACpB,OAAQ+u6B,EAAI7zwB,YACH,SACD7uI,EAAQug5B,KAAOE,SACXiC,EAAIP,eACJQ,IACAjk6B,KAEJ,UAGC,aACDshB,EAAQug5B,KAAOE,UACfzg5B,EAAQ+/4B,UAAY,CAACU,MAAUA,MAAUA,MAAUA,MAAUA,OAC7DiC,EAAIP,aACJQ,IACAjk6B,IACA,UACC,UACDshB,EAAQug5B,KAAOE,UACXiC,EAAIP,eACJS,IACAD,IACAjk6B,KAEJ,UACC,UACDshB,EAAQug5B,KAAOE,UACXiC,EAAIP,eACJS,IACAlk6B,KAEJ,UACC,YACDshB,EAAQug5B,KAAOE,YACXiC,EAAIP,eACJS,IACAlk6B,KAEJ,UACC,WACDshB,EAAQug5B,KAAOE,WACXiC,EAAIP,eACJS,IACAlk6B,KAEJ,UACC,UACDshB,EAAQug5B,KAAOE,UACXiC,EAAIP,eACJS,IACAlk6B,KAEJ,UACC,aACA,cACA,gBACA,eACA,aACA,eACA,SACDshB,EAAQug5B,KAAOE,UACf,IAAIlg6B,EAAMmi6B,EAAI7zwB,OACT1/H,OAAO,EAAG,GACV+kN,cAEL,GADAl0N,EAAQ+/4B,UAAY,CAACU,GAAMlg6B,KACtBmi6B,EAAIP,aACL,OAEJ,KAAOO,EAAIj8M,OAAO,UAAU,CACxB,GAAIi8M,EAAIN,SACJ,MAAM,IAAIzu6B,MAAM,kBACpB,IAAIkv6B,GAAMC,IACV,IAAKD,GACD,MAAM,IAAIlv6B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,sBAExD7uI,EAAQ+/4B,UAAUto6B,KAAKgp6B,GAAMoC,KAC7BH,EAAIP,aAERQ,IA6LZ,aACID,EAAIj8M,OAAO,MACXi8M,EAAIj8M,OAAO,OACX,IAAIo0M,EAAMkI,IACV,GAAKlI,EAIL,IAFA764B,EAAQ6/4B,WAAa,CAAChF,GACtB6H,EAAIP,aACGO,EAAIj8M,OAAO,UAAU,CAExB,KADAo0M,EAAMkI,KAEF,MAAM,IAAIpv6B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,uBAExD7uI,EAAQ6/4B,WAAWpo6B,KAAKoj6B,GACxB6H,EAAIP,cA1MAa,GACAtk6B,IACA,UACC,cACA,eACA,YACA,YACA,UACA,WACA,WACA,aACA,gBACA,cACA,eACA,WAGD,GAFAshB,EAAQug5B,KAAOE,UACfzg5B,EAAQ8g5B,QAAU,CAACmC,MACdP,EAAIP,aACL,OAEJ,KAAOO,EAAIj8M,OAAO,UAAU,CACxB,GAAIi8M,EAAIN,SACJ,MAAM,IAAIzu6B,MAAM,kBACpB,IAAIwgC,GAAI8u4B,IACR,IAAK9u4B,GACD,MAAM,IAAIxgC,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,oBAExD7uI,EAAQ8g5B,QAAQrp6B,KAAK08B,IACrBuu4B,EAAIP,aAERS,IACAlk6B,IACA,cAEA,MAAM,IAAI/K,MAAM,mBA3H5BqlS,GACOh5Q,GAFI,KA+HX,aACI,IAAIg4B,EAAK0q3B,EAAIj8M,OAAO,MAChBq3M,EAAM4E,EAAIj8M,OAAO,OACrB,GAAMzuqB,GAAM8l3B,EAEZ,EAAG,CACC,IAAIjD,GAAMkI,IACNF,GAAMC,IACN3u4B,GAAI8u4B,IAER,GAAIpI,GAEIgI,IACAH,EAAIP,aACCni5B,EAAQ+/4B,YACT//4B,EAAQ+/4B,UAAY,IACxB//4B,EAAQ+/4B,UAAUto6B,KAAKgp6B,GAAMoC,IAAKhI,IAAIA,OAGjC764B,EAAQ6/4B,aACT7/4B,EAAQ6/4B,WAAa,IACzB7/4B,EAAQ6/4B,WAAWpo6B,KAAKoj6B,IACxB6H,EAAIj8M,OAAO,mBAIVo8M,GACLH,EAAIP,aACCni5B,EAAQ+/4B,YACT//4B,EAAQ+/4B,UAAY,IACxB//4B,EAAQ+/4B,UAAUto6B,KAAKgp6B,GAAMoC,aAET,eAAfH,EAAI7zwB,OACT6zwB,EAAIP,aACCni5B,EAAQ+/4B,YACT//4B,EAAQ+/4B,UAAY,CAACU,MAAUA,MAAUA,MAAUA,MAAUA,gBAG7C,YAAfiC,EAAI7zwB,OAAsB,CAC/B6zwB,EAAIP,aACJ,IAAI7y4B,GAAIoz4B,EAAIF,eACZ,IAAKlz4B,GACD,MAAM,IAAI37B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,0BAGxD,IADA7uI,EAAQwh5B,SAAW,CAACrg6B,SAASmuB,GAAE,GAAI,KAC5Boz4B,EAAIj8M,OAAO,UAAU,CAExB,KADAn3rB,GAAIoz4B,EAAIF,gBAEJ,MAAM,IAAI7u6B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,uBAExD7uI,EAAQwh5B,SAAS/p6B,KAAK0J,SAASmuB,GAAE,GAAI,eAGpC6E,GAOL,OANAuu4B,EAAIP,aACCni5B,EAAQ8g5B,UACT9g5B,EAAQ8g5B,QAAU,IACtB9g5B,EAAQ8g5B,QAAQrp6B,KAAK08B,WAKpBuu4B,EAAIj8M,OAAO,UAAYi8M,EAAIj8M,OAAO,QAAUi8M,EAAIj8M,OAAO,OAEpE,aAEI,GADSi8M,EAAIj8M,OAAO,MAGpB,EAAG,CACC,IAAIn3rB,EAAIoz4B,EAAIF,eACZ,IAAKlz4B,EACD,MAAM,IAAI37B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,mBAGxD,IADA7uI,EAAQkh5B,OAAS,CAAC//5B,SAASmuB,EAAE,GAAI,KAC1Boz4B,EAAIj8M,OAAO,UAAU,CAExB,KADAn3rB,EAAIoz4B,EAAIF,gBAEJ,MAAM,IAAI7u6B,MAAM,qBAAuB+u6B,EAAI7zwB,OAAS,mBAExD7uI,EAAQkh5B,OAAOzp6B,KAAK0J,SAASmuB,EAAE,GAAI,YAElCoz4B,EAAIj8M,OAAO,UAAYi8M,EAAIj8M,OAAO,OAE/C,aACI,OAAQi8M,EAAI7zwB,YACH,UACD,OAAO,MACN,WACD,OAAO,MACN,QACD,OAAO,MACN,QACD,OAAO,MACN,MACD,OAAO,MACN,OACD,OAAO,MACN,OACD,OAAO,MACN,SACD,OAAO,MACN,YACD,OAAO,MACN,UACD,OAAO,OACN,WACD,OAAO,OACN,WACD,OAAO,WAEP,OAAO,GAGnB,aACI,OAAQ6zwB,EAAI7zwB,YACH,aACA,cACA,gBACA,eACA,aACA,eACA,SACD,OAAO6zwB,EAAI7zwB,OAAO1/H,OAAO,EAAG,GAAG+kN,sBAE/B,OAAO,GAGnB,aACI,OAAQwurB,EAAI7zwB,YACH,OACD6zwB,SAAIP,cACG,MACN,QACDO,SAAIP,aACG,MACN,SACDO,SAAIP,aACGO,EAAIj8M,OAAO,SAAU,EAAK,MAChC,QACDi8M,SAAIP,aACGO,EAAIj8M,OAAO,SAAU,EAAK,MAChC,MACD,IAAIxwsB,EAAI9U,SAASuh6B,EAAI1n6B,MAAM,GAAI,IAC/B,GAAIib,GAAI,KAAQA,EAAI,IAChB,MAAM,IAAItiB,MAAM,qBAAuBsiB,GAC3Cys5B,SAAIP,aACGO,EAAIj8M,OAAO,SAAWxwsB,EAAIA,UAEjC,OAAO,GAoBnB,aACI,GAAmB,UAAfys5B,EAAI7zwB,OAAoB,CACxB,IAAI3oD,EAAO9pD,KAAKx3C,MAAM895B,EAAI795B,MAC1B,IAAKqhG,EACD,MAAM,IAAIvyG,MAAM,2BAA6B+u6B,EAAI795B,MACrDmb,EAAQ684B,MAAQ,IAAIzg3B,KAAK8pD,QAEpBw8zB,EAAIj8M,OAAO,SAChBzmsB,EAAQhsB,MAAQmN,SAASuh6B,EAAI1n6B,MAAM,GAAI,IACvC0n6B,EAAID,OAAO,YCjYhB,IAAIS,GAAS,MACnB,SAAUA,GACPA,EAAUA,EAAU5B,OAAY,GAAK,SACrC4B,EAAUA,EAAU7B,QAAa,GAAK,UACtC6B,EAAUA,EAAU9B,OAAY,GAAK,SACrC8B,EAAUA,EAAUrC,MAAW,GAAK,QACpCqC,EAAUA,EAAUvC,OAAY,GAAK,SACrCuC,EAAUA,EAAUtC,SAAc,GAAK,WACvCsC,EAAUA,EAAUC,SAAc,GAAK,WAP1C,CAQED,KAAcA,GAAY,KATlBA,IAAS,GAUb,YAA8B3C,GACjC,OAAOA,EAAO2C,GAAUvC,OCmF5B,IAIIx+oB,GAAS,CACT,QACA,QACA,WACA,YACA,aACA,WAEJo9oB,eAAqB,GACrBA,eAAmB2D,WAAoB/gpB,GACvCo9oB,eAAmB2D,aAAsB/gpB,GACzCo9oB,eAAmB2D,UAAmB,CAAC,UAAUjz5B,OAAOkyQ,IACxDo9oB,eAAmB2D,WAAoB/gpB,GACvCo9oB,eAAmB2D,YAAqB/gpB,GACxCo9oB,eAAmB2D,WAAoB,CAAC,WAAY,aAAajz5B,OAAOkyQ,IAIxE,IAGIm+oB,IAAqBf,sBCnHrB6D,GAAsB,WACtB,WAAcj9oB,EAAMD,EAAQ3lG,EAAQ0lG,GAChC73R,KAAK+3R,KAAOA,EACZ/3R,KAAK83R,OAASA,EACd93R,KAAKmyL,OAASA,EACdnyL,KAAK63R,YAAcA,GAAe,EAEtCm9oB,SAAK764B,UAAUqhQ,SAAW,WACtB,OAAOx7R,KAAK+3R,MAEhBi9oB,EAAK764B,UAAUiiQ,WAAa,WACxB,OAAOp8R,KAAK83R,QAEhBk9oB,EAAK764B,UAAUkiQ,WAAa,WACxB,OAAOr8R,KAAKmyL,QAEhB6ivB,EAAK764B,UAAUmiQ,gBAAkB,WAC7B,OAAOt8R,KAAK63R,aAEhBm9oB,EAAK764B,UAAU02B,QAAU,WACrB,OAAiE,KAA5C,GAAZ7wD,KAAK+3R,KAAY,GAAmB,GAAd/3R,KAAK83R,OAAc93R,KAAKmyL,QACnDnyL,KAAK63R,aAENm9oB,EAvBe,GA0BtBC,IAA0B,SAAU7F,GAEpC,WAAkBh3oB,EAAMF,EAAOF,EAAKD,EAAMD,EAAQ3lG,EAAQ0lG,GACtD,IAAIngM,EAAQ030B,EAAOh14B,KAAKp6B,KAAM+3R,EAAMD,EAAQ3lG,EAAQ0lG,IAAgB73R,KACpE03F,SAAM0gM,KAAOA,EACb1gM,EAAMwgM,MAAQA,EACdxgM,EAAMsgM,IAAMA,EACLtgM,EAEXu90B,OARA5F,SAAU4F,EAAU7F,GAQpB6F,EAASC,SAAW,SAAUp9zB,GAC1B,OAAO,IAAI93G,KAAK83G,EAAKs2O,iBAAkBt2O,EAAKw2O,cAAgB,EAAGx2O,EAAKy2O,aAAcz2O,EAAK02O,cAAe12O,EAAK22O,gBAAiB32O,EAAK42O,gBAAiB52O,EAAK3pD,UAAY,MAEvK8m3B,EAAS964B,UAAU4z4B,WAAa,WAC5B,OAAOA,GAAW,IAAI//2B,KAAKhuD,KAAK6wD,aAEpCok3B,EAAS964B,UAAU02B,QAAU,WACzB,OAAO,IAAI7C,KAAKA,KAAKqtO,IAAIr7R,KAAKo4R,KAAMp4R,KAAKk4R,MAAQ,EAAGl4R,KAAKg4R,IAAKh4R,KAAK+3R,KAAM/3R,KAAK83R,OAAQ93R,KAAKmyL,OAAQnyL,KAAK63R,cAAchnO,WAE1Hok3B,EAAS964B,UAAUihQ,OAAS,WACxB,OAAOp7R,KAAKg4R,KAEhBi9oB,EAAS964B,UAAUu/P,SAAW,WAC1B,OAAO15R,KAAKk4R,OAEhB+8oB,EAAS964B,UAAUqkb,QAAU,WACzB,OAAOx+c,KAAKo4R,MAEhB68oB,EAAS964B,UAAUg74B,SAAW,SAAUp7oB,GACpC/5R,KAAKo4R,MAAQ2B,GAEjBk7oB,EAAS964B,UAAUi74B,UAAY,SAAUj7oB,GAErC,GADAn6R,KAAKk4R,OAASiC,EACVn6R,KAAKk4R,MAAQ,GAAI,CACjB,IAAIm9oB,EAAU965B,KAAKo7J,MAAM31K,KAAKk4R,MAAQ,IAClCo9oB,EAAWtI,GAAMht6B,KAAKk4R,MAAO,IACjCl4R,KAAKk4R,MAAQo9oB,EACbt16B,KAAKo4R,MAAQi9oB,EACM,IAAfr16B,KAAKk4R,QACLl4R,KAAKk4R,MAAQ,KACXl4R,KAAKo4R,QAInB68oB,EAAS964B,UAAUo74B,UAAY,SAAUj7oB,EAAMk7oB,GACvCA,EAAOx16B,KAAK+t6B,aACZ/t6B,KAAKg4R,OAASh4R,KAAK+t6B,aAAe,GAAK,EAAIyH,IAAgB,EAAPl7oB,EAGpDt6R,KAAKg4R,OAASh4R,KAAK+t6B,aAAeyH,GAAe,EAAPl7oB,EAE9Ct6R,KAAKy16B,UAETR,EAAS964B,UAAUu74B,SAAW,SAAUp7oB,GACpCt6R,KAAKg4R,KAAOsC,EACZt6R,KAAKy16B,UAETR,EAAS964B,UAAUw74B,SAAW,SAAUp7oB,EAAOq7oB,EAAU9C,GAKrD,IAJI8C,IAEA516B,KAAK+3R,MAAQx9Q,KAAKo7J,OAAO,GAAK31K,KAAK+3R,MAAQwC,GAASA,KAE/C,CACLv6R,KAAK+3R,MAAQwC,EACb,IAAIrwQ,EAAK+i5B,GAAOjt6B,KAAK+3R,KAAM,IAAK89oB,EAAS3r5B,EAAGinT,IAK5C,GAJI0kmB,IACA716B,KAAK+3R,KAFkD7tQ,EAAGgj5B,IAG1Dlt6B,KAAK016B,SAASG,IAEd7y1B,GAAM8v1B,IAAWtr5B,GAASsr5B,EAAQ9y6B,KAAK+3R,MACvC,QAGZk9oB,EAAS964B,UAAU274B,WAAa,SAAUr7oB,EAASm7oB,EAAU9C,EAAQiD,GAMjE,IALIH,IAEA516B,KAAK83R,QACDv9Q,KAAKo7J,OAAO,MAAoB,GAAZ31K,KAAK+3R,KAAY/3R,KAAK83R,SAAW2C,GAAWA,KAE/D,CACLz6R,KAAK83R,QAAU2C,EACf,IAAIvwQ,EAAK+i5B,GAAOjt6B,KAAK83R,OAAQ,IAAKk+oB,EAAU9r5B,EAAGinT,IAK/C,GAJI6kmB,IACAh26B,KAAK83R,OAFuD5tQ,EAAGgj5B,IAG/Dlt6B,KAAK216B,SAASK,GAAS,EAAOlD,KAE7B9v1B,GAAM8v1B,IAAWtr5B,GAASsr5B,EAAQ9y6B,KAAK+3R,SACvC/0M,GAAM+y1B,IAAavu5B,GAASuu5B,EAAU/16B,KAAK83R,SAC5C,QAIZm9oB,EAAS964B,UAAU874B,WAAa,SAAUv7oB,EAASk7oB,EAAU9C,EAAQiD,EAAUG,GAO3E,IANIN,IAEA516B,KAAKmyL,QACD53K,KAAKo7J,OAAO,OAAqB,KAAZ31K,KAAK+3R,KAA4B,GAAd/3R,KAAK83R,OAAc93R,KAAKmyL,SAC5DuoG,GAAWA,KAEd,CACL16R,KAAKmyL,QAAUuoG,EACf,IAAIxwQ,EAAK+i5B,GAAOjt6B,KAAKmyL,OAAQ,IAAKgkvB,EAAYjs5B,EAAGinT,IAKjD,GAJIglmB,IACAn26B,KAAKmyL,OAFyDjoK,EAAGgj5B,IAGjElt6B,KAAK816B,WAAWK,GAAW,EAAOrD,EAAQiD,KAEzC/y1B,GAAM8v1B,IAAWtr5B,GAASsr5B,EAAQ9y6B,KAAK+3R,SACvC/0M,GAAM+y1B,IAAavu5B,GAASuu5B,EAAU/16B,KAAK83R,WAC3C90M,GAAMkz1B,IAAa1u5B,GAAS0u5B,EAAUl26B,KAAKmyL,SAC5C,QAIZ8ivB,EAAS964B,UAAUs74B,OAAS,WACxB,KAAIz16B,KAAKg4R,KAAO,IAGhB,KAAIo+oB,EAAcnI,IAAWju6B,KAAKo4R,KAAMp4R,KAAKk4R,MAAQ,GAAG,GACxD,KAAIl4R,KAAKg4R,KAAOo+oB,GAGhB,KAAOp26B,KAAKg4R,IAAMo+oB,GAAa,CAG3B,GAFAp26B,KAAKg4R,KAAOo+oB,IACVp26B,KAAKk4R,MACY,KAAfl4R,KAAKk4R,QACLl4R,KAAKk4R,MAAQ,IACXl4R,KAAKo4R,KACHp4R,KAAKo4R,KRxIJ,MQyID,OAGRg+oB,EAAcnI,IAAWju6B,KAAKo4R,KAAMp4R,KAAKk4R,MAAQ,GAAG,MAG5D+8oB,EAAS964B,UAAU1xB,IAAM,SAAUmpB,EAASgk5B,GACxC,IAAyBxp3B,EAAWx6B,EAAQw6B,SAAUop3B,EAAO5j5B,EAAQ4j5B,KAAM1C,EAASlh5B,EAAQkh5B,OAAQiD,EAAWnk5B,EAAQmk5B,SAAUG,EAAWtk5B,EAAQsk5B,SACpJ,OADWtk5B,EAAQug5B,MACXA,KACC2C,UACD,OAAO906B,KAAKm16B,SAAS/o3B,QACpB0o3B,WACD,OAAO906B,KAAKo16B,UAAUhp3B,QACrB0o3B,UACD,OAAO906B,KAAKu16B,UAAUnp3B,EAAUop3B,QAC/BV,SACD,OAAO906B,KAAK016B,SAAStp3B,QACpB0o3B,UACD,OAAO906B,KAAK216B,SAASvp3B,EAAUwp3B,EAAU9C,QACxCgC,YACD,OAAO906B,KAAK816B,WAAW1p3B,EAAUwp3B,EAAU9C,EAAQiD,QAClDjB,YACD,OAAO906B,KAAKi26B,WAAW7p3B,EAAUwp3B,EAAU9C,EAAQiD,EAAUG,KAGlEjB,EAxJmB,CAyJ5BD,IChLK,aAA2Bpj5B,GAI9B,QAHIzJ,EAAU,GAGLwgH,EAAK,EAAG0tyB,EAFNhq6B,OAAO0M,KAAK6Y,GAES+2G,EAAK0tyB,EAAO5x6B,OAAQkkI,IAAM,CACtD,IAAIx2H,EAAMkk6B,EAAO1tyB,GACZnhH,GAAS8u5B,IAAank6B,IACvBgW,EAAQ9e,KAAK8I,GACbw7K,IAAO/7J,EAAQzf,MAAUo75B,GAAY374B,EAAQzf,KAC7CgW,EAAQ9e,KAAK8I,GAGrB,GAAIgW,EAAQ1jB,OACR,MAAM,IAAIc,MAAM,oBAAsB4iB,EAAQmW,KAAK,OAEvD,OAAOi44B,SAAS,GAAI3k5B,GCjBjB,YAAqB4k5B,GACxB,IAAI5k5B,EAAU4k5B,EACTtk6B,MAAM,MACNwO,IAAI+15B,KACJ3v5B,OAAO,SAAU8J,GAAK,OAAa,OAANA,IAClC,SAAO2l5B,QAASA,SAAS,GAAI3k5B,EAAQ,IAAKA,EAAQ,IAE/C,YAAsB0mH,GACzB,IAAI1mH,EAAU,GACV8k5B,EAAkB,+CAA+C5u2B,KAAKwwE,GAC1E,IAAKo+xB,EACD,OAAO9k5B,EAEX,IAAI+k5B,EAAOD,EAAgB,GAAIE,EAAUF,EAAgB,GACzD,OAAIC,IACA/k5B,EAAQ+k5B,KAAOA,GAEnB/k5B,EAAQgl5B,QAAUpI,GAAkBoI,GAC7Bhl5B,EAEX,aAAmB4k5B,GAEf,KADAA,EAAYA,EAAU5r6B,QAAQ,YAAa,KAC5BnG,OACX,OAAO,KACX,IAAI+lO,EAAS,iBAAiB1iK,KAAK0u2B,EAAU1wrB,eAC7C,IAAKtb,EACD,OAAOqssB,IAAWL,GAEtB,IAAIrk6B,EAAMq4N,EAAO,GACjB,OAAQr4N,EAAI2zO,mBACH,YACA,SACD,OAAO+wrB,IAAWL,OACjB,UACD,OAAOM,GAAaN,WAEpB,MAAM,IAAIjx6B,MAAM,wBAAwBsc,OAAO1P,EAAK,QAAQ0P,OAAO205B,KAG/E,aAAoBl+xB,GAChB,IACI1mH,EAAUkl5B,GADKx+xB,EAAK1tI,QAAQ,WAAY,KAG5C85F,OADY4zC,EAAK1tI,QAAQ,sBAAuB,IAAIsH,MAAM,KACpDlM,QAAQ,SAAUopE,GACpB,IAAIllD,EAAKklD,EAAKl9D,MAAM,KAAMC,EAAM+X,EAAG,GAAItd,EAAQsd,EAAG,GAClD,OAAQ/X,EAAI2zO,mBACH,OACDl0N,EAAQug5B,KAAO2C,GAAUlo6B,EAAMk5O,eAC/B,UACC,OACDl0N,EAAQ4j5B,KAAOuB,GAAKnq6B,EAAMk5O,eAC1B,UACC,YACA,eACA,eACA,cACA,iBACA,gBACA,eACA,aACA,eACA,WACD,IAAIkxrB,EA6BpB,aAAqBpq6B,GACjB,OAA2B,IAAvBA,EAAM4F,QAAQ,KACD5F,EAAMsF,MAAM,KACXwO,IAAIu25B,KAEfA,IAAsBrq6B,GAlCPuqV,CAAYvqV,GAClBsq6B,EAAY/k6B,EAAIF,cAGpB2f,EAAQsl5B,GAAaF,EACrB,UACC,gBACA,QACDpl5B,EAAQ+/4B,UAkCxB,aAAsB/k6B,GAElB,OADWA,EAAMsF,MAAM,KACXwO,IAAI,SAAUs3Q,GACtB,GAAmB,IAAfA,EAAIvzR,OAEJ,OAAOsy6B,GAAK/+oB,GAGhB,IAAIhmR,EAAQgmR,EAAI14P,MAAM,8BACtB,IAAKttB,GAASA,EAAMvN,OAAS,EACzB,MAAM,IAAIgf,YAAY,2BAA2B5B,OAAOm2Q,IAE5D,IAAI92P,EAAIq4B,OAAOvnD,EAAM,IAGrB,OAAO,IAAIu65B,GADAwK,GADI/k6B,EAAM,IACK2nV,QACDz4T,KAjDGi24B,CAAavq6B,GACjC,UACC,cACA,OAED,IAAIgq6B,EAAUE,GAAax+xB,GAC3B1mH,EAAQ+k5B,KAAOC,EAAQD,KACvB/k5B,EAAQgl5B,QAAUA,EAAQA,QAC1B,UACC,QACDhl5B,EAAQ684B,MAAQD,GAAkB5h6B,GAClC,UACC,WACDglB,EAAQwl5B,SAAW792B,OAAO3sD,GAC1B,cAEA,MAAM,IAAIrH,MAAM,2BAA6B4M,EAAM,QAGxDyf,EASX,aAA+BhlB,GAC3B,MAAI,aAAa8Y,KAAK9Y,GACX2sD,OAAO3sD,GAEXA,EC1GX,IAAIyq6B,GAA8B,WAC9B,WAAsBv/zB,EAAM6+zB,GACxB,GAAI1n2B,MAAM6oC,EAAKjnD,WACX,MAAM,IAAIym3B,WAAW,uCAEzBt36B,KAAK83G,KAAOA,EACZ93G,KAAK226B,KAAOA,EAEhBtq6B,cAAOwrL,eAAew/uB,EAAal94B,UAAW,QAAS,CACnDn2B,IAAK,WACD,OAAQhE,KAAK226B,MAAoC,QAA5B326B,KAAK226B,KAAK7wrB,eAEnCztD,YAAY,EACZP,cAAc,IAElBu/uB,EAAal94B,UAAU3iB,SAAW,WAC9B,IAAI+/5B,EAAUlJ,GAAkBru6B,KAAK83G,KAAKjnD,UAAW7wD,KAAKw36B,OAC1D,OAAKx36B,KAAKw36B,MAGH,IAAI315B,OAAO015B,GAFP,SAAS115B,OAAO7hB,KAAK226B,KAAM,KAAK905B,OAAO015B,IAItDF,EAAal94B,UAAU02B,QAAU,WAC7B,OAAO7wD,KAAK83G,KAAKjnD,WAErBwm3B,EAAal94B,UAAUs94B,YAAc,WACjC,OAAIz36B,KAAKw36B,MACEx36B,KAAK83G,KX4HI,SAAUA,EAAM2oL,GACxC,IAAIi3oB,EAAgBpyvB,KAAKi7G,iBAAiBC,kBAAkBC,SAExDk3oB,EAAgB,IAAI3p3B,KAAK2g3B,IAAgB72zB,EAAM4/zB,IAE/CE,EADiB,IAAI5p3B,KAAK2g3B,IAAgB72zB,EAAmB,MAAb2oL,EAA2CA,EAAW,QAC5E5vO,UAAY8m3B,EAAc9m3B,UACxD,OAAO,IAAI7C,KAAK8pD,EAAKjnD,UAAY+m3B,GWhItBC,CAAe736B,KAAK83G,KAAM93G,KAAK226B,OAEnCU,EA/BuB,GCI3B,YAAyBzl5B,GAK5B,QAJIw/4B,EAAQ,GACRwF,EAAU,GACV795B,EAAO1M,OAAO0M,KAAK6Y,GACnB0k5B,EAAcjq6B,OAAO0M,KAAK++5B,IACrBtz6B,EAAI,EAAGA,EAAIuU,EAAKtU,OAAQD,IAC7B,GAAgB,SAAZuU,EAAKvU,IAEJgjB,GAAS8u5B,EAAav95B,EAAKvU,IAEhC,KAAI2N,EAAM4G,EAAKvU,GAAGshP,cACdl5O,EAAQglB,EAAQ7Y,EAAKvU,IACrBuz6B,EAAW,GACf,GAAKhx5B,GAAUna,MAAWlC,GAAQkC,IAAWA,EAAMnI,QAEnD,QAAQ0N,OACC,OACD4l6B,EAAW1F,eAAkBzg5B,EAAQug5B,MACrC,UACC,OAEG4F,EADAx+uB,GAAS3sL,GACE,IAAI2/5B,GAAQ3/5B,GAAO4K,WAGnB5K,EAAM4K,WAErB,UACC,YAYDrF,EAAM,QACN4l6B,EAAWt80B,IAAQ7uF,GACd8T,IAAI,SAAU8y5B,GACf,OAAIA,aAAgBjH,GACTiH,EAEP9o6B,GAAQ8o6B,GACD,IAAIjH,GAAQiH,EAAK,GAAIA,EAAK,IAE9B,IAAIjH,GAAQiH,KAElBh85B,WACL,UACC,UACDo/5B,EAAUoB,IAAapr6B,EAAOglB,EAAQ+k5B,MACtC,UACC,QACDoB,EAAW1J,GAAkBzh6B,GAAQglB,EAAQ+k5B,MAC7C,cAEA,GAAIjs6B,GAAQkC,GAAQ,CAEhB,QADIqr6B,EAAY,GACPp60B,EAAI,EAAGA,EAAIjxF,EAAMnI,OAAQo5F,IAC9Bo60B,EAAUp60B,GAAKhrF,OAAOjG,EAAMixF,IAEhCk60B,EAAWE,EAAUzg6B,gBAGrBug6B,EAAWll6B,OAAOjG,GAG1Bmr6B,GACA3G,EAAM/n6B,KAAK,CAAC8I,EAAK4l6B,KAGzB,IAAIjp1B,EAAQsi1B,EACP1w5B,IAAI,SAAUwJ,GACf,IAAiBtd,GAAQsd,EAAG,GAC5B,MAAO,GAAGrI,OADAqI,EAAG,GACS,KAAKrI,OAAOjV,GAAM4K,cAEvC8mB,KAAK,KACN454B,EAAa,GACjB,MAAc,KAAVpp1B,IACAop1B,EAAa,SAASr25B,OAAOitE,IAE1B,CAAC8n1B,EAASsB,GAAYpx5B,OAAO,SAAU8J,GAAK,QAASA,IAAM0N,KAAK,MAE3E,aAAsBs44B,EAASD,GAC3B,OAAKC,EAGE,UAAY,IAAIS,GAAa,IAAIrp3B,KAAK4o3B,GAAUD,GAAMn/5B,WAFlD,GC1Ff,aAAmB8jD,EAAMgc,GACrB,OAAI1uE,MAAM8B,QAAQ4wD,MACT1yD,MAAM8B,QAAQ4sE,IAEfhc,EAAK72D,SAAW6yE,EAAM7yE,SAEnB62D,EAAK9/B,MAAM,SAAUs8E,EAAMtzG,GAAK,OAAOszG,EAAKjnD,YAAcymB,EAAM9yE,GAAGqsD,YAE1EyK,aAAgBtN,KACTspB,aAAiBtpB,MAAQsN,EAAKzK,YAAcymB,EAAMzmB,UAEtDyK,IAASgc,EAEpB,IAAI6g2B,IAAuB,WACvB,aACIn46B,KAAKwxL,KAAM,EACXxxL,KAAK+3jB,OAAS,GACd/3jB,KAAK8uI,MAAQ,GACb9uI,KAAK00oB,QAAU,GAOnByjS,SAAMh+4B,UAAUi+4B,UAAY,SAAUlt2B,EAAMt+D,EAAO+L,GAC3C/L,IACAA,EAAQA,aAAiBohD,KAAOq8B,GAAMz9E,GAASuh6B,IAAWvh6B,IAEjD,QAATs+D,EACAlrE,KAAKwxL,IAAM5kL,GAGX+L,EAAK+e,OAAS9qB,EACd5M,KAAKkrE,GAAM7hE,KAAKsP,KAUxBw/5B,EAAMh+4B,UAAUk+4B,UAAY,SAAUnt2B,EAAMvyD,GACxC,IAAIgzzB,GAAS,EACT2sG,EAAW3/5B,EAAOtM,OAAO0M,KAAKJ,GAAQ,GACtC4/5B,EAAgB,SAAU375B,GAC1B,QAASpY,EAAI,EAAGA,EAAI8z6B,EAAS7z6B,OAAQD,IAAK,CACtC,IAAI2N,EAAMmm6B,EAAS9z6B,GACnB,IAAKg06B,IAAU7/5B,EAAKxG,GAAMyK,EAAKzK,IAC3B,OAAO,EAGf,OAAO,GAEPsm6B,EAAez46B,KAAKkrE,GACxB,GAAa,QAATA,EACAygwB,EAAS3r0B,KAAKwxL,YAET9mL,GAAQ+t6B,GAGb,QAASj06B,EAAI,EAAGA,EAAIi06B,EAAah06B,OAAQD,IAAK,CAC1C,IAAIoY,EAAO675B,EAAaj06B,GACxB,IAAI8z6B,EAAS7z6B,SAAU8z6B,EAAc375B,GAErC+uzB,GAAS/uzB,EAAK8a,OACd,OAGR,IAAKi0yB,GAAU3r0B,KAAKwxL,IAAK,CAIrB,IADIknvB,EAAa,IAAI7J,GAAW3j2B,EAAMvyD,GACtC,IAASnU,EAAI,EAAGA,EAAIxE,KAAKwxL,IAAI/sL,QACpBi06B,EAAWrgN,OAAOr4tB,KAAKwxL,IAAIhtL,IADCA,KAIrCmn0B,EAAS+sG,EAAWj75B,WACpBzd,KAAKo46B,UAAUlt2B,EAAMygwB,EAAQhzzB,GAEjC,OAAOjO,GAAQih0B,GACTwiG,IAAWxiG,GACXA,aAAkB39wB,KACdq8B,GAAMshvB,GACNA,GAEPwsG,EA3EgB,GCVvBQ,KAAWC,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,SAAc,GAAIzyrB,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,EAAG,IAAI,GAC9d0yrB,OAAWD,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,OAAc,GAAIzyrB,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,EAAG,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,GAAI,KAAK,GAAOA,GAAO,EAAG,IAAI,GAC9d2yrB,IAAMtrvB,GAAM,EAAG,IACfurvB,IAAMvrvB,GAAM,EAAG,IACfwrvB,GAAMxrvB,GAAM,EAAG,IACfyrvB,GAAMzrvB,GAAM,EAAG,IACf0rvB,KAAcN,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,SAAc,GAAIK,IAAK,GAAOF,KAAK,GAAOE,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOA,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOA,GAAI3x6B,MAAM,EAAG,IAAI,GACzW6x6B,KAAcP,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,YAAcA,UAAcA,OAAc,GAAIK,IAAK,GAAOH,KAAK,GAAOG,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOA,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOD,IAAK,GAAOC,IAAK,GAAOA,GAAI3x6B,MAAM,EAAG,IAAI,GACzW8x6B,IAAO5rvB,IAAM,GAAK,GAClB6rvB,IAAO7rvB,IAAM,GAAK,GAClB8rvB,GAAO9rvB,IAAM,GAAK,GAClB+rvB,GAAO/rvB,IAAM,GAAK,GAClBgsvB,OAAeZ,UAAcA,UAAcA,QAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,SAAc,GAAIW,IAAM,GAAOF,KAAM,GAAOE,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOA,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOA,GAAKjy6B,MAAM,EAAG,IAAI,GACvXmy6B,OAAeb,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,QAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,UAAcA,SAAc,GAAIW,IAAM,GAAOH,KAAM,GAAOG,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOA,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOD,IAAM,GAAOC,IAAM,GAAOA,GAAKjy6B,MAAM,EAAG,IAAI,GACvXoy6B,IAAY,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpEC,IAAY,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpEC,IAAY,WAEZ,QADIC,EAAW,GACNr16B,EAAI,EAAGA,EAAI,GAAIA,IACpBq16B,EAAWA,EAASh45B,OAAO2rK,GAAM,IACrC,OAAOqsvB,EAJK,GCZhB,IAAIC,IAA0B,WAE1B,WAAkBlo5B,GACd5xB,KAAK4xB,QAAUA,EAEnBko5B,SAAS3/4B,UAAU4/4B,QAAU,SAAU3hpB,EAAMF,GACzC,IAAItmQ,EAAU5xB,KAAK4xB,QAInB,GAHIwmQ,IAASp4R,KAAKg66B,WACdh66B,KAAKi66B,SCdV,aAAqB7hpB,EAAMxmQ,GAC9B,IAAIso5B,EAAYzjnB,GAASr+B,EAAM,EAAG,GAC9B+hpB,EAAU7M,GAAWl1oB,GAAQ,IAAM,IACnCgipB,EAAc9M,GAAWl1oB,EAAO,GAAK,IAAM,IAC3CiipB,EAAc7M,GAAU0M,GACxBI,EAAcvM,GAAWmM,GACzBxn6B,GAAS6j6B,YAASA,OAAS,CAAE4D,QAASA,EAASC,YAAaA,EAAaC,YAAaA,EAAaC,YAAaA,GAgGxH,aAAuBlipB,GACnB,IAAI+hpB,EAAU7M,GAAWl1oB,GAAQ,IAAM,IACnC8hpB,EAAYzjnB,GAASr+B,EAAM,EAAG,GAC9Bo7oB,EAAOzF,GAAWmM,GACtB,OAAgB,MAAZC,EACO,CACHI,MAAO5B,IACP6B,SAAUrB,IACVsB,UAAWhB,IACXI,SAAUD,UAAepG,GACzBkH,OAAQf,KAGT,CACHY,MAAO1B,IACP2B,SAAUtB,IACVuB,UAAWjB,IACXK,SAAUD,UAAepG,GACzBkH,OAAQhB,KAlHuHiB,CAAcvipB,IAAQ,CAAEwipB,QAAS,OACpK,GAAI531B,GAAMpxD,EAAQwh5B,UACd,OAAO1g6B,EAEXA,EAAOko6B,QAAUz0rB,GAAO,EAAGg0rB,EAAU,GACrC,IAAIU,EACAC,EACAC,EAAWF,EAAY7N,GAAM,EAAIsN,EAAc1o5B,EAAQ4j5B,KAAM,GAC7DuF,GAAW,GACXA,EAAU,EAGVD,EAAWpo6B,EAAOyn6B,QAAUnN,GAAMsN,EAAc1o5B,EAAQ4j5B,KAAM,IAK9DsF,EAAWX,EAAUY,EAKzB,QAHI5pmB,EAAM52T,KAAKo7J,MAAMmlwB,EAAW,GAC5B5N,EAAMF,GAAM8N,EAAU,GACtBE,EAAWzg6B,KAAKo7J,MAAMw7J,EAAM+7lB,EAAM,GAC7Brv0B,GAAI,EAAGA,GAAIjsE,EAAQwh5B,SAAS3u6B,OAAQo5F,KAAK,CAC9C,IAAI38D,GAAItP,EAAQwh5B,SAASv10B,IAIzB,GAHI38D,GAAI,IACJA,IAAK854B,EAAW,GAEd954B,GAAI,GAAKA,IAAK854B,EAGpB,KAAIx26B,QAAI,EACJ08B,GAAI,GACJ18B,GAAIu26B,EAAoB,GAAT754B,GAAI,GACf654B,IAAYF,IACZr26B,IAAK,EAAIq26B,IAIbr26B,GAAIu26B,EAER,QAASz55B,GAAI,EAAGA,GAAI,IAChB5O,EAAOko6B,QAAQp26B,IAAK,EACpBA,KACIkO,EAAOmn6B,SAASr16B,MAAOotB,EAAQ4j5B,MAHhBl05B,QAO3B,GAAIkG,GAASoK,EAAQwh5B,SAAU,KAGvB5u6B,GAAIu26B,EAAqB,EAAXC,EACdD,IAAYF,IACZr26B,IAAK,EAAIq26B,GACTr26B,GAAI216B,GAGJ,IAASt80B,GAAI,EAAGA,GAAI,IAChBnrF,EAAOko6B,QAAQp26B,IAAK,EAEhBkO,EAAOmn6B,SADXr16B,IAAK,KACsBotB,EAAQ4j5B,MAHhB330B,MAQ/B,GAAIk90B,EAAS,CAOT,IAAIE,QAAY,EAChB,GAAKzz5B,GAASoK,EAAQwh5B,UAAU,GAe5B6H,IAAY,MAfqB,CACjC,IAAIC,GAAenN,GAAWt3mB,GAASr+B,EAAO,EAAG,EAAG,IAChD+ipB,GAAWnO,GAAM,EAAIkO,GAAa/s3B,UAAYv8B,EAAQ4j5B,KAAM,GAC5D4F,GAAW9N,GAAWl1oB,EAAO,GAAK,IAAM,IACxCijpB,QAAS,EACTF,IAAY,GACZA,GAAW,EACXE,GAASD,GAAWpO,GAAMkO,GAAetp5B,EAAQ4j5B,KAAM,IAGvD6F,GAASlB,EAAUY,EAEvBE,GAAY1g6B,KAAKo7J,MAAM,GAAKq3vB,GAAMqO,GAAQ,GAAK,GAKnD,GAAI7z5B,GAASoK,EAAQwh5B,SAAU6H,IAC3B,IAASz26B,GAAI,EAAGA,GAAIu26B,EAASv26B,KACzBkO,EAAOko6B,QAAQp26B,IAAK,EAGhC,OAAOkO,EDtFiB4o6B,CAAYljpB,EAAMxmQ,IAElCst2B,GAAStt2B,EAAQ2p5B,cAChBrjpB,IAAUl4R,KAAKw76B,WAAapjpB,IAASp4R,KAAKg66B,UAAW,CACtD,IAAI9v5B,EAAKlqB,KAAKi66B,SACdj66B,KAAKy76B,UErBV,aAAsBrjpB,EAAMF,EAAOiipB,EAASO,EAAQb,EAAUjo5B,GACjE,IAAIlf,EAAS,CACTsn6B,SAAU5hpB,EACVojpB,UAAWtjpB,EACXwjpB,UAAW,IAEXl6wB,EAAS,GACb,GAAI5vI,EAAQug5B,OAASE,UACjB,GAAIrv1B,GAAMpxD,EAAQ8g5B,SACdlxwB,EAAS,CAAC,CAAC,EAAG24wB,SAGd,QAASt80B,EAAI,EAAGA,EAAIjsE,EAAQ8g5B,QAAQju6B,OAAQo5F,IAExC2jE,EAAOn4J,KAAKqx6B,EAAOpz6B,OADnB4wR,EAAQtmQ,EAAQ8g5B,QAAQ700B,IACS,EAAGq6L,EAAQ,SAI/CtmQ,EAAQug5B,OAASE,aACtB7wwB,EAAS,CAACk5wB,EAAOpz6B,MAAM4wR,EAAQ,EAAGA,EAAQ,KAE9C,GAAIl1M,GAAMw+E,GACN,OAAO9uJ,EAKX,IADAA,EAAOgp6B,UAAYv1rB,GAAO,EAAGg0rB,GACpBt80B,EAAI,EAAGA,EAAI2jE,EAAO/8J,OAAQo5F,IAI/B,QAHI+u0B,EAAOprwB,EAAO3jE,GACdjuD,EAAQg93B,EAAK,GACbxx5B,EAAOwx5B,EAAK,GAAK,EACZtr5B,EAAI,EAAGA,EAAIsQ,EAAQ2p5B,WAAW926B,OAAQ6c,IAAK,CAChD,IAAI9c,OAAI,EACJ0lB,GAAK0H,EAAQ2p5B,WAAWj65B,GAAIky5B,GAAOtp5B,GAAG,GAAIgX,GAAIhX,GAAG,GACjDgX,GAAI,GACJ18B,EAAI4W,EAAiB,GAAT8lB,GAAI,GAChB18B,GAAKwo6B,GAAM6M,EAASr16B,GAAKgv6B,GAAM,KAG/Bhv6B,EAAIorC,EAAkB,GAAT1O,GAAI,GACjB18B,GAAKwo6B,GAAM,EAAI6M,EAASr16B,GAAKgv6B,GAAM,IAEnC5j4B,GAASprC,GAAKA,GAAK4W,IACnB1I,EAAOgp6B,UAAUl36B,GAAK,GAGlC,OAAOkO,EFzBkBip6B,CAAavjpB,EAAMF,EADFhuQ,EAAGiw5B,QAAkBjw5B,EAAGww5B,OAAmBxw5B,EAAG2v5B,SACVjo5B,GAEtE7K,GAAU6K,EAAQwl5B,YAClBp36B,KAAK476B,WG1BV,aAAgBpg3B,EAAG2O,QACP,IAAXA,IAAqBA,EAAS,GAClC,IAAIlvC,EAAIugC,EAAI,GACR39C,EAAItD,KAAKo7J,MAAMn6G,EAAI,KACnB50C,EAAI40C,EAAI,IACR1d,EAAIvjC,KAAKo7J,MAAM93J,EAAI,GACnB7H,EAAI6H,EAAI,EACRsjC,EAAI5mC,KAAKo7J,OAAO93J,EAAI,GAAK,IACzB2oB,EAAIjsB,KAAKo7J,OAAO93J,EAAIsjC,EAAI,GAAK,GAC7BwnB,EAAIpuD,KAAKo7J,MAAM,GAAK16I,EAAIpd,EAAIigC,EAAItX,EAAI,IAAM,GAC1ChiC,EAAI+V,KAAKo7J,MAAM/uJ,EAAI,GAEnBqjO,EAAI1vO,KAAKo7J,MAAM,GAAK,EAAI3/J,EAAI,EAAIxR,EAAImkE,EADhC/hD,EAAI,GACqC,EAC7Cmf,EAAIxrB,KAAKo7J,OAAO16I,EAAI,GAAK0tC,EAAI,GAAKshL,GAAK,KACvCiuC,GAAQ39Q,KAAKo7J,OAAOhtG,EAAIshL,EAAI,EAAIlkN,EAAI,KAAO,IAE3C+xE,GAAO9pD,KAAKqtO,IAAI7/N,EAAG08N,GAAQ,GADnBvvN,EAAIshL,EAAI,EAAIlkN,EAAI,KAAO,GAAM,EACDokC,GACpC0x2B,GAAY7t3B,KAAKqtO,IAAI7/N,EAAG,EAAG,GAC/B,MAAO,CAACjhD,KAAKojF,MAAMma,GAAO+j0B,IAAc,QHQdC,CAAO1jpB,EAAMxmQ,EAAQwl5B,YAG/C/q6B,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,WAAY,CAClDn2B,IAAK,WACD,OAAOhE,KAAKy76B,UAAYz76B,KAAKy76B,UAAUzB,SAAW,MAEtD3hvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,YAAa,CACnDn2B,IAAK,WACD,OAAOhE,KAAKy76B,UAAYz76B,KAAKy76B,UAAUD,UAAY,MAEvDnjvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,UAAW,CACjDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASE,SAEzB9hvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,cAAe,CACrDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASI,aAEzBhivB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,SAAU,CAChDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASS,QAEzBrivB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,WAAY,CAClDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASJ,UAEzBxhvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,QAAS,CAC/Cn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASM,OAEzBlivB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,UAAW,CACjDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASW,SAEzBvivB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,YAAa,CACnDn2B,IAAK,WACD,OAAOhE,KAAKy76B,UAAYz76B,KAAKy76B,UAAUC,UAAY,IAEvDrjvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,cAAe,CACrDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASG,aAEzB/hvB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,WAAY,CAClDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASO,UAEzBnivB,YAAY,EACZP,cAAc,IAElBzrL,OAAOwrL,eAAeiivB,EAAS3/4B,UAAW,YAAa,CACnDn2B,IAAK,WACD,OAAOhE,KAAKi66B,SAASQ,WAEzBpivB,YAAY,EACZP,cAAc,IAElBgivB,EAAS3/4B,UAAU4h5B,QAAU,WACzB,MAAO,CAACvuvB,GAAMxtL,KAAKm66B,SAAU,EAAGn66B,KAAKm66B,UAEzCL,EAAS3/4B,UAAU6h5B,QAAU,SAAUx35B,EAAG0zQ,GAItC,QAHI9qO,EAAQptD,KAAK066B,OAAOxipB,EAAQ,GAC5BhsR,EAAMlM,KAAK066B,OAAOxipB,GAClBlwR,EAAMm+O,GAAO,KAAMnmP,KAAKm66B,SACnB316B,EAAI4oD,EAAO5oD,EAAI0H,EAAK1H,IACzBwD,EAAIxD,GAAKA,EACb,MAAO,CAACwD,EAAKolD,EAAOlhD,IAExB4t6B,EAAS3/4B,UAAU8h5B,QAAU,SAAU7jpB,EAAMF,EAAOF,GAKhD,QAHIhwR,EAAMm+O,GAAO,KAAMnmP,KAAKm66B,QAAU,GAClC316B,EAAIgp6B,GAAU/2mB,GAASr+B,EAAMF,EAAOF,IAAQh4R,KAAKq66B,YACjDjt3B,EAAQ5oD,EACHq5F,EAAI,EAAGA,EAAI,IAChB71F,EAAIxD,GAAKA,IACPA,EACExE,KAAK656B,SAASr16B,KAAOxE,KAAK4xB,QAAQ4j5B,MAHnB330B,KAMvB,MAAO,CAAC71F,EAAKolD,EAAO5oD,IAExBs16B,EAAS3/4B,UAAU+h5B,QAAU,SAAU9jpB,EAAMF,EAAOF,GAChD,IAAIhwR,EAAMm+O,GAAO,KAAMnmP,KAAKm66B,SACxB316B,EAAIgp6B,GAAU/2mB,GAASr+B,EAAMF,EAAOF,IAAQh4R,KAAKq66B,YACrDry6B,SAAIxD,GAAKA,EACF,CAACwD,EAAKxD,EAAGA,EAAI,IAExBs16B,EAAS3/4B,UAAUgi5B,SAAW,SAAUpkpB,EAAMvzQ,EAAG2tK,EAAQ0lG,GACrD,IAAIngM,EAAQ13F,KACRgI,EAAM,GACV,YAAK4pB,QAAQmk5B,SAAS/v6B,QAAQ,SAAU8xR,GACpC9vR,EAAMA,EAAI6Z,OAAO61E,EAAM0k1B,SAASrkpB,EAAMD,EAAQ3lG,EAAQ0lG,MAE1Dv8P,GAAKtzB,GACEA,GAEX8x6B,EAAS3/4B,UAAUii5B,SAAW,SAAUrkpB,EAAMD,EAAQtzQ,EAAGqzQ,GACrD,IAAI7vR,EAAMhI,KAAK4xB,QAAQsk5B,SAASx15B,IAAI,SAAUyxK,GAAU,OAAO,IAAI6ivB,GAAKj9oB,EAAMD,EAAQ3lG,EAAQ0lG,KAC9Fv8P,UAAKtzB,GACEA,GAEX8x6B,EAAS3/4B,UAAUki5B,SAAW,SAAUtkpB,EAAMD,EAAQ3lG,EAAQ0lG,GAC1D,MAAO,CAAC,IAAIm9oB,GAAKj9oB,EAAMD,EAAQ3lG,EAAQ0lG,KAE3CiipB,EAAS3/4B,UAAUmi5B,UAAY,SAAUnK,GACrC,OAAQA,QACC2C,UACD,OAAO906B,KAAK+76B,QAAQ9y3B,KAAKjpD,WACxB806B,WACD,OAAO906B,KAAKg86B,QAAQ/y3B,KAAKjpD,WACxB806B,UACD,OAAO906B,KAAKi86B,QAAQhz3B,KAAKjpD,MAEA,QAEzB,OAAOA,KAAKk86B,QAAQjz3B,KAAKjpD,QAGrC856B,EAAS3/4B,UAAUoi5B,WAAa,SAAUpK,GACtC,OAAQA,QACC2C,UACD,OAAO906B,KAAKm86B,SAASlz3B,KAAKjpD,WACzB806B,YACD,OAAO906B,KAAKo86B,SAASnz3B,KAAKjpD,WACzB806B,YACD,OAAO906B,KAAKq86B,SAASpz3B,KAAKjpD,QAG/B856B,EA9KmB,GAgL9B,UAAeA,IIxLR,aAAsB0C,EAAUC,EAASrv3B,EAAOlhD,EAAKuwK,EAAIigwB,GAE5D,QADIC,EAAU,GACL9+0B,EAAI,EAAGA,EAAI2+0B,EAAS/36B,OAAQo5F,IAAK,CACtC,IAAI++0B,OAAS,EACTC,OAAU,EACV/p4B,EAAM0p4B,EAAS3+0B,GACf/qD,EAAM,GACN8p4B,EAASri6B,KAAKo7J,MAAM7iI,EAAM2p4B,EAAQh46B,QAClCo46B,EAAU7P,GAAMl63B,EAAK2p4B,EAAQh46B,UAG7Bm46B,EAASri6B,KAAKo7J,OAAO7iI,EAAM,GAAK2p4B,EAAQh46B,QACxCo46B,EAAU7P,GAAMl63B,EAAM,EAAG2p4B,EAAQh46B,SAGrC,QADI+5W,EAAM,GACDl9V,EAAI8rC,EAAO9rC,EAAIpV,EAAKoV,IAAK,CAC9B,IAAIma,EAAMih5B,EAAOp75B,IACZyF,GAAU0U,IAEf+iV,EAAIn1W,KAAKoyB,GAEb,IAAIj3B,GAEAA,GADAo46B,EAAS,EACLp+jB,EAAIl3W,MAAMs16B,GAAQ,GAGlBp+jB,EAAIo+jB,GAEZ,IAAIvr2B,GAAOor2B,EAAQI,GACf/k0B,GAAO81zB,IAAYnxvB,EAAG49vB,YAAc716B,IACpC2b,GAAM+t5B,IAAQp2zB,GAAMzmC,IAGnB7pD,GAASm15B,EAASx85B,KACnBw85B,EAAQtz6B,KAAK8W,IAErBmb,UAAKqh5B,GACEA,EC9BJ,aAAcjE,EAAY9m5B,GAC7B,IAAIgl5B,EAAUhl5B,EAAQgl5B,QAASzE,EAAOvg5B,EAAQug5B,KAAmC1D,EAAQ784B,EAAQ684B,MAAO+N,EAAW5q5B,EAAQ4q5B,SACvH526B,EAAQgsB,EAAQhsB,MACpB,GAAc,IAAVA,GAA4B,IAF+BgsB,EAAQw6B,SAGnE,OAAO0w3B,GAAWpE,GAEtB,IAAIqE,EAAc9H,aAAkB2B,GAChCn6vB,EAAK,IAAIq9vB,IAASlo5B,GACtB6qJ,EAAGs9vB,QAAQgD,EAAY3kpB,KAAM2kpB,EAAY7kpB,OAEzC,QADIukpB,EAqGR,aAAqBhgwB,EAAIsgwB,EAAanr5B,GAClC,IAAIug5B,EAAOvg5B,EAAQug5B,KAAMW,EAASlh5B,EAAQkh5B,OAAQiD,EAAWnk5B,EAAQmk5B,SAAUG,EAAWtk5B,EAAQsk5B,SAClG,OAAI8G,GAAqB7K,GXgEtB,aAAsB1j5B,GACzB,IAAIwu5B,EAAoBxu5B,EAAKmo5B,QAAQ/l3B,UAAY,IACjD,IAAKms3B,GAAqBvu5B,EAAK0j5B,MAC3B,MAAO,GAEX,IAAIsK,EAAU,GACdhu5B,SAAKqk5B,OAAO9s6B,QAAQ,SAAU+xR,GAC1BtpQ,EAAKsn5B,SAAS/v6B,QAAQ,SAAU8xR,GAC5BrpQ,EAAKyn5B,SAASlw6B,QAAQ,SAAUmsL,GAC5BsqvB,EAAQpz6B,KAAK,IAAI2r6B,GAAKj9oB,EAAMD,EAAQ3lG,EAAQ8qvB,UAIjDR,EW5EIS,CAAatr5B,GAEnBug5B,GAAQE,WACTnzC,GAAS4zC,KACRtr5B,GAASsr5B,EAAQiK,EAAYhlpB,OAC7Bo6oB,GAAQE,aACLnzC,GAAS62C,KACRvu5B,GAASuu5B,EAAUgH,EAAYjlpB,SACnCq6oB,GAAQE,aACLnzC,GAASg3C,KACR1u5B,GAAS0u5B,EAAU6G,EAAY5qvB,QAC7B,GAEJ1V,EAAG8/vB,WAAWpK,EAAd11vB,CAAoBsgwB,EAAYhlpB,KAAMglpB,EAAYjlpB,OAAQilpB,EAAY5qvB,OAAQ4qvB,EAAYllpB,aArHnFslpB,CAAY1gwB,EAAIsgwB,EAAanr5B,KAClC,CACL,IAAI1H,EAAKuyJ,EAAG6/vB,UAAUnK,EAAb11vB,CAAmBsgwB,EAAY3kpB,KAAM2kpB,EAAY7kpB,MAAO6kpB,EAAY/kpB,KAAM0kpB,EAASxy5B,EAAG,GAAIkjC,EAAQljC,EAAG,GAAIhe,GAAMge,EAAG,GACvH0r5B,GAAWwH,IAAmBV,EAAQtv3B,EAAOlhD,GAAKuwK,EAAI7qJ,GAC1D,GAAIst2B,GAASs9C,GAET,QADIG,GAAUU,IAAab,EAAUC,EAASrv3B,EAAOlhD,GAAKuwK,EAAIigwB,GACrD7+0B,GAAI,EAAGA,GAAI8+0B,GAAQl46B,OAAQo5F,KAAK,CACrC,IAAI19E,GAAMw85B,GAAQ9+0B,IAClB,GAAI4w0B,GAAStu5B,GAAMsu5B,EACf,OAAOqO,GAAWpE,GAEtB,GAAIv45B,IAAOy25B,EAAS,CAChB,IAAIa,GAAc6F,IAAen95B,GAAKyR,GAItC,IAHK8m5B,EAAWrgN,OAAOo/M,KAGnB7x6B,MACEA,EAEE,OAAOk36B,GAAWpE,SAOlC,IAAS760B,GAAIzwC,EAAOywC,GAAI3xF,GAAK2xF,KAAK,CAC9B,IAAI4iX,GAAai8d,EAAO7+0B,IACxB,GAAK92E,GAAU05b,IAIf,QADI3oW,GAAO81zB,IAAYnxvB,EAAG49vB,YAAc55d,IAC/Bn/b,GAAI,EAAGA,GAAIm75B,EAAQh46B,OAAQ6c,KAAK,CAGrC,GADInB,GAAM+t5B,IAAQp2zB,GADP2k0B,EAAQn75B,KAEfmt5B,GAAStu5B,GAAMsu5B,EACf,OAAOqO,GAAWpE,GAEtB,GAAIv45B,IAAOy25B,IACHa,GAAc6F,IAAen95B,GAAKyR,IACjC8m5B,EAAWrgN,OAAOo/M,KAGnB7x6B,MACEA,GAEE,OAAOk36B,GAAWpE,IAY1C,GALyB,IAArB9m5B,EAAQw6B,WAIZ2w3B,EAAYt06B,IAAImpB,EAASgk5B,IACrBmH,EAAY3kpB,KpBxDH,MoByDT,OAAO0kpB,GAAWpE,GAEjBsE,GAAqB7K,KACtBsK,EAAUhgwB,EAAG8/vB,WAAWpK,EAAd11vB,CAAoBsgwB,EAAYhlpB,KAAMglpB,EAAYjlpB,OAAQilpB,EAAY5qvB,OAAQ,IAE5F1V,EAAGs9vB,QAAQgD,EAAY3kpB,KAAM2kpB,EAAY7kpB,QAGjD,aAAoBz7G,EAAIgkS,EAAY7ub,GAChC,IAAI8g5B,EAAU9g5B,EAAQ8g5B,QAASU,EAAWxh5B,EAAQwh5B,SAAUzB,EAAY//4B,EAAQ+/4B,UAAWyF,EAAWxl5B,EAAQwl5B,SAAU3F,EAAa7/4B,EAAQ6/4B,WAAYC,EAAc9/4B,EAAQ8/4B,YAAayB,EAAYvh5B,EAAQuh5B,UAChN,OAASj0C,GAASwzC,KAAalr5B,GAASkr5B,EAASj2vB,EAAG89vB,MAAM95d,KACrDy+a,GAASk0C,KAAc32vB,EAAGm+vB,QAAQn6d,IAClCy+a,GAASyyC,KAAenq5B,GAASmq5B,EAAWl1vB,EAAGo9vB,SAASp5d,KACxDy+a,GAASzitB,EAAGi/vB,aAAej/vB,EAAGi/vB,UAAUj7d,IAC3B,OAAb22d,IAAsB5v5B,GAASi1J,EAAGm/vB,WAAYn7d,KAC7Cy+a,GAASuyC,IAAevyC,GAASwyC,MAC9Blq5B,GAASiq5B,EAAYh1vB,EAAG+9vB,SAAS/5d,MACjCj5b,GAASkq5B,EAAaj1vB,EAAGg+vB,UAAUh6d,KACvCy+a,GAASi0C,KACJ1yd,EAAahkS,EAAG09vB,UACb3y5B,GAAS2r5B,EAAW1yd,EAAa,KACjCj5b,GAAS2r5B,GAAY12vB,EAAG09vB,QAAU15d,IAClCA,GAAchkS,EAAG09vB,UACb3y5B,GAAS2r5B,EAAW1yd,EAAa,EAAIhkS,EAAG09vB,WACxC3y5B,GAAS2r5B,GAAY12vB,EAAG29vB,YAAc35d,EAAahkS,EAAG09vB,UAE3E,aAAwBri0B,EAAMlmF,GAC1B,OAAO,IAAIyl5B,GAAav/zB,EAAMlmF,EAAQ+k5B,MAAMc,cAEhD,YAAoBiB,GAChB,OAAOA,EAAWj75B,WAEtB,aAA4Bi/5B,EAAQtv3B,EAAOlhD,EAAKuwK,EAAI7qJ,GAEhD,QADIgk5B,GAAW,EACN2H,EAAanw3B,EAAOmw3B,EAAarx6B,EAAKqx6B,IAAc,CACzD,IAAI98d,EAAai8d,EAAOa,IACxB3H,EAAWh3a,IAAWniV,EAAIgkS,EAAY7ub,MAElC8q5B,EAAOj8d,GAAc,MAE7B,OAAOm1d,ECvGJ,IAAImB,GAAO,CACdyG,GAAI,IAAIjR,GAAQ,GAChBkR,GAAI,IAAIlR,GAAQ,GAChBmR,GAAI,IAAInR,GAAQ,GAChBoR,GAAI,IAAIpR,GAAQ,GAChBqR,GAAI,IAAIrR,GAAQ,GAChBz8N,GAAI,IAAIy8N,GAAQ,GAChBsR,GAAI,IAAItR,GAAQ,IAETuL,GAAkB,CACzB3F,KAAM2C,UACN8B,QAAS,KACTxq3B,SAAU,EACVop3B,KAAMuB,GAAKyG,GACX536B,MAAO,KACP6o6B,MAAO,KACPkI,KAAM,KACN6F,SAAU,KACV9J,QAAS,KACTjB,WAAY,KACZC,YAAa,KACbyB,UAAW,KACXC,SAAU,KACVzB,UAAW,KACX4J,WAAY,KACZzI,OAAQ,KACRiD,SAAU,KACVG,SAAU,KACVkB,SAAU,MAEHd,IAAcjq6B,OAAO0M,KAAK++5B,IAOjCzF,GAAuB,WACvB,WAAezg5B,EAASks5B,QACJ,IAAZls5B,IAAsBA,EAAU,SACpB,IAAZks5B,IAAsBA,GAAU,GAEpC996B,KAAKy1H,OAASqozB,EAAU,KAAO,IAAI3F,IAEnCn46B,KAAKwx6B,YAAcuM,IAAkBns5B,GACrC,IAAIk0W,EZnCL,aAAsBl0W,GACzB,IAAInD,KAAO8n5B,QAASA,SAAS,GAAIuB,IAAkBiG,IAAkBns5B,IAGrE,GAFI7K,GAAU0H,EAAK2o5B,YACf3o5B,EAAK0j5B,KAAOE,YACVtr5B,GAAU0H,EAAK0j5B,QAASE,eAAkB5j5B,EAAK0j5B,MACjD,MAAM,IAAI5s6B,MAAM,sBAAsBsc,OAAO4M,EAAK0j5B,KAAM,KAAKtw5B,OAAO+P,EAAQug5B,OAahF,GAXK1j5B,EAAKmo5B,UACNno5B,EAAKmo5B,QAAU,IAAI5o3B,MAAK,IAAIA,MAAO+zZ,gBAAgB,KACvDi8d,GAAevv5B,EAAK+m5B,MAGXj8uB,GAAS9qK,EAAK+m5B,QAInB/m5B,EAAK+m5B,KAAO/m5B,EAAK+m5B,KAAK77kB,SANtBlrU,EAAK+m5B,KAAOnD,cAQZtr5B,GAAU0H,EAAK+t5B,UAAW,CACtBjjvB,GAAS9qK,EAAK+t5B,YACd/t5B,EAAK+t5B,SAAW,CAAC/t5B,EAAK+t5B,WAC1B,QAASh46B,EAAI,EAAGA,EAAIiqB,EAAK+t5B,SAAS/36B,OAAQD,IAEtC,GAAU,KADNqjB,EAAI4G,EAAK+t5B,SAASh46B,OACLqjB,IAAK,KAAQA,GAAK,KAC/B,MAAM,IAAItiB,MAAM,8DAI5B,KAAMuoG,QAAQr/E,EAAK2k5B,WACfl0C,GAASzw2B,EAAK2k5B,WACdl0C,GAASzw2B,EAAK0k5B,YACdrl0B,QAAQr/E,EAAKgj5B,aACbvyC,GAASzw2B,EAAKgj5B,aACd1q5B,GAAU0H,EAAKkj5B,YACf5q5B,GAAU0H,EAAK2o5B,WACf,OAAQ3o5B,EAAK0j5B,WACJE,UACI5j5B,EAAKik5B,UACNjk5B,EAAKik5B,QAAUjk5B,EAAKmo5B,QAAQtolB,cAAgB,GAChD7/T,EAAKgj5B,WAAahj5B,EAAKmo5B,QAAQrolB,aAC/B,WACC8jlB,WACD5j5B,EAAKgj5B,WAAahj5B,EAAKmo5B,QAAQrolB,aAC/B,WACC8jlB,UACD5j5B,EAAKkj5B,UAAY,CAAC5D,GAAWt/4B,EAAKmo5B,UAe9C,GAVI7v5B,GAAU0H,EAAKik5B,WAAaho6B,GAAQ+jB,EAAKik5B,WACzCjk5B,EAAKik5B,QAAU,CAACjk5B,EAAKik5B,UAGrB3r5B,GAAU0H,EAAK0k5B,aACdzo6B,GAAQ+jB,EAAK0k5B,YACd55uB,GAAS9qK,EAAK0k5B,aACd1k5B,EAAK0k5B,UAAY,CAAC1k5B,EAAK0k5B,YAGtBps5B,GAAU0H,EAAKgj5B,YAEG,GAEd/m6B,GAAQ+jB,EAAKgj5B,YAAa,CAG/B,IAFIA,EAAa,GACbC,EAAc,GAClB,IAASlt6B,EAAI,EAAGA,EAAIiqB,EAAKgj5B,WAAWht6B,OAAQD,IAAK,CAC7C,IAAIqjB,KAAI4G,EAAKgj5B,WAAWjt6B,IAChB,EACJit6B,EAAWpo6B,KAAKwe,GAEXA,EAAI,GACT6p5B,EAAYro6B,KAAKwe,GAGzB4G,EAAKgj5B,WAAaA,EAClBhj5B,EAAKij5B,YAAcA,OAEdjj5B,EAAKgj5B,WAAa,GACvBhj5B,EAAKij5B,YAAc,CAACjj5B,EAAKgj5B,YACzBhj5B,EAAKgj5B,WAAa,KAGlBhj5B,EAAKij5B,YAAc,GACnBjj5B,EAAKgj5B,WAAa,CAAChj5B,EAAKgj5B,kBAxBxBhj5B,EAAKgj5B,WAAa,GAClBhj5B,EAAKij5B,YAAc,GA8BvB,GAJI3q5B,GAAU0H,EAAK2k5B,YAAc1o6B,GAAQ+jB,EAAK2k5B,YAC1C3k5B,EAAK2k5B,SAAW,CAAC3k5B,EAAK2k5B,WAGrBrs5B,GAAU0H,EAAKkj5B,WACE,GAEbp4uB,GAAS9qK,EAAKkj5B,WACnBlj5B,EAAKkj5B,UAAY,CAAClj5B,EAAKkj5B,WACvBlj5B,EAAK8s5B,WAAa,aAEb5O,IAAal+4B,EAAKkj5B,WACvBlj5B,EAAKkj5B,UAAY,CAACpF,WAAgB994B,EAAKkj5B,WAAWh4kB,SAClDlrU,EAAK8s5B,WAAa,aAEb9s5B,EAAKkj5B,qBAAqBpF,IAC1B994B,EAAKkj5B,UAAUzw4B,GAAKzS,EAAK0j5B,KAAOE,YACjC5j5B,EAAKkj5B,UAAY,CAAClj5B,EAAKkj5B,UAAUh4kB,SACjClrU,EAAK8s5B,WAAa,OAGlB9s5B,EAAK8s5B,WAAa,CAAC,CAAC9s5B,EAAKkj5B,UAAUh4kB,QAASlrU,EAAKkj5B,UAAUzw4B,IAC3DzS,EAAKkj5B,UAAY,UAGpB,CAGD,IAFIA,EAAY,GACZ4J,EAAa,GACjB,IAAS/26B,EAAI,EAAGA,EAAIiqB,EAAKkj5B,UAAUlt6B,OAAQD,IAAK,CAC5C,IAAIgv6B,EAAO/k5B,EAAKkj5B,UAAUnt6B,GACtB+0L,GAASi6uB,GACT7B,EAAUto6B,KAAKmq6B,GAGV7G,IAAa6G,GAClB7B,EAAUto6B,KAAKkj6B,WAAgBiH,GAAM75kB,UAGpC65kB,EAAKty4B,GAAKzS,EAAK0j5B,KAAOE,WACvBV,EAAUto6B,KAAKmq6B,EAAK75kB,SAGpB4hlB,EAAWly6B,KAAK,CAACmq6B,EAAK75kB,QAAS65kB,EAAKty4B,IAG5CzS,EAAKkj5B,UAAYzyC,GAASyyC,GAAaA,EAAY,KACnDlj5B,EAAK8s5B,WAAar8C,GAASq8C,GAAcA,EAAa,UAzCtD9s5B,EAAK8s5B,WAAa,KA4CtB,OAAKx05B,GAAU0H,EAAKqk5B,QAGXv5uB,GAAS9qK,EAAKqk5B,UACnBrk5B,EAAKqk5B,OAAS,CAACrk5B,EAAKqk5B,SAHpBrk5B,EAAKqk5B,OAASrk5B,EAAK0j5B,KAAOE,UAAe,CAAC5j5B,EAAKmo5B,QAAQpolB,eAAiB,KAMvEznU,GAAU0H,EAAKsn5B,UAIXx8uB,GAAS9qK,EAAKsn5B,YACnBtn5B,EAAKsn5B,SAAW,CAACtn5B,EAAKsn5B,WAJtBtn5B,EAAKsn5B,SACDtn5B,EAAK0j5B,KAAOE,YAAiB,CAAC5j5B,EAAKmo5B,QAAQnolB,iBAAmB,KAMjE1nU,GAAU0H,EAAKyn5B,UAIX38uB,GAAS9qK,EAAKyn5B,YACnBzn5B,EAAKyn5B,SAAW,CAACzn5B,EAAKyn5B,WAJtBzn5B,EAAKyn5B,SACDzn5B,EAAK0j5B,KAAOE,YAAiB,CAAC5j5B,EAAKmo5B,QAAQlolB,iBAAmB,KAK/D,CAAEo3C,cAAer3W,GY5HAwqT,CAAarnT,GAASk0W,cAC1C9lY,KAAK4xB,QAAUk0W,EAEnBusiB,SAAM4L,UAAY,SAAUxn6B,EAAM8L,GAC9B,OAAO075B,IAAUxn6B,EAAM8L,IAE3B8v5B,EAAM6L,SAAW,SAAUzn6B,EAAM8L,GAC7B,Od4BO,SAAU9L,EAAM8L,GAC3B,YAAiB,IAAbA,IAAuBA,EAAWgv5B,IAC/B,IAAIc,GAAM4L,IAAUxn6B,EAAM8L,SAAa3M,Gc9BnCso6B,CAASzn6B,EAAM8L,IAE1B8v5B,EAAM8L,WAAa,SAAU9+4B,GACzB,OAAO,IAAIgz4B,EAAMA,EAAM+L,YAAY/+4B,SAAQzpB,IAE/Cy85B,EAAMl44B,UAAUkk5B,MAAQ,SAAU3F,GAC9B,OAAO4F,IAAK5F,EAAY146B,KAAK4xB,UAEjCyg5B,EAAMl44B,UAAUk+4B,UAAY,SAAUnt2B,EAAMvyD,GACxC,QAAK3Y,KAAKy1H,QAEHz1H,KAAKy1H,OAAO4izB,UAAUnt2B,EAAMvyD,IAEvC055B,EAAMl44B,UAAUi+4B,UAAY,SAAUlt2B,EAAMt+D,EAAO+L,GAC/C,GAAK3Y,KAAKy1H,OAEV,OAAOz1H,KAAKy1H,OAAO2izB,UAAUlt2B,EAAMt+D,EAAO+L,IAQ9C055B,EAAMl44B,UAAUq3J,IAAM,SAAU12H,GAC5B,GAAIA,EACA,OAAO96D,KAAKq+6B,MAAM,IAAIlP,IAAmB,MAAO,GAAIr02B,IAExD,IAAIpoD,EAAS1S,KAAKq46B,UAAU,OAC5B,OAAe,IAAX3l6B,IACAA,EAAS1S,KAAKq+6B,MAAM,IAAIxP,GAAW,MAAO,KAC1C7u6B,KAAKo46B,UAAU,MAAO1l6B,IAEnBA,GAUX2/5B,EAAMl44B,UAAUu6mB,QAAU,SAAU5lgB,EAAOipb,EAAQg3W,EAAKj02B,GAEpD,QADY,IAARi02B,IAAkBA,GAAM,IACvBxB,GAAYz+xB,KAAWy+xB,GAAYx1W,GACpC,MAAM,IAAIxyjB,MAAM,2CAEpB,IAAIoT,EAAO,CACPo/iB,OAAQA,EACRjpb,MAAOA,EACPigyB,IAAKA,GAET,GAAIj02B,EACA,OAAO96D,KAAKq+6B,MAAM,IAAIlP,IAAmB,UAAWx25B,EAAMmiD,IAE9D,IAAIpoD,EAAS1S,KAAKq46B,UAAU,UAAW1/5B,GACvC,OAAe,IAAXjG,IACAA,EAAS1S,KAAKq+6B,MAAM,IAAIxP,GAAW,UAAWl25B,IAC9C3Y,KAAKo46B,UAAU,UAAW1l6B,EAAQiG,IAE/BjG,GASX2/5B,EAAMl44B,UAAU49hB,OAAS,SAAUi3W,EAAID,GAEnC,QADY,IAARA,IAAkBA,GAAM,IACvBxB,GAAYyB,GACb,MAAM,IAAIzp6B,MAAM,0CAEpB,IAAIoT,EAAO,CAAEq25B,GAAIA,EAAID,IAAKA,GACtBr85B,EAAS1S,KAAKq46B,UAAU,SAAU1/5B,GACtC,OAAe,IAAXjG,IACAA,EAAS1S,KAAKq+6B,MAAM,IAAIxP,GAAW,SAAUl25B,IAC7C3Y,KAAKo46B,UAAU,SAAU1l6B,EAAQiG,IAE9BjG,GASX2/5B,EAAMl44B,UAAU20G,MAAQ,SAAUkgyB,EAAID,GAElC,QADY,IAARA,IAAkBA,GAAM,IACvBxB,GAAYyB,GACb,MAAM,IAAIzp6B,MAAM,yCAEpB,IAAIoT,EAAO,CAAEq25B,GAAIA,EAAID,IAAKA,GACtBr85B,EAAS1S,KAAKq46B,UAAU,QAAS1/5B,GACrC,OAAe,IAAXjG,IACAA,EAAS1S,KAAKq+6B,MAAM,IAAIxP,GAAW,QAASl25B,IAC5C3Y,KAAKo46B,UAAU,QAAS1l6B,EAAQiG,IAE7BjG,GAMX2/5B,EAAMl44B,UAAUv0B,MAAQ,WACpB,OAAO5F,KAAKwxL,MAAM/sL,QAQtB4t6B,EAAMl44B,UAAU3iB,SAAW,WACvB,OAAO+m6B,GAAgBv+6B,KAAKwx6B,cAMhCa,EAAMl44B,UAAUqk5B,OAAS,SAAUnN,EAAS9u5B,EAAU+u5B,GAClD,Od1EK,SAAUF,EAAOC,EAAS9u5B,EAAU+u5B,GAC7C,OAAO,IAAIH,GAAOC,EAAOC,EAAS9u5B,EAAU+u5B,GAAe955B,WcyEhDgn6B,CAAOx+6B,KAAMqx6B,EAAS9u5B,EAAU+u5B,IAE3Ce,EAAMl44B,UAAUsk5B,yBAA2B,WACvC,OAAOvM,IAAmBly6B,OAM9Bqy6B,EAAMl44B,UAAUkwD,MAAQ,WACpB,OAAO,IAAIgo1B,EAAMry6B,KAAKwx6B,cAG1Ba,EAAMqM,YAAc,CAChB,SACA,UACA,SACA,QACA,SACA,WACA,YAEJrM,EAAMa,OAAS4B,UACfzC,EAAMY,QAAU6B,WAChBzC,EAAMW,OAAS8B,UACfzC,EAAMI,MAAQqC,SACdzC,EAAME,OAASuC,UACfzC,EAAMG,SAAWsC,YACjBzC,EAAM0C,SAAWD,YACjBzC,EAAMmL,GAAKzG,GAAKyG,GAChBnL,EAAMoL,GAAK1G,GAAK0G,GAChBpL,EAAMqL,GAAK3G,GAAK2G,GAChBrL,EAAMsL,GAAK5G,GAAK4G,GAChBtL,EAAMuL,GAAK7G,GAAK6G,GAChBvL,EAAMviO,GAAKinO,GAAKjnO,GAChBuiO,EAAMwL,GAAK9G,GAAK8G,GAChBxL,EAAM+L,YAAcA,GACpB/L,EAAMkM,gBAAkBA,GACjBlM,EAjLgB,GCzCvByF,IAAkB,CAClBlB,QAAS,KACTnj1B,OAAO,EACPkr1B,QAAQ,EACRC,UAAU,EACVC,YAAY,EACZlI,KAAM,MAwFH,aAAkBhg6B,EAAGib,GACxB,YAAgB,IAAZA,IAAsBA,EAAU,IAnCxC,aAAmBjb,EAAGib,GAClB,IAAI1H,EArDD,aAAoBvT,EAAGib,GAC1B,IAAIkt5B,EAAY,GACZC,EAAY,GACZC,EAAa,GACbC,EAAa,GACbC,EAAgBpI,GAAang6B,GAC7Big6B,EAAUsI,EAActI,QACxBD,EAAOuI,EAAcvI,KACrBhnqB,EA0HR,aAAwBh5P,EAAGgo6B,GAGvB,QAFe,IAAXA,IAAqBA,GAAS,KAClCho6B,EAAIA,GAAKA,EAAEslE,QAEP,MAAM,IAAI12E,MAAM,wBAGpB,IAAKo56B,EACD,OAAOho6B,EAAEzE,MAAM,MAInB,QAFIy9P,EAAQh5P,EAAEzE,MAAM,MAChB1N,EAAI,EACDA,EAAImrQ,EAAMlrQ,QAAQ,CAErB,IAAI6zI,EAAQq3H,EAAMnrQ,GAAKmrQ,EAAMnrQ,GAAGoG,QAAQ,QAAS,IAC5C0tI,EAGI9zI,EAAI,GAAiB,MAAZ8zI,EAAK,IACnBq3H,EAAMnrQ,EAAI,IAAM8zI,EAAKhxI,MAAM,GAC3BqoQ,EAAMl9P,OAAOjO,EAAG,IAGhBA,GAAK,EAPLmrQ,EAAMl9P,OAAOjO,EAAG,GAUxB,OAAOmrQ,EApJKwvqB,CAAexo6B,EAAGib,EAAQ+s5B,QACtChvqB,SAAM3pQ,QAAQ,SAAUsyI,GACpB,IAAIpuH,EACJ,GAAKouH,EAEL,KAAInuH,EA0GZ,aAAuBmuH,GACnB,IAAIpuH,EAdR,aAAqBouH,GACjB,IAA0B,IAAtBA,EAAK9lI,QAAQ,KACb,MAAO,CACHnP,KAAM,QACNuJ,MAAO0rI,GAGf,IAAIpuH,EvBjEW,SAAUmV,EAAK+/4B,EAAKpI,GACnC,IAAIqI,EAAShg5B,EAAIntB,MuBgEI,KvB/DrB,OACMmt6B,EAAO/36B,MAAM,EuB8DO,GvB9DCua,OAAO,CAACw95B,EAAO/36B,MuB8DhB,GvB9D2Bg3B,KuB8DhC,OAAZpsB,CAAMomI,GACf,MAAO,CACHj1I,KAFiC6mB,EAAG,GAGpCtd,MAHgDsd,EAAG,IAO9Co15B,CAAYhnyB,GAAuB1rI,EAAQsd,EAAGtd,MACnD2y6B,EAD+Br15B,EAAG7mB,KACrB6O,MAAM,KACvB,IAAKqt6B,EACD,MAAM,IAAIh66B,MAAM,uBACpB,MAAO,CACHlC,KAAMk86B,EAAM,GAAGz5rB,cACfy5rB,MAAOA,EAAMj46B,MAAM,GACnBsF,MAAOA,GAlHE4y6B,CAAclnyB,GAAOj1I,EAAO8mB,EAAG9mB,KAAMk86B,GAAQp15B,EAAGo15B,MAAO3y6B,GAAQud,EAAGvd,MAC3E,OAAQvJ,EAAKyiP,mBACJ,QACD,GAAIy5rB,GAAM966B,OACN,MAAM,IAAIc,MAAM,2BAA2Bsc,OAAO095B,GAAMjh5B,KAAK,OAEjEwg5B,EAAUz16B,KAAK+06B,GAAY9lyB,IAC3B,UACC,QACD,IAA4FmnyB,IAAjC,QAAjDv15B,EAAK,4BAA4B49C,KAAKwwE,UAA0B,IAAPpuH,EAAgBA,EAAK,IAAmB,GACvGu15B,KAAc9I,IACdA,EAAO8I,IAEXV,EAAYA,EAAUl95B,OAAO695B,IAAW9y6B,GAAO2y6B,KAC/C,UACC,SACD,GAAIA,GAAM966B,OACN,MAAM,IAAIc,MAAM,4BAA4Bsc,OAAO095B,GAAMjh5B,KAAK,OAElE0g5B,EAAW316B,KAAK+06B,GAAYxx6B,KAC5B,UACC,SACDqy6B,EAAaA,EAAWp95B,OAAO695B,IAAW9y6B,GAAO2y6B,KACjD,UACC,UACD,cAEA,MAAM,IAAIh66B,MAAM,yBAA2BlC,OAGhD,CACHuz6B,QAASA,EACTD,KAAMA,EACNmI,UAAWA,EACXC,UAAWA,EACXC,WAAYA,EACZC,WAAYA,GAIPU,CAAWhp6B,EAAGib,GAAUkt5B,EAAY505B,EAAG405B,UAAWC,EAAY705B,EAAG605B,UAAWC,EAAa905B,EAAG805B,WAAYC,EAAa/05B,EAAG+05B,WAAYrI,EAAU1s5B,EAAG0s5B,QAASD,EAAOzs5B,EAAGys5B,KACzKmH,GAA4B,IAAlBls5B,EAAQ6hE,MAKtB,GAJI7hE,EAAQit5B,aACRjt5B,EAAQgt5B,UAAW,EACnBht5B,EAAQ+s5B,QAAS,GAEjB/s5B,EAAQgt5B,UACRE,EAAUr66B,OAAS,GACnBs66B,EAAUt66B,QACVu66B,EAAWv66B,QACXw66B,EAAWx66B,OAAQ,CACnB,IAAIm76B,EAAS,IAAIC,IAAS/B,GAC1B8B,SAAOhJ,QAAQA,GACfgJ,EAAOjJ,KAAKA,QAAQ/g6B,GACpBkp6B,EAAU946B,QAAQ,SAAUy1B,GACxBmk5B,EAAOxO,MAAM,IAAIiB,GAAMyN,GAAkBrk5B,EAAKm74B,EAASD,GAAOmH,MAElEiB,EAAU/46B,QAAQ,SAAU8xG,GACxB8n0B,EAAOG,MAAMjo0B,KAEjBkn0B,EAAWh56B,QAAQ,SAAUy1B,GACzBmk5B,EAAOI,OAAO,IAAI3N,GAAMyN,GAAkBrk5B,EAAKm74B,EAASD,GAAOmH,MAEnEmB,EAAWj56B,QAAQ,SAAU8xG,GACzB8n0B,EAAOK,OAAOno0B,KAEdlmF,EAAQit5B,YAAcjt5B,EAAQgl5B,SAC9BgJ,EAAOG,MAAMnJ,GACVgJ,EAEX,IAAInk5B,EAAMqj5B,EAAU,IAAM,GAC1B,OAAO,IAAIzM,GAAMyN,GAAkBrk5B,EAAKA,EAAIm74B,SAAWhl5B,EAAQgl5B,SAAWA,EAASn74B,EAAIk74B,MAAQ/k5B,EAAQ+k5B,MAAQA,GAAOmH,GAI/GoC,CAAUvp6B,EAKrB,aAA2Bib,GACvB,IAAIzJ,EAAU,GACVpP,EAAO1M,OAAO0M,KAAK6Y,GACnB0k5B,EAAcjq6B,OAAO0M,KAAK++5B,KAK9B,GAJA/+5B,EAAK/S,QAAQ,SAAUmM,GACdqV,GAAS8u5B,EAAank6B,IACvBgW,EAAQ9e,KAAK8I,KAEjBgW,EAAQ1jB,OACR,MAAM,IAAIc,MAAM,oBAAsB4iB,EAAQmW,KAAK,OAEvD,SAAOi44B,QAASA,SAAS,GAAIuB,KAAkBlm5B,GAhB3Bms5B,CAAkBns5B,IAE1C,YAA2B6J,EAAKm74B,EAASD,GACrC,SAAOJ,QAASA,SAAS,GAAI964B,GAAM,CAAEm74B,QAASA,EAASD,KAAMA,IA0EjE,aAAoBwJ,EAAUZ,GAC1Ba,OARJ,aAA0Bb,GACtBA,EAAMv56B,QAAQ,SAAUq66B,GACpB,IAAK,+BAA+B365B,KAAK265B,GACrC,MAAM,IAAI966B,MAAM,kCAAoC866B,KAK5DD,CAAiBb,GACVY,EAASju6B,MAAM,KAAKwO,IAAI,SAAU625B,GAAW,OAAO/I,GAAkB+I,KClLjF,aAA4Bxn1B,GACxB,IAAI2H,EAAQ13F,KACZ,OAAO,SAAUgxD,GAIb,QAHcp7C,IAAVo7C,IACA0mC,EAAM,IAAI71E,OAAOkuE,IAAc/+B,QAEEp7C,IAAjC8hF,EAAM,IAAI71E,OAAOkuE,IACjB,OAAO2H,EAAM,IAAI71E,OAAOkuE,IAE5B,QAASvrF,EAAI,EAAGA,EAAIkzF,EAAM4o1B,OAAO776B,OAAQD,IAAK,CAC1C,IAAI+76B,EAAU7o1B,EAAM4o1B,OAAO976B,GAAGgt6B,YAAYzh1B,GAC1C,GAAIww1B,EACA,OAAOA,IAKvB,IAAIV,IAA0B,SAAUzQ,GAQpC,WAAkB0O,QACE,IAAZA,IAAsBA,GAAU,GACpC,IAAIpm1B,EAAQ030B,EAAOh14B,KAAKp6B,KAAM,GAAI896B,IAAY996B,KAC9C03F,SAAMk/0B,QAAU4J,IAAmB9k5B,MAAMg8D,EAAO,CAAC,YACjDA,EAAMi/0B,KAAO6J,IAAmB9k5B,MAAMg8D,EAAO,CAAC,SAC9CA,EAAM4o1B,OAAS,GACf5o1B,EAAM+o1B,OAAS,GACf/o1B,EAAMgp1B,QAAU,GAChBhp1B,EAAMip1B,QAAU,GACTjp1B,EAEXmo1B,OAlBAxQ,SAAUwQ,EAAUzQ,GAkBpByQ,EAAS1l5B,UAAUkk5B,MAAQ,SAAU3F,GACjC,OCzCD,aAAiBA,EAAY4H,EAAQI,EAASD,EAAQE,EAAShK,GAClE,IAAIiK,EAAc,GACdx91B,EAAUs11B,EAAWrgN,OACzB,WAAoBvplB,EAAOipb,GACvB2oX,EAAQ166B,QAAQ,SAAUor6B,IACtBA,GAAM18R,QAAQ5lgB,EAAOipb,GAAQ,GAAM/xjB,QAAQ,SAAU8xG,IACjD8o0B,EAAYrn3B,OAAOu+C,MAAS,MAIxC6o0B,EAAQ366B,QAAQ,SAAU8xG,GACtB,IAAI+o0B,EAAY,IAAIxJ,GAAav/zB,EAAM6+zB,GAAMc,cAC7CmJ,EAAYrn3B,OAAOsn3B,KAAc,IAErCnI,EAAWrgN,OAAS,SAAUvgnB,GAC1B,IAAIk3zB,EAAKz12B,OAAOu+C,GAChB,OAAI7oC,MAAM+/1B,GACC5r1B,EAAQhpD,KAAKp6B,KAAM83G,MACzB8o0B,EAAY5R,KACb8R,EAAW,IAAI9y3B,KAAKgh3B,EAAK,GAAI,IAAIhh3B,KAAKgh3B,EAAK,KACtC4R,EAAY5R,OACb4R,EAAY5R,IAAM,EACX5r1B,EAAQhpD,KAAKp6B,KAAM83G,KAKZ,YAAtB4g0B,EAAWrz1B,SACXy71B,EAAWpI,EAAW//5B,KAAKm2H,MAAO4pyB,EAAW//5B,KAAKo/iB,QAClD2gX,EAAWrgN,OAAS,SAAUvgnB,GAC1B,IAAIk3zB,EAAKz12B,OAAOu+C,GAChB,QAAK8o0B,EAAY5R,KACb4R,EAAY5R,IAAM,EACX5r1B,EAAQhpD,KAAKp6B,KAAM83G,MAKtC,QAAStzG,EAAI,EAAGA,EAAIi86B,EAAOh86B,OAAQD,IAAK,CACpC,IAAIq86B,EAAY,IAAIxJ,GAAaoJ,EAAOj86B,GAAImy6B,GAAMc,cAClD,IAAKiB,EAAWrgN,OAAO,IAAIrqqB,KAAK6y3B,EAAUhw3B,YACtC,MAERyv3B,EAAOt66B,QAAQ,SAAUor6B,GACrBkN,IAAK5F,EAAYtH,EAAMx/4B,WAE3B,IAAIzR,EAAMu45B,EAAW5J,QAErB,OADAxz4B,GAAKnb,GACGu45B,EAAWrz1B,YACV,UACA,UACD,OAAOllE,MACN,SACD,OAASA,EAAI1b,QAAU0b,EAAIA,EAAI1b,OAAS,IAAO,KAC9C,QAED,OAAS0b,EAAI1b,QAAU0b,EAAI,IAAO,MDf/B4g6B,CAAQrI,EAAY146B,KAAKsg7B,OAAQtg7B,KAAK0g7B,QAAS1g7B,KAAKyg7B,OAAQzg7B,KAAK2g7B,QAAS3g7B,KAAK226B,SAO1FkJ,EAAS1l5B,UAAUi34B,MAAQ,SAAUA,GACjC4P,IAAS5P,EAAOpx6B,KAAKsg7B,SAOzBT,EAAS1l5B,UAAU6l5B,OAAS,SAAU5O,GAClC4P,IAAS5P,EAAOpx6B,KAAK0g7B,UAOzBb,EAAS1l5B,UAAU4l5B,MAAQ,SAAUjo0B,GACjCmp0B,IAASnp0B,EAAM93G,KAAKyg7B,SAOxBZ,EAAS1l5B,UAAU8l5B,OAAS,SAAUno0B,GAClCmp0B,IAASnp0B,EAAM93G,KAAK2g7B,UAOxBd,EAAS1l5B,UAAU+m5B,OAAS,WACxB,OAAOlh7B,KAAKsg7B,OAAO5/5B,IAAI,SAAU1K,GAAK,OAAOmr6B,IAASnr6B,EAAEwB,eAO5Dqo6B,EAAS1l5B,UAAUin5B,QAAU,WACzB,OAAOph7B,KAAK0g7B,QAAQhg6B,IAAI,SAAU1K,GAAK,OAAOmr6B,IAASnr6B,EAAEwB,eAO7Dqo6B,EAAS1l5B,UAAUkn5B,OAAS,WACxB,OAAOrh7B,KAAKyg7B,OAAO//5B,IAAI,SAAU1K,GAAK,OAAO,IAAIg4C,KAAKh4C,EAAE66C,cAO5Dgv3B,EAAS1l5B,UAAUmn5B,QAAU,WACzB,OAAOth7B,KAAK2g7B,QAAQjg6B,IAAI,SAAU1K,GAAK,OAAO,IAAIg4C,KAAKh4C,EAAE66C,cAE7Dgv3B,EAAS1l5B,UAAUg0B,QAAU,WACzB,IAAIz7C,EAAS,GACb,OAAK1S,KAAKsg7B,OAAO776B,QAAUzE,KAAKuh7B,WAC5B7u6B,EAASA,EAAOmP,OAAO085B,GAAgB,CAAE3H,QAAS526B,KAAKuh7B,aAE3Dvh7B,KAAKsg7B,OAAOt66B,QAAQ,SAAUor6B,GAC1B1+5B,EAASA,EAAOmP,OAAOuv5B,EAAM555B,WAAWtF,MAAM,SAElDlS,KAAK0g7B,QAAQ166B,QAAQ,SAAUg66B,GAC3Btt6B,EAASA,EAAOmP,OAAOm+5B,EAClBxo6B,WACAtF,MAAM,MACNwO,IAAI,SAAU43H,GAAQ,OAAOA,EAAK1tI,QAAQ,UAAW,aACrDkc,OAAO,SAAUwxH,GAAQ,OAAQ,WAAW5yH,KAAK4yH,QAEtDt4I,KAAKyg7B,OAAOh86B,QACZiO,EAAOrJ,KAAKm46B,IAAe,QAASxh7B,KAAKyg7B,OAAQzg7B,KAAK226B,SAEtD326B,KAAK2g7B,QAAQl86B,QACbiO,EAAOrJ,KAAKm46B,IAAe,SAAUxh7B,KAAK2g7B,QAAS3g7B,KAAK226B,SAErDjk6B,GAQXmt6B,EAAS1l5B,UAAU3iB,SAAW,WAC1B,OAAOxX,KAAKmuD,UAAU7vB,KAAK,OAK/Buh5B,EAAS1l5B,UAAUkwD,MAAQ,WACvB,IAAIo31B,EAAM,IAAI5B,IAAW7/6B,KAAKy1H,QAC9B,YAAK6qzB,OAAOt66B,QAAQ,SAAUu/F,GAAQ,OAAOk80B,EAAIrQ,MAAM7r0B,EAAKlb,WAC5DrqF,KAAK0g7B,QAAQ166B,QAAQ,SAAUu/F,GAAQ,OAAOk80B,EAAIzB,OAAOz60B,EAAKlb,WAC9DrqF,KAAKyg7B,OAAOz66B,QAAQ,SAAU8xG,GAAQ,OAAO2p0B,EAAI1B,MAAM,IAAI/x3B,KAAK8pD,EAAKjnD,cACrE7wD,KAAK2g7B,QAAQ366B,QAAQ,SAAU8xG,GAAQ,OAAO2p0B,EAAIxB,OAAO,IAAIjy3B,KAAK8pD,EAAKjnD,cAChE4w3B,GAEJ5B,EAjImB,CAkI5BxN,IAEF,aAAkBjB,EAAO50mB,GACrB,KAAM40mB,aAAiBiB,IACnB,MAAM,IAAIpo3B,UAAUp3C,OAAOu+5B,GAAS,0BAEnC5p5B,GAASg1S,EAAW97S,IAAI7N,QAASA,OAAOu+5B,KACzC50mB,EAAWnzT,KAAK+n6B,GAGxB,aAAkBt5zB,EAAM0kN,GACpB,KAAM1kN,aAAgB9pD,MAClB,MAAM,IAAI/D,UAAUp3C,OAAOilG,GAAQ,yBAElCtwF,GAASg1S,EAAW97S,IAAI64C,QAASA,OAAOu+C,MACzC0kN,EAAWnzT,KAAKyuG,GAChBx8E,GAAKkhS,IAGb,aAAwBk7D,EAAO2pjB,EAAQ1K,GACnC,IAAIa,GAASb,GAA+B,QAAvBA,EAAK7wrB,cACtBtb,EAASgtsB,EAAQ,GAAG315B,OAAO61W,EAAO,KAAO,GAAG71W,OAAO61W,EAAO,UAAU71W,OAAO805B,EAAM,KACjFt9kB,EAAagolB,EACZ3g6B,IAAI,SAAUq/5B,GAAS,OAAO1R,GAAkB0R,EAAM5x3B,UAAWqp3B,KACjEl54B,KAAK,KACV,MAAO,GAAGzc,OAAO2oN,GAAQ3oN,OAAOw3U,GE3KpC,IAIWqolB,cAJM,CAAC5p0B,EAAM4tO,KACpB,IAAIi8lB,EAAYj8lB,EAAQnyT,OAAO,CAAC7gB,EAAQy3D,IAAWz3D,EAASy3D,EAAQ2tC,EAAKjnD,WACzE,OAAO,IAAI7C,KAAK2z3B,ICDhBC,IAAOjmpB,sBACX,UACI97R,YAAYgd,GACR7c,KAAK6h7B,QAAU,IAAI7z3B,KAAKnxC,EAAOg0C,QAAUh0C,EAAOg0C,UAAYh0C,GAE5DA,aACA,OAAO7c,KAAK6h7B,QAEhBnv6B,SACI,OAAO1S,KAAK6h7B,QAEhBnmpB,oBACI,IAAIv7L,EAASpgG,UAAU0E,OAAS,QAAK,IAAW1E,UAAU,GAAKA,UAAU,QAAK,EAC1E6M,EAAQ5M,KAAK6h7B,QAAQnmpB,oBACzB,MAAI,aACO9uR,EAAQg16B,IAAK,UAEjBh16B,EAEXikD,UACI,OAAO7wD,KAAK6h7B,QAAQhx3B,UAExB2pO,QAAQ5tR,GACJ,YAAKi16B,QAAQrnpB,QAAQ5tR,GACd5M,KAEX8h7B,QAAQl16B,GACJ,YAAKi16B,QAAQrnpB,QAAQx6R,KAAK6h7B,QAAQhx3B,UAAYjkD,GACvC5M,KAEX6/R,WAAWjzR,GACP,YAAKi16B,QAAQhipB,WAAWjzR,GACjB5M,KAEX816B,WAAWlp6B,GACP,YAAKi16B,QAAQhipB,WAAW7/R,KAAK6h7B,QAAQzlpB,aAAexvR,GAC7C5M,KAEX+h7B,gBAAgBn16B,GACZ,YAAKi16B,QAAQhipB,WAAW7/R,KAAK6h7B,QAAQzlpB,aAAexvR,GAC7C5M,MCnCf,IAMIgi7B,IAAgBC,IAChB,IAYIrp5B,GAXA8sT,QAASA,GACTu8lB,GAEAC,cAAeA,GACfD,GAEAE,OAAQA,GACRF,EACAG,EAAa18lB,EAAQxzU,MAAM,KAAKwO,IAAI9T,GAASmG,SAASnG,IACtDy16B,EAAkBH,EAAchw6B,MAAM,IAAIwO,IAAI9T,GAASmG,SAASnG,IAChE016B,EAlBiB116B,IAASA,EAAMsF,MAAM,KAAKwO,IAAI+t5B,GAC/C,eACO,KAEJ,IAAM175B,SAAS075B,EAAO,KAcd8T,CAAmBJ,GAAQzh6B,KAAKkY,EAAc,EAAGhsB,GAASgsB,GAAehsB,IAExF,MAAO,CACHw16B,WAAYA,EACZC,gBAAiBA,EACjBC,SAAUA,IAmBdE,GAAU,IAhBd,UACI3i7B,cACIG,KAAK0gB,IAAM,IAAIxZ,IAEnBu76B,OAAO526B,GACH,IAAK7L,KAAK0gB,IAAI1c,IAAI6H,GAAK,CACnB,IAAIkY,EAAS2+5B,IAAkBC,gBAAgB926B,GAC/C,IAAKkY,EACD,OAAO,EAEX,IAAI6+5B,EAAeZ,IAAcj+5B,GACjC/jB,KAAK0gB,IAAI1Y,IAAI6D,EAAI+26B,GAErB,OAAO5i7B,KAAK0gB,IAAI1c,IAAI6H,KAIxB626B,IAAoB,CACpBG,SAAUL,GACVM,WClDO,CAAC,CACJj36B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,wSACRz8lB,QAAS,eACTw8lB,cAAe,oDAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,0NACRz8lB,QAAS,mBACTw8lB,cAAe,sCAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,0BACRz8lB,QAAS,eACTw8lB,cAAe,OAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mwBACRz8lB,QAAS,YACTw8lB,cAAe,mIAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,wkBACRz8lB,QAAS,gBACTw8lB,cAAe,mGAChB,CACCr26B,GAAI,eACJs26B,OAAQ,gwBACRz8lB,QAAS,aACTw8lB,cAAe,kIAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ggBACRz8lB,QAAS,gBACTw8lB,cAAe,wFAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,4CACRz8lB,QAAS,gBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,cACJs26B,OAAQ,2NACRz8lB,QAAS,sBACTw8lB,cAAe,uCAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,kOACRz8lB,QAAS,sBACTw8lB,cAAe,wCAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,4CACRz8lB,QAAS,gBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,4CACRz8lB,QAAS,gBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,0BACRz8lB,QAAS,iBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,gCACRz8lB,QAAS,iBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,iCACRz8lB,QAAS,cACTw8lB,cAAe,QAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,kNACRz8lB,QAAS,oBACTw8lB,cAAe,qCAChB,CACCr26B,GAAI,eACJs26B,OAAQ,qNACRz8lB,QAAS,iBACTw8lB,cAAe,sCAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,wUACRz8lB,QAAS,oBACTw8lB,cAAe,yDAChB,CACCr26B,GAAI,eACJs26B,OAAQ,02BACRz8lB,QAAS,cACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,02BACRz8lB,QAAS,cACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,qUACRz8lB,QAAS,gBACTw8lB,cAAe,wDAChB,CACCr26B,GAAI,iCACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,8BACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,mCACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,0BACJs26B,OAAQ,mWACRz8lB,QAAS,oBACTw8lB,cAAe,6DAChB,CACCr26B,GAAI,6BACJs26B,OAAQ,qXACRz8lB,QAAS,oBACTw8lB,cAAe,gEAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,gXACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,iCACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,0BACJs26B,OAAQ,mWACRz8lB,QAAS,oBACTw8lB,cAAe,6DAChB,CACCr26B,GAAI,6BACJs26B,OAAQ,sXACRz8lB,QAAS,oBACTw8lB,cAAe,gEAChB,CACCr26B,GAAI,6BACJs26B,OAAQ,sXACRz8lB,QAAS,oBACTw8lB,cAAe,gEAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,2XACRz8lB,QAAS,oBACTw8lB,cAAe,iEAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,gXACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,8wBACRz8lB,QAAS,mBACTw8lB,cAAe,qIAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mDACRz8lB,QAAS,UACTw8lB,cAAe,WAChB,CACCr26B,GAAI,eACJs26B,OAAQ,02BACRz8lB,QAAS,cACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,yBACJs26B,OAAQ,ikBACRz8lB,QAAS,sBACTw8lB,cAAe,kGAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,gYACRz8lB,QAAS,mBACTw8lB,cAAe,kEAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,2EACRz8lB,QAAS,mBACTw8lB,cAAe,eAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,+LACRz8lB,QAAS,mBACTw8lB,cAAe,kCAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,0VACRz8lB,QAAS,oBACTw8lB,cAAe,4DAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,6CACRz8lB,QAAS,UACTw8lB,cAAe,UAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,uNACRz8lB,QAAS,mBACTw8lB,cAAe,sCAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,iCACRz8lB,QAAS,mBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,q5BACRz8lB,QAAS,cACTw8lB,cAAe,2JAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,kvBACRz8lB,QAAS,gBACTw8lB,cAAe,gIAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,mjBACRz8lB,QAAS,mBACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,2QACRz8lB,QAAS,uBACTw8lB,cAAe,+CAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,wCACRz8lB,QAAS,mBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,g5CACRz8lB,QAAS,UACTw8lB,cAAe,gPAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,4iBACRz8lB,QAAS,uBACTw8lB,cAAe,+FAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,mDACRz8lB,QAAS,UACTw8lB,cAAe,WAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,qEACRz8lB,QAAS,mBACTw8lB,cAAe,cAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,yBACRz8lB,QAAS,UACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,uiBACRz8lB,QAAS,mBACTw8lB,cAAe,8FAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,0NACRz8lB,QAAS,oBACTw8lB,cAAe,uCAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,qWACRz8lB,QAAS,UACTw8lB,cAAe,8DAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,ojBACRz8lB,QAAS,cACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,87BACRz8lB,QAAS,UACTw8lB,cAAe,kKAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,i2BACRz8lB,QAAS,uBACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,q5BACRz8lB,QAAS,mBACTw8lB,cAAe,2JAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,0NACRz8lB,QAAS,mBACTw8lB,cAAe,sCAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,4CACRz8lB,QAAS,gBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,m5BACRz8lB,QAAS,mBACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,m2BACRz8lB,QAAS,UACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,8lBACRz8lB,QAAS,cACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,2PACRz8lB,QAAS,cACTw8lB,cAAe,4CAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,01BACRz8lB,QAAS,gBACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,4sBACRz8lB,QAAS,mBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,itCACRz8lB,QAAS,wCACTw8lB,cAAe,gNAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,isBACRz8lB,QAAS,mBACTw8lB,cAAe,wHAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,uEACRz8lB,QAAS,mBACTw8lB,cAAe,cAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,gCACRz8lB,QAAS,cACTw8lB,cAAe,QAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,iCACRz8lB,QAAS,uBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,w2CACRz8lB,QAAS,gBACTw8lB,cAAe,yOAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,o7BACRz8lB,QAAS,gBACTw8lB,cAAe,gKAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,6GACRz8lB,QAAS,uBACTw8lB,cAAe,oBAChB,CACCr26B,GAAI,+BACJs26B,OAAQ,8lBACRz8lB,QAAS,cACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,u6BACRz8lB,QAAS,UACTw8lB,cAAe,8JAChB,CACCr26B,GAAI,0BACJs26B,OAAQ,unBACRz8lB,QAAS,cACTw8lB,cAAe,2GAChB,CACCr26B,GAAI,6BACJs26B,OAAQ,msBACRz8lB,QAAS,cACTw8lB,cAAe,wHAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,wlBACRz8lB,QAAS,cACTw8lB,cAAe,sGAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,kfACRz8lB,QAAS,cACTw8lB,cAAe,qFAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,0mBACRz8lB,QAAS,cACTw8lB,cAAe,yGAChB,CACCr26B,GAAI,0BACJs26B,OAAQ,6oBACRz8lB,QAAS,cACTw8lB,cAAe,+GAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,8lBACRz8lB,QAAS,cACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,+tBACRz8lB,QAAS,gBACTw8lB,cAAe,6HAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,suBACRz8lB,QAAS,oBACTw8lB,cAAe,8HAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,4IACRz8lB,QAAS,mBACTw8lB,cAAe,0BAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mWACRz8lB,QAAS,oBACTw8lB,cAAe,6DAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,m2BACRz8lB,QAAS,cACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,8BACJs26B,OAAQ,ujCACRz8lB,QAAS,cACTw8lB,cAAe,sLAChB,CACCr26B,GAAI,8BACJs26B,OAAQ,k4BACRz8lB,QAAS,cACTw8lB,cAAe,wJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,u6BACRz8lB,QAAS,UACTw8lB,cAAe,8JAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,yBACRz8lB,QAAS,kBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,eACJs26B,OAAQ,2GACRz8lB,QAAS,gBACTw8lB,cAAe,oBAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,smCACRz8lB,QAAS,UACTw8lB,cAAe,8LAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,ujCACRz8lB,QAAS,cACTw8lB,cAAe,sLAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,wQACRz8lB,QAAS,mBACTw8lB,cAAe,8CAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,4GACRz8lB,QAAS,gBACTw8lB,cAAe,oBAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,4MACRz8lB,QAAS,mBACTw8lB,cAAe,oCAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,gCACRz8lB,QAAS,mBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,yhBACRz8lB,QAAS,cACTw8lB,cAAe,4FAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ikBACRz8lB,QAAS,uBACTw8lB,cAAe,kGAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,gXACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,s2BACRz8lB,QAAS,UACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,yhBACRz8lB,QAAS,mBACTw8lB,cAAe,4FAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,0eACRz8lB,QAAS,cACTw8lB,cAAe,oFAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,+lBACRz8lB,QAAS,oBACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,+nBACRz8lB,QAAS,uBACTw8lB,cAAe,6GAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ouCACRz8lB,QAAS,cACTw8lB,cAAe,mNAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,qWACRz8lB,QAAS,mBACTw8lB,cAAe,8DAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,yhBACRz8lB,QAAS,gCACTw8lB,cAAe,2FAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,83CACRz8lB,QAAS,UACTw8lB,cAAe,6OAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,44BACRz8lB,QAAS,gBACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,g5CACRz8lB,QAAS,UACTw8lB,cAAe,gPAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ozBACRz8lB,QAAS,UACTw8lB,cAAe,2IAChB,CACCr26B,GAAI,eACJs26B,OAAQ,02BACRz8lB,QAAS,kBACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,2PACRz8lB,QAAS,kBACTw8lB,cAAe,4CAChB,CACCr26B,GAAI,8BACJs26B,OAAQ,84BACRz8lB,QAAS,cACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,8BACJs26B,OAAQ,84BACRz8lB,QAAS,cACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,iCACJs26B,OAAQ,84BACRz8lB,QAAS,cACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,eACJs26B,OAAQ,4sBACRz8lB,QAAS,mBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,4iBACRz8lB,QAAS,uBACTw8lB,cAAe,+FAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,6uBACRz8lB,QAAS,wBACTw8lB,cAAe,+HAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,wCACRz8lB,QAAS,kCACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,2EACRz8lB,QAAS,UACTw8lB,cAAe,eAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,yBACJs26B,OAAQ,8gBACRz8lB,QAAS,cACTw8lB,cAAe,0FAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,6MACRz8lB,QAAS,gBACTw8lB,cAAe,oCAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,+LACRz8lB,QAAS,gBACTw8lB,cAAe,kCAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,gCACRz8lB,QAAS,UACTw8lB,cAAe,QAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,+rBACRz8lB,QAAS,uBACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,ozBACRz8lB,QAAS,UACTw8lB,cAAe,2IAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,ytBACRz8lB,QAAS,gBACTw8lB,cAAe,4HAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,2PACRz8lB,QAAS,gBACTw8lB,cAAe,4CAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,+UACRz8lB,QAAS,gBACTw8lB,cAAe,0DAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ytBACRz8lB,QAAS,gBACTw8lB,cAAe,4HAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,6MACRz8lB,QAAS,gBACTw8lB,cAAe,oCAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,+WACRz8lB,QAAS,oBACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,m5BACRz8lB,QAAS,mBACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,sMACRz8lB,QAAS,gBACTw8lB,cAAe,mCAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,u8BACRz8lB,QAAS,uBACTw8lB,cAAe,mKAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,gHACRz8lB,QAAS,kBACTw8lB,cAAe,qBAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mjBACRz8lB,QAAS,mBACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,4sBACRz8lB,QAAS,mBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,87BACRz8lB,QAAS,UACTw8lB,cAAe,kKAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,m2BACRz8lB,QAAS,cACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,k6CACRz8lB,QAAS,+BACTw8lB,cAAe,mPAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,4JACRz8lB,QAAS,mBACTw8lB,cAAe,4BAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,yDACRz8lB,QAAS,mBACTw8lB,cAAe,YAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,ykBACRz8lB,QAAS,mBACTw8lB,cAAe,oGAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,40BACRz8lB,QAAS,cACTw8lB,cAAe,+IAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,m5BACRz8lB,QAAS,mBACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,83CACRz8lB,QAAS,UACTw8lB,cAAe,6OAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,6nCACRz8lB,QAAS,UACTw8lB,cAAe,kMAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mjBACRz8lB,QAAS,cACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,wmCACRz8lB,QAAS,UACTw8lB,cAAe,8LAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,m2BACRz8lB,QAAS,UACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,6uBACRz8lB,QAAS,gBACTw8lB,cAAe,+HAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,wDACRz8lB,QAAS,cACTw8lB,cAAe,YAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,0DACRz8lB,QAAS,cACTw8lB,cAAe,YAChB,CACCr26B,GAAI,4BACJs26B,OAAQ,iCACRz8lB,QAAS,SACTw8lB,cAAe,QAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,4iBACRz8lB,QAAS,cACTw8lB,cAAe,+FAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,0BACRz8lB,QAAS,cACTw8lB,cAAe,OAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,06BACRz8lB,QAAS,sBACTw8lB,cAAe,+JAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,qfACRz8lB,QAAS,gBACTw8lB,cAAe,sFAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,kBACRz8lB,QAAS,QACTw8lB,cAAe,MAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,06BACRz8lB,QAAS,sBACTw8lB,cAAe,+JAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,SACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,8ZACRz8lB,QAAS,SACTw8lB,cAAe,wEAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,SACTw8lB,cAAe,MAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,y1BACRz8lB,QAAS,WACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,YACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,cACJs26B,OAAQ,2TACRz8lB,QAAS,wBACTw8lB,cAAe,uDAChB,CACCr26B,GAAI,aACJs26B,OAAQ,6sBACRz8lB,QAAS,sBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,cACJs26B,OAAQ,6XACRz8lB,QAAS,gCACTw8lB,cAAe,kEAChB,CACCr26B,GAAI,aACJs26B,OAAQ,ySACRz8lB,QAAS,2BACTw8lB,cAAe,oDAChB,CACCr26B,GAAI,cACJs26B,OAAQ,+SACRz8lB,QAAS,2BACTw8lB,cAAe,qDAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,+JACRz8lB,QAAS,2BACTw8lB,cAAe,6BAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,+JACRz8lB,QAAS,2BACTw8lB,cAAe,6BAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mSACRz8lB,QAAS,gCACTw8lB,cAAe,mDAChB,CACCr26B,GAAI,eACJs26B,OAAQ,4UACRz8lB,QAAS,mBACTw8lB,cAAe,0DAChB,CACCr26B,GAAI,eACJs26B,OAAQ,0BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,YACJs26B,OAAQ,gZACRz8lB,QAAS,wBACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,4ZACRz8lB,QAAS,sBACTw8lB,cAAe,uEAChB,CACCr26B,GAAI,cACJs26B,OAAQ,w1BACRz8lB,QAAS,YACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,eACJs26B,OAAQ,2TACRz8lB,QAAS,wBACTw8lB,cAAe,uDAChB,CACCr26B,GAAI,cACJs26B,OAAQ,0BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,6CACRz8lB,QAAS,sBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,aACJs26B,OAAQ,sZACRz8lB,QAAS,2BACTw8lB,cAAe,sEAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,oUACRz8lB,QAAS,2BACTw8lB,cAAe,wDAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,wLACRz8lB,QAAS,YACTw8lB,cAAe,iCAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,wLACRz8lB,QAAS,YACTw8lB,cAAe,iCAChB,CACCr26B,GAAI,eACJs26B,OAAQ,2DACRz8lB,QAAS,2BACTw8lB,cAAe,YAChB,CACCr26B,GAAI,aACJs26B,OAAQ,mDACRz8lB,QAAS,gCACTw8lB,cAAe,WAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,y5BACRz8lB,QAAS,mBACTw8lB,cAAe,4JAChB,CACCr26B,GAAI,aACJs26B,OAAQ,mDACRz8lB,QAAS,gCACTw8lB,cAAe,WAChB,CACCr26B,GAAI,YACJs26B,OAAQ,wCACRz8lB,QAAS,sBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,aACJs26B,OAAQ,mBACRz8lB,QAAS,cACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,yJACRz8lB,QAAS,wBACTw8lB,cAAe,4BAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,kwBACRz8lB,QAAS,mBACTw8lB,cAAe,mIAChB,CACCr26B,GAAI,YACJs26B,OAAQ,o4BACRz8lB,QAAS,YACTw8lB,cAAe,wJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,wLACRz8lB,QAAS,YACTw8lB,cAAe,iCAChB,CACCr26B,GAAI,cACJs26B,OAAQ,g5BACRz8lB,QAAS,YACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,yEACRz8lB,QAAS,kCACTw8lB,cAAe,cAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,8aACRz8lB,QAAS,wBACTw8lB,cAAe,0EAChB,CACCr26B,GAAI,YACJs26B,OAAQ,8TACRz8lB,QAAS,wBACTw8lB,cAAe,uDAChB,CACCr26B,GAAI,eACJs26B,OAAQ,gZACRz8lB,QAAS,2BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,gsBACRz8lB,QAAS,2BACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,eACJs26B,OAAQ,6DACRz8lB,QAAS,kCACTw8lB,cAAe,YAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,iCACRz8lB,QAAS,mBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,83BACRz8lB,QAAS,2BACTw8lB,cAAe,uJAChB,CACCr26B,GAAI,aACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mYACRz8lB,QAAS,wBACTw8lB,cAAe,mEAChB,CACCr26B,GAAI,eACJs26B,OAAQ,qFACRz8lB,QAAS,6BACTw8lB,cAAe,gBAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,0BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,0BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,4ZACRz8lB,QAAS,gCACTw8lB,cAAe,uEAChB,CACCr26B,GAAI,eACJs26B,OAAQ,6CACRz8lB,QAAS,sBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,gZACRz8lB,QAAS,2BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,qDACRz8lB,QAAS,qCACTw8lB,cAAe,WAChB,CACCr26B,GAAI,eACJs26B,OAAQ,4HACRz8lB,QAAS,gCACTw8lB,cAAe,uBAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,aACJs26B,OAAQ,0bACRz8lB,QAAS,2BACTw8lB,cAAe,4EAChB,CACCr26B,GAAI,aACJs26B,OAAQ,0bACRz8lB,QAAS,2BACTw8lB,cAAe,4EAChB,CACCr26B,GAAI,eACJs26B,OAAQ,sZACRz8lB,QAAS,wBACTw8lB,cAAe,sEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,wCACRz8lB,QAAS,mBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,cACJs26B,OAAQ,iEACRz8lB,QAAS,YACTw8lB,cAAe,aAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,cACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,wwBACRz8lB,QAAS,sBACTw8lB,cAAe,oIAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mYACRz8lB,QAAS,wBACTw8lB,cAAe,mEAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,4ZACRz8lB,QAAS,2BACTw8lB,cAAe,uEAChB,CACCr26B,GAAI,YACJs26B,OAAQ,gZACRz8lB,QAAS,wBACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,YACJs26B,OAAQ,mSACRz8lB,QAAS,6BACTw8lB,cAAe,mDAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,oEACRz8lB,QAAS,gCACTw8lB,cAAe,aAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,gDACRz8lB,QAAS,iBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,aACJs26B,OAAQ,0BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,ySACRz8lB,QAAS,2BACTw8lB,cAAe,oDAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,oSACRz8lB,QAAS,2BACTw8lB,cAAe,mDAChB,CACCr26B,GAAI,eACJs26B,OAAQ,iCACRz8lB,QAAS,sBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,cACJs26B,OAAQ,yEACRz8lB,QAAS,kCACTw8lB,cAAe,cAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,gZACRz8lB,QAAS,6BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mJACRz8lB,QAAS,2BACTw8lB,cAAe,2BAChB,CACCr26B,GAAI,aACJs26B,OAAQ,gMACRz8lB,QAAS,gCACTw8lB,cAAe,kCAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,wLACRz8lB,QAAS,YACTw8lB,cAAe,iCAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,qDACRz8lB,QAAS,qCACTw8lB,cAAe,WAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,gZACRz8lB,QAAS,2BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,cACJs26B,OAAQ,gQACRz8lB,QAAS,YACTw8lB,cAAe,6CAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,yJACRz8lB,QAAS,2BACTw8lB,cAAe,4BAChB,CACCr26B,GAAI,eACJs26B,OAAQ,+SACRz8lB,QAAS,2BACTw8lB,cAAe,qDAChB,CACCr26B,GAAI,cACJs26B,OAAQ,ymBACRz8lB,QAAS,gCACTw8lB,cAAe,yGAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,83BACRz8lB,QAAS,2BACTw8lB,cAAe,uJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,eACJs26B,OAAQ,0BACRz8lB,QAAS,mBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,aACJs26B,OAAQ,6DACRz8lB,QAAS,YACTw8lB,cAAe,aAChB,CACCr26B,GAAI,aACJs26B,OAAQ,4ZACRz8lB,QAAS,yBACTw8lB,cAAe,uEAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,wCACRz8lB,QAAS,mBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,8TACRz8lB,QAAS,2BACTw8lB,cAAe,uDAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8TACRz8lB,QAAS,2BACTw8lB,cAAe,uDAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,sZACRz8lB,QAAS,kCACTw8lB,cAAe,sEAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,gZACRz8lB,QAAS,2BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,eACJs26B,OAAQ,gZACRz8lB,QAAS,2BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,cACJs26B,OAAQ,iCACRz8lB,QAAS,sBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,uZACRz8lB,QAAS,mCACTw8lB,cAAe,sEAChB,CACCr26B,GAAI,eACJs26B,OAAQ,wXACRz8lB,QAAS,sBACTw8lB,cAAe,iEAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,wzCACRz8lB,QAAS,oBACTw8lB,cAAe,iOAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,oxBACRz8lB,QAAS,gBACTw8lB,cAAe,sIAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mtBACRz8lB,QAAS,gBACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,wCACRz8lB,QAAS,iBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,isBACRz8lB,QAAS,gBACTw8lB,cAAe,wHAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,isBACRz8lB,QAAS,gBACTw8lB,cAAe,wHAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,y1BACRz8lB,QAAS,WACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,wzCACRz8lB,QAAS,gBACTw8lB,cAAe,iOAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,uaACRz8lB,QAAS,UACTw8lB,cAAe,yEAChB,CACCr26B,GAAI,yBACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,uaACRz8lB,QAAS,oBACTw8lB,cAAe,yEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,gHACRz8lB,QAAS,YACTw8lB,cAAe,qBAChB,CACCr26B,GAAI,wBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,8DACRz8lB,QAAS,YACTw8lB,cAAe,aAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8HACRz8lB,QAAS,YACTw8lB,cAAe,uBAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,64BACRz8lB,QAAS,YACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,wrBACRz8lB,QAAS,sBACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,wIACRz8lB,QAAS,YACTw8lB,cAAe,yBAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,wrBACRz8lB,QAAS,sBACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8DACRz8lB,QAAS,YACTw8lB,cAAe,aAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8HACRz8lB,QAAS,YACTw8lB,cAAe,uBAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,gHACRz8lB,QAAS,YACTw8lB,cAAe,qBAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,64BACRz8lB,QAAS,YACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,8HACRz8lB,QAAS,YACTw8lB,cAAe,uBAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,61BACRz8lB,QAAS,YACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,6MACRz8lB,QAAS,gBACTw8lB,cAAe,oCAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,2PACRz8lB,QAAS,kBACTw8lB,cAAe,4CAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mjBACRz8lB,QAAS,mBACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,cACJs26B,OAAQ,4MACRz8lB,QAAS,mBACTw8lB,cAAe,oCAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,w2CACRz8lB,QAAS,gBACTw8lB,cAAe,yOAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,wmCACRz8lB,QAAS,UACTw8lB,cAAe,8LAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,83CACRz8lB,QAAS,UACTw8lB,cAAe,6OAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,q5BACRz8lB,QAAS,mBACTw8lB,cAAe,2JAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,k6CACRz8lB,QAAS,+BACTw8lB,cAAe,mPAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,6nCACRz8lB,QAAS,UACTw8lB,cAAe,kMAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,+UACRz8lB,QAAS,gBACTw8lB,cAAe,0DAChB,CACCr26B,GAAI,eACJs26B,OAAQ,mjBACRz8lB,QAAS,cACTw8lB,cAAe,gGAChB,CACCr26B,GAAI,MACJs26B,OAAQ,g0BACRz8lB,QAAS,WACTw8lB,cAAe,6IAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,u8BACRz8lB,QAAS,uBACTw8lB,cAAe,mKAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,o0BACRz8lB,QAAS,uBACTw8lB,cAAe,8IAChB,CACCr26B,GAAI,UACJs26B,OAAQ,84BACRz8lB,QAAS,UACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,OACJs26B,OAAQ,o7BACRz8lB,QAAS,gBACTw8lB,cAAe,gKAChB,CACCr26B,GAAI,MACJs26B,OAAQ,wuBACRz8lB,QAAS,YACTw8lB,cAAe,+HAChB,CACCr26B,GAAI,QACJs26B,OAAQ,mwBACRz8lB,QAAS,YACTw8lB,cAAe,mIAChB,CACCr26B,GAAI,OACJs26B,OAAQ,21CACRz8lB,QAAS,qBACTw8lB,cAAe,uOAChB,CACCr26B,GAAI,MACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,84BACRz8lB,QAAS,UACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,KACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,aACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,WACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,WACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ikCACRz8lB,QAAS,qCACTw8lB,cAAe,wLAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,gpBACRz8lB,QAAS,aACTw8lB,cAAe,gHAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,oYACRz8lB,QAAS,wBACTw8lB,cAAe,mEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,u0BACRz8lB,QAAS,yBACTw8lB,cAAe,8IAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,o2BACRz8lB,QAAS,gBACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,o2BACRz8lB,QAAS,aACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ylCACRz8lB,QAAS,aACTw8lB,cAAe,4LAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,wzBACRz8lB,QAAS,mBACTw8lB,cAAe,4IAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,o5BACRz8lB,QAAS,WACTw8lB,cAAe,2JAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,u1BACRz8lB,QAAS,iCACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,wyBACRz8lB,QAAS,WACTw8lB,cAAe,yIAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,21CACRz8lB,QAAS,qBACTw8lB,cAAe,uOAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,4qCACRz8lB,QAAS,aACTw8lB,cAAe,0MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,6sBACRz8lB,QAAS,qBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,gsBACRz8lB,QAAS,2BACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,yeACRz8lB,QAAS,qBACTw8lB,cAAe,oFAChB,CACCr26B,GAAI,cACJs26B,OAAQ,guBACRz8lB,QAAS,+BACTw8lB,cAAe,6HAChB,CACCr26B,GAAI,eACJs26B,OAAQ,8XACRz8lB,QAAS,wBACTw8lB,cAAe,kEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,8zCACRz8lB,QAAS,mBACTw8lB,cAAe,kOAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,0lCACRz8lB,QAAS,mBACTw8lB,cAAe,4LAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,w9BACRz8lB,QAAS,aACTw8lB,cAAe,sKAChB,CACCr26B,GAAI,eACJs26B,OAAQ,ggCACRz8lB,QAAS,WACTw8lB,cAAe,6KAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,6sBACRz8lB,QAAS,qBACTw8lB,cAAe,0HAChB,CACCr26B,GAAI,eACJs26B,OAAQ,kaACRz8lB,QAAS,0BACTw8lB,cAAe,wEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,+lCACRz8lB,QAAS,mBACTw8lB,cAAe,6LAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,8dACRz8lB,QAAS,8DACTw8lB,cAAe,kFAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,wwBACRz8lB,QAAS,sBACTw8lB,cAAe,oIAChB,CACCr26B,GAAI,cACJs26B,OAAQ,y1BACRz8lB,QAAS,WACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,eACJs26B,OAAQ,0lCACRz8lB,QAAS,mBACTw8lB,cAAe,4LAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,o2BACRz8lB,QAAS,aACTw8lB,cAAe,mJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,6vBACRz8lB,QAAS,wCACTw8lB,cAAe,kIAChB,CACCr26B,GAAI,cACJs26B,OAAQ,ggCACRz8lB,QAAS,WACTw8lB,cAAe,6KAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,uXACRz8lB,QAAS,2BACTw8lB,cAAe,iEAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,ggCACRz8lB,QAAS,WACTw8lB,cAAe,6KAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,qYACRz8lB,QAAS,wBACTw8lB,cAAe,mEAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,2cACRz8lB,QAAS,0BACTw8lB,cAAe,+EAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,eACJs26B,OAAQ,svBACRz8lB,QAAS,gBACTw8lB,cAAe,iIAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,4uBACRz8lB,QAAS,yBACTw8lB,cAAe,+HAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,6yBACRz8lB,QAAS,oBACTw8lB,cAAe,0IAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,u1BACRz8lB,QAAS,iCACTw8lB,cAAe,iJAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,gZACRz8lB,QAAS,6BACTw8lB,cAAe,qEAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,ytBACRz8lB,QAAS,qBACTw8lB,cAAe,4HAChB,CACCr26B,GAAI,eACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,ggCACRz8lB,QAAS,WACTw8lB,cAAe,6KAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,20BACRz8lB,QAAS,WACTw8lB,cAAe,+IAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,2tBACRz8lB,QAAS,+BACTw8lB,cAAe,4HAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,qYACRz8lB,QAAS,2BACTw8lB,cAAe,mEAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,0+BACRz8lB,QAAS,oBACTw8lB,cAAe,yKAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,suBACRz8lB,QAAS,0BACTw8lB,cAAe,8HAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,ktBACRz8lB,QAAS,WACTw8lB,cAAe,2HAChB,CACCr26B,GAAI,UACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,KACJs26B,OAAQ,86CACRz8lB,QAAS,aACTw8lB,cAAe,qPAChB,CACCr26B,GAAI,QACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,MACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,QACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,OACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,WACJs26B,OAAQ,8aACRz8lB,QAAS,wBACTw8lB,cAAe,0EAChB,CACCr26B,GAAI,MACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,uaACRz8lB,QAAS,UACTw8lB,cAAe,yEAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,2BACRz8lB,QAAS,sBACTw8lB,cAAe,OAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,eACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mBACRz8lB,QAAS,SACTw8lB,cAAe,MAChB,CACCr26B,GAAI,cACJs26B,OAAQ,mBACRz8lB,QAAS,cACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,8CACRz8lB,QAAS,iBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,uCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,iBACTw8lB,cAAe,MAChB,CACCr26B,GAAI,OACJs26B,OAAQ,ymBACRz8lB,QAAS,gCACTw8lB,cAAe,yGAChB,CACCr26B,GAAI,SACJs26B,OAAQ,83BACRz8lB,QAAS,2BACTw8lB,cAAe,uJAChB,CACCr26B,GAAI,UACJs26B,OAAQ,4IACRz8lB,QAAS,mBACTw8lB,cAAe,0BAChB,CACCr26B,GAAI,QACJs26B,OAAQ,6DACRz8lB,QAAS,YACTw8lB,cAAe,aAChB,CACCr26B,GAAI,YACJs26B,OAAQ,+CACRz8lB,QAAS,0BACTw8lB,cAAe,UAChB,CACCr26B,GAAI,QACJs26B,OAAQ,kNACRz8lB,QAAS,oBACTw8lB,cAAe,qCAChB,CACCr26B,GAAI,MACJs26B,OAAQ,g0BACRz8lB,QAAS,WACTw8lB,cAAe,6IAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,m5BACRz8lB,QAAS,mBACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,ikBACRz8lB,QAAS,uBACTw8lB,cAAe,kGAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,+lBACRz8lB,QAAS,oBACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,MACJs26B,OAAQ,WACRz8lB,QAAS,MACTw8lB,cAAe,KAChB,CACCr26B,GAAI,UACJs26B,OAAQ,84BACRz8lB,QAAS,UACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,SACJs26B,OAAQ,87BACRz8lB,QAAS,UACTw8lB,cAAe,kKAChB,CACCr26B,GAAI,UACJs26B,OAAQ,8wBACRz8lB,QAAS,iBACTw8lB,cAAe,qIAChB,CACCr26B,GAAI,KACJs26B,OAAQ,06BACRz8lB,QAAS,sBACTw8lB,cAAe,+JAChB,CACCr26B,GAAI,eACJs26B,OAAQ,2WACRz8lB,QAAS,iCACTw8lB,cAAe,+DAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,06BACRz8lB,QAAS,sBACTw8lB,cAAe,+JAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,kCACRz8lB,QAAS,iBACTw8lB,cAAe,QAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8wBACRz8lB,QAAS,iBACTw8lB,cAAe,qIAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,wCACRz8lB,QAAS,YACTw8lB,cAAe,SAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,o0BACRz8lB,QAAS,uBACTw8lB,cAAe,8IAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,6IACRz8lB,QAAS,sBACTw8lB,cAAe,0BAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,yBACRz8lB,QAAS,eACTw8lB,cAAe,OAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,kBACRz8lB,QAAS,WACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,0YACRz8lB,QAAS,sBACTw8lB,cAAe,oEAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,uCACRz8lB,QAAS,gBACTw8lB,cAAe,SAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,sBACJs26B,OAAQ,mBACRz8lB,QAAS,cACTw8lB,cAAe,MAChB,CACCr26B,GAAI,eACJs26B,OAAQ,qIACRz8lB,QAAS,iBACTw8lB,cAAe,wBAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mDACRz8lB,QAAS,cACTw8lB,cAAe,WAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,mDACRz8lB,QAAS,cACTw8lB,cAAe,WAChB,CACCr26B,GAAI,qBACJs26B,OAAQ,yBACRz8lB,QAAS,eACTw8lB,cAAe,OAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,6DACRz8lB,QAAS,sBACTw8lB,cAAe,YAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,+CACRz8lB,QAAS,0BACTw8lB,cAAe,UAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,sDACRz8lB,QAAS,sBACTw8lB,cAAe,WAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,UACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,wCACRz8lB,QAAS,2BACTw8lB,cAAe,SAChB,CACCr26B,GAAI,eACJs26B,OAAQ,0BACRz8lB,QAAS,cACTw8lB,cAAe,OAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,sQACRz8lB,QAAS,2BACTw8lB,cAAe,8CAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,yDACRz8lB,QAAS,mBACTw8lB,cAAe,YAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,mBACJs26B,OAAQ,kBACRz8lB,QAAS,UACTw8lB,cAAe,MAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,+CACRz8lB,QAAS,iBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,+CACRz8lB,QAAS,iBACTw8lB,cAAe,UAChB,CACCr26B,GAAI,uBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,wKACRz8lB,QAAS,cACTw8lB,cAAe,+BAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,qIACRz8lB,QAAS,iBACTw8lB,cAAe,wBAChB,CACCr26B,GAAI,gBACJs26B,OAAQ,mBACRz8lB,QAAS,YACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,mBACRz8lB,QAAS,eACTw8lB,cAAe,MAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,qEACRz8lB,QAAS,iBACTw8lB,cAAe,cAChB,CACCr26B,GAAI,eACJs26B,OAAQ,wCACRz8lB,QAAS,YACTw8lB,cAAe,SAChB,CACCr26B,GAAI,eACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,WACRz8lB,QAAS,OACTw8lB,cAAe,KAChB,CACCr26B,GAAI,cACJs26B,OAAQ,wCACRz8lB,QAAS,YACTw8lB,cAAe,SAChB,CACCr26B,GAAI,SACJs26B,OAAQ,0+BACRz8lB,QAAS,oBACTw8lB,cAAe,yKAChB,CACCr26B,GAAI,WACJs26B,OAAQ,8zCACRz8lB,QAAS,mBACTw8lB,cAAe,kOAChB,CACCr26B,GAAI,MACJs26B,OAAQ,wLACRz8lB,QAAS,YACTw8lB,cAAe,iCAChB,CACCr26B,GAAI,UACJs26B,OAAQ,84BACRz8lB,QAAS,UACTw8lB,cAAe,0JAChB,CACCr26B,GAAI,MACJs26B,OAAQ,gQACRz8lB,QAAS,YACTw8lB,cAAe,6CAChB,CACCr26B,GAAI,MACJs26B,OAAQ,gMACRz8lB,QAAS,gCACTw8lB,cAAe,kCAChB,CACCr26B,GAAI,YACJs26B,OAAQ,qDACRz8lB,QAAS,qCACTw8lB,cAAe,WAChB,CACCr26B,GAAI,SACJs26B,OAAQ,gsBACRz8lB,QAAS,2BACTw8lB,cAAe,uHAChB,CACCr26B,GAAI,MACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,WACRz8lB,QAAS,IACTw8lB,cAAe,KAChB,CACCr26B,GAAI,YACJs26B,OAAQ,02BACRz8lB,QAAS,cACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,02BACRz8lB,QAAS,cACTw8lB,cAAe,oJAChB,CACCr26B,GAAI,aACJs26B,OAAQ,2EACRz8lB,QAAS,UACTw8lB,cAAe,eAChB,CACCr26B,GAAI,aACJs26B,OAAQ,g5CACRz8lB,QAAS,UACTw8lB,cAAe,gPAChB,CACCr26B,GAAI,kBACJs26B,OAAQ,8lBACRz8lB,QAAS,cACTw8lB,cAAe,uGAChB,CACCr26B,GAAI,aACJs26B,OAAQ,g5CACRz8lB,QAAS,UACTw8lB,cAAe,gPAChB,CACCr26B,GAAI,YACJs26B,OAAQ,mDACRz8lB,QAAS,cACTw8lB,cAAe,WAChB,CACCr26B,GAAI,oBACJs26B,OAAQ,u6BACRz8lB,QAAS,UACTw8lB,cAAe,8JAChB,CACCr26B,GAAI,cACJs26B,OAAQ,i2BACRz8lB,QAAS,uBACTw8lB,cAAe,kJAChB,CACCr26B,GAAI,cACJs26B,OAAQ,87BACRz8lB,QAAS,UACTw8lB,cAAe,kKAChB,CACCr26B,GAAI,iBACJs26B,OAAQ,smCACRz8lB,QAAS,UACTw8lB,cAAe,8LAChB,CACCr26B,GAAI,aACJs26B,OAAQ,smCACRz8lB,QAAS,UACTw8lB,cAAe,8LAChB,CACCr26B,GAAI,WACJs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6E,KACAxzD,MAA+BA,OAA0B6tD,MAAO,EAAGC,KAAM,EAAG3F,SAAU,SAAsC4F,EAAIv9C,KAAUzL,cAAe,IAh6B/JgzhC,MAkzCAU,UAAN,SAEmBA,SAAiB34hC,UAAO,SAAkCP,GAAK,OAAO,IAAKA,GAAKk5hC,IAChFA,EAAiBnqhC,UAAiCtO,MAAoB,CAAE8E,KAAM2zhC,IAC9EA,EAAiBlqhC,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACzFmxI,GACA0a,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqI,GACAQ,GACA1d,GACA0kB,GACA3kB,GACAvF,GACA0U,GACA+D,GACAhG,GACAzB,GACA+F,GACAvZ,GACAuQ,GACArN,GACA8R,GACAvR,GACAxB,GACA2mB,GACAxnB,GACAqB,GACA2b,GACA3rB,GACA6kB,GACApC,GACAgY,GACAjH,GACAvY,GACA8E,GACApJ,GACA0B,GACA2H,GACAoD,GACArE,GACAkB,GACAY,GACAwJ,GACA7E,GACA2C,GACA2C,GACAI,GACAoC,GACAsB,GACAvY,GACAga,GACAmC,GACAiC,GACAc,GACAyF,GACAh2G,GACA1H,IACD+zF,GACH0a,GACAtiB,GACAO,GACAkH,GACA8Y,GACAI,GACAqI,GACAQ,GACA1d,GACA0kB,GACA3kB,GACAvF,GACA0U,GACA+D,GACAhG,GACAzB,GACA+F,GACAvZ,GACAuQ,GACArN,GACA8R,GACAvR,GACAxB,GACA2mB,GACAxnB,GACAqB,GACA2b,GACA3rB,GACA6kB,GACApC,GACAgY,GACAjH,GACAvY,GACA8E,GACApJ,GACA0B,GACA2H,GACAoD,GACArE,GACAkB,GACAY,GACAwJ,GACA7E,GACA2C,GACA2C,GACAI,GACAoC,GACAsB,GACAvY,GACAga,GACAmC,GACAiC,GACAc,GACAyF,GACA19G,MArHF6s+B,MCh0CC,YAA6B9r+B,GAChC,IAAI6pB,EAAS7pB,EAAO6pB,QAAU,GAC9B,MAAO,CACHkgB,KAAM/pC,EAAOkiF,MACbp9D,QAAS9kB,EAAO8kB,QAChB2vO,OAAQ5qO,EAAOq4D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AmCP,GAAK,OAAO,IAAKA,GAAKgojC,IAClFA,EAAkBj5iC,UAAiCtO,MAAoB,CAAE8E,KAAMyijC,IAC/EA,EAAkBh5iC,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CAC1FyhI,GACAoI,GACA+W,GACAoE,GACAiO,GACAvpB,GACA4L,GACAW,GACAoI,GACAwI,IACAD,GACAE,IACA0B,GACAgM,IACA8F,GACAzE,GACA3N,GACA4D,IACA0H,GACAkI,GACA52G,GACA1H,IACDqkF,GACHoI,GACA+W,GACAoE,GACAiO,GACAvpB,GACA4L,GACAW,GACAoI,GACAwI,IACAD,GACAE,IACA0B,GACAgM,IACA8F,GACAzE,GACA3N,GACA4D,IACA0H,GACAkI,GACAt+G,MA/CF27/B,MCpZAC,UAAN,SAEmBA,SAAiB1njC,UAAO,SAAkCP,GAAK,OAAO,IAAKA,GAAKiojC,IAChFA,EAAiBl5iC,UAAiCtO,MAAoB,CAAE8E,KAAM0ijC,IAC9EA,EAAiBj5iC,UAAiCvO,MAAoB,CAAEwO,QAAS,CAAC,CACzFk/J,IACAq9D,IACA4+C,IACA82K,IACAyC,IACAgE,IACAQ,IACAiB,IACA0X,IACA+qB,IACAkG,IACAC,IACAqgB,IACAmT,IACA2/L,IACAa,IACAwI,IACAkE,IACA82C,IACAC,IACA4G,IACAsB,IACAQ,IACAwvC,IACA+B,IACAU,IACAC,IACAyF,IACAmH,IACAivC,IACAstB,IACA8B,IACAsC,IACAI,IACAe,IACAsE,IACAgR,IACAC,IACAC,IACAS,IACAkD,IACAm+B,IACAC,IACAa,IACAU,IACAQ,IACAK,IACAI,IACAgS,IACAgH,IACA6lB,IACAC,IACAC,IACAiK,IACAy0F,IACAK,IACAI,IACAG,IACAmB,IACAqD,IACAkD,IACAK,IACAK,IACAC,IACAS,IACAI,IACAS,IACAiD,IACAC,IACAI,IACAG,IACAW,IACAuM,IACAc,IACAG,IACAG,IACAO,IACA4gB,IACA37/B,IACD8hH,IACHq9D,IACA4+C,IACA82K,IACAyC,IACAgE,IACAQ,IACAiB,IACA0X,IACA+qB,IACAkG,IACAC,IACAqgB,IACAmT,IACA2/L,IACAa,IACAwI,IACAkE,IACA82C,IACAC,IACA4G,IACAsB,IACAQ,IACAwvC,IACA+B,IACAU,IACAC,IACAyF,IACAmH,IACAivC,IACAstB,IACA8B,IACAsC,IACAI,IACAe,IACAsE,IACAgR,IACAC,IACAC,IACAS,IACAkD,IACAm+B,IACAC,IACAa,IACAU,IACAQ,IACAK,IACAI,IACAgS,IACAgH,IACA6lB,IACAC,IACAC,IACAiK,IACAy0F,IACAK,IACAI,IACAG,IACAmB,IACAqD,IACAkD,IACAK,IACAK,IACAC,IACAS,IACAI,IACAS,IACAiD,IACAC,IACAI,IACAG,IACAW,IACAuM,IACAc,IACAG,IACAG,IACAO,IACA4gB,IACA37/B,MAlKF47/B,uvoCC1KC,IAAMC,IAAb,MAAM,QAEJvujC,YAAoBokB,6DAFTmqiC,GAAYznjC,yCAAZynjC,EAAYxnjC,QAAZwnjC,EAAY,YAAZA,GAAb,GhnCJA,4BACA,IACA,cACAx9hC,gBACIvgB,GAEJ,YADA2F,KAIA4Q,OACAsa,KAEAtN,6BAIe,eACf,kBACA,WACA5d,YACA,iCACA,mBAEA,cACAq4iC,wBAGA,cACAA,yBAGA13iC,ainC9BO,YAAuBkG,EAAQkH,GAClC,MAAMuqiC,EAA8B,iBAAXvqiC,EACzB,OAAO,IAAI6P,QAAQ,CAACC,EAASgmB,KACzB,IACIniB,EADA62hC,GAAY,EAEhB1xiC,EAAOnE,UAAU,CACbgB,KAAO9M,IACH8qB,EAAS9qB,EACT2hjC,GAAY,GAEhB3tiC,MAAOi5B,EACP3gC,SAAU,KACFq1iC,EACA16hC,EAAQ6D,GAEP1hB,EACD6d,EAAQ9P,EAAOpO,cAGfkkC,EAAO,IAAIrK,WCpBzB,UACJ3vC,YACSq5B,GAAiB,GAAjBl5B,cCFL,SAEJH,YACSq7F,EACA34E,EACAs1mB,GAFA73nB,YACAA,gBACAA,aCCL,SAIJH,YAAmBkjB,oBAFnB/iB,uBAA+B,IAAI4I,MA+G5B5I,iBAAsB,EACtBA,uBAA4B,EAC5BA,kBAAuB,EACv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KjgB,IAAgB,+BAAgC4tB,iDA5DzDutiC,GAAWx4jC,yCAAXw4jC,EAAWv4jC,QAAXu4jC,EAAW,YAAXA,GAAb,GCRM,UAEJt/jC,YACSmgkC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAlBAlhkC,mBACAA,oBACAA,iBACAA,iBACAA,oBACAA,qBACAA,wBACAA,mBACAA,mBACAA,uBACAA,sBACAA,qBACAA,yBACAA,oBACAA,8BACAA,+BACAA,uBACAA,4BACAA,uBAEPA,KAAKogkC,aAAe,IC1BlB,UAEJvgkC,YACSshkC,EACAC,EACAvmZ,EACAp2qB,EACA48jC,EACAC,EACAt/wB,EACApiP,EACA2hgC,EACAC,GATAxhkC,uBACAA,qBACAA,aACAA,cACAA,6BACAA,iCACAA,cACAA,aACAA,gCACAA,wBCXL,UAEJH,YACS4hkC,EACAh2jC,EACAi2jC,EACAzzgC,EACAiyO,GAJAlgS,mBACAA,YACAA,qBACAA,iBACAA,gBCRL,UAEJH,YACS8hkC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAbAxikC,yBACAA,8BACAA,qBACAA,6BACAA,6BACAA,uBACAA,mBACAA,cACAA,qBACAA,eACAA,sBACAA,iCACAA,iBACAA,qBChBL,SAEJH,YACSmxD,EACAyxgC,EACAC,GAFA1ikC,aACAA,iBACAA,mBCFL,UAANH,cAEEG,mBAAyB,KACzBA,qBAA2B,KAC3BA,kBAAwB,KACxBA,oBAA0B,KAC1BA,YAAkB,KAClBA,iBAAuB,KACvBA,mBAAyB,KAGzBA,iBAAoB,KACpBA,iBAAc,GACdA,0BAAuB,GACvBA,eAAY,GACZA,kBAAe,GACfA,oBAAiB,GAGjBA,SAAM,GACNA,iBAAc,GACdA,SAAM,GACNA,aAAU,GACVA,cAAW,GAGXA,2BAAwB,GACxBA,2BAAwB,GACxBA,kBAAe,GACfA,mBAAgB,GAChBA,eAAY,GACZA,mBAAgB,GAChBA,uBAAoB,GACpBA,sBAAmB,GACnBA,qBAAkB,GAGlBA,sBAAmB,GACnBA,wBAAqB,GACrBA,yBAAsB,GACtBA,sBAAmB,GACnBA,wBAAqB,GACrBA,yBAAsB,GACtBA,aAAU,GAGVA,wBAA6B,KAC7BA,iBAAsB,KACtBA,sBAA2B,KAC3BA,sBAA2B,KAG3BA,mBAAsB,KACtBA,eAAY,GACZA,kBAAe,GACfA,4BAAyB,ICrCrB,SACJH,YACSgM,EACA82jC,EACAC,EACA3i+B,EACA4i+B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA9F,GACA+F,GACAC,GACAC,GACAC,GAAmC,IAAIC,IACvCC,GAA2B,IAAIC,IAC/BC,GAAgB,GAChBC,GAAoC,GACpCC,GAAuB,GACvBC,GAAmB,GACnBC,GAAsB,GACtBlW,GAAkC,GAClCmW,GAAqB,GACrBxzyB,GAAmB,GACnBn4P,GAAgB,GAChB4riC,GAA0B,GAC1BC,GAA0B,GAC1BC,GACAC,GACAC,GAAuB,IAAIC,IAC3BC,GACAC,GACAC,GAA2C,IAAIC,IAC/CC,GACAC,GACAC,GACAC,GAA8B,GAC9BC,GAA8B,GAC9BC,GAA+B,GAC/BC,GACAC,GAAyC,IAAIC,KAtD7ChmkC,UACAA,uBACAA,oBACAA,kBACAA,oBACAA,gBACAA,oBACAA,uBACAA,wBACAA,qBACAA,wBACAA,wBACAA,4BACAA,gBACAA,iBACAA,mBACAA,wBACAA,yBACAA,mBACAA,mBACAA,mBACAA,mBACAA,mBACAA,8BACAA,gBACAA,oBACAA,uBACAA,wBACAA,wBACAA,oBACAA,cACAA,wBACAA,qBACAA,aACAA,iBACAA,uBACAA,iBACAA,eACAA,cACAA,mBACAA,mBACAA,qBACAA,mBACAA,kBACAA,kBACAA,wBACAA,4BACAA,uBACAA,yBACAA,aACAA,mBACAA,qBACAA,kBACAA,uBACAA,wBAiBFA,gBAAa,EACbA,iBAAsB,GACtBA,YAAiB,GAC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G4sjC,GAAmB73kC,yCAAnB63kC,EAAmB53kC,QAAnB43kC,EAAmB,YAAnBA,GAAb,GCJae,IAAb,MAAM,QAoBJ1/kC,YAAoBokB,EAAyB4ojC,GAAzB7skC,YAAyBA,oBAjB7CA,8BAAmC,EACnCA,sBAA2B,GA0D3BA,iBAAwB,CACtB,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,QACA,SACA,SACA,SACA,OACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,cACA,qBACA,cACA,cACA,cACA,qBACA,cACA,cACA,cACA,qBACA,OACA,OACA,OACA,OACA,OACA,QAGFA,iBAAwB,CACtB,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,YACA,YACA,iBACA,YACA,YACA,6BACA,iBACA,YACA,iBACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,iBACA,sBACA,wBACA,iBACA,OACA,OACA,OACA,OACA,OA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C5CC,IAAqC,gCACrCC,IAA0C,sCAC1CC,IAA0C,sCAE1CC,IAAuC,kCACvCC,IAAmC,6BACnCC,IAAsC,kCACtCC,IAAgD,4CA1ShDvxlC,wBACAA,mBACAA,sBACAA,gBACAA,uBACAA,kCACAA,mCACAA,uBACAA,2BACAA,aACAA,eACAA,uBACAA,wBACAA,iBACAA,qBACAA,YACAA,0BACAA,qCACAA,mCACAA,iCACAA,kCACAA,mCACAA,gCACAA,gCACAA,mCACAA,qCACAA,uCACAA,eACAA,eAGAA,mBACAA,mBACAA,mBACAA,mBACAA,mBAEAA,sBACAA,uBACAA,eACAA,eACAA,cACAA,cACAA,oBACAA,sBAEAA,8BACAA,kCAEAA,sBACAA,yBAEAA,oBACAA,qBACAA,kBACAA,oBACAA,kBACAA,sBACAA,oBACAA,oBACAA,wBAEAA,wBACAA,uBACAA,sBACAA,0BACAA,oBACAA,8BAEAA,oBACAA,gBACAA,mBACAA,kBACAA,gBACAA,gBACAA,qBACAA,kBACAA,oBACAA,oBACAA,sBACAA,mBACAA,YACAA,mBACAA,gCACAA,wBACAA,0BAEAA,mBAEAA,0BACAA,qBACAA,6BACAA,uBACAA,2BACAA,8BACAA,+BACAA,gCACAA,4BACAA,gBACAA,eACAA,gBACAA,eACAA,sBACAA,uBACAA,2BACAA,mBAEAA,eACAA,kBACAA,oBACAA,yBACAA,iBACAA,qBACAA,0BACAA,kCAEAA,+BACAA,+BAEAA,qBACAA,iBACAA,kBAEAA,yBACAA,mBACAA,2BACAA,uBACAA,wBACAA,yBACAA,4BACAA,4BAEAA,uBACAA,2BACAA,0BACAA,sBACAA,8BACAA,0BACAA,6BACAA,8BACAA,mBACAA,eAGAA,eACAA,kBACAA,iBACAA,cACAA,8BACAA,kBACAA,gBACAA,6BACAA,kBACAA,mBACAA,sBACAA,cACAA,oBACAA,+BACAA,uBAEAA,0BACAA,wBACAA,yBACAA,sBACAA,0BACAA,0BACAA,6BACAA,wBACAA,wBACAA,wBACAA,iCACAA,wBACAA,yBACAA,yBACAA,yBACAA,yBACAA,yBAGAA,wBACAA,2BACAA,gCACAA,uBACAA,0BACAA,+BACAA,yBACAA,qBACAA,gBACAA,uBACAA,iBACAA,wBACAA,mCACAA,mBACAA,qBACAA,4BACAA,mBACAA,mBAEAA,6BACAA,wBAEAA,kBACAA,0BACAA,4BACAA,oBACAA,gBACAA,iBACAA,eACAA,eACAA,eACAA,eACAA,qBAEAA,cAEAA,wBAEAA,mBACAA,uBACAA,oBACAA,sBACAA,aACAA,iCACAA,qCACAA,oCACAA,yCACAA,8BACAA,uBACAA,2BACAA,4BAEAA,iCACAA,+BACAA,gCACAA,gCACAA,qCACAA,kCAEAA,mCACAA,iCACAA,yCACAA,iDAEAA,qBACAA,yBACAA,0BACAA,gCACAA,gCACAA,sCACAA,sCAEAA,sCACAA,wCACAA,qCACAA,uCACAA,+BACAA,oCACAA,sCAEAA,oCACAA,oCACAA,6CACAA,kCACAA,qCACAA,uCAEAA,4BACAA,oCACAA,4BACAA,gCACAA,iCAEAA,8CACAA,8CACAA,qCACAA,sCACAA,kCACAA,sCACAA,0CACAA,yCACAA,wCAEAA,yCACAA,2CACAA,4CACAA,yCACAA,2CACAA,4CACAA,gCAEAA,2CACAA,oCACAA,yCACAA,yCAEAA,sCACAA,kCACAA,qCACAA,+CAGPA,KAAKwxlC,2BAA6B,IAAItqlC,IACpC,CACE,CAAClH,KAAK8ulC,6BAA8B,iBACpC,CAAC9ulC,KAAK+ulC,+BAAgC,mBACtC,CAAC/ulC,KAAKgvlC,4BAA6B,gBACnC,CAAChvlC,KAAKivlC,8BAA+B,kBACrC,CAACjvlC,KAAKkvlC,sBAAuB,UAC7B,CAAClvlC,KAAKmvlC,2BAA4B,eAClC,CAACnvlC,KAAKovlC,6BAA8B,mBAGxCpvlC,KAAKyxlC,6BAA+B,IAAIvqlC,IACtC,CACE,CAAClH,KAAKgxlC,kCAAmC,sBACzC,CAAChxlC,KAAKixlC,2BAA4B,eAClC,CAACjxlC,KAAKkxlC,gCAAiC,oBACvC,CAAClxlC,KAAKmxlC,gCAAiC,sBAG3CnxlC,KAAK0xlC,6BAA+B,IAAIxqlC,IACtC,CACE,CAAClH,KAAKuvlC,oCAAqC,wBAC3C,CAACvvlC,KAAK0vlC,8BAA+B,kBACrC,CAAC1vlC,KAAKwvlC,yBAA0B,aAChC,CAACxvlC,KAAK2vlC,mBAAoB,OAC1B,CAAC3vlC,KAAK4vlC,2BAA4B,eAClC,CAAC5vlC,KAAK6vlC,mBAAoB,OAC1B,CAAC7vlC,KAAK8vlC,uBAAwB,WAC9B,CAAC9vlC,KAAK+vlC,wBAAyB,YAC/B,CAAC/vlC,KAAKyvlC,4BAA6B,gBACnC,CAACzvlC,KAAKgwlC,qCAAsC,yBAC5C,CAAChwlC,KAAKiwlC,qCAAsC,yBAC5C,CAACjwlC,KAAKkwlC,4BAA6B,gBACnC,CAAClwlC,KAAKmwlC,6BAA8B,iBACpC,CAACnwlC,KAAKowlC,yBAA0B,aAChC,CAACpwlC,KAAKqwlC,6BAA8B,iBACpC,CAACrwlC,KAAKswlC,iCAAkC,qBACxC,CAACtwlC,KAAKuwlC,gCAAiC,oBACvC,CAACvwlC,KAAKwwlC,+BAAgC,mBACtC,CAACxwlC,KAAKywlC,gCAAiC,oBACvC,CAACzwlC,KAAK0wlC,kCAAmC,sBACzC,CAAC1wlC,KAAK2wlC,mCAAoC,uBAC1C,CAAC3wlC,KAAK4wlC,gCAAiC,oBACvC,CAAC5wlC,KAAK6wlC,kCAAmC,sBACzC,CAAC7wlC,KAAK8wlC,mCAAoC,uBAC1C,CAAC9wlC,KAAK+wlC,uBAAwB,WAC9B,CAAC/wlC,KAAKoxlC,6BAA8B,iBACpC,CAACpxlC,KAAKqxlC,yBAA0B,aAChC,CAACrxlC,KAAKsxlC,4BAA6B,gBACnC,CAACtxlC,KAAKuxlC,sCAAuC,6BAU9C,MAAM90sB,GAAa,IAAIk1sB,GC1WxB,UAEJ9xlC,YAES+xlC,EACAC,EACAC,EACAC,EACAC,EACAC,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,GACzCC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IA3BAvzlC,wBACAA,wBACAA,wBACAA,wBACAA,wBACAA,uBACAA,kBACAA,sBACAA,uBACAA,yBACAA,yBACAA,4BACAA,gCACAA,2BACAA,8BACAA,8BACAA,yBACAA,wBACAA,0BACAA,iCACAA,8BACAA,iCACAA,sBACAA,wBACAA,0BACAA,sBACAA,4BACAA,+BChCL,UAEJH,YACS2zlC,EACAC,EACAC,EACA7X,EACA8X,EACAlyV,EACAmyV,EACA16jC,EACA26jC,EACAlyhC,EACAmyhC,EACA3l6B,EACA1rL,EACAsxlC,GACAC,IAdAh0lC,aACAA,aACAA,aACAA,eACAA,cACAA,WACAA,YACAA,aACAA,eACAA,aACAA,WACAA,aACAA,WACAA,uBACAA,qBCdL,UAEJH,YACSo0lC,EACAC,EACAC,EACA1vO,GAHAzk3B,iBACAA,mBACAA,eACAA,eAEPA,KAAKyk3B,QAAU,IAAI2vO,KCRjB,UAEJv0lC,YACSstlC,EACAkH,EACAnH,EACAzoO,EACAmiN,GAJA5mkC,oBACAA,sBACAA,kBACAA,eACAA,YAEPA,KAAKyk3B,QAAU,IAAI2vO,KCMjB,UAEJv0lC,YACSgM,EACAskkC,EACAlw+B,EACAmv+B,EACA3d,EACAlviC,EACA+xkC,EACAC,EACA3xB,EACAqS,EACAuf,EAAe,IAAIC,IACnBvvB,EAAuB,IAAIC,IAC3BuvB,EACAC,GACAC,GACAzu6B,GACAruE,GACA+8+B,GACArwB,GAAgB,GAChBE,GAAuB,GACvBowB,GAAmC,GACnCC,GACAC,GACAlwB,GAAiC,GACjCmwB,GACAC,GACAC,GAAwB,GACxBj8jC,GACAztB,GACA2plC,GAAqB,IAAIC,IACzB1wB,GAAmB,GACnB2wB,GACAC,GACA72nB,GACA82nB,GACAC,GACAvmC,GACAmQ,GACAq2B,GACAC,GACAzmB,GACA0mB,GACApY,GACAqY,GACAvP,GACAwP,GACAhlB,GACAilB,GACAC,GACAC,GACAC,GACAC,IAnDAn2lC,UACAA,mBACAA,kBACAA,gBACAA,iBACAA,gBACAA,kBACAA,uBACAA,oBACAA,qBACAA,aACAA,iBACAA,oBACAA,uBACAA,qBACAA,iBACAA,aACA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E,EAAU,CACd43sB,SAAS,IAAI8nV,OAAc1n+B,OAAO,eAAgB,oBAClD90E,QAAQ,IAAIy8iC,OAAa3n+B,OAAO,aAAcqW,IAEhD,OAAOjgG,KAAKikB,KAAKjgB,IAA4B,oCAAqC4tB,iDAzIzEkukC,GAAen5lC,mDAAfm5lC,EAAel5lC,QAAfk5lC,EAAe,YAAfA,GAAb,GCRM,UAEJjgmC,YACSshkC,EACAC,EACAvmZ,EACAp2qB,EACA48jC,EACAC,EACAt/wB,EACApiP,EACA2hgC,EACAC,GATAxhkC,uBACAA,qBACAA,aACAA,cACAA,6BACAA,iCACAA,cACAA,aACAA,gCACAA,wBCTL,UAEJH,YACSmgkC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAlBAlhkC,mBACAA,oBACAA,iBACAA,iBACAA,oBACAA,qBACAA,wBACAA,mBACAA,mBACAA,uBACAA,sBACAA,qBACAA,yBACAA,oBACAA,8BACAA,+BACAA,uBACAA,4BACAA,uBAEPA,KAAKogkC,aAAe,ICzBlB,UAEJvgkC,YACS4hkC,EACAh2jC,EACAi2jC,EACAzzgC,EACAiyO,GAJAlgS,mBACAA,YACAA,qBACAA,iBACAA,gBCRL,UAEJH,YACS8hkC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAbAxikC,yBACAA,8BACAA,qBACAA,6BACAA,6BACAA,uBACAA,mBACAA,cACAA,qBACAA,eACAA,sBACAA,iCACAA,iBACAA,qBChBL,SAEJH,YACSmxD,EACAyxgC,EACAC,GAFA1ikC,aACAA,iBACAA,mBCFL,UAANH,cAEEG,mBAAyB,KACzBA,qBAA2B,KAC3BA,kBAAwB,KACxBA,oBAA0B,KAC1BA,YAAkB,KAClBA,iBAAuB,KACvBA,mBAAyB,KAGzBA,iBAAoB,KACpBA,iBAAc,GACdA,0BAAuB,GACvBA,eAAY,GACZA,kBAAe,GACfA,oBAAiB,GAGjBA,SAAM,GACNA,iBAAc,GACdA,SAAM,GACNA,aAAU,GACVA,cAAW,GAGXA,2BAAwB,GACxBA,2BAAwB,GACxBA,kBAAe,GACfA,mBAAgB,GAChBA,eAAY,GACZA,mBAAgB,GAChBA,uBAAoB,GACpBA,sBAAmB,GACnBA,qBAAkB,GAGlBA,sBAAmB,GACnBA,wBAAqB,GACrBA,yBAAsB,GACtBA,sBAAmB,GACnBA,wBAAqB,GACrBA,yBAAsB,GACtBA,aAAU,GAGVA,wBAA6B,KAC7BA,iBAAsB,KACtBA,sBAA2B,KAC3BA,sBAA2B,KAG3BA,mBAAsB,KACtBA,eAAY,GACZA,kBAAe,GACfA,4BAAyB,ICrCrB,SACJH,YACSgM,EACA82jC,EACAC,EACA3i+B,EACA4i+B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA9F,GACA+F,GACAC,GACAC,GACAC,GAAmC,IAAIC,IACvCC,GAA2B,IAAIC,IAC/BC,GAAgB,GAChBC,GAAoC,GACpCC,GAAuB,GACvBC,GAAmB,GACnBC,GAAsB,GACtBlW,GAAkC,GAClCmW,GAAqB,GACrBxzyB,GAAmB,GACnBn4P,GAAgB,GAChB4riC,GAA0B,GAC1BC,GAA0B,GAC1BC,GACAC,GACAC,GAAuB,IAAIC,IAC3BC,GACAC,GACAC,GAA2C,IAAIC,IAC/CC,GACAC,GACAC,GACAC,GAA8B,GAC9BC,GAA8B,GAC9BC,GAA+B,GAC/BC,GACAC,GAAyC,IAAIC,KAtD7ChmkC,UACAA,uBACAA,oBACAA,kBACAA,oBACAA,gBACAA,oBACAA,uBACAA,wBACAA,qBACAA,wBACAA,wBACAA,4BACAA,gBACAA,iBACAA,mBACAA,wBACAA,yBACAA,mBACAA,mBACAA,mBACAA,mBACAA,mBACAA,8BACAA,gBACAA,oBACAA,uBACAA,wBACAA,wBACAA,oBACAA,cACAA,wBACAA,qBACAA,aACAA,iBACAA,uBACAA,iBACAA,eACAA,cACAA,mBACAA,mBACAA,qBACAA,mBACAA,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EAAqB,GACrBlN,EAAkB,GAClB+6B,GAAgC,EAChCC,EACA7M,EACAluB,EACAg7B,EACAnoB,EACA7x+B,EAAe+09B,cAZf/8jC,gBACAA,iBACAA,mBACAA,iBACAA,kBACAA,eACAA,4BACAA,eACAA,gBACAA,eACAA,uBACAA,mBACAA,aCdL,UAEJH,YACS60kC,EACAtnhC,EACAlhD,EACA87kC,GAAwB,EACxB1gB,EAA4C,GAC5Ct/9B,EAAe+09B,cALf/8jC,sBACAA,aACAA,WACAA,oBACAA,2BACAA,YAEPA,KAAKotD,MAAQ,IAAIY,MAAK,IAAIA,MAAOisO,cAAe,EAAG,GACnDj6R,KAAKkM,IAAM,IAAI8hD,MAAK,IAAIA,MAAOisO,cAAe,GAAI,KCZhD,UAEJp6R,YACSqolC,EACAxkxB,EACAgkwB,EACAC,EACAsgB,EACA1gB,EACAC,EACAy6B,EACA9Z,EACAng/B,EAAe+09B,cATf/8jC,kBACAA,aACAA,mBACAA,qBACAA,mBACAA,iBACAA,WACAA,mBACAA,iBACAA,YAEPA,KAAK2nkC,cAAgB,MACrB3nkC,KAAKiolC,YAAc,IACnBjolC,KAAKwnkC,IAAM,OACXxnkC,KAAKmolC,UAAY,KACjBnolC,KAAKkolC,WAAa,IAGbga,aACLlimC,KAAK2nkC,cAAgB,GACrB3nkC,KAAKiolC,YAAc,GACnBjolC,KAAKwnkC,IAAM,GACXxnkC,KAAKmolC,UAAY,GACjBnolC,KAAKkolC,WAAa,ICzBhB,SACJrolC,YACSsimC,EAA4B,GAC5Bz+xB,EACAvxT,EACAiwlC,EACAtm0B,EACAnmR,EACA0slC,EACAC,EACAj/lC,EACAk/lC,EACAC,EAAsB,GACtBC,EAAuB,GACvBruB,EAAkB,GAClBvzkC,GAAiB,GACjB6hmC,IAA8B,EAC9BC,GAAkB,GAClBC,GAAkB,IAhBlB5imC,iBACAA,aACAA,WACAA,iBACAA,YACAA,oBACAA,kBACAA,eACAA,YACAA,qBACAA,mBACAA,oBACAA,eACAA,eACAA,2BACAA,gBACAA,iBCjBL,SAEJH,YACSgM,EACAo0F,EACA58F,EACA66j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PA,GACO,IAAPA,GACO,IAAPA,GACO,IAAPA,GACO,IAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,EAMF7L,KAAKysqC,qBAA+B,KAAP5gqC,GACpB,KAAPA,GACO,KAAPA,EAGE0qpC,aAAU,iCACd,MAAM9tP,EAAc,IAAIi1O,GAGxB,OAFAj1O,EAAYgpJ,UAAYz7iC,EAAKmvkC,aAAatB,eAAe93M,QAAQlg4B,GACjE485B,EAAYxo0B,WAAajqF,EAAKmvkC,aAAatY,aAAa7X,YAAY/09B,WAC5DjqF,EAAKw1pC,YACN,EACH/iQ,EAAYowH,SAAW,2BACvB,WACG,EACHpwH,EAAYowH,SAAW,qBACvB,WACG,EACHpwH,EAAYowH,SAAW,cACvB,WACG,EACHpwH,EAAYowH,SAAW,oBACvB,WACG,EACHpwH,EAAYowH,SAAW,iBACvB,WACG,EACHpwH,EAAYowH,SAAW,wBACvB,WACG,EACHpwH,EAAYowH,SAAW,kBACvB,WACG,EACHpwH,EAAYowH,SAAW,eACvB,WACG,EACHpwH,EAAYowH,SAAW,2BACvB,WACG,GACHpwH,EAAYowH,SAAW,wBACvB,WACG,GAQH,KACG,GAEH,KACG,GAEH,KACG,GAEH,KACG,GAsCH,KACG,GAQH,KACG,GAWH,KACG,GAEH,KACG,GAEH,KACG,GAWH,KACG,GAEH,KACG,GAKH,KACG,GAWH,KACG,GAQH,KACG,GAQH,KACG,GAEH,KACG,GAKH,KACG,GAMH,KACG,GAWH,KACG,GAKH,KACG,GAEH,KACG,GAKH,KAEG,GASH,KACG,GAQH,KACG,GAEH,KACG,GAEH,KACG,GAEH,KACG,GAKH,KACG,GAQH,KACG,GAoBH,KACG,GAEH,YADA7ihC,EAAK02pC,mCAAmCnW,aAlPxC,KACG,GACH9tP,EAAYowH,SAAW,oBACvB,WACG,GACHpwH,EAAYowH,SAAW,eACvB,MAYA,KACG,GACHpwH,EAAYowH,SAAW,uBACvB,WACG,GACHpwH,EAAYowH,SAAW,oBACvB,WACG,GACHpwH,EAAYowH,SAAW,uBACvB,WACG,GACHpwH,EAAYowH,SAAW,iBACvB,WACG,GACHpwH,EAAYowH,SAAW,kBACvB,WACG,GACHpwH,EAAYowH,SAAW,eACvB,WACG,GACHpwH,EAAYowH,SAAW,gBACvB,WACG,GACHpwH,EAAYowH,SAAW,uBACvB,WACG,GACHpwH,EAAYowH,SAAW,mBACvB,WACG,GACHpwH,EAAYowH,SAAW,iBACvB,WACG,GACHpwH,EAAYowH,SAAW,gBACvB,WACG,GACHpwH,EAAYowH,SAAW,6BACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,wBACvB,WACG,GACHpwH,EAAYowH,SAAW,sBACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,0BACvB,WACG,GACHpwH,EAAYowH,SAAW,qBACvB,WACG,GACHpwH,EAAYowH,SAAW,qBACvB,MASA,KACG,GACHpwH,EAAYowH,SAAW,uBACvB,WACG,GACHpwH,EAAYowH,SAAW,2BACvB,WACG,GACHpwH,EAAYowH,SAAW,+BACvB,MAMA,KACG,GACHpwH,EAAYowH,SAAW,aACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,qBACvB,WACG,GACHpwH,EAAYowH,SAAW,oCACvB,WACG,GACHpwH,EAAYowH,SAAW,+BACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,oBACvB,WACG,GACHpwH,EAAYowH,SAAW,mBACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,uBACvB,WACG,GACHpwH,EAAYowH,SAAW,yBACvB,MAMA,KACG,GACHpwH,EAAYowH,SAAW,sBACvB,MAIA,KACG,GACHpwH,EAAYowH,SAAW,0BACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,6BACvB,WACG,GACHpwH,EAAYowH,SAAW,2BACvB,WACG,GACHpwH,EAAYowH,SAAW,uBACvB,MAGA,KACG,GACHpwH,EAAYowH,SAAW,+BACvB,MAMA,KACG,GACHpwH,EAAYowH,SAAW,6BACvB,MAIA,KAEG,GACHpwH,EAAYowH,SAAW,sBACvB,WACG,GACHpwH,EAAYowH,SAAW,eACvB,MAGA,KACG,GA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AE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GA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AmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE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AAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI4+B,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAIy1B,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG39C,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GA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","names":["ɵDomAdapter","constructor","super","arguments","this","supportsDOMEvents","GenericBrowserDomAdapter","static","ɵsetRootDomAdapter","BrowserDomAdapter","onAndCancel","el","evt","listener","addEventListener","removeEventListener","dispatchEvent","remove","node","parentNode","removeChild","createElement","tagName","doc","getDefaultDocument","createHtmlDocument","document","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","target","window","body","getBaseHref","href","baseElement","querySelector","getAttribute","getBaseElementHref","url","urlParsingNode","setAttribute","pathName","pathname","charAt","relativePath","resetBaseElement","getUserAgent","navigator","userAgent","getCookie","name","ɵparseCookieValue","cookie","TRANSITION_ID","InjectionToken","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","transitionId","injector","get","ApplicationInitStatus","donePromise","then","dom","ɵgetDOM","styles","querySelectorAll","i","length","deps","DOCUMENT","Injector","multi","setTestabilityGetter","BrowserGetTestability","addToWindow","registry","ɵglobal","elem","findInAncestors","testability","findTestabilityInTree","Error","getAllTestabilities","getAllRootElements","callback","testabilities","count","didWork","decrement","didWork_","forEach","whenStable","t","getTestability","host","parentElement","BrowserXhr","build","XMLHttpRequest","ɵfac","ɵprov","i0","factory","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","Map","p","manager","_plugins","slice","reverse","element","eventName","handler","plugin","_findPluginFor","addGlobalEventListener","getZone","supports","set","_doc","SharedStylesHost","_stylesSet","Set","addStyles","additions","style","has","add","onStylesAdded","getAllStyles","Array","from","DomSharedStylesHost","_hostNodes","head","_addStylesToHost","styleNodes","styleEl","textContent","push","appendChild","addHost","hostNode","removeHost","removeStyle","delete","ngOnDestroy","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","compId","isArray","flattenStyles","replace","eventHandler","event","preventDefault","returnValue","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","type","encapsulation","ViewEncapsulation","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","begin","end","APP_ID","data","Object","create","destroyNode","destroy","namespace","createElementNS","createComment","value","createText","createTextNode","parent","newChild","insertBefore","refChild","oldChild","selectRootElement","selectorOrNode","preserveContent","nextSibling","namespaceUri","setAttributeNS","removeAttribute","removeAttributeNS","addClass","classList","removeClass","setStyle","flags","RendererStyleFlags2","setProperty","removeProperty","setValue","nodeValue","listen","decoratePreventDefault","component","contentAttr","componentShortId","shimContentAttribute","hostAttr","shimHostAttribute","hostEl","shadowRoot","attachShadow","mode","nodeOrShadowRoot","DomEventsPlugin","EventManagerPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","A","B","C","D","E","F","G","H","I","J","K","M","N","O","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","meta","metaKey","shift","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","runOutsideAngular","domEventName","parts","toLowerCase","split","key","_normalizeKey","pop","modifierName","index","indexOf","splice","result","keyIdentifier","startsWith","String","fromCharCode","parseInt","substring","location","hasOwnProperty","getEventKey","modifierGetter","zone","getEventFullKey","runGuarded","keyName","platformBrowser","createPlatformFactory","platformCore","PLATFORM_ID","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","makeCurrent","init","ɵsetDocument","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","ErrorHandler","useClass","NgZone","RendererFactory2","useExisting","Testability","XhrFactory","BrowserModule","parentModule","params","ngModule","providers","ɵmod","ɵinj","imports","CommonModule","ApplicationModule","TransferState","store","onSerializeCallbacks","initState","transferState","defaultValue","undefined","hasKey","onSerialize","toJson","e","console","warn","JSON","stringify","script","getElementById","initialState","parse","text","unescapedText","s","unescapeHtml","BrowserTransferStateModule","initTransferState","DomSanitizer","DomSanitizerImpl","r","sanitize","ctx","SecurityContext","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","toString","ɵgetSanitizationBypassType","ɵ_sanitizeUrl","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","obj","Observable","isFunction","lift","subscribe","args","resultSelector","popResultSelector","sources","keys","argsArgArrayOrObject","subscriber","complete","values","remainingCompletions","remainingEmissions","sourceIndex","hasValue","innerFrom","createOperatorSubscriber","next","createObject","pipe","mapOneOrManyArgs","observableFactory","Subject","_bufferSize","Infinity","_windowTime","_timestampProvider","dateTimestampProvider","_buffer","_infiniteTimeWindow","Math","max","isStopped","now","_trimBuffer","_subscribe","_throwIfClosed","subscription","_innerSubscribe","copy","closed","_checkFinalizedStatuses","adjustedBufferSize","last","configOrBufferSize","windowTime","scheduler","bufferSize","refCount","share","connector","ReplaySubject","resetOnError","resetOnComplete","resetOnRefCountZero","TranslateFakeLoader","TranslateLoader","getTranslation","lang","of","FakeMissingTranslationHandler","handle","o1","o2","keySet","t1","equals","item","source","output","assign","isObject","mergeDeep","TranslateDefaultParser","TranslateParser","templateMatcher","interpolate","expr","interpolateString","interpolateFunction","getValue","isDefined","o","fn","b","TranslateFakeCompiler","TranslateCompiler","compile","compileTranslations","translations","currentLang","defaultLang","langs","onTranslationChange","EventEmitter","onLangChange","onDefaultLangChange","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","currentLoader","compiler","parser","missingTranslationHandler","useDefaultLang","isolate","extend","defaultLanguage","pending","_onTranslationChange","_onLangChange","_onDefaultLangChange","_langs","_translations","_translationRequests","setDefaultLang","_defaultLang","_currentLang","retrieveTranslations","take","res","changeDefaultLang","getDefaultLang","use","changeLang","loadingTranslations","shareReplay","map","updateLangs","error","err","setTranslation","shouldMerge","emit","getLangs","addLangs","getParsedResult","interpolateParams","observables","k","isObservable","forkJoin","arr","translateService","concatMap","getStreamOnTranslationChange","concat","defer","switchMap","stream","instant","reloadLang","resetLang","getBrowserLang","browserLang","languages","language","browserLanguage","userLanguage","getBrowserCultureLang","browserCultureLang","TranslateStore","MissingTranslationHandler","TranslatePipe","translate","_ref","lastKey","lastParams","updateValue","onTranslation","markForCheck","transform","query","validArgs","SyntaxError","_dispose","unsubscribe","ɵpipe","pure","TranslateModule","config","loader","http","prefix","suffix","BaseControlValueAccessor","_renderer","_elementRef","onChange","_","onTouched","nativeElement","registerOnTouched","registerOnChange","setDisabledState","isDisabled","ɵdir","BuiltInControlValueAccessor","features","NG_VALUE_ACCESSOR","DEFAULT_VALUE_ACCESSOR","forwardRef","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","elementRef","_compositionMode","_composing","test","_isAndroid","writeValue","_handleInput","_compositionStart","_compositionEnd","selectors","NG_VALIDATORS","NG_ASYNC_VALIDATORS","obs","ɵisPromise","ɵisObservable","arrayOfErrors","errors","validators","validator","validate","isValidatorFn","c","presentValidators","filter","isPresent","mergeErrors","executeValidators","compose","normalizeValidators","toObservable","composeAsync","controlValidators","dirValidator","includes","currentValidators","current","makeValidatorsArray","validatorsToAdd","v","hasValidator","_rawValidators","_rawAsyncValidators","_onDestroyCallbacks","valid","invalid","disabled","enabled","pristine","dirty","touched","status","untouched","statusChanges","valueChanges","path","_setValidators","_composedValidatorFn","composeValidators","_setAsyncValidators","_composedAsyncValidatorFn","composeAsyncValidators","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","reset","hasError","errorCode","getError","AbstractControlDirective","_parent","valueAccessor","formDirective","cd","_cd","is","_a","_b","_c","submitted","NgControlStatus","AbstractControlStatus","NgControl","NgControlStatusGroup","ControlContainer","dir","setUpValidators","newValue","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","setUpViewChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpModelChangePipeline","_pendingTouched","markAsTouched","setUpBlurPipeline","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","setUpDisabledChangeHandler","registerOnValidatorChange","getControlValidators","setValidators","mergeValidators","asyncValidators","getControlAsyncValidators","setAsyncValidators","onValidatorChange","updateValueAndValidity","markAsDirty","emitModelToViewChange","list","VALID","INVALID","PENDING","DISABLED","validatorOrOpts","isOptionsObj","isFormGroup","FormGroup","FormControl","isFormControl","getRawValue","isGroup","controls","ɵRuntimeError","_forEachChild","_hasOwnPendingAsyncValidator","_onCollectionChange","_onDisabledChange","coerceToValidator","coerceToAsyncValidator","validatorFn","asyncValidatorFn","_updateOn","addValidators","addAsyncValidators","removeValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","opts","onlySelf","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","markAsPending","emitEvent","disable","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","enable","setParent","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","delimiter","controlToFind","FormArray","isFormArray","at","_find","root","x","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_isBoxedValue","formState","_registerOnCollectionChange","_setUpdateStrategy","AbstractControl","pickValidators","pickAsyncValidators","_onChange","_applyFormState","initialValueIsDefault","options","emitViewToModelChange","patchValue","condition","removeListItem","cb","_syncPendingControls","_setUpControls","registerControl","addControl","removeControl","setControl","contains","controlName","assertAllValuesPresent","assertControlPresent","_reduceChildren","acc","subtreeUpdated","updated","child","_reduceValue","initValue","_registerControl","insert","removeAt","clear","reduce","some","formDirectiveProvider$1","NgForm","resolvedPromise$1","Promise","resolve","_directives","ngSubmit","form","ngAfterViewInit","container","_findContainer","setUpControl","getControl","addFormGroup","group","setUpFormContainer","removeFormGroup","getFormGroup","updateModel","onSubmit","$event","directives","syncPendingControls","onReset","resetForm","inputs","formControlBinding$1","NgModel","resolvedPromise","valueAccessors","_changeDetectorRef","_registered","update","defaultAccessor","builtinAccessor","customAccessor","getPrototypeOf","s_","selectValueAccessor","ngOnChanges","changes","_checkForErrors","_checkName","oldName","previousValue","_getPath","_setUpControl","_updateDisabled","viewModel","change","model","isFirstChange","currentValue","isPropertyUpdated","_isStandalone","_setUpStandalone","standalone","_checkParentType","disabledValue","controlPath","ChangeDetectorRef","ɵNgNoValidate","RadioControlRegistryModule","ɵInternalFormsSharedModule","FormsModule","_value","thrownError","operate","connection","_refCount","refCounter","sharedConnection","_connection","conn","connect","subjectFactory","_subject","hasLift","getSubject","subject","_teardown","Subscription","higherOrderRefCount","accumulator","seed","hasSeed","emitOnNext","emitBeforeComplete","hasState","state","scanInternals","EMPTY","buffer","RouterEvent","navigationTrigger","restoredState","urlAfterRedirects","reason","shouldActivate","route","snapshot","routeConfig","routerEvent","position","anchor","PRIMARY_OUTLET","prototype","call","getAll","ParamsAsMap","NAVIGATION_CANCELING_ERROR","message","segments","segmentGroup","pathMatch","hasChildren","posParams","part","segment","consumed","a","k1","k2","equalArraysOrString","aSorted","sort","bSorted","every","val","apply","prop","pathCompareMap","exact","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","children","equalSegmentGroups","subset","containsSegmentGroup","paramCompareMap","shallowEqual","ignored","paths","queryParams","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","parameters","queryParamMap","_queryParamMap","convertToParamMap","DEFAULT_SERIALIZER","serialize","serializePaths","parameterMap","_parameterMap","serializePath","as","bs","UrlParser","UrlTree","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","strParams","encodeUriQuery","join","serializeQueryParams","encodeURI","encodeUriFragment","DefaultUrlSerializer","primary","childOutlet","mapChildrenIntoArray","encodeURIComponent","encodeUriString","decodeURIComponent","decode","encodeUriSegment","serializeMatrixParams","SEGMENT_RE","str","match","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","UrlSegmentGroup","parseChildren","parseQueryParam","parseSegment","capture","parseParens","matchSegments","UrlSegment","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodeQuery","decodedVal","currentVal","allowPrimary","outletName","substr","_root","pathFromRoot","n","findNode","firstChild","siblings","findPath","cc","unshift","outlet","Tree","setRouterState","urlTree","rootComponent","activated","ActivatedRouteSnapshot","RouterStateSnapshot","TreeNode","createEmptyStateSnapshot","emptyUrl","BehaviorSubject","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","RouterState","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","paramsInheritanceStrategy","inheritingStartingFrom","curr","_resolvedData","flattenInherited","urlSegment","lastPathIndex","_urlSegment","_lastPathIndex","_resolve","serializeNode","currentSnapshot","nextSnapshot","shallowEqualArrays","equalUrlParams","equalSegments","equalParamsAndUrlSegments","routeReuseStrategy","prevState","shouldReuseRoute","createNode","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","command","outlets","segmentPath","oldRoot","oldSegmentGroup","newSegmentGroup","qp","newRoot","replaceSegment","oldSegment","newSegment","isAbsolute","numberOfDoubleDots","commands","isMatrixParams","cmdWithOutlet","find","isCommandWithOutlets","toRoot","processChildren","startIndex","updateSegmentGroupChildren","m","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","compare","prefixedWith","slicedCommands","g","createNewSegmentGroup","getOutlets","updateSegmentGroup","createNewSegmentChildren","futureState","currState","forwardEvent","activate","parentContexts","futureRoot","currRoot","deactivateChildRoutes","advanceActivatedRoute","activateChildRoutes","futureNode","currNode","contexts","nodeChildrenAsMap","futureChild","childOutletName","deactivateRoutes","childName","deactivateRouteAndItsChildren","parentContext","future","context","getContext","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","componentRef","detach","onOutletDeactivated","deactivate","attachRef","resolver","activateRoutes","ActivationEnd","ChildActivationEnd","getOrCreateContext","stored","onOutletReAttached","attach","_loadedConfig","parentLoadedConfig","cmpFactoryResolver","module","componentFactoryResolver","activateWith","routes","INITIAL_VALUE","Symbol","combineLatest","popScheduler","startWith","scan","isPending","innerAcc","isUrlTree","ChildrenOutletContexts","onChildOutletCreated","onChildOutletDestroyed","OutletContext","RouterOutlet","changeDetector","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","ngOnInit","isActivated","instance","activatedRoute","activatedRouteData","cmp","ref","hostView","resolveComponentFactory","childContexts","OutletInjector","createComponent","token","notFoundValue","ɵEmptyOutletComponent","ɵcmp","parentPath","validateNode","getFullPath","fullPath","validateConfig","currentRoute","standardizeConfig","loadChildren","sortedConfig","getOutlet","noMatch$1","matched","consumedSegments","remainingSegments","positionalParamSegments","matcher","defaultUrlMatcher","slicedSegments","relativeLinkResolution","emptyPathMatch","containsEmptyPathMatchesWithNamedOutlets","primarySegment","_sourceSegment","_segmentIndexShift","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","rawSegment","throwError","NoMatch$1","newTree","AbsoluteRedirect","moduleInjector","configLoader","urlSerializer","allowRedirects","NgModuleRef","splitGroup","rootSegmentGroup","expandSegmentGroup","createUrlTree","squashSegmentGroup","catchError","noMatchError","rootCandidate","expandChildren","expandSegment","childOutlets","sortedRoutes","sortByMatchingOutlets","expandedChild","predicate","hasDefaultValue","identity","takeLast","defaultIfEmpty","throwIfEmpty","EmptyError","last$1","expanded$","expandSegmentAgainstRoute","first","noLeftoversInUrl","isImmediateMatch","redirectTo","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","absoluteRedirect","lineralizeSegments","mergeMap","newSegments","rawSegmentGroup","load","cfg","getChildConfig","routerConfig","childModule","childConfig","splitSegmentGroup","matchedOnOutlet","cs","LoadedRouterConfig","runCanLoadGuards","shouldLoadResult","navigationCancelingError","canLoadFails","canLoad","canLoadObservables","injectionToken","guard","guardVal","isCanLoad","wrapIntoObservable","prioritizedGuardValue","tap","applyRedirectCreatreUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","pos","idx","newChildren","childCandidate","mergeTrivialChildren","getChildRouteGuards","getClosestLoadedConfig","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","CanActivate","CanDeactivate","getRouteGuards","rootComponentType","recognize","processSegmentGroup","freeze","rootNode","routeState","inheritParamsAndData","routeNode","inheritedParamsDataResolve","processSegment","outletChildren","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","nodes","localeCompare","processSegmentAgainstRoute","getData","getSourceSegmentGroup","getPathIndexShift","getResolve","mergedNodes","hasEmptyPathConfig","duplicateEmptyPathNode","resultNode","mergedNode","getOwnPropertySymbols","nextResult","detachedTree","ROUTES","onLoadStartListener","onLoadEndListener","parentInjector","_loader$","loadRunner","loadModuleFactory","flatten","InjectFlags","ConnectableObservable","NgModuleFactory","compileModuleAsync","shouldProcessUrl","extract","merge","newUrlPart","wholeUrl","runExtras","exactMatchOptions","subsetMatchOptions","Router","rootContexts","lastSuccessfulNavigation","currentNavigation","disposed","navigationId","currentPageId","isNgZoneEnabled","events","errorHandler","defaultErrorHandler","malformedUriErrorHandler","defaultMalformedUriErrorHandler","navigated","lastSuccessfulId","hooks","beforePreactivation","defaultRouterHook","afterPreactivation","urlHandlingStrategy","DefaultUrlHandlingStrategy","DefaultRouteReuseStrategy","onSameUrlNavigation","urlUpdateStrategy","canceledNavigationResolution","ɵConsole","ngZone","resetConfig","currentUrlTree","createEmptyUrlTree","rawUrlTree","browserUrlTree","RouterConfigLoader","triggerEvent","RouteConfigLoadStart","RouteConfigLoadEnd","routerState","createEmptyState","transitions","targetPageId","currentRawUrl","extractedUrl","rawUrl","extras","reject","promise","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","navigations","setupNavigations","processNavigations","browserPageId","getState","ɵrouterPageId","eventsSubject","completed","errored","initialUrl","trigger","previousNavigation","urlTransition","isBrowserTriggeredNavigation","transition","NavigationStart","serializeUrl","ApplyRedirects","applyRedirects$1","applyRedirects","finalUrl","serializer","Recognizer","newObservableError","NoMatch","recognize$1","skipLocationChange","setBrowserUrl","routesRecognized","RoutesRecognized","navStart","replaceUrl","switchTap","appliedUrlTree","guardsStart","GuardsCheckStart","getAllRouteGuards","futureRSS","currRSS","check","currARS","canDeactivate","canDeactivateObservables","getToken","observable","isCanDeactivate","runCanDeactivate","runCanDeactivateChecks","isBoolean","ChildActivationStart","fireChildActivationStart","ActivationStart","fireActivationStart","futureARS","canActivateChildGuardsMapped","canActivateChildGuards","canActivateChild","getCanActivateChild","d","guardsMapped","isCanActivateChild","runCanActivateChild","canActivate","canActivateObservables","isCanActivate","runCanActivate","runCanActivateChecks","checkGuards","guardsEnd","GuardsCheckEnd","restoreHistory","cancelNavigationTransition","resolveStart","ResolveStart","dataResolved","canActivateChecksResolved","getDataKeys","getResolver","resolveNode","resolvedData","runResolve","resolveData","resolveEnd","ResolveEnd","createRouterState","ActivateRoutes","finalize","isNavigationCancelingError","redirecting","navCancel","NavigationCancel","setTimeout","mergedTree","scheduleNavigation","navError","NavigationError","ee","resetRootComponentType","setTransition","initialNavigation","setUpLocationChangeListener","navigateByUrl","locationSubscription","stateCopy","parseUrl","getCurrentNavigation","dispose","navigationExtras","relativeTo","queryParamsHandling","preserveFragment","f","q","removeEmptyProps","nav","Navigation","cmd","cmdIdx","urlPart","partIndex","computeNavigation","startingPosition","Position","modifier","ci","dd","createPositionApplyingDoubleDots","findStartingPosition","navigate","validateCommands","isActive","matchOptions","containsTree","NavigationEnd","priorPromise","rej","catch","generateNgRouterState","isCurrentPathEqualTo","replaceState","go","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","historyGo","routerPageId","RouterLink","router","tabIndexAttribute","onChanges","setTabIndexIfNotOnNativeEl","newTabIndex","routerLink","onClick","attrBoolValue","RouterLinkWithHref","locationStrategy","updateTargetUrlAndHref","button","prepareExternalUrl","i3","preload","RouterPreloader","preloadingStrategy","setUpPreloading","processRoutes","preloadConfig","mergeAll","PreloadingStrategy","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","setHistoryScrollRestoration","routerEventsSubscription","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","getScrollPosition","scheduleScrollEvent","scrollToPosition","scrollToAnchor","ROUTER_CONFIGURATION","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","Location","UrlSerializer","assignExtraOptionsToRouter","enableTracing","log","groupEnd","Compiler","Optional","NoPreloading","NgProbeToken","RouterModule","provideRoutes","provideForRootGuard","SkipSelf","LocationStrategy","provideLocationStrategy","PlatformLocation","Inject","APP_BASE_HREF","createRouterScroller","ViewportScroller","routerNgProbeToken","RouterInitializer","getAppInitializer","ROUTER_INITIALIZER","getBootstrapListener","APP_BOOTSTRAP_LISTENER","provideRouterInitializer","scrollOffset","setOffset","platformLocationStrategy","baseHref","useHash","HashLocationStrategy","PathLocationStrategy","ANALYZE_FOR_ENTRY_COMPONENTS","initNavigation","destroyed","resultOfPreactivationDone","appInitializer","LOCATION_INITIALIZED","bootstrapListener","bootstrappedComponentRef","preloader","routerScroller","ApplicationRef","components","componentTypes","bind","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","isEventTarget","methodName","addListener","removeListener","isNodeStyleEventEmitter","toCommonHandlerRegistry","on","off","isJQueryStyleEventEmitter","isArrayLike","subTarget","TypeError","period","asyncScheduler","timer","UserIdleService","_ngZone","timerStart$","idleDetected$","timeout$","idleMillisec","idleSensitivityMillisec","timeout","pingMillisec","isTimeout","isInactivityTimer","isIdleDetected","setConfig","startWatching","activityEvents$","idle$","idleSubscription","bufferTimeSpan","otherArgs","bufferCreationInterval","maxBufferSize","bufferRecords","restartOnEmit","record","subs","arrRemove","startBuffer","executeSchedule","bufferTimeSubscriber","recordsCopy","bufferTime","interval","notifier","noop","takeUntil","setupTimer","setupPing","stopWatching","stopTimer","resetTimer","onTimerStart","comparator","keySelector","defaultCompare","previousKey","currentKey","distinctUntilChanged","start","timer$","onIdleStatusChanged","asObservable","onTimeout","getConfigValue","idle","idleSensitivity","ping","setConfigValues","setCustomActivityEvents","customEvents","Date","startDate","round","valueOf","elapsed","ping$","UserIdleConfig","UserIdleModule","one","eventsEngine","triggerHandler","Event","setHost","setTemplate","template","subscriptions","hasEvent","getEmitter","observers","fireEvent","emitter","run","eventSubscriptions","subcription","handlersObj","addEmitter","lockedValueChangeEvent","fireNgEvent","eventArgs","createEmitters","WatcherHelper","_watchers","getWatchMethod","valueGetter","valueChangeCallback","oldValue","skipImmediate","watcher","_isDifferentValues","deep","deepCheck","comparableNewValue","_toComparable","comparableOldValue","_checkObjectsFields","getTime","checkingFromObject","checkingToObject","field","isEqualObjects","equalByValue","checkWatchers","DX_TEMPLATE_WRAPPER_CLASS","DxTemplateDirective","templateRef","viewContainerRef","templateHost","dxTemplateOf","renderTemplate","renderData","childView","createEmbeddedView","$implicit","getElement","rootNodes","render","isStable","detectChanges","domAdapter","_angularIntegration","DxTemplateHost","DxTemplateModule","VISIBILITY_CHANGE_SELECTOR","BaseNestedOption","_initialOptions","_collectionContainerImpl","CollectionNestedOptionContainerImpl","_setOption","_filterItems","_optionChangedHandler","fullOptionPath","_fullOptionPath","fullName","_createEventEmitters","_getOption","isLinked","option","_addRemovedOption","removedNestedComponents","_deleteRemovedOptions","_addRecreatedComponent","recreatedNestedComponents","getOptionPath","_getOptionPath","_hostOptionPath","_optionPath","optionPath","_host","optionChangedHandlers","setChildren","propertyName","items","resetOptions","isRecreated","decls","vars","rf","_activatedQueries","widgetItems","_index","serverStateKey","NestedOption","ɵNestedOption_BaseFactory","CollectionNestedOption","ɵCollectionNestedOption_BaseFactory","hasChildNodes","userContent","childNodes","tagNamePrefix","nodeName","resultInContainer","resultInBody","changeHandlers","hasClass","triggerShownEvent","getHost","setNestedOption","nestedOption","getServerStateKey","makeStateKey","DxComponent","watcherHelper","platformId","_optionsToUpdate","changedOptions","widgetUpdateLocked","templateUpdateRequired","templates","eventHelper","EmitterHelper","_updateTemplates","updatedTemplates","_initEvents","_initOptions","integrationOptions","watchMethod","_initPlatform","renderedOnServer","isPlatformServer","eventsStrategy","strategy","NgEventsStrategy","nestedComponentOptions","_shouldOptionChange","prevValue","clearChangedOptions","lockWidgetUpdate","beginUpdate","unlockWidgetUpdate","endUpdate","_createWidget","onInitializing","_createInstance","_destroyWidget","ngDoCheck","applyOptions","ngAfterContentChecked","ngAfterViewChecked","collectionName","resetOption","nestedComponent","DxComponentExtension","createInstance","ɵDxComponentExtension_BaseFactory","outsideZoneEvents","insideZoneEvents","originalAdd","callbacks","readyCallbackAdd","callBase","readyCallbacks","doInjections","xhrFactory","Number","VERSION","_document","isTextNode","isDocument","httpRequest","getXhr","_xhr","withCredentials","runReadyCallbacksInZone","DxIntegrationModule","i1","IterableDifferHelper","_differs","_propertyDiffers","setup","setupSingle","getChanges","diff","checkChangedOptions","propName","hostValue","doCheck","iterator","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","$element","$","getTranslate","left","top","y","elementData","clearCache","removeData","getTranslateCss","isPercentValue","matrix","css","is3D","cacheTranslate","parseFloat","z","move","resetPosition","finishTransition","originalTransition","stylesConfig","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","easingName","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","abs","polynomBezier","hasWindow","getWindow","request","cancel","requestID","clearTimeout","setAnimationFrameMethods","callOnce","nativeRequest","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","resizeCallbacks","prevSize","Callbacks","originalCallbacksAdd","originalCallbacksRemove","formatSize","width","innerWidth","height","innerHeight","handleResize","changedDimension","fire","setPrevSize","$current","getSessionStorage","sessionStorage","ready","changeCallback","$originalViewPort","isNewViewportFound","prevViewPort","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","deviceType","platform","version","phone","tablet","android","ios","generic","grade","mac","UA_PARSERS","isPhone","isTablet","isDesktop","isMac","appleTouchDevice","getNavigator","isIpadOs","maxTouchPoints","matches","screen","isAndroid","isWinPhone","UA_PARSERS_ARRAY","devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_eventsStrategy","EventsStrategy","changed","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","real","forceDevice","orientation","isForced","isRippleEmulator","tinyHippos","_getCssClasses","device","realDevice","isSimulator","Config","rtlEnabled","attachCssClasses","_deviceClasses","detachCssClasses","_isSimulator","self","forceSimulator","deviceName","isPlainObject","_fromConfig","ua","_fromUA","SessionStorage","getItem","ex","_changeOrientation","$window","getHeight","getWidth","windowWidth","_currentWidth","viewPortElement","viewPort","prevViewport","transitionEndEventNames","webkitTransition","MozTransition","OTransition","supportProp","styleProp","inputType","input","touchEvents","hasWindowProperty","detectTouchEvents","hasProperty","pointerEvents","detectPointerEvent","touch","transitionEndEventName","animation","nativeScrolling","isNativeScrollingSupported","getDefaultAlignment","isRtlEnabled","getBoundingRect","isWindow","outerWidth","outerHeight","getBoundingClientRect","webkitRegExp","mozillaRegExp","browserFromUA","exec","browserName","browserVersion","webkit","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","browser","normalizeAlign","raw","h","pair","splitPair","each","w","normalizeOffset","preventRound","pairToObject","getAlignFactor","align","inverseAlign","calculateOversize","bounds","oversize","myLocation","min","collisionSide","direction","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","offset","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","overflow","appendTo","offsetWidth","clientWidth","defaultPositionResult","calculatePosition","what","$what","currentOffset","my","precise","collision","normalizeCollision","boundary","boundaryOffset","getOuterWidth","getOuterHeight","pageX","pageY","scrollLeft","scrollTop","visualViewport","offsetLeft","offsetTop","ofRect","getOffsetWithoutScale","win","windowHeight","documentElement","hZoomLevel","vZoomLevel","clientHeight","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","number","setScaleProperty","scale","styleAttr","isEmpty","stylePropIsValid","newStyleValue","styleAttributeNode","setAttributeNode","$startElement","_currentElement$getAt","_style$match","$currentElement","currentElement","targetPosition","calculate","registerEvent","eventObject","noBubble","bindType","delegateType","removeEvent","eventPropName","beforeCleanData","elements","addNamespace","eventNames","focusableFn","tabIndex","parents","visible","isTabIndexNotNaN","isNaN","isContentEditable","focusable","attr","tabbable","focused","KEY_MAP","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","LEGACY_KEY_CODES","EVENT_SOURCES_REGEX","dx","mouse","keyboard","pointer","isDxEvent","eventSource","isNativeTouchEvent","isPointerEvent","isMouseEvent","isNativeMouseEvent","pointerType","isDxMouseWheelEvent","isTouchEvent","eventData","_ref3","timeStamp","time","eventDelta","to","hasTouches","originalEvent","pointers","touches","needSkipEvent","$target","hasAttribute","touchInEditable","which","createEvent","copyEvent","props","delegateTarget","normalizeKeyName","_ref4","normalizedKey","normalizedKeyFromWhich","getChar","_ref5","isCommandKeyPressed","_ref6","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","transitionProperty","setProps","that","deferred","Deferred","cleanupWhen","transitionAnimation","finish","_finishTransition","when","always","_cleanup","resolveWith","_completeAnimationCallback","done","fail","rejectWith","duration","animate","_startAnimation","simulatedEndEventTimer","startTime","delay","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","cleanup","waitForJSCompleteTimer","stop","fx","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","className","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","draw","animationFrameId","delayTimeout","_animationStep","transformString","translateData","translateString","parseTranslate","scaleData","rotateData","_calcStepValue","currentDuration","endPropValue","calcValueRecursively","getEasing","numericValue","FallbackToNoAnimationStrategy","isSynchronous","baseConfigValidator","animationType","typeMessage","isObjectConfigValidator","CssAnimationConfigurator","isStringConfigValidator","positionAliases","bottom","right","SlideAnimationConfigurator","positioningConfig","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","visibility","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","custom","slide","slideIn","slideOut","fade","fadeIn","fadeOut","defaultJSConfig","defaultCssConfig","configurator","getPublicElement","startAnimationOnElement","isStarted","onElementAnimationComplete","stopAnimationOnElement","startTimeout","scopedRemoveEvent","createAnimation","initialConfig","getAnimationConfigurator","animationStrategies","frame","noAnimation","getAnimationStrategy","setupAnimationOnElement","subscribeToRemoveEvent","destroyAnimQueueData","queueData","getAnimQueueData","executeAnimation","isAnimating","shiftFromAnimationQueue","positionUtils","currentPosition","animationTypes","pushInAnimationQueue","writeAnimQueueData","resetActiveElement","_activeElement$blur","activeElement","blur","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","normalizeTemplateElement","isRenderer","html","contents","trim","clipboardText","clipboard","clipboardData","setData","getRootNode","isString","getRootNodeHost","createTextElementHiddenCopy","elementStyles","getComputedStyle","includePaddings","fontStyle","fontVariant","fontWeight","fontSize","fontFamily","letterSpacing","border","paddingTop","paddingRight","paddingBottom","paddingLeft","whiteSpace","float","replaceWith","newElement","isElementInDom","shadowHost","closest","relatedTarget","currentTarget","POINTER_EVENTS_NAMESPACE","BaseStrategy","Class","ctor","originalEvents","_eventName","_originalEvents","_handlerCount","_isNoBubble","_handler","_originalEvent$target","_getDelegateTarget","_originalEvent$path","_originalEvent$compos","composedPath","_fireEvent","_setSelector","handleObj","_selector","selector","_getSelector","teardown","normalizeTouchEvent","pointerId","identifier","changedTouches","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalize","addEventsListener","eventMap","pointerEquals","onPointerAdding","getPointerIndex","removePointer","observer","normalizeMouseEvent","activateStrategy","Observer","MouseStrategy","resetObserver","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","EventStrategy","support","pointerEventStrategy","eventStrategyName","GlobalConfig","getStrategyFromGlobalConfig","getStrategy","down","up","leave","over","out","Emitter","_$element","_cancelCallback","_acceptCallback","validatePointers","allowInterruptionByMouseWheel","configure","addCancelCallback","removeCancelCallback","empty","_cancel","addAcceptCallback","removeAcceptCallback","_accept","_requestAccept","_acceptRequestEvent","_forgetAccept","_getEmitterTarget","delegateSelector","EVENT_NAME","EVENT_NAMESPACE","wheel","_wheelHandler","deltaMode","deltaY","deltaX","deltaZ","delta","_normalizeDelta","stopPropagation","MANAGER_EVENT","EMITTER_DATA","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","wheelEventName","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","method","arg","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","emitters","handleEmitter","acceptedEmitter","_cancelEmitter","canceledEmitter","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","closestGestureEmitter","gesture","getDirection","EMITTER_SUBSCRIPTION_DATA","emitterConfig","emitterClass","emitterName","emitterEvents","bubble","disposeEmitter","CLICK_EVENT_NAME","prevented","lastFiredEvent","onNodeRemove","clickHandler","DXCLICK_FIRED","nodesByEvent","unsubscribeNodesDisposing","subscribeNodesDisposing","ClickEmitter","blurPrevented","isDefaultPrevented","registerEmitter","MemorizedCallbacks","COMPONENT_NAMES_DATA_KEY","componentNames","WeakMap","nextAnonymousComponent","getName","componentClass","newName","generatedName","componentInstance","disposeFn","isMemberInvoke","memberName","memberArgs","getInstance","memberValue","publicComponentName","triggerVisibilityChangeEvent","triggerHidingEvent","triggerResizeEvent","renderedCallbacks","syncStrategy","$result","onRendered","renovated","transclude","_element","append","_renderCore","_ensureResultInContainer","$container","TemplateBase","currentTemplateEngine","templateEngines","templateEngine","registerTemplateEngine","clone","setTemplateEngine","_compiledTemplate","getCurrentTemplateEngine","array","_map$get","wrapToArray","removeDuplicates","toRemove","toRemoveMap","createOccurrenceMap","occurrencesCount","normalizeIndexes","indexPropName","currentItem","needIndexCallback","indexedItems","useLegacyVisibleIndex","currentIndex","shouldUpdateIndex","orderEach","findTemplates","optionsString","optionsParser","addOneRenderedCall","templateResult","templateKey","templateSource","defaultCreateElement","Template","acquireTemplate","createTemplate","isAsyncTemplate","skipTemplates","defaultTemplates","EmptyTemplate","ChildDefaultTemplate","integrationTemplate","_extends","addPublicElementNormalization","acquireIntegrationTemplate","Action","action","_action","_context","_beforeExecute","beforeExecute","_afterExecute","afterExecute","_component","_validatingTargetName","validatingTargetName","excludeValidators","_excludeValidators","execute","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","executor","_executor$execute","registerExecutor","_len","_key","createValidatorByTargetElement","readOnly","func","toComparable","hasNegation","cachedGetters","convertRulesToOptions","rules","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","isEmptyObject","findBestMatches","getFieldName","lastIndexOf","getParentName","cachedSetters","optionsByReference","_options","_optionsByReference","_setByReference","rulesOptions","fieldName","_setPreparedValue","silent","getPathParts","_changingCallback","compileSetter","functionsAsIs","unwrapObservables","_changedCallback","_prepareRelevantNames","valueName","_namePreparedCallbacks","compileGetter","_name","onRelevantNamesPrepared","callBack","onChanging","onChanged","defaultOptions","deprecatedOptions","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","OptionManager","_setRelevantNames","_cachedOptions","_rules","_initial","_getByRules","optionName","_notifyDeprecated","info","_deprecatedCallback","normalizedName","_normalizeName","_setField","_clearField","fieldObject","previousFieldName","deprecate","alias","addRules","applyRules","_startChangeCallback","_endChangeCallback","onDeprecated","onStartChange","onEndChange","isInitial","initialValue","initial","optionsObject","getNestedOptionValue","getAliasesByName","aliasName","isDeprecated","cache","_postponedOperations","postponedPromise","promises","completePromise","callPostponedOperations","operation","getEventName","actionName","isInnerOption","Component","_setDeprecatedOptions","_deprecatedOptions","_getDeprecatedOptions","_getDefaultOptions","onInitialized","onOptionChanged","onDisposing","defaultOptionsRules","_defaultOptionsRules","_setOptionsByDevice","_convertRulesToOptions","_isInitialOptionValue","_setOptionsByReference","_getOptionsByReference","_optionChangedCallbacks","_disposingCallbacks","NAME","_updateLockCount","postponedOperations","PostponedOperations","_createOptions","Options","_initialized","_optionChanging","_logDeprecatedOptionWarning","_notifyOptionChanged","_init","_createOptionChangedAction","fireWith","since","_logDeprecatedComponentWarning","_optionChangedAction","_createActionByOption","_createDisposingAction","_disposingAction","_optionChanged","_disposed","_lockUpdate","_unlockUpdate","_isUpdateAllowed","_isInitializingRequired","_initializing","isInitialized","_commitUpdate","_initializeComponent","optionNames","_defaultActionArgs","_cancelOptionChange","initialOption","_defaultActionConfig","_createAction","actionSource","actionValue","actionFunc","_this","_len2","_key2","wrapActionsBeforeExecute","beforeActionExecute","wrappedAction","hasActionSubscription","isOptionDeprecated","_setOptionWithoutOptionChange","_getOptionValue","_render","DX_POLYMORPH_WIDGET_TEMPLATE","FunctionTemplate","widgetName","widget","widgetElement","widgetOptions","_createComponent","anonymousTemplateName","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createElement","_createTemplateIfNeeded","useDeferUpdateForTemplates","addDefaultTemplates","tempTemplate","extractTemplates","$el","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","rawTemplates","templatesMap","getGroupName","groupedResult","_groupedResult$groupN","groupName","groupBy","Errors","_findBestMatches$","suitableTemplate","suitableTemplatesByName","_ref2","_createTemplate","$anonymousTemplate","isEmptyText","cachedTemplate","validateTemplateSource","getTemplate","templateSourceResult","getNormalizedTemplateArgs","COMPOSITION_START_EVENT","NAMESPACE","createKeyDownOptions","code","KeyboardProcessor","_keydown","focusTarget","_focusTarget","_processFunction","focusTargets","toArray","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","pureAddNamespace","resize","shown","hiding","focus","keyboardProcessors","listenerId","base64","Uint8Array","atob","charCodeAt","TokenKind","PUBLIC_KEY","hash","dataLength","concatBytes","string","byte","hexToBytes","padding","fill","bytes","stringToBytes","words","Uint32Array","bytesToWords","ceil","preprocess","j","_j","_j2","temp","leftRotate","wordsToBytes","corrupted","verified","internal","GENERAL_ERROR","kind","VERIFICATION_ERROR","DECODING_ERROR","DESERIALIZATION_ERROR","PAYLOAD_ERROR","VERSION_ERROR","validationPerformed","encodedKey","signature","encodedSignature","zero","BigInt","eight","bigIntFromBytes","cur","actual","base","exponent","modulus","compareSignatures","base64ToBytes","pad","sha1","verifySignature","decodedPayload","payload","customerId","maxVersionAllowed","format","internalUsageId","rest","propertyIsEnumerable","__rest","licenseKey","preview","major","minor","patch","license","parseLicenseKey","packageVersion","getLicenseCheckParams","abstract","DOMComponent","elementAttr","_useTemplates","TemplateManager","_customClass","attachInstanceToElement","validationAlreadyPerformed","peekValidationPerformed","_getSynchronizableOptionsForCreateComponent","_checkFunctionValueDeprecation","_visibilityChanged","_dimensionChanged","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","windowResizeCallbacks","_renderComponent","_initMarkup","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","addShadowDomStyles","attributes","classNames","class","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_isCssUpdateRequired","resizeEvent","_isHidden","_isVisible","visibilityEvents","_checkVisibilityChanged","_clean","_modelByElement","modelByElement","_invalidate","_requireRefresh","_refresh","_templateManager","_detachWindowResizeCallback","rtl","toggleClass","synchronizableOptions","grep","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","_removeAttributes","attrs","_removeClasses","cssClass","_updateDOMComponent","renderRequired","cleanDataRecursive","_getAnonymousTemplateName","_initTemplates","anonymousTemplate","_getTemplateByOption","_getTemplate","_saveTemplate","getInstanceByElement","rule","maxLevel","normalizeArg","isFinite","xItem","yItem","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","FeedbackEvent","_timeout","_fire","_schedule","force","_timer","_fired","fired","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","eventTarget","mouseEvent","deferFeedback","ensureDefined","skipTimers","lockInactive","lock","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","guid","HoverStart","inherit","HoverEnd","Widget","_feedbackHideTimeout","_feedbackShowTimeout","_supportedKeys","hoveredElement","hint","activeStateEnabled","onContentReady","hoverStateEnabled","focusStateEnabled","accessKey","onFocusIn","onFocusOut","onKeyboardHandled","ignoreParentReadOnly","useResizeObserver","compareVersions","_initContentReadyAction","_innerWidgetOptionChanged","innerWidget","getOptionsFromContainer","_bindInnerWidgetOptions","optionsContainer","syncOptions","_getAriaTarget","_contentReadyAction","_toggleDisabledState","_toggleVisibility","_renderHint","_isFocusable","_renderFocusTarget","_renderContent","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","deferRender","_renderContentImpl","_fireContentReadyAction","deferRenderer","_detachKeyboardEvents","_resetActiveState","_toggleActiveState","_eventBindingTarget","_cleanFocusState","_attachKeyboardEvents","_attachFocusEvents","_renderAccessKey","_getActiveElement","_isFocusTarget","_findActiveTarget","_activeStateUnit","not","_keyboardEventBindingTarget","_refreshFocusEvent","_detachFocusEvents","_focusEventTarget","_focusInHandler","_updateFocusState","_focusOutHandler","isFocused","_toggleFocusClass","_hasFocusClass","_isFocused","_getKeyboardListeners","hasChildListeners","_keyboardListenerId","_keyboardHandler","onlyChildProcessing","keyboardListeners","_refreshFocusState","removeAttr","hover","executeAction","_hoverStartHandler","_hoverEndHandler","active","inactive","showTimeout","hideTimeout","_ref7","focusIn","focusOut","isFocusable","focusableSelector","_updatedHover","_hover","_findHoverTarget","$previous","newHoveredElement","Boolean","setAria","_setWidgetOption","widgetOptionMap","_ready","_isReady","isReady","repaint","registerKeyHandler","currentKeys","discardPendingTasks","_tasks","_busy","task","removeTaskCallback","busy","createQueue","queryImpl","arrayQueryImpl","remote","queryOptions","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","unmergedTasks","rejectWithNotify","handleError","adapter","queryAdapters","optimize","mergeSortTask","extra","clientChain","remoteQueryImpl","impl","ArrayStore","Store","initialArray","_array","createQuery","Query","_errorHandler","_byKeyImpl","indexByKey","rejectedPromise","trivialPromise","_insertImpl","_pushImpl","applyBatch","keyInfo","_updateImpl","_removeImpl","_excluded","CANCELED_TOKEN","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapRecursive","level","mapper","restItem","_objectWithoutPropertiesLoose","mapGroup","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","CustomStore","createCustomStoreFromUrl","normalizationOptions","ajaxUtils","dataType","loadMode","fromUrlLoadMode","normalizeDataSourceOptions","paginate","createStoreFromConfig","_counter","_deferreds","operationId","cancelAll","DataSource","_options$reshapeOnPus","_store","_changedTime","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingPushHandler","throttleChanges","_onPush","_onPushHandler","_aggregationTimeoutId","waitFor","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","postProcess","_pageIndex","pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","searchValue","_searchOperation","searchOperation","_searchExpr","searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","_operationManager","OperationManager","_items","_userData","_totalCount","_isLoaded","_isLastPage","_this$_delayedLoadTas","_delayedLoadTask","abort","names","customNames","_customLoadOptions","loadOptions","newIndex","isNumeric","isLastPage","generateStoreLoadOptionAccessor","normalizedArgs","newFilter","select","_len3","_key3","requireTotalCount","op","argc","_this$_store","totalCount","isLoaded","isLoading","beginLoading","_changeLoadingCount","endLoading","increment","oldLoading","newLoading","_scheduleLoadCallbacks","_scheduleFailCallbacks","_len4","_key4","_fireChanged","date","_scheduleChangedCallbacks","loadSingle","propValue","_createStoreLoadOptions","skip","refresh","searchString","_byKeyViaLoad","byKey","isEmptyArray","_applyMapFunction","loadTask","_loadFromStore","loadOperation","_createLoadOperation","executeAsync","changingArgs","groupLevel","dataSourceChanges","postProcessChanges","groupCount","useInsertIndex","storeLoadOptions","langParams","_langParams","reload","_clearCache","_addSearchOptions","_useDefaultSearch","_addSearchFilter","userData","searchFilter","pendingDeferred","handleSuccess","loadResult","_processStoreLoadResult","resolvePendingDeferred","_applyPostProcessFunction","groupInfo","normalizeSortingInfo","mapDataRespectingGrouping","DataControllerMock","loadFromStore","loadNextPage","addSearchFilter","resetDataSourcePageIndex","keyOf","applyMapFunction","getDataSource","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","postCtor","_disposeDataSource","_refreshDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSource","_dataSourceType","_addDataSourceHandlers","_initDataController","_this$option","dataController","_dataController","dataSource","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","readyWatcher","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","_isDataSourceLoading","CollectionItem","rawData","_rawData","$placeholder","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","fieldGetter","filteredCallback","forcibleWatcher","_dirty","setDataField","_updateOwnerFocus","ownerComponent","owner","_resetItemFocus","nb","nn","o3","parentLocales","locale","parentLocale","Xl","dependencyInjector","currentLocale","getValueByClosestLocale","getter","isRootLocale","getParentLocale","baseDictionary","en","Yes","No","Cancel","Close","Clear","Done","Loading","Select","Search","Back","OK","newMessages","messageLocalization","engine","_dictionary","messages","_localizablePrefix","localizablePrefix","localizeString","regex","RegExp","escapeString","localizationKey","defaultResult","humanize","getMessagesByLocales","getDictionary","onlyNew","coreLocalization","getFormatter","_getFormatterBase","localeData","_Object$entries$find","entries","getDataByLocale","stringFormat","formatter","HOLD_EVENT_NAME","HoldEmitter","_startEventData","_startTimer","holdTimeout","_holdTimer","_touchWasMoved","_stopTimer","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","fields","fieldsMap","_fields","_fieldsMap","_watchMethod","fieldsDispose","globalDispose","dataWithRawFields","missedFields","watchHandlers","isPrimitive","watchChanges","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","FOCUS_DOWN","CollectionWidget","_moveFocus","space","_enterKeyHandler","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","$itemElement","itemData","_getItemData","_itemEventHandlerByHandler","_itemClickHandler","selectOnFocus","loopItemFocus","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","encodeNoDataText","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_displayGetter","_initItemsFromMarkup","_initDefaultItemTemplate","_getFieldsMap","BindableTemplate","_prepareDefaultItemTemplate","_getBindableFields","rawItems","innerHTML","_prepareItemTemplate","templateId","Guid","$template","_dataSourceOptions","_renderedItemsCount","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_updateFocusedItemState","activeElements","eq","$newTarget","$items","_getAvailableItems","FOCUS_PAGE_UP","_prevItem","FOCUS_PAGE_DOWN","_nextItem","_getVisibleItems","$itemElements","_itemElements","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_updateParentActiveDescendant","getFocusedItemId","_isDisabled","isTargetDisabled","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","property","ItemClass","_refreshItem","_itemIndexKey","_renderItem","itemPath","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_expectNextPageLoading","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_shouldAppendItems","_refreshContent","_prepareContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_cleanItemContainer","_inkRipple","_itemContainer","_itemFocusTimeout","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_attachClickEvent","_getPointerEvent","itemSelector","clickEventNamespace","clickEventName","pointerEventNamespace","pointerAction","_itemPointerDownHandler","_itemDXEventHandler","_itemFocusHandler","$closestItem","$closestFocusable","_closestFocusable","_forcePointerDownFocus","$itemContainer","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","contextMenuEventName","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","_getItemsContainer","_setAttributes","customClassValue","currentClassValue","$itemToReplace","_index$item","itemIndex","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemElement","itemContent","_executeItemRenderAction","itemTemplateName","_getItemTemplateName","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","$node","classes","_appendItemToContainer","_itemOptions","displayValue","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","_onItemTemplateRendered","_emptyMessageContainer","hideNoData","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsSize","dimension","includeMargin","_focusedItemId","itemsContainer","include","CollectionWidgetItem","errorUtils","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","E1061","E1062","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1016","W1017","W1018","W1019","W1020","W1021","W1022","W1023","W1024","W1025","EditStrategy","collectionWidget","_collectionWidget","getIndexByItemData","getItemDataByIndex","getKeysByItems","getItemsByKeys","itemsGetter","getKeyByIndex","resultIndex","_denormalizeItemIndex","_equalKeys","key1","key2","_isKeySpecified","beginCache","_cache","endCache","getIndexByKey","getNormalizedIndex","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","getIndex","getItemElement","_getItemByNormalizedIndex","normalizedItemIndex","deleteItemAtIndex","itemPlacementFunc","movingIndex","destinationIndex","_itemsFromSameParent","moveItemAtIndexToIndex","PlainEditStrategy","_getPlainItems","movedItemData","_clearItemKeys","onSelectionChanged","addedItemKeys","removedItemKeys","addedItems","removedItems","selectedItems","selectedItemKeys","equalKeys","equalByReference","getSelectableItems","_clearSelection","preserve","isDeselect","isSelectAll","_removeTemplateProperty","remoteFilter","_loadFilteredData","localFilter","filterLength","needLoadAllData","maxFilterLengthInRequest","dataFields","filteredItems","dataQuery","updateSelectedItemKeyHash","keyHash","getKeyHash","keyHashIndices","_isAnyItemSelected","isItemSelected","_getFullSelectAllState","plainItems","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","SelectionStrategy","getSelectedItems","selectionFilter","getSelectedItemKeys","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","keyExpr","_getFilterByKey","skipFilter","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","_isOnlyNegativeFiltersLeft","filters","filterItem","_selectionFilter","currentFilter","currentOperation","needAddFilter","removedIndex","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","getSelectAllState","loadSelectedItemsWithFilter","componentFilter","getKeyWrapper","getKey","getSameNewByOld","oldItem","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","newItem","oldNextIndex","nextOldItem","oldIndex","SelectionFilterCreator","selectedItemKeyHashesMap","selectedKeyHashesMap","normalizedKeys","normalizeKeys","keyValue","getLocalFilter","keyGetter","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","getCombinedFilter","dataSourceFilter","forceCombinedFilter","combinedFilter","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","allowNullValue","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","added","removed","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","oldKeys","newKeys","isKeysEqual","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","getUniqueValues","_loadSelectedItems","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","indices","_shiftSelectedKeyIndices","currentKeyIndex","currentKeyHash","currentKeyIndices","keyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","checkPending","_this$_lastRequestDat3","visibleOnly","selectedKeys","_selectionStrategy","deferredStrategy","standardStrategy","_focusedItemIndex","filterIsChanged","setSelection","deselect","_keys","clearSelection","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","setFocusOnly","_this$options$allowLo","_this$options","isSelectedItemsChanged","indexOffset","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","it","loadIndex","allowLoadByRange","_shiftFocusedItemIndex","isSelectable","isDataItem","itemKey","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","isSelected","clearSelectedItems","Ee","_resetFocusedItemIndex","getLoadOptions","itemIndexStep","endIndex","indexOffsetDefined","focusedItem","focusedData","focusedKey","isFocusedItemSelected","selectAll","isOnePage","_onePageSelectAll","deselectAll","ITEM_DELETING_DATA_KEY","indexExists","BaseCollectionWidget","selectedItem","selectionMode","selectionRequired","selectByClick","selectedIndex","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_keyGetter","_getKeysByItems","_editStrategy","_getItemsByKeys","_getKeyByIndex","_getIndexByKey","_getIndexByItemData","_getCombinedFilter","_nullValueSelectionSupported","_selection","Selection","_updateSelectedItems","_getItemsCount","_dataController$loadO","customQueryParams","itemsCount","_getSelectedItemIndices","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","selectedItemIndex","isOptionDefined","optionValue","_compareKeys","newSelection","currentSelection","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","_itemSelectPromise","unselectItem","_selectedItemElement","_isItemSelected","_processSelectableItem","_setAriaSelectionAttribute","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_i","_removeSelection","_updateSelection","_fireSelectionChangeEvent","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","fromPromise","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","_updateIndicesAfterIndex","_simulateOptionChange","_deleteItemElementByIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","$movingItem","$destinationItem","fromIndex","toIndex","PRIVATE_KEY_FIELD","repaintChangesOnly","_this$_dataController","_customizeStoreLoadOptions","_correctionIndex","_refreshItemsCache","_findItemElementByKey","keysEqual","_isItemEquals","_modifyByChanges","item1","item2","_isItemStrictEquals","_shouldAddNewGroup","_partialRefresh","_itemsCache","itemCache","_updateByChange","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_afterItemElementInserted","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","$removedItemElement","nextSiblingElement","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","ICON_CLASS","getImageSourceType","getImageContainer","themeReadyCallback","viewPortValue","viewPortChanged","initDeferred","DX_LINK_SELECTOR","DX_HAIRLINES_CLASS","defaultTimeout","themeName","waitStartTime","timerId","intervalCleared","clearInterval","isPendingThemeLoaded","handleLoaded","setInterval","anyThemePending","themeMarker","readThemeMarker","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","newContext","initContext","$allThemeLinks","parseHTML","link","fullThemeName","after","processMarkup","theme","currentThemeData","isAutoInit","_autoInit","loadCallback","resolveFullThemeName","_forceTimeout","waitForThemeLoad","originalViewPort","themeNameParts","isMaterialBased","getCssClasses","pixelRatio","devicePixelRatio","$tester","themeRegExp","isMaterial","isFluent","isTheme","testElement","etalonFontWidth","testedFontWidth","intervalId","timeoutId","isWebFontLoaded","autoInit","ACCORDION_ITEM_CLASS","ACCORDION_ITEM_OPENED_CLASS","ACCORDION_ITEM_CLOSED_CLASS","ACCORDION_ITEM_TITLE_CLASS","ACCORDION_ITEM_BODY_CLASS","Accordion","itemTitleTemplate","onItemTitleClick","collapsible","multiple","animationDuration","deferRendering","role","_animationEasing","_$container","title","$iconElement","icon","wrapInner","_deferredItems","_deferredTemplateItems","multiselectable","selectedItemIndices","_renderSelection","_updateItemHeights","_itemTitles","_itemContents","itemTitle","_attachItemTitleClickAction","_itemTitleClickHandler","_updateItems","_updateItemHeightsWrapper","iteratorUtils","skipAnimation","_animationTimer","deferredAnimate","_deferredAnimate","itemHeight","_splitFreeSpace","_calculateFreeSpace","_updateItemHeight","$title","finalItemHeight","startItemHeight","setHeight","_animateItem","startHeight","endHeight","fixedHeight","freeSpace","$titles","itemsHeight","_tryParseItemPropertyName","expandItem","collapseItem","updateDimensions","registerComponent","DxoAdapterModule","DxoAdaptiveLayoutModule","DxoAggregationIntervalModule","DxoAggregationModule","DxoAnimationConfig","hide","show","maxPointCountSupported","staggerDelay","ɵDxoAnimationConfig_BaseFactory","DxoAnimationComponent","parentOptionHost","optionHost","NestedOptionHost","DxoAnimationModule","DxiChartAnnotationConfig","allowDragging","argument","arrowLength","arrowWidth","axis","color","customizeTooltip","description","font","image","offsetX","offsetY","paddingLeftRight","paddingTopBottom","series","shadow","textOverflow","tooltipEnabled","tooltipTemplate","wordWrap","angle","radius","coordinates","ɵDxiChartAnnotationConfig_BaseFactory","DxiAnnotationComponent","DxiAnnotationModule","DxoApiKeyModule","DxoAppointmentDraggingModule","DxoChartCommonSeriesSettings","aggregation","area","argumentField","bar","barOverlapGroup","barPadding","barWidth","candlestick","closeValueField","cornerRadius","dashStyle","fullstackedarea","fullstackedbar","fullstackedline","fullstackedspline","fullstackedsplinearea","highValueField","hoverMode","hoverStyle","ignoreEmptyPoints","innerColor","label","line","lowValueField","maxLabelCount","minBarSize","openValueField","pane","point","rangearea","rangebar","rangeValue1Field","rangeValue2Field","reduction","scatter","selectionStyle","showInLegend","sizeField","spline","splinearea","stack","stackedarea","stackedbar","stackedline","stackedspline","stackedsplinearea","steparea","stepline","stock","tagField","valueErrorBar","valueField","argumentType","minSegmentSize","smallValuesGrouping","ɵDxoChartCommonSeriesSettings_BaseFactory","DxoAreaModule","DxiVizScaleBreak","endValue","startValue","ɵDxiVizScaleBreak_BaseFactory","DxiBreakComponent","DxiBreakModule","DxiConstantLineComponent","displayBehindSeries","extendAxis","DxiConstantLineModule","DxiStripComponent","DxiStripModule","DxoArgumentAxisComponent","aggregateByCategory","aggregatedPointsPosition","aggregationGroupWidth","aggregationInterval","allowDecimals","axisDivisionFactor","breaks","breakStyle","categories","constantLines","constantLineStyle","customPosition","customPositionAxis","discreteAxisDivisionMode","endOnTick","grid","holidays","linearThreshold","logarithmBase","maxValueMargin","minorGrid","minorTick","minorTickCount","minorTickInterval","minValueMargin","minVisualRangeLength","placeholderSize","singleWorkdays","strips","stripStyle","tick","tickInterval","valueMarginsEnabled","visualRange","visualRangeUpdateMode","wholeRange","workdaysOnly","workWeek","firstPointOnStartAngle","originValue","startAngle","breaksChildren","constantLinesChildren","stripsChildren","contentQueries","dirIndex","_t","outputs","categoriesChange","visualRangeChange","DxoArgumentAxisModule","DxoArgumentFormatModule","DxoAtModule","DxoAutoLayoutModule","DxoBackgroundColorModule","DxoBackgroundModule","DxoBarModule","DxoBehaviorModule","DxoBorderModule","DxoBoundaryOffsetModule","DxiButtonGroupItem","titleTemplate","stylingMode","baseSize","box","ratio","shrink","beginGroup","closeMenuOnClick","selectable","selected","colSpan","dataField","editorOptions","editorType","helpText","isRequired","itemType","validationRules","visibleIndex","alignItemLabels","caption","colCount","colCountByScreen","tabPanelOptions","tabs","badge","tabTemplate","buttonOptions","horizontalAlignment","verticalAlignment","locateInMenu","menuItemTemplate","showText","imageAlt","imageSrc","acceptedValues","formatName","formatValues","showChevron","linkAttr","heightRatio","widthRatio","expanded","hasItems","parentId","ɵDxiButtonGroupItem_BaseFactory","DxiValidationRuleComponent","ignoreEmptyValue","reevaluate","validationCallback","comparisonTarget","comparisonType","pattern","DxiValidationRuleModule","DxiHtmlEditorImageUploadTabItem","groups","ɵDxiHtmlEditorImageUploadTabItem_BaseFactory","DxiDiagramCustomCommand","ɵDxiDiagramCustomCommand_BaseFactory","DxiCommandComponent","itemsChildren","DxiItemComponent","DxiCommandModule","DxiGroupComponent","displayMode","shapes","commandsChildren","DxiGroupModule","_c0$4","DxiTabComponent","groupsChildren","extractTemplate","ngContentSelectors","DxiTabModule","DxiLocationComponent","lat","lng","col","colspan","row","rowspan","DxiLocationModule","_c0$3","validationRulesChildren","tabsChildren","locationChildren","DxiItemModule","DxoBoxModule","DxoBreakStyleModule","DxoBubbleModule","DxiTextEditorButton","ɵDxiTextEditorButton_BaseFactory","DxiButtonComponent","DxiButtonModule","DxoButtonOptionsModule","DxoCalendarOptionsModule","DxoCandlestickModule","DxiCenterModule","DxiDataChange","insertAfterKey","insertBeforeKey","ɵDxiDataChange_BaseFactory","DxiChangeComponent","DxiChangeModule","DxiChartSeries","tag","ɵDxiChartSeries_BaseFactory","DxiSeriesComponent","DxiSeriesModule","DxoChartModule","DxoColCountByScreenModule","DxiColModule","DxoCollisionModule","DxoColorModule","DxoColorizerModule","DxoColumnChooserModule","DxiDataGridColumn","alignment","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowResizing","allowSearch","allowSorting","autoExpandGroup","buttons","calculateCellValue","calculateDisplayValue","calculateFilterExpression","calculateGroupValue","calculateSortValue","cellTemplate","columns","customizeText","editCellTemplate","encodeHtml","falseText","filterOperations","filterType","filterValue","filterValues","fixed","fixedPosition","formItem","groupCellTemplate","groupIndex","headerCellTemplate","headerFilter","hidingPriority","isBand","lookup","minWidth","ownerBand","renderAsync","selectedFilterOperation","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortingMethod","sortOrder","trueText","ɵDxiDataGridColumn_BaseFactory","DxiColumnComponent","buttonsChildren","columnsChildren","filterValueChange","filterValuesChange","groupIndexChange","selectedFilterOperationChange","sortIndexChange","sortOrderChange","visibleChange","visibleIndexChange","DxiColumnModule","DxoColumnFixingModule","DxoCommonAnnotationSettingsModule","DxoCommonAxisSettingsModule","DxoCommonPaneSettingsModule","DxoCommonSeriesSettingsComponent","DxoCommonSeriesSettingsModule","DxiConnectionPointModule","DxoConnectorComponent","DxoConnectorModule","DxoConstantLineStyleModule","DxoContextMenuModule","DxoContextToolboxModule","DxoControlBarModule","DxoCrosshairModule","DxoCursorOffsetModule","DxiFilterBuilderCustomOperation","dataTypes","editorTemplate","ɵDxiFilterBuilderCustomOperation_BaseFactory","DxiCustomOperationComponent","DxiCustomOperationModule","DxiCustomShapeModule","DxoDataPrepareSettingsModule","DxiFilterBuilderField","allowCrossGroupCalculation","allowExpandAll","allowSortingBySummary","areaIndex","calculateCustomSummary","calculateSummaryValue","displayFolder","groupInterval","isMeasure","precision","runningTotal","showGrandTotals","showTotals","showValues","sortBy","sortBySummaryField","sortBySummaryPath","summaryDisplayMode","summaryType","wordWrapEnabled","ɵDxiFilterBuilderField_BaseFactory","DxiFieldComponent","DxiFieldModule","DxoDataSourceModule","DxoDefaultItemPropertiesModule","DxoDelayModule","DxoDependenciesModule","DxoDetailsModule","DxoDisplayFormatModule","DxoDragBoxStyleModule","DxoPopupOptions","closeOnOutsideClick","contentTemplate","copyRootClassesToWrapper","dragAndResizeArea","dragEnabled","dragOutsideBoundary","enableBodyScroll","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","resizeEnabled","restorePosition","shading","shadingColor","showCloseButton","showTitle","toolbarItems","wrapperAttr","hideEvent","showEvent","ɵDxoPopupOptions_BaseFactory","_c0$1","DxiToolbarItemComponent","toolbar","DxiToolbarItemModule","DxoDropDownOptionsComponent","toolbarItemsChildren","heightChange","positionChange","widthChange","DxoDropDownOptionsModule","DxoEdgesModule","DxoEditingComponent","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","texts","useIcons","allowAddShape","allowChangeConnection","allowChangeConnectorPoints","allowChangeConnectorText","allowChangeShapeText","allowDeleteConnector","allowDeleteShape","allowMoveShape","allowResizeShape","allowDependencyAdding","allowDependencyDeleting","allowResourceAdding","allowResourceDeleting","allowResourceUpdating","allowTaskAdding","allowTaskDeleting","allowTaskResourceUpdating","allowTaskUpdating","allowTimeZoneEditing","changesChildren","changesChange","editColumnNameChange","editRowKeyChange","DxoEditingModule","DxoExportComponent","backgroundColor","fileName","formats","margin","printingEnabled","svgToCanvas","allowExportSelectedData","DxoExportModule","DxoFieldChooserModule","DxoFieldPanelModule","DxiFileManagerToolbarItem","ɵDxiFileManagerToolbarItem_BaseFactory","DxiFileSelectionItemComponent","DxiFileSelectionItemModule","DxoFileUploaderOptionsModule","DxoFilterBuilderPopupModule","DxoFilterBuilderOptions","allowHierarchicalFields","customOperations","filterOperationDescriptions","groupOperationDescriptions","groupOperations","maxGroupLevel","onEditorPrepared","onEditorPreparing","onValueChanged","ɵDxoFilterBuilderOptions_BaseFactory","DxoFilterBuilderComponent","customOperationsChildren","fieldsChildren","valueChange","DxoFilterBuilderModule","DxoFilterOperationDescriptionsModule","DxoFilterPanelModule","DxoGanttFilterRow","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","ɵDxoGanttFilterRow_BaseFactory","DxoFilterRowComponent","DxoFilterRowModule","DxoFontModule","DxoFormItemModule","DxoFormOptions","alignItemLabelsInAllGroups","customizeItem","formData","isDirty","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","ɵDxoFormOptions_BaseFactory","DxoFormComponent","formDataChange","DxoFormModule","DxoFormatModule","DxoFromModule","DxoFullstackedareaModule","DxoFullstackedbarModule","DxoFullstackedlineModule","DxoFullstackedsplineModule","DxoFullstackedsplineareaModule","DxoGeometryModule","DxoGridSizeModule","DxoGridComponent","DxoGridModule","DxiGroupItemModule","DxoGroupOperationDescriptionsModule","DxoGroupPanelComponent","allowColumnDragging","emptyPanelText","DxoGroupPanelModule","DxoGroupModule","DxoGroupingComponent","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","DxoGroupingModule","DxoHatchingModule","DxoGanttHeaderFilter","allowSelectAll","search","searchMode","searchTimeout","showRelevantValues","ɵDxoGanttHeaderFilter_BaseFactory","DxoHeaderFilterComponent","DxoHeaderFilterModule","DxoHeightModule","DxoHideEventModule","DxoHideComponent","DxoHideModule","DxoHistoryToolbarModule","DxoHorizontalLineModule","DxoHoverStyleModule","DxoImageUploadModule","DxoImageModule","DxoIndentModule","DxoItemDraggingModule","DxoItemTextFormatModule","DxoItemViewModule","DxoItemModule","DxoKeyboardNavigationModule","DxoLabelComponent","connectorColor","connectorWidth","indent","customizeHint","indentFromAxis","overlappingBehavior","rotationAngle","staggeringSpacing","argumentFormat","displayFormat","horizontalOffset","showForZeroValues","verticalOffset","hideFirstOrLast","indentFromTick","useRangeColors","showColon","radialOffset","topIndent","useNodeColors","DxoLabelModule","DxiLayerModule","DxiLegendModule","DxoLegendComponent","columnCount","columnItemSpacing","customizeItems","itemsAlignment","itemTextFormat","itemTextPosition","markerSize","markerTemplate","rowCount","rowItemSpacing","DxoLegendModule","DxoLineModule","DxoLinkModule","DxoLoadPanelComponent","indicatorSrc","showIndicator","showPane","DxoLoadPanelModule","DxoLoadingIndicatorModule","DxoLookupComponent","allowClearing","valueExpr","DxoLookupModule","DxoMainToolbarModule","DxoMarginModule","DxiMarkerModule","DxoMarkerModule","_c0","DxoMasterDetailComponent","DxoMasterDetailModule","DxoMaxRangeModule","DxoMediaResizingModule","DxiHtmlEditorMention","marker","minSearchLength","ɵDxiHtmlEditorMention_BaseFactory","DxiMentionComponent","DxiMentionModule","DxiMenuItemComponent","DxiMenuItemModule","DxoMinRangeModule","DxoMinVisualRangeLengthModule","DxoMinorGridModule","DxoMinorTickIntervalModule","DxoMinorTickComponent","DxoMinorTickModule","DxoMyModule","DxoNodeModule","DxoNodesModule","DxoNotificationsModule","DxoOffsetModule","DxoOperationDescriptionsModule","DxoOptionsModule","DxoPageSizeModule","DxoPagerComponent","allowedPageSizes","infoText","showInfo","showNavigationButtons","showPageSizeSelector","DxoPagerModule","DxoPagingComponent","pageIndexChange","pageSizeChange","DxoPagingModule","DxiPaneComponent","DxiPaneModule","DxoPermissionsModule","DxoPointComponent","size","symbol","DxoPointModule","DxoPopupComponent","DxoPopupModule","DxoPositionConfig","ɵDxoPositionConfig_BaseFactory","DxoPositionComponent","DxoPositionModule","DxoProjectionModule","DxoPropertiesPanelModule","DxiRangeComponent","DxiRangeModule","DxoRangeContainerComponent","palette","paletteExtensionMode","ranges","horizontalOrientation","verticalOrientation","rangesChildren","DxoRangeContainerModule","DxoRangeareaModule","DxoRangebarModule","DxoReductionModule","DxoRemoteOperationsComponent","filtering","grouping","groupPaging","paging","sorting","summary","DxoRemoteOperationsModule","DxoResourceAssignmentsModule","DxiResourceModule","DxoResourcesModule","DxiRouteModule","DxoRowDraggingComponent","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","DxoRowDraggingModule","DxiRowModule","DxoScaleTypeRangeModule","DxoScaleComponent","customMinorTicks","customTicks","scaleDivisionFactor","maxRange","minRange","placeholderHeight","showCustomBoundaryTicks","valueType","DxoScaleModule","DxoScatterModule","DxoScrollBarModule","DxoSchedulerScrolling","columnRenderingMode","preloadEnabled","rowRenderingMode","scrollByContent","scrollByThumb","showScrollbar","useNative","ɵDxoSchedulerScrolling_BaseFactory","DxoScrollingComponent","DxoScrollingModule","DxoTextBoxOptions","inputAttr","isValid","mask","maskChar","maskInvalidMessage","maskRules","maxLength","onCopy","onCut","onEnterKey","onInput","onKeyDown","onKeyUp","onPaste","placeholder","showClearButton","showMaskMode","spellcheck","useMaskedValue","validationError","validationErrors","validationMessageMode","validationMessagePosition","validationStatus","valueChangeEvent","ɵDxoTextBoxOptions_BaseFactory","DxoSearchEditorOptionsComponent","textChange","DxoSearchEditorOptionsModule","DxoSearchPanelComponent","highlightCaseSensitive","highlightSearchText","searchVisibleColumnsOnly","DxoSearchPanelModule","DxoSearchModule","DxoSelectionStyleModule","DxoColumnChooserSelectionConfig","recursive","selectAllMode","showCheckBoxesMode","ɵDxoColumnChooserSelectionConfig_BaseFactory","DxoSelectionComponent","DxoSelectionModule","DxoSeriesTemplateModule","DxoShadowModule","DxoShowEventModule","DxoShowFirstSubmenuModeModule","DxoShowSubmenuModeModule","DxoShowComponent","DxoShowModule","DxoShutterModule","DxoSizeModule","DxoSliderHandleModule","DxoSliderMarkerModule","DxoSmallValuesGroupingModule","DxiSortByGroupSummaryInfoComponent","groupColumn","summaryItem","DxiSortByGroupSummaryInfoModule","DxoGanttSorting","ascendingText","clearText","descendingText","showSortIndexes","ɵDxoGanttSorting_BaseFactory","DxoSortingComponent","DxoSortingModule","DxoSourceModule","DxoSplineModule","DxoSplineareaModule","DxoStackedareaModule","DxoStackedbarModule","DxoStackedlineModule","DxoStackedsplineModule","DxoStackedsplineareaModule","DxoStateStoringComponent","customLoad","customSave","savingTimeout","storageKey","DxoStateStoringModule","DxoStepareaModule","DxoSteplineModule","DxoStockModule","DxoStoreModule","DxiStripLineModule","DxoStripStyleModule","DxoSubtitleComponent","DxoSubtitleModule","DxoSubvalueIndicatorModule","DxiTotalItemModule","DxoSummaryModule","DxoTabPanelOptionsModule","DxoTableContextMenuModule","DxoTableResizingModule","DxoTasksModule","DxoTextModule","DxoGanttHeaderFilterTexts","fix","leftPosition","rightPosition","unfix","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","exportAll","exportSelectedRows","exportTo","clearFilter","createFilter","filterEnabledHint","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","emptyValue","ok","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","allFields","columnFields","filterFields","rowFields","columnFieldArea","dataFieldArea","filterFieldArea","rowFieldArea","collapseAll","dataNotAvailable","expandAll","exportToExcel","grandTotal","noData","removeAllSorting","showFieldChooser","sortColumnBySummary","sortRowBySummary","total","addRowToNode","ɵDxoGanttHeaderFilterTexts_BaseFactory","DxoTextsComponent","DxoTextsModule","DxoTickIntervalModule","DxoTickComponent","DxoTickModule","DxoTileModule","DxoTitleComponent","subtitle","DxoTitleModule","DxoToModule","DxoDataGridToolbar","fileSelectionItems","multiline","ɵDxoDataGridToolbar_BaseFactory","DxoToolbarComponent","fileSelectionItemsChildren","DxoToolbarModule","DxoToolboxModule","DxoTooltipComponent","interactive","zIndex","shared","isShown","showMode","customizeLinkTooltip","customizeNodeTooltip","linkTooltipTemplate","nodeTooltipTemplate","DxoTooltipModule","DxoUploadModule","DxoUrlModule","DxoValidationModule","DxiValueAxisComponent","autoBreaksEnabled","maxAutoBreakCount","multipleAxesSpacing","showZero","synchronizedValue","DxiValueAxisModule","DxoValueAxisComponent","DxoValueAxisModule","DxoValueErrorBarModule","DxoValueFormatModule","DxoValueIndicatorModule","DxoVariablesModule","DxoVerticalLineModule","DxiViewModule","DxoViewToolbarModule","DxoWidthModule","DxoZoomAndPanModule","DxoZoomLevelModule","DxAccordionComponent","_watcherHelper","_idh","DxAccordion","setupChanges","isSetup","isChanged","i2","accessKeyChange","activeStateEnabledChange","animationDurationChange","collapsibleChange","dataSourceChange","deferRenderingChange","disabledChange","elementAttrChange","focusStateEnabledChange","hintChange","hoverStateEnabledChange","itemHoldTimeoutChange","itemsChange","itemTemplateChange","itemTitleTemplateChange","keyExprChange","multipleChange","noDataTextChange","repaintChangesOnlyChange","rtlEnabledChange","selectedIndexChange","selectedItemChange","selectedItemKeysChange","selectedItemsChange","tabIndexChange","DxAccordionModule","sign","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","inRange","toExponential","exponentShift","exponentialNotation","mantissa","getExponentialNotation","separatedAdjustedValue","getPrecision","separatedValue","sourceValue","absValue","isExponentValue","isExponential","integerPart","getExponent","floor","toPrecision","_isEdgeBug","positionOfDelimiter","NaN","pow","_valueString$split$","valueString","digitsCount","toFixed","precisionMultiplier","roundByAbs","multiplyInExponentialForm","valuePrecision","adjustedValue","adjustValue","DEFAULT_CONFIG","thousandsSeparator","decimalSeparator","floatFormat","removeStubs","valuePart","minDigitCount","maxDigitCount","formatPart","escapeIndex","isEscape","isPercent","isNegative","valueText","isIntegerPart","char","nextText","nextValueText","parseValue","hasGroups","valueTextParts","decimalSeparatorIndex","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","getOpenXmlCurrencyFormat","mFe","af","agq","ak","am","ar","asa","ast","az","bas","be","bem","bez","bg","bm","bn","bo","br","brx","ca","ccp","ce","ceb","cgg","chr","ckb","cy","da","dav","de","dje","doi","dsb","dua","dyo","dz","ebu","eo","es","et","eu","ewo","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gsw","gu","guz","gv","ha","haw","he","hi","hr","hsb","hu","hy","ia","ig","ii","ja","jgo","jmc","jv","ka","kab","kam","kde","kea","kgp","khq","ki","kk","kkj","kl","kln","km","kn","ko","kok","ks","ksb","ksf","ksh","ku","kw","ky","lag","lb","lg","lkt","ln","lo","lrc","lt","lu","luo","luy","lv","mai","mas","mer","mfe","mg","mgh","mgo","mi","mk","ml","mn","mni","mr","ms","mt","mua","mzn","naq","nd","nds","ne","nl","nmg","nnh","no","nus","nyn","om","or","os","pa","pcm","pl","ps","pt","qu","rm","rn","ro","rof","ru","rw","rwk","sa","sah","saq","sat","sbp","sc","sd","se","seh","ses","sg","shi","si","sk","sl","smn","sn","so","sq","sr","su","sv","sw","ta","te","teo","tg","th","ti","tk","tr","tt","twq","tzm","ug","uk","und","ur","uz","vai","vi","vun","wae","wo","xh","xog","yav","yi","yo","yrl","yue","zgh","zh","zu","CURRENCY_STYLES","detectCurrencySymbolRegex","formattersCache","localizationCoreUtils","Intl","NumberFormat","_normalizeFormatConfig","fractionDigits","minimumIntegerDigits","useGrouping","maximumFractionDigits","_getPrecisionConfig","_formatConfig$useCurr","useAccountingStyle","useCurrencyAccountingStyle","dxConfig","defaultUseCurrencyAccountingStyle","currency","defaultCurrency","currencySign","minimumFractionDigits","_format","_normalizeFormat","_getCurrencySymbolInfo","getCurrencyFormatter","_extractCurrencySymbolInfo","currencyValueString","targetCurrency","currencySymbol","accountingFormat","encodedCurrencySymbol","encodeSymbols","openXmlCurrencyFormat","accountingFormats","hasIntl","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","largenumber","thousands","millions","billions","trillions","numberLocalization","numericFormats","defaultLargeNumberFormatPostfixes","_parseNumberFormatString","formatType","formatObject","formatList","power","_calculateNumberPower","minPower","maxPower","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","powString","_addZeroes","multiplier","_addGroupSeparators","_getSeparators","getDecimalSeparator","getThousandsSeparator","convertDigits","toStandard","digits","fromFirstDigit","toFirstDigit","regExp","getNegativeEtalonRegExp","separators","digitalRegExp","escapeRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","unlimitedIntegerDigits","signFormatParts","signParts","getSignParts","isPositive","numberFormat","floatPointIndex","getFloatPointIndex","floatFormatParts","minFloatPrecision","getRequiredDigitCount","maxFloatPrecision","getNonRequiredDigitCount","isPercentFormat","minIntegerPrecision","maxIntegerPrecision","integerLength","floatPrecision","groupSizes","formatString","singleQuotesLeft","getGroupSizes","valueParts","valueIntegerPart","normalizeValueString","reverseString","valueFloatPart","groupSize","applyGroups","integerString","formatNumberPart","floatString","cleanedText","_calcSignificantDigits","parsed","integer","fractional","calcDigitsAfterLeadingZeros","inject","currencyLocalization","intlNumberLocalization","EMAIL_VALIDATION_REGEX","defaultMessage","defaultFormattedMessage","_isValueEmpty","rulesValidators","required","valueArray","itemValue","_validate","BaseRuleValidator","dataGetter","extraParams","numeric","useCultureSettings","range","validNumber","validValue","isDate","stringLength","CustomRuleValidator","async","callbackResult","isPromise","_getWrappedPromise","otherValue","email","GroupConfig","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","brokenRules","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","_removePendingValidator","_orderBrokenRules","orderedRules","foundRules","_updateBrokenRules","_resolveIfComplete","_synchronizeValidationInfo","removeRegisteredValidator","registerValidator","ValidationEngine","getGroupConfig","findGroup","_$element$data","_$element$data$dxComp","dxComponents","dxValidationGroup","$dxGroup","initGroups","addGroup","removeGroup","_setDefaultMessage","_addBrokenRule","brokenRule","_rules$","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","all","_getAsyncRulesResult","registerValidatorInGroup","_shouldRemoveGroup","validatorsInGroup","initValidationOptions","initedOptions","synchronizeValidationOptions","newStatus","validateGroup","resetGroup","second","key$1","isNull","EMPTY_OBJ","parentDOM","newNode","nextNode","childNode","arrayFn","vNode","startEdge","$LI","childFlags","findChildVNode","len","removeVNodeDOM","insertOrAppend","moveVNodeDOM","nextProps","getDerivedStateFromProps","combineFrom","renderCheck","componentComparator","createVNode","renderComplete","lastValue","nextValue","isLinkEventObject","isUndefined","arg1","childFlag","V","normalizeChildren","resolveComponentFlags","defaultProps","isNullOrUndef","mergeUnsetProperties","mergeDefaultProps","defaultHooks","mergeDefaultHooks","createVoidVNode","createTextVNode","vNodeToClone","propsToClone","oldChildren","createFragment","directClone","cloneFragment","isInvalid","newKey","_normalizeVNodes","isStringOrNumber","oldKey","isPrefixedKey","newChildFlags","needsCloning","isNullKey","isPrefixed","xlinkNS","xmlNS","namespaces","onDblClick","onKeyPress","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","getDelegatedEventObject","attachedEvents","syntheticEvents","eventsObject","$EV","attachedEvent","dispatchEvents","extendEventProperties","rootClickEvent","rootEvent","normalizeEventName","attachEventToDocument","isClick","getTargetNode","currentEvent","cancelBubble","immediatePropagationStopped","stopImmediatePropagation","defaultPrevented","isPropagationStopped","defineProperty","configurable","nativeListenerName","applyValue","fnMethod","$V","triggerEventListener","newVNode","enumerable","writable","previousArgs","wrapped","onTextInputChange","createWrappedFunction","applyValueInput","wrappedOnChange","nextPropsOrEmpty","checked","isCheckedType","updateChildOption","updateChildOptions","emptywrapper","onSelectChange","applyValueSelect","mounting","multiplePropInBoolean","isNumber","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","domValue","isControlled","safeCall1","lifecycle","unmount","unmountRef","unmountSyntheticEvent","unmountAllChildren","componentWillUnmount","$UN","onComponentWillUnmount","findDOMfromVNode","clearDOM","isSVG","hasControlledValue","lastVNode","autofocus","lastAttrValue","nextAttrValue","domStyle","cssText","patchStyle","nextHtml","__html","tempdom","isSameInnerHTML","patchDangerInnerHTML","lastEvent","nextEvent","updateOrAddSyntheticEvent","isLastValueSameLinkEvent","handleSyntheticEvent","ev","wrapLinkEvent","attachEvent","patchEvent","Co","isFormElement","isControlledFormElement","inputEvents","selectEvents","textAreaEvents","addFormElementEventHandlers","patchProp","processElement","nextInput","normalizeRoot","childContext","getChildContext","$CX","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","createDerivedState","componentWillMount","$BR","$PS","renderNewInput","mountElement","createClassComponentInstance","mount","mountClassComponentCallbacks","mountClassComponent","renderFunctionalComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountArrayChildren","mountFragment","placeHolderVNode","mountPortal","documentCreateElement","setTextContent","childrenIsSVG","mountProps","mountRef","componentDidMount","createClassMountCallback","onComponentWillMount","onComponentDidMount","createOnMountCallback","nextVNode","nextFlags","newDom","lastDom","replaceChild","replaceWithNewNode","lastProps","lastPropsOrEmpty","prop$1","nextChildren","nextClassName","patchContentEditableChildren","patchChildren","nextRef","lastRef","patchElement","nextState","componentWillReceiveProps","updateClassComponent","patchClassComponent","shouldUpdate","nextHooksDefined","lastInput","onComponentShouldUpdate","onComponentWillUpdate","onComponentDidUpdate","patchFunctionalComponent","patchText","lastChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchFragment","lastContainer","nextContainer","patchPortal","parentVNode","replaceOneVNodeWithMultipleVNodes","patchSingleTextChild","removeAllChildren","lastLength","nextLength","aLength","bLength","outerEdge","nextPos","aEnd","bEnd","aNode","bNode","outer","aStart","bStart","aLeft","bLeft","Int32Array","canRemoveWholeContent","moved","patched","seq","arrI","u","maxLen","lis_algorithm","patchKeyedChildrenComplex","patchKeyedChildren","lastChildrenLength","nextChildrenLength","nextChild","lastChild","commonLength","patchNonKeyedChildren","lastState","hasSCU","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","createDidUpdate","rootInput","callAll","__render","QUEUE","nextTick","microTaskPending","newState","stateKey","applyState","$F","rerender","QU","$QU","queue","callSetStateCallbacks","pendingState","forceUpdate","queueStateChanges","setState","_nextProps","_nextState","_nextContext","InfernoEffectHost","lockCount","callEffects","effects","areObjectsEqual","firstObject","secondObject","firstObjectKeys","secondObjectKeys","_pendingContext","BaseInfernoComponent","_effects","createEffects","updateEffects","destroyEffects","InfernoComponent","vDomElement","vDomUpdateClasses","currentClasses","addedClasses","dxClasses","previous","removedClasses","indexInRemoved","indexInAdded","contextId","createContext","Provider","effect","dependency","currentDependency","createReRenderEffect","InfernoEffect","reRender","currentNode","_M","hydrateVNode","prevVNodeIsTextNode","dangerouslySetInnerHTML","isSamePropsInnerHTML","currentDom","isClass","_CI","_MCCC","_HI","_MFCC","hydrateComponent","_ME","hydrateChildren","_MP","_MR","hydrateElement","hydrateText","findLastDOMFromVNode","hydrateFragment","componentHooks","_children","newProps","arguments$1","childLen","createComponentVNode","getFlagsForElementVnode","L","NUMBER_STYLES","uppercasePattern","kebabCase","getNumberStyleValue","onAfterRender","onPreRender","mountNode","hydrate","shallowEquals","$oldContainerContent","content","_props$model","rendered","isDxElementWrapper","renderTemplateContent","$actualContainerContent","oldElement","removeDifferentElements","isEqual","nextModel","nextTemplate","equalityComparer","nextData","nextIndex","fullNameParts","cloneObjectValue","cloneObjectProp","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","ComponentWrapper","_shouldRaiseContentReady","validateKeyDownHandler","_propsInfo","allowNull","twoWay","getSupportedKeyNames","_viewComponent","keyDown","viewRef","_this$_viewRef","_viewRef","_checkContentReadyOption","contentReadyOptions","_getContentReadyOptions","_fireContentReady","_actionsMap","viewDefaultProps","_getViewComponentDefaultProps","defaultName","_getUnwrappedOption","unwrappedProps","_this$_templateManage","getDefaultTemplates","optionProxy","_props","_optionsWithDefaultTemplates","_componentTemplates","_createTemplateComponent","_getActionConfigsFull","_addAction","defaultKeyHandlers","_createDefaultKeyHandlers","getProps","_renderWrapper","containerNode","_isNodeReplaced","_silent","_removeWidget","_elementAttr","_attributes$attr$name","specified","updatedAttributes","_storedClasses","elemStyle","getPropertyValue","_getAdditionalActionConfigs","_getAdditionalProps","_patchOptionValues","defaultWidgetPropsKeys","widgetProps","event_options","_patchElementParam","prepareStyleProp","_this$elementAttr$cla","_elementAttr$class","_extractDefaultSlot","aria","_aria","_getActionConfigs","_templatesInfo","templateOptions","_options$templateName","templateName","templateValue","customKeyHandlers","actionToAdd","actionByOption","actArgs","updatePropsImmutable","TemplateWrapper","templateOption","_model$data","buildTemplateArgs","_wrapKeyDownHandler","initialHandler","_toPublicElement","IS_RENOVATED_WIDGET","_validationGroupConfig","_findGroup","getDefaultTemplateNames","_clickAction","iconTemplate","_getSubmitAction","needValidate","submitInput","validationResult","click","_createClickAction","$content","$input","templateData","_templateData","classesMap","IconProps","TemplateProp","normalizeProps","Icon","sourceType","iconClassName","generalClasses","combineClasses","restAttributes","IconTemplate","src","viewFunction","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","initConfig","useHoldAnimation","waveSizeCoefficient","isCentered","wavesNumber","durations","getDurations","showWave","hideWave","getWaves","inkRipple","getInkRipple","$currentWave","$wave","wave","hidingTimeout","hideSelectedWave","elementWidth","elementHeight","elementDiagonal","sqrt","waveSize","getWaveStyleConfig","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","InkRippleProps","InkRipple","__getterCache","getConfig","TOUCH_BOUNDARY","setGestureCover","$cover","toggle","cursor","GestureEmitter","immediate","_stage","_toggleGestureCover","_needSkipEvent","_startEvent","_setupImmediateTimer","_this$immediateTimeou","_immediateTimer","_immediateAccepted","immediateTimeout","_directionConfirmed","_resetActiveElement","_adjustStartEvent","_start","_move","touchBoundary","_getTouchBoundary","horizontalMove","_validateMove","verticalMove","mainAxis","crossAxis","_toggleGestureCoverImpl","gestureCoverStrategy","gestureCover","selection","getSelection","removeAllRanges","_end","_stop","initialTouchBoundary","newBoundary","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_locked","_proxiedScroll","_scroll","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","isIos","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","scrollTarget","skipCheck","isNative","_prevEventData","isScrollingEvent","_savedEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","subscribeToClickEvent","subscribeToEvent","clickEvent","subscribeToDXPointerDownEvent","scrollEvents","subscribeToDxActiveEvent","subscribeToDxInactiveEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","BaseWidgetProps","ConfigContext","ConfigProviderProps","ConfigProvider","WidgetProps","getOwnPropertyDescriptors","addWidgetClass","InfernoWrapperComponent","widgetElementRef","hovered","setRootElementRef","activeEffect","inactiveEffect","clickEffect","focusInEffect","focusOutEffect","hoverStartEffect","hoverEndEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onActive","onInactive","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","_this$_effects$","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","_this$_effects$11","_this$_effects$12","_this$_effects$13","onRootElementRendered","rootElementRef","__state_argument","dxClick","shouldRenderConfigProvider","rtlProp","isPropDefined","onlyGlobalDefined","globalConfig","resolveRtlEnabledDefinition","resolveRtlEnabled","getAria","hidden","computedWidth","normalizeStyleProp","computedHeight","cssClasses","isHoverable","canBeActive","normalizeStyles","stylingModes","ButtonProps","iconPosition","useInkRipple","useSubmitBehavior","defaultOptionRules","createDefaultOptionRules","contentRef","inkRippleRef","submitInputRef","widgetRef","submitEffect","onWidgetClick","emitClickEvent","iconSource","camelize","_titleRegexp$exec$","_titleRegexp$exec","isValidStylingMode","inkRippleConfig","buttonTemplateData","ButtonTemplate","renderText","isIconLeft","iconComponent","Button","__defaultOptionRules","BaseComponent","_this$viewRef","_this$viewRef2","_this$viewRef3","ButtonComponent","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","updateEventsCounter","eventsCount","DragEmitter","_initEvent","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","targetElements","dropTargets","_dropTargets","eData","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemDelegatedTargets","delegatedTarget","$delegatedTarget","_checkDropTarget","getItemConfig","activeTarget","$prevTarget","dropTargetConfig","itemPositionFunc","getItemPosition","targetSize","itemSizeFunc","getItemSize","checkDropTarget","RESIZABLE","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","dragEventStart","DRAGSTART_EVENT_NAME","dragEventMove","DRAGSTART_END_EVENT_NAME","dragEventEnd","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","step","stepPrecision","roundStepValue","keepAspectRatio","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","_attachEventHandlers","$handle","handlers","_dragStartHandler","_dragHandler","_dragEndHandler","handleElement","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_getBorderWidth","borderWidth","_proportionate","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","sides","_fitIntoArea","directionName","_fitDeltaProportionally","fittedDelta","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","_roundByStep","_updatePosition","elementRect","_getOffset","dimensions","_updateDimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","_roundStrict","_roundNotStrict","_getSteps","steps","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","areaElement","pageXOffset","pageYOffset","_correctAreaGeometry","$area","getInnerWidth","getInnerHeight","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","hideCallback","indexOfCallback","hasCallback","baseZIndex","zIndexStack","baseIndex","SWATCH_CONTAINER_CLASS_PREFIX","getSwatchContainer","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","OVERLAY_POSITION_ALIASES","center","OVERLAY_DEFAULT_BOUNDARY_OFFSET","visualContainer","$root","$wrapper","onPositioned","onVisualPositionChanged","_fixWrapperPosition","_skipContentPositioning","_$root","_$content","_$wrapper","_$markupContainer","_$visualContainer","_shouldRenderContentInitialPosition","_visualPosition","_initialPosition","_previousVisualPosition","updateContainer","updatePosition","updateVisualContainer","$visualContainer","_position","fixWrapperPosition","styleWrapperPosition","restorePositionOnNextRender","openingHandled","positionProp","_normalizePosition","containerProp","swatch","_getVisualContainer","detectVisualPositionChange","_updateVisualPositionValue","_raisePositionedEvents","positionContent","_renderContentInitialPosition","positionWrapper","useFixed","_renderBoundaryOffset","wrapperOverflow","resultPosition","previousPosition","newPosition","_this$_position","_this$_props$position","_this$_props$position2","visualContainerProp","positionOf","isEvent","defaultPositionConfig","_positionToObject","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","_proxiedDocumentDownHandler","Overlay","_ignoreCopyRootClassesToWrapperDeprecation","_ignoreElementAttrDeprecation","_ignorePreventScrollEventsDeprecation","innerOverlay","hideTopOverlayHandler","preventScrollEvents","propagateOutsideClick","ignoreChildEvents","_checkParentVisibility","_hideOnParentScrollTarget","_logDeprecatedPreventScrollEventsInfo","_initActions","_initHideOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_hideOnParentsScrollHandler","warnPositionAsFunction","_hideTopOverlayHandler","_getActionsList","_actions","actions","_documentDownHandler","_renderWrapperAttributes","_initPositionController","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","_shouldHideOnOutsideClick","_outsideClickHandler","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","_this2","_viewPortChangeHandle","_viewPortChangeHandler","_positionController","_renderVisibilityAnimate","_show","_hide","_getAnimationConfig","_toggleBodyScroll","_animateShowing","_this$_getAnimationCo","_showAnimation$start","_showAnimation$comple","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_animate","_isAnimationPaused","_toggleSafariScrolling","_showingDeferred","_processShowingHidingCancel","cancelArg","applyFunction","cancelFunction","shouldCancel","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_updateZIndexStackPosition","showingArgs","_renderVisibility","_isShowingActionCanceled","_moveFromContainer","_stopShowTimer","_asyncShowTimeout","showHideConfig","_animateHiding","_this$_getAnimationCo2","_hideAnimation$start","_hideAnimation$comple","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_this4$_actions","_hideAnimationProcessing","_hidingDeferred","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","completeCallback","startCallback","_checkContainerExists","_moveToContainer","_renderGeometry","pushToStack","_zIndex","zIndexPool","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleHideOnParentsScrollSubscription","hideTopOverlayCallback","needSubscribe","_this$_parentsScrollS","scrollEvent","prevTargets","hideOnScroll","$parents","_getHideOnParentScrollTarget","hideHandled","$hideOnParentScrollTarget","_appendContentToElement","shouldDeferRendering","_contentAlreadyRendered","$parent","isHidden","whenContentRendered","contentTemplateOption","noModel","_toggleWrapperScrollEventsSubscription","_getPositionControllerConfig","OverlayPositionController","isWheel","isMouseMove","isScrollByWheel","cancelable","$wrapperContainer","uiErrors","_renderGeometryImpl","_renderPosition","_isAllWindowCovered","$body","isIosSafari","isAllWindowCovered","isScrollingPrevented","_cachedBodyScrollTop","scrollTo","_renderWrapperDimensions","isVisualContainerWindow","wrapperWidth","wrapperHeight","isRenovated","_deferShowTimer","_this$_animateDeferre","_animateDeferred","_this$_animateDeferre2","showing","animateDeferred","forceStopAnimation","ZIndex","AsyncCollectionWidget","CollectionWidgetEdit","renderContentDeferred","itemDeferred","_postProcessRenderItems","_renderItemsAsync","TOOLBAR_CLASS","TOOLBAR_BEFORE_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_COMPACT_CLASS","rawModel","_data$options","_data$options2","_data$options$styling","_data$options3","_data$options$type","menuItem","renderAs","grouped","useFlatButtons","useDefaultButtons","_$toolbarItemsContainer","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_updateDimensionsInMaterial","section","sectionClass","_elementWidth","_$centerSection","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","$label","$section","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","sectionMaxWidth","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","marginLeft","marginRight","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","possibleLabelWidth","itemContainer","$after","_item$location","_item$text","itemHasText","_renderGroupedItems","_group$location","groupItems","_getToolbarItems","_waitParentAnimationTimeout","readyToResolve","runCheck","$labels","waitWebFont","ToolbarBase","ResizeObserverMock","observe","unobserve","disconnect","resizeObserverSingleton","ResizeObserver","_callbacksMap","_observer","entry","_this$_callbacksMap$g","forceApplyBindings","outsideDragFactor","_$dragResizeContainer","_updateDragResizeContainer","_fullScreenEnabled","_fullScreenDisabled","$dragResizeContainer","dragHandled","resizeHandled","_this$_props$forceApp","_this$_props","_getDragResizeContainer","overflowManagerMock","setOverflow","restoreOverflow","POPUP_CLASS","POPUP_WRAPPER_CLASS","DISABLED_STATE_CLASS","POPUP_TITLE_CLASS","POPUP_BOTTOM_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","IS_OLD_SAFARI","HEIGHT_STRATEGIES","flex","Popup","_this$_drag","_drag","moveUp","_this$_drag2","moveDown","_this$_drag3","moveLeft","_this$_drag4","moveRight","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","_iosAnimation","_androidAnimation","_device","popupWrapperClassExternal","popupWrapperClasses","_createBodyOverflowManager","_updateResizeCallbackSkipCondition","_$popupContent","_toggleContentScrollClass","$overlayContent","isFullscreen","_toggleFullScreenClass","_bodyOverflowManager","isIosDevice","prevSettings","overflowX","overflowY","scrollBarWidth","computedBodyPaddingRight","setBodyPaddingRight","propertyInKebabCase","createBodyOverflowManager","_contentResizeHandler","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_areContentDimensionsRendered","_observeContentResize","shouldObserve","contentElement","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_renderTitle","_renderResize","_renderBottom","_$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","_toggleAriaLabel","_this$_$title","titleId","additionalToolbarOptions","toolbarOptions","_getToolbarName","$toolbar","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","__","$button","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","shortcut","getButtonPlace","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","_getToolbarButtonStylingMode","_getToolbarButtonType","itemConfig","itemClass","$toolbarItem","clickAction","_$bottom","$bottom","insertAfter","compactMode","_toggleClasses","isNativeScrollingEnabled","PopupPositionController","_getDragTarget","topToolbar","shouldRepeatAnimation","isDimensionChange","_cacheDimensions","_resetContentHeight","_setContentHeight","$dragTarget","draggableElement","positionController","_draggableElement","_handle","_dragEnabled","_moveTo","_getEventNames","startEventName","updateEventName","_dragUpdateHandler","endEventName","dragStartEvent","dragMoveEvent","dragEndEvent","allowedOffsets","_getAllowedOffsets","_prevOffset","_moveByOffset","_fitOffsetIntoAllowedRange","_getContainerDimensions","containerWidth","containerHeight","_getContainerPosition","getOffset","_getElementPosition","_getInnerDelta","containerDimensions","elementDimensions","_getElementDimensions","_getOuterDelta","_getFullDelta","fullDelta","outerDelta","offsetHeight","elementPosition","containerPosition","_resizable","_resizeEndHandler","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","maxHeightValue","addOffsetToMaxHeight","addOffsetToMinHeight","currentClass","excessClasses","bottomToolbar","getVisibleHeight","getVerticalOffsets","_renderFullscreenWidthClass","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","getFocusableElements","borderWidthStyles","WEIGHT_OF_SIDES","POPOVER_POSITION_ALIASES","POPOVER_DEFAULT_BOUNDARY_OFFSET","$arrow","_$arrow","_positionSide","updateTarget","hOffset","vOffset","isVerticalSide","_isVerticalSide","isHorizontalSide","_isHorizontalSide","arrowOffset","_isPopoverInside","_getContentBorderWidth","side","_getDisplaySide","weightSign","POSITION_FLIP_MAP","getEventNameByOption","isSelector","shouldIgnoreHideEvent","getEventDelay","_clearEventsTimeouts","re","_timeouts","EVENT_HANDLER_NAME","targetElement","detachEvent","Popover","arrowPosition","_renderArrow","isInteractive","_detachEvents","_attachEvents","prependTo","_isOutsideClick","shouldUpdateDimensions","_renderOverlayPosition","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","positionSide","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","_renderArrowPosition","containerLocation","newContainerWidth","setWidth","newOverlayContentHeight","newPopupContentHeight","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","sizeProperty","targetOffset","contentOffset","arrowSize","contentLocation","contentSize","targetLocation","finalArrowLocation","fullUpdate","PopoverPositionController","_clearEventTimeout","ActionSheet","usePopover","showCancelButton","cancelText","onCancelClick","_$itemContainer","_createItemContainer","_renderPopup","_$popup","_isPopoverMode","_createPopover","_createPopup","_renderPopupTitle","_mapPopupOption","_popup","_overlayConfig","angular","_popupContentReadyAction","_renderCancelButton","_$cancelButton","cancelClickAction","DxActionSheetModule","editor","$placeMarker","_addPlaceMarker","_addToContainer","_create","_isRendered","_shouldRender","TextEditorButton","currentTemplate","_editor$_shouldCallOp","_shouldCallOpenHandler","_openHandler","_getOptions","_legacyRender","_addTemplate","$editor","isVisible","_isSameTemplate","isFocusingOnCaretChange","getCaret","selectionStart","selectionEnd","setCaret","BaseMaskRule","_next","rawValue","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","adjustedCaret","caret","isForwardDirection","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","INVALID_MESSAGE","ValidationMessage","templatesRenderAsynchronously","_renderInnerHtml","contentId","updateMaxWidth","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","validationErrorMessage","_err$message","targetWidth","_getPositionsArray","rtlSide","componentOffset","positions","INVALID_MESSAGE_AUTO","VALIDATION_TARGET","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","_initialValue","validationTooltipOptions","_showValidationMessage","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","validationMessageContentId","_getValidationMessageTarget","_getValidationMessagePosition","_toggleBackspaceHandler","isReadOnly","$eventTarget","EventsEngine","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","_hasActiveElement","_this$_validationMess3","_resetToInitialValue","isEditor","pointerDown","_isClearButtonVisible","editorName","_clearValueHandler","CUSTOM_BUTTON_HOVERED_CLASS","_prepareIntegrationOptions","isUpdated","existingNames","defaultButtonsInfo","_compileButtonInfo","isStringButton","buttonInfo","checkButtonInfo","isDefaultButton","predefinedButtonsInfo","isPredefinedButtonName","defaultButtonInfo","checkNamesUniqueness","Ctor","CustomButton","_createButton","buttonsInfo","_renderButtons","$buttonsContainer","prepend","clean","getButton","buttonName","renderAfterButtons","renderBeforeButtons","updateButtons","LOADINDICATOR_SEGMENT_CLASS","LoadIndicator","_animatingSegmentCount","_animatingSegmentInner","viaImage","isGeneric","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_LABEL_OUTSIDE_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorBase","checkButtonsOptionType","_buttonCollection","TextEditorButtonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","_labelContainerElement","displayValueFormatter","editorStylingMode","showValidationMark","labelMark","ClearButton","_input","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_renderLabel","_refreshValueChangeEvent","_renderEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$buttonsContainer","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_getInputContainer","_renderPendingIndicator","$inputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","_showValidMark","_toggleValidMark","_cleanButtonContainers","_this$_$beforeButtons","_this$_$afterButtonsC","_unobserveLabelContainerResize","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","_setInputMinHeight","_getPlaceholderAttr","autocomplete","_updateButtons","buttonInstance","_renderInputValue","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_readOnlyPropValue","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","_label","updateBeforeWidth","_getFieldElement","_setFieldAria","ariaLabel","labelId","getId","labelledby","labelConfig","onClickHandler","onHoverHandler","onActiveHandler","mark","containsButtonsBefore","getContainerWidth","getBeforeWidth","_id","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","hoverStartEventName","hoverStart","activeEventName","_isOutsideMode","_this$_props$beforeWi","beforeWidth","_updateLabelTransform","labelTranslateX","_this$_props$containe","updateMode","updateText","updateMark","updateContainsButtonsBefore","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderAttributes","startEvent","_placeholder","_clearValue","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_getValueChangeEventOptionName","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_isInput","_preventNestedFocusEvent","shouldPrevent","_isNestedTarget","_focusClassTarget","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_setInputType","toUpperCase","MASK_EVENT_NAMESPACE","DELETE_INPUT_TYPES","HISTORY_INPUT_TYPES","EVENT_NAMES","repeat","_editorOption","_editorInput","_editorCaret","newCaret","_caret","_attachChangeEventHandler","_changeHandler","_beforeInputHandler","_previousText","_prevCaret","_inputHandler","_handleHistoryInputEvent","_handleBackwardDeleteInputEvent","currentCaret","_clearSelectedText","_autoFillHandler","_handleInsertTextInputEvent","_updateEditorMask","setForwardDirection","_adjustCaret","setBackwardDirection","_this$_prevCaret","_this$_prevCaret2","_isAutoFill","getEmptyString","_this$_prevCaret$star","_this$_prevCaret3","textLength","processedCharsCount","_handleChain","_displayMask","correction","_showMaskPlaceholder","_maskRulesChain","_caretTimeout","_delHandler","_maskKeyHandler","_hasSelection","_handleKey","_cutHandler","selectedText","getClipboardText","_dropHandler","_clearDragTimer","_dragTimer","_convertToValue","_pasteHandler","pastedText","restText","accepted","inputVal","_inputHandlerTimer","_validateMask","_input$matches","getHandler","handlerName","caretUtils","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","buildInMaskRules","isLiteralChar","l","isSpaceChar","isNumericChar","TextEditorMask","keyHandlerMap","del","_maskStrategy","parentHandler","_$hiddenElement","_initMaskStrategy","MaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","_onMouseWheel","mouseWheelAction","_useMaskBehavior","_attachDropEventHandler","_renderMask","_removeHiddenElement","_parseMask","_renderMaskedValue","inputValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","_shouldShowMask","submitElementValue","_getPreparedValue","_isControlKeyFired","handledCount","_updateMaskInfo","_replaceMaskCharWithEmpty","_textValue","keyHandler","_handleSelection","previousText","raiseInputEvent","_direction","_handleKeyChain","_moveCaret","emptyChars","chars","_tryMoveCaretBackward","caretStart","maskRuleIndex","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","ignoreKeys","SEARCHBOX_CLASS","TextBox","TextEditor","_showClearButton","_renderSearchMode","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","labelBeforeWidth","_onKeyDownCutOffHandler","actualMaxLength","_cutOffExtraChar","_onChangeCutOffHandler","textInput","getElementWidth","getSizeValue","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_OVERLAY","isIOs","DropDownEditor","close","$focusableElement","_getLastPopupElement","_getFirstPopupElement","_validatedOpening","DropDownButton","onOpened","onClosed","opened","acceptCustomValue","applyValueMode","dropDownButtonTemplate","fieldTemplate","openOnFieldClick","showDropDownButton","dropDownOptions","popupPosition","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","buttonsLocation","useHiddenSubmitElement","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_openAction","_closeAction","_popupInitializedAction","_renderSubmitElement","_renderOpenHandler","_attachFocusOutHandler","_renderOpenedState","_wrapInput","_setDefaultAria","haspopup","_isEditable","_getFieldTemplate","_renderField","_renderTemplatedField","_fieldRenderData","_setSubmitValue","_refreshButtonsContainer","_detachWrapperContent","$templateWrapper","_integrateInput","_attachWrapperContent","_this$_$submitElement","_$submitElement","beforeButtonsContainerParent","afterButtonsContainerParent","_this$_$submitElement2","_refreshEmptinessEvent","dropDownButton","$icon","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","newTarget","_isTargetOutOfComponent","popupWrapper","_executeOpenAction","_focusInput","_toggleOpenState","_resetCaretPosition","ignoreEditable","inputElement","caretPosition","_getControlsAria","_popupContentId","_setPopupOption","arias","_renderPopupContent","popupConfig","_popupConfig","_popupShowingHandler","_popupShownHandler","_popupHidingHandler","_popupHiddenHandler","contentReady","_contentReadyHandler","_attachPopupKeyHandler","_setPopupContentId","_popupKeyHandler","_popupTabHandler","_popupEscHandler","moveBackward","$popupContent","_getPopupInitializedHandler","_ignoreFunctionValueDeprecation","_closeOutsideDropDownHandler","_getPopupToolbarItems","_popupPositionedHandler","_wrapperClassExternal","_popupInitializedHandler","_updatePopupWidth","_e$position","_e$position$v","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","_getValidationMessagePositionSide","myTop","animationPosition","popupTop","$dropDownButton","isInputClicked","isDropDownButtonClicked","_popupToolbarItemsConfig","buttonsConfig","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","_popupOptionChanged","optionsKeys","_this$_popup","open","LIST_GROUP_CLASS","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_groupItemElements","$group","resultItems","_getGroups","storeHelper","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","decoratorClass","decoratorsRegistry","decoratorConfig","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","EditProvider","_list","_fetchRequiredDecorators","_decorators","decorator","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","_eventHandler","response","handleClick","handleKeyboardEvents","currentFocusedIndex","moveFocusUp","handleEnterPressing","contextMenuHandlerExists","handleContextMenu","getExcludedItemSelectors","excludedSelectors","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getBounds","calcOffsetRatio","_itemSizeFunc","isFastSwipe","endEventData","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","STRATEGIES","horizontal","vertical","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","startOffset","_calcTargetOffset","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","ListItem","_renderBadge","_renderShowChevron","$badge","$chevron","$chevronContainer","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","HORIZONTAL","activeScrollbar","Scrollbar","visibilityMode","containerSize","expandable","scaleRatio","_isHovered","_renderThumb","_renderDirection","_update","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","moveTo","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","readyCallback","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","VERTICAL","NativeStrategy","scrollable","_useSimulatedScrollbar","_isLocked","_isDirection","_allowedDirection","_getMaxOffset","_isRtlNativeStrategy","_isScrollbarVisible","_renderScrollbars","updateRtlPosition","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","handleInit","handleStart","handleMove","handleEnd","handleCancel","handleStop","_eachScrollbar","scrollbar","createActions","_scrollAction","_updateAction","_createActionArgs","_eventForUserAction","_getScrollOffset","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","handleScroll","_hideScrollbars","disabledChanged","_updateScrollbars","_containerSize","_componentContentSize","_contentSize","_allowedDirections","scrollableNativeRegexp","_removeScrollbars","scrollBy","distance","_isScrolledInMaxDirection","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","PullDownNativeScrollViewStrategy","scrollView","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","visibleState","_setTopPocketOffset","_topPocketSize","contentEl","containerEl","_bottomBoundary","allowedDirections","_pullDownEnabled","_complete","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","release","_releaseTimeout","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","SwipeDownNativeScrollViewStrategy","_$icon","_releasePullDown","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","_pullDownRefreshHandler","_refreshPullDown","yle","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_step","inProgress","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","BOUNCE_ACCELERATION_SUM","InertiaAnimator","Animator","scroller","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","_inBounds","_scrollComplete","BounceAnimator","MIN_VELOCITY_LIMIT","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollbar","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_maxOffset","_minOffset","_getScaleRatio","_moveContent","_moveScrollbar","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","titleize","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","nextLocation","_initHandler","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_updateHandler","_moveToBounds","deferUpdate","_resetScaleRatio","_updateLocation","_updateBounds","_updateScrollbar","_getMinOffset","deferUpdater","locationChanged","_createActionsHandler","scroll","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","_scrollers","_createScroller","_scrollerOptions","scrollbarVisible","bounceEnabled","inertiaEnabled","isAnyThumbScrolling","_applyScaleRatio","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_prepareDirections","_eachScroller","_isContent","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","addEventNamespace","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","lines","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","_scrollOffset","deferreds","_hoverHandled","$scrollable","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","needInitializeRtlConfig","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","validated","_validateWheelTimer","ScrollViewScroller","_bottomPocketSize","_$bottomPocket","_reachBottomReady","_reachBottomLoading","_releaseHandler","_releaseTask","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_pendingReleaseHandler","SimulatedScrollViewStrategy","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","deviceDependentOptions","targetElementClass","sourceElement","offsetParent","parentElementRect","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","DIRECTION_BOTH","SCROLLABLE_CONTENT_CLASS","SCROLLABLE","SCROLLABLE_CLASS","BOTH","Scrollable","onScroll","onUpdated","onStart","onEnd","onBounce","useSimulatedScrollbar","useKeyboard","updateManually","_setUseSimulatedScrollbar","_initScrollableMarkup","_updateRtlPosition","_savedScrollOffset","_renderStrategy","_renderDisabledState","_createActions","_strategy","scrollWidth","scrollHeight","initEventData","_updateIfNeed","_moveIsAllowed","_lock","_unlock","_createStrategy","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","scrollToElement","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","containerElement","additionalOffset","isVertical","inverseProp","containerOffsetSize","containerClientSize","elementSize","relativeElementOffset","getRelativeOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","getElementLocationInternal","nc","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LoadPanel","_setWrapperAria","defaultLabel","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_clearShowTimeout","_showTimeout","$message","SCROLLVIEW_CLASS","refreshStrategies","pullDown","PullDownStrategy","swipeDown","SwipeDownStrategy","simulated","isServerSide","scrollViewServerConfig","finishLoading","ScrollView","pullingDownText","pulledDownText","refreshingText","reachBottomText","onPullDown","onReachBottom","refreshStrategy","_loadingIndicatorEnabled","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","SCROLLVIEW_REACHBOTTOM_CLASS","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","strategyName","strategyClass","_pullDownHandler","_reachBottomHandler","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","startLoading","preventReachBottom","toggleLoading","showOrHide","Hle","_getSpecificDataSourceOption","hasSimpleItems","_getGroupedOption","isCorrectStructure","innerItem","keepInitialKeyOrder","attribute","_getWindow$getCompute","_getWindow","getElementStyle","toNumber","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_GROUP_COLLAPSED_CLASS","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","scrollToItem","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","useNativeScrolling","pageLoadingText","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","_updateLoadingState","_$listContainer","listContainer","_saveSelectionChangeEvent","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_initScrollView","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupContainerByIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","_scrollView","getScrollView","_scrollHandler","_scrollBottomHandler","_toggleWrapItemText","_createScrollViewActions","_pullRefreshAction","_pageLoadingAction","$iconContainer","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","_loadNextPageTimer","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","_collapseGroupHandler","$groupBody","_renderInkRipple","roledescription","_setListAria","Bo","_inkRippleTimer","LIST_FEEDBACK_SHOW_TIMEOUT","_attachSwipeEvent","swipeEventEnd","_itemSwipeEndHandler","_nextButtonHandler","_$nextButton","$groupElement","$groupHeaderElement","groupTemplateName","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","$nextButton","_getNextButton","_createNextButton","expandGroup","collapseGroup","getElementMargin","DataConverterMixin","ListEdit","moveFocusedItem","editStrategy","focusedItemIndex","_getLastItemIndex","_editProvider","privateKey","__dx_key__","showSelectionControls","onSelectAllValueChanged","selectAllText","localizationMessage","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","handledByEditProvider","_getItemContainer","changeData","_this$_editStrategy$g","focusListItem","unselectAll","getFlatIndexByItemElement","getItemElementByFlatIndex","flatIndex","getItemByIndex","deletingElementIndex","nextFocusedItem","EditorClass","componentName","stubComponent","searchEnabled","searchEditorOptions","_renderSearch","searchBoxClassName","_addWidgetPrefix","rootElementClassName","_removeSearchBox","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","searchText","_valueChangeDeferred","_valueChangeTimeout","getOperationBySearchMode","_cleanAria","activedescendant","setEditorClass","ListSearch","searchBoxMixin","DataExpressionMixin","_dataExpressionDefaultOptions","_initDataExpressions","_compileValueGetter","_initDynamicTemplates","_itemsToDataSource","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_isValueEquals","_loadValueDeferred","_rejectValueLoading","_this$_loadValueDefer","shouldSkipCallback","_getCurrentValue","_getItemKey","variableWrapper","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObjectType","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","_dataExpressionOptionChanged","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","$focusedItem","_setSelectedElement","_setValue","showDataBeforeSearch","useItemTextAsTitle","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateActiveDescendant","_initSelectionChangedAction","_initItemClickAction","_selectionChangedAction","_itemClickAction","_saveFocusOnWidget","_fitIntoRange","_calcNextItem","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","itemByValue","_this$_list","listFocusedItemId","isElementOnDom","_displayValue","_refreshSelected","_listItemElements","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_setListOption","_isCustomValueAllowed","_clearFilter","_$list","_getMaxHeight","_renderList","canListHaveFocus","_canListHaveFocus","_listId","$list","List","_listConfig","_refreshList","_renderPreventBlurOnListClick","_shouldRefreshDataSource","_needPassDataSourceToList","_isDesktopDevice","_templates","templateProvider","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_updateListDimensions","_listItemClickHandler","_isMinSearchLengthExceeded","_needClearFilter","_canKeepDataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","_searchCanceled","_clearSearchTimer","_searchTimer","_searchDataSource","_filterDataSource","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","resultAmount","_needPopupRepaint","currentPageIndex","needRepaint","$customBoundaryContainer","submitValue","_shouldUseDisplayValue","Autocomplete","_clearFocusedItem","maxItemCount","CUSTOM_VALUE_ACCESSOR_PROVIDER","DxAutocompleteComponent","DxAutocomplete","hostBindings","buttonsChange","displayValueChange","dropDownButtonTemplateChange","dropDownOptionsChange","groupedChange","groupTemplateChange","inputAttrChange","isDirtyChange","isValidChange","labelChange","labelModeChange","maxItemCountChange","maxLengthChange","minSearchLengthChange","nameChange","openedChange","openOnFieldClickChange","placeholderChange","readOnlyChange","searchExprChange","searchModeChange","searchTimeoutChange","showClearButtonChange","showDropDownButtonChange","spellcheckChange","stylingModeChange","useItemTextAsTitleChange","validationErrorChange","validationErrorsChange","validationMessageModeChange","validationMessagePositionChange","validationStatusChange","valueChangeEventChange","valueExprChange","wrapItemTextChange","onBlur","DxAutocompleteModule","mouseover","mouseout","mousemove","touchstart","touchmove","touchend","mousedown","mouseup","selectSeries","deselectSeries","selectPoint","deselectPoint","showPointTooltip","hidePointTooltip","states","normal","normalMark","hoverMark","selectedMark","applyHover","applySelected","resetItem","radialLabelIndent","pieLabelSpacing","pieSeriesSpacing","_round","defaultOffset","alignFactors","renderElement","bBox","_renderElement","_cacheBBox","wrapperLayoutElementPrototype","WrapperLayoutElement","LayoutElement","ofBBox","getLayoutOptions","myBBox","shiftX","shiftY","getBBox","_min","_max","RADIAL_LABEL_INDENT","consts","firstCoord","secondCoord","pointCenterCoord","singleSeries","getVisiblePoints","labelBBox","getLabelLayout","rWidth","outerLabelsCount","sizes","rSizes","common","labelSizes","canvas","averageWidthLabels","centerX","curRadius","runningWidth","correctLabelRadius","setVisibleArea","innerRadius","_isNumber","sizeLabels","availableRadius","minR","paneCenterX","paneCenterY","getSizeLabels","fullRadiusWithLabels","getFullRadiusWithLabels","getAverageLabelWidth","accessibleRadius","radiusIsFound","xCoords","getNearestCoord","yCoords","getLengthFromCenter","getPieRadius","LayoutManager","setOptions","applyPieChartSeriesLayout","hideLayoutLabels","paneSpaceHeight","paneSpaceWidth","piePercentage","minPiePercentage","correctAvailableRadius","centerY","radiusInner","getInnerRadius","radiusOuter","applyEqualPieChartLayout","layout","correctPieLabelRadius","needMoreSpaceForPanesCanvas","panes","rotated","fixedSizeCallback","percentageIsValid","needHorizontalSpace","needVerticalSpace","paneCanvas","minSize","paneSized","needPaneHorizontalSpace","needPaneVerticalSpace","layoutInsideLegend","legend","layoutOptions","cutSide","cutLayoutSide","toLayoutElementCoords","timeIntervals","millisecond","minute","hour","day","week","month","quarter","year","dateUnitIntervals","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","toMilliseconds","convertDateUnitToMilliseconds","dateUnit","maxInterval","tickIntervalToFormatMap","getQuarter","getFirstQuarterMonth","dateInterval","withCorrection","firstDayOfWeek","firstQuarterMonth","oldDate","getDateUnitInterval","setMonth","setDate","setHours","getFirstWeekDate","getMonth","fixTimezoneGap","correctDateWithUnitBeginning","intervalObject","getDateIntervalByString","years","setFullYear","getFullYear","quarters","months","weeks","getDate","days","hours","setTime","minutes","seconds","milliseconds","addInterval","addDateInterval","adjust","createDateWithFullYear","intervalString","date1","date2","sameYear","getDay","UTC","normalizedDate","newDate","getHours","trial","getTimezoneOffset","dateUtils","dateToMilliseconds","getNextDateUnit","unit","withWeeks","getDateFormatByTickInterval","getDatesDifferences","counter","differences","getMinutes","getSeconds","getMilliseconds","trimTime","setToDayEnd","roundDateByStartDayHour","startDayHour","dateTimeFromDecimal","getSequenceByInterval","intervals","sameHoursAndMinutes","sameDate","sameMonthAndYear","sameMonth","sameDecade","startDecadeDate1","startDecadeDate2","sameCentury","startCenturyDate1","startCenturyDate2","getDifferenceInMonth","typeView","getDifferenceInMonthForCells","getFirstYearInDecade","getFirstDecadeInCentury","getShortDateFormat","getViewFirstCellDate","viewType","getViewLastCellDate","getLastMonthDay","getViewDown","getViewUp","getLastMonthDate","getFirstMonthDate","getWeekNumber","firstWeekDayInYear","getDayWeekNumber","getFirstDateInYear","lastWeekDayInYear","getLastDateInYear","daysInFirstWeek","weekNumber","getUTCTime","getDayNumber","normalizeDateByWeek","currentDate","differenceInDays","getDatesInterval","resultDate","dateInRange","normalizeDate","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","roundToHour","setMinutes","getViewMinBoundaryDate","getViewMaxBoundaryDate","getTimezonesDifference","makeDate","endDate","intervalUnit","millisecondCount","getDatesOfInterval","getMachineTimezoneName","DateTimeFormat","resolvedOptions","timeZone","view","standardColorNames","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","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","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","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","colorString","rgb","hsvToRgb","hslToRgb","baseColor","parseColor","colorIsInvalid","hsv","S","toHsvFromRgb","hsl","convertTo01Bounds","maxMinSum","calculateHue","toHslFromRgb","colorComponent","def","vMin","vInc","vDec","colorPart","colorTint","modifyColorTint","hueToRgb","makeColorTint","Color","highlight","alter","toHex","darken","blend","blendColor","other","toHexFromRgb","getPureColor","isValidHex","hex","isValidRGB","isIntegerBetweenMinAndMax","isValidAlpha","fromHSL","PI","LN10","atan2","_cos","cos","_sin","sin","PI_DIV_180","_isNaN","_Number","numDefsSvgElements","getLog","getAdjustedLog10","raiseTo","normalizeAngle","convertAngleToRendererSpace","degreesToRadians","getCosAndSin","angleInRadians","getDistance","diffX","diffY","getDecimalOrder","cn","roundValue","getPower","originalTop","originalBottom","originalLeft","originalRight","xl","normalizeBBoxField","yt","w2","h2","w2_","h2_","normalizeBBox","parseScalar","enumParser","normalizeEnum","patchFontOptions","fontOptions","centerCoords","normalizedRadius","cosSin","convertXYToPolar","phi","processSeriesTemplate","seriesTemplate","customizeSeries","nameField","generatedSeries","seriesOrder","nameFieldValue","orderedName","getCategoriesInfo","swapBuf","categoriesValue","indexStartValue","indexEndValue","visibleCategories","lastIdx","unique","getVerticallyShiftedAngularCoords","dy","horizontalOffset1","verticalOffset1","verticalOffset2","horizontalOffset2","opt1","opt2","checkInterval","percentStick","sizePointNormalState","outerRadius","endAngle","isCircle","noArc","angleDiff","convertToVisualRange","correctZeroLevel","rangeValue","marginValue","axisType","getLogExt","raiseToExt","dataRange","minDefined","maxDefined","nonDiscrete","getAddFunction","rangeLength","_categoriesInfo","allowNegatives","transformValue","rangeFromOptions","getNextDefsSvgId","isBase","fillId","_floor","eventsConsts","statesConsts","HOVER_STATE","NORMAL_STATE","EVENT_NS","DOT_EVENT_NS","POINTER_ACTION","LEGEND_CLICK","SERIES_CLICK","POINT_CLICK","POINT_DATA","SERIES_DATA","ARG_DATA","ALL_ARGUMENT_POINTS_MODE","INCLUDE_POINTS_MODE","LEGEND_HOVER_MODES","dataKey","tryCheckParent","getParentData","clickTarget","deprecatedCancel","eventCanceled","getOptions","baseTrackerPrototype","tracker","_legend","_tooltip","tooltip","_eventTrigger","eventTrigger","_seriesGroup","seriesGroup","_showPointTooltip","_hidePointTooltip","_pointerHandler","_clickHandler","_chart","chart","updateSeries","resetDecorations","noHoveredSeries","hoveredSeries","_hoveredPoint","_storedSeries","initDefsElements","_hideTooltip","pointAtShownTooltip","clearHover","setCanvases","mainCanvas","paneCanvases","_mainCanvas","_canvases","repairTooltip","_showTooltip","_setHoveredPoint","_releaseHoveredPoint","isPointerOut","isEnabled","_setHoveredSeries","_releaseHoveredSeries","getPoints","hoveredPoint","_hoveredArgumentPoints","_resetHoveredArgument","tooltipFormatObject","getTooltipFormatObject","isShared","getStackedPoints","points","coords","getTooltipParams","getLocation","rootOffset","getRootOffset","pointWithTooltip","_enableOutHandler","_outHandler","inCanvas","_isCursorOnTooltip","_pointerOut","_disableOutHandler","isCursorOnTooltip","stopCurrentHandling","_triggerLegendClick","elementClick","_hoverLegendItem","getItemByCoord","legendHoverMode","correctLegendHoverMode","isHovered","lastHoverMode","_hoverArgument","argumentIndex","_getArgumentHoverMode","_hoveredArgument","_argumentIndex","_notifySeries","notifyLegend","_notifyLegendOnHoverArgument","fullState","notify","_series","_getCanvas","getPointByCoord","_isHolding","getMarkerVisibility","coordsIn","_stuckSeries","_hoverArgumentAxis","_isPointerOut","getNeighborPoint","_stickyHovering","_setTimeout","_setStuckSeries","_pointerComplete","_pointerOnPoint","_point","_point2","_argumentAxis","_legendClick","_point3","_pointClick","ChartTracker","argumentAxis","_axisHoverEnabled","_normalizeEnum","_rotated","_crosshair","crosshair","stickyHovering","canvases","_hideCrosshair","_this$_crosshair","_moveCrosshair","_resetTimer","_getSeriesForShared","_point4","_each","getCrosshairData","keeper","_timeoutKeeper","_hoverTimeout","_stopEvent","updateHover","correctHoverMode","PieTracker","getPointsByKeys","_noop","currentPaletteName","_ceil","_isArray","palettes","simpleSet","indicatingSet","gradientSet","accentColor","office","pastel","bright","soft","ocean","vintage","carmine","themeDefault","currentPalette","_isString","buf","ind","themeDefaultPalette","paletteObj","_extensionStrategy","getNextColor","getColor","_currentColor","generateColors","extensionMode","colors","getPalette","stepHighlight","useHighlight","paletteSteps","RingBuf","originalPalette","getNewColor","getAlteredPalette","_reset","getAlternateColorsStrategy","cycleIndex","cycleCount","diapason","minL","maxL","cycleMiddle","cycleDiff","paletteCount","cycles","_Color","getExtrapolateColorsStrategy","extendedPalette","colorsCount","distribution","middleIndex","extraItems","currentColorIndex","cleanColorIndices","keepLastColorInEnd","distributeColors","paletteWithEmptyColors","paletteLength","color1","c2","getColorAndDistance","color2","extendPalette","getColorMixer","currentColor","newColor","lightness","getLightness","WHITE","BLACK","LIGHT_GREY","GREY_GREEN","RED","PRIMARY_TITLE_COLOR","SECONDARY_TITLE_COLOR","NONE","SOLID","TOP","RIGHT","BOTTOM","LEFT","CENTER","INSIDE","OUTSIDE","isDefault","family","weight","redrawOnResize","primaryTitleColor","secondaryTitleColor","gridColor","axisColor","loadingIndicator","export","default","borderColor","shadowColor","textAlignment","commonSeriesSettings","hatching","lineWidth","edgeLength","seriesSelectionMode","pointSelectionMode","equalRowHeight","dataPrepareSettings","checkTypeForAllData","convertToAxisDataType","adaptiveLayout","keepLabels","_rtl","resolveLabelOverlapping","rangesplinearea","verticalLine","horizontalLine","commonAxisSettings","forceUserTickInterval","horizontalAxis","verticalAxis","valueAxis","commonPaneSettings","scrollBar","adjustOnZoom","autoHidePointMarkers","synchronizeMultiAxes","barGroupPadding","minBubbleSize","maxBubbleSize","zoomAndPan","dragBoxStyle","panKey","allowMouseWheel","allowTouchGestures","pie","minDiameter","_skipArgumentSorting","doughnut","donut","gauge","rangeContainer","valueIndicators","twocolorneedle","secondColor","trianglemarker","textcloud","indicator","hasPositiveMeaning","_circular","valueIndicatorType","subvalueIndicatorType","_type","indentFromCenter","spindleSize","spindleGapSize","beginAdaptingAtRadius","triangleneedle","secondFraction","_linear","rectangle","barGauge","relativeInnerRadius","barSpacing","rangeSelector","separatorHeight","textLeftIndent","textTopIndent","selectedRangeColor","sliderMarker","invalidRangeColor","sliderHandle","shutter","background","behavior","snapToTicks","animationEnabled","moveSelectedRangeByClick","manualRangeSelectionEnabled","allowSlidersSwap","valueChangeMode","bottomIndent","layer","stroke","hoveredBorderColor","selectedBorderWidth","selectedBorderColor","hoveredColor","selectedColor","selectedStep","backStep","backColor","backOpacity","maxSize","hoveredBorderWidth","backgroundOpacity","controlBar","treeMap","tile","sparkline","lineColor","areaOpacity","minColor","maxColor","barPositiveColor","barNegativeColor","winColor","lossColor","firstLastColor","pointSymbol","pointColor","pointSize","winlossThreshold","showFirstLast","showMinMax","bullet","targetColor","showTarget","showZeroLevel","polar","funnel","sortData","colorField","hoverEnabled","algorithm","neckWidth","neckHeight","sankey","sourceField","targetField","weightField","colorMode","baseThemeName","ACCENT_COLOR","BACKGROUND_COLOR","TITLE_COLOR","BORDER_COLOR","defaultPalette","SOME_GREY","RANGE_COLOR","LINE_COLOR","TARGET_COLOR","CONTRAST_ACTIVE","menuButtonColor","activeBackgroundColor","activeColor","FONT_FAMILY","LIGHT_LABEL_COLOR","DARK_TITLE_COLOR","DARK_LABEL_COLOR","DARK_BACKGROUND_COLOR","themes","commonAnnotationSettings","accentName","markerColor","materialAccents","accent","getMaterialColorScheme","defaultTheme","themesMapping","themesSchemeMapping","_extend","nextCacheUid","widgetsCache","colorScheme","findThemeNameByName","getCurrentTheme","scheme","findThemeNameByPlatform","currentTheme","lightThemes","carmineThemes","darkThemes","contrastThemes","darkMoonThemes","darkVioletThemes","greenMistThemes","softBlueThemes","materialThemes","targetThemeName","themeInfo","splitter","getThemeInfo","registerThemeName","getTheme","mergeScalar","mergeObject","patchAxes","patchMapLayers","patchTheme","registerTheme","_getTheme","_theme","pathItem","BaseThemeManager","_themeSection","themeSection","_fontFields","fontFields","cacheUid","_addCacheItem","_removeCacheItem","_callback","_font","setCallback","setTheme","_current","_themeName","_defaultPalette","_initializeTheme","_parseScalar","getThemePart","createPalette","createDiscretePalette","colorCount","sourceCount","gradient","kr","addColor","createDiscreteColors","getDiscretePalette","createGradientPalette","getGradientPalette","getAccentColor","_initializeFont","ThemeManager","processAxisOptions","axisOptions","logarithmBaseError","userAlignment","applyParticularAxisOptions","userOptions","processedUserOptions","mergeOptions","_isDefined","_mergedSettings","applyParticularTheme","valueAxisRangeSelector","seriesCount","mainSeriesColor","seriesVisibility","userCommonSettings","themeCommonSettings","widgetType","isBar","isLine","isArea","isBubble","resolveLabelsOverlapping","containerBackgroundColor","settings","extractColor","cat","_multiPieColors","pan","zoom","parseOption","dragToZoom","_mergeAxisTitleOptions","resetPalette","updatePalette","FORMAT_TYPES","LDML_FORMATTERS","useUtc","leftPad","dateParts","getMonthNames","Q","getQuarterNames","getDayNames","getPeriodNames","timezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","X","Z","charIndex","isCurrentCharEqualsNext","charCount","isEscaping","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","abbreviated","short","narrow","DATE_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","dateParser","skipISO8601Parsing","getTimePart","timeZoneHour","timeZoneMinute","correctYear","parseISO8601String","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","parseDate","forceIsoDateParsing","getIso8601Format","deserializeDate","serializeDate","serializationFormat","getLDMLFormatter","defaultDateNames","parsers","parsedVal","datetime","numVal","dateSerialization","getParser","correctValueType","STRING","NUMERIC","DATETIME","DISCRETE","SEMIDISCRETE","CONTINUOUS","LOGARITHMIC","ARGUMENT_TYPE","axisTypeParser","asc","valA","valB","aa","bb","newArray","parsedCategory","_isDate","hasCategories","incidentOccurred","_getParser","eigen","filterInfinity","parseUnit","validUnit","cell","groupsData","sourceIsDefined","_isObject","verifyData","argumentAxisType","valueAxisType","updateDataType","resetTypes","processGroups","axes","resetArgumentAxes","argumentAxes","groupsIndexes","groupsWithUndefinedValueType","groupsWithUndefinedArgumentType","argumentTypeGroup","argumentOptions","valueTypeGroup","valueOptions","defineArg","getValueFields","getType","checkValueTypeOfGroup","currentSeries","getArgumentField","checkArgumentTypeOfGroup","checkType","correctAxisType","optionsSeries","setTypes","checkAxisType","parsedData","getParsedCell","sizeParser","valueParser","argumentParser","createParserUnit","categoryParsers","getSizeField","argumentCategories","valueGroup","parseCategories","parseAxisCategories","prepareParsers","firstSeries","originalData","others","sortValues","groupingValues","threshold","findIndexByThreshold","topCount","groupMinSlices","groupPieData","dataByArgumentFields","uniqueArgumentFields","reSortCategories","dataByArguments","isDiscrete","userCategories","sortFunction","sortingMethodOption","_isFunction","sortByCallback","dataItem","collection","collectionItem","checkItemExistence","getCategories","getSortByCategories","sortByArgument","itemsHash","addUniqueItemToCollection","getUniqueArgumentFields","parseHorizontalAlignment","parseVerticalAlignment","setMaxSize","textChanged","setTitle","Title","_params","_group","linkOn","_hasText","linkRemove","linkOff","_titleElement","_clipRect","_subtitleElement","_updateOptions","pickMarginValue","validateMargin","_updateStructure","clipRect","linkAppend","hasText","_updateTexts","titleBox","subtitleOptions","subtitleElement","_patchFontOptions","_baseLineCorrection","_shiftSubtitle","_updateBoundingRectAlignment","boundingRect","_boundingRect","themeOptions","newOptions","processTitleOptions","isLayoutChanged","_updateBoundingRect","_correctTitleLength","processTitleLength","getCorrectedLayoutOptions","srcBox","priority","measure","rect","fitRect","checkRect","changeLink","_title","_rootClassPrefix","_incidentOccurred","_layout","customize","addChange","_themeManager","_change","isThemeDependent","isOptionChange","HIDDEN_FOR_EXPORT","markup","fixNamespaces","decodeHtmlEntities","cloneNode","getMarkup","DOMParser","parseFromString","easingFunctions","easeOutCubic","animationSvgStep","progress","currentParams","curSeg","seg","arc","attributeName","currentSettings","attrName","animateStep","_animateStep","_progress","_calcProgress","_easing","_currentParams","_startTime","delayTick","partitionDuration","_animationCount","_timerId","_animations","Animation","disableComplete","AnimationController","_loop","an","animations","activeAnimation","endAnimation","_endAnimation","_endAnimationTimer","addAnimation","_startDelay","animateElement","onEndAnimation","unstoppable","hasUnstoppableInAnimations","pxAddingExceptions","order","orphans","widows","KEY_TEXT","KEY_STROKE","KEY_STROKE_WIDTH","KEY_STROKE_OPACITY","KEY_FONT_SIZE","KEY_FONT_STYLE","KEY_FONT_WEIGHT","KEY_TEXT_DECORATION","KEY_TEXTS_ALIGNMENT","ELLIPSIS","objectCreate","proto","DEFAULTS","scaleX","scaleY","getBackup","backupContainer","backupCounter","pathModified","preserveAspectRatioMap","full","lefttop","leftcenter","leftbottom","centertop","centerbottom","righttop","rightcenter","rightbottom","_hatching","lockDefsElements","releaseDefsElements","_filter","buildArcPath","innerR","outerR","startAngleCos","startAngleSin","endAngleCos","endAngleSin","longFlag","buildLineSegments","buildCurveSegments","buildSegments","buildSimpleLineSegment","buildSimpleCurveSegment","buildSimpleSegment","_points$","k0","constSeg","long","prepareConstSegment","constsSeg1","constsSeg2","shortLength","longLength","elemStyles","_styles","wrapper","getFuncIri","hasTransformations","recalculateDashStyle","_settings","isObjectArgument","_addFixIRICallback","_originalSW","_applyTransformation","parentStyle","parentClassName","realStyle","wholeText","textDecoration","orderHtmlTree","baseCss","_hasEllipsis","titleElements","detachTitleElements","startBox","endBox","tspan","getSubStringLength","ellipsisMaxWidth","hideOverflowEllipsis","ellipsis","getEllipsisString","setNewText","lastStepBreakIndex","breakIndex","initialIndices","spaceIndices","spaceIndex","getSpaceBreakIndex","getWordBreakIndex","restLines","restString","restTspan","cloneAndRemoveAttrs","setEllipsis","lineHeight","commonHeight","getItemLineHeight","calculateLineHeight","removeTextSpan","prevLine","hasEllipsis","createTspans","lineNumber","getTextWidth","wordWrapLines","insertString","newText","inherits","maxLengthFontSize","_texts","_getLineHeight","setTextNodeAttribute","fontSize1","fontSize2","parsedHeight1","parsedHeight2","height1","height2","animationParams","defaults","translateX","translateY","rotate","rotateX","rotateY","_animation","virtual","SvgElement","fixFuncIriCallbacks","PathSvgElement","_getJQElement","fixFuncIri","_fixFuncIri","_clearChildrenFuncIri","removeFuncIriCallback","clearChildren","enableLinks","_links","virtualLink","linkItem","_link","buildLink","linkAfter","_linkAfter","unlinkItem","updateIndexes","_insert","toBackground","toForeground","baseAttr","smartAttr","processHatchingAttrs","baseAnimate","sharp","sharpDirection","transformations","sharpMode","trDirection","strokeOdd","scaleXDefined","scaleYDefined","animOptions","_getElementBBox","transformation","rotateBBox","getSvgMarkup","stopAnimation","titleElem","removeTitle","buildPathSegments","jj","combinePathParam","endSegments","curSegments","oldSegments","originalNewSegments","oldLength","newLength","makeEqualSegments","makeEqualAreaSegments","makeEqualLineSegments","compensateSegments","ArcSvgElement","normalizeArcParams","arcParams","RectSvgElement","maxSW","newSW","_originalX","_originalY","_originalWidth","_originalHeight","TextSvgElement","display","_locker","_backed","isResetRequired","wasStroked","maxTextWidth","textWidth","alignTextNodes","isStroked","parsedHtml","parseMultiline","findStyleAndClassAttrs","allTagAttrs","p1","p2","p3","removeExtraAttrs","div","adjustLineHeights","createTextNodes","locateTextNodes","strokeWidth","strokeOpacity","strokeTextNodes","applyEllipsis","lineParts","restoreText","ellipsisWidth","getIndexForEllipsis","prepareLines","textIsEmpty","restoreTitleElement","detachAndStoreTitleElements","setMaxHeight","applyOverflowRules","Renderer","_defs","_animationController","updateAnimationOptions","backupRoot","unlock","restoreRoot","removeByRenderer","stopAllAnimations","simpleRect","circle","cx","preserveAspectRatio","_text","linearGradient","stops","gradientTransform","_createGradientStops","radialGradient","_stop$stopColor","stepTo2","stepBy15","patternUnits","customPattern","patternContentUnits","_getPatternUnits","_getPointsWithYOffset","clipShape","methodArgs","clipPath","shape","clipCircle","shadowFilter","gaussianBlur","in","stdDeviation","flood","composite","in2","operator","finalComposite","filterAttrs","offsetAttrs","floodAttrs","brightFilter","slope","componentTransferElement","getGrayScaleFilter","_grayScaleFilter","lightenFilter","storage","_defsElementsStorage","byHash","baseId","refToHash","nextId","drawPattern","storageId","drawFilter","storageItem","getHatchingHash","_math","_enumParser","parseOrientation","parseItemTextPosition","parsePosition","parseItemsAlignment","stateName","colorFromAction","idToIndexMap","renderMarker","textField","allowInsidePosition","parseMargins","countItems","margins","maxMeasureLength","maxAltMeasureLength","firstItem","lineLength","spacing","altDirection","altMeasure","altOffset","altSpacing","countItem","altCountItem","decreaseItemCount","maxLineSize","transposeArray","Legend","_legendGroup","_backgroundClass","backgroundClass","_itemGroupClass","itemGroupClass","_textField","_getCustomizeObject","getFormatObject","_titleGroupClass","titleGroupClass","_allowInsidePosition","_widget","_updated","_Legend","legendPrototype","themeManagerTitleOptions","initMarkerSize","parseOptions","getAttributes","titleOptions","getTitleHorizontalAlignment","erase","_insideLegendGroup","_createBackground","_background","_markersGroup","_createItems","_updateElementsPosition","_measureElements","maxBBoxHeight","markerBBox","getSizeItem","_size","_locateElements","_finalUpdate","createMarker","createCircleMarker","createSquareMarker","getMarkerCreator","markerShape","_markersId","markersGroup","_templatesGroups","stateOfDataItem","normalState","normalStateFill","defaultColor","itemGroup","markerGroup","_createLabel","markerOffset","bBoxes","_createHint","getTemplatesGroups","getTemplatesDef","_adjustBackgroundSettings","_setBoundingRect","insideLegendGroup","_x1","_x2","_y2","locationOptions","_moveInInitialValues","_locateRowsColumns","applyMarkerState","labelFormatObject","getAlign","textOpacity","isInside","iteration","_getItemsLayoutOptions","_createLines","_alignLines","checkLinesSize","_applyItemPosition","secondItem","tableLine","firstLine","secondLine","getLines","labelBox","getPos","markerBox","inverseLabelPosition","setMaxInLine","transpose","processLine","maxLineLength","getLineLength","getMaxLineLength","initPosition","getInitPositionForDirection","wrap","itemBBox","itemLegend","calculateBBoxLabelAndMarker","marginTextLabel","legendBox","_calculateTotalBox","backgroundSettings","rx","ry","widthWithoutMargins","getActionCallback","act","_shiftTitle","_shiftMarkers","_y1","boxWidth","titleY","titleX","getPosition","legendGroup","inRect","extenders","_applyTilesAppearance","_applyLegendItemStyle","_buildNodes","_createLegendItems","members","_getLegendData","_requestChange","_proxyData","_updateDataSource","_dataIsLoaded","_dataSourceItems","parseAttributes","FILE_EXTESIONS","EXCEL","CSS","PNG","JPEG","GIF","SVG","PDF","MIME_TYPES","fileSaver","_revokeObjectURLTimeout","_getDataUri","mimeType","_getMimeType","_linkDownloader","exportLinkElement","download","_winJSBlobSave","blob","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","file","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","_click","MouseEvent","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","logger","saveAs","Blob","_abs","_sqrt","_pow","_atan2","_number","largeArcFlag","clockwise","cBx","cBy","aB","opSide","adjSide","rootAppended","textAlign","rotationX","rotationY","textDecorationLine","globalAlpha","parseStyles","urlString","fontParams","fillStyle","drawElement","elementOptions","getElementOptions","mergedOptions","hasTspan","drawTextElement","widths","offsets","setFontStyle","measureText","commonWidth","xDiff","parentOptions","isText","isImage","isComment","save","transformElement","clipElement","fillOpacity","aggregateOpacity","beginPath","fillText","strokeElement","textHeight","fillElement","drawTextDecoration","drawText","Image","onload","drawImage","restore","onerror","dAttr","prevParams","prevParamsLen","dArray","lineTo","bezierCurveTo","arcTo","closePath","drawPath","drawRect","applyGradient","linearGradients","radialGradients","gradients","horizontalCenter","verticalCenter","maxRadius","createLinearGradient","createRadialGradient","opt","addColorStop","stopColor","_gradients$id$transfo","filterOptions","shadowOffsetX","shadowOffsetY","shadowBlur","clipPaths","clip","_element$attributes$g","asyncEach","onDone","drawCanvasElements","patterns","hexColor","alpha","hex2rgba","createGradient","_map","setLineDash","lineJoin","strokeStyle","strokeText","patternCanvas","imageCreator","_createCanvas","patternContext","createPattern","getPattern","newAttributes","getImageData","__parseAttributesFn","convertSvgToCanvas","scaledScreenInfo","calcScaledInfo","setTransform","invisibleDiv","svgElem","getSvgElement","markupIsDomElement","createInvisibleDiv","fillRect","drawBackground","getCanvasFromSvg","dataURL","toDataURL","getStringFromCanvas","binaryData","useBase64","_getBlob","_getBase64","dataArray","btoa","svgCreator","_markup","_imageArray","_imageDeferreds","_getBinaryFile","ajax","responseType","_loadImages","binary","byteLength","_parseImages","_prepareImages","$svgObject","dataURI","regexpString","exportingAction","exportedAction","fileSavingAction","selectedRowsOnly","creator","testFormats","supported","unsupported","pdf","imageString","curDate","widthPt","heightPt","flooredWidth","flooredHeight","mainPage","xref","mainPageLength","contentLength","infoLength","getXref","mainContent","composePdfString","dateUnits","getUTCFullYear","getTwoDigitValue","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","convertToPdfDateFormat","pdfData","getBlob","getBase64","pointerActions","ICON_COORDS","ALLOWED_IMAGE_FORMATS","ALLOWED_EXTRA_FORMATS","EXPORT_CSS_CLASS","EXPORT_DATA_KEY","FORMAT_DATA_KEY","imageFormats","imageExporter","validFormats","getValidFormats","svgExporter","pdfExporter","BUTTON_SIZE","LIST_WIDTH","separator","getItemAttributes","hoverEventStart","hoverEventEnd","fixPosition","textBBox","ExportMenu","_exportTo","_print","print","_shadow","_buttonGroup","_listGroup","_overlay","_subscribeEvents","exportOptions","validateFormat","getSize","_hiddenDueToLayout","_updateButton","_updateList","_hideList","_unsubscribeEvents","weak","_fillSpace","_listShown","_setButtonState","_menuItems","_showList","_button","_icon","elementType","exportData","buttonDefault","listGroup","createMenuItem","createMenuItems","_exportMenu","_getExportMenuOptions","_disablePointerEvents","pointerEventsValue","menu","getExportOptions","_export","getCreatorFunc","iFrame","contentWindow","img","iFrameBody","calculatePrintPageWidth","removeFrame","setPrint","__test","_optionChangesMap","onExporting","onExported","onFileSaving","LOADING_INDICATOR_READY","LoadingIndicator","_rect","_createStates","_states","setSize","_transit","stateId","_isHiding","_noHiding","scheduleHiding","fulfillHiding","_skipLoadingIndicatorOptions","_stopCurrentHandling","_scheduleLoadingIndicatorHiding","_fulfillLoadingIndicatorHiding","showLoadingIndicator","hideLoadingIndicator","_onBeginUpdate","_optionChangedLocker","_setContentSize","_canvas","_dataIsReady","_eventsMap","onLoadingIndicatorReady","_drawn","FORMAT_SEPARATORS","checkDigit","zeroCode","checkPatternContinue","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","formatValue","ESCAPE_CHARS_REGEXP","getFormat","processedIndexes","patternPositions","replacedPatterns","datePatterns","patternsFilter","getDifference","indexes","patternIndex","letterCount","baseCharIndex","replaceCharsCore","replaceChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","escapeChars","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","timeSeparator","getTimeSeparator","parseNumber","caseInsensitiveIndexOf","monthPatternParser","monthNames","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","getSameCharCount","getRegExpInfo","regexpText","stubText","addPreviousStub","regexpPart","isPossibleForParsingFormat","regexp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","SYMBOLS_TO_REMOVE_REGEX","NARROW_NO_BREAK_SPACE_REGEX","getIntlFormatter","timeZoneName","recognizableAsTwentyCentury","utcDate","formatDateTime","formatNumber","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","removeLeadingZeroes","normalizeMonth","intlFormats","dayofweek","weekday","longdate","longdatelongtime","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","getIntlFormat","monthNameStrategies","monthIndex","monthFormat","wide","dayIndex","hour12Formatter","hour12","hourNumberText","timeParts","intlFormat","_parseDateBySimpleFormat","formatParts","getFormatParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","expected","dateStringEquals","formatUsesMonthName","formatUsesDayName","formattedDate","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","possiblePartPatterns","dateLocalization","_getPatternByFormat","_expandPattern","partName","possiblePatterns","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","getLDMLDateFormatter","ldmlFormat","getLDMLDateFormat","regExpInfo","regExpResult","formatPatterns","fullPatterns","getShortPatterns","maxPatternIndex","getMaxOrderedPatternIndex","orderedFormatPatterns","otherPatterns","getOrderedFormatPatterns","patternChar","partSetter","partParser","setPatternPart","setterName","setPatternPartFromNow","getLDMLDateParser","firstDayOfWeekIndex","localizationCore","firstDayOfWeekData","intlDateLocalization","Fs","formatIsValid","valueIsValid","getTimeFormat","showSecond","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","correctDateDifferences","minDate","maxDate","asin","buildPath","xDirection","yDirection","x0","y0","anchorX","anchorY","halfWidth","halfHeight","xr","yb","bounded","halfArrowWidth","leftTopCorner","rightTopCorner","rightBottomCorner","leftBottomCorner","arrowX","arrowY","arrowBaseBottom","arrowBaseTop","arrowBaseLeft","getArc","arrowAngle","arrowEndPointX","arrowEndPointY","arrowArc","getAbsoluteArc","_arrowArc","_angle","arrowBaseTopX","arrowBaseTopY","_angle2","_arrowBaseTopX","_arrowBaseTopY","bottomAngle","arrowBaseBottomX","arrowBaseBottomY","topAngle","_arrowBaseTopX2","_arrowBaseTopY2","_bottomAngle","_arrowBaseBottomX","_arrowBaseBottomY","_bottomAngle2","_arrowBaseBottomX2","_arrowBaseBottomY2","_bottomAngle3","_arrowBaseBottomX3","_arrowBaseBottomY3","_topAngle","_arrowBaseTopX3","_arrowBaseTopY3","measureContent","moveContentGroup","bonded","restProps","bounds_xl","bounds_xr","bounds_width","bounds_yt","bounds_yb","bounds_height","_draw","shadowSettings","contentWidth","contentHeight","onRender","_this$_root","_contentBBox","_contentGroup","xOff","yOff","lm","tm","y_top","y_bottom","pn","cloudSettings","borderOptions","cloudGroup","_cloud","getCloudAngle","customizeCloud","moveRoot","radRotationAngle","getCloudPoints","rotateSize","hitTest","formatHelper","mathCeil","mathMax","mathMin","Tooltip","_widgetRoot","widgetRoot","_textHtmlContainers","_wrapper","_textGroupHtml","_textHtml","createTextHtml","_getContainer","_template","_textFontStyles","_customizeTooltip","textGroupHtml","plaque","Plaque","isMoving","templateCallback","useTemplate","skipTemplate","textColor","htmlContainers","containerToTemplateRender","removeElements","_riseEvents","_moveWrapper","_eventData","setRendererOptions","hideElement","normalizedCSS","fontColor","forceEvents","_clear","plaqueBBox","_specialFormat","specialFormat","percentPrecision","getSpecialFormatOptions","containerBox","_initTooltip","_disposeTooltip","_setTooltipRendererOptions","_getRendererOptions","_setTooltipOptions","onTooltipShown","onTooltipHidden","core","loadMessages","formatDate","placeHolder","pointInfo","customFormat","customFormatIndex","closestCoord","closestDistance","coord","barPointStrategy","isLabelInside","labelPoint","figure","xc","yc","prepareLabelPoints","rotatedBBox","isHorizontal","figureCenter","isRectangular","getCrossCoord","getFigureCenter","findFigurePoint","getClosestCoord","adjustPoints","lineIsVertical","symbolPointStrategy","piePointStrategy","_0","_1","isOutside","_getCosAndSin","point1x","point1y","point2x","point2y","labelX","_degreesToRadians","renderSettings","_container","labelsGroup","_rowCount","Label","setColor","_color","fieldValue","setFigureToDrawConnector","_figure","disposeItem","_textContent","_visible","_insideGroup","_connector","_setVisibility","holdInvisible","_holdVisibility","holdVisible","correctPosition","correctLabelPosition","argumentText","percent","percentText","totalText","openValue","openValueText","closeValue","closeValueText","lowValue","lowValueText","highValue","highValueText","reductionValue","reductionValueText","actualText","continueProcess","startBracketIndex","endBracketIndex","getValueByPlaceHolder","processDisplayFormat","formatText","checkBackground","checkConnector","_updateBackground","_getLabelVisibility","_bBoxWithoutRotation","_rotateBBox","_bBox","selectStrategy","_getConnectorPoints","_shiftBBox","rowCountChanged","resetEllipsis","setTrackerData","hideInsideLabel","getPoint","_x","_y","connectorOffset","CANVAS_POSITION_DEFAULT","deleteLabel","_hasGraphic","graphic","clearVisibility","inVisibleArea","setInvisibility","_errorBar","clearMarker","_emptySettings","_labelsGroup","_calculateVisibility","minX","maxX","minY","maxY","_getVisibleArea","_updateLabelData","_getLabelFormatObject","_updateLabelOptions","_checkImage","_fillStyle","_checkSymbol","oldOptions","oldSymbol","newSymbol","symbolChanged","imageChanged","_populatePointShape","getSquareMarkerCoords","getPolygonMarkerCoords","getTriangleDownMarkerCoords","getTriangleUpMarkerCoords","floorHalfRadius","ceilHalfRadius","getCrossMarkerCoords","hasCoords","correctValue","getValueAxis","properValue","validateUnit","resetCorrection","resetValue","_getTranslates","defaultX","defaultY","_createImageMarker","_createSymbolMarker","pointSettings","_createMarker","_getSymbolBBox","_getImageBBox","_getGraphicBBox","_getShiftLabelCoords","_addLabelAlignmentAndOffset","_getLabelCoords","_checkLabelPosition","_drawLabel","customVisibility","_getCustomLabelVisibility","_showForZeroValues","getLabelVisibility","_getLabelConnector","pointPosition","_getPositionFromLocation","_isPointInVisibleArea","visibleArea","graphicBBox","fullGraphicBBox","labelOptions","_getLabelCoordOfPosition","_getLabelPosition","_drawMarker","translates","_getStyle","_getErrorBarSettings","_getErrorBarBaseEdgeLength","getPointRadius","_drawErrorBar","errorBars","errorBarOptions","_errorBarPos","high","_highErrorCoord","low","_lowErrorCoord","isHighDisplayMode","isLowDisplayMode","highErrorOnly","lowErrorOnly","_baseErrorBarPos","setPercentValue","absTotal","leftHoleTotal","rightHoleTotal","valuePercent","minValuePercent","isFullStackedSeries","leftHole","minLeftHole","rightHole","minRightHole","_storeTrackerR","minTrackerSize","msPointerEnabled","msMaxTouchPoints","pointerEnabled","trackerR","_translateErrorBars","translator","_getValTranslator","lowError","highError","vy","vx","_translate","valTranslator","argTranslator","_getArgTranslator","_updateData","originalValue","initialMinValue","originalMinValue","_getImageSettings","xValue","yValue","_updateMarker","initialArgument","originalArgument","seriesName","lowErrorValue","highErrorValue","_getFormatObject","trackerRadius","getMinValue","noErrorBar","getMaxValue","invert","getBusinessRange","isDiscreteValue","isFullStacked","symbolPoint","correctCoordinates","correctOptions","yCorrection","xCorrection","_cacheVisibility","isTop","getLabelOrientation","getMarkerCoords","_getSettingsForTracker","getGraphicSettings","_getEdgeTooltipParams","xCoord","yCoord","invertedBusinessRange","getCenterCoord","_truncateCoord","argVisibleArea","valAxis","argAxis","valIntervalName","argIntervalName","getArgumentAxis","getVisibleArea","valVisibleArea","minVal","getAxisPosition","edgeOffset","argAxisPosition","isStartFromAxis","getAxisShift","diameter","bubbleSize","initialSize","sizeText","_acos","acos","DEG","argumentChanged","toAngle","fromAngle","correctRadius","radiusLabels","normalInitialValue","_isLabelDrawingWithoutPoints","_getLabelExtraCoord","_checkVerticalLabelPosition","getAnnotationCoords","_getElementCoords","elementRadius","rad","angleFunctions","middleAngle","columnsPosition","_correctLabelCoord","moveLabelsFromCenter","labelWidth","rightBorderX","leftBorderX","angleOfPoint","_normalizeAngle","drawLabel","updateLabelCoord","_checkHorizontalLabelPosition","shiftCoord","applyWordWrap","setLabelTrackerData","seriesStyle","strokeWidthBy2","firstDrawing","shiftedAngle","getLegendStyles","legendStyles","isInVisibleArea","hideTooltip","visibilityChanged","lx","ly","_topLabel","_bottomLabel","hideMarker","topMarker","bottomMarker","emptySettings","markerType","labelsInside","_getLabelMinFormatObject","maxFormatObject","images","_getImage","_checkOverlay","bottomCoord","topCoord","topValue","_getOverlayCorrections","topCoords","bottomCoords","coordSelector","valueSelector","minBound","maxBound","coord1","coord2","_checkLabelsOverlay","topLocation","corrections","notInverted","topLabel","bottomLabel","visibleTopMarker","visibleBottomMarker","imageOption","rangeMaxPoint","rangeMinPoint","oldImages","newImages","topImageChanged","bottomImageChanged","_getSettingsForTwoMarkers","_drawOneMarker","imageSettings","_updateOneMarker","tmp","visibleRangeArea","visibleArgArea","visibleValArea","maxVisible","rangeValue1Text","rangeValue2Text","rangeValue1","rangeValue2","getLabel","getLabels","xCond","yCond","cqe","barPoint","rangeSymbolPointMethods","edgeLocation","_getContinuousPoints","openCoord","closeCoord","createPoint","highCoord","highY","lowY","closeY","_getCrockPoints","_getPoints","openY","_isReduction","_drawMarkerInGroup","_isPositive","reductionPositive","positive","_getMinTrackerWidth","_getMarkerGroup","reductionPositiveMarkersGroup","reductionMarkersGroup","defaultPositiveMarkersGroup","defaultMarkersGroup","centerCoord","centerValue","origY","reductionColor","originalLowValue","originalHighValue","originalOpenValue","originalCloseValue","isReduction","_isNumeric","candlestickPoint","openYExist","closeYExist","CANVAS_POSITION_START","CANVAS_POSITION_END","polarSymbolPoint","piePoint","_moveLabelOnCanvas","_getCoords","getAngles","convertPolarToXY","getCenter","isInverted","_checkRadiusForVisibleArea","getDefaultCoords","getCoords","polarBarPoint","businessRange","minVisible","defaultRadius","middleAngleCorrection","mixins","SYMBOL_POINT","POLAR_SYMBOL_POINT","BAR_POINT","POLAR_BAR_POINT","PIE_POINT","SELECTED_STATE","HOVER","NORMAL","SELECTION","pointTypes","_viewCounters","bubblePoint","rangeSymbolPoint","rangeBarPoint","stockPoint","Point","usePointCustomOptions","customizePoint","_dataItem","_currentStyle","updateOptions","updateData","argumentWasChanged","aggregationInfo","deleteMarker","_needDeletingOnDraw","_needClearingOnDraw","markers","_getViewStyle","isNoneMode","applyView","legendCallback","getRenderer","getMarkersGroup","setView","resetView","viewCounters","releaseHoverState","hoverPoint","clearPointHover","showTooltip","_checkLabelsChanging","oldType","newType","isNewRange","isOldRange","newPointTypeMixin","_resetType","_setType","_checkCustomize","translated","useLabelCustomOptions","methods","setDefaultCoords","getTranslator","isArgumentCorrect","_argumentChecker","isValueCorrect","valueChecker","_valueChecker","stackPoints","sharedTooltipValuesArray","tooltipStackPointsFormatObject","stackName","getStackName","rangeText","formatRange","intervalStart","intervalEnd","setHole","holeValue","resetHoles","rangeCalculator","continuousRangeCalculator","calculateInterval","minInterval","minArgs","firstValue","prevPoint","bound","extraPoint","getValueForArgument","getRangeCalculator","calculatePointBetweenPoints","isLineSeries","calculateRangeBetweenPoints","getMarginOptions","viewportFilter","getViewPortFilter","startCalc","endCalc","dictionary","getArgumentRange","processCategories","getRangeData","useAggregation","argumentCalculator","createGetLogFunction","valueRangeCalculator","viewportReducer","getViewportReducer","getInitialRange","aggregatedPointBetweenTicks","getArgumentRangeInitialValue","getValueRangeInitialValue","argumentRange","getViewport","reducer","getPointsInViewPort","argumentViewPortFilter","valueViewPort","valueViewPortFilter","addValue","isEdge","isMinValueInViewPort","isMaxValueInViewPort","addEdgePoints","nextPoint","HIGH_ERROR","LOW_ERROR","VARIANCE","STANDARD_DEVIATION","STANDARD_ERROR","PERCENT","FIXED","expectedValue","targetData","_getIntervalCenter","baseScatterMethods","_defaultDuration","_defaultTrackerWidth","_applyStyle","_parseStyle","_prepareSegment","_drawSegment","_appendInGroup","_extGroups","_createLegendState","styleOptions","_getColorId","_applyElementsClipRect","_paneClipRectID","_applyMarkerClipRect","_forceClipping","_createGroup","_applyClearingSettings","_createGroups","_setMarkerGroupSettings","_createPointStyles","_getMarkerGroupOptions","_visibleArea","areErrorBarsVisible","_errorBarsEnabled","isErrorBarTypeCorrect","groupPointsByCoords","pointCoord","_createErrorBarGroup","_widePaneClipRectID","_setGroupsSettings","_setLabelGroupSettings","_getCreatingPointOptions","defaultPointOptions","normalStyle","creatingPointOptions","_predefinedPointOptions","_getPointOptions","_parsePointOptions","_preparePointOptions","_getOptionsForPoint","_parsePointStyle","defaultBorderColor","defaultSize","sizeValue","pointOptions","mainPointColor","containerColor","labelColor","_checkData","skippedFields","fieldsToCheck","allFieldsIsValid","isArgument","checkFields","_points$0$aggregation","_points$aggregationIn","_getRangeData","_getPointDataSelector","getTagField","pointData","_processEmptyValue","_drawPoint","hasAnimation","_drawnPoints","_animateComplete","animationSettings","_errorBarGroup","lastPointIndex","getVisualRangeCenter","_defaultAggregator","_aggregators","aggregationResult","errorBarsOptions","fusionData","calculateAvgErrorBars","calculateSumErrorBars","getMinMaxAggregator","_endUpdateData","valueFields","_calculateErrorBars","valueArrayLength","meanValue","processDataItem","errorBarType","floatErrorValue","addSubError","variance","_patchMarginOptions","usePointsToDefineAutoHiding","drawTrackers","trackers","trackersGroup","_segments","_trackers","_trackersGroup","_updateTrackerElement","_drawTrackerElement","_trackersTranslator","_checkAxisVisibleAreaCoord","checkSeriesViewportCoord","getSeriesPairCoord","oppositeCoord","isOpposite","coordName","oppositeCoordName","tmpCoord","_getNearestPoints","_getBezierPoints","_getNearestPointsByCoord","allPoints","bezierPoints","nearestPoints","minDistance","pCoord","nCoord","_applyVisibleArea","visibleX","visibleY","getPointCenterByArg","getPointsByArg","getCanvas","paramName","tmpPoint","newX","newY","newAngle","centerPoint","nextStepAngle","correctAngle","clonePoint","lineMethods","autoHidePointMarkersEnabled","_applyGroupSettings","_elementsGroup","_bordersGroup","chartScatterSeries","_areBordersVisible","_getDefaultSegment","_parseLineOptions","_graphics","_drawElement","_createMainElement","_removeElement","_updateElement","animationComplete","lineElement","lastIndex","_sortPoints","segmentCount","lastSegment","_getTrackerSettings","defaultTrackerWidth","strokeWidthFromElements","_getMainPointsFromSegment","isArgumentAxis","lineSeries","needValueCoord","_calculateStepLinePoints","_calculateBezierPoints","pointsCopy","checkExtremum","otherPointCoord","controlCoord","curPoint","leftControlX","leftControlY","rightControlX","rightControlY","xCur","yCur","leftPoint","rightPoint","bezierCoordName","bezierOppositeCoordName","p0","D2","roots","getRoot","D3","solveCubicEquation","obtainCubicBezierTCoef","polarScatterSeries","preparedPoints","_closeSegment","_getTangentPoints","_getRemainingAngle","normAngle","newPoint","_modifyReflectedPoint","lastPoint","isLastSegment","tangentPoints","betweenAngle","getTangentPoint","coordParam","isInsideInterval","getRadius","neighborPoints","getNeighborPoints","stepAngle","b1","trunc","param","firstPointCopy","lastPointCopy","rearwardRefPoint","forwardRefPoint","chartLineSeries","lineSeriesChart","polarLineSeries","lineSeriesPolar","calculateBezierPoints","baseAreaMethods","_createBorderElement","_options$color","scatterSeries","defaultSegment","lineParams","areaParams","borderElement","_options$highlight","borderStyle","singlePointSegment","areaSeries","processedPoints","_processSinglePointsAreaSegment","areaPoints","createAreaPoints","stepLineSeries","_areaPointsToSplineAreaPoints","previousMiddlePoint","middlePoint","areaSegment","areaDefaultSegment","areaChart","chartSeries","polarSeries","baseBarSeriesMethods","_getAffineCoordOptions","_getMainColor","_pointOptions$color","mainColor","colorId","_turnOffHatching","_updatePointsVisibility","_points","_animatePoints","drawnPoints","_this$getArgumentAxis","_defineDrawingState","animateFunc","markersSettings","groupSettings","getTranslatedAngle","baseRangeSeries","val1Field","val2Field","val1","val2","minCoordName","barChart","processedMinPointsCoords","bottomLine","drawnElement","elementsGroup","bordersGroup","bottomLineParams","bottomBorderElement","chartBarSeries","polarBarSeries","barPolar","lineChart","baseGetter","aggregate","labelAnimFunc","processBubbleSize","barSeries","_isFinite","_legendCallback","_getOldPoint","oldPointsByArgument","adjustLabels","drawLabelsWOPoints","getPointsCount","setMaxPointsCount","_pointsCount","dataIndex","labelSpace","paintNullPoints","pointsByArg","_rangeData","_getArrangeMinShownValue","totalMinSegmentSize","totalNotMinValues","_applyArrangeCorrection","minShownValue","isClockWise","segmentsDirection","zeroTotalCorrection","updatedZeroValue","_removePoint","arrangePoints","originalPoints","isAllPointsNegative","labelRadius","pointsCount","completeFunc","defaultStyle","defaultPositiveStyle","reductionStyle","reductionPositiveStyle","markerSettings","prevLevelValue","_getDefaultStyle","_getReductionStyle","positiveStyle","ohlc","chartAreaSeries","baseStackedSeries","_stackName","stackedBar","preparePointsForStackedAreaSegment","_prevSeries","forwardPoints","backwardPoints","prevSeriesForwardPoints","pointByArg","_segmentByArg","prevSeriesPoints","prevSeries","getPointsByArgFromPrevSeries","_polar","seriesNS","APPLY_SELECTED","APPLY_HOVER","RESET_ITEM","NONE_MODE","SERIES_SELECTION_CHANGED","POINT_SELECTION_CHANGED","SERIES_HOVER_CHANGED","POINT_HOVER_CHANGED","ALL_SERIES_POINTS","ALL_ARGUMENT_POINTS","POINT_HOVER","CLEAR_POINT_HOVER","SERIES_SELECT","POINT_SELECT","POINT_DESELECT","_eventPipe","eventPipe","pieSeries","rangeSeriesChart","bubbleSeriesChart","financialSeries","stackedSeries","Series","_createStyles","setClippingParams","wideId","forceClipping","clipLabels","_clipLabels","applyClip","resetClip","_createPoint","oldPoint","pointsByArgument","includePointsMode","lastSelectionMode","pointByArgument","_deleteGroup","_checkType","_checkPolarBarType","_firstDrawing","_pointOptions","_seriesModes","commonSeriesModes","_valueAxis","_disposePoints","getValueChecker","_canRenderCompleteHandle","dataSelector","itemsWithoutArgument","pointDataItem","_getData","getAggregationInfo","_useAllAggregatedPoints","_resample","createPoints","useAllAggregatedPoints","_normalizeUsingAllAggregatedPoints","_createPoints","pointIndex","_removeOldSegments","_prepareSegmentsPosition","isCloseSegment","_drawSegments","_drawElements","groupForPoint","closeSegment","_isAllPointsTranslated","prepareCoordinatesForPoints","_resetApplyingAnimation","hideLabels","_changeStyle","_translatePoints","_this$_points","spiderWidget","seriesType","_setPointsView","_resetPointsView","_resetNearestPoint","_nearestPoint","_setSelectedState","_releaseSelectedState","isStackedSeries","resetApplyingAnimation","isFirstDrawing","isFinancialSeries","_canChangeView","skipPoints","currentNearestPoint","_getMainAxisName","areLabelsVisible","customizeObject","customLabelOptions","customOptions","customizeLabel","_isEmptyObject","_changeVisibility","parsedOptions","labelFont","labelBorder","labelConnector","backgroundAttr","connectorAttr","getLabelOptions","mergePointOptionsCore","mergePointOptions","_getAggregationMethod","addAggregatedData","processData","aggregationMethod","aggregatedData","dataInInterval","_aggregationInfo","canRenderCompleteHandle","getAllPoints","_createAllAggregatedPoints","getPointByPos","setPointSelectedState","releasePointSelectedState","setPointHoverState","currentPoint","releasePointHoverState","skipPointsCreation","argValue","seriesModes","targetOptions","pointHoverMode","selectionModeOfPoint","_hoverPointHandler","_clearPointHoverHandler","_selectPointHandler","_deselectPointHandler","_deletePoints","_deleteTrackers","getOpacity","getBarOverlapGroup","removePointElements","removeGraphicElements","removeBordersGroup","E2001","E2002","E2003","E2004","E2005","E2006","E2007","E2008","E2009","E2101","E2102","E2103","E2104","E2105","E2202","E2203","W2002","W2003","W2101","W2102","W2103","W2104","W2105","W2106","W2107","W2108","W2301","ERROR_MESSAGES","warnings","baseMap","thisMap","baseList","thisList","_totalChangesOrder","_optionChangesOrder","_layoutChangesOrder","_customChangesOrder","_themeDependentChanges","buildTotalChanges","executeChain","_chain","expander","createChainExecutor","expand","Flags","codes","_flags","replaceInherit","_inherit","addPlugin","eventsMap","initialChanges","_initialChanges","themeDependentChanges","optionChangesMap","partialOptionChangesMap","_partialOptionChangesMap","partialOptionChangesPath","_partialOptionChangesPath","optionChangesOrder","layoutChangesOrder","customChangesOrder","combineLists","combineMaps","horizontalAlignmentMap","verticalAlignmentMap","sideMap","slicersMap","pickValue","bringToEdge","secondary","getShrink","alignmentRect","primarySide","secondarySide","getConjugateSide","itemRect","getSlice","targetRect","processRectBackward","itemFitRect","_targets","rectCopy","weakElement","weakSize","headerSize","weakRect","processBackwardHeaderRect","headerFitReact","headerRect","Layout","forward","targets","normalizeLayoutOptions","headerItem","weakItem","makeHeader","processWeakItems","createTargets","processForward","backward","backwardRect","targetSide","processBackward","areCanvasesDifferent","canvas1","canvas2","sizeLessThreshold","canvasCoordsIsEqual","floorCanvasDimensions","graphicObjects","OPTION_RTL_ENABLED","SIZED_ELEMENT_CLASS","baseOptionMethod","functions","EmptyComponent","originalInherit","baseWidget","onIncidentOccurred","actionSettings","onDrawn","defaultOnIncidentOccurred","_useLinks","_graphicObjects","_changesLocker","_asyncFirstDrawing","_changes","_suspendChanges","_createThemeManager","_initRenderer","useLinks","_toggleParentsScrollSubscription","_initEventTrigger","_stringFormat","createIncidentOccurred","_Layout","_initPlugins","_initCore","_getThemeManagerOptions","_disposePlugins","_resumeChanges","_applyingChanges","_applyChanges","_changesApplied","_optionsQueue","_applyQueuedOptions","resolveItemsDeferred","_notify","_resolveDeferred","_getTemplatesItems","_collectTemplatesFromItems","prev","_getExtraTemplatesItems","launchRequest","doneRequest","_setGroupsVisibility","_changesApplying","callForEach","syncRendering","changesOrderLength","_change_EVENTS","applyChanges","_change_THEME","_setThemeAndRtl","_change_RENDERER","_setRendererOptions","_change_RESIZE_HANDLER","_setupResizeHandler","_change_ELEMENT_ATTR","_change_CONTAINER_SIZE","_updateSize","_change_LAYOUT","_change_DISABLED","_initDisabledState","rawCanvas","_calculateRawCanvas","_rootClass","_disposeRenderer","_disposeGraphicObjects","_getAnimationOptions","_proxiedTargetParentsScrollHandler","_$prevRootParents","_removeResizeHandler","_disposeCore","callbackGetter","triggers","eventInfo","createEventTrigger","defaultCanvas","_getDefaultSize","getSizeOfSide","sizeIsValid","pickPositiveValue","__forceRender","_recreateSizeDependentObjects","_getMinSize","_getAlignmentRect","nextRect","_applySize","isScalar","_disposeResizeHandler","disposeHandler","resizeManager","resizeCallback","createDeferredHandler","getResizeManager","_windowResizeCallbacks","createResizeHandler","_getActionForUpdating","partialChanges","getPartialChangeOptionsName","pc","changedOption","sections","partialChangeOptionsName","_addOptionsNameForPartialUpdate","_checkOptionsForPartialUpdate","optionObject","optionKeys","getFalse","getTrue","_resetIsReady","_renderGraphicObjects","graphics","sizedElement","isRotated","shiftFunction","endX","endY","oppositeStart","oppositeEnd","initialPosition","toChain","nextRollingStock","nextRollingStockBBox","changeBoxWidth","shiftLength","setRollingStockInCanvas","getInitialPosition","FORCE_RENDER_REFRESH_ACTION","ACTIONS_BY_PRIORITY","FONT","rollingStocks","stubCanvas","canvasSize","rollingStock","findAndKillSmallValue","smallestObject","iLength","jLength","overlap","checkStacksOverlapping","firstRolling","secondRolling","inTwoSides","firstRect","secondRect","positiveRollingStocks","negativeRollingStocks","currentRollingStock","shouldSetCanvas","rollingStocksIsOut","currentBBox","overlapping","sortRollingStocks","customSorting","hasStackedSeries","RollingStock","sortRollingStocksByValue","rollingStocksTmp","checkStackOverlap","checkHeightRollingStock","prepareOverlapStacks","moveRollingStock","BaseChart","BaseWidget","onSeriesClick","onPointClick","onArgumentAxisClick","onLegendClick","onSeriesSelectionChanged","onPointSelectionChanged","onSeriesHoverChanged","onPointHoverChanged","onZoomStart","onZoomEnd","chartOption","themeManager","_canvasClipRect","_createHtmlStructure","_createLegend","_createTracker","_needHandleRenderComplete","layoutManager","_createScrollBar","_getLayoutItems","_layoutManagerOptions","_reinit","_setCanvasValues","_reinitAxes","_correctAxes","createConstantLinesGroup","_constantLinesGroup","under","above","_labelsAxesGroup","appendLabelsAxesGroup","_backgroundRect","_panesBackgroundGroup","_stripsGroup","_gridGroup","_panesBorderGroup","_axesGroup","_executeAppendBeforeSeries","_stripLabelAxesGroup","_executeAppendAfterSeries","_scaleBreaksGroup","_crosshairCursorGroup","_getCanvasClipRectID","_scrollBarGroup","_disposeObjectsInArray","fieldNames","disposeObject","unlinkGroup","disposeObjectsInArray","_groupsData","_processRefreshData","_resize","_doRender","__renderOptions","isResize","_trackerType","_tracker","trackerModule","_getSelectionModes","_updateTracker","trackerCanvases","_createCanvasFromRect","currentCanvas","drawOptions","_prepareDrawOptions","recreateCanvas","_preserveOriginalCanvas","__currentCanvas","_updateCanvasClipRect","_cleanGroups","_renderElements","_lastRenderingTime","__originalCanvas","_layoutAxes","argBusinessRange","zoomMinArg","zoomMaxArg","preparedOptions","_prepareToRender","_isRotated","isLegendInside","_isLegendInside","drawLegend","layoutTargets","_getLayoutTargets","needSpace","axisDrawOptions","_renderAxes","_shrinkAxes","_applyClipRects","_appendSeriesGroups","_createCrosshairCursor","_scrollBar","_argumentAxes","setPosition","_updateLegendPosition","_applyPointMarkersAutoHiding","_renderSeries","_appendAdditionalSeriesGroups","_calculateSeriesLayout","_renderSeriesElements","_updateSeriesDimensions","_getArgFilter","_getValFilter","_getPointsToAnimation","argViewPortFilter","valViewPortFilter","pointsToAnimation","_applyExtraSettings","animationPointsLimit","_getLegendCallBack","_adjustSeriesLabels","_locateLabels","_renderTrackers","_renderExtraElements","_clearCanvas","_seriesElementsDrawn","_renderCompleteHandler","_resolveLabelOverlapping","_resolveLabelOverlappingStack","_resolveLabelOverlappingHide","_resolveLabelOverlappingShift","_getVisibleSeries","getAllSeries","currentLabel","nextLabel","currentLabelRect","checkOverlapping","_allowLegendInsidePosition","legendSettings","legendDataField","formatObjectFields","indexField","getLegendFields","getLegendSettings","_legendDataField","_updateLegend","legendOptions","legendData","animationOptions","adjustAxes","drawTitle","newRefreshAction","currentRefreshActionPosition","_currentRefreshData","newRefreshActionPosition","_getLegendTargets","opacityStyle","_getLegendOptions","_legendItemTextField","_disposeSeries","seriesIndex","_disposeSeriesFamilies","seriesFamilies","defaultPane","_change_ANIMATION","_change_DATA_SOURCE","_change_PALETTE","_refreshSeries","_change_REFRESH_SERIES_DATA_INIT","_change_DATA_INIT","needToPopulateSeries","_dataInit","_change_FORCE_DATA_INIT","_change_REFRESH_SERIES_FAMILIES","_processSeriesFamilies","_populateBusinessRange","_change_FORCE_RENDER","_change_AXES_AND_PANES","_change_ROTATED","_change_REFRESH_SERIES_REINIT","_change_REFRESH_AXES","_change_SCROLL_BAR","_change_REINIT","_change_FORCE_DRAWING","_resetComponentsAnimation","_change_FORCE_FIRST_DRAWING","_resetAxesAnimation","_change_CORRECT_AXIS","_doRefresh","_dataSpecificInit","_processSingleSeries","_handleSeriesDataUpdated","_populateMarginOptions","needRedraw","_populateSeries","_repopulateSeries","_seriesPopulatedHandlerCore","_forceRender","dataValidatorOptions","_groupSeries","validateData","allSeriesInited","_populateSeriesOptions","particularSeriesOptions","seriesTheme","seriesOptions","allSeriesOptions","extraOptions","_getExtraOptions","seriesThemes","seriesVisibilityChanged","_specialProcessSeries","_checkPaneName","particularSeries","seriesBasis","disposeSeriesFamilies","curSeries","sb","_reverseEach","basis","_getValueAxis","getSeriesByName","found","getSeriesByPos","renderOptions","_change_REFRESH","_change_FULL_RENDER","_change_INIT","exportPlugin","titlePlugin","dataSourcePlugin","tooltipPlugin","loadingIndicatorPlugin","_change_TITLE","setDomain","setCodomain","setInverted","Translator1D","domain1","domain2","_domain1","_domain2","_domainDelta","codomain1","codomain2","_codomain1","_codomain2","_codomainDelta","getDomain","getCodomain","getDomainStart","getDomainEnd","getCodomainStart","getCodomainEnd","getDomainRange","getCodomainRange","_subTheme","subTheme","ReadyCallbacks","Tracker","_showTooltipCallback","_tooltipEvent","data_target","data_info","_targetEvent","_tooltipTarget","_callbacks","_hideTooltipCallback","_hideTooltipTimeout","setTooltipState","handleTooltipMouseOver","handleTooltipMouseOut","handleTooltipTouchStart","handleTooltipTouchEnd","handleTooltipMouseWheel","setCallbacks","active_touch_tooltip_tracker","_touch","handleDocumentTooltipTouchStart","BaseGauge","themeManagerModule","_valueChangingLocker","_translator","_factory","createTranslator","createTracker","_setTrackerCallbacks","_beginValueChanging","_endValueChanging","tooltipParameters","getTooltipParameters","_cleanCore","_cleanContent","_isValidDomain","_noAnimation","_resizing","_innerRect","layoutCache","geometry","_change_DOMAIN","_setupDomain","_change_MOSTLY_TOTAL","_applyMostlyTotalChange","_updateExtraElements","_setupDomainCore","_setupCodomain","_setupAnimationSettings","_setupDefaultFormat","_animationSettings","_containerBackgroundColor","domain","_defaultFormatOptions","_getAppropriateFormat","_getApproximateScreenRange","_calculateSize","getSampleText","text1","text2","array1","array2","compareArraysElements","EXPONENTIAL","INTERVALS_MAP","prevDate","nextDate","tickIntervalFormat","tickFormatIndex","nextDifferences","setDateUnitInterval","resetDateUnitInterval","patchFirstTickDiff","prevDifferences","patchTickDiff","intervalIndex","curDiff","minDiff","nearestTickIndex","stringTick","getNoZeroIndex","isLogarithmic","indexOfTick","getTransitionTickIndex","log10Tick","log10","formatLogarithmicNumber","separatedTickInterval","splitDecimalNumber","getFormatExponential","tickIndex","tickIntervalIndex","actualIndex","indexOfFormat","typeFormat","getFormatWithModifier","prevDateIndex","nextDateIndex","showTransition","datesDifferences","createFormat","getDateTimeFormat","diffFormat","rangeFormat","getHighAndSelfDiffFormat","_rangeFormat","getHighDiffFormat","formatDateRange","processDateInterval","formatOptions","smartFormatter","Sr","valueKey","bBox1","bBox2","width1","width2","mathAbs","mathFloor","mathPow","NUMBER_MULTIPLIERS","LOGARITHMIC_MULTIPLIERS","DATETIME_MULTIPLIERS","DATETIME_MULTIPLIERS_WITH_BIG_WEEKEND","DATETIME_MINOR_MULTIPLIERS","MINOR_DELIMITERS","getLogValue","correctValueByInterval","post","floorFunc","ceilFunc","resolveEndOnTick","businessViewInfo","forceEndOnTick","floorTickValue","curValue","tickValue","prevTickDataDiff","intervalCount","businessDelta","businessRatio","screenDelta","potentialTickScreenDiff","delimiterFactor","screenDelimiter","isSpacedMargin","addTickCount","factorDelta","forceTickInterval","multipliers","minTickInterval","getIntervalByFactor","onlyIntegers","adjustInterval","factor","getMultiplierFactor","skipCalculationLimits","gapSize","adjustIntervalDateTime","getDataTimeMultipliers","numbersReducer","yearsReducer","calculateTickIntervalDateTime","breakSize","correctMinValue","gaps","generateExtraTick","correctTickValue","correctTickValueOnGapSize","addIntervalWithBreaks","updateTickInterval","majorTicks","maxCount","lastMajor","firstMajor","tickBalance","middleTicks","prevTick","minors","tmpTicks","getBusinessDelta","calculateTickInterval","calculateMinorTickInterval","getMajorTickIntervalByCustomTicks","getMinorTickIntervalByCustomTicks","convertTickInterval","calculateTicks","calculateMinorTicks","processScaleBreaks","limit","majors","minorTicks","correctUserTickInterval","numberMultipliers","skipTickGeneration","filterTicks","calculateMinors","minorBusinessDelta","minorScreenDelta","minorAxisDivisionFactor","breakValue","insideTick","addCorrection","breakTicks","getBaseTick","cumulativeWidth","correctValueByIntervalLog","getRound","tickGenerator","rangeIsEmpty","dummyGenerator","discreteGenerator","logBase","raise","absLog","mathLog","logAbsValue","absRaise","mathRaise","mathRaiseTo","ceilNumber","generator","getBusinessDeltaLog","getAdjustIntervalLog","getCalculateTickIntervalLog","getTickIntervalByCustomTicks","addIntervalLog","correctMinValueByEndOnTick","resolveEndOnTickLog","getScaleBreaksProcessor","logarithmicGenerator","floorNumber","divider","floorAtStartDate","setSeconds","calculateTickIntervalByCustomTicks","calculateMinorTickIntervalDateTime","addIntervalDate","resolveEndOnTickDate","dateGenerator","numericGenerator","minSelector","maxSelector","minVisibleSelector","maxVisibleSelector","axisTypeSelector","thisValue","otherValueDefined","Range","addRange","otherRange","otherCategories","compareAndReplaceByField","compareAndReplace","controlValuesByVisibleBounds","visibleValueField","checkField","baseSelector","otherLessThan","otherGreaterThan","correctValueZeroLevel","setZeroLevel","sortCategories","filteredSeriesCategories","notAFunction","directionOffset","canvasOptions","_canvasOptions","categoryIndex","_categoriesToPoints","specialValue","translateSpecialCase","startPointIndex","stickInterval","stick","_calculateProjection","getInterval","getEventScale","zoomEvent","deltaScale","_categories","endCategoryIndex","translateCategories","visibleCount","startCategoryIndex","categoriesLength","canvasLength","newVisibleCategories","newInterval","_getDiscreteInterval","startPoint","getMinScale","getScale","getCanvasVisibleArea","stickOffset","minPoint","maxPoint","getCorrectValue","_businessRange","_add","toValue","isValueProlonged","getRangeByMinZoomValue","minZoom","minVisibleIndex","maxVisibleIndex","_intervalize","bp","ratioOfCanvasRange","rangeMax","rangeMin","_parse","fromValue","co","v1","v2","_to","rMin","rangeMinVisible","rMax","rangeMaxVisible","_conversionValue","origInterval","_calculateUnProjection","convert","sJe","getMinBarSize","checkMinBarSize","stackValue","baseMethod","CANVAS_PROP","dummyTranslator","conversionValue","endPoint","validateCanvas","isStartSide","isEndSide","isInBreak","isBetweenBreaks","prevBreak","getLength","lastBreak","getBreaksSize","_Translator2d","tickOptions","gridOptions","skippedCategory","skipLabels","tickOffset","_tickOffset","lineGroup","_axisLineGroup","_axisElementsGroup","tickStyle","getPathStyle","gridStyle","emptyStrRegExp","labelStyle","_textOptions","customizeColor","labelHint","formatHint","getContentContainer","initCoords","_getTranslatedValue","labelCoords","saveCoords","_lastStoredCoordinates","_storedCoords","_storedLabelsCoords","templateContainer","_getTemplateCoords","resetCoordinates","drawMark","areCoordsOutsideAxis","getSharpDirectionByCoords","updateTickPosition","_createPathElement","setSkippedCategory","_updateLine","storedSettings","isGridLine","_rotateTick","_getTickMarkPoints","isRendered","updateLabelPosition","removeLabel","formatLabel","createLabelHint","_templateDef","labelFontStyle","getLabelFontStyle","containerForData","getTemplateDeferred","fadeOutElements","startSettings","endSettings","_fadeOutLabel","_axisGridGroup","_fadeInLabel","_getLabelAdjustedCoord","_constantLabelOffset","lCoords","_lCoords","updateMultilineTextAlignment","textsAlignment","labelAlignment","drawGrid","drawLine","updateGridPosition","_getGridPoints","contentContainer","reinit","_prepareCanvasOptions","logarithmicTranslator","intervalTranslator","categoryTranslator","addSpiderCategory","categoriesToPoints","makeCategoriesToPoints","datetimeTranslator","_oldMethods","skipRound","_checkingMethodsAboutBreaks","getCheckingMethodsAboutBreaks","_translateBreaks","_calculateSpecialValues","_breaks","breaksSize","_checkValueAboutBreaks","inBreak","break","correctedCategoriesCount","getCanvasBounds","startPadding","endPadding","rangeDoubleError","updateCanvas","updateBusinessRange","_userBreaks","userBreaks","baseValueSelector","validateBusinessRange","transformFrom","transformTo","trFrom","trTo","prepareBreaks","canvas_position_default","canvas_position_center_middle","canvas_position_left","canvas_position_top","canvas_position_center","canvas_position_middle","canvas_position_right","canvas_position_bottom","canvas_position_start","canvas_position_end","_interval","zoomZeroLengthRange","newStart","newEnd","_correctValueAboutBreaks","isDateTime","newMin","newMax","getDateTimeMinScale","shiftZeroValue","commonBreakSize","getRange","getScreenRange","coeff","weekend","getNextDayIndex","weekendDayIndices","workDays","workdays","workDay","getWeekendDays","getWeekEndDayIndices","weekends","currentWeekEnd","dayBetweenWeekend","getDaysDistance","generateDateBreaksForWeekend","dayInWeekend","adjustedMin","adjustedMax","holiday","holidayStart","holidayEnd","generateBreaksForHolidays","calculateGaps","exactWorkDays","processWorkDay","workday","separatedBreak","scaleBreak","dayEnd","separateBreak","excludeWorkDaysFromWeekEndBreaks","TICKS_CORRECTIONS","markerInterval","prepareDatesDifferences","boxes","labelHeight","_getStep","minSpacing","maxLabelLength","getMaxSide","_isHorizontal","atan","getDistanceByAngle","_getMaxLabelHeight","constants","_majorTicks","_validateOverlappingMode","_validateDisplayMode","getMarkerTrackers","_markerTrackers","_getSharpParam","opposite","_createAxisElement","_updateAxisElementPosition","axisCoord","_axisPosition","_getCanvasStartEnd","_axisElement","_getTranslatedCoord","_initAxisPositions","customPositionIsAvailable","_customBoundaryPosition","getCustomBoundaryPosition","customPositionIsBoundary","getPredefinedPosition","getResolvedBoundaryPosition","getCustomPosition","tickStartCoord","tickOrientation","labelPosition","getTickStartPositionShift","hasNonBoundaryPosition","_getTitleCoords","fromStartToEnd","_drawTitleText","_checkTitleOverflow","_updateTitleCoords","_drawTitle","_axisTitleGroup","_measureTitle","originalSize","_drawDateMarker","pathElement","markerOptions","textIndent","withoutStick","cropped","getEnd","hideLabel","_drawDateMarkers","dateMarker","_getViewportRange","dateMarkers","markerDate","markersAreaTop","_getLabelFormatOptions","_tickInterval","getMarkerInterval","markerDates","dates","origMin","getMarkerDates","getMarkerFormat","_adjustDateMarkers","prevDateMarker","_dateMarkers","_checkMarkersPosition","_initializeMarkersTrackers","nextMarker","markerTracker","markerLabelOptions","_markerLabelOptions","_adjustConstantLineLabels","axisPosition","canvasLeft","canvasRight","canvasTop","canvasBottom","maxLabel","linesOptions","labelVerticalAlignment","labelHorizontalAlignment","labelIsInside","_drawConstantLinesForEstimating","_drawConstantLineLabelText","_estimateLabelHeight","drawingType","sinCos","estimateMargins","ticksData","_createTicksAndLabelFormat","constantLineOptions","_outsideConstantLines","rootElement","labelIsVisible","labelValue","labelElement","constantLinesLabelsElement","constantLinesBox","titleHeight","constantLinesHeight","getMaxConstantLinePadding","getLeftMargin","getRightMargin","getConstantLineLabelMarginForVerticalAlignment","_checkAlignmentConstantLineLabels","_getConstantLineLabelsCoords","lineLabelOptions","_orthogonalPositions","_getAdjustedStripLabelCoords","strip","stripOptions","_adjustTitle","boxTitle","loCoord","hiCoord","_getScreenDelta","_wrapped","_boundaryTicksVisibility","seriesData","_seriesData","seriesRange","_getScaleBreaks","hasWrap","_getStick","_getStripLabelCoords","stripLabelOptions","orthogonalPositions","getStripVerticalAlignmentPosition","getStripHorizontalAlignmentPosition","pos1","pos2","_getSkippedCategory","_filterBreaks","currentBreak","newBreak","lastResult","_lastResult$cumulativ","_lastResult$cumulativ2","generateDateBreaks","visibleRange","edgePoints","curRange","generateRangesOnPoints","epsilon","_maxAutoBreakCount","sortingBreaks","generateAutoBreaks","_drawBreak","translatedEnd","positionFrom","positionTo","breakStart","isWaved","spaceAttr","drawer","rotatePoints","topPoint","bottomPoint","getLineDrawer","rotateLine","_createBreakClipRect","clipWidth","_breaksElements","_createBreaksGroup","clipFrom","clipTo","_axisCssPrefix","_disposeBreaksGroup","drawScaleBreaks","customCanvas","additionGroup","additionBreakFrom","additionBreakTo","breakOptions","_axisShift","mainGroup","breakCoord","_getSpiderCategoryOption","axesSpacing","getMultipleAxesSpacing","constantLinesGroups","_axisConstantLineGroups","shiftGroup","_axisGroup","orthogonalAxis","getOrthogonalAxis","resolvedPosition","getResolvedPositionOption","orthogonalTranslator","orthogonalAxisType","validPosition","positionIsBoundary","_options$customPositi","customPositionEqualsToPredefined","_this$_orthogonalPosi","resolveOverlappingForCustomPositioning","oppositeAxes","overlappingObj","_detectElementsOverlapping","_shiftThroughOrthogonalAxisOverlappedTick","oppositeLabel","_shiftThroughAxisOverlappedTick","orthogonalAxisPosition","orthogonalAxisLabelOptions","orthogonalAxisLabelPosition","orthogonalAxisLabelIndent","translateCoordName","defaultOrthogonalAxisLabelPosition","labelCoord","outsidePart","insidePart","_tick$mark","tickMarkBBox","labelIndent","defaultLabelPosition","element1","element2","lineCoords","calculateCanvasMargins","cLeft","cTop","cRight","cBottom","measureLabels","xyAxesLinear","xyAxes","circularAxes","_calculateValueMargins","applyMargins","_calculateRangeInterval","_getTranslatorOptions","_center","_radius","_updateRadius","_updateCenter","_processCanvas","_validateOptions","_viewport","getVizRangeObject","getMargins","tickOuterLength","labelBoxes","_updateLabelsPosition","_adjustLabelsCoord","_checkBoundedLabelsOverlapping","_setVisualRange","applyVisualRangeSetter","_getStripGraphicAttributes","_createStrip","halfRad","_getConstantLineGraphicAttributes","_createConstantLine","_rotateConstantLine","_adjustDivisionFactor","angles","radiusWithTicks","inside","outside","_offset","_maxWidth","checkCanvas","labelY","labelAngle","getPolarQuarter","boxShiftX","boxShiftY","_getGridLineDrawer","maxLabelBox","angle1","angle2","labelOpt","lastVisibleLabelIndex","circular","circularSpider","getSpiderTicks","getFullTicks","_spiderTicks","firstTick","lastTick","spiderTicks","_setTickOffset","_resetMargins","_reinitTranslator","xy","fromPoint","toPoint","labelPos","linearSpider","setSpiderTicks","_getGridPointsByRadius","innerPoints","convertTicksToValues","KEEP","SHIFT","RESET","ROTATE","adjustDivisionFactor","_options$workWeek","isFirst","actionArgument1","actionArgument2","callAction","removeInvalidTick","dataValue","Axis","stripsGroup","stripLabelAxesGroup","labelsAxesGroup","constantLinesGroup","scaleBreaksGroup","_axesContainerGroup","axesContainerGroup","_gridContainerGroup","gridGroup","widgetClass","axisClass","_createAxisGroups","_createTranslator","_prevDataInfo","_initRange","_drawAxis","getAxisSharpDirection","svgElement","customPositionIsBoundaryOrthogonalAxis","maxCoord","tickPositionField","canvasStart","canvasEnd","axisCanvas","minDelta","maxDelta","_getConstantLinePos","getConstantLineSharpDirection","_drawConstantLineLabels","_getStripPos","swap","isContinuous","_parsedStartValue$val","_parsedEndValue$value","parsedStartValue","parsedEndValue","outOfCanvas","stripPosition","_adjustStripLabels","_strips","getContainerAttrs","_adjustLabels","positionsAreConsistent","labelRotationAngle","isFlatLabel","_createAxisConstantLineGroups","constantLinesClass","insideGroup","outsideGroup1","outsideGroup2","outside1","outside2","classSelector","_axisStripGroup","_axisStripLabelGroup","_clearAxisGroups","crosshairMargin","isDefinedCustomPositionOption","edgeMarginCorrection","constantLineAboveSeries","constantLineUnderSeries","moveByOffset","idError","axisTypeMethods","xyMethods","polarMethods","_axisBreaksGroup","_minorTicks","_templatesRendered","setPane","typeSelector","_updateTranslator","_initTypes","_labelOptions$minSpac","defaultPosition","secondaryPosition","validateAxisOptions","isValueAxis","checkDeprecatedOptions","_hasLabelFormat","_createConstantLines","storedCoord","lastStoredCoordinates","_getCoord","stripPos","createStrip","getCanvasRange","canvasRedesign","hideTitle","getTitle","hideOuterElements","_resolveLogarithmicOptionsForRange","adjustViewport","adjustRange","_addConstantLinesToRange","categoriesInfo","_wholeRange$startValu","_wholeRange$endValue","adjustedVisualRange","adjustVisualRange","disabledNegatives","_getVisualRangeUpdateMode","newRange","oppositeValue","prevDataInfo","containsConstantLine","newCategories","minVisiblePoint","maxVisiblePoint","_handleBusinessRangeChanged","oppositeVisualRangeUpdateMode","axisReinitialized","_lastVisualRangeUpdateMode","getVisualRangeLength","currentBusinessRange","useMerge","setBusinessRange","argCategories","_that$_seriesData$min","_that$_seriesData$max","dataIsEmpty","rangeWithConstantLines","getCategoriesSorter","_insideConstantLines","cl","getParsedValue","setGroupSeries","getLabelsPosition","labelShift","getFormattedValue","_getBoundaryTicks","customBounds","customBoundTicks","addMinMax","boundaryTicks","setPercentLabelFormat","resetAutoLabelFormat","getTicksValues","majorTicksValues","minorTicksValues","estimateTickInterval","_getTicks","setTicks","createMajorTick","createMinorTick","_isSynchronized","getTickGenerator","_initialBreaks","_visualRange$startVal","_visualRange$endValue","_that$_seriesData","marginOptions","_marginOptions","generateTicks","tickGeneratorOptions","configureGenerator","maxMinDistance","_aggregationInterval","getTickInterval","getAggregationInterval","createTicks","_estimatedTickInterval","_boundaryTicks","createBoundaryTick","_minorTickInterval","oldMajorTicks","majorTicksByValues","sameType","oldMinorTicks","_ticksToRemove","_t$label","setMarginOptions","_this$_marginOptions","addToArgs","_calculateWorkWeekInterval","businessInterval","_getConvertIntervalCoefficient","intervalInPx","rangeInterval","marginSize","minPadding","maxPadding","stubData","pxInterval","minPercentPadding","maxPercentPadding","maxPaddingValue","canvasStartEnd","screenDeltaWithMargins","skipViewportExtending","firstTickPosition","lastTickPosition","invertMultiplier","minTickPadding","maxTickPadding","_minValue","_maxValue","_minValue2","_maxValue2","correctedMin","correctedMax","getCorrectedValuesToZero","minExpectedPadding","maxExpectedPadding","valueIsParsed","rootGroup","createConstantLine","initTickCoords","drawTickMarks","drawGridLine","drawGrids","_applyWordWrap","_setLabelsPlacement","setRenderedState","convertedTickInterval","overlappingMode","usefulSpace","correctByWidth","correctByHeight","updateSize","updateTitle","_resetStartCoordinates","cleanUpInvalidTicks","updateTicksPosition","updateGridsPosition","prepareAnimation","applyClipRects","elementsClipID","canvasClipID","_validateVisualRange","convertVisualRangeObject","_customVisualRange","resetVisualRange","isSilent","handleZooming","allowPartialUpdate","_applyZooming","_resetVisualRangeOption","getZoomStartEventArg","actionType","_getZoomEndEventArg","previousRange","zoomFactor","rangeStart","rangeEnd","getZoomBounds","secondPriorityRange","getZoomBoundValue","setInitRange","setCustomVisualRange","_startValue","_endValue","adjustedRange","_getAdjustedBusinessRange","zoomResults","isPrevented","_visualRange","preventEvents","domEvent","zoomStartEvent","skipEventRising","_storedZoomEndParams","startRange","prevent","handleZoomEnd","previousBusinessRange","typeIsNotChanged","zoomEndEvent","checkZoomingLowerLimitOvercome","stopInteraction","_restorePreviousVisualRange","correctedRange","isOvercoming","beforeVisualRangeLength","afterVisualRangeLength","isExtremePosition","isMax","extremeDataValue","extremePoint","visualRangePoint","withIndents","widthAxis","viewportRange","maxText","prevLabel","notRecastStep","ignoreOverlapping","_applyLabelMode","_applyLabelOverlapping","_checkShiftedLabels","updateLabels","getOptimalAngle","Translator2D","_options$workWeek2","_options$breakStyle$w","_options$breakStyle","semiDiscreteInterval","breaksLength","visualRangeSetter","categoriesSortingMethod","OPTION_VALUE","OPTION_SUBVALUES","DEFAULT_NUMBER_MULTIPLIERS","fallbackValue","dxGauge","_setupValue","__subvalues","parseArrayOfNumbers","_setupSubvalues","selectMode","_rangeContainer","RangeContainer","_initScale","_subvalueIndicatorContainer","_scaleGroup","_scale","_scaleTypes","_disposeValueIndicators","_valueIndicator","_subvalueIndicatorsSet","scaleOption","_baseValue","_cleanValueIndicators","_measureScale","scaleOptions","majorTick","majorTickEnabled","minorTickEnabled","textParams","layoutValue","_getScaleLayoutValue","coefs","_getTicksCoefficients","innerCoef","inner","outerCoef","_correctScaleIndents","_prepareScaleSettings","_area","_renderScale","_prepareValueIndicators","_applyMainLayout","_getElementLayout","_shiftScale","_updateActiveElements","_gridSpacingFactor","minorScaleDivisionFactor","_getTicksOrientation","getColorForValue","_updateScaleTickIndent","_updateIndicatorSettings","baseValue","_prepareIndicatorSettings","defaultTypeField","_prepareValueIndicator","_prepareSubvalueIndicators","_updateValueIndicator","_updateSubvalueIndicators","_createIndicator","_createSubvalueIndicatorsSet","ValueIndicatorsSet","createIndicator","isRecreate","dummy","__value","processValue","subvalues","vals","_changeValue","_changeSubvalues","_compareArrays","valueIndicator","subvalueIndicator","_change_VALUE","_change_SUBVALUES","trackerType","trackerIndex","_strict","_trackerInfo","optionItems","currentValues","newValues","disableDefaultMode","_indicatorValues","setupValues","_valueIndicators","updateActiveElements_hardMode","prepareValueIndicators_hardMode","disposeValueIndicators_hardMode","cleanValueIndicators_hardMode","indicatorValue","indicatorValue_hardMode","selectHardMode","optionList","newValueIndicators","userSettings","accessPointerValue","_parameters","_indicators","indicators","indicatorType","_colorPalette","_palette","_sample","_generatePalette","_getIndicatorOptions","_adjustIndicatorsCount","indicatorsLen","pieChartPlugin","_centerTemplateGroup","patchedFontOptions","_renderCenterTemplate","centerTemplateGroup","_getCenter","gaugePlugin","_createCenterTemplateGroup","pieChart","_formatValue","_getSampleText","BaseElement","BaseIndicator","_rootElement","_createRoot","_owner","_trackerElement","_setupAnimation","_actualValue","_actualPosition","_runAnimation","_className","_currentValue","_isEnabled","COEFFICIENTS_MAP","rb","bl","tl","rt","BaseTextCloudMarker","textCloudOptions","_getTextCloudOptions","cloudWidth","_textUnitWidth","cloudHeight","_textHeight","tailWidth","tailHeight","tailLength","getTextCloudInfo","_correctCloudType","_textVerticalOffset","_measureText","sampleText","_textWidth","_textFullWidth","_textFullHeight","BaseRangeBar","_isTextVisible","_updateBarItemsPositions","_updateTextPosition","_updateLinePosition","_updateBarItems","spaceColor","_setBarSides","_startPosition","_endPosition","_basePosition","_space","_getSpace","_backItem1","_backItem2","_spaceItem1","_spaceItem2","_updateTextItems","_line","_getTextAlign","_getFontOptions","_setTextItemsSides","_getPositions","_buildItemSettings","back1","back2","main1","main2","_mainItem","_createBarItem","_getTooltipPosition","_convertAngleToRendererSpace","SimpleIndicator","_getRadius","_getIndentFromCenter","_renderPointer","_clearPointer","inverseHorizontalOffset","inverseVerticalOffset","NeedleIndicator","_adjustOffset","_renderSpindle","_spindleOuter","_spindleInner","rectangleNeedle","triangleNeedle","twoColorNeedle","y3","y4","fraction","_firstElement","_spaceElement","_secondElement","triangleMarker","textCloud","nAngle","rangeBar","_maxSide","_minSide","_lineFrom","_lineTo","_textRadius","mainPosition1","mainPosition2","basePosition","actualPosition","BaseRangeContainer","_getRanges","totalStart","totalEnd","totalDelta","isValidSegment","isValidSegmentAsc","isValidSegmentDesc","subtractSegment","subtractSegmentAsc","subtractSegmentDesc","backgroundRanges","startWidth","endWidth","deltaWidth","rangeOptions","classIndex","paletteColor","sub","newRanges","newBackgroundRanges","_processOptions","_ranges","_createRange","segmentStart","segmentEnd","otherStart","otherEnd","areEqualValues","CircularRangeContainer","_inner","_outer","dxCircularGauge","_factoryMethods","scaleOrientation","tickCorrection","IYe","startCosSin","endCosSin","startCos","startSin","endCos","endSin","getSides","startCoord","endCoord","_measureMainElements","scaleMeasurement","minRadius","maxHorizontalOffset","maxVerticalOffset","maxInverseHorizontalOffset","maxInverseVerticalOffset","horizontalMargin","verticalMargin","inverseHorizontalMargin","inverseVerticalMargin","measurements","srcRect","aspectRatio","selfAspectRatio","Xx","selectRectByAspectRatio","totalRadius","createIndicatorCreator","circularIndicators","rectangleneedle","centerTemplatePlugins","BarWrapper","compareArrays","OPTION_VALUES","dxBarGauge","_barsGroup","_values","bars","_bars","_checkOverlap","textEnabled","textOptions","fontStyles","_textIndent","textY","_renderBars","_outerRadius","_innerRadius","_barSpacing","baseAngle","_arrangeBars","barSize","_count","_setBarsCount","textRadius","unitOffset","arrange","_animateBars","_updateBars","_dummyBackground","overlapStrategy","newBars","_dividePoints","_clearLabelsCrossTitle","_drawConnector","_clearOverlappingLabels","_isLabelShifted","_bar","coordStart","getStartCoordsArc","xStart","yStart","lastCoords","_lastCoords","indentFromLabel","xDeviation","yDeviation","coordinate","roundFloatPart","stackBars","isRightSide","barToExtend","sortedBars","checkIntersect","titleCoords","beginAnimation","barValues","_i2","_updateValues","_change_VALUES","_change_NODES","setAngle","setAngles","AG","anotherBar","calculateLabelCoords","anotherCoords","bottomRight","topLeft","_processValue","compareFloats","_delta","pluginLegend","DxBarGaugeComponent","centerTemplate","DxBarGauge","animationChange","backgroundColorChange","barSpacingChange","baseValueChange","centerTemplateChange","endValueChange","exportChange","geometryChange","legendChange","loadingIndicatorChange","marginChange","paletteChange","paletteExtensionModeChange","pathModifiedChange","redrawOnResizeChange","relativeInnerRadiusChange","resolveLabelOverlappingChange","sizeChange","startValueChange","themeChange","titleChange","tooltipChange","valuesChange","DxBarGaugeModule","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","dasherize","fireItemStateChangedAction","oldState","_option","renderBox","stylePropPrefix","renderAlign","justifyContent","_normalizedAlign","renderCrossAlign","alignItems","_normalizedCrossAlign","crossAlign","renderItems","flexPropPrefix","flexBasis","flexDirection","Box","onItemStateChanged","_queue","_initLayout","_initBoxQueue","LayoutStrategy","_queueIsNotEmpty","_pushItemToQueue","_shiftItemFromQueue","_renderAlign","_onItemStateChanged","$itemNode","boxConfig","BoxItem","DxBoxModule","BaseSparkline","_tooltipTracker","_createHtmlElements","_initTooltipEvents","createAxis","_defaultSize","_disposeWidgetElements","_disposeTooltipEvents","_change_OPTIONS","_prepareOptions","_change_UPDATE","_tooltipShown","_cleanWidgetElements","_updateWidgetElements","_drawWidgetElements","_getCorrectCanvas","_updateRange","_allOptions","_getTooltipCoords","pointerHandler","_getTooltip","_getTooltipData","pointInCanvas","_tooltipRendererOptions","defaultContentTemplate","_getDefaultTooltipTemplate","optionsToUpdate","_isTooltipEnabled","defaultTemplateNeeded","_options$customizeToo","customizeResult","lineSpacing","table","borderSpacing","getDefaultTemplate","dxBullet","_zeroLevelPath","_targetPath","_barValuePath","_drawBullet","startScaleValue","endScaleValue","isValueUndefined","isTargetUndefined","_tooltipEnabled","isValidBounds","isValidMin","isValidMax","isValidValue","isValidTarget","_drawBarValue","_drawTarget","_drawZeroLevel","_getTargetParams","translatorY","_getBarValueParams","translatorX","startLevel","endLevel","_getZeroLevelParams","targetText","originalTarget","componentRegistrator","DxBulletModule","DxButtonComponent","DxButton","iconChange","templateChange","typeChange","useSubmitBehaviorChange","validationGroupChange","DxButtonModule","BUTTON_GROUP_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","BUTTON_GROUP_STYLING_MODE_CLASS","contained","outlined","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_hasCustomTemplate","ButtonGroup","buttonTemplate","_createItemClickAction","_BUTTON_GROUP_STYLING","$buttons","_buttonsCollection","DxButtonGroupModule","DX_SWIPEABLE","ACTION_TO_EVENT_MAP","swipeEventStart","swipeEventSwipe","onCancel","Swipeable","_createEventData","IQe","onCaptionClick","_captionClickAction","_renderCaption","_prevButton","$prevButton","_nextButton","_caption","captionText","$caption","toggleButton","buttonPrefix","CALENDAR_CELL_CLASS","CALENDAR_WEEK_NUMBER_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CELL_IN_RANGE_CLASS","CALENDAR_CELL_RANGE_HOVER_CLASS","CALENDAR_CELL_RANGE_HOVER_START_CLASS","CALENDAR_CELL_RANGE_HOVER_END_CLASS","CALENDAR_RANGE_START_DATE_CLASS","CALENDAR_RANGE_END_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","NOT_WEEK_CELL_SELECTOR","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DXHOVERSTART_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","onCellClick","onCellHover","onWeekNumberClick","allowValueSelection","_todayDate","_renderImpl","_createTable","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderRange","_$table","localizedWidgetName","rowData","cellDate","_getFirstCellData","prevCellDate","rowIndex","_createRow","colIndex","_renderCell","_renderWeekNumberCell","_createCell","cellIndex","$cell","_getClassNameByDate","coreDateUtils","getCellAriaLabel","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_isStartDayOfMonth","_isEndDayOfMonth","isDateCell","_createCellClickAction","_cellClickAction","_createCellHoverAction","_cellHoverAction","_createWeekNumberCellClickAction","$row","firstDateInRow","lastDateInRow","rowDates","_weekNumberCellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_updateSelectedClass","_this$_$selectedCells","_isRangeMode","_isMonthView","_$selectedCells","_this$_$rangeCells","_this$_$hoveredRangeC","_this$_$rangeStartHov","_this$_$rangeEndHover","_this$_$rangeStartDat","_this$_$rangeEndDateC","_this$_$rangeStartDat2","_this$_$rangeEndDateC2","_$rangeCells","_$hoveredRangeCells","_$rangeStartHoverCell","_$rangeEndHoverCell","_$rangeStartDateCell","_$rangeEndDateCell","_renderHoveredRange","_this$_$hoveredRangeC2","_this$_$rangeStartHov2","_this$_$rangeEndHover2","_this$_$rangeStartHov3","_this$_$rangeEndHover3","hoveredRange","_getFirstAvailableDate","isBoundary","Views","_renderHeader","$headerRow","$header","_renderHeaderCell","_renderWeekHeaderCell","fullCaption","abbrCaption","_getDayCaption","scope","abbr","$weekNumberHeaderCell","showWeekNumbers","selectWeekOnClick","_getWeekNumber","weekNumberRule","getNavigatorCaption","today","firstDay","firstMonthDayOffset","daysInWeek","foundDate","decade","firstYearInDecade","_isValueOnCurrentView","century","minDecade","maxDecade","firstDecadeInCentury","$G","calendar","dateOption","_dateOption","dateValue","_dateValue","skipNavigate","_skipNavigate","updateAriaSelected","_updateAriaSelected","_updateAriaId","processValueChanged","_previousValue","_convertToDate","_updateViewsValue","_currentDateChanged","_initCurrentDate","_isDateDisabled","isLessThanMin","isBiggerThanMax","_view","_getLowestDateInArray","_isMaxZoomLevel","_updateViewsOption","_updateCurrentDate","_shouldHandleWeekNumberClick","CALENDAR_CLASS","CALENDAR_VIEW_CLASS","CALENDAR_DXHOVEREND_EVENT_NAME","hoverEndEventName","LEVEL_COMPARE_MAP","SELECTION_STRATEGIES","SingleSelection","CalendarSelectionStrategy","getViewOptions","selectValue","selectedValue","getDefaultCurrentDate","restoreValue","MultipleSelection","_weekNumberClickHandler","alreadySelectedIndex","findIndex","toDateString","selectedDates","RangeSelection","_getValue","_getDaysInRange","_cellHoverHandler","_valueSelected","_getRange","_allowChangeSelectionOrder","_currentSelection","viewsCount","isAdditionalViewDate","_isAdditionalViewDate","firstDateInViews","lastDateInViews","rangeStartDate","rangeEndDate","isMaxZoomLevel","Calendar","dateSerializationFormat","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","_navigateDown","_moveToClosestAvailableDate","_updateTimeComponent","_getSerializationFormat","cellElement","_isSingleMode","serializedValue","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","_isNextViewDisabled","_isPrevViewDisabled","_navigator","_areDatesInSameView","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_initSelectionStrategy","_correctZoomLevel","_getSelectionStrategyName","_refreshSelectionStrategy","_this$_getNormalizedD","_getNormalizedDate","_getDate","_onContouredChanged","_$viewsWrapper","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_additionalView","_refreshViews","_setViewContoured","_renderNavigator","_navigate","_getActiveView","_this$_additionalView","zoomCorrection","_getMonthsOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","lastDay","_renderViews","_renderSwipeable","_renderFooter","_updateNavigatorLabels","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","_cellClickHandler","_moveViewElement","coefficient","_getViewPosition","nextView","setMilliseconds","newCurrentDate","_animateShowView","Navigator","_navigatorConfig","_getViewsCaption","_updateButtonsVisibility","_navigatorClickHandler","additionalViewActive","_isMinZoomLevel","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","_toggleGestureCoverCursor","_getRequiredView","isRtl","_updateNavigatorCaption","moveOffset","shouldDoubleOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","additionalView","isMultiView","additionalViewCaption","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","endPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","_this$viewToRemoveKey","viewOffset","viewToCreateKey","viewToRemoveKey","viewBeforeCreateKey","viewAfterRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_shouldSkipFocusEvent","_this$_additionalView2","_this$_additionalView3","_this$_beforeView","_this$_afterView","_setViewsMinOption","_restoreViewsMinMaxOptions","_setViewsMaxOption","_rangeMin","_rangeMax","captionButtonText","localizedPrevButtonLabel","localizedCaptionLabel","localizedNextButtonLabel","ariaId","$newCell","_suppressingNavigation","getContouredDate","DxCalendarComponent","DxCalendar","cellTemplateChange","dateSerializationFormatChange","disabledDatesChange","firstDayOfWeekChange","maxChange","maxZoomLevelChange","minChange","minZoomLevelChange","selectionModeChange","selectWeekOnClickChange","showTodayButtonChange","showWeekNumbersChange","weekNumberRuleChange","zoomLevelChange","DxCalendarModule","rectangleBBox","getRectangleBBox","_crosshairGroup","Crosshair","_axes","_panes","_horizontalGroup","_verticalGroup","_horizontal","_vertical","_circle","lineOptions","sharpParam","verticalOptions","horizontalOptions","circleOptions","_createLabels","currentLabelPos","startXY","axisName","textElement","backgroundElement","_updateLinesCanvas","_linesCanvas","_updateLines","_resetLinesCanvas","_getClipRectForPane","getLabelCheckerPosition","linearConverter","getTicks","tickValues","logConverter","axisInfo","converter","logarithmicBase","oldMinValue","oldMaxValue","axesInfo","multiAxesSynchronizer","synchronize","valueAxes","getValueAxesPerPanes","paddings","ticksValues","convertAxisInfo","minorValues","populateAxesInfo","getMainAxisInfo","maxTicksCount","ticksMultiplier","ticksCount","additionalStartTicksCount","baseTickValue","invertedBaseTickValue","updateTickValues","mainAxisInfo","mainAxisInfoTickInterval","mainAxisBaseValueOffset","valueFromAxisInfo","getAxisRange","correctMinMaxValues","calculatePaddings","allPositive","allNegative","allAxesValuesOnSameSideFromZero","correctPaddings","correctMinMaxValuesByPaddings","invalidAxisInfo","correctedTick","correctAfterSynchronize","hasSynchronizedValue","updateTickValuesIfSynchronizedValueUsed","tickCount","updateMinorTicks","applyMinMaxValues","ScrollBar","_addEvents","scrollElement","dX","dY","_layoutOptions","_applyPosition","_translateWithOffset","_getXCoord","_getYCoord","_that$_scroll$attr","_that$_scroll$attr2","SHUTTER_EVENTS_NS","DRAG_START_EVENT_NAME","DRAG_UPDATE_EVENT_NAME","DRAG_END_EVENT_NAME","_shutterZoom","shutterOptions","triggerStart","triggerEnd","curCoord","firstPane","lastPane","checkCoords","getPointerCoord","dragStartHandler","dragHandler","dragEndHandler","shutterZoom","START_POSTFIX","UPDATE_POSTFIX","END_POSTFIX","eventAliases","addAlias","rotation","deltaRotation","translation","deltaTranslation","getEventVector","getVector","vector","firstVector","secondVector","getRotation","scalarProduct","distanceProduct","mathSign","TransformEmitter","startVector","_startVector","_prevVector","_fireEventAliases","currentVector","_getEventArgs","eventPostfix","eventAlias","exportNames","pinchstart","pinch","pinchend","EVENTS_NS","DRAG_EVENT_NAME","PINCH_START_EVENT_NAME","transformEvents","PINCH_EVENT_NAME","PINCH_END_EVENT_NAME","SCROLL_BAR_START_EVENT_NAME","onlyAxisToNotify","getParameters","actionField","sortAxes","zoomStarted","getFilteredAxes","axisZoom","cancelEvent","actionData","getAxesCopy","offsetCalc","centerCalc","criteria","coordField","zoomed","isMinPosition","isMaxPosition","deltaTranslate","argZoom","valZoom","fallback","zoomAxes","storeOffset","storeCenter","canvasToRect","curAxisRect","_valueAxes","startCenter","isTouch","wantPan","wantZoom","panKeyPressed","panningVisualRangeEnabled","skipEvent","prepareActionData","calcCenterForDrag","Ae","startCoords","startAxesViewportChanging","preventDefaults","curCanvas","curCoords","zoomArg","zoomVal","axesViewportChanging","calcOffsetForDrag","deltaOffsetY","deltaOffsetX","needToZoom","axisOption","panIsEmpty","argumentCoords","valueCoords","argumentAxesZoomed","finishAxesViewportChanging","pinchStartHandler","calcCenterForPinch","pinchHandler","pinchEndHandler","mouseWheelHandler","targetAxes","axesZoomed","targetCanvas","isAxisAvailablePanning","wheelEvent","passive","_zoomAndPan","_setupZoomAndPan","getDocument","POINTER_UP_EVENT_NAME","annotationGroup","_isAnnotationBounded","_getAnnotationCoords","_dragOffsetX","_dragOffsetY","annotation","imageWidth","imageHeight","chartPlugin","_axis2","argCoordName","valCoordName","_axis3","_series2","_getCanvasForPane","_annotationsPointerEventHandler","_annotations","_hideToolTipForDrag","_pullOptions","_forceAnnotationRender","polarChartPlugin","pointCoords","_calcCanvas","getXYFromPolar","getActualAngle","polarOptions","vectorMapPlugin","_offTracker","_projection","toScreenPoint","vectorMapOptions","_getAnnotationStyles","_prepareExtraElements","renderElements","pieChartOptions","corePlugin","clearItems","_annotationsGroup","_buildAnnotations","customizeAnnotation","pullOptions","commonImageOptions","getImageObject","currentImageOptions","customizedItem","templateFunction","getTemplateFunction","coreAnnotation","createAnnotations","_setAnnotationTooltipOptions","tooltipOptions","polarChart","vectorMap","seriesStackIndexCallback","_series$","_series$2","commonStacks","allArguments","seriesInStacks","barGroupWidth","_series$3","isDateArgAxis","barsArea","validateBarGroupPadding","currentStacks","stacks","isStackExist","calculateParams","extraParameters","stackIndex","validateBarPadding","correctPointCoordinates","correctStackCoordinates","percentWidth","fixedBarWidth","rawWidth","stackKeepers","negative","stackCount","getVisibleSeries","adjustBarSeriesDimensionsCore","getSeriesStackIndexCallback","negativesAsZeroes","holesStack","lastSeriesInPositiveStack","lastSeriesInNegativeStack","hole","getFirstValueSign","holes","isNotBarSeries","currentStack","_skipSetLeftHole","_skipSetRightHole","_stackKeepers","getAbsStackSumByArg","getStackSumByArg","valueAxisTranslator","minShownBusinessValue","fullStacked","getValueType","stackSum","updateFullStackedSeriesValues","sizeProportion","visibleAreaX","visibleAreaY","minBubbleArea","maxBubbleArea","equalBubbleSize","minPointSize","maxPointSize","seriesItem","sizeDispersion","areaDispersion","adjustSeriesDimensions","adjustBarSeriesDimensions","updateSeriesValues","updateBarSeriesValues","adjustSeriesValues","adjustStackedSeriesValues","updateRangeSeriesValues","updateStackedSeriesValues","adjustCandlestickSeriesDimensions","adjustBubbleSeriesDimensions","SeriesFamily","COMMON_AXIS_SETTINGS","VISUAL_RANGE","isDirectOption","wrappedVisualRange","wrapVisualRange","destElem","AdvancedChart","_panesClipRects","panesClipRects","_disposeAxes","_createPanes","_cleanPanesClipRects","clipArrayName","_getElementsClipRectID","paneName","_getPaneIndex","forceUpdateCanvas","setCanvasValues","_populateAxes","_axesReinitialized","argumentAxesPopulatedOptions","paneWithNonVirtualAxis","argumentAxesOptions","prepareAxis","valueAxisOption","valueAxesOptions","valueAxesPopulatedOptions","axisNames","valueAxesCounter","crosshairMargins","_getCrosshairMargins","_populateAxesOptions","axisPanes","getNextAxisName","_redesignAxes","isArgumentAxes","axesBasis","curAxes","axisTypes","getAxisTypes","_disposeAxis","isVirtual","_createAxis","_getVisualRangeSetter","_processValueAxisFormat","paneSeries","types","families","negativesAsZeros","familyOptions","_getSeriesForPane","_appendAxesGroups","panesCount","estimateBubbleSize","argumentMarginOptions","groupSeries","seriesMarginOptions","processBubbleMargin","mergeMarginOptions","updatedAxis","keepRange","argRanges","commonArgRange","getPaneName","groupRange","commonInterval","currentInterval","_getGroupsData","_correctValueAxes","axesWithFullStackedFormat","preparedUserOptions","_prepareStripsAndConstantLines","_prepareAxisOptions","rangeDataCalculator","renderingSettings","_getAxisRenderingOptions","_applyVisualRangeByVirtualAxes","_applyCustomVisualRangeOption","_parseVisualRangeOption","_change_VISUAL_RANGE","drawAxes","checkForMoreSpaceForPanesCanvas","_setCustomVisualRange","axesName","_raiseZoomEndHandlers","_notifyVisualRange","axisPath","rangesAreEqual","skipOptionsRollBack","_getAxesForScaling","_getAxesByOptionPath","sourceAxes","setAxisVisualRangeByOption","resizePanesOnZoom","DEFAULT_PANES","gridVisibility","minorGridVisibility","gridOpt","minorGridOpt","findAxis","src1","src2","auxSpacing","pickMaxValue","getMarginsFunc","axisMargins","paneMargins","accumulate","pickMax","actionArgument3","verticalMargins","horizontalMargins","margins1","margins2","getMargin","getOriginalField","paneNames","startMargin","endMargin","oppositeMargins","getMaxMargin","initialEmptySpace","emptySpace","kI","initialOffset","paneSize","panesBorderOptions","performActionOnAxes","side1","side2","shifts","sizeShortage","getMarginFunc","getCommonSize","getAxisMargins","isOverlay","overlayPoint","pointRadius","isPointOverlapped","skipSamePointsComparing","radiusPoint","dxChart","paneAxis","_containerInitialHeight","panesNameCounter","doesPaneExist","paneList","_initCustomPositioningAxes","valueAxisName","_getAllAxes","_axesBoundaryPositioning","allAxes","boundaryStateChanged","prevBoundaryState","crosshairOptions","_getCrosshairOptions","crosshairEnabled","horizontalLabel","verticalLabel","valueAxisOptions","getFirstAxisNameForPane","axInd","findAxisOptions","needHideGrids","paneWithAxis","axesForPane","axisShown","hiddenStubAxis","minorGridOptions","changeVisibilityAxisGrids","hideGridsOnNonFirstValueAxisForPane","paneExists","compareAxes","defaultAxis","axesWithSamePath","oneSeries","_createPanesBorderOptions","commonBorderOptions","scrollBarOptions","scrollBarGroup","_createPanesBackground","_adjustViewport","isCanvasChanged","zoomChanged","_isZooming","zoomRange","viewportDistance","_zoomLength","_drawPanesBorders","_createClipRectsForPanes","_applyClipRectsForAxes","_fillPanesBackground","legendHasInsidePosition","newCanvas","paneIndex","wideClipRect","_getPaneBorderVisibility","_updatePanesCanvases","distributedSpace","paneSpace","totalCustomSpace","isRelativeHeightPane","startName","endName","calcLength","updatePanesCanvases","_normalizePanesHeight","parsedHeight","relativeHeightPanes","weightSum","weightHeightCount","emptyHeightPanes","emptyHeightCount","weightForEmpty","emptyWeightSum","normalizePanesHeight","_renderScaleBreaks","_hidePointsForSingleSeriesIfNeeded","seriesPoints","overlappedPointsCount","overlappingPoints","_applyAutoHidePointMarkers","filteredSeries","overlappedPointsCalculator","allSeries","borderCoords","markersInfo","overloadedSeries","argVisualRange","valVisualRange","tp","mp","continuousSeries","collectMarkersInfoBySeries","pointsArea","fastHidingPointMarkersByArea","sortingCallback","isContinuousSeries","nextX","nextY","updateMarkersInfo","extendedArgAxes","_isArgumentAxisBeforeScrollBar","verticalAxes","verticalElements","horizontalAxes","horizontalElements","allElements","verticalAxesFirstDrawing","panesCanvases","paneSizes","cleanPanesCanvases","needCustomAdjustAxes","drawAxesWithTicks","vAxesMargins","hAxesMargins","getHorizontalAxesMargins","shrinkCanvases","drawAxesAndSetCanvases","gt","getVerticalAxesMargins","_estimateTickIntervals","oldTitlesWidth","calculateTitlesWidth","visibleSeries","axesIsAnimated","axisAnimationEnabled","shiftAxis","argAxisRightMargin","rightPanesIndent","argAxisBottomMargin","bottomPanesIndent","realSize","customSize","containerHasStyledHeight","_forceResize","checkUsedSpace","argAxisLabelPosition","scrollBarPosition","_getPanesParameters","_getCommonCanvas","commonCanvas","defaultBackgroundColor","rects","panesBackground","bc","_calcPaneBorderCoords","segmentRectParams","segmentSequence","visiblyOpt","prevSegmentVisibility","allSegment","segmentVisibility","pathType","prepareSegmentRectPoints","_createClipRect","clipArray","needWideClipRect","chartCanvasClipRectID","elementsClipRectID","commonPaneBorderVisible","paneVisibility","shiftDirection","processor","coordPosition","_getStackPoints","zoomArgument","nonVirtualArgumentAxis","getVisibleArgumentBounds","argumentVisualRange","DxChartComponent","annotations","annotationsChildren","panesChildren","seriesChildren","valueAxisChildren","DxChart","adaptiveLayoutChange","adjustOnZoomChange","annotationsChange","argumentAxisChange","autoHidePointMarkersChange","barGroupPaddingChange","barGroupWidthChange","commonAnnotationSettingsChange","commonAxisSettingsChange","commonPaneSettingsChange","commonSeriesSettingsChange","containerBackgroundColorChange","crosshairChange","customizeAnnotationChange","customizeLabelChange","customizePointChange","dataPrepareSettingsChange","defaultPaneChange","maxBubbleSizeChange","minBubbleSizeChange","negativesAsZeroesChange","panesChange","pointSelectionModeChange","resizePanesOnZoomChange","rotatedChange","scrollBarChange","seriesChange","seriesSelectionModeChange","seriesTemplateChange","stickyHoveringChange","synchronizeMultiAxesChange","valueAxisChange","zoomAndPanChange","DxChartModule","_el$getRootNode","_el$getRootNode2","querySelectorInSameDocument","saveValueChangeEvent","innerWidgetOptions","_raiseValidation","areValuesEmpty","_this$_valueChangeAct","prevIsEditor","OldEditor","newIsEditor","defaultNotDeepCopyArrays","propsToIgnore","resultPaths","fullPropName","notDeepCopyArrays","type1","type2","getDiffItem","diffPaths","objectDiffs","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","_excluded2","DomComponentWrapperProps","DomComponentWrapper","setupWidget","updateWidget","componentProps","templateNames","componentType","properties","updatedOptions","getUpdatedOptions","prevProps","_this$config","normalizedProps","hasTemplate","getContainer","ValidationMessageProps","isReactComponentWrapper","LegacyValidationMessage","EditorProps","EditorPropsType","validationMessageGuid","isValidationMessageVisible","updateValidationMessageVisibility","shouldShowValidationMessage","_this$validationError","readonly","describedBy","allValidationErrors","validationMessageTarget","_this$rootElementRef","_window$getComputedSt","defaultIconSizes","defaultFontSizes","isMaterialTheme","isCompactTheme","isCompact","CheckBoxIconProps","isChecked","CheckBoxIcon","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newFontSize","iconSize","defaultFontSize","getThemeType","getDefaultFontSize","defaultIconSize","getDefaultIconSize","getFontSizeByIconSize","endsWith","iconComputedStyle","getElementComputedStyle","CheckBoxProps","enableThreeStateBehavior","CheckBoxPropsType","editorRef","__newValue","_newValue","CheckBox","CheckBoxComponent","twoWayProps","__processTwoWayProps","DxCheckBoxComponent","DxCheckBox","enableThreeStateBehaviorChange","iconSizeChange","DxCheckBoxModule","DxCircularGaugeModule","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","getCaretBoundaries","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","_reverseText","_getDigitPositionByIndex","digitIndex","getCaretWithOffset","boundaries","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","SpinButton","SPIN_CLASS","_spinIcon","_spinDownHandler","_spinChangeHandler","_feedBackDeferred","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_isTouchFriendly","isTouchFriendly","$spinButtons","spinUp","spinDown","FIREFOX_CONTROL_KEYS","NumberBoxBase","showSpinButtons","useLargeSpinButtons","invalidValueMessage","SpinButtons","_isSupportInputMode","inputmode","_validateValue","applyServerDecimalSeparator","_keyPressed","_spinValueChange","_forceValueRender","valuenow","valuetext","_applyDisplayValueFormatter","valuemin","valuemax","_normalizeInputValue","_correctRounding","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_applyValueBoundaries","isValueIncomplete","_isValueIncomplete","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","badInput","isValueValid","NUMBER_FORMATTER_NAMESPACE","MINUS_KEY","NumberBoxMask","useMaskBehavior","_isDeleteKey","minus","_revertSign","_removeHandler","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","realSeparatorOccurrenceIndex","clearCaretTimeout","_getInputVal","shouldHandleEvent","_focusOutOccurs","_hasValueBeenChanged","_getFormatPattern","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","getCaretInBoundaries","isCaretInBoundaries","_moveCaretToBoundary","_shouldMoveCaret","isDecimalSeparatorNext","_lastKey","_lastKeyName","_shouldHandleKey","normalizedText","_tryParse","isDeleteKey","isBackspaceKey","_isStub","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","prepareValueText","positiveFormat","getFormatByValueText","negativeFormat","getLDMLFormat","_getFormatForSign","_removeStubs","excludeComma","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","isWholeTextSelected","editedText","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","adjustPercentValue","textWithoutStubs","parsedValueSign","isCaretOnFloat","textParts","floatLength","isPrecisionInRange","endsWithZero","_setInputText","formatted","isSeparatorBasedText","isSeparatorBasedString","newPointPosition","formattedParts","digitsBefore","formattedIntPart","_trimNonNumericCharsFromEnd","digitsFromEnd","newPositionFromEnd","getCaretAfterFormat","_formattedValue","isNumberType","_isChar","isSpecialChar","isMinusKey","_renderFormatter","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","escapedDecimalSeparator","currentFormat","realSeparatorIndex","floatPart","_applyRevertedSign","preserveSelectedText","currentText","previousBoundaries","getCaretOffset","caretInBoundaries","_removeMinusFromText","textWithoutMinus","wasMinusRemoved","targetDraggable","sourceDraggable","DRAGGABLE","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","dragEventEnter","DRAGEND_LEAVE_EVENT_NAME","dragEventLeave","POINTERDOWN_EVENT_NAME","KEYDOWN_EVENT_NAME","getMousePosition","_$scrollableAtPointer","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","updateScrollable","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_scrollSpeed","isScrolling","isScrollable","distanceToBorders","sensitivity","_calculateDistanceToBorders","_calculateScrollSpeed","areaBoundingRect","maxSpeed","scrollByStep","scrollableInstance","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","isOutsideScrollable","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","Draggable","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","_getSourceDraggable","_fireRemoveEvent","onDragEnter","onDragLeave","onDragCancel","onCancelByEsc","onDrop","boundOffset","allowMoveByClick","_scrollAnimator","ScrollHelper","_initScrollTop","_initScrollLeft","_normalizeCursorOffset","_getNormalizedCursorOffset","_calculateElementOffset","elementOffset","dragElementOffset","$dragElement","dragElement","isCloned","_dragElementIsCloned","normalizedCursorOffset","currentLocate","_initialLocate","_initPosition","_startAnimator","_stopAnimator","_getItemsSelector","itemsSelector","targetGroup","sourceGroup","_getScrollable","_dragEnterHandler","_dragLeaveHandler","_keydownHandler","_$dragElement","_getDragTemplateArgs","_createDragElement","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_getDraggableElement","$sourceElement","_getSourceElement","_getAction","_isValidElement","dragInProgress","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_hasClonedDraggable","_getScrollableScrollTop","_getScrollableScrollLeft","_getDraggableElementOffset","_setGestureCoverCursor","isFixedPosition","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","startOffset_left","startOffset_top","quadToObject","initialOffsetX","initialOffsetY","_d","initScrollTop","initScrollLeft","_updateScrollable","_getTargetDraggable","allObjects","fromComponent","toComponent","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","_resetDragOptions","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","_resetTargetDraggable","_keydownEscapeHandler","dragCancelEventArgs","currentGroup","_resetSourceDraggable","gT","COLOR_VIEW_ROW_CLASS","COLOR_VIEW_PALETTE_GRADIENT_CLASS","COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS","COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS","COLOR_VIEW_HEX_LABEL_CLASS","COLOR_VIEW_COLOR_PREVIEW","COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT","COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW","BLACK_COLOR","ColorView","getHorizontalPaletteStep","_paletteWidth","updateHorizontalPaletteValue","updatePaletteValue","getVerticalPaletteStep","_paletteHeight","updateVerticalPaletteValue","_placePaletteHandle","_updateColorFromHsv","getHueScaleStep","_hueScaleWrapperHeight","_hueScaleHandleHeight","updateHueScaleValue","_placeHueScaleHandle","handleLocation","_$hueScaleHandle","_updateColorHue","getAlphaScaleStep","_alphaChannelScaleWorkWidth","updateAlphaScaleValue","_placeAlphaChannelHandle","_$alphaChannelHandle","_calculateColorTransparencyByScaleWidth","_alphaChannelHandleWidth","_isTopColorHue","Wo","_fireEnterKeyPressed","matchValue","onEnterKeyPressed","editAlphaChannel","keyStep","_initColorAndOpacity","_initEnterKeyPressedAction","_onEnterKeyPressedAction","_setCurrentColor","_makeRgba","_$currentColor","_makeTransparentBackground","_setBaseColor","_$baseColor","_renderColorPickerContainer","_renderPalette","_renderHueScale","_renderControlsContainer","_renderControls","_renderAlphaChannelElements","_$colorPickerContainer","_renderHtmlRows","updatedOption","$renderedRows","renderedRowsCount","rows","_renderHtmlCellInsideRow","$rowParent","additionalClass","$paletteCell","$paletteGradientWhite","$paletteGradientBlack","_$palette","_renderPaletteHandle","_$paletteHandle","_paletteHandleHeight","paletteHandlePosition","_updateByDrag","_calculateColorSaturation","_calculateColorValue","_paletteHandleWidth","saturation","hue","_updateColorParamsAndColorPreview","applyColor","$hueScaleCell","_$hueScaleWrapper","_$hueScale","_hueScaleHeight","_renderHueScaleHandle","hueScaleHeight","handlePosition","$controlsContainerCell","_$controlsContainer","_renderColorsPreview","_renderRgbInputs","_renderHexInput","$colorsPreviewContainer","$colorsPreviewContainerInner","_renderAlphaChannelScale","_renderAlphaChannelInput","_rgbInputsWithLabels","_renderEditorWithLabel","NumberBox","_updateColor","labelText","labelAriaText","labelClass","_rgbInputs","dxNumberBox","hexInputOptions","_hexInput","inputId","$hexInput","$alphaChannelScaleCell","$alphaChannelBorder","$alphaChannelScaleWrapper","_$alphaChannelScale","_makeCSSLinearGradient","_renderAlphaChannelHandle","colorAsRgb","startColor","finishColor","backgroundImage","$alphaChannelInputCell","_alphaChannelInput","_updateColorTransparency","transparency","alphaChannelHandlePosition","previousTransparency","colorValue","cancelColor","_refreshMarkup","isHex","rgba","_validateHex","_validateRgb","_suppressEditorsValueUpdating","COLOR_BOX_CLASS","COLOR_BOX_COLOR_IS_NOT_DEFINED","colorEditorPrototype","colorUtils","makeTransparentBackground","makeRgba","ColorBox","arrowHandler","_updateColorViewValue","_createColorView","_addPopupBottomClasses","$popupBottom","$colorView","_colorView","_colorViewConfig","_applyNewColor","_$colorResultPreview","_colorViewEnterKeyPressed","instantlyMode","_shouldSaveEmptyValue","_applyColorFromInput","colorViewValue","_resetInputValue","_renderColorPreview","COLOR_BOX_INPUT_CLASS","_$colorBoxInputContainer","DxColorBoxComponent","DxColorBox","acceptCustomValueChange","applyButtonTextChange","applyValueModeChange","cancelButtonTextChange","editAlphaChannelChange","fieldTemplateChange","keyStepChange","DxColorBoxModule","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","parentKey","_getParentId","_convertItemToNode","_checkForDuplicateId","internalFields","_itemHasChildren","_dataAccessors","getters","_dataType","_getUniqueKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","childrenKeys","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getByKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","rootValue","EXPANDED","SELECTED","uiSearchBoxMixin","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","setOption","multipleSelection","recursiveSelection","recursiveExpansion","HierarchicalDataConverter","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","toggleSelection","getFullData","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","getNodeByKey","_iterateChildren","processedKeys","nodeKey","selectedItemsCount","invisibleItemsCount","childState","_markChildren","_removeNode","_addNode","_updateFields","getSelectedNodesKeys","getExpandedNodesKeys","getNodeByItem","getNodesByItems","getRootNodes","getPublicNode","getChildrenNodes","addItem","removeItem","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","dataStructure","isAllSelected","toggleExpansion","isFiltered","_filterDataStructure","_createCriteria","lookForParents","HierarchicalCollectionWidget","selectedExpr","itemsExpr","parentIdExpr","expandedExpr","_initAccessors","_initDataAdapter","_createDataAdapterAccessors","_dataAdapter","HierarchicalDataAdapter","_getDataAdapterOptions","_getItemExtraPropNames","_addContent","_itemsGetter","_getIconContainer","_getTextContainer","_getLinkContainer","iconContainer","textContainer","linkAttributes","$imageContainer","_getAccessors","accessor","_compileAccessor","_getChildNodes","_hasChildren","setter","optionExpr","newAccessor","_addWidgetClass","_widgetClass","_disabledGetter","hit","getMenuItems","_stringifyItem","_getTemplateString","DX_MENU_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","DEFAULT_DELAY","DX_MENU_ITEM_CAPTION_URL_CLASS","MenuBase","showSubmenuMode","_isSelectionEnabled","_renderSelectedItem","_getPopoutContainer","_addContentClasses","itemText","$popOutContainer","$popOutImage","DX_MENU_ITEM_POPOUT_CLASS","_selectByItem","nodeToSelect","selectedKey","_getShowSubmenuMode","_initSelectedItems","MenuBaseEditStrategy","_addCustomCssClass","_itemWrapperSelector","_getItemElementByEventArgs","_isItemDisabled","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","_addExpandedClass","_hasSubmenu","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","_renderSeparator","_createDOMElement","$nodeElement","hasIcon","hasSubmenu","_selectedGetter","_isItemSelectable","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemClick","_updateSelectedItemOnClick","_isItemSelectAllowed","selectedItemKey","selectedNode","_toggleItemSelection","isSelectByClickEnabled","_isContainerEmpty","asyncNoop","_getElementByItem","oldSelection","MenuItem","DX_MENU_ITEM_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_SUBMENU_CLASS","DX_STATE_HOVER_CLASS","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","getShowEvent","showEventOption","getShowDelay","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","$availableItems","$hoveredItem","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_setFocusedElement","_hideSubmenuHandler","_expandSubmenuHandler","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_attachShowContextMenuEvents","_renderContextMenuOverlay","overlayOptions","_getOverlayOptions","_addPlatformDependentClass","preventShowingDefaultContextMenuAboveOverlay","_showContextMenuEventHandler","contextMenuAction","$holder","_renderSubmenuItems","submenuElement","_hideOnOutsideClickHandler","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","_hideAllShownSubmenus","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","_isIncludeOverlay","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_isSubmenuVisible","_drawSubmenu","$expandedItems","_hideSubmenuGroup","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","jQEvent","_event$originalEvent","_positionContextMenu","_setAriaAttributes","_overlayContentId","_cleanAriaAttributes","_getContextMenuPosition","isInitialPosition","positioningAction","lastPosition","wm","DxContextMenuComponent","DxContextMenu","closeOnOutsideClickChange","cssClassChange","disabledExprChange","displayExprChange","hideOnOutsideClickChange","itemsExprChange","selectByClickChange","selectedExprChange","showEventChange","showSubmenuModeChange","submenuDirectionChange","targetChange","DxContextMenuModule","FOCUS_STATE_CLASS","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","groupPanel","columnHeaders","filterRow","rowsView","filterPanel","pager","isMouseDown","isHiddenFocusing","focusedElementInfo","getActiveAccessibleElements","viewInstance","viewElement","viewSelectors","$focusViewElement","visibilityState","onDocumentVisibilityChange","viewName","executeKeyDown","getMainElement","keyDownHandler","$mainElement","isHandled","fireKeyDownEvent","saveFocusedElementInfo","selectView","processKeyDown","mouseDownHandler","focusinHandler","$targetElement","viewNames","viewItemIndex","findFocusedViewElement","registerKeyboardAction","keyboardController","getController","isKeyboardEnabled","createAction","accessibility","DBLCLICK_EVENT_NAME","NAMESPACED_CLICK_EVENT","DblClick","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","timeBetweenClicks","COLUMN_INDICATORS_CLASS","_applyColumnState","columnAlignment","_getColumnAlignment","column","isGroupPanelItem","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","_renderIndicator","showColumnLines","ignoreIndicatorAlignment","_getIndicatorContainer","_getIndicatorElements","$indicatorContainer","$indicator","_updateIndicators","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","cells","getViewElementWithClass","viewsWithBorder","borderedView","ModuleItem","_endUpdateCore","_actionConfigs","callbackNames","callbackFlags","publicMethods","optionCache","_optionCache","_silentOption","localize","optionChanged","getAction","_controllers","addWidgetPrefix","getWidgetContainerClass","elementIsInsideGrid","Controller","ViewController","getView","_views","getViews","View","_requireReady","_requireRender","_requireResize","_$parent","requireResize","requireReady","_resizeCore","_parentElement","renderCompleted","resizeCompleted","getElementHeight","marginTop","marginBottom","_getBorderedViews","columnHeadersView","filterPanelView","footerView","otherViews","shouldUpdateBorders","$oldFirst","$oldLast","$newFirst","getFirstVisibleViewElement","$newLast","getLastVisibleViewElement","updateViewsBorders","isResizing","preventScroll","moduleExtenders","extendTypes","extender","currentType","modules","registerModule","registerModulesOrder","moduleNames","modulesOrder","unregisterModule","processModules","moduleTypes","moduleItems","moduleType","moduleItem","registerPublicMethods","module1","module2","orderIndex1","orderIndex2","rootControllerTypes","rootViewTypes","moduleName","controllers","views","subclassOf","controllerTypes","getExtendedTypes","viewTypes","createModuleItems","callModuleItemsMethod","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","getGroupInterval","dateIntervals","getFilterSelector","displayField","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","getFilterExpressionForDate","dateStart","dateEnd","getFilterExpressionForNumber","defaultCalculateFilterExpression","isSearchByDisplayValue","SCROLLING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","normalizeSortingInfoUtility","isExpanded","getDisplayFormat","getSummaryText","summaryTexts","columnCaption","valueFormat","getWidgetInstance","editorData","renderNoDataText","noDataClass","noDataElement","_getNoDataText","renderLoadPanel","isLocalStore","calculateLoadPanelPosition","combineFilters","resultFilter","checkChanges","changeNames","changesWithChangeNamesCount","equalFilterParameters","filter1","filter2","proxyMethod","getFormatOptionsByColumn","getDisplayValue","rowType","displayValueMap","getGroupRowSummaryText","summaryItems","getFormatByDataType","getHeaderFilterGroupParameters","remoteGrouping","sharedFiltering","equalSortParameters","sortParameters1","sortParameters2","ignoreIsExpanded","desc","getPointsByColumns","pointCreated","startColumnIndex","cellsLength","notCreatePoint","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","isContinuation","isNewRow","getSelectionRange","setSelectionRange","selectionRange","focusAndSelectElement","isSelectTextOnEditingStart","_loadItemDeferred","getLastResizableColumnIndex","resultWidths","lastColumnIndex","hasResizableColumns","isElementInCurrentGrid","controller","isVirtualRowRendering","isVirtualMode","isAppendMode","getPixelRatio","getContentHeightLimit","mozilla","normalizeLookupDataSource","lookupDataSourceOptions","getWrappedLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","previousTake","previousSkip","hasGroupPaging","remoteOperations","hasLookupOptimization","sliceItems","lookupDataSource","__dataGridSourceFilter","normalizeGroupingLoadOptions","flatMap","logHeaderFilterDeprecatedWarningIfNeed","logWarning","specificName","logSpecificDeprecatedWarningIfNeed","SCROLL_CONTAINER_CLASS","ROW_CLASS","GROUP_ROW_CLASS","DETAIL_ROW_CLASS","CELL_HINT_VISIBLE","appendElementTemplate","getWidthStyle","setCellWidth","removeHandler","templateDeferred","normalizeWidth","viewWithColumnStateMixin","columnStateMixin","_createScrollableOptions","scrollingOptions","_updateCell","_cellPrepared","headerId","visibleWidth","rowObject","_isAltRow","isAppend","$table","_createColGroup","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isEditing","$fieldItemContent","resultOptions","eventType","getRowIndex","formItemOptions","getVisibleIndex","dblclickEvent","touchTarget","touchCurrentTarget","clearTouchTargets","rowElement","_rowPointerDown","_rowClick","_rowDblClick","subscribeToRowEvents","colgroupElement","_createCol","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templateTimeout","_templateTimeouts","isAsync","templateParameters","needWaitAsyncTemplates","_processTemplate","renderingTemplate","renderedTemplate","templateID","_templatesCache","isDisposed","columnAsync","_templateDeferreds","_getBodies","tableElement","_needWrapRow","$tableElement","rowTemplate","_wrapRowIfNeed","isRefreshing","_tableElement","$tbody","_appendRow","appendTemplate","_scrollLeft","_renderTable","changeType","_renderRows","_getRows","columnIndices","changeTypes","_renderRow","$wrappedRow","_renderCells","_addWatchMethod","_rowPrepared","_needRenderCell","oldValues","_updateCells","$rowElement","$newRowElement","$newCells","highlightChanges","cellUpdatedClass","oldAttributes","copyAttributes","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","_getCellOptions","_renderCellContent","_getCellTemplate","isAltRow","watchers","watch","updateValueFunc","updateRowFunc","keepRow","_columnOptionChanged","gridCoreUtils","setColumnWidths","getCellIndex","getTableElements","getTableElement","isFixedTableRendering","setTableElement","_afterRowPrepared","columnsChanged","_handleDataChanged","_updateScrollLeftPosition","$scrollContainer","_getContent","_removeContent","_wrapTableInScrollContainer","scrollChanged","waitAsyncTemplates","forceWaiting","waitTemplatesRecursion","_updateContent","$newTableElement","_findContentElement","_getWidths","$cellElements","cellElements","getColumnWidths","$rows","isDetailRow","isErrorRow","getVisibleColumnIndex","columnAutoWidth","$cols","colWidth","getCellElements","_getCellElementsCore","_getRowElements","_getCellElement","columnIdentifier","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","getRowElement","columnOption","getCell","cellPosition","getRowsCount","_getRowElementsCore","tBodies","setScrollerSpacing","isScrollbarVisible","CELL_CONTENT_CLASS","HEADER_ROW_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","columnHeadersModule","showColumnHeaders","cellHintEnabled","ColumnsView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","_isLegacyKeyboardNavigation","_getDefaultTemplate","needCellContent","textEmpty","_getEmptyHeaderText","leftPart","rightPart","columnChooserTitle","columnChooserView","$link","showColumnChooser","hasHiddenColumns","hasGroupedColumns","_getHeaderTemplate","_isGroupingChanged","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","_hasRowElements","getRowCount","$cellElement","groupExpanding","_isElementVisible","_alignCaptionByCenter","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","headerRow","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","isColumnOptionUsed","getColumnCount","getContextMenuItems","sortingOptions","changeSortOrder","setRowsOpacity","columnID","setColumnOpacity","gridCore","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","COLUMN_OPTION_REGEXP","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","COLUMN_INDEX_OPTIONS","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","setFilterOperationsAsDefaultValues","defaultFilterOperations","globalColumnId","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","deepExtendArraySafe","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","columnChildrenByIndex","getColumnFullPath","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","calculateColspan","getValueDataType","getSerializationFormat","updateSerializers","deserializeValue","serializeValue","customizeTextForBooleanDataType","getCustomizeTextByDataType","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","applyFieldsState","initialIndex","hasAddedBands","columnUserState","assignColumns","isSortOrderValid","updateColumnSortIndexes","resetBandColumnsCache","bandedColumns","updateColumnVisibleIndexes","resetColumnsCache","_previousColumns","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","_reinitAfterLookupChanges","updateSortOrderWhenGrouping","prevGroupIndex","lastSortOrder","sortMode","fireOptionChanged","fullOptionName","_skipProcessingColumnsChange","columnOptionCore","notFireEvent","initialColumn","optionGetter","maxDepth","optionSetter","_checkColumns","getColumnByPath","defaultSetCellValue","dotCount","getDataColumns","bandColumnID","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","numberToString","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","isColumnFixed","_bandColumnsCache","findColumn","identifierOptionName","columnsControllerModule","commonColumnSettings","allowColumnReordering","allowColumnResizing","columnResizingMode","columnMinWidth","columnWidth","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","customizeColumns","_getExpandColumnOptions","_getFirstItems","groupsCount","childItems","getFirstItemsCore","collapsedItems","isApplyingUserState","_isColumnsFromOptions","addCommandColumn","addExpandColumn","_dataSourceApplied","applyDataSource","columnIndexes","getColumnByIndexes","needUpdateRequireResize","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","createColumnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","getUserState","isDataSourceApplied","groupingOptions","groupPanelOptions","checkSerializers","isBandColumnsUsed","_shouldReturnVisibleColumns","_compileVisibleColumns","_compileVisibleColumnsCore","getFixedColumns","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","_isColumnVisible","isParentColumnVisible","_isColumnInGroupPanel","hasVisibleDataColumns","isInGroupPanel","processBandColumns","indexedColumns","_getIndexedColumns","_getVisibleColumnsFromIndexed","columnDigitsCount","positiveIndexedColumns","negativeIndexedColumns","parentBandColumns","isDefaultCommandColumn","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","column1","column2","sortColumns","allowMoveColumn","fromVisibleIndex","toVisibleIndex","sourceLocation","sourceColumn","moveColumn","targetGroupIndex","groupColumns","moveColumnToGroup","targetColumn","sortingMode","getSortDataSourceParameters","useLocalSelector","sortItem","getGroupDataSourceParameters","groupItem","updateNewLookupsOnly","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","getAlignmentByDataType","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","updateSortingGrouping","sortParameters","groupParameters","filterParameters","lastLoadOptions","_updateChanges","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","updateFilter","remoteFiltering","clearSorting","clearGrouping","getVisibleIndexByColumn","visibleColumn","addColumn","deleteColumn","convertOwnerBandToColumnReference","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","isEditable","captionize","skipDeserialization","formattedValueWithDefaultFormat","strictParseNumber","On","filterUtils","createFilterExpression","userDataType","updateValueMap","calculateValue","resizedCallbacks","resized","defaultOptionName","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","getColumnId","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","ControllerWithDataMixin","dataControllerModule","loadingTimeout","cacheEnabled","onDataErrorOccurred","_cachedProcessedItems","_currentOperationTypes","_dataChangedHandler","operationTypes","_columnsChangedHandler","_handleColumnsChanged","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_changingHandler","_handleChanging","_dataPushedHandler","_handleDataPushed","_isLoading","_isCustomLoading","_repaintChangesOnly","dataErrorOccurred","stopOnFalse","_handleDataSourceChange","needToRefreshOnDataSourceChange","changedPagingOptions","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","returnDataField","combined","additionalFilter","_calculateAdditionalFilter","isRemoteFiltering","waitReady","_readyDeferred","updateItems","isCustomLoading","isLoadingAll","_columnsUpdating","filterApplied","_applyFilter","_needApplyFilter","updateItemsHandler","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","pushed","fireError","pagingEnabled","scrollingMode","appendMode","isPaginateChanged","isPageSizeChanged","oldDataSource","setDataSource","_beforeProcessItems","getRowIndexDelta","getDataIndex","visibleItems","lastVisibleItem","_processItems","rowIndexDelta","_processItem","_generateDataItem","_processDataItem","generateDataValues","isModified","_applyChange","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","_getRowIndices","rowIndices","correctedRowIndex","allowInvisibleRowIndices","prevIndex","rowIndexCorrection","equalItems","strict","oldNextItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isLiveUpdate","modifiedValues","isCellModified","_getChangedColumnIndices","isContinuationOnNextPage","changedColumnIndices","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","currentItems","getRowKey","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","_afterProcessItems","_updateItemsCore","cachedProcessedItems","useProcessedItemsCache","getVisibleRows","isDataChanged","needUpdateDimensions","_needUpdateDimensions","loadingOperationTypes","loadingChanged","_loadingText","_isFilterApplying","resetFilterApplying","filterName","clearColumnOption","searchByText","_fireDataSourceChanged","changedHandler","dataSourceChanged","_getDataSourceAdapter","_createDataSourceAdapterCore","dataSourceAdapter","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","loadError","customizeStoreLoadOptions","changing","byLoaded","pageCount","loadAll","_handleDataLoaded","getKeyByRowIndex","getRowIndexByKey","byLoadedRows","getDataByKeys","rowKeys","keyData","beginCustomLoading","messageText","endCustomLoading","changesOnly","customizeLoadResult","repaintRows","rowIndexes","skipProcessingPagingChange","getCachedStoreData","isLastPageLoaded","totalItemsCount","hasKnownLastPage","cloneItems","isFullReload","fullReload","groupExpand","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","fromEnd","_e","cachedItems","cachedData","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","isLast","getGroupItemFromCache","loadedItem","globalIndex","childSkips","getCacheItem","_remoteOperations","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_totalCountCorrection","_isLoadingAll","_dataLoadedHandler","_pushHandler","_handlePush","member","isSharedDataSource","resetCurrentTotalCount","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","calculateOperationTypes","_lastLoadOptions","operationName","fromStore","_applyBatch","getDataIndexGetter","_dataIndexGetter","storeData","_getKeyInfo","_needToCopyDataObject","isReshapeMode","getItemCount","oldItemCount","skipCopying","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","_customizeRemoteOperations","cachedStoreData","cachedPagingData","_handleDataLoading","getPageDataFromCache","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","_operationTypes","_scheduleCustomLoadCallbacks","_dataSourceTotalCount","totalCountCorrection","dataSourceLoadOptions","dataSourceAdapterType","DataSourceAdapter","DataController","dataSourceAdapterProvider","SORT_NONE_CLASS","SORT_INDEX_ICON_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","_setAriaSortAttribute","$rootElement","isGrouped","ariaColumnHeader","ariaSortIndex","_description","ColumnHeadersViewSortingExtender","sortingMixin","$cellElementFromEvent","editingController","editingMode","HeaderPanelSortingExtender","_createGroupPanelItem","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","GROUP_CELL_CLASS","FREE_SPACE_CLASS","COLUMN_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","defaultCellTemplate","isDataTextEmpty","rowsModule","scrolling","loadPanel","dataRowTemplate","showRowLines","rowAlternationEnabled","twoWayBindingEnabled","_getDefaultGroupTemplate","setAriaExpandedAttribute","setWatcher","_setAriaRowIndex","isPagerMode","_renderScrollable","_renderLoadPanel","getScrollable","allColumnsHasWidth","_hasHeight","_renderScrollableCore","_handleScroll","isNativeScrolling","_scrollTop","_scrollRight","getMaxHorizontalScrollOffset","dxScrollableOptions","scrollHandler","_scrollable","_scrollableContainer","newTableElement","_contentChanges","contentChanges","rowInsertedClass","dataChangeType","$rowElements","_setGridRole","_getGridRoleName","hasData","gridRoleName","_createEmptyRow","isFixed","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","$colgroup","_renderFreeSpaceRow","$freeSpaceRowElement","_checkRowKeys","_needUpdateRowHeight","_rowHeight","_getRowsHeight","_updateRowHeight","rowsHeight","_getFreeSpaceRowElements","tableElements","evaluate","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","groupColumnAlignment","updateFreeSpaceRowHeight","_renderDataRowByTemplate","resizeCompletedHandler","_lastColumnWidths","groupingTextsOptions","_setRowsOpacityCore","_getDevicePixelRatio","getCellOptions","getRow","freeSpaceRowElements","isFreeSpaceRowVisible","getScrollbarWidth","elementHeightWithoutScrollbar","showFreeSpaceRow","resultHeight","_getHeightCorrection","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","isChromeLatest","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","forceUpdateScrollPosition","scrollableContainer","getScrollableBottomPadding","lastColumnWidths","columnWidths","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","dxScrollable","hasHeight","visibilityOptions","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isFloor","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","getTopVisibleItemIndex","getBottomVisibleItemIndex","getTopVisibleRowData","_scrollToElement","setAriaOwns","headerTableId","footerTableId","_restoreErrorRow","VIEW_NAMES","ContextMenuController","$targetRowElement","$targetCellElement","_contextMenuPrepared","ContextMenuView","contextMenuInstance","contextMenuModule","onContextMenuPreparing","contextMenu","contextMenuView","treeListCore","ERROR_ROW_CLASS","ERROR_MESSAGE_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","renderErrorRow","$errorMessageElement","$firstErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorRowEnabled","errorHandling","errorHandlingController","hasChanges","GRIDBASE_CONTAINER_CLASS","HIDDEN_COLUMNS_WIDTH","isPercentWidth","calculateFreeWidth","_getTotalWidth","resizingControllerMembers","_initPostRenderHandlers","_refreshSizesHandler","resizeDeferred","needFireContentReady","_checkSize","_refreshSizes","_setAriaLabel","_waitAsyncTemplates","_setScrollerSpacing","_getWidgetAriaLabel","_getBestFitWidths","headersTableElement","_setVisibleWidths","columnId","_toggleBestFitModeForView","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","_toggleBestFitMode","$rowsFixedTable","_footerView","_needStretch","_toggleContentMinHeight","_prevContentMinHeight","_synchronizeColumns","resetBestFitMode","hasUndefinedColumnWidth","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","expandColumnWidth","isPixelWidth","restoreFocus","_correctColumnWidths","_processStretch","_getAverageColumnsWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","freeWidth","currentMinWidth","calculateFreeWidthWithCurrentMinWidth","realColumnWidth","_getRealColumnWidth","totalWidth","resultSizes","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","percentTotalWidth","pixelTotalWidth","percentTotalWidthInPixel","_getGroupElement","importantMarginClass","checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","isWidgetVisible","isGridSizeChanged","_lastWidth","_lastHeight","_devicePixelRatio","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","_setAriaOwns","headerTable","footerTable","editorFactory","rootElementHeight","isHeightSpecified","maxHeightHappened","isMaxHeightApplied","_updateLastSizes","ResizingController","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_groupElement","_getTableRoleName","gridViewModule","showBorders","resizing","synchronizeScrolling","gridView","TOOLBAR_ITEMS","_itemData$options","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","getItemInstance","_$focusTarget","$focusTarget","_toolbar","_updateMenuVisibility","_renderMenuItems","_getMenuItems","_this$_toolbar$option","_getItemsWidth","_hideOverflowItems","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","_setMenuRole","_getSections","sectionName","_updateSections","$sections","isAction","PopupFull","extension","onButtonClick","closeOnClick","_initButtonClickAction","_buttonClickAction","_renderButton","_toggleMenuVisibility","ToolbarMenuList","_getListDataSource","toggleItemFocusableElementTabIndex","_this$_list2","_deferRendering","_this$_list3","_this$_list4","_this$_list5","_updateFocusableItemsTabIndex","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","_renderOverflowMenu","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_overflowMenuContainer","itemClickAction","_menu","DropDownMenu","renderMenuItems","_$overflowMenuContainer","isMenuVisible","_isMenuItem","_getHiddenItems","_this$_toolbar$option2","_this$_restoreItems","$hiddenItems","_restoreItems","hiddenItem","$itemMarkup","overflowGetter","itemVisible","itemOverflow","_this$_restoreItems2","overflowItems","itemsWidth","_this$_menu","_this$_menu2","_this$_menu3","_this$_menu4","_this$_menu5","_this$_menu6","menuContainer","overflowMenuVisible","_isMultiline","_layoutStrategy","_renderLayoutStrategy","MultiLineStrategy","SingleLineStrategy","_isToolbarItem","Toolbar","TOOLBAR_BUTTON_CLASS","DEFAULT_TOOLBAR_ITEM_NAMES","headerPanelModule","_getButtonContainer","_getToolbarButtonClass","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","itemRenderedCallback","_normalizeToolbarItems","defaultItems","userItems","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","_isDisabledDefinedByUser","userItem","setToolbarItemDisabled","isDefinedByUser","updateToolbarDimensions","getHeaderPanel","normalizedItem","DataGrid","editing","DATE_REGEX","parseDates","StateStoringController","getStorage","localStorage","getUniqueStorageKey","_loadState","_saveState","setItem","_windowUnloadHandler","_savingTimeoutID","stateStoringModule","stateStoring","stateStoringCore","stateLoaded","selectionController","exportController","updateState","selectionChanged","selectedRowKeys","_initialPageSize","_initialFilterValue","pagerView","getPageSizes","filterEnabled","focusedRowKey","getDataState","selectionOnlyChanged","exportSelectionOnly","selectionOnly","processLoadState","isStateLoading","oldStateHash","newStateHash","isVirtualScrollingMode","filterSyncController","getFilterValueFromColumns","getFilterValue","stateStoringController","_restoreStateTimeoutID","_fireSelectionChanged","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","COMMAND_SELECT_CLASS","DATA_ROW_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","selectionModule","_selectionMode","_isSelectionWithCheckboxes","_createSelection","_updateSelectColumn","_deselectRemovedOnPush","_updateSelectedOnPush","removedKeys","deselectRows","updateChanges","getSelectedRowsData","_getSelectionConfig","selectionOptions","virtualPaging","legacyScrollingMode","hasGroupColumns","oldData","loadItemIndex","shiftItemIndex","minIndex","maxIndex","isSelectColumnVisible","_updateCheckboxesState","isDeferredMode","isComplexKey","isSeveralRowsSelected","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","itemIndexes","_selectedItemsInternalChange","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","oldSelectionMode","selectRows","_isOnePageSelectAll","getSelectedRowKeys","selectRowsByIndexes","visibleItemIndex","loadedItemIndex","hasSelectColumn","_updateSelectAllValue","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","_attachCheckBoxClickEvent","_renderSelectCheckBox","_updateCheckboxesClass","isSelectionDisabled","isClickableElement","isCheckBoxesHidden","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","CHECK_BOX_CLASS","ROOT_NODE_CLASS","EXPANDER_ICON_STUB_CLASS","TreeViewBase","_getEventNameByOption","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","rootItem","_toggleExpandedNestedItems","_showCheckboxes","asterisk","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","expandIcon","collapseIcon","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","expandEvent","createChildren","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","previousSelectAllEnabled","_selectAllEnabled","previousItemsContainer","_detachClickEvent","_detachExpandEvent","selectAllExists","_$selectAllItem","_renderSelectAllItem","_attachExpandEvent","_useCustomChildrenLoader","_loadChildrenByCustomLoader","_isVirtualMode","_initVirtualMode","_isDataStructurePlain","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_updateLevel","_parentIdGetter","removedKey","_markChildrenItemsToRemove","_removeItems","_getContainerByParentKey","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_this$_dataSource","_this$_dataSource$loa","_this$_dataSource$loa2","_isSingleSelection","_isRecursiveSelection","_setAriaRole","skipContentReadyAction","_skipContentReadyAndItemExpanded","_expandedGetter","_node$internalFields","_node$internalFields$","_getLevel","_hasCustomExpanderIcons","nodeIndex","nodeData","showCheckBox","_toggleSelectedClass","_getNode","_renderChildren","_addLeafClass","_getItem","_renderCustomExpanderIcons","_renderDefaultExpanderIcons","_shouldRenderSublevel","_loadSublevel","_renderSublevel","_getActualNode","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","_renderCheckBox","$nestedNodeContainer","childNodesByChildrenKeys","_updateParentsState","_normalizeIconState","expandedEventName","_getNodeByElement","_decodeString","_nodeHasRenderedChildren","_createLoadIndicator","_updateExpandedItemsUI","$treeviewItem","_renderExpanderIcon","iconClass","_renderToggleItemVisibilityIconClick","$treeViewItem","$expandIcon","$collapseIcon","isNodeExpanded","_toggleCustomExpanderIcons","isHiddenNode","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","hasNewItems","_LoadIndicator$getIns","$toggleItem","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_createEventHandler","pointerDownEventNamespace","nodeSelector","_getItemClickEventData","getElementsByClassName","_updateSelectionToFirstItem","_updateSelectionToLastItem","isSelectAllItem","_setFocusedItemTimeout","_findNonDisabledNodes","$nodes","FOCUS_UP","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","decodeURI","getNodes","getSelectedNodes","_allItemsExpandedHandler","expandingPromises","allSettled","_this$_allItemsExpand","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_updateSearch","_repaintContainer","_updateDataAdapter","_getNodeContainer","isSearchMode","selectAllEnabled","bT","TreeView","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","COLUMN_OPTIONS_USED_IN_ITEMS","columnChooserControllerMembers","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","ColumnChooserController","columnChooserMembers","_isWinDevice","_initializePopupContainer","columnChooserClass","columnChooserOptions","isGenericTheme","dxPopupOptions","_popupContainer","setPopupAttributes","isSelectMode","isDragMode","_columnChooserList","_renderTreeView","columnChooser","treeViewConfig","_prepareSelectModeConfig","_prepareDragModeConfig","isUpdatingSelection","addNodesToArray","flatNodesArray","_isUpdatingColumnVisibility","chooserColumns","isRecursive","processItems","_updateItemsSelection","changedColumns","onlyVisibleChanged","isColumnHidden","isColumnChooserVisible","allowColumnHeaderDragging","hideColumnChooser","popupContainer","hiddenColumns","columnChooserModule","_appendColumnChooserItem","hintText","lastLevelOnly","filterElement","GroupingHelper","findGroupInfoByKey","groupsInfo","getGroupInfoIndexByOffset","leftIndex","rightIndex","_groupsInfo","updateTotalItemsCount","isGroupItemCountable","_isVirtualPaging","calculateItemsCount","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","callbackResults","foreachGroupsCore","currentParents","_updateGroupInfoOffsets","findGroupInfo","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","cleanGroupsInfo","handleDataLoading","handleDataLoaded","handleDataLoadedCore","groupOffset","pageOffset","GroupingHelperCore","foreachExpandedGroups","updateGroups","processGroupItems","expandedInfo","isLastGroupExpanded","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","getContinuationGroupCount","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","isItemsTruncatedByTake","isDataDeferred","currentGroupCount","currentGroupIndex","makeDataDeferred","requireGroupCount","groupSummary","createGroupFilter","applyContinuationToGroupItem","loadGroupItems","expandedFilters","expandedPath","dataGridCore","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","dataErrors","isVirtualPaging","_updatePagingOptions","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","Kt","changeRowExpand","remoteGroupPaging","remotePaging","_processPaging","_processSkips","_processTakes","lastItem","handleGroup","groupCountQuery","groupOffsetQuery","createOffsetFilter","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","collapsedGroup","pathValue","appendCollapsedPath","_totalCountWasIncreasedByCollapsedItems","enumerate","groupedData","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","beginPageIndex","dataSourceItems","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","ExpandedGroupingHelper","CollapsedGroupingHelper","isRowExpanded","_collapseExpandAll","isExpand","_changeRowExpandCore","_hasGroupLevelsExpandState","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","expandRow","collapseRow","onGroupingMenuItemClick","isGroupPanelVisible","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","$groupPanel","_updateGroupPanelContent","_renderGroupPanelItems","$groupPanelItem","setTabIndex","$toolbarElement","$groupedColumnElement","isColumnGrouped","groupingTexts","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","_isProcessedItem","MASTER_DETAIL_ROW_CLASS","masterDetailModule","masterDetail","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","RADIO_BUTTON_ICON_CLASS","RadioButton","_renderIcon","_renderCheckedState","_renderClick","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","visibilityChange","getExcludedSelectors","SELECT_DECORATOR_ENABLED_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","registerDecorator","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","_renderSelectAll","moveFocusDown","$selectAll","lastItemIndex","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","clearSelectBox","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","customItemCreateEvent","onCustomItemCreating","customItem","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_updateField","_scrollToSelectedItem","_focusSelectedElement","_items$indexOf","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","_listFocusedItemChangeHandler","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_valueChangeEventIncludesBlur","_isPreventedFocusOutEvent","_isOverlayNestedTarget","isOverlayTarget","isPopupVisible","_shouldCancelSearchValue","selectedItemText","$listFocused","_shouldCloseOnItemClick","_completeSelection","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","valueLength","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","isPM","currentYear","maxLimitLength","forcedPattern","limits","dM","getAmPm","DATE_COMPONENTS","TIME_COMPONENTS","SUPPORTED_FORMATS","ONE_MINUTE","ONE_DAY","ONE_YEAR","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","getStringFormat","longestDate","normalizeTime","DateBoxStrategy","dateBox","widgetOption","_renderWidget","_getWidgetContainer","_getWidgetName","_getWidgetOptions","getDefaultOptions","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","isAdaptivityChanged","CalendarStrategy","todayButtonText","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","_getTodayButtonConfig","_isCalendarVisible","calendarOptions","isBoth","DATEVIEW_ROLLER_ITEM_CLASS","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","_$items","_fitIndex","_getItemPosition","_renderActiveStateItem","_itemHeight","_getItemSelector","_itemElementIndex","_shouldScrollToNeighborItem","ScrollDirection","convertToLocation","_fitSelectedIndexInRange","_isInNullNeighborhood","_getSelectedIndexAfterScroll","currentSelectedIndex","_getNewSelectedIndex","newSelectedIndex","_toggleActive","_fireSelectedIndexChanged","_visibilityTimer","toggleActiveState","_refreshSelectedIndex","fitIndex","DateViewRoller","DATEVIEW_CLASS","DateView","_valueOption","_getDefaultDate","uiDateUtils","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","DATEVIEW_ROLLER_CLASS","displayItems","roller","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","_getCurrentDate","valueItems","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","_device2","_isNativeType","_getDateBoxType","rotateArrow","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_renderBox","_updateTime","$box","_renderClock","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","_refreshFormat12","_silentEditorValueUpdate","_normalizeHours","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","calendarPopupConfig","_this$_widget$option","_removeMinWidthTimer","BOUNDARY_VALUES","ListStrategy","_getDateByItemData","_widgetItems","_refreshItems","_timeListItemTemplate","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","dateIndex","_getDateIndex","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","popupHeight","_timeList","DATEBOX_CLASS","DATEBOX_WRAPPER_CLASS","PICKER_TYPE","rollers","native","TYPE","STRATEGY_CLASSES","Native","CalendarWithTime","DateBox","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","_showValidationIcon","_updatePickerOptions","_pickerType","_setShowDropDownButtonOption","isMozillaOnAndroid","isNativePickerType","_initStrategy","_toLowerCaseFirstLetter","_getStrategyName","_getFormatType","isTime","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","clearButtonElement","longestValue","$longestValueElement","storedPadding","necessaryWidth","_renderPopupWrapper","_this$_strategy$_getP","_this$_strategy$_getP2","_this$_strategy2","_getPopupTitle","classPostfixes","_getDisplayedText","submitFormat","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_recallInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_updateInternalValidationState","_serializeDate","_isValueChanged","_isTextChanged","_refreshStrategy","_this$_strategy3","_updatePopupTitle","isValueChanged","DateBoxMask","DateBoxBase","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","_getActivePartValue","_initialMaskValue","_loadMaskValue","_changePartValue","lockOtherParts","_getActivePartProp","_toggleAmPm","_partIncrease","indexOfCurrentValue","_setActivePartValue","emptyDateValue","_isSingleCharKey","_isSingleDigitKey","_e$originalEvent","_useBeforeInputEvent","_keyInputHandler","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_maskBeforeInputHandler","isBackwardDeletion","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_renderDateParts","_partLimitsReached","formatLength","maxSearchLength","isLengthExceeded","isValueOverflowed","_getActivePartLimits","startString","endLimit","_clearSearchValue","_prepareRegExpInfo","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_initMaskState","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_dateParts","getPatternGetter","isStub","renderDateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_getRealLimitsPattern","limitFunction","_addLeadingZeroes","zeroes","_saveMaskValue","_applyLimits","limitBase","limitClosest","getDatePartIndexByPosition","_isDateValid","_isValueDirty","_fireChangeEvent","isWrapped","EditorFactoryMixin","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","valueChangeTimeout","updateValueTimeout","prepareDateBox","prepareTextBox","isSearching","prepareNumberBox","displayGetter","_options$editorType","selectBox","stopWatch","prepareCustomEditor","prepareEditor","prepareDefaultEditor","dxDateBox","prepareCheckBox","dxTextBox","prepareLookupEditor","_prepareDefaultEditor","editorElement","isOnForm","$editorElement","defaultEnterKeyHandler","dxTextArea","CELL_FOCUS_DISABLED_CLASS","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","ViewControllerWithMixin","editorFactoryModule","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","_getFocusCellSelector","_updateFocusCore","$focus","isHideBorder","$focusCell","_needHideBorder","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","setOuterWidth","setOuterHeight","_$focusedElement","_focusTimeoutID","renderFocusOverlay","refocus","_$focusOverlay","elemCoord","isFocusedCellInvalid","isFocusedCellModified","focusOverlayPosition","_updateFocusHandler","_subscribedContainerRoot","_getContainerRoot","_attachContainerEventHandlers","DOCUMENT_FRAGMENT_NODE","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","getApplyButtonConfig","getCancelButtonConfig","_options$title","isMessageHtmlDefined","messageHtml","messageId","popupToolbarItems","popupInstance","$firstButton","popupOptions","isPortrait","confirm","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","CELL_BASED_MODES","REQUIRED_EDITOR_LABELLEDBY_MODES","MODES_WITH_DELAYED_FOCUS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","CELL_MODIFIED","DATA_EDIT_DATA_UPDATE_TYPE","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","EDIT_FORM_ITEM_CLASS","FOCUSABLE_ELEMENT_CLASS","EDIT_ROW","NEW_ROW_TEMP_KEY_PREFIX","createFailureHandler","isEditingCell","isEditingOrShowEditorAlwaysDataCell","isCommandCell","getButtonIndex","getButtonName","forEachFormItems","editingModule","useLegacyColumnButtonTemplate","_lastOperation","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","getEditMode","editMode","isCellBasedEditMode","_getDefaultEditorTemplate","_getNewRowPosition","getInsertRowCount","resetChanges","_getInternalData","_addInternalData","internalData","_getOldData","getUpdatedData","editIndex","createObjectWithChanges","getInsertedData","getRemovedData","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","_closeEditItem","_isDefaultButtonVisible","_isButtonVisible","_isButtonDisabled","_getButtonConfig","editingTexts","getEditingTexts","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_getEditCommandCellTemplate","isRowBasedEditMode","getFirstEditableColumnIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","isOptionChanged","_refreshCore","_setEditRowKey","_refocusEditCell","_focusEditingCell","_setEditRowKeyByIndex","getEditRowIndex","_getVisibleEditRowIndex","getEditFormRowIndex","isEditRowByIndex","isEditCell","_getVisibleEditColumnIndex","_getInsertRowIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","_generateNewItem","insertInfo","_getLoadedRowIndex","loadedRowIndex","insertAfterOrBeforeKey","_processDataItemCore","modified","_initNewRow","_createInsertInfo","_getInsertIndex","getChangeKeyValue","_setInsertAfterOrBeforeKey","allItems","FIRST_NEW_ROW_POSITION","insertKey","maxInsertIndex","editItem","insertChange","_getPageIndexToInsertRow","lastPageIndex","_addRow","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_addRowCore","_navigateToNewRow","initialOldEditRowIndex","editRowIndex","_addChange","focusController","pageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","_beforeFocusElementInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_isEditingStart","_beforeUpdateItems","_setEditColumnNameByIndex","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","columnName","_resetEditIndices","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","_focusEditorIfNeed","_showEditPopup","repaintForm","_repaintEditPopup","_getEditPopupHiddenHandler","_getPopupEditFormTemplate","_getSaveButtonConfig","buttonConfig","saveEditData","_getCancelButtonConfig","_removeInternalData","_updateInsertAfterOrBeforeKeys","removeChange","_removeChange","executeOperation","waitForDeferredOperations","_processCanceledEditingCell","_repaintEditCell","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","_beforeFocusCallback","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_afterDeleteRow","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","results","dataChanges","changeCopy","_beforeSaveEditData","newData","doneDeferred","_processRemoveIfError","_processRemove","_processRemoveCore","processIfBatch","_processSaveEditDataResult","hasSavedData","changesLength","_fireSaveEditDataEvents","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","_isEditButtonDisabled","isButtonDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","_hideEditPopup","hasEditData","isPageChanged","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_prepareChange","rowKey","_updateRowValues","updateFieldValue","forceUpdateRow","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_updateEditRowCore","_updateRowImmediately","_updateRowWithDelay","_validateEditFormAfterUpdate","elementContainer","_editForm","changeParams","_getFormEditItemTemplate","getColumnTemplate","editingStartOptions","isRowMode","isRowEditing","isCellEditing","getEditFormTemplate","iconType","iconUtils","localizationName","getButtonLocalizationNames","prepareButtonItem","revert","prepareEditButtons","buttonItems","highlightDataCell","shouldHighlightCell","_allowEditAction","allowEditAction","modifiedValue","isNewRowInEditMode","visibleEditRowIndex","_isRowDeleteAllowed","_editingController","_updateEditItem","dataSourceKeys","newChanges","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","isEditedCell","isShowEditorAlways","editCell","_pointerDownTarget","closeEditCell","_pointerDownTimeout","isEditForm","isEditableCell","_editCellPrepared","_formItemPrepared","cellValue","editingRowBasedModule","Base","isRowEditMode","hasUpdateChanges","$editingCell","_findWidgetInstance","widgetInstance","_findFieldByCondition","removeItemsByItems","itemsRunTimeInfo","getItems","removeItemByKey","addItemsOrExtendFrom","itemRunTimeInfo","extendRunTimeItemInfoByKey","findWidgetInstanceByItem","storedItem","findGroupOrTabLayoutManagerByPath","targetPath","findKeyByPath","findWidgetInstanceByName","findWidgetInstanceByDataField","findItemContainerByItem","findItemIndexByItem","targetItem","findPreparedItemByItem","removeItemsByPathStartWith","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MultiView","swipeEnabled","_itemWidth","_itemWidthValue","_clearItemWidthCache","_normalizeIndex","_getRTLSignCorrection","_findBoundaryIndices","_initSwipeable","_updateItemsVisibility","_setElementAria","_setItemsAria","_getElementAria","_getItemAria","_updateItemsPosition","positionSign","_animationDirection","$selectedItem","_renderSpecificItem","hasItemContent","animationDirection","_animateItemContainer","indexDifference","_getItemFocusLoopSignCorrection","_getSwipeDisabledState","_firstIndex2","_lastIndex","_firstIndex","_boundaryIndices","firstAvailableIndex","lastAvailableIndex","firstTrueIndex","lastTrueIndex","_swipeDirection","swipeDirection","_findNextAvailableIndex","isFirstActive","isLastActive","$selectedElement","_itemFocusLooped","_updateSwipeDisabledState","TabsItem","TABS_EXPANDED_CLASS","TABS_STRETCHED_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","STATE_DISABLED_CLASS","FOCUSED_DISABLED_NEXT_TAB_CLASS","FOCUSED_DISABLED_PREV_TAB_CLASS","INDICATOR_POSITION_CLASS","TABS_ICON_POSITION_CLASS","TABS_STYLING_MODE_CLASS","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","Tabs","showNavButtons","_indicatorPosition","indicatorPosition","_getIndicatorPosition","_toggleScrollingEnabledClass","_toggleOrientationClass","_toggleIndicatorPositionClass","_toggleIconPositionClass","_toggleStylingModeClass","_renderMultiple","$tabTextSpan","$tabTextSpanPseudo","$tabItem","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsSizeExceeded","_renderNavButtons","getScrollLeftMax","_updateNavButtonsState","_scrollToItem","_cleanScrolling","_needStretchItems","_isVertical","_isItemsHeightExceeded","_isItemsWidthExceeded","$visibleItems","tabItemTotalWidth","_cleanNavButtons","_leftButton","_rightButton","_getScrollableDirection","_createNavButton","$leftButton","$rightButton","_this$_leftButton","_this$_rightButton","_this$_leftButton2","_this$_rightButton2","scrollOffsetTop","isReachedTop","pocketHeight","getScrollTopMax","isReachedBottom","scrollOffsetLeft","isReachedLeft","isReachedRight","_updateScrollPosition","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","navButton","$navButton","_clearInterval","_toggleTabsVerticalClass","_toggleTabsHorizontalClass","_getIndicatorPositionClass","newClass","_toggleElementClasses","_getTabsIconPositionClass","_TABS_STYLING_MODE_CL","classMap","_toggleFocusedDisabledNextClass","isNextDisabled","_toggleFocusedDisabledPrevClass","isPrevDisabled","_toggleFocusedDisabledClasses","prevItemIndex","nextItemIndex","nextFocusedIndex","shouldPrevClassBeSetted","_updateFocusedElement","_indicatorPosition2","TABPANEL_TABS_POSITION_CLASS","TABS_POSITION","TABS_INDICATOR_POSITION_BY_TABS_POSITION","TabPanel","tabsPosition","onTitleClick","onTitleHold","_tabsIndicatorPosition","_toggleTabPanelTabsPositionClass","_createTitleActions","_renderLayout","_prepareTabsItemTemplate","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_tabs","_$tabContainer","$tabs","_tabConfig","tabItems","$activeTab","_getTabsIndicatorPosition","tabsIndicatorPosition","$value","$newItem","_isFocusOutHandlerExecuting","_getTabsOrientation","_getTabPanelTabsPositionClass","_updateTabsOrientation","_setTabsOption","_toggleWrapperFocusedClass","_toggleDisabledFocusedClass","isTabsTarget","isMultiViewTarget","_updateTabsIndicatorPosition","selectedTabContent","_itemsRunTimeInfo","findInstance","findItemContainer","findPreparedItem","tryExecute","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","getFullOptionName","getOptionNameFromFullName","isFullPathContainsTabs","getItemPath","tabOrGroupItems","ItemOptionAction","tabPanel","preparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","filterRequired","oldContainsRequired","newContainsRequired","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","ResponsiveBox","cols","singleColumnScreen","onLayoutChanged","currentScreenFactor","defaultScreenFactorFunc","_initLayoutChangedAction","_layoutChangedAction","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","_screenWidth","itemInfo","_occupyCells","locations","itemCell","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_GROUP_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","ROOT_SIMPLE_ITEM_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","SIMPLE_ITEM_TYPE","DefaultAdapter","validationRequestsCallbacks","getCurrentValidationError","bypass","applyValidationResults","VALIDATION_STATUS_PENDING","Validator","_initGroupRegistration","_initAdapter","skipValidation","_groupWasInit","_getEditor","dxStandardEditor","_this$option$editor$o","_this$option$editor","_toggleAccessibilityAttributes","_resetValidationRules","_getValidationRules","_validationRules","currentError","currentResult","_applyValidationResult","_updateValidationResult","validatedAction","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","FIELD_ITEM_LABEL_LOCATION_CLASS","$targetContainer","labelsSelector","labelMarkOptions","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByHTML","labelContent","FIELD_ITEM_CONTENT_WRAPPER_CLASS","VALIDATION_TARGET_CLASS","rootElementCssClassList","formOrLayoutManager","createComponentCallback","labelNeedBaselineAlign","needRenderLabel","formLabelLocation","isSimpleItem","helpID","labelID","requiredMessageTemplate","$fieldEditorContainer","labelTemplate","labelTemplateData","getTemplateData","markOptions","onLabelTemplateRendered","$labelContainer","$labelContent","markText","getLabelMarkText","_renderLabelMark","renderLabel","isToggleControls","validationTargetInstance","$validationTarget","_$validationTarget$pa","_$validationTarget$pa2","tryGetValidationTargetInstance","getValidationTarget","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","wrapperClass","toggleInvalidClass","layoutData","_itemWatchers","FormItemsRunTimeInfo","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","_updateItemWatchers","_setItems","_sortItems","_getWatch","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","_renderResponsiveBox","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","itemsWithLabelTemplateCount","_item$label","renderEmptyItem","_renderButtonItem","_renderFieldItem","xsColCount","xs","isSingleColumnMode","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","getCurrentScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","convertAlignmentToTextAlign","convertAlignmentToJustifyContent","renderButtonItem","_item$label2","editorValue","canAssignUndefinedValueToEditor","_getFormOrThis","renderFieldItem","editorValidationBoundary","managerLabelLocation","itemId","managerMarkOptions","hasRequiredRule","_hasRequiredRuleInSet","formLabelMode","isEditorWithoutLabels","convertToLabelMarkOptions","textWithoutColon","_convertToLabelOptions","defaultEditorName","externalEditorOptions","editorInputId","editorOptionsWithValue","_convertToEditorOptions","convertToRenderFieldItemOptions","getItemID","_getMarkOptions","_incTemplateRenderedCallCount","_shouldAlignLabelsOnTemplateRendered","_alignLabels","_bindDataField","_this$_labelTemplateR","_labelTemplateRenderedCallCount","totalItemsWithLabelTemplate","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","_watch","formInstance","readOnlyState","hasEditorReadOnly","hasOwn","isChangeByForm","isAutoSize","newLayoutData","getOwnPropertyNames","_clearWidget","_disableEditorValueChangedHandler","_cashedRequiredConfig","_resetColCount","isValueReferenceType","getEditor","responsiveBox","getItemsRunTimeInfo","ValidationSummary","_unsubscribeGroup","groupSubscription","_groupValidationHandler","_getOrderedItems","orderedItems","foundItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","VALIDATION_SUMMARY_CLASS","refreshValidationGroup","VALIDATION_ENGINE_CLASS","validatorContainer","summaryContainer","ValidationGroup","FOCUSED_STATE_CLASS","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_dirtyFields","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignRootItemLabels","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","setLabelWidthByMaxLabelWidth","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_attachResizeObserverSubscription","formRootElement","_resizeHandler","_cachedLayoutManagers","_layoutManager$option","_clearValidationSummary","_this$_$validationSum","_$validationSummary","dxValidationSummary","_prepareItems","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","cssItemClass","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","isRoot","_tryGetItemsForTemplate","_item$tabs","$tabPanel","_item$tabPanelOptions","_item$tabPanelOptions2","tryUpdateTabPanelInstance","$groupContent","extendedLayoutManagerOptions","$formElement","formOptions","onFieldItemRendered","convertToLayoutManagerOptions","_isDataUpdating","nestedItemsRunTimeInfo","_this$_validationSumm","layoutManagerOptions","md","sm","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","itemActionOptions","WidgetOptionItemOptionAction","ValidationRulesItemOptionAction","CssClassItemOptionAction","TabOptionItemOptionAction","TabsOptionItemOptionAction","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","SimpleItemTemplateChangedAction","GroupItemTemplateChangedAction","tryCreateItemOptionAction","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","_setLayoutManagerItemOption","contentReadyHandler","tabPath","pathParts","resultPathParts","tryGetTabPath","tabLayoutManager","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","_tryChangeLayoutManagerItemOptions","_updateIsDirty","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","isEqualToDataFieldOrNameOrTitleOrCaption","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","editorSelector","updateRunTimeInfoForEachEditor","editorAction","isComplexData","resetValues","editorsData","itemOption","allowUpdateItems","editingFormBasedModule","_updateEditFormDeferred","isFormOrPopupEditMode","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","hasEditRow","onlyInsertChanges","popupVisible","_editPopup","editForm","isMobileDevice","editPopupClass","$popupContainer","formTemplate","isPopupForm","defaultAnimation","_handleFormOptionChange","_handlePopupOptionChange","editPopup","popupOptionName","renderFormEditorTemplate","detailCellOptions","formTemplateOptions","isCustomEditorType","getEditorType","getFormEditorTemplate","validatorOptions","dxValidator","getEditFormOptions","detailOptions","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","baseEditFormOptions","$formContainer","getEditForm","_isFormItem","isPopupEditing","oldEditForm","newEditForm","editingCellBasedModule","$pointerDownTarget","needCreateHandlers","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isAnotherComponent","isAddRowButton","isCellEditMode","$dropDownEditorOverlay","$componentElement","isBatchEditMode","$targetCell","isEditRowKeyDefined","isEditColumnNameDefined","_handleEditColumnNameChange","oldColumnIndex","_editCellFromOptionChanged","_editCell","coreResult","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","isError","withoutSaveEditData","_closeEditCellCore","_resetModifiedClassCells","columnsCount","needResetIndexes","isBatchMode","isUpdateInCellMode","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ID","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_ID","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","FORM_BASED_MODES","EDIT_DATA_INSERT_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","_rowIsValidated","validationData","_getValidationData","isObjectKeyHash","_getBrokenRules","validationResults","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","_currentCellValidator","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","setValidator","renderCellPendingIndicator","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","_syncInternalEditingData","oldDataFromState","createValidator","needCreateValidator","isCellOrBatchEditingAllowed","useDefaultValidator","originBypass","defaultAdapterBypass","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","currentCellValue","removeCellValidationResult","isInvalidCell","getCellValidator","_ref8","setCellValidationStatus","validatingModule","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","isNotCanceled","isInsert","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","shouldResetValidationState","validationState","resetRowAndPageIndices","currentValidator","cellModified","isValidated","isCellInvalid","_showRevertButton","$tooltipElement","_revertTooltip","$overlayContainer","revertTooltipClass","$buttonElement","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","isOverlayVisible","__skipPositionProcessing","isRevertButton","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","_hideValidationMessage","validationMessages","_getValidationMessagesSelector","fixedColumns","firstNonFixedColumnIndex","lastNonFixedColumnIndex","visibleTableWidth","w1","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","endColumnIndex","$revertContent","revertContentOffset","_getRevertTooltipsSelector","skipValidator","updateCellState","validationDescriptionValues","errorMessages","_updateAriaValidationAttributes","inputDescriptionValues","_getCurrentFocusElement","_getValidationStatus","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","hasValidationRules","$freeSpaceRowElements","$tooltipContent","contentTable","LEGACY_SCROLLING_MODE","needTwoPagesLoading","_controller","getViewportItemIndex","getBeginPageIndex","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getPreloadPageCount","_dataOptions","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","getItemSizes","getViewportPageCount","processChanged","isDelayChanged","removeCacheItem","dataOptions","isPrepend","viewportItems","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","_loadingPageIndexes","viewportItemIndexChanged","newPageIndex","virtualMode","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","getPageIndexForLoad","loadCore","delayDeferred","_delayDeferred","loadIfNeed","_setViewportPositionCore","handleDataChanged","removeInvisiblePages","lastCacheLength","getDelayDeferred","beginItemsCount","_isVirtual","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","$scrollableElement","scrollableOffset","widgetScrollStrategy","isElement","getElementOffset","topOffset","subscribeToScrollEvents","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_isScrollingBack","_itemSizes","_sizeRatio","positionChanged","_dataLoader","VirtualDataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","getScrollingTimeout","scrollingTimeout","changingDuration","setViewportPosition","_scrollTimeoutID","getItemIndexByPosition","viewportItemIndex","defaultItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","itemSize","isScrollingBack","prevPosition","setViewportItemIndex","setContentItemSizes","virtualContentSize","contentHeightLimit","getItemOffset","isEnd","currentItemIndex","getVirtualContentSize","viewportHeight","isRefresh","subscribeToWindowScrollEvents","_windowScroll","subscribeToExternalScrollers","topIndex","bottomIndex","maxGap","minGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","VISIBLE_PAGE_INDEX","isItemCountableFunc","isItemCountableByDataSource","VirtualScrollingDataSourceAdapterExtender","_virtualScrollController","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","newMode","virtualScrollController","Lg","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","itemSizes","_updateContentPosition","startRenderTime","_removeRowsElements","_updateBottomLoading","_addVirtualRow","$virtualRow","_updateContentItemSizes","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","_updateViewportSize","visibleRows","firstCountableItem","lastLoadIndex","isRender","$virtualRows","prevFixed","_isFixedTableRendering","_isTableLinesDisplaysCorrect","_isColumnElementsEqual","$columns","$virtualColumns","_getCellClasses","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","hasBottomLoadPanel","isViewportChanging","throwHeightWarningIfNeed","_heightWarningIsThrown","scrollPos","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_loadViewportParams","getLoadPageParams","getRowPageSize","rowsScrollController","isSortingOperation","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","loadViewport","_updateLoadViewportParams","isItemCountable","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","updateItemIndices","prevCountable","prevRowType","isPrevRowNew","wasCountableItem","newRows","itemCountable","isNextGroupItem","isNextDataItem","skipForCurrentPage","needGroupOffset","firstLoadIndex","getPreloadedRowCount","preloadCount","byLoadedPage","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","_updateVisiblePageIndex","viewPortItemIndex","_getChangedLoadParams","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","_loadItems","checkLoading","viewportIsFilled","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","noPendingChangesInEditing","currentTake","newTake","topItemIndex","bottomItemIndex","masterDataGridUpdated","isNewVirtualMode","hasResizeTimeout","_resizeTimeout","_lastTime","getElementMaxHeightByWindow","startLocation","actualOffset","offsetBottom","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","_isMenuHorizontal","hoverStartAction","submenu","containerOffset","vLocation","hLocation","rootWidth","rootHeight","submenuWidth","submenuHeight","getOverlayContent","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_isAdaptivityEnabled","$menuItems","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_renderHamburgerButton","_hamburger","_toggleTreeView","_treeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_removeAdaptivity","_$adaptiveContainer","_treeviewItemClickHandler","_getAdaptiveOverlayOptions","_getTreeViewOptions","menuOptions","$hamburger","_getDelay","delayType","_createSubmenu","_renderBorderElement","$submenuContainer","subMenu","Submenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","_getShowFirstSubmenuMode","$currentItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","selectedItemData","$prevSelectedItem","submenus","submenuMouseLeaveName","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","isRootItemHovered","isSubmenuItemHovered","isHorizontalMenu","mouseMoveEventName","isSelectionActive","_showSubmenuTimer","_getSubmenuByElement","_itemMouseMoveHandler","eventArg","_hideSubmenuTimer","_hoveredRootItem","_changeSubmenusOption","t$","OPERATION_ICONS","notcontains","startswith","endswith","between","OPERATION_DESCRIPTORS","FILTER_ROW_CLASS","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","ARIA_SEARCH_BOX","$editorContainer","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","getColumnFilterValue","isOnClickApplyFilterMode","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","isFilterRange","isRangeStart","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_applyFilterViewController","_initFilterRangeOverlay","filterRangeOverlayClass","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","setHighLight","normalizedValue","columnFilterValue","isBetween","updateFilterValue","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","lookupOptions","$filterRangeContent","isCellWasFocused","_focusEditor","_getFilterOperationMenuItems","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","_f","updateLookupDataSource","filterChanged","applyFilterViewController","editorDataSource","DataControllerFilterRowExtender","skipCalculateColumnFilters","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_getHeaderPanel","_headerPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","syncLookupFilterValues","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","notContains","isBlank","isNotBlank","columnsResizer","_startResizing","_targetPoint","_endResizing","_needUpdateLookupDataSource","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","resetChildrenItemSelection","listComponent","selectAllCheckBox","getSelectAllCheckBox","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListComponent","_listComponent","applyHeaderFilter","isFilterBuilder","isExclude","hasChildrenWithSelection","fillSelectedItemKeys","hideHeaderFilterMenu","$columnElement","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","headerFilterOptions","useDefaultSearchExpr","headerFilterDataSource","filterSearchExpr","_normalizeHeaderFilterOptions","_initializeListContainer","needShowSelectAllCheckbox","_selectedItemsUpdating","filterValueIndex","updateListSelectAllState","generalHeaderFilter","specificHeaderFilter","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","HeaderFilterController","_headerFilterView","_updateSelectedState","updateHeaderFilterItemSelectionState","_normalizeGroupItem","currentLevel","displaySelector","getHeaderItemText","firstValueText","secondValueText","isLookup","cutoffLevel","useDefaultSearch","convertUTCDates","isUTCFormat","convertDataFromUTCToLocal","origPostProcess","getCurrentColumn","isGroupPanel","showHeaderFilterMenuBase","columnElement","previousOnHidden","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_needUpdateFilterIndicators","isFilterRowAndHeaderFilterValuesChanged","isHeaderFilterValuesAndTypeChanged","HeaderPanelHeaderFilterExtender","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","filterOperation","DEFAULT_DATA_TYPE","AND_GROUP_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","isCondition","isNegationGroup","getGroupCriteria","getCriteriaOperation","entity","containItems","getDefaultFilterOperations","filterOperationsDictionary","filteredOperations","getFilterOperations","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","groupValue","getGroupValue","extendedFields","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","customOperation","getCustomOperation","conditionHasCustomOperation","appendGroupOperationToCriteria","convertToInnerGroup","createEmptyGroup","getField","filterExpression","getFilterExpression","getConditionFilterExpression","itemsForRemove","normalizedGroupValue","getNormalizedFilter","isValidCondition","setGroupCriteria","getFormattedValueText","getPrimitiveValueText","checkDefaultValue","getArrayValueText","C$","originalItems","hasParent","getParentIdFromItemDataField","itemExists","pushItemAndCheckParent","generateCaptionByDataField","getCaptionWithParents","addedFilterDataField","isMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","filterHasField","renderValueText","getFullText","parentText","_filterExpression","closeEditor","fieldInfo","itemsDeferred","selectedItemsTexts","getSelectedItemsTexts","baseOperation","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_EXCLUDE","FilterSyncController","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getDefaultOperation","getColumnIdentifier","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","syncFilterValue","_skipSyncColumnOptions","filterConditions","getMatchedConditions","filterCondition","_initSync","checkForErrors","filteringColumns","isFilterSyncActive","_getSyncFilterRow","syncFilters","removeFieldConditionsFromFilter","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","getCustomFilterOperations","filterBuilderCustomOperations","anyOf","noneOf","DataControllerFilterSyncExtender","filterSyncEnabledValue","currentColumnForHeaderFilter","currentColumnForFilterRow","calculatedFilterValue","_parseColumnPropertyName","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSyncEnabled","filterSync","FILTER_BUILDER_CLASS","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","ENTER_KEY","OPERATORS","and","notAnd","notOr","EditorFactory","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","normalizedField","getNormalizedFields","_updateFilter","_getModel","_initEditorFactory","betweenCaption","betweenIndex","getMergedOperations","_getDefaultGroupOperation","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","updateConditionByOperation","createCondition","_getGroupOperations","groupMenuItem","availableGroups","getGroupMenuItem","$operationButton","_createButtonWithMenu","convertGroupToNewStructure","setGroupValue","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","availableOperations","isLookupField","isCustom","getCaptionByOperation","getAvailableOperations","getOperationFromAvailable","getOperationValue","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","$removeButton","addGroupHandler","addConditionHandler","_createValueText","getCurrentLookupValueText","getCurrentValueText","_createValueEditorWithEvents","_updateConditionValue","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","_removeEvents","createValueText","_createValueEditor","$popup","$menuContainer","FilterBuilder","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","$filterBuilderContainer","filterBuilderModule","filterBuilder","filterBuilderPopup","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FilterPanelView","$leftContainer","_renderFilterBuilderText","$filterElement","_getFilterElement","$textElement","_getTextElement","_filterValueBuffer","$checkElement","_getCheckElement","$removeButtonElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","getFilterText","customText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","gridUtils","getConditionText","getGroupText","isInnerGroup","groupText","filterPanelModule","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","searchModule","searchPanel","calculateSearchFilter","onQueryDone","_prepareSearchItem","searchPanelOptions","$search","getSearchTextEditor","$searchPanel","_searchParams","_getFormattedSearchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","_highlightSearchText","isEquals","textNode","_highlightTimer","pageIndexChanged","pageSizeChanged","_getElementComputedSt","ResizableContainerProps","ResizableContainer","parentRef","pageSizesRef","infoTextRef","pagesRef","actualIsLargeDisplayMode","actualInfoTextVisible","infoTextVisible","isLargeDisplayMode","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","parentWidth","contentAttributes","gridCompatibility","lightModeEnabled","maxPagesCount","pageSizes","pagesCountText","pagesNavigatorVisible","showPageSizes","currentElementsWidth","pages","getElementContentWidth","pageSizesWidth","infoWidth","pagesHtmlWidth","getElementsWidth","elementsWidth","pagesWidth","calculateLargeDisplayMode","calculateInfoTextVisible","Content","BasePagerProps","PagerProps","defaultPageSize","InternalPagerProps","InfoTextPropsType","InfoText","_this$props$infoText","KeyboardActionContext","LightButtonProps","LightButton","subscribeToClick","keyboardContext","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","PageProps","Page","slidingWindowSize","slidingWindowIndexes","pageIndexes","indexesForReuse","createPageIndexesBySlidingWindowIndexes","PagesLargePropsType","PagesLarge","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","createPageIndexes","getDelimiterType","createPage","pageProps","EditorStateProps","EditorLabelProps","NumberBoxProps","NumberBoxPropsType","LegacyNumberBox","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","PagerSmallProps","PagerSmallPropsType","PagesSmall","pageIndexRef","updateWidth","selectLastPageIndex","_this$pageIndexRef$cu","getElementMinWidth","calculateValuesFittedWidth","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","PageIndexSelectorPropsType","PageIndexSelector","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","getIncrement","renderPrevButton","renderNextButton","prevButtonProps","nextButtonProps","SelectBoxProps","SelectBoxPropsType","LegacySelectBox","PageSizeSmallProps","PageSizeSmallPropsType","PageSizeSmall","PageSizeLargePropsType","PageSizeLarge","onPageSizeChange","pageSizesText","processedPageSize","PageSizeSelectorPropsType","PageSizeSelector","htmlRef","normalizedPageSizes","PagerContentProps","PagerContent","widgetRootElementRef","createFakeInstance","keyboardAction","_this$props$onKeyDown","_this$props","_registerKeyboardAction","infoVisible","pageIndexSelectorVisible","normalizedDisplayMode","pagesContainerVisible","pagesContainerVisibility","Pager","newPageSize","GridPagerWrapper","PagerComponent","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","getPager","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","pagerModule","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","_isShown","isNextColumnResizingMode","columnsResizingReorderingModule","columnsSeparatorView","SeparatorView","_subscribeToCallback","_positionChanged","_tablePositionController","_unsubscribeFromCallback","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","blockSeparatorView","toOptions","draggingHeaderView","isDragging","_isDragging","_getDraggingPanelByPos","_dragOptions","draggingPanels","draggingPanel","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_getVisibleIndexObject","_columnsResizerViewController","dragHeader","isCommandColumn","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","moveHeader","getEventData","dragOptions","moveDeltaX","moveDeltaY","dockHeader","targetDraggingPanel","isVerticalOrientation","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","dropHeader","drop","trackerView","draggingHeader","isCustomGroupColumnPosition","checkIsCustomGroupColumnPosition","_pointCreated","wasOnlyCommandColumns","isColumnAfterExpandColumn","isFirstExpandColumn","sourceColumnReorderingDisabled","otherColumnsReorderingDisabled","_subscribeToEvents","nameDraggingPanel","subscribeToEvents","_unsubscribeFromEvents","_getSeparator","_columnsSeparatorView","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_draggingHeaderView","_headerPanelView","_columnChooserView","allowDrop","headersView","hasTargetVisibleIndex","tablePosition","diffOffsetTop","columnsHeadersHeight","columnsResizerController","_pagerView","targetPoint","_isHeadersRowArea","headersRowHeight","_isRtlParentStyle","_$parentContainer","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","_getTargetPoint","currentX","_moveSeparator","columnsSeparatorWidth","parentOffset","parentOffsetLeft","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","_previousParentOffset","_isReadyResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_pointsByColumns","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","needUpdate","resizingInfo","nextColumn","oldColumnWidth","Ft","nextMinWidth","nextCellWidth","needCorrectionNextCellWidth","cellWidth","allColumnsHaveWidth","totalPercent","setColumnWidth","hasScroll","_subscribesToCallbacks","_unsubscribeFromCallbacks","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","compareByReference","lastArgs","compareByValue","createCacheFunc","firstArgs","firstResult","originFunc","compareFunc","argsEquals","MEMOIZE_DEFAULT_OPTIONS","compareType","memoize","cachedFunc","ROWS_VIEW_CLASS","FREESPACE_ROW_CLASS","MASTER_DETAIL_CELL_CLASS","COMMAND_EXPAND_CLASS","COMMAND_CELL_SELECTOR","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","_isRowEditMode","keyboardNavigationModule","keyboardNavigation","enterKeyAction","enterKeyDirection","editOnKeyPress","_selectionController","_focusController","_adaptiveColumnsController","_memoFireFocusedCellChanged","_memoFireFocusedRowChanged","focusedHandlerWithContext","focusedHandler","renderCompletedWithContext","rowsViewFocusHandlerContext","rowsViewFocusHandler","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","initViewHandlers","initDocumentHandlers","setupFocusedView","_isNeedScroll","_focusedView","isRelatedTargetInRowsView","isLink","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","isElementDefined","isCell","needSetFocusPosition","_updateFocusedCellPosition","subscribeToRowsViewFocusEvent","$rowsView","unsubscribeFromRowsViewFocusEvent","isFocusedViewCorrect","isFocusedElementCorrect","initPointerEventHandler","initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","unsubscribeFromPointerEvent","unsubscribeFromKeyDownEvent","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","_applyTabIndexToElement","pointerEventName","k$","_pointerEventAction","subscribeToPointerEvent","clickSelector","_pointerEventHandler","_keyDownListener","subscribeToKeyDownEvent","isRowFocusType","focusType","isCellFocusType","setRowFocusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","rowHeight","isPageUp","pageStep","_isVirtualScrolling","isFocusedRowElement","_getElementType","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","_getHorizontalScrollPositionOffset","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","nextCellInfo","_getNextCellByTabKey","_getColumnByCellElement","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","isEditorCell","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","needExpandGroupRow","needExpandMasterDetailRow","needExpandAdaptiveRow","isNotContinuation","toggleExpandAdaptiveDetailRow","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","_isCellValid","$nextCell","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","activeElementSelector","focusedRowEnabled","_isCellElement","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","disableFocus","isNotFocusedRow","focusedView","isRowFocus","isGroupFooterRow","isRenderView","_needFocusEditingCell","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","cellEditModeHasChanges","isNewRowBatchEditMode","setFocusedCellPosition","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","isFixedColumnIndexOffsetRequired","_applyColumnIndexBoundaries","renderFocusState","restoreFocusableElement","newRowIndex","_getNewPositionByCode","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","visibleColumnsCount","_isCellByPositionValid","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isShowWhenGrouped","isDataCell","GridCoreKeyboardNavigationDom","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","isEditResultDeferred","isDeferred","editResultDeferred","waitTemplatesDeferred","_editingCellHandler","$inputElement","inputEvent","_getKeyPressInputValue","$widgetContainer","inputCurrentValue","fireRowEvent","newColumnIndex","prevColumnIndex","_fireFocusedCellChanged","localRowIndex","$newFocusedRow","prevFocusedRowIndex","loadingOperations","_fireFocusedRowChanged","focusedRowIndex","getFocusedRowIndexByKey","$editForm","$masterDetailCell","_processNextCellInMasterDetail","_$cell","_processCanceledEditCellPosition","isCanceled","updateFocusedRowIndex","lastVisibleIndex","_keyboardController","isMobile","_triggerPointerDownEventHandler","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","hasInsertsOrRemoves","shouldPreventScroll","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","isCellInHeaderRow","_hideVisibleCellInView","rowsViewFocusOutHandlerContext","rowsViewFocusOutHandler","translateFocusIfNeed","makeScrollableFocusableIfNeed","needTranslateFocus","isScrollableNeedFocusable","isFirstCellFixed","firstCellHasTabIndex","notFixedCellIsTarget","_$firstNotFixedCell","getFirstNotFixedCell","isNeedFocusable","hasScrollable","hasFixedTable","_fixedTableElement","isCellsRendered","depth","depthFirstSearch","aggregator","aggregators","skipEmptyValues","_groupLevel","_totalAggregates","totalAggregates","normalizeAggregate","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","aggregates","isCount","_accumulate","_seed","_finalize","seedFn","stepFn","finalizeFn","innerNode","aggregateIndex","fin","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","totalItem","getGroupAggregates","recalculateWhileEditing","FooterView","footerItems","needUpdateScrollLeft","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","applyAddedData","removedData","updatedData","updatedItems","applyRemovedData","AggregateCalculator","sortGroupsBySummary","thenBy","sortedItems","sortGroupsBySummaryCore","totalSummary","totalItems","sortByGroupSummaryInfo","_isDataColumn","_isGroupFooterVisible","showInColumn","showInGroupFooter","isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","alignByColumn","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","_getSummaryCells","summaryTotalItems","_footerItems","oldSummaryCells","summaryCell","_prepareUnsavedDataSelector","_prepareAggregateSelector","_getAggregates","commonSkipEmptyValues","summaryProcess","totalValue","_addSortInfo","_findSummaryItem","summaryItemIndex","_getSummarySortByGroups","groupSummaryItems","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","getTotalSummaryValue","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","_renderGroupSummaryCellsCore","_getSummaryCellIndex","CONTENT_FIXED_CLASS","FIRST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","POINTER_EVENTS_NONE_CLASS","COMMAND_TRANSPARENT","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","_partialUpdateFixedTable","fixedTableElement","_partialUpdateFixedRow","needUpdateColspan","$fixedTable","$fixedDataRows","needPartialUpdate","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isSelectAllCell","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","positionTransparentColumn","getTransparentColumnElement","getFixedTableElement","synchronizeRows","isColumnWidthsSynced","isColumnWidthChanged","setFixedTableColumnWidths","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","_getRowVisibleColumns","columnFixingOptions","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","isHover","_getScrollDelay","scrollDelay","_fixedScrollTimeout","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollableTop","scrollableHeight","_updateFixedTablePosition","contentFixedClass","$contentFixedElement","$fixedTableElement","needFocus","vWidth","hWidth","$fixedContent","_getElasticScrollTop","elasticScrollTop","$scrollableContent","$scrollableContainer","maxScrollTop","_applyElasticScrolling","columnFixingModule","columnFixing","_pointsByFixedColumns","headerFixedTable","footerFixedTable","COLUMN_VIEWS","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","$adaptiveColumnButton","adaptiveColumnsController","focusCellHandler","adaptivityModule","columnHidingEnabled","onAdaptiveDetailRowPreparing","_getEditMode","_isItemModified","_renderFormViewTemplate","focusAction","updateForm","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","editFormRowIndex","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getAdaptiveDetailItems","_$itemContents","getItemContentByColumnIndex","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","_form","hasAdaptiveDetailRowExpanded","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","adaptiveCellTemplate","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","hidingColumnsQueueLength","hiddenColumnsLength","getDataCellElements","$adaptiveDetailItems","_updateColumnWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","_updateScrollableTimeoutID","expandRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","isCellOrBatchMode","lastProcessedIndexes","processedColumnCount","foreachColumnInfo","newInfo","columnInfo","cellColspan","setScrollPosition","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","getColumnPageSize","getTotalWidth","_fireColumnsChanged","_changedTimeout","_setScrollPositionCore","needColumnsChanged","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","columnsInfo","createColumnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","useSelectMode","splitButton","showArrowIcon","dropDownContentTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","$listContainer","_listOptions","_escHandler","_getKey","storeKey","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_actionClickAction","_fireSelectionChangedAction","previousItem","_fireItemClickAction","_actionItem","_actionButtonConfig","_getButtonGroupItems","_buttonGroupItemClick","isActionButton","_buttonGroupOptions","buttonContent","$firstIcon","$textContainer","$secondIcon","_popupOptions","_upDownKeyHandler","_tabHandler","_updateAriaAttributes","owns","_setButtonsAria","commonButtonAria","firstButtonAria","_getButtons","$buttonGroup","hasArrow","_getDisplayValue","_selectedItemKeyChanged","_updateButtonGroup","_actionButtonOptionChanged","newConfig","_selectModeChanged","_updateItemCollection","_updateKeyExpr","emptyCell","defaultSetter","DATAGRID_EXPORT_BUTTON_CLASS","initialColumnWidthsByColumnIndex","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getGroupValue","_correctCellIndex","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","getHeaderStyles","bold","getGroupRowStyle","getColumnStyles","columnStyles","getStyles","_getTotalCellStyleId","getStyleId","getHeaderRowCount","isTotalCell","getColumnsByAllRows","getColumnsWidths","getGroupLevel","getCellType","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","getCellData","isExcelJS","cellSourceData","correctedCellIndex","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","getCellMerging","exportColspan","getFrozenArea","_getEmptyCell","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","prepareItems","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isCommand","needLoadItemsOnExportingSelectedItems","throwWarningIfNoOnExportingEvent","hasOnExporting","getDataProvider","columnsLastRowVisibleColumns","DataProvider","_isSelectedRows","callbackList","editingButtonsUpdated","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","_needDisableExportButton","toolbarButtonOptions","_widgetOptions","exportAllIcon","_isExportButtonVisible","isDataColumnsInvisible","hasUnsavedChanges","ROW_FOCUSED_CLASS","FOCUSED_ROW_SELECTOR","FocusController","_focusRowByIndex","_focusRowByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","isRowFocused","_isLocalRowIndex","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","focusModule","autoNavigateToFocusedRow","focusedColumnIndex","sortByKey","isLocalOperations","notSortedKeys","notSortedKey","isPartialUpdateWithDeleting","_updatePageIndexes","_updateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","isVirtualScrolling","pagingWithoutVirtualScrolling","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","isNewRowTempKey","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","_generateBooleanFilter","sortInfo","isRemoteSorting","safeValue","getSelector","UiGridCoreFocusUtils","booleanFilter","sortFilter","keyPart","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","currentScrollTop","isRowClick","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","isGroupKey","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","PLACEHOLDER_CLASS","isElementVisible","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_unsubscribeFromSourceScroll","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","lastPointPosition","freeSize","_getItems","$sortable","sortable","_allowDrop","$targetDraggable","getScrollableBoundary","itemPoint","cancelAdd","cancelRemove","isSourceDraggable","_fireAddEvent","_moveItem","_fireReorderEvent","cursorPosition","_updatePlaceholderPosition","_createPlaceholder","$placeholderContainer","_allowReordering","_isValidPoint","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","positionPropName","_normalizeToIndex","skipOffsetting","isAnotherDraggable","_getActualFromIndex","placeholderElement","_makeWidthCorrection","_$scrollable","scrollableWidth","overflowLeft","overflowRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","clientRect","showPlaceholder","_moveItems","_updateDragSourceClass","_makeLeftCorrection","prevVisibleItemElement","isLastVerticalPosition","outerPlaceholderHeight","_getDraggableElementSize","prevToIndex","prevPositions","animationConfig","RowDraggingExtender","_updateHandleColumn","rowDragging","isHandleColumnVisible","_getHandleTemplate","currentSortableName","anotherSortableName","togglePointerEventsStyle","_sortableFixed","rowsViewOffset","onDraggableElementShown","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","_updateSortable","offsetDiff","_previousOffset","_sortable","_getDraggableGridOptions","onRowPrepared","$dataGridContainer","GridCoreRowDraggingDom","rowDraggingModule","gvt","DxDataGridComponent","sortByGroupSummaryInfoChildren","DxDataGrid","onCellDblClick","onCellHoverChanged","onCellPrepared","onEditCanceled","onEditCanceling","onEditingStart","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitNewRow","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onToolbarPreparing","allowColumnReorderingChange","allowColumnResizingChange","autoNavigateToFocusedRowChange","cacheEnabledChange","cellHintEnabledChange","columnAutoWidthChange","columnChooserChange","columnFixingChange","columnHidingEnabledChange","columnMinWidthChange","columnResizingModeChange","columnsChange","columnWidthChange","customizeColumnsChange","dataRowTemplateChange","editingChange","errorRowEnabledChange","filterBuilderChange","filterBuilderPopupChange","filterPanelChange","filterRowChange","filterSyncEnabledChange","focusedColumnIndexChange","focusedRowEnabledChange","focusedRowIndexChange","focusedRowKeyChange","groupingChange","groupPanelChange","headerFilterChange","highlightChangesChange","keyboardNavigationChange","loadPanelChange","masterDetailChange","pagerChange","pagingChange","remoteOperationsChange","renderAsyncChange","rowAlternationEnabledChange","rowDraggingChange","rowTemplateChange","scrollingChange","searchPanelChange","selectedRowKeysChange","selectionChange","selectionFilterChange","showBordersChange","showColumnHeadersChange","showColumnLinesChange","showRowLinesChange","sortByGroupSummaryInfoChange","sortingChange","stateStoringChange","summaryChange","syncLookupFilterValuesChange","toolbarChange","twoWayBindingEnabledChange","wordWrapEnabledChange","DxDataGridModule","DxDateBoxComponent","DxDateBox","adaptivityEnabledChange","calendarOptionsChange","dateOutOfRangeMessageChange","displayFormatChange","intervalChange","invalidDateMessageChange","pickerTypeChange","showAnalogClockChange","todayButtonTextChange","useMaskBehaviorChange","DxDateBoxModule","getDeserializedDate","isSameDates","isSameDateArrays","previousStartDate","previousEndDate","dateRangeBox","_this$_widget","_dateSelectedCounter","getStartDateBox","newDateBoxValue","getDateRangeBox","_isEndDateActiveElement","_isStartDateActiveElement","disabledDatesValue","multiView","getCurrentSelection","_shouldPreventFocusChange","_isInstantlyMode","_getCalendarCurrentSelection","_moveFocusToNextInput","targetDateBox","getEndDateBox","setActiveStartDateBox","setActiveEndDateBox","bwe","RangeCalendarStrategy","_renderInputClickEvent","_processValueChange","_getDateRangeBox","_isStartDateBox","_popupContentIdentifier","_this$_strategy$dateR","_this$_strategy$dateR2","startDateInput","endDateInput","monthDifference","$dateRangeBox","isTargetOutOfDateRangeBox","$beforeButtonsContainer","_skipIsValidOptionChange","TEXTEDITOR_LABEL_STATIC_CLASS","TEXTEDITOR_LABEL_FLOATING_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","endDateOutOfRangeMessage","disableOutOfRangeSelection","endDateInputAttr","endDateLabel","endDateName","endDatePlaceholder","endDateText","invalidStartDateMessage","invalidEndDateMessage","startDateInputAttr","startDateLabel","startDateName","startDateOutOfRangeMessage","startDatePlaceholder","startDateText","_internalValidationErrors","SA","_createOpenAction","_raiseOpenAction","_createCloseAction","_raiseCloseAction","_createEventAction","_raiseAction","_toggleDropDownEditorActiveClass","_toggleEditorLabelClass","_renderEndDateBox","_renderStartDateBox","_toggleEmptinessState","_renderButtonsContainer","isLabelVisible","_$startDateBox","_startDateBox","MultiselectDateBox","_getStartDateBoxConfig","_$endDateBox","_endDateBox","_getEndDateBoxConfig","_$separator","_renderPreventBlurOnSeparatorClick","startDateField","endDateField","_getPickerType","_getRestErrors","allErrors","partialErrors","prevError","_syncValidationErrors","newPartialErrors","previousPartialErrors","otherErrors","_getDateBoxConfig","dateBoxConfig","_dateRangeBoxInstance","_options$dropDownOpti","_getSerializedDates","_updateDateBoxesValue","startDateBox","endDateBox","newStartDate","newEndDate","oldStartDate","oldEndDate","$startDateInput","_isActiveElement","ariaOwns","_this$_$startDateBox","_this$_$endDateBox","_this$_$separator","_shouldSkipIsValidChange","internalValidationErrors","sortDatesArray","DateRangeBox","DxDateRangeBoxComponent","DxDateRangeBox","disableOutOfRangeSelectionChange","endDateChange","endDateInputAttrChange","endDateLabelChange","endDateNameChange","endDateOutOfRangeMessageChange","endDatePlaceholderChange","endDateTextChange","invalidEndDateMessageChange","invalidStartDateMessageChange","multiViewChange","startDateChange","startDateInputAttrChange","startDateLabelChange","startDateNameChange","startDateOutOfRangeMessageChange","startDatePlaceholderChange","startDateTextChange","DxDateRangeBoxModule","directionPostfixes","AnimationPresetCollection","_registeredPresets","resetToDefaults","defaultAnimationDuration","defaultAnimationDelay","defaultStaggerAnimationDuration","defaultStaggerAnimationDelay","defaultStaggerAnimationStartDelay","_getPresetOptionName","animationName","_createAndroidSlideAnimationConfig","throughOpacity","widthMultiplier","createBaseConfig","configModifier","_createOpenDoorConfig","extraCssClasses","_createWinPopConfig","baseConfig","registerDefaultPresets","newRegisteredPresets","preset","registerPreset","customRules","getPreset","animationPresets","DX_ANIMATING_CLASS","TransitionExecutor","_accumulatedDelays","_createAnimations","_prepareElementAnimationConfig","_createAnimation","presets","_completePromise","_startAnimations","_stopAnimations","_clearAnimations","animationDeferreds","PENDING_RENDERING_CLASS","PENDING_RENDERING_MANUAL_CLASS","PENDING_RENDERING_ACTIVE_CLASS","DeferRendering","showLoadIndicator","renderWhen","staggerItemSelector","transitionExecutor","_initElement","_initRender","_$initialContent","doRender","_renderDeferredContent","_setLoadingState","_abortRenderTask","_renderTask","shownArgs","_isElementInViewport","animatePromise","renderedArgs","_setRenderedState","hasCustomLoadIndicator","_showLoadIndicator","_$loadIndicator","_renderOrAnimate","renderContent","DxDeferRenderingModule","DiagramDefault","Diagram","EventDispatcher","getDiagram","raiseBarCommandExecuted","parameter","getCommandKeys","setItemValue","setItemEnabled","setItemVisible","setEnabled","setItemSubItems","_getKeys","_createOnPointerUpAction","_attachPointerUpEvent","_getPointerUpElements","_onPointerUpAction","DiagramMenuHelper","getContextMenuItemTemplate","rootCommand","_menuHasCheckedItems","getContextMenuCssClass","onContextMenuItemClick","_parameter","getItemCommandParameter","getItemValue","getItemOptionText","indexPath","parentItemOptionText","_getParentItemOptionText","_originalItemsInfo","indexPathCorrection","_getItemOptionTextCore","parentIndexPath","getParameter","updateContextMenuItems","itemOptionText","rootCommandKey","updateContextMenuItemVisible","updateContextMenuItemValue","_setContextMenuHasCheckedItems","DIAGRAM_MOBILE_TOOLBAR_COLOR_BOX_OPENED_CLASS","DiagramBar","_commands","_setItemValue","_setItemEnabled","_setEnabled","_setItemSubItems","canUpdate","showingSubMenu","_updateButtonValue","_updateContextMenuItemValue","setItems","_updateContextMenuItems","_updateEditorItems","DiagramToolbarItemHelper","rootWidget","_indexPath","_rootCommandKey","_rootWidget","_getItemOptionText","rootEnabled","_hasEnabledCommandItems","DiagramPanel","_itemHelpers","_commandContextMenus","_contextMenuList","_valueConverters","DiagramToolbarBar","_createOnInternalCommand","_createOnCustomCommand","_createOnSubMenuVisibilityChangingAction","_getCommands","$toolbarContent","beforeCommands","centerCommands","afterCommands","_prepareToolbarItems","_executeCommand","_toolbarInstance","_createItem","_createItemOptions","_createItemActionOptions","getCommandValue","getEditorValue","getEditorDisplayValue","iconUnchecked","iconChecked","_onItemInitialized","_onItemContentReady","_createSelectBoxItemOptions","_createTextBoxItemOptions","_createColorBoxItemOptions","_createTextEditorItemOptions","_toggleContextMenu","_contextMenu","cm","_addItemHelper","isTouchMode","_isTouchMode","_dropDownButtonElement","_showingSubMenu","_onSubMenuVisibilityChangingAction","_onContextMenuInitialized","_onContextMenuDisposing","Browser","TouchUI","_addContextMenuHelper","helper","subItem","itemIndexPath","DiagramToolbarSubItemHelper","_updateLocked","valueConverter","_onInternalCommandAction","_onCustomCommandAction","isMobileView","buttonStylingMode","buttonType","skipAdjustSize","setCommandChecked","setCommandEnabled","SEPARATOR","SEPARATOR_COMMAND","CSS_CLASSES","DiagramCommandsManager","SHOW_TOOLBOX_COMMAND_NAME","SHOW_PROPERTIES_PANEL_COMMAND_NAME","getAllCommands","DiagramCommand","_allCommands","exportSvg","ExportSvg","exportPng","ExportPng","exportJpg","ExportJpg","undo","Undo","menuIcon","redo","Redo","cut","Cut","Copy","paste","PasteInPosition","SelectAll","Delete","fontName","FontName","FontSize","Bold","italic","Italic","underline","Underline","FontColor","StrokeColor","StrokeWidth","lineStyle","StrokeStyle","fillColor","FillColor","textAlignLeft","TextLeftAlign","textAlignCenter","TextCenterAlign","textAlignRight","TextRightAlign","Lock","Unlock","bringToFront","BringToFront","sendToBack","SendToBack","insertShapeImage","InsertShapeImage","editShapeImage","EditShapeImage","deleteShapeImage","DeleteShapeImage","connectorLineType","ConnectorLineOption","connectorLineStart","ConnectorStartLineEnding","connectorLineEnd","ConnectorEndLineEnding","layoutTreeTopToBottom","AutoLayoutTreeVertical","layoutTreeBottomToTop","AutoLayoutTreeVerticalBottomToTop","layoutTreeLeftToRight","AutoLayoutTreeHorizontal","layoutTreeRightToLeft","AutoLayoutTreeHorizontalRightToLeft","layoutLayeredTopToBottom","AutoLayoutLayeredVertical","layoutLayeredBottomToTop","AutoLayoutLayeredVerticalBottomToTop","layoutLayeredLeftToRight","AutoLayoutLayeredHorizontal","layoutLayeredRightToLeft","AutoLayoutLayeredHorizontalRightToLeft","Fullscreen","units","ViewUnits","simpleView","ToggleSimpleView","showGrid","ShowGrid","snapToGrid","SnapToGrid","gridSize","GridSize","PageSize","pageOrientation","PageLandscape","pageColor","PageColor","ZoomLevel","FitToScreen","FitToWidth","AutoZoomToContent","AutoZoomToWidth","toolbox","propertiesPanel","getMainToolbarCommands","excludeCommands","allCommands","mainToolbarCommands","_getPreparedCommands","_getDefaultMainToolbarCommands","_prepareToolbarCommands","_defaultMainToolbarCommands","getHistoryToolbarCommands","historyToolbarCommands","_getDefaultHistoryToolbarCommands","_defaultHistoryToolbarCommands","getViewToolbarCommands","viewToolbarCommands","_getDefaultViewToolbarCommands","_defaultViewToolbarCommands","getPropertiesToolbarCommands","propertiesCommands","_getDefaultPropertiesToolbarCommands","_defaultPropertiesToolbarCommands","_getDefaultPropertyPanelCommandGroups","_defaultPropertyPanelCommandGroups","_preparePropertyPanelGroups","subGroups","subCommands","getPropertyPanelCommandTabs","commandGroups","getContextMenuCommands","contextMenuCommands","_getDefaultContextMenuCommands","_prepareContextMenuCommands","_defaultContextMenuCommands","internalCommand","_command","_isValidCommand","_cloneCommand","mimeString","_getBlobByDataURI","byteString","p0t","DiagramToolbar","f0t","_getExcludeCommands","_0t","C0t","_setItemVisible","_createOnVisibilityChangingAction","_createOnItemClickAction","_tempState","_commandToIndexMap","DiagramContextMenuBar","_fillCommandToIndexMap","_$contextMenuTargetElement","$contextMenu","_contextMenuInstance","DiagramContextMenu","isTouchBarMode","_isTouchBarMode","_onItemClick","_inOnShowing","_onVisibilityChangingAction","widthCorrection","processed","_onItemClickAction","commandIndexPath","DIAGRAM_CONTEXT_TOOLBOX_CONTENT_CLASS","_onShownAction","_popoverPositionData","calcMaxHeight","_$popoverTargetElement","$popoverElement","_popoverInstance","targetDiv","posRect","dxScrollView","P0t","_createOnGetContentOption","_createOnHiddenOption","_$popupElement","_onHiddenAction","_getOkToolbarItem","_getCancelToolbarItem","_commandParameter","_onGetContentAction","setFieldProperty","isInitialization","initProperties","_initProperties","foreachTreeAsyncDate","parentAtFirst","isChildrenProcessing","foreachTreeFunc","createForeachTreeAsyncHandler","childrenDeferred","foreachTree","createForeachTreeFunc","foreachTreeAsync","valueA","valueB","aIsDefined","bIsDefined","childrenField","foreachDataLevel","values1","values2","expandLevel","headerName","oppositePath","columnExpandedPaths","rowExpandedPaths","fieldsList","fieldsDataType","createGroupFields","parseFields","getFieldsDataType","localizationDate","dayOfWeek","storeDrillDownMixin","createDrillDownDataSource","descriptions","getDrillDownItems","createCustomStoreMethod","insertAdjacentHTML","lastElementChild","sendRequest","coreAjaxUtils","findField","getCompareFunction","createPath","mergeArraysByMaxValue","getExpandedLevel","discoverObjectFields","setDefaultFieldValueFormatting","getFiltersByPath","capitalizeFirstLetter","N0t","_createOnCreateDiagramAction","$scrollViewWrapper","_raiseOnScroll","_onCreateDiagramAction","setScroll","_raiseOnScrollWithoutPoint","offsetScroll","Size","getScrollContainer","getScrollBarWidth","DiagramToolboxManager","getDefaultGroups","_groups","general","flowchart","orgChart","containers","getGroups","defaultGroups","_toggleAriaAttributes","_toggleAriaDescription","_contentId","FB","Ywe","_createOnVisibilityChangedAction","$popupElement","_getPopupClass","_getPopupOptions","_updatePopupVisible","_getPopupContent","_getVerticalPaddingsAndBorders","_getHorizontalPaddingsAndBorders","_getPopupWidth","_getPopupMaxWidth","_getPopupMinWidth","_getPopupHeight","_getPopupMaxHeight","_getPopupMinHeight","_getPopupPosition","_getPopupContainer","_getPopupSlideAnimationObject","_getPopupAnimation","_onVisibilityChangedAction","DIAGRAM_TOOLTIP_DATATOGGLE","DiagramFloatingPanel","_toolboxes","_filterText","_createOnShapeCategoryRenderedAction","_createOnFilterChangedAction","panelHeight","_updateElementWidth","_renderSearchInput","_searchInput","$panel","_renderScrollView","updateMaxHeight","_accordion","_onInputChanged","$accordion","_renderAccordion","_getAccordionDataSource","toolboxGroups","onTemplate","$toolboxElement","_onShapeCategoryRenderedAction","dataToggle","_onFilterChangedAction","filteringToolboxes","_createTooltips","$tooltip","_updateScrollAnimateSubscription","updateTooltips","$tooltipContainer","sCt","_commandTabs","_createOnCreateToolbar","_createOnSelectedGroupChanged","_toolbars","_selectedToolbar","_hasTabPanel","_renderTabPanel","_renderTabContent","_tabPanel","_onSelectedGroupChangedAction","_firstScrollView","_scrollViewHeight","isSingleTab","_renderTabInnerContent","_renderTabGroupContent","_onCreateToolbarAction","getActiveToolbars","dCt","commandOptions","SwitchAutoZoom","AutoZoomMode","FitContent","Disabled","DiagramUnit","In","Cm","Px","_updateLock","isUpdateLocked","TrackBar","_setRangeStyles","_rangeStylesConfig","_$bar","_$range","_currentRatio","_needPreventAnimation","PROGRESSBAR_INDETERMINATE_SEGMENT","ProgressBar","statusFormat","showStatus","onComplete","statusPosition","_renderStatus","_createCompleteAction","_toggleStatus","_completeAction","_$status","_renderIndeterminateState","_$segmentContainer","splitPosition","_toggleIndeterminateState","_setStatus","statusText","FILEUPLOADER_DRAGOVER_CLASS","FILEUPLOADER_FILE_CONTAINER_CLASS","FILEUPLOADER_FILE_NAME_CLASS","FILEUPLOADER_FILE_SIZE_CLASS","FILEUPLOADER_BUTTON_CLASS","FILEUPLOADER_BUTTON_CONTAINER_CLASS","FILEUPLOADER_UPLOAD_BUTTON_CLASS","isFormDataSupported","FormData","$selectButton","_selectButton","chunkSize","selectButtonText","uploadButtonText","accept","uploadUrl","allowCanceling","showFileList","dialogTrigger","dropZone","readyToUploadMessage","uploadedMessage","uploadFailedMessage","uploadAbortedMessage","uploadMode","uploadMethod","uploadHeaders","uploadCustomData","onBeforeSend","onUploadStarted","onUploaded","onFilesUploaded","onProgress","onUploadError","onUploadAborted","onDropZoneEnter","onDropZoneLeave","allowedFileExtensions","maxFileSize","minFileSize","invalidFileExtensionMessage","invalidMaxFileSizeMessage","invalidMinFileSizeMessage","extendSelection","uploadFile","uploadChunk","abortUpload","useNativeInputClick","useDragOver","nativeDropSupported","_uploadButtonType","_buttonStylingMode","isLabelTextDefined","_shouldDragOverBeRendered","_initFileInput","_initLabel","_setUploadStrategy","_createFiles","_createBeforeSendAction","_createUploadStartedAction","_createUploadedAction","_createFilesUploadedAction","_createProgressAction","_createUploadErrorAction","_createUploadAbortedAction","_createDropZoneEnterAction","_createDropZoneLeaveAction","CustomChunksFileUploadStrategy","DefaultChunksFileUploadStrategy","CustomWholeFileUploadStrategy","DefaultWholeFileUploadStrategy","_uploadStrategy","_isCustomClickEvent","_$fileInput","_inputChangeHandler","_doPreventInputChange","files","_getFiles","_uploadFiles","_shouldFileListBeExtended","fileList","_getFile","fileData","targetFileValue","_files","_$inputLabel","_updateInputLabelText","correctedValue","_isInteractionDisabled","_renderInputWrapper","_renderSelectButton","_renderInputContainer","_renderUploadButton","_preventRecreatingFiles","_activeDropZone","_attachDragEventHandlers","_$inputWrapper","_renderFiles","_createFileProgressBar","progressBar","_createProgressBar","$file","_initStatusMessage","_ensureCancelButtonInitialized","_setStatusMessage","$statusMessage","_getUploadAbortedStatusMessage","_preventFilesUploading","_createFile","_validateFile","isValidFileExtension","_validateFileExtension","isValidMinSize","_validateMinFileSize","isValidMaxSize","_validateMaxFileSize","allowedExtensions","allowedTypes","_getAllowedFileTypes","_isFileTypeAllowed","fileSize","_beforeSendAction","_uploadStartedAction","_uploadedAction","_filesUploadedAction","_progressAction","_uploadAbortedAction","_uploadErrorAction","_dropZoneEnterAction","_dropZoneLeaveAction","loadedSize","onAbort","onLoad","onError","onLoadStart","_resetFileState","isAborted","uploadStarted","isStartLoad","chunksData","_$filesContainer","_renderFile","_toggleFileUploaderEmptyClassName","_updateFileNameMaxWidth","$fileContainer","_renderFileButtons","$fileInfo","_getFileSize","_createValidationElement","cancelButtonsCount","uploadButtonsCount","filesContainerWidth","$buttonContainer","buttonsWidth","$fileSize","prevFileSize","fileSizeWidth","$cancelButton","_getCancelButton","$uploadButton","_getUploadButton","cancelButton","_removeFile","uploadButton","_uploadFile","_file$$file","removeFile","_hasInvalidFile","_selectFileDialogHandler","_selectButtonClickHandler","_attachSelectFileDialogHandler","_detachSelectFileDialogHandler","_uploadButton","_uploadButtonClickHandler","_$inputContainer","_selectButtonInputTemplate","_detachDragEventHandlers","isCustomTarget","_dragOverHandler","_useInputForDrop","_getDropZoneElement","targetList","dropZoneElement","_shouldRaiseDragOver","_tryToggleDropZoneActive","isMouseOverElement","dataTransfer","dropEffect","_shouldRaiseDragLeave","classAction","_areAllFilesLoaded","_isError","_handleAllFilesUploaded","_recalculateProgress","acceptSting","allowedType","upload","_updateProgressBar","loadedFileData","loaded","segmentSize","currentSegmentSize","bytesLoaded","bytesTotal","_updateTotalProgress","totalFilesSize","totalLoadedFilesSize","_getProgressValue","_setLoadedSize","hideCancelButton","_getTotalFilesSize","_totalFilesSize","_getTotalLoadedFilesSize","_totalLoadedFilesSize","correctPseudoElements","dragEventDelta","beforeHeight","afterHeight","eventX","_getEventX","eventY","_getEventY","_getTouchEventX","clientX","_getDocumentScrollLeft","_getTouchEventY","clientY","_getDocumentScrollTop","touchPoint","targetTouches","_updateReadOnlyState","_file$cancelButton","_updateHoverState","_this$_selectButton","_this$_uploadButton","_file$uploadButton","_file$cancelButton2","_file$uploadButton2","_file$cancelButton3","read","createBlobResult","isCompleted","sliceFile","startPos","webkitSlice","fileUploader","_prepareFileBeforeUpload","_uploadCore","_isCustomCallback","_createUploadArgument","_handleFileError","_beforeSend","xhr","uploadInfo","_handleProgress","_isProgressStarted","_handleProgressCore","_file$progressBar","_onUploadStarted","_onLoadedHandler","_onErrorHandler","_onAbortHandler","_onProgressHandler","_shouldHandleError","_isStatusError","_getLoadedData","_extendFormData","formDataEntries","entryName","FileUploadStrategyBase","realFile","loadedBytes","blobReader","FileBlobReader","_getFileChunksCount","customData","_sendChunk","jsFile","chunk","currentChunk","_sendChunkCore","_tryRaiseStartLoad","_getEvent","_createChunksInfo","bytesUploaded","chunkCount","chunkBlob","chunkIndex","ChunksFileUploadStrategyBase","headers","beforeSend","onprogress","onloadstart","onabort","_createFormData","blobName","FileName","Index","TotalCount","FileSize","FileType","FileGuid","chunksInfo","WholeFileUploadStrategyBase","FileUploader","DiagramDialogManager","getConfigurations","dialogList","onGetContent","getChangeImageDialogContent","$uploader","reader","FileReader","readAsDataURL","getDialogParameters","ItemsOptionBase","diagramWidget","_diagramWidget","_resetCache","internalChanges","internalChange","externalChanges","_reloadContentByChanges","_onDataSourceChanged","_showLoadingIndicator","_hideLoadingIndicator","_prepareData","dataObj","errorCallback","_getStore","_getStoreKey","findItem","_getItemByKey","isExternalChanges","internalKey","_getInternalKey","_ensureCache","_fillCache","_getItemsExpr","containerChildrenExpr","_getContainerChildrenExpr","$Ct","ItemsOption","_createOptionGetter","YCt","DIAGRAM_CLASS","DIAGRAM_FLOATING_TOOLBAR_CONTAINER_CLASS","DIAGRAM_NAMESPACE","FULLSCREEN_CHANGE_EVENT_NAME","IE_FULLSCREEN_CHANGE_EVENT_NAME","WEBKIT_FULLSCREEN_CHANGE_EVENT_NAME","MOZ_FULLSCREEN_CHANGE_EVENT_NAME","_updateDiagramLockCount","toggleFullscreenLock","_initDiagram","_createCustomCommand","_isMobileScreenSize","_mainToolbar","_renderMainToolbar","$contentWrapper","_historyToolbar","_historyToolbarResizeCallback","_isHistoryToolbarVisible","_renderHistoryToolbar","_propertiesToolbar","_propertiesToolbarResizeCallback","_isPropertiesPanelEnabled","_renderPropertiesToolbar","_viewToolbar","_viewToolbarResizeCallback","_renderViewToolbar","_toolbox","_toolboxResizeCallback","_isToolboxEnabled","_renderToolbox","_propertiesPanel","_propertiesPanelResizeCallback","_renderPropertiesPanel","_diagramInstance","_renderContextMenu","_contextToolbox","_renderContextToolbox","_renderDialog","DiagramScrollView","onCreateDiagram","createDocument","_setCustomCommandChecked","_isPropertiesPanelVisible","_isToolboxVisible","_createOptionsUpdateBar","_processDiagramResize","_bindDiagramData","isMobileScreenSize","_captureFocus","captureFocus","_captureFocusOnTimeout","_captureFocusTimeout","_killCaptureFocusTimeout","notifyBarCommandExecuted","_registerToolbar","_registerBar","registerBar","_getToolbarBaseOptions","onSubMenuVisibilityChanging","updateBarItemsState","onPointerUp","_onPanelPointerUp","onInternalCommand","_onInternalCommand","onCustomCommand","_onCustomCommand","_customCommandAction","$toolbarWrapper","DiagramMainToolbar","isReadOnlyMode","DiagramHistoryToolbar","_updateHistoryToolbarPosition","DIAGRAM_FLOATING_PANEL_OFFSET","$toolBox","_getToolboxBounds","DiagramToolbox","showSearch","_getToolboxGroups","toolboxWidth","onShapeCategoryRendered","createToolbox","shapeIconSpacing","shapeIconCountInRow","shapeIconAttributes","onFilterChanged","applyToolboxFilter","onVisibilityChanging","_historyToolbarZIndex","onVisibilityChanged","_textInputStarted","_getViewToolbarYOffset","DiagramViewToolbar","_updateViewToolbarPosition","DiagramPropertiesToolbar","_updatePropertiesToolbarPosition","$propertiesPanel","DiagramPropertiesPanel","propertyTabs","onCreateToolbar","_updatePropertiesPanelGroupBars","onSelectedGroupChanged","diagramContextMenuModule","_onBeforeCommandExecuted","$contextToolbox","DiagramContextToolbox","$toolboxContainer","isTextGroup","createContextToolbox","shapeType","tb","dialogParameters","_showDialog","$dialogElement","_dialogInstance","DiagramDialog","getCommand","DiagramControl","_raiseDataChangeAction","onEdgeInserted","_raiseEdgeInsertedAction","onEdgeUpdated","_raiseEdgeUpdatedAction","onEdgeRemoved","_raiseEdgeRemovedAction","onNodeInserted","_raiseNodeInsertedAction","onNodeUpdated","_raiseNodeUpdatedAction","onNodeRemoved","_raiseNodeRemovedAction","onToolboxDragStart","_raiseToolboxDragStart","onToolboxDragEnd","_raiseToolboxDragEnd","onTextInputStart","_raiseTextInputStart","onTextInputEnd","_raiseTextInputEnd","onToggleFullscreen","_onToggleFullScreen","onShowContextMenu","_onShowContextMenu","onHideContextMenu","_onHideContextMenu","onShowContextToolbox","_onShowContextToolbox","onHideContextToolbox","_onHideContextToolbox","onNativeAction","notifyItemClick","_raiseItemClickAction","notifyItemDblClick","_raiseItemDblClickAction","notifySelectionChanged","_raiseSelectionChanged","onRequestOperation","_raiseRequestEditOperation","_updateEventSubscriptionMethods","_updateDefaultItemProperties","_updateEditingSettings","_updateShapeTexts","_updateUnitItems","_updateFormatUnitsMethod","_updateUnitsState","_updatePageSizeItemsState","_updatePageSizeState","_updatePageOrientationState","_updatePageColorState","_updateViewUnitsState","_updateShowGridState","_updateSnapToGridState","_updateGridSizeState","_updateZoomLevelState","_updateSimpleViewState","_updateAutoZoomState","_updateFullscreenState","initMeasurer","_updateCustomShapes","_getCustomShapes","_refreshDataSources","optionsUpdateBar","DiagramOptionsUpdateBar","_deleteOptionsUpdateBar","cleanMarkup","_executeDiagramCommand","getNodeDataSource","_nodesOption","getEdgeDataSource","_edgesOption","_beginUpdateDiagram","_refreshNodesDataSource","_refreshEdgesDataSource","_endUpdateDiagram","NodesOption","EdgesOption","_getDiagramData","Export","_setDiagramData","keepExistingItems","Import","_getChangesKeys","_onRequestUpdateLayout","_requestLayoutUpdateAction","_createRequestLayoutUpdateAction","allowed","_createOptionSetter","_isBindingMode","lineOptionGetter","lineOptionSetter","startLineEndingGetter","startLineEndingSetter","endLineEndingGetter","endLineEndingSetter","containerChildrenGetter","containerChildrenSetter","ConnectorLineEnding","nodeDataSource","edgeDataSource","nodeDataImporter","setKey","getCustomData","setCustomData","getLocked","setLocked","getStyle","getStyleText","setStyleText","getZIndex","setZIndex","setType","getText","setText","getImage","setImage","getLeft","setLeft","getTop","setTop","getParentKey","setParentKey","getChildren","getContainerKey","setContainerKey","edgeDataImporter","getFrom","setFrom","getFromPointIndex","setFromPointIndex","getTo","setTo","getToPointIndex","setToPointIndex","setPoints","getLineOption","lineType","_getConnectorLineOption","setLineOption","Straight","Orthogonal","getStartLineEnding","lineEnd","_getConnectorLineEnding","setStartLineEnding","Arrow","OutlinedTriangle","FilledTriangle","None","getEndLineEnding","setEndLineEnding","layoutParameters","_getDataBindingLayoutParameters","BindDocument","applyLayout","_reloadContent","itemKeys","reloadContent","DataLayoutType","DataLayoutOrientation","layoutParametersOption","layoutType","_hasNodePositionExprs","Sugiyama","Vertical","Horizontal","skipPointIndices","autoSizeEnabled","_getAutoZoomValue","_updateAllCustomShapes","removeAllCustomShapes","customShapes","prevCustomShapes","removeCustomShapes","addCustomShapes","toolboxTemplateOption","toolboxTemplate","baseType","svgUrl","backgroundImageUrl","svgToolboxUrl","backgroundImageToolboxUrl","svgLeft","backgroundImageLeft","svgTop","backgroundImageTop","svgWidth","backgroundImageWidth","svgHeight","backgroundImageHeight","defaultWidth","defaultHeight","toolboxWidthToHeightRatio","allowResize","defaultText","allowEditText","textLeft","textTop","defaultImageUrl","allowEditImage","imageLeft","imageTop","connectionPoints","_nativeItemToDiagramItem","createToolboxTemplate","destroyTemplate","templateLeft","templateTop","templateWidth","templateHeight","keepRatioOnAutoSize","_getViewport","$viewPort","_changeNativeFullscreen","_prevParent","_prevFullScreenZIndex","_fullScreenZIndex","setModeOn","_inNativeFullscreen","_subscribeFullscreenNativeChanged","_unsubscribeFullscreenNativeChanged","_setNativeFullscreen","requestFullscreen","mozRequestFullscreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","mozCancelFullscreen","webkitExitFullscreen","msExitFullscreen","fullscreenElement","msFullscreenElement","webkitFullscreenElement","webkitIsFullscreen","_onNativeFullscreenChangeHandler","_executeDiagramFullscreenCommand","fullscreen","_getDiagramUnitValue","ToggleReadOnly","_updateZoomLevelItemsState","_zoomLevel","_DiagramCommand","zoomLevelItems","ZoomLevelItems","_updateGridSizeItemsState","_gridSize","_DiagramCommand2","gridSizeItems","GridSizeItems","DiagramLocalizationService","_getUnitItems","_unitItems","unitItems","formatUnit","Units","pageSizeItems","PageSizeItems","_getShapeTexts","_shapeTexts","shapeTexts","ShapeTypes","Text","Rectangle","Ellipse","Cross","Triangle","Diamond","Heart","Pentagon","Hexagon","Octagon","Star","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","ArrowUpDown","ArrowLeftRight","Process","Decision","Terminator","PredefinedProcess","Document","MultipleDocuments","ManualInput","Preparation","Data","Database","HardDisk","InternalStorage","PaperTape","ManualOperation","Delay","StoredData","Display","Merge","Connector","Or","SummingJunction","Container","VerticalContainer","HorizontalContainer","Card","CardWithImageOnLeft","CardWithImageOnTop","CardWithImageOnRight","RenderHelper","setInitialStyleProperties","setInitialTextStyleProperties","setInitialConnectorProperties","lineOption","startLineEnding","endLineEnding","applyShapeSizeSettings","shapeMinWidth","shapeMaxWidth","shapeMinHeight","shapeMaxHeight","applyOperationSettings","addShape","addShapeFromToolbox","deleteShape","deleteConnector","changeConnection","changeConnectorPoints","changeShapeText","changeConnectorText","resizeShape","moveShape","fitToContent","fitToWidth","_getDiagramExportToCommand","import","updateExistingItemsOnly","updateToolbox","refreshToolbox","autoZoomMode","viewUnits","customDataExpr","lockedExpr","styleExpr","textStyleExpr","zIndexExpr","typeExpr","textExpr","imageUrlExpr","parentKeyExpr","leftExpr","topExpr","widthExpr","heightExpr","containerKeyExpr","autoLayout","edges","fromExpr","fromPointIndexExpr","toExpr","toPointIndexExpr","pointsExpr","lineTypeExpr","fromLineEndExpr","toLineEndExpr","shapeIconsPerRow","mainToolbar","historyToolbar","viewToolbar","contextToolbox","defaultItemProperties","onItemDblClick","onRequestEditOperation","onRequestLayoutUpdate","_toolboxDragHidden","_propertiesPanelTextInputHidden","_toolboxTextInputHidden","_createItemDblClickAction","_itemDblClickAction","_createRequestEditOperationAction","_requestEditOperationAction","nativeItem","nativeItems","_getRequestEditOperationEventArgs","_getModelOperation","DiagramModelOperation","AddShape","AddShapeFromToolbox","DeleteShape","DeleteConnector","ChangeConnection","ChangeConnectorPoints","BeforeChangeShapeText","ChangeShapeText","BeforeChangeConnectorText","ChangeConnectorText","ResizeShape","MoveShape","ConnectorPosition","updateUI","newShape","oldShape","connectionPointIndex","connectorPosition","Begin","newPoints","oldPoints","newSize","oldSize","oldPosition","NativeShape","createMethod","_nativeShapeToDiagramShape","_nativeConnectorToDiagramConnector","nativeShape","attachedConnectorIds","containerId","containerChildItemIds","containerExpanded","nativeConnector","fromKey","toKey","fromId","fromPointIndex","toId","toPointIndex","getItemByKey","getNativeItemByDataKey","getItemById","getNativeItemByKey","getNativeItems","getNativeSelectedItems","scrollToItems","_invalidateContextMenuCommands","_invalidateMainToolbarCommands","_invalidateHistoryToolbarCommands","_invalidateViewToolbarCommands","_invalidateToolboxGroups","_optionChangedCore","DxDiagramModule","DxDraggableModule","toConfig","_drawer","getDrawerInstance","renderPanelContent","whenPanelContentRendered","renderPosition","changePositionUsingFxAnimation","whenPositionAnimationCompleted","whenShaderAnimationCompleted","_animationCompleteHandler","_internalRenderPosition","resizeViewContent","renderShaderVisibility","_getPanelOffset","isDrawerOpened","isHorizontalDirection","getRealPanelWidth","getRealPanelHeight","getMaxSize","getMinSize","_getPanelSize","whenAnimationCompleted","isShaderVisible","fadeConfig","_$shader","_toggleShaderVisibility","getPanelContent","setPanelSize","calcFromRealPanelSize","refreshPanelElementSize","panelSize","isViewContentFirst","onPanelContentRendered","OSe","DrawerStrategy","openedPanelSize","_getPositionCorrection","paddingCssPropertyName","calcTargetPosition","viewContent","mxt","panelOffset","revealMode","vxt","getOverlayTarget","_getOverlayPosition","_fixOverlayPosition","_processOverlayZIndex","panelPosition","overlay","getOverlay","_updateViewContentStyles","$panelOverlayContent","targetPanelPosition","DRAWER_CLASS","DRAWER_PANEL_CONTENT_CLASS","DRAWER_SHADER_CLASS","ANONYMOUS_TEMPLATE_NAME","Drawer","openedStateMode","_whenAnimationCompleted","_whenPanelContentRendered","_whenPanelContentRefreshed","_$viewContentWrapper","PushStrategy","ShrinkStrategy","OverlapStrategy","PANEL_TEMPLATE_NAME","_viewContentWrapperClickHandler","stopAnimations","_toggleOpenedStateClass","_renderPanelContentWrapper","_refreshOpenedStateModeClass","_refreshRevealModeClass","_renderShader","_refreshPositionClass","_renderViewContent","_refreshWrapperChildrenOrder","_initMinMaxSize","_removePanelManualPosition","_$panelContentWrapper","prevOpenedStateMode","prevRevealMode","$viewTemplate","_initSize","realPanelSize","_maxSize","_minSize","_getPanelTemplateElement","$panelContent","$children","resizeContent","_isInvertedPosition","disableAnimation","_refreshPanel","_removePanelContentWrapper","_removeOverlay","targetOpened","bxt","DxDrawerComponent","DxDrawer","animationEnabledChange","maxSizeChange","minSizeChange","openedStateModeChange","revealModeChange","shadingChange","DxDrawerModule","getActiveElement","DropDownBox","$tabbableElements","_getTabbableElements","_getElements","_sortValuesByKeysOrder","orderedKeys","itemDisplayValue","itemLoadDeferreds","orderedValues","_canShowVirtualKeyboard","_isNestedElementActive","_shouldHideOnParentScroll","_popupPosition","_this$_popupPosition","popupLocation","$firstElement","DxDropDownBoxComponent","DxDropDownBox","contentTemplateChange","displayValueFormatterChange","DxDropDownBoxModule","DxDropDownButtonComponent","DxDropDownButton","dropDownContentTemplateChange","selectedItemKeyChange","showArrowIconChange","splitButtonChange","useSelectModeChange","DxDropDownButtonModule","TOAST_CLASS_PREFIX","TOAST_CLASS","toastTypes","TOAST_STACK","POSITION_ALIASES","DEFAULT_BOUNDARY_OFFSET","Toast","displayTime","closeOnSwipe","tabletAndMobileCommonOptions","_posStringToObject","_message","_toggleCloseEvents","verticalPosition","horizontalPosition","_hideTimeout","$notify","$containers","getCoordinatesByAlias","toastWidth","toastHeight","getPositionStylesByCoordinates","_coordinates$bottom","_coordinates$left","_coordinates$right","_coordinates$top","_coordinates$left2","_coordinates$right2","_coordinates$right3","_coordinates$top2","_coordinates$bottom2","_coordinates$left3","_coordinates$top3","_coordinates$bottom3","typeOrStack","userOnHidden","getDefaultDirection","containerKey","userOnShowing","createStackContainer","getStackContainer","containerClasses","setContainerClasses","setContainerStyles","whenSome","onSuccess","getDisplayFileSize","byteSize","sizesTitles","displaySize","extendAttributes","targetObject","sourceObject","objectKeysArray","objectKey","getMapFromObject","getFileExtension","includeFullPath","pathPart","pathCombine","getEscapedFileName","_publicCtor","_internalCtor","pathInfo","isDirectory","_getPathByPathInfo","relativeName","getFullPathInfo","pathKeys","_initialize","pathInfoPart","dateModified","thumbnail","tooltipText","createClone","FileSystemItem","hasSubDirectories","ZB","_nameGetter","_getNameExpr","_isDirGetter","_getIsDirExpr","_sizeGetter","_getSizeExpr","_dateModifiedGetter","_getDateModifiedExpr","_thumbnailGetter","thumbnailExpr","parentDirectory","renameItem","createDirectory","deleteItems","moveItems","destinationDirectory","copyItems","uploadFileChunk","abortFileUpload","downloadItems","getItemsContent","getFileUploadChunkSize","_convertDataObjectsToFileItems","fileItem","_createFileItem","_hasSubDirs","_defaultKeyExpr","nameExpr","isDirectoryExpr","sizeExpr","dateModifiedExpr","_executeActionAsDeferred","keepResult","userResult","fileSystemItem","Ad","FileSystemProviderBase","_subFileItemsGetter","_subFileItemsSetter","_getSetter","contentExpr","_contentGetter","_contentSetter","_nameSetter","isDirExpr","_getIsDirSetter","_keySetter","_sizeSetter","_dateModifiedSetter","parentDir","_renameItemCore","_findDataObject","_ensureDataObjectKey","_validateDirectoryExists","_createDataObject","_deleteItem","destinationDir","destinationDataItem","_getDirectoryDataItems","_checkAbilityToMoveOrCopyItem","copiedItem","_createCopy","_createFileReader","lastModifiedDate","_downloadSingleFile","_downloadMultipleFiles","_getFileContent","arrayBuffer","ArrayBuffer","zip","JSZip","getJSZip","compression","generateAsync","generate","directoryInfo","_isFileItemExists","FileSystemError","ErrorCode","_getKeyFromDataObject","_getDataObjectKey","parentDataItem","copyObj","itemsCopy","childItem","childCopy","parentDirDataObj","_findFileItemObj","directoryDataObj","dataItems","dirFileObjects","directoryEntry","_ensureKeysForDuplicateNameItems","dataObjects","fileItemObj","fileItemObjects","hasCorrectFileItemType","defaultKeyPrefix","subItems","_endpointUrl","endpointUrl","_beforeAjaxSend","beforeAjaxSend","_beforeSubmit","beforeSubmit","_requestHeaders","requestHeaders","_hasSubDirsGetter","hasSubDirectoriesExpr","_executeRequest","sourcePathInfo","sourceIsDirectory","destinationPathInfo","destinationFolder","uploadId","chunkMetadata","UploadId","ajaxSettings","xhrFields","_beforeSendInternal","success","_getDownloadArgs","$form","_beforeSubmitInternal","_appendFormDataInputsToForm","pathInfoList","argsStr","_getItemsIds","_getEndpointUrl","ajaxArguments","formElement","queryString","_getQueryString","pairs","_processQueryStringArrayParam","_getQueryStringPair","hasSubDirs","dyt","_getItemsFunction","_ensureFunction","_renameItemFunction","_createDirectoryFunction","_deleteItemFunction","_moveItemFunction","moveItem","_copyItemFunction","copyItem","_uploadFileChunkFunction","_abortFileUploadFunction","_downloadItemsFunction","_getItemsContentFunction","functionObject","defaultFunction","_isInitialized","_dataLoading","_dataLoadingDeferred","_rootDirectoryInfo","_createRootDirectoryInfo","rootText","_currentDirectoryInfo","_defaultIconMap","_createDefaultIconMap","startSingleLoad","_setSecurityController","_setProvider","fileProvider","currentPathKeys","setCurrentPathByKeys","setCurrentPath","completeInitialization","_raiseInitialized","_securityController","FileSecurityController","uploadMaxFileSize","_resetState","setAllowedFileExtensions","setUploadOptions","uploadChunkSize","_fileProvider","_createFileProvider","updateProvider","_getDirectoryByPathParts","newDirectory","_resetCurrentDirectory","_updateProviderOnly","ObjectFileSystemProvider","RemoteFileSystemProvider","CustomFileSystemProvider","rawPath","getCurrentDirectory","_setCurrentDirectoryByPathParts","getCurrentPath","directory","escapedName","getCurrentPathKeys","setCurrentDirectory","checkActuality","_getActualDirectoryInfo","_raisePathPotentiallyChanged","requireRaiseSelectedDirectory","_raiseDataLoading","_raiseSelectedDirectoryChanged","getCurrentItems","onlyFiles","_getCurrentItemsInternal","currentDirectory","getDirectoryContents","separatedItems","_separateItemsByType","folders","getDirectories","parentDirectoryInfo","skipNavigationOnError","itemInfos","itemsLoaded","_singleOperationLockId","itemsSingleLoadErrorId","_changeDirectoryOnError","dirKey","getInternalKey","loadItemsDeferred","_loadedItems","_getFileItems","fileItems","_createDirectoryInfo","_createFileInfo","_handleItemLoadError","getAllowedItems","errorInfo","parentDirItem","tempDirInfo","_createDirInfoByName","actionInfo","_createEditActionInfo","_processEditAction","_editingEvents","onDirectoryCreating","onDirectoryCreated","_resetDirectoryState","fileItemInfo","sourceItem","itemNewName","validateExtension","onItemRenaming","onItemRenamed","onItemMoving","onItemMoved","needChangeCurrentDirectory","onItemCopying","onItemCopied","processUploadSession","sessionInfo","uploadDirectoryInfo","_getItemInfosForUploaderFiles","startDeferred","validateMaxFileSize","_processBeforeItemEditAction","onFileUploading","onFileUploaded","onItemDownloading","_getItemActionResult","_raiseDownloadItemsError","getItemContent","_raiseGetItemsError","_raiseEditActionStarting","_raiseEditActionResultAcquired","_raiseEditActionError","targetFileInfos","singleRequest","_raiseEditActionItemError","dirInfo","isActualDirectoryRequired","beforeAction","afterAction","isAnyOperationSuccessful","_raiseCompleteEditActionItem","_raiseCompleteEditAction","targetItemInfos","_createBeforeActionArgs","_getPathInfo","_lockRefresh","_refreshDeferred","_executeDataLoad","_refreshInternal","endSingleLoad","cachedRootInfo","selectedKeyParts","_getDirectoryPathKeyParts","_loadItemsRecursive","_findDirectoryByPathKeyParts","cachedDirectoryInfo","dirInfos","itemDeferreds","cachedItem","useKeys","_setCurrentDirectoryByPathPartsInternal","tempDeferred","subDirInfo","restPathParts","keyParts","selectedDirInfo","newSelectedDir","dirPathInfo","_getFileItemDefaultIcon","getDisplayName","displayName","rootDirectory","setRootText","_tryCallAction","selectedDirectoryInfo","_selectedDirectory","finalEventName","editingEvents","_extensionsMap","_allowedFileExtensions","_isValidExtension","_maxFileSize","defaultPermissions","rename","permissions","_permissions","_initCommands","noFileItemRequired","isSingleFileItemCommand","_commandMap","registerActions","executeCommand","commandName","updatePermissions","resultPermissions","permission","getCommandByName","isCommandAvailable","isParentFolder","DEFAULT_CONTEXT_MENU_ITEMS","DEFAULT_ITEM_ALLOWED_PROPERTIES","_onContextMenuItemClick","_onContextMenuShowing","_onContextMenuShown","_onContextMenuHidden","showAt","_menuShowingContext","createContextMenuItems","contextMenuItems","targetFileItem","_targetFileItems","_targetFileItem","itemArray","srcItem","_configureItemByCommandName","_isContextMenuItemAvailable","_isDefaultItem","_autoHide","_isIsolatedCreationItemCommand","_commandManager","originalItemData","_addItemClickHandler","_createMenuItemByCommandName","contextMenuItem","_this$_targetFileItem","changedArgs","viewArea","targetFileItems","onContextMenuHidden","onContextMenuShowing","tryUpdateVisibleContextMenu","preserveContext","_raiseContextMenuHidden","commandManager","XSe","_raiseClick","setActive","FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS","_getCurrentDirectory","_createFileActionsButton","_storeExpandedState","$treeView","treeViewOptions","_onFilesTreeViewCreateSubDirectories","_createFilesTreeViewItemTemplate","onDirectoryClick","_onFilesTreeViewItemExpanded","_onFilesTreeViewItemCollapsed","_onFilesTreeViewItemRendered","onFilesTreeViewContentReady","_onFilesTreeViewItemContextMenu","FileManagerFileActionsButton","_filesTreeView","_restoreScrollTopPosition","_filesTreeViewItemSelector","_onFileItemActionButtonClick","_activeFileActionsButton","_getNodeByKey","_saveScrollTopPosition","_scrollTopPosition","_getItemElementByKey","_this$_filesTreeView","_getPublicNode","_this$_filesTreeView2","nodesQueue","storeExpandedState","initialFolder","toggleDirectoryExpandedState","treeViewNode","updateCurrentDirectory","_updateExpandedStateToCurrentDirectory","toggleDirectoryExpandedStateRecursive","dirLine","toggleDirectoryLineExpandedState","Tyt","nTe","_lockFocusedItemProcessing","_focusedItemKey","_needResetScrollPosition","dblClickEventName","dblClickName","_onItemDblClick","onSelectedItemOpened","onItemListDataLoaded","focusedItemKey","getItemThumbnail","_setSelectedItemKeys","_setFocusedItemKey","_getItemsInternal","_resetFocus","parentDirectoryItem","_findParentDirectoryItem","_hasParentDirectoryItem","_parentDirectoryItemKey","_onDataLoaded","itemsResult","_raiseOnError","_raiseFocusedItemChanged","_raiseSelectedItemOpened","_raiseContextMenuShowing","_raiseItemListDataLoaded","_this$_refreshDeferre","_onContentReady","_resetScrollTopPosition","_tryRaiseSelectionChanged","selectedItemInfos","currentSelectedItemKeys","currentDeselectedItemKeys","_deselectItem","raiseEvent","_hasValidKeys","_filterOutItemByPredicate","_filterOutParentDirectory","_filterOutParentDirectoryKey","_onFocusedItemChanged","_this$_getScrollable","_getItemThumbnail","fileInfo","itemThumbnailGetter","_getItemThumbnailContainer","$itemThumbnail","_getItemThumbnailCssClass","_isDesktop","_showContextMenu","_isParentDirectoryItem","_getFileItemsForContextMenu","createNewArray","_isMultipleSelectionMode","_createDataSource","DEFAULT_COLUMN_CONFIGS","FileManagerItemListBase","_focusedItem","_selectAllCheckBoxUpdating","_createFilesView","$filesView","_filesView","_createColumns","_onEditorPreparing","_onRowPrepared","_onContextMenuPreparing","_onFilesViewSelectionChanged","_onFilesViewFocusedRowChanged","_onFilesViewOptionChanged","extendedItem","_getPreparedColumn","customizeDetailColumns","_updateColumnDataField","resultCssClass","_isDefaultColumn","defaultConfig","_createThumbnailColumnCell","_createNameColumnCell","_calculateSizeColumnCellValue","dataItemSuffix","columnDataField","_selectItem","_isAllItemsSelected","selectableItemsCount","_onSelectAllCheckBoxValueChanged","_e$row2","_e$row","_selectItemSingleSelection","cellInfo","$name","_selectItemMultipleSelection","oldFocusedItem","deselectedKeys","_this$_filesView","actualOptions","FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME","_layoutModel","_$viewPort","_$item","getLayoutModel","_createLayoutModel","viewPortWidth","viewPortHeight","viewPortScrollTop","viewPortScrollBottom","itemPerRowCount","rowPerPageRate","createItemLayoutModel","itemRowIndex","itemTop","itemColumnIndex","itemBottom","newScrollTop","_renderItemsContainer","_createScrollViewControl","_layoutUtils","ListBoxLayoutUtils","_syncFocusedItemKey","onItemEnterKeyPressed","_itemThumbnailTemplate","_getTooltipText","itemModel","_getDefaultItemTemplate","_$scrollView","_beforeKeyProcessing","_processArrowKeys","_processHomeEndKeys","_getItemsLength","_processPageChange","_getFocusedItem","newItemIndex","_focusItemByIndex","itemLayout","_processLongTap","_getIndexByItemElement","$itemSpacer","$itemName","_isPreserveSelectionMode","_getItemByIndex","getItemByItemElement","_focusItem","getItemElementByItem","_syncFocusedItemKeyDeferred","newFocusedItemKey","_changeItemSelection","deselectItem","Xyt","contextMenuEvent","_onContextMenu","_createItemList","$itemListContainer","_itemList","FileManagerThumbnailListBox","_tryOpen","itemThumbnailTemplate","getTooltipText","_onItemListSelectionChanged","_onItemListFocusedItemChanged","targetItemElement","_disableDragging","FILE_MANAGER_GENERAL_TOOLBAR_CLASS","DEFAULT_ITEM_CONFIGS","showNavPane","FILE_MANAGER_TOOLBAR_CLASS","switchView","DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES","ALWAYS_VISIBLE_TOOLBAR_ITEMS","REFRESH_ICON_MAP","_generalToolbarVisible","_refreshItemState","_createItemClickedAction","_$viewSwitcherPopup","_generalToolbar","_createToolbar","_fileToolbar","_getVisibleToolbar","_checkCompactMode","_itemClickedAction","_getPreparedItems","_raiseItemClicked","_setItemVisibleAvailable","_updateSeparatorsVisibility","hasModifications","hasItemsBefore","itemGroups","_getItemsInGroup","itemLocation","isSeparatorVisible","_groupHasItemsAfter","_isItemInMenu","_result$options","_createCommandItem","_createSeparatorItem","_createViewModeItem","_configureHintForCompactMode","commandText","commandItems","_toggleCompactMode","useCompactMode","_toolbarHasItemsOverflow","optionsSource","saved","_getCompactModeOptions","_available","available","_ensureAvailableCommandsVisible","_item$originalItemDat","originalVisible","_isToolbarItemAvailable","_fileToolbarHasEffectiveItems","_isFileToolbarItemAvailable","toolbarItem","_isRefreshVisibleInFileToolbar","_isCommandAvailable","_updateItemInToolbar","generalItems","contextItems","itemViewMode","updateItemPermissions","_restoreRefreshItemState","updateRefreshItem","generalToolbarOptions","fileToolbarOptions","_applyRefreshItemOptions","_refreshItemTextTimeout","_updateRefreshItemText","isDeferredUpdate","showGeneralToolbar","FILE_MANAGER_PROGRESS_PANEL_CLASS","FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS","FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS","FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS","FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS","FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS","FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS","FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS","FILE_MANAGER_PROGRESS_BOX_CLASS","FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS","FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS","FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS","FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS","FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS","FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS","FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS","_operationCount","$scrollView","_raisePanelClosed","_$infosContainer","_renderEmptyListText","onOperationClosed","onOperationCanceled","onOperationItemCanceled","onPanelClosed","addOperation","commonText","showCloseButtonAlways","allowProgressAutoUpdate","customCloseHandling","$info","$common","_createProgressBox","onCloseButtonClick","_closeOperation","addOperationDetails","details","$details","_createDetailsItem","skipProgressBox","$detailsItem","imageUrl","_cancelOperationItem","completeOperationItem","operationInfo","commonProgress","updateOperationItemProgress","_setCloseButtonVisible","itemProgress","updateOperationCommonProgress","_operationInfo$common","completeOperation","$commonText","_removeProgressBar","_setProgressBarText","completeSingleOperationWithError","_info$details","detailsItem","_renderOperationError","addOperationDetailsError","_renderError","progressBox","$progressBar","_getStatusString","closeButton","_raiseOperationCanceled","_displayClosedOperationItem","_raiseOperationClosed","_raiseOperationItemCanceled","MANAGER_ID_NAME","onActionProgressStatusChanged","isActual","_isActual","_actionProgressStatus","_raiseActionProgress","createErrorDetailsProgressBox","renderError","isActionProgressStatusDefault","NotificationManagerBase","finishOperation","handleDimensionChanged","ensureProgressPanelCreated","tryHideActionProgress","_updateActionProgress","updateActionProgressStatus","hasNoOperations","_operationInProgressCount","_failedOperationCount","processingMessage","allowCancel","_progressPanel","detailErrorText","_notifyError","$progressPanelElement","ProgressPanelClass","_getProgressPanelComponent","_onProgressPanelOperationClosed","FileManagerProgressPanel","commonErrorText","_operationInProgressCountInternal","_failedOperationCountInternal","FILE_MANAGER_NOTIFICATION_CLASS","FILE_MANAGER_NOTIFICATION_DRAWER_CLASS","FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS","FILE_MANAGER_NOTIFICATION_POPUP_CLASS","FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS","FILE_MANAGER_NOTIFICATION_COMMON_CLASS","FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS","FILE_MANAGER_NOTIFICATION_DETAILS_CLASS","FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS","_isInAdaptiveState","_managerMap","_notificationManagerStubId","_setNotificationManager","$progressPanelContainer","$progressDrawer","drawerOptions","_ensureProgressPanelCreated","_getProgressDrawerAdaptiveOptions","_progressDrawer","$drawerContent","contentRenderer","stubManager","NotificationManagerStub","_isProgressDrawerDisabled","notificationManagerComponent","_getProgressManagerComponent","defaultManager","_getNotificationManager","actualManagerId","_getActualNotificationManagerId","_clearManagerMap","managerId","tryShowProgressPanel","notificationManager","_isProgressDrawerOpened","_hidePopup","_showPopup","_showPopupError","_hideProgressPanel","_checkAdaptiveState","NotificationManager","forceHide","_getNotificationPopup","errorMode","$separator","_notificationPopup","onActionProgress","progressPanelContainer","showProgressPanel","showNotificationPopup","_options$popupCssClas","_createOnClosedAction","_getDialogOptions","_createContentTemplate","buttonText","_applyDialogChanges","_closeDialog","_onPopupHiding","_onPopupShown","popupCssClass","_dialogResult","contentCssClass","_$contentElement","_getDialogResult","_onClosedAction","dialogResult","_setTitle","newTitle","_setApplyButtonOptions","_createOnPathChangedAction","pTe","FileManagerDialogBase","_nameTextBox","_initialNameValue","$textBoxInput","_hasCompositionJustEnded","_checkCompositionEnded","nameValue","Xbt","_setSelectedDirInfo","switchToCopyDialog","_targetItemInfos","switchToMoveDialog","FileManagerFilesTreeView","_getDialogSelectedDirectory","_onFilesTreeViewDirectoryClick","_toggleUnavailableLocationsDisabled","folder","_selectedDirectoryInfo","_getLocationsToProcess","locationsToExpand","locationsToCollapse","locationKeysToDisable","expandLocations","collapseLocations","expandMap","collapseMap","i1t","_$text","_initialText","d1t","_uploaderInfos","_createInternalFileUploader","_createDropZonePlaceholder","_setDropZonePlaceholderVisible","_getController","$fileUploader","_onFileUploaderValueChanged","_onFileUploaderProgress","_onFileUploaderUploaded","_onFileUploaderAllFilesUploaded","_onFileUploaderUploadAborted","_onFileUploaderUploadError","_fileUploaderUploadChunk","_fileUploaderAbortUpload","_shouldRaiseDragLeaveBase","tryUpload","_findAndUpdateAvailableUploaderInfo","cancelUpload","sessionId","_cancelUpload","cancelFileUpload","fileIndex","_findUploaderInfoBySessionId","session","_findSessionByFile","uploaderInfo","_findUploaderInfo","fileValue","commonValue","_raiseUploadProgress","_raiseUploadFinished","_getDeferredForFile","_$dropZonePlaceholder","_adjustDropZonePlaceholder","$dropZoneTarget","placeholderBorderTopWidth","placeholderBorderLeftWidth","containerBorderBottomWidth","containerBorderLeftWidth","dropZoneOffset","uploaderInstance","_raiseUploadSessionStarted","_info","currentInfo","controllerGetter","onUploadSessionStarted","onUploadProgress","onUploadFinished","splitterElement","actionMetadata","_actionMetadata","_itemInfos","_onlyFiles","affectsAllItems","_multipleItems","_singleRequest","_completedItems","_commonProgress","_errorState","failedCount","_itemNewName","allowItemProgress","processSingleRequestError","commonErrorMessage","singleItemErrorMessage","getItemForSingleRequestError","_setCurrentDetailError","processMultipleRequestError","multipleItemsErrorMessage","getItemForMultipleRequestError","hasModifiedItems","_hasCompletedItems","getItemName","_isItemExistsErrorCode","currentDetailError","errorState","multipleItems","multipleItemsProcessingMessage","singleItemProcessingMessage","successMessage","multipleItemsSuccessMessage","singleItemSuccessMessage","completionMessage","canceledMessage","_onEditActionStarting","_onEditActionResultAcquired","_onEditActionItemError","_onEditActionError","_onCompleteEditActionItem","_onCompleteEditAction","_uploadOperationInfoMap","_dialogManager","baseDialogOptions","onDialogClosed","$chooseFolderDialog","_chooseDirectoryDialog","FileManagerFolderChooserDialog","chooseDirectoryDialog","$renameDialog","_renameItemDialog","FileManagerNameEditorDialog","$createDialog","_createItemDialog","$deleteItemDialog","_deleteItemDialog","FileManagerDeleteItemDialog","getCopyDialog","getMoveDialog","getRenameItemDialog","getCreateItemDialog","getDeleteItemDialog","updateDialogRtl","dialog","provider","_onDialogClosed","_fileUploader","_createFileUploader","notificationControl","_initNotificationControl","_createMetadataMap","_notificationControl","_onCancelUploadSession","_onCancelFileUpload","_getFileUploaderComponent","FileManagerFileUploader","_getFileUploaderController","dropZonePlaceholderContainer","_onUploadSessionStarted","_onUploadProgress","_onUploadFinished","setUploaderDropZone","setUploaderSplitterElement","uploadDirectory","_metadataMap","_tryCreate","_tryRename","_tryDelete","_tryMove","_tryCopy","_tryUpload","_download","getCommandActions","uploadSessionId","_scheduleUploadSessionDisposal","FileManagerActionContext","_getItemProgressDisplayInfo","_handleActionError","requester","parentDirectories","newDirName","getMultipleSelectedItems","_uploadDirectoryInfo","_raiseOnSuccess","_handleSingleRequestActionError","_handleMultipleRequestActionError","_getErrorText","operationErrorInfo","_getOperationErrorInfo","detailError","FileManagerMessages","errorArgs","dialogArgument","_dialogDeferred","updatedOnlyFiles","_currentDirectory","_renderMenu","_areDirsEqual","_onItemRendered","_getParentDirsLine","isPathItem","FILE_MANAGER_BREADCRUMBS_CLASS","newDir","_raiseCurrentDirectoryChanged","dir1","dir2","onCurrentDirectoryChanging","rootFolderDisplayName","SPLITTER_CLASS","SPLITTER_WRAPPER_CLASS","SPLITTER_INACTIVE_CLASS","SPLITTER_BORDER_CLASS","SPLITTER_INITIAL_STATE_CLASS","SPLITTER_MODULE_NAMESPACE","eventGuid","SPLITTER_POINTER_DOWN_EVENT_NAME","SPLITTER_POINTER_MOVE_EVENT_NAME","SPLITTER_POINTER_UP_EVENT_NAME","_$leftElement","_$rightElement","_$splitterBorder","_$splitter","onApplyPanelSize","onActiveStateChanged","_onMouseDownHandler","_onMouseMoveHandler","_onMouseUpHandler","_containerWidth","_setSplitterPositionLeft","needUpdatePanels","usePercentagePanelsWidth","_offsetX","_getSplitterBorderWidth","_isSplitterActive","splitterPositionLeft","_getNewSplitterPositionLeft","_leftPanelPercentageWidth","newSplitterPositionLeft","_getContainerLeftOffset","_getSplitterOffset","_getSplitterWidth","borderLeftWidth","_getLeftPanelWidth","getSplitterBorderElement","toggleDisabled","isSplitterMoved","disableSplitterCalculation","_isSplitterCalculationDisabled","leftPanelWidth","rightPanelWidth","_convertToPercentage","rightPanelPercentageWidth","_convertToPixels","pixelWidth","percentageWidth","FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS","DRAWER_PANEL_CONTENT_INITIAL","$drawer","_createDrawerTemplate","_updateDrawerMaxSize","_splitter","SplitterControl","leftElement","rightElement","_onApplyPanelSize","_onActiveStateChanged","_setDrawerWidth","toggleDrawer","_raiseAdaptiveStateChanged","_isDrawerOpened","onAdaptiveStateChanged","drawerTemplate","isInAdaptiveState","isSplitterActive","getSplitterElement","FILE_MANAGER_CLASS","FILE_MANAGER_CONTAINER_CLASS","_providerUpdateDeferred","_lockCurrentPathProcessing","_wasRendered","FileItemsController","_onControllerInitialized","onDataLoading","_onDataLoading","onSelectedDirectoryChanged","_onSelectedDirectoryChanged","onPathPotentiallyChanged","_checkPathActuality","_firstItemViewLoad","_lockSelectionProcessing","_itemKeyToFocus","_loadedWidgets","FileManagerCommandManager","_prepareToLoad","_createNotificationControl","_initCommandManager","$notificationControl","FileManagerNotificationControl","_createWrapper","_onActionProgress","positionTarget","_createEditing","FileManagerToolbar","onToolbarItemClick","_createAdaptivityControl","_adaptivityControl","FileManagerAdaptivityControl","_createFilesTreeView","_createItemsPanel","_onAdaptiveStateChanged","_editing","$editingContainer","FileManagerEditingControl","_getSelectedItemInfos","_getItemThumbnailInfo","uploadDropZonePlaceholderContainer","_redrawComponent","_onEditingError","_$itemsPanel","_createBreadcrumbs","_createItemView","_updateUploadDropZone","_filesTreeViewContextMenu","_createContextMenu","$filesTreeView","_setCurrentDirectory","_tryEndLoading","viewMode","_itemViewContextMenu","itemViewOptions","_getItemViewItems","_showError","_onItemViewSelectionChanged","_onItemViewFocusedItemChanged","_onSelectedItemOpened","onItemListItemsLoaded","detailColumns","$itemView","_itemView","FileManagerThumbnailsItemList","FileManagerDetailsItemList","$breadcrumbs","_breadcrumbs","FileManagerBreadcrumbs","isolateCreationItemCommands","FileManagerContextMenu","_refreshAndShowProgress","thumbnails","_updateToolbar","onErrorOccurred","_isAllWidgetsLoaded","_switchView","_disposeWidget","_showNotification","isSuccess","onlyFileItemsView","showFolders","_updateToolbarWithSelectionOnFirstLoad","_getPreparedItemViewItems","itemMap","findItemsByKeys","selectedDir","_e$itemData","_isActionButton","fileSystemProvider","rootFolderName","itemView","showParentFolder","customizeThumbnail","onCurrentDirectoryChanged","onSelectedFileOpened","notifications","showPanel","showPopup","optionsToCheck","isGetter","isOptionValueDiffers","updateFunc","_updateFunc","_syncToCurrentDirectory","_ref10","newCurrentDirectory","DxFileManagerModule","DxFileUploaderComponent","DxFileUploader","abortUploadChange","acceptChange","allowCancelingChange","allowedFileExtensionsChange","chunkSizeChange","dialogTriggerChange","dropZoneChange","invalidFileExtensionMessageChange","invalidMaxFileSizeMessageChange","invalidMinFileSizeMessageChange","labelTextChange","maxFileSizeChange","minFileSizeChange","progressChange","readyToUploadMessageChange","selectButtonTextChange","showFileListChange","uploadAbortedMessageChange","uploadButtonTextChange","uploadChunkChange","uploadCustomDataChange","uploadedMessageChange","uploadFailedMessageChange","uploadFileChange","uploadHeadersChange","uploadMethodChange","uploadModeChange","uploadUrlChange","DxFileUploaderModule","DxFilterBuilderComponent","DxFilterBuilder","allowHierarchicalFieldsChange","customOperationsChange","fieldsChange","filterOperationDescriptionsChange","groupOperationDescriptionsChange","groupOperationsChange","maxGroupLevelChange","DxFilterBuilderModule","DxFormModule","defaultAlgorithm","algorithms","setDefault","getFigures","normalizeValues","baseStyle","baseBorder","borderVisible","itemOptions","Item","getNormalStyle","setHover","_suspend","_resume","NODES_CREATE_CHANGE","itemState","addAlgorithm","dynamicSlope","halfNeckWidth","offsetFromCorner","funnelHeight","neckLeftCorner","neckRightCorner","dxFunnel","onHoverChanged","_change_TILING","convertCoord","_change_DRAWN","_change_NODES_CREATE","_change_TILES","_hitTestTargets","processedData","getAlgorithm","percents","figures","curData","invertFigure","getAllItems","getLegendItemState","OUTSIDE_POSITION","correctYForInverted","_labels","_labelRect","isOutsidePosition","getLabelIndent","getInsideLabelPosition","getOutsideLeftLabelPosition","getOutsideRightLabelPosition","_defaultLabelTextAlignment","labelRect","getColumnLabelLeftPosition","getColumnLabelRightPosition","halfBorderWidth","_correctLabelWidth","requiredSpace","removeEmptySpace","isLeftPos","connectorStrategy","connectorIndent","verticalCorrection","getConnectorStrategy","defaultTextAlignment","downPointerEventName","movePointerEventName","_initHandlers","getNode","processClick","downHandler","moveHandler","_disposeHandlers","isRootDown","processHover","processTooltip","dataKeyModifier","Funnel","getProxyData","tooltipData","proxyData","_dataKey","figureCoords","_tooltipIndex","_moveTooltip","pluginTooltip","pluginLabel","pluginExport","pluginTitle","pluginTracker","pluginLoadingIndicator","DxFunnelModule","GALLERY_CLASS","GALLERY_LOOP_CLASS","GALLERY_ACTIVE_CLASS","GALLERY_ITEM_CLASS","GALLERY_INVISIBLE_ITEM_CLASS","GALLERY_LOOP_ITEM_CLASS","GALLERY_ITEM_SELECTED_CLASS","GALLERY_INDICATOR_CLASS","GALLERY_INDICATOR_ITEM_CLASS","GALLERY_INDICATOR_ITEM_SELECTOR","GALLERY_INDICATOR_ITEM_SELECTED_CLASS","ITEM_CONTENT_SELECTOR","GalleryNavButton","Gallery","_wasAnyItemTemplateRendered","indicatorEnabled","slideshowDelay","wrapAround","initialItemWidth","stretchImages","$img","_actualItemWidth","isWrapAround","_itemsPerPage","_itemPercentWidth","itemsPerPage","_pagesCount","_offsetDirection","useListBoxRole","_renderDragHandler","_renderContainerPosition","_renderItemSizes","_renderItemPositions","_renderItemVisibility","_renderUserInteraction","_setupSlideShow","_reviseDimensions","_stopItemAnimations","_clearCacheWidth","_cloneDuplicateItems","_calculateIndexOffset","_loadNextPageIfNeeded","_getLoopedItems","duplicateCount","_getRealItems","_cloneItemForDuplicate","$clonedItem","loopItemsCount","lastItemDuplicateIndex","_itemFreeSpace","isGapBetweenImages","realIndex","isLoopItem","itemPosition","_relocateItems","hideItems","_releaseInvisibleItems","positionReady","_animationOverride","_startSwipe","_endSwipe","extraConfig","_needMoveContainerForward","_needMoveContainerBack","_maxContainerOffset","_maxItemWidth","_cleanIndicators","isIndicatorEnabled","$indicatorItem","_attachIndicatorClickHandler","_renderSelectedPageIndicator","_indicatorSelectHandler","_detachIndicatorClickHandler","_toggleIndicatorInteraction","clickEnabled","_this$_$indicator","$indicatorItems","indicatorIndex","_fitPaginatedIndex","_needLongMove","_prevNavButton","_prevPage","_nextNavButton","_nextPage","_renderNavButtonsVisibility","visiblePageSize","goToItem","_shouldLoadNextPage","restItemsCount","_goToGhostItem","nextHidden","prevHidden","_slideshowTimer","_userInteraction","_cacheElementWidth","endOffset","wrapAroundRatio","paginatedIndex","_setFocusOnSelect","_flipIndex","withoutAnimation","_isItemOnFirstPage","_isItemOnLastPage","DxGalleryComponent","DxGallery","indicatorEnabledChange","initialItemWidthChange","loopChange","showIndicatorChange","showNavButtonsChange","slideshowDelayChange","stretchImagesChange","swipeEnabledChange","wrapAroundChange","DxGalleryModule","GANTT_TASKS","GANTT_DEPENDENCIES","GANTT_RESOURCES","GANTT_RESOURCE_ASSIGNMENTS","ModelChangesListener","gantt","NotifyTaskCreated","_onRecordInserted","NotifyTaskRemoved","taskId","_onRecordRemoved","NotifyTaskUpdated","_onRecordUpdated","NotifyParentTaskUpdated","_onParentTaskUpdated","NotifyDependencyInserted","NotifyDependencyRemoved","dependencyId","NotifyResourceCreated","resource","NotifyResourceRemoved","resourceId","NotifyResourceAssigned","assignment","NotifyResourceUnassigned","assignmentId","NotifyParentDataRecalculated","_onParentTasksRecalculated","NotifyTaskCreating","_actionsManager","raiseInsertingAction","NotifyTaskRemoving","raiseDeletingAction","NotifyTaskUpdating","raiseUpdatingAction","NotifyTaskMoving","getTaskMovingAction","NotifyTaskEditDialogShowing","raiseTaskEditDialogShowingAction","NotifyResourceManagerDialogShowing","raiseResourceManagerDialogShowingAction","NotifyDependencyInserting","NotifyDependencyRemoving","NotifyResourceCreating","NotifyResourceRemoving","NotifyResourceAssigning","NotifyResourceUnassigning","NotifyScaleCellPrepared","raiseScaleCellPreparedAction","NotifyGanttViewUpdated","_onGanttViewCoreUpdated","getLoadPanel","dataSourceChangedCallback","_optionName","_getLoadPanel","_dataSourceChangedCallback","_showLoadPanel","_hideLoadPanel","_this$_getLoadPanel","_this$_getLoadPanel2","_reloadDataSource","DataOption","_gantt","_mappingHelper","_customFieldsManager","_getTaskData","getTaskData","_convertCoreToMappedData","coreData","convertCoreToMappedData","_convertMappedToCoreData","mappedData","convertMappedToCoreData","_convertMappedToCoreFields","convertMappedToCoreFields","_convertCoreToMappedFields","convertCoreToMappedFields","_saveCustomFieldsDataToCache","saveCustomFieldsDataToCache","createTaskDblClickAction","_taskDblClickAction","taskDblClickAction","raiseTaskDblClickAction","createTaskClickAction","_taskClickAction","taskClickAction","raiseTaskClickAction","createSelectionChangedAction","selectionChangedAction","raiseSelectionChangedAction","selectedRowKey","createCustomCommandAction","customCommandAction","raiseCustomCommand","createContextMenuPreparingAction","_contextMenuPreparingAction","contextMenuPreparingAction","raiseContextMenuPreparing","_getInsertingAction","_getTaskInsertingAction","_getDependencyInsertingAction","_getResourceInsertingAction","_getResourceAssigningAction","coreArgs","createTaskInsertingAction","_taskInsertingAction","taskInsertingAction","createDependencyInsertingAction","_dependencyInsertingAction","dependencyInsertingAction","createResourceInsertingAction","_resourceInsertingAction","resourceInsertingAction","createResourceAssigningAction","_resourceAssigningAction","resourceAssigningAction","_getInsertedAction","_getTaskInsertedAction","_getDependencyInsertedAction","_getResourceInsertedAction","_getResourceAssignedAction","raiseInsertedAction","createTaskInsertedAction","_taskInsertedAction","taskInsertedAction","createDependencyInsertedAction","_dependencyInsertedAction","dependencyInsertedAction","createResourceInsertedAction","_resourceInsertedAction","resourceInsertedAction","createResourceAssignedAction","_resourceAssignedAction","resourceAssignedAction","_getDeletingAction","_getTaskDeletingAction","_getDependencyDeletingAction","_getResourceDeletingAction","_getResourceUnassigningAction","createTaskDeletingAction","_taskDeletingAction","taskDeletingAction","createDependencyDeletingAction","_dependencyDeletingAction","dependencyDeletingAction","createResourceDeletingAction","_resourceDeletingAction","resourceDeletingAction","createResourceUnassigningAction","_resourceUnassigningAction","resourceUnassigningAction","_getDeletedAction","_getTaskDeletedAction","_getDependencyDeletedAction","_getResourceDeletedAction","_getResourceUnassignedAction","raiseDeletedAction","createTaskDeletedAction","_taskDeletedAction","taskDeletedAction","createDependencyDeletedAction","_dependencyDeletedAction","dependencyDeletedAction","createResourceDeletedAction","_resourceDeletedAction","resourceDeletedAction","createResourceUnassignedAction","_resourceUnassignedAction","resourceUnassignedAction","_getUpdatingAction","_getTaskUpdatingAction","isTaskUpdating","addCustomFieldsDataFromCache","resetCustomFieldsDataCache","forceUpdateOnKeyExpire","createTaskUpdatingAction","_taskUpdatingAction","taskUpdatingAction","_getUpdatedAction","_getTaskUpdatedAction","raiseUpdatedAction","createTaskUpdatedAction","_taskUpdatedAction","taskUpdatedAction","createTaskEditDialogShowingAction","_taskEditDialogShowingAction","taskEditDialogShowingAction","_getTaskEditDialogShowingAction","readOnlyFields","hiddenFields","createResourceManagerDialogShowingAction","_resourceManagerDialogShowingAction","resourceManagerDialogShowingAction","_getResourceManagerDialogShowingAction","resources","createTaskMovingAction","_taskMovingAction","taskMovingAction","getScaleCellPreparedAction","_scaleCellPreparedAction","createScaleCellPreparedAction","scaleIndex","scaleType","_getScaleType","scaleElement","separatorElement","_timers","saveData","keyExpireCallback","_getCache","extendFromObject","_setExpireTimer","pullDataFromCache","_onKeyExpired","forceCreate","timers","GanttHelper","prepareMapHandler","prepareSetterMapHandler","compileGettersByOption","exprMatches","compileSettersByOption","compileFuncSettersByOption","getStoreObject","modelObject","getInvertedData","getArrayFromOneElement","getSelectionMode","allowSelection","convertTreeToList","_node$children","getAllParentNodesKeys","_node$parent","startExpr","endExpr","progressExpr","titleExpr","colorExpr","dependencies","predecessorIdExpr","successorIdExpr","resourceAssignments","taskIdExpr","resourceIdExpr","taskListWidth","showResources","showDependencies","taskTitlePosition","onTaskClick","onTaskDblClick","onTaskInserting","onTaskInserted","onTaskDeleting","onTaskDeleted","onTaskUpdating","onTaskUpdated","onTaskMoving","onTaskEditDialogShowing","onDependencyInserting","onDependencyInserted","onDependencyDeleting","onDependencyDeleted","onResourceInserting","onResourceInserted","onResourceDeleting","onResourceDeleted","onResourceAssigning","onResourceAssigned","onResourceUnassigning","onResourceUnassigned","stripLines","scaleTypeRange","validation","validateDependencies","autoUpdateParentTasks","enablePredecessorGap","taskTooltipContentTemplate","taskProgressTooltipContentTemplate","taskTimeTooltipContentTemplate","taskContentTemplate","GanttDataCache","_getTaskCustomFields","mappedFields","getTaskMappedFieldNames","_getCustomFieldsData","addCustomFieldsData","modelData","_tasksOption","modelItem","customFields","appendCustomFields","_getTaskKeyGetter","invertedData","updatedItem","isCustomFieldsUpdateOnly","customFieldsData","dataOption","updatedCustomFields","_ganttTreeList","updateDataSource","_ganttView","_selectTask","allowScroll","scrollTopPos","scrollBottomPos","prepareScrollData","validateTarget","TAGBOX_TAG_DATA_KEY","TAGBOX_TAG_CLASS","TAGBOX_MULTI_TAG_CLASS","TAGBOX_CUSTOM_TAG_CLASS","TAGBOX_TAG_REMOVE_BUTTON_CLASS","TAGBOX_SINGLE_LINE_CLASS","TagBox","sendToList","_isCaretAtTheStart","_processKeyboardEvent","_isTagRemoved","$tagToDelete","_$focusedTag","_tagElements","_moveTagFocus","_preserveFocusedTag","_removeTagElement","isListItemFocused","isInputActive","_isEmpty","_scrollContainer","_updateTagsContainer","_$tagsContainer","_updateInputAriaActiveDescendant","clearOnBoundary","tagElements","$nextFocusedTag","_replaceFocusedTag","_clearTagFocus","_getScrollPosition","_getBorderPosition","_getFocusedTagPosition","isScrollLeft","maxFilterQueryLength","tagTemplate","hideSelectedItems","maxDisplayedTags","showMultiTagOnly","onMultiTagPreparing","_selectedItems","_initSelectAllValueChangedAction","_initMultiTagPreparingAction","_multiTagPreparingAction","_multiTagPreparingHandler","selectedCount","_data$text","$tagContent","_toggleSubmitElement","$options","useDisplayText","_tagElementsCache","isSingleLineMode","_initTagTemplate","_getNewLabelId","actualId","newId","shouldRemove","_updateElementAria","newLabelId","_renderTagRemoveAction","_renderSingleLineScroll","_tagTemplate","isDefaultFieldTemplate","tagRemoveAction","_removeTagHandler","mouseWheelEvent","isMultiline","_tagContainerMouseWheelHandler","_renderPreventBlurOnInputClick","_renderMultiSelect","_selectAllValueChangeAction","_setListDataSourceFilter","_renderInputSize","_renderTags","shouldClearFilter","isEmptyInput","canTypeText","$calculationElement","_updateWidgetHeight","_multiTagRequired","_renderMultiTag","$tag","multiTagElement","_getFilter","filterQueryLength","_getFilteredItems","_this$_loadFilteredIt","_loadFilteredItemsPromise","FilterCreator","listSelectedItems","isListItemsLoaded","clientFilterFunction","selectedItemsAlreadyLoaded","_isDataSourceChanged","mappedItems","_createTagsData","isValueExprSpecified","filteredValues","filteredItem","filteredItemValue","loadItemPromises","_createTagData","_isGroupedData","_getItemsByValues","_getFilteredGroupedItems","_filteredGroupedItemsLoadPromise","_loadTagsData","tagData","filteredItemsPromise","isPlainDataUsed","_shouldGetItemsFromPlain","_valuesToUpdate","_getItemsFromPlain","_renderTagsImpl","_renderTagsCore","_renderEmptyState","_getSelectedItemsFromList","_filterSelectedItems","_isInputReady","tagsContainer","_this$_isInputReady","_cleanTags","_renderTagsElements","$multiTag","_renderTag","_refreshTagElements","$tags","_applyTagTemplate","_getTag","_getItemModel","tagId","_createTag","tagsLength","_removeTagWithUpdate","_removeTag","_lastValue","removedItem","_addTag","listSelectionChangeEvent","_valueIndex","useButtons","valueIndex","indexByValues","originalHeight","currentHeight","_resetListDataSourceFilter","_userFilter","valueGetterExpr","_dataSourceFilterExpr","_dataSourceFilterFunction","_getSortedListValues","listValues","_getListValues","existedItems","firstArray","secondArray","getIntersection","_defaultTagTemplate","_getSelectedItemsDifference","previousItems","previousItemsValuesMap","RADIO_BUTTON_CLASS","$radio","$radioContainer","_getItemValue","_renderRadios","_getSelectedItemKeys","_setSelection","_updateItemsSize","_areRadiosCreated","$radios","RadioCollection","_radios","_this$_radios","_this$_radios2","RadioGroup","eOe","_menuEnabled","_deleteEnabled","_fireMenuAction","CONTEXTMENU_CLASS","_renderOverlay","_$menuList","_renderMenuContent","_menuItemClickHandler","_$itemWithMenu","EditDecoratorMenuHelperMixin","POINTER_DOWN_EVENT_NAME","SWITCHABLE_DELETE_READY_CLASS","SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS","SwitchableEditDecorator","_$topShield","_$bottomShield","_$itemContentShield","_cancelDeleteReadyItem","_$readyToDeleteItem","_cancelDelete","_toggleDeleteReady","readyToDelete","_isReadyToDelete","_toggleShields","_toggleScrolling","_cacheReadyToDeleteItem","_animateToggleDelete","_updateShieldsHeight","_toggleContentShield","listTopOffset","listHeight","dirtyTopShieldHeight","dirtyBottomShieldHeight","_cancelScrolling","_enablePositioning","_prepareDeleteReady","_animatePrepareDeleteReady","_forgetDeleteReady","_animateForgetDeleteReady","_disablePositioning","_getDeleteButtonContainer","_isRtlEnabled","SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS","SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_CLASS","SwitchableButtonEditDecorator","$buttonWrapper","$buttonInnerWrapper","_$buttonContainer","listWidth","buttonWidth","_buttonWidth","_buttonContainerWidth","$toggle","SLIDE_MENU_WRAPPER_CLASS","SLIDE_MENU_CONTENT_CLASS","SLIDE_MENU_BUTTONS_CONTAINER_CLASS","SLIDE_MENU_BUTTONS_CLASS","SLIDE_MENU_BUTTON_CLASS","_$buttons","_renderDeleteButton","_renderMenuButton","_fireAction","$menuButton","$deleteButton","_cachedNode","$slideMenuContent","_cacheItemData","_setPositions","signCorrection","isItemReadyToDelete","_getCurrentPositions","_getStartPositions","_cachedItemWidth","_cachedButtonWidth","buttonsContainer","startPositions","_$cachedContent","_minButtonContainerLeftOffset","endedAtReadyToDelete","_animateToPositions","durationTimePart","_renderItemPosition","_itemElementWidth","_popupInstance","infoMap","TaskEdit","TaskEditDialogInfo","Resources","ResourcesEditDialogInfo","Confirmation","ConfirmDialogInfo","ConstraintViolation","ConstraintViolationDialogInfo","_apply","_dialogInfo","getResult","afterClosing","_afterClosing","getToolbarItems","getMaxWidth","getContentTemplate","applyAction","hideAction","_applyAction","_hideAction","_editingOptions","_getFormItems","_getFormCssClass","_getFormData","_updateParameters","_getToolbarItem","_getYesToolbarItem","_getNoToolbarItem","localizationText","getFormData","DialogInfoBase","readOnlyRange","enableRangeEdit","_isReadOnlyField","_isHiddenField","isValidationRequired","correctDateRange","getCorrectDateRange","_getValidationMessage","showResourcesDialogCommand","showTaskEditDialogCommand","isStartDependencies","correctDate","_getFormattedDateText","assigned","_this$_form","textBox","addButton","resourceName","createItem","_getConfirmMessage","titleMessage","hasCriticalErrors","severalErrors","errorsCount","deleteMessage","moveMessage","_treeList","getTreeListTableStyle","_getTreeListTable","verticalAlign","getTreeListColCount","_getHeaderView","getTreeListHeaderInfo","_getHeaderElement","styleForExport","_getColumnWidth","getTreeListCellInfo","_cell$textContent","_getDataCell","_getColumnCellStyle","extraLeftPadding","_getEmptySpaceWidth","_getDisplayText","getTreeListEmptyDataCellInfo","_ensureColumnWidthCache","_this$_cache","_this$_cache$_columnW","_header$clientWidth","emptyWidth","_this$_cache2","_this$_cache2$_emptyW","_element$offsetWidth","_getTreeListElement","_ensureColumnCellStyleCache","_this$_cache3","_this$_cache3$_column","_getTask","_ensureTaskCache","_this$_cache4","_this$_cache4$_tasks","_this$_cache$tasks","_this$_cache$tasks$ke","_findTaskByKey","_getGridDisplayText","GANTT_MAPPED_FIELD_REGEX","_getMappedFieldName","coreField","coreFieldName","mappedFieldsData","mappedFieldName","mappedField","coreFields","_setTreeListDimension","_this$_gantt$_ganttTr","_$treeListWrapper","_setGanttViewDimension","_$ganttView","_setGanttViewOption","_getPanelsWidthByOption","_leftPanelWidth$index","_leftPanelWidth$index2","ganttWidth","onAdjustControl","updateGanttWidth","setGanttHeight","setInnerElementsWidth","updateGanttRowHeights","_this$_gantt$_ganttVi","getRowHeight","_getGanttViewOption","_ganttViewCore","updateRowHeights","adjustHeight","getOffsetHeight","takeWithFromOption","_this$_gantt$_ganttVi2","mainWrapperHeight","_$toolbarWrapper","resetAndUpdate","getTaskTooltipContentTemplateFunc","taskTooltipContentTemplateOption","getTaskDataByCoreData","getTaskProgressTooltipContentTemplateFunc","getTaskTimeTooltipContentTemplateFunc","getTaskContentTemplateFunc","taskContentTemplateOption","taskData","_createControl","createItems","_createItemsCore","_createItemByText","_getDefaultItemOptions","_createSeparator","_createDefaultItem","_getIcon","_getItemsCache","commandId","itemsCache","updateItemsList","isContextMenu","completeUpdate","Bar","ToolbarMenu","_executeCoreCommand","_getDefaultItems","foreachNodes","ignoreHasChildren","ColumnsController","getFirstDataColumnIndex","visibleColumnsLength","firstDataColumnIndex","queryByOptions","isFullBranchFilterMode","DataSourceAdapterTreeList","applySorting","_createKeyGetter","getKeyExpr","_createKeySetter","createParentIdGetter","createParentIdSetter","_createItemsGetter","_createHasItemsGetter","_createHasItemsSetter","_updateIndexByKeyObject","_calculateHasItems","parentIds","isFullBranch","_isChildrenLoaded","_fillVisibleItemsByNodes","nodeByKey","_createNodesByItems","visibleByKey","_nodeByKey","_convertDataToPlainStructure","isConverted","_parentIdSetter","_createIdFilter","parentIdFilters","expandVisibleNodes","_isReload","collapseVisibleNodes","_getParentIdsToLoad","parentIdsToLoad","expandedRowKeys","_generateInfoToLoad","needChildren","keyMap","resultKeyMap","resultKeys","needToLoad","_loadParentsOrChildren","needLocalFiltering","concatLoadedData","loadedData","cachedNodes","_loadParents","_loadChildrenIfNeed","_updateHasItemsMap","processedChanges","_applyInsert","_applyRemove","changesToProcess","_setHasItems","hasItemsSetter","_hasItemsSetter","baseChanges","parentKeyOf","getChildNodeKeys","_fillNodes","needToExpand","_processTreeStructure","_rootNode","_isNodesInitializing","resultData","_totalItemsCount","filterMode","isExpandedByKey","indexExpandedNodeKey","getNodeLeafKeys","loadDescendants","childrenOnly","childKeys","forEachNode","_getNodeLevel","_loadOnOptionChange","expandNodesOnFiltering","onNodesInitialized","TREELIST_TEXT_CONTENT","TREELIST_EXPANDED_CLASS","TREELIST_COLLAPSED_CLASS","RowsView","createIcon","_renderIconContainer","_renderIcons","_renderCellCommandContent","isExpandIcon","TreeList","origApplyState","TREELIST_EXPAND_ICON_CONTAINER_CLASS","EditingController","addRowByRowIndex","parentKeyGetter","parentIdSetter","originalRowClick","originalRowDblClick","validateClick","originalClickHandler","needToCallOriginalClickHandler","RowsViewExtender","EditingControllerExtender","oldDefaultOptions","originalDataSourceAdapterExtender","originalHandleDataChanged","nodeExists","isRecursiveSelection","updateSelectionState","_selectionStateByKey","cached","_getSelectAllNodeKeys","visibleKeys","hasIndeterminateState","selectedVisibleKeys","_normalizeSelectionArgs","_isSelectionNormalizing","keyboardKeys","_updateParentSelectionState","_updateChildrenSelectionState","_updateSelectionStateCore","_getSelectedParentKeys","useCash","selectedParentNode","_getSelectedChildKeys","keysToIgnore","ignoreKeyIndex","_normalizeParentKeys","parentNodeKeys","_normalizeChildrenKeys","_normalizeSelectedRowKeysCore","isSelect","_isModeLeavesOnly","_removeDuplicatedKeys","_getAllChildKeys","_getAllSelectedRowKeys","parentKeys","_getParentSelectedRowKeys","_getLeafSelectedRowKeys","renderSelectAll","_isFocusedRowInside","parentData","expandAscendants","yOe","treeListNode","_treeListNode$parent","collapsed","_resetHash","applyNodes","_removeNonExistentNodes","_applyNode","_validateHash","saveExpandedState","expandedKeys","_hasCollapsed","_forEachState","getExpandedKeys","_nodeHash","_getNodeState","existingKeys","_removeStateWithChildren","nodeState","GanttTreeListNodeState","_expandTreelineToNode","_$treeList","getTreeList","dxTreeList","createDataSource","_tasksRaw","_getHeight","_onSelectionChanged","_onRowCollapsed","_onRowExpanded","_onNodesInitialized","_disableDeprecationWarnings","onAfterTreeListCreate","_postponedGanttInitRequired","_initGanttOnContentReady","_onTreeListContentReady","_initGanttView","_initScrollSync","_sortAndFilter","_sizeHelper","_onTreeListRowExpandChanged","_showPopupMenu","treeList","treeListScrollable","_onScroll","treeListScrollView","ganttViewTaskAreaContainer","getTaskAreaContainer","_correctRowsViewRowHeight","_skipUpdateTreeListDataSource","forceCustomData","getOption","showTaskEditDialog","saveExpandedKeys","visibleRowCount","getAllNodes","getNodesState","savedKeys","isExpandedStateChanged","expandedState","applyTasksExpandedState","_nodeState","GanttTreeListNodesState","_this$_treeList","_this$_treeList$getDa","_this$_treeList2","keys1","keys2","getHeaderHeight","getSievedItems","resultArray","_validateSourceData","_this$_treeList3","insertedId","_this$_treeList4","ganttViewWidget","updateView","isExternal","_onViewTypeChanged","_onDialogShowing","_onPopupMenuShowing","_onPopupMenuHiding","_expandAll","_collapseAll","_taskClick","_taskDblClick","_onAdjustControl","GanttView","Gantt","getGanttViewCore","_getTaskTitlePosition","_getFirstDayOfWeek","allowSelectTask","startDateRange","endDateRange","_parseEditingSettings","areHorizontalBordersEnabled","areAlternateRowsEnabled","_getViewTypeByScaleType","viewTypeRange","_parseViewTypeRangeSettings","cultureInfo","_getCultureInfo","sieve","getBarManager","barManager","executeCoreCommand","getCommandByKey","changeTaskExpanded","_this$_ganttViewCore","updateItemsState","_onDimensionChanged","onBrowserWindowResize","selectTaskById","keepExpandState","_this$_ganttViewCore2","updateWithDataReload","abbrMonthNames","abbrDayNames","quarterNames","_getQuarterNames","amText","_getAmText","pmText","_getPmText","_hasAmPM","toLocaleTimeString","quarterFormat","allowDependencyDelete","allowDependencyInsert","allowTaskDelete","allowTaskInsert","allowTaskUpdate","allowResourceDelete","allowResourceInsert","allowResourceUpdate","allowTaskResourceUpdate","_sieveOptions","setShowResources","setShowDependencies","setTaskTitlePosition","setFirstDayOfWeek","setStartDateRange","setEndDateRange","setAllowSelection","setEditingSettings","setValidationSettings","setRowLinesVisible","setViewType","setViewTypeRange","setStripLines","setTaskTooltipContentTemplate","setTaskProgressTooltipContentTemplate","setTaskTimeTooltipContentTemplate","setTaskContentTemplate","getGanttTasksData","sieveOptions","getSieveOptions","sievedItems","sieveColumn","expandTasks","getGanttDependenciesData","getGanttResourcesData","getGanttResourceAssignmentsData","getGanttWorkTimeRules","getExternalTaskAreaContainer","_taskAreaContainer","TaskAreaContainer","prepareExternalTaskAreaContainer","changeGanttTaskSelection","onGanttScroll","showDialog","getModelChangesListener","getExportInfo","showPopupMenu","hidePopupMenu","adjustControl","getRequireFirstLoadParentAutoCalc","onGanttViewContextMenu","getFormattedDateText","datePart","timeFormat","onTaskAreaSizeChanged","updateGanttViewType","callExportHelperMethod","_this$_ganttViewCore3","_waitingForGanttViewReady","_waitingForTreeListReady","_completionActions","onGanttViewReady","_stopWaitForGanttViewReady","executeActionsIfPossible","onTreeListReady","_stopWaitForTreeListReady","addCompletionAction","waitGanttViewReady","waitTreeListReady","_startWaitForGanttViewReady","_startWaitForTreeListReady","_canExecuteActions","GANTT_NEW_TASK_CACHE_KEY","_initGantt","_isGanttRendered","_initHelpers","_$toolbar","_$mainWrapper","_$dialog","_$loadPanel","_$contextMenu","_this$_ganttView","_exportHelper","_contentReadyRaised","_this$_ganttView2","_refreshGantt","_isMainElementVisible","_renderTreeList","_renderSplitter","GanttTreeList","GanttToolbar","_updateToolbarContent","_contextMenuBar","GanttContextMenuBar","_updateContextMenu","GanttMappingHelper","GanttCustomFieldsManager","GanttActionsManager","_ganttTemplatesManager","GanttTemplatesManager","GanttSizeHelper","_dataProcessingHelper","GanttDataChangesProcessingHelper","headerHeight","_dependencies","_resources","_resourceAssignments","mainElement","onViewTypeChanged","onDialogShowing","onPopupMenuShowing","onPopupMenuHiding","_hidePopupMenu","onExpandAll","onCollapseAll","modelChangesListener","exportHelper","_getExportHelper","_onGanttViewContentReady","_isParentAutoUpdateMode","_treeListParentRecalculatedDataUpdating","_dataSourceChanged","dataSourceName","validatedData","_this$_ganttTreeList","_this$_ganttTreeList2","_this$_ganttTreeList3","_validateTaskData","parentIdGetter","validationTree","_validationTree$key","isRootTask","treeItem","_validationTree$paren","parentTreeItem","validKeys","_appendChildKeys","isTaskInsert","_executeFuncSetters","isTaskUpdated","isSieving","treeDataSource","_this$_ganttTreeList4","funcSetters","keysToUpdate","dataObject","_getDataSourceItem","_this$_savedSortFilte","_this$_savedSortFilte2","_this$_savedSortFilte3","sortedColumns","sortedState","sortedStateChanged","_compareSortedState","_savedSortFilterState","_c$filterValues","isClearSieving","state1","state2","_updateBarItemsState","contextMenuOptions","GanttDialog","updateContextMenu","targetType","targetKey","getDependencyData","_getDataSourceItemKeyGetter","dataOptionName","_this$_ganttView3","_this$_exportHelper","GanttExportHelper","_changeExpandAll","_lockRowExpandEvent","_promise","allExpandableNodes","nodesToExpand","getTaskResources","getVisibleTaskKeys","getVisibleDependencyKeys","getVisibleResourceKeys","getVisibleResourceAssignmentKeys","insertTask","deleteTask","updateTask","coreTaskData","insertDependency","deleteDependency","getResourceData","deleteResource","insertResource","taskKeys","getResourceAssignmentData","assignResourceToTask","resourceKey","taskKey","unassignResourceFromTask","unassignAllResourcesFromTask","scrollToDate","showResourceManagerDialog","showResourcesDialog","showTaskDetailsDialog","exportToPdf","_exportToPdf","_fullOptions$pdfDocum","_fullOptions$docCreat","_window$jspdf$jsPDF","_window$jspdf","_fullOptions$format","fullOptions","createDocumentMethod","docCreateMethod","pdfDocument","jsPDFDocument","jspdf","jsPDF","_this$_ganttView4","expandAllToLevel","expandToTask","collapseTask","expandTask","zoomIn","zoomOut","_this$_ganttTreeList5","_this$_sizeHelper","_this$_ganttTreeList6","_this$_actionsManager","_this$_actionsManager2","_this$_actionsManager3","_this$_actionsManager4","_this$_actionsManager5","_this$_actionsManager6","_this$_actionsManager7","_this$_actionsManager8","_this$_actionsManager9","_this$_actionsManager10","_this$_actionsManager11","_this$_actionsManager12","_this$_actionsManager13","_this$_actionsManager14","_this$_actionsManager15","_this$_actionsManager16","_this$_actionsManager17","_this$_actionsManager18","_this$_actionsManager19","_this$_actionsManager20","_this$_actionsManager21","_this$_actionsManager22","_this$_actionsManager23","_this$_actionsManager24","_this$_actionsManager25","_this$_actionsManager26","_this$_actionsManager27","_this$_ganttTreeList7","_this$_ganttTreeList8","_this$_ganttTemplates","_this$_ganttTemplates2","_this$_ganttTemplates3","_this$_ganttTemplates4","_this$_ganttTreeList9","_this$_sizeHelper2","_this$_sizeHelper3","_this$_ganttTreeList10","_this$_ganttTreeList11","_this$_ganttTreeList12","DxGanttModule","BaseTheme","Quill","Theme","quill","ExtImage","domNode","floatValue","blotName","ExtLink","Link","_data$href","HREF","innerText","FontStyle","whitelist","SizeStyle","AlignStyle","BaseModule","BaseQuillModule","addCleanCallback","handleOptionChangeValue","_collection","getByName","TABLE_FORMATS","TABLE_OPERATIONS","tableModule","getModule","tableFormats","tableBlot","$lineElements","getRowElements","tableBlotNames","tableBlots","fullPropertyName","_formatBlot","formatBlot","statics","descendBlot","descendant","blot","FORM_DIALOG_CLASS","_formDialog","beforeAddButtonAction","getCurrentTab","tabPanelIndex","isUpdating","isImageUpdating","tabsModel","createTabsModel","createTabs","formConfig","getFormConfig","updatePopupConfig","updateAddButtonState","showFormDialog","getActiveTabIndex","pasteImage","resetDialogPopupOptions","isDisableButton","setAddButtonDisabled","formDialogOption","getUpdateDialogFormData","createUrlTab","UrlTab","createFileTab","FileTab","tabName","_this$module$quill$ge","wrapperClasses","useTabbedItems","addButtonTextKey","getFormWidth","getItemsConfig","tabsConfig","tabController","getTabName","onFileSelected","createStrategy","UpdateUrlStrategy","AddUrlStrategy","BaseTab","FileStrategy","getQuillSelection","urlUpload","dependentEditor","previousDependentEditorValue","preventRecalculating","createKeepAspectRatioEditor","dependentEditorDataField","$widthEditor","widthEditor","$ratioEditor","heightEditor","modifyFormData","_this$formData$width","_this$formData$height","imgElement","getLeaf","deleteText","embedFormatIndex","_this$selection","fileUploadMode","isValidInternal","base64Upload","serverUpload","isBase64Editable","getFileUploaderOptions","fileUploaderOptions","insertEmbed","pasteIndex","correctSlashesInUrl","BORDER_STYLES_TRANSLATED","USER_ACTION","ICON_MAP","insertHeaderRow","_getToolbarModule","removeFormat","getToolbarModule","updateFormatWidgets","prepareLinkHandler","prepareImageHandler","prepareColorClickHandler","orderedList","prepareShortcutHandler","bulletList","alignLeft","alignCenter","alignRight","alignJustify","codeBlock","getDefaultClickHandler","history","increaseIndent","applyFormat","decreaseIndent","superscript","subscript","insertTable","prepareInsertTableHandler","getTableOperationHandler","insertRowAbove","insertRowBelow","insertColumnLeft","insertColumnRight","deleteTable","cellProperties","prepareShowFormProperties","tableProperties","_module$quill$getModu","currentSelectionParts","getTable","getTargetTableNode","rowBlot","tablePropertiesFormConfig","getCellPropertiesFormConfig","getTablePropertiesFormConfig","getFormConfigConstructor","savedOptions","dxForm","resetFormDialogOptions","formatArgs","isCursorAtLink","linkRange","linkOffset","LinkBlot","getQuill","getLinkRange","selectionHasEmbedContent","hasEmbedContent","getLinkFormItems","insertText","imageUploadOption","imageUploader","ImageUploader","shortcutValue","_getToolbarModule2","_updateFormatWidget","_getToolbarModule3","_tableFormats","alignmentEditorInstance","borderColorEditorInstance","backgroundColorEditorInstance","startTableWidth","tableWidth","tableStyles","startTextAlign","tableHeight","tableBackgroundColor","tableBorderStyle","borderTopStyle","tableBorderColor","borderTopColor","tableBorderWidth","borderTopWidth","tableAlign","_ref11","newHeight","newWidth","getAutoSizedElements","oldTableWidth","unfixTableWidth","newElementWidth","getLineElements","setLineElementsFormat","autoHeightRows","oldTableHeight","newElementHeight","applyTableDimensionChanges","verticalAlignmentEditorInstance","startCellWidth","cellStyles","cellHeight","getColorFromFormat","cellBackgroundColor","cellBorderStyle","cellBorderColor","cellBorderWidth","cellTextAlign","cellVerticalAlign","verticalPadding","cellPaddingTop","horizontalPadding","cellPaddingLeft","_ref12","$verticalCells","widthDiff","$nextColumnCell","prevColumnWidth","rowCell","applyCellDimensionChanges","ToolbarModule","TOOLBAR_WRAPPER_CLASS","ACTIVE_FORMAT_CLASS","SELECTED_STATE_CLASS","FORMAT_HOTKEYS","KEY_CODES","_toolbarWidgets","WidgetCollector","_formatHandlers","getFormatHandlers","getTableFormats","_addCallbacks","toolbarMenu","toolbarInstance","addContentInitializedCallback","updateHistoryWidgets","isSelectionChanged","updateTableWidgets","isApplied","_markActiveFormatWidget","_resetFormatWidget","_toggleClearFormatting","_$toolbarContainer","_subscribeFormatHotKeys","toolbarConfig","isInteractionDisabled","isMultilineMode","_this$options$multili","_detectRenamedOptions","addBinding","shortKey","_handleFormatHotKey","_updateButtonState","formatWidget","_handleObjectItem","buttonItemConfig","_prepareButtonItemConfig","selectItemConfig","_prepareSelectItemConfig","defaultButtonItemConfig","acceptableWidgetName","_ICON_MAP$name","iconName","localizeValue","_isReset","_hideAdaptiveMenu","_setValueSilent","baseItem","_getDefaultConfig","_getDefaultItemsConfig","historyModule","undoOps","redoOps","_updateManipulationWidget","isTableOperationsEnabled","isInsertTable","isOperationEnabled","hasFormats","_resetFormatWidgets","_getFormatWidgetName","_isColorFormat","_updateColorWidget","clearWidget","addClickHandler","DropImageModule","_dataTransfer$files","hasFiles","_addImage","_clipboardData$items","hasDataItems","imageData","_isImage","readableFile","getAsFile","ListPopupModule","renderPopup","_renderPreventFocusOut","renderList","_getPopupConfig","contentElem","listConfig","_getListConfig","selectionChangedHandler","insertEmbedContent","selectionChangedEvent","savePosition","Variable","Embed","startEscapeChar","endEscapeChar","escapeChar","dataset","varStartEscChar","varEndEscChar","varValue","VariableModule","PopupModule","$ofElement","_resetPopupPosition","mentionBounds","rootRect","variableData","KEYDOWN_EVENT","SCROLL_EVENT","MOUSEDOWN_EVENT","allowedTargets","_hideFrameWithContext","hideFrame","_framePositionChangedHandler","_prepareFramePositionChangedHandler","_createResizeFrame","ClickEvent","_isAllowedTarget","_$target","resizable","updateFramePosition","showFrame","_adjustSelection","_$resizeFrame","_handleFrameKeyDown","_deleteImage","targetTop","targetLeft","containerTop","containerLeft","_getQuillContainer","_Quill$find","deleteAt","DX_COLUMN_RESIZER_CLASS","DX_ROW_RESIZER_CLASS","minColumnWidth","minRowHeight","POINTERDOWN_EVENT","_tableResizeFrames","_minColumnWidth","_minSizeLimit","_minRowHeight","_quillContainer","_tableData","_applyResizing","forcedStart","_applyResizingImpl","_resizeHandlerWithContext","_findTables","_fixTablesWidths","_createResizeFrames","_updateFramesPositions","_updateFramesSeparators","_getQuillTextChangeHandler","_quillTextChangeHandler","oldContent","_isTableChanging","_removeResizeFrames","_updateTablesColumnsWidth","_getFrameForTable","_this$_framesForTable","_framesForTables","_windowResizeTimeout","actualTableWidth","lastTableWidth","_tableLastWidth","_updateColumnsWidth","_getWidthStyleValue","styleValue","lastWidth","_getTableDeterminantElements","_this$_tableLastWidth","columnsSum","_getColumnElementsSum","_this$_tableResizeFra","$lastTable","$tableLastWidth","$frame","_createTableResizeFrame","isColumnsCountChanged","isRowCountChanged","clearArray","_this$_framesForTable2","resizeFrame","_resizeFrame$$frame","resizerElementsSelector","_detachSeparatorEvents","$lineSeparators","$lineSeparator","tableResizeFrame","_updateFramePosition","_updateFrameSeparators","_isDraggable","_removeDraggable","$currentLineSeparator","lineResizerClass","dxDraggable","_getDirectionInfo","sizeFunction","positionCoordinate","positionStyleProperty","positionCoordinateName","_getSize","directionInfo","$determinantElements","determinantElementsSeparatorsCount","lineSeparators","_attachColumnSeparatorEvents","lineSeparator","_createDraggableElement","_fixColumnsWidth","_startLineSize","_startTableWidth","_startLineSeparatorPosition","_nextLineSize","_shouldRevertOffset","_isNextColumnWidthEnough","nextColumnNewSize","$nextColumnElement","eventOffset","isWidthIncreased","_nextColumnOffsetLimit","isWidthLimited","_shouldSetNextColumnWidth","_horizontalDragHandler","currentLineNewSize","isCurrentColumnWidthEnough","$nextLineElements","realWidthDiff","isTableWidthChanged","_$highlightedElement","_verticalDragHandler","rowHeightDiff","_this$_$highlightedEl","_isLastColumnResizing","_getBoundaryConfig","_this$_$highlightedEl2","boundaryConfig","directionClass","_currentDraggableElement","determinantElements","columnsWidths","_setColumnsRatioWidth","frameIndex","minWidthForColumns","_attachResizerTimeout","CONTEXT_MENU_EVENT","TableContextMenuModule","prepareCleanCallback","_enableContextMenu","_this$_contextMenu","_prepareContextMenuHandler","menuConfig","_getMenuConfig","showPropertiesForm","_targetElement","_prepareMenuItemConfig","_prepareMenuItems","_this$_formatHandlers","customItems","_isTableTarget","_setContextMenuPosition","startPosition","_this$_contextMenu2","ImageUploadModule","_handleServerUpload","_enableDragAndDropUploading","_disableDragAndDropUploading","_getUploaderModule","_uploaderModule","_this$_fileUploader","preventImageUploading","_initFileUploader","_onUploaded","_this$quill$getSelect","_handleInsertImages","filesField","uploads","ImageCursorModule","_storage","_this$_storage","_this$_storage$editor","editorKey","_Object$values$at","_this$_storage$editor2","Mention","contentNode","mentionValue","_templatesStorage","keyInTemplateStorage","baseContentRender","$marker","TemplatesStorage","MentionModule","KEYS","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","ENTER","ESCAPE","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","NAVIGATION_KEYS","ALLOWED_PREFIX_CHARS","_mentions","mentions","preparedTemplate","getMentionKeyInTemplateStorage","_attachKeyboardHandlers","onTextChange","_moveToItem","_selectItemHandler","enterBindings","bindings","_ignoreKeyHandler","_isMentionActive","defaultItemPosition","_activeListItems","compileGetters","_idGetter","_hasSearch","_focusFirstElement","markerLength","_activeMentionConfig","Delta","newDelta","retain","mention","updateContents","_getLastInsertOperation","ops","lastOperation","isLastOperationDelete","penultOperation","oldDelta","_isPopupVisible","_processSearchValue","_filterList","lastInsertOperation","checkMentionRequest","_isMarkerPartOfText","isOnNewLine","_getCharByIndex","getContents","_search","_resetFilter","mentionLeft","mentionTop","mentionHeight","leftOffset","QuillRegistrator","initialized","DirectionStyle","register","DropImage","Variables","Resizing","TableResizing","TableContextMenu","ImageUpload","ImageCursor","MentionsModule","_customModules","registerModules","modulesConfig","isModule","modulePath","getRegisteredModuleNames","_converters","addConverter","getConverter","ConverterController","setQuillInstance","quillInstance","toHtml","_isQuillEmpty","getSemanticHTML","_isDeltaEmpty","DIALOG_CLASS","MARKDOWN_VALUE_TYPE","editorsCount","HtmlEditor","variables","mediaResizing","tableResizing","customizeModules","tableContextMenu","allowSoftLineBreak","formDialogOptions","imageUpload","_mentionKeyInTemplateStorage","_cleanCallback","_contentInitializedCallback","_$htmlContainer","_$templateResult","_updateContainerMarkup","_createNoScriptFrame","srcdoc","sandbox","_removeXSSVulnerableHtml","frameDocumentBody","removeInlineHandlers","scriptNode","sanitizedHtml","_isMarkdownValue","_prepareMarkdownConverter","_markdownConverter","sanitizedMarkup","MarkdownConverter","_prepareConverters","_prepareQuillRegistrator","_quillRegistrator","_getRegistrator","_deltaConverter","DeltaConverter","_contentRenderedDeferred","_renderHtmlEditor","_renderFormDialog","_addKeyPressHandler","_getModulesConfig","_quillInstance","_textChangeHandlerWithContext","_textChangeHandler","_renderScrollHandler","_hasTranscludedContent","_updateContentTask","_applyTranscludedContent","_finalizeContentRendering","initScrollData","valueOption","setContents","wordListMatcher","insertOperation","listDecoratorMatches","getIndent","operations","newLineOperation","removeNewLineChar","getListType","getWordMatcher","_getModuleConfigByOption","imageCursor","_getBaseModuleConfig","uploader","imageBlot","onKeydown","matchers","_getCustomModules","userOptionName","htmlMarkup","convertedValue","_updateValueByType","_isNullValueConverted","_isEditorUpdating","clearHistory","toMarkdown","_resetEnabledState","_editorInstance","_popupUserConfig","_attachOptionChangedHandler","_updateFormLabel","_escKeyHandler","_addEscapeHandler","_renderForm","callAddButtonAction","popupOption","_getDefaultFormOptions","formOption","formUserConfig","_prepareModuleOptions","_args$fullName","optionData","_moduleOptionChanged","moduleInstance","updatedValue","_updateHtmlContent","_repaintToolbar","_applyToolbarMethod","_abortUpdateContentTask","_applyQuillMethod","_applyQuillHistoryMethod","_this$getModule","getQuillInstance","formatLine","DxHtmlEditorComponent","mentionsChildren","DxHtmlEditor","allowSoftLineBreakChange","customizeModulesChange","imageUploadChange","mediaResizingChange","mentionsChange","tableContextMenuChange","tableResizingChange","valueTypeChange","variablesChange","DxHtmlEditorModule","_zeroPosition","rhombus","_inverted","minSide","maxSide","_minBound","_maxBound","_lineStart","_lineEnd","_textPosition","backPosition1","backPosition2","crossCenter","alongCenter","LinearRangeContainer","dxLinearGauge","_getInvertedState","textCorrection","isIndentPositive","selectRectBySizes","totalSize","linearIndicators","DxLinearGaugeComponent","DxLinearGauge","rangeContainerChange","scaleChange","subvalueIndicatorChange","subvaluesChange","valueIndicatorChange","DxLinearGaugeModule","REORDER_HANDLE_CLASS","_groupedEnabled","_lockedDrag","_dragTemplate","_dragChangeHandler","_reorderHandler","_sameParent","$dragging","DxListComponent","menuItemsChildren","DxList","allowItemDeletingChange","bounceEnabledChange","collapsibleGroupsChange","indicateLoadingChange","itemDeleteModeChange","itemDraggingChange","menuItemsChange","menuModeChange","nextButtonTextChange","pageLoadingTextChange","pageLoadModeChange","pulledDownTextChange","pullingDownTextChange","pullRefreshEnabledChange","refreshingTextChange","scrollByContentChange","scrollByThumbChange","scrollingEnabledChange","searchEditorOptionsChange","searchEnabledChange","searchValueChange","selectAllModeChange","selectAllTextChange","showScrollbarChange","showSelectionControlsChange","useNativeScrollingChange","DxListModule","DxLoadIndicatorComponent","DxLoadIndicator","indicatorSrcChange","DxLoadIndicatorModule","DxLoadPanelComponent","DxLoadPanel","containerChange","copyRootClassesToWrapperChange","delayChange","hideOnParentScrollChange","maxHeightChange","maxWidthChange","messageChange","minHeightChange","minWidthChange","shadingColorChange","showPaneChange","wrapperAttrChange","DxLoadPanelModule","LOOKUP_FIELD_WRAPPER_CLASS","LIST_ITEM_SELECTED_CLASS","Lookup","searchPlaceholder","searchStartEvent","cleanSearchOnOpening","clearButtonText","dropDownCentered","_scrollToSelectedItemEnabled","_initScrollAction","_initPageLoadingAction","_initPullRefreshAction","_pullRefreshHandler","_pageLoadingHandler","_$field","_$fieldWrapper","_renderFieldTemplate","isFieldEmpty","_searchBox","scrollToSelectedItemEnabled","_setPopupPosition","listItems","_getDifferenceOffsets","selectedListItem","_isCenteringEnabled","_getPopupOffset","listItemsCount","differenceOfHeights","lookupOffset","dropDownHeightOption","MATERIAL_LOOKUP_LIST_PADDING","popupContentParent","popupOffset","_listItemGroupedElements","_calculateListHeight","_$searchWrapper","_renderPopover","popupOptionValue","clearButton","_getClearButtonConfig","_resetValue","_currentSelectedItem","_$searchBox","_toggleSearchClass","$searchWrapper","$searchBox","isKeyboardListeningEnabled","textBoxOptions","_registerSearchKeyHandlers","_setSearchPlaceholder","_removeSearch","_selectListItemHandler","_selectListItem","_setAriaTargetForList","_getSelectionChangedHandler","_runWithoutCloseOnScroll","_hideOnParentScrollTimer","_this$_searchBox","DxLookupComponent","DxLookup","cleanSearchOnOpeningChange","clearButtonTextChange","dropDownCenteredChange","fullScreenChange","searchPlaceholderChange","searchStartEventChange","showCancelButtonChange","showDataBeforeSearchChange","usePopoverChange","DxLookupModule","_defaultRouteWeight","_defaultRouteOpacity","_defaultRouteColor","_mapWidget","routeOptions","_applyFunctionIfNeeded","updateMapType","updateBounds","updateCenter","updateZoom","updateControls","updateMarkers","markerOptionsToRemove","markerOptionsToAdd","removeValue","addMarkers","removeMarkers","updateRoutes","routeOptionsToRemove","routeOptionsToAdd","addRoutes","removeRoutes","isEventsCanceled","setOptionSilent","_keyOption","providerName","_parseTooltipOptions","_getLatLng","numericRegex","_areBoundsSet","_addEventNamespace","fnName","actionArguments","_fireClickAction","_fireMarkerAddedAction","_fireMarkerRemovedAction","_fireRouteAddedAction","_fireRouteRemovedAction","GoogleStaticProvider","_locationToString","latLng","_updateMap","mapRendered","requestOptions","_markersSubstring","_routeSubstrings","markerIcon","routePoint","DynamicProvider","_geocodeLocation","_geocodedLocations","cachedLocation","_geocodeLocationImpl","geocodedLocation","_load","_mapsLoader","_loadImpl","_markers","_routes","_addMarker","markerObjects","_fitBounds","markerObject","_renderMarker","originalMarker","markersOptionsToRemove","markerOptionToRemove","_removeMarker","markersOptionToRemove","markerIndex","_destroyMarker","_clearMarkers","_addRoute","routeObjects","routeObject","_renderRoute","originalRoute","routeIndex","_removeRoute","_destroyRoute","_clearRoutes","_clearBounds","_extendBounds","northEast","southWest","_bounds","CustomMarker","googleMapsLoader","GOOGLE_MAP_READY","googleMapsLoaded","google","maps","GoogleProvider","_mapType","mapTypes","hybrid","MapTypeId","HYBRID","roadmap","ROADMAP","satellite","SATELLITE","_movementMode","movementTypes","driving","TravelMode","DRIVING","walking","WALKING","_resolveLocation","LatLng","Geocoder","geocode","address","GeocoderStatus","_normalizeLocationRect","locationRect","getNorthEast","getSouthWest","_loadMapScript","_$overlayContainer","setMap","OverlayView","getPanes","overlayMouseTarget","_clickListener","addDomListener","getProjection","fromLatLngToDivPixel","showDefaultUI","disableDefaultUI","_boundsChangeListener","_boundsChangeHandler","_clickActionHandler","_preventZoomChangeEvent","getZoom","setMapTypeId","LatLngBounds","fitBounds","setCenter","setZoom","gestureHandling","htmlOffset","Marker","iconSrc","infoWindow","markerClickAction","markerNormalizedLocation","InfoWindow","origin","destination","waypoints","stopover","optimizeWaypoints","travelMode","DirectionsService","DirectionsStatus","directionOptions","suppressMarkers","preserveViewport","polylineOptions","strokeWeight","strokeColor","DirectionsRenderer","zoomBeforeFitting","zoomAfterFitting","msMapsLoader","BING_MAP_READY","msMapsLoaded","Microsoft","Maps","BingProvider","road","aerial","Directions","RouteMode","SearchManager","where","searchResponse","boundsBox","latitude","longitude","northWest","getNorthwest","southEast","getSoutheast","loadModule","_createMap","credentials","showDashboard","showMapTypeSelector","showScalebar","_providerViewChangeHandler","Events","addHandler","_viewChangeHandler","_providerClickHandler","labelOverlay","LabelOverlay","mapTypeId","LocationRect","fromLocations","pushpinOptions","htmlContent","pushpin","Pushpin","entities","infobox","Infobox","DirectionsManager","routeColor","fromHex","setRenderOptions","autoUpdateMapView","displayRouteSelector","waypointPushpinOptions","drivingPolylineOptions","strokeThickness","walkingPolylineOptions","setRequestOptions","routeMode","routeDraggable","waypoint","Waypoint","addWaypoint","directionHandlers","routeSummary","responseCode","calculateDirections","PROVIDERS","googleStatic","bing","MAP_SHIELD_CLASS","autoAdjust","markerIconSrc","onMarkerAdded","onMarkerRemoved","onRouteAdded","onRouteRemoved","apiKey","onReady","_lastAsyncAction","_checkOption","_initContainer","_grabEvents","_cancelEvent","_provider","_saveRendered","_renderShield","_queueAsyncAction","$shield","_suppressAsyncAction","changeBag","_optionChangeBag","isActionSuppressed","_triggerReadyAction","originalMap","_triggerUpdateAction","addMarker","_addFunction","removeMarker","_removeFunction","addRoute","removeRoute","addingValue","addingValues","_partialArrayOptionChange","removingValue","removingValues","removingIndex","removing","DxMapModule","DxMenuModule","DxMultiViewModule","DxNumberBoxComponent","DxNumberBox","formatChange","invalidValueMessageChange","modeChange","showSpinButtonsChange","stepChange","useLargeSpinButtonsChange","DxNumberBoxModule","seriesSpacing","LEGEND_ACTIONS","shiftCallback","inverseDirection","overlapped","pieSizeEqualizer","li","pies","getSizeGroup","removeFromList","minPie","getSizeGroupLayout","sizeGroupLayout","dxPieChart","correctPercentValue","sizeGroup","maxPointCount","legendItem","itemsByArgument","argumentCount","_getLayoutSeries","drawnLabels","_sizeGroupLayout","_getLayoutSeriesForEqualPies","innerRad","lengthVisibleSeries","_setGeometry","pointState","getLegendItemAction","labelsWereOverlapped","wordWrapApplied","iterationCount","seriesByPosition","labelsOverlapped","resolveOverlappedLabels","shiftInColumnFunction","dividePoints","_getVerticallyShiftedAngularCoords","_abstractSeries","_updateAxesLayout","annotationsPlugins","DxPieChartComponent","DxPieChart","diameterChange","innerRadiusChange","minDiameterChange","segmentsDirectionChange","sizeGroupChange","startAngleChange","DxPieChartModule","FORMAT_DICTIONARY","UNBIND_KEY","lastFieldIndex","getAreaFields","putDataFieldsInto","dataFieldsDisplayMode","valueAxisSettings","ChartIntegrationMixin","bindChart","updateChart","grandTotalText","chartOptions","customizeChart","createValueAxisOptions","createPanesOptions","axisDictionary","pivotGridDataSource","mapOptions","measureIndex","rowMemberIndex","rowVisibility","rowPathFormatted","rowPath","columnMemberIndex","columnVisibility","columnPath","columnPathFormatted","grandTotalColumnIndex","grandTotalRowIndex","rowLevel","columnLevel","dataCell","processCellArgs","maxRowLevel","maxColumnLevel","dataValues","chartDataItem","processCell","processedCell","processDataCell","rowMembers","columnMembers","alternateDataFields","foreachDataField","foreachRowColumn","createDataItem","createChartDataSource","createChartOptions","chartElement","getChartInstance","unbind","removeBinding","disposeBinding","getScrollableInstance","normalizedParams","isSameParams","getRealElementWidth","viewPortSize","halfTableCount","halfTableSize","AreaItem","_createTableElement","cellText","isWhiteSpace","_getRowClassNames","_applyCustomStyles","cssArray","sorted","classArray","_getMainElementMarkup","_getCloseMainElementMarkup","_renderTableContent","rowClassNames","_getAreaName","tbody","td","cellsCount","_span","span","_span2","_triggerOnCellPrepared","onCellPreparedArgs","areaName","defaultActionArgs","_trigger","_getRowHeight","_setRowHeight","getRowsLength","getRowsHeight","rowsLength","setRowsHeight","totalHeight","valuesLength","_tableHeight","getColumnsWidth","processedCells","fillCells","rowOffset","columnOffset","setColumnsWidth","_colgroupElement","getColumnsCount","_tableWidth","tableLayout","resetColumnsWidth","setGroupWidth","setGroupHeight","getGroupHeight","_getGroupElementSize","getGroupWidth","headElement","_setTableCss","setVirtualContentParams","_virtualContent","disableVirtualMode","_renderVirtualContent","_fakeTable","_updateFakeTableVisibility","horizontalOffsetName","fakeTableElement","_moveFakeTableHorizontally","offsetStyleName","getFakeTableOffset","_moveFakeTableTop","_moveFakeTable","_createFakeTable","_getMemoizeScrollTo","_memoizeScrollTo","getMemoizeScrollTo","_getMaxLeftOffset","scrollablePos","memoizeScrollTo","DataArea","columnType","renderScrollable","getUseNativeValue","updateScrollableOptions","getScrollableDirection","LocalStore","fieldSelector","intervalSelector","levels","getDataSelector","prepareFields","getDateValue","expandedPaths","pathHash","dimensionValue","hierarchyItem","hierarchyItems","childrenHash","expandedPathsHash","fillHierarchyItemIndexesCore","cellSet","generateHierarchyItems","fillHashExpandedPath","measures","aggregationCells","aggregatorIndex","cellField","getAggregator","isAggregatorSeedFunction","cellSetIndex","valueOfFilter","valueOfField","areValuesEqual","createDimensionFilters","expandedDimensions","expandValue","fieldSelectors","processFilter","customizeStoreLoadOptionsHandler","loadDeferred","loadDataSource","filterDataSource","fillSelectorsByFields","_progressChanged","onProgressChanged","getFields","getFieldSelectors","prepareLoadOption","notifyProgress","columnsHash","rowsHash","generateAggregationCells","aggregationStep","supportPaging","drillDownItems","maxRowCount","customColumns","pathFilter","dimensionOptions","useSortOrder","dimensionOption","numericInterval","isExcludedFilterType","fieldFilterExpressions","currentExpression","createFieldFilterExpressions","getFieldFilterSelector","expression","getIntervalFilterExpression","getFilterExpressionForFilterValue","filterExpressions","fieldExpressions","notEmpty","valuesArray","rowHash","columnHash","dimensionName","parentItem","parentPathValue","dimensionHash","displayText","rowSkip","columnSkip","columnItem","rowItem","currentRowIndex","firstCollapsedFieldIndex","startSliceIndex","expandedIndex","expandedLevel","commonFilters","oppositeDimensionName","getExpandedPathSliceFilter","includeTotalSummary","firstCollapsedIndex","RemoteStore","normalizedArguments","pivotGridUtils","requestsData","rowExpandedLevel","columnExpandedLevel","columnExpandedIndex","getExpandedIndex","firstCollapsedColumnIndex","getFirstCollapsedIndex","firstCollapsedRowIndex","rowExpandedIndex","columnTotalsOptions","getGrandTotalRequest","getFiltersForDimension","getFiltersForExpandedDimension","rowFilterByExpandedPaths","getRequestsData","externalFilterExpr","hasRows","createFilterExpressions","createGroupingOptions","rowTake","columnTake","mergeFilters","summaryOption","createLoadOptions","parseResult","filterExp","COLUMN","ROW","NULL","calculatePercentValue","percentOfGrandTotal","percentOfParent","createAbsoluteVariationExp","allowCrossGroup","prevCell","summaryDictionary","percentOfColumnTotal","percentOfRowTotal","percentOfColumnGrandTotal","percentOfRowGrandTotal","getPrevCellCrossGroup","createRunningTotalExpr","fieldParams","fieldIndex","SummaryCell","fieldsCache","_columnPath","_rowPath","_fieldIndex","_fieldsCache","_descriptions","originalCell","postProcessedFlags","_cell","crossGroupCalculation","absoluteExp","absVar","createPercentVariationExp","isRunningTotalCalculation","allowResetting","getPathFieldName","_getDimension","cellConfig","dimensionPath","pathFieldName","childLevelField","fieldPos","getFieldPos","sliceCell","childIndex","arg2","fistArgIsBoolean","needCalculatedValue","isPostProcessed","expressions","expressionArg","xY","fieldId","getExpression","isEmptyGrandTotalRow","isEmptyGrandTotalColumn","LANGUAGE_CODES","tn","syr","iu","dv","quz","nso","ba","arn","moh","oc","qut","prs","sms","sma","smj","XmlaStore","discover","mdx","getElementsByTagName","responseText","languageId","getLanguageId","hierarchyName","elementsString","expandAllCount","slicePath","prevDimension","crossJoinArgs","prevHierarchyName","isLastDimensionInGroup","expandAllIndex","preparePathValue","allMember","getAllMember","getAllMembers","nextLevel","crossJoinElements","crossJoins","cellsString","totalsOnly","dimensionIndex","crossJoin","generateCrossJoin","withArray","fillCrossJoins","visibleLevels","axisSet","declare","skipValues","filterMembers","filterStringExpression","filterMdx","columnsFilter","rowsFilter","cubeName","axisStrings","mdxString","withString","countMembers","generateFrom","generateAxisFieldsFilter","slices","prepareDataFields","measureCount","addSlices","generateAxisMdx","generateMdxCore","childTagName","getNodeText","cellsOriginal","errorDictionary","xmlCell","valueElement","errorElements","cellOrdinal","getNumber","levelName","parentName","grandTotalHash","getVisibleChildren","dataSourceAxis","axisTuples","tupleIndex","grandTotalIndex","faultElementNS","faultElement","errorElement","schema","translatedDisplayFolders","displayFolderField","getFirstChildText","levelNumber","defaultHierarchies","stringArray","group1","storeOptions","execXMLA","catalog","getLocaleIdProperty","cube","localeIdProperty","dimensionsRequest","measuresRequest","hierarchiesRequest","levelsRequest","dimensionsResponse","measuresResponse","hierarchiesResponse","levelsResponse","measureGroupsResponse","hierarchies","parseDiscoverRowSet","measureGroups","levelsByHierarchy","hierarchy","rowCountMdx","generateMDX","sendQuery","executeXml","rowCountXml","checkError","axisElement","tupleElement","tupleMembers","levelSum","membersCount","tuple","fillDataSourceAxes","parseCells","totalCountXml","customColumnsString","createDrillDownAxisSlice","coreMDX","columnNames","parseStringWithUnicodeSymbols","getAscOrder","sortingMethodByLevel","getMemberForSortBy","summaryValueSelector","sortBySummaryFieldIndex","areRows","sliceIndex","textPath","getSliceIndex","getFieldSummaryValueSelector","summaryCompare","getSortingMethod","DESCRIPTION_NAME_BY_AREA","STATE_PROPERTIES","CALCULATED_PROPERTIES","ALL_CALCULATED_PROPERTIES","initialProperties","calculatedProperties","resetFieldState","createCaption","PivotGridDataSource","findHeaderItem","headerItems","_cacheByPath","getHeaderItemsLastIndex","collapsedChildren","updateHeaderItemChildren","applyingHeaderItemsCount","emptyIndex","applyingItemIndexesToCurrent","needIndexUpdate","updateHeaderItems","newHeaderItems","parentItems","updateDataSourceCells","newDataSourceCells","newRowItemIndexesToCurrent","newColumnItemIndexesToCurrent","newRowCells","newCell","dataSourceCells","onLoadingChanged","prevLoadOptions","prevFields","srcField","skipInitPropertySave","setFieldProperties","getFieldStateId","stateFields","fieldsById","getFieldsById","updateCalculatedFieldProperties","field1","field2","retrieveFieldsOptionValue","storeFields","fieldsDictionary","removedFields","getFieldId","mergedField","fieldKey","storeField","maxGroupIndex","mergedFields","_storeFields","mergeFields","_retrieveFields","formatHeaderItems","cacheByPath","areaFields","canAddFieldInArea","createLocalOrRemoteStore","xmlaStore","_isFieldsModified","retrieveFields","_createDescriptions","collectGroups","sortFieldsByAreaIndex","_fieldsPrepared","getFieldValues","applyFilters","loadFields","formatHeaders","_sort","Ne","_loadCore","currentField","groupingField","summaryUtils","currentFieldState","getFieldsState","skipLoading","ze","setFieldsState","getExpandedPaths","_hasPagingValues","oppositeIndex","takeField","skipField","oppositeArea","_headerItem","_processPagingCacheByArea","_headerItem2","_processPagingCache","applyPartialDataSource","isDataExists","mergePartialDataSource","sortDimension","sortLocal","expressionsUsed","areExpressionsUsed","updateCache","isRunningTotalUsed","collapseHeaderItem","dataChanged","areaOffsets","expandHeaderItem","hasCache","needExpandData","oppositeHeaderItem","oppositeHeaderItems","bt","delayedLoadTask","_isDisposed","createHeaderInfo","childrenStack","headerDescriptions","cellDescriptions","depthSize","getViewHeaderItems","headerDescriptionsCount","cellDescriptionsCount","viewHeaderItems","createHeaderItem","showTotalsPrior","isEmptyGrandTotal","hideTotals","hiddenTotals","hideData","hiddenValues","isTree","isAdditionalTotal","isValue","hiddenGrandTotals","isMetric","showEmpty","parentChildren","removeEmptyParent","sortBySummaryPaths","stringValuesUsed","indexesByDepth","breadth","infoItem","depthIndex","dataSourceIndex","addInfoItem","headerFields","headerField","rowsInfo","columnOffsetResetIndexes","indexedItem","dataAdapter","VirtualScrollControllerModule","_changingDuration","virtualScrollControllerChanged","createScrollController","totalRowCount","rowPageIndex","_columnsScrollController","totalColumnCount","columnPageIndex","_stateStoringController","_columnsInfo","_rowsInfo","_cellsInfo","expandValueChanging","progressChanged","startChanging","_lockChanged","_correctSkipsTakes","_calculatePagingForRowExpandedPaths","rowExpandedSkips","rowExpandedTakes","expandedPathIndexes","_calculatePagingForColumnExpandedPaths","expandedSkips","expandedTakes","skipByPath","takeByPath","fe","_processPagingForExpandedPaths","_savePagingForExpandedPaths","isOppositeArea","columnsScrollController","calculateVirtualContentParams","contentParams","virtualRowHeight","itemHeights","virtualColumnWidth","viewportWidth","itemWidths","contentTop","contentLeft","updateWindowScrollPosition","updateViewOptions","_handleExpandValueChanging","_handleProgressChanged","_handleFieldsPrepared","onFieldsPrepared","_expandValueChangingHandler","_fieldsPreparedHandler","_changedHandler","_progressChangedHandler","dataFieldsForRows","dataFieldsForColumns","grandTotalsAreHiddenForNotAllDataFields","showRowTotals","showRowGrandTotals","createSortPaths","hideEmptySummaryCells","rowHeaderLayout","showColumnTotals","showColumnGrandTotals","getHeaderIndexedItems","getRowsInfo","getAllData","scrollController","newRowsInfo","foreachRowInfo","rowInfo","realColumnIndex","getColumnsInfo","_rowPageSize","_columnPageSize","_columnPageIndex","getCellsInfo","dataFieldAreaInRows","dataRow","formatCellValue","DataController__internals","NO_DATA_AVAILABLE_TEXT","ExportController","_getLength","cellCount","_correctCellsInfoItemLengths","cellsInfo","expectedLength","_calculateCellInfoItemLength","columnsRow","rowsInfoItems","correctedCellsInfo","headerRowsCount","cellInfoItemLength","collapsedColumnCount","headerRowWithColumns","collapsedCount","rowIdx","colIdx","rowsArea","_rowsArea","columnsArea","_columnsArea","colsArea","getRowAreaColCount","getColumnAreaRowCount","_tryGetAreaName","isColumnAreaCell","isRowAreaCell","getDataFieldStyles","dataItemStyle","dataFieldStyles","getCellDataType","localizationNumber","CLASSES","ICONS","SORTABLE_CONST","SORTABLE_NAMESPACE","SORTABLE_CLASS","posHorizontal","onDragging","itemRender","groupSelector","itemContainerSelector","sourceClass","dragClass","targetClass","useIndicator","$sourceItem","$targetGroup","_indicator","_renderDraggable","_$draggable","dragEventsString","dragEventDrop","_getEventListener","_getItemOffset","itemsOffset","shouldInsert","sameLine","posVertical","checkHorizontalPosition","scrollWrapper","disposeScrollWrapper","$eventListener","$sourceGroup","elementIndex","draggingArgs","elementHasPoint","getTargetGroup","moveIfNeed","SCROLL_STEP","getScrollWrapper","targetSortable","getItemsOffset","isAnotherGroup","isSameIndex","isNextIndex","Ie","removeSourceElement","removeTargetElement","removeSourceClass","$itemArray","isAreaBox","isTreeList","getAreaBoxItemArray","getTreeViewItem","getDefaultItem","getItemArray","$wrappedTmpContainer","$wrappedItem","wrapItemsInFieldsContainer","SortableModule","HeaderFilterViewBase","FieldChooserBase","allowFieldDragging","applyChangesMode","remoteSort","_skipStateChange","getStringState","renderField","$fieldContent","$fieldElement","mainGroupField","getMainGroupField","renderSortable","pivotGrid","pivotGridFieldChooser","dragAndDropItemRender","_adjustSortableOnChangedArgs","invisibleFieldsIndexOffset","_processDemandState","fieldBeforeTarget","_getSortableOptions","isInstantlyMode","pivotGridState","_applyLocalSortChanges","fieldIdx","isHeaderFilter","isExcludeFilterType","preparedFilterValueByText","preparedFilterValue","isRemoteSort","reverseSortOrder","DIV","hasWindowFn","getDimensionFields","childrenItem","getFirstItem","compareOrder","FieldChooser","_expandedPaths","_dataChangedHandlers","skipStateSetting","_renderLayout0","$row1","$row2","$col1","$col2","$col3","$col4","_renderArea","_renderLayout1","_renderLayout2","_getContextMenuArgs","targetFieldElement","targetGroupElement","fieldCopy","_createTreeItems","groupFieldNames","groupFieldName","fieldsByGroup","_createFieldsDataSource","treeItems","compareItems","_renderFieldsTreeView","needSelectDefaultItem","_renderAreaFields","$fieldsContent","$areaContainer","$fieldsHeaderContainer","$fieldsContainer","resetTreeView","cancelChanges","FieldsArea","dxPopup","dxPivotGridFieldChooserBase","_rowPopup","_shouldCreateButton","fieldChooserBase","nextField","prevField","renderGroupConnector","PIVOTGRID_EXPAND_BORDER","isRenovatedScrollable","HorizontalHeadersArea","_scrollBarWidth","_getAreaClassName","thead","_virtualContentWidth","processScrollBarSpacing","groupAlignment","getScrollPath","getCellPath","VerticalHeadersArea","_virtualContentHeight","groupHeight","updateColspans","DATA_AREA_CELL_CLASS","ROW_AREA_CELL_CLASS","COLUMN_AREA_CELL_CLASS","DESCRIPTION_AREA_CELL_CLASS","BORDERS_CLASS","PIVOTGRID_CLASS","BOTTOM_BORDER_CLASS","FIELDS_CLASS","INCOMPRESSIBLE_FIELDS_CLASS","TR","TD","FIELD_CALCULATED_OPTIONS","sizeArray","borderStyleNames","computedStyle","borderStyleName","PivotGrid","fieldChooser","fieldPanel","showColumnFields","showFilterFields","showDataFields","showRowFields","onExpandValueChanging","renderCellCountLimit","_updateCalculatedOptions","_getDataControllerOptions","DataControllerImport","_updateLoading","_fieldChooserPopup","_renderFieldChooser","_dataArea","_renderDescriptionArea","dataArea","scrolled","_scrollUpdating","unsubscribeScrollEvents","subscribeToScrollEvent","_needDelayResizing","_pivotGridContainer","fieldChooserOptions","dxPivotGridFieldChooser","fieldChooserComponentOptions","_createEventArgs","_getContextMenuItems","oppositeAreaFields","sortingBySummaryItemCount","showDataFieldCaption","textFormat","clickedOnFieldsArea","_createFieldArgs","_createCellArgs","_handleCellClick","_renderNoDataText","loadPanelVisible","_startLoadingTime","$descriptionCell","$toolbarContainer","$filterHeader","$columnHeader","getFieldChooserPopup","_$buttonElement","_buttonOptions","_detectHasContainerHeight","_renderHeaders","rowHeaderContainer","columnHeaderContainer","filterHeaderContainer","dataHeaderContainer","_rowFields","_columnFields","_filterFields","_dataFields","_renderDataArea","dataAreaElement","DataAreaImport","_renderRowsArea","rowsAreaElement","HeadersArea","_renderColumnsArea","columnsAreaElement","updateHandler","bordersWidth","hasRowsScroll","hasColumnsScroll","rowsAreaWidth","dataAreaCell","rowAreaCell","columnAreaCell","descriptionCell","filterHeaderCell","columnHeaderCell","rowFieldsHeader","needSynchronizeFieldPanel","calculateHasScroll","areaSize","calculateGroupHeight","dataAreaHeight","descriptionCellHeight","filterAreaHeight","$dataHeader","dataHeaderHeight","getCommonBorderWidth","hasVerticalScrollbar","rowsAreaHeights","dataAreaHeights","columnsAreaRowCount","resultHeights","columnsAreaRowHeights","columnsAreaHeight","getArraySum","rowsAreaColumnWidths","adjustSizeArray","_diff","_diff2","_groupHeight","_setVirtualContentParams","updateScrollableResults","virtualContentParams","DxPivotGridModule","DxPivotGridFieldChooserModule","dxPolarChart","axisUserOptions","argumentAxisOptions","useSpiderWeb","_change_USE_SPIDER_WEB","sizeStorage","canvasClipRectID","_createClipPathForPane","_createClipCircle","layoutInfo","argAngle","translatedRadius","DxPolarChartModule","PopoverFull","DxPopoverComponent","DxPopover","enableBodyScrollChange","hideEventChange","showCloseButtonChange","showTitleChange","titleTemplateChange","toolbarItemsChange","DxPopoverModule","DxPopupComponent","DxPopup","dragAndResizeAreaChange","dragEnabledChange","dragOutsideBoundaryChange","resizeEnabledChange","restorePositionChange","DxPopupModule","DxProgressBarComponent","DxProgressBar","showStatusChange","statusFormatChange","DxProgressBarModule","DxRadioGroupComponent","DxRadioGroup","layoutChange","DxRadioGroupModule","utils","tickIntervalsInfo","isLeftPointer","_isLeftPointer","_isOverlapped","_border","SliderMarker","_getRectSize","textSize","_paddingLeftRight","_paddingTopBottom","_getTextSize","_getAreaPointsInfo","rectSize","rectWidth","rectHeight","rectLeftBorder","rectRightBorder","pointerRightPoint","pointerCenterPoint","pointerLeftPoint","isLeft","correctCloudBorders","checkPointerBorders","borderPosition","_range","_borderPosition","isCut","currentTextSize","pointsData","_textSize","updateSliderMarker","screenRange","_colors","getTracker","setValid","setOverlapped","isOverlapped","getBorderPosition","_sliderGroup","_marker","Slider","cancelAnimation","applyPosition","isAnimated","slider","_setValid","_setText","verticalRange","sliderHandleOptions","sliderMarkerOptions","_formatOptions","trackerWidth","sliderHandleWidth","getSliderTrackerWidth","getSliderTracker","setDisplayValue","getCloudBorder","middle","_lastSelectedRange","getSelectedRange","_processSelectionChanged","sliderParams","_areaTracker","_selectedAreaTracker","_shutter","_sliders","dummyProcessSelectionChanged","SlidersController","getTrackerTargets","selectedArea","sliders","selectedRange","updateSelectedRange","isCompactMode","rangeBounds","fullTicks","_verticalRange","_minRange","_maxRange","_animationEnabled","_allowSlidersSwap","buildRectPoints","_isCompactMode","_shutterOffset","_updateSelectedView","_isOnMoving","callValueChanged","_updateSelectedRange","_applyTotalPosition","setSelectedRange","suppressSetSelectedRange","restoreSetSelectedRange","areOverlapped","_applyAreaTrackersPosition","_applySelectedRangePosition","position1","position2","beginSelectedAreaMoving","_dockSelectedArea","_moveSelectedArea","moveSelectedArea","screenPosition","selectClosestValue","placeSliderAndBeginMoving","firstPosition","secondPosition","isGreater","isLess","antiCompare","beginSliderMoving","minPosition","maxPosition","staticPosition","compareMin","compareMax","swapOffset","invalidStateValue","_changeMovingSlider","foregroundSlider","eventTouches","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_MOUSE","isMultiTouches","getRootOffsetLeft","movingHandler","docEvents","isTouchEventArgs","isLeftButtonPressed","getEventPageX","stopPropagationAndPreventDefault","msTouchAction","_docEvents","initializeSelectedAreaEvents","initializeAreaEvents","initializeSliderEvents","RangeView","backgroundOption","backgroundTheme","isAnimationEnabled","seriesDataSource","canvasWidth","isShowChart","seriesList","getSeries","getBoundRange","drawSeriesView","SeriesDataSource","ChartThemeManager","createThemeManager","_indent","_hideChart","_calculateSeries","_seriesFamilies","dataSourceField","newSeries","chartThemeManager","barOptions","processSeriesFamilies","rangeData","rangeYSize","rangeVisibleSizeY","minIndent","maxIndent","valRange","argRange","getCalculatedValueType","getThemeManager","START_VALUE","VALUE","VALUE_CHANGED","CONTAINER_BACKGROUND_COLOR","getTextBBox","secondValue","typeFirstValue","typeSecondValue","validType","defaultLogarithmBase","visibleMarkers","labelScaleOptions","markerScaleOptions","tail","dxRangeSelector","baseWidgetModule","rangeViewGroup","slidersGroup","scaleGroup","AxisWrapper","_rangeView","_slidersController","lastSelectedRange","_rangeOption","_clientRect","_change_SCALE","_setValueByDataSource","selectedRangeUpdateMode","valueIsReady","__skipAnimation","_dataSourceIsAsync","rangesInfo","allScaleSelected","_change_SLIDER_SELECTION","_validateRange","ensureValueInvalid","__isResizing","currentAnimationEnabled","_completeSeriesDataSourceCreation","_createSeriesDataSource","calculatedValueType","validateStartEndValues","messageToIncidentOccurred","calculateValueType","checkLogarithmicOptions","prepareScaleOptions","argTranslatorRange","rangeForCategories","translatorRange","getFirstDayOfWeek","calculateTranslatorRange","ticksInfo","tickCountByInterval","tickCountByScreen","gridSpacingFactor","getNextTickInterval","calculateTickIntervalsForSemidiscreteScale","updateTickIntervals","checkDateMarkerVisibility","isEmptyInterval","startEndNotDefined","altIntervals","getIntervalCustomTicks","updateScaleOptions","isDateScale","isMarkerVisible","getDateMarkerVisibilityChecker","intervalX","updateTranslatorRangeInterval","_prepareSliderMarkersOptions","indents","indentOptions","leftMarkerHeight","rightMarkerHeight","placeholderWidthLeft","placeholderWidthRight","startTickValue","endTickValue","leftScaleLabelWidth","rightScaleLabelWidth","calculateMarkerHeight","calculateScaleLabelHalfWidth","calculateIndents","rangeContainerCanvas","calculateScaleAreaHeight","showScaleMarkers","_updateElements","isNotSemiDiscrete","_isUpdating","doNotSnap","isTypeDiscrete","isValueTypeDatetime","getPrecisionForSlider","majorUnit","getMinorTickIntervalUnit","nearestLabelsIndexes","checkLabelsOverlapping","getTwoVisibleLabels","_updateSelectedRangeCallback","getSharpDirection","checkShiftedLabels","prepareAxisOptions","markerTrackers","onPointerDown","createDateMarkersEvent","LoadingIndicatorPlugin","RangeSelector","DxRangeSelectorComponent","DxRangeSelector","backgroundChange","behaviorChange","chartChange","dataSourceFieldChange","indentChange","selectedRangeColorChange","selectedRangeUpdateModeChange","shutterChange","sliderHandleChange","sliderMarkerChange","DxRangeSelectorModule","SLIDER_TOOLTIP_POSITION_ALIASES","SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET","$sliderHandle","sliderClass","$slider","_fitIntoSlider","SliderTooltip","_attachToMarkup","_toggleShowModeClass","_renderContentText","formattedText","isHoverMode","SliderTooltipPositionController","SliderHandle","$sliderTooltip","_sliderTooltip","_updateTooltipOptions","_this$_sliderTooltip","_this$_sliderTooltip2","updateTooltipPosition","_this$_sliderTooltip3","_this$_sliderTooltip4","SLIDER_LABEL_CLASS","SLIDER_LABEL_POSITION_CLASS_PREFIX","SLIDER_TOOLTIP_POSITION_CLASS_PREFIX","SLIDER_VALIDATION_NAMESPACE","roundedValue","isLeftDirection","_valueStep","remainder","dividend","quotient","getRemainderByDivision","_getValueExponentLength","_roundToExponentLength","moveHandleRight","moveHandleLeft","showRange","_toggleValidationMessage","_renderLabels","_renderStartHandler","_renderAriaMinAndMax","focusInEvent","focusOutEvent","_repaintHandle","_renderInkWave","waveIndex","_itemWidthFunc","_renderRangeVisibility","_$handle","_renderHandleImpl","labelFormat","_$minLabel","_$maxLabel","pointerDownEventName","clickName","startAction","_activeHandle","_getActualValue","_itemWidthRatio","_feedbackDeferred","_startOffset","_swipePixelRatio","_isSingleValuePossible","offsetDirection","_changeValueOnSwipe","_updateHandlePosition","newRatio","getExponentLength","_setValueOnSwipe","stepCount","_this$_actualValue","_callHandlerMethod","_fitTooltip","RANGE_SLIDER_CLASS","RANGE_SLIDER_START_HANDLE_CLASS","RangeSlider","_changeHandle","capturedHandle","_capturedHandle","_setHandleValue","_$handleStart","_$handleEnd","isStart","_$submitStartElement","_$submitEndElement","_updateHandleAriaLabels","$range","rangeWidth","eventOffsetX","startHandleX","endHandleX","_updateSelectedRangePosition","$nextHandle","leftRatio","rightRatio","valStart","valEnd","ratio2","_setValueOption","_rangesAreEqual","firstRange","secondRange","DxRangeSliderComponent","DxRangeSlider","endChange","endNameChange","showRangeChange","startChange","startNameChange","valueChangeModeChange","DxRangeSliderModule","PathTimeZoneConversion","fromSourceToAppointment","fromAppointmentToSource","fromSourceToGrid","fromGridToSource","ALL_WEEKDAYS","Weekday","fromStr","nth","getJsWeekday","isWeekdayStr","rang","times","targetLength","padString","pymod","divmod","mod","MONTH_DAYS","ORDINAL_BASE","PY_WEEKDAYS","isLeapYear","isValidDate","toOrdinal","date1ms","date2ms","daysBetween","fromOrdinal","ordinal","getMonthDays","getWeekday","getUTCDay","monthRange","combine","cloneDates","clones","timeToUntilString","utc","padStart","untilStringToDate","until","bits","dateTZtoISO8601","toLocaleString","IterResult","_result","inc","dt","tooEarly","tooLate","CallbackIterResult","_super","__extends","kN","tokens","SKIP","numberAsText","the","third","for","monday","tuesday","wednesday","thursday","friday","saturday","sunday","january","february","march","april","may","june","july","august","september","october","november","december","comma","defaultGetText","defaultDateFormatter","ToText","rrule","gettext","dateFormatter","ENGLISH","origOptions","bymonthday","bynmonthday","byweekday","Pu","allWeeks","someWeeks","isWeekdays","isEveryDay","sortWeekDays","isFullyConvertible","freq","IMPLEMENTED","RRule","plural","HOURLY","MINUTELY","DAILY","bymonth","_bymonth","_bymonthday","_byweekday","byhour","_byhour","WEEKLY","MONTHLY","YEARLY","byyearday","byweekno","weekdaytext","monthtext","npos","wday","finalDelim","delim","realCallback","finalDelimiter","delimJoin","Parser","nextSymbol","isDone","best","bestSymbol","name_1","acceptNumber","expect","ttr","AT","ON","wkd","decodeWKD","decodeNTH","MDAYs","decodeM","Frequency","SECONDLY","Time","DateTime","fromDate","addYears","addMonths","yearDiv","monthMod","addWeekly","wkst","fixDay","addDaily","addHours","filtered","dayDiv","addMinutes","byminute","hourDiv","addSeconds","bysecond","minuteDiv","daysinmonth","keys_1","defaultKeys","__assign","rfcString","parseLine","dtstartWithZone","tzid","dtstart","parseRrule","parseDtstart","Days","num","parseIndividualNumber","optionKey","parseWeekday","byeaster","DateWithZone","RangeError","datestr","isUTC","rezonedDate","localTimeZone","dateInLocalTZ","tzOffset","dateInTimeZone","DEFAULT_OPTIONS","outValue","buildDtstart","strValues","ruleString","Cache","_cacheAdd","_cacheGet","argsKeys","findCacheDiff","argsMatch","cachedObject","iterResult","M365MASK","__spreadArray","M366MASK","M28","M29","M30","M31","MDAY366MASK","MDAY365MASK","NM28","NM29","NM30","NM31","NMDAY366MASK","NMDAY365MASK","M366RANGE","M365RANGE","WDAYMASK","wdaymask","Iterinfo","rebuild","lastyear","yearinfo","firstyday","yearlen","nextyearlen","yearordinal","yearweekday","mmask","mdaymask","nmdaymask","mrange","baseYearMasks","wnomask","firstwkst","wyearlen","no1wkst","numweeks","lnumweeks","lyearweekday","lno1wkst","lyearlen","weekst","rebuildYear","bynweekday","lastmonth","monthinfo","nwdaymask","rebuildMonth","eastermask","yearStart","easter","ydayset","mdayset","wdayset","ddayset","htimeset","mtimeset","stimeset","getdayset","gettimeset","bysetpos","timeset","dayset","poslist","daypos","timepos","emitResult","counterDate","freqIsDailyOrGreater","millisecondModulo","buildTimeset","makeTimeset","removeFilteredDays","buildPoslist","rezoneIfNeeded","dayCounter","MO","TU","WE","TH","FR","SU","noCache","initializeOptions","il","parseText","fromText","fromString","parseString","_iter","iter","optionsToString","toText","isFullyConvertibleToText","FREQUENCIES","unfold","forceset","compatible","rrulevals","rdatevals","exrulevals","exdatevals","parsedDtstart","splitIntoLines","sep","splits","extractName","parms","breakDownLine","rdateTzid","parseRDate","parseInput","rset_1","RRuleSet","groomRruleOptions","rdate","exrule","exdate","buildRule","rdateval","validateDateParm","parm","_rrule","field_1","createGetterSetter","_rdate","_exrule","_exdate","_exdateHash","zonedDate","evalExdate","iterSet","_addRule","_addDate","rrules","rrulestr","exrules","rdates","exdates","_dtstart","rdatesToString","rrs","dateUtilsTs","newDateMs","toMs","_source","addTime","subtractMinutes","parseTimezone","timeZoneConfig","offsetIndices","untils","offsetList","offsetIndexList","dateList","getConvertedUntils","tzCache","tryGet","timeZoneDataUtils","getTimezoneById","timeZoneInfo","_tzCache","_timeZones","getDisplayedTimeZones","timestamp","timeZones","timezone","getUtcOffset","formatOffset","formatId","minutesInDecimal","tzList","getTimeZoneOffsetById","getTimeZoneDeclarationTuple","getTimeZoneDeclarationTupleCore","tupleResult","dateTimeStamp","createUTCDate","getTimezoneOffsetChangeInMinutes","updatedStartDate","updatedEndDate","getDaylightOffset","getDaylightOffsetInMs","calculateTimezoneByValue","dateUtc","_getDaylightOffsetByTimezone","isTimezoneChangeInDate","startDayDate","endDayDate","getClientTimezoneOffset","hasDSTInLocalTimeZone","getExtremeDates","isEqualLocalTimeZoneByDeclaration","getDateAndMoveHourBack","dateStamp","configTuple","summerTime","winterTime","localSummerOffset","localWinterOffset","nowDate","getTimezoneOffsetChangeInMs","getCorrectedDateByDaylightOffsets","convertedOriginalStartDate","convertedDate","startDateTimezone","isSameAppointmentDates","correctRecurrenceExceptionByTimezone","exception","exceptionByStartDate","startDateTimeZone","isBackConversion","getDiffBetweenClientTimezoneOffsets","firstDate","secondDate","createUTCDateWithLocalOffset","createDateFromUTCWithLocalOffset","DateAdapterCore","DateAdapter","timezoneOffsetBeforeInMin","getDateWithoutTimezoneChange","clonedDate","isEqualLocalTimeZone","localTimeZoneName","getTimeZones","dateInUTC","setOffsetsToDate","targetDate","offsetsArray","addOffsetsWithoutDST","daylightShift","correctLocalDate","daylightSecondShift","ruleNames","freqNames","loggedWarnings","RRULE_BROKEN_TIMEZONES","recurrence","RecurrenceProcessor","rRule","rRuleSet","RecurrenceValidator","generateDates","recurrenceRule","evalRecurrenceRule","rruleIntervalParams","_createRruleIntervalParams","_initializeRRule","startIntervalDate","minViewDate","maxViewDate","appointmentDuration","minViewTime","_convertRruleResult","appointmentTimezoneOffset","clientOffsets_startDate","timeZoneUtils","clientOffsets_minViewDate","clientOffsets_maxViewDate","startDateDSTDifferenceMs","startIntervalDateDSTShift","rruleDate","convertedBackDate","_getLocalMachineOffset","convertedDateDSTShift","switchToSummerTime","resultDateDSTShift","machineTimezoneOffset","machineTimezoneName","isTimezoneOffsetInBrokenRange","isTimezoneNameInBrokenNames","hasRecurrence","_parseRecurrenceRule","validateRRule","isValidRecurrenceRule","daysFromByDayRule","byday","getAsciiStringByDate","offsetDate","getRecurrenceString","_parseExceptionToRawArray","getDateByAsciiString","exceptionText","isUtc","_createDateTuple","_getTimeZoneOffset","startDateUtc","_createRRule","getPostProcessedException","ruleObject","ruleParts","_brokenRuleNameExists","_wrongCountRule","_wrongIntervalRule","_wrongDayOfWeek","_wrongByMonthDayRule","_wrongByMonth","_wrongUntilRule","_logBrokenRule","wrongUntil","wrongCount","wrongByMonthDay","byMonthDay","wrongByMonth","byMonth","wrongInterval","byDay","daysByRule","getRecurrenceProcessor","brokenDaysExist","brokenRuleExists","ruleName","LABEL_POSTFIX","WRAPPER_POSTFIX","REPEAT_END_EDITOR","FREQUENCY_EDITOR","INTERVAL_EDITOR","REPEAT_ON_EDITOR","frequenciesMessages","frequencies","repeatEndTypes","getStylingModeFunc","_recurrenceProcessor","_recurrenceRule","makeRules","makeRule","getRepeatEndRule","getRules","getDaysFromByDayRule","RecurrenceRule","_prepareEditors","_renderEditors","getEditorByField","getRecurrenceForm","_weekEditor","_repeatCountEditor","_repeatUntilDate","_editors","_createFreqEditor","_createIntervalEditor","_createRepeatOnLabel","_createRepeatOnEditor","_createRepeatEndEditor","_createByDayEditor","_createByMonthEditor","_createByMonthDayEditor","_daysOfWeekByRules","localDaysNames","itemsButtonGroup","_$repeatOnWeek","_getDefaultByDayValue","_changeEditorValue","monthsName","_monthOfYearByRules","_dayOfMonthByRules","repeatType","_renderRepeatCountEditor","_renderRepeatUntilEditor","_renderDefaultRepeatEnd","_repeatEndValueChangedHandler","_recurrenceForm","_disableRepeatEndParts","_setAriaDescribedBy","changeValueByVisibility","_handleDefaults","startDay","dayByRule","monthByRule","$editorTemplate","_getUntilValue","repeatCount","$editorWrapper","_$repeatCountEditor","_repeatCountValueChangeHandler","_formatUntilDate","repeatUntil","_$repeatDateEditor","_repeatUntilValueChangeHandler","appointmentTimeZone","getStartDateTimeZone","dateInLocaleTimeZone","createDate","_makeRepeatOnRule","_changeRepeatOnVisibility","_changeRepeatIntervalLabel","_changeEditorsValue","previousFreq","_changeDayOfWeekValue","_changeDayOfMonthValue","_changeMonthOfYearValue","_changeIntervalValue","_changeRepeatCountValue","_changeRepeatEndValue","_changeRepeatUntilValue","_days","untilDate","_freqEditor","_switchEditor","RecurrenceEditor","DxRecurrenceEditorComponent","DxRecurrenceEditor","DxRecurrenceEditorModule","DxResizableModule","DxResponsiveBoxModule","itemBaseOptions","borderOpacity","widgetOffset","linksIn","linksOut","_compileAttrs","compileAttrs","adjacentLink","setAdjacentNodeHover","isAdjacentNodeHovered","adjacentNodeHover","_applyNodesAppearance","_applyLinksAppearance","weightIn","weightOut","getLabelAttributes","labelSettings","compileLabelAttrs","overlayStates","routines","maxOfArray","callback_function","getVertices","links","vert","getAdjacentVertices","vertex","avert","getReverseAdjacentVertices","struct","_hasCycle","_sortedList","hasCycle","vertices","allVertices","_depthFirstSearch","averts","lp","incoming","outgoing","computeLongestPaths","sortedVertices","maxLP","adjacentVertex","graphModule","_weightPerPixel","_getCascadeIdx","nodeTitle","cascadesConfig","nodeInfo","_getInWeightForNode","_getOutWeightForNode","_computeCascades","maxCascade","cascades","cascade","inWeight","outWeight","maxWeight","_getWeightForCascade","cascadeIdx","wMax","_getMaxWeightThroughCascades","mW","_computeNodes","maxNodeNum","nodesInCascade","nodePadding","heightAvailable","cascadeAlign","cascadeRects","cascadeHeight","nodeAlign","nodeWidth","_findRectByName","_findIndexByName","_computeLinks","yOffsets","rectsOfCascade","nodeRect","rectFrom","linksFromNode","rectTo","_spline","_weight","_from","_fitAllNodesHeight","_fitNodeHeight","nodeRects","heightOfLinksSummaryIn","heightOfLinksSummaryOut","rectLeft","rectRight","p_UpLeft","p_DownLeft","p_UpRight","p_DownRight","curve_width","computeLayout","linksData","validatorModule","availableRect","box1","box2","linkType","invertedAttrName","connected","dxSankey","_groupLinks","_groupNodes","_groupLabels","_drawLabels","_nodes","_gradients","onNodeHoverChanged","onLinkHoverChanged","_change_LABELS","_applyLabelsAppearance","_change_BUILD_LAYOUT","_buildLayout","_change_NODES_DRAW","_change_LINKS_DRAW","overlayElement","hasItemOwnProperty","nodeOptions","defaultLayoutBuilder","_layoutMap","nodeColors","nodeIdx","linkOptions","totalNodesNum","_shadowFilter","cascadeNodes","nodeItem","getConnectedLinks","availableWidth","availableLabelWidth","labelOffsetY","labelOffsetX","moveLabel","thisNode","thisBox","otherNode","otherBox","textData","getAllLinks","pluginDataSource","generateCustomCallback","customCallback","defaultCallback","objectInfo","Sankey","onNodeClick","onLinkClick","linkTemplate","nodeTemplate","defaultCustomizeNodeTooltip","defaultCustomizeLinkTooltip","templateArgs","setTooltipCustomOptions","DxSankeyModule","getAppointmentTakesAllDay","appointmentAdapter","allDayPanelMode","allDay","getDurationInHours","VIEW_TYPES","renovationGetCurrentView","currentView","currentViewProps","sourceDate","getConvertedDate","getOffsets","appointmentTimezone","clientOffset","getClientOffset","commonOffset","getCommonOffset","appointmentOffset","getAppointmentOffset","client","appointment","getConvertedDateByOffsets","isBack","getOriginStartDateOffsetInMs","isUTCDate","getOffsetInHours","tryGetCommonOffset","tryGetAppointmentOffset","useAppointmentTimeZone","timezoneUtils","ExpressionUtils","getAppointmentTakesSeveralDays","_convertRecurrenceException","exceptionString","timeZoneCalculator","getConvertedToTimeZone","exceptionDate","convertedStartDate","convertedExceptionDate","replaceWrongEndDate","rawAppointment","_isEndDateWrong","calculatedEndDate","sortAppointmentsByStartDate","appointments","setField","endDateTimeZone","recurrenceException","isRecurrent","calculateStartDate","pathTimeZoneConversion","calculateDate","calculateEndDate","AppointmentAdapter","pathTimeZone","clonedAdapter","createAppointmentAdapter","UTC_FULL_DATE_FORMAT","FIXED_CONTAINER_CLASS","REDUCED_APPOINTMENT_PARTS_CLASSES","DIRECTION_APPOINTMENT_CLASSES","APPOINTMENT_DRAG_SOURCE_CLASS","HEADER_CURRENT_TIME_CELL_CLASS","VIRTUAL_CELL_CLASS","TIME_PANEL_CLASS","DATE_TABLE_CLASS","DATE_TABLE_ROW_CLASS","GROUP_HEADER_CONTENT_CLASS","LAST_GROUP_CELL_CLASS","FIRST_GROUP_CELL_CLASS","VERTICAL_GROUP_COUNT_CLASSES","LIST_ITEM_DATA_KEY","APPOINTMENT_SETTINGS_KEY","HORIZONTAL_GROUP_ORIENTATION","VIEWS","DAY","WEEK","WORK_WEEK","MONTH","TIMELINE_DAY","TIMELINE_WEEK","TIMELINE_WORK_WEEK","TIMELINE_MONTH","AGENDA","hasResourceValue","resourceValues","getValueExpr","getDisplayExpr","getFieldExpr","fieldExpr","getWrappedDataSource","createResourcesTree","leafIndex","make","currentGroupItem","nextGroupIndex","getPathToLeaf","findLeafByIndex","_leaf","makeBranch","leaf","getCellGroups","getGroupsObjectFromGroupsArray","groupsArray","currentGroups","getAllGroups","isResourceMultiple","resourceField","allowMultiple","filterResources","getDataAccessors","groupAppointmentsByResourcesCore","treeLeaves","getResourceTreeLeaves","hasGroupItem","resourceValue","reduceResourcesTree","existingAppointments","resourceTitle","resourceData","resourceGetter","resourceFromAppointment","getAppointmentColor","resourceConfig","appointmentConfig","loadedResources","resourceLoaderMap","paintedResources","newGroups","useColorAsDefault","newResources","getPaintedResources","cellGroups","resourcesDataAccessors","groupId","colorGetter","getOrLoadResourceItem","wrappedDataSource","filteredData","getResourceColor","createExpressions","loadResources","dataSourcePromise","getTransformedResourceData","hasEmpty","getNormalizedResources","getKeyByGroup","isVerticalGrouping","addToStyles","nextStyle","addHeightToStyle","addWidthToStyle","getGroupCellClasses","isFirstGroupCell","isLastGroupCell","getIsGroupedAllDayPanel","hasAllDayRow","isVerticalGroupingApplied","groupOrientation","isHorizontalGroupingApplied","isGroupingByDate","groupByDate","isHorizontalGrouping","TIMELINE_VIEWS","timelineDay","timelineWeek","timelineWorkWeek","timelineMonth","setOptionHour","optionHour","getViewStartByOptions","intervalDuration","startViewDate","currentStartDate","getCalculatedFirstDayOfWeek","firstDayOfWeekOption","getStartViewDateTimeOffset","validStartDayHour","formatWeekday","formatWeekdayAndDay","getToday","indicatorTime","todayDate","getVerticalGroupCountClass","isDateAndTimeView","isTimelineView","getHorizontalGroupCount","calculateIsGroupedAllDayPanel","isAllDayPanelVisible","calculateDayDuration","endDayHour","isHorizontalView","getTotalCellCountByCompleteData","completeData","getTotalRowCountByCompleteData","getDisplayedCellCount","displayedCellCount","getDisplayedRowCount","displayedRowCount","getCellDuration","hoursInterval","getValidCellDateForLocalTimeFormat","cellIndexShift","originDate","startViewDateWithoutDST","startViewDateOffset","TextArea","_updateInputHeight","_updateInputAutoResizeAppearance","_eventY","currentEventY","_resetDimensions","_getHeightDifference","getElementBoxParams","autoHeightResizing","heightDifference","_getBoundaryHeight","inputHeight","adjustedMaxHeight","needScroll","parseHeight","isAutoResizeEnabled","SWITCH_CLASS","SWITCH_ON_VALUE_CLASS","Switch","_animateValue","switchedOnText","switchedOffText","_animating","_renderContainers","_$switchWrapper","_renderSwitchInner","_getInnerOffset","_getHandleOffset","_$switchInner","_$switchContainer","_$labelOn","_$labelOff","_setLabelsText","_getItemSizeFunc","swipeOffset","innerOffset","_swiping","fromInnerOffset","toInnerOffset","fromHandleOffset","toHandleOffset","fromInnerConfig","toInnerConfig","fromHandleConfig","toHandlerConfig","maxOffOffset","maxOnOffset","toHandleConfig","pressed","_marginBound","isFree","APPOINTMENT_FORM_GROUP_NAMES","Main","Recurrence","semaphore","Semaphore","recurrenceRuleExpr","recurrenceEditor","triggerResize","changeSize","getEditingConfig","isRecurrence","mainItems","_createMainItems","createResourceEditorModel","_createRecurrenceEditor","dataExprs","startDateExpr","endDateExpr","startTimeZoneEditor","startDateTimeZoneExpr","endTimeZoneEditor","endDateTimeZoneExpr","createTimeZoneDataSource","_createAppointmentAdapter","_dateBoxValueChanged","dateExpr","isNeedCorrect","validateAppointmentFormDate","dateEditor","_createTimezoneEditor","timeZoneExpr","secondTimeZoneExpr","isMainTimeZone","noTzTitle","normalizeEditorName","secondTimezoneEditor","_createDateBoxItems","createDateBoxEditor","_changeFormItemDateType","isAllDay","editorPath","getEditorPath","itemEditorOptions","newEditorOption","allDayExpr","startDateEditor","endDateEditor","allDayStartDate","startDateWithStartHour","getStartDateWithStartHour","getStartDayHour","getCalculatedEndDate","updateRecurrenceItemVisibility","descriptionExpr","getTimeZoneCalculator","setEditorsType","startDateItemPath","endDateItemPath","startDateFormItem","endDateFormItem","startDateEditorOptions","endDateEditorOptions","updateRecurrenceEditorStartDate","setEditorOptions","setTimeZoneEditorDataSource","updateFormData","rawStartDate","rawEndDate","POPUP_WIDTH","loading","removeLoadPanel","createLoadPanel","APPOINTMENT_POPUP_CLASS","DAY_IN_MS","POPUP_CONFIG","lastEditData","saveChangesLocker","excludeInfo","_createPopupConfig","doneClick","doneButton","getPopupToolbarItems","isToolbarVisible","_doneButtonClickHandler","popupElement","_createPopupContent","_onShowing","_updateForm","appointmentData","getAppointmentFormOpening","processActionResult","updatePopupFullScreenMode","_createForm","getResources","normalizedResources","_isReadOnly","isFullScreen","isPopupFullScreenNeeded","saveChangesAsync","isShowLoadPanel","hideLoading","_addMissingDSTTime","addAppointment","updateAppointment","sourceAppointment","updatedAppointment","saveEditDataAsync","_tryLockSaveChanges","endTime","inAllDayRow","resourceList","updateScrollPosition","_unlockSaveChanges","showLoading","formAppointmentAdapter","clonedAppointmentAdapter","_addMissingDSTShiftToDate","originFormDate","shiftDifference","makeDateFilter","dateFilter","userFilter","serializeRemoteFilter","getUserFilter","trimMin","trimMax","getDatesWithoutTime","_updatedAppointmentKeys","isDataSourceInit","cleanState","_updatedAppointment","pushItems","pushItem","getUpdatedAppointment","getUpdatedAppointmentKeys","viewStartDayHour","viewEndDayHour","showAllDayPanel","_resolveOption","supportAllDayRow","viewDirection","dateRange","viewDataProvider","preparedItems","filterLoadedAppointments","supportMultiDayAppointments","hasAllDayAppointments","adapters","_createAllDayAppointmentFilter","_createCombinedFilter","checkIntersectViewport","useRecurrence","hasRecurrenceRule","appointmentTakesAllDay","appointmentTakesSeveralDays","isLongAppointment","_filterAppointmentByResources","exceptions","getRecurrenceException","_filterAppointmentByRRule","severalDays","compareDateWithStartDayHour","hiddenInterval","apptDuration","apptStartHour","apptStartMinutes","apptIntersectViewport","compareDateWithEndDayHour","_createAppointmentFilter","checkAppointmentResourceValues","resourceIndex","appointmentResourceValues","appointmentStartDate","appointmentEndDate","recurrenceProcessor","apptStartDayHour","apptEndDayHour","_appointmentPartInInterval","filterPreparedItems","filterAllDayAppointments","AppointmentFilterBaseStrategy","hourMs","isCalculateStartAndEndDayHour","calculateIsDateAndTimeView","isAllDayWorkspace","showAllDayAppointments","endViewDate","getLastViewDateByEndDayHour","shiftedEndViewDate","getCompletedGroupsInfo","groupStartDate","groupEndDate","_getPrerenderFilterResources","hasAllDayPanel","hasGroupAllDayPanel","supportAllDayAppointment","combinedFilters","itemsToFilter","cellGroup","getCellsGroup","currentResourcesData","currentResource","currentData","getResourcesDataByGroups","appointmentDataSource","AppointmentDataSource","initFilterStrategy","filterStrategyName","getIsVirtualScrolling","getFilterStrategy","filterStrategy","getLoadedResources","getSupportAllDayRow","getViewType","getViewDirection","getDateRange","getViewDataProvider","AppointmentFilterVirtualStrategy","updateDataAccessors","filterByDate","RemoteFilterCombiner","combineRemoteFilter","filterOption","calculateAppointmentEndDate","removeTooltipElement","removeTooltip","REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME","REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME","coloredElement","allowDrag","reduced","resizableConfig","notifyObserver","invoke","funcName","_renderDragSourceClass","_getHorizontalResizingRule","reducedHandles","getResizableStep","_getVerticalResizingRule","_renderAppointmentGeometry","_renderEmptyClass","_renderReducedAppointment","_renderAllDayClass","_renderRecurrenceClass","_renderResizable","_setResourceColor","reducedPart","_renderAppointmentReducedIcon","_getEndDate","createTooltip","_createResizingConfig","Appointment","createPlainResourceListAsync","_renderResourceList","allDayText","getAppointmentLeftCell","relativeAppointmentRect","appointmentSettings","cellRowIndex","cellColumnIndex","_virtualAppointments","isAgendaView","appointmentDataProvider","_appointmentClickTimeout","currentAppointment","_$currentAppointment","resizeOccur","moveAppointmentBack","_getAccessAppointments","sortedIndex","$nextAppointment","_getAppointmentByIndex","_resetTabIndex","$appointment","fixedContainer","allDayContainer","allowAllDayResize","onAppointmentDblClick","_collectorOffset","_clearDropDownItems","_clearDropDownItemsElements","_repaintAppointments","_renderDropDownAppointments","_attachAppointmentsEvents","_isAllDayAppointment","_isRepaintAppointment","_isRepaintAll","_applyFragment","_getAppointmentContainer","_onEachAppointment","isRepaintAll","needRemove","_clearItem","_renderByFragments","$commonFragment","$allDayFragment","renderFunction","_attachAppointmentDblClick","$allDayContainer","_initialSize","_initialCoordinates","_preventSingleAppointmentClick","_renderAppointmentTemplate","_currentAppointmentSettings","agendaSettings","targetedAppointmentData","leftLayoutContainer","rightLayoutContainer","additionalContainer","createAgendaAppointmentLayout","$contentDetails","createAppointmentLayout","_processItemClick","screenX","isFakeClickEvent","_dblClickHandler","$targetAppointment","setting","_renderAppointment","_applyResourceDataAttr","skipResizing","deferredColor","_processVirtualAppointment","appointmentReduced","_resizableConfig","getResourceDataAccessors","agendaResourceProcessor","createListAsync","AgendaAppointment","normalizeKey","itemSetting","_calculateResizableArea","updatedArea","resizeAllDay","_getEndResizeAppointmentStartDate","shiftedStartDate","shiftedEndDate","_getDateRange","updateResizedAppointment","appointmentRect","parentAppointmentRect","getRelativeAppointmentRect","isVerticalGroupedWorkSpace","DOMMetaData","DOMMetaTable","allDayPanelCellsMeta","dateTableCellsMeta","positionByMap","cellCountInRow","getAppointmentCellsInfo","considerTime","extendedOptions","appointmentLastCell","appointmentLastCellIndex","appointmentFirstCellIndex","appointmentRowIndex","appointmentFirstCell","getDateRangeHorizontalRTL","appointmentCellsAmount","getDateRangeHorizontal","getAppointmentDateRange","isVerticalViewDirection","modifiedAppointmentAdapter","appointmentInfo","deltaTime","renderingStrategyDirection","needCorrectDates","_correctStartDateByDelta","_correctEndDateByDelta","correctEndDate","visibleDayDuration","daysCount","tailOfPrevDays","correctedEndDate","correctStartDate","appointmentSetting","virtualAppointment","virtualGroupIndex","buttonColor","virtualGroup","virtualCoordinates","$fragment","buttonHeight","rtlOffset","onAppointmentClick","_isGroupCompact","_sortAppointmentsByStartDate","_processRecurrenceAppointment","skipLongAppointments","timezoneCalculator","recurrentDates","recurrentDateCount","appointmentPart","_applyStartDateToObj","_applyEndDateToObj","_processLongAppointment","splitAppointmentByDay","partCount","_reduceRecurrenceAppointments","recurrenceIndexes","_combineAppointments","additionalAppointments","dragEvent","_removeDragSourceClassFromDraggedAppointment","originalStartDate","maxAllowedDate","appointmentIsLong","currentEndDate","_checkStartDate","_checkEndDate","originalDate","dxSchedulerAppointment","_setDragSourceAppointment","$appointments","itemGroupIndex","itemStartDate","itemEndDate","appointmentInstance","updateResizableArea","$allResizableElements","horizontalResizables","resizableInst","SchedulerAppointments","getAppointmentKey","mergeStylesWithColor","AppointmentDetailsProps","dateText","AppointmentDetails","AppointmentTitleProps","AppointmentTitle","AppointmentContentProps","isReduced","AppointmentContent","refReducedIcon","bindHoverEffect","onReducedIconMouseEnter","onReducedIconMouseLeave","showReducedIconTooltip","hideReducedIconTooltip","_this$refReducedIcon$","_this$refReducedIcon$2","onMouseEnter","onMouseLeave","_this$refReducedIcon$3","_this$refReducedIcon$4","appointmentTemplate","getDeferredAppointmentColor","AppointmentsContext","AppointmentProps","updateStylesEffect","bindDoubleClickEffect","onItemDoubleClick","appointmentsContextValue","_viewModel$info$group","_this$ref$current","onDoubleClick","_this$ref$current2","appointmentStyles","getAppointmentStyles","isVerticalDirection","OverflowIndicatorProps","OverflowIndicator","appointmentContext","_viewModel$groupIndex","getIndicatorColor","appointmentCount","getOverflowIndicatorStyles","overflowIndicatorTemplate","OverflowIndicatorTemplate","AppointmentLayoutProps","AppointmentLayout","layoutRef","pointerEventsEffect","onAppointmentPointerDown","disposePointerDown","regular","overflowIndicators","allDayCompact","regularCompact","appointmentElement","focusedAppointmentIndex","appointmentType","updateFocusedAppointment","onAppointmentDoubleClick","AppointmentLayoutComponent","getAppointmentSettings","getAppointmentInfo","currentDataAccessors","dateGetter","dateSetter","DOM","renovation","renderComponent","_isMobileLayout","_calendar","isMobileLayout","overlayType","_createOverlayContent","_getCalendarOptions","_createScrollable","SchedulerCalendar","getPreviousButtonOptions","_updateDateByDirection","previousButton","isPreviousButtonDisabled","_addEvent","getCalendarButtonOptions","_showCalendar","calendarButton","getNextButtonOptions","isNextButtonDisabled","_getCaption","_getNextDate","getPeriodStart","getWeekStart","MS_DURATION","DAY_DURATION","WEEK_DURATION","nextDay","nextWeek","isWeekend","getIntervalEndDate","periodEndDate","agendaDuration","nextPeriodStartDate","getPeriodEndDate","getNextPeriodStartDate","currentPeriodStartDate","nextMonth","workWeekStart","workDaysCount","getDateAfterWorkWeek","nextAgendaStart","subMS","currentPeriodEndDate","addMS","getDateMonthFormatter","isShort","formatMonthYear","getDateMonthYearFormatter","dateMonth","dateMonthFormat","getCaptionText","getSameDateCaption","firstDateText","lastDateText","formatMonthViewCaption","lastDateDateText","getDifferentYearCaption","isDifferentMonthDates","useShortFormat","firstDateFormat","getSameYearCaption","formatCaptionByMonths","getCaption","customizationFunction","getWorkWeekStart","firstWeekDay","getIntervalStartDate","STEP_MAP","agenda","getViewName","validateViews","isValidView","formatViews","getViewText","isOneView","selectedView","VIEW_SWITCHER_CLASS","getViewsAndSelectedView","isSelectedViewInViews","DEFAULT_ELEMENT","intervalOptions","getStep","_useShortDateFormat","_createEventMap","_getCalendarOptionUpdater","_createToolbarConfig","toolbarElement","_parseItem","defaultElementType","oneView","_updateCurrentView","viewSwitcher","getDropDownViewSwitcher","getViewSwitcher","_renderCalendar","getDateNavigator","_callEvent","onCurrentViewChange","_updateCalendarValueAndCurrentDate","onCurrentDateChange","initialDate","dayDuration","currentMonthFirstDate","thatMonthFirstDate","thatMonthDuration","currentMonthMinDate","getNextMonthDate","getNextIntervalDate","_isMonth","_getDisplayedDate","useShortDateFormat","_hideCalendar","SchedulerHeader","dateSettings","positionHelper","cellDuration","getPositionShift","getPositionShiftCallback","isVerticalGroupOrientation","isGroupedAllDayPanel","calculateCellPositions","groupIndices","isAllDayRowAppointment","isRecurrentAppointment","dateSetting","getCoordinateInfos","_prepareObject","recurrent","getCoordinatesByDateInGroup","dateSettingIndex","getCoordinatesByDate","validGroupIndex","findCellPositionInMap","getCellPosition","timeShift","getTimeShiftRatio","horizontalHMax","getHorizontalMax","verticalMax","getVerticalMax","hMax","vMax","isSkippedDate","validGroupIndices","cellCoordinates","isAllDayPanel","appointmentDate","matchedCellStartDate","viewDataMap","dateTableMap","cellData","isGroupIntersectDateInterval","createRecurrentAppointmentInfos","VirtualStrategy","getFormatType","formatDates","isSameDate","isGroupedByDate","isDateAppointment","getIntervalDuration","allDayIntervalDuration","itemGroupIndices","_getGroupIndices","appointmentList","_createAppointments","_getProcessedByAppointmentTimeZone","_canProcessNotNativeTimezoneDates","_getProcessedNotNativeTimezoneDates","_createGridAppointmentList","firstViewDates","_getAppointmentsFirstViewDate","_fillNormalizedStartDate","_cropAppointmentsByStartDayHour","_fillNormalizedEndDate","_needSeparateLongParts","_separateLongParts","shiftSourceAppointmentDates","appointmentOffsets","sourceOffsets_startDate","sourceOffsets_endDate","startDateOffsetDiff","endDateOffsetDiff","_createRecurrenceAppointments","resultEndTime","_getProcessedNotNativeDateIfCrossDST","newDateMinusOneHour","_getCommonOffset","diffStartDateOffset","diffEndDateOffset","testNewStartDate","testNewEndDate","normalizeEndDateByViewEnd","roundedEndViewDate","currentViewEndTime","normalizedEndDate","gridAppointmentList","gridAppointment","endDateOfPart","startDatePart","offsetDifference","_createExtremeRecurrenceDates","endViewDateByEndDayHour","daylightOffset","_createRecurrenceOptions","originalAppointmentStartDate","originalAppointmentEndDate","minRecurrenceDate","maxRecurrenceDate","shiftedMinRecurrenceDate","shiftedMaxRecurrenceDate","tableFirstDate","_getAppointmentFirstViewDate","_getAppointmentResultDate","firstViewDate","findAllDayGroupCellStartDate","findGroupCellStartDate","DateGeneratorBaseStrategy","recurrentInfo","_updateGroupIndices","getGroupStartDate","appointmentCopy","viewDataGroupIndices","getGroupIndices","dateSettingsStrategy","DateGeneratorVirtualStrategy","_generateDateSettings","cellPositions","_calculateCellPositions","_prepareAppointmentInfos","CellPositionCalculator","infos","_getAppointmentDateText","createFormattedDateText","renderingStrategy","_renderingStrategy","getDropDownAppointmentWidth","getCollectorTopOffset","getCollectorLeftOffset","getAppointmentDefaultOffset","_isCompactTheme","getDynamicAppointmentCountPerCell","allDayCount","_getAppointmentDefaultOffset","_getAppointmentDefaultHeight","_getAppointmentMinCount","allDaySupported","appointmentCountPerCell","simple","_calculateDynamicAppointmentCountPerCell","getDropDownAppointmentHeight","_getAppointmentMaxWidth","_getAppointmentDefaultWidth","sLt","AppointmentPositioningStrategy","getDropDownButtonAdaptiveSize","allDayHeight","collectorWidth","_initPositioningStrategy","isAdaptive","maxAppointmentsPerCell","resizableStep","cellDurationInMinutes","leftVirtualCellCount","topVirtualCellCount","allowAllDayResizing","_correctCollectorCoordinatesInAdaptive","_positioningStrategy","AdaptivePositioningStrategy","getPositioningStrategy","getAppointmentMinSize","keepAppointmentSettings","getDeltaTime","getAppointmentGeometry","needCorrectAppointmentDates","createTaskPositionMap","skipSorting","_maxAppointmentCountPerCell","_correctRtlCoordinates","leftVirtualWidth","topVirtualHeight","positionArray","_getSortedPositions","resultPositions","_getResultPositions","_getExtendedPositionMap","_getDeltaWidth","intervalWidth","initialAppointment","shiftAppointmentByViewOffset","generateAppointmentSettings","calculateAppointmentHeight","calculateAppointmentWidth","multiWeekAppointmentParts","initialRowIndex","initialColumnIndex","_needVerifyItemSize","currentMaxAllowedPosition","isAppointmentGreaterThan","_reduceMultiWeekAppointment","_getAppointmentParts","sourceAppointmentWidth","reducedWidth","_getAppointmentPartsPosition","appointmentParts","getAppointmentSettingsGenerator","AppointmentSettingsGenerator","isAppointmentTakesAllDay","_getCompactAppointmentParts","appointmentWidth","etalon","comparisonParameters","cropAppointmentWidth","positionList","_sortCondition","_getConditions","isSomeEdge","_isSomeEdge","columnCondition","_normalizeCondition","rowCondition","cellPositionCondition","_rowCondition","conditions","_columnCondition","_isItemsCross","_getOrientation","_checkItemsCrossing","firstItemSide1","firstItemSide2","secondItemSide1","secondItemSide2","sortedArray","maxIndexInStack","findFreeIndex","_skipSortedIndex","startNewStack","pushItemsInResult","_getMaxAppointmentCountPerCell","_findIndexByKey","iKey","jKey","iValue","jValue","positionCounter","mapLength","resultString","itemLength","_checkLongCompactAppointment","_splitLongCompactAppointment","_getMaxAppointmentCountPerCellByType","compactCount","compactPart","_getCompactLeftCoordinate","_adjustDurationByDaylightDiff","daylightDiff","_needAdjustDuration","_calculateDurationByDaylightDiff","_getCollectorLeftOffset","isApplyCompactAppointmentOffset","dropDownButtonWidth","rightOffset","_markAppointmentAsVirtual","countFullWidthAppointmentInCell","compactRender","supportCompactDropDownAppointments","_generateAppointmentCollectorIndex","getAppointmentDataCalculator","getVerticalAppointmentHeight","currentAppointmentCountInCell","resultMaxAppointmentsPerCell","dynamicAppointmentCountPerCell","_getDynamicAppointmentCountPerCell","maxAppointmentsCount","_customizeCoordinates","appointmentHeight","_isAppointmentEmpty","_getAppointmentMinHeight","_getAppointmentMinWidth","_calculateGeometryConfig","_getOffsets","appointmentDefaultOffset","_getAppointmentCount","_getDefaultRatio","unlimited","_getAppointmentHeightByTheme","_needVerticalGroupBounds","_needHorizontalGroupBounds","getAppointmentDurationInMs","apptStartDate","apptEndDate","msInHour","trimmedStartDate","trimmedEndDate","quantityOfDays","dayVisibleHours","appointmentDayHours","apptStartDelta","endHours","eAe","excludedHours","checkDate","BaseAppointmentsStrategy","durationInCells","getSkippedHoursInRange","_customizeAppointmentGeometry","auto","itemLeft","positionShift","getCellSize","cellSize","getCellHeight","getCellWidth","getAllDayHeight","getMaxAllowedPosition","firstRow","getLastGroupCellPosition","getMaxAllowedHorizontalPosition","groupStrategy","GroupStrategyBase","GroupStrategyHorizontal","getDOMMetaDataCallback","getMaxPosition","viewPortGroupCount","getViewPortGroupCount","getOffsetByAllDayPanel","getGroupTop","maxAllowedPosition","_getMaxAllowedVerticalPosition","getRowCountInGroup","_getAllDayHeight","lastGroupRow","correctedGroupIndex","HorizontalAppointmentsStrategy","startDateWithTime","_getDurationInDays","getSkippedDaysCount","HOURS_IN_DAY","deltaHeight","_getAllDayAppointmentGeometry","_getAdaptiveGeometry","_getVerticalAppointmentGeometry","isRecurring","appointmentBeginInCurrentView","isAppointmentTakesSeveralDays","currentSetting","multiDaysAppointmentParts","_isMultiViewAppointment","_reduceMultiDayAppointment","sourceAppointmentHeight","reducedHeight","currentSettingStartDate","currentSettingNormalizedEndDate","_getGroupHeight","_getGroupTopOffset","groupTop","allDayPanelOffset","_getTailHeight","appointmentGeometry","appointmentGroupTopOffset","currentPartTop","cellsDiff","hasTailPart","_getMinuteHeight","_calculateVerticalGeometryConfig","_customizeVerticalCoordinates","appointmentLeft","_getMaxWidth","durationInHours","skippedHours","minAppointmentCountPerCell","RENDERING_STRATEGIES","horizontalMonth","HorizontalMonthLineRenderingStrategy","_getLeftPosition","fullWeekAppointmentWidth","_calculateMultiWeekAppointmentLeftOffset","_getChunkCount","fullChunksWidth","firstChunkWidth","weekWidth","allChunksCount","viewRowIndex","_tryGetRowIndexInView","allowedChunksCount","positionStartDate","dayDurationMs","timeFromStart","_getChunkWidths","_getTailChunkSettings","withoutFirstChunkWidth","tailChunkWidth","hasTailChunk","tailChunkLeftPosition","topPosition","isTailChunk","getCellCount","groupedDataMap","dateTableGroupedMap","horizontalMonthLine","HorizontalMonthLineAppointmentsStrategy","VerticalAppointmentsStrategy","VerticalRenderingStrategy","BaseRenderingStrategy","groupAppointmentByResources","_getCurrentViewOption","totalResourceCount","groupAppointmentsByResources","appointmentsByResources","calculateRows","groupedAppts","appts","recurrentIndexes","recurrenceBatch","getAppointmentsInstance","appointmentBatch","appt","_calculateGroupIndex","apptIndex","resultInd","countApptInGroup","replaceWrongAppointmentEndDate","needClearSettings","groupedAppointments","currentAppointments","groupResult","appointmentIsRecurrence","_iterateRow","indexInRow","getDateByIndex","getStartViewDate","calculatedStartDate","wrappedOriginalStartDate","initRenderingStrategy","RenderingStrategy","appointmentRenderingStrategyName","isRenovatedAppointments","positionMap","getRenderingStrategy","shiftedViewModel","unshiftViewModelAppointmentsByViewOffset","makeRenovatedViewModels","regularViewModels","allDayViewModels","compactOptions","prepareViewModel","compactViewModel","appointmentViewModel","compactViewModels","prepareCompactViewModels","getCompactViewModelFrame","resourceColor","processedAppointments","targetedAppointment","APPOINTMENT_COLLECTOR_CLASS","COMPACT_APPOINTMENT_COLLECTOR_CLASS","APPOINTMENT_COLLECTOR_CONTENT_CLASS","_createCompactButton","_makeBackgroundColor","_makeBackgroundDarker","_createTooltipInfos","targetedAdapter","AppointmentTooltipInfo","_onButtonClick","showAppointmentTooltipCore","_getExtraOptionsForTooltip","$appointmentCollector","_clickEvent","dragBehavior","_createTooltipDragBehavior","dropDownAppointmentTemplate","isButtonClick","clickEventArgs","$schedulerElement","workSpace","getWorkSpace","isSetCursorOffset","getItemSettings","itemSettings","_createDragBehaviorBase","_getCollectorOffset","_getCollectorRightOffset","getRenderingStrategyInstance","_makeBackgroundColorCore","itemColors","getOverflowIndicatorColor","_setPosition","_createCompactButtonElement","_renderTemplate","_initButtonTemplate","_getAppointmentTemplate","appointmentCollector","_createButtonTemplate","subscribes","isCurrentViewAgenda","currentViewType","currentViewUpdated","currentDateUpdated","getWorkspaceOption","setCellDataCacheAlias","_workSpace","showAppointmentTooltip","getTargetedAppointment","hideAppointmentTooltip","showEditAppointmentPopup","targetedData","showAppointmentPopup","updateAppointmentAfterResize","_checkRecurringAppointment","_updateAppointment","_appointments","_getUpdatedData","updateAppointmentAfterDrag","newCellIndex","oldCellIndex","targetedRawAppointment","becomeAllDay","wasAllDay","movedBetweenAllDayAndSimple","isDragAndDropBetweenComponents","onDeleteButtonPress","checkAndDeleteAppointment","getTextAndFormatDate","appointmentRaw","targetedAppointmentRaw","_createAppointmentTitle","getResizableAppointmentArea","getLayoutManager","horizontalGroupBounds","getGroupBounds","_isVerticalGroupedWorkSpace","verticalGroupBounds","needRecalculateResizableArea","_getViewCountConfig","getMaxAppointmentCountPerCellByType","getRenderingStrategyDirection","updateAppointmentEndDate","renderCompactAppointments","_compactAppointmentsHelper","clearCompactAppointments","_getGroupCount","mapAppointmentFields","dayHasAppointment","getAgendaVerticalStepHeight","getAgendaDuration","getEndViewDate","forceMaxAppointmentPerCell","onAgendaReady","$appts","applyClass","getTimezone","_getTimezoneOffsetByOption","getTargetedAppointmentData","getEndDayHour","getViewOffsetMs","removeDroppableCellClass","minimalValue","divisibleBy","createValidatorRule","ruleFunc","mustBeInteger","isInteger","mustBeGreaterThan","mustBeInRange","mustBeDivisibleBy","endDayHourMustBeGreaterThanStartDayHour","visibleIntervalMustBeDivisibleByCellDuration","visibleInterval","cellDurationMustBeLessThanVisibleInterval","maximalValue","validatorName","startDayHourAndEndDayHour","cellDurationAndVisibleInterval","GLOBAL_ERROR_HANDLER","logError","validatorNameToErrorCodeMap","globalErrorHandler","handleValidationResult","optionsValidatorResult","errorCodeArray","_resourceDeclarations","resourceMap","appointmentPromiseQueue","resourceDeclarations","_pushAllResources","_onPullResource","_hasResourceDeclarations","_tryPullResources","resultAsync","initializeState","PromiseItem","TOOLTIP_APPOINTMENT_ITEM","TOOLTIP_APPOINTMENT_ITEM_CONTENT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE","TOOLTIP_APPOINTMENT_ITEM_MARKER","TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON","_extraOptions","dataList","_canShowTooltip","_showCore","_shouldUseTarget","_createTooltip","_prepareBeforeVisibleChanged","_getContentTemplate","listElement","_createList","isAlreadyShown","_onShown","_createListOption","_onListRender","_onListItemClick","_onListItemContextMenu","_createTooltipElement","itemListContent","_createItemListContent","_getItemListTemplateName","getAppointmentTemplate","_createFunctionTemplate","isButtonClicked","isEmptyDropDownAppointmentTemplate","_isEmptyDropDownAppointmentTemplate","_createItemListMarker","_createItemListInfo","getAppointmentDisabled","_createDeleteButton","$markerBody","$date","APPOINTMENT_TOOLTIP_WRAPPER_CLASS","TooltipStrategyBase","_getBoundary","isAppointmentInAllDayPanel","getScrollableContainer","contextMenuEventArgs","createEventArgs","SLIDE_PANEL_CLASS_NAME","isTabletWidth","createTabletDeviceConfig","createPhoneDeviceConfig","tableCreator","insertAllDayRow","allDayElements","tableBody","makeTable","templateCallbacks","rowCountInGroup","allDayElementIndex","isLastRowInGroup","rowClass","cellClass","cellDataObject","setAdditionalClasses","additionalTemplateData","getCellText","getCellDate","getCellTextClass","makeGroupedTable","_makeVerticalGroupedRows","_makeHorizontalGroupedRows","makeGroupedTableFromJSON","cellStorage","cellTag","titleField","groupTableClass","groupRowClass","groupCellClass","groupCellCustomContent","childCount","getChildCount","createCell","Ve","generateCells","rowspans","_makeFlexGroupedRowCells","repeatByDate","groupHeaderClass","cellTemplates","cellsArray","cellIterator","groupHeaderRowClass","currentColumnLength","_makeGroupedRowCells","maxCellCount","groupHeaderContentClass","dataCellTemplate","CellProps","OrdinaryCell","HeaderCell","VirtualCellProps","isHeaderCell","VirtualCell","RowProps","leftVirtualCellWidth","rightVirtualCellWidth","Row","hasLeftVirtualCell","hasRightVirtualCell","rightVirtualCellCount","VirtualRowProps","VirtualRow","virtualCells","TableProps","topVirtualRowHeight","bottomVirtualRowHeight","virtualCellsCount","Table","heightAdded","hasTopVirtualRow","hasBottomVirtualRow","tableRef","CellBaseProps","contentTemplateProps","CellBase","DateTableCellBaseProps","otherMonth","firstDayOfMonth","DateTableCellBase","dataCellTemplateProps","DataCellTemplate","Cell","AllDayPanelCell","AllDayPanelTableBodyProps","viewData","AllDayPanelTableBody","cellGroupIndex","LayoutProps","topVirtualRowCount","bottomVirtualRowCount","addDateTableClass","addVerticalSizesClassToRows","AllDayTableProps","AllDayTable","allDayPanelData","allDayPanel","emptyTableHeight","DateTable","AllDayTableComponent","AllDayPanelTitleProps","AllDayPanelTitle","_objectDestructuringEmpty","AllDayPanelTitleComponent","DateTableBodyProps","DateTableBody","rowClasses","dateTable","fragmentKey","DateTableLayoutProps","DateTableLayoutBase","_this$props$viewData$","_this$props$viewData$2","_this$props$viewData$3","_this$props$viewData$4","DateTableLayoutBaseComponent","resourceCellTemplate","GroupPanelBaseProps","groupPanelData","groupPanelItems","baseColSpan","GroupPanelCellProps","GroupPanelVerticalCell","CellTemplate","GroupPanelRowProps","GroupPanelLayoutProps","VerticalGroupPanelLayoutProps","GroupPanelVerticalLayout","GroupPanelHorizontalCellProps","GroupPanelHorizontalCell","HorizontalGroupPanelLayoutProps","GroupPanelHorizontalLayout","colSpans","reduceRight","currentColSpans","groupsRow","nextColSpans","currentLevelGroupCount","groupsRenderRow","GroupPanelProps","GroupPanel","isVerticalLayout","GroupPanelWrapper","GroupPanelComponent","dateHeaderData","dateCellTemplate","timeCellTemplate","DateHeaderTextProps","splitText","DateHeaderText","DateHeaderCellProps","isWeekDayCell","isTimeCellTemplate","DateHeaderCell","cellClasses","DateCellTemplate","TimeCellTemplate","DateHeaderLayoutProps","DateHeaderLayout","dataMap","dateHeaderRow","HeaderPanelLayoutProps","isRenderDateHeader","dateHeaderTemplate","HeaderPanelLayout","DateHeader","HeaderPanel","HeaderPanelLayoutComponent","TimePanelCellProps","TimePanelCell","timeCellTemplateProps","highlighted","TimePanelLayoutProps","timePanelData","TimePanelTableLayout","_this$props$timePanel","_this$props$timePanel2","TimePanel","TimePanelTableLayoutComponent","workspace","dragBetweenComponentsPromise","getAppointmentElement","getDroppableCellIndex","getCellIndexByCoordinates","removeDroppableClasses","dataFromTooltip","itemDataFromTooltip","itemDataFromGrid","createDragStartHandler","appointmentDragging","createDragMoveHandler","createDragEndHandler","toItemData","isSchedulerComponent","_getDragBehavior","createDropHandler","addTo","updateDragSource","DATE_TIME_SHADER_CLASS","_dateTableScrollable","initShaderElements","renderShader","_shader","shader","createShader","DATE_TIME_SHADER_ALL_DAY_CLASS","CurrentTimeShader","shaderHeight","_getShaderHeight","_getShaderMaxHeight","isSolidShader","_renderGroupedByDateShaderParts","_renderShaderParts","shaderWidth","_getShaderWidth","_renderTopShader","_renderBottomShader","_renderAllDayShader","bottomShaderWidth","$shader","_$topShader","_getShaderTopOffset","_getShaderOffset","_$bottomShader","_$allDayIndicator","_$allDayPanel","getGroupedStrategy","getShaderOffset","getShaderTopOffset","getShaderHeight","getShaderMaxHeight","getShaderWidth","handleArrowClick","nextCellIndices","edgeIndices","getCellDataByPosition","isAllDayPanelCell","getCellFromNextRowPosition","getCellFromNextColumnPosition","currentCellData","moveToCell","nextRowIndex","lastRowIndex","isMultiSelection","firstColumnIndex","firstRowIndex","_processEdgeCell","validColumnIndex","validRowIndex","isValidRowIndex","_nextRowIndex","_isValidRowIndex","isMultiSelectionAllowed","focusedCellData","nextFocusedCellData","isVirtualCell","_isValidNextFocusedCell","nextAllDay","_viewDataProvider","_focusedCell","_selectedCells","_firstSelectedCell","_prevFocusedCell","_prevSelectedCells","focusedCell","setFocusedCell","setSelectedCells","lastCellCoordinates","firstCellCoordinates","isLastCellAllDay","firstCell","lastCell","getCellsBetween","setSelectedCellsByData","selectedCellsData","getSelectedCells","releaseSelectedAndFocusedCells","releaseSelectedCells","releaseFocusedCell","_prevFirstSelectedCell","restoreSelectedAndFocusedCells","clearSelectedAndFocusedCells","DOCUMENT_SCROLL_EVENT_NAMESPACE","_cellWidth","_createVirtualScrollingBase","verticalVirtualScrolling","_verticalVirtualScrolling","horizontalVirtualScrolling","_horizontalVirtualScrolling","getSchedulerHeight","getSchedulerWidth","outlineCount","getScrolling","getViewWidth","getWindowWidth","getViewHeight","getWindowHeight","cellCountInsideTopVirtualRow","verticalScrollingState","virtualItemCountBefore","cellCountInsideLeftVirtualCell","horizontalScrollingState","cellCountInsideRightVirtualCell","virtualItemCountAfter","topVirtualRowsCount","leftVirtualCellsCount","virtualRowOffset","virtualItemSizeBefore","virtualCellOffset","scrollingState","scrollingOrientation","verticalScrollingAllowed","horizontalScrollingAllowed","setViewOptions","getRenderState","verticalRenderState","horizontalRenderState","minCellWidth","getCellMinWidth","calculateCoordinatesByDataAndPosition","isCalculateTime","isVerticalDirectionView","timeToScroll","cellStartTime","cellEndTime","scrollInCell","getScrollableOuterWidth","_onScrollHandler","createVirtualScrolling","VerticalVirtualScrolling","HorizontalVirtualScrolling","isAttachWindowScrollEvent","attachScrollableEvents","_attachWindowScroll","handleOnScrollEvent","verticalStateChanged","horizontalStateChanged","updateRender","isForce","needUpdateVertical","reinitState","needUpdateHorizontal","updateGrid","defaultState","_itemSize","_itemSizeChanged","outlineCountBefore","outlineCountAfter","virtualItemSizeAfter","outlineSizeBefore","outlineSizeAfter","maxScrollPosition","getTotalItemCount","needUpdateState","isStartIndexChanged","_validateAndSavePosition","currentItemsCount","_correctPosition","itemsInfoBefore","_calcItemInfoBefore","itemsDeltaBefore","_calcItemDeltaBefore","itemCountWithAfter","_calcItemInfoAfter","itemCountBefore","_updateStateCore","isForceUpdate","itemInfoBefore","_updateStateVirtualItems","VirtualScrollingBase","prevTopPosition","getTotalRowCount","startRowIndex","getTotalCellCount","startCellIndex","_workspace","_renderAppointmentTimeoutID","getRenderTimeout","_renderGrid","_renderAppointments","renderWorkSpace","renderTimeout","updateAppointments","$Ae","prepareCellIndexes","_getRowCount","getGroupIndex","calculateHeaderCellRepeatCount","insertAllDayRowsIntoDateTable","_getCellCount","calculateTimeCellRepeatCount","getWorkSpaceMinWidth","_getWorkSpaceWidth","workspaceContainerWidth","getTimePanelWidth","getGroupTableWidth","getAllDayOffset","getGroupCountClass","getLeftOffset","getGroupBoundsOffset","$lastCell","dayHeight","getScrollableScrollTop","headerRowHeight","_$headerPanelContainer","bottomOffset","_groupBoundsOffset","shiftIndicator","getIndicatorOffset","tableOffset","getWorkSpaceLeftOffset","getIndicationHeight","getIndicationWidth","addAdditionalGroupCellClasses","_addLastGroupCellClass","_addFirstGroupCellClass","_viewDataGenerator","getCompleteDateHeaderMap","completeViewDataMap","isGenerateWeekDaysHeaderData","weekDaysRow","_generateWeekDaysHeaderRowMap","dateRow","_generateHeaderDateRow","cellCountInDay","getCellCountInDay","horizontalGroupCount","daysInView","daysInInterval","headerCellTextFormat","getDateForHeaderText","cellCountInGroupRow","slicedByColumnsData","shouldShiftDatesForHeaderText","headerIndex","additionalOptions","validDate","getHeaderCellText","generateDateHeaderData","completeDateHeaderMap","isProvideVirtualCellsWidth","isMonthDateHeader","weekDayRowConfig","validCellWidth","_generateDateHeaderDataRow","datesRowConfig","weekDayLeftVirtualCellWidth","weekDayRightVirtualCellWidth","weekDayLeftVirtualCellCount","weekDayRightVirtualCellCount","actualCellCount","finalLeftVirtualCellCount","finalRightVirtualCellCount","viewDataGenerator","viewOptions","generateGroupedDataMap","_viewOptions","getFirstGroupRow","getGroupEndDate","lastRow","getLastGroupRow","isFindByDate","getGroupFromDateTableGroupMap","checkCellStartDate","startDateVerticalSearch","startDateHorizontalSearch","isAppointmentRender","allDayPanelGroupedMap","_isSameGroupIndexAndIndex","isStartDateInCell","cellStartDate","cellEndDate","cellAllDay","groupRow","getValidStartDate","getTimePanelCellText","validTimeDate","shiftIntegerByModule","integerValue","moduleValue","normalizedInteger","getCompleteTimePanelMap","showCurrentTimeIndicator","realEndViewDate","allDayRowsCount","usualCellIndex","restCellProps","isTimeCellShouldBeHighlighted","isLastCellInGroup","timeIndex","generateTimePanelData","completeTimePanelMap","correctedStartRowIndex","timePanelMap","previousGroupedData","_generateTimePanelDataFromMap","previousGroupIndex","realToday","realStartViewDate","realTodayTimeMs","getLocalDateTimeInMs","startMs","endMs","getHighlightedInterval","cellTimeMs","isEvenCell","dateUtcMs","isWorkView","tableAllDay","_calculateStartViewDate","getCompleteViewDataMap","_setVisibilityDates","setHiddenInterval","groupsList","_generateAllDayPanelData","viewCellsData","_generateViewCellsData","_transformViewDataMapForHorizontalGrouping","_transformViewDataMapForVerticalGrouping","_transformViewDataMapForGroupingByDate","_addKeysToCells","nextGroupRow","nextGroupMap","cellsRow","correctedGroupList","correctedGroupCount","currentRow","currentViewDataMap","allDayPanelsCount","keyBase","currentAllDayPanelsCount","generateViewDataMap","sliceCells","allDayPanelMap","_isStandaloneAllDayPanel","getViewDataFromMap","cellDataRow","isAllDayRow","totalCellCount","_generateCellsRow","cellDataValue","_isFirstGroupCell","_isLastGroupCell","prepareAllDayCellData","prepareCellData","getDateByCellIndices","getCellEndDate","isStartViewDateDuringDST","dateWithCorrectHours","newStartViewDate","getStartViewDateWithoutDST","columnCountBase","rowCountBase","_calculateCellIndex","millisecondsOffset","getMillisecondsOffset","offsetByCount","getTimeOffsetByColumnIndex","startViewDateTime","timeZoneDifference","firstDayOfWeekDiff","calculateCellIndex","previousGroupedDataMap","previousOptions","previousRowIndex","markSelectedAndFocusedCells","selectedCells","nextDateTableMap","_markSelectedAndFocusedCellsInRow","indexInSelectedCells","selectedCellIndex","selectedCellGroupIndex","selectedCellAllDay","selectedCellStartDate","_getIntervalDuration","columnCountInDay","getVisibleDayDuration","durationMs","ViewDataGenerator","calculateStartViewDate","validStartViewDate","isFirstCellInMonthWithIntervalCount","isCurrentDate","isOtherMonth","_minVisibleDate","_maxVisibleDate","viewStart","firstMonthDate","nextMonthDate","toDate","alignedFromDate","alignToFirstDayOfWeek","alignedToDate","alignToLastDayOfWeek","weekCount","msDiff","calculateDaysBetweenDates","calculateAlignedWeeksBetweenDates","isDataOnWeekend","getWeekendsCount","ViewDataGeneratorWeek","MONDAY_INDEX","getViewDataGeneratorByViewType","ViewDataGeneratorMonth","ViewDataGeneratorTimelineMonth","ViewDataGeneratorDay","ViewDataGeneratorWorkWeek","dayDiff","_groupedDataMapProvider","isGenerateNewViewData","dateHeaderDataGenerator","DateHeaderDataGenerator","timePanelDataGenerator","TimePanelDataGenerator","_transformRenderOptions","isGenerateTimePanelData","updateViewData","GroupedDataMapProvider","createGroupedDataMapProvider","viewDataMapWithSelection","restOptions","getGroupPanelData","columnCountPerGroup","groupRenderItems","currentGroupItems","extendGroupItemsForGroupingByDate","actualColumnIndex","getCellsByGroupIndexAndAllDay","rowsPerGroup","_getRowCountWithAllDayRows","firstRowInGroup","correctedFirstRow","getCellCountWithGroup","findGlobalCellPosition","currentAllDay","_compareDatesAndAllDay","includedDays","lastCellStart","daysAfterView","getViewEdgeIndices","getGroupEdgeIndices","isSameCell","firstCellData","secondCellData","firstStartDate","firstGroupIndex","firstAllDay","secondStartDate","secondGroupIndex","secondAllDay","getLastViewDate","getLastCellEndDate","lastEndDate","lastCellEndDate","endDateOfLastViewCell","_adjustEndDateByDaylightDiff","allDayRowCount","normalizeCellsOrder","firstIdx","cellMatrix","getCellsBetweenHorizontalView","getCellsBetweenVerticalView","matrixHeight","matrixWidth","inSegment","columnIdx","cellIdx","firstSelectedCell","lastSelectedCell","tableCreatorModule","WidgetObserver","WORKSPACE_VERTICAL_GROUP_TABLE_CLASS","TIME_PANEL_CELL_CLASS","ALL_DAY_PANEL_CLASS","ALL_DAY_TABLE_CLASS","ALL_DAY_TITLE_CLASS","ALL_DAY_TABLE_CELL_CLASS","WORKSPACE_WITH_MOUSE_SELECTION_CLASS","HORIZONTAL_SIZES_CLASS","VERTICAL_SIZES_CLASS","DATE_TABLE_CELL_CLASS","DATE_TABLE_DROPPABLE_CELL_CLASS","SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME","DragEventNames","DROP","LEAVE","SCHEDULER_CELL_DXCLICK_EVENT_NAME","SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME","SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME","SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME","CELL_DATA","DAY_MS","HOUR_MS","DRAG_AND_DROP_SELECTOR","CELL_SELECTOR","DEFAULT_WORKSPACE_RENDER_OPTIONS","renderComponents","timePanel","generateNewData","ViewDataProvider","cellsSelectionState","_cellsSelectionState","CellsSelectionState","selectedCellsOption","validSelectedCells","selectedCell","_getGroupIndexByResourceId","cellsSelectionController","_cellsSelectionController","CellsSelectionController","_isShowAllDayPanel","verticalGroupTableClass","renovatedHeaderPanelComponent","dxrDateHeader","isDefaultDraggingMode","selectedCellsElement","_getCellByData","onArrowPressed","_isRTL","_isHorizontalGroupedWorkSpace","nextCellData","_processNextSelectedCell","_moveToCell","_getFullCellData","nextCellPosition","_dom_getAllDayPanelCell","_dom_getDateCell","_setSelectedCellsStateAndUpdateSelection","$nextFocusedCell","nextCellCoordinates","updateCellsSelection","_updateSelectedCellDataOption","_hasAllDayClass","_isCellClick","_contextMenuHandled","generateRenderOptions","_isWorkSpaceWithCount","_isWorkspaceWithOddCells","_getRealGroupOrientation","createRAllDayPanelElements","_$allDayTitle","_$headerPanelEmptyCell","_dateTableScrollableConfig","_groupedStrategy","_needCreateCrossScrolling","_createCrossScrollingConfig","virtualScrollingDispatcher","currentOnScroll","_scrollSync","sidebar","_headerScrollableConfig","_updateGroupTableHeight","_setTableSizes","_attachTableClasses","_getTotalCellCount","_$headerPanel","_$dateTable","_$allDayTable","_attachHeaderTableClasses","updateHeaderEmptyCellWidth","_getElementClass","isRenovatedRender","renovatedRenderSupported","_isVirtualModeOn","_initVirtualScrolling","VirtualScrollingDispatcher","_getVirtualScrollingDispatcherOptions","VirtualScrollingRenderer","onDataSourceChanged","_getDefaultGroupStrategy","_getToday","_getFormat","_setHorizontalGroupHeaderCellsHeight","_isRenderHeaderPanelEmptyCell","timePanelWidth","groupPanelWidth","_isGroupsSpecified","resourceTree","_getGroupIndexRecursively","_getViewStartByOptions","_calculateViewStartDate","_getHeaderDate","_firstDayOfWeek","cellSelector","_handleSelectedCellsClick","_getCoordinatesByCell","isAllDayCell","lastCellData","_createContextMenuAction","_contextMenuAction","_getGroupHeaderContainer","_$groupTable","_$thead","_getDateHeaderContainer","_getCalculateHeaderCellRepeatCount","_headerScrollable","_sidebarScrollable","_getTimePanelRowCount","_getCellCountInDay","_getTotalRowCount","includeAllDayPanelRows","_getGroupIndex","_attachTablesEvents","_attachDragEvents","_attachPointerEvents","_detachDragEvents","_isOutsideScrollable","preventDefaultDragging","isPointerDown","getWorkArea","_$dateTableContainer","getGroupedScrollableScrollTop","getScrollableScrollLeft","getHeaderPanelHeight","_$timePanel","_getCellCoordinatesByIndex","_getDateGenerationOptions","_getIntervalBetween","startDayTime","timeZoneOffset","fullInterval","_getDaysOfInterval","weekendsCount","_getWeekendsCount","_updateIndex","_getDroppableCell","_getDateTables","_getCellByCoordinates","_getCells","_getFirstAndLastDataTableCell","_getAllCells","_getGroupHeaderCells","_getScrollCoordinates","$dateTableScrollableElement","isTargetInAllDayPanel","isOutsideHorizontalScrollable","setCellDataCache","aliasKey","keepOriginalHours","_filterCellDataFields","_getDataByCell","_getVirtualRowOffset","_getVirtualCellOffset","getCellIndexByDate","timeInterval","$droppableCell","getDataByDroppableCell","getEndViewDateByEndDayHour","getRoundedCellWidth","getDOMElementsMetaData","leftCoordinateOffset","topCoordinateOffset","groupBounds","VerticalGroupedStrategy","getGroupBoundsVertical","getGroupBoundsHorizontal","getGroupBoundsRtlCorrection","$firstAndLastCells","getCellDataByCoordinates","getVisibleBounds","scrolledCellCount","needUpdateScrollPosition","_getCellsInViewport","trimmedTime","scrollableScrollTop","scrollableScrollLeft","fullScrolledRowCount","scrolledRowCount","fullScrolledColumnCount","scrolledColumnCount","scrollToTime","_isValidScrollDate","isScrollToAllDay","xShift","yShift","throwWarning","needApplyCollectorOffset","_getTimePanelCells","_getRDateTableProps","selectedCellData","correctedSelectedCellData","_getDateTableDOMElementsInfo","_getAllDayPanelDOMElementsInfo","dateTableCells","_getDateTable","dateTableRect","_addCellMetaData","allDayCells","allDayPanelRect","cellMetaDataArray","parentRect","cellRect","_oldRender_getAllDayCellData","renderRWorkSpace","renderRHeaderPanel","renderRTimeTable","renderRDateTable","renderRAllDayPanel","dxrDateTableLayout","renderRGroupPanel","_attachGroupCountClass","dxrGroupPanel","_detachGroupCountClass","_toggleAllDayVisibility","dxrAllDayPanelTable","dxrAllDayPanelTitle","dxrTimePanelTableLayout","initDragBehavior","AppointmentDragBehavior","_createDragBehavior","enableDefaultDragging","disableDefaultDragging","getDroppableCell","getDateTables","isItemDisabled","appointmentIndex","isWideAppointment","isNarrowAppointment","dragElementContainer","isMoveUnderControl","dateTables","droppableCell","createDragBehaviorConfig","allDayExpanded","crossScrollingEnabled","allowMultipleCellSelection","indicatorUpdateInterval","shadeUntilCurrentTime","renovateRender","draggingMode","onScrollEnd","onRenderAppointments","onShowAllDayPanel","onSelectedCellsClick","schedulerHeight","schedulerWidth","_cleanWorkSpace","_cleanView","_removeAllDayElements","_initGrouping","_initGroupedStrategy","_createAllDayPanelElements","_toggleGroupByDateClass","_changeAllDayVisibility","_toggleWorkSpaceCountClass","_toggleHorizontalScrollClass","updateShowAllDayPanel","isHiddenAllDayPanel","_toggleGroupedClass","_toggleWorkSpaceWithOddCells","_renderView","_initPositionHelper","PositionHelper","groupedStrategy","_toggleGroupingDirectionClass","Strategy","inAllDay","groupByDay","_createGroupBoundOffset","startCell","endCell","extraOffset","_getGroupedByDateBoundOffset","lastCellIndex","currentCellGroup","groupEndPosition","_getIndicatorOffset","_calculateGroupByDateOffset","applyUnconditionally","_getDateTableCellClass","_getGroupHeaderClass","GROUP_HEADER_CLASS","_initWorkSpaceUnits","_$headerTablesContainer","_$fixedContainer","_$allDayContainer","_$dateTableScrollableContent","_$sidebarScrollableContent","_initAllDayPanelElements","_allDayTitles","_allDayTables","_allDayPanels","_initDateTableScrollable","$dateTableScrollable","_createWorkSpaceElements","_createWorkSpaceScrollableElements","_createWorkSpaceStaticElements","_appendHeaderPanelEmptyCellIfNecessary","_$flexContainer","_createHeaderScrollable","_createSidebarScrollable","$headerScrollable","$timePanelScrollable","_addTableClass","_renderDateTimeIndication","_setIndicationUpdateInterval","_applyCellTemplates","_renderGroupHeader","VerticalShader","renderCurrentDateTimeLineAndShader","renderCurrentDateTimeIndication","_getDateHeaderTemplate","isUpdateScrollable","_cleanTableWidths","_$sidebarTable","_disposeRenovatedComponents","renovatedAllDayPanel","renovatedDateTable","renovatedTimePanel","renovatedGroupPanel","renovatedHeaderPanel","getFixedContainer","getAllDayContainer","$allDayTitle","_renderDateHeader","_renderTimePanel","_renderGroupAllDayPanel","_renderDateTable","_renderAllDayPanel","groupRows","_makeGroupRows","tableCreatorStrategy","_columnIndex","_renderDateHeaderTemplate","panelCellIndex","templateIndex","validTemplateIndex","_getHeaderPanelCellClass","_getGroupsForDateHeaderTemplate","indexMultiplier","_renderTableBody","_getAllDayPanelCellClass","_getTimeCellClass","_insertAllDayRowsIntoDateTable","fullValue","delayCellTemplateRendering","GROUP_TABLE_CLASS","WorkSpace","_startViewDate","_recalculateAgenda","_initGroupTable","validCurrentDate","_rowsIsEmpty","_renderNoData","_setGroupHeaderCellsHeight","_$noDataContainer","_removeEmptyRows","_getGroupRowHeight","createReducedResourcesTree","cellTextElement","contentWrapper","_cleanCellDataCache","isIndicationAvailable","_prepareCellTemplateOptions","groupsOpt","isGroupedView","cellTemplateOpt","_$rows","fillTableBody","rowSize","cellDateNumber","cellDayName","$td","getStartDate","_setLastRowClass","_getTimePanelStartDate","baseHeight","_calculateRows","startDateHour","startDateMinutes","isUpdateNeeded","_setSelectedCellsByCellData","SchedulerAgenda","TimelineDateHeaderLayout","isWeekDayRow","validLeftVirtualCellCount","validRightVirtualCellCount","validRightVirtualCellWidth","validLeftVirtualCellWidth","TimelineHeaderPanelLayout","TimelineHeaderPanelLayoutComponent","isFirstShader","_customizeGroupedByDateShader","_customizeShader","_applyShaderWidth","indicationWidth","shaderLeft","getIndicationCellCount","fractionPart","isFirstShaderPart","SCHEDULER_DATE_TIME_INDICATOR_CLASS","TIME_PANEL_CURRENT_TIME_CELL_CLASS","SchedulerWorkSpace","isIndicationOnView","isIndicatorVisible","groupedByDate","_getRtlOffset","_clearIndicatorUpdateInterval","_indicatorInterval","_isVerticalShader","_getIndicatorDuration","timeDiff","_cleanDateTimeIndicator","_isCurrentTimeHeaderCell","_getCurrentTimePanelCellIndices","cellIndices","rowCountPerGroup","currentTimeRowIndex","verticalGroupCount","currentIndices","_setCurrentTimeCells","timePanelCells","timePanelCellIndex","_cleanCurrentTimeCells","SchedulerWorkSpaceIndicator","HEADER_PANEL_CELL_CLASS","HEADER_PANEL_WEEK_CELL_CLASS","dxrTimelineDateHeader","_getWorkSpaceHeight","_needRenderWeekHeader","_incrementDate","_getTimeDiff","_calculateDurationInCells","_getIndicationFirstViewDate","dayLightOffset","_getWorkSpaceMinHeight","workspaceContainerHeight","firstViewDateTime","apptStart","fullDays","tailDuration","tailDelta","gapBeforeAppt","groupCellTemplates","HorizontalShader","currentTimeColumnIndex","cellsInGroup","$th","SchedulerTimeline","SchedulerTimelineDay","SchedulerTimelineMonth","_getHeaderPanelCellWidth","SchedulerTimelineWeek","SchedulerTimelineWorkWeek","FPe","SchedulerWorkSpaceVertical","SchedulerWorkSpaceDay","MonthDateTableCell","MonthDateTableLayout","MonthDateTableLayoutComponent","averageWidth","dxrMonthDateTableLayout","_setMonthClassesToCell","SchedulerWorkSpaceMonth","startDateOption","validFirstDayOfWeek","calculateViewStartDate","SchedulerWorkSpaceWeek","SchedulerWorkSpaceWorkWeek","WIDGET_SMALL_CLASS","WIDGET_ADAPTIVE_CLASS","WIDGET_READONLY_CLASS","VIEWS_CONFIG","StoreEventNames","customizeDateNavigatorText","appointmentCollectorTemplate","recurrenceEditMode","onAppointmentRendered","onAppointmentContextMenu","onCellContextMenu","onAppointmentAdding","onAppointmentAdded","onAppointmentUpdating","onAppointmentUpdated","onAppointmentDeleting","onAppointmentDeleted","onAppointmentFormOpening","onAppointmentTooltipShowing","appointmentTooltipTemplate","appointmentPopupTemplate","useDropDownViewSwitcher","recurrenceExceptionExpr","_draggingMode","_appointmentTooltipOffset","_appointmentTooltipButtonsPosition","_appointmentTooltipOpenButtonText","_appointmentCountPerCell","_appointmentOffset","defaultElement","_filteredItems","_preparedItems","_timeZoneCalculator","currentTimeZone","TimeZoneCalculator","createTimeZoneCalculator","_postponeDataSourceLoading","_postponeResourceLoading","whenLoaded","resolveCallbacks","validateOptions","_updateOption","_header","_filterAppointmentsByDate","_getCurrentViewOptions","_allowDragging","_allowResizing","_refreshWorkSpace","_headerConfig","updateInstances","_createAppointmentPopupForm","normalizeViewOffsetValue","ADDING","ADDED","UPDATING","UPDATED","DELETING","DELETED","_getAppointmentRenderedAction","_appointmentTooltip","_readyToRenderAppointments","_getAppointmentsToRepaint","_initEditing","_bringEditingModeToAppointments","_cleanPopup","_updateExpression","_initAppointmentTemplate","_toggleAdaptiveClass","_isHorizontalVirtualScrolling","editingConfig","allowDelete","_isAgenda","_supportAllDayResizing","_allowAllDayResizing","_isAllDayExpanded","contentReadyBase","fireContentReady","_workSpaceRecalculation","isFixedHeight","isFixedWidth","_toggleSmallClass","createAppointmentsMap","_appointmentPopup","_initAllDayPanel","_initExpressions","_customizeDataSourceLoadOptions","CompactAppointmentsHelper","_asyncTemplatesTimers","_dataSourceLoadedCallback","_subscribes","AgendaResourceProcessor","_optionsValidator","SchedulerOptionsValidator","_optionsValidatorErrorHandler","SchedulerOptionsValidatorErrorsHandler","createAppointmentDataProvider","AppointmentDataProvider","appointmentTooltip","dropDownAppointment","createGetter","_updatePreparedItems","_recurrenceRule$match","comparableStartDate","comparableEndDate","getPreparedDataItems","currentViewOptions","_filterAppointments","$dateTable","getAppointmentsContainer","dxrAppointmentLayout","renderAppointments","appointmentsMap","getRepaintedAppointments","exprObj","_recurrenceDialog","hideAppointmentPopup","_renderMainContainer","AppointmentViewModelGenerator","getAppointmentRenderingStrategyName","getCellDimensions","_getRenderingStrategyOptions","createGetAppointmentColor","renderingStrategyOptions","_positionMap","_isDataChanged","_isAppointmentShouldAppear","_isSettingChanged","sourceSetting","createSettingsToCompare","newSettings","oldSettings","_getAssociatedSourceAppointment","sourceAppointments","_getDeletedAppointments","isSettingChanged","isAppointmentShouldAppear","AppointmentCollection","_appointmentsConfig","MobileTooltipStrategy","DesktopTooltipStrategy","_getAppointmentTooltipOptions","_isDataSourceLoaded","_initMarkupCore","_appointmentForm","createAppointmentForm","createAppointmentPopup","_mainContainer","getResourceByField","_createResourceEditorModel","AppointmentForm","AppointmentPopup","_processActionResult","resourceItem","getWorkSpaceScrollableContainer","deletingOptions","fireOnAppointmentDeleting","processDeleteAppointment","_getExtraAppointmentTooltipOptions","_cleanWorkspace","_renderWorkSpace","_waitAsyncTemplate","_validateKeyFieldIfAgendaExist","countConfig","getAgendaResourceProcessor","getAppointmentDataProvider","_isDateAndTimeView","getCollectorOffset","getAppointmentDurationInMinutes","_getCurrentViewType","$workSpace","workSpaceComponent","workSpaceConfig","_workSpaceConfig","_all","_recalculateWorkspace","_getViewByName","horizontalVirtualScrollingAllowed","getFilteredItems","showAddAppointmentPopup","_isRenovatedRender","getWorkSpaceScrollable","getHeader","singleAppointment","isDeleted","_excludeAppointmentFromSeries","_showRecurrenceChangeConfirm","newRawAppointment","getSerializedDate","createRecurrenceException","excludeFromRecurrence","singleRawAppointment","_editAppointmentData","_createRecurrenceException","_getSerializedDate","seriesText","occurrenceText","customDialog","getConvertedFromGrid","targetCell","getTargetCellData","resultedStartDate","timeInMs","targetCellStartDate","resultedEndDate","dateCopy","rawResult","setResourceToAppointment","resourcesSetter","rawTargetedAppointment","setTargetedAppointmentResources","displayStartDate","displayEndDate","onUpdatePrevented","updatingOptions","performFailAction","_expandAllDayPanel","storeAppointment","_onDataPromiseCompleted","actionOptions","resolveCallback","getActions","dayTimeStamp","startDateTimeStamp","endDateTimeStamp","setResourceCallback","apptSettings","resultAppointment","createNewAppointment","newRawTargetedAppointment","newTargetedAppointment","isCreateAppointment","createPopupAppointment","saveChanges","_getAppointmentColor","currentAppointmentData","serializedAppointment","addingOptions","deleteAppointment","deleteRecurrence","offsetFromOptions","Scheduler","DxSchedulerModule","DxScrollViewComponent","DxScrollView","reachBottomTextChange","useNativeChange","DxScrollViewModule","DxSelectBoxComponent","DxSelectBox","customItemCreateEventChange","DxSelectBoxModule","DxSliderComponent","DxSlider","DxSliderModule","DxSortableComponent","DxSortable","allowDropInsideItemChange","allowReorderingChange","autoScrollChange","boundaryChange","cursorOffsetChange","dataChange","dragDirectionChange","dragTemplateChange","dropFeedbackModeChange","filterChange","groupChange","handleChange","itemOrientationChange","moveItemOnDropChange","scrollSensitivityChange","scrollSpeedChange","DxSortableModule","ALLOWED_TYPES","winloss","_String","pointIndexes","dxSparkline","_createSeries","_updateSeries","_seriesLabelGroup","_drawSeries","halfPointSize","_prepareDataSource","_prepareSeriesOptions","_simpleDataSource","_getCustomizeFunction","_groupsDataCategories","argField","valField","isDataNumber","parseNumericDataSource","_winlossDataSource","parseWinlossDataSource","customizeFunction","drawnPointIndexes","_getExtremumPointsIndexes","winlossData","isWinloss","selectPointColor","createBarCustomizeFunction","createLineCustomizeFunction","_minMaxIndexes","minIndexes","maxIndexes","findMinMax","argCoef","isBarType","isWinlossType","hasMinY","hasMaxY","valCoef","_getBarWidth","_correctPoints","pointsLength","minMax","formattedFirst","formattedLast","formattedMin","formattedMax","originalFirstValue","originalLastValue","originalMaxValue","originalThresholdValue","thresholdValue","DxSparklineModule","callOverlayRenderShading","_isPositionLeft","_renderButtonIcon","_getVisibleActions","_getActionComponent","actionElement","_setClickAction","clickActionArgs","_getInkRippleContainer","speedDialMainItem","modifyActionOptions","actionComponent","actionVisible","parentPosition","SpeedDialItem","closeIcon","maxSpeedDialActionCount","childIndent","childOffset","floatingActionButtonConfig","_renderCloseIcon","_$closeIcon","_getCurrentOptions","visibleActions","_getPosition","_actionItems","nextAction","lastActionIndex","_getActionAnimation","_getActionPosition","_isShadingShown","actionItem","$actionElement","_getDirectionIndex","actionsHeight","_$wrapperCoveredElement","actionOffsetXValue","actionOffsetX","actionOffsetYValue","actionOffsetY","actionPositionAtMy","newAction","isActionExist","savedActions","$fabMainElement","SpeedDialMainItem","initAction","actionId","disposeAction","DxSpeedDialActionModule","DxSwitchComponent","DxSwitch","switchedOffTextChange","switchedOnTextChange","DxSwitchModule","DxTabPanelComponent","DxTabPanel","iconPositionChange","tabsPositionChange","DxTabPanelModule","DxTabsModule","DxTagBoxComponent","DxTagBox","hideSelectedItemsChange","maxDisplayedTagsChange","maxFilterQueryLengthChange","multilineChange","showMultiTagOnlyChange","tagTemplateChange","DxTagBoxModule","DxTextAreaComponent","DxTextArea","autoResizeEnabledChange","DxTextAreaModule","DxTextBoxComponent","DxTextBox","maskChange","maskCharChange","maskInvalidMessageChange","maskRulesChange","showMaskModeChange","useMaskedValueChange","DxTextBoxModule","CONFIGS","itemMainRatio","itemCrossRatio","baseItemMainDimension","baseItemCrossDimension","mainDimension","crossDimension","mainPosition","crossPosition","TileView","baseItemWidth","baseItemHeight","itemMargin","_cellsPerDimension","_updateScrollView","_indicateLoadingIfAlreadyStarted","_config","crossDimensionValue","maxItemCrossRatio","_cells","_renderContentSize","actualContentSize","_itemsPositions","_arrangeItem","main","cross","_itemFit","itemRatioMain","itemRatioCross","itemPositionMain","itemPositionCross","baseItemCross","baseItemMain","cssProps","offsetCorrection","itemPositionX","horizontalDirection","targetCol","targetRow","newTargetIndex","outerMainGetter","itemDimension","itemTail","DxTileViewComponent","DxTileView","baseItemHeightChange","baseItemWidthChange","itemMarginChange","DxTileViewModule","DxToastModule","DxToolbarComponent","DxToolbar","menuItemTemplateChange","DxToolbarModule","DxTooltipComponent","DxTooltip","DxTooltipModule","DxTreeListComponent","DxTreeList","autoExpandAllChange","dataStructureChange","expandedRowKeysChange","expandNodesOnFilteringChange","filterModeChange","hasItemsExprChange","parentIdExprChange","rootValueChange","DxTreeListModule","updateTile","isNode","minLevel","updateStyles","_buildState","updateLabelStyle","labelState","labelParams","_getState","directionToIndexOffsets","getStaticSideIndex","_staticSideIndex","staticSideIndex","variedSideIndex","staticSideDirection","variedSideDirection","staticSideIndexOffsets","variedSideIndexOffsets","staticSide","variedSide","static1","static2","varied1","varied2","staticDir","variedDir","totalRect","sidesData","variedSidePart","defaultColorizerName","colorizers","_groupColor","colorizer","colorCodeField","createColorCode","getValueAsColorCode","buildSidesData","getArea","nextAspectRatio","nextSum","totalAspectRatio","bestAspectRatio","areaToValue","getAspectRatio","findAppropriateCollection","calculateRectangles","isFixedStaticSide","doStep","allNodes","getLeafsCount","getNodesCount","prepareDiscreteGroupColors","_squarify","addColorizer","colorizeGroups","discreteGroupColorizer","discreteLeafColorizer","lefttoprightbottom","leftbottomrighttop","righttopleftbottom","rightbottomlefttop","setDefaultAlgorithm","setDefaultColorizer","dxTreeMap","_handlers","beginBuildNodes","buildNode","endBuildNodes","calculateState","_buildRectAppearance","_rectOffsets","suspend","resume","calculateLabelState","_buildTextAppearance","_topNode","_createProxyType","_tilesGroup","_tilingRect","labelField","layoutAlgorithm","layoutDirection","_changeDataSource","_isDataExpected","_isSyncData","_change_TILE_SETTINGS","_changeTileSettings","_change_GROUP_SETTINGS","_changeGroupSettings","_change_MAX_DEPTH","_changeMaxDepth","_change_NODES_RESET","_resetNodes","_performTiling","_change_LABELS_LAYOUT","_performLabelsLayout","forceReset","_processDataSourceItems","traverseDataItems","itemsField","_onNodesCreated","pickPositiveInteger","_calculateLabelSettings","tileEdge","tileInner","groupPadding","_headerHeight","_groupPadding","headerEdge","headerInner","_getTextBBox","tileLabelOptions","groupLabelOptions","tileLabelWordWrap","tileLabelOverflow","groupLabelOverflow","_maxDepth","_processNodes","processNodes","wrapGroupColorGetter","wrapLeafColorGetter","_getColorizer","processTileAppearance","processLabelAppearance","_getTilingAlgorithm","rectOffsets","innerRect","calculateRects","processTiling","_onTilingPerformed","processLabelsLayout","_textForCalculations","createTile","customLabel","createLabel","emptyRect","setRectAttrs","buildTileRect","marginateRect","layoutTextNode","sliceAndDiceAlgorithm","_createColorCodeGetter","createSimpleColorizer","calculateRange","createGuessingColorizer","getPaletteIndex","TreeMapBase","nodeProto","proxy","collectNodes","onNodesRendering","Proxy","getParent","getChild","getChildrenCount","getAllChildren","isLeaf","_custom","_partialState","_partialLabelState","resetCustomization","_extendProxyType","_updateStyles","_updateLabelStyle","calculatePartialLabelState","resetNodes","_calculateState","calculateAdditionalStates","statesMap","additionalStates","buildAdditionalStates","setNodeStateRecursive","buildRectAppearance","_hoverEnabled","_hoverNode","_hoverIndex","_groupHoverEnabled","_applyHoverState","_selectionList","_selectNode","selectionList","tileToFront","bringSelectedTilesToForeground","_applySelectionState","getProxy","onDrill","_expand","drillDown","_drillToNode","_drilldownIndex","resetDrillDown","drillUp","getCurrentNode","idField","treeFiller","parentField","tmpItems","pluginLoadIndicator","DxTreeMapModule","DxTreeViewComponent","DxTreeView","collapseIconChange","createChildrenChange","expandAllEnabledChange","expandedExprChange","expandEventChange","expandIconChange","expandNodesRecursiveChange","scrollDirectionChange","selectNodesRecursiveChange","showCheckBoxesModeChange","virtualModeEnabledChange","DxTreeViewModule","DxValidationGroupComponent","DxValidationGroup","DxValidationGroupModule","DxValidationSummaryComponent","DxValidationSummary","DxValidationSummaryModule","DxValidatorComponent","getParentElement","DxValidator","onValidated","adapterChange","validationRulesChange","DxValidatorModule","eventEmitterMethods","_eventNames","_events","_disposeEvents","_ln","TWO_TO_LN2","LN2","MIN_BOUNDS_RANGE","DEFAULT_CENTER","f1","f2","a1","a2","floatsEqual","parseAndClamp","Engine","projection","Projection","_engine","getEngine","_adjustCenter","point1","point2","basePoint1","basePoint2","basePoint","returnArray","_minZoom","_maxZoom","_zoom","setEngine","_changeCenter","_triggerCenterChanged","_changeZoom","_triggerZoomChanged","_setupScreen","setBounds","original","_x0","_y0","project","screenAR","boundsAR","_xRadius","_yRadius","_toScreen","_fromScreen","_toTransformed","_xCenter","_yCenter","_toTransformedFast","_fromTransformed","isInvertible","getSquareSize","getScaledZoom","setScaledZoom","scaledZoom","changeScaledZoom","deltaZoom","getZoomScalePartition","_setupScaling","setMaxZoom","maxZoom","MAX_VALUE","arraysEqual","parseAndClampArray","centerChanged","setCenterByPoint","unproject","beginMoveCenter","_moveCenter","endMoveCenter","moveCenter","fromScreenPoint","selectFarthestPoint","setViewport","selectClosestPoint","getZoomAndCenterFromViewport","getTransform","makeEventEmitter","invertVerticalAxis","createProjectMethod","createUnprojectMethod","setMinMax","b2","createProjectUnprojectMethods","projectionsCache","createVisibilityGroup","toggleDisplay","blocks","COMMAND_RESET","COMMAND_MOVE_UP","COMMAND_MOVE_RIGHT","COMMAND_MOVE_DOWN","COMMAND_MOVE_LEFT","COMMAND_ZOOM_IN","COMMAND_ZOOM_OUT","COMMAND_ZOOM_DRAG","EVENT_TARGET_TYPE","SIZE_OPTIONS","bigCircleSize","smallCircleSize","buttonSize","arrowButtonOffset","incDecButtonSize","incButtonOffset","decButtonOffset","sliderLineStartOffset","sliderLineEndOffset","sliderLength","sliderWidth","trackerGap","COMMAND_TO_TYPE_MAP","_createElements","layoutControl","_subscribeToProjection","_subscribeToTracker","_createCallbacks","endMove","beginMove","dZoom","_adjustZoom","_zoomFactor","_pos","ResetCommand","MoveCommand","ZoomCommand","ZoomDragCommand","ControlBar","_offProjection","_zoomPartition","_sliderUnitLength","_sliderLineLength","_processStart","_processMove","_processEnd","isCenter","isZoom","panControl","_panControl","zoomBar","_zoomBar","trackersPan","_trackersPan","trackersZoom","_trackersZoom","_createTrackersPan","_createTrackersZoom","_createPanControl","_createZoomBar","offset1","offset2","_zoomLine","_zoomDrag","size2","_zoomDragTracker","_isActive","_margin","groupPan","groupZoom","_isPanVisible","_isZoomVisible","updateLayout","setInteraction","interaction","centeringEnabled","zoomingEnabled","styleSvg","panVisible","zoomVisible","_applyZoom","commandType","FLAG_CENTERING","disposeCommand","_LN2","GestureHandler","_processZoom","_centeringEnabled","_zoomingEnabled","EVENTS","Focus","_addNamespace","_NAME","EVENT_ZOOM","EVENT_FOCUS_ON","EVENT_FOCUS_MOVE","EVENT_FOCUS_OFF","_createEventHandlers","_createProjectionHandlers","setupEvents","_detachHandlers","_docHandlers","_rootHandlers","_startClick","getEventCoords","_clickState","_endClick","_startDrag","_dragState","_moveDrag","_endDrag","_wheelZoom","_wheelLock","dirTime","adjustWheelDelta","_startZoom","pointer2","_zoomState","pointer1","getPointerId","getMultitouchEventCoords","x1_0","y1_0","x2_0","y2_0","_moveZoom","_endZoom","startDistance","currentDistance","_startHover","_doHover","_moveHover","_cancelHover","_hoverTarget","_hoverState","_startFocus","_doFocus","_cancelFocus","turnOff","turnOn","DATA_KEY","_isTouchEnabled","_isWheelEnabled","touchEnabled","wheelEnabled","_activeData","_disabled","_offTimer","onCheck","DataExchanger","_get","unknownSource","_BaseLegend","itemsGroupClass","_onDataChanged","_unbindData","notifyDirty","notifyReady","partition","buildData","_dataName","_dataCategory","dataExchanger","_bindData","LegendsControl","forceMode","hasHiddenItems","adjustCellSizes","otherCell","size1","otherCell1","otherCell2","xOffset","yOffset","totalL","totalT","totalR","totalB","moves","horInversion","verInversion","applyCellLayout","_suspended","_updateLayout","LayoutControl","hStep","vStep","h1","h3","h4","v3","itemsList","createCells","adjustCellsAndApplyLayout","_concat","TYPE_AREA","TYPE_LINE","TYPE_MARKER","STATE_TO_INDEX","SELECTIONS","single","spaceSize","EmptySource","ArraySource","bbox","GeoJsonSource","TYPE_TO_TYPE_MAP","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","groupByColor","groupBySize","emptyStrategy","updateGrouping","getDefaultColor","strategiesByType","strategiesByGeometry","strategiesByElementType","projectPointList","transformList","partial","projectLabel","centroid","resultCentroid","maxArea","calculatePolygonCentroid","transformPointList","transformLabel","setAreaLabelVisibility","getLabelOffset","pick","hoveredOpacity","selectedOpacity","applyElementState","hasLabelsGroup","calculateLineStringData","setLineLabelVisibility","_getStyles","_setState","sample","projectPolygon","projectMultiPolygon","projectLineString","dot","back","hoveredSize","selectedSize","hoveredBackSize","selectedBackSize","sizeGroups","getDataValue","deltaValue","deltaSize","zeroSum","hoveredStep","performGrouping","settingField","valuesCallback","valueCallback","colorGroups","colorGroupingField","sizeGroupingField","MapLayerElement","MapLayer","_onProjection","getElements","getProxies","_noEvent","createLayerProxy","_dataSourceLoaded","totalLength","min0","max0","min1","max1","findGroupingIndex","_layers","_layerByName","_clip","_dataReady","dataReady","layerCollection","getDataReadyCallback","_removeHandlers","_project","_transform","_transformCore","isGeoJsonObject","unwrapFromDataSource","_specificDataSourceOption","_normalizeDataSource","_loadMode","_destroyHandles","dropGrouping","labelRoot","_options_dataSource","wrapToDataSource","isContextChanged","guessTypeByData","fullType","combineSettings","paletteSize","processCommonSettings","hasSeparateLabel","resetSelected","_createHandles","_updateHandles","getMaxBound","coordsToBoundsSearch","ac","proxies","customizeHandles","restoreSelected","measureLabel","adjustLabel","raiseClick","hoverItem","setHovered","setSelected","applySettings","createProxy","_ctx","_fig","_coordinates","_projectLabel","_labelProjection","_transformLabel","applyGrouping","paletteIndex","_refreshLabel","_setForeground","hasFlag","setFlag","raiseChanged","MapLayerCollection","byName","layers","layerByName","_updateClip","bw","_borderWidth","setBackgroundOptions","setRect","byIndex","TooltipViewer","nextDataKey","_asin","_tan","_atan","_exp","exp","_log","PI_DIV_4","GEO_LON_BOUND","RADIANS","MERCATOR_LAT_BOUND","MILLER_LAT_BOUND","clamp","RE_STARTS_LAYERS","RE_ENDS_DATA_SOURCE","sumBounds","dataBounds","dxVectorMap","onCenterChanged","onZoomFactorChanged","_initLayerCollection","_layerCollection","_dataExchanger","_notifyDirty","_notifyReady","_preventProjectionEvents","_getBoundsFromData","_allowProjectionEvents","longitudeLength","latitudeLength","_getBoundingBoxFromDataSource","boundsByData","getLayers","_initLegendsControl","_legendsControl","_layoutControl","_initControlBar","_controlBar","_initElements","preventProjectionEvents","generateDataKey","notifyCounter","_gestureHandler","_tooltipViewer","_change_RESUME_LAYOUT","_setupInteraction","extraElements","legends","panningEnabled","maxZoomFactor","_change_PROJECTION","_setProjection","_change_BOUNDS","_setBounds","_change_MAX_ZOOM_FACTOR","_setMaxZoom","_change_ZOOM_FACTOR","_setZoom","_change_CENTER","_setCenter","_change_BACKGROUND","_setBackgroundOptions","_change_LAYERS","_setLayerCollectionOptions","_change_CONTROL_BAR","_setControlBarOptions","_change_EXTRA_ELEMENTS","_change_LEGENDS","_setLegendsOptions","_change_TRACKER","_setTrackerOptions","_change_INTERACTION","infinityBounds","resultBBox","sumBBox","layerData","rootBBox","mergeBounds","getLayerByIndex","getLayerByName","convertCoordinates","convertToGeo","convertToXY","ExportPlugin","TitlePlugin","TooltipPlugin","DxVectorMapModule","DevExtremeModule","AdminService","K6e","hasConfig","_hasValue","initMimeDescriptionDropDown","dropDownMimeDescr","featureSystems","hasEcommerce","hasEcommerceFeatures","featureSystem","referenceFeatureSystemName","ViewService","languageTemplate","LanguageFlag","shopUrl","isTest","userName","password","isLive","ftpServer","ftpFolder","ftpUser","isTested","startSupplierPid","currentSupplierPid","postFixSupplierPid","preFixSupplierPid","hasLine1","hasLine2","hasLine3","hasLine4","line1Length","line2Length","line3Length","line4Length","userId","isTarget","searchFields","searchStateMode","deserialize","searchField","productSearchOptionsId","SystemService","notifyWarning","notifyInfo","Message","toDo","getFileSizeString","testUrl","fileUrl","HttpHeaders","HttpParams","mediaUrlImport","catalogId","catalogUrlImport","categoryUrlImport","saveHelp","wiki","CustomerWiki","help","loadHelp","WawiSettingsService","getWawiSettings","CustomerService","getCustomer","getAllCustomerByUser","getUsersOfCustomer","getLogins","getCustomerAddonInfos","customer","addUserToCustomer","claim","deleteUserFromCustomer","deleteCustomer","UserService","getUser","inviterId","user","setLastNewsRead","lastNewsRead","AddonService","getAllNormalAddons","apiUrl","getAllExportAddons","getAllClassificationAddons","getAddonsOfCustomer","setAddonsToCustomer","addons","addonSelectionChanged","addedAddons","removedAddons","LoginService","oauthService","userIdleService","systemService","wawiSettingsService","customerService","userService","addonService","OsgConnection","MavisConnection","WawiSettings","SendToNWConfig","Toggle","idleStartSubscription","idleEndSubscription","idlePingSubscription","isAdmin","currentUser","currentClaim","isUser","isManager","productSearchOptions","productSearchOptionsTarget","setCustomer","lastValueFrom","currentCustomer","toPromise","updateUser","updateAddons","Vn","getLanguages","setShow","setLanguageFlags","CheckAndSetFrontEndLanguage","frontEndLanguage","getCustomerStatistics","loginRequired","tokenExpiration","accessToken","getAccessToken","login","creds","fetchTokenUsingPasswordFlowAndLoadUserProfile","username","getAccessTokenExpiration","getIdentityClaims","onLoggedIn","loggedIn","logout","refreshToken","silentlogin","getRefreshToken","loadUserProfile","logOut","getCurrentCustomer","notifyTestAccount","notifyTestAccountForCustomer","isTestAccount","accountValidDate","setAddons","setLanguages","changePassword","requestPassword","updateSearchFields","selectedSearchFields","ProductSearchOptions","SearchFields","hasAddonMavis","hasAddonEDC","hasAddonRClass","hasAddonOSG","hasAddonCSV","hasAddonMULTI_ACCOUNT","hasAddonEXCEL_TEMPLATE","hasAddonAGREEMENT","hasAddonEXCEL_ORDER_EXPORT","hasAddonCATALOG_DETAILS","hasAddonVALIDATION","hasAddonUDX","hasAddonSHOP_VIEW","hasAddonACTIONS","hasAddonShopWare","hasAddonTranslate","hasAddonPRODUCT_DETAILS","hasAddonSEO","hasAddonDATA_QUALITY","hasAddonPRINT","hasAddon2BAExport","hasAddonCLASSIFICATION","hasAddonEDENUMBERS","hasAddonLEGALITY","hasAddonSEARCH","hasAddonETIM","hasAddonECLASS","hasAddonNWCLASS","hasAddonShopware6","hasAddonNordwest","hasAddonProductTemplates","hasAddonTemplateLukas","hasAddonEBAY","hasAddonCATEGORYEXPORT","hasAddonREPORTPRODUCTDATASHEET","hasAddonDEEPLTRANSLATE","hasAddonSHOPWARE6_VARIANTS","hasAddonSHOPWARE5_VARIANTS","hasAddonFEATURE_MAPPING","hasAddonDEVELOPMENT","hasAddonWawiErp","hasAddonSHOPWARE6_MULTILANGUAGE","hasAddonGevis","hasAddonEDESortimentsAbo","hasAddonMassDataChange","hasAddonKI_TEXTS","hasAddonSHOPWARE5","hasAddonSMARTSTORE","hasAddonVIRTUAL_CATALOGS","hasAddonSUPPLIERS","hasAddonODOO","hasAddonSHOPWARE6_ASYNCINDEXING","hasAddonINTERSHOP","hasAddonEIS_CLASS","setAddonByString","wawiSettings","hasAddonECLASS_FREE","hasAddonElectronicSales","languges","customerLanguages","addLanguage","getLanguageText","getLanguageFlag","languageFlags","setLanguageFlagsByCustomerLanguage","foundElement","getLocaleFromFrontEndLanguage","showToolTips","showProToolTips","showPlaceHolders","showHTMLEditor","showGroupReference","saveShow","getViewPort","lastNewRead","onNewNewsAmountChanged","random","Functions","parentTreeId","newCategoryName","sourceItemId","sourceCategoryId","sourceCatalogId","sourceCustomerId","targetItemId","targetCategoryId","targetCatalogId","targetCustomerId","JobService","deleteFinishedJobs","setIsDeleted","setIsDeletedForFinishedJobs","setIsDeletedForSelectedJobs","jobIds","setIsPinned","jobId","remarks","pinExpires","setIsNotPinned","getExportJobParameter","getJobs","isRefreshJobRunningInCatalog","isJobRunningInCatalog","isJobRunningThatChangesCatalogList","isJobRunningThatChangesWawiList","getJobEvents","getJobsByCatalogId","onlyNotDeleted","startUserAction","startJob","restartJob","dto","validateExportJob","ShopService","testShopConnection","shopAuth","testShopWare6Connection","con","baseUri","clientId","clientSecret","getConnection2Shop","startExport","startShopWareExport","establishedShopConnection","deleteShop","contentUnit","deliveryTime","noCuPerOu","orderUnit","packingUnits","priceQuantity","quantityInterval","quantityMax","quantityMin","contentQuantity","contentPackage","basicQuantity","hasBasicPriceDuty","isBulkyGood","isTruckageCompanyGood","costOfLivingAdjustment","alloySurcharge","isDurabilityProduct","durabilityDays","countryOfOrigin","customsNumber","specialTreatmentClass","specialTreatmentClassType","hazardousMaterialClassId","warrantyClassId","agreementId","agreementDesc","isBiocidalProduct","isSelfServiceForbidden","isFertigpackv","isOekodesignEvpgEnvkg","isCommoditiesControll","isDetergenzienv","isKosmetikv","isCeGs","isWeeeRohsEar","isReach","isVerpackungsv","isSecurityDatasheetNeeded","isDualUse","isBatterieV","systemKey","elementKey","parentProductId","productCount","articleOrder","buyerAid","buyerAidType","descriptionLong","descriptionShort","erpGroupBuyer","erpGroupSupplier","internationalPid","internationalPidType","isChild","isMaster","lastChange","manufacturerAid","manufacturerName","edeNumber1","edeNumber2","edeNumber3","edeNumber4","edeNumber5","manufacturerTypeDescr","supplierPid","supplierAltAid","sourceProductId","productLogistic","ProductLogistic","orderDetail","OrderDetail","mimes","catalogMappings","mimeTemplate","udxs","products","keywords","priceLists","references","productOrder","changeInfo","agreement","Agreement","metaTitel","metaDescription","legalCharacteristic","LegalCharacteristic","isDiscontinued","discontinuedDate","wawi","reportRuns","linkedFields","suppliers","mainSupplierId","electronicSales","ElectronicSalesDetail","productPrice","prepareView","searchPrice","searchMimes","searchFeatures","productDataSheets","dataSheets","svFeatureSystem","productImagesNormal","productImagesIcon","productImagesLogos","mime","mimePurpose","productTileImages","mimeAlt","normUri","firstPrice","firstNrpPrice","firstNetlistPrice","priceList","price","productPriceDetails","priceType","tax","amount","priceAmount","priceCurrency","amountString","priceObj","prouctTax","prouctUnit","prouctPrice","technicalFeatures","featSysObj","Product","translateFetSysName","feature","featObj","svFeatures","funit","topFeatures","benefitsFeatures","usageFeatures","hasName","marketingClaim","useForFeatures","variantsFeatures","activateHints","hintsActiv","addWarranty","warranty","warrantyFS","addHazmat","hazmatFS","applyGlobalTemplate","hasMasterOrChild","isFieldLinked","system","toggleLinkedField","_system","LinkedField","isFeatureSystemField","isFeatureField","validFeatureSystemId","foundLinkedField","getClassForLinkedField","linked","referenceFeatureGroupId","referenceFeatureGroupId2","referenceFeatureGroupName","oldValidFeatureSystemId","updateLinkedFields","_validFeatureSystemId","toJSON","wawiId","line1","line2","line3","line4","elementId","listId","stringValue","numberValue","boolValue","ProductService","getProductFromJson","product","productObj","getWawiFromJson","dateCreated","slaveProduct","fs","FeatureSystem","WawiIntegration","customField","CustomWawiField","createWawiIfNeeded","createLines","createReportProductDatasheet","createDto","generateMissingPackingCodes","productID","getSuppliersInAccount","getSupplierNamesInAccount","getOrderUnitList","getLinkedFields","productId","CatalogService","loginService","jobService","shopService","viewService","productService","DuplicateItem","catalogs","refreshCatalogIfUpdatedTimer","refreshCatalogListIfUpdatedTimer","startTimers","closeAllPopUps","jobsVisible","accountMenuVisible","actionMenuVisible","exportVisible","translateVisible","treeRefresh","treeFilter","selectedStates","getNodeKeys","selectedCatalogId","treeFilterTarget","treeListTarget","selectedStatesTarget","selectedTargetCatalogId","collapsTree","collapsTreeTarget","getChilds","categoryId","searchStatesMode","childs","getSpidsInCatalog","setCatalogs","tempCatalogs","setResponsible","setCatalogGroupe","responsibleList","responsible","catalogGroupList","pimGroup","getCatalogs","_catalog","addCatalog","newCatalog","remCatalog","copyCatalogId","getCatalog","getCatalogNoSet","getCatalogsContainingSupplierPID","getCatalogsContainingEAN","getCatalogsContainingSupplierAltPID","catalogChanged","updateCatalog","sortMimes","catalogName","createRestorePoint","duplicateCatalog","sourceCustomer","jobStarted","spreadCatalog","resetConnection","connection2Shop","connection2ShopMessage","connection2ShopEstablished","testShopResult","shopWareConnection","getConnection2ShopResult","GetShopwareSalesChannel","GetShopwareLanguages","GetShopwareCategories","GetShopwareCmsPage","establishedShopResult","getCatalogName","_catalogNameCache","_category","addCategory","parentCatId","treeId","remCategory","treeElementId","remItem","getCategory","getCategoryFullname","categoryChanged","groupOrder","updateCategory","addEcommerceFeatures","linkAllFields","addEcommerceFeaturesToCatalog","addEcommerceFeaturesToCategory","getProductWithGeneratedText","teachingSetId","generateHTML","_product","addProduct","remProduct","getProduct","setProduct","getProductUnchecked","getRawProduct","getFirstProduct","getProductContent","getProductBySupplierPid","searchProducts","holdHints","getLanguageCodes","languageCodes","getCustomerProductStates","productStates","validateProductForm","updateProduct","artIdTo","tmpid","sortFeatureSystems","mimeChange","mimeOrder","mimeSource","mimeDescr","forceReload","mapping","checkPriceLists","needsRefresh","forceTreeRefresh","needCatalogUpdate","produtPriceList","priceListOrder","newCatalogPriceList","CatalogPriceList","GetProductTreeItem","forder","refreshCountInTree","isCategory","categoryCount","hasChilds","addItemModel","AddItem","refreshTree","getCategoryFromTreeId","splitted","duplicateItem","targetParentId","sourceId","duplicateItemModel","duplicateProduct","duplicateCategory","selectedTreeElement","_selectedTreeElement","selectTreeElement","reloadTree","reloadTreeTarget","isCategorySelected","isCatalogSelected","isProductSelected","parentNodeKey","selectedRowObj","getThumbUrl","createExportJob","exportParameter","createNewCatalogExportJob","createGevisExportJob","createSmartStoreExportJob","createEbayExportJob","createIntershopExportJob","downloadMimes","getFeatureSystems","getFeatureSystemFilters","getFeatureSystemTemplateNames","getFeatureNamesBySystem","featuresSystemName","getAllMimePurposesInCatalog","getUnitsThatCanBeSplitFromFeatureValues","getFeatureNames","getUdxFilters","getPriceListFilters","getCategoryFilters","getUdxSelectFilters","loadFields2Subscribe","loadClipboard","saveClipboard","saveClipboard2Subscribe","pasteItem","objectId","loadingText","jobWasRunning","isRefreshJobRunning","isRunning","isJobRunning","portfree","CatalogStateService","getStatus","deleteCatalogState","updateCatalogState","addCatalogState","CategoryService","loadCategoryFields2Subscribe","sortTemplateItems","templateItems","MediaService","getEncodedString","getDownloadLink","getMediaElements","orderBy","getJobDataElements","getJobDataElement","getMediaElement","deleteMime","catalogFileId","deleteJobFile","lastChanged","sourceLanguageCode","targetLanguageCode","approved","TranslationService","translateCatalog","getTranslations","selectedLanguageCode","addTranslation","updateTranslation","exportTranslations","exportTranslation","ExportTranslation","deleteTranslations","deleteLanguage","deleteAllTranslations","deleteForLanguage","languageCode","addLanguage2Account","customerLanguage","CustomerLanguage","getProductTranslation","selectedTranslateLanguage","setTranslatetProduct","productTranslation","translationUpdate","textDEU","textTra","Translation","backupId","restoreMedia","BackupService","contact","deleteBackup","getBackups","restoreBackup","getMediaJob","RestoreBackup","DataQualityService","CalculateCatalogDataQuality","getDataQuality","productRange","keepRootCategory","useTest","takeAllCategory","OsgConnectionService","getConnection","getTest","osgConnection","getProductRanges","importCatalog","osgImportCatalog","OsgImportCatalog","ClassificationService","selectedClassId","_selectedClassId","getClass","selectedClass","isClassificationSystem","classificationSystems","classificationSystem","getSystems","getSystemsOfCustomer","writeSystem","addClassification","deleteSystem","getTree","getTreeFiltered","classificationSystemId","deleteClassTree","updateClassTree","updateClass","getFeatureValues","featureName","classId","ValidFeatureService","getValidIdForFeature","getValidIdForSystemName","getValidFeatureUnitForId","getValidFeatureNameForId","getValidSystemNameForId","vfs","getFeatures","setValidIds","getValues","validFeatureId","getCatalogSystems","getCatalogFeatures","getCatalogFeaturesOfSystem","validFeatureSystem","HazmatClassService","getClasses","deleteClass","loadProductHazmat","hazardPictograms","hazmatClass","WarrantyClassService","loadProductWarranty","descriptionHtml","warrantyClass","UpdateTemplateService","selectedTemplateId","_selectedTemplate","getUpdateTemplate","updateTemplate","selectedTemplate","GetFieldGroups","getUpdateTemplates","deleteUpdateTemplate","updateUpdateTemplate","addUpdateTemplate","MavisConnectionService","getTestConnection","getLiveConnection","mavisConnection","testConnection","PrintService","getPrintCredentials","createCredentials","SendToNWConfigService","ProductStateService","deleteProductState","updateProductState","productState","addProductState","ProductReportingService","getUrls","FeatureMappingService","getMappingProfiles","getMappingProfile","mappingProfileId","getMappingInput","getMappingInputsByResultId","mappingResultid","profileId","deleteMappingProfile","updateMappingProfile","mappingProfile","addMappingProfile","addOrUpdateMappingResult","mappingResult","createRule","addOrUpdateMappingInput","mappingInput","getMappingResults","SupplierPidMappingService","getSupplierPidMappings","mapProduct","deleteSupplierPidMapping","deleteAllSupplierPidMapping","updateSupplierPidMapping","supplierPidMapping","addSupplierPidMapping","exportSupplierPidMappings","DeeplConnectionService","deeplConnection","checkAuthKey","authKey","ModelService","adminService","catalogService","catalogStateService","categoryService","mediaService","translationService","backupService","dataQualityService","osgConnectionService","classificationService","validFeatureService","hazmatClassService","warrantyClassService","updateTemplateService","mavisConnectionService","printService","sendToNWConfigService","productStateService","productReportingService","featureMappingService","supplierPidMappingService","deeplConnectionServeice","AppComponent","modelService","deMessages","enMessages","nlMessages","tokenEndpoint","userinfoEndpoint","issuer","oidc","setStorage","ShopView","ean","hasPrice","forLoopArray","firstName","lastName","showImages","featureProfiMode","lastLogin","methodId","dataQualityFacts","booleanRadioGroupValue","isBooleanRadioGroup","supplierAltPid","descriptionLongWithoutHtml","manufacturerTypeDescription","internatonalPid","internatonalPidType","manufacturerPID","udx","productReferences","productReferencesAccessories","productReferencesSparePart","productReferencesSimilar","productReferencesFollowUp","productReferencesMandatory","productReferencesOthers","productReferencesSelect","productReferencesConsitsOf","productReferencesBaseProduct","productReferencesDiffOrderUnit","master","countryOfOrgin","lenght","quanityInterval","prices","isDailyPrice","priceFactor","lowerBound","territory","basePrice","featureTableList","featureList","featureListComplete","featureSystemName","featureSystemGroupId","featureSystemGroupId2","featureSystemGroupName","featureSystemOrder","fOrder","fName","fValue","fUnit","fDescription","fValueDetails","featurePrintOrder","isVariant","mimeDescription","mimeLinkSizeNorm","mimeExcludeFromShopware6","productReferencesType","productReferencesSpid","udxCategory","udxName","udxValue","featureUpdateMode","udxUpdateMode","mimeUpdateMode","priceUpdateMode","supplierUpdateMode","categoryUpdateMode","isMimeChanged","isLogisticChanged","isFeatureChanged","isUdxChanged","isOrderDetailChanged","isKeywordChanged","isReferencesChanged","isBaseProductChanged","isNew","material","energieEfficentClass","ageGroup","gender","materialComposition","shoeSize","dressSize","ebayCategory","epid","amazonAsin","googleProductCategory","ebayCategory2","googleSalesPrice","conradCategory","rakutenCategory","realCategory","manoManocategory","crowdfoxCategory","crowdfoxB2BCategory","bazzarCategory","yategoCategory","yategoTopOffer","yategoDeliverySurcharge","yategoCalcOnce","portal1Category","portal2Category","portal3Category","portal4Category","portal5Category","isOekodesignEvpg","warrantyClassMonth","typeModel","tradeMark","wawiName","firstSupplierPid","wawiLenght","postfix","supplierOrder","supplierId","supplierName","pid","supplierInternationalId","supplierInternationalIdType","supplierProductDescription","supplierProductDescriptionShort","supplierDeliveryTime","supplierPrice","supplierValidFrom","supplierValidUntil","supplierContentUnitCode","supplierPackingAmount","supplierOrderIntervall","supplierMinOrderAmount","supplierDiscontinuedProduct","supplierDiscontinuedDate","supplierDiscountGroupCode","supplierPricingUnitCode","supplierPriceAllocationUnitCode","supplierPriceAllocationUnitCodeOriginal","packingUnit","packingUnitCode","packingUnitDescr","packingUnitQuantityMax","packingUnitQuantityMin","packingUnitAmountContentUnit","packingUnitAmountSmallerUnit","electronicSalesNotReturnable","electronicSalesNotDiscountable","electronicSalesNotOrderable","electronicSalesNotRequestable","electronicSalesLocked","electronicSalesOnlyOffline","electronicSalesIsFulfillment","electronicSalesDateCreated","electronicSalesSummaryText","electronicSalesDescriptionMarketing","electronicSalesPromoInfo","electronicSalesNoteCustomer","electronicSalesSeoUrlFilename","electronicSalesFSK","electronicSalesEUDataSheet","electronicSalesEEK","electronicSalesEELabel","electronicSalesEEKColor","electronicSalesStockQuantitySupplier","electronicSalesStockQuantityReseller","electronicSalesStockKeeping","electronicSalesStockLocation","electronicSalesStockUnit","electronicSalesStockInfoText","electronicSalesStockKeepingModus","electronicSalesStockPriceFactor","electronicSalesNoStockInfoText","electronicSalesSurCharges1ArtNr","electronicSalesSurCharges1Percent","electronicSalesSurCharges1FixValue","electronicSalesSurCharges2ArtNr","electronicSalesSurCharges2Percent","electronicSalesSurCharges2FixValue","electronicSalesCharges","electronicSalesOrderDecimalPlaces","electronicSalesOrderFactor","electronicSalesOrderStockFactor","electronicSalesOrderPriceFactor","electronicSalesNewInShopTime","electronicSalesShowParts","electronicSalesOptionTypeId","electronicSalesAlternateArticleNumber","electronicSalesBoolMapping","electronicSalesNumberMapping","electronicSalesStringMapping","FieldNames","validateNumbers0","validateNumbers1","validateNumbers2","validateNumbers3","validateNumbers4","validateNumbers","validGroup","validGroupName","totalGroupCount","productInfosValid","productMimesValid","productFeaturesValid","productOrderDetailsValid","productPricesValid","productLogisticsValid","productReferenceValid","productUdxsValid","productSeoValid","productLegalValid","productCustomFieldsValid","productSuppliersValid","productPackingUnitsValid","mediaMessages","featureMessages","referenceMessages","priceMessages","missingForNextGroup","validationGroupColors","name1","name2","name3","street","city","country","fax","addressRemarks","addressType","buyerName","buyerIdType","buyerId","Address","supplierIdType","lastUpdate","lastImageUpload","buyer","Buyer","catalogAlias","catalogVersion","catalogState","generatorInfo","featureTemplate","mimeRoot","memo","uploadDate","thumbUri","territories","supplier","Supplier","isPublic","isPrint","isActivId","usePrintView","startCatId","productPrefix","note","osgSegmentMapping","mavisMapping","shopWare5Connection","odooConnection","intershopConnection","wawiTemplate","validationMethodId","ValidationService","ValidationResult","validateField","getValidationMethod","getValidationMethods","deleteValidationMethod","createValidationMethod","updateValidationMethod","validationMethodChanged","getDataQualityAreas","getValidationFieldGroups","getValidationFields","createValidationFieldIdentifier","validationFieldIdentifier","validateFieldRecord","splittedIdentifier","ValidationRequest","validateBooleanRadioGroup","validateCatalogId","validateProduct","validateProductPromise","Catalog","ProductViewComponent","validationService","getAllUrlParams","AppUser","customerid","supplierpid","catalogid","loadProduct","paramValue","FullscreenPageComponent","ctx_r4","ctx_r8","ContentColumnComponent","toggleNavigation","showMenu","toggleHelp","showHelp","ctx_r7","oxw","SearchComponent","currentNavigationTitle","getMimeText","startSearch","loadingVisible","searchResult","testSearch","catalogMapping","isVirtualCatalog","jumpToProduct","navigateString","NewsService","getArticles","article","getLast","getSection","getNewNewsAmount","lastRead","checkNewNews","newNews","LogoComponent","look","logoUrl","LoginComponent","newsService","Credentials","returnUrl","onLogin","ForgotPasswordComponent","RequestPassword","onRequestPassword","AccountHomeComponent","pimLicense","accountType","contactName","contactEmail","contactPhone","skuCount","catalogCount","fileCount","sumFileSize","PimLicense","UserManagementService","canView","canEdit","NavigationColumnComponent","UserManagementComponent","canAddUser","dataSourceUsers","newUser","userToUpdate","maxUsers","ctx_r14","ctx_r17","ctx_r20","ctx_r23","ctx_r24","ctx_r27","ctx_r29","ctx_r30","DscInfosComponent","oAuthService","onBeforeSendUpload","CustomerId","setRequestHeader","ctx_r11","OsgConnectionComponent","testShopConnectionLive","testShopConnectionTest","testText","liveText","modelTest","osgConnectionTest","modelLive","updateTest","isTestedTest","updateLive","isTestedLive","testShopResultLive","testShopResultTest","connection2ShopMessageLive","msg","connection2ShopMessageTest","ctx_r13","ctx_r16","ctx_r19","ctx_r31","ctx_r34","ctx_r37","MavisConnectionComponent","mavisConnectionTest","mavisConnectionLive","isTestTested","isLiveTested","EasyCatalogComponent","PrintCredential","_customerId","txtYes","txtNo","txtMsg","txtTitle","myDialog","CreatePrintCredential","ctx_r12","ctx_r15","ctx_r18","ctx_r21","SendToNWConfigComponent","testftpConnection","sendToNWConfig","connection2ftpMessage","wawiSettingsId","fieldType","WawiListService","getAllLists","getAllListsWithoutFields","getAllMappingsWithoutFields","getAllListNames","getList","getListByName","listName","getListValues","getElementValue","updateOnlyList","startImport","filename","getWawiMappingFields","nextPimField","dModel","dField","dSystem","dElement","dDisplayName","valueId","validFeatureValueId","fDescr","featureValues","printOrder","valueSource","fRequired","oldValidFeatureId","_validFeatureId","ftIdref","FeatureValue","lowest","excludeFromShopware6","blobUri","lastImageLookup","taxCategory","clearPrice","pimFields","seperator","htmlFilter","catName","previewValues","calculation","numberformat","isNewEditorVersion","addprev","addfoll","created","lastUsed","isUseable","isExportTemplate","deleteEmptyFeatures","addSupplierAID","TemplateItem","NextPimField","row1","row2","inUse","isDisplayNameRequested","internationalId","internationalIdType","validFrom","validUntil","discountGroupCode","pricingUnitCode","priceAllocationUnitCode","originalPriceAllocationUnitCode","contentUnitCode","packingAmount","orderIntervall","minOrderAmount","discontinuedProduct","isValidFrom","isValidUntil","amountContentUnit","amountSmallerUnit","throwInvalidProperty","resultFn","TemplateService","wawiListService","allMimeFields","allFeatureSystemFields","allFeatureFields","allPriceListFields","allPriceFields","allReferenceFields","allUdxFields","allSupplierFields","txtGroupString","exportTemplates","_exportTemplates","exportMode","importJob","_importJob","importTemplateEditorVisible","_importTemplateEditorVisible","getTemplates","getTemplatesReturn","getExportTemplates","getTemplateById","getHeadline","canCustomerAddTemplate","setCurrentTemplate","setCurrentExportTemplate","addTemplate","saveTemplate","deleteTemplate","importJobId","RestartJob","createTemplateItems","isExport","refresExcelElementhOrder","needsStandardSeperator","hasTemplateItem","refreshTemplateItemOrder","createExcelElements","isusable","ExcelElement","hasExcelElement","getExcelElement","setPreviewRow1Row2","excelElement","clearPreviewRow1Row2","clearOptions","createIdentifiers","HasSystemKey","HasElementKey","createGroupString","standard","syncTemplateItems","keepDefaultValues","clearTemplateItem","copyTemplateItem","calcSimilarityRatio","tmpSource","tmpTarget","countSource","countTarget","templateItem","setValueOnProduct","excelModel","convertValue","getNullableBool","groupString","hazmatClasses","warrantyClasses","settingsField","createMimeIfNeeded","createSupplierIfNeeded","createPackingUnitIfNeeded","createSystemAndFeatureIfNeeded","getRelevantFeatureSystem","getRelevantFeature","featureValue","createListAndPriceIfNeeded","createReferenceIfNeeded","reference","createUdxIfNeeded","safeSetToModel","safeAsyncSetToModel","getValueFromProduct","getStringFromNumber","getStringFromNullableBool","getStringFromDate","wawiListPromise","elementValuePromise","orderValue","safeGetFromModel","safeAsyncGetFromModel","GetConvertedValue","createTableForSystem","ret","createTableForAllSystems","systems","createListForSystem","sys","maxOrder","Feature","systemNb","Mime","ProductSupplier","PackingUnit","PriceList","elementNb","ProductPriceDetail","UdxField","Reference","changeKey","changeNameFeatureSystem","changeNameFeature","changeOrderFeatureSystem","changeOrderFeature","changeUnitFeature","changeOrderMime","changeOrderPriceList","changeOrderPrice","oldOrder","newOrder","existing","exelElement","existingField","oldSystemKey","newSystemKey","existingFeatureSystemField","existingFeatureField","ToolTipService","getToolTipContent","line1DescriptionLong","line2DescriptionLong","line3DescriptionLong","line4DescriptionLong","line5DescriptionLong","line6DescriptionLong","line7DescriptionLong","line8DescriptionLong","line9DescriptionLong","line10DescriptionLong","line11DescriptionLong","line6DescriptionShort","line2EdeNumber","line2ErpGroupBuyer","line1InternatonalPid","line2InternatonalPid","line3InternatonalPid","line4InternatonalPid","line5InternatonalPid","line6InternatonalPid","line7InternatonalPid","line8InternatonalPid","line9InternatonalPid","line10InternatonalPid","line11InternatonalPid","line12InternatonalPid","line1InternatonalPidType","line2InternatonalPidType","line3InternatonalPidType","line4InternatonalPidType","line5InternatonalPidType","line6InternatonalPidType","line2Keywords","line3ManufacturerPID","line2ManufacturerTypeDescription","line2Status","line1SupplierAltPid","line2SupplierAltPid","line3SupplierAltPid","line4SupplierAltPid","line5SupplierAltPid","line6SupplierAltPid","line9SupplierAltPid","line1SupplierPid","line2SupplierPid","line3SupplierPid","line4SupplierPid","line5SupplierPid","line6SupplierPid","line7SupplierPid","line8SupplierPid","line9SupplierPid","line10SupplierPid","line11SupplierPid","line12SupplierPid","line4MimeOrder","line5MimePurpose","line10ContentUnit","line6NoCuPerOu","line14OrderUnit","line3PriceQuantity","line14MetaDescription","line16MetaTitel","line7CountryOfOrgin","line4CustomsNumber","line2Depth","line2Lenght","line2Weight","line2Width","NpInputControlComponent","templateService","toolTipServiceService","userManagement","DragInfo","dragInfo","suppressToolTip","toolTipTargetId","elementSelectFunction","elementSelected","switchValueChanged","showHTMLEditorChange","hasTranslation","suppressContentWidth","templateField","fieldValueClasses","selectedElements","showRemoveFromTemplateItem","removeFromTemplateItem","pimField","clearPimFieldEmitterDone","clearPimFieldEmitter","toggleToolTip","toolTipVisible","toolTipContent","showDragHandle","onDropAdd","newField","newSystem","excelElementDropped","hasMasterOrChildOrIsTranslated","toggleLinkedFields","isNowLinked","getInitialClassForLinkedField","readOnlyUser","ctx_r10","ctx_r22","ctx_r25","ctx_r33","ctx_r39","ctx_r41","ctx_r42","ctx_r48","ctx_r51","ctx_r52","ctx_r55","ctx_r56","ctx_r59","ctx_r60","ctx_r63","ctx_r64","ctx_r67","ctx_r68","ctx_r70","ctx_r71","ctx_r73","ctx_r74","ctx_r76","ctx_r77","ctx_r79","ctx_r80","ctx_r82","ctx_r84","ctx_r86","WawiSettingsComponent","supplierPidText","customFieldsText","fieldTypes","lists","onSystemToolbarPreparing","addCustomField","CustomField","updateWithRefresh","generateGevisFields","addFieldIfNotExist","addField","DeeplConnectionComponent","deepl","updateAuthKey","currentDeeplConnection","FtpImportJobService","getFtpImportJobById","getAllFtpImportJobs","ftpImport","FtpServerService","getServer","getAllServer","getFolderStructure","ctx_r3","FtpImportComponent","ftpImportJobService","ftpServerService","onFtpServerChanged","ftpServers","excelTemplates","onServerChanged","getLastRun","lastRun","FtpExportJobService","ExportConfigurationService","getExportFormatWithVersions","FtpExportComponent","ftpExportJobService","exportConfigurationService","configs","exportConfigs","exportFormats","FtpSupplierPidMappingsImportJobsService","FtpSupplierPidMappingsConponent","ftpSupplierPidMappingsImportJobsService","RecurringJobsComponent","importDirectory","exportDirectory","port","useKey","passPhrase","ctx_r36","ctx_r40","FtpServerComponent","FtpServer","getDirs","loadFolderStructure","editedRowData","server","detail","dirs","onDetailChange","updatedServer","readAsText","memberId","EdeMemberIdService","EdeSortimentsAboComponent","edeMemberIdService","EdeMemberId","usedLimit","pricePerOpenAi","allowance","InvoiceService","invoice","GetInvoiceSetting","getTotalProducts","ExportInvoices","startMassGenerateOpenAITextsJob","updateInvoiceSetting","InvoiceComponent","invoiceService","InvoiceSettingDto","invoices","invoiceSetting","ctx_r45","ctx_r49","ctx_r62","ctx_r65","ctx_r75","ctx_r78","ctx_r81","ctx_r96","ctx_r98","ctx_r100","ctx_r102","ctx_r103","ctx_r105","ctx_r106","ctx_r107","ctx_r109","ctx_r110","ctx_r111","ctx_r113","ctx_r114","ctx_r115","ctx_r117","MyAccountComponent","addCustomer","hideAddCustomer","showAddCustomer","showAddUser","setDemoValues","setAllAddons","onContentReadyHandler","onAddonChanged","updateCurrentCustomer","possibleExportAddons","possibleNormalAddons","possibleClassificationAddons","refreshAddons","loggedInSubscription","customers","onGridToolbarPreparing","onUserGridToolbarPreparing","nutzerText","einstellungenText","statisticText","dscText","osgText","mavisText","deeplText","rJobsText","easyCatalogText","nordwestText","wawiText","edeAboText","onCustomerClick","stats","customerStatistics","au","CustomerStatistics","isCurrentCustomer","addonChanged","newAddons","normalAddons","exportAddons","classificationAddons","possibleLanguages","possibleFrontEndLanguages","addAccountVisible","Customer","createdCustomer","addUserVisible","newUserMail","allAddons","demoAddons","canUserEdit","toggleStatus","statusVisible","ttt","hideName","changeVersion","updateCustomer","checkEdit","deleteConfirmName","accountToDelete","deleteAccountVisible","HelpComponent","userManagment","addHelp","helpUpdate","pageNumber","HelpColumnComponent","ImportTranslationsComponent","dxfileuploader","ctx_r26","ctx_r32","TranslationComponent","deleteAllTranslationsClose","deleteAllTranslationsConfirmed","exportExcel","showImportTranslations","selectedLanguageCodeChanged","onNavigationToolbarPreparing","onContentToolbarPreparing","onLanguageClick","isCurrentLanguage","showAddLanguage","addLanguageSelected","addLanguageVisable","translateLanguage","importTranslationsVisible","_importTranslationsVisible","deleteTranslation","popupDeleteTranslateVisible","onDeleteClicked","dayDelta","MaintenanceModeService","getCurrentState","enableMaintenanceMode","disableMaintenanceMode","NpHelpOption","NpHelpButtonComponent","openHelpLink","contentButtons","filterKey","useFilter","includeUdxs","includeMime","useFeatureOrder","categoryFilter","CatalogFilter","productStatesFilter","udxsFilter","manufacturerFilter","supplierFilter","searchByListParameter","SearchByListParameter","featureSystemFilter","featureSystemContentFilter","priceListsContentFilter","udxsContentFilter","textQualifier","getSummary","isDifferent","otherConfig","ExportConfigurationComponent","bmeDialectChanged","bmeDialect","useMediaUrl","ExportFilterService","getCategoryFilterTreeElements","getUdxFilterTreeElements","getManufacturerFilters","getProductStates","getPriceLists","getSuppliers","ConvertSystemFilterToHierachicalFilter","selectedNodes","SimpleHierachicalFilter","ProductStateFilterComponent","exportFilterService","loadStatesIfNeeded","refreshStates","isStateFilterLoaded","catalogProductStates","CategoryFilterComponent","loadFilterIfNeeded","refreshCategoryFilter","isFilterLoaded","categoryFilters","finally","ManufacturerFilterComponent","refreshManufacturersFilter","loadmanufacturerIfNeeded","manufacturerFilters","SupplierContentFilterComponent","loadsupplierFilterIfNeeded","supplierFilters","UdxFilterComponent","refreshUdxSelectFilter","udxSelectFilters","DateFilterComponent","ctx_r6","SearchByListFilterComponent","searchByListFilterAdds","searchValues","formatListIgnoreSpace","FeatureContentFilterComponent","refreshFeatureSystemFilter","isFeatureSystemFiltersLoaded","featureSystemFilters","ctx_r2","PricelistContentFilterComponent","filterKeys","refreshPriceListFilter","onToggle","priceListFilters","isPriceListFiltersLoaded","UdxContentFilterComponent","return","throw","NewTemplateComponent","saveValidatorInstance","validatorInstance","onAdded","ctx_r9","TemplateSelectorComponent","getAddTemplateHint","txtAddTemplate","canAddTemplate","showAddTemplate","addTemplateVisible","newTemplate","templateSelected","selectTemplate","idKey","NpBooleanRadioGroupComponent","trueValue","falseValue","nullValue","valueChanged","reConvert","ctx_r28","ctx_r35","ctx_r38","ctx_r43","ctx_r50","ctx_r66","ctx_r90","ctx_r91","ctx_r92","ctx_r94","ctx_r97","ctx_r112","ctx_r119","ctx_r120","ctx_r121","ctx_r123","ctx_r127","ctx_r128","ctx_r129","ctx_r131","ctx_r135","ctx_r136","ctx_r137","ctx_r139","ctx_r143","ctx_r144","ctx_r145","ctx_r147","ctx_r153","ctx_r154","ctx_r155","ctx_r157","ctx_r163","ctx_r164","ctx_r165","ctx_r167","ctx_r173","ctx_r174","ctx_r175","ctx_r177","ctx_r183","ctx_r184","ctx_r185","ctx_r187","ctx_r193","ctx_r194","ctx_r195","ctx_r197","Infos","getSupplierPid","edeNumbersDummy","showLinkButtons","showHTMLEditorChanged","templateView","createTemplateItem","ProductState","updateFromAutocomplete","txtOrg","txtTran","translationUpdateFunction","_showHTMLEditor","excelElementDrop","readOnlyForLinkedFields","ImportMimeComponent","txtHochgeladen","CatalogId","isTemplate","selectedReport","filenamePattern","replaceAll","ProductReportingDialogComponent","txtExportReportProductDatasheetShort","txtExportReportProductDatasheetLong","txtSelectReport","txtSelectFilenamePattern","allReports","_allReports","_selectedReport","_filenamePattern","_mimeDescr","_replaceAll","CreateReportProductDatasheet","onCreate","mime_r28","ctx_r47","ctx_r58","mime_r52","mime_r64","ctx_r72","mime_r76","ctx_r116","ctx_r125","ctx_r138","ctx_r141","ctx_r148","ctx_r151","ctx_r152","ctx_r156","ctx_r159","ctx_r160","ctx_r161","ctx_r166","ctx_r168","ctx_r170","ctx_r171","ctx_r176","ctx_r178","ctx_r179","ctx_r182","ctx_r186","Mimes","addMime","showImportMime","newMimeOrder","originalOrder","orderString","mimeField","dFields","dDetailFields","elementDeleted","reloadNedded","updateLock","mimeTypes","mimePurposes","importMimeVisible","hideImportMime","showCreateReportProductDatasheet","createReportProductDatasheetVisible","hideCreateReportProductDatasheet","translateMessage","hasMimeFieldLinked","txtNotAllowed","templateSelect","renderNewMimeButton","renderImportMimeButton","renderReportButton","hasShopware6Addon","ctx_r44","ctx_r46","FeatureValueComponent","expandButtonClicked","addFeatureValueClicked","listButton","expandButton","_readOnly","showList","expandPopupVisible","featuresEditable","isClassification","requestFeatureValues","featureValueDataSource","valueListText","updateFeatureValue","updateFeatureValueFromList","updateFeatureValueClassification","featureValueDisplayExpr","featureValueClassificationDisplayExpr","fvalue","geValueOfFeatureValue","geValueOfFeature","addCustomFeatureValue","featureDisplayExpr","fv","column_r13","column_r37","ctx_r53","ctx_r54","column_r60","ctx_r88","ctx_r89","column_r82","ctx_r99","ctx_r101","column_r93","ctx_r108","EditFeatureValueList","addCustomFeature","validFeatures","featuresDataSource","setFeatureValidId","featureIsValid","updateFrontendLinkedFields","updateFeatureName","validFeature","updateFeatureUnit","ValidFeature","onFeaturesToolbarPreparing","addFeatureButtonEnabled","addFeatureButtonClicked","dataGrid","featureField","hasFeatureFieldLinked","featureNameEditable","featureDescriptionEditable","featuresDeletable","profiModeEnabled","featureNameVisible","featureDescriptionVisible","isVariantVisible","featureValueVisible","featureValueDetailVisible","featureUnitVisible","isPrintVisible","templateSelectionEnabled","excelFeatureNameDroppedError","excelFeatureUnitDroppedError","featureSystemField","relevantElements","relevantElement","readOnlyFNameTemplateEditor","featureSystemIsValid","readOnlyTemplateEditor","getRelevantElementKey","getRelevantSystemKey","ctx_r1","ProductClassificationComponent","classTree","setTreeDataSource","classificationSystemChanged","addClassificationDisabled","onClassTreeSelectionChanged","selectedRows","notAssignable","selectedSystem","addClassificationFeatures","windowClose","column_r19","column_r39","ctx_r57","column_r50","ctx_r69","EditFeatureSystemList","_featureSystems","featureSystemsDataSource","refreshFeatureSystemSource","featureSystemNameSource","addFeatureSystemButtonClicked","updateFeatureSystemNameAndUpdate","hasFeatureSystemFieldLinked","addClassificationButtonVisible","addFeatureSystemButtonVisible","addClassificationButtonClicked","classificationPopupVisible","closeClassificationPopup","emitAddClassificationFeatures","emitAddEcommerceFeatures","featureSystemEditable","hintsAktiv","templateChildSelected","excelFeatureSystemNameDroppedError","ctx_r61","ctx_r83","ctx_r87","ctx_r93","ctx_r95","ctx_r104","ctx_r118","ctx_r122","ctx_r126","ctx_r130","ctx_r134","ctx_r162","ctx_r172","ctx_r180","OrderDetailComponent","unitList","initializeUnits","toggleExtendedList","priceFactors","lowerBounds","removeBasicPriceDuty","removeIsTruckageCompanyGood","removeIsBulkyGood","data_r15","data_r28","data_r39","data_r50","priceLists_r61","price_r75","price_r85","price_r100","price_r115","ctx_r124","price_r130","ctx_r140","ctx_r142","price_r145","price_r160","ctx_r169","price_r175","ctx_r190","ctx_r192","ctx_r199","ctx_r201","ctx_r203","ctx_r205","ctx_r206","ctx_r207","ctx_r208","Prices","emptyArray","onDetailGridToolbarPreparing","newPriceListOrder","priceListName","addPriceList","priceListUpdateLock","PriceListOrder","onContentReadyPriceLists","addPrice","priceUpdateLock","currentCustomerDefaultLanguage","onContentReadyPrices","priceTypes","currencys","taxs","hasPriceListFieldLinked","masterField","hasPriceFieldLinked","detailField","onRowRemovingMaster","onRowRemovedMaster","onRowRemovingDetail","onRowRemovedDetail","Logistic","data_r21","data_r32","References","addReference","referenceTypes","onReferencePrepared","onReferencePrepare","showReferenceDetail","showReferenceDetails","mimedate","showImage","imageVisable","hideImage","referenceField","hasReferenceFieldLinked","data_r8","data_r19","data_r30","UDX","addUDX","udxOrder","ud","udxField","hasUdxFieldLinked","ElectronicSalesComponent","Seo_Component","_metaTitle","initValues","_metaDescription","getProgressValue","getProgressBarText","getProgressBarBackgroundColor","metaString","progressValue","progressColor","progressText","SnippetComponent","SEO","customField_r39","ctx_r85","WawiComponent","wawiLists","wawiListDataSource","currentFields","customWawiField","wawiList","wawiListDataSourceMap","showPlaceLabel","getFieldType","hasLines","getListElements","defaultDataSource","ProductLegalComponent","unit_r15","unit_r25","unit_r34","unit_r43","SupplierPackingUnits","getGevisMappedCode","generateMissingCodes","gevisMappingList","generatedUnits","supplierPackingChanged","allSupplierUnitFields","supplier_r31","supplier_r51","supplier_r62","supplier_r73","supplier_r84","supplier_r95","supplier_r106","supplier_r117","ctx_r181","ctx_r188","ctx_r202","ctx_r204","ctx_r209","ctx_r211","ctx_r214","ctx_r215","ctx_r216","ctx_r219","ctx_r220","ctx_r221","ctx_r223","ctx_r224","ctx_r227","ctx_r228","ctx_r229","ctx_r231","ctx_r234","ctx_r235","ctx_r236","ctx_r238","ctx_r241","ctx_r242","ctx_r243","ctx_r245","ctx_r248","ctx_r249","ctx_r250","ctx_r252","ctx_r255","ctx_r256","ctx_r257","ctx_r259","ctx_r262","ctx_r263","ctx_r264","ctx_r266","ProductSupplierComponent","addSupplier","unitCodeDataSource","productSupplier","generateSupplierNames","onlyUnique","supplierNames","mainSupplierName","mainSupplierChanged","calculateCurrentValue","supplierChange","supplierField","hasSupplierFieldLinked","renderNewSupplierButton","Misc","_mimeUpdateMode","mimeUpdateModeChanged","onMimeUpdateModeChanged","_featureUpdateMode","featureUpdateModeChanged","onFeatureUpdateModeChanged","_priceUpdateMode","priceUpdateModeChanged","onPriceUpdateModeChanged","_supplierUpdateMode","supplierUpdateModeChanged","onSupplierUpdateModeChanged","_categoryUpdateMode","categoryUpdateModeChanged","onCategoryUpdateModeChanged","_udxUpdateMode","udxUpdateModeChanged","onUdxUpdateModeChanged","ctx_r133","ctx_r146","ctx_r158","TemplateProductComponent","translateTexts","txtProdukt","txtMedien","txtFeatures","txtOrderDetail","txtPreislisten","txtLogistik","txtReferenzen","txtUdx","txtElectronicSales","txtSEO","txtLegal","txtMisc","txtSuppliers","elementDelete","displayExprExport","isMapping","TemplateExcelComponent","mappings","WawiList","excelModelFiltered","hasFields","rowClicked","rowId","rowSelected","removeClicked","removeTemplate","getClassIfElementSelected","getDragInfo","toggleSettings","htmlBlock","htmlPlus","elemet","replaceItem","reorderModel","NewTemplateEditorComponent","messageSpidIntPidDefaultNotAllowed","messageSelectTemplate","clearPimField","eventsSubscription","_backupProduct","excelRowSelected","buildListsAndTables","addElement","onDropRemove","removeElement","addElementFromExcel","detailFields","needsUpdate","removeOrClearExcelElement","addDefaultElement","isUpdateModeField","pimfied","indexRight","clearItem","matching","needRefresh","isFeatureKey","matchingExcelItem","excelItem","pimFieldsToRemove","refreshUpdateModes","featureSystemList","featureSystemTable","featurelist","descWithoutHTML","FieldListComponent","_exportParameter","selectFieldsFromConfig","selectGroup","syncFieldWithConfig","selectField","fieldGroups","getHeightRatio","CsvSettingsComponent","ExportParameterComponent","exportFormatWithVersions","exportFormat","fixExportFormat","setExportVersions","prevConfig","onTemplateChange","getConfigSummary","exportVersions","fixExportVersion","JobDetailComponent","isValidatable","validateExport","getCatalogNameById","getIconClass","getOrignalFile","getEventMessage","openCatalogById","hasExportParameter","updateCatalogNamesIfNeeded","updateEvents","job","exportParam","ExportParameter","togglePopup","newEvents","originalCount","resultCatalogId","resultCatalogName","resultFile","typeText","ValidateExportJob","started","ended","filenameBlobUri","originialFileLink","getHelpMaillink","PinDataComponent","onRemoved","_r0","JobListComponent","authService","userManagementService","maintenanceModeService","translateType","onDetailInitialized","startRefreshing","dateFilterDataSource","DateFilter","dateFilterValue","catalogMode","setCatalogModeDataSource","adminMode","setAdminModeDataSource","jobListMode","setJobListModeDataSource","AspNetData","loadUrl","loadParams","dateDelta","ajaxOptions","Authorization","onDateFilterValueChanged","startRefresher","startRefresherFirstTime","catalogJobsVisible","applyFilterUser","applyFilterPinned","applyFilterReset","onEditClicked","userCanEdit","onAdminDeleteClicked","showWarningForDeleteResult","deleteReadyJobs","deleteSelectedJobs","startDownload","sendMail","mailtoUrl","showImportTemplate","pindataVisible","_pindataVisible","pinJobId","pinJobIsPinned","pinJobRemarks","pinJobPinExpires","showPindata","isPinned","addDays","pinJob","unpinJob","maintenanceModeActive","AdminLoginsComponent","reloadLogins","logins","DEFINED_NUMBER_FORMTATS","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","ExportFormat","formatObjectConverter","convertFormat","_convertDateFormatToOpenXml","languageID","languageIDStr","languageInfo","ARABIC_ZERO_CODE","_hasArabicDigits","_getLanguageInfo","_convertDateFormat","excelFormat","numberFormatter","_applyPrecision","_convertNumberFormat","encode","escaped","_includesCSVExpression","lnn","_hasCSVQuotedInjection","escapedTextQualifier","_$targetElement","getFullOptions","worksheet","topLeftCell","keepColumnWidths","encodeExecutableContent","convertDateForExcelJS","setNumberFormat","excelCell","numFmt","getCellStyles","dataProvider","tryConvertToExcelNumberFormat","newFormat","setAlignment","wrapText","_excelCell$alignment","getColumn","Helpers","getLoadPanelTargetElement","getLoadPanelContainer","_component$_getIntern","exportLoadPanel","internalComponent","_getInternalInstance","initialLoadPanelEnabledOption","ExportLoadPanel","outlineProperties","summaryBelow","summaryRight","cellRange","dataRowsCount","helpers","_exportAllFieldHeaders","fieldHeaderRowsCount","_getFieldHeaderRowsCount","_isRowFieldHeadersRow","_exportFieldHeaders","_trySetOutlineLevel","exportRow","mergedRangesManager","applyMergedRages","worksheetViewSettings","rightToLeft","_isFrozenZone","_getWorksheetFrozenState","_trySetAutoFilter","_getFirstColumnIndex","updateMergedRanges","findMergedCellInfo","_isHeaderCell","masterCell","_trySetFont","_customizeCell","mergedCells","mergedRanges","isCellInMergedRanges","allowToMergeRange","_allowToMergeRange","updateMergedCells","shouldReduceInfoRange","_isInfoCell","_allowExportRowFieldHeaders","addMergedRange","fullAddress","mergeCells","MergedRangesManager","customizeCell","autoFilterEnabled","autoFilter","ySplit","outlineLevel","_getAllFieldHeaders","gridCell","CustomerAddonsOverviewComponent","workbook","Workbook","addWorksheet","_getFullOptions","DataGridHelpers","_getLoadPanelTargetElement","_getLoadPanelContainer","exportDataGrid","xlsx","writeBuffer","customerAddonInfos","AdminComponent","oldPassword","confirmPassword","newPassword","ChangePasswordComponent","ChangePassword","onChangePassword","NewCatalogComponent","NewCatalog","onAddCatalog","EdcImportService","ImportCatalogComponent","edcImportService","testLink","osgCreateJob","edcImport","fileTypes","txtUpload","txtFromLink","txtFromOSG","txtEdeSortiment","initProductranges","hasOsgTestSystem","_useTest","productRanges","importCatalogVisible","fileUrlTest","testLinkResult","fileUrlTestMessage","linkChanged","downloadStarted","uct","ctx_r5","BackUpComponent","getBackUps","backups","backUps","restoreBackUp","downloadMedia","deleteBackUp","NpDialogButton","NpDialogComponent","popupToWindow","popupToFullscreen","refreshToolbarItems","_buttons","popupMaximized","_windowButton","_fullscreenButton","_helpButton","helpButton","popupVisibleChange","popupMaximizedChange","JobDataComponent","DataSourceParams","deleteRequest","CatListComponent","selectedProductTabIndex","datagridLoaded","showAddCatalog","addCatalogVisible","showImportCatalog","catalogSelected","updateResponsible","copyCatalog","copyCatalogCustomerId","pasteCatalog","toFullScreen","toWindow","hideExport","showBackUp","backUpVisible","hideBackUp","showJobData","jobDataVisible","hideJobData","showMemo","memoTarget","memoText","memoVisable","hideMemo","MassDataChangeService","getEmtpyProductByCatalog","getEmtpyProductByCategory","getEmtpyProductByMasterProduct","masterId","ProductStateOptionsComponent","stateValue","ProductSearchOptionsComponent","searchModes","NameValue","onSearchFieldsSelectionChanged","onSearchModeSelectionChanged","catalogUpdate","CatalogSupplierComponent","CatalogBuyerComponent","actionParameter","CatalogPriceListComponent","removePriceList","StartAction","txtStartedAsJob","catalogPriceList","priceListNumber","CatalogClassificationComponent","classifcationService","lastSend","segmentId","lastSendTest","productRangeTest","segmentIdTest","includeHazmatClassesInDescriptionTest","includeHazmatClassesInDescription","categoriesAreSegments","priceTypeTest","ttlastSendTest","CatalogOsgComponent","sendData2ShopZero","sendData2Shop","sendData2ShopOne","sendData2ShopTwo","sendData2ShopTestOne","sendData2ShopTestTwo","sendData2ShopTestZero","resetCatalogTest","resetCatalog","startResetCatalog","startResetCatalogTest","closePopups","canChangeKeepRootCategory","OsgSegmentMapping","isResetCatalogTestVisible","isResetCatalogVisible","isSendCatalogPopupVisible","isSendCatalogTestPopupVisible","GetExportParameter","exportMedia","lastSendLive","languageLive","CatalogMavisComponent","sendData2ShopThree","sendData2ShopFour","sendData2ShopFive","MavisCatalogMapping","languagesLive","isSendCatalogPopupLiveVisible","exportParameterLive","CatalogPrintComponent","sendPrices","isVersion6","CatalogShopwareComponent","establishedShopConnectionOne","establishedShopConnectionTwo","establishedShopConnectionZero","deleteShopOne","deleteShopTwo","deleteShopThree","deleteShopFour","deleteShopZero","catalogChangedinclShop","isEstablishedShopConnectionPopupVisible","StartShopWareExport","isDeleteShopPopupVisible","deleteShopResult","VariantRepresenations","CatalogShopware6Component","variantRepresentations","syncTreeViewSelection","rootCatCategoryId","treeView_itemSelectionChanged","salesChannel","shopwareCmsPage","shopCategories","cmsPages","shopId","rootCatId","rootCatName","topFeatureAttribute","benefitsAttribute","featureAttributes","Shopware5Service","getShops","CatalogShopware5Component","shopware5service","sendCatalog","reloadCategories","TreeElement","ShopWare5Connection","ftpServerId","productFilePath","categoryFilePath","attributesFilePath","IntershopConnectionComponent","IntershopConnection","classificationClassId","CatalogTemplatesComponent","applyTemplate","wawiDummyProduct","txtFeatureTemplate","txtMediaTemplate","txtMakroGestarted","updateWawi","loadClassificationFeatures","classificationFeatureValues","AddClassification","CatalogSettingsComponent","txtClassfification","txtOsg","txtPriceList","txtPrint","txtShopware","txtMavis","txtTemplates","txtCsCart","txtJobs","ImportFileComponent","txtUploaded","fileNameToUseInImport","MediaPoolComponent","replaceMime","importFileVisible","replaceFileName","DataQualityGroupsComponent","catalogDataQuality","modelChangedEvent","initDataSource","colorPalette","productsCountInGroups","DataQualityStatisticComponent","exportDetails","txtExportAlsJob","access","assortmentSize","customerSpezificPrice","pidForPackingSize","processingPeriod","receiveDate","requestDate","waitingPeriod","DataQualityFactsComponent","DataQualityFacts","timeSpans","accesses","DataQualityComponent","chartText","groupsText","informationenText","exampleText","validationMethods","selectedValidationMethod","isGlobal","GevisComponent","send","loadFeatureSystemNames","useClassification","featureSystemNames","database","catalogCategoryId","OdooService","CatalogOdooComponent","odooService","sendMessage","OdooConnection","useDeepL","TranslateCatalogComponent","onTranslate","allFlags","relevantFlags","_languageFlags","selectedLanguage","hasLanguages","TranslateCatalog","ImportMediaComponent","txtLink","txtDownloadStarted","utt","ExportCatalogComponent","exportNordwestClicked","parameterChanged","configurations","loadConfig","setEmptyCatalogFilters","exportParameterChanged","_g","_h","_k","_l","_m","showAddConfig","newConfigName","newConfigIsDefault","isPopupAddVisible","showEditConfig","isPopupEditVisible","onConfigChanged","newParam","addConfig","updateConfig","deleteConfig","exportNewCatalogExcel","exportNewCatalog","exportSmartStoreClicked","ExportCategoryComponent","exportCSV","filterReset","templateReset","listsAreLoaded","txtSonstiges","txtFelder","txtSeo","orignialSize","exportMediaOriginalSize","maxResolution","imageType","imageSquared","imageBgColor","initTabView","excelPages","changedField","getTemplateItemTemplate","startTableExport","categoryExportVisible","ImportCategoryComponent","categoryImportVisible","ctx_r150","CatalogDetailComponent","massDataService","showImportMedia","showExport","showTranslate","showCategoryExport","showCategoryImport","showUserActions","exportWindow","exportFullScreen","openMassDataChange","agreementDummy","catalogStates","CatalogState","showUserActionWindow","showUserAction","ValidationRequestCatalog","validateCatalogIdInit","updateCatalogGroup","txtKatalog","txtLieferant","txtKaeufer","txtDatenqualitaet","txtSettings","txtAlleMedien","catalogIdUpdate","catalogMainImage","importMediaVisible","_importMediaVisible","_importCatalogVisible","idType","toggleAggrement","aggrementVisible","bigHeader","hideCategoryExport","exportCategoryFullScreen","exportCategoryWindow","hideCategoryImport","renderMakrosButton","renderMediaImportButton","renderReimportButton","renderExportButton","renderTranslateButton","renderCategoryExportButton","renderCategoryImportButton","renderMassDataChangeButton","onMassDataEdit","CategoryTemplatesComponent","categoryUpdate","SeoComponent","categoryIdString","parentCategoryIdString","categoryIdStringTest","parentCategoryIdStringTest","CategoryOsgComponent","osgCategoryMapping","OsgCategoryMapping","shopWareId","cmsPageId","CategoryShopware6Component","shopware6CategoryMapping","Shopware6CategoryMapping","shopwareCmsPages","CategoryDetailComponent","txtKategorie","categoryMainImage","TeachingSetService","selectedSet","_selectedSet","selectedSample","_selectedSample","getSingle","getAllTrained","deleteSingle","updateSingle","addSingle","startGenerationJob","ProductDetailValidationComponent","biggerHeader","categoryName","categoryIconUrl","CategoriesComponent","exportFilterController","addCategories","jumpToCategory","_catalogMappings","_allowDeleting","isCategoriesLoaded","isAddCategoryVisible","checkedCategories","checkedCat","CatalogMapping","ProductAsJsonComponent","productDto","ShopViewLukas","lukasParts","headLine","txtBeschreibung","loadDone","txtDokumente","txtAnwendungen","txtTechnischeDaten","txtVorteile","getTileImageWidth","ProductDetailComponent","teachingSetService","goToSourceProduct","generateKiText","openConfirm","confirmGenerate","hasSourceProduct","txtProduktUnbekannt","txtCategories","txtProductAsJson","hasCatalogMappings","shopViewUpdate","showShop","templateLukas","shopViewModel","tabChange","translationUpdateFunctions","productUpdate","productMainImage","openProductView","thinkingVisible","teachingSet","currentProduct","sets","teachingSets","samples","confirmVisible","fullCatalog","categoryIds","productIds","deleteEmptyCategories","MassDataChangeComponent","massDataChangeService","startDeleteJob","showDeleteJobPopup","hideDeleteJobPopup","startDescriptionWizard","startMassGenerateKITexts","selectedData","grp","pro","MassDataChangeParameter","emptyProduct","deleteJobPopupVisible","deleteCategoriesEnabled","categoriesCount","productsCount","existingIndex","genVariantTexts","MassGenerateKITextComponent","calculateProds","confirmGenerateText","buildParam","teachingSetID","MassGenerateKITextsParameter","UserActionBaseComponent","userActionComponentInitiated","UserActionViewDetailIcon","USERACTIONVIEWDETAILS","hintLookupKey","textLookupKey","getCssClassForIcon","UserActionViewDetail","UserActionConvertPicturesComponent","imageTypes","_imageTypes","_imageType","_maxResolution","startMacro","imageSquare","userActionStarted","UserActionByListComponent","onValueChangedFormatList","inputList","onValueChangedFormatListIgnoreSpace","_inputList","UserActionDeleteByListComponent","geNoDataText","manufacturerDataSource","handlePropertyChange","selectedManufacturer","SearchValue","Values","UserActionSearchByListComponent","addNewChilds","ignoreEmptyValues","UpdateTemplateComponent","initFieldsAndGroups","blockUpdates","isGroupSelected","blockChangedField","any","UpdateTemplatesComponent","onSelectionChangedClick","checkAllFieldsExist","UpdateTemplateItem","UpdateTemplate","UserActionUpdateCatalogComponent","warningSpidUpdate","warningIntPidUpdate","warningSpaltidUpdate","selectedCustomer","updateTemplates","onKeyChanged","txtSelectTemplate","txtSelectCatalog","showEditTemplates","_catalogs","replacePrice","_replacePrice","_selectedCustomer","sourceCatalog","_sourceCatalog","editTemplatesClick","useEanAsKey","UserActionUpdateToCatalogComponent","_customers","clickSelectValidCatalogs","selectedCatalogs","UserActionCompareCatalogComponent","sourceCompareCatalog","_sourceCompareCatalog","UserActionFeatureSystemsComponent","loadFeatureSystems","featureSystemsLoaded","featureSystemsLoading","loadFeatures","UserActionRenameFeatureSystemComponent","featureSystemsWithMagicFeatureSystems","magicFeatureSystemName","ValidFeatureSystem","selectedFeatureSystem","destFeatureSystemName","createParameterStringAsJsonString","UserActionDeleteEmptyFeaturesComponent","deleteFeatureSystems","UserActionGenerateAITextsComponent","balanceIsFilled","userActionToggleStartButton","generateWithMassDataChange","FeatureName","NewName","UserActionRenameFeaturesComponent","onFeatureSystemChanged","featuresGridDataSource","featuresLoading","FeatureToBeRenamed","createUserAction","userAction","featuresToBeRenamed","UserActionSplitFeatureValuesFromUnitComponent","loadUnits","foundUnitsToBeSplit","unitsLoading","addCustomUnit","selectedUnits","UserActionDeleteFeatureSystemsComponent","selectedFeatureSystems","UserActionCopyMediaFromOtherCatalogComponent","UserActionDeleteFeaturesComponent","loadFeatureNames","featuresLoaded","selectedFeatures","UserActionCreateTechnicalDetailsComponent","UserActionSpreadCatalogComponent","selectedCustomers","UserActionHarmonizeFeatureSystems","featureSystemsWithOrder","setOrders","UserActionFixClassificationComponent","addMissingFeatures","UserActionExportReportProductDatasheet","UserActionDeleteDuplicateMimesComponent","useOnlyMimeSource","UserActionRemoveUdxOnProducts","udxFilters","isUdxLoaded","refreshUdxFilter","checkedUdx","UserActionDeleteMediaByPurpose","txtSelectPurpose","allPurposes","_allPurposes","selectedPurpose","_selectedPurpose","UserActionCreateVariantsFeatureSystemComponent","createTechnicalDetails","UserActionHarmonizeFeaturesComponent","setFilterFeatureSystems","filteredFeatureSystems","onFeaturesystemChanged","featuresWithOrder","UserActionSetWawiSupplierPidsComponent","catalogHasSupplier","FillAlt","fillAlt","SupplierIsManufacturer","supplierIsManufacturer","UserActionCreateEnventaMimeComponent","UserActionSetMimePurposeComponent","OverrideExisting","overrideExisting","UserActionMarkAsChangedComponent","markCategoriesAsChanged","markProductsAsChanged","newMimePurpose","UserActionChangeMimePurposeComponent","loadPurposes","purposesGridDataSource","purposes","setPurposes","MimePurposeToBeRenamed","mimePurposesToBeRenamed","fieldToMappingId","WawiMappingChooserComponent","fillDataSource","_exportMode","updatePreviews","wawiMappings","translatedField","mappingChanged","updateExportParameter","mappedList","mappingId","fromEntries","rightSidePreviewText","UserActionApplyWawiMappings","applyWawiMappingModel","ApplyWawiMappingModel","ctx_r132","UserActionComponent","onToggleStartMacroButton","initRepository","setCards","setMacros","startMacroButtonEnabled","macroAccordionSelectedItem","_macroAccordionSelectedItem","txtDeleteWarning","txtVarianten","txtCreateEnventaMimeShort","txtCreateEnventaMimeLong","txtVariantResolveShort","txtVariantResolveLong","txtHarmonizeFeaturesByNameShort","txtHarmonizeFeaturesByNameLong","txtSetWawiLinesShort","txtSetWawiLinesLong","txtSetWawiSupplierPidsShort","txtSetWawiSupplierPidsLong","txtRemoveSpecialCharactersShort","txtRemoveSpecialCharactersLong","txtConsolidateDubSupplierPidsShort","txtConsolidateDubSupplierPidsLong","txtDeleteDuplicateFeaturesShort","txtDeleteDuplicateFeaturesLong","txtCreateVariantsFeatureSystemShort","txtCreateVariantsFeatureSystemLong","txtDeleteDuplicateMimesShort","txtDeleteDuplicateMimesLong","txtHarmonizeFeatureSystemsShort","txtHarmonizeFeatureSystemsLong","txtCreateUniqueGroupIdShort","txtCreateUniqueGroupIdLong","txtFixClassificationShort","txtFixClassificationLong","txtSetMavisTransferDateShort","txtSetMavisTransferDateLong","txtSetBmeCatDefaultsShort","txtSetBmeCatDefaultsLong","txtRemoveRootCategoryShort","txtRemoveRootCategoryLong","txtSpreadCatalogShort","txtSpreadCatalogLong","txtCreateTechnicalDetailsShort","txtCreateTechnicalDetailsLong","txtRemoveMimesWithoutMimeSourceShort","txtRemoveMimesWithoutMimeSourceLong","txtTroubleShooting","txtProdukte","txtShop","txtUebersetzung","txtRemovePathFromMimeSourcelong","txtRemoveMimeWithoutImagePathlong","txtReorderMimelong","txtRemoveAllFeatureslong","txtRemoveAllMimeslong","txtRemoveAllOrderDetailslong","txtRemoveAllPriceslong","txtRemoveAllUDXlong","txtRemoveAllLogisticDetailslong","txtRemoveEmptyCategorieslong","txtResizeImageslong","txtSupplierPIDSwitchlong","txtCheckCataloglong","txtDeleteByListlong","txtSearchByListlong","txtUpdateFromCataloglong","txtUpdateToCatalogLong","txtCompareCatalogLong","txtDeleteCategoryImageslong","txtDeleteUnUsedMimeslong","txtAssignCategoryImageslong","txtDeleteAllMedialong","txtCacheThumbnailslong","txtRemoveMasterlong","txtFixStatisticslong","txtTranslateMimeSourceslong","txtTranslateNumberslong","txtDetectMimeTypelong","txtRebuildThumbslong","txtRenameFeatureSystemLong","txtRenameFeaturesLong","txtSplitFeatureValuesFromUnitLong","txtRemoveDuplicateImageslong","txtDownloadMimeSourceslong","txtDeleteEmptyFeatureslong","txtEanSupplierAltPidSwitchlong","txtAssignMasterImageslong","txtRemovePathFromMimeSourceShort","txtRemoveMimeWithoutImagePathShort","txtReorderMimeShort","txtRemoveAllFeaturesShort","txtRemoveAllMimesShort","txtRemoveAllOrderDetailsShort","txtRemoveAllPricesShort","txtRemoveAllUDXShort","txtRemoveAllLogisticDetailsShort","txtRemoveEmptyCategoriesShort","txtResizeImagesShort","txtSupplierPIDSwitchShort","txtCheckCatalogShort","txtDeleteByListShort","txtSearchByListShort","txtUpdateFromCatalogShort","txtUpdateToCatalogShort","txtCompareCatalogShort","txtDeleteCategoryImagesShort","txtDeleteUnUsedMimesShort","txtAssignCategoryImagesShort","txtDeleteAllMediaShort","txtCacheThumbnailsShort","txtRemoveMasterShort","txtFixStatisticsShort","txtTranslateMimeSourcesShort","txtTranslateNumbersShort","txtDetectMimeTypeShort","txtRebuildThumbsShort","txtRenameFeatureSystemShort","txtRenameFeaturesShort","txtSplitFeatureValuesFromUnitShort","txtRemoveDuplicateImagesShort","txtDownloadMimeSourcesShort","txtDeleteEmptyFeaturesShort","txtEanSupplierAltPidSwitchShort","txtAssignMasterImagesShort","txtReportMissingMedialong","txtReportMissingMediaShort","txtCopyMediaFromOtherCatalogShort","txtCopyMediaFromOtherCatalogLong","txtDeleteFeatureByNameShort","txtDeleteFeatureByNameLong","txtAddEcommerceFeaturesShort","txtAddEcommerceFeaturesLong","txtTruncateMimeDescriptionsShort","txtTruncateMimeDescriptionsLong","txtInternationalPidTypEanToGtinLong","txtInternationalPidTypEanToGtinShort","txtSetMimePurposeShort","txtSetMimePurposeLong","txtSetIsBulkyShort","txtSetIsBulkyLong","txtSetManufacturerAidFromSupplierPidShort","txtSetManufacturerAidFromSupplierPidLong","txtReorderCategoriesShort","txtReorderCategoriesLong","txtMasterToCategoryShort","txtMasterToCategoryLong","txtRemoveEmptyUDXShort","txtRemoveEmptyUDXLong","txtRemoveDeadReferencesShort","txtRemoveDeadReferencesLong","txtRemoveUDXOnProductsShort","txtRemoveUDXOnProductsLong","txtCreateLinkedFieldsOnProductsShort","txtCreateLinkedFieldsOnProductsLong","txtDeleteMediaByPurposeShort","txtDeleteMediaByPurposeLong","txtFlattenCategoryTreeShort","txtFlattenCategoryTreeLong","txtKIText","txtGenerateKITextsShort","txtGenerateKITextsLong","txtCategoriesToMastersTextsLong","txtCategoriesToMastersTextsShort","txtMarkAsChangedTextsShort","txtMarkAsChangedTextsLong","txtGenerateSortNumberTextShort","txtGenerateSortNumberTextLong","txtGenerateMasterFeaturesFromVariantsTextsShortTextShort","txtGenerateMasterFeaturesFromVariantsTextsShortTextLong","txtChangeMimePurposesTextShort","txtChangeMimePurposesTextLong","getMacroName","macros","macro","getMacroIcon","getMacroText","cards","catalogCard","categoryCard","productCard","mediaCard","featureCard","shopCard","translationCard","variantsCard","troubleShootingCard","wawiCard","KICard","setMacro","isDelete","isFeatureSystemMakro","currentSelectedUserActionComponent","onUserActionStarted","onUserActionComponentInitiated","CatalogComponent","selectedStatesMode","userActionWindow","userActionFullScreen","buildContextMenu","treeListMode","setEmptyProduct","massCancel","saveGridInstance","xe","isSearch","prod","selectProductAfterSearch","selectCategoryAfterSearch","treeSelectedRowKeys","openItem","showMassGenerateKITexts","TreeListInstance","onSearchChanged","productTreeElement","expandCategoryTreeToTheTop","parentCategoryId","toggleFilter","showFilter","canChangePassword","showContextMenu","contextMenuVisible","itemClick","itemClickData","selectedCategoryId","selectedProductId","Clipboard","selectedRowData","onSelectItem","txtKategorieHinzufuegen","txtKategorieEinfuegen","txtKatalogEinfuegen","txtProduktHinzufuegen","txtVarianteHinzufuegen","txtKategorieLoeschen","txtKategorieKopieren","txtProduktEinfuegen","txtProduktKopieren","txtKopierenAlsKategorie","txtProduktLoeschen","txtProduktDuplizieren","massDataChange","showTranslateBox","hideUserAction","olf","toggleMenu","massGenerateKITexts","TemplateEditorDialogComponent","sync","_popupVisible","showPopupButtonVisible","showNotification","similarityRatio","titleExport","titleImport","notificationSimilar","prepareDropdownValuesAndDoNotification","similar","MenuComponent","userManagemant","drawerMouseEnter","drawerMouseLeave","updateMenuButtons","showNews","menuButtonOptions","drawerOpened","accountButtonOptions","account","showAccount","jobsButtonOptions","showJobs","newsButtonOptions","navigationItems","isJobWarningVisible","drawerTimeout","drawerFocused","loadView","filePath","switchImport","newImport","navigation","userLoggedIn","ni","selectedNavigationItems","currentAccount","isNoLayoutPage","canLanguages","canAccount","canLayers","hideAccountMenu","hideTemplateEditor","templateEditorVisible","showTemplateEditor","hasNewNews","openSupportPage","ImpressumComponent","CombineCatalogService","referenceItems","referenceProducts","moveProducts","copyCategories","copyProducts","ValidFeatureValueComponent","validFeatureValues","ValidFeatureComponent","ValidFeatureSystemComponent","validFeatureSystems","selectedValidFeatureSystem","ClassificationSystemComponent","onInsertCs","ClassificationSystem","onCsChanged","onCsRemoved","onLogoClicked","onEditDetailsClicked","ClassificationTreeComponent","classificationClassTree","onCreateCatalog","onClassTreeChanged","onClassTreeRemoved","onClassTreeAdded","kat","ClassificationClassTree","ClassificationGroupComponent","EditClassificationSystemComponent","hazardStatements","precautionaryStatements","HazmatclassComponent","piktogrammeText","hText","pText","HazmatclassesComponent","HazmatClass","WarrantyclassComponent","txtHtml","txtPlain","WarrantyclassesComponent","WarrantyClass","FeedbackService","sendFeedback","feedback","DataQualityPrintChartComponent","ProductStateComponent","deleteMultiple","addStatus","deleteStatus","ProductReportingComponent","hostUrl","sanitizer","reportUrl","designerUrl","showDesigner","CustomizeLocalization","FeatureMappingComponent","getProfiles","navigateToDetail","selectedMappingId","mappingProfiles","profile","MappingProfile","addProfileToList","mappingInputs","FeatureMappingProfilComponent","MappingProfileId","FeatureMappingDetailComponent","addMapping","onShowAnalyseCatalog","startAnalyse","onAddResult","onShowMapCatalog","startMapping","saveMappingResult","closeMappingResultPopUp","onExportProfil","onImportProfil","txtStarted","txtMapStarted","txtExportStarted","mappingResults","startEditing","selectedMappingResult","showEditResult","refreshInputsForResult","refreshInputs","catalogToAnalyseId","analyseCatalogVisible","catalogToMapId","mapCatalogVisible","onDeleteMappingClicked","inputMapping","resultId","dragTarget","draggedInput","resultGrid","createResultFromInput","MappingResult","onUpdateMappingResult","isIgnoredClick","itemObj","isIgnored","onResultGridToolbarPreparing","useFeatureSystem","useManufacturer","importProfileVisible","SandboxComponent","dummy42","Dummy","listLeft1","listRight1","onSingleDragStart","onLeftDragStart","onRightDragStart","onRightDrop","indexLeft","onTrashDrop","onRightReorder","TemplateListComponent","txtDuplikat","rowUpdated","rowRemoved","duplicateTemplate","templatetemplate","copiedTemplate","editTemplate","editorVisible","gtin","artikelNumber","ImportSupplierPidMappingsComponent","SupplierPidMappingComponent","showImport","loadData","supplierSelectionChanged","suppliersLoading","supplierIsUsed","mappingsGrid","supplierInfos","selectedSupplier","supplierPidMappings","getSupplierGtin","getSupplierArtikelnumber","supplierInfo","newSupplier","importSupplierPidMappingsVisible","pidMapping","usedSuppliers","suppliersGrid","spm","getUsedSuppliers","SupplierPidMappingInfo","NewsComponent","refreshArticles","checkNews","needsBadge","articles","releaseDate","showBadges","groupingCreatedDate","ProductId","CategoryId","itemsToTransfer","TransferItemModes","CombineCatalogsComponent","combineCatalogService","onAddTarget","onDragStartSource","onDragStartTarget","transferModeItems","transferMode","treeListSource","selectedStatesTargetMode","selectedCustomerId","txtAddCategory","txtDeleteCategory","txtDeleteProd","txtLoading","txtNoCategoriesOrCatalogInProd","txtNoProdInChild","txtNoMasterInProd","txtNoMoveCategoriesRecursive","txtNoMoveVarAlone","txtNoProdInCatalog","txtNoRefForCatalog","txtNoRefForVar","txtNoRefInProd","txtOnlyProdCategoriesOrCatalog","txtOnlyMasterOrVar","txtSourceEqualsTarget","txtCopy","txtMove","txtReference","operationsAll","operationsNonVirtualSameCatalog","operationsNonVirtualNotSameCatalog","operationsVirtual","resetOperations","populateSourceCatalogs","targetCatalogs","selectedTreeId","_selectedCustomerId","populateTargetCatalogs","sourceSelected","selectedSourceCatalogId","initDataSourceSource","setSelectedOperation","sourceCatalogs","dataSourceSource","toggleFilterTarget","showFilterTarget","updateStateTarget","targetSelected","dataSourceTarget","initDataSourceTarget","isTargetCatalogVirtual","existingSpids","hasSpid","spid","processCopy","processMove","processReference","treeSelectedRowKeysSource","copyMany","moveMany","referenceMany","sourceSelectedData","sourceCategories","sourceProducts","masters","TransferCatalogItem","CatalogItem","refreshTargetTree","refreshSourceTree","onCellPreparedSource","onCellPreparedSourceTarget","onSelectionChangedTarget","operationsNonVirtual","operationsDisabled","EdeSortimentService","parseFtp","parseFtpClaims","getSortimentsVersions","updateBez","startUpdateEDEJob","katalogIdent","targetVersion","addEdeInvoice","catalogIdent","EdeSortimentsVersionComponent","edeSortimentsService","isInstalled","install","closeButtonOptions","sortiment","selectedVersion","versions","installedVersion","canUpdateTo","isOwned","owned","EdeSortimentsListComponent","isNewest","toogleArchive","edeSortiments","archivedEdeSortiments","currentEdeSortiments","isArchive","startGenerateEdeInvoiceJob","WawiListComponent","startImportListener","wawiListSelected","addWawiList","showAdd","renameWawiList","showEdit","showExportImportDirectionInfo","reloadWawiLists","listSelected","currentWawiList","wawiListFields","importAsNewList","importVisible","newWawiListSelection","hasWawiAddon","newWawiList","addVisible","editList","editVisible","exportImportInfoPopupVisible","TeachingSetStates","manufacturer","keyWords","TeachingSetComponent","addSample","addFeatureSystem","samplePages","generateEnabled","TeachingSample","TeachingSetsComponent","getStateDesc","AuthGuardService","OsgSenderService","OsgSenderComponent","osgSenderService","hasTestConnection","generateTest","updateName","OsgSendersComponent","osgSenders","stateText","ignoreForReport","createdByCustomerId","printName","pointsPerCount","maxPoints","minLength","minCount","checkIfExists","displayMessage","featureSystemNameFilter","featureNameFilter","mimeTypeFilter","mimePurposeFilter","referenceTypeFilter","udxGroupFilter","supplierNameFilter","packingUnitCodeFilter","priceListLiveFilter","priceTypeFilter","isConditional","conditionalRuleIds","fieldGroup","isList","isBool","isPicture","ctx_r189","ctx_r218","ValidationComponent","getValidationMethodDisplayText","dataQualityAreas","validationFieldGroups","TranslatedText","validationFields","loadValidationMethods","createValidationRule","newValidationRule","ValidationRule","foundValidationGroup","validationGroups","crypto","randomUUID","ValidationField","saveValidationMethod","duplicateValidationItem","newValidationItem","itemIsValidationGroup","validationRule","loadConditionalRules","selectedValidationItem","deleteValidationItem","selectedItemFieldFilled","selectedItemFieldIsList","selectedItemFieldIsBool","selectedItemFieldIsPicture","onFieldGroupChanged","updateFieldNamesInGroupList","onFieldNameChanged","foundField","onIsConditionalChanged","fieldNamesInGroup","onValidationItemSelection","createValidationGroup","newValidationGroup","conditionalRules","onValidationMethodChanged","showCreateValidationMethodPopup","newValidationMethod","ValidationMethod","createValidationMethodPopupVisible","showDuplicateValidationMethodPopup","createdValidationMethod","changeFieldNameAndSaveValidationMethod","validationMethod","resetValidationMethodSelectBox","isGlobalValidationMethod","isAdminUser","showFeatureSystemNameFilter","allFieldNamesAvailable","showFeatureNameFilter","showMimeTypeFilter","showMimePurposeFilter","showReferenceTypeFilter","showUdxGroupFilter","showSupplierNameFilter","showPackingUnitCodeFilter","showPriceListLiveFilter","showPriceTypeFilter","isReadOnlyForUser","PendingChangesGuard","CatalogStateComponent","StatesComponent","httpClient","TranslateHttpLoader","AppModule","bootstrap","HttpClientModule","OAuthModule","resourceServer","allowedUrls","sendAccessToken","HttpLoaderFactory","HttpClient","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","devExtremeConfig","IdentUserAgent","Safari","Chrome","Mozilla","Netscape","Firefox","Opera","IE","Edge","indentPlatformMajorVersion","Macintosh","Mac_PowerPC","Android","Opera10","GetBrowserVersion","getIECompatibleVersionString","P","getVersionFromTrident","documentMode","fillUserAgentInfo","getVersionFromMatches","isTouchEnabled","hasTouchStart","hasMaxTouchPoints","hasMsMaxTouchPoints","hasNavigator","Version","MajorVersion","WindowsPlatform","MacOSMobilePlatform","MacOSPlatform","AndroidMobilePlatform","WindowsPhonePlatform","WebKitFamily","NetscapeFamily","WebKitTouchUI","UserAgent","MSTouchUI","MobileUI","AndroidDefaultBrowser","AndroidChromeBrowser","SamsungAndroidDevice","VirtualKeyboardSupported","fillDocumentElementBrowserTypeClassNames","PlaformMajorVersion","Info","_foo","suspendUpdateCount","occurredEvents","onUpdateLocked","onUpdateUnlocked","suspendUpdate","continueUpdate","registerOccurredEvent","resetOccurredEvents","isLocked","BatchUpdatableObject","EmptyBatchUpdatableObject","Flag","minElement","maxElement","MinMax","MinMaxNumber","ExtendedMin","ExtendedMax","ExtendedMinMax","hundredthsOfMillimeterToTwipsRound","documentsToTwips","pixelsToTwips","pixelsToTwipsF","pixelsToTwipsCustomDpi","pixelsToTwipsFCustomDpi","inchesToTwips","inchesToTwipsF","pointsToTwips","pointsToTwipsF","picasToTwips","PICAS_PER_INCH","centimetersToTwips","centimetersToTwipsF","DPI","CENTIMETERS_PER_INCH","twipsToDegrees","twipsToRadians","degreesToTwips","radiansToTwips","radiansToDegrees","twipsToFD","fdToTwips","emuToTwips","twipsToPixels","twipsToPixelsF","inchesToPixels","centimeterToPixel","centimeterToPixelF","millimetersToPixel","pointsToPixels","pointsToPixelsF","pixelsToPoints","pixelsToPointsF","twipsToPoints","twipsToPointsF","twipsToInches","pixelsToInches","twipsToCentimeters","pixelToCentimeters","twipsToHundredthsOfMillimeter","pixelsToHundredthsOfMillimeter","hundredthsOfMillimeterToTwips","twipsToEmu","twipsToDegree","UnitConverter","euclideanDistance","manhattanDistance","Metrics","fromNumber","fromOffsets","fromSide","multiply","copyFrom","applyConverter","Offsets","isZero","offsetByPoint","plus","xComparer","yComparer","createRectangle","createSize","createPosition","createVerticalInterval","FixedInterval","createHorizontalInterval","fromGeometry","fromPoints","fromPositions","fromCenter","isCollapsed","setGeomerty","moveRectangle","moveRectangleByPoint","nonNegativeSize","containsPoint","containsRectangle","inflate","applyOffsetsInside","applyNormalizedOffsetsInside","applyOffsetsOutside","getHorizIntersection","IntervalAlgorithms","getVertIntersection","getHorNonCollapsedIntersection","getVertNonCollapsedIntersection","getNonCollapsedIntersection","areIntersected","union","HitTestDeviation","Top","Bottom","initRectangle","initPoint","deviation","calcDeviation","calcAdditionalParams","insidePoint","offsetToInside","RectangleDeviation","isIntersected","intersectCore","MathUtils","numberCloseTo","isIntersectedByRect","Segment","initByCommonAction","fromSegment","angleBetween","Vector","oneConstainsOtherArraysOfInterval","ListUtils","deepCopy","unsafeAnyOf","containsInterval","getIntersectionTemplate","makeByStartEnd","getIntersectionNonNullLength","getIntersectionNonNullLengthTemplate","getIntersectionsTwoArraysOfInterval","getIntersectionsTwoArraysOfIntervalTemplate","getAffectedObjects","SearchUtils","normedInterpolationIndexOf","getAffectedObjectsTemplate","SparseIntervalsCollector","getIntervals","handleAffectedObjects","getMergedIntervals","getMergedIntervalsTemplate","makeByStartLength","reflectIntervals","reflectIntervalsTemplate","reducedMap","reflectionOfPointOnInterval","isNormalized","containsIntervalWithoutEnd","containsWithIntervalEnd","containsWithoutIntervalEndAndStart","ConstInterval","makeByLengthEnd","makeByConstInterval","MutableInterval","normalizeLength","SparseIntervals","_numIntervals","getNativeIterator","SparseIntervalsIterator","getObjectsIterator","SparseObjectsIterator","sparseIntervals","moveNext","posInInterval","initObject","numIntervals","movePrev","objects","normalizeToDataUrl","checkPrependDataUrl","prependByDataUrl","dataUrl","deleteDataUrlPrefix","getUint8Array","fromArrayBuffer","getFileFromBase64","FileUtils","createFile","getMimeTypeAsString","getKnownMimeType","MimeTypeUtils","stringTypeToType","DxMimeType","Unknown","fromBlobAsArrayBuffer","onloadend","readAsArrayBuffer","fromBlobAsDataUrl","Base64Utils","getAlpha","getRed","getGreen","getBlue","redPartToString","greenPartToString","bluePartToString","fromArgbNumber","fromRgbaString","fromHashString","isHashColorString","StringUtils","fromColorName","colorNames","colorToHash","stringToHash","isKnownColorName","isGray","DARK_COLOR","LIGHT_COLOR","windowtext","ColorUtils","boolToInt","boolToString","isNonNullString","isEven","isOdd","numberToStringBin","padLeft","numberToStringHex","stringIgnoreCase","Comparers","simpleType","Equals","clearInnerHtml","setStylePosition","setStyleSize","setStyleSizeAndPosition","hideNode","isHTMLElementNode","TEXT_NODE","isHTMLTableRowElement","isItParent","getParentByTagName","getDocumentScrollTop","getCurrentStyle","getDocumentScrollLeft","currentStyle","defaultView","frameElement","ownerDocument","setFocus","hasClassName","addClassName","removeClassName","toggleClassName","pxToInt","pxToFloat","getAbsolutePositionY","getAbsolutePositionX","isInteractiveControl","getClearClientHeight","getTopBottomPaddings","getVerticalBordersWidth","borderBottomStyle","borderBottomWidth","getChildNodes","getNodesByClassName","getChildNodesByClassName","getVerticalScrollBarWidth","verticalScrollBarWidth","getHorizontalBordersWidth","borderLeftStyle","borderRightStyle","borderRightWidth","getFontFamiliesFromCssString","getInnerText","html2PlainTextFilter","DomUtils","decodeHtml","prepareTextForRequest","prepareTextForCallBackRequest","decodeViaTextArea","EncodeUtils","preventEvent","getEventSource","getEventSourceCore","getEventSourceByPosition","elementFromPoint","getEventX","clientEventRequiresDocScrollCorrection","getEventY","srcElement","getMouseWheelEventName","TouchUtils","isMoveEventName","touchMouseMoveEventName","getMoveEventName","PointerEvent","preventEventAndBubble","getWheelDelta","wheelDelta","EvtUtils","loadJavascriptFile","htmlScriptElement","startDownloadFileLocal","lastModified","File","isFile","getKeyModifiers","Alt","Ctrl","Shift","Meta","getShortcutCode","getShortcutCodeByEvent","getEventKeyCode","parseShortcutString","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Enter","Home","End","PageUp","PageDown","Space","Tab","Backspace","Insert","alert","KeyUtils","ModifierKey","Pause","CapsLock","Key_0","Key_1","Key_2","Key_3","Key_4","Key_5","Key_6","Key_7","Key_8","Key_9","Key_a","Key_b","Key_c","Key_d","Key_e","Key_f","Key_g","Key_h","Key_i","Key_j","Key_k","Key_l","Key_m","Key_n","Key_o","Key_p","Key_q","Key_r","Key_s","Key_t","Key_u","Key_v","Key_w","Key_x","Key_y","Key_z","Numpad_0","Numpad_1","Numpad_2","Numpad_3","Numpad_4","Numpad_5","Numpad_6","Numpad_7","Numpad_8","Numpad_9","Multiply","Add","Subtract","Decimal","Divide","NumLock","ScrollLock","Semicolon","Comma","Dash","Period","ForwardSlash","GraveAccent","OpenBracket","BackSlash","CloseBracket","SingleQuote","KeyCode","removeBy","shallowCopy","initByValue","initByCallback","forEachOnInterval","reverseForEachOnInterval","indexBy","reverseIndexBy","elementBy","reverseElementBy","setLast","incLast","decLast","allOf2","equalsByReference","uniqueNumber","forEach2","reverseForEach","reverseIndexOf","accumulateNumber","reverseAnyOf","unsafeReverseAnyOf","anyOf2","allOf","allOfOnInterval","addListOnTail","joinLists","countIf","minExtended","maxExtended","minMaxExtended","minByCmp","maxByCmp","minMaxByCmp","powFactor","restrictValue","getRandomInt","generateGuid","somePrimes","OpenXmlMimeType","RtfMimeType","PlainTextMimeType","DocmMimeType","ImagePngMimeType","ImageGifMimeType","ImageJpegMimeType","ImagePjpegMimeType","ImageSvgMimeType","ImageTiffMimeType","ImageIcoMimeType","ImageWbmpMimeType","ImageWebpMimeType","OpenXml","Rtf","PlainText","Docm","Png","Gif","Jpeg","Pjpeg","Svg","Tiff","Ico","Wbmp","Webp","stringTypeToExtension","stringTypeToTypeMap","typeToExtensionMap","typeToExtension","extensionToType","extensionToTypeMap","typeToStringType","typeToStringTypeMap","binaryIndexOf","normedBinaryIndexOf","binaryIndexNormalizator","isAlpha","stringHashCode","endsAt","startsAt","stringInLowerCase","stringInUpperCase","atLeastOneSymbolInUpperCase","getSymbolFromEnd","trimInternal","trimStart","trimEnd","isNullOrEmpty","onEventAttachingToDocument","isTouchEventName","documentTouchHandlers","documentEventAttachingAllowed","touchMouseDownEventName","touchMouseUpEventName","msTouchDraggableClassName","polyfill","getOwnPropertyDescriptor","exports","setPrototypeOf","__proto__","ApiController","SelectionChanged","raiseSelectionChanged","notifyToolboxDragStart","notifyToolboxDragEnd","notifyToolboxDraggingMouseMove","notifyClick","tryRaiseUserAction","notifyDblClick","createNativeItem","cleanupNativeItem","toNative","createNativeShape","createNativeConnector","convertUnit","ModelUtils","getlUnitValue","convertPoint","convertSize","isAutoGeneratedKey","isUserAction","raise1","MouseEventElementType","Shape","ShapeExpandButton","ShapeParameterBox","ShapeResizeBox","ShapeConnectionPoint","ConnectorPoint","ConnectorSide","ConnectorOrthogonalSide","ConnectorText","getKeys","NativeConnector","NativeItem","unitsApplied","applyUnits","applyUnitsCore","AutoLayoutCommandBase","executeCore","beginTransaction","getAffectedShapes","getAffectedConnectors","createLayoutSettings","getGraphInfoByItems","GeometryUtils","getCommonRectangle","Utils","graph","addAndRedo","ScrollIntoViewOnUndoHistoryItem","createLayout","getNonGraphItems","nodeToLayout","tryUpdateModelRectangle","ScrollIntoViewOnRedoHistoryItem","endTransaction","locked","getSelectedShapes","getSelectedConnectors","SimpleCommandBase","AutoLayoutLayeredHorizontalCommand","LayoutSettings","SugiyamaLayoutBuilder","AutoLayoutLayeredHorizontalRightToLeftCommand","LogicalDirectionKind","Backward","AutoLayoutLayeredVerticalBottomToTopCommand","AutoLayoutLayeredVerticalCommand","AutoLayoutTreeHorizontalCommand","TreeLayoutSettings","TreeLayoutBuilder","AutoLayoutTreeHorizontalRightToLeftCommand","AutoLayoutTreeVerticalBottomToTopCommand","AutoLayoutTreeVerticalCommand","ClipboardCommand","setClipboardData","getClipboardData","isPasteSupportedByBrowser","CopySelectionCommand","isEnabledInReadOnlyMode","Exporter","exportItems","CutSelectionCommand","permissionsProvider","canDeleteItems","beginDeleteItems","deleteSelection","endDeleteItems","PasteSelectionCommand","getEventPositionOffset","PasteSelectionCommandBase","parseClipboardData","Importer","shapeDescriptionManager","importItems","contextMenuPosition","getCorrectedOffsetByModel","getMinX","getMinY","topLeftItem","getShapeCorrectedPosition","getConnectorCorrectedPoints","performPaste","addItemForSortingRecursive","endItem","beginItem","attachedConnectors","getSortedPasteItems","beginUpdateCanvas","ImportShapeHistoryItem","ImportConnectorHistoryItem","SetSelectionHistoryItem","endUpdateCanvas","findShapeAtPosition","findConnectorAtPoints","PasteSelectionInPositionCommand","getModelPointByEventPoint","CommandBase","isPermissionsRequired","lockPermissions","unlockPermissions","executeWithPermissions","updateControlState","beginStorePermissions","isStoredPermissionsGranted","undoTransaction","endStorePermissions","lockInputPositionUpdating","inputPosition","lockUIUpdating","CommandManager","T","R","U","W","Y","nt","ot","st","ct","ut","Paste","ImportBPMN","UnbindDocument","MoveLeft","MoveStepLeft","MoveRight","MoveStepRight","MoveUp","MoveStepUp","MoveDown","MoveStepDown","CloneLeft","CloneRight","CloneUp","CloneDown","AutoLayoutTree","AutoLayoutFlow","ToggleAutoZoom","ImportXML","Zoom25","Zoom50","Zoom75","Zoom100","Zoom125","Zoom150","Zoom200","ZoomLevelInPercentage","ConnectorRoutingMode","ht","shortcutsToCommand","lastCommandsChain","executingCommandsChain","executingCommandCounter","isPublicApiCall","createCommand","UndoCommand","RedoCommand","SelectAllCommand","DeleteCommand","ImportCommand","ImportBPMNCommand","ImportXMLCommand","ExportCommand","ExportSvgCommand","ExportPngCommand","ExportJpgCommand","BindDocumentCommand","UnbindDocumentCommand","ToggleFontBoldCommand","ToggleFontItalicCommand","ToggleFontUnderlineCommand","ChangeFontNameCommand","ChangeFontSizeCommand","ChangeFontColorCommand","ChangeFillColorCommand","ChangeStrokeColorCommand","ChangeStrokeStyleCommand","ChangeStrokeWidthCommand","TextLeftAlignCommand","TextCenterAlignCommand","TextRightAlignCommand","ChangeConnectorLineOptionCommand","ChangeConnectorStartLineEndingCommand","ChangeConnectorEndLineEndingCommand","BringToFrontCommand","SendToBackCommand","MoveLeftCommand","MoveRightCommand","MoveUpCommand","MoveDownCommand","MoveStepLeftCommand","MoveStepRightCommand","MoveStepUpCommand","MoveStepDownCommand","CloneLeftCommand","CloneRightCommand","CloneUpCommand","CloneDownCommand","LockCommand","UnLockCommand","ChangeUnitsCommand","ChangeViewUnitsCommand","ChangePageSizeCommand","ChangePageLandscapeCommand","ChangePageColorCommand","ChangeGridSizeCommand","ChangeShowGridCommand","ChangeSnapToGridCommand","ChangeZoomLevelCommand","ChangeZoomLevelInPercentageCommand","ToggleFullscreenCommand","ToggleSimpleViewCommand","ToggleReadOnlyCommand","InsertShapeImageCommand","EditShapeImageCommand","DeleteShapeImageCommand","FitToScreenCommand","FitToWidthCommand","SwitchAutoZoomCommand","ToggleAutoZoomCommand","ChangeZoomLevelItemsCommand","ChangeGridSizeItemsCommand","ChangePageSizeItemsCommand","ChangeZoomLevelTo25Command","ChangeZoomLevelTo50Command","ChangeZoomLevelTo75Command","ChangeZoomLevelTo100Command","ChangeZoomLevelTo125Command","ChangeZoomLevelTo150Command","ChangeZoomLevelTo200Command","ToggleAutoZoomToContentCommand","ToggleAutoZoomToWidthCommand","ChangeConnectorRoutingModeCommand","beforeExecuting","afterExecuting","processShortcut","processPaste","notifyScrollPositionChanged","SimpleCommandState","denyUpdateValue","canRedo","iterateItems","canUndo","performImportData","createDocumentDataSource","dataParameters","DataLayoutParameters","createModelItems","measurer","deleteDocumentDataSource","deleteAllItems","ExportImportCommandBase","ExportImageCommand","exporter","ImageCache","hasNonLoadedImages","getExportManager","getExportFunc","getExtension","tryDispose","useCanvgForExportToImage","getOrCreateMeasurer","createItemsManager","exportManager","CanvasExportManager","instanceId","createSvgElement","CanvasItemsManager","ExportDOMManipulator","modelManipulator","onModelChanged","commitItemsCreateChanges","tempMeasurer","TextMeasurer","BPMNImporter","AddShapeHistoryItem","getShapeDescription","shapeKey","findShape","AddConnectorHistoryItem","getConnectionPointPosition","findConnector","connectorKey","AddConnectionHistoryItem","importItemsData","importModel","XmlImporter","CloneCommand","canAddItems","cloneSelectionToOffset","getOffsetX","getOffsetY","SelectionDragHelper","initDraggingShapes","initDraggingConnectors","onTryUpdateModelSize","getSnappedPos","getModelUnit","getModelUnitTwipsValue","getViewUnitText","getDefaultValue","DiagramModel","defaultPageColor","createHistoryItems","ChangePageColorHistoryItem","ChangePagePropertyCommand","pageLandscape","ChangePageLandscapeHistoryItem","getModelUnitSize","ChangePageSizeHistoryItem","ChangeUnitsHistoryItem","autoZoom","exactValue","getZoomLevel","getActualAutoZoomLevel","notifyToggleFullscreen","needBringToFront","getIntersectItemsMaxZIndex","ChangeZindexHistoryItem","getIntersectItems","getItemIndex","getPropertyName","getPropertyDefaultValue","ChangeConnectorPropertyCommand","getCurrentConnectorPropertyValue","ChangeConnectorPropertyHistoryItem","setConnectorPropertyValue","connectorRoutingMode","ChangeLockedCommand","getLockState","changeSelectionLocked","needSendToBack","getIntersectItemsMinZIndex","getSelectedShape","EditShapeImageCommandBase","enableImage","exportUrl","ChangeShapeImageHistoryItem","getModelUnitText","getUnitText","getTwipsValue","getViewUnit","getViewUnitTwipsValue","processParameter","getStyleProperty","ChangeStylePropertyCommand","ChangeStyleTextPropertyCommand","getCurrentStylePropertyValue","getStyleObj","getDefaultStyleObj","Style","createHistoryItem","ChangeStyleHistoryItem","updateInputPosition","setStylePropertyValue","ChangeStylePropertyCommandBase","StylePropertyCommandBase","getCurrentTextStylePropertyValue","styleText","TextStyle","ChangeStyleTextHistoryItem","setTextStylePropertyValue","ChangeTextAlignCommand","ToggleStyleTextPropertyCommand","getStylePropertyValue","defaultInstance","DataSourceEdgeDataImporter","DataSourceNodeDataImporter","DataSourceItemDataImporter","sizeSettings","layoutSettings","getLayoutBuilder","autoGeneratedDataKeys","addInternalKeyOnInsert","useNodeParentId","useNodeContainerId","useNodeChildren","useNodeItems","canUseAutoSize","canUpdateEdgeDataSource","loadParameters","createNodeDataImporter","createEdgeDataImporter","fetchData","assignNodeDataImporterProperties","assignEdgeDataImporterProperties","assignItemDataImporterProperties","useEdgesArray","addNode","addEdge","addNodeEdgesByParentId","isContainer","refetchData","getItemChanges","containsItem","remained","remainedNewKeys","addNodeInternal","assignNodeProperties","addEdgeInternal","getNodeKey","getGuidItemKey","DataSourceNodeItem","assignEdgeProperties","DataSourceEdgeItem","assignItemProperties","ObjectUtils","cloneObject","cssTextToObject","CONNECTOR_DEFAULT_TEXT_POSITION","findEdge","beginChangesNotification","initializeKeyCounter","createShapeByNode","we","insertToContainer","createConnectorByEdge","updateConnectorContainer","needAutoLayout","endChangesNotification","updateModelItems","findShapeByDataKey","findConnectorByDataKey","purgeLayoutShapes","changeShapeByDataItem","changeItemByDataItem","updateShapeContainer","changeConnectorPointsByDataItem","getConnectorPointsByEdge","changeConnectorByDataItem","uniqueShapes","applyShapeAutoSize","enableText","textRectangle","getMaxHeight","getOptimalTextRectangle","TextOwner","getMinWidth","getMinHeight","getSizeByText","ResizeShapeHistoryItem","compareObjects","ChangeCustomDataHistoryItem","getPreparedStyleValue","isColorProperty","getDefaultInstance","ChangeLockedHistoryItem","updateNewShapeProperties","setShapePosition","changeShapeType","setShapeSize","updateShapeAttachedConnectors","ChangeShapeTextHistoryItem","actualUrl","removeFromContainer","createModelPointFromDataSourceEdgeItemPoints","isValidDataSourceEdgeItemPoint","createModelPoint","updateNewConnectorProperties","beginConnectionPointIndex","DeleteConnectionHistoryItem","endConnectionPointIndex","updateConnectorAttachedPoints","compareTexts","ChangeConnectorTextHistoryItem","ReplaceConnectorPointsHistoryItem","getTextCount","compareStrings","isEmptyString","DataSourceItem","sourceKey","parentDataObj","containerDataObj","DocumentDataSource","UpdateNodeKeyRelatedObjectsStackAction","UpdateNodeKeyRelatedObjectsStackItem","nodeObj","changesListener","nodeInsertingLockCount","updateNodeKeyRelatedObjectsCount","updateNodeKeyRelatedObjectsStack","updateNodeKeyRelatedObjectsStackActions","updateItemsByModel","deleteNodes","deleteEdges","updateNode","updateEdge","isItemObjectModified","setDataObjectKeyRelatedProperty","updateItemObjectProperties","toObject","objectToCssText","isNodeObjectModified","updateNodeObjectProperties","updateNodeObjectConnectedProperties","notifyNodeUpdated","updateNodeObjectKey","beginNodeInserting","notifyNodeInserted","endNodeInserting","areImageUrlsEqual","getParentItemKey","updateNodeObjectParentKey","getContainerShapeKey","updateNodeObjectContainerKey","updateNodeObjectItems","updateNodeObjectChildren","IsNodeParentIdMode","IsNodeItemsMode","isRootParentKey","isInUpdateNodeKeyRelatedObjects","addToUpdateNodeKeyRelatedObjectsStackAction","updateNodeObjectContainerOrParentKeyInternal","updateNodeObjectParentKeyInternal","checkNodeCyrcleItems","getNodeArray","updateNodeKeyRelatedObjects","isInNodeInserting","addToUpdateNodeKeyRelatedObjectsStack","getChildItems","updateEdgeObjectFromProperty","updateEdgeObjectToProperty","notifyNodeRemoved","getParentItem","isEdgeObjectModified","updateEdgeObjectProperties","notifyEdgeUpdated","updateEdgeObjectKey","notifyEdgeInserted","pointsAreEqual","updateEdgeObjectFromOrToPropertyInternal","notifyEdgeRemoved","raiseNodeInsertingStack","beginUpdateNodeKeyRelatedObjects","reloadInsertedItem","endUpdateNodeKeyRelatedObjects","raiseUpdateNodeKeyRelatedObjectsStack","Diagnostics","Console","beginAverage","enableLogsAndTimers","lastAverageGroupName","endAverage","tryLogAverage","lastCreatedTimer","performance","endTimer","showMessage","logPerfInfo","memory","usedJSHeapSize","lastMessage","optimizeUsingRAF","optimizeLayers","updateLockCount","shouldUpdateItemsByModel","reloadContentNeeded","reloadContentParameters","ReloadContentParameters","reloadContentByExternalChangesParameters","DiagramSettings","ShapeDescriptionManager","onShapeDecriptionChanged","apiController","PermissionsProvider","routingModel","ConnectorRoutingModel","ModelManipulator","History","BarManager","onReadOnlyChanged","mouseHandler","visualizersManager","toolboxManager","ToolboxManager","onConnectorRoutingModeChanged","onReadyStateChanged","operationSettings","RenderUtils","onZoomChanged","onViewChanged","cleanToolboxes","onTextInputOperation","onMouseOperation","onVisualizersUpdate","onModelSizeChanged","replaceParent","RenderManager","modelSize","gridVisible","getRectangle","onNewModel","initialize","zoomLevelWasChanged","raiseCanvasViewActualZoomChanged","getToolboxAllowedShapeTypes","onDragOperation","registerToolbox","cleanContextToolbox","onClickOperation","contextToolboxOnClick","beginUpdateUI","canAddShapeFromToolbox","endUpdateUI","notifyToolboxClick","findItemByDataKey","scrollIntoView","registerCustomShape","unregisterCustomShape","unregisterAllCustomShapes","onImportData","commitPageChanges","notifyViewChanged","notifyHistoryChanged","documentDataSource","reloadInsertedItemRequired","isChangesLocked","reloadContentCore","dataKeys","commitItemUpdateChanges","notifyDataChanges","raiseOnChanged","notifyTextInputStart","notifyTextInputEnd","notifyTextInputPermissionsCheck","notifyShowContextMenu","getEventPointByModelPoint","getAbsoluteSize","notifyHideContextMenu","notifyShowContextToolbox","notifyHideContextToolbox","notifyShapeDescriptionChanged","updateShapeDescription","notifyImageCacheReadyStateChanged","raiseActualZoomChanged","notifyRequestOperation","requestOperationByDataSource","isShapeParent","changesLockChanged","notifyReloadContent","lockedReadOnly","PageOrientation","Portrait","Landscape","ContextMenuHandler","textInputStarted","canHideContextMenu","MouseButton","Undefined","hideContextMenu","onContextMenu","eventPoint","modelPoint","onFocus","onTextInputFocus","onTextInputBlur","onLongTouch","onShortcut","notifyDragStart","notifyDragEnd","notifyDragScrollStart","notifyDragScrollEnd","ContextMenuTouchHandler","contextToolboxVisible","showContextMenuAtSelection","showContextMenuAtEmptySelection","ContextToolboxHandler","hideContextToolbox","showContextToolbox","contextToolboxCancelCallback","DiagramClipboardEvent","DiagramKeyboardEvent","DiagramContextMenuEvent","DiagramWheelEvent","DiagramMouseEvent","DiagramMouseEventBase","DiagramMouseEventTouch","DiagramFocusEvent","DiagramEvent","ResizeEventSource","MouseEventSource","Middle","Background","SelectionRect","ResizeBox_NW","ResizeBox_NE","ResizeBox_SE","ResizeBox_SW","ResizeBox_N","ResizeBox_E","ResizeBox_S","ResizeBox_W","modifiers","offsetPoint","toolboxes","EventUtils","VisualizerTouchManager","VisualizerManager","contextMenuHandler","contextToolboxHandler","MouseHandler","textInputHandler","TextInputHandler","processDragging","onMouseDblClick","onMouseClick","updateConnectionPoints","isShortcutForFocusInput","onTextInputKeyDown","isTextInputActive","onMouseWheel","onWheel","getDraggingEvent","draggingEvent","draggingObject","onDocumentDragStart","onDocumentDragEnd","onDocumentDragScrollStart","onDocumentDragScrollEnd","onDocumentClick","raiseTextInputStart","raiseTextInputEnd","raiseTextInputPermissionsCheck","canFinishTextEditing","visualizerManager","finishStateLock","allowMultipleSelection","allowCopyDiagramItems","allowSnapToCellOnDragDiagramItem","allowSnapToCellOnDragPoint","allowSnapToCellOnResizeShape","allowFixedDrag","allowZoomOnWheel","allowScrollPage","shouldScrollPage","copyDiagramItemsByCtrlAndShift","startScrollingPageByCtrl","initializeDefaultState","MouseHandlerDefaultReadOnlyTouchState","MouseHandlerDefaultReadOnlyState","MouseHandlerDefaultTouchState","MouseHandlerDefaultState","switchToDefaultState","mouseDownEvent","canScrollPage","hasCtrlModifier","canMultipleSelection","hasCtrlOrShiftModifier","canCopySelectedItems","hasCtrlAndShiftModifier","hasAltModifier","canCalculateFixedPosition","hasShiftModifier","canStartZoomOnWheel","canFinishZoomOnWheel","onStartScrollPageByKeyboard","canStartScrollingPageByKeyboard","raiseDragScrollStart","onFinishScrollPageByKeyboard","canEndScrollingPageByKeyboard","finishScrollingPage","onFinishScrollPageByMouse","canEndScrollingPage","raiseDragScrollEnd","getSnappedPointOnDragDiagramItem","getSnapToCellOnDragDiagramItem","getFixedXPosition","getFixedYPosition","getSnappedPointOnDragPoint","getSnapToCellOnDragPoint","getSnappedOffsetOnDragPoint","lockAspectRatioOnShapeResize","getSnappedPositionOnResizeShape","getSnapToCellOnResizeShape","tryUpdateModelSize","canAddDiagramItemToSelection","addDiagramItemToSelection","pressedDiagramItemKey","pressedDiagramItemInSelection","changeSingleSelection","canRemoveDiagramItemToSelection","removeDiagramItemFromSelection","raiseDragStart","raiseDragEnd","canPerformChangeConnection","canChangeConnection","canPerformChangeConnectionOnUpdateUI","restartState","switchState","addInteractingItem","clearInteractingItems","notifyReadOnlyChanged","notifySelectionRectShow","notifySelectionRectHide","notifyResizeInfoShow","notifyResizeInfoHide","notifyConnectionPointsShow","onConnectionPointsShow","notifyConnectionPointsHide","notifyConnectionTargetShow","onConnectionTargetShow","notifyConnectionTargetHide","notifyContainerTargetShow","notifyContainerTargetHide","notifyExtensionLinesShow","notifyExtensionLinesHide","MouseHandlerCreateConnectorState","connectedItem","createNewShapeAtConnectorEnd","onApplyChanges","getSnappedPoint","checkStoredPermissionsOnFinish","onFinishWithChanges","getNewShapeSide","getCategoryByDescription","getNewShapePosition","findNearestContainer","getConnectionPointIndexForSide","checkNewConnectorPermissions","DeleteConnectorHistoryItem","ConnectionPointSide","North","South","East","West","getRenderPoints","getNewShapeSideByConnectorPoints","getSourceItem","MouseHandlerMoveConnectorPointStateBase","canDragObjectOnMouseDown","canExpandContainerOnMouseDown","canClearSelectionOnMouseDown","canSelectOnMouseUp","canClearSelectionOnMouseUp","updateConnectionsOnMouseMove","MouseHandlerDefaultStateBase","inSelection","resetConnectionPoints","onMouseDownCore","startScrolling","MouseHandlerMoveConnectorTextState","MouseHandlerResizeShapeState","MouseHandlerDragParameterPointState","MouseHandlerMoveConnectorPointState","MouseHandlerMoveConnectorSideState","MouseHandlerMoveConnectorOrthogonalSideState","onDragDiagramItemOnMouseDown","MouseHandlerMoveShapeState","MouseHandlerMoveConnectorState","MouseHandlerBeforeToolboxDraggingState","onMouseMoveCore","updateConnections","hasDiagramItem","onShapeExpandBtnMouseDown","replaceSelection","startLimit","processOnMouseMoveAfterLimit","startZooming","startSelection","onMouseUpCore","MouseHandlerZoomOnWheelState","replaceMultipleSelection","MouseHandlerSelectionState","MouseHandlerScrollingState","MouseHandlerZoomOnPinchState","MouseHandlerToggleShapeExpandedState","MouseHandlerStateBase","MouseHandlerDragDiagramItemStateBase","DraggingConnector","startPoints","startRenderContext","tryCreateRenderPointsContext","startScrollLeft","startScrollTop","resetExtensionLines","resetContainerTarget","resetConnectionTarget","shouldClone","initDrag","lockInitDrag","mouseMoveEvent","canApplyChangesOnMouseMove","copySelection","onAfterApplyChanges","updateContainers","setExtensionLines","findContainerByEventKey","allowInsertToContainer","setContainerTarget","calculateFixedPosition","dragHelper","setConnectionTarget","setConnectionPoints","insertSelectionToContainer","removeSelectionFromContainer","getDraggingElementKeys","draggingShapes","draggingConnectors","fixedX","fixedY","areValidDraggingShapes","areValidDraggingConnectors","canInsertSelectionToContainer","MouseHandlerDraggingState","parameterPointKey","startParameters","modifyParameters","ChangeShapeParametersHistoryItem","dragStartLimit","mouseDownPoint","performMouseMoveEvent","MouseHandlerCancellableState","canCreatePoints","saveSidePoints","iterateRenderPoints","leftPointIndex","leftRenderPointIndex","arePointsOfOrthogonalLine","rightPointIndex","rightRenderPointIndex","shouldCreatePoint","correctEdgePoint","addConnectorPoint","moveConnectorRightAnglePoints","deleteConnectorUnnecessaryPoints","fixConnectorBeginEndConnectionIndex","getConnectionPointSideByIndex","allowAttachToObjects","getExtremeItem","getExtremeConnectionPointIndex","oppositeConnectionPointIndex","oppositePointPosition","getOppositePointPosition","oppositeItem","updateOppositeItemConnectionPointIndex","setConnectionPointIndex","moveConnectorPoint","findItemContainerCore","canMoveConnector","draggingConnectorsIndexByKey","savedText","getTextPositionByPoint","ChangeConnectorTextPositionHistoryItem","resetResizeInfo","resizeEventSource","lockH","lockV","sideH","sideV","connectors","startRectangle","startShapeSizes","startShapePositions","startConnectorPoints","ShapeMinDimension","allowResizeHorizontally","getNormalizedSize","allowResizeVertically","setResizeInfo","getSnappedPosition","lastOffset","getPointByEvent","resetSelectionRectangle","setSelectionRectangle","selectRect","ToggleShapeExpandedHistoryItem","updateContainerConnectorsAttachedPoints","updateSelection","MouseHandlerToolboxDraggingState","isModelEmpty","tryRemoveTimer","dragging","switchToDraggingState","nonPageAreaTimer","savedEvt","updatePageSizeTimer","processAndRemoveUpdatePageSizeTimer","tryRemoveUpdatePageSizeTimer","onCaptured","deleteHistoryItem","detachConnectors","DeleteShapeHistoryItem","insertToolboxItem","undoTransactionTo","startShapePosition","updateMovingShapeConnections","connectorsWithoutBeginItemInfo","connectorsWithoutEndItemInfo","getConnectorsWithoutBeginItemInfo","getConnectorsWithoutEndItemInfo","onFinishDragging","canInsertToContainer","getTouchDistance","startZoomLevel","prevDistance","getMiddleLayoutPoint","getMiddleAbsPoint","getMiddlePointByEvent","trySwitchToDefault","getNextStepZoom","resetScroll","startTextInput","textInputItem","textEditRectangle","canChangeShapeText","textInputPosition","canChangeConnectorText","getTextPoint","endTextInput","applyTextInput","getTextInputElementValue","canApplyShapeTextChange","canApplyConnectorTextChange","cancelTextInput","processDblClick","ConnectionPointsVisualizer","ConnectionPointInfo","dispatcher","outsideRectangle","raiseShow","setPointIndex","raiseHide","ConnectionTargetVisualizer","ConnectionTargetInfo","targetStrokeWidth","TargetVisualizerBase","ContainerTargetVisualizer","ContainerTargetInfo","ExtensionLinesVisualizer","ExtensionLine","ExtensionLineType","LeftToLeftAbove","LeftToLeftBelow","RightToRightAbove","RightToRightBelow","LeftToRightAbove","LeftToRightBelow","RightToLeftAbove","RightToLeftBelow","TopToTopBefore","TopToTopAfter","BottomToBottomBefore","BottomToBottomAfter","TopToBottomBefore","TopToBottomAfter","BottomToTopBefore","BottomToTopAfter","HorizontalCenterAbove","HorizontalCenterBelow","VerticalCenterBefore","VerticalCenterAfter","VerticalCenterToPageCenter","HorizontalCenterToPageCenter","LeftToPageCenter","RightToPageCenter","TopToPageCenter","BottomToPageCenter","lineIndexByType","addSegment","ResizeInfoVisualizer","SelectionRectVisualizer","setRectangle","setTargetRect","connectionPointsVisualizer","connectionTargetVisualizer","containerTargetVisualizer","extensionLinesVisualizer","resizeInfoVisualizer","selectionRectangleVisualizer","getConnectionPoints","getConnectionPointSide","enableChildren","addPageExtensionLines","addShapeExtensionLines","pageWidth","pageHeight","CanvasSelectionManager","extensionLineWidth","extensionLineOffset","resizeInfoOffset","hideConnections","showConnections","needShowConnections","SetConnectionPointIndexHistoryItem","addConnection","deleteConnection","HistoryItem","oldConnectionPointIndex","renderPointsContext","replaceRenderPoints","addConnector","AddConnectorPointHistoryItem","renderContext","addDeleteConnectorPoint","addPoint","onAddPoint","deletePoint","shapeDescription","ChangeConnectorPointsHistoryItem","UpdateConnectorPointsHistoryItem","oldRenderContext","updateRenderPoints","newRenderContext","clearRenderPoints","oldParameters","changeShapeParameters","ChangeShapeTypeHistoryItem","updateShapeType","ShapeParameters","insertConnector","removeConnector","insertShape","removeShape","InsertToContainerHistoryItem","MoveConnectorRightAnglePointsHistoryItem","MoveConnectorPointHistoryItem","movePoint","onMovePoint","beginPointIndex","onMovePoints","MoveShapeHistoryItem","RemoveFromContainerHistoryItem","findContainer","forceChange","diagram","historyItems","incrementalId","transactionLevel","unmodifiedIndex","currTransactionId","changeModified","startDataSyncItem","transaction","CompositionHistoryItem","addDataSyncItem","addInternal","deleteOldItems","dataSyncItems","MAX_HISTORY_ITEM_COUNT","getNextId","resetModified","getCurrentItemId","uniqueId","changePageColor","changePageLandscape","changePageSize","oldUnits","ModelResizeHistoryItem","backOffset","changeModelSize","UpdatePositionsOnPageResizeHistoryItem","applyOffset","updatePointsOnPageResize","changeConnectorProperty","oldText","changeConnectorTextPosition","oldCustomData","changeCustomData","oldLocked","changeLocked","oldImage","changeShapeImage","ImageInfo","oldZIndex","changeZIndex","changeShapeExpanded","oldStyleValue","styleProperty","changeStyle","ChangeStyleHistoryItemBase","changeStyleText","CacheImageInfo","_base64","_referenceInfo","referenceInfo","finalizeLoading","emptyImageId","lastActualId","nonLoadedImages","createUnloadedInfoByBase64","transparentOnePixelImage","createUnloadedInfoByUrl","findInfoByUrl","registerImageData","getNextActualId","findInfoByBase64","createUnloadedInfoByShapeImageInfo","raiseReadyStateChanged","loadAllImages","findInfoCore","loadFailed","transparentWhiteImage1_1","loadBase64Content","setUnableToLoadFlag","ImageLoader","loadedCallback","loadInner","loadPictureByUrl","loadPictureByBase64","BPMNNode","ImportUtils","Graph","onDefinitionsElement","onProcessElement","onStartEventElement","onSequenceFlowElement","onScriptTaskElement","onUserTaskElement","onServiceTaskElement","onSendTaskElement","onExclusiveGateway","onEndEventGateway","createEdge","exportItemsCore","exportShape","exportConnector","beginItemKey","endItemKey","exportItem","expandedSize","expandedWidth","expandedHeight","exportSvgImage","exportPngImage","exportJpgImage","parseJSON","getObject","getPageObject","getShapeObjects","getConnectorObjects","importPageSettings","assert","importShape","fromObject","normalizeParameters","importShapeChildren","importConnector","ConnectorRenderPointsContext","ImporterBase","importShapes","importConnectors","updateChildren","getNextKey","findConnectorByBeginEndDataKeys","getShapeType","getItemKey","importStyle","clientRectangle","shapeTypes","getNumbers","LayoutBuilder","getBreadthNodeSizeCore","getDepthNodeSizeCore","chooseDirectionValue","Forward","getDirectionValue","getComponentOffset","componentSpacing","setComponentOffset","offsetNodes","EdgeOnLayer","NodeOnLayer","SugiyamaNodesOrderer","SugiyamaLayerDistributor","GraphLayout","getConnectedComponents","CycleRemover","removeCycles","orderNodes","removedEdges","getEdge","assignAbsCoordinates","createInfoGraphLayout","reversedEdges","HashSet","getAbsOffsetInfo","MIN_SAFE_INTEGER","getDepthNodeSize","getAbsPosition","getBreadthNodeSize","setBreadth","setDepthOffset","isDummy","layerSpacing","createNodesLayout","createEdgesLayout","NodeLayout","getDirectEdgeLayout","getDiffLevelEdgeLayout","getSameLevelEdgeLayout","originFrom","EdgeLayout","columnSpacing","getFeasibleTree","calcNodesLayers","initLayerAssignment","getSpanningGraph","ConnectionMode","OutgoingAndIncoming","getAdjacentEdges","Incoming","Outgoing","createIterator","visitEachEdgeOnce","onNode","skipNode","skipEdge","onEdge","iterate","idCounter","initGraphInfo","initOrder","getNodeToPositionMap","getCrossCount","getNodesOrder","getParents","getNodePosition","sortNodes","createDummyID","FastGraph","getAbsCoodinate","TopLeft","TopRight","BottomLeft","BottomRight","getPositionByMedian","getMedians","resolveMedianConflicts","getSortedBlocks","getBlock","checkMedianConfict","getActualAdjacentEdges","getMedianPosition","getHashCode","_originFrom","nodeToLevel","levelDepthSize","createSpanningTree","processTree","nodeKeys","edgeToPosition","preProcessTree","getMaxDepthSize","loadNodes","hasNode","processLevel","setDepthPos","getDepthPos","addNodes","fromLength","updateEdgeConnections","getBreadthPos","alignParent","getBeginEdgeIndex","getEndEdgeIndex","Alignment","Center","GraphIterator","nodeMap","edgeMap","onInit","cast","comparer","getHashKey","addNodeToSpanningGraph","tryPush","parentToChildren","childToParents","connectionMode","visitEachNodeOnce","visitedNodes","visitedEdges","iterateCore","isNodeVisited","onAfterEdge","onAllEdges","isEdgeVisited","GraphInfo","sourceGraph","_graph","getNodeInfoGraph","_level","getLevel","LayoutUtils","shapeToLayout","getContainerLevel","copyEdges","beginIndex","containerPadding","subTreeColumnSpacing","Margin","NodeInfo","PositionInfo","childToParent","findRoot","candidate","getFeedbackSet","reverseEdges","getNonTrivialStronglyConnectedComponents","getMaxCyclicEdges","getStronglyConnectedComponents","getStronglyConnectedComponent","ModelOperationSettings","_addShape","_addShapeFromToolbox","_deleteShape","_deleteConnector","_changeConnection","_changeConnectorPoints","_changeShapeText","_changeConnectorText","_resizeShape","_moveShape","ConnectionPoint","ConnectorPointsCalculator","ConnectorRenderPoint","ConnectorPointsCalculatorBase","ConnectorPointsOrthogonalCalculator","sideCalculators","ConnectorPointsOrthogonalUndefinedSideCalculator","ConnectorPointsOrthogonalSouthSideCalculator","ConnectorPointsOrthogonalNorthSideCalculator","ConnectorPointsOrthogonalEastSideCalculator","ConnectorPointsOrthogonalWestSideCalculator","skipUnnecessaryRenderPoints","getPointSide","getSideCalculator","getCorrectOriginPoint","beginRect","isOnSidePoint","isDirectConnectionAllowed","getDirectConnectionPoints","getBeginOffsetPoints","getEndOffsetPoints","endRect","addMiddlePoints","getMiddlePoint","getMiddlePoints","createPointsRect","isReturnPoint","isIntermediatePoints","isPriorMiddlePoint","getSameShapeOffsetPoints","getMinOffset","getAsideOffsetPoints","getOverlappedPointsOffsetPoints","getBeginOverlappedShapeOffsetPoints","getEndOverlappedShapeOffsetPoints","getBeginOnSideOffsetPoints","getScaleableOffsetX","getEndOnSideOffsetPoints","getBeginOffSideOffsetPoints","isBeginEndOverlappedY","getScaleableAsideOffsetPoints","getEndOffSideOffsetPoints","getScaleableOffsetY","ConnectorPointsOrthogonalSideCalculatorBase","isBeginEndOverlappedX","isBeginEndSame","isBeginEndOverlappedPoints","isBeginEndOverlapped","isOriginRectContainsTargetPoint","getSide","ConnectorProperties","ConnectorTexts","createRectagle","renderPoints","skipped","routingStrategy","renderPointsWithoutSkipped","actualRoutingMode","lockCreateRenderPoints","shouldInvalidateRenderPoints","getPathPointByPosition","getPathLength","getPathPositionByPoint","getTextRectangle","changeRoutingStrategy","invalidateRenderPoints","clearRoutingStrategy","getCustomRenderPoints","changeRenderPoints","getCalculator","createRenderPoints","getConnectorContainer","AllShapesOnly","shouldChangeRenderPoints","replaceRenderPointsCore","onDeletePoint","createPrimitives","PathPrimitive","PathPrimitiveMoveToCommand","PathPrimitiveLineToCommand","createLineEndingPrimitives","createTextPrimitives","createLineEndingStrategy","hasCommands","needCreateSeparatePrimitive","createPrimitive","createCommands","ConnectorLineEndingNoneStrategy","ConnectorLineEndingArrowStrategy","ConnectorLineEndingOutlinedTriangleStrategy","ConnectorLineEndingFilledTriangleStrategy","ConnectorLineEndingStrategy","createSelectorPrimitives","TextPrimitive","PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX","setElementEventData","getSegments","intersectedByRect","minTextHeight","DiagramItem","getCssClass","resetStrokeDashArray","isDefaultStrokeDashArray","getArrowPoints","point3","arrowHeight","PathPrimitiveClosePathCommand","DEFAULT_CONNECTOR_ENDLINEENDING","DEFAULT_CONNECTOR_STARTLINEENDING","DEFAULT_CONNECTOR_LINEOPTION","AStarCalculator","shouldStartContinue","startContinue","finishWithPath","shouldFinish","endContinue","finishWithoutPath","AStarContext","AStarContextBase","maxStepsCount","prohibitedPoints","updatableSet","stepsCount","generalSet","SortedQueues","UniqueAStarNodePositions","AStarNode","enqueue","openNode","dequeueMin","addProhibitedPoint","getPenalty","penalty","getPath","routingContext","prohibitedSegments","metrics","allowPoint","getTurnDirection","createAngle","getIntersectedItems","RightAngleConnectorRoutingMathOperations","shapeMargins","hasIntersectedItem","isIntersectedWithExtendedRectangle","hasOneShapeConnection","itemContainsConnectionPoints","beginPoint","isConnectionPoint","IntersectedShapeZone","AStarMetrics","IntersectedShapesMetrics","TurnDirectionMetrics","IntersectedShapeMetrics","RightAngleTurnDirection","Backwards","shapeMargin","createRelativeMarginPenalty","isTopPosition","isLeftPosition","isBottomPosition","isRightPosition","turnBack","turnLeft","turnRight","shapeMetrics","turnDirectionMetrics","shapesMetrics","_itemsArrays","_sortedKeys","getQueue","addSortedKey","removeCore","removeSortedKey","sortedKeys","ConnectorProhibitedSegments","exludedPoints","addExludedPoint","ConnectorRenderSegment","startInfo","endInfo","previousCustomSegment","createGridPoints","createProhibitedSegments","createProhibitedSegmentsCore","ConnectorRoutingPenaltyDescription","shouldReverseConnections","shouldResizeConnections","penaltyDescription","RightAngleConnectorRoutingStrategy","getShapes","notifyConnectorRoutingModeChanged","getConnectorShapes","RoutingGrid","verticalGridLines","horizontalGridLines","addLine","isValidArrayIndex","RightAngleConnectorRoutingContext","IntersectingItemsByPointsContext","CuttingItemsContext","cuttingItemKeys","registerShape","areSegmentsCutRectangle","getOrAddItems","supportRenderPoints","beginConnectionShape","endConnectionShape","beginConnectionSide","getConnectionSide","endConnectionSide","ignorableItemKeys","cuttingShapesContext","intersectedItemsByPointsContext","isInvalidRenderSegments","isSmallPath","hasIntersecting","isReversedStartConnection","isReversedEndConnection","beginConnectionSegment","endConnectionSegment","isReversedConnectionSegment","supportSegments","beginPathPoint","endPathPoint","processContainers","processSupportSegments","processIntersection","processConnections","processRenderSegments","processRoutingGrid","processRoutingMetrics","createRoutedPoints","createAStarContext","addConnectionRoutedPoints","unionPoints","isIgnorableItem","validateRenderPoints","validateRenderPointIndexes","skipUnnecessaryRightAngleRenderPoints","registerIgnorableShape","createSupportSegments","isConnectedByStart","isConnectedByEnd","shapeContainsOtherConnection","createBeginConnectionSegment","createEndConnectionSegment","renderSegments","createRenderSegments","routingGrid","createGrid","createAStarMetrics","isCustomSegment","createUnionSegments","shouldCreateSegment","createPreviousCustomSegment","isPathNormal","isSegmentNormal","createBeginConnectionSegmentCore","hasIntersectedItemsByPoint","isEndConnectionRectanleLineIntersected","createEndConnectionSegmentCore","isBeginConnectionRectanleLineIntersected","isConnectionRectanleLineIntersected","createExtendedShapesBounds","isCorner","isLineIntersected","shouldCreateRenderPoints","createRenderPointsCore","findFirstPointIndex","getRenderPointIndexByPointIndex","onMovePointCore","registerCustomPoints","registerRenderPoints","registerPoint","DEFAULT_ZINDEX","getConnectionPoint","getNearestConnectionPoint","getConnectionPointIndex","registerConnector","containsDraggingConnectorByKey","modelConnectorsWithoutBeginItemInfo","createModelConnectorsWithoutBeginItemInfo","modelConnectorsWithoutEndItemInfo","createModelConnectorsWithoutEndItemInfo","moveConnectorCore","moveConnector","offsetConnector","changeConnector","offsetRenderContext","tryRemoveConnectorIntermediatePoints","findConnectorsCore","itemIndexByKey","keyCounter","snapStartPoint","cacheShapeImage","updateIndicesHash","findShapesCore","findShapeCore","findShapesByImageUrl","findShapesByDescription","findChild","findItemCollapsedContainer","findItemTopCollapsedContainer","isContainerItem","findConnectorCore","arePointsEqual","findConnectorsWithoutBeginItem","findConnectorsWithoutEndItem","findItemCore","isIntersectedItems","ItemChange","ItemChangeType","Create","UpdateProperties","UpdateStructure","Update","Remove","UpdateClassName","initializeCore","descriptionManager","imageLoader","updateShapeImage","updateModelSize","raisePageSizeChanged","raiseModelSizeChanged","raisePageColorChanged","raiseModelRectangleChanged","commitItemsChangesCore","raiseModelChanged","changeStyleCore","getInteractingItem","canResizeShapes","canMoveShapes","toggleExpandedSize","createParameters","getConnectorInteractingPoints","addDeleteConnectorPointCore","moveConnectorPointCore","canChangeConnectorPoints","raiseSnapPointChange","getModelSizeUpdateOffset","createModelRectangleOffset","notifyModelChanged","notifyPageColorChanged","notifyPageSizeChanged","notifyModelSizeChanged","notifyModelRectangleChanged","notifySnapPointPositionChanged","deleteConnectorCustomPoints","createUnnecessaryRenderPoints","skippedRenderPoints","createNecessaryPoints","createUnnecessaryRightAngleRenderPoints","removeUnnecessaryPoints","removeUnnecessaryPoint","removeUnnecessaryRightAnglePoints","collectNotSkippedRenderPoints","collectSkippedRenderPoints","isNecessaryPoint","areDuplicatedPoints","updateConnectorBeginPoint","getConnectionPointIndexForItem","updateConnectorEndPoint","getMovingShapeConnectionPointIndex","connectionPointActionSize","shouldRemoveConnectorIntermediatePoints","isShapeIntersectConnectorCustomPoints","areIntersectedSegments","createSegmentsFromRectangle","deleteItemsCore","updateAttachedConnectorsContainer","copyStylesToItem","cloneShapeToOffset","applyOffsetToConnectorRenderPointsContext","cloneConnectorToOffset","getDefaultStyle","getDefaultStylePropertyValue","getDefaultTextStyle","getDefaultTextStylePropertyValue","getDefaultConnectorProperties","getDefaultConnectorPropertyValue","getOccupiedRectangles","offsetLayoutToFreeSpace","adjustLayoutToSnapGrid","resizeContainerOnLayout","applyLayoutToNodes","applyLayoutToConnectors","findFreeSpace","applyLayoutToNode","getGraphByItems","extendByConnectedComponents","createSelectedItems","updateConnectionIndexByNewShapeType","findNearestPointIndex","AddShapeEventArgs","AddShapeRequestedEntity","settingsKey","RequestedEntity","PermissionRequestEventArgs","AddShapeFromToolboxEventArgs","AddShapeFromToolboxRequestedEntity","BeforeChangeConnectorTextEventArgs","BeforeChangeConnectorTextRequestedEntity","BeforeChangeShapeTextEventArgs","BeforeChangeShapeTextRequestedEntity","ChangeConnectionEventArgs","ChangeConnectionRequestedEntity","ChangeConnectorPointsEventArgs","ChangeConnectorPointsRequestedEntity","ChangeConnectorTextEventArgs","ChangeConnectorTextRequestedEntity","ChangeShapeTextEventArgs","ChangeShapeTextRequestedEntity","DeleteConnectorEventArgs","DeleteConnectorRequestedEntity","DeleteShapeEventArgs","DeleteShapeRequestedEntity","MoveShapeEventArgs","MoveShapeRequestedEntity","_eventArgs","ResizeShapeEventArgs","ResizeShapeRequestedEntity","permissionsLockCount","requestDeleteItems","updateUICount","PermissionsProviderStorage","requestOperation","requestOperationCore","needStorePermissions","storePermission","getInteractingItemCount","interactingItems","storedPermissions","getInteractingItemKey","storePermissions","ContainerDescription","CONTAINER_EXPAND_BUTTON_SIGN_RATIO","CONTAINER_EXPAND_BUTTON_RECT_RATIO","CONTAINER_HEADER_TOOLBOX_SIZE_RATIO","CONTAINER_HEADER_SIZE","ShapeDefaultDimension","getDefaultText","createConnectionPoints","createShapePrimitives","RectanglePrimitive","createHeaderPrimitives","createExpandButtonPrimitives","GroupPrimitive","ShapeDescription","HorizontalContainerDescription","getExpandedSize","getCollapsedSize","getHeaderSize","getClientRectangle","getTextEditRectangle","getTextAngle","TextAngle","Angle270deg","VerticalContainerDescription","CustomShapeDescription","baseDescription","updateSvgImage","getDefaultImageUrl","svgImage","svgToolboxImage","getConnectionPointSides","getConnectionPointSideByGeometry","createImagePrimitives","ImagePrimitive","SvgElementPrimitive","getParameterPoints","getImageSize","ShapeWithImageDescription","getImagePlacementRectangle","raiseShapeDescriptionChanged","ConnectorShapeDescription","EllipseShapeDescription","DataShapeDescription","slopeAngle","processConnectionPoint","ShapeTextPadding","RectangleShapeDescription","DatabaseShapeDescription","arcWidthRatio","PathPrimitiveArcToCommand","EllipsePrimitive","DecisionShapeDescription","DiamondShapeDescription","DelayShapeDescription","getMaxRectangleEnscribedInEllipse","getEllipseByEnscribedRectangle","DisplayShapeDescription","DocumentShapeDescription","createDocumentPrimitives","curveOffsetRatio","PathPrimitiveQuadraticCurveToCommand","HardDiskShapeDescription","InternalStorageShapeDescription","InternalStorageVerticalEdgeParameterName","InternalStorageHorizontalEdgeParameterName","addRangeIfNotExists","ShapeParameter","changeParameterValue","minEdge","ShapeParameterPoint","normalizeX","normalizeY","ManualInputShapeDescription","slopeHeightRatio","ManualOperationShapeDescription","MergeShapeDescription","calculateHeight","TriangleShapeDescription","MultipleDocumentsShapeDescription","documentsOffsetRatioForToolbox","documentsOffsetRatio","generateSvgElementId","ClipPathPrimitive","OrShapeDescription","PaperTapeShapeDescription","PredefinedProcessShapeDescription","PredefinedProcessEdgeParameterName","addIfNotExists","PreparationShapeDescription","HexagonShapeDescription","ProcessShapeDescription","StoredDataShapeDescription","SummingJunctionShapeDescription","TerminatorShapeDescription","curveWidthRatio","ArrowDownShapeDescription","ArrowVerticalLineWidthParameterName","ArrowVerticalTriangleHeightParameterName","ArrowVerticalShapeDescription","ArrowHorizontalShapeDescription","ArrowVerticalLineHeightParameterName","ArrowVerticalTriangleWidthParameterName","ArrowLeftRightShapeDescription","ArrowLeftShapeDescription","ArrowRightShapeDescription","ArrowUpDownShapeDescription","ArrowUpShapeDescription","CrossShapeDescription","CrossVerticalWidthParameterName","CrossHorizontalWidthParameterName","ShapeDefaultSize","HeartShapeDescription","PathPrimitiveCubicCurveToCommand","PolygonShapeDescription","OctagonShapeDescription","PentagonShapeDescription","defaultRatio","angleCount","StarShapeDescription","StarConvexParameterName","getActualBottom","getInnerPointDistance","getInnerPointPos","getInnerPointDistanceByAxis","TextShapeDescription","textClipPathId","getTextClipPathId","getSizeByTextRectangle","CardBaseDescription","RoundedRectanglePrimitive","createImagePlaceholder","SHAPE_IMAGE_CLASSNAMES","IMAGE_PLACEHOLDER","createEmptyImagePrimitive","ShapeImageIndicator","createUserIconPrimitives","USER_PIC","createWarningPrimitive","createWarningIconPrimitives","WARNING_MARK","isTextAfterImage","getImageSizeByTextBlockSize","createGraphicalTextRepresentation","createTextRepresentationPrimitives","getImageMargin","CardWithImageOnRightDescription","CardWithImageOnLeftDescription","getToolboxHeightToWidthRatio","CardWithImageOnTopDescription","hasDefaultText","textSpacing","Angle0deg","descriptionTypes","descriptionCategories","ShapeCategories","General","Flowchart","OrgChart","Containers","defaultContainerInstance","getTypesByCategory","getCategoryByType","Custom","IMAGE","LOADING_INDICATOR","unableToLoad","createEmptyImagePrimitives","renderUrl","createLoadingImagePrimitives","createLoadedImagePrimitives","imageScalingRule","getIconPlacementRectangle","createLoadingIndicatorPrimitives","toolboxSize","ShapeType","ellipse","triangle","diamond","heart","pentagon","hexagon","octagon","star","arrowLeft","arrowTop","arrowRight","arrowBottom","arrowNorthSouth","arrowEastWest","decision","terminator","predefinedProcess","multipleDocuments","manualInput","preparation","hardDisk","internalStorage","paperTape","manualOperation","storedData","summingJunction","verticalContainer","horizontalContainer","cardWithImageOnLeft","cardWithImageOnTop","cardWithImageOnRight","EmptyStyle","TextAlignment","DEFAULT_STROKE_DASHARRAY","DEFAULT_STROKE_WIDTH","StyleBase","createDefaultProperties","strokeWidthPx","toHash","getAlignment","_strokeWidthPx","_strokeOffset","default1pxInstance","default1pxNegativeOffsetInstance","default2pxInstance","_dataKeys","_layoutParameters","AutoScrollController","leftButtonPressed","scrollDragging","scrollTimer","clearScrollTimer","canAutoScroll","changeScrollPosition","onDragScrollStart","onDragScrollEnd","isAutoScrollLocked","changeByFunc","getScrollingOffset","createMainElement","svgNS","baseVal","__awaiter","__generator","sent","trys","getSvgImage","updateSvgElementSize","createTextFloodFilter","getExportCssRules","inlineStyle","getSvgImageUrl","getSvgBase64String","getSvgString","XMLSerializer","serializeToString","base64Start","getBase64EncodeUnicode","styleSheets","isCSSStyleRule","selectorText","checkSelector","exportStyleRules","isCSSStyleSheet","cssRules","exportStyleAttributes","exportBinaryImage","canvg","exportBinaryImageCanvgAsync","exportBinaryImageCanvgOld","drawSvg","renderCallback","Canvg","CanvasManagerBase","CONNECTOR_CAN_MOVE","NOT_VALID_CSSCLASS","itemSelectorGroupContainers","itemSelectorElements","itemGroupContainers","itemChildElements","primitives","selectorPrimitives","initializeContainerElements","itemSelectorsContainer","createAndChangePrimitiveElement","removeContent","applyChange","getItemParent","applyShapeChange","applyConnectorChange","setPointerEventsNone","notifyActualZoomChanged","actualZoom","notifyViewAdjusted","invalidatePrimitives","getPrimitives","getSelectorPrimitives","getShapeSelectorClassName","getShapeClassName","getItemSelectorGroupContainer","getItemGroupContainer","createItemElements","changeItemChildrenVisibility","removeItemCustomContent","removeItemElements","changeItemElements","changeItemClassName","moveItemElements","getConnectorSelectorClassName","getConnectorClassName","createAndChangePrimitivesElements","changeChildrenByPrimitives","changePrimitiveElement","destroyCustomContent","getItemGroupContainerKey","getItemSelectorParent","populateItems","applyOrPostponeChanges","CanvasManager","pendingChanges","pendingRemoveChanges","updatesLock","applyPendingChanges","getPendingChanges","getPendingRemoveChanges","applyChangesCore","postponeChanges","createPrimitiveElement","changeByPrimitive","getOrCreateElement","TextFloodFilterPrimitive","CanvasPageManager","snapPoint","gridPatternId","pagesGridPatternId","pagesGridClipId","canvasViewOffset","initContainers","backgroundContainer","redraw","redrawPage","redrawGrid","updateGridElements","updatePagesGridElements","getGridRectElement","gridRectElement","getGridPatternElement","gridPatternElement","getUrlPathById","PatternPrimitive","createGridPathPrimitive","createGridPatternPrimitivePosition","getPagesGridRectElement","getPagesGridClipPathElement","pagesGridClipPathElement","getPagesGridPatternElement","pagesGridPatternElement","notifyGridChanged","ACTIVE_SELECTION_CSSCLASS","SELECTION_ELEMENT_CLASSNAMES","SELECTION_RECTANGLE","CONNECTION_POINT","ACTIVE","CONTAINER_TARGET","CONNECTION_TARGET","EXTENSION_LINE","CONNECTION_MARK","SELECTION_MARK","LOCKED_SELECTION_MARK","ITEMS_SELECTION_RECT","CONNECTOR_MULTI_SELECTION","CONNECTOR_SELECTION","CONNECTOR_POINT_MARK","CONNECTOR_SELECTION_MASK","CONNECTOR_SIDE_MARK","ITEM_SELECTION_RECT","ITEM_MULTI_SELECTION","connectionPointElements","extensionLineElements","selectionMap","parentContainer","itemSelectionContainer","visualizersContainer","selectionMarksContainer","selectionRectElement","resizeInfoElement","connectionTargetElement","containerTargetElement","showSelectionRect","getSelectionRectElement","hideSelectionRect","showResizeInfo","Resize","getResizeInfoElement","measureTextLine","resizeInfoTextOffset","hideResizeInfo","getConnectionPointClassName","showConnectionPoint","showConnectionPointCore","connectionPointLargeSize","connectionPointSmallSize","getConnectionPointElement","hideConnectionPoints","showContainerTarget","getContainerTargetElement","hideContainerTarget","showConnectionTarget","getConnectionTargetElement","hideConnectionTarget","showExtensionLine","extensionLineEndingSize","getExtensionLineElement","hideExtensionLines","getOrCreateShapeSelection","getOrCreateConnectorSelection","getOrCreateMultipleSelection","getMultipleSelection","updateShapeSelection","onModelItemChanged","updateConnectorSelection","hideOutdatedSelection","selectionCanBeDrawn","notifyZoomChanged","connectionPointShift","correctSelectionRect","connectionTargetBorderWidth","selectionOffset","evenOddSelectionCorrection","selectionMarkSize","lockedSelectionMarkSize","selectionRectLineWidth","multiSelectionRectLineWidth","geomertyMarkSize","connectorPointMarkSize","connectorSideMarkSize","resizeInfoLineWidth","rectsContainer","marksContainer","updatedElements","redrawCore","drawSelectionMarks","drawSelectionMark","drawSelectionRect","isMultipleSelection","isLockedRender","drawLockedSelectionMark","rectangles","needDrawSelectionMarks","shapeParameterPoints","drawLockedSelection","drawUnlockedSelection","drawShapeParameterPoints","drawShapeParameterPoint","drawConnectorSelection","drawConnectorSelectionMarks","populateSelectionPrimitiveCommands","createNotSkippedRenderPoints","getSelectionOffset","getSelectionOffsetPoint","getConnectorSelectionTextSize","getSelectionTextStartEndPoints","addSelectedLinesTo","drawConnectorSideMarks","canDrawConnectorSideMark","CanvasViewManager","CROP_OFFSET","CANVAS_SCROLL_PADDING","CANVAS_MIN_PADDING","crop","lockAutoZoom","autoScrollLocker","pageClipPathId","pageShadowId","fixedZoomLevel","rectangleToCrop","updateElements","ShadowFilterPrimitive","adjustCore","tryNormalizePaddings","adjustAfterDragEnd","autoZoomLocked","notifyScrollChanged","checkFitToCanvas","getActualModelSizeWithoutZoom","checkScrollBars","correctCrop","setActualZoom","getActualAutoZoom","getActualZoom","getTailSpace","changeScrollByOffset","changeTranslateByOffset","cropHiddenHead","getScrollDeltaByOffset","getTranslateDeltaByOffset","setScrollTo","getVisibileAreaAbsShift","updatePageElement","updateCanvasElement","canvasElement","updatePageElementCore","createPageShadow","pageElement","createPageClipPathPrimitive","resizeView","setSvgSize","lockAutoScroll","unlockAutoScroll","getActualOffset","lastHeight","getModelPoint","getAbsolutePoint","DOMManipulator","doChange","rafId","requestAnimation","doChangeSync","applyElementProperties","rafRequested","InputManager","layoutPointResolver","textMeasurer","focusElementsParent","focusLocked","createInputElements","detachInputElementEvents","detachTextInputElementEvents","textInputElement","HtmlFocusUtils","focusWithPreventScroll","clipboardInputElement","execCommand","readText","createFocusInputElement","createTextInputElement","createClipboardInputElement","attachInputElementEvents","setInputElementFocusHandlerMode","textInputElementContainer","setInputElementTextInputMode","setTextInputElementBounds","setTextInputElementStyle","updateTextInputPadding","savedTextInputPosition","savedTextInputSize","savedTextInputAngle","savedTextInputStyle","applyStyleToElement","onInputBlurHandler","onInputBlur","onInputFocusHandler","onInputFocus","onInputKeyDownHandler","onInputKeyDown","onInputKeyPressHandler","onInputKeyPress","onInputKeyUpHandler","onInputKeyUp","onPasteHandler","attachTextInputElementEvents","onTextInputBlurHandler","onTextInputFocusHandler","onTextInputKeyDownHandler","onTextInputMouseWheelHandler","onTextInputMouseWheel","onTextInputMouseUpHandler","onTextInputMouseUp","onTextInputKeyUpHandler","onTextInputKeyUp","onTextInputChangeHandler","blurControl","focusControl","measureWords","getTextHeight","getLineHeight","textToParagraphs","getDiagramFocusEvent","getDiagramKeyboardEvent","getDiagramClipboardEvent","isTextInputElement","lockFocus","textAngle","fontSizeCache","createNodes","splitToWords","getStyleHash","tryLoadWordsToMeasurer","putElementsInDOM","beforeMeasureInDOM","measureElementsInDOM","afterMeasureInDOM","getTextLineSize","onNewModelCore","tryLoadShapeTexts","tryLoadConnectorTexts","hashes","styleHashes","tryLoadWordToMeasurer","newWords","getDomElementSize","getDomFontSize","getHash","textToWords","createContainer","SvgPrimitive","setUnitAttribute","setPositionCorrectionAttribute","FilterPrimitive","onBeforeDispose","PathPrimitiveCommand","PrimitiveObject","getUnitVaue","x3","xAxisRotation","sweepFag","clipPathId","onApplyProperties","createChildElements","createCustomContent","applyElementStyleProperties","applyChildrenProperties","applyElementStylePropertiesCore","strokeOffset","createContent","destroyContent","TextFilterPrimitive","floodColor","prepareFEFloodNode","TextPrimitive270degRenderHelper","TextPrimitive180degRenderHelper","TextPrimitive90degRenderHelper","TextPrimitiveRenderHelper","Angle90deg","Angle180deg","reverseTextAhchor","filterId","textSegmens","renderHelper","createRenderHelper","getTextX","getTextY","fitToSize","createTSpanElements","prepareTSpanElements","prepareMainElement","createTSpanElement","wordsByLines","prepareFirstTSpanElement","prepareTSpanElement","baselineCorrection","primitive","needRotation","LINE_HEIGHT","textAnchor","DBL_CLICK_TIMEOUT","LONG_TOUCH_TIMEOUT","moveLocked","lockMouseMoveTimer","lastClickElement","longTouchTimer","dblTouchTimer","NativeScrollView","killLockMouseMoveTimer","clearLastMouseDownEvent","attachPointerEvents","onPointerDownHandler","onPointerUpHandler","onPointerMoveHandler","onPointerCancelHandler","onPointerLeaveHandler","detachPointerEvents","attachMouseTouchEvents","mouseDownEventName","onMouseDownHandler","onMouseMoveHandler","mouseUpEventName","onMouseUpHandler","detachMouseTouchEvents","onPointerMove","onPointerCancel","onPointerLeave","onMouseEnterHandler","onMouseLeaveHandler","onMouseWheelHandler","onMouseDblClickHandler","onContextMenuHandler","onWindowResizelHandler","onWindowResize","onOrientationChangeHandler","onOrientationChange","onMouseClickHandler","isPointerEvents","setPointerPosition","clearPointerPosition","getPointerCount","isMousePointer","lockMouseMove","lastDownMouseEvent","createDiagramMouseEvent","processTouchDown","processTouchMove","processTouchUp","createActualMouseClickEvent","createDiagramMouseEventTouches","createDiagramContextMenuEvent","touchDownPoint","getTouchPointFromEvent","resetLongTouch","resetDblClick","touchPositionLimit","getPointers","createDiagramWheelEvent","getOffsetPointByEvent","getOffsetPointByEventPoint","isDiagramControl","isDocumentContainer","getElementEventData","onScrollHandler","getScroll","borderThickness","animationStarted","createLoadingIndicatorPrimitive","createUserIconPrimitive","createWarningIconPrimitive","animationRequestId","onApplyLoadingIndicatorElementProperties","IconToolbox","createElements","drawShapeIcons","shapeIconSize","createShape","updateShapeIconBounds","drawShape","drawSelector","needResetShapeText","createDraggingElement","Toolbox","TextToolbox","DiagramDraggingEvent","ToolboxDraggingObject","getAllowedShapeTypes","dragPrepareTimeout","dragState","emulateDragEvents","attachHandlers","detachHandlers","draggable","onElementMouseDownHandler","onElementMouseDown","onElementMouseUpHandler","onElementMouseUp","onDragStartHandler","onTouchMoveHandler","createDraggingObject","resetDragState","getDragShapeType","mouseDownShapeType","setDragState","Prepare","Start","Dragging","raiseDraggingMouseMove","updateDraggingElementPosition","SetAbsoluteX","SetAbsoluteY","dragPrepareEvent","prepareDragging","onDragPrepareTimeout","startDragging","doDragging","finishDragging","dragStartPoint","dragStartShapeType","captured","measurers","getHtmlElementStylePropertyName","getTextAnchorValue","getStrokeDasharrayValue","HTMLElement","InputPosition","InputPositionProperties","defaultProperties","currentProperties","getConnectorProperties","getConnectorPropertyValue","getTextStyle","getTextStylePropertyValue","baseProperties","disableMergingStyles","connectorProperties","textStyle","updateConnectorProperties","updateStyle","updatePropertyValue","ArrayEqual","getSelectedItemsInsideContainers","getSelectedItemsCore","_zoomLevelWasChanged","_zoomLevelItems","_simpleView","_fullscreen","_autoZoom","_snapToGrid","_showGrid","_contextMenuEnabled","_gridSizeItems","_pageSizeItems","_viewUnits","_connectorRoutingMode","_reloadInsertedItemRequired","_useCanvgForExportToImage","correctZoomLevel","_shapeMinWidth","_shapeMinHeight","_shapeMaxWidth","_shapeMaxHeight","ConnectorShapesOnly","updateBarItem","getDefaultItemValue","notifyBarUpdateRequested","LineEquation","aParam","bParam","cParam","getPointIntersection","listeners","hasEventListener","removeUnnecessaryPointsCore","removeBackwardPoints","removeNotRightAnglePoints","removeDuplicatedPoints","removeNotCornersPoints","getNextPoint","isRightAngleCorner","isBackwardPoint","getLineAngle","getTriangleBeginAngle","getTriangleEndAngle","getPathPointByPoint","fround","isDeepEqual","getHtmlScrollPosition","setHtmlScrollPosition","getDocumentScrollPosition","iframePos","setDocumentScrollPosition","ArrayInsert","ArrayRemove","ArrayIndexOf","ArrayRemoveAt","ArrayClear","ArrayContains","ArraySame","ArrayGetIntegerEdgeValues","CollectionToArray","ArrayIntegerAscendingSort","ArrayIntegerSort","CollectionsUnionToArray","CreateHashTableFromArray","CreateIndexHashTableFromArray","ArrayToHash","Sum","Min","CalculateArrayMinMax","Max","NearestLeftBinarySearchComparer","ArrayBinarySearch","defaultBinarySearchComparer","ArrayFlatten","GetDistinctArray","ForEach","MergeHashTables","NEGATIVE_INFINITY","POSITIVE_INFINITY","byRange","TEXTRECT_RATIO_EPS","getNearestCurrentZoomStep","__asyncDelegator","__asyncGenerator","__asyncValues","__await","__classPrivateFieldGet","__classPrivateFieldSet","__createBinding","__decorate","__exportStar","__importDefault","__importStar","__makeTemplateObject","__metadata","__param","__read","__spread","__spreadArrays","__values","Reflect","decorate","metadata","asyncIterator","__esModule","toStringTag","Margins","AttrUtils","setElementAttribute","setStyleAttribute","getElementAttribute","getStyleAttribute","removeElementAttribute","removeStyleAttribute","changeElementStyleAttribute","saveStyleAttributeInElement","restoreElementStyleAttribute","isExistsAttributeInElement","emptyObject","isAttributeExists","JsonUtils","GanttClientCommand","CreateTask","CreateSubTask","RemoveTask","RemoveDependency","TaskInformation","TaskAddContextItem","ZoomIn","ZoomOut","FullScreen","CollapseAll","ExpandAll","ResourceManager","ToggleResources","ToggleDependencies","CollapseAllCommand","executeInternal","ExpandAllCommand","validationController","createTaskCommand","createSubTaskCommand","removeTaskCommand","removeDependencyCommand","TaskAddContextItemCommand","ZoomInCommand","ZoomOutCommand","ToggleFullScreenCommand","toggleResources","toggleDependencies","CreateTaskCommand","CreateSubTaskCommand","RemoveTaskCommand","UpdateTaskCommand","CreateDependencyCommand","RemoveDependencyCommand","CreateResourceCommand","RemoveResourceCommand","AssignResourceCommand","DeassignResourceCommand","ResourceColorCommand","TaskEditDialogCommand","ConstraintViolationDialogCommand","ConfirmationDialog","ResourcesDialogCommand","ToggleResourceCommand","ToggleDependenciesCommand","predecessorId","successorId","DependencyInsertingArguments","notifyDependencyInserting","InsertDependencyHistoryItem","isValidateDependenciesRequired","DependencyType","SF","SS","moveStartDependTasks","moveEndDependTasks","DependencyCommandBase","showConfirmationDialog","ConfirmationDialogParameters","ConfirmationType","DependencyDelete","taskEditController","internalId","DependencyRemovingArguments","notifyDependencyRemoving","RemoveDependencyHistoryItem","selectDependency","isInFullScreenMode","fullScreenTempVars","fullScreenModeHelper","assignments","ResourceAssigningArguments","convertInternalToPublicKey","notifyResourceAssigning","AssignResourceHistoryItem","convertPublicToInternalKey","ResourceCommandBase","ResourceInsertingArguments","notifyResourceCreating","CreateResourceHistoryItem","fireResourceUnassigning","DeassignResourceHistoryItem","ResourceColorHistoryItem","ResourcePropertyCommandBase","ResourceRemovingArguments","notifyResourceRemoving","RemoveResourceHistoryItem","currentSelectedTaskID","TaskInsertingArguments","notifyTaskCreating","CreateTaskHistoryItem","updateParent","TaskCommandBase","isApiCall","isUpdateParentTaskRequired","TaskDelete","TaskRemovingArguments","notifyTaskRemoving","RemoveTaskHistoryItem","_parentAutoCalc","updateParentsIfRequired","raiseTaskUpdating","filterChangedValues","processDependecyValidation","onAfterValidationCallback","checkStartDependencies","checkEndDependencies","showConstraintViolationDialog","ConstraintViolationDialogParameters","ConstraintViolationOption","DoNothing","UpdateTaskHistoryItem","processAutoParentUpdate","KeepDependency","updateBarManager","updateViewDataRange","DateUtils","getTimezoneOffsetDiff","msPerHour","correctParentsOnChildMoving","updateOwnerInAutoParentMode","applyParameters","getDialogName","DialogBase","_canRefresh","onBeforeDialogShow","activeInstance","ResourcesDelete","DialogParametersBase","critical","ResourcesDialogParameters","ResourceCollection","TaskEditParameters","enableEdit","resourcesForDelete","raiseResourceManagerDialogShowing","createResourceCommand","removeResourceCommand","raiseTaskTaskEditDialogShowing","getUpdatedTaskData","updateTaskCommand","getAssignedResources","isTaskEditEnabled","isTaskRangeEditEnabled","isTaskToCalculateByChildren","GanttExportCalculator","GanttPdfExportProps","_defaultPageMargin","_chartTableScaleTopMatrix","calculateChartScaleMatrix","_chartTableScaleBottomMatrix","_chartTableBodyMatrix","calculateChartTableBodyMatrix","_treeListHeaderMatrix","calculateTreeListTableHeaderMatrix","_treeListBodyMatrix","calculateTreeListTableBodyMatrix","getPages","PdfGanttPaginator","createGlobalInfo","settingsForPaging","_taskAreaHelper","layoutCalculator","TaskAreaExportHelper","_scalingHelper","ScalingHelper","pdfDoc","taskAreaHelper","visibleTaskIndices","baseCellSize","baseCellHeight","_chartScaleTableStyle","getChartScaleTableStyle","_chartMainTableStyle","getChartMainTableStyle","_treeListTableStyle","calculateTreeListTableStyle","_headerTableTop","pageTopMargin","_mainTableTop","getMainTableTop","exportDataMode","headerTableTop","headerTableHeight","_chartLeft","getChartLeft","ExportMode","pageLeftMargin","treeListLeft","treeListWidth","_treeListLeft","_mainTableHeight","taskAreaHeight","_treeListWidth","getTreeListTableWidth","treeListHeaderMatrix","getTreeListColumnWidth","_chartWidth","chartTableScaleBottomMatrix","baseCellWidth","_settingsForPaging","prepareAutoFormat","scalingHelper","scalePageMargins","autoFormatKey","landscape","autoFormatWidth","autoFormatHeight","pageRightMargin","chartLeft","chartWidth","_autoFormatWidthAddStock","mainTableTop","mainTableHeight","pageBottomMargin","_canExportChart","getGanttObjectsInfo","tables","getTablesInfo","scaleSizes","_canExportTreelist","PdfPageTableNames","treeListHeader","createTreeListHeaderTableInfo","treeListMain","createTreeListMainTableInfo","chartMain","createChartMainTableInfo","chartScaleTop","_createChartScaleTopInfo","chartScaleBottom","_createChartScaleBottomInfo","getFont","chartScaleTableStyle","chartTableScaleTopMatrix","chartMainTableStyle","chartTableBodyMatrix","hideRowLines","treeListTableStyle","treeListBodyMatrix","scaleRanges","getScaleItemStart","scales","CellDef","getScaleItemTextByStart","cellPadding","minCellHeight","scaleTopWidths","scaleBottomWidths","createChartTableBodyRow","rowHasChildren","parentRowBackColor","rowHasSelection","fillTreeListTableBodyMatrix","fillTreeListEmptyTableBodyMatrix","getTask","halign","PredefinedStyles","horizontalAlign","valign","getObjectsLeftOffset","dataObjectLeftDelta","customRangeLeftOffset","_dataObjectLeftDelta","getDataObjectLeftDelta","_dataObjectTopDelta","getDataObjectTopDelta","StyleDef","scaleTableStyle","_predefinedFont","tasksInfo","dependenciesInfo","resourcesInfo","timeMarkers","timeMarkersInfo","_tasksInfo","calculateTasksInfo","_dependenciesInfo","calculateDependenciesInfo","_resourcesInfo","calculateResourcesInfo","_timeMarkersInfo","calculateTimeMarkersInfoInfo","objectsLeftDelta","objectsTopDelta","calculateTaskInfo","PdfTaskInfo","getTaskElementInfo","taskColor","getTaskColor","sidePoints","getTaskSidePoints","isMilestone","GridLayoutCalculator","milestoneClassName","isSmallTask","smallTaskClassName","isParent","parentTaskClassName","appendTaskTitle","appendTaskProgress","TaskTitlePosition","Outside","getTaskText","textPosition","getTaskTextStyle","getTaskProgressElementInfo","progressWidth","getTaskProgressColor","applyOpacityToBackground","dataObjectTopDelta","getTaskElementBackColor","taskClassName","taskProgressClassName","getTaskElementStyle","taskTitleClassName","dependencyColor","connectorLines","createLineInfo","PdfDependencyLineInfo","arrowClassName","getArrowPositionByClassName","arrowInfo","getArrowTopCorner","getLinePoints","resourcesElements","calculateResourcesInLine","taskResourceClassName","PdfTaskResourcesInfo","stripLinesElements","createTimeMarkerInfo","noWorkingIntervalsElements","PdfTimeMarkerInfo","borderLeftColor","_copyPoints","PdfObjectDrawer","_FONT_ROW_RATIO","_pdfDoc","drawTimeMarkers","drawDependencies","drawTasks","drawResources","drawTask","setFillColor","getRBGColor","setDrawColor","drawMilestone","drawRegularTask","drawParentBorder","printTaskTitle","setTextColor","setFontSize","scaleFactor","defaultParentHeightCorrection","Inside","EllipsisHelper","limitPdfTextWithEllipsis","drawDependencyLine","drawArrow","isValidLine","drawTimeMarker","isStripLine","saveGraphicsState","setGState","GState","restoreGraphicsState","setLineDashPattern","PdfGanttExporter","applyCustomFont","PdfGanttPageDrawer","addPage","getDocumentFormat","getOrientation","drawPage","createDoc","getJsPDFProps","putOnlyUsedFonts","hotfixes","applyToDoc","PdfGanttTableDrawer","needDrawChart","drawTable","needDrawTreeList","drawMargins","getContentRightBottom","getPageWidth","getPageHeight","PageNavigation","_correctedBottoms","vIndex","hIndex","_top","_left","_bottom","_right","offsetOneD","getSpaceToBorder","getCurrentPageBottom","getPageEnd","getPageStart","getPageSize","defaultPageWidth","getPageGlobalOffset","createFrom","getPageBottom","pageVerIndex","pageHorIndex","cellRowIndexOnPage","cellColIndexOnPage","globalCellIndex","cutSize","_globalInfo","_pages","_paginateTables","_paginateObjects","pageMatrixToArray","_paginateTable","_paginateTasks","_paginateDependencies","_paginateResources","_paginateTimeMarkers","_paginateTask","_paginateArrow","_paginateDependencyLine","_paginateResource","_paginateTimeMarker","_getTableStart","_preparePagesNavigationMatrixForTable","_getPage","_setTablePositionOnPage","pageLeft","pageTop","_addCellToPage","_updateTableSizeOnPages","_getTaskPagination","_offsetPoints","_addTaskToPage","_getPointPageInfo","_addDependencyToPage","_getDependencyLinePagination","_addResourceToPage","_getTimeMarkerPagination","_addTimeMarkerToPage","pageBorders","correctedPageBottoms","_extendPageMatrixIfRequired","_getTableOrCreate","_getTableNavigationVector","_prepareCuttedCell","cellIndexOnPage","_createPage","_getTableAndExtendIfRequired","_updateTableSizeOnPage","_getCellWidth","_placeCell","isCutted","splitTextToSize","_getLinePagination","pageNavigator","_pageLeft","_pageRight","_pageTop","_pageBottom","pageBottom","pageRight","_correctedPageBottoms","_getCorrectedPagesBottom","_pageNavigator","_docScaleFactor","_defaultScaleFactor","EPSILON","getScaledSize","_correctScaleNeeded","scaleTables","scaleObjects","scaleTable","scaleStyle","scaleTasks","scaleDependencies","scaleResources","scaleTimeMarkers","scalePoints","PdfCustomFontSettings","fontObject","addFileToVFS","addFont","setFont","PdfDataRange","DataExportMode","getEnumValue","appendStyles","_num","_opacity","_rgb","assignFromString","assignFromRgbArray","assignFromColor","assignFromHexString","assignFromRgbString","rgbaRegexp","rgbRegexp","createTableOptions","autoTable","createDefaultTableOptions","addTableCommonSettings","addCommonTableStyles","prepareBodyCells","addBody","TableOptions","pageBreak","startY","alternateRowStyles","cellEllipsisSpace","onDrawCellCallback","setLineWidth","assignWithValues","assignWithMargin","getCorrectedValues","getPredefinedStringOrUndefined","fontFamilies","headerFooterVisibility","rowPageBreak","_fillColor","_textColor","_lineColor","Width","_cellPadding","_fontFamily","_fontStyle","_fontSize","_overflow","_horizontalAlign","_verticalAlign","_lineWidth","_minCellWidth","_minCellHeight","assignFromCssStyle","getPdfFontFamily","getPdfFontStyle","getPfrFontSize","assignPaddingFromCss","getJsPdfProviderProps","_tableLineColor","_alternateRowStyles","_pageBreak","_rowPageBreak","_showHead","_showFoot","_startY","_tableLineWidth","_body","showFoot","showHead","tableLineWidth","getBodyForJsPdf","getColumnStylesForJsPdf","didDrawCell","tableLineColor","addCells","applyColumnStyle","_columnStyles","_widthInternal","_customRangeLeftOffset","getWidthByDateRange","ownerStartDate","tickSize","renderedScaleLeft","hasTasks","getCellTop","getTaskCellOffsetTop","_offsetLeft","visibleLeft","_offsetTop","getOffsetTop","ViewTypeToScaleMap","_scaleRanges","getScaleRangesInArea","scaleLeft","scaleRight","_scaleTopWidths","getScaleTopWidths","_scaleBottomWidths","getScaleBottomWidths","_headerRowHeight","scaleElements","_visibleTaskIndices","getTaskIndices","taskArea","_scaleTableStyle","getScaleTableStyle","_parentRowBackColor","getParentBackColor","_arrowWidth","getArrowWidth","_dependencyColor","getDependencyColor","getTaskWrapper","_visibleLeft","isVisibleMode","_visibleTop","_visibleRight","getVisibleRight","_visibleBottom","getVisibleBottom","visibleTop","_scaleLeft","getPosByDate","_scaleRight","visibleRight","getScaleWidths","scaleTopStartIndex","scaleTopEndIndex","getScaleItemInfo","scaleBottomStartIndex","scaleBottomEndIndex","getCellLeft","getGridBorderPosition","dataMode","exportRange","getAllVisibleTaskIndices","getVisibleTaskIndices","taskElements","visibleBottom","scaleBorders","hlRowElements","selectionElements","_connectorLines","allConnectorLines","isLineVisible","visibleDependencyKeys","_visibleDependencyKeys","getVisibleDependencyKeysByTaskRange","_resourcesElements","_stripLinesElements","stripLinesMap","_noWorkingIntervalsElements","noWorkingIntervalsToElementsMap","ownerEndDate","_layoutCalculator","gridLayoutCalculator","hasCustomRangeOutOfRender","setSettings","visibleTaskAreaSize","elementSizeValues","DateRange","scrollBarHeight","taskAreaContainer","findElementBackColor","getChartTableBorderColor","getDependencyLineStyle","CLASSNAMES","CONNECTOR_HORIZONTAL","isTaskTemplateMode","fakeTaskWrapper","createDefaultTaskElement","CollectionBase","_isGanttCollection","_addItem","invalidate","_invertedItems","_createInvertedItems","invertedItems","getItemByPublicId","importFromObject","importFromArray","createItemFromObjectAndAdd","assignFromObject","importFromJSON","GanttJsonUtils","parseJson","DependencyCollection","Dependency","WorkingDayRuleCollection","WorkingTimeRule","ResourceAssignmentCollection","ResourceAssignment","Resource","TaskCollection","Task","ModelChangesDispatcher","notifyTaskCreated","notifyTaskRemoved","notifyTaskUpdating","notifyTaskMoving","notifyTaskEditDialogShowing","notifyResourceManagerDialogShowing","notifyTaskUpdated","notifyParentTaskUpdated","notifyDependencyInserted","notifyDependencyRemoved","notifyResourceCreated","notifyResourceRemoved","notifyResourceColorChanged","notifyResourceAssigned","notifyResourceUnassigning","notifyResourceUnassigned","notifyParentDataRecalculated","notifyScaleCellPrepared","notifyGanttViewUpdated","ResourceUnassigningArguments","TaskUpdatingArguments","raiseTaskMoving","TaskEditDialogShowingArguments","ResourceManagerDialogShowingArguments","GanttDataObjectNames","DataObject","updateId","resourceAssignment","parseType","FS","FF","TaskType","Regular","Summary","Milestone","taskType","createInvalidDate","assignCustomFields","getDuration","isValidStart","isValidTaskaDte","isValidEnd","BaseArguments","createNewValues","currentProcessingItemInfo","_listener","activateItem","onTransactionStart","onTransactionEnd","HistoryItemInfo","getCurrentProcessingItemInfo","rollBackAndRemove","checkAndRemoveItem","isUndo","undoItemsQuery","updateObsoleteInsertedKey","updateItemsObsoleteInsertedKey","keyUpdaters","objectType","updateKey","setModelManipulator","insertedKey","removeDependency","HistoryItemState","deassig","createCallback","getPropertiesManipulator","ResourcePropertiesHistoryItemBase","BaseManipulator","getErrorCallback","getDataUpdateErrorCallback","TaskDependencyManipulator","onBeginDataObjectCreate","updateVisibleItemDependencies","recreateConnectorLineElement","getObjectForDataSource","processServerInsertedKey","onEndDataObjectCreate","getDependencyObjectForDataSource","TaskManipulator","ResourcesManipulator","ResourceColorManipulator","setPropertyValue","ResourcePropertyManipulator","ResourcePropertiesManipulator","recreateTaskElement","getResourceObjectForDataSource","getResourceAssignmentObjectForDataSource","requireFirstLoadParentAutoCalc","getCurrentTaskData","getTaskObjectForDataSource","ValidationController","lockPredecessorToSuccessor","getViewModel","getHistory","getModelManipulator","getValidationSettings","parentAutoCalc","getIsValidateDependenciesRequired","ValidationError","isStartDependency","checkParent","correctMoving","moveRelatedTasks","recalculateParents","DateTimeUtils","getMinDate","getMaxDate","areDatesEqual","oldStart","oldEnd","updateParentsRangeByChild","updateChildRangeByParent","getRangeMSPeriod","getDSTCorrectedTaskEnd","canCreateDependency","ViewVisualModelDependencyInfo","predecessor","ViewVisualModelItem","addChild","getExpanded","getVisible","changeVisibility","changeSelection","setDependencies","ViewVisualModel","_fLockCount","lockChangesProcessing","_viewItemList","_workTimeCalculator","WorkingTimeCalculator","createHierarchy","populateItemsForView","changeTaskSelected","getRootTaskId","populateVisibleItems","getTasVisibleDependencies","changeTaskVisibility","compareTaskOrder","refreshTaskDataIfRequires","saveTaskInternalIds","restoreTaskInternalIds","enableDependencyValidation","getDependentTasksHash","checkTasksInterdependence","checkDependencyChain","getTaskTreeLine","getBranchIds","getTasksExpandedState","onVisualModelChanged","getTaskVisibility","getTaskSelected","noWorkingIntervals","updateRange","taskHasChildrenByIndex","taskHasChildren","getItemByInternalId","findAssignment","findAllTaskAssignments","getVisibleTasks","getVisibleDependencies","getVisibleResourceAssignments","getVisibleResources","rootTaskId","calculateRootTaskId","getTaskMinStart","getTaskMaxEnd","updateHistoryObsoleteInsertedKey","lockUpdateWithReload","unlockUpdateWithReload","compareDates","getDaysBetween","msInDay","getWeeksBetween","getMonthsDifference","getYearsDifference","getDateByDayNumber","checkDayOfMonth","checkDayOfWeek","checkMonth","checkYear","checkDayOfWeekOccurrenceInMonth","getSpecificDayOfWeekInMonthDates","DayOfWeekMonthlyOccurrence","Last","getFirstDayOfWeekInMonth","getSpecificDayOfWeekInMonthDate","checkValidDayInMonth","getNextMonth","convertToDate","convertTimeRangeToDateRange","sec","msec","convertToTimeRanges","convertToTimeRange","parseTimeRanges","TimeRange","convertToTime","parseTimeRange","getTimeGromJsDate","parseTime","caclTimeDifference","getTimeInMilleconds","areTimesEqual","getMaxTime","getMinTime","getLastTimeOfDay","DayOfWeek","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","First","Second","Third","Forth","DayWorkingTimeInfo","_workingIntervals","dayNumber","isWorkDay","addWorkingIntervals","rearrangeWorkingIntervals","concatWithIntersectedRanges","sortIntervals","getIntersectedIntervals","concatWith","removeInterval","hasIntersect","clearIntervals","_isWorkDay","Month","January","February","March","April","May","June","July","August","September","October","November","December","MonthInfo","Daily","calculatePointByInterval","isRecurrencePoint","calculateNearestPoint","RecurrenceBase","Monthly","_calculateByDayOfWeek","dayOfWeekInternal","dayOfWeekOccurrenceInternal","dayInternal","getSpecDayInMonth","_occurrenceCount","_dayOfWeek","_day","_dayOfWeekOccurrence","_month","occurrenceCount","RecurrenceFactory","dayOfWeekOccurrence","monthInternal","calculateByDayOfWeek","calculatePoints","calculatePointsByOccurrenceCount","calculatePointsByDateRange","getFirstPoint","useIntervalInCalc","createRecurrenceByType","Weekly","Yearly","createRecurrenceFromObject","calcNextPointWithWeekCount","_hour","_sec","_msec","_fullmsec","updateFullMilleconds","isTimeInRange","_workingRules","_workDayList","_calculationRange","calculateWorkDayList","clearList","processRule","sortList","workTimeRanges","calculateNoWorkTimeIntervals","getNoWorkTimeRangesFromDay","concatJointedRanges","_noWorkingIntervals","recurrenceType","GanttViewApi","currentZoom","getTaskAreaContainerWidth","updateTickSizeWidth","scrollToDateCore","ganttOwner","scrollLeftByViewType","calculateAutoViewType","getTargetDateByPos","TaskEditController","showInfoDelay","taskIndex","successorIndex","isEditingInProgress","disableTaskEditBox","isTaskEditBoxShown","viewItem","getRenderHelper","getGanttSettings","getCommandManager","getValidationController","TaskEditTooltip","tooltipSettings","elementTextHelperCultureInfo","TooltipSettings","getTaskProgressTooltipContentTemplate","ganttSettings","getTaskTimeTooltipContentTemplate","getTaskTooltipContentTemplate","changeWrapInfo","TASK_EDIT_BOX","displayDependency","isTaskUpdateAllowed","TASK_EDIT_HIDE_UPDATING","TASK_EDIT_BOX_CUSTOM","taskHoverDelay","taskDateRange","displayTaskEditBox","displayProgressEdit","displayStartEndEditElements","canUpdateTask","startEdit","endEdit","wrapInfo","progressEdit","normalizedProgress","updateWrapInfo","assignPosition","assignSize","endEditing","showTaskInfo","getTaskWrapperElementInfo","isAllowedToConnectTasks","showDependencySuccessor","dependencySuccessorBaseElement","dependencySuccessorFrame","hideDependencySuccessor","processProgress","showProgress","confirmProgress","processEnd","getDateByPos","getCorrectedDate","showTime","confirmEnd","processStart","confirmStart","onTaskMovingCallback","confirmMove","ViewType","SixHours","startDependency","dependencyLine","TASK_EDIT_DEPENDENCY_LINE","processDependency","drawline","endDependency","createDependencyCommand","isDependencySelected","deleteSelectedDependency","getTaskWidth","getTaskHeight","baseFrame","TASK_EDIT_FRAME","TASK_EDIT_PROGRESS","dependencyFinish","TASK_EDIT_DEPENDENCY_RIGTH","TASK_EDIT_TOUCH","dependencyStart","TASK_EDIT_DEPENDENCY_LEFT","TASK_EDIT_START","TASK_EDIT_END","TASK_EDIT_BOX_SUCCESSOR","TASK_EDIT_FRAME_SUCCESSOR","dependencySuccessorStart","TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH","dependencySuccessorFinish","TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT","_baseElement","createTooltipContainer","TASK_EDIT_PROGRESS_STATUS","setDefaultTooltip","defaultTooltip","TASK_EDIT_TOOLTIP_DEFAULT","TASK_EDIT_TASK_TITLE","getTimeContent","TASK_EDIT_PROGRESS_STATUS_TIME","setDefaultProgressTooltip","setDefaultTimeTooltip","TASK_EDIT_TOOLTIP_ARROW_AFTER","TASK_EDIT_TOOLTIP_ARROW_BEFORE","getLeftPosition","needToShowUnderParent","getTopPosition","defaultArrowHeight","defaultHeightOffset","GanttMovingHelper","movingInfo","startMoving","calcMovingInfo","updateGanttAreaCursor","cancelMoving","maxRightDelta","maxLeftDelta","maxBottomDelta","maxTopDelta","TaskAreaStateController","_pointers","setHandler","TaskAreaStateEventNames","STATE_EXIT","GET_POINTERS_INFO","getPointersInfo","_taskArea","_cellSize","TaskAreaZoomState","onTaskPointerEnter","onTaskAreaPointerLeave","onTaskAreaLeave","onDocumentPointerCancel","_clearPointerInfo","onDocumentPointerDown","_updatePinterInfo","toggleStateOnPointerDown","onDocumentPointerMove","toggleStateOnPointerMove","onDocumentPointerUp","onTaskTouchStart","onTaskAreaMouseLeave","onTaskElementHover","onTaskHover","onTaskElementLeave","onTaskLeave","getTaskAreaEventSource","TaskAreaEventSource","TaskArea","processMouseDownOnTaskArea","TaskEdit_Frame","TaskMoveState","TaskEdit_Progress","TaskEdit_Start","TaskEdit_End","TaskEditState","TaskEdit_DependencyStart","TaskEdit_DependencyFinish","TaskAreaDependencyState","TaskAreaDefaultState","TaskAreaDomHelper","isConnectorLine","TaskAreaScrollState","toggleStateWhenMultiOrOutsideTouch","_canStartDrag","checkEventInTaskEditFrameArea","isTaskUpdateDisabled","_getActivePointersCount","isInTaskArea","getTaskEditFrameElement","clearTimers","CONTEXTMENU_HIDE","onMouseDownInternal","onPointerDownBase","onDocumentPointerDownInternal","onDocumentPointerUpInternal","onPointerUpBase","onDocumentPointerMoveInternal","onTouchStartInternal","onTouchEndInternal","onTouchMoveInternal","_lastTouchRowIndex","getClickedRowIndex","changeSelectionOnTouchDown","_contextMenuTimer","showContextMenuOnTouchDown","defaultContextMenuTimeout","canToEmulateClick","_lastEmulatedClickTime","defaultDblClickTimeout","TASK_AREA_DBLCLICK","TASK_AREA_CLICK","_dblClickClearTimer","defaultDblClickClearTimeout","raiseTaskSelection","raiseDependencySelection","CONTEXTMENU_SHOW","TaskAreaStateBase","dependencyMap","Successor_DependencyStart","Successor_DependencyFinish","onDependencyEndByMouse","onDependencyStart","onMouseMoveInternal","onDependencyMoveStep","onDependencyEndByTouch","getRelativePos","DEPENDENCY_START","DEPENDENCY_PROCESS","processEndDependency","GET_DEPENDENCY_POINTS","successorStart","successorFinish","isTouchNearby","onTaskAreaLeaveInternal","DEPENDENCY_END","classToSource","CONNECTOR_VERTICAL","isTaskElement","TouchEvent","_isStarted","TASK_AREA_END_MOVE","onBeforeStart","onMove","onMoveByPointer","TASK_AREA_START_MOVE","TASK_AREA_PROCESS_MOVE","isCursorInArea","TASK_AREA_SCROLL","TASK_AREA_KEY_DOWN","onTaskPointerEnterBase","processPointerMove","processPointerDown","processPointerUp","TASK_LEAVE","checkAndProcessTouchOutsideArea","TaskAreaEventArgs","DEPENDENCY_SELECTION","TASK_SELECTION","TASK_AREA_ZOOM_IN","TASK_AREA_ZOOM_OUT","TASK_PROCESS_MOVE","TASK_END_MOVE","TASK_PROCESS_PROGRESS","TASK_END_PROGRESS","TASK_PROCESS_START","TASK_CONFIRM_START","TASK_PROCESS_END","TASK_CONFIRM_END","GET_COORDINATES_REF_POINT","_isInZooming","processZoom","onEndZoom","onTouchZoom","leftPos","GetTouchPoints","getZoomMiddlePoint","getMouseZoomLeftPos","convertScreenToChartCoordinates","TaskDragBaseState","onDrag","onStartInternal","onDragInternal","onEndInternal","getEventOnEndKey","getEventOnDragKey","TaskAreaEventsListener","createTaskAreaEventHandlers","taskAreaClickHandler","taskAreaDblClickHandler","taskAreaScrollHandler","taskAreaStartMoveHandler","taskAreaProcessMoveHandler","taskAreaEndMoveHandler","taskAreaZoomInHandler","taskAreaZoomOutHandler","taskAreaContextMenuShowHandler","taskAreaContextMenuHideHandler","taskSelectionHandler","dependencySelectionHandler","taskEditStartHandler","taskEditEndHandler","taskLeaveHandler","taskProcessMoveHandler","taskEndMoveHandler","taskProcessProgressHandler","taskEndProgressHandler","taskProcessStartHandler","taskConfirmStartHandler","taskProcessEndHandler","taskConfirmEndHandler","getDependencyPoints","dependencyStartHandler","dependencyEndHandler","dependencyProcessHandler","onTaskAreaKeyDown","getCoordinatesRefPoint","onTaskAreaClick","onTaskAreaDblClick","onTaskSelectionChanged","onTaskAreaContextMenu","_ganttMovingHelper","ganttMovingHelper","TaskAreaManager","TOUCH_ACTION_NONE","_eventListener","attachTouchEvents","attachMouseEvents","attachCommonEvents","detachTouchEvents","detachMouseEvents","detachCommonEvents","attachEventsOnTask","onTaskPointerEnterHandler","onTaskTouchStartHandler","onTaskMouseEnterHandler","onTaskMouseLeaveHandler","detachEventsOnTask","taskAreaAddEventListener","onKeyDownHandler","taskAreaRemoveEventListener","onDocumentPointerDownHandler","onDocumentPointerUpHandler","onDocumentPointerMoveHandler","onDocumentPointerCancelUpHandler","onTaskAreaPointerLeaveHandler","onTouchStartHandler","onTouchEndHandler","onTaskAreaMouseLeaveHandler","_stateController","_onContextMenuHandler","stateController","_onMouseWheelHandler","_onKeyDownHandler","_onTaskPointerEnterHandler","_onTaskAreaPointerLeaveHandler","_onDocumentPointerDownHandler","_onDocumentPointerUpHandler","_onDocumentPointerCancelHandler","_onDocumentPointerMoveHandler","_onTouchStartHandler","_onTouchEndHandler","_onTouchMoveHandler","_onTaskTouchStartHandler","_onMouseClickHandler","_onMouseDblClickHandler","_onTaskAreaMouseLeaveHandler","_onTaskMouseEnterHandler","_onTaskMouseLeaveHandler","DBLCLICK_INTERVAL","MS_POINTER_ACTIVE_CLASS","isFocus","_updateWithModelReloadLockedCounter","scaleCount","stripLinesUpdaterId","Settings","initValidationController","initMarkup","loadOptionsFromGanttOwner","initTaskEditController","_getHistoryListener","initFullScreenModeHelper","_scrollTimeOut","initializeStripLinesUpdater","initGanttViewApi","ganttViewApi","onHistoryTransactionStart","onHistoryTransactionEnd","_pendingUpdateInfo","ValidationControllerSettings","TaskEditSettings","getDateFormat","_taskAreaEventsListener","FullScreenHelperSettings","getOwnerControlMainElement","adjustOwnerControl","FullScreenModeHelper","getVisibleAreaTime","adjustStartDateByViewType","adjustEndDateByViewType","getTickTimeSpan","getOrCreateUTCDate","hideTaskEditControl","roundStartDate","setTaskAreaContainerScrollLeftToDate","showCurrentTime","recreateStripLines","currentTimeUpdateInterval","clearStripLinesUpdater","getGanttViewStartDate","getGanttViewEndDate","getViewItem","etalonScaleItemWidths","onBeginUpdateView","setTimeScaleContainerScrollLeft","taskAreaContainerScrollLeft","processScroll","taskAreaContainerScrollTop","onEndUpdateView","taskAreaScrollTopKey","taskAreaScrollLeftKey","taskTextHeightKey","allowTaskAreaBorders","areVerticalBordersEnabled","getScaleItemText","getDefaultPdfDocCreateMethod","getTaskDependencies","isHighlightRowElementAllowed","Years","Months","Weeks","Hours","TenMinutes","getTaskByPublicId","showTask","hideTask","unselectCurrentSelectedTask","unselectTask","taskAreaManagerDetachEvents","checkAndProcessModelChanges","updateRenderedConnectorLinesId","getTaskAreaContainerScrollLeft","setTaskAreaContainerScrollLeft","selectTask","createConnectorLines","setMainElementWidth","setMainElementHeight","prepareTaskAreaContainer","StripLineSettings","getLastInsertedTaskId","_getTaskDataForUpdate","assignResourceCommand","deassignResourceCommand","canRefresh","adjustControlInFullScreenMode","setTaskValue","getPrevTask","getTaskIdByInternalId","isTaskHasChildren","getDefaultDateFormat","cachedPrefix","Quarter","FiveYears","Successor_Wrapper","EtalonSizeValues","scaleItemWidths","_isInFullScreenMode","setFullScreenMode","setNormalMode","prepareFullScreenMode","bodyMargin","requestFullScreen","cancelFullScreen","mozRequestFullScreen","getFullScreenElement","mozCancelFullScreen","mozFullScreenElement","GridElementInfo","additionalInfo","assignToElement","assignMargins","tileToDependencyMap","tileToNoWorkingIntervalsMap","minLineLength","resourceMaxWidth","minTaskWidth","_taskWrapperPoints","_taskElementInfoList","_scaleCalculator","ScaleCalculator","_viewType","verticalTickCount","taskHeight","parentTaskHeight","milestoneWidth","scaleHeight","scaleItemHeight","connectorArrowWidth","lineThickness","connectorLineThickness","minConnectorSpaceFromTask","tickTimeSpan","createTileToNonWorkingIntervalsMap","resetTaskInfo","getTaskAreaBorderInfo","getVerticalGridLineHeight","getGridBorderInfo","scaleWidth","getScaleBorderInfo","getScaleBorderPosition","getGridBorderSize","getScaleElementInfo","getScaleItemClassName","getRenderedNoWorkingIntervals","getScaleItems","getScaleItemAdjustedStart","isScaleItemInsideNoWorkingInterval","getScaleItem","getScaleIndexByPos","topScaleItems","bottomScaleItems","getScaleItemColSpan","getTaskWrapperClassName","getTaskWrapperPoint","getCorrectedTaskWidthByRange","taskCut","getTaskClassName","borderRightColor","smallTaskWidth","getAutoCalcParentTaskClassName","getTaskPoint","taskWrapperTopPadding","getTaskSize","getTaskProgressSize","getTaskProgressWidth","isTaskCutByRange","getTaskTextElementInfo","getTaskTextElementClassName","outsideTaskTextDefaultWidth","titleInClassName","titleOutClassName","getTaskResourcesWrapperElementInfo","getTaskResourceElementInfo","getSelectionElementInfo","getRowElementInfo","getSelectionPosition","getSelectionSize","getHighlightRowInfo","getNoWorkingIntervalInfo","getNoWorkingIntervalPosition","getNoWorkingIntervalSize","getConnectorInfo","getConnectorPoints","getConnectorLineInfo","getArrowInfo","checkAndCorrectConnectorLinesByRange","getConnectorPosition","getConnectorSize","findArrowLineInfo","getArrowPosition","getArrowClassName","getArrowPoint","leftArrowClassName","topArrowClassName","rightArrowClassName","bottomArrowClassName","getArrowX","getArrowY","getRangeTickCount","getDateByPosInMonthBasedViewTypes","getDateInScale","getFinishToStartConnectorPoints","getStartToFinishConnectorPoints","getStartToStartConnectorPoints","getFinishToFinishConnectorPoints","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide","getTaskRightCenter","getTaskTopCenter","getHorizontalIndentFromTaskEdge","getTaskBottomCenter","getTaskLeftCenter","getTaskEdgeCorrection","getRenderedRowColumnIndices","getFirstVisibleGridCellIndex","getFirstScaleVisibleIndex","getLastVisibleGridCellIndex","getLastScaleVisibleIndex","getRenderedScaleItemIndices","getTopScaleIndexByBottomIndex","getFirstScaleIndexForRender","getLastScaleIndexForRender","createTileToConnectorLinesMap","createConnecotInfo","updateTileToConnectorLinesMap","addElementInfoToTileMap","getAdjustedNoWorkingInterval","getNearestScaleTickDate","getRenderedConnectorLines","getElementsInRenderedTiles","getRenderedStripLines","StripLine","currentTimeTitle","currentTimeCssClass","isCurrent","isTaskInRenderedRange","checkAndCorrectElementDisplayByRange","checkAndCorrectArrowElementDisplayByRange","dxGanttPrefix","ScaleItemInfo","_bottomScaleItems","_topScaleItems","_scaleWidth","getAdjustedBottomScaleItemStart","calculateTopScale","calculateBottomScale","calculateScaleWidth","getNextScaleDate","hasDST","getNextDateInTenMinutesScale","getNextDateInHoursScale","getNextDateInSixHoursScale","getNextDateInDaysScale","getNextDateInWeeksScale","getNextDateInMonthsScale","getNextDateInQuartersScale","getNextDateInYearsScale","getNextDateInFiveYearsScale","getNextTimeBySpan","ConnectorLinesRender","_connectorLinesToElementsMap","_renderedConnectorLines","_renderHelper","ganttViewTaskAreaContainerScrollTop","invalidTaskDependencies","createConnectorLineElement","RenderElementUtils","connectorLinesToElementsMap","removeConnectorLineElement","renderedConnectorLines","recreateConnectorLineElements","recreate","CustomTaskRender","_pendingTemplateFuncsToRender","_taskRender","createTaskSelectionElement","createCustomTaskElement","_saveTemplateFuncToStack","_hasRepeatedTemplateRenderCall","createCustomTaskInformation","onTaskTemplateContainerRendered","_getLastPendingTemplateFunc","drawCustomTask","_clearTemplateFuncsStack","createCustomTaskWrapperElement","createCustomTaskVisualElement","removeTaskElement","addInvalidTaskDependencies","createHighlightRowElement","createTaskTextElement","taskHTML","taskPosition","taskResources","taskSize","EtalonsHelper","etalonSizeValues","getScaleItemTextTemplate","getSmallTaskWidth","createEtalonElementsContainer","createEtalonElements","calculateEtalonSizeValues","calculateEtalonSizeValuesCore","ScaleCellPreparedArguments","MainElementsRender","createHeader","NoWorkingIntervalRender","_noWorkingIntervalsToElementsMap","_renderedNoWorkingIntervals","ganttTaskAreaContainerScrollLeft","createNoWorkingIntervalElement","removeNoWorkingIntervalElement","recreateNoWorkingIntervalElements","renderedNoWorkingIntervals","renderedColIndices","renderedRowIndices","_gridLayoutCalculator","_connectorLinesRender","_etalonsHelper","_noWorkingIntervalRender","_resourceRender","ResourseRender","_scaleRender","ScaleRender","_stripLinesRender","StripLinesRender","_taskAreaRender","TaskAreaRender","TaskRender","_mainElementsRender","_elementTextHelper","setupHelpers","setSizeForTaskArea","createTimeScale","_taskAreaManager","taskAreaEventsListener","ElementTextHelper","ganttViewSettings","createTaskAreaContainer","recreateTaskAreaBordersAndTaskElements","recreateScalesElements","timeScaleContainer","createTimeScaleAreas","isAllowTaskAreaBorders","hasTaskTemplate","recreateConnectorLineElemensts","createResources","createResourcesWrapperElement","createTimeScaleContainer","createTaskArea","getTaskAreaWidth","getTaskAreaHeight","createTaskElement","getTaskResourcesVisibility","taskAreaManager","createResourceElement","_scaleBorders","_scaleElements","_renderedScaleItemIndices","_timeScaleAreas","_timeScaleContainer","createTimeScaleArea","timeScaleAreas","createScaleElementCore","createScaleElement","createScaleBorder","createScaleElementAndBorder","onScaleCellPrepared","removeScaleElementAndBorder","recreateScaleElements","renderedScaleItemIndices","_stripLinesMap","_renderedStripLines","renderedStripLines","_vertTaskAreaBorders","_horTaskAreaBorders","_isExternalTaskAreaContainer","getTaskAreaContainerElement","initTaskAreaContainer","createTaskAreaBorder","getTaskAreaBordersDictionary","removeTaskAreaBorder","createTaskAreaBorderAndTaskElement","removeTaskAreaBorderAndTaskElement","vertTaskAreaBorders","horTaskAreaBorders","_selectionElements","_taskElements","customTaskRender","isExternalTaskAreaContainer","viewModelItems","_fakeTaskWrapper","createFakeTaskWrapper","removeInvalidTaskDependencies","renderTaskElement","createTaskWrapperElement","createTaskVisualElement","createTaskProgressElement","firstElementChild","_minTextWidth","minTextWidth","minTitleOutRightPadding","getTaskTextHeight","EditingSettings","ValidationSettings","ViewTypeRangeSettings","getDaysInQuarter","getDaysInMonth","getOffsetInMonths","getOffsetInQuarters","needCorrectDate","getNearestLeftTickTime","getNextTickTime","msPerDay","msPerWeek","msPerMonth","msPerYear","getRangeTickCountInMonthsViewType","getRangeTickCountInQuarterViewType","getDSTTotalDelta","getDSTDelta","msPerMinute","longestAbbrMonthName","longestMonthName","longestAbbrDayName","textMeasureContext","modelItems","getTenMinutesScaleItemText","getHoursScaleItemText","getDaysScaleItemText","getWeeksScaleItemText","getMonthsScaleItemText","getQuarterScaleItemText","getYearsScaleItemText","getFiveYearsScaleItemText","getThirtyMinutesScaleItemText","getHourDisplayText","getAmText","getPmText","getHoursScaleItemTextCore","getDayTotalText","getWeeksScaleItemTextCore","getMonthsScaleItemTextCore","hasAmPm","getAbbrMonthNames","getAbbrDayNames","getDayTotalTextCore","getDayTextTemplate","getWeekTextTemplate","getLongestMonthName","getLongestAbbrDayName","getLongestAbbrMonthName","getLongestText","define","require","ajaxUtility","dataUtils","CUSTOM_STORE_OPTIONS","loadMethod","isRawLoadMode","updateUrl","insertUrl","deleteUrl","onAjaxError","requiresKey","customSuccessHandler","thenable","beforeSendResult","textStatus","getResponseHeader","jsonObj","json","safeParseJSON","getErrorMessageFromXhr","sendCore","isCountQuery","normalizeSorting","isAdvancedGrouping","stringifyDatesInFilter","isJSON","loadOptionsToActionParams","processLoadResponse","createLoadExtra","filterByKey","updateMethod","serializeKey","handleInsertUpdateSuccess","insertMethod","deleteMethod","getResolveArgs","expandLoadResponse","crit","builder","zpad","createStore","createStoreConfig","unwrapESModule","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","OverriddenAttributor","parchment__WEBPACK_IMPORTED_MODULE_0__","_decorators__WEBPACK_IMPORTED_MODULE_1__","_utils__WEBPACK_IMPORTED_MODULE_2__","_typeof","Constructor","descriptor","_toPropertyKey","prim","toPrimitive","_toPrimitive","receiver","_superPropBase","_getPrototypeOf","_setPrototypeOf","ReferenceError","_assertThisInitialized","_Attributor","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","construct","sham","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_createSuper","_options$allowedTags","allowedTags","_classCallCheck","_createClass","protoProps","staticProps","_defineProperties","Mx","dj","WT","Attributor","decorateMethodWithKeyName","decorateKeys","decorateCanAdd","_utils__WEBPACK_IMPORTED_MODULE_0__","originalKeyName","mQ","originCanAdd","originKeys","keyType","jf","OverriddenStyleAttributor","_StyleAttributor","StyleAttributor","KeyNameType","getKeyNameWithCustomPrefix","removeCustomPrefixFromKeyName","_formats_table_attributors_table_config__WEBPACK_IMPORTED_MODULE_0__","_formats_table_attributors_cell_config__WEBPACK_IMPORTED_MODULE_1__","ownKeys","_defineProperty","defineProperties","OVERRIDDEN_ATTRIBUTORS_TAG_INFO","_objectSpread","Sp","keyNamesSet","Pw","fU","tagInfo","keyNameWithPrefix","BlockEmbed","qz","blockDelta","E2","bubbleFormats","ZP","Block","Delta_default","parchment","blots_break","inline","blots_text","keyNames","normalizedKeyName","Scope","ATTRIBUTE","attributor","AttributorStore","Registry","ClassAttributor","fillAttributes","overrideParchment","_BlockBlot","BLOCK","insertAt","lineIndex","BlockBlot","defaultChild","allowedChildren","EmbedBlot","_EmbedBlot","_super2","BLOCK_ATTRIBUTE","descendants","LeafBlot","BLOCK_BLOT","__WEBPACK_DEFAULT_EXPORT__","Break","_ContainerBlot","ContainerBlot","_text__WEBPACK_IMPORTED_MODULE_1__","Cursor","CONTENTS","savedLength","formatAt","composing","getNativeRange","mergedTextBlot","prevTextBlot","prevTextLength","nextTextBlot","newTextNode","remapOffset","startNode","endNode","mutations","mutation","GUARD_TEXT","leftGuard","rightGuard","prevLength","_break__WEBPACK_IMPORTED_MODULE_1__","_text__WEBPACK_IMPORTED_MODULE_2__","Inline","_InlineBlot","BLOT","moveChildren","selfIndex","otherIndex","InlineBlot","_core_emitter__WEBPACK_IMPORTED_MODULE_1__","_block__WEBPACK_IMPORTED_MODULE_2__","_break__WEBPACK_IMPORTED_MODULE_3__","_container__WEBPACK_IMPORTED_MODULE_4__","_formats_table__WEBPACK_IMPORTED_MODULE_5__","_arrayWithHoles","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","_ScrollBlot","toggleBlankClass","batch","handleDragStart","SCROLL_BLOT_MOUNT","SCROLL_BLOT_UNMOUNT","_this$line2","_slicedToArray","zW","embed","INLINE_BLOT","blotIndex","blotLength","lengthLeft","forEachAt","childLength","SCROLL_OPTIMIZE","USER","takeRecords","SCROLL_BEFORE_UPDATE","SCROLL_UPDATE","ScrollBlot","escapeText","_TextBlot","TextBlot","_core_quill__WEBPACK_IMPORTED_MODULE_0__","_blots_block__WEBPACK_IMPORTED_MODULE_1__","_blots_break__WEBPACK_IMPORTED_MODULE_2__","_blots_container__WEBPACK_IMPORTED_MODULE_3__","_blots_cursor__WEBPACK_IMPORTED_MODULE_4__","_blots_embed__WEBPACK_IMPORTED_MODULE_5__","_blots_inline__WEBPACK_IMPORTED_MODULE_6__","_blots_scroll__WEBPACK_IMPORTED_MODULE_7__","_blots_text__WEBPACK_IMPORTED_MODULE_8__","_modules_clipboard__WEBPACK_IMPORTED_MODULE_9__","_modules_history__WEBPACK_IMPORTED_MODULE_10__","_modules_keyboard__WEBPACK_IMPORTED_MODULE_11__","_modules_uploader__WEBPACK_IMPORTED_MODULE_12__","lodash_clonedeep","lodash_clonedeep_default","lodash_isequal","lodash_isequal_default","lodash_merge","lodash_merge_default","blots_block","is_defined","ASCII","getDelta","immediateFormats","scrollLength","batchStart","normalizedDelta","normalizeDelta","deleteDelta","Op","addedNewline","_this$scroll$line2","AttributeMap","INLINE","addedLength","batchEnd","leaves","blots","combineFormats","_map2","_this$scroll$line4","lineOffset","convertHTML","_this$scroll$line6","suffixLength","applyDelta","selectionInfo","textBlot","relativeSelectionInfo","oldRange","shiftRange","diffDelta","deltaContainsRetain","lastIndent","_endTag","convertListHTML","_iterableToArray","_toArray","_items$","_getListType4","_getListType6","handleBreakLine","extractNodeFromBlot","outerHTML","_outerHTML$split","_outerHTML$split2","linkedList","removeTableServiceClasses","hasAttributes","attributesString","removeIndentClass","getBlotNodeAttributes","classString","eventemitter3__WEBPACK_IMPORTED_MODULE_0__","eventemitter3__WEBPACK_IMPORTED_MODULE_0___default","_utils_has_window__WEBPACK_IMPORTED_MODULE_3__","_instances__WEBPACK_IMPORTED_MODULE_1__","debug","_quill$emitter","handleDOM","_EventEmitter","_debug$log","_get2","EDITOR_CHANGE","SELECTION_CHANGE","TEXT_CHANGE","CONTENT_SETTED","API","SILENT","_console","ns","newLevel","Module","quill_delta__WEBPACK_IMPORTED_MODULE_0__","quill_delta__WEBPACK_IMPORTED_MODULE_0___default","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default","lodash_merge__WEBPACK_IMPORTED_MODULE_2__","lodash_merge__WEBPACK_IMPORTED_MODULE_2___default","parchment__WEBPACK_IMPORTED_MODULE_3__","_editor__WEBPACK_IMPORTED_MODULE_4__","_emitter__WEBPACK_IMPORTED_MODULE_5__","_module__WEBPACK_IMPORTED_MODULE_6__","_selection__WEBPACK_IMPORTED_MODULE_7__","_instances__WEBPACK_IMPORTED_MODULE_8__","_logger__WEBPACK_IMPORTED_MODULE_9__","_theme__WEBPACK_IMPORTED_MODULE_10__","_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__","globalRegistry","ParentBlot","uiClass","expandConfig","addContainer","scrollingContainer","addModule","lastRange","modify","getInitialContent","allowReadOnlyEdits","refNode","setRange","_overload2","overload","_overload4","_overload6","containerBounds","_overload7","_overload8","_overload9","_overload10","getHTML","_overload11","_overload12","hasFocus","_this6","_this7","_overload14","_this$emitter","_this$emitter2","_this$emitter3","once","_this8","_overload16","_this9","delete1","applied","delete2","_overload18","_this10","_this11","overwrite","userConfig","themeConfig","moduleConfig","moduleClass","_this$emitter4","_this$emitter5","transformPosition","_map4","lodash_isequal__WEBPACK_IMPORTED_MODULE_2__","lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default","_emitter__WEBPACK_IMPORTED_MODULE_3__","_arrayWithoutHoles","_nonIterableSpread","mouseDown","savedRange","lastNative","handleComposition","handleDragging","listenDOM","setNativeRange","_context$range","nativeRange","_this$scroll$leaf","_this$scroll$leaf2","_this$getPositionData","getPositionData","_this$getPositionData2","createRange","setStart","_this$scroll$leaf3","_this$scroll$leaf4","_this$getPositionData3","_this$getPositionData4","setEnd","_ownerDocument$getSel","_ownerDocument$getSel2","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","_toConsumableArray","startContainer","endContainer","_this5$scroll$leaf2","_this5$getPositionDat2","inclusive","scrollBounds","rangeToNative","_this$getRange","_this$getRange2","ModuleClass","HE","dk","AlignClass","if","AlignAttribute","BackgroundClass","BackgroundStyle","_color__WEBPACK_IMPORTED_MODULE_1__","OO","_Inline","EK","Code","CodeBlock","CodeBlockContainer","_blots_block__WEBPACK_IMPORTED_MODULE_0__","_blots_break__WEBPACK_IMPORTED_MODULE_1__","_blots_cursor__WEBPACK_IMPORTED_MODULE_2__","_blots_inline__WEBPACK_IMPORTED_MODULE_3__","_blots_text__WEBPACK_IMPORTED_MODULE_4__","_blots_container__WEBPACK_IMPORTED_MODULE_5__","_core_quill__WEBPACK_IMPORTED_MODULE_6__","_Container","_Block","_super3","requiredContainer","TAB","HQ","ColorStyle","Hn","ColorClass","ColorAttributor","H8","IF","DirectionAttribute","hY","DirectionClass","FontClass","FontStyleAttributor","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","protocol","SizeClass","Du","CELL_FORMATS","h6","CELL_ATTRIBUTORS","TABLE_CELL_STYLE_ATTRIBUTORS","yA","TABLE_CELL_ATTR_ATTRIBUTORS","_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__","_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__","_cell_config__WEBPACK_IMPORTED_MODULE_2__","Mu","styleName","TABLE_CELL_ATTRIBUTES","TABLE_CELL_STYLES","TABLE_CELL_KEY_NAME_SET","prepareAttributor","_attributors_attributor__WEBPACK_IMPORTED_MODULE_0__","_utils_capitalize__WEBPACK_IMPORTED_MODULE_2__","_attributors_utils__WEBPACK_IMPORTED_MODULE_1__","domAttrName","elementConfig","excluded","sourceKeys","sourceSymbolKeys","_objectWithoutProperties","prepareStyleAttributor","_attributors_style_attributor__WEBPACK_IMPORTED_MODULE_0__","_prop$split2","propSubName","Qu","TABLE_ATTR_ATTRIBUTORS","VT","TABLE_STYLE_ATTRIBUTORS","Zt","TABLE_ATTRIBUTORS","_table_config__WEBPACK_IMPORTED_MODULE_2__","N2","GX","TABLE_STYLES","TABLE_ATTRIBUTES","tableConfig","TABLE_KEY_NAME_SET","KA","TableHeaderRow","Lv","tableId","RM","TableBody","SC","TableRow","iD","HeaderCellLine","pj","TableCell","xD","TableHeader","xJ","TableContainer","TableHeaderCell","CellLine","_blots_container__WEBPACK_IMPORTED_MODULE_2__","_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__","_attributors_cell__WEBPACK_IMPORTED_MODULE_3__","_attributors_table__WEBPACK_IMPORTED_MODULE_4__","_get_id__WEBPACK_IMPORTED_MODULE_7__","_toggle_attribute__WEBPACK_IMPORTED_MODULE_5__","CELL_IDENTITY_KEYS","DATA_PREFIX","tableCellLine","_this$cell","_this$cell2","_value$key","identityMarker","cellId","_CellLine","BaseCell","_CELL_FORMATS$name","thisHead","thisTail","nextHead","nextTail","cellFormats","_this$row","_this$domNode$getAttr","_get3","deleteChildrenAt","_CELL_FORMATS$format","_domNode$getAttribute","_domNode$firstElement","_BaseCell","_super4","dataAttribute","_BaseCell2","_super5","BaseRow","_Container2","_super6","_get4","childFormatName","childFormats","nextFormats","splitAfter","_this$parent","_BaseRow","_super7","_BaseRow2","_super8","RowContainer","_Container3","_super9","_get5","_this$children$head$c","_RowContainer","_super10","_RowContainer2","_super11","_Container4","_super12","headerRows","bodyRows","getMaxTableColCount","balanceRows","getMaxRowColCount","CellClass","cellLine","tablePart","CellBlot","CellLineBlot","emptyLine","newHeader","childElem","tableFormat","_TABLE_FORMATS$format","toggleAttribute","HI","PF","deltaEndsWith","fw","traverse","parchment__WEBPACK_IMPORTED_MODULE_1__","_blots_block__WEBPACK_IMPORTED_MODULE_2__","_core_quill__WEBPACK_IMPORTED_MODULE_3__","_core_logger__WEBPACK_IMPORTED_MODULE_4__","_core_module__WEBPACK_IMPORTED_MODULE_5__","_formats_align__WEBPACK_IMPORTED_MODULE_6__","_formats_background__WEBPACK_IMPORTED_MODULE_7__","_formats_code__WEBPACK_IMPORTED_MODULE_8__","_formats_color__WEBPACK_IMPORTED_MODULE_9__","_formats_direction__WEBPACK_IMPORTED_MODULE_10__","_formats_font__WEBPACK_IMPORTED_MODULE_11__","_formats_size__WEBPACK_IMPORTED_MODULE_12__","_keyboard__WEBPACK_IMPORTED_MODULE_13__","_utils_capitalize__WEBPACK_IMPORTED_MODULE_14__","CLIPBOARD_CONFIG","matchText","matchNewline","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","isTable","strike","composed","matchAlias","HTML_TEXT_MATCHERS","_Module","_options$tableBlots","onCaptureCopy","onCapturePaste","multilineParagraph","addMatcher","keepLastNewLine","applyMatchers","applyTextMatchers","prepareTextMatching","nodeMatches","_this$prepareMatching","prepareMatching","_this$prepareMatching2","elementMatchers","textMatchers","_this$quill$selection","_this$quill$selection2","_this$onCopy","raiseCallback","WQ","childElementCount","pastedDelta","_pair","matchPlainText","_pair2","endText","preNodes","isPre","childrenDelta","isNextNodeList","reducedDelta","replacer","collapse","replaced","previousSibling","_core_quill__WEBPACK_IMPORTED_MODULE_1__","_core_module__WEBPACK_IMPORTED_MODULE_2__","lastRecorded","ignoreChange","userOnly","dest","inverseDelta","deleteLength","changeIndex","lastOp","endsWithNewlineChange","getLastChangeIndex","changeDelta","undoDelta","maxStack","transformStack","remoteDelta","Keyboard","deleteRange","core_quill","core_module","has_window","KEY_NAMES","spacebar","subtract","esc","SHORTKEY","addInternalBindings","handleEnter","handleBackspace","handleDelete","handleDeleteRange","keyBinding","binding","keyPropery","singleBinding","raiseOnKeydownCallback","_this4$quill$getLine2","getLine","_this4$quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","handlerResult","preventAfterAllMatches","isPrevLineEmpty","isPrevLineTable","isLineEmpty","curFormats","prevFormats","formatDelta","lineFormats","scrollConfig","_element$getBoundingC","getScrollIntoViewConfig","isKeySupported","ke","firstFormats","lastFormats","makeFormatHandler","outdent","makeCodeBlockHandler","tableHeaderCellLine","tableHeaderCell","cutoff","_this$quill$getLine12","_this$quill$getLine14","blockquote","_this$quill$getLine16","_this$quill$getLine18","numLines","makeEmbedArrowHandler","Syntax","_blots_inline__WEBPACK_IMPORTED_MODULE_2__","_core_module__WEBPACK_IMPORTED_MODULE_4__","_blots_block__WEBPACK_IMPORTED_MODULE_5__","_blots_break__WEBPACK_IMPORTED_MODULE_6__","_blots_cursor__WEBPACK_IMPORTED_MODULE_7__","_formats_code__WEBPACK_IMPORTED_MODULE_9__","_clipboard__WEBPACK_IMPORTED_MODULE_10__","_utils_has_window__WEBPACK_IMPORTED_MODULE_11__","TokenAttributor","CodeToken","unwrap","SyntaxCodeBlock","_CodeBlock","SyntaxCodeBlockContainer","_CodeBlockContainer","forceNext","emitMount","_highlight","forced","uiNode","cachedText","hljs","highlightBlot","initListener","initTimer","attachUI","nodeText","_core_quill__WEBPACK_IMPORTED_MODULE_2__","_core_module__WEBPACK_IMPORTED_MODULE_3__","_formats_table__WEBPACK_IMPORTED_MODULE_4__","_clipboard__WEBPACK_IMPORTED_MODULE_5__","_utils_make_table_arrow_handler__WEBPACK_IMPORTED_MODULE_6__","_utils_prepare_attr_matcher__WEBPACK_IMPORTED_MODULE_7__","_formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_8__","_formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_9__","_utils_insert_pr_above__WEBPACK_IMPORTED_MODULE_10__","EMPTY_RESULT","addImmediateFormat","integrateClipboard","addKeyboardHandlers","listenBalanceCells","addTableBlot","matchCell","keyboardBindings","balanceCells","_this$getTable2","cellOffset","_this$quill$getLine","_this$quill$getLine2","_this$getTable8","insertColumn","_this$getTable10","insertRow","_this$getTable12","balanceTables","old","cellLineBlotName","lite","get_id","toggle_attribute","_this$row2","make_table_arrow_handler","insertIndex","insert_pr_above","prepare_attr_matcher","lite_typeof","lite_arrayWithHoles","lite_iterableToArrayLimit","lite_arrayLikeToArray","lite_unsupportedIterableToArray","lite_nonIterableRest","lite_toPropertyKey","lite_toPrimitive","lite_setPrototypeOf","lite_assertThisInitialized","lite_getPrototypeOf","TableLite","lite_inherits","lite_isNativeReflectConstruct","lite_possibleConstructorReturn","lite_createSuper","lite_classCallCheck","lite_createClass","lite_defineProperties","matchTable","lite_slicedToArray","_module$getTable2","tableSide","insertParagraphAbove","_module$getTable4","insertParagraphBelow","makeTableArrowHandler","targetTablePart","targetLine","prepareAttributeMatcher","prepareCellAttributeMatcher","_attributors_attributor__WEBPACK_IMPORTED_MODULE_1__","_attributors_style_attributor__WEBPACK_IMPORTED_MODULE_2__","_clipboard__WEBPACK_IMPORTED_MODULE_3__","override","attributors","queryAttr","queryAttrValue","writeToRecord","attrValue","fillFormats","_node$parentNode","parentTrNode","Uploader","addDragOverHandler","addDropHandler","noFiles","preventImageUpload","caretRangeFromPoint","caretPositionFromPoint","offsetNode","mimetypes","capitalize","attributor_class","blot_embed","abstract_parent","src_scope","blot_scroll","blot_text","LEVEL","INLINE_ATTRIBUTE","ANY","LinkedList","curNode","curIndex","curLength","linked_list","_extendStatics","ParchmentError","tags","blotClass","Element","definitions","definition","tagNames","ShadowBlot","replacement","_force","_mutations","parent_extends","makeAttachedBlot","enforceAllowedChildren","Oe","childBlot","refBlot","refDomNode","targetParent","_length","addedNodes","removedNodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","container_extends","checkMerge","leaf_extends","_domNode","_inclusive","canAdd","_node","class_extends","style_extends","inline_extends","obj1","obj2","block_extends","embed_extends","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MutationObserver","Te","mutationsMap","records","markParent","grandChild","text_extends","EE","_eventsCount","listenerCount","a3","a4","a5","clearEvent","removeAllListeners","prefixed","DIFF_DELETE","cursor_pos","_fix_unicode","editdiff","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","prefixLength","oldPrefix","newPrefix","make_edit_splice","oldSuffix","newSuffix","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","best_common","text1_a","text1_b","text2_a","text2_b","hm1","diff_halfMatchI_","hm2","diff_halfMatch_","mid_common","diffs_a","diff_main","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","front","k1start","k1end","k2start","k2end","k1_offset","k2_offset","diff_bisectSplit_","diff_bisect_","diff_compute_","diff_cleanupMerge","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","pointerend","is_surrogate_pair_end","fix_unicode","count_delete","count_insert","text_delete","text_insert","previous_equality","ends_with_pair_start","stray","starts_with_pair_end","charCode","oldMiddle","newMiddle","tuples","remove_empty_tuples","INSERT","DELETE","EQUAL","nmd","HASH_UNDEFINED","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeSelf","Function","freeExports","freeModule","moduleExports","iteratee","initAccum","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","IE_PROTO","funcToString","objectToString","reIsNative","Buffer","getPrototype","overArg","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","__data__","ListCache","objValue","isDeep","customizer","isArr","initCloneArray","copyArray","getTag","isFunc","cloneBuffer","isHostObject","isPrototype","baseCreate","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","cloneArrayBuffer","dataView","byteOffset","cloneDataView","typedArray","cloneTypedArray","arrayReduce","mapToArray","addMapEntry","cloneMap","cloneRegExp","setToArray","addSetEntry","cloneSet","cloneSymbol","initCloneByTag","baseClone","Stack","stacked","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","assignValue","isKeyable","isMasked","baseIsNative","Hash","assocIndexOf","MapCache","getMapData","LARGE_ARRAY_SIZE","ctorString","isLength","inherited","isObjectLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","arrayLikeKeys","baseKeys","arrayTag","errorTag","typedArrayTags","freeGlobal","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","nativeObjectToString","symToStringTag","isOwn","unmasked","getRawTag","baseGetTag","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","isPartial","objProps","objLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsEqual","arrLength","othLength","seen","SetCache","arrValue","arraySome","othIndex","cacheHas","resIndex","arrayFilter","baseIsArguments","baseUnary","isArg","isBuff","isType","thisArg","objectCtorString","allocUnsafe","nativeMax","nativeNow","baseAssignValue","baseFor","fromRight","iterable","createBaseFor","srcIndex","srcValue","mergeFunc","safeGet","assignMergeValue","isCommon","isTyped","Ba","Tt","zo","keysIn","toPlainObject","baseMergeDeep","baseMerge","baseSetToString","zt","constant","setToString","lastCalled","stamp","shortOut","nativeKeysIn","isProto","baseKeysIn","assigner","overRest","baseRest","isIterateeCall","createAssigner","cloneDeep","keepNull","baseInverted","OpIterator","AttributeMap_1","Op_1","OpIterator_1","NULL_CHARACTER","getEmbedTypeAndData","embedType","newOp","chop","passed","failed","changeLength","hasNext","nextOp","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","thisData","otherData","strings","retDelta","diffResult","opLength","eachLine","newline","opData","baseOpData","transformedData","nextType","retOp","__unused_webpack_exports","entryUnbind","isCallable","tryToString","$TypeError","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","toAbsoluteIndex","lengthOfArrayLike","argumentsLength","endPos","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","iteratorMethod","toIndexedObject","IS_INCLUDES","$this","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","callee","getOwnPropertyDescriptorModule","definePropertyModule","MATCH","METHOD_NAME","error1","error2","fails","DESCRIPTORS","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","makeBuiltIn","defineGlobalProperty","global","unsafe","nonConfigurable","nonWritable","documentAll","IS_HTMLDDA","EXISTS","Deno","v8","CONSTRUCTOR","METHOD","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","aCallable","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","classof","getMethod","isNullOrUndefined","Iterators","usingIterator","globalThis","getBuiltIn","functionToString","inspectSource","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","facade","STATE","enforce","getterFor","$documentAll","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","detection","POLYFILL","NATIVE","isRegExp","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","ENUMERABLE_NEXT","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","activeXDocument","definePropertiesModule","enumBugKeys","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","NullProtoObjectViaIFrame","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","TAG","SHARED","copyright","toIntegerOrInfinity","requireObjectCoercible","CONVERT_TO_STRING","codeAt","V8_VERSION","IndexedObject","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","addToUnscopables","checkCorrectnessOfIteration","$values","notARegExp","correctIsRegExpLogic","nativeEndsWith","CORRECT_IS_REGEXP_LOGIC","defineIterator","createIterResultObject","STRING_ITERATOR","setInternalState","iterated","__webpack_module_cache__","moduleId","cachedModule","IndentAttributor","_ClassAttributor","blockquote_typeof","blockquote_toPropertyKey","blockquote_toPrimitive","blockquote_setPrototypeOf","blockquote_assertThisInitialized","blockquote_getPrototypeOf","Blockquote","blockquote_inherits","blockquote_isNativeReflectConstruct","blockquote_possibleConstructorReturn","blockquote_createSuper","blockquote_classCallCheck","blockquote_defineProperties","blockquote_createClass","header_typeof","header_toPropertyKey","header_toPrimitive","header_setPrototypeOf","header_assertThisInitialized","header_getPrototypeOf","Header","header_inherits","header_isNativeReflectConstruct","header_possibleConstructorReturn","header_createSuper","header_classCallCheck","header_createClass","header_defineProperties","list_typeof","list_get","list_superPropBase","list_getPrototypeOf","list_toPropertyKey","list_defineProperties","list_toPrimitive","list_setPrototypeOf","list_isNativeReflectConstruct","list_possibleConstructorReturn","list_assertThisInitialized","ListContainer","list_inherits","list_createSuper","list_classCallCheck","list_createClass","ui","listEventHandler","italic_typeof","italic_toPropertyKey","italic_toPrimitive","italic_setPrototypeOf","italic_assertThisInitialized","italic_getPrototypeOf","_Bold","italic_inherits","italic_isNativeReflectConstruct","italic_possibleConstructorReturn","italic_createSuper","italic_classCallCheck","italic_defineProperties","italic_createClass","formats_link","script_typeof","script_toPropertyKey","script_toPrimitive","script_get","script_superPropBase","script_getPrototypeOf","script_setPrototypeOf","script_assertThisInitialized","Script","script_inherits","script_isNativeReflectConstruct","script_possibleConstructorReturn","script_createSuper","script_classCallCheck","script_createClass","script_defineProperties","strike_typeof","strike_toPropertyKey","strike_toPrimitive","strike_setPrototypeOf","strike_assertThisInitialized","strike_getPrototypeOf","Strike","strike_inherits","strike_isNativeReflectConstruct","strike_possibleConstructorReturn","strike_createSuper","strike_classCallCheck","strike_defineProperties","strike_createClass","underline_typeof","underline_toPropertyKey","underline_toPrimitive","underline_setPrototypeOf","underline_assertThisInitialized","underline_getPrototypeOf","underline_inherits","underline_isNativeReflectConstruct","underline_possibleConstructorReturn","underline_createSuper","underline_classCallCheck","underline_defineProperties","underline_createClass","blots_embed","formula_typeof","formula_toPropertyKey","formula_toPrimitive","formula_get","formula_superPropBase","formula_getPrototypeOf","formula_setPrototypeOf","formula_assertThisInitialized","Formula","_Embed","formula_inherits","formula_isNativeReflectConstruct","formula_possibleConstructorReturn","formula_createSuper","formula_classCallCheck","formula_createClass","formula_defineProperties","_this$value","formula","katex","throwOnError","errorColor","image_typeof","image_toPropertyKey","image_toPrimitive","image_get","image_superPropBase","image_getPrototypeOf","image_setPrototypeOf","image_assertThisInitialized","ATTRIBUTES","image_inherits","image_isNativeReflectConstruct","image_possibleConstructorReturn","image_createSuper","image_classCallCheck","image_createClass","image_defineProperties","Un","formats_image","video_typeof","video_toPropertyKey","video_toPrimitive","video_get","video_superPropBase","video_getPrototypeOf","video_setPrototypeOf","video_assertThisInitialized","video_ATTRIBUTES","Video","_BlockEmbed","video_inherits","video_isNativeReflectConstruct","video_possibleConstructorReturn","video_createSuper","video_classCallCheck","video_createClass","video_defineProperties","video","syntax","multiline_break_typeof","multiline_break_toPropertyKey","multiline_break_toPrimitive","multiline_break_setPrototypeOf","multiline_break_assertThisInitialized","multiline_break_getPrototypeOf","MultilineBreak","multiline_break_inherits","multiline_break_isNativeReflectConstruct","multiline_break_possibleConstructorReturn","multiline_break_createSuper","multiline_break_classCallCheck","multiline_break_createClass","multiline_break_defineProperties","multiline_break","multiline_typeof","multiline_toPropertyKey","multiline_toPrimitive","multiline_setPrototypeOf","multiline_assertThisInitialized","multiline_getPrototypeOf","multilineBreak","multiline_inherits","Multiline","multiline_isNativeReflectConstruct","multiline_possibleConstructorReturn","multiline_createSuper","multiline_classCallCheck","enterHandler","breakMatcher","multiline_createClass","multiline_defineProperties","currentLeaf","nextLeaf","attributors_table","quill_typeof","quill_defineProperty","quill_toPrimitive","quill_toPropertyKey","Ye","attributorArray","registerAttributorArray","wrapOverridden","baseProto","prevCallBase","redefine","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","parentClass","baseClass","copyStatic","classImpl","inheritor","includedCtors","includedPostCtors","clonePrototype","oDataFilterToLower","serverDecimalSeparator","useLegacyStoreResult","useJQuery","normalizeToJSONString","exNormalize","deprecatedFields","configMethod","deprecatedField","DevExpress","nativeDOMAdapterStrategy","elementMatches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","createAttribute","isDocumentFragment","insertElement","setClass","isAdd","_element$getRootNode","_element$getRootNode2","getBody","createDocumentFragment","getDocumentElement","getReadyState","readyState","getHead","hasDocumentProperty","elementsFromPoint","activeElementHolder","getShadowElementsFromPoint","strategyChanging","beforeCleanDataFunc","cleanSelf","childElements","cleanData","afterCleanDataFunc","setDataStrategy","E0001","E0002","E0003","E0004","E0005","E0006","E0007","E0008","E0009","E0010","E0011","E0012","E0013","E0014","E0015","E0017","E0018","E0020","E0021","E0022","E0023","E0024","E0025","E0100","E0101","E0102","E0103","E0110","E0120","E0121","W0000","W0001","W0002","W0003","W0004","W0005","W0006","W0007","W0008","W0009","W0010","W0011","W0012","W0013","W0014","W0015","W0016","W0017","W0018","W0019","W0020","W0021","W0022","_normalize","_generate","initRender","dxRenderer","repeatMethod","setAttributeValue","isTablePart","appendElements","setCss","queryId","_element$host","getClientRects","parentChildNodes","offsetProp","scrollWindow","directionStrategy","getWindowByElement","rendererWrapper","SUCCESS","ERROR","createScript","removeScript","appendToHead","evalScript","crossDomain","originAnchor","urlAnchor","isCrossDomain","needScriptEvaluation","callbackName","jsonpCallback","callbackParameter","jsonp","getJsonpOptions","defaultContentType","contentType","getContentTypeHeader","Accept","scriptAccept","accepts","getAcceptHeader","getRequestHeaders","paramsAlreadyString","paramsConvert","getRequestOptions","evalCrossDomainScript","loadHandler","customStatus","setHttpTimeout","onreadystatechange","isStatusSuccess","hasContent","getDataFromResponse","_wrappedHandler","Callback","_firing","_firingIndexes","_fireCore","firingIndexes","executingName","normalizedContext","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","targetValue","mismatch","valueItem","_raw$x","_raw$y","checkFunction","expectedCheck","DEFAULT_EQUAL_BY_VALUE_OPTS","comparable1","comparable2","comparisonResult","object1","object2","keys2Set","compareOptions","getConsoleMethod","unwrapVariable","bracketsToDots","assignPropValue","prepareOptions","functionAsIs","combineGetters","compiledGetters","ensurePropValueDefined","lastLevelIndex","levelIndex","propertyValue","readPropValue","isPropertyFunc","caseSensitive","_options$collatorOpti","collatorOptions","REMOVE_DIACRITICAL_MARKS_REGEXP","toLocaleLowerCase","deferredConfig","_DeferredObj","whenFunc","resolvedCount","BaseClass","InjectedClass","initialFields","injectFields","injectionObject","resetInjection","ERROR_URL","baseErrors","makeError","combineMessage","formatMessage","formatDetails","getErrorUrl","__id","__details","overrideExistingValues","sourceValueIsArray","isTagName","tagWrappers","tagsCount","startTags","endTags","colgroup","tfoot","firstRootTag","tagWrapper","_upperCaseFirst","_chop","upperFirst","DIGIT_CHARS","captionList","isPrevCharNewWord","isNewWord","reverseEach","Clone","isNumberX","isNumberY","assignValueToProperty","assignByReference","extendComplexObject","subscribeReady","windowExists","ownerDocumentStyleSheet","CSSStyleSheet","styleElement","sheet","targetStyleSheet","needApplyAllStyles","insertRule","_rule$selectorText","_rule$cssRules","_rule$cssRules$","_rule$cssRules$$selec","_rule$name","_rule$style","processRules","createConstructedStyleSheet","currentShadowDomStyleSheet","adoptedStyleSheets","elementQueue","shiftIndex","isPositionInElementRectangle","SPECIAL_HEIGHT_VALUES","getSizeByStyles","beforeName","afterName","_element$ownerDocumen","getCSSProperty","_element$style","boxIndices","dimensionComponents","offsetFieldName","currentBox","targetBoxIndex","currentBoxIndex","scrollThickness","boxPart","getComponentThickness","paddingAndBorder","getContainerHeight","getHeightWithOffset","withMargins","boxParams","boundingClientRect","elementSizeHelper","implementationsMap","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len11","_key11","partialName","isOuter","isInner","sizeAdjustment","isBorderBox","boxSizing","ae","docElem","clientTop","clientLeft","encodeRegExp","quad","splitQuad","placeholderReg","SPACE_REGEXP","jsPrefixes","cssPrefixes","Webkit","Moz","originalName","prefixedProp","cssPrefixesCount","jsPrefix","forEachPrefixes","specific","pxExceptions","setDimensionProperty","styleString","resetStyle","styleList","stylePart","typeOfObject","jquery","isWritableWrapped","hasWindowValue","windowObject","screenFactorCallback","storeImpl","_requireKey","_withLock","processRequestResultLock","_totalCountImpl","_addFailHandlers","callbackValues","callbackKey","beforePushArgs","registerClass","Iterator","countable","ArrayIterator","WrappedIterator","MapIterator","SortIterator","_wrap","sortedIter","_ensureSorted","_compare","_unwrap","wrappedItem","_getDefaultCompare","Collator","xIndex","yIndex","rulesCount","compareResult","compileCriteria","negate","isGroupCriterion","isConjunctiveOperator","isConjunctiveNextOperator","isConjunctiveOperatorChecker","isUnaryOperation","normalizeBinaryCriterion","operatorFn","compileEquals","getterValue","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","SelectIterator","SliceIterator","handleDataError","aggregateCore","standardAggregate","chainQuery","selectProp","setLangParams","findItems","_dataByKeyMap","_dataByKeyMapLength","clonedInstances","instanceWithoutPrototype","cloneInstanceWithChangedPaths","immutable","disableCache","dataByKeyMap","arrayLength","generateDataByKeyMap","isBatch","keyOrKeys","getErrorResult","getCacheValue","setDataByKeyMapValue","getHasKeyCacheValue","TOTAL_COUNT","LOAD","BY_KEY","UPDATE","REMOVE","promiseArguments","errorMessageFromXhrUtility","errorMessageFromXhr","XHR_ERROR_UNLOAD","userFunc","_loadFunc","ensureRequiredFuncOption","throwInvalidUserFuncResult","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","invokeUserLoad","_cacheRawData","createUserFuncFailureHandler","countOnly","runRawLoad","itemsQuery","totalCountQuery","rawDataQuery","arrayQuery","waitList","cacheRawData","_totalCountFunc","_byKeyFunc","_insertFunc","_removeFunc","clearRawDataCache","invokeUserTotalCountFunc","runRawLoadWithQuery","runRawLoadWithKey","invokeUserByKeyFunc","serverResponse","coreErrors","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","multiLevelGroup","filteredGroup","arrangeSortingInfo","_query$setLangParams","_query","unloading","textStatusMessages","parsererror","lockDeferred","obtain","base64_encode","stringToByteArray","octet1","octet2","octet3","getBase64Char","isGroupOperator","throttled","throttle","touchPropsToHook","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","specialData","elementDataMap","special","registerEventCallbacks","callMethod","normalizeOnArguments","getHandlersController","oneTimeHandler","normalizeOffArguments","normalizeTriggerArguments","handlersController","callHandlers","_element$parentNode","nativeMethodName","localName","callNativeMethod","itemArgs","applyForEach","passiveEventHandlersSupported","isSupported","DOCUMENT_POSITION_CONTAINS","eventNameParts","eventNameIsDefined","handleObjects","nativeHandler","callHandler","secondaryTargetIsInside","handlerArgs","handleObject","wrappedHandler","matchesSafe","nativeListenerOptions","shouldAddNativeListener","subscribeName","getNativeHandler","removeByEventName","removedHandler","isSubset","forceStop","handleCallback","isImmediatePropagationStopped","iterateEventNames","EventClass","hook","eventInstance","initEvent","_propagationStopped","_immediatePropagationStopped","_defaultPrevented","propagationStopped","normalizeEventArguments","_src$view","isTrusted","addProperty","calculateWhich","touchPropHook","hookTouchProps","beforeSetStrategy","afterSetStrategy","subscribeGlobal","offArgs","exists","true","false","Se","createReadStream","abrupt","sheetName","dateFormats","parserOptions","getWorksheet","sheetId","formatterOptions","dateFormat","dateUTC","hyperlink","includeEmptyRows","eachRow","encoding","createWriteStream","dayjs","decodeAddress","nativeCol","nativeColOff","nativeRow","nativeRowOff","isCustomWidth","slideFormula","_row","_column","validateAddress","_address","Types","Null","_mergeStyle","_mergeCount","protection","toCsvString","isMergedTo","Hyperlink","definedNames","addEx","removeEx","removeAllNames","letter","effectiveType","_comment","escapeHtml","formulaType","getNamesEx","dataValidations","_dataValidations","comment","fromModel","ValueType","richText","RichText","toISOString","_master","addMergeRef","releaseMergeRef","shareType","sharedFormula","_translatedFormula","findCell","_copyModel","_getTranslatedFormula","FormulaType","Master","Shared","SharedString","sharedString","_worksheet","defn","equivalentTo","eachCell","n2l","_hidden","getColumnKey","deleteColumnKey","setColumnKey","_outlineLevel","outlineLevelCol","matrixMap","decodeEx","getMatrix","addCellEx","removeCellEx","findCellEx","findCellAt","_explore","$shortRange","forEachInSheet","spliceRows","normaliseMatrix","spliceColumns","getRanges","addCell","RelationshipType","OfficeDocument","Worksheet","CalcChain","SharedStrings","Styles","DocumentType","Xlsx","ReadingOrder","LeftToRight","RightToLeft","ErrorValue","NotApplicable","Ref","Name","DivZero","Value","Num","imageId","hyperlinks","ext","editAs","deepMerge","DEFAULT_CONFIGS","insetmode","inset","lockText","setTLBR","containsEx","encodeAddress","_serialisedSheetName","$t$l","$b$r","_commitRow","l2n","getCellEx","includeEmpty","man","rowBreaks","eachColumnKey","outlineLevelRow","$col$row","cacheState","_set","filterButton","totalsRowLabel","totalsRowFunction","totalsRowResult","totalsRowFormula","autoFilterRef","filterHeight","getFormula","totalsRow","_assign","displyName","showFirstColumn","showLastColumn","showRowStripes","showColumnStripes","company","calcProperties","_worksheets","media","_definedNames","trace","tabColor","argb","indexed","orderNo","worksheets","_themes","_xlsx","_csv","lastModifiedBy","lastPrinted","sheets","revision","contentStatus","_merges","_workbook","defaultRowHeight","dyDescent","pageSetup","horizontalDpi","verticalDpi","fitToPage","fitToHeight","pageOrder","blackAndWhite","draft","cellComments","paperSize","showRowColHeaders","showGridLines","firstPageNumber","horizontalCentered","verticalCentered","colBreaks","headerFooter","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","_media","sheetProtection","conditionalFormattings","removeWorksheetEx","_nextRow","_setStyleOption","findRow","_copyStyle","getRows","hasValues","getAddress","_mergeCellsInternal","intersects","unmerge","_unMergeMaster","spinCount","algorithmName","saltValue","randomBytes","hashValue","convertPasswordToHash","mergeCellsWithoutStyle","_headerRowCount","_lastRowNumber","toModel","merges","_parseRows","_parseMergeCells","TextDecoder","bufferToString","TextEncoder","stringToBuffer","getCellAt","findSheet","findSheetRow","findRowCell","_l2nFill","_l2n","_n2l","_fill","_hash","createHash","digest","getHashes","alloc","writeUInt32LE","_invoke","SaxesParser","PassThrough","t0","saxes","_encoding","toBuffer","_buf","iRead","iWrite","bufSize","buffers","corked","inPos","outPos","pipes","paused","Duplex","_getWritableBuffer","_pipe","_writeToBuffers","nop","cork","_flush","uncork","eod","setEncoding","pause","isPaused","unpipe","_process","_inPos","_grow","capacity","keyBy","strcmp","promiseImmediate","setImmediate","super_","dateToExcel","excelToDate","parsePath","getRelsPath","xmlEncode","xmlDecode","validInt","isDateFmt","F_OK","toIsoDateString","toIsoString","subsstr","_xml","_stack","_rollbacks","tos","writeText","closeNode","closeAll","StdDocAttributes","ZipWriter","jszip","CoreProperties","ExtenderProperties","Comments","VmlDrawing","xform","parseOpen","parseClose","toXml","toAttribute","localSheetId","_parsedName","_parsedLocalSheetId","_parsedText","leafNode","rId","calcId","fullCalcOnLoad","date1904","defaultThemeVersion","filterPrivacy","xWindow","yWindow","firstSheet","activeTab","fileVersion","STATIC_XFORMS","workbookPr","bookViews","childXform","calcPr","printArea","printTitlesRow","printTitlesColumn","openXml","WORKBOOK_ATTRIBUTES","workbookRels","Id","worksheetHash","Target","appName","lastEdited","lowestEdited","rupBuild","richTextXform","_richTextXform","authorId","COMMENTS_ATTRIBUTES","comments","getAnchorRect","getDefaultRect","refAddress","ObjectType","normalizeModel","DRAWING_ATTRIBUTES","coordsize","joinstyle","gradientshapeok","anchors","reconcile","V_SHAPE_ATTRIBUTES","obscured","fillcolor","strokecolor","conversionUnit","reverseConversionUnit","createNewModel","onParserClose","Company","Manager","HeadingPairs","TitleOfParts","PROPERTY_ATTRIBUTES","DateFormat","DateAttrs","Extension","ContentType","PartName","sharedStrings","drawings","commentRefs","commentName","CORE_PROPERTY_ATTRIBUTES","Relationship","RELATIONSHIPS_ATTRIBUTES","rels","mediaIndex","cstate","noChangeAspect","anchorType","prepare","uri","addAttribute","picture","medium","reconcilePicture","mergeModel","prst","$count","maxItems","richTextXForm","addStyleModel","styleId","ssId","siFormulae","formulae","expandToAddress","renderFormula","getStyleModel","getString","hyperlinkMap","commentsMap","iconSet","iconId","toIntValue","v4","databarXform","iconSetXform","isExt","x14Id","renderDataBar","renderIconSet","uuid","fExtXform","sqRef","cfRule","cfXform","hasExtContent","cfvoXform","borderColorXform","negativeBorderColorXform","negativeFillColorXform","axisColorXform","toIntAttribute","toBoolAttribute","negativeBarColorSameAsPositive","negativeBarBorderColorSameAsPositive","cfvo","negativeBorderColor","negativeFillColor","toBoolValue","toStringValue","cfIconXform","toStringAttribute","showValue","icons","dataBar","extLst","extLstRefXform","formulaXform","colorScale","colorScaleXform","renderExpression","renderCellIs","renderTop10","renderAboveAverage","renderColorScale","renderTimePeriod","dxfId","rank","aboveAverage","timePeriod","toFloatValue","colorXform","sqref","addDxfStyle","getDxfStyle","idXform","bestFit","dataValidation","marked","allowBlank","showInputMessage","promptTitle","prompt","showErrorMessage","errorStyle","errorTitle","_dataValidation","_formula","forEachAddress","addRollback","commit","rollback","useFirstPageNumber","usePrinterDefaults","copies","headings","gridLines","numRowsSeen","spans","defaultColWidth","customHeight","pageSetUpPr","outlinePr","selectLockedCells","selectUnlockedCells","formatCells","formatColumns","formatRows","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","pivotTables","scenarios","frozen","frozenSplit","workbookViewId","tabSelected","showRuler","zoomScale","zoomScaleNormal","xSplit","activePane","activeCell","sheetView","selections","maxRows","maxCols","sheetPr","sheetViews","sheetFormatPr","sheetData","pageMargins","printOptions","drawing","tableParts","conditionalFormatting","Type","TargetMode","vmlDrawing","drawingsCount","preImageId","WORKSHEET_ATTRIBUTES","relationships","vmlDrawings","addAttributes","writeXml","eb","fontXform","textXform","_textXform","_fontXform","FONT_OPTIONS","fontNameTag","rPh","rich","addRichText","addText","sharedStringXform","uniqueCount","_sharedStringXform","horizontalValues","verticalValues","shrinkToFit","textRotation","readingOrder","validStyleValues","diagonal","diagonalUp","diagonalDown","tint","fgColor","bgColor","patternType","degree","patternFill","gradientFill","validPatternValues","StopXform","PatternFillXform","GradientFillXform","OPTIONS","charset","condense","outline","vertAlign","sz","formatCode","numFmtId","getDefaultFmtId","getDefaultFmtCode","xfId","fontId","borderId","numFmts","fonts","fills","borders","cellStyleXfs","cellXfs","dxfs","numFmtNextId","initIndex","_addBorder","_addStyle","_addFill","weakMap","STYLESHEET_ATTRIBUTES","_addFont","_addNumFmtStr","builtinId","defaultTableStyle","defaultPivotStyle","defaultSlicerStyle","defaultTimelineStyle","autodrain","dateStyleId","_dateStyleId","Mock","double","singleAccounting","doubleAccounting","filterColumn","colId","hiddenButton","tableColumns","tableStyleInfo","totalsRowCount","totalsRowShown","headerRowCount","readFile","parseStream","drawingRels","worksheetRels","sheetNo","globalRels","sheetDefs","loadAsync","writableObjectMode","readableObjectMode","t2","t3","t4","parseRels","parseWorkbook","_processWorksheetEntry","_processWorksheetRelsEntry","_processThemeEntry","_processMediaEntry","_processDrawingEntry","_processCommentEntry","_processTableEntry","_processDrawingRelsEntry","_processVmlDrawingEntry","theme1","RelType","useSharedStrings","useStyles","prepareModel","addContentTypes","addOfficeRels","addWorkbookRels","addWorksheets","addSharedStrings","addDrawings","addTables","addThemes","addMedia","addApp","addCore","addWorkbook","CsvFormatterStream","objectMode","hasWrittenBOM","rowFormatter","RowFormatter","writeBOM","rowTransform","BOM","Transform","FormatterOptions","rowDelimiter","quote","quoteColumns","quoteHeaders","includeEndRowDelimiter","alwaysWriteHeaders","shouldWriteHeaders","writeHeaders","escapedQuote","FieldFormatter","_headers","REPLACE_REGEXP","ESCAPE_REGEXP","quoteField","shouldQuote","fieldFormatter","hasWrittenHeaders","isHashArray","isSyncTransform","callTransformer","checkHeaders","shouldFormatColumns","gatherColumns","gatherHeaders","_rowTransform","createTransform","writeToPath","writeToString","writeToBuffer","writeToStream","promisify","Writable","util","CsvParserStream","parsedRowCount","parsedLineCount","endEmitted","headersEmitted","headerTransformer","HeaderTransformer","decoder","StringDecoder","rowTransformerValidator","RowTransformerValidator","rowValidator","hasHitRowLimit","processRows","checkAndEmitHeaders","shouldSkipLine","transformRow","pushRow","shouldEmitRows","transformAndValidate","skipRow","limitRows","skipRows","skipLines","string_decoder","ParserOptions","ignoreEmpty","supportsComments","ltrim","rtrim","renameHeaders","strictColumnHandling","discardUnmappedColumns","carriageReturn","escapedDelimiter","NEXT_TOKEN_REGEXP","parseFile","Readable","rowParser","RowParser","Scanner","removeBOM","hasMoreData","parseWithComments","parseWithoutComments","parseRow","nextCharacterToken","Token","isTokenComment","advancePastLine","lineFromCursor","hasMoreCharacters","truncateToCursor","nextNonSpaceToken","isTokenRowDelimiter","isTokenCarriageReturn","isTokenDelimiter","columnParser","ColumnParser","getStartToken","advancePastToken","shouldSkipColumnParse","startCursor","endCursor","ColumnFormatter","trimLeft","trimRight","quotedColumnParser","QuotedColumnParser","nonQuotedColumnParser","NonQuotedColumnParser","isTokenQuote","advanceToToken","columnFormatter","isTokenEscapeCharacter","gatherDataBetweenQuotes","foundClosingQuote","advanceTo","checkForMalformedColumn","receivedHeaders","shouldUseFirstRow","processedFirstRow","headersLength","setHeaders","headersTransform","shouldMapRow","processRow","mapHeaders","_rowValidator","isSyncValidate","callValidator","bignum","decoders","encoders","_createNamed","_initNamed","_getDecoder","_getEncoder","Reporter","isEncoderBuffer","DecoderBuffer","isDecoderBuffer","readUInt8","reporter","_reporterState","EncoderBuffer","_baseState","enc","reverseArgs","choice","optional","useDecoder","explicit","implicit","_useArgs","_decode","wrapResult","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","_encodeChoice","_encodePrimitive","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","rethrow","pathLen","captureStackTrace","tagClass","tagClassByName","tagByName","_reverse","der","cls","tagStr","_skipUntilEnd","unused","readUInt16BE","pem","writeUInt16BE","defaultBuffer","isBN","BN","wordSize","_initNumber","_initArray","_parseHex","_parseBase","imuln","_iaddn","_normSign","inspect","modn","idivn","toArrayLike","andln","iushrn","_countBits","clz32","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","setn","iadd","isub","ft","imul","vt","wt","kt","xt","St","Ot","jt","Et","Rt","Ct","Pt","Mt","At","It","mulp","mulTo","makeRBT","revBin","permute","guessLen13b","conjugate","normalize13b","convert13b","mul","mulf","muln","sqr","isqr","iushln","ishln","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","divn","umod","divRound","egcd","gcd","_invmp","cmpn","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","k256","p224","p192","p25519","_tmp","_prime","prime","r2","imod","rinv","minv","ireduce","imulK","_strip","mont","toByteArray","fromByteArray","modrn","_toArrayLikeLE","_toArrayLikeBE","rand","Rand","_rand","getBytes","getByte","getRandomValues","msCrypto","readUInt32BE","SBOX","INV_SBOX","SUB_MIX","INV_SUB_MIX","keySize","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","writeUInt32BE","decryptBlock","scrub","AES","_cipher","_ghash","_finID","writeUIntBE","_prev","_secCache","_decrypt","_alen","_mode","_authTag","_called","encrypt","_final","final","getAuthTag","setAuthTag","setAAD","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","_last","_autopadding","iv","decrypt","flush","setAutoPadding","evp_bytestokey","writeUInt8","ghash","_multiply","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","cipher","aes128","aes192","aes256","instantiate","EDE","DES","_des","des","des3","blinder","publicExponent","unblinder","prime1","prime2","exponent1","exponent2","getr","randombytes","dup","sha224WithRSAEncryption","sha256WithRSAEncryption","sha384WithRSAEncryption","sha512WithRSAEncryption","sha256","sha224","sha384","sha512","DSA","ripemd160WithRSA","md5WithRSAEncryption","_hashType","_tag","_signType","_write","verify","Sign","Verify","createSign","createVerify","ec","curve","keyFromPrivate","toDER","priv_key","makeKey","elliptic","subjectPrivateKey","pub_key","allocUnsafeSlow","SlowBuffer","isEncoding","isView","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","foo","species","poolSize","_isBuffer","swap16","swap32","swap64","_arr","subarray","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUInt16LE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","ieee754","hashMode","_finalOrDigest","__final","_decoder","_toString","ACCESSORS","noTargetGet","stopped","WebKitMutationObserver","exit","clearImmediate","MessageChannel","Dispatch","postMessage","port2","port1","onmessage","importScripts","Arguments","PromiseRejectionEvent","notified","reactions","rejection","fetch","race","fromCodePoint","QObject","keyFor","useSetter","useSimple","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","generateKeys","genKeyPair","getPublicKey","computeSecret","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_importPrivate","ripemd160","_alg","_ipad","_opad","rng","pseudoRandomBytes","prng","createHmac","Hmac","pbkdf2","pbkdf2Sync","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","randomFill","randomFillSync","DH_CHECK_P_NOT_SAFE_PRIME","DH_CHECK_P_NOT_PRIME","DH_UNABLE_TO_CHECK_GENERATOR","DH_NOT_SUITABLE_GENERATOR","NPN_ENABLED","ALPN_ENABLED","RSA_PKCS1_PADDING","RSA_SSLV23_PADDING","RSA_NO_PADDING","RSA_PKCS1_OAEP_PADDING","RSA_X931_PADDING","RSA_PKCS1_PSS_PADDING","POINT_CONVERSION_COMPRESSED","POINT_CONVERSION_UNCOMPRESSED","POINT_CONVERSION_HYBRID","randomfill","utcOffset","weekdays","$u","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","$utils","startOf","endOf","isAfter","isBefore","$g","unix","$locale","weekStart","$set","daysInMonth","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","weekdaysMin","ddd","weekdaysShort","dddd","HH","hh","mm","ss","SSS","toUTCString","isDayjs","Ls","afternoon","Do","ZZ","dayjs_plugin_customParseFormat","local","getUTCMilliseconds","dayjs_plugin_utc","_cbcInit","_cbcState","bufferOff","_updateDecrypt","_updateEncrypt","_flushBuffer","_finalEncrypt","_finalDecrypt","_pad","_unpad","_desState","deriveKeys","pc1","r28shl","pc2","ip","_encrypt","substitute","rip","ciphers","_edeState","padSplit","gen","_pub","_priv","setGenerator","__prime","_primeLen","_primeCode","simpleSieve","fermatTest","__gen","_gen","getPrime","getGenerator","modp1","modp2","modp5","modp14","modp15","modp16","modp17","modp18","curves","eddsa","brorand","getNAF","getJSF","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","redN","_maxwellTrick","precomputed","_fixedNafMul","_getDoubles","jpoint","mixedAdd","toP","_wnafMul","_getNAFPoints","wnd","dblp","_wnafMulAdd","toJ","BasePoint","decodePoint","pointFromX","encodeCompressed","getY","precompute","doubles","naf","beta","_getBeta","_hasDoubles","dbl","twisted","mOneA","extended","oneC","zOne","_mulA","_mulC","pointFromY","isInfinity","fromJSON","_extDbl","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","eqXToP","edwards","i4","a24","diffAdd","jumlAdd","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","inf","_getEndoRoots","lambda","_getEndoBasis","_endoSplit","_endoWnafMulAdd","_zeroDbl","_threeDbl","_dbl","trpl","PresetCurve","nh","keyPair","fromPrivate","fromPublic","pers","persEnc","entropy","hmacStrength","entropyEnc","nonce","_truncateToN","canonical","recoveryParam","recoverPubKey","getKeyRecoveryParam","priv","pub","privEnc","pubEnc","derive","_importDER","place","parseBytes","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","encodePoint","pubBytes","makeSignature","Rencoded","intFromLE","fromSecret","encodeInt","decodeInt","isPoint","cachedProperty","_secret","secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","zero2","_inBundle","_integrity","_phantomChildren","_requested","rawSpec","saveSpec","fetchSpec","_requiredBy","_resolved","_shasum","_spec","_where","author","bugs","bundleDependencies","deprecated","devDependencies","brfs","coveralls","grunt","istanbul","jscs","jshint","mocha","homepage","repository","scripts","lint","_maxListeners","defaultMaxListeners","newListener","warned","wrapFn","setMaxListeners","getMaxListeners","prependListener","prependOnceListener","rawListeners","_block","_blockOffset","_finalized","_digest","sha","ripemd","hmac","pendingTotal","outSize","padLength","endian","_delta8","_delta32","BlockHash","join32","rotl32","sum32","sum32_3","sum32_4","toHex32","split32","sum32_5","ft_1","ch32","maj32","s0_256","s1_256","g0_256","g1_256","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","_prepareBlock","rotr32","p32","htonl","zero8","predResist","outLen","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","reseed","getTypeOf","uint8array","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","createFolders","compressionOptions","unixPermissions","dosPermissions","lie","Uint16Array","_pako","_pakoAction","_pakoOptions","processChunk","_createPako","cleanUp","onData","pako","utf8encode","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","DATA_DESCRIPTOR","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","openedSource","closedSource","CENTRAL_DIRECTORY_END","prepareNextSource","registerPrevious","generatedError","generateWorker","_compressWorker","external","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isStream","prepareContent","fileNameStr","fileCommentStr","_upstreamEnded","_bindStream","_stream","_helper","_read","newBufferFrom","allocBuffer","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","byteAt","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","checkIndex","setIndex","readInt","readString","readDate","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","extraStreamInfo","_listeners","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","_worker","newBlob","arraybuffer","nodebuffer","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","nodeStream","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","Nt","Yt","Vt","$t","Xt","Ht","qt","Lt","Dt","Gt","Wt","Ut","_randbelow","_randrange","getDivisor","windowBits","memLevel","gzip","chunks","strm","avail_out","deflateInit2","deflateSetHeader","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","inflateSetDictionary","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_NEED_DICT","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","adler","total_in","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","data_type","_tr_init","deflateInit","deflateReset","deflateResetKeep","hcrc","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","dmax","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","sane","havedict","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","certificate","int","RSAPrivateKey","RSAPublicKey","bitstr","PublicKey","objid","null_","octstr","PrivateKey","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECPrivateKey","namedCurve","utcTime","utctime","generalTime","gentime","setof","seqof","rdnSequence","bool","passphrase","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kdeparams","salt","iters","algo","subtle","importKey","deriveBits","iterations","md5","rmd160","ipad1","ipad2","opad","alg","blocksize","fun","env","argv","cwd","chdir","umask","allowHalfOpen","readable","_writableState","highWaterMark","getBuffer","_readableState","ReadableState","debuglog","getHighWaterMark","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_destroy","consume","finished","_undestroy","undestroy","stdout","stderr","hasUnpiped","needDrain","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","_transformState","transforming","writecb","writechunk","afterTransform","needTransform","writeencoding","pendingcb","corkedRequestsFree","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","finalCalled","ending","decodeStrings","writing","bufferProcessing","onwrite","writelen","errorEmitted","bufferedRequest","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","isBuf","allBuffers","hasInstance","setDefaultEncoding","_getString","_getBuffer","customInspect","ERR_STREAM_PREMATURE_CLOSE","req","setHeader","ERR_MISSING_ARGS","ERR_INVALID_OPT_VALUE","Stream","pipeline","delegate","_sent","dispatchException","resultName","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","isGeneratorFunction","awrap","AsyncIterator","rval","delegateYield","regeneratorRuntime","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","isS","isChar","isNameStartChar","isNameChar","S_LIST","NAME_RE","isNCNameStartChar","isNCNameChar","NC_NAME_RE","amp","quot","apos","xmldecl","processinginstruction","doctype","opentagstart","opentag","closetag","cdata","fragmentOpt","xmlnsOpt","trackPosition","nameStartCheck","nameCheck","isName","processAttribs","processAttribsNS","pushAttrib","pushAttribNS","additionalNamespaces","processAttribsPlain","pushAttribPlain","stateTable","sBegin","sBeginWhitespace","sDoctype","sDoctypeQuote","sDTD","sDTDQuoted","sDTDOpenWaka","sDTDOpenWakaBang","sDTDComment","sDTDCommentEnding","sDTDCommentEnded","sDTDPI","sDTDPIEnding","sText","sEntity","sOpenWaka","sOpenWakaBang","sComment","sCommentEnding","sCommentEnded","sCData","sCDataEnding","sCDataEnding2","sPIFirstChar","sPIRest","sPIBody","sPIEnding","sXMLDeclNameStart","sXMLDeclName","sXMLDeclEq","sXMLDeclValueStart","sXMLDeclValue","sXMLDeclSeparator","sXMLDeclEnding","sOpenTag","sOpenTagSlash","sAttrib","sAttribName","sAttribNameSawWhite","sAttribValue","sAttribValueQuoted","sAttribValueClosed","sAttribValueUnquoted","sCloseTag","sCloseTagSawWhite","openWakaBang","piTarget","topNS","chunkPosition","prevI","carriedFromPrevious","forbiddenState","attribList","reportedTextBeforeRoot","reportedTextAfterRoot","closedRoot","sawRoot","xmlDeclPossible","xmlDeclExpects","entityReturnState","defaultXMLVersion","forceXMLVersion","setXMLVersion","positionAtNewLine","_closed","xmlDecl","ENTITIES","readyHandler","getCode","getCodeNorm","currentXMLVersion","getCode10","getCode11","skipSpaces","unget","captureTo","doctypeHandler","captureToChar","handleTextInRoot","handleTextOutsideRoot","parseEntity","textHandler","commentHandler","cdataHandler","piHandler","xmldeclHandler","captureNameChars","openTagStartHandler","openTag","openSelfClosingTag","closeTag","qname","attributeHandler","endHandler","resolvePrefix","isSelfClosing","openTagHandler","closeTagHandler","_finalSize","_w","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","_isStdio","readableHighWaterMark","isarray","writableHighWaterMark","fillLast","lastNeed","lastTotal","lastChar","_clearFn","unref","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","noDeprecation","throwDeprecation","traceDeprecation","stylize","showHidden","NODE_DEBUG","inverse","null","unescape","clockseq","msecs","nsecs","DNS","CHAR","NAME_START_CHAR","NAME_CHAR","CHAR_RE","S_RE","NAME_START_CHAR_RE","NAME_CHAR_RE","NMTOKEN_RE","RESTRICTED_CHAR","RESTRICTED_CHAR_RE","isRestrictedChar","isCharAndNotRestricted","NC_NAME_START_CHAR","NC_NAME_CHAR","NC_NAME_START_CHAR_RE","NC_NAME_CHAR_RE","digestLength","bufferLength","bytesHashed","dataPos","hashBlocks","bitLenHi","bitLenLo","_restoreState","HMAC","istate","ostate","hkdfSalt","hkdf","okm","hmac_","bufpos","fillBuffer","dkLen","prf","ctr","HTMLAnchorElement","rel","autoBom","safari","unsafeOriginalName","runtime","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","Generator","Context","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","tryCatch","GenStateSuspendedYield","makeInvokeMethod","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","PromiseImpl","unwrapped","previousPromise","callInvokeWithMethodAndArg","locs","pushTryEntry","GeneratorFunction","genFun","defineIteratorMethods","skipTempReset","resetTryEntry","rootRecord","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","accidentalStrictMode","observerOrNext","Subscriber","isObserver","isSubscription","isSubscriber","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","fns","pipeFromArray","ObjectUnsubscribedError","createErrorClass","currentObservers","AnonymousSubject","observed","EMPTY_SUBSCRIPTION","COMPLETE_NOTIFICATION","createNotification","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","errorNotification","_error","_bind","partialObserver","handleUnhandledError","ConsumerObserver","captureError","reportUnhandledError","notification","onStoppedNotification","timeoutProvider","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","_hasParent","_addParent","_removeParent","onUnhandledError","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","combineLatestInit","concatAll","schedule","isInteropObservable","subscribeOn","observeOn","scheduleObservable","scheduleArray","schedulePromise","isAsyncIterable","scheduleAsyncIterable","isIterable","Symbol_iterator","scheduleIterable","isReadableStreamLike","readableStreamLikeToAsyncGenerator","scheduleReadableStreamLike","createInvalidObservableTypeError","scheduled","fromInteropObservable","fromArrayLike","fromAsyncIterable","fromIterable","readableStream","fromReadableStreamLike","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","concurrent","popNumber","argsOrArgArray","raceInit","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","isScheduler","due","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","handledResult","innerSub","syncUnsub","activeTask","lastTime","targetTime","emitWhenIdle","delayDurationSelector","subscriptionDelay","ignoreElements","delayWhen","mapTo","onBeforeNext","innerSubScheduler","additionalFinalizer","isComplete","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","mergeInternals","wrapperSource","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","handleReset","innerSubscriber","innerIndex","outerIndex","tapObserver","isUnsub","defaultErrorFactory","TimeoutError","schedulerArg","with","_with","timeoutErrorFactory","originalSourceSubscription","timerSubscription","startTimer","intervalProvider","schedulerActionCtor","SchedulerAction","_scheduled","recycleAsyncId","requestAsyncId","_scheduler","_execute","_delay","errorValue","getSymbolIterator","isPOJO","createImpl","ctorFunc","errorThrown","parentSubscription","scheduleSubscription","getReader","releaseLock","liftedSource","callOrApply","ie","_DOM","relativePosition","ɵɵinject","BrowserPlatformLocation","useBrowserPlatformLocation","providedIn","_history","getBaseHrefFromDOM","getDOM","onPopState","onHashChange","hostname","newPath","pushState","supportsState","createBrowserPlatformLocation","slashes","pathEndIdx","platformLocation","_platformLocation","_removeListenerFns","_baseHref","joinWithSlash","includeHash","normalizeQueryParams","externalUrl","platformStrategy","_urlChangeListeners","_platformStrategy","browserBaseHref","stripTrailingSlash","_stripIndexHtml","_stripBaseHref","_notifyUrlChangeListeners","onUrlChange","_urlChangeSubscription","onThrow","onReturn","createLocation","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Group","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLastDefinedValue","ɵfindLocaleData","ɵLocaleDataIndex","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Eras","parsedNb","tzHour","tzMin","setUTCFullYear","timeSetter","setUTCHours","isoStringToDate","getNamedFormat","dateTimezoneOffset","timezoneToOffset","reverseValue","addDateMinutes","convertTimezoneToLocal","DATE_FORMATS","dateStrGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","getDateFormatter","localeId","getLocaleId","getLocaleDateFormat","getLocaleTimeFormat","shortTime","shortDate","getLocaleDateTimeFormat","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","minusSign","negWrap","strNum","getDatePart","strMs","formatFractionalSeconds","localeMinus","getLocaleNumberSymbol","padNumber","formStyle","getLocaleMonthNames","getLocaleDayNames","currentHours","currentMinutes","checkFullData","extractTime","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","amPm","getLocaleDayPeriods","getLocaleEraNames","getDateTranslation","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","getThursdayThisWeek","firstThurs","firstDayOfYear","THURSDAY","getFirstThursdayOfYear","requestedTimezoneOffset","cookieStr","eqIndex","cookieName","cookieValue","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","klass","_applyClasses","ngClass","ɵisListLikeIterable","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","_toggleClass","forEachChangedItem","forEachRemovedItem","ɵstringify","rawClassVal","ngForOf","even","odd","NgForOf","_viewContainer","_ngForOf","_ngForOfDirty","_differ","ngForTrackBy","_trackByFn","ngForTemplate","viewContainer","forEachOperation","adjustedPreviousIndex","previousIndex","NgForOfContext","applyViewChange","ilen","forEachIdentityChange","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","ngIfThen","assertTemplate","ngIfElse","_viewContainerRef","_templateRef","_created","enforceState","NgSwitch","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_defaultViews","_matchCase","useDefault","NgSwitchCase","SwitchView","ngSwitchCase","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","DATE_PIPE_DEFAULT_TIMEZONE","DatePipe","defaultTimezone","invalidPipeArgumentError","LOCALE_ID","JsonPipe","KeyValuePipe","differs","keyValues","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","PLATFORM_BROWSER_ID","ɵɵdefineInjectable","BrowserViewportScroller","supportsScrolling","elSelected","documentResult","getElementsByName","createTreeWalker","createShadowRoot","treeWalker","NodeFilter","SHOW_ELEMENT","findAnchorFromDocument","scrollRestoration","supportScrollRestoration","scrollRestorationDescriptor","getScrollRestorationProperty","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","lcName","applyUpdate","toDelete","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","updates","cloneFrom","encoder","HttpUrlEncodingCodec","rawParams","codec","eqIdx","paramParser","appendAll","eKey","valueToString","qe","fourth","reportProgress","HttpContext","urlWithParams","qIdx","serializeBody","isArrayBuffer","isBlob","isFormData","URLSearchParams","isUrlSearchParams","detectContentTypeHeader","setParams","HttpRequest","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","defaultStatus","defaultStatusText","HttpResponseBase","HttpHeaderResponse","HttpResponse","events$","res$","callbackParam","put","HttpHandler","interceptor","intercept","HTTP_INTERCEPTORS","NoopInterceptor","XSSI_PREFIX","HttpXhrBackend","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","responseURL","getResponseUrl","originalBody","HttpErrorResponse","sentHeaders","onDownProgress","progressEvent","lengthComputable","partialText","onUpProgress","DONE","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","cookieString","HttpXsrfInterceptor","tokenService","lcUrl","HttpXsrfTokenExtractor","HttpInterceptingHandler","backend","chain","interceptors","HttpInterceptorHandler","HttpBackend","HttpClientXsrfModule","withOptions","objWithPropertyToExtract","getClosureSafeProperty","overriddenName","newLineIndex","__forward_ref__","forwardRefFn","isForwardRef","formatRuntimeError","renderStringify","injectorName","injectorDetails","RuntimeError","stringifyForError","comparison","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","Default","Host","Self","_injectImplementation","injectableDef","getInjectableDef","throwProviderNotFoundError","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","ShadowDom","__globalThis","__window","__self","WorkerGlobalScope","_global","EMPTY_ARRAY","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","_renderCompCount","componentDefinition","noSideEffects","declaredInputs","providersResolver","hostVars","hostAttrs","exportAs","onPush","changeDetection","directiveDefs","pipeDefs","viewQuery","setInput","schemas","tView","directiveTypes","pipeTypes","invertObject","extractDirectiveDef","extractPipeDef","getComponentDef","getDirectiveDef","getPipeDef$1","autoRegisterModuleById","declarations","transitiveCompileScopes","ngModuleDef","getNgModuleDef","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefineComponent","pipeDef","onDestroy","throwNotFound","tNode","firstChange","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","SIMPLE_CHANGES_STORE","setSimpleChangesStore","previousChange","SimpleChange","ɵɵNgOnChangesFeature","ngInherit","domRendererFactory3","hostElement","rendererType","lView","unwrapRNode","slotValue","isLView","lContainer","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","isInCheckNoChangesMode","viewToRestore","contextLView","currentTNode","getCurrentTNodePlaceholderOk","bindingRootIndex","bindingStartIndex","bindingIndex","currentDirectiveIndex","setCurrentDirectiveIndex","currentQueryIndex","declTNode","parentTNode","parentLView","getDeclarationTNode","allocLFrame","newLFrame","inI18n","currentLFrame","childLFrame","elementDepthCount","currentNamespace","oldLFrame","leaveDI","leaveViewLight","getTNode","directiveStart","directiveEnd","lifecycleHooks","directiveDef","ngAfterContentInit","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","callHooks","initPhase","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","directive","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","isProc","isProceduralRenderer","namespaceURI","attrVal","isAnimationProp","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","parentLocation","startView","getParentInjectorViewOffset","parentView","includeViewProviders","nextNgElementId","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","hasParentInjector","getParentInjectorIndex","getParentInjectorView","declarationViewOffset","lViewCursor","tViewType","Me","bloomHash","bloomAdd","previousInjectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValueOrThrow","tokenId","createNodeInjector","bloomHashBitOrFactory","enterDI","lookupTokenUsingModuleInjector","previousTView","hostTElementNode","$e","shouldSearchParent","bloomHasToken","searchTokensOnInjector","NOT_FOUND","NodeInjector","getCurrentTNode","getLView","currentTView","injectableIdx","locateDirectiveOrProvider","isComponentHost","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isComponentDef","tData","NodeInjectorFactory","isFactory","depPath","throwCyclicDependencyError","previousIncludeViewProviders","setIncludeViewProviders","directiveIndex","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","registerPreOrderHooks","injectorView","isFirstHostTNode","_tNode","_lView","getOrCreateInjectable","ownConstructor","ownFactory","getFactoryOf","objectPrototype","resolveForwardRef","getFactoryDef","attrNameToInject","attrsLength","isNameOnlyAttributeMarker","injectAttributeImpl","PARAMETERS","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","unusedKey","ngMetadataName","annotationCls","_desc","deepForEach","keyValueArray","keyValueArrayIndexOf","arrayInsert2","_arrayIndexOfSorted","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","USE_VALUE$1","_currentInjector","former","getInjectImplementation","injectInjectorOnly","getInjectFlag","attachInjectFlag","makeParamDecorator","policy$1","policy","trustedTypes","createPolicy","createHTML","createScriptURL","getPolicy$1","getPolicy","changingThisBreaksApplicationSecurity","SafeValueImpl","getTypeName","actualType","getSanitizationBypassType","trustedHtml","SafeHtmlImpl","trustedStyle","SafeStyleImpl","trustedScript","SafeScriptImpl","trustedUrl","SafeUrlImpl","trustedResourceUrl","SafeResourceUrlImpl","inertDocumentHelper","getInertBodyElement","trustedHTMLFromString","defaultDoc","inertDocument","inertHtml","inertBodyElement","templateEl","inertBody","stripCustomNsAttrs","elAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","VOID_ELEMENTS","tagSet","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","SRCSET_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","sanitizedSomething","sanitizeChildren","traverseContent","startElement","endElement","checkClobberedElement","elAttr","lower","_sanitizeUrl","srcset","encodeEntities","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","unsafeHtmlInput","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyHelper","unsafeHtml","mXSSAttempts","SanitizingHtmlSerializer","getTemplateContent","safeHtml","isTemplateElement","HTML","STYLE","RESOURCE_URL","getSanitizer","trustedHTMLFromStringBypass","allowSanitizationBypassAndThrow","unwrapSafeValue","_sanitizeHtml","unsafeUrl","unsafeResourceUrl","trustedScriptURLFromStringBypass","MONKEY_PATCH_KEY_NAME","readPatchedData","ERROR_ORIGINAL_ERROR","originalError","_findOriginalError","errorLogger","ERROR_LOGGER","defaultErrorLogger","getErrorLogger","getOriginalError","defaultScheduler","Important","DashCase","tIcuContainerNode","_icuContainerIterate","isLContainer","getNearestLContainer","lNodeToHandle","beforeNode","isComponent","rNode","ue","nativeAppendChild","nativeInsertBefore","isHostElement","nativeParent","nativeParentNode","nativeRemoveChild","nativeRemoveNode","parentRElement","applyToElementOrContainer","applyContainer","getNamespaceUri","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","updateTransplantedViewCount","indexInContainer","viewToDetach","declarationLContainer","detachMovedView","removedLView","removeFromArray","removeViewFromContainer","lQueries","detachView","rootView","lViewOrLContainer","cleanUpView","firstView","destroyViewTree","toCall","callContext","executeOnDestroys","tCleanup","lCleanup","lastLCleanupIndex","idxOrTargetGetter","useCaptureOrSubIdx","processCleanups","getNativeByTNode","getClosestRElement","isMove","_getInsertInFrontOfRNodeWithI18n","childRNode","childTNode","parentRNode","getParentRElement","anchorNode","getInsertInFrontOfRNode","nativeAppendOrInsertBefore","tNodeType","getBeforeNodeForView","elIcuContainerChild","getFirstNativeNode","rNodeOrLContainer","nextRNode","projectionNodes","getProjectionNodes","getLViewParent","componentView","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isProjection","rawSlotValue","attachPatchData","icuContainerIterate","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","componentNode","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","cssClassToMatch","isProjectionMode","classIndexOf","currentSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","hasTagAndTypeMatch","selectorAttrValue","isCssClassMatching","attrIndexInNode","findAttrIndexInNode","isInlineTemplate","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelector","selectorListLoop","currentSelectorInList","isNegativeMode","valueOrMarker","maybeWrapInNotSelector","NO_CHANGE","selectIndexInternal","getTView","getSelectedIndex","checkNoChangesMode","executeCheckHooks","executeInitAndCheckHooks","setSelectedIndex","tStylingRange","queryStartIdx","directiveDefIdx","setCurrentQueryIndex","tHostNode","rendererFactory","resetPreOrderHookFlags","isCurrentTNodeParent","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","mergedAttrs","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","createTNode","createTNodeAtIndex","isInI18nBlock","getCurrentParentTNode","setCurrentTNode","numSlotsToAlloc","allocIdx","enterView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","refreshContentQueries","staticViewQueries","hostLView","renderComponent$1","renderChildComponents","incompleteFirstPass","leaveView","isInCheckNoChangesPass","setBindingIndex","hooksInitPhaseCompleted","incrementInitPhaseFlags","getFirstLContainer","getNextLContainer","movedLView","markTransplantedViewsForRefresh","embeddedLView","embeddedTView","viewAttachedToChangeDetector","refreshView","refreshEmbeddedViews","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","setBindingRootForHostBindings","processHostBindingOpCodes","refreshComponent","refreshChildComponents","firstUpdatePass","normalExecutionPath","creationModeIsActive","isCreationMode","renderView","prevSelectedIndex","isUpdatePhase","getBindingsEnabled","getOrCreateNodeInjectorForNode","addComponentLogic","setInputsFromAttrs","getComponentLViewByIndex","instantiateAllDirectives","getCurrentDirectiveIndex","invokeHostBindingsInCreationMode","invokeDirectivesHostBindings","localRefExtractor","createTView","constsOrFactory","initialViewLength","createViewBlueprint","queries","expandoStartIndex","directiveRegistry","pipeRegistry","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","inputAliasMap","propStore","internalName","nativeOnly","inputData","setInputsForProperty","viewIndex","childComponentLView","markDirtyIfOnPush","mapPropName","localRefs","hasDirectives","isNodeMatchingSelectorList","diPublicInInjector","markAsComponentHost","findDirectiveDefMatches","exportsMap","initTNodeFlags","preOrderHooksFound","preOrderCheckHooksFound","allocExpando","mergeHostAttrs","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","generatePropertyAliases","initializeInputAndOutputAliases","ngDevMode","cacheMatchingLocalNames","directiveVarsIdx","elementIndx","lastSelectedElementIdx","hostTNode","numberOfDirectives","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","getOrCreateTComponentView","addToViewTree","createLView","initialInputData","inputsToStore","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","isRootView","rootContext","readPatchedLView","renderComponentOrTemplate","tickRootContext","viewQueryFn","CLEAN_PROMISE","getNativeByIndex","updateTextNode","writeToHost","concatStringsWithSpace","INJECTOR","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","NullInjector","defType","additionalProviders","createInjectorWithoutInjectorInstances","_resolveInjectorDefTypes","R3Injector","getNullInjector","injectorDefTypes","_destroyed","dedupStack","processProvider","injectorDef","processInjectorType","makeRecord","assertNotDestroyed","service","previousInjector","setCurrentInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","injectorErrorName","tokenPath","formatError","NG_TOKEN_PATH","catchInjectorError","defOrWrappedDef","getInjectorDef","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","ngModuleType","isTypeProvider","isValueProvider","providerToFactory","providerToRecord","multiRecord","injectArgs","hasOnDestroy","paramLength","inheritedInjectableDef","typeName","getInheritedInjectableDef","getUndecoratedInjectableFactory","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","createInjector","registerPostOrderHooks","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","fillProperties","defData","ɵɵInheritDefinitionFeature","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","_symbolIterator","isJsObject","exp1","exp2","different","bindingUpdated","exp3","bindingUpdated2","nextBindingIndex","elementAttributeInternal","getSelectedTNode","ɵɵattribute","v0","getBindingIndex","incrementBindingIndex","bindingUpdated3","exp4","bindingUpdated4","attrsIndex","localRefsIndex","adjustedIndex","tViewConsts","getOrCreateTNode","getConstant","resolveDirectives","templateFirstCreatePass","createLContainer","isDirectiveHost","createDirectivesInstances","saveResolvedLocalsInData","getContextLView","elementPropertyInternal","ɵɵproperty","isClassBased","createElementNode","getNamespace$1","computeStaticStyling","elementStart","elementStartFirstCreatePass","setUpAttributes","writeDirectClass","writeDirectStyle","getElementDepthCount","increaseElementDepthCount","isContentQueryHost","executeContentQueries","ɵɵelementStart","setCurrentTNodeAsNotParent","decreaseElementDepthCount","elementEnd","hasClassInput","setDirectiveInputsWhichShadowsStyling","hasStyleInput","ɵɵelementEnd","ɵɵelement","isSubscribable","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","findExistingListener","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","directiveInstance","ɵɵlistener","profiler","wrapWithPreventDefault","markViewDirty","executeListenerWithErrorHandling","nextListenerFn","wrapListenerIn_markDirtyAndPreventDefault","nestingLevel","walkUpViews","nextContextImpl","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","ngProjectAsAttrIdx","getProjectAsAttrValue","isSelectorInSelectorList","projectionHeads","tails","componentChild","slotIndex","matchingProjectionSlotIndex","selectorIndex","applyProjection","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate","interpolatedValue","interpolation1","interpolation2","ɵɵpropertyInterpolate2","interpolation3","ɵɵpropertyInterpolate3","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","getTStylingRangePrev","getTStylingRangeNext","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","setTStylingRangeNextDuplicate","setTStylingRangePrevDuplicate","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","consumeClassToken","consumeWhitespace","ch","consumeStyleKey","consumeSeparator","ch1","ch2","ch3","lastChIndex","consumeQuotedText","consumeStyleValue","quoteCharCode","checkStylingProperty","ɵɵstyleProp","ɵɵclassProp","checkStylingMap","styleKeyValueArraySet","styleStringParser","resetParserState","parseStyleNext","parseStyle","getLastParsedKey","getLastParsedValue","keyValueArraySet","classStringParser","parseClassNameNext","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","oldKeyValueArray","newKeyValueArray","Bt","updateStylingMap","styleKeyValueArray","unwrappedValue","toStylingKeyValueArray","isHostBindings","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","wrapInStaticStylingKey","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","staticKeyValueArray","previousNode","toTStylingRange","setTStylingRangeNext","setTStylingRangePrev","He","markDuplicates","markDuplicateOfResidualStyling","ve","insertTStylingBinding","currentDirective","desiredMarker","currentMarker","tRange","isStylingValuePresent","getTStylingRangeNextDuplicate","findStylingValue","getTStylingRangePrevDuplicate","isProcedural","isImportant","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","keyValueArrayGet","textNative","ɵɵtextInterpolate1","ɵɵtextInterpolate","interpolated","textBindingInternal","ɵɵtextInterpolate2","ɵɵtextInterpolate3","interpolation4","ɵɵtextInterpolate4","localeEn","LOCALE_DATA","normalizedLocale","normalizeLocale","getLocaleData","findLocaleData","LocaleDataIndex","PluralCase","ng","locales","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","FirstDayOfWeek","WeekendRange","TimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","ExtraData","DEFAULT_LOCALE_ID","LOCALE_ID$1","lInjectablesBlueprint","resolveProvider","providerFactory","ɵɵdirectiveInject","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesProvidersFactoryExist","doesViewProvidersFactoryExist","factoryFn","componentProviders","multiFactoryAdd","multiFactory","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","viewProviders","processProvidersFn","ERROR_COMPONENT","noComponentFactoryError","ComponentFactoryResolver$1","_NullComponentFactoryResolver","createElementRef","ElementRef","injectElementRef","Renderer2","nodeAtIndex","getOrCreateRenderer2","injectRenderer2","Sanitizer","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","lNode","lViewInAContainer","lViewFirstChildTNode","collectNativeNodes","nodesInSlot","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","destroyLView","storeCleanupWithContext","reattach","detectChangesInternal","checkNoChanges","setIsInCheckNoChangesMode","checkNoChangesInternal","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","appRef","ViewRef$1","detectChangesInRootView","checkNoChangesInRootView","componentDef","ComponentFactory","nonMinified","ComponentFactory$1","selectorList","stringifyCSSSelector","stringifyCSSSelectorList","isBoundToModule","toRefArray","projectableNodes","rootSelectorOrNode","rootViewInjector","createChainedInjector","hostRenderer","elementName","hostRNode","elementOrSelector","rElement","locateHostElement","getNamespace","rootFlags","playerHandler","createRootContext","rootTView","rootLView","tElementNode","viewRenderer","createRootComponentView","extractAttrsAndClassesFromSelector","nodesforSlot","hostFeatures","rootTNode","instantiateRootComponent","createRootComponent","LifecycleHooksFeature","ComponentRef","_rootLView","changeDetectorRef","RootViewRef","NgModuleRef$1","_bootstrapComponents","destroyCbs","ComponentFactoryResolver","maybeUnwrapFn","_r3Injector","injectFlags","NgModuleFactory$1","visited","assertSameOrNotExisting","recurse","registerNgModuleType","slotOffset","pureFn","getBindingRoot","updateBinding","getBinding","pureFunction1Internal","pureFunction2Internal","bindingRoot","getPureFunctionReturnValue","pureFunction3Internal","returnValueIndex","lastReturnValue","pipeName","getPipeDef","pipeFactory","pipeInstance","isPure","__isAsync","nextFn","errorFn","completeFn","_wrapInTimeout","_results","_emitDistinctChangesOnly","_changesDetected","QueryList","symbolIterator","resultsTree","identityAccessor","newResultFlat","arrayEquals","notifyOnChanges","setDirty","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","componentFactoryOrType","indexOrOptions","ngModuleRef","isComponentFactory","componentFactory","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","addToArray","declaredComponentLView","insertedLContainer","trackMovedView","insertView","parentNativeNode","addViewToContainer","getOrCreateViewRefs","viewRefsArr","detachedView","commentNode","nativeNextSibling","queryList","LQuery_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","LQueries_","dirtyQueriesWithMatches","getTQuery","queriesForTemplateRef","childQueryIndex","tqueryClone","TQueries_","tquery","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","TQuery_","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","matchingIdx","createResultByTNodeType","createSpecialToken","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","createResultForNode","lViewResults","materializeViewResults","collectQueryResults","embeddedLViews","getCurrentQueryIndex","unwrapElementRef","createTQuery","TQueryMetadata_","createLQuery","tViewContentQueries","saveContentQueryAndDirectiveIndex","loadQueryInternal","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","_randomChar","$localize","getGlobalLocale","DEFAULT_CURRENCY_CODE","ngModuleFactory","componentFactories","compileModuleSync","compileModuleAndAllComponentsSync","declaration","ModuleWithComponentFactories","compileModuleAndAllComponentsAsync","clearCacheFor","getModuleId","Zone","scheduleMicroTask","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","onStable","assertZonePatched","_nesting","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","getNativeRequestAnimationFrame","delayChangeDetectionForEventsDelegate","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","delayChangeDetectionForEvents","isAngularZone","onInvokeTask","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","forkInnerZoneWithAngularBehavior","isInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","_pendingCount","_isZoneStable","_didWork","taskTrackingZone","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","getPendingRequestCount","findProviders","using","exactMatch","TestabilityRegistry","_applications","_testabilityGetter","registerApplication","unregisterApplication","unregisterAllApplications","_NoopGetTestability","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_ON_DESTROY","parentPlatformFactory","extraProviders","getPlatform","platformProviders","PlatformRef","inits","initFn","createPlatform","createPlatformInjector","requiredToken","assertPlatform","_injector","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","ngZoneOption","NoopNgZone","ngZoneEventCoalescing","ngZoneRunCoalescing","getNgZone","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","assertDefined","setLocaleId","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","ngDoBootstrap","destroyListener","objs","_exceptionHandler","_initStatus","_bootstrapListeners","_runningTick","_stable","_onMicrotaskEmptySubscription","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","merge$1","componentOrFactory","cf","compRef","testabilityRegistry","_loadComponent","attachView","viewCount","_devMode","injectChangeDetectorRef","isPipe","createViewRef","isListLikeIterable","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","previousRecord","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","_prevDup","_nextDup","_head","_tail","atOrAfterIndex","duplicates","_DuplicateItemRecordList","recordList","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","IterableDiffers","DefaultIterableDifferFactory","copied","defaultIterableDiffersFactory","KeyValueDiffers","DefaultKeyValueDifferFactory","defaultKeyValueDiffersFactory","kv","ɵɵdefineNgModule","ɵɵdefineInjector","SystemDateTimeProvider","DateTimeProvider","new","disableNonceCheck","preventClearHashAfterLogin","MemoryStorage","OAuthEvent","redirectUri","postLogoutRedirectUri","redirectUriAsPostLogoutRedirectUriFallback","loginUrl","rngUrl","requestAccessToken","logoutUrl","clearHashAfterLogin","revocationEndpoint","customTokenParameters","showDebugInformation","silentRefreshRedirectUri","silentRefreshMessagePrefix","silentRefreshShowIFrame","siletRefreshTimeout","silentRefreshTimeout","dummyClientSecret","requireHttps","strictDiscoveryDocumentValidation","jwks","silentRefreshIFrameName","timeoutFactor","sessionChecksEnabled","sessionCheckIntervall","sessionCheckIFrameUrl","sessionCheckIFrameName","disableAtHashCheck","skipSubjectCheck","useIdTokenHintForSilentRefresh","skipIssuerCheck","nonceStateSeparator","useHttpBasicAuth","waitForTokenInMsec","disablePKCE","preserveRequestedRoute","openUri","validateAtHash","hashAlg","inferHashAlgorithm","idTokenHeader","tokenHash","calcHash","atHash","base64UrlEncode","claimsAtHash","idTokenClaims","at_hash","jwtHeader","UrlHelperService","getHashFragmentParams","customHashFragment","questionMarkPosition","parseQueryString","escapedKey","escapedValue","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","amd","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","OUTPUT_TYPES","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","nodeWrap","eval","nodeMethod","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h5","h7","hBytes","finalized","hashed","oKeyPad","iKeyPad","notString","lastByteIndex","ab","setUint32","innerHash","DefaultHashHandler","valueToHash","encodeUTF8","fsha256","decodeUTF8","toHashString2","byteArray","toHashString","OAuthService","AuthConfig","tokenValidationHandler","urlHelper","dateTimeService","discoveryDocumentLoaded","discoveryDocumentLoadedSubject","grantTypesSupported","inImplicitFlow","saveNoncesInLocalStorage","discoveryDocumentLoaded$","checkLocalStorageAccessable","setupRefreshTimer","setupSessionCheck","configChanged","restartSessionChecksIfStillLoggedIn","hasValidIdToken","initSessionCheck","restartRefreshTimerIfStillLoggedIn","setupExpirationTimers","setupAutomaticSilentRefresh","listenTo","noPrompt","shouldRunSilentRefresh","clearAutomaticRefreshTimer","automaticRefreshSubscription","debounceTime","refreshInternal","useSilentRefresh","silentRefresh","loadDiscoveryDocumentAndTryLogin","loadDiscoveryDocument","tryLogin","loadDiscoveryDocumentAndLogin","hasValidAccessToken","initLoginFlow","validateUrlFromDiscoveryDocument","httpsCheck","validateUrlForHttps","issuerCheck","validateUrlAgainstIssuer","assertUrlNotNullAndCorrectProtocol","clearAccessTokenTimer","clearIdTokenTimer","tokenReceivedSubscription","setupAccessTokenTimer","setupIdTokenTimer","expiration","storedAt","getAccessTokenStoredAt","calcTimeout","accessTokenTimeoutSubscription","OAuthInfoEvent","getIdTokenExpiration","getIdTokenStoredAt","idTokenTimeoutSubscription","stopAutomaticRefresh","fullUrl","validateDiscoveryDocument","OAuthErrorEvent","authorization_endpoint","end_session_endpoint","grant_types_supported","token_endpoint","userinfo_endpoint","jwksUri","jwks_uri","check_session_iframe","revocation_endpoint","loadJwks","OAuthSuccessEvent","discoveryDocument","fetchTokenUsingPasswordFlow","existingClaims","fetchTokenUsingGrant","grantType","WebHttpUrlEncodingCodec","tokenResponse","storeAccessTokenResponse","access_token","refresh_token","expires_in","fallbackAccessTokenExpirationTimeInSec","extractRecognizedCustomParameters","id_token","processIdToken","storeIdToken","removeSilentRefreshEventListener","silentRefreshPostMessageEventListener","setupSilentRefreshEventListener","processMessageEventMessage","customRedirectUri","claims","id_token_hint","getIdToken","existingIframe","silentRefreshSubject","createLoginUrl","initImplicitFlowInPopup","initLoginFlowInPopup","checkForPopupClosedTimer","windowRef","calculatePopupFeatures","checkForPopupClosedInterval","storageListener","screenLeft","screenTop","expectedPrefix","prefixedMessage","canPerformSessionCheck","getSessionState","setupSessionCheckEventListener","removeSessionCheckEventListener","sessionCheckEventListener","handleSessionUnchanged","handleSessionChange","handleSessionError","stopSessionCheckTimer","waitForSilentRefreshAfterSessionChange","startSessionCheckTimer","sessionCheckTimer","checkSession","sessionState","loginHint","createAndSaveNonce","Ce","seperationChar","challenge","verifier","createChallangeVerifierPairForPKCE","initImplicitFlowInternal","additionalState","addParams","initImplicitFlow","resetImplicitFlow","callOnTokenReceivedIfExists","onTokenReceived","tokenParams","idClaims","idToken","expiresIn","grantedScopes","customParameters","expiresInMilliSeconds","expiresAt","tryLoginCodeFlow","tryLoginImplicitFlow","querySource","getCodePartsFromUrl","session_state","nonceInState","userState","parseState","handleLoginError","saveRequestedRoute","disableOAuth2StateCheck","validateNonce","storeSessionState","getTokenFromCode","restoreRequestedRoute","requestedRoute","PKCEVerifier","fetchAndProcessToken","validationHandler","clearLocationHash","savedNonce","idTokenClaimsJson","idTokenExpiresAt","onLoginError","getClockSkewInMsec","defaultSkewMsc","clockSkewInSec","skipNonceCheck","tokenParts","headerJson","b64DecodeUnicode","padBase64","claimsJson","aud","iat","iss","issuedAtMSec","expiresAtMSec","clockSkewInMSec","validationParams","loadKeys","idTokenHeaderJson","checkAtHash","atHashValid","getGrantedScopes","scopes","base64data","getCustomTokenResponseProperty","requestedProperty","authorizationHeader","noRedirectToLogoutUrl","customParam","postLogoutUrl","createNonce","silentRefreshFrame","sessionCheckFrame","unreserved","validateSignature","initCodeFlow","initCodeFlowInternal","foundParameters","recognizedParameter","revokeTokenAndLogout","ignoreCorsIssues","revokeEndpoint","revokeAccessToken","revokeRefreshToken","revokationParams","OAuthStorage","ValidationHandler","OAuthLogger","HashHandler","DefaultOAuthInterceptor","checkUrl","customUrlValidation","OAuthResourceServerErrorHandler","OAuthModuleConfig","validationHandlerClass","NullValidationHandler","createDefaultLogger","createDefaultStorage","OAuthNoopResourceServerErrorHandler","AUTH_CONFIG"],"sources":["./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/@ngx-translate/core/fesm2015/ngx-translate-core.mjs","./node_modules/@ngx-translate/http-loader/fesm2015/ngx-translate-http-loader.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/angular-user-idle/fesm2015/angular-user-idle.mjs","./node_modules/rxjs/dist/esm/internal/operators/bufferTime.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/devextreme/esm/events/index.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-core.js","./node_modules/devextreme/esm/core/element.js","./node_modules/devextreme/esm/animation/translator.js","./node_modules/devextreme/esm/animation/easing.js","./node_modules/devextreme/esm/animation/frame.js","./node_modules/devextreme/esm/core/utils/resize_callbacks.js","./node_modules/devextreme/esm/core/utils/view_port.js","./node_modules/devextreme/esm/core/utils/storage.js","./node_modules/devextreme/esm/core/devices.js","./node_modules/devextreme/esm/core/utils/support.js","./node_modules/devextreme/esm/core/utils/position.js","./node_modules/devextreme/esm/core/utils/browser.js","./node_modules/devextreme/esm/animation/position.js","./node_modules/devextreme/esm/events/core/event_registrator.js","./node_modules/devextreme/esm/events/remove.js","./node_modules/devextreme/esm/events/utils/add_namespace.js","./node_modules/devextreme/esm/ui/widget/selectors.js","./node_modules/devextreme/esm/events/utils/index.js","./node_modules/devextreme/esm/animation/fx.js","./node_modules/devextreme/esm/core/utils/dom.js","./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","./node_modules/devextreme/esm/events/pointer/base.js","./node_modules/devextreme/esm/events/pointer/touch.js","./node_modules/devextreme/esm/events/pointer/observer.js","./node_modules/devextreme/esm/events/pointer/mouse.js","./node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","./node_modules/devextreme/esm/events/pointer.js","./node_modules/devextreme/esm/events/core/emitter.js","./node_modules/devextreme/esm/events/core/wheel.js","./node_modules/devextreme/esm/events/core/emitter_registrator.js","./node_modules/devextreme/esm/events/click.js","./node_modules/devextreme/esm/core/component_registrator_callbacks.js","./node_modules/devextreme/esm/core/utils/public_component.js","./node_modules/devextreme/esm/core/component_registrator.js","./node_modules/devextreme/esm/events/visibility_change.js","./node_modules/devextreme/esm/core/templates/template_base.js","./node_modules/devextreme/esm/core/templates/child_default_template.js","./node_modules/devextreme/esm/core/templates/empty_template.js","./node_modules/devextreme/esm/core/templates/template_engine_registry.js","./node_modules/devextreme/esm/core/templates/template.js","./node_modules/devextreme/esm/core/utils/array.js","./node_modules/devextreme/esm/core/utils/template_manager.js","./node_modules/devextreme/esm/core/action.js","./node_modules/devextreme/esm/core/utils/comparator.js","./node_modules/devextreme/esm/core/options/utils.js","./node_modules/devextreme/esm/core/options/option_manager.js","./node_modules/devextreme/esm/core/options/index.js","./node_modules/devextreme/esm/core/postponed_operations.js","./node_modules/devextreme/esm/core/component.js","./node_modules/devextreme/esm/core/templates/function_template.js","./node_modules/devextreme/esm/core/template_manager.js","./node_modules/devextreme/esm/events/core/keyboard_processor.js","./node_modules/devextreme/esm/events/short.js","./node_modules/devextreme/esm/__internal/core/license/byte_utils.js","./node_modules/devextreme/esm/__internal/core/license/key.js","./node_modules/devextreme/esm/__internal/core/license/types.js","./node_modules/devextreme/esm/__internal/core/license/pkcs1.js","./node_modules/devextreme/esm/__internal/core/license/sha1.js","./node_modules/devextreme/esm/__internal/core/license/license_validation.js","./node_modules/devextreme/esm/__internal/core/license/rsa_bigint.js","./node_modules/devextreme/esm/core/dom_component.js","./node_modules/devextreme/esm/core/utils/version.js","./node_modules/devextreme/esm/events/core/emitter.feedback.js","./node_modules/devextreme/esm/events/hover.js","./node_modules/devextreme/esm/ui/widget/ui.widget.js","./node_modules/devextreme/esm/core/utils/queue.js","javascript/esm|C:\\Git\\source\\repos\\nextPIM\\Pim\\ClientApp\\node_modules\\source-map-loader\\dist\\cjs.js","./node_modules/devextreme/esm/data/query_adapters.js","./node_modules/devextreme/esm/data/query_implementation.js","./node_modules/devextreme/esm/data/remote_query.js","./node_modules/devextreme/esm/data/query.js","./node_modules/devextreme/esm/data/array_store.js","./node_modules/devextreme/esm/data/data_source/utils.js","./node_modules/devextreme/esm/data/data_source/operation_manager.js","./node_modules/devextreme/esm/data/data_source/data_source.js","./node_modules/devextreme/esm/ui/collection/data_controller.js","./node_modules/devextreme/esm/data_helper.js","./node_modules/devextreme/esm/ui/collection/item.js","./node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","./node_modules/devextreme/esm/localization/parentLocale.js","./node_modules/devextreme/esm/localization/core.js","./node_modules/devextreme/esm/localization/default_messages.js","./node_modules/devextreme/esm/localization/message.js","./node_modules/devextreme/esm/events/hold.js","./node_modules/devextreme/esm/events/contextmenu.js","./node_modules/devextreme/esm/core/templates/bindable_template.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","./node_modules/devextreme/esm/ui/widget/ui.errors.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","./node_modules/devextreme/esm/ui/selection/selection.strategy.js","./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","./node_modules/devextreme/esm/core/utils/array_compare.js","./node_modules/devextreme/esm/core/utils/selection_filter.js","./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","./node_modules/devextreme/esm/ui/selection/selection.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","./node_modules/devextreme/esm/core/utils/icon.js","./node_modules/devextreme/esm/ui/themes.js","./node_modules/devextreme/esm/ui/themes_callback.js","./node_modules/devextreme/esm/ui/accordion.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-nested.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-accordion.js","./node_modules/devextreme/esm/core/utils/math.js","./node_modules/devextreme/esm/localization/utils.js","./node_modules/devextreme/esm/localization/ldml/number.js","./node_modules/devextreme/esm/localization/currency.js","./node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","./node_modules/devextreme/esm/localization/intl/number.js","./node_modules/devextreme/esm/localization/open_xml_currency_format.js","./node_modules/devextreme/esm/localization/number.js","./node_modules/devextreme/esm/ui/validation_engine.js","./node_modules/inferno/dist/index.esm.js","./node_modules/@devextreme/runtime/esm/inferno/effect_host.js","./node_modules/@devextreme/runtime/esm/inferno/base_component.js","./node_modules/@devextreme/runtime/esm/inferno/create_context.js","./node_modules/@devextreme/runtime/esm/inferno/effect.js","./node_modules/@devextreme/runtime/esm/inferno/portal.js","./node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","./node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","./node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","./node_modules/inferno-create-element/dist/index.esm.js","./node_modules/@devextreme/runtime/esm/inferno/render_template.js","./node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","./node_modules/devextreme/esm/core/inferno_renderer.js","./node_modules/devextreme/esm/renovation/utils/shallow_equals.js","./node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","./node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","./node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","./node_modules/devextreme/esm/renovation/component_wrapper/button.js","./node_modules/devextreme/esm/renovation/utils/combine_classes.js","./node_modules/devextreme/esm/renovation/ui/common/icon.js","./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","./node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","./node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","./node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","./node_modules/devextreme/esm/renovation/ui/common/base_props.js","./node_modules/devextreme/esm/renovation/common/config_context.js","./node_modules/devextreme/esm/renovation/common/config_provider.js","./node_modules/devextreme/esm/renovation/ui/common/widget.js","./node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","./node_modules/devextreme/esm/renovation/ui/button.js","./node_modules/devextreme/esm/renovation/ui/button.j.js","./node_modules/devextreme/esm/ui/button.js","./node_modules/devextreme/esm/events/drag.js","./node_modules/devextreme/esm/ui/resizable.js","./node_modules/devextreme/esm/mobile/hide_callback.js","./node_modules/devextreme/esm/ui/overlay/z_index.js","./node_modules/devextreme/esm/ui/widget/swatch_container.js","./node_modules/devextreme/esm/ui/overlay/overlay_position_controller.js","./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","./node_modules/devextreme/esm/ui/toolbar/constants.js","./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","./node_modules/devextreme/esm/core/resize_observer.js","./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","./node_modules/devextreme/esm/ui/popup/popup_overflow_manager.js","./node_modules/devextreme/esm/ui/popup/ui.popup.js","./node_modules/devextreme/esm/ui/popup/popup_drag.js","./node_modules/devextreme/esm/renovation/ui/resizable/utils.js","./node_modules/devextreme/esm/ui/popover/popover_position_controller.js","./node_modules/devextreme/esm/ui/popover/ui.popover.js","./node_modules/devextreme/esm/ui/action_sheet.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-action-sheet.js","./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","./node_modules/devextreme/esm/ui/text_box/utils.caret.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","./node_modules/devextreme/esm/ui/validation_message.js","./node_modules/devextreme/esm/ui/editor/editor.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","./node_modules/devextreme/esm/ui/load_indicator.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","./node_modules/devextreme/esm/ui/text_box/text_box.js","./node_modules/devextreme/esm/ui/text_box.js","./node_modules/devextreme/esm/ui/drop_down_editor/utils.js","./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","./node_modules/devextreme/esm/events/swipe.js","./node_modules/devextreme/esm/ui/list/item.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","./node_modules/devextreme/esm/ui/scroll_view/animator.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.old.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","./node_modules/devextreme/esm/ui/load_panel.js","./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","./node_modules/devextreme/esm/ui/scroll_view.js","./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","./node_modules/devextreme/esm/renovation/utils/type_conversion.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","./node_modules/devextreme/esm/ui/list/ui.list.base.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.js","./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","./node_modules/devextreme/esm/core/utils/stubs.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","./node_modules/devextreme/esm/ui/list_light.js","./node_modules/devextreme/esm/ui/editor/ui.data_expression.js","./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","./node_modules/devextreme/esm/ui/autocomplete.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-autocomplete.js","./node_modules/devextreme/esm/viz/components/consts.js","./node_modules/devextreme/esm/viz/core/layout_element.js","./node_modules/devextreme/esm/viz/chart_components/layout_manager.js","./node_modules/devextreme/esm/renovation/ui/common/utils/date/toMilliseconds.js","./node_modules/devextreme/esm/core/utils/date.js","./node_modules/devextreme/esm/color.js","./node_modules/devextreme/esm/viz/core/utils.js","./node_modules/devextreme/esm/viz/chart_components/tracker.js","./node_modules/devextreme/esm/viz/palette.js","./node_modules/devextreme/esm/viz/core/themes/generic.light.js","./node_modules/devextreme/esm/viz/core/themes/generic.carmine.js","./node_modules/devextreme/esm/viz/core/themes/generic.dark.js","./node_modules/devextreme/esm/viz/core/themes/generic.contrast.js","./node_modules/devextreme/esm/viz/core/themes/generic.darkmoon.js","./node_modules/devextreme/esm/viz/core/themes/generic.darkviolet.js","./node_modules/devextreme/esm/viz/core/themes/generic.greenmist.js","./node_modules/devextreme/esm/viz/core/themes/generic.softblue.js","./node_modules/devextreme/esm/viz/core/themes/material.js","./node_modules/devextreme/esm/viz/themes.js","./node_modules/devextreme/esm/viz/core/themes/fluent.js","./node_modules/devextreme/esm/viz/core/base_theme_manager.js","./node_modules/devextreme/esm/viz/components/chart_theme_manager.js","./node_modules/devextreme/esm/localization/ldml/date.formatter.js","./node_modules/devextreme/esm/localization/default_date_names.js","./node_modules/devextreme/esm/core/utils/date_serialization.js","./node_modules/devextreme/esm/viz/components/parse_utils.js","./node_modules/devextreme/esm/viz/components/data_validator.js","./node_modules/devextreme/esm/viz/core/title.js","./node_modules/devextreme/esm/core/utils/svg.js","./node_modules/devextreme/esm/viz/core/renderers/animation.js","./node_modules/devextreme/esm/viz/core/renderers/renderer.js","./node_modules/devextreme/esm/viz/components/legend.js","./node_modules/devextreme/esm/viz/core/data_source.js","./node_modules/devextreme/esm/exporter/image_creator.js","./node_modules/devextreme/esm/exporter/file_saver.js","./node_modules/devextreme/esm/exporter/svg_creator.js","./node_modules/devextreme/esm/exporter/pdf_creator.js","./node_modules/devextreme/esm/exporter.js","./node_modules/devextreme/esm/viz/core/export.js","./node_modules/devextreme/esm/viz/core/loading_indicator.js","./node_modules/devextreme/esm/localization/ldml/date.format.js","./node_modules/devextreme/esm/localization/ldml/date.parser.js","./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","./node_modules/devextreme/esm/localization/intl/date.js","./node_modules/devextreme/esm/localization/date.js","./node_modules/devextreme/esm/format_helper.js","./node_modules/devextreme/esm/viz/core/plaque.js","./node_modules/devextreme/esm/viz/core/tooltip.js","./node_modules/devextreme/esm/localization.js","./node_modules/devextreme/esm/viz/series/helpers/display_format_parser.js","./node_modules/devextreme/esm/viz/series/points/label.js","./node_modules/devextreme/esm/viz/series/points/symbol_point.js","./node_modules/devextreme/esm/viz/series/points/bar_point.js","./node_modules/devextreme/esm/viz/series/points/bubble_point.js","./node_modules/devextreme/esm/viz/series/points/pie_point.js","./node_modules/devextreme/esm/viz/series/points/range_symbol_point.js","./node_modules/devextreme/esm/viz/series/points/range_bar_point.js","./node_modules/devextreme/esm/viz/series/points/candlestick_point.js","./node_modules/devextreme/esm/viz/series/points/stock_point.js","./node_modules/devextreme/esm/viz/series/points/polar_point.js","./node_modules/devextreme/esm/viz/series/points/base_point.js","./node_modules/devextreme/esm/viz/series/helpers/range_data_calculator.js","./node_modules/devextreme/esm/viz/series/scatter_series.js","./node_modules/devextreme/esm/viz/series/line_series.js","./node_modules/devextreme/esm/viz/series/area_series.js","./node_modules/devextreme/esm/viz/series/bar_series.js","./node_modules/devextreme/esm/viz/series/range_series.js","./node_modules/devextreme/esm/viz/series/bubble_series.js","./node_modules/devextreme/esm/viz/series/pie_series.js","./node_modules/devextreme/esm/viz/series/financial_series.js","./node_modules/devextreme/esm/viz/series/stacked_series.js","./node_modules/devextreme/esm/viz/series/base_series.js","./node_modules/devextreme/esm/viz/core/errors_warnings.js","./node_modules/devextreme/esm/viz/core/base_widget.utils.js","./node_modules/devextreme/esm/viz/core/helpers.js","./node_modules/devextreme/esm/viz/core/layout.js","./node_modules/devextreme/esm/viz/utils.js","./node_modules/devextreme/esm/__internal/common/m_charts.js","./node_modules/devextreme/esm/__internal/viz/core/m_base_widget.js","./node_modules/devextreme/esm/__internal/viz/chart_components/rolling_stock.js","./node_modules/devextreme/esm/__internal/viz/chart_components/m_base_chart.js","./node_modules/devextreme/esm/viz/translators/translator1d.js","./node_modules/devextreme/esm/viz/gauges/theme_manager.js","./node_modules/devextreme/esm/viz/gauges/tracker.js","./node_modules/devextreme/esm/viz/gauges/base_gauge.js","./node_modules/devextreme/esm/viz/axes/smart_formatter.js","./node_modules/devextreme/esm/viz/axes/axes_constants.js","./node_modules/devextreme/esm/viz/axes/tick_generator.js","./node_modules/devextreme/esm/viz/translators/range.js","./node_modules/devextreme/esm/viz/translators/category_translator.js","./node_modules/devextreme/esm/viz/translators/interval_translator.js","./node_modules/devextreme/esm/viz/translators/datetime_translator.js","./node_modules/devextreme/esm/viz/translators/logarithmic_translator.js","./node_modules/devextreme/esm/viz/translators/translator2d.js","./node_modules/devextreme/esm/viz/axes/tick.js","./node_modules/devextreme/esm/viz/axes/datetime_breaks.js","./node_modules/devextreme/esm/viz/axes/xy_axes.js","./node_modules/devextreme/esm/viz/axes/axes_utils.js","./node_modules/devextreme/esm/viz/axes/polar_axes.js","./node_modules/devextreme/esm/viz/axes/base_axis.js","./node_modules/devextreme/esm/viz/axes/strip.js","./node_modules/devextreme/esm/viz/axes/constant_line.js","./node_modules/devextreme/esm/viz/gauges/common.js","./node_modules/devextreme/esm/viz/core/center_template.js","./node_modules/devextreme/esm/viz/gauges/base_indicators.js","./node_modules/devextreme/esm/viz/gauges/circular_indicators.js","./node_modules/devextreme/esm/viz/gauges/base_range_container.js","./node_modules/devextreme/esm/viz/gauges/circular_range_container.js","./node_modules/devextreme/esm/viz/gauges/circular_gauge.js","./node_modules/devextreme/esm/viz/gauges/bar_gauge.js","./node_modules/devextreme/esm/viz/bar_gauge.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-bar-gauge.js","./node_modules/devextreme/esm/ui/box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-box.js","./node_modules/devextreme/esm/viz/sparklines/base_sparkline.js","./node_modules/devextreme/esm/viz/sparklines/bullet.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-bullet.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-button.js","./node_modules/devextreme/esm/ui/button_group.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-button-group.js","./node_modules/devextreme/esm/events/gesture/swipeable.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.selection.strategy.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.single.selection.strategy.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.multiple.selection.strategy.js","./node_modules/devextreme/esm/ui/calendar/ui.calendar.range.selection.strategy.js","./node_modules/devextreme/esm/ui/calendar.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-calendar.js","./node_modules/devextreme/esm/viz/chart_components/crosshair.js","./node_modules/devextreme/esm/viz/chart_components/multi_axes_synchronizer.js","./node_modules/devextreme/esm/viz/chart_components/scroll_bar.js","./node_modules/devextreme/esm/viz/chart_components/shutter_zoom.js","./node_modules/devextreme/esm/events/transform.js","./node_modules/devextreme/esm/viz/chart_components/zoom_and_pan.js","./node_modules/devextreme/esm/viz/core/annotations.js","./node_modules/devextreme/esm/viz/core/series_family.js","./node_modules/devextreme/esm/__internal/viz/chart_components/m_advanced_chart.js","./node_modules/devextreme/esm/__internal/viz/m_chart.js","./node_modules/devextreme/esm/viz/chart.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-chart.js","./node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","./node_modules/devextreme/esm/renovation/utils/dom.js","./node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","./node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","./node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","./node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","./node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","./node_modules/devextreme/esm/renovation/utils/get_computed_style.js","./node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","./node_modules/devextreme/esm/ui/check_box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-check-box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-circular-gauge.js","./node_modules/devextreme/esm/ui/number_box/utils.js","./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","./node_modules/devextreme/esm/ui/number_box/number_box.base.js","./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","./node_modules/devextreme/esm/ui/number_box/number_box.js","./node_modules/devextreme/esm/ui/number_box.js","./node_modules/devextreme/esm/__internal/m_draggable.js","./node_modules/devextreme/esm/ui/draggable.js","./node_modules/devextreme/esm/ui/color_box/color_view.js","./node_modules/devextreme/esm/ui/color_box/color_box.js","./node_modules/devextreme/esm/ui/color_box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-color-box.js","./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","./node_modules/devextreme/esm/ui/context_menu.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-context-menu.js","./node_modules/devextreme/esm/ui/shared/accessibility.js","./node_modules/devextreme/esm/__internal/grids/grid_core/m_accessibility.js","./node_modules/devextreme/esm/events/double_click.js","./node_modules/devextreme/esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js","./node_modules/devextreme/esm/__internal/grids/grid_core/views/utils/update_views_borders.js","./node_modules/devextreme/esm/__internal/grids/grid_core/m_modules.js","./node_modules/devextreme/esm/ui/shared/filtering.js","./node_modules/devextreme/esm/__internal/grids/grid_core/m_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_columns_view.js","./node_modules/devextreme/esm/__internal/grids/grid_core/column_headers/m_column_headers.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_core.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_headers.js","./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/const.js","./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_columns_controller.js","./node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_controller.js","./node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_source_adapter.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_controller.js","./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js","./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/sorting.js","./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_rows_view.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/rows.js","./node_modules/devextreme/esm/__internal/grids/grid_core/context_menu/m_context_menu.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/context_menu.js","./node_modules/devextreme/esm/__internal/grids/grid_core/error_handling/m_error_handling.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/error_handling.js","./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_grid_view.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/grid_view.js","./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.multiline.js","./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.list.js","./node_modules/devextreme/esm/ui/popup/ui.popup.full.js","./node_modules/devextreme/esm/ui/popup.js","./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.js","./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.singleline.js","./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.js","./node_modules/devextreme/esm/ui/toolbar.js","./node_modules/devextreme/esm/__internal/grids/grid_core/header_panel/m_header_panel.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_panel.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget_base.js","./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js","./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/state_storing.js","./node_modules/devextreme/esm/__internal/grids/grid_core/selection/m_selection.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/selection.js","./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","./node_modules/devextreme/esm/ui/tree_view.js","./node_modules/devextreme/esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_utils.js","./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_core.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_chooser.js","./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js","./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js","./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping.js","./node_modules/devextreme/esm/__internal/grids/grid_core/master_detail/m_master_detail.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/master_detail.js","./node_modules/devextreme/esm/ui/radio_group/radio_button.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","./node_modules/devextreme/esm/ui/select_box.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","./node_modules/devextreme/esm/ui/date_box.js","./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editor_factory.js","./node_modules/devextreme/esm/ui/dialog.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/const.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_editing.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_row_based.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js","./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","./node_modules/devextreme/esm/ui/multi_view/ui.multi_view.animation.js","./node_modules/devextreme/esm/ui/multi_view.js","./node_modules/devextreme/esm/ui/tabs/item.js","./node_modules/devextreme/esm/ui/tabs/constants.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","./node_modules/devextreme/esm/ui/tabs.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js","./node_modules/devextreme/esm/ui/tab_panel.js","./node_modules/devextreme/esm/ui/tab_panel/item.js","./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","./node_modules/devextreme/esm/ui/form/ui.form.utils.js","./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","./node_modules/devextreme/esm/ui/responsive_box.js","./node_modules/devextreme/esm/ui/form/constants.js","./node_modules/devextreme/esm/ui/validation/default_adapter.js","./node_modules/devextreme/esm/ui/validator.js","./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","./node_modules/devextreme/esm/ui/form/components/label.js","./node_modules/devextreme/esm/ui/form/components/field_item.js","./node_modules/devextreme/esm/ui/form/components/empty_item.js","./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","./node_modules/devextreme/esm/ui/form/components/button_item.js","./node_modules/devextreme/esm/ui/validation_summary.js","./node_modules/devextreme/esm/ui/validation_group.js","./node_modules/devextreme/esm/ui/form/ui.form.js","./node_modules/devextreme/esm/ui/form.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_form_based.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js","./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_cell_based.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js","./node_modules/devextreme/esm/__internal/grids/grid_core/validating/m_validating.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/validating.js","./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js","./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js","./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js","./node_modules/devextreme/esm/ui/overlay/utils.js","./node_modules/devextreme/esm/ui/menu/ui.submenu.js","./node_modules/devextreme/esm/ui/menu/ui.menu.js","./node_modules/devextreme/esm/ui/menu.js","./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_row.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_row.js","./node_modules/devextreme/esm/ui/list/modules/search.js","./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js","./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_filter.js","./node_modules/devextreme/esm/__internal/filter_builder/m_between.js","./node_modules/devextreme/esm/__internal/filter_builder/m_filter_operations_dictionary.js","./node_modules/devextreme/esm/__internal/filter_builder/m_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js","./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_sync.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_sync.js","./node_modules/devextreme/esm/__internal/filter_builder/m_filter_builder.js","./node_modules/devextreme/esm/ui/filter_builder.js","./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_builder.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_builder.js","./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_panel.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_panel.js","./node_modules/devextreme/esm/__internal/grids/grid_core/search/m_search.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/search.js","./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","./node_modules/devextreme/esm/renovation/ui/pager/info.js","./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","./node_modules/devextreme/esm/renovation/ui/pager/content.js","./node_modules/devextreme/esm/renovation/ui/pager/pager.js","./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","./node_modules/devextreme/esm/ui/pager.js","./node_modules/devextreme/esm/__internal/grids/grid_core/pager/m_pager.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/pager.js","./node_modules/devextreme/esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js","./node_modules/devextreme/esm/__internal/utils/memoize.js","./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/const.js","./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js","./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/dom.js","./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/scrollable_a11y.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_aggregate_calculator.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js","./node_modules/devextreme/esm/__internal/grids/data_grid/summary/m_summary.js","./node_modules/devextreme/esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_fixing.js","./node_modules/devextreme/esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js","./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/adaptivity.js","./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js","./node_modules/devextreme/esm/ui/drop_down_button.js","./node_modules/devextreme/esm/__internal/grids/grid_core/m_export.js","./node_modules/devextreme/esm/__internal/grids/data_grid/export/m_export.js","./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus_utils.js","./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus.js","./node_modules/devextreme/esm/__internal/grids/data_grid/focus/m_focus.js","./node_modules/devextreme/esm/__internal/m_sortable.js","./node_modules/devextreme/esm/ui/sortable.js","./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/const.js","./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js","./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/dom.js","./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/row_dragging.js","./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget.js","./node_modules/devextreme/esm/ui/data_grid.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-data-grid.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-date-box.js","./node_modules/devextreme/esm/ui/date_range_box/ui.date_range.utils.js","./node_modules/devextreme/esm/ui/date_range_box/strategy/rangeCalendar.js","./node_modules/devextreme/esm/ui/date_range_box/ui.multiselect_date_box.js","./node_modules/devextreme/esm/ui/date_range_box/ui.date_range_box.js","./node_modules/devextreme/esm/ui/date_range_box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-date-range-box.js","./node_modules/devextreme/esm/animation/presets/presets.js","./node_modules/devextreme/esm/animation/transition_executor/transition_executor.js","./node_modules/devextreme/esm/ui/defer_rendering.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-defer-rendering.js","./node_modules/devextreme/esm/ui/diagram/diagram.importer.js","./node_modules/devextreme/esm/ui/diagram/diagram.bar.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.panel.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.menu_helper.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.toolbar.js","./node_modules/devextreme/esm/ui/diagram/diagram.commands_manager.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.main_toolbar.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.history_toolbar.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.view_toolbar.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.properties_toolbar.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.context_menu.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.context_toolbox.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.dialogs.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/const.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/m_widget_utils.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.scroll_view.js","./node_modules/devextreme/esm/ui/diagram/diagram.toolbox_manager.js","./node_modules/devextreme/esm/ui/tooltip/tooltip.js","./node_modules/devextreme/esm/ui/tooltip.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.floating_panel.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.toolbox.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.properties_panel.js","./node_modules/devextreme/esm/ui/diagram/diagram.options_update.js","./node_modules/devextreme/esm/ui/track_bar.js","./node_modules/devextreme/esm/ui/progress_bar.js","./node_modules/devextreme/esm/ui/file_uploader.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.dialog_manager.js","./node_modules/devextreme/esm/ui/diagram/diagram.items_option.js","./node_modules/devextreme/esm/ui/diagram/diagram.nodes_option.js","./node_modules/devextreme/esm/ui/diagram/diagram.edges_option.js","./node_modules/devextreme/esm/ui/diagram/ui.diagram.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-diagram.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-draggable.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.animation.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.push.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.shrink.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.overlap.js","./node_modules/devextreme/esm/ui/drawer/ui.drawer.js","./node_modules/devextreme/esm/ui/drawer.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-drawer.js","./node_modules/devextreme/esm/ui/drop_down_box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-drop-down-box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-drop-down-button.js","./node_modules/devextreme/esm/ui/toast/ui.toast.js","./node_modules/devextreme/esm/ui/toast.js","./node_modules/devextreme/esm/ui/notify.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.common.js","./node_modules/devextreme/esm/file_management/utils.js","./node_modules/devextreme/esm/file_management/file_system_item.js","./node_modules/devextreme/esm/file_management/provider_base.js","./node_modules/devextreme/esm/file_management/error.js","./node_modules/devextreme/esm/file_management/error_codes.js","./node_modules/devextreme/esm/file_management/object_provider.js","./node_modules/devextreme/esm/file_management/remote_provider.js","./node_modules/devextreme/esm/file_management/custom_provider.js","./node_modules/devextreme/esm/ui/file_manager/file_items_controller.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.command_manager.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.context_menu.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.file_actions_button.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.files_tree_view.js","./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.item_list.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.item_list.details.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.item_list.thumbnails.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.toolbar.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.notification.progress_panel.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.notification_manager.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.notification.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.dialog.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.dialog.name_editor.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.dialog.folder_chooser.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.dialog.delete_item.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.file_uploader.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.editing.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.dialog_manager.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.messages.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.breadcrumbs.js","./node_modules/devextreme/esm/ui/splitter.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.adaptivity.js","./node_modules/devextreme/esm/ui/file_manager/ui.file_manager.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-file-manager.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-file-uploader.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-filter-builder.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-form.js","./node_modules/devextreme/esm/viz/funnel/tiling.js","./node_modules/devextreme/esm/viz/funnel/tiling.funnel.js","./node_modules/devextreme/esm/viz/funnel/item.js","./node_modules/devextreme/esm/viz/funnel/funnel.js","./node_modules/devextreme/esm/viz/funnel/tiling.pyramid.js","./node_modules/devextreme/esm/viz/funnel/label.js","./node_modules/devextreme/esm/viz/components/tracker.js","./node_modules/devextreme/esm/viz/funnel/tracker.js","./node_modules/devextreme/esm/viz/funnel/tooltip.js","./node_modules/devextreme/esm/viz/funnel.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-funnel.js","./node_modules/devextreme/esm/ui/gallery.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-gallery.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.model_changes_listener.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.data.option.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.actions.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.cache.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.helper.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.custom_fields.js","./node_modules/devextreme/esm/ui/text_box/utils.scroll.js","./node_modules/devextreme/esm/ui/tag_box.js","./node_modules/devextreme/esm/ui/radio_group/radio_group.js","./node_modules/devextreme/esm/ui/radio_group.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_menu_helper.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.context.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.button.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.slide.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.static.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.swipe.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.dialogs.js","./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.export_helper.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.mapping_helper.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.size_helper.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.templates.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.bars.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_core.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/column_headers.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_columns_controller.js","./node_modules/devextreme/esm/__internal/grids/tree_list/data_source_adapter/m_data_source_adapter.js","./node_modules/devextreme/esm/__internal/grids/tree_list/data_controller/m_data_controller.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/sorting.js","./node_modules/devextreme/esm/__internal/grids/tree_list/rows/m_rows.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/context_menu.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/error_handling.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_grid_view.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/header_panel.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_widget_base.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_state_storing.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/column_chooser.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_master_detail.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/editor_factory.js","./node_modules/devextreme/esm/__internal/grids/tree_list/editing/m_editing.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/editing_row_based.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/editing_form_based.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/editing_cell_based.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_validating.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_virtual_scrolling.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/filter_row.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/header_filter.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/filter_sync.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/filter_builder.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/filter_panel.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/pager.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/columns_resizing_reordering.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/column_fixing.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/adaptivity.js","./node_modules/devextreme/esm/__internal/grids/tree_list/selection/m_selection.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/search.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_keyboard_navigation.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/virtual_columns.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_focus.js","./node_modules/devextreme/esm/__internal/grids/tree_list/module_not_extended/row_dragging.js","./node_modules/devextreme/esm/__internal/grids/tree_list/m_widget.js","./node_modules/devextreme/esm/ui/tree_list.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.treelist.nodes_state.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.treelist.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.task.area.container.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.view.js","./node_modules/devextreme/esm/ui/gantt/gantt_importer.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.data_changes_processing_helper.js","./node_modules/devextreme/esm/ui/gantt/ui.gantt.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-gantt.js","./node_modules/devextreme/esm/ui/html_editor/themes/base.js","./node_modules/devextreme/esm/ui/html_editor/quill_importer.js","./node_modules/devextreme/esm/ui/html_editor/formats/image.js","./node_modules/devextreme/esm/ui/html_editor/formats/link.js","./node_modules/devextreme/esm/ui/html_editor/formats/font.js","./node_modules/devextreme/esm/ui/html_editor/formats/size.js","./node_modules/devextreme/esm/ui/html_editor/formats/align.js","./node_modules/devextreme/esm/ui/html_editor/modules/base.js","./node_modules/devextreme/esm/ui/html_editor/modules/empty.js","./node_modules/devextreme/esm/ui/html_editor/modules/widget_collector.js","./node_modules/devextreme/esm/ui/html_editor/utils/table_helper.js","./node_modules/devextreme/esm/ui/html_editor/utils/image_uploader_helper.js","./node_modules/devextreme/esm/ui/html_editor/utils/toolbar_helper.js","./node_modules/devextreme/esm/ui/html_editor/modules/toolbar.js","./node_modules/devextreme/esm/ui/html_editor/modules/dropImage.js","./node_modules/devextreme/esm/ui/html_editor/modules/popup.js","./node_modules/devextreme/esm/ui/html_editor/formats/variable.js","./node_modules/devextreme/esm/ui/html_editor/modules/variables.js","./node_modules/devextreme/esm/ui/html_editor/modules/resizing.js","./node_modules/devextreme/esm/ui/html_editor/modules/tableResizing.js","./node_modules/devextreme/esm/ui/html_editor/modules/tableContextMenu.js","./node_modules/devextreme/esm/ui/html_editor/modules/imageUpload.js","./node_modules/devextreme/esm/ui/html_editor/modules/imageCursor.js","./node_modules/devextreme/esm/ui/html_editor/utils/templates_storage.js","./node_modules/devextreme/esm/ui/html_editor/formats/mention.js","./node_modules/devextreme/esm/ui/html_editor/modules/mentions.js","./node_modules/devextreme/esm/ui/html_editor/quill_registrator.js","./node_modules/devextreme/esm/ui/html_editor/converterController.js","./node_modules/devextreme/esm/ui/html_editor/matchers/wordLists.js","./node_modules/devextreme/esm/ui/html_editor/converters/delta.js","./node_modules/devextreme/esm/ui/html_editor/ui/formDialog.js","./node_modules/devextreme/esm/ui/html_editor/ui.html_editor.js","./node_modules/devextreme/esm/ui/html_editor.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-html-editor.js","./node_modules/devextreme/esm/viz/gauges/linear_indicators.js","./node_modules/devextreme/esm/viz/gauges/linear_range_container.js","./node_modules/devextreme/esm/viz/gauges/linear_gauge.js","./node_modules/devextreme/esm/viz/linear_gauge.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-linear-gauge.js","./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.reorder.js","./node_modules/devextreme/esm/ui/list.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-list.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-load-indicator.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-load-panel.js","./node_modules/devextreme/esm/ui/lookup.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-lookup.js","./node_modules/devextreme/esm/ui/map/provider.js","./node_modules/devextreme/esm/ui/map/provider.google_static.js","./node_modules/devextreme/esm/ui/map/provider.dynamic.js","./node_modules/devextreme/esm/ui/map/provider.dynamic.google.js","./node_modules/devextreme/esm/ui/map/provider.dynamic.bing.js","./node_modules/devextreme/esm/ui/map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-menu.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-multi-view.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-number-box.js","./node_modules/devextreme/esm/__internal/viz/m_pie_chart.js","./node_modules/devextreme/esm/viz/pie_chart.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-pie-chart.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/chart_integration/m_chart_integration.js","./node_modules/devextreme/esm/renovation/ui/common/utils/scroll/getMemoizeScrollTo.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/area_item/m_area_item.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/data_area/m_data_area.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/local_store/m_local_store.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/remote_store/m_remote_store_utils.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/remote_store/m_remote_store.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/summary_display_modes/m_summary_display_modes.js","./node_modules/devextreme/esm/localization/language_codes.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/xmla_store/m_xmla_store.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/data_source/m_data_source_utils.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/data_source/m_data_source.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/data_controller/m_data_controller.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/export/m_export.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/field_chooser/const.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/sortable/m_sortable.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/field_chooser/dom.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/field_chooser/utils.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/field_chooser/m_field_chooser_base.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/field_chooser/m_field_chooser.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/fields_area/m_fields_area.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/headers_area/m_headers_area.js","./node_modules/devextreme/esm/__internal/grids/pivot_grid/m_widget.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-pivot-grid.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-pivot-grid-field-chooser.js","./node_modules/devextreme/esm/__internal/viz/m_polar_chart.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-polar-chart.js","./node_modules/devextreme/esm/ui/popover/ui.popover.full.js","./node_modules/devextreme/esm/ui/popover.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-popover.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-popup.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-progress-bar.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-radio-group.js","./node_modules/devextreme/esm/viz/range_selector/common.js","./node_modules/devextreme/esm/viz/range_selector/slider_marker.js","./node_modules/devextreme/esm/viz/range_selector/slider.js","./node_modules/devextreme/esm/viz/range_selector/sliders_controller.js","./node_modules/devextreme/esm/viz/range_selector/tracker.js","./node_modules/devextreme/esm/viz/range_selector/range_view.js","./node_modules/devextreme/esm/viz/range_selector/series_data_source.js","./node_modules/devextreme/esm/viz/range_selector/range_selector.js","./node_modules/devextreme/esm/viz/range_selector.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-range-selector.js","./node_modules/devextreme/esm/ui/slider/slider_tooltip_position_controller.js","./node_modules/devextreme/esm/ui/slider/ui.slider_tooltip.js","./node_modules/devextreme/esm/ui/slider/ui.slider_handle.js","./node_modules/devextreme/esm/ui/slider/ui.slider.js","./node_modules/devextreme/esm/ui/slider.js","./node_modules/devextreme/esm/ui/range_slider.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-range-slider.js","./node_modules/devextreme/esm/renovation/ui/scheduler/timeZoneCalculator/types.js","./node_modules/rrule/dist/esm/weekday.js","./node_modules/rrule/dist/esm/helpers.js","./node_modules/rrule/dist/esm/dateutil.js","./node_modules/rrule/dist/esm/iterresult.js","./node_modules/rrule/dist/esm/callbackiterresult.js","./node_modules/rrule/dist/esm/nlp/i18n.js","./node_modules/rrule/dist/esm/nlp/totext.js","./node_modules/rrule/dist/esm/nlp/parsetext.js","./node_modules/rrule/dist/esm/types.js","./node_modules/rrule/dist/esm/nlp/index.js","./node_modules/rrule/dist/esm/datetime.js","./node_modules/rrule/dist/esm/parseoptions.js","./node_modules/rrule/dist/esm/parsestring.js","./node_modules/rrule/dist/esm/datewithzone.js","./node_modules/rrule/dist/esm/optionstostring.js","./node_modules/rrule/dist/esm/cache.js","./node_modules/rrule/dist/esm/masks.js","./node_modules/rrule/dist/esm/iterinfo/index.js","./node_modules/rrule/dist/esm/iterinfo/yearinfo.js","./node_modules/rrule/dist/esm/iterinfo/monthinfo.js","./node_modules/rrule/dist/esm/iterinfo/easter.js","./node_modules/rrule/dist/esm/iter/poslist.js","./node_modules/rrule/dist/esm/iter/index.js","./node_modules/rrule/dist/esm/rrule.js","./node_modules/rrule/dist/esm/rrulestr.js","./node_modules/rrule/dist/esm/rruleset.js","./node_modules/rrule/dist/esm/iterset.js","./node_modules/devextreme/esm/__internal/core/utils/date.js","./node_modules/devextreme/esm/__internal/scheduler/m_date_adapter.js","./node_modules/devextreme/esm/__internal/scheduler/timezones/m_utils_timezones_data.js","./node_modules/devextreme/esm/__internal/scheduler/timezones/timezones_data.js","./node_modules/devextreme/esm/__internal/scheduler/m_utils_time_zone.js","./node_modules/devextreme/esm/__internal/scheduler/m_recurrence.js","./node_modules/devextreme/esm/__internal/scheduler/m_recurrence_editor.js","./node_modules/devextreme/esm/ui/recurrence_editor.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-recurrence-editor.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-resizable.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-responsive-box.js","./node_modules/devextreme/esm/viz/sankey/constants.js","./node_modules/devextreme/esm/viz/sankey/node_item.js","./node_modules/devextreme/esm/viz/sankey/link_item.js","./node_modules/devextreme/esm/viz/sankey/graph.js","./node_modules/devextreme/esm/viz/sankey/data_validator.js","./node_modules/devextreme/esm/viz/sankey/layout.js","./node_modules/devextreme/esm/viz/sankey/sankey.js","./node_modules/devextreme/esm/viz/sankey/tooltip.js","./node_modules/devextreme/esm/viz/sankey/tracker.js","./node_modules/devextreme/esm/viz/sankey.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-sankey.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay.js","./node_modules/devextreme/esm/renovation/ui/scheduler/model/untyped_getCurrentView.js","./node_modules/devextreme/esm/renovation/ui/scheduler/timeZoneCalculator/utils.js","./node_modules/devextreme/esm/ui/scheduler/utils.timeZone.js","./node_modules/devextreme/esm/__internal/scheduler/m_expression_utils.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_utils.js","./node_modules/devextreme/esm/__internal/scheduler/m_appointment_adapter.js","./node_modules/devextreme/esm/renovation/ui/scheduler/utils/recurrence/excludeFromRecurrence.js","./node_modules/devextreme/esm/__internal/scheduler/m_classes.js","./node_modules/devextreme/esm/__internal/scheduler/m_constants.js","./node_modules/devextreme/esm/renovation/ui/scheduler/resources/hasResourceValue.js","./node_modules/devextreme/esm/__internal/scheduler/resources/m_utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/consts.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/const.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/base.js","./node_modules/devextreme/esm/ui/text_area.js","./node_modules/devextreme/esm/ui/switch.js","./node_modules/devextreme/esm/data/data_source.js","./node_modules/devextreme/esm/renovation/ui/scheduler/utils/semaphore/semaphore.js","./node_modules/devextreme/esm/__internal/scheduler/appointment_popup/m_form.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment_edit_form/popup_config.js","./node_modules/devextreme/esm/__internal/scheduler/m_loading.js","./node_modules/devextreme/esm/__internal/scheduler/appointment_popup/m_popup.js","./node_modules/devextreme/esm/renovation/ui/scheduler/utils/filtering/getDatesWithoutTime.js","./node_modules/devextreme/esm/renovation/ui/scheduler/utils/filtering/remote.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_data_source.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_filter.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_data_provider.js","./node_modules/devextreme/esm/ui/tooltip/ui.tooltip.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment_layout.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/resizing/m_core.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment_collection.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/content/details/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/content/title/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/content/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/resources/utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointments_context.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/appointment.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/overflow_indicator/utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/overflow_indicator/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/appointment/layout.j.js","./node_modules/devextreme/esm/__internal/scheduler/m_utils.js","./node_modules/devextreme/esm/__internal/scheduler/header/m_calendar.js","./node_modules/devextreme/esm/__internal/scheduler/header/m_date_navigator.js","./node_modules/devextreme/esm/__internal/scheduler/header/m_utils.js","./node_modules/devextreme/esm/__internal/scheduler/header/m_view_switcher.js","./node_modules/devextreme/esm/__internal/scheduler/header/m_header.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_cell_position_calculator.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_text_utils.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_settings_generator.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_base.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_adaptive.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_base.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/appointments/utils/getSkippedHoursInRange.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/helpers/m_position_helper.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month_line.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_vertical.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_view_model_generator.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_week.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.js","./node_modules/devextreme/esm/__internal/scheduler/m_appointments_layout_manager.js","./node_modules/devextreme/esm/__internal/scheduler/m_data_structures.js","./node_modules/devextreme/esm/__internal/scheduler/m_compact_appointments_helper.js","./node_modules/devextreme/esm/__internal/scheduler/m_subscribes.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/common/validation_functions.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/core/validator.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/core/validator_rules.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/common/validator_rules.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/validator_rules.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/options_validator.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/core/options_validator.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/options_validator_errors_handler.js","./node_modules/devextreme/esm/__internal/scheduler/options_validator/core/options_validator_error_handler.js","./node_modules/devextreme/esm/__internal/scheduler/resources/m_agenda_resource_processor.js","./node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_tooltip_strategy_base.js","./node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.js","./node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_mobile_tooltip_strategy.js","./node_modules/devextreme/esm/__internal/scheduler/m_table_creator.js","./node_modules/devextreme/esm/renovation/component_wrapper/scheduler/date_table.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/ordinary_cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/virtual_cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/row.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/virtual_row.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/table.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/const.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table_body.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/layout_props.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table.j.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/title.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/title.j.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/table_body.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/date_table/layout.j.js","./node_modules/devextreme/esm/renovation/component_wrapper/scheduler/group_panel.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel_props.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/cell_props.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/row_props.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/row.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel_layout_props.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/row.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel.j.js","./node_modules/devextreme/esm/renovation/component_wrapper/scheduler/header_panel.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/dateHeaderText.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/cell.js","./node_modules/devextreme/esm/renovation/utils/getThemeType.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_panel/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/header_panel/layout.j.js","./node_modules/devextreme/esm/renovation/component_wrapper/scheduler/time_panel.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/time_panel/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/time_panel/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/base/time_panel/layout.j.js","./node_modules/devextreme/esm/__internal/scheduler/base/m_widget_observer.js","./node_modules/devextreme/esm/__internal/scheduler/m_appointment_drag_behavior.js","./node_modules/devextreme/esm/__internal/scheduler/utils/is_scheduler_component.js","./node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader.js","./node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader_vertical.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cache.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cells_selection_controller.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cells_selection_state.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_virtual_scrolling.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_horizontal.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_vertical.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_date_header_data_generator.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_grouped_data_map_provider.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/week.js","./node_modules/devextreme/esm/__internal/core/utils/math.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_time_panel_data_generator.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_day.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/day.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_utils.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/timeline_month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_timeline_month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_week.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/work_week.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_work_week.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_provider.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/group_panel/utils.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_agenda.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/agenda.js","./node_modules/devextreme/esm/renovation/ui/scheduler/view_model/to_test/views/utils/timeline_week.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/timeline/header_panel/date_header/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/timeline/header_panel/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/timeline/header_panel/layout.j.js","./node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader_horizontal.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_indicator.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_day.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_week.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_work_week.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_vertical.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_day.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/month/date_table/cell.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/month/date_table/layout.js","./node_modules/devextreme/esm/renovation/ui/scheduler/workspaces/month/date_table/layout.j.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_month.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_week.js","./node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_work_week.js","./node_modules/devextreme/esm/__internal/scheduler/m_scheduler.js","./node_modules/devextreme/esm/renovation/ui/scheduler/timeZoneCalculator/createTimeZoneCalculator.js","./node_modules/devextreme/esm/renovation/ui/scheduler/utils/data.js","./node_modules/devextreme/esm/__internal/scheduler/appointments/m_render.js","./node_modules/devextreme/esm/renovation/ui/scheduler/model/utils.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-scheduler.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-scroll-view.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-select-box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-slider.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-sortable.js","./node_modules/devextreme/esm/viz/sparklines/sparkline.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-sparkline.js","./node_modules/devextreme/esm/ui/speed_dial_action/speed_dial_item.js","./node_modules/devextreme/esm/ui/speed_dial_action/speed_dial_main_item.js","./node_modules/devextreme/esm/ui/speed_dial_action/speed_dial_action.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-speed-dial-action.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-switch.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tab-panel.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tabs.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tag-box.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-text-area.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-text-box.js","./node_modules/devextreme/esm/ui/tile_view.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tile-view.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-toast.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-toolbar.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tooltip.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tree-list.js","./node_modules/devextreme/esm/viz/tree_map/common.js","./node_modules/devextreme/esm/viz/tree_map/node.js","./node_modules/devextreme/esm/viz/tree_map/tiling.js","./node_modules/devextreme/esm/viz/tree_map/colorizing.js","./node_modules/devextreme/esm/viz/tree_map/tiling.squarified.base.js","./node_modules/devextreme/esm/viz/tree_map/tiling.squarified.js","./node_modules/devextreme/esm/viz/tree_map/colorizing.discrete.js","./node_modules/devextreme/esm/viz/tree_map/tree_map.base.js","./node_modules/devextreme/esm/viz/tree_map/tiling.strip.js","./node_modules/devextreme/esm/viz/tree_map/tiling.slice_and_dice.js","./node_modules/devextreme/esm/viz/tree_map/tiling.rotated_slice_and_dice.js","./node_modules/devextreme/esm/viz/tree_map/colorizing.gradient.js","./node_modules/devextreme/esm/viz/tree_map/colorizing.range.js","./node_modules/devextreme/esm/viz/tree_map/api.js","./node_modules/devextreme/esm/viz/tree_map/states.js","./node_modules/devextreme/esm/viz/tree_map/hover.js","./node_modules/devextreme/esm/viz/tree_map/selection.js","./node_modules/devextreme/esm/viz/tree_map/tooltip.js","./node_modules/devextreme/esm/viz/tree_map/tracker.js","./node_modules/devextreme/esm/viz/tree_map/drilldown.js","./node_modules/devextreme/esm/viz/tree_map/plain_data_source.js","./node_modules/devextreme/esm/viz/tree_map/tree_map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tree-map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-tree-view.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-validation-group.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-validation-summary.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-validator.js","./node_modules/devextreme/esm/viz/vector_map/event_emitter.js","./node_modules/devextreme/esm/viz/vector_map/projection.main.js","./node_modules/devextreme/esm/viz/vector_map/control_bar/utils.js","./node_modules/devextreme/esm/viz/vector_map/control_bar/control_bar.js","./node_modules/devextreme/esm/viz/vector_map/gesture_handler.js","./node_modules/devextreme/esm/viz/vector_map/tracker.js","./node_modules/devextreme/esm/viz/vector_map/data_exchanger.js","./node_modules/devextreme/esm/viz/vector_map/legend.js","./node_modules/devextreme/esm/viz/vector_map/layout.js","./node_modules/devextreme/esm/viz/vector_map/map_layer.js","./node_modules/devextreme/esm/viz/vector_map/tooltip_viewer.js","./node_modules/devextreme/esm/viz/vector_map/vector_map.utils.js","./node_modules/devextreme/esm/viz/vector_map/projection.js","./node_modules/devextreme/esm/viz/vector_map/vector_map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular-ui-vector-map.js","./node_modules/devextreme-angular/fesm2015/devextreme-angular.js","./src/app/Services/admin.service.ts","./node_modules/rxjs/dist/esm/internal/lastValueFrom.js","./src/app/Model/ui/Toggle.ts","./src/app/Model/Dto/LanguageFlag.ts","./src/app/Services/view.service.ts","./src/app/Model/Dto/OsgConnection.ts","./src/app/Model/Dto/MavisConnection.ts","./src/app/Model/Dto/SendToNWConfig.ts","./src/app/Model/System/Message.ts","./src/app/Model/User/WawiSettings.ts","./src/app/Model/User/ProductSearchOptions.ts","./src/app/Model/User/SearchFields.ts","./src/app/Model/System/CustomerWiki.ts","./src/app/Services/system.service.ts","./src/app/Services/wawiSettingsService.service.ts","./src/app/Services/customer.service.ts","./src/app/Services/user.service.ts","./src/app/Services/addon.service.ts","./src/app/Services/login.service.ts","./src/app/Services/functions.ts","./src/app/Model/Catalog/CatalogPriceList.ts","./src/app/Model/Dto/AddItem.ts","./src/app/Model/Dto/DuplicateItem.ts","./src/app/Services/job.service.ts","./src/app/Services/shop.service.ts","./src/app/Model/Catalog/OrderDetail.ts","./src/app/Model/Catalog/ProductLogistic.ts","./src/app/Model/Catalog/Agreement.ts","./src/app/Model/Catalog/LegalCharacteristic.ts","./src/app/Model/Catalog/LinkedField.ts","./src/app/Model/Catalog/ElectronicSalesDetail.ts","./src/app/Model/Catalog/product.ts","./src/app/Model/Catalog/FeatureModels/FeatureSystem.ts","./src/app/Model/Catalog/WawiIntegration.ts","./src/app/Model/Catalog/CustomWawiField.ts","./src/app/Services/CatalogManagement/product.service.ts","./src/app/Services/CatalogManagement/catalog.service.ts","./src/app/Services/catalogState.service.ts","./src/app/Services/CatalogManagement/category.service.ts","./src/app/Services/media.service.ts","./src/app/Model/Dto/Translation.ts","./src/app/Model/Dto/ExportTranslation.ts","./src/app/Model/Dto/CustomerLanguage.ts","./src/app/Services/translation.service.ts","./src/app/Model/Dto/RestoreBackup.ts","./src/app/Services/CatalogManagement/backup.service.ts","./src/app/Services/dataQuality.service.ts","./src/app/Model/Dto/OsgImportCatalog.ts","./src/app/Services/osgConnection.service.ts","./src/app/Services/classification.service.ts","./src/app/Services/validFeature.service.ts","./src/app/Services/hazmatClass.service.ts","./src/app/Services/warrantyClass.service.ts","./src/app/Services/updateTemplate.service.ts","./src/app/Services/mavisConnection.service.ts","./src/app/Services/print.service.ts","./src/app/Services/sendToNWConfig.service.ts","./src/app/Services/productState.service.ts","./src/app/Services/productreporting.service.ts","./src/app/Services/featureMapping.service.ts","./src/app/Services/supplierPidMapping.service.ts","./src/app/Services/deeplConnection.service.ts","./src/app/Services/model.service.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/catalog/product/shopView.component.html","./src/app/catalog/product/shopView.component.ts","./src/app/Model/user/AppUser.ts","./src/app/Model/validation/ValidationRequest.ts","./src/app/Model/FieldNames.ts","./src/app/Model/validation/ValidationResult.ts","./src/app/Model/Catalog/Address.ts","./src/app/Model/Catalog/Buyer.ts","./src/app/Model/Catalog/Supplier.ts","./src/app/Model/Catalog/Catalog.ts","./src/app/Services/Validation/validation.service.ts","./src/app/productView/productView.component.html","./src/app/productView/productView.component.ts","./src/app/shared/layout/fullscreen-page.component.ts","./src/app/shared/layout/fullscreen-page.component.html","./src/app/shared/layout/content-column.component.html","./src/app/shared/layout/content-column.component.ts","./src/app/search/search.component.html","./src/app/search/search.component.ts","./src/app/Model/user/Credentials.ts","./src/app/Services/news.service.ts","./src/app/shared/logo/logo.component.ts","./src/app/shared/logo/logo.component.html","./src/app/account/login/login.component.ts","./src/app/account/login/login.component.html","./src/app/Model/User/RequestPassword.ts","./src/app/account/forgotPassword/forgotPassword.component.ts","./src/app/account/forgotPassword/forgotPassword.component.html","./src/app/account/home/accounthome.component.ts","./src/app/Model/User/Customer.ts","./src/app/Model/Dto/CustomerStatistics.ts","./src/app/Model/User/PimLicense.ts","./src/app/Services/userManagment.service.ts","./src/app/shared/layout/navigation-column.component.ts","./src/app/shared/layout/navigation-column.component.html","./src/app/account/myAccount/userManagement/userManagement.component.html","./src/app/account/myAccount/userManagement/userManagement.component.ts","./src/app/account/dscInfos/dscInfos.component.html","./src/app/account/dscInfos/dscInfos.component.ts","./src/app/account/osgConnection/osgConnection.component.html","./src/app/account/osgConnection/osgConnection.component.ts","./src/app/account/mavisConnection/mavisConnection.component.html","./src/app/account/mavisConnection/mavisConnection.component.ts","./src/app/Model/System/PrintCredential.ts","./src/app/Model/Dto/CreatePrintCredential.ts","./src/app/account/easyCatalog/easyCatalog.component.html","./src/app/account/easyCatalog/easyCatalog.component.ts","./src/app/account/sendToNWConfig/sendToNWConfig.component.html","./src/app/account/sendToNWConfig/sendToNWConfig.component.ts","./src/app/Model/User/CustomField.ts","./src/app/Services/wawiList.service.ts","./src/app/Model/catalog/ProductLogistic.ts","./src/app/Model/catalog/OrderDetail.ts","./src/app/Model/catalog/Agreement.ts","./src/app/Model/catalog/LegalCharacteristic.ts","./src/app/Model/catalog/LinkedField.ts","./src/app/Model/catalog/ElectronicSalesDetail.ts","./src/app/Model/catalog/product.ts","./src/app/Model/Catalog/NextPimField.ts","./src/app/Model/ui/DragInfo.ts","./src/app/Model/classification/FeatureValue.ts","./src/app/Model/Catalog/FeatureModels/Feature.ts","./src/app/Model/Catalog/Mime.ts","./src/app/Model/Catalog/PriceList.ts","./src/app/Model/Catalog/ProductPriceDetail.ts","./src/app/Model/Catalog/TemplateItem.ts","./src/app/Model/Catalog/template.ts","./src/app/Model/ui/ExcelElement.ts","./src/app/Model/Dto/RestartJob.ts","./src/app/Model/Catalog/UdxField.ts","./src/app/Model/Catalog/Reference.ts","./src/app/Model/Catalog/ProductSupplier.ts","./src/app/Model/Catalog/PackingUnit.ts","./src/app/Model/ModelOperations.ts","./src/app/Services/template.service.ts","./src/app/Services/tooltip.service.ts","./src/app/ui/inputControl/inputControl.component.html","./src/app/ui/inputControl/inputControl.component.ts","./src/app/account/wawiSettings/wawiSettings.component.html","./src/app/account/wawiSettings/wawiSettings.component.ts","./src/app/account/deeplConnection/DeeplConnection.component.html","./src/app/account/deeplConnection/deeplConnection.component.ts","./src/app/Services/ftp/ftpImportJob.service.ts","./src/app/Services/ftp/ftpServer.service.ts","./src/app/recurringJobs/ftpImport/ftpImport.component.html","./src/app/recurringJobs/ftpImport/ftpImport.component.ts","./src/app/Services/ftp/ftpExportJob.service.ts","./src/app/Services/exportConfiguration.service.ts","./src/app/recurringJobs/ftpExport/ftpExport.component.html","./src/app/recurringJobs/ftpExport/ftpExport.component.ts","./src/app/Services/ftp/ftpSupplierPidMappingsImportJobs.service.ts","./src/app/recurringJobs/ftpSupplierPidMappingsImport/ftpSupplierPidMappingsImport.component.html","./src/app/recurringJobs/ftpSupplierPidMappingsImport/ftpSupplierPidMappingsImport.component.ts","./src/app/account/recurringJobs/recurringJobs.component.html","./src/app/account/recurringJobs/recurringJobs.component.ts","./src/app/Model/ftpServer.ts","./src/app/recurringJobs/ftpServer/ftpServer.component.html","./src/app/recurringJobs/ftpServer/ftpServer.component.ts","./src/app/Model/edeSortimentsAbo/EdeMemberId.ts","./src/app/Services/edeMemberId.service.ts","./src/app/account/edeSortimentsAbo/edeSortimentsAbo.component.ts","./src/app/account/edeSortimentsAbo/edeSortimentsAbo.component.html","./src/app/Model/Dto/InvoiceSettingDto.ts","./src/app/Services/invoice.service.ts","./src/app/account/invoice/invoice.component.html","./src/app/account/invoice/invoice.component.ts","./src/app/account/myAccount/myAccount.component.html","./src/app/account/myAccount/myAccount.component.ts","./src/app/shared/help/help.component.html","./src/app/shared/help/help.component.ts","./src/app/shared/layout/help-column.component.html","./src/app/shared/layout/help-column.component.ts","./src/app/catalog/functions/import/importTranslations.component.ts","./src/app/catalog/functions/import/importTranslations.component.html","./src/app/account/translation/translation.component.html","./src/app/account/translation/translation.component.ts","./src/app/Model/Dto/ValidateExportJob.ts","./src/app/Model/ui/DateFilter.ts","./src/app/Services/MaintenanceModeService.ts","./src/app/shared/helpButton/NpHelpButton.component.ts","./src/app/shared/helpButton/NpHelpButton.component.html","./src/app/Model/exportParameter/CatalogFilter.ts","./src/app/Model/Dto/SearchByListParameter.ts","./src/app/Model/exportParameter/ExportParameter.ts","./src/app/catalog/functions/export/catalog/configuration/exportConfiguration.component.html","./src/app/catalog/functions/export/catalog/configuration/exportConfiguration.component.ts","./src/app/Model/exportParameter/SimpleHierachicalFilter.ts","./src/app/Services/exportFilter.service.ts","./src/app/catalog/functions/export/catalog/filter/productStateFilter/productStateFilter.component.html","./src/app/catalog/functions/export/catalog/filter/productStateFilter/productStateFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/categoryFilter/categoryFilter.component.html","./src/app/catalog/functions/export/catalog/filter/categoryFilter/categoryFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/manufacturerFilter/manufacturerFilter.component.html","./src/app/catalog/functions/export/catalog/filter/manufacturerFilter/manufacturerFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/supplierContentFilter/supplierContentFilter.component.html","./src/app/catalog/functions/export/catalog/filter/supplierContentFilter/supplierContentFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/udxFilter/udxFilter.component.html","./src/app/catalog/functions/export/catalog/filter/udxFilter/udxFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/dateFilter/dateFilter.component.html","./src/app/catalog/functions/export/catalog/filter/dateFilter/dateFilter.component.ts","./src/app/catalog/functions/export/catalog/filter/searchByListFilter/searchByListFilter.component.html","./src/app/catalog/functions/export/catalog/filter/searchByListFilter/searchByListFilter.component.ts","./src/app/catalog/functions/export/catalog/content/feature-content-filter/featureContentFilter.component.html","./src/app/catalog/functions/export/catalog/content/feature-content-filter/featureContentFilter.component.ts","./src/app/catalog/functions/export/catalog/content/pricelist-content-filter/pricelistContentFilter.component.html","./src/app/catalog/functions/export/catalog/content/pricelist-content-filter/pricelistContentFilter.component.ts","./src/app/catalog/functions/export/catalog/content/udx-content-filter/udxContentFilter.component.html","./src/app/catalog/functions/export/catalog/content/udx-content-filter/udxContentFilter.component.ts","./src/app/templateEditor/newTemplate.component.ts","./src/app/templateEditor/newTemplate.component.html","./src/app/templateEditor/templateSelector.component.html","./src/app/templateEditor/templateSelector.component.ts","./src/app/Model/Catalog/ProductState.ts","./src/app/ui/booleanRadioGroup/booleanRadioGroup.component.html","./src/app/ui/booleanRadioGroup/booleanRadioGroup.component.ts","./src/app/catalog/shared/infos.html","./src/app/catalog/shared/infos.ts","./src/app/catalog/functions/import/importMime.component.ts","./src/app/catalog/functions/import/importMime.component.html","./src/app/Model/Dto/CreateReportProductDatasheet.ts","./src/app/Reporting/productreportingdialog.component.ts","./src/app/Reporting/productreportingdialog.component.html","./src/app/catalog/shared/mimes.html","./src/app/catalog/shared/mimes.ts","./src/app/Model/ValidFeature.ts","./src/app/catalog/shared/featurevalue.component.html","./src/app/catalog/shared/featurevalue.component.ts","./src/app/catalog/shared/editfeaturevaluelist.component.html","./src/app/catalog/shared/editfeaturevaluelist.component.ts","./src/app/classification/productClassification.component.html","./src/app/classification/productClassification.component.ts","./src/app/catalog/shared/editfeaturesystemlist.component.html","./src/app/catalog/shared/editfeaturesystemlist.component.ts","./src/app/catalog/shared/orderDetail.component.html","./src/app/catalog/shared/orderDetail.component.ts","./src/app/Model/catalog/ProductPriceDetail.ts","./src/app/Model/catalog/PriceList.ts","./src/app/catalog/shared/prices.html","./src/app/catalog/shared/prices.ts","./src/app/catalog/shared/logistic.html","./src/app/catalog/shared/logistic.ts","./src/app/catalog/shared/references.html","./src/app/catalog/shared/references.ts","./src/app/catalog/shared/udx.html","./src/app/catalog/shared/udx.ts","./src/app/catalog/shared/electronicSales/electronicSales.component.html","./src/app/catalog/shared/electronicSales/electronicSales.component.ts","./src/app/catalog/shared/seo_sea/seo.component.ts","./src/app/catalog/shared/seo_sea/seo.component.html","./src/app/catalog/shared/seo_sea/snippet.component.ts","./src/app/catalog/shared/seo_sea/snippet.component.html","./src/app/catalog/shared/seo.html","./src/app/catalog/shared/seo.ts","./src/app/catalog/shared/wawi/wawi.component.html","./src/app/catalog/shared/wawi/wawi.component.ts","./src/app/catalog/shared/productLegal.component.html","./src/app/catalog/shared/productLegal.component.ts","./src/app/catalog/shared/productSupplier/supplierPackingUnits/supplierPackingUnits.component.html","./src/app/catalog/shared/productSupplier/supplierPackingUnits/supplierPackingUnits.component.ts","./src/app/catalog/shared/productSupplier/productSupplier.component.html","./src/app/catalog/shared/productSupplier/productSupplier.component.ts","./src/app/catalog/shared/misc.html","./src/app/catalog/shared/misc.ts","./src/app/catalog/functions/template/templateProduct.component.html","./src/app/catalog/functions/template/templateProduct.component.ts","./src/app/Model/ui/Select.ts","./src/app/Model/wawi/WawiList.ts","./src/app/catalog/functions/template/templateExcel.component.html","./src/app/catalog/functions/template/templateExcel.component.ts","./src/app/templateEditor/template-editor.component.html","./src/app/templateEditor/template-editor.component.ts","./src/app/catalog/functions/export/catalog/fieldList/fieldList.component.html","./src/app/catalog/functions/export/catalog/fieldList/fieldList.component.ts","./src/app/catalog/functions/export/catalog/csvSettings/csvSettings.component.html","./src/app/catalog/functions/export/catalog/csvSettings/csvSettings.component.ts","./src/app/catalog/functions/export/catalog/exportParameter/exportParameter.component.html","./src/app/catalog/functions/export/catalog/exportParameter/exportParameter.component.ts","./src/app/Jobs/jobDetail/jobDetail.component.html","./src/app/Jobs/jobDetail/jobDetail.component.ts","./src/app/Jobs/pindata.component.html","./src/app/Jobs/pindata.component.ts","./src/app/Jobs/jobList.component.html","./src/app/Jobs/jobList.component.ts","./src/app/account/admin/admin-logins/admin-logins.component.html","./src/app/account/admin/admin-logins/admin-logins.component.ts","./node_modules/devextreme/esm/exporter/exceljs/export_format.js","./node_modules/devextreme/esm/exporter/common/export_load_panel.js","./node_modules/devextreme/esm/exporter/exceljs/export.js","./node_modules/devextreme/esm/exporter/exceljs/export_merged_ranges_manager.js","./node_modules/devextreme/esm/exporter/exceljs/export_data_grid.js","./src/app/account/admin/customer-addons-overview/customer-addons-overview.component.html","./src/app/account/admin/customer-addons-overview/customer-addons-overview.component.ts","./src/app/account/admin/admin.component.html","./src/app/account/admin/admin.component.ts","./src/app/Model/User/ChangePassword.ts","./src/app/account/changePassword/changePassword.component.ts","./src/app/account/changePassword/changePassword.component.html","./src/app/Model/Dto/NewCatalog.ts","./src/app/catalog/functions/newCatalog/newCatalog.component.html","./src/app/catalog/functions/newCatalog/newCatalog.component.ts","./src/app/Services/edcImport.service.ts","./src/app/catalog/functions/import/importCatalog.component.html","./src/app/catalog/functions/import/importCatalog.component.ts","./src/app/catalog/functions/backup/backup.component.html","./src/app/catalog/functions/backup/backup.component.ts","./src/app/Model/Catalog/DataSourceParams.ts","./src/app/shared/dialog/NpDialog.component.html","./src/app/shared/dialog/NpDialog.component.ts","./src/app/catalog/functions/jobdata/jobdata.component.html","./src/app/catalog/functions/jobdata/jobdata.component.ts","./src/app/catalog/catalogList/catList.component.html","./src/app/catalog/catalogList/catList.component.ts","./src/app/Model/Dto/Clipboard.ts","./src/app/Services/CatalogManagement/massDataChange.service.ts","./src/app/catalog/catalog/StateOptions/productStateOptions.component.ts","./src/app/catalog/catalog/StateOptions/productStateOptions.component.html","./src/app/Model/Dto/NameValue.ts","./src/app/catalog/catalog/SearchOptions/productSearchOptions.component.html","./src/app/catalog/catalog/SearchOptions/productSearchOptions.component.ts","./src/app/Model/validation/ValidationRequestCatalog.ts","./src/app/Model/Catalog/CatalogState.ts","./src/app/catalog/catalog/catalogSupplier.component.html","./src/app/catalog/catalog/catalogSupplier.component.ts","./src/app/catalog/catalog/catalogBuyer.component.html","./src/app/catalog/catalog/catalogBuyer.component.ts","./src/app/Model/Dto/StartAction.ts","./src/app/catalog/catalog/catalogPriceList.component.html","./src/app/catalog/catalog/catalogPriceList.component.ts","./src/app/catalog/catalog/catalogClassification.component.html","./src/app/catalog/catalog/catalogClassification.component.ts","./src/app/Model/Catalog/OsgSegmentMapping.ts","./src/app/catalog/catalog/catalogOsg.component.html","./src/app/catalog/catalog/catalogOsg.component.ts","./src/app/Model/Catalog/mavis/MavisCatalogMapping.ts","./src/app/catalog/catalog/catalogMavis.component.html","./src/app/catalog/catalog/catalogMavis.component.ts","./src/app/catalog/catalog/catalogPrint.component.html","./src/app/catalog/catalog/catalogPrint.component.ts","./src/app/Model/Dto/StartShopWareExport.ts","./src/app/catalog/catalog/catalogShopware.component.html","./src/app/catalog/catalog/catalogShopware.component.ts","./src/app/Model/Dto/VariantRepresentations.ts","./src/app/catalog/catalog/catalogShopware6.component.html","./src/app/catalog/catalog/catalogShopware6.component.ts","./src/app/Model/Catalog/Shopware5Connection.ts","./src/app/Model/Dto/TreeItem.ts","./src/app/Services/shopware5.service.ts","./src/app/catalog/catalog/shopware5/catalogShopware5.component.html","./src/app/catalog/catalog/shopware5/catalogShopware5.component.ts","./src/app/Model/Catalog/IntershopConnection.ts","./src/app/catalog/catalog/intershopConnection/intershopConnection.component.html","./src/app/catalog/catalog/intershopConnection/intershopConnection.component.ts","./src/app/Model/classification/AddClassification.ts","./src/app/catalog/catalog/catalogTemplates/catalogTemplates.component.html","./src/app/catalog/catalog/catalogTemplates/catalogTemplates.component.ts","./src/app/catalog/catalog/catalogSettings.component.html","./src/app/catalog/catalog/catalogSettings.component.ts","./src/app/catalog/functions/import/importFile.component.ts","./src/app/catalog/functions/import/importFile.component.html","./src/app/catalog/mediaPool/mediaPool.component.html","./src/app/catalog/mediaPool/mediaPool.component.ts","./src/app/catalog/dataQuality/dataQualityGroups.component.ts","./src/app/catalog/dataQuality/dataQualityGroups.component.html","./src/app/catalog/dataQuality/dataQualityStatistic.component.html","./src/app/catalog/dataQuality/dataQualityStatistic.component.ts","./src/app/Model/Catalog/DataQualityFacts.ts","./src/app/catalog/dataQuality/dataQualityFacts.component.html","./src/app/catalog/dataQuality/dataQualityFacts.component.ts","./src/app/catalog/dataQuality/dataQuality.component.html","./src/app/catalog/dataQuality/dataQuality.component.ts","./src/app/catalog/gevis/gevis.component.ts","./src/app/catalog/gevis/gevis.component.html","./src/app/Model/Catalog/OdooConnection.ts","./src/app/Services/odoo.service.ts","./src/app/catalog/catalog/odoo/catalogOdoo.component.html","./src/app/catalog/catalog/odoo/catalogOdoo.component.ts","./src/app/Model/Dto/TranslateCatalog.ts","./src/app/catalog/functions/translateCatalog/translateCatalog.component.html","./src/app/catalog/functions/translateCatalog/translateCatalog.component.ts","./src/app/catalog/functions/import/importMedia.component.html","./src/app/catalog/functions/import/importMedia.component.ts","./src/app/catalog/functions/export/catalog/exportCatalog.component.html","./src/app/catalog/functions/export/catalog/exportCatalog.component.ts","./src/app/catalog/functions/export/category/exportCategory.component.html","./src/app/catalog/functions/export/category/exportCategory.component.ts","./src/app/catalog/functions/import/category/importCategory.component.html","./src/app/catalog/functions/import/category/importCategory.component.ts","./src/app/catalog/catalog/catalogDetail.component.html","./src/app/catalog/catalog/catalogDetail.component.ts","./src/app/catalog/category/categoryTemplates/categoryTemplates.component.html","./src/app/catalog/category/categoryTemplates/categoryTemplates.component.ts","./src/app/catalog/category/setFields/seo.component.ts","./src/app/catalog/category/setFields/seo.component.html","./src/app/Model/Catalog/OsgCategoryMapping.ts","./src/app/catalog/category/osg/categoryOsg.component.html","./src/app/catalog/category/osg/categoryOsg.component.ts","./src/app/Model/Catalog/Shopware6CategoryMapping.ts","./src/app/catalog/category/shopware6/categoryShopware6.component.html","./src/app/catalog/category/shopware6/categoryShopware6.component.ts","./src/app/catalog/category/categoryDetail.component.html","./src/app/catalog/category/categoryDetail.component.ts","./src/app/Services/teachingSet.service.ts","./src/app/catalog/product/productDetailValidation.component.html","./src/app/catalog/product/productDetailValidation.component.ts","./src/app/Model/Catalog/CatalogMapping.ts","./src/app/catalog/shared/categories.component.html","./src/app/catalog/shared/categories.component.ts","./src/app/catalog/shared/productAsJson/productAsJson.component.ts","./src/app/catalog/shared/productAsJson/productAsJson.component.html","./src/app/catalog/product/shopViewLukas.component.html","./src/app/catalog/product/shopViewLukas.component.ts","./src/app/catalog/product/productDetail.component.html","./src/app/catalog/product/productDetail.component.ts","./src/app/Model/Dto/MassDataChangeParameter.ts","./src/app/catalog/browse/massDataChange/massDataChange.component.html","./src/app/catalog/browse/massDataChange/massDataChange.component.ts","./src/app/Model/MassGenerateKITextsParameter.ts","./src/app/catalog/browse/massGenerateKIText/massGenerateKIText.component.html","./src/app/catalog/browse/massGenerateKIText/massGenerateKIText.component.ts","./src/app/catalog/functions/userAction/userAction-base.component.ts","./src/app/Model/ui/Card.ts","./src/app/catalog/functions/userAction/userActionViewDetailsIcon.ts","./src/app/Services/userActionView.service.ts","./src/app/catalog/functions/userAction/userActionViewDetails.ts","./src/app/catalog/functions/userAction/userAction-convertPictures/userAction-convertPictures.component.html","./src/app/catalog/functions/userAction/userAction-convertPictures/userAction-convertPictures.component.ts","./src/app/catalog/functions/userAction/userAction-byList/userAction-byList.component.ts","./src/app/catalog/functions/userAction/userAction-deleteByList/userAction-deleteByList.component.html","./src/app/catalog/functions/userAction/userAction-deleteByList/userAction-deleteByList.component.ts","./src/app/catalog/functions/userAction/userAction-searchByList/userAction-searchByList.component.ts","./src/app/catalog/functions/userAction/userAction-searchByList/userAction-searchByList.component.html","./src/app/Model/Catalog/UpdateTemplate.ts","./src/app/Model/Catalog/UpdateTemplateItem.ts","./src/app/updateTemplates/updateTemplate.component.html","./src/app/updateTemplates/updateTemplate.component.ts","./src/app/updateTemplates/updateTemplates.component.html","./src/app/updateTemplates/updateTemplates.component.ts","./src/app/catalog/functions/userAction/userAction-updateCatalog/userAction-updateCatalog.component.ts","./src/app/catalog/functions/userAction/userAction-updateCatalog/userAction-updateCatalog.component.html","./src/app/catalog/functions/userAction/userAction-updateToCatalog/userAction-updateToCatalog.component.html","./src/app/catalog/functions/userAction/userAction-updateToCatalog/userAction-updateToCatalog.component.ts","./src/app/catalog/functions/userAction/userAction-compareCatalog/userAction-compareCatalog.component.ts","./src/app/catalog/functions/userAction/userAction-compareCatalog/userAction-compareCatalog.component.html","./src/app/catalog/functions/userAction/userAction-featureSystem/userAction-featureSystem.component.ts","./src/app/Model/ValidFeatureSystem.ts","./src/app/catalog/functions/userAction/userAction-renameFeatureSystem/userAction-renameFeatureSystem.component.html","./src/app/catalog/functions/userAction/userAction-renameFeatureSystem/userAction-renameFeatureSystem.component.ts","./src/app/catalog/functions/userAction/userAction-deleteEmptyFeatures/userAction-deleteEmptyFeatures.component.ts","./src/app/catalog/functions/userAction/userAction-deleteEmptyFeatures/userAction-deleteEmptyFeatures.component.html","./src/app/catalog/functions/userAction/userAction-generateAITexts/userAction-generateAITexts.component.html","./src/app/catalog/functions/userAction/userAction-generateAITexts/userAction-generateAITexts.component.ts","./src/app/Model/Catalog/FeatureModels/FeatureToBeRenamedModel.ts","./src/app/catalog/functions/userAction/userAction-renameFeatures/userAction-renameFeatures.component.html","./src/app/catalog/functions/userAction/userAction-renameFeatures/userAction-renameFeatures.component.ts","./src/app/catalog/functions/userAction/userAction-splitFeatureValuesFromUnit/userAction-splitFeatureValuesFromUnit.component.ts","./src/app/catalog/functions/userAction/userAction-splitFeatureValuesFromUnit/userAction-splitFeatureValuesFromUnit.component.html","./src/app/catalog/functions/userAction/userAction-deleteFeatureSystems/userAction-deleteFeatureSystems.component.html","./src/app/catalog/functions/userAction/userAction-deleteFeatureSystems/userAction-deleteFeatureSystems.component.ts","./src/app/catalog/functions/userAction/userAction-copyMediaFromOtherCatalog/userAction-copyMediaFromOtherCatalog.component.ts","./src/app/catalog/functions/userAction/userAction-copyMediaFromOtherCatalog/userAction-copyMediaFromOtherCatalog.component.html","./src/app/catalog/functions/userAction/userAction-deleteFeatures/userAction-deleteFeatures.component.html","./src/app/catalog/functions/userAction/userAction-deleteFeatures/userAction-deleteFeatures.component.ts","./src/app/catalog/functions/userAction/userAction-createTechnicalDetails/userAction-createTechnicalDetails.component.ts","./src/app/catalog/functions/userAction/userAction-createTechnicalDetails/userAction-createTechnicalDetails.component.html","./src/app/Model/Dto/dublicateItem.ts","./src/app/catalog/functions/userAction/userAction-spreadCatalog/userAction-spreadCatalog.component.html","./src/app/catalog/functions/userAction/userAction-spreadCatalog/userAction-spreadCatalog.component.ts","./src/app/catalog/functions/userAction/userAction-harmonizeFeaturesytems/userAction-harmonizeFeatureSystems.component.html","./src/app/catalog/functions/userAction/userAction-harmonizeFeaturesytems/userAction-harmonizeFeatureSystems.component.ts","./src/app/catalog/functions/userAction/userAction-fixClassification/userAction-fixClassification.component.ts","./src/app/catalog/functions/userAction/userAction-fixClassification/userAction-fixClassification.component.html","./src/app/catalog/functions/userAction/userAction-exportReportProductDatasheet/userAction-exportReportProductDatasheet.component.ts","./src/app/catalog/functions/userAction/userAction-exportReportProductDatasheet/userAction-exportReportProductDatasheet.component.html","./src/app/catalog/functions/userAction/userAction-deleteDuplicateMimes/userAction-deleteDuplicateMimes.component.ts","./src/app/catalog/functions/userAction/userAction-deleteDuplicateMimes/userAction-deleteDuplicateMimes.component.html","./src/app/catalog/functions/userAction/userAction-removeUdxOnProducts/userAction-removeUdxOnProducts.component.html","./src/app/catalog/functions/userAction/userAction-removeUdxOnProducts/userAction-removeUdxOnProducts.component.ts","./src/app/catalog/functions/userAction/userAction-deleteMediaByPurpose/userAction-deleteMediaByPurpose.component.ts","./src/app/catalog/functions/userAction/userAction-deleteMediaByPurpose/userAction-deleteMediaByPurpose.component.html","./src/app/catalog/functions/userAction/userAction-createVariantsFeatureSystem/userAction-createVariantsFeatureSystem.component.ts","./src/app/catalog/functions/userAction/userAction-createVariantsFeatureSystem/userAction-createVariantsFeatureSystem.component.html","./src/app/catalog/functions/userAction/userAction-harmonizeFeatures/userAction-harmonizeFeatures.component.html","./src/app/catalog/functions/userAction/userAction-harmonizeFeatures/userAction-harmonizeFeatures.component.ts","./src/app/catalog/functions/userAction/userAction-setWawiSupplierPids/userAction-setWawiSupplierPids.component.html","./src/app/catalog/functions/userAction/userAction-setWawiSupplierPids/userAction-setWawiSupplierPids.component.ts","./src/app/catalog/functions/userAction/userAction-createEnventaMime/userAction-createEnventaMime.component.ts","./src/app/catalog/functions/userAction/userAction-createEnventaMime/userAction-createEnventaMime.component.html","./src/app/catalog/functions/userAction/userAction-setMimePurpose/userAction-setMimePurpose.component.ts","./src/app/catalog/functions/userAction/userAction-setMimePurpose/userAction-setMimePurpose.component.html","./src/app/catalog/functions/userAction/userAction-markAsChanged/userAction-markAsChanged.component.ts","./src/app/catalog/functions/userAction/userAction-markAsChanged/userAction-markAsChanged.component.html","./src/app/Model/Catalog/MimeModels/MimePurposeToBeRenamed.ts","./src/app/catalog/functions/userAction/useraction-changemimepurposes/useraction-changemimepurposes.component.html","./src/app/catalog/functions/userAction/useraction-changemimepurposes/userAction-changeMimePurposes.component.ts","./src/app/Model/wawi/ApplyWawiMappingModel.ts","./src/app/catalog/functions/export/catalog/wawiMappingChooser/wawiMappingChooser.component.html","./src/app/catalog/functions/export/catalog/wawiMappingChooser/wawiMappingChooser.component.ts","./src/app/catalog/functions/userAction/userAction-applyWawiMappings/userAction-applyWawiMappings.component.ts","./src/app/catalog/functions/userAction/userAction-applyWawiMappings/userAction-applyWawiMappings.component.html","./src/app/catalog/functions/userAction/userAction.component.html","./src/app/catalog/functions/userAction/userAction.component.ts","./src/app/catalog/browse/browse.component.html","./src/app/catalog/browse/browse.component.ts","./src/app/templateEditor/template-editor-dialog.component.html","./src/app/templateEditor/template-editor-dialog.component.ts","./src/app/shared/menu/menu.component.html","./src/app/shared/menu/menu.component.ts","./src/app/shared/impressum/impressum.component.ts","./src/app/shared/impressum/impressum.component.html","./src/app/Services/CatalogManagement/combineCatalog.service.ts","./src/app/Feature/validFeatureValue.component.ts","./src/app/Feature/validFeatureValue.component.html","./src/app/Feature/validFeature.component.html","./src/app/Feature/validFeature.component.ts","./src/app/Feature/validFeatureSystem.component.ts","./src/app/Feature/validFeatureSystem.component.html","./src/app/Model/classification/ClassificationSystem.ts","./src/app/classification/classificationSystem.component.html","./src/app/classification/classificationSystem.component.ts","./src/app/Model/classification/ClassificationClassTree.ts","./src/app/classification/classificationTree.component.html","./src/app/classification/classificationTree.component.ts","./src/app/classification/classificationGroup.component.html","./src/app/classification/classificationGroup.component.ts","./src/app/classification/editClassificationSystem.component.ts","./src/app/classification/editClassificationSystem.component.html","./src/app/Model/Catalog/HazmatClass.ts","./src/app/hazmatclasses/hazmatclass.component.html","./src/app/hazmatclasses/hazmatclass.component.ts","./src/app/hazmatclasses/hazmatclasses.component.html","./src/app/hazmatclasses/hazmatclasses.component.ts","./src/app/Model/Catalog/WarrantyClass.ts","./src/app/warrantyclasses/warrantyclass.component.html","./src/app/warrantyclasses/warrantyclass.component.ts","./src/app/warrantyclasses/warrantyclasses.component.html","./src/app/warrantyclasses/warrantyclasses.component.ts","./src/app/Services/feedback.service.ts","./src/app/catalog/dataQuality/dataQualityPrintChart.component.ts","./src/app/catalog/dataQuality/dataQualityPrintChart.component.html","./src/app/productState/productState.component.html","./src/app/productState/productState.component.ts","./src/app/Reporting/productreporting.component.html","./src/app/Reporting/productreporting.component.ts","./src/app/Model/featureMapping/MappingProfile.ts","./src/app/featureMapping/featureMapping.component.ts","./src/app/featureMapping/featureMapping.component.html","./src/app/Model/featureMapping/MappingResult.ts","./src/app/catalog/functions/import/featureMappingProfil/featureMappingProfil.component.ts","./src/app/catalog/functions/import/featureMappingProfil/featureMappingProfil.component.html","./src/app/featureMapping/featureMappingDetail.component.html","./src/app/featureMapping/featureMappingDetail.component.ts","./src/app/sandbox/sandbox.component.html","./src/app/sandbox/sandbox.component.ts","./src/app/templateEditor/templateList.component.html","./src/app/templateEditor/templateList.component.ts","./src/app/Model/supplierPidMapping/SupplierPidMappingSupplierInfo.ts","./src/app/catalog/functions/import/supplierPidMapping/supplierPidMappings.component.ts","./src/app/catalog/functions/import/supplierPidMapping/supplierPidMappings.component.html","./src/app/supplierPidMapping/supplierPidMapping.component.html","./src/app/supplierPidMapping/supplierPidMapping.component.ts","./src/app/news/news.component.html","./src/app/news/news.component.ts","./src/app/Model/Dto/CombineCatalog/CatalogItem.ts","./src/app/Model/Dto/CombineCatalog/TransferCatalogItem.ts","./src/app/Model/Dto/CombineCatalog/TransferItemModes.ts","./src/app/catalog/functions/combine/combineCatalogs.component.html","./src/app/catalog/functions/combine/combineCatalogs.component.ts","./src/app/Services/edeSortiment.service.ts","./src/app/edeSortimentsList/edeSortimentsVersion/edeSortimentsVersion.component.html","./src/app/edeSortimentsList/edeSortimentsVersion/edeSortimentsVersion.component.ts","./src/app/edeSortimentsList/edeSortimentsList.component.html","./src/app/edeSortimentsList/edeSortimentsList.component.ts","./src/app/wawiLists/wawiLists.component.html","./src/app/wawiLists/wawiLists.component.ts","./src/app/Model/OpenAi/teachingset.ts","./src/app/Model/OpenAi/teachingsample.ts","./src/app/teachingset/teachingset.component.html","./src/app/teachingset/teachingset.component.ts","./src/app/teachingset/teachingsets.component.html","./src/app/teachingset/teachingsets.component.ts","./src/app/Services/authGuard.service.ts","./src/app/Services/osgSender.service.ts","./src/app/osgSender/osgSender.component.html","./src/app/osgSender/osgSender.component.ts","./src/app/osgSender/osgSenders.component.html","./src/app/osgSender/osgSenders.component.ts","./src/app/Model/validation/ValidationGroup.ts","./src/app/Model/validation/ValidationMethod.ts","./src/app/Model/validation/ValidationRule.ts","./src/app/Model/validation/ValidationField.ts","./src/app/Model/ui/TranslatedText.ts","./src/app/account/validation/validation.component.html","./src/app/account/validation/validation.component.ts","./src/app/ui/pendingChangesGuard/pendingChangesGuard.ts","./src/app/catalogState/catalogState.component.html","./src/app/catalogState/catalogState.component.ts","./src/app/states/states.component.html","./src/app/states/states.component.ts","./src/app/app.module.ts","./src/main.ts","./src/devextreme-license.ts","./node_modules/devexpress-diagram/dist/dx-diagram.min.js","./node_modules/devexpress-gantt/dist/dx-gantt.min.js","./node_modules/devextreme-aspnet-data-nojquery/index.js","./node_modules/devextreme-quill/dist/dx-quill.js","./node_modules/devextreme/esm/core/class.js","./node_modules/devextreme/esm/core/config.js","./node_modules/devextreme/esm/core/dom_adapter.js","./node_modules/devextreme/esm/core/element_data.js","./node_modules/devextreme/esm/core/errors.js","./node_modules/devextreme/esm/core/events_strategy.js","./node_modules/devextreme/esm/core/guid.js","./node_modules/devextreme/esm/core/http_request.js","./node_modules/devextreme/esm/core/memorized_callbacks.js","./node_modules/devextreme/esm/core/renderer_base.js","./node_modules/devextreme/esm/core/renderer.js","./node_modules/devextreme/esm/core/utils/ajax.js","./node_modules/devextreme/esm/core/utils/call_once.js","./node_modules/devextreme/esm/core/utils/callbacks.js","./node_modules/devextreme/esm/core/utils/common.js","./node_modules/devextreme/esm/core/utils/console.js","./node_modules/devextreme/esm/core/utils/data.js","./node_modules/devextreme/esm/core/utils/deferred.js","./node_modules/devextreme/esm/core/utils/dependency_injector.js","./node_modules/devextreme/esm/core/utils/error.js","./node_modules/devextreme/esm/core/utils/extend.js","./node_modules/devextreme/esm/core/utils/html_parser.js","./node_modules/devextreme/esm/core/utils/inflector.js","./node_modules/devextreme/esm/core/utils/iterator.js","./node_modules/devextreme/esm/core/utils/object.js","./node_modules/devextreme/esm/core/utils/ready_callbacks.js","./node_modules/devextreme/esm/core/utils/shadow_dom.js","./node_modules/devextreme/esm/core/utils/size.js","./node_modules/devextreme/esm/core/utils/string.js","./node_modules/devextreme/esm/core/utils/style.js","./node_modules/devextreme/esm/core/utils/type.js","./node_modules/devextreme/esm/core/utils/variable_wrapper.js","./node_modules/devextreme/esm/core/utils/window.js","./node_modules/devextreme/esm/core/version.js","./node_modules/devextreme/esm/data/abstract_store.js","./node_modules/devextreme/esm/data/array_query.js","./node_modules/devextreme/esm/data/array_utils.js","./node_modules/devextreme/esm/data/custom_store.js","./node_modules/devextreme/esm/data/errors.js","./node_modules/devextreme/esm/data/store_helper.js","./node_modules/devextreme/esm/data/utils.js","./node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","./node_modules/devextreme/esm/events/core/hook_touch_props.js","./node_modules/devextreme/esm/events/core/events_engine.js","./node_modules/exceljs/dist/exceljs.min.js","./node_modules/fast-sha256/sha256.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/jszip/dist/jszip.min.js","./node_modules/lodash.isnumber/index.js","./node_modules/lodash.isstring/index.js","./node_modules/regenerator-runtime/runtime.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/util/pipe.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/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/empty.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.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/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/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/observable/race.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/operators/OperatorSubscriber.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/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/filter.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/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.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/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/timeout.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.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.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/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/isDate.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/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/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/source-map-loader/dist/cjs.js","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/angular-oauth2-oidc/fesm2015/angular-oauth2-oidc.mjs"],"sourcesContent":["/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';\nexport { ɵgetDOM } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, setTestabilityGetter, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2, ErrorHandler, ɵsetDocument, PLATFORM_ID, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵINJECTOR_SCOPE, NgZone, RendererFactory2, Testability, ApplicationModule, NgModule, Optional, SkipSelf, ɵɵinject, ApplicationRef, ɵConsole, forwardRef, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵgetSanitizationBypassType, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, Version } from '@angular/core';\n\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/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass GenericBrowserDomAdapter extends ɵDomAdapter {\n constructor() {\n super(...arguments);\n this.supportsDOMEvents = true;\n }\n}\n\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/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nclass BrowserDomAdapter extends GenericBrowserDomAdapter {\n static makeCurrent() {\n ɵsetRootDomAdapter(new BrowserDomAdapter());\n }\n onAndCancel(el, evt, listener) {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => {\n el.removeEventListener(evt, listener, false);\n };\n }\n dispatchEvent(el, evt) {\n el.dispatchEvent(evt);\n }\n remove(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n createElement(tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createHtmlDocument() {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument() {\n return document;\n }\n isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n isShadowRoot(node) {\n return node instanceof DocumentFragment;\n }\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n getGlobalEventTarget(doc, target) {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getBaseHref(doc) {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement() {\n baseElement = null;\n }\n getUserAgent() {\n return window.navigator.userAgent;\n }\n getCookie(name) {\n return ɵparseCookieValue(document.cookie, name);\n }\n}\nlet baseElement = null;\nfunction getBaseElementHref() {\n baseElement = baseElement || document.querySelector('base');\n return baseElement ? baseElement.getAttribute('href') : null;\n}\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode;\nfunction relativePath(url) {\n urlParsingNode = urlParsingNode || document.createElement('a');\n urlParsingNode.setAttribute('href', url);\n const pathName = urlParsingNode.pathname;\n return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\n}\n\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/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nconst TRANSITION_ID = new InjectionToken('TRANSITION_ID');\nfunction appInitializerFactory(transitionId, document, injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = ɵgetDOM();\n const styles = document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n for (let i = 0; i < styles.length; i++) {\n dom.remove(styles[i]);\n }\n });\n };\n}\nconst SERVER_TRANSITION_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n\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 */\nclass BrowserGetTestability {\n static init() {\n setTestabilityGetter(new BrowserGetTestability());\n }\n addToWindow(registry) {\n ɵglobal['getAngularTestability'] = (elem, findInAncestors = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n ɵglobal['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n ɵglobal['getAllAngularRootElements'] = () => registry.getAllRootElements();\n const whenAllStable = (callback /** TODO #9100 */) => {\n const testabilities = ɵglobal['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function (didWork_ /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function (testability /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n if (!ɵglobal['frameworkStabilizers']) {\n ɵglobal['frameworkStabilizers'] = [];\n }\n ɵglobal['frameworkStabilizers'].push(whenAllStable);\n }\n findTestabilityInTree(registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n }\n else if (!findInAncestors) {\n return null;\n }\n if (ɵgetDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, elem.host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, true);\n }\n}\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\nclass BrowserXhr {\n build() {\n return new XMLHttpRequest();\n }\n}\nBrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserXhr });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserXhr, decorators: [{\n type: Injectable\n }] });\n\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/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nconst EVENT_MANAGER_PLUGINS = new InjectionToken('EventManagerPlugins');\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\nclass EventManager {\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(plugins, _zone) {\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element, eventName, handler) {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n * @deprecated No longer being used in Ivy code. To be removed in version 14.\n */\n addGlobalEventListener(target, eventName, handler) {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone() {\n return this._zone;\n }\n /** @internal */\n _findPluginFor(eventName) {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\nEventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nEventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: EventManager });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: EventManager, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [EVENT_MANAGER_PLUGINS]\n }] }, { type: i0.NgZone }];\n } });\nclass EventManagerPlugin {\n constructor(_doc) {\n this._doc = _doc;\n }\n addGlobalEventListener(element, eventName, handler) {\n const target = ɵgetDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n\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 */\nclass SharedStylesHost {\n constructor() {\n /** @internal */\n this._stylesSet = new Set();\n }\n addStyles(styles) {\n const additions = new Set();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n onStylesAdded(additions) { }\n getAllStyles() {\n return Array.from(this._stylesSet);\n }\n}\nSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SharedStylesHost, decorators: [{\n type: Injectable\n }] });\nclass DomSharedStylesHost extends SharedStylesHost {\n constructor(_doc) {\n super();\n this._doc = _doc;\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n this._hostNodes = new Map();\n this._hostNodes.set(_doc.head, []);\n }\n _addStylesToHost(styles, host, styleNodes) {\n styles.forEach((style) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n styleNodes.push(host.appendChild(styleEl));\n });\n }\n addHost(hostNode) {\n const styleNodes = [];\n this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n this._hostNodes.set(hostNode, styleNodes);\n }\n removeHost(hostNode) {\n const styleNodes = this._hostNodes.get(hostNode);\n if (styleNodes) {\n styleNodes.forEach(removeStyle);\n }\n this._hostNodes.delete(hostNode);\n }\n onStylesAdded(additions) {\n this._hostNodes.forEach((styleNodes, hostNode) => {\n this._addStylesToHost(additions, hostNode, styleNodes);\n });\n }\n ngOnDestroy() {\n this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n }\n}\nDomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSharedStylesHost, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction removeStyle(styleNode) {\n ɵgetDOM().remove(styleNode);\n}\n\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 */\nconst NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/MathML/',\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nconst COMPONENT_VARIABLE = '%COMP%';\nconst HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nconst CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\nfunction shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction flattenStyles(compId, styles, target) {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n }\n else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\nfunction decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return (event) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n return undefined;\n };\n}\nlet hasLoggedNativeEncapsulationWarning = false;\nclass DomRendererFactory2 {\n constructor(eventManager, sharedStylesHost, appId) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.rendererByCompId = new Map();\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type, this.appId);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n // value that is not known (but previously was the value for ViewEncapsulation.Native)\n case 1:\n case ViewEncapsulation.ShadowDom:\n // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n // enum value that is not known (but previously was the value for\n // ViewEncapsulation.Native)\n !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n hasLoggedNativeEncapsulationWarning = true;\n console.warn('ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n }\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n begin() { }\n end() { }\n}\nDomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nDomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomRendererFactory2 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomRendererFactory2, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: EventManager }, { type: DomSharedStylesHost }, { type: undefined, decorators: [{\n type: Inject,\n args: [APP_ID]\n }] }];\n } });\nclass DefaultDomRenderer2 {\n constructor(eventManager) {\n this.eventManager = eventManager;\n this.data = Object.create(null);\n this.destroyNode = null;\n }\n destroy() { }\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return document.createElement(name);\n }\n createComment(value) {\n return document.createComment(value);\n }\n createText(value) {\n return document.createTextNode(value);\n }\n appendChild(parent, newChild) {\n parent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n removeChild(parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let el = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n }\n else {\n el.setAttribute(name, value);\n }\n }\n else {\n el.setAttribute(name, value);\n }\n }\n removeAttribute(el, name, namespace) {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n }\n else {\n el.removeAttribute(name);\n }\n }\n addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n }\n else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n setProperty(el, name, value) {\n NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback) {\n NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return this.eventManager.addGlobalEventListener(target, event, decoratePreventDefault(callback));\n }\n return this.eventManager.addEventListener(target, event, decoratePreventDefault(callback));\n }\n}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, component, appId) {\n super(eventManager);\n this.component = component;\n const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n }\n applyToHost(element) {\n super.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, hostEl, component) {\n super(eventManager);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent, oldChild) {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n\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 */\nclass DomEventsPlugin extends EventManagerPlugin {\n constructor(doc) {\n super(doc);\n }\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName) {\n return true;\n }\n addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler, false);\n return () => this.removeEventListener(element, eventName, handler);\n }\n removeEventListener(target, eventName, callback) {\n return target.removeEventListener(eventName, callback);\n }\n}\nDomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\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/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf https://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS = {\n 'alt': (event) => event.altKey,\n 'control': (event) => event.ctrlKey,\n 'meta': (event) => event.metaKey,\n 'shift': (event) => event.shiftKey\n};\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\nclass KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(doc) {\n super(doc);\n }\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName) {\n return KeyEventsPlugin.parseEventName(eventName) != null;\n }\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element, eventName, handler) {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(() => {\n return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n static parseEventName(eventName) {\n const parts = eventName.toLowerCase().split('.');\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n const key = KeyEventsPlugin._normalizeKey(parts.pop());\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n // The code must remain in the `result['domEventName']` form.\n // return {domEventName, fullKey};\n const result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n static getEventFullKey(event) {\n let fullKey = '';\n let key = getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n }\n else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey, handler, zone) {\n return (event /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n /** @internal */\n static _normalizeKey(keyName) {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\nKeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nKeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction getEventKey(event) {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = _chromeNumKeyPadMap[key];\n }\n }\n }\n return _keyMap[key] || key;\n}\n\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 */\nfunction initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\nfunction errorHandler() {\n return new ErrorHandler();\n}\nfunction _document() {\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\nconst INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: PLATFORM_ID, useValue: ɵPLATFORM_BROWSER_ID },\n { provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: DOCUMENT, useFactory: _document, deps: [] },\n];\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nconst platformBrowser = createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\nconst BROWSER_MODULE_PROVIDERS = [\n { provide: ɵINJECTOR_SCOPE, useValue: 'root' },\n { provide: ErrorHandler, useFactory: errorHandler, deps: [] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT] },\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost, APP_ID]\n },\n { provide: RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT] },\n { provide: Testability, useClass: Testability, deps: [NgZone] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone] },\n { provide: XhrFactory, useClass: BrowserXhr, deps: [] },\n];\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\nclass BrowserModule {\n constructor(parentModule) {\n if (parentModule) {\n throw new Error(`BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params) {\n return {\n ngModule: BrowserModule,\n providers: [\n { provide: APP_ID, useValue: params.appId },\n { provide: TRANSITION_ID, useExisting: APP_ID },\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\nBrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserModule, deps: [{ token: BrowserModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });\nBrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserModule, providers: BROWSER_MODULE_PROVIDERS, imports: [CommonModule, ApplicationModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserModule, decorators: [{\n type: NgModule,\n args: [{ providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule] }]\n }], ctorParameters: function () {\n return [{ type: BrowserModule, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [BrowserModule]\n }] }];\n } });\n\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/**\n * Factory to create a `Meta` service instance for the current DOM document.\n */\nfunction createMeta() {\n return new Meta(ɵɵinject(DOCUMENT));\n}\n/**\n * A service for managing HTML `` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\nclass Meta {\n constructor(_doc) {\n this._doc = _doc;\n this._dom = ɵgetDOM();\n }\n /**\n * Retrieves or creates a specific `` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag, forceCreation = false) {\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n /**\n * Retrieves or creates a set of `` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags, forceCreation = false) {\n if (!tags)\n return [];\n return tags.reduce((result, tag) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n /**\n * Retrieves a `` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector) {\n if (!attrSelector)\n return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n /**\n * Retrieves a set of `` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector) {\n if (!attrSelector)\n return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n /**\n * Modifies an existing `` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n const meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n /**\n * Removes an existing `` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector) {\n this.removeTagElement(this.getTag(attrSelector));\n }\n /**\n * Removes an existing `` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n _getOrCreateElement(meta, forceCreation = false) {\n if (!forceCreation) {\n const selector = this._parseSelector(meta);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined)\n return elem;\n }\n const element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n _setMetaElementAttributes(tag, el) {\n Object.keys(tag).forEach((prop) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n return el;\n }\n _parseSelector(tag) {\n const attr = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n _containsAttributes(tag, elem) {\n return Object.keys(tag).every((key) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n }\n _getMetaKeyMap(prop) {\n return META_KEYS_MAP[prop] || prop;\n }\n}\nMeta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nMeta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Meta, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP = {\n httpEquiv: 'http-equiv'\n};\n\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/**\n * Factory to create Title service.\n */\nfunction createTitle() {\n return new Title(ɵɵinject(DOCUMENT));\n}\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\nclass Title {\n constructor(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n getTitle() {\n return this._doc.title;\n }\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle) {\n this._doc.title = newTitle || '';\n }\n}\nTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nTitle.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Title, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\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 */\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\nfunction camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, (...m) => '-' + m[1].toLowerCase());\n}\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nfunction exportNgVar(name, value) {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = ɵglobal['ng'] = ɵglobal['ng'] || {};\n ng[name] = value;\n }\n}\n\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 */\nconst win = typeof window !== 'undefined' && window || {};\n\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 */\nclass ChangeDetectionPerfRecord {\n constructor(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\n }\n}\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nclass AngularProfiler {\n constructor(ref) {\n this.appRef = ref.injector.get(ApplicationRef);\n }\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config) {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n const isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n const start = performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n win.console.log(`ran ${numTicks} change detection cycles`);\n win.console.log(`${msPerTick.toFixed(2)} ms per check`);\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\nfunction performanceNow() {\n return win.performance && win.performance.now ? win.performance.now() :\n new Date().getTime();\n}\n\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 */\nconst PROFILER_GLOBAL_NAME = 'profiler';\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nfunction enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nfunction disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n\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 */\nfunction escapeHtml(text) {\n const escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\nfunction unescapeHtml(text) {\n const unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nfunction makeStateKey(key) {\n return key;\n}\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\nclass TransferState {\n constructor() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n /** @internal */\n static init(initState) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get(key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n }\n /**\n * Set the value corresponding to a key.\n */\n set(key, value) {\n this.store[key] = value;\n }\n /**\n * Remove a key from the store.\n */\n remove(key) {\n delete this.store[key];\n }\n /**\n * Test whether a key exists in the store.\n */\n hasKey(key) {\n return this.store.hasOwnProperty(key);\n }\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize(key, callback) {\n this.onSerializeCallbacks[key] = callback;\n }\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson() {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\nTransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TransferState });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TransferState, decorators: [{\n type: Injectable\n }] });\nfunction initTransferState(doc, appId) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n initialState = JSON.parse(unescapeHtml(script.textContent));\n }\n catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\nclass BrowserTransferStateModule {\n}\nBrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserTransferStateModule });\nBrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserTransferStateModule, providers: [{ provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserTransferStateModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [{ provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID] }],\n }]\n }] });\n\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/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nclass By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all() {\n return () => true;\n }\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector) {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type) {\n return (debugNode) => debugNode.providerTokens.indexOf(type) !== -1;\n }\n}\nfunction elementMatches(n, selector) {\n if (ɵgetDOM().isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n}\n\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/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n 'doubletap': true\n};\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nconst HAMMER_GESTURE_CONFIG = new InjectionToken('HammerGestureConfig');\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nconst HAMMER_LOADER = new InjectionToken('HammerLoader');\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\nclass HammerGestureConfig {\n constructor() {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n this.events = [];\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n *\n */\n this.overrides = {};\n }\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element) {\n const mc = new Hammer(element, this.options);\n mc.get('pinch').set({ enable: true });\n mc.get('rotate').set({ enable: true });\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n }\n}\nHammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGestureConfig });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGestureConfig, decorators: [{\n type: Injectable\n }] });\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\nclass HammerGesturesPlugin extends EventManagerPlugin {\n constructor(doc, _config, console, loader) {\n super(doc);\n this._config = _config;\n this.console = console;\n this.loader = loader;\n this._loaderPromise = null;\n }\n supports(eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n }\n return false;\n }\n return true;\n }\n addEventListener(element, eventName, handler) {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!window.Hammer && this.loader) {\n this._loaderPromise = this._loaderPromise || this.loader();\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister = () => {\n cancelRegistration = true;\n };\n this._loaderPromise\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => { };\n return;\n }\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n }\n deregister = () => { };\n });\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => {\n deregister();\n };\n }\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function (eventObj) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n isCustomEvent(eventName) {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\nHammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGesturesPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerGesturesPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: HammerGestureConfig, decorators: [{\n type: Inject,\n args: [HAMMER_GESTURE_CONFIG]\n }] }, { type: i0.ɵConsole }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [HAMMER_LOADER]\n }] }];\n } });\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\nclass HammerModule {\n}\nHammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerModule });\nHammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerModule, providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, ɵConsole, [new Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HammerModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, ɵConsole, [new Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n ]\n }]\n }] });\n\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/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\nclass DomSanitizer {\n}\nDomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]\n }] });\nfunction domSanitizerImplFactory(injector) {\n return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\nclass DomSanitizerImpl extends DomSanitizer {\n constructor(_doc) {\n super();\n this._doc = _doc;\n }\n sanitize(ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (ɵallowSanitizationBypassAndThrow(value, \"HTML\" /* Html */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (ɵallowSanitizationBypassAndThrow(value, \"Style\" /* Style */)) {\n return ɵunwrapSafeValue(value);\n }\n return value;\n case SecurityContext.SCRIPT:\n if (ɵallowSanitizationBypassAndThrow(value, \"Script\" /* Script */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n const type = ɵgetSanitizationBypassType(value);\n if (ɵallowSanitizationBypassAndThrow(value, \"URL\" /* Url */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"ResourceURL\" /* ResourceUrl */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\n }\n }\n bypassSecurityTrustHtml(value) {\n return ɵbypassSanitizationTrustHtml(value);\n }\n bypassSecurityTrustStyle(value) {\n return ɵbypassSanitizationTrustStyle(value);\n }\n bypassSecurityTrustScript(value) {\n return ɵbypassSanitizationTrustScript(value);\n }\n bypassSecurityTrustUrl(value) {\n return ɵbypassSanitizationTrustUrl(value);\n }\n bypassSecurityTrustResourceUrl(value) {\n return ɵbypassSanitizationTrustResourceUrl(value);\n }\n}\nDomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DomSanitizerImpl, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\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\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/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.4');\n\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\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 file only reexports content of the `src` folder. Keep it that way.\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };\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 { 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 { 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 { 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 { 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 * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, InjectionToken, Inject, Directive, Input, Pipe, NgModule } from '@angular/core';\nimport { of, isObservable, forkJoin, concat, defer } from 'rxjs';\nimport { take, shareReplay, map, concatMap, switchMap } from 'rxjs/operators';\n\nclass TranslateLoader {\r\n}\r\n/**\r\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\r\n */\r\nclass TranslateFakeLoader extends TranslateLoader {\r\n getTranslation(lang) {\r\n return of({});\r\n }\r\n}\r\nTranslateFakeLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeLoader, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\r\nTranslateFakeLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeLoader });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeLoader, decorators: [{\r\n type: Injectable\r\n }] });\n\nclass MissingTranslationHandler {\r\n}\r\n/**\r\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\r\n */\r\nclass FakeMissingTranslationHandler {\r\n handle(params) {\r\n return params.key;\r\n }\r\n}\r\nFakeMissingTranslationHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FakeMissingTranslationHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nFakeMissingTranslationHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FakeMissingTranslationHandler });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FakeMissingTranslationHandler, decorators: [{\r\n type: Injectable\r\n }] });\n\n/* tslint:disable */\r\n/**\r\n * Determines if two objects or two values are equivalent.\r\n *\r\n * Two objects or values are considered equivalent if at least one of the following is true:\r\n *\r\n * * Both objects or values pass `===` comparison.\r\n * * Both objects or values are of the same type and all of their properties are equal by\r\n * comparing them with `equals`.\r\n *\r\n * @param o1 Object or value to compare.\r\n * @param o2 Object or value to compare.\r\n * @returns true if arguments are equal.\r\n */\r\nfunction equals(o1, o2) {\r\n if (o1 === o2)\r\n return true;\r\n if (o1 === null || o2 === null)\r\n return false;\r\n if (o1 !== o1 && o2 !== o2)\r\n return true; // NaN === NaN\r\n let t1 = typeof o1, t2 = typeof o2, length, key, keySet;\r\n if (t1 == t2 && t1 == 'object') {\r\n if (Array.isArray(o1)) {\r\n if (!Array.isArray(o2))\r\n return false;\r\n if ((length = o1.length) == o2.length) {\r\n for (key = 0; key < length; key++) {\r\n if (!equals(o1[key], o2[key]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n else {\r\n if (Array.isArray(o2)) {\r\n return false;\r\n }\r\n keySet = Object.create(null);\r\n for (key in o1) {\r\n if (!equals(o1[key], o2[key])) {\r\n return false;\r\n }\r\n keySet[key] = true;\r\n }\r\n for (key in o2) {\r\n if (!(key in keySet) && typeof o2[key] !== 'undefined') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/* tslint:enable */\r\nfunction isDefined(value) {\r\n return typeof value !== 'undefined' && value !== null;\r\n}\r\nfunction isObject(item) {\r\n return (item && typeof item === 'object' && !Array.isArray(item));\r\n}\r\nfunction mergeDeep(target, source) {\r\n let output = Object.assign({}, target);\r\n if (isObject(target) && isObject(source)) {\r\n Object.keys(source).forEach((key) => {\r\n if (isObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n else {\r\n output[key] = mergeDeep(target[key], source[key]);\r\n }\r\n }\r\n else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n return output;\r\n}\n\nclass TranslateParser {\r\n}\r\nclass TranslateDefaultParser extends TranslateParser {\r\n constructor() {\r\n super(...arguments);\r\n this.templateMatcher = /{{\\s?([^{}\\s]*)\\s?}}/g;\r\n }\r\n interpolate(expr, params) {\r\n let result;\r\n if (typeof expr === 'string') {\r\n result = this.interpolateString(expr, params);\r\n }\r\n else if (typeof expr === 'function') {\r\n result = this.interpolateFunction(expr, params);\r\n }\r\n else {\r\n // this should not happen, but an unrelated TranslateService test depends on it\r\n result = expr;\r\n }\r\n return result;\r\n }\r\n getValue(target, key) {\r\n let keys = typeof key === 'string' ? key.split('.') : [key];\r\n key = '';\r\n do {\r\n key += keys.shift();\r\n if (isDefined(target) && isDefined(target[key]) && (typeof target[key] === 'object' || !keys.length)) {\r\n target = target[key];\r\n key = '';\r\n }\r\n else if (!keys.length) {\r\n target = undefined;\r\n }\r\n else {\r\n key += '.';\r\n }\r\n } while (keys.length);\r\n return target;\r\n }\r\n interpolateFunction(fn, params) {\r\n return fn(params);\r\n }\r\n interpolateString(expr, params) {\r\n if (!params) {\r\n return expr;\r\n }\r\n return expr.replace(this.templateMatcher, (substring, b) => {\r\n let r = this.getValue(params, b);\r\n return isDefined(r) ? r : substring;\r\n });\r\n }\r\n}\r\nTranslateDefaultParser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateDefaultParser, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\r\nTranslateDefaultParser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateDefaultParser });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateDefaultParser, decorators: [{\r\n type: Injectable\r\n }] });\n\nclass TranslateCompiler {\r\n}\r\n/**\r\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\r\n */\r\nclass TranslateFakeCompiler extends TranslateCompiler {\r\n compile(value, lang) {\r\n return value;\r\n }\r\n compileTranslations(translations, lang) {\r\n return translations;\r\n }\r\n}\r\nTranslateFakeCompiler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeCompiler, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\r\nTranslateFakeCompiler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeCompiler });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateFakeCompiler, decorators: [{\r\n type: Injectable\r\n }] });\n\nclass TranslateStore {\r\n constructor() {\r\n /**\r\n * The lang currently used\r\n */\r\n this.currentLang = this.defaultLang;\r\n /**\r\n * a list of translations per lang\r\n */\r\n this.translations = {};\r\n /**\r\n * an array of langs\r\n */\r\n this.langs = [];\r\n /**\r\n * An EventEmitter to listen to translation change events\r\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n this.onTranslationChange = new EventEmitter();\r\n /**\r\n * An EventEmitter to listen to lang change events\r\n * onLangChange.subscribe((params: LangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n this.onLangChange = new EventEmitter();\r\n /**\r\n * An EventEmitter to listen to default lang change events\r\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n this.onDefaultLangChange = new EventEmitter();\r\n }\r\n}\n\nconst USE_STORE = new InjectionToken('USE_STORE');\r\nconst USE_DEFAULT_LANG = new InjectionToken('USE_DEFAULT_LANG');\r\nconst DEFAULT_LANGUAGE = new InjectionToken('DEFAULT_LANGUAGE');\r\nconst USE_EXTEND = new InjectionToken('USE_EXTEND');\r\nclass TranslateService {\r\n /**\r\n *\r\n * @param store an instance of the store (that is supposed to be unique)\r\n * @param currentLoader An instance of the loader currently used\r\n * @param compiler An instance of the compiler currently used\r\n * @param parser An instance of the parser currently used\r\n * @param missingTranslationHandler A handler for missing translations.\r\n * @param useDefaultLang whether we should use default language translation when current language translation is missing.\r\n * @param isolate whether this service should use the store or not\r\n * @param extend To make a child module extend (and use) translations from parent modules.\r\n * @param defaultLanguage Set the default language using configuration\r\n */\r\n constructor(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang = true, isolate = false, extend = false, defaultLanguage) {\r\n this.store = store;\r\n this.currentLoader = currentLoader;\r\n this.compiler = compiler;\r\n this.parser = parser;\r\n this.missingTranslationHandler = missingTranslationHandler;\r\n this.useDefaultLang = useDefaultLang;\r\n this.isolate = isolate;\r\n this.extend = extend;\r\n this.pending = false;\r\n this._onTranslationChange = new EventEmitter();\r\n this._onLangChange = new EventEmitter();\r\n this._onDefaultLangChange = new EventEmitter();\r\n this._langs = [];\r\n this._translations = {};\r\n this._translationRequests = {};\r\n /** set the default language from configuration */\r\n if (defaultLanguage) {\r\n this.setDefaultLang(defaultLanguage);\r\n }\r\n }\r\n /**\r\n * An EventEmitter to listen to translation change events\r\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n get onTranslationChange() {\r\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\r\n }\r\n /**\r\n * An EventEmitter to listen to lang change events\r\n * onLangChange.subscribe((params: LangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n get onLangChange() {\r\n return this.isolate ? this._onLangChange : this.store.onLangChange;\r\n }\r\n /**\r\n * An EventEmitter to listen to default lang change events\r\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\r\n get onDefaultLangChange() {\r\n return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange;\r\n }\r\n /**\r\n * The default lang to fallback when translations are missing on the current lang\r\n */\r\n get defaultLang() {\r\n return this.isolate ? this._defaultLang : this.store.defaultLang;\r\n }\r\n set defaultLang(defaultLang) {\r\n if (this.isolate) {\r\n this._defaultLang = defaultLang;\r\n }\r\n else {\r\n this.store.defaultLang = defaultLang;\r\n }\r\n }\r\n /**\r\n * The lang currently used\r\n */\r\n get currentLang() {\r\n return this.isolate ? this._currentLang : this.store.currentLang;\r\n }\r\n set currentLang(currentLang) {\r\n if (this.isolate) {\r\n this._currentLang = currentLang;\r\n }\r\n else {\r\n this.store.currentLang = currentLang;\r\n }\r\n }\r\n /**\r\n * an array of langs\r\n */\r\n get langs() {\r\n return this.isolate ? this._langs : this.store.langs;\r\n }\r\n set langs(langs) {\r\n if (this.isolate) {\r\n this._langs = langs;\r\n }\r\n else {\r\n this.store.langs = langs;\r\n }\r\n }\r\n /**\r\n * a list of translations per lang\r\n */\r\n get translations() {\r\n return this.isolate ? this._translations : this.store.translations;\r\n }\r\n set translations(translations) {\r\n if (this.isolate) {\r\n this._translations = translations;\r\n }\r\n else {\r\n this.store.translations = translations;\r\n }\r\n }\r\n /**\r\n * Sets the default language to use as a fallback\r\n */\r\n setDefaultLang(lang) {\r\n if (lang === this.defaultLang) {\r\n return;\r\n }\r\n let pending = this.retrieveTranslations(lang);\r\n if (typeof pending !== \"undefined\") {\r\n // on init set the defaultLang immediately\r\n if (this.defaultLang == null) {\r\n this.defaultLang = lang;\r\n }\r\n pending.pipe(take(1))\r\n .subscribe((res) => {\r\n this.changeDefaultLang(lang);\r\n });\r\n }\r\n else { // we already have this language\r\n this.changeDefaultLang(lang);\r\n }\r\n }\r\n /**\r\n * Gets the default language used\r\n */\r\n getDefaultLang() {\r\n return this.defaultLang;\r\n }\r\n /**\r\n * Changes the lang currently used\r\n */\r\n use(lang) {\r\n // don't change the language if the language given is already selected\r\n if (lang === this.currentLang) {\r\n return of(this.translations[lang]);\r\n }\r\n let pending = this.retrieveTranslations(lang);\r\n if (typeof pending !== \"undefined\") {\r\n // on init set the currentLang immediately\r\n if (!this.currentLang) {\r\n this.currentLang = lang;\r\n }\r\n pending.pipe(take(1))\r\n .subscribe((res) => {\r\n this.changeLang(lang);\r\n });\r\n return pending;\r\n }\r\n else { // we have this language, return an Observable\r\n this.changeLang(lang);\r\n return of(this.translations[lang]);\r\n }\r\n }\r\n /**\r\n * Retrieves the given translations\r\n */\r\n retrieveTranslations(lang) {\r\n let pending;\r\n // if this language is unavailable or extend is true, ask for it\r\n if (typeof this.translations[lang] === \"undefined\" || this.extend) {\r\n this._translationRequests[lang] = this._translationRequests[lang] || this.getTranslation(lang);\r\n pending = this._translationRequests[lang];\r\n }\r\n return pending;\r\n }\r\n /**\r\n * Gets an object of translations for a given language with the current loader\r\n * and passes it through the compiler\r\n */\r\n getTranslation(lang) {\r\n this.pending = true;\r\n const loadingTranslations = this.currentLoader.getTranslation(lang).pipe(shareReplay(1), take(1));\r\n this.loadingTranslations = loadingTranslations.pipe(map((res) => this.compiler.compileTranslations(res, lang)), shareReplay(1), take(1));\r\n this.loadingTranslations\r\n .subscribe({\r\n next: (res) => {\r\n this.translations[lang] = this.extend && this.translations[lang] ? Object.assign(Object.assign({}, res), this.translations[lang]) : res;\r\n this.updateLangs();\r\n this.pending = false;\r\n },\r\n error: (err) => {\r\n this.pending = false;\r\n }\r\n });\r\n return loadingTranslations;\r\n }\r\n /**\r\n * Manually sets an object of translations for a given language\r\n * after passing it through the compiler\r\n */\r\n setTranslation(lang, translations, shouldMerge = false) {\r\n translations = this.compiler.compileTranslations(translations, lang);\r\n if ((shouldMerge || this.extend) && this.translations[lang]) {\r\n this.translations[lang] = mergeDeep(this.translations[lang], translations);\r\n }\r\n else {\r\n this.translations[lang] = translations;\r\n }\r\n this.updateLangs();\r\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\r\n }\r\n /**\r\n * Returns an array of currently available langs\r\n */\r\n getLangs() {\r\n return this.langs;\r\n }\r\n /**\r\n * Add available langs\r\n */\r\n addLangs(langs) {\r\n langs.forEach((lang) => {\r\n if (this.langs.indexOf(lang) === -1) {\r\n this.langs.push(lang);\r\n }\r\n });\r\n }\r\n /**\r\n * Update the list of available langs\r\n */\r\n updateLangs() {\r\n this.addLangs(Object.keys(this.translations));\r\n }\r\n /**\r\n * Returns the parsed result of the translations\r\n */\r\n getParsedResult(translations, key, interpolateParams) {\r\n let res;\r\n if (key instanceof Array) {\r\n let result = {}, observables = false;\r\n for (let k of key) {\r\n result[k] = this.getParsedResult(translations, k, interpolateParams);\r\n if (isObservable(result[k])) {\r\n observables = true;\r\n }\r\n }\r\n if (observables) {\r\n const sources = key.map(k => isObservable(result[k]) ? result[k] : of(result[k]));\r\n return forkJoin(sources).pipe(map((arr) => {\r\n let obj = {};\r\n arr.forEach((value, index) => {\r\n obj[key[index]] = value;\r\n });\r\n return obj;\r\n }));\r\n }\r\n return result;\r\n }\r\n if (translations) {\r\n res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams);\r\n }\r\n if (typeof res === \"undefined\" && this.defaultLang != null && this.defaultLang !== this.currentLang && this.useDefaultLang) {\r\n res = this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang], key), interpolateParams);\r\n }\r\n if (typeof res === \"undefined\") {\r\n let params = { key, translateService: this };\r\n if (typeof interpolateParams !== 'undefined') {\r\n params.interpolateParams = interpolateParams;\r\n }\r\n res = this.missingTranslationHandler.handle(params);\r\n }\r\n return typeof res !== \"undefined\" ? res : key;\r\n }\r\n /**\r\n * Gets the translated value of a key (or an array of keys)\r\n * @returns the translated key, or an object of translated keys\r\n */\r\n get(key, interpolateParams) {\r\n if (!isDefined(key) || !key.length) {\r\n throw new Error(`Parameter \"key\" required`);\r\n }\r\n // check if we are loading a new translation to use\r\n if (this.pending) {\r\n return this.loadingTranslations.pipe(concatMap((res) => {\r\n res = this.getParsedResult(res, key, interpolateParams);\r\n return isObservable(res) ? res : of(res);\r\n }));\r\n }\r\n else {\r\n let res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\r\n return isObservable(res) ? res : of(res);\r\n }\r\n }\r\n /**\r\n * Returns a stream of translated values of a key (or an array of keys) which updates\r\n * whenever the translation changes.\r\n * @returns A stream of the translated key, or an object of translated keys\r\n */\r\n getStreamOnTranslationChange(key, interpolateParams) {\r\n if (!isDefined(key) || !key.length) {\r\n throw new Error(`Parameter \"key\" required`);\r\n }\r\n return concat(defer(() => this.get(key, interpolateParams)), this.onTranslationChange.pipe(switchMap((event) => {\r\n const res = this.getParsedResult(event.translations, key, interpolateParams);\r\n if (typeof res.subscribe === 'function') {\r\n return res;\r\n }\r\n else {\r\n return of(res);\r\n }\r\n })));\r\n }\r\n /**\r\n * Returns a stream of translated values of a key (or an array of keys) which updates\r\n * whenever the language changes.\r\n * @returns A stream of the translated key, or an object of translated keys\r\n */\r\n stream(key, interpolateParams) {\r\n if (!isDefined(key) || !key.length) {\r\n throw new Error(`Parameter \"key\" required`);\r\n }\r\n return concat(defer(() => this.get(key, interpolateParams)), this.onLangChange.pipe(switchMap((event) => {\r\n const res = this.getParsedResult(event.translations, key, interpolateParams);\r\n return isObservable(res) ? res : of(res);\r\n })));\r\n }\r\n /**\r\n * Returns a translation instantly from the internal state of loaded translation.\r\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\r\n */\r\n instant(key, interpolateParams) {\r\n if (!isDefined(key) || !key.length) {\r\n throw new Error(`Parameter \"key\" required`);\r\n }\r\n let res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\r\n if (isObservable(res)) {\r\n if (key instanceof Array) {\r\n let obj = {};\r\n key.forEach((value, index) => {\r\n obj[key[index]] = key[index];\r\n });\r\n return obj;\r\n }\r\n return key;\r\n }\r\n else {\r\n return res;\r\n }\r\n }\r\n /**\r\n * Sets the translated value of a key, after compiling it\r\n */\r\n set(key, value, lang = this.currentLang) {\r\n this.translations[lang][key] = this.compiler.compile(value, lang);\r\n this.updateLangs();\r\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\r\n }\r\n /**\r\n * Changes the current lang\r\n */\r\n changeLang(lang) {\r\n this.currentLang = lang;\r\n this.onLangChange.emit({ lang: lang, translations: this.translations[lang] });\r\n // if there is no default lang, use the one that we just set\r\n if (this.defaultLang == null) {\r\n this.changeDefaultLang(lang);\r\n }\r\n }\r\n /**\r\n * Changes the default lang\r\n */\r\n changeDefaultLang(lang) {\r\n this.defaultLang = lang;\r\n this.onDefaultLangChange.emit({ lang: lang, translations: this.translations[lang] });\r\n }\r\n /**\r\n * Allows to reload the lang file from the file\r\n */\r\n reloadLang(lang) {\r\n this.resetLang(lang);\r\n return this.getTranslation(lang);\r\n }\r\n /**\r\n * Deletes inner translation\r\n */\r\n resetLang(lang) {\r\n this._translationRequests[lang] = undefined;\r\n this.translations[lang] = undefined;\r\n }\r\n /**\r\n * Returns the language code name from the browser, e.g. \"de\"\r\n */\r\n getBrowserLang() {\r\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\r\n return undefined;\r\n }\r\n let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;\r\n browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\r\n if (typeof browserLang === 'undefined') {\r\n return undefined;\r\n }\r\n if (browserLang.indexOf('-') !== -1) {\r\n browserLang = browserLang.split('-')[0];\r\n }\r\n if (browserLang.indexOf('_') !== -1) {\r\n browserLang = browserLang.split('_')[0];\r\n }\r\n return browserLang;\r\n }\r\n /**\r\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\r\n */\r\n getBrowserCultureLang() {\r\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\r\n return undefined;\r\n }\r\n let browserCultureLang = window.navigator.languages ? window.navigator.languages[0] : null;\r\n browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\r\n return browserCultureLang;\r\n }\r\n}\r\nTranslateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateService, deps: [{ token: TranslateStore }, { token: TranslateLoader }, { token: TranslateCompiler }, { token: TranslateParser }, { token: MissingTranslationHandler }, { token: USE_DEFAULT_LANG }, { token: USE_STORE }, { token: USE_EXTEND }, { token: DEFAULT_LANGUAGE }], target: i0.ɵɵFactoryTarget.Injectable });\r\nTranslateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateService, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: TranslateStore }, { type: TranslateLoader }, { type: TranslateCompiler }, { type: TranslateParser }, { type: MissingTranslationHandler }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [USE_DEFAULT_LANG]\r\n }] }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [USE_STORE]\r\n }] }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [USE_EXTEND]\r\n }] }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DEFAULT_LANGUAGE]\r\n }] }];\r\n } });\n\nclass TranslateDirective {\r\n constructor(translateService, element, _ref) {\r\n this.translateService = translateService;\r\n this.element = element;\r\n this._ref = _ref;\r\n // subscribe to onTranslationChange event, in case the translations of the current lang change\r\n if (!this.onTranslationChangeSub) {\r\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe((event) => {\r\n if (event.lang === this.translateService.currentLang) {\r\n this.checkNodes(true, event.translations);\r\n }\r\n });\r\n }\r\n // subscribe to onLangChange event, in case the language changes\r\n if (!this.onLangChangeSub) {\r\n this.onLangChangeSub = this.translateService.onLangChange.subscribe((event) => {\r\n this.checkNodes(true, event.translations);\r\n });\r\n }\r\n // subscribe to onDefaultLangChange event, in case the default language changes\r\n if (!this.onDefaultLangChangeSub) {\r\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe((event) => {\r\n this.checkNodes(true);\r\n });\r\n }\r\n }\r\n set translate(key) {\r\n if (key) {\r\n this.key = key;\r\n this.checkNodes();\r\n }\r\n }\r\n set translateParams(params) {\r\n if (!equals(this.currentParams, params)) {\r\n this.currentParams = params;\r\n this.checkNodes(true);\r\n }\r\n }\r\n ngAfterViewChecked() {\r\n this.checkNodes();\r\n }\r\n checkNodes(forceUpdate = false, translations) {\r\n let nodes = this.element.nativeElement.childNodes;\r\n // if the element is empty\r\n if (!nodes.length) {\r\n // we add the key as content\r\n this.setContent(this.element.nativeElement, this.key);\r\n nodes = this.element.nativeElement.childNodes;\r\n }\r\n for (let i = 0; i < nodes.length; ++i) {\r\n let node = nodes[i];\r\n if (node.nodeType === 3) { // node type 3 is a text node\r\n let key;\r\n if (forceUpdate) {\r\n node.lastKey = null;\r\n }\r\n if (isDefined(node.lookupKey)) {\r\n key = node.lookupKey;\r\n }\r\n else if (this.key) {\r\n key = this.key;\r\n }\r\n else {\r\n let content = this.getContent(node);\r\n let trimmedContent = content.trim();\r\n if (trimmedContent.length) {\r\n node.lookupKey = trimmedContent;\r\n // we want to use the content as a key, not the translation value\r\n if (content !== node.currentValue) {\r\n key = trimmedContent;\r\n // the content was changed from the user, we'll use it as a reference if needed\r\n node.originalContent = content || node.originalContent;\r\n }\r\n else if (node.originalContent) { // the content seems ok, but the lang has changed\r\n // the current content is the translation, not the key, use the last real content as key\r\n key = node.originalContent.trim();\r\n }\r\n else if (content !== node.currentValue) {\r\n // we want to use the content as a key, not the translation value\r\n key = trimmedContent;\r\n // the content was changed from the user, we'll use it as a reference if needed\r\n node.originalContent = content || node.originalContent;\r\n }\r\n }\r\n }\r\n this.updateValue(key, node, translations);\r\n }\r\n }\r\n }\r\n updateValue(key, node, translations) {\r\n if (key) {\r\n if (node.lastKey === key && this.lastParams === this.currentParams) {\r\n return;\r\n }\r\n this.lastParams = this.currentParams;\r\n let onTranslation = (res) => {\r\n if (res !== key) {\r\n node.lastKey = key;\r\n }\r\n if (!node.originalContent) {\r\n node.originalContent = this.getContent(node);\r\n }\r\n node.currentValue = isDefined(res) ? res : (node.originalContent || key);\r\n // we replace in the original content to preserve spaces that we might have trimmed\r\n this.setContent(node, this.key ? node.currentValue : node.originalContent.replace(key, node.currentValue));\r\n this._ref.markForCheck();\r\n };\r\n if (isDefined(translations)) {\r\n let res = this.translateService.getParsedResult(translations, key, this.currentParams);\r\n if (isObservable(res)) {\r\n res.subscribe({ next: onTranslation });\r\n }\r\n else {\r\n onTranslation(res);\r\n }\r\n }\r\n else {\r\n this.translateService.get(key, this.currentParams).subscribe(onTranslation);\r\n }\r\n }\r\n }\r\n getContent(node) {\r\n return isDefined(node.textContent) ? node.textContent : node.data;\r\n }\r\n setContent(node, content) {\r\n if (isDefined(node.textContent)) {\r\n node.textContent = content;\r\n }\r\n else {\r\n node.data = content;\r\n }\r\n }\r\n ngOnDestroy() {\r\n if (this.onLangChangeSub) {\r\n this.onLangChangeSub.unsubscribe();\r\n }\r\n if (this.onDefaultLangChangeSub) {\r\n this.onDefaultLangChangeSub.unsubscribe();\r\n }\r\n if (this.onTranslationChangeSub) {\r\n this.onTranslationChangeSub.unsubscribe();\r\n }\r\n }\r\n}\r\nTranslateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateDirective, deps: [{ token: TranslateService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nTranslateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: TranslateDirective, selector: \"[translate],[ngx-translate]\", inputs: { translate: \"translate\", translateParams: \"translateParams\" }, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: '[translate],[ngx-translate]'\r\n }]\r\n }], ctorParameters: function () { return [{ type: TranslateService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { translate: [{\r\n type: Input\r\n }], translateParams: [{\r\n type: Input\r\n }] } });\n\nclass TranslatePipe {\r\n constructor(translate, _ref) {\r\n this.translate = translate;\r\n this._ref = _ref;\r\n this.value = '';\r\n this.lastKey = null;\r\n this.lastParams = [];\r\n }\r\n updateValue(key, interpolateParams, translations) {\r\n let onTranslation = (res) => {\r\n this.value = res !== undefined ? res : key;\r\n this.lastKey = key;\r\n this._ref.markForCheck();\r\n };\r\n if (translations) {\r\n let res = this.translate.getParsedResult(translations, key, interpolateParams);\r\n if (isObservable(res.subscribe)) {\r\n res.subscribe(onTranslation);\r\n }\r\n else {\r\n onTranslation(res);\r\n }\r\n }\r\n this.translate.get(key, interpolateParams).subscribe(onTranslation);\r\n }\r\n transform(query, ...args) {\r\n if (!query || !query.length) {\r\n return query;\r\n }\r\n // if we ask another time for the same key, return the last value\r\n if (equals(query, this.lastKey) && equals(args, this.lastParams)) {\r\n return this.value;\r\n }\r\n let interpolateParams = undefined;\r\n if (isDefined(args[0]) && args.length) {\r\n if (typeof args[0] === 'string' && args[0].length) {\r\n // we accept objects written in the template such as {n:1}, {'n':1}, {n:'v'}\r\n // which is why we might need to change it to real JSON objects such as {\"n\":1} or {\"n\":\"v\"}\r\n let validArgs = args[0]\r\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, '\"$2\":')\r\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, ':\"$3\"');\r\n try {\r\n interpolateParams = JSON.parse(validArgs);\r\n }\r\n catch (e) {\r\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\r\n }\r\n }\r\n else if (typeof args[0] === 'object' && !Array.isArray(args[0])) {\r\n interpolateParams = args[0];\r\n }\r\n }\r\n // store the query, in case it changes\r\n this.lastKey = query;\r\n // store the params, in case they change\r\n this.lastParams = args;\r\n // set the value\r\n this.updateValue(query, interpolateParams);\r\n // if there is a subscription to onLangChange, clean it\r\n this._dispose();\r\n // subscribe to onTranslationChange event, in case the translations change\r\n if (!this.onTranslationChange) {\r\n this.onTranslationChange = this.translate.onTranslationChange.subscribe((event) => {\r\n if (this.lastKey && event.lang === this.translate.currentLang) {\r\n this.lastKey = null;\r\n this.updateValue(query, interpolateParams, event.translations);\r\n }\r\n });\r\n }\r\n // subscribe to onLangChange event, in case the language changes\r\n if (!this.onLangChange) {\r\n this.onLangChange = this.translate.onLangChange.subscribe((event) => {\r\n if (this.lastKey) {\r\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\r\n this.updateValue(query, interpolateParams, event.translations);\r\n }\r\n });\r\n }\r\n // subscribe to onDefaultLangChange event, in case the default language changes\r\n if (!this.onDefaultLangChange) {\r\n this.onDefaultLangChange = this.translate.onDefaultLangChange.subscribe(() => {\r\n if (this.lastKey) {\r\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\r\n this.updateValue(query, interpolateParams);\r\n }\r\n });\r\n }\r\n return this.value;\r\n }\r\n /**\r\n * Clean any existing subscription to change events\r\n */\r\n _dispose() {\r\n if (typeof this.onTranslationChange !== 'undefined') {\r\n this.onTranslationChange.unsubscribe();\r\n this.onTranslationChange = undefined;\r\n }\r\n if (typeof this.onLangChange !== 'undefined') {\r\n this.onLangChange.unsubscribe();\r\n this.onLangChange = undefined;\r\n }\r\n if (typeof this.onDefaultLangChange !== 'undefined') {\r\n this.onDefaultLangChange.unsubscribe();\r\n this.onDefaultLangChange = undefined;\r\n }\r\n }\r\n ngOnDestroy() {\r\n this._dispose();\r\n }\r\n}\r\nTranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslatePipe, deps: [{ token: TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\r\nTranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslatePipe, name: \"translate\", pure: false });\r\nTranslatePipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslatePipe });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslatePipe, decorators: [{\r\n type: Injectable\r\n }, {\r\n type: Pipe,\r\n args: [{\r\n name: 'translate',\r\n pure: false // required to update the value when the promise is resolved\r\n }]\r\n }], ctorParameters: function () { return [{ type: TranslateService }, { type: i0.ChangeDetectorRef }]; } });\n\nclass TranslateModule {\r\n /**\r\n * Use this method in your root module to provide the TranslateService\r\n */\r\n static forRoot(config = {}) {\r\n return {\r\n ngModule: TranslateModule,\r\n providers: [\r\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\r\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\r\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\r\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\r\n TranslateStore,\r\n { provide: USE_STORE, useValue: config.isolate },\r\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\r\n { provide: USE_EXTEND, useValue: config.extend },\r\n { provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage },\r\n TranslateService\r\n ]\r\n };\r\n }\r\n /**\r\n * Use this method in your other (non root) modules to import the directive/pipe\r\n */\r\n static forChild(config = {}) {\r\n return {\r\n ngModule: TranslateModule,\r\n providers: [\r\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\r\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\r\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\r\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\r\n { provide: USE_STORE, useValue: config.isolate },\r\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\r\n { provide: USE_EXTEND, useValue: config.extend },\r\n { provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage },\r\n TranslateService\r\n ]\r\n };\r\n }\r\n}\r\nTranslateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nTranslateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateModule, declarations: [TranslatePipe,\r\n TranslateDirective], exports: [TranslatePipe,\r\n TranslateDirective] });\r\nTranslateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateModule });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TranslateModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n TranslatePipe,\r\n TranslateDirective\r\n ],\r\n exports: [\r\n TranslatePipe,\r\n TranslateDirective\r\n ]\r\n }]\r\n }] });\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DEFAULT_LANGUAGE, FakeMissingTranslationHandler, MissingTranslationHandler, TranslateCompiler, TranslateDefaultParser, TranslateDirective, TranslateFakeCompiler, TranslateFakeLoader, TranslateLoader, TranslateModule, TranslateParser, TranslatePipe, TranslateService, TranslateStore, USE_DEFAULT_LANG, USE_EXTEND, USE_STORE };\n","class TranslateHttpLoader {\r\n constructor(http, prefix = \"/assets/i18n/\", suffix = \".json\") {\r\n this.http = http;\r\n this.prefix = prefix;\r\n this.suffix = suffix;\r\n }\r\n /**\r\n * Gets the translations from the server\r\n */\r\n getTranslation(lang) {\r\n return this.http.get(`${this.prefix}${lang}${this.suffix}`);\r\n }\r\n}\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { TranslateHttpLoader };\n","/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Directive, InjectionToken, forwardRef, Optional, Inject, ɵisPromise, ɵisObservable, Self, ɵRuntimeError, EventEmitter, Input, Host, SkipSelf, ChangeDetectorRef, Output, NgModule, Injectable, Version } from '@angular/core';\nimport { ɵgetDOM } from '@angular/common';\nimport { from, forkJoin } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\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/**\n * Base class for all ControlValueAccessor classes defined in Forms package.\n * Contains common logic and utility functions.\n *\n * Note: this is an *internal-only* class and should not be extended or used directly in\n * applications code.\n */\nclass BaseControlValueAccessor {\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * The registered callback function called when a change or input event occurs on the input\n * element.\n * @nodoc\n */\n this.onChange = (_) => { };\n /**\n * The registered callback function called when a blur event occurs on the input element.\n * @nodoc\n */\n this.onTouched = () => { };\n }\n /**\n * Helper method that sets a property on a target element using the current Renderer\n * implementation.\n * @nodoc\n */\n setProperty(key, value) {\n this._renderer.setProperty(this._elementRef.nativeElement, key, value);\n }\n /**\n * Registers a function called when the control is touched.\n * @nodoc\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * Sets the \"disabled\" property on the range input element.\n * @nodoc\n */\n setDisabledState(isDisabled) {\n this.setProperty('disabled', isDisabled);\n }\n}\nBaseControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BaseControlValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nBaseControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: BaseControlValueAccessor, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BaseControlValueAccessor, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });\n/**\n * Base class for all built-in ControlValueAccessor classes (except DefaultValueAccessor, which is\n * used in case no other CVAs can be found). We use this class to distinguish between default CVA,\n * built-in CVAs and custom CVAs, so that Forms logic can recognize built-in CVAs and treat custom\n * ones with higher priority (when both built-in and custom CVAs are present).\n *\n * Note: this is an *internal-only* class and should not be extended or used directly in\n * applications code.\n */\nclass BuiltInControlValueAccessor extends BaseControlValueAccessor {\n}\nBuiltInControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BuiltInControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nBuiltInControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: BuiltInControlValueAccessor, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BuiltInControlValueAccessor, decorators: [{\n type: Directive\n }] });\n/**\n * Used to provide a `ControlValueAccessor` for form controls.\n *\n * See `DefaultValueAccessor` for how to implement one.\n *\n * @publicApi\n */\nconst NG_VALUE_ACCESSOR = new InjectionToken('NgValueAccessor');\n\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 */\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxControlValueAccessor),\n multi: true,\n};\n/**\n * @description\n * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input\n * element.\n *\n * @usageNotes\n *\n * ### Using a checkbox with a reactive form.\n *\n * The following example shows how to use a checkbox with a reactive form.\n *\n * ```ts\n * const rememberLoginControl = new FormControl();\n * ```\n *\n * ```\n * <input type=\"checkbox\" [formControl]=\"rememberLoginControl\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass CheckboxControlValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"checked\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n this.setProperty('checked', value);\n }\n}\nCheckboxControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CheckboxControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nCheckboxControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\", host: { listeners: { \"change\": \"onChange($event.target.checked)\", \"blur\": \"onTouched()\" } }, providers: [CHECKBOX_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CheckboxControlValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]',\n host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },\n providers: [CHECKBOX_VALUE_ACCESSOR]\n }]\n }] });\n\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 */\nconst DEFAULT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DefaultValueAccessor),\n multi: true\n};\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid() {\n const userAgent = ɵgetDOM() ? ɵgetDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n/**\n * @description\n * Provide this token to control if form directives buffer IME input until\n * the \"compositionend\" event occurs.\n * @publicApi\n */\nconst COMPOSITION_BUFFER_MODE = new InjectionToken('CompositionEventMode');\n/**\n * The default `ControlValueAccessor` for writing a value and listening to changes on input\n * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * {@searchKeywords ngDefaultControl}\n *\n * @usageNotes\n *\n * ### Using the default value accessor\n *\n * The following example shows how to use an input element that activates the default value accessor\n * (in this case, a text field).\n *\n * ```ts\n * const firstNameControl = new FormControl();\n * ```\n *\n * ```\n * <input type=\"text\" [formControl]=\"firstNameControl\">\n * ```\n *\n * This value accessor is used by default for `<input type=\"text\">` and `<textarea>` elements, but\n * you could also use it for custom components that have similar behavior and do not require special\n * processing. In order to attach the default value accessor to a custom element, add the\n * `ngDefaultControl` attribute as shown below.\n *\n * ```\n * <custom-input-component ngDefaultControl [(ngModel)]=\"value\"></custom-input-component>\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass DefaultValueAccessor extends BaseControlValueAccessor {\n constructor(renderer, elementRef, _compositionMode) {\n super(renderer, elementRef);\n this._compositionMode = _compositionMode;\n /** Whether the user is creating a composition string (IME events). */\n this._composing = false;\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n const normalizedValue = value == null ? '' : value;\n this.setProperty('value', normalizedValue);\n }\n /** @internal */\n _handleInput(value) {\n if (!this._compositionMode || (this._compositionMode && !this._composing)) {\n this.onChange(value);\n }\n }\n /** @internal */\n _compositionStart() {\n this._composing = true;\n }\n /** @internal */\n _compositionEnd(value) {\n this._composing = false;\n this._compositionMode && this.onChange(value);\n }\n}\nDefaultValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DefaultValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: COMPOSITION_BUFFER_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nDefaultValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\", host: { listeners: { \"input\": \"$any(this)._handleInput($event.target.value)\", \"blur\": \"onTouched()\", \"compositionstart\": \"$any(this)._compositionStart()\", \"compositionend\": \"$any(this)._compositionEnd($event.target.value)\" } }, providers: [DEFAULT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DefaultValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]',\n // TODO: vsavkin replace the above selector with the one below it once\n // https://github.com/angular/angular/issues/3011 is implemented\n // selector: '[ngModel],[formControl],[formControlName]',\n host: {\n '(input)': '$any(this)._handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '$any(this)._compositionStart()',\n '(compositionend)': '$any(this)._compositionEnd($event.target.value)'\n },\n providers: [DEFAULT_VALUE_ACCESSOR]\n }]\n }], ctorParameters: function () {\n return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [COMPOSITION_BUFFER_MODE]\n }] }];\n } });\n\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 */\nfunction isEmptyInputValue(value) {\n // we don't check for string here so it also works with arrays\n return value == null || value.length === 0;\n}\nfunction hasValidLength(value) {\n // non-strict comparison is intentional, to check for both `null` and `undefined` values\n return value != null && typeof value.length === 'number';\n}\n/**\n * @description\n * An `InjectionToken` for registering additional synchronous validators used with\n * `AbstractControl`s.\n *\n * @see `NG_ASYNC_VALIDATORS`\n *\n * @usageNotes\n *\n * ### Providing a custom validator\n *\n * The following example registers a custom validator directive. Adding the validator to the\n * existing collection of validators requires the `multi: true` option.\n *\n * ```typescript\n * @Directive({\n * selector: '[customValidator]',\n * providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]\n * })\n * class CustomValidatorDirective implements Validator {\n * validate(control: AbstractControl): ValidationErrors | null {\n * return { 'custom': true };\n * }\n * }\n * ```\n *\n * @publicApi\n */\nconst NG_VALIDATORS = new InjectionToken('NgValidators');\n/**\n * @description\n * An `InjectionToken` for registering additional asynchronous validators used with\n * `AbstractControl`s.\n *\n * @see `NG_VALIDATORS`\n *\n * @usageNotes\n *\n * ### Provide a custom async validator directive\n *\n * The following example implements the `AsyncValidator` interface to create an\n * async validator directive with a custom error key.\n *\n * ```typescript\n * @Directive({\n * selector: '[customAsyncValidator]',\n * providers: [{provide: NG_ASYNC_VALIDATORS, useExisting: CustomAsyncValidatorDirective, multi:\n * true}]\n * })\n * class CustomAsyncValidatorDirective implements AsyncValidator {\n * validate(control: AbstractControl): Promise<ValidationErrors|null> {\n * return Promise.resolve({'custom': true});\n * }\n * }\n * ```\n *\n * @publicApi\n */\nconst NG_ASYNC_VALIDATORS = new InjectionToken('NgAsyncValidators');\n/**\n * A regular expression that matches valid e-mail addresses.\n *\n * At a high level, this regexp matches e-mail addresses of the format `local-part@tld`, where:\n * - `local-part` consists of one or more of the allowed characters (alphanumeric and some\n * punctuation symbols).\n * - `local-part` cannot begin or end with a period (`.`).\n * - `local-part` cannot be longer than 64 characters.\n * - `tld` consists of one or more `labels` separated by periods (`.`). For example `localhost` or\n * `foo.com`.\n * - A `label` consists of one or more of the allowed characters (alphanumeric, dashes (`-`) and\n * periods (`.`)).\n * - A `label` cannot begin or end with a dash (`-`) or a period (`.`).\n * - A `label` cannot be longer than 63 characters.\n * - The whole address cannot be longer than 254 characters.\n *\n * ## Implementation background\n *\n * This regexp was ported over from AngularJS (see there for git history):\n * https://github.com/angular/angular.js/blob/c133ef836/src/ng/directive/input.js#L27\n * It is based on the\n * [WHATWG version](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address). The main differences from the WHATWG version are:\n * - Disallow `local-part` to begin or end with a period (`.`).\n * - Disallow `local-part` length to exceed 64 characters.\n * - Disallow total address length to exceed 254 characters.\n *\n * See [this commit](https://github.com/angular/angular.js/commit/f3f5cf72e) for more details.\n */\nconst EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n * @description\n * Provides a set of built-in validators that can be used by form controls.\n *\n * A validator is a function that processes a `FormControl` or collection of\n * controls and returns an error map or null. A null map means that validation has passed.\n *\n * @see [Form Validation](/guide/form-validation)\n *\n * @publicApi\n */\nclass Validators {\n /**\n * @description\n * Validator that requires the control's value to be greater than or equal to the provided number.\n *\n * @usageNotes\n *\n * ### Validate against a minimum of 3\n *\n * ```typescript\n * const control = new FormControl(2, Validators.min(3));\n *\n * console.log(control.errors); // {min: {min: 3, actual: 2}}\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `min` property if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static min(min) {\n return minValidator(min);\n }\n /**\n * @description\n * Validator that requires the control's value to be less than or equal to the provided number.\n *\n * @usageNotes\n *\n * ### Validate against a maximum of 15\n *\n * ```typescript\n * const control = new FormControl(16, Validators.max(15));\n *\n * console.log(control.errors); // {max: {max: 15, actual: 16}}\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `max` property if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static max(max) {\n return maxValidator(max);\n }\n /**\n * @description\n * Validator that requires the control have a non-empty value.\n *\n * @usageNotes\n *\n * ### Validate that the field is non-empty\n *\n * ```typescript\n * const control = new FormControl('', Validators.required);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @returns An error map with the `required` property\n * if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static required(control) {\n return requiredValidator(control);\n }\n /**\n * @description\n * Validator that requires the control's value be true. This validator is commonly\n * used for required checkboxes.\n *\n * @usageNotes\n *\n * ### Validate that the field value is true\n *\n * ```typescript\n * const control = new FormControl('some value', Validators.requiredTrue);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @returns An error map that contains the `required` property\n * set to `true` if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static requiredTrue(control) {\n return requiredTrueValidator(control);\n }\n /**\n * @description\n * Validator that requires the control's value pass an email validation test.\n *\n * Tests the value using a [regular\n * expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n * pattern suitable for common usecases. The pattern is based on the definition of a valid email\n * address in the [WHATWG HTML\n * specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address).\n *\n * The differences from the WHATWG version include:\n * - Disallow `local-part` (the part before the `@` symbol) to begin or end with a period (`.`).\n * - Disallow `local-part` to be longer than 64 characters.\n * - Disallow the whole address to be longer than 254 characters.\n *\n * If this pattern does not satisfy your business needs, you can use `Validators.pattern()` to\n * validate the value against a different pattern.\n *\n * @usageNotes\n *\n * ### Validate that the field matches a valid email pattern\n *\n * ```typescript\n * const control = new FormControl('bad@', Validators.email);\n *\n * console.log(control.errors); // {email: true}\n * ```\n *\n * @returns An error map with the `email` property\n * if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static email(control) {\n return emailValidator(control);\n }\n /**\n * @description\n * Validator that requires the length of the control's value to be greater than or equal\n * to the provided minimum length. This validator is also provided by default if you use the\n * the HTML5 `minlength` attribute. Note that the `minLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays. The\n * `minLength` validator logic is also not invoked for values when their `length` property is 0\n * (for example in case of an empty string or an empty array), to support optional controls. You\n * can use the standard `required` validator if empty values should not be considered valid.\n *\n * @usageNotes\n *\n * ### Validate that the field has a minimum of 3 characters\n *\n * ```typescript\n * const control = new FormControl('ng', Validators.minLength(3));\n *\n * console.log(control.errors); // {minlength: {requiredLength: 3, actualLength: 2}}\n * ```\n *\n * ```html\n * <input minlength=\"5\">\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `minlength` property if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static minLength(minLength) {\n return minLengthValidator(minLength);\n }\n /**\n * @description\n * Validator that requires the length of the control's value to be less than or equal\n * to the provided maximum length. This validator is also provided by default if you use the\n * the HTML5 `maxlength` attribute. Note that the `maxLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays.\n *\n * @usageNotes\n *\n * ### Validate that the field has maximum of 5 characters\n *\n * ```typescript\n * const control = new FormControl('Angular', Validators.maxLength(5));\n *\n * console.log(control.errors); // {maxlength: {requiredLength: 5, actualLength: 7}}\n * ```\n *\n * ```html\n * <input maxlength=\"5\">\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxlength` property if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static maxLength(maxLength) {\n return maxLengthValidator(maxLength);\n }\n /**\n * @description\n * Validator that requires the control's value to match a regex pattern. This validator is also\n * provided by default if you use the HTML5 `pattern` attribute.\n *\n * @usageNotes\n *\n * ### Validate that the field only contains letters or spaces\n *\n * ```typescript\n * const control = new FormControl('1', Validators.pattern('[a-zA-Z ]*'));\n *\n * console.log(control.errors); // {pattern: {requiredPattern: '^[a-zA-Z ]*$', actualValue: '1'}}\n * ```\n *\n * ```html\n * <input pattern=\"[a-zA-Z ]*\">\n * ```\n *\n * ### Pattern matching with the global or sticky flag\n *\n * `RegExp` objects created with the `g` or `y` flags that are passed into `Validators.pattern`\n * can produce different results on the same input when validations are run consecutively. This is\n * due to how the behavior of `RegExp.prototype.test` is\n * specified in [ECMA-262](https://tc39.es/ecma262/#sec-regexpbuiltinexec)\n * (`RegExp` preserves the index of the last match when the global or sticky flag is used).\n * Due to this behavior, it is recommended that when using\n * `Validators.pattern` you **do not** pass in a `RegExp` object with either the global or sticky\n * flag enabled.\n *\n * ```typescript\n * // Not recommended (since the `g` flag is used)\n * const controlOne = new FormControl('1', Validators.pattern(/foo/g));\n *\n * // Good\n * const controlTwo = new FormControl('1', Validators.pattern(/foo/));\n * ```\n *\n * @param pattern A regular expression to be used as is to test the values, or a string.\n * If a string is passed, the `^` character is prepended and the `$` character is\n * appended to the provided string (if not already present), and the resulting regular\n * expression is used to test the values.\n *\n * @returns A validator function that returns an error map with the\n * `pattern` property if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static pattern(pattern) {\n return patternValidator(pattern);\n }\n /**\n * @description\n * Validator that performs no operation.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static nullValidator(control) {\n return nullValidator(control);\n }\n static compose(validators) {\n return compose(validators);\n }\n /**\n * @description\n * Compose multiple async validators into a single function that returns the union\n * of the individual error objects for the provided control.\n *\n * @returns A validator function that returns an error map with the\n * merged error objects of the async validators if the validation check fails, otherwise `null`.\n *\n * @see `updateValueAndValidity()`\n *\n */\n static composeAsync(validators) {\n return composeAsync(validators);\n }\n}\n/**\n * Validator that requires the control's value to be greater than or equal to the provided number.\n * See `Validators.min` for additional information.\n */\nfunction minValidator(min) {\n return (control) => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(min)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min\n return !isNaN(value) && value < min ? { 'min': { 'min': min, 'actual': control.value } } : null;\n };\n}\n/**\n * Validator that requires the control's value to be less than or equal to the provided number.\n * See `Validators.max` for additional information.\n */\nfunction maxValidator(max) {\n return (control) => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(max)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // maximum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-max\n return !isNaN(value) && value > max ? { 'max': { 'max': max, 'actual': control.value } } : null;\n };\n}\n/**\n * Validator that requires the control have a non-empty value.\n * See `Validators.required` for additional information.\n */\nfunction requiredValidator(control) {\n return isEmptyInputValue(control.value) ? { 'required': true } : null;\n}\n/**\n * Validator that requires the control's value be true. This validator is commonly\n * used for required checkboxes.\n * See `Validators.requiredTrue` for additional information.\n */\nfunction requiredTrueValidator(control) {\n return control.value === true ? null : { 'required': true };\n}\n/**\n * Validator that requires the control's value pass an email validation test.\n * See `Validators.email` for additional information.\n */\nfunction emailValidator(control) {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n return EMAIL_REGEXP.test(control.value) ? null : { 'email': true };\n}\n/**\n * Validator that requires the length of the control's value to be greater than or equal\n * to the provided minimum length. See `Validators.minLength` for additional information.\n */\nfunction minLengthValidator(minLength) {\n return (control) => {\n if (isEmptyInputValue(control.value) || !hasValidLength(control.value)) {\n // don't validate empty values to allow optional controls\n // don't validate values without `length` property\n return null;\n }\n return control.value.length < minLength ?\n { 'minlength': { 'requiredLength': minLength, 'actualLength': control.value.length } } :\n null;\n };\n}\n/**\n * Validator that requires the length of the control's value to be less than or equal\n * to the provided maximum length. See `Validators.maxLength` for additional information.\n */\nfunction maxLengthValidator(maxLength) {\n return (control) => {\n return hasValidLength(control.value) && control.value.length > maxLength ?\n { 'maxlength': { 'requiredLength': maxLength, 'actualLength': control.value.length } } :\n null;\n };\n}\n/**\n * Validator that requires the control's value to match a regex pattern.\n * See `Validators.pattern` for additional information.\n */\nfunction patternValidator(pattern) {\n if (!pattern)\n return nullValidator;\n let regex;\n let regexStr;\n if (typeof pattern === 'string') {\n regexStr = '';\n if (pattern.charAt(0) !== '^')\n regexStr += '^';\n regexStr += pattern;\n if (pattern.charAt(pattern.length - 1) !== '$')\n regexStr += '$';\n regex = new RegExp(regexStr);\n }\n else {\n regexStr = pattern.toString();\n regex = pattern;\n }\n return (control) => {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = control.value;\n return regex.test(value) ? null :\n { 'pattern': { 'requiredPattern': regexStr, 'actualValue': value } };\n };\n}\n/**\n * Function that has `ValidatorFn` shape, but performs no operation.\n */\nfunction nullValidator(control) {\n return null;\n}\nfunction isPresent(o) {\n return o != null;\n}\nfunction toObservable(r) {\n const obs = ɵisPromise(r) ? from(r) : r;\n if (!(ɵisObservable(obs)) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error(`Expected validator to return Promise or Observable.`);\n }\n return obs;\n}\nfunction mergeErrors(arrayOfErrors) {\n let res = {};\n // Not using Array.reduce here due to a Chrome 80 bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\n arrayOfErrors.forEach((errors) => {\n res = errors != null ? Object.assign(Object.assign({}, res), errors) : res;\n });\n return Object.keys(res).length === 0 ? null : res;\n}\nfunction executeValidators(control, validators) {\n return validators.map(validator => validator(control));\n}\nfunction isValidatorFn(validator) {\n return !validator.validate;\n}\n/**\n * Given the list of validators that may contain both functions as well as classes, return the list\n * of validator functions (convert validator classes into validator functions). This is needed to\n * have consistent structure in validators list before composing them.\n *\n * @param validators The set of validators that may contain validators both in plain function form\n * as well as represented as a validator class.\n */\nfunction normalizeValidators(validators) {\n return validators.map(validator => {\n return isValidatorFn(validator) ?\n validator :\n ((c) => validator.validate(c));\n });\n}\n/**\n * Merges synchronous validators into a single validator function.\n * See `Validators.compose` for additional information.\n */\nfunction compose(validators) {\n if (!validators)\n return null;\n const presentValidators = validators.filter(isPresent);\n if (presentValidators.length == 0)\n return null;\n return function (control) {\n return mergeErrors(executeValidators(control, presentValidators));\n };\n}\n/**\n * Accepts a list of validators of different possible shapes (`Validator` and `ValidatorFn`),\n * normalizes the list (converts everything to `ValidatorFn`) and merges them into a single\n * validator function.\n */\nfunction composeValidators(validators) {\n return validators != null ? compose(normalizeValidators(validators)) : null;\n}\n/**\n * Merges asynchronous validators into a single validator function.\n * See `Validators.composeAsync` for additional information.\n */\nfunction composeAsync(validators) {\n if (!validators)\n return null;\n const presentValidators = validators.filter(isPresent);\n if (presentValidators.length == 0)\n return null;\n return function (control) {\n const observables = executeValidators(control, presentValidators).map(toObservable);\n return forkJoin(observables).pipe(map(mergeErrors));\n };\n}\n/**\n * Accepts a list of async validators of different possible shapes (`AsyncValidator` and\n * `AsyncValidatorFn`), normalizes the list (converts everything to `AsyncValidatorFn`) and merges\n * them into a single validator function.\n */\nfunction composeAsyncValidators(validators) {\n return validators != null ? composeAsync(normalizeValidators(validators)) :\n null;\n}\n/**\n * Merges raw control validators with a given directive validator and returns the combined list of\n * validators as an array.\n */\nfunction mergeValidators(controlValidators, dirValidator) {\n if (controlValidators === null)\n return [dirValidator];\n return Array.isArray(controlValidators) ? [...controlValidators, dirValidator] :\n [controlValidators, dirValidator];\n}\n/**\n * Retrieves the list of raw synchronous validators attached to a given control.\n */\nfunction getControlValidators(control) {\n return control._rawValidators;\n}\n/**\n * Retrieves the list of raw asynchronous validators attached to a given control.\n */\nfunction getControlAsyncValidators(control) {\n return control._rawAsyncValidators;\n}\n/**\n * Accepts a singleton validator, an array, or null, and returns an array type with the provided\n * validators.\n *\n * @param validators A validator, validators, or null.\n * @returns A validators array.\n */\nfunction makeValidatorsArray(validators) {\n if (!validators)\n return [];\n return Array.isArray(validators) ? validators : [validators];\n}\n/**\n * Determines whether a validator or validators array has a given validator.\n *\n * @param validators The validator or validators to compare against.\n * @param validator The validator to check.\n * @returns Whether the validator is present.\n */\nfunction hasValidator(validators, validator) {\n return Array.isArray(validators) ? validators.includes(validator) : validators === validator;\n}\n/**\n * Combines two arrays of validators into one. If duplicates are provided, only one will be added.\n *\n * @param validators The new validators.\n * @param currentValidators The base array of currrent validators.\n * @returns An array of validators.\n */\nfunction addValidators(validators, currentValidators) {\n const current = makeValidatorsArray(currentValidators);\n const validatorsToAdd = makeValidatorsArray(validators);\n validatorsToAdd.forEach((v) => {\n // Note: if there are duplicate entries in the new validators array,\n // only the first one would be added to the current list of validarors.\n // Duplicate ones would be ignored since `hasValidator` would detect\n // the presence of a validator function and we update the current list in place.\n if (!hasValidator(current, v)) {\n current.push(v);\n }\n });\n return current;\n}\nfunction removeValidators(validators, currentValidators) {\n return makeValidatorsArray(currentValidators).filter(v => !hasValidator(validators, v));\n}\n\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/**\n * @description\n * Base class for control directives.\n *\n * This class is only used internally in the `ReactiveFormsModule` and the `FormsModule`.\n *\n * @publicApi\n */\nclass AbstractControlDirective {\n constructor() {\n /**\n * Set of synchronous validators as they were provided while calling `setValidators` function.\n * @internal\n */\n this._rawValidators = [];\n /**\n * Set of asynchronous validators as they were provided while calling `setAsyncValidators`\n * function.\n * @internal\n */\n this._rawAsyncValidators = [];\n /*\n * The set of callbacks to be invoked when directive instance is being destroyed.\n */\n this._onDestroyCallbacks = [];\n }\n /**\n * @description\n * Reports the value of the control if it is present, otherwise null.\n */\n get value() {\n return this.control ? this.control.value : null;\n }\n /**\n * @description\n * Reports whether the control is valid. A control is considered valid if no\n * validation errors exist with the current value.\n * If the control is not present, null is returned.\n */\n get valid() {\n return this.control ? this.control.valid : null;\n }\n /**\n * @description\n * Reports whether the control is invalid, meaning that an error exists in the input value.\n * If the control is not present, null is returned.\n */\n get invalid() {\n return this.control ? this.control.invalid : null;\n }\n /**\n * @description\n * Reports whether a control is pending, meaning that that async validation is occurring and\n * errors are not yet available for the input value. If the control is not present, null is\n * returned.\n */\n get pending() {\n return this.control ? this.control.pending : null;\n }\n /**\n * @description\n * Reports whether the control is disabled, meaning that the control is disabled\n * in the UI and is exempt from validation checks and excluded from aggregate\n * values of ancestor controls. If the control is not present, null is returned.\n */\n get disabled() {\n return this.control ? this.control.disabled : null;\n }\n /**\n * @description\n * Reports whether the control is enabled, meaning that the control is included in ancestor\n * calculations of validity or value. If the control is not present, null is returned.\n */\n get enabled() {\n return this.control ? this.control.enabled : null;\n }\n /**\n * @description\n * Reports the control's validation errors. If the control is not present, null is returned.\n */\n get errors() {\n return this.control ? this.control.errors : null;\n }\n /**\n * @description\n * Reports whether the control is pristine, meaning that the user has not yet changed\n * the value in the UI. If the control is not present, null is returned.\n */\n get pristine() {\n return this.control ? this.control.pristine : null;\n }\n /**\n * @description\n * Reports whether the control is dirty, meaning that the user has changed\n * the value in the UI. If the control is not present, null is returned.\n */\n get dirty() {\n return this.control ? this.control.dirty : null;\n }\n /**\n * @description\n * Reports whether the control is touched, meaning that the user has triggered\n * a `blur` event on it. If the control is not present, null is returned.\n */\n get touched() {\n return this.control ? this.control.touched : null;\n }\n /**\n * @description\n * Reports the validation status of the control. Possible values include:\n * 'VALID', 'INVALID', 'DISABLED', and 'PENDING'.\n * If the control is not present, null is returned.\n */\n get status() {\n return this.control ? this.control.status : null;\n }\n /**\n * @description\n * Reports whether the control is untouched, meaning that the user has not yet triggered\n * a `blur` event on it. If the control is not present, null is returned.\n */\n get untouched() {\n return this.control ? this.control.untouched : null;\n }\n /**\n * @description\n * Returns a multicasting observable that emits a validation status whenever it is\n * calculated for the control. If the control is not present, null is returned.\n */\n get statusChanges() {\n return this.control ? this.control.statusChanges : null;\n }\n /**\n * @description\n * Returns a multicasting observable of value changes for the control that emits every time the\n * value of the control changes in the UI or programmatically.\n * If the control is not present, null is returned.\n */\n get valueChanges() {\n return this.control ? this.control.valueChanges : null;\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return null;\n }\n /**\n * Sets synchronous validators for this directive.\n * @internal\n */\n _setValidators(validators) {\n this._rawValidators = validators || [];\n this._composedValidatorFn = composeValidators(this._rawValidators);\n }\n /**\n * Sets asynchronous validators for this directive.\n * @internal\n */\n _setAsyncValidators(validators) {\n this._rawAsyncValidators = validators || [];\n this._composedAsyncValidatorFn = composeAsyncValidators(this._rawAsyncValidators);\n }\n /**\n * @description\n * Synchronous validator function composed of all the synchronous validators registered with this\n * directive.\n */\n get validator() {\n return this._composedValidatorFn || null;\n }\n /**\n * @description\n * Asynchronous validator function composed of all the asynchronous validators registered with\n * this directive.\n */\n get asyncValidator() {\n return this._composedAsyncValidatorFn || null;\n }\n /**\n * Internal function to register callbacks that should be invoked\n * when directive instance is being destroyed.\n * @internal\n */\n _registerOnDestroy(fn) {\n this._onDestroyCallbacks.push(fn);\n }\n /**\n * Internal function to invoke all registered \"on destroy\" callbacks.\n * Note: calling this function also clears the list of callbacks.\n * @internal\n */\n _invokeOnDestroyCallbacks() {\n this._onDestroyCallbacks.forEach(fn => fn());\n this._onDestroyCallbacks = [];\n }\n /**\n * @description\n * Resets the control with the provided value if the control is present.\n */\n reset(value = undefined) {\n if (this.control)\n this.control.reset(value);\n }\n /**\n * @description\n * Reports whether the control with the given path has the error specified.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * If no path is given, this method checks for the error on the current control.\n *\n * @returns whether the given error is present in the control at the given path.\n *\n * If the control is not present, false is returned.\n */\n hasError(errorCode, path) {\n return this.control ? this.control.hasError(errorCode, path) : false;\n }\n /**\n * @description\n * Reports error data for the control with the given path.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n getError(errorCode, path) {\n return this.control ? this.control.getError(errorCode, path) : null;\n }\n}\n\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/**\n * @description\n * A base class that all `FormControl`-based directives extend. It binds a `FormControl`\n * object to a DOM element.\n *\n * @publicApi\n */\nclass NgControl extends AbstractControlDirective {\n constructor() {\n super(...arguments);\n /**\n * @description\n * The parent form for the control.\n *\n * @internal\n */\n this._parent = null;\n /**\n * @description\n * The name for the control\n */\n this.name = null;\n /**\n * @description\n * The value accessor for the control\n */\n this.valueAccessor = null;\n }\n}\n\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/**\n * @description\n * A base class for directives that contain multiple registered instances of `NgControl`.\n * Only used by the forms module.\n *\n * @publicApi\n */\nclass ControlContainer extends AbstractControlDirective {\n /**\n * @description\n * The top-level form directive for the control.\n */\n get formDirective() {\n return null;\n }\n /**\n * @description\n * The path to this group.\n */\n get path() {\n return null;\n }\n}\n\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 */\nclass AbstractControlStatus {\n constructor(cd) {\n this._cd = cd;\n }\n is(status) {\n var _a, _b, _c;\n // Currently with ViewEngine (in AOT mode) it's not possible to use private methods in host\n // bindings.\n // TODO: once ViewEngine is removed, this function should be refactored:\n // - make the `is` method `protected`, so it's not accessible publicly\n // - move the `submitted` status logic to the `NgControlStatusGroup` class\n // and make it `private` or `protected` too.\n if (status === 'submitted') {\n // We check for the `submitted` field from `NgForm` and `FormGroupDirective` classes, but\n // we avoid instanceof checks to prevent non-tree-shakable references to those types.\n return !!((_a = this._cd) === null || _a === void 0 ? void 0 : _a.submitted);\n }\n return !!((_c = (_b = this._cd) === null || _b === void 0 ? void 0 : _b.control) === null || _c === void 0 ? void 0 : _c[status]);\n }\n}\nconst ngControlStatusHost = {\n '[class.ng-untouched]': 'is(\"untouched\")',\n '[class.ng-touched]': 'is(\"touched\")',\n '[class.ng-pristine]': 'is(\"pristine\")',\n '[class.ng-dirty]': 'is(\"dirty\")',\n '[class.ng-valid]': 'is(\"valid\")',\n '[class.ng-invalid]': 'is(\"invalid\")',\n '[class.ng-pending]': 'is(\"pending\")',\n};\nconst ngGroupStatusHost = {\n '[class.ng-untouched]': 'is(\"untouched\")',\n '[class.ng-touched]': 'is(\"touched\")',\n '[class.ng-pristine]': 'is(\"pristine\")',\n '[class.ng-dirty]': 'is(\"dirty\")',\n '[class.ng-valid]': 'is(\"valid\")',\n '[class.ng-invalid]': 'is(\"invalid\")',\n '[class.ng-pending]': 'is(\"pending\")',\n '[class.ng-submitted]': 'is(\"submitted\")',\n};\n/**\n * @description\n * Directive automatically applied to Angular form controls that sets CSS classes\n * based on control status.\n *\n * @usageNotes\n *\n * ### CSS classes applied\n *\n * The following classes are applied as the properties become true:\n *\n * * ng-valid\n * * ng-invalid\n * * ng-pending\n * * ng-pristine\n * * ng-dirty\n * * ng-untouched\n * * ng-touched\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgControlStatus extends AbstractControlStatus {\n constructor(cd) {\n super(cd);\n }\n}\nNgControlStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgControlStatus, deps: [{ token: NgControl, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgControlStatus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\", host: { properties: { \"class.ng-untouched\": \"is(\\\"untouched\\\")\", \"class.ng-touched\": \"is(\\\"touched\\\")\", \"class.ng-pristine\": \"is(\\\"pristine\\\")\", \"class.ng-dirty\": \"is(\\\"dirty\\\")\", \"class.ng-valid\": \"is(\\\"valid\\\")\", \"class.ng-invalid\": \"is(\\\"invalid\\\")\", \"class.ng-pending\": \"is(\\\"pending\\\")\" } }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgControlStatus, decorators: [{\n type: Directive,\n args: [{ selector: '[formControlName],[ngModel],[formControl]', host: ngControlStatusHost }]\n }], ctorParameters: function () {\n return [{ type: NgControl, decorators: [{\n type: Self\n }] }];\n } });\n/**\n * @description\n * Directive automatically applied to Angular form groups that sets CSS classes\n * based on control status (valid/invalid/dirty/etc). On groups, this includes the additional\n * class ng-submitted.\n *\n * @see `NgControlStatus`\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgControlStatusGroup extends AbstractControlStatus {\n constructor(cd) {\n super(cd);\n }\n}\nNgControlStatusGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgControlStatusGroup, deps: [{ token: ControlContainer, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgControlStatusGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\", host: { properties: { \"class.ng-untouched\": \"is(\\\"untouched\\\")\", \"class.ng-touched\": \"is(\\\"touched\\\")\", \"class.ng-pristine\": \"is(\\\"pristine\\\")\", \"class.ng-dirty\": \"is(\\\"dirty\\\")\", \"class.ng-valid\": \"is(\\\"valid\\\")\", \"class.ng-invalid\": \"is(\\\"invalid\\\")\", \"class.ng-pending\": \"is(\\\"pending\\\")\", \"class.ng-submitted\": \"is(\\\"submitted\\\")\" } }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgControlStatusGroup, decorators: [{\n type: Directive,\n args: [{\n selector: '[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]',\n host: ngGroupStatusHost\n }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Optional\n }, {\n type: Self\n }] }];\n } });\n\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 */\nconst formControlNameExample = `\n <div [formGroup]=\"myGroup\">\n <input formControlName=\"firstName\">\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });`;\nconst formGroupNameExample = `\n <div [formGroup]=\"myGroup\">\n <div formGroupName=\"person\">\n <input formControlName=\"firstName\">\n </div>\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });`;\nconst formArrayNameExample = `\n <div [formGroup]=\"myGroup\">\n <div formArrayName=\"cities\">\n <div *ngFor=\"let city of cityArray.controls; index as i\">\n <input [formControlName]=\"i\">\n </div>\n </div>\n </div>\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl('SF')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });`;\nconst ngModelGroupExample = `\n <form>\n <div ngModelGroup=\"person\">\n <input [(ngModel)]=\"person.name\" name=\"firstName\">\n </div>\n </form>`;\nconst ngModelWithFormGroupExample = `\n <div [formGroup]=\"myGroup\">\n <input formControlName=\"firstName\">\n <input [(ngModel)]=\"showMoreControls\" [ngModelOptions]=\"{standalone: true}\">\n </div>\n`;\n\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 */\nfunction controlParentException() {\n return new Error(`formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formControlNameExample}`);\n}\nfunction ngModelGroupException() {\n return new Error(`formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a \"form\" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n ${formGroupNameExample}\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n ${ngModelGroupExample}`);\n}\nfunction missingFormException() {\n return new Error(`formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n ${formControlNameExample}`);\n}\nfunction groupParentException() {\n return new Error(`formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formGroupNameExample}`);\n}\nfunction arrayParentException() {\n return new Error(`formArrayName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formArrayNameExample}`);\n}\nconst disabledAttrWarning = `\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n\n Example:\n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n`;\nfunction ngModelWarning(directiveName) {\n return `\n It looks like you're using ngModel on the same form field as ${directiveName}.\n Support for using the ngModel input property and ngModelChange event with\n reactive form directives has been deprecated in Angular v6 and will be removed\n in a future version of Angular.\n\n For more information on this, see our API docs here:\n https://angular.io/api/forms/${directiveName === 'formControl' ? 'FormControlDirective' : 'FormControlName'}#use-with-ngmodel\n `;\n}\nfunction describeKey(isFormGroup, key) {\n return isFormGroup ? `with name: '${key}'` : `at index: ${key}`;\n}\nfunction noControlsError(isFormGroup) {\n return `\n There are no form controls registered with this ${isFormGroup ? 'group' : 'array'} yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n `;\n}\nfunction missingControlError(isFormGroup, key) {\n return `Cannot find form control ${describeKey(isFormGroup, key)}`;\n}\nfunction missingControlValueError(isFormGroup, key) {\n return `Must supply a value for form control ${describeKey(isFormGroup, key)}`;\n}\n\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 */\nfunction controlPath(name, parent) {\n return [...parent.path, name];\n}\n/**\n * Links a Form control and a Form directive by setting up callbacks (such as `onChange`) on both\n * instances. This function is typically invoked when form directive is being initialized.\n *\n * @param control Form control instance that should be linked.\n * @param dir Directive that should be linked with a given control.\n */\nfunction setUpControl(control, dir) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!control)\n _throwError(dir, 'Cannot find control with');\n if (!dir.valueAccessor)\n _throwError(dir, 'No value accessor for form control with');\n }\n setUpValidators(control, dir);\n dir.valueAccessor.writeValue(control.value);\n setUpViewChangePipeline(control, dir);\n setUpModelChangePipeline(control, dir);\n setUpBlurPipeline(control, dir);\n setUpDisabledChangeHandler(control, dir);\n}\n/**\n * Reverts configuration performed by the `setUpControl` control function.\n * Effectively disconnects form control with a given form directive.\n * This function is typically invoked when corresponding form directive is being destroyed.\n *\n * @param control Form control which should be cleaned up.\n * @param dir Directive that should be disconnected from a given control.\n * @param validateControlPresenceOnChange Flag that indicates whether onChange handler should\n * contain asserts to verify that it's not called once directive is destroyed. We need this flag\n * to avoid potentially breaking changes caused by better control cleanup introduced in #39235.\n */\nfunction cleanUpControl(control, dir, validateControlPresenceOnChange = true) {\n const noop = () => {\n if (validateControlPresenceOnChange && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n _noControlError(dir);\n }\n };\n // The `valueAccessor` field is typically defined on FromControl and FormControlName directive\n // instances and there is a logic in `selectValueAccessor` function that throws if it's not the\n // case. We still check the presence of `valueAccessor` before invoking its methods to make sure\n // that cleanup works correctly if app code or tests are setup to ignore the error thrown from\n // `selectValueAccessor`. See https://github.com/angular/angular/issues/40521.\n if (dir.valueAccessor) {\n dir.valueAccessor.registerOnChange(noop);\n dir.valueAccessor.registerOnTouched(noop);\n }\n cleanUpValidators(control, dir);\n if (control) {\n dir._invokeOnDestroyCallbacks();\n control._registerOnCollectionChange(() => { });\n }\n}\nfunction registerOnValidatorChange(validators, onChange) {\n validators.forEach((validator) => {\n if (validator.registerOnValidatorChange)\n validator.registerOnValidatorChange(onChange);\n });\n}\n/**\n * Sets up disabled change handler function on a given form control if ControlValueAccessor\n * associated with a given directive instance supports the `setDisabledState` call.\n *\n * @param control Form control where disabled change handler should be setup.\n * @param dir Corresponding directive instance associated with this control.\n */\nfunction setUpDisabledChangeHandler(control, dir) {\n if (dir.valueAccessor.setDisabledState) {\n const onDisabledChange = (isDisabled) => {\n dir.valueAccessor.setDisabledState(isDisabled);\n };\n control.registerOnDisabledChange(onDisabledChange);\n // Register a callback function to cleanup disabled change handler\n // from a control instance when a directive is destroyed.\n dir._registerOnDestroy(() => {\n control._unregisterOnDisabledChange(onDisabledChange);\n });\n }\n}\n/**\n * Sets up sync and async directive validators on provided form control.\n * This function merges validators from the directive into the validators of the control.\n *\n * @param control Form control where directive validators should be setup.\n * @param dir Directive instance that contains validators to be setup.\n */\nfunction setUpValidators(control, dir) {\n const validators = getControlValidators(control);\n if (dir.validator !== null) {\n control.setValidators(mergeValidators(validators, dir.validator));\n }\n else if (typeof validators === 'function') {\n // If sync validators are represented by a single validator function, we force the\n // `Validators.compose` call to happen by executing the `setValidators` function with\n // an array that contains that function. We need this to avoid possible discrepancies in\n // validators behavior, so sync validators are always processed by the `Validators.compose`.\n // Note: we should consider moving this logic inside the `setValidators` function itself, so we\n // have consistent behavior on AbstractControl API level. The same applies to the async\n // validators logic below.\n control.setValidators([validators]);\n }\n const asyncValidators = getControlAsyncValidators(control);\n if (dir.asyncValidator !== null) {\n control.setAsyncValidators(mergeValidators(asyncValidators, dir.asyncValidator));\n }\n else if (typeof asyncValidators === 'function') {\n control.setAsyncValidators([asyncValidators]);\n }\n // Re-run validation when validator binding changes, e.g. minlength=3 -> minlength=4\n const onValidatorChange = () => control.updateValueAndValidity();\n registerOnValidatorChange(dir._rawValidators, onValidatorChange);\n registerOnValidatorChange(dir._rawAsyncValidators, onValidatorChange);\n}\n/**\n * Cleans up sync and async directive validators on provided form control.\n * This function reverts the setup performed by the `setUpValidators` function, i.e.\n * removes directive-specific validators from a given control instance.\n *\n * @param control Form control from where directive validators should be removed.\n * @param dir Directive instance that contains validators to be removed.\n * @returns true if a control was updated as a result of this action.\n */\nfunction cleanUpValidators(control, dir) {\n let isControlUpdated = false;\n if (control !== null) {\n if (dir.validator !== null) {\n const validators = getControlValidators(control);\n if (Array.isArray(validators) && validators.length > 0) {\n // Filter out directive validator function.\n const updatedValidators = validators.filter((validator) => validator !== dir.validator);\n if (updatedValidators.length !== validators.length) {\n isControlUpdated = true;\n control.setValidators(updatedValidators);\n }\n }\n }\n if (dir.asyncValidator !== null) {\n const asyncValidators = getControlAsyncValidators(control);\n if (Array.isArray(asyncValidators) && asyncValidators.length > 0) {\n // Filter out directive async validator function.\n const updatedAsyncValidators = asyncValidators.filter((asyncValidator) => asyncValidator !== dir.asyncValidator);\n if (updatedAsyncValidators.length !== asyncValidators.length) {\n isControlUpdated = true;\n control.setAsyncValidators(updatedAsyncValidators);\n }\n }\n }\n }\n // Clear onValidatorChange callbacks by providing a noop function.\n const noop = () => { };\n registerOnValidatorChange(dir._rawValidators, noop);\n registerOnValidatorChange(dir._rawAsyncValidators, noop);\n return isControlUpdated;\n}\nfunction setUpViewChangePipeline(control, dir) {\n dir.valueAccessor.registerOnChange((newValue) => {\n control._pendingValue = newValue;\n control._pendingChange = true;\n control._pendingDirty = true;\n if (control.updateOn === 'change')\n updateControl(control, dir);\n });\n}\nfunction setUpBlurPipeline(control, dir) {\n dir.valueAccessor.registerOnTouched(() => {\n control._pendingTouched = true;\n if (control.updateOn === 'blur' && control._pendingChange)\n updateControl(control, dir);\n if (control.updateOn !== 'submit')\n control.markAsTouched();\n });\n}\nfunction updateControl(control, dir) {\n if (control._pendingDirty)\n control.markAsDirty();\n control.setValue(control._pendingValue, { emitModelToViewChange: false });\n dir.viewToModelUpdate(control._pendingValue);\n control._pendingChange = false;\n}\nfunction setUpModelChangePipeline(control, dir) {\n const onChange = (newValue, emitModelEvent) => {\n // control -> view\n dir.valueAccessor.writeValue(newValue);\n // control -> ngModel\n if (emitModelEvent)\n dir.viewToModelUpdate(newValue);\n };\n control.registerOnChange(onChange);\n // Register a callback function to cleanup onChange handler\n // from a control instance when a directive is destroyed.\n dir._registerOnDestroy(() => {\n control._unregisterOnChange(onChange);\n });\n}\n/**\n * Links a FormGroup or FormArray instance and corresponding Form directive by setting up validators\n * present in the view.\n *\n * @param control FormGroup or FormArray instance that should be linked.\n * @param dir Directive that provides view validators.\n */\nfunction setUpFormContainer(control, dir) {\n if (control == null && (typeof ngDevMode === 'undefined' || ngDevMode))\n _throwError(dir, 'Cannot find control with');\n setUpValidators(control, dir);\n}\n/**\n * Reverts the setup performed by the `setUpFormContainer` function.\n *\n * @param control FormGroup or FormArray instance that should be cleaned up.\n * @param dir Directive that provided view validators.\n * @returns true if a control was updated as a result of this action.\n */\nfunction cleanUpFormContainer(control, dir) {\n return cleanUpValidators(control, dir);\n}\nfunction _noControlError(dir) {\n return _throwError(dir, 'There is no FormControl instance attached to form control element with');\n}\nfunction _throwError(dir, message) {\n const messageEnd = _describeControlLocation(dir);\n throw new Error(`${message} ${messageEnd}`);\n}\nfunction _describeControlLocation(dir) {\n const path = dir.path;\n if (path && path.length > 1)\n return `path: '${path.join(' -> ')}'`;\n if (path === null || path === void 0 ? void 0 : path[0])\n return `name: '${path}'`;\n return 'unspecified name attribute';\n}\nfunction _throwInvalidValueAccessorError(dir) {\n const loc = _describeControlLocation(dir);\n throw new Error(`Value accessor was not provided as an array for form control with ${loc}. ` +\n `Check that the \\`NG_VALUE_ACCESSOR\\` token is configured as a \\`multi: true\\` provider.`);\n}\nfunction isPropertyUpdated(changes, viewModel) {\n if (!changes.hasOwnProperty('model'))\n return false;\n const change = changes['model'];\n if (change.isFirstChange())\n return true;\n return !Object.is(viewModel, change.currentValue);\n}\nfunction isBuiltInAccessor(valueAccessor) {\n // Check if a given value accessor is an instance of a class that directly extends\n // `BuiltInControlValueAccessor` one.\n return Object.getPrototypeOf(valueAccessor.constructor) === BuiltInControlValueAccessor;\n}\nfunction syncPendingControls(form, directives) {\n form._syncPendingControls();\n directives.forEach((dir) => {\n const control = dir.control;\n if (control.updateOn === 'submit' && control._pendingChange) {\n dir.viewToModelUpdate(control._pendingValue);\n control._pendingChange = false;\n }\n });\n}\n// TODO: vsavkin remove it once https://github.com/angular/angular/issues/3011 is implemented\nfunction selectValueAccessor(dir, valueAccessors) {\n if (!valueAccessors)\n return null;\n if (!Array.isArray(valueAccessors) && (typeof ngDevMode === 'undefined' || ngDevMode))\n _throwInvalidValueAccessorError(dir);\n let defaultAccessor = undefined;\n let builtinAccessor = undefined;\n let customAccessor = undefined;\n valueAccessors.forEach((v) => {\n if (v.constructor === DefaultValueAccessor) {\n defaultAccessor = v;\n }\n else if (isBuiltInAccessor(v)) {\n if (builtinAccessor && (typeof ngDevMode === 'undefined' || ngDevMode))\n _throwError(dir, 'More than one built-in value accessor matches form control with');\n builtinAccessor = v;\n }\n else {\n if (customAccessor && (typeof ngDevMode === 'undefined' || ngDevMode))\n _throwError(dir, 'More than one custom value accessor matches form control with');\n customAccessor = v;\n }\n });\n if (customAccessor)\n return customAccessor;\n if (builtinAccessor)\n return builtinAccessor;\n if (defaultAccessor)\n return defaultAccessor;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _throwError(dir, 'No valid value accessor for form control with');\n }\n return null;\n}\nfunction removeListItem(list, el) {\n const index = list.indexOf(el);\n if (index > -1)\n list.splice(index, 1);\n}\n// TODO(kara): remove after deprecation period\nfunction _ngModelWarning(name, type, instance, warningConfig) {\n if (warningConfig === 'never')\n return;\n if (((warningConfig === null || warningConfig === 'once') && !type._ngModelWarningSentOnce) ||\n (warningConfig === 'always' && !instance._ngModelWarningSent)) {\n console.warn(ngModelWarning(name));\n type._ngModelWarningSentOnce = true;\n instance._ngModelWarningSent = true;\n }\n}\n\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 */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * Reports that a FormControl is valid, meaning that no errors exist in the input value.\n *\n * @see `status`\n */\nconst VALID = 'VALID';\n/**\n * Reports that a FormControl is invalid, meaning that an error exists in the input value.\n *\n * @see `status`\n */\nconst INVALID = 'INVALID';\n/**\n * Reports that a FormControl is pending, meaning that that async validation is occurring and\n * errors are not yet available for the input value.\n *\n * @see `markAsPending`\n * @see `status`\n */\nconst PENDING = 'PENDING';\n/**\n * Reports that a FormControl is disabled, meaning that the control is exempt from ancestor\n * calculations of validity or value.\n *\n * @see `markAsDisabled`\n * @see `status`\n */\nconst DISABLED = 'DISABLED';\nfunction _find(control, path, delimiter) {\n if (path == null)\n return null;\n if (!Array.isArray(path)) {\n path = path.split(delimiter);\n }\n if (Array.isArray(path) && path.length === 0)\n return null;\n // Not using Array.reduce here due to a Chrome 80 bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\n let controlToFind = control;\n path.forEach((name) => {\n if (isFormGroup(controlToFind)) {\n controlToFind = controlToFind.controls.hasOwnProperty(name) ?\n controlToFind.controls[name] :\n null;\n }\n else if (isFormArray(controlToFind)) {\n controlToFind = controlToFind.at(name) || null;\n }\n else {\n controlToFind = null;\n }\n });\n return controlToFind;\n}\n/**\n * Gets validators from either an options object or given validators.\n */\nfunction pickValidators(validatorOrOpts) {\n return (isOptionsObj(validatorOrOpts) ? validatorOrOpts.validators : validatorOrOpts) || null;\n}\n/**\n * Creates validator function by combining provided validators.\n */\nfunction coerceToValidator(validator) {\n return Array.isArray(validator) ? composeValidators(validator) : validator || null;\n}\n/**\n * Gets async validators from either an options object or given validators.\n */\nfunction pickAsyncValidators(asyncValidator, validatorOrOpts) {\n return (isOptionsObj(validatorOrOpts) ? validatorOrOpts.asyncValidators : asyncValidator) || null;\n}\n/**\n * Creates async validator function by combining provided async validators.\n */\nfunction coerceToAsyncValidator(asyncValidator) {\n return Array.isArray(asyncValidator) ? composeAsyncValidators(asyncValidator) :\n asyncValidator || null;\n}\nfunction isOptionsObj(validatorOrOpts) {\n return validatorOrOpts != null && !Array.isArray(validatorOrOpts) &&\n typeof validatorOrOpts === 'object';\n}\nconst isFormControl = (control) => control instanceof FormControl;\nconst isFormGroup = (control) => control instanceof FormGroup;\nconst isFormArray = (control) => control instanceof FormArray;\nfunction getRawValue(control) {\n return isFormControl(control) ? control.value : control.getRawValue();\n}\nfunction assertControlPresent(parent, key) {\n const isGroup = isFormGroup(parent);\n const controls = parent.controls;\n const collection = isGroup ? Object.keys(controls) : controls;\n if (!collection.length) {\n throw new ɵRuntimeError(1000 /* NO_CONTROLS */, NG_DEV_MODE ? noControlsError(isGroup) : '');\n }\n if (!controls[key]) {\n throw new ɵRuntimeError(1001 /* MISSING_CONTROL */, NG_DEV_MODE ? missingControlError(isGroup, key) : '');\n }\n}\nfunction assertAllValuesPresent(control, value) {\n const isGroup = isFormGroup(control);\n control._forEachChild((_, key) => {\n if (value[key] === undefined) {\n throw new ɵRuntimeError(1002 /* MISSING_CONTROL_VALUE */, NG_DEV_MODE ? missingControlValueError(isGroup, key) : '');\n }\n });\n}\n/**\n * This is the base class for `FormControl`, `FormGroup`, and `FormArray`.\n *\n * It provides some of the shared behavior that all controls and groups of controls have, like\n * running validators, calculating status, and resetting state. It also defines the properties\n * that are shared between all sub-classes, like `value`, `valid`, and `dirty`. It shouldn't be\n * instantiated directly.\n *\n * @see [Forms Guide](/guide/forms)\n * @see [Reactive Forms Guide](/guide/reactive-forms)\n * @see [Dynamic Forms Guide](/guide/dynamic-form)\n *\n * @publicApi\n */\nclass AbstractControl {\n /**\n * Initialize the AbstractControl instance.\n *\n * @param validators The function or array of functions that is used to determine the validity of\n * this control synchronously.\n * @param asyncValidators The function or array of functions that is used to determine validity of\n * this control asynchronously.\n */\n constructor(validators, asyncValidators) {\n /** @internal */\n this._pendingDirty = false;\n /**\n * Indicates that a control has its own pending asynchronous validation in progress.\n *\n * @internal\n */\n this._hasOwnPendingAsyncValidator = false;\n /** @internal */\n this._pendingTouched = false;\n /** @internal */\n this._onCollectionChange = () => { };\n this._parent = null;\n /**\n * A control is `pristine` if the user has not yet changed\n * the value in the UI.\n *\n * @returns True if the user has not yet changed the value in the UI; compare `dirty`.\n * Programmatic changes to a control's value do not mark it dirty.\n */\n this.pristine = true;\n /**\n * True if the control is marked as `touched`.\n *\n * A control is marked `touched` once the user has triggered\n * a `blur` event on it.\n */\n this.touched = false;\n /** @internal */\n this._onDisabledChange = [];\n this._rawValidators = validators;\n this._rawAsyncValidators = asyncValidators;\n this._composedValidatorFn = coerceToValidator(this._rawValidators);\n this._composedAsyncValidatorFn = coerceToAsyncValidator(this._rawAsyncValidators);\n }\n /**\n * Returns the function that is used to determine the validity of this control synchronously.\n * If multiple validators have been added, this will be a single composed function.\n * See `Validators.compose()` for additional information.\n */\n get validator() {\n return this._composedValidatorFn;\n }\n set validator(validatorFn) {\n this._rawValidators = this._composedValidatorFn = validatorFn;\n }\n /**\n * Returns the function that is used to determine the validity of this control asynchronously.\n * If multiple validators have been added, this will be a single composed function.\n * See `Validators.compose()` for additional information.\n */\n get asyncValidator() {\n return this._composedAsyncValidatorFn;\n }\n set asyncValidator(asyncValidatorFn) {\n this._rawAsyncValidators = this._composedAsyncValidatorFn = asyncValidatorFn;\n }\n /**\n * The parent control.\n */\n get parent() {\n return this._parent;\n }\n /**\n * A control is `valid` when its `status` is `VALID`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if the control has passed all of its validation tests,\n * false otherwise.\n */\n get valid() {\n return this.status === VALID;\n }\n /**\n * A control is `invalid` when its `status` is `INVALID`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if this control has failed one or more of its validation checks,\n * false otherwise.\n */\n get invalid() {\n return this.status === INVALID;\n }\n /**\n * A control is `pending` when its `status` is `PENDING`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if this control is in the process of conducting a validation check,\n * false otherwise.\n */\n get pending() {\n return this.status == PENDING;\n }\n /**\n * A control is `disabled` when its `status` is `DISABLED`.\n *\n * Disabled controls are exempt from validation checks and\n * are not included in the aggregate value of their ancestor\n * controls.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if the control is disabled, false otherwise.\n */\n get disabled() {\n return this.status === DISABLED;\n }\n /**\n * A control is `enabled` as long as its `status` is not `DISABLED`.\n *\n * @returns True if the control has any status other than 'DISABLED',\n * false if the status is 'DISABLED'.\n *\n * @see {@link AbstractControl.status}\n *\n */\n get enabled() {\n return this.status !== DISABLED;\n }\n /**\n * A control is `dirty` if the user has changed the value\n * in the UI.\n *\n * @returns True if the user has changed the value of this control in the UI; compare `pristine`.\n * Programmatic changes to a control's value do not mark it dirty.\n */\n get dirty() {\n return !this.pristine;\n }\n /**\n * True if the control has not been marked as touched\n *\n * A control is `untouched` if the user has not yet triggered\n * a `blur` event on it.\n */\n get untouched() {\n return !this.touched;\n }\n /**\n * Reports the update strategy of the `AbstractControl` (meaning\n * the event on which the control updates itself).\n * Possible values: `'change'` | `'blur'` | `'submit'`\n * Default value: `'change'`\n */\n get updateOn() {\n return this._updateOn ? this._updateOn : (this.parent ? this.parent.updateOn : 'change');\n }\n /**\n * Sets the synchronous validators that are active on this control. Calling\n * this overwrites any existing synchronous validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * If you want to add a new validator without affecting existing ones, consider\n * using `addValidators()` method instead.\n */\n setValidators(validators) {\n this._rawValidators = validators;\n this._composedValidatorFn = coerceToValidator(validators);\n }\n /**\n * Sets the asynchronous validators that are active on this control. Calling this\n * overwrites any existing asynchronous validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * If you want to add a new validator without affecting existing ones, consider\n * using `addAsyncValidators()` method instead.\n */\n setAsyncValidators(validators) {\n this._rawAsyncValidators = validators;\n this._composedAsyncValidatorFn = coerceToAsyncValidator(validators);\n }\n /**\n * Add a synchronous validator or validators to this control, without affecting other validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * Adding a validator that already exists will have no effect. If duplicate validator functions\n * are present in the `validators` array, only the first instance would be added to a form\n * control.\n *\n * @param validators The new validator function or functions to add to this control.\n */\n addValidators(validators) {\n this.setValidators(addValidators(validators, this._rawValidators));\n }\n /**\n * Add an asynchronous validator or validators to this control, without affecting other\n * validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * Adding a validator that already exists will have no effect.\n *\n * @param validators The new asynchronous validator function or functions to add to this control.\n */\n addAsyncValidators(validators) {\n this.setAsyncValidators(addValidators(validators, this._rawAsyncValidators));\n }\n /**\n * Remove a synchronous validator from this control, without affecting other validators.\n * Validators are compared by function reference; you must pass a reference to the exact same\n * validator function as the one that was originally set. If a provided validator is not found,\n * it is ignored.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * @param validators The validator or validators to remove.\n */\n removeValidators(validators) {\n this.setValidators(removeValidators(validators, this._rawValidators));\n }\n /**\n * Remove an asynchronous validator from this control, without affecting other validators.\n * Validators are compared by function reference; you must pass a reference to the exact same\n * validator function as the one that was originally set. If a provided validator is not found, it\n * is ignored.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * @param validators The asynchronous validator or validators to remove.\n */\n removeAsyncValidators(validators) {\n this.setAsyncValidators(removeValidators(validators, this._rawAsyncValidators));\n }\n /**\n * Check whether a synchronous validator function is present on this control. The provided\n * validator must be a reference to the exact same function that was provided.\n *\n * @param validator The validator to check for presence. Compared by function reference.\n * @returns Whether the provided validator was found on this control.\n */\n hasValidator(validator) {\n return hasValidator(this._rawValidators, validator);\n }\n /**\n * Check whether an asynchronous validator function is present on this control. The provided\n * validator must be a reference to the exact same function that was provided.\n *\n * @param validator The asynchronous validator to check for presence. Compared by function\n * reference.\n * @returns Whether the provided asynchronous validator was found on this control.\n */\n hasAsyncValidator(validator) {\n return hasValidator(this._rawAsyncValidators, validator);\n }\n /**\n * Empties out the synchronous validator list.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n */\n clearValidators() {\n this.validator = null;\n }\n /**\n * Empties out the async validator list.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n */\n clearAsyncValidators() {\n this.asyncValidator = null;\n }\n /**\n * Marks the control as `touched`. A control is touched by focus and\n * blur events that do not change the value.\n *\n * @see `markAsUntouched()`\n * @see `markAsDirty()`\n * @see `markAsPristine()`\n *\n * @param opts Configuration options that determine how the control propagates changes\n * and emits events after marking is applied.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n */\n markAsTouched(opts = {}) {\n this.touched = true;\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsTouched(opts);\n }\n }\n /**\n * Marks the control and all its descendant controls as `touched`.\n * @see `markAsTouched()`\n */\n markAllAsTouched() {\n this.markAsTouched({ onlySelf: true });\n this._forEachChild((control) => control.markAllAsTouched());\n }\n /**\n * Marks the control as `untouched`.\n *\n * If the control has any children, also marks all children as `untouched`\n * and recalculates the `touched` status of all parent controls.\n *\n * @see `markAsTouched()`\n * @see `markAsDirty()`\n * @see `markAsPristine()`\n *\n * @param opts Configuration options that determine how the control propagates changes\n * and emits events after the marking is applied.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n */\n markAsUntouched(opts = {}) {\n this.touched = false;\n this._pendingTouched = false;\n this._forEachChild((control) => {\n control.markAsUntouched({ onlySelf: true });\n });\n if (this._parent && !opts.onlySelf) {\n this._parent._updateTouched(opts);\n }\n }\n /**\n * Marks the control as `dirty`. A control becomes dirty when\n * the control's value is changed through the UI; compare `markAsTouched`.\n *\n * @see `markAsTouched()`\n * @see `markAsUntouched()`\n * @see `markAsPristine()`\n *\n * @param opts Configuration options that determine how the control propagates changes\n * and emits events after marking is applied.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n */\n markAsDirty(opts = {}) {\n this.pristine = false;\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsDirty(opts);\n }\n }\n /**\n * Marks the control as `pristine`.\n *\n * If the control has any children, marks all children as `pristine`,\n * and recalculates the `pristine` status of all parent\n * controls.\n *\n * @see `markAsTouched()`\n * @see `markAsUntouched()`\n * @see `markAsDirty()`\n *\n * @param opts Configuration options that determine how the control emits events after\n * marking is applied.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n */\n markAsPristine(opts = {}) {\n this.pristine = true;\n this._pendingDirty = false;\n this._forEachChild((control) => {\n control.markAsPristine({ onlySelf: true });\n });\n if (this._parent && !opts.onlySelf) {\n this._parent._updatePristine(opts);\n }\n }\n /**\n * Marks the control as `pending`.\n *\n * A control is pending while the control performs async validation.\n *\n * @see {@link AbstractControl.status}\n *\n * @param opts Configuration options that determine how the control propagates changes and\n * emits events after marking is applied.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), the `statusChanges`\n * observable emits an event with the latest status the control is marked pending.\n * When false, no events are emitted.\n *\n */\n markAsPending(opts = {}) {\n this.status = PENDING;\n if (opts.emitEvent !== false) {\n this.statusChanges.emit(this.status);\n }\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsPending(opts);\n }\n }\n /**\n * Disables the control. This means the control is exempt from validation checks and\n * excluded from the aggregate value of any parent. Its status is `DISABLED`.\n *\n * If the control has children, all children are also disabled.\n *\n * @see {@link AbstractControl.status}\n *\n * @param opts Configuration options that determine how the control propagates\n * changes and emits events after the control is disabled.\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is disabled.\n * When false, no events are emitted.\n */\n disable(opts = {}) {\n // If parent has been marked artificially dirty we don't want to re-calculate the\n // parent's dirtiness based on the children.\n const skipPristineCheck = this._parentMarkedDirty(opts.onlySelf);\n this.status = DISABLED;\n this.errors = null;\n this._forEachChild((control) => {\n control.disable(Object.assign(Object.assign({}, opts), { onlySelf: true }));\n });\n this._updateValue();\n if (opts.emitEvent !== false) {\n this.valueChanges.emit(this.value);\n this.statusChanges.emit(this.status);\n }\n this._updateAncestors(Object.assign(Object.assign({}, opts), { skipPristineCheck }));\n this._onDisabledChange.forEach((changeFn) => changeFn(true));\n }\n /**\n * Enables the control. This means the control is included in validation checks and\n * the aggregate value of its parent. Its status recalculates based on its value and\n * its validators.\n *\n * By default, if the control has children, all children are enabled.\n *\n * @see {@link AbstractControl.status}\n *\n * @param opts Configure options that control how the control propagates changes and\n * emits events when marked as untouched\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is enabled.\n * When false, no events are emitted.\n */\n enable(opts = {}) {\n // If parent has been marked artificially dirty we don't want to re-calculate the\n // parent's dirtiness based on the children.\n const skipPristineCheck = this._parentMarkedDirty(opts.onlySelf);\n this.status = VALID;\n this._forEachChild((control) => {\n control.enable(Object.assign(Object.assign({}, opts), { onlySelf: true }));\n });\n this.updateValueAndValidity({ onlySelf: true, emitEvent: opts.emitEvent });\n this._updateAncestors(Object.assign(Object.assign({}, opts), { skipPristineCheck }));\n this._onDisabledChange.forEach((changeFn) => changeFn(false));\n }\n _updateAncestors(opts) {\n if (this._parent && !opts.onlySelf) {\n this._parent.updateValueAndValidity(opts);\n if (!opts.skipPristineCheck) {\n this._parent._updatePristine();\n }\n this._parent._updateTouched();\n }\n }\n /**\n * @param parent Sets the parent of the control\n */\n setParent(parent) {\n this._parent = parent;\n }\n /**\n * Recalculates the value and validation status of the control.\n *\n * By default, it also updates the value and validity of its ancestors.\n *\n * @param opts Configuration options determine how the control propagates changes and emits events\n * after updates and validity checks are applied.\n * * `onlySelf`: When true, only update this control. When false or not supplied,\n * update all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is updated.\n * When false, no events are emitted.\n */\n updateValueAndValidity(opts = {}) {\n this._setInitialStatus();\n this._updateValue();\n if (this.enabled) {\n this._cancelExistingSubscription();\n this.errors = this._runValidator();\n this.status = this._calculateStatus();\n if (this.status === VALID || this.status === PENDING) {\n this._runAsyncValidator(opts.emitEvent);\n }\n }\n if (opts.emitEvent !== false) {\n this.valueChanges.emit(this.value);\n this.statusChanges.emit(this.status);\n }\n if (this._parent && !opts.onlySelf) {\n this._parent.updateValueAndValidity(opts);\n }\n }\n /** @internal */\n _updateTreeValidity(opts = { emitEvent: true }) {\n this._forEachChild((ctrl) => ctrl._updateTreeValidity(opts));\n this.updateValueAndValidity({ onlySelf: true, emitEvent: opts.emitEvent });\n }\n _setInitialStatus() {\n this.status = this._allControlsDisabled() ? DISABLED : VALID;\n }\n _runValidator() {\n return this.validator ? this.validator(this) : null;\n }\n _runAsyncValidator(emitEvent) {\n if (this.asyncValidator) {\n this.status = PENDING;\n this._hasOwnPendingAsyncValidator = true;\n const obs = toObservable(this.asyncValidator(this));\n this._asyncValidationSubscription = obs.subscribe((errors) => {\n this._hasOwnPendingAsyncValidator = false;\n // This will trigger the recalculation of the validation status, which depends on\n // the state of the asynchronous validation (whether it is in progress or not). So, it is\n // necessary that we have updated the `_hasOwnPendingAsyncValidator` boolean flag first.\n this.setErrors(errors, { emitEvent });\n });\n }\n }\n _cancelExistingSubscription() {\n if (this._asyncValidationSubscription) {\n this._asyncValidationSubscription.unsubscribe();\n this._hasOwnPendingAsyncValidator = false;\n }\n }\n /**\n * Sets errors on a form control when running validations manually, rather than automatically.\n *\n * Calling `setErrors` also updates the validity of the parent control.\n *\n * @usageNotes\n *\n * ### Manually set the errors for a control\n *\n * ```\n * const login = new FormControl('someLogin');\n * login.setErrors({\n * notUnique: true\n * });\n *\n * expect(login.valid).toEqual(false);\n * expect(login.errors).toEqual({ notUnique: true });\n *\n * login.setValue('someOtherLogin');\n *\n * expect(login.valid).toEqual(true);\n * ```\n */\n setErrors(errors, opts = {}) {\n this.errors = errors;\n this._updateControlsErrors(opts.emitEvent !== false);\n }\n /**\n * Retrieves a child control given the control's name or path.\n *\n * @param path A dot-delimited string or array of string/number values that define the path to the\n * control.\n *\n * @usageNotes\n * ### Retrieve a nested control\n *\n * For example, to get a `name` control nested within a `person` sub-group:\n *\n * * `this.form.get('person.name');`\n *\n * -OR-\n *\n * * `this.form.get(['person', 'name']);`\n *\n * ### Retrieve a control in a FormArray\n *\n * When accessing an element inside a FormArray, you can use an element index.\n * For example, to get a `price` control from the first element in an `items` array you can use:\n *\n * * `this.form.get('items.0.price');`\n *\n * -OR-\n *\n * * `this.form.get(['items', 0, 'price']);`\n */\n get(path) {\n return _find(this, path, '.');\n }\n /**\n * @description\n * Reports error data for the control with the given path.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n getError(errorCode, path) {\n const control = path ? this.get(path) : this;\n return control && control.errors ? control.errors[errorCode] : null;\n }\n /**\n * @description\n * Reports whether the control with the given path has the error specified.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * If no path is given, this method checks for the error on the current control.\n *\n * @returns whether the given error is present in the control at the given path.\n *\n * If the control is not present, false is returned.\n */\n hasError(errorCode, path) {\n return !!this.getError(errorCode, path);\n }\n /**\n * Retrieves the top-level ancestor of this control.\n */\n get root() {\n let x = this;\n while (x._parent) {\n x = x._parent;\n }\n return x;\n }\n /** @internal */\n _updateControlsErrors(emitEvent) {\n this.status = this._calculateStatus();\n if (emitEvent) {\n this.statusChanges.emit(this.status);\n }\n if (this._parent) {\n this._parent._updateControlsErrors(emitEvent);\n }\n }\n /** @internal */\n _initObservables() {\n this.valueChanges = new EventEmitter();\n this.statusChanges = new EventEmitter();\n }\n _calculateStatus() {\n if (this._allControlsDisabled())\n return DISABLED;\n if (this.errors)\n return INVALID;\n if (this._hasOwnPendingAsyncValidator || this._anyControlsHaveStatus(PENDING))\n return PENDING;\n if (this._anyControlsHaveStatus(INVALID))\n return INVALID;\n return VALID;\n }\n /** @internal */\n _anyControlsHaveStatus(status) {\n return this._anyControls((control) => control.status === status);\n }\n /** @internal */\n _anyControlsDirty() {\n return this._anyControls((control) => control.dirty);\n }\n /** @internal */\n _anyControlsTouched() {\n return this._anyControls((control) => control.touched);\n }\n /** @internal */\n _updatePristine(opts = {}) {\n this.pristine = !this._anyControlsDirty();\n if (this._parent && !opts.onlySelf) {\n this._parent._updatePristine(opts);\n }\n }\n /** @internal */\n _updateTouched(opts = {}) {\n this.touched = this._anyControlsTouched();\n if (this._parent && !opts.onlySelf) {\n this._parent._updateTouched(opts);\n }\n }\n /** @internal */\n _isBoxedValue(formState) {\n return typeof formState === 'object' && formState !== null &&\n Object.keys(formState).length === 2 && 'value' in formState && 'disabled' in formState;\n }\n /** @internal */\n _registerOnCollectionChange(fn) {\n this._onCollectionChange = fn;\n }\n /** @internal */\n _setUpdateStrategy(opts) {\n if (isOptionsObj(opts) && opts.updateOn != null) {\n this._updateOn = opts.updateOn;\n }\n }\n /**\n * Check to see if parent has been marked artificially dirty.\n *\n * @internal\n */\n _parentMarkedDirty(onlySelf) {\n const parentDirty = this._parent && this._parent.dirty;\n return !onlySelf && !!parentDirty && !this._parent._anyControlsDirty();\n }\n}\n/**\n * Tracks the value and validation status of an individual form control.\n *\n * This is one of the three fundamental building blocks of Angular forms, along with\n * `FormGroup` and `FormArray`. It extends the `AbstractControl` class that\n * implements most of the base functionality for accessing the value, validation status,\n * user interactions and events. See [usage examples below](#usage-notes).\n *\n * @see `AbstractControl`\n * @see [Reactive Forms Guide](guide/reactive-forms)\n * @see [Usage Notes](#usage-notes)\n *\n * @usageNotes\n *\n * ### Initializing Form Controls\n *\n * Instantiate a `FormControl`, with an initial value.\n *\n * ```ts\n * const control = new FormControl('some value');\n * console.log(control.value); // 'some value'\n *```\n *\n * The following example initializes the control with a form state object. The `value`\n * and `disabled` keys are required in this case.\n *\n * ```ts\n * const control = new FormControl({ value: 'n/a', disabled: true });\n * console.log(control.value); // 'n/a'\n * console.log(control.status); // 'DISABLED'\n * ```\n *\n * The following example initializes the control with a synchronous validator.\n *\n * ```ts\n * const control = new FormControl('', Validators.required);\n * console.log(control.value); // ''\n * console.log(control.status); // 'INVALID'\n * ```\n *\n * The following example initializes the control using an options object.\n *\n * ```ts\n * const control = new FormControl('', {\n * validators: Validators.required,\n * asyncValidators: myAsyncValidator\n * });\n * ```\n *\n * ### Configure the control to update on a blur event\n *\n * Set the `updateOn` option to `'blur'` to update on the blur `event`.\n *\n * ```ts\n * const control = new FormControl('', { updateOn: 'blur' });\n * ```\n *\n * ### Configure the control to update on a submit event\n *\n * Set the `updateOn` option to `'submit'` to update on a submit `event`.\n *\n * ```ts\n * const control = new FormControl('', { updateOn: 'submit' });\n * ```\n *\n * ### Reset the control back to an initial value\n *\n * You reset to a specific form state by passing through a standalone\n * value or a form state object that contains both a value and a disabled state\n * (these are the only two properties that cannot be calculated).\n *\n * ```ts\n * const control = new FormControl('Nancy');\n *\n * console.log(control.value); // 'Nancy'\n *\n * control.reset('Drew');\n *\n * console.log(control.value); // 'Drew'\n * ```\n *\n * ### Reset the control back to an initial value and disabled\n *\n * ```\n * const control = new FormControl('Nancy');\n *\n * console.log(control.value); // 'Nancy'\n * console.log(control.status); // 'VALID'\n *\n * control.reset({ value: 'Drew', disabled: true });\n *\n * console.log(control.value); // 'Drew'\n * console.log(control.status); // 'DISABLED'\n * ```\n *\n * @publicApi\n */\nclass FormControl extends AbstractControl {\n /**\n * Creates a new `FormControl` instance.\n *\n * @param formState Initializes the control with an initial value,\n * or an object that defines the initial value and disabled state.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains validation functions\n * and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions\n *\n */\n constructor(formState = null, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n /**\n * The default value of this FormControl, used whenever the control is reset without an explicit\n * value. See {@link FormControlOptions#initialValueIsDefault} for more information on configuring\n * a default value.\n * @publicApi\n */\n this.defaultValue = null;\n /** @internal */\n this._onChange = [];\n /** @internal */\n this._pendingChange = false;\n this._applyFormState(formState);\n this._setUpdateStrategy(validatorOrOpts);\n this._initObservables();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`.\n // The status should be broadcasted via the `statusChanges` observable, so we set `emitEvent`\n // to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n if (isOptionsObj(validatorOrOpts) && validatorOrOpts.initialValueIsDefault) {\n if (this._isBoxedValue(formState)) {\n this.defaultValue = formState.value;\n }\n else {\n this.defaultValue = formState;\n }\n }\n }\n /**\n * Sets a new value for the form control.\n *\n * @param value The new value for the control.\n * @param options Configuration options that determine how the control propagates changes\n * and emits events when the value changes.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control value is updated.\n * When false, no events are emitted.\n * * `emitModelToViewChange`: When true or not supplied (the default), each change triggers an\n * `onChange` event to\n * update the view.\n * * `emitViewToModelChange`: When true or not supplied (the default), each change triggers an\n * `ngModelChange`\n * event to update the model.\n *\n */\n setValue(value, options = {}) {\n this.value = this._pendingValue = value;\n if (this._onChange.length && options.emitModelToViewChange !== false) {\n this._onChange.forEach((changeFn) => changeFn(this.value, options.emitViewToModelChange !== false));\n }\n this.updateValueAndValidity(options);\n }\n /**\n * Patches the value of a control.\n *\n * This function is functionally the same as {@link FormControl#setValue setValue} at this level.\n * It exists for symmetry with {@link FormGroup#patchValue patchValue} on `FormGroups` and\n * `FormArrays`, where it does behave differently.\n *\n * @see `setValue` for options\n */\n patchValue(value, options = {}) {\n this.setValue(value, options);\n }\n /**\n * Resets the form control, marking it `pristine` and `untouched`, and resetting\n * the value. The new value will be the provided value (if passed), `null`, or the initial value\n * if `initialValueIsDefault` was set in the constructor via {@link FormControlOptions}.\n *\n * ```ts\n * // By default, the control will reset to null.\n * const dog = new FormControl('spot');\n * dog.reset(); // dog.value is null\n *\n * // If this flag is set, the control will instead reset to the initial value.\n * const cat = new FormControl('tabby', {initialValueIsDefault: true});\n * cat.reset(); // cat.value is \"tabby\"\n *\n * // A value passed to reset always takes precedence.\n * const fish = new FormControl('finn', {initialValueIsDefault: true});\n * fish.reset('bubble'); // fish.value is \"bubble\"\n * ```\n *\n * @param formState Resets the control with an initial value,\n * or an object that defines the initial value and disabled state.\n *\n * @param options Configuration options that determine how the control propagates changes\n * and emits events after the value changes.\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is reset.\n * When false, no events are emitted.\n *\n */\n reset(formState = this.defaultValue, options = {}) {\n this._applyFormState(formState);\n this.markAsPristine(options);\n this.markAsUntouched(options);\n this.setValue(this.value, options);\n this._pendingChange = false;\n }\n /**\n * @internal\n */\n _updateValue() { }\n /**\n * @internal\n */\n _anyControls(condition) {\n return false;\n }\n /**\n * @internal\n */\n _allControlsDisabled() {\n return this.disabled;\n }\n /**\n * Register a listener for change events.\n *\n * @param fn The method that is called when the value changes\n */\n registerOnChange(fn) {\n this._onChange.push(fn);\n }\n /**\n * Internal function to unregister a change events listener.\n * @internal\n */\n _unregisterOnChange(fn) {\n removeListItem(this._onChange, fn);\n }\n /**\n * Register a listener for disabled events.\n *\n * @param fn The method that is called when the disabled status changes.\n */\n registerOnDisabledChange(fn) {\n this._onDisabledChange.push(fn);\n }\n /**\n * Internal function to unregister a disabled event listener.\n * @internal\n */\n _unregisterOnDisabledChange(fn) {\n removeListItem(this._onDisabledChange, fn);\n }\n /**\n * @internal\n */\n _forEachChild(cb) { }\n /** @internal */\n _syncPendingControls() {\n if (this.updateOn === 'submit') {\n if (this._pendingDirty)\n this.markAsDirty();\n if (this._pendingTouched)\n this.markAsTouched();\n if (this._pendingChange) {\n this.setValue(this._pendingValue, { onlySelf: true, emitModelToViewChange: false });\n return true;\n }\n }\n return false;\n }\n _applyFormState(formState) {\n if (this._isBoxedValue(formState)) {\n this.value = this._pendingValue = formState.value;\n formState.disabled ? this.disable({ onlySelf: true, emitEvent: false }) :\n this.enable({ onlySelf: true, emitEvent: false });\n }\n else {\n this.value = this._pendingValue = formState;\n }\n }\n}\n/**\n * Tracks the value and validity state of a group of `FormControl` instances.\n *\n * A `FormGroup` aggregates the values of each child `FormControl` into one object,\n * with each control name as the key. It calculates its status by reducing the status values\n * of its children. For example, if one of the controls in a group is invalid, the entire\n * group becomes invalid.\n *\n * `FormGroup` is one of the three fundamental building blocks used to define forms in Angular,\n * along with `FormControl` and `FormArray`.\n *\n * When instantiating a `FormGroup`, pass in a collection of child controls as the first\n * argument. The key for each child registers the name for the control.\n *\n * @usageNotes\n *\n * ### Create a form group with 2 controls\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl('Nancy', Validators.minLength(2)),\n * last: new FormControl('Drew'),\n * });\n *\n * console.log(form.value); // {first: 'Nancy', last; 'Drew'}\n * console.log(form.status); // 'VALID'\n * ```\n *\n * ### Create a form group with a group-level validator\n *\n * You include group-level validators as the second arg, or group-level async\n * validators as the third arg. These come in handy when you want to perform validation\n * that considers the value of more than one child control.\n *\n * ```\n * const form = new FormGroup({\n * password: new FormControl('', Validators.minLength(2)),\n * passwordConfirm: new FormControl('', Validators.minLength(2)),\n * }, passwordMatchValidator);\n *\n *\n * function passwordMatchValidator(g: FormGroup) {\n * return g.get('password').value === g.get('passwordConfirm').value\n * ? null : {'mismatch': true};\n * }\n * ```\n *\n * Like `FormControl` instances, you choose to pass in\n * validators and async validators as part of an options object.\n *\n * ```\n * const form = new FormGroup({\n * password: new FormControl('')\n * passwordConfirm: new FormControl('')\n * }, { validators: passwordMatchValidator, asyncValidators: otherValidator });\n * ```\n *\n * ### Set the updateOn property for all controls in a form group\n *\n * The options object is used to set a default value for each child\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\n * group level, all child controls default to 'blur', unless the child\n * has explicitly specified a different `updateOn` value.\n *\n * ```ts\n * const c = new FormGroup({\n * one: new FormControl()\n * }, { updateOn: 'blur' });\n * ```\n *\n * @publicApi\n */\nclass FormGroup extends AbstractControl {\n /**\n * Creates a new `FormGroup` instance.\n *\n * @param controls A collection of child controls. The key for each child is the name\n * under which it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains validation functions\n * and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions\n *\n */\n constructor(controls, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n this.controls = controls;\n this._initObservables();\n this._setUpdateStrategy(validatorOrOpts);\n this._setUpControls();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`. The status should be broadcasted via the `statusChanges` observable,\n // so we set `emitEvent` to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n }\n /**\n * Registers a control with the group's list of controls.\n *\n * This method does not update the value or validity of the control.\n * Use {@link FormGroup#addControl addControl} instead.\n *\n * @param name The control name to register in the collection\n * @param control Provides the control for the given name\n */\n registerControl(name, control) {\n if (this.controls[name])\n return this.controls[name];\n this.controls[name] = control;\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n return control;\n }\n /**\n * Add a control to this group.\n *\n * If a control with a given name already exists, it would *not* be replaced with a new one.\n * If you want to replace an existing control, use the {@link FormGroup#setControl setControl}\n * method instead. This method also updates the value and validity of the control.\n *\n * @param name The control name to add to the collection\n * @param control Provides the control for the given name\n * @param options Specifies whether this FormGroup instance should emit events after a new\n * control is added.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * added. When false, no events are emitted.\n */\n addControl(name, control, options = {}) {\n this.registerControl(name, control);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n this._onCollectionChange();\n }\n /**\n * Remove a control from this group.\n *\n * This method also updates the value and validity of the control.\n *\n * @param name The control name to remove from the collection\n * @param options Specifies whether this FormGroup instance should emit events after a\n * control is removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * removed. When false, no events are emitted.\n */\n removeControl(name, options = {}) {\n if (this.controls[name])\n this.controls[name]._registerOnCollectionChange(() => { });\n delete (this.controls[name]);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n this._onCollectionChange();\n }\n /**\n * Replace an existing control.\n *\n * If a control with a given name does not exist in this `FormGroup`, it will be added.\n *\n * @param name The control name to replace in the collection\n * @param control Provides the control for the given name\n * @param options Specifies whether this FormGroup instance should emit events after an\n * existing control is replaced.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * replaced with a new one. When false, no events are emitted.\n */\n setControl(name, control, options = {}) {\n if (this.controls[name])\n this.controls[name]._registerOnCollectionChange(() => { });\n delete (this.controls[name]);\n if (control)\n this.registerControl(name, control);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n this._onCollectionChange();\n }\n /**\n * Check whether there is an enabled control with the given name in the group.\n *\n * Reports false for disabled controls. If you'd like to check for existence in the group\n * only, use {@link AbstractControl#get get} instead.\n *\n * @param controlName The control name to check for existence in the collection\n *\n * @returns false for disabled controls, true otherwise.\n */\n contains(controlName) {\n return this.controls.hasOwnProperty(controlName) && this.controls[controlName].enabled;\n }\n /**\n * Sets the value of the `FormGroup`. It accepts an object that matches\n * the structure of the group, with control names as keys.\n *\n * @usageNotes\n * ### Set the complete value for the form group\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl(),\n * last: new FormControl()\n * });\n *\n * console.log(form.value); // {first: null, last: null}\n *\n * form.setValue({first: 'Nancy', last: 'Drew'});\n * console.log(form.value); // {first: 'Nancy', last: 'Drew'}\n * ```\n *\n * @throws When strict checks fail, such as setting the value of a control\n * that doesn't exist or if you exclude a value of a control that does exist.\n *\n * @param value The new value for the control that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes\n * and emits events after the value changes.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control value is updated.\n * When false, no events are emitted.\n */\n setValue(value, options = {}) {\n assertAllValuesPresent(this, value);\n Object.keys(value).forEach(name => {\n assertControlPresent(this, name);\n this.controls[name].setValue(value[name], { onlySelf: true, emitEvent: options.emitEvent });\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Patches the value of the `FormGroup`. It accepts an object with control\n * names as keys, and does its best to match the values to the correct controls\n * in the group.\n *\n * It accepts both super-sets and sub-sets of the group without throwing an error.\n *\n * @usageNotes\n * ### Patch the value for a form group\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl(),\n * last: new FormControl()\n * });\n * console.log(form.value); // {first: null, last: null}\n *\n * form.patchValue({first: 'Nancy'});\n * console.log(form.value); // {first: 'Nancy', last: null}\n * ```\n *\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control value\n * is updated. When false, no events are emitted. The configuration options are passed to\n * the {@link AbstractControl#updateValueAndValidity updateValueAndValidity} method.\n */\n patchValue(value, options = {}) {\n // Even though the `value` argument type doesn't allow `null` and `undefined` values, the\n // `patchValue` can be called recursively and inner data structures might have these values, so\n // we just ignore such cases when a field containing FormGroup instance receives `null` or\n // `undefined` as a value.\n if (value == null /* both `null` and `undefined` */)\n return;\n Object.keys(value).forEach(name => {\n if (this.controls[name]) {\n this.controls[name].patchValue(value[name], { onlySelf: true, emitEvent: options.emitEvent });\n }\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Resets the `FormGroup`, marks all descendants `pristine` and `untouched` and sets\n * the value of all descendants to null.\n *\n * You reset to a specific form state by passing in a map of states\n * that matches the structure of your form, with control names as keys. The state\n * is a standalone value or a form state object with both a value and a disabled\n * status.\n *\n * @param value Resets the control with an initial value,\n * or an object that defines the initial value and disabled state.\n *\n * @param options Configuration options that determine how the control propagates changes\n * and emits events when the group is reset.\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is reset.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n *\n * @usageNotes\n *\n * ### Reset the form group values\n *\n * ```ts\n * const form = new FormGroup({\n * first: new FormControl('first name'),\n * last: new FormControl('last name')\n * });\n *\n * console.log(form.value); // {first: 'first name', last: 'last name'}\n *\n * form.reset({ first: 'name', last: 'last name' });\n *\n * console.log(form.value); // {first: 'name', last: 'last name'}\n * ```\n *\n * ### Reset the form group values and disabled status\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl('first name'),\n * last: new FormControl('last name')\n * });\n *\n * form.reset({\n * first: {value: 'name', disabled: true},\n * last: 'last'\n * });\n *\n * console.log(form.value); // {last: 'last'}\n * console.log(form.get('first').status); // 'DISABLED'\n * ```\n */\n reset(value = {}, options = {}) {\n this._forEachChild((control, name) => {\n control.reset(value[name], { onlySelf: true, emitEvent: options.emitEvent });\n });\n this._updatePristine(options);\n this._updateTouched(options);\n this.updateValueAndValidity(options);\n }\n /**\n * The aggregate value of the `FormGroup`, including any disabled controls.\n *\n * Retrieves all values regardless of disabled status.\n * The `value` property is the best way to get the value of the group, because\n * it excludes disabled controls in the `FormGroup`.\n */\n getRawValue() {\n return this._reduceChildren({}, (acc, control, name) => {\n acc[name] = getRawValue(control);\n return acc;\n });\n }\n /** @internal */\n _syncPendingControls() {\n let subtreeUpdated = this._reduceChildren(false, (updated, child) => {\n return child._syncPendingControls() ? true : updated;\n });\n if (subtreeUpdated)\n this.updateValueAndValidity({ onlySelf: true });\n return subtreeUpdated;\n }\n /** @internal */\n _forEachChild(cb) {\n Object.keys(this.controls).forEach(key => {\n // The list of controls can change (for ex. controls might be removed) while the loop\n // is running (as a result of invoking Forms API in `valueChanges` subscription), so we\n // have to null check before invoking the callback.\n const control = this.controls[key];\n control && cb(control, key);\n });\n }\n /** @internal */\n _setUpControls() {\n this._forEachChild((control) => {\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n });\n }\n /** @internal */\n _updateValue() {\n this.value = this._reduceValue();\n }\n /** @internal */\n _anyControls(condition) {\n for (const controlName of Object.keys(this.controls)) {\n const control = this.controls[controlName];\n if (this.contains(controlName) && condition(control)) {\n return true;\n }\n }\n return false;\n }\n /** @internal */\n _reduceValue() {\n return this._reduceChildren({}, (acc, control, name) => {\n if (control.enabled || this.disabled) {\n acc[name] = control.value;\n }\n return acc;\n });\n }\n /** @internal */\n _reduceChildren(initValue, fn) {\n let res = initValue;\n this._forEachChild((control, name) => {\n res = fn(res, control, name);\n });\n return res;\n }\n /** @internal */\n _allControlsDisabled() {\n for (const controlName of Object.keys(this.controls)) {\n if (this.controls[controlName].enabled) {\n return false;\n }\n }\n return Object.keys(this.controls).length > 0 || this.disabled;\n }\n}\n/**\n * Tracks the value and validity state of an array of `FormControl`,\n * `FormGroup` or `FormArray` instances.\n *\n * A `FormArray` aggregates the values of each child `FormControl` into an array.\n * It calculates its status by reducing the status values of its children. For example, if one of\n * the controls in a `FormArray` is invalid, the entire array becomes invalid.\n *\n * `FormArray` is one of the three fundamental building blocks used to define forms in Angular,\n * along with `FormControl` and `FormGroup`.\n *\n * @usageNotes\n *\n * ### Create an array of form controls\n *\n * ```\n * const arr = new FormArray([\n * new FormControl('Nancy', Validators.minLength(2)),\n * new FormControl('Drew'),\n * ]);\n *\n * console.log(arr.value); // ['Nancy', 'Drew']\n * console.log(arr.status); // 'VALID'\n * ```\n *\n * ### Create a form array with array-level validators\n *\n * You include array-level validators and async validators. These come in handy\n * when you want to perform validation that considers the value of more than one child\n * control.\n *\n * The two types of validators are passed in separately as the second and third arg\n * respectively, or together as part of an options object.\n *\n * ```\n * const arr = new FormArray([\n * new FormControl('Nancy'),\n * new FormControl('Drew')\n * ], {validators: myValidator, asyncValidators: myAsyncValidator});\n * ```\n *\n * ### Set the updateOn property for all controls in a form array\n *\n * The options object is used to set a default value for each child\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\n * array level, all child controls default to 'blur', unless the child\n * has explicitly specified a different `updateOn` value.\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl()\n * ], {updateOn: 'blur'});\n * ```\n *\n * ### Adding or removing controls from a form array\n *\n * To change the controls in the array, use the `push`, `insert`, `removeAt` or `clear` methods\n * in `FormArray` itself. These methods ensure the controls are properly tracked in the\n * form's hierarchy. Do not modify the array of `AbstractControl`s used to instantiate\n * the `FormArray` directly, as that result in strange and unexpected behavior such\n * as broken change detection.\n *\n * @publicApi\n */\nclass FormArray extends AbstractControl {\n /**\n * Creates a new `FormArray` instance.\n *\n * @param controls An array of child controls. Each child control is given an index\n * where it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains validation functions\n * and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions\n *\n */\n constructor(controls, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n this.controls = controls;\n this._initObservables();\n this._setUpdateStrategy(validatorOrOpts);\n this._setUpControls();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`.\n // The status should be broadcasted via the `statusChanges` observable, so we set `emitEvent`\n // to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n }\n /**\n * Get the `AbstractControl` at the given `index` in the array.\n *\n * @param index Index in the array to retrieve the control\n */\n at(index) {\n return this.controls[index];\n }\n /**\n * Insert a new `AbstractControl` at the end of the array.\n *\n * @param control Form control to be inserted\n * @param options Specifies whether this FormArray instance should emit events after a new\n * control is added.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * inserted. When false, no events are emitted.\n */\n push(control, options = {}) {\n this.controls.push(control);\n this._registerControl(control);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n this._onCollectionChange();\n }\n /**\n * Insert a new `AbstractControl` at the given `index` in the array.\n *\n * @param index Index in the array to insert the control\n * @param control Form control to be inserted\n * @param options Specifies whether this FormArray instance should emit events after a new\n * control is inserted.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * inserted. When false, no events are emitted.\n */\n insert(index, control, options = {}) {\n this.controls.splice(index, 0, control);\n this._registerControl(control);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n }\n /**\n * Remove the control at the given `index` in the array.\n *\n * @param index Index in the array to remove the control\n * @param options Specifies whether this FormArray instance should emit events after a\n * control is removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * removed. When false, no events are emitted.\n */\n removeAt(index, options = {}) {\n if (this.controls[index])\n this.controls[index]._registerOnCollectionChange(() => { });\n this.controls.splice(index, 1);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n }\n /**\n * Replace an existing control.\n *\n * @param index Index in the array to replace the control\n * @param control The `AbstractControl` control to replace the existing control\n * @param options Specifies whether this FormArray instance should emit events after an\n * existing control is replaced with a new one.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * replaced with a new one. When false, no events are emitted.\n */\n setControl(index, control, options = {}) {\n if (this.controls[index])\n this.controls[index]._registerOnCollectionChange(() => { });\n this.controls.splice(index, 1);\n if (control) {\n this.controls.splice(index, 0, control);\n this._registerControl(control);\n }\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n this._onCollectionChange();\n }\n /**\n * Length of the control array.\n */\n get length() {\n return this.controls.length;\n }\n /**\n * Sets the value of the `FormArray`. It accepts an array that matches\n * the structure of the control.\n *\n * This method performs strict checks, and throws an error if you try\n * to set the value of a control that doesn't exist or if you exclude the\n * value of a control.\n *\n * @usageNotes\n * ### Set the values for the controls in the form array\n *\n * ```\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.value); // [null, null]\n *\n * arr.setValue(['Nancy', 'Drew']);\n * console.log(arr.value); // ['Nancy', 'Drew']\n * ```\n *\n * @param value Array of values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control value is updated.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n */\n setValue(value, options = {}) {\n assertAllValuesPresent(this, value);\n value.forEach((newValue, index) => {\n assertControlPresent(this, index);\n this.at(index).setValue(newValue, { onlySelf: true, emitEvent: options.emitEvent });\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Patches the value of the `FormArray`. It accepts an array that matches the\n * structure of the control, and does its best to match the values to the correct\n * controls in the group.\n *\n * It accepts both super-sets and sub-sets of the array without throwing an error.\n *\n * @usageNotes\n * ### Patch the values for controls in a form array\n *\n * ```\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.value); // [null, null]\n *\n * arr.patchValue(['Nancy']);\n * console.log(arr.value); // ['Nancy', null]\n * ```\n *\n * @param value Array of latest values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control value\n * is updated. When false, no events are emitted. The configuration options are passed to\n * the {@link AbstractControl#updateValueAndValidity updateValueAndValidity} method.\n */\n patchValue(value, options = {}) {\n // Even though the `value` argument type doesn't allow `null` and `undefined` values, the\n // `patchValue` can be called recursively and inner data structures might have these values, so\n // we just ignore such cases when a field containing FormArray instance receives `null` or\n // `undefined` as a value.\n if (value == null /* both `null` and `undefined` */)\n return;\n value.forEach((newValue, index) => {\n if (this.at(index)) {\n this.at(index).patchValue(newValue, { onlySelf: true, emitEvent: options.emitEvent });\n }\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Resets the `FormArray` and all descendants are marked `pristine` and `untouched`, and the\n * value of all descendants to null or null maps.\n *\n * You reset to a specific form state by passing in an array of states\n * that matches the structure of the control. The state is a standalone value\n * or a form state object with both a value and a disabled status.\n *\n * @usageNotes\n * ### Reset the values in a form array\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * arr.reset(['name', 'last name']);\n *\n * console.log(arr.value); // ['name', 'last name']\n * ```\n *\n * ### Reset the values in a form array and the disabled status for the first control\n *\n * ```\n * arr.reset([\n * {value: 'name', disabled: true},\n * 'last'\n * ]);\n *\n * console.log(arr.value); // ['last']\n * console.log(arr.at(0).status); // 'DISABLED'\n * ```\n *\n * @param value Array of values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is reset.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n */\n reset(value = [], options = {}) {\n this._forEachChild((control, index) => {\n control.reset(value[index], { onlySelf: true, emitEvent: options.emitEvent });\n });\n this._updatePristine(options);\n this._updateTouched(options);\n this.updateValueAndValidity(options);\n }\n /**\n * The aggregate value of the array, including any disabled controls.\n *\n * Reports all values regardless of disabled status.\n * For enabled controls only, the `value` property is the best way to get the value of the array.\n */\n getRawValue() {\n return this.controls.map((control) => getRawValue(control));\n }\n /**\n * Remove all controls in the `FormArray`.\n *\n * @param options Specifies whether this FormArray instance should emit events after all\n * controls are removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when all controls\n * in this FormArray instance are removed. When false, no events are emitted.\n *\n * @usageNotes\n * ### Remove all elements from a FormArray\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.length); // 2\n *\n * arr.clear();\n * console.log(arr.length); // 0\n * ```\n *\n * It's a simpler and more efficient alternative to removing all elements one by one:\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n *\n * while (arr.length) {\n * arr.removeAt(0);\n * }\n * ```\n */\n clear(options = {}) {\n if (this.controls.length < 1)\n return;\n this._forEachChild((control) => control._registerOnCollectionChange(() => { }));\n this.controls.splice(0);\n this.updateValueAndValidity({ emitEvent: options.emitEvent });\n }\n /** @internal */\n _syncPendingControls() {\n let subtreeUpdated = this.controls.reduce((updated, child) => {\n return child._syncPendingControls() ? true : updated;\n }, false);\n if (subtreeUpdated)\n this.updateValueAndValidity({ onlySelf: true });\n return subtreeUpdated;\n }\n /** @internal */\n _forEachChild(cb) {\n this.controls.forEach((control, index) => {\n cb(control, index);\n });\n }\n /** @internal */\n _updateValue() {\n this.value =\n this.controls.filter((control) => control.enabled || this.disabled)\n .map((control) => control.value);\n }\n /** @internal */\n _anyControls(condition) {\n return this.controls.some((control) => control.enabled && condition(control));\n }\n /** @internal */\n _setUpControls() {\n this._forEachChild((control) => this._registerControl(control));\n }\n /** @internal */\n _allControlsDisabled() {\n for (const control of this.controls) {\n if (control.enabled)\n return false;\n }\n return this.controls.length > 0 || this.disabled;\n }\n _registerControl(control) {\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n }\n}\n\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 */\nconst formDirectiveProvider$1 = {\n provide: ControlContainer,\n useExisting: forwardRef(() => NgForm)\n};\nconst resolvedPromise$1 = (() => Promise.resolve(null))();\n/**\n * @description\n * Creates a top-level `FormGroup` instance and binds it to a form\n * to track aggregate form value and validation status.\n *\n * As soon as you import the `FormsModule`, this directive becomes active by default on\n * all `<form>` tags. You don't need to add a special selector.\n *\n * You optionally export the directive into a local template variable using `ngForm` as the key\n * (ex: `#myForm=\"ngForm\"`). This is optional, but useful. Many properties from the underlying\n * `FormGroup` instance are duplicated on the directive itself, so a reference to it\n * gives you access to the aggregate value and validity status of the form, as well as\n * user interaction properties like `dirty` and `touched`.\n *\n * To register child controls with the form, use `NgModel` with a `name`\n * attribute. You may use `NgModelGroup` to create sub-groups within the form.\n *\n * If necessary, listen to the directive's `ngSubmit` event to be notified when the user has\n * triggered a form submission. The `ngSubmit` event emits the original form\n * submission event.\n *\n * In template driven forms, all `<form>` tags are automatically tagged as `NgForm`.\n * To import the `FormsModule` but skip its usage in some forms,\n * for example, to use native HTML5 validation, add the `ngNoForm` and the `<form>`\n * tags won't create an `NgForm` directive. In reactive forms, using `ngNoForm` is\n * unnecessary because the `<form>` tags are inert. In that case, you would\n * refrain from using the `formGroup` directive.\n *\n * @usageNotes\n *\n * ### Listening for form submission\n *\n * The following example shows how to capture the form values from the \"ngSubmit\" event.\n *\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\n *\n * ### Setting the update options\n *\n * The following example shows you how to change the \"updateOn\" option from its default using\n * ngFormOptions.\n *\n * ```html\n * <form [ngFormOptions]=\"{updateOn: 'blur'}\">\n * <input name=\"one\" ngModel> <!-- this ngModel will update on blur -->\n * </form>\n * ```\n *\n * ### Native DOM validation UI\n *\n * In order to prevent the native DOM form validation UI from interfering with Angular's form\n * validation, Angular automatically adds the `novalidate` attribute on any `<form>` whenever\n * `FormModule` or `ReactiveFormModule` are imported into the application.\n * If you want to explicitly enable native DOM validation UI with Angular forms, you can add the\n * `ngNativeValidate` attribute to the `<form>` element:\n *\n * ```html\n * <form ngNativeValidate>\n * ...\n * </form>\n * ```\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgForm extends ControlContainer {\n constructor(validators, asyncValidators) {\n super();\n /**\n * @description\n * Returns whether the form submission has been triggered.\n */\n this.submitted = false;\n this._directives = new Set();\n /**\n * @description\n * Event emitter for the \"ngSubmit\" event\n */\n this.ngSubmit = new EventEmitter();\n this.form =\n new FormGroup({}, composeValidators(validators), composeAsyncValidators(asyncValidators));\n }\n /** @nodoc */\n ngAfterViewInit() {\n this._setUpdateStrategy();\n }\n /**\n * @description\n * The directive instance.\n */\n get formDirective() {\n return this;\n }\n /**\n * @description\n * The internal `FormGroup` instance.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Returns an array representing the path to this group. Because this directive\n * always lives at the top level of a form, it is always an empty array.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * Returns a map of the controls in this group.\n */\n get controls() {\n return this.form.controls;\n }\n /**\n * @description\n * Method that sets up the control directive in this group, re-calculates its value\n * and validity, and adds the instance to the internal list of directives.\n *\n * @param dir The `NgModel` directive instance.\n */\n addControl(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n dir.control =\n container.registerControl(dir.name, dir.control);\n setUpControl(dir.control, dir);\n dir.control.updateValueAndValidity({ emitEvent: false });\n this._directives.add(dir);\n });\n }\n /**\n * @description\n * Retrieves the `FormControl` instance from the provided `NgModel` directive.\n *\n * @param dir The `NgModel` directive instance.\n */\n getControl(dir) {\n return this.form.get(dir.path);\n }\n /**\n * @description\n * Removes the `NgModel` instance from the internal list of directives\n *\n * @param dir The `NgModel` directive instance.\n */\n removeControl(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n if (container) {\n container.removeControl(dir.name);\n }\n this._directives.delete(dir);\n });\n }\n /**\n * @description\n * Adds a new `NgModelGroup` directive instance to the form.\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n addFormGroup(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n const group = new FormGroup({});\n setUpFormContainer(group, dir);\n container.registerControl(dir.name, group);\n group.updateValueAndValidity({ emitEvent: false });\n });\n }\n /**\n * @description\n * Removes the `NgModelGroup` directive instance from the form.\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n removeFormGroup(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n if (container) {\n container.removeControl(dir.name);\n }\n });\n }\n /**\n * @description\n * Retrieves the `FormGroup` for a provided `NgModelGroup` directive instance\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n getFormGroup(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Sets the new value for the provided `NgControl` directive.\n *\n * @param dir The `NgControl` directive instance.\n * @param value The new value for the directive's control.\n */\n updateModel(dir, value) {\n resolvedPromise$1.then(() => {\n const ctrl = this.form.get(dir.path);\n ctrl.setValue(value);\n });\n }\n /**\n * @description\n * Sets the value for this `FormGroup`.\n *\n * @param value The new value\n */\n setValue(value) {\n this.control.setValue(value);\n }\n /**\n * @description\n * Method called when the \"submit\" event is triggered on the form.\n * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\n *\n * @param $event The \"submit\" event object\n */\n onSubmit($event) {\n this.submitted = true;\n syncPendingControls(this.form, this._directives);\n this.ngSubmit.emit($event);\n return false;\n }\n /**\n * @description\n * Method called when the \"reset\" event is triggered on the form.\n */\n onReset() {\n this.resetForm();\n }\n /**\n * @description\n * Resets the form to an initial value and resets its submitted status.\n *\n * @param value The new value for the form.\n */\n resetForm(value = undefined) {\n this.form.reset(value);\n this.submitted = false;\n }\n _setUpdateStrategy() {\n if (this.options && this.options.updateOn != null) {\n this.form._updateOn = this.options.updateOn;\n }\n }\n _findContainer(path) {\n path.pop();\n return path.length ? this.form.get(path) : this.form;\n }\n}\nNgForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgForm, deps: [{ token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: { options: [\"ngFormOptions\", \"options\"] }, outputs: { ngSubmit: \"ngSubmit\" }, host: { listeners: { \"submit\": \"onSubmit($event)\", \"reset\": \"onReset()\" } }, providers: [formDirectiveProvider$1], exportAs: [\"ngForm\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgForm, decorators: [{\n type: Directive,\n args: [{\n selector: 'form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]',\n providers: [formDirectiveProvider$1],\n host: { '(submit)': 'onSubmit($event)', '(reset)': 'onReset()' },\n outputs: ['ngSubmit'],\n exportAs: 'ngForm'\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }];\n }, propDecorators: { options: [{\n type: Input,\n args: ['ngFormOptions']\n }] } });\n\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/**\n * @description\n * A base class for code shared between the `NgModelGroup` and `FormGroupName` directives.\n *\n * @publicApi\n */\nclass AbstractFormGroupDirective extends ControlContainer {\n /** @nodoc */\n ngOnInit() {\n this._checkParentType();\n // Register the group with its parent group.\n this.formDirective.addFormGroup(this);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.formDirective) {\n // Remove the group from its parent group.\n this.formDirective.removeFormGroup(this);\n }\n }\n /**\n * @description\n * The `FormGroup` bound to this directive.\n */\n get control() {\n return this.formDirective.getFormGroup(this);\n }\n /**\n * @description\n * The path to this group from the top-level directive.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /** @internal */\n _checkParentType() { }\n}\nAbstractFormGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AbstractFormGroupDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nAbstractFormGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: AbstractFormGroupDirective, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AbstractFormGroupDirective, decorators: [{\n type: Directive\n }] });\n\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 */\nfunction modelParentException() {\n return new Error(`\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup's partner directive \"formControlName\" instead. Example:\n\n ${formControlNameExample}\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n ${ngModelWithFormGroupExample}`);\n}\nfunction formGroupNameException() {\n return new Error(`\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n ${ngModelGroupExample}`);\n}\nfunction missingNameException() {\n return new Error(`If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as 'standalone' in ngModelOptions.\n\n Example 1: <input [(ngModel)]=\"person.firstName\" name=\"first\">\n Example 2: <input [(ngModel)]=\"person.firstName\" [ngModelOptions]=\"{standalone: true}\">`);\n}\nfunction modelGroupParentException() {\n return new Error(`\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n ${ngModelGroupExample}`);\n}\n\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 */\nconst modelGroupProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => NgModelGroup)\n};\n/**\n * @description\n * Creates and binds a `FormGroup` instance to a DOM element.\n *\n * This directive can only be used as a child of `NgForm` (within `<form>` tags).\n *\n * Use this directive to validate a sub-group of your form separately from the\n * rest of your form, or if some values in your domain model make more sense\n * to consume together in a nested object.\n *\n * Provide a name for the sub-group and it will become the key\n * for the sub-group in the form's full value. If you need direct access, export the directive into\n * a local template variable using `ngModelGroup` (ex: `#myGroup=\"ngModelGroup\"`).\n *\n * @usageNotes\n *\n * ### Consuming controls in a grouping\n *\n * The following example shows you how to combine controls together in a sub-group\n * of the form.\n *\n * {@example forms/ts/ngModelGroup/ng_model_group_example.ts region='Component'}\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgModelGroup extends AbstractFormGroupDirective {\n constructor(parent, validators, asyncValidators) {\n super();\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @internal */\n _checkParentType() {\n if (!(this._parent instanceof NgModelGroup) && !(this._parent instanceof NgForm) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw modelGroupParentException();\n }\n }\n}\nNgModelGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgModelGroup, deps: [{ token: ControlContainer, host: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgModelGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgModelGroup, selector: \"[ngModelGroup]\", inputs: { name: [\"ngModelGroup\", \"name\"] }, providers: [modelGroupProvider], exportAs: [\"ngModelGroup\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgModelGroup, decorators: [{\n type: Directive,\n args: [{ selector: '[ngModelGroup]', providers: [modelGroupProvider], exportAs: 'ngModelGroup' }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Host\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }];\n }, propDecorators: { name: [{\n type: Input,\n args: ['ngModelGroup']\n }] } });\n\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 */\nconst formControlBinding$1 = {\n provide: NgControl,\n useExisting: forwardRef(() => NgModel)\n};\n/**\n * `ngModel` forces an additional change detection run when its inputs change:\n * E.g.:\n * ```\n * <div>{{myModel.valid}}</div>\n * <input [(ngModel)]=\"myValue\" #myModel=\"ngModel\">\n * ```\n * I.e. `ngModel` can export itself on the element and then be used in the template.\n * Normally, this would result in expressions before the `input` that use the exported directive\n * to have an old value as they have been\n * dirty checked before. As this is a very common case for `ngModel`, we added this second change\n * detection run.\n *\n * Notes:\n * - this is just one extra run no matter how many `ngModel`s have been changed.\n * - this is a general problem when using `exportAs` for directives!\n */\nconst resolvedPromise = (() => Promise.resolve(null))();\n/**\n * @description\n * Creates a `FormControl` instance from a domain model and binds it\n * to a form control element.\n *\n * The `FormControl` instance tracks the value, user interaction, and\n * validation status of the control and keeps the view synced with the model. If used\n * within a parent form, the directive also registers itself with the form as a child\n * control.\n *\n * This directive is used by itself or as part of a larger form. Use the\n * `ngModel` selector to activate it.\n *\n * It accepts a domain model as an optional `Input`. If you have a one-way binding\n * to `ngModel` with `[]` syntax, changing the domain model's value in the component\n * class sets the value in the view. If you have a two-way binding with `[()]` syntax\n * (also known as 'banana-in-a-box syntax'), the value in the UI always syncs back to\n * the domain model in your class.\n *\n * To inspect the properties of the associated `FormControl` (like the validity state),\n * export the directive into a local template variable using `ngModel` as the key (ex:\n * `#myVar=\"ngModel\"`). You can then access the control using the directive's `control` property.\n * However, the most commonly used properties (like `valid` and `dirty`) also exist on the control\n * for direct access. See a full list of properties directly available in\n * `AbstractControlDirective`.\n *\n * @see `RadioControlValueAccessor`\n * @see `SelectControlValueAccessor`\n *\n * @usageNotes\n *\n * ### Using ngModel on a standalone control\n *\n * The following examples show a simple standalone control using `ngModel`:\n *\n * {@example forms/ts/simpleNgModel/simple_ng_model_example.ts region='Component'}\n *\n * When using the `ngModel` within `<form>` tags, you'll also need to supply a `name` attribute\n * so that the control can be registered with the parent form under that name.\n *\n * In the context of a parent form, it's often unnecessary to include one-way or two-way binding,\n * as the parent form syncs the value for you. You access its properties by exporting it into a\n * local template variable using `ngForm` such as (`#f=\"ngForm\"`). Use the variable where\n * needed on form submission.\n *\n * If you do need to populate initial values into your form, using a one-way binding for\n * `ngModel` tends to be sufficient as long as you use the exported form's value rather\n * than the domain model's value on submit.\n *\n * ### Using ngModel within a form\n *\n * The following example shows controls using `ngModel` within a form:\n *\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\n *\n * ### Using a standalone ngModel within a group\n *\n * The following example shows you how to use a standalone ngModel control\n * within a form. This controls the display of the form, but doesn't contain form data.\n *\n * ```html\n * <form>\n * <input name=\"login\" ngModel placeholder=\"Login\">\n * <input type=\"checkbox\" ngModel [ngModelOptions]=\"{standalone: true}\"> Show more options?\n * </form>\n * <!-- form value: {login: ''} -->\n * ```\n *\n * ### Setting the ngModel `name` attribute through options\n *\n * The following example shows you an alternate way to set the name attribute. Here,\n * an attribute identified as name is used within a custom form control component. To still be able\n * to specify the NgModel's name, you must specify it using the `ngModelOptions` input instead.\n *\n * ```html\n * <form>\n * <my-custom-form-control name=\"Nancy\" ngModel [ngModelOptions]=\"{name: 'user'}\">\n * </my-custom-form-control>\n * </form>\n * <!-- form value: {user: ''} -->\n * ```\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgModel extends NgControl {\n constructor(parent, validators, asyncValidators, valueAccessors, _changeDetectorRef) {\n super();\n this._changeDetectorRef = _changeDetectorRef;\n this.control = new FormControl();\n /** @internal */\n this._registered = false;\n /**\n * @description\n * Event emitter for producing the `ngModelChange` event after\n * the view model updates.\n */\n this.update = new EventEmitter();\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._checkForErrors();\n if (!this._registered || 'name' in changes) {\n if (this._registered) {\n this._checkName();\n if (this.formDirective) {\n // We can't call `formDirective.removeControl(this)`, because the `name` has already been\n // changed. We also can't reset the name temporarily since the logic in `removeControl`\n // is inside a promise and it won't run immediately. We work around it by giving it an\n // object with the same shape instead.\n const oldName = changes['name'].previousValue;\n this.formDirective.removeControl({ name: oldName, path: this._getPath(oldName) });\n }\n }\n this._setUpControl();\n }\n if ('isDisabled' in changes) {\n this._updateDisabled(changes);\n }\n if (isPropertyUpdated(changes, this.viewModel)) {\n this._updateValue(this.model);\n this.viewModel = this.model;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n this.formDirective && this.formDirective.removeControl(this);\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return this._getPath(this.name);\n }\n /**\n * @description\n * The top-level directive for this control if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value emitted by `ngModelChange`.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n _setUpControl() {\n this._setUpdateStrategy();\n this._isStandalone() ? this._setUpStandalone() : this.formDirective.addControl(this);\n this._registered = true;\n }\n _setUpdateStrategy() {\n if (this.options && this.options.updateOn != null) {\n this.control._updateOn = this.options.updateOn;\n }\n }\n _isStandalone() {\n return !this._parent || !!(this.options && this.options.standalone);\n }\n _setUpStandalone() {\n setUpControl(this.control, this);\n this.control.updateValueAndValidity({ emitEvent: false });\n }\n _checkForErrors() {\n if (!this._isStandalone()) {\n this._checkParentType();\n }\n this._checkName();\n }\n _checkParentType() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!(this._parent instanceof NgModelGroup) &&\n this._parent instanceof AbstractFormGroupDirective) {\n throw formGroupNameException();\n }\n else if (!(this._parent instanceof NgModelGroup) && !(this._parent instanceof NgForm)) {\n throw modelParentException();\n }\n }\n }\n _checkName() {\n if (this.options && this.options.name)\n this.name = this.options.name;\n if (!this._isStandalone() && !this.name && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw missingNameException();\n }\n }\n _updateValue(value) {\n resolvedPromise.then(() => {\n var _a;\n this.control.setValue(value, { emitViewToModelChange: false });\n (_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();\n });\n }\n _updateDisabled(changes) {\n const disabledValue = changes['isDisabled'].currentValue;\n const isDisabled = disabledValue === '' || (disabledValue && disabledValue !== 'false');\n resolvedPromise.then(() => {\n var _a;\n if (isDisabled && !this.control.disabled) {\n this.control.disable();\n }\n else if (!isDisabled && this.control.disabled) {\n this.control.enable();\n }\n (_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();\n });\n }\n _getPath(controlName) {\n return this._parent ? controlPath(controlName, this._parent) : [controlName];\n }\n}\nNgModel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgModel, deps: [{ token: ControlContainer, host: true, optional: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }, { token: ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgModel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: { name: \"name\", isDisabled: [\"disabled\", \"isDisabled\"], model: [\"ngModel\", \"model\"], options: [\"ngModelOptions\", \"options\"] }, outputs: { update: \"ngModelChange\" }, providers: [formControlBinding$1], exportAs: [\"ngModel\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgModel, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngModel]:not([formControlName]):not([formControl])',\n providers: [formControlBinding$1],\n exportAs: 'ngModel'\n }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }, { type: i0.ChangeDetectorRef, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ChangeDetectorRef]\n }] }];\n }, propDecorators: { name: [{\n type: Input\n }], isDisabled: [{\n type: Input,\n args: ['disabled']\n }], model: [{\n type: Input,\n args: ['ngModel']\n }], options: [{\n type: Input,\n args: ['ngModelOptions']\n }], update: [{\n type: Output,\n args: ['ngModelChange']\n }] } });\n\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/**\n * @description\n *\n * Adds `novalidate` attribute to all forms by default.\n *\n * `novalidate` is used to disable browser's native form validation.\n *\n * If you want to use native validation with Angular forms, just add `ngNativeValidate` attribute:\n *\n * ```\n * <form ngNativeValidate></form>\n * ```\n *\n * @publicApi\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n */\nclass ɵNgNoValidate {\n}\nɵNgNoValidate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵNgNoValidate, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nɵNgNoValidate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\", host: { attributes: { \"novalidate\": \"\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵNgNoValidate, decorators: [{\n type: Directive,\n args: [{\n selector: 'form:not([ngNoForm]):not([ngNativeValidate])',\n host: { 'novalidate': '' },\n }]\n }] });\n\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 */\nconst NUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberValueAccessor),\n multi: true\n};\n/**\n * @description\n * The `ControlValueAccessor` for writing a number value and listening to number input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * @usageNotes\n *\n * ### Using a number input with a reactive form.\n *\n * The following example shows how to use a number input with a reactive form.\n *\n * ```ts\n * const totalCountControl = new FormControl();\n * ```\n *\n * ```\n * <input type=\"number\" [formControl]=\"totalCountControl\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NumberValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n // The value needs to be normalized for IE9, otherwise it is set to 'null' when null\n const normalizedValue = value == null ? '' : value;\n this.setProperty('value', normalizedValue);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = (value) => {\n fn(value == '' ? null : parseFloat(value));\n };\n }\n}\nNumberValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NumberValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nNumberValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\", host: { listeners: { \"input\": \"onChange($event.target.value)\", \"blur\": \"onTouched()\" } }, providers: [NUMBER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NumberValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]',\n host: { '(input)': 'onChange($event.target.value)', '(blur)': 'onTouched()' },\n providers: [NUMBER_VALUE_ACCESSOR]\n }]\n }] });\n\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 */\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioControlValueAccessor),\n multi: true\n};\nfunction throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `);\n}\n/**\n * Internal-only NgModule that works as a host for the `RadioControlRegistry` tree-shakable\n * provider. Note: the `InternalFormsSharedModule` can not be used here directly, since it's\n * declared *after* the `RadioControlRegistry` class and the `providedIn` doesn't support\n * `forwardRef` logic.\n */\nclass RadioControlRegistryModule {\n}\nRadioControlRegistryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nRadioControlRegistryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistryModule });\nRadioControlRegistryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistryModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistryModule, decorators: [{\n type: NgModule\n }] });\n/**\n * @description\n * Class used by Angular to track radio buttons. For internal use only.\n */\nclass RadioControlRegistry {\n constructor() {\n this._accessors = [];\n }\n /**\n * @description\n * Adds a control to the internal registry. For internal use only.\n */\n add(control, accessor) {\n this._accessors.push([control, accessor]);\n }\n /**\n * @description\n * Removes a control from the internal registry. For internal use only.\n */\n remove(accessor) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i][1] === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n /**\n * @description\n * Selects a radio button. For internal use only.\n */\n select(accessor) {\n this._accessors.forEach((c) => {\n if (this._isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].fireUncheck(accessor.value);\n }\n });\n }\n _isSameGroup(controlPair, accessor) {\n if (!controlPair[0].control)\n return false;\n return controlPair[0]._parent === accessor._control._parent &&\n controlPair[1].name === accessor.name;\n }\n}\nRadioControlRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nRadioControlRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistry, providedIn: RadioControlRegistryModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: RadioControlRegistryModule }]\n }] });\n/**\n * @description\n * The `ControlValueAccessor` for writing radio control values and listening to radio control\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @usageNotes\n *\n * ### Using radio buttons with reactive form directives\n *\n * The follow example shows how to use radio buttons in a reactive form. When using radio buttons in\n * a reactive form, radio buttons in the same group should have the same `formControlName`.\n * Providing a `name` attribute is optional.\n *\n * {@example forms/ts/reactiveRadioButtons/reactive_radio_button_example.ts region='Reactive'}\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass RadioControlValueAccessor extends BuiltInControlValueAccessor {\n constructor(renderer, elementRef, _registry, _injector) {\n super(renderer, elementRef);\n this._registry = _registry;\n this._injector = _injector;\n /**\n * The registered callback function called when a change event occurs on the input element.\n * Note: we declare `onChange` here (also used as host listener) as a function with no arguments\n * to override the `onChange` function (which expects 1 argument) in the parent\n * `BaseControlValueAccessor` class.\n * @nodoc\n */\n this.onChange = () => { };\n }\n /** @nodoc */\n ngOnInit() {\n this._control = this._injector.get(NgControl);\n this._checkName();\n this._registry.add(this._control, this);\n }\n /** @nodoc */\n ngOnDestroy() {\n this._registry.remove(this);\n }\n /**\n * Sets the \"checked\" property value on the radio input element.\n * @nodoc\n */\n writeValue(value) {\n this._state = value === this.value;\n this.setProperty('checked', this._state);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this._fn = fn;\n this.onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n /**\n * Sets the \"value\" on the radio input element and unchecks it.\n *\n * @param value\n */\n fireUncheck(value) {\n this.writeValue(value);\n }\n _checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwNameError();\n }\n if (!this.name && this.formControlName)\n this.name = this.formControlName;\n }\n}\nRadioControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: RadioControlRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });\nRadioControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RadioControlValueAccessor, selector: \"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]\", inputs: { name: \"name\", formControlName: \"formControlName\", value: \"value\" }, host: { listeners: { \"change\": \"onChange()\", \"blur\": \"onTouched()\" } }, providers: [RADIO_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RadioControlValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]',\n host: { '(change)': 'onChange()', '(blur)': 'onTouched()' },\n providers: [RADIO_VALUE_ACCESSOR]\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: RadioControlRegistry }, { type: i0.Injector }]; }, propDecorators: { name: [{\n type: Input\n }], formControlName: [{\n type: Input\n }], value: [{\n type: Input\n }] } });\n\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 */\nconst RANGE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeValueAccessor),\n multi: true\n};\n/**\n * @description\n * The `ControlValueAccessor` for writing a range value and listening to range input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * @usageNotes\n *\n * ### Using a range input with a reactive form\n *\n * The following example shows how to use a range input with a reactive form.\n *\n * ```ts\n * const ageControl = new FormControl();\n * ```\n *\n * ```\n * <input type=\"range\" [formControl]=\"ageControl\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass RangeValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n this.setProperty('value', parseFloat(value));\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = (value) => {\n fn(value == '' ? null : parseFloat(value));\n };\n }\n}\nRangeValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RangeValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nRangeValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RangeValueAccessor, selector: \"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]\", host: { listeners: { \"change\": \"onChange($event.target.value)\", \"input\": \"onChange($event.target.value)\", \"blur\": \"onTouched()\" } }, providers: [RANGE_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RangeValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]',\n host: {\n '(change)': 'onChange($event.target.value)',\n '(input)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [RANGE_VALUE_ACCESSOR]\n }]\n }] });\n\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/**\n * Token to provide to turn off the ngModel warning on formControl and formControlName.\n */\nconst NG_MODEL_WITH_FORM_CONTROL_WARNING = new InjectionToken('NgModelWithFormControlWarning');\nconst formControlBinding = {\n provide: NgControl,\n useExisting: forwardRef(() => FormControlDirective)\n};\n/**\n * @description\n * Synchronizes a standalone `FormControl` instance to a form control element.\n *\n * Note that support for using the `ngModel` input property and `ngModelChange` event with reactive\n * form directives was deprecated in Angular v6 and is scheduled for removal in\n * a future version of Angular.\n * For details, see [Deprecated features](guide/deprecations#ngmodel-with-reactive-forms).\n *\n * @see [Reactive Forms Guide](guide/reactive-forms)\n * @see `FormControl`\n * @see `AbstractControl`\n *\n * @usageNotes\n *\n * The following example shows how to register a standalone control and set its value.\n *\n * {@example forms/ts/simpleFormControl/simple_form_control_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormControlDirective extends NgControl {\n constructor(validators, asyncValidators, valueAccessors, _ngModelWarningConfig) {\n super();\n this._ngModelWarningConfig = _ngModelWarningConfig;\n /** @deprecated as of v6 */\n this.update = new EventEmitter();\n /**\n * @description\n * Instance property used to track whether an ngModel warning has been sent out for this\n * particular `FormControlDirective` instance. Used to support warning config of \"always\".\n *\n * @internal\n */\n this._ngModelWarningSent = false;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /**\n * @description\n * Triggers a warning in dev mode that this input should not be used with reactive forms.\n */\n set isDisabled(isDisabled) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(disabledAttrWarning);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this._isControlChanged(changes)) {\n const previousForm = changes['form'].previousValue;\n if (previousForm) {\n cleanUpControl(previousForm, this, /* validateControlPresenceOnChange */ false);\n }\n setUpControl(this.form, this);\n if (this.control.disabled && this.valueAccessor.setDisabledState) {\n this.valueAccessor.setDisabledState(true);\n }\n this.form.updateValueAndValidity({ emitEvent: false });\n }\n if (isPropertyUpdated(changes, this.viewModel)) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _ngModelWarning('formControl', FormControlDirective, this, this._ngModelWarningConfig);\n }\n this.form.setValue(this.model);\n this.viewModel = this.model;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.form) {\n cleanUpControl(this.form, this, /* validateControlPresenceOnChange */ false);\n }\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * The `FormControl` bound to this directive.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value for the view model.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n _isControlChanged(changes) {\n return changes.hasOwnProperty('form');\n }\n}\n/**\n * @description\n * Static property used to track whether any ngModel warnings have been sent across\n * all instances of FormControlDirective. Used to support warning config of \"once\".\n *\n * @internal\n */\nFormControlDirective._ngModelWarningSentOnce = false;\nFormControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormControlDirective, deps: [{ token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }, { token: NG_MODEL_WITH_FORM_CONTROL_WARNING, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nFormControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: FormControlDirective, selector: \"[formControl]\", inputs: { form: [\"formControl\", \"form\"], isDisabled: [\"disabled\", \"isDisabled\"], model: [\"ngModel\", \"model\"] }, outputs: { update: \"ngModelChange\" }, providers: [formControlBinding], exportAs: [\"ngForm\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormControlDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[formControl]', providers: [formControlBinding], exportAs: 'ngForm' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_MODEL_WITH_FORM_CONTROL_WARNING]\n }] }];\n }, propDecorators: { form: [{\n type: Input,\n args: ['formControl']\n }], isDisabled: [{\n type: Input,\n args: ['disabled']\n }], model: [{\n type: Input,\n args: ['ngModel']\n }], update: [{\n type: Output,\n args: ['ngModelChange']\n }] } });\n\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 */\nconst formDirectiveProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormGroupDirective)\n};\n/**\n * @description\n *\n * Binds an existing `FormGroup` to a DOM element.\n *\n * This directive accepts an existing `FormGroup` instance. It will then use this\n * `FormGroup` instance to match any child `FormControl`, `FormGroup`,\n * and `FormArray` instances to child `FormControlName`, `FormGroupName`,\n * and `FormArrayName` directives.\n *\n * @see [Reactive Forms Guide](guide/reactive-forms)\n * @see `AbstractControl`\n *\n * @usageNotes\n * ### Register Form Group\n *\n * The following example registers a `FormGroup` with first name and last name controls,\n * and listens for the *ngSubmit* event when the button is clicked.\n *\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormGroupDirective extends ControlContainer {\n constructor(validators, asyncValidators) {\n super();\n this.validators = validators;\n this.asyncValidators = asyncValidators;\n /**\n * @description\n * Reports whether the form submission has been triggered.\n */\n this.submitted = false;\n /**\n * Callback that should be invoked when controls in FormGroup or FormArray collection change\n * (added or removed). This callback triggers corresponding DOM updates.\n */\n this._onCollectionChange = () => this._updateDomValue();\n /**\n * @description\n * Tracks the list of added `FormControlName` instances\n */\n this.directives = [];\n /**\n * @description\n * Tracks the `FormGroup` bound to this directive.\n */\n this.form = null;\n /**\n * @description\n * Emits an event when the form submission has been triggered.\n */\n this.ngSubmit = new EventEmitter();\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._checkFormPresent();\n if (changes.hasOwnProperty('form')) {\n this._updateValidators();\n this._updateDomValue();\n this._updateRegistrations();\n this._oldForm = this.form;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.form) {\n cleanUpValidators(this.form, this);\n // Currently the `onCollectionChange` callback is rewritten each time the\n // `_registerOnCollectionChange` function is invoked. The implication is that cleanup should\n // happen *only* when the `onCollectionChange` callback was set by this directive instance.\n // Otherwise it might cause overriding a callback of some other directive instances. We should\n // consider updating this logic later to make it similar to how `onChange` callbacks are\n // handled, see https://github.com/angular/angular/issues/39732 for additional info.\n if (this.form._onCollectionChange === this._onCollectionChange) {\n this.form._registerOnCollectionChange(() => { });\n }\n }\n }\n /**\n * @description\n * Returns this directive's instance.\n */\n get formDirective() {\n return this;\n }\n /**\n * @description\n * Returns the `FormGroup` bound to this directive.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Returns an array representing the path to this group. Because this directive\n * always lives at the top level of a form, it always an empty array.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * Method that sets up the control directive in this group, re-calculates its value\n * and validity, and adds the instance to the internal list of directives.\n *\n * @param dir The `FormControlName` directive instance.\n */\n addControl(dir) {\n const ctrl = this.form.get(dir.path);\n setUpControl(ctrl, dir);\n ctrl.updateValueAndValidity({ emitEvent: false });\n this.directives.push(dir);\n return ctrl;\n }\n /**\n * @description\n * Retrieves the `FormControl` instance from the provided `FormControlName` directive\n *\n * @param dir The `FormControlName` directive instance.\n */\n getControl(dir) {\n return this.form.get(dir.path);\n }\n /**\n * @description\n * Removes the `FormControlName` instance from the internal list of directives\n *\n * @param dir The `FormControlName` directive instance.\n */\n removeControl(dir) {\n cleanUpControl(dir.control || null, dir, /* validateControlPresenceOnChange */ false);\n removeListItem(this.directives, dir);\n }\n /**\n * Adds a new `FormGroupName` directive instance to the form.\n *\n * @param dir The `FormGroupName` directive instance.\n */\n addFormGroup(dir) {\n this._setUpFormContainer(dir);\n }\n /**\n * Performs the necessary cleanup when a `FormGroupName` directive instance is removed from the\n * view.\n *\n * @param dir The `FormGroupName` directive instance.\n */\n removeFormGroup(dir) {\n this._cleanUpFormContainer(dir);\n }\n /**\n * @description\n * Retrieves the `FormGroup` for a provided `FormGroupName` directive instance\n *\n * @param dir The `FormGroupName` directive instance.\n */\n getFormGroup(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Performs the necessary setup when a `FormArrayName` directive instance is added to the view.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n addFormArray(dir) {\n this._setUpFormContainer(dir);\n }\n /**\n * Performs the necessary cleanup when a `FormArrayName` directive instance is removed from the\n * view.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n removeFormArray(dir) {\n this._cleanUpFormContainer(dir);\n }\n /**\n * @description\n * Retrieves the `FormArray` for a provided `FormArrayName` directive instance.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n getFormArray(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Sets the new value for the provided `FormControlName` directive.\n *\n * @param dir The `FormControlName` directive instance.\n * @param value The new value for the directive's control.\n */\n updateModel(dir, value) {\n const ctrl = this.form.get(dir.path);\n ctrl.setValue(value);\n }\n /**\n * @description\n * Method called with the \"submit\" event is triggered on the form.\n * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\n *\n * @param $event The \"submit\" event object\n */\n onSubmit($event) {\n this.submitted = true;\n syncPendingControls(this.form, this.directives);\n this.ngSubmit.emit($event);\n return false;\n }\n /**\n * @description\n * Method called when the \"reset\" event is triggered on the form.\n */\n onReset() {\n this.resetForm();\n }\n /**\n * @description\n * Resets the form to an initial value and resets its submitted status.\n *\n * @param value The new value for the form.\n */\n resetForm(value = undefined) {\n this.form.reset(value);\n this.submitted = false;\n }\n /** @internal */\n _updateDomValue() {\n this.directives.forEach(dir => {\n const oldCtrl = dir.control;\n const newCtrl = this.form.get(dir.path);\n if (oldCtrl !== newCtrl) {\n // Note: the value of the `dir.control` may not be defined, for example when it's a first\n // `FormControl` that is added to a `FormGroup` instance (via `addControl` call).\n cleanUpControl(oldCtrl || null, dir);\n // Check whether new control at the same location inside the corresponding `FormGroup` is an\n // instance of `FormControl` and perform control setup only if that's the case.\n // Note: we don't need to clear the list of directives (`this.directives`) here, it would be\n // taken care of in the `removeControl` method invoked when corresponding `formControlName`\n // directive instance is being removed (invoked from `FormControlName.ngOnDestroy`).\n if (isFormControl(newCtrl)) {\n setUpControl(newCtrl, dir);\n dir.control = newCtrl;\n }\n }\n });\n this.form._updateTreeValidity({ emitEvent: false });\n }\n _setUpFormContainer(dir) {\n const ctrl = this.form.get(dir.path);\n setUpFormContainer(ctrl, dir);\n // NOTE: this operation looks unnecessary in case no new validators were added in\n // `setUpFormContainer` call. Consider updating this code to match the logic in\n // `_cleanUpFormContainer` function.\n ctrl.updateValueAndValidity({ emitEvent: false });\n }\n _cleanUpFormContainer(dir) {\n if (this.form) {\n const ctrl = this.form.get(dir.path);\n if (ctrl) {\n const isControlUpdated = cleanUpFormContainer(ctrl, dir);\n if (isControlUpdated) {\n // Run validity check only in case a control was updated (i.e. view validators were\n // removed) as removing view validators might cause validity to change.\n ctrl.updateValueAndValidity({ emitEvent: false });\n }\n }\n }\n }\n _updateRegistrations() {\n this.form._registerOnCollectionChange(this._onCollectionChange);\n if (this._oldForm) {\n this._oldForm._registerOnCollectionChange(() => { });\n }\n }\n _updateValidators() {\n setUpValidators(this.form, this);\n if (this._oldForm) {\n cleanUpValidators(this._oldForm, this);\n }\n }\n _checkFormPresent() {\n if (!this.form && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw missingFormException();\n }\n }\n}\nFormGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormGroupDirective, deps: [{ token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nFormGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: FormGroupDirective, selector: \"[formGroup]\", inputs: { form: [\"formGroup\", \"form\"] }, outputs: { ngSubmit: \"ngSubmit\" }, host: { listeners: { \"submit\": \"onSubmit($event)\", \"reset\": \"onReset()\" } }, providers: [formDirectiveProvider], exportAs: [\"ngForm\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormGroupDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[formGroup]',\n providers: [formDirectiveProvider],\n host: { '(submit)': 'onSubmit($event)', '(reset)': 'onReset()' },\n exportAs: 'ngForm'\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }];\n }, propDecorators: { form: [{\n type: Input,\n args: ['formGroup']\n }], ngSubmit: [{\n type: Output\n }] } });\n\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 */\nconst formGroupNameProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormGroupName)\n};\n/**\n * @description\n *\n * Syncs a nested `FormGroup` to a DOM element.\n *\n * This directive can only be used with a parent `FormGroupDirective`.\n *\n * It accepts the string name of the nested `FormGroup` to link, and\n * looks for a `FormGroup` registered with that name in the parent\n * `FormGroup` instance you passed into `FormGroupDirective`.\n *\n * Use nested form groups to validate a sub-group of a\n * form separately from the rest or to group the values of certain\n * controls into their own nested object.\n *\n * @see [Reactive Forms Guide](guide/reactive-forms)\n *\n * @usageNotes\n *\n * ### Access the group by name\n *\n * The following example uses the `AbstractControl.get` method to access the\n * associated `FormGroup`\n *\n * ```ts\n * this.form.get('name');\n * ```\n *\n * ### Access individual controls in the group\n *\n * The following example uses the `AbstractControl.get` method to access\n * individual controls within the group using dot syntax.\n *\n * ```ts\n * this.form.get('name.first');\n * ```\n *\n * ### Register a nested `FormGroup`.\n *\n * The following example registers a nested *name* `FormGroup` within an existing `FormGroup`,\n * and provides methods to retrieve the nested `FormGroup` and individual controls.\n *\n * {@example forms/ts/nestedFormGroup/nested_form_group_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormGroupName extends AbstractFormGroupDirective {\n constructor(parent, validators, asyncValidators) {\n super();\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @internal */\n _checkParentType() {\n if (_hasInvalidParent(this._parent) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw groupParentException();\n }\n }\n}\nFormGroupName.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormGroupName, deps: [{ token: ControlContainer, host: true, optional: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nFormGroupName.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: FormGroupName, selector: \"[formGroupName]\", inputs: { name: [\"formGroupName\", \"name\"] }, providers: [formGroupNameProvider], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormGroupName, decorators: [{\n type: Directive,\n args: [{ selector: '[formGroupName]', providers: [formGroupNameProvider] }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }];\n }, propDecorators: { name: [{\n type: Input,\n args: ['formGroupName']\n }] } });\nconst formArrayNameProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormArrayName)\n};\n/**\n * @description\n *\n * Syncs a nested `FormArray` to a DOM element.\n *\n * This directive is designed to be used with a parent `FormGroupDirective` (selector:\n * `[formGroup]`).\n *\n * It accepts the string name of the nested `FormArray` you want to link, and\n * will look for a `FormArray` registered with that name in the parent\n * `FormGroup` instance you passed into `FormGroupDirective`.\n *\n * @see [Reactive Forms Guide](guide/reactive-forms)\n * @see `AbstractControl`\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example forms/ts/nestedFormArray/nested_form_array_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormArrayName extends ControlContainer {\n constructor(parent, validators, asyncValidators) {\n super();\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /**\n * A lifecycle method called when the directive's inputs are initialized. For internal use only.\n * @throws If the directive does not have a valid parent.\n * @nodoc\n */\n ngOnInit() {\n this._checkParentType();\n this.formDirective.addFormArray(this);\n }\n /**\n * A lifecycle method called before the directive's instance is destroyed. For internal use only.\n * @nodoc\n */\n ngOnDestroy() {\n if (this.formDirective) {\n this.formDirective.removeFormArray(this);\n }\n }\n /**\n * @description\n * The `FormArray` bound to this directive.\n */\n get control() {\n return this.formDirective.getFormArray(this);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n _checkParentType() {\n if (_hasInvalidParent(this._parent) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw arrayParentException();\n }\n }\n}\nFormArrayName.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormArrayName, deps: [{ token: ControlContainer, host: true, optional: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });\nFormArrayName.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: FormArrayName, selector: \"[formArrayName]\", inputs: { name: [\"formArrayName\", \"name\"] }, providers: [formArrayNameProvider], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormArrayName, decorators: [{\n type: Directive,\n args: [{ selector: '[formArrayName]', providers: [formArrayNameProvider] }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }];\n }, propDecorators: { name: [{\n type: Input,\n args: ['formArrayName']\n }] } });\nfunction _hasInvalidParent(parent) {\n return !(parent instanceof FormGroupName) && !(parent instanceof FormGroupDirective) &&\n !(parent instanceof FormArrayName);\n}\n\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 */\nconst controlNameBinding = {\n provide: NgControl,\n useExisting: forwardRef(() => FormControlName)\n};\n/**\n * @description\n * Syncs a `FormControl` in an existing `FormGroup` to a form control\n * element by name.\n *\n * @see [Reactive Forms Guide](guide/reactive-forms)\n * @see `FormControl`\n * @see `AbstractControl`\n *\n * @usageNotes\n *\n * ### Register `FormControl` within a group\n *\n * The following example shows how to register multiple form controls within a form group\n * and set their value.\n *\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\n *\n * To see `formControlName` examples with different form control types, see:\n *\n * * Radio buttons: `RadioControlValueAccessor`\n * * Selects: `SelectControlValueAccessor`\n *\n * ### Use with ngModel is deprecated\n *\n * Support for using the `ngModel` input property and `ngModelChange` event with reactive\n * form directives has been deprecated in Angular v6 and is scheduled for removal in\n * a future version of Angular.\n *\n * For details, see [Deprecated features](guide/deprecations#ngmodel-with-reactive-forms).\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormControlName extends NgControl {\n constructor(parent, validators, asyncValidators, valueAccessors, _ngModelWarningConfig) {\n super();\n this._ngModelWarningConfig = _ngModelWarningConfig;\n this._added = false;\n /** @deprecated as of v6 */\n this.update = new EventEmitter();\n /**\n * @description\n * Instance property used to track whether an ngModel warning has been sent out for this\n * particular FormControlName instance. Used to support warning config of \"always\".\n *\n * @internal\n */\n this._ngModelWarningSent = false;\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /**\n * @description\n * Triggers a warning in dev mode that this input should not be used with reactive forms.\n */\n set isDisabled(isDisabled) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(disabledAttrWarning);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (!this._added)\n this._setUpControl();\n if (isPropertyUpdated(changes, this.viewModel)) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _ngModelWarning('formControlName', FormControlName, this, this._ngModelWarningConfig);\n }\n this.viewModel = this.model;\n this.formDirective.updateModel(this, this.model);\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.formDirective) {\n this.formDirective.removeControl(this);\n }\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value for the view model.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n _checkParentType() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!(this._parent instanceof FormGroupName) &&\n this._parent instanceof AbstractFormGroupDirective) {\n throw ngModelGroupException();\n }\n else if (!(this._parent instanceof FormGroupName) &&\n !(this._parent instanceof FormGroupDirective) &&\n !(this._parent instanceof FormArrayName)) {\n throw controlParentException();\n }\n }\n }\n _setUpControl() {\n this._checkParentType();\n this.control = this.formDirective.addControl(this);\n if (this.control.disabled && this.valueAccessor.setDisabledState) {\n this.valueAccessor.setDisabledState(true);\n }\n this._added = true;\n }\n}\n/**\n * @description\n * Static property used to track whether any ngModel warnings have been sent across\n * all instances of FormControlName. Used to support warning config of \"once\".\n *\n * @internal\n */\nFormControlName._ngModelWarningSentOnce = false;\nFormControlName.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormControlName, deps: [{ token: ControlContainer, host: true, optional: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }, { token: NG_MODEL_WITH_FORM_CONTROL_WARNING, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nFormControlName.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: FormControlName, selector: \"[formControlName]\", inputs: { name: [\"formControlName\", \"name\"], isDisabled: [\"disabled\", \"isDisabled\"], model: [\"ngModel\", \"model\"] }, outputs: { update: \"ngModelChange\" }, providers: [controlNameBinding], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormControlName, decorators: [{\n type: Directive,\n args: [{ selector: '[formControlName]', providers: [controlNameBinding] }]\n }], ctorParameters: function () {\n return [{ type: ControlContainer, decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_MODEL_WITH_FORM_CONTROL_WARNING]\n }] }];\n }, propDecorators: { name: [{\n type: Input,\n args: ['formControlName']\n }], isDisabled: [{\n type: Input,\n args: ['disabled']\n }], model: [{\n type: Input,\n args: ['ngModel']\n }], update: [{\n type: Output,\n args: ['ngModelChange']\n }] } });\n\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 */\nconst SELECT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectControlValueAccessor),\n multi: true\n};\nfunction _buildValueString$1(id, value) {\n if (id == null)\n return `${value}`;\n if (value && typeof value === 'object')\n value = 'Object';\n return `${id}: ${value}`.slice(0, 50);\n}\nfunction _extractId$1(valueString) {\n return valueString.split(':')[0];\n}\n/**\n * @description\n * The `ControlValueAccessor` for writing select control values and listening to select control\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @usageNotes\n *\n * ### Using select controls in a reactive form\n *\n * The following examples show how to use a select control in a reactive form.\n *\n * {@example forms/ts/reactiveSelectControl/reactive_select_control_example.ts region='Component'}\n *\n * ### Using select controls in a template-driven form\n *\n * To use a select in a template-driven form, simply add an `ngModel` and a `name`\n * attribute to the main `<select>` tag.\n *\n * {@example forms/ts/selectControl/select_control_example.ts region='Component'}\n *\n * ### Customizing option selection\n *\n * Angular uses object identity to select option. It's possible for the identities of items\n * to change while the data does not. This can happen, for example, if the items are produced\n * from an RPC to the server, and that RPC is re-run. Even if the data hasn't changed, the\n * second response will produce objects with different identities.\n *\n * To customize the default option comparison algorithm, `<select>` supports `compareWith` input.\n * `compareWith` takes a **function** which has two arguments: `option1` and `option2`.\n * If `compareWith` is given, Angular selects option by the return value of the function.\n *\n * ```ts\n * const selectedCountriesControl = new FormControl();\n * ```\n *\n * ```\n * <select [compareWith]=\"compareFn\" [formControl]=\"selectedCountriesControl\">\n * <option *ngFor=\"let country of countries\" [ngValue]=\"country\">\n * {{country.name}}\n * </option>\n * </select>\n *\n * compareFn(c1: Country, c2: Country): boolean {\n * return c1 && c2 ? c1.id === c2.id : c1 === c2;\n * }\n * ```\n *\n * **Note:** We listen to the 'change' event because 'input' events aren't fired\n * for selects in IE, see:\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event#browser_compatibility\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass SelectControlValueAccessor extends BuiltInControlValueAccessor {\n constructor() {\n super(...arguments);\n /** @internal */\n this._optionMap = new Map();\n /** @internal */\n this._idCounter = 0;\n this._compareWith = Object.is;\n }\n /**\n * @description\n * Tracks the option comparison algorithm for tracking identities when\n * checking for changes.\n */\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error(`compareWith must be a function, but received ${JSON.stringify(fn)}`);\n }\n this._compareWith = fn;\n }\n /**\n * Sets the \"value\" property on the select element.\n * @nodoc\n */\n writeValue(value) {\n this.value = value;\n const id = this._getOptionId(value);\n const valueString = _buildValueString$1(id, value);\n this.setProperty('value', valueString);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = (valueString) => {\n this.value = this._getOptionValue(valueString);\n fn(this.value);\n };\n }\n /** @internal */\n _registerOption() {\n return (this._idCounter++).toString();\n }\n /** @internal */\n _getOptionId(value) {\n for (const id of Array.from(this._optionMap.keys())) {\n if (this._compareWith(this._optionMap.get(id), value))\n return id;\n }\n return null;\n }\n /** @internal */\n _getOptionValue(valueString) {\n const id = _extractId$1(valueString);\n return this._optionMap.has(id) ? this._optionMap.get(id) : valueString;\n }\n}\nSelectControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SelectControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nSelectControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: SelectControlValueAccessor, selector: \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", inputs: { compareWith: \"compareWith\" }, host: { listeners: { \"change\": \"onChange($event.target.value)\", \"blur\": \"onTouched()\" } }, providers: [SELECT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SelectControlValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]',\n host: { '(change)': 'onChange($event.target.value)', '(blur)': 'onTouched()' },\n providers: [SELECT_VALUE_ACCESSOR]\n }]\n }], propDecorators: { compareWith: [{\n type: Input\n }] } });\n/**\n * @description\n * Marks `<option>` as dynamic, so Angular can be notified when options change.\n *\n * @see `SelectControlValueAccessor`\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgSelectOption {\n constructor(_element, _renderer, _select) {\n this._element = _element;\n this._renderer = _renderer;\n this._select = _select;\n if (this._select)\n this.id = this._select._registerOption();\n }\n /**\n * @description\n * Tracks the value bound to the option element. Unlike the value binding,\n * ngValue supports binding to objects.\n */\n set ngValue(value) {\n if (this._select == null)\n return;\n this._select._optionMap.set(this.id, value);\n this._setElementValue(_buildValueString$1(this.id, value));\n this._select.writeValue(this._select.value);\n }\n /**\n * @description\n * Tracks simple string values bound to the option element.\n * For objects, use the `ngValue` input binding.\n */\n set value(value) {\n this._setElementValue(value);\n if (this._select)\n this._select.writeValue(this._select.value);\n }\n /** @internal */\n _setElementValue(value) {\n this._renderer.setProperty(this._element.nativeElement, 'value', value);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._select) {\n this._select._optionMap.delete(this.id);\n this._select.writeValue(this._select.value);\n }\n }\n}\nNgSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSelectOption, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SelectControlValueAccessor, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSelectOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgSelectOption, selector: \"option\", inputs: { ngValue: \"ngValue\", value: \"value\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSelectOption, decorators: [{\n type: Directive,\n args: [{ selector: 'option' }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SelectControlValueAccessor, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngValue: [{\n type: Input,\n args: ['ngValue']\n }], value: [{\n type: Input,\n args: ['value']\n }] } });\n\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 */\nconst SELECT_MULTIPLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectMultipleControlValueAccessor),\n multi: true\n};\nfunction _buildValueString(id, value) {\n if (id == null)\n return `${value}`;\n if (typeof value === 'string')\n value = `'${value}'`;\n if (value && typeof value === 'object')\n value = 'Object';\n return `${id}: ${value}`.slice(0, 50);\n}\nfunction _extractId(valueString) {\n return valueString.split(':')[0];\n}\n/** Mock interface for HTMLCollection */\nclass HTMLCollection {\n}\n/**\n * @description\n * The `ControlValueAccessor` for writing multi-select control values and listening to multi-select\n * control changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @see `SelectControlValueAccessor`\n *\n * @usageNotes\n *\n * ### Using a multi-select control\n *\n * The follow example shows you how to use a multi-select control with a reactive form.\n *\n * ```ts\n * const countryControl = new FormControl();\n * ```\n *\n * ```\n * <select multiple name=\"countries\" [formControl]=\"countryControl\">\n * <option *ngFor=\"let country of countries\" [ngValue]=\"country\">\n * {{ country.name }}\n * </option>\n * </select>\n * ```\n *\n * ### Customizing option selection\n *\n * To customize the default option comparison algorithm, `<select>` supports `compareWith` input.\n * See the `SelectControlValueAccessor` for usage.\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass SelectMultipleControlValueAccessor extends BuiltInControlValueAccessor {\n constructor() {\n super(...arguments);\n /** @internal */\n this._optionMap = new Map();\n /** @internal */\n this._idCounter = 0;\n this._compareWith = Object.is;\n }\n /**\n * @description\n * Tracks the option comparison algorithm for tracking identities when\n * checking for changes.\n */\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error(`compareWith must be a function, but received ${JSON.stringify(fn)}`);\n }\n this._compareWith = fn;\n }\n /**\n * Sets the \"value\" property on one or of more of the select's options.\n * @nodoc\n */\n writeValue(value) {\n this.value = value;\n let optionSelectedStateSetter;\n if (Array.isArray(value)) {\n // convert values to ids\n const ids = value.map((v) => this._getOptionId(v));\n optionSelectedStateSetter = (opt, o) => {\n opt._setSelected(ids.indexOf(o.toString()) > -1);\n };\n }\n else {\n optionSelectedStateSetter = (opt, o) => {\n opt._setSelected(false);\n };\n }\n this._optionMap.forEach(optionSelectedStateSetter);\n }\n /**\n * Registers a function called when the control value changes\n * and writes an array of the selected options.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = (element) => {\n const selected = [];\n const selectedOptions = element.selectedOptions;\n if (selectedOptions !== undefined) {\n const options = selectedOptions;\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n // Degrade to use `options` when `selectedOptions` property is not available.\n // Note: the `selectedOptions` is available in all supported browsers, but the Domino lib\n // doesn't have it currently, see https://github.com/fgnass/domino/issues/177.\n else {\n const options = element.options;\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n if (opt.selected) {\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n }\n this.value = selected;\n fn(selected);\n };\n }\n /** @internal */\n _registerOption(value) {\n const id = (this._idCounter++).toString();\n this._optionMap.set(id, value);\n return id;\n }\n /** @internal */\n _getOptionId(value) {\n for (const id of Array.from(this._optionMap.keys())) {\n if (this._compareWith(this._optionMap.get(id)._value, value))\n return id;\n }\n return null;\n }\n /** @internal */\n _getOptionValue(valueString) {\n const id = _extractId(valueString);\n return this._optionMap.has(id) ? this._optionMap.get(id)._value : valueString;\n }\n}\nSelectMultipleControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SelectMultipleControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nSelectMultipleControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: SelectMultipleControlValueAccessor, selector: \"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]\", inputs: { compareWith: \"compareWith\" }, host: { listeners: { \"change\": \"onChange($event.target)\", \"blur\": \"onTouched()\" } }, providers: [SELECT_MULTIPLE_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SelectMultipleControlValueAccessor, decorators: [{\n type: Directive,\n args: [{\n selector: 'select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]',\n host: { '(change)': 'onChange($event.target)', '(blur)': 'onTouched()' },\n providers: [SELECT_MULTIPLE_VALUE_ACCESSOR]\n }]\n }], propDecorators: { compareWith: [{\n type: Input\n }] } });\n/**\n * @description\n * Marks `<option>` as dynamic, so Angular can be notified when options change.\n *\n * @see `SelectMultipleControlValueAccessor`\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass ɵNgSelectMultipleOption {\n constructor(_element, _renderer, _select) {\n this._element = _element;\n this._renderer = _renderer;\n this._select = _select;\n if (this._select) {\n this.id = this._select._registerOption(this);\n }\n }\n /**\n * @description\n * Tracks the value bound to the option element. Unlike the value binding,\n * ngValue supports binding to objects.\n */\n set ngValue(value) {\n if (this._select == null)\n return;\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this._select.writeValue(this._select.value);\n }\n /**\n * @description\n * Tracks simple string values bound to the option element.\n * For objects, use the `ngValue` input binding.\n */\n set value(value) {\n if (this._select) {\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this._select.writeValue(this._select.value);\n }\n else {\n this._setElementValue(value);\n }\n }\n /** @internal */\n _setElementValue(value) {\n this._renderer.setProperty(this._element.nativeElement, 'value', value);\n }\n /** @internal */\n _setSelected(selected) {\n this._renderer.setProperty(this._element.nativeElement, 'selected', selected);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._select) {\n this._select._optionMap.delete(this.id);\n this._select.writeValue(this._select.value);\n }\n }\n}\nɵNgSelectMultipleOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵNgSelectMultipleOption, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SelectMultipleControlValueAccessor, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nɵNgSelectMultipleOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: ɵNgSelectMultipleOption, selector: \"option\", inputs: { ngValue: \"ngValue\", value: \"value\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵNgSelectMultipleOption, decorators: [{\n type: Directive,\n args: [{ selector: 'option' }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SelectMultipleControlValueAccessor, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngValue: [{\n type: Input,\n args: ['ngValue']\n }], value: [{\n type: Input,\n args: ['value']\n }] } });\n\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/**\n * Method that updates string to integer if not already a number\n *\n * @param value The value to convert to integer.\n * @returns value of parameter converted to number or integer.\n */\nfunction toInteger(value) {\n return typeof value === 'number' ? value : parseInt(value, 10);\n}\n/**\n * Method that converts null, false or 'false' string to boolean.\n *\n * @param value input value.\n * @returns value of parameter converted to boolean.\n */\nfunction toBoolean(input) {\n return input != null && input !== false && `${input}` !== 'false';\n}\n/**\n * Method that ensures that provided value is a float (and converts it to float if needed).\n *\n * @param value The value to convert to float.\n * @returns value of parameter converted to number or float.\n */\nfunction toFloat(value) {\n return typeof value === 'number' ? value : parseFloat(value);\n}\n/**\n * A base class for Validator-based Directives. The class contains common logic shared across such\n * Directives.\n *\n * For internal use only, this class is not intended for use outside of the Forms package.\n */\nclass AbstractValidatorDirective {\n constructor() {\n this._validator = nullValidator;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this.inputName in changes) {\n const input = this.normalizeInput(changes[this.inputName].currentValue);\n this._enabled = this.enabled(input);\n this._validator = this._enabled ? this.createValidator(input) : nullValidator;\n if (this._onChange) {\n this._onChange();\n }\n }\n }\n /** @nodoc */\n validate(control) {\n return this._validator(control);\n }\n /** @nodoc */\n registerOnValidatorChange(fn) {\n this._onChange = fn;\n }\n /**\n * @description\n * Determines whether this validator should be active or not based on an input.\n * Base class implementation checks whether an input is defined (if the value is different from\n * `null` and `undefined`). Validator classes that extend this base class can override this\n * function with the logic specific to a particular validator directive.\n */\n enabled(input) {\n return input != null /* both `null` and `undefined` */;\n }\n}\nAbstractValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AbstractValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nAbstractValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: AbstractValidatorDirective, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AbstractValidatorDirective, decorators: [{\n type: Directive\n }] });\n/**\n * @description\n * Provider which adds `MaxValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MAX_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n/**\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `max` attribute.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a max validator\n *\n * The following example shows how to add a max validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * <input type=\"number\" ngModel max=\"4\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MaxValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'max';\n /** @internal */\n this.normalizeInput = (input) => toFloat(input);\n /** @internal */\n this.createValidator = (max) => maxValidator(max);\n }\n}\nMaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MaxValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nMaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: MaxValidator, selector: \"input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]\", inputs: { max: \"max\" }, host: { properties: { \"attr.max\": \"_enabled ? max : null\" } }, providers: [MAX_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MaxValidator, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: { '[attr.max]': '_enabled ? max : null' }\n }]\n }], propDecorators: { max: [{\n type: Input\n }] } });\n/**\n * @description\n * Provider which adds `MinValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MIN_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n/**\n * A directive which installs the {@link MinValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a min validator\n *\n * The following example shows how to add a min validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * <input type=\"number\" ngModel min=\"4\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MinValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'min';\n /** @internal */\n this.normalizeInput = (input) => toFloat(input);\n /** @internal */\n this.createValidator = (min) => minValidator(min);\n }\n}\nMinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MinValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nMinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: MinValidator, selector: \"input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]\", inputs: { min: \"min\" }, host: { properties: { \"attr.min\": \"_enabled ? min : null\" } }, providers: [MIN_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MinValidator, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: { '[attr.min]': '_enabled ? min : null' }\n }]\n }], propDecorators: { min: [{\n type: Input\n }] } });\n/**\n * @description\n * Provider which adds `RequiredValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RequiredValidator),\n multi: true\n};\n/**\n * @description\n * Provider which adds `CheckboxRequiredValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst CHECKBOX_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CheckboxRequiredValidator),\n multi: true\n};\n/**\n * @description\n * A directive that adds the `required` validator to any controls marked with the\n * `required` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a required validator using template-driven forms\n *\n * ```\n * <input name=\"fullName\" ngModel required>\n * ```\n *\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass RequiredValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'required';\n /** @internal */\n this.normalizeInput = (input) => toBoolean(input);\n /** @internal */\n this.createValidator = (input) => requiredValidator;\n }\n /** @nodoc */\n enabled(input) {\n return input;\n }\n}\nRequiredValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RequiredValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nRequiredValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: { required: \"required\" }, host: { properties: { \"attr.required\": \"_enabled ? \\\"\\\" : null\" } }, providers: [REQUIRED_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RequiredValidator, decorators: [{\n type: Directive,\n args: [{\n selector: ':not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]',\n providers: [REQUIRED_VALIDATOR],\n host: { '[attr.required]': '_enabled ? \"\" : null' }\n }]\n }], propDecorators: { required: [{\n type: Input\n }] } });\n/**\n * A Directive that adds the `required` validator to checkbox controls marked with the\n * `required` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a required checkbox validator using template-driven forms\n *\n * The following example shows how to add a checkbox required validator to an input attached to an\n * ngModel binding.\n *\n * ```\n * <input type=\"checkbox\" name=\"active\" ngModel required>\n * ```\n *\n * @publicApi\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n */\nclass CheckboxRequiredValidator extends RequiredValidator {\n constructor() {\n super(...arguments);\n /** @internal */\n this.createValidator = (input) => requiredTrueValidator;\n }\n}\nCheckboxRequiredValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CheckboxRequiredValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nCheckboxRequiredValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: CheckboxRequiredValidator, selector: \"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]\", host: { properties: { \"attr.required\": \"_enabled ? \\\"\\\" : null\" } }, providers: [CHECKBOX_REQUIRED_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CheckboxRequiredValidator, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]',\n providers: [CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': '_enabled ? \"\" : null' }\n }]\n }] });\n/**\n * @description\n * Provider which adds `EmailValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst EMAIL_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EmailValidator),\n multi: true\n};\n/**\n * A directive that adds the `email` validator to controls marked with the\n * `email` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * The email validation is based on the WHATWG HTML specification with some enhancements to\n * incorporate more RFC rules. More information can be found on the [Validators.email\n * page](api/forms/Validators#email).\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding an email validator\n *\n * The following example shows how to add an email validator to an input attached to an ngModel\n * binding.\n *\n * ```\n * <input type=\"email\" name=\"email\" ngModel email>\n * <input type=\"email\" name=\"email\" ngModel email=\"true\">\n * <input type=\"email\" name=\"email\" ngModel [email]=\"true\">\n * ```\n *\n * @publicApi\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n */\nclass EmailValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'email';\n /** @internal */\n this.normalizeInput = (input) => \n // Avoid TSLint requirement to omit semicolon, see\n // https://github.com/palantir/tslint/issues/1476\n // tslint:disable-next-line:semicolon\n (input === '' || input === true || input === 'true');\n /** @internal */\n this.createValidator = (input) => emailValidator;\n }\n /** @nodoc */\n enabled(input) {\n return input;\n }\n}\nEmailValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: EmailValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nEmailValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: EmailValidator, selector: \"[email][formControlName],[email][formControl],[email][ngModel]\", inputs: { email: \"email\" }, providers: [EMAIL_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: EmailValidator, decorators: [{\n type: Directive,\n args: [{\n selector: '[email][formControlName],[email][formControl],[email][ngModel]',\n providers: [EMAIL_VALIDATOR]\n }]\n }], propDecorators: { email: [{\n type: Input\n }] } });\n/**\n * @description\n * Provider which adds `MinLengthValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MIN_LENGTH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinLengthValidator),\n multi: true\n};\n/**\n * A directive that adds minimum length validation to controls marked with the\n * `minlength` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a minimum length validator\n *\n * The following example shows how to add a minimum length validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * <input name=\"firstName\" ngModel minlength=\"4\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MinLengthValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'minlength';\n /** @internal */\n this.normalizeInput = (input) => toInteger(input);\n /** @internal */\n this.createValidator = (minlength) => minLengthValidator(minlength);\n }\n}\nMinLengthValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MinLengthValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nMinLengthValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: MinLengthValidator, selector: \"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]\", inputs: { minlength: \"minlength\" }, host: { properties: { \"attr.minlength\": \"_enabled ? minlength : null\" } }, providers: [MIN_LENGTH_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MinLengthValidator, decorators: [{\n type: Directive,\n args: [{\n selector: '[minlength][formControlName],[minlength][formControl],[minlength][ngModel]',\n providers: [MIN_LENGTH_VALIDATOR],\n host: { '[attr.minlength]': '_enabled ? minlength : null' }\n }]\n }], propDecorators: { minlength: [{\n type: Input\n }] } });\n/**\n * @description\n * Provider which adds `MaxLengthValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MAX_LENGTH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxLengthValidator),\n multi: true\n};\n/**\n * A directive that adds max length validation to controls marked with the\n * `maxlength` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a maximum length validator\n *\n * The following example shows how to add a maximum length validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * <input name=\"firstName\" ngModel maxlength=\"25\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MaxLengthValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'maxlength';\n /** @internal */\n this.normalizeInput = (input) => toInteger(input);\n /** @internal */\n this.createValidator = (maxlength) => maxLengthValidator(maxlength);\n }\n}\nMaxLengthValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MaxLengthValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nMaxLengthValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: { maxlength: \"maxlength\" }, host: { properties: { \"attr.maxlength\": \"_enabled ? maxlength : null\" } }, providers: [MAX_LENGTH_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: MaxLengthValidator, decorators: [{\n type: Directive,\n args: [{\n selector: '[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]',\n providers: [MAX_LENGTH_VALIDATOR],\n host: { '[attr.maxlength]': '_enabled ? maxlength : null' }\n }]\n }], propDecorators: { maxlength: [{\n type: Input\n }] } });\n/**\n * @description\n * Provider which adds `PatternValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst PATTERN_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PatternValidator),\n multi: true\n};\n/**\n * @description\n * A directive that adds regex pattern validation to controls marked with the\n * `pattern` attribute. The regex must match the entire control value.\n * The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a pattern validator\n *\n * The following example shows how to add a pattern validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * <input name=\"firstName\" ngModel pattern=\"[a-zA-Z ]*\">\n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass PatternValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'pattern';\n /** @internal */\n this.normalizeInput = (input) => input;\n /** @internal */\n this.createValidator = (input) => patternValidator(input);\n }\n}\nPatternValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PatternValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nPatternValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: PatternValidator, selector: \"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]\", inputs: { pattern: \"pattern\" }, host: { properties: { \"attr.pattern\": \"_enabled ? pattern : null\" } }, providers: [PATTERN_VALIDATOR], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PatternValidator, decorators: [{\n type: Directive,\n args: [{\n selector: '[pattern][formControlName],[pattern][formControl],[pattern][ngModel]',\n providers: [PATTERN_VALIDATOR],\n host: { '[attr.pattern]': '_enabled ? pattern : null' }\n }]\n }], propDecorators: { pattern: [{\n type: Input\n }] } });\n\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 */\nconst SHARED_FORM_DIRECTIVES = [\n ɵNgNoValidate,\n NgSelectOption,\n ɵNgSelectMultipleOption,\n DefaultValueAccessor,\n NumberValueAccessor,\n RangeValueAccessor,\n CheckboxControlValueAccessor,\n SelectControlValueAccessor,\n SelectMultipleControlValueAccessor,\n RadioControlValueAccessor,\n NgControlStatus,\n NgControlStatusGroup,\n RequiredValidator,\n MinLengthValidator,\n MaxLengthValidator,\n PatternValidator,\n CheckboxRequiredValidator,\n EmailValidator,\n MinValidator,\n MaxValidator,\n];\nconst TEMPLATE_DRIVEN_DIRECTIVES = [NgModel, NgModelGroup, NgForm];\nconst REACTIVE_DRIVEN_DIRECTIVES = [FormControlDirective, FormGroupDirective, FormControlName, FormGroupName, FormArrayName];\n/**\n * Internal module used for sharing directives between FormsModule and ReactiveFormsModule\n */\nclass ɵInternalFormsSharedModule {\n}\nɵInternalFormsSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵInternalFormsSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nɵInternalFormsSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵInternalFormsSharedModule, declarations: [ɵNgNoValidate,\n NgSelectOption,\n ɵNgSelectMultipleOption,\n DefaultValueAccessor,\n NumberValueAccessor,\n RangeValueAccessor,\n CheckboxControlValueAccessor,\n SelectControlValueAccessor,\n SelectMultipleControlValueAccessor,\n RadioControlValueAccessor,\n NgControlStatus,\n NgControlStatusGroup,\n RequiredValidator,\n MinLengthValidator,\n MaxLengthValidator,\n PatternValidator,\n CheckboxRequiredValidator,\n EmailValidator,\n MinValidator,\n MaxValidator], imports: [RadioControlRegistryModule], exports: [ɵNgNoValidate,\n NgSelectOption,\n ɵNgSelectMultipleOption,\n DefaultValueAccessor,\n NumberValueAccessor,\n RangeValueAccessor,\n CheckboxControlValueAccessor,\n SelectControlValueAccessor,\n SelectMultipleControlValueAccessor,\n RadioControlValueAccessor,\n NgControlStatus,\n NgControlStatusGroup,\n RequiredValidator,\n MinLengthValidator,\n MaxLengthValidator,\n PatternValidator,\n CheckboxRequiredValidator,\n EmailValidator,\n MinValidator,\n MaxValidator] });\nɵInternalFormsSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵInternalFormsSharedModule, imports: [[RadioControlRegistryModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵInternalFormsSharedModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: SHARED_FORM_DIRECTIVES,\n imports: [RadioControlRegistryModule],\n exports: SHARED_FORM_DIRECTIVES,\n }]\n }] });\n\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/**\n * Exports the required providers and directives for template-driven forms,\n * making them available for import by NgModules that import this module.\n *\n * Providers associated with this module:\n * * `RadioControlRegistry`\n *\n * @see [Forms Overview](/guide/forms-overview)\n * @see [Template-driven Forms Guide](/guide/forms)\n *\n * @publicApi\n */\nclass FormsModule {\n}\nFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormsModule, declarations: [NgModel, NgModelGroup, NgForm], exports: [ɵInternalFormsSharedModule, NgModel, NgModelGroup, NgForm] });\nFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormsModule, imports: [ɵInternalFormsSharedModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: TEMPLATE_DRIVEN_DIRECTIVES,\n exports: [ɵInternalFormsSharedModule, TEMPLATE_DRIVEN_DIRECTIVES]\n }]\n }] });\n/**\n * Exports the required infrastructure and directives for reactive forms,\n * making them available for import by NgModules that import this module.\n *\n * Providers associated with this module:\n * * `FormBuilder`\n * * `RadioControlRegistry`\n *\n * @see [Forms Overview](guide/forms-overview)\n * @see [Reactive Forms Guide](guide/reactive-forms)\n *\n * @publicApi\n */\nclass ReactiveFormsModule {\n /**\n * @description\n * Provides options for configuring the reactive forms module.\n *\n * @param opts An object of configuration options\n * * `warnOnNgModelWithFormControl` Configures when to emit a warning when an `ngModel`\n * binding is used with reactive form directives.\n */\n static withConfig(opts) {\n return {\n ngModule: ReactiveFormsModule,\n providers: [\n { provide: NG_MODEL_WITH_FORM_CONTROL_WARNING, useValue: opts.warnOnNgModelWithFormControl }\n ]\n };\n }\n}\nReactiveFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ReactiveFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nReactiveFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ReactiveFormsModule, declarations: [FormControlDirective, FormGroupDirective, FormControlName, FormGroupName, FormArrayName], exports: [ɵInternalFormsSharedModule, FormControlDirective, FormGroupDirective, FormControlName, FormGroupName, FormArrayName] });\nReactiveFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ReactiveFormsModule, imports: [ɵInternalFormsSharedModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ReactiveFormsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [REACTIVE_DRIVEN_DIRECTIVES],\n exports: [ɵInternalFormsSharedModule, REACTIVE_DRIVEN_DIRECTIVES]\n }]\n }] });\n\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 */\nfunction isAbstractControlOptions(options) {\n return options.asyncValidators !== undefined ||\n options.validators !== undefined ||\n options.updateOn !== undefined;\n}\n/**\n * @description\n * Creates an `AbstractControl` from a user-specified configuration.\n *\n * The `FormBuilder` provides syntactic sugar that shortens creating instances of a `FormControl`,\n * `FormGroup`, or `FormArray`. It reduces the amount of boilerplate needed to build complex\n * forms.\n *\n * @see [Reactive Forms Guide](/guide/reactive-forms)\n *\n * @publicApi\n */\nclass FormBuilder {\n group(controlsConfig, options = null) {\n const controls = this._reduceControls(controlsConfig);\n let validators = null;\n let asyncValidators = null;\n let updateOn = undefined;\n if (options != null) {\n if (isAbstractControlOptions(options)) {\n // `options` are `AbstractControlOptions`\n validators = options.validators != null ? options.validators : null;\n asyncValidators = options.asyncValidators != null ? options.asyncValidators : null;\n updateOn = options.updateOn != null ? options.updateOn : undefined;\n }\n else {\n // `options` are legacy form group options\n validators = options['validator'] != null ? options['validator'] : null;\n asyncValidators = options['asyncValidator'] != null ? options['asyncValidator'] : null;\n }\n }\n return new FormGroup(controls, { asyncValidators, updateOn, validators });\n }\n /**\n * @description\n * Construct a new `FormControl` with the given state, validators and options.\n *\n * @param formState Initializes the control with an initial state value, or\n * with an object that contains both a value and a disabled status.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains\n * validation functions and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator\n * functions.\n *\n * @usageNotes\n *\n * ### Initialize a control as disabled\n *\n * The following example returns a control with an initial value in a disabled state.\n *\n * <code-example path=\"forms/ts/formBuilder/form_builder_example.ts\" region=\"disabled-control\">\n * </code-example>\n */\n control(formState, validatorOrOpts, asyncValidator) {\n return new FormControl(formState, validatorOrOpts, asyncValidator);\n }\n /**\n * Constructs a new `FormArray` from the given array of configurations,\n * validators and options.\n *\n * @param controlsConfig An array of child controls or control configs. Each\n * child control is given an index when it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains\n * validation functions and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator\n * functions.\n */\n array(controlsConfig, validatorOrOpts, asyncValidator) {\n const controls = controlsConfig.map(c => this._createControl(c));\n return new FormArray(controls, validatorOrOpts, asyncValidator);\n }\n /** @internal */\n _reduceControls(controlsConfig) {\n const controls = {};\n Object.keys(controlsConfig).forEach(controlName => {\n controls[controlName] = this._createControl(controlsConfig[controlName]);\n });\n return controls;\n }\n /** @internal */\n _createControl(controlConfig) {\n if (isFormControl(controlConfig) || isFormGroup(controlConfig) || isFormArray(controlConfig)) {\n return controlConfig;\n }\n else if (Array.isArray(controlConfig)) {\n const value = controlConfig[0];\n const validator = controlConfig.length > 1 ? controlConfig[1] : null;\n const asyncValidator = controlConfig.length > 2 ? controlConfig[2] : null;\n return this.control(value, validator, asyncValidator);\n }\n else {\n return this.control(controlConfig);\n }\n }\n}\nFormBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFormBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormBuilder, providedIn: ReactiveFormsModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: FormBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: ReactiveFormsModule }]\n }] });\n\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/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.4');\n\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\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 file only reexports content of the `src` folder. Keep it that way.\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AbstractControl, AbstractControlDirective, AbstractFormGroupDirective, COMPOSITION_BUFFER_MODE, CheckboxControlValueAccessor, CheckboxRequiredValidator, ControlContainer, DefaultValueAccessor, EmailValidator, FormArray, FormArrayName, FormBuilder, FormControl, FormControlDirective, FormControlName, FormGroup, FormGroupDirective, FormGroupName, FormsModule, MaxLengthValidator, MaxValidator, MinLengthValidator, MinValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, NgControlStatus, NgControlStatusGroup, NgForm, NgModel, NgModelGroup, NgSelectOption, NumberValueAccessor, PatternValidator, RadioControlValueAccessor, RangeValueAccessor, ReactiveFormsModule, RequiredValidator, SelectControlValueAccessor, SelectMultipleControlValueAccessor, VERSION, Validators, ɵInternalFormsSharedModule, ɵNgNoValidate, ɵNgSelectMultipleOption };\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 { 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 { 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 { 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 { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? () => EMPTY\n : operate((source, subscriber) => {\n let buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, () => {\n for (const value of buffer) {\n subscriber.next(value);\n }\n subscriber.complete();\n }, undefined, () => {\n buffer = null;\n }));\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","/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ɵisObservable, ɵisPromise, EventEmitter, Directive, Attribute, Output, Component, NgModuleRef, InjectionToken, InjectFlags, NgModuleFactory, ɵConsole, NgZone, Injectable, Input, HostListener, HostBinding, Optional, ContentChildren, Injector, Compiler, NgProbeToken, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf, Inject, APP_INITIALIZER, APP_BOOTSTRAP_LISTENER, NgModule, ApplicationRef, Version } from '@angular/core';\nimport { from, of, BehaviorSubject, combineLatest, throwError, EmptyError, concat, defer, Observable, EMPTY, ConnectableObservable, Subject } from 'rxjs';\nimport { map, switchMap, take, startWith, scan, filter, catchError, concatMap, last as last$1, first, mergeMap, tap, takeLast, refCount, finalize, mergeAll } from 'rxjs/operators';\nimport * as i3 from '@angular/common';\nimport { Location, LocationStrategy, PlatformLocation, APP_BASE_HREF, ViewportScroller, HashLocationStrategy, PathLocationStrategy, LOCATION_INITIALIZED } from '@angular/common';\n\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/**\n * Base for events the router goes through, as opposed to events tied to a specific\n * route. Fired one time for any given navigation.\n *\n * The following code shows how a class subscribes to router events.\n *\n * ```ts\n * import {Event, RouterEvent, Router} from '@angular/router';\n *\n * class MyService {\n * constructor(public router: Router) {\n * router.events.pipe(\n * filter((e: Event): e is RouterEvent => e instanceof RouterEvent)\n * ).subscribe((e: RouterEvent) => {\n * // Do something\n * });\n * }\n * }\n * ```\n *\n * @see `Event`\n * @see [Router events summary](guide/router-reference#router-events)\n * @publicApi\n */\nclass RouterEvent {\n constructor(\n /** A unique ID that the router assigns to every router navigation. */\n id, \n /** The URL that is the destination for this navigation. */\n url) {\n this.id = id;\n this.url = url;\n }\n}\n/**\n * An event triggered when a navigation starts.\n *\n * @publicApi\n */\nclass NavigationStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n navigationTrigger = 'imperative', \n /** @docsNotRequired */\n restoredState = null) {\n super(id, url);\n this.navigationTrigger = navigationTrigger;\n this.restoredState = restoredState;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationStart(id: ${this.id}, url: '${this.url}')`;\n }\n}\n/**\n * An event triggered when a navigation ends successfully.\n *\n * @see `NavigationStart`\n * @see `NavigationCancel`\n * @see `NavigationError`\n *\n * @publicApi\n */\nclass NavigationEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`;\n }\n}\n/**\n * An event triggered when a navigation is canceled, directly or indirectly.\n * This can happen for several reasons including when a route guard\n * returns `false` or initiates a redirect by returning a `UrlTree`.\n *\n * @see `NavigationStart`\n * @see `NavigationEnd`\n * @see `NavigationError`\n *\n * @publicApi\n */\nclass NavigationCancel extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n reason) {\n super(id, url);\n this.reason = reason;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationCancel(id: ${this.id}, url: '${this.url}')`;\n }\n}\n/**\n * An event triggered when a navigation fails due to an unexpected error.\n *\n * @see `NavigationStart`\n * @see `NavigationEnd`\n * @see `NavigationCancel`\n *\n * @publicApi\n */\nclass NavigationError extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n error) {\n super(id, url);\n this.error = error;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`;\n }\n}\n/**\n * An event triggered when routes are recognized.\n *\n * @publicApi\n */\nclass RoutesRecognized extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n }\n /** @docsNotRequired */\n toString() {\n return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the start of the Guard phase of routing.\n *\n * @see `GuardsCheckEnd`\n *\n * @publicApi\n */\nclass GuardsCheckStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n }\n toString() {\n return `GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the end of the Guard phase of routing.\n *\n * @see `GuardsCheckStart`\n *\n * @publicApi\n */\nclass GuardsCheckEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state, \n /** @docsNotRequired */\n shouldActivate) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.shouldActivate = shouldActivate;\n }\n toString() {\n return `GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`;\n }\n}\n/**\n * An event triggered at the start of the Resolve phase of routing.\n *\n * Runs in the \"resolve\" phase whether or not there is anything to resolve.\n * In future, may change to only run when there are things to be resolved.\n *\n * @see `ResolveEnd`\n *\n * @publicApi\n */\nclass ResolveStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n }\n toString() {\n return `ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the end of the Resolve phase of routing.\n * @see `ResolveStart`.\n *\n * @publicApi\n */\nclass ResolveEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n }\n toString() {\n return `ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered before lazy loading a route configuration.\n *\n * @see `RouteConfigLoadEnd`\n *\n * @publicApi\n */\nclass RouteConfigLoadStart {\n constructor(\n /** @docsNotRequired */\n route) {\n this.route = route;\n }\n toString() {\n return `RouteConfigLoadStart(path: ${this.route.path})`;\n }\n}\n/**\n * An event triggered when a route has been lazy loaded.\n *\n * @see `RouteConfigLoadStart`\n *\n * @publicApi\n */\nclass RouteConfigLoadEnd {\n constructor(\n /** @docsNotRequired */\n route) {\n this.route = route;\n }\n toString() {\n return `RouteConfigLoadEnd(path: ${this.route.path})`;\n }\n}\n/**\n * An event triggered at the start of the child-activation\n * part of the Resolve phase of routing.\n * @see `ChildActivationEnd`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ChildActivationStart {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ChildActivationStart(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the end of the child-activation part\n * of the Resolve phase of routing.\n * @see `ChildActivationStart`\n * @see `ResolveStart`\n * @publicApi\n */\nclass ChildActivationEnd {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ChildActivationEnd(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the start of the activation part\n * of the Resolve phase of routing.\n * @see `ActivationEnd`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ActivationStart {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ActivationStart(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the end of the activation part\n * of the Resolve phase of routing.\n * @see `ActivationStart`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ActivationEnd {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ActivationEnd(path: '${path}')`;\n }\n}\n/**\n * An event triggered by scrolling.\n *\n * @publicApi\n */\nclass Scroll {\n constructor(\n /** @docsNotRequired */\n routerEvent, \n /** @docsNotRequired */\n position, \n /** @docsNotRequired */\n anchor) {\n this.routerEvent = routerEvent;\n this.position = position;\n this.anchor = anchor;\n }\n toString() {\n const pos = this.position ? `${this.position[0]}, ${this.position[1]}` : null;\n return `Scroll(anchor: '${this.anchor}', position: '${pos}')`;\n }\n}\n\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/**\n * The primary routing outlet.\n *\n * @publicApi\n */\nconst PRIMARY_OUTLET = 'primary';\nclass ParamsAsMap {\n constructor(params) {\n this.params = params || {};\n }\n has(name) {\n return Object.prototype.hasOwnProperty.call(this.params, name);\n }\n get(name) {\n if (this.has(name)) {\n const v = this.params[name];\n return Array.isArray(v) ? v[0] : v;\n }\n return null;\n }\n getAll(name) {\n if (this.has(name)) {\n const v = this.params[name];\n return Array.isArray(v) ? v : [v];\n }\n return [];\n }\n get keys() {\n return Object.keys(this.params);\n }\n}\n/**\n * Converts a `Params` instance to a `ParamMap`.\n * @param params The instance to convert.\n * @returns The new map instance.\n *\n * @publicApi\n */\nfunction convertToParamMap(params) {\n return new ParamsAsMap(params);\n}\nconst NAVIGATION_CANCELING_ERROR = 'ngNavigationCancelingError';\nfunction navigationCancelingError(message) {\n const error = Error('NavigationCancelingError: ' + message);\n error[NAVIGATION_CANCELING_ERROR] = true;\n return error;\n}\nfunction isNavigationCancelingError(error) {\n return error && error[NAVIGATION_CANCELING_ERROR];\n}\n// Matches the route configuration (`route`) against the actual URL (`segments`).\nfunction defaultUrlMatcher(segments, segmentGroup, route) {\n const parts = route.path.split('/');\n if (parts.length > segments.length) {\n // The actual URL is shorter than the config, no match\n return null;\n }\n if (route.pathMatch === 'full' &&\n (segmentGroup.hasChildren() || parts.length < segments.length)) {\n // The config is longer than the actual URL but we are looking for a full match, return null\n return null;\n }\n const posParams = {};\n // Check each config part against the actual URL\n for (let index = 0; index < parts.length; index++) {\n const part = parts[index];\n const segment = segments[index];\n const isParameter = part.startsWith(':');\n if (isParameter) {\n posParams[part.substring(1)] = segment;\n }\n else if (part !== segment.path) {\n // The actual URL part does not match the config, no match\n return null;\n }\n }\n return { consumed: segments.slice(0, parts.length), posParams };\n}\n\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 */\nfunction shallowEqualArrays(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (!shallowEqual(a[i], b[i]))\n return false;\n }\n return true;\n}\nfunction shallowEqual(a, b) {\n // While `undefined` should never be possible, it would sometimes be the case in IE 11\n // and pre-chromium Edge. The check below accounts for this edge case.\n const k1 = a ? Object.keys(a) : undefined;\n const k2 = b ? Object.keys(b) : undefined;\n if (!k1 || !k2 || k1.length != k2.length) {\n return false;\n }\n let key;\n for (let i = 0; i < k1.length; i++) {\n key = k1[i];\n if (!equalArraysOrString(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Test equality for arrays of strings or a string.\n */\nfunction equalArraysOrString(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length)\n return false;\n const aSorted = [...a].sort();\n const bSorted = [...b].sort();\n return aSorted.every((val, index) => bSorted[index] === val);\n }\n else {\n return a === b;\n }\n}\n/**\n * Flattens single-level nested arrays.\n */\nfunction flatten(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n/**\n * Return the last element of an array.\n */\nfunction last(a) {\n return a.length > 0 ? a[a.length - 1] : null;\n}\n/**\n * Verifys all booleans in an array are `true`.\n */\nfunction and(bools) {\n return !bools.some(v => !v);\n}\nfunction forEach(map, callback) {\n for (const prop in map) {\n if (map.hasOwnProperty(prop)) {\n callback(map[prop], prop);\n }\n }\n}\nfunction wrapIntoObservable(value) {\n if (ɵisObservable(value)) {\n return value;\n }\n if (ɵisPromise(value)) {\n // Use `Promise.resolve()` to wrap promise-like instances.\n // Required ie when a Resolver returns a AngularJS `$q` promise to correctly trigger the\n // change detection.\n return from(Promise.resolve(value));\n }\n return of(value);\n}\n\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 */\nfunction createEmptyUrlTree() {\n return new UrlTree(new UrlSegmentGroup([], {}), {}, null);\n}\nconst pathCompareMap = {\n 'exact': equalSegmentGroups,\n 'subset': containsSegmentGroup,\n};\nconst paramCompareMap = {\n 'exact': equalParams,\n 'subset': containsParams,\n 'ignored': () => true,\n};\nfunction containsTree(container, containee, options) {\n return pathCompareMap[options.paths](container.root, containee.root, options.matrixParams) &&\n paramCompareMap[options.queryParams](container.queryParams, containee.queryParams) &&\n !(options.fragment === 'exact' && container.fragment !== containee.fragment);\n}\nfunction equalParams(container, containee) {\n // TODO: This does not handle array params correctly.\n return shallowEqual(container, containee);\n}\nfunction equalSegmentGroups(container, containee, matrixParams) {\n if (!equalPath(container.segments, containee.segments))\n return false;\n if (!matrixParamsMatch(container.segments, containee.segments, matrixParams)) {\n return false;\n }\n if (container.numberOfChildren !== containee.numberOfChildren)\n return false;\n for (const c in containee.children) {\n if (!container.children[c])\n return false;\n if (!equalSegmentGroups(container.children[c], containee.children[c], matrixParams))\n return false;\n }\n return true;\n}\nfunction containsParams(container, containee) {\n return Object.keys(containee).length <= Object.keys(container).length &&\n Object.keys(containee).every(key => equalArraysOrString(container[key], containee[key]));\n}\nfunction containsSegmentGroup(container, containee, matrixParams) {\n return containsSegmentGroupHelper(container, containee, containee.segments, matrixParams);\n}\nfunction containsSegmentGroupHelper(container, containee, containeePaths, matrixParams) {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths))\n return false;\n if (containee.hasChildren())\n return false;\n if (!matrixParamsMatch(current, containeePaths, matrixParams))\n return false;\n return true;\n }\n else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths))\n return false;\n if (!matrixParamsMatch(container.segments, containeePaths, matrixParams))\n return false;\n for (const c in containee.children) {\n if (!container.children[c])\n return false;\n if (!containsSegmentGroup(container.children[c], containee.children[c], matrixParams)) {\n return false;\n }\n }\n return true;\n }\n else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current))\n return false;\n if (!matrixParamsMatch(container.segments, current, matrixParams))\n return false;\n if (!container.children[PRIMARY_OUTLET])\n return false;\n return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next, matrixParams);\n }\n}\nfunction matrixParamsMatch(containerPaths, containeePaths, options) {\n return containeePaths.every((containeeSegment, i) => {\n return paramCompareMap[options](containerPaths[i].parameters, containeeSegment.parameters);\n });\n}\n/**\n * @description\n *\n * Represents the parsed URL.\n *\n * Since a router state is a tree, and the URL is nothing but a serialized state, the URL is a\n * serialized tree.\n * UrlTree is a data structure that provides a lot of affordances in dealing with URLs\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree =\n * router.parseUrl('/team/33/(user/victor//support:help)?debug=true#fragment');\n * const f = tree.fragment; // return 'fragment'\n * const q = tree.queryParams; // returns {debug: 'true'}\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments; // returns 2 segments 'team' and '33'\n * g.children[PRIMARY_OUTLET].segments; // returns 2 segments 'user' and 'victor'\n * g.children['support'].segments; // return 1 segment 'help'\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass UrlTree {\n /** @internal */\n constructor(\n /** The root segment group of the URL tree */\n root, \n /** The query params of the URL */\n queryParams, \n /** The fragment of the URL */\n fragment) {\n this.root = root;\n this.queryParams = queryParams;\n this.fragment = fragment;\n }\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap = convertToParamMap(this.queryParams);\n }\n return this._queryParamMap;\n }\n /** @docsNotRequired */\n toString() {\n return DEFAULT_SERIALIZER.serialize(this);\n }\n}\n/**\n * @description\n *\n * Represents the parsed URL segment group.\n *\n * See `UrlTree` for more information.\n *\n * @publicApi\n */\nclass UrlSegmentGroup {\n constructor(\n /** The URL segments of this group. See `UrlSegment` for more information */\n segments, \n /** The list of children of this group */\n children) {\n this.segments = segments;\n this.children = children;\n /** The parent node in the url tree */\n this.parent = null;\n forEach(children, (v, k) => v.parent = this);\n }\n /** Whether the segment has child segments */\n hasChildren() {\n return this.numberOfChildren > 0;\n }\n /** Number of child segments */\n get numberOfChildren() {\n return Object.keys(this.children).length;\n }\n /** @docsNotRequired */\n toString() {\n return serializePaths(this);\n }\n}\n/**\n * @description\n *\n * Represents a single URL segment.\n *\n * A UrlSegment is a part of a URL between the two slashes. It contains a path and the matrix\n * parameters associated with the segment.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree = router.parseUrl('/team;id=33');\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments;\n * s[0].path; // returns 'team'\n * s[0].parameters; // returns {id: 33}\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass UrlSegment {\n constructor(\n /** The path part of a URL segment */\n path, \n /** The matrix parameters associated with a segment */\n parameters) {\n this.path = path;\n this.parameters = parameters;\n }\n get parameterMap() {\n if (!this._parameterMap) {\n this._parameterMap = convertToParamMap(this.parameters);\n }\n return this._parameterMap;\n }\n /** @docsNotRequired */\n toString() {\n return serializePath(this);\n }\n}\nfunction equalSegments(as, bs) {\n return equalPath(as, bs) && as.every((a, i) => shallowEqual(a.parameters, bs[i].parameters));\n}\nfunction equalPath(as, bs) {\n if (as.length !== bs.length)\n return false;\n return as.every((a, i) => a.path === bs[i].path);\n}\nfunction mapChildrenIntoArray(segment, fn) {\n let res = [];\n forEach(segment.children, (child, childOutlet) => {\n if (childOutlet === PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n forEach(segment.children, (child, childOutlet) => {\n if (childOutlet !== PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n return res;\n}\n/**\n * @description\n *\n * Serializes and deserializes a URL string into a URL tree.\n *\n * The url serialization strategy is customizable. You can\n * make all URLs case insensitive by providing a custom UrlSerializer.\n *\n * See `DefaultUrlSerializer` for an example of a URL serializer.\n *\n * @publicApi\n */\nclass UrlSerializer {\n}\n/**\n * @description\n *\n * A default implementation of the `UrlSerializer`.\n *\n * Example URLs:\n *\n * ```\n * /inbox/33(popup:compose)\n * /inbox/33;open=true/messages/44\n * ```\n *\n * DefaultUrlSerializer uses parentheses to serialize secondary segments (e.g., popup:compose), the\n * colon syntax to specify the outlet, and the ';parameter=value' syntax (e.g., open=true) to\n * specify route specific parameters.\n *\n * @publicApi\n */\nclass DefaultUrlSerializer {\n /** Parses a url into a `UrlTree` */\n parse(url) {\n const p = new UrlParser(url);\n return new UrlTree(p.parseRootSegment(), p.parseQueryParams(), p.parseFragment());\n }\n /** Converts a `UrlTree` into a url */\n serialize(tree) {\n const segment = `/${serializeSegment(tree.root, true)}`;\n const query = serializeQueryParams(tree.queryParams);\n const fragment = typeof tree.fragment === `string` ? `#${encodeUriFragment(tree.fragment)}` : '';\n return `${segment}${query}${fragment}`;\n }\n}\nconst DEFAULT_SERIALIZER = new DefaultUrlSerializer();\nfunction serializePaths(segment) {\n return segment.segments.map(p => serializePath(p)).join('/');\n}\nfunction serializeSegment(segment, root) {\n if (!segment.hasChildren()) {\n return serializePaths(segment);\n }\n if (root) {\n const primary = segment.children[PRIMARY_OUTLET] ?\n serializeSegment(segment.children[PRIMARY_OUTLET], false) :\n '';\n const children = [];\n forEach(segment.children, (v, k) => {\n if (k !== PRIMARY_OUTLET) {\n children.push(`${k}:${serializeSegment(v, false)}`);\n }\n });\n return children.length > 0 ? `${primary}(${children.join('//')})` : primary;\n }\n else {\n const children = mapChildrenIntoArray(segment, (v, k) => {\n if (k === PRIMARY_OUTLET) {\n return [serializeSegment(segment.children[PRIMARY_OUTLET], false)];\n }\n return [`${k}:${serializeSegment(v, false)}`];\n });\n // use no parenthesis if the only child is a primary outlet route\n if (Object.keys(segment.children).length === 1 && segment.children[PRIMARY_OUTLET] != null) {\n return `${serializePaths(segment)}/${children[0]}`;\n }\n return `${serializePaths(segment)}/(${children.join('//')})`;\n }\n}\n/**\n * Encodes a URI string with the default encoding. This function will only ever be called from\n * `encodeUriQuery` or `encodeUriSegment` as it's the base set of encodings to be used. We need\n * a custom encoding because encodeURIComponent is too aggressive and encodes stuff that doesn't\n * have to be encoded per https://url.spec.whatwg.org.\n */\nfunction encodeUriString(s) {\n return encodeURIComponent(s)\n .replace(/%40/g, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',');\n}\n/**\n * This function should be used to encode both keys and values in a query string key/value. In\n * the following URL, you need to call encodeUriQuery on \"k\" and \"v\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriQuery(s) {\n return encodeUriString(s).replace(/%3B/gi, ';');\n}\n/**\n * This function should be used to encode a URL fragment. In the following URL, you need to call\n * encodeUriFragment on \"f\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriFragment(s) {\n return encodeURI(s);\n}\n/**\n * This function should be run on any URI segment as well as the key and value in a key/value\n * pair for matrix params. In the following URL, you need to call encodeUriSegment on \"html\",\n * \"mk\", and \"mv\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriSegment(s) {\n return encodeUriString(s).replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/%26/gi, '&');\n}\nfunction decode(s) {\n return decodeURIComponent(s);\n}\n// Query keys/values should have the \"+\" replaced first, as \"+\" in a query string is \" \".\n// decodeURIComponent function will not decode \"+\" as a space.\nfunction decodeQuery(s) {\n return decode(s.replace(/\\+/g, '%20'));\n}\nfunction serializePath(path) {\n return `${encodeUriSegment(path.path)}${serializeMatrixParams(path.parameters)}`;\n}\nfunction serializeMatrixParams(params) {\n return Object.keys(params)\n .map(key => `;${encodeUriSegment(key)}=${encodeUriSegment(params[key])}`)\n .join('');\n}\nfunction serializeQueryParams(params) {\n const strParams = Object.keys(params)\n .map((name) => {\n const value = params[name];\n return Array.isArray(value) ?\n value.map(v => `${encodeUriQuery(name)}=${encodeUriQuery(v)}`).join('&') :\n `${encodeUriQuery(name)}=${encodeUriQuery(value)}`;\n })\n .filter(s => !!s);\n return strParams.length ? `?${strParams.join('&')}` : '';\n}\nconst SEGMENT_RE = /^[^\\/()?;=#]+/;\nfunction matchSegments(str) {\n const match = str.match(SEGMENT_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_RE = /^[^=?&#]+/;\n// Return the name of the query param at the start of the string or an empty string\nfunction matchQueryParams(str) {\n const match = str.match(QUERY_PARAM_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_VALUE_RE = /^[^&#]+/;\n// Return the value of the query param at the start of the string or an empty string\nfunction matchUrlQueryParamValue(str) {\n const match = str.match(QUERY_PARAM_VALUE_RE);\n return match ? match[0] : '';\n}\nclass UrlParser {\n constructor(url) {\n this.url = url;\n this.remaining = url;\n }\n parseRootSegment() {\n this.consumeOptional('/');\n if (this.remaining === '' || this.peekStartsWith('?') || this.peekStartsWith('#')) {\n return new UrlSegmentGroup([], {});\n }\n // The root segment group never has segments\n return new UrlSegmentGroup([], this.parseChildren());\n }\n parseQueryParams() {\n const params = {};\n if (this.consumeOptional('?')) {\n do {\n this.parseQueryParam(params);\n } while (this.consumeOptional('&'));\n }\n return params;\n }\n parseFragment() {\n return this.consumeOptional('#') ? decodeURIComponent(this.remaining) : null;\n }\n parseChildren() {\n if (this.remaining === '') {\n return {};\n }\n this.consumeOptional('/');\n const segments = [];\n if (!this.peekStartsWith('(')) {\n segments.push(this.parseSegment());\n }\n while (this.peekStartsWith('/') && !this.peekStartsWith('//') && !this.peekStartsWith('/(')) {\n this.capture('/');\n segments.push(this.parseSegment());\n }\n let children = {};\n if (this.peekStartsWith('/(')) {\n this.capture('/');\n children = this.parseParens(true);\n }\n let res = {};\n if (this.peekStartsWith('(')) {\n res = this.parseParens(false);\n }\n if (segments.length > 0 || Object.keys(children).length > 0) {\n res[PRIMARY_OUTLET] = new UrlSegmentGroup(segments, children);\n }\n return res;\n }\n // parse a segment with its matrix parameters\n // ie `name;k1=v1;k2`\n parseSegment() {\n const path = matchSegments(this.remaining);\n if (path === '' && this.peekStartsWith(';')) {\n throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);\n }\n this.capture(path);\n return new UrlSegment(decode(path), this.parseMatrixParams());\n }\n parseMatrixParams() {\n const params = {};\n while (this.consumeOptional(';')) {\n this.parseParam(params);\n }\n return params;\n }\n parseParam(params) {\n const key = matchSegments(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchSegments(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n params[decode(key)] = decode(value);\n }\n // Parse a single query parameter `name[=value]`\n parseQueryParam(params) {\n const key = matchQueryParams(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchUrlQueryParamValue(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n const decodedKey = decodeQuery(key);\n const decodedVal = decodeQuery(value);\n if (params.hasOwnProperty(decodedKey)) {\n // Append to existing values\n let currentVal = params[decodedKey];\n if (!Array.isArray(currentVal)) {\n currentVal = [currentVal];\n params[decodedKey] = currentVal;\n }\n currentVal.push(decodedVal);\n }\n else {\n // Create a new value\n params[decodedKey] = decodedVal;\n }\n }\n // parse `(a/b//outlet_name:c/d)`\n parseParens(allowPrimary) {\n const segments = {};\n this.capture('(');\n while (!this.consumeOptional(')') && this.remaining.length > 0) {\n const path = matchSegments(this.remaining);\n const next = this.remaining[path.length];\n // if is is not one of these characters, then the segment was unescaped\n // or the group was not closed\n if (next !== '/' && next !== ')' && next !== ';') {\n throw new Error(`Cannot parse url '${this.url}'`);\n }\n let outletName = undefined;\n if (path.indexOf(':') > -1) {\n outletName = path.substr(0, path.indexOf(':'));\n this.capture(outletName);\n this.capture(':');\n }\n else if (allowPrimary) {\n outletName = PRIMARY_OUTLET;\n }\n const children = this.parseChildren();\n segments[outletName] = Object.keys(children).length === 1 ? children[PRIMARY_OUTLET] :\n new UrlSegmentGroup([], children);\n this.consumeOptional('//');\n }\n return segments;\n }\n peekStartsWith(str) {\n return this.remaining.startsWith(str);\n }\n // Consumes the prefix when it is present and returns whether it has been consumed\n consumeOptional(str) {\n if (this.peekStartsWith(str)) {\n this.remaining = this.remaining.substring(str.length);\n return true;\n }\n return false;\n }\n capture(str) {\n if (!this.consumeOptional(str)) {\n throw new Error(`Expected \"${str}\".`);\n }\n }\n}\n\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 */\nclass Tree {\n constructor(root) {\n this._root = root;\n }\n get root() {\n return this._root.value;\n }\n /**\n * @internal\n */\n parent(t) {\n const p = this.pathFromRoot(t);\n return p.length > 1 ? p[p.length - 2] : null;\n }\n /**\n * @internal\n */\n children(t) {\n const n = findNode(t, this._root);\n return n ? n.children.map(t => t.value) : [];\n }\n /**\n * @internal\n */\n firstChild(t) {\n const n = findNode(t, this._root);\n return n && n.children.length > 0 ? n.children[0].value : null;\n }\n /**\n * @internal\n */\n siblings(t) {\n const p = findPath(t, this._root);\n if (p.length < 2)\n return [];\n const c = p[p.length - 2].children.map(c => c.value);\n return c.filter(cc => cc !== t);\n }\n /**\n * @internal\n */\n pathFromRoot(t) {\n return findPath(t, this._root).map(s => s.value);\n }\n}\n// DFS for the node matching the value\nfunction findNode(value, node) {\n if (value === node.value)\n return node;\n for (const child of node.children) {\n const node = findNode(value, child);\n if (node)\n return node;\n }\n return null;\n}\n// Return the path to the node with the given value using DFS\nfunction findPath(value, node) {\n if (value === node.value)\n return [node];\n for (const child of node.children) {\n const path = findPath(value, child);\n if (path.length) {\n path.unshift(node);\n return path;\n }\n }\n return [];\n}\nclass TreeNode {\n constructor(value, children) {\n this.value = value;\n this.children = children;\n }\n toString() {\n return `TreeNode(${this.value})`;\n }\n}\n// Return the list of T indexed by outlet name\nfunction nodeChildrenAsMap(node) {\n const map = {};\n if (node) {\n node.children.forEach(child => map[child.value.outlet] = child);\n }\n return map;\n}\n\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/**\n * Represents the state of the router as a tree of activated routes.\n *\n * @usageNotes\n *\n * Every node in the route tree is an `ActivatedRoute` instance\n * that knows about the \"consumed\" URL segments, the extracted parameters,\n * and the resolved data.\n * Use the `ActivatedRoute` properties to traverse the tree from any node.\n *\n * The following fragment shows how a component gets the root node\n * of the current state to establish its own route tree:\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const state: RouterState = router.routerState;\n * const root: ActivatedRoute = state.root;\n * const child = root.firstChild;\n * const id: Observable<string> = child.params.map(p => p.id);\n * //...\n * }\n * }\n * ```\n *\n * @see `ActivatedRoute`\n * @see [Getting route information](guide/router#getting-route-information)\n *\n * @publicApi\n */\nclass RouterState extends Tree {\n /** @internal */\n constructor(root, \n /** The current snapshot of the router state */\n snapshot) {\n super(root);\n this.snapshot = snapshot;\n setRouterState(this, root);\n }\n toString() {\n return this.snapshot.toString();\n }\n}\nfunction createEmptyState(urlTree, rootComponent) {\n const snapshot = createEmptyStateSnapshot(urlTree, rootComponent);\n const emptyUrl = new BehaviorSubject([new UrlSegment('', {})]);\n const emptyParams = new BehaviorSubject({});\n const emptyData = new BehaviorSubject({});\n const emptyQueryParams = new BehaviorSubject({});\n const fragment = new BehaviorSubject('');\n const activated = new ActivatedRoute(emptyUrl, emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, snapshot.root);\n activated.snapshot = snapshot.root;\n return new RouterState(new TreeNode(activated, []), snapshot);\n}\nfunction createEmptyStateSnapshot(urlTree, rootComponent) {\n const emptyParams = {};\n const emptyData = {};\n const emptyQueryParams = {};\n const fragment = '';\n const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null, urlTree.root, -1, {});\n return new RouterStateSnapshot('', new TreeNode(activated, []));\n}\n/**\n * Provides access to information about a route associated with a component\n * that is loaded in an outlet.\n * Use to traverse the `RouterState` tree and extract information from nodes.\n *\n * The following example shows how to construct a component using information from a\n * currently activated route.\n *\n * Note: the observables in this class only emit when the current and previous values differ based\n * on shallow equality. For example, changing deeply nested properties in resolved `data` will not\n * cause the `ActivatedRoute.data` `Observable` to emit a new value.\n *\n * {@example router/activated-route/module.ts region=\"activated-route\"\n * header=\"activated-route.component.ts\"}\n *\n * @see [Getting route information](guide/router#getting-route-information)\n *\n * @publicApi\n */\nclass ActivatedRoute {\n /** @internal */\n constructor(\n /** An observable of the URL segments matched by this route. */\n url, \n /** An observable of the matrix parameters scoped to this route. */\n params, \n /** An observable of the query parameters shared by all the routes. */\n queryParams, \n /** An observable of the URL fragment shared by all the routes. */\n fragment, \n /** An observable of the static and resolved data of this route. */\n data, \n /** The outlet name of the route, a constant. */\n outlet, \n /** The component of the route, a constant. */\n // TODO(vsavkin): remove |string\n component, futureSnapshot) {\n this.url = url;\n this.params = params;\n this.queryParams = queryParams;\n this.fragment = fragment;\n this.data = data;\n this.outlet = outlet;\n this.component = component;\n this._futureSnapshot = futureSnapshot;\n }\n /** The configuration used to match this route. */\n get routeConfig() {\n return this._futureSnapshot.routeConfig;\n }\n /** The root of the router state. */\n get root() {\n return this._routerState.root;\n }\n /** The parent of this route in the router state tree. */\n get parent() {\n return this._routerState.parent(this);\n }\n /** The first child of this route in the router state tree. */\n get firstChild() {\n return this._routerState.firstChild(this);\n }\n /** The children of this route in the router state tree. */\n get children() {\n return this._routerState.children(this);\n }\n /** The path from the root of the router state tree to this route. */\n get pathFromRoot() {\n return this._routerState.pathFromRoot(this);\n }\n /**\n * An Observable that contains a map of the required and optional parameters\n * specific to the route.\n * The map supports retrieving single and multiple values from the same parameter.\n */\n get paramMap() {\n if (!this._paramMap) {\n this._paramMap = this.params.pipe(map((p) => convertToParamMap(p)));\n }\n return this._paramMap;\n }\n /**\n * An Observable that contains a map of the query parameters available to all routes.\n * The map supports retrieving single and multiple values from the query parameter.\n */\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap =\n this.queryParams.pipe(map((p) => convertToParamMap(p)));\n }\n return this._queryParamMap;\n }\n toString() {\n return this.snapshot ? this.snapshot.toString() : `Future(${this._futureSnapshot})`;\n }\n}\n/**\n * Returns the inherited params, data, and resolve for a given route.\n * By default, this only inherits values up to the nearest path-less or component-less route.\n * @internal\n */\nfunction inheritedParamsDataResolve(route, paramsInheritanceStrategy = 'emptyOnly') {\n const pathFromRoot = route.pathFromRoot;\n let inheritingStartingFrom = 0;\n if (paramsInheritanceStrategy !== 'always') {\n inheritingStartingFrom = pathFromRoot.length - 1;\n while (inheritingStartingFrom >= 1) {\n const current = pathFromRoot[inheritingStartingFrom];\n const parent = pathFromRoot[inheritingStartingFrom - 1];\n // current route is an empty path => inherits its parent's params and data\n if (current.routeConfig && current.routeConfig.path === '') {\n inheritingStartingFrom--;\n // parent is componentless => current route should inherit its params and data\n }\n else if (!parent.component) {\n inheritingStartingFrom--;\n }\n else {\n break;\n }\n }\n }\n return flattenInherited(pathFromRoot.slice(inheritingStartingFrom));\n}\n/** @internal */\nfunction flattenInherited(pathFromRoot) {\n return pathFromRoot.reduce((res, curr) => {\n const params = Object.assign(Object.assign({}, res.params), curr.params);\n const data = Object.assign(Object.assign({}, res.data), curr.data);\n const resolve = Object.assign(Object.assign({}, res.resolve), curr._resolvedData);\n return { params, data, resolve };\n }, { params: {}, data: {}, resolve: {} });\n}\n/**\n * @description\n *\n * Contains the information about a route associated with a component loaded in an\n * outlet at a particular moment in time. ActivatedRouteSnapshot can also be used to\n * traverse the router state tree.\n *\n * The following example initializes a component with route information extracted\n * from the snapshot of the root node at the time of creation.\n *\n * ```\n * @Component({templateUrl:'./my-component.html'})\n * class MyComponent {\n * constructor(route: ActivatedRoute) {\n * const id: string = route.snapshot.params.id;\n * const url: string = route.snapshot.url.join('');\n * const user = route.snapshot.data.user;\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass ActivatedRouteSnapshot {\n /** @internal */\n constructor(\n /** The URL segments matched by this route */\n url, \n /**\n * The matrix parameters scoped to this route.\n *\n * You can compute all params (or data) in the router state or to get params outside\n * of an activated component by traversing the `RouterState` tree as in the following\n * example:\n * ```\n * collectRouteParams(router: Router) {\n * let params = {};\n * let stack: ActivatedRouteSnapshot[] = [router.routerState.snapshot.root];\n * while (stack.length > 0) {\n * const route = stack.pop()!;\n * params = {...params, ...route.params};\n * stack.push(...route.children);\n * }\n * return params;\n * }\n * ```\n */\n params, \n /** The query parameters shared by all the routes */\n queryParams, \n /** The URL fragment shared by all the routes */\n fragment, \n /** The static and resolved data of this route */\n data, \n /** The outlet name of the route */\n outlet, \n /** The component of the route */\n component, routeConfig, urlSegment, lastPathIndex, resolve) {\n this.url = url;\n this.params = params;\n this.queryParams = queryParams;\n this.fragment = fragment;\n this.data = data;\n this.outlet = outlet;\n this.component = component;\n this.routeConfig = routeConfig;\n this._urlSegment = urlSegment;\n this._lastPathIndex = lastPathIndex;\n this._resolve = resolve;\n }\n /** The root of the router state */\n get root() {\n return this._routerState.root;\n }\n /** The parent of this route in the router state tree */\n get parent() {\n return this._routerState.parent(this);\n }\n /** The first child of this route in the router state tree */\n get firstChild() {\n return this._routerState.firstChild(this);\n }\n /** The children of this route in the router state tree */\n get children() {\n return this._routerState.children(this);\n }\n /** The path from the root of the router state tree to this route */\n get pathFromRoot() {\n return this._routerState.pathFromRoot(this);\n }\n get paramMap() {\n if (!this._paramMap) {\n this._paramMap = convertToParamMap(this.params);\n }\n return this._paramMap;\n }\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap = convertToParamMap(this.queryParams);\n }\n return this._queryParamMap;\n }\n toString() {\n const url = this.url.map(segment => segment.toString()).join('/');\n const matched = this.routeConfig ? this.routeConfig.path : '';\n return `Route(url:'${url}', path:'${matched}')`;\n }\n}\n/**\n * @description\n *\n * Represents the state of the router at a moment in time.\n *\n * This is a tree of activated route snapshots. Every node in this tree knows about\n * the \"consumed\" URL segments, the extracted parameters, and the resolved data.\n *\n * The following example shows how a component is initialized with information\n * from the snapshot of the root node's state at the time of creation.\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const state: RouterState = router.routerState;\n * const snapshot: RouterStateSnapshot = state.snapshot;\n * const root: ActivatedRouteSnapshot = snapshot.root;\n * const child = root.firstChild;\n * const id: Observable<string> = child.params.map(p => p.id);\n * //...\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass RouterStateSnapshot extends Tree {\n /** @internal */\n constructor(\n /** The url from which this snapshot was created */\n url, root) {\n super(root);\n this.url = url;\n setRouterState(this, root);\n }\n toString() {\n return serializeNode(this._root);\n }\n}\nfunction setRouterState(state, node) {\n node.value._routerState = state;\n node.children.forEach(c => setRouterState(state, c));\n}\nfunction serializeNode(node) {\n const c = node.children.length > 0 ? ` { ${node.children.map(serializeNode).join(', ')} } ` : '';\n return `${node.value}${c}`;\n}\n/**\n * The expectation is that the activate route is created with the right set of parameters.\n * So we push new values into the observables only when they are not the initial values.\n * And we detect that by checking if the snapshot field is set.\n */\nfunction advanceActivatedRoute(route) {\n if (route.snapshot) {\n const currentSnapshot = route.snapshot;\n const nextSnapshot = route._futureSnapshot;\n route.snapshot = nextSnapshot;\n if (!shallowEqual(currentSnapshot.queryParams, nextSnapshot.queryParams)) {\n route.queryParams.next(nextSnapshot.queryParams);\n }\n if (currentSnapshot.fragment !== nextSnapshot.fragment) {\n route.fragment.next(nextSnapshot.fragment);\n }\n if (!shallowEqual(currentSnapshot.params, nextSnapshot.params)) {\n route.params.next(nextSnapshot.params);\n }\n if (!shallowEqualArrays(currentSnapshot.url, nextSnapshot.url)) {\n route.url.next(nextSnapshot.url);\n }\n if (!shallowEqual(currentSnapshot.data, nextSnapshot.data)) {\n route.data.next(nextSnapshot.data);\n }\n }\n else {\n route.snapshot = route._futureSnapshot;\n // this is for resolved data\n route.data.next(route._futureSnapshot.data);\n }\n}\nfunction equalParamsAndUrlSegments(a, b) {\n const equalUrlParams = shallowEqual(a.params, b.params) && equalSegments(a.url, b.url);\n const parentsMismatch = !a.parent !== !b.parent;\n return equalUrlParams && !parentsMismatch &&\n (!a.parent || equalParamsAndUrlSegments(a.parent, b.parent));\n}\n\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 */\nfunction createRouterState(routeReuseStrategy, curr, prevState) {\n const root = createNode(routeReuseStrategy, curr._root, prevState ? prevState._root : undefined);\n return new RouterState(root, curr);\n}\nfunction createNode(routeReuseStrategy, curr, prevState) {\n // reuse an activated route that is currently displayed on the screen\n if (prevState && routeReuseStrategy.shouldReuseRoute(curr.value, prevState.value.snapshot)) {\n const value = prevState.value;\n value._futureSnapshot = curr.value;\n const children = createOrReuseChildren(routeReuseStrategy, curr, prevState);\n return new TreeNode(value, children);\n }\n else {\n if (routeReuseStrategy.shouldAttach(curr.value)) {\n // retrieve an activated route that is used to be displayed, but is not currently displayed\n const detachedRouteHandle = routeReuseStrategy.retrieve(curr.value);\n if (detachedRouteHandle !== null) {\n const tree = detachedRouteHandle.route;\n tree.value._futureSnapshot = curr.value;\n tree.children = curr.children.map(c => createNode(routeReuseStrategy, c));\n return tree;\n }\n }\n const value = createActivatedRoute(curr.value);\n const children = curr.children.map(c => createNode(routeReuseStrategy, c));\n return new TreeNode(value, children);\n }\n}\nfunction createOrReuseChildren(routeReuseStrategy, curr, prevState) {\n return curr.children.map(child => {\n for (const p of prevState.children) {\n if (routeReuseStrategy.shouldReuseRoute(child.value, p.value.snapshot)) {\n return createNode(routeReuseStrategy, child, p);\n }\n }\n return createNode(routeReuseStrategy, child);\n });\n}\nfunction createActivatedRoute(c) {\n return new ActivatedRoute(new BehaviorSubject(c.url), new BehaviorSubject(c.params), new BehaviorSubject(c.queryParams), new BehaviorSubject(c.fragment), new BehaviorSubject(c.data), c.outlet, c.component, c);\n}\n\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 */\nfunction createUrlTree(route, urlTree, commands, queryParams, fragment) {\n if (commands.length === 0) {\n return tree(urlTree.root, urlTree.root, urlTree.root, queryParams, fragment);\n }\n const nav = computeNavigation(commands);\n if (nav.toRoot()) {\n return tree(urlTree.root, urlTree.root, new UrlSegmentGroup([], {}), queryParams, fragment);\n }\n const startingPosition = findStartingPosition(nav, urlTree, route);\n const segmentGroup = startingPosition.processChildren ?\n updateSegmentGroupChildren(startingPosition.segmentGroup, startingPosition.index, nav.commands) :\n updateSegmentGroup(startingPosition.segmentGroup, startingPosition.index, nav.commands);\n return tree(urlTree.root, startingPosition.segmentGroup, segmentGroup, queryParams, fragment);\n}\nfunction isMatrixParams(command) {\n return typeof command === 'object' && command != null && !command.outlets && !command.segmentPath;\n}\n/**\n * Determines if a given command has an `outlets` map. When we encounter a command\n * with an outlets k/v map, we need to apply each outlet individually to the existing segment.\n */\nfunction isCommandWithOutlets(command) {\n return typeof command === 'object' && command != null && command.outlets;\n}\nfunction tree(oldRoot, oldSegmentGroup, newSegmentGroup, queryParams, fragment) {\n let qp = {};\n if (queryParams) {\n forEach(queryParams, (value, name) => {\n qp[name] = Array.isArray(value) ? value.map((v) => `${v}`) : `${value}`;\n });\n }\n if (oldRoot === oldSegmentGroup) {\n return new UrlTree(newSegmentGroup, qp, fragment);\n }\n const newRoot = replaceSegment(oldRoot, oldSegmentGroup, newSegmentGroup);\n return new UrlTree(newRoot, qp, fragment);\n}\nfunction replaceSegment(current, oldSegment, newSegment) {\n const children = {};\n forEach(current.children, (c, outletName) => {\n if (c === oldSegment) {\n children[outletName] = newSegment;\n }\n else {\n children[outletName] = replaceSegment(c, oldSegment, newSegment);\n }\n });\n return new UrlSegmentGroup(current.segments, children);\n}\nclass Navigation {\n constructor(isAbsolute, numberOfDoubleDots, commands) {\n this.isAbsolute = isAbsolute;\n this.numberOfDoubleDots = numberOfDoubleDots;\n this.commands = commands;\n if (isAbsolute && commands.length > 0 && isMatrixParams(commands[0])) {\n throw new Error('Root segment cannot have matrix parameters');\n }\n const cmdWithOutlet = commands.find(isCommandWithOutlets);\n if (cmdWithOutlet && cmdWithOutlet !== last(commands)) {\n throw new Error('{outlets:{}} has to be the last command');\n }\n }\n toRoot() {\n return this.isAbsolute && this.commands.length === 1 && this.commands[0] == '/';\n }\n}\n/** Transforms commands to a normalized `Navigation` */\nfunction computeNavigation(commands) {\n if ((typeof commands[0] === 'string') && commands.length === 1 && commands[0] === '/') {\n return new Navigation(true, 0, commands);\n }\n let numberOfDoubleDots = 0;\n let isAbsolute = false;\n const res = commands.reduce((res, cmd, cmdIdx) => {\n if (typeof cmd === 'object' && cmd != null) {\n if (cmd.outlets) {\n const outlets = {};\n forEach(cmd.outlets, (commands, name) => {\n outlets[name] = typeof commands === 'string' ? commands.split('/') : commands;\n });\n return [...res, { outlets }];\n }\n if (cmd.segmentPath) {\n return [...res, cmd.segmentPath];\n }\n }\n if (!(typeof cmd === 'string')) {\n return [...res, cmd];\n }\n if (cmdIdx === 0) {\n cmd.split('/').forEach((urlPart, partIndex) => {\n if (partIndex == 0 && urlPart === '.') {\n // skip './a'\n }\n else if (partIndex == 0 && urlPart === '') { // '/a'\n isAbsolute = true;\n }\n else if (urlPart === '..') { // '../a'\n numberOfDoubleDots++;\n }\n else if (urlPart != '') {\n res.push(urlPart);\n }\n });\n return res;\n }\n return [...res, cmd];\n }, []);\n return new Navigation(isAbsolute, numberOfDoubleDots, res);\n}\nclass Position {\n constructor(segmentGroup, processChildren, index) {\n this.segmentGroup = segmentGroup;\n this.processChildren = processChildren;\n this.index = index;\n }\n}\nfunction findStartingPosition(nav, tree, route) {\n if (nav.isAbsolute) {\n return new Position(tree.root, true, 0);\n }\n if (route.snapshot._lastPathIndex === -1) {\n const segmentGroup = route.snapshot._urlSegment;\n // Pathless ActivatedRoute has _lastPathIndex === -1 but should not process children\n // see issue #26224, #13011, #35687\n // However, if the ActivatedRoute is the root we should process children like above.\n const processChildren = segmentGroup === tree.root;\n return new Position(segmentGroup, processChildren, 0);\n }\n const modifier = isMatrixParams(nav.commands[0]) ? 0 : 1;\n const index = route.snapshot._lastPathIndex + modifier;\n return createPositionApplyingDoubleDots(route.snapshot._urlSegment, index, nav.numberOfDoubleDots);\n}\nfunction createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {\n let g = group;\n let ci = index;\n let dd = numberOfDoubleDots;\n while (dd > ci) {\n dd -= ci;\n g = g.parent;\n if (!g) {\n throw new Error('Invalid number of \\'../\\'');\n }\n ci = g.segments.length;\n }\n return new Position(g, false, ci - dd);\n}\nfunction getOutlets(commands) {\n if (isCommandWithOutlets(commands[0])) {\n return commands[0].outlets;\n }\n return { [PRIMARY_OUTLET]: commands };\n}\nfunction updateSegmentGroup(segmentGroup, startIndex, commands) {\n if (!segmentGroup) {\n segmentGroup = new UrlSegmentGroup([], {});\n }\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return updateSegmentGroupChildren(segmentGroup, startIndex, commands);\n }\n const m = prefixedWith(segmentGroup, startIndex, commands);\n const slicedCommands = commands.slice(m.commandIndex);\n if (m.match && m.pathIndex < segmentGroup.segments.length) {\n const g = new UrlSegmentGroup(segmentGroup.segments.slice(0, m.pathIndex), {});\n g.children[PRIMARY_OUTLET] =\n new UrlSegmentGroup(segmentGroup.segments.slice(m.pathIndex), segmentGroup.children);\n return updateSegmentGroupChildren(g, 0, slicedCommands);\n }\n else if (m.match && slicedCommands.length === 0) {\n return new UrlSegmentGroup(segmentGroup.segments, {});\n }\n else if (m.match && !segmentGroup.hasChildren()) {\n return createNewSegmentGroup(segmentGroup, startIndex, commands);\n }\n else if (m.match) {\n return updateSegmentGroupChildren(segmentGroup, 0, slicedCommands);\n }\n else {\n return createNewSegmentGroup(segmentGroup, startIndex, commands);\n }\n}\nfunction updateSegmentGroupChildren(segmentGroup, startIndex, commands) {\n if (commands.length === 0) {\n return new UrlSegmentGroup(segmentGroup.segments, {});\n }\n else {\n const outlets = getOutlets(commands);\n const children = {};\n forEach(outlets, (commands, outlet) => {\n if (typeof commands === 'string') {\n commands = [commands];\n }\n if (commands !== null) {\n children[outlet] = updateSegmentGroup(segmentGroup.children[outlet], startIndex, commands);\n }\n });\n forEach(segmentGroup.children, (child, childOutlet) => {\n if (outlets[childOutlet] === undefined) {\n children[childOutlet] = child;\n }\n });\n return new UrlSegmentGroup(segmentGroup.segments, children);\n }\n}\nfunction prefixedWith(segmentGroup, startIndex, commands) {\n let currentCommandIndex = 0;\n let currentPathIndex = startIndex;\n const noMatch = { match: false, pathIndex: 0, commandIndex: 0 };\n while (currentPathIndex < segmentGroup.segments.length) {\n if (currentCommandIndex >= commands.length)\n return noMatch;\n const path = segmentGroup.segments[currentPathIndex];\n const command = commands[currentCommandIndex];\n // Do not try to consume command as part of the prefixing if it has outlets because it can\n // contain outlets other than the one being processed. Consuming the outlets command would\n // result in other outlets being ignored.\n if (isCommandWithOutlets(command)) {\n break;\n }\n const curr = `${command}`;\n const next = currentCommandIndex < commands.length - 1 ? commands[currentCommandIndex + 1] : null;\n if (currentPathIndex > 0 && curr === undefined)\n break;\n if (curr && next && (typeof next === 'object') && next.outlets === undefined) {\n if (!compare(curr, next, path))\n return noMatch;\n currentCommandIndex += 2;\n }\n else {\n if (!compare(curr, {}, path))\n return noMatch;\n currentCommandIndex++;\n }\n currentPathIndex++;\n }\n return { match: true, pathIndex: currentPathIndex, commandIndex: currentCommandIndex };\n}\nfunction createNewSegmentGroup(segmentGroup, startIndex, commands) {\n const paths = segmentGroup.segments.slice(0, startIndex);\n let i = 0;\n while (i < commands.length) {\n const command = commands[i];\n if (isCommandWithOutlets(command)) {\n const children = createNewSegmentChildren(command.outlets);\n return new UrlSegmentGroup(paths, children);\n }\n // if we start with an object literal, we need to reuse the path part from the segment\n if (i === 0 && isMatrixParams(commands[0])) {\n const p = segmentGroup.segments[startIndex];\n paths.push(new UrlSegment(p.path, stringify(commands[0])));\n i++;\n continue;\n }\n const curr = isCommandWithOutlets(command) ? command.outlets[PRIMARY_OUTLET] : `${command}`;\n const next = (i < commands.length - 1) ? commands[i + 1] : null;\n if (curr && next && isMatrixParams(next)) {\n paths.push(new UrlSegment(curr, stringify(next)));\n i += 2;\n }\n else {\n paths.push(new UrlSegment(curr, {}));\n i++;\n }\n }\n return new UrlSegmentGroup(paths, {});\n}\nfunction createNewSegmentChildren(outlets) {\n const children = {};\n forEach(outlets, (commands, outlet) => {\n if (typeof commands === 'string') {\n commands = [commands];\n }\n if (commands !== null) {\n children[outlet] = createNewSegmentGroup(new UrlSegmentGroup([], {}), 0, commands);\n }\n });\n return children;\n}\nfunction stringify(params) {\n const res = {};\n forEach(params, (v, k) => res[k] = `${v}`);\n return res;\n}\nfunction compare(path, params, segment) {\n return path == segment.path && shallowEqual(params, segment.parameters);\n}\n\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 */\nconst activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent) => map(t => {\n new ActivateRoutes(routeReuseStrategy, t.targetRouterState, t.currentRouterState, forwardEvent)\n .activate(rootContexts);\n return t;\n});\nclass ActivateRoutes {\n constructor(routeReuseStrategy, futureState, currState, forwardEvent) {\n this.routeReuseStrategy = routeReuseStrategy;\n this.futureState = futureState;\n this.currState = currState;\n this.forwardEvent = forwardEvent;\n }\n activate(parentContexts) {\n const futureRoot = this.futureState._root;\n const currRoot = this.currState ? this.currState._root : null;\n this.deactivateChildRoutes(futureRoot, currRoot, parentContexts);\n advanceActivatedRoute(this.futureState.root);\n this.activateChildRoutes(futureRoot, currRoot, parentContexts);\n }\n // De-activate the child route that are not re-used for the future state\n deactivateChildRoutes(futureNode, currNode, contexts) {\n const children = nodeChildrenAsMap(currNode);\n // Recurse on the routes active in the future state to de-activate deeper children\n futureNode.children.forEach(futureChild => {\n const childOutletName = futureChild.value.outlet;\n this.deactivateRoutes(futureChild, children[childOutletName], contexts);\n delete children[childOutletName];\n });\n // De-activate the routes that will not be re-used\n forEach(children, (v, childName) => {\n this.deactivateRouteAndItsChildren(v, contexts);\n });\n }\n deactivateRoutes(futureNode, currNode, parentContext) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n if (future === curr) {\n // Reusing the node, check to see if the children need to be de-activated\n if (future.component) {\n // If we have a normal route, we need to go through an outlet.\n const context = parentContext.getContext(future.outlet);\n if (context) {\n this.deactivateChildRoutes(futureNode, currNode, context.children);\n }\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.deactivateChildRoutes(futureNode, currNode, parentContext);\n }\n }\n else {\n if (curr) {\n // Deactivate the current route which will not be re-used\n this.deactivateRouteAndItsChildren(currNode, parentContext);\n }\n }\n }\n deactivateRouteAndItsChildren(route, parentContexts) {\n // If there is no component, the Route is never attached to an outlet (because there is no\n // component to attach).\n if (route.value.component && this.routeReuseStrategy.shouldDetach(route.value.snapshot)) {\n this.detachAndStoreRouteSubtree(route, parentContexts);\n }\n else {\n this.deactivateRouteAndOutlet(route, parentContexts);\n }\n }\n detachAndStoreRouteSubtree(route, parentContexts) {\n const context = parentContexts.getContext(route.value.outlet);\n const contexts = context && route.value.component ? context.children : parentContexts;\n const children = nodeChildrenAsMap(route);\n for (const childOutlet of Object.keys(children)) {\n this.deactivateRouteAndItsChildren(children[childOutlet], contexts);\n }\n if (context && context.outlet) {\n const componentRef = context.outlet.detach();\n const contexts = context.children.onOutletDeactivated();\n this.routeReuseStrategy.store(route.value.snapshot, { componentRef, route, contexts });\n }\n }\n deactivateRouteAndOutlet(route, parentContexts) {\n const context = parentContexts.getContext(route.value.outlet);\n // The context could be `null` if we are on a componentless route but there may still be\n // children that need deactivating.\n const contexts = context && route.value.component ? context.children : parentContexts;\n const children = nodeChildrenAsMap(route);\n for (const childOutlet of Object.keys(children)) {\n this.deactivateRouteAndItsChildren(children[childOutlet], contexts);\n }\n if (context && context.outlet) {\n // Destroy the component\n context.outlet.deactivate();\n // Destroy the contexts for all the outlets that were in the component\n context.children.onOutletDeactivated();\n // Clear the information about the attached component on the context but keep the reference to\n // the outlet.\n context.attachRef = null;\n context.resolver = null;\n context.route = null;\n }\n }\n activateChildRoutes(futureNode, currNode, contexts) {\n const children = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(c => {\n this.activateRoutes(c, children[c.value.outlet], contexts);\n this.forwardEvent(new ActivationEnd(c.value.snapshot));\n });\n if (futureNode.children.length) {\n this.forwardEvent(new ChildActivationEnd(futureNode.value.snapshot));\n }\n }\n activateRoutes(futureNode, currNode, parentContexts) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n advanceActivatedRoute(future);\n // reusing the node\n if (future === curr) {\n if (future.component) {\n // If we have a normal route, we need to go through an outlet.\n const context = parentContexts.getOrCreateContext(future.outlet);\n this.activateChildRoutes(futureNode, currNode, context.children);\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.activateChildRoutes(futureNode, currNode, parentContexts);\n }\n }\n else {\n if (future.component) {\n // if we have a normal route, we need to place the component into the outlet and recurse.\n const context = parentContexts.getOrCreateContext(future.outlet);\n if (this.routeReuseStrategy.shouldAttach(future.snapshot)) {\n const stored = this.routeReuseStrategy.retrieve(future.snapshot);\n this.routeReuseStrategy.store(future.snapshot, null);\n context.children.onOutletReAttached(stored.contexts);\n context.attachRef = stored.componentRef;\n context.route = stored.route.value;\n if (context.outlet) {\n // Attach right away when the outlet has already been instantiated\n // Otherwise attach from `RouterOutlet.ngOnInit` when it is instantiated\n context.outlet.attach(stored.componentRef, stored.route.value);\n }\n advanceActivatedRoute(stored.route.value);\n this.activateChildRoutes(futureNode, null, context.children);\n }\n else {\n const config = parentLoadedConfig(future.snapshot);\n const cmpFactoryResolver = config ? config.module.componentFactoryResolver : null;\n context.attachRef = null;\n context.route = future;\n context.resolver = cmpFactoryResolver;\n if (context.outlet) {\n // Activate the outlet when it has already been instantiated\n // Otherwise it will get activated from its `ngOnInit` when instantiated\n context.outlet.activateWith(future, cmpFactoryResolver);\n }\n this.activateChildRoutes(futureNode, null, context.children);\n }\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.activateChildRoutes(futureNode, null, parentContexts);\n }\n }\n }\n}\nfunction parentLoadedConfig(snapshot) {\n for (let s = snapshot.parent; s; s = s.parent) {\n const route = s.routeConfig;\n if (route && route._loadedConfig)\n return route._loadedConfig;\n if (route && route.component)\n return null;\n }\n return null;\n}\n\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 */\nclass LoadedRouterConfig {\n constructor(routes, module) {\n this.routes = routes;\n this.module = module;\n }\n}\n\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/**\n * Simple function check, but generic so type inference will flow. Example:\n *\n * function product(a: number, b: number) {\n * return a * b;\n * }\n *\n * if (isFunction<product>(fn)) {\n * return fn(1, 2);\n * } else {\n * throw \"Must provide the `product` function\";\n * }\n */\nfunction isFunction(v) {\n return typeof v === 'function';\n}\nfunction isBoolean(v) {\n return typeof v === 'boolean';\n}\nfunction isUrlTree(v) {\n return v instanceof UrlTree;\n}\nfunction isCanLoad(guard) {\n return guard && isFunction(guard.canLoad);\n}\nfunction isCanActivate(guard) {\n return guard && isFunction(guard.canActivate);\n}\nfunction isCanActivateChild(guard) {\n return guard && isFunction(guard.canActivateChild);\n}\nfunction isCanDeactivate(guard) {\n return guard && isFunction(guard.canDeactivate);\n}\n\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 */\nconst INITIAL_VALUE = Symbol('INITIAL_VALUE');\nfunction prioritizedGuardValue() {\n return switchMap(obs => {\n return combineLatest(obs.map(o => o.pipe(take(1), startWith(INITIAL_VALUE))))\n .pipe(scan((acc, list) => {\n let isPending = false;\n return list.reduce((innerAcc, val, i) => {\n if (innerAcc !== INITIAL_VALUE)\n return innerAcc;\n // Toggle pending flag if any values haven't been set yet\n if (val === INITIAL_VALUE)\n isPending = true;\n // Any other return values are only valid if we haven't yet hit a pending\n // call. This guarantees that in the case of a guard at the bottom of the\n // tree that returns a redirect, we will wait for the higher priority\n // guard at the top to finish before performing the redirect.\n if (!isPending) {\n // Early return when we hit a `false` value as that should always\n // cancel navigation\n if (val === false)\n return val;\n if (i === list.length - 1 || isUrlTree(val)) {\n return val;\n }\n }\n return innerAcc;\n }, acc);\n }, INITIAL_VALUE), filter(item => item !== INITIAL_VALUE), map(item => isUrlTree(item) ? item : item === true), //\n take(1));\n });\n}\n\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/**\n * Store contextual information about a `RouterOutlet`\n *\n * @publicApi\n */\nclass OutletContext {\n constructor() {\n this.outlet = null;\n this.route = null;\n this.resolver = null;\n this.children = new ChildrenOutletContexts();\n this.attachRef = null;\n }\n}\n/**\n * Store contextual information about the children (= nested) `RouterOutlet`\n *\n * @publicApi\n */\nclass ChildrenOutletContexts {\n constructor() {\n // contexts for child outlets, by name.\n this.contexts = new Map();\n }\n /** Called when a `RouterOutlet` directive is instantiated */\n onChildOutletCreated(childName, outlet) {\n const context = this.getOrCreateContext(childName);\n context.outlet = outlet;\n this.contexts.set(childName, context);\n }\n /**\n * Called when a `RouterOutlet` directive is destroyed.\n * We need to keep the context as the outlet could be destroyed inside a NgIf and might be\n * re-created later.\n */\n onChildOutletDestroyed(childName) {\n const context = this.getContext(childName);\n if (context) {\n context.outlet = null;\n context.attachRef = null;\n }\n }\n /**\n * Called when the corresponding route is deactivated during navigation.\n * Because the component get destroyed, all children outlet are destroyed.\n */\n onOutletDeactivated() {\n const contexts = this.contexts;\n this.contexts = new Map();\n return contexts;\n }\n onOutletReAttached(contexts) {\n this.contexts = contexts;\n }\n getOrCreateContext(childName) {\n let context = this.getContext(childName);\n if (!context) {\n context = new OutletContext();\n this.contexts.set(childName, context);\n }\n return context;\n }\n getContext(childName) {\n return this.contexts.get(childName) || null;\n }\n}\n\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/**\n * @description\n *\n * Acts as a placeholder that Angular dynamically fills based on the current router state.\n *\n * Each outlet can have a unique name, determined by the optional `name` attribute.\n * The name cannot be set or changed dynamically. If not set, default value is \"primary\".\n *\n * ```\n * <router-outlet></router-outlet>\n * <router-outlet name='left'></router-outlet>\n * <router-outlet name='right'></router-outlet>\n * ```\n *\n * Named outlets can be the targets of secondary routes.\n * The `Route` object for a secondary route has an `outlet` property to identify the target outlet:\n *\n * `{path: <base-path>, component: <component>, outlet: <target_outlet_name>}`\n *\n * Using named outlets and secondary routes, you can target multiple outlets in\n * the same `RouterLink` directive.\n *\n * The router keeps track of separate branches in a navigation tree for each named outlet and\n * generates a representation of that tree in the URL.\n * The URL for a secondary route uses the following syntax to specify both the primary and secondary\n * routes at the same time:\n *\n * `http://base-path/primary-route-path(outlet-name:route-path)`\n *\n * A router outlet emits an activate event when a new component is instantiated,\n * deactivate event when a component is destroyed.\n * An attached event emits when the `RouteReuseStrategy` instructs the outlet to reattach the\n * subtree, and the detached event emits when the `RouteReuseStrategy` instructs the outlet to\n * detach the subtree.\n *\n * ```\n * <router-outlet\n * (activate)='onActivate($event)'\n * (deactivate)='onDeactivate($event)'\n * (attach)='onAttach($event)'\n * (detach)='onDetach($event)'></router-outlet>\n * ```\n *\n * @see [Routing tutorial](guide/router-tutorial-toh#named-outlets \"Example of a named\n * outlet and secondary route configuration\").\n * @see `RouterLink`\n * @see `Route`\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterOutlet {\n constructor(parentContexts, location, resolver, name, changeDetector) {\n this.parentContexts = parentContexts;\n this.location = location;\n this.resolver = resolver;\n this.changeDetector = changeDetector;\n this.activated = null;\n this._activatedRoute = null;\n this.activateEvents = new EventEmitter();\n this.deactivateEvents = new EventEmitter();\n /**\n * Emits an attached component instance when the `RouteReuseStrategy` instructs to re-attach a\n * previously detached subtree.\n **/\n this.attachEvents = new EventEmitter();\n /**\n * Emits a detached component instance when the `RouteReuseStrategy` instructs to detach the\n * subtree.\n */\n this.detachEvents = new EventEmitter();\n this.name = name || PRIMARY_OUTLET;\n parentContexts.onChildOutletCreated(this.name, this);\n }\n /** @nodoc */\n ngOnDestroy() {\n this.parentContexts.onChildOutletDestroyed(this.name);\n }\n /** @nodoc */\n ngOnInit() {\n if (!this.activated) {\n // If the outlet was not instantiated at the time the route got activated we need to populate\n // the outlet when it is initialized (ie inside a NgIf)\n const context = this.parentContexts.getContext(this.name);\n if (context && context.route) {\n if (context.attachRef) {\n // `attachRef` is populated when there is an existing component to mount\n this.attach(context.attachRef, context.route);\n }\n else {\n // otherwise the component defined in the configuration is created\n this.activateWith(context.route, context.resolver || null);\n }\n }\n }\n }\n get isActivated() {\n return !!this.activated;\n }\n /**\n * @returns The currently activated component instance.\n * @throws An error if the outlet is not activated.\n */\n get component() {\n if (!this.activated)\n throw new Error('Outlet is not activated');\n return this.activated.instance;\n }\n get activatedRoute() {\n if (!this.activated)\n throw new Error('Outlet is not activated');\n return this._activatedRoute;\n }\n get activatedRouteData() {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach() {\n if (!this.activated)\n throw new Error('Outlet is not activated');\n this.location.detach();\n const cmp = this.activated;\n this.activated = null;\n this._activatedRoute = null;\n this.detachEvents.emit(cmp.instance);\n return cmp;\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n attach(ref, activatedRoute) {\n this.activated = ref;\n this._activatedRoute = activatedRoute;\n this.location.insert(ref.hostView);\n this.attachEvents.emit(ref.instance);\n }\n deactivate() {\n if (this.activated) {\n const c = this.component;\n this.activated.destroy();\n this.activated = null;\n this._activatedRoute = null;\n this.deactivateEvents.emit(c);\n }\n }\n activateWith(activatedRoute, resolver) {\n if (this.isActivated) {\n throw new Error('Cannot activate an already activated outlet');\n }\n this._activatedRoute = activatedRoute;\n const snapshot = activatedRoute._futureSnapshot;\n const component = snapshot.routeConfig.component;\n resolver = resolver || this.resolver;\n const factory = resolver.resolveComponentFactory(component);\n const childContexts = this.parentContexts.getOrCreateContext(this.name).children;\n const injector = new OutletInjector(activatedRoute, childContexts, this.location.injector);\n this.activated = this.location.createComponent(factory, this.location.length, injector);\n // Calling `markForCheck` to make sure we will run the change detection when the\n // `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.\n this.changeDetector.markForCheck();\n this.activateEvents.emit(this.activated.instance);\n }\n}\nRouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterOutlet, deps: [{ token: ChildrenOutletContexts }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: 'name', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\nRouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RouterOutlet, selector: \"router-outlet\", outputs: { activateEvents: \"activate\", deactivateEvents: \"deactivate\", attachEvents: \"attach\", detachEvents: \"detach\" }, exportAs: [\"outlet\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterOutlet, decorators: [{\n type: Directive,\n args: [{ selector: 'router-outlet', exportAs: 'outlet' }]\n }], ctorParameters: function () {\n return [{ type: ChildrenOutletContexts }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['name']\n }] }, { type: i0.ChangeDetectorRef }];\n }, propDecorators: { activateEvents: [{\n type: Output,\n args: ['activate']\n }], deactivateEvents: [{\n type: Output,\n args: ['deactivate']\n }], attachEvents: [{\n type: Output,\n args: ['attach']\n }], detachEvents: [{\n type: Output,\n args: ['detach']\n }] } });\nclass OutletInjector {\n constructor(route, childContexts, parent) {\n this.route = route;\n this.childContexts = childContexts;\n this.parent = parent;\n }\n get(token, notFoundValue) {\n if (token === ActivatedRoute) {\n return this.route;\n }\n if (token === ChildrenOutletContexts) {\n return this.childContexts;\n }\n return this.parent.get(token, notFoundValue);\n }\n}\n\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/**\n * This component is used internally within the router to be a placeholder when an empty\n * router-outlet is needed. For example, with a config such as:\n *\n * `{path: 'parent', outlet: 'nav', children: [...]}`\n *\n * In order to render, there needs to be a component on this config, which will default\n * to this `EmptyOutletComponent`.\n */\nclass ɵEmptyOutletComponent {\n}\nɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.4\", type: ɵEmptyOutletComponent, selector: \"ng-component\", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, directives: [{ type: RouterOutlet, selector: \"router-outlet\", outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{\n type: Component,\n args: [{ template: `<router-outlet></router-outlet>` }]\n }] });\n\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 */\nfunction validateConfig(config, parentPath = '') {\n // forEach doesn't iterate undefined values\n for (let i = 0; i < config.length; i++) {\n const route = config[i];\n const fullPath = getFullPath(parentPath, route);\n validateNode(route, fullPath);\n }\n}\nfunction validateNode(route, fullPath) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!route) {\n throw new Error(`\n Invalid configuration of route '${fullPath}': Encountered undefined route.\n The reason might be an extra comma.\n\n Example:\n const routes: Routes = [\n { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n { path: 'dashboard', component: DashboardComponent },, << two commas\n { path: 'detail/:id', component: HeroDetailComponent }\n ];\n `);\n }\n if (Array.isArray(route)) {\n throw new Error(`Invalid configuration of route '${fullPath}': Array cannot be specified`);\n }\n if (!route.component && !route.children && !route.loadChildren &&\n (route.outlet && route.outlet !== PRIMARY_OUTLET)) {\n throw new Error(`Invalid configuration of route '${fullPath}': a componentless route without children or loadChildren cannot have a named outlet set`);\n }\n if (route.redirectTo && route.children) {\n throw new Error(`Invalid configuration of route '${fullPath}': redirectTo and children cannot be used together`);\n }\n if (route.redirectTo && route.loadChildren) {\n throw new Error(`Invalid configuration of route '${fullPath}': redirectTo and loadChildren cannot be used together`);\n }\n if (route.children && route.loadChildren) {\n throw new Error(`Invalid configuration of route '${fullPath}': children and loadChildren cannot be used together`);\n }\n if (route.redirectTo && route.component) {\n throw new Error(`Invalid configuration of route '${fullPath}': redirectTo and component cannot be used together`);\n }\n if (route.redirectTo && route.canActivate) {\n throw new Error(`Invalid configuration of route '${fullPath}': redirectTo and canActivate cannot be used together. Redirects happen before activation ` +\n `so canActivate will never be executed.`);\n }\n if (route.path && route.matcher) {\n throw new Error(`Invalid configuration of route '${fullPath}': path and matcher cannot be used together`);\n }\n if (route.redirectTo === void 0 && !route.component && !route.children && !route.loadChildren) {\n throw new Error(`Invalid configuration of route '${fullPath}'. One of the following must be provided: component, redirectTo, children or loadChildren`);\n }\n if (route.path === void 0 && route.matcher === void 0) {\n throw new Error(`Invalid configuration of route '${fullPath}': routes must have either a path or a matcher specified`);\n }\n if (typeof route.path === 'string' && route.path.charAt(0) === '/') {\n throw new Error(`Invalid configuration of route '${fullPath}': path cannot start with a slash`);\n }\n if (route.path === '' && route.redirectTo !== void 0 && route.pathMatch === void 0) {\n const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;\n throw new Error(`Invalid configuration of route '{path: \"${fullPath}\", redirectTo: \"${route.redirectTo}\"}': please provide 'pathMatch'. ${exp}`);\n }\n if (route.pathMatch !== void 0 && route.pathMatch !== 'full' && route.pathMatch !== 'prefix') {\n throw new Error(`Invalid configuration of route '${fullPath}': pathMatch can only be set to 'prefix' or 'full'`);\n }\n }\n if (route.children) {\n validateConfig(route.children, fullPath);\n }\n}\nfunction getFullPath(parentPath, currentRoute) {\n if (!currentRoute) {\n return parentPath;\n }\n if (!parentPath && !currentRoute.path) {\n return '';\n }\n else if (parentPath && !currentRoute.path) {\n return `${parentPath}/`;\n }\n else if (!parentPath && currentRoute.path) {\n return currentRoute.path;\n }\n else {\n return `${parentPath}/${currentRoute.path}`;\n }\n}\n/**\n * Makes a copy of the config and adds any default required properties.\n */\nfunction standardizeConfig(r) {\n const children = r.children && r.children.map(standardizeConfig);\n const c = children ? Object.assign(Object.assign({}, r), { children }) : Object.assign({}, r);\n if (!c.component && (children || c.loadChildren) && (c.outlet && c.outlet !== PRIMARY_OUTLET)) {\n c.component = ɵEmptyOutletComponent;\n }\n return c;\n}\n/** Returns the `route.outlet` or PRIMARY_OUTLET if none exists. */\nfunction getOutlet(route) {\n return route.outlet || PRIMARY_OUTLET;\n}\n/**\n * Sorts the `routes` such that the ones with an outlet matching `outletName` come first.\n * The order of the configs is otherwise preserved.\n */\nfunction sortByMatchingOutlets(routes, outletName) {\n const sortedConfig = routes.filter(r => getOutlet(r) === outletName);\n sortedConfig.push(...routes.filter(r => getOutlet(r) !== outletName));\n return sortedConfig;\n}\n\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 */\nconst noMatch$1 = {\n matched: false,\n consumedSegments: [],\n remainingSegments: [],\n parameters: {},\n positionalParamSegments: {}\n};\nfunction match(segmentGroup, route, segments) {\n var _a;\n if (route.path === '') {\n if (route.pathMatch === 'full' && (segmentGroup.hasChildren() || segments.length > 0)) {\n return Object.assign({}, noMatch$1);\n }\n return {\n matched: true,\n consumedSegments: [],\n remainingSegments: segments,\n parameters: {},\n positionalParamSegments: {}\n };\n }\n const matcher = route.matcher || defaultUrlMatcher;\n const res = matcher(segments, segmentGroup, route);\n if (!res)\n return Object.assign({}, noMatch$1);\n const posParams = {};\n forEach(res.posParams, (v, k) => {\n posParams[k] = v.path;\n });\n const parameters = res.consumed.length > 0 ? Object.assign(Object.assign({}, posParams), res.consumed[res.consumed.length - 1].parameters) :\n posParams;\n return {\n matched: true,\n consumedSegments: res.consumed,\n remainingSegments: segments.slice(res.consumed.length),\n // TODO(atscott): investigate combining parameters and positionalParamSegments\n parameters,\n positionalParamSegments: (_a = res.posParams) !== null && _a !== void 0 ? _a : {}\n };\n}\nfunction split(segmentGroup, consumedSegments, slicedSegments, config, relativeLinkResolution = 'corrected') {\n if (slicedSegments.length > 0 &&\n containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, config)) {\n const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(segmentGroup, consumedSegments, config, new UrlSegmentGroup(slicedSegments, segmentGroup.children)));\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments: [] };\n }\n if (slicedSegments.length === 0 &&\n containsEmptyPathMatches(segmentGroup, slicedSegments, config)) {\n const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, config, segmentGroup.children, relativeLinkResolution));\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments };\n }\n const s = new UrlSegmentGroup(segmentGroup.segments, segmentGroup.children);\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments };\n}\nfunction addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, routes, children, relativeLinkResolution) {\n const res = {};\n for (const r of routes) {\n if (emptyPathMatch(segmentGroup, slicedSegments, r) && !children[getOutlet(r)]) {\n const s = new UrlSegmentGroup([], {});\n s._sourceSegment = segmentGroup;\n if (relativeLinkResolution === 'legacy') {\n s._segmentIndexShift = segmentGroup.segments.length;\n }\n else {\n s._segmentIndexShift = consumedSegments.length;\n }\n res[getOutlet(r)] = s;\n }\n }\n return Object.assign(Object.assign({}, children), res);\n}\nfunction createChildrenForEmptyPaths(segmentGroup, consumedSegments, routes, primarySegment) {\n const res = {};\n res[PRIMARY_OUTLET] = primarySegment;\n primarySegment._sourceSegment = segmentGroup;\n primarySegment._segmentIndexShift = consumedSegments.length;\n for (const r of routes) {\n if (r.path === '' && getOutlet(r) !== PRIMARY_OUTLET) {\n const s = new UrlSegmentGroup([], {});\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n res[getOutlet(r)] = s;\n }\n }\n return res;\n}\nfunction containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, routes) {\n return routes.some(r => emptyPathMatch(segmentGroup, slicedSegments, r) && getOutlet(r) !== PRIMARY_OUTLET);\n}\nfunction containsEmptyPathMatches(segmentGroup, slicedSegments, routes) {\n return routes.some(r => emptyPathMatch(segmentGroup, slicedSegments, r));\n}\nfunction emptyPathMatch(segmentGroup, slicedSegments, r) {\n if ((segmentGroup.hasChildren() || slicedSegments.length > 0) && r.pathMatch === 'full') {\n return false;\n }\n return r.path === '';\n}\n/**\n * Determines if `route` is a path match for the `rawSegment`, `segments`, and `outlet` without\n * verifying that its children are a full match for the remainder of the `rawSegment` children as\n * well.\n */\nfunction isImmediateMatch(route, rawSegment, segments, outlet) {\n // We allow matches to empty paths when the outlets differ so we can match a url like `/(b:b)` to\n // a config like\n // * `{path: '', children: [{path: 'b', outlet: 'b'}]}`\n // or even\n // * `{path: '', outlet: 'a', children: [{path: 'b', outlet: 'b'}]`\n //\n // The exception here is when the segment outlet is for the primary outlet. This would\n // result in a match inside the named outlet because all children there are written as primary\n // outlets. So we need to prevent child named outlet matches in a url like `/b` in a config like\n // * `{path: '', outlet: 'x' children: [{path: 'b'}]}`\n // This should only match if the url is `/(x:b)`.\n if (getOutlet(route) !== outlet &&\n (outlet === PRIMARY_OUTLET || !emptyPathMatch(rawSegment, segments, route))) {\n return false;\n }\n if (route.path === '**') {\n return true;\n }\n return match(rawSegment, route, segments).matched;\n}\nfunction noLeftoversInUrl(segmentGroup, segments, outlet) {\n return segments.length === 0 && !segmentGroup.children[outlet];\n}\n\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 */\nclass NoMatch$1 {\n constructor(segmentGroup) {\n this.segmentGroup = segmentGroup || null;\n }\n}\nclass AbsoluteRedirect {\n constructor(urlTree) {\n this.urlTree = urlTree;\n }\n}\nfunction noMatch(segmentGroup) {\n return throwError(new NoMatch$1(segmentGroup));\n}\nfunction absoluteRedirect(newTree) {\n return throwError(new AbsoluteRedirect(newTree));\n}\nfunction namedOutletsRedirect(redirectTo) {\n return throwError(new Error(`Only absolute redirects can have named outlets. redirectTo: '${redirectTo}'`));\n}\nfunction canLoadFails(route) {\n return throwError(navigationCancelingError(`Cannot load children because the guard of the route \"path: '${route.path}'\" returned false`));\n}\n/**\n * Returns the `UrlTree` with the redirection applied.\n *\n * Lazy modules are loaded along the way.\n */\nfunction applyRedirects$1(moduleInjector, configLoader, urlSerializer, urlTree, config) {\n return new ApplyRedirects(moduleInjector, configLoader, urlSerializer, urlTree, config).apply();\n}\nclass ApplyRedirects {\n constructor(moduleInjector, configLoader, urlSerializer, urlTree, config) {\n this.configLoader = configLoader;\n this.urlSerializer = urlSerializer;\n this.urlTree = urlTree;\n this.config = config;\n this.allowRedirects = true;\n this.ngModule = moduleInjector.get(NgModuleRef);\n }\n apply() {\n const splitGroup = split(this.urlTree.root, [], [], this.config).segmentGroup;\n // TODO(atscott): creating a new segment removes the _sourceSegment _segmentIndexShift, which is\n // only necessary to prevent failures in tests which assert exact object matches. The `split` is\n // now shared between `applyRedirects` and `recognize` but only the `recognize` step needs these\n // properties. Before the implementations were merged, the `applyRedirects` would not assign\n // them. We should be able to remove this logic as a \"breaking change\" but should do some more\n // investigation into the failures first.\n const rootSegmentGroup = new UrlSegmentGroup(splitGroup.segments, splitGroup.children);\n const expanded$ = this.expandSegmentGroup(this.ngModule, this.config, rootSegmentGroup, PRIMARY_OUTLET);\n const urlTrees$ = expanded$.pipe(map((rootSegmentGroup) => {\n return this.createUrlTree(squashSegmentGroup(rootSegmentGroup), this.urlTree.queryParams, this.urlTree.fragment);\n }));\n return urlTrees$.pipe(catchError((e) => {\n if (e instanceof AbsoluteRedirect) {\n // After an absolute redirect we do not apply any more redirects!\n // If this implementation changes, update the documentation note in `redirectTo`.\n this.allowRedirects = false;\n // we need to run matching, so we can fetch all lazy-loaded modules\n return this.match(e.urlTree);\n }\n if (e instanceof NoMatch$1) {\n throw this.noMatchError(e);\n }\n throw e;\n }));\n }\n match(tree) {\n const expanded$ = this.expandSegmentGroup(this.ngModule, this.config, tree.root, PRIMARY_OUTLET);\n const mapped$ = expanded$.pipe(map((rootSegmentGroup) => {\n return this.createUrlTree(squashSegmentGroup(rootSegmentGroup), tree.queryParams, tree.fragment);\n }));\n return mapped$.pipe(catchError((e) => {\n if (e instanceof NoMatch$1) {\n throw this.noMatchError(e);\n }\n throw e;\n }));\n }\n noMatchError(e) {\n return new Error(`Cannot match any routes. URL Segment: '${e.segmentGroup}'`);\n }\n createUrlTree(rootCandidate, queryParams, fragment) {\n const root = rootCandidate.segments.length > 0 ?\n new UrlSegmentGroup([], { [PRIMARY_OUTLET]: rootCandidate }) :\n rootCandidate;\n return new UrlTree(root, queryParams, fragment);\n }\n expandSegmentGroup(ngModule, routes, segmentGroup, outlet) {\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return this.expandChildren(ngModule, routes, segmentGroup)\n .pipe(map((children) => new UrlSegmentGroup([], children)));\n }\n return this.expandSegment(ngModule, segmentGroup, routes, segmentGroup.segments, outlet, true);\n }\n // Recursively expand segment groups for all the child outlets\n expandChildren(ngModule, routes, segmentGroup) {\n // Expand outlets one at a time, starting with the primary outlet. We need to do it this way\n // because an absolute redirect from the primary outlet takes precedence.\n const childOutlets = [];\n for (const child of Object.keys(segmentGroup.children)) {\n if (child === 'primary') {\n childOutlets.unshift(child);\n }\n else {\n childOutlets.push(child);\n }\n }\n return from(childOutlets)\n .pipe(concatMap(childOutlet => {\n const child = segmentGroup.children[childOutlet];\n // Sort the routes so routes with outlets that match the segment appear\n // first, followed by routes for other outlets, which might match if they have an\n // empty path.\n const sortedRoutes = sortByMatchingOutlets(routes, childOutlet);\n return this.expandSegmentGroup(ngModule, sortedRoutes, child, childOutlet)\n .pipe(map(s => ({ segment: s, outlet: childOutlet })));\n }), scan((children, expandedChild) => {\n children[expandedChild.outlet] = expandedChild.segment;\n return children;\n }, {}), last$1());\n }\n expandSegment(ngModule, segmentGroup, routes, segments, outlet, allowRedirects) {\n return from(routes).pipe(concatMap((r) => {\n const expanded$ = this.expandSegmentAgainstRoute(ngModule, segmentGroup, routes, r, segments, outlet, allowRedirects);\n return expanded$.pipe(catchError((e) => {\n if (e instanceof NoMatch$1) {\n return of(null);\n }\n throw e;\n }));\n }), first((s) => !!s), catchError((e, _) => {\n if (e instanceof EmptyError || e.name === 'EmptyError') {\n if (noLeftoversInUrl(segmentGroup, segments, outlet)) {\n return of(new UrlSegmentGroup([], {}));\n }\n return noMatch(segmentGroup);\n }\n throw e;\n }));\n }\n expandSegmentAgainstRoute(ngModule, segmentGroup, routes, route, paths, outlet, allowRedirects) {\n if (!isImmediateMatch(route, segmentGroup, paths, outlet)) {\n return noMatch(segmentGroup);\n }\n if (route.redirectTo === undefined) {\n return this.matchSegmentAgainstRoute(ngModule, segmentGroup, route, paths, outlet);\n }\n if (allowRedirects && this.allowRedirects) {\n return this.expandSegmentAgainstRouteUsingRedirect(ngModule, segmentGroup, routes, route, paths, outlet);\n }\n return noMatch(segmentGroup);\n }\n expandSegmentAgainstRouteUsingRedirect(ngModule, segmentGroup, routes, route, segments, outlet) {\n if (route.path === '**') {\n return this.expandWildCardWithParamsAgainstRouteUsingRedirect(ngModule, routes, route, outlet);\n }\n return this.expandRegularSegmentAgainstRouteUsingRedirect(ngModule, segmentGroup, routes, route, segments, outlet);\n }\n expandWildCardWithParamsAgainstRouteUsingRedirect(ngModule, routes, route, outlet) {\n const newTree = this.applyRedirectCommands([], route.redirectTo, {});\n if (route.redirectTo.startsWith('/')) {\n return absoluteRedirect(newTree);\n }\n return this.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {\n const group = new UrlSegmentGroup(newSegments, {});\n return this.expandSegment(ngModule, group, routes, newSegments, outlet, false);\n }));\n }\n expandRegularSegmentAgainstRouteUsingRedirect(ngModule, segmentGroup, routes, route, segments, outlet) {\n const { matched, consumedSegments, remainingSegments, positionalParamSegments } = match(segmentGroup, route, segments);\n if (!matched)\n return noMatch(segmentGroup);\n const newTree = this.applyRedirectCommands(consumedSegments, route.redirectTo, positionalParamSegments);\n if (route.redirectTo.startsWith('/')) {\n return absoluteRedirect(newTree);\n }\n return this.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {\n return this.expandSegment(ngModule, segmentGroup, routes, newSegments.concat(remainingSegments), outlet, false);\n }));\n }\n matchSegmentAgainstRoute(ngModule, rawSegmentGroup, route, segments, outlet) {\n if (route.path === '**') {\n if (route.loadChildren) {\n const loaded$ = route._loadedConfig ? of(route._loadedConfig) :\n this.configLoader.load(ngModule.injector, route);\n return loaded$.pipe(map((cfg) => {\n route._loadedConfig = cfg;\n return new UrlSegmentGroup(segments, {});\n }));\n }\n return of(new UrlSegmentGroup(segments, {}));\n }\n const { matched, consumedSegments, remainingSegments } = match(rawSegmentGroup, route, segments);\n if (!matched)\n return noMatch(rawSegmentGroup);\n const childConfig$ = this.getChildConfig(ngModule, route, segments);\n return childConfig$.pipe(mergeMap((routerConfig) => {\n const childModule = routerConfig.module;\n const childConfig = routerConfig.routes;\n const { segmentGroup: splitSegmentGroup, slicedSegments } = split(rawSegmentGroup, consumedSegments, remainingSegments, childConfig);\n // See comment on the other call to `split` about why this is necessary.\n const segmentGroup = new UrlSegmentGroup(splitSegmentGroup.segments, splitSegmentGroup.children);\n if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {\n const expanded$ = this.expandChildren(childModule, childConfig, segmentGroup);\n return expanded$.pipe(map((children) => new UrlSegmentGroup(consumedSegments, children)));\n }\n if (childConfig.length === 0 && slicedSegments.length === 0) {\n return of(new UrlSegmentGroup(consumedSegments, {}));\n }\n const matchedOnOutlet = getOutlet(route) === outlet;\n const expanded$ = this.expandSegment(childModule, segmentGroup, childConfig, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet, true);\n return expanded$.pipe(map((cs) => new UrlSegmentGroup(consumedSegments.concat(cs.segments), cs.children)));\n }));\n }\n getChildConfig(ngModule, route, segments) {\n if (route.children) {\n // The children belong to the same module\n return of(new LoadedRouterConfig(route.children, ngModule));\n }\n if (route.loadChildren) {\n // lazy children belong to the loaded module\n if (route._loadedConfig !== undefined) {\n return of(route._loadedConfig);\n }\n return this.runCanLoadGuards(ngModule.injector, route, segments)\n .pipe(mergeMap((shouldLoadResult) => {\n if (shouldLoadResult) {\n return this.configLoader.load(ngModule.injector, route)\n .pipe(map((cfg) => {\n route._loadedConfig = cfg;\n return cfg;\n }));\n }\n return canLoadFails(route);\n }));\n }\n return of(new LoadedRouterConfig([], ngModule));\n }\n runCanLoadGuards(moduleInjector, route, segments) {\n const canLoad = route.canLoad;\n if (!canLoad || canLoad.length === 0)\n return of(true);\n const canLoadObservables = canLoad.map((injectionToken) => {\n const guard = moduleInjector.get(injectionToken);\n let guardVal;\n if (isCanLoad(guard)) {\n guardVal = guard.canLoad(route, segments);\n }\n else if (isFunction(guard)) {\n guardVal = guard(route, segments);\n }\n else {\n throw new Error('Invalid CanLoad guard');\n }\n return wrapIntoObservable(guardVal);\n });\n return of(canLoadObservables)\n .pipe(prioritizedGuardValue(), tap((result) => {\n if (!isUrlTree(result))\n return;\n const error = navigationCancelingError(`Redirecting to \"${this.urlSerializer.serialize(result)}\"`);\n error.url = result;\n throw error;\n }), map(result => result === true));\n }\n lineralizeSegments(route, urlTree) {\n let res = [];\n let c = urlTree.root;\n while (true) {\n res = res.concat(c.segments);\n if (c.numberOfChildren === 0) {\n return of(res);\n }\n if (c.numberOfChildren > 1 || !c.children[PRIMARY_OUTLET]) {\n return namedOutletsRedirect(route.redirectTo);\n }\n c = c.children[PRIMARY_OUTLET];\n }\n }\n applyRedirectCommands(segments, redirectTo, posParams) {\n return this.applyRedirectCreatreUrlTree(redirectTo, this.urlSerializer.parse(redirectTo), segments, posParams);\n }\n applyRedirectCreatreUrlTree(redirectTo, urlTree, segments, posParams) {\n const newRoot = this.createSegmentGroup(redirectTo, urlTree.root, segments, posParams);\n return new UrlTree(newRoot, this.createQueryParams(urlTree.queryParams, this.urlTree.queryParams), urlTree.fragment);\n }\n createQueryParams(redirectToParams, actualParams) {\n const res = {};\n forEach(redirectToParams, (v, k) => {\n const copySourceValue = typeof v === 'string' && v.startsWith(':');\n if (copySourceValue) {\n const sourceName = v.substring(1);\n res[k] = actualParams[sourceName];\n }\n else {\n res[k] = v;\n }\n });\n return res;\n }\n createSegmentGroup(redirectTo, group, segments, posParams) {\n const updatedSegments = this.createSegments(redirectTo, group.segments, segments, posParams);\n let children = {};\n forEach(group.children, (child, name) => {\n children[name] = this.createSegmentGroup(redirectTo, child, segments, posParams);\n });\n return new UrlSegmentGroup(updatedSegments, children);\n }\n createSegments(redirectTo, redirectToSegments, actualSegments, posParams) {\n return redirectToSegments.map(s => s.path.startsWith(':') ? this.findPosParam(redirectTo, s, posParams) :\n this.findOrReturn(s, actualSegments));\n }\n findPosParam(redirectTo, redirectToUrlSegment, posParams) {\n const pos = posParams[redirectToUrlSegment.path.substring(1)];\n if (!pos)\n throw new Error(`Cannot redirect to '${redirectTo}'. Cannot find '${redirectToUrlSegment.path}'.`);\n return pos;\n }\n findOrReturn(redirectToUrlSegment, actualSegments) {\n let idx = 0;\n for (const s of actualSegments) {\n if (s.path === redirectToUrlSegment.path) {\n actualSegments.splice(idx);\n return s;\n }\n idx++;\n }\n return redirectToUrlSegment;\n }\n}\n/**\n * When possible, merges the primary outlet child into the parent `UrlSegmentGroup`.\n *\n * When a segment group has only one child which is a primary outlet, merges that child into the\n * parent. That is, the child segment group's segments are merged into the `s` and the child's\n * children become the children of `s`. Think of this like a 'squash', merging the child segment\n * group into the parent.\n */\nfunction mergeTrivialChildren(s) {\n if (s.numberOfChildren === 1 && s.children[PRIMARY_OUTLET]) {\n const c = s.children[PRIMARY_OUTLET];\n return new UrlSegmentGroup(s.segments.concat(c.segments), c.children);\n }\n return s;\n}\n/**\n * Recursively merges primary segment children into their parents and also drops empty children\n * (those which have no segments and no children themselves). The latter prevents serializing a\n * group into something like `/a(aux:)`, where `aux` is an empty child segment.\n */\nfunction squashSegmentGroup(segmentGroup) {\n const newChildren = {};\n for (const childOutlet of Object.keys(segmentGroup.children)) {\n const child = segmentGroup.children[childOutlet];\n const childCandidate = squashSegmentGroup(child);\n // don't add empty children\n if (childCandidate.segments.length > 0 || childCandidate.hasChildren()) {\n newChildren[childOutlet] = childCandidate;\n }\n }\n const s = new UrlSegmentGroup(segmentGroup.segments, newChildren);\n return mergeTrivialChildren(s);\n}\n\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 */\nfunction applyRedirects(moduleInjector, configLoader, urlSerializer, config) {\n return switchMap(t => applyRedirects$1(moduleInjector, configLoader, urlSerializer, t.extractedUrl, config)\n .pipe(map(urlAfterRedirects => (Object.assign(Object.assign({}, t), { urlAfterRedirects })))));\n}\n\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 */\nclass CanActivate {\n constructor(path) {\n this.path = path;\n this.route = this.path[this.path.length - 1];\n }\n}\nclass CanDeactivate {\n constructor(component, route) {\n this.component = component;\n this.route = route;\n }\n}\nfunction getAllRouteGuards(future, curr, parentContexts) {\n const futureRoot = future._root;\n const currRoot = curr ? curr._root : null;\n return getChildRouteGuards(futureRoot, currRoot, parentContexts, [futureRoot.value]);\n}\nfunction getCanActivateChild(p) {\n const canActivateChild = p.routeConfig ? p.routeConfig.canActivateChild : null;\n if (!canActivateChild || canActivateChild.length === 0)\n return null;\n return { node: p, guards: canActivateChild };\n}\nfunction getToken(token, snapshot, moduleInjector) {\n const config = getClosestLoadedConfig(snapshot);\n const injector = config ? config.module.injector : moduleInjector;\n return injector.get(token);\n}\nfunction getClosestLoadedConfig(snapshot) {\n if (!snapshot)\n return null;\n for (let s = snapshot.parent; s; s = s.parent) {\n const route = s.routeConfig;\n if (route && route._loadedConfig)\n return route._loadedConfig;\n }\n return null;\n}\nfunction getChildRouteGuards(futureNode, currNode, contexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const prevChildren = nodeChildrenAsMap(currNode);\n // Process the children of the future route\n futureNode.children.forEach(c => {\n getRouteGuards(c, prevChildren[c.value.outlet], contexts, futurePath.concat([c.value]), checks);\n delete prevChildren[c.value.outlet];\n });\n // Process any children left from the current route (not active for the future route)\n forEach(prevChildren, (v, k) => deactivateRouteAndItsChildren(v, contexts.getContext(k), checks));\n return checks;\n}\nfunction getRouteGuards(futureNode, currNode, parentContexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n const context = parentContexts ? parentContexts.getContext(futureNode.value.outlet) : null;\n // reusing the node\n if (curr && future.routeConfig === curr.routeConfig) {\n const shouldRun = shouldRunGuardsAndResolvers(curr, future, future.routeConfig.runGuardsAndResolvers);\n if (shouldRun) {\n checks.canActivateChecks.push(new CanActivate(futurePath));\n }\n else {\n // we need to set the data\n future.data = curr.data;\n future._resolvedData = curr._resolvedData;\n }\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, currNode, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n }\n else {\n getChildRouteGuards(futureNode, currNode, parentContexts, futurePath, checks);\n }\n if (shouldRun && context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, curr));\n }\n }\n else {\n if (curr) {\n deactivateRouteAndItsChildren(currNode, context, checks);\n }\n checks.canActivateChecks.push(new CanActivate(futurePath));\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, null, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n }\n else {\n getChildRouteGuards(futureNode, null, parentContexts, futurePath, checks);\n }\n }\n return checks;\n}\nfunction shouldRunGuardsAndResolvers(curr, future, mode) {\n if (typeof mode === 'function') {\n return mode(curr, future);\n }\n switch (mode) {\n case 'pathParamsChange':\n return !equalPath(curr.url, future.url);\n case 'pathParamsOrQueryParamsChange':\n return !equalPath(curr.url, future.url) ||\n !shallowEqual(curr.queryParams, future.queryParams);\n case 'always':\n return true;\n case 'paramsOrQueryParamsChange':\n return !equalParamsAndUrlSegments(curr, future) ||\n !shallowEqual(curr.queryParams, future.queryParams);\n case 'paramsChange':\n default:\n return !equalParamsAndUrlSegments(curr, future);\n }\n}\nfunction deactivateRouteAndItsChildren(route, context, checks) {\n const children = nodeChildrenAsMap(route);\n const r = route.value;\n forEach(children, (node, childName) => {\n if (!r.component) {\n deactivateRouteAndItsChildren(node, context, checks);\n }\n else if (context) {\n deactivateRouteAndItsChildren(node, context.children.getContext(childName), checks);\n }\n else {\n deactivateRouteAndItsChildren(node, null, checks);\n }\n });\n if (!r.component) {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n }\n else if (context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, r));\n }\n else {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n }\n}\n\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 */\nfunction checkGuards(moduleInjector, forwardEvent) {\n return mergeMap(t => {\n const { targetSnapshot, currentSnapshot, guards: { canActivateChecks, canDeactivateChecks } } = t;\n if (canDeactivateChecks.length === 0 && canActivateChecks.length === 0) {\n return of(Object.assign(Object.assign({}, t), { guardsResult: true }));\n }\n return runCanDeactivateChecks(canDeactivateChecks, targetSnapshot, currentSnapshot, moduleInjector)\n .pipe(mergeMap(canDeactivate => {\n return canDeactivate && isBoolean(canDeactivate) ?\n runCanActivateChecks(targetSnapshot, canActivateChecks, moduleInjector, forwardEvent) :\n of(canDeactivate);\n }), map(guardsResult => (Object.assign(Object.assign({}, t), { guardsResult }))));\n });\n}\nfunction runCanDeactivateChecks(checks, futureRSS, currRSS, moduleInjector) {\n return from(checks).pipe(mergeMap(check => runCanDeactivate(check.component, check.route, currRSS, futureRSS, moduleInjector)), first(result => {\n return result !== true;\n }, true));\n}\nfunction runCanActivateChecks(futureSnapshot, checks, moduleInjector, forwardEvent) {\n return from(checks).pipe(concatMap((check) => {\n return concat(fireChildActivationStart(check.route.parent, forwardEvent), fireActivationStart(check.route, forwardEvent), runCanActivateChild(futureSnapshot, check.path, moduleInjector), runCanActivate(futureSnapshot, check.route, moduleInjector));\n }), first(result => {\n return result !== true;\n }, true));\n}\n/**\n * This should fire off `ActivationStart` events for each route being activated at this\n * level.\n * In other words, if you're activating `a` and `b` below, `path` will contain the\n * `ActivatedRouteSnapshot`s for both and we will fire `ActivationStart` for both. Always\n * return\n * `true` so checks continue to run.\n */\nfunction fireActivationStart(snapshot, forwardEvent) {\n if (snapshot !== null && forwardEvent) {\n forwardEvent(new ActivationStart(snapshot));\n }\n return of(true);\n}\n/**\n * This should fire off `ChildActivationStart` events for each route being activated at this\n * level.\n * In other words, if you're activating `a` and `b` below, `path` will contain the\n * `ActivatedRouteSnapshot`s for both and we will fire `ChildActivationStart` for both. Always\n * return\n * `true` so checks continue to run.\n */\nfunction fireChildActivationStart(snapshot, forwardEvent) {\n if (snapshot !== null && forwardEvent) {\n forwardEvent(new ChildActivationStart(snapshot));\n }\n return of(true);\n}\nfunction runCanActivate(futureRSS, futureARS, moduleInjector) {\n const canActivate = futureARS.routeConfig ? futureARS.routeConfig.canActivate : null;\n if (!canActivate || canActivate.length === 0)\n return of(true);\n const canActivateObservables = canActivate.map((c) => {\n return defer(() => {\n const guard = getToken(c, futureARS, moduleInjector);\n let observable;\n if (isCanActivate(guard)) {\n observable = wrapIntoObservable(guard.canActivate(futureARS, futureRSS));\n }\n else if (isFunction(guard)) {\n observable = wrapIntoObservable(guard(futureARS, futureRSS));\n }\n else {\n throw new Error('Invalid CanActivate guard');\n }\n return observable.pipe(first());\n });\n });\n return of(canActivateObservables).pipe(prioritizedGuardValue());\n}\nfunction runCanActivateChild(futureRSS, path, moduleInjector) {\n const futureARS = path[path.length - 1];\n const canActivateChildGuards = path.slice(0, path.length - 1)\n .reverse()\n .map(p => getCanActivateChild(p))\n .filter(_ => _ !== null);\n const canActivateChildGuardsMapped = canActivateChildGuards.map((d) => {\n return defer(() => {\n const guardsMapped = d.guards.map((c) => {\n const guard = getToken(c, d.node, moduleInjector);\n let observable;\n if (isCanActivateChild(guard)) {\n observable = wrapIntoObservable(guard.canActivateChild(futureARS, futureRSS));\n }\n else if (isFunction(guard)) {\n observable = wrapIntoObservable(guard(futureARS, futureRSS));\n }\n else {\n throw new Error('Invalid CanActivateChild guard');\n }\n return observable.pipe(first());\n });\n return of(guardsMapped).pipe(prioritizedGuardValue());\n });\n });\n return of(canActivateChildGuardsMapped).pipe(prioritizedGuardValue());\n}\nfunction runCanDeactivate(component, currARS, currRSS, futureRSS, moduleInjector) {\n const canDeactivate = currARS && currARS.routeConfig ? currARS.routeConfig.canDeactivate : null;\n if (!canDeactivate || canDeactivate.length === 0)\n return of(true);\n const canDeactivateObservables = canDeactivate.map((c) => {\n const guard = getToken(c, currARS, moduleInjector);\n let observable;\n if (isCanDeactivate(guard)) {\n observable = wrapIntoObservable(guard.canDeactivate(component, currARS, currRSS, futureRSS));\n }\n else if (isFunction(guard)) {\n observable = wrapIntoObservable(guard(component, currARS, currRSS, futureRSS));\n }\n else {\n throw new Error('Invalid CanDeactivate guard');\n }\n return observable.pipe(first());\n });\n return of(canDeactivateObservables).pipe(prioritizedGuardValue());\n}\n\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 */\nclass NoMatch {\n}\nfunction newObservableError(e) {\n // TODO(atscott): This pattern is used throughout the router code and can be `throwError` instead.\n return new Observable((obs) => obs.error(e));\n}\nfunction recognize$1(rootComponentType, config, urlTree, url, paramsInheritanceStrategy = 'emptyOnly', relativeLinkResolution = 'legacy') {\n try {\n const result = new Recognizer(rootComponentType, config, urlTree, url, paramsInheritanceStrategy, relativeLinkResolution)\n .recognize();\n if (result === null) {\n return newObservableError(new NoMatch());\n }\n else {\n return of(result);\n }\n }\n catch (e) {\n // Catch the potential error from recognize due to duplicate outlet matches and return as an\n // `Observable` error instead.\n return newObservableError(e);\n }\n}\nclass Recognizer {\n constructor(rootComponentType, config, urlTree, url, paramsInheritanceStrategy, relativeLinkResolution) {\n this.rootComponentType = rootComponentType;\n this.config = config;\n this.urlTree = urlTree;\n this.url = url;\n this.paramsInheritanceStrategy = paramsInheritanceStrategy;\n this.relativeLinkResolution = relativeLinkResolution;\n }\n recognize() {\n const rootSegmentGroup = split(this.urlTree.root, [], [], this.config.filter(c => c.redirectTo === undefined), this.relativeLinkResolution)\n .segmentGroup;\n const children = this.processSegmentGroup(this.config, rootSegmentGroup, PRIMARY_OUTLET);\n if (children === null) {\n return null;\n }\n // Use Object.freeze to prevent readers of the Router state from modifying it outside of a\n // navigation, resulting in the router being out of sync with the browser.\n const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null, this.urlTree.root, -1, {});\n const rootNode = new TreeNode(root, children);\n const routeState = new RouterStateSnapshot(this.url, rootNode);\n this.inheritParamsAndData(routeState._root);\n return routeState;\n }\n inheritParamsAndData(routeNode) {\n const route = routeNode.value;\n const i = inheritedParamsDataResolve(route, this.paramsInheritanceStrategy);\n route.params = Object.freeze(i.params);\n route.data = Object.freeze(i.data);\n routeNode.children.forEach(n => this.inheritParamsAndData(n));\n }\n processSegmentGroup(config, segmentGroup, outlet) {\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return this.processChildren(config, segmentGroup);\n }\n return this.processSegment(config, segmentGroup, segmentGroup.segments, outlet);\n }\n /**\n * Matches every child outlet in the `segmentGroup` to a `Route` in the config. Returns `null` if\n * we cannot find a match for _any_ of the children.\n *\n * @param config - The `Routes` to match against\n * @param segmentGroup - The `UrlSegmentGroup` whose children need to be matched against the\n * config.\n */\n processChildren(config, segmentGroup) {\n const children = [];\n for (const childOutlet of Object.keys(segmentGroup.children)) {\n const child = segmentGroup.children[childOutlet];\n // Sort the config so that routes with outlets that match the one being activated appear\n // first, followed by routes for other outlets, which might match if they have an empty path.\n const sortedConfig = sortByMatchingOutlets(config, childOutlet);\n const outletChildren = this.processSegmentGroup(sortedConfig, child, childOutlet);\n if (outletChildren === null) {\n // Configs must match all segment children so because we did not find a match for this\n // outlet, return `null`.\n return null;\n }\n children.push(...outletChildren);\n }\n // Because we may have matched two outlets to the same empty path segment, we can have multiple\n // activated results for the same outlet. We should merge the children of these results so the\n // final return value is only one `TreeNode` per outlet.\n const mergedChildren = mergeEmptyPathMatches(children);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // This should really never happen - we are only taking the first match for each outlet and\n // merge the empty path matches.\n checkOutletNameUniqueness(mergedChildren);\n }\n sortActivatedRouteSnapshots(mergedChildren);\n return mergedChildren;\n }\n processSegment(config, segmentGroup, segments, outlet) {\n for (const r of config) {\n const children = this.processSegmentAgainstRoute(r, segmentGroup, segments, outlet);\n if (children !== null) {\n return children;\n }\n }\n if (noLeftoversInUrl(segmentGroup, segments, outlet)) {\n return [];\n }\n return null;\n }\n processSegmentAgainstRoute(route, rawSegment, segments, outlet) {\n if (route.redirectTo || !isImmediateMatch(route, rawSegment, segments, outlet))\n return null;\n let snapshot;\n let consumedSegments = [];\n let remainingSegments = [];\n if (route.path === '**') {\n const params = segments.length > 0 ? last(segments).parameters : {};\n snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), route.component, route, getSourceSegmentGroup(rawSegment), getPathIndexShift(rawSegment) + segments.length, getResolve(route));\n }\n else {\n const result = match(rawSegment, route, segments);\n if (!result.matched) {\n return null;\n }\n consumedSegments = result.consumedSegments;\n remainingSegments = result.remainingSegments;\n snapshot = new ActivatedRouteSnapshot(consumedSegments, result.parameters, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), route.component, route, getSourceSegmentGroup(rawSegment), getPathIndexShift(rawSegment) + consumedSegments.length, getResolve(route));\n }\n const childConfig = getChildConfig(route);\n const { segmentGroup, slicedSegments } = split(rawSegment, consumedSegments, remainingSegments, \n // Filter out routes with redirectTo because we are trying to create activated route\n // snapshots and don't handle redirects here. That should have been done in\n // `applyRedirects`.\n childConfig.filter(c => c.redirectTo === undefined), this.relativeLinkResolution);\n if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {\n const children = this.processChildren(childConfig, segmentGroup);\n if (children === null) {\n return null;\n }\n return [new TreeNode(snapshot, children)];\n }\n if (childConfig.length === 0 && slicedSegments.length === 0) {\n return [new TreeNode(snapshot, [])];\n }\n const matchedOnOutlet = getOutlet(route) === outlet;\n // If we matched a config due to empty path match on a different outlet, we need to continue\n // passing the current outlet for the segment rather than switch to PRIMARY.\n // Note that we switch to primary when we have a match because outlet configs look like this:\n // {path: 'a', outlet: 'a', children: [\n // {path: 'b', component: B},\n // {path: 'c', component: C},\n // ]}\n // Notice that the children of the named outlet are configured with the primary outlet\n const children = this.processSegment(childConfig, segmentGroup, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet);\n if (children === null) {\n return null;\n }\n return [new TreeNode(snapshot, children)];\n }\n}\nfunction sortActivatedRouteSnapshots(nodes) {\n nodes.sort((a, b) => {\n if (a.value.outlet === PRIMARY_OUTLET)\n return -1;\n if (b.value.outlet === PRIMARY_OUTLET)\n return 1;\n return a.value.outlet.localeCompare(b.value.outlet);\n });\n}\nfunction getChildConfig(route) {\n if (route.children) {\n return route.children;\n }\n if (route.loadChildren) {\n return route._loadedConfig.routes;\n }\n return [];\n}\nfunction hasEmptyPathConfig(node) {\n const config = node.value.routeConfig;\n return config && config.path === '' && config.redirectTo === undefined;\n}\n/**\n * Finds `TreeNode`s with matching empty path route configs and merges them into `TreeNode` with the\n * children from each duplicate. This is necessary because different outlets can match a single\n * empty path route config and the results need to then be merged.\n */\nfunction mergeEmptyPathMatches(nodes) {\n const result = [];\n // The set of nodes which contain children that were merged from two duplicate empty path nodes.\n const mergedNodes = new Set();\n for (const node of nodes) {\n if (!hasEmptyPathConfig(node)) {\n result.push(node);\n continue;\n }\n const duplicateEmptyPathNode = result.find(resultNode => node.value.routeConfig === resultNode.value.routeConfig);\n if (duplicateEmptyPathNode !== undefined) {\n duplicateEmptyPathNode.children.push(...node.children);\n mergedNodes.add(duplicateEmptyPathNode);\n }\n else {\n result.push(node);\n }\n }\n // For each node which has children from multiple sources, we need to recompute a new `TreeNode`\n // by also merging those children. This is necessary when there are multiple empty path configs in\n // a row. Put another way: whenever we combine children of two nodes, we need to also check if any\n // of those children can be combined into a single node as well.\n for (const mergedNode of mergedNodes) {\n const mergedChildren = mergeEmptyPathMatches(mergedNode.children);\n result.push(new TreeNode(mergedNode.value, mergedChildren));\n }\n return result.filter(n => !mergedNodes.has(n));\n}\nfunction checkOutletNameUniqueness(nodes) {\n const names = {};\n nodes.forEach(n => {\n const routeWithSameOutletName = names[n.value.outlet];\n if (routeWithSameOutletName) {\n const p = routeWithSameOutletName.url.map(s => s.toString()).join('/');\n const c = n.value.url.map(s => s.toString()).join('/');\n throw new Error(`Two segments cannot have the same outlet name: '${p}' and '${c}'.`);\n }\n names[n.value.outlet] = n.value;\n });\n}\nfunction getSourceSegmentGroup(segmentGroup) {\n let s = segmentGroup;\n while (s._sourceSegment) {\n s = s._sourceSegment;\n }\n return s;\n}\nfunction getPathIndexShift(segmentGroup) {\n let s = segmentGroup;\n let res = (s._segmentIndexShift ? s._segmentIndexShift : 0);\n while (s._sourceSegment) {\n s = s._sourceSegment;\n res += (s._segmentIndexShift ? s._segmentIndexShift : 0);\n }\n return res - 1;\n}\nfunction getData(route) {\n return route.data || {};\n}\nfunction getResolve(route) {\n return route.resolve || {};\n}\n\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 */\nfunction recognize(rootComponentType, config, serializer, paramsInheritanceStrategy, relativeLinkResolution) {\n return mergeMap(t => recognize$1(rootComponentType, config, t.urlAfterRedirects, serializer(t.urlAfterRedirects), paramsInheritanceStrategy, relativeLinkResolution)\n .pipe(map(targetSnapshot => (Object.assign(Object.assign({}, t), { targetSnapshot })))));\n}\n\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 */\nfunction resolveData(paramsInheritanceStrategy, moduleInjector) {\n return mergeMap(t => {\n const { targetSnapshot, guards: { canActivateChecks } } = t;\n if (!canActivateChecks.length) {\n return of(t);\n }\n let canActivateChecksResolved = 0;\n return from(canActivateChecks)\n .pipe(concatMap(check => runResolve(check.route, targetSnapshot, paramsInheritanceStrategy, moduleInjector)), tap(() => canActivateChecksResolved++), takeLast(1), mergeMap(_ => canActivateChecksResolved === canActivateChecks.length ? of(t) : EMPTY));\n });\n}\nfunction runResolve(futureARS, futureRSS, paramsInheritanceStrategy, moduleInjector) {\n const resolve = futureARS._resolve;\n return resolveNode(resolve, futureARS, futureRSS, moduleInjector)\n .pipe(map((resolvedData) => {\n futureARS._resolvedData = resolvedData;\n futureARS.data = Object.assign(Object.assign({}, futureARS.data), inheritedParamsDataResolve(futureARS, paramsInheritanceStrategy).resolve);\n return null;\n }));\n}\nfunction resolveNode(resolve, futureARS, futureRSS, moduleInjector) {\n const keys = getDataKeys(resolve);\n if (keys.length === 0) {\n return of({});\n }\n const data = {};\n return from(keys).pipe(mergeMap(key => getResolver(resolve[key], futureARS, futureRSS, moduleInjector)\n .pipe(tap((value) => {\n data[key] = value;\n }))), takeLast(1), mergeMap(() => {\n // Ensure all resolvers returned values, otherwise don't emit any \"next\" and just complete\n // the chain which will cancel navigation\n if (getDataKeys(data).length === keys.length) {\n return of(data);\n }\n return EMPTY;\n }));\n}\nfunction getDataKeys(obj) {\n return [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];\n}\nfunction getResolver(injectionToken, futureARS, futureRSS, moduleInjector) {\n const resolver = getToken(injectionToken, futureARS, moduleInjector);\n return resolver.resolve ? wrapIntoObservable(resolver.resolve(futureARS, futureRSS)) :\n wrapIntoObservable(resolver(futureARS, futureRSS));\n}\n\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/**\n * Perform a side effect through a switchMap for every emission on the source Observable,\n * but return an Observable that is identical to the source. It's essentially the same as\n * the `tap` operator, but if the side effectful `next` function returns an ObservableInput,\n * it will wait before continuing with the original value.\n */\nfunction switchTap(next) {\n return switchMap(v => {\n const nextResult = next(v);\n if (nextResult) {\n return from(nextResult).pipe(map(() => v));\n }\n return of(v);\n });\n}\n\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/**\n * @description\n *\n * Provides a way to customize when activated routes get reused.\n *\n * @publicApi\n */\nclass RouteReuseStrategy {\n}\n/**\n * @description\n *\n * This base route reuse strategy only reuses routes when the matched router configs are\n * identical. This prevents components from being destroyed and recreated\n * when just the fragment or query parameters change\n * (that is, the existing component is _reused_).\n *\n * This strategy does not store any routes for later reuse.\n *\n * Angular uses this strategy by default.\n *\n *\n * It can be used as a base class for custom route reuse strategies, i.e. you can create your own\n * class that extends the `BaseRouteReuseStrategy` one.\n * @publicApi\n */\nclass BaseRouteReuseStrategy {\n /**\n * Whether the given route should detach for later reuse.\n * Always returns false for `BaseRouteReuseStrategy`.\n * */\n shouldDetach(route) {\n return false;\n }\n /**\n * A no-op; the route is never stored since this strategy never detaches routes for later re-use.\n */\n store(route, detachedTree) { }\n /** Returns `false`, meaning the route (and its subtree) is never reattached */\n shouldAttach(route) {\n return false;\n }\n /** Returns `null` because this strategy does not store routes for later re-use. */\n retrieve(route) {\n return null;\n }\n /**\n * Determines if a route should be reused.\n * This strategy returns `true` when the future route config and current route config are\n * identical.\n */\n shouldReuseRoute(future, curr) {\n return future.routeConfig === curr.routeConfig;\n }\n}\nclass DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {\n}\n\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/**\n * The [DI token](guide/glossary/#di-token) for a router configuration.\n *\n * `ROUTES` is a low level API for router configuration via dependency injection.\n *\n * We recommend that in almost all cases to use higher level APIs such as `RouterModule.forRoot()`,\n * `RouterModule.forChild()`, `provideRoutes`, or `Router.resetConfig()`.\n *\n * @publicApi\n */\nconst ROUTES = new InjectionToken('ROUTES');\nclass RouterConfigLoader {\n constructor(injector, compiler, onLoadStartListener, onLoadEndListener) {\n this.injector = injector;\n this.compiler = compiler;\n this.onLoadStartListener = onLoadStartListener;\n this.onLoadEndListener = onLoadEndListener;\n }\n load(parentInjector, route) {\n if (route._loader$) {\n return route._loader$;\n }\n if (this.onLoadStartListener) {\n this.onLoadStartListener(route);\n }\n const moduleFactory$ = this.loadModuleFactory(route.loadChildren);\n const loadRunner = moduleFactory$.pipe(map((factory) => {\n if (this.onLoadEndListener) {\n this.onLoadEndListener(route);\n }\n const module = factory.create(parentInjector);\n // When loading a module that doesn't provide `RouterModule.forChild()` preloader\n // will get stuck in an infinite loop. The child module's Injector will look to\n // its parent `Injector` when it doesn't find any ROUTES so it will return routes\n // for it's parent module instead.\n return new LoadedRouterConfig(flatten(module.injector.get(ROUTES, undefined, InjectFlags.Self | InjectFlags.Optional))\n .map(standardizeConfig), module);\n }), catchError((err) => {\n route._loader$ = undefined;\n throw err;\n }));\n // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much\n route._loader$ = new ConnectableObservable(loadRunner, () => new Subject())\n .pipe(refCount());\n return route._loader$;\n }\n loadModuleFactory(loadChildren) {\n return wrapIntoObservable(loadChildren()).pipe(mergeMap((t) => {\n if (t instanceof NgModuleFactory) {\n return of(t);\n }\n else {\n return from(this.compiler.compileModuleAsync(t));\n }\n }));\n }\n}\n\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/**\n * @description\n *\n * Provides a way to migrate AngularJS applications to Angular.\n *\n * @publicApi\n */\nclass UrlHandlingStrategy {\n}\n/**\n * @publicApi\n */\nclass DefaultUrlHandlingStrategy {\n shouldProcessUrl(url) {\n return true;\n }\n extract(url) {\n return url;\n }\n merge(newUrlPart, wholeUrl) {\n return newUrlPart;\n }\n}\n\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction defaultMalformedUriErrorHandler(error, urlSerializer, url) {\n return urlSerializer.parse('/');\n}\n/**\n * @internal\n */\nfunction defaultRouterHook(snapshot, runExtras) {\n return of(null);\n}\n/**\n * The equivalent `IsActiveMatchOptions` options for `Router.isActive` is called with `true`\n * (exact = true).\n */\nconst exactMatchOptions = {\n paths: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n queryParams: 'exact'\n};\n/**\n * The equivalent `IsActiveMatchOptions` options for `Router.isActive` is called with `false`\n * (exact = false).\n */\nconst subsetMatchOptions = {\n paths: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n queryParams: 'subset'\n};\n/**\n * @description\n *\n * A service that provides navigation among views and URL manipulation capabilities.\n *\n * @see `Route`.\n * @see [Routing and Navigation Guide](guide/router).\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass Router {\n /**\n * Creates the router service.\n */\n // TODO: vsavkin make internal after the final is out.\n constructor(rootComponentType, urlSerializer, rootContexts, location, injector, compiler, config) {\n this.rootComponentType = rootComponentType;\n this.urlSerializer = urlSerializer;\n this.rootContexts = rootContexts;\n this.location = location;\n this.config = config;\n this.lastSuccessfulNavigation = null;\n this.currentNavigation = null;\n this.disposed = false;\n this.navigationId = 0;\n /**\n * The id of the currently active page in the router.\n * Updated to the transition's target id on a successful navigation.\n *\n * This is used to track what page the router last activated. When an attempted navigation fails,\n * the router can then use this to compute how to restore the state back to the previously active\n * page.\n */\n this.currentPageId = 0;\n this.isNgZoneEnabled = false;\n /**\n * An event stream for routing events in this NgModule.\n */\n this.events = new Subject();\n /**\n * A handler for navigation errors in this NgModule.\n */\n this.errorHandler = defaultErrorHandler;\n /**\n * A handler for errors thrown by `Router.parseUrl(url)`\n * when `url` contains an invalid character.\n * The most common case is a `%` sign\n * that's not encoded and is not part of a percent encoded sequence.\n */\n this.malformedUriErrorHandler = defaultMalformedUriErrorHandler;\n /**\n * True if at least one navigation event has occurred,\n * false otherwise.\n */\n this.navigated = false;\n this.lastSuccessfulId = -1;\n /**\n * Hooks that enable you to pause navigation,\n * either before or after the preactivation phase.\n * Used by `RouterModule`.\n *\n * @internal\n */\n this.hooks = { beforePreactivation: defaultRouterHook, afterPreactivation: defaultRouterHook };\n /**\n * A strategy for extracting and merging URLs.\n * Used for AngularJS to Angular migrations.\n */\n this.urlHandlingStrategy = new DefaultUrlHandlingStrategy();\n /**\n * A strategy for re-using routes.\n */\n this.routeReuseStrategy = new DefaultRouteReuseStrategy();\n /**\n * How to handle a navigation request to the current URL. One of:\n *\n * - `'ignore'` : The router ignores the request.\n * - `'reload'` : The router reloads the URL. Use to implement a \"refresh\" feature.\n *\n * Note that this only configures whether the Route reprocesses the URL and triggers related\n * action and events like redirects, guards, and resolvers. By default, the router re-uses a\n * component instance when it re-navigates to the same component type without visiting a different\n * component first. This behavior is configured by the `RouteReuseStrategy`. In order to reload\n * routed components on same url navigation, you need to set `onSameUrlNavigation` to `'reload'`\n * _and_ provide a `RouteReuseStrategy` which returns `false` for `shouldReuseRoute`.\n */\n this.onSameUrlNavigation = 'ignore';\n /**\n * How to merge parameters, data, and resolved data from parent to child\n * routes. One of:\n *\n * - `'emptyOnly'` : Inherit parent parameters, data, and resolved data\n * for path-less or component-less routes.\n * - `'always'` : Inherit parent parameters, data, and resolved data\n * for all child routes.\n */\n this.paramsInheritanceStrategy = 'emptyOnly';\n /**\n * Determines when the router updates the browser URL.\n * By default (`\"deferred\"`), updates the browser URL after navigation has finished.\n * Set to `'eager'` to update the browser URL at the beginning of navigation.\n * You can choose to update early so that, if navigation fails,\n * you can show an error message with the URL that failed.\n */\n this.urlUpdateStrategy = 'deferred';\n /**\n * Enables a bug fix that corrects relative link resolution in components with empty paths.\n * @see `RouterModule`\n */\n this.relativeLinkResolution = 'corrected';\n /**\n * Configures how the Router attempts to restore state when a navigation is cancelled.\n *\n * 'replace' - Always uses `location.replaceState` to set the browser state to the state of the\n * router before the navigation started. This means that if the URL of the browser is updated\n * _before_ the navigation is canceled, the Router will simply replace the item in history rather\n * than trying to restore to the previous location in the session history. This happens most\n * frequently with `urlUpdateStrategy: 'eager'` and navigations with the browser back/forward\n * buttons.\n *\n * 'computed' - Will attempt to return to the same index in the session history that corresponds\n * to the Angular route when the navigation gets cancelled. For example, if the browser back\n * button is clicked and the navigation is cancelled, the Router will trigger a forward navigation\n * and vice versa.\n *\n * Note: the 'computed' option is incompatible with any `UrlHandlingStrategy` which only\n * handles a portion of the URL because the history restoration navigates to the previous place in\n * the browser history rather than simply resetting a portion of the URL.\n *\n * The default value is `replace`.\n *\n */\n this.canceledNavigationResolution = 'replace';\n const onLoadStart = (r) => this.triggerEvent(new RouteConfigLoadStart(r));\n const onLoadEnd = (r) => this.triggerEvent(new RouteConfigLoadEnd(r));\n this.ngModule = injector.get(NgModuleRef);\n this.console = injector.get(ɵConsole);\n const ngZone = injector.get(NgZone);\n this.isNgZoneEnabled = ngZone instanceof NgZone && NgZone.isInAngularZone();\n this.resetConfig(config);\n this.currentUrlTree = createEmptyUrlTree();\n this.rawUrlTree = this.currentUrlTree;\n this.browserUrlTree = this.currentUrlTree;\n this.configLoader = new RouterConfigLoader(injector, compiler, onLoadStart, onLoadEnd);\n this.routerState = createEmptyState(this.currentUrlTree, this.rootComponentType);\n this.transitions = new BehaviorSubject({\n id: 0,\n targetPageId: 0,\n currentUrlTree: this.currentUrlTree,\n currentRawUrl: this.currentUrlTree,\n extractedUrl: this.urlHandlingStrategy.extract(this.currentUrlTree),\n urlAfterRedirects: this.urlHandlingStrategy.extract(this.currentUrlTree),\n rawUrl: this.currentUrlTree,\n extras: {},\n resolve: null,\n reject: null,\n promise: Promise.resolve(true),\n source: 'imperative',\n restoredState: null,\n currentSnapshot: this.routerState.snapshot,\n targetSnapshot: null,\n currentRouterState: this.routerState,\n targetRouterState: null,\n guards: { canActivateChecks: [], canDeactivateChecks: [] },\n guardsResult: null,\n });\n this.navigations = this.setupNavigations(this.transitions);\n this.processNavigations();\n }\n /**\n * The ɵrouterPageId of whatever page is currently active in the browser history. This is\n * important for computing the target page id for new navigations because we need to ensure each\n * page id in the browser history is 1 more than the previous entry.\n */\n get browserPageId() {\n var _a;\n return (_a = this.location.getState()) === null || _a === void 0 ? void 0 : _a.ɵrouterPageId;\n }\n setupNavigations(transitions) {\n const eventsSubject = this.events;\n return transitions.pipe(filter(t => t.id !== 0), \n // Extract URL\n map(t => (Object.assign(Object.assign({}, t), { extractedUrl: this.urlHandlingStrategy.extract(t.rawUrl) }))), \n // Using switchMap so we cancel executing navigations when a new one comes in\n switchMap(t => {\n let completed = false;\n let errored = false;\n return of(t).pipe(\n // Store the Navigation object\n tap(t => {\n this.currentNavigation = {\n id: t.id,\n initialUrl: t.currentRawUrl,\n extractedUrl: t.extractedUrl,\n trigger: t.source,\n extras: t.extras,\n previousNavigation: this.lastSuccessfulNavigation ? Object.assign(Object.assign({}, this.lastSuccessfulNavigation), { previousNavigation: null }) :\n null\n };\n }), switchMap(t => {\n const browserUrlTree = this.browserUrlTree.toString();\n const urlTransition = !this.navigated ||\n t.extractedUrl.toString() !== browserUrlTree ||\n // Navigations which succeed or ones which fail and are cleaned up\n // correctly should result in `browserUrlTree` and `currentUrlTree`\n // matching. If this is not the case, assume something went wrong and try\n // processing the URL again.\n browserUrlTree !== this.currentUrlTree.toString();\n const processCurrentUrl = (this.onSameUrlNavigation === 'reload' ? true : urlTransition) &&\n this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl);\n if (processCurrentUrl) {\n // If the source of the navigation is from a browser event, the URL is\n // already updated. We already need to sync the internal state.\n if (isBrowserTriggeredNavigation(t.source)) {\n this.browserUrlTree = t.extractedUrl;\n }\n return of(t).pipe(\n // Fire NavigationStart event\n switchMap(t => {\n const transition = this.transitions.getValue();\n eventsSubject.next(new NavigationStart(t.id, this.serializeUrl(t.extractedUrl), t.source, t.restoredState));\n if (transition !== this.transitions.getValue()) {\n return EMPTY;\n }\n // This delay is required to match old behavior that forced\n // navigation to always be async\n return Promise.resolve(t);\n }), \n // ApplyRedirects\n applyRedirects(this.ngModule.injector, this.configLoader, this.urlSerializer, this.config), \n // Update the currentNavigation\n // `urlAfterRedirects` is guaranteed to be set after this point\n tap(t => {\n this.currentNavigation = Object.assign(Object.assign({}, this.currentNavigation), { finalUrl: t.urlAfterRedirects });\n }), \n // Recognize\n recognize(this.rootComponentType, this.config, (url) => this.serializeUrl(url), this.paramsInheritanceStrategy, this.relativeLinkResolution), \n // Update URL if in `eager` update mode\n tap(t => {\n if (this.urlUpdateStrategy === 'eager') {\n if (!t.extras.skipLocationChange) {\n const rawUrl = this.urlHandlingStrategy.merge(t.urlAfterRedirects, t.rawUrl);\n this.setBrowserUrl(rawUrl, t);\n }\n this.browserUrlTree = t.urlAfterRedirects;\n }\n // Fire RoutesRecognized\n const routesRecognized = new RoutesRecognized(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(t.urlAfterRedirects), t.targetSnapshot);\n eventsSubject.next(routesRecognized);\n }));\n }\n else {\n const processPreviousUrl = urlTransition && this.rawUrlTree &&\n this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree);\n /* When the current URL shouldn't be processed, but the previous one was,\n * we handle this \"error condition\" by navigating to the previously\n * successful URL, but leaving the URL intact.*/\n if (processPreviousUrl) {\n const { id, extractedUrl, source, restoredState, extras } = t;\n const navStart = new NavigationStart(id, this.serializeUrl(extractedUrl), source, restoredState);\n eventsSubject.next(navStart);\n const targetSnapshot = createEmptyState(extractedUrl, this.rootComponentType).snapshot;\n return of(Object.assign(Object.assign({}, t), { targetSnapshot, urlAfterRedirects: extractedUrl, extras: Object.assign(Object.assign({}, extras), { skipLocationChange: false, replaceUrl: false }) }));\n }\n else {\n /* When neither the current or previous URL can be processed, do nothing\n * other than update router's internal reference to the current \"settled\"\n * URL. This way the next navigation will be coming from the current URL\n * in the browser.\n */\n this.rawUrlTree = t.rawUrl;\n t.resolve(null);\n return EMPTY;\n }\n }\n }), \n // Before Preactivation\n switchTap(t => {\n const { targetSnapshot, id: navigationId, extractedUrl: appliedUrlTree, rawUrl: rawUrlTree, extras: { skipLocationChange, replaceUrl } } = t;\n return this.hooks.beforePreactivation(targetSnapshot, {\n navigationId,\n appliedUrlTree,\n rawUrlTree,\n skipLocationChange: !!skipLocationChange,\n replaceUrl: !!replaceUrl,\n });\n }), \n // --- GUARDS ---\n tap(t => {\n const guardsStart = new GuardsCheckStart(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(t.urlAfterRedirects), t.targetSnapshot);\n this.triggerEvent(guardsStart);\n }), map(t => (Object.assign(Object.assign({}, t), { guards: getAllRouteGuards(t.targetSnapshot, t.currentSnapshot, this.rootContexts) }))), checkGuards(this.ngModule.injector, (evt) => this.triggerEvent(evt)), tap(t => {\n if (isUrlTree(t.guardsResult)) {\n const error = navigationCancelingError(`Redirecting to \"${this.serializeUrl(t.guardsResult)}\"`);\n error.url = t.guardsResult;\n throw error;\n }\n const guardsEnd = new GuardsCheckEnd(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(t.urlAfterRedirects), t.targetSnapshot, !!t.guardsResult);\n this.triggerEvent(guardsEnd);\n }), filter(t => {\n if (!t.guardsResult) {\n this.restoreHistory(t);\n this.cancelNavigationTransition(t, '');\n return false;\n }\n return true;\n }), \n // --- RESOLVE ---\n switchTap(t => {\n if (t.guards.canActivateChecks.length) {\n return of(t).pipe(tap(t => {\n const resolveStart = new ResolveStart(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(t.urlAfterRedirects), t.targetSnapshot);\n this.triggerEvent(resolveStart);\n }), switchMap(t => {\n let dataResolved = false;\n return of(t).pipe(resolveData(this.paramsInheritanceStrategy, this.ngModule.injector), tap({\n next: () => dataResolved = true,\n complete: () => {\n if (!dataResolved) {\n this.restoreHistory(t);\n this.cancelNavigationTransition(t, `At least one route resolver didn't emit any value.`);\n }\n }\n }));\n }), tap(t => {\n const resolveEnd = new ResolveEnd(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(t.urlAfterRedirects), t.targetSnapshot);\n this.triggerEvent(resolveEnd);\n }));\n }\n return undefined;\n }), \n // --- AFTER PREACTIVATION ---\n switchTap((t) => {\n const { targetSnapshot, id: navigationId, extractedUrl: appliedUrlTree, rawUrl: rawUrlTree, extras: { skipLocationChange, replaceUrl } } = t;\n return this.hooks.afterPreactivation(targetSnapshot, {\n navigationId,\n appliedUrlTree,\n rawUrlTree,\n skipLocationChange: !!skipLocationChange,\n replaceUrl: !!replaceUrl,\n });\n }), map((t) => {\n const targetRouterState = createRouterState(this.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);\n return (Object.assign(Object.assign({}, t), { targetRouterState }));\n }), \n /* Once here, we are about to activate syncronously. The assumption is this\n will succeed, and user code may read from the Router service. Therefore\n before activation, we need to update router properties storing the current\n URL and the RouterState, as well as updated the browser URL. All this should\n happen *before* activating. */\n tap((t) => {\n this.currentUrlTree = t.urlAfterRedirects;\n this.rawUrlTree =\n this.urlHandlingStrategy.merge(t.urlAfterRedirects, t.rawUrl);\n this.routerState = t.targetRouterState;\n if (this.urlUpdateStrategy === 'deferred') {\n if (!t.extras.skipLocationChange) {\n this.setBrowserUrl(this.rawUrlTree, t);\n }\n this.browserUrlTree = t.urlAfterRedirects;\n }\n }), activateRoutes(this.rootContexts, this.routeReuseStrategy, (evt) => this.triggerEvent(evt)), tap({\n next() {\n completed = true;\n },\n complete() {\n completed = true;\n }\n }), finalize(() => {\n var _a;\n /* When the navigation stream finishes either through error or success, we\n * set the `completed` or `errored` flag. However, there are some situations\n * where we could get here without either of those being set. For instance, a\n * redirect during NavigationStart. Therefore, this is a catch-all to make\n * sure the NavigationCancel\n * event is fired when a navigation gets cancelled but not caught by other\n * means. */\n if (!completed && !errored) {\n const cancelationReason = `Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`;\n this.cancelNavigationTransition(t, cancelationReason);\n }\n // Only clear current navigation if it is still set to the one that\n // finalized.\n if (((_a = this.currentNavigation) === null || _a === void 0 ? void 0 : _a.id) === t.id) {\n this.currentNavigation = null;\n }\n }), catchError((e) => {\n // TODO(atscott): The NavigationTransition `t` used here does not accurately\n // reflect the current state of the whole transition because some operations\n // return a new object rather than modifying the one in the outermost\n // `switchMap`.\n // The fix can likely be to:\n // 1. Rename the outer `t` variable so it's not shadowed all the time and\n // confusing\n // 2. Keep reassigning to the outer variable after each stage to ensure it\n // gets updated. Or change the implementations to not return a copy.\n // Not changed yet because it affects existing code and would need to be\n // tested more thoroughly.\n errored = true;\n /* This error type is issued during Redirect, and is handled as a\n * cancellation rather than an error. */\n if (isNavigationCancelingError(e)) {\n const redirecting = isUrlTree(e.url);\n if (!redirecting) {\n // Set property only if we're not redirecting. If we landed on a page and\n // redirect to `/` route, the new navigation is going to see the `/`\n // isn't a change from the default currentUrlTree and won't navigate.\n // This is only applicable with initial navigation, so setting\n // `navigated` only when not redirecting resolves this scenario.\n this.navigated = true;\n this.restoreHistory(t, true);\n }\n const navCancel = new NavigationCancel(t.id, this.serializeUrl(t.extractedUrl), e.message);\n eventsSubject.next(navCancel);\n // When redirecting, we need to delay resolving the navigation\n // promise and push it to the redirect navigation\n if (!redirecting) {\n t.resolve(false);\n }\n else {\n // setTimeout is required so this navigation finishes with\n // the return EMPTY below. If it isn't allowed to finish\n // processing, there can be multiple navigations to the same\n // URL.\n setTimeout(() => {\n const mergedTree = this.urlHandlingStrategy.merge(e.url, this.rawUrlTree);\n const extras = {\n skipLocationChange: t.extras.skipLocationChange,\n // The URL is already updated at this point if we have 'eager' URL\n // updates or if the navigation was triggered by the browser (back\n // button, URL bar, etc). We want to replace that item in history if\n // the navigation is rejected.\n replaceUrl: this.urlUpdateStrategy === 'eager' ||\n isBrowserTriggeredNavigation(t.source)\n };\n this.scheduleNavigation(mergedTree, 'imperative', null, extras, { resolve: t.resolve, reject: t.reject, promise: t.promise });\n }, 0);\n }\n /* All other errors should reset to the router's internal URL reference to\n * the pre-error state. */\n }\n else {\n this.restoreHistory(t, true);\n const navError = new NavigationError(t.id, this.serializeUrl(t.extractedUrl), e);\n eventsSubject.next(navError);\n try {\n t.resolve(this.errorHandler(e));\n }\n catch (ee) {\n t.reject(ee);\n }\n }\n return EMPTY;\n }));\n // TODO(jasonaden): remove cast once g3 is on updated TypeScript\n }));\n }\n /**\n * @internal\n * TODO: this should be removed once the constructor of the router made internal\n */\n resetRootComponentType(rootComponentType) {\n this.rootComponentType = rootComponentType;\n // TODO: vsavkin router 4.0 should make the root component set to null\n // this will simplify the lifecycle of the router.\n this.routerState.root.component = this.rootComponentType;\n }\n setTransition(t) {\n this.transitions.next(Object.assign(Object.assign({}, this.transitions.value), t));\n }\n /**\n * Sets up the location change listener and performs the initial navigation.\n */\n initialNavigation() {\n this.setUpLocationChangeListener();\n if (this.navigationId === 0) {\n this.navigateByUrl(this.location.path(true), { replaceUrl: true });\n }\n }\n /**\n * Sets up the location change listener. This listener detects navigations triggered from outside\n * the Router (the browser back/forward buttons, for example) and schedules a corresponding Router\n * navigation so that the correct events, guards, etc. are triggered.\n */\n setUpLocationChangeListener() {\n // Don't need to use Zone.wrap any more, because zone.js\n // already patch onPopState, so location change callback will\n // run into ngZone\n if (!this.locationSubscription) {\n this.locationSubscription = this.location.subscribe(event => {\n const source = event['type'] === 'popstate' ? 'popstate' : 'hashchange';\n if (source === 'popstate') {\n // The `setTimeout` was added in #12160 and is likely to support Angular/AngularJS\n // hybrid apps.\n setTimeout(() => {\n var _a;\n const extras = { replaceUrl: true };\n // Navigations coming from Angular router have a navigationId state\n // property. When this exists, restore the state.\n const state = ((_a = event.state) === null || _a === void 0 ? void 0 : _a.navigationId) ? event.state : null;\n if (state) {\n const stateCopy = Object.assign({}, state);\n delete stateCopy.navigationId;\n delete stateCopy.ɵrouterPageId;\n if (Object.keys(stateCopy).length !== 0) {\n extras.state = stateCopy;\n }\n }\n const urlTree = this.parseUrl(event['url']);\n this.scheduleNavigation(urlTree, source, state, extras);\n }, 0);\n }\n });\n }\n }\n /** The current URL. */\n get url() {\n return this.serializeUrl(this.currentUrlTree);\n }\n /**\n * Returns the current `Navigation` object when the router is navigating,\n * and `null` when idle.\n */\n getCurrentNavigation() {\n return this.currentNavigation;\n }\n /** @internal */\n triggerEvent(event) {\n this.events.next(event);\n }\n /**\n * Resets the route configuration used for navigation and generating links.\n *\n * @param config The route array for the new configuration.\n *\n * @usageNotes\n *\n * ```\n * router.resetConfig([\n * { path: 'team/:id', component: TeamCmp, children: [\n * { path: 'simple', component: SimpleCmp },\n * { path: 'user/:name', component: UserCmp }\n * ]}\n * ]);\n * ```\n */\n resetConfig(config) {\n validateConfig(config);\n this.config = config.map(standardizeConfig);\n this.navigated = false;\n this.lastSuccessfulId = -1;\n }\n /** @nodoc */\n ngOnDestroy() {\n this.dispose();\n }\n /** Disposes of the router. */\n dispose() {\n this.transitions.complete();\n if (this.locationSubscription) {\n this.locationSubscription.unsubscribe();\n this.locationSubscription = undefined;\n }\n this.disposed = true;\n }\n /**\n * Appends URL segments to the current URL tree to create a new URL tree.\n *\n * @param commands An array of URL fragments with which to construct the new URL tree.\n * If the path is static, can be the literal URL string. For a dynamic path, pass an array of path\n * segments, followed by the parameters for each segment.\n * The fragments are applied to the current URL tree or the one provided in the `relativeTo`\n * property of the options object, if supplied.\n * @param navigationExtras Options that control the navigation strategy.\n * @returns The new URL tree.\n *\n * @usageNotes\n *\n * ```\n * // create /team/33/user/11\n * router.createUrlTree(['/team', 33, 'user', 11]);\n *\n * // create /team/33;expand=true/user/11\n * router.createUrlTree(['/team', 33, {expand: true}, 'user', 11]);\n *\n * // you can collapse static segments like this (this works only with the first passed-in value):\n * router.createUrlTree(['/team/33/user', userId]);\n *\n * // If the first segment can contain slashes, and you do not want the router to split it,\n * // you can do the following:\n * router.createUrlTree([{segmentPath: '/one/two'}]);\n *\n * // create /team/33/(user/11//right:chat)\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);\n *\n * // remove the right secondary node\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\n *\n * // assuming the current url is `/team/33/user/11` and the route points to `user/11`\n *\n * // navigate to /team/33/user/11/details\n * router.createUrlTree(['details'], {relativeTo: route});\n *\n * // navigate to /team/33/user/22\n * router.createUrlTree(['../22'], {relativeTo: route});\n *\n * // navigate to /team/44/user/22\n * router.createUrlTree(['../../team/44/user/22'], {relativeTo: route});\n *\n * Note that a value of `null` or `undefined` for `relativeTo` indicates that the\n * tree should be created relative to the root.\n * ```\n */\n createUrlTree(commands, navigationExtras = {}) {\n const { relativeTo, queryParams, fragment, queryParamsHandling, preserveFragment } = navigationExtras;\n const a = relativeTo || this.routerState.root;\n const f = preserveFragment ? this.currentUrlTree.fragment : fragment;\n let q = null;\n switch (queryParamsHandling) {\n case 'merge':\n q = Object.assign(Object.assign({}, this.currentUrlTree.queryParams), queryParams);\n break;\n case 'preserve':\n q = this.currentUrlTree.queryParams;\n break;\n default:\n q = queryParams || null;\n }\n if (q !== null) {\n q = this.removeEmptyProps(q);\n }\n return createUrlTree(a, this.currentUrlTree, commands, q, f !== null && f !== void 0 ? f : null);\n }\n /**\n * Navigates to a view using an absolute route path.\n *\n * @param url An absolute path for a defined route. The function does not apply any delta to the\n * current URL.\n * @param extras An object containing properties that modify the navigation strategy.\n *\n * @returns A Promise that resolves to 'true' when navigation succeeds,\n * to 'false' when navigation fails, or is rejected on error.\n *\n * @usageNotes\n *\n * The following calls request navigation to an absolute path.\n *\n * ```\n * router.navigateByUrl(\"/team/33/user/11\");\n *\n * // Navigate without updating the URL\n * router.navigateByUrl(\"/team/33/user/11\", { skipLocationChange: true });\n * ```\n *\n * @see [Routing and Navigation guide](guide/router)\n *\n */\n navigateByUrl(url, extras = {\n skipLocationChange: false\n }) {\n if (typeof ngDevMode === 'undefined' ||\n ngDevMode && this.isNgZoneEnabled && !NgZone.isInAngularZone()) {\n this.console.warn(`Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?`);\n }\n const urlTree = isUrlTree(url) ? url : this.parseUrl(url);\n const mergedTree = this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree);\n return this.scheduleNavigation(mergedTree, 'imperative', null, extras);\n }\n /**\n * Navigate based on the provided array of commands and a starting point.\n * If no starting route is provided, the navigation is absolute.\n *\n * @param commands An array of URL fragments with which to construct the target URL.\n * If the path is static, can be the literal URL string. For a dynamic path, pass an array of path\n * segments, followed by the parameters for each segment.\n * The fragments are applied to the current URL or the one provided in the `relativeTo` property\n * of the options object, if supplied.\n * @param extras An options object that determines how the URL should be constructed or\n * interpreted.\n *\n * @returns A Promise that resolves to `true` when navigation succeeds, to `false` when navigation\n * fails,\n * or is rejected on error.\n *\n * @usageNotes\n *\n * The following calls request navigation to a dynamic route path relative to the current URL.\n *\n * ```\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route});\n *\n * // Navigate without updating the URL, overriding the default behavior\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true});\n * ```\n *\n * @see [Routing and Navigation guide](guide/router)\n *\n */\n navigate(commands, extras = { skipLocationChange: false }) {\n validateCommands(commands);\n return this.navigateByUrl(this.createUrlTree(commands, extras), extras);\n }\n /** Serializes a `UrlTree` into a string */\n serializeUrl(url) {\n return this.urlSerializer.serialize(url);\n }\n /** Parses a string into a `UrlTree` */\n parseUrl(url) {\n let urlTree;\n try {\n urlTree = this.urlSerializer.parse(url);\n }\n catch (e) {\n urlTree = this.malformedUriErrorHandler(e, this.urlSerializer, url);\n }\n return urlTree;\n }\n isActive(url, matchOptions) {\n let options;\n if (matchOptions === true) {\n options = Object.assign({}, exactMatchOptions);\n }\n else if (matchOptions === false) {\n options = Object.assign({}, subsetMatchOptions);\n }\n else {\n options = matchOptions;\n }\n if (isUrlTree(url)) {\n return containsTree(this.currentUrlTree, url, options);\n }\n const urlTree = this.parseUrl(url);\n return containsTree(this.currentUrlTree, urlTree, options);\n }\n removeEmptyProps(params) {\n return Object.keys(params).reduce((result, key) => {\n const value = params[key];\n if (value !== null && value !== undefined) {\n result[key] = value;\n }\n return result;\n }, {});\n }\n processNavigations() {\n this.navigations.subscribe(t => {\n this.navigated = true;\n this.lastSuccessfulId = t.id;\n this.currentPageId = t.targetPageId;\n this.events\n .next(new NavigationEnd(t.id, this.serializeUrl(t.extractedUrl), this.serializeUrl(this.currentUrlTree)));\n this.lastSuccessfulNavigation = this.currentNavigation;\n t.resolve(true);\n }, e => {\n this.console.warn(`Unhandled Navigation Error: ${e}`);\n });\n }\n scheduleNavigation(rawUrl, source, restoredState, extras, priorPromise) {\n var _a, _b;\n if (this.disposed) {\n return Promise.resolve(false);\n }\n let resolve;\n let reject;\n let promise;\n if (priorPromise) {\n resolve = priorPromise.resolve;\n reject = priorPromise.reject;\n promise = priorPromise.promise;\n }\n else {\n promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n }\n const id = ++this.navigationId;\n let targetPageId;\n if (this.canceledNavigationResolution === 'computed') {\n const isInitialPage = this.currentPageId === 0;\n if (isInitialPage) {\n restoredState = this.location.getState();\n }\n // If the `ɵrouterPageId` exist in the state then `targetpageId` should have the value of\n // `ɵrouterPageId`. This is the case for something like a page refresh where we assign the\n // target id to the previously set value for that page.\n if (restoredState && restoredState.ɵrouterPageId) {\n targetPageId = restoredState.ɵrouterPageId;\n }\n else {\n // If we're replacing the URL or doing a silent navigation, we do not want to increment the\n // page id because we aren't pushing a new entry to history.\n if (extras.replaceUrl || extras.skipLocationChange) {\n targetPageId = (_a = this.browserPageId) !== null && _a !== void 0 ? _a : 0;\n }\n else {\n targetPageId = ((_b = this.browserPageId) !== null && _b !== void 0 ? _b : 0) + 1;\n }\n }\n }\n else {\n // This is unused when `canceledNavigationResolution` is not computed.\n targetPageId = 0;\n }\n this.setTransition({\n id,\n targetPageId,\n source,\n restoredState,\n currentUrlTree: this.currentUrlTree,\n currentRawUrl: this.rawUrlTree,\n rawUrl,\n extras,\n resolve,\n reject,\n promise,\n currentSnapshot: this.routerState.snapshot,\n currentRouterState: this.routerState\n });\n // Make sure that the error is propagated even though `processNavigations` catch\n // handler does not rethrow\n return promise.catch((e) => {\n return Promise.reject(e);\n });\n }\n setBrowserUrl(url, t) {\n const path = this.urlSerializer.serialize(url);\n const state = Object.assign(Object.assign({}, t.extras.state), this.generateNgRouterState(t.id, t.targetPageId));\n if (this.location.isCurrentPathEqualTo(path) || !!t.extras.replaceUrl) {\n this.location.replaceState(path, '', state);\n }\n else {\n this.location.go(path, '', state);\n }\n }\n /**\n * Performs the necessary rollback action to restore the browser URL to the\n * state before the transition.\n */\n restoreHistory(t, restoringFromCaughtError = false) {\n var _a, _b;\n if (this.canceledNavigationResolution === 'computed') {\n const targetPagePosition = this.currentPageId - t.targetPageId;\n // The navigator change the location before triggered the browser event,\n // so we need to go back to the current url if the navigation is canceled.\n // Also, when navigation gets cancelled while using url update strategy eager, then we need to\n // go back. Because, when `urlUpdateSrategy` is `eager`; `setBrowserUrl` method is called\n // before any verification.\n const browserUrlUpdateOccurred = (t.source === 'popstate' || this.urlUpdateStrategy === 'eager' ||\n this.currentUrlTree === ((_a = this.currentNavigation) === null || _a === void 0 ? void 0 : _a.finalUrl));\n if (browserUrlUpdateOccurred && targetPagePosition !== 0) {\n this.location.historyGo(targetPagePosition);\n }\n else if (this.currentUrlTree === ((_b = this.currentNavigation) === null || _b === void 0 ? void 0 : _b.finalUrl) && targetPagePosition === 0) {\n // We got to the activation stage (where currentUrlTree is set to the navigation's\n // finalUrl), but we weren't moving anywhere in history (skipLocationChange or replaceUrl).\n // We still need to reset the router state back to what it was when the navigation started.\n this.resetState(t);\n // TODO(atscott): resetting the `browserUrlTree` should really be done in `resetState`.\n // Investigate if this can be done by running TGP.\n this.browserUrlTree = t.currentUrlTree;\n this.resetUrlToCurrentUrlTree();\n }\n else {\n // The browser URL and router state was not updated before the navigation cancelled so\n // there's no restoration needed.\n }\n }\n else if (this.canceledNavigationResolution === 'replace') {\n // TODO(atscott): It seems like we should _always_ reset the state here. It would be a no-op\n // for `deferred` navigations that haven't change the internal state yet because guards\n // reject. For 'eager' navigations, it seems like we also really should reset the state\n // because the navigation was cancelled. Investigate if this can be done by running TGP.\n if (restoringFromCaughtError) {\n this.resetState(t);\n }\n this.resetUrlToCurrentUrlTree();\n }\n }\n resetState(t) {\n this.routerState = t.currentRouterState;\n this.currentUrlTree = t.currentUrlTree;\n // Note here that we use the urlHandlingStrategy to get the reset `rawUrlTree` because it may be\n // configured to handle only part of the navigation URL. This means we would only want to reset\n // the part of the navigation handled by the Angular router rather than the whole URL. In\n // addition, the URLHandlingStrategy may be configured to specifically preserve parts of the URL\n // when merging, such as the query params so they are not lost on a refresh.\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, t.rawUrl);\n }\n resetUrlToCurrentUrlTree() {\n this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree), '', this.generateNgRouterState(this.lastSuccessfulId, this.currentPageId));\n }\n cancelNavigationTransition(t, reason) {\n const navCancel = new NavigationCancel(t.id, this.serializeUrl(t.extractedUrl), reason);\n this.triggerEvent(navCancel);\n t.resolve(false);\n }\n generateNgRouterState(navigationId, routerPageId) {\n if (this.canceledNavigationResolution === 'computed') {\n return { navigationId, ɵrouterPageId: routerPageId };\n }\n return { navigationId };\n }\n}\nRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Router, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable });\nRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Router });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Router, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.Type }, { type: UrlSerializer }, { type: ChildrenOutletContexts }, { type: i3.Location }, { type: i0.Injector }, { type: i0.Compiler }, { type: undefined }]; } });\nfunction validateCommands(commands) {\n for (let i = 0; i < commands.length; i++) {\n const cmd = commands[i];\n if (cmd == null) {\n throw new Error(`The requested path contains ${cmd} segment at index ${i}`);\n }\n }\n}\nfunction isBrowserTriggeredNavigation(source) {\n return source !== 'imperative';\n}\n\n/**\n * @description\n *\n * When applied to an element in a template, makes that element a link\n * that initiates navigation to a route. Navigation opens one or more routed components\n * in one or more `<router-outlet>` locations on the page.\n *\n * Given a route configuration `[{ path: 'user/:name', component: UserCmp }]`,\n * the following creates a static link to the route:\n * `<a routerLink=\"/user/bob\">link to user component</a>`\n *\n * You can use dynamic values to generate the link.\n * For a dynamic link, pass an array of path segments,\n * followed by the params for each segment.\n * For example, `['/team', teamId, 'user', userName, {details: true}]`\n * generates a link to `/team/11/user/bob;details=true`.\n *\n * Multiple static segments can be merged into one term and combined with dynamic segments.\n * For example, `['/team/11/user', userName, {details: true}]`\n *\n * The input that you provide to the link is treated as a delta to the current URL.\n * For instance, suppose the current URL is `/user/(box//aux:team)`.\n * The link `<a [routerLink]=\"['/user/jim']\">Jim</a>` creates the URL\n * `/user/(jim//aux:team)`.\n * See {@link Router#createUrlTree createUrlTree} for more information.\n *\n * @usageNotes\n *\n * You can use absolute or relative paths in a link, set query parameters,\n * control how parameters are handled, and keep a history of navigation states.\n *\n * ### Relative link paths\n *\n * The first segment name can be prepended with `/`, `./`, or `../`.\n * * If the first segment begins with `/`, the router looks up the route from the root of the\n * app.\n * * If the first segment begins with `./`, or doesn't begin with a slash, the router\n * looks in the children of the current activated route.\n * * If the first segment begins with `../`, the router goes up one level in the route tree.\n *\n * ### Setting and handling query params and fragments\n *\n * The following link adds a query parameter and a fragment to the generated URL:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" fragment=\"education\">\n * link to user component\n * </a>\n * ```\n * By default, the directive constructs the new URL using the given query parameters.\n * The example generates the link: `/user/bob?debug=true#education`.\n *\n * You can instruct the directive to handle query parameters differently\n * by specifying the `queryParamsHandling` option in the link.\n * Allowed values are:\n *\n * - `'merge'`: Merge the given `queryParams` into the current query params.\n * - `'preserve'`: Preserve the current query params.\n *\n * For example:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" queryParamsHandling=\"merge\">\n * link to user component\n * </a>\n * ```\n *\n * See {@link UrlCreationOptions.queryParamsHandling UrlCreationOptions#queryParamsHandling}.\n *\n * ### Preserving navigation history\n *\n * You can provide a `state` value to be persisted to the browser's\n * [`History.state` property](https://developer.mozilla.org/en-US/docs/Web/API/History#Properties).\n * For example:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [state]=\"{tracingId: 123}\">\n * link to user component\n * </a>\n * ```\n *\n * Use {@link Router.getCurrentNavigation() Router#getCurrentNavigation} to retrieve a saved\n * navigation-state value. For example, to capture the `tracingId` during the `NavigationStart`\n * event:\n *\n * ```\n * // Get NavigationStart events\n * router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {\n * const navigation = router.getCurrentNavigation();\n * tracingService.trace({id: navigation.extras.state.tracingId});\n * });\n * ```\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLink {\n constructor(router, route, tabIndexAttribute, renderer, el) {\n this.router = router;\n this.route = route;\n this.tabIndexAttribute = tabIndexAttribute;\n this.renderer = renderer;\n this.el = el;\n this.commands = null;\n /** @internal */\n this.onChanges = new Subject();\n this.setTabIndexIfNotOnNativeEl('0');\n }\n /**\n * Modifies the tab index if there was not a tabindex attribute on the element during\n * instantiation.\n */\n setTabIndexIfNotOnNativeEl(newTabIndex) {\n if (this.tabIndexAttribute != null /* both `null` and `undefined` */) {\n return;\n }\n const renderer = this.renderer;\n const nativeElement = this.el.nativeElement;\n if (newTabIndex !== null) {\n renderer.setAttribute(nativeElement, 'tabindex', newTabIndex);\n }\n else {\n renderer.removeAttribute(nativeElement, 'tabindex');\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n // This is subscribed to by `RouterLinkActive` so that it knows to update when there are changes\n // to the RouterLinks it's tracking.\n this.onChanges.next(this);\n }\n /**\n * Commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **array**: commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`\n * - **null|undefined**: effectively disables the `routerLink`\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n set routerLink(commands) {\n if (commands != null) {\n this.commands = Array.isArray(commands) ? commands : [commands];\n this.setTabIndexIfNotOnNativeEl('0');\n }\n else {\n this.commands = null;\n this.setTabIndexIfNotOnNativeEl(null);\n }\n }\n /** @nodoc */\n onClick() {\n if (this.urlTree === null) {\n return true;\n }\n const extras = {\n skipLocationChange: attrBoolValue(this.skipLocationChange),\n replaceUrl: attrBoolValue(this.replaceUrl),\n state: this.state,\n };\n this.router.navigateByUrl(this.urlTree, extras);\n return true;\n }\n get urlTree() {\n if (this.commands === null) {\n return null;\n }\n return this.router.createUrlTree(this.commands, {\n // If the `relativeTo` input is not defined, we want to use `this.route` by default.\n // Otherwise, we should use the value provided by the user in the input.\n relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n }\n}\nRouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nRouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RouterLink, selector: \":not(a):not(area)[routerLink]\", inputs: { queryParams: \"queryParams\", fragment: \"fragment\", queryParamsHandling: \"queryParamsHandling\", preserveFragment: \"preserveFragment\", skipLocationChange: \"skipLocationChange\", replaceUrl: \"replaceUrl\", state: \"state\", relativeTo: \"relativeTo\", routerLink: \"routerLink\" }, host: { listeners: { \"click\": \"onClick()\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLink, decorators: [{\n type: Directive,\n args: [{ selector: ':not(a):not(area)[routerLink]' }]\n }], ctorParameters: function () {\n return [{ type: Router }, { type: ActivatedRoute }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }];\n }, propDecorators: { queryParams: [{\n type: Input\n }], fragment: [{\n type: Input\n }], queryParamsHandling: [{\n type: Input\n }], preserveFragment: [{\n type: Input\n }], skipLocationChange: [{\n type: Input\n }], replaceUrl: [{\n type: Input\n }], state: [{\n type: Input\n }], relativeTo: [{\n type: Input\n }], routerLink: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n/**\n * @description\n *\n * Lets you link to specific routes in your app.\n *\n * See `RouterLink` for more information.\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLinkWithHref {\n constructor(router, route, locationStrategy) {\n this.router = router;\n this.route = route;\n this.locationStrategy = locationStrategy;\n this.commands = null;\n // the url displayed on the anchor element.\n // @HostBinding('attr.href') is used rather than @HostBinding() because it removes the\n // href attribute when it becomes `null`.\n this.href = null;\n /** @internal */\n this.onChanges = new Subject();\n this.subscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.updateTargetUrlAndHref();\n }\n });\n }\n /**\n * Commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **array**: commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`\n * - **null|undefined**: Disables the link by removing the `href`\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n set routerLink(commands) {\n if (commands != null) {\n this.commands = Array.isArray(commands) ? commands : [commands];\n }\n else {\n this.commands = null;\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this.updateTargetUrlAndHref();\n this.onChanges.next(this);\n }\n /** @nodoc */\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n /** @nodoc */\n onClick(button, ctrlKey, shiftKey, altKey, metaKey) {\n if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {\n return true;\n }\n if (typeof this.target === 'string' && this.target != '_self' || this.urlTree === null) {\n return true;\n }\n const extras = {\n skipLocationChange: attrBoolValue(this.skipLocationChange),\n replaceUrl: attrBoolValue(this.replaceUrl),\n state: this.state\n };\n this.router.navigateByUrl(this.urlTree, extras);\n return false;\n }\n updateTargetUrlAndHref() {\n this.href = this.urlTree !== null ?\n this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)) :\n null;\n }\n get urlTree() {\n if (this.commands === null) {\n return null;\n }\n return this.router.createUrlTree(this.commands, {\n // If the `relativeTo` input is not defined, we want to use `this.route` by default.\n // Otherwise, we should use the value provided by the user in the input.\n relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n }\n}\nRouterLinkWithHref.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLinkWithHref, deps: [{ token: Router }, { token: ActivatedRoute }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });\nRouterLinkWithHref.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RouterLinkWithHref, selector: \"a[routerLink],area[routerLink]\", inputs: { target: \"target\", queryParams: \"queryParams\", fragment: \"fragment\", queryParamsHandling: \"queryParamsHandling\", preserveFragment: \"preserveFragment\", skipLocationChange: \"skipLocationChange\", replaceUrl: \"replaceUrl\", state: \"state\", relativeTo: \"relativeTo\", routerLink: \"routerLink\" }, host: { listeners: { \"click\": \"onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)\" }, properties: { \"attr.target\": \"this.target\", \"attr.href\": \"this.href\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLinkWithHref, decorators: [{\n type: Directive,\n args: [{ selector: 'a[routerLink],area[routerLink]' }]\n }], ctorParameters: function () { return [{ type: Router }, { type: ActivatedRoute }, { type: i3.LocationStrategy }]; }, propDecorators: { target: [{\n type: HostBinding,\n args: ['attr.target']\n }, {\n type: Input\n }], queryParams: [{\n type: Input\n }], fragment: [{\n type: Input\n }], queryParamsHandling: [{\n type: Input\n }], preserveFragment: [{\n type: Input\n }], skipLocationChange: [{\n type: Input\n }], replaceUrl: [{\n type: Input\n }], state: [{\n type: Input\n }], relativeTo: [{\n type: Input\n }], href: [{\n type: HostBinding,\n args: ['attr.href']\n }], routerLink: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click',\n ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]\n }] } });\nfunction attrBoolValue(s) {\n return s === '' || !!s;\n}\n\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/**\n *\n * @description\n *\n * Tracks whether the linked route of an element is currently active, and allows you\n * to specify one or more CSS classes to add to the element when the linked route\n * is active.\n *\n * Use this directive to create a visual distinction for elements associated with an active route.\n * For example, the following code highlights the word \"Bob\" when the router\n * activates the associated route:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\">Bob</a>\n * ```\n *\n * Whenever the URL is either '/user' or '/user/bob', the \"active-link\" class is\n * added to the anchor tag. If the URL changes, the class is removed.\n *\n * You can set more than one class using a space-separated string or an array.\n * For example:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"class1 class2\">Bob</a>\n * <a routerLink=\"/user/bob\" [routerLinkActive]=\"['class1', 'class2']\">Bob</a>\n * ```\n *\n * To add the classes only when the URL matches the link exactly, add the option `exact: true`:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact:\n * true}\">Bob</a>\n * ```\n *\n * To directly check the `isActive` status of the link, assign the `RouterLinkActive`\n * instance to a template variable.\n * For example, the following checks the status without assigning any CSS classes:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive #rla=\"routerLinkActive\">\n * Bob {{ rla.isActive ? '(already open)' : ''}}\n * </a>\n * ```\n *\n * You can apply the `RouterLinkActive` directive to an ancestor of linked elements.\n * For example, the following sets the active-link class on the `<div>` parent tag\n * when the URL is either '/user/jim' or '/user/bob'.\n *\n * ```\n * <div routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact: true}\">\n * <a routerLink=\"/user/jim\">Jim</a>\n * <a routerLink=\"/user/bob\">Bob</a>\n * </div>\n * ```\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLinkActive {\n constructor(router, element, renderer, cdr, link, linkWithHref) {\n this.router = router;\n this.element = element;\n this.renderer = renderer;\n this.cdr = cdr;\n this.link = link;\n this.linkWithHref = linkWithHref;\n this.classes = [];\n this.isActive = false;\n /**\n * Options to configure how to determine if the router link is active.\n *\n * These options are passed to the `Router.isActive()` function.\n *\n * @see Router.isActive\n */\n this.routerLinkActiveOptions = { exact: false };\n /**\n *\n * You can use the output `isActiveChange` to get notified each time the link becomes\n * active or inactive.\n *\n * Emits:\n * true -> Route is active\n * false -> Route is inactive\n *\n * ```\n * <a\n * routerLink=\"/user/bob\"\n * routerLinkActive=\"active-link\"\n * (isActiveChange)=\"this.onRouterLinkActive($event)\">Bob</a>\n * ```\n */\n this.isActiveChange = new EventEmitter();\n this.routerEventsSubscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n /** @nodoc */\n ngAfterContentInit() {\n // `of(null)` is used to force subscribe body to execute once immediately (like `startWith`).\n of(this.links.changes, this.linksWithHrefs.changes, of(null)).pipe(mergeAll()).subscribe(_ => {\n this.update();\n this.subscribeToEachLinkOnChanges();\n });\n }\n subscribeToEachLinkOnChanges() {\n var _a;\n (_a = this.linkInputChangesSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n const allLinkChanges = [...this.links.toArray(), ...this.linksWithHrefs.toArray(), this.link, this.linkWithHref]\n .filter((link) => !!link)\n .map(link => link.onChanges);\n this.linkInputChangesSubscription = from(allLinkChanges).pipe(mergeAll()).subscribe(link => {\n if (this.isActive !== this.isLinkActive(this.router)(link)) {\n this.update();\n }\n });\n }\n set routerLinkActive(data) {\n const classes = Array.isArray(data) ? data : data.split(' ');\n this.classes = classes.filter(c => !!c);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this.update();\n }\n /** @nodoc */\n ngOnDestroy() {\n var _a;\n this.routerEventsSubscription.unsubscribe();\n (_a = this.linkInputChangesSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n }\n update() {\n if (!this.links || !this.linksWithHrefs || !this.router.navigated)\n return;\n Promise.resolve().then(() => {\n const hasActiveLinks = this.hasActiveLinks();\n if (this.isActive !== hasActiveLinks) {\n this.isActive = hasActiveLinks;\n this.cdr.markForCheck();\n this.classes.forEach((c) => {\n if (hasActiveLinks) {\n this.renderer.addClass(this.element.nativeElement, c);\n }\n else {\n this.renderer.removeClass(this.element.nativeElement, c);\n }\n });\n // Emit on isActiveChange after classes are updated\n this.isActiveChange.emit(hasActiveLinks);\n }\n });\n }\n isLinkActive(router) {\n const options = isActiveMatchOptions(this.routerLinkActiveOptions) ?\n this.routerLinkActiveOptions :\n // While the types should disallow `undefined` here, it's possible without strict inputs\n (this.routerLinkActiveOptions.exact || false);\n return (link) => link.urlTree ? router.isActive(link.urlTree, options) : false;\n }\n hasActiveLinks() {\n const isActiveCheckFn = this.isLinkActive(this.router);\n return this.link && isActiveCheckFn(this.link) ||\n this.linkWithHref && isActiveCheckFn(this.linkWithHref) ||\n this.links.some(isActiveCheckFn) || this.linksWithHrefs.some(isActiveCheckFn);\n }\n}\nRouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }, { token: RouterLinkWithHref, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nRouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: { routerLinkActiveOptions: \"routerLinkActiveOptions\", routerLinkActive: \"routerLinkActive\" }, outputs: { isActiveChange: \"isActiveChange\" }, queries: [{ propertyName: \"links\", predicate: RouterLink, descendants: true }, { propertyName: \"linksWithHrefs\", predicate: RouterLinkWithHref, descendants: true }], exportAs: [\"routerLinkActive\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterLinkActive, decorators: [{\n type: Directive,\n args: [{\n selector: '[routerLinkActive]',\n exportAs: 'routerLinkActive',\n }]\n }], ctorParameters: function () {\n return [{ type: Router }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: RouterLink, decorators: [{\n type: Optional\n }] }, { type: RouterLinkWithHref, decorators: [{\n type: Optional\n }] }];\n }, propDecorators: { links: [{\n type: ContentChildren,\n args: [RouterLink, { descendants: true }]\n }], linksWithHrefs: [{\n type: ContentChildren,\n args: [RouterLinkWithHref, { descendants: true }]\n }], routerLinkActiveOptions: [{\n type: Input\n }], isActiveChange: [{\n type: Output\n }], routerLinkActive: [{\n type: Input\n }] } });\n/**\n * Use instead of `'paths' in options` to be compatible with property renaming\n */\nfunction isActiveMatchOptions(options) {\n return !!options.paths;\n}\n\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/**\n * @description\n *\n * Provides a preloading strategy.\n *\n * @publicApi\n */\nclass PreloadingStrategy {\n}\n/**\n * @description\n *\n * Provides a preloading strategy that preloads all modules as quickly as possible.\n *\n * ```\n * RouterModule.forRoot(ROUTES, {preloadingStrategy: PreloadAllModules})\n * ```\n *\n * @publicApi\n */\nclass PreloadAllModules {\n preload(route, fn) {\n return fn().pipe(catchError(() => of(null)));\n }\n}\n/**\n * @description\n *\n * Provides a preloading strategy that does not preload any modules.\n *\n * This strategy is enabled by default.\n *\n * @publicApi\n */\nclass NoPreloading {\n preload(route, fn) {\n return of(null);\n }\n}\n/**\n * The preloader optimistically loads all router configurations to\n * make navigations into lazily-loaded sections of the application faster.\n *\n * The preloader runs in the background. When the router bootstraps, the preloader\n * starts listening to all navigation events. After every such event, the preloader\n * will check if any configurations can be loaded lazily.\n *\n * If a route is protected by `canLoad` guards, the preloaded will not load it.\n *\n * @publicApi\n */\nclass RouterPreloader {\n constructor(router, compiler, injector, preloadingStrategy) {\n this.router = router;\n this.injector = injector;\n this.preloadingStrategy = preloadingStrategy;\n const onStartLoad = (r) => router.triggerEvent(new RouteConfigLoadStart(r));\n const onEndLoad = (r) => router.triggerEvent(new RouteConfigLoadEnd(r));\n this.loader = new RouterConfigLoader(injector, compiler, onStartLoad, onEndLoad);\n }\n setUpPreloading() {\n this.subscription =\n this.router.events\n .pipe(filter((e) => e instanceof NavigationEnd), concatMap(() => this.preload()))\n .subscribe(() => { });\n }\n preload() {\n const ngModule = this.injector.get(NgModuleRef);\n return this.processRoutes(ngModule, this.router.config);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n processRoutes(ngModule, routes) {\n const res = [];\n for (const route of routes) {\n // we already have the config loaded, just recurse\n if (route.loadChildren && !route.canLoad && route._loadedConfig) {\n const childConfig = route._loadedConfig;\n res.push(this.processRoutes(childConfig.module, childConfig.routes));\n // no config loaded, fetch the config\n }\n else if (route.loadChildren && !route.canLoad) {\n res.push(this.preloadConfig(ngModule, route));\n // recurse into children\n }\n else if (route.children) {\n res.push(this.processRoutes(ngModule, route.children));\n }\n }\n return from(res).pipe(mergeAll(), map((_) => void 0));\n }\n preloadConfig(ngModule, route) {\n return this.preloadingStrategy.preload(route, () => {\n const loaded$ = route._loadedConfig ? of(route._loadedConfig) :\n this.loader.load(ngModule.injector, route);\n return loaded$.pipe(mergeMap((config) => {\n route._loadedConfig = config;\n return this.processRoutes(config.module, config.routes);\n }));\n });\n }\n}\nRouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.Injector }, { token: PreloadingStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nRouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterPreloader });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterPreloader, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.Injector }, { type: PreloadingStrategy }]; } });\n\nclass RouterScroller {\n constructor(router, \n /** @docsNotRequired */ viewportScroller, options = {}) {\n this.router = router;\n this.viewportScroller = viewportScroller;\n this.options = options;\n this.lastId = 0;\n this.lastSource = 'imperative';\n this.restoredId = 0;\n this.store = {};\n // Default both options to 'disabled'\n options.scrollPositionRestoration = options.scrollPositionRestoration || 'disabled';\n options.anchorScrolling = options.anchorScrolling || 'disabled';\n }\n init() {\n // we want to disable the automatic scrolling because having two places\n // responsible for scrolling results race conditions, especially given\n // that browser don't implement this behavior consistently\n if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.setHistoryScrollRestoration('manual');\n }\n this.routerEventsSubscription = this.createScrollEvents();\n this.scrollEventsSubscription = this.consumeScrollEvents();\n }\n createScrollEvents() {\n return this.router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n // store the scroll position of the current stable navigations.\n this.store[this.lastId] = this.viewportScroller.getScrollPosition();\n this.lastSource = e.navigationTrigger;\n this.restoredId = e.restoredState ? e.restoredState.navigationId : 0;\n }\n else if (e instanceof NavigationEnd) {\n this.lastId = e.id;\n this.scheduleScrollEvent(e, this.router.parseUrl(e.urlAfterRedirects).fragment);\n }\n });\n }\n consumeScrollEvents() {\n return this.router.events.subscribe(e => {\n if (!(e instanceof Scroll))\n return;\n // a popstate event. The pop state event will always ignore anchor scrolling.\n if (e.position) {\n if (this.options.scrollPositionRestoration === 'top') {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n else if (this.options.scrollPositionRestoration === 'enabled') {\n this.viewportScroller.scrollToPosition(e.position);\n }\n // imperative navigation \"forward\"\n }\n else {\n if (e.anchor && this.options.anchorScrolling === 'enabled') {\n this.viewportScroller.scrollToAnchor(e.anchor);\n }\n else if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n }\n });\n }\n scheduleScrollEvent(routerEvent, anchor) {\n this.router.triggerEvent(new Scroll(routerEvent, this.lastSource === 'popstate' ? this.store[this.restoredId] : null, anchor));\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.routerEventsSubscription) {\n this.routerEventsSubscription.unsubscribe();\n }\n if (this.scrollEventsSubscription) {\n this.scrollEventsSubscription.unsubscribe();\n }\n }\n}\nRouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterScroller, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable });\nRouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterScroller });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterScroller, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: Router }, { type: i3.ViewportScroller }, { type: undefined }]; } });\n\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/**\n * The directives defined in the `RouterModule`.\n */\nconst ROUTER_DIRECTIVES = [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent];\n/**\n * A [DI token](guide/glossary/#di-token) for the router service.\n *\n * @publicApi\n */\nconst ROUTER_CONFIGURATION = new InjectionToken('ROUTER_CONFIGURATION');\n/**\n * @docsNotRequired\n */\nconst ROUTER_FORROOT_GUARD = new InjectionToken('ROUTER_FORROOT_GUARD');\nconst ROUTER_PROVIDERS = [\n Location,\n { provide: UrlSerializer, useClass: DefaultUrlSerializer },\n {\n provide: Router,\n useFactory: setupRouter,\n deps: [\n UrlSerializer, ChildrenOutletContexts, Location, Injector, Compiler, ROUTES,\n ROUTER_CONFIGURATION, [UrlHandlingStrategy, new Optional()],\n [RouteReuseStrategy, new Optional()]\n ]\n },\n ChildrenOutletContexts,\n { provide: ActivatedRoute, useFactory: rootRoute, deps: [Router] },\n RouterPreloader,\n NoPreloading,\n PreloadAllModules,\n { provide: ROUTER_CONFIGURATION, useValue: { enableTracing: false } },\n];\nfunction routerNgProbeToken() {\n return new NgProbeToken('Router', Router);\n}\n/**\n * @description\n *\n * Adds directives and providers for in-app navigation among views defined in an application.\n * Use the Angular `Router` service to declaratively specify application states and manage state\n * transitions.\n *\n * You can import this NgModule multiple times, once for each lazy-loaded bundle.\n * However, only one `Router` service can be active.\n * To ensure this, there are two ways to register routes when importing this module:\n *\n * * The `forRoot()` method creates an `NgModule` that contains all the directives, the given\n * routes, and the `Router` service itself.\n * * The `forChild()` method creates an `NgModule` that contains all the directives and the given\n * routes, but does not include the `Router` service.\n *\n * @see [Routing and Navigation guide](guide/router) for an\n * overview of how the `Router` service should be used.\n *\n * @publicApi\n */\nclass RouterModule {\n // Note: We are injecting the Router so it gets created eagerly...\n constructor(guard, router) { }\n /**\n * Creates and configures a module with all the router providers and directives.\n * Optionally sets up an application listener to perform an initial navigation.\n *\n * When registering the NgModule at the root, import as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forRoot(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the application.\n * @param config An `ExtraOptions` configuration object that controls how navigation is performed.\n * @return The new `NgModule`.\n *\n */\n static forRoot(routes, config) {\n return {\n ngModule: RouterModule,\n providers: [\n ROUTER_PROVIDERS,\n provideRoutes(routes),\n {\n provide: ROUTER_FORROOT_GUARD,\n useFactory: provideForRootGuard,\n deps: [[Router, new Optional(), new SkipSelf()]]\n },\n { provide: ROUTER_CONFIGURATION, useValue: config ? config : {} },\n {\n provide: LocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], ROUTER_CONFIGURATION]\n },\n {\n provide: RouterScroller,\n useFactory: createRouterScroller,\n deps: [Router, ViewportScroller, ROUTER_CONFIGURATION]\n },\n {\n provide: PreloadingStrategy,\n useExisting: config && config.preloadingStrategy ? config.preloadingStrategy :\n NoPreloading\n },\n { provide: NgProbeToken, multi: true, useFactory: routerNgProbeToken },\n provideRouterInitializer(),\n ],\n };\n }\n /**\n * Creates a module with all the router directives and a provider registering routes,\n * without creating a new Router service.\n * When registering for submodules and lazy-loaded submodules, create the NgModule as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forChild(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the submodule.\n * @return The new NgModule.\n *\n */\n static forChild(routes) {\n return { ngModule: RouterModule, providers: [provideRoutes(routes)] };\n }\n}\nRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }, { token: Router, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });\nRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterModule, declarations: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent] });\nRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: ROUTER_DIRECTIVES,\n exports: ROUTER_DIRECTIVES,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ROUTER_FORROOT_GUARD]\n }] }, { type: Router, decorators: [{\n type: Optional\n }] }];\n } });\nfunction createRouterScroller(router, viewportScroller, config) {\n if (config.scrollOffset) {\n viewportScroller.setOffset(config.scrollOffset);\n }\n return new RouterScroller(router, viewportScroller, config);\n}\nfunction provideLocationStrategy(platformLocationStrategy, baseHref, options = {}) {\n return options.useHash ? new HashLocationStrategy(platformLocationStrategy, baseHref) :\n new PathLocationStrategy(platformLocationStrategy, baseHref);\n}\nfunction provideForRootGuard(router) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && router) {\n throw new Error(`RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.`);\n }\n return 'guarded';\n}\n/**\n * Registers a [DI provider](guide/glossary#provider) for a set of routes.\n * @param routes The route configuration to provide.\n *\n * @usageNotes\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forChild(ROUTES)],\n * providers: [provideRoutes(EXTRA_ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @publicApi\n */\nfunction provideRoutes(routes) {\n return [\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, multi: true, useValue: routes },\n { provide: ROUTES, multi: true, useValue: routes },\n ];\n}\nfunction setupRouter(urlSerializer, contexts, location, injector, compiler, config, opts = {}, urlHandlingStrategy, routeReuseStrategy) {\n const router = new Router(null, urlSerializer, contexts, location, injector, compiler, flatten(config));\n if (urlHandlingStrategy) {\n router.urlHandlingStrategy = urlHandlingStrategy;\n }\n if (routeReuseStrategy) {\n router.routeReuseStrategy = routeReuseStrategy;\n }\n assignExtraOptionsToRouter(opts, router);\n if (opts.enableTracing) {\n router.events.subscribe((e) => {\n var _a, _b;\n // tslint:disable:no-console\n (_a = console.group) === null || _a === void 0 ? void 0 : _a.call(console, `Router Event: ${e.constructor.name}`);\n console.log(e.toString());\n console.log(e);\n (_b = console.groupEnd) === null || _b === void 0 ? void 0 : _b.call(console);\n // tslint:enable:no-console\n });\n }\n return router;\n}\nfunction assignExtraOptionsToRouter(opts, router) {\n if (opts.errorHandler) {\n router.errorHandler = opts.errorHandler;\n }\n if (opts.malformedUriErrorHandler) {\n router.malformedUriErrorHandler = opts.malformedUriErrorHandler;\n }\n if (opts.onSameUrlNavigation) {\n router.onSameUrlNavigation = opts.onSameUrlNavigation;\n }\n if (opts.paramsInheritanceStrategy) {\n router.paramsInheritanceStrategy = opts.paramsInheritanceStrategy;\n }\n if (opts.relativeLinkResolution) {\n router.relativeLinkResolution = opts.relativeLinkResolution;\n }\n if (opts.urlUpdateStrategy) {\n router.urlUpdateStrategy = opts.urlUpdateStrategy;\n }\n if (opts.canceledNavigationResolution) {\n router.canceledNavigationResolution = opts.canceledNavigationResolution;\n }\n}\nfunction rootRoute(router) {\n return router.routerState.root;\n}\n/**\n * Router initialization requires two steps:\n *\n * First, we start the navigation in a `APP_INITIALIZER` to block the bootstrap if\n * a resolver or a guard executes asynchronously.\n *\n * Next, we actually run activation in a `BOOTSTRAP_LISTENER`, using the\n * `afterPreactivation` hook provided by the router.\n * The router navigation starts, reaches the point when preactivation is done, and then\n * pauses. It waits for the hook to be resolved. We then resolve it only in a bootstrap listener.\n */\nclass RouterInitializer {\n constructor(injector) {\n this.injector = injector;\n this.initNavigation = false;\n this.destroyed = false;\n this.resultOfPreactivationDone = new Subject();\n }\n appInitializer() {\n const p = this.injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n return p.then(() => {\n // If the injector was destroyed, the DI lookups below will fail.\n if (this.destroyed) {\n return Promise.resolve(true);\n }\n let resolve = null;\n const res = new Promise(r => resolve = r);\n const router = this.injector.get(Router);\n const opts = this.injector.get(ROUTER_CONFIGURATION);\n if (opts.initialNavigation === 'disabled') {\n router.setUpLocationChangeListener();\n resolve(true);\n }\n else if (\n // TODO: enabled is deprecated as of v11, can be removed in v13\n opts.initialNavigation === 'enabled' || opts.initialNavigation === 'enabledBlocking') {\n router.hooks.afterPreactivation = () => {\n // only the initial navigation should be delayed\n if (!this.initNavigation) {\n this.initNavigation = true;\n resolve(true);\n return this.resultOfPreactivationDone;\n // subsequent navigations should not be delayed\n }\n else {\n return of(null);\n }\n };\n router.initialNavigation();\n }\n else {\n resolve(true);\n }\n return res;\n });\n }\n bootstrapListener(bootstrappedComponentRef) {\n const opts = this.injector.get(ROUTER_CONFIGURATION);\n const preloader = this.injector.get(RouterPreloader);\n const routerScroller = this.injector.get(RouterScroller);\n const router = this.injector.get(Router);\n const ref = this.injector.get(ApplicationRef);\n if (bootstrappedComponentRef !== ref.components[0]) {\n return;\n }\n // Default case\n if (opts.initialNavigation === 'enabledNonBlocking' || opts.initialNavigation === undefined) {\n router.initialNavigation();\n }\n preloader.setUpPreloading();\n routerScroller.init();\n router.resetRootComponentType(ref.componentTypes[0]);\n this.resultOfPreactivationDone.next(null);\n this.resultOfPreactivationDone.complete();\n }\n ngOnDestroy() {\n this.destroyed = true;\n }\n}\nRouterInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterInitializer, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });\nRouterInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterInitializer });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: RouterInitializer, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.Injector }]; } });\nfunction getAppInitializer(r) {\n return r.appInitializer.bind(r);\n}\nfunction getBootstrapListener(r) {\n return r.bootstrapListener.bind(r);\n}\n/**\n * A [DI token](guide/glossary/#di-token) for the router initializer that\n * is called after the app is bootstrapped.\n *\n * @publicApi\n */\nconst ROUTER_INITIALIZER = new InjectionToken('Router Initializer');\nfunction provideRouterInitializer() {\n return [\n RouterInitializer,\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: getAppInitializer,\n deps: [RouterInitializer]\n },\n { provide: ROUTER_INITIALIZER, useFactory: getBootstrapListener, deps: [RouterInitializer] },\n { provide: APP_BOOTSTRAP_LISTENER, multi: true, useExisting: ROUTER_INITIALIZER },\n ];\n}\n\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/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.4');\n\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\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\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 file only reexports content of the `src` folder. Keep it that way.\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultUrlSerializer, GuardsCheckEnd, GuardsCheckStart, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, NoPreloading, OutletContext, PRIMARY_OUTLET, PreloadAllModules, PreloadingStrategy, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, ROUTES, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, Router, RouterEvent, RouterLink, RouterLinkActive, RouterLinkWithHref, RouterModule, RouterOutlet, RouterPreloader, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VERSION, convertToParamMap, provideRoutes, ɵEmptyOutletComponent, ROUTER_PROVIDERS as ɵROUTER_PROVIDERS, assignExtraOptionsToRouter as ɵassignExtraOptionsToRouter, flatten as ɵflatten };\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 { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\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 { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period = 0, scheduler = asyncScheduler) {\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\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 * as i0 from '@angular/core';\nimport { Injectable, Optional, NgModule } from '@angular/core';\nimport { Subject, merge, fromEvent, from, interval, timer, of } from 'rxjs';\nimport { bufferTime, filter, tap, switchMap, takeUntil, finalize, distinctUntilChanged, map } from 'rxjs/operators';\n\nclass UserIdleConfig {\n}\n\n/**\n * User's idle service.\n */\nclass UserIdleService {\n constructor(config, _ngZone) {\n this._ngZone = _ngZone;\n this.timerStart$ = new Subject();\n this.idleDetected$ = new Subject();\n this.timeout$ = new Subject();\n /**\n * Idle value in milliseconds.\n * Default equals to 10 minutes.\n */\n this.idleMillisec = 600 * 1000;\n /**\n * Idle buffer wait time milliseconds to collect user action\n * Default equals to 1 Sec.\n */\n this.idleSensitivityMillisec = 1000;\n /**\n * Timeout value in seconds.\n * Default equals to 5 minutes.\n */\n this.timeout = 300;\n /**\n * Ping value in milliseconds.\n * Default equals to 2 minutes.\n */\n this.pingMillisec = 120 * 1000;\n /**\n * Timeout status.\n */\n this.isTimeout = false;\n /**\n * Timer of user's inactivity is in progress.\n */\n this.isInactivityTimer = false;\n this.isIdleDetected = false;\n if (config) {\n this.setConfig(config);\n }\n }\n /**\n * Start watching for user idle and setup timer and ping.\n */\n startWatching() {\n if (!this.activityEvents$) {\n this.activityEvents$ = merge(fromEvent(window, 'mousemove'), fromEvent(window, 'resize'), fromEvent(document, 'keydown'));\n }\n this.idle$ = from(this.activityEvents$);\n if (this.idleSubscription) {\n this.idleSubscription.unsubscribe();\n }\n // If any of user events is not active for idle-seconds when start timer.\n this.idleSubscription = this.idle$\n .pipe(bufferTime(this.idleSensitivityMillisec), // Starting point of detecting of user's inactivity\n filter((arr) => !arr.length && !this.isIdleDetected && !this.isInactivityTimer), tap(() => {\n this.isIdleDetected = true;\n this.idleDetected$.next(true);\n }), switchMap(() => this._ngZone.runOutsideAngular(() => interval(1000).pipe(takeUntil(merge(this.activityEvents$, timer(this.idleMillisec).pipe(tap(() => {\n this.isInactivityTimer = true;\n this.timerStart$.next(true);\n })))), finalize(() => {\n this.isIdleDetected = false;\n this.idleDetected$.next(false);\n })))))\n .subscribe();\n this.setupTimer(this.timeout);\n this.setupPing(this.pingMillisec);\n }\n stopWatching() {\n this.stopTimer();\n if (this.idleSubscription) {\n this.idleSubscription.unsubscribe();\n }\n }\n stopTimer() {\n this.isInactivityTimer = false;\n this.timerStart$.next(false);\n }\n resetTimer() {\n this.stopTimer();\n this.isTimeout = false;\n }\n /**\n * Return observable for timer's countdown number that emits after idle.\n */\n onTimerStart() {\n return this.timerStart$.pipe(distinctUntilChanged(), switchMap((start) => (start ? this.timer$ : of(null))));\n }\n /**\n * Return observable for idle status changed\n */\n onIdleStatusChanged() {\n return this.idleDetected$.asObservable();\n }\n /**\n * Return observable for timeout is fired.\n */\n onTimeout() {\n return this.timeout$.pipe(filter((timeout) => !!timeout), tap(() => (this.isTimeout = true)), map(() => true));\n }\n getConfigValue() {\n return {\n idle: this.idleMillisec / 1000,\n idleSensitivity: this.idleSensitivityMillisec / 1000,\n timeout: this.timeout,\n ping: this.pingMillisec / 1000,\n };\n }\n /**\n * Set config values.\n * @param config\n */\n setConfigValues(config) {\n if (this.idleSubscription && !this.idleSubscription.closed) {\n console.error('Call stopWatching() before set config values');\n return;\n }\n this.setConfig(config);\n }\n setConfig(config) {\n if (config.idle) {\n this.idleMillisec = config.idle * 1000;\n }\n if (config.ping) {\n this.pingMillisec = config.ping * 1000;\n }\n if (config.idleSensitivity) {\n this.idleSensitivityMillisec = config.idleSensitivity * 1000;\n }\n if (config.timeout) {\n this.timeout = config.timeout;\n }\n }\n /**\n * Set custom activity events\n *\n * @param customEvents Example: merge(\n * fromEvent(window, 'mousemove'),\n * fromEvent(window, 'resize'),\n * fromEvent(document, 'keydown'),\n * fromEvent(document, 'touchstart'),\n * fromEvent(document, 'touchend')\n * )\n */\n setCustomActivityEvents(customEvents) {\n if (this.idleSubscription && !this.idleSubscription.closed) {\n console.error('Call stopWatching() before set custom activity events');\n return;\n }\n this.activityEvents$ = customEvents;\n }\n /**\n * Setup timer.\n *\n * Counts every seconds and return n+1 and fire timeout for last count.\n * @param timeout Timeout in seconds.\n */\n setupTimer(timeout) {\n this._ngZone.runOutsideAngular(() => {\n this.timer$ = of(() => new Date()).pipe(map((fn) => fn()), switchMap((startDate) => interval(1000).pipe(map(() => Math.round((new Date().valueOf() - startDate.valueOf()) / 1000)), // convert elapsed count to seconds\n tap((elapsed) => {\n if (elapsed >= timeout) {\n this.timeout$.next(true);\n }\n }))));\n });\n }\n /**\n * Setup ping.\n *\n * Pings every ping-seconds only if is not timeout.\n * @param pingMillisec\n */\n setupPing(pingMillisec) {\n this.ping$ = interval(pingMillisec).pipe(filter(() => !this.isTimeout));\n }\n}\nUserIdleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleService, deps: [{ token: UserIdleConfig, optional: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nUserIdleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () {\n return [{ type: UserIdleConfig, decorators: [{\n type: Optional\n }] }, { type: i0.NgZone }];\n } });\n\nclass UserIdleModule {\n static forRoot(config) {\n return {\n ngModule: UserIdleModule,\n providers: [{ provide: UserIdleConfig, useValue: config }],\n };\n }\n}\nUserIdleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nUserIdleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleModule });\nUserIdleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.11\", ngImport: i0, type: UserIdleModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n }]\n }] });\n\n/*\n * Public API Surface of angular-user-idle\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { UserIdleConfig, UserIdleModule, UserIdleService };\n","import { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { asyncScheduler } from '../scheduler/async';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function bufferTime(bufferTimeSpan, ...otherArgs) {\n var _a, _b;\n const scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;\n const bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n const maxBufferSize = otherArgs[1] || Infinity;\n return operate((source, subscriber) => {\n let bufferRecords = [];\n let restartOnEmit = false;\n const emit = (record) => {\n const { buffer, subs } = record;\n subs.unsubscribe();\n arrRemove(bufferRecords, record);\n subscriber.next(buffer);\n restartOnEmit && startBuffer();\n };\n const startBuffer = () => {\n if (bufferRecords) {\n const subs = new Subscription();\n subscriber.add(subs);\n const buffer = [];\n const record = {\n buffer,\n subs,\n };\n bufferRecords.push(record);\n executeSchedule(subs, scheduler, () => emit(record), bufferTimeSpan);\n }\n };\n if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {\n executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);\n }\n else {\n restartOnEmit = true;\n }\n startBuffer();\n const bufferTimeSubscriber = createOperatorSubscriber(subscriber, (value) => {\n const recordsCopy = bufferRecords.slice();\n for (const record of recordsCopy) {\n const { buffer } = record;\n buffer.push(value);\n maxBufferSize <= buffer.length && emit(record);\n }\n }, () => {\n while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {\n subscriber.next(bufferRecords.shift().buffer);\n }\n bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();\n subscriber.complete();\n subscriber.unsubscribe();\n }, undefined, () => (bufferRecords = null));\n source.subscribe(bufferTimeSubscriber);\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","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Injectable, Directive, Input, NgModule, Component, PLATFORM_ID, Inject, VERSION, Optional } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { isPlatformServer, DOCUMENT } from '@angular/common';\nimport * as i3 from '@angular/platform-browser';\nimport { makeStateKey } from '@angular/platform-browser';\nimport domAdapter from 'devextreme/core/dom_adapter';\nimport { one, triggerHandler } from 'devextreme/events';\nimport { equalByValue } from 'devextreme/core/utils/common';\nimport render from 'devextreme/core/renderer';\nimport httpRequest from 'devextreme/core/http_request';\nimport readyCallbacks from 'devextreme/core/utils/ready_callbacks';\nimport eventsEngine from 'devextreme/events/core/events_engine';\nimport ajax from 'devextreme/core/utils/ajax';\nimport { Deferred } from 'devextreme/core/utils/deferred';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxTemplateHost {\r\n setHost(host) {\r\n this.host = host;\r\n }\r\n setTemplate(template) {\r\n this.host.setTemplate(template);\r\n }\r\n}\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass NgEventsStrategy {\r\n constructor(instance, zone) {\r\n this.instance = instance;\r\n this.zone = zone;\r\n this.subscriptions = {};\r\n this.events = {};\r\n }\r\n hasEvent(name) {\r\n return this.getEmitter(name).observers.length !== 0;\r\n }\r\n fireEvent(name, args) {\r\n const emitter = this.getEmitter(name);\r\n if (emitter.observers.length) {\r\n const internalSubs = this.subscriptions[name] || [];\r\n if (internalSubs.length === emitter.observers.length) {\r\n emitter.next(args && args[0]);\r\n }\r\n else {\r\n this.zone.run(() => emitter.next(args && args[0]));\r\n }\r\n }\r\n }\r\n on(name, handler) {\r\n if (typeof name === 'string') {\r\n const eventSubscriptions = this.subscriptions[name] || [];\r\n const subcription = this.getEmitter(name).subscribe(handler === null || handler === void 0 ? void 0 : handler.bind(this.instance));\r\n const unsubscribe = subcription.unsubscribe.bind(subcription);\r\n eventSubscriptions.push({ handler, unsubscribe });\r\n this.subscriptions[name] = eventSubscriptions;\r\n }\r\n else {\r\n const handlersObj = name;\r\n Object.keys(handlersObj).forEach((event) => this.on(event, handlersObj[event]));\r\n }\r\n }\r\n off(name, handler) {\r\n const eventSubscriptions = this.subscriptions[name] || [];\r\n if (handler) {\r\n eventSubscriptions.some((subscription, i) => {\r\n if (subscription.handler === handler) {\r\n subscription.unsubscribe();\r\n eventSubscriptions.splice(i, 1);\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n else {\r\n eventSubscriptions.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n eventSubscriptions.splice(0, eventSubscriptions.length);\r\n }\r\n }\r\n dispose() { }\r\n addEmitter(eventName, emitter) {\r\n this.events[eventName] = emitter;\r\n }\r\n getEmitter(eventName) {\r\n if (!this.events[eventName]) {\r\n this.events[eventName] = new EventEmitter();\r\n }\r\n return this.events[eventName];\r\n }\r\n}\r\nclass EmitterHelper {\r\n constructor(zone, component) {\r\n this.zone = zone;\r\n this.component = component;\r\n this.lockedValueChangeEvent = false;\r\n }\r\n fireNgEvent(eventName, eventArgs) {\r\n if (this.lockedValueChangeEvent && eventName === 'valueChange') {\r\n return;\r\n }\r\n const emitter = this.component[eventName];\r\n if (emitter && emitter.observers.length) {\r\n this.zone.run(() => {\r\n emitter.next(eventArgs && eventArgs[0]);\r\n });\r\n }\r\n }\r\n createEmitters(events) {\r\n events.forEach((event) => {\r\n this.component[event.emit] = new EventEmitter();\r\n });\r\n }\r\n}\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass WatcherHelper {\r\n constructor() {\r\n this._watchers = [];\r\n }\r\n getWatchMethod() {\r\n const watchMethod = (valueGetter, valueChangeCallback, options) => {\r\n let oldValue = valueGetter();\r\n options = options || {};\r\n if (!options.skipImmediate) {\r\n valueChangeCallback(oldValue);\r\n }\r\n const watcher = () => {\r\n const newValue = valueGetter();\r\n if (this._isDifferentValues(oldValue, newValue, options.deep)) {\r\n valueChangeCallback(newValue);\r\n oldValue = newValue;\r\n }\r\n };\r\n this._watchers.push(watcher);\r\n return () => {\r\n const index = this._watchers.indexOf(watcher);\r\n if (index !== -1) {\r\n this._watchers.splice(index, 1);\r\n }\r\n };\r\n };\r\n return watchMethod;\r\n }\r\n _isDifferentValues(oldValue, newValue, deepCheck) {\r\n const comparableNewValue = this._toComparable(newValue);\r\n const comparableOldValue = this._toComparable(oldValue);\r\n const isObjectValues = comparableNewValue instanceof Object && comparableOldValue instanceof Object;\r\n if (deepCheck && isObjectValues) {\r\n return this._checkObjectsFields(newValue, oldValue);\r\n }\r\n return comparableNewValue !== comparableOldValue;\r\n }\r\n _toComparable(value) {\r\n if (value instanceof Date) {\r\n return value.getTime();\r\n }\r\n return value;\r\n }\r\n _checkObjectsFields(checkingFromObject, checkingToObject) {\r\n for (const field in checkingFromObject) {\r\n const oldValue = this._toComparable(checkingFromObject[field]);\r\n const newValue = this._toComparable(checkingToObject[field]);\r\n let isEqualObjects = false;\r\n if (typeof oldValue === 'object' && typeof newValue === 'object') {\r\n isEqualObjects = equalByValue(oldValue, newValue);\r\n }\r\n if (oldValue !== newValue && !isEqualObjects) {\r\n return true;\r\n }\r\n }\r\n }\r\n checkWatchers() {\r\n for (const watcher of this._watchers) {\r\n watcher();\r\n }\r\n }\r\n}\r\n/** @nocollapse */ WatcherHelper.ɵfac = function WatcherHelper_Factory(t) { return new (t || WatcherHelper)(); };\r\n/** @nocollapse */ WatcherHelper.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: WatcherHelper, factory: WatcherHelper.ɵfac });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(WatcherHelper, [{\r\n type: Injectable\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nfunction getElement(element) {\r\n return element.get ? element.get(0) : element;\r\n}\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst DX_TEMPLATE_WRAPPER_CLASS = 'dx-template-wrapper';\r\nclass RenderData {\r\n}\r\nclass DxTemplateDirective {\r\n constructor(templateRef, viewContainerRef, templateHost, renderer, zone) {\r\n this.templateRef = templateRef;\r\n this.viewContainerRef = viewContainerRef;\r\n this.renderer = renderer;\r\n this.zone = zone;\r\n templateHost.setTemplate(this);\r\n }\r\n set dxTemplateOf(value) {\r\n this.name = value;\r\n }\r\n renderTemplate(renderData) {\r\n const childView = this.viewContainerRef.createEmbeddedView(this.templateRef, {\r\n $implicit: renderData.model,\r\n index: renderData.index,\r\n });\r\n const container = getElement(renderData.container);\r\n if (renderData.container) {\r\n childView.rootNodes.forEach((element) => {\r\n this.renderer.appendChild(container, element);\r\n });\r\n }\r\n return childView;\r\n }\r\n render(renderData) {\r\n let childView;\r\n if (this.zone.isStable) {\r\n childView = this.zone.run(() => this.renderTemplate(renderData));\r\n }\r\n else {\r\n childView = this.renderTemplate(renderData);\r\n }\r\n // =========== WORKAROUND =============\r\n // https://github.com/angular/angular/issues/12243\r\n childView.detectChanges();\r\n // =========== /WORKAROUND =============\r\n childView.rootNodes.forEach((element) => {\r\n if (element.nodeType === 1) {\r\n domAdapter.setClass(element, DX_TEMPLATE_WRAPPER_CLASS, true);\r\n }\r\n one(element, 'dxremove', ({}, params) => {\r\n if (!params || !params._angularIntegration) {\r\n childView.destroy();\r\n }\r\n });\r\n });\r\n return childView.rootNodes;\r\n }\r\n}\r\n/** @nocollapse */ DxTemplateDirective.ɵfac = function DxTemplateDirective_Factory(t) { return new (t || DxTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DxTemplateHost), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone)); };\r\n/** @nocollapse */ DxTemplateDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DxTemplateDirective, selectors: [[\"\", \"dxTemplate\", \"\"]], inputs: { dxTemplateOf: \"dxTemplateOf\" } });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTemplateDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[dxTemplate]',\r\n }]\r\n }], function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: DxTemplateHost }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, { dxTemplateOf: [{\r\n type: Input\r\n }] }); })();\r\nclass DxTemplateModule {\r\n}\r\n/** @nocollapse */ DxTemplateModule.ɵfac = function DxTemplateModule_Factory(t) { return new (t || DxTemplateModule)(); };\r\n/** @nocollapse */ DxTemplateModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTemplateModule });\r\n/** @nocollapse */ DxTemplateModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTemplateModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [DxTemplateDirective],\r\n exports: [DxTemplateDirective],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTemplateModule, { declarations: [DxTemplateDirective], exports: [DxTemplateDirective] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst VISIBILITY_CHANGE_SELECTOR = 'dx-visibility-change-handler';\r\nclass BaseNestedOption {\r\n constructor() {\r\n this._initialOptions = {};\r\n this._collectionContainerImpl = new CollectionNestedOptionContainerImpl(this._setOption.bind(this), this._filterItems.bind(this));\r\n }\r\n _optionChangedHandler(e) {\r\n const fullOptionPath = this._fullOptionPath();\r\n if (e.fullName.indexOf(fullOptionPath) === 0) {\r\n const optionName = e.fullName.slice(fullOptionPath.length);\r\n const emitter = this[`${optionName}Change`];\r\n if (emitter) {\r\n emitter.next(e.value);\r\n }\r\n }\r\n }\r\n _createEventEmitters(events) {\r\n events.forEach((event) => {\r\n this[event.emit] = new EventEmitter();\r\n });\r\n }\r\n _getOption(name) {\r\n if (this.isLinked) {\r\n return this.instance.option(this._fullOptionPath() + name);\r\n }\r\n return this._initialOptions[name];\r\n }\r\n _setOption(name, value) {\r\n if (this.isLinked) {\r\n const fullPath = this._fullOptionPath() + name;\r\n this.instance.option(fullPath, value);\r\n }\r\n else {\r\n this._initialOptions[name] = value;\r\n }\r\n }\r\n _addRemovedOption(name) {\r\n if (this.instance && this.removedNestedComponents) {\r\n this.removedNestedComponents.push(name);\r\n }\r\n }\r\n _deleteRemovedOptions(name) {\r\n if (this.instance && this.removedNestedComponents) {\r\n this.removedNestedComponents = this.removedNestedComponents.filter((x) => !x.startsWith(name));\r\n }\r\n }\r\n _addRecreatedComponent() {\r\n if (this.instance && this.recreatedNestedComponents) {\r\n this.recreatedNestedComponents.push({ getOptionPath: () => this._getOptionPath() });\r\n }\r\n }\r\n _getOptionPath() {\r\n return this._hostOptionPath() + this._optionPath;\r\n }\r\n setHost(host, optionPath) {\r\n this._host = host;\r\n this._hostOptionPath = optionPath;\r\n this.optionChangedHandlers.subscribe(this._optionChangedHandler.bind(this));\r\n }\r\n setChildren(propertyName, items) {\r\n this.resetOptions(propertyName);\r\n return this._collectionContainerImpl.setChildren(propertyName, items);\r\n }\r\n _filterItems(items) {\r\n return items.filter((item) => item !== this);\r\n }\r\n get instance() {\r\n return this._host && this._host.instance;\r\n }\r\n get resetOptions() {\r\n return this._host && this._host.resetOptions;\r\n }\r\n get isRecreated() {\r\n return this._host && this._host.isRecreated;\r\n }\r\n get removedNestedComponents() {\r\n return this._host && this._host.removedNestedComponents;\r\n }\r\n set removedNestedComponents(value) {\r\n this._host.removedNestedComponents = value;\r\n }\r\n get recreatedNestedComponents() {\r\n return this._host && this._host.recreatedNestedComponents;\r\n }\r\n set recreatedNestedComponents(value) {\r\n this._host.recreatedNestedComponents = value;\r\n }\r\n get isLinked() {\r\n return !!this.instance && this._host.isLinked;\r\n }\r\n get optionChangedHandlers() {\r\n return this._host && this._host.optionChangedHandlers;\r\n }\r\n}\r\n/** @nocollapse */ BaseNestedOption.ɵfac = function BaseNestedOption_Factory(t) { return new (t || BaseNestedOption)(); };\r\n/** @nocollapse */ BaseNestedOption.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseNestedOption, selectors: [[\"ng-component\"]], decls: 0, vars: 0, template: function BaseNestedOption_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseNestedOption, [{\r\n type: Component,\r\n args: [{\r\n template: '',\r\n }]\r\n }], function () { return []; }, null); })();\r\nclass CollectionNestedOptionContainerImpl {\r\n constructor(_setOption, _filterItems) {\r\n this._setOption = _setOption;\r\n this._filterItems = _filterItems;\r\n this._activatedQueries = {};\r\n }\r\n setChildren(propertyName, items) {\r\n if (this._filterItems) {\r\n items = this._filterItems(items);\r\n }\r\n if (items.length) {\r\n this._activatedQueries[propertyName] = true;\r\n }\r\n if (this._activatedQueries[propertyName]) {\r\n const widgetItems = items.map((item, index) => {\r\n item._index = index;\r\n return item._value;\r\n });\r\n this._setOption(propertyName, widgetItems);\r\n }\r\n }\r\n}\r\nclass NestedOption extends BaseNestedOption {\r\n setHost(host, optionPath) {\r\n super.setHost(host, optionPath);\r\n this._host[this._optionPath] = this._initialOptions;\r\n }\r\n _fullOptionPath() {\r\n return `${this._getOptionPath()}.`;\r\n }\r\n}\r\n/** @nocollapse */ NestedOption.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵNestedOption_BaseFactory; return function NestedOption_Factory(t) { return (ɵNestedOption_BaseFactory || (ɵNestedOption_BaseFactory = i0.ɵɵgetInheritedFactory(NestedOption)))(t || NestedOption); }; }();\r\n/** @nocollapse */ NestedOption.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: NestedOption, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NestedOption_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NestedOption, [{\r\n type: Component,\r\n args: [{\r\n template: '',\r\n }]\r\n }], null, null); })();\r\nclass CollectionNestedOption extends BaseNestedOption {\r\n _fullOptionPath() {\r\n return `${this._getOptionPath()}[${this._index}].`;\r\n }\r\n get _value() {\r\n return this._initialOptions;\r\n }\r\n get isLinked() {\r\n return this._index !== undefined && !!this.instance && this._host.isLinked;\r\n }\r\n}\r\n/** @nocollapse */ CollectionNestedOption.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵCollectionNestedOption_BaseFactory; return function CollectionNestedOption_Factory(t) { return (ɵCollectionNestedOption_BaseFactory || (ɵCollectionNestedOption_BaseFactory = i0.ɵɵgetInheritedFactory(CollectionNestedOption)))(t || CollectionNestedOption); }; }();\r\n/** @nocollapse */ CollectionNestedOption.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: CollectionNestedOption, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CollectionNestedOption_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CollectionNestedOption, [{\r\n type: Component,\r\n args: [{\r\n template: '',\r\n }]\r\n }], null, null); })();\r\nconst triggerShownEvent = function (element) {\r\n const changeHandlers = [];\r\n if (!render(element).hasClass(VISIBILITY_CHANGE_SELECTOR)) {\r\n changeHandlers.push(element);\r\n }\r\n changeHandlers.push.apply(changeHandlers, element.querySelectorAll(`.${VISIBILITY_CHANGE_SELECTOR}`));\r\n for (let i = 0; i < changeHandlers.length; i++) {\r\n triggerHandler(changeHandlers[i], 'dxshown');\r\n }\r\n};\r\nfunction extractTemplate(option, element, renderer, document) {\r\n if (!option.template === undefined || !element.nativeElement.hasChildNodes()) {\r\n return;\r\n }\r\n const childNodes = [].slice.call(element.nativeElement.childNodes);\r\n const userContent = childNodes.filter((n) => {\r\n if (n.tagName) {\r\n const tagNamePrefix = n.tagName.toLowerCase().substr(0, 3);\r\n return !(tagNamePrefix === 'dxi' || tagNamePrefix === 'dxo');\r\n }\r\n return n.nodeName !== '#comment' && n.textContent.replace(/\\s/g, '').length;\r\n });\r\n if (!userContent.length) {\r\n return;\r\n }\r\n option.template = {\r\n render: (renderData) => {\r\n const result = element.nativeElement;\r\n domAdapter.setClass(result, DX_TEMPLATE_WRAPPER_CLASS, true);\r\n if (renderData.container) {\r\n const container = getElement(renderData.container);\r\n const resultInContainer = container.contains(element.nativeElement);\r\n renderer.appendChild(container, element.nativeElement);\r\n if (!resultInContainer) {\r\n const resultInBody = document.body.contains(container);\r\n if (resultInBody) {\r\n triggerShownEvent(result);\r\n }\r\n }\r\n }\r\n return result;\r\n },\r\n };\r\n}\r\nclass NestedOptionHost {\r\n getHost() {\r\n return this._host;\r\n }\r\n setHost(host, optionPath) {\r\n this._host = host;\r\n this._optionPath = optionPath || (() => '');\r\n }\r\n setNestedOption(nestedOption) {\r\n nestedOption.setHost(this._host, this._optionPath);\r\n }\r\n}\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nlet serverStateKey;\r\nconst getServerStateKey = () => {\r\n if (!serverStateKey) {\r\n serverStateKey = makeStateKey('DX_isPlatformServer');\r\n }\r\n return serverStateKey;\r\n};\r\nclass DxComponent {\r\n constructor(element, ngZone, templateHost, watcherHelper, transferState, platformId) {\r\n this.element = element;\r\n this.ngZone = ngZone;\r\n this.watcherHelper = watcherHelper;\r\n this.transferState = transferState;\r\n this.platformId = platformId;\r\n this._initialOptions = {};\r\n this._optionsToUpdate = {};\r\n this.optionChangedHandlers = new EventEmitter();\r\n this.isLinked = true;\r\n this.changedOptions = {};\r\n this.removedNestedComponents = [];\r\n this.widgetUpdateLocked = false;\r\n this.templateUpdateRequired = false;\r\n this.templates = [];\r\n templateHost.setHost(this);\r\n this._collectionContainerImpl = new CollectionNestedOptionContainerImpl(this._setOption.bind(this));\r\n this.eventHelper = new EmitterHelper(ngZone, this);\r\n }\r\n _updateTemplates() {\r\n if (this.templates.length && this.templateUpdateRequired) {\r\n const updatedTemplates = {};\r\n this.templates.forEach((template) => {\r\n updatedTemplates[template.name] = template;\r\n });\r\n this.instance.option('integrationOptions.templates', updatedTemplates);\r\n this.templates = Object.values(updatedTemplates);\r\n this.templateUpdateRequired = false;\r\n }\r\n }\r\n _initEvents() {\r\n this.instance.on('optionChanged', (e) => {\r\n this.changedOptions[e.name] = e.value;\r\n const value = e.name === e.fullName ? e.value : e.component.option(e.name);\r\n this.eventHelper.fireNgEvent(`${e.name}Change`, [value]);\r\n this.optionChangedHandlers.emit(e);\r\n });\r\n }\r\n _initOptions() {\r\n this._initialOptions.integrationOptions.watchMethod = this.watcherHelper.getWatchMethod();\r\n }\r\n _initPlatform() {\r\n if (this.transferState.hasKey(getServerStateKey())) {\r\n this._initialOptions.integrationOptions.renderedOnServer = this.transferState.get(getServerStateKey(), null);\r\n }\r\n else if (isPlatformServer(this.platformId)) {\r\n this.transferState.set(getServerStateKey(), true);\r\n }\r\n }\r\n _createEventEmitters(events) {\r\n const zone = this.ngZone;\r\n this.eventHelper.createEmitters(events);\r\n this._initialOptions.eventsStrategy = (instance) => {\r\n const strategy = new NgEventsStrategy(instance, zone);\r\n events.filter((event) => event.subscribe).forEach((event) => {\r\n strategy.addEmitter(event.subscribe, this[event.emit]);\r\n });\r\n return strategy;\r\n };\r\n this._initialOptions.nestedComponentOptions = function (component) {\r\n return {\r\n eventsStrategy: (instance) => new NgEventsStrategy(instance, zone),\r\n nestedComponentOptions: component.option('nestedComponentOptions'),\r\n };\r\n };\r\n }\r\n _shouldOptionChange(name, value) {\r\n if (this.changedOptions.hasOwnProperty(name)) {\r\n const prevValue = this.changedOptions[name];\r\n delete this.changedOptions[name];\r\n return value !== prevValue;\r\n }\r\n return true;\r\n }\r\n clearChangedOptions() {\r\n this.changedOptions = {};\r\n }\r\n _getOption(name) {\r\n return this.instance\r\n ? this.instance.option(name)\r\n : this._initialOptions[name];\r\n }\r\n lockWidgetUpdate() {\r\n if (!this.widgetUpdateLocked && this.instance) {\r\n this.instance.beginUpdate();\r\n this.widgetUpdateLocked = true;\r\n }\r\n }\r\n unlockWidgetUpdate() {\r\n if (this.widgetUpdateLocked) {\r\n this.widgetUpdateLocked = false;\r\n this.instance.endUpdate();\r\n }\r\n }\r\n _setOption(name, value) {\r\n this.lockWidgetUpdate();\r\n if (!this._shouldOptionChange(name, value)) {\r\n return;\r\n }\r\n if (this.instance) {\r\n this.instance.option(name, value);\r\n }\r\n else {\r\n this._initialOptions[name] = value;\r\n }\r\n }\r\n _createWidget(element) {\r\n this._initialOptions.integrationOptions = {};\r\n this._initPlatform();\r\n this._initOptions();\r\n this._initialOptions.onInitializing = function () {\r\n this.beginUpdate();\r\n };\r\n this.instance = this._createInstance(element, this._initialOptions);\r\n this._initEvents();\r\n this._initialOptions = {};\r\n }\r\n _destroyWidget() {\r\n this.removedNestedComponents = [];\r\n if (this.instance) {\r\n const element = this.instance.element();\r\n triggerHandler(element, 'dxremove', { _angularIntegration: true });\r\n this.instance.dispose();\r\n domAdapter.removeElement(element);\r\n }\r\n }\r\n ngOnChanges(changes) {\r\n for (const key in changes) {\r\n const change = changes[key];\r\n if (change.currentValue !== this[key]) {\r\n this._optionsToUpdate[key] = changes[key].currentValue;\r\n }\r\n }\r\n }\r\n ngOnInit() {\r\n this._createWidget(this.element.nativeElement);\r\n }\r\n ngDoCheck() {\r\n this.applyOptions();\r\n }\r\n ngAfterContentChecked() {\r\n this.applyOptions();\r\n this.resetOptions();\r\n this.unlockWidgetUpdate();\r\n }\r\n ngAfterViewInit() {\r\n this._updateTemplates();\r\n this.instance.endUpdate();\r\n this.recreatedNestedComponents = [];\r\n }\r\n ngAfterViewChecked() {\r\n this._updateTemplates();\r\n }\r\n applyOptions() {\r\n if (Object.keys(this._optionsToUpdate).length) {\r\n if (this.instance) {\r\n this.instance.option(this._optionsToUpdate);\r\n }\r\n this._optionsToUpdate = {};\r\n }\r\n }\r\n resetOptions(collectionName) {\r\n if (this.instance) {\r\n this.removedNestedComponents.filter((option) => (option\r\n && !this.isRecreated(option)\r\n && collectionName ? option.startsWith(collectionName) : true))\r\n .forEach((option) => {\r\n this.instance.resetOption(option);\r\n });\r\n this.removedNestedComponents = [];\r\n this.recreatedNestedComponents = [];\r\n }\r\n }\r\n isRecreated(name) {\r\n return this.recreatedNestedComponents\r\n && this.recreatedNestedComponents.some((nestedComponent) => nestedComponent.getOptionPath() === name);\r\n }\r\n setTemplate(template) {\r\n this.templates.push(template);\r\n this.templateUpdateRequired = true;\r\n }\r\n setChildren(propertyName, items) {\r\n this.resetOptions(propertyName);\r\n return this._collectionContainerImpl.setChildren(propertyName, items);\r\n }\r\n}\r\n/** @nocollapse */ DxComponent.ɵfac = function DxComponent_Factory(t) { return new (t || DxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DxTemplateHost), i0.ɵɵdirectiveInject(WatcherHelper), i0.ɵɵdirectiveInject(i3.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxComponent, selectors: [[\"ng-component\"]], features: [i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxComponent, [{\r\n type: Component,\r\n args: [{\r\n template: '',\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: DxTemplateHost }, { type: WatcherHelper }, { type: i3.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, null); })();\r\nclass DxComponentExtension extends DxComponent {\r\n createInstance(element) {\r\n this._createWidget(element);\r\n }\r\n ngOnInit() {\r\n }\r\n ngAfterViewInit() {\r\n this._createWidget(this.element.nativeElement);\r\n this.instance.endUpdate();\r\n }\r\n}\r\n/** @nocollapse */ DxComponentExtension.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxComponentExtension_BaseFactory; return function DxComponentExtension_Factory(t) { return (ɵDxComponentExtension_BaseFactory || (ɵDxComponentExtension_BaseFactory = i0.ɵɵgetInheritedFactory(DxComponentExtension)))(t || DxComponentExtension); }; }();\r\n/** @nocollapse */ DxComponentExtension.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxComponentExtension, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxComponentExtension_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxComponentExtension, [{\r\n type: Component,\r\n args: [{\r\n template: '',\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst outsideZoneEvents = ['mousemove', 'mouseover', 'mouseout'];\r\nconst insideZoneEvents = ['mouseup', 'click', 'mousedown', 'transitionend', 'wheel'];\r\nlet originalAdd;\r\nlet callbacks = [];\r\nlet readyCallbackAdd = function (callback) {\r\n if (!originalAdd) {\r\n originalAdd = this.callBase.bind(this);\r\n }\r\n callbacks.push(callback);\r\n};\r\nreadyCallbacks.inject({\r\n add(callback) {\r\n return readyCallbackAdd.call(this, callback);\r\n },\r\n});\r\nlet doInjections = (document, ngZone, xhrFactory) => {\r\n if (Number(VERSION.major) < 12) {\r\n console.warn('Your version of Angular is not supported. Please update your project to version 12 or later.'\r\n + ' Please refer to the Angular Update Guide for more information: https://update.angular.io');\r\n }\r\n domAdapter.inject({\r\n _document: document,\r\n listen(...args) {\r\n const eventName = args[1];\r\n if (outsideZoneEvents.includes(eventName)) {\r\n return ngZone.runOutsideAngular(() => this.callBase.apply(this, args));\r\n }\r\n if (ngZone.isStable && insideZoneEvents.includes(eventName)) {\r\n return ngZone.run(() => this.callBase.apply(this, args));\r\n }\r\n return this.callBase.apply(this, args);\r\n },\r\n isElementNode(element) {\r\n return element && element.nodeType === 1;\r\n },\r\n isTextNode(element) {\r\n return element && element.nodeType === 3;\r\n },\r\n isDocument(element) {\r\n return element && element.nodeType === 9;\r\n },\r\n });\r\n httpRequest.inject({\r\n getXhr() {\r\n if (!xhrFactory) {\r\n return this.callBase.apply(this);\r\n }\r\n const _xhr = xhrFactory.build();\r\n if (!('withCredentials' in _xhr)) {\r\n _xhr.withCredentials = false;\r\n }\r\n return _xhr;\r\n },\r\n });\r\n const runReadyCallbacksInZone = () => {\r\n ngZone.run(() => {\r\n eventsEngine.set({});\r\n callbacks.forEach((callback) => originalAdd.call(null, callback));\r\n callbacks = [];\r\n readyCallbacks.fire();\r\n });\r\n };\r\n runReadyCallbacksInZone();\r\n readyCallbackAdd = (callback) => ngZone.run(() => callback());\r\n doInjections = runReadyCallbacksInZone;\r\n};\r\nclass DxIntegrationModule {\r\n constructor(document, ngZone, xhrFactory) {\r\n doInjections(document, ngZone, xhrFactory);\r\n }\r\n}\r\n/** @nocollapse */ DxIntegrationModule.ɵfac = function DxIntegrationModule_Factory(t) { return new (t || DxIntegrationModule)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.XhrFactory, 8)); };\r\n/** @nocollapse */ DxIntegrationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxIntegrationModule });\r\n/** @nocollapse */ DxIntegrationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxIntegrationModule, [{\r\n type: NgModule,\r\n args: [{}]\r\n }], function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i0.NgZone }, { type: i1.XhrFactory, decorators: [{\r\n type: Optional\r\n }] }]; }, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nfunction isIterable(value) {\r\n return value && (typeof value[Symbol.iterator] === 'function');\r\n}\r\nclass IterableDifferHelper {\r\n constructor(_differs) {\r\n this._differs = _differs;\r\n this._propertyDiffers = {};\r\n }\r\n setHost(host) {\r\n this._host = host;\r\n }\r\n setup(prop, changes) {\r\n if (prop in changes) {\r\n const value = changes[prop].currentValue;\r\n this.setupSingle(prop, value);\r\n }\r\n }\r\n setupSingle(prop, value) {\r\n if (value && Array.isArray(value)) {\r\n if (!this._propertyDiffers[prop]) {\r\n try {\r\n this._propertyDiffers[prop] = this._differs.find(value).create(null);\r\n return true;\r\n }\r\n catch (e) { }\r\n }\r\n }\r\n else {\r\n delete this._propertyDiffers[prop];\r\n }\r\n return false;\r\n }\r\n getChanges(prop, value) {\r\n if (this._propertyDiffers[prop]) {\r\n return this._propertyDiffers[prop].diff(value);\r\n }\r\n }\r\n checkChangedOptions(propName, hostValue) {\r\n return this._host.changedOptions[propName] === hostValue;\r\n }\r\n doCheck(prop) {\r\n if (this._propertyDiffers[prop] && this._host.instance) {\r\n const hostValue = this._host[prop];\r\n const changes = isIterable(hostValue) && this.getChanges(prop, hostValue);\r\n if (changes && !this.checkChangedOptions(prop, hostValue)) {\r\n this._host.lockWidgetUpdate();\r\n this._host.instance.option(prop, hostValue);\r\n }\r\n }\r\n }\r\n}\r\n/** @nocollapse */ IterableDifferHelper.ɵfac = function IterableDifferHelper_Factory(t) { return new (t || IterableDifferHelper)(i0.ɵɵinject(i0.IterableDiffers)); };\r\n/** @nocollapse */ IterableDifferHelper.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: IterableDifferHelper, factory: IterableDifferHelper.ɵfac });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IterableDifferHelper, [{\r\n type: Injectable\r\n }], function () { return [{ type: i0.IterableDiffers }]; }, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxServerTransferStateModule {\r\n constructor(state, platformId) {\r\n this.state = state;\r\n this.platformId = platformId;\r\n const that = this;\r\n ajax.inject({\r\n sendRequest(...args) {\r\n const key = makeStateKey(that.generateKey(args));\r\n const cachedData = that.state.get(key, null);\r\n if (isPlatformServer(that.platformId)) {\r\n const result = this.callBase.apply(this, args);\r\n result.always((data, status) => {\r\n const dataForCache = {\r\n data,\r\n status,\r\n };\r\n that.state.set(key, dataForCache);\r\n });\r\n return result;\r\n }\r\n if (cachedData) {\r\n const d = Deferred();\r\n d.resolve(cachedData.data, cachedData.status);\r\n that.state.set(key, null);\r\n return d.promise();\r\n }\r\n return this.callBase.apply(this, args);\r\n },\r\n });\r\n }\r\n generateKey(args) {\r\n let keyValue = '';\r\n for (const key in args) {\r\n if (typeof args[key] === 'object') {\r\n const objKey = this.generateKey(args[key]);\r\n keyValue += key + objKey;\r\n }\r\n else {\r\n keyValue += key + args[key];\r\n }\r\n }\r\n return keyValue;\r\n }\r\n}\r\n/** @nocollapse */ DxServerTransferStateModule.ɵfac = function DxServerTransferStateModule_Factory(t) { return new (t || DxServerTransferStateModule)(i0.ɵɵinject(i3.TransferState), i0.ɵɵinject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxServerTransferStateModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxServerTransferStateModule });\r\n/** @nocollapse */ DxServerTransferStateModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxServerTransferStateModule, [{\r\n type: NgModule,\r\n args: [{}]\r\n }], function () { return [{ type: i3.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { BaseNestedOption, CollectionNestedOption, CollectionNestedOptionContainerImpl, DX_TEMPLATE_WRAPPER_CLASS, DxComponent, DxComponentExtension, DxIntegrationModule, DxServerTransferStateModule, DxTemplateDirective, DxTemplateHost, DxTemplateModule, EmitterHelper, IterableDifferHelper, NestedOption, NestedOptionHost, NgEventsStrategy, RenderData, WatcherHelper, extractTemplate, getElement, getServerStateKey };\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar UA_PARSERS = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return null\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n appleTouchDevice(userAgent) {\r\n var navigator = getNavigator();\r\n var isIpadOs = /Macintosh/i.test(userAgent) && (null === navigator || void 0 === navigator ? void 0 : navigator.maxTouchPoints) > 2;\r\n var isAppleDevice = /ip(hone|od|ad)/i.test(userAgent);\r\n if (!isAppleDevice && !isIpadOs) {\r\n return null\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os\\s{0,}X? (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n var isAndroid = /android|htc_|silk/i.test(userAgent);\r\n var isWinPhone = /windows phone/i.test(userAgent);\r\n if (!isAndroid || isWinPhone) {\r\n return null\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nvar UA_PARSERS_ARRAY = [UA_PARSERS.appleTouchDevice, UA_PARSERS.android, UA_PARSERS.generic];\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n var navigator = getNavigator();\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n for (var idx = 0; idx < UA_PARSERS_ARRAY.length; idx += 1) {\r\n var parser = UA_PARSERS_ARRAY[idx];\r\n var config = parser(ua);\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n mac: isMac\r\n } = devices.real();\r\n var isNativeScrollDevice = \"ios\" === platform || \"android\" === platform || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n setStyle\r\n} from \"../core/utils/style\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw, preventRound) {\r\n return pairToObject(raw, preventRound)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"<div>\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset, options.precise);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset, options.precise);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if (of.preventDefault) {\r\n h.atLocation = of.pageX;\r\n v.atLocation = of.pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $(of);\r\n if (isWindow(of [0])) {\r\n h.atLocation = of.scrollLeft();\r\n v.atLocation = of.scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth(of);\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight(of)\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth(of);\r\n v.atSize = getHeight(of)\r\n } else {\r\n var ofRect = getBoundingRect(of.get(0));\r\n var o = getOffsetWithoutScale(of);\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth(of));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight(of))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary && !isWindow(boundary)) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n var newStyleValue = isEmpty ? styleAttr.replace(scale, \"\") : styleAttr;\r\n if (stylePropIsValid) {\r\n setStyle(element, newStyleValue, false)\r\n } else {\r\n var styleAttributeNode = domAdapter.createAttribute(\"style\");\r\n styleAttributeNode.value = newStyleValue;\r\n element.setAttributeNode(styleAttributeNode)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement(element) === element\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var normalizedKey = KEY_MAP[null === key || void 0 === key ? void 0 : key.toLowerCase()] || key;\r\n var normalizedKeyFromWhich = LEGACY_KEY_CODES[which];\r\n if (normalizedKeyFromWhich && normalizedKey === key) {\r\n return normalizedKeyFromWhich\r\n } else if (!normalizedKey && which) {\r\n return String.fromCharCode(which)\r\n }\r\n return normalizedKey\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow,\r\n isString\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nvar getRootNodeHost = element => {\r\n if (!element.getRootNode) {\r\n return\r\n }\r\n var host = element.getRootNode().host;\r\n if (isString(host)) {\r\n return\r\n }\r\n return host\r\n};\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"<div>\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"<div>\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains(element) || contains(container, getRootNodeHost(element))\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"<div>\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\nexport var isElementInDom = $element => {\r\n var element = null === $element || void 0 === $element ? void 0 : $element.get(0);\r\n var shadowHost = null === element || void 0 === element ? void 0 : element.getRootNode().host;\r\n return !!$(shadowHost || element).closest(getWindow().document).length\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var _originalEvent$target;\r\n var delegateTarget = this._getDelegateTarget(e);\r\n var event = {\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n };\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _originalEvent$target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n event.target = path[0]\r\n }\r\n return this._fireEvent(event)\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport GlobalConfig from \"../core/config\";\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, _ref) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = _ref;\r\n var pointerEventStrategy = getStrategyFromGlobalConfig();\r\n if (pointerEventStrategy) {\r\n return pointerEventStrategy\r\n }\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\n\r\nfunction getStrategyFromGlobalConfig() {\r\n var eventStrategyName = GlobalConfig().pointerEventStrategy;\r\n return {\r\n \"mouse-and-touch\": MouseAndTouchStrategy,\r\n touch: TouchStrategy,\r\n mouse: MouseStrategy\r\n } [eventStrategyName]\r\n}\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = activeEmitters.indexOf(emitter);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar prevented = null;\r\nvar lastFiredEvent = null;\r\nvar onNodeRemove = () => {\r\n lastFiredEvent = null\r\n};\r\nvar clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n eventsEngine.on(this.getElement(), \"click\", clickHandler)\r\n },\r\n start: function(e) {\r\n prevented = null\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n});\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && (element = $target, $(element).is(\"input, textarea, select, button ,:focus, :focus *\"))) {\r\n resetActiveElement()\r\n }\r\n var element;\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result;\r\n if (options.renovated && options.transclude && this._element) {\r\n $result = $(\"<div>\").append(this._element).contents()\r\n } else {\r\n $result = this._renderCore(options)\r\n }\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"<div>\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\n\r\nfunction createOccurrenceMap(array) {\r\n return array.reduce((map, value) => {\r\n var _map$get;\r\n var count = (null !== (_map$get = map.get(value)) && void 0 !== _map$get ? _map$get : 0) + 1;\r\n map.set(value, count);\r\n return map\r\n }, new Map)\r\n}\r\nexport var wrapToArray = function(item) {\r\n return Array.isArray(item) ? item : [item]\r\n};\r\nexport var getUniqueValues = function(values) {\r\n return [...new Set(values)]\r\n};\r\nexport var getIntersection = function(firstArray, secondArray) {\r\n var toRemoveMap = createOccurrenceMap(secondArray);\r\n return firstArray.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return occurrencesCount\r\n })\r\n};\r\nexport var removeDuplicates = function() {\r\n var from = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var toRemove = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\r\n var toRemoveMap = createOccurrenceMap(toRemove);\r\n return from.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return !occurrencesCount\r\n })\r\n};\r\nexport var normalizeIndexes = function(items, indexPropName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var {\r\n useLegacyVisibleIndex: useLegacyVisibleIndex\r\n } = config();\r\n var currentIndex = 0;\r\n var shouldUpdateIndex = item => !isDefined(item[indexPropName]) && (!needIndexCallback || needIndexCallback(item));\r\n items.forEach(item => {\r\n var index = item[indexPropName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexPropName] = void 0\r\n }\r\n });\r\n if (!useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n while (indexedItems[currentIndex]) {\r\n currentIndex++\r\n }\r\n indexedItems[currentIndex] = [item];\r\n currentIndex++\r\n }\r\n })\r\n }\r\n currentIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n items.forEach(item => {\r\n if (index >= 0) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }\r\n};\r\nexport var groupBy = (array, getGroupName) => array.reduce((groupedResult, item) => {\r\n var _groupedResult$groupN;\r\n var groupName = getGroupName(item);\r\n groupedResult[groupName] = null !== (_groupedResult$groupN = groupedResult[groupName]) && void 0 !== _groupedResult$groupN ? _groupedResult$groupN : [];\r\n groupedResult[groupName].push(item);\r\n return groupedResult\r\n}, {});\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../element\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var addPublicElementNormalization = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var $container = $(options.container);\r\n return render(_extends({}, options, {\r\n container: getPublicElement($container)\r\n }))\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase)) {\r\n if (isFunction(integrationTemplate.render)) {\r\n integrationTemplate = addPublicElementNormalization(integrationTemplate)\r\n }\r\n if (!isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend({}, config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n config = extend({}, config);\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option(optionName)\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"<div>\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var focusTargets = $(this._focusTarget).toArray();\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && !focusTargets.includes(e.target);\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/byte_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function base64ToBytes(base64) {\r\n return new Uint8Array(atob(base64).split(\"\").map(s => s.charCodeAt(0)))\r\n}\r\nexport function hexToBytes(string) {\r\n var _a, _b;\r\n return new Uint8Array(null !== (_b = null === (_a = string.match(/.{1,2}/g)) || void 0 === _a ? void 0 : _a.map(byte => parseInt(byte, 16))) && void 0 !== _b ? _b : [])\r\n}\r\nexport function stringToBytes(string) {\r\n var bytes = new Uint8Array(string.length);\r\n for (var k = 0; k < string.length; k += 1) {\r\n bytes[k] = 255 & string.charCodeAt(k)\r\n }\r\n return bytes\r\n}\r\nexport function wordsToBytes(words) {\r\n var bytes = new Uint8Array(4 * words.length);\r\n for (var k = 0; k < bytes.length; k += 1) {\r\n bytes[k] = words[k >> 2] >>> 8 * (3 - k % 4)\r\n }\r\n return bytes\r\n}\r\nexport function bytesToWords(bytes) {\r\n var words = new Uint32Array(1 + (bytes.length - 1 >> 2));\r\n for (var k = 0; k < bytes.length; k += 1) {\r\n words[k >> 2] |= bytes[k] << 8 * (3 - k % 4)\r\n }\r\n return words\r\n}\r\nexport function wordsToHex(words) {\r\n return [...words].map(w => w.toString(16).padStart(8, \"0\")).join(\"\")\r\n}\r\nexport function bytesToHex(bytes) {\r\n return [...bytes].map(b => b.toString(16).padStart(2, \"0\")).join(\"\")\r\n}\r\nexport function leftRotate(x, n) {\r\n return (x << n | x >>> 32 - n) >>> 0\r\n}\r\nexport function concatBytes(a, b) {\r\n var result = new Uint8Array(a.length + b.length);\r\n result.set(a, 0);\r\n result.set(b, a.length);\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/key.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PUBLIC_KEY = {\r\n e: 65537,\r\n n: new Uint8Array([200, 219, 153, 203, 140, 7, 228, 253, 193, 243, 62, 137, 139, 60, 68, 242, 48, 142, 113, 88, 185, 235, 253, 105, 80, 74, 32, 170, 96, 74, 111, 250, 7, 205, 154, 3, 146, 115, 153, 53, 45, 132, 123, 56, 61, 208, 184, 201, 63, 24, 109, 223, 0, 179, 169, 102, 139, 224, 73, 233, 45, 173, 138, 66, 98, 88, 69, 76, 177, 111, 113, 218, 192, 33, 101, 152, 25, 134, 34, 173, 32, 82, 230, 44, 247, 200, 253, 170, 192, 246, 30, 12, 96, 205, 100, 249, 181, 93, 0, 231])\r\n};\r\nexport var INTERNAL_USAGE_ID = \"2D293FRQFEus9BTrBCkD5A\";\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/types.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TokenKind;\r\n! function(TokenKind) {\r\n TokenKind.corrupted = \"corrupted\";\r\n TokenKind.verified = \"verified\";\r\n TokenKind.internal = \"internal\"\r\n}(TokenKind || (TokenKind = {}));\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/pkcs1.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n concatBytes,\r\n hexToBytes\r\n} from \"./byte_utils\";\r\nimport {\r\n PUBLIC_KEY\r\n} from \"./key\";\r\nvar ASN1_SHA1 = \"3021300906052b0e03021a05000414\";\r\nexport function pad(hash) {\r\n var dataLength = (8 * PUBLIC_KEY.n.length + 6) / 8;\r\n var data = concatBytes(hexToBytes(ASN1_SHA1), hash);\r\n if (data.length + 10 > dataLength) {\r\n throw Error(\"Key is too short for SHA1 signing algorithm\")\r\n }\r\n var padding = new Uint8Array(dataLength - data.length);\r\n padding.fill(255, 0, padding.length - 1);\r\n padding[0] = 0;\r\n padding[1] = 1;\r\n padding[padding.length - 1] = 0;\r\n return concatBytes(padding, data)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/sha1.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n bytesToWords,\r\n leftRotate,\r\n stringToBytes,\r\n wordsToBytes\r\n} from \"./byte_utils\";\r\nexport function preprocess(text) {\r\n var bytes = new Uint8Array(text.length + 1);\r\n bytes.set(stringToBytes(text));\r\n bytes[bytes.length - 1] = 128;\r\n var words = bytesToWords(new Uint8Array(bytes));\r\n var result = new Uint32Array(16 * Math.ceil((words.length + 2) / 16));\r\n result.set(words, 0);\r\n result[result.length - 1] = 8 * (bytes.length - 1);\r\n return result\r\n}\r\nexport function sha1(text) {\r\n var message = preprocess(text);\r\n var h = new Uint32Array([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\r\n for (var i = 0; i < message.length; i += 16) {\r\n var w = new Uint32Array(80);\r\n for (var j = 0; j < 16; j += 1) {\r\n w[j] = message[i + j]\r\n }\r\n for (var _j = 16; _j < 80; _j += 1) {\r\n var n = w[_j - 3] ^ w[_j - 8] ^ w[_j - 14] ^ w[_j - 16];\r\n w[_j] = n << 1 | n >>> 31\r\n }\r\n var a = h[0];\r\n var b = h[1];\r\n var c = h[2];\r\n var d = h[3];\r\n var e = h[4];\r\n for (var _j2 = 0; _j2 < 80; _j2 += 1) {\r\n var [f, k] = _j2 < 20 ? [b & c | ~b & d, 1518500249] : _j2 < 40 ? [b ^ c ^ d, 1859775393] : _j2 < 60 ? [b & c | b & d | c & d, 2400959708] : [b ^ c ^ d, 3395469782];\r\n var temp = leftRotate(a, 5) + f + e + k + w[_j2];\r\n e = d;\r\n d = c;\r\n c = leftRotate(b, 30);\r\n b = a;\r\n a = temp\r\n }\r\n h[0] += a;\r\n h[1] += b;\r\n h[2] += c;\r\n h[3] += d;\r\n h[4] += e\r\n }\r\n return wordsToBytes(h)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/license_validation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport errors from \"../../../core/errors\";\r\nimport {\r\n version as packageVersion\r\n} from \"../../../core/version\";\r\nimport {\r\n base64ToBytes\r\n} from \"./byte_utils\";\r\nimport {\r\n INTERNAL_USAGE_ID,\r\n PUBLIC_KEY\r\n} from \"./key\";\r\nimport {\r\n pad\r\n} from \"./pkcs1\";\r\nimport {\r\n compareSignatures\r\n} from \"./rsa_bigint\";\r\nimport {\r\n sha1\r\n} from \"./sha1\";\r\nimport {\r\n TokenKind\r\n} from \"./types\";\r\nvar SPLITTER = \".\";\r\nvar FORMAT = 1;\r\nvar RTM_MIN_PATCH_VERSION = 3;\r\nvar GENERAL_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"general\"\r\n};\r\nvar VERIFICATION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"verification\"\r\n};\r\nvar DECODING_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"decoding\"\r\n};\r\nvar DESERIALIZATION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"deserialization\"\r\n};\r\nvar PAYLOAD_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"payload\"\r\n};\r\nvar VERSION_ERROR = {\r\n kind: TokenKind.corrupted,\r\n error: \"version\"\r\n};\r\nvar validationPerformed = false;\r\n\r\nfunction verifySignature(_ref) {\r\n var {\r\n text: text,\r\n signature: encodedSignature\r\n } = _ref;\r\n return compareSignatures({\r\n key: PUBLIC_KEY,\r\n signature: base64ToBytes(encodedSignature),\r\n actual: pad(sha1(text))\r\n })\r\n}\r\nexport function parseLicenseKey(encodedKey) {\r\n if (void 0 === encodedKey) {\r\n return GENERAL_ERROR\r\n }\r\n var parts = encodedKey.split(SPLITTER);\r\n if (2 !== parts.length || 0 === parts[0].length || 0 === parts[1].length) {\r\n return GENERAL_ERROR\r\n }\r\n if (!verifySignature({\r\n text: parts[0],\r\n signature: parts[1]\r\n })) {\r\n return VERIFICATION_ERROR\r\n }\r\n var decodedPayload = \"\";\r\n try {\r\n decodedPayload = atob(parts[0])\r\n } catch (_a) {\r\n return DECODING_ERROR\r\n }\r\n var payload = {};\r\n try {\r\n payload = JSON.parse(decodedPayload)\r\n } catch (_b) {\r\n return DESERIALIZATION_ERROR\r\n }\r\n var {\r\n customerId: customerId,\r\n maxVersionAllowed: maxVersionAllowed,\r\n format: format,\r\n internalUsageId: internalUsageId\r\n } = payload, rest = __rest(payload, [\"customerId\", \"maxVersionAllowed\", \"format\", \"internalUsageId\"]);\r\n if (void 0 !== internalUsageId) {\r\n return {\r\n kind: TokenKind.internal,\r\n internalUsageId: internalUsageId\r\n }\r\n }\r\n if (void 0 === customerId || void 0 === maxVersionAllowed || void 0 === format) {\r\n return PAYLOAD_ERROR\r\n }\r\n if (format !== FORMAT) {\r\n return VERSION_ERROR\r\n }\r\n return {\r\n kind: TokenKind.verified,\r\n payload: _extends({\r\n customerId: customerId,\r\n maxVersionAllowed: maxVersionAllowed\r\n }, rest)\r\n }\r\n}\r\n\r\nfunction getLicenseCheckParams(_ref2) {\r\n var {\r\n licenseKey: licenseKey,\r\n version: version\r\n } = _ref2;\r\n var preview = false;\r\n try {\r\n var [major, minor, patch] = version.split(\".\").map(Number);\r\n preview = isNaN(patch) || patch < RTM_MIN_PATCH_VERSION;\r\n if (!licenseKey) {\r\n return {\r\n preview: preview,\r\n error: \"W0019\"\r\n }\r\n }\r\n var license = parseLicenseKey(licenseKey);\r\n if (license.kind === TokenKind.corrupted) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n if (license.kind === TokenKind.internal) {\r\n return {\r\n preview: preview,\r\n internal: true,\r\n error: license.internalUsageId === INTERNAL_USAGE_ID ? void 0 : \"W0020\"\r\n }\r\n }\r\n if (!(major && minor)) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n if (10 * major + minor > license.payload.maxVersionAllowed) {\r\n return {\r\n preview: preview,\r\n error: \"W0020\"\r\n }\r\n }\r\n return {\r\n preview: preview,\r\n error: void 0\r\n }\r\n } catch (_a) {\r\n return {\r\n preview: preview,\r\n error: \"W0021\"\r\n }\r\n }\r\n}\r\nexport function validateLicense(licenseKey) {\r\n var version = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : packageVersion;\r\n if (validationPerformed) {\r\n return\r\n }\r\n validationPerformed = true;\r\n var {\r\n preview: preview,\r\n internal: internal,\r\n error: error\r\n } = getLicenseCheckParams({\r\n licenseKey: licenseKey,\r\n version: version\r\n });\r\n if (error) {\r\n errors.log(preview ? \"W0022\" : error);\r\n return\r\n }\r\n if (preview && !internal) {\r\n errors.log(\"W0022\")\r\n }\r\n}\r\nexport function peekValidationPerformed() {\r\n return validationPerformed\r\n}\r\nexport function setLicenseCheckSkipCondition() {}\r\nexport default {\r\n validateLicense: validateLicense\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/license/rsa_bigint.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compareSignatures(args) {\r\n try {\r\n var zero = BigInt(0);\r\n var one = BigInt(1);\r\n var eight = BigInt(8);\r\n var bigIntFromBytes = bytes => bytes.reduce((acc, cur) => (acc << eight) + BigInt(cur), zero);\r\n var actual = bigIntFromBytes(args.actual);\r\n var signature = bigIntFromBytes(args.signature);\r\n var exponent = BigInt(args.key.e);\r\n var modulus = bigIntFromBytes(args.key.n);\r\n var expected = ((base, exponent, modulus) => {\r\n var result = one;\r\n var b = base;\r\n var e = exponent;\r\n while (e) {\r\n if (e & one) {\r\n result = result * b % modulus\r\n }\r\n b = b * b % modulus;\r\n e >>= one\r\n }\r\n return result\r\n })(signature, exponent, modulus);\r\n return expected === actual\r\n } catch (_a) {\r\n return true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n addShadowDomStyles\r\n} from \"./utils/shadow_dom\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nimport license, {\r\n peekValidationPerformed\r\n} from \"../__internal/core/license/license_validation\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options);\r\n var validationAlreadyPerformed = peekValidationPerformed();\r\n license.validateLicense(config().licenseKey);\r\n if (!validationAlreadyPerformed && peekValidationPerformed()) {\r\n config({\r\n licenseKey: \"\"\r\n })\r\n }\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers();\r\n addShadowDomStyles(this.$element())\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (synchronizableOptions.includes(name)) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _isFocusTarget: function(element) {\r\n var focusTargets = $(this._focusTarget()).toArray();\r\n return focusTargets.includes(element)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return this._findActiveTarget(activeElement)\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (this._isFocusTarget(target)) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePushAggregation\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePushAggregation\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"langParams\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n var isEmptyArray = Array.isArray(data) && !data.length;\r\n if (!isDefined(data) || isEmptyArray) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n var changingArgs = {\r\n changes: changes\r\n };\r\n this._eventsStrategy.fireEvent(\"changing\", [changingArgs]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n if (changingArgs.postProcessChanges) {\r\n dataSourceChanges = changingArgs.postProcessChanges(dataSourceChanges)\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n if (this._store && !isEmptyObject(null === storeLoadOptions || void 0 === storeLoadOptions ? void 0 : storeLoadOptions.langParams)) {\r\n this._store._langParams = _extends({}, this._store._langParams, storeLoadOptions.langParams)\r\n }\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n store._clearCache();\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/collection/data_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataControllerMock = {\r\n load: () => Deferred().reject(),\r\n loadSingle: () => Deferred().reject(),\r\n loadFromStore: () => Deferred().reject(),\r\n loadNextPage: () => Deferred().reject(),\r\n loadOptions: noop,\r\n userData: noop,\r\n cancel: noop,\r\n cancelAll: noop,\r\n filter: noop,\r\n addSearchFilter: noop,\r\n group: noop,\r\n paginate: noop,\r\n pageSize: noop,\r\n pageIndex: noop,\r\n resetDataSourcePageIndex: noop,\r\n totalCount: noop,\r\n isLastPage: noop,\r\n isLoading: noop,\r\n isLoaded: noop,\r\n searchValue: noop,\r\n searchOperation: noop,\r\n searchExpr: noop,\r\n select: noop,\r\n key: noop,\r\n keyOf: noop,\r\n store: noop,\r\n items: noop,\r\n applyMapFunction: noop,\r\n getDataSource: noop,\r\n reload: noop,\r\n on: noop,\r\n off: noop\r\n};\r\nclass DataController {\r\n constructor(dataSource) {\r\n if (!dataSource) {\r\n return DataControllerMock\r\n }\r\n this._dataSource = dataSource\r\n }\r\n load() {\r\n return this._dataSource.load()\r\n }\r\n loadSingle(propName, propValue) {\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = this.key()\r\n }\r\n return this._dataSource.loadSingle(propName, propValue)\r\n }\r\n loadFromStore(loadOptions) {\r\n return this.store().load(loadOptions)\r\n }\r\n loadNextPage() {\r\n this.pageIndex(1 + this.pageIndex());\r\n return this.load()\r\n }\r\n loadOptions() {\r\n return this._dataSource.loadOptions()\r\n }\r\n userData() {\r\n return this._dataSource._userData\r\n }\r\n cancel(operationId) {\r\n this._dataSource.cancel(operationId)\r\n }\r\n cancelAll() {\r\n this._dataSource.cancelAll()\r\n }\r\n filter(filter) {\r\n return this._dataSource.filter(filter)\r\n }\r\n addSearchFilter(storeLoadOptions) {\r\n this._dataSource._addSearchFilter(storeLoadOptions)\r\n }\r\n group(group) {\r\n return this._dataSource.group(group)\r\n }\r\n paginate() {\r\n return this._dataSource.paginate()\r\n }\r\n pageSize() {\r\n return this._dataSource._pageSize\r\n }\r\n pageIndex(pageIndex) {\r\n return this._dataSource.pageIndex(pageIndex)\r\n }\r\n resetDataSourcePageIndex() {\r\n if (this.pageIndex()) {\r\n this.pageIndex(0);\r\n this.load()\r\n }\r\n }\r\n totalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n isLastPage() {\r\n return this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded()\r\n }\r\n searchValue(value) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchValue()\r\n }\r\n return this._dataSource.searchValue(value)\r\n }\r\n searchOperation(operation) {\r\n return this._dataSource.searchOperation(operation)\r\n }\r\n searchExpr(expr) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchExpr()\r\n }\r\n return this._dataSource.searchExpr(expr)\r\n }\r\n select() {\r\n return this._dataSource.select(...arguments)\r\n }\r\n key() {\r\n return this._dataSource.key()\r\n }\r\n keyOf(item) {\r\n return this.store().keyOf(item)\r\n }\r\n store() {\r\n return this._dataSource.store()\r\n }\r\n items() {\r\n return this._dataSource.items()\r\n }\r\n applyMapFunction(data) {\r\n return this._dataSource._applyMapFunction(data)\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n reload() {\r\n return this._dataSource.reload()\r\n }\r\n on(event, handler) {\r\n this._dataSource.on(event, handler)\r\n }\r\n off(event, handler) {\r\n this._dataSource.off(event, handler)\r\n }\r\n}\r\nexport default DataController;\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nimport DataController from \"./ui/collection/data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n },\r\n _initDataController: function() {\r\n var _this$option;\r\n var dataController = null === (_this$option = this.option) || void 0 === _this$option ? void 0 : _this$option.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this.readyWatcher = function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this);\r\n this._dataSource.on(\"loadingChanged\", this.readyWatcher)\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler);\r\n if (this._dataSource._eventsStrategy) {\r\n this._dataSource._eventsStrategy.off(\"loadingChanged\", this.readyWatcher)\r\n }\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"<div>\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._$element.attr(\"aria-disabled\", !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport var defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxDateRangeBox-invalidStartDateMessage\": \"Start value must be a date\",\r\n \"dxDateRangeBox-invalidEndDateMessage\": \"End value must be a date\",\r\n \"dxDateRangeBox-startDateOutOfRangeMessage\": \"Start date is out of range\",\r\n \"dxDateRangeBox-endDateOutOfRangeMessage\": \"End date is out of range\",\r\n \"dxDateRangeBox-startDateLabel\": \"Start Date\",\r\n \"dxDateRangeBox-endDateLabel\": \"End Date\",\r\n \"dxFileUploader-selectFile\": \"Select a file\",\r\n \"dxFileUploader-dropFile\": \"or Drop a file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"KB\",\r\n \"dxFileUploader-Mb\": \"MB\",\r\n \"dxFileUploader-Gb\": \"GB\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserText\": \"Use {0} to display columns\",\r\n \"dxDataGrid-emptyHeaderWithGroupPanelText\": \"Drag a column from the group panel here\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\": \"Use {0} or drag a column from the group panel\",\r\n \"dxDataGrid-emptyHeaderColumnChooserText\": \"column chooser\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-ariaSearchBox\": \"Search box\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-ariaNotSortedColumn\": \"Not sorted column\",\r\n \"dxDataGrid-ariaSortedAscendingColumn\": \"Column sorted in ascending order\",\r\n \"dxDataGrid-ariaSortedDescendingColumn\": \"Column sorted in descending order\",\r\n \"dxDataGrid-ariaSortIndex\": \"Sort index {0}\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows to {0}\",\r\n \"dxDataGrid-exportAll\": \"Export all data to {0}\",\r\n \"dxDataGrid-headerFilterLabel\": \"Filter options\",\r\n \"dxDataGrid-headerFilterIndicatorLabel\": \"Show filter options for column '{0}'\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaColumnHeader\": \"Column header\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaError\": \"Error\",\r\n \"dxDataGrid-ariaRevertButton\": \"Press Escape to discard the changes\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaModifiedCell\": \"Modified\",\r\n \"dxDataGrid-ariaDeletedCell\": \"Deleted\",\r\n \"dxDataGrid-ariaEditableCell\": \"Editable\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaCollapsedRow\": \"Collapsed row\",\r\n \"dxDataGrid-ariaExpandedRow\": \"Expanded row\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid with {0} rows and {1} columns\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-ariaEditForm\": \"Edit form\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list with {0} rows and {1} columns\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSize\": \"Items per page: {0}\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPager-page\": \"Page {0}\",\r\n \"dxPager-prevPage\": \"Previous Page\",\r\n \"dxPager-nextPage\": \"Next Page\",\r\n \"dxPager-ariaLabel\": \"Page Navigation\",\r\n \"dxPager-ariaPageSize\": \"Page size\",\r\n \"dxPager-ariaPageNumber\": \"Page number\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditTitle\": \"Edit Recurring Appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteTitle\": \"Delete Recurring Appointment\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxCalendar-previousMonthButtonLabel\": \"Previous month\",\r\n \"dxCalendar-previousYearButtonLabel\": \"Previous year\",\r\n \"dxCalendar-previousDecadeButtonLabel\": \"Previous decade\",\r\n \"dxCalendar-previousCenturyButtonLabel\": \"Previous century\",\r\n \"dxCalendar-nextMonthButtonLabel\": \"Next month\",\r\n \"dxCalendar-nextYearButtonLabel\": \"Next year\",\r\n \"dxCalendar-nextDecadeButtonLabel\": \"Next decade\",\r\n \"dxCalendar-nextCenturyButtonLabel\": \"Next century\",\r\n \"dxCalendar-captionMonthLabel\": \"Month selection\",\r\n \"dxCalendar-captionYearLabel\": \"Year selection\",\r\n \"dxCalendar-captionDecadeLabel\": \"Decade selection\",\r\n \"dxCalendar-captionCenturyLabel\": \"Century selection\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"<enter a value>\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-dialogUpdateImageCaption\": \"Update Image\",\r\n \"dxHtmlEditor-dialogImageUpdateButton\": \"Update\",\r\n \"dxHtmlEditor-dialogImageAddButton\": \"Add\",\r\n \"dxHtmlEditor-dialogImageSpecifyUrl\": \"From the Web\",\r\n \"dxHtmlEditor-dialogImageSelectFile\": \"From This Device\",\r\n \"dxHtmlEditor-dialogImageKeepAspectRatio\": \"Keep Aspect Ratio\",\r\n \"dxHtmlEditor-dialogImageEncodeToBase64\": \"Encode to Base64\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxHtmlEditor-borderStyleNone\": \"none\",\r\n \"dxHtmlEditor-borderStyleHidden\": \"hidden\",\r\n \"dxHtmlEditor-borderStyleDotted\": \"dotted\",\r\n \"dxHtmlEditor-borderStyleDashed\": \"dashed\",\r\n \"dxHtmlEditor-borderStyleSolid\": \"solid\",\r\n \"dxHtmlEditor-borderStyleDouble\": \"double\",\r\n \"dxHtmlEditor-borderStyleGroove\": \"groove\",\r\n \"dxHtmlEditor-borderStyleRidge\": \"ridge\",\r\n \"dxHtmlEditor-borderStyleInset\": \"inset\",\r\n \"dxHtmlEditor-borderStyleOutset\": \"outset\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-editingDownloadSingleItemErrorMessage\": \"Item was not downloaded\",\r\n \"dxFileManager-editingDownloadMultipleItemsErrorMessage\": \"{0} items were not downloaded\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop a file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. How would you like to proceed?\",\r\n \"dxGantt-dialogDeleteDependenciesMessage\": \"Delete the dependency relations\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\": \"Move the task and keep the dependencies\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\",\r\n \"dxGallery-itemName\": \"Gallery item\",\r\n \"dxMultiView-elementAriaRoleDescription\": \"MultiView\",\r\n \"dxMultiView-elementAriaLabel\": \"Use the arrow keys or swipe to navigate between views\",\r\n \"dxMultiView-itemAriaRoleDescription\": \"View\",\r\n \"dxMultiView-itemAriaLabel\": \"{0} of {1}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => {\r\n var _Object$entries$find;\r\n return localeData[locale] || (null === locale || void 0 === locale ? void 0 : locale.toLowerCase) && (null === (_Object$entries$find = Object.entries(localeData).find(_ref => {\r\n var [key] = _ref;\r\n return key.toLowerCase() === locale.toLowerCase()\r\n })) || void 0 === _Object$entries$find ? void 0 : _Object$entries$find[1]) || {}\r\n};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._enterKeyHandler(e)\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _enterKeyHandler: function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var itemData = this._getItemData($itemElement);\r\n if (null !== itemData && void 0 !== itemData && itemData.onClick) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements)\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _isDisabled: $element => $element && \"true\" === $($element).attr(\"aria-disabled\"),\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n var {\r\n selectOnFocus: selectOnFocus\r\n } = this.option();\r\n var isTargetDisabled = this._isDisabled($target);\r\n if (selectOnFocus && !isTargetDisabled) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _getPointerEvent: () => pointerEvents.down,\r\n _attachClickEvent() {\r\n var itemSelector = this._itemSelector();\r\n var pointerEvent = this._getPointerEvent();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerEventNamespace = addNamespace(pointerEvent, this.NAME);\r\n var pointerAction = new Action(args => {\r\n var {\r\n event: event\r\n } = args;\r\n this._itemPointerDownHandler(event)\r\n });\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, e => this._itemClickHandler(e));\r\n eventsEngine.on(this._itemContainer(), pointerEventNamespace, itemSelector, e => {\r\n pointerAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n })\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _getItemsContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _setAttributes($element) {\r\n var attributes = _extends({}, this.option(\"_itemAttributes\"));\r\n var {\r\n class: customClassValue\r\n } = attributes;\r\n if (customClassValue) {\r\n var currentClassValue = $element.get(0).className;\r\n attributes.class = [currentClassValue, customClassValue].join(\" \")\r\n }\r\n $element.attr(attributes)\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._getItemsContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n this._setAttributes($itemFrame);\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"<div>\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: this._onItemTemplateRendered(itemTemplate, renderArgs)\r\n })\r\n },\r\n _onItemTemplateRendered: function() {\r\n return noop\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"<div>\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsSize(dimension, items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n if (\"width\" === dimension) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n } else if (\"height\" === dimension) {\r\n result += getOuterHeight(item, includeMargin || false)\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" and \"endDayHour\" options must be integers in the [0, 24] range, with \"endDayHour\" being greater than \"startDayHour\".',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n E1061: 'The \"offset\" option must be an integer in the [-1440, 1440] range, divisible by 5 without a remainder.',\r\n E1062: 'The \"cellDuration\" must be a positive integer, evenly dividing the (\"endDayHour\" - \"startDayHour\") interval into minutes.',\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\",\r\n W1021: \"The '{0}' is not rendered because none of the DOM elements match the value of the \\\"container\\\" property.\",\r\n W1022: \"{0} JSON parsing error: '{1}'\",\r\n W1023: \"Appointments require unique keys. Otherwise, the agenda view may not work correctly.\",\r\n W1024: \"The client-side export is enabled. Implement the 'onExporting' function.\",\r\n W1025: \"'scrolling.mode' is set to 'virtual' or 'infinite'. Specify the height of the component.\"\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return this._getPlainItems().indexOf(itemData)\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class SelectionStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n }\r\n _clearItemKeys() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n }\r\n validate() {}\r\n _setOption(name, value) {\r\n this.options[name] = value\r\n }\r\n onSelectionChanged() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n }\r\n equalKeys(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n }\r\n getSelectableItems(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n }\r\n _clearSelection(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n }\r\n _removeTemplateProperty(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n }\r\n _loadFilteredData(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done((function(items) {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n })).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n }\r\n updateSelectedItemKeyHash(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n }\r\n _isAnyItemSelected(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n }\r\n _getFullSelectAllState() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null !== item && void 0 !== item && item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n }\r\n _getVisibleSelectAllState() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class DeferredStrategy extends SelectionStrategy {\r\n getSelectedItems() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n }\r\n getSelectedItemKeys() {\r\n var d = new Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i], isSelectAll, !preserve)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n setSelectedItems(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n isItemDataSelected(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n }\r\n isItemKeySelected(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n }\r\n _getKeyExpr() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n }\r\n _normalizeKey(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n }\r\n _getFilterByKey(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n }\r\n addSelectedItem(key, isSelectAll, skipFilter) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter, isSelectAll, skipFilter)\r\n }\r\n removeSelectedItem(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n }\r\n validate() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n }\r\n _findSubFilter(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _isLastSubFilter(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n }\r\n _addFilterOperator(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n }\r\n _denormalizeFilter(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n }\r\n _isOnlyNegativeFiltersLeft(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n } else {\r\n return \"and\" === filterItem\r\n }\r\n })\r\n }\r\n _addSelectionFilter(isDeselect, filter, isSelectAll, skipFilter) {\r\n var _selectionFilter;\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (null !== (_selectionFilter = selectionFilter) && void 0 !== _selectionFilter && _selectionFilter.length && !skipFilter) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved\r\n }\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation);\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n }\r\n _normalizeFilter(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n }\r\n _removeFilterByIndex(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n }\r\n _isSimpleKeyFilter(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n }\r\n _isKeyFilter(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n }\r\n _hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n _removeSameFilter(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n }\r\n getSelectAllState() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var componentFilter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n var filter = componentFilter ? [componentFilter, \"and\", selectionFilter] : selectionFilter;\r\n return this._loadFilteredData(filter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var forceCombinedFilter = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if ((forceCombinedFilter || isSelectAll) && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.standard.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n getUniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default class StandardStrategy extends SelectionStrategy {\r\n constructor(options) {\r\n super(options);\r\n this._initSelectedItemKeyHash()\r\n }\r\n _initSelectedItemKeyHash() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n }\r\n getSelectedItemKeys() {\r\n return this.options.selectedItemKeys.slice(0)\r\n }\r\n getSelectedItems() {\r\n return this.options.selectedItems.slice(0)\r\n }\r\n _preserveSelectionUpdate(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n }\r\n _batchRemoveSelectedItems(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n _loadSelectedItemsCore(keys, isDeselect, isSelectAll, filter) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var deferred = new Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter, forceCombinedFilter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n }\r\n _replaceSelectionUpdate(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n }\r\n _warnOnIncorrectKeys(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n }\r\n _isMultiSelectEnabled() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n }\r\n _requestInProgress() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n }\r\n _concatRequestsItems(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n }\r\n _collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n }\r\n _updateKeysByLastRequestData(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n }\r\n _loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var that = this;\r\n var deferred = new Deferred;\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter, forceCombinedFilter).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : false;\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys, forceCombinedFilter);\r\n deferred.done((function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n }));\r\n return deferred\r\n }\r\n addSelectedItem(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n }\r\n _getSelectedIndexByKey(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _getSelectedIndexByHash(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n }\r\n _indexOfSelectedItemKey(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n }\r\n _shiftSelectedKeyIndices(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n }\r\n removeSelectedItem(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n }\r\n _updateAddedItemKeys(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n }\r\n _updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n }\r\n _isItemSelectionInProgress(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n }\r\n _getKeyHash(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n }\r\n setSelectedItems(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n }\r\n isItemDataSelected(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n }\r\n isItemKeySelected(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n }\r\n getSelectAllState(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var keyExpr = this.options.key();\r\n var keys = this.getSelectedItemKeys();\r\n var filter = this.options.filter();\r\n if (!keys.length) {\r\n return Deferred().resolve([])\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(keyExpr, filter, true);\r\n return this._loadFilteredData(combinedFilter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport default class Selection {\r\n constructor(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n }\r\n validate() {\r\n this._selectionStrategy.validate()\r\n }\r\n getSelectedItemKeys() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n }\r\n getSelectedItems() {\r\n return this._selectionStrategy.getSelectedItems()\r\n }\r\n selectionFilter(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n }\r\n setSelection(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n }\r\n select(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n }\r\n deselect(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n _addSelectedItem(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n }\r\n _removeSelectedItem(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n }\r\n _setSelectedItems(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n }\r\n onSelectionChanged() {\r\n this._selectionStrategy.onSelectionChanged()\r\n }\r\n changeItemSelection(itemIndex, keys, setFocusOnly) {\r\n var _this$options$allowLo, _this$options;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var allowLoadByRange = null === (_this$options$allowLo = (_this$options = this.options).allowLoadByRange) || void 0 === _this$options$allowLo ? void 0 : _this$options$allowLo.call(_this$options);\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (allowLoadByRange && isDefined(item)) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex;\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n }\r\n isDataItem(item) {\r\n return this.options.isSelectableItem(item)\r\n }\r\n isSelectable() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n }\r\n isItemDataSelected(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n }\r\n isItemSelected(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n }\r\n _resetItemSelectionWhenShiftKeyPressed() {\r\n delete this._shiftFocusedItemIndex\r\n }\r\n _resetFocusedItemIndex() {\r\n this._focusedItemIndex = -1\r\n }\r\n changeItemSelectionWhenShiftKeyInVirtualPaging(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = new Deferred;\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n }\r\n changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n }\r\n clearSelectedItems() {\r\n this._setSelectedItems([], [])\r\n }\r\n selectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n }\r\n deselectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n }\r\n _onePageSelectAll(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n getSelectAllState(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selectionStrategy.loadSelectedItemsWithFilter()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataController.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n var _dataController$loadO;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_dataController$loadO = dataController.loadOptions()) || void 0 === _dataController$loadO ? void 0 : _dataController$loadO.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataController.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === (_itemSelectPromise = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelectionAttribute($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelectionAttribute: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidget from \"./ui.collection_widget.edit\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n var _this$_dataController;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, null === (_this$_dataController = this._dataController) || void 0 === _this$_dataController ? void 0 : _this$_dataController.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*<svg[^>]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_:]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"<img>\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"<div>\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"<link rel=stylesheet>\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterialBased(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"<div>\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterialBased(themeName) {\r\n return isMaterial(themeName) || isFluent(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isFluent(themeName) {\r\n return isTheme(\"fluent\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n isFluent: isFluent,\r\n isMaterialBased: isMaterialBased,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = Callbacks();\r\n","/**\r\n * DevExtreme (esm/ui/accordion.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n setHeight,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n isMaterialBased\r\n} from \"./themes\";\r\nvar ACCORDION_CLASS = \"dx-accordion\";\r\nvar ACCORDION_WRAPPER_CLASS = \"dx-accordion-wrapper\";\r\nvar ACCORDION_ITEM_CLASS = \"dx-accordion-item\";\r\nvar ACCORDION_ITEM_OPENED_CLASS = \"dx-accordion-item-opened\";\r\nvar ACCORDION_ITEM_CLOSED_CLASS = \"dx-accordion-item-closed\";\r\nvar ACCORDION_ITEM_TITLE_CLASS = \"dx-accordion-item-title\";\r\nvar ACCORDION_ITEM_BODY_CLASS = \"dx-accordion-item-body\";\r\nvar ACCORDION_ITEM_TITLE_CAPTION_CLASS = \"dx-accordion-item-title-caption\";\r\nvar ACCORDION_ITEM_DATA_KEY = \"dxAccordionItemData\";\r\nvar Accordion = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + ACCORDION_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n height: void 0,\r\n itemTitleTemplate: \"title\",\r\n onItemTitleClick: null,\r\n selectedIndex: 0,\r\n collapsible: false,\r\n multiple: false,\r\n animationDuration: 300,\r\n deferRendering: true,\r\n selectByClick: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"tab\"\r\n },\r\n _animationEasing: \"ease\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n animationDuration: 200,\r\n _animationEasing: \"cubic-bezier(0.4, 0, 0.2, 1)\"\r\n }\r\n }])\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.option(\"selectionRequired\", !this.option(\"collapsible\"));\r\n this.option(\"selectionMode\", this.option(\"multiple\") ? \"multiple\" : \"single\");\r\n var $element = this.$element();\r\n $element.addClass(ACCORDION_CLASS);\r\n this._$container = $(\"<div>\").addClass(ACCORDION_WRAPPER_CLASS);\r\n $element.append(this._$container)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n var $iconElement = getImageContainer(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if (isDefined(data.title) && !isPlainObject(data.title)) {\r\n $container.append(domAdapter.createTextNode(data.title))\r\n }\r\n } else if (isDefined(data)) {\r\n $container.text(String(data))\r\n }\r\n $container.wrapInner($(\"<div>\").addClass(ACCORDION_ITEM_TITLE_CAPTION_CLASS))\r\n }), [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this._deferredTemplateItems = [];\r\n this.callBase();\r\n this.setAria({\r\n role: \"tablist\",\r\n multiselectable: this.option(\"multiple\")\r\n });\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._renderSelection(selectedItemIndices, [])\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n when.apply(this, this._deferredTemplateItems).done(() => {\r\n this._updateItemHeights(true)\r\n })\r\n },\r\n _itemDataKey: function() {\r\n return ACCORDION_ITEM_DATA_KEY\r\n },\r\n _itemClass: function() {\r\n return ACCORDION_ITEM_CLASS\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _itemTitles: function() {\r\n return this._itemElements().find(\".\" + ACCORDION_ITEM_TITLE_CLASS)\r\n },\r\n _itemContents: function() {\r\n return this._itemElements().find(\".\" + ACCORDION_ITEM_BODY_CLASS)\r\n },\r\n _getItemData: function(target) {\r\n return $(target).parent().data(this._itemDataKey()) || this.callBase.apply(this, arguments)\r\n },\r\n _executeItemRenderAction: function(itemData) {\r\n if (itemData.type) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemSelectHandler: function(e) {\r\n if ($(e.target).closest(this._itemContents()).length) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderItemContent: function(args) {\r\n this._deferredTemplateItems[args.index] = new Deferred;\r\n var itemTitle = this.callBase(extend({}, args, {\r\n contentClass: ACCORDION_ITEM_TITLE_CLASS,\r\n templateProperty: \"titleTemplate\",\r\n defaultTemplateName: this.option(\"itemTitleTemplate\")\r\n }));\r\n this._attachItemTitleClickAction(itemTitle);\r\n var deferred = new Deferred;\r\n if (isDefined(this._deferredItems[args.index])) {\r\n this._deferredItems[args.index] = deferred\r\n } else {\r\n this._deferredItems.push(deferred)\r\n }\r\n if (!this.option(\"deferRendering\") || this._getSelectedItemIndices().indexOf(args.index) >= 0) {\r\n deferred.resolve()\r\n }\r\n deferred.done(this.callBase.bind(this, extend({}, args, {\r\n contentClass: ACCORDION_ITEM_BODY_CLASS,\r\n container: getPublicElement($(\"<div>\").appendTo($(itemTitle).parent()))\r\n })))\r\n },\r\n _onItemTemplateRendered: function(_, renderArgs) {\r\n return () => {\r\n var item = this._deferredTemplateItems[renderArgs.index];\r\n item && item.resolve()\r\n }\r\n },\r\n _attachItemTitleClickAction: function(itemTitle) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(itemTitle, eventName);\r\n eventsEngine.on(itemTitle, eventName, this._itemTitleClickHandler.bind(this))\r\n },\r\n _itemTitleClickHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemTitleClick\")\r\n },\r\n _renderSelection: function(addedSelection, removedSelection) {\r\n this._itemElements().addClass(ACCORDION_ITEM_CLOSED_CLASS);\r\n this.setAria(\"hidden\", true, this._itemContents());\r\n this._updateItems(addedSelection, removedSelection)\r\n },\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n this._updateItems(addedSelection, removedSelection);\r\n this._updateItemHeightsWrapper(false)\r\n },\r\n _updateItems: function(addedSelection, removedSelection) {\r\n var $items = this._itemElements();\r\n iteratorUtils.each(addedSelection, (_, index) => {\r\n this._deferredItems[index].resolve();\r\n var $item = $items.eq(index).addClass(ACCORDION_ITEM_OPENED_CLASS).removeClass(ACCORDION_ITEM_CLOSED_CLASS);\r\n this.setAria(\"hidden\", false, $item.find(\".\" + ACCORDION_ITEM_BODY_CLASS))\r\n });\r\n iteratorUtils.each(removedSelection, (_, index) => {\r\n var $item = $items.eq(index).removeClass(ACCORDION_ITEM_OPENED_CLASS);\r\n this.setAria(\"hidden\", true, $item.find(\".\" + ACCORDION_ITEM_BODY_CLASS))\r\n })\r\n },\r\n _updateItemHeightsWrapper: function(skipAnimation) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._animationTimer = setTimeout(function() {\r\n this._updateItemHeights(skipAnimation)\r\n }.bind(this))\r\n } else {\r\n this._updateItemHeights(skipAnimation)\r\n }\r\n },\r\n _updateItemHeights: function(skipAnimation) {\r\n var that = this;\r\n var deferredAnimate = that._deferredAnimate;\r\n var itemHeight = this._splitFreeSpace(this._calculateFreeSpace());\r\n clearTimeout(this._animationTimer);\r\n return when.apply($, [].slice.call(this._itemElements()).map((function(item) {\r\n return that._updateItemHeight($(item), itemHeight, skipAnimation)\r\n }))).done((function() {\r\n if (deferredAnimate) {\r\n deferredAnimate.resolveWith(that)\r\n }\r\n }))\r\n },\r\n _updateItemHeight: function($item, itemHeight, skipAnimation) {\r\n var $title = $item.children(\".\" + ACCORDION_ITEM_TITLE_CLASS);\r\n if (fx.isAnimating($item)) {\r\n fx.stop($item)\r\n }\r\n var startItemHeight = getOuterHeight($item);\r\n var finalItemHeight;\r\n if ($item.hasClass(ACCORDION_ITEM_OPENED_CLASS)) {\r\n finalItemHeight = itemHeight + getOuterHeight($title);\r\n if (!finalItemHeight) {\r\n setHeight($item, \"auto\");\r\n finalItemHeight = getOuterHeight($item)\r\n }\r\n } else {\r\n finalItemHeight = getOuterHeight($title)\r\n }\r\n return this._animateItem($item, startItemHeight, finalItemHeight, skipAnimation, !!itemHeight)\r\n },\r\n _animateItem: function($element, startHeight, endHeight, skipAnimation, fixedHeight) {\r\n var d;\r\n if (skipAnimation || startHeight === endHeight) {\r\n $element.css(\"height\", endHeight);\r\n d = (new Deferred).resolve()\r\n } else {\r\n d = fx.animate($element, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: this.option(\"animationDuration\"),\r\n easing: this.option(\"_animationEasing\")\r\n })\r\n }\r\n return d.done((function() {\r\n if ($element.hasClass(ACCORDION_ITEM_OPENED_CLASS) && !fixedHeight) {\r\n $element.css(\"height\", \"\")\r\n }\r\n $element.not(\".\" + ACCORDION_ITEM_OPENED_CLASS).addClass(ACCORDION_ITEM_CLOSED_CLASS)\r\n }))\r\n },\r\n _splitFreeSpace: function(freeSpace) {\r\n if (!freeSpace) {\r\n return freeSpace\r\n }\r\n return freeSpace / this.option(\"selectedItems\").length\r\n },\r\n _calculateFreeSpace: function() {\r\n var height = this.option(\"height\");\r\n if (void 0 === height || \"auto\" === height) {\r\n return\r\n }\r\n var $titles = this._itemTitles();\r\n var itemsHeight = 0;\r\n iteratorUtils.each($titles, (function(_, title) {\r\n itemsHeight += getOuterHeight(title)\r\n }));\r\n return getHeight(this.$element()) - itemsHeight\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._updateItemHeights(true)\r\n },\r\n _clean: function() {\r\n this._deferredTemplateItems.forEach(item => {\r\n item.reject()\r\n });\r\n this._deferredTemplateItems = [];\r\n clearTimeout(this._animationTimer);\r\n this.callBase()\r\n },\r\n _tryParseItemPropertyName: function(fullName) {\r\n var matches = fullName.match(/.*\\.(.*)/);\r\n if (isDefined(matches) && matches.length >= 1) {\r\n return matches[1]\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this.callBase(args);\r\n if (\"title\" === this._tryParseItemPropertyName(args.fullName)) {\r\n this._renderSelection(this._getSelectedItemIndices(), [])\r\n }\r\n if (\"visible\" === this._tryParseItemPropertyName(args.fullName)) {\r\n this._updateItemHeightsWrapper(true)\r\n }\r\n if (true === this.option(\"repaintChangesOnly\") && \"items\" === args.fullName) {\r\n this._updateItemHeightsWrapper(true);\r\n this._renderSelection(this._getSelectedItemIndices(), [])\r\n }\r\n break;\r\n case \"animationDuration\":\r\n case \"onItemTitleClick\":\r\n case \"_animationEasing\":\r\n break;\r\n case \"collapsible\":\r\n this.option(\"selectionRequired\", !this.option(\"collapsible\"));\r\n break;\r\n case \"itemTitleTemplate\":\r\n case \"height\":\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"multiple\":\r\n this.option(\"selectionMode\", args.value ? \"multiple\" : \"single\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n expandItem: function(index) {\r\n this._deferredAnimate = new Deferred;\r\n this.selectItem(index);\r\n return this._deferredAnimate.promise()\r\n },\r\n collapseItem: function(index) {\r\n this._deferredAnimate = new Deferred;\r\n this.unselectItem(index);\r\n return this._deferredAnimate.promise()\r\n },\r\n updateDimensions: function() {\r\n return this._updateItemHeights(false)\r\n }\r\n});\r\nregisterComponent(\"dxAccordion\", Accordion);\r\nexport default Accordion;\r\n","import * as i0 from '@angular/core';\nimport { Component, SkipSelf, Host, Input, NgModule, Output, ContentChildren, forwardRef, Inject } from '@angular/core';\nimport * as i1 from 'devextreme-angular/core';\nimport { NestedOption, NestedOptionHost, CollectionNestedOption, extractTemplate, DxTemplateHost } from 'devextreme-angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAdapterComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get applyValidationResults() {\r\n return this._getOption('applyValidationResults');\r\n }\r\n set applyValidationResults(value) {\r\n this._setOption('applyValidationResults', value);\r\n }\r\n get bypass() {\r\n return this._getOption('bypass');\r\n }\r\n set bypass(value) {\r\n this._setOption('bypass', value);\r\n }\r\n get focus() {\r\n return this._getOption('focus');\r\n }\r\n set focus(value) {\r\n this._setOption('focus', value);\r\n }\r\n get getValue() {\r\n return this._getOption('getValue');\r\n }\r\n set getValue(value) {\r\n this._setOption('getValue', value);\r\n }\r\n get reset() {\r\n return this._getOption('reset');\r\n }\r\n set reset(value) {\r\n this._setOption('reset', value);\r\n }\r\n get validationRequestsCallbacks() {\r\n return this._getOption('validationRequestsCallbacks');\r\n }\r\n set validationRequestsCallbacks(value) {\r\n this._setOption('validationRequestsCallbacks', value);\r\n }\r\n get _optionPath() {\r\n return 'adapter';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAdapterComponent.ɵfac = function DxoAdapterComponent_Factory(t) { return new (t || DxoAdapterComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAdapterComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAdapterComponent, selectors: [[\"dxo-adapter\"]], inputs: { applyValidationResults: \"applyValidationResults\", bypass: \"bypass\", focus: \"focus\", getValue: \"getValue\", reset: \"reset\", validationRequestsCallbacks: \"validationRequestsCallbacks\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAdapterComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAdapterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-adapter',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { applyValidationResults: [{\r\n type: Input\r\n }], bypass: [{\r\n type: Input\r\n }], focus: [{\r\n type: Input\r\n }], getValue: [{\r\n type: Input\r\n }], reset: [{\r\n type: Input\r\n }], validationRequestsCallbacks: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAdapterModule {\r\n}\r\n/** @nocollapse */ DxoAdapterModule.ɵfac = function DxoAdapterModule_Factory(t) { return new (t || DxoAdapterModule)(); };\r\n/** @nocollapse */ DxoAdapterModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAdapterModule });\r\n/** @nocollapse */ DxoAdapterModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAdapterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAdapterComponent\r\n ],\r\n exports: [\r\n DxoAdapterComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAdapterModule, { declarations: [DxoAdapterComponent], exports: [DxoAdapterComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAdaptiveLayoutComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get keepLabels() {\r\n return this._getOption('keepLabels');\r\n }\r\n set keepLabels(value) {\r\n this._setOption('keepLabels', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'adaptiveLayout';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAdaptiveLayoutComponent.ɵfac = function DxoAdaptiveLayoutComponent_Factory(t) { return new (t || DxoAdaptiveLayoutComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAdaptiveLayoutComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAdaptiveLayoutComponent, selectors: [[\"dxo-adaptive-layout\"]], inputs: { height: \"height\", keepLabels: \"keepLabels\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAdaptiveLayoutComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAdaptiveLayoutComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-adaptive-layout',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { height: [{\r\n type: Input\r\n }], keepLabels: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAdaptiveLayoutModule {\r\n}\r\n/** @nocollapse */ DxoAdaptiveLayoutModule.ɵfac = function DxoAdaptiveLayoutModule_Factory(t) { return new (t || DxoAdaptiveLayoutModule)(); };\r\n/** @nocollapse */ DxoAdaptiveLayoutModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAdaptiveLayoutModule });\r\n/** @nocollapse */ DxoAdaptiveLayoutModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAdaptiveLayoutModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAdaptiveLayoutComponent\r\n ],\r\n exports: [\r\n DxoAdaptiveLayoutComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAdaptiveLayoutModule, { declarations: [DxoAdaptiveLayoutComponent], exports: [DxoAdaptiveLayoutComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAggregationIntervalComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'aggregationInterval';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAggregationIntervalComponent.ɵfac = function DxoAggregationIntervalComponent_Factory(t) { return new (t || DxoAggregationIntervalComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAggregationIntervalComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAggregationIntervalComponent, selectors: [[\"dxo-aggregation-interval\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAggregationIntervalComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAggregationIntervalComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-aggregation-interval',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAggregationIntervalModule {\r\n}\r\n/** @nocollapse */ DxoAggregationIntervalModule.ɵfac = function DxoAggregationIntervalModule_Factory(t) { return new (t || DxoAggregationIntervalModule)(); };\r\n/** @nocollapse */ DxoAggregationIntervalModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAggregationIntervalModule });\r\n/** @nocollapse */ DxoAggregationIntervalModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAggregationIntervalModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAggregationIntervalComponent\r\n ],\r\n exports: [\r\n DxoAggregationIntervalComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAggregationIntervalModule, { declarations: [DxoAggregationIntervalComponent], exports: [DxoAggregationIntervalComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAggregationComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get calculate() {\r\n return this._getOption('calculate');\r\n }\r\n set calculate(value) {\r\n this._setOption('calculate', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get method() {\r\n return this._getOption('method');\r\n }\r\n set method(value) {\r\n this._setOption('method', value);\r\n }\r\n get _optionPath() {\r\n return 'aggregation';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAggregationComponent.ɵfac = function DxoAggregationComponent_Factory(t) { return new (t || DxoAggregationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAggregationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAggregationComponent, selectors: [[\"dxo-aggregation\"]], inputs: { calculate: \"calculate\", enabled: \"enabled\", method: \"method\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAggregationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAggregationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-aggregation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { calculate: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], method: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAggregationModule {\r\n}\r\n/** @nocollapse */ DxoAggregationModule.ɵfac = function DxoAggregationModule_Factory(t) { return new (t || DxoAggregationModule)(); };\r\n/** @nocollapse */ DxoAggregationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAggregationModule });\r\n/** @nocollapse */ DxoAggregationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAggregationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAggregationComponent\r\n ],\r\n exports: [\r\n DxoAggregationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAggregationModule, { declarations: [DxoAggregationComponent], exports: [DxoAggregationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAnimationConfig extends NestedOption {\r\n get hide() {\r\n return this._getOption('hide');\r\n }\r\n set hide(value) {\r\n this._setOption('hide', value);\r\n }\r\n get show() {\r\n return this._getOption('show');\r\n }\r\n set show(value) {\r\n this._setOption('show', value);\r\n }\r\n get duration() {\r\n return this._getOption('duration');\r\n }\r\n set duration(value) {\r\n this._setOption('duration', value);\r\n }\r\n get easing() {\r\n return this._getOption('easing');\r\n }\r\n set easing(value) {\r\n this._setOption('easing', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get maxPointCountSupported() {\r\n return this._getOption('maxPointCountSupported');\r\n }\r\n set maxPointCountSupported(value) {\r\n this._setOption('maxPointCountSupported', value);\r\n }\r\n get complete() {\r\n return this._getOption('complete');\r\n }\r\n set complete(value) {\r\n this._setOption('complete', value);\r\n }\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n get from() {\r\n return this._getOption('from');\r\n }\r\n set from(value) {\r\n this._setOption('from', value);\r\n }\r\n get staggerDelay() {\r\n return this._getOption('staggerDelay');\r\n }\r\n set staggerDelay(value) {\r\n this._setOption('staggerDelay', value);\r\n }\r\n get start() {\r\n return this._getOption('start');\r\n }\r\n set start(value) {\r\n this._setOption('start', value);\r\n }\r\n get to() {\r\n return this._getOption('to');\r\n }\r\n set to(value) {\r\n this._setOption('to', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoAnimationConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoAnimationConfig_BaseFactory; return function DxoAnimationConfig_Factory(t) { return (ɵDxoAnimationConfig_BaseFactory || (ɵDxoAnimationConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoAnimationConfig)))(t || DxoAnimationConfig); }; }();\r\n/** @nocollapse */ DxoAnimationConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAnimationConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAnimationConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAnimationConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAnimationComponent extends DxoAnimationConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'animation';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAnimationComponent.ɵfac = function DxoAnimationComponent_Factory(t) { return new (t || DxoAnimationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAnimationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAnimationComponent, selectors: [[\"dxo-animation\"]], inputs: { hide: \"hide\", show: \"show\", duration: \"duration\", easing: \"easing\", enabled: \"enabled\", maxPointCountSupported: \"maxPointCountSupported\", complete: \"complete\", delay: \"delay\", direction: \"direction\", from: \"from\", staggerDelay: \"staggerDelay\", start: \"start\", to: \"to\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAnimationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAnimationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-animation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'hide',\r\n 'show',\r\n 'duration',\r\n 'easing',\r\n 'enabled',\r\n 'maxPointCountSupported',\r\n 'complete',\r\n 'delay',\r\n 'direction',\r\n 'from',\r\n 'staggerDelay',\r\n 'start',\r\n 'to',\r\n 'type'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoAnimationModule {\r\n}\r\n/** @nocollapse */ DxoAnimationModule.ɵfac = function DxoAnimationModule_Factory(t) { return new (t || DxoAnimationModule)(); };\r\n/** @nocollapse */ DxoAnimationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAnimationModule });\r\n/** @nocollapse */ DxoAnimationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAnimationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAnimationComponent\r\n ],\r\n exports: [\r\n DxoAnimationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAnimationModule, { declarations: [DxoAnimationComponent], exports: [DxoAnimationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiChartAnnotationConfig extends CollectionNestedOption {\r\n get allowDragging() {\r\n return this._getOption('allowDragging');\r\n }\r\n set allowDragging(value) {\r\n this._setOption('allowDragging', value);\r\n }\r\n get argument() {\r\n return this._getOption('argument');\r\n }\r\n set argument(value) {\r\n this._setOption('argument', value);\r\n }\r\n get arrowLength() {\r\n return this._getOption('arrowLength');\r\n }\r\n set arrowLength(value) {\r\n this._setOption('arrowLength', value);\r\n }\r\n get arrowWidth() {\r\n return this._getOption('arrowWidth');\r\n }\r\n set arrowWidth(value) {\r\n this._setOption('arrowWidth', value);\r\n }\r\n get axis() {\r\n return this._getOption('axis');\r\n }\r\n set axis(value) {\r\n this._setOption('axis', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get customizeTooltip() {\r\n return this._getOption('customizeTooltip');\r\n }\r\n set customizeTooltip(value) {\r\n this._setOption('customizeTooltip', value);\r\n }\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get description() {\r\n return this._getOption('description');\r\n }\r\n set description(value) {\r\n this._setOption('description', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get image() {\r\n return this._getOption('image');\r\n }\r\n set image(value) {\r\n this._setOption('image', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get offsetX() {\r\n return this._getOption('offsetX');\r\n }\r\n set offsetX(value) {\r\n this._setOption('offsetX', value);\r\n }\r\n get offsetY() {\r\n return this._getOption('offsetY');\r\n }\r\n set offsetY(value) {\r\n this._setOption('offsetY', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n get shadow() {\r\n return this._getOption('shadow');\r\n }\r\n set shadow(value) {\r\n this._setOption('shadow', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get textOverflow() {\r\n return this._getOption('textOverflow');\r\n }\r\n set textOverflow(value) {\r\n this._setOption('textOverflow', value);\r\n }\r\n get tooltipEnabled() {\r\n return this._getOption('tooltipEnabled');\r\n }\r\n set tooltipEnabled(value) {\r\n this._setOption('tooltipEnabled', value);\r\n }\r\n get tooltipTemplate() {\r\n return this._getOption('tooltipTemplate');\r\n }\r\n set tooltipTemplate(value) {\r\n this._setOption('tooltipTemplate', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get wordWrap() {\r\n return this._getOption('wordWrap');\r\n }\r\n set wordWrap(value) {\r\n this._setOption('wordWrap', value);\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get angle() {\r\n return this._getOption('angle');\r\n }\r\n set angle(value) {\r\n this._setOption('angle', value);\r\n }\r\n get radius() {\r\n return this._getOption('radius');\r\n }\r\n set radius(value) {\r\n this._setOption('radius', value);\r\n }\r\n get coordinates() {\r\n return this._getOption('coordinates');\r\n }\r\n set coordinates(value) {\r\n this._setOption('coordinates', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiChartAnnotationConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiChartAnnotationConfig_BaseFactory; return function DxiChartAnnotationConfig_Factory(t) { return (ɵDxiChartAnnotationConfig_BaseFactory || (ɵDxiChartAnnotationConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxiChartAnnotationConfig)))(t || DxiChartAnnotationConfig); }; }();\r\n/** @nocollapse */ DxiChartAnnotationConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiChartAnnotationConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiChartAnnotationConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiChartAnnotationConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiAnnotationComponent extends DxiChartAnnotationConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'annotations';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiAnnotationComponent.ɵfac = function DxiAnnotationComponent_Factory(t) { return new (t || DxiAnnotationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiAnnotationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiAnnotationComponent, selectors: [[\"dxi-annotation\"]], inputs: { allowDragging: \"allowDragging\", argument: \"argument\", arrowLength: \"arrowLength\", arrowWidth: \"arrowWidth\", axis: \"axis\", border: \"border\", color: \"color\", customizeTooltip: \"customizeTooltip\", data: \"data\", description: \"description\", font: \"font\", height: \"height\", image: \"image\", name: \"name\", offsetX: \"offsetX\", offsetY: \"offsetY\", opacity: \"opacity\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", series: \"series\", shadow: \"shadow\", template: \"template\", text: \"text\", textOverflow: \"textOverflow\", tooltipEnabled: \"tooltipEnabled\", tooltipTemplate: \"tooltipTemplate\", type: \"type\", value: \"value\", width: \"width\", wordWrap: \"wordWrap\", x: \"x\", y: \"y\", location: \"location\", angle: \"angle\", radius: \"radius\", coordinates: \"coordinates\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiAnnotationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiAnnotationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-annotation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowDragging',\r\n 'argument',\r\n 'arrowLength',\r\n 'arrowWidth',\r\n 'axis',\r\n 'border',\r\n 'color',\r\n 'customizeTooltip',\r\n 'data',\r\n 'description',\r\n 'font',\r\n 'height',\r\n 'image',\r\n 'name',\r\n 'offsetX',\r\n 'offsetY',\r\n 'opacity',\r\n 'paddingLeftRight',\r\n 'paddingTopBottom',\r\n 'series',\r\n 'shadow',\r\n 'template',\r\n 'text',\r\n 'textOverflow',\r\n 'tooltipEnabled',\r\n 'tooltipTemplate',\r\n 'type',\r\n 'value',\r\n 'width',\r\n 'wordWrap',\r\n 'x',\r\n 'y',\r\n 'location',\r\n 'angle',\r\n 'radius',\r\n 'coordinates'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiAnnotationModule {\r\n}\r\n/** @nocollapse */ DxiAnnotationModule.ɵfac = function DxiAnnotationModule_Factory(t) { return new (t || DxiAnnotationModule)(); };\r\n/** @nocollapse */ DxiAnnotationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiAnnotationModule });\r\n/** @nocollapse */ DxiAnnotationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiAnnotationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiAnnotationComponent\r\n ],\r\n exports: [\r\n DxiAnnotationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiAnnotationModule, { declarations: [DxiAnnotationComponent], exports: [DxiAnnotationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoApiKeyComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get bing() {\r\n return this._getOption('bing');\r\n }\r\n set bing(value) {\r\n this._setOption('bing', value);\r\n }\r\n get google() {\r\n return this._getOption('google');\r\n }\r\n set google(value) {\r\n this._setOption('google', value);\r\n }\r\n get googleStatic() {\r\n return this._getOption('googleStatic');\r\n }\r\n set googleStatic(value) {\r\n this._setOption('googleStatic', value);\r\n }\r\n get _optionPath() {\r\n return 'apiKey';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoApiKeyComponent.ɵfac = function DxoApiKeyComponent_Factory(t) { return new (t || DxoApiKeyComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoApiKeyComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoApiKeyComponent, selectors: [[\"dxo-api-key\"]], inputs: { bing: \"bing\", google: \"google\", googleStatic: \"googleStatic\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoApiKeyComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoApiKeyComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-api-key',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { bing: [{\r\n type: Input\r\n }], google: [{\r\n type: Input\r\n }], googleStatic: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoApiKeyModule {\r\n}\r\n/** @nocollapse */ DxoApiKeyModule.ɵfac = function DxoApiKeyModule_Factory(t) { return new (t || DxoApiKeyModule)(); };\r\n/** @nocollapse */ DxoApiKeyModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoApiKeyModule });\r\n/** @nocollapse */ DxoApiKeyModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoApiKeyModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoApiKeyComponent\r\n ],\r\n exports: [\r\n DxoApiKeyComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoApiKeyModule, { declarations: [DxoApiKeyComponent], exports: [DxoApiKeyComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAppointmentDraggingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get autoScroll() {\r\n return this._getOption('autoScroll');\r\n }\r\n set autoScroll(value) {\r\n this._setOption('autoScroll', value);\r\n }\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n get onAdd() {\r\n return this._getOption('onAdd');\r\n }\r\n set onAdd(value) {\r\n this._setOption('onAdd', value);\r\n }\r\n get onDragEnd() {\r\n return this._getOption('onDragEnd');\r\n }\r\n set onDragEnd(value) {\r\n this._setOption('onDragEnd', value);\r\n }\r\n get onDragMove() {\r\n return this._getOption('onDragMove');\r\n }\r\n set onDragMove(value) {\r\n this._setOption('onDragMove', value);\r\n }\r\n get onDragStart() {\r\n return this._getOption('onDragStart');\r\n }\r\n set onDragStart(value) {\r\n this._setOption('onDragStart', value);\r\n }\r\n get onRemove() {\r\n return this._getOption('onRemove');\r\n }\r\n set onRemove(value) {\r\n this._setOption('onRemove', value);\r\n }\r\n get scrollSensitivity() {\r\n return this._getOption('scrollSensitivity');\r\n }\r\n set scrollSensitivity(value) {\r\n this._setOption('scrollSensitivity', value);\r\n }\r\n get scrollSpeed() {\r\n return this._getOption('scrollSpeed');\r\n }\r\n set scrollSpeed(value) {\r\n this._setOption('scrollSpeed', value);\r\n }\r\n get _optionPath() {\r\n return 'appointmentDragging';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAppointmentDraggingComponent.ɵfac = function DxoAppointmentDraggingComponent_Factory(t) { return new (t || DxoAppointmentDraggingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAppointmentDraggingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAppointmentDraggingComponent, selectors: [[\"dxo-appointment-dragging\"]], inputs: { autoScroll: \"autoScroll\", data: \"data\", group: \"group\", onAdd: \"onAdd\", onDragEnd: \"onDragEnd\", onDragMove: \"onDragMove\", onDragStart: \"onDragStart\", onRemove: \"onRemove\", scrollSensitivity: \"scrollSensitivity\", scrollSpeed: \"scrollSpeed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAppointmentDraggingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAppointmentDraggingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-appointment-dragging',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { autoScroll: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], onAdd: [{\r\n type: Input\r\n }], onDragEnd: [{\r\n type: Input\r\n }], onDragMove: [{\r\n type: Input\r\n }], onDragStart: [{\r\n type: Input\r\n }], onRemove: [{\r\n type: Input\r\n }], scrollSensitivity: [{\r\n type: Input\r\n }], scrollSpeed: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAppointmentDraggingModule {\r\n}\r\n/** @nocollapse */ DxoAppointmentDraggingModule.ɵfac = function DxoAppointmentDraggingModule_Factory(t) { return new (t || DxoAppointmentDraggingModule)(); };\r\n/** @nocollapse */ DxoAppointmentDraggingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAppointmentDraggingModule });\r\n/** @nocollapse */ DxoAppointmentDraggingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAppointmentDraggingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAppointmentDraggingComponent\r\n ],\r\n exports: [\r\n DxoAppointmentDraggingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAppointmentDraggingModule, { declarations: [DxoAppointmentDraggingComponent], exports: [DxoAppointmentDraggingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoChartCommonSeriesSettings extends NestedOption {\r\n get aggregation() {\r\n return this._getOption('aggregation');\r\n }\r\n set aggregation(value) {\r\n this._setOption('aggregation', value);\r\n }\r\n get area() {\r\n return this._getOption('area');\r\n }\r\n set area(value) {\r\n this._setOption('area', value);\r\n }\r\n get argumentField() {\r\n return this._getOption('argumentField');\r\n }\r\n set argumentField(value) {\r\n this._setOption('argumentField', value);\r\n }\r\n get axis() {\r\n return this._getOption('axis');\r\n }\r\n set axis(value) {\r\n this._setOption('axis', value);\r\n }\r\n get bar() {\r\n return this._getOption('bar');\r\n }\r\n set bar(value) {\r\n this._setOption('bar', value);\r\n }\r\n get barOverlapGroup() {\r\n return this._getOption('barOverlapGroup');\r\n }\r\n set barOverlapGroup(value) {\r\n this._setOption('barOverlapGroup', value);\r\n }\r\n get barPadding() {\r\n return this._getOption('barPadding');\r\n }\r\n set barPadding(value) {\r\n this._setOption('barPadding', value);\r\n }\r\n get barWidth() {\r\n return this._getOption('barWidth');\r\n }\r\n set barWidth(value) {\r\n this._setOption('barWidth', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get bubble() {\r\n return this._getOption('bubble');\r\n }\r\n set bubble(value) {\r\n this._setOption('bubble', value);\r\n }\r\n get candlestick() {\r\n return this._getOption('candlestick');\r\n }\r\n set candlestick(value) {\r\n this._setOption('candlestick', value);\r\n }\r\n get closeValueField() {\r\n return this._getOption('closeValueField');\r\n }\r\n set closeValueField(value) {\r\n this._setOption('closeValueField', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get cornerRadius() {\r\n return this._getOption('cornerRadius');\r\n }\r\n set cornerRadius(value) {\r\n this._setOption('cornerRadius', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get fullstackedarea() {\r\n return this._getOption('fullstackedarea');\r\n }\r\n set fullstackedarea(value) {\r\n this._setOption('fullstackedarea', value);\r\n }\r\n get fullstackedbar() {\r\n return this._getOption('fullstackedbar');\r\n }\r\n set fullstackedbar(value) {\r\n this._setOption('fullstackedbar', value);\r\n }\r\n get fullstackedline() {\r\n return this._getOption('fullstackedline');\r\n }\r\n set fullstackedline(value) {\r\n this._setOption('fullstackedline', value);\r\n }\r\n get fullstackedspline() {\r\n return this._getOption('fullstackedspline');\r\n }\r\n set fullstackedspline(value) {\r\n this._setOption('fullstackedspline', value);\r\n }\r\n get fullstackedsplinearea() {\r\n return this._getOption('fullstackedsplinearea');\r\n }\r\n set fullstackedsplinearea(value) {\r\n this._setOption('fullstackedsplinearea', value);\r\n }\r\n get highValueField() {\r\n return this._getOption('highValueField');\r\n }\r\n set highValueField(value) {\r\n this._setOption('highValueField', value);\r\n }\r\n get hoverMode() {\r\n return this._getOption('hoverMode');\r\n }\r\n set hoverMode(value) {\r\n this._setOption('hoverMode', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get ignoreEmptyPoints() {\r\n return this._getOption('ignoreEmptyPoints');\r\n }\r\n set ignoreEmptyPoints(value) {\r\n this._setOption('ignoreEmptyPoints', value);\r\n }\r\n get innerColor() {\r\n return this._getOption('innerColor');\r\n }\r\n set innerColor(value) {\r\n this._setOption('innerColor', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get line() {\r\n return this._getOption('line');\r\n }\r\n set line(value) {\r\n this._setOption('line', value);\r\n }\r\n get lowValueField() {\r\n return this._getOption('lowValueField');\r\n }\r\n set lowValueField(value) {\r\n this._setOption('lowValueField', value);\r\n }\r\n get maxLabelCount() {\r\n return this._getOption('maxLabelCount');\r\n }\r\n set maxLabelCount(value) {\r\n this._setOption('maxLabelCount', value);\r\n }\r\n get minBarSize() {\r\n return this._getOption('minBarSize');\r\n }\r\n set minBarSize(value) {\r\n this._setOption('minBarSize', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get openValueField() {\r\n return this._getOption('openValueField');\r\n }\r\n set openValueField(value) {\r\n this._setOption('openValueField', value);\r\n }\r\n get pane() {\r\n return this._getOption('pane');\r\n }\r\n set pane(value) {\r\n this._setOption('pane', value);\r\n }\r\n get point() {\r\n return this._getOption('point');\r\n }\r\n set point(value) {\r\n this._setOption('point', value);\r\n }\r\n get rangearea() {\r\n return this._getOption('rangearea');\r\n }\r\n set rangearea(value) {\r\n this._setOption('rangearea', value);\r\n }\r\n get rangebar() {\r\n return this._getOption('rangebar');\r\n }\r\n set rangebar(value) {\r\n this._setOption('rangebar', value);\r\n }\r\n get rangeValue1Field() {\r\n return this._getOption('rangeValue1Field');\r\n }\r\n set rangeValue1Field(value) {\r\n this._setOption('rangeValue1Field', value);\r\n }\r\n get rangeValue2Field() {\r\n return this._getOption('rangeValue2Field');\r\n }\r\n set rangeValue2Field(value) {\r\n this._setOption('rangeValue2Field', value);\r\n }\r\n get reduction() {\r\n return this._getOption('reduction');\r\n }\r\n set reduction(value) {\r\n this._setOption('reduction', value);\r\n }\r\n get scatter() {\r\n return this._getOption('scatter');\r\n }\r\n set scatter(value) {\r\n this._setOption('scatter', value);\r\n }\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get showInLegend() {\r\n return this._getOption('showInLegend');\r\n }\r\n set showInLegend(value) {\r\n this._setOption('showInLegend', value);\r\n }\r\n get sizeField() {\r\n return this._getOption('sizeField');\r\n }\r\n set sizeField(value) {\r\n this._setOption('sizeField', value);\r\n }\r\n get spline() {\r\n return this._getOption('spline');\r\n }\r\n set spline(value) {\r\n this._setOption('spline', value);\r\n }\r\n get splinearea() {\r\n return this._getOption('splinearea');\r\n }\r\n set splinearea(value) {\r\n this._setOption('splinearea', value);\r\n }\r\n get stack() {\r\n return this._getOption('stack');\r\n }\r\n set stack(value) {\r\n this._setOption('stack', value);\r\n }\r\n get stackedarea() {\r\n return this._getOption('stackedarea');\r\n }\r\n set stackedarea(value) {\r\n this._setOption('stackedarea', value);\r\n }\r\n get stackedbar() {\r\n return this._getOption('stackedbar');\r\n }\r\n set stackedbar(value) {\r\n this._setOption('stackedbar', value);\r\n }\r\n get stackedline() {\r\n return this._getOption('stackedline');\r\n }\r\n set stackedline(value) {\r\n this._setOption('stackedline', value);\r\n }\r\n get stackedspline() {\r\n return this._getOption('stackedspline');\r\n }\r\n set stackedspline(value) {\r\n this._setOption('stackedspline', value);\r\n }\r\n get stackedsplinearea() {\r\n return this._getOption('stackedsplinearea');\r\n }\r\n set stackedsplinearea(value) {\r\n this._setOption('stackedsplinearea', value);\r\n }\r\n get steparea() {\r\n return this._getOption('steparea');\r\n }\r\n set steparea(value) {\r\n this._setOption('steparea', value);\r\n }\r\n get stepline() {\r\n return this._getOption('stepline');\r\n }\r\n set stepline(value) {\r\n this._setOption('stepline', value);\r\n }\r\n get stock() {\r\n return this._getOption('stock');\r\n }\r\n set stock(value) {\r\n this._setOption('stock', value);\r\n }\r\n get tagField() {\r\n return this._getOption('tagField');\r\n }\r\n set tagField(value) {\r\n this._setOption('tagField', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueErrorBar() {\r\n return this._getOption('valueErrorBar');\r\n }\r\n set valueErrorBar(value) {\r\n this._setOption('valueErrorBar', value);\r\n }\r\n get valueField() {\r\n return this._getOption('valueField');\r\n }\r\n set valueField(value) {\r\n this._setOption('valueField', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get argumentType() {\r\n return this._getOption('argumentType');\r\n }\r\n set argumentType(value) {\r\n this._setOption('argumentType', value);\r\n }\r\n get minSegmentSize() {\r\n return this._getOption('minSegmentSize');\r\n }\r\n set minSegmentSize(value) {\r\n this._setOption('minSegmentSize', value);\r\n }\r\n get smallValuesGrouping() {\r\n return this._getOption('smallValuesGrouping');\r\n }\r\n set smallValuesGrouping(value) {\r\n this._setOption('smallValuesGrouping', value);\r\n }\r\n get closed() {\r\n return this._getOption('closed');\r\n }\r\n set closed(value) {\r\n this._setOption('closed', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoChartCommonSeriesSettings.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoChartCommonSeriesSettings_BaseFactory; return function DxoChartCommonSeriesSettings_Factory(t) { return (ɵDxoChartCommonSeriesSettings_BaseFactory || (ɵDxoChartCommonSeriesSettings_BaseFactory = i0.ɵɵgetInheritedFactory(DxoChartCommonSeriesSettings)))(t || DxoChartCommonSeriesSettings); }; }();\r\n/** @nocollapse */ DxoChartCommonSeriesSettings.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoChartCommonSeriesSettings, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoChartCommonSeriesSettings_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoChartCommonSeriesSettings, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAreaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'area';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAreaComponent.ɵfac = function DxoAreaComponent_Factory(t) { return new (t || DxoAreaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAreaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAreaComponent, selectors: [[\"dxo-area\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAreaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAreaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-area',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoAreaModule {\r\n}\r\n/** @nocollapse */ DxoAreaModule.ɵfac = function DxoAreaModule_Factory(t) { return new (t || DxoAreaModule)(); };\r\n/** @nocollapse */ DxoAreaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAreaModule });\r\n/** @nocollapse */ DxoAreaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAreaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAreaComponent\r\n ],\r\n exports: [\r\n DxoAreaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAreaModule, { declarations: [DxoAreaComponent], exports: [DxoAreaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiVizScaleBreak extends CollectionNestedOption {\r\n get endValue() {\r\n return this._getOption('endValue');\r\n }\r\n set endValue(value) {\r\n this._setOption('endValue', value);\r\n }\r\n get startValue() {\r\n return this._getOption('startValue');\r\n }\r\n set startValue(value) {\r\n this._setOption('startValue', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiVizScaleBreak.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiVizScaleBreak_BaseFactory; return function DxiVizScaleBreak_Factory(t) { return (ɵDxiVizScaleBreak_BaseFactory || (ɵDxiVizScaleBreak_BaseFactory = i0.ɵɵgetInheritedFactory(DxiVizScaleBreak)))(t || DxiVizScaleBreak); }; }();\r\n/** @nocollapse */ DxiVizScaleBreak.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiVizScaleBreak, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiVizScaleBreak_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiVizScaleBreak, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiBreakComponent extends DxiVizScaleBreak {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'breaks';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiBreakComponent.ɵfac = function DxiBreakComponent_Factory(t) { return new (t || DxiBreakComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiBreakComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiBreakComponent, selectors: [[\"dxi-break\"]], inputs: { endValue: \"endValue\", startValue: \"startValue\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiBreakComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiBreakComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-break',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'endValue',\r\n 'startValue'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiBreakModule {\r\n}\r\n/** @nocollapse */ DxiBreakModule.ɵfac = function DxiBreakModule_Factory(t) { return new (t || DxiBreakModule)(); };\r\n/** @nocollapse */ DxiBreakModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiBreakModule });\r\n/** @nocollapse */ DxiBreakModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiBreakModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiBreakComponent\r\n ],\r\n exports: [\r\n DxiBreakComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiBreakModule, { declarations: [DxiBreakComponent], exports: [DxiBreakComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiConstantLineComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get displayBehindSeries() {\r\n return this._getOption('displayBehindSeries');\r\n }\r\n set displayBehindSeries(value) {\r\n this._setOption('displayBehindSeries', value);\r\n }\r\n get extendAxis() {\r\n return this._getOption('extendAxis');\r\n }\r\n set extendAxis(value) {\r\n this._setOption('extendAxis', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'constantLines';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiConstantLineComponent.ɵfac = function DxiConstantLineComponent_Factory(t) { return new (t || DxiConstantLineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiConstantLineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiConstantLineComponent, selectors: [[\"dxi-constant-line\"]], inputs: { color: \"color\", dashStyle: \"dashStyle\", displayBehindSeries: \"displayBehindSeries\", extendAxis: \"extendAxis\", label: \"label\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", value: \"value\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiConstantLineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiConstantLineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-constant-line',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], displayBehindSeries: [{\r\n type: Input\r\n }], extendAxis: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiConstantLineModule {\r\n}\r\n/** @nocollapse */ DxiConstantLineModule.ɵfac = function DxiConstantLineModule_Factory(t) { return new (t || DxiConstantLineModule)(); };\r\n/** @nocollapse */ DxiConstantLineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiConstantLineModule });\r\n/** @nocollapse */ DxiConstantLineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiConstantLineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiConstantLineComponent\r\n ],\r\n exports: [\r\n DxiConstantLineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiConstantLineModule, { declarations: [DxiConstantLineComponent], exports: [DxiConstantLineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiStripComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get endValue() {\r\n return this._getOption('endValue');\r\n }\r\n set endValue(value) {\r\n this._setOption('endValue', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get startValue() {\r\n return this._getOption('startValue');\r\n }\r\n set startValue(value) {\r\n this._setOption('startValue', value);\r\n }\r\n get _optionPath() {\r\n return 'strips';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiStripComponent.ɵfac = function DxiStripComponent_Factory(t) { return new (t || DxiStripComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiStripComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiStripComponent, selectors: [[\"dxi-strip\"]], inputs: { color: \"color\", endValue: \"endValue\", label: \"label\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", startValue: \"startValue\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiStripComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiStripComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-strip',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], endValue: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], startValue: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiStripModule {\r\n}\r\n/** @nocollapse */ DxiStripModule.ɵfac = function DxiStripModule_Factory(t) { return new (t || DxiStripModule)(); };\r\n/** @nocollapse */ DxiStripModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiStripModule });\r\n/** @nocollapse */ DxiStripModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiStripModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiStripComponent\r\n ],\r\n exports: [\r\n DxiStripComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiStripModule, { declarations: [DxiStripComponent], exports: [DxiStripComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoArgumentAxisComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'categoriesChange' },\r\n { emit: 'visualRangeChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get aggregateByCategory() {\r\n return this._getOption('aggregateByCategory');\r\n }\r\n set aggregateByCategory(value) {\r\n this._setOption('aggregateByCategory', value);\r\n }\r\n get aggregatedPointsPosition() {\r\n return this._getOption('aggregatedPointsPosition');\r\n }\r\n set aggregatedPointsPosition(value) {\r\n this._setOption('aggregatedPointsPosition', value);\r\n }\r\n get aggregationGroupWidth() {\r\n return this._getOption('aggregationGroupWidth');\r\n }\r\n set aggregationGroupWidth(value) {\r\n this._setOption('aggregationGroupWidth', value);\r\n }\r\n get aggregationInterval() {\r\n return this._getOption('aggregationInterval');\r\n }\r\n set aggregationInterval(value) {\r\n this._setOption('aggregationInterval', value);\r\n }\r\n get allowDecimals() {\r\n return this._getOption('allowDecimals');\r\n }\r\n set allowDecimals(value) {\r\n this._setOption('allowDecimals', value);\r\n }\r\n get argumentType() {\r\n return this._getOption('argumentType');\r\n }\r\n set argumentType(value) {\r\n this._setOption('argumentType', value);\r\n }\r\n get axisDivisionFactor() {\r\n return this._getOption('axisDivisionFactor');\r\n }\r\n set axisDivisionFactor(value) {\r\n this._setOption('axisDivisionFactor', value);\r\n }\r\n get breaks() {\r\n return this._getOption('breaks');\r\n }\r\n set breaks(value) {\r\n this._setOption('breaks', value);\r\n }\r\n get breakStyle() {\r\n return this._getOption('breakStyle');\r\n }\r\n set breakStyle(value) {\r\n this._setOption('breakStyle', value);\r\n }\r\n get categories() {\r\n return this._getOption('categories');\r\n }\r\n set categories(value) {\r\n this._setOption('categories', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get constantLines() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLines(value) {\r\n this._setOption('constantLines', value);\r\n }\r\n get constantLineStyle() {\r\n return this._getOption('constantLineStyle');\r\n }\r\n set constantLineStyle(value) {\r\n this._setOption('constantLineStyle', value);\r\n }\r\n get customPosition() {\r\n return this._getOption('customPosition');\r\n }\r\n set customPosition(value) {\r\n this._setOption('customPosition', value);\r\n }\r\n get customPositionAxis() {\r\n return this._getOption('customPositionAxis');\r\n }\r\n set customPositionAxis(value) {\r\n this._setOption('customPositionAxis', value);\r\n }\r\n get discreteAxisDivisionMode() {\r\n return this._getOption('discreteAxisDivisionMode');\r\n }\r\n set discreteAxisDivisionMode(value) {\r\n this._setOption('discreteAxisDivisionMode', value);\r\n }\r\n get endOnTick() {\r\n return this._getOption('endOnTick');\r\n }\r\n set endOnTick(value) {\r\n this._setOption('endOnTick', value);\r\n }\r\n get grid() {\r\n return this._getOption('grid');\r\n }\r\n set grid(value) {\r\n this._setOption('grid', value);\r\n }\r\n get holidays() {\r\n return this._getOption('holidays');\r\n }\r\n set holidays(value) {\r\n this._setOption('holidays', value);\r\n }\r\n get hoverMode() {\r\n return this._getOption('hoverMode');\r\n }\r\n set hoverMode(value) {\r\n this._setOption('hoverMode', value);\r\n }\r\n get inverted() {\r\n return this._getOption('inverted');\r\n }\r\n set inverted(value) {\r\n this._setOption('inverted', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get linearThreshold() {\r\n return this._getOption('linearThreshold');\r\n }\r\n set linearThreshold(value) {\r\n this._setOption('linearThreshold', value);\r\n }\r\n get logarithmBase() {\r\n return this._getOption('logarithmBase');\r\n }\r\n set logarithmBase(value) {\r\n this._setOption('logarithmBase', value);\r\n }\r\n get maxValueMargin() {\r\n return this._getOption('maxValueMargin');\r\n }\r\n set maxValueMargin(value) {\r\n this._setOption('maxValueMargin', value);\r\n }\r\n get minorGrid() {\r\n return this._getOption('minorGrid');\r\n }\r\n set minorGrid(value) {\r\n this._setOption('minorGrid', value);\r\n }\r\n get minorTick() {\r\n return this._getOption('minorTick');\r\n }\r\n set minorTick(value) {\r\n this._setOption('minorTick', value);\r\n }\r\n get minorTickCount() {\r\n return this._getOption('minorTickCount');\r\n }\r\n set minorTickCount(value) {\r\n this._setOption('minorTickCount', value);\r\n }\r\n get minorTickInterval() {\r\n return this._getOption('minorTickInterval');\r\n }\r\n set minorTickInterval(value) {\r\n this._setOption('minorTickInterval', value);\r\n }\r\n get minValueMargin() {\r\n return this._getOption('minValueMargin');\r\n }\r\n set minValueMargin(value) {\r\n this._setOption('minValueMargin', value);\r\n }\r\n get minVisualRangeLength() {\r\n return this._getOption('minVisualRangeLength');\r\n }\r\n set minVisualRangeLength(value) {\r\n this._setOption('minVisualRangeLength', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get placeholderSize() {\r\n return this._getOption('placeholderSize');\r\n }\r\n set placeholderSize(value) {\r\n this._setOption('placeholderSize', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get singleWorkdays() {\r\n return this._getOption('singleWorkdays');\r\n }\r\n set singleWorkdays(value) {\r\n this._setOption('singleWorkdays', value);\r\n }\r\n get strips() {\r\n return this._getOption('strips');\r\n }\r\n set strips(value) {\r\n this._setOption('strips', value);\r\n }\r\n get stripStyle() {\r\n return this._getOption('stripStyle');\r\n }\r\n set stripStyle(value) {\r\n this._setOption('stripStyle', value);\r\n }\r\n get tick() {\r\n return this._getOption('tick');\r\n }\r\n set tick(value) {\r\n this._setOption('tick', value);\r\n }\r\n get tickInterval() {\r\n return this._getOption('tickInterval');\r\n }\r\n set tickInterval(value) {\r\n this._setOption('tickInterval', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueMarginsEnabled() {\r\n return this._getOption('valueMarginsEnabled');\r\n }\r\n set valueMarginsEnabled(value) {\r\n this._setOption('valueMarginsEnabled', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get visualRange() {\r\n return this._getOption('visualRange');\r\n }\r\n set visualRange(value) {\r\n this._setOption('visualRange', value);\r\n }\r\n get visualRangeUpdateMode() {\r\n return this._getOption('visualRangeUpdateMode');\r\n }\r\n set visualRangeUpdateMode(value) {\r\n this._setOption('visualRangeUpdateMode', value);\r\n }\r\n get wholeRange() {\r\n return this._getOption('wholeRange');\r\n }\r\n set wholeRange(value) {\r\n this._setOption('wholeRange', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get workdaysOnly() {\r\n return this._getOption('workdaysOnly');\r\n }\r\n set workdaysOnly(value) {\r\n this._setOption('workdaysOnly', value);\r\n }\r\n get workWeek() {\r\n return this._getOption('workWeek');\r\n }\r\n set workWeek(value) {\r\n this._setOption('workWeek', value);\r\n }\r\n get firstPointOnStartAngle() {\r\n return this._getOption('firstPointOnStartAngle');\r\n }\r\n set firstPointOnStartAngle(value) {\r\n this._setOption('firstPointOnStartAngle', value);\r\n }\r\n get originValue() {\r\n return this._getOption('originValue');\r\n }\r\n set originValue(value) {\r\n this._setOption('originValue', value);\r\n }\r\n get period() {\r\n return this._getOption('period');\r\n }\r\n set period(value) {\r\n this._setOption('period', value);\r\n }\r\n get startAngle() {\r\n return this._getOption('startAngle');\r\n }\r\n set startAngle(value) {\r\n this._setOption('startAngle', value);\r\n }\r\n get _optionPath() {\r\n return 'argumentAxis';\r\n }\r\n get breaksChildren() {\r\n return this._getOption('breaks');\r\n }\r\n set breaksChildren(value) {\r\n this.setChildren('breaks', value);\r\n }\r\n get constantLinesChildren() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLinesChildren(value) {\r\n this.setChildren('constantLines', value);\r\n }\r\n get stripsChildren() {\r\n return this._getOption('strips');\r\n }\r\n set stripsChildren(value) {\r\n this.setChildren('strips', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoArgumentAxisComponent.ɵfac = function DxoArgumentAxisComponent_Factory(t) { return new (t || DxoArgumentAxisComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoArgumentAxisComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoArgumentAxisComponent, selectors: [[\"dxo-argument-axis\"]], contentQueries: function DxoArgumentAxisComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiBreakComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiConstantLineComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiStripComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.breaksChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.constantLinesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stripsChildren = _t);\r\n } }, inputs: { aggregateByCategory: \"aggregateByCategory\", aggregatedPointsPosition: \"aggregatedPointsPosition\", aggregationGroupWidth: \"aggregationGroupWidth\", aggregationInterval: \"aggregationInterval\", allowDecimals: \"allowDecimals\", argumentType: \"argumentType\", axisDivisionFactor: \"axisDivisionFactor\", breaks: \"breaks\", breakStyle: \"breakStyle\", categories: \"categories\", color: \"color\", constantLines: \"constantLines\", constantLineStyle: \"constantLineStyle\", customPosition: \"customPosition\", customPositionAxis: \"customPositionAxis\", discreteAxisDivisionMode: \"discreteAxisDivisionMode\", endOnTick: \"endOnTick\", grid: \"grid\", holidays: \"holidays\", hoverMode: \"hoverMode\", inverted: \"inverted\", label: \"label\", linearThreshold: \"linearThreshold\", logarithmBase: \"logarithmBase\", maxValueMargin: \"maxValueMargin\", minorGrid: \"minorGrid\", minorTick: \"minorTick\", minorTickCount: \"minorTickCount\", minorTickInterval: \"minorTickInterval\", minValueMargin: \"minValueMargin\", minVisualRangeLength: \"minVisualRangeLength\", offset: \"offset\", opacity: \"opacity\", placeholderSize: \"placeholderSize\", position: \"position\", singleWorkdays: \"singleWorkdays\", strips: \"strips\", stripStyle: \"stripStyle\", tick: \"tick\", tickInterval: \"tickInterval\", title: \"title\", type: \"type\", valueMarginsEnabled: \"valueMarginsEnabled\", visible: \"visible\", visualRange: \"visualRange\", visualRangeUpdateMode: \"visualRangeUpdateMode\", wholeRange: \"wholeRange\", width: \"width\", workdaysOnly: \"workdaysOnly\", workWeek: \"workWeek\", firstPointOnStartAngle: \"firstPointOnStartAngle\", originValue: \"originValue\", period: \"period\", startAngle: \"startAngle\" }, outputs: { categoriesChange: \"categoriesChange\", visualRangeChange: \"visualRangeChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoArgumentAxisComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoArgumentAxisComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-argument-axis',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { aggregateByCategory: [{\r\n type: Input\r\n }], aggregatedPointsPosition: [{\r\n type: Input\r\n }], aggregationGroupWidth: [{\r\n type: Input\r\n }], aggregationInterval: [{\r\n type: Input\r\n }], allowDecimals: [{\r\n type: Input\r\n }], argumentType: [{\r\n type: Input\r\n }], axisDivisionFactor: [{\r\n type: Input\r\n }], breaks: [{\r\n type: Input\r\n }], breakStyle: [{\r\n type: Input\r\n }], categories: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], constantLines: [{\r\n type: Input\r\n }], constantLineStyle: [{\r\n type: Input\r\n }], customPosition: [{\r\n type: Input\r\n }], customPositionAxis: [{\r\n type: Input\r\n }], discreteAxisDivisionMode: [{\r\n type: Input\r\n }], endOnTick: [{\r\n type: Input\r\n }], grid: [{\r\n type: Input\r\n }], holidays: [{\r\n type: Input\r\n }], hoverMode: [{\r\n type: Input\r\n }], inverted: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], linearThreshold: [{\r\n type: Input\r\n }], logarithmBase: [{\r\n type: Input\r\n }], maxValueMargin: [{\r\n type: Input\r\n }], minorGrid: [{\r\n type: Input\r\n }], minorTick: [{\r\n type: Input\r\n }], minorTickCount: [{\r\n type: Input\r\n }], minorTickInterval: [{\r\n type: Input\r\n }], minValueMargin: [{\r\n type: Input\r\n }], minVisualRangeLength: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], placeholderSize: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], singleWorkdays: [{\r\n type: Input\r\n }], strips: [{\r\n type: Input\r\n }], stripStyle: [{\r\n type: Input\r\n }], tick: [{\r\n type: Input\r\n }], tickInterval: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], valueMarginsEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], visualRange: [{\r\n type: Input\r\n }], visualRangeUpdateMode: [{\r\n type: Input\r\n }], wholeRange: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], workdaysOnly: [{\r\n type: Input\r\n }], workWeek: [{\r\n type: Input\r\n }], firstPointOnStartAngle: [{\r\n type: Input\r\n }], originValue: [{\r\n type: Input\r\n }], period: [{\r\n type: Input\r\n }], startAngle: [{\r\n type: Input\r\n }], categoriesChange: [{\r\n type: Output\r\n }], visualRangeChange: [{\r\n type: Output\r\n }], breaksChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiBreakComponent)]\r\n }], constantLinesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiConstantLineComponent)]\r\n }], stripsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiStripComponent)]\r\n }] }); })();\r\nclass DxoArgumentAxisModule {\r\n}\r\n/** @nocollapse */ DxoArgumentAxisModule.ɵfac = function DxoArgumentAxisModule_Factory(t) { return new (t || DxoArgumentAxisModule)(); };\r\n/** @nocollapse */ DxoArgumentAxisModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoArgumentAxisModule });\r\n/** @nocollapse */ DxoArgumentAxisModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoArgumentAxisModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoArgumentAxisComponent\r\n ],\r\n exports: [\r\n DxoArgumentAxisComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoArgumentAxisModule, { declarations: [DxoArgumentAxisComponent], exports: [DxoArgumentAxisComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormat extends NestedOption {\r\n get currency() {\r\n return this._getOption('currency');\r\n }\r\n set currency(value) {\r\n this._setOption('currency', value);\r\n }\r\n get formatter() {\r\n return this._getOption('formatter');\r\n }\r\n set formatter(value) {\r\n this._setOption('formatter', value);\r\n }\r\n get parser() {\r\n return this._getOption('parser');\r\n }\r\n set parser(value) {\r\n this._setOption('parser', value);\r\n }\r\n get precision() {\r\n return this._getOption('precision');\r\n }\r\n set precision(value) {\r\n this._setOption('precision', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get useCurrencyAccountingStyle() {\r\n return this._getOption('useCurrencyAccountingStyle');\r\n }\r\n set useCurrencyAccountingStyle(value) {\r\n this._setOption('useCurrencyAccountingStyle', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFormat.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFormat_BaseFactory; return function DxoFormat_Factory(t) { return (ɵDxoFormat_BaseFactory || (ɵDxoFormat_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFormat)))(t || DxoFormat); }; }();\r\n/** @nocollapse */ DxoFormat.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormat, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormat_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormat, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoArgumentFormatComponent extends DxoFormat {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'argumentFormat';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoArgumentFormatComponent.ɵfac = function DxoArgumentFormatComponent_Factory(t) { return new (t || DxoArgumentFormatComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoArgumentFormatComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoArgumentFormatComponent, selectors: [[\"dxo-argument-format\"]], inputs: { currency: \"currency\", formatter: \"formatter\", parser: \"parser\", precision: \"precision\", type: \"type\", useCurrencyAccountingStyle: \"useCurrencyAccountingStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoArgumentFormatComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoArgumentFormatComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-argument-format',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'currency',\r\n 'formatter',\r\n 'parser',\r\n 'precision',\r\n 'type',\r\n 'useCurrencyAccountingStyle'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoArgumentFormatModule {\r\n}\r\n/** @nocollapse */ DxoArgumentFormatModule.ɵfac = function DxoArgumentFormatModule_Factory(t) { return new (t || DxoArgumentFormatModule)(); };\r\n/** @nocollapse */ DxoArgumentFormatModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoArgumentFormatModule });\r\n/** @nocollapse */ DxoArgumentFormatModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoArgumentFormatModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoArgumentFormatComponent\r\n ],\r\n exports: [\r\n DxoArgumentFormatComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoArgumentFormatModule, { declarations: [DxoArgumentFormatComponent], exports: [DxoArgumentFormatComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAtComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'at';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAtComponent.ɵfac = function DxoAtComponent_Factory(t) { return new (t || DxoAtComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAtComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAtComponent, selectors: [[\"dxo-at\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAtComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAtComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-at',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAtModule {\r\n}\r\n/** @nocollapse */ DxoAtModule.ɵfac = function DxoAtModule_Factory(t) { return new (t || DxoAtModule)(); };\r\n/** @nocollapse */ DxoAtModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAtModule });\r\n/** @nocollapse */ DxoAtModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAtModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAtComponent\r\n ],\r\n exports: [\r\n DxoAtComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAtModule, { declarations: [DxoAtComponent], exports: [DxoAtComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAutoLayoutComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'autoLayout';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoAutoLayoutComponent.ɵfac = function DxoAutoLayoutComponent_Factory(t) { return new (t || DxoAutoLayoutComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoAutoLayoutComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAutoLayoutComponent, selectors: [[\"dxo-auto-layout\"]], inputs: { orientation: \"orientation\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAutoLayoutComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAutoLayoutComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-auto-layout',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { orientation: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoAutoLayoutModule {\r\n}\r\n/** @nocollapse */ DxoAutoLayoutModule.ɵfac = function DxoAutoLayoutModule_Factory(t) { return new (t || DxoAutoLayoutModule)(); };\r\n/** @nocollapse */ DxoAutoLayoutModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoAutoLayoutModule });\r\n/** @nocollapse */ DxoAutoLayoutModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAutoLayoutModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoAutoLayoutComponent\r\n ],\r\n exports: [\r\n DxoAutoLayoutComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoAutoLayoutModule, { declarations: [DxoAutoLayoutComponent], exports: [DxoAutoLayoutComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoChartsColor extends NestedOption {\r\n get base() {\r\n return this._getOption('base');\r\n }\r\n set base(value) {\r\n this._setOption('base', value);\r\n }\r\n get fillId() {\r\n return this._getOption('fillId');\r\n }\r\n set fillId(value) {\r\n this._setOption('fillId', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoChartsColor.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoChartsColor_BaseFactory; return function DxoChartsColor_Factory(t) { return (ɵDxoChartsColor_BaseFactory || (ɵDxoChartsColor_BaseFactory = i0.ɵɵgetInheritedFactory(DxoChartsColor)))(t || DxoChartsColor); }; }();\r\n/** @nocollapse */ DxoChartsColor.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoChartsColor, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoChartsColor_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoChartsColor, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBackgroundColorComponent extends DxoChartsColor {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'backgroundColor';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBackgroundColorComponent.ɵfac = function DxoBackgroundColorComponent_Factory(t) { return new (t || DxoBackgroundColorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBackgroundColorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBackgroundColorComponent, selectors: [[\"dxo-background-color\"]], inputs: { base: \"base\", fillId: \"fillId\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBackgroundColorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBackgroundColorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-background-color',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'base',\r\n 'fillId'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoBackgroundColorModule {\r\n}\r\n/** @nocollapse */ DxoBackgroundColorModule.ɵfac = function DxoBackgroundColorModule_Factory(t) { return new (t || DxoBackgroundColorModule)(); };\r\n/** @nocollapse */ DxoBackgroundColorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBackgroundColorModule });\r\n/** @nocollapse */ DxoBackgroundColorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBackgroundColorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBackgroundColorComponent\r\n ],\r\n exports: [\r\n DxoBackgroundColorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBackgroundColorModule, { declarations: [DxoBackgroundColorComponent], exports: [DxoBackgroundColorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBackgroundComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get image() {\r\n return this._getOption('image');\r\n }\r\n set image(value) {\r\n this._setOption('image', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get borderColor() {\r\n return this._getOption('borderColor');\r\n }\r\n set borderColor(value) {\r\n this._setOption('borderColor', value);\r\n }\r\n get _optionPath() {\r\n return 'background';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBackgroundComponent.ɵfac = function DxoBackgroundComponent_Factory(t) { return new (t || DxoBackgroundComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBackgroundComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBackgroundComponent, selectors: [[\"dxo-background\"]], inputs: { color: \"color\", image: \"image\", visible: \"visible\", borderColor: \"borderColor\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBackgroundComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBackgroundComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-background',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], image: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], borderColor: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoBackgroundModule {\r\n}\r\n/** @nocollapse */ DxoBackgroundModule.ɵfac = function DxoBackgroundModule_Factory(t) { return new (t || DxoBackgroundModule)(); };\r\n/** @nocollapse */ DxoBackgroundModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBackgroundModule });\r\n/** @nocollapse */ DxoBackgroundModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBackgroundModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBackgroundComponent\r\n ],\r\n exports: [\r\n DxoBackgroundComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBackgroundModule, { declarations: [DxoBackgroundComponent], exports: [DxoBackgroundComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBarComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'bar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBarComponent.ɵfac = function DxoBarComponent_Factory(t) { return new (t || DxoBarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBarComponent, selectors: [[\"dxo-bar\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-bar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoBarModule {\r\n}\r\n/** @nocollapse */ DxoBarModule.ɵfac = function DxoBarModule_Factory(t) { return new (t || DxoBarModule)(); };\r\n/** @nocollapse */ DxoBarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBarModule });\r\n/** @nocollapse */ DxoBarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBarComponent\r\n ],\r\n exports: [\r\n DxoBarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBarModule, { declarations: [DxoBarComponent], exports: [DxoBarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBehaviorComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowSlidersSwap() {\r\n return this._getOption('allowSlidersSwap');\r\n }\r\n set allowSlidersSwap(value) {\r\n this._setOption('allowSlidersSwap', value);\r\n }\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n get callValueChanged() {\r\n return this._getOption('callValueChanged');\r\n }\r\n set callValueChanged(value) {\r\n this._setOption('callValueChanged', value);\r\n }\r\n get manualRangeSelectionEnabled() {\r\n return this._getOption('manualRangeSelectionEnabled');\r\n }\r\n set manualRangeSelectionEnabled(value) {\r\n this._setOption('manualRangeSelectionEnabled', value);\r\n }\r\n get moveSelectedRangeByClick() {\r\n return this._getOption('moveSelectedRangeByClick');\r\n }\r\n set moveSelectedRangeByClick(value) {\r\n this._setOption('moveSelectedRangeByClick', value);\r\n }\r\n get snapToTicks() {\r\n return this._getOption('snapToTicks');\r\n }\r\n set snapToTicks(value) {\r\n this._setOption('snapToTicks', value);\r\n }\r\n get valueChangeMode() {\r\n return this._getOption('valueChangeMode');\r\n }\r\n set valueChangeMode(value) {\r\n this._setOption('valueChangeMode', value);\r\n }\r\n get _optionPath() {\r\n return 'behavior';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBehaviorComponent.ɵfac = function DxoBehaviorComponent_Factory(t) { return new (t || DxoBehaviorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBehaviorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBehaviorComponent, selectors: [[\"dxo-behavior\"]], inputs: { allowSlidersSwap: \"allowSlidersSwap\", animationEnabled: \"animationEnabled\", callValueChanged: \"callValueChanged\", manualRangeSelectionEnabled: \"manualRangeSelectionEnabled\", moveSelectedRangeByClick: \"moveSelectedRangeByClick\", snapToTicks: \"snapToTicks\", valueChangeMode: \"valueChangeMode\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBehaviorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBehaviorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-behavior',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowSlidersSwap: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], callValueChanged: [{\r\n type: Input\r\n }], manualRangeSelectionEnabled: [{\r\n type: Input\r\n }], moveSelectedRangeByClick: [{\r\n type: Input\r\n }], snapToTicks: [{\r\n type: Input\r\n }], valueChangeMode: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoBehaviorModule {\r\n}\r\n/** @nocollapse */ DxoBehaviorModule.ɵfac = function DxoBehaviorModule_Factory(t) { return new (t || DxoBehaviorModule)(); };\r\n/** @nocollapse */ DxoBehaviorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBehaviorModule });\r\n/** @nocollapse */ DxoBehaviorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBehaviorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBehaviorComponent\r\n ],\r\n exports: [\r\n DxoBehaviorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBehaviorModule, { declarations: [DxoBehaviorComponent], exports: [DxoBehaviorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBorderComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get cornerRadius() {\r\n return this._getOption('cornerRadius');\r\n }\r\n set cornerRadius(value) {\r\n this._setOption('cornerRadius', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get bottom() {\r\n return this._getOption('bottom');\r\n }\r\n set bottom(value) {\r\n this._setOption('bottom', value);\r\n }\r\n get left() {\r\n return this._getOption('left');\r\n }\r\n set left(value) {\r\n this._setOption('left', value);\r\n }\r\n get right() {\r\n return this._getOption('right');\r\n }\r\n set right(value) {\r\n this._setOption('right', value);\r\n }\r\n get top() {\r\n return this._getOption('top');\r\n }\r\n set top(value) {\r\n this._setOption('top', value);\r\n }\r\n get _optionPath() {\r\n return 'border';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBorderComponent.ɵfac = function DxoBorderComponent_Factory(t) { return new (t || DxoBorderComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBorderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBorderComponent, selectors: [[\"dxo-border\"]], inputs: { color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", opacity: \"opacity\", visible: \"visible\", width: \"width\", bottom: \"bottom\", left: \"left\", right: \"right\", top: \"top\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBorderComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBorderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-border',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], cornerRadius: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], bottom: [{\r\n type: Input\r\n }], left: [{\r\n type: Input\r\n }], right: [{\r\n type: Input\r\n }], top: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoBorderModule {\r\n}\r\n/** @nocollapse */ DxoBorderModule.ɵfac = function DxoBorderModule_Factory(t) { return new (t || DxoBorderModule)(); };\r\n/** @nocollapse */ DxoBorderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBorderModule });\r\n/** @nocollapse */ DxoBorderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBorderModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBorderComponent\r\n ],\r\n exports: [\r\n DxoBorderComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBorderModule, { declarations: [DxoBorderComponent], exports: [DxoBorderComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBoundaryOffsetComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'boundaryOffset';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBoundaryOffsetComponent.ɵfac = function DxoBoundaryOffsetComponent_Factory(t) { return new (t || DxoBoundaryOffsetComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBoundaryOffsetComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBoundaryOffsetComponent, selectors: [[\"dxo-boundary-offset\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBoundaryOffsetComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBoundaryOffsetComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-boundary-offset',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoBoundaryOffsetModule {\r\n}\r\n/** @nocollapse */ DxoBoundaryOffsetModule.ɵfac = function DxoBoundaryOffsetModule_Factory(t) { return new (t || DxoBoundaryOffsetModule)(); };\r\n/** @nocollapse */ DxoBoundaryOffsetModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBoundaryOffsetModule });\r\n/** @nocollapse */ DxoBoundaryOffsetModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBoundaryOffsetModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBoundaryOffsetComponent\r\n ],\r\n exports: [\r\n DxoBoundaryOffsetComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBoundaryOffsetModule, { declarations: [DxoBoundaryOffsetComponent], exports: [DxoBoundaryOffsetComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBoxOptions extends NestedOption {\r\n get align() {\r\n return this._getOption('align');\r\n }\r\n set align(value) {\r\n this._setOption('align', value);\r\n }\r\n get crossAlign() {\r\n return this._getOption('crossAlign');\r\n }\r\n set crossAlign(value) {\r\n this._setOption('crossAlign', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onItemClick() {\r\n return this._getOption('onItemClick');\r\n }\r\n set onItemClick(value) {\r\n this._setOption('onItemClick', value);\r\n }\r\n get onItemContextMenu() {\r\n return this._getOption('onItemContextMenu');\r\n }\r\n set onItemContextMenu(value) {\r\n this._setOption('onItemContextMenu', value);\r\n }\r\n get onItemHold() {\r\n return this._getOption('onItemHold');\r\n }\r\n set onItemHold(value) {\r\n this._setOption('onItemHold', value);\r\n }\r\n get onItemRendered() {\r\n return this._getOption('onItemRendered');\r\n }\r\n set onItemRendered(value) {\r\n this._setOption('onItemRendered', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoBoxOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoBoxOptions_BaseFactory; return function DxoBoxOptions_Factory(t) { return (ɵDxoBoxOptions_BaseFactory || (ɵDxoBoxOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoBoxOptions)))(t || DxoBoxOptions); }; }();\r\n/** @nocollapse */ DxoBoxOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBoxOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBoxOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBoxOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiButtonGroupItem extends CollectionNestedOption {\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get html() {\r\n return this._getOption('html');\r\n }\r\n set html(value) {\r\n this._setOption('html', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get titleTemplate() {\r\n return this._getOption('titleTemplate');\r\n }\r\n set titleTemplate(value) {\r\n this._setOption('titleTemplate', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get onClick() {\r\n return this._getOption('onClick');\r\n }\r\n set onClick(value) {\r\n this._setOption('onClick', value);\r\n }\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get baseSize() {\r\n return this._getOption('baseSize');\r\n }\r\n set baseSize(value) {\r\n this._setOption('baseSize', value);\r\n }\r\n get box() {\r\n return this._getOption('box');\r\n }\r\n set box(value) {\r\n this._setOption('box', value);\r\n }\r\n get ratio() {\r\n return this._getOption('ratio');\r\n }\r\n set ratio(value) {\r\n this._setOption('ratio', value);\r\n }\r\n get shrink() {\r\n return this._getOption('shrink');\r\n }\r\n set shrink(value) {\r\n this._setOption('shrink', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get beginGroup() {\r\n return this._getOption('beginGroup');\r\n }\r\n set beginGroup(value) {\r\n this._setOption('beginGroup', value);\r\n }\r\n get closeMenuOnClick() {\r\n return this._getOption('closeMenuOnClick');\r\n }\r\n set closeMenuOnClick(value) {\r\n this._setOption('closeMenuOnClick', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get selectable() {\r\n return this._getOption('selectable');\r\n }\r\n set selectable(value) {\r\n this._setOption('selectable', value);\r\n }\r\n get selected() {\r\n return this._getOption('selected');\r\n }\r\n set selected(value) {\r\n this._setOption('selected', value);\r\n }\r\n get colSpan() {\r\n return this._getOption('colSpan');\r\n }\r\n set colSpan(value) {\r\n this._setOption('colSpan', value);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get editorOptions() {\r\n return this._getOption('editorOptions');\r\n }\r\n set editorOptions(value) {\r\n this._setOption('editorOptions', value);\r\n }\r\n get editorType() {\r\n return this._getOption('editorType');\r\n }\r\n set editorType(value) {\r\n this._setOption('editorType', value);\r\n }\r\n get helpText() {\r\n return this._getOption('helpText');\r\n }\r\n set helpText(value) {\r\n this._setOption('helpText', value);\r\n }\r\n get isRequired() {\r\n return this._getOption('isRequired');\r\n }\r\n set isRequired(value) {\r\n this._setOption('isRequired', value);\r\n }\r\n get itemType() {\r\n return this._getOption('itemType');\r\n }\r\n set itemType(value) {\r\n this._setOption('itemType', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get validationRules() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRules(value) {\r\n this._setOption('validationRules', value);\r\n }\r\n get visibleIndex() {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n get alignItemLabels() {\r\n return this._getOption('alignItemLabels');\r\n }\r\n set alignItemLabels(value) {\r\n this._setOption('alignItemLabels', value);\r\n }\r\n get caption() {\r\n return this._getOption('caption');\r\n }\r\n set caption(value) {\r\n this._setOption('caption', value);\r\n }\r\n get colCount() {\r\n return this._getOption('colCount');\r\n }\r\n set colCount(value) {\r\n this._setOption('colCount', value);\r\n }\r\n get colCountByScreen() {\r\n return this._getOption('colCountByScreen');\r\n }\r\n set colCountByScreen(value) {\r\n this._setOption('colCountByScreen', value);\r\n }\r\n get tabPanelOptions() {\r\n return this._getOption('tabPanelOptions');\r\n }\r\n set tabPanelOptions(value) {\r\n this._setOption('tabPanelOptions', value);\r\n }\r\n get tabs() {\r\n return this._getOption('tabs');\r\n }\r\n set tabs(value) {\r\n this._setOption('tabs', value);\r\n }\r\n get badge() {\r\n return this._getOption('badge');\r\n }\r\n set badge(value) {\r\n this._setOption('badge', value);\r\n }\r\n get tabTemplate() {\r\n return this._getOption('tabTemplate');\r\n }\r\n set tabTemplate(value) {\r\n this._setOption('tabTemplate', value);\r\n }\r\n get buttonOptions() {\r\n return this._getOption('buttonOptions');\r\n }\r\n set buttonOptions(value) {\r\n this._setOption('buttonOptions', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get locateInMenu() {\r\n return this._getOption('locateInMenu');\r\n }\r\n set locateInMenu(value) {\r\n this._setOption('locateInMenu', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get menuItemTemplate() {\r\n return this._getOption('menuItemTemplate');\r\n }\r\n set menuItemTemplate(value) {\r\n this._setOption('menuItemTemplate', value);\r\n }\r\n get options() {\r\n return this._getOption('options');\r\n }\r\n set options(value) {\r\n this._setOption('options', value);\r\n }\r\n get showText() {\r\n return this._getOption('showText');\r\n }\r\n set showText(value) {\r\n this._setOption('showText', value);\r\n }\r\n get widget() {\r\n return this._getOption('widget');\r\n }\r\n set widget(value) {\r\n this._setOption('widget', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get imageAlt() {\r\n return this._getOption('imageAlt');\r\n }\r\n set imageAlt(value) {\r\n this._setOption('imageAlt', value);\r\n }\r\n get imageSrc() {\r\n return this._getOption('imageSrc');\r\n }\r\n set imageSrc(value) {\r\n this._setOption('imageSrc', value);\r\n }\r\n get acceptedValues() {\r\n return this._getOption('acceptedValues');\r\n }\r\n set acceptedValues(value) {\r\n this._setOption('acceptedValues', value);\r\n }\r\n get formatName() {\r\n return this._getOption('formatName');\r\n }\r\n set formatName(value) {\r\n this._setOption('formatName', value);\r\n }\r\n get formatValues() {\r\n return this._getOption('formatValues');\r\n }\r\n set formatValues(value) {\r\n this._setOption('formatValues', value);\r\n }\r\n get key() {\r\n return this._getOption('key');\r\n }\r\n set key(value) {\r\n this._setOption('key', value);\r\n }\r\n get showChevron() {\r\n return this._getOption('showChevron');\r\n }\r\n set showChevron(value) {\r\n this._setOption('showChevron', value);\r\n }\r\n get linkAttr() {\r\n return this._getOption('linkAttr');\r\n }\r\n set linkAttr(value) {\r\n this._setOption('linkAttr', value);\r\n }\r\n get url() {\r\n return this._getOption('url');\r\n }\r\n set url(value) {\r\n this._setOption('url', value);\r\n }\r\n get heightRatio() {\r\n return this._getOption('heightRatio');\r\n }\r\n set heightRatio(value) {\r\n this._setOption('heightRatio', value);\r\n }\r\n get widthRatio() {\r\n return this._getOption('widthRatio');\r\n }\r\n set widthRatio(value) {\r\n this._setOption('widthRatio', value);\r\n }\r\n get expanded() {\r\n return this._getOption('expanded');\r\n }\r\n set expanded(value) {\r\n this._setOption('expanded', value);\r\n }\r\n get hasItems() {\r\n return this._getOption('hasItems');\r\n }\r\n set hasItems(value) {\r\n this._setOption('hasItems', value);\r\n }\r\n get id() {\r\n return this._getOption('id');\r\n }\r\n set id(value) {\r\n this._setOption('id', value);\r\n }\r\n get parentId() {\r\n return this._getOption('parentId');\r\n }\r\n set parentId(value) {\r\n this._setOption('parentId', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiButtonGroupItem.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiButtonGroupItem_BaseFactory; return function DxiButtonGroupItem_Factory(t) { return (ɵDxiButtonGroupItem_BaseFactory || (ɵDxiButtonGroupItem_BaseFactory = i0.ɵɵgetInheritedFactory(DxiButtonGroupItem)))(t || DxiButtonGroupItem); }; }();\r\n/** @nocollapse */ DxiButtonGroupItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiButtonGroupItem, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiButtonGroupItem_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiButtonGroupItem, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiValidationRuleComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get message() {\r\n return this._getOption('message');\r\n }\r\n set message(value) {\r\n this._setOption('message', value);\r\n }\r\n get trim() {\r\n return this._getOption('trim');\r\n }\r\n set trim(value) {\r\n this._setOption('trim', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get ignoreEmptyValue() {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n get reevaluate() {\r\n return this._getOption('reevaluate');\r\n }\r\n set reevaluate(value) {\r\n this._setOption('reevaluate', value);\r\n }\r\n get validationCallback() {\r\n return this._getOption('validationCallback');\r\n }\r\n set validationCallback(value) {\r\n this._setOption('validationCallback', value);\r\n }\r\n get comparisonTarget() {\r\n return this._getOption('comparisonTarget');\r\n }\r\n set comparisonTarget(value) {\r\n this._setOption('comparisonTarget', value);\r\n }\r\n get comparisonType() {\r\n return this._getOption('comparisonType');\r\n }\r\n set comparisonType(value) {\r\n this._setOption('comparisonType', value);\r\n }\r\n get pattern() {\r\n return this._getOption('pattern');\r\n }\r\n set pattern(value) {\r\n this._setOption('pattern', value);\r\n }\r\n get _optionPath() {\r\n return 'validationRules';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiValidationRuleComponent.ɵfac = function DxiValidationRuleComponent_Factory(t) { return new (t || DxiValidationRuleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiValidationRuleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiValidationRuleComponent, selectors: [[\"dxi-validation-rule\"]], inputs: { message: \"message\", trim: \"trim\", type: \"type\", ignoreEmptyValue: \"ignoreEmptyValue\", max: \"max\", min: \"min\", reevaluate: \"reevaluate\", validationCallback: \"validationCallback\", comparisonTarget: \"comparisonTarget\", comparisonType: \"comparisonType\", pattern: \"pattern\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiValidationRuleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiValidationRuleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-validation-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { message: [{\r\n type: Input\r\n }], trim: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], ignoreEmptyValue: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], reevaluate: [{\r\n type: Input\r\n }], validationCallback: [{\r\n type: Input\r\n }], comparisonTarget: [{\r\n type: Input\r\n }], comparisonType: [{\r\n type: Input\r\n }], pattern: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiValidationRuleModule {\r\n}\r\n/** @nocollapse */ DxiValidationRuleModule.ɵfac = function DxiValidationRuleModule_Factory(t) { return new (t || DxiValidationRuleModule)(); };\r\n/** @nocollapse */ DxiValidationRuleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiValidationRuleModule });\r\n/** @nocollapse */ DxiValidationRuleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiValidationRuleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiValidationRuleComponent\r\n ],\r\n exports: [\r\n DxiValidationRuleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiValidationRuleModule, { declarations: [DxiValidationRuleComponent], exports: [DxiValidationRuleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiHtmlEditorImageUploadTabItem extends CollectionNestedOption {\r\n get alignItemLabels() {\r\n return this._getOption('alignItemLabels');\r\n }\r\n set alignItemLabels(value) {\r\n this._setOption('alignItemLabels', value);\r\n }\r\n get badge() {\r\n return this._getOption('badge');\r\n }\r\n set badge(value) {\r\n this._setOption('badge', value);\r\n }\r\n get colCount() {\r\n return this._getOption('colCount');\r\n }\r\n set colCount(value) {\r\n this._setOption('colCount', value);\r\n }\r\n get colCountByScreen() {\r\n return this._getOption('colCountByScreen');\r\n }\r\n set colCountByScreen(value) {\r\n this._setOption('colCountByScreen', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get tabTemplate() {\r\n return this._getOption('tabTemplate');\r\n }\r\n set tabTemplate(value) {\r\n this._setOption('tabTemplate', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get groups() {\r\n return this._getOption('groups');\r\n }\r\n set groups(value) {\r\n this._setOption('groups', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiHtmlEditorImageUploadTabItem.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiHtmlEditorImageUploadTabItem_BaseFactory; return function DxiHtmlEditorImageUploadTabItem_Factory(t) { return (ɵDxiHtmlEditorImageUploadTabItem_BaseFactory || (ɵDxiHtmlEditorImageUploadTabItem_BaseFactory = i0.ɵɵgetInheritedFactory(DxiHtmlEditorImageUploadTabItem)))(t || DxiHtmlEditorImageUploadTabItem); }; }();\r\n/** @nocollapse */ DxiHtmlEditorImageUploadTabItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiHtmlEditorImageUploadTabItem, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiHtmlEditorImageUploadTabItem_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiHtmlEditorImageUploadTabItem, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiDiagramCustomCommand extends CollectionNestedOption {\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiDiagramCustomCommand.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiDiagramCustomCommand_BaseFactory; return function DxiDiagramCustomCommand_Factory(t) { return (ɵDxiDiagramCustomCommand_BaseFactory || (ɵDxiDiagramCustomCommand_BaseFactory = i0.ɵɵgetInheritedFactory(DxiDiagramCustomCommand)))(t || DxiDiagramCustomCommand); }; }();\r\n/** @nocollapse */ DxiDiagramCustomCommand.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiDiagramCustomCommand, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiDiagramCustomCommand_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiDiagramCustomCommand, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiCommandComponent extends DxiDiagramCustomCommand {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'commands';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiCommandComponent.ɵfac = function DxiCommandComponent_Factory(t) { return new (t || DxiCommandComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiCommandComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiCommandComponent, selectors: [[\"dxi-command\"]], contentQueries: function DxiCommandComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { icon: \"icon\", items: \"items\", location: \"location\", name: \"name\", text: \"text\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiCommandComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCommandComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-command',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'icon',\r\n 'items',\r\n 'location',\r\n 'name',\r\n 'text'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxiCommandModule {\r\n}\r\n/** @nocollapse */ DxiCommandModule.ɵfac = function DxiCommandModule_Factory(t) { return new (t || DxiCommandModule)(); };\r\n/** @nocollapse */ DxiCommandModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiCommandModule });\r\n/** @nocollapse */ DxiCommandModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCommandModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiCommandComponent\r\n ],\r\n exports: [\r\n DxiCommandComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiCommandModule, { declarations: [DxiCommandComponent], exports: [DxiCommandComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiGroupComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get category() {\r\n return this._getOption('category');\r\n }\r\n set category(value) {\r\n this._setOption('category', value);\r\n }\r\n get displayMode() {\r\n return this._getOption('displayMode');\r\n }\r\n set displayMode(value) {\r\n this._setOption('displayMode', value);\r\n }\r\n get expanded() {\r\n return this._getOption('expanded');\r\n }\r\n set expanded(value) {\r\n this._setOption('expanded', value);\r\n }\r\n get shapes() {\r\n return this._getOption('shapes');\r\n }\r\n set shapes(value) {\r\n this._setOption('shapes', value);\r\n }\r\n get _optionPath() {\r\n return 'groups';\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiGroupComponent.ɵfac = function DxiGroupComponent_Factory(t) { return new (t || DxiGroupComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiGroupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiGroupComponent, selectors: [[\"dxi-group\"]], contentQueries: function DxiGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n } }, inputs: { commands: \"commands\", title: \"title\", category: \"category\", displayMode: \"displayMode\", expanded: \"expanded\", shapes: \"shapes\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiGroupComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiGroupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-group',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { commands: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], category: [{\r\n type: Input\r\n }], displayMode: [{\r\n type: Input\r\n }], expanded: [{\r\n type: Input\r\n }], shapes: [{\r\n type: Input\r\n }], commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }] }); })();\r\nclass DxiGroupModule {\r\n}\r\n/** @nocollapse */ DxiGroupModule.ɵfac = function DxiGroupModule_Factory(t) { return new (t || DxiGroupModule)(); };\r\n/** @nocollapse */ DxiGroupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiGroupModule });\r\n/** @nocollapse */ DxiGroupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiGroupModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiGroupComponent\r\n ],\r\n exports: [\r\n DxiGroupComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiGroupModule, { declarations: [DxiGroupComponent], exports: [DxiGroupComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0$4 = [\"*\"];\r\nclass DxiTabComponent extends DxiHtmlEditorImageUploadTabItem {\r\n constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {\r\n super();\r\n this.renderer = renderer;\r\n this.document = document;\r\n this.element = element;\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n get _optionPath() {\r\n return 'tabs';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n get groupsChildren() {\r\n return this._getOption('groups');\r\n }\r\n set groupsChildren(value) {\r\n this.setChildren('groups', value);\r\n }\r\n setTemplate(template) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiTabComponent.ɵfac = function DxiTabComponent_Factory(t) { return new (t || DxiTabComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.DxTemplateHost, 1), i0.ɵɵdirectiveInject(i0.ElementRef)); };\r\n/** @nocollapse */ DxiTabComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiTabComponent, selectors: [[\"dxi-tab\"]], contentQueries: function DxiTabComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiGroupComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groupsChildren = _t);\r\n } }, inputs: { alignItemLabels: \"alignItemLabels\", badge: \"badge\", colCount: \"colCount\", colCountByScreen: \"colCountByScreen\", disabled: \"disabled\", icon: \"icon\", items: \"items\", tabTemplate: \"tabTemplate\", template: \"template\", title: \"title\", commands: \"commands\", groups: \"groups\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost, DxTemplateHost]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$4, decls: 1, vars: 0, template: function DxiTabComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiTabComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-tab',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost],\r\n inputs: [\r\n 'alignItemLabels',\r\n 'badge',\r\n 'colCount',\r\n 'colCountByScreen',\r\n 'disabled',\r\n 'icon',\r\n 'items',\r\n 'tabTemplate',\r\n 'template',\r\n 'title',\r\n 'commands',\r\n 'groups',\r\n 'name'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i1.DxTemplateHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.ElementRef }]; }, { itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }], commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }], groupsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiGroupComponent)]\r\n }] }); })();\r\nclass DxiTabModule {\r\n}\r\n/** @nocollapse */ DxiTabModule.ɵfac = function DxiTabModule_Factory(t) { return new (t || DxiTabModule)(); };\r\n/** @nocollapse */ DxiTabModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiTabModule });\r\n/** @nocollapse */ DxiTabModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiTabModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiTabComponent\r\n ],\r\n exports: [\r\n DxiTabComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiTabModule, { declarations: [DxiTabComponent], exports: [DxiTabComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiLocationComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get lat() {\r\n return this._getOption('lat');\r\n }\r\n set lat(value) {\r\n this._setOption('lat', value);\r\n }\r\n get lng() {\r\n return this._getOption('lng');\r\n }\r\n set lng(value) {\r\n this._setOption('lng', value);\r\n }\r\n get col() {\r\n return this._getOption('col');\r\n }\r\n set col(value) {\r\n this._setOption('col', value);\r\n }\r\n get colspan() {\r\n return this._getOption('colspan');\r\n }\r\n set colspan(value) {\r\n this._setOption('colspan', value);\r\n }\r\n get row() {\r\n return this._getOption('row');\r\n }\r\n set row(value) {\r\n this._setOption('row', value);\r\n }\r\n get rowspan() {\r\n return this._getOption('rowspan');\r\n }\r\n set rowspan(value) {\r\n this._setOption('rowspan', value);\r\n }\r\n get screen() {\r\n return this._getOption('screen');\r\n }\r\n set screen(value) {\r\n this._setOption('screen', value);\r\n }\r\n get _optionPath() {\r\n return 'location';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiLocationComponent.ɵfac = function DxiLocationComponent_Factory(t) { return new (t || DxiLocationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiLocationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiLocationComponent, selectors: [[\"dxi-location\"]], inputs: { lat: \"lat\", lng: \"lng\", col: \"col\", colspan: \"colspan\", row: \"row\", rowspan: \"rowspan\", screen: \"screen\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiLocationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLocationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-location',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { lat: [{\r\n type: Input\r\n }], lng: [{\r\n type: Input\r\n }], col: [{\r\n type: Input\r\n }], colspan: [{\r\n type: Input\r\n }], row: [{\r\n type: Input\r\n }], rowspan: [{\r\n type: Input\r\n }], screen: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiLocationModule {\r\n}\r\n/** @nocollapse */ DxiLocationModule.ɵfac = function DxiLocationModule_Factory(t) { return new (t || DxiLocationModule)(); };\r\n/** @nocollapse */ DxiLocationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiLocationModule });\r\n/** @nocollapse */ DxiLocationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLocationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiLocationComponent\r\n ],\r\n exports: [\r\n DxiLocationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiLocationModule, { declarations: [DxiLocationComponent], exports: [DxiLocationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0$3 = [\"*\"];\r\nclass DxiItemComponent extends DxiButtonGroupItem {\r\n constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {\r\n super();\r\n this.renderer = renderer;\r\n this.document = document;\r\n this.element = element;\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n get _optionPath() {\r\n return 'items';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n get validationRulesChildren() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRulesChildren(value) {\r\n this.setChildren('validationRules', value);\r\n }\r\n get tabsChildren() {\r\n return this._getOption('tabs');\r\n }\r\n set tabsChildren(value) {\r\n this.setChildren('tabs', value);\r\n }\r\n get locationChildren() {\r\n return this._getOption('location');\r\n }\r\n set locationChildren(value) {\r\n this.setChildren('location', value);\r\n }\r\n setTemplate(template) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiItemComponent.ɵfac = function DxiItemComponent_Factory(t) { return new (t || DxiItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.DxTemplateHost, 1), i0.ɵɵdirectiveInject(i0.ElementRef)); };\r\n/** @nocollapse */ DxiItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiItemComponent, selectors: [[\"dxi-item\"]], contentQueries: function DxiItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiValidationRuleComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiTabComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiLocationComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.validationRulesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.locationChildren = _t);\r\n } }, inputs: { disabled: \"disabled\", html: \"html\", icon: \"icon\", template: \"template\", text: \"text\", title: \"title\", titleTemplate: \"titleTemplate\", visible: \"visible\", onClick: \"onClick\", stylingMode: \"stylingMode\", type: \"type\", baseSize: \"baseSize\", box: \"box\", ratio: \"ratio\", shrink: \"shrink\", elementAttr: \"elementAttr\", hint: \"hint\", beginGroup: \"beginGroup\", closeMenuOnClick: \"closeMenuOnClick\", items: \"items\", selectable: \"selectable\", selected: \"selected\", colSpan: \"colSpan\", cssClass: \"cssClass\", dataField: \"dataField\", editorOptions: \"editorOptions\", editorType: \"editorType\", helpText: \"helpText\", isRequired: \"isRequired\", itemType: \"itemType\", label: \"label\", name: \"name\", validationRules: \"validationRules\", visibleIndex: \"visibleIndex\", alignItemLabels: \"alignItemLabels\", caption: \"caption\", colCount: \"colCount\", colCountByScreen: \"colCountByScreen\", tabPanelOptions: \"tabPanelOptions\", tabs: \"tabs\", badge: \"badge\", tabTemplate: \"tabTemplate\", buttonOptions: \"buttonOptions\", horizontalAlignment: \"horizontalAlignment\", verticalAlignment: \"verticalAlignment\", locateInMenu: \"locateInMenu\", location: \"location\", menuItemTemplate: \"menuItemTemplate\", options: \"options\", showText: \"showText\", widget: \"widget\", height: \"height\", width: \"width\", imageAlt: \"imageAlt\", imageSrc: \"imageSrc\", acceptedValues: \"acceptedValues\", formatName: \"formatName\", formatValues: \"formatValues\", key: \"key\", showChevron: \"showChevron\", linkAttr: \"linkAttr\", url: \"url\", heightRatio: \"heightRatio\", widthRatio: \"widthRatio\", expanded: \"expanded\", hasItems: \"hasItems\", id: \"id\", parentId: \"parentId\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost, DxTemplateHost]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$3, decls: 1, vars: 0, template: function DxiItemComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-item',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost],\r\n inputs: [\r\n 'disabled',\r\n 'html',\r\n 'icon',\r\n 'template',\r\n 'text',\r\n 'title',\r\n 'titleTemplate',\r\n 'visible',\r\n 'onClick',\r\n 'stylingMode',\r\n 'type',\r\n 'baseSize',\r\n 'box',\r\n 'ratio',\r\n 'shrink',\r\n 'elementAttr',\r\n 'hint',\r\n 'beginGroup',\r\n 'closeMenuOnClick',\r\n 'items',\r\n 'selectable',\r\n 'selected',\r\n 'colSpan',\r\n 'cssClass',\r\n 'dataField',\r\n 'editorOptions',\r\n 'editorType',\r\n 'helpText',\r\n 'isRequired',\r\n 'itemType',\r\n 'label',\r\n 'name',\r\n 'validationRules',\r\n 'visibleIndex',\r\n 'alignItemLabels',\r\n 'caption',\r\n 'colCount',\r\n 'colCountByScreen',\r\n 'tabPanelOptions',\r\n 'tabs',\r\n 'badge',\r\n 'tabTemplate',\r\n 'buttonOptions',\r\n 'horizontalAlignment',\r\n 'verticalAlignment',\r\n 'locateInMenu',\r\n 'location',\r\n 'menuItemTemplate',\r\n 'options',\r\n 'showText',\r\n 'widget',\r\n 'height',\r\n 'width',\r\n 'imageAlt',\r\n 'imageSrc',\r\n 'acceptedValues',\r\n 'formatName',\r\n 'formatValues',\r\n 'key',\r\n 'showChevron',\r\n 'linkAttr',\r\n 'url',\r\n 'heightRatio',\r\n 'widthRatio',\r\n 'expanded',\r\n 'hasItems',\r\n 'id',\r\n 'parentId'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i1.DxTemplateHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.ElementRef }]; }, { itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }], validationRulesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiValidationRuleComponent)]\r\n }], tabsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiTabComponent)]\r\n }], locationChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiLocationComponent)]\r\n }] }); })();\r\nclass DxiItemModule {\r\n}\r\n/** @nocollapse */ DxiItemModule.ɵfac = function DxiItemModule_Factory(t) { return new (t || DxiItemModule)(); };\r\n/** @nocollapse */ DxiItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiItemModule });\r\n/** @nocollapse */ DxiItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiItemComponent\r\n ],\r\n exports: [\r\n DxiItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiItemModule, { declarations: [DxiItemComponent], exports: [DxiItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBoxComponent extends DxoBoxOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'itemsChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'box';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBoxComponent.ɵfac = function DxoBoxComponent_Factory(t) { return new (t || DxoBoxComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBoxComponent, selectors: [[\"dxo-box\"]], contentQueries: function DxoBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { align: \"align\", crossAlign: \"crossAlign\", dataSource: \"dataSource\", direction: \"direction\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", rtlEnabled: \"rtlEnabled\", visible: \"visible\", width: \"width\" }, outputs: { itemsChange: \"itemsChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBoxComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-box',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'align',\r\n 'crossAlign',\r\n 'dataSource',\r\n 'direction',\r\n 'disabled',\r\n 'elementAttr',\r\n 'height',\r\n 'hoverStateEnabled',\r\n 'itemHoldTimeout',\r\n 'items',\r\n 'itemTemplate',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onInitialized',\r\n 'onItemClick',\r\n 'onItemContextMenu',\r\n 'onItemHold',\r\n 'onItemRendered',\r\n 'onOptionChanged',\r\n 'rtlEnabled',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { itemsChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoBoxModule {\r\n}\r\n/** @nocollapse */ DxoBoxModule.ɵfac = function DxoBoxModule_Factory(t) { return new (t || DxoBoxModule)(); };\r\n/** @nocollapse */ DxoBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBoxModule });\r\n/** @nocollapse */ DxoBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBoxComponent\r\n ],\r\n exports: [\r\n DxoBoxComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBoxModule, { declarations: [DxoBoxComponent], exports: [DxoBoxComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBreakStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get line() {\r\n return this._getOption('line');\r\n }\r\n set line(value) {\r\n this._setOption('line', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'breakStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBreakStyleComponent.ɵfac = function DxoBreakStyleComponent_Factory(t) { return new (t || DxoBreakStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBreakStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBreakStyleComponent, selectors: [[\"dxo-break-style\"]], inputs: { color: \"color\", line: \"line\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBreakStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBreakStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-break-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], line: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoBreakStyleModule {\r\n}\r\n/** @nocollapse */ DxoBreakStyleModule.ɵfac = function DxoBreakStyleModule_Factory(t) { return new (t || DxoBreakStyleModule)(); };\r\n/** @nocollapse */ DxoBreakStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBreakStyleModule });\r\n/** @nocollapse */ DxoBreakStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBreakStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBreakStyleComponent\r\n ],\r\n exports: [\r\n DxoBreakStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBreakStyleModule, { declarations: [DxoBreakStyleComponent], exports: [DxoBreakStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoBubbleComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'bubble';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoBubbleComponent.ɵfac = function DxoBubbleComponent_Factory(t) { return new (t || DxoBubbleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoBubbleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoBubbleComponent, selectors: [[\"dxo-bubble\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoBubbleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBubbleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-bubble',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoBubbleModule {\r\n}\r\n/** @nocollapse */ DxoBubbleModule.ɵfac = function DxoBubbleModule_Factory(t) { return new (t || DxoBubbleModule)(); };\r\n/** @nocollapse */ DxoBubbleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoBubbleModule });\r\n/** @nocollapse */ DxoBubbleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoBubbleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoBubbleComponent\r\n ],\r\n exports: [\r\n DxoBubbleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoBubbleModule, { declarations: [DxoBubbleComponent], exports: [DxoBubbleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiTextEditorButton extends CollectionNestedOption {\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get options() {\r\n return this._getOption('options');\r\n }\r\n set options(value) {\r\n this._setOption('options', value);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get onClick() {\r\n return this._getOption('onClick');\r\n }\r\n set onClick(value) {\r\n this._setOption('onClick', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiTextEditorButton.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiTextEditorButton_BaseFactory; return function DxiTextEditorButton_Factory(t) { return (ɵDxiTextEditorButton_BaseFactory || (ɵDxiTextEditorButton_BaseFactory = i0.ɵɵgetInheritedFactory(DxiTextEditorButton)))(t || DxiTextEditorButton); }; }();\r\n/** @nocollapse */ DxiTextEditorButton.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiTextEditorButton, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiTextEditorButton_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiTextEditorButton, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiButtonComponent extends DxiTextEditorButton {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'buttons';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiButtonComponent.ɵfac = function DxiButtonComponent_Factory(t) { return new (t || DxiButtonComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiButtonComponent, selectors: [[\"dxi-button\"]], inputs: { location: \"location\", name: \"name\", options: \"options\", cssClass: \"cssClass\", disabled: \"disabled\", hint: \"hint\", icon: \"icon\", onClick: \"onClick\", template: \"template\", text: \"text\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiButtonComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiButtonComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-button',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'location',\r\n 'name',\r\n 'options',\r\n 'cssClass',\r\n 'disabled',\r\n 'hint',\r\n 'icon',\r\n 'onClick',\r\n 'template',\r\n 'text',\r\n 'visible'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiButtonModule {\r\n}\r\n/** @nocollapse */ DxiButtonModule.ɵfac = function DxiButtonModule_Factory(t) { return new (t || DxiButtonModule)(); };\r\n/** @nocollapse */ DxiButtonModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiButtonModule });\r\n/** @nocollapse */ DxiButtonModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiButtonModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiButtonComponent\r\n ],\r\n exports: [\r\n DxiButtonComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiButtonModule, { declarations: [DxiButtonComponent], exports: [DxiButtonComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoButtonOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get onClick() {\r\n return this._getOption('onClick');\r\n }\r\n set onClick(value) {\r\n this._setOption('onClick', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get useSubmitBehavior() {\r\n return this._getOption('useSubmitBehavior');\r\n }\r\n set useSubmitBehavior(value) {\r\n this._setOption('useSubmitBehavior', value);\r\n }\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoButtonOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoButtonOptions_BaseFactory; return function DxoButtonOptions_Factory(t) { return (ɵDxoButtonOptions_BaseFactory || (ɵDxoButtonOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoButtonOptions)))(t || DxoButtonOptions); }; }();\r\n/** @nocollapse */ DxoButtonOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoButtonOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoButtonOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoButtonOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoButtonOptionsComponent extends DxoButtonOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'buttonOptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoButtonOptionsComponent.ɵfac = function DxoButtonOptionsComponent_Factory(t) { return new (t || DxoButtonOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoButtonOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoButtonOptionsComponent, selectors: [[\"dxo-button-options\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", icon: \"icon\", onClick: \"onClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", rtlEnabled: \"rtlEnabled\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", template: \"template\", text: \"text\", type: \"type\", useSubmitBehavior: \"useSubmitBehavior\", validationGroup: \"validationGroup\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoButtonOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoButtonOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-button-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'disabled',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'icon',\r\n 'onClick',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'rtlEnabled',\r\n 'stylingMode',\r\n 'tabIndex',\r\n 'template',\r\n 'text',\r\n 'type',\r\n 'useSubmitBehavior',\r\n 'validationGroup',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoButtonOptionsModule {\r\n}\r\n/** @nocollapse */ DxoButtonOptionsModule.ɵfac = function DxoButtonOptionsModule_Factory(t) { return new (t || DxoButtonOptionsModule)(); };\r\n/** @nocollapse */ DxoButtonOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoButtonOptionsModule });\r\n/** @nocollapse */ DxoButtonOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoButtonOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoButtonOptionsComponent\r\n ],\r\n exports: [\r\n DxoButtonOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoButtonOptionsModule, { declarations: [DxoButtonOptionsComponent], exports: [DxoButtonOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCalendarOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get cellTemplate() {\r\n return this._getOption('cellTemplate');\r\n }\r\n set cellTemplate(value) {\r\n this._setOption('cellTemplate', value);\r\n }\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get disabledDates() {\r\n return this._getOption('disabledDates');\r\n }\r\n set disabledDates(value) {\r\n this._setOption('disabledDates', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get firstDayOfWeek() {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n get maxZoomLevel() {\r\n return this._getOption('maxZoomLevel');\r\n }\r\n set maxZoomLevel(value) {\r\n this._setOption('maxZoomLevel', value);\r\n }\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n get minZoomLevel() {\r\n return this._getOption('minZoomLevel');\r\n }\r\n set minZoomLevel(value) {\r\n this._setOption('minZoomLevel', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onValueChanged() {\r\n return this._getOption('onValueChanged');\r\n }\r\n set onValueChanged(value) {\r\n this._setOption('onValueChanged', value);\r\n }\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n get selectWeekOnClick() {\r\n return this._getOption('selectWeekOnClick');\r\n }\r\n set selectWeekOnClick(value) {\r\n this._setOption('selectWeekOnClick', value);\r\n }\r\n get showTodayButton() {\r\n return this._getOption('showTodayButton');\r\n }\r\n set showTodayButton(value) {\r\n this._setOption('showTodayButton', value);\r\n }\r\n get showWeekNumbers() {\r\n return this._getOption('showWeekNumbers');\r\n }\r\n set showWeekNumbers(value) {\r\n this._setOption('showWeekNumbers', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get weekNumberRule() {\r\n return this._getOption('weekNumberRule');\r\n }\r\n set weekNumberRule(value) {\r\n this._setOption('weekNumberRule', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get zoomLevel() {\r\n return this._getOption('zoomLevel');\r\n }\r\n set zoomLevel(value) {\r\n this._setOption('zoomLevel', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoCalendarOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoCalendarOptions_BaseFactory; return function DxoCalendarOptions_Factory(t) { return (ɵDxoCalendarOptions_BaseFactory || (ɵDxoCalendarOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoCalendarOptions)))(t || DxoCalendarOptions); }; }();\r\n/** @nocollapse */ DxoCalendarOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCalendarOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCalendarOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCalendarOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCalendarOptionsComponent extends DxoCalendarOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'valueChange' },\r\n { emit: 'zoomLevelChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'calendarOptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCalendarOptionsComponent.ɵfac = function DxoCalendarOptionsComponent_Factory(t) { return new (t || DxoCalendarOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCalendarOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCalendarOptionsComponent, selectors: [[\"dxo-calendar-options\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", cellTemplate: \"cellTemplate\", dateSerializationFormat: \"dateSerializationFormat\", disabled: \"disabled\", disabledDates: \"disabledDates\", elementAttr: \"elementAttr\", firstDayOfWeek: \"firstDayOfWeek\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", max: \"max\", maxZoomLevel: \"maxZoomLevel\", min: \"min\", minZoomLevel: \"minZoomLevel\", name: \"name\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", selectionMode: \"selectionMode\", selectWeekOnClick: \"selectWeekOnClick\", showTodayButton: \"showTodayButton\", showWeekNumbers: \"showWeekNumbers\", tabIndex: \"tabIndex\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", weekNumberRule: \"weekNumberRule\", width: \"width\", zoomLevel: \"zoomLevel\" }, outputs: { valueChange: \"valueChange\", zoomLevelChange: \"zoomLevelChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCalendarOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCalendarOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-calendar-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'cellTemplate',\r\n 'dateSerializationFormat',\r\n 'disabled',\r\n 'disabledDates',\r\n 'elementAttr',\r\n 'firstDayOfWeek',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'isDirty',\r\n 'isValid',\r\n 'max',\r\n 'maxZoomLevel',\r\n 'min',\r\n 'minZoomLevel',\r\n 'name',\r\n 'onDisposing',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onValueChanged',\r\n 'readOnly',\r\n 'rtlEnabled',\r\n 'selectionMode',\r\n 'selectWeekOnClick',\r\n 'showTodayButton',\r\n 'showWeekNumbers',\r\n 'tabIndex',\r\n 'validationError',\r\n 'validationErrors',\r\n 'validationMessageMode',\r\n 'validationMessagePosition',\r\n 'validationStatus',\r\n 'value',\r\n 'visible',\r\n 'weekNumberRule',\r\n 'width',\r\n 'zoomLevel'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { valueChange: [{\r\n type: Output\r\n }], zoomLevelChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoCalendarOptionsModule {\r\n}\r\n/** @nocollapse */ DxoCalendarOptionsModule.ɵfac = function DxoCalendarOptionsModule_Factory(t) { return new (t || DxoCalendarOptionsModule)(); };\r\n/** @nocollapse */ DxoCalendarOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCalendarOptionsModule });\r\n/** @nocollapse */ DxoCalendarOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCalendarOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCalendarOptionsComponent\r\n ],\r\n exports: [\r\n DxoCalendarOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCalendarOptionsModule, { declarations: [DxoCalendarOptionsComponent], exports: [DxoCalendarOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCandlestickComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'candlestick';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCandlestickComponent.ɵfac = function DxoCandlestickComponent_Factory(t) { return new (t || DxoCandlestickComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCandlestickComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCandlestickComponent, selectors: [[\"dxo-candlestick\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCandlestickComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCandlestickComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-candlestick',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoCandlestickModule {\r\n}\r\n/** @nocollapse */ DxoCandlestickModule.ɵfac = function DxoCandlestickModule_Factory(t) { return new (t || DxoCandlestickModule)(); };\r\n/** @nocollapse */ DxoCandlestickModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCandlestickModule });\r\n/** @nocollapse */ DxoCandlestickModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCandlestickModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCandlestickComponent\r\n ],\r\n exports: [\r\n DxoCandlestickComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCandlestickModule, { declarations: [DxoCandlestickComponent], exports: [DxoCandlestickComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiCenterComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get lat() {\r\n return this._getOption('lat');\r\n }\r\n set lat(value) {\r\n this._setOption('lat', value);\r\n }\r\n get lng() {\r\n return this._getOption('lng');\r\n }\r\n set lng(value) {\r\n this._setOption('lng', value);\r\n }\r\n get _optionPath() {\r\n return 'center';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiCenterComponent.ɵfac = function DxiCenterComponent_Factory(t) { return new (t || DxiCenterComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiCenterComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiCenterComponent, selectors: [[\"dxi-center\"]], inputs: { lat: \"lat\", lng: \"lng\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiCenterComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCenterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-center',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { lat: [{\r\n type: Input\r\n }], lng: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiCenterModule {\r\n}\r\n/** @nocollapse */ DxiCenterModule.ɵfac = function DxiCenterModule_Factory(t) { return new (t || DxiCenterModule)(); };\r\n/** @nocollapse */ DxiCenterModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiCenterModule });\r\n/** @nocollapse */ DxiCenterModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCenterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiCenterComponent\r\n ],\r\n exports: [\r\n DxiCenterComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiCenterModule, { declarations: [DxiCenterComponent], exports: [DxiCenterComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiDataChange extends CollectionNestedOption {\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get insertAfterKey() {\r\n return this._getOption('insertAfterKey');\r\n }\r\n set insertAfterKey(value) {\r\n this._setOption('insertAfterKey', value);\r\n }\r\n get insertBeforeKey() {\r\n return this._getOption('insertBeforeKey');\r\n }\r\n set insertBeforeKey(value) {\r\n this._setOption('insertBeforeKey', value);\r\n }\r\n get key() {\r\n return this._getOption('key');\r\n }\r\n set key(value) {\r\n this._setOption('key', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiDataChange.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiDataChange_BaseFactory; return function DxiDataChange_Factory(t) { return (ɵDxiDataChange_BaseFactory || (ɵDxiDataChange_BaseFactory = i0.ɵɵgetInheritedFactory(DxiDataChange)))(t || DxiDataChange); }; }();\r\n/** @nocollapse */ DxiDataChange.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiDataChange, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiDataChange_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiDataChange, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiChangeComponent extends DxiDataChange {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'changes';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiChangeComponent.ɵfac = function DxiChangeComponent_Factory(t) { return new (t || DxiChangeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiChangeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiChangeComponent, selectors: [[\"dxi-change\"]], inputs: { data: \"data\", insertAfterKey: \"insertAfterKey\", insertBeforeKey: \"insertBeforeKey\", key: \"key\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiChangeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiChangeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-change',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'data',\r\n 'insertAfterKey',\r\n 'insertBeforeKey',\r\n 'key',\r\n 'type'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiChangeModule {\r\n}\r\n/** @nocollapse */ DxiChangeModule.ɵfac = function DxiChangeModule_Factory(t) { return new (t || DxiChangeModule)(); };\r\n/** @nocollapse */ DxiChangeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiChangeModule });\r\n/** @nocollapse */ DxiChangeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiChangeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiChangeComponent\r\n ],\r\n exports: [\r\n DxiChangeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiChangeModule, { declarations: [DxiChangeComponent], exports: [DxiChangeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiChartSeries extends CollectionNestedOption {\r\n get aggregation() {\r\n return this._getOption('aggregation');\r\n }\r\n set aggregation(value) {\r\n this._setOption('aggregation', value);\r\n }\r\n get argumentField() {\r\n return this._getOption('argumentField');\r\n }\r\n set argumentField(value) {\r\n this._setOption('argumentField', value);\r\n }\r\n get axis() {\r\n return this._getOption('axis');\r\n }\r\n set axis(value) {\r\n this._setOption('axis', value);\r\n }\r\n get barOverlapGroup() {\r\n return this._getOption('barOverlapGroup');\r\n }\r\n set barOverlapGroup(value) {\r\n this._setOption('barOverlapGroup', value);\r\n }\r\n get barPadding() {\r\n return this._getOption('barPadding');\r\n }\r\n set barPadding(value) {\r\n this._setOption('barPadding', value);\r\n }\r\n get barWidth() {\r\n return this._getOption('barWidth');\r\n }\r\n set barWidth(value) {\r\n this._setOption('barWidth', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get closeValueField() {\r\n return this._getOption('closeValueField');\r\n }\r\n set closeValueField(value) {\r\n this._setOption('closeValueField', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get cornerRadius() {\r\n return this._getOption('cornerRadius');\r\n }\r\n set cornerRadius(value) {\r\n this._setOption('cornerRadius', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get highValueField() {\r\n return this._getOption('highValueField');\r\n }\r\n set highValueField(value) {\r\n this._setOption('highValueField', value);\r\n }\r\n get hoverMode() {\r\n return this._getOption('hoverMode');\r\n }\r\n set hoverMode(value) {\r\n this._setOption('hoverMode', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get ignoreEmptyPoints() {\r\n return this._getOption('ignoreEmptyPoints');\r\n }\r\n set ignoreEmptyPoints(value) {\r\n this._setOption('ignoreEmptyPoints', value);\r\n }\r\n get innerColor() {\r\n return this._getOption('innerColor');\r\n }\r\n set innerColor(value) {\r\n this._setOption('innerColor', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get lowValueField() {\r\n return this._getOption('lowValueField');\r\n }\r\n set lowValueField(value) {\r\n this._setOption('lowValueField', value);\r\n }\r\n get maxLabelCount() {\r\n return this._getOption('maxLabelCount');\r\n }\r\n set maxLabelCount(value) {\r\n this._setOption('maxLabelCount', value);\r\n }\r\n get minBarSize() {\r\n return this._getOption('minBarSize');\r\n }\r\n set minBarSize(value) {\r\n this._setOption('minBarSize', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get openValueField() {\r\n return this._getOption('openValueField');\r\n }\r\n set openValueField(value) {\r\n this._setOption('openValueField', value);\r\n }\r\n get pane() {\r\n return this._getOption('pane');\r\n }\r\n set pane(value) {\r\n this._setOption('pane', value);\r\n }\r\n get point() {\r\n return this._getOption('point');\r\n }\r\n set point(value) {\r\n this._setOption('point', value);\r\n }\r\n get rangeValue1Field() {\r\n return this._getOption('rangeValue1Field');\r\n }\r\n set rangeValue1Field(value) {\r\n this._setOption('rangeValue1Field', value);\r\n }\r\n get rangeValue2Field() {\r\n return this._getOption('rangeValue2Field');\r\n }\r\n set rangeValue2Field(value) {\r\n this._setOption('rangeValue2Field', value);\r\n }\r\n get reduction() {\r\n return this._getOption('reduction');\r\n }\r\n set reduction(value) {\r\n this._setOption('reduction', value);\r\n }\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get showInLegend() {\r\n return this._getOption('showInLegend');\r\n }\r\n set showInLegend(value) {\r\n this._setOption('showInLegend', value);\r\n }\r\n get sizeField() {\r\n return this._getOption('sizeField');\r\n }\r\n set sizeField(value) {\r\n this._setOption('sizeField', value);\r\n }\r\n get stack() {\r\n return this._getOption('stack');\r\n }\r\n set stack(value) {\r\n this._setOption('stack', value);\r\n }\r\n get tag() {\r\n return this._getOption('tag');\r\n }\r\n set tag(value) {\r\n this._setOption('tag', value);\r\n }\r\n get tagField() {\r\n return this._getOption('tagField');\r\n }\r\n set tagField(value) {\r\n this._setOption('tagField', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueErrorBar() {\r\n return this._getOption('valueErrorBar');\r\n }\r\n set valueErrorBar(value) {\r\n this._setOption('valueErrorBar', value);\r\n }\r\n get valueField() {\r\n return this._getOption('valueField');\r\n }\r\n set valueField(value) {\r\n this._setOption('valueField', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get argumentType() {\r\n return this._getOption('argumentType');\r\n }\r\n set argumentType(value) {\r\n this._setOption('argumentType', value);\r\n }\r\n get minSegmentSize() {\r\n return this._getOption('minSegmentSize');\r\n }\r\n set minSegmentSize(value) {\r\n this._setOption('minSegmentSize', value);\r\n }\r\n get smallValuesGrouping() {\r\n return this._getOption('smallValuesGrouping');\r\n }\r\n set smallValuesGrouping(value) {\r\n this._setOption('smallValuesGrouping', value);\r\n }\r\n get closed() {\r\n return this._getOption('closed');\r\n }\r\n set closed(value) {\r\n this._setOption('closed', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiChartSeries.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiChartSeries_BaseFactory; return function DxiChartSeries_Factory(t) { return (ɵDxiChartSeries_BaseFactory || (ɵDxiChartSeries_BaseFactory = i0.ɵɵgetInheritedFactory(DxiChartSeries)))(t || DxiChartSeries); }; }();\r\n/** @nocollapse */ DxiChartSeries.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiChartSeries, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiChartSeries_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiChartSeries, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiSeriesComponent extends DxiChartSeries {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'series';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiSeriesComponent.ɵfac = function DxiSeriesComponent_Factory(t) { return new (t || DxiSeriesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiSeriesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiSeriesComponent, selectors: [[\"dxi-series\"]], inputs: { aggregation: \"aggregation\", argumentField: \"argumentField\", axis: \"axis\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", name: \"name\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", stack: \"stack\", tag: \"tag\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", argumentType: \"argumentType\", minSegmentSize: \"minSegmentSize\", smallValuesGrouping: \"smallValuesGrouping\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiSeriesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiSeriesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-series',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'argumentField',\r\n 'axis',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'name',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'stack',\r\n 'tag',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'argumentType',\r\n 'minSegmentSize',\r\n 'smallValuesGrouping',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiSeriesModule {\r\n}\r\n/** @nocollapse */ DxiSeriesModule.ɵfac = function DxiSeriesModule_Factory(t) { return new (t || DxiSeriesModule)(); };\r\n/** @nocollapse */ DxiSeriesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiSeriesModule });\r\n/** @nocollapse */ DxiSeriesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiSeriesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiSeriesComponent\r\n ],\r\n exports: [\r\n DxiSeriesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiSeriesModule, { declarations: [DxiSeriesComponent], exports: [DxiSeriesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoChartComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get barGroupPadding() {\r\n return this._getOption('barGroupPadding');\r\n }\r\n set barGroupPadding(value) {\r\n this._setOption('barGroupPadding', value);\r\n }\r\n get barGroupWidth() {\r\n return this._getOption('barGroupWidth');\r\n }\r\n set barGroupWidth(value) {\r\n this._setOption('barGroupWidth', value);\r\n }\r\n get bottomIndent() {\r\n return this._getOption('bottomIndent');\r\n }\r\n set bottomIndent(value) {\r\n this._setOption('bottomIndent', value);\r\n }\r\n get commonSeriesSettings() {\r\n return this._getOption('commonSeriesSettings');\r\n }\r\n set commonSeriesSettings(value) {\r\n this._setOption('commonSeriesSettings', value);\r\n }\r\n get dataPrepareSettings() {\r\n return this._getOption('dataPrepareSettings');\r\n }\r\n set dataPrepareSettings(value) {\r\n this._setOption('dataPrepareSettings', value);\r\n }\r\n get maxBubbleSize() {\r\n return this._getOption('maxBubbleSize');\r\n }\r\n set maxBubbleSize(value) {\r\n this._setOption('maxBubbleSize', value);\r\n }\r\n get minBubbleSize() {\r\n return this._getOption('minBubbleSize');\r\n }\r\n set minBubbleSize(value) {\r\n this._setOption('minBubbleSize', value);\r\n }\r\n get negativesAsZeroes() {\r\n return this._getOption('negativesAsZeroes');\r\n }\r\n set negativesAsZeroes(value) {\r\n this._setOption('negativesAsZeroes', value);\r\n }\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n get seriesTemplate() {\r\n return this._getOption('seriesTemplate');\r\n }\r\n set seriesTemplate(value) {\r\n this._setOption('seriesTemplate', value);\r\n }\r\n get topIndent() {\r\n return this._getOption('topIndent');\r\n }\r\n set topIndent(value) {\r\n this._setOption('topIndent', value);\r\n }\r\n get valueAxis() {\r\n return this._getOption('valueAxis');\r\n }\r\n set valueAxis(value) {\r\n this._setOption('valueAxis', value);\r\n }\r\n get _optionPath() {\r\n return 'chart';\r\n }\r\n get seriesChildren() {\r\n return this._getOption('series');\r\n }\r\n set seriesChildren(value) {\r\n this.setChildren('series', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoChartComponent.ɵfac = function DxoChartComponent_Factory(t) { return new (t || DxoChartComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoChartComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoChartComponent, selectors: [[\"dxo-chart\"]], contentQueries: function DxoChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiSeriesComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesChildren = _t);\r\n } }, inputs: { barGroupPadding: \"barGroupPadding\", barGroupWidth: \"barGroupWidth\", bottomIndent: \"bottomIndent\", commonSeriesSettings: \"commonSeriesSettings\", dataPrepareSettings: \"dataPrepareSettings\", maxBubbleSize: \"maxBubbleSize\", minBubbleSize: \"minBubbleSize\", negativesAsZeroes: \"negativesAsZeroes\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", series: \"series\", seriesTemplate: \"seriesTemplate\", topIndent: \"topIndent\", valueAxis: \"valueAxis\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoChartComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoChartComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-chart',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { barGroupPadding: [{\r\n type: Input\r\n }], barGroupWidth: [{\r\n type: Input\r\n }], bottomIndent: [{\r\n type: Input\r\n }], commonSeriesSettings: [{\r\n type: Input\r\n }], dataPrepareSettings: [{\r\n type: Input\r\n }], maxBubbleSize: [{\r\n type: Input\r\n }], minBubbleSize: [{\r\n type: Input\r\n }], negativesAsZeroes: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], series: [{\r\n type: Input\r\n }], seriesTemplate: [{\r\n type: Input\r\n }], topIndent: [{\r\n type: Input\r\n }], valueAxis: [{\r\n type: Input\r\n }], seriesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiSeriesComponent)]\r\n }] }); })();\r\nclass DxoChartModule {\r\n}\r\n/** @nocollapse */ DxoChartModule.ɵfac = function DxoChartModule_Factory(t) { return new (t || DxoChartModule)(); };\r\n/** @nocollapse */ DxoChartModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoChartModule });\r\n/** @nocollapse */ DxoChartModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoChartModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoChartComponent\r\n ],\r\n exports: [\r\n DxoChartComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoChartModule, { declarations: [DxoChartComponent], exports: [DxoChartComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColCountByScreenComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get lg() {\r\n return this._getOption('lg');\r\n }\r\n set lg(value) {\r\n this._setOption('lg', value);\r\n }\r\n get md() {\r\n return this._getOption('md');\r\n }\r\n set md(value) {\r\n this._setOption('md', value);\r\n }\r\n get sm() {\r\n return this._getOption('sm');\r\n }\r\n set sm(value) {\r\n this._setOption('sm', value);\r\n }\r\n get xs() {\r\n return this._getOption('xs');\r\n }\r\n set xs(value) {\r\n this._setOption('xs', value);\r\n }\r\n get _optionPath() {\r\n return 'colCountByScreen';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoColCountByScreenComponent.ɵfac = function DxoColCountByScreenComponent_Factory(t) { return new (t || DxoColCountByScreenComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoColCountByScreenComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColCountByScreenComponent, selectors: [[\"dxo-col-count-by-screen\"]], inputs: { lg: \"lg\", md: \"md\", sm: \"sm\", xs: \"xs\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColCountByScreenComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColCountByScreenComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-col-count-by-screen',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { lg: [{\r\n type: Input\r\n }], md: [{\r\n type: Input\r\n }], sm: [{\r\n type: Input\r\n }], xs: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoColCountByScreenModule {\r\n}\r\n/** @nocollapse */ DxoColCountByScreenModule.ɵfac = function DxoColCountByScreenModule_Factory(t) { return new (t || DxoColCountByScreenModule)(); };\r\n/** @nocollapse */ DxoColCountByScreenModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoColCountByScreenModule });\r\n/** @nocollapse */ DxoColCountByScreenModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColCountByScreenModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoColCountByScreenComponent\r\n ],\r\n exports: [\r\n DxoColCountByScreenComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoColCountByScreenModule, { declarations: [DxoColCountByScreenComponent], exports: [DxoColCountByScreenComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiColComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get baseSize() {\r\n return this._getOption('baseSize');\r\n }\r\n set baseSize(value) {\r\n this._setOption('baseSize', value);\r\n }\r\n get ratio() {\r\n return this._getOption('ratio');\r\n }\r\n set ratio(value) {\r\n this._setOption('ratio', value);\r\n }\r\n get screen() {\r\n return this._getOption('screen');\r\n }\r\n set screen(value) {\r\n this._setOption('screen', value);\r\n }\r\n get shrink() {\r\n return this._getOption('shrink');\r\n }\r\n set shrink(value) {\r\n this._setOption('shrink', value);\r\n }\r\n get _optionPath() {\r\n return 'cols';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiColComponent.ɵfac = function DxiColComponent_Factory(t) { return new (t || DxiColComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiColComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiColComponent, selectors: [[\"dxi-col\"]], inputs: { baseSize: \"baseSize\", ratio: \"ratio\", screen: \"screen\", shrink: \"shrink\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiColComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiColComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-col',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { baseSize: [{\r\n type: Input\r\n }], ratio: [{\r\n type: Input\r\n }], screen: [{\r\n type: Input\r\n }], shrink: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiColModule {\r\n}\r\n/** @nocollapse */ DxiColModule.ɵfac = function DxiColModule_Factory(t) { return new (t || DxiColModule)(); };\r\n/** @nocollapse */ DxiColModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiColModule });\r\n/** @nocollapse */ DxiColModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiColModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiColComponent\r\n ],\r\n exports: [\r\n DxiColComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiColModule, { declarations: [DxiColComponent], exports: [DxiColComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCollisionComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'collision';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCollisionComponent.ɵfac = function DxoCollisionComponent_Factory(t) { return new (t || DxoCollisionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCollisionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCollisionComponent, selectors: [[\"dxo-collision\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCollisionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCollisionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-collision',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoCollisionModule {\r\n}\r\n/** @nocollapse */ DxoCollisionModule.ɵfac = function DxoCollisionModule_Factory(t) { return new (t || DxoCollisionModule)(); };\r\n/** @nocollapse */ DxoCollisionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCollisionModule });\r\n/** @nocollapse */ DxoCollisionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCollisionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCollisionComponent\r\n ],\r\n exports: [\r\n DxoCollisionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCollisionModule, { declarations: [DxoCollisionComponent], exports: [DxoCollisionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColorComponent extends DxoChartsColor {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'color';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoColorComponent.ɵfac = function DxoColorComponent_Factory(t) { return new (t || DxoColorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoColorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColorComponent, selectors: [[\"dxo-color\"]], inputs: { base: \"base\", fillId: \"fillId\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-color',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'base',\r\n 'fillId'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoColorModule {\r\n}\r\n/** @nocollapse */ DxoColorModule.ɵfac = function DxoColorModule_Factory(t) { return new (t || DxoColorModule)(); };\r\n/** @nocollapse */ DxoColorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoColorModule });\r\n/** @nocollapse */ DxoColorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoColorComponent\r\n ],\r\n exports: [\r\n DxoColorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoColorModule, { declarations: [DxoColorComponent], exports: [DxoColorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColorizerComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get colorCodeField() {\r\n return this._getOption('colorCodeField');\r\n }\r\n set colorCodeField(value) {\r\n this._setOption('colorCodeField', value);\r\n }\r\n get colorizeGroups() {\r\n return this._getOption('colorizeGroups');\r\n }\r\n set colorizeGroups(value) {\r\n this._setOption('colorizeGroups', value);\r\n }\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n get range() {\r\n return this._getOption('range');\r\n }\r\n set range(value) {\r\n this._setOption('range', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'colorizer';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoColorizerComponent.ɵfac = function DxoColorizerComponent_Factory(t) { return new (t || DxoColorizerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoColorizerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColorizerComponent, selectors: [[\"dxo-colorizer\"]], inputs: { colorCodeField: \"colorCodeField\", colorizeGroups: \"colorizeGroups\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", range: \"range\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColorizerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColorizerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-colorizer',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { colorCodeField: [{\r\n type: Input\r\n }], colorizeGroups: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], range: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoColorizerModule {\r\n}\r\n/** @nocollapse */ DxoColorizerModule.ɵfac = function DxoColorizerModule_Factory(t) { return new (t || DxoColorizerModule)(); };\r\n/** @nocollapse */ DxoColorizerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoColorizerModule });\r\n/** @nocollapse */ DxoColorizerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColorizerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoColorizerComponent\r\n ],\r\n exports: [\r\n DxoColorizerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoColorizerModule, { declarations: [DxoColorizerComponent], exports: [DxoColorizerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColumnChooserComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowSearch() {\r\n return this._getOption('allowSearch');\r\n }\r\n set allowSearch(value) {\r\n this._setOption('allowSearch', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get emptyPanelText() {\r\n return this._getOption('emptyPanelText');\r\n }\r\n set emptyPanelText(value) {\r\n this._setOption('emptyPanelText', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get search() {\r\n return this._getOption('search');\r\n }\r\n set search(value) {\r\n this._setOption('search', value);\r\n }\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n get selection() {\r\n return this._getOption('selection');\r\n }\r\n set selection(value) {\r\n this._setOption('selection', value);\r\n }\r\n get sortOrder() {\r\n return this._getOption('sortOrder');\r\n }\r\n set sortOrder(value) {\r\n this._setOption('sortOrder', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'columnChooser';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoColumnChooserComponent.ɵfac = function DxoColumnChooserComponent_Factory(t) { return new (t || DxoColumnChooserComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoColumnChooserComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColumnChooserComponent, selectors: [[\"dxo-column-chooser\"]], inputs: { allowSearch: \"allowSearch\", container: \"container\", emptyPanelText: \"emptyPanelText\", enabled: \"enabled\", height: \"height\", mode: \"mode\", position: \"position\", search: \"search\", searchTimeout: \"searchTimeout\", selection: \"selection\", sortOrder: \"sortOrder\", title: \"title\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColumnChooserComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnChooserComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-column-chooser',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowSearch: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], emptyPanelText: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], search: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], selection: [{\r\n type: Input\r\n }], sortOrder: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoColumnChooserModule {\r\n}\r\n/** @nocollapse */ DxoColumnChooserModule.ɵfac = function DxoColumnChooserModule_Factory(t) { return new (t || DxoColumnChooserModule)(); };\r\n/** @nocollapse */ DxoColumnChooserModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoColumnChooserModule });\r\n/** @nocollapse */ DxoColumnChooserModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnChooserModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoColumnChooserComponent\r\n ],\r\n exports: [\r\n DxoColumnChooserComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoColumnChooserModule, { declarations: [DxoColumnChooserComponent], exports: [DxoColumnChooserComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiDataGridColumn extends CollectionNestedOption {\r\n get alignment() {\r\n return this._getOption('alignment');\r\n }\r\n set alignment(value) {\r\n this._setOption('alignment', value);\r\n }\r\n get allowEditing() {\r\n return this._getOption('allowEditing');\r\n }\r\n set allowEditing(value) {\r\n this._setOption('allowEditing', value);\r\n }\r\n get allowExporting() {\r\n return this._getOption('allowExporting');\r\n }\r\n set allowExporting(value) {\r\n this._setOption('allowExporting', value);\r\n }\r\n get allowFiltering() {\r\n return this._getOption('allowFiltering');\r\n }\r\n set allowFiltering(value) {\r\n this._setOption('allowFiltering', value);\r\n }\r\n get allowFixing() {\r\n return this._getOption('allowFixing');\r\n }\r\n set allowFixing(value) {\r\n this._setOption('allowFixing', value);\r\n }\r\n get allowGrouping() {\r\n return this._getOption('allowGrouping');\r\n }\r\n set allowGrouping(value) {\r\n this._setOption('allowGrouping', value);\r\n }\r\n get allowHeaderFiltering() {\r\n return this._getOption('allowHeaderFiltering');\r\n }\r\n set allowHeaderFiltering(value) {\r\n this._setOption('allowHeaderFiltering', value);\r\n }\r\n get allowHiding() {\r\n return this._getOption('allowHiding');\r\n }\r\n set allowHiding(value) {\r\n this._setOption('allowHiding', value);\r\n }\r\n get allowReordering() {\r\n return this._getOption('allowReordering');\r\n }\r\n set allowReordering(value) {\r\n this._setOption('allowReordering', value);\r\n }\r\n get allowResizing() {\r\n return this._getOption('allowResizing');\r\n }\r\n set allowResizing(value) {\r\n this._setOption('allowResizing', value);\r\n }\r\n get allowSearch() {\r\n return this._getOption('allowSearch');\r\n }\r\n set allowSearch(value) {\r\n this._setOption('allowSearch', value);\r\n }\r\n get allowSorting() {\r\n return this._getOption('allowSorting');\r\n }\r\n set allowSorting(value) {\r\n this._setOption('allowSorting', value);\r\n }\r\n get autoExpandGroup() {\r\n return this._getOption('autoExpandGroup');\r\n }\r\n set autoExpandGroup(value) {\r\n this._setOption('autoExpandGroup', value);\r\n }\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n get calculateCellValue() {\r\n return this._getOption('calculateCellValue');\r\n }\r\n set calculateCellValue(value) {\r\n this._setOption('calculateCellValue', value);\r\n }\r\n get calculateDisplayValue() {\r\n return this._getOption('calculateDisplayValue');\r\n }\r\n set calculateDisplayValue(value) {\r\n this._setOption('calculateDisplayValue', value);\r\n }\r\n get calculateFilterExpression() {\r\n return this._getOption('calculateFilterExpression');\r\n }\r\n set calculateFilterExpression(value) {\r\n this._setOption('calculateFilterExpression', value);\r\n }\r\n get calculateGroupValue() {\r\n return this._getOption('calculateGroupValue');\r\n }\r\n set calculateGroupValue(value) {\r\n this._setOption('calculateGroupValue', value);\r\n }\r\n get calculateSortValue() {\r\n return this._getOption('calculateSortValue');\r\n }\r\n set calculateSortValue(value) {\r\n this._setOption('calculateSortValue', value);\r\n }\r\n get caption() {\r\n return this._getOption('caption');\r\n }\r\n set caption(value) {\r\n this._setOption('caption', value);\r\n }\r\n get cellTemplate() {\r\n return this._getOption('cellTemplate');\r\n }\r\n set cellTemplate(value) {\r\n this._setOption('cellTemplate', value);\r\n }\r\n get columns() {\r\n return this._getOption('columns');\r\n }\r\n set columns(value) {\r\n this._setOption('columns', value);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get dataType() {\r\n return this._getOption('dataType');\r\n }\r\n set dataType(value) {\r\n this._setOption('dataType', value);\r\n }\r\n get editCellTemplate() {\r\n return this._getOption('editCellTemplate');\r\n }\r\n set editCellTemplate(value) {\r\n this._setOption('editCellTemplate', value);\r\n }\r\n get editorOptions() {\r\n return this._getOption('editorOptions');\r\n }\r\n set editorOptions(value) {\r\n this._setOption('editorOptions', value);\r\n }\r\n get encodeHtml() {\r\n return this._getOption('encodeHtml');\r\n }\r\n set encodeHtml(value) {\r\n this._setOption('encodeHtml', value);\r\n }\r\n get falseText() {\r\n return this._getOption('falseText');\r\n }\r\n set falseText(value) {\r\n this._setOption('falseText', value);\r\n }\r\n get filterOperations() {\r\n return this._getOption('filterOperations');\r\n }\r\n set filterOperations(value) {\r\n this._setOption('filterOperations', value);\r\n }\r\n get filterType() {\r\n return this._getOption('filterType');\r\n }\r\n set filterType(value) {\r\n this._setOption('filterType', value);\r\n }\r\n get filterValue() {\r\n return this._getOption('filterValue');\r\n }\r\n set filterValue(value) {\r\n this._setOption('filterValue', value);\r\n }\r\n get filterValues() {\r\n return this._getOption('filterValues');\r\n }\r\n set filterValues(value) {\r\n this._setOption('filterValues', value);\r\n }\r\n get fixed() {\r\n return this._getOption('fixed');\r\n }\r\n set fixed(value) {\r\n this._setOption('fixed', value);\r\n }\r\n get fixedPosition() {\r\n return this._getOption('fixedPosition');\r\n }\r\n set fixedPosition(value) {\r\n this._setOption('fixedPosition', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get formItem() {\r\n return this._getOption('formItem');\r\n }\r\n set formItem(value) {\r\n this._setOption('formItem', value);\r\n }\r\n get groupCellTemplate() {\r\n return this._getOption('groupCellTemplate');\r\n }\r\n set groupCellTemplate(value) {\r\n this._setOption('groupCellTemplate', value);\r\n }\r\n get groupIndex() {\r\n return this._getOption('groupIndex');\r\n }\r\n set groupIndex(value) {\r\n this._setOption('groupIndex', value);\r\n }\r\n get headerCellTemplate() {\r\n return this._getOption('headerCellTemplate');\r\n }\r\n set headerCellTemplate(value) {\r\n this._setOption('headerCellTemplate', value);\r\n }\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n get hidingPriority() {\r\n return this._getOption('hidingPriority');\r\n }\r\n set hidingPriority(value) {\r\n this._setOption('hidingPriority', value);\r\n }\r\n get isBand() {\r\n return this._getOption('isBand');\r\n }\r\n set isBand(value) {\r\n this._setOption('isBand', value);\r\n }\r\n get lookup() {\r\n return this._getOption('lookup');\r\n }\r\n set lookup(value) {\r\n this._setOption('lookup', value);\r\n }\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get ownerBand() {\r\n return this._getOption('ownerBand');\r\n }\r\n set ownerBand(value) {\r\n this._setOption('ownerBand', value);\r\n }\r\n get renderAsync() {\r\n return this._getOption('renderAsync');\r\n }\r\n set renderAsync(value) {\r\n this._setOption('renderAsync', value);\r\n }\r\n get selectedFilterOperation() {\r\n return this._getOption('selectedFilterOperation');\r\n }\r\n set selectedFilterOperation(value) {\r\n this._setOption('selectedFilterOperation', value);\r\n }\r\n get setCellValue() {\r\n return this._getOption('setCellValue');\r\n }\r\n set setCellValue(value) {\r\n this._setOption('setCellValue', value);\r\n }\r\n get showEditorAlways() {\r\n return this._getOption('showEditorAlways');\r\n }\r\n set showEditorAlways(value) {\r\n this._setOption('showEditorAlways', value);\r\n }\r\n get showInColumnChooser() {\r\n return this._getOption('showInColumnChooser');\r\n }\r\n set showInColumnChooser(value) {\r\n this._setOption('showInColumnChooser', value);\r\n }\r\n get showWhenGrouped() {\r\n return this._getOption('showWhenGrouped');\r\n }\r\n set showWhenGrouped(value) {\r\n this._setOption('showWhenGrouped', value);\r\n }\r\n get sortIndex() {\r\n return this._getOption('sortIndex');\r\n }\r\n set sortIndex(value) {\r\n this._setOption('sortIndex', value);\r\n }\r\n get sortingMethod() {\r\n return this._getOption('sortingMethod');\r\n }\r\n set sortingMethod(value) {\r\n this._setOption('sortingMethod', value);\r\n }\r\n get sortOrder() {\r\n return this._getOption('sortOrder');\r\n }\r\n set sortOrder(value) {\r\n this._setOption('sortOrder', value);\r\n }\r\n get trueText() {\r\n return this._getOption('trueText');\r\n }\r\n set trueText(value) {\r\n this._setOption('trueText', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get validationRules() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRules(value) {\r\n this._setOption('validationRules', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get visibleIndex() {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiDataGridColumn.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiDataGridColumn_BaseFactory; return function DxiDataGridColumn_Factory(t) { return (ɵDxiDataGridColumn_BaseFactory || (ɵDxiDataGridColumn_BaseFactory = i0.ɵɵgetInheritedFactory(DxiDataGridColumn)))(t || DxiDataGridColumn); }; }();\r\n/** @nocollapse */ DxiDataGridColumn.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiDataGridColumn, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiDataGridColumn_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiDataGridColumn, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiColumnComponent extends DxiDataGridColumn {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'filterValueChange' },\r\n { emit: 'filterValuesChange' },\r\n { emit: 'groupIndexChange' },\r\n { emit: 'selectedFilterOperationChange' },\r\n { emit: 'sortIndexChange' },\r\n { emit: 'sortOrderChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'visibleIndexChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'columns';\r\n }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n get columnsChildren() {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this.setChildren('columns', value);\r\n }\r\n get validationRulesChildren() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRulesChildren(value) {\r\n this.setChildren('validationRules', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiColumnComponent.ɵfac = function DxiColumnComponent_Factory(t) { return new (t || DxiColumnComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiColumnComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiColumnComponent, selectors: [[\"dxi-column\"]], contentQueries: function DxiColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiValidationRuleComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.validationRulesChildren = _t);\r\n } }, inputs: { alignment: \"alignment\", allowEditing: \"allowEditing\", allowExporting: \"allowExporting\", allowFiltering: \"allowFiltering\", allowFixing: \"allowFixing\", allowGrouping: \"allowGrouping\", allowHeaderFiltering: \"allowHeaderFiltering\", allowHiding: \"allowHiding\", allowReordering: \"allowReordering\", allowResizing: \"allowResizing\", allowSearch: \"allowSearch\", allowSorting: \"allowSorting\", autoExpandGroup: \"autoExpandGroup\", buttons: \"buttons\", calculateCellValue: \"calculateCellValue\", calculateDisplayValue: \"calculateDisplayValue\", calculateFilterExpression: \"calculateFilterExpression\", calculateGroupValue: \"calculateGroupValue\", calculateSortValue: \"calculateSortValue\", caption: \"caption\", cellTemplate: \"cellTemplate\", columns: \"columns\", cssClass: \"cssClass\", customizeText: \"customizeText\", dataField: \"dataField\", dataType: \"dataType\", editCellTemplate: \"editCellTemplate\", editorOptions: \"editorOptions\", encodeHtml: \"encodeHtml\", falseText: \"falseText\", filterOperations: \"filterOperations\", filterType: \"filterType\", filterValue: \"filterValue\", filterValues: \"filterValues\", fixed: \"fixed\", fixedPosition: \"fixedPosition\", format: \"format\", formItem: \"formItem\", groupCellTemplate: \"groupCellTemplate\", groupIndex: \"groupIndex\", headerCellTemplate: \"headerCellTemplate\", headerFilter: \"headerFilter\", hidingPriority: \"hidingPriority\", isBand: \"isBand\", lookup: \"lookup\", minWidth: \"minWidth\", name: \"name\", ownerBand: \"ownerBand\", renderAsync: \"renderAsync\", selectedFilterOperation: \"selectedFilterOperation\", setCellValue: \"setCellValue\", showEditorAlways: \"showEditorAlways\", showInColumnChooser: \"showInColumnChooser\", showWhenGrouped: \"showWhenGrouped\", sortIndex: \"sortIndex\", sortingMethod: \"sortingMethod\", sortOrder: \"sortOrder\", trueText: \"trueText\", type: \"type\", validationRules: \"validationRules\", visible: \"visible\", visibleIndex: \"visibleIndex\", width: \"width\" }, outputs: { filterValueChange: \"filterValueChange\", filterValuesChange: \"filterValuesChange\", groupIndexChange: \"groupIndexChange\", selectedFilterOperationChange: \"selectedFilterOperationChange\", sortIndexChange: \"sortIndexChange\", sortOrderChange: \"sortOrderChange\", visibleChange: \"visibleChange\", visibleIndexChange: \"visibleIndexChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiColumnComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiColumnComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-column',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'alignment',\r\n 'allowEditing',\r\n 'allowExporting',\r\n 'allowFiltering',\r\n 'allowFixing',\r\n 'allowGrouping',\r\n 'allowHeaderFiltering',\r\n 'allowHiding',\r\n 'allowReordering',\r\n 'allowResizing',\r\n 'allowSearch',\r\n 'allowSorting',\r\n 'autoExpandGroup',\r\n 'buttons',\r\n 'calculateCellValue',\r\n 'calculateDisplayValue',\r\n 'calculateFilterExpression',\r\n 'calculateGroupValue',\r\n 'calculateSortValue',\r\n 'caption',\r\n 'cellTemplate',\r\n 'columns',\r\n 'cssClass',\r\n 'customizeText',\r\n 'dataField',\r\n 'dataType',\r\n 'editCellTemplate',\r\n 'editorOptions',\r\n 'encodeHtml',\r\n 'falseText',\r\n 'filterOperations',\r\n 'filterType',\r\n 'filterValue',\r\n 'filterValues',\r\n 'fixed',\r\n 'fixedPosition',\r\n 'format',\r\n 'formItem',\r\n 'groupCellTemplate',\r\n 'groupIndex',\r\n 'headerCellTemplate',\r\n 'headerFilter',\r\n 'hidingPriority',\r\n 'isBand',\r\n 'lookup',\r\n 'minWidth',\r\n 'name',\r\n 'ownerBand',\r\n 'renderAsync',\r\n 'selectedFilterOperation',\r\n 'setCellValue',\r\n 'showEditorAlways',\r\n 'showInColumnChooser',\r\n 'showWhenGrouped',\r\n 'sortIndex',\r\n 'sortingMethod',\r\n 'sortOrder',\r\n 'trueText',\r\n 'type',\r\n 'validationRules',\r\n 'visible',\r\n 'visibleIndex',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { filterValueChange: [{\r\n type: Output\r\n }], filterValuesChange: [{\r\n type: Output\r\n }], groupIndexChange: [{\r\n type: Output\r\n }], selectedFilterOperationChange: [{\r\n type: Output\r\n }], sortIndexChange: [{\r\n type: Output\r\n }], sortOrderChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], visibleIndexChange: [{\r\n type: Output\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiButtonComponent)]\r\n }], columnsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiColumnComponent)]\r\n }], validationRulesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiValidationRuleComponent)]\r\n }] }); })();\r\nclass DxiColumnModule {\r\n}\r\n/** @nocollapse */ DxiColumnModule.ɵfac = function DxiColumnModule_Factory(t) { return new (t || DxiColumnModule)(); };\r\n/** @nocollapse */ DxiColumnModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiColumnModule });\r\n/** @nocollapse */ DxiColumnModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiColumnModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiColumnComponent\r\n ],\r\n exports: [\r\n DxiColumnComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiColumnModule, { declarations: [DxiColumnComponent], exports: [DxiColumnComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColumnFixingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get _optionPath() {\r\n return 'columnFixing';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoColumnFixingComponent.ɵfac = function DxoColumnFixingComponent_Factory(t) { return new (t || DxoColumnFixingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoColumnFixingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColumnFixingComponent, selectors: [[\"dxo-column-fixing\"]], inputs: { enabled: \"enabled\", texts: \"texts\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColumnFixingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnFixingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-column-fixing',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { enabled: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoColumnFixingModule {\r\n}\r\n/** @nocollapse */ DxoColumnFixingModule.ɵfac = function DxoColumnFixingModule_Factory(t) { return new (t || DxoColumnFixingModule)(); };\r\n/** @nocollapse */ DxoColumnFixingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoColumnFixingModule });\r\n/** @nocollapse */ DxoColumnFixingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnFixingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoColumnFixingComponent\r\n ],\r\n exports: [\r\n DxoColumnFixingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoColumnFixingModule, { declarations: [DxoColumnFixingComponent], exports: [DxoColumnFixingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoChartCommonAnnotationConfig extends NestedOption {\r\n get allowDragging() {\r\n return this._getOption('allowDragging');\r\n }\r\n set allowDragging(value) {\r\n this._setOption('allowDragging', value);\r\n }\r\n get argument() {\r\n return this._getOption('argument');\r\n }\r\n set argument(value) {\r\n this._setOption('argument', value);\r\n }\r\n get arrowLength() {\r\n return this._getOption('arrowLength');\r\n }\r\n set arrowLength(value) {\r\n this._setOption('arrowLength', value);\r\n }\r\n get arrowWidth() {\r\n return this._getOption('arrowWidth');\r\n }\r\n set arrowWidth(value) {\r\n this._setOption('arrowWidth', value);\r\n }\r\n get axis() {\r\n return this._getOption('axis');\r\n }\r\n set axis(value) {\r\n this._setOption('axis', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get customizeTooltip() {\r\n return this._getOption('customizeTooltip');\r\n }\r\n set customizeTooltip(value) {\r\n this._setOption('customizeTooltip', value);\r\n }\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get description() {\r\n return this._getOption('description');\r\n }\r\n set description(value) {\r\n this._setOption('description', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get image() {\r\n return this._getOption('image');\r\n }\r\n set image(value) {\r\n this._setOption('image', value);\r\n }\r\n get offsetX() {\r\n return this._getOption('offsetX');\r\n }\r\n set offsetX(value) {\r\n this._setOption('offsetX', value);\r\n }\r\n get offsetY() {\r\n return this._getOption('offsetY');\r\n }\r\n set offsetY(value) {\r\n this._setOption('offsetY', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n get shadow() {\r\n return this._getOption('shadow');\r\n }\r\n set shadow(value) {\r\n this._setOption('shadow', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get textOverflow() {\r\n return this._getOption('textOverflow');\r\n }\r\n set textOverflow(value) {\r\n this._setOption('textOverflow', value);\r\n }\r\n get tooltipEnabled() {\r\n return this._getOption('tooltipEnabled');\r\n }\r\n set tooltipEnabled(value) {\r\n this._setOption('tooltipEnabled', value);\r\n }\r\n get tooltipTemplate() {\r\n return this._getOption('tooltipTemplate');\r\n }\r\n set tooltipTemplate(value) {\r\n this._setOption('tooltipTemplate', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get wordWrap() {\r\n return this._getOption('wordWrap');\r\n }\r\n set wordWrap(value) {\r\n this._setOption('wordWrap', value);\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get angle() {\r\n return this._getOption('angle');\r\n }\r\n set angle(value) {\r\n this._setOption('angle', value);\r\n }\r\n get radius() {\r\n return this._getOption('radius');\r\n }\r\n set radius(value) {\r\n this._setOption('radius', value);\r\n }\r\n get coordinates() {\r\n return this._getOption('coordinates');\r\n }\r\n set coordinates(value) {\r\n this._setOption('coordinates', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoChartCommonAnnotationConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoChartCommonAnnotationConfig_BaseFactory; return function DxoChartCommonAnnotationConfig_Factory(t) { return (ɵDxoChartCommonAnnotationConfig_BaseFactory || (ɵDxoChartCommonAnnotationConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoChartCommonAnnotationConfig)))(t || DxoChartCommonAnnotationConfig); }; }();\r\n/** @nocollapse */ DxoChartCommonAnnotationConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoChartCommonAnnotationConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoChartCommonAnnotationConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoChartCommonAnnotationConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCommonAnnotationSettingsComponent extends DxoChartCommonAnnotationConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'commonAnnotationSettings';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCommonAnnotationSettingsComponent.ɵfac = function DxoCommonAnnotationSettingsComponent_Factory(t) { return new (t || DxoCommonAnnotationSettingsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCommonAnnotationSettingsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCommonAnnotationSettingsComponent, selectors: [[\"dxo-common-annotation-settings\"]], inputs: { allowDragging: \"allowDragging\", argument: \"argument\", arrowLength: \"arrowLength\", arrowWidth: \"arrowWidth\", axis: \"axis\", border: \"border\", color: \"color\", customizeTooltip: \"customizeTooltip\", data: \"data\", description: \"description\", font: \"font\", height: \"height\", image: \"image\", offsetX: \"offsetX\", offsetY: \"offsetY\", opacity: \"opacity\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", series: \"series\", shadow: \"shadow\", template: \"template\", text: \"text\", textOverflow: \"textOverflow\", tooltipEnabled: \"tooltipEnabled\", tooltipTemplate: \"tooltipTemplate\", type: \"type\", value: \"value\", width: \"width\", wordWrap: \"wordWrap\", x: \"x\", y: \"y\", location: \"location\", angle: \"angle\", radius: \"radius\", coordinates: \"coordinates\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCommonAnnotationSettingsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonAnnotationSettingsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-common-annotation-settings',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowDragging',\r\n 'argument',\r\n 'arrowLength',\r\n 'arrowWidth',\r\n 'axis',\r\n 'border',\r\n 'color',\r\n 'customizeTooltip',\r\n 'data',\r\n 'description',\r\n 'font',\r\n 'height',\r\n 'image',\r\n 'offsetX',\r\n 'offsetY',\r\n 'opacity',\r\n 'paddingLeftRight',\r\n 'paddingTopBottom',\r\n 'series',\r\n 'shadow',\r\n 'template',\r\n 'text',\r\n 'textOverflow',\r\n 'tooltipEnabled',\r\n 'tooltipTemplate',\r\n 'type',\r\n 'value',\r\n 'width',\r\n 'wordWrap',\r\n 'x',\r\n 'y',\r\n 'location',\r\n 'angle',\r\n 'radius',\r\n 'coordinates'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoCommonAnnotationSettingsModule {\r\n}\r\n/** @nocollapse */ DxoCommonAnnotationSettingsModule.ɵfac = function DxoCommonAnnotationSettingsModule_Factory(t) { return new (t || DxoCommonAnnotationSettingsModule)(); };\r\n/** @nocollapse */ DxoCommonAnnotationSettingsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCommonAnnotationSettingsModule });\r\n/** @nocollapse */ DxoCommonAnnotationSettingsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonAnnotationSettingsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCommonAnnotationSettingsComponent\r\n ],\r\n exports: [\r\n DxoCommonAnnotationSettingsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCommonAnnotationSettingsModule, { declarations: [DxoCommonAnnotationSettingsComponent], exports: [DxoCommonAnnotationSettingsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCommonAxisSettingsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get aggregatedPointsPosition() {\r\n return this._getOption('aggregatedPointsPosition');\r\n }\r\n set aggregatedPointsPosition(value) {\r\n this._setOption('aggregatedPointsPosition', value);\r\n }\r\n get allowDecimals() {\r\n return this._getOption('allowDecimals');\r\n }\r\n set allowDecimals(value) {\r\n this._setOption('allowDecimals', value);\r\n }\r\n get breakStyle() {\r\n return this._getOption('breakStyle');\r\n }\r\n set breakStyle(value) {\r\n this._setOption('breakStyle', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get constantLineStyle() {\r\n return this._getOption('constantLineStyle');\r\n }\r\n set constantLineStyle(value) {\r\n this._setOption('constantLineStyle', value);\r\n }\r\n get discreteAxisDivisionMode() {\r\n return this._getOption('discreteAxisDivisionMode');\r\n }\r\n set discreteAxisDivisionMode(value) {\r\n this._setOption('discreteAxisDivisionMode', value);\r\n }\r\n get endOnTick() {\r\n return this._getOption('endOnTick');\r\n }\r\n set endOnTick(value) {\r\n this._setOption('endOnTick', value);\r\n }\r\n get grid() {\r\n return this._getOption('grid');\r\n }\r\n set grid(value) {\r\n this._setOption('grid', value);\r\n }\r\n get inverted() {\r\n return this._getOption('inverted');\r\n }\r\n set inverted(value) {\r\n this._setOption('inverted', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get maxValueMargin() {\r\n return this._getOption('maxValueMargin');\r\n }\r\n set maxValueMargin(value) {\r\n this._setOption('maxValueMargin', value);\r\n }\r\n get minorGrid() {\r\n return this._getOption('minorGrid');\r\n }\r\n set minorGrid(value) {\r\n this._setOption('minorGrid', value);\r\n }\r\n get minorTick() {\r\n return this._getOption('minorTick');\r\n }\r\n set minorTick(value) {\r\n this._setOption('minorTick', value);\r\n }\r\n get minValueMargin() {\r\n return this._getOption('minValueMargin');\r\n }\r\n set minValueMargin(value) {\r\n this._setOption('minValueMargin', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get placeholderSize() {\r\n return this._getOption('placeholderSize');\r\n }\r\n set placeholderSize(value) {\r\n this._setOption('placeholderSize', value);\r\n }\r\n get stripStyle() {\r\n return this._getOption('stripStyle');\r\n }\r\n set stripStyle(value) {\r\n this._setOption('stripStyle', value);\r\n }\r\n get tick() {\r\n return this._getOption('tick');\r\n }\r\n set tick(value) {\r\n this._setOption('tick', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get valueMarginsEnabled() {\r\n return this._getOption('valueMarginsEnabled');\r\n }\r\n set valueMarginsEnabled(value) {\r\n this._setOption('valueMarginsEnabled', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'commonAxisSettings';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCommonAxisSettingsComponent.ɵfac = function DxoCommonAxisSettingsComponent_Factory(t) { return new (t || DxoCommonAxisSettingsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCommonAxisSettingsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCommonAxisSettingsComponent, selectors: [[\"dxo-common-axis-settings\"]], inputs: { aggregatedPointsPosition: \"aggregatedPointsPosition\", allowDecimals: \"allowDecimals\", breakStyle: \"breakStyle\", color: \"color\", constantLineStyle: \"constantLineStyle\", discreteAxisDivisionMode: \"discreteAxisDivisionMode\", endOnTick: \"endOnTick\", grid: \"grid\", inverted: \"inverted\", label: \"label\", maxValueMargin: \"maxValueMargin\", minorGrid: \"minorGrid\", minorTick: \"minorTick\", minValueMargin: \"minValueMargin\", opacity: \"opacity\", placeholderSize: \"placeholderSize\", stripStyle: \"stripStyle\", tick: \"tick\", title: \"title\", valueMarginsEnabled: \"valueMarginsEnabled\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCommonAxisSettingsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonAxisSettingsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-common-axis-settings',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { aggregatedPointsPosition: [{\r\n type: Input\r\n }], allowDecimals: [{\r\n type: Input\r\n }], breakStyle: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], constantLineStyle: [{\r\n type: Input\r\n }], discreteAxisDivisionMode: [{\r\n type: Input\r\n }], endOnTick: [{\r\n type: Input\r\n }], grid: [{\r\n type: Input\r\n }], inverted: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], maxValueMargin: [{\r\n type: Input\r\n }], minorGrid: [{\r\n type: Input\r\n }], minorTick: [{\r\n type: Input\r\n }], minValueMargin: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], placeholderSize: [{\r\n type: Input\r\n }], stripStyle: [{\r\n type: Input\r\n }], tick: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], valueMarginsEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoCommonAxisSettingsModule {\r\n}\r\n/** @nocollapse */ DxoCommonAxisSettingsModule.ɵfac = function DxoCommonAxisSettingsModule_Factory(t) { return new (t || DxoCommonAxisSettingsModule)(); };\r\n/** @nocollapse */ DxoCommonAxisSettingsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCommonAxisSettingsModule });\r\n/** @nocollapse */ DxoCommonAxisSettingsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonAxisSettingsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCommonAxisSettingsComponent\r\n ],\r\n exports: [\r\n DxoCommonAxisSettingsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCommonAxisSettingsModule, { declarations: [DxoCommonAxisSettingsComponent], exports: [DxoCommonAxisSettingsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCommonPaneSettingsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get _optionPath() {\r\n return 'commonPaneSettings';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCommonPaneSettingsComponent.ɵfac = function DxoCommonPaneSettingsComponent_Factory(t) { return new (t || DxoCommonPaneSettingsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCommonPaneSettingsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCommonPaneSettingsComponent, selectors: [[\"dxo-common-pane-settings\"]], inputs: { backgroundColor: \"backgroundColor\", border: \"border\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCommonPaneSettingsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonPaneSettingsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-common-pane-settings',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoCommonPaneSettingsModule {\r\n}\r\n/** @nocollapse */ DxoCommonPaneSettingsModule.ɵfac = function DxoCommonPaneSettingsModule_Factory(t) { return new (t || DxoCommonPaneSettingsModule)(); };\r\n/** @nocollapse */ DxoCommonPaneSettingsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCommonPaneSettingsModule });\r\n/** @nocollapse */ DxoCommonPaneSettingsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonPaneSettingsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCommonPaneSettingsComponent\r\n ],\r\n exports: [\r\n DxoCommonPaneSettingsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCommonPaneSettingsModule, { declarations: [DxoCommonPaneSettingsComponent], exports: [DxoCommonPaneSettingsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCommonSeriesSettingsComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'commonSeriesSettings';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCommonSeriesSettingsComponent.ɵfac = function DxoCommonSeriesSettingsComponent_Factory(t) { return new (t || DxoCommonSeriesSettingsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCommonSeriesSettingsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCommonSeriesSettingsComponent, selectors: [[\"dxo-common-series-settings\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", argumentType: \"argumentType\", minSegmentSize: \"minSegmentSize\", smallValuesGrouping: \"smallValuesGrouping\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCommonSeriesSettingsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonSeriesSettingsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-common-series-settings',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'argumentType',\r\n 'minSegmentSize',\r\n 'smallValuesGrouping',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoCommonSeriesSettingsModule {\r\n}\r\n/** @nocollapse */ DxoCommonSeriesSettingsModule.ɵfac = function DxoCommonSeriesSettingsModule_Factory(t) { return new (t || DxoCommonSeriesSettingsModule)(); };\r\n/** @nocollapse */ DxoCommonSeriesSettingsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCommonSeriesSettingsModule });\r\n/** @nocollapse */ DxoCommonSeriesSettingsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCommonSeriesSettingsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCommonSeriesSettingsComponent\r\n ],\r\n exports: [\r\n DxoCommonSeriesSettingsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCommonSeriesSettingsModule, { declarations: [DxoCommonSeriesSettingsComponent], exports: [DxoCommonSeriesSettingsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiConnectionPointComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'connectionPoints';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiConnectionPointComponent.ɵfac = function DxiConnectionPointComponent_Factory(t) { return new (t || DxiConnectionPointComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiConnectionPointComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiConnectionPointComponent, selectors: [[\"dxi-connection-point\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiConnectionPointComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiConnectionPointComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-connection-point',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiConnectionPointModule {\r\n}\r\n/** @nocollapse */ DxiConnectionPointModule.ɵfac = function DxiConnectionPointModule_Factory(t) { return new (t || DxiConnectionPointModule)(); };\r\n/** @nocollapse */ DxiConnectionPointModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiConnectionPointModule });\r\n/** @nocollapse */ DxiConnectionPointModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiConnectionPointModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiConnectionPointComponent\r\n ],\r\n exports: [\r\n DxiConnectionPointComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiConnectionPointModule, { declarations: [DxiConnectionPointComponent], exports: [DxiConnectionPointComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoConnectorComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'connector';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoConnectorComponent.ɵfac = function DxoConnectorComponent_Factory(t) { return new (t || DxoConnectorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoConnectorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoConnectorComponent, selectors: [[\"dxo-connector\"]], inputs: { color: \"color\", visible: \"visible\", width: \"width\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoConnectorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoConnectorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-connector',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoConnectorModule {\r\n}\r\n/** @nocollapse */ DxoConnectorModule.ɵfac = function DxoConnectorModule_Factory(t) { return new (t || DxoConnectorModule)(); };\r\n/** @nocollapse */ DxoConnectorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoConnectorModule });\r\n/** @nocollapse */ DxoConnectorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoConnectorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoConnectorComponent\r\n ],\r\n exports: [\r\n DxoConnectorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoConnectorModule, { declarations: [DxoConnectorComponent], exports: [DxoConnectorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoConstantLineStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'constantLineStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoConstantLineStyleComponent.ɵfac = function DxoConstantLineStyleComponent_Factory(t) { return new (t || DxoConstantLineStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoConstantLineStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoConstantLineStyleComponent, selectors: [[\"dxo-constant-line-style\"]], inputs: { color: \"color\", dashStyle: \"dashStyle\", label: \"label\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoConstantLineStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoConstantLineStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-constant-line-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoConstantLineStyleModule {\r\n}\r\n/** @nocollapse */ DxoConstantLineStyleModule.ɵfac = function DxoConstantLineStyleModule_Factory(t) { return new (t || DxoConstantLineStyleModule)(); };\r\n/** @nocollapse */ DxoConstantLineStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoConstantLineStyleModule });\r\n/** @nocollapse */ DxoConstantLineStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoConstantLineStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoConstantLineStyleComponent\r\n ],\r\n exports: [\r\n DxoConstantLineStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoConstantLineStyleModule, { declarations: [DxoConstantLineStyleComponent], exports: [DxoConstantLineStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFileManagerContextMenu extends NestedOption {\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFileManagerContextMenu.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFileManagerContextMenu_BaseFactory; return function DxoFileManagerContextMenu_Factory(t) { return (ɵDxoFileManagerContextMenu_BaseFactory || (ɵDxoFileManagerContextMenu_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFileManagerContextMenu)))(t || DxoFileManagerContextMenu); }; }();\r\n/** @nocollapse */ DxoFileManagerContextMenu.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFileManagerContextMenu, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFileManagerContextMenu_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFileManagerContextMenu, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoContextMenuComponent extends DxoFileManagerContextMenu {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'contextMenu';\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoContextMenuComponent.ɵfac = function DxoContextMenuComponent_Factory(t) { return new (t || DxoContextMenuComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoContextMenuComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoContextMenuComponent, selectors: [[\"dxo-context-menu\"]], contentQueries: function DxoContextMenuComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { commands: \"commands\", enabled: \"enabled\", items: \"items\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoContextMenuComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoContextMenuComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-context-menu',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'commands',\r\n 'enabled',\r\n 'items'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoContextMenuModule {\r\n}\r\n/** @nocollapse */ DxoContextMenuModule.ɵfac = function DxoContextMenuModule_Factory(t) { return new (t || DxoContextMenuModule)(); };\r\n/** @nocollapse */ DxoContextMenuModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoContextMenuModule });\r\n/** @nocollapse */ DxoContextMenuModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoContextMenuModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoContextMenuComponent\r\n ],\r\n exports: [\r\n DxoContextMenuComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoContextMenuModule, { declarations: [DxoContextMenuComponent], exports: [DxoContextMenuComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoContextToolboxComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get category() {\r\n return this._getOption('category');\r\n }\r\n set category(value) {\r\n this._setOption('category', value);\r\n }\r\n get displayMode() {\r\n return this._getOption('displayMode');\r\n }\r\n set displayMode(value) {\r\n this._setOption('displayMode', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get shapeIconsPerRow() {\r\n return this._getOption('shapeIconsPerRow');\r\n }\r\n set shapeIconsPerRow(value) {\r\n this._setOption('shapeIconsPerRow', value);\r\n }\r\n get shapes() {\r\n return this._getOption('shapes');\r\n }\r\n set shapes(value) {\r\n this._setOption('shapes', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'contextToolbox';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoContextToolboxComponent.ɵfac = function DxoContextToolboxComponent_Factory(t) { return new (t || DxoContextToolboxComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoContextToolboxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoContextToolboxComponent, selectors: [[\"dxo-context-toolbox\"]], inputs: { category: \"category\", displayMode: \"displayMode\", enabled: \"enabled\", shapeIconsPerRow: \"shapeIconsPerRow\", shapes: \"shapes\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoContextToolboxComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoContextToolboxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-context-toolbox',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { category: [{\r\n type: Input\r\n }], displayMode: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], shapeIconsPerRow: [{\r\n type: Input\r\n }], shapes: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoContextToolboxModule {\r\n}\r\n/** @nocollapse */ DxoContextToolboxModule.ɵfac = function DxoContextToolboxModule_Factory(t) { return new (t || DxoContextToolboxModule)(); };\r\n/** @nocollapse */ DxoContextToolboxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoContextToolboxModule });\r\n/** @nocollapse */ DxoContextToolboxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoContextToolboxModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoContextToolboxComponent\r\n ],\r\n exports: [\r\n DxoContextToolboxComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoContextToolboxModule, { declarations: [DxoContextToolboxComponent], exports: [DxoContextToolboxComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoControlBarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get borderColor() {\r\n return this._getOption('borderColor');\r\n }\r\n set borderColor(value) {\r\n this._setOption('borderColor', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get panVisible() {\r\n return this._getOption('panVisible');\r\n }\r\n set panVisible(value) {\r\n this._setOption('panVisible', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get zoomVisible() {\r\n return this._getOption('zoomVisible');\r\n }\r\n set zoomVisible(value) {\r\n this._setOption('zoomVisible', value);\r\n }\r\n get _optionPath() {\r\n return 'controlBar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoControlBarComponent.ɵfac = function DxoControlBarComponent_Factory(t) { return new (t || DxoControlBarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoControlBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoControlBarComponent, selectors: [[\"dxo-control-bar\"]], inputs: { borderColor: \"borderColor\", color: \"color\", enabled: \"enabled\", horizontalAlignment: \"horizontalAlignment\", margin: \"margin\", opacity: \"opacity\", panVisible: \"panVisible\", verticalAlignment: \"verticalAlignment\", zoomVisible: \"zoomVisible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoControlBarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoControlBarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-control-bar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { borderColor: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], horizontalAlignment: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], panVisible: [{\r\n type: Input\r\n }], verticalAlignment: [{\r\n type: Input\r\n }], zoomVisible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoControlBarModule {\r\n}\r\n/** @nocollapse */ DxoControlBarModule.ɵfac = function DxoControlBarModule_Factory(t) { return new (t || DxoControlBarModule)(); };\r\n/** @nocollapse */ DxoControlBarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoControlBarModule });\r\n/** @nocollapse */ DxoControlBarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoControlBarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoControlBarComponent\r\n ],\r\n exports: [\r\n DxoControlBarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoControlBarModule, { declarations: [DxoControlBarComponent], exports: [DxoControlBarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCrosshairComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get horizontalLine() {\r\n return this._getOption('horizontalLine');\r\n }\r\n set horizontalLine(value) {\r\n this._setOption('horizontalLine', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get verticalLine() {\r\n return this._getOption('verticalLine');\r\n }\r\n set verticalLine(value) {\r\n this._setOption('verticalLine', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'crosshair';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCrosshairComponent.ɵfac = function DxoCrosshairComponent_Factory(t) { return new (t || DxoCrosshairComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCrosshairComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCrosshairComponent, selectors: [[\"dxo-crosshair\"]], inputs: { color: \"color\", dashStyle: \"dashStyle\", enabled: \"enabled\", horizontalLine: \"horizontalLine\", label: \"label\", opacity: \"opacity\", verticalLine: \"verticalLine\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCrosshairComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCrosshairComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-crosshair',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], horizontalLine: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], verticalLine: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoCrosshairModule {\r\n}\r\n/** @nocollapse */ DxoCrosshairModule.ɵfac = function DxoCrosshairModule_Factory(t) { return new (t || DxoCrosshairModule)(); };\r\n/** @nocollapse */ DxoCrosshairModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCrosshairModule });\r\n/** @nocollapse */ DxoCrosshairModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCrosshairModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCrosshairComponent\r\n ],\r\n exports: [\r\n DxoCrosshairComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCrosshairModule, { declarations: [DxoCrosshairComponent], exports: [DxoCrosshairComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoCursorOffsetComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'cursorOffset';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoCursorOffsetComponent.ɵfac = function DxoCursorOffsetComponent_Factory(t) { return new (t || DxoCursorOffsetComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoCursorOffsetComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoCursorOffsetComponent, selectors: [[\"dxo-cursor-offset\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoCursorOffsetComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCursorOffsetComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-cursor-offset',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoCursorOffsetModule {\r\n}\r\n/** @nocollapse */ DxoCursorOffsetModule.ɵfac = function DxoCursorOffsetModule_Factory(t) { return new (t || DxoCursorOffsetModule)(); };\r\n/** @nocollapse */ DxoCursorOffsetModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoCursorOffsetModule });\r\n/** @nocollapse */ DxoCursorOffsetModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoCursorOffsetModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoCursorOffsetComponent\r\n ],\r\n exports: [\r\n DxoCursorOffsetComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoCursorOffsetModule, { declarations: [DxoCursorOffsetComponent], exports: [DxoCursorOffsetComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiFilterBuilderCustomOperation extends CollectionNestedOption {\r\n get calculateFilterExpression() {\r\n return this._getOption('calculateFilterExpression');\r\n }\r\n set calculateFilterExpression(value) {\r\n this._setOption('calculateFilterExpression', value);\r\n }\r\n get caption() {\r\n return this._getOption('caption');\r\n }\r\n set caption(value) {\r\n this._setOption('caption', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get dataTypes() {\r\n return this._getOption('dataTypes');\r\n }\r\n set dataTypes(value) {\r\n this._setOption('dataTypes', value);\r\n }\r\n get editorTemplate() {\r\n return this._getOption('editorTemplate');\r\n }\r\n set editorTemplate(value) {\r\n this._setOption('editorTemplate', value);\r\n }\r\n get hasValue() {\r\n return this._getOption('hasValue');\r\n }\r\n set hasValue(value) {\r\n this._setOption('hasValue', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiFilterBuilderCustomOperation.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiFilterBuilderCustomOperation_BaseFactory; return function DxiFilterBuilderCustomOperation_Factory(t) { return (ɵDxiFilterBuilderCustomOperation_BaseFactory || (ɵDxiFilterBuilderCustomOperation_BaseFactory = i0.ɵɵgetInheritedFactory(DxiFilterBuilderCustomOperation)))(t || DxiFilterBuilderCustomOperation); }; }();\r\n/** @nocollapse */ DxiFilterBuilderCustomOperation.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiFilterBuilderCustomOperation, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiFilterBuilderCustomOperation_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFilterBuilderCustomOperation, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiCustomOperationComponent extends DxiFilterBuilderCustomOperation {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'customOperations';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiCustomOperationComponent.ɵfac = function DxiCustomOperationComponent_Factory(t) { return new (t || DxiCustomOperationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiCustomOperationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiCustomOperationComponent, selectors: [[\"dxi-custom-operation\"]], inputs: { calculateFilterExpression: \"calculateFilterExpression\", caption: \"caption\", customizeText: \"customizeText\", dataTypes: \"dataTypes\", editorTemplate: \"editorTemplate\", hasValue: \"hasValue\", icon: \"icon\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiCustomOperationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCustomOperationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-custom-operation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'calculateFilterExpression',\r\n 'caption',\r\n 'customizeText',\r\n 'dataTypes',\r\n 'editorTemplate',\r\n 'hasValue',\r\n 'icon',\r\n 'name'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiCustomOperationModule {\r\n}\r\n/** @nocollapse */ DxiCustomOperationModule.ɵfac = function DxiCustomOperationModule_Factory(t) { return new (t || DxiCustomOperationModule)(); };\r\n/** @nocollapse */ DxiCustomOperationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiCustomOperationModule });\r\n/** @nocollapse */ DxiCustomOperationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCustomOperationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiCustomOperationComponent\r\n ],\r\n exports: [\r\n DxiCustomOperationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiCustomOperationModule, { declarations: [DxiCustomOperationComponent], exports: [DxiCustomOperationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0$2 = [\"*\"];\r\nclass DxiCustomShapeComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {\r\n super();\r\n this.renderer = renderer;\r\n this.document = document;\r\n this.element = element;\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n get allowEditImage() {\r\n return this._getOption('allowEditImage');\r\n }\r\n set allowEditImage(value) {\r\n this._setOption('allowEditImage', value);\r\n }\r\n get allowEditText() {\r\n return this._getOption('allowEditText');\r\n }\r\n set allowEditText(value) {\r\n this._setOption('allowEditText', value);\r\n }\r\n get allowResize() {\r\n return this._getOption('allowResize');\r\n }\r\n set allowResize(value) {\r\n this._setOption('allowResize', value);\r\n }\r\n get backgroundImageHeight() {\r\n return this._getOption('backgroundImageHeight');\r\n }\r\n set backgroundImageHeight(value) {\r\n this._setOption('backgroundImageHeight', value);\r\n }\r\n get backgroundImageLeft() {\r\n return this._getOption('backgroundImageLeft');\r\n }\r\n set backgroundImageLeft(value) {\r\n this._setOption('backgroundImageLeft', value);\r\n }\r\n get backgroundImageToolboxUrl() {\r\n return this._getOption('backgroundImageToolboxUrl');\r\n }\r\n set backgroundImageToolboxUrl(value) {\r\n this._setOption('backgroundImageToolboxUrl', value);\r\n }\r\n get backgroundImageTop() {\r\n return this._getOption('backgroundImageTop');\r\n }\r\n set backgroundImageTop(value) {\r\n this._setOption('backgroundImageTop', value);\r\n }\r\n get backgroundImageUrl() {\r\n return this._getOption('backgroundImageUrl');\r\n }\r\n set backgroundImageUrl(value) {\r\n this._setOption('backgroundImageUrl', value);\r\n }\r\n get backgroundImageWidth() {\r\n return this._getOption('backgroundImageWidth');\r\n }\r\n set backgroundImageWidth(value) {\r\n this._setOption('backgroundImageWidth', value);\r\n }\r\n get baseType() {\r\n return this._getOption('baseType');\r\n }\r\n set baseType(value) {\r\n this._setOption('baseType', value);\r\n }\r\n get category() {\r\n return this._getOption('category');\r\n }\r\n set category(value) {\r\n this._setOption('category', value);\r\n }\r\n get connectionPoints() {\r\n return this._getOption('connectionPoints');\r\n }\r\n set connectionPoints(value) {\r\n this._setOption('connectionPoints', value);\r\n }\r\n get defaultHeight() {\r\n return this._getOption('defaultHeight');\r\n }\r\n set defaultHeight(value) {\r\n this._setOption('defaultHeight', value);\r\n }\r\n get defaultImageUrl() {\r\n return this._getOption('defaultImageUrl');\r\n }\r\n set defaultImageUrl(value) {\r\n this._setOption('defaultImageUrl', value);\r\n }\r\n get defaultText() {\r\n return this._getOption('defaultText');\r\n }\r\n set defaultText(value) {\r\n this._setOption('defaultText', value);\r\n }\r\n get defaultWidth() {\r\n return this._getOption('defaultWidth');\r\n }\r\n set defaultWidth(value) {\r\n this._setOption('defaultWidth', value);\r\n }\r\n get imageHeight() {\r\n return this._getOption('imageHeight');\r\n }\r\n set imageHeight(value) {\r\n this._setOption('imageHeight', value);\r\n }\r\n get imageLeft() {\r\n return this._getOption('imageLeft');\r\n }\r\n set imageLeft(value) {\r\n this._setOption('imageLeft', value);\r\n }\r\n get imageTop() {\r\n return this._getOption('imageTop');\r\n }\r\n set imageTop(value) {\r\n this._setOption('imageTop', value);\r\n }\r\n get imageWidth() {\r\n return this._getOption('imageWidth');\r\n }\r\n set imageWidth(value) {\r\n this._setOption('imageWidth', value);\r\n }\r\n get keepRatioOnAutoSize() {\r\n return this._getOption('keepRatioOnAutoSize');\r\n }\r\n set keepRatioOnAutoSize(value) {\r\n this._setOption('keepRatioOnAutoSize', value);\r\n }\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get templateHeight() {\r\n return this._getOption('templateHeight');\r\n }\r\n set templateHeight(value) {\r\n this._setOption('templateHeight', value);\r\n }\r\n get templateLeft() {\r\n return this._getOption('templateLeft');\r\n }\r\n set templateLeft(value) {\r\n this._setOption('templateLeft', value);\r\n }\r\n get templateTop() {\r\n return this._getOption('templateTop');\r\n }\r\n set templateTop(value) {\r\n this._setOption('templateTop', value);\r\n }\r\n get templateWidth() {\r\n return this._getOption('templateWidth');\r\n }\r\n set templateWidth(value) {\r\n this._setOption('templateWidth', value);\r\n }\r\n get textHeight() {\r\n return this._getOption('textHeight');\r\n }\r\n set textHeight(value) {\r\n this._setOption('textHeight', value);\r\n }\r\n get textLeft() {\r\n return this._getOption('textLeft');\r\n }\r\n set textLeft(value) {\r\n this._setOption('textLeft', value);\r\n }\r\n get textTop() {\r\n return this._getOption('textTop');\r\n }\r\n set textTop(value) {\r\n this._setOption('textTop', value);\r\n }\r\n get textWidth() {\r\n return this._getOption('textWidth');\r\n }\r\n set textWidth(value) {\r\n this._setOption('textWidth', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get toolboxTemplate() {\r\n return this._getOption('toolboxTemplate');\r\n }\r\n set toolboxTemplate(value) {\r\n this._setOption('toolboxTemplate', value);\r\n }\r\n get toolboxWidthToHeightRatio() {\r\n return this._getOption('toolboxWidthToHeightRatio');\r\n }\r\n set toolboxWidthToHeightRatio(value) {\r\n this._setOption('toolboxWidthToHeightRatio', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'customShapes';\r\n }\r\n get connectionPointsChildren() {\r\n return this._getOption('connectionPoints');\r\n }\r\n set connectionPointsChildren(value) {\r\n this.setChildren('connectionPoints', value);\r\n }\r\n setTemplate(template) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiCustomShapeComponent.ɵfac = function DxiCustomShapeComponent_Factory(t) { return new (t || DxiCustomShapeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.DxTemplateHost, 1), i0.ɵɵdirectiveInject(i0.ElementRef)); };\r\n/** @nocollapse */ DxiCustomShapeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiCustomShapeComponent, selectors: [[\"dxi-custom-shape\"]], contentQueries: function DxiCustomShapeComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiConnectionPointComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.connectionPointsChildren = _t);\r\n } }, inputs: { allowEditImage: \"allowEditImage\", allowEditText: \"allowEditText\", allowResize: \"allowResize\", backgroundImageHeight: \"backgroundImageHeight\", backgroundImageLeft: \"backgroundImageLeft\", backgroundImageToolboxUrl: \"backgroundImageToolboxUrl\", backgroundImageTop: \"backgroundImageTop\", backgroundImageUrl: \"backgroundImageUrl\", backgroundImageWidth: \"backgroundImageWidth\", baseType: \"baseType\", category: \"category\", connectionPoints: \"connectionPoints\", defaultHeight: \"defaultHeight\", defaultImageUrl: \"defaultImageUrl\", defaultText: \"defaultText\", defaultWidth: \"defaultWidth\", imageHeight: \"imageHeight\", imageLeft: \"imageLeft\", imageTop: \"imageTop\", imageWidth: \"imageWidth\", keepRatioOnAutoSize: \"keepRatioOnAutoSize\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", template: \"template\", templateHeight: \"templateHeight\", templateLeft: \"templateLeft\", templateTop: \"templateTop\", templateWidth: \"templateWidth\", textHeight: \"textHeight\", textLeft: \"textLeft\", textTop: \"textTop\", textWidth: \"textWidth\", title: \"title\", toolboxTemplate: \"toolboxTemplate\", toolboxWidthToHeightRatio: \"toolboxWidthToHeightRatio\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost, DxTemplateHost]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$2, decls: 1, vars: 0, template: function DxiCustomShapeComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCustomShapeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-custom-shape',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i1.DxTemplateHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.ElementRef }]; }, { allowEditImage: [{\r\n type: Input\r\n }], allowEditText: [{\r\n type: Input\r\n }], allowResize: [{\r\n type: Input\r\n }], backgroundImageHeight: [{\r\n type: Input\r\n }], backgroundImageLeft: [{\r\n type: Input\r\n }], backgroundImageToolboxUrl: [{\r\n type: Input\r\n }], backgroundImageTop: [{\r\n type: Input\r\n }], backgroundImageUrl: [{\r\n type: Input\r\n }], backgroundImageWidth: [{\r\n type: Input\r\n }], baseType: [{\r\n type: Input\r\n }], category: [{\r\n type: Input\r\n }], connectionPoints: [{\r\n type: Input\r\n }], defaultHeight: [{\r\n type: Input\r\n }], defaultImageUrl: [{\r\n type: Input\r\n }], defaultText: [{\r\n type: Input\r\n }], defaultWidth: [{\r\n type: Input\r\n }], imageHeight: [{\r\n type: Input\r\n }], imageLeft: [{\r\n type: Input\r\n }], imageTop: [{\r\n type: Input\r\n }], imageWidth: [{\r\n type: Input\r\n }], keepRatioOnAutoSize: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }], templateHeight: [{\r\n type: Input\r\n }], templateLeft: [{\r\n type: Input\r\n }], templateTop: [{\r\n type: Input\r\n }], templateWidth: [{\r\n type: Input\r\n }], textHeight: [{\r\n type: Input\r\n }], textLeft: [{\r\n type: Input\r\n }], textTop: [{\r\n type: Input\r\n }], textWidth: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], toolboxTemplate: [{\r\n type: Input\r\n }], toolboxWidthToHeightRatio: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], connectionPointsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiConnectionPointComponent)]\r\n }] }); })();\r\nclass DxiCustomShapeModule {\r\n}\r\n/** @nocollapse */ DxiCustomShapeModule.ɵfac = function DxiCustomShapeModule_Factory(t) { return new (t || DxiCustomShapeModule)(); };\r\n/** @nocollapse */ DxiCustomShapeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiCustomShapeModule });\r\n/** @nocollapse */ DxiCustomShapeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiCustomShapeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiCustomShapeComponent\r\n ],\r\n exports: [\r\n DxiCustomShapeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiCustomShapeModule, { declarations: [DxiCustomShapeComponent], exports: [DxiCustomShapeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDataPrepareSettingsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get checkTypeForAllData() {\r\n return this._getOption('checkTypeForAllData');\r\n }\r\n set checkTypeForAllData(value) {\r\n this._setOption('checkTypeForAllData', value);\r\n }\r\n get convertToAxisDataType() {\r\n return this._getOption('convertToAxisDataType');\r\n }\r\n set convertToAxisDataType(value) {\r\n this._setOption('convertToAxisDataType', value);\r\n }\r\n get sortingMethod() {\r\n return this._getOption('sortingMethod');\r\n }\r\n set sortingMethod(value) {\r\n this._setOption('sortingMethod', value);\r\n }\r\n get _optionPath() {\r\n return 'dataPrepareSettings';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDataPrepareSettingsComponent.ɵfac = function DxoDataPrepareSettingsComponent_Factory(t) { return new (t || DxoDataPrepareSettingsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDataPrepareSettingsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDataPrepareSettingsComponent, selectors: [[\"dxo-data-prepare-settings\"]], inputs: { checkTypeForAllData: \"checkTypeForAllData\", convertToAxisDataType: \"convertToAxisDataType\", sortingMethod: \"sortingMethod\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDataPrepareSettingsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDataPrepareSettingsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-data-prepare-settings',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { checkTypeForAllData: [{\r\n type: Input\r\n }], convertToAxisDataType: [{\r\n type: Input\r\n }], sortingMethod: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoDataPrepareSettingsModule {\r\n}\r\n/** @nocollapse */ DxoDataPrepareSettingsModule.ɵfac = function DxoDataPrepareSettingsModule_Factory(t) { return new (t || DxoDataPrepareSettingsModule)(); };\r\n/** @nocollapse */ DxoDataPrepareSettingsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDataPrepareSettingsModule });\r\n/** @nocollapse */ DxoDataPrepareSettingsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDataPrepareSettingsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDataPrepareSettingsComponent\r\n ],\r\n exports: [\r\n DxoDataPrepareSettingsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDataPrepareSettingsModule, { declarations: [DxoDataPrepareSettingsComponent], exports: [DxoDataPrepareSettingsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPivotGridDataSource extends NestedOption {\r\n get fields() {\r\n return this._getOption('fields');\r\n }\r\n set fields(value) {\r\n this._setOption('fields', value);\r\n }\r\n get filter() {\r\n return this._getOption('filter');\r\n }\r\n set filter(value) {\r\n this._setOption('filter', value);\r\n }\r\n get onChanged() {\r\n return this._getOption('onChanged');\r\n }\r\n set onChanged(value) {\r\n this._setOption('onChanged', value);\r\n }\r\n get onFieldsPrepared() {\r\n return this._getOption('onFieldsPrepared');\r\n }\r\n set onFieldsPrepared(value) {\r\n this._setOption('onFieldsPrepared', value);\r\n }\r\n get onLoadError() {\r\n return this._getOption('onLoadError');\r\n }\r\n set onLoadError(value) {\r\n this._setOption('onLoadError', value);\r\n }\r\n get onLoadingChanged() {\r\n return this._getOption('onLoadingChanged');\r\n }\r\n set onLoadingChanged(value) {\r\n this._setOption('onLoadingChanged', value);\r\n }\r\n get remoteOperations() {\r\n return this._getOption('remoteOperations');\r\n }\r\n set remoteOperations(value) {\r\n this._setOption('remoteOperations', value);\r\n }\r\n get retrieveFields() {\r\n return this._getOption('retrieveFields');\r\n }\r\n set retrieveFields(value) {\r\n this._setOption('retrieveFields', value);\r\n }\r\n get store() {\r\n return this._getOption('store');\r\n }\r\n set store(value) {\r\n this._setOption('store', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoPivotGridDataSource.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoPivotGridDataSource_BaseFactory; return function DxoPivotGridDataSource_Factory(t) { return (ɵDxoPivotGridDataSource_BaseFactory || (ɵDxoPivotGridDataSource_BaseFactory = i0.ɵɵgetInheritedFactory(DxoPivotGridDataSource)))(t || DxoPivotGridDataSource); }; }();\r\n/** @nocollapse */ DxoPivotGridDataSource.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPivotGridDataSource, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPivotGridDataSource_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPivotGridDataSource, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiFilterBuilderField extends CollectionNestedOption {\r\n get calculateFilterExpression() {\r\n return this._getOption('calculateFilterExpression');\r\n }\r\n set calculateFilterExpression(value) {\r\n this._setOption('calculateFilterExpression', value);\r\n }\r\n get caption() {\r\n return this._getOption('caption');\r\n }\r\n set caption(value) {\r\n this._setOption('caption', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get dataType() {\r\n return this._getOption('dataType');\r\n }\r\n set dataType(value) {\r\n this._setOption('dataType', value);\r\n }\r\n get editorOptions() {\r\n return this._getOption('editorOptions');\r\n }\r\n set editorOptions(value) {\r\n this._setOption('editorOptions', value);\r\n }\r\n get editorTemplate() {\r\n return this._getOption('editorTemplate');\r\n }\r\n set editorTemplate(value) {\r\n this._setOption('editorTemplate', value);\r\n }\r\n get falseText() {\r\n return this._getOption('falseText');\r\n }\r\n set falseText(value) {\r\n this._setOption('falseText', value);\r\n }\r\n get filterOperations() {\r\n return this._getOption('filterOperations');\r\n }\r\n set filterOperations(value) {\r\n this._setOption('filterOperations', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get lookup() {\r\n return this._getOption('lookup');\r\n }\r\n set lookup(value) {\r\n this._setOption('lookup', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get trueText() {\r\n return this._getOption('trueText');\r\n }\r\n set trueText(value) {\r\n this._setOption('trueText', value);\r\n }\r\n get allowCrossGroupCalculation() {\r\n return this._getOption('allowCrossGroupCalculation');\r\n }\r\n set allowCrossGroupCalculation(value) {\r\n this._setOption('allowCrossGroupCalculation', value);\r\n }\r\n get allowExpandAll() {\r\n return this._getOption('allowExpandAll');\r\n }\r\n set allowExpandAll(value) {\r\n this._setOption('allowExpandAll', value);\r\n }\r\n get allowFiltering() {\r\n return this._getOption('allowFiltering');\r\n }\r\n set allowFiltering(value) {\r\n this._setOption('allowFiltering', value);\r\n }\r\n get allowSorting() {\r\n return this._getOption('allowSorting');\r\n }\r\n set allowSorting(value) {\r\n this._setOption('allowSorting', value);\r\n }\r\n get allowSortingBySummary() {\r\n return this._getOption('allowSortingBySummary');\r\n }\r\n set allowSortingBySummary(value) {\r\n this._setOption('allowSortingBySummary', value);\r\n }\r\n get area() {\r\n return this._getOption('area');\r\n }\r\n set area(value) {\r\n this._setOption('area', value);\r\n }\r\n get areaIndex() {\r\n return this._getOption('areaIndex');\r\n }\r\n set areaIndex(value) {\r\n this._setOption('areaIndex', value);\r\n }\r\n get calculateCustomSummary() {\r\n return this._getOption('calculateCustomSummary');\r\n }\r\n set calculateCustomSummary(value) {\r\n this._setOption('calculateCustomSummary', value);\r\n }\r\n get calculateSummaryValue() {\r\n return this._getOption('calculateSummaryValue');\r\n }\r\n set calculateSummaryValue(value) {\r\n this._setOption('calculateSummaryValue', value);\r\n }\r\n get displayFolder() {\r\n return this._getOption('displayFolder');\r\n }\r\n set displayFolder(value) {\r\n this._setOption('displayFolder', value);\r\n }\r\n get expanded() {\r\n return this._getOption('expanded');\r\n }\r\n set expanded(value) {\r\n this._setOption('expanded', value);\r\n }\r\n get filterType() {\r\n return this._getOption('filterType');\r\n }\r\n set filterType(value) {\r\n this._setOption('filterType', value);\r\n }\r\n get filterValues() {\r\n return this._getOption('filterValues');\r\n }\r\n set filterValues(value) {\r\n this._setOption('filterValues', value);\r\n }\r\n get groupIndex() {\r\n return this._getOption('groupIndex');\r\n }\r\n set groupIndex(value) {\r\n this._setOption('groupIndex', value);\r\n }\r\n get groupInterval() {\r\n return this._getOption('groupInterval');\r\n }\r\n set groupInterval(value) {\r\n this._setOption('groupInterval', value);\r\n }\r\n get groupName() {\r\n return this._getOption('groupName');\r\n }\r\n set groupName(value) {\r\n this._setOption('groupName', value);\r\n }\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n get isMeasure() {\r\n return this._getOption('isMeasure');\r\n }\r\n set isMeasure(value) {\r\n this._setOption('isMeasure', value);\r\n }\r\n get precision() {\r\n return this._getOption('precision');\r\n }\r\n set precision(value) {\r\n this._setOption('precision', value);\r\n }\r\n get runningTotal() {\r\n return this._getOption('runningTotal');\r\n }\r\n set runningTotal(value) {\r\n this._setOption('runningTotal', value);\r\n }\r\n get selector() {\r\n return this._getOption('selector');\r\n }\r\n set selector(value) {\r\n this._setOption('selector', value);\r\n }\r\n get showGrandTotals() {\r\n return this._getOption('showGrandTotals');\r\n }\r\n set showGrandTotals(value) {\r\n this._setOption('showGrandTotals', value);\r\n }\r\n get showTotals() {\r\n return this._getOption('showTotals');\r\n }\r\n set showTotals(value) {\r\n this._setOption('showTotals', value);\r\n }\r\n get showValues() {\r\n return this._getOption('showValues');\r\n }\r\n set showValues(value) {\r\n this._setOption('showValues', value);\r\n }\r\n get sortBy() {\r\n return this._getOption('sortBy');\r\n }\r\n set sortBy(value) {\r\n this._setOption('sortBy', value);\r\n }\r\n get sortBySummaryField() {\r\n return this._getOption('sortBySummaryField');\r\n }\r\n set sortBySummaryField(value) {\r\n this._setOption('sortBySummaryField', value);\r\n }\r\n get sortBySummaryPath() {\r\n return this._getOption('sortBySummaryPath');\r\n }\r\n set sortBySummaryPath(value) {\r\n this._setOption('sortBySummaryPath', value);\r\n }\r\n get sortingMethod() {\r\n return this._getOption('sortingMethod');\r\n }\r\n set sortingMethod(value) {\r\n this._setOption('sortingMethod', value);\r\n }\r\n get sortOrder() {\r\n return this._getOption('sortOrder');\r\n }\r\n set sortOrder(value) {\r\n this._setOption('sortOrder', value);\r\n }\r\n get summaryDisplayMode() {\r\n return this._getOption('summaryDisplayMode');\r\n }\r\n set summaryDisplayMode(value) {\r\n this._setOption('summaryDisplayMode', value);\r\n }\r\n get summaryType() {\r\n return this._getOption('summaryType');\r\n }\r\n set summaryType(value) {\r\n this._setOption('summaryType', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get wordWrapEnabled() {\r\n return this._getOption('wordWrapEnabled');\r\n }\r\n set wordWrapEnabled(value) {\r\n this._setOption('wordWrapEnabled', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiFilterBuilderField.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiFilterBuilderField_BaseFactory; return function DxiFilterBuilderField_Factory(t) { return (ɵDxiFilterBuilderField_BaseFactory || (ɵDxiFilterBuilderField_BaseFactory = i0.ɵɵgetInheritedFactory(DxiFilterBuilderField)))(t || DxiFilterBuilderField); }; }();\r\n/** @nocollapse */ DxiFilterBuilderField.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiFilterBuilderField, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiFilterBuilderField_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFilterBuilderField, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiFieldComponent extends DxiFilterBuilderField {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fields';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiFieldComponent.ɵfac = function DxiFieldComponent_Factory(t) { return new (t || DxiFieldComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiFieldComponent, selectors: [[\"dxi-field\"]], inputs: { calculateFilterExpression: \"calculateFilterExpression\", caption: \"caption\", customizeText: \"customizeText\", dataField: \"dataField\", dataType: \"dataType\", editorOptions: \"editorOptions\", editorTemplate: \"editorTemplate\", falseText: \"falseText\", filterOperations: \"filterOperations\", format: \"format\", lookup: \"lookup\", name: \"name\", trueText: \"trueText\", allowCrossGroupCalculation: \"allowCrossGroupCalculation\", allowExpandAll: \"allowExpandAll\", allowFiltering: \"allowFiltering\", allowSorting: \"allowSorting\", allowSortingBySummary: \"allowSortingBySummary\", area: \"area\", areaIndex: \"areaIndex\", calculateCustomSummary: \"calculateCustomSummary\", calculateSummaryValue: \"calculateSummaryValue\", displayFolder: \"displayFolder\", expanded: \"expanded\", filterType: \"filterType\", filterValues: \"filterValues\", groupIndex: \"groupIndex\", groupInterval: \"groupInterval\", groupName: \"groupName\", headerFilter: \"headerFilter\", isMeasure: \"isMeasure\", precision: \"precision\", runningTotal: \"runningTotal\", selector: \"selector\", showGrandTotals: \"showGrandTotals\", showTotals: \"showTotals\", showValues: \"showValues\", sortBy: \"sortBy\", sortBySummaryField: \"sortBySummaryField\", sortBySummaryPath: \"sortBySummaryPath\", sortingMethod: \"sortingMethod\", sortOrder: \"sortOrder\", summaryDisplayMode: \"summaryDisplayMode\", summaryType: \"summaryType\", visible: \"visible\", width: \"width\", wordWrapEnabled: \"wordWrapEnabled\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiFieldComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFieldComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-field',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'calculateFilterExpression',\r\n 'caption',\r\n 'customizeText',\r\n 'dataField',\r\n 'dataType',\r\n 'editorOptions',\r\n 'editorTemplate',\r\n 'falseText',\r\n 'filterOperations',\r\n 'format',\r\n 'lookup',\r\n 'name',\r\n 'trueText',\r\n 'allowCrossGroupCalculation',\r\n 'allowExpandAll',\r\n 'allowFiltering',\r\n 'allowSorting',\r\n 'allowSortingBySummary',\r\n 'area',\r\n 'areaIndex',\r\n 'calculateCustomSummary',\r\n 'calculateSummaryValue',\r\n 'displayFolder',\r\n 'expanded',\r\n 'filterType',\r\n 'filterValues',\r\n 'groupIndex',\r\n 'groupInterval',\r\n 'groupName',\r\n 'headerFilter',\r\n 'isMeasure',\r\n 'precision',\r\n 'runningTotal',\r\n 'selector',\r\n 'showGrandTotals',\r\n 'showTotals',\r\n 'showValues',\r\n 'sortBy',\r\n 'sortBySummaryField',\r\n 'sortBySummaryPath',\r\n 'sortingMethod',\r\n 'sortOrder',\r\n 'summaryDisplayMode',\r\n 'summaryType',\r\n 'visible',\r\n 'width',\r\n 'wordWrapEnabled'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiFieldModule {\r\n}\r\n/** @nocollapse */ DxiFieldModule.ɵfac = function DxiFieldModule_Factory(t) { return new (t || DxiFieldModule)(); };\r\n/** @nocollapse */ DxiFieldModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiFieldModule });\r\n/** @nocollapse */ DxiFieldModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFieldModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiFieldComponent\r\n ],\r\n exports: [\r\n DxiFieldComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiFieldModule, { declarations: [DxiFieldComponent], exports: [DxiFieldComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDataSourceComponent extends DxoPivotGridDataSource {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n if ((console) && (console.warn)) {\r\n console.warn('The nested \\'dxo-data-source\\' component is deprecated in 17.2. ' +\r\n 'Use the \\'dataSource\\' option instead. ' +\r\n 'See:\\nhttps://github.com/DevExpress/devextreme-angular/blob/master/CHANGELOG.md#17.2.3');\r\n }\r\n }\r\n get _optionPath() {\r\n return 'dataSource';\r\n }\r\n get fieldsChildren() {\r\n return this._getOption('fields');\r\n }\r\n set fieldsChildren(value) {\r\n this.setChildren('fields', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDataSourceComponent.ɵfac = function DxoDataSourceComponent_Factory(t) { return new (t || DxoDataSourceComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDataSourceComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDataSourceComponent, selectors: [[\"dxo-data-source\"]], contentQueries: function DxoDataSourceComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiFieldComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldsChildren = _t);\r\n } }, inputs: { fields: \"fields\", filter: \"filter\", onChanged: \"onChanged\", onFieldsPrepared: \"onFieldsPrepared\", onLoadError: \"onLoadError\", onLoadingChanged: \"onLoadingChanged\", remoteOperations: \"remoteOperations\", retrieveFields: \"retrieveFields\", store: \"store\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDataSourceComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDataSourceComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-data-source',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'fields',\r\n 'filter',\r\n 'onChanged',\r\n 'onFieldsPrepared',\r\n 'onLoadError',\r\n 'onLoadingChanged',\r\n 'remoteOperations',\r\n 'retrieveFields',\r\n 'store'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { fieldsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiFieldComponent)]\r\n }] }); })();\r\nclass DxoDataSourceModule {\r\n}\r\n/** @nocollapse */ DxoDataSourceModule.ɵfac = function DxoDataSourceModule_Factory(t) { return new (t || DxoDataSourceModule)(); };\r\n/** @nocollapse */ DxoDataSourceModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDataSourceModule });\r\n/** @nocollapse */ DxoDataSourceModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDataSourceModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDataSourceComponent\r\n ],\r\n exports: [\r\n DxoDataSourceComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDataSourceModule, { declarations: [DxoDataSourceComponent], exports: [DxoDataSourceComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDefaultItemPropertiesComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get connectorLineEnd() {\r\n return this._getOption('connectorLineEnd');\r\n }\r\n set connectorLineEnd(value) {\r\n this._setOption('connectorLineEnd', value);\r\n }\r\n get connectorLineStart() {\r\n return this._getOption('connectorLineStart');\r\n }\r\n set connectorLineStart(value) {\r\n this._setOption('connectorLineStart', value);\r\n }\r\n get connectorLineType() {\r\n return this._getOption('connectorLineType');\r\n }\r\n set connectorLineType(value) {\r\n this._setOption('connectorLineType', value);\r\n }\r\n get shapeMaxHeight() {\r\n return this._getOption('shapeMaxHeight');\r\n }\r\n set shapeMaxHeight(value) {\r\n this._setOption('shapeMaxHeight', value);\r\n }\r\n get shapeMaxWidth() {\r\n return this._getOption('shapeMaxWidth');\r\n }\r\n set shapeMaxWidth(value) {\r\n this._setOption('shapeMaxWidth', value);\r\n }\r\n get shapeMinHeight() {\r\n return this._getOption('shapeMinHeight');\r\n }\r\n set shapeMinHeight(value) {\r\n this._setOption('shapeMinHeight', value);\r\n }\r\n get shapeMinWidth() {\r\n return this._getOption('shapeMinWidth');\r\n }\r\n set shapeMinWidth(value) {\r\n this._setOption('shapeMinWidth', value);\r\n }\r\n get style() {\r\n return this._getOption('style');\r\n }\r\n set style(value) {\r\n this._setOption('style', value);\r\n }\r\n get textStyle() {\r\n return this._getOption('textStyle');\r\n }\r\n set textStyle(value) {\r\n this._setOption('textStyle', value);\r\n }\r\n get _optionPath() {\r\n return 'defaultItemProperties';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDefaultItemPropertiesComponent.ɵfac = function DxoDefaultItemPropertiesComponent_Factory(t) { return new (t || DxoDefaultItemPropertiesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDefaultItemPropertiesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDefaultItemPropertiesComponent, selectors: [[\"dxo-default-item-properties\"]], inputs: { connectorLineEnd: \"connectorLineEnd\", connectorLineStart: \"connectorLineStart\", connectorLineType: \"connectorLineType\", shapeMaxHeight: \"shapeMaxHeight\", shapeMaxWidth: \"shapeMaxWidth\", shapeMinHeight: \"shapeMinHeight\", shapeMinWidth: \"shapeMinWidth\", style: \"style\", textStyle: \"textStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDefaultItemPropertiesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDefaultItemPropertiesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-default-item-properties',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { connectorLineEnd: [{\r\n type: Input\r\n }], connectorLineStart: [{\r\n type: Input\r\n }], connectorLineType: [{\r\n type: Input\r\n }], shapeMaxHeight: [{\r\n type: Input\r\n }], shapeMaxWidth: [{\r\n type: Input\r\n }], shapeMinHeight: [{\r\n type: Input\r\n }], shapeMinWidth: [{\r\n type: Input\r\n }], style: [{\r\n type: Input\r\n }], textStyle: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoDefaultItemPropertiesModule {\r\n}\r\n/** @nocollapse */ DxoDefaultItemPropertiesModule.ɵfac = function DxoDefaultItemPropertiesModule_Factory(t) { return new (t || DxoDefaultItemPropertiesModule)(); };\r\n/** @nocollapse */ DxoDefaultItemPropertiesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDefaultItemPropertiesModule });\r\n/** @nocollapse */ DxoDefaultItemPropertiesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDefaultItemPropertiesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDefaultItemPropertiesComponent\r\n ],\r\n exports: [\r\n DxoDefaultItemPropertiesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDefaultItemPropertiesModule, { declarations: [DxoDefaultItemPropertiesComponent], exports: [DxoDefaultItemPropertiesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDelayComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get hide() {\r\n return this._getOption('hide');\r\n }\r\n set hide(value) {\r\n this._setOption('hide', value);\r\n }\r\n get show() {\r\n return this._getOption('show');\r\n }\r\n set show(value) {\r\n this._setOption('show', value);\r\n }\r\n get _optionPath() {\r\n return 'delay';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDelayComponent.ɵfac = function DxoDelayComponent_Factory(t) { return new (t || DxoDelayComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDelayComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDelayComponent, selectors: [[\"dxo-delay\"]], inputs: { hide: \"hide\", show: \"show\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDelayComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDelayComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-delay',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { hide: [{\r\n type: Input\r\n }], show: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoDelayModule {\r\n}\r\n/** @nocollapse */ DxoDelayModule.ɵfac = function DxoDelayModule_Factory(t) { return new (t || DxoDelayModule)(); };\r\n/** @nocollapse */ DxoDelayModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDelayModule });\r\n/** @nocollapse */ DxoDelayModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDelayModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDelayComponent\r\n ],\r\n exports: [\r\n DxoDelayComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDelayModule, { declarations: [DxoDelayComponent], exports: [DxoDelayComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDependenciesComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get predecessorIdExpr() {\r\n return this._getOption('predecessorIdExpr');\r\n }\r\n set predecessorIdExpr(value) {\r\n this._setOption('predecessorIdExpr', value);\r\n }\r\n get successorIdExpr() {\r\n return this._getOption('successorIdExpr');\r\n }\r\n set successorIdExpr(value) {\r\n this._setOption('successorIdExpr', value);\r\n }\r\n get typeExpr() {\r\n return this._getOption('typeExpr');\r\n }\r\n set typeExpr(value) {\r\n this._setOption('typeExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'dependencies';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDependenciesComponent.ɵfac = function DxoDependenciesComponent_Factory(t) { return new (t || DxoDependenciesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDependenciesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDependenciesComponent, selectors: [[\"dxo-dependencies\"]], inputs: { dataSource: \"dataSource\", keyExpr: \"keyExpr\", predecessorIdExpr: \"predecessorIdExpr\", successorIdExpr: \"successorIdExpr\", typeExpr: \"typeExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDependenciesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDependenciesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-dependencies',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { dataSource: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], predecessorIdExpr: [{\r\n type: Input\r\n }], successorIdExpr: [{\r\n type: Input\r\n }], typeExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoDependenciesModule {\r\n}\r\n/** @nocollapse */ DxoDependenciesModule.ɵfac = function DxoDependenciesModule_Factory(t) { return new (t || DxoDependenciesModule)(); };\r\n/** @nocollapse */ DxoDependenciesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDependenciesModule });\r\n/** @nocollapse */ DxoDependenciesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDependenciesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDependenciesComponent\r\n ],\r\n exports: [\r\n DxoDependenciesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDependenciesModule, { declarations: [DxoDependenciesComponent], exports: [DxoDependenciesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDetailsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get columns() {\r\n return this._getOption('columns');\r\n }\r\n set columns(value) {\r\n this._setOption('columns', value);\r\n }\r\n get _optionPath() {\r\n return 'details';\r\n }\r\n get columnsChildren() {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this.setChildren('columns', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDetailsComponent.ɵfac = function DxoDetailsComponent_Factory(t) { return new (t || DxoDetailsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDetailsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDetailsComponent, selectors: [[\"dxo-details\"]], contentQueries: function DxoDetailsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);\r\n } }, inputs: { columns: \"columns\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDetailsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDetailsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-details',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { columns: [{\r\n type: Input\r\n }], columnsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiColumnComponent)]\r\n }] }); })();\r\nclass DxoDetailsModule {\r\n}\r\n/** @nocollapse */ DxoDetailsModule.ɵfac = function DxoDetailsModule_Factory(t) { return new (t || DxoDetailsModule)(); };\r\n/** @nocollapse */ DxoDetailsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDetailsModule });\r\n/** @nocollapse */ DxoDetailsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDetailsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDetailsComponent\r\n ],\r\n exports: [\r\n DxoDetailsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDetailsModule, { declarations: [DxoDetailsComponent], exports: [DxoDetailsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDisplayFormatComponent extends DxoFormat {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'displayFormat';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDisplayFormatComponent.ɵfac = function DxoDisplayFormatComponent_Factory(t) { return new (t || DxoDisplayFormatComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDisplayFormatComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDisplayFormatComponent, selectors: [[\"dxo-display-format\"]], inputs: { currency: \"currency\", formatter: \"formatter\", parser: \"parser\", precision: \"precision\", type: \"type\", useCurrencyAccountingStyle: \"useCurrencyAccountingStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDisplayFormatComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDisplayFormatComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-display-format',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'currency',\r\n 'formatter',\r\n 'parser',\r\n 'precision',\r\n 'type',\r\n 'useCurrencyAccountingStyle'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoDisplayFormatModule {\r\n}\r\n/** @nocollapse */ DxoDisplayFormatModule.ɵfac = function DxoDisplayFormatModule_Factory(t) { return new (t || DxoDisplayFormatModule)(); };\r\n/** @nocollapse */ DxoDisplayFormatModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDisplayFormatModule });\r\n/** @nocollapse */ DxoDisplayFormatModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDisplayFormatModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDisplayFormatComponent\r\n ],\r\n exports: [\r\n DxoDisplayFormatComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDisplayFormatModule, { declarations: [DxoDisplayFormatComponent], exports: [DxoDisplayFormatComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDragBoxStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'dragBoxStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDragBoxStyleComponent.ɵfac = function DxoDragBoxStyleComponent_Factory(t) { return new (t || DxoDragBoxStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDragBoxStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDragBoxStyleComponent, selectors: [[\"dxo-drag-box-style\"]], inputs: { color: \"color\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDragBoxStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDragBoxStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-drag-box-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoDragBoxStyleModule {\r\n}\r\n/** @nocollapse */ DxoDragBoxStyleModule.ɵfac = function DxoDragBoxStyleModule_Factory(t) { return new (t || DxoDragBoxStyleModule)(); };\r\n/** @nocollapse */ DxoDragBoxStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDragBoxStyleModule });\r\n/** @nocollapse */ DxoDragBoxStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDragBoxStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDragBoxStyleComponent\r\n ],\r\n exports: [\r\n DxoDragBoxStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDragBoxStyleModule, { declarations: [DxoDragBoxStyleComponent], exports: [DxoDragBoxStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPopupOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get dragAndResizeArea() {\r\n return this._getOption('dragAndResizeArea');\r\n }\r\n set dragAndResizeArea(value) {\r\n this._setOption('dragAndResizeArea', value);\r\n }\r\n get dragEnabled() {\r\n return this._getOption('dragEnabled');\r\n }\r\n set dragEnabled(value) {\r\n this._setOption('dragEnabled', value);\r\n }\r\n get dragOutsideBoundary() {\r\n return this._getOption('dragOutsideBoundary');\r\n }\r\n set dragOutsideBoundary(value) {\r\n this._setOption('dragOutsideBoundary', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get enableBodyScroll() {\r\n return this._getOption('enableBodyScroll');\r\n }\r\n set enableBodyScroll(value) {\r\n this._setOption('enableBodyScroll', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get fullScreen() {\r\n return this._getOption('fullScreen');\r\n }\r\n set fullScreen(value) {\r\n this._setOption('fullScreen', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onHidden() {\r\n return this._getOption('onHidden');\r\n }\r\n set onHidden(value) {\r\n this._setOption('onHidden', value);\r\n }\r\n get onHiding() {\r\n return this._getOption('onHiding');\r\n }\r\n set onHiding(value) {\r\n this._setOption('onHiding', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onResize() {\r\n return this._getOption('onResize');\r\n }\r\n set onResize(value) {\r\n this._setOption('onResize', value);\r\n }\r\n get onResizeEnd() {\r\n return this._getOption('onResizeEnd');\r\n }\r\n set onResizeEnd(value) {\r\n this._setOption('onResizeEnd', value);\r\n }\r\n get onResizeStart() {\r\n return this._getOption('onResizeStart');\r\n }\r\n set onResizeStart(value) {\r\n this._setOption('onResizeStart', value);\r\n }\r\n get onShowing() {\r\n return this._getOption('onShowing');\r\n }\r\n set onShowing(value) {\r\n this._setOption('onShowing', value);\r\n }\r\n get onShown() {\r\n return this._getOption('onShown');\r\n }\r\n set onShown(value) {\r\n this._setOption('onShown', value);\r\n }\r\n get onTitleRendered() {\r\n return this._getOption('onTitleRendered');\r\n }\r\n set onTitleRendered(value) {\r\n this._setOption('onTitleRendered', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get resizeEnabled() {\r\n return this._getOption('resizeEnabled');\r\n }\r\n set resizeEnabled(value) {\r\n this._setOption('resizeEnabled', value);\r\n }\r\n get restorePosition() {\r\n return this._getOption('restorePosition');\r\n }\r\n set restorePosition(value) {\r\n this._setOption('restorePosition', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n get showCloseButton() {\r\n return this._getOption('showCloseButton');\r\n }\r\n set showCloseButton(value) {\r\n this._setOption('showCloseButton', value);\r\n }\r\n get showTitle() {\r\n return this._getOption('showTitle');\r\n }\r\n set showTitle(value) {\r\n this._setOption('showTitle', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get titleTemplate() {\r\n return this._getOption('titleTemplate');\r\n }\r\n set titleTemplate(value) {\r\n this._setOption('titleTemplate', value);\r\n }\r\n get toolbarItems() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItems(value) {\r\n this._setOption('toolbarItems', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n get hideEvent() {\r\n return this._getOption('hideEvent');\r\n }\r\n set hideEvent(value) {\r\n this._setOption('hideEvent', value);\r\n }\r\n get showEvent() {\r\n return this._getOption('showEvent');\r\n }\r\n set showEvent(value) {\r\n this._setOption('showEvent', value);\r\n }\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoPopupOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoPopupOptions_BaseFactory; return function DxoPopupOptions_Factory(t) { return (ɵDxoPopupOptions_BaseFactory || (ɵDxoPopupOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoPopupOptions)))(t || DxoPopupOptions); }; }();\r\n/** @nocollapse */ DxoPopupOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPopupOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPopupOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPopupOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0$1 = [\"*\"];\r\nclass DxiToolbarItemComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {\r\n super();\r\n this.renderer = renderer;\r\n this.document = document;\r\n this.element = element;\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get html() {\r\n return this._getOption('html');\r\n }\r\n set html(value) {\r\n this._setOption('html', value);\r\n }\r\n get locateInMenu() {\r\n return this._getOption('locateInMenu');\r\n }\r\n set locateInMenu(value) {\r\n this._setOption('locateInMenu', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get menuItemTemplate() {\r\n return this._getOption('menuItemTemplate');\r\n }\r\n set menuItemTemplate(value) {\r\n this._setOption('menuItemTemplate', value);\r\n }\r\n get options() {\r\n return this._getOption('options');\r\n }\r\n set options(value) {\r\n this._setOption('options', value);\r\n }\r\n get showText() {\r\n return this._getOption('showText');\r\n }\r\n set showText(value) {\r\n this._setOption('showText', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get widget() {\r\n return this._getOption('widget');\r\n }\r\n set widget(value) {\r\n this._setOption('widget', value);\r\n }\r\n get _optionPath() {\r\n return 'toolbarItems';\r\n }\r\n setTemplate(template) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiToolbarItemComponent.ɵfac = function DxiToolbarItemComponent_Factory(t) { return new (t || DxiToolbarItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.DxTemplateHost, 1), i0.ɵɵdirectiveInject(i0.ElementRef)); };\r\n/** @nocollapse */ DxiToolbarItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiToolbarItemComponent, selectors: [[\"dxi-toolbar-item\"]], inputs: { cssClass: \"cssClass\", disabled: \"disabled\", html: \"html\", locateInMenu: \"locateInMenu\", location: \"location\", menuItemTemplate: \"menuItemTemplate\", options: \"options\", showText: \"showText\", template: \"template\", text: \"text\", toolbar: \"toolbar\", visible: \"visible\", widget: \"widget\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost, DxTemplateHost]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$1, decls: 1, vars: 0, template: function DxiToolbarItemComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiToolbarItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-toolbar-item',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i1.DxTemplateHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.ElementRef }]; }, { cssClass: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], html: [{\r\n type: Input\r\n }], locateInMenu: [{\r\n type: Input\r\n }], location: [{\r\n type: Input\r\n }], menuItemTemplate: [{\r\n type: Input\r\n }], options: [{\r\n type: Input\r\n }], showText: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], widget: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiToolbarItemModule {\r\n}\r\n/** @nocollapse */ DxiToolbarItemModule.ɵfac = function DxiToolbarItemModule_Factory(t) { return new (t || DxiToolbarItemModule)(); };\r\n/** @nocollapse */ DxiToolbarItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiToolbarItemModule });\r\n/** @nocollapse */ DxiToolbarItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiToolbarItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiToolbarItemComponent\r\n ],\r\n exports: [\r\n DxiToolbarItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiToolbarItemModule, { declarations: [DxiToolbarItemComponent], exports: [DxiToolbarItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDropDownOptionsComponent extends DxoPopupOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'heightChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'dropDownOptions';\r\n }\r\n get toolbarItemsChildren() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItemsChildren(value) {\r\n this.setChildren('toolbarItems', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoDropDownOptionsComponent.ɵfac = function DxoDropDownOptionsComponent_Factory(t) { return new (t || DxoDropDownOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoDropDownOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDropDownOptionsComponent, selectors: [[\"dxo-drop-down-options\"]], contentQueries: function DxoDropDownOptionsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", dragAndResizeArea: \"dragAndResizeArea\", dragEnabled: \"dragEnabled\", dragOutsideBoundary: \"dragOutsideBoundary\", elementAttr: \"elementAttr\", enableBodyScroll: \"enableBodyScroll\", focusStateEnabled: \"focusStateEnabled\", fullScreen: \"fullScreen\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResize: \"onResize\", onResizeEnd: \"onResizeEnd\", onResizeStart: \"onResizeStart\", onShowing: \"onShowing\", onShown: \"onShown\", onTitleRendered: \"onTitleRendered\", position: \"position\", resizeEnabled: \"resizeEnabled\", restorePosition: \"restorePosition\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showCloseButton: \"showCloseButton\", showTitle: \"showTitle\", tabIndex: \"tabIndex\", title: \"title\", titleTemplate: \"titleTemplate\", toolbarItems: \"toolbarItems\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\", hideEvent: \"hideEvent\", showEvent: \"showEvent\", target: \"target\" }, outputs: { heightChange: \"heightChange\", positionChange: \"positionChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDropDownOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDropDownOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-drop-down-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'animation',\r\n 'closeOnOutsideClick',\r\n 'container',\r\n 'contentTemplate',\r\n 'copyRootClassesToWrapper',\r\n 'deferRendering',\r\n 'disabled',\r\n 'dragAndResizeArea',\r\n 'dragEnabled',\r\n 'dragOutsideBoundary',\r\n 'elementAttr',\r\n 'enableBodyScroll',\r\n 'focusStateEnabled',\r\n 'fullScreen',\r\n 'height',\r\n 'hideOnOutsideClick',\r\n 'hideOnParentScroll',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'maxHeight',\r\n 'maxWidth',\r\n 'minHeight',\r\n 'minWidth',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onHidden',\r\n 'onHiding',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onResize',\r\n 'onResizeEnd',\r\n 'onResizeStart',\r\n 'onShowing',\r\n 'onShown',\r\n 'onTitleRendered',\r\n 'position',\r\n 'resizeEnabled',\r\n 'restorePosition',\r\n 'rtlEnabled',\r\n 'shading',\r\n 'shadingColor',\r\n 'showCloseButton',\r\n 'showTitle',\r\n 'tabIndex',\r\n 'title',\r\n 'titleTemplate',\r\n 'toolbarItems',\r\n 'visible',\r\n 'width',\r\n 'wrapperAttr',\r\n 'hideEvent',\r\n 'showEvent',\r\n 'target'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { heightChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], toolbarItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiToolbarItemComponent)]\r\n }] }); })();\r\nclass DxoDropDownOptionsModule {\r\n}\r\n/** @nocollapse */ DxoDropDownOptionsModule.ɵfac = function DxoDropDownOptionsModule_Factory(t) { return new (t || DxoDropDownOptionsModule)(); };\r\n/** @nocollapse */ DxoDropDownOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDropDownOptionsModule });\r\n/** @nocollapse */ DxoDropDownOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDropDownOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoDropDownOptionsComponent\r\n ],\r\n exports: [\r\n DxoDropDownOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDropDownOptionsModule, { declarations: [DxoDropDownOptionsComponent], exports: [DxoDropDownOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoEdgesComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get customDataExpr() {\r\n return this._getOption('customDataExpr');\r\n }\r\n set customDataExpr(value) {\r\n this._setOption('customDataExpr', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get fromExpr() {\r\n return this._getOption('fromExpr');\r\n }\r\n set fromExpr(value) {\r\n this._setOption('fromExpr', value);\r\n }\r\n get fromLineEndExpr() {\r\n return this._getOption('fromLineEndExpr');\r\n }\r\n set fromLineEndExpr(value) {\r\n this._setOption('fromLineEndExpr', value);\r\n }\r\n get fromPointIndexExpr() {\r\n return this._getOption('fromPointIndexExpr');\r\n }\r\n set fromPointIndexExpr(value) {\r\n this._setOption('fromPointIndexExpr', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get lineTypeExpr() {\r\n return this._getOption('lineTypeExpr');\r\n }\r\n set lineTypeExpr(value) {\r\n this._setOption('lineTypeExpr', value);\r\n }\r\n get lockedExpr() {\r\n return this._getOption('lockedExpr');\r\n }\r\n set lockedExpr(value) {\r\n this._setOption('lockedExpr', value);\r\n }\r\n get pointsExpr() {\r\n return this._getOption('pointsExpr');\r\n }\r\n set pointsExpr(value) {\r\n this._setOption('pointsExpr', value);\r\n }\r\n get styleExpr() {\r\n return this._getOption('styleExpr');\r\n }\r\n set styleExpr(value) {\r\n this._setOption('styleExpr', value);\r\n }\r\n get textExpr() {\r\n return this._getOption('textExpr');\r\n }\r\n set textExpr(value) {\r\n this._setOption('textExpr', value);\r\n }\r\n get textStyleExpr() {\r\n return this._getOption('textStyleExpr');\r\n }\r\n set textStyleExpr(value) {\r\n this._setOption('textStyleExpr', value);\r\n }\r\n get toExpr() {\r\n return this._getOption('toExpr');\r\n }\r\n set toExpr(value) {\r\n this._setOption('toExpr', value);\r\n }\r\n get toLineEndExpr() {\r\n return this._getOption('toLineEndExpr');\r\n }\r\n set toLineEndExpr(value) {\r\n this._setOption('toLineEndExpr', value);\r\n }\r\n get toPointIndexExpr() {\r\n return this._getOption('toPointIndexExpr');\r\n }\r\n set toPointIndexExpr(value) {\r\n this._setOption('toPointIndexExpr', value);\r\n }\r\n get zIndexExpr() {\r\n return this._getOption('zIndexExpr');\r\n }\r\n set zIndexExpr(value) {\r\n this._setOption('zIndexExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'edges';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoEdgesComponent.ɵfac = function DxoEdgesComponent_Factory(t) { return new (t || DxoEdgesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoEdgesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoEdgesComponent, selectors: [[\"dxo-edges\"]], inputs: { customDataExpr: \"customDataExpr\", dataSource: \"dataSource\", fromExpr: \"fromExpr\", fromLineEndExpr: \"fromLineEndExpr\", fromPointIndexExpr: \"fromPointIndexExpr\", keyExpr: \"keyExpr\", lineTypeExpr: \"lineTypeExpr\", lockedExpr: \"lockedExpr\", pointsExpr: \"pointsExpr\", styleExpr: \"styleExpr\", textExpr: \"textExpr\", textStyleExpr: \"textStyleExpr\", toExpr: \"toExpr\", toLineEndExpr: \"toLineEndExpr\", toPointIndexExpr: \"toPointIndexExpr\", zIndexExpr: \"zIndexExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoEdgesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoEdgesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-edges',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { customDataExpr: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], fromExpr: [{\r\n type: Input\r\n }], fromLineEndExpr: [{\r\n type: Input\r\n }], fromPointIndexExpr: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], lineTypeExpr: [{\r\n type: Input\r\n }], lockedExpr: [{\r\n type: Input\r\n }], pointsExpr: [{\r\n type: Input\r\n }], styleExpr: [{\r\n type: Input\r\n }], textExpr: [{\r\n type: Input\r\n }], textStyleExpr: [{\r\n type: Input\r\n }], toExpr: [{\r\n type: Input\r\n }], toLineEndExpr: [{\r\n type: Input\r\n }], toPointIndexExpr: [{\r\n type: Input\r\n }], zIndexExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoEdgesModule {\r\n}\r\n/** @nocollapse */ DxoEdgesModule.ɵfac = function DxoEdgesModule_Factory(t) { return new (t || DxoEdgesModule)(); };\r\n/** @nocollapse */ DxoEdgesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoEdgesModule });\r\n/** @nocollapse */ DxoEdgesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoEdgesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoEdgesComponent\r\n ],\r\n exports: [\r\n DxoEdgesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoEdgesModule, { declarations: [DxoEdgesComponent], exports: [DxoEdgesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoEditingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'changesChange' },\r\n { emit: 'editColumnNameChange' },\r\n { emit: 'editRowKeyChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowAdding() {\r\n return this._getOption('allowAdding');\r\n }\r\n set allowAdding(value) {\r\n this._setOption('allowAdding', value);\r\n }\r\n get allowDeleting() {\r\n return this._getOption('allowDeleting');\r\n }\r\n set allowDeleting(value) {\r\n this._setOption('allowDeleting', value);\r\n }\r\n get allowUpdating() {\r\n return this._getOption('allowUpdating');\r\n }\r\n set allowUpdating(value) {\r\n this._setOption('allowUpdating', value);\r\n }\r\n get changes() {\r\n return this._getOption('changes');\r\n }\r\n set changes(value) {\r\n this._setOption('changes', value);\r\n }\r\n get confirmDelete() {\r\n return this._getOption('confirmDelete');\r\n }\r\n set confirmDelete(value) {\r\n this._setOption('confirmDelete', value);\r\n }\r\n get editColumnName() {\r\n return this._getOption('editColumnName');\r\n }\r\n set editColumnName(value) {\r\n this._setOption('editColumnName', value);\r\n }\r\n get editRowKey() {\r\n return this._getOption('editRowKey');\r\n }\r\n set editRowKey(value) {\r\n this._setOption('editRowKey', value);\r\n }\r\n get form() {\r\n return this._getOption('form');\r\n }\r\n set form(value) {\r\n this._setOption('form', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get newRowPosition() {\r\n return this._getOption('newRowPosition');\r\n }\r\n set newRowPosition(value) {\r\n this._setOption('newRowPosition', value);\r\n }\r\n get popup() {\r\n return this._getOption('popup');\r\n }\r\n set popup(value) {\r\n this._setOption('popup', value);\r\n }\r\n get refreshMode() {\r\n return this._getOption('refreshMode');\r\n }\r\n set refreshMode(value) {\r\n this._setOption('refreshMode', value);\r\n }\r\n get selectTextOnEditStart() {\r\n return this._getOption('selectTextOnEditStart');\r\n }\r\n set selectTextOnEditStart(value) {\r\n this._setOption('selectTextOnEditStart', value);\r\n }\r\n get startEditAction() {\r\n return this._getOption('startEditAction');\r\n }\r\n set startEditAction(value) {\r\n this._setOption('startEditAction', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get useIcons() {\r\n return this._getOption('useIcons');\r\n }\r\n set useIcons(value) {\r\n this._setOption('useIcons', value);\r\n }\r\n get allowAddShape() {\r\n return this._getOption('allowAddShape');\r\n }\r\n set allowAddShape(value) {\r\n this._setOption('allowAddShape', value);\r\n }\r\n get allowChangeConnection() {\r\n return this._getOption('allowChangeConnection');\r\n }\r\n set allowChangeConnection(value) {\r\n this._setOption('allowChangeConnection', value);\r\n }\r\n get allowChangeConnectorPoints() {\r\n return this._getOption('allowChangeConnectorPoints');\r\n }\r\n set allowChangeConnectorPoints(value) {\r\n this._setOption('allowChangeConnectorPoints', value);\r\n }\r\n get allowChangeConnectorText() {\r\n return this._getOption('allowChangeConnectorText');\r\n }\r\n set allowChangeConnectorText(value) {\r\n this._setOption('allowChangeConnectorText', value);\r\n }\r\n get allowChangeShapeText() {\r\n return this._getOption('allowChangeShapeText');\r\n }\r\n set allowChangeShapeText(value) {\r\n this._setOption('allowChangeShapeText', value);\r\n }\r\n get allowDeleteConnector() {\r\n return this._getOption('allowDeleteConnector');\r\n }\r\n set allowDeleteConnector(value) {\r\n this._setOption('allowDeleteConnector', value);\r\n }\r\n get allowDeleteShape() {\r\n return this._getOption('allowDeleteShape');\r\n }\r\n set allowDeleteShape(value) {\r\n this._setOption('allowDeleteShape', value);\r\n }\r\n get allowMoveShape() {\r\n return this._getOption('allowMoveShape');\r\n }\r\n set allowMoveShape(value) {\r\n this._setOption('allowMoveShape', value);\r\n }\r\n get allowResizeShape() {\r\n return this._getOption('allowResizeShape');\r\n }\r\n set allowResizeShape(value) {\r\n this._setOption('allowResizeShape', value);\r\n }\r\n get allowDependencyAdding() {\r\n return this._getOption('allowDependencyAdding');\r\n }\r\n set allowDependencyAdding(value) {\r\n this._setOption('allowDependencyAdding', value);\r\n }\r\n get allowDependencyDeleting() {\r\n return this._getOption('allowDependencyDeleting');\r\n }\r\n set allowDependencyDeleting(value) {\r\n this._setOption('allowDependencyDeleting', value);\r\n }\r\n get allowResourceAdding() {\r\n return this._getOption('allowResourceAdding');\r\n }\r\n set allowResourceAdding(value) {\r\n this._setOption('allowResourceAdding', value);\r\n }\r\n get allowResourceDeleting() {\r\n return this._getOption('allowResourceDeleting');\r\n }\r\n set allowResourceDeleting(value) {\r\n this._setOption('allowResourceDeleting', value);\r\n }\r\n get allowResourceUpdating() {\r\n return this._getOption('allowResourceUpdating');\r\n }\r\n set allowResourceUpdating(value) {\r\n this._setOption('allowResourceUpdating', value);\r\n }\r\n get allowTaskAdding() {\r\n return this._getOption('allowTaskAdding');\r\n }\r\n set allowTaskAdding(value) {\r\n this._setOption('allowTaskAdding', value);\r\n }\r\n get allowTaskDeleting() {\r\n return this._getOption('allowTaskDeleting');\r\n }\r\n set allowTaskDeleting(value) {\r\n this._setOption('allowTaskDeleting', value);\r\n }\r\n get allowTaskResourceUpdating() {\r\n return this._getOption('allowTaskResourceUpdating');\r\n }\r\n set allowTaskResourceUpdating(value) {\r\n this._setOption('allowTaskResourceUpdating', value);\r\n }\r\n get allowTaskUpdating() {\r\n return this._getOption('allowTaskUpdating');\r\n }\r\n set allowTaskUpdating(value) {\r\n this._setOption('allowTaskUpdating', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get allowDragging() {\r\n return this._getOption('allowDragging');\r\n }\r\n set allowDragging(value) {\r\n this._setOption('allowDragging', value);\r\n }\r\n get allowResizing() {\r\n return this._getOption('allowResizing');\r\n }\r\n set allowResizing(value) {\r\n this._setOption('allowResizing', value);\r\n }\r\n get allowTimeZoneEditing() {\r\n return this._getOption('allowTimeZoneEditing');\r\n }\r\n set allowTimeZoneEditing(value) {\r\n this._setOption('allowTimeZoneEditing', value);\r\n }\r\n get _optionPath() {\r\n return 'editing';\r\n }\r\n get changesChildren() {\r\n return this._getOption('changes');\r\n }\r\n set changesChildren(value) {\r\n this.setChildren('changes', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoEditingComponent.ɵfac = function DxoEditingComponent_Factory(t) { return new (t || DxoEditingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoEditingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoEditingComponent, selectors: [[\"dxo-editing\"]], contentQueries: function DxoEditingComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiChangeComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.changesChildren = _t);\r\n } }, inputs: { allowAdding: \"allowAdding\", allowDeleting: \"allowDeleting\", allowUpdating: \"allowUpdating\", changes: \"changes\", confirmDelete: \"confirmDelete\", editColumnName: \"editColumnName\", editRowKey: \"editRowKey\", form: \"form\", mode: \"mode\", newRowPosition: \"newRowPosition\", popup: \"popup\", refreshMode: \"refreshMode\", selectTextOnEditStart: \"selectTextOnEditStart\", startEditAction: \"startEditAction\", texts: \"texts\", useIcons: \"useIcons\", allowAddShape: \"allowAddShape\", allowChangeConnection: \"allowChangeConnection\", allowChangeConnectorPoints: \"allowChangeConnectorPoints\", allowChangeConnectorText: \"allowChangeConnectorText\", allowChangeShapeText: \"allowChangeShapeText\", allowDeleteConnector: \"allowDeleteConnector\", allowDeleteShape: \"allowDeleteShape\", allowMoveShape: \"allowMoveShape\", allowResizeShape: \"allowResizeShape\", allowDependencyAdding: \"allowDependencyAdding\", allowDependencyDeleting: \"allowDependencyDeleting\", allowResourceAdding: \"allowResourceAdding\", allowResourceDeleting: \"allowResourceDeleting\", allowResourceUpdating: \"allowResourceUpdating\", allowTaskAdding: \"allowTaskAdding\", allowTaskDeleting: \"allowTaskDeleting\", allowTaskResourceUpdating: \"allowTaskResourceUpdating\", allowTaskUpdating: \"allowTaskUpdating\", enabled: \"enabled\", allowDragging: \"allowDragging\", allowResizing: \"allowResizing\", allowTimeZoneEditing: \"allowTimeZoneEditing\" }, outputs: { changesChange: \"changesChange\", editColumnNameChange: \"editColumnNameChange\", editRowKeyChange: \"editRowKeyChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoEditingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoEditingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-editing',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowAdding: [{\r\n type: Input\r\n }], allowDeleting: [{\r\n type: Input\r\n }], allowUpdating: [{\r\n type: Input\r\n }], changes: [{\r\n type: Input\r\n }], confirmDelete: [{\r\n type: Input\r\n }], editColumnName: [{\r\n type: Input\r\n }], editRowKey: [{\r\n type: Input\r\n }], form: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], newRowPosition: [{\r\n type: Input\r\n }], popup: [{\r\n type: Input\r\n }], refreshMode: [{\r\n type: Input\r\n }], selectTextOnEditStart: [{\r\n type: Input\r\n }], startEditAction: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], useIcons: [{\r\n type: Input\r\n }], allowAddShape: [{\r\n type: Input\r\n }], allowChangeConnection: [{\r\n type: Input\r\n }], allowChangeConnectorPoints: [{\r\n type: Input\r\n }], allowChangeConnectorText: [{\r\n type: Input\r\n }], allowChangeShapeText: [{\r\n type: Input\r\n }], allowDeleteConnector: [{\r\n type: Input\r\n }], allowDeleteShape: [{\r\n type: Input\r\n }], allowMoveShape: [{\r\n type: Input\r\n }], allowResizeShape: [{\r\n type: Input\r\n }], allowDependencyAdding: [{\r\n type: Input\r\n }], allowDependencyDeleting: [{\r\n type: Input\r\n }], allowResourceAdding: [{\r\n type: Input\r\n }], allowResourceDeleting: [{\r\n type: Input\r\n }], allowResourceUpdating: [{\r\n type: Input\r\n }], allowTaskAdding: [{\r\n type: Input\r\n }], allowTaskDeleting: [{\r\n type: Input\r\n }], allowTaskResourceUpdating: [{\r\n type: Input\r\n }], allowTaskUpdating: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], allowDragging: [{\r\n type: Input\r\n }], allowResizing: [{\r\n type: Input\r\n }], allowTimeZoneEditing: [{\r\n type: Input\r\n }], changesChange: [{\r\n type: Output\r\n }], editColumnNameChange: [{\r\n type: Output\r\n }], editRowKeyChange: [{\r\n type: Output\r\n }], changesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiChangeComponent)]\r\n }] }); })();\r\nclass DxoEditingModule {\r\n}\r\n/** @nocollapse */ DxoEditingModule.ɵfac = function DxoEditingModule_Factory(t) { return new (t || DxoEditingModule)(); };\r\n/** @nocollapse */ DxoEditingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoEditingModule });\r\n/** @nocollapse */ DxoEditingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoEditingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoEditingComponent\r\n ],\r\n exports: [\r\n DxoEditingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoEditingModule, { declarations: [DxoEditingComponent], exports: [DxoEditingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoExportComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get fileName() {\r\n return this._getOption('fileName');\r\n }\r\n set fileName(value) {\r\n this._setOption('fileName', value);\r\n }\r\n get formats() {\r\n return this._getOption('formats');\r\n }\r\n set formats(value) {\r\n this._setOption('formats', value);\r\n }\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n get printingEnabled() {\r\n return this._getOption('printingEnabled');\r\n }\r\n set printingEnabled(value) {\r\n this._setOption('printingEnabled', value);\r\n }\r\n get svgToCanvas() {\r\n return this._getOption('svgToCanvas');\r\n }\r\n set svgToCanvas(value) {\r\n this._setOption('svgToCanvas', value);\r\n }\r\n get allowExportSelectedData() {\r\n return this._getOption('allowExportSelectedData');\r\n }\r\n set allowExportSelectedData(value) {\r\n this._setOption('allowExportSelectedData', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get _optionPath() {\r\n return 'export';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoExportComponent.ɵfac = function DxoExportComponent_Factory(t) { return new (t || DxoExportComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoExportComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoExportComponent, selectors: [[\"dxo-export\"]], inputs: { backgroundColor: \"backgroundColor\", enabled: \"enabled\", fileName: \"fileName\", formats: \"formats\", margin: \"margin\", printingEnabled: \"printingEnabled\", svgToCanvas: \"svgToCanvas\", allowExportSelectedData: \"allowExportSelectedData\", texts: \"texts\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoExportComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoExportComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-export',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], fileName: [{\r\n type: Input\r\n }], formats: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], printingEnabled: [{\r\n type: Input\r\n }], svgToCanvas: [{\r\n type: Input\r\n }], allowExportSelectedData: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoExportModule {\r\n}\r\n/** @nocollapse */ DxoExportModule.ɵfac = function DxoExportModule_Factory(t) { return new (t || DxoExportModule)(); };\r\n/** @nocollapse */ DxoExportModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoExportModule });\r\n/** @nocollapse */ DxoExportModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoExportModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoExportComponent\r\n ],\r\n exports: [\r\n DxoExportComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoExportModule, { declarations: [DxoExportComponent], exports: [DxoExportComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFieldChooserComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowSearch() {\r\n return this._getOption('allowSearch');\r\n }\r\n set allowSearch(value) {\r\n this._setOption('allowSearch', value);\r\n }\r\n get applyChangesMode() {\r\n return this._getOption('applyChangesMode');\r\n }\r\n set applyChangesMode(value) {\r\n this._setOption('applyChangesMode', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get layout() {\r\n return this._getOption('layout');\r\n }\r\n set layout(value) {\r\n this._setOption('layout', value);\r\n }\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'fieldChooser';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFieldChooserComponent.ɵfac = function DxoFieldChooserComponent_Factory(t) { return new (t || DxoFieldChooserComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFieldChooserComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFieldChooserComponent, selectors: [[\"dxo-field-chooser\"]], inputs: { allowSearch: \"allowSearch\", applyChangesMode: \"applyChangesMode\", enabled: \"enabled\", height: \"height\", layout: \"layout\", searchTimeout: \"searchTimeout\", texts: \"texts\", title: \"title\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFieldChooserComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFieldChooserComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-field-chooser',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowSearch: [{\r\n type: Input\r\n }], applyChangesMode: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], layout: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoFieldChooserModule {\r\n}\r\n/** @nocollapse */ DxoFieldChooserModule.ɵfac = function DxoFieldChooserModule_Factory(t) { return new (t || DxoFieldChooserModule)(); };\r\n/** @nocollapse */ DxoFieldChooserModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFieldChooserModule });\r\n/** @nocollapse */ DxoFieldChooserModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFieldChooserModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFieldChooserComponent\r\n ],\r\n exports: [\r\n DxoFieldChooserComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFieldChooserModule, { declarations: [DxoFieldChooserComponent], exports: [DxoFieldChooserComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFieldPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowFieldDragging() {\r\n return this._getOption('allowFieldDragging');\r\n }\r\n set allowFieldDragging(value) {\r\n this._setOption('allowFieldDragging', value);\r\n }\r\n get showColumnFields() {\r\n return this._getOption('showColumnFields');\r\n }\r\n set showColumnFields(value) {\r\n this._setOption('showColumnFields', value);\r\n }\r\n get showDataFields() {\r\n return this._getOption('showDataFields');\r\n }\r\n set showDataFields(value) {\r\n this._setOption('showDataFields', value);\r\n }\r\n get showFilterFields() {\r\n return this._getOption('showFilterFields');\r\n }\r\n set showFilterFields(value) {\r\n this._setOption('showFilterFields', value);\r\n }\r\n get showRowFields() {\r\n return this._getOption('showRowFields');\r\n }\r\n set showRowFields(value) {\r\n this._setOption('showRowFields', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'fieldPanel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFieldPanelComponent.ɵfac = function DxoFieldPanelComponent_Factory(t) { return new (t || DxoFieldPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFieldPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFieldPanelComponent, selectors: [[\"dxo-field-panel\"]], inputs: { allowFieldDragging: \"allowFieldDragging\", showColumnFields: \"showColumnFields\", showDataFields: \"showDataFields\", showFilterFields: \"showFilterFields\", showRowFields: \"showRowFields\", texts: \"texts\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFieldPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFieldPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-field-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowFieldDragging: [{\r\n type: Input\r\n }], showColumnFields: [{\r\n type: Input\r\n }], showDataFields: [{\r\n type: Input\r\n }], showFilterFields: [{\r\n type: Input\r\n }], showRowFields: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoFieldPanelModule {\r\n}\r\n/** @nocollapse */ DxoFieldPanelModule.ɵfac = function DxoFieldPanelModule_Factory(t) { return new (t || DxoFieldPanelModule)(); };\r\n/** @nocollapse */ DxoFieldPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFieldPanelModule });\r\n/** @nocollapse */ DxoFieldPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFieldPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFieldPanelComponent\r\n ],\r\n exports: [\r\n DxoFieldPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFieldPanelModule, { declarations: [DxoFieldPanelComponent], exports: [DxoFieldPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiFileManagerToolbarItem extends CollectionNestedOption {\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n get locateInMenu() {\r\n return this._getOption('locateInMenu');\r\n }\r\n set locateInMenu(value) {\r\n this._setOption('locateInMenu', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get options() {\r\n return this._getOption('options');\r\n }\r\n set options(value) {\r\n this._setOption('options', value);\r\n }\r\n get showText() {\r\n return this._getOption('showText');\r\n }\r\n set showText(value) {\r\n this._setOption('showText', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get widget() {\r\n return this._getOption('widget');\r\n }\r\n set widget(value) {\r\n this._setOption('widget', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiFileManagerToolbarItem.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiFileManagerToolbarItem_BaseFactory; return function DxiFileManagerToolbarItem_Factory(t) { return (ɵDxiFileManagerToolbarItem_BaseFactory || (ɵDxiFileManagerToolbarItem_BaseFactory = i0.ɵɵgetInheritedFactory(DxiFileManagerToolbarItem)))(t || DxiFileManagerToolbarItem); }; }();\r\n/** @nocollapse */ DxiFileManagerToolbarItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiFileManagerToolbarItem, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiFileManagerToolbarItem_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFileManagerToolbarItem, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiFileSelectionItemComponent extends DxiFileManagerToolbarItem {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fileSelectionItems';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiFileSelectionItemComponent.ɵfac = function DxiFileSelectionItemComponent_Factory(t) { return new (t || DxiFileSelectionItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiFileSelectionItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiFileSelectionItemComponent, selectors: [[\"dxi-file-selection-item\"]], inputs: { cssClass: \"cssClass\", disabled: \"disabled\", icon: \"icon\", locateInMenu: \"locateInMenu\", location: \"location\", name: \"name\", options: \"options\", showText: \"showText\", text: \"text\", visible: \"visible\", widget: \"widget\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiFileSelectionItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFileSelectionItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-file-selection-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'cssClass',\r\n 'disabled',\r\n 'icon',\r\n 'locateInMenu',\r\n 'location',\r\n 'name',\r\n 'options',\r\n 'showText',\r\n 'text',\r\n 'visible',\r\n 'widget'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiFileSelectionItemModule {\r\n}\r\n/** @nocollapse */ DxiFileSelectionItemModule.ɵfac = function DxiFileSelectionItemModule_Factory(t) { return new (t || DxiFileSelectionItemModule)(); };\r\n/** @nocollapse */ DxiFileSelectionItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiFileSelectionItemModule });\r\n/** @nocollapse */ DxiFileSelectionItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiFileSelectionItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiFileSelectionItemComponent\r\n ],\r\n exports: [\r\n DxiFileSelectionItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiFileSelectionItemModule, { declarations: [DxiFileSelectionItemComponent], exports: [DxiFileSelectionItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFileUploaderOptions extends NestedOption {\r\n get abortUpload() {\r\n return this._getOption('abortUpload');\r\n }\r\n set abortUpload(value) {\r\n this._setOption('abortUpload', value);\r\n }\r\n get accept() {\r\n return this._getOption('accept');\r\n }\r\n set accept(value) {\r\n this._setOption('accept', value);\r\n }\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get allowCanceling() {\r\n return this._getOption('allowCanceling');\r\n }\r\n set allowCanceling(value) {\r\n this._setOption('allowCanceling', value);\r\n }\r\n get allowedFileExtensions() {\r\n return this._getOption('allowedFileExtensions');\r\n }\r\n set allowedFileExtensions(value) {\r\n this._setOption('allowedFileExtensions', value);\r\n }\r\n get chunkSize() {\r\n return this._getOption('chunkSize');\r\n }\r\n set chunkSize(value) {\r\n this._setOption('chunkSize', value);\r\n }\r\n get dialogTrigger() {\r\n return this._getOption('dialogTrigger');\r\n }\r\n set dialogTrigger(value) {\r\n this._setOption('dialogTrigger', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get dropZone() {\r\n return this._getOption('dropZone');\r\n }\r\n set dropZone(value) {\r\n this._setOption('dropZone', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n get invalidFileExtensionMessage() {\r\n return this._getOption('invalidFileExtensionMessage');\r\n }\r\n set invalidFileExtensionMessage(value) {\r\n this._setOption('invalidFileExtensionMessage', value);\r\n }\r\n get invalidMaxFileSizeMessage() {\r\n return this._getOption('invalidMaxFileSizeMessage');\r\n }\r\n set invalidMaxFileSizeMessage(value) {\r\n this._setOption('invalidMaxFileSizeMessage', value);\r\n }\r\n get invalidMinFileSizeMessage() {\r\n return this._getOption('invalidMinFileSizeMessage');\r\n }\r\n set invalidMinFileSizeMessage(value) {\r\n this._setOption('invalidMinFileSizeMessage', value);\r\n }\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n get labelText() {\r\n return this._getOption('labelText');\r\n }\r\n set labelText(value) {\r\n this._setOption('labelText', value);\r\n }\r\n get maxFileSize() {\r\n return this._getOption('maxFileSize');\r\n }\r\n set maxFileSize(value) {\r\n this._setOption('maxFileSize', value);\r\n }\r\n get minFileSize() {\r\n return this._getOption('minFileSize');\r\n }\r\n set minFileSize(value) {\r\n this._setOption('minFileSize', value);\r\n }\r\n get multiple() {\r\n return this._getOption('multiple');\r\n }\r\n set multiple(value) {\r\n this._setOption('multiple', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get onBeforeSend() {\r\n return this._getOption('onBeforeSend');\r\n }\r\n set onBeforeSend(value) {\r\n this._setOption('onBeforeSend', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onDropZoneEnter() {\r\n return this._getOption('onDropZoneEnter');\r\n }\r\n set onDropZoneEnter(value) {\r\n this._setOption('onDropZoneEnter', value);\r\n }\r\n get onDropZoneLeave() {\r\n return this._getOption('onDropZoneLeave');\r\n }\r\n set onDropZoneLeave(value) {\r\n this._setOption('onDropZoneLeave', value);\r\n }\r\n get onFilesUploaded() {\r\n return this._getOption('onFilesUploaded');\r\n }\r\n set onFilesUploaded(value) {\r\n this._setOption('onFilesUploaded', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onProgress() {\r\n return this._getOption('onProgress');\r\n }\r\n set onProgress(value) {\r\n this._setOption('onProgress', value);\r\n }\r\n get onUploadAborted() {\r\n return this._getOption('onUploadAborted');\r\n }\r\n set onUploadAborted(value) {\r\n this._setOption('onUploadAborted', value);\r\n }\r\n get onUploaded() {\r\n return this._getOption('onUploaded');\r\n }\r\n set onUploaded(value) {\r\n this._setOption('onUploaded', value);\r\n }\r\n get onUploadError() {\r\n return this._getOption('onUploadError');\r\n }\r\n set onUploadError(value) {\r\n this._setOption('onUploadError', value);\r\n }\r\n get onUploadStarted() {\r\n return this._getOption('onUploadStarted');\r\n }\r\n set onUploadStarted(value) {\r\n this._setOption('onUploadStarted', value);\r\n }\r\n get onValueChanged() {\r\n return this._getOption('onValueChanged');\r\n }\r\n set onValueChanged(value) {\r\n this._setOption('onValueChanged', value);\r\n }\r\n get progress() {\r\n return this._getOption('progress');\r\n }\r\n set progress(value) {\r\n this._setOption('progress', value);\r\n }\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n get readyToUploadMessage() {\r\n return this._getOption('readyToUploadMessage');\r\n }\r\n set readyToUploadMessage(value) {\r\n this._setOption('readyToUploadMessage', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get selectButtonText() {\r\n return this._getOption('selectButtonText');\r\n }\r\n set selectButtonText(value) {\r\n this._setOption('selectButtonText', value);\r\n }\r\n get showFileList() {\r\n return this._getOption('showFileList');\r\n }\r\n set showFileList(value) {\r\n this._setOption('showFileList', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get uploadAbortedMessage() {\r\n return this._getOption('uploadAbortedMessage');\r\n }\r\n set uploadAbortedMessage(value) {\r\n this._setOption('uploadAbortedMessage', value);\r\n }\r\n get uploadButtonText() {\r\n return this._getOption('uploadButtonText');\r\n }\r\n set uploadButtonText(value) {\r\n this._setOption('uploadButtonText', value);\r\n }\r\n get uploadChunk() {\r\n return this._getOption('uploadChunk');\r\n }\r\n set uploadChunk(value) {\r\n this._setOption('uploadChunk', value);\r\n }\r\n get uploadCustomData() {\r\n return this._getOption('uploadCustomData');\r\n }\r\n set uploadCustomData(value) {\r\n this._setOption('uploadCustomData', value);\r\n }\r\n get uploadedMessage() {\r\n return this._getOption('uploadedMessage');\r\n }\r\n set uploadedMessage(value) {\r\n this._setOption('uploadedMessage', value);\r\n }\r\n get uploadFailedMessage() {\r\n return this._getOption('uploadFailedMessage');\r\n }\r\n set uploadFailedMessage(value) {\r\n this._setOption('uploadFailedMessage', value);\r\n }\r\n get uploadFile() {\r\n return this._getOption('uploadFile');\r\n }\r\n set uploadFile(value) {\r\n this._setOption('uploadFile', value);\r\n }\r\n get uploadHeaders() {\r\n return this._getOption('uploadHeaders');\r\n }\r\n set uploadHeaders(value) {\r\n this._setOption('uploadHeaders', value);\r\n }\r\n get uploadMethod() {\r\n return this._getOption('uploadMethod');\r\n }\r\n set uploadMethod(value) {\r\n this._setOption('uploadMethod', value);\r\n }\r\n get uploadMode() {\r\n return this._getOption('uploadMode');\r\n }\r\n set uploadMode(value) {\r\n this._setOption('uploadMode', value);\r\n }\r\n get uploadUrl() {\r\n return this._getOption('uploadUrl');\r\n }\r\n set uploadUrl(value) {\r\n this._setOption('uploadUrl', value);\r\n }\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFileUploaderOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFileUploaderOptions_BaseFactory; return function DxoFileUploaderOptions_Factory(t) { return (ɵDxoFileUploaderOptions_BaseFactory || (ɵDxoFileUploaderOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFileUploaderOptions)))(t || DxoFileUploaderOptions); }; }();\r\n/** @nocollapse */ DxoFileUploaderOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFileUploaderOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFileUploaderOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFileUploaderOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFileUploaderOptionsComponent extends DxoFileUploaderOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'valueChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fileUploaderOptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFileUploaderOptionsComponent.ɵfac = function DxoFileUploaderOptionsComponent_Factory(t) { return new (t || DxoFileUploaderOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFileUploaderOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFileUploaderOptionsComponent, selectors: [[\"dxo-file-uploader-options\"]], inputs: { abortUpload: \"abortUpload\", accept: \"accept\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowCanceling: \"allowCanceling\", allowedFileExtensions: \"allowedFileExtensions\", chunkSize: \"chunkSize\", dialogTrigger: \"dialogTrigger\", disabled: \"disabled\", dropZone: \"dropZone\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", invalidFileExtensionMessage: \"invalidFileExtensionMessage\", invalidMaxFileSizeMessage: \"invalidMaxFileSizeMessage\", invalidMinFileSizeMessage: \"invalidMinFileSizeMessage\", isDirty: \"isDirty\", isValid: \"isValid\", labelText: \"labelText\", maxFileSize: \"maxFileSize\", minFileSize: \"minFileSize\", multiple: \"multiple\", name: \"name\", onBeforeSend: \"onBeforeSend\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onDropZoneEnter: \"onDropZoneEnter\", onDropZoneLeave: \"onDropZoneLeave\", onFilesUploaded: \"onFilesUploaded\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onProgress: \"onProgress\", onUploadAborted: \"onUploadAborted\", onUploaded: \"onUploaded\", onUploadError: \"onUploadError\", onUploadStarted: \"onUploadStarted\", onValueChanged: \"onValueChanged\", progress: \"progress\", readOnly: \"readOnly\", readyToUploadMessage: \"readyToUploadMessage\", rtlEnabled: \"rtlEnabled\", selectButtonText: \"selectButtonText\", showFileList: \"showFileList\", tabIndex: \"tabIndex\", uploadAbortedMessage: \"uploadAbortedMessage\", uploadButtonText: \"uploadButtonText\", uploadChunk: \"uploadChunk\", uploadCustomData: \"uploadCustomData\", uploadedMessage: \"uploadedMessage\", uploadFailedMessage: \"uploadFailedMessage\", uploadFile: \"uploadFile\", uploadHeaders: \"uploadHeaders\", uploadMethod: \"uploadMethod\", uploadMode: \"uploadMode\", uploadUrl: \"uploadUrl\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFileUploaderOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFileUploaderOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-file-uploader-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'abortUpload',\r\n 'accept',\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'allowCanceling',\r\n 'allowedFileExtensions',\r\n 'chunkSize',\r\n 'dialogTrigger',\r\n 'disabled',\r\n 'dropZone',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'inputAttr',\r\n 'invalidFileExtensionMessage',\r\n 'invalidMaxFileSizeMessage',\r\n 'invalidMinFileSizeMessage',\r\n 'isDirty',\r\n 'isValid',\r\n 'labelText',\r\n 'maxFileSize',\r\n 'minFileSize',\r\n 'multiple',\r\n 'name',\r\n 'onBeforeSend',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onDropZoneEnter',\r\n 'onDropZoneLeave',\r\n 'onFilesUploaded',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onProgress',\r\n 'onUploadAborted',\r\n 'onUploaded',\r\n 'onUploadError',\r\n 'onUploadStarted',\r\n 'onValueChanged',\r\n 'progress',\r\n 'readOnly',\r\n 'readyToUploadMessage',\r\n 'rtlEnabled',\r\n 'selectButtonText',\r\n 'showFileList',\r\n 'tabIndex',\r\n 'uploadAbortedMessage',\r\n 'uploadButtonText',\r\n 'uploadChunk',\r\n 'uploadCustomData',\r\n 'uploadedMessage',\r\n 'uploadFailedMessage',\r\n 'uploadFile',\r\n 'uploadHeaders',\r\n 'uploadMethod',\r\n 'uploadMode',\r\n 'uploadUrl',\r\n 'validationError',\r\n 'validationErrors',\r\n 'validationStatus',\r\n 'value',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { valueChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoFileUploaderOptionsModule {\r\n}\r\n/** @nocollapse */ DxoFileUploaderOptionsModule.ɵfac = function DxoFileUploaderOptionsModule_Factory(t) { return new (t || DxoFileUploaderOptionsModule)(); };\r\n/** @nocollapse */ DxoFileUploaderOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFileUploaderOptionsModule });\r\n/** @nocollapse */ DxoFileUploaderOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFileUploaderOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFileUploaderOptionsComponent\r\n ],\r\n exports: [\r\n DxoFileUploaderOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFileUploaderOptionsModule, { declarations: [DxoFileUploaderOptionsComponent], exports: [DxoFileUploaderOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterBuilderPopupComponent extends DxoPopupOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'heightChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'filterBuilderPopup';\r\n }\r\n get toolbarItemsChildren() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItemsChildren(value) {\r\n this.setChildren('toolbarItems', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterBuilderPopupComponent.ɵfac = function DxoFilterBuilderPopupComponent_Factory(t) { return new (t || DxoFilterBuilderPopupComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFilterBuilderPopupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterBuilderPopupComponent, selectors: [[\"dxo-filter-builder-popup\"]], contentQueries: function DxoFilterBuilderPopupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", dragAndResizeArea: \"dragAndResizeArea\", dragEnabled: \"dragEnabled\", dragOutsideBoundary: \"dragOutsideBoundary\", elementAttr: \"elementAttr\", enableBodyScroll: \"enableBodyScroll\", focusStateEnabled: \"focusStateEnabled\", fullScreen: \"fullScreen\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResize: \"onResize\", onResizeEnd: \"onResizeEnd\", onResizeStart: \"onResizeStart\", onShowing: \"onShowing\", onShown: \"onShown\", onTitleRendered: \"onTitleRendered\", position: \"position\", resizeEnabled: \"resizeEnabled\", restorePosition: \"restorePosition\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showCloseButton: \"showCloseButton\", showTitle: \"showTitle\", tabIndex: \"tabIndex\", title: \"title\", titleTemplate: \"titleTemplate\", toolbarItems: \"toolbarItems\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { heightChange: \"heightChange\", positionChange: \"positionChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterBuilderPopupComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterBuilderPopupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-filter-builder-popup',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'animation',\r\n 'closeOnOutsideClick',\r\n 'container',\r\n 'contentTemplate',\r\n 'copyRootClassesToWrapper',\r\n 'deferRendering',\r\n 'disabled',\r\n 'dragAndResizeArea',\r\n 'dragEnabled',\r\n 'dragOutsideBoundary',\r\n 'elementAttr',\r\n 'enableBodyScroll',\r\n 'focusStateEnabled',\r\n 'fullScreen',\r\n 'height',\r\n 'hideOnOutsideClick',\r\n 'hideOnParentScroll',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'maxHeight',\r\n 'maxWidth',\r\n 'minHeight',\r\n 'minWidth',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onHidden',\r\n 'onHiding',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onResize',\r\n 'onResizeEnd',\r\n 'onResizeStart',\r\n 'onShowing',\r\n 'onShown',\r\n 'onTitleRendered',\r\n 'position',\r\n 'resizeEnabled',\r\n 'restorePosition',\r\n 'rtlEnabled',\r\n 'shading',\r\n 'shadingColor',\r\n 'showCloseButton',\r\n 'showTitle',\r\n 'tabIndex',\r\n 'title',\r\n 'titleTemplate',\r\n 'toolbarItems',\r\n 'visible',\r\n 'width',\r\n 'wrapperAttr'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { heightChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], toolbarItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiToolbarItemComponent)]\r\n }] }); })();\r\nclass DxoFilterBuilderPopupModule {\r\n}\r\n/** @nocollapse */ DxoFilterBuilderPopupModule.ɵfac = function DxoFilterBuilderPopupModule_Factory(t) { return new (t || DxoFilterBuilderPopupModule)(); };\r\n/** @nocollapse */ DxoFilterBuilderPopupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFilterBuilderPopupModule });\r\n/** @nocollapse */ DxoFilterBuilderPopupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterBuilderPopupModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFilterBuilderPopupComponent\r\n ],\r\n exports: [\r\n DxoFilterBuilderPopupComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFilterBuilderPopupModule, { declarations: [DxoFilterBuilderPopupComponent], exports: [DxoFilterBuilderPopupComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterBuilderOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get allowHierarchicalFields() {\r\n return this._getOption('allowHierarchicalFields');\r\n }\r\n set allowHierarchicalFields(value) {\r\n this._setOption('allowHierarchicalFields', value);\r\n }\r\n get customOperations() {\r\n return this._getOption('customOperations');\r\n }\r\n set customOperations(value) {\r\n this._setOption('customOperations', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get fields() {\r\n return this._getOption('fields');\r\n }\r\n set fields(value) {\r\n this._setOption('fields', value);\r\n }\r\n get filterOperationDescriptions() {\r\n return this._getOption('filterOperationDescriptions');\r\n }\r\n set filterOperationDescriptions(value) {\r\n this._setOption('filterOperationDescriptions', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get groupOperationDescriptions() {\r\n return this._getOption('groupOperationDescriptions');\r\n }\r\n set groupOperationDescriptions(value) {\r\n this._setOption('groupOperationDescriptions', value);\r\n }\r\n get groupOperations() {\r\n return this._getOption('groupOperations');\r\n }\r\n set groupOperations(value) {\r\n this._setOption('groupOperations', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get maxGroupLevel() {\r\n return this._getOption('maxGroupLevel');\r\n }\r\n set maxGroupLevel(value) {\r\n this._setOption('maxGroupLevel', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onEditorPrepared() {\r\n return this._getOption('onEditorPrepared');\r\n }\r\n set onEditorPrepared(value) {\r\n this._setOption('onEditorPrepared', value);\r\n }\r\n get onEditorPreparing() {\r\n return this._getOption('onEditorPreparing');\r\n }\r\n set onEditorPreparing(value) {\r\n this._setOption('onEditorPreparing', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onValueChanged() {\r\n return this._getOption('onValueChanged');\r\n }\r\n set onValueChanged(value) {\r\n this._setOption('onValueChanged', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterBuilderOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFilterBuilderOptions_BaseFactory; return function DxoFilterBuilderOptions_Factory(t) { return (ɵDxoFilterBuilderOptions_BaseFactory || (ɵDxoFilterBuilderOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFilterBuilderOptions)))(t || DxoFilterBuilderOptions); }; }();\r\n/** @nocollapse */ DxoFilterBuilderOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterBuilderOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterBuilderOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterBuilderOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterBuilderComponent extends DxoFilterBuilderOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'valueChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'filterBuilder';\r\n }\r\n get customOperationsChildren() {\r\n return this._getOption('customOperations');\r\n }\r\n set customOperationsChildren(value) {\r\n this.setChildren('customOperations', value);\r\n }\r\n get fieldsChildren() {\r\n return this._getOption('fields');\r\n }\r\n set fieldsChildren(value) {\r\n this.setChildren('fields', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterBuilderComponent.ɵfac = function DxoFilterBuilderComponent_Factory(t) { return new (t || DxoFilterBuilderComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFilterBuilderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterBuilderComponent, selectors: [[\"dxo-filter-builder\"]], contentQueries: function DxoFilterBuilderComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCustomOperationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiFieldComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customOperationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowHierarchicalFields: \"allowHierarchicalFields\", customOperations: \"customOperations\", disabled: \"disabled\", elementAttr: \"elementAttr\", fields: \"fields\", filterOperationDescriptions: \"filterOperationDescriptions\", focusStateEnabled: \"focusStateEnabled\", groupOperationDescriptions: \"groupOperationDescriptions\", groupOperations: \"groupOperations\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxGroupLevel: \"maxGroupLevel\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onEditorPrepared: \"onEditorPrepared\", onEditorPreparing: \"onEditorPreparing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterBuilderComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterBuilderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-filter-builder',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'allowHierarchicalFields',\r\n 'customOperations',\r\n 'disabled',\r\n 'elementAttr',\r\n 'fields',\r\n 'filterOperationDescriptions',\r\n 'focusStateEnabled',\r\n 'groupOperationDescriptions',\r\n 'groupOperations',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'maxGroupLevel',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onEditorPrepared',\r\n 'onEditorPreparing',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onValueChanged',\r\n 'rtlEnabled',\r\n 'tabIndex',\r\n 'value',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { valueChange: [{\r\n type: Output\r\n }], customOperationsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCustomOperationComponent)]\r\n }], fieldsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiFieldComponent)]\r\n }] }); })();\r\nclass DxoFilterBuilderModule {\r\n}\r\n/** @nocollapse */ DxoFilterBuilderModule.ɵfac = function DxoFilterBuilderModule_Factory(t) { return new (t || DxoFilterBuilderModule)(); };\r\n/** @nocollapse */ DxoFilterBuilderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFilterBuilderModule });\r\n/** @nocollapse */ DxoFilterBuilderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterBuilderModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFilterBuilderComponent\r\n ],\r\n exports: [\r\n DxoFilterBuilderComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFilterBuilderModule, { declarations: [DxoFilterBuilderComponent], exports: [DxoFilterBuilderComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterOperationDescriptionsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get between() {\r\n return this._getOption('between');\r\n }\r\n set between(value) {\r\n this._setOption('between', value);\r\n }\r\n get contains() {\r\n return this._getOption('contains');\r\n }\r\n set contains(value) {\r\n this._setOption('contains', value);\r\n }\r\n get endsWith() {\r\n return this._getOption('endsWith');\r\n }\r\n set endsWith(value) {\r\n this._setOption('endsWith', value);\r\n }\r\n get equal() {\r\n return this._getOption('equal');\r\n }\r\n set equal(value) {\r\n this._setOption('equal', value);\r\n }\r\n get greaterThan() {\r\n return this._getOption('greaterThan');\r\n }\r\n set greaterThan(value) {\r\n this._setOption('greaterThan', value);\r\n }\r\n get greaterThanOrEqual() {\r\n return this._getOption('greaterThanOrEqual');\r\n }\r\n set greaterThanOrEqual(value) {\r\n this._setOption('greaterThanOrEqual', value);\r\n }\r\n get isBlank() {\r\n return this._getOption('isBlank');\r\n }\r\n set isBlank(value) {\r\n this._setOption('isBlank', value);\r\n }\r\n get isNotBlank() {\r\n return this._getOption('isNotBlank');\r\n }\r\n set isNotBlank(value) {\r\n this._setOption('isNotBlank', value);\r\n }\r\n get lessThan() {\r\n return this._getOption('lessThan');\r\n }\r\n set lessThan(value) {\r\n this._setOption('lessThan', value);\r\n }\r\n get lessThanOrEqual() {\r\n return this._getOption('lessThanOrEqual');\r\n }\r\n set lessThanOrEqual(value) {\r\n this._setOption('lessThanOrEqual', value);\r\n }\r\n get notContains() {\r\n return this._getOption('notContains');\r\n }\r\n set notContains(value) {\r\n this._setOption('notContains', value);\r\n }\r\n get notEqual() {\r\n return this._getOption('notEqual');\r\n }\r\n set notEqual(value) {\r\n this._setOption('notEqual', value);\r\n }\r\n get startsWith() {\r\n return this._getOption('startsWith');\r\n }\r\n set startsWith(value) {\r\n this._setOption('startsWith', value);\r\n }\r\n get _optionPath() {\r\n return 'filterOperationDescriptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterOperationDescriptionsComponent.ɵfac = function DxoFilterOperationDescriptionsComponent_Factory(t) { return new (t || DxoFilterOperationDescriptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFilterOperationDescriptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterOperationDescriptionsComponent, selectors: [[\"dxo-filter-operation-descriptions\"]], inputs: { between: \"between\", contains: \"contains\", endsWith: \"endsWith\", equal: \"equal\", greaterThan: \"greaterThan\", greaterThanOrEqual: \"greaterThanOrEqual\", isBlank: \"isBlank\", isNotBlank: \"isNotBlank\", lessThan: \"lessThan\", lessThanOrEqual: \"lessThanOrEqual\", notContains: \"notContains\", notEqual: \"notEqual\", startsWith: \"startsWith\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterOperationDescriptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterOperationDescriptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-filter-operation-descriptions',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { between: [{\r\n type: Input\r\n }], contains: [{\r\n type: Input\r\n }], endsWith: [{\r\n type: Input\r\n }], equal: [{\r\n type: Input\r\n }], greaterThan: [{\r\n type: Input\r\n }], greaterThanOrEqual: [{\r\n type: Input\r\n }], isBlank: [{\r\n type: Input\r\n }], isNotBlank: [{\r\n type: Input\r\n }], lessThan: [{\r\n type: Input\r\n }], lessThanOrEqual: [{\r\n type: Input\r\n }], notContains: [{\r\n type: Input\r\n }], notEqual: [{\r\n type: Input\r\n }], startsWith: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoFilterOperationDescriptionsModule {\r\n}\r\n/** @nocollapse */ DxoFilterOperationDescriptionsModule.ɵfac = function DxoFilterOperationDescriptionsModule_Factory(t) { return new (t || DxoFilterOperationDescriptionsModule)(); };\r\n/** @nocollapse */ DxoFilterOperationDescriptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFilterOperationDescriptionsModule });\r\n/** @nocollapse */ DxoFilterOperationDescriptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterOperationDescriptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFilterOperationDescriptionsComponent\r\n ],\r\n exports: [\r\n DxoFilterOperationDescriptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFilterOperationDescriptionsModule, { declarations: [DxoFilterOperationDescriptionsComponent], exports: [DxoFilterOperationDescriptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'filterEnabledChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get filterEnabled() {\r\n return this._getOption('filterEnabled');\r\n }\r\n set filterEnabled(value) {\r\n this._setOption('filterEnabled', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'filterPanel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterPanelComponent.ɵfac = function DxoFilterPanelComponent_Factory(t) { return new (t || DxoFilterPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFilterPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterPanelComponent, selectors: [[\"dxo-filter-panel\"]], inputs: { customizeText: \"customizeText\", filterEnabled: \"filterEnabled\", texts: \"texts\", visible: \"visible\" }, outputs: { filterEnabledChange: \"filterEnabledChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-filter-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { customizeText: [{\r\n type: Input\r\n }], filterEnabled: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], filterEnabledChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoFilterPanelModule {\r\n}\r\n/** @nocollapse */ DxoFilterPanelModule.ɵfac = function DxoFilterPanelModule_Factory(t) { return new (t || DxoFilterPanelModule)(); };\r\n/** @nocollapse */ DxoFilterPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFilterPanelModule });\r\n/** @nocollapse */ DxoFilterPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFilterPanelComponent\r\n ],\r\n exports: [\r\n DxoFilterPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFilterPanelModule, { declarations: [DxoFilterPanelComponent], exports: [DxoFilterPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGanttFilterRow extends NestedOption {\r\n get applyFilter() {\r\n return this._getOption('applyFilter');\r\n }\r\n set applyFilter(value) {\r\n this._setOption('applyFilter', value);\r\n }\r\n get applyFilterText() {\r\n return this._getOption('applyFilterText');\r\n }\r\n set applyFilterText(value) {\r\n this._setOption('applyFilterText', value);\r\n }\r\n get betweenEndText() {\r\n return this._getOption('betweenEndText');\r\n }\r\n set betweenEndText(value) {\r\n this._setOption('betweenEndText', value);\r\n }\r\n get betweenStartText() {\r\n return this._getOption('betweenStartText');\r\n }\r\n set betweenStartText(value) {\r\n this._setOption('betweenStartText', value);\r\n }\r\n get operationDescriptions() {\r\n return this._getOption('operationDescriptions');\r\n }\r\n set operationDescriptions(value) {\r\n this._setOption('operationDescriptions', value);\r\n }\r\n get resetOperationText() {\r\n return this._getOption('resetOperationText');\r\n }\r\n set resetOperationText(value) {\r\n this._setOption('resetOperationText', value);\r\n }\r\n get showAllText() {\r\n return this._getOption('showAllText');\r\n }\r\n set showAllText(value) {\r\n this._setOption('showAllText', value);\r\n }\r\n get showOperationChooser() {\r\n return this._getOption('showOperationChooser');\r\n }\r\n set showOperationChooser(value) {\r\n this._setOption('showOperationChooser', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGanttFilterRow.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGanttFilterRow_BaseFactory; return function DxoGanttFilterRow_Factory(t) { return (ɵDxoGanttFilterRow_BaseFactory || (ɵDxoGanttFilterRow_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGanttFilterRow)))(t || DxoGanttFilterRow); }; }();\r\n/** @nocollapse */ DxoGanttFilterRow.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGanttFilterRow, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGanttFilterRow_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGanttFilterRow, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFilterRowComponent extends DxoGanttFilterRow {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'filterRow';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFilterRowComponent.ɵfac = function DxoFilterRowComponent_Factory(t) { return new (t || DxoFilterRowComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFilterRowComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFilterRowComponent, selectors: [[\"dxo-filter-row\"]], inputs: { applyFilter: \"applyFilter\", applyFilterText: \"applyFilterText\", betweenEndText: \"betweenEndText\", betweenStartText: \"betweenStartText\", operationDescriptions: \"operationDescriptions\", resetOperationText: \"resetOperationText\", showAllText: \"showAllText\", showOperationChooser: \"showOperationChooser\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFilterRowComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterRowComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-filter-row',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'applyFilter',\r\n 'applyFilterText',\r\n 'betweenEndText',\r\n 'betweenStartText',\r\n 'operationDescriptions',\r\n 'resetOperationText',\r\n 'showAllText',\r\n 'showOperationChooser',\r\n 'visible'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFilterRowModule {\r\n}\r\n/** @nocollapse */ DxoFilterRowModule.ɵfac = function DxoFilterRowModule_Factory(t) { return new (t || DxoFilterRowModule)(); };\r\n/** @nocollapse */ DxoFilterRowModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFilterRowModule });\r\n/** @nocollapse */ DxoFilterRowModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFilterRowModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFilterRowComponent\r\n ],\r\n exports: [\r\n DxoFilterRowComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFilterRowModule, { declarations: [DxoFilterRowComponent], exports: [DxoFilterRowComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoVizFont extends NestedOption {\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get family() {\r\n return this._getOption('family');\r\n }\r\n set family(value) {\r\n this._setOption('family', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get weight() {\r\n return this._getOption('weight');\r\n }\r\n set weight(value) {\r\n this._setOption('weight', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoVizFont.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoVizFont_BaseFactory; return function DxoVizFont_Factory(t) { return (ɵDxoVizFont_BaseFactory || (ɵDxoVizFont_BaseFactory = i0.ɵɵgetInheritedFactory(DxoVizFont)))(t || DxoVizFont); }; }();\r\n/** @nocollapse */ DxoVizFont.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoVizFont, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoVizFont_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVizFont, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFontComponent extends DxoVizFont {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'font';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFontComponent.ɵfac = function DxoFontComponent_Factory(t) { return new (t || DxoFontComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFontComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFontComponent, selectors: [[\"dxo-font\"]], inputs: { color: \"color\", family: \"family\", opacity: \"opacity\", size: \"size\", weight: \"weight\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFontComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFontComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-font',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'color',\r\n 'family',\r\n 'opacity',\r\n 'size',\r\n 'weight'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFontModule {\r\n}\r\n/** @nocollapse */ DxoFontModule.ɵfac = function DxoFontModule_Factory(t) { return new (t || DxoFontModule)(); };\r\n/** @nocollapse */ DxoFontModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFontModule });\r\n/** @nocollapse */ DxoFontModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFontModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFontComponent\r\n ],\r\n exports: [\r\n DxoFontComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFontModule, { declarations: [DxoFontComponent], exports: [DxoFontComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormSimpleItem extends NestedOption {\r\n get colSpan() {\r\n return this._getOption('colSpan');\r\n }\r\n set colSpan(value) {\r\n this._setOption('colSpan', value);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get editorOptions() {\r\n return this._getOption('editorOptions');\r\n }\r\n set editorOptions(value) {\r\n this._setOption('editorOptions', value);\r\n }\r\n get editorType() {\r\n return this._getOption('editorType');\r\n }\r\n set editorType(value) {\r\n this._setOption('editorType', value);\r\n }\r\n get helpText() {\r\n return this._getOption('helpText');\r\n }\r\n set helpText(value) {\r\n this._setOption('helpText', value);\r\n }\r\n get isRequired() {\r\n return this._getOption('isRequired');\r\n }\r\n set isRequired(value) {\r\n this._setOption('isRequired', value);\r\n }\r\n get itemType() {\r\n return this._getOption('itemType');\r\n }\r\n set itemType(value) {\r\n this._setOption('itemType', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get validationRules() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRules(value) {\r\n this._setOption('validationRules', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get visibleIndex() {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFormSimpleItem.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFormSimpleItem_BaseFactory; return function DxoFormSimpleItem_Factory(t) { return (ɵDxoFormSimpleItem_BaseFactory || (ɵDxoFormSimpleItem_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFormSimpleItem)))(t || DxoFormSimpleItem); }; }();\r\n/** @nocollapse */ DxoFormSimpleItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormSimpleItem, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormSimpleItem_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormSimpleItem, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormItemComponent extends DxoFormSimpleItem {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'formItem';\r\n }\r\n get validationRulesChildren() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRulesChildren(value) {\r\n this.setChildren('validationRules', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFormItemComponent.ɵfac = function DxoFormItemComponent_Factory(t) { return new (t || DxoFormItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFormItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormItemComponent, selectors: [[\"dxo-form-item\"]], contentQueries: function DxoFormItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiValidationRuleComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.validationRulesChildren = _t);\r\n } }, inputs: { colSpan: \"colSpan\", cssClass: \"cssClass\", dataField: \"dataField\", editorOptions: \"editorOptions\", editorType: \"editorType\", helpText: \"helpText\", isRequired: \"isRequired\", itemType: \"itemType\", label: \"label\", name: \"name\", template: \"template\", validationRules: \"validationRules\", visible: \"visible\", visibleIndex: \"visibleIndex\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-form-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'colSpan',\r\n 'cssClass',\r\n 'dataField',\r\n 'editorOptions',\r\n 'editorType',\r\n 'helpText',\r\n 'isRequired',\r\n 'itemType',\r\n 'label',\r\n 'name',\r\n 'template',\r\n 'validationRules',\r\n 'visible',\r\n 'visibleIndex'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { validationRulesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiValidationRuleComponent)]\r\n }] }); })();\r\nclass DxoFormItemModule {\r\n}\r\n/** @nocollapse */ DxoFormItemModule.ɵfac = function DxoFormItemModule_Factory(t) { return new (t || DxoFormItemModule)(); };\r\n/** @nocollapse */ DxoFormItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFormItemModule });\r\n/** @nocollapse */ DxoFormItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFormItemComponent\r\n ],\r\n exports: [\r\n DxoFormItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFormItemModule, { declarations: [DxoFormItemComponent], exports: [DxoFormItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get alignItemLabels() {\r\n return this._getOption('alignItemLabels');\r\n }\r\n set alignItemLabels(value) {\r\n this._setOption('alignItemLabels', value);\r\n }\r\n get alignItemLabelsInAllGroups() {\r\n return this._getOption('alignItemLabelsInAllGroups');\r\n }\r\n set alignItemLabelsInAllGroups(value) {\r\n this._setOption('alignItemLabelsInAllGroups', value);\r\n }\r\n get colCount() {\r\n return this._getOption('colCount');\r\n }\r\n set colCount(value) {\r\n this._setOption('colCount', value);\r\n }\r\n get colCountByScreen() {\r\n return this._getOption('colCountByScreen');\r\n }\r\n set colCountByScreen(value) {\r\n this._setOption('colCountByScreen', value);\r\n }\r\n get customizeItem() {\r\n return this._getOption('customizeItem');\r\n }\r\n set customizeItem(value) {\r\n this._setOption('customizeItem', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get formData() {\r\n return this._getOption('formData');\r\n }\r\n set formData(value) {\r\n this._setOption('formData', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get labelLocation() {\r\n return this._getOption('labelLocation');\r\n }\r\n set labelLocation(value) {\r\n this._setOption('labelLocation', value);\r\n }\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n get minColWidth() {\r\n return this._getOption('minColWidth');\r\n }\r\n set minColWidth(value) {\r\n this._setOption('minColWidth', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onEditorEnterKey() {\r\n return this._getOption('onEditorEnterKey');\r\n }\r\n set onEditorEnterKey(value) {\r\n this._setOption('onEditorEnterKey', value);\r\n }\r\n get onFieldDataChanged() {\r\n return this._getOption('onFieldDataChanged');\r\n }\r\n set onFieldDataChanged(value) {\r\n this._setOption('onFieldDataChanged', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get optionalMark() {\r\n return this._getOption('optionalMark');\r\n }\r\n set optionalMark(value) {\r\n this._setOption('optionalMark', value);\r\n }\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n get requiredMark() {\r\n return this._getOption('requiredMark');\r\n }\r\n set requiredMark(value) {\r\n this._setOption('requiredMark', value);\r\n }\r\n get requiredMessage() {\r\n return this._getOption('requiredMessage');\r\n }\r\n set requiredMessage(value) {\r\n this._setOption('requiredMessage', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get screenByWidth() {\r\n return this._getOption('screenByWidth');\r\n }\r\n set screenByWidth(value) {\r\n this._setOption('screenByWidth', value);\r\n }\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n get showColonAfterLabel() {\r\n return this._getOption('showColonAfterLabel');\r\n }\r\n set showColonAfterLabel(value) {\r\n this._setOption('showColonAfterLabel', value);\r\n }\r\n get showOptionalMark() {\r\n return this._getOption('showOptionalMark');\r\n }\r\n set showOptionalMark(value) {\r\n this._setOption('showOptionalMark', value);\r\n }\r\n get showRequiredMark() {\r\n return this._getOption('showRequiredMark');\r\n }\r\n set showRequiredMark(value) {\r\n this._setOption('showRequiredMark', value);\r\n }\r\n get showValidationSummary() {\r\n return this._getOption('showValidationSummary');\r\n }\r\n set showValidationSummary(value) {\r\n this._setOption('showValidationSummary', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoFormOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoFormOptions_BaseFactory; return function DxoFormOptions_Factory(t) { return (ɵDxoFormOptions_BaseFactory || (ɵDxoFormOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoFormOptions)))(t || DxoFormOptions); }; }();\r\n/** @nocollapse */ DxoFormOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormComponent extends DxoFormOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'formDataChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'form';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFormComponent.ɵfac = function DxoFormComponent_Factory(t) { return new (t || DxoFormComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFormComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormComponent, selectors: [[\"dxo-form\"]], contentQueries: function DxoFormComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", alignItemLabels: \"alignItemLabels\", alignItemLabelsInAllGroups: \"alignItemLabelsInAllGroups\", colCount: \"colCount\", colCountByScreen: \"colCountByScreen\", customizeItem: \"customizeItem\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", formData: \"formData\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", items: \"items\", labelLocation: \"labelLocation\", labelMode: \"labelMode\", minColWidth: \"minColWidth\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onEditorEnterKey: \"onEditorEnterKey\", onFieldDataChanged: \"onFieldDataChanged\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", optionalMark: \"optionalMark\", readOnly: \"readOnly\", requiredMark: \"requiredMark\", requiredMessage: \"requiredMessage\", rtlEnabled: \"rtlEnabled\", screenByWidth: \"screenByWidth\", scrollingEnabled: \"scrollingEnabled\", showColonAfterLabel: \"showColonAfterLabel\", showOptionalMark: \"showOptionalMark\", showRequiredMark: \"showRequiredMark\", showValidationSummary: \"showValidationSummary\", tabIndex: \"tabIndex\", validationGroup: \"validationGroup\", visible: \"visible\", width: \"width\" }, outputs: { formDataChange: \"formDataChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-form',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'alignItemLabels',\r\n 'alignItemLabelsInAllGroups',\r\n 'colCount',\r\n 'colCountByScreen',\r\n 'customizeItem',\r\n 'disabled',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'formData',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'isDirty',\r\n 'items',\r\n 'labelLocation',\r\n 'labelMode',\r\n 'minColWidth',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onEditorEnterKey',\r\n 'onFieldDataChanged',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'optionalMark',\r\n 'readOnly',\r\n 'requiredMark',\r\n 'requiredMessage',\r\n 'rtlEnabled',\r\n 'screenByWidth',\r\n 'scrollingEnabled',\r\n 'showColonAfterLabel',\r\n 'showOptionalMark',\r\n 'showRequiredMark',\r\n 'showValidationSummary',\r\n 'tabIndex',\r\n 'validationGroup',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { formDataChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoFormModule {\r\n}\r\n/** @nocollapse */ DxoFormModule.ɵfac = function DxoFormModule_Factory(t) { return new (t || DxoFormModule)(); };\r\n/** @nocollapse */ DxoFormModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFormModule });\r\n/** @nocollapse */ DxoFormModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFormComponent\r\n ],\r\n exports: [\r\n DxoFormComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFormModule, { declarations: [DxoFormComponent], exports: [DxoFormComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFormatComponent extends DxoFormat {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'format';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFormatComponent.ɵfac = function DxoFormatComponent_Factory(t) { return new (t || DxoFormatComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFormatComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFormatComponent, selectors: [[\"dxo-format\"]], inputs: { currency: \"currency\", formatter: \"formatter\", parser: \"parser\", precision: \"precision\", type: \"type\", useCurrencyAccountingStyle: \"useCurrencyAccountingStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFormatComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormatComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-format',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'currency',\r\n 'formatter',\r\n 'parser',\r\n 'precision',\r\n 'type',\r\n 'useCurrencyAccountingStyle'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFormatModule {\r\n}\r\n/** @nocollapse */ DxoFormatModule.ɵfac = function DxoFormatModule_Factory(t) { return new (t || DxoFormatModule)(); };\r\n/** @nocollapse */ DxoFormatModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFormatModule });\r\n/** @nocollapse */ DxoFormatModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFormatModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFormatComponent\r\n ],\r\n exports: [\r\n DxoFormatComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFormatModule, { declarations: [DxoFormatComponent], exports: [DxoFormatComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoAnimationState extends NestedOption {\r\n get left() {\r\n return this._getOption('left');\r\n }\r\n set left(value) {\r\n this._setOption('left', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get scale() {\r\n return this._getOption('scale');\r\n }\r\n set scale(value) {\r\n this._setOption('scale', value);\r\n }\r\n get top() {\r\n return this._getOption('top');\r\n }\r\n set top(value) {\r\n this._setOption('top', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoAnimationState.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoAnimationState_BaseFactory; return function DxoAnimationState_Factory(t) { return (ɵDxoAnimationState_BaseFactory || (ɵDxoAnimationState_BaseFactory = i0.ɵɵgetInheritedFactory(DxoAnimationState)))(t || DxoAnimationState); }; }();\r\n/** @nocollapse */ DxoAnimationState.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoAnimationState, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoAnimationState_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoAnimationState, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFromComponent extends DxoAnimationState {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'from';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFromComponent.ɵfac = function DxoFromComponent_Factory(t) { return new (t || DxoFromComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFromComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFromComponent, selectors: [[\"dxo-from\"]], inputs: { left: \"left\", opacity: \"opacity\", position: \"position\", scale: \"scale\", top: \"top\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFromComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFromComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-from',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'left',\r\n 'opacity',\r\n 'position',\r\n 'scale',\r\n 'top'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFromModule {\r\n}\r\n/** @nocollapse */ DxoFromModule.ɵfac = function DxoFromModule_Factory(t) { return new (t || DxoFromModule)(); };\r\n/** @nocollapse */ DxoFromModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFromModule });\r\n/** @nocollapse */ DxoFromModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFromModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFromComponent\r\n ],\r\n exports: [\r\n DxoFromComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFromModule, { declarations: [DxoFromComponent], exports: [DxoFromComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFullstackedareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fullstackedarea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFullstackedareaComponent.ɵfac = function DxoFullstackedareaComponent_Factory(t) { return new (t || DxoFullstackedareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFullstackedareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFullstackedareaComponent, selectors: [[\"dxo-fullstackedarea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFullstackedareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-fullstackedarea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFullstackedareaModule {\r\n}\r\n/** @nocollapse */ DxoFullstackedareaModule.ɵfac = function DxoFullstackedareaModule_Factory(t) { return new (t || DxoFullstackedareaModule)(); };\r\n/** @nocollapse */ DxoFullstackedareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFullstackedareaModule });\r\n/** @nocollapse */ DxoFullstackedareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFullstackedareaComponent\r\n ],\r\n exports: [\r\n DxoFullstackedareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFullstackedareaModule, { declarations: [DxoFullstackedareaComponent], exports: [DxoFullstackedareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFullstackedbarComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fullstackedbar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFullstackedbarComponent.ɵfac = function DxoFullstackedbarComponent_Factory(t) { return new (t || DxoFullstackedbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFullstackedbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFullstackedbarComponent, selectors: [[\"dxo-fullstackedbar\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFullstackedbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-fullstackedbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFullstackedbarModule {\r\n}\r\n/** @nocollapse */ DxoFullstackedbarModule.ɵfac = function DxoFullstackedbarModule_Factory(t) { return new (t || DxoFullstackedbarModule)(); };\r\n/** @nocollapse */ DxoFullstackedbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFullstackedbarModule });\r\n/** @nocollapse */ DxoFullstackedbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFullstackedbarComponent\r\n ],\r\n exports: [\r\n DxoFullstackedbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFullstackedbarModule, { declarations: [DxoFullstackedbarComponent], exports: [DxoFullstackedbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFullstackedlineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fullstackedline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFullstackedlineComponent.ɵfac = function DxoFullstackedlineComponent_Factory(t) { return new (t || DxoFullstackedlineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFullstackedlineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFullstackedlineComponent, selectors: [[\"dxo-fullstackedline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFullstackedlineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedlineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-fullstackedline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFullstackedlineModule {\r\n}\r\n/** @nocollapse */ DxoFullstackedlineModule.ɵfac = function DxoFullstackedlineModule_Factory(t) { return new (t || DxoFullstackedlineModule)(); };\r\n/** @nocollapse */ DxoFullstackedlineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFullstackedlineModule });\r\n/** @nocollapse */ DxoFullstackedlineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedlineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFullstackedlineComponent\r\n ],\r\n exports: [\r\n DxoFullstackedlineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFullstackedlineModule, { declarations: [DxoFullstackedlineComponent], exports: [DxoFullstackedlineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFullstackedsplineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fullstackedspline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFullstackedsplineComponent.ɵfac = function DxoFullstackedsplineComponent_Factory(t) { return new (t || DxoFullstackedsplineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFullstackedsplineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFullstackedsplineComponent, selectors: [[\"dxo-fullstackedspline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFullstackedsplineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedsplineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-fullstackedspline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFullstackedsplineModule {\r\n}\r\n/** @nocollapse */ DxoFullstackedsplineModule.ɵfac = function DxoFullstackedsplineModule_Factory(t) { return new (t || DxoFullstackedsplineModule)(); };\r\n/** @nocollapse */ DxoFullstackedsplineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFullstackedsplineModule });\r\n/** @nocollapse */ DxoFullstackedsplineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedsplineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFullstackedsplineComponent\r\n ],\r\n exports: [\r\n DxoFullstackedsplineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFullstackedsplineModule, { declarations: [DxoFullstackedsplineComponent], exports: [DxoFullstackedsplineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoFullstackedsplineareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'fullstackedsplinearea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoFullstackedsplineareaComponent.ɵfac = function DxoFullstackedsplineareaComponent_Factory(t) { return new (t || DxoFullstackedsplineareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoFullstackedsplineareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoFullstackedsplineareaComponent, selectors: [[\"dxo-fullstackedsplinearea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoFullstackedsplineareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedsplineareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-fullstackedsplinearea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoFullstackedsplineareaModule {\r\n}\r\n/** @nocollapse */ DxoFullstackedsplineareaModule.ɵfac = function DxoFullstackedsplineareaModule_Factory(t) { return new (t || DxoFullstackedsplineareaModule)(); };\r\n/** @nocollapse */ DxoFullstackedsplineareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoFullstackedsplineareaModule });\r\n/** @nocollapse */ DxoFullstackedsplineareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoFullstackedsplineareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoFullstackedsplineareaComponent\r\n ],\r\n exports: [\r\n DxoFullstackedsplineareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoFullstackedsplineareaModule, { declarations: [DxoFullstackedsplineareaComponent], exports: [DxoFullstackedsplineareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGeometryComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get endAngle() {\r\n return this._getOption('endAngle');\r\n }\r\n set endAngle(value) {\r\n this._setOption('endAngle', value);\r\n }\r\n get startAngle() {\r\n return this._getOption('startAngle');\r\n }\r\n set startAngle(value) {\r\n this._setOption('startAngle', value);\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get _optionPath() {\r\n return 'geometry';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGeometryComponent.ɵfac = function DxoGeometryComponent_Factory(t) { return new (t || DxoGeometryComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGeometryComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGeometryComponent, selectors: [[\"dxo-geometry\"]], inputs: { endAngle: \"endAngle\", startAngle: \"startAngle\", orientation: \"orientation\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGeometryComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGeometryComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-geometry',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { endAngle: [{\r\n type: Input\r\n }], startAngle: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoGeometryModule {\r\n}\r\n/** @nocollapse */ DxoGeometryModule.ɵfac = function DxoGeometryModule_Factory(t) { return new (t || DxoGeometryModule)(); };\r\n/** @nocollapse */ DxoGeometryModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGeometryModule });\r\n/** @nocollapse */ DxoGeometryModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGeometryModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGeometryComponent\r\n ],\r\n exports: [\r\n DxoGeometryComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGeometryModule, { declarations: [DxoGeometryComponent], exports: [DxoGeometryComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGridSizeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'valueChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get _optionPath() {\r\n return 'gridSize';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGridSizeComponent.ɵfac = function DxoGridSizeComponent_Factory(t) { return new (t || DxoGridSizeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGridSizeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGridSizeComponent, selectors: [[\"dxo-grid-size\"]], inputs: { items: \"items\", value: \"value\" }, outputs: { valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGridSizeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGridSizeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-grid-size',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { items: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoGridSizeModule {\r\n}\r\n/** @nocollapse */ DxoGridSizeModule.ɵfac = function DxoGridSizeModule_Factory(t) { return new (t || DxoGridSizeModule)(); };\r\n/** @nocollapse */ DxoGridSizeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGridSizeModule });\r\n/** @nocollapse */ DxoGridSizeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGridSizeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGridSizeComponent\r\n ],\r\n exports: [\r\n DxoGridSizeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGridSizeModule, { declarations: [DxoGridSizeComponent], exports: [DxoGridSizeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGridComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'grid';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGridComponent.ɵfac = function DxoGridComponent_Factory(t) { return new (t || DxoGridComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGridComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGridComponent, selectors: [[\"dxo-grid\"]], inputs: { color: \"color\", opacity: \"opacity\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGridComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGridComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-grid',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoGridModule {\r\n}\r\n/** @nocollapse */ DxoGridModule.ɵfac = function DxoGridModule_Factory(t) { return new (t || DxoGridModule)(); };\r\n/** @nocollapse */ DxoGridModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGridModule });\r\n/** @nocollapse */ DxoGridModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGridModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGridComponent\r\n ],\r\n exports: [\r\n DxoGridComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGridModule, { declarations: [DxoGridComponent], exports: [DxoGridComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiGroupItemComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get alignByColumn() {\r\n return this._getOption('alignByColumn');\r\n }\r\n set alignByColumn(value) {\r\n this._setOption('alignByColumn', value);\r\n }\r\n get column() {\r\n return this._getOption('column');\r\n }\r\n set column(value) {\r\n this._setOption('column', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get displayFormat() {\r\n return this._getOption('displayFormat');\r\n }\r\n set displayFormat(value) {\r\n this._setOption('displayFormat', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get showInColumn() {\r\n return this._getOption('showInColumn');\r\n }\r\n set showInColumn(value) {\r\n this._setOption('showInColumn', value);\r\n }\r\n get showInGroupFooter() {\r\n return this._getOption('showInGroupFooter');\r\n }\r\n set showInGroupFooter(value) {\r\n this._setOption('showInGroupFooter', value);\r\n }\r\n get skipEmptyValues() {\r\n return this._getOption('skipEmptyValues');\r\n }\r\n set skipEmptyValues(value) {\r\n this._setOption('skipEmptyValues', value);\r\n }\r\n get summaryType() {\r\n return this._getOption('summaryType');\r\n }\r\n set summaryType(value) {\r\n this._setOption('summaryType', value);\r\n }\r\n get valueFormat() {\r\n return this._getOption('valueFormat');\r\n }\r\n set valueFormat(value) {\r\n this._setOption('valueFormat', value);\r\n }\r\n get _optionPath() {\r\n return 'groupItems';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiGroupItemComponent.ɵfac = function DxiGroupItemComponent_Factory(t) { return new (t || DxiGroupItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiGroupItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiGroupItemComponent, selectors: [[\"dxi-group-item\"]], inputs: { alignByColumn: \"alignByColumn\", column: \"column\", customizeText: \"customizeText\", displayFormat: \"displayFormat\", name: \"name\", showInColumn: \"showInColumn\", showInGroupFooter: \"showInGroupFooter\", skipEmptyValues: \"skipEmptyValues\", summaryType: \"summaryType\", valueFormat: \"valueFormat\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiGroupItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiGroupItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-group-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { alignByColumn: [{\r\n type: Input\r\n }], column: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], displayFormat: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], showInColumn: [{\r\n type: Input\r\n }], showInGroupFooter: [{\r\n type: Input\r\n }], skipEmptyValues: [{\r\n type: Input\r\n }], summaryType: [{\r\n type: Input\r\n }], valueFormat: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiGroupItemModule {\r\n}\r\n/** @nocollapse */ DxiGroupItemModule.ɵfac = function DxiGroupItemModule_Factory(t) { return new (t || DxiGroupItemModule)(); };\r\n/** @nocollapse */ DxiGroupItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiGroupItemModule });\r\n/** @nocollapse */ DxiGroupItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiGroupItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiGroupItemComponent\r\n ],\r\n exports: [\r\n DxiGroupItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiGroupItemModule, { declarations: [DxiGroupItemComponent], exports: [DxiGroupItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGroupOperationDescriptionsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get and() {\r\n return this._getOption('and');\r\n }\r\n set and(value) {\r\n this._setOption('and', value);\r\n }\r\n get notAnd() {\r\n return this._getOption('notAnd');\r\n }\r\n set notAnd(value) {\r\n this._setOption('notAnd', value);\r\n }\r\n get notOr() {\r\n return this._getOption('notOr');\r\n }\r\n set notOr(value) {\r\n this._setOption('notOr', value);\r\n }\r\n get or() {\r\n return this._getOption('or');\r\n }\r\n set or(value) {\r\n this._setOption('or', value);\r\n }\r\n get _optionPath() {\r\n return 'groupOperationDescriptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGroupOperationDescriptionsComponent.ɵfac = function DxoGroupOperationDescriptionsComponent_Factory(t) { return new (t || DxoGroupOperationDescriptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGroupOperationDescriptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGroupOperationDescriptionsComponent, selectors: [[\"dxo-group-operation-descriptions\"]], inputs: { and: \"and\", notAnd: \"notAnd\", notOr: \"notOr\", or: \"or\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGroupOperationDescriptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupOperationDescriptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-group-operation-descriptions',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { and: [{\r\n type: Input\r\n }], notAnd: [{\r\n type: Input\r\n }], notOr: [{\r\n type: Input\r\n }], or: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoGroupOperationDescriptionsModule {\r\n}\r\n/** @nocollapse */ DxoGroupOperationDescriptionsModule.ɵfac = function DxoGroupOperationDescriptionsModule_Factory(t) { return new (t || DxoGroupOperationDescriptionsModule)(); };\r\n/** @nocollapse */ DxoGroupOperationDescriptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGroupOperationDescriptionsModule });\r\n/** @nocollapse */ DxoGroupOperationDescriptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupOperationDescriptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGroupOperationDescriptionsComponent\r\n ],\r\n exports: [\r\n DxoGroupOperationDescriptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGroupOperationDescriptionsModule, { declarations: [DxoGroupOperationDescriptionsComponent], exports: [DxoGroupOperationDescriptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGroupPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'visibleChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowColumnDragging() {\r\n return this._getOption('allowColumnDragging');\r\n }\r\n set allowColumnDragging(value) {\r\n this._setOption('allowColumnDragging', value);\r\n }\r\n get emptyPanelText() {\r\n return this._getOption('emptyPanelText');\r\n }\r\n set emptyPanelText(value) {\r\n this._setOption('emptyPanelText', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'groupPanel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGroupPanelComponent.ɵfac = function DxoGroupPanelComponent_Factory(t) { return new (t || DxoGroupPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGroupPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGroupPanelComponent, selectors: [[\"dxo-group-panel\"]], inputs: { allowColumnDragging: \"allowColumnDragging\", emptyPanelText: \"emptyPanelText\", visible: \"visible\" }, outputs: { visibleChange: \"visibleChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGroupPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-group-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowColumnDragging: [{\r\n type: Input\r\n }], emptyPanelText: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], visibleChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoGroupPanelModule {\r\n}\r\n/** @nocollapse */ DxoGroupPanelModule.ɵfac = function DxoGroupPanelModule_Factory(t) { return new (t || DxoGroupPanelModule)(); };\r\n/** @nocollapse */ DxoGroupPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGroupPanelModule });\r\n/** @nocollapse */ DxoGroupPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGroupPanelComponent\r\n ],\r\n exports: [\r\n DxoGroupPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGroupPanelModule, { declarations: [DxoGroupPanelComponent], exports: [DxoGroupPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGroupComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get headerHeight() {\r\n return this._getOption('headerHeight');\r\n }\r\n set headerHeight(value) {\r\n this._setOption('headerHeight', value);\r\n }\r\n get hoverEnabled() {\r\n return this._getOption('hoverEnabled');\r\n }\r\n set hoverEnabled(value) {\r\n this._setOption('hoverEnabled', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get padding() {\r\n return this._getOption('padding');\r\n }\r\n set padding(value) {\r\n this._setOption('padding', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get _optionPath() {\r\n return 'group';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGroupComponent.ɵfac = function DxoGroupComponent_Factory(t) { return new (t || DxoGroupComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGroupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGroupComponent, selectors: [[\"dxo-group\"]], inputs: { border: \"border\", color: \"color\", headerHeight: \"headerHeight\", hoverEnabled: \"hoverEnabled\", hoverStyle: \"hoverStyle\", label: \"label\", padding: \"padding\", selectionStyle: \"selectionStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGroupComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-group',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], headerHeight: [{\r\n type: Input\r\n }], hoverEnabled: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], padding: [{\r\n type: Input\r\n }], selectionStyle: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoGroupModule {\r\n}\r\n/** @nocollapse */ DxoGroupModule.ɵfac = function DxoGroupModule_Factory(t) { return new (t || DxoGroupModule)(); };\r\n/** @nocollapse */ DxoGroupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGroupModule });\r\n/** @nocollapse */ DxoGroupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGroupComponent\r\n ],\r\n exports: [\r\n DxoGroupComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGroupModule, { declarations: [DxoGroupComponent], exports: [DxoGroupComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGroupingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowCollapsing() {\r\n return this._getOption('allowCollapsing');\r\n }\r\n set allowCollapsing(value) {\r\n this._setOption('allowCollapsing', value);\r\n }\r\n get autoExpandAll() {\r\n return this._getOption('autoExpandAll');\r\n }\r\n set autoExpandAll(value) {\r\n this._setOption('autoExpandAll', value);\r\n }\r\n get contextMenuEnabled() {\r\n return this._getOption('contextMenuEnabled');\r\n }\r\n set contextMenuEnabled(value) {\r\n this._setOption('contextMenuEnabled', value);\r\n }\r\n get expandMode() {\r\n return this._getOption('expandMode');\r\n }\r\n set expandMode(value) {\r\n this._setOption('expandMode', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get _optionPath() {\r\n return 'grouping';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoGroupingComponent.ɵfac = function DxoGroupingComponent_Factory(t) { return new (t || DxoGroupingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoGroupingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGroupingComponent, selectors: [[\"dxo-grouping\"]], inputs: { allowCollapsing: \"allowCollapsing\", autoExpandAll: \"autoExpandAll\", contextMenuEnabled: \"contextMenuEnabled\", expandMode: \"expandMode\", texts: \"texts\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGroupingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-grouping',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowCollapsing: [{\r\n type: Input\r\n }], autoExpandAll: [{\r\n type: Input\r\n }], contextMenuEnabled: [{\r\n type: Input\r\n }], expandMode: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoGroupingModule {\r\n}\r\n/** @nocollapse */ DxoGroupingModule.ɵfac = function DxoGroupingModule_Factory(t) { return new (t || DxoGroupingModule)(); };\r\n/** @nocollapse */ DxoGroupingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoGroupingModule });\r\n/** @nocollapse */ DxoGroupingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGroupingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoGroupingComponent\r\n ],\r\n exports: [\r\n DxoGroupingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoGroupingModule, { declarations: [DxoGroupingComponent], exports: [DxoGroupingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHatchingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get step() {\r\n return this._getOption('step');\r\n }\r\n set step(value) {\r\n this._setOption('step', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'hatching';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHatchingComponent.ɵfac = function DxoHatchingComponent_Factory(t) { return new (t || DxoHatchingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHatchingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHatchingComponent, selectors: [[\"dxo-hatching\"]], inputs: { direction: \"direction\", opacity: \"opacity\", step: \"step\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHatchingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHatchingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-hatching',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { direction: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], step: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoHatchingModule {\r\n}\r\n/** @nocollapse */ DxoHatchingModule.ɵfac = function DxoHatchingModule_Factory(t) { return new (t || DxoHatchingModule)(); };\r\n/** @nocollapse */ DxoHatchingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHatchingModule });\r\n/** @nocollapse */ DxoHatchingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHatchingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHatchingComponent\r\n ],\r\n exports: [\r\n DxoHatchingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHatchingModule, { declarations: [DxoHatchingComponent], exports: [DxoHatchingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGanttHeaderFilter extends NestedOption {\r\n get allowSearch() {\r\n return this._getOption('allowSearch');\r\n }\r\n set allowSearch(value) {\r\n this._setOption('allowSearch', value);\r\n }\r\n get allowSelectAll() {\r\n return this._getOption('allowSelectAll');\r\n }\r\n set allowSelectAll(value) {\r\n this._setOption('allowSelectAll', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get groupInterval() {\r\n return this._getOption('groupInterval');\r\n }\r\n set groupInterval(value) {\r\n this._setOption('groupInterval', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get search() {\r\n return this._getOption('search');\r\n }\r\n set search(value) {\r\n this._setOption('search', value);\r\n }\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get showRelevantValues() {\r\n return this._getOption('showRelevantValues');\r\n }\r\n set showRelevantValues(value) {\r\n this._setOption('showRelevantValues', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGanttHeaderFilter.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGanttHeaderFilter_BaseFactory; return function DxoGanttHeaderFilter_Factory(t) { return (ɵDxoGanttHeaderFilter_BaseFactory || (ɵDxoGanttHeaderFilter_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGanttHeaderFilter)))(t || DxoGanttHeaderFilter); }; }();\r\n/** @nocollapse */ DxoGanttHeaderFilter.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGanttHeaderFilter, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGanttHeaderFilter_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGanttHeaderFilter, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHeaderFilterComponent extends DxoGanttHeaderFilter {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'headerFilter';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHeaderFilterComponent.ɵfac = function DxoHeaderFilterComponent_Factory(t) { return new (t || DxoHeaderFilterComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHeaderFilterComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHeaderFilterComponent, selectors: [[\"dxo-header-filter\"]], inputs: { allowSearch: \"allowSearch\", allowSelectAll: \"allowSelectAll\", dataSource: \"dataSource\", groupInterval: \"groupInterval\", height: \"height\", search: \"search\", searchMode: \"searchMode\", width: \"width\", searchTimeout: \"searchTimeout\", texts: \"texts\", visible: \"visible\", showRelevantValues: \"showRelevantValues\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHeaderFilterComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHeaderFilterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-header-filter',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowSearch',\r\n 'allowSelectAll',\r\n 'dataSource',\r\n 'groupInterval',\r\n 'height',\r\n 'search',\r\n 'searchMode',\r\n 'width',\r\n 'searchTimeout',\r\n 'texts',\r\n 'visible',\r\n 'showRelevantValues'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoHeaderFilterModule {\r\n}\r\n/** @nocollapse */ DxoHeaderFilterModule.ɵfac = function DxoHeaderFilterModule_Factory(t) { return new (t || DxoHeaderFilterModule)(); };\r\n/** @nocollapse */ DxoHeaderFilterModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHeaderFilterModule });\r\n/** @nocollapse */ DxoHeaderFilterModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHeaderFilterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHeaderFilterComponent\r\n ],\r\n exports: [\r\n DxoHeaderFilterComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHeaderFilterModule, { declarations: [DxoHeaderFilterComponent], exports: [DxoHeaderFilterComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHeightComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get rangeMaxPoint() {\r\n return this._getOption('rangeMaxPoint');\r\n }\r\n set rangeMaxPoint(value) {\r\n this._setOption('rangeMaxPoint', value);\r\n }\r\n get rangeMinPoint() {\r\n return this._getOption('rangeMinPoint');\r\n }\r\n set rangeMinPoint(value) {\r\n this._setOption('rangeMinPoint', value);\r\n }\r\n get _optionPath() {\r\n return 'height';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHeightComponent.ɵfac = function DxoHeightComponent_Factory(t) { return new (t || DxoHeightComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHeightComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHeightComponent, selectors: [[\"dxo-height\"]], inputs: { rangeMaxPoint: \"rangeMaxPoint\", rangeMinPoint: \"rangeMinPoint\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHeightComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHeightComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-height',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { rangeMaxPoint: [{\r\n type: Input\r\n }], rangeMinPoint: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoHeightModule {\r\n}\r\n/** @nocollapse */ DxoHeightModule.ɵfac = function DxoHeightModule_Factory(t) { return new (t || DxoHeightModule)(); };\r\n/** @nocollapse */ DxoHeightModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHeightModule });\r\n/** @nocollapse */ DxoHeightModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHeightModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHeightComponent\r\n ],\r\n exports: [\r\n DxoHeightComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHeightModule, { declarations: [DxoHeightComponent], exports: [DxoHeightComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHideEventComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get _optionPath() {\r\n return 'hideEvent';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHideEventComponent.ɵfac = function DxoHideEventComponent_Factory(t) { return new (t || DxoHideEventComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHideEventComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHideEventComponent, selectors: [[\"dxo-hide-event\"]], inputs: { delay: \"delay\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHideEventComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHideEventComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-hide-event',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { delay: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoHideEventModule {\r\n}\r\n/** @nocollapse */ DxoHideEventModule.ɵfac = function DxoHideEventModule_Factory(t) { return new (t || DxoHideEventModule)(); };\r\n/** @nocollapse */ DxoHideEventModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHideEventModule });\r\n/** @nocollapse */ DxoHideEventModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHideEventModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHideEventComponent\r\n ],\r\n exports: [\r\n DxoHideEventComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHideEventModule, { declarations: [DxoHideEventComponent], exports: [DxoHideEventComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHideComponent extends DxoAnimationConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'hide';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHideComponent.ɵfac = function DxoHideComponent_Factory(t) { return new (t || DxoHideComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHideComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHideComponent, selectors: [[\"dxo-hide\"]], inputs: { complete: \"complete\", delay: \"delay\", direction: \"direction\", duration: \"duration\", easing: \"easing\", from: \"from\", staggerDelay: \"staggerDelay\", start: \"start\", to: \"to\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHideComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHideComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-hide',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'complete',\r\n 'delay',\r\n 'direction',\r\n 'duration',\r\n 'easing',\r\n 'from',\r\n 'staggerDelay',\r\n 'start',\r\n 'to',\r\n 'type'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoHideModule {\r\n}\r\n/** @nocollapse */ DxoHideModule.ɵfac = function DxoHideModule_Factory(t) { return new (t || DxoHideModule)(); };\r\n/** @nocollapse */ DxoHideModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHideModule });\r\n/** @nocollapse */ DxoHideModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHideModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHideComponent\r\n ],\r\n exports: [\r\n DxoHideComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHideModule, { declarations: [DxoHideComponent], exports: [DxoHideComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHistoryToolbarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'historyToolbar';\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHistoryToolbarComponent.ɵfac = function DxoHistoryToolbarComponent_Factory(t) { return new (t || DxoHistoryToolbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHistoryToolbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHistoryToolbarComponent, selectors: [[\"dxo-history-toolbar\"]], contentQueries: function DxoHistoryToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n } }, inputs: { commands: \"commands\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHistoryToolbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHistoryToolbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-history-toolbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { commands: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }] }); })();\r\nclass DxoHistoryToolbarModule {\r\n}\r\n/** @nocollapse */ DxoHistoryToolbarModule.ɵfac = function DxoHistoryToolbarModule_Factory(t) { return new (t || DxoHistoryToolbarModule)(); };\r\n/** @nocollapse */ DxoHistoryToolbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHistoryToolbarModule });\r\n/** @nocollapse */ DxoHistoryToolbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHistoryToolbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHistoryToolbarComponent\r\n ],\r\n exports: [\r\n DxoHistoryToolbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHistoryToolbarModule, { declarations: [DxoHistoryToolbarComponent], exports: [DxoHistoryToolbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHorizontalLineComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'horizontalLine';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHorizontalLineComponent.ɵfac = function DxoHorizontalLineComponent_Factory(t) { return new (t || DxoHorizontalLineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHorizontalLineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHorizontalLineComponent, selectors: [[\"dxo-horizontal-line\"]], inputs: { color: \"color\", dashStyle: \"dashStyle\", label: \"label\", opacity: \"opacity\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHorizontalLineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHorizontalLineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-horizontal-line',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoHorizontalLineModule {\r\n}\r\n/** @nocollapse */ DxoHorizontalLineModule.ɵfac = function DxoHorizontalLineModule_Factory(t) { return new (t || DxoHorizontalLineModule)(); };\r\n/** @nocollapse */ DxoHorizontalLineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHorizontalLineModule });\r\n/** @nocollapse */ DxoHorizontalLineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHorizontalLineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHorizontalLineComponent\r\n ],\r\n exports: [\r\n DxoHorizontalLineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHorizontalLineModule, { declarations: [DxoHorizontalLineComponent], exports: [DxoHorizontalLineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHoverStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get hatching() {\r\n return this._getOption('hatching');\r\n }\r\n set hatching(value) {\r\n this._setOption('hatching', value);\r\n }\r\n get highlight() {\r\n return this._getOption('highlight');\r\n }\r\n set highlight(value) {\r\n this._setOption('highlight', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'hoverStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoHoverStyleComponent.ɵfac = function DxoHoverStyleComponent_Factory(t) { return new (t || DxoHoverStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoHoverStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHoverStyleComponent, selectors: [[\"dxo-hover-style\"]], inputs: { border: \"border\", color: \"color\", dashStyle: \"dashStyle\", hatching: \"hatching\", highlight: \"highlight\", width: \"width\", size: \"size\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHoverStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHoverStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-hover-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], hatching: [{\r\n type: Input\r\n }], highlight: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoHoverStyleModule {\r\n}\r\n/** @nocollapse */ DxoHoverStyleModule.ɵfac = function DxoHoverStyleModule_Factory(t) { return new (t || DxoHoverStyleModule)(); };\r\n/** @nocollapse */ DxoHoverStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoHoverStyleModule });\r\n/** @nocollapse */ DxoHoverStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHoverStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoHoverStyleComponent\r\n ],\r\n exports: [\r\n DxoHoverStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoHoverStyleModule, { declarations: [DxoHoverStyleComponent], exports: [DxoHoverStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHtmlEditorImageUpload extends NestedOption {\r\n get fileUploaderOptions() {\r\n return this._getOption('fileUploaderOptions');\r\n }\r\n set fileUploaderOptions(value) {\r\n this._setOption('fileUploaderOptions', value);\r\n }\r\n get fileUploadMode() {\r\n return this._getOption('fileUploadMode');\r\n }\r\n set fileUploadMode(value) {\r\n this._setOption('fileUploadMode', value);\r\n }\r\n get tabs() {\r\n return this._getOption('tabs');\r\n }\r\n set tabs(value) {\r\n this._setOption('tabs', value);\r\n }\r\n get uploadDirectory() {\r\n return this._getOption('uploadDirectory');\r\n }\r\n set uploadDirectory(value) {\r\n this._setOption('uploadDirectory', value);\r\n }\r\n get uploadUrl() {\r\n return this._getOption('uploadUrl');\r\n }\r\n set uploadUrl(value) {\r\n this._setOption('uploadUrl', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoHtmlEditorImageUpload.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoHtmlEditorImageUpload_BaseFactory; return function DxoHtmlEditorImageUpload_Factory(t) { return (ɵDxoHtmlEditorImageUpload_BaseFactory || (ɵDxoHtmlEditorImageUpload_BaseFactory = i0.ɵɵgetInheritedFactory(DxoHtmlEditorImageUpload)))(t || DxoHtmlEditorImageUpload); }; }();\r\n/** @nocollapse */ DxoHtmlEditorImageUpload.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHtmlEditorImageUpload, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHtmlEditorImageUpload_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHtmlEditorImageUpload, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoImageUploadComponent extends DxoHtmlEditorImageUpload {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'imageUpload';\r\n }\r\n get tabsChildren() {\r\n return this._getOption('tabs');\r\n }\r\n set tabsChildren(value) {\r\n this.setChildren('tabs', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoImageUploadComponent.ɵfac = function DxoImageUploadComponent_Factory(t) { return new (t || DxoImageUploadComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoImageUploadComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoImageUploadComponent, selectors: [[\"dxo-image-upload\"]], contentQueries: function DxoImageUploadComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiTabComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabsChildren = _t);\r\n } }, inputs: { fileUploaderOptions: \"fileUploaderOptions\", fileUploadMode: \"fileUploadMode\", tabs: \"tabs\", uploadDirectory: \"uploadDirectory\", uploadUrl: \"uploadUrl\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoImageUploadComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoImageUploadComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-image-upload',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'fileUploaderOptions',\r\n 'fileUploadMode',\r\n 'tabs',\r\n 'uploadDirectory',\r\n 'uploadUrl'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { tabsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiTabComponent)]\r\n }] }); })();\r\nclass DxoImageUploadModule {\r\n}\r\n/** @nocollapse */ DxoImageUploadModule.ɵfac = function DxoImageUploadModule_Factory(t) { return new (t || DxoImageUploadModule)(); };\r\n/** @nocollapse */ DxoImageUploadModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoImageUploadModule });\r\n/** @nocollapse */ DxoImageUploadModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoImageUploadModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoImageUploadComponent\r\n ],\r\n exports: [\r\n DxoImageUploadComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoImageUploadModule, { declarations: [DxoImageUploadComponent], exports: [DxoImageUploadComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoImageComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get url() {\r\n return this._getOption('url');\r\n }\r\n set url(value) {\r\n this._setOption('url', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get _optionPath() {\r\n return 'image';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoImageComponent.ɵfac = function DxoImageComponent_Factory(t) { return new (t || DxoImageComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoImageComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoImageComponent, selectors: [[\"dxo-image\"]], inputs: { height: \"height\", url: \"url\", width: \"width\", location: \"location\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoImageComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoImageComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-image',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { height: [{\r\n type: Input\r\n }], url: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], location: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoImageModule {\r\n}\r\n/** @nocollapse */ DxoImageModule.ɵfac = function DxoImageModule_Factory(t) { return new (t || DxoImageModule)(); };\r\n/** @nocollapse */ DxoImageModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoImageModule });\r\n/** @nocollapse */ DxoImageModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoImageModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoImageComponent\r\n ],\r\n exports: [\r\n DxoImageComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoImageModule, { declarations: [DxoImageComponent], exports: [DxoImageComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoIndentComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get left() {\r\n return this._getOption('left');\r\n }\r\n set left(value) {\r\n this._setOption('left', value);\r\n }\r\n get right() {\r\n return this._getOption('right');\r\n }\r\n set right(value) {\r\n this._setOption('right', value);\r\n }\r\n get _optionPath() {\r\n return 'indent';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoIndentComponent.ɵfac = function DxoIndentComponent_Factory(t) { return new (t || DxoIndentComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoIndentComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoIndentComponent, selectors: [[\"dxo-indent\"]], inputs: { left: \"left\", right: \"right\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoIndentComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoIndentComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-indent',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { left: [{\r\n type: Input\r\n }], right: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoIndentModule {\r\n}\r\n/** @nocollapse */ DxoIndentModule.ɵfac = function DxoIndentModule_Factory(t) { return new (t || DxoIndentModule)(); };\r\n/** @nocollapse */ DxoIndentModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoIndentModule });\r\n/** @nocollapse */ DxoIndentModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoIndentModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoIndentComponent\r\n ],\r\n exports: [\r\n DxoIndentComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoIndentModule, { declarations: [DxoIndentComponent], exports: [DxoIndentComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSortableOptions extends NestedOption {\r\n get allowDropInsideItem() {\r\n return this._getOption('allowDropInsideItem');\r\n }\r\n set allowDropInsideItem(value) {\r\n this._setOption('allowDropInsideItem', value);\r\n }\r\n get allowReordering() {\r\n return this._getOption('allowReordering');\r\n }\r\n set allowReordering(value) {\r\n this._setOption('allowReordering', value);\r\n }\r\n get autoScroll() {\r\n return this._getOption('autoScroll');\r\n }\r\n set autoScroll(value) {\r\n this._setOption('autoScroll', value);\r\n }\r\n get boundary() {\r\n return this._getOption('boundary');\r\n }\r\n set boundary(value) {\r\n this._setOption('boundary', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get cursorOffset() {\r\n return this._getOption('cursorOffset');\r\n }\r\n set cursorOffset(value) {\r\n this._setOption('cursorOffset', value);\r\n }\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get dragDirection() {\r\n return this._getOption('dragDirection');\r\n }\r\n set dragDirection(value) {\r\n this._setOption('dragDirection', value);\r\n }\r\n get dragTemplate() {\r\n return this._getOption('dragTemplate');\r\n }\r\n set dragTemplate(value) {\r\n this._setOption('dragTemplate', value);\r\n }\r\n get dropFeedbackMode() {\r\n return this._getOption('dropFeedbackMode');\r\n }\r\n set dropFeedbackMode(value) {\r\n this._setOption('dropFeedbackMode', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get filter() {\r\n return this._getOption('filter');\r\n }\r\n set filter(value) {\r\n this._setOption('filter', value);\r\n }\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n get handle() {\r\n return this._getOption('handle');\r\n }\r\n set handle(value) {\r\n this._setOption('handle', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get itemOrientation() {\r\n return this._getOption('itemOrientation');\r\n }\r\n set itemOrientation(value) {\r\n this._setOption('itemOrientation', value);\r\n }\r\n get moveItemOnDrop() {\r\n return this._getOption('moveItemOnDrop');\r\n }\r\n set moveItemOnDrop(value) {\r\n this._setOption('moveItemOnDrop', value);\r\n }\r\n get onAdd() {\r\n return this._getOption('onAdd');\r\n }\r\n set onAdd(value) {\r\n this._setOption('onAdd', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onDragChange() {\r\n return this._getOption('onDragChange');\r\n }\r\n set onDragChange(value) {\r\n this._setOption('onDragChange', value);\r\n }\r\n get onDragEnd() {\r\n return this._getOption('onDragEnd');\r\n }\r\n set onDragEnd(value) {\r\n this._setOption('onDragEnd', value);\r\n }\r\n get onDragMove() {\r\n return this._getOption('onDragMove');\r\n }\r\n set onDragMove(value) {\r\n this._setOption('onDragMove', value);\r\n }\r\n get onDragStart() {\r\n return this._getOption('onDragStart');\r\n }\r\n set onDragStart(value) {\r\n this._setOption('onDragStart', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onRemove() {\r\n return this._getOption('onRemove');\r\n }\r\n set onRemove(value) {\r\n this._setOption('onRemove', value);\r\n }\r\n get onReorder() {\r\n return this._getOption('onReorder');\r\n }\r\n set onReorder(value) {\r\n this._setOption('onReorder', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get scrollSensitivity() {\r\n return this._getOption('scrollSensitivity');\r\n }\r\n set scrollSensitivity(value) {\r\n this._setOption('scrollSensitivity', value);\r\n }\r\n get scrollSpeed() {\r\n return this._getOption('scrollSpeed');\r\n }\r\n set scrollSpeed(value) {\r\n this._setOption('scrollSpeed', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoSortableOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoSortableOptions_BaseFactory; return function DxoSortableOptions_Factory(t) { return (ɵDxoSortableOptions_BaseFactory || (ɵDxoSortableOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoSortableOptions)))(t || DxoSortableOptions); }; }();\r\n/** @nocollapse */ DxoSortableOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSortableOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSortableOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSortableOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoItemDraggingComponent extends DxoSortableOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'itemDragging';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoItemDraggingComponent.ɵfac = function DxoItemDraggingComponent_Factory(t) { return new (t || DxoItemDraggingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoItemDraggingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoItemDraggingComponent, selectors: [[\"dxo-item-dragging\"]], inputs: { allowDropInsideItem: \"allowDropInsideItem\", allowReordering: \"allowReordering\", autoScroll: \"autoScroll\", boundary: \"boundary\", container: \"container\", cursorOffset: \"cursorOffset\", data: \"data\", dragDirection: \"dragDirection\", dragTemplate: \"dragTemplate\", dropFeedbackMode: \"dropFeedbackMode\", elementAttr: \"elementAttr\", filter: \"filter\", group: \"group\", handle: \"handle\", height: \"height\", itemOrientation: \"itemOrientation\", moveItemOnDrop: \"moveItemOnDrop\", onAdd: \"onAdd\", onDisposing: \"onDisposing\", onDragChange: \"onDragChange\", onDragEnd: \"onDragEnd\", onDragMove: \"onDragMove\", onDragStart: \"onDragStart\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onRemove: \"onRemove\", onReorder: \"onReorder\", rtlEnabled: \"rtlEnabled\", scrollSensitivity: \"scrollSensitivity\", scrollSpeed: \"scrollSpeed\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoItemDraggingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemDraggingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-item-dragging',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowDropInsideItem',\r\n 'allowReordering',\r\n 'autoScroll',\r\n 'boundary',\r\n 'container',\r\n 'cursorOffset',\r\n 'data',\r\n 'dragDirection',\r\n 'dragTemplate',\r\n 'dropFeedbackMode',\r\n 'elementAttr',\r\n 'filter',\r\n 'group',\r\n 'handle',\r\n 'height',\r\n 'itemOrientation',\r\n 'moveItemOnDrop',\r\n 'onAdd',\r\n 'onDisposing',\r\n 'onDragChange',\r\n 'onDragEnd',\r\n 'onDragMove',\r\n 'onDragStart',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onRemove',\r\n 'onReorder',\r\n 'rtlEnabled',\r\n 'scrollSensitivity',\r\n 'scrollSpeed',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoItemDraggingModule {\r\n}\r\n/** @nocollapse */ DxoItemDraggingModule.ɵfac = function DxoItemDraggingModule_Factory(t) { return new (t || DxoItemDraggingModule)(); };\r\n/** @nocollapse */ DxoItemDraggingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoItemDraggingModule });\r\n/** @nocollapse */ DxoItemDraggingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemDraggingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoItemDraggingComponent\r\n ],\r\n exports: [\r\n DxoItemDraggingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoItemDraggingModule, { declarations: [DxoItemDraggingComponent], exports: [DxoItemDraggingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoItemTextFormatComponent extends DxoFormat {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'itemTextFormat';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoItemTextFormatComponent.ɵfac = function DxoItemTextFormatComponent_Factory(t) { return new (t || DxoItemTextFormatComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoItemTextFormatComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoItemTextFormatComponent, selectors: [[\"dxo-item-text-format\"]], inputs: { currency: \"currency\", formatter: \"formatter\", parser: \"parser\", precision: \"precision\", type: \"type\", useCurrencyAccountingStyle: \"useCurrencyAccountingStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoItemTextFormatComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemTextFormatComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-item-text-format',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'currency',\r\n 'formatter',\r\n 'parser',\r\n 'precision',\r\n 'type',\r\n 'useCurrencyAccountingStyle'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoItemTextFormatModule {\r\n}\r\n/** @nocollapse */ DxoItemTextFormatModule.ɵfac = function DxoItemTextFormatModule_Factory(t) { return new (t || DxoItemTextFormatModule)(); };\r\n/** @nocollapse */ DxoItemTextFormatModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoItemTextFormatModule });\r\n/** @nocollapse */ DxoItemTextFormatModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemTextFormatModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoItemTextFormatComponent\r\n ],\r\n exports: [\r\n DxoItemTextFormatComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoItemTextFormatModule, { declarations: [DxoItemTextFormatComponent], exports: [DxoItemTextFormatComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoItemViewComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get details() {\r\n return this._getOption('details');\r\n }\r\n set details(value) {\r\n this._setOption('details', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get showFolders() {\r\n return this._getOption('showFolders');\r\n }\r\n set showFolders(value) {\r\n this._setOption('showFolders', value);\r\n }\r\n get showParentFolder() {\r\n return this._getOption('showParentFolder');\r\n }\r\n set showParentFolder(value) {\r\n this._setOption('showParentFolder', value);\r\n }\r\n get _optionPath() {\r\n return 'itemView';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoItemViewComponent.ɵfac = function DxoItemViewComponent_Factory(t) { return new (t || DxoItemViewComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoItemViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoItemViewComponent, selectors: [[\"dxo-item-view\"]], inputs: { details: \"details\", mode: \"mode\", showFolders: \"showFolders\", showParentFolder: \"showParentFolder\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoItemViewComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-item-view',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { details: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], showFolders: [{\r\n type: Input\r\n }], showParentFolder: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoItemViewModule {\r\n}\r\n/** @nocollapse */ DxoItemViewModule.ɵfac = function DxoItemViewModule_Factory(t) { return new (t || DxoItemViewModule)(); };\r\n/** @nocollapse */ DxoItemViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoItemViewModule });\r\n/** @nocollapse */ DxoItemViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoItemViewComponent\r\n ],\r\n exports: [\r\n DxoItemViewComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoItemViewModule, { declarations: [DxoItemViewComponent], exports: [DxoItemViewComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoItemComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get _optionPath() {\r\n return 'item';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoItemComponent.ɵfac = function DxoItemComponent_Factory(t) { return new (t || DxoItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoItemComponent, selectors: [[\"dxo-item\"]], inputs: { border: \"border\", hoverStyle: \"hoverStyle\", selectionStyle: \"selectionStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], selectionStyle: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoItemModule {\r\n}\r\n/** @nocollapse */ DxoItemModule.ɵfac = function DxoItemModule_Factory(t) { return new (t || DxoItemModule)(); };\r\n/** @nocollapse */ DxoItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoItemModule });\r\n/** @nocollapse */ DxoItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoItemComponent\r\n ],\r\n exports: [\r\n DxoItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoItemModule, { declarations: [DxoItemComponent], exports: [DxoItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoKeyboardNavigationComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get editOnKeyPress() {\r\n return this._getOption('editOnKeyPress');\r\n }\r\n set editOnKeyPress(value) {\r\n this._setOption('editOnKeyPress', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get enterKeyAction() {\r\n return this._getOption('enterKeyAction');\r\n }\r\n set enterKeyAction(value) {\r\n this._setOption('enterKeyAction', value);\r\n }\r\n get enterKeyDirection() {\r\n return this._getOption('enterKeyDirection');\r\n }\r\n set enterKeyDirection(value) {\r\n this._setOption('enterKeyDirection', value);\r\n }\r\n get _optionPath() {\r\n return 'keyboardNavigation';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoKeyboardNavigationComponent.ɵfac = function DxoKeyboardNavigationComponent_Factory(t) { return new (t || DxoKeyboardNavigationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoKeyboardNavigationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoKeyboardNavigationComponent, selectors: [[\"dxo-keyboard-navigation\"]], inputs: { editOnKeyPress: \"editOnKeyPress\", enabled: \"enabled\", enterKeyAction: \"enterKeyAction\", enterKeyDirection: \"enterKeyDirection\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoKeyboardNavigationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoKeyboardNavigationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-keyboard-navigation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { editOnKeyPress: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], enterKeyAction: [{\r\n type: Input\r\n }], enterKeyDirection: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoKeyboardNavigationModule {\r\n}\r\n/** @nocollapse */ DxoKeyboardNavigationModule.ɵfac = function DxoKeyboardNavigationModule_Factory(t) { return new (t || DxoKeyboardNavigationModule)(); };\r\n/** @nocollapse */ DxoKeyboardNavigationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoKeyboardNavigationModule });\r\n/** @nocollapse */ DxoKeyboardNavigationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoKeyboardNavigationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoKeyboardNavigationComponent\r\n ],\r\n exports: [\r\n DxoKeyboardNavigationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoKeyboardNavigationModule, { declarations: [DxoKeyboardNavigationComponent], exports: [DxoKeyboardNavigationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLabelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get connectorColor() {\r\n return this._getOption('connectorColor');\r\n }\r\n set connectorColor(value) {\r\n this._setOption('connectorColor', value);\r\n }\r\n get connectorWidth() {\r\n return this._getOption('connectorWidth');\r\n }\r\n set connectorWidth(value) {\r\n this._setOption('connectorWidth', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get indent() {\r\n return this._getOption('indent');\r\n }\r\n set indent(value) {\r\n this._setOption('indent', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get alignment() {\r\n return this._getOption('alignment');\r\n }\r\n set alignment(value) {\r\n this._setOption('alignment', value);\r\n }\r\n get customizeHint() {\r\n return this._getOption('customizeHint');\r\n }\r\n set customizeHint(value) {\r\n this._setOption('customizeHint', value);\r\n }\r\n get displayMode() {\r\n return this._getOption('displayMode');\r\n }\r\n set displayMode(value) {\r\n this._setOption('displayMode', value);\r\n }\r\n get indentFromAxis() {\r\n return this._getOption('indentFromAxis');\r\n }\r\n set indentFromAxis(value) {\r\n this._setOption('indentFromAxis', value);\r\n }\r\n get overlappingBehavior() {\r\n return this._getOption('overlappingBehavior');\r\n }\r\n set overlappingBehavior(value) {\r\n this._setOption('overlappingBehavior', value);\r\n }\r\n get rotationAngle() {\r\n return this._getOption('rotationAngle');\r\n }\r\n set rotationAngle(value) {\r\n this._setOption('rotationAngle', value);\r\n }\r\n get staggeringSpacing() {\r\n return this._getOption('staggeringSpacing');\r\n }\r\n set staggeringSpacing(value) {\r\n this._setOption('staggeringSpacing', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get textOverflow() {\r\n return this._getOption('textOverflow');\r\n }\r\n set textOverflow(value) {\r\n this._setOption('textOverflow', value);\r\n }\r\n get wordWrap() {\r\n return this._getOption('wordWrap');\r\n }\r\n set wordWrap(value) {\r\n this._setOption('wordWrap', value);\r\n }\r\n get argumentFormat() {\r\n return this._getOption('argumentFormat');\r\n }\r\n set argumentFormat(value) {\r\n this._setOption('argumentFormat', value);\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get connector() {\r\n return this._getOption('connector');\r\n }\r\n set connector(value) {\r\n this._setOption('connector', value);\r\n }\r\n get displayFormat() {\r\n return this._getOption('displayFormat');\r\n }\r\n set displayFormat(value) {\r\n this._setOption('displayFormat', value);\r\n }\r\n get horizontalOffset() {\r\n return this._getOption('horizontalOffset');\r\n }\r\n set horizontalOffset(value) {\r\n this._setOption('horizontalOffset', value);\r\n }\r\n get showForZeroValues() {\r\n return this._getOption('showForZeroValues');\r\n }\r\n set showForZeroValues(value) {\r\n this._setOption('showForZeroValues', value);\r\n }\r\n get verticalOffset() {\r\n return this._getOption('verticalOffset');\r\n }\r\n set verticalOffset(value) {\r\n this._setOption('verticalOffset', value);\r\n }\r\n get hideFirstOrLast() {\r\n return this._getOption('hideFirstOrLast');\r\n }\r\n set hideFirstOrLast(value) {\r\n this._setOption('hideFirstOrLast', value);\r\n }\r\n get indentFromTick() {\r\n return this._getOption('indentFromTick');\r\n }\r\n set indentFromTick(value) {\r\n this._setOption('indentFromTick', value);\r\n }\r\n get useRangeColors() {\r\n return this._getOption('useRangeColors');\r\n }\r\n set useRangeColors(value) {\r\n this._setOption('useRangeColors', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get showColon() {\r\n return this._getOption('showColon');\r\n }\r\n set showColon(value) {\r\n this._setOption('showColon', value);\r\n }\r\n get radialOffset() {\r\n return this._getOption('radialOffset');\r\n }\r\n set radialOffset(value) {\r\n this._setOption('radialOffset', value);\r\n }\r\n get topIndent() {\r\n return this._getOption('topIndent');\r\n }\r\n set topIndent(value) {\r\n this._setOption('topIndent', value);\r\n }\r\n get shadow() {\r\n return this._getOption('shadow');\r\n }\r\n set shadow(value) {\r\n this._setOption('shadow', value);\r\n }\r\n get useNodeColors() {\r\n return this._getOption('useNodeColors');\r\n }\r\n set useNodeColors(value) {\r\n this._setOption('useNodeColors', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get _optionPath() {\r\n return 'label';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLabelComponent.ɵfac = function DxoLabelComponent_Factory(t) { return new (t || DxoLabelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLabelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLabelComponent, selectors: [[\"dxo-label\"]], inputs: { connectorColor: \"connectorColor\", connectorWidth: \"connectorWidth\", customizeText: \"customizeText\", font: \"font\", format: \"format\", indent: \"indent\", visible: \"visible\", horizontalAlignment: \"horizontalAlignment\", position: \"position\", text: \"text\", verticalAlignment: \"verticalAlignment\", alignment: \"alignment\", customizeHint: \"customizeHint\", displayMode: \"displayMode\", indentFromAxis: \"indentFromAxis\", overlappingBehavior: \"overlappingBehavior\", rotationAngle: \"rotationAngle\", staggeringSpacing: \"staggeringSpacing\", template: \"template\", textOverflow: \"textOverflow\", wordWrap: \"wordWrap\", argumentFormat: \"argumentFormat\", backgroundColor: \"backgroundColor\", border: \"border\", connector: \"connector\", displayFormat: \"displayFormat\", horizontalOffset: \"horizontalOffset\", showForZeroValues: \"showForZeroValues\", verticalOffset: \"verticalOffset\", hideFirstOrLast: \"hideFirstOrLast\", indentFromTick: \"indentFromTick\", useRangeColors: \"useRangeColors\", location: \"location\", showColon: \"showColon\", radialOffset: \"radialOffset\", topIndent: \"topIndent\", shadow: \"shadow\", useNodeColors: \"useNodeColors\", dataField: \"dataField\", enabled: \"enabled\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLabelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLabelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-label',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { connectorColor: [{\r\n type: Input\r\n }], connectorWidth: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], format: [{\r\n type: Input\r\n }], indent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], horizontalAlignment: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], verticalAlignment: [{\r\n type: Input\r\n }], alignment: [{\r\n type: Input\r\n }], customizeHint: [{\r\n type: Input\r\n }], displayMode: [{\r\n type: Input\r\n }], indentFromAxis: [{\r\n type: Input\r\n }], overlappingBehavior: [{\r\n type: Input\r\n }], rotationAngle: [{\r\n type: Input\r\n }], staggeringSpacing: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }], textOverflow: [{\r\n type: Input\r\n }], wordWrap: [{\r\n type: Input\r\n }], argumentFormat: [{\r\n type: Input\r\n }], backgroundColor: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }], connector: [{\r\n type: Input\r\n }], displayFormat: [{\r\n type: Input\r\n }], horizontalOffset: [{\r\n type: Input\r\n }], showForZeroValues: [{\r\n type: Input\r\n }], verticalOffset: [{\r\n type: Input\r\n }], hideFirstOrLast: [{\r\n type: Input\r\n }], indentFromTick: [{\r\n type: Input\r\n }], useRangeColors: [{\r\n type: Input\r\n }], location: [{\r\n type: Input\r\n }], showColon: [{\r\n type: Input\r\n }], radialOffset: [{\r\n type: Input\r\n }], topIndent: [{\r\n type: Input\r\n }], shadow: [{\r\n type: Input\r\n }], useNodeColors: [{\r\n type: Input\r\n }], dataField: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoLabelModule {\r\n}\r\n/** @nocollapse */ DxoLabelModule.ɵfac = function DxoLabelModule_Factory(t) { return new (t || DxoLabelModule)(); };\r\n/** @nocollapse */ DxoLabelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLabelModule });\r\n/** @nocollapse */ DxoLabelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLabelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLabelComponent\r\n ],\r\n exports: [\r\n DxoLabelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLabelModule, { declarations: [DxoLabelComponent], exports: [DxoLabelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiLayerComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get borderColor() {\r\n return this._getOption('borderColor');\r\n }\r\n set borderColor(value) {\r\n this._setOption('borderColor', value);\r\n }\r\n get borderWidth() {\r\n return this._getOption('borderWidth');\r\n }\r\n set borderWidth(value) {\r\n this._setOption('borderWidth', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get colorGroupingField() {\r\n return this._getOption('colorGroupingField');\r\n }\r\n set colorGroupingField(value) {\r\n this._setOption('colorGroupingField', value);\r\n }\r\n get colorGroups() {\r\n return this._getOption('colorGroups');\r\n }\r\n set colorGroups(value) {\r\n this._setOption('colorGroups', value);\r\n }\r\n get customize() {\r\n return this._getOption('customize');\r\n }\r\n set customize(value) {\r\n this._setOption('customize', value);\r\n }\r\n get dataField() {\r\n return this._getOption('dataField');\r\n }\r\n set dataField(value) {\r\n this._setOption('dataField', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get elementType() {\r\n return this._getOption('elementType');\r\n }\r\n set elementType(value) {\r\n this._setOption('elementType', value);\r\n }\r\n get hoveredBorderColor() {\r\n return this._getOption('hoveredBorderColor');\r\n }\r\n set hoveredBorderColor(value) {\r\n this._setOption('hoveredBorderColor', value);\r\n }\r\n get hoveredBorderWidth() {\r\n return this._getOption('hoveredBorderWidth');\r\n }\r\n set hoveredBorderWidth(value) {\r\n this._setOption('hoveredBorderWidth', value);\r\n }\r\n get hoveredColor() {\r\n return this._getOption('hoveredColor');\r\n }\r\n set hoveredColor(value) {\r\n this._setOption('hoveredColor', value);\r\n }\r\n get hoverEnabled() {\r\n return this._getOption('hoverEnabled');\r\n }\r\n set hoverEnabled(value) {\r\n this._setOption('hoverEnabled', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get maxSize() {\r\n return this._getOption('maxSize');\r\n }\r\n set maxSize(value) {\r\n this._setOption('maxSize', value);\r\n }\r\n get minSize() {\r\n return this._getOption('minSize');\r\n }\r\n set minSize(value) {\r\n this._setOption('minSize', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n get paletteIndex() {\r\n return this._getOption('paletteIndex');\r\n }\r\n set paletteIndex(value) {\r\n this._setOption('paletteIndex', value);\r\n }\r\n get paletteSize() {\r\n return this._getOption('paletteSize');\r\n }\r\n set paletteSize(value) {\r\n this._setOption('paletteSize', value);\r\n }\r\n get selectedBorderColor() {\r\n return this._getOption('selectedBorderColor');\r\n }\r\n set selectedBorderColor(value) {\r\n this._setOption('selectedBorderColor', value);\r\n }\r\n get selectedBorderWidth() {\r\n return this._getOption('selectedBorderWidth');\r\n }\r\n set selectedBorderWidth(value) {\r\n this._setOption('selectedBorderWidth', value);\r\n }\r\n get selectedColor() {\r\n return this._getOption('selectedColor');\r\n }\r\n set selectedColor(value) {\r\n this._setOption('selectedColor', value);\r\n }\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get sizeGroupingField() {\r\n return this._getOption('sizeGroupingField');\r\n }\r\n set sizeGroupingField(value) {\r\n this._setOption('sizeGroupingField', value);\r\n }\r\n get sizeGroups() {\r\n return this._getOption('sizeGroups');\r\n }\r\n set sizeGroups(value) {\r\n this._setOption('sizeGroups', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'layers';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiLayerComponent.ɵfac = function DxiLayerComponent_Factory(t) { return new (t || DxiLayerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiLayerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiLayerComponent, selectors: [[\"dxi-layer\"]], inputs: { borderColor: \"borderColor\", borderWidth: \"borderWidth\", color: \"color\", colorGroupingField: \"colorGroupingField\", colorGroups: \"colorGroups\", customize: \"customize\", dataField: \"dataField\", dataSource: \"dataSource\", elementType: \"elementType\", hoveredBorderColor: \"hoveredBorderColor\", hoveredBorderWidth: \"hoveredBorderWidth\", hoveredColor: \"hoveredColor\", hoverEnabled: \"hoverEnabled\", label: \"label\", maxSize: \"maxSize\", minSize: \"minSize\", name: \"name\", opacity: \"opacity\", palette: \"palette\", paletteIndex: \"paletteIndex\", paletteSize: \"paletteSize\", selectedBorderColor: \"selectedBorderColor\", selectedBorderWidth: \"selectedBorderWidth\", selectedColor: \"selectedColor\", selectionMode: \"selectionMode\", size: \"size\", sizeGroupingField: \"sizeGroupingField\", sizeGroups: \"sizeGroups\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiLayerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLayerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-layer',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { borderColor: [{\r\n type: Input\r\n }], borderWidth: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], colorGroupingField: [{\r\n type: Input\r\n }], colorGroups: [{\r\n type: Input\r\n }], customize: [{\r\n type: Input\r\n }], dataField: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], elementType: [{\r\n type: Input\r\n }], hoveredBorderColor: [{\r\n type: Input\r\n }], hoveredBorderWidth: [{\r\n type: Input\r\n }], hoveredColor: [{\r\n type: Input\r\n }], hoverEnabled: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], maxSize: [{\r\n type: Input\r\n }], minSize: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteIndex: [{\r\n type: Input\r\n }], paletteSize: [{\r\n type: Input\r\n }], selectedBorderColor: [{\r\n type: Input\r\n }], selectedBorderWidth: [{\r\n type: Input\r\n }], selectedColor: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], sizeGroupingField: [{\r\n type: Input\r\n }], sizeGroups: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiLayerModule {\r\n}\r\n/** @nocollapse */ DxiLayerModule.ɵfac = function DxiLayerModule_Factory(t) { return new (t || DxiLayerModule)(); };\r\n/** @nocollapse */ DxiLayerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiLayerModule });\r\n/** @nocollapse */ DxiLayerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLayerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiLayerComponent\r\n ],\r\n exports: [\r\n DxiLayerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiLayerModule, { declarations: [DxiLayerComponent], exports: [DxiLayerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiLegendComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get columnCount() {\r\n return this._getOption('columnCount');\r\n }\r\n set columnCount(value) {\r\n this._setOption('columnCount', value);\r\n }\r\n get columnItemSpacing() {\r\n return this._getOption('columnItemSpacing');\r\n }\r\n set columnItemSpacing(value) {\r\n this._setOption('columnItemSpacing', value);\r\n }\r\n get customizeHint() {\r\n return this._getOption('customizeHint');\r\n }\r\n set customizeHint(value) {\r\n this._setOption('customizeHint', value);\r\n }\r\n get customizeItems() {\r\n return this._getOption('customizeItems');\r\n }\r\n set customizeItems(value) {\r\n this._setOption('customizeItems', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get itemsAlignment() {\r\n return this._getOption('itemsAlignment');\r\n }\r\n set itemsAlignment(value) {\r\n this._setOption('itemsAlignment', value);\r\n }\r\n get itemTextPosition() {\r\n return this._getOption('itemTextPosition');\r\n }\r\n set itemTextPosition(value) {\r\n this._setOption('itemTextPosition', value);\r\n }\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n get markerColor() {\r\n return this._getOption('markerColor');\r\n }\r\n set markerColor(value) {\r\n this._setOption('markerColor', value);\r\n }\r\n get markerShape() {\r\n return this._getOption('markerShape');\r\n }\r\n set markerShape(value) {\r\n this._setOption('markerShape', value);\r\n }\r\n get markerSize() {\r\n return this._getOption('markerSize');\r\n }\r\n set markerSize(value) {\r\n this._setOption('markerSize', value);\r\n }\r\n get markerTemplate() {\r\n return this._getOption('markerTemplate');\r\n }\r\n set markerTemplate(value) {\r\n this._setOption('markerTemplate', value);\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get rowCount() {\r\n return this._getOption('rowCount');\r\n }\r\n set rowCount(value) {\r\n this._setOption('rowCount', value);\r\n }\r\n get rowItemSpacing() {\r\n return this._getOption('rowItemSpacing');\r\n }\r\n set rowItemSpacing(value) {\r\n this._setOption('rowItemSpacing', value);\r\n }\r\n get source() {\r\n return this._getOption('source');\r\n }\r\n set source(value) {\r\n this._setOption('source', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'legends';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiLegendComponent.ɵfac = function DxiLegendComponent_Factory(t) { return new (t || DxiLegendComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiLegendComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiLegendComponent, selectors: [[\"dxi-legend\"]], inputs: { backgroundColor: \"backgroundColor\", border: \"border\", columnCount: \"columnCount\", columnItemSpacing: \"columnItemSpacing\", customizeHint: \"customizeHint\", customizeItems: \"customizeItems\", customizeText: \"customizeText\", font: \"font\", horizontalAlignment: \"horizontalAlignment\", itemsAlignment: \"itemsAlignment\", itemTextPosition: \"itemTextPosition\", margin: \"margin\", markerColor: \"markerColor\", markerShape: \"markerShape\", markerSize: \"markerSize\", markerTemplate: \"markerTemplate\", orientation: \"orientation\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", rowCount: \"rowCount\", rowItemSpacing: \"rowItemSpacing\", source: \"source\", title: \"title\", verticalAlignment: \"verticalAlignment\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiLegendComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLegendComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-legend',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }], columnCount: [{\r\n type: Input\r\n }], columnItemSpacing: [{\r\n type: Input\r\n }], customizeHint: [{\r\n type: Input\r\n }], customizeItems: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], horizontalAlignment: [{\r\n type: Input\r\n }], itemsAlignment: [{\r\n type: Input\r\n }], itemTextPosition: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], markerColor: [{\r\n type: Input\r\n }], markerShape: [{\r\n type: Input\r\n }], markerSize: [{\r\n type: Input\r\n }], markerTemplate: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], rowCount: [{\r\n type: Input\r\n }], rowItemSpacing: [{\r\n type: Input\r\n }], source: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], verticalAlignment: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiLegendModule {\r\n}\r\n/** @nocollapse */ DxiLegendModule.ɵfac = function DxiLegendModule_Factory(t) { return new (t || DxiLegendModule)(); };\r\n/** @nocollapse */ DxiLegendModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiLegendModule });\r\n/** @nocollapse */ DxiLegendModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiLegendModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiLegendComponent\r\n ],\r\n exports: [\r\n DxiLegendComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiLegendModule, { declarations: [DxiLegendComponent], exports: [DxiLegendComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLegendComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get columnCount() {\r\n return this._getOption('columnCount');\r\n }\r\n set columnCount(value) {\r\n this._setOption('columnCount', value);\r\n }\r\n get columnItemSpacing() {\r\n return this._getOption('columnItemSpacing');\r\n }\r\n set columnItemSpacing(value) {\r\n this._setOption('columnItemSpacing', value);\r\n }\r\n get customizeHint() {\r\n return this._getOption('customizeHint');\r\n }\r\n set customizeHint(value) {\r\n this._setOption('customizeHint', value);\r\n }\r\n get customizeItems() {\r\n return this._getOption('customizeItems');\r\n }\r\n set customizeItems(value) {\r\n this._setOption('customizeItems', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get itemsAlignment() {\r\n return this._getOption('itemsAlignment');\r\n }\r\n set itemsAlignment(value) {\r\n this._setOption('itemsAlignment', value);\r\n }\r\n get itemTextFormat() {\r\n return this._getOption('itemTextFormat');\r\n }\r\n set itemTextFormat(value) {\r\n this._setOption('itemTextFormat', value);\r\n }\r\n get itemTextPosition() {\r\n return this._getOption('itemTextPosition');\r\n }\r\n set itemTextPosition(value) {\r\n this._setOption('itemTextPosition', value);\r\n }\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n get markerSize() {\r\n return this._getOption('markerSize');\r\n }\r\n set markerSize(value) {\r\n this._setOption('markerSize', value);\r\n }\r\n get markerTemplate() {\r\n return this._getOption('markerTemplate');\r\n }\r\n set markerTemplate(value) {\r\n this._setOption('markerTemplate', value);\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get rowCount() {\r\n return this._getOption('rowCount');\r\n }\r\n set rowCount(value) {\r\n this._setOption('rowCount', value);\r\n }\r\n get rowItemSpacing() {\r\n return this._getOption('rowItemSpacing');\r\n }\r\n set rowItemSpacing(value) {\r\n this._setOption('rowItemSpacing', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get hoverMode() {\r\n return this._getOption('hoverMode');\r\n }\r\n set hoverMode(value) {\r\n this._setOption('hoverMode', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get _optionPath() {\r\n return 'legend';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLegendComponent.ɵfac = function DxoLegendComponent_Factory(t) { return new (t || DxoLegendComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLegendComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLegendComponent, selectors: [[\"dxo-legend\"]], inputs: { backgroundColor: \"backgroundColor\", border: \"border\", columnCount: \"columnCount\", columnItemSpacing: \"columnItemSpacing\", customizeHint: \"customizeHint\", customizeItems: \"customizeItems\", customizeText: \"customizeText\", font: \"font\", horizontalAlignment: \"horizontalAlignment\", itemsAlignment: \"itemsAlignment\", itemTextFormat: \"itemTextFormat\", itemTextPosition: \"itemTextPosition\", margin: \"margin\", markerSize: \"markerSize\", markerTemplate: \"markerTemplate\", orientation: \"orientation\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", rowCount: \"rowCount\", rowItemSpacing: \"rowItemSpacing\", title: \"title\", verticalAlignment: \"verticalAlignment\", visible: \"visible\", hoverMode: \"hoverMode\", position: \"position\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLegendComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLegendComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-legend',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }], columnCount: [{\r\n type: Input\r\n }], columnItemSpacing: [{\r\n type: Input\r\n }], customizeHint: [{\r\n type: Input\r\n }], customizeItems: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], horizontalAlignment: [{\r\n type: Input\r\n }], itemsAlignment: [{\r\n type: Input\r\n }], itemTextFormat: [{\r\n type: Input\r\n }], itemTextPosition: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], markerSize: [{\r\n type: Input\r\n }], markerTemplate: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], rowCount: [{\r\n type: Input\r\n }], rowItemSpacing: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], verticalAlignment: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], hoverMode: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoLegendModule {\r\n}\r\n/** @nocollapse */ DxoLegendModule.ɵfac = function DxoLegendModule_Factory(t) { return new (t || DxoLegendModule)(); };\r\n/** @nocollapse */ DxoLegendModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLegendModule });\r\n/** @nocollapse */ DxoLegendModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLegendModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLegendComponent\r\n ],\r\n exports: [\r\n DxoLegendComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLegendModule, { declarations: [DxoLegendComponent], exports: [DxoLegendComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'line';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLineComponent.ɵfac = function DxoLineComponent_Factory(t) { return new (t || DxoLineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLineComponent, selectors: [[\"dxo-line\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-line',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoLineModule {\r\n}\r\n/** @nocollapse */ DxoLineModule.ɵfac = function DxoLineModule_Factory(t) { return new (t || DxoLineModule)(); };\r\n/** @nocollapse */ DxoLineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLineModule });\r\n/** @nocollapse */ DxoLineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLineComponent\r\n ],\r\n exports: [\r\n DxoLineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLineModule, { declarations: [DxoLineComponent], exports: [DxoLineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLinkComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get colorMode() {\r\n return this._getOption('colorMode');\r\n }\r\n set colorMode(value) {\r\n this._setOption('colorMode', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'link';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLinkComponent.ɵfac = function DxoLinkComponent_Factory(t) { return new (t || DxoLinkComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLinkComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLinkComponent, selectors: [[\"dxo-link\"]], inputs: { border: \"border\", color: \"color\", colorMode: \"colorMode\", hoverStyle: \"hoverStyle\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLinkComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLinkComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-link',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], colorMode: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoLinkModule {\r\n}\r\n/** @nocollapse */ DxoLinkModule.ɵfac = function DxoLinkModule_Factory(t) { return new (t || DxoLinkModule)(); };\r\n/** @nocollapse */ DxoLinkModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLinkModule });\r\n/** @nocollapse */ DxoLinkModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLinkModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLinkComponent\r\n ],\r\n exports: [\r\n DxoLinkComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLinkModule, { declarations: [DxoLinkComponent], exports: [DxoLinkComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLoadPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get indicatorSrc() {\r\n return this._getOption('indicatorSrc');\r\n }\r\n set indicatorSrc(value) {\r\n this._setOption('indicatorSrc', value);\r\n }\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n get showIndicator() {\r\n return this._getOption('showIndicator');\r\n }\r\n set showIndicator(value) {\r\n this._setOption('showIndicator', value);\r\n }\r\n get showPane() {\r\n return this._getOption('showPane');\r\n }\r\n set showPane(value) {\r\n this._setOption('showPane', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'loadPanel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLoadPanelComponent.ɵfac = function DxoLoadPanelComponent_Factory(t) { return new (t || DxoLoadPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLoadPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLoadPanelComponent, selectors: [[\"dxo-load-panel\"]], inputs: { enabled: \"enabled\", height: \"height\", indicatorSrc: \"indicatorSrc\", shading: \"shading\", shadingColor: \"shadingColor\", showIndicator: \"showIndicator\", showPane: \"showPane\", text: \"text\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLoadPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLoadPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-load-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { enabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], indicatorSrc: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], showIndicator: [{\r\n type: Input\r\n }], showPane: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoLoadPanelModule {\r\n}\r\n/** @nocollapse */ DxoLoadPanelModule.ɵfac = function DxoLoadPanelModule_Factory(t) { return new (t || DxoLoadPanelModule)(); };\r\n/** @nocollapse */ DxoLoadPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLoadPanelModule });\r\n/** @nocollapse */ DxoLoadPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLoadPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLoadPanelComponent\r\n ],\r\n exports: [\r\n DxoLoadPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLoadPanelModule, { declarations: [DxoLoadPanelComponent], exports: [DxoLoadPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLoadingIndicatorComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'showChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get show() {\r\n return this._getOption('show');\r\n }\r\n set show(value) {\r\n this._setOption('show', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get _optionPath() {\r\n return 'loadingIndicator';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLoadingIndicatorComponent.ɵfac = function DxoLoadingIndicatorComponent_Factory(t) { return new (t || DxoLoadingIndicatorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLoadingIndicatorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLoadingIndicatorComponent, selectors: [[\"dxo-loading-indicator\"]], inputs: { backgroundColor: \"backgroundColor\", font: \"font\", show: \"show\", text: \"text\", enabled: \"enabled\" }, outputs: { showChange: \"showChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLoadingIndicatorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLoadingIndicatorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-loading-indicator',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], show: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], showChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoLoadingIndicatorModule {\r\n}\r\n/** @nocollapse */ DxoLoadingIndicatorModule.ɵfac = function DxoLoadingIndicatorModule_Factory(t) { return new (t || DxoLoadingIndicatorModule)(); };\r\n/** @nocollapse */ DxoLoadingIndicatorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLoadingIndicatorModule });\r\n/** @nocollapse */ DxoLoadingIndicatorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLoadingIndicatorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLoadingIndicatorComponent\r\n ],\r\n exports: [\r\n DxoLoadingIndicatorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLoadingIndicatorModule, { declarations: [DxoLoadingIndicatorComponent], exports: [DxoLoadingIndicatorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoLookupComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowClearing() {\r\n return this._getOption('allowClearing');\r\n }\r\n set allowClearing(value) {\r\n this._setOption('allowClearing', value);\r\n }\r\n get calculateCellValue() {\r\n return this._getOption('calculateCellValue');\r\n }\r\n set calculateCellValue(value) {\r\n this._setOption('calculateCellValue', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'lookup';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoLookupComponent.ɵfac = function DxoLookupComponent_Factory(t) { return new (t || DxoLookupComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoLookupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoLookupComponent, selectors: [[\"dxo-lookup\"]], inputs: { allowClearing: \"allowClearing\", calculateCellValue: \"calculateCellValue\", dataSource: \"dataSource\", displayExpr: \"displayExpr\", valueExpr: \"valueExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoLookupComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLookupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-lookup',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowClearing: [{\r\n type: Input\r\n }], calculateCellValue: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoLookupModule {\r\n}\r\n/** @nocollapse */ DxoLookupModule.ɵfac = function DxoLookupModule_Factory(t) { return new (t || DxoLookupModule)(); };\r\n/** @nocollapse */ DxoLookupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoLookupModule });\r\n/** @nocollapse */ DxoLookupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoLookupModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoLookupComponent\r\n ],\r\n exports: [\r\n DxoLookupComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoLookupModule, { declarations: [DxoLookupComponent], exports: [DxoLookupComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMainToolbarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'mainToolbar';\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMainToolbarComponent.ɵfac = function DxoMainToolbarComponent_Factory(t) { return new (t || DxoMainToolbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMainToolbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMainToolbarComponent, selectors: [[\"dxo-main-toolbar\"]], contentQueries: function DxoMainToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n } }, inputs: { commands: \"commands\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMainToolbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMainToolbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-main-toolbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { commands: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }] }); })();\r\nclass DxoMainToolbarModule {\r\n}\r\n/** @nocollapse */ DxoMainToolbarModule.ɵfac = function DxoMainToolbarModule_Factory(t) { return new (t || DxoMainToolbarModule)(); };\r\n/** @nocollapse */ DxoMainToolbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMainToolbarModule });\r\n/** @nocollapse */ DxoMainToolbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMainToolbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMainToolbarComponent\r\n ],\r\n exports: [\r\n DxoMainToolbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMainToolbarModule, { declarations: [DxoMainToolbarComponent], exports: [DxoMainToolbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMarginComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get bottom() {\r\n return this._getOption('bottom');\r\n }\r\n set bottom(value) {\r\n this._setOption('bottom', value);\r\n }\r\n get left() {\r\n return this._getOption('left');\r\n }\r\n set left(value) {\r\n this._setOption('left', value);\r\n }\r\n get right() {\r\n return this._getOption('right');\r\n }\r\n set right(value) {\r\n this._setOption('right', value);\r\n }\r\n get top() {\r\n return this._getOption('top');\r\n }\r\n set top(value) {\r\n this._setOption('top', value);\r\n }\r\n get _optionPath() {\r\n return 'margin';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMarginComponent.ɵfac = function DxoMarginComponent_Factory(t) { return new (t || DxoMarginComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMarginComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMarginComponent, selectors: [[\"dxo-margin\"]], inputs: { bottom: \"bottom\", left: \"left\", right: \"right\", top: \"top\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMarginComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMarginComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-margin',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { bottom: [{\r\n type: Input\r\n }], left: [{\r\n type: Input\r\n }], right: [{\r\n type: Input\r\n }], top: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMarginModule {\r\n}\r\n/** @nocollapse */ DxoMarginModule.ɵfac = function DxoMarginModule_Factory(t) { return new (t || DxoMarginModule)(); };\r\n/** @nocollapse */ DxoMarginModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMarginModule });\r\n/** @nocollapse */ DxoMarginModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMarginModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMarginComponent\r\n ],\r\n exports: [\r\n DxoMarginComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMarginModule, { declarations: [DxoMarginComponent], exports: [DxoMarginComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiMarkerComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get iconSrc() {\r\n return this._getOption('iconSrc');\r\n }\r\n set iconSrc(value) {\r\n this._setOption('iconSrc', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get onClick() {\r\n return this._getOption('onClick');\r\n }\r\n set onClick(value) {\r\n this._setOption('onClick', value);\r\n }\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n get _optionPath() {\r\n return 'markers';\r\n }\r\n get locationChildren() {\r\n return this._getOption('location');\r\n }\r\n set locationChildren(value) {\r\n this.setChildren('location', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiMarkerComponent.ɵfac = function DxiMarkerComponent_Factory(t) { return new (t || DxiMarkerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiMarkerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiMarkerComponent, selectors: [[\"dxi-marker\"]], contentQueries: function DxiMarkerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiLocationComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.locationChildren = _t);\r\n } }, inputs: { iconSrc: \"iconSrc\", location: \"location\", onClick: \"onClick\", tooltip: \"tooltip\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiMarkerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMarkerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-marker',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { iconSrc: [{\r\n type: Input\r\n }], location: [{\r\n type: Input\r\n }], onClick: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], locationChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiLocationComponent)]\r\n }] }); })();\r\nclass DxiMarkerModule {\r\n}\r\n/** @nocollapse */ DxiMarkerModule.ɵfac = function DxiMarkerModule_Factory(t) { return new (t || DxiMarkerModule)(); };\r\n/** @nocollapse */ DxiMarkerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiMarkerModule });\r\n/** @nocollapse */ DxiMarkerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMarkerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiMarkerComponent\r\n ],\r\n exports: [\r\n DxiMarkerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiMarkerModule, { declarations: [DxiMarkerComponent], exports: [DxiMarkerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMarkerComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get separatorHeight() {\r\n return this._getOption('separatorHeight');\r\n }\r\n set separatorHeight(value) {\r\n this._setOption('separatorHeight', value);\r\n }\r\n get textLeftIndent() {\r\n return this._getOption('textLeftIndent');\r\n }\r\n set textLeftIndent(value) {\r\n this._setOption('textLeftIndent', value);\r\n }\r\n get textTopIndent() {\r\n return this._getOption('textTopIndent');\r\n }\r\n set textTopIndent(value) {\r\n this._setOption('textTopIndent', value);\r\n }\r\n get topIndent() {\r\n return this._getOption('topIndent');\r\n }\r\n set topIndent(value) {\r\n this._setOption('topIndent', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'marker';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMarkerComponent.ɵfac = function DxoMarkerComponent_Factory(t) { return new (t || DxoMarkerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMarkerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMarkerComponent, selectors: [[\"dxo-marker\"]], inputs: { label: \"label\", separatorHeight: \"separatorHeight\", textLeftIndent: \"textLeftIndent\", textTopIndent: \"textTopIndent\", topIndent: \"topIndent\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMarkerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMarkerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-marker',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { label: [{\r\n type: Input\r\n }], separatorHeight: [{\r\n type: Input\r\n }], textLeftIndent: [{\r\n type: Input\r\n }], textTopIndent: [{\r\n type: Input\r\n }], topIndent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMarkerModule {\r\n}\r\n/** @nocollapse */ DxoMarkerModule.ɵfac = function DxoMarkerModule_Factory(t) { return new (t || DxoMarkerModule)(); };\r\n/** @nocollapse */ DxoMarkerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMarkerModule });\r\n/** @nocollapse */ DxoMarkerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMarkerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMarkerComponent\r\n ],\r\n exports: [\r\n DxoMarkerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMarkerModule, { declarations: [DxoMarkerComponent], exports: [DxoMarkerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\nclass DxoMasterDetailComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {\r\n super();\r\n this.renderer = renderer;\r\n this.document = document;\r\n this.element = element;\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n get autoExpandAll() {\r\n return this._getOption('autoExpandAll');\r\n }\r\n set autoExpandAll(value) {\r\n this._setOption('autoExpandAll', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get _optionPath() {\r\n return 'masterDetail';\r\n }\r\n setTemplate(template) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMasterDetailComponent.ɵfac = function DxoMasterDetailComponent_Factory(t) { return new (t || DxoMasterDetailComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.DxTemplateHost, 1), i0.ɵɵdirectiveInject(i0.ElementRef)); };\r\n/** @nocollapse */ DxoMasterDetailComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMasterDetailComponent, selectors: [[\"dxo-master-detail\"]], inputs: { autoExpandAll: \"autoExpandAll\", enabled: \"enabled\", template: \"template\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost, DxTemplateHost]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxoMasterDetailComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMasterDetailComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-master-detail',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: i1.DxTemplateHost, decorators: [{\r\n type: Host\r\n }] }, { type: i0.ElementRef }]; }, { autoExpandAll: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMasterDetailModule {\r\n}\r\n/** @nocollapse */ DxoMasterDetailModule.ɵfac = function DxoMasterDetailModule_Factory(t) { return new (t || DxoMasterDetailModule)(); };\r\n/** @nocollapse */ DxoMasterDetailModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMasterDetailModule });\r\n/** @nocollapse */ DxoMasterDetailModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMasterDetailModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMasterDetailComponent\r\n ],\r\n exports: [\r\n DxoMasterDetailComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMasterDetailModule, { declarations: [DxoMasterDetailComponent], exports: [DxoMasterDetailComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMaxRangeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'maxRange';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMaxRangeComponent.ɵfac = function DxoMaxRangeComponent_Factory(t) { return new (t || DxoMaxRangeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMaxRangeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMaxRangeComponent, selectors: [[\"dxo-max-range\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMaxRangeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMaxRangeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-max-range',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMaxRangeModule {\r\n}\r\n/** @nocollapse */ DxoMaxRangeModule.ɵfac = function DxoMaxRangeModule_Factory(t) { return new (t || DxoMaxRangeModule)(); };\r\n/** @nocollapse */ DxoMaxRangeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMaxRangeModule });\r\n/** @nocollapse */ DxoMaxRangeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMaxRangeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMaxRangeComponent\r\n ],\r\n exports: [\r\n DxoMaxRangeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMaxRangeModule, { declarations: [DxoMaxRangeComponent], exports: [DxoMaxRangeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHtmlEditorMediaResizing extends NestedOption {\r\n get allowedTargets() {\r\n return this._getOption('allowedTargets');\r\n }\r\n set allowedTargets(value) {\r\n this._setOption('allowedTargets', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoHtmlEditorMediaResizing.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoHtmlEditorMediaResizing_BaseFactory; return function DxoHtmlEditorMediaResizing_Factory(t) { return (ɵDxoHtmlEditorMediaResizing_BaseFactory || (ɵDxoHtmlEditorMediaResizing_BaseFactory = i0.ɵɵgetInheritedFactory(DxoHtmlEditorMediaResizing)))(t || DxoHtmlEditorMediaResizing); }; }();\r\n/** @nocollapse */ DxoHtmlEditorMediaResizing.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHtmlEditorMediaResizing, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHtmlEditorMediaResizing_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHtmlEditorMediaResizing, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMediaResizingComponent extends DxoHtmlEditorMediaResizing {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'mediaResizing';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMediaResizingComponent.ɵfac = function DxoMediaResizingComponent_Factory(t) { return new (t || DxoMediaResizingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMediaResizingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMediaResizingComponent, selectors: [[\"dxo-media-resizing\"]], inputs: { allowedTargets: \"allowedTargets\", enabled: \"enabled\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMediaResizingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMediaResizingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-media-resizing',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowedTargets',\r\n 'enabled'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoMediaResizingModule {\r\n}\r\n/** @nocollapse */ DxoMediaResizingModule.ɵfac = function DxoMediaResizingModule_Factory(t) { return new (t || DxoMediaResizingModule)(); };\r\n/** @nocollapse */ DxoMediaResizingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMediaResizingModule });\r\n/** @nocollapse */ DxoMediaResizingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMediaResizingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMediaResizingComponent\r\n ],\r\n exports: [\r\n DxoMediaResizingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMediaResizingModule, { declarations: [DxoMediaResizingComponent], exports: [DxoMediaResizingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiHtmlEditorMention extends CollectionNestedOption {\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n get marker() {\r\n return this._getOption('marker');\r\n }\r\n set marker(value) {\r\n this._setOption('marker', value);\r\n }\r\n get minSearchLength() {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiHtmlEditorMention.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiHtmlEditorMention_BaseFactory; return function DxiHtmlEditorMention_Factory(t) { return (ɵDxiHtmlEditorMention_BaseFactory || (ɵDxiHtmlEditorMention_BaseFactory = i0.ɵɵgetInheritedFactory(DxiHtmlEditorMention)))(t || DxiHtmlEditorMention); }; }();\r\n/** @nocollapse */ DxiHtmlEditorMention.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiHtmlEditorMention, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiHtmlEditorMention_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiHtmlEditorMention, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiMentionComponent extends DxiHtmlEditorMention {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'mentions';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiMentionComponent.ɵfac = function DxiMentionComponent_Factory(t) { return new (t || DxiMentionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiMentionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiMentionComponent, selectors: [[\"dxi-mention\"]], inputs: { dataSource: \"dataSource\", displayExpr: \"displayExpr\", itemTemplate: \"itemTemplate\", marker: \"marker\", minSearchLength: \"minSearchLength\", searchExpr: \"searchExpr\", searchTimeout: \"searchTimeout\", template: \"template\", valueExpr: \"valueExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiMentionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMentionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-mention',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'dataSource',\r\n 'displayExpr',\r\n 'itemTemplate',\r\n 'marker',\r\n 'minSearchLength',\r\n 'searchExpr',\r\n 'searchTimeout',\r\n 'template',\r\n 'valueExpr'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiMentionModule {\r\n}\r\n/** @nocollapse */ DxiMentionModule.ɵfac = function DxiMentionModule_Factory(t) { return new (t || DxiMentionModule)(); };\r\n/** @nocollapse */ DxiMentionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiMentionModule });\r\n/** @nocollapse */ DxiMentionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMentionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiMentionComponent\r\n ],\r\n exports: [\r\n DxiMentionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiMentionModule, { declarations: [DxiMentionComponent], exports: [DxiMentionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiMenuItemComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get action() {\r\n return this._getOption('action');\r\n }\r\n set action(value) {\r\n this._setOption('action', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get _optionPath() {\r\n return 'menuItems';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiMenuItemComponent.ɵfac = function DxiMenuItemComponent_Factory(t) { return new (t || DxiMenuItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiMenuItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiMenuItemComponent, selectors: [[\"dxi-menu-item\"]], inputs: { action: \"action\", text: \"text\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiMenuItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMenuItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-menu-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { action: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiMenuItemModule {\r\n}\r\n/** @nocollapse */ DxiMenuItemModule.ɵfac = function DxiMenuItemModule_Factory(t) { return new (t || DxiMenuItemModule)(); };\r\n/** @nocollapse */ DxiMenuItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiMenuItemModule });\r\n/** @nocollapse */ DxiMenuItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiMenuItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiMenuItemComponent\r\n ],\r\n exports: [\r\n DxiMenuItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiMenuItemModule, { declarations: [DxiMenuItemComponent], exports: [DxiMenuItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMinRangeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'minRange';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMinRangeComponent.ɵfac = function DxoMinRangeComponent_Factory(t) { return new (t || DxoMinRangeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMinRangeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMinRangeComponent, selectors: [[\"dxo-min-range\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMinRangeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinRangeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-min-range',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMinRangeModule {\r\n}\r\n/** @nocollapse */ DxoMinRangeModule.ɵfac = function DxoMinRangeModule_Factory(t) { return new (t || DxoMinRangeModule)(); };\r\n/** @nocollapse */ DxoMinRangeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMinRangeModule });\r\n/** @nocollapse */ DxoMinRangeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinRangeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMinRangeComponent\r\n ],\r\n exports: [\r\n DxoMinRangeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMinRangeModule, { declarations: [DxoMinRangeComponent], exports: [DxoMinRangeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMinVisualRangeLengthComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'minVisualRangeLength';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMinVisualRangeLengthComponent.ɵfac = function DxoMinVisualRangeLengthComponent_Factory(t) { return new (t || DxoMinVisualRangeLengthComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMinVisualRangeLengthComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMinVisualRangeLengthComponent, selectors: [[\"dxo-min-visual-range-length\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMinVisualRangeLengthComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinVisualRangeLengthComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-min-visual-range-length',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMinVisualRangeLengthModule {\r\n}\r\n/** @nocollapse */ DxoMinVisualRangeLengthModule.ɵfac = function DxoMinVisualRangeLengthModule_Factory(t) { return new (t || DxoMinVisualRangeLengthModule)(); };\r\n/** @nocollapse */ DxoMinVisualRangeLengthModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMinVisualRangeLengthModule });\r\n/** @nocollapse */ DxoMinVisualRangeLengthModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinVisualRangeLengthModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMinVisualRangeLengthComponent\r\n ],\r\n exports: [\r\n DxoMinVisualRangeLengthComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMinVisualRangeLengthModule, { declarations: [DxoMinVisualRangeLengthComponent], exports: [DxoMinVisualRangeLengthComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMinorGridComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'minorGrid';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMinorGridComponent.ɵfac = function DxoMinorGridComponent_Factory(t) { return new (t || DxoMinorGridComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMinorGridComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMinorGridComponent, selectors: [[\"dxo-minor-grid\"]], inputs: { color: \"color\", opacity: \"opacity\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMinorGridComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorGridComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-minor-grid',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMinorGridModule {\r\n}\r\n/** @nocollapse */ DxoMinorGridModule.ɵfac = function DxoMinorGridModule_Factory(t) { return new (t || DxoMinorGridModule)(); };\r\n/** @nocollapse */ DxoMinorGridModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMinorGridModule });\r\n/** @nocollapse */ DxoMinorGridModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorGridModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMinorGridComponent\r\n ],\r\n exports: [\r\n DxoMinorGridComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMinorGridModule, { declarations: [DxoMinorGridComponent], exports: [DxoMinorGridComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMinorTickIntervalComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'minorTickInterval';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMinorTickIntervalComponent.ɵfac = function DxoMinorTickIntervalComponent_Factory(t) { return new (t || DxoMinorTickIntervalComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMinorTickIntervalComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMinorTickIntervalComponent, selectors: [[\"dxo-minor-tick-interval\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMinorTickIntervalComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorTickIntervalComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-minor-tick-interval',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMinorTickIntervalModule {\r\n}\r\n/** @nocollapse */ DxoMinorTickIntervalModule.ɵfac = function DxoMinorTickIntervalModule_Factory(t) { return new (t || DxoMinorTickIntervalModule)(); };\r\n/** @nocollapse */ DxoMinorTickIntervalModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMinorTickIntervalModule });\r\n/** @nocollapse */ DxoMinorTickIntervalModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorTickIntervalModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMinorTickIntervalComponent\r\n ],\r\n exports: [\r\n DxoMinorTickIntervalComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMinorTickIntervalModule, { declarations: [DxoMinorTickIntervalComponent], exports: [DxoMinorTickIntervalComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMinorTickComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get length() {\r\n return this._getOption('length');\r\n }\r\n set length(value) {\r\n this._setOption('length', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get shift() {\r\n return this._getOption('shift');\r\n }\r\n set shift(value) {\r\n this._setOption('shift', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'minorTick';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMinorTickComponent.ɵfac = function DxoMinorTickComponent_Factory(t) { return new (t || DxoMinorTickComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMinorTickComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMinorTickComponent, selectors: [[\"dxo-minor-tick\"]], inputs: { color: \"color\", length: \"length\", opacity: \"opacity\", shift: \"shift\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMinorTickComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorTickComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-minor-tick',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], length: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], shift: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMinorTickModule {\r\n}\r\n/** @nocollapse */ DxoMinorTickModule.ɵfac = function DxoMinorTickModule_Factory(t) { return new (t || DxoMinorTickModule)(); };\r\n/** @nocollapse */ DxoMinorTickModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMinorTickModule });\r\n/** @nocollapse */ DxoMinorTickModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMinorTickModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMinorTickComponent\r\n ],\r\n exports: [\r\n DxoMinorTickComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMinorTickModule, { declarations: [DxoMinorTickComponent], exports: [DxoMinorTickComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoMyComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'my';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoMyComponent.ɵfac = function DxoMyComponent_Factory(t) { return new (t || DxoMyComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoMyComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoMyComponent, selectors: [[\"dxo-my\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoMyComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMyComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-my',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoMyModule {\r\n}\r\n/** @nocollapse */ DxoMyModule.ɵfac = function DxoMyModule_Factory(t) { return new (t || DxoMyModule)(); };\r\n/** @nocollapse */ DxoMyModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoMyModule });\r\n/** @nocollapse */ DxoMyModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoMyModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoMyComponent\r\n ],\r\n exports: [\r\n DxoMyComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoMyModule, { declarations: [DxoMyComponent], exports: [DxoMyComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoNodeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get padding() {\r\n return this._getOption('padding');\r\n }\r\n set padding(value) {\r\n this._setOption('padding', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'node';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoNodeComponent.ɵfac = function DxoNodeComponent_Factory(t) { return new (t || DxoNodeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoNodeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoNodeComponent, selectors: [[\"dxo-node\"]], inputs: { border: \"border\", color: \"color\", hoverStyle: \"hoverStyle\", opacity: \"opacity\", padding: \"padding\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoNodeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNodeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-node',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], padding: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoNodeModule {\r\n}\r\n/** @nocollapse */ DxoNodeModule.ɵfac = function DxoNodeModule_Factory(t) { return new (t || DxoNodeModule)(); };\r\n/** @nocollapse */ DxoNodeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoNodeModule });\r\n/** @nocollapse */ DxoNodeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNodeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoNodeComponent\r\n ],\r\n exports: [\r\n DxoNodeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoNodeModule, { declarations: [DxoNodeComponent], exports: [DxoNodeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoNodesComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get autoLayout() {\r\n return this._getOption('autoLayout');\r\n }\r\n set autoLayout(value) {\r\n this._setOption('autoLayout', value);\r\n }\r\n get autoSizeEnabled() {\r\n return this._getOption('autoSizeEnabled');\r\n }\r\n set autoSizeEnabled(value) {\r\n this._setOption('autoSizeEnabled', value);\r\n }\r\n get containerChildrenExpr() {\r\n return this._getOption('containerChildrenExpr');\r\n }\r\n set containerChildrenExpr(value) {\r\n this._setOption('containerChildrenExpr', value);\r\n }\r\n get containerKeyExpr() {\r\n return this._getOption('containerKeyExpr');\r\n }\r\n set containerKeyExpr(value) {\r\n this._setOption('containerKeyExpr', value);\r\n }\r\n get customDataExpr() {\r\n return this._getOption('customDataExpr');\r\n }\r\n set customDataExpr(value) {\r\n this._setOption('customDataExpr', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get heightExpr() {\r\n return this._getOption('heightExpr');\r\n }\r\n set heightExpr(value) {\r\n this._setOption('heightExpr', value);\r\n }\r\n get imageUrlExpr() {\r\n return this._getOption('imageUrlExpr');\r\n }\r\n set imageUrlExpr(value) {\r\n this._setOption('imageUrlExpr', value);\r\n }\r\n get itemsExpr() {\r\n return this._getOption('itemsExpr');\r\n }\r\n set itemsExpr(value) {\r\n this._setOption('itemsExpr', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get leftExpr() {\r\n return this._getOption('leftExpr');\r\n }\r\n set leftExpr(value) {\r\n this._setOption('leftExpr', value);\r\n }\r\n get lockedExpr() {\r\n return this._getOption('lockedExpr');\r\n }\r\n set lockedExpr(value) {\r\n this._setOption('lockedExpr', value);\r\n }\r\n get parentKeyExpr() {\r\n return this._getOption('parentKeyExpr');\r\n }\r\n set parentKeyExpr(value) {\r\n this._setOption('parentKeyExpr', value);\r\n }\r\n get styleExpr() {\r\n return this._getOption('styleExpr');\r\n }\r\n set styleExpr(value) {\r\n this._setOption('styleExpr', value);\r\n }\r\n get textExpr() {\r\n return this._getOption('textExpr');\r\n }\r\n set textExpr(value) {\r\n this._setOption('textExpr', value);\r\n }\r\n get textStyleExpr() {\r\n return this._getOption('textStyleExpr');\r\n }\r\n set textStyleExpr(value) {\r\n this._setOption('textStyleExpr', value);\r\n }\r\n get topExpr() {\r\n return this._getOption('topExpr');\r\n }\r\n set topExpr(value) {\r\n this._setOption('topExpr', value);\r\n }\r\n get typeExpr() {\r\n return this._getOption('typeExpr');\r\n }\r\n set typeExpr(value) {\r\n this._setOption('typeExpr', value);\r\n }\r\n get widthExpr() {\r\n return this._getOption('widthExpr');\r\n }\r\n set widthExpr(value) {\r\n this._setOption('widthExpr', value);\r\n }\r\n get zIndexExpr() {\r\n return this._getOption('zIndexExpr');\r\n }\r\n set zIndexExpr(value) {\r\n this._setOption('zIndexExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'nodes';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoNodesComponent.ɵfac = function DxoNodesComponent_Factory(t) { return new (t || DxoNodesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoNodesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoNodesComponent, selectors: [[\"dxo-nodes\"]], inputs: { autoLayout: \"autoLayout\", autoSizeEnabled: \"autoSizeEnabled\", containerChildrenExpr: \"containerChildrenExpr\", containerKeyExpr: \"containerKeyExpr\", customDataExpr: \"customDataExpr\", dataSource: \"dataSource\", heightExpr: \"heightExpr\", imageUrlExpr: \"imageUrlExpr\", itemsExpr: \"itemsExpr\", keyExpr: \"keyExpr\", leftExpr: \"leftExpr\", lockedExpr: \"lockedExpr\", parentKeyExpr: \"parentKeyExpr\", styleExpr: \"styleExpr\", textExpr: \"textExpr\", textStyleExpr: \"textStyleExpr\", topExpr: \"topExpr\", typeExpr: \"typeExpr\", widthExpr: \"widthExpr\", zIndexExpr: \"zIndexExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoNodesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNodesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-nodes',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { autoLayout: [{\r\n type: Input\r\n }], autoSizeEnabled: [{\r\n type: Input\r\n }], containerChildrenExpr: [{\r\n type: Input\r\n }], containerKeyExpr: [{\r\n type: Input\r\n }], customDataExpr: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], heightExpr: [{\r\n type: Input\r\n }], imageUrlExpr: [{\r\n type: Input\r\n }], itemsExpr: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], leftExpr: [{\r\n type: Input\r\n }], lockedExpr: [{\r\n type: Input\r\n }], parentKeyExpr: [{\r\n type: Input\r\n }], styleExpr: [{\r\n type: Input\r\n }], textExpr: [{\r\n type: Input\r\n }], textStyleExpr: [{\r\n type: Input\r\n }], topExpr: [{\r\n type: Input\r\n }], typeExpr: [{\r\n type: Input\r\n }], widthExpr: [{\r\n type: Input\r\n }], zIndexExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoNodesModule {\r\n}\r\n/** @nocollapse */ DxoNodesModule.ɵfac = function DxoNodesModule_Factory(t) { return new (t || DxoNodesModule)(); };\r\n/** @nocollapse */ DxoNodesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoNodesModule });\r\n/** @nocollapse */ DxoNodesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNodesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoNodesComponent\r\n ],\r\n exports: [\r\n DxoNodesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoNodesModule, { declarations: [DxoNodesComponent], exports: [DxoNodesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoNotificationsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get showPanel() {\r\n return this._getOption('showPanel');\r\n }\r\n set showPanel(value) {\r\n this._setOption('showPanel', value);\r\n }\r\n get showPopup() {\r\n return this._getOption('showPopup');\r\n }\r\n set showPopup(value) {\r\n this._setOption('showPopup', value);\r\n }\r\n get _optionPath() {\r\n return 'notifications';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoNotificationsComponent.ɵfac = function DxoNotificationsComponent_Factory(t) { return new (t || DxoNotificationsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoNotificationsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoNotificationsComponent, selectors: [[\"dxo-notifications\"]], inputs: { showPanel: \"showPanel\", showPopup: \"showPopup\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoNotificationsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNotificationsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-notifications',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { showPanel: [{\r\n type: Input\r\n }], showPopup: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoNotificationsModule {\r\n}\r\n/** @nocollapse */ DxoNotificationsModule.ɵfac = function DxoNotificationsModule_Factory(t) { return new (t || DxoNotificationsModule)(); };\r\n/** @nocollapse */ DxoNotificationsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoNotificationsModule });\r\n/** @nocollapse */ DxoNotificationsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoNotificationsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoNotificationsComponent\r\n ],\r\n exports: [\r\n DxoNotificationsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoNotificationsModule, { declarations: [DxoNotificationsComponent], exports: [DxoNotificationsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoOffsetComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get x() {\r\n return this._getOption('x');\r\n }\r\n set x(value) {\r\n this._setOption('x', value);\r\n }\r\n get y() {\r\n return this._getOption('y');\r\n }\r\n set y(value) {\r\n this._setOption('y', value);\r\n }\r\n get _optionPath() {\r\n return 'offset';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoOffsetComponent.ɵfac = function DxoOffsetComponent_Factory(t) { return new (t || DxoOffsetComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoOffsetComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoOffsetComponent, selectors: [[\"dxo-offset\"]], inputs: { x: \"x\", y: \"y\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoOffsetComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOffsetComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-offset',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { x: [{\r\n type: Input\r\n }], y: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoOffsetModule {\r\n}\r\n/** @nocollapse */ DxoOffsetModule.ɵfac = function DxoOffsetModule_Factory(t) { return new (t || DxoOffsetModule)(); };\r\n/** @nocollapse */ DxoOffsetModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoOffsetModule });\r\n/** @nocollapse */ DxoOffsetModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOffsetModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoOffsetComponent\r\n ],\r\n exports: [\r\n DxoOffsetComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoOffsetModule, { declarations: [DxoOffsetComponent], exports: [DxoOffsetComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGanttFilterRowOperationDescriptions extends NestedOption {\r\n get between() {\r\n return this._getOption('between');\r\n }\r\n set between(value) {\r\n this._setOption('between', value);\r\n }\r\n get contains() {\r\n return this._getOption('contains');\r\n }\r\n set contains(value) {\r\n this._setOption('contains', value);\r\n }\r\n get endsWith() {\r\n return this._getOption('endsWith');\r\n }\r\n set endsWith(value) {\r\n this._setOption('endsWith', value);\r\n }\r\n get equal() {\r\n return this._getOption('equal');\r\n }\r\n set equal(value) {\r\n this._setOption('equal', value);\r\n }\r\n get greaterThan() {\r\n return this._getOption('greaterThan');\r\n }\r\n set greaterThan(value) {\r\n this._setOption('greaterThan', value);\r\n }\r\n get greaterThanOrEqual() {\r\n return this._getOption('greaterThanOrEqual');\r\n }\r\n set greaterThanOrEqual(value) {\r\n this._setOption('greaterThanOrEqual', value);\r\n }\r\n get lessThan() {\r\n return this._getOption('lessThan');\r\n }\r\n set lessThan(value) {\r\n this._setOption('lessThan', value);\r\n }\r\n get lessThanOrEqual() {\r\n return this._getOption('lessThanOrEqual');\r\n }\r\n set lessThanOrEqual(value) {\r\n this._setOption('lessThanOrEqual', value);\r\n }\r\n get notContains() {\r\n return this._getOption('notContains');\r\n }\r\n set notContains(value) {\r\n this._setOption('notContains', value);\r\n }\r\n get notEqual() {\r\n return this._getOption('notEqual');\r\n }\r\n set notEqual(value) {\r\n this._setOption('notEqual', value);\r\n }\r\n get startsWith() {\r\n return this._getOption('startsWith');\r\n }\r\n set startsWith(value) {\r\n this._setOption('startsWith', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGanttFilterRowOperationDescriptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGanttFilterRowOperationDescriptions_BaseFactory; return function DxoGanttFilterRowOperationDescriptions_Factory(t) { return (ɵDxoGanttFilterRowOperationDescriptions_BaseFactory || (ɵDxoGanttFilterRowOperationDescriptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGanttFilterRowOperationDescriptions)))(t || DxoGanttFilterRowOperationDescriptions); }; }();\r\n/** @nocollapse */ DxoGanttFilterRowOperationDescriptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGanttFilterRowOperationDescriptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGanttFilterRowOperationDescriptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGanttFilterRowOperationDescriptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoOperationDescriptionsComponent extends DxoGanttFilterRowOperationDescriptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'operationDescriptions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoOperationDescriptionsComponent.ɵfac = function DxoOperationDescriptionsComponent_Factory(t) { return new (t || DxoOperationDescriptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoOperationDescriptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoOperationDescriptionsComponent, selectors: [[\"dxo-operation-descriptions\"]], inputs: { between: \"between\", contains: \"contains\", endsWith: \"endsWith\", equal: \"equal\", greaterThan: \"greaterThan\", greaterThanOrEqual: \"greaterThanOrEqual\", lessThan: \"lessThan\", lessThanOrEqual: \"lessThanOrEqual\", notContains: \"notContains\", notEqual: \"notEqual\", startsWith: \"startsWith\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoOperationDescriptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOperationDescriptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-operation-descriptions',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'between',\r\n 'contains',\r\n 'endsWith',\r\n 'equal',\r\n 'greaterThan',\r\n 'greaterThanOrEqual',\r\n 'lessThan',\r\n 'lessThanOrEqual',\r\n 'notContains',\r\n 'notEqual',\r\n 'startsWith'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoOperationDescriptionsModule {\r\n}\r\n/** @nocollapse */ DxoOperationDescriptionsModule.ɵfac = function DxoOperationDescriptionsModule_Factory(t) { return new (t || DxoOperationDescriptionsModule)(); };\r\n/** @nocollapse */ DxoOperationDescriptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoOperationDescriptionsModule });\r\n/** @nocollapse */ DxoOperationDescriptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOperationDescriptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoOperationDescriptionsComponent\r\n ],\r\n exports: [\r\n DxoOperationDescriptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoOperationDescriptionsModule, { declarations: [DxoOperationDescriptionsComponent], exports: [DxoOperationDescriptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoOptionsComponent extends DxoButtonOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'options';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoOptionsComponent.ɵfac = function DxoOptionsComponent_Factory(t) { return new (t || DxoOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoOptionsComponent, selectors: [[\"dxo-options\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", icon: \"icon\", onClick: \"onClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", rtlEnabled: \"rtlEnabled\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", template: \"template\", text: \"text\", type: \"type\", useSubmitBehavior: \"useSubmitBehavior\", validationGroup: \"validationGroup\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'disabled',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'icon',\r\n 'onClick',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'rtlEnabled',\r\n 'stylingMode',\r\n 'tabIndex',\r\n 'template',\r\n 'text',\r\n 'type',\r\n 'useSubmitBehavior',\r\n 'validationGroup',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoOptionsModule {\r\n}\r\n/** @nocollapse */ DxoOptionsModule.ɵfac = function DxoOptionsModule_Factory(t) { return new (t || DxoOptionsModule)(); };\r\n/** @nocollapse */ DxoOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoOptionsModule });\r\n/** @nocollapse */ DxoOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoOptionsComponent\r\n ],\r\n exports: [\r\n DxoOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoOptionsModule, { declarations: [DxoOptionsComponent], exports: [DxoOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPageSizeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'heightChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'pageSize';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPageSizeComponent.ɵfac = function DxoPageSizeComponent_Factory(t) { return new (t || DxoPageSizeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPageSizeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPageSizeComponent, selectors: [[\"dxo-page-size\"]], contentQueries: function DxoPageSizeComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { height: \"height\", items: \"items\", width: \"width\" }, outputs: { heightChange: \"heightChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPageSizeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPageSizeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-page-size',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { height: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], heightChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoPageSizeModule {\r\n}\r\n/** @nocollapse */ DxoPageSizeModule.ɵfac = function DxoPageSizeModule_Factory(t) { return new (t || DxoPageSizeModule)(); };\r\n/** @nocollapse */ DxoPageSizeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPageSizeModule });\r\n/** @nocollapse */ DxoPageSizeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPageSizeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPageSizeComponent\r\n ],\r\n exports: [\r\n DxoPageSizeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPageSizeModule, { declarations: [DxoPageSizeComponent], exports: [DxoPageSizeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPagerComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowedPageSizes() {\r\n return this._getOption('allowedPageSizes');\r\n }\r\n set allowedPageSizes(value) {\r\n this._setOption('allowedPageSizes', value);\r\n }\r\n get displayMode() {\r\n return this._getOption('displayMode');\r\n }\r\n set displayMode(value) {\r\n this._setOption('displayMode', value);\r\n }\r\n get infoText() {\r\n return this._getOption('infoText');\r\n }\r\n set infoText(value) {\r\n this._setOption('infoText', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get showInfo() {\r\n return this._getOption('showInfo');\r\n }\r\n set showInfo(value) {\r\n this._setOption('showInfo', value);\r\n }\r\n get showNavigationButtons() {\r\n return this._getOption('showNavigationButtons');\r\n }\r\n set showNavigationButtons(value) {\r\n this._setOption('showNavigationButtons', value);\r\n }\r\n get showPageSizeSelector() {\r\n return this._getOption('showPageSizeSelector');\r\n }\r\n set showPageSizeSelector(value) {\r\n this._setOption('showPageSizeSelector', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'pager';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPagerComponent.ɵfac = function DxoPagerComponent_Factory(t) { return new (t || DxoPagerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPagerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPagerComponent, selectors: [[\"dxo-pager\"]], inputs: { allowedPageSizes: \"allowedPageSizes\", displayMode: \"displayMode\", infoText: \"infoText\", label: \"label\", showInfo: \"showInfo\", showNavigationButtons: \"showNavigationButtons\", showPageSizeSelector: \"showPageSizeSelector\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPagerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPagerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-pager',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowedPageSizes: [{\r\n type: Input\r\n }], displayMode: [{\r\n type: Input\r\n }], infoText: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], showInfo: [{\r\n type: Input\r\n }], showNavigationButtons: [{\r\n type: Input\r\n }], showPageSizeSelector: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoPagerModule {\r\n}\r\n/** @nocollapse */ DxoPagerModule.ɵfac = function DxoPagerModule_Factory(t) { return new (t || DxoPagerModule)(); };\r\n/** @nocollapse */ DxoPagerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPagerModule });\r\n/** @nocollapse */ DxoPagerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPagerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPagerComponent\r\n ],\r\n exports: [\r\n DxoPagerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPagerModule, { declarations: [DxoPagerComponent], exports: [DxoPagerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPagingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'pageIndexChange' },\r\n { emit: 'pageSizeChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get pageIndex() {\r\n return this._getOption('pageIndex');\r\n }\r\n set pageIndex(value) {\r\n this._setOption('pageIndex', value);\r\n }\r\n get pageSize() {\r\n return this._getOption('pageSize');\r\n }\r\n set pageSize(value) {\r\n this._setOption('pageSize', value);\r\n }\r\n get _optionPath() {\r\n return 'paging';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPagingComponent.ɵfac = function DxoPagingComponent_Factory(t) { return new (t || DxoPagingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPagingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPagingComponent, selectors: [[\"dxo-paging\"]], inputs: { enabled: \"enabled\", pageIndex: \"pageIndex\", pageSize: \"pageSize\" }, outputs: { pageIndexChange: \"pageIndexChange\", pageSizeChange: \"pageSizeChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPagingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPagingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-paging',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { enabled: [{\r\n type: Input\r\n }], pageIndex: [{\r\n type: Input\r\n }], pageSize: [{\r\n type: Input\r\n }], pageIndexChange: [{\r\n type: Output\r\n }], pageSizeChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoPagingModule {\r\n}\r\n/** @nocollapse */ DxoPagingModule.ɵfac = function DxoPagingModule_Factory(t) { return new (t || DxoPagingModule)(); };\r\n/** @nocollapse */ DxoPagingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPagingModule });\r\n/** @nocollapse */ DxoPagingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPagingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPagingComponent\r\n ],\r\n exports: [\r\n DxoPagingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPagingModule, { declarations: [DxoPagingComponent], exports: [DxoPagingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiPaneComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get _optionPath() {\r\n return 'panes';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiPaneComponent.ɵfac = function DxiPaneComponent_Factory(t) { return new (t || DxiPaneComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiPaneComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiPaneComponent, selectors: [[\"dxi-pane\"]], inputs: { backgroundColor: \"backgroundColor\", border: \"border\", height: \"height\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiPaneComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiPaneComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-pane',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiPaneModule {\r\n}\r\n/** @nocollapse */ DxiPaneModule.ɵfac = function DxiPaneModule_Factory(t) { return new (t || DxiPaneModule)(); };\r\n/** @nocollapse */ DxiPaneModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiPaneModule });\r\n/** @nocollapse */ DxiPaneModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiPaneModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiPaneComponent\r\n ],\r\n exports: [\r\n DxiPaneComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiPaneModule, { declarations: [DxiPaneComponent], exports: [DxiPaneComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPermissionsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get copy() {\r\n return this._getOption('copy');\r\n }\r\n set copy(value) {\r\n this._setOption('copy', value);\r\n }\r\n get create() {\r\n return this._getOption('create');\r\n }\r\n set create(value) {\r\n this._setOption('create', value);\r\n }\r\n get delete() {\r\n return this._getOption('delete');\r\n }\r\n set delete(value) {\r\n this._setOption('delete', value);\r\n }\r\n get download() {\r\n return this._getOption('download');\r\n }\r\n set download(value) {\r\n this._setOption('download', value);\r\n }\r\n get move() {\r\n return this._getOption('move');\r\n }\r\n set move(value) {\r\n this._setOption('move', value);\r\n }\r\n get rename() {\r\n return this._getOption('rename');\r\n }\r\n set rename(value) {\r\n this._setOption('rename', value);\r\n }\r\n get upload() {\r\n return this._getOption('upload');\r\n }\r\n set upload(value) {\r\n this._setOption('upload', value);\r\n }\r\n get _optionPath() {\r\n return 'permissions';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPermissionsComponent.ɵfac = function DxoPermissionsComponent_Factory(t) { return new (t || DxoPermissionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPermissionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPermissionsComponent, selectors: [[\"dxo-permissions\"]], inputs: { copy: \"copy\", create: \"create\", delete: \"delete\", download: \"download\", move: \"move\", rename: \"rename\", upload: \"upload\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPermissionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPermissionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-permissions',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { copy: [{\r\n type: Input\r\n }], create: [{\r\n type: Input\r\n }], delete: [{\r\n type: Input\r\n }], download: [{\r\n type: Input\r\n }], move: [{\r\n type: Input\r\n }], rename: [{\r\n type: Input\r\n }], upload: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoPermissionsModule {\r\n}\r\n/** @nocollapse */ DxoPermissionsModule.ɵfac = function DxoPermissionsModule_Factory(t) { return new (t || DxoPermissionsModule)(); };\r\n/** @nocollapse */ DxoPermissionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPermissionsModule });\r\n/** @nocollapse */ DxoPermissionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPermissionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPermissionsComponent\r\n ],\r\n exports: [\r\n DxoPermissionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPermissionsModule, { declarations: [DxoPermissionsComponent], exports: [DxoPermissionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPointComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get hoverMode() {\r\n return this._getOption('hoverMode');\r\n }\r\n set hoverMode(value) {\r\n this._setOption('hoverMode', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get image() {\r\n return this._getOption('image');\r\n }\r\n set image(value) {\r\n this._setOption('image', value);\r\n }\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get symbol() {\r\n return this._getOption('symbol');\r\n }\r\n set symbol(value) {\r\n this._setOption('symbol', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'point';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPointComponent.ɵfac = function DxoPointComponent_Factory(t) { return new (t || DxoPointComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPointComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPointComponent, selectors: [[\"dxo-point\"]], inputs: { border: \"border\", color: \"color\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", image: \"image\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", size: \"size\", symbol: \"symbol\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPointComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPointComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-point',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], hoverMode: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], image: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], selectionStyle: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], symbol: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoPointModule {\r\n}\r\n/** @nocollapse */ DxoPointModule.ɵfac = function DxoPointModule_Factory(t) { return new (t || DxoPointModule)(); };\r\n/** @nocollapse */ DxoPointModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPointModule });\r\n/** @nocollapse */ DxoPointModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPointModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPointComponent\r\n ],\r\n exports: [\r\n DxoPointComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPointModule, { declarations: [DxoPointComponent], exports: [DxoPointComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPopupComponent extends DxoPopupOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'heightChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'popup';\r\n }\r\n get toolbarItemsChildren() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItemsChildren(value) {\r\n this.setChildren('toolbarItems', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPopupComponent.ɵfac = function DxoPopupComponent_Factory(t) { return new (t || DxoPopupComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPopupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPopupComponent, selectors: [[\"dxo-popup\"]], contentQueries: function DxoPopupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", dragAndResizeArea: \"dragAndResizeArea\", dragEnabled: \"dragEnabled\", dragOutsideBoundary: \"dragOutsideBoundary\", elementAttr: \"elementAttr\", enableBodyScroll: \"enableBodyScroll\", focusStateEnabled: \"focusStateEnabled\", fullScreen: \"fullScreen\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResize: \"onResize\", onResizeEnd: \"onResizeEnd\", onResizeStart: \"onResizeStart\", onShowing: \"onShowing\", onShown: \"onShown\", onTitleRendered: \"onTitleRendered\", position: \"position\", resizeEnabled: \"resizeEnabled\", restorePosition: \"restorePosition\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showCloseButton: \"showCloseButton\", showTitle: \"showTitle\", tabIndex: \"tabIndex\", title: \"title\", titleTemplate: \"titleTemplate\", toolbarItems: \"toolbarItems\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { heightChange: \"heightChange\", positionChange: \"positionChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPopupComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPopupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-popup',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'animation',\r\n 'closeOnOutsideClick',\r\n 'container',\r\n 'contentTemplate',\r\n 'copyRootClassesToWrapper',\r\n 'deferRendering',\r\n 'disabled',\r\n 'dragAndResizeArea',\r\n 'dragEnabled',\r\n 'dragOutsideBoundary',\r\n 'elementAttr',\r\n 'enableBodyScroll',\r\n 'focusStateEnabled',\r\n 'fullScreen',\r\n 'height',\r\n 'hideOnOutsideClick',\r\n 'hideOnParentScroll',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'maxHeight',\r\n 'maxWidth',\r\n 'minHeight',\r\n 'minWidth',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onHidden',\r\n 'onHiding',\r\n 'onInitialized',\r\n 'onOptionChanged',\r\n 'onResize',\r\n 'onResizeEnd',\r\n 'onResizeStart',\r\n 'onShowing',\r\n 'onShown',\r\n 'onTitleRendered',\r\n 'position',\r\n 'resizeEnabled',\r\n 'restorePosition',\r\n 'rtlEnabled',\r\n 'shading',\r\n 'shadingColor',\r\n 'showCloseButton',\r\n 'showTitle',\r\n 'tabIndex',\r\n 'title',\r\n 'titleTemplate',\r\n 'toolbarItems',\r\n 'visible',\r\n 'width',\r\n 'wrapperAttr'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { heightChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], toolbarItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiToolbarItemComponent)]\r\n }] }); })();\r\nclass DxoPopupModule {\r\n}\r\n/** @nocollapse */ DxoPopupModule.ɵfac = function DxoPopupModule_Factory(t) { return new (t || DxoPopupModule)(); };\r\n/** @nocollapse */ DxoPopupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPopupModule });\r\n/** @nocollapse */ DxoPopupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPopupModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPopupComponent\r\n ],\r\n exports: [\r\n DxoPopupComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPopupModule, { declarations: [DxoPopupComponent], exports: [DxoPopupComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPositionConfig extends NestedOption {\r\n get at() {\r\n return this._getOption('at');\r\n }\r\n set at(value) {\r\n this._setOption('at', value);\r\n }\r\n get boundary() {\r\n return this._getOption('boundary');\r\n }\r\n set boundary(value) {\r\n this._setOption('boundary', value);\r\n }\r\n get boundaryOffset() {\r\n return this._getOption('boundaryOffset');\r\n }\r\n set boundaryOffset(value) {\r\n this._setOption('boundaryOffset', value);\r\n }\r\n get collision() {\r\n return this._getOption('collision');\r\n }\r\n set collision(value) {\r\n this._setOption('collision', value);\r\n }\r\n get my() {\r\n return this._getOption('my');\r\n }\r\n set my(value) {\r\n this._setOption('my', value);\r\n }\r\n get of() {\r\n return this._getOption('of');\r\n }\r\n set of(value) {\r\n this._setOption('of', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoPositionConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoPositionConfig_BaseFactory; return function DxoPositionConfig_Factory(t) { return (ɵDxoPositionConfig_BaseFactory || (ɵDxoPositionConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoPositionConfig)))(t || DxoPositionConfig); }; }();\r\n/** @nocollapse */ DxoPositionConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPositionConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPositionConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPositionConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPositionComponent extends DxoPositionConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'position';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPositionComponent.ɵfac = function DxoPositionComponent_Factory(t) { return new (t || DxoPositionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPositionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPositionComponent, selectors: [[\"dxo-position\"]], inputs: { at: \"at\", boundary: \"boundary\", boundaryOffset: \"boundaryOffset\", collision: \"collision\", my: \"my\", of: \"of\", offset: \"offset\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPositionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPositionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-position',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'at',\r\n 'boundary',\r\n 'boundaryOffset',\r\n 'collision',\r\n 'my',\r\n 'of',\r\n 'offset'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoPositionModule {\r\n}\r\n/** @nocollapse */ DxoPositionModule.ɵfac = function DxoPositionModule_Factory(t) { return new (t || DxoPositionModule)(); };\r\n/** @nocollapse */ DxoPositionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPositionModule });\r\n/** @nocollapse */ DxoPositionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPositionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPositionComponent\r\n ],\r\n exports: [\r\n DxoPositionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPositionModule, { declarations: [DxoPositionComponent], exports: [DxoPositionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoVectorMapProjectionConfig extends NestedOption {\r\n get aspectRatio() {\r\n return this._getOption('aspectRatio');\r\n }\r\n set aspectRatio(value) {\r\n this._setOption('aspectRatio', value);\r\n }\r\n get from() {\r\n return this._getOption('from');\r\n }\r\n set from(value) {\r\n this._setOption('from', value);\r\n }\r\n get to() {\r\n return this._getOption('to');\r\n }\r\n set to(value) {\r\n this._setOption('to', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoVectorMapProjectionConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoVectorMapProjectionConfig_BaseFactory; return function DxoVectorMapProjectionConfig_Factory(t) { return (ɵDxoVectorMapProjectionConfig_BaseFactory || (ɵDxoVectorMapProjectionConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoVectorMapProjectionConfig)))(t || DxoVectorMapProjectionConfig); }; }();\r\n/** @nocollapse */ DxoVectorMapProjectionConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoVectorMapProjectionConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoVectorMapProjectionConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVectorMapProjectionConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoProjectionComponent extends DxoVectorMapProjectionConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'projection';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoProjectionComponent.ɵfac = function DxoProjectionComponent_Factory(t) { return new (t || DxoProjectionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoProjectionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoProjectionComponent, selectors: [[\"dxo-projection\"]], inputs: { aspectRatio: \"aspectRatio\", from: \"from\", to: \"to\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoProjectionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoProjectionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-projection',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aspectRatio',\r\n 'from',\r\n 'to'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoProjectionModule {\r\n}\r\n/** @nocollapse */ DxoProjectionModule.ɵfac = function DxoProjectionModule_Factory(t) { return new (t || DxoProjectionModule)(); };\r\n/** @nocollapse */ DxoProjectionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoProjectionModule });\r\n/** @nocollapse */ DxoProjectionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoProjectionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoProjectionComponent\r\n ],\r\n exports: [\r\n DxoProjectionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoProjectionModule, { declarations: [DxoProjectionComponent], exports: [DxoProjectionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoPropertiesPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get tabs() {\r\n return this._getOption('tabs');\r\n }\r\n set tabs(value) {\r\n this._setOption('tabs', value);\r\n }\r\n get visibility() {\r\n return this._getOption('visibility');\r\n }\r\n set visibility(value) {\r\n this._setOption('visibility', value);\r\n }\r\n get _optionPath() {\r\n return 'propertiesPanel';\r\n }\r\n get tabsChildren() {\r\n return this._getOption('tabs');\r\n }\r\n set tabsChildren(value) {\r\n this.setChildren('tabs', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoPropertiesPanelComponent.ɵfac = function DxoPropertiesPanelComponent_Factory(t) { return new (t || DxoPropertiesPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoPropertiesPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoPropertiesPanelComponent, selectors: [[\"dxo-properties-panel\"]], contentQueries: function DxoPropertiesPanelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiTabComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabsChildren = _t);\r\n } }, inputs: { tabs: \"tabs\", visibility: \"visibility\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoPropertiesPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPropertiesPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-properties-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { tabs: [{\r\n type: Input\r\n }], visibility: [{\r\n type: Input\r\n }], tabsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiTabComponent)]\r\n }] }); })();\r\nclass DxoPropertiesPanelModule {\r\n}\r\n/** @nocollapse */ DxoPropertiesPanelModule.ɵfac = function DxoPropertiesPanelModule_Factory(t) { return new (t || DxoPropertiesPanelModule)(); };\r\n/** @nocollapse */ DxoPropertiesPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoPropertiesPanelModule });\r\n/** @nocollapse */ DxoPropertiesPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoPropertiesPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoPropertiesPanelComponent\r\n ],\r\n exports: [\r\n DxoPropertiesPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoPropertiesPanelModule, { declarations: [DxoPropertiesPanelComponent], exports: [DxoPropertiesPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiRangeComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get endValue() {\r\n return this._getOption('endValue');\r\n }\r\n set endValue(value) {\r\n this._setOption('endValue', value);\r\n }\r\n get startValue() {\r\n return this._getOption('startValue');\r\n }\r\n set startValue(value) {\r\n this._setOption('startValue', value);\r\n }\r\n get _optionPath() {\r\n return 'ranges';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiRangeComponent.ɵfac = function DxiRangeComponent_Factory(t) { return new (t || DxiRangeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiRangeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiRangeComponent, selectors: [[\"dxi-range\"]], inputs: { color: \"color\", endValue: \"endValue\", startValue: \"startValue\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiRangeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRangeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-range',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], endValue: [{\r\n type: Input\r\n }], startValue: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiRangeModule {\r\n}\r\n/** @nocollapse */ DxiRangeModule.ɵfac = function DxiRangeModule_Factory(t) { return new (t || DxiRangeModule)(); };\r\n/** @nocollapse */ DxiRangeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiRangeModule });\r\n/** @nocollapse */ DxiRangeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRangeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiRangeComponent\r\n ],\r\n exports: [\r\n DxiRangeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiRangeModule, { declarations: [DxiRangeComponent], exports: [DxiRangeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoRangeContainerComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n get ranges() {\r\n return this._getOption('ranges');\r\n }\r\n set ranges(value) {\r\n this._setOption('ranges', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get horizontalOrientation() {\r\n return this._getOption('horizontalOrientation');\r\n }\r\n set horizontalOrientation(value) {\r\n this._setOption('horizontalOrientation', value);\r\n }\r\n get verticalOrientation() {\r\n return this._getOption('verticalOrientation');\r\n }\r\n set verticalOrientation(value) {\r\n this._setOption('verticalOrientation', value);\r\n }\r\n get _optionPath() {\r\n return 'rangeContainer';\r\n }\r\n get rangesChildren() {\r\n return this._getOption('ranges');\r\n }\r\n set rangesChildren(value) {\r\n this.setChildren('ranges', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoRangeContainerComponent.ɵfac = function DxoRangeContainerComponent_Factory(t) { return new (t || DxoRangeContainerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoRangeContainerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoRangeContainerComponent, selectors: [[\"dxo-range-container\"]], contentQueries: function DxoRangeContainerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiRangeComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rangesChildren = _t);\r\n } }, inputs: { backgroundColor: \"backgroundColor\", offset: \"offset\", orientation: \"orientation\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", ranges: \"ranges\", width: \"width\", horizontalOrientation: \"horizontalOrientation\", verticalOrientation: \"verticalOrientation\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoRangeContainerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangeContainerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-range-container',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { backgroundColor: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], ranges: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], horizontalOrientation: [{\r\n type: Input\r\n }], verticalOrientation: [{\r\n type: Input\r\n }], rangesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiRangeComponent)]\r\n }] }); })();\r\nclass DxoRangeContainerModule {\r\n}\r\n/** @nocollapse */ DxoRangeContainerModule.ɵfac = function DxoRangeContainerModule_Factory(t) { return new (t || DxoRangeContainerModule)(); };\r\n/** @nocollapse */ DxoRangeContainerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoRangeContainerModule });\r\n/** @nocollapse */ DxoRangeContainerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangeContainerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoRangeContainerComponent\r\n ],\r\n exports: [\r\n DxoRangeContainerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoRangeContainerModule, { declarations: [DxoRangeContainerComponent], exports: [DxoRangeContainerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoRangeareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'rangearea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoRangeareaComponent.ɵfac = function DxoRangeareaComponent_Factory(t) { return new (t || DxoRangeareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoRangeareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoRangeareaComponent, selectors: [[\"dxo-rangearea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoRangeareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangeareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-rangearea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoRangeareaModule {\r\n}\r\n/** @nocollapse */ DxoRangeareaModule.ɵfac = function DxoRangeareaModule_Factory(t) { return new (t || DxoRangeareaModule)(); };\r\n/** @nocollapse */ DxoRangeareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoRangeareaModule });\r\n/** @nocollapse */ DxoRangeareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangeareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoRangeareaComponent\r\n ],\r\n exports: [\r\n DxoRangeareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoRangeareaModule, { declarations: [DxoRangeareaComponent], exports: [DxoRangeareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoRangebarComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'rangebar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoRangebarComponent.ɵfac = function DxoRangebarComponent_Factory(t) { return new (t || DxoRangebarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoRangebarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoRangebarComponent, selectors: [[\"dxo-rangebar\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoRangebarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangebarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-rangebar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoRangebarModule {\r\n}\r\n/** @nocollapse */ DxoRangebarModule.ɵfac = function DxoRangebarModule_Factory(t) { return new (t || DxoRangebarModule)(); };\r\n/** @nocollapse */ DxoRangebarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoRangebarModule });\r\n/** @nocollapse */ DxoRangebarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRangebarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoRangebarComponent\r\n ],\r\n exports: [\r\n DxoRangebarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoRangebarModule, { declarations: [DxoRangebarComponent], exports: [DxoRangebarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoReductionComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get level() {\r\n return this._getOption('level');\r\n }\r\n set level(value) {\r\n this._setOption('level', value);\r\n }\r\n get _optionPath() {\r\n return 'reduction';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoReductionComponent.ɵfac = function DxoReductionComponent_Factory(t) { return new (t || DxoReductionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoReductionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoReductionComponent, selectors: [[\"dxo-reduction\"]], inputs: { color: \"color\", level: \"level\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoReductionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoReductionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-reduction',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], level: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoReductionModule {\r\n}\r\n/** @nocollapse */ DxoReductionModule.ɵfac = function DxoReductionModule_Factory(t) { return new (t || DxoReductionModule)(); };\r\n/** @nocollapse */ DxoReductionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoReductionModule });\r\n/** @nocollapse */ DxoReductionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoReductionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoReductionComponent\r\n ],\r\n exports: [\r\n DxoReductionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoReductionModule, { declarations: [DxoReductionComponent], exports: [DxoReductionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoRemoteOperationsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get filtering() {\r\n return this._getOption('filtering');\r\n }\r\n set filtering(value) {\r\n this._setOption('filtering', value);\r\n }\r\n get grouping() {\r\n return this._getOption('grouping');\r\n }\r\n set grouping(value) {\r\n this._setOption('grouping', value);\r\n }\r\n get groupPaging() {\r\n return this._getOption('groupPaging');\r\n }\r\n set groupPaging(value) {\r\n this._setOption('groupPaging', value);\r\n }\r\n get paging() {\r\n return this._getOption('paging');\r\n }\r\n set paging(value) {\r\n this._setOption('paging', value);\r\n }\r\n get sorting() {\r\n return this._getOption('sorting');\r\n }\r\n set sorting(value) {\r\n this._setOption('sorting', value);\r\n }\r\n get summary() {\r\n return this._getOption('summary');\r\n }\r\n set summary(value) {\r\n this._setOption('summary', value);\r\n }\r\n get _optionPath() {\r\n return 'remoteOperations';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoRemoteOperationsComponent.ɵfac = function DxoRemoteOperationsComponent_Factory(t) { return new (t || DxoRemoteOperationsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoRemoteOperationsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoRemoteOperationsComponent, selectors: [[\"dxo-remote-operations\"]], inputs: { filtering: \"filtering\", grouping: \"grouping\", groupPaging: \"groupPaging\", paging: \"paging\", sorting: \"sorting\", summary: \"summary\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoRemoteOperationsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRemoteOperationsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-remote-operations',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { filtering: [{\r\n type: Input\r\n }], grouping: [{\r\n type: Input\r\n }], groupPaging: [{\r\n type: Input\r\n }], paging: [{\r\n type: Input\r\n }], sorting: [{\r\n type: Input\r\n }], summary: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoRemoteOperationsModule {\r\n}\r\n/** @nocollapse */ DxoRemoteOperationsModule.ɵfac = function DxoRemoteOperationsModule_Factory(t) { return new (t || DxoRemoteOperationsModule)(); };\r\n/** @nocollapse */ DxoRemoteOperationsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoRemoteOperationsModule });\r\n/** @nocollapse */ DxoRemoteOperationsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRemoteOperationsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoRemoteOperationsComponent\r\n ],\r\n exports: [\r\n DxoRemoteOperationsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoRemoteOperationsModule, { declarations: [DxoRemoteOperationsComponent], exports: [DxoRemoteOperationsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoResourceAssignmentsComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get resourceIdExpr() {\r\n return this._getOption('resourceIdExpr');\r\n }\r\n set resourceIdExpr(value) {\r\n this._setOption('resourceIdExpr', value);\r\n }\r\n get taskIdExpr() {\r\n return this._getOption('taskIdExpr');\r\n }\r\n set taskIdExpr(value) {\r\n this._setOption('taskIdExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'resourceAssignments';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoResourceAssignmentsComponent.ɵfac = function DxoResourceAssignmentsComponent_Factory(t) { return new (t || DxoResourceAssignmentsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoResourceAssignmentsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoResourceAssignmentsComponent, selectors: [[\"dxo-resource-assignments\"]], inputs: { dataSource: \"dataSource\", keyExpr: \"keyExpr\", resourceIdExpr: \"resourceIdExpr\", taskIdExpr: \"taskIdExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoResourceAssignmentsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoResourceAssignmentsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-resource-assignments',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { dataSource: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], resourceIdExpr: [{\r\n type: Input\r\n }], taskIdExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoResourceAssignmentsModule {\r\n}\r\n/** @nocollapse */ DxoResourceAssignmentsModule.ɵfac = function DxoResourceAssignmentsModule_Factory(t) { return new (t || DxoResourceAssignmentsModule)(); };\r\n/** @nocollapse */ DxoResourceAssignmentsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoResourceAssignmentsModule });\r\n/** @nocollapse */ DxoResourceAssignmentsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoResourceAssignmentsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoResourceAssignmentsComponent\r\n ],\r\n exports: [\r\n DxoResourceAssignmentsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoResourceAssignmentsModule, { declarations: [DxoResourceAssignmentsComponent], exports: [DxoResourceAssignmentsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiResourceComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowMultiple() {\r\n return this._getOption('allowMultiple');\r\n }\r\n set allowMultiple(value) {\r\n this._setOption('allowMultiple', value);\r\n }\r\n get colorExpr() {\r\n return this._getOption('colorExpr');\r\n }\r\n set colorExpr(value) {\r\n this._setOption('colorExpr', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n get fieldExpr() {\r\n return this._getOption('fieldExpr');\r\n }\r\n set fieldExpr(value) {\r\n this._setOption('fieldExpr', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get useColorAsDefault() {\r\n return this._getOption('useColorAsDefault');\r\n }\r\n set useColorAsDefault(value) {\r\n this._setOption('useColorAsDefault', value);\r\n }\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'resources';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiResourceComponent.ɵfac = function DxiResourceComponent_Factory(t) { return new (t || DxiResourceComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiResourceComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiResourceComponent, selectors: [[\"dxi-resource\"]], inputs: { allowMultiple: \"allowMultiple\", colorExpr: \"colorExpr\", dataSource: \"dataSource\", displayExpr: \"displayExpr\", fieldExpr: \"fieldExpr\", label: \"label\", useColorAsDefault: \"useColorAsDefault\", valueExpr: \"valueExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiResourceComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiResourceComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-resource',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowMultiple: [{\r\n type: Input\r\n }], colorExpr: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], fieldExpr: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], useColorAsDefault: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiResourceModule {\r\n}\r\n/** @nocollapse */ DxiResourceModule.ɵfac = function DxiResourceModule_Factory(t) { return new (t || DxiResourceModule)(); };\r\n/** @nocollapse */ DxiResourceModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiResourceModule });\r\n/** @nocollapse */ DxiResourceModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiResourceModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiResourceComponent\r\n ],\r\n exports: [\r\n DxiResourceComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiResourceModule, { declarations: [DxiResourceComponent], exports: [DxiResourceComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoResourcesComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get colorExpr() {\r\n return this._getOption('colorExpr');\r\n }\r\n set colorExpr(value) {\r\n this._setOption('colorExpr', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get textExpr() {\r\n return this._getOption('textExpr');\r\n }\r\n set textExpr(value) {\r\n this._setOption('textExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'resources';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoResourcesComponent.ɵfac = function DxoResourcesComponent_Factory(t) { return new (t || DxoResourcesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoResourcesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoResourcesComponent, selectors: [[\"dxo-resources\"]], inputs: { colorExpr: \"colorExpr\", dataSource: \"dataSource\", keyExpr: \"keyExpr\", textExpr: \"textExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoResourcesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoResourcesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-resources',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { colorExpr: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], textExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoResourcesModule {\r\n}\r\n/** @nocollapse */ DxoResourcesModule.ɵfac = function DxoResourcesModule_Factory(t) { return new (t || DxoResourcesModule)(); };\r\n/** @nocollapse */ DxoResourcesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoResourcesModule });\r\n/** @nocollapse */ DxoResourcesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoResourcesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoResourcesComponent\r\n ],\r\n exports: [\r\n DxoResourcesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoResourcesModule, { declarations: [DxoResourcesComponent], exports: [DxoResourcesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiRouteComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get locations() {\r\n return this._getOption('locations');\r\n }\r\n set locations(value) {\r\n this._setOption('locations', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get weight() {\r\n return this._getOption('weight');\r\n }\r\n set weight(value) {\r\n this._setOption('weight', value);\r\n }\r\n get _optionPath() {\r\n return 'routes';\r\n }\r\n get locationsChildren() {\r\n return this._getOption('locations');\r\n }\r\n set locationsChildren(value) {\r\n this.setChildren('locations', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiRouteComponent.ɵfac = function DxiRouteComponent_Factory(t) { return new (t || DxiRouteComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiRouteComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiRouteComponent, selectors: [[\"dxi-route\"]], contentQueries: function DxiRouteComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiLocationComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.locationsChildren = _t);\r\n } }, inputs: { color: \"color\", locations: \"locations\", mode: \"mode\", opacity: \"opacity\", weight: \"weight\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiRouteComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRouteComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-route',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], locations: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], weight: [{\r\n type: Input\r\n }], locationsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiLocationComponent)]\r\n }] }); })();\r\nclass DxiRouteModule {\r\n}\r\n/** @nocollapse */ DxiRouteModule.ɵfac = function DxiRouteModule_Factory(t) { return new (t || DxiRouteModule)(); };\r\n/** @nocollapse */ DxiRouteModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiRouteModule });\r\n/** @nocollapse */ DxiRouteModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRouteModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiRouteComponent\r\n ],\r\n exports: [\r\n DxiRouteComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiRouteModule, { declarations: [DxiRouteComponent], exports: [DxiRouteComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoRowDraggingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowDropInsideItem() {\r\n return this._getOption('allowDropInsideItem');\r\n }\r\n set allowDropInsideItem(value) {\r\n this._setOption('allowDropInsideItem', value);\r\n }\r\n get allowReordering() {\r\n return this._getOption('allowReordering');\r\n }\r\n set allowReordering(value) {\r\n this._setOption('allowReordering', value);\r\n }\r\n get autoScroll() {\r\n return this._getOption('autoScroll');\r\n }\r\n set autoScroll(value) {\r\n this._setOption('autoScroll', value);\r\n }\r\n get boundary() {\r\n return this._getOption('boundary');\r\n }\r\n set boundary(value) {\r\n this._setOption('boundary', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get cursorOffset() {\r\n return this._getOption('cursorOffset');\r\n }\r\n set cursorOffset(value) {\r\n this._setOption('cursorOffset', value);\r\n }\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n get dragDirection() {\r\n return this._getOption('dragDirection');\r\n }\r\n set dragDirection(value) {\r\n this._setOption('dragDirection', value);\r\n }\r\n get dragTemplate() {\r\n return this._getOption('dragTemplate');\r\n }\r\n set dragTemplate(value) {\r\n this._setOption('dragTemplate', value);\r\n }\r\n get dropFeedbackMode() {\r\n return this._getOption('dropFeedbackMode');\r\n }\r\n set dropFeedbackMode(value) {\r\n this._setOption('dropFeedbackMode', value);\r\n }\r\n get filter() {\r\n return this._getOption('filter');\r\n }\r\n set filter(value) {\r\n this._setOption('filter', value);\r\n }\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n get handle() {\r\n return this._getOption('handle');\r\n }\r\n set handle(value) {\r\n this._setOption('handle', value);\r\n }\r\n get onAdd() {\r\n return this._getOption('onAdd');\r\n }\r\n set onAdd(value) {\r\n this._setOption('onAdd', value);\r\n }\r\n get onDragChange() {\r\n return this._getOption('onDragChange');\r\n }\r\n set onDragChange(value) {\r\n this._setOption('onDragChange', value);\r\n }\r\n get onDragEnd() {\r\n return this._getOption('onDragEnd');\r\n }\r\n set onDragEnd(value) {\r\n this._setOption('onDragEnd', value);\r\n }\r\n get onDragMove() {\r\n return this._getOption('onDragMove');\r\n }\r\n set onDragMove(value) {\r\n this._setOption('onDragMove', value);\r\n }\r\n get onDragStart() {\r\n return this._getOption('onDragStart');\r\n }\r\n set onDragStart(value) {\r\n this._setOption('onDragStart', value);\r\n }\r\n get onRemove() {\r\n return this._getOption('onRemove');\r\n }\r\n set onRemove(value) {\r\n this._setOption('onRemove', value);\r\n }\r\n get onReorder() {\r\n return this._getOption('onReorder');\r\n }\r\n set onReorder(value) {\r\n this._setOption('onReorder', value);\r\n }\r\n get scrollSensitivity() {\r\n return this._getOption('scrollSensitivity');\r\n }\r\n set scrollSensitivity(value) {\r\n this._setOption('scrollSensitivity', value);\r\n }\r\n get scrollSpeed() {\r\n return this._getOption('scrollSpeed');\r\n }\r\n set scrollSpeed(value) {\r\n this._setOption('scrollSpeed', value);\r\n }\r\n get showDragIcons() {\r\n return this._getOption('showDragIcons');\r\n }\r\n set showDragIcons(value) {\r\n this._setOption('showDragIcons', value);\r\n }\r\n get _optionPath() {\r\n return 'rowDragging';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoRowDraggingComponent.ɵfac = function DxoRowDraggingComponent_Factory(t) { return new (t || DxoRowDraggingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoRowDraggingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoRowDraggingComponent, selectors: [[\"dxo-row-dragging\"]], inputs: { allowDropInsideItem: \"allowDropInsideItem\", allowReordering: \"allowReordering\", autoScroll: \"autoScroll\", boundary: \"boundary\", container: \"container\", cursorOffset: \"cursorOffset\", data: \"data\", dragDirection: \"dragDirection\", dragTemplate: \"dragTemplate\", dropFeedbackMode: \"dropFeedbackMode\", filter: \"filter\", group: \"group\", handle: \"handle\", onAdd: \"onAdd\", onDragChange: \"onDragChange\", onDragEnd: \"onDragEnd\", onDragMove: \"onDragMove\", onDragStart: \"onDragStart\", onRemove: \"onRemove\", onReorder: \"onReorder\", scrollSensitivity: \"scrollSensitivity\", scrollSpeed: \"scrollSpeed\", showDragIcons: \"showDragIcons\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoRowDraggingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRowDraggingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-row-dragging',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowDropInsideItem: [{\r\n type: Input\r\n }], allowReordering: [{\r\n type: Input\r\n }], autoScroll: [{\r\n type: Input\r\n }], boundary: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], cursorOffset: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], dragDirection: [{\r\n type: Input\r\n }], dragTemplate: [{\r\n type: Input\r\n }], dropFeedbackMode: [{\r\n type: Input\r\n }], filter: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], handle: [{\r\n type: Input\r\n }], onAdd: [{\r\n type: Input\r\n }], onDragChange: [{\r\n type: Input\r\n }], onDragEnd: [{\r\n type: Input\r\n }], onDragMove: [{\r\n type: Input\r\n }], onDragStart: [{\r\n type: Input\r\n }], onRemove: [{\r\n type: Input\r\n }], onReorder: [{\r\n type: Input\r\n }], scrollSensitivity: [{\r\n type: Input\r\n }], scrollSpeed: [{\r\n type: Input\r\n }], showDragIcons: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoRowDraggingModule {\r\n}\r\n/** @nocollapse */ DxoRowDraggingModule.ɵfac = function DxoRowDraggingModule_Factory(t) { return new (t || DxoRowDraggingModule)(); };\r\n/** @nocollapse */ DxoRowDraggingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoRowDraggingModule });\r\n/** @nocollapse */ DxoRowDraggingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoRowDraggingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoRowDraggingComponent\r\n ],\r\n exports: [\r\n DxoRowDraggingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoRowDraggingModule, { declarations: [DxoRowDraggingComponent], exports: [DxoRowDraggingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiRowComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get baseSize() {\r\n return this._getOption('baseSize');\r\n }\r\n set baseSize(value) {\r\n this._setOption('baseSize', value);\r\n }\r\n get ratio() {\r\n return this._getOption('ratio');\r\n }\r\n set ratio(value) {\r\n this._setOption('ratio', value);\r\n }\r\n get screen() {\r\n return this._getOption('screen');\r\n }\r\n set screen(value) {\r\n this._setOption('screen', value);\r\n }\r\n get shrink() {\r\n return this._getOption('shrink');\r\n }\r\n set shrink(value) {\r\n this._setOption('shrink', value);\r\n }\r\n get _optionPath() {\r\n return 'rows';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiRowComponent.ɵfac = function DxiRowComponent_Factory(t) { return new (t || DxiRowComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiRowComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiRowComponent, selectors: [[\"dxi-row\"]], inputs: { baseSize: \"baseSize\", ratio: \"ratio\", screen: \"screen\", shrink: \"shrink\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiRowComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRowComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-row',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { baseSize: [{\r\n type: Input\r\n }], ratio: [{\r\n type: Input\r\n }], screen: [{\r\n type: Input\r\n }], shrink: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiRowModule {\r\n}\r\n/** @nocollapse */ DxiRowModule.ɵfac = function DxiRowModule_Factory(t) { return new (t || DxiRowModule)(); };\r\n/** @nocollapse */ DxiRowModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiRowModule });\r\n/** @nocollapse */ DxiRowModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiRowModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiRowComponent\r\n ],\r\n exports: [\r\n DxiRowComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiRowModule, { declarations: [DxiRowComponent], exports: [DxiRowComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoScaleTypeRangeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n get _optionPath() {\r\n return 'scaleTypeRange';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoScaleTypeRangeComponent.ɵfac = function DxoScaleTypeRangeComponent_Factory(t) { return new (t || DxoScaleTypeRangeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoScaleTypeRangeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoScaleTypeRangeComponent, selectors: [[\"dxo-scale-type-range\"]], inputs: { max: \"max\", min: \"min\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoScaleTypeRangeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScaleTypeRangeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-scale-type-range',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoScaleTypeRangeModule {\r\n}\r\n/** @nocollapse */ DxoScaleTypeRangeModule.ɵfac = function DxoScaleTypeRangeModule_Factory(t) { return new (t || DxoScaleTypeRangeModule)(); };\r\n/** @nocollapse */ DxoScaleTypeRangeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoScaleTypeRangeModule });\r\n/** @nocollapse */ DxoScaleTypeRangeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScaleTypeRangeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoScaleTypeRangeComponent\r\n ],\r\n exports: [\r\n DxoScaleTypeRangeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoScaleTypeRangeModule, { declarations: [DxoScaleTypeRangeComponent], exports: [DxoScaleTypeRangeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoScaleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowDecimals() {\r\n return this._getOption('allowDecimals');\r\n }\r\n set allowDecimals(value) {\r\n this._setOption('allowDecimals', value);\r\n }\r\n get customMinorTicks() {\r\n return this._getOption('customMinorTicks');\r\n }\r\n set customMinorTicks(value) {\r\n this._setOption('customMinorTicks', value);\r\n }\r\n get customTicks() {\r\n return this._getOption('customTicks');\r\n }\r\n set customTicks(value) {\r\n this._setOption('customTicks', value);\r\n }\r\n get endValue() {\r\n return this._getOption('endValue');\r\n }\r\n set endValue(value) {\r\n this._setOption('endValue', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get minorTick() {\r\n return this._getOption('minorTick');\r\n }\r\n set minorTick(value) {\r\n this._setOption('minorTick', value);\r\n }\r\n get minorTickInterval() {\r\n return this._getOption('minorTickInterval');\r\n }\r\n set minorTickInterval(value) {\r\n this._setOption('minorTickInterval', value);\r\n }\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n get scaleDivisionFactor() {\r\n return this._getOption('scaleDivisionFactor');\r\n }\r\n set scaleDivisionFactor(value) {\r\n this._setOption('scaleDivisionFactor', value);\r\n }\r\n get startValue() {\r\n return this._getOption('startValue');\r\n }\r\n set startValue(value) {\r\n this._setOption('startValue', value);\r\n }\r\n get tick() {\r\n return this._getOption('tick');\r\n }\r\n set tick(value) {\r\n this._setOption('tick', value);\r\n }\r\n get tickInterval() {\r\n return this._getOption('tickInterval');\r\n }\r\n set tickInterval(value) {\r\n this._setOption('tickInterval', value);\r\n }\r\n get horizontalOrientation() {\r\n return this._getOption('horizontalOrientation');\r\n }\r\n set horizontalOrientation(value) {\r\n this._setOption('horizontalOrientation', value);\r\n }\r\n get verticalOrientation() {\r\n return this._getOption('verticalOrientation');\r\n }\r\n set verticalOrientation(value) {\r\n this._setOption('verticalOrientation', value);\r\n }\r\n get aggregateByCategory() {\r\n return this._getOption('aggregateByCategory');\r\n }\r\n set aggregateByCategory(value) {\r\n this._setOption('aggregateByCategory', value);\r\n }\r\n get aggregationGroupWidth() {\r\n return this._getOption('aggregationGroupWidth');\r\n }\r\n set aggregationGroupWidth(value) {\r\n this._setOption('aggregationGroupWidth', value);\r\n }\r\n get aggregationInterval() {\r\n return this._getOption('aggregationInterval');\r\n }\r\n set aggregationInterval(value) {\r\n this._setOption('aggregationInterval', value);\r\n }\r\n get breaks() {\r\n return this._getOption('breaks');\r\n }\r\n set breaks(value) {\r\n this._setOption('breaks', value);\r\n }\r\n get breakStyle() {\r\n return this._getOption('breakStyle');\r\n }\r\n set breakStyle(value) {\r\n this._setOption('breakStyle', value);\r\n }\r\n get categories() {\r\n return this._getOption('categories');\r\n }\r\n set categories(value) {\r\n this._setOption('categories', value);\r\n }\r\n get discreteAxisDivisionMode() {\r\n return this._getOption('discreteAxisDivisionMode');\r\n }\r\n set discreteAxisDivisionMode(value) {\r\n this._setOption('discreteAxisDivisionMode', value);\r\n }\r\n get endOnTick() {\r\n return this._getOption('endOnTick');\r\n }\r\n set endOnTick(value) {\r\n this._setOption('endOnTick', value);\r\n }\r\n get holidays() {\r\n return this._getOption('holidays');\r\n }\r\n set holidays(value) {\r\n this._setOption('holidays', value);\r\n }\r\n get linearThreshold() {\r\n return this._getOption('linearThreshold');\r\n }\r\n set linearThreshold(value) {\r\n this._setOption('linearThreshold', value);\r\n }\r\n get logarithmBase() {\r\n return this._getOption('logarithmBase');\r\n }\r\n set logarithmBase(value) {\r\n this._setOption('logarithmBase', value);\r\n }\r\n get marker() {\r\n return this._getOption('marker');\r\n }\r\n set marker(value) {\r\n this._setOption('marker', value);\r\n }\r\n get maxRange() {\r\n return this._getOption('maxRange');\r\n }\r\n set maxRange(value) {\r\n this._setOption('maxRange', value);\r\n }\r\n get minorTickCount() {\r\n return this._getOption('minorTickCount');\r\n }\r\n set minorTickCount(value) {\r\n this._setOption('minorTickCount', value);\r\n }\r\n get minRange() {\r\n return this._getOption('minRange');\r\n }\r\n set minRange(value) {\r\n this._setOption('minRange', value);\r\n }\r\n get placeholderHeight() {\r\n return this._getOption('placeholderHeight');\r\n }\r\n set placeholderHeight(value) {\r\n this._setOption('placeholderHeight', value);\r\n }\r\n get showCustomBoundaryTicks() {\r\n return this._getOption('showCustomBoundaryTicks');\r\n }\r\n set showCustomBoundaryTicks(value) {\r\n this._setOption('showCustomBoundaryTicks', value);\r\n }\r\n get singleWorkdays() {\r\n return this._getOption('singleWorkdays');\r\n }\r\n set singleWorkdays(value) {\r\n this._setOption('singleWorkdays', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueType() {\r\n return this._getOption('valueType');\r\n }\r\n set valueType(value) {\r\n this._setOption('valueType', value);\r\n }\r\n get workdaysOnly() {\r\n return this._getOption('workdaysOnly');\r\n }\r\n set workdaysOnly(value) {\r\n this._setOption('workdaysOnly', value);\r\n }\r\n get workWeek() {\r\n return this._getOption('workWeek');\r\n }\r\n set workWeek(value) {\r\n this._setOption('workWeek', value);\r\n }\r\n get _optionPath() {\r\n return 'scale';\r\n }\r\n get breaksChildren() {\r\n return this._getOption('breaks');\r\n }\r\n set breaksChildren(value) {\r\n this.setChildren('breaks', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoScaleComponent.ɵfac = function DxoScaleComponent_Factory(t) { return new (t || DxoScaleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoScaleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoScaleComponent, selectors: [[\"dxo-scale\"]], contentQueries: function DxoScaleComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiBreakComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.breaksChildren = _t);\r\n } }, inputs: { allowDecimals: \"allowDecimals\", customMinorTicks: \"customMinorTicks\", customTicks: \"customTicks\", endValue: \"endValue\", label: \"label\", minorTick: \"minorTick\", minorTickInterval: \"minorTickInterval\", orientation: \"orientation\", scaleDivisionFactor: \"scaleDivisionFactor\", startValue: \"startValue\", tick: \"tick\", tickInterval: \"tickInterval\", horizontalOrientation: \"horizontalOrientation\", verticalOrientation: \"verticalOrientation\", aggregateByCategory: \"aggregateByCategory\", aggregationGroupWidth: \"aggregationGroupWidth\", aggregationInterval: \"aggregationInterval\", breaks: \"breaks\", breakStyle: \"breakStyle\", categories: \"categories\", discreteAxisDivisionMode: \"discreteAxisDivisionMode\", endOnTick: \"endOnTick\", holidays: \"holidays\", linearThreshold: \"linearThreshold\", logarithmBase: \"logarithmBase\", marker: \"marker\", maxRange: \"maxRange\", minorTickCount: \"minorTickCount\", minRange: \"minRange\", placeholderHeight: \"placeholderHeight\", showCustomBoundaryTicks: \"showCustomBoundaryTicks\", singleWorkdays: \"singleWorkdays\", type: \"type\", valueType: \"valueType\", workdaysOnly: \"workdaysOnly\", workWeek: \"workWeek\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoScaleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScaleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-scale',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowDecimals: [{\r\n type: Input\r\n }], customMinorTicks: [{\r\n type: Input\r\n }], customTicks: [{\r\n type: Input\r\n }], endValue: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], minorTick: [{\r\n type: Input\r\n }], minorTickInterval: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], scaleDivisionFactor: [{\r\n type: Input\r\n }], startValue: [{\r\n type: Input\r\n }], tick: [{\r\n type: Input\r\n }], tickInterval: [{\r\n type: Input\r\n }], horizontalOrientation: [{\r\n type: Input\r\n }], verticalOrientation: [{\r\n type: Input\r\n }], aggregateByCategory: [{\r\n type: Input\r\n }], aggregationGroupWidth: [{\r\n type: Input\r\n }], aggregationInterval: [{\r\n type: Input\r\n }], breaks: [{\r\n type: Input\r\n }], breakStyle: [{\r\n type: Input\r\n }], categories: [{\r\n type: Input\r\n }], discreteAxisDivisionMode: [{\r\n type: Input\r\n }], endOnTick: [{\r\n type: Input\r\n }], holidays: [{\r\n type: Input\r\n }], linearThreshold: [{\r\n type: Input\r\n }], logarithmBase: [{\r\n type: Input\r\n }], marker: [{\r\n type: Input\r\n }], maxRange: [{\r\n type: Input\r\n }], minorTickCount: [{\r\n type: Input\r\n }], minRange: [{\r\n type: Input\r\n }], placeholderHeight: [{\r\n type: Input\r\n }], showCustomBoundaryTicks: [{\r\n type: Input\r\n }], singleWorkdays: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], valueType: [{\r\n type: Input\r\n }], workdaysOnly: [{\r\n type: Input\r\n }], workWeek: [{\r\n type: Input\r\n }], breaksChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiBreakComponent)]\r\n }] }); })();\r\nclass DxoScaleModule {\r\n}\r\n/** @nocollapse */ DxoScaleModule.ɵfac = function DxoScaleModule_Factory(t) { return new (t || DxoScaleModule)(); };\r\n/** @nocollapse */ DxoScaleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoScaleModule });\r\n/** @nocollapse */ DxoScaleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScaleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoScaleComponent\r\n ],\r\n exports: [\r\n DxoScaleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoScaleModule, { declarations: [DxoScaleComponent], exports: [DxoScaleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoScatterComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'scatter';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoScatterComponent.ɵfac = function DxoScatterComponent_Factory(t) { return new (t || DxoScatterComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoScatterComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoScatterComponent, selectors: [[\"dxo-scatter\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoScatterComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScatterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-scatter',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoScatterModule {\r\n}\r\n/** @nocollapse */ DxoScatterModule.ɵfac = function DxoScatterModule_Factory(t) { return new (t || DxoScatterModule)(); };\r\n/** @nocollapse */ DxoScatterModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoScatterModule });\r\n/** @nocollapse */ DxoScatterModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScatterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoScatterComponent\r\n ],\r\n exports: [\r\n DxoScatterComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoScatterModule, { declarations: [DxoScatterComponent], exports: [DxoScatterComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoScrollBarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'scrollBar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoScrollBarComponent.ɵfac = function DxoScrollBarComponent_Factory(t) { return new (t || DxoScrollBarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoScrollBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoScrollBarComponent, selectors: [[\"dxo-scroll-bar\"]], inputs: { color: \"color\", offset: \"offset\", opacity: \"opacity\", position: \"position\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoScrollBarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScrollBarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-scroll-bar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoScrollBarModule {\r\n}\r\n/** @nocollapse */ DxoScrollBarModule.ɵfac = function DxoScrollBarModule_Factory(t) { return new (t || DxoScrollBarModule)(); };\r\n/** @nocollapse */ DxoScrollBarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoScrollBarModule });\r\n/** @nocollapse */ DxoScrollBarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScrollBarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoScrollBarComponent\r\n ],\r\n exports: [\r\n DxoScrollBarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoScrollBarModule, { declarations: [DxoScrollBarComponent], exports: [DxoScrollBarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSchedulerScrolling extends NestedOption {\r\n get columnRenderingMode() {\r\n return this._getOption('columnRenderingMode');\r\n }\r\n set columnRenderingMode(value) {\r\n this._setOption('columnRenderingMode', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get preloadEnabled() {\r\n return this._getOption('preloadEnabled');\r\n }\r\n set preloadEnabled(value) {\r\n this._setOption('preloadEnabled', value);\r\n }\r\n get renderAsync() {\r\n return this._getOption('renderAsync');\r\n }\r\n set renderAsync(value) {\r\n this._setOption('renderAsync', value);\r\n }\r\n get rowRenderingMode() {\r\n return this._getOption('rowRenderingMode');\r\n }\r\n set rowRenderingMode(value) {\r\n this._setOption('rowRenderingMode', value);\r\n }\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n get scrollByThumb() {\r\n return this._getOption('scrollByThumb');\r\n }\r\n set scrollByThumb(value) {\r\n this._setOption('scrollByThumb', value);\r\n }\r\n get showScrollbar() {\r\n return this._getOption('showScrollbar');\r\n }\r\n set showScrollbar(value) {\r\n this._setOption('showScrollbar', value);\r\n }\r\n get useNative() {\r\n return this._getOption('useNative');\r\n }\r\n set useNative(value) {\r\n this._setOption('useNative', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoSchedulerScrolling.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoSchedulerScrolling_BaseFactory; return function DxoSchedulerScrolling_Factory(t) { return (ɵDxoSchedulerScrolling_BaseFactory || (ɵDxoSchedulerScrolling_BaseFactory = i0.ɵɵgetInheritedFactory(DxoSchedulerScrolling)))(t || DxoSchedulerScrolling); }; }();\r\n/** @nocollapse */ DxoSchedulerScrolling.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSchedulerScrolling, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSchedulerScrolling_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSchedulerScrolling, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoScrollingComponent extends DxoSchedulerScrolling {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'scrolling';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoScrollingComponent.ɵfac = function DxoScrollingComponent_Factory(t) { return new (t || DxoScrollingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoScrollingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoScrollingComponent, selectors: [[\"dxo-scrolling\"]], inputs: { columnRenderingMode: \"columnRenderingMode\", mode: \"mode\", preloadEnabled: \"preloadEnabled\", renderAsync: \"renderAsync\", rowRenderingMode: \"rowRenderingMode\", scrollByContent: \"scrollByContent\", scrollByThumb: \"scrollByThumb\", showScrollbar: \"showScrollbar\", useNative: \"useNative\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoScrollingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScrollingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-scrolling',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'columnRenderingMode',\r\n 'mode',\r\n 'preloadEnabled',\r\n 'renderAsync',\r\n 'rowRenderingMode',\r\n 'scrollByContent',\r\n 'scrollByThumb',\r\n 'showScrollbar',\r\n 'useNative'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoScrollingModule {\r\n}\r\n/** @nocollapse */ DxoScrollingModule.ɵfac = function DxoScrollingModule_Factory(t) { return new (t || DxoScrollingModule)(); };\r\n/** @nocollapse */ DxoScrollingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoScrollingModule });\r\n/** @nocollapse */ DxoScrollingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoScrollingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoScrollingComponent\r\n ],\r\n exports: [\r\n DxoScrollingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoScrollingModule, { declarations: [DxoScrollingComponent], exports: [DxoScrollingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTextBoxOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n get mask() {\r\n return this._getOption('mask');\r\n }\r\n set mask(value) {\r\n this._setOption('mask', value);\r\n }\r\n get maskChar() {\r\n return this._getOption('maskChar');\r\n }\r\n set maskChar(value) {\r\n this._setOption('maskChar', value);\r\n }\r\n get maskInvalidMessage() {\r\n return this._getOption('maskInvalidMessage');\r\n }\r\n set maskInvalidMessage(value) {\r\n this._setOption('maskInvalidMessage', value);\r\n }\r\n get maskRules() {\r\n return this._getOption('maskRules');\r\n }\r\n set maskRules(value) {\r\n this._setOption('maskRules', value);\r\n }\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get onChange() {\r\n return this._getOption('onChange');\r\n }\r\n set onChange(value) {\r\n this._setOption('onChange', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onCopy() {\r\n return this._getOption('onCopy');\r\n }\r\n set onCopy(value) {\r\n this._setOption('onCopy', value);\r\n }\r\n get onCut() {\r\n return this._getOption('onCut');\r\n }\r\n set onCut(value) {\r\n this._setOption('onCut', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onEnterKey() {\r\n return this._getOption('onEnterKey');\r\n }\r\n set onEnterKey(value) {\r\n this._setOption('onEnterKey', value);\r\n }\r\n get onFocusIn() {\r\n return this._getOption('onFocusIn');\r\n }\r\n set onFocusIn(value) {\r\n this._setOption('onFocusIn', value);\r\n }\r\n get onFocusOut() {\r\n return this._getOption('onFocusOut');\r\n }\r\n set onFocusOut(value) {\r\n this._setOption('onFocusOut', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onInput() {\r\n return this._getOption('onInput');\r\n }\r\n set onInput(value) {\r\n this._setOption('onInput', value);\r\n }\r\n get onKeyDown() {\r\n return this._getOption('onKeyDown');\r\n }\r\n set onKeyDown(value) {\r\n this._setOption('onKeyDown', value);\r\n }\r\n get onKeyUp() {\r\n return this._getOption('onKeyUp');\r\n }\r\n set onKeyUp(value) {\r\n this._setOption('onKeyUp', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onPaste() {\r\n return this._getOption('onPaste');\r\n }\r\n set onPaste(value) {\r\n this._setOption('onPaste', value);\r\n }\r\n get onValueChanged() {\r\n return this._getOption('onValueChanged');\r\n }\r\n set onValueChanged(value) {\r\n this._setOption('onValueChanged', value);\r\n }\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n get showMaskMode() {\r\n return this._getOption('showMaskMode');\r\n }\r\n set showMaskMode(value) {\r\n this._setOption('showMaskMode', value);\r\n }\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get useMaskedValue() {\r\n return this._getOption('useMaskedValue');\r\n }\r\n set useMaskedValue(value) {\r\n this._setOption('useMaskedValue', value);\r\n }\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoTextBoxOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoTextBoxOptions_BaseFactory; return function DxoTextBoxOptions_Factory(t) { return (ɵDxoTextBoxOptions_BaseFactory || (ɵDxoTextBoxOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoTextBoxOptions)))(t || DxoTextBoxOptions); }; }();\r\n/** @nocollapse */ DxoTextBoxOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTextBoxOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTextBoxOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTextBoxOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSearchEditorOptionsComponent extends DxoTextBoxOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'textChange' },\r\n { emit: 'valueChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'searchEditorOptions';\r\n }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSearchEditorOptionsComponent.ɵfac = function DxoSearchEditorOptionsComponent_Factory(t) { return new (t || DxoSearchEditorOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSearchEditorOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSearchEditorOptionsComponent, selectors: [[\"dxo-search-editor-options\"]], contentQueries: function DxoSearchEditorOptionsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", label: \"label\", labelMode: \"labelMode\", mask: \"mask\", maskChar: \"maskChar\", maskInvalidMessage: \"maskInvalidMessage\", maskRules: \"maskRules\", maxLength: \"maxLength\", mode: \"mode\", name: \"name\", onChange: \"onChange\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showMaskMode: \"showMaskMode\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useMaskedValue: \"useMaskedValue\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { textChange: \"textChange\", valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSearchEditorOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchEditorOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-search-editor-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'buttons',\r\n 'disabled',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'inputAttr',\r\n 'isDirty',\r\n 'isValid',\r\n 'label',\r\n 'labelMode',\r\n 'mask',\r\n 'maskChar',\r\n 'maskInvalidMessage',\r\n 'maskRules',\r\n 'maxLength',\r\n 'mode',\r\n 'name',\r\n 'onChange',\r\n 'onContentReady',\r\n 'onCopy',\r\n 'onCut',\r\n 'onDisposing',\r\n 'onEnterKey',\r\n 'onFocusIn',\r\n 'onFocusOut',\r\n 'onInitialized',\r\n 'onInput',\r\n 'onKeyDown',\r\n 'onKeyUp',\r\n 'onOptionChanged',\r\n 'onPaste',\r\n 'onValueChanged',\r\n 'placeholder',\r\n 'readOnly',\r\n 'rtlEnabled',\r\n 'showClearButton',\r\n 'showMaskMode',\r\n 'spellcheck',\r\n 'stylingMode',\r\n 'tabIndex',\r\n 'text',\r\n 'useMaskedValue',\r\n 'validationError',\r\n 'validationErrors',\r\n 'validationMessageMode',\r\n 'validationMessagePosition',\r\n 'validationStatus',\r\n 'value',\r\n 'valueChangeEvent',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { textChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiButtonComponent)]\r\n }] }); })();\r\nclass DxoSearchEditorOptionsModule {\r\n}\r\n/** @nocollapse */ DxoSearchEditorOptionsModule.ɵfac = function DxoSearchEditorOptionsModule_Factory(t) { return new (t || DxoSearchEditorOptionsModule)(); };\r\n/** @nocollapse */ DxoSearchEditorOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSearchEditorOptionsModule });\r\n/** @nocollapse */ DxoSearchEditorOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchEditorOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSearchEditorOptionsComponent\r\n ],\r\n exports: [\r\n DxoSearchEditorOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSearchEditorOptionsModule, { declarations: [DxoSearchEditorOptionsComponent], exports: [DxoSearchEditorOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSearchPanelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'textChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get highlightCaseSensitive() {\r\n return this._getOption('highlightCaseSensitive');\r\n }\r\n set highlightCaseSensitive(value) {\r\n this._setOption('highlightCaseSensitive', value);\r\n }\r\n get highlightSearchText() {\r\n return this._getOption('highlightSearchText');\r\n }\r\n set highlightSearchText(value) {\r\n this._setOption('highlightSearchText', value);\r\n }\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n get searchVisibleColumnsOnly() {\r\n return this._getOption('searchVisibleColumnsOnly');\r\n }\r\n set searchVisibleColumnsOnly(value) {\r\n this._setOption('searchVisibleColumnsOnly', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'searchPanel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSearchPanelComponent.ɵfac = function DxoSearchPanelComponent_Factory(t) { return new (t || DxoSearchPanelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSearchPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSearchPanelComponent, selectors: [[\"dxo-search-panel\"]], inputs: { highlightCaseSensitive: \"highlightCaseSensitive\", highlightSearchText: \"highlightSearchText\", placeholder: \"placeholder\", searchVisibleColumnsOnly: \"searchVisibleColumnsOnly\", text: \"text\", visible: \"visible\", width: \"width\" }, outputs: { textChange: \"textChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSearchPanelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-search-panel',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { highlightCaseSensitive: [{\r\n type: Input\r\n }], highlightSearchText: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], searchVisibleColumnsOnly: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], textChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoSearchPanelModule {\r\n}\r\n/** @nocollapse */ DxoSearchPanelModule.ɵfac = function DxoSearchPanelModule_Factory(t) { return new (t || DxoSearchPanelModule)(); };\r\n/** @nocollapse */ DxoSearchPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSearchPanelModule });\r\n/** @nocollapse */ DxoSearchPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSearchPanelComponent\r\n ],\r\n exports: [\r\n DxoSearchPanelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSearchPanelModule, { declarations: [DxoSearchPanelComponent], exports: [DxoSearchPanelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColumnChooserSearchConfig extends NestedOption {\r\n get editorOptions() {\r\n return this._getOption('editorOptions');\r\n }\r\n set editorOptions(value) {\r\n this._setOption('editorOptions', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get timeout() {\r\n return this._getOption('timeout');\r\n }\r\n set timeout(value) {\r\n this._setOption('timeout', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoColumnChooserSearchConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoColumnChooserSearchConfig_BaseFactory; return function DxoColumnChooserSearchConfig_Factory(t) { return (ɵDxoColumnChooserSearchConfig_BaseFactory || (ɵDxoColumnChooserSearchConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoColumnChooserSearchConfig)))(t || DxoColumnChooserSearchConfig); }; }();\r\n/** @nocollapse */ DxoColumnChooserSearchConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColumnChooserSearchConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColumnChooserSearchConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnChooserSearchConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSearchComponent extends DxoColumnChooserSearchConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'search';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSearchComponent.ɵfac = function DxoSearchComponent_Factory(t) { return new (t || DxoSearchComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSearchComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSearchComponent, selectors: [[\"dxo-search\"]], inputs: { editorOptions: \"editorOptions\", enabled: \"enabled\", timeout: \"timeout\", mode: \"mode\", searchExpr: \"searchExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSearchComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-search',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'editorOptions',\r\n 'enabled',\r\n 'timeout',\r\n 'mode',\r\n 'searchExpr'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSearchModule {\r\n}\r\n/** @nocollapse */ DxoSearchModule.ɵfac = function DxoSearchModule_Factory(t) { return new (t || DxoSearchModule)(); };\r\n/** @nocollapse */ DxoSearchModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSearchModule });\r\n/** @nocollapse */ DxoSearchModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSearchModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSearchComponent\r\n ],\r\n exports: [\r\n DxoSearchComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSearchModule, { declarations: [DxoSearchComponent], exports: [DxoSearchComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSelectionStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get hatching() {\r\n return this._getOption('hatching');\r\n }\r\n set hatching(value) {\r\n this._setOption('hatching', value);\r\n }\r\n get highlight() {\r\n return this._getOption('highlight');\r\n }\r\n set highlight(value) {\r\n this._setOption('highlight', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'selectionStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSelectionStyleComponent.ɵfac = function DxoSelectionStyleComponent_Factory(t) { return new (t || DxoSelectionStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSelectionStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSelectionStyleComponent, selectors: [[\"dxo-selection-style\"]], inputs: { border: \"border\", color: \"color\", size: \"size\", dashStyle: \"dashStyle\", hatching: \"hatching\", highlight: \"highlight\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSelectionStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSelectionStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-selection-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], hatching: [{\r\n type: Input\r\n }], highlight: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSelectionStyleModule {\r\n}\r\n/** @nocollapse */ DxoSelectionStyleModule.ɵfac = function DxoSelectionStyleModule_Factory(t) { return new (t || DxoSelectionStyleModule)(); };\r\n/** @nocollapse */ DxoSelectionStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSelectionStyleModule });\r\n/** @nocollapse */ DxoSelectionStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSelectionStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSelectionStyleComponent\r\n ],\r\n exports: [\r\n DxoSelectionStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSelectionStyleModule, { declarations: [DxoSelectionStyleComponent], exports: [DxoSelectionStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoColumnChooserSelectionConfig extends NestedOption {\r\n get allowSelectAll() {\r\n return this._getOption('allowSelectAll');\r\n }\r\n set allowSelectAll(value) {\r\n this._setOption('allowSelectAll', value);\r\n }\r\n get recursive() {\r\n return this._getOption('recursive');\r\n }\r\n set recursive(value) {\r\n this._setOption('recursive', value);\r\n }\r\n get selectByClick() {\r\n return this._getOption('selectByClick');\r\n }\r\n set selectByClick(value) {\r\n this._setOption('selectByClick', value);\r\n }\r\n get deferred() {\r\n return this._getOption('deferred');\r\n }\r\n set deferred(value) {\r\n this._setOption('deferred', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get selectAllMode() {\r\n return this._getOption('selectAllMode');\r\n }\r\n set selectAllMode(value) {\r\n this._setOption('selectAllMode', value);\r\n }\r\n get showCheckBoxesMode() {\r\n return this._getOption('showCheckBoxesMode');\r\n }\r\n set showCheckBoxesMode(value) {\r\n this._setOption('showCheckBoxesMode', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoColumnChooserSelectionConfig.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoColumnChooserSelectionConfig_BaseFactory; return function DxoColumnChooserSelectionConfig_Factory(t) { return (ɵDxoColumnChooserSelectionConfig_BaseFactory || (ɵDxoColumnChooserSelectionConfig_BaseFactory = i0.ɵɵgetInheritedFactory(DxoColumnChooserSelectionConfig)))(t || DxoColumnChooserSelectionConfig); }; }();\r\n/** @nocollapse */ DxoColumnChooserSelectionConfig.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoColumnChooserSelectionConfig, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoColumnChooserSelectionConfig_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoColumnChooserSelectionConfig, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSelectionComponent extends DxoColumnChooserSelectionConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'selection';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSelectionComponent.ɵfac = function DxoSelectionComponent_Factory(t) { return new (t || DxoSelectionComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSelectionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSelectionComponent, selectors: [[\"dxo-selection\"]], inputs: { allowSelectAll: \"allowSelectAll\", recursive: \"recursive\", selectByClick: \"selectByClick\", deferred: \"deferred\", mode: \"mode\", selectAllMode: \"selectAllMode\", showCheckBoxesMode: \"showCheckBoxesMode\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSelectionComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSelectionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-selection',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'allowSelectAll',\r\n 'recursive',\r\n 'selectByClick',\r\n 'deferred',\r\n 'mode',\r\n 'selectAllMode',\r\n 'showCheckBoxesMode'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSelectionModule {\r\n}\r\n/** @nocollapse */ DxoSelectionModule.ɵfac = function DxoSelectionModule_Factory(t) { return new (t || DxoSelectionModule)(); };\r\n/** @nocollapse */ DxoSelectionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSelectionModule });\r\n/** @nocollapse */ DxoSelectionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSelectionModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSelectionComponent\r\n ],\r\n exports: [\r\n DxoSelectionComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSelectionModule, { declarations: [DxoSelectionComponent], exports: [DxoSelectionComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSeriesTemplateComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get customizeSeries() {\r\n return this._getOption('customizeSeries');\r\n }\r\n set customizeSeries(value) {\r\n this._setOption('customizeSeries', value);\r\n }\r\n get nameField() {\r\n return this._getOption('nameField');\r\n }\r\n set nameField(value) {\r\n this._setOption('nameField', value);\r\n }\r\n get _optionPath() {\r\n return 'seriesTemplate';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSeriesTemplateComponent.ɵfac = function DxoSeriesTemplateComponent_Factory(t) { return new (t || DxoSeriesTemplateComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSeriesTemplateComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSeriesTemplateComponent, selectors: [[\"dxo-series-template\"]], inputs: { customizeSeries: \"customizeSeries\", nameField: \"nameField\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSeriesTemplateComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSeriesTemplateComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-series-template',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { customizeSeries: [{\r\n type: Input\r\n }], nameField: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSeriesTemplateModule {\r\n}\r\n/** @nocollapse */ DxoSeriesTemplateModule.ɵfac = function DxoSeriesTemplateModule_Factory(t) { return new (t || DxoSeriesTemplateModule)(); };\r\n/** @nocollapse */ DxoSeriesTemplateModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSeriesTemplateModule });\r\n/** @nocollapse */ DxoSeriesTemplateModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSeriesTemplateModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSeriesTemplateComponent\r\n ],\r\n exports: [\r\n DxoSeriesTemplateComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSeriesTemplateModule, { declarations: [DxoSeriesTemplateComponent], exports: [DxoSeriesTemplateComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShadowComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get blur() {\r\n return this._getOption('blur');\r\n }\r\n set blur(value) {\r\n this._setOption('blur', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get offsetX() {\r\n return this._getOption('offsetX');\r\n }\r\n set offsetX(value) {\r\n this._setOption('offsetX', value);\r\n }\r\n get offsetY() {\r\n return this._getOption('offsetY');\r\n }\r\n set offsetY(value) {\r\n this._setOption('offsetY', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'shadow';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShadowComponent.ɵfac = function DxoShadowComponent_Factory(t) { return new (t || DxoShadowComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShadowComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShadowComponent, selectors: [[\"dxo-shadow\"]], inputs: { blur: \"blur\", color: \"color\", offsetX: \"offsetX\", offsetY: \"offsetY\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShadowComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShadowComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-shadow',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { blur: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], offsetX: [{\r\n type: Input\r\n }], offsetY: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoShadowModule {\r\n}\r\n/** @nocollapse */ DxoShadowModule.ɵfac = function DxoShadowModule_Factory(t) { return new (t || DxoShadowModule)(); };\r\n/** @nocollapse */ DxoShadowModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShadowModule });\r\n/** @nocollapse */ DxoShadowModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShadowModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShadowComponent\r\n ],\r\n exports: [\r\n DxoShadowComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShadowModule, { declarations: [DxoShadowComponent], exports: [DxoShadowComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShowEventComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get _optionPath() {\r\n return 'showEvent';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShowEventComponent.ɵfac = function DxoShowEventComponent_Factory(t) { return new (t || DxoShowEventComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShowEventComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShowEventComponent, selectors: [[\"dxo-show-event\"]], inputs: { delay: \"delay\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShowEventComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowEventComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-show-event',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { delay: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoShowEventModule {\r\n}\r\n/** @nocollapse */ DxoShowEventModule.ɵfac = function DxoShowEventModule_Factory(t) { return new (t || DxoShowEventModule)(); };\r\n/** @nocollapse */ DxoShowEventModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShowEventModule });\r\n/** @nocollapse */ DxoShowEventModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowEventModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShowEventComponent\r\n ],\r\n exports: [\r\n DxoShowEventComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShowEventModule, { declarations: [DxoShowEventComponent], exports: [DxoShowEventComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShowFirstSubmenuModeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get _optionPath() {\r\n return 'showFirstSubmenuMode';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShowFirstSubmenuModeComponent.ɵfac = function DxoShowFirstSubmenuModeComponent_Factory(t) { return new (t || DxoShowFirstSubmenuModeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShowFirstSubmenuModeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShowFirstSubmenuModeComponent, selectors: [[\"dxo-show-first-submenu-mode\"]], inputs: { delay: \"delay\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShowFirstSubmenuModeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowFirstSubmenuModeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-show-first-submenu-mode',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { delay: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoShowFirstSubmenuModeModule {\r\n}\r\n/** @nocollapse */ DxoShowFirstSubmenuModeModule.ɵfac = function DxoShowFirstSubmenuModeModule_Factory(t) { return new (t || DxoShowFirstSubmenuModeModule)(); };\r\n/** @nocollapse */ DxoShowFirstSubmenuModeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShowFirstSubmenuModeModule });\r\n/** @nocollapse */ DxoShowFirstSubmenuModeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowFirstSubmenuModeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShowFirstSubmenuModeComponent\r\n ],\r\n exports: [\r\n DxoShowFirstSubmenuModeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShowFirstSubmenuModeModule, { declarations: [DxoShowFirstSubmenuModeComponent], exports: [DxoShowFirstSubmenuModeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShowSubmenuModeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get _optionPath() {\r\n return 'showSubmenuMode';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShowSubmenuModeComponent.ɵfac = function DxoShowSubmenuModeComponent_Factory(t) { return new (t || DxoShowSubmenuModeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShowSubmenuModeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShowSubmenuModeComponent, selectors: [[\"dxo-show-submenu-mode\"]], inputs: { delay: \"delay\", name: \"name\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShowSubmenuModeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowSubmenuModeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-show-submenu-mode',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { delay: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoShowSubmenuModeModule {\r\n}\r\n/** @nocollapse */ DxoShowSubmenuModeModule.ɵfac = function DxoShowSubmenuModeModule_Factory(t) { return new (t || DxoShowSubmenuModeModule)(); };\r\n/** @nocollapse */ DxoShowSubmenuModeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShowSubmenuModeModule });\r\n/** @nocollapse */ DxoShowSubmenuModeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowSubmenuModeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShowSubmenuModeComponent\r\n ],\r\n exports: [\r\n DxoShowSubmenuModeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShowSubmenuModeModule, { declarations: [DxoShowSubmenuModeComponent], exports: [DxoShowSubmenuModeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShowComponent extends DxoAnimationConfig {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'show';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShowComponent.ɵfac = function DxoShowComponent_Factory(t) { return new (t || DxoShowComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShowComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShowComponent, selectors: [[\"dxo-show\"]], inputs: { complete: \"complete\", delay: \"delay\", direction: \"direction\", duration: \"duration\", easing: \"easing\", from: \"from\", staggerDelay: \"staggerDelay\", start: \"start\", to: \"to\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShowComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-show',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'complete',\r\n 'delay',\r\n 'direction',\r\n 'duration',\r\n 'easing',\r\n 'from',\r\n 'staggerDelay',\r\n 'start',\r\n 'to',\r\n 'type'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoShowModule {\r\n}\r\n/** @nocollapse */ DxoShowModule.ɵfac = function DxoShowModule_Factory(t) { return new (t || DxoShowModule)(); };\r\n/** @nocollapse */ DxoShowModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShowModule });\r\n/** @nocollapse */ DxoShowModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShowModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShowComponent\r\n ],\r\n exports: [\r\n DxoShowComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShowModule, { declarations: [DxoShowComponent], exports: [DxoShowComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoShutterComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get _optionPath() {\r\n return 'shutter';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoShutterComponent.ɵfac = function DxoShutterComponent_Factory(t) { return new (t || DxoShutterComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoShutterComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoShutterComponent, selectors: [[\"dxo-shutter\"]], inputs: { color: \"color\", opacity: \"opacity\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoShutterComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShutterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-shutter',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoShutterModule {\r\n}\r\n/** @nocollapse */ DxoShutterModule.ɵfac = function DxoShutterModule_Factory(t) { return new (t || DxoShutterModule)(); };\r\n/** @nocollapse */ DxoShutterModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoShutterModule });\r\n/** @nocollapse */ DxoShutterModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoShutterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoShutterComponent\r\n ],\r\n exports: [\r\n DxoShutterComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoShutterModule, { declarations: [DxoShutterComponent], exports: [DxoShutterComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSizeComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'size';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSizeComponent.ɵfac = function DxoSizeComponent_Factory(t) { return new (t || DxoSizeComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSizeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSizeComponent, selectors: [[\"dxo-size\"]], inputs: { height: \"height\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSizeComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSizeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-size',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { height: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSizeModule {\r\n}\r\n/** @nocollapse */ DxoSizeModule.ɵfac = function DxoSizeModule_Factory(t) { return new (t || DxoSizeModule)(); };\r\n/** @nocollapse */ DxoSizeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSizeModule });\r\n/** @nocollapse */ DxoSizeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSizeModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSizeComponent\r\n ],\r\n exports: [\r\n DxoSizeComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSizeModule, { declarations: [DxoSizeComponent], exports: [DxoSizeComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSliderHandleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'sliderHandle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSliderHandleComponent.ɵfac = function DxoSliderHandleComponent_Factory(t) { return new (t || DxoSliderHandleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSliderHandleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSliderHandleComponent, selectors: [[\"dxo-slider-handle\"]], inputs: { color: \"color\", opacity: \"opacity\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSliderHandleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSliderHandleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-slider-handle',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSliderHandleModule {\r\n}\r\n/** @nocollapse */ DxoSliderHandleModule.ɵfac = function DxoSliderHandleModule_Factory(t) { return new (t || DxoSliderHandleModule)(); };\r\n/** @nocollapse */ DxoSliderHandleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSliderHandleModule });\r\n/** @nocollapse */ DxoSliderHandleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSliderHandleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSliderHandleComponent\r\n ],\r\n exports: [\r\n DxoSliderHandleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSliderHandleModule, { declarations: [DxoSliderHandleComponent], exports: [DxoSliderHandleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSliderMarkerComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get invalidRangeColor() {\r\n return this._getOption('invalidRangeColor');\r\n }\r\n set invalidRangeColor(value) {\r\n this._setOption('invalidRangeColor', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get placeholderHeight() {\r\n return this._getOption('placeholderHeight');\r\n }\r\n set placeholderHeight(value) {\r\n this._setOption('placeholderHeight', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'sliderMarker';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSliderMarkerComponent.ɵfac = function DxoSliderMarkerComponent_Factory(t) { return new (t || DxoSliderMarkerComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSliderMarkerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSliderMarkerComponent, selectors: [[\"dxo-slider-marker\"]], inputs: { color: \"color\", customizeText: \"customizeText\", font: \"font\", format: \"format\", invalidRangeColor: \"invalidRangeColor\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", placeholderHeight: \"placeholderHeight\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSliderMarkerComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSliderMarkerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-slider-marker',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], format: [{\r\n type: Input\r\n }], invalidRangeColor: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], placeholderHeight: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSliderMarkerModule {\r\n}\r\n/** @nocollapse */ DxoSliderMarkerModule.ɵfac = function DxoSliderMarkerModule_Factory(t) { return new (t || DxoSliderMarkerModule)(); };\r\n/** @nocollapse */ DxoSliderMarkerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSliderMarkerModule });\r\n/** @nocollapse */ DxoSliderMarkerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSliderMarkerModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSliderMarkerComponent\r\n ],\r\n exports: [\r\n DxoSliderMarkerComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSliderMarkerModule, { declarations: [DxoSliderMarkerComponent], exports: [DxoSliderMarkerComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSmallValuesGroupingComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get groupName() {\r\n return this._getOption('groupName');\r\n }\r\n set groupName(value) {\r\n this._setOption('groupName', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get threshold() {\r\n return this._getOption('threshold');\r\n }\r\n set threshold(value) {\r\n this._setOption('threshold', value);\r\n }\r\n get topCount() {\r\n return this._getOption('topCount');\r\n }\r\n set topCount(value) {\r\n this._setOption('topCount', value);\r\n }\r\n get _optionPath() {\r\n return 'smallValuesGrouping';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSmallValuesGroupingComponent.ɵfac = function DxoSmallValuesGroupingComponent_Factory(t) { return new (t || DxoSmallValuesGroupingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSmallValuesGroupingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSmallValuesGroupingComponent, selectors: [[\"dxo-small-values-grouping\"]], inputs: { groupName: \"groupName\", mode: \"mode\", threshold: \"threshold\", topCount: \"topCount\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSmallValuesGroupingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSmallValuesGroupingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-small-values-grouping',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { groupName: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], threshold: [{\r\n type: Input\r\n }], topCount: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSmallValuesGroupingModule {\r\n}\r\n/** @nocollapse */ DxoSmallValuesGroupingModule.ɵfac = function DxoSmallValuesGroupingModule_Factory(t) { return new (t || DxoSmallValuesGroupingModule)(); };\r\n/** @nocollapse */ DxoSmallValuesGroupingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSmallValuesGroupingModule });\r\n/** @nocollapse */ DxoSmallValuesGroupingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSmallValuesGroupingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSmallValuesGroupingComponent\r\n ],\r\n exports: [\r\n DxoSmallValuesGroupingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSmallValuesGroupingModule, { declarations: [DxoSmallValuesGroupingComponent], exports: [DxoSmallValuesGroupingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiSortByGroupSummaryInfoComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get groupColumn() {\r\n return this._getOption('groupColumn');\r\n }\r\n set groupColumn(value) {\r\n this._setOption('groupColumn', value);\r\n }\r\n get sortOrder() {\r\n return this._getOption('sortOrder');\r\n }\r\n set sortOrder(value) {\r\n this._setOption('sortOrder', value);\r\n }\r\n get summaryItem() {\r\n return this._getOption('summaryItem');\r\n }\r\n set summaryItem(value) {\r\n this._setOption('summaryItem', value);\r\n }\r\n get _optionPath() {\r\n return 'sortByGroupSummaryInfo';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiSortByGroupSummaryInfoComponent.ɵfac = function DxiSortByGroupSummaryInfoComponent_Factory(t) { return new (t || DxiSortByGroupSummaryInfoComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiSortByGroupSummaryInfoComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiSortByGroupSummaryInfoComponent, selectors: [[\"dxi-sort-by-group-summary-info\"]], inputs: { groupColumn: \"groupColumn\", sortOrder: \"sortOrder\", summaryItem: \"summaryItem\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiSortByGroupSummaryInfoComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiSortByGroupSummaryInfoComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-sort-by-group-summary-info',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { groupColumn: [{\r\n type: Input\r\n }], sortOrder: [{\r\n type: Input\r\n }], summaryItem: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiSortByGroupSummaryInfoModule {\r\n}\r\n/** @nocollapse */ DxiSortByGroupSummaryInfoModule.ɵfac = function DxiSortByGroupSummaryInfoModule_Factory(t) { return new (t || DxiSortByGroupSummaryInfoModule)(); };\r\n/** @nocollapse */ DxiSortByGroupSummaryInfoModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiSortByGroupSummaryInfoModule });\r\n/** @nocollapse */ DxiSortByGroupSummaryInfoModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiSortByGroupSummaryInfoModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiSortByGroupSummaryInfoComponent\r\n ],\r\n exports: [\r\n DxiSortByGroupSummaryInfoComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiSortByGroupSummaryInfoModule, { declarations: [DxiSortByGroupSummaryInfoComponent], exports: [DxiSortByGroupSummaryInfoComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGanttSorting extends NestedOption {\r\n get ascendingText() {\r\n return this._getOption('ascendingText');\r\n }\r\n set ascendingText(value) {\r\n this._setOption('ascendingText', value);\r\n }\r\n get clearText() {\r\n return this._getOption('clearText');\r\n }\r\n set clearText(value) {\r\n this._setOption('clearText', value);\r\n }\r\n get descendingText() {\r\n return this._getOption('descendingText');\r\n }\r\n set descendingText(value) {\r\n this._setOption('descendingText', value);\r\n }\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n get showSortIndexes() {\r\n return this._getOption('showSortIndexes');\r\n }\r\n set showSortIndexes(value) {\r\n this._setOption('showSortIndexes', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGanttSorting.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGanttSorting_BaseFactory; return function DxoGanttSorting_Factory(t) { return (ɵDxoGanttSorting_BaseFactory || (ɵDxoGanttSorting_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGanttSorting)))(t || DxoGanttSorting); }; }();\r\n/** @nocollapse */ DxoGanttSorting.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGanttSorting, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGanttSorting_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGanttSorting, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSortingComponent extends DxoGanttSorting {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'sorting';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSortingComponent.ɵfac = function DxoSortingComponent_Factory(t) { return new (t || DxoSortingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSortingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSortingComponent, selectors: [[\"dxo-sorting\"]], inputs: { ascendingText: \"ascendingText\", clearText: \"clearText\", descendingText: \"descendingText\", mode: \"mode\", showSortIndexes: \"showSortIndexes\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSortingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSortingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-sorting',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'ascendingText',\r\n 'clearText',\r\n 'descendingText',\r\n 'mode',\r\n 'showSortIndexes'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSortingModule {\r\n}\r\n/** @nocollapse */ DxoSortingModule.ɵfac = function DxoSortingModule_Factory(t) { return new (t || DxoSortingModule)(); };\r\n/** @nocollapse */ DxoSortingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSortingModule });\r\n/** @nocollapse */ DxoSortingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSortingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSortingComponent\r\n ],\r\n exports: [\r\n DxoSortingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSortingModule, { declarations: [DxoSortingComponent], exports: [DxoSortingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSourceComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get grouping() {\r\n return this._getOption('grouping');\r\n }\r\n set grouping(value) {\r\n this._setOption('grouping', value);\r\n }\r\n get layer() {\r\n return this._getOption('layer');\r\n }\r\n set layer(value) {\r\n this._setOption('layer', value);\r\n }\r\n get _optionPath() {\r\n return 'source';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSourceComponent.ɵfac = function DxoSourceComponent_Factory(t) { return new (t || DxoSourceComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSourceComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSourceComponent, selectors: [[\"dxo-source\"]], inputs: { grouping: \"grouping\", layer: \"layer\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSourceComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSourceComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-source',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { grouping: [{\r\n type: Input\r\n }], layer: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSourceModule {\r\n}\r\n/** @nocollapse */ DxoSourceModule.ɵfac = function DxoSourceModule_Factory(t) { return new (t || DxoSourceModule)(); };\r\n/** @nocollapse */ DxoSourceModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSourceModule });\r\n/** @nocollapse */ DxoSourceModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSourceModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSourceComponent\r\n ],\r\n exports: [\r\n DxoSourceComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSourceModule, { declarations: [DxoSourceComponent], exports: [DxoSourceComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSplineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'spline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSplineComponent.ɵfac = function DxoSplineComponent_Factory(t) { return new (t || DxoSplineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSplineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSplineComponent, selectors: [[\"dxo-spline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSplineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSplineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-spline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSplineModule {\r\n}\r\n/** @nocollapse */ DxoSplineModule.ɵfac = function DxoSplineModule_Factory(t) { return new (t || DxoSplineModule)(); };\r\n/** @nocollapse */ DxoSplineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSplineModule });\r\n/** @nocollapse */ DxoSplineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSplineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSplineComponent\r\n ],\r\n exports: [\r\n DxoSplineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSplineModule, { declarations: [DxoSplineComponent], exports: [DxoSplineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSplineareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'splinearea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSplineareaComponent.ɵfac = function DxoSplineareaComponent_Factory(t) { return new (t || DxoSplineareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSplineareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSplineareaComponent, selectors: [[\"dxo-splinearea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSplineareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSplineareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-splinearea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSplineareaModule {\r\n}\r\n/** @nocollapse */ DxoSplineareaModule.ɵfac = function DxoSplineareaModule_Factory(t) { return new (t || DxoSplineareaModule)(); };\r\n/** @nocollapse */ DxoSplineareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSplineareaModule });\r\n/** @nocollapse */ DxoSplineareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSplineareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSplineareaComponent\r\n ],\r\n exports: [\r\n DxoSplineareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSplineareaModule, { declarations: [DxoSplineareaComponent], exports: [DxoSplineareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStackedareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stackedarea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStackedareaComponent.ɵfac = function DxoStackedareaComponent_Factory(t) { return new (t || DxoStackedareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStackedareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStackedareaComponent, selectors: [[\"dxo-stackedarea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStackedareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stackedarea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStackedareaModule {\r\n}\r\n/** @nocollapse */ DxoStackedareaModule.ɵfac = function DxoStackedareaModule_Factory(t) { return new (t || DxoStackedareaModule)(); };\r\n/** @nocollapse */ DxoStackedareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStackedareaModule });\r\n/** @nocollapse */ DxoStackedareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStackedareaComponent\r\n ],\r\n exports: [\r\n DxoStackedareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStackedareaModule, { declarations: [DxoStackedareaComponent], exports: [DxoStackedareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStackedbarComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stackedbar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStackedbarComponent.ɵfac = function DxoStackedbarComponent_Factory(t) { return new (t || DxoStackedbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStackedbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStackedbarComponent, selectors: [[\"dxo-stackedbar\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\", closed: \"closed\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStackedbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stackedbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width',\r\n 'closed'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStackedbarModule {\r\n}\r\n/** @nocollapse */ DxoStackedbarModule.ɵfac = function DxoStackedbarModule_Factory(t) { return new (t || DxoStackedbarModule)(); };\r\n/** @nocollapse */ DxoStackedbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStackedbarModule });\r\n/** @nocollapse */ DxoStackedbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStackedbarComponent\r\n ],\r\n exports: [\r\n DxoStackedbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStackedbarModule, { declarations: [DxoStackedbarComponent], exports: [DxoStackedbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStackedlineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stackedline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStackedlineComponent.ɵfac = function DxoStackedlineComponent_Factory(t) { return new (t || DxoStackedlineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStackedlineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStackedlineComponent, selectors: [[\"dxo-stackedline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStackedlineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedlineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stackedline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStackedlineModule {\r\n}\r\n/** @nocollapse */ DxoStackedlineModule.ɵfac = function DxoStackedlineModule_Factory(t) { return new (t || DxoStackedlineModule)(); };\r\n/** @nocollapse */ DxoStackedlineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStackedlineModule });\r\n/** @nocollapse */ DxoStackedlineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedlineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStackedlineComponent\r\n ],\r\n exports: [\r\n DxoStackedlineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStackedlineModule, { declarations: [DxoStackedlineComponent], exports: [DxoStackedlineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStackedsplineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stackedspline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStackedsplineComponent.ɵfac = function DxoStackedsplineComponent_Factory(t) { return new (t || DxoStackedsplineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStackedsplineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStackedsplineComponent, selectors: [[\"dxo-stackedspline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStackedsplineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedsplineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stackedspline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStackedsplineModule {\r\n}\r\n/** @nocollapse */ DxoStackedsplineModule.ɵfac = function DxoStackedsplineModule_Factory(t) { return new (t || DxoStackedsplineModule)(); };\r\n/** @nocollapse */ DxoStackedsplineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStackedsplineModule });\r\n/** @nocollapse */ DxoStackedsplineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedsplineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStackedsplineComponent\r\n ],\r\n exports: [\r\n DxoStackedsplineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStackedsplineModule, { declarations: [DxoStackedsplineComponent], exports: [DxoStackedsplineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStackedsplineareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stackedsplinearea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStackedsplineareaComponent.ɵfac = function DxoStackedsplineareaComponent_Factory(t) { return new (t || DxoStackedsplineareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStackedsplineareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStackedsplineareaComponent, selectors: [[\"dxo-stackedsplinearea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStackedsplineareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedsplineareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stackedsplinearea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStackedsplineareaModule {\r\n}\r\n/** @nocollapse */ DxoStackedsplineareaModule.ɵfac = function DxoStackedsplineareaModule_Factory(t) { return new (t || DxoStackedsplineareaModule)(); };\r\n/** @nocollapse */ DxoStackedsplineareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStackedsplineareaModule });\r\n/** @nocollapse */ DxoStackedsplineareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStackedsplineareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStackedsplineareaComponent\r\n ],\r\n exports: [\r\n DxoStackedsplineareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStackedsplineareaModule, { declarations: [DxoStackedsplineareaComponent], exports: [DxoStackedsplineareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStateStoringComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get customLoad() {\r\n return this._getOption('customLoad');\r\n }\r\n set customLoad(value) {\r\n this._setOption('customLoad', value);\r\n }\r\n get customSave() {\r\n return this._getOption('customSave');\r\n }\r\n set customSave(value) {\r\n this._setOption('customSave', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get savingTimeout() {\r\n return this._getOption('savingTimeout');\r\n }\r\n set savingTimeout(value) {\r\n this._setOption('savingTimeout', value);\r\n }\r\n get storageKey() {\r\n return this._getOption('storageKey');\r\n }\r\n set storageKey(value) {\r\n this._setOption('storageKey', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'stateStoring';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStateStoringComponent.ɵfac = function DxoStateStoringComponent_Factory(t) { return new (t || DxoStateStoringComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStateStoringComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStateStoringComponent, selectors: [[\"dxo-state-storing\"]], inputs: { customLoad: \"customLoad\", customSave: \"customSave\", enabled: \"enabled\", savingTimeout: \"savingTimeout\", storageKey: \"storageKey\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStateStoringComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStateStoringComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-state-storing',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { customLoad: [{\r\n type: Input\r\n }], customSave: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], savingTimeout: [{\r\n type: Input\r\n }], storageKey: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoStateStoringModule {\r\n}\r\n/** @nocollapse */ DxoStateStoringModule.ɵfac = function DxoStateStoringModule_Factory(t) { return new (t || DxoStateStoringModule)(); };\r\n/** @nocollapse */ DxoStateStoringModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStateStoringModule });\r\n/** @nocollapse */ DxoStateStoringModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStateStoringModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStateStoringComponent\r\n ],\r\n exports: [\r\n DxoStateStoringComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStateStoringModule, { declarations: [DxoStateStoringComponent], exports: [DxoStateStoringComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStepareaComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'steparea';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStepareaComponent.ɵfac = function DxoStepareaComponent_Factory(t) { return new (t || DxoStepareaComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStepareaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStepareaComponent, selectors: [[\"dxo-steparea\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStepareaComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStepareaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-steparea',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStepareaModule {\r\n}\r\n/** @nocollapse */ DxoStepareaModule.ɵfac = function DxoStepareaModule_Factory(t) { return new (t || DxoStepareaModule)(); };\r\n/** @nocollapse */ DxoStepareaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStepareaModule });\r\n/** @nocollapse */ DxoStepareaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStepareaModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStepareaComponent\r\n ],\r\n exports: [\r\n DxoStepareaComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStepareaModule, { declarations: [DxoStepareaComponent], exports: [DxoStepareaComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSteplineComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stepline';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSteplineComponent.ɵfac = function DxoSteplineComponent_Factory(t) { return new (t || DxoSteplineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSteplineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSteplineComponent, selectors: [[\"dxo-stepline\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSteplineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSteplineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stepline',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSteplineModule {\r\n}\r\n/** @nocollapse */ DxoSteplineModule.ɵfac = function DxoSteplineModule_Factory(t) { return new (t || DxoSteplineModule)(); };\r\n/** @nocollapse */ DxoSteplineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSteplineModule });\r\n/** @nocollapse */ DxoSteplineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSteplineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSteplineComponent\r\n ],\r\n exports: [\r\n DxoSteplineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSteplineModule, { declarations: [DxoSteplineComponent], exports: [DxoSteplineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStockComponent extends DxoChartCommonSeriesSettings {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stock';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStockComponent.ɵfac = function DxoStockComponent_Factory(t) { return new (t || DxoStockComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStockComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStockComponent, selectors: [[\"dxo-stock\"]], inputs: { aggregation: \"aggregation\", area: \"area\", argumentField: \"argumentField\", axis: \"axis\", bar: \"bar\", barOverlapGroup: \"barOverlapGroup\", barPadding: \"barPadding\", barWidth: \"barWidth\", border: \"border\", bubble: \"bubble\", candlestick: \"candlestick\", closeValueField: \"closeValueField\", color: \"color\", cornerRadius: \"cornerRadius\", dashStyle: \"dashStyle\", fullstackedarea: \"fullstackedarea\", fullstackedbar: \"fullstackedbar\", fullstackedline: \"fullstackedline\", fullstackedspline: \"fullstackedspline\", fullstackedsplinearea: \"fullstackedsplinearea\", highValueField: \"highValueField\", hoverMode: \"hoverMode\", hoverStyle: \"hoverStyle\", ignoreEmptyPoints: \"ignoreEmptyPoints\", innerColor: \"innerColor\", label: \"label\", line: \"line\", lowValueField: \"lowValueField\", maxLabelCount: \"maxLabelCount\", minBarSize: \"minBarSize\", opacity: \"opacity\", openValueField: \"openValueField\", pane: \"pane\", point: \"point\", rangearea: \"rangearea\", rangebar: \"rangebar\", rangeValue1Field: \"rangeValue1Field\", rangeValue2Field: \"rangeValue2Field\", reduction: \"reduction\", scatter: \"scatter\", selectionMode: \"selectionMode\", selectionStyle: \"selectionStyle\", showInLegend: \"showInLegend\", sizeField: \"sizeField\", spline: \"spline\", splinearea: \"splinearea\", stack: \"stack\", stackedarea: \"stackedarea\", stackedbar: \"stackedbar\", stackedline: \"stackedline\", stackedspline: \"stackedspline\", stackedsplinearea: \"stackedsplinearea\", steparea: \"steparea\", stepline: \"stepline\", stock: \"stock\", tagField: \"tagField\", type: \"type\", valueErrorBar: \"valueErrorBar\", valueField: \"valueField\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStockComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStockComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-stock',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'aggregation',\r\n 'area',\r\n 'argumentField',\r\n 'axis',\r\n 'bar',\r\n 'barOverlapGroup',\r\n 'barPadding',\r\n 'barWidth',\r\n 'border',\r\n 'bubble',\r\n 'candlestick',\r\n 'closeValueField',\r\n 'color',\r\n 'cornerRadius',\r\n 'dashStyle',\r\n 'fullstackedarea',\r\n 'fullstackedbar',\r\n 'fullstackedline',\r\n 'fullstackedspline',\r\n 'fullstackedsplinearea',\r\n 'highValueField',\r\n 'hoverMode',\r\n 'hoverStyle',\r\n 'ignoreEmptyPoints',\r\n 'innerColor',\r\n 'label',\r\n 'line',\r\n 'lowValueField',\r\n 'maxLabelCount',\r\n 'minBarSize',\r\n 'opacity',\r\n 'openValueField',\r\n 'pane',\r\n 'point',\r\n 'rangearea',\r\n 'rangebar',\r\n 'rangeValue1Field',\r\n 'rangeValue2Field',\r\n 'reduction',\r\n 'scatter',\r\n 'selectionMode',\r\n 'selectionStyle',\r\n 'showInLegend',\r\n 'sizeField',\r\n 'spline',\r\n 'splinearea',\r\n 'stack',\r\n 'stackedarea',\r\n 'stackedbar',\r\n 'stackedline',\r\n 'stackedspline',\r\n 'stackedsplinearea',\r\n 'steparea',\r\n 'stepline',\r\n 'stock',\r\n 'tagField',\r\n 'type',\r\n 'valueErrorBar',\r\n 'valueField',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoStockModule {\r\n}\r\n/** @nocollapse */ DxoStockModule.ɵfac = function DxoStockModule_Factory(t) { return new (t || DxoStockModule)(); };\r\n/** @nocollapse */ DxoStockModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStockModule });\r\n/** @nocollapse */ DxoStockModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStockModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStockComponent\r\n ],\r\n exports: [\r\n DxoStockComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStockModule, { declarations: [DxoStockComponent], exports: [DxoStockComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStoreComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'store';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStoreComponent.ɵfac = function DxoStoreComponent_Factory(t) { return new (t || DxoStoreComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStoreComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStoreComponent, selectors: [[\"dxo-store\"]], inputs: { type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStoreComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStoreComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-store',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoStoreModule {\r\n}\r\n/** @nocollapse */ DxoStoreModule.ɵfac = function DxoStoreModule_Factory(t) { return new (t || DxoStoreModule)(); };\r\n/** @nocollapse */ DxoStoreModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStoreModule });\r\n/** @nocollapse */ DxoStoreModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStoreModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStoreComponent\r\n ],\r\n exports: [\r\n DxoStoreComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStoreModule, { declarations: [DxoStoreComponent], exports: [DxoStoreComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiGanttStripLine extends CollectionNestedOption {\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get end() {\r\n return this._getOption('end');\r\n }\r\n set end(value) {\r\n this._setOption('end', value);\r\n }\r\n get start() {\r\n return this._getOption('start');\r\n }\r\n set start(value) {\r\n this._setOption('start', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n}\r\n/** @nocollapse */ DxiGanttStripLine.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxiGanttStripLine_BaseFactory; return function DxiGanttStripLine_Factory(t) { return (ɵDxiGanttStripLine_BaseFactory || (ɵDxiGanttStripLine_BaseFactory = i0.ɵɵgetInheritedFactory(DxiGanttStripLine)))(t || DxiGanttStripLine); }; }();\r\n/** @nocollapse */ DxiGanttStripLine.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiGanttStripLine, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiGanttStripLine_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiGanttStripLine, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiStripLineComponent extends DxiGanttStripLine {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'stripLines';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiStripLineComponent.ɵfac = function DxiStripLineComponent_Factory(t) { return new (t || DxiStripLineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiStripLineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiStripLineComponent, selectors: [[\"dxi-strip-line\"]], inputs: { cssClass: \"cssClass\", end: \"end\", start: \"start\", title: \"title\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiStripLineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiStripLineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-strip-line',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'cssClass',\r\n 'end',\r\n 'start',\r\n 'title'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxiStripLineModule {\r\n}\r\n/** @nocollapse */ DxiStripLineModule.ɵfac = function DxiStripLineModule_Factory(t) { return new (t || DxiStripLineModule)(); };\r\n/** @nocollapse */ DxiStripLineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiStripLineModule });\r\n/** @nocollapse */ DxiStripLineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiStripLineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiStripLineComponent\r\n ],\r\n exports: [\r\n DxiStripLineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiStripLineModule, { declarations: [DxiStripLineComponent], exports: [DxiStripLineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoStripStyleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get _optionPath() {\r\n return 'stripStyle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoStripStyleComponent.ɵfac = function DxoStripStyleComponent_Factory(t) { return new (t || DxoStripStyleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoStripStyleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoStripStyleComponent, selectors: [[\"dxo-strip-style\"]], inputs: { label: \"label\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoStripStyleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStripStyleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-strip-style',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { label: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoStripStyleModule {\r\n}\r\n/** @nocollapse */ DxoStripStyleModule.ɵfac = function DxoStripStyleModule_Factory(t) { return new (t || DxoStripStyleModule)(); };\r\n/** @nocollapse */ DxoStripStyleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoStripStyleModule });\r\n/** @nocollapse */ DxoStripStyleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoStripStyleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoStripStyleComponent\r\n ],\r\n exports: [\r\n DxoStripStyleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoStripStyleModule, { declarations: [DxoStripStyleComponent], exports: [DxoStripStyleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSubtitleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get textOverflow() {\r\n return this._getOption('textOverflow');\r\n }\r\n set textOverflow(value) {\r\n this._setOption('textOverflow', value);\r\n }\r\n get wordWrap() {\r\n return this._getOption('wordWrap');\r\n }\r\n set wordWrap(value) {\r\n this._setOption('wordWrap', value);\r\n }\r\n get _optionPath() {\r\n return 'subtitle';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSubtitleComponent.ɵfac = function DxoSubtitleComponent_Factory(t) { return new (t || DxoSubtitleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSubtitleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSubtitleComponent, selectors: [[\"dxo-subtitle\"]], inputs: { font: \"font\", offset: \"offset\", text: \"text\", textOverflow: \"textOverflow\", wordWrap: \"wordWrap\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSubtitleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSubtitleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-subtitle',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { font: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], textOverflow: [{\r\n type: Input\r\n }], wordWrap: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoSubtitleModule {\r\n}\r\n/** @nocollapse */ DxoSubtitleModule.ɵfac = function DxoSubtitleModule_Factory(t) { return new (t || DxoSubtitleModule)(); };\r\n/** @nocollapse */ DxoSubtitleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSubtitleModule });\r\n/** @nocollapse */ DxoSubtitleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSubtitleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSubtitleComponent\r\n ],\r\n exports: [\r\n DxoSubtitleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSubtitleModule, { declarations: [DxoSubtitleComponent], exports: [DxoSubtitleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGaugeIndicator extends NestedOption {\r\n get arrowLength() {\r\n return this._getOption('arrowLength');\r\n }\r\n set arrowLength(value) {\r\n this._setOption('arrowLength', value);\r\n }\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n get baseValue() {\r\n return this._getOption('baseValue');\r\n }\r\n set baseValue(value) {\r\n this._setOption('baseValue', value);\r\n }\r\n get beginAdaptingAtRadius() {\r\n return this._getOption('beginAdaptingAtRadius');\r\n }\r\n set beginAdaptingAtRadius(value) {\r\n this._setOption('beginAdaptingAtRadius', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get horizontalOrientation() {\r\n return this._getOption('horizontalOrientation');\r\n }\r\n set horizontalOrientation(value) {\r\n this._setOption('horizontalOrientation', value);\r\n }\r\n get indentFromCenter() {\r\n return this._getOption('indentFromCenter');\r\n }\r\n set indentFromCenter(value) {\r\n this._setOption('indentFromCenter', value);\r\n }\r\n get length() {\r\n return this._getOption('length');\r\n }\r\n set length(value) {\r\n this._setOption('length', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n get secondColor() {\r\n return this._getOption('secondColor');\r\n }\r\n set secondColor(value) {\r\n this._setOption('secondColor', value);\r\n }\r\n get secondFraction() {\r\n return this._getOption('secondFraction');\r\n }\r\n set secondFraction(value) {\r\n this._setOption('secondFraction', value);\r\n }\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n get spindleGapSize() {\r\n return this._getOption('spindleGapSize');\r\n }\r\n set spindleGapSize(value) {\r\n this._setOption('spindleGapSize', value);\r\n }\r\n get spindleSize() {\r\n return this._getOption('spindleSize');\r\n }\r\n set spindleSize(value) {\r\n this._setOption('spindleSize', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get verticalOrientation() {\r\n return this._getOption('verticalOrientation');\r\n }\r\n set verticalOrientation(value) {\r\n this._setOption('verticalOrientation', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGaugeIndicator.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGaugeIndicator_BaseFactory; return function DxoGaugeIndicator_Factory(t) { return (ɵDxoGaugeIndicator_BaseFactory || (ɵDxoGaugeIndicator_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGaugeIndicator)))(t || DxoGaugeIndicator); }; }();\r\n/** @nocollapse */ DxoGaugeIndicator.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGaugeIndicator, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGaugeIndicator_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGaugeIndicator, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSubvalueIndicatorComponent extends DxoGaugeIndicator {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'subvalueIndicator';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSubvalueIndicatorComponent.ɵfac = function DxoSubvalueIndicatorComponent_Factory(t) { return new (t || DxoSubvalueIndicatorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSubvalueIndicatorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSubvalueIndicatorComponent, selectors: [[\"dxo-subvalue-indicator\"]], inputs: { arrowLength: \"arrowLength\", backgroundColor: \"backgroundColor\", baseValue: \"baseValue\", beginAdaptingAtRadius: \"beginAdaptingAtRadius\", color: \"color\", horizontalOrientation: \"horizontalOrientation\", indentFromCenter: \"indentFromCenter\", length: \"length\", offset: \"offset\", palette: \"palette\", secondColor: \"secondColor\", secondFraction: \"secondFraction\", size: \"size\", spindleGapSize: \"spindleGapSize\", spindleSize: \"spindleSize\", text: \"text\", type: \"type\", verticalOrientation: \"verticalOrientation\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSubvalueIndicatorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSubvalueIndicatorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-subvalue-indicator',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'arrowLength',\r\n 'backgroundColor',\r\n 'baseValue',\r\n 'beginAdaptingAtRadius',\r\n 'color',\r\n 'horizontalOrientation',\r\n 'indentFromCenter',\r\n 'length',\r\n 'offset',\r\n 'palette',\r\n 'secondColor',\r\n 'secondFraction',\r\n 'size',\r\n 'spindleGapSize',\r\n 'spindleSize',\r\n 'text',\r\n 'type',\r\n 'verticalOrientation',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoSubvalueIndicatorModule {\r\n}\r\n/** @nocollapse */ DxoSubvalueIndicatorModule.ɵfac = function DxoSubvalueIndicatorModule_Factory(t) { return new (t || DxoSubvalueIndicatorModule)(); };\r\n/** @nocollapse */ DxoSubvalueIndicatorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSubvalueIndicatorModule });\r\n/** @nocollapse */ DxoSubvalueIndicatorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSubvalueIndicatorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSubvalueIndicatorComponent\r\n ],\r\n exports: [\r\n DxoSubvalueIndicatorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSubvalueIndicatorModule, { declarations: [DxoSubvalueIndicatorComponent], exports: [DxoSubvalueIndicatorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiTotalItemComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get alignment() {\r\n return this._getOption('alignment');\r\n }\r\n set alignment(value) {\r\n this._setOption('alignment', value);\r\n }\r\n get column() {\r\n return this._getOption('column');\r\n }\r\n set column(value) {\r\n this._setOption('column', value);\r\n }\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get displayFormat() {\r\n return this._getOption('displayFormat');\r\n }\r\n set displayFormat(value) {\r\n this._setOption('displayFormat', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get showInColumn() {\r\n return this._getOption('showInColumn');\r\n }\r\n set showInColumn(value) {\r\n this._setOption('showInColumn', value);\r\n }\r\n get skipEmptyValues() {\r\n return this._getOption('skipEmptyValues');\r\n }\r\n set skipEmptyValues(value) {\r\n this._setOption('skipEmptyValues', value);\r\n }\r\n get summaryType() {\r\n return this._getOption('summaryType');\r\n }\r\n set summaryType(value) {\r\n this._setOption('summaryType', value);\r\n }\r\n get valueFormat() {\r\n return this._getOption('valueFormat');\r\n }\r\n set valueFormat(value) {\r\n this._setOption('valueFormat', value);\r\n }\r\n get _optionPath() {\r\n return 'totalItems';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiTotalItemComponent.ɵfac = function DxiTotalItemComponent_Factory(t) { return new (t || DxiTotalItemComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiTotalItemComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiTotalItemComponent, selectors: [[\"dxi-total-item\"]], inputs: { alignment: \"alignment\", column: \"column\", cssClass: \"cssClass\", customizeText: \"customizeText\", displayFormat: \"displayFormat\", name: \"name\", showInColumn: \"showInColumn\", skipEmptyValues: \"skipEmptyValues\", summaryType: \"summaryType\", valueFormat: \"valueFormat\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiTotalItemComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiTotalItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-total-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { alignment: [{\r\n type: Input\r\n }], column: [{\r\n type: Input\r\n }], cssClass: [{\r\n type: Input\r\n }], customizeText: [{\r\n type: Input\r\n }], displayFormat: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], showInColumn: [{\r\n type: Input\r\n }], skipEmptyValues: [{\r\n type: Input\r\n }], summaryType: [{\r\n type: Input\r\n }], valueFormat: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiTotalItemModule {\r\n}\r\n/** @nocollapse */ DxiTotalItemModule.ɵfac = function DxiTotalItemModule_Factory(t) { return new (t || DxiTotalItemModule)(); };\r\n/** @nocollapse */ DxiTotalItemModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiTotalItemModule });\r\n/** @nocollapse */ DxiTotalItemModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiTotalItemModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiTotalItemComponent\r\n ],\r\n exports: [\r\n DxiTotalItemComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiTotalItemModule, { declarations: [DxiTotalItemComponent], exports: [DxiTotalItemComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoSummaryComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get calculateCustomSummary() {\r\n return this._getOption('calculateCustomSummary');\r\n }\r\n set calculateCustomSummary(value) {\r\n this._setOption('calculateCustomSummary', value);\r\n }\r\n get groupItems() {\r\n return this._getOption('groupItems');\r\n }\r\n set groupItems(value) {\r\n this._setOption('groupItems', value);\r\n }\r\n get recalculateWhileEditing() {\r\n return this._getOption('recalculateWhileEditing');\r\n }\r\n set recalculateWhileEditing(value) {\r\n this._setOption('recalculateWhileEditing', value);\r\n }\r\n get skipEmptyValues() {\r\n return this._getOption('skipEmptyValues');\r\n }\r\n set skipEmptyValues(value) {\r\n this._setOption('skipEmptyValues', value);\r\n }\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n get totalItems() {\r\n return this._getOption('totalItems');\r\n }\r\n set totalItems(value) {\r\n this._setOption('totalItems', value);\r\n }\r\n get _optionPath() {\r\n return 'summary';\r\n }\r\n get groupItemsChildren() {\r\n return this._getOption('groupItems');\r\n }\r\n set groupItemsChildren(value) {\r\n this.setChildren('groupItems', value);\r\n }\r\n get totalItemsChildren() {\r\n return this._getOption('totalItems');\r\n }\r\n set totalItemsChildren(value) {\r\n this.setChildren('totalItems', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoSummaryComponent.ɵfac = function DxoSummaryComponent_Factory(t) { return new (t || DxoSummaryComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoSummaryComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoSummaryComponent, selectors: [[\"dxo-summary\"]], contentQueries: function DxoSummaryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiGroupItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiTotalItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groupItemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.totalItemsChildren = _t);\r\n } }, inputs: { calculateCustomSummary: \"calculateCustomSummary\", groupItems: \"groupItems\", recalculateWhileEditing: \"recalculateWhileEditing\", skipEmptyValues: \"skipEmptyValues\", texts: \"texts\", totalItems: \"totalItems\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoSummaryComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSummaryComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-summary',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { calculateCustomSummary: [{\r\n type: Input\r\n }], groupItems: [{\r\n type: Input\r\n }], recalculateWhileEditing: [{\r\n type: Input\r\n }], skipEmptyValues: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], totalItems: [{\r\n type: Input\r\n }], groupItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiGroupItemComponent)]\r\n }], totalItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiTotalItemComponent)]\r\n }] }); })();\r\nclass DxoSummaryModule {\r\n}\r\n/** @nocollapse */ DxoSummaryModule.ɵfac = function DxoSummaryModule_Factory(t) { return new (t || DxoSummaryModule)(); };\r\n/** @nocollapse */ DxoSummaryModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoSummaryModule });\r\n/** @nocollapse */ DxoSummaryModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoSummaryModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoSummaryComponent\r\n ],\r\n exports: [\r\n DxoSummaryComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoSummaryModule, { declarations: [DxoSummaryComponent], exports: [DxoSummaryComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTabPanelOptions extends NestedOption {\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n get iconPosition() {\r\n return this._getOption('iconPosition');\r\n }\r\n set iconPosition(value) {\r\n this._setOption('iconPosition', value);\r\n }\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n get itemTitleTemplate() {\r\n return this._getOption('itemTitleTemplate');\r\n }\r\n set itemTitleTemplate(value) {\r\n this._setOption('itemTitleTemplate', value);\r\n }\r\n get loop() {\r\n return this._getOption('loop');\r\n }\r\n set loop(value) {\r\n this._setOption('loop', value);\r\n }\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n get onContentReady() {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value) {\r\n this._setOption('onContentReady', value);\r\n }\r\n get onDisposing() {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value) {\r\n this._setOption('onDisposing', value);\r\n }\r\n get onInitialized() {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value) {\r\n this._setOption('onInitialized', value);\r\n }\r\n get onItemClick() {\r\n return this._getOption('onItemClick');\r\n }\r\n set onItemClick(value) {\r\n this._setOption('onItemClick', value);\r\n }\r\n get onItemContextMenu() {\r\n return this._getOption('onItemContextMenu');\r\n }\r\n set onItemContextMenu(value) {\r\n this._setOption('onItemContextMenu', value);\r\n }\r\n get onItemHold() {\r\n return this._getOption('onItemHold');\r\n }\r\n set onItemHold(value) {\r\n this._setOption('onItemHold', value);\r\n }\r\n get onItemRendered() {\r\n return this._getOption('onItemRendered');\r\n }\r\n set onItemRendered(value) {\r\n this._setOption('onItemRendered', value);\r\n }\r\n get onOptionChanged() {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n get onSelectionChanged() {\r\n return this._getOption('onSelectionChanged');\r\n }\r\n set onSelectionChanged(value) {\r\n this._setOption('onSelectionChanged', value);\r\n }\r\n get onTitleClick() {\r\n return this._getOption('onTitleClick');\r\n }\r\n set onTitleClick(value) {\r\n this._setOption('onTitleClick', value);\r\n }\r\n get onTitleHold() {\r\n return this._getOption('onTitleHold');\r\n }\r\n set onTitleHold(value) {\r\n this._setOption('onTitleHold', value);\r\n }\r\n get onTitleRendered() {\r\n return this._getOption('onTitleRendered');\r\n }\r\n set onTitleRendered(value) {\r\n this._setOption('onTitleRendered', value);\r\n }\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n get showNavButtons() {\r\n return this._getOption('showNavButtons');\r\n }\r\n set showNavButtons(value) {\r\n this._setOption('showNavButtons', value);\r\n }\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n get swipeEnabled() {\r\n return this._getOption('swipeEnabled');\r\n }\r\n set swipeEnabled(value) {\r\n this._setOption('swipeEnabled', value);\r\n }\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n get tabsPosition() {\r\n return this._getOption('tabsPosition');\r\n }\r\n set tabsPosition(value) {\r\n this._setOption('tabsPosition', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoTabPanelOptions.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoTabPanelOptions_BaseFactory; return function DxoTabPanelOptions_Factory(t) { return (ɵDxoTabPanelOptions_BaseFactory || (ɵDxoTabPanelOptions_BaseFactory = i0.ɵɵgetInheritedFactory(DxoTabPanelOptions)))(t || DxoTabPanelOptions); }; }();\r\n/** @nocollapse */ DxoTabPanelOptions.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTabPanelOptions, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTabPanelOptions_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTabPanelOptions, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTabPanelOptionsComponent extends DxoTabPanelOptions {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'itemsChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'tabPanelOptions';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTabPanelOptionsComponent.ɵfac = function DxoTabPanelOptionsComponent_Factory(t) { return new (t || DxoTabPanelOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTabPanelOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTabPanelOptionsComponent, selectors: [[\"dxo-tab-panel-options\"]], contentQueries: function DxoTabPanelOptionsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animationEnabled: \"animationEnabled\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", iconPosition: \"iconPosition\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", itemTitleTemplate: \"itemTitleTemplate\", loop: \"loop\", noDataText: \"noDataText\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", onTitleClick: \"onTitleClick\", onTitleHold: \"onTitleHold\", onTitleRendered: \"onTitleRendered\", repaintChangesOnly: \"repaintChangesOnly\", rtlEnabled: \"rtlEnabled\", scrollByContent: \"scrollByContent\", scrollingEnabled: \"scrollingEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", showNavButtons: \"showNavButtons\", stylingMode: \"stylingMode\", swipeEnabled: \"swipeEnabled\", tabIndex: \"tabIndex\", tabsPosition: \"tabsPosition\", visible: \"visible\", width: \"width\" }, outputs: { itemsChange: \"itemsChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTabPanelOptionsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTabPanelOptionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tab-panel-options',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'accessKey',\r\n 'activeStateEnabled',\r\n 'animationEnabled',\r\n 'dataSource',\r\n 'deferRendering',\r\n 'disabled',\r\n 'elementAttr',\r\n 'focusStateEnabled',\r\n 'height',\r\n 'hint',\r\n 'hoverStateEnabled',\r\n 'iconPosition',\r\n 'itemHoldTimeout',\r\n 'items',\r\n 'itemTemplate',\r\n 'itemTitleTemplate',\r\n 'loop',\r\n 'noDataText',\r\n 'onContentReady',\r\n 'onDisposing',\r\n 'onInitialized',\r\n 'onItemClick',\r\n 'onItemContextMenu',\r\n 'onItemHold',\r\n 'onItemRendered',\r\n 'onOptionChanged',\r\n 'onSelectionChanged',\r\n 'onTitleClick',\r\n 'onTitleHold',\r\n 'onTitleRendered',\r\n 'repaintChangesOnly',\r\n 'rtlEnabled',\r\n 'scrollByContent',\r\n 'scrollingEnabled',\r\n 'selectedIndex',\r\n 'selectedItem',\r\n 'showNavButtons',\r\n 'stylingMode',\r\n 'swipeEnabled',\r\n 'tabIndex',\r\n 'tabsPosition',\r\n 'visible',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { itemsChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoTabPanelOptionsModule {\r\n}\r\n/** @nocollapse */ DxoTabPanelOptionsModule.ɵfac = function DxoTabPanelOptionsModule_Factory(t) { return new (t || DxoTabPanelOptionsModule)(); };\r\n/** @nocollapse */ DxoTabPanelOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTabPanelOptionsModule });\r\n/** @nocollapse */ DxoTabPanelOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTabPanelOptionsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTabPanelOptionsComponent\r\n ],\r\n exports: [\r\n DxoTabPanelOptionsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTabPanelOptionsModule, { declarations: [DxoTabPanelOptionsComponent], exports: [DxoTabPanelOptionsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHtmlEditorTableContextMenu extends NestedOption {\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoHtmlEditorTableContextMenu.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoHtmlEditorTableContextMenu_BaseFactory; return function DxoHtmlEditorTableContextMenu_Factory(t) { return (ɵDxoHtmlEditorTableContextMenu_BaseFactory || (ɵDxoHtmlEditorTableContextMenu_BaseFactory = i0.ɵɵgetInheritedFactory(DxoHtmlEditorTableContextMenu)))(t || DxoHtmlEditorTableContextMenu); }; }();\r\n/** @nocollapse */ DxoHtmlEditorTableContextMenu.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHtmlEditorTableContextMenu, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHtmlEditorTableContextMenu_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHtmlEditorTableContextMenu, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTableContextMenuComponent extends DxoHtmlEditorTableContextMenu {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'tableContextMenu';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTableContextMenuComponent.ɵfac = function DxoTableContextMenuComponent_Factory(t) { return new (t || DxoTableContextMenuComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTableContextMenuComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTableContextMenuComponent, selectors: [[\"dxo-table-context-menu\"]], contentQueries: function DxoTableContextMenuComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { enabled: \"enabled\", items: \"items\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTableContextMenuComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTableContextMenuComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-table-context-menu',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'enabled',\r\n 'items'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }] }); })();\r\nclass DxoTableContextMenuModule {\r\n}\r\n/** @nocollapse */ DxoTableContextMenuModule.ɵfac = function DxoTableContextMenuModule_Factory(t) { return new (t || DxoTableContextMenuModule)(); };\r\n/** @nocollapse */ DxoTableContextMenuModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTableContextMenuModule });\r\n/** @nocollapse */ DxoTableContextMenuModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTableContextMenuModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTableContextMenuComponent\r\n ],\r\n exports: [\r\n DxoTableContextMenuComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTableContextMenuModule, { declarations: [DxoTableContextMenuComponent], exports: [DxoTableContextMenuComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHtmlEditorTableResizing extends NestedOption {\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get minColumnWidth() {\r\n return this._getOption('minColumnWidth');\r\n }\r\n set minColumnWidth(value) {\r\n this._setOption('minColumnWidth', value);\r\n }\r\n get minRowHeight() {\r\n return this._getOption('minRowHeight');\r\n }\r\n set minRowHeight(value) {\r\n this._setOption('minRowHeight', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoHtmlEditorTableResizing.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoHtmlEditorTableResizing_BaseFactory; return function DxoHtmlEditorTableResizing_Factory(t) { return (ɵDxoHtmlEditorTableResizing_BaseFactory || (ɵDxoHtmlEditorTableResizing_BaseFactory = i0.ɵɵgetInheritedFactory(DxoHtmlEditorTableResizing)))(t || DxoHtmlEditorTableResizing); }; }();\r\n/** @nocollapse */ DxoHtmlEditorTableResizing.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHtmlEditorTableResizing, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHtmlEditorTableResizing_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHtmlEditorTableResizing, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTableResizingComponent extends DxoHtmlEditorTableResizing {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'tableResizing';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTableResizingComponent.ɵfac = function DxoTableResizingComponent_Factory(t) { return new (t || DxoTableResizingComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTableResizingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTableResizingComponent, selectors: [[\"dxo-table-resizing\"]], inputs: { enabled: \"enabled\", minColumnWidth: \"minColumnWidth\", minRowHeight: \"minRowHeight\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTableResizingComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTableResizingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-table-resizing',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'enabled',\r\n 'minColumnWidth',\r\n 'minRowHeight'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoTableResizingModule {\r\n}\r\n/** @nocollapse */ DxoTableResizingModule.ɵfac = function DxoTableResizingModule_Factory(t) { return new (t || DxoTableResizingModule)(); };\r\n/** @nocollapse */ DxoTableResizingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTableResizingModule });\r\n/** @nocollapse */ DxoTableResizingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTableResizingModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTableResizingComponent\r\n ],\r\n exports: [\r\n DxoTableResizingComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTableResizingModule, { declarations: [DxoTableResizingComponent], exports: [DxoTableResizingComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTasksComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get colorExpr() {\r\n return this._getOption('colorExpr');\r\n }\r\n set colorExpr(value) {\r\n this._setOption('colorExpr', value);\r\n }\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get endExpr() {\r\n return this._getOption('endExpr');\r\n }\r\n set endExpr(value) {\r\n this._setOption('endExpr', value);\r\n }\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n get parentIdExpr() {\r\n return this._getOption('parentIdExpr');\r\n }\r\n set parentIdExpr(value) {\r\n this._setOption('parentIdExpr', value);\r\n }\r\n get progressExpr() {\r\n return this._getOption('progressExpr');\r\n }\r\n set progressExpr(value) {\r\n this._setOption('progressExpr', value);\r\n }\r\n get startExpr() {\r\n return this._getOption('startExpr');\r\n }\r\n set startExpr(value) {\r\n this._setOption('startExpr', value);\r\n }\r\n get titleExpr() {\r\n return this._getOption('titleExpr');\r\n }\r\n set titleExpr(value) {\r\n this._setOption('titleExpr', value);\r\n }\r\n get _optionPath() {\r\n return 'tasks';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTasksComponent.ɵfac = function DxoTasksComponent_Factory(t) { return new (t || DxoTasksComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTasksComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTasksComponent, selectors: [[\"dxo-tasks\"]], inputs: { colorExpr: \"colorExpr\", dataSource: \"dataSource\", endExpr: \"endExpr\", keyExpr: \"keyExpr\", parentIdExpr: \"parentIdExpr\", progressExpr: \"progressExpr\", startExpr: \"startExpr\", titleExpr: \"titleExpr\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTasksComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTasksComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tasks',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { colorExpr: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], endExpr: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], parentIdExpr: [{\r\n type: Input\r\n }], progressExpr: [{\r\n type: Input\r\n }], startExpr: [{\r\n type: Input\r\n }], titleExpr: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTasksModule {\r\n}\r\n/** @nocollapse */ DxoTasksModule.ɵfac = function DxoTasksModule_Factory(t) { return new (t || DxoTasksModule)(); };\r\n/** @nocollapse */ DxoTasksModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTasksModule });\r\n/** @nocollapse */ DxoTasksModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTasksModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTasksComponent\r\n ],\r\n exports: [\r\n DxoTasksComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTasksModule, { declarations: [DxoTasksComponent], exports: [DxoTasksComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTextComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get customizeText() {\r\n return this._getOption('customizeText');\r\n }\r\n set customizeText(value) {\r\n this._setOption('customizeText', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get indent() {\r\n return this._getOption('indent');\r\n }\r\n set indent(value) {\r\n this._setOption('indent', value);\r\n }\r\n get _optionPath() {\r\n return 'text';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTextComponent.ɵfac = function DxoTextComponent_Factory(t) { return new (t || DxoTextComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTextComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTextComponent, selectors: [[\"dxo-text\"]], inputs: { customizeText: \"customizeText\", font: \"font\", format: \"format\", indent: \"indent\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTextComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTextComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-text',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { customizeText: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], format: [{\r\n type: Input\r\n }], indent: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTextModule {\r\n}\r\n/** @nocollapse */ DxoTextModule.ɵfac = function DxoTextModule_Factory(t) { return new (t || DxoTextModule)(); };\r\n/** @nocollapse */ DxoTextModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTextModule });\r\n/** @nocollapse */ DxoTextModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTextModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTextComponent\r\n ],\r\n exports: [\r\n DxoTextComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTextModule, { declarations: [DxoTextComponent], exports: [DxoTextComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoGanttHeaderFilterTexts extends NestedOption {\r\n get fix() {\r\n return this._getOption('fix');\r\n }\r\n set fix(value) {\r\n this._setOption('fix', value);\r\n }\r\n get leftPosition() {\r\n return this._getOption('leftPosition');\r\n }\r\n set leftPosition(value) {\r\n this._setOption('leftPosition', value);\r\n }\r\n get rightPosition() {\r\n return this._getOption('rightPosition');\r\n }\r\n set rightPosition(value) {\r\n this._setOption('rightPosition', value);\r\n }\r\n get unfix() {\r\n return this._getOption('unfix');\r\n }\r\n set unfix(value) {\r\n this._setOption('unfix', value);\r\n }\r\n get addRow() {\r\n return this._getOption('addRow');\r\n }\r\n set addRow(value) {\r\n this._setOption('addRow', value);\r\n }\r\n get cancelAllChanges() {\r\n return this._getOption('cancelAllChanges');\r\n }\r\n set cancelAllChanges(value) {\r\n this._setOption('cancelAllChanges', value);\r\n }\r\n get cancelRowChanges() {\r\n return this._getOption('cancelRowChanges');\r\n }\r\n set cancelRowChanges(value) {\r\n this._setOption('cancelRowChanges', value);\r\n }\r\n get confirmDeleteMessage() {\r\n return this._getOption('confirmDeleteMessage');\r\n }\r\n set confirmDeleteMessage(value) {\r\n this._setOption('confirmDeleteMessage', value);\r\n }\r\n get confirmDeleteTitle() {\r\n return this._getOption('confirmDeleteTitle');\r\n }\r\n set confirmDeleteTitle(value) {\r\n this._setOption('confirmDeleteTitle', value);\r\n }\r\n get deleteRow() {\r\n return this._getOption('deleteRow');\r\n }\r\n set deleteRow(value) {\r\n this._setOption('deleteRow', value);\r\n }\r\n get editRow() {\r\n return this._getOption('editRow');\r\n }\r\n set editRow(value) {\r\n this._setOption('editRow', value);\r\n }\r\n get saveAllChanges() {\r\n return this._getOption('saveAllChanges');\r\n }\r\n set saveAllChanges(value) {\r\n this._setOption('saveAllChanges', value);\r\n }\r\n get saveRowChanges() {\r\n return this._getOption('saveRowChanges');\r\n }\r\n set saveRowChanges(value) {\r\n this._setOption('saveRowChanges', value);\r\n }\r\n get undeleteRow() {\r\n return this._getOption('undeleteRow');\r\n }\r\n set undeleteRow(value) {\r\n this._setOption('undeleteRow', value);\r\n }\r\n get validationCancelChanges() {\r\n return this._getOption('validationCancelChanges');\r\n }\r\n set validationCancelChanges(value) {\r\n this._setOption('validationCancelChanges', value);\r\n }\r\n get exportAll() {\r\n return this._getOption('exportAll');\r\n }\r\n set exportAll(value) {\r\n this._setOption('exportAll', value);\r\n }\r\n get exportSelectedRows() {\r\n return this._getOption('exportSelectedRows');\r\n }\r\n set exportSelectedRows(value) {\r\n this._setOption('exportSelectedRows', value);\r\n }\r\n get exportTo() {\r\n return this._getOption('exportTo');\r\n }\r\n set exportTo(value) {\r\n this._setOption('exportTo', value);\r\n }\r\n get clearFilter() {\r\n return this._getOption('clearFilter');\r\n }\r\n set clearFilter(value) {\r\n this._setOption('clearFilter', value);\r\n }\r\n get createFilter() {\r\n return this._getOption('createFilter');\r\n }\r\n set createFilter(value) {\r\n this._setOption('createFilter', value);\r\n }\r\n get filterEnabledHint() {\r\n return this._getOption('filterEnabledHint');\r\n }\r\n set filterEnabledHint(value) {\r\n this._setOption('filterEnabledHint', value);\r\n }\r\n get groupByThisColumn() {\r\n return this._getOption('groupByThisColumn');\r\n }\r\n set groupByThisColumn(value) {\r\n this._setOption('groupByThisColumn', value);\r\n }\r\n get groupContinuedMessage() {\r\n return this._getOption('groupContinuedMessage');\r\n }\r\n set groupContinuedMessage(value) {\r\n this._setOption('groupContinuedMessage', value);\r\n }\r\n get groupContinuesMessage() {\r\n return this._getOption('groupContinuesMessage');\r\n }\r\n set groupContinuesMessage(value) {\r\n this._setOption('groupContinuesMessage', value);\r\n }\r\n get ungroup() {\r\n return this._getOption('ungroup');\r\n }\r\n set ungroup(value) {\r\n this._setOption('ungroup', value);\r\n }\r\n get ungroupAll() {\r\n return this._getOption('ungroupAll');\r\n }\r\n set ungroupAll(value) {\r\n this._setOption('ungroupAll', value);\r\n }\r\n get cancel() {\r\n return this._getOption('cancel');\r\n }\r\n set cancel(value) {\r\n this._setOption('cancel', value);\r\n }\r\n get emptyValue() {\r\n return this._getOption('emptyValue');\r\n }\r\n set emptyValue(value) {\r\n this._setOption('emptyValue', value);\r\n }\r\n get ok() {\r\n return this._getOption('ok');\r\n }\r\n set ok(value) {\r\n this._setOption('ok', value);\r\n }\r\n get avg() {\r\n return this._getOption('avg');\r\n }\r\n set avg(value) {\r\n this._setOption('avg', value);\r\n }\r\n get avgOtherColumn() {\r\n return this._getOption('avgOtherColumn');\r\n }\r\n set avgOtherColumn(value) {\r\n this._setOption('avgOtherColumn', value);\r\n }\r\n get count() {\r\n return this._getOption('count');\r\n }\r\n set count(value) {\r\n this._setOption('count', value);\r\n }\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n get maxOtherColumn() {\r\n return this._getOption('maxOtherColumn');\r\n }\r\n set maxOtherColumn(value) {\r\n this._setOption('maxOtherColumn', value);\r\n }\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n get minOtherColumn() {\r\n return this._getOption('minOtherColumn');\r\n }\r\n set minOtherColumn(value) {\r\n this._setOption('minOtherColumn', value);\r\n }\r\n get sum() {\r\n return this._getOption('sum');\r\n }\r\n set sum(value) {\r\n this._setOption('sum', value);\r\n }\r\n get sumOtherColumn() {\r\n return this._getOption('sumOtherColumn');\r\n }\r\n set sumOtherColumn(value) {\r\n this._setOption('sumOtherColumn', value);\r\n }\r\n get allFields() {\r\n return this._getOption('allFields');\r\n }\r\n set allFields(value) {\r\n this._setOption('allFields', value);\r\n }\r\n get columnFields() {\r\n return this._getOption('columnFields');\r\n }\r\n set columnFields(value) {\r\n this._setOption('columnFields', value);\r\n }\r\n get dataFields() {\r\n return this._getOption('dataFields');\r\n }\r\n set dataFields(value) {\r\n this._setOption('dataFields', value);\r\n }\r\n get filterFields() {\r\n return this._getOption('filterFields');\r\n }\r\n set filterFields(value) {\r\n this._setOption('filterFields', value);\r\n }\r\n get rowFields() {\r\n return this._getOption('rowFields');\r\n }\r\n set rowFields(value) {\r\n this._setOption('rowFields', value);\r\n }\r\n get columnFieldArea() {\r\n return this._getOption('columnFieldArea');\r\n }\r\n set columnFieldArea(value) {\r\n this._setOption('columnFieldArea', value);\r\n }\r\n get dataFieldArea() {\r\n return this._getOption('dataFieldArea');\r\n }\r\n set dataFieldArea(value) {\r\n this._setOption('dataFieldArea', value);\r\n }\r\n get filterFieldArea() {\r\n return this._getOption('filterFieldArea');\r\n }\r\n set filterFieldArea(value) {\r\n this._setOption('filterFieldArea', value);\r\n }\r\n get rowFieldArea() {\r\n return this._getOption('rowFieldArea');\r\n }\r\n set rowFieldArea(value) {\r\n this._setOption('rowFieldArea', value);\r\n }\r\n get collapseAll() {\r\n return this._getOption('collapseAll');\r\n }\r\n set collapseAll(value) {\r\n this._setOption('collapseAll', value);\r\n }\r\n get dataNotAvailable() {\r\n return this._getOption('dataNotAvailable');\r\n }\r\n set dataNotAvailable(value) {\r\n this._setOption('dataNotAvailable', value);\r\n }\r\n get expandAll() {\r\n return this._getOption('expandAll');\r\n }\r\n set expandAll(value) {\r\n this._setOption('expandAll', value);\r\n }\r\n get exportToExcel() {\r\n return this._getOption('exportToExcel');\r\n }\r\n set exportToExcel(value) {\r\n this._setOption('exportToExcel', value);\r\n }\r\n get grandTotal() {\r\n return this._getOption('grandTotal');\r\n }\r\n set grandTotal(value) {\r\n this._setOption('grandTotal', value);\r\n }\r\n get noData() {\r\n return this._getOption('noData');\r\n }\r\n set noData(value) {\r\n this._setOption('noData', value);\r\n }\r\n get removeAllSorting() {\r\n return this._getOption('removeAllSorting');\r\n }\r\n set removeAllSorting(value) {\r\n this._setOption('removeAllSorting', value);\r\n }\r\n get showFieldChooser() {\r\n return this._getOption('showFieldChooser');\r\n }\r\n set showFieldChooser(value) {\r\n this._setOption('showFieldChooser', value);\r\n }\r\n get sortColumnBySummary() {\r\n return this._getOption('sortColumnBySummary');\r\n }\r\n set sortColumnBySummary(value) {\r\n this._setOption('sortColumnBySummary', value);\r\n }\r\n get sortRowBySummary() {\r\n return this._getOption('sortRowBySummary');\r\n }\r\n set sortRowBySummary(value) {\r\n this._setOption('sortRowBySummary', value);\r\n }\r\n get total() {\r\n return this._getOption('total');\r\n }\r\n set total(value) {\r\n this._setOption('total', value);\r\n }\r\n get addRowToNode() {\r\n return this._getOption('addRowToNode');\r\n }\r\n set addRowToNode(value) {\r\n this._setOption('addRowToNode', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoGanttHeaderFilterTexts.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoGanttHeaderFilterTexts_BaseFactory; return function DxoGanttHeaderFilterTexts_Factory(t) { return (ɵDxoGanttHeaderFilterTexts_BaseFactory || (ɵDxoGanttHeaderFilterTexts_BaseFactory = i0.ɵɵgetInheritedFactory(DxoGanttHeaderFilterTexts)))(t || DxoGanttHeaderFilterTexts); }; }();\r\n/** @nocollapse */ DxoGanttHeaderFilterTexts.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoGanttHeaderFilterTexts, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoGanttHeaderFilterTexts_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoGanttHeaderFilterTexts, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTextsComponent extends DxoGanttHeaderFilterTexts {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'texts';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTextsComponent.ɵfac = function DxoTextsComponent_Factory(t) { return new (t || DxoTextsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTextsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTextsComponent, selectors: [[\"dxo-texts\"]], inputs: { fix: \"fix\", leftPosition: \"leftPosition\", rightPosition: \"rightPosition\", unfix: \"unfix\", addRow: \"addRow\", cancelAllChanges: \"cancelAllChanges\", cancelRowChanges: \"cancelRowChanges\", confirmDeleteMessage: \"confirmDeleteMessage\", confirmDeleteTitle: \"confirmDeleteTitle\", deleteRow: \"deleteRow\", editRow: \"editRow\", saveAllChanges: \"saveAllChanges\", saveRowChanges: \"saveRowChanges\", undeleteRow: \"undeleteRow\", validationCancelChanges: \"validationCancelChanges\", exportAll: \"exportAll\", exportSelectedRows: \"exportSelectedRows\", exportTo: \"exportTo\", clearFilter: \"clearFilter\", createFilter: \"createFilter\", filterEnabledHint: \"filterEnabledHint\", groupByThisColumn: \"groupByThisColumn\", groupContinuedMessage: \"groupContinuedMessage\", groupContinuesMessage: \"groupContinuesMessage\", ungroup: \"ungroup\", ungroupAll: \"ungroupAll\", cancel: \"cancel\", emptyValue: \"emptyValue\", ok: \"ok\", avg: \"avg\", avgOtherColumn: \"avgOtherColumn\", count: \"count\", max: \"max\", maxOtherColumn: \"maxOtherColumn\", min: \"min\", minOtherColumn: \"minOtherColumn\", sum: \"sum\", sumOtherColumn: \"sumOtherColumn\", allFields: \"allFields\", columnFields: \"columnFields\", dataFields: \"dataFields\", filterFields: \"filterFields\", rowFields: \"rowFields\", columnFieldArea: \"columnFieldArea\", dataFieldArea: \"dataFieldArea\", filterFieldArea: \"filterFieldArea\", rowFieldArea: \"rowFieldArea\", collapseAll: \"collapseAll\", dataNotAvailable: \"dataNotAvailable\", expandAll: \"expandAll\", exportToExcel: \"exportToExcel\", grandTotal: \"grandTotal\", noData: \"noData\", removeAllSorting: \"removeAllSorting\", showFieldChooser: \"showFieldChooser\", sortColumnBySummary: \"sortColumnBySummary\", sortRowBySummary: \"sortRowBySummary\", total: \"total\", addRowToNode: \"addRowToNode\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTextsComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTextsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-texts',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'fix',\r\n 'leftPosition',\r\n 'rightPosition',\r\n 'unfix',\r\n 'addRow',\r\n 'cancelAllChanges',\r\n 'cancelRowChanges',\r\n 'confirmDeleteMessage',\r\n 'confirmDeleteTitle',\r\n 'deleteRow',\r\n 'editRow',\r\n 'saveAllChanges',\r\n 'saveRowChanges',\r\n 'undeleteRow',\r\n 'validationCancelChanges',\r\n 'exportAll',\r\n 'exportSelectedRows',\r\n 'exportTo',\r\n 'clearFilter',\r\n 'createFilter',\r\n 'filterEnabledHint',\r\n 'groupByThisColumn',\r\n 'groupContinuedMessage',\r\n 'groupContinuesMessage',\r\n 'ungroup',\r\n 'ungroupAll',\r\n 'cancel',\r\n 'emptyValue',\r\n 'ok',\r\n 'avg',\r\n 'avgOtherColumn',\r\n 'count',\r\n 'max',\r\n 'maxOtherColumn',\r\n 'min',\r\n 'minOtherColumn',\r\n 'sum',\r\n 'sumOtherColumn',\r\n 'allFields',\r\n 'columnFields',\r\n 'dataFields',\r\n 'filterFields',\r\n 'rowFields',\r\n 'columnFieldArea',\r\n 'dataFieldArea',\r\n 'filterFieldArea',\r\n 'rowFieldArea',\r\n 'collapseAll',\r\n 'dataNotAvailable',\r\n 'expandAll',\r\n 'exportToExcel',\r\n 'grandTotal',\r\n 'noData',\r\n 'removeAllSorting',\r\n 'showFieldChooser',\r\n 'sortColumnBySummary',\r\n 'sortRowBySummary',\r\n 'total',\r\n 'addRowToNode'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoTextsModule {\r\n}\r\n/** @nocollapse */ DxoTextsModule.ɵfac = function DxoTextsModule_Factory(t) { return new (t || DxoTextsModule)(); };\r\n/** @nocollapse */ DxoTextsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTextsModule });\r\n/** @nocollapse */ DxoTextsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTextsModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTextsComponent\r\n ],\r\n exports: [\r\n DxoTextsComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTextsModule, { declarations: [DxoTextsComponent], exports: [DxoTextsComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTickIntervalComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get days() {\r\n return this._getOption('days');\r\n }\r\n set days(value) {\r\n this._setOption('days', value);\r\n }\r\n get hours() {\r\n return this._getOption('hours');\r\n }\r\n set hours(value) {\r\n this._setOption('hours', value);\r\n }\r\n get milliseconds() {\r\n return this._getOption('milliseconds');\r\n }\r\n set milliseconds(value) {\r\n this._setOption('milliseconds', value);\r\n }\r\n get minutes() {\r\n return this._getOption('minutes');\r\n }\r\n set minutes(value) {\r\n this._setOption('minutes', value);\r\n }\r\n get months() {\r\n return this._getOption('months');\r\n }\r\n set months(value) {\r\n this._setOption('months', value);\r\n }\r\n get quarters() {\r\n return this._getOption('quarters');\r\n }\r\n set quarters(value) {\r\n this._setOption('quarters', value);\r\n }\r\n get seconds() {\r\n return this._getOption('seconds');\r\n }\r\n set seconds(value) {\r\n this._setOption('seconds', value);\r\n }\r\n get weeks() {\r\n return this._getOption('weeks');\r\n }\r\n set weeks(value) {\r\n this._setOption('weeks', value);\r\n }\r\n get years() {\r\n return this._getOption('years');\r\n }\r\n set years(value) {\r\n this._setOption('years', value);\r\n }\r\n get _optionPath() {\r\n return 'tickInterval';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTickIntervalComponent.ɵfac = function DxoTickIntervalComponent_Factory(t) { return new (t || DxoTickIntervalComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTickIntervalComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTickIntervalComponent, selectors: [[\"dxo-tick-interval\"]], inputs: { days: \"days\", hours: \"hours\", milliseconds: \"milliseconds\", minutes: \"minutes\", months: \"months\", quarters: \"quarters\", seconds: \"seconds\", weeks: \"weeks\", years: \"years\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTickIntervalComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTickIntervalComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tick-interval',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { days: [{\r\n type: Input\r\n }], hours: [{\r\n type: Input\r\n }], milliseconds: [{\r\n type: Input\r\n }], minutes: [{\r\n type: Input\r\n }], months: [{\r\n type: Input\r\n }], quarters: [{\r\n type: Input\r\n }], seconds: [{\r\n type: Input\r\n }], weeks: [{\r\n type: Input\r\n }], years: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTickIntervalModule {\r\n}\r\n/** @nocollapse */ DxoTickIntervalModule.ɵfac = function DxoTickIntervalModule_Factory(t) { return new (t || DxoTickIntervalModule)(); };\r\n/** @nocollapse */ DxoTickIntervalModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTickIntervalModule });\r\n/** @nocollapse */ DxoTickIntervalModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTickIntervalModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTickIntervalComponent\r\n ],\r\n exports: [\r\n DxoTickIntervalComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTickIntervalModule, { declarations: [DxoTickIntervalComponent], exports: [DxoTickIntervalComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTickComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get length() {\r\n return this._getOption('length');\r\n }\r\n set length(value) {\r\n this._setOption('length', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get shift() {\r\n return this._getOption('shift');\r\n }\r\n set shift(value) {\r\n this._setOption('shift', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'tick';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTickComponent.ɵfac = function DxoTickComponent_Factory(t) { return new (t || DxoTickComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTickComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTickComponent, selectors: [[\"dxo-tick\"]], inputs: { color: \"color\", length: \"length\", opacity: \"opacity\", shift: \"shift\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTickComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTickComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tick',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], length: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], shift: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTickModule {\r\n}\r\n/** @nocollapse */ DxoTickModule.ɵfac = function DxoTickModule_Factory(t) { return new (t || DxoTickModule)(); };\r\n/** @nocollapse */ DxoTickModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTickModule });\r\n/** @nocollapse */ DxoTickModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTickModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTickComponent\r\n ],\r\n exports: [\r\n DxoTickComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTickModule, { declarations: [DxoTickComponent], exports: [DxoTickComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTileComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get hoverStyle() {\r\n return this._getOption('hoverStyle');\r\n }\r\n set hoverStyle(value) {\r\n this._setOption('hoverStyle', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get selectionStyle() {\r\n return this._getOption('selectionStyle');\r\n }\r\n set selectionStyle(value) {\r\n this._setOption('selectionStyle', value);\r\n }\r\n get _optionPath() {\r\n return 'tile';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTileComponent.ɵfac = function DxoTileComponent_Factory(t) { return new (t || DxoTileComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTileComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTileComponent, selectors: [[\"dxo-tile\"]], inputs: { border: \"border\", color: \"color\", hoverStyle: \"hoverStyle\", label: \"label\", selectionStyle: \"selectionStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTileComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTileComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tile',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], hoverStyle: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], selectionStyle: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTileModule {\r\n}\r\n/** @nocollapse */ DxoTileModule.ɵfac = function DxoTileModule_Factory(t) { return new (t || DxoTileModule)(); };\r\n/** @nocollapse */ DxoTileModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTileModule });\r\n/** @nocollapse */ DxoTileModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTileModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTileComponent\r\n ],\r\n exports: [\r\n DxoTileComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTileModule, { declarations: [DxoTileComponent], exports: [DxoTileComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTitleComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get horizontalAlignment() {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n get placeholderSize() {\r\n return this._getOption('placeholderSize');\r\n }\r\n set placeholderSize(value) {\r\n this._setOption('placeholderSize', value);\r\n }\r\n get subtitle() {\r\n return this._getOption('subtitle');\r\n }\r\n set subtitle(value) {\r\n this._setOption('subtitle', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get verticalAlignment() {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n get textOverflow() {\r\n return this._getOption('textOverflow');\r\n }\r\n set textOverflow(value) {\r\n this._setOption('textOverflow', value);\r\n }\r\n get wordWrap() {\r\n return this._getOption('wordWrap');\r\n }\r\n set wordWrap(value) {\r\n this._setOption('wordWrap', value);\r\n }\r\n get alignment() {\r\n return this._getOption('alignment');\r\n }\r\n set alignment(value) {\r\n this._setOption('alignment', value);\r\n }\r\n get _optionPath() {\r\n return 'title';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTitleComponent.ɵfac = function DxoTitleComponent_Factory(t) { return new (t || DxoTitleComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTitleComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTitleComponent, selectors: [[\"dxo-title\"]], inputs: { font: \"font\", horizontalAlignment: \"horizontalAlignment\", margin: \"margin\", placeholderSize: \"placeholderSize\", subtitle: \"subtitle\", text: \"text\", verticalAlignment: \"verticalAlignment\", textOverflow: \"textOverflow\", wordWrap: \"wordWrap\", alignment: \"alignment\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTitleComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTitleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-title',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { font: [{\r\n type: Input\r\n }], horizontalAlignment: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], placeholderSize: [{\r\n type: Input\r\n }], subtitle: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], verticalAlignment: [{\r\n type: Input\r\n }], textOverflow: [{\r\n type: Input\r\n }], wordWrap: [{\r\n type: Input\r\n }], alignment: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTitleModule {\r\n}\r\n/** @nocollapse */ DxoTitleModule.ɵfac = function DxoTitleModule_Factory(t) { return new (t || DxoTitleModule)(); };\r\n/** @nocollapse */ DxoTitleModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTitleModule });\r\n/** @nocollapse */ DxoTitleModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTitleModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTitleComponent\r\n ],\r\n exports: [\r\n DxoTitleComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTitleModule, { declarations: [DxoTitleComponent], exports: [DxoTitleComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoToComponent extends DxoAnimationState {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'to';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoToComponent.ɵfac = function DxoToComponent_Factory(t) { return new (t || DxoToComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoToComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoToComponent, selectors: [[\"dxo-to\"]], inputs: { left: \"left\", opacity: \"opacity\", position: \"position\", scale: \"scale\", top: \"top\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoToComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-to',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'left',\r\n 'opacity',\r\n 'position',\r\n 'scale',\r\n 'top'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoToModule {\r\n}\r\n/** @nocollapse */ DxoToModule.ɵfac = function DxoToModule_Factory(t) { return new (t || DxoToModule)(); };\r\n/** @nocollapse */ DxoToModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoToModule });\r\n/** @nocollapse */ DxoToModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoToComponent\r\n ],\r\n exports: [\r\n DxoToComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoToModule, { declarations: [DxoToComponent], exports: [DxoToComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoDataGridToolbar extends NestedOption {\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get fileSelectionItems() {\r\n return this._getOption('fileSelectionItems');\r\n }\r\n set fileSelectionItems(value) {\r\n this._setOption('fileSelectionItems', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get multiline() {\r\n return this._getOption('multiline');\r\n }\r\n set multiline(value) {\r\n this._setOption('multiline', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoDataGridToolbar.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoDataGridToolbar_BaseFactory; return function DxoDataGridToolbar_Factory(t) { return (ɵDxoDataGridToolbar_BaseFactory || (ɵDxoDataGridToolbar_BaseFactory = i0.ɵɵgetInheritedFactory(DxoDataGridToolbar)))(t || DxoDataGridToolbar); }; }();\r\n/** @nocollapse */ DxoDataGridToolbar.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDataGridToolbar, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDataGridToolbar_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoDataGridToolbar, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoToolbarComponent extends DxoDataGridToolbar {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'toolbar';\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n get fileSelectionItemsChildren() {\r\n return this._getOption('fileSelectionItems');\r\n }\r\n set fileSelectionItemsChildren(value) {\r\n this.setChildren('fileSelectionItems', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoToolbarComponent.ɵfac = function DxoToolbarComponent_Factory(t) { return new (t || DxoToolbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoToolbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoToolbarComponent, selectors: [[\"dxo-toolbar\"]], contentQueries: function DxoToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiFileSelectionItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileSelectionItemsChildren = _t);\r\n } }, inputs: { disabled: \"disabled\", items: \"items\", visible: \"visible\", fileSelectionItems: \"fileSelectionItems\", container: \"container\", multiline: \"multiline\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoToolbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToolbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-toolbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'disabled',\r\n 'items',\r\n 'visible',\r\n 'fileSelectionItems',\r\n 'container',\r\n 'multiline'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { itemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiItemComponent)]\r\n }], fileSelectionItemsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiFileSelectionItemComponent)]\r\n }] }); })();\r\nclass DxoToolbarModule {\r\n}\r\n/** @nocollapse */ DxoToolbarModule.ɵfac = function DxoToolbarModule_Factory(t) { return new (t || DxoToolbarModule)(); };\r\n/** @nocollapse */ DxoToolbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoToolbarModule });\r\n/** @nocollapse */ DxoToolbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToolbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoToolbarComponent\r\n ],\r\n exports: [\r\n DxoToolbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoToolbarModule, { declarations: [DxoToolbarComponent], exports: [DxoToolbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoToolboxComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get groups() {\r\n return this._getOption('groups');\r\n }\r\n set groups(value) {\r\n this._setOption('groups', value);\r\n }\r\n get shapeIconsPerRow() {\r\n return this._getOption('shapeIconsPerRow');\r\n }\r\n set shapeIconsPerRow(value) {\r\n this._setOption('shapeIconsPerRow', value);\r\n }\r\n get showSearch() {\r\n return this._getOption('showSearch');\r\n }\r\n set showSearch(value) {\r\n this._setOption('showSearch', value);\r\n }\r\n get visibility() {\r\n return this._getOption('visibility');\r\n }\r\n set visibility(value) {\r\n this._setOption('visibility', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'toolbox';\r\n }\r\n get groupsChildren() {\r\n return this._getOption('groups');\r\n }\r\n set groupsChildren(value) {\r\n this.setChildren('groups', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoToolboxComponent.ɵfac = function DxoToolboxComponent_Factory(t) { return new (t || DxoToolboxComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoToolboxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoToolboxComponent, selectors: [[\"dxo-toolbox\"]], contentQueries: function DxoToolboxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiGroupComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groupsChildren = _t);\r\n } }, inputs: { groups: \"groups\", shapeIconsPerRow: \"shapeIconsPerRow\", showSearch: \"showSearch\", visibility: \"visibility\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoToolboxComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToolboxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-toolbox',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { groups: [{\r\n type: Input\r\n }], shapeIconsPerRow: [{\r\n type: Input\r\n }], showSearch: [{\r\n type: Input\r\n }], visibility: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], groupsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiGroupComponent)]\r\n }] }); })();\r\nclass DxoToolboxModule {\r\n}\r\n/** @nocollapse */ DxoToolboxModule.ɵfac = function DxoToolboxModule_Factory(t) { return new (t || DxoToolboxModule)(); };\r\n/** @nocollapse */ DxoToolboxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoToolboxModule });\r\n/** @nocollapse */ DxoToolboxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoToolboxModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoToolboxComponent\r\n ],\r\n exports: [\r\n DxoToolboxComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoToolboxModule, { declarations: [DxoToolboxComponent], exports: [DxoToolboxComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoTooltipComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get arrowLength() {\r\n return this._getOption('arrowLength');\r\n }\r\n set arrowLength(value) {\r\n this._setOption('arrowLength', value);\r\n }\r\n get border() {\r\n return this._getOption('border');\r\n }\r\n set border(value) {\r\n this._setOption('border', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n get cornerRadius() {\r\n return this._getOption('cornerRadius');\r\n }\r\n set cornerRadius(value) {\r\n this._setOption('cornerRadius', value);\r\n }\r\n get customizeTooltip() {\r\n return this._getOption('customizeTooltip');\r\n }\r\n set customizeTooltip(value) {\r\n this._setOption('customizeTooltip', value);\r\n }\r\n get enabled() {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value) {\r\n this._setOption('enabled', value);\r\n }\r\n get font() {\r\n return this._getOption('font');\r\n }\r\n set font(value) {\r\n this._setOption('font', value);\r\n }\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n get interactive() {\r\n return this._getOption('interactive');\r\n }\r\n set interactive(value) {\r\n this._setOption('interactive', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get paddingLeftRight() {\r\n return this._getOption('paddingLeftRight');\r\n }\r\n set paddingLeftRight(value) {\r\n this._setOption('paddingLeftRight', value);\r\n }\r\n get paddingTopBottom() {\r\n return this._getOption('paddingTopBottom');\r\n }\r\n set paddingTopBottom(value) {\r\n this._setOption('paddingTopBottom', value);\r\n }\r\n get shadow() {\r\n return this._getOption('shadow');\r\n }\r\n set shadow(value) {\r\n this._setOption('shadow', value);\r\n }\r\n get zIndex() {\r\n return this._getOption('zIndex');\r\n }\r\n set zIndex(value) {\r\n this._setOption('zIndex', value);\r\n }\r\n get argumentFormat() {\r\n return this._getOption('argumentFormat');\r\n }\r\n set argumentFormat(value) {\r\n this._setOption('argumentFormat', value);\r\n }\r\n get location() {\r\n return this._getOption('location');\r\n }\r\n set location(value) {\r\n this._setOption('location', value);\r\n }\r\n get shared() {\r\n return this._getOption('shared');\r\n }\r\n set shared(value) {\r\n this._setOption('shared', value);\r\n }\r\n get isShown() {\r\n return this._getOption('isShown');\r\n }\r\n set isShown(value) {\r\n this._setOption('isShown', value);\r\n }\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get showMode() {\r\n return this._getOption('showMode');\r\n }\r\n set showMode(value) {\r\n this._setOption('showMode', value);\r\n }\r\n get customizeLinkTooltip() {\r\n return this._getOption('customizeLinkTooltip');\r\n }\r\n set customizeLinkTooltip(value) {\r\n this._setOption('customizeLinkTooltip', value);\r\n }\r\n get customizeNodeTooltip() {\r\n return this._getOption('customizeNodeTooltip');\r\n }\r\n set customizeNodeTooltip(value) {\r\n this._setOption('customizeNodeTooltip', value);\r\n }\r\n get linkTooltipTemplate() {\r\n return this._getOption('linkTooltipTemplate');\r\n }\r\n set linkTooltipTemplate(value) {\r\n this._setOption('linkTooltipTemplate', value);\r\n }\r\n get nodeTooltipTemplate() {\r\n return this._getOption('nodeTooltipTemplate');\r\n }\r\n set nodeTooltipTemplate(value) {\r\n this._setOption('nodeTooltipTemplate', value);\r\n }\r\n get _optionPath() {\r\n return 'tooltip';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoTooltipComponent.ɵfac = function DxoTooltipComponent_Factory(t) { return new (t || DxoTooltipComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoTooltipComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoTooltipComponent, selectors: [[\"dxo-tooltip\"]], inputs: { arrowLength: \"arrowLength\", border: \"border\", color: \"color\", container: \"container\", contentTemplate: \"contentTemplate\", cornerRadius: \"cornerRadius\", customizeTooltip: \"customizeTooltip\", enabled: \"enabled\", font: \"font\", format: \"format\", interactive: \"interactive\", opacity: \"opacity\", paddingLeftRight: \"paddingLeftRight\", paddingTopBottom: \"paddingTopBottom\", shadow: \"shadow\", zIndex: \"zIndex\", argumentFormat: \"argumentFormat\", location: \"location\", shared: \"shared\", isShown: \"isShown\", text: \"text\", position: \"position\", showMode: \"showMode\", customizeLinkTooltip: \"customizeLinkTooltip\", customizeNodeTooltip: \"customizeNodeTooltip\", linkTooltipTemplate: \"linkTooltipTemplate\", nodeTooltipTemplate: \"nodeTooltipTemplate\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoTooltipComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTooltipComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-tooltip',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { arrowLength: [{\r\n type: Input\r\n }], border: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], cornerRadius: [{\r\n type: Input\r\n }], customizeTooltip: [{\r\n type: Input\r\n }], enabled: [{\r\n type: Input\r\n }], font: [{\r\n type: Input\r\n }], format: [{\r\n type: Input\r\n }], interactive: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], paddingLeftRight: [{\r\n type: Input\r\n }], paddingTopBottom: [{\r\n type: Input\r\n }], shadow: [{\r\n type: Input\r\n }], zIndex: [{\r\n type: Input\r\n }], argumentFormat: [{\r\n type: Input\r\n }], location: [{\r\n type: Input\r\n }], shared: [{\r\n type: Input\r\n }], isShown: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], showMode: [{\r\n type: Input\r\n }], customizeLinkTooltip: [{\r\n type: Input\r\n }], customizeNodeTooltip: [{\r\n type: Input\r\n }], linkTooltipTemplate: [{\r\n type: Input\r\n }], nodeTooltipTemplate: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoTooltipModule {\r\n}\r\n/** @nocollapse */ DxoTooltipModule.ɵfac = function DxoTooltipModule_Factory(t) { return new (t || DxoTooltipModule)(); };\r\n/** @nocollapse */ DxoTooltipModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoTooltipModule });\r\n/** @nocollapse */ DxoTooltipModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoTooltipModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoTooltipComponent\r\n ],\r\n exports: [\r\n DxoTooltipComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoTooltipModule, { declarations: [DxoTooltipComponent], exports: [DxoTooltipComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoUploadComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get chunkSize() {\r\n return this._getOption('chunkSize');\r\n }\r\n set chunkSize(value) {\r\n this._setOption('chunkSize', value);\r\n }\r\n get maxFileSize() {\r\n return this._getOption('maxFileSize');\r\n }\r\n set maxFileSize(value) {\r\n this._setOption('maxFileSize', value);\r\n }\r\n get _optionPath() {\r\n return 'upload';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoUploadComponent.ɵfac = function DxoUploadComponent_Factory(t) { return new (t || DxoUploadComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoUploadComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoUploadComponent, selectors: [[\"dxo-upload\"]], inputs: { chunkSize: \"chunkSize\", maxFileSize: \"maxFileSize\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoUploadComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoUploadComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-upload',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { chunkSize: [{\r\n type: Input\r\n }], maxFileSize: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoUploadModule {\r\n}\r\n/** @nocollapse */ DxoUploadModule.ɵfac = function DxoUploadModule_Factory(t) { return new (t || DxoUploadModule)(); };\r\n/** @nocollapse */ DxoUploadModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoUploadModule });\r\n/** @nocollapse */ DxoUploadModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoUploadModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoUploadComponent\r\n ],\r\n exports: [\r\n DxoUploadComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoUploadModule, { declarations: [DxoUploadComponent], exports: [DxoUploadComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoUrlComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get rangeMaxPoint() {\r\n return this._getOption('rangeMaxPoint');\r\n }\r\n set rangeMaxPoint(value) {\r\n this._setOption('rangeMaxPoint', value);\r\n }\r\n get rangeMinPoint() {\r\n return this._getOption('rangeMinPoint');\r\n }\r\n set rangeMinPoint(value) {\r\n this._setOption('rangeMinPoint', value);\r\n }\r\n get _optionPath() {\r\n return 'url';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoUrlComponent.ɵfac = function DxoUrlComponent_Factory(t) { return new (t || DxoUrlComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoUrlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoUrlComponent, selectors: [[\"dxo-url\"]], inputs: { rangeMaxPoint: \"rangeMaxPoint\", rangeMinPoint: \"rangeMinPoint\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoUrlComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoUrlComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-url',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { rangeMaxPoint: [{\r\n type: Input\r\n }], rangeMinPoint: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoUrlModule {\r\n}\r\n/** @nocollapse */ DxoUrlModule.ɵfac = function DxoUrlModule_Factory(t) { return new (t || DxoUrlModule)(); };\r\n/** @nocollapse */ DxoUrlModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoUrlModule });\r\n/** @nocollapse */ DxoUrlModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoUrlModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoUrlComponent\r\n ],\r\n exports: [\r\n DxoUrlComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoUrlModule, { declarations: [DxoUrlComponent], exports: [DxoUrlComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoValidationComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get autoUpdateParentTasks() {\r\n return this._getOption('autoUpdateParentTasks');\r\n }\r\n set autoUpdateParentTasks(value) {\r\n this._setOption('autoUpdateParentTasks', value);\r\n }\r\n get enablePredecessorGap() {\r\n return this._getOption('enablePredecessorGap');\r\n }\r\n set enablePredecessorGap(value) {\r\n this._setOption('enablePredecessorGap', value);\r\n }\r\n get validateDependencies() {\r\n return this._getOption('validateDependencies');\r\n }\r\n set validateDependencies(value) {\r\n this._setOption('validateDependencies', value);\r\n }\r\n get _optionPath() {\r\n return 'validation';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoValidationComponent.ɵfac = function DxoValidationComponent_Factory(t) { return new (t || DxoValidationComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoValidationComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoValidationComponent, selectors: [[\"dxo-validation\"]], inputs: { autoUpdateParentTasks: \"autoUpdateParentTasks\", enablePredecessorGap: \"enablePredecessorGap\", validateDependencies: \"validateDependencies\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoValidationComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValidationComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-validation',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { autoUpdateParentTasks: [{\r\n type: Input\r\n }], enablePredecessorGap: [{\r\n type: Input\r\n }], validateDependencies: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoValidationModule {\r\n}\r\n/** @nocollapse */ DxoValidationModule.ɵfac = function DxoValidationModule_Factory(t) { return new (t || DxoValidationModule)(); };\r\n/** @nocollapse */ DxoValidationModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoValidationModule });\r\n/** @nocollapse */ DxoValidationModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValidationModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoValidationComponent\r\n ],\r\n exports: [\r\n DxoValidationComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoValidationModule, { declarations: [DxoValidationComponent], exports: [DxoValidationComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiValueAxisComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'categoriesChange' },\r\n { emit: 'visualRangeChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get aggregatedPointsPosition() {\r\n return this._getOption('aggregatedPointsPosition');\r\n }\r\n set aggregatedPointsPosition(value) {\r\n this._setOption('aggregatedPointsPosition', value);\r\n }\r\n get allowDecimals() {\r\n return this._getOption('allowDecimals');\r\n }\r\n set allowDecimals(value) {\r\n this._setOption('allowDecimals', value);\r\n }\r\n get autoBreaksEnabled() {\r\n return this._getOption('autoBreaksEnabled');\r\n }\r\n set autoBreaksEnabled(value) {\r\n this._setOption('autoBreaksEnabled', value);\r\n }\r\n get axisDivisionFactor() {\r\n return this._getOption('axisDivisionFactor');\r\n }\r\n set axisDivisionFactor(value) {\r\n this._setOption('axisDivisionFactor', value);\r\n }\r\n get breaks() {\r\n return this._getOption('breaks');\r\n }\r\n set breaks(value) {\r\n this._setOption('breaks', value);\r\n }\r\n get breakStyle() {\r\n return this._getOption('breakStyle');\r\n }\r\n set breakStyle(value) {\r\n this._setOption('breakStyle', value);\r\n }\r\n get categories() {\r\n return this._getOption('categories');\r\n }\r\n set categories(value) {\r\n this._setOption('categories', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get constantLines() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLines(value) {\r\n this._setOption('constantLines', value);\r\n }\r\n get constantLineStyle() {\r\n return this._getOption('constantLineStyle');\r\n }\r\n set constantLineStyle(value) {\r\n this._setOption('constantLineStyle', value);\r\n }\r\n get customPosition() {\r\n return this._getOption('customPosition');\r\n }\r\n set customPosition(value) {\r\n this._setOption('customPosition', value);\r\n }\r\n get discreteAxisDivisionMode() {\r\n return this._getOption('discreteAxisDivisionMode');\r\n }\r\n set discreteAxisDivisionMode(value) {\r\n this._setOption('discreteAxisDivisionMode', value);\r\n }\r\n get endOnTick() {\r\n return this._getOption('endOnTick');\r\n }\r\n set endOnTick(value) {\r\n this._setOption('endOnTick', value);\r\n }\r\n get grid() {\r\n return this._getOption('grid');\r\n }\r\n set grid(value) {\r\n this._setOption('grid', value);\r\n }\r\n get inverted() {\r\n return this._getOption('inverted');\r\n }\r\n set inverted(value) {\r\n this._setOption('inverted', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get linearThreshold() {\r\n return this._getOption('linearThreshold');\r\n }\r\n set linearThreshold(value) {\r\n this._setOption('linearThreshold', value);\r\n }\r\n get logarithmBase() {\r\n return this._getOption('logarithmBase');\r\n }\r\n set logarithmBase(value) {\r\n this._setOption('logarithmBase', value);\r\n }\r\n get maxAutoBreakCount() {\r\n return this._getOption('maxAutoBreakCount');\r\n }\r\n set maxAutoBreakCount(value) {\r\n this._setOption('maxAutoBreakCount', value);\r\n }\r\n get maxValueMargin() {\r\n return this._getOption('maxValueMargin');\r\n }\r\n set maxValueMargin(value) {\r\n this._setOption('maxValueMargin', value);\r\n }\r\n get minorGrid() {\r\n return this._getOption('minorGrid');\r\n }\r\n set minorGrid(value) {\r\n this._setOption('minorGrid', value);\r\n }\r\n get minorTick() {\r\n return this._getOption('minorTick');\r\n }\r\n set minorTick(value) {\r\n this._setOption('minorTick', value);\r\n }\r\n get minorTickCount() {\r\n return this._getOption('minorTickCount');\r\n }\r\n set minorTickCount(value) {\r\n this._setOption('minorTickCount', value);\r\n }\r\n get minorTickInterval() {\r\n return this._getOption('minorTickInterval');\r\n }\r\n set minorTickInterval(value) {\r\n this._setOption('minorTickInterval', value);\r\n }\r\n get minValueMargin() {\r\n return this._getOption('minValueMargin');\r\n }\r\n set minValueMargin(value) {\r\n this._setOption('minValueMargin', value);\r\n }\r\n get minVisualRangeLength() {\r\n return this._getOption('minVisualRangeLength');\r\n }\r\n set minVisualRangeLength(value) {\r\n this._setOption('minVisualRangeLength', value);\r\n }\r\n get multipleAxesSpacing() {\r\n return this._getOption('multipleAxesSpacing');\r\n }\r\n set multipleAxesSpacing(value) {\r\n this._setOption('multipleAxesSpacing', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get pane() {\r\n return this._getOption('pane');\r\n }\r\n set pane(value) {\r\n this._setOption('pane', value);\r\n }\r\n get placeholderSize() {\r\n return this._getOption('placeholderSize');\r\n }\r\n set placeholderSize(value) {\r\n this._setOption('placeholderSize', value);\r\n }\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n get showZero() {\r\n return this._getOption('showZero');\r\n }\r\n set showZero(value) {\r\n this._setOption('showZero', value);\r\n }\r\n get strips() {\r\n return this._getOption('strips');\r\n }\r\n set strips(value) {\r\n this._setOption('strips', value);\r\n }\r\n get stripStyle() {\r\n return this._getOption('stripStyle');\r\n }\r\n set stripStyle(value) {\r\n this._setOption('stripStyle', value);\r\n }\r\n get synchronizedValue() {\r\n return this._getOption('synchronizedValue');\r\n }\r\n set synchronizedValue(value) {\r\n this._setOption('synchronizedValue', value);\r\n }\r\n get tick() {\r\n return this._getOption('tick');\r\n }\r\n set tick(value) {\r\n this._setOption('tick', value);\r\n }\r\n get tickInterval() {\r\n return this._getOption('tickInterval');\r\n }\r\n set tickInterval(value) {\r\n this._setOption('tickInterval', value);\r\n }\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueMarginsEnabled() {\r\n return this._getOption('valueMarginsEnabled');\r\n }\r\n set valueMarginsEnabled(value) {\r\n this._setOption('valueMarginsEnabled', value);\r\n }\r\n get valueType() {\r\n return this._getOption('valueType');\r\n }\r\n set valueType(value) {\r\n this._setOption('valueType', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get visualRange() {\r\n return this._getOption('visualRange');\r\n }\r\n set visualRange(value) {\r\n this._setOption('visualRange', value);\r\n }\r\n get visualRangeUpdateMode() {\r\n return this._getOption('visualRangeUpdateMode');\r\n }\r\n set visualRangeUpdateMode(value) {\r\n this._setOption('visualRangeUpdateMode', value);\r\n }\r\n get wholeRange() {\r\n return this._getOption('wholeRange');\r\n }\r\n set wholeRange(value) {\r\n this._setOption('wholeRange', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'valueAxis';\r\n }\r\n get breaksChildren() {\r\n return this._getOption('breaks');\r\n }\r\n set breaksChildren(value) {\r\n this.setChildren('breaks', value);\r\n }\r\n get constantLinesChildren() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLinesChildren(value) {\r\n this.setChildren('constantLines', value);\r\n }\r\n get stripsChildren() {\r\n return this._getOption('strips');\r\n }\r\n set stripsChildren(value) {\r\n this.setChildren('strips', value);\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiValueAxisComponent.ɵfac = function DxiValueAxisComponent_Factory(t) { return new (t || DxiValueAxisComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiValueAxisComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiValueAxisComponent, selectors: [[\"dxi-value-axis\"]], contentQueries: function DxiValueAxisComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiBreakComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiConstantLineComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiStripComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.breaksChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.constantLinesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stripsChildren = _t);\r\n } }, inputs: { aggregatedPointsPosition: \"aggregatedPointsPosition\", allowDecimals: \"allowDecimals\", autoBreaksEnabled: \"autoBreaksEnabled\", axisDivisionFactor: \"axisDivisionFactor\", breaks: \"breaks\", breakStyle: \"breakStyle\", categories: \"categories\", color: \"color\", constantLines: \"constantLines\", constantLineStyle: \"constantLineStyle\", customPosition: \"customPosition\", discreteAxisDivisionMode: \"discreteAxisDivisionMode\", endOnTick: \"endOnTick\", grid: \"grid\", inverted: \"inverted\", label: \"label\", linearThreshold: \"linearThreshold\", logarithmBase: \"logarithmBase\", maxAutoBreakCount: \"maxAutoBreakCount\", maxValueMargin: \"maxValueMargin\", minorGrid: \"minorGrid\", minorTick: \"minorTick\", minorTickCount: \"minorTickCount\", minorTickInterval: \"minorTickInterval\", minValueMargin: \"minValueMargin\", minVisualRangeLength: \"minVisualRangeLength\", multipleAxesSpacing: \"multipleAxesSpacing\", name: \"name\", offset: \"offset\", opacity: \"opacity\", pane: \"pane\", placeholderSize: \"placeholderSize\", position: \"position\", showZero: \"showZero\", strips: \"strips\", stripStyle: \"stripStyle\", synchronizedValue: \"synchronizedValue\", tick: \"tick\", tickInterval: \"tickInterval\", title: \"title\", type: \"type\", valueMarginsEnabled: \"valueMarginsEnabled\", valueType: \"valueType\", visible: \"visible\", visualRange: \"visualRange\", visualRangeUpdateMode: \"visualRangeUpdateMode\", wholeRange: \"wholeRange\", width: \"width\" }, outputs: { categoriesChange: \"categoriesChange\", visualRangeChange: \"visualRangeChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiValueAxisComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiValueAxisComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-value-axis',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { aggregatedPointsPosition: [{\r\n type: Input\r\n }], allowDecimals: [{\r\n type: Input\r\n }], autoBreaksEnabled: [{\r\n type: Input\r\n }], axisDivisionFactor: [{\r\n type: Input\r\n }], breaks: [{\r\n type: Input\r\n }], breakStyle: [{\r\n type: Input\r\n }], categories: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], constantLines: [{\r\n type: Input\r\n }], constantLineStyle: [{\r\n type: Input\r\n }], customPosition: [{\r\n type: Input\r\n }], discreteAxisDivisionMode: [{\r\n type: Input\r\n }], endOnTick: [{\r\n type: Input\r\n }], grid: [{\r\n type: Input\r\n }], inverted: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], linearThreshold: [{\r\n type: Input\r\n }], logarithmBase: [{\r\n type: Input\r\n }], maxAutoBreakCount: [{\r\n type: Input\r\n }], maxValueMargin: [{\r\n type: Input\r\n }], minorGrid: [{\r\n type: Input\r\n }], minorTick: [{\r\n type: Input\r\n }], minorTickCount: [{\r\n type: Input\r\n }], minorTickInterval: [{\r\n type: Input\r\n }], minValueMargin: [{\r\n type: Input\r\n }], minVisualRangeLength: [{\r\n type: Input\r\n }], multipleAxesSpacing: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], pane: [{\r\n type: Input\r\n }], placeholderSize: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], showZero: [{\r\n type: Input\r\n }], strips: [{\r\n type: Input\r\n }], stripStyle: [{\r\n type: Input\r\n }], synchronizedValue: [{\r\n type: Input\r\n }], tick: [{\r\n type: Input\r\n }], tickInterval: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], valueMarginsEnabled: [{\r\n type: Input\r\n }], valueType: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], visualRange: [{\r\n type: Input\r\n }], visualRangeUpdateMode: [{\r\n type: Input\r\n }], wholeRange: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], categoriesChange: [{\r\n type: Output\r\n }], visualRangeChange: [{\r\n type: Output\r\n }], breaksChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiBreakComponent)]\r\n }], constantLinesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiConstantLineComponent)]\r\n }], stripsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiStripComponent)]\r\n }] }); })();\r\nclass DxiValueAxisModule {\r\n}\r\n/** @nocollapse */ DxiValueAxisModule.ɵfac = function DxiValueAxisModule_Factory(t) { return new (t || DxiValueAxisModule)(); };\r\n/** @nocollapse */ DxiValueAxisModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiValueAxisModule });\r\n/** @nocollapse */ DxiValueAxisModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiValueAxisModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiValueAxisComponent\r\n ],\r\n exports: [\r\n DxiValueAxisComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiValueAxisModule, { declarations: [DxiValueAxisComponent], exports: [DxiValueAxisComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoValueAxisComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'visualRangeChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowDecimals() {\r\n return this._getOption('allowDecimals');\r\n }\r\n set allowDecimals(value) {\r\n this._setOption('allowDecimals', value);\r\n }\r\n get axisDivisionFactor() {\r\n return this._getOption('axisDivisionFactor');\r\n }\r\n set axisDivisionFactor(value) {\r\n this._setOption('axisDivisionFactor', value);\r\n }\r\n get categories() {\r\n return this._getOption('categories');\r\n }\r\n set categories(value) {\r\n this._setOption('categories', value);\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get constantLines() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLines(value) {\r\n this._setOption('constantLines', value);\r\n }\r\n get constantLineStyle() {\r\n return this._getOption('constantLineStyle');\r\n }\r\n set constantLineStyle(value) {\r\n this._setOption('constantLineStyle', value);\r\n }\r\n get discreteAxisDivisionMode() {\r\n return this._getOption('discreteAxisDivisionMode');\r\n }\r\n set discreteAxisDivisionMode(value) {\r\n this._setOption('discreteAxisDivisionMode', value);\r\n }\r\n get endOnTick() {\r\n return this._getOption('endOnTick');\r\n }\r\n set endOnTick(value) {\r\n this._setOption('endOnTick', value);\r\n }\r\n get grid() {\r\n return this._getOption('grid');\r\n }\r\n set grid(value) {\r\n this._setOption('grid', value);\r\n }\r\n get inverted() {\r\n return this._getOption('inverted');\r\n }\r\n set inverted(value) {\r\n this._setOption('inverted', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get linearThreshold() {\r\n return this._getOption('linearThreshold');\r\n }\r\n set linearThreshold(value) {\r\n this._setOption('linearThreshold', value);\r\n }\r\n get logarithmBase() {\r\n return this._getOption('logarithmBase');\r\n }\r\n set logarithmBase(value) {\r\n this._setOption('logarithmBase', value);\r\n }\r\n get maxValueMargin() {\r\n return this._getOption('maxValueMargin');\r\n }\r\n set maxValueMargin(value) {\r\n this._setOption('maxValueMargin', value);\r\n }\r\n get minorGrid() {\r\n return this._getOption('minorGrid');\r\n }\r\n set minorGrid(value) {\r\n this._setOption('minorGrid', value);\r\n }\r\n get minorTick() {\r\n return this._getOption('minorTick');\r\n }\r\n set minorTick(value) {\r\n this._setOption('minorTick', value);\r\n }\r\n get minorTickCount() {\r\n return this._getOption('minorTickCount');\r\n }\r\n set minorTickCount(value) {\r\n this._setOption('minorTickCount', value);\r\n }\r\n get minorTickInterval() {\r\n return this._getOption('minorTickInterval');\r\n }\r\n set minorTickInterval(value) {\r\n this._setOption('minorTickInterval', value);\r\n }\r\n get minValueMargin() {\r\n return this._getOption('minValueMargin');\r\n }\r\n set minValueMargin(value) {\r\n this._setOption('minValueMargin', value);\r\n }\r\n get minVisualRangeLength() {\r\n return this._getOption('minVisualRangeLength');\r\n }\r\n set minVisualRangeLength(value) {\r\n this._setOption('minVisualRangeLength', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get showZero() {\r\n return this._getOption('showZero');\r\n }\r\n set showZero(value) {\r\n this._setOption('showZero', value);\r\n }\r\n get strips() {\r\n return this._getOption('strips');\r\n }\r\n set strips(value) {\r\n this._setOption('strips', value);\r\n }\r\n get stripStyle() {\r\n return this._getOption('stripStyle');\r\n }\r\n set stripStyle(value) {\r\n this._setOption('stripStyle', value);\r\n }\r\n get tick() {\r\n return this._getOption('tick');\r\n }\r\n set tick(value) {\r\n this._setOption('tick', value);\r\n }\r\n get tickInterval() {\r\n return this._getOption('tickInterval');\r\n }\r\n set tickInterval(value) {\r\n this._setOption('tickInterval', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get valueMarginsEnabled() {\r\n return this._getOption('valueMarginsEnabled');\r\n }\r\n set valueMarginsEnabled(value) {\r\n this._setOption('valueMarginsEnabled', value);\r\n }\r\n get valueType() {\r\n return this._getOption('valueType');\r\n }\r\n set valueType(value) {\r\n this._setOption('valueType', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get visualRange() {\r\n return this._getOption('visualRange');\r\n }\r\n set visualRange(value) {\r\n this._setOption('visualRange', value);\r\n }\r\n get visualRangeUpdateMode() {\r\n return this._getOption('visualRangeUpdateMode');\r\n }\r\n set visualRangeUpdateMode(value) {\r\n this._setOption('visualRangeUpdateMode', value);\r\n }\r\n get wholeRange() {\r\n return this._getOption('wholeRange');\r\n }\r\n set wholeRange(value) {\r\n this._setOption('wholeRange', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n get _optionPath() {\r\n return 'valueAxis';\r\n }\r\n get constantLinesChildren() {\r\n return this._getOption('constantLines');\r\n }\r\n set constantLinesChildren(value) {\r\n this.setChildren('constantLines', value);\r\n }\r\n get stripsChildren() {\r\n return this._getOption('strips');\r\n }\r\n set stripsChildren(value) {\r\n this.setChildren('strips', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoValueAxisComponent.ɵfac = function DxoValueAxisComponent_Factory(t) { return new (t || DxoValueAxisComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoValueAxisComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoValueAxisComponent, selectors: [[\"dxo-value-axis\"]], contentQueries: function DxoValueAxisComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiConstantLineComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiStripComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.constantLinesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stripsChildren = _t);\r\n } }, inputs: { allowDecimals: \"allowDecimals\", axisDivisionFactor: \"axisDivisionFactor\", categories: \"categories\", color: \"color\", constantLines: \"constantLines\", constantLineStyle: \"constantLineStyle\", discreteAxisDivisionMode: \"discreteAxisDivisionMode\", endOnTick: \"endOnTick\", grid: \"grid\", inverted: \"inverted\", label: \"label\", linearThreshold: \"linearThreshold\", logarithmBase: \"logarithmBase\", maxValueMargin: \"maxValueMargin\", minorGrid: \"minorGrid\", minorTick: \"minorTick\", minorTickCount: \"minorTickCount\", minorTickInterval: \"minorTickInterval\", minValueMargin: \"minValueMargin\", minVisualRangeLength: \"minVisualRangeLength\", opacity: \"opacity\", showZero: \"showZero\", strips: \"strips\", stripStyle: \"stripStyle\", tick: \"tick\", tickInterval: \"tickInterval\", type: \"type\", valueMarginsEnabled: \"valueMarginsEnabled\", valueType: \"valueType\", visible: \"visible\", visualRange: \"visualRange\", visualRangeUpdateMode: \"visualRangeUpdateMode\", wholeRange: \"wholeRange\", width: \"width\", max: \"max\", min: \"min\" }, outputs: { visualRangeChange: \"visualRangeChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoValueAxisComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueAxisComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-value-axis',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowDecimals: [{\r\n type: Input\r\n }], axisDivisionFactor: [{\r\n type: Input\r\n }], categories: [{\r\n type: Input\r\n }], color: [{\r\n type: Input\r\n }], constantLines: [{\r\n type: Input\r\n }], constantLineStyle: [{\r\n type: Input\r\n }], discreteAxisDivisionMode: [{\r\n type: Input\r\n }], endOnTick: [{\r\n type: Input\r\n }], grid: [{\r\n type: Input\r\n }], inverted: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], linearThreshold: [{\r\n type: Input\r\n }], logarithmBase: [{\r\n type: Input\r\n }], maxValueMargin: [{\r\n type: Input\r\n }], minorGrid: [{\r\n type: Input\r\n }], minorTick: [{\r\n type: Input\r\n }], minorTickCount: [{\r\n type: Input\r\n }], minorTickInterval: [{\r\n type: Input\r\n }], minValueMargin: [{\r\n type: Input\r\n }], minVisualRangeLength: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], showZero: [{\r\n type: Input\r\n }], strips: [{\r\n type: Input\r\n }], stripStyle: [{\r\n type: Input\r\n }], tick: [{\r\n type: Input\r\n }], tickInterval: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], valueMarginsEnabled: [{\r\n type: Input\r\n }], valueType: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], visualRange: [{\r\n type: Input\r\n }], visualRangeUpdateMode: [{\r\n type: Input\r\n }], wholeRange: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], visualRangeChange: [{\r\n type: Output\r\n }], constantLinesChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiConstantLineComponent)]\r\n }], stripsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiStripComponent)]\r\n }] }); })();\r\nclass DxoValueAxisModule {\r\n}\r\n/** @nocollapse */ DxoValueAxisModule.ɵfac = function DxoValueAxisModule_Factory(t) { return new (t || DxoValueAxisModule)(); };\r\n/** @nocollapse */ DxoValueAxisModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoValueAxisModule });\r\n/** @nocollapse */ DxoValueAxisModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueAxisModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoValueAxisComponent\r\n ],\r\n exports: [\r\n DxoValueAxisComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoValueAxisModule, { declarations: [DxoValueAxisComponent], exports: [DxoValueAxisComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoValueErrorBarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get displayMode() {\r\n return this._getOption('displayMode');\r\n }\r\n set displayMode(value) {\r\n this._setOption('displayMode', value);\r\n }\r\n get edgeLength() {\r\n return this._getOption('edgeLength');\r\n }\r\n set edgeLength(value) {\r\n this._setOption('edgeLength', value);\r\n }\r\n get highValueField() {\r\n return this._getOption('highValueField');\r\n }\r\n set highValueField(value) {\r\n this._setOption('highValueField', value);\r\n }\r\n get lineWidth() {\r\n return this._getOption('lineWidth');\r\n }\r\n set lineWidth(value) {\r\n this._setOption('lineWidth', value);\r\n }\r\n get lowValueField() {\r\n return this._getOption('lowValueField');\r\n }\r\n set lowValueField(value) {\r\n this._setOption('lowValueField', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get _optionPath() {\r\n return 'valueErrorBar';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoValueErrorBarComponent.ɵfac = function DxoValueErrorBarComponent_Factory(t) { return new (t || DxoValueErrorBarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoValueErrorBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoValueErrorBarComponent, selectors: [[\"dxo-value-error-bar\"]], inputs: { color: \"color\", displayMode: \"displayMode\", edgeLength: \"edgeLength\", highValueField: \"highValueField\", lineWidth: \"lineWidth\", lowValueField: \"lowValueField\", opacity: \"opacity\", type: \"type\", value: \"value\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoValueErrorBarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueErrorBarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-value-error-bar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], displayMode: [{\r\n type: Input\r\n }], edgeLength: [{\r\n type: Input\r\n }], highValueField: [{\r\n type: Input\r\n }], lineWidth: [{\r\n type: Input\r\n }], lowValueField: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoValueErrorBarModule {\r\n}\r\n/** @nocollapse */ DxoValueErrorBarModule.ɵfac = function DxoValueErrorBarModule_Factory(t) { return new (t || DxoValueErrorBarModule)(); };\r\n/** @nocollapse */ DxoValueErrorBarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoValueErrorBarModule });\r\n/** @nocollapse */ DxoValueErrorBarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueErrorBarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoValueErrorBarComponent\r\n ],\r\n exports: [\r\n DxoValueErrorBarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoValueErrorBarModule, { declarations: [DxoValueErrorBarComponent], exports: [DxoValueErrorBarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoValueFormatComponent extends DxoFormat {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'valueFormat';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoValueFormatComponent.ɵfac = function DxoValueFormatComponent_Factory(t) { return new (t || DxoValueFormatComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoValueFormatComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoValueFormatComponent, selectors: [[\"dxo-value-format\"]], inputs: { currency: \"currency\", formatter: \"formatter\", parser: \"parser\", precision: \"precision\", type: \"type\", useCurrencyAccountingStyle: \"useCurrencyAccountingStyle\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoValueFormatComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueFormatComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-value-format',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'currency',\r\n 'formatter',\r\n 'parser',\r\n 'precision',\r\n 'type',\r\n 'useCurrencyAccountingStyle'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoValueFormatModule {\r\n}\r\n/** @nocollapse */ DxoValueFormatModule.ɵfac = function DxoValueFormatModule_Factory(t) { return new (t || DxoValueFormatModule)(); };\r\n/** @nocollapse */ DxoValueFormatModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoValueFormatModule });\r\n/** @nocollapse */ DxoValueFormatModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueFormatModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoValueFormatComponent\r\n ],\r\n exports: [\r\n DxoValueFormatComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoValueFormatModule, { declarations: [DxoValueFormatComponent], exports: [DxoValueFormatComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoValueIndicatorComponent extends DxoGaugeIndicator {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'valueIndicator';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoValueIndicatorComponent.ɵfac = function DxoValueIndicatorComponent_Factory(t) { return new (t || DxoValueIndicatorComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoValueIndicatorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoValueIndicatorComponent, selectors: [[\"dxo-value-indicator\"]], inputs: { arrowLength: \"arrowLength\", backgroundColor: \"backgroundColor\", baseValue: \"baseValue\", beginAdaptingAtRadius: \"beginAdaptingAtRadius\", color: \"color\", horizontalOrientation: \"horizontalOrientation\", indentFromCenter: \"indentFromCenter\", length: \"length\", offset: \"offset\", palette: \"palette\", secondColor: \"secondColor\", secondFraction: \"secondFraction\", size: \"size\", spindleGapSize: \"spindleGapSize\", spindleSize: \"spindleSize\", text: \"text\", type: \"type\", verticalOrientation: \"verticalOrientation\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoValueIndicatorComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueIndicatorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-value-indicator',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'arrowLength',\r\n 'backgroundColor',\r\n 'baseValue',\r\n 'beginAdaptingAtRadius',\r\n 'color',\r\n 'horizontalOrientation',\r\n 'indentFromCenter',\r\n 'length',\r\n 'offset',\r\n 'palette',\r\n 'secondColor',\r\n 'secondFraction',\r\n 'size',\r\n 'spindleGapSize',\r\n 'spindleSize',\r\n 'text',\r\n 'type',\r\n 'verticalOrientation',\r\n 'width'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoValueIndicatorModule {\r\n}\r\n/** @nocollapse */ DxoValueIndicatorModule.ɵfac = function DxoValueIndicatorModule_Factory(t) { return new (t || DxoValueIndicatorModule)(); };\r\n/** @nocollapse */ DxoValueIndicatorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoValueIndicatorModule });\r\n/** @nocollapse */ DxoValueIndicatorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoValueIndicatorModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoValueIndicatorComponent\r\n ],\r\n exports: [\r\n DxoValueIndicatorComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoValueIndicatorModule, { declarations: [DxoValueIndicatorComponent], exports: [DxoValueIndicatorComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoHtmlEditorVariables extends NestedOption {\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n get escapeChar() {\r\n return this._getOption('escapeChar');\r\n }\r\n set escapeChar(value) {\r\n this._setOption('escapeChar', value);\r\n }\r\n}\r\n/** @nocollapse */ DxoHtmlEditorVariables.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDxoHtmlEditorVariables_BaseFactory; return function DxoHtmlEditorVariables_Factory(t) { return (ɵDxoHtmlEditorVariables_BaseFactory || (ɵDxoHtmlEditorVariables_BaseFactory = i0.ɵɵgetInheritedFactory(DxoHtmlEditorVariables)))(t || DxoHtmlEditorVariables); }; }();\r\n/** @nocollapse */ DxoHtmlEditorVariables.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoHtmlEditorVariables, selectors: [[\"ng-component\"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoHtmlEditorVariables_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoHtmlEditorVariables, [{\r\n type: Component,\r\n args: [{\r\n template: ''\r\n }]\r\n }], null, null); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoVariablesComponent extends DxoHtmlEditorVariables {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get _optionPath() {\r\n return 'variables';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoVariablesComponent.ɵfac = function DxoVariablesComponent_Factory(t) { return new (t || DxoVariablesComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoVariablesComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoVariablesComponent, selectors: [[\"dxo-variables\"]], inputs: { dataSource: \"dataSource\", escapeChar: \"escapeChar\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoVariablesComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVariablesComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-variables',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost],\r\n inputs: [\r\n 'dataSource',\r\n 'escapeChar'\r\n ]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, null); })();\r\nclass DxoVariablesModule {\r\n}\r\n/** @nocollapse */ DxoVariablesModule.ɵfac = function DxoVariablesModule_Factory(t) { return new (t || DxoVariablesModule)(); };\r\n/** @nocollapse */ DxoVariablesModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoVariablesModule });\r\n/** @nocollapse */ DxoVariablesModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVariablesModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoVariablesComponent\r\n ],\r\n exports: [\r\n DxoVariablesComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoVariablesModule, { declarations: [DxoVariablesComponent], exports: [DxoVariablesComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoVerticalLineComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n get dashStyle() {\r\n return this._getOption('dashStyle');\r\n }\r\n set dashStyle(value) {\r\n this._setOption('dashStyle', value);\r\n }\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n get opacity() {\r\n return this._getOption('opacity');\r\n }\r\n set opacity(value) {\r\n this._setOption('opacity', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get _optionPath() {\r\n return 'verticalLine';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoVerticalLineComponent.ɵfac = function DxoVerticalLineComponent_Factory(t) { return new (t || DxoVerticalLineComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoVerticalLineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoVerticalLineComponent, selectors: [[\"dxo-vertical-line\"]], inputs: { color: \"color\", dashStyle: \"dashStyle\", label: \"label\", opacity: \"opacity\", visible: \"visible\", width: \"width\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoVerticalLineComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVerticalLineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-vertical-line',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], dashStyle: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], opacity: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoVerticalLineModule {\r\n}\r\n/** @nocollapse */ DxoVerticalLineModule.ɵfac = function DxoVerticalLineModule_Factory(t) { return new (t || DxoVerticalLineModule)(); };\r\n/** @nocollapse */ DxoVerticalLineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoVerticalLineModule });\r\n/** @nocollapse */ DxoVerticalLineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoVerticalLineModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoVerticalLineComponent\r\n ],\r\n exports: [\r\n DxoVerticalLineComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoVerticalLineModule, { declarations: [DxoVerticalLineComponent], exports: [DxoVerticalLineComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxiViewComponent extends CollectionNestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get agendaDuration() {\r\n return this._getOption('agendaDuration');\r\n }\r\n set agendaDuration(value) {\r\n this._setOption('agendaDuration', value);\r\n }\r\n get allDayPanelMode() {\r\n return this._getOption('allDayPanelMode');\r\n }\r\n set allDayPanelMode(value) {\r\n this._setOption('allDayPanelMode', value);\r\n }\r\n get appointmentCollectorTemplate() {\r\n return this._getOption('appointmentCollectorTemplate');\r\n }\r\n set appointmentCollectorTemplate(value) {\r\n this._setOption('appointmentCollectorTemplate', value);\r\n }\r\n get appointmentTemplate() {\r\n return this._getOption('appointmentTemplate');\r\n }\r\n set appointmentTemplate(value) {\r\n this._setOption('appointmentTemplate', value);\r\n }\r\n get appointmentTooltipTemplate() {\r\n return this._getOption('appointmentTooltipTemplate');\r\n }\r\n set appointmentTooltipTemplate(value) {\r\n this._setOption('appointmentTooltipTemplate', value);\r\n }\r\n get cellDuration() {\r\n return this._getOption('cellDuration');\r\n }\r\n set cellDuration(value) {\r\n this._setOption('cellDuration', value);\r\n }\r\n get dataCellTemplate() {\r\n return this._getOption('dataCellTemplate');\r\n }\r\n set dataCellTemplate(value) {\r\n this._setOption('dataCellTemplate', value);\r\n }\r\n get dateCellTemplate() {\r\n return this._getOption('dateCellTemplate');\r\n }\r\n set dateCellTemplate(value) {\r\n this._setOption('dateCellTemplate', value);\r\n }\r\n get dropDownAppointmentTemplate() {\r\n return this._getOption('dropDownAppointmentTemplate');\r\n }\r\n set dropDownAppointmentTemplate(value) {\r\n this._setOption('dropDownAppointmentTemplate', value);\r\n }\r\n get endDayHour() {\r\n return this._getOption('endDayHour');\r\n }\r\n set endDayHour(value) {\r\n this._setOption('endDayHour', value);\r\n }\r\n get firstDayOfWeek() {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n get groupByDate() {\r\n return this._getOption('groupByDate');\r\n }\r\n set groupByDate(value) {\r\n this._setOption('groupByDate', value);\r\n }\r\n get groupOrientation() {\r\n return this._getOption('groupOrientation');\r\n }\r\n set groupOrientation(value) {\r\n this._setOption('groupOrientation', value);\r\n }\r\n get groups() {\r\n return this._getOption('groups');\r\n }\r\n set groups(value) {\r\n this._setOption('groups', value);\r\n }\r\n get intervalCount() {\r\n return this._getOption('intervalCount');\r\n }\r\n set intervalCount(value) {\r\n this._setOption('intervalCount', value);\r\n }\r\n get maxAppointmentsPerCell() {\r\n return this._getOption('maxAppointmentsPerCell');\r\n }\r\n set maxAppointmentsPerCell(value) {\r\n this._setOption('maxAppointmentsPerCell', value);\r\n }\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n get resourceCellTemplate() {\r\n return this._getOption('resourceCellTemplate');\r\n }\r\n set resourceCellTemplate(value) {\r\n this._setOption('resourceCellTemplate', value);\r\n }\r\n get scrolling() {\r\n return this._getOption('scrolling');\r\n }\r\n set scrolling(value) {\r\n this._setOption('scrolling', value);\r\n }\r\n get startDate() {\r\n return this._getOption('startDate');\r\n }\r\n set startDate(value) {\r\n this._setOption('startDate', value);\r\n }\r\n get startDayHour() {\r\n return this._getOption('startDayHour');\r\n }\r\n set startDayHour(value) {\r\n this._setOption('startDayHour', value);\r\n }\r\n get timeCellTemplate() {\r\n return this._getOption('timeCellTemplate');\r\n }\r\n set timeCellTemplate(value) {\r\n this._setOption('timeCellTemplate', value);\r\n }\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get _optionPath() {\r\n return 'views';\r\n }\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxiViewComponent.ɵfac = function DxiViewComponent_Factory(t) { return new (t || DxiViewComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxiViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiViewComponent, selectors: [[\"dxi-view\"]], inputs: { agendaDuration: \"agendaDuration\", allDayPanelMode: \"allDayPanelMode\", appointmentCollectorTemplate: \"appointmentCollectorTemplate\", appointmentTemplate: \"appointmentTemplate\", appointmentTooltipTemplate: \"appointmentTooltipTemplate\", cellDuration: \"cellDuration\", dataCellTemplate: \"dataCellTemplate\", dateCellTemplate: \"dateCellTemplate\", dropDownAppointmentTemplate: \"dropDownAppointmentTemplate\", endDayHour: \"endDayHour\", firstDayOfWeek: \"firstDayOfWeek\", groupByDate: \"groupByDate\", groupOrientation: \"groupOrientation\", groups: \"groups\", intervalCount: \"intervalCount\", maxAppointmentsPerCell: \"maxAppointmentsPerCell\", name: \"name\", offset: \"offset\", resourceCellTemplate: \"resourceCellTemplate\", scrolling: \"scrolling\", startDate: \"startDate\", startDayHour: \"startDayHour\", timeCellTemplate: \"timeCellTemplate\", type: \"type\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiViewComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxi-view',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { agendaDuration: [{\r\n type: Input\r\n }], allDayPanelMode: [{\r\n type: Input\r\n }], appointmentCollectorTemplate: [{\r\n type: Input\r\n }], appointmentTemplate: [{\r\n type: Input\r\n }], appointmentTooltipTemplate: [{\r\n type: Input\r\n }], cellDuration: [{\r\n type: Input\r\n }], dataCellTemplate: [{\r\n type: Input\r\n }], dateCellTemplate: [{\r\n type: Input\r\n }], dropDownAppointmentTemplate: [{\r\n type: Input\r\n }], endDayHour: [{\r\n type: Input\r\n }], firstDayOfWeek: [{\r\n type: Input\r\n }], groupByDate: [{\r\n type: Input\r\n }], groupOrientation: [{\r\n type: Input\r\n }], groups: [{\r\n type: Input\r\n }], intervalCount: [{\r\n type: Input\r\n }], maxAppointmentsPerCell: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], resourceCellTemplate: [{\r\n type: Input\r\n }], scrolling: [{\r\n type: Input\r\n }], startDate: [{\r\n type: Input\r\n }], startDayHour: [{\r\n type: Input\r\n }], timeCellTemplate: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }] }); })();\r\nclass DxiViewModule {\r\n}\r\n/** @nocollapse */ DxiViewModule.ɵfac = function DxiViewModule_Factory(t) { return new (t || DxiViewModule)(); };\r\n/** @nocollapse */ DxiViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiViewModule });\r\n/** @nocollapse */ DxiViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxiViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxiViewComponent\r\n ],\r\n exports: [\r\n DxiViewComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiViewModule, { declarations: [DxiViewComponent], exports: [DxiViewComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoViewToolbarComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get commands() {\r\n return this._getOption('commands');\r\n }\r\n set commands(value) {\r\n this._setOption('commands', value);\r\n }\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n get _optionPath() {\r\n return 'viewToolbar';\r\n }\r\n get commandsChildren() {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoViewToolbarComponent.ɵfac = function DxoViewToolbarComponent_Factory(t) { return new (t || DxoViewToolbarComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoViewToolbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoViewToolbarComponent, selectors: [[\"dxo-view-toolbar\"]], contentQueries: function DxoViewToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCommandComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.commandsChildren = _t);\r\n } }, inputs: { commands: \"commands\", visible: \"visible\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoViewToolbarComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoViewToolbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-view-toolbar',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { commands: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], commandsChildren: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => DxiCommandComponent)]\r\n }] }); })();\r\nclass DxoViewToolbarModule {\r\n}\r\n/** @nocollapse */ DxoViewToolbarModule.ɵfac = function DxoViewToolbarModule_Factory(t) { return new (t || DxoViewToolbarModule)(); };\r\n/** @nocollapse */ DxoViewToolbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoViewToolbarModule });\r\n/** @nocollapse */ DxoViewToolbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoViewToolbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoViewToolbarComponent\r\n ],\r\n exports: [\r\n DxoViewToolbarComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoViewToolbarModule, { declarations: [DxoViewToolbarComponent], exports: [DxoViewToolbarComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoWidthComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get rangeMaxPoint() {\r\n return this._getOption('rangeMaxPoint');\r\n }\r\n set rangeMaxPoint(value) {\r\n this._setOption('rangeMaxPoint', value);\r\n }\r\n get rangeMinPoint() {\r\n return this._getOption('rangeMinPoint');\r\n }\r\n set rangeMinPoint(value) {\r\n this._setOption('rangeMinPoint', value);\r\n }\r\n get end() {\r\n return this._getOption('end');\r\n }\r\n set end(value) {\r\n this._setOption('end', value);\r\n }\r\n get start() {\r\n return this._getOption('start');\r\n }\r\n set start(value) {\r\n this._setOption('start', value);\r\n }\r\n get _optionPath() {\r\n return 'width';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoWidthComponent.ɵfac = function DxoWidthComponent_Factory(t) { return new (t || DxoWidthComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoWidthComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoWidthComponent, selectors: [[\"dxo-width\"]], inputs: { rangeMaxPoint: \"rangeMaxPoint\", rangeMinPoint: \"rangeMinPoint\", end: \"end\", start: \"start\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoWidthComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoWidthComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-width',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { rangeMaxPoint: [{\r\n type: Input\r\n }], rangeMinPoint: [{\r\n type: Input\r\n }], end: [{\r\n type: Input\r\n }], start: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoWidthModule {\r\n}\r\n/** @nocollapse */ DxoWidthModule.ɵfac = function DxoWidthModule_Factory(t) { return new (t || DxoWidthModule)(); };\r\n/** @nocollapse */ DxoWidthModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoWidthModule });\r\n/** @nocollapse */ DxoWidthModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoWidthModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoWidthComponent\r\n ],\r\n exports: [\r\n DxoWidthComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoWidthModule, { declarations: [DxoWidthComponent], exports: [DxoWidthComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoZoomAndPanComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get allowMouseWheel() {\r\n return this._getOption('allowMouseWheel');\r\n }\r\n set allowMouseWheel(value) {\r\n this._setOption('allowMouseWheel', value);\r\n }\r\n get allowTouchGestures() {\r\n return this._getOption('allowTouchGestures');\r\n }\r\n set allowTouchGestures(value) {\r\n this._setOption('allowTouchGestures', value);\r\n }\r\n get argumentAxis() {\r\n return this._getOption('argumentAxis');\r\n }\r\n set argumentAxis(value) {\r\n this._setOption('argumentAxis', value);\r\n }\r\n get dragBoxStyle() {\r\n return this._getOption('dragBoxStyle');\r\n }\r\n set dragBoxStyle(value) {\r\n this._setOption('dragBoxStyle', value);\r\n }\r\n get dragToZoom() {\r\n return this._getOption('dragToZoom');\r\n }\r\n set dragToZoom(value) {\r\n this._setOption('dragToZoom', value);\r\n }\r\n get panKey() {\r\n return this._getOption('panKey');\r\n }\r\n set panKey(value) {\r\n this._setOption('panKey', value);\r\n }\r\n get valueAxis() {\r\n return this._getOption('valueAxis');\r\n }\r\n set valueAxis(value) {\r\n this._setOption('valueAxis', value);\r\n }\r\n get _optionPath() {\r\n return 'zoomAndPan';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoZoomAndPanComponent.ɵfac = function DxoZoomAndPanComponent_Factory(t) { return new (t || DxoZoomAndPanComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoZoomAndPanComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoZoomAndPanComponent, selectors: [[\"dxo-zoom-and-pan\"]], inputs: { allowMouseWheel: \"allowMouseWheel\", allowTouchGestures: \"allowTouchGestures\", argumentAxis: \"argumentAxis\", dragBoxStyle: \"dragBoxStyle\", dragToZoom: \"dragToZoom\", panKey: \"panKey\", valueAxis: \"valueAxis\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoZoomAndPanComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoZoomAndPanComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-zoom-and-pan',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { allowMouseWheel: [{\r\n type: Input\r\n }], allowTouchGestures: [{\r\n type: Input\r\n }], argumentAxis: [{\r\n type: Input\r\n }], dragBoxStyle: [{\r\n type: Input\r\n }], dragToZoom: [{\r\n type: Input\r\n }], panKey: [{\r\n type: Input\r\n }], valueAxis: [{\r\n type: Input\r\n }] }); })();\r\nclass DxoZoomAndPanModule {\r\n}\r\n/** @nocollapse */ DxoZoomAndPanModule.ɵfac = function DxoZoomAndPanModule_Factory(t) { return new (t || DxoZoomAndPanModule)(); };\r\n/** @nocollapse */ DxoZoomAndPanModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoZoomAndPanModule });\r\n/** @nocollapse */ DxoZoomAndPanModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoZoomAndPanModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoZoomAndPanComponent\r\n ],\r\n exports: [\r\n DxoZoomAndPanComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoZoomAndPanModule, { declarations: [DxoZoomAndPanComponent], exports: [DxoZoomAndPanComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DxoZoomLevelComponent extends NestedOption {\r\n constructor(parentOptionHost, optionHost) {\r\n super();\r\n this._createEventEmitters([\r\n { emit: 'valueChange' }\r\n ]);\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n get _optionPath() {\r\n return 'zoomLevel';\r\n }\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n}\r\n/** @nocollapse */ DxoZoomLevelComponent.ɵfac = function DxoZoomLevelComponent_Factory(t) { return new (t || DxoZoomLevelComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };\r\n/** @nocollapse */ DxoZoomLevelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoZoomLevelComponent, selectors: [[\"dxo-zoom-level\"]], inputs: { items: \"items\", value: \"value\" }, outputs: { valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoZoomLevelComponent_Template(rf, ctx) { }, styles: [\"\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoZoomLevelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dxo-zoom-level',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n }]\r\n }], function () { return [{ type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost, decorators: [{\r\n type: Host\r\n }] }]; }, { items: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxoZoomLevelModule {\r\n}\r\n/** @nocollapse */ DxoZoomLevelModule.ɵfac = function DxoZoomLevelModule_Factory(t) { return new (t || DxoZoomLevelModule)(); };\r\n/** @nocollapse */ DxoZoomLevelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoZoomLevelModule });\r\n/** @nocollapse */ DxoZoomLevelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxoZoomLevelModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n DxoZoomLevelComponent\r\n ],\r\n exports: [\r\n DxoZoomLevelComponent\r\n ],\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoZoomLevelModule, { declarations: [DxoZoomLevelComponent], exports: [DxoZoomLevelComponent] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxiAnnotationComponent, DxiAnnotationModule, DxiBreakComponent, DxiBreakModule, DxiButtonComponent, DxiButtonModule, DxiCenterComponent, DxiCenterModule, DxiChangeComponent, DxiChangeModule, DxiColComponent, DxiColModule, DxiColumnComponent, DxiColumnModule, DxiCommandComponent, DxiCommandModule, DxiConnectionPointComponent, DxiConnectionPointModule, DxiConstantLineComponent, DxiConstantLineModule, DxiCustomOperationComponent, DxiCustomOperationModule, DxiCustomShapeComponent, DxiCustomShapeModule, DxiFieldComponent, DxiFieldModule, DxiFileSelectionItemComponent, DxiFileSelectionItemModule, DxiGroupComponent, DxiGroupItemComponent, DxiGroupItemModule, DxiGroupModule, DxiItemComponent, DxiItemModule, DxiLayerComponent, DxiLayerModule, DxiLegendComponent, DxiLegendModule, DxiLocationComponent, DxiLocationModule, DxiMarkerComponent, DxiMarkerModule, DxiMentionComponent, DxiMentionModule, DxiMenuItemComponent, DxiMenuItemModule, DxiPaneComponent, DxiPaneModule, DxiRangeComponent, DxiRangeModule, DxiResourceComponent, DxiResourceModule, DxiRouteComponent, DxiRouteModule, DxiRowComponent, DxiRowModule, DxiSeriesComponent, DxiSeriesModule, DxiSortByGroupSummaryInfoComponent, DxiSortByGroupSummaryInfoModule, DxiStripComponent, DxiStripLineComponent, DxiStripLineModule, DxiStripModule, DxiTabComponent, DxiTabModule, DxiToolbarItemComponent, DxiToolbarItemModule, DxiTotalItemComponent, DxiTotalItemModule, DxiValidationRuleComponent, DxiValidationRuleModule, DxiValueAxisComponent, DxiValueAxisModule, DxiViewComponent, DxiViewModule, DxoAdapterComponent, DxoAdapterModule, DxoAdaptiveLayoutComponent, DxoAdaptiveLayoutModule, DxoAggregationComponent, DxoAggregationIntervalComponent, DxoAggregationIntervalModule, DxoAggregationModule, DxoAnimationComponent, DxoAnimationModule, DxoApiKeyComponent, DxoApiKeyModule, DxoAppointmentDraggingComponent, DxoAppointmentDraggingModule, DxoAreaComponent, DxoAreaModule, DxoArgumentAxisComponent, DxoArgumentAxisModule, DxoArgumentFormatComponent, DxoArgumentFormatModule, DxoAtComponent, DxoAtModule, DxoAutoLayoutComponent, DxoAutoLayoutModule, DxoBackgroundColorComponent, DxoBackgroundColorModule, DxoBackgroundComponent, DxoBackgroundModule, DxoBarComponent, DxoBarModule, DxoBehaviorComponent, DxoBehaviorModule, DxoBorderComponent, DxoBorderModule, DxoBoundaryOffsetComponent, DxoBoundaryOffsetModule, DxoBoxComponent, DxoBoxModule, DxoBreakStyleComponent, DxoBreakStyleModule, DxoBubbleComponent, DxoBubbleModule, DxoButtonOptionsComponent, DxoButtonOptionsModule, DxoCalendarOptionsComponent, DxoCalendarOptionsModule, DxoCandlestickComponent, DxoCandlestickModule, DxoChartComponent, DxoChartModule, DxoColCountByScreenComponent, DxoColCountByScreenModule, DxoCollisionComponent, DxoCollisionModule, DxoColorComponent, DxoColorModule, DxoColorizerComponent, DxoColorizerModule, DxoColumnChooserComponent, DxoColumnChooserModule, DxoColumnFixingComponent, DxoColumnFixingModule, DxoCommonAnnotationSettingsComponent, DxoCommonAnnotationSettingsModule, DxoCommonAxisSettingsComponent, DxoCommonAxisSettingsModule, DxoCommonPaneSettingsComponent, DxoCommonPaneSettingsModule, DxoCommonSeriesSettingsComponent, DxoCommonSeriesSettingsModule, DxoConnectorComponent, DxoConnectorModule, DxoConstantLineStyleComponent, DxoConstantLineStyleModule, DxoContextMenuComponent, DxoContextMenuModule, DxoContextToolboxComponent, DxoContextToolboxModule, DxoControlBarComponent, DxoControlBarModule, DxoCrosshairComponent, DxoCrosshairModule, DxoCursorOffsetComponent, DxoCursorOffsetModule, DxoDataPrepareSettingsComponent, DxoDataPrepareSettingsModule, DxoDataSourceComponent, DxoDataSourceModule, DxoDefaultItemPropertiesComponent, DxoDefaultItemPropertiesModule, DxoDelayComponent, DxoDelayModule, DxoDependenciesComponent, DxoDependenciesModule, DxoDetailsComponent, DxoDetailsModule, DxoDisplayFormatComponent, DxoDisplayFormatModule, DxoDragBoxStyleComponent, DxoDragBoxStyleModule, DxoDropDownOptionsComponent, DxoDropDownOptionsModule, DxoEdgesComponent, DxoEdgesModule, DxoEditingComponent, DxoEditingModule, DxoExportComponent, DxoExportModule, DxoFieldChooserComponent, DxoFieldChooserModule, DxoFieldPanelComponent, DxoFieldPanelModule, DxoFileUploaderOptionsComponent, DxoFileUploaderOptionsModule, DxoFilterBuilderComponent, DxoFilterBuilderModule, DxoFilterBuilderPopupComponent, DxoFilterBuilderPopupModule, DxoFilterOperationDescriptionsComponent, DxoFilterOperationDescriptionsModule, DxoFilterPanelComponent, DxoFilterPanelModule, DxoFilterRowComponent, DxoFilterRowModule, DxoFontComponent, DxoFontModule, DxoFormComponent, DxoFormItemComponent, DxoFormItemModule, DxoFormModule, DxoFormatComponent, DxoFormatModule, DxoFromComponent, DxoFromModule, DxoFullstackedareaComponent, DxoFullstackedareaModule, DxoFullstackedbarComponent, DxoFullstackedbarModule, DxoFullstackedlineComponent, DxoFullstackedlineModule, DxoFullstackedsplineComponent, DxoFullstackedsplineModule, DxoFullstackedsplineareaComponent, DxoFullstackedsplineareaModule, DxoGeometryComponent, DxoGeometryModule, DxoGridComponent, DxoGridModule, DxoGridSizeComponent, DxoGridSizeModule, DxoGroupComponent, DxoGroupModule, DxoGroupOperationDescriptionsComponent, DxoGroupOperationDescriptionsModule, DxoGroupPanelComponent, DxoGroupPanelModule, DxoGroupingComponent, DxoGroupingModule, DxoHatchingComponent, DxoHatchingModule, DxoHeaderFilterComponent, DxoHeaderFilterModule, DxoHeightComponent, DxoHeightModule, DxoHideComponent, DxoHideEventComponent, DxoHideEventModule, DxoHideModule, DxoHistoryToolbarComponent, DxoHistoryToolbarModule, DxoHorizontalLineComponent, DxoHorizontalLineModule, DxoHoverStyleComponent, DxoHoverStyleModule, DxoImageComponent, DxoImageModule, DxoImageUploadComponent, DxoImageUploadModule, DxoIndentComponent, DxoIndentModule, DxoItemComponent, DxoItemDraggingComponent, DxoItemDraggingModule, DxoItemModule, DxoItemTextFormatComponent, DxoItemTextFormatModule, DxoItemViewComponent, DxoItemViewModule, DxoKeyboardNavigationComponent, DxoKeyboardNavigationModule, DxoLabelComponent, DxoLabelModule, DxoLegendComponent, DxoLegendModule, DxoLineComponent, DxoLineModule, DxoLinkComponent, DxoLinkModule, DxoLoadPanelComponent, DxoLoadPanelModule, DxoLoadingIndicatorComponent, DxoLoadingIndicatorModule, DxoLookupComponent, DxoLookupModule, DxoMainToolbarComponent, DxoMainToolbarModule, DxoMarginComponent, DxoMarginModule, DxoMarkerComponent, DxoMarkerModule, DxoMasterDetailComponent, DxoMasterDetailModule, DxoMaxRangeComponent, DxoMaxRangeModule, DxoMediaResizingComponent, DxoMediaResizingModule, DxoMinRangeComponent, DxoMinRangeModule, DxoMinVisualRangeLengthComponent, DxoMinVisualRangeLengthModule, DxoMinorGridComponent, DxoMinorGridModule, DxoMinorTickComponent, DxoMinorTickIntervalComponent, DxoMinorTickIntervalModule, DxoMinorTickModule, DxoMyComponent, DxoMyModule, DxoNodeComponent, DxoNodeModule, DxoNodesComponent, DxoNodesModule, DxoNotificationsComponent, DxoNotificationsModule, DxoOffsetComponent, DxoOffsetModule, DxoOperationDescriptionsComponent, DxoOperationDescriptionsModule, DxoOptionsComponent, DxoOptionsModule, DxoPageSizeComponent, DxoPageSizeModule, DxoPagerComponent, DxoPagerModule, DxoPagingComponent, DxoPagingModule, DxoPermissionsComponent, DxoPermissionsModule, DxoPointComponent, DxoPointModule, DxoPopupComponent, DxoPopupModule, DxoPositionComponent, DxoPositionModule, DxoProjectionComponent, DxoProjectionModule, DxoPropertiesPanelComponent, DxoPropertiesPanelModule, DxoRangeContainerComponent, DxoRangeContainerModule, DxoRangeareaComponent, DxoRangeareaModule, DxoRangebarComponent, DxoRangebarModule, DxoReductionComponent, DxoReductionModule, DxoRemoteOperationsComponent, DxoRemoteOperationsModule, DxoResourceAssignmentsComponent, DxoResourceAssignmentsModule, DxoResourcesComponent, DxoResourcesModule, DxoRowDraggingComponent, DxoRowDraggingModule, DxoScaleComponent, DxoScaleModule, DxoScaleTypeRangeComponent, DxoScaleTypeRangeModule, DxoScatterComponent, DxoScatterModule, DxoScrollBarComponent, DxoScrollBarModule, DxoScrollingComponent, DxoScrollingModule, DxoSearchComponent, DxoSearchEditorOptionsComponent, DxoSearchEditorOptionsModule, DxoSearchModule, DxoSearchPanelComponent, DxoSearchPanelModule, DxoSelectionComponent, DxoSelectionModule, DxoSelectionStyleComponent, DxoSelectionStyleModule, DxoSeriesTemplateComponent, DxoSeriesTemplateModule, DxoShadowComponent, DxoShadowModule, DxoShowComponent, DxoShowEventComponent, DxoShowEventModule, DxoShowFirstSubmenuModeComponent, DxoShowFirstSubmenuModeModule, DxoShowModule, DxoShowSubmenuModeComponent, DxoShowSubmenuModeModule, DxoShutterComponent, DxoShutterModule, DxoSizeComponent, DxoSizeModule, DxoSliderHandleComponent, DxoSliderHandleModule, DxoSliderMarkerComponent, DxoSliderMarkerModule, DxoSmallValuesGroupingComponent, DxoSmallValuesGroupingModule, DxoSortingComponent, DxoSortingModule, DxoSourceComponent, DxoSourceModule, DxoSplineComponent, DxoSplineModule, DxoSplineareaComponent, DxoSplineareaModule, DxoStackedareaComponent, DxoStackedareaModule, DxoStackedbarComponent, DxoStackedbarModule, DxoStackedlineComponent, DxoStackedlineModule, DxoStackedsplineComponent, DxoStackedsplineModule, DxoStackedsplineareaComponent, DxoStackedsplineareaModule, DxoStateStoringComponent, DxoStateStoringModule, DxoStepareaComponent, DxoStepareaModule, DxoSteplineComponent, DxoSteplineModule, DxoStockComponent, DxoStockModule, DxoStoreComponent, DxoStoreModule, DxoStripStyleComponent, DxoStripStyleModule, DxoSubtitleComponent, DxoSubtitleModule, DxoSubvalueIndicatorComponent, DxoSubvalueIndicatorModule, DxoSummaryComponent, DxoSummaryModule, DxoTabPanelOptionsComponent, DxoTabPanelOptionsModule, DxoTableContextMenuComponent, DxoTableContextMenuModule, DxoTableResizingComponent, DxoTableResizingModule, DxoTasksComponent, DxoTasksModule, DxoTextComponent, DxoTextModule, DxoTextsComponent, DxoTextsModule, DxoTickComponent, DxoTickIntervalComponent, DxoTickIntervalModule, DxoTickModule, DxoTileComponent, DxoTileModule, DxoTitleComponent, DxoTitleModule, DxoToComponent, DxoToModule, DxoToolbarComponent, DxoToolbarModule, DxoToolboxComponent, DxoToolboxModule, DxoTooltipComponent, DxoTooltipModule, DxoUploadComponent, DxoUploadModule, DxoUrlComponent, DxoUrlModule, DxoValidationComponent, DxoValidationModule, DxoValueAxisComponent, DxoValueAxisModule, DxoValueErrorBarComponent, DxoValueErrorBarModule, DxoValueFormatComponent, DxoValueFormatModule, DxoValueIndicatorComponent, DxoValueIndicatorModule, DxoVariablesComponent, DxoVariablesModule, DxoVerticalLineComponent, DxoVerticalLineModule, DxoViewToolbarComponent, DxoViewToolbarModule, DxoWidthComponent, DxoWidthModule, DxoZoomAndPanComponent, DxoZoomAndPanModule, DxoZoomLevelComponent, DxoZoomLevelModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxAccordion from 'devextreme/ui/accordion';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxAccordion]\r\n\r\n */\r\nclass DxAccordionComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'itemTitleClick', emit: 'onItemTitleClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationDurationChange' },\r\n { emit: 'collapsibleChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'itemTitleTemplateChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'multipleChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'selectedItemKeysChange' },\r\n { emit: 'selectedItemsChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.animationDuration]\r\n \r\n */\r\n get animationDuration() {\r\n return this._getOption('animationDuration');\r\n }\r\n set animationDuration(value) {\r\n this._setOption('animationDuration', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.collapsible]\r\n \r\n */\r\n get collapsible() {\r\n return this._getOption('collapsible');\r\n }\r\n set collapsible(value) {\r\n this._setOption('collapsible', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.itemTitleTemplate]\r\n \r\n */\r\n get itemTitleTemplate() {\r\n return this._getOption('itemTitleTemplate');\r\n }\r\n set itemTitleTemplate(value) {\r\n this._setOption('itemTitleTemplate', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.multiple]\r\n \r\n */\r\n get multiple() {\r\n return this._getOption('multiple');\r\n }\r\n set multiple(value) {\r\n this._setOption('multiple', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxAccordionOptions.selectedIndex]\r\n \r\n */\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItemKeys]\r\n \r\n */\r\n get selectedItemKeys() {\r\n return this._getOption('selectedItemKeys');\r\n }\r\n set selectedItemKeys(value) {\r\n this._setOption('selectedItemKeys', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItems]\r\n \r\n */\r\n get selectedItems() {\r\n return this._getOption('selectedItems');\r\n }\r\n set selectedItems(value) {\r\n this._setOption('selectedItems', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxAccordion(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('selectedItemKeys', changes);\r\n this.setupChanges('selectedItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('selectedItemKeys');\r\n this._idh.doCheck('selectedItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxAccordionComponent.ɵfac = function DxAccordionComponent_Factory(t) { return new (t || DxAccordionComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxAccordionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxAccordionComponent, selectors: [[\"dx-accordion\"]], contentQueries: function DxAccordionComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animationDuration: \"animationDuration\", collapsible: \"collapsible\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", itemTitleTemplate: \"itemTitleTemplate\", keyExpr: \"keyExpr\", multiple: \"multiple\", noDataText: \"noDataText\", repaintChangesOnly: \"repaintChangesOnly\", rtlEnabled: \"rtlEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedItemKeys: \"selectedItemKeys\", selectedItems: \"selectedItems\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onItemTitleClick: \"onItemTitleClick\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationDurationChange: \"animationDurationChange\", collapsibleChange: \"collapsibleChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", itemTitleTemplateChange: \"itemTitleTemplateChange\", keyExprChange: \"keyExprChange\", multipleChange: \"multipleChange\", noDataTextChange: \"noDataTextChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\", selectedItemKeysChange: \"selectedItemKeysChange\", selectedItemsChange: \"selectedItemsChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxAccordionComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxAccordionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-accordion',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animationDuration: [{\r\n type: Input\r\n }], collapsible: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], itemTitleTemplate: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], multiple: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedIndex: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], selectedItemKeys: [{\r\n type: Input\r\n }], selectedItems: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onItemTitleClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationDurationChange: [{\r\n type: Output\r\n }], collapsibleChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], itemTitleTemplateChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], multipleChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], selectedItemKeysChange: [{\r\n type: Output\r\n }], selectedItemsChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxAccordionModule {\r\n}\r\n/** @nocollapse */ DxAccordionModule.ɵfac = function DxAccordionModule_Factory(t) { return new (t || DxAccordionModule)(); };\r\n/** @nocollapse */ DxAccordionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxAccordionModule });\r\n/** @nocollapse */ DxAccordionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxAccordionModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxAccordionComponent\r\n ],\r\n exports: [\r\n DxAccordionComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxAccordionModule, { declarations: [DxAccordionComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxAccordionComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxAccordionComponent, DxAccordionModule };\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction getExponentialNotation(value) {\r\n var parts = value.toExponential().split(\"e\");\r\n var mantissa = parseFloat(parts[0]);\r\n var exponent = parseInt(parts[1]);\r\n return {\r\n exponent: exponent,\r\n mantissa: mantissa\r\n }\r\n}\r\n\r\nfunction multiplyInExponentialForm(value, exponentShift) {\r\n var exponentialNotation = getExponentialNotation(value);\r\n return parseFloat(\"\".concat(exponentialNotation.mantissa, \"e\").concat(exponentialNotation.exponent + exponentShift))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision,\r\n multiplyInExponentialForm\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign,\r\n multiplyInExponentialForm\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var intermediateValue = multiplyInExponentialForm(value, precision);\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange,\r\n multiplyInExponentialForm\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\nvar PERCENT_EXPONENT_SHIFT = 2;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n if (isPercentFormat(numberFormat)) {\r\n value = multiplyInExponentialForm(value, PERCENT_EXPONENT_SHIFT)\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(/%/g, \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/currency.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nexport default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar CURRENCY_STYLES = [\"standard\", \"accounting\"];\r\nvar MAX_FRACTION_DIGITS = 20;\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n var fractionDigits = String(value).split(\".\")[1];\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: fractionDigits && fractionDigits.length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n var _formatConfig$useCurr;\r\n var useAccountingStyle = null !== (_formatConfig$useCurr = formatConfig.useCurrencyAccountingStyle) && void 0 !== _formatConfig$useCurr ? _formatConfig$useCurr : dxConfig().defaultUseCurrencyAccountingStyle;\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency;\r\n config.currencySign = CURRENCY_STYLES[+useAccountingStyle]\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: MAX_FRACTION_DIGITS\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/open_xml_currency_format.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (NUMERIC_FORMATS.includes(value)) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replace(new RegExp(\"\\\\\".concat(char), \"g\"), \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(/ /g, \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(/1/g, \".*\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = Object.keys(LargeNumberFormatPostfixes).find(power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar EMAIL_VALIDATION_REGEX = /^[\\d\\w.+_-]+@[\\d\\w._-]+\\.[\\w]+$/i;\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n } else {\r\n return isNumeric(value)\r\n }\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n }));\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: EMAIL_VALIDATION_REGEX\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, (function(val) {\r\n return val === validator\r\n }))[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = this._pendingValidators.indexOf(validator);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n }));\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = this.validators.indexOf(validator);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (!this.validators.includes(validator)) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (function(_, validator) {\r\n validator.reset()\r\n }));\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _$element$data, _$element$data$dxComp;\r\n var hasValidationGroup = null === (_$element$data = $element.data()) || void 0 === _$element$data ? void 0 : null === (_$element$data$dxComp = _$element$data.dxComponents) || void 0 === _$element$data$dxComp ? void 0 : _$element$data$dxComp.includes(\"dxValidationGroup\");\r\n var validationGroup = hasValidationGroup && $element.dxValidationGroup(\"instance\");\r\n if (validationGroup) {\r\n return validationGroup\r\n }\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = this.groups.indexOf(config);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _rules$;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _result$brokenRules;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length)\n ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","import { Component } from 'inferno';\nlet contextId = 0;\nexport const createContext = function (defaultValue) {\n const id = contextId++;\n return {\n id,\n defaultValue,\n Provider: class extends Component {\n getChildContext() {\n return Object.assign(Object.assign({}, this.context), { [id]: this.props.value || defaultValue });\n }\n render() {\n return this.props.children;\n }\n },\n };\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.dependency = dependency;\n this.effect = effect;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { createPortal } from 'inferno';\nexport const Portal = ({ container, children }) => {\n if (container) {\n return createPortal(children, container);\n }\n return null;\n};\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nconst getContainer = (props) => { var _a, _b; return ((_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0)) || ((_b = props.item) === null || _b === void 0 ? void 0 : _b.get(0)); };\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n render(createElement(template, props), getContainer(props));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => {\n const value = properties[name];\n return !!value && typeof value !== 'string';\n};\n","const NUMBER_STYLES = new Set([\n 'animationIterationCount',\n 'borderImageOutset',\n 'borderImageSlice',\n 'border-imageWidth',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexNegative',\n 'flexOrder',\n 'flexPositive',\n 'flexShrink',\n 'floodOpacity',\n 'fontWeight',\n 'gridColumn',\n 'gridRow',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'stopOpacity',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n]);\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !Number.isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.has(style) ? value : `${value}px`);\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nexport function normalizeStyles(styles) {\n if (!(styles instanceof Object)) {\n return undefined;\n }\n return Object\n .entries(styles)\n .reduce((acc, [key, value]) => {\n acc[kebabCase(key)] = isNumeric(value)\n ? getNumberStyleValue(key, value)\n : value;\n return acc;\n }, {});\n}\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n var nextSibling = element.nextSibling;\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.insertBefore(element, nextSibling);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"isEqual\"];\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\n\r\nfunction isDxElementWrapper(element) {\r\n return !!element.toArray\r\n}\r\nexport function buildTemplateArgs(model, template) {\r\n var _model$data;\r\n var args = {\r\n template: template,\r\n model: _extends({}, model)\r\n };\r\n var _ref = null !== (_model$data = model.data) && void 0 !== _model$data ? _model$data : {},\r\n {\r\n isEqual: isEqual\r\n } = _ref,\r\n data = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n if (isEqual) {\r\n args.model.data = data;\r\n args.isEqual = isEqual\r\n }\r\n return args\r\n}\r\n\r\nfunction renderTemplateContent(props, container) {\r\n var _props$model;\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_props$model = props.model) && void 0 !== _props$model ? _props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var rendered = props.template.render(_extends({\r\n container: container,\r\n transclude: props.transclude\r\n }, {\r\n renovated: props.renovated\r\n }, !props.transclude ? {\r\n model: data\r\n } : {}, !props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n if (void 0 === rendered) {\r\n return []\r\n }\r\n return isDxElementWrapper(rendered) ? rendered.toArray() : [$(rendered).get(0)]\r\n}\r\n\r\nfunction removeDifferentElements(oldChildren, newChildren) {\r\n newChildren.forEach(newElement => {\r\n var hasOldChild = !!oldChildren.find(oldElement => newElement === oldElement);\r\n if (!hasOldChild && newElement.parentNode) {\r\n $(newElement).remove()\r\n }\r\n })\r\n}\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n if (!(null !== node && void 0 !== node && node.parentNode)) {\r\n return () => {}\r\n }\r\n var container = node.parentNode;\r\n var $container = $(container);\r\n var $oldContainerContent = $container.contents().toArray();\r\n var content = renderTemplateContent(this.props, getPublicElement($container));\r\n replaceWith($(node), $(content));\r\n return () => {\r\n var $actualContainerContent = $(container).contents().toArray();\r\n removeDifferentElements($oldContainerContent, $actualContainerContent);\r\n container.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n isEqual: isEqual,\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var equalityComparer = null !== isEqual && void 0 !== isEqual ? isEqual : shallowEquals;\r\n if (template !== nextTemplate) {\r\n return true\r\n }\r\n if (!isDefined(model) || !isDefined(nextModel)) {\r\n return model !== nextModel\r\n }\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n if (index !== nextIndex) {\r\n return true\r\n }\r\n return !equalityComparer(data, nextData)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper,\r\n buildTemplateArgs\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/core/emitter.feedback\";\r\nimport \"../../../events/hover\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n return extend(true, super._getDefaultOptions(), viewDefaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: viewDefaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n var defaultWidgetPropsKeys = Object.keys(viewDefaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, buildTemplateArgs(model, template))\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n _getViewComponentDefaultProps() {\r\n return this._viewComponent.defaultProps || {}\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\");\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"<div>\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"<div>\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n config: Object.freeze({})\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"<div>\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n var _this$immediateTimeou;\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n if (0 === this.immediateTimeout) {\r\n this._immediateAccepted = true;\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), null !== (_this$immediateTimeou = this.immediateTimeout) && void 0 !== _this$immediateTimeou ? _this$immediateTimeou : IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n addNamespace,\r\n isDxMouseWheelEvent,\r\n isMouseEvent,\r\n eventData,\r\n eventDelta\r\n} from \"../../events/utils/index\";\r\nimport GestureEmitter from \"../../events/gesture/emitter.gesture\";\r\nimport registerEmitter from \"../../events/core/emitter_registrator\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nimport devices from \"../../core/devices\";\r\nvar realDevice = devices.real();\r\nvar SCROLL_EVENT = \"scroll\";\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = Class.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = addNamespace(SCROLL_EVENT, \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n this._proxiedScroll = e => {\r\n if (!this._disposed) {\r\n this._scroll(e)\r\n }\r\n };\r\n eventsEngine.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n this._disposed = true;\r\n eventsEngine.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit({\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout((function() {\r\n that._clearTimer()\r\n }), this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n});\r\nvar WheelLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!isDxMouseWheelEvent(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n});\r\nvar PointerLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400)\r\n }\r\n});\r\n! function() {\r\n var {\r\n ios: isIos,\r\n android: isAndroid\r\n } = realDevice;\r\n if (!(isIos || isAndroid)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit({\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n cancelAnimationFrame(this._scrollFrame);\r\n this._scrollFrame = requestAnimationFrame((function() {\r\n that._locked = false\r\n }))\r\n },\r\n check: function(e, callback) {\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = requestAnimationFrame((function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n }))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame)\r\n }\r\n })\r\n}();\r\nvar ScrollEmitter = GestureEmitter.inherit(function() {\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if (isDxMouseWheelEvent(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && isMouseEvent(e);\r\n if (!isDxMouseWheelEvent(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = eventData(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: eventDelta(this._prevEventData, currentEventData)\r\n });\r\n var delta = eventDelta(this._savedEventData, currentEventData);\r\n if (delta.time > 200) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = eventData(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = eventDelta(this._prevEventData, eventData(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!isDxMouseWheelEvent(e) && endEventDelta.time < 100) {\r\n var delta = eventDelta(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nregisterEmitter({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nexport default {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT,\r\n scroll: SCROLL_EVENT\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport * as clickEvent from \"../../events/click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler, eventData, namespace) => {\r\n var event = namespace ? addNamespace(eventName, namespace) : eventName;\r\n if (handler) {\r\n eventsEngine.on(element, event, eventData, handler);\r\n return () => {\r\n eventsEngine.off(element, event, handler)\r\n }\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(scrollEvents.scroll);\r\nexport var subscribeToScrollInitEvent = subscribeToEvent(scrollEvents.init);\r\nexport var subscribeToDXScrollStartEvent = subscribeToEvent(scrollEvents.start);\r\nexport var subscribeToDXScrollMoveEvent = subscribeToEvent(scrollEvents.move);\r\nexport var subscribeToDXScrollEndEvent = subscribeToEvent(scrollEvents.end);\r\nexport var subscribeToDXScrollStopEvent = subscribeToEvent(scrollEvents.stop);\r\nexport var subscribeToDXScrollCancelEvent = subscribeToEvent(scrollEvents.cancel);\r\nexport var subscribeToDXPointerDownEvent = subscribeToEvent(pointerEvents.down);\r\nexport var subscribeToDXPointerUpEvent = subscribeToEvent(pointerEvents.up);\r\nexport var subscribeToDXPointerMoveEvent = subscribeToEvent(pointerEvents.move);\r\nexport var subscribeToMouseEnterEvent = subscribeToEvent(\"mouseenter\");\r\nexport var subscribeToMouseLeaveEvent = subscribeToEvent(\"mouseleave\");\r\nexport var subscribeToKeyDownEvent = subscribeToEvent(\"keydown\");\r\nexport var subscribeToDxActiveEvent = subscribeToEvent(\"dxactive\");\r\nexport var subscribeToDxInactiveEvent = subscribeToEvent(\"dxinactive\");\r\nexport var subscribeToDxHoverStartEvent = subscribeToEvent(\"dxhoverstart\");\r\nexport var subscribeToDxHoverEndEvent = subscribeToEvent(\"dxhoverend\");\r\nexport var subscribeToDxFocusInEvent = subscribeToEvent(\"focusin\");\r\nexport var subscribeToDxFocusOutEvent = subscribeToEvent(\"focusout\");\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"./config_context\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [ConfigContext.id]: this.config || ConfigContext.defaultValue\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dxClick,\r\n focus,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n subscribeToDxActiveEvent,\r\n subscribeToDxInactiveEvent,\r\n subscribeToDxHoverStartEvent,\r\n subscribeToDxHoverEndEvent,\r\n subscribeToDxFocusInEvent,\r\n subscribeToDxFocusOutEvent\r\n} from \"../../utils/subscribe_to_event\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n aria: Object.freeze({}),\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.inactiveEffect = this.inactiveEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusInEffect = this.focusInEffect.bind(this);\r\n this.focusOutEffect = this.focusOutEffect.bind(this);\r\n this.hoverStartEffect = this.hoverStartEffect.bind(this);\r\n this.hoverEndEffect = this.hoverEndEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]), new InfernoEffect(this.inactiveEffect, [this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusInEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]), new InfernoEffect(this.focusOutEffect, [this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]), new InfernoEffect(this.hoverStartEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.hoverEndEffect, [this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10, _this$_effects$11, _this$_effects$12, _this$_effects$13;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$11 = this._effects[11]) || void 0 === _this$_effects$11 ? void 0 : _this$_effects$11.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$12 = this._effects[12]) || void 0 === _this$_effects$12 ? void 0 : _this$_effects$12.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$13 = this._effects[13]) || void 0 === _this$_effects$13 ? void 0 : _this$_effects$13.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxActiveEvent(this.widgetElementRef.current, event => {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, {\r\n timeout: _feedbackShowTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n inactiveEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n return subscribeToDxInactiveEvent(this.widgetElementRef.current, event => {\r\n if (this.state.active) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }\r\n }, {\r\n timeout: _feedbackHideTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusInEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxFocusInEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n }, null, namespace)\r\n }\r\n }\r\n return\r\n }\r\n focusOutEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n return subscribeToDxFocusOutEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented() && this.state.focused) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(event)\r\n }\r\n }, null, namespace)\r\n }\r\n return\r\n }\r\n hoverStartEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxHoverStartEvent(this.widgetElementRef.current, event => {\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n hoverEndEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n return subscribeToDxHoverEndEvent(this.widgetElementRef.current, event => {\r\n if (this.state.hovered) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement(this.widgetElementRef.current);\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this);\r\n this.emitClickEvent = this.emitClickEvent.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.onSubmit, this.props.useSubmitBehavior])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.emitClickEvent()\r\n }\r\n return\r\n }\r\n emitClickEvent() {\r\n this.contentRef.current.click()\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = null !== text && void 0 !== text ? text : \"\";\r\n if (!text && icon) {\r\n var iconSource = getImageSourceType(icon);\r\n switch (iconSource) {\r\n case \"image\":\r\n var isPathToImage = !icon.includes(\"base64\") && /^(?!(?:https?:\\/\\/)|(?:ftp:\\/\\/)|(?:www\\.))[^\\s]+$/.test(icon);\r\n label = isPathToImage ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"\";\r\n break;\r\n case \"dxIcon\":\r\n label = messageLocalization.format(camelize(icon, true)) || icon;\r\n break;\r\n case \"fontIcon\":\r\n label = icon;\r\n break;\r\n case \"svg\":\r\n var _titleRegexp$exec$, _titleRegexp$exec;\r\n var title = null !== (_titleRegexp$exec$ = null === (_titleRegexp$exec = /<title>(.*?)<\\/title>/.exec(icon)) || void 0 === _titleRegexp$exec ? void 0 : _titleRegexp$exec[1]) && void 0 !== _titleRegexp$exec$ ? _titleRegexp$exec$ : \"\";\r\n label = title\r\n }\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon\r\n } = this.props;\r\n return null !== icon && void 0 !== icon ? icon : \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n return !text && icon ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text) {\r\n this.__getterCache.inkRippleConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n emitClickEvent: this.emitClickEvent,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/button.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = knownDropTargets.includes(element);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = knownDropTargets.indexOf(element);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (!knownDropTargetSelectors[index].includes(selector)) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = knownDropTargets.indexOf(element);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (knownDropTargetSelectors[dropTargetIndex].includes(void 0)) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n if (e.targetElements || null === e.targetElements) {\r\n var dropTargets = wrapToArray(e.targetElements || []);\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n } else {\r\n this._dropTargets = knownDropTargets\r\n }\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"<div>\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n if (!callbacks.includes(callback)) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = callbacks.indexOf(callback);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/overlay/z_index.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var length = zIndexStack.length;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var isLastZIndexInStack = zIndex => zIndexStack.length && zIndexStack[zIndexStack.length - 1] === zIndex;\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"<div>\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/overlay_position_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isWindow,\r\n isEvent\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport swatch from \"../widget/swatch_container\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$visualContainer = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position);\r\n this.updateVisualContainer(visualContainer)\r\n }\r\n get $container() {\r\n this.updateContainer();\r\n return this._$markupContainer\r\n }\r\n get $visualContainer() {\r\n return this._$visualContainer\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n updatePosition(positionProp) {\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp);\r\n this.updateVisualContainer()\r\n }\r\n updateContainer() {\r\n var containerProp = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.container;\r\n this._props.container = containerProp;\r\n this._$markupContainer = containerProp ? $(containerProp) : swatch.getSwatchContainer(this._$root);\r\n this.updateVisualContainer(this._props.visualContainer)\r\n }\r\n updateVisualContainer() {\r\n var visualContainer = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.visualContainer;\r\n this._props.visualContainer = visualContainer;\r\n this._$visualContainer = this._getVisualContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$visualContainer) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$visualContainer\r\n })\r\n }\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = isWindow(this.$visualContainer.get(0)) || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n if (!this._props._skipContentPositioning) {\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._initialPosition = resultPosition\r\n }\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _renderBoundaryOffset() {\r\n var _this$_position;\r\n var boundaryOffset = null !== (_this$_position = this._position) && void 0 !== _this$_position ? _this$_position : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getVisualContainer() {\r\n var _this$_props$position, _this$_props$position2;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_this$_props$position = this._props.position) || void 0 === _this$_props$position ? void 0 : _this$_props$position.of) ? this._props.position.of.target : null === (_this$_props$position2 = this._props.position) || void 0 === _this$_props$position2 ? void 0 : _this$_props$position2.of;\r\n if (visualContainerProp) {\r\n return $(visualContainerProp)\r\n }\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (positionOf) {\r\n return $(positionOf)\r\n }\r\n return $(window)\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n return defaultPositionConfig\r\n }\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport fx from \"../../animation/fx\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport errors from \"../../core/errors\";\r\nimport uiErrors from \"../widget/ui.errors\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n move as dragEventMove\r\n} from \"../../events/drag\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../mobile/hide_callback\";\r\nimport {\r\n tabbable\r\n} from \"../widget/selectors\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as zIndexPool from \"./z_index\";\r\nimport {\r\n OverlayPositionController,\r\n OVERLAY_POSITION_ALIASES\r\n} from \"./overlay_position_controller\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n position: extend({}, OVERLAY_POSITION_ALIASES.center),\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n }\r\n }\r\n },\r\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: false,\r\n _ignorePreventScrollEventsDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n innerOverlay: false,\r\n restorePosition: true,\r\n container: void 0,\r\n visualContainer: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n preventScrollEvents: true,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _hideOnParentScrollTarget: void 0,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget: function() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.1\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n if (options) {\r\n if (options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n this._logDeprecatedOptionWarning(\"copyRootClassesToWrapper\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (options.elementAttr && !options._ignoreElementAttrDeprecation) {\r\n this._logDeprecatedOptionWarning(\"elementAttr\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (\"preventScrollEvents\" in options && !options._ignorePreventScrollEventsDeprecation) {\r\n this._logDeprecatedPreventScrollEventsInfo()\r\n }\r\n }\r\n },\r\n _logDeprecatedPreventScrollEventsInfo() {\r\n this._logDeprecatedOptionWarning(\"preventScrollEvents\", {\r\n since: \"23.1\",\r\n message: \"If you enable this option, end-users may experience scrolling issues.\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions();\r\n this._initHideOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"<div>\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"<div>\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._hideOnParentsScrollHandler(e)\r\n }\r\n };\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initInnerOverlayClass: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: function() {\r\n return [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"]\r\n },\r\n _initActions: function() {\r\n this._actions = {};\r\n var actions = this._getActionsList();\r\n each(actions, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initHideOnOutsideClickHandler: function() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && this._shouldHideOnOutsideClick(e)) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _shouldHideOnOutsideClick: function(e) {\r\n var {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay: function() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: function() {\r\n return OVERLAY_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return Overlay.baseZIndex()\r\n },\r\n _toggleViewPortSubscription: function(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler: function() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig: function() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _toggleBodyScroll: noop,\r\n _animateShowing: function() {\r\n var _this$_getAnimationCo, _showAnimation$start, _showAnimation$comple, _this3 = this;\r\n var animation = null !== (_this$_getAnimationCo = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo ? _this$_getAnimationCo : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_showAnimation$start = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _showAnimation$start ? _showAnimation$start : noop;\r\n var completeShowAnimation = null !== (_showAnimation$comple = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _showAnimation$comple ? _showAnimation$comple : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _processShowingHidingCancel: function(cancelArg, applyFunction, cancelFunction) {\r\n if (isPromise(cancelArg)) {\r\n cancelArg.then(shouldCancel => {\r\n if (shouldCancel) {\r\n cancelFunction()\r\n } else {\r\n applyFunction()\r\n }\r\n }).catch(() => applyFunction())\r\n } else {\r\n cancelArg ? cancelFunction() : applyFunction()\r\n }\r\n },\r\n _show: function() {\r\n this._showingDeferred = new Deferred;\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.reject()\r\n } else {\r\n var show = () => {\r\n this._stopAnimation();\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this._toggleVisibility(true);\r\n this._$content.css(\"visibility\", \"hidden\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, false);\r\n this._updateZIndexStackPosition(true);\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n this._processShowingHidingCancel(showingArgs.cancel, () => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n }, () => {\r\n this._toggleVisibility(false);\r\n this._$content.css(\"visibility\", \"\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._isShowingActionCanceled = true;\r\n this._moveFromContainer();\r\n this._toggleBodyScroll(true);\r\n this.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation: function(showHideConfig, direction) {\r\n if (showHideConfig) {\r\n showHideConfig = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, showHideConfig);\r\n if (isObject(showHideConfig[direction])) {\r\n extend(showHideConfig[direction], {\r\n position: this._positionController.position\r\n })\r\n }\r\n }\r\n return showHideConfig\r\n },\r\n _animateHiding: function() {\r\n var _this$_getAnimationCo2, _hideAnimation$start, _hideAnimation$comple, _this4 = this;\r\n var animation = null !== (_this$_getAnimationCo2 = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo2 ? _this$_getAnimationCo2 : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_hideAnimation$start = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _hideAnimation$start ? _hideAnimation$start : noop;\r\n var completeHideAnimation = null !== (_hideAnimation$comple = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _hideAnimation$comple ? _hideAnimation$comple : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _this4$_actions;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_this4$_actions = _this4._actions) || void 0 === _this4$_actions ? void 0 : _this4$_actions.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide: function() {\r\n if (!this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = new Deferred;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._hidingDeferred.reject()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n this._toggleBodyScroll(true);\r\n this._processShowingHidingCancel(hidingArgs.cancel, () => {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }, () => {\r\n this._isHidingActionCanceled = true;\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate: function(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation: function() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility: function(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n if (visible) {\r\n this._checkContainerExists();\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition: function(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = overlayStack.indexOf(this);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading: function(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler: function() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator: function(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds: function() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler: function(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions: function(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback: function(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleHideOnParentsScrollSubscription: function(needSubscribe) {\r\n var _this$_parentsScrollS;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_this$_parentsScrollS = this._parentsScrollSubscriptionInfo) && void 0 !== _this$_parentsScrollS ? _this$_parentsScrollS : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && hideOnScroll) {\r\n var $parents = this._getHideOnParentScrollTarget().parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _hideOnParentsScrollHandler: function(e) {\r\n var hideHandled = false;\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(hideOnScroll)) {\r\n hideHandled = hideOnScroll(e)\r\n }\r\n if (!hideHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _getHideOnParentScrollTarget: function() {\r\n var $hideOnParentScrollTarget = $(this.option(\"_hideOnParentScrollTarget\"));\r\n if ($hideOnParentScrollTarget.length) {\r\n return $hideOnParentScrollTarget\r\n }\r\n return this._$wrapper\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement: function() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent: function() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden: function() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((function() {\r\n var $element = $(this);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n }));\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl: function() {\r\n var whenContentRendered = new Deferred;\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n });\r\n this._toggleWrapperScrollEventsSubscription(this.option(\"preventScrollEvents\"));\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n container: container,\r\n visualContainer: visualContainer,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = this.option();\r\n return {\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _toggleWrapperScrollEventsSubscription: function(enabled) {\r\n var eventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off(this._$wrapper, eventName);\r\n if (enabled) {\r\n eventsEngine.on(this._$wrapper, eventName, {\r\n validate: function() {\r\n return true\r\n },\r\n getDirection: function() {\r\n return \"both\"\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var originalEvent = e.originalEvent.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _moveFromContainer: function() {\r\n this._$content.appendTo(this.$element());\r\n this._$wrapper.detach()\r\n },\r\n _checkContainerExists() {\r\n var $wrapperContainer = this._positionController.$container;\r\n if (void 0 === $wrapperContainer) {\r\n return\r\n }\r\n var containerExists = $wrapperContainer.length > 0;\r\n if (!containerExists) {\r\n uiErrors.log(\"W1021\", this.NAME)\r\n }\r\n },\r\n _moveToContainer: function() {\r\n var $wrapperContainer = this._positionController.$container;\r\n this._$wrapper.appendTo($wrapperContainer);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._stopAnimation();\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered: function() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling: function() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var $visualContainer = this._positionController.$visualContainer;\r\n var documentElement = domAdapter.getDocumentElement();\r\n var isVisualContainerWindow = isWindow($visualContainer.get(0));\r\n var wrapperWidth = isVisualContainerWindow ? documentElement.clientWidth : getOuterWidth($visualContainer);\r\n var wrapperHeight = isVisualContainerWindow ? window.innerHeight : getOuterHeight($visualContainer);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions: function() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents: function() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler: function(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible: function() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry()\r\n },\r\n _clean: function() {\r\n var options = this.option();\r\n if (!this._contentAlreadyRendered && !options.isRenovated) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n this.option(\"visible\") && zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection: function(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n if (this._getActionsList().includes(name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (name) {\r\n case \"animation\":\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n var _this$_animateDeferre;\r\n return null === (_this$_animateDeferre = this._animateDeferred) || void 0 === _this$_animateDeferre ? void 0 : _this$_animateDeferre.resolveWith(this)\r\n }).fail(() => {\r\n var _this$_animateDeferre2;\r\n return null === (_this$_animateDeferre2 = this._animateDeferred) || void 0 === _this$_animateDeferre2 ? void 0 : _this$_animateDeferre2.reject()\r\n });\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visualContainer\":\r\n this._positionController.updateVisualContainer(value);\r\n this._renderWrapper();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n case \"_hideOnParentScrollTarget\":\r\n this._toggleHideOnParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = value;\r\n break;\r\n case \"preventScrollEvents\":\r\n this._logDeprecatedPreventScrollEventsInfo();\r\n this._toggleWrapperScrollEventsSubscription(value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = new Deferred;\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = new Deferred;\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n }).fail(() => {\r\n delete this._animateDeferred;\r\n result.reject()\r\n });\r\n return result.promise()\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint: function() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _onItemTemplateRendered: function(itemTemplate, renderArgs) {\r\n return () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ANIMATION_TIMEOUT = 15;\r\nclass ToolbarBase extends AsyncCollectionWidget {\r\n _getSynchronizableOptionsForCreateComponent() {\r\n return super._getSynchronizableOptionsForCreateComponent().filter(item => \"disabled\" !== item)\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n var {\r\n text: text,\r\n html: html,\r\n widget: widget\r\n } = data;\r\n if (text) {\r\n $container.text(text).wrapInner(\"<div>\")\r\n }\r\n if (html) {\r\n $container.html(html)\r\n }\r\n if (\"dxDropDownButton\" === widget) {\r\n var _data$options;\r\n data.options = null !== (_data$options = data.options) && void 0 !== _data$options ? _data$options : {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n var _data$options2, _data$options$styling;\r\n data.options = null !== (_data$options2 = data.options) && void 0 !== _data$options2 ? _data$options2 : {};\r\n data.options.stylingMode = null !== (_data$options$styling = data.options.stylingMode) && void 0 !== _data$options$styling ? _data$options$styling : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n var _data$options3, _data$options$type;\r\n data.options = null !== (_data$options3 = data.options) && void 0 !== _data$options3 ? _data$options3 : {};\r\n data.options.type = null !== (_data$options$type = data.options.type) && void 0 !== _data$options$type ? _data$options$type : DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n }\r\n _itemContainer() {\r\n return this._$toolbarItemsContainer.find([\".\".concat(TOOLBAR_BEFORE_CLASS), \".\".concat(TOOLBAR_CENTER_CLASS), \".\".concat(TOOLBAR_AFTER_CLASS)].join(\",\"))\r\n }\r\n _itemClass() {\r\n return TOOLBAR_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n }\r\n _dimensionChanged() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n }\r\n _initMarkup() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderItemsAsync();\r\n this._updateDimensionsInMaterial()\r\n }\r\n _postProcessRenderItems() {\r\n this._arrangeItems()\r\n }\r\n _renderToolbar() {\r\n this.$element().addClass(TOOLBAR_CLASS);\r\n this._$toolbarItemsContainer = $(\"<div>\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element());\r\n this.setAria(\"role\", \"toolbar\")\r\n }\r\n _renderSections() {\r\n var $container = this._$toolbarItemsContainer;\r\n each([\"before\", \"center\", \"after\"], (_, section) => {\r\n var sectionClass = \"dx-toolbar-\".concat(section);\r\n var $section = $container.find(\".\".concat(sectionClass));\r\n if (!$section.length) {\r\n this[\"_$\".concat(section, \"Section\")] = $(\"<div>\").addClass(sectionClass).attr(\"role\", \"presentation\").appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(elementWidth) {\r\n var _elementWidth;\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(\".\".concat(TOOLBAR_LABEL_CLASS)).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n }\r\n _alignCenterSection(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n }\r\n _alignSection($section, maxWidth) {\r\n var $labels = $section.find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n }\r\n _alignSectionLabels(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n }\r\n _applyCompactMode() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsSize(\"width\", this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n }\r\n _getCurrentLabelsWidth(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n }\r\n _getCurrentLabelsPaddings(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location, _item$text;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_item$text = item.text) && void 0 !== _item$text ? _item$text : item.html);\r\n var itemElement = super._renderItem(index, item, container, $after);\r\n itemElement.toggleClass(TOOLBAR_BUTTON_CLASS, !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _renderGroupedItems() {\r\n each(this.option(\"items\"), (groupIndex, group) => {\r\n var _group$location;\r\n var groupItems = group.items;\r\n var $container = $(\"<div>\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_group$location = group.location) && void 0 !== _group$location ? _group$location : \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (itemIndex, item) => {\r\n this._renderItem(itemIndex, item, $container, null)\r\n });\r\n this._$toolbarItemsContainer.find(\".dx-toolbar-\".concat(location)).append($container)\r\n })\r\n }\r\n _renderItems(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : super._renderItems(items)\r\n }\r\n _getToolbarItems() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"items\")) && void 0 !== _this$option ? _this$option : []\r\n }\r\n _renderContentImpl() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n }\r\n _renderEmptyMessage() {}\r\n _clean() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty();\r\n delete this._$beforeSection;\r\n delete this._$centerSection;\r\n delete this._$afterSection\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n }\r\n _isVisible() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n }\r\n _getIndexByItem(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n super._itemOptionChanged.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n _dispose() {\r\n super._dispose();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n _updateDimensionsInMaterial() {\r\n if (isMaterial()) {\r\n Promise.all([(() => new Promise(resolve => {\r\n var check = () => {\r\n var readyToResolve = true;\r\n this.$element().parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => check() || runCheck(), ANIMATION_TIMEOUT)\r\n };\r\n runCheck()\r\n }))(), (() => {\r\n var $labels = this.$element().find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n })()]).then(() => {\r\n this._dimensionChanged()\r\n })\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._updateDragResizeContainer()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n super.positionContent()\r\n }\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(true)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_overflow_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar overflowManagerMock = {\r\n setOverflow: noop,\r\n restoreOverflow: noop\r\n};\r\nexport var createBodyOverflowManager = () => {\r\n if (!hasWindow()) {\r\n return overflowManagerMock\r\n }\r\n var window = getWindow();\r\n var documentElement = domAdapter.getDocument().documentElement;\r\n var body = domAdapter.getBody();\r\n var isIosDevice = \"ios\" === devices.real().platform;\r\n var prevSettings = {\r\n overflow: null,\r\n overflowX: null,\r\n overflowY: null,\r\n paddingRight: null,\r\n position: null,\r\n top: null,\r\n left: null\r\n };\r\n var setBodyPaddingRight = () => {\r\n var scrollBarWidth = window.innerWidth - documentElement.clientWidth;\r\n if (prevSettings.paddingRight || scrollBarWidth <= 0) {\r\n return\r\n }\r\n var paddingRight = window.getComputedStyle(body).getPropertyValue(\"padding-right\");\r\n var computedBodyPaddingRight = parseInt(paddingRight, 10);\r\n prevSettings.paddingRight = computedBodyPaddingRight;\r\n body.style.setProperty(\"padding-right\", \"\".concat(computedBodyPaddingRight + scrollBarWidth, \"px\"))\r\n };\r\n var restoreBodyPaddingRight = () => {\r\n if (!isDefined(prevSettings.paddingRight)) {\r\n return\r\n }\r\n if (prevSettings.paddingRight) {\r\n body.style.setProperty(\"padding-right\", \"\".concat(prevSettings.paddingRight, \"px\"))\r\n } else {\r\n body.style.removeProperty(\"padding-right\")\r\n }\r\n prevSettings.paddingRight = null\r\n };\r\n return {\r\n setOverflow: isIosDevice ? () => {\r\n if (isDefined(prevSettings.position) || \"fixed\" === body.style.position) {\r\n return\r\n }\r\n var {\r\n scrollY: scrollY,\r\n scrollX: scrollX\r\n } = window;\r\n prevSettings.position = body.style.position;\r\n prevSettings.top = body.style.top;\r\n prevSettings.left = body.style.left;\r\n body.style.setProperty(\"position\", \"fixed\");\r\n body.style.setProperty(\"top\", \"\".concat(-scrollY, \"px\"));\r\n body.style.setProperty(\"left\", \"\".concat(-scrollX, \"px\"))\r\n } : () => {\r\n setBodyPaddingRight();\r\n if (prevSettings.overflow || \"hidden\" === body.style.overflow) {\r\n return\r\n }\r\n prevSettings.overflow = body.style.overflow;\r\n prevSettings.overflowX = body.style.overflowX;\r\n prevSettings.overflowY = body.style.overflowY;\r\n body.style.setProperty(\"overflow\", \"hidden\")\r\n },\r\n restoreOverflow: isIosDevice ? () => {\r\n if (!isDefined(prevSettings.position)) {\r\n return\r\n }\r\n var scrollY = -parseInt(body.style.top, 10);\r\n var scrollX = -parseInt(body.style.left, 10);\r\n [\"position\", \"top\", \"left\"].forEach(property => {\r\n if (prevSettings[property]) {\r\n body.style.setProperty(property, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(property)\r\n }\r\n });\r\n window.scrollTo(scrollX, scrollY);\r\n prevSettings.position = null\r\n } : () => {\r\n restoreBodyPaddingRight();\r\n [\"overflow\", \"overflowX\", \"overflowY\"].forEach(property => {\r\n if (!isDefined(prevSettings[property])) {\r\n return\r\n }\r\n var propertyInKebabCase = property.replace(/(X)|(Y)/, symbol => \"-\".concat(symbol.toLowerCase()));\r\n if (prevSettings[property]) {\r\n body.style.setProperty(propertyInKebabCase, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(propertyInKebabCase)\r\n }\r\n prevSettings[property] = null\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterialBased,\r\n isMaterial,\r\n isFluent\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nimport {\r\n createBodyOverflowManager\r\n} from \"./popup_overflow_manager\";\r\nimport Guid from \"../../core/guid\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar POPUP_CONTENT_SCROLLABLE_CLASS = \"dx-popup-content-scrollable\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar BUTTON_OUTLINED_MODE = \"outlined\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n enableBodyScroll: true,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n useFlatToolbarButtons: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n var popupWrapperClassExternal = this.option(\"_wrapperClassExternal\");\r\n var popupWrapperClasses = popupWrapperClassExternal ? \"\".concat(POPUP_WRAPPER_CLASS, \" \").concat(popupWrapperClassExternal) : POPUP_WRAPPER_CLASS;\r\n this.callBase();\r\n this._createBodyOverflowManager();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(popupWrapperClasses);\r\n this._$popupContent = this._$content.wrapInner($(\"<div>\").addClass(POPUP_CONTENT_CLASS)).children().eq(0);\r\n this._toggleContentScrollClass();\r\n this.$overlayContent().attr(\"role\", \"dialog\")\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _createBodyOverflowManager: function() {\r\n this._bodyOverflowManager = createBodyOverflowManager()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._observeContentResize(true)\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n if (showTitle && !!title) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: title\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"<div>\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n this._toggleAriaLabel()\r\n },\r\n _toggleAriaLabel() {\r\n var _this$_$title;\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n var shouldSetAriaLabel = showTitle && !!title;\r\n var titleId = shouldSetAriaLabel ? new Guid : null;\r\n null === (_this$_$title = this._$title) || void 0 === _this$_$title ? void 0 : _this$_$title.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0).attr(\"id\", titleId);\r\n this.$overlayContent().attr(\"aria-labelledby\", titleId)\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: this._getToolbarName(),\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _getToolbarName: function() {\r\n return \"dxToolbarBase\"\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n return this.callBase(visible)\r\n },\r\n _hide() {\r\n this._observeContentResize(false);\r\n return this.callBase()\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"<div>\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarButtonStylingMode: function(shortcut) {\r\n if (isFluent()) {\r\n return \"done\" === shortcut ? BUTTON_CONTAINED_MODE : BUTTON_OUTLINED_MODE\r\n }\r\n return this.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n },\r\n _getToolbarButtonType: function(shortcut) {\r\n if (isFluent() && \"done\" === shortcut || this.option(\"useDefaultToolbarButtons\")) {\r\n return BUTTON_DEFAULT_TYPE\r\n }\r\n return BUTTON_NORMAL_TYPE\r\n },\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: this._getToolbarButtonType(itemType),\r\n stylingMode: this._getToolbarButtonStylingMode(itemType)\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"<div>\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"<div>\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _toggleContentScrollClass() {\r\n var isNativeScrollingEnabled = !this.option(\"preventScrollEvents\");\r\n this.$content().toggleClass(POPUP_CONTENT_SCROLLABLE_CLASS, isNativeScrollingEnabled)\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._renderPosition(false)\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._toggleBodyScroll(true)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n _toggleSafariScrolling() {\r\n if (!this.option(\"enableBodyScroll\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _toggleBodyScroll: function(enabled) {\r\n if (!this._bodyOverflowManager) {\r\n return\r\n }\r\n var {\r\n setOverflow: setOverflow,\r\n restoreOverflow: restoreOverflow\r\n } = this._bodyOverflowManager;\r\n if (enabled) {\r\n restoreOverflow()\r\n } else {\r\n setOverflow()\r\n }\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"enableBodyScroll\":\r\n if (this.option(\"visible\")) {\r\n this._toggleBodyScroll(value)\r\n }\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(name, value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = value;\r\n this._toggleFullScreenClass(value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n case \"preventScrollEvents\":\r\n this.callBase(args);\r\n this._toggleContentScrollClass();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n },\r\n getFocusableElements: function() {\r\n return this.$wrapper().find(\"[tabindex]\").filter((index, item) => item.getAttribute(\"tabindex\") >= 0)\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_drag.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/resizable/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getInnerHeight,\r\n getOffset\r\n} from \"../../../core/utils/size\";\r\nexport var borderWidthStyles = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\n\r\nfunction getBorderWidth(el, direction) {\r\n if (!isWindow(el)) {\r\n var borderWidth = el.style[borderWidthStyles[direction]];\r\n return parseInt(borderWidth, 10) || 0\r\n }\r\n return 0\r\n}\r\nvar correctGeometry = function(area, mainEl) {\r\n var el = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\r\n var {\r\n height: height,\r\n offset: offset,\r\n width: width\r\n } = area;\r\n var {\r\n left: left,\r\n top: top\r\n } = offset;\r\n var areaBorderLeft = el ? getBorderWidth(el, \"left\") : 0;\r\n var areaBorderTop = el ? getBorderWidth(el, \"top\") : 0;\r\n return {\r\n width: width - getOuterWidth(mainEl) - getInnerWidth(mainEl),\r\n height: height - getOuterHeight(mainEl) - getInnerHeight(mainEl),\r\n offset: {\r\n left: left + areaBorderLeft + getBorderWidth(mainEl, \"left\"),\r\n top: top + areaBorderTop + getBorderWidth(mainEl, \"top\")\r\n }\r\n }\r\n};\r\nexport var getAreaFromElement = (el, mainEl) => correctGeometry({\r\n width: getInnerWidth(el),\r\n height: getInnerHeight(el),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow(el) ? {} : getOffset(el))\r\n}, mainEl, el);\r\nexport var getAreaFromObject = (_ref, mainEl) => {\r\n var {\r\n bottom: bottom,\r\n left: left,\r\n right: right,\r\n top: top\r\n } = _ref;\r\n return correctGeometry({\r\n width: right - left,\r\n height: bottom - top,\r\n offset: {\r\n left: left,\r\n top: top\r\n }\r\n }, mainEl)\r\n};\r\nexport var getMovingSides = el => {\r\n var {\r\n className: className\r\n } = el;\r\n var hasCornerTopLeftClass = className.includes(\"dx-resizable-handle-corner-top-left\");\r\n var hasCornerTopRightClass = className.includes(\"dx-resizable-handle-corner-top-right\");\r\n var hasCornerBottomLeftClass = className.includes(\"dx-resizable-handle-corner-bottom-left\");\r\n var hasCornerBottomRightClass = className.includes(\"dx-resizable-handle-corner-bottom-right\");\r\n return {\r\n top: className.includes(\"dx-resizable-handle-top\") || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: className.includes(\"dx-resizable-handle-left\") || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: className.includes(\"dx-resizable-handle-bottom\") || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: className.includes(\"dx-resizable-handle-right\") || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n};\r\nexport function getDragOffsets(area, handleEl, areaProp) {\r\n var hWidth = getOuterWidth(handleEl);\r\n var hHeight = getOuterHeight(handleEl);\r\n var hOffset = getOffset(handleEl);\r\n var areaOffset = area.offset;\r\n var isAreaWindow = isWindow(areaProp);\r\n var scrollOffset_scrollX = isAreaWindow ? areaProp.pageXOffset : 0,\r\n scrollOffset_scrollY = isAreaWindow ? areaProp.pageYOffset : 0;\r\n return {\r\n maxLeftOffset: hOffset.left - areaOffset.left - scrollOffset_scrollX,\r\n maxRightOffset: areaOffset.left + area.width - hOffset.left - hWidth + scrollOffset_scrollX,\r\n maxTopOffset: hOffset.top - areaOffset.top - scrollOffset_scrollY,\r\n maxBottomOffset: areaOffset.top + area.height - hOffset.top - hHeight + scrollOffset_scrollY\r\n }\r\n}\r\nexport var filterOffsets = (offset, handleEl) => {\r\n var sides = getMovingSides(handleEl);\r\n var offsetX = !sides.left && !sides.right ? 0 : offset.x;\r\n var offsetY = !sides.top && !sides.bottom ? 0 : offset.y;\r\n return {\r\n x: offsetX,\r\n y: offsetY\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/popover_position_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"shading\", \"target\", \"$arrow\"];\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n pairToObject\r\n} from \"../../core/utils/common\";\r\nimport {\r\n borderWidthStyles\r\n} from \"../../renovation/ui/resizable/utils\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POPOVER_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar POPOVER_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 10,\r\n v: 10\r\n};\r\nclass PopoverPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n shading: shading,\r\n target: target,\r\n $arrow: $arrow\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n shading: shading,\r\n target: target\r\n });\r\n this._$arrow = $arrow;\r\n this._positionSide = void 0;\r\n this.updatePosition(this._props.position)\r\n }\r\n positionWrapper() {\r\n if (this._props.shading) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position)\r\n }\r\n _renderBoundaryOffset() {}\r\n _getContainerPosition() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var {\r\n h: hOffset,\r\n v: vOffset\r\n } = offset;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? getHeight(this._$arrow) : getWidth(this._$arrow);\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n }\r\n _getContentBorderWidth(side) {\r\n var borderWidth = this._$content.css(borderWidthStyles[side]);\r\n return parseInt(borderWidth) || 0\r\n }\r\n _isPopoverInside() {\r\n var my = positionUtils.setup.normalizeAlign(this._position.my);\r\n var at = positionUtils.setup.normalizeAlign(this._position.at);\r\n return my.h === at.h && my.v === at.v\r\n }\r\n _isVerticalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n }\r\n _isHorizontalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n }\r\n _getDisplaySide(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n of: this._props.target,\r\n boundaryOffset: POPOVER_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n var resultPosition;\r\n if (isDefined(positionProp)) {\r\n resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n resultPosition = defaultPositionConfig\r\n }\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, POPOVER_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isMaterialBased,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n} from \"./popover_position_controller\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var {\r\n target: target,\r\n shading: shading,\r\n disabled: disabled,\r\n hideEvent: hideEvent\r\n } = that.option();\r\n var isSelector = isString(target);\r\n var shouldIgnoreHideEvent = shading && \"hide\" === name;\r\n var event = shouldIgnoreHideEvent ? null : getEventName(that, \"\".concat(name, \"Event\"));\r\n if (shouldIgnoreHideEvent && hideEvent) {\r\n errors.log(\"W1020\")\r\n }\r\n if (!event || disabled) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout((function() {\r\n that[name]()\r\n }), delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n target: void 0,\r\n shading: false,\r\n position: extend({}, POPOVER_POSITION_ALIASES.bottom),\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n hideOnParentScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n _fixWrapperPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n useFlatToolbarButtons: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n var _this$option;\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS);\r\n var isInteractive = null === (_this$option = this.option(\"toolbarItems\")) || void 0 === _this$option ? void 0 : _this$option.length;\r\n this.setAria(\"role\", isInteractive ? \"dialog\" : \"tooltip\")\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = $(\"<div>\").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n var shouldUpdateDimensions = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n this.callBase();\r\n this._renderOverlayPosition(shouldUpdateDimensions);\r\n this._actions.onPositioned()\r\n },\r\n _renderOverlayPosition: function(shouldUpdateDimensions) {\r\n this._resetOverlayPosition(shouldUpdateDimensions);\r\n this._updateContentSize(shouldUpdateDimensions);\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function(shouldUpdateDimensions) {\r\n this._setContentHeight(shouldUpdateDimensions);\r\n this._togglePositionClass(\"dx-position-\" + this._positionController._positionSide);\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function(shouldUpdateDimensions) {\r\n if (!this.$content() || !shouldUpdateDimensions) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = getWidth(this.$overlayContent()) - containerLocation.h.oversize;\r\n setWidth(this.$overlayContent(), newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = getHeight(this.$overlayContent()) - containerLocation.v.oversize;\r\n var newPopupContentHeight = getHeight(this.$content()) - containerLocation.v.oversize;\r\n setHeight(this.$overlayContent(), newOverlayContentHeight);\r\n setHeight(this.$content(), newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n return this._positionController._getContainerPosition()\r\n },\r\n _getHideOnParentScrollTarget: function() {\r\n return $(this._positionController._position.of || this.callBase())\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionController._positionSide] : this._positionController._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._positionController._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetElement = $target.get(0);\r\n var targetSize = targetElement && !targetElement.preventDefault ? getBoundingRect(targetElement)[sizeProperty] : 0;\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._positionController._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n return this._positionController._isPopoverInside()\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n shading: shading,\r\n target: target\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n target: target,\r\n shading: shading,\r\n $arrow: this._$arrow\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopoverPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _isVerticalSide: function(side) {\r\n return this._positionController._isVerticalSide(side)\r\n },\r\n _isHorizontalSide: function(side) {\r\n return this._positionController._isHorizontalSide(side)\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this._positionController.updateTarget(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/action_sheet.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Button from \"./button\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport Popover from \"./popover/ui.popover\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar ACTION_SHEET_CLASS = \"dx-actionsheet\";\r\nvar ACTION_SHEET_CONTAINER_CLASS = \"dx-actionsheet-container\";\r\nvar ACTION_SHEET_POPUP_WRAPPER_CLASS = \"dx-actionsheet-popup-wrapper\";\r\nvar ACTION_SHEET_POPOVER_WRAPPER_CLASS = \"dx-actionsheet-popover-wrapper\";\r\nvar ACTION_SHEET_CANCEL_BUTTON_CLASS = \"dx-actionsheet-cancel\";\r\nvar ACTION_SHEET_ITEM_CLASS = \"dx-actionsheet-item\";\r\nvar ACTION_SHEET_ITEM_DATA_KEY = \"dxActionSheetItemData\";\r\nvar ACTION_SHEET_WITHOUT_TITLE_CLASS = \"dx-actionsheet-without-title\";\r\nvar ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE = \"outlined\";\r\nvar ActionSheet = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n usePopover: false,\r\n target: null,\r\n title: \"\",\r\n showTitle: true,\r\n showCancelButton: true,\r\n cancelText: messageLocalization.format(\"Cancel\"),\r\n onCancelClick: null,\r\n visible: false,\r\n noDataText: \"\",\r\n focusStateEnabled: false,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\",\r\n tablet: true\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }])\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate((function($container, data) {\r\n var button = new Button($(\"<div>\"), extend({\r\n onClick: data && data.click,\r\n stylingMode: data && data.stylingMode || ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE\r\n }, data));\r\n $container.append(button.$element())\r\n }), [\"disabled\", \"icon\", \"text\", \"type\", \"onClick\", \"click\", \"stylingMode\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemClass: function() {\r\n return ACTION_SHEET_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ACTION_SHEET_ITEM_DATA_KEY\r\n },\r\n _toggleVisibility: noop,\r\n _renderDimensions: noop,\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(ACTION_SHEET_CLASS);\r\n this._createItemContainer()\r\n },\r\n _render: function() {\r\n this._renderPopup()\r\n },\r\n _createItemContainer: function() {\r\n this._$itemContainer = $(\"<div>\").addClass(ACTION_SHEET_CONTAINER_CLASS);\r\n this._renderDisabled()\r\n },\r\n _renderDisabled: function() {\r\n this._$itemContainer.toggleClass(\"dx-state-disabled\", this.option(\"disabled\"))\r\n },\r\n _renderPopup: function() {\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n this._isPopoverMode() ? this._createPopover() : this._createPopup();\r\n this._renderPopupTitle();\r\n this._mapPopupOption(\"visible\")\r\n },\r\n _mapPopupOption: function(optionName) {\r\n this._popup && this._popup.option(optionName, this.option(optionName))\r\n },\r\n _isPopoverMode: function() {\r\n return this.option(\"usePopover\") && this.option(\"target\")\r\n },\r\n _renderPopupTitle: function() {\r\n this._mapPopupOption(\"showTitle\");\r\n this._popup && this._popup.$wrapper().toggleClass(ACTION_SHEET_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"))\r\n },\r\n _clean: function() {\r\n if (this._$popup) {\r\n this._$popup.remove()\r\n }\r\n this.callBase()\r\n },\r\n _overlayConfig: function() {\r\n return {\r\n onInitialized: function(args) {\r\n this._popup = args.component\r\n }.bind(this),\r\n disabled: false,\r\n showTitle: true,\r\n title: this.option(\"title\"),\r\n deferRendering: !window.angular,\r\n onContentReady: this._popupContentReadyAction.bind(this),\r\n onHidden: this.hide.bind(this)\r\n }\r\n },\r\n _createPopover: function() {\r\n this._createComponent(this._$popup, Popover, extend(this._overlayConfig(), {\r\n width: this.option(\"width\") || 200,\r\n height: this.option(\"height\") || \"auto\",\r\n target: this.option(\"target\")\r\n }));\r\n this._popup.$overlayContent().attr(\"role\", \"dialog\");\r\n this._popup.$wrapper().addClass(ACTION_SHEET_POPOVER_WRAPPER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this._createComponent(this._$popup, Popup, extend(this._overlayConfig(), {\r\n dragEnabled: false,\r\n width: this.option(\"width\") || \"100%\",\r\n height: this.option(\"height\") || \"auto\",\r\n showCloseButton: false,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }));\r\n this._popup.$wrapper().addClass(ACTION_SHEET_POPUP_WRAPPER_CLASS)\r\n },\r\n _popupContentReadyAction: function() {\r\n this._popup.$content().append(this._$itemContainer);\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._prepareContent();\r\n this._renderContent();\r\n this._renderCancelButton()\r\n },\r\n _renderCancelButton: function() {\r\n if (this._isPopoverMode()) {\r\n return\r\n }\r\n if (this._$cancelButton) {\r\n this._$cancelButton.remove()\r\n }\r\n if (this.option(\"showCancelButton\")) {\r\n var cancelClickAction = this._createActionByOption(\"onCancelClick\") || noop;\r\n var that = this;\r\n this._$cancelButton = $(\"<div>\").addClass(ACTION_SHEET_CANCEL_BUTTON_CLASS).appendTo(this._popup && this._popup.$content());\r\n this._createComponent(this._$cancelButton, Button, {\r\n disabled: false,\r\n stylingMode: ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE,\r\n text: this.option(\"cancelText\"),\r\n onClick: function(e) {\r\n var hidingArgs = {\r\n event: e,\r\n cancel: false\r\n };\r\n cancelClickAction(hidingArgs);\r\n if (!hidingArgs.cancel) {\r\n that.hide()\r\n }\r\n },\r\n integrationOptions: {}\r\n })\r\n }\r\n },\r\n _attachItemClickEvent: noop,\r\n _itemClickHandler: function(e) {\r\n this.callBase(e);\r\n if (!$(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _itemHoldHandler: function(e) {\r\n this.callBase(e);\r\n if (!$(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n case \"visible\":\r\n case \"title\":\r\n this._mapPopupOption(args.name);\r\n break;\r\n case \"disabled\":\r\n this._renderDisabled();\r\n break;\r\n case \"showTitle\":\r\n this._renderPopupTitle();\r\n break;\r\n case \"showCancelButton\":\r\n case \"onCancelClick\":\r\n case \"cancelText\":\r\n this._renderCancelButton();\r\n break;\r\n case \"target\":\r\n case \"usePopover\":\r\n case \"items\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n var that = this;\r\n var d = new Deferred;\r\n that._popup.toggle(showing).done((function() {\r\n that.option(\"visible\", showing);\r\n d.resolveWith(that)\r\n }));\r\n return d.promise()\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n }\r\n});\r\nregisterComponent(\"dxActionSheet\", ActionSheet);\r\nexport default ActionSheet;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxActionSheet from 'devextreme/ui/action_sheet';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxActionSheet]\r\n\r\n */\r\nclass DxActionSheetComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'cancelClick', emit: 'onCancelClick' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'cancelTextChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showCancelButtonChange' },\r\n { emit: 'showTitleChange' },\r\n { emit: 'targetChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'usePopoverChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.cancelText]\r\n \r\n */\r\n get cancelText() {\r\n return this._getOption('cancelText');\r\n }\r\n set cancelText(value) {\r\n this._setOption('cancelText', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.showCancelButton]\r\n \r\n */\r\n get showCancelButton() {\r\n return this._getOption('showCancelButton');\r\n }\r\n set showCancelButton(value) {\r\n this._setOption('showCancelButton', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.showTitle]\r\n \r\n */\r\n get showTitle() {\r\n return this._getOption('showTitle');\r\n }\r\n set showTitle(value) {\r\n this._setOption('showTitle', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.target]\r\n \r\n */\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.usePopover]\r\n \r\n */\r\n get usePopover() {\r\n return this._getOption('usePopover');\r\n }\r\n set usePopover(value) {\r\n this._setOption('usePopover', value);\r\n }\r\n /**\r\n * [descr:dxActionSheetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxActionSheet(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxActionSheetComponent.ɵfac = function DxActionSheetComponent_Factory(t) { return new (t || DxActionSheetComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxActionSheetComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxActionSheetComponent, selectors: [[\"dx-action-sheet\"]], contentQueries: function DxActionSheetComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { cancelText: \"cancelText\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", rtlEnabled: \"rtlEnabled\", showCancelButton: \"showCancelButton\", showTitle: \"showTitle\", target: \"target\", title: \"title\", usePopover: \"usePopover\", visible: \"visible\", width: \"width\" }, outputs: { onCancelClick: \"onCancelClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", cancelTextChange: \"cancelTextChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", rtlEnabledChange: \"rtlEnabledChange\", showCancelButtonChange: \"showCancelButtonChange\", showTitleChange: \"showTitleChange\", targetChange: \"targetChange\", titleChange: \"titleChange\", usePopoverChange: \"usePopoverChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxActionSheetComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxActionSheetComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-action-sheet',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { cancelText: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showCancelButton: [{\r\n type: Input\r\n }], showTitle: [{\r\n type: Input\r\n }], target: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], usePopover: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onCancelClick: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], cancelTextChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showCancelButtonChange: [{\r\n type: Output\r\n }], showTitleChange: [{\r\n type: Output\r\n }], targetChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], usePopoverChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxActionSheetModule {\r\n}\r\n/** @nocollapse */ DxActionSheetModule.ɵfac = function DxActionSheetModule_Factory(t) { return new (t || DxActionSheetModule)(); };\r\n/** @nocollapse */ DxActionSheetModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxActionSheetModule });\r\n/** @nocollapse */ DxActionSheetModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxActionSheetModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxActionSheetComponent\r\n ],\r\n exports: [\r\n DxActionSheetComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxActionSheetModule, { declarations: [DxActionSheetComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxActionSheetComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxActionSheetComponent, DxActionSheetModule };\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"<div>\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport Button from \"../button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n var _editor$_shouldCallOp;\r\n if (null !== (_editor$_shouldCallOp = editor._shouldCallOpenHandler) && void 0 !== _editor$_shouldCallOp && _editor$_shouldCallOp.call(editor)) {\r\n editor._openHandler(e);\r\n return\r\n }!editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").removeClass(\"dx-button-mode-contained\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n preventScrollEvents: false,\r\n positionSide: \"top\",\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget: function() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"<br />\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _getPositionsArray: function(positionSide, rtlSide) {\r\n switch (positionSide) {\r\n case \"top\":\r\n return [\"\".concat(rtlSide, \" bottom\"), \"\".concat(rtlSide, \" top\")];\r\n case \"left\":\r\n return [\"right\", \"left\"];\r\n case \"right\":\r\n return [\"left\", \"right\"];\r\n default:\r\n return [\"\".concat(rtlSide, \" top\"), \"\".concat(rtlSide, \" bottom\")]\r\n }\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionSide: positionSide,\r\n rtlEnabled: rtlEnabled,\r\n offset: componentOffset,\r\n boundary: boundary\r\n } = this.option();\r\n var rtlSide = getDefaultAlignment(rtlEnabled);\r\n var positions = this._getPositionsArray(positionSide, rtlSide);\r\n var offset = _extends({}, componentOffset);\r\n this.$element().addClass(\"dx-invalid-message-\".concat(positionSide));\r\n if (rtlEnabled && \"left\" !== positionSide && \"right\" !== positionSide) {\r\n offset.h = -offset.h\r\n }\r\n if (\"top\" === positionSide) {\r\n offset.v = -offset.v\r\n }\r\n if (\"left\" === positionSide) {\r\n offset.h = -offset.h\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positions[0],\r\n at: positions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this._updatePositionByTarget();\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionSide\":\r\n this.$element().removeClass(\"dx-invalid-message-\".concat(previousValue));\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessagePosition: \"positionSide\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this._initialValue = this.option(\"value\");\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {},\r\n _showValidationMessage: true,\r\n isDirty: false\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow() || false === this.option(\"_showValidationMessage\")) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"<div>\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionSide: this._getValidationMessagePosition(),\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessagePosition: function() {\r\n return this.option(\"validationMessagePosition\")\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.option(\"isDirty\", this._initialValue !== args.value);\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessagePosition\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n case \"_showValidationMessage\":\r\n case \"isDirty\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetToInitialValue: function() {\r\n this.option(\"value\", this._initialValue)\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n clear: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n },\r\n reset: function() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this._resetToInitialValue();\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"<span>\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"<span>\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"<div>\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nvar navigator = getNavigator();\r\nimport {\r\n animation\r\n} from \"../core/utils/support\";\r\nimport {\r\n current,\r\n isGeneric,\r\n isMaterialBased\r\n} from \"./themes\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Widget from \"./widget/ui.widget\";\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: function() {\r\n return isGeneric(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = $(\"<div>\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n var {\r\n viaImage: viaImage,\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (animation() && !viaImage && !indicatorSrc) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation: function() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"<div>\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = $(\"<div>\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"<div>\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage: function() {\r\n var {\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (indicatorSrc) {\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n this._$wrapper.css(\"backgroundImage\", \"url(\" + indicatorSrc + \")\")\r\n } else if (animation()) {\r\n this._renderMarkupForAnimation()\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = getWidth(this.$element());\r\n height = getHeight(this.$element());\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n start as hoverStart\r\n} from \"../../events/hover\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_LABEL_OUTSIDE_CLASS = \"dx-texteditor-label-outside\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(props) {\r\n this.NAME = \"dxLabel\";\r\n this._props = props;\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"<div>\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"<span>\");\r\n this._$label = $(\"<div>\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"<div>\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"<div>\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach();\r\n this._attachEvents()\r\n }\r\n _attachEvents() {\r\n var clickEventName = addNamespace(click, this.NAME);\r\n var hoverStartEventName = addNamespace(hoverStart, this.NAME);\r\n var activeEventName = addNamespace(active, this.NAME);\r\n eventsEngine.off(this._$labelSpan, clickEventName);\r\n eventsEngine.off(this._$labelSpan, hoverStartEventName);\r\n eventsEngine.off(this._$labelSpan, activeEventName);\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n eventsEngine.on(this._$labelSpan, clickEventName, e => {\r\n var selectedText = getWindow().getSelection().toString();\r\n if (\"\" === selectedText) {\r\n this._props.onClickHandler();\r\n e.preventDefault()\r\n }\r\n });\r\n eventsEngine.on(this._$labelSpan, hoverStartEventName, e => {\r\n this._props.onHoverHandler(e)\r\n });\r\n eventsEngine.on(this._$labelSpan, activeEventName, e => {\r\n this._props.onActiveHandler(e)\r\n })\r\n }\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass);\r\n if (this._isOutsideMode()) {\r\n this._props.$editor.addClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS)\r\n }\r\n }\r\n }\r\n _isOutsideMode() {\r\n return \"outside\" === this._props.mode\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n if (this._isVisible()) {\r\n var _this$_props$beforeWi;\r\n var width = null !== (_this$_props$beforeWi = this._props.beforeWidth) && void 0 !== _this$_props$beforeWi ? _this$_props$beforeWi : this._props.getBeforeWidth();\r\n this._$before.css({\r\n width: width\r\n });\r\n this._updateLabelTransform()\r\n }\r\n }\r\n _updateLabelTransform() {\r\n var offset = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n this._$labelSpan.css(\"transform\", \"\");\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n var sign = this._props.rtlEnabled ? 1 : -1;\r\n var labelTranslateX = sign * (getWidth(this._$before) + offset);\r\n this._$labelSpan.css(\"transform\", \"translateX(\".concat(labelTranslateX, \"px)\"))\r\n }\r\n }\r\n _updateMaxWidth() {\r\n if (this._isVisible() && !this._isOutsideMode()) {\r\n var _this$_props$containe;\r\n var maxWidth = null !== (_this$_props$containe = this._props.containerWidth) && void 0 !== _this$_props$containe ? _this$_props$containe : this._props.getContainerWidth();\r\n this._$label.css({\r\n maxWidth: maxWidth\r\n })\r\n }\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isFluent\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n labelMode: \"floating\",\r\n stylingMode: config().editorStylingMode || \"filled\"\r\n }\r\n }, {\r\n device: function() {\r\n var themeName = current();\r\n return isFluent(themeName)\r\n },\r\n options: {\r\n labelMode: \"outside\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"<div>\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"<div>\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"<div>\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n this._toggleValidMark()\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"<input>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS);\r\n this._setInputMinHeight($input)\r\n },\r\n _setInputMinHeight: function($input) {\r\n $input.css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getPlaceholderAttr() {\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n var {\r\n placeholder: placeholder\r\n } = this.option();\r\n var value = placeholder || (ios || mac ? \" \" : null);\r\n return value\r\n },\r\n _getDefaultAttributes() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\",\r\n placeholder: this._getPlaceholderAttr()\r\n };\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _getFieldElement() {\r\n return this._getLabelContainer()\r\n },\r\n _setFieldAria(force) {\r\n var {\r\n \"aria-label\": ariaLabel\r\n } = this.option(\"inputAttr\");\r\n var labelId = this._label.getId();\r\n var value = ariaLabel ? void 0 : labelId;\r\n if (value || force) {\r\n var aria = {\r\n labelledby: value,\r\n label: ariaLabel\r\n };\r\n this.setAria(aria, this._getFieldElement())\r\n }\r\n },\r\n _renderLabel: function() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var labelConfig = {\r\n onClickHandler: () => {\r\n this.focus()\r\n },\r\n onHoverHandler: e => {\r\n e.stopPropagation()\r\n },\r\n onActiveHandler: e => {\r\n e.stopPropagation()\r\n },\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n rtlEnabled: rtlEnabled,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n getContainerWidth: () => this._getLabelContainerWidth(),\r\n getBeforeWidth: () => this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setFieldAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholder = this.option(\"placeholder\");\r\n var placeholderAttributes = {\r\n id: placeholder ? \"dx-\".concat(new Guid) : void 0,\r\n \"data-dx_placeholder\": placeholder\r\n };\r\n var $placeholder = this._$placeholder = $(\"<div>\").attr(placeholderAttributes);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.clear()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"valueChangeEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(this._getValueChangeEventOptionName()), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n this._setFieldAria(true);\r\n this._input().attr({\r\n placeholder: this._getPlaceholderAttr()\r\n });\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setFieldAria(true);\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n this._setFieldAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n clear: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n _resetToInitialValue() {\r\n if (this.option(\"value\") === this._initialValue) {\r\n this._options.silent(\"text\", this._initialValue);\r\n this._renderValue()\r\n } else {\r\n this.callBase()\r\n }\r\n this._disposePendingIndicator();\r\n this._showValidMark = false;\r\n this._toggleValidMark()\r\n },\r\n _toggleValidMark() {\r\n this.$element().toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n reset: function() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this.callBase(value)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nvar DELETE_INPUT_TYPES = [\"deleteContentBackward\", \"deleteSoftLineBackward\", \"deleteContent\", \"deleteHardLineBackward\"];\r\nvar HISTORY_INPUT_TYPES = [\"historyUndo\", \"historyRedo\"];\r\nvar EVENT_NAMES = [\"focusIn\", \"focusOut\", \"input\", \"paste\", \"cut\", \"drop\", \"beforeInput\"];\r\n\r\nfunction getEmptyString(length) {\r\n return EMPTY_CHAR.repeat(length)\r\n}\r\nexport default class MaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor\r\n }\r\n _editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n _editorInput() {\r\n return this.editor._input()\r\n }\r\n _editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n _attachChangeEventHandler() {\r\n if (!this._editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n var $input = this._editorInput();\r\n var namespace = addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, e => {\r\n this.editor._changeHandler(e)\r\n })\r\n }\r\n _beforeInputHandler() {\r\n this._previousText = this._editorOption(\"text\");\r\n this._prevCaret = this._editorCaret()\r\n }\r\n _inputHandler(event) {\r\n var {\r\n originalEvent: originalEvent\r\n } = event;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType\r\n } = originalEvent;\r\n if (HISTORY_INPUT_TYPES.includes(inputType)) {\r\n this._handleHistoryInputEvent()\r\n } else if (DELETE_INPUT_TYPES.includes(inputType)) {\r\n this._handleBackwardDeleteInputEvent()\r\n } else {\r\n var currentCaret = this._editorCaret();\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._clearSelectedText();\r\n this._autoFillHandler(originalEvent);\r\n this._editorCaret(currentCaret);\r\n this._handleInsertTextInputEvent(originalEvent.data)\r\n }\r\n if (this._editorOption(\"text\") === this._previousText) {\r\n event.stopImmediatePropagation()\r\n }\r\n }\r\n _handleHistoryInputEvent() {\r\n var caret = this._editorCaret();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: caret.end - caret.start,\r\n text: \"\"\r\n });\r\n this._editorCaret(this._prevCaret)\r\n }\r\n _handleBackwardDeleteInputEvent() {\r\n this._clearSelectedText();\r\n var caret = this._editorCaret();\r\n this.editor.setForwardDirection();\r\n this.editor._adjustCaret();\r\n var adjustedForwardCaret = this._editorCaret();\r\n if (adjustedForwardCaret.start !== caret.start) {\r\n this.editor.setBackwardDirection();\r\n this.editor._adjustCaret()\r\n }\r\n }\r\n _clearSelectedText() {\r\n var _this$_prevCaret, _this$_prevCaret2;\r\n var length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start) || 1;\r\n var caret = this._editorCaret();\r\n if (!this._isAutoFill()) {\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: length,\r\n text: getEmptyString(length)\r\n })\r\n }\r\n }\r\n _handleInsertTextInputEvent(data) {\r\n var _this$_prevCaret$star, _this$_prevCaret3;\r\n var text = null !== data && void 0 !== data ? data : \"\";\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null !== (_this$_prevCaret$star = null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start) && void 0 !== _this$_prevCaret$star ? _this$_prevCaret$star : 0,\r\n length: text.length || 1,\r\n text: text\r\n });\r\n if (!hasValidChars) {\r\n this._editorCaret(this._prevCaret)\r\n }\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var processedCharsCount = this.editor._handleChain(args);\r\n this.editor._displayMask();\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this._editorCaret();\r\n var correction = processedCharsCount - textLength;\r\n var hasSkippedStub = processedCharsCount > 1;\r\n if (hasSkippedStub && 1 === textLength) {\r\n this._editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor._adjustCaret()\r\n }\r\n return !!processedCharsCount\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor.setForwardDirection();\r\n if (!this.editor._isValueEmpty() && this._editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(() => {\r\n this._editorCaret({\r\n start: caret,\r\n end: caret\r\n })\r\n }, 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this._editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this._editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => {\r\n if (!editor._hasSelection()) {\r\n editor._handleKey(EMPTY_CHAR)\r\n }\r\n })\r\n }\r\n _cutHandler(event) {\r\n var caret = this._editorCaret();\r\n var selectedText = this._editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(() => {\r\n var value = this.editor._convertToValue(this._editorInput().val());\r\n this._editorOption(\"value\", value)\r\n })\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n if (this._editorOption(\"disabled\")) {\r\n return\r\n }\r\n var caret = this._editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this._editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n if (this._isAutoFill()) {\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this._editorInput();\r\n if (browser.webkit) {\r\n var _input$matches;\r\n var input = $input.get(0);\r\n return null !== (_input$matches = null === input || void 0 === input ? void 0 : input.matches(\":-webkit-autofill\")) && void 0 !== _input$matches ? _input$matches : false\r\n }\r\n return false\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n getHandler(handlerName) {\r\n return args => {\r\n var _this;\r\n null === (_this = this[\"_\".concat(handlerName, \"Handler\")]) || void 0 === _this ? void 0 : _this.call(this, args)\r\n }\r\n }\r\n attachEvents() {\r\n var $input = this._editorInput();\r\n EVENT_NAMES.forEach(eventName => {\r\n var namespace = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, this.getHandler(eventName))\r\n });\r\n this._attachChangeEventHandler()\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this._editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport MaskStrategy from \"./ui.text_editor.mask.strategy\";\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar DROP_EVENT_NAME = \"drop\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = new MaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _useMaskBehavior() {\r\n return Boolean(this.option(\"mask\"))\r\n },\r\n _attachDropEventHandler() {\r\n var useMaskBehavior = this._useMaskBehavior();\r\n if (!useMaskBehavior) {\r\n return\r\n }\r\n var eventName = addNamespace(DROP_EVENT_NAME, this.NAME);\r\n var input = this._input();\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, e => e.preventDefault())\r\n },\r\n _render() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachDropEventHandler();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\") || \" \"\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._updateMaskInfo();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _updateMaskInfo() {\r\n this._textValue = this._maskRulesChain.text();\r\n this._value = this._maskRulesChain.value()\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n clear: function() {\r\n var {\r\n value: defaultValue\r\n } = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultValue) {\r\n this._renderMaskedValue()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"<div>\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport DropDownButton from \"./ui.drop_down_button\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./utils\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (!this._popup.getFocusableElements().length) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n },\r\n escape: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false,\r\n validationMessagePosition: \"auto\"\r\n })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n var isGeneric = \"generic\" === _device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER).first()\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions: function() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner($(\"<div>\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _renderTemplatedField: function(fieldTemplate, data) {\r\n var isFocused = focused(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = $(\"<div>\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n var isRenderedInRoot = !!this.$element().find($templateWrapper).length;\r\n if (!isRenderedInRoot) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n });\r\n this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler: function() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler: function() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = this._isTargetOutOfComponent(newTarget);\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _isTargetOutOfComponent: function(newTarget) {\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY)) : this._$popup;\r\n var isTargetOutsidePopup = 0 === $(newTarget).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY), popupWrapper).length;\r\n return isTargetOutsidePopup\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : e => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition: function() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _getControlsAria() {\r\n return this._popup && this._popupContentId\r\n },\r\n _renderOpenedState: function() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n var arias = {\r\n expanded: opened,\r\n controls: this._getControlsAria()\r\n };\r\n this.setAria(arias);\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup: function() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n delete popupConfig.closeOnOutsideClick;\r\n if (popupConfig.elementAttr && !Object.keys(popupConfig.elementAttr).length) {\r\n delete popupConfig.elementAttr\r\n }\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._attachPopupKeyHandler();\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _attachPopupKeyHandler() {\r\n eventsEngine.on(this._popup.$overlayContent(), addNamespace(\"keydown\", this.NAME), e => this._popupKeyHandler(e))\r\n },\r\n _popupKeyHandler(e) {\r\n switch (normalizeKeyName(e)) {\r\n case \"tab\":\r\n this._popupTabHandler(e);\r\n break;\r\n case \"escape\":\r\n this._popupEscHandler(e)\r\n }\r\n },\r\n _popupTabHandler(e) {\r\n var $target = $(e.target);\r\n var moveBackward = e.shiftKey && $target.is(this._getFirstPopupElement());\r\n var moveForward = !e.shiftKey && $target.is(this._getLastPopupElement());\r\n if (moveForward || moveBackward) {\r\n eventsEngine.trigger(this.field(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupEscHandler() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig: function() {\r\n return {\r\n onInitialized: this._getPopupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null,\r\n _hideOnParentScrollTarget: this.$element(),\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY,\r\n _ignorePreventScrollEventsDeprecation: true\r\n }\r\n },\r\n _popupInitializedHandler: noop,\r\n _getPopupInitializedHandler: function() {\r\n var onPopupInitialized = this.option(\"onPopupInitialized\");\r\n return e => {\r\n this._popupInitializedHandler(e);\r\n if (onPopupInitialized) {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (hasWindow() && !this.$element().is(\":visible\")) {\r\n this.close();\r\n return\r\n }\r\n this._updatePopupWidth()\r\n },\r\n _updatePopupWidth: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler: function(e) {\r\n var _e$position, _e$position$v;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (!this._popup) {\r\n return\r\n }\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_e$position = e.position) || void 0 === _e$position ? void 0 : null === (_e$position$v = _e$position.v) || void 0 === _e$position$v ? void 0 : _e$position$v.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outside\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _getValidationMessagePositionSide: function() {\r\n var validationMessagePosition = this.option(\"validationMessagePosition\");\r\n if (\"auto\" !== validationMessagePosition) {\r\n return validationMessagePosition\r\n }\r\n var positionSide = \"bottom\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionSide = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"bottom\" : \"top\"\r\n }\r\n return positionSide\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean: function() {\r\n delete this._openOnFieldClickAction;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return $(this._popup.getFocusableElements()).first()\r\n },\r\n _getLastPopupElement: function() {\r\n return $(this._popup.getFocusableElements()).last()\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\")\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\")\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (function(_, element) {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n }))\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n if (isDefined(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return getPublicElement(this._input())\r\n },\r\n content: function() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }));\r\n if (index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n }));\r\n if (-1 !== index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataController = this._collectionWidget._dataController;\r\n var group = dataController.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (function(_, key) {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), (function() {\r\n return \"menu\"\r\n}), (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var _registry$type;\r\n var foundDecorator = null === (_registry$type = registry[type]) || void 0 === _registry$type ? void 0 : _registry$type[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = $(\"<div>\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"<div>\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n if (false !== e.cancelable) {\r\n e.preventDefault()\r\n }\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"<div>\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallback from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferRenderer\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup: function() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb: function() {\r\n this._$thumb = $(\"<div>\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"<div>\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb: function($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode: function() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection: function() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\" + direction);\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler: function() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn: function() {\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff: function() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter: function() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave: function() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions: function() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility: function(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility: function(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo: function(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if (isPlainObject(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n move(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition: function(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update: function() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden: function() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar: function() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio: function() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize: function(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\" + SCROLLBAR)\r\n },\r\n _optionChanged: function(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: deferRenderer((function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n }))\r\n});\r\nreadyCallback.add((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), (function() {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n }))\r\n}));\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport Class from \"../../core/class\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$content = scrollable.$content();\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable);\r\n this._isRtlNativeStrategy = scrollable._isRtlNativeStrategy.bind(scrollable)\r\n },\r\n render: function() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(SCROLLABLE_NATIVE_CLASS + \"-\" + deviceType).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._isScrollbarVisible());\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateRtlPosition: function(isFirstRender) {\r\n if (isFirstRender && this.option(\"rtlEnabled\")) {\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._moveScrollbars()\r\n }\r\n }\r\n },\r\n _renderScrollbars: function() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar: function(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"<div>\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: noop,\r\n handleStart: noop,\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: noop,\r\n handleCancel: noop,\r\n handleStop: noop,\r\n _eachScrollbar: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (function(direction, scrollbar) {\r\n callback(scrollbar, direction)\r\n }))\r\n },\r\n createActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n left: left,\r\n top: top\r\n } = this.location();\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isRtlNativeStrategy() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isRtlNativeStrategy() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? Math.round(top) >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.round(Math.abs(top) - this._getMaxOffset().top) >= 0 : void 0\r\n }\r\n },\r\n _getScrollOffset: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this.location();\r\n return {\r\n top: -top,\r\n left: this._normalizeOffsetLeft(-left)\r\n }\r\n },\r\n _normalizeOffsetLeft(scrollLeft) {\r\n if (this._isRtlNativeStrategy()) {\r\n return this._getMaxOffset().left + scrollLeft\r\n }\r\n return scrollLeft\r\n },\r\n _isReachedLeft: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible: function() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll: function(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.moveTo({\r\n top: -top,\r\n left: -left\r\n });\r\n scrollbar.option(\"visible\", true)\r\n }));\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars: function() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.option(\"visible\", false)\r\n }))\r\n }.bind(this), HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location: function() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: -this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: noop,\r\n update: function() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update: function() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions: function() {\r\n this._containerSize = {\r\n height: getHeight(this._$container),\r\n width: getWidth(this._$container)\r\n };\r\n this._componentContentSize = {\r\n height: getHeight(this._component.$content()),\r\n width: getWidth(this._component.$content())\r\n };\r\n this._contentSize = {\r\n height: getHeight(this._$content),\r\n width: getWidth(this._$content)\r\n }\r\n },\r\n _updateScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose: function() {\r\n var className = this._$element.get(0).className;\r\n var scrollableNativeRegexp = new RegExp(SCROLLABLE_NATIVE_CLASS + \"\\\\S*\", \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n eventsEngine.off(this._$element, \".\" + SCROLLABLE_NATIVE);\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE_NATIVE);\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.$element().remove()\r\n }))\r\n },\r\n scrollBy: function(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate: function(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (isDxMouseWheelEvent(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n return result\r\n },\r\n getDirection: function() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n this._$icon = $(\"<div>\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nvar Animator = Class.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n titleize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport Class from \"../../core/class\";\r\nimport Animator from \"./animator\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n addNamespace as addEventNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferUpdate,\r\n deferUpdater,\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = SCROLLABLE_SIMULATED + \"Cursor\";\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = SCROLLABLE_SIMULATED + \"Keyboard\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - Math.pow(ACCELERATION, BOUNCE_FRAMES)) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = Animator.inherit({\r\n ctor: function(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step: function() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration: function() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._scrollComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: function() {\r\n return ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nexport var Scroller = Class.inherit({\r\n ctor: function(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions: function(options) {\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n each(options, (optionName, optionValue) => {\r\n this[\"_\" + optionName] = optionValue\r\n })\r\n },\r\n _initAnimators: function() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar: function() {\r\n this._scrollbar = new Scrollbar($(\"<div>\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: function(mode) {\r\n return true === mode ? \"onScroll\" : false === mode ? \"never\" : mode\r\n },\r\n _scrollStep: function(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n eventsEngine.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce: function() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move: function(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent: function() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio: function() {\r\n if (hasWindow() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: function(element, dimension) {\r\n return Math.round(getBoundingRect(element)[dimension])\r\n },\r\n _getBaseDimension: function(element, dimension) {\r\n var dimensionName = \"offset\" + titleize(dimension);\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator: function(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (0 === translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds: function() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce: function() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep: function() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler: function(e) {\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e)\r\n },\r\n _stopScrolling: deferRenderer((function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n })),\r\n _prepareThumbScrolling: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n return\r\n }\r\n var $target = $(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler: function($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation: function(e) {\r\n var mouseLocation = e[\"page\" + this._axis.toUpperCase()] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - getHeight(this._$container) / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _startHandler: function() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler: function(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy: function(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler: function(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio: function() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler: function(velocity) {\r\n this._completeDeferred = new Deferred;\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler: function() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia: function() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling: function() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler: function() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler: function() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler: function() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update: function() {\r\n this._stopScrolling();\r\n return deferUpdate(() => {\r\n this._resetScaleRatio();\r\n this._updateLocation();\r\n this._updateBounds();\r\n this._updateScrollbar();\r\n deferRender(() => {\r\n this._moveScrollbar();\r\n this._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio: function() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation: function() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds: function() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return 0\r\n },\r\n _getMinOffset: function() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: deferUpdater((function() {\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n deferRender(() => {\r\n this._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n })\r\n })),\r\n _moveToBounds: deferRenderer(deferUpdater(deferRenderer((function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n })))),\r\n _createActionsHandler: function(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar: function() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar: function() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize: function() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize: function() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\" + this._axis.toUpperCase());\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\" + titleize(this._dimension)] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent: function(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb: function($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar: function($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin: function() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax: function() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler: function() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler: function() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: noop\r\n});\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nexport var SimulatedStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable.$content();\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render: function() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers: function() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"))\r\n },\r\n _createScroller: function(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio: function(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if (isDefined(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling: function($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((function(isThumbScrollingVertical, isThumbScrollingHorizontal) {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n }));\r\n return result\r\n },\r\n handleInit: function(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller((function(scroller, direction) {\r\n var $target = $(e.originalEvent.target);\r\n var isValid = scroller._validateEvent(e) || this.option(\"scrollByContent\") && this._isContent($target);\r\n this._validDirections[direction] = isValid\r\n }))\r\n },\r\n _isContent: function($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections: function(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (function(direction, scroller) {\r\n callback(scroller, direction)\r\n }))\r\n },\r\n handleStart: function(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive: function() {\r\n activeScrollable = this\r\n },\r\n _resetActive: function() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance: function(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && isDxMouseWheelEvent(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio: function() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd: function(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel: function(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop: function() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll: function() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler: function(e) {\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(() => {\r\n if (normalizeKeyName(e) === KEY_CODES.TAB) {\r\n this._eachScroller(scroller => {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(domAdapter.getActiveElement(this._$container.get(0)))) {\r\n return\r\n }\r\n var handled = true;\r\n switch (normalizeKeyName(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine: function(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage: function(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = page * -getter(this._$container);\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: function(prop) {\r\n return \"left\" === prop ? \"width\" : \"height\"\r\n },\r\n _getPropByDirection: function(direction) {\r\n return direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _scrollToHome: function() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd: function() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = getter(this._$content) - getter(this._$container);\r\n this._component.scrollTo(distance)\r\n },\r\n createActions: function() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions: function() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler: function(optionName) {\r\n var actionHandler = this._createActionByOption(optionName);\r\n return () => {\r\n actionHandler(extend(this._createActionArgs(), arguments))\r\n }\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n horizontal: scrollerX,\r\n vertical: scrollerY\r\n } = this._scrollers;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _getScrollOffset() {\r\n return {\r\n top: -this.location().top,\r\n left: -this.location().left\r\n }\r\n },\r\n _eventHandler: function(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\" + eventName + \"Handler\"].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location: function() {\r\n var location = locate(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged: function() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode: function() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler: function(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler: function(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState: function(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = $(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update: function() {\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return when(result, deferUpdate(() => {\r\n var allowedDirections = this._allowedDirections();\r\n deferRender(() => {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n this._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return when().promise()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n _updateBounds: function() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled: function() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition: function(needInitializeRtlConfig) {\r\n if (needInitializeRtlConfig) {\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._$container.get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n }\r\n }\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n var scrollLeft = this._getMaxOffset().left - this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left\r\n }\r\n if (this._getScrollOffset().left !== scrollLeft) {\r\n this._rtlConfig.skipUpdating = true;\r\n this._component.scrollTo({\r\n left: scrollLeft\r\n });\r\n this._rtlConfig.skipUpdating = false\r\n }\r\n }\r\n },\r\n _updateRtlConfig: function() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var {\r\n clientWidth: clientWidth,\r\n scrollLeft: scrollLeft\r\n } = this._$container.get(0);\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _getWindowDevicePixelRatio: function() {\r\n return hasWindow() ? getWindow().devicePixelRatio : 1\r\n },\r\n scrollBy: function(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction();\r\n this._updateRtlConfig()\r\n },\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && isCommandKeyPressed(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return isDxMouseWheelEvent(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel: function(e) {\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(() => {\r\n this._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove: function(e) {\r\n if (!this.option(\"scrollByContent\") && !$(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection: function(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp: function() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection: function(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n dispose: function() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n nativeScrolling,\r\n touch\r\n} from \"../../core/utils/support\";\r\nexport var deviceDependentOptions = function() {\r\n return [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElementClass, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var element = sourceElement;\r\n while (null !== (_element = element) && void 0 !== _element && _element.offsetParent && !element.classList.contains(targetElementClass)) {\r\n var _element;\r\n var parentElement = element.offsetParent;\r\n var elementRect = element.getBoundingClientRect();\r\n var parentElementRect = parentElement.getBoundingClientRect();\r\n offset.left += elementRect.left - parentElementRect.left;\r\n offset.top += elementRect.top - parentElementRect.top;\r\n element = element.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var SCROLL_LINE_HEIGHT = 40;\r\nexport var DIRECTION_VERTICAL = \"vertical\";\r\nexport var DIRECTION_HORIZONTAL = \"horizontal\";\r\nexport var DIRECTION_BOTH = \"both\";\r\nexport var SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nexport var SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nexport var SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nexport var SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nexport var SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nexport var SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nexport var SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nexport var SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nexport var SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nexport var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"dx-scrollable-scrollbar-active\";\r\nexport var SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nexport var SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nexport var HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nexport var SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport var SCROLLVIEW_TOP_POCKET_CLASS = \"dx-scrollview-top-pocket\";\r\nexport var SCROLLVIEW_PULLDOWN = \"dx-scrollview-pull-down\";\r\nexport var SCROLLVIEW_PULLDOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nexport var SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nexport var SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nexport var SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nexport var SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nexport var SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nexport var PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nexport var SCROLLVIEW_BOTTOM_POCKET_CLASS = \"dx-scrollview-bottom-pocket\";\r\nexport var SCROLLVIEW_REACHBOTTOM_CLASS = \"dx-scrollview-scrollbottom\";\r\nexport var SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"dx-scrollview-scrollbottom-indicator\";\r\nexport var SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"dx-scrollview-scrollbottom-text\";\r\nexport var TopPocketState = {\r\n STATE_RELEASED: 0,\r\n STATE_READY: 1,\r\n STATE_REFRESHING: 2,\r\n STATE_LOADING: 3,\r\n STATE_TOUCHED: 4,\r\n STATE_PULLED: 5\r\n};\r\nexport var ShowScrollbarMode = {\r\n HOVER: \"onHover\",\r\n ALWAYS: \"always\",\r\n NEVER: \"never\",\r\n SCROLL: \"onScroll\"\r\n};\r\nexport var KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\"\r\n};\r\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.old.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./ui.scrollable.device\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_location_internal\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"<div>\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"<div>\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"<div>\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition: function(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset: function() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = $(this.container()).get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers: function() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate: function(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._moveIsAllowed(e)\r\n },\r\n _moveIsAllowed(e) {\r\n return this._strategy.validate(e)\r\n },\r\n handleMove(e) {\r\n this._strategy.handleMove(e)\r\n },\r\n _prepareDirections(value) {\r\n this._strategy._prepareDirections(value)\r\n },\r\n _initHandler: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n case \"scrollByContent\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection: function() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp: function() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n } else {\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n }\r\n },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection: function() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection: function() {\r\n return this._allowedDirectionValue\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n container: function() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset: function() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy: function() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight: function() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth: function() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth: function() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isRtlNativeStrategy()) {\r\n location.left = location.left - this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollToElement: function(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition: function($element, direction, offset) {\r\n var scrollOffset = this.scrollOffset();\r\n return getElementLocationInternal($element.get(0), direction, $(this.container()).get(0), scrollOffset, offset)\r\n },\r\n _updateIfNeed: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n isRenovated: function() {\r\n return !!Scrollable.IS_RENOVATED_WIDGET\r\n }\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getRelativeOffset\r\n} from \"./get_relative_offset\";\r\nimport {\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../common/consts\";\r\nexport function getElementLocationInternal(targetElement, direction, containerElement, scrollOffset, offset) {\r\n var additionalOffset = _extends({\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0\r\n }, offset);\r\n var isVertical = direction === DIRECTION_VERTICAL;\r\n var prop = isVertical ? \"top\" : \"left\";\r\n var inverseProp = isVertical ? \"bottom\" : \"right\";\r\n var dimension = isVertical ? \"height\" : \"width\";\r\n var containerOffsetSize = containerElement[\"offset\".concat(titleize(dimension))];\r\n var containerClientSize = containerElement[\"client\".concat(titleize(dimension))];\r\n var containerSize = containerElement.getBoundingClientRect()[dimension];\r\n var elementSize = targetElement.getBoundingClientRect()[dimension];\r\n var scale = 1;\r\n if (Math.abs(containerSize - containerOffsetSize) > 1) {\r\n scale = containerSize / containerOffsetSize\r\n }\r\n var relativeElementOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement)[prop] / scale;\r\n var containerScrollOffset = scrollOffset[prop];\r\n var relativeStartOffset = containerScrollOffset - relativeElementOffset + additionalOffset[prop];\r\n var relativeEndOffset = containerScrollOffset - relativeElementOffset - elementSize / scale + containerClientSize - additionalOffset[inverseProp];\r\n if (relativeStartOffset <= 0 && relativeEndOffset >= 0) {\r\n return containerScrollOffset\r\n }\r\n return containerScrollOffset - (Math.abs(relativeStartOffset) > Math.abs(relativeEndOffset) ? relativeEndOffset : relativeStartOffset)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"./ui.scrollable.old\";\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/ui/load_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased,\r\n isFluent\r\n} from \"./themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true,\r\n preventScrollEvents: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }, {\r\n device: function() {\r\n return isFluent()\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS);\r\n this._setWrapperAria()\r\n },\r\n _setWrapperAria() {\r\n var {\r\n message: message\r\n } = this.option();\r\n var defaultLabel = isMaterialBased() ? message : null;\r\n var label = message ? defaultLabel : messageLocalization.format(\"Loading\");\r\n var aria = {\r\n role: \"alert\",\r\n label: label\r\n };\r\n this.setAria(aria, this.$wrapper())\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"<div>\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"<div>\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"<div>\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n this._setWrapperAria();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterialBased\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"<div>\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"<div>\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"<div>\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$reachBottomText = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"<div>\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nimport {\r\n getElementMargin\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_style\";\r\nimport Guid from \"../../core/guid\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEMS_CLASS = \"dx-list-items\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n selectByClick: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\"\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _getItemsContainer: function() {\r\n return this._$listContainer\r\n },\r\n _cleanItemContainer: function() {\r\n this.callBase();\r\n var listContainer = this._getItemsContainer();\r\n $(listContainer).empty();\r\n listContainer.appendTo(this._$container)\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._getItemsContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._getItemsContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._$listContainer = $(\"<div>\").addClass(LIST_ITEMS_CLASS);\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataController.getDataSource();\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n this._$listContainer.appendTo(this._$container);\r\n this._toggleWrapItemText(this.option(\"wrapItemText\"));\r\n this._createScrollViewActions()\r\n },\r\n _toggleWrapItemText: function(value) {\r\n this._$listContainer.toggleClass(WRAP_ITEM_TEXT_CLASS, value)\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"<div>\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var dataController = this._dataController;\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !dataController.isLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !dataController.isLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._clearSelectedItems();\r\n dataController.pageIndex(0);\r\n dataController.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (!dataController.isLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState(true);\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"list\"\r\n }, this.$element());\r\n this.setAria({\r\n role: \"group\"\r\n }, this._focusTarget());\r\n this._setListAria()\r\n },\r\n _setListAria() {\r\n var {\r\n items: items\r\n } = this.option();\r\n var listArea = null !== items && void 0 !== items && items.length ? {\r\n role: \"listbox\",\r\n label: \"Items\"\r\n } : {\r\n role: void 0,\r\n label: void 0\r\n };\r\n this.setAria(listArea, this._$listContainer)\r\n },\r\n _focusTarget: function() {\r\n return this._itemContainer()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"<div>\").addClass(LIST_GROUP_CLASS).appendTo(this._getItemsContainer());\r\n var id = \"dx-\".concat((new Guid).toString());\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $groupElement);\r\n var $groupHeaderElement = $(\"<div>\").addClass(LIST_GROUP_HEADER_CLASS).attr(\"id\", id).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n $(\"<div>\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement);\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"<div>\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataController = this._dataController;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataController.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"<div>\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"<div>\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterialBased() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState(true);\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._toggleWrapItemText(args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._dataController.isLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataController.pageIndex(0);\r\n this._dataController.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n },\r\n deleteItem(itemElement) {\r\n var editStrategy = this._editStrategy;\r\n var deletingElementIndex = editStrategy.getNormalizedIndex(itemElement);\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = focusedElement ? editStrategy.getNormalizedIndex(focusedElement) : deletingElementIndex;\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n var nextFocusedItem = isLastIndexFocused || deletingElementIndex < focusedItemIndex ? focusedItemIndex - 1 : focusedItemIndex;\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n return this.focusListItem(nextFocusedItem)\r\n }))\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"<div>\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n errors.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _cleanAria: function() {\r\n var $element = this.$element();\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $element);\r\n $element.attr(\"tabIndex\", null)\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._cleanAria()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n },\r\n setEditorClass: function(value) {\r\n EditorClass = value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var dataController = this._dataController;\r\n var storeLoadOptions = {\r\n filter: dataController.filter()\r\n };\r\n dataController.addSearchFilter(storeLoadOptions);\r\n var filter = storeLoadOptions.filter;\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n var dataController = this._dataController;\r\n value && value.length && dataController.searchValue(value);\r\n mode.length && dataController.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && dataController.searchExpr(expr)\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject as isObjectType,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n });\r\n this._initDataController()\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail((function() {\r\n deferred.reject()\r\n }));\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading: function() {\r\n var _this$_loadValueDefer;\r\n null === (_this$_loadValueDefer = this._loadValueDeferred) || void 0 === _this$_loadValueDefer ? void 0 : _this$_loadValueDefer.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return toComparable(value1, true) === toComparable(value2, true)\r\n },\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isWindow,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DropDownEditor from \"./ui.drop_down_editor\";\r\nimport List from \"../list_light\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport devices from \"../../core/devices\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../core/templates/child_default_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab: function(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: false\r\n }))\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items: function() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem: function(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer: function() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, function(i, parent) {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n } else if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant($target) {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n }, $target)\r\n },\r\n _setSelectedItem: function(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, itemElement) {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._initDataController();\r\n this._setListOption(\"_dataController\", this._dataController);\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n clear: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new Guid)._value;\r\n var $list = $(\"<div>\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._$list = $list;\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _getControlsAria() {\r\n return this._list && this._listId\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria(\"owns\", this._popup && this._popupContentId)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === devices.real().deviceType\r\n },\r\n _listConfig: function() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n encodeNoDataText: this.option(\"encodeNoDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _dataController: this._dataController,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._updatePopupWidth();\r\n this._updateListDimensions();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return this._dataController.isLoaded() && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return addNamespace(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getCompositionStartEvent: function() {\r\n return addNamespace(\"compositionstart\", this.NAME + \"CompositionStart\")\r\n },\r\n _getCompositionEndEvent: function() {\r\n return addNamespace(\"compositionend\", this.NAME + \"CompositionEnd\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return addNamespace(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress: function(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler: function(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled: function() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource: function() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataController = this._dataController;\r\n dataController.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataController.searchOperation(this.option(\"searchMode\"));\r\n dataController.searchValue(searchValue);\r\n dataController.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n },\r\n _clearFilter: function() {\r\n var dataController = this._dataController;\r\n dataController.searchValue() && dataController.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataController.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow: function() {\r\n var dataController = this._dataController;\r\n var resultItems = dataController.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase();\r\n this._updateListDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n var dataController = this._dataController;\r\n var currentPageIndex = dataController.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || dataController.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updateListDimensions: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean: function() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/ui/autocomplete.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../events/utils/index\";\r\nvar AUTOCOMPLETE_CLASS = \"dx-autocomplete\";\r\nvar AUTOCOMPLETE_POPUP_WRAPPER_CLASS = \"dx-autocomplete-popup-wrapper\";\r\nvar Autocomplete = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n var item = this._list ? this._list.option(\"focusedElement\") : null;\r\n var parent = this.callBase();\r\n item = item && $(item);\r\n return extend({}, parent, {\r\n upArrow: function(e) {\r\n if (parent.upArrow.apply(this, arguments) && !isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (item && !this._calcNextItem(-1)) {\r\n this._clearFocusedItem();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow.apply(this, arguments) && !isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (item && !this._calcNextItem(1)) {\r\n this._clearFocusedItem();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (!item) {\r\n this.close()\r\n }\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n e.preventDefault()\r\n }\r\n return opened\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minSearchLength: 1,\r\n maxItemCount: 10,\r\n noDataText: \"\",\r\n showDropDownButton: false,\r\n searchEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(AUTOCOMPLETE_CLASS);\r\n this.setAria(\"autocomplete\", \"inline\")\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"valueExpr\")\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n return !$(target).closest(this.$element()).length\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + AUTOCOMPLETE_POPUP_WRAPPER_CLASS\r\n },\r\n _listConfig: function() {\r\n return extend(this.callBase(), {\r\n pageLoadMode: \"none\",\r\n onSelectionChanged: e => {\r\n this._setSelectedItem(e.addedItems[0])\r\n }\r\n })\r\n },\r\n _listItemClickHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n var value = this._displayGetter(e.itemData);\r\n this.option(\"value\", value);\r\n this.close()\r\n },\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._list.option(\"selectedItems\", []);\r\n this.callBase()\r\n },\r\n _refreshSelected: noop,\r\n _searchCanceled: function() {\r\n this.callBase();\r\n this.close()\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return (new Deferred).resolve(selectedItem).promise()\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: true,\r\n pageSize: this.option(\"maxItemCount\")\r\n }\r\n },\r\n _searchDataSource: function(searchValue) {\r\n this._dataSource.pageSize(this.option(\"maxItemCount\"));\r\n this.callBase(searchValue);\r\n this._clearFocusedItem()\r\n },\r\n _clearFocusedItem: function() {\r\n if (this._list) {\r\n this._list.option(\"focusedElement\", null);\r\n this._list.option(\"selectedIndex\", -1)\r\n }\r\n },\r\n _renderValueEventName: function() {\r\n return \"input keyup\"\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var value = this._input().val() || null;\r\n return this.callBase(e, value)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxItemCount\":\r\n this._searchDataSource();\r\n break;\r\n case \"valueExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n clear: function() {\r\n this.callBase();\r\n this.close()\r\n },\r\n reset: function() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this.callBase(value)\r\n } else {\r\n this.callBase()\r\n }\r\n this.close()\r\n }\r\n});\r\nregisterComponent(\"dxAutocomplete\", Autocomplete);\r\nexport default Autocomplete;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxAutocomplete from 'devextreme/ui/autocomplete';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiItemComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxAutocompleteComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxAutocomplete]\r\n\r\n */\r\nclass DxAutocompleteComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayValueChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupedChange' },\r\n { emit: 'groupTemplateChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxItemCountChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'minSearchLengthChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useItemTextAsTitleChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapItemTextChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.displayValue]\r\n \r\n */\r\n get displayValue() {\r\n return this._getOption('displayValue');\r\n }\r\n set displayValue(value) {\r\n this._setOption('displayValue', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:dxAutocompleteOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.grouped]\r\n \r\n */\r\n get grouped() {\r\n return this._getOption('grouped');\r\n }\r\n set grouped(value) {\r\n this._setOption('grouped', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.groupTemplate]\r\n \r\n */\r\n get groupTemplate() {\r\n return this._getOption('groupTemplate');\r\n }\r\n set groupTemplate(value) {\r\n this._setOption('groupTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxAutocompleteOptions.maxItemCount]\r\n \r\n */\r\n get maxItemCount() {\r\n return this._getOption('maxItemCount');\r\n }\r\n set maxItemCount(value) {\r\n this._setOption('maxItemCount', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxAutocompleteOptions.minSearchLength]\r\n \r\n */\r\n get minSearchLength() {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxAutocompleteOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.useItemTextAsTitle]\r\n \r\n */\r\n get useItemTextAsTitle() {\r\n return this._getOption('useItemTextAsTitle');\r\n }\r\n set useItemTextAsTitle(value) {\r\n this._setOption('useItemTextAsTitle', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxAutocompleteOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.wrapItemText]\r\n \r\n */\r\n get wrapItemText() {\r\n return this._getOption('wrapItemText');\r\n }\r\n set wrapItemText(value) {\r\n this._setOption('wrapItemText', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxAutocomplete(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('searchExpr', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('searchExpr');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxAutocompleteComponent.ɵfac = function DxAutocompleteComponent_Factory(t) { return new (t || DxAutocompleteComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxAutocompleteComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxAutocompleteComponent, selectors: [[\"dx-autocomplete\"]], contentQueries: function DxAutocompleteComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxAutocompleteComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxAutocompleteComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxAutocompleteComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayValue: \"displayValue\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", grouped: \"grouped\", groupTemplate: \"groupTemplate\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", itemTemplate: \"itemTemplate\", label: \"label\", labelMode: \"labelMode\", maxItemCount: \"maxItemCount\", maxLength: \"maxLength\", minSearchLength: \"minSearchLength\", name: \"name\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchTimeout: \"searchTimeout\", selectedItem: \"selectedItem\", showClearButton: \"showClearButton\", showDropDownButton: \"showDropDownButton\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useItemTextAsTitle: \"useItemTextAsTitle\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\", wrapItemText: \"wrapItemText\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onItemClick: \"onItemClick\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onSelectionChanged: \"onSelectionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonsChange: \"buttonsChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayValueChange: \"displayValueChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupedChange: \"groupedChange\", groupTemplateChange: \"groupTemplateChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxItemCountChange: \"maxItemCountChange\", maxLengthChange: \"maxLengthChange\", minSearchLengthChange: \"minSearchLengthChange\", nameChange: \"nameChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchTimeoutChange: \"searchTimeoutChange\", selectedItemChange: \"selectedItemChange\", showClearButtonChange: \"showClearButtonChange\", showDropDownButtonChange: \"showDropDownButtonChange\", spellcheckChange: \"spellcheckChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", useItemTextAsTitleChange: \"useItemTextAsTitleChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapItemTextChange: \"wrapItemTextChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxAutocompleteComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxAutocompleteComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-autocomplete',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayValue: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], grouped: [{\r\n type: Input\r\n }], groupTemplate: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], maxItemCount: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], minSearchLength: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useItemTextAsTitle: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapItemText: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayValueChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupedChange: [{\r\n type: Output\r\n }], groupTemplateChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxItemCountChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], minSearchLengthChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useItemTextAsTitleChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapItemTextChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxAutocompleteModule {\r\n}\r\n/** @nocollapse */ DxAutocompleteModule.ɵfac = function DxAutocompleteModule_Factory(t) { return new (t || DxAutocompleteModule)(); };\r\n/** @nocollapse */ DxAutocompleteModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxAutocompleteModule });\r\n/** @nocollapse */ DxAutocompleteModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxAutocompleteModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxAutocompleteComponent\r\n ],\r\n exports: [\r\n DxAutocompleteComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxAutocompleteModule, { declarations: [DxAutocompleteComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxAutocompleteComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxAutocompleteComponent, DxAutocompleteModule };\n","/**\r\n * DevExtreme (esm/viz/components/consts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n events: {\r\n mouseover: \"mouseover\",\r\n mouseout: \"mouseout\",\r\n mousemove: \"mousemove\",\r\n touchstart: \"touchstart\",\r\n touchmove: \"touchmove\",\r\n touchend: \"touchend\",\r\n mousedown: \"mousedown\",\r\n mouseup: \"mouseup\",\r\n click: \"click\",\r\n selectSeries: \"selectseries\",\r\n deselectSeries: \"deselectseries\",\r\n selectPoint: \"selectpoint\",\r\n deselectPoint: \"deselectpoint\",\r\n showPointTooltip: \"showpointtooltip\",\r\n hidePointTooltip: \"hidepointtooltip\"\r\n },\r\n states: {\r\n hover: \"hover\",\r\n normal: \"normal\",\r\n selection: \"selection\",\r\n normalMark: 0,\r\n hoverMark: 1,\r\n selectedMark: 2,\r\n applyHover: \"applyHover\",\r\n applySelected: \"applySelected\",\r\n resetItem: \"resetItem\"\r\n },\r\n radialLabelIndent: 30,\r\n pieLabelSpacing: 10,\r\n pieSeriesSpacing: 4\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/layout_element.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar _round = Math.round;\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nvar defaultOffset = {\r\n horizontal: 0,\r\n vertical: 0\r\n};\r\nvar alignFactors = {\r\n center: .5,\r\n right: 1,\r\n bottom: 1,\r\n left: 0,\r\n top: 0\r\n};\r\n\r\nfunction LayoutElement(options) {\r\n this._options = options\r\n}\r\nLayoutElement.prototype = {\r\n constructor: LayoutElement,\r\n position: function(options) {\r\n var ofBBox = options.of.getLayoutOptions();\r\n var myBBox = this.getLayoutOptions();\r\n var at = options.at;\r\n var my = options.my;\r\n var offset = options.offset || defaultOffset;\r\n var shiftX = -alignFactors[my.horizontal] * myBBox.width + ofBBox.x + alignFactors[at.horizontal] * ofBBox.width + parseInt(offset.horizontal);\r\n var shiftY = -alignFactors[my.vertical] * myBBox.height + ofBBox.y + alignFactors[at.vertical] * ofBBox.height + parseInt(offset.vertical);\r\n this.shift(_round(shiftX), _round(shiftY))\r\n },\r\n getLayoutOptions: noop\r\n};\r\n\r\nfunction WrapperLayoutElement(renderElement, bBox) {\r\n this._renderElement = renderElement;\r\n this._cacheBBox = bBox\r\n}\r\nvar wrapperLayoutElementPrototype = WrapperLayoutElement.prototype = clone(LayoutElement.prototype);\r\nwrapperLayoutElementPrototype.constructor = WrapperLayoutElement;\r\nwrapperLayoutElementPrototype.getLayoutOptions = function() {\r\n return this._cacheBBox || this._renderElement.getBBox()\r\n};\r\nwrapperLayoutElementPrototype.shift = function(shiftX, shiftY) {\r\n var bBox = this.getLayoutOptions();\r\n this._renderElement.move(_round(shiftX - bBox.x), _round(shiftY - bBox.y))\r\n};\r\nexport {\r\n LayoutElement,\r\n WrapperLayoutElement\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/layout_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric as _isNumber\r\n} from \"../../core/utils/type\";\r\nimport consts from \"../components/consts\";\r\nimport {\r\n WrapperLayoutElement\r\n} from \"../core/layout_element\";\r\nvar {\r\n floor: floor,\r\n sqrt: sqrt\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar DEFAULT_INNER_RADIUS = .5;\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\n\r\nfunction getNearestCoord(firstCoord, secondCoord, pointCenterCoord) {\r\n var nearestCoord;\r\n if (pointCenterCoord < firstCoord) {\r\n nearestCoord = firstCoord\r\n } else if (secondCoord < pointCenterCoord) {\r\n nearestCoord = secondCoord\r\n } else {\r\n nearestCoord = pointCenterCoord\r\n }\r\n return nearestCoord\r\n}\r\n\r\nfunction getLabelLayout(point) {\r\n if (point._label.isVisible() && \"inside\" !== point._label.getLayoutOptions().position) {\r\n return point._label.getBoundingRect()\r\n }\r\n}\r\n\r\nfunction getPieRadius(series, paneCenterX, paneCenterY, accessibleRadius, minR) {\r\n series.some((function(singleSeries) {\r\n return singleSeries.getVisiblePoints().reduce((function(radiusIsFound, point) {\r\n var labelBBox = getLabelLayout(point);\r\n if (labelBBox) {\r\n var xCoords = getNearestCoord(labelBBox.x, labelBBox.x + labelBBox.width, paneCenterX);\r\n var yCoords = getNearestCoord(labelBBox.y, labelBBox.y + labelBBox.height, paneCenterY);\r\n accessibleRadius = _min(_max(getLengthFromCenter(xCoords, yCoords, paneCenterX, paneCenterY) - RADIAL_LABEL_INDENT, minR), accessibleRadius);\r\n radiusIsFound = true\r\n }\r\n return radiusIsFound\r\n }), false)\r\n }));\r\n return accessibleRadius\r\n}\r\n\r\nfunction getSizeLabels(series) {\r\n return series.reduce((function(res, singleSeries) {\r\n var maxWidth = singleSeries.getVisiblePoints().reduce((function(width, point) {\r\n var labelBBox = getLabelLayout(point);\r\n if (labelBBox && labelBBox.width > width) {\r\n width = labelBBox.width\r\n }\r\n return width\r\n }), 0);\r\n var rWidth = maxWidth;\r\n if (maxWidth) {\r\n res.outerLabelsCount++;\r\n if (res.outerLabelsCount > 1) {\r\n maxWidth += consts.pieLabelSpacing\r\n }\r\n rWidth += consts.pieLabelSpacing\r\n }\r\n res.sizes.push(maxWidth);\r\n res.rSizes.push(rWidth);\r\n res.common += maxWidth;\r\n return res\r\n }), {\r\n sizes: [],\r\n rSizes: [],\r\n common: 0,\r\n outerLabelsCount: 0\r\n })\r\n}\r\n\r\nfunction correctLabelRadius(labelSizes, radius, series, canvas, averageWidthLabels, centerX) {\r\n var curRadius;\r\n var i;\r\n var runningWidth = 0;\r\n var sizes = labelSizes.sizes;\r\n var rSizes = labelSizes.rSizes;\r\n for (i = 0; i < series.length; i++) {\r\n if (0 === sizes[i]) {\r\n curRadius && (curRadius += rSizes[i - 1]);\r\n continue\r\n }\r\n curRadius = floor(curRadius ? curRadius + rSizes[i - 1] : radius);\r\n series[i].correctLabelRadius(curRadius);\r\n runningWidth += averageWidthLabels || sizes[i];\r\n rSizes[i] = averageWidthLabels || rSizes[i];\r\n series[i].setVisibleArea({\r\n left: floor(centerX - radius - runningWidth),\r\n right: floor(canvas.width - (centerX + radius + runningWidth)),\r\n top: canvas.top,\r\n bottom: canvas.bottom,\r\n width: canvas.width,\r\n height: canvas.height\r\n })\r\n }\r\n}\r\n\r\nfunction getLengthFromCenter(x, y, paneCenterX, paneCenterY) {\r\n return sqrt((x - paneCenterX) * (x - paneCenterX) + (y - paneCenterY) * (y - paneCenterY))\r\n}\r\n\r\nfunction getInnerRadius(_ref) {\r\n var {\r\n type: type,\r\n innerRadius: innerRadius\r\n } = _ref;\r\n return \"pie\" === type ? 0 : _isNumber(innerRadius) ? Number(innerRadius) : DEFAULT_INNER_RADIUS\r\n}\r\n\r\nfunction LayoutManager() {}\r\n\r\nfunction getAverageLabelWidth(centerX, radius, canvas, sizeLabels) {\r\n return (centerX - radius - RADIAL_LABEL_INDENT - canvas.left) / sizeLabels.outerLabelsCount\r\n}\r\n\r\nfunction getFullRadiusWithLabels(centerX, canvas, sizeLabels) {\r\n return centerX - canvas.left - (sizeLabels.outerLabelsCount > 0 ? sizeLabels.common + RADIAL_LABEL_INDENT : 0)\r\n}\r\n\r\nfunction correctAvailableRadius(availableRadius, canvas, series, minR, paneCenterX, paneCenterY) {\r\n var sizeLabels = getSizeLabels(series);\r\n var averageWidthLabels;\r\n var fullRadiusWithLabels = getFullRadiusWithLabels(paneCenterX, canvas, sizeLabels);\r\n if (fullRadiusWithLabels < minR) {\r\n availableRadius = minR;\r\n averageWidthLabels = getAverageLabelWidth(paneCenterX, availableRadius, canvas, sizeLabels)\r\n } else {\r\n availableRadius = _min(getPieRadius(series, paneCenterX, paneCenterY, availableRadius, minR), fullRadiusWithLabels)\r\n }\r\n correctLabelRadius(sizeLabels, availableRadius + RADIAL_LABEL_INDENT, series, canvas, averageWidthLabels, paneCenterX);\r\n return availableRadius\r\n}\r\n\r\nfunction toLayoutElementCoords(canvas) {\r\n return new WrapperLayoutElement(null, {\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvas.width - canvas.left - canvas.right,\r\n height: canvas.height - canvas.top - canvas.bottom\r\n })\r\n}\r\nLayoutManager.prototype = {\r\n constructor: LayoutManager,\r\n setOptions: function(options) {\r\n this._options = options\r\n },\r\n applyPieChartSeriesLayout: function(canvas, series, hideLayoutLabels) {\r\n var paneSpaceHeight = canvas.height - canvas.top - canvas.bottom;\r\n var paneSpaceWidth = canvas.width - canvas.left - canvas.right;\r\n var paneCenterX = paneSpaceWidth / 2 + canvas.left;\r\n var paneCenterY = paneSpaceHeight / 2 + canvas.top;\r\n var piePercentage = this._options.piePercentage;\r\n var availableRadius;\r\n var minR;\r\n if (_isNumber(piePercentage)) {\r\n availableRadius = minR = piePercentage * _min(canvas.height, canvas.width) / 2\r\n } else {\r\n availableRadius = _min(paneSpaceWidth, paneSpaceHeight) / 2;\r\n minR = this._options.minPiePercentage * availableRadius\r\n }\r\n if (!hideLayoutLabels) {\r\n availableRadius = correctAvailableRadius(availableRadius, canvas, series, minR, paneCenterX, paneCenterY)\r\n }\r\n return {\r\n centerX: floor(paneCenterX),\r\n centerY: floor(paneCenterY),\r\n radiusInner: floor(availableRadius * getInnerRadius(series[0])),\r\n radiusOuter: floor(availableRadius)\r\n }\r\n },\r\n applyEqualPieChartLayout: function(series, layout) {\r\n var radius = layout.radius;\r\n return {\r\n centerX: floor(layout.x),\r\n centerY: floor(layout.y),\r\n radiusInner: floor(radius * getInnerRadius(series[0])),\r\n radiusOuter: floor(radius)\r\n }\r\n },\r\n correctPieLabelRadius: function(series, layout, canvas) {\r\n var sizeLabels = getSizeLabels(series);\r\n var averageWidthLabels;\r\n var radius = layout.radiusOuter + RADIAL_LABEL_INDENT;\r\n var availableLabelWidth = layout.centerX - canvas.left - radius;\r\n if (sizeLabels.common + RADIAL_LABEL_INDENT > availableLabelWidth) {\r\n averageWidthLabels = getAverageLabelWidth(layout.centerX, layout.radiusOuter, canvas, sizeLabels)\r\n }\r\n correctLabelRadius(sizeLabels, radius, series, canvas, averageWidthLabels, layout.centerX)\r\n },\r\n needMoreSpaceForPanesCanvas(panes, rotated, fixedSizeCallback) {\r\n var options = this._options;\r\n var width = options.width;\r\n var height = options.height;\r\n var piePercentage = options.piePercentage;\r\n var percentageIsValid = _isNumber(piePercentage);\r\n var needHorizontalSpace = 0;\r\n var needVerticalSpace = 0;\r\n panes.forEach(pane => {\r\n var paneCanvas = pane.canvas;\r\n var minSize = percentageIsValid ? _min(paneCanvas.width, paneCanvas.height) * piePercentage : void 0;\r\n var paneSized = fixedSizeCallback ? fixedSizeCallback(pane) : {\r\n width: false,\r\n height: false\r\n };\r\n var needPaneHorizontalSpace = !paneSized.width ? (percentageIsValid ? minSize : width) - (paneCanvas.width - paneCanvas.left - paneCanvas.right) : 0;\r\n var needPaneVerticalSpace = !paneSized.height ? (percentageIsValid ? minSize : height) - (paneCanvas.height - paneCanvas.top - paneCanvas.bottom) : 0;\r\n if (rotated) {\r\n needHorizontalSpace += needPaneHorizontalSpace > 0 ? needPaneHorizontalSpace : 0;\r\n needVerticalSpace = _max(needPaneVerticalSpace > 0 ? needPaneVerticalSpace : 0, needVerticalSpace)\r\n } else {\r\n needHorizontalSpace = _max(needPaneHorizontalSpace > 0 ? needPaneHorizontalSpace : 0, needHorizontalSpace);\r\n needVerticalSpace += needPaneVerticalSpace > 0 ? needPaneVerticalSpace : 0\r\n }\r\n });\r\n return needHorizontalSpace > 0 || needVerticalSpace > 0 ? {\r\n width: needHorizontalSpace,\r\n height: needVerticalSpace\r\n } : false\r\n },\r\n layoutInsideLegend: function(legend, canvas) {\r\n var layoutOptions = legend.getLayoutOptions();\r\n if (!layoutOptions) {\r\n return\r\n }\r\n var position = layoutOptions.position;\r\n var cutSide = layoutOptions.cutSide;\r\n var my = {\r\n horizontal: position.horizontal,\r\n vertical: position.vertical\r\n };\r\n canvas[layoutOptions.cutLayoutSide] += \"horizontal\" === layoutOptions.cutSide ? layoutOptions.width : layoutOptions.height;\r\n my[cutSide] = {\r\n left: \"right\",\r\n right: \"left\",\r\n top: \"bottom\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n } [my[cutSide]];\r\n legend.position({\r\n of: toLayoutElementCoords(canvas),\r\n my: my,\r\n at: position\r\n })\r\n }\r\n};\r\nexport {\r\n LayoutManager\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/date/toMilliseconds.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar timeIntervals = {\r\n millisecond: 1,\r\n second: 1e3,\r\n minute: 6e4,\r\n hour: 36e5,\r\n day: 864e5,\r\n week: 6048e5,\r\n month: 2592e6,\r\n quarter: 7776e6,\r\n year: 31536e6\r\n};\r\nexport function toMilliseconds(value) {\r\n return timeIntervals[value]\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject,\r\n isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport {\r\n toMilliseconds\r\n} from \"../../renovation/ui/common/utils/date/index\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar THURSDAY_WEEK_NUMBER = 4;\r\nvar SUNDAY_WEEK_NUMBER = 7;\r\nvar USUAL_WEEK_COUNT_IN_YEAR = 52;\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\n\r\nfunction sameHoursAndMinutes(date1, date2) {\r\n return date1 && date2 && date1.getHours() === date2.getHours() && date1.getMinutes() === date2.getMinutes()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + DAYS_IN_WEEK) % DAYS_IN_WEEK;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\n\r\nfunction getUTCTime(date) {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\r\n}\r\n\r\nfunction getDayNumber(date) {\r\n var ms = getUTCTime(date) - getUTCTime(getFirstDateInYear(date.getFullYear()));\r\n return 1 + Math.floor(ms / toMilliseconds(\"day\"))\r\n}\r\n\r\nfunction getFirstDateInYear(year) {\r\n return new Date(year, 0, 1)\r\n}\r\n\r\nfunction getLastDateInYear(year) {\r\n return new Date(year, 11, 31)\r\n}\r\n\r\nfunction getDayWeekNumber(date, firstDayOfWeek) {\r\n var day = date.getDay() - firstDayOfWeek + 1;\r\n if (day <= 0) {\r\n day += DAYS_IN_WEEK\r\n }\r\n return day\r\n}\r\n\r\nfunction getWeekNumber(date, firstDayOfWeek, rule) {\r\n var firstWeekDayInYear = getDayWeekNumber(getFirstDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var lastWeekDayInYear = getDayWeekNumber(getLastDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var daysInFirstWeek = DAYS_IN_WEEK - firstWeekDayInYear + 1;\r\n var weekNumber = Math.ceil((getDayNumber(date) - daysInFirstWeek) / 7);\r\n switch (rule) {\r\n case \"fullWeek\":\r\n if (daysInFirstWeek === DAYS_IN_WEEK) {\r\n weekNumber++\r\n }\r\n if (0 === weekNumber) {\r\n var lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber;\r\n case \"firstDay\":\r\n if (daysInFirstWeek > 0) {\r\n weekNumber++\r\n }\r\n var isSunday = firstWeekDayInYear === SUNDAY_WEEK_NUMBER || lastWeekDayInYear === SUNDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isSunday || 54 === weekNumber) {\r\n weekNumber = 1\r\n }\r\n return weekNumber;\r\n case \"firstFourDays\":\r\n if (daysInFirstWeek > 3) {\r\n weekNumber++\r\n }\r\n var isThursday = firstWeekDayInYear === THURSDAY_WEEK_NUMBER || lastWeekDayInYear === THURSDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isThursday) {\r\n weekNumber = 1\r\n }\r\n if (0 === weekNumber) {\r\n var _lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(_lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber\r\n }\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar getMachineTimezoneName = () => {\r\n var hasIntl = \"undefined\" !== typeof Intl;\r\n return hasIntl ? Intl.DateTimeFormat().resolvedOptions().timeZone : null\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameHoursAndMinutes: sameHoursAndMinutes,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n getWeekNumber: getWeekNumber,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear,\r\n getMachineTimezoneName: getMachineTimezoneName\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/color.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar standardColorNames = {\r\n aliceblue: \"f0f8ff\",\r\n antiquewhite: \"faebd7\",\r\n aqua: \"00ffff\",\r\n aquamarine: \"7fffd4\",\r\n azure: \"f0ffff\",\r\n beige: \"f5f5dc\",\r\n bisque: \"ffe4c4\",\r\n black: \"000000\",\r\n blanchedalmond: \"ffebcd\",\r\n blue: \"0000ff\",\r\n blueviolet: \"8a2be2\",\r\n brown: \"a52a2a\",\r\n burlywood: \"deb887\",\r\n cadetblue: \"5f9ea0\",\r\n chartreuse: \"7fff00\",\r\n chocolate: \"d2691e\",\r\n coral: \"ff7f50\",\r\n cornflowerblue: \"6495ed\",\r\n cornsilk: \"fff8dc\",\r\n crimson: \"dc143c\",\r\n cyan: \"00ffff\",\r\n darkblue: \"00008b\",\r\n darkcyan: \"008b8b\",\r\n darkgoldenrod: \"b8860b\",\r\n darkgray: \"a9a9a9\",\r\n darkgreen: \"006400\",\r\n darkgrey: \"a9a9a9\",\r\n darkkhaki: \"bdb76b\",\r\n darkmagenta: \"8b008b\",\r\n darkolivegreen: \"556b2f\",\r\n darkorange: \"ff8c00\",\r\n darkorchid: \"9932cc\",\r\n darkred: \"8b0000\",\r\n darksalmon: \"e9967a\",\r\n darkseagreen: \"8fbc8f\",\r\n darkslateblue: \"483d8b\",\r\n darkslategray: \"2f4f4f\",\r\n darkslategrey: \"2f4f4f\",\r\n darkturquoise: \"00ced1\",\r\n darkviolet: \"9400d3\",\r\n deeppink: \"ff1493\",\r\n deepskyblue: \"00bfff\",\r\n dimgray: \"696969\",\r\n dimgrey: \"696969\",\r\n dodgerblue: \"1e90ff\",\r\n feldspar: \"d19275\",\r\n firebrick: \"b22222\",\r\n floralwhite: \"fffaf0\",\r\n forestgreen: \"228b22\",\r\n fuchsia: \"ff00ff\",\r\n gainsboro: \"dcdcdc\",\r\n ghostwhite: \"f8f8ff\",\r\n gold: \"ffd700\",\r\n goldenrod: \"daa520\",\r\n gray: \"808080\",\r\n green: \"008000\",\r\n greenyellow: \"adff2f\",\r\n grey: \"808080\",\r\n honeydew: \"f0fff0\",\r\n hotpink: \"ff69b4\",\r\n indianred: \"cd5c5c\",\r\n indigo: \"4b0082\",\r\n ivory: \"fffff0\",\r\n khaki: \"f0e68c\",\r\n lavender: \"e6e6fa\",\r\n lavenderblush: \"fff0f5\",\r\n lawngreen: \"7cfc00\",\r\n lemonchiffon: \"fffacd\",\r\n lightblue: \"add8e6\",\r\n lightcoral: \"f08080\",\r\n lightcyan: \"e0ffff\",\r\n lightgoldenrodyellow: \"fafad2\",\r\n lightgray: \"d3d3d3\",\r\n lightgreen: \"90ee90\",\r\n lightgrey: \"d3d3d3\",\r\n lightpink: \"ffb6c1\",\r\n lightsalmon: \"ffa07a\",\r\n lightseagreen: \"20b2aa\",\r\n lightskyblue: \"87cefa\",\r\n lightslateblue: \"8470ff\",\r\n lightslategray: \"778899\",\r\n lightslategrey: \"778899\",\r\n lightsteelblue: \"b0c4de\",\r\n lightyellow: \"ffffe0\",\r\n lime: \"00ff00\",\r\n limegreen: \"32cd32\",\r\n linen: \"faf0e6\",\r\n magenta: \"ff00ff\",\r\n maroon: \"800000\",\r\n mediumaquamarine: \"66cdaa\",\r\n mediumblue: \"0000cd\",\r\n mediumorchid: \"ba55d3\",\r\n mediumpurple: \"9370d8\",\r\n mediumseagreen: \"3cb371\",\r\n mediumslateblue: \"7b68ee\",\r\n mediumspringgreen: \"00fa9a\",\r\n mediumturquoise: \"48d1cc\",\r\n mediumvioletred: \"c71585\",\r\n midnightblue: \"191970\",\r\n mintcream: \"f5fffa\",\r\n mistyrose: \"ffe4e1\",\r\n moccasin: \"ffe4b5\",\r\n navajowhite: \"ffdead\",\r\n navy: \"000080\",\r\n oldlace: \"fdf5e6\",\r\n olive: \"808000\",\r\n olivedrab: \"6b8e23\",\r\n orange: \"ffa500\",\r\n orangered: \"ff4500\",\r\n orchid: \"da70d6\",\r\n palegoldenrod: \"eee8aa\",\r\n palegreen: \"98fb98\",\r\n paleturquoise: \"afeeee\",\r\n palevioletred: \"d87093\",\r\n papayawhip: \"ffefd5\",\r\n peachpuff: \"ffdab9\",\r\n peru: \"cd853f\",\r\n pink: \"ffc0cb\",\r\n plum: \"dda0dd\",\r\n powderblue: \"b0e0e6\",\r\n purple: \"800080\",\r\n rebeccapurple: \"663399\",\r\n red: \"ff0000\",\r\n rosybrown: \"bc8f8f\",\r\n royalblue: \"4169e1\",\r\n saddlebrown: \"8b4513\",\r\n salmon: \"fa8072\",\r\n sandybrown: \"f4a460\",\r\n seagreen: \"2e8b57\",\r\n seashell: \"fff5ee\",\r\n sienna: \"a0522d\",\r\n silver: \"c0c0c0\",\r\n skyblue: \"87ceeb\",\r\n slateblue: \"6a5acd\",\r\n slategray: \"708090\",\r\n slategrey: \"708090\",\r\n snow: \"fffafa\",\r\n springgreen: \"00ff7f\",\r\n steelblue: \"4682b4\",\r\n tan: \"d2b48c\",\r\n teal: \"008080\",\r\n thistle: \"d8bfd8\",\r\n tomato: \"ff6347\",\r\n turquoise: \"40e0d0\",\r\n violet: \"ee82ee\",\r\n violetred: \"d02090\",\r\n wheat: \"f5deb3\",\r\n white: \"ffffff\",\r\n whitesmoke: \"f5f5f5\",\r\n yellow: \"ffff00\",\r\n yellowgreen: \"9acd32\"\r\n};\r\nvar standardColorTypes = [{\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10)]\r\n }\r\n}, {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d*\\.*\\d+)\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10), parseFloat(colorString[4])]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16), Number((parseInt(colorString[4], 16) / 255).toFixed(2))]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16), Number((parseInt(colorString[4] + colorString[4], 16) / 255).toFixed(2))]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^hsv\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var v = parseInt(colorString[3], 10);\r\n var rgb = hsvToRgb(h, s, v);\r\n return [rgb[0], rgb[1], rgb[2], 1, [h, s, v]]\r\n }\r\n}, {\r\n re: /^hsl\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var l = parseInt(colorString[3], 10);\r\n var rgb = hslToRgb(h, s, l);\r\n return [rgb[0], rgb[1], rgb[2], 1, null, [h, s, l]]\r\n }\r\n}];\r\nvar _round = Math.round;\r\n\r\nfunction Color(value) {\r\n this.baseColor = value;\r\n var color;\r\n if (value) {\r\n color = String(value).toLowerCase().replace(/ /g, \"\");\r\n color = standardColorNames[color] ? \"#\" + standardColorNames[color] : color;\r\n color = parseColor(color)\r\n }\r\n if (!color) {\r\n this.colorIsInvalid = true\r\n }\r\n color = color || {};\r\n this.r = normalize(color[0]);\r\n this.g = normalize(color[1]);\r\n this.b = normalize(color[2]);\r\n this.a = normalize(color[3], 1, 1);\r\n if (color[4]) {\r\n this.hsv = {\r\n h: color[4][0],\r\n s: color[4][1],\r\n v: color[4][2]\r\n }\r\n } else {\r\n this.hsv = toHsvFromRgb(this.r, this.g, this.b)\r\n }\r\n if (color[5]) {\r\n this.hsl = {\r\n h: color[5][0],\r\n s: color[5][1],\r\n l: color[5][2]\r\n }\r\n } else {\r\n this.hsl = toHslFromRgb(this.r, this.g, this.b)\r\n }\r\n}\r\n\r\nfunction parseColor(color) {\r\n if (\"transparent\" === color) {\r\n return [0, 0, 0, 0]\r\n }\r\n var i = 0;\r\n var ii = standardColorTypes.length;\r\n var str;\r\n for (; i < ii; ++i) {\r\n str = standardColorTypes[i].re.exec(color);\r\n if (str) {\r\n return standardColorTypes[i].process(str)\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction normalize(colorComponent, def, max) {\r\n def = def || 0;\r\n max = max || 255;\r\n return colorComponent < 0 || isNaN(colorComponent) ? def : colorComponent > max ? max : colorComponent\r\n}\r\n\r\nfunction toHexFromRgb(r, g, b) {\r\n return \"#\" + (16777216 | r << 16 | g << 8 | b).toString(16).slice(1)\r\n}\r\n\r\nfunction toHsvFromRgb(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var delta = max - min;\r\n var H;\r\n var S;\r\n var V = max;\r\n S = 0 === max ? 0 : 1 - min / max;\r\n if (max === min) {\r\n H = 0\r\n } else {\r\n switch (max) {\r\n case r:\r\n H = (g - b) / delta * 60;\r\n if (g < b) {\r\n H += 360\r\n }\r\n break;\r\n case g:\r\n H = (b - r) / delta * 60 + 120;\r\n break;\r\n case b:\r\n H = (r - g) / delta * 60 + 240\r\n }\r\n }\r\n S *= 100;\r\n V *= 100 / 255;\r\n return {\r\n h: Math.round(H),\r\n s: Math.round(S),\r\n v: Math.round(V)\r\n }\r\n}\r\n\r\nfunction hsvToRgb(h, s, v) {\r\n var index = Math.floor(h % 360 / 60);\r\n var vMin = (100 - s) * v / 100;\r\n var a = h % 60 / 60 * (v - vMin);\r\n var vInc = vMin + a;\r\n var vDec = v - a;\r\n var r;\r\n var g;\r\n var b;\r\n switch (index) {\r\n case 0:\r\n r = v;\r\n g = vInc;\r\n b = vMin;\r\n break;\r\n case 1:\r\n r = vDec;\r\n g = v;\r\n b = vMin;\r\n break;\r\n case 2:\r\n r = vMin;\r\n g = v;\r\n b = vInc;\r\n break;\r\n case 3:\r\n r = vMin;\r\n g = vDec;\r\n b = v;\r\n break;\r\n case 4:\r\n r = vInc;\r\n g = vMin;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = vMin;\r\n b = vDec\r\n }\r\n return [Math.round(2.55 * r), Math.round(2.55 * g), Math.round(2.55 * b)]\r\n}\r\n\r\nfunction calculateHue(r, g, b, delta) {\r\n var max = Math.max(r, g, b);\r\n switch (max) {\r\n case r:\r\n return (g - b) / delta + (g < b ? 6 : 0);\r\n case g:\r\n return (b - r) / delta + 2;\r\n case b:\r\n return (r - g) / delta + 4\r\n }\r\n}\r\n\r\nfunction toHslFromRgb(r, g, b) {\r\n r = convertTo01Bounds(r, 255);\r\n g = convertTo01Bounds(g, 255);\r\n b = convertTo01Bounds(b, 255);\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var maxMinSum = max + min;\r\n var h;\r\n var s;\r\n var l = maxMinSum / 2;\r\n if (max === min) {\r\n h = s = 0\r\n } else {\r\n var delta = max - min;\r\n if (l > .5) {\r\n s = delta / (2 - maxMinSum)\r\n } else {\r\n s = delta / maxMinSum\r\n }\r\n h = calculateHue(r, g, b, delta);\r\n h /= 6\r\n }\r\n return {\r\n h: _round(360 * h),\r\n s: _round(100 * s),\r\n l: _round(100 * l)\r\n }\r\n}\r\n\r\nfunction makeColorTint(colorPart, h) {\r\n var colorTint = h;\r\n if (\"r\" === colorPart) {\r\n colorTint = h + 1 / 3\r\n }\r\n if (\"b\" === colorPart) {\r\n colorTint = h - 1 / 3\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction modifyColorTint(colorTint) {\r\n if (colorTint < 0) {\r\n colorTint += 1\r\n }\r\n if (colorTint > 1) {\r\n colorTint -= 1\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction hueToRgb(p, q, colorTint) {\r\n colorTint = modifyColorTint(colorTint);\r\n if (colorTint < 1 / 6) {\r\n return p + 6 * (q - p) * colorTint\r\n }\r\n if (colorTint < .5) {\r\n return q\r\n }\r\n if (colorTint < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - colorTint) * 6\r\n }\r\n return p\r\n}\r\n\r\nfunction hslToRgb(h, s, l) {\r\n var r;\r\n var g;\r\n var b;\r\n h = convertTo01Bounds(h, 360);\r\n s = convertTo01Bounds(s, 100);\r\n l = convertTo01Bounds(l, 100);\r\n if (0 === s) {\r\n r = g = b = l\r\n } else {\r\n var q = l < .5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hueToRgb(p, q, makeColorTint(\"r\", h));\r\n g = hueToRgb(p, q, makeColorTint(\"g\", h));\r\n b = hueToRgb(p, q, makeColorTint(\"b\", h))\r\n }\r\n return [_round(255 * r), _round(255 * g), _round(255 * b)]\r\n}\r\n\r\nfunction convertTo01Bounds(n, max) {\r\n n = Math.min(max, Math.max(0, parseFloat(n)));\r\n if (Math.abs(n - max) < 1e-6) {\r\n return 1\r\n }\r\n return n % max / parseFloat(max)\r\n}\r\n\r\nfunction isIntegerBetweenMinAndMax(number, min, max) {\r\n min = min || 0;\r\n max = max || 255;\r\n if (number % 1 !== 0 || number < min || number > max || \"number\" !== typeof number || isNaN(number)) {\r\n return false\r\n }\r\n return true\r\n}\r\nColor.prototype = {\r\n constructor: Color,\r\n highlight: function(step) {\r\n step = step || 10;\r\n return this.alter(step).toHex()\r\n },\r\n darken: function(step) {\r\n step = step || 10;\r\n return this.alter(-step).toHex()\r\n },\r\n alter: function(step) {\r\n var result = new Color;\r\n result.r = normalize(this.r + step);\r\n result.g = normalize(this.g + step);\r\n result.b = normalize(this.b + step);\r\n return result\r\n },\r\n blend: function(blendColor, opacity) {\r\n var other = blendColor instanceof Color ? blendColor : new Color(blendColor);\r\n var result = new Color;\r\n result.r = normalize(_round(this.r * (1 - opacity) + other.r * opacity));\r\n result.g = normalize(_round(this.g * (1 - opacity) + other.g * opacity));\r\n result.b = normalize(_round(this.b * (1 - opacity) + other.b * opacity));\r\n return result\r\n },\r\n toHex: function() {\r\n return toHexFromRgb(this.r, this.g, this.b)\r\n },\r\n getPureColor: function() {\r\n var rgb = hsvToRgb(this.hsv.h, 100, 100);\r\n return new Color(\"rgb(\" + rgb.join(\",\") + \")\")\r\n },\r\n isValidHex: function(hex) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)\r\n },\r\n isValidRGB: function(r, g, b) {\r\n if (!isIntegerBetweenMinAndMax(r) || !isIntegerBetweenMinAndMax(g) || !isIntegerBetweenMinAndMax(b)) {\r\n return false\r\n }\r\n return true\r\n },\r\n isValidAlpha: function(a) {\r\n if (isNaN(a) || a < 0 || a > 1 || \"number\" !== typeof a) {\r\n return false\r\n }\r\n return true\r\n },\r\n colorIsInvalid: false,\r\n fromHSL: function(hsl) {\r\n var color = new Color;\r\n var rgb = hslToRgb(hsl.h, hsl.s, hsl.l);\r\n color.r = rgb[0];\r\n color.g = rgb[1];\r\n color.b = rgb[2];\r\n return color\r\n }\r\n};\r\nexport default Color;\r\n","/**\r\n * DevExtreme (esm/viz/core/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isExponential,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n adjust,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Color from \"../../color\";\r\nvar {\r\n PI: PI,\r\n LN10: LN10,\r\n abs: abs,\r\n log: log,\r\n floor: floor,\r\n ceil: ceil,\r\n pow: pow,\r\n sqrt: sqrt,\r\n atan2: atan2\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _cos = Math.cos;\r\nvar _sin = Math.sin;\r\nvar _round = Math.round;\r\nvar dateToMilliseconds = dateUtils.dateToMilliseconds;\r\nvar MAX_PIXEL_COUNT = 1e10;\r\nvar PI_DIV_180 = PI / 180;\r\nvar _isNaN = isNaN;\r\nvar _Number = Number;\r\nvar _NaN = NaN;\r\nvar numDefsSvgElements = 1;\r\nexport var PANE_PADDING = 10;\r\nexport var getLog = function(value, base) {\r\n if (!value) {\r\n return _NaN\r\n }\r\n return log(value) / log(base)\r\n};\r\nexport var getAdjustedLog10 = function(value) {\r\n return adjust(getLog(value, 10))\r\n};\r\nexport var raiseTo = function(power, base) {\r\n return pow(base, power)\r\n};\r\nexport var normalizeAngle = function(angle) {\r\n return (angle % 360 + 360) % 360\r\n};\r\nexport var convertAngleToRendererSpace = function(angle) {\r\n return 90 - angle\r\n};\r\nexport var degreesToRadians = function(value) {\r\n return PI * value / 180\r\n};\r\nexport var getCosAndSin = function(angle) {\r\n var angleInRadians = degreesToRadians(angle);\r\n return {\r\n cos: _cos(angleInRadians),\r\n sin: _sin(angleInRadians)\r\n }\r\n};\r\nvar DECIMAL_ORDER_THRESHOLD = 1e-14;\r\nexport var getDistance = function(x1, y1, x2, y2) {\r\n var diffX = x2 - x1;\r\n var diffY = y2 - y1;\r\n return sqrt(diffY * diffY + diffX * diffX)\r\n};\r\nexport var getDecimalOrder = function(number) {\r\n var n = abs(number);\r\n var cn;\r\n if (!_isNaN(n)) {\r\n if (n > 0) {\r\n n = log(n) / LN10;\r\n cn = ceil(n);\r\n return cn - n < DECIMAL_ORDER_THRESHOLD ? cn : floor(n)\r\n }\r\n return 0\r\n }\r\n return _NaN\r\n};\r\nexport var getAppropriateFormat = function(start, end, count) {\r\n var order = _max(getDecimalOrder(start), getDecimalOrder(end));\r\n var precision = -getDecimalOrder(abs(end - start) / count);\r\n var format;\r\n if (!_isNaN(order) && !_isNaN(precision)) {\r\n if (abs(order) <= 4) {\r\n format = \"fixedPoint\";\r\n precision < 0 && (precision = 0);\r\n precision > 4 && (precision = 4)\r\n } else {\r\n format = \"exponential\";\r\n precision += order - 1;\r\n precision > 3 && (precision = 3)\r\n }\r\n return {\r\n type: format,\r\n precision: precision\r\n }\r\n }\r\n return null\r\n};\r\nexport var roundValue = function(value, precision) {\r\n if (precision > 20) {\r\n precision = 20\r\n }\r\n if (isNumeric(value)) {\r\n if (isExponential(value)) {\r\n return _Number(value.toExponential(precision))\r\n } else {\r\n return _Number(value.toFixed(precision))\r\n }\r\n }\r\n};\r\nexport var getPower = function(value) {\r\n return value.toExponential().split(\"e\")[1]\r\n};\r\nexport function map(array, callback) {\r\n var i = 0;\r\n var len = array.length;\r\n var result = [];\r\n var value;\r\n while (i < len) {\r\n value = callback(array[i], i);\r\n if (null !== value) {\r\n result.push(value)\r\n }\r\n i++\r\n }\r\n return result\r\n}\r\n\r\nfunction selectByKeys(object, keys) {\r\n return map(keys, key => object[key] ? object[key] : null)\r\n}\r\n\r\nfunction decreaseFields(object, keys, eachDecrease, decrease) {\r\n var dec = decrease;\r\n each(keys, (_, key) => {\r\n if (object[key]) {\r\n object[key] -= eachDecrease;\r\n dec -= eachDecrease\r\n }\r\n });\r\n return dec\r\n}\r\nexport function normalizeEnum(value) {\r\n return String(value).toLowerCase()\r\n}\r\nexport function setCanvasValues(canvas) {\r\n if (canvas) {\r\n canvas.originalTop = canvas.top;\r\n canvas.originalBottom = canvas.bottom;\r\n canvas.originalLeft = canvas.left;\r\n canvas.originalRight = canvas.right\r\n }\r\n return canvas\r\n}\r\n\r\nfunction normalizeBBoxField(value) {\r\n return -MAX_PIXEL_COUNT < value && value < +MAX_PIXEL_COUNT ? value : 0\r\n}\r\nexport function normalizeBBox(bBox) {\r\n var xl = normalizeBBoxField(floor(bBox.x));\r\n var yt = normalizeBBoxField(floor(bBox.y));\r\n var xr = normalizeBBoxField(ceil(bBox.width + bBox.x));\r\n var yb = normalizeBBoxField(ceil(bBox.height + bBox.y));\r\n var result = {\r\n x: xl,\r\n y: yt,\r\n width: xr - xl,\r\n height: yb - yt\r\n };\r\n result.isEmpty = !result.x && !result.y && !result.width && !result.height;\r\n return result\r\n}\r\nexport function rotateBBox(bBox, center, angle) {\r\n var cos = _Number(_cos(angle * PI_DIV_180).toFixed(3));\r\n var sin = _Number(_sin(angle * PI_DIV_180).toFixed(3));\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n var centerX = bBox.x + w2;\r\n var centerY = bBox.y + h2;\r\n var w2_ = abs(w2 * cos) + abs(h2 * sin);\r\n var h2_ = abs(w2 * sin) + abs(h2 * cos);\r\n var centerX_ = center[0] + (centerX - center[0]) * cos + (centerY - center[1]) * sin;\r\n var centerY_ = center[1] - (centerX - center[0]) * sin + (centerY - center[1]) * cos;\r\n return normalizeBBox({\r\n x: centerX_ - w2_,\r\n y: centerY_ - h2_,\r\n width: 2 * w2_,\r\n height: 2 * h2_\r\n })\r\n}\r\nexport var decreaseGaps = function(object, keys, decrease) {\r\n var arrayGaps;\r\n do {\r\n arrayGaps = selectByKeys(object, keys);\r\n arrayGaps.push(ceil(decrease / arrayGaps.length));\r\n decrease = decreaseFields(object, keys, _min.apply(null, arrayGaps), decrease)\r\n } while (decrease > 0 && arrayGaps.length > 1);\r\n return decrease\r\n};\r\nexport var parseScalar = function(value, defaultValue) {\r\n return void 0 !== value ? value : defaultValue\r\n};\r\nexport var enumParser = function(values) {\r\n var stored = {};\r\n var i;\r\n var ii;\r\n for (i = 0, ii = values.length; i < ii; ++i) {\r\n stored[normalizeEnum(values[i])] = 1\r\n }\r\n return function(value, defaultValue) {\r\n var _value = normalizeEnum(value);\r\n return stored[_value] ? _value : defaultValue\r\n }\r\n};\r\nexport var patchFontOptions = function(options) {\r\n var fontOptions = {};\r\n each(options || {}, (function(key, value) {\r\n if (/^(cursor)$/i.test(key)) {} else if (\"opacity\" === key) {\r\n value = null\r\n } else if (\"color\" === key) {\r\n key = \"fill\";\r\n if (\"opacity\" in options) {\r\n var color = new Color(value);\r\n value = \"rgba(\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b, \",\").concat(options.opacity, \")\")\r\n }\r\n } else {\r\n key = \"font-\" + key\r\n }\r\n fontOptions[key] = value\r\n }));\r\n return fontOptions\r\n};\r\nexport function convertPolarToXY(centerCoords, startAngle, angle, radius) {\r\n var normalizedRadius = radius > 0 ? radius : 0;\r\n angle = isDefined(angle) ? angle + startAngle - 90 : 0;\r\n var cosSin = getCosAndSin(angle);\r\n return {\r\n x: _round(centerCoords.x + normalizedRadius * cosSin.cos),\r\n y: _round(centerCoords.y + normalizedRadius * cosSin.sin)\r\n }\r\n}\r\nexport var convertXYToPolar = function(centerCoords, x, y) {\r\n var radius = getDistance(centerCoords.x, centerCoords.y, x, y);\r\n var angle = atan2(y - centerCoords.y, x - centerCoords.x);\r\n return {\r\n phi: _round(normalizeAngle(180 * angle / PI)),\r\n r: _round(radius)\r\n }\r\n};\r\nexport var processSeriesTemplate = function(seriesTemplate, items) {\r\n var customizeSeries = isFunction(seriesTemplate.customizeSeries) ? seriesTemplate.customizeSeries : noop;\r\n var nameField = seriesTemplate.nameField;\r\n var generatedSeries = {};\r\n var seriesOrder = [];\r\n var series;\r\n var i = 0;\r\n var length;\r\n var data;\r\n items = items || [];\r\n for (length = items.length; i < length; i++) {\r\n data = items[i];\r\n if (nameField in data) {\r\n series = generatedSeries[data[nameField]];\r\n if (!series) {\r\n series = generatedSeries[data[nameField]] = {\r\n name: data[nameField],\r\n nameFieldValue: data[nameField]\r\n };\r\n seriesOrder.push(series.name)\r\n }\r\n }\r\n }\r\n return map(seriesOrder, (function(orderedName) {\r\n var group = generatedSeries[orderedName];\r\n return extend(group, customizeSeries.call(null, group.name))\r\n }))\r\n};\r\nexport var getCategoriesInfo = function(categories, startValue, endValue) {\r\n if (0 === categories.length) {\r\n return {\r\n categories: []\r\n }\r\n }\r\n startValue = isDefined(startValue) ? startValue : categories[0];\r\n endValue = isDefined(endValue) ? endValue : categories[categories.length - 1];\r\n var categoriesValue = map(categories, category => null === category || void 0 === category ? void 0 : category.valueOf());\r\n var indexStartValue = categoriesValue.indexOf(startValue.valueOf());\r\n var indexEndValue = categoriesValue.indexOf(endValue.valueOf());\r\n var swapBuf;\r\n var inverted = false;\r\n indexStartValue < 0 && (indexStartValue = 0);\r\n indexEndValue < 0 && (indexEndValue = categories.length - 1);\r\n if (indexEndValue < indexStartValue) {\r\n swapBuf = indexEndValue;\r\n indexEndValue = indexStartValue;\r\n indexStartValue = swapBuf;\r\n inverted = true\r\n }\r\n var visibleCategories = categories.slice(indexStartValue, indexEndValue + 1);\r\n var lastIdx = visibleCategories.length - 1;\r\n return {\r\n categories: visibleCategories,\r\n start: visibleCategories[inverted ? lastIdx : 0],\r\n end: visibleCategories[inverted ? 0 : lastIdx],\r\n inverted: inverted\r\n }\r\n};\r\nexport function isRelativeHeightPane(pane) {\r\n return !(pane.unit % 2)\r\n}\r\nexport function normalizePanesHeight(panes) {\r\n panes.forEach(pane => {\r\n var height = pane.height;\r\n var unit = 0;\r\n var parsedHeight = parseFloat(height) || void 0;\r\n if (isString(height) && height.indexOf(\"px\") > -1 || isNumeric(height) && height > 1) {\r\n parsedHeight = _round(parsedHeight);\r\n unit = 1\r\n }\r\n if (!unit && parsedHeight) {\r\n if (isString(height) && height.indexOf(\"%\") > -1) {\r\n parsedHeight /= 100;\r\n unit = 2\r\n } else if (parsedHeight < 0) {\r\n parsedHeight = parsedHeight < -1 ? 1 : abs(parsedHeight)\r\n }\r\n }\r\n pane.height = parsedHeight;\r\n pane.unit = unit\r\n });\r\n var relativeHeightPanes = panes.filter(isRelativeHeightPane);\r\n var weightSum = relativeHeightPanes.reduce((prev, next) => prev + (next.height || 0), 0);\r\n var weightHeightCount = relativeHeightPanes.length;\r\n var emptyHeightPanes = relativeHeightPanes.filter(pane => !pane.height);\r\n var emptyHeightCount = emptyHeightPanes.length;\r\n if (weightSum < 1 && emptyHeightCount) {\r\n emptyHeightPanes.forEach(pane => pane.height = (1 - weightSum) / emptyHeightCount)\r\n } else if (weightSum > 1 || weightSum < 1 && !emptyHeightCount || 1 === weightSum && emptyHeightCount) {\r\n if (emptyHeightCount) {\r\n var weightForEmpty = weightSum / weightHeightCount;\r\n var emptyWeightSum = emptyHeightCount * weightForEmpty;\r\n relativeHeightPanes.filter(pane => pane.height).forEach(pane => pane.height *= (weightSum - emptyWeightSum) / weightSum);\r\n emptyHeightPanes.forEach(pane => pane.height = weightForEmpty)\r\n }\r\n relativeHeightPanes.forEach(pane => pane.height *= 1 / weightSum)\r\n }\r\n}\r\nexport function updatePanesCanvases(panes, canvas, rotated) {\r\n var distributedSpace = 0;\r\n var padding = PANE_PADDING;\r\n var paneSpace = rotated ? canvas.width - canvas.left - canvas.right : canvas.height - canvas.top - canvas.bottom;\r\n var totalCustomSpace = panes.reduce((prev, cur) => prev + (!isRelativeHeightPane(cur) ? cur.height : 0), 0);\r\n var usefulSpace = paneSpace - padding * (panes.length - 1) - totalCustomSpace;\r\n var startName = rotated ? \"left\" : \"top\";\r\n var endName = rotated ? \"right\" : \"bottom\";\r\n panes.forEach(pane => {\r\n var calcLength = !isRelativeHeightPane(pane) ? pane.height : _round(pane.height * usefulSpace);\r\n pane.canvas = pane.canvas || {};\r\n extend(pane.canvas, canvas);\r\n pane.canvas[startName] = canvas[startName] + distributedSpace;\r\n pane.canvas[endName] = canvas[endName] + (paneSpace - calcLength - distributedSpace);\r\n distributedSpace = distributedSpace + calcLength + padding;\r\n setCanvasValues(pane.canvas)\r\n })\r\n}\r\nexport var unique = function(array) {\r\n var values = {};\r\n return map(array, (function(item) {\r\n var result = !values[item] ? item : null;\r\n values[item] = true;\r\n return result\r\n }))\r\n};\r\nexport var getVerticallyShiftedAngularCoords = function(bBox, dy, center) {\r\n var isPositive = bBox.x + bBox.width / 2 >= center.x;\r\n var horizontalOffset1 = (isPositive ? bBox.x : bBox.x + bBox.width) - center.x;\r\n var verticalOffset1 = bBox.y - center.y;\r\n var verticalOffset2 = verticalOffset1 + dy;\r\n var horizontalOffset2 = _round(sqrt(horizontalOffset1 * horizontalOffset1 + verticalOffset1 * verticalOffset1 - verticalOffset2 * verticalOffset2));\r\n var dx = (isPositive ? +horizontalOffset2 : -horizontalOffset2) || horizontalOffset1;\r\n return {\r\n x: center.x + (isPositive ? dx : dx - bBox.width),\r\n y: bBox.y + dy\r\n }\r\n};\r\nexport function mergeMarginOptions(opt1, opt2) {\r\n return {\r\n checkInterval: opt1.checkInterval || opt2.checkInterval,\r\n size: _max(opt1.size || 0, opt2.size || 0),\r\n percentStick: opt1.percentStick || opt2.percentStick,\r\n sizePointNormalState: _max(opt1.sizePointNormalState || 0, opt2.sizePointNormalState || 0)\r\n }\r\n}\r\nexport function getVizRangeObject(value) {\r\n if (Array.isArray(value)) {\r\n return {\r\n startValue: value[0],\r\n endValue: value[1]\r\n }\r\n } else {\r\n return value || {}\r\n }\r\n}\r\nexport function normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var isCircle;\r\n var noArc = true;\r\n var angleDiff = roundValue(endAngle, 3) - roundValue(startAngle, 3);\r\n if (angleDiff) {\r\n if (abs(angleDiff) % 360 === 0) {\r\n startAngle = 0;\r\n endAngle = 360;\r\n isCircle = true;\r\n endAngle -= .01\r\n }\r\n if (startAngle > 360) {\r\n startAngle %= 360\r\n }\r\n if (endAngle > 360) {\r\n endAngle %= 360\r\n }\r\n if (startAngle > endAngle) {\r\n startAngle -= 360\r\n }\r\n noArc = false\r\n }\r\n startAngle *= PI_DIV_180;\r\n endAngle *= PI_DIV_180;\r\n return [x, y, Math.min(outerRadius, innerRadius), Math.max(outerRadius, innerRadius), Math.cos(startAngle), Math.sin(startAngle), Math.cos(endAngle), Math.sin(endAngle), isCircle, floor(abs(endAngle - startAngle) / PI) % 2 ? \"1\" : \"0\", noArc]\r\n}\r\nexport function convertVisualRangeObject(visualRange, convertToVisualRange) {\r\n if (convertToVisualRange) {\r\n return visualRange\r\n }\r\n return [visualRange.startValue, visualRange.endValue]\r\n}\r\nexport function getAddFunction(range, correctZeroLevel) {\r\n if (\"datetime\" === range.dataType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n return new Date(rangeValue.getTime() + sign * marginValue)\r\n }\r\n }\r\n if (\"logarithmic\" === range.axisType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var log = getLogExt(rangeValue, range.base) + sign * marginValue;\r\n return raiseToExt(log, range.base)\r\n }\r\n }\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var newValue = rangeValue + sign * marginValue;\r\n return correctZeroLevel && newValue * rangeValue <= 0 ? 0 : newValue\r\n }\r\n}\r\nexport function adjustVisualRange(options, visualRange, wholeRange, dataRange) {\r\n var minDefined = isDefined(visualRange.startValue);\r\n var maxDefined = isDefined(visualRange.endValue);\r\n var nonDiscrete = \"discrete\" !== options.axisType;\r\n dataRange = dataRange || wholeRange;\r\n var add = getAddFunction(options, false);\r\n var min = minDefined ? visualRange.startValue : dataRange.min;\r\n var max = maxDefined ? visualRange.endValue : dataRange.max;\r\n var rangeLength = visualRange.length;\r\n var categories = dataRange.categories;\r\n if (nonDiscrete && !isDefined(min) && !isDefined(max)) {\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n }\r\n if (isDefined(rangeLength)) {\r\n if (nonDiscrete) {\r\n if (\"datetime\" === options.dataType && !isNumeric(rangeLength)) {\r\n rangeLength = dateToMilliseconds(rangeLength)\r\n }\r\n if (maxDefined && !minDefined || !maxDefined && !minDefined) {\r\n isDefined(wholeRange.max) && (max = max > wholeRange.max ? wholeRange.max : max);\r\n min = add(max, rangeLength, -1)\r\n } else if (minDefined && !maxDefined) {\r\n isDefined(wholeRange.min) && (min = min < wholeRange.min ? wholeRange.min : min);\r\n max = add(min, rangeLength)\r\n }\r\n } else {\r\n rangeLength = parseInt(rangeLength);\r\n if (!isNaN(rangeLength) && isFinite(rangeLength)) {\r\n rangeLength--;\r\n if (!maxDefined && !minDefined) {\r\n max = categories[categories.length - 1];\r\n min = categories[categories.length - 1 - rangeLength]\r\n } else if (minDefined && !maxDefined) {\r\n var categoriesInfo = getCategoriesInfo(categories, min, void 0);\r\n max = categoriesInfo.categories[rangeLength]\r\n } else if (!minDefined && maxDefined) {\r\n var _categoriesInfo = getCategoriesInfo(categories, void 0, max);\r\n min = _categoriesInfo.categories[_categoriesInfo.categories.length - 1 - rangeLength]\r\n }\r\n }\r\n }\r\n }\r\n if (nonDiscrete) {\r\n if (isDefined(wholeRange.max) && max > wholeRange.max) {\r\n max = wholeRange.max\r\n }\r\n if (isDefined(wholeRange.min) && min < wholeRange.min) {\r\n min = wholeRange.min\r\n }\r\n }\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n}\r\nexport function getLogExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return getLog(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = getLog(abs(value), base) - (linearThreshold - 1);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold - 1).toFixed(abs(linearThreshold))))\r\n}\r\nexport function raiseToExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return raiseTo(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = raiseTo(abs(value) + (linearThreshold - 1), base);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold).toFixed(abs(linearThreshold))))\r\n}\r\nexport function rangesAreEqual(range, rangeFromOptions) {\r\n if (Array.isArray(rangeFromOptions)) {\r\n return range.length === rangeFromOptions.length && range.every((item, i) => valueOf(item) === valueOf(rangeFromOptions[i]))\r\n } else {\r\n return valueOf(range.startValue) === valueOf(rangeFromOptions.startValue) && valueOf(range.endValue) === valueOf(rangeFromOptions.endValue)\r\n }\r\n}\r\nexport function valueOf(value) {\r\n return value && value.valueOf()\r\n}\r\nexport function pointInCanvas(canvas, x, y) {\r\n return x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom\r\n}\r\nexport var getNextDefsSvgId = () => \"DevExpress_\".concat(numDefsSvgElements++);\r\nexport function extractColor(color, isBase) {\r\n if (isString(color) || !color) {\r\n return color\r\n } else if (isBase) {\r\n return color.base\r\n } else {\r\n return color.fillId || color.base\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport consts from \"../components/consts\";\r\nimport {\r\n getDistance,\r\n pointInCanvas as inCanvas,\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport errors from \"../../core/errors\";\r\nvar _floor = Math.floor;\r\nvar eventsConsts = consts.events;\r\nvar statesConsts = consts.states;\r\nvar HOVER_STATE = statesConsts.hoverMark;\r\nvar NORMAL_STATE = statesConsts.normalMark;\r\nvar EVENT_NS = \"dxChartTracker\";\r\nvar DOT_EVENT_NS = \".\" + EVENT_NS;\r\nvar POINTER_ACTION = addNamespace([pointerEvents.down, pointerEvents.move], EVENT_NS);\r\nvar LEGEND_CLICK = \"legendClick\";\r\nvar SERIES_CLICK = \"seriesClick\";\r\nvar POINT_CLICK = \"pointClick\";\r\nvar POINT_DATA = \"chart-data-point\";\r\nvar SERIES_DATA = \"chart-data-series\";\r\nvar ARG_DATA = \"chart-data-argument\";\r\nvar DELAY = 100;\r\nvar HOLD_TIMEOUT = 300;\r\nvar NONE_MODE = \"none\";\r\nvar ALL_ARGUMENT_POINTS_MODE = \"allargumentpoints\";\r\nvar INCLUDE_POINTS_MODE = \"includepoints\";\r\nvar EXLUDE_POINTS_MODE = \"excludepoints\";\r\nvar LEGEND_HOVER_MODES = [INCLUDE_POINTS_MODE, EXLUDE_POINTS_MODE, NONE_MODE];\r\n\r\nfunction getData(event, dataKey, tryCheckParent) {\r\n var target = event.target;\r\n if (\"tspan\" === target.tagName) {\r\n return target.parentNode[dataKey]\r\n }\r\n var data = target[dataKey];\r\n if (tryCheckParent && !isDefined(data)) {\r\n return function getParentData(node) {\r\n if (node.parentNode) {\r\n if (isDefined(node.parentNode[dataKey])) {\r\n return node.parentNode[dataKey]\r\n } else {\r\n return getParentData(node.parentNode)\r\n }\r\n }\r\n return\r\n }(target)\r\n }\r\n return data\r\n}\r\n\r\nfunction eventCanceled(_ref, target, clickTarget) {\r\n var {\r\n event: event,\r\n cancel: cancel\r\n } = _ref;\r\n var deprecatedCancel = event.cancel;\r\n var eventCanceled = cancel || deprecatedCancel;\r\n if (deprecatedCancel) {\r\n errors.log(\"W0003\", \"\".concat(clickTarget, \"Click handler argument\"), \"event.cancel\", \"22.1\", \"Use the 'cancel' field instead\")\r\n }\r\n return eventCanceled || !target.getOptions()\r\n}\r\n\r\nfunction correctLegendHoverMode(mode) {\r\n if (LEGEND_HOVER_MODES.indexOf(mode) > -1) {\r\n return mode\r\n } else {\r\n return INCLUDE_POINTS_MODE\r\n }\r\n}\r\n\r\nfunction correctHoverMode(target) {\r\n var mode = target.getOptions().hoverMode;\r\n return mode === NONE_MODE ? mode : ALL_ARGUMENT_POINTS_MODE\r\n}\r\nvar baseTrackerPrototype = {\r\n ctor: function(options) {\r\n var that = this;\r\n var data = {\r\n tracker: that\r\n };\r\n that._renderer = options.renderer;\r\n that._legend = options.legend;\r\n that._tooltip = options.tooltip;\r\n that._eventTrigger = options.eventTrigger;\r\n that._seriesGroup = options.seriesGroup;\r\n options.seriesGroup.off(DOT_EVENT_NS).on(addNamespace(eventsConsts.showPointTooltip, EVENT_NS), data, that._showPointTooltip).on(addNamespace(eventsConsts.hidePointTooltip, EVENT_NS), data, that._hidePointTooltip);\r\n that._renderer.root.off(DOT_EVENT_NS).on(POINTER_ACTION, data, that._pointerHandler).on(addNamespace(pointerEvents.up, EVENT_NS), () => clearTimeout(that._holdTimer)).on(addNamespace(clickEventName, EVENT_NS), data, that._clickHandler)\r\n },\r\n update: function(options) {\r\n this._chart = options.chart\r\n },\r\n updateSeries(series, resetDecorations) {\r\n var that = this;\r\n var noHoveredSeries = !(null !== series && void 0 !== series && series.some(s => s === that.hoveredSeries) || that._hoveredPoint && that._hoveredPoint.series);\r\n if (that._storedSeries !== series) {\r\n that._storedSeries = series || []\r\n }\r\n if (noHoveredSeries) {\r\n that._clean();\r\n that._renderer.initDefsElements()\r\n }\r\n if (resetDecorations) {\r\n that.clearSelection();\r\n if (!noHoveredSeries) {\r\n that._hideTooltip(that.pointAtShownTooltip);\r\n that.clearHover()\r\n }\r\n }\r\n },\r\n setCanvases: function(mainCanvas, paneCanvases) {\r\n this._mainCanvas = mainCanvas;\r\n this._canvases = paneCanvases\r\n },\r\n repairTooltip: function() {\r\n var point = this.pointAtShownTooltip;\r\n if (!point || !point.series || !point.isVisible()) {\r\n this._hideTooltip(point, true)\r\n } else {\r\n this._showTooltip(point)\r\n }\r\n },\r\n _setHoveredPoint: function(point) {\r\n if (point === this._hoveredPoint) {\r\n return\r\n }\r\n this._releaseHoveredPoint();\r\n point.hover();\r\n this._hoveredPoint = point\r\n },\r\n _releaseHoveredPoint: function(isPointerOut) {\r\n if (this._hoveredPoint && this._hoveredPoint.getOptions()) {\r\n this._hoveredPoint.clearHover();\r\n this._hoveredPoint = null;\r\n if (this._tooltip.isEnabled()) {\r\n this._hideTooltip(this._hoveredPoint, false, isPointerOut)\r\n }\r\n }\r\n },\r\n _setHoveredSeries: function(series, mode) {\r\n this._releaseHoveredSeries();\r\n this._releaseHoveredPoint();\r\n series.hover(mode);\r\n this.hoveredSeries = series\r\n },\r\n _releaseHoveredSeries() {\r\n if (this.hoveredSeries) {\r\n this.hoveredSeries.clearHover();\r\n this.hoveredSeries = null\r\n }\r\n },\r\n clearSelection() {\r\n this._storedSeries.forEach(series => {\r\n if (series) {\r\n series.clearSelection();\r\n series.getPoints().forEach(point => point.clearSelection())\r\n }\r\n })\r\n },\r\n _clean: function() {\r\n this.hoveredPoint = this.hoveredSeries = this._hoveredArgumentPoints = null;\r\n this._hideTooltip(this.pointAtShownTooltip)\r\n },\r\n clearHover: function(isPointerOut) {\r\n this._resetHoveredArgument();\r\n this._releaseHoveredSeries();\r\n this._releaseHoveredPoint(isPointerOut)\r\n },\r\n _hideTooltip: function(point, silent, isPointerOut) {\r\n if (!this._tooltip || point && this.pointAtShownTooltip !== point) {\r\n return\r\n }\r\n if (!silent && this.pointAtShownTooltip) {\r\n this.pointAtShownTooltip = null\r\n }\r\n this._tooltip.hide(!!isPointerOut)\r\n },\r\n _showTooltip: function(point) {\r\n var that = this;\r\n var tooltipFormatObject;\r\n var eventData = {\r\n target: point\r\n };\r\n if (null !== point && void 0 !== point && point.getOptions()) {\r\n tooltipFormatObject = point.getTooltipFormatObject(that._tooltip, that._tooltip.isShared() && that._chart.getStackedPoints(point));\r\n if (!isDefined(tooltipFormatObject.valueText) && !tooltipFormatObject.points || !point.isVisible()) {\r\n return\r\n }\r\n var coords = point.getTooltipParams(that._tooltip.getLocation());\r\n var rootOffset = that._renderer.getRootOffset();\r\n coords.x += rootOffset.left;\r\n coords.y += rootOffset.top;\r\n var callback = result => {\r\n result && (that.pointAtShownTooltip = point)\r\n };\r\n callback(that._tooltip.show(tooltipFormatObject, coords, eventData, void 0, callback))\r\n }\r\n },\r\n _showPointTooltip: function(event, point) {\r\n var that = event.data.tracker;\r\n var pointWithTooltip = that.pointAtShownTooltip;\r\n if (pointWithTooltip && pointWithTooltip !== point) {\r\n that._hideTooltip(pointWithTooltip)\r\n }\r\n that._showTooltip(point)\r\n },\r\n _hidePointTooltip: function(event, point) {\r\n event.data.tracker._hideTooltip(point, false, true)\r\n },\r\n _enableOutHandler: function() {\r\n if (this._outHandler) {\r\n return\r\n }\r\n var that = this;\r\n var handler = function(e) {\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n if (!inCanvas(that._mainCanvas, x, y) && !that._isCursorOnTooltip(e)) {\r\n that._pointerOut();\r\n that._disableOutHandler()\r\n }\r\n };\r\n eventsEngine.on(domAdapter.getDocument(), POINTER_ACTION, handler);\r\n this._outHandler = handler\r\n },\r\n _isCursorOnTooltip: function(e) {\r\n return this._tooltip.isEnabled() && this._tooltip.isCursorOnTooltip(e.pageX, e.pageY)\r\n },\r\n _disableOutHandler: function() {\r\n this._outHandler && eventsEngine.off(domAdapter.getDocument(), POINTER_ACTION, this._outHandler);\r\n this._outHandler = null\r\n },\r\n stopCurrentHandling: function() {\r\n this._pointerOut(true)\r\n },\r\n _pointerOut: function(force) {\r\n this.clearHover(true);\r\n (force || this._tooltip.isEnabled()) && this._hideTooltip(this.pointAtShownTooltip, false, true)\r\n },\r\n _triggerLegendClick: function(eventArgs, elementClick) {\r\n var eventTrigger = this._eventTrigger;\r\n eventTrigger(LEGEND_CLICK, eventArgs, (function() {\r\n !eventCanceled(eventArgs, eventArgs.target, \"legend\") && eventTrigger(elementClick, eventArgs)\r\n }))\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n var series;\r\n var legendHoverMode = correctLegendHoverMode(this._legend.getOptions().hoverMode);\r\n if (item) {\r\n series = this._storedSeries[item.id];\r\n if (!series.isHovered() || series.lastHoverMode !== legendHoverMode) {\r\n this._setHoveredSeries(series, legendHoverMode)\r\n }\r\n this._tooltip.isEnabled() && this._hideTooltip(this.pointAtShownTooltip)\r\n } else {\r\n this.clearHover()\r\n }\r\n },\r\n _hoverArgument: function(argument, argumentIndex) {\r\n var hoverMode = this._getArgumentHoverMode();\r\n if (isDefined(argument)) {\r\n this._releaseHoveredPoint();\r\n this._hoveredArgument = argument;\r\n this._argumentIndex = argumentIndex;\r\n this._notifySeries({\r\n action: \"pointHover\",\r\n notifyLegend: this._notifyLegendOnHoverArgument,\r\n target: {\r\n argument: argument,\r\n fullState: HOVER_STATE,\r\n argumentIndex: argumentIndex,\r\n getOptions: function() {\r\n return {\r\n hoverMode: hoverMode\r\n }\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _resetHoveredArgument: function() {\r\n var hoverMode;\r\n if (isDefined(this._hoveredArgument)) {\r\n hoverMode = this._getArgumentHoverMode();\r\n this._notifySeries({\r\n action: \"clearPointHover\",\r\n notifyLegend: this._notifyLegendOnHoverArgument,\r\n target: {\r\n fullState: NORMAL_STATE,\r\n argumentIndex: this._argumentIndex,\r\n argument: this._hoveredArgument,\r\n getOptions: function() {\r\n return {\r\n hoverMode: hoverMode\r\n }\r\n }\r\n }\r\n });\r\n this._hoveredArgument = null\r\n }\r\n },\r\n _notifySeries: function(data) {\r\n this._storedSeries.forEach((function(series) {\r\n series.notify(data)\r\n }))\r\n },\r\n _pointerHandler: function(e) {\r\n var _series;\r\n var that = e.data.tracker;\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n var canvas = that._getCanvas(x, y);\r\n var series = getData(e, SERIES_DATA);\r\n var point = getData(e, POINT_DATA) || (null === (_series = series) || void 0 === _series ? void 0 : _series.getPointByCoord(x, y));\r\n that._isHolding = false;\r\n clearTimeout(that._holdTimer);\r\n if (e.type === pointerEvents.down) {\r\n that._holdTimer = setTimeout(() => that._isHolding = true, HOLD_TIMEOUT)\r\n }\r\n if (point && !point.getMarkerVisibility()) {\r\n point = void 0\r\n }\r\n that._enableOutHandler();\r\n if (that._legend.coordsIn(x, y)) {\r\n that._hoverLegendItem(x, y);\r\n return\r\n }\r\n if (that.hoveredSeries && that.hoveredSeries !== that._stuckSeries) {\r\n that._releaseHoveredSeries()\r\n }\r\n if (that._hoverArgumentAxis(x, y, e)) {\r\n return\r\n }\r\n if (that._isPointerOut(canvas, point)) {\r\n that._pointerOut()\r\n }\r\n if (!canvas && !point) {\r\n return\r\n }\r\n if (series && !point) {\r\n point = series.getNeighborPoint(x, y);\r\n if (!that._stickyHovering && point && !point.coordsIn(x, y)) {\r\n point = null\r\n }\r\n if (series !== that.hoveredSeries) {\r\n that._setTimeout((function() {\r\n that._setHoveredSeries(series);\r\n that._setStuckSeries(e, series, x, y);\r\n that._pointerComplete(point, x, y)\r\n }), series);\r\n return\r\n }\r\n } else if (point) {\r\n if (e.type !== pointerEvents.move && \"touch\" !== e.pointerType) {\r\n return\r\n }\r\n if (that.hoveredSeries) {\r\n that._setTimeout(() => that._pointerOnPoint(point, x, y, e), point)\r\n } else {\r\n that._pointerOnPoint(point, x, y, e)\r\n }\r\n return\r\n } else if (that._setStuckSeries(e, void 0, x, y) && that._stickyHovering) {\r\n var _point;\r\n series = that._stuckSeries;\r\n point = series.getNeighborPoint(x, y);\r\n that._releaseHoveredSeries();\r\n (null === (_point = point) || void 0 === _point ? void 0 : _point.getMarkerVisibility()) && that._setHoveredPoint(point)\r\n } else if (!that._stickyHovering) {\r\n that._pointerOut()\r\n }\r\n that._pointerComplete(point, x, y)\r\n },\r\n _pointerOnPoint: function(point, x, y) {\r\n this._resetHoveredArgument();\r\n this._setHoveredPoint(point);\r\n this._pointerComplete(point, x, y)\r\n },\r\n _pointerComplete: function(point) {\r\n this.pointAtShownTooltip !== point && this._tooltip.isEnabled() && this._showTooltip(point)\r\n },\r\n _clickHandler: function(e) {\r\n var _point2;\r\n var that = e.data.tracker;\r\n if (that._isHolding) {\r\n return\r\n }\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n var point = getData(e, POINT_DATA);\r\n var series = that._stuckSeries || getData(e, SERIES_DATA) || (null === (_point2 = point) || void 0 === _point2 ? void 0 : _point2.series);\r\n var axis = that._argumentAxis;\r\n if (that._legend.coordsIn(x, y)) {\r\n var item = that._legend.getItemByCoord(x, y);\r\n if (item) {\r\n that._legendClick(item, e)\r\n }\r\n } else if (null !== axis && void 0 !== axis && axis.coordsIn(x, y)) {\r\n var argument = getData(e, ARG_DATA, true);\r\n if (isDefined(argument)) {\r\n that._eventTrigger(\"argumentAxisClick\", {\r\n argument: argument,\r\n event: e\r\n })\r\n }\r\n } else if (series) {\r\n var _point3;\r\n point = point || series.getPointByCoord(x, y);\r\n if (null !== (_point3 = point) && void 0 !== _point3 && _point3.getMarkerVisibility()) {\r\n that._pointClick(point, e)\r\n } else {\r\n getData(e, SERIES_DATA) && that._eventTrigger(SERIES_CLICK, {\r\n target: series,\r\n event: e\r\n })\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._disableOutHandler();\r\n this._renderer.root.off(DOT_EVENT_NS);\r\n this._seriesGroup.off(DOT_EVENT_NS)\r\n }\r\n};\r\nexport var ChartTracker = function(options) {\r\n this.ctor(options)\r\n};\r\nextend(ChartTracker.prototype, baseTrackerPrototype, {\r\n _pointClick: function(point, event) {\r\n var eventTrigger = this._eventTrigger;\r\n var series = point.series;\r\n var eventArgs = {\r\n target: point,\r\n event: event\r\n };\r\n eventTrigger(POINT_CLICK, eventArgs, (function() {\r\n !eventCanceled(eventArgs, series, \"point\") && eventTrigger(SERIES_CLICK, {\r\n target: series,\r\n event: event\r\n })\r\n }))\r\n },\r\n update: function(options) {\r\n baseTrackerPrototype.update.call(this, options);\r\n this._argumentAxis = options.argumentAxis || {};\r\n this._axisHoverEnabled = this._argumentAxis && _normalizeEnum(this._argumentAxis.getOptions().hoverMode) === ALL_ARGUMENT_POINTS_MODE;\r\n this._rotated = options.rotated;\r\n this._crosshair = options.crosshair;\r\n this._stickyHovering = options.stickyHovering\r\n },\r\n _getCanvas: function(x, y) {\r\n var canvases = this._canvases || [];\r\n for (var i = 0; i < canvases.length; i++) {\r\n var c = canvases[i];\r\n if (inCanvas(c, x, y)) {\r\n return c\r\n }\r\n }\r\n return null\r\n },\r\n _isPointerOut: function(canvas) {\r\n return !canvas && this._stuckSeries\r\n },\r\n _hideCrosshair: function() {\r\n var _this$_crosshair;\r\n null === (_this$_crosshair = this._crosshair) || void 0 === _this$_crosshair ? void 0 : _this$_crosshair.hide()\r\n },\r\n _moveCrosshair: function(point, x, y) {\r\n if (this._crosshair && null !== point && void 0 !== point && point.isVisible()) {\r\n this._crosshair.show({\r\n point: point,\r\n x: x,\r\n y: y\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n baseTrackerPrototype._clean.call(this);\r\n this._resetTimer();\r\n this._stuckSeries = null\r\n },\r\n _getSeriesForShared: function(x, y) {\r\n var _point4;\r\n var points = [];\r\n var point = null;\r\n var distance = 1 / 0;\r\n if (this._tooltip.isShared() && !this.hoveredSeries) {\r\n _each(this._storedSeries, (function(_, series) {\r\n var point = series.getNeighborPoint(x, y);\r\n point && points.push(point)\r\n }));\r\n _each(points, (function(_, p) {\r\n var coords = p.getCrosshairData(x, y);\r\n var d = getDistance(x, y, coords.x, coords.y);\r\n if (d < distance) {\r\n point = p;\r\n distance = d\r\n }\r\n }))\r\n }\r\n return null === (_point4 = point) || void 0 === _point4 ? void 0 : _point4.series\r\n },\r\n _setTimeout: function(callback, keeper) {\r\n var that = this;\r\n if (that._timeoutKeeper !== keeper) {\r\n that._resetTimer();\r\n that._hoverTimeout = setTimeout((function() {\r\n callback();\r\n that._timeoutKeeper = null\r\n }), DELAY);\r\n that._timeoutKeeper = keeper\r\n }\r\n },\r\n _resetTimer: function() {\r\n clearTimeout(this._hoverTimeout);\r\n this._timeoutKeeper = this._hoverTimeout = null\r\n },\r\n _stopEvent: function(e) {\r\n if (!isDefined(e.cancelable) || e.cancelable) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n },\r\n _setStuckSeries: function(e, series, x, y) {\r\n if (\"mouse\" !== e.pointerType) {\r\n this._stuckSeries = null\r\n } else {\r\n this._stuckSeries = series || this._stuckSeries || this._getSeriesForShared(x, y)\r\n }\r\n return !!this._stuckSeries\r\n },\r\n _pointerOut: function() {\r\n var that = this;\r\n that._stuckSeries = null;\r\n that._hideCrosshair();\r\n that._resetTimer();\r\n baseTrackerPrototype._pointerOut.apply(that, arguments)\r\n },\r\n _hoverArgumentAxis: function(x, y, e) {\r\n this._resetHoveredArgument();\r\n if (this._axisHoverEnabled && this._argumentAxis.coordsIn(x, y)) {\r\n this._hoverArgument(getData(e, ARG_DATA, true));\r\n return true\r\n }\r\n },\r\n _pointerComplete: function(point, x, y) {\r\n this.hoveredSeries && this.hoveredSeries.updateHover(x, y);\r\n this._resetTimer();\r\n this._moveCrosshair(point, x, y);\r\n baseTrackerPrototype._pointerComplete.call(this, point)\r\n },\r\n _legendClick: function(item, e) {\r\n var series = this._storedSeries[item.id];\r\n this._triggerLegendClick({\r\n target: series,\r\n event: e\r\n }, SERIES_CLICK)\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n this._stuckSeries = null;\r\n this._hideCrosshair();\r\n baseTrackerPrototype._hoverLegendItem.call(this, x, y)\r\n },\r\n _pointerOnPoint: function(point, x, y, e) {\r\n this._setStuckSeries(e, point.series, x, y);\r\n this._releaseHoveredSeries();\r\n baseTrackerPrototype._pointerOnPoint.call(this, point, x, y, e)\r\n },\r\n _notifyLegendOnHoverArgument: false,\r\n _getArgumentHoverMode: function() {\r\n return correctHoverMode(this._argumentAxis)\r\n },\r\n dispose: function() {\r\n this._resetTimer();\r\n baseTrackerPrototype.dispose.call(this)\r\n }\r\n});\r\nexport var PieTracker = function(options) {\r\n this.ctor(options)\r\n};\r\nextend(PieTracker.prototype, baseTrackerPrototype, {\r\n _isPointerOut: function(_, point) {\r\n return !point\r\n },\r\n _legendClick: function(item, e) {\r\n var points = [];\r\n this._storedSeries.forEach(s => points.push.apply(points, s.getPointsByKeys(item.argument, item.argumentIndex)));\r\n this._eventTrigger(LEGEND_CLICK, {\r\n target: item.argument,\r\n points: points,\r\n event: e\r\n })\r\n },\r\n _pointClick: function(point, e) {\r\n this._eventTrigger(POINT_CLICK, {\r\n target: point,\r\n event: e\r\n })\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n if (item && this._hoveredArgument !== item.argument) {\r\n this._resetHoveredArgument();\r\n this._hoverArgument(item.argument, item.argumentIndex)\r\n } else if (!item) {\r\n this.clearHover()\r\n }\r\n },\r\n _getArgumentHoverMode: function() {\r\n return correctHoverMode(this._legend)\r\n },\r\n _hoverArgumentAxis: _noop,\r\n _setStuckSeries: _noop,\r\n _getCanvas: _noop,\r\n _notifyLegendOnHoverArgument: true\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/palette.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar _floor = Math.floor;\r\nvar _ceil = Math.ceil;\r\nimport _Color from \"../color\";\r\nvar _isArray = Array.isArray;\r\nimport {\r\n isString as _isString\r\n} from \"../core/utils/type\";\r\nvar HIGHLIGHTING_STEP = 50;\r\nvar DEFAULT_PALETTE = \"material\";\r\nvar officePalette = {\r\n simpleSet: [\"#5f8b95\", \"#ba4d51\", \"#af8a53\", \"#955f71\", \"#859666\", \"#7e688c\"],\r\n indicatingSet: [\"#a3b97c\", \"#e1b676\", \"#ec7f83\"],\r\n gradientSet: [\"#5f8b95\", \"#ba4d51\"],\r\n accentColor: \"#ba4d51\"\r\n};\r\nvar palettes = {\r\n [DEFAULT_PALETTE]: {\r\n simpleSet: [\"#1db2f5\", \"#f5564a\", \"#97c95c\", \"#ffc720\", \"#eb3573\", \"#a63db8\"],\r\n indicatingSet: [\"#97c95c\", \"#ffc720\", \"#f5564a\"],\r\n gradientSet: [\"#1db2f5\", \"#97c95c\"],\r\n accentColor: \"#1db2f5\"\r\n },\r\n office: officePalette,\r\n \"harmony light\": {\r\n simpleSet: [\"#fcb65e\", \"#679ec5\", \"#ad79ce\", \"#7abd5c\", \"#e18e92\", \"#b6d623\", \"#b7abea\", \"#85dbd5\"],\r\n indicatingSet: [\"#b6d623\", \"#fcb65e\", \"#e18e92\"],\r\n gradientSet: [\"#7abd5c\", \"#fcb65e\"],\r\n accentColor: \"#679ec5\"\r\n },\r\n \"soft pastel\": {\r\n simpleSet: [\"#60a69f\", \"#78b6d9\", \"#6682bb\", \"#a37182\", \"#eeba69\", \"#90ba58\", \"#456c68\", \"#7565a4\"],\r\n indicatingSet: [\"#90ba58\", \"#eeba69\", \"#a37182\"],\r\n gradientSet: [\"#78b6d9\", \"#eeba69\"],\r\n accentColor: \"#60a69f\"\r\n },\r\n pastel: {\r\n simpleSet: [\"#bb7862\", \"#70b3a1\", \"#bb626a\", \"#057d85\", \"#ab394b\", \"#dac599\", \"#153459\", \"#b1d2c6\"],\r\n indicatingSet: [\"#70b3a1\", \"#dac599\", \"#bb626a\"],\r\n gradientSet: [\"#bb7862\", \"#70b3a1\"],\r\n accentColor: \"#bb7862\"\r\n },\r\n bright: {\r\n simpleSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\", \"#e97f02\", \"#9d419c\", \"#7e4452\", \"#9ab57e\", \"#36a3a6\"],\r\n indicatingSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\"],\r\n gradientSet: [\"#e97f02\", \"#f8ca00\"],\r\n accentColor: \"#e97f02\"\r\n },\r\n soft: {\r\n simpleSet: [\"#cbc87b\", \"#9ab57e\", \"#e55253\", \"#7e4452\", \"#e8c267\", \"#565077\", \"#6babac\", \"#ad6082\"],\r\n indicatingSet: [\"#9ab57e\", \"#e8c267\", \"#e55253\"],\r\n gradientSet: [\"#9ab57e\", \"#e8c267\"],\r\n accentColor: \"#565077\"\r\n },\r\n ocean: {\r\n simpleSet: [\"#75c099\", \"#acc371\", \"#378a8a\", \"#5fa26a\", \"#064970\", \"#38c5d2\", \"#00a7c6\", \"#6f84bb\"],\r\n indicatingSet: [\"#c8e394\", \"#7bc59d\", \"#397c8b\"],\r\n gradientSet: [\"#acc371\", \"#38c5d2\"],\r\n accentColor: \"#378a8a\"\r\n },\r\n vintage: {\r\n simpleSet: [\"#dea484\", \"#efc59c\", \"#cb715e\", \"#eb9692\", \"#a85c4c\", \"#f2c0b5\", \"#c96374\", \"#dd956c\"],\r\n indicatingSet: [\"#ffe5c6\", \"#f4bb9d\", \"#e57660\"],\r\n gradientSet: [\"#efc59c\", \"#cb715e\"],\r\n accentColor: \"#cb715e\"\r\n },\r\n violet: {\r\n simpleSet: [\"#d1a1d1\", \"#eeacc5\", \"#7b5685\", \"#7e7cad\", \"#a13d73\", \"#5b41ab\", \"#e287e2\", \"#689cc1\"],\r\n indicatingSet: [\"#d8e2f6\", \"#d0b2da\", \"#d56a8a\"],\r\n gradientSet: [\"#eeacc5\", \"#7b5685\"],\r\n accentColor: \"#7b5685\"\r\n },\r\n carmine: {\r\n simpleSet: [\"#fb7764\", \"#73d47f\", \"#fed85e\", \"#d47683\", \"#dde392\", \"#757ab2\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#fb7764\", \"#73d47f\"],\r\n accentColor: \"#f05b41\"\r\n },\r\n \"dark moon\": {\r\n simpleSet: [\"#4ddac1\", \"#f4c99a\", \"#80dd9b\", \"#f998b3\", \"#4aaaa0\", \"#a5aef1\"],\r\n indicatingSet: [\"#59d8a4\", \"#f0ad4e\", \"#f9517e\"],\r\n gradientSet: [\"#4ddac1\", \"#f4c99a\"],\r\n accentColor: \"#3debd3\"\r\n },\r\n \"soft blue\": {\r\n simpleSet: [\"#7ab8eb\", \"#97da97\", \"#facb86\", \"#e78683\", \"#839bda\", \"#4db7be\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#7ab8eb\", \"#97da97\"],\r\n accentColor: \"#7ab8eb\"\r\n },\r\n \"dark violet\": {\r\n simpleSet: [\"#9c63ff\", \"#64c064\", \"#eead51\", \"#d2504b\", \"#4b6bbf\", \"#2da7b0\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#9c63ff\", \"#64c064\"],\r\n accentColor: \"#9c63ff\"\r\n },\r\n \"green mist\": {\r\n simpleSet: [\"#3cbab2\", \"#8ed962\", \"#5b9d95\", \"#efcc7c\", \"#f1929f\", \"#4d8dab\"],\r\n indicatingSet: [\"#72d63c\", \"#ffc852\", \"#f74a5e\"],\r\n gradientSet: [\"#3cbab2\", \"#8ed962\"],\r\n accentColor: \"#3cbab2\"\r\n }\r\n};\r\nvar currentPaletteName;\r\nexport function currentPalette(name) {\r\n if (void 0 === name) {\r\n return currentPaletteName || DEFAULT_PALETTE\r\n } else {\r\n name = normalizeEnum(name);\r\n currentPaletteName = name in palettes ? name : void 0\r\n }\r\n}\r\nexport function generateColors(palette, count) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\r\n keepLastColorInEnd: false\r\n };\r\n options.type = options.baseColorSet;\r\n options.extensionMode = options.paletteExtensionMode;\r\n return createPalette(palette, options).generateColors(count)\r\n}\r\nexport function getPalette(palette, parameters) {\r\n parameters = parameters || {};\r\n palette = palette || (void 0 === currentPaletteName ? parameters.themeDefault : currentPalette());\r\n var result;\r\n var type = parameters.type;\r\n if (_isArray(palette)) {\r\n return palette.slice(0)\r\n } else {\r\n if (_isString(palette)) {\r\n result = palettes[normalizeEnum(palette)]\r\n }\r\n if (!result) {\r\n result = palettes[currentPalette()]\r\n }\r\n }\r\n return type ? result[type].slice(0) : result\r\n}\r\nexport function registerPalette(name, palette) {\r\n var item = {};\r\n var paletteName;\r\n if (_isArray(palette)) {\r\n item.simpleSet = palette.slice(0)\r\n } else if (palette) {\r\n item.simpleSet = _isArray(palette.simpleSet) ? palette.simpleSet.slice(0) : void 0;\r\n item.indicatingSet = _isArray(palette.indicatingSet) ? palette.indicatingSet.slice(0) : void 0;\r\n item.gradientSet = _isArray(palette.gradientSet) ? palette.gradientSet.slice(0) : void 0;\r\n item.accentColor = palette.accentColor\r\n }\r\n if (!item.accentColor) {\r\n item.accentColor = item.simpleSet && item.simpleSet[0]\r\n }\r\n if (item.simpleSet || item.indicatingSet || item.gradientSet) {\r\n paletteName = normalizeEnum(name);\r\n extend(palettes[paletteName] = palettes[paletteName] || {}, item)\r\n }\r\n}\r\nexport function getAccentColor(palette, themeDefault) {\r\n palette = getPalette(palette, {\r\n themeDefault: themeDefault\r\n });\r\n return palette.accentColor || palette[0]\r\n}\r\n\r\nfunction RingBuf(buf) {\r\n var ind = 0;\r\n this.next = function() {\r\n var res = buf[ind++];\r\n if (ind === buf.length) {\r\n this.reset()\r\n }\r\n return res\r\n };\r\n this.reset = function() {\r\n ind = 0\r\n }\r\n}\r\n\r\nfunction getAlternateColorsStrategy(palette, parameters) {\r\n var stepHighlight = parameters.useHighlight ? HIGHLIGHTING_STEP : 0;\r\n var paletteSteps = new RingBuf([0, stepHighlight, -stepHighlight]);\r\n var currentPalette = [];\r\n\r\n function _reset() {\r\n var step = paletteSteps.next();\r\n currentPalette = step ? getAlteredPalette(palette, step) : palette.slice(0)\r\n }\r\n return {\r\n getColor: function(index) {\r\n var color = currentPalette[index % palette.length];\r\n if (index % palette.length === palette.length - 1) {\r\n _reset()\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i))\r\n }\r\n return colors\r\n },\r\n reset: function() {\r\n paletteSteps.reset();\r\n _reset()\r\n }\r\n }\r\n}\r\n\r\nfunction getExtrapolateColorsStrategy(palette, parameters) {\r\n return {\r\n getColor: function(index, count) {\r\n var paletteCount = palette.length;\r\n var cycles = _floor((count - 1) / paletteCount + 1);\r\n var color = palette[index % paletteCount];\r\n if (cycles > 1) {\r\n return function(color, cycleIndex, cycleCount) {\r\n var hsl = new _Color(color).hsl;\r\n var l = hsl.l / 100;\r\n var diapason = cycleCount - 1 / cycleCount;\r\n var minL = l - .5 * diapason;\r\n var maxL = l + .5 * diapason;\r\n var cycleMiddle = (cycleCount - 1) / 2;\r\n var cycleDiff = cycleIndex - cycleMiddle;\r\n if (minL < Math.min(.5, .9 * l)) {\r\n minL = Math.min(.5, .9 * l)\r\n }\r\n if (maxL > Math.max(.8, l + .15 * (1 - l))) {\r\n maxL = Math.max(.8, l + .15 * (1 - l))\r\n }\r\n if (cycleDiff < 0) {\r\n l -= (minL - l) * cycleDiff / cycleMiddle\r\n } else {\r\n l += cycleDiff / cycleMiddle * (maxL - l)\r\n }\r\n hsl.l = 100 * l;\r\n return _Color.prototype.fromHSL(hsl).toHex()\r\n }(color, _floor(index / paletteCount), cycles)\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i, count))\r\n }\r\n return colors\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction getColorMixer(palette, parameters) {\r\n var paletteCount = palette.length;\r\n var extendedPalette = [];\r\n\r\n function distributeColors(count, colorsCount, startIndex, distribution) {\r\n var groupSize = Math.floor(count / colorsCount);\r\n var extraItems = count - colorsCount * groupSize;\r\n var i = startIndex;\r\n var middleIndex;\r\n var size;\r\n while (i < startIndex + count) {\r\n size = groupSize;\r\n if (extraItems > 0) {\r\n size += 1;\r\n extraItems--\r\n }\r\n middleIndex = size > 2 ? Math.floor(size / 2) : 0;\r\n distribution.push(i + middleIndex);\r\n i += size\r\n }\r\n return distribution.sort((function(a, b) {\r\n return a - b\r\n }))\r\n }\r\n\r\n function getColorAndDistance(arr, startIndex, count) {\r\n startIndex = (count + startIndex) % count;\r\n var distance = 0;\r\n for (var i = startIndex; i < 2 * count; i += 1) {\r\n var index = (count + i) % count;\r\n if (arr[index]) {\r\n return [arr[index], distance]\r\n }\r\n distance++\r\n }\r\n }\r\n\r\n function extendPalette(count) {\r\n if (count <= paletteCount) {\r\n return palette\r\n }\r\n var result = [];\r\n var colorInGroups = paletteCount - 2;\r\n var currentColorIndex = 0;\r\n var cleanColorIndices = [];\r\n if (parameters.keepLastColorInEnd) {\r\n cleanColorIndices = distributeColors(count - 2, colorInGroups, 1, [0, count - 1])\r\n } else {\r\n cleanColorIndices = distributeColors(count - 1, paletteCount - 1, 1, [0])\r\n }\r\n for (var i = 0; i < count; i++) {\r\n if (cleanColorIndices.indexOf(i) > -1) {\r\n result[i] = palette[currentColorIndex++]\r\n }\r\n }\r\n result = function(paletteWithEmptyColors, paletteLength) {\r\n for (var i = 0; i < paletteLength; i++) {\r\n var color = paletteWithEmptyColors[i];\r\n if (!color) {\r\n var color1 = paletteWithEmptyColors[i - 1];\r\n if (!color1) {\r\n continue\r\n } else {\r\n var c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength);\r\n var color2 = new _Color(c2[0]);\r\n color1 = new _Color(color1);\r\n for (var j = 0; j < c2[1]; j++, i++) {\r\n paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex()\r\n }\r\n }\r\n }\r\n }\r\n return paletteWithEmptyColors\r\n }(result, count);\r\n return result\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n count = count || parameters.count || paletteCount;\r\n if (extendedPalette.length !== count) {\r\n extendedPalette = extendPalette(count)\r\n }\r\n return extendedPalette[index % count]\r\n },\r\n generateColors: function(count, repeat) {\r\n count = count || parameters.count || paletteCount;\r\n if (repeat && count > paletteCount) {\r\n var colors = extendPalette(paletteCount);\r\n for (var i = 0; i < count - paletteCount; i++) {\r\n colors.push(colors[i])\r\n }\r\n return colors\r\n } else {\r\n return paletteCount > 0 ? extendPalette(count).slice(0, count) : []\r\n }\r\n },\r\n reset: function() {}\r\n }\r\n}\r\nexport function createPalette(palette, parameters, themeDefaultPalette) {\r\n var paletteObj = {\r\n dispose() {\r\n this._extensionStrategy = null\r\n },\r\n getNextColor(count) {\r\n return this._extensionStrategy.getColor(this._currentColor++, count)\r\n },\r\n generateColors(count, parameters) {\r\n return this._extensionStrategy.generateColors(count, (parameters || {}).repeat)\r\n },\r\n reset() {\r\n this._currentColor = 0;\r\n this._extensionStrategy.reset();\r\n return this\r\n }\r\n };\r\n parameters = parameters || {};\r\n var extensionMode = (parameters.extensionMode || \"\").toLowerCase();\r\n var colors = getPalette(palette, {\r\n type: parameters.type || \"simpleSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n if (\"alternate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getAlternateColorsStrategy(colors, parameters)\r\n } else if (\"extrapolate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getExtrapolateColorsStrategy(colors, parameters)\r\n } else {\r\n paletteObj._extensionStrategy = getColorMixer(colors, parameters)\r\n }\r\n paletteObj.reset();\r\n return paletteObj\r\n}\r\n\r\nfunction getAlteredPalette(originalPalette, step) {\r\n var palette = [];\r\n var i;\r\n var ii = originalPalette.length;\r\n for (i = 0; i < ii; ++i) {\r\n palette.push(getNewColor(originalPalette[i], step))\r\n }\r\n return palette\r\n}\r\n\r\nfunction getNewColor(currentColor, step) {\r\n var newColor = new _Color(currentColor).alter(step);\r\n var lightness = getLightness(newColor);\r\n if (lightness > 200 || lightness < 55) {\r\n newColor = new _Color(currentColor).alter(-step / 2)\r\n }\r\n return newColor.toHex()\r\n}\r\n\r\nfunction getLightness(color) {\r\n return .3 * color.r + .59 * color.g + .11 * color.b\r\n}\r\nexport function getDiscretePalette(source, size, themeDefaultPalette) {\r\n var palette = size > 0 ? createDiscreteColors(getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n }), size) : [];\r\n return {\r\n getColor: function(index) {\r\n return palette[index] || null\r\n }\r\n }\r\n}\r\n\r\nfunction createDiscreteColors(source, count) {\r\n var colorCount = count - 1;\r\n var sourceCount = source.length - 1;\r\n var colors = [];\r\n var gradient = [];\r\n var i;\r\n\r\n function addColor(pos) {\r\n var k = sourceCount * pos;\r\n var kl = _floor(k);\r\n var kr = _ceil(k);\r\n gradient.push(colors[kl].blend(colors[kr], k - kl).toHex())\r\n }\r\n for (i = 0; i <= sourceCount; ++i) {\r\n colors.push(new _Color(source[i]))\r\n }\r\n if (colorCount > 0) {\r\n for (i = 0; i <= colorCount; ++i) {\r\n addColor(i / colorCount)\r\n }\r\n } else {\r\n addColor(.5)\r\n }\r\n return gradient\r\n}\r\nexport function getGradientPalette(source, themeDefaultPalette) {\r\n var palette = getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n var color1 = new _Color(palette[0]);\r\n var color2 = new _Color(palette[1]);\r\n return {\r\n getColor: function(ratio) {\r\n return 0 <= ratio && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.light.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar LIGHT_GREY = \"#d3d3d3\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RED = \"#ff0000\";\r\nvar PRIMARY_TITLE_COLOR = \"#232323\";\r\nvar SECONDARY_TITLE_COLOR = \"#767676\";\r\nvar NONE = \"none\";\r\nvar SOLID = \"solid\";\r\nvar TOP = \"top\";\r\nvar RIGHT = \"right\";\r\nvar BOTTOM = \"bottom\";\r\nvar LEFT = \"left\";\r\nvar CENTER = \"center\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.light\",\r\n isDefault: true,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n family: \"'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 400,\r\n size: 12,\r\n cursor: \"default\"\r\n },\r\n redrawOnResize: true,\r\n backgroundColor: WHITE,\r\n primaryTitleColor: PRIMARY_TITLE_COLOR,\r\n secondaryTitleColor: SECONDARY_TITLE_COLOR,\r\n gridColor: LIGHT_GREY,\r\n axisColor: SECONDARY_TITLE_COLOR,\r\n title: {\r\n backgroundColor: WHITE,\r\n font: {\r\n size: 28,\r\n family: \"'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n },\r\n offset: 0,\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n loadingIndicator: {\r\n text: \"Loading...\"\r\n },\r\n export: {\r\n backgroundColor: WHITE,\r\n margin: 10,\r\n font: {\r\n size: 14,\r\n color: PRIMARY_TITLE_COLOR,\r\n weight: 400\r\n },\r\n button: {\r\n margin: {\r\n top: 8,\r\n left: 10,\r\n right: 10,\r\n bottom: 8\r\n },\r\n default: {\r\n color: \"#333\",\r\n borderColor: \"#ddd\",\r\n backgroundColor: WHITE\r\n },\r\n hover: {\r\n color: \"#333\",\r\n borderColor: \"#bebebe\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: BLACK,\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: \"#333\",\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n },\r\n shadowColor: LIGHT_GREY\r\n },\r\n tooltip: {\r\n enabled: false,\r\n border: {\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n font: {\r\n color: PRIMARY_TITLE_COLOR\r\n },\r\n color: WHITE,\r\n arrowLength: 10,\r\n paddingLeftRight: 18,\r\n paddingTopBottom: 15,\r\n textAlignment: \"center\",\r\n shared: false,\r\n location: CENTER,\r\n shadow: {\r\n opacity: .4,\r\n offsetX: 0,\r\n offsetY: 4,\r\n blur: 2,\r\n color: BLACK\r\n },\r\n interactive: false\r\n },\r\n legend: {\r\n hoverMode: \"includePoints\",\r\n verticalAlignment: TOP,\r\n horizontalAlignment: RIGHT,\r\n position: OUTSIDE,\r\n visible: true,\r\n margin: 10,\r\n markerSize: 12,\r\n border: {\r\n visible: false,\r\n width: 1,\r\n cornerRadius: 0,\r\n dashStyle: SOLID\r\n },\r\n paddingLeftRight: 20,\r\n paddingTopBottom: 15,\r\n columnCount: 0,\r\n rowCount: 0,\r\n columnItemSpacing: 20,\r\n rowItemSpacing: 8,\r\n title: {\r\n backgroundColor: WHITE,\r\n margin: {\r\n left: 0,\r\n bottom: 9,\r\n right: 0,\r\n top: 0\r\n },\r\n font: {\r\n size: 18,\r\n weight: 200\r\n },\r\n subtitle: {\r\n offset: 0,\r\n font: {\r\n size: 14\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n \"chart:common\": {\r\n animation: {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\",\r\n maxPointCountSupported: 300\r\n },\r\n commonSeriesSettings: {\r\n border: {\r\n visible: false,\r\n width: 2\r\n },\r\n showInLegend: true,\r\n visible: true,\r\n hoverMode: \"nearestPoint\",\r\n selectionMode: \"includePoints\",\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n valueErrorBar: {\r\n displayMode: \"auto\",\r\n value: 1,\r\n color: BLACK,\r\n lineWidth: 2,\r\n edgeLength: 8\r\n },\r\n label: {\r\n visible: false,\r\n alignment: CENTER,\r\n rotationAngle: 0,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n radialOffset: 0,\r\n showForZeroValues: true,\r\n customizeText: void 0,\r\n maxLabelCount: void 0,\r\n position: OUTSIDE,\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: false,\r\n width: 1\r\n }\r\n }\r\n },\r\n seriesSelectionMode: \"single\",\r\n pointSelectionMode: \"single\",\r\n equalRowHeight: true,\r\n dataPrepareSettings: {\r\n checkTypeForAllData: false,\r\n convertToAxisDataType: true,\r\n sortingMethod: true\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n resolveLabelOverlapping: NONE\r\n },\r\n \"chart:common:axis\": {\r\n visible: true,\r\n valueMarginsEnabled: true,\r\n placeholderSize: null,\r\n logarithmBase: 10,\r\n discreteAxisDivisionMode: \"betweenLabels\",\r\n aggregatedPointsPosition: \"betweenTicks\",\r\n width: 1,\r\n label: {\r\n visible: true\r\n },\r\n grid: {\r\n visible: false,\r\n width: 1\r\n },\r\n minorGrid: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3\r\n },\r\n tick: {\r\n visible: true,\r\n width: 1,\r\n length: 7,\r\n shift: 3\r\n },\r\n minorTick: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3,\r\n length: 7,\r\n shift: 3\r\n },\r\n stripStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 5\r\n },\r\n constantLineStyle: {\r\n width: 1,\r\n color: BLACK,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: true,\r\n position: INSIDE\r\n }\r\n },\r\n marker: {\r\n label: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#333333\"\r\n },\r\n tooltipEnabled: true,\r\n border: {\r\n width: 1,\r\n color: \"#dddddd\",\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n color: WHITE,\r\n opacity: .9,\r\n arrowLength: 14,\r\n arrowWidth: 14,\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10,\r\n shadow: {\r\n opacity: .15,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 4,\r\n color: BLACK\r\n },\r\n image: {\r\n width: 30,\r\n height: 30\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\",\r\n allowDragging: false\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n type: \"line\",\r\n stack: \"default\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stepline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n steparea: {\r\n border: {\r\n visible: true,\r\n width: 2\r\n },\r\n point: {\r\n visible: false\r\n },\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n opacity: .5\r\n },\r\n spline: {\r\n width: 2,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n splinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n stackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n fullstackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n rangebar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n rangearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n rangesplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bubble: {\r\n opacity: .5,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n candlestick: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3,\r\n highlight: false\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n },\r\n stock: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3,\r\n highlight: false\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n }\r\n },\r\n crosshair: {\r\n enabled: false,\r\n color: \"#f05b41\",\r\n width: 1,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: false,\r\n font: {\r\n color: WHITE,\r\n size: 12\r\n }\r\n },\r\n verticalLine: {\r\n visible: true\r\n },\r\n horizontalLine: {\r\n visible: true\r\n }\r\n },\r\n commonAxisSettings: {\r\n multipleAxesSpacing: 5,\r\n forceUserTickInterval: false,\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n label: {\r\n displayMode: \"standard\",\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 10,\r\n wordWrap: \"normal\",\r\n textOverflow: \"none\"\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 6,\r\n alignment: CENTER\r\n },\r\n constantLineStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10\r\n }\r\n },\r\n horizontalAxis: {\r\n position: BOTTOM,\r\n axisDivisionFactor: 70,\r\n label: {\r\n rotationAngle: 90,\r\n staggeringSpacing: 5,\r\n alignment: CENTER\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: RIGHT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n verticalAxis: {\r\n position: LEFT,\r\n axisDivisionFactor: 40,\r\n label: {\r\n alignment: RIGHT\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: CENTER\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n argumentAxis: {\r\n endOnTick: false,\r\n aggregateByCategory: true,\r\n workWeek: [1, 2, 3, 4, 5]\r\n },\r\n valueAxis: {\r\n grid: {\r\n visible: true\r\n },\r\n autoBreaksEnabled: false,\r\n maxAutoBreakCount: 4\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: NONE,\r\n border: {\r\n color: LIGHT_GREY,\r\n width: 1,\r\n visible: false,\r\n top: true,\r\n bottom: true,\r\n left: true,\r\n right: true,\r\n dashStyle: SOLID\r\n }\r\n },\r\n scrollBar: {\r\n visible: false,\r\n offset: 5,\r\n color: \"gray\",\r\n width: 10\r\n },\r\n adjustOnZoom: true,\r\n autoHidePointMarkers: true,\r\n rotated: false,\r\n synchronizeMultiAxes: true,\r\n stickyHovering: true,\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: \"#2a2a2a\",\r\n opacity: .2\r\n },\r\n panKey: \"shift\",\r\n allowMouseWheel: true,\r\n allowTouchGestures: true\r\n }\r\n },\r\n pie: {\r\n innerRadius: .5,\r\n minDiameter: .5,\r\n type: \"pie\",\r\n dataPrepareSettings: {\r\n _skipArgumentSorting: true\r\n },\r\n commonSeriesSettings: {\r\n pie: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n doughnut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n donut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\"\r\n }\r\n },\r\n legend: {\r\n hoverMode: \"allArgumentPoints\",\r\n backgroundColor: NONE\r\n },\r\n adaptiveLayout: {\r\n keepLabels: false\r\n }\r\n },\r\n gauge: {\r\n scale: {\r\n tick: {\r\n visible: true,\r\n length: 5,\r\n width: 2,\r\n opacity: 1\r\n },\r\n minorTick: {\r\n visible: false,\r\n length: 3,\r\n width: 1,\r\n opacity: 1\r\n },\r\n label: {\r\n visible: true,\r\n alignment: CENTER,\r\n hideFirstOrLast: \"last\",\r\n overlappingBehavior: \"hide\"\r\n },\r\n position: TOP,\r\n endOnTick: false\r\n },\r\n rangeContainer: {\r\n offset: 0,\r\n width: 5,\r\n backgroundColor: \"#808080\"\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: \"#c2c2c2\"\r\n },\r\n rangebar: {\r\n space: 2,\r\n size: 10,\r\n color: \"#cbc5cf\",\r\n backgroundColor: NONE,\r\n text: {\r\n indent: 0,\r\n font: {\r\n size: 14,\r\n color: null\r\n }\r\n }\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#e18e92\"\r\n },\r\n trianglemarker: {\r\n space: 2,\r\n length: 14,\r\n width: 13,\r\n color: \"#8798a5\"\r\n },\r\n textcloud: {\r\n arrowLength: 5,\r\n horizontalOffset: 6,\r\n verticalOffset: 3,\r\n color: \"#679ec5\",\r\n text: {\r\n font: {\r\n color: WHITE,\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n },\r\n _circular: {\r\n scale: {\r\n scaleDivisionFactor: 17,\r\n orientation: OUTSIDE,\r\n label: {\r\n indentFromTick: 10\r\n }\r\n },\r\n rangeContainer: {\r\n orientation: OUTSIDE\r\n },\r\n valueIndicatorType: \"rectangleneedle\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangleneedle\",\r\n _default: {\r\n offset: 20,\r\n indentFromCenter: 0,\r\n width: 2,\r\n spindleSize: 14,\r\n spindleGapSize: 10,\r\n beginAdaptingAtRadius: 50\r\n },\r\n triangleneedle: {\r\n width: 4\r\n },\r\n twocolorneedle: {\r\n space: 2,\r\n secondFraction: .4\r\n },\r\n rangebar: {\r\n offset: 30\r\n },\r\n trianglemarker: {\r\n offset: 6\r\n },\r\n textcloud: {\r\n offset: -6\r\n }\r\n }\r\n },\r\n _linear: {\r\n scale: {\r\n scaleDivisionFactor: 25,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM,\r\n label: {\r\n indentFromTick: -10\r\n }\r\n },\r\n rangeContainer: {\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n valueIndicatorType: \"rangebar\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangle\",\r\n _default: {\r\n offset: 2.5,\r\n length: 15,\r\n width: 15\r\n },\r\n rectangle: {\r\n width: 10\r\n },\r\n rangebar: {\r\n offset: 10,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n trianglemarker: {\r\n offset: 10,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n },\r\n textcloud: {\r\n offset: -1,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#e0e0e0\",\r\n relativeInnerRadius: .3,\r\n barSpacing: 4,\r\n resolveLabelOverlapping: \"hide\",\r\n label: {\r\n indent: 20,\r\n connectorWidth: 2,\r\n font: {\r\n size: 16\r\n }\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n valueMarginsEnabled: true,\r\n width: 1,\r\n color: BLACK,\r\n opacity: .1,\r\n showCustomBoundaryTicks: true,\r\n aggregateByCategory: true,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n alignment: CENTER,\r\n visible: true,\r\n topIndent: 7,\r\n font: {\r\n size: 11\r\n }\r\n },\r\n tick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .17,\r\n visible: true,\r\n length: 12\r\n },\r\n minorTick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .05,\r\n visible: true,\r\n length: 12\r\n },\r\n marker: {\r\n width: 1,\r\n color: \"#000000\",\r\n opacity: .1,\r\n visible: true,\r\n separatorHeight: 33,\r\n topIndent: 10,\r\n textLeftIndent: 7,\r\n textTopIndent: 11,\r\n label: {}\r\n },\r\n logarithmBase: 10,\r\n workWeek: [1, 2, 3, 4, 5],\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n endOnTick: false\r\n },\r\n selectedRangeColor: \"#606060\",\r\n sliderMarker: {\r\n visible: true,\r\n paddingTopBottom: 2,\r\n paddingLeftRight: 4,\r\n color: \"#606060\",\r\n invalidRangeColor: RED,\r\n font: {\r\n color: WHITE,\r\n size: 11\r\n }\r\n },\r\n sliderHandle: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .2\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: \"#c0bae1\",\r\n visible: true,\r\n image: {\r\n location: \"full\"\r\n }\r\n },\r\n behavior: {\r\n snapToTicks: true,\r\n animationEnabled: true,\r\n moveSelectedRangeByClick: true,\r\n manualRangeSelectionEnabled: true,\r\n allowSlidersSwap: true,\r\n valueChangeMode: \"onHandleRelease\"\r\n },\r\n redrawOnResize: true,\r\n chart: {\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n topIndent: .1,\r\n bottomIndent: 0,\r\n valueAxis: {\r\n inverted: false,\r\n logarithmBase: 10\r\n },\r\n commonSeriesSettings: {\r\n type: \"area\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: false\r\n },\r\n scatter: {\r\n point: {\r\n visible: true\r\n }\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n title: {\r\n margin: 10\r\n },\r\n background: {\r\n borderWidth: 1,\r\n borderColor: \"#cacaca\"\r\n },\r\n layer: {\r\n label: {\r\n enabled: false,\r\n stroke: WHITE,\r\n \"stroke-width\": 1,\r\n \"stroke-opacity\": .7,\r\n font: {\r\n color: SOME_GREY,\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderWidth: 1,\r\n borderColor: WHITE,\r\n color: \"#d2d2d2\",\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN,\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n borderWidth: 2,\r\n color: \"#ba8365\",\r\n hoveredColor: \"#a94813\",\r\n selectedBorderWidth: 3,\r\n selectedColor: \"#e55100\",\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:marker\": {\r\n label: {\r\n enabled: true,\r\n \"stroke-width\": 1,\r\n font: {\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:marker:dot\": {\r\n borderWidth: 2,\r\n borderColor: WHITE,\r\n size: 8,\r\n selectedStep: 2,\r\n backStep: 18,\r\n backColor: WHITE,\r\n backOpacity: .32,\r\n shadow: true\r\n },\r\n \"layer:marker:bubble\": {\r\n minSize: 20,\r\n maxSize: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:pie\": {\r\n size: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:image\": {\r\n size: 20\r\n },\r\n legend: {\r\n verticalAlignment: BOTTOM,\r\n horizontalAlignment: RIGHT,\r\n position: INSIDE,\r\n backgroundOpacity: .65,\r\n border: {\r\n visible: true\r\n },\r\n paddingLeftRight: 16,\r\n paddingTopBottom: 12\r\n },\r\n controlBar: {\r\n borderColor: \"#5d5d5d\",\r\n borderWidth: 3,\r\n color: WHITE,\r\n margin: 20,\r\n opacity: .3\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n border: {\r\n width: 1,\r\n opacity: .2,\r\n color: \"#000000\"\r\n },\r\n color: \"#5f8b95\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {\r\n opacity: 1\r\n }\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: \"#ffffff\",\r\n weight: 600\r\n },\r\n shadow: {\r\n opacity: .6,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 2,\r\n color: \"#000000\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n group: {\r\n padding: 4,\r\n border: {\r\n width: 1\r\n },\r\n color: \"#eeeeee\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n weight: 600\r\n },\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n title: {\r\n subtitle: {}\r\n },\r\n tooltip: {},\r\n loadingIndicator: {}\r\n },\r\n sparkline: {\r\n lineColor: \"#666666\",\r\n lineWidth: 2,\r\n areaOpacity: .2,\r\n minColor: \"#e8c267\",\r\n maxColor: \"#e55253\",\r\n barPositiveColor: \"#a9a9a9\",\r\n barNegativeColor: \"#d7d7d7\",\r\n winColor: \"#a9a9a9\",\r\n lossColor: \"#d7d7d7\",\r\n firstLastColor: \"#666666\",\r\n pointSymbol: \"circle\",\r\n pointColor: WHITE,\r\n pointSize: 4,\r\n type: \"line\",\r\n argumentField: \"arg\",\r\n valueField: \"val\",\r\n winlossThreshold: 0,\r\n showFirstLast: true,\r\n showMinMax: false,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n bullet: {\r\n color: \"#e8c267\",\r\n targetColor: \"#666666\",\r\n targetWidth: 4,\r\n showTarget: true,\r\n showZeroLevel: true,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n polar: {\r\n commonSeriesSettings: {\r\n type: \"scatter\",\r\n closed: true,\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedline: {\r\n width: 2\r\n },\r\n bar: {\r\n opacity: .8\r\n },\r\n stackedbar: {\r\n opacity: .8\r\n }\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n barGroupPadding: .3,\r\n commonAxisSettings: {\r\n visible: true,\r\n forceUserTickInterval: false,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 5\r\n },\r\n grid: {\r\n visible: true\r\n },\r\n minorGrid: {\r\n visible: true\r\n },\r\n tick: {\r\n visible: true\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 10\r\n }\r\n },\r\n argumentAxis: {\r\n startAngle: 0,\r\n firstPointOnStartAngle: false,\r\n period: void 0\r\n },\r\n valueAxis: {\r\n endOnTick: false,\r\n tick: {\r\n visible: false\r\n }\r\n },\r\n horizontalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 50,\r\n label: {\r\n alignment: CENTER\r\n }\r\n },\r\n verticalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 30,\r\n label: {\r\n alignment: RIGHT\r\n }\r\n }\r\n },\r\n funnel: {\r\n sortData: true,\r\n valueField: \"val\",\r\n colorField: \"color\",\r\n argumentField: \"arg\",\r\n hoverEnabled: true,\r\n selectionMode: \"single\",\r\n item: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n tooltip: {\r\n customizeTooltip: function(info) {\r\n return {\r\n text: info.item.argument + \" \" + info.valueText\r\n }\r\n }\r\n },\r\n inverted: false,\r\n algorithm: \"dynamicSlope\",\r\n neckWidth: 0,\r\n neckHeight: 0,\r\n resolveLabelOverlapping: \"shift\",\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\",\r\n visible: true,\r\n horizontalAlignment: RIGHT,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n showForZeroValues: false,\r\n customizeText: function(info) {\r\n return info.item.argument + \" \" + info.valueText\r\n },\r\n position: \"columns\",\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: true,\r\n width: 1,\r\n opacity: .5\r\n }\r\n }\r\n },\r\n sankey: {\r\n sourceField: \"source\",\r\n targetField: \"target\",\r\n weightField: \"weight\",\r\n hoverEnabled: true,\r\n alignment: CENTER,\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n label: {\r\n visible: true,\r\n horizontalOffset: 8,\r\n verticalOffset: 0,\r\n overlappingBehavior: \"ellipsis\",\r\n useNodeColors: false,\r\n font: {\r\n color: BLACK,\r\n weight: 500\r\n },\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n customizeText: function(info) {\r\n return info.title\r\n },\r\n shadow: {\r\n opacity: .2,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 1,\r\n color: WHITE\r\n }\r\n },\r\n title: {\r\n margin: 10,\r\n font: {\r\n size: 28,\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n tooltip: {\r\n enabled: true\r\n },\r\n node: {\r\n padding: 30,\r\n width: 8,\r\n opacity: 1,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n colorMode: \"none\",\r\n opacity: .3,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n opacity: .5,\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: void 0\r\n}, {\r\n theme: {\r\n name: \"generic.light.compact\"\r\n },\r\n baseThemeName: \"generic.light\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.carmine.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#f05b41\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#8899a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#dee1e3\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.carmine\",\r\n defaultPalette: \"Carmine\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#f5e7e4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f74d61\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.carmine.compact\"\r\n },\r\n baseThemeName: \"generic.carmine\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.dark.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar BORDER_COLOR = \"#494949\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.dark\",\r\n font: {\r\n color: \"#808080\"\r\n },\r\n backgroundColor: \"#2a2a2a\",\r\n primaryTitleColor: \"#dedede\",\r\n secondaryTitleColor: \"#a3a3a3\",\r\n gridColor: \"#555555\",\r\n axisColor: \"#a3a3a3\",\r\n export: {\r\n backgroundColor: \"#2a2a2a\",\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: \"#2e2e2e\"\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#444\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#444444\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#555555\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n tooltip: {\r\n color: SOME_GREY,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: \"#929292\"\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#929292\"\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: SOME_GREY,\r\n shadow: {\r\n opacity: .008,\r\n offsetY: 4,\r\n blur: 8\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: GREY_GREEN\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: SOME_GREY,\r\n opacity: .9\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: GREY_GREEN,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: GREY_GREEN\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: GREY_GREEN\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n border: {\r\n color: \"#2a2a2a\"\r\n },\r\n hoverStyle: {\r\n color: \"#bbbbbb\"\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.dark.compact\"\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.contrast.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar CONTRAST_ACTIVE = \"#cf00da\";\r\nvar MARKER_COLOR = \"#f8ca00\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.contrast\",\r\n defaultPalette: \"Bright\",\r\n font: {\r\n color: WHITE\r\n },\r\n backgroundColor: BLACK,\r\n primaryTitleColor: WHITE,\r\n secondaryTitleColor: WHITE,\r\n gridColor: WHITE,\r\n axisColor: WHITE,\r\n export: {\r\n backgroundColor: BLACK,\r\n font: {\r\n color: WHITE\r\n },\r\n button: {\r\n default: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n hover: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: \"#cf00d7\"\r\n },\r\n focus: {\r\n color: WHITE,\r\n borderColor: \"#cf00d7\",\r\n backgroundColor: BLACK\r\n },\r\n active: {\r\n color: BLACK,\r\n borderColor: WHITE,\r\n backgroundColor: WHITE\r\n }\r\n },\r\n borderColor: WHITE,\r\n menuButtonColor: BLACK,\r\n activeBackgroundColor: WHITE,\r\n activeColor: BLACK,\r\n selectedBorderColor: CONTRAST_ACTIVE,\r\n selectedColor: CONTRAST_ACTIVE,\r\n shadowColor: \"none\"\r\n },\r\n tooltip: {\r\n border: {\r\n color: WHITE\r\n },\r\n font: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n valueErrorBar: {\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n },\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n chart: {\r\n commonSeriesSettings: {},\r\n crosshair: {\r\n color: \"#cf00d7\"\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: BLACK,\r\n border: {\r\n color: WHITE\r\n }\r\n },\r\n scrollBar: {\r\n color: WHITE\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE,\r\n opacity: .7\r\n }\r\n }\r\n },\r\n pie: {\r\n commonSeriesSettings: {\r\n pie: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n doughnut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n donut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: WHITE\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: WHITE\r\n },\r\n rangebar: {\r\n color: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n twocolorneedle: {\r\n secondColor: WHITE\r\n },\r\n trianglemarker: {\r\n color: WHITE\r\n },\r\n textcloud: {\r\n color: WHITE,\r\n text: {\r\n font: {\r\n color: BLACK\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .4\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .12\r\n },\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n selectedRangeColor: CONTRAST_ACTIVE,\r\n sliderMarker: {\r\n color: CONTRAST_ACTIVE\r\n },\r\n sliderHandle: {\r\n color: CONTRAST_ACTIVE,\r\n opacity: 1\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: BLACK\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: WHITE\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: BLACK,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE,\r\n label: {\r\n font: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n color: \"#267cff\",\r\n hoveredColor: \"#f613ff\",\r\n selectedColor: WHITE\r\n },\r\n \"layer:marker:dot\": {\r\n borderColor: BLACK,\r\n color: MARKER_COLOR,\r\n backColor: BLACK,\r\n backOpacity: .32\r\n },\r\n \"layer:marker:bubble\": {\r\n color: MARKER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n controlBar: {\r\n borderColor: WHITE,\r\n color: BLACK,\r\n opacity: .3\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n color: \"#70c92f\"\r\n },\r\n group: {\r\n color: \"#797979\",\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BLACK\r\n },\r\n bullet: {},\r\n polar: {\r\n commonSeriesSettings: {}\r\n },\r\n funnel: {\r\n label: {\r\n connector: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n }\r\n },\r\n link: {\r\n opacity: .5,\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n opacity: .9\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.contrast.compact\"\r\n },\r\n baseThemeName: \"generic.contrast\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkmoon.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3debd3\";\r\nvar BACKGROUND_COLOR = \"#465672\";\r\nvar TITLE_COLOR = \"#fff\";\r\nvar SUBTITLE_COLOR = \"#919bac\";\r\nvar TEXT_COLOR = \"#c7ccd4\";\r\nvar BORDER_COLOR = \"#596980\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkmoon\",\r\n defaultPalette: \"Dark Moon\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7a889e\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#9da8b8\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#6b80a4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#62789e\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: \"#62789e\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR,\r\n text: {\r\n font: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#526280\"\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f9517e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: BORDER_COLOR\r\n },\r\n \"layer:area\": {\r\n color: \"#97a3b6\",\r\n borderColor: BACKGROUND_COLOR\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#000\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkmoon.compact\"\r\n },\r\n baseThemeName: \"generic.darkmoon\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkviolet.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#9c63ff\";\r\nvar BACKGROUND_COLOR = \"#17171f\";\r\nvar TITLE_COLOR = \"#f5f6f7\";\r\nvar SUBTITLE_COLOR = \"#fff\";\r\nvar TEXT_COLOR = \"#b2b2b6\";\r\nvar BORDER_COLOR = \"#343840\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkviolet\",\r\n defaultPalette: \"Dark Violet\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#414152\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5c5c74\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#3c3c51\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: \"#414152\"\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: \"#414152\"\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#fff\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkviolet.compact\"\r\n },\r\n baseThemeName: \"generic.darkviolet\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.greenmist.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3cbab2\";\r\nvar BACKGROUND_COLOR = \"#f5f5f5\";\r\nvar TITLE_COLOR = \"#28484f\";\r\nvar SUBTITLE_COLOR = \"#7eb2be\";\r\nvar TEXT_COLOR = \"#657c80\";\r\nvar BORDER_COLOR = \"#dedede\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.greenmist\",\r\n defaultPalette: \"Green Mist\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a2b4b8\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7f989e\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.8)\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#ffc852\",\r\n maxColor: \"#f74a5e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.greenmist.compact\"\r\n },\r\n baseThemeName: \"generic.greenmist\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.softblue.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#7ab8eb\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#99a1a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#e8eaeb\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.softblue\",\r\n defaultPalette: \"Soft Blue\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c9d0d4\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a7b2b9\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.softblue.compact\"\r\n },\r\n baseThemeName: \"generic.softblue\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/material.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar FONT_FAMILY = \"'Roboto', 'RobotoFallback', 'Helvetica', 'Arial', sans-serif\";\r\nvar LIGHT_TITLE_COLOR = \"rgba(0,0,0,0.87)\";\r\nvar LIGHT_LABEL_COLOR = \"rgba(0,0,0,0.54)\";\r\nvar DARK_TITLE_COLOR = \"rgba(255,255,255,0.87)\";\r\nvar DARK_LABEL_COLOR = \"rgba(255,255,255,0.54)\";\r\nvar DARK_BACKGROUND_COLOR = \"#363640\";\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar LABEL_BORDER_COLOR = \"#494949\";\r\nvar BREAK_STYLE_COLOR = \"#818181\";\r\nvar themes = [{\r\n theme: {\r\n name: \"material\",\r\n defaultPalette: \"Material\",\r\n font: {\r\n family: FONT_FAMILY\r\n },\r\n title: {\r\n margin: {\r\n top: 20,\r\n bottom: 20,\r\n left: 0,\r\n right: 0\r\n },\r\n font: {\r\n size: 20,\r\n family: FONT_FAMILY,\r\n weight: 500\r\n },\r\n horizontalAlignment: \"left\",\r\n subtitle: {\r\n font: {\r\n size: 14\r\n },\r\n horizontalAlignment: \"left\"\r\n }\r\n },\r\n tooltip: {\r\n shadow: {\r\n opacity: 0\r\n },\r\n border: {\r\n visible: false\r\n },\r\n paddingLeftRight: 8,\r\n paddingTopBottom: 6,\r\n arrowLength: 0,\r\n location: \"edge\",\r\n color: \"#616161\",\r\n font: {\r\n color: WHITE\r\n },\r\n cornerRadius: 4\r\n },\r\n chart: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n },\r\n label: {\r\n font: {\r\n size: 11\r\n }\r\n }\r\n },\r\n commonAnnotationSettings: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: \"#616161\"\r\n },\r\n color: \"#616161\",\r\n arrowLength: 14,\r\n arrowWidth: 0,\r\n shadow: {\r\n opacity: .08,\r\n offsetY: 4,\r\n blur: 8\r\n },\r\n cornerRadius: 4\r\n }\r\n },\r\n pie: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n polar: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n }\r\n },\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n sliderHandle: {\r\n opacity: .5\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n label: {\r\n font: {\r\n weight: 500\r\n }\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"material.light\",\r\n gridColor: \"#e0e0e0\",\r\n axisColor: LIGHT_LABEL_COLOR,\r\n primaryTitleColor: LIGHT_TITLE_COLOR,\r\n legend: {\r\n font: {\r\n color: LIGHT_LABEL_COLOR\r\n }\r\n },\r\n chart: {\r\n scrollBar: {\r\n color: \"#bfbfbf\",\r\n opacity: .7\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: \"rgba(0,0,0,0.2)\"\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#efefef\"\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}, {\r\n theme: {\r\n name: \"material.dark\",\r\n gridColor: \"#515159\",\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n axisColor: DARK_LABEL_COLOR,\r\n font: {\r\n color: DARK_LABEL_COLOR\r\n },\r\n primaryTitleColor: DARK_TITLE_COLOR,\r\n secondaryTitleColor: DARK_TITLE_COLOR,\r\n tooltip: {\r\n color: \"#000\"\r\n },\r\n export: {\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: DARK_BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#3f3f4b\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n border: {\r\n color: \"#000\"\r\n },\r\n color: \"#000\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: WHITE,\r\n opacity: .1\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: DARK_BACKGROUND_COLOR,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: DARK_BACKGROUND_COLOR\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}];\r\n\r\nfunction getMaterialColorScheme(accentName, themeName, accentColor) {\r\n return {\r\n theme: {\r\n name: \"material.\" + accentName + \".\" + themeName,\r\n rangeSelector: {\r\n selectedRangeColor: accentColor,\r\n sliderMarker: {\r\n color: accentColor\r\n },\r\n sliderHandle: {\r\n color: accentColor\r\n }\r\n },\r\n map: {\r\n \"layer:marker:dot\": {\r\n color: accentColor\r\n },\r\n \"layer:marker:bubble\": {\r\n color: accentColor\r\n },\r\n legend: {\r\n markerColor: accentColor\r\n }\r\n },\r\n bullet: {\r\n color: accentColor\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: accentColor\r\n },\r\n textcloud: {\r\n color: accentColor\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material.\" + themeName\r\n }\r\n}\r\nvar materialAccents = {\r\n blue: \"#03a9f4\",\r\n lime: \"#cddc39\",\r\n orange: \"#ff5722\",\r\n purple: \"#9c27b0\",\r\n teal: \"#009688\"\r\n};\r\nfor (var accent in materialAccents) {\r\n if (Object.prototype.hasOwnProperty.call(materialAccents, accent)) {\r\n var color = materialAccents[accent];\r\n themes.push(getMaterialColorScheme(accent, \"light\", color), getMaterialColorScheme(accent, \"dark\", color), {\r\n theme: {\r\n name: \"material.\".concat(accent, \".light.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".light\")\r\n }, {\r\n theme: {\r\n name: \"material.\".concat(accent, \".dark.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".dark\")\r\n })\r\n }\r\n}\r\nexport default themes;\r\n","/**\r\n * DevExtreme (esm/viz/themes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n current as getCurrentTheme\r\n} from \"../ui/themes\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport lightThemes from \"./core/themes/generic.light\";\r\nimport carmineThemes from \"./core/themes/generic.carmine\";\r\nimport darkThemes from \"./core/themes/generic.dark\";\r\nimport contrastThemes from \"./core/themes/generic.contrast\";\r\nimport darkMoonThemes from \"./core/themes/generic.darkmoon\";\r\nimport darkVioletThemes from \"./core/themes/generic.darkviolet\";\r\nimport greenMistThemes from \"./core/themes/generic.greenmist\";\r\nimport softBlueThemes from \"./core/themes/generic.softblue\";\r\nimport materialThemes from \"./core/themes/material\";\r\nimport fluentThemes from \"./core/themes/fluent\";\r\nvar themes = {};\r\nvar themesMapping = {};\r\nvar themesSchemeMapping = {};\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar currentThemeName = null;\r\nvar defaultTheme;\r\nvar nextCacheUid = 0;\r\nvar widgetsCache = {};\r\nexport function getTheme(themeName) {\r\n var name = normalizeEnum(themeName);\r\n return themes[name] || themes[themesMapping[name] || currentTheme()]\r\n}\r\n\r\nfunction findThemeNameByName(name, scheme) {\r\n return themesMapping[name + \".\" + scheme] || themesSchemeMapping[name + \".\" + scheme] || themesMapping[name]\r\n}\r\n\r\nfunction findThemeNameByPlatform(platform, version, scheme) {\r\n return findThemeNameByName(platform + version, scheme) || findThemeNameByName(platform, scheme)\r\n}\r\nexport function currentTheme(themeName, colorScheme) {\r\n if (!arguments.length) {\r\n return currentThemeName || findThemeNameByName(getCurrentTheme()) || defaultTheme\r\n }\r\n var scheme = normalizeEnum(colorScheme);\r\n currentThemeName = (themeName && themeName.platform ? findThemeNameByPlatform(normalizeEnum(themeName.platform), themeName.version, scheme) : findThemeNameByName(normalizeEnum(themeName), scheme)) || currentThemeName;\r\n return this\r\n}\r\n\r\nfunction getThemeInfo(themeName, splitter) {\r\n var k = themeName.indexOf(splitter);\r\n return k > 0 ? {\r\n name: themeName.substring(0, k),\r\n scheme: themeName.substring(k + 1)\r\n } : null\r\n}\r\n\r\nfunction registerThemeName(themeName, targetThemeName) {\r\n var themeInfo = getThemeInfo(themeName, \".\") || {\r\n name: themeName\r\n };\r\n var name = themeInfo.name;\r\n var scheme = themeInfo.scheme;\r\n if (scheme) {\r\n themesMapping[name] = themesMapping[name] || targetThemeName;\r\n themesMapping[name + \".\" + scheme] = targetThemeName\r\n } else {\r\n themesMapping[name] = targetThemeName\r\n }\r\n}\r\nexport function registerTheme(theme, baseThemeName) {\r\n var themeName = normalizeEnum(theme && theme.name);\r\n if (themeName) {\r\n theme.isDefault && (defaultTheme = themeName);\r\n registerThemeName(themeName, themeName);\r\n themes[themeName] = _extend(true, {}, getTheme(baseThemeName), patchTheme(theme))\r\n }\r\n}\r\nexport function registerThemeSchemeAlias(from, to) {\r\n themesSchemeMapping[from] = to\r\n}\r\n\r\nfunction mergeScalar(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value && void 0 === target[field]) {\r\n target[field] = _value\r\n }\r\n}\r\n\r\nfunction mergeObject(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value) {\r\n target[field] = _extend(true, {}, _value, target[field])\r\n }\r\n}\r\n\r\nfunction patchTheme(theme) {\r\n theme = _extend(true, {\r\n loadingIndicator: {\r\n font: {}\r\n },\r\n export: {\r\n font: {}\r\n },\r\n legend: {\r\n font: {},\r\n border: {}\r\n },\r\n title: {\r\n font: {}\r\n },\r\n tooltip: {\r\n font: {}\r\n },\r\n \"chart:common\": {},\r\n \"chart:common:axis\": {\r\n grid: {},\r\n minorGrid: {},\r\n tick: {},\r\n minorTick: {},\r\n title: {\r\n font: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {},\r\n border: {}\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n candlestick: {}\r\n }\r\n },\r\n pie: {},\r\n polar: {},\r\n gauge: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n barGauge: {},\r\n funnel: {},\r\n sankey: {},\r\n map: {\r\n background: {}\r\n },\r\n treeMap: {\r\n tile: {\r\n selectionStyle: {\r\n border: {}\r\n }\r\n },\r\n group: {\r\n border: {},\r\n selectionStyle: {\r\n border: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n },\r\n chart: {}\r\n },\r\n sparkline: {},\r\n bullet: {}\r\n }, theme);\r\n mergeScalar(theme.loadingIndicator, \"backgroundColor\", theme);\r\n mergeScalar(theme.chart.commonSeriesSettings.candlestick, \"innerColor\", null, theme.backgroundColor);\r\n mergeScalar(theme.map.background, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.title.font, \"color\", null, theme.primaryTitleColor);\r\n mergeObject(theme.title, \"subtitle\", null, theme.title);\r\n mergeScalar(theme.legend.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.legend.border, \"color\", null, theme.gridColor);\r\n patchAxes(theme);\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sparkline\", \"bullet\", \"sankey\"], (function(_, section) {\r\n mergeScalar(theme[section], \"redrawOnResize\", theme);\r\n mergeScalar(theme[section], \"containerBackgroundColor\", null, theme.backgroundColor);\r\n mergeObject(theme[section], \"tooltip\", theme);\r\n mergeObject(theme[section], \"export\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sankey\"], (function(_, section) {\r\n mergeObject(theme[section], \"loadingIndicator\", theme);\r\n mergeObject(theme[section], \"legend\", theme);\r\n mergeObject(theme[section], \"title\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\"], (function(_, section) {\r\n mergeObject(theme, section, null, theme[\"chart:common\"])\r\n }));\r\n _each([\"chart\", \"polar\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAxisSettings\", null, theme[\"chart:common:axis\"])\r\n }));\r\n _each([\"chart\", \"polar\", \"map\", \"pie\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAnnotationSettings\", null, theme[\"chart:common:annotation\"])\r\n }));\r\n mergeObject(theme.rangeSelector.chart, \"commonSeriesSettings\", theme.chart);\r\n mergeObject(theme.rangeSelector.chart, \"dataPrepareSettings\", theme.chart);\r\n mergeScalar(theme.treeMap.group.border, \"color\", null, theme.gridColor);\r\n mergeScalar(theme.treeMap.tile.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.treeMap.group.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.map.legend, \"backgroundColor\", theme);\r\n patchMapLayers(theme);\r\n return theme\r\n}\r\n\r\nfunction patchAxes(theme) {\r\n var commonAxisSettings = theme[\"chart:common:axis\"];\r\n _each([commonAxisSettings.grid, commonAxisSettings.minorGrid], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.gridColor)\r\n }));\r\n _each([commonAxisSettings, commonAxisSettings.tick, commonAxisSettings.minorTick, commonAxisSettings.label.font], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.axisColor)\r\n }));\r\n mergeScalar(commonAxisSettings.title.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.gauge.scale.label.font, \"color\", null, theme.axisColor);\r\n mergeScalar(theme.gauge.scale.tick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.gauge.scale.minorTick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.rangeSelector.scale.label.font, \"color\", null, theme.axisColor)\r\n}\r\n\r\nfunction patchMapLayers(theme) {\r\n var map = theme.map;\r\n _each([\"area\", \"line\", \"marker\"], (function(_, section) {\r\n mergeObject(map, \"layer:\" + section, null, map.layer)\r\n }));\r\n _each([\"dot\", \"bubble\", \"pie\", \"image\"], (function(_, section) {\r\n mergeObject(map, \"layer:marker:\" + section, null, map[\"layer:marker\"])\r\n }))\r\n}\r\nexport function addCacheItem(target) {\r\n var cacheUid = ++nextCacheUid;\r\n target._cache = cacheUid;\r\n widgetsCache[cacheUid] = target\r\n}\r\nexport function removeCacheItem(target) {\r\n delete widgetsCache[target._cache]\r\n}\r\nexport function refreshTheme() {\r\n _each(widgetsCache, (function() {\r\n this.refresh()\r\n }));\r\n return this\r\n}\r\nif (isEmptyObject(themes) && isEmptyObject(themesMapping) && !defaultTheme) {\r\n [].concat(lightThemes, carmineThemes, darkThemes, contrastThemes, darkMoonThemes, darkVioletThemes, greenMistThemes, softBlueThemes, materialThemes, fluentThemes).forEach(t => {\r\n registerTheme(t.theme, t.baseThemeName)\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/fluent.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar themes = [{\r\n theme: {\r\n name: \"fluent.blue.light\"\r\n },\r\n baseThemeName: \"material.blue.light\"\r\n}, {\r\n theme: {\r\n name: \"fluent.blue.light.compact\"\r\n },\r\n baseThemeName: \"fluent.blue.light\"\r\n}, {\r\n theme: {\r\n name: \"fluent.blue.dark\"\r\n },\r\n baseThemeName: \"material.blue.dark\"\r\n}, {\r\n theme: {\r\n name: \"fluent.blue.dark.compact\"\r\n },\r\n baseThemeName: \"fluent.blue.dark\"\r\n}];\r\nexport default themes;\r\n","/**\r\n * DevExtreme (esm/viz/core/base_theme_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n createPalette as getPalette,\r\n getDiscretePalette,\r\n getGradientPalette,\r\n getAccentColor as accentColor\r\n} from \"../palette\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport {\r\n getTheme,\r\n addCacheItem,\r\n removeCacheItem\r\n} from \"../themes\";\r\nvar _getTheme = getTheme;\r\nvar _addCacheItem = addCacheItem;\r\nvar _removeCacheItem = removeCacheItem;\r\nvar _extend = extend;\r\nvar _each = each;\r\n\r\nfunction getThemePart(theme, path) {\r\n var _theme = theme;\r\n path && _each(path.split(\".\"), (function(_, pathItem) {\r\n return _theme = _theme[pathItem]\r\n }));\r\n return _theme\r\n}\r\nexport var BaseThemeManager = Class.inherit({\r\n ctor: function(options) {\r\n this._themeSection = options.themeSection;\r\n this._fontFields = options.fontFields || [];\r\n _addCacheItem(this)\r\n },\r\n dispose: function() {\r\n _removeCacheItem(this);\r\n this._callback = this._theme = this._font = null;\r\n return this\r\n },\r\n setCallback: function(callback) {\r\n this._callback = callback;\r\n return this\r\n },\r\n setTheme: function(theme, rtl) {\r\n this._current = theme;\r\n this._rtl = rtl;\r\n return this.refresh()\r\n },\r\n refresh: function() {\r\n var current = this._current || {};\r\n var theme = _getTheme(current.name || current);\r\n this._themeName = theme.name;\r\n this._defaultPalette = theme.defaultPalette;\r\n this._font = _extend({}, theme.font, current.font);\r\n this._themeSection && _each(this._themeSection.split(\".\"), (function(_, path) {\r\n theme = _extend(true, {}, theme[path])\r\n }));\r\n this._theme = _extend(true, {}, theme, _isString(current) ? {} : current);\r\n this._initializeTheme();\r\n if (_parseScalar(this._rtl, this._theme.rtlEnabled)) {\r\n _extend(true, this._theme, this._theme._rtl)\r\n }\r\n this._callback();\r\n return this\r\n },\r\n theme: function(path) {\r\n return getThemePart(this._theme, path)\r\n },\r\n themeName: function() {\r\n return this._themeName\r\n },\r\n createPalette: function(palette, options) {\r\n return getPalette(palette, options, this._defaultPalette)\r\n },\r\n createDiscretePalette: function(palette, count) {\r\n return getDiscretePalette(palette, count, this._defaultPalette)\r\n },\r\n createGradientPalette: function(palette) {\r\n return getGradientPalette(palette, this._defaultPalette)\r\n },\r\n getAccentColor: function(palette) {\r\n return accentColor(palette, this._defaultPalette)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n _each(that._fontFields || [], (function(_, path) {\r\n that._initializeFont(getThemePart(that._theme, path))\r\n }))\r\n },\r\n _initializeFont: function(font) {\r\n _extend(font, this._font, _extend({}, font))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/components/chart_theme_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isString as _isString,\r\n isDefined as _isDefined,\r\n isNumeric,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../core/base_theme_manager\";\r\nimport {\r\n normalizeEnum as _normalizeEnum,\r\n extractColor\r\n} from \"../core/utils\";\r\nexport var ThemeManager = BaseThemeManager.inherit(function() {\r\n var processAxisOptions = function(axisOptions) {\r\n if (!axisOptions) {\r\n return {}\r\n }\r\n axisOptions = extend(true, {}, axisOptions);\r\n axisOptions.title = (options = axisOptions.title, _isString(options) ? {\r\n text: options\r\n } : options);\r\n var options;\r\n if (\"logarithmic\" === axisOptions.type && axisOptions.logarithmBase <= 0 || axisOptions.logarithmBase && !isNumeric(axisOptions.logarithmBase)) {\r\n axisOptions.logarithmBase = void 0;\r\n axisOptions.logarithmBaseError = true\r\n }\r\n if (axisOptions.label) {\r\n if (axisOptions.label.alignment) {\r\n axisOptions.label.userAlignment = true\r\n }\r\n }\r\n return axisOptions\r\n };\r\n var applyParticularAxisOptions = function(name, userOptions, rotated) {\r\n var theme = this._theme;\r\n var position = !(rotated ^ \"valueAxis\" === name) ? \"horizontalAxis\" : \"verticalAxis\";\r\n var processedUserOptions = processAxisOptions(userOptions);\r\n var commonAxisSettings = processAxisOptions(this._userOptions.commonAxisSettings);\r\n var mergeOptions = extend(true, {}, theme.commonAxisSettings, theme[position], theme[name], commonAxisSettings, processedUserOptions);\r\n mergeOptions.workWeek = processedUserOptions.workWeek || theme[name].workWeek;\r\n mergeOptions.forceUserTickInterval |= _isDefined(processedUserOptions.tickInterval) && !_isDefined(processedUserOptions.axisDivisionFactor);\r\n return mergeOptions\r\n };\r\n var mergeOptions = function(name, userOptions) {\r\n userOptions = userOptions || this._userOptions[name];\r\n var theme = this._theme[name];\r\n var result = this._mergedSettings[name];\r\n if (result) {\r\n return result\r\n }\r\n if (isPlainObject(theme) && isPlainObject(userOptions)) {\r\n result = extend(true, {}, theme, userOptions)\r\n } else {\r\n result = _isDefined(userOptions) ? userOptions : theme\r\n }\r\n this._mergedSettings[name] = result;\r\n return result\r\n };\r\n var applyParticularTheme = {\r\n base: mergeOptions,\r\n argumentAxis: applyParticularAxisOptions,\r\n valueAxisRangeSelector: function() {\r\n return mergeOptions.call(this, \"valueAxis\")\r\n },\r\n valueAxis: applyParticularAxisOptions,\r\n series: function(name, userOptions, seriesCount) {\r\n var that = this;\r\n var theme = that._theme;\r\n var userCommonSettings = that._userOptions.commonSeriesSettings || {};\r\n var themeCommonSettings = theme.commonSeriesSettings;\r\n var widgetType = that._themeSection.split(\".\").slice(-1)[0];\r\n var type = _normalizeEnum(userOptions.type || userCommonSettings.type || themeCommonSettings.type || \"pie\" === widgetType && theme.type);\r\n var palette = that.palette;\r\n var isBar = ~type.indexOf(\"bar\");\r\n var isLine = ~type.indexOf(\"line\");\r\n var isArea = ~type.indexOf(\"area\");\r\n var isBubble = \"bubble\" === type;\r\n var mainSeriesColor;\r\n var resolveLabelsOverlapping = that.getOptions(\"resolveLabelsOverlapping\");\r\n var containerBackgroundColor = that.getOptions(\"containerBackgroundColor\");\r\n var seriesTemplate = applyParticularTheme.seriesTemplate.call(this);\r\n var seriesVisibility;\r\n if (isBar || isBubble) {\r\n userOptions = extend(true, {}, userCommonSettings, userCommonSettings[type], userOptions);\r\n seriesVisibility = userOptions.visible;\r\n userCommonSettings = {\r\n type: {}\r\n };\r\n extend(true, userOptions, userOptions.point);\r\n userOptions.visible = seriesVisibility\r\n }\r\n var settings = extend(true, {\r\n aggregation: {}\r\n }, themeCommonSettings, themeCommonSettings[type], userCommonSettings, userCommonSettings[type], userOptions);\r\n settings.aggregation.enabled = \"chart\" === widgetType && !!settings.aggregation.enabled;\r\n settings.type = type;\r\n settings.widgetType = widgetType;\r\n settings.containerBackgroundColor = containerBackgroundColor;\r\n if (\"pie\" !== widgetType) {\r\n mainSeriesColor = extractColor(settings.color, true) || palette.getNextColor(seriesCount)\r\n } else {\r\n mainSeriesColor = function(argument, index, count) {\r\n var cat = \"\".concat(argument, \"-\").concat(index);\r\n if (!that._multiPieColors[cat]) {\r\n that._multiPieColors[cat] = palette.getNextColor(count)\r\n }\r\n return that._multiPieColors[cat]\r\n }\r\n }\r\n settings.mainSeriesColor = mainSeriesColor;\r\n settings.resolveLabelsOverlapping = resolveLabelsOverlapping;\r\n if (settings.label && (isLine || isArea && \"rangearea\" !== type || \"scatter\" === type)) {\r\n settings.label.position = \"outside\"\r\n }\r\n if (seriesTemplate) {\r\n settings.nameField = seriesTemplate.nameField\r\n }\r\n return settings\r\n },\r\n animation: function(name) {\r\n var userOptions = this._userOptions[name];\r\n userOptions = isPlainObject(userOptions) ? userOptions : _isDefined(userOptions) ? {\r\n enabled: !!userOptions\r\n } : {};\r\n return mergeOptions.call(this, name, userOptions)\r\n },\r\n seriesTemplate() {\r\n var value = mergeOptions.call(this, \"seriesTemplate\");\r\n if (value) {\r\n value.nameField = value.nameField || \"series\"\r\n }\r\n return value\r\n },\r\n zoomAndPan() {\r\n function parseOption(option) {\r\n option = _normalizeEnum(option);\r\n var pan = \"pan\" === option || \"both\" === option;\r\n var zoom = \"zoom\" === option || \"both\" === option;\r\n return {\r\n pan: pan,\r\n zoom: zoom,\r\n none: !pan && !zoom\r\n }\r\n }\r\n var options = mergeOptions.call(this, \"zoomAndPan\");\r\n return {\r\n valueAxis: parseOption(options.valueAxis),\r\n argumentAxis: parseOption(options.argumentAxis),\r\n dragToZoom: !!options.dragToZoom,\r\n dragBoxStyle: {\r\n class: \"dxc-shutter\",\r\n fill: options.dragBoxStyle.color,\r\n opacity: options.dragBoxStyle.opacity\r\n },\r\n panKey: options.panKey,\r\n allowMouseWheel: !!options.allowMouseWheel,\r\n allowTouchGestures: !!options.allowTouchGestures\r\n }\r\n }\r\n };\r\n return {\r\n _themeSection: \"chart\",\r\n ctor: function(params) {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n var options = params.options || {};\r\n that._userOptions = options;\r\n that._mergeAxisTitleOptions = [];\r\n that._multiPieColors = {};\r\n that._callback = noop\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that.palette && that.palette.dispose();\r\n that.palette = that._userOptions = that._mergedSettings = that._multiPieColors = null;\r\n return that.callBase.apply(that, arguments)\r\n },\r\n resetPalette: function() {\r\n this.palette.reset();\r\n this._multiPieColors = {}\r\n },\r\n getOptions: function(name) {\r\n return (applyParticularTheme[name] || applyParticularTheme.base).apply(this, arguments)\r\n },\r\n refresh: function() {\r\n this._mergedSettings = {};\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that.updatePalette()\r\n },\r\n resetOptions: function(name) {\r\n this._mergedSettings[name] = null\r\n },\r\n update: function(options) {\r\n this._userOptions = options\r\n },\r\n updatePalette: function() {\r\n this.palette = this.createPalette(this.getOptions(\"palette\"), {\r\n useHighlight: true,\r\n extensionMode: this.getOptions(\"paletteExtensionMode\")\r\n })\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/parse_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar parsers = {\r\n string: function(val) {\r\n return isDefined(val) ? \"\" + val : val\r\n },\r\n numeric: function(val) {\r\n if (!isDefined(val)) {\r\n return val\r\n }\r\n var parsedVal = Number(val);\r\n if (isNaN(parsedVal)) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n },\r\n datetime: function(val) {\r\n if (!isDefined(val)) {\r\n return val\r\n }\r\n var parsedVal;\r\n var numVal = Number(val);\r\n if (!isNaN(numVal)) {\r\n parsedVal = new Date(numVal)\r\n } else {\r\n parsedVal = dateSerialization.deserializeDate(val)\r\n }\r\n if (isNaN(Number(parsedVal))) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n }\r\n};\r\nexport function correctValueType(type) {\r\n return \"numeric\" === type || \"datetime\" === type || \"string\" === type ? type : \"\"\r\n}\r\nexport var getParser = function(valueType) {\r\n return parsers[correctValueType(valueType)] || noop\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/data_validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined as _isDefined,\r\n isFunction as _isFunction,\r\n isString as _isString,\r\n isDate as _isDate,\r\n isNumeric as _isNumber,\r\n isObject as _isObject\r\n} from \"../../core/utils/type\";\r\nvar STRING = \"string\";\r\nvar NUMERIC = \"numeric\";\r\nvar DATETIME = \"datetime\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar CONTINUOUS = \"continuous\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar VALUE_TYPE = \"valueType\";\r\nvar ARGUMENT_TYPE = \"argumentType\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n enumParser\r\n} from \"../core/utils\";\r\nvar axisTypeParser = enumParser([STRING, NUMERIC, DATETIME]);\r\nimport {\r\n getParser as _getParser\r\n} from \"./parse_utils\";\r\nvar _isArray = Array.isArray;\r\n\r\nfunction groupingValues(data, others, valueField, index) {\r\n if (index >= 0) {\r\n data.slice(index).forEach((function(cell) {\r\n if (_isDefined(cell[valueField])) {\r\n others[valueField] += cell[valueField];\r\n cell[valueField] = void 0\r\n }\r\n }))\r\n }\r\n}\r\n\r\nfunction processGroups(groups) {\r\n groups.forEach((function(group) {\r\n group.valueType = group.valueAxisType = null;\r\n group.series.forEach((function(series) {\r\n series.updateDataType({})\r\n }));\r\n group.valueAxis && group.valueAxis.resetTypes(VALUE_TYPE)\r\n }))\r\n}\r\n\r\nfunction sortValues(data, asc, selector) {\r\n var func = asc ? function(a, b) {\r\n return a - b\r\n } : function(a, b) {\r\n return b - a\r\n };\r\n data.sort((function(a, b) {\r\n var valA = selector(a);\r\n var valB = selector(b);\r\n var aa = _isDefined(valA) ? 1 : 0;\r\n var bb = _isDefined(valB) ? 1 : 0;\r\n return aa && bb ? func(valA, valB) : func(aa, bb)\r\n }));\r\n return data\r\n}\r\n\r\nfunction resetArgumentAxes(axes) {\r\n axes && axes.forEach((function(axis) {\r\n axis.resetTypes(ARGUMENT_TYPE)\r\n }))\r\n}\r\n\r\nfunction parseCategories(categories, parser) {\r\n var newArray = [];\r\n categories.forEach((function(category) {\r\n var parsedCategory = parser(category);\r\n void 0 !== parsedCategory && newArray.push(parsedCategory)\r\n }));\r\n return newArray\r\n}\r\n\r\nfunction parseAxisCategories(groupsData, parsers) {\r\n var argumentCategories = groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n groupsData.groups.forEach((function(valueGroup, i) {\r\n var categories = valueGroup.valueOptions && valueGroup.valueOptions.categories;\r\n if (categories) {\r\n valueGroup.valueOptions.categories = parseCategories(categories, parsers[i + 1])\r\n }\r\n }));\r\n if (argumentCategories) {\r\n groupsData.argumentOptions.categories = parseCategories(argumentCategories, parsers[0])\r\n }\r\n}\r\n\r\nfunction eigen(x) {\r\n return x\r\n}\r\n\r\nfunction getType(unit, type) {\r\n var result = type;\r\n if (type === STRING || _isString(unit)) {\r\n result = STRING\r\n } else if (type === DATETIME || _isDate(unit)) {\r\n result = DATETIME\r\n } else if (_isNumber(unit)) {\r\n result = NUMERIC\r\n }\r\n return result\r\n}\r\n\r\nfunction correctAxisType(type, axisType, hasCategories, incidentOccurred) {\r\n if (type === STRING && (axisType === CONTINUOUS || axisType === LOGARITHMIC || axisType === SEMIDISCRETE)) {\r\n incidentOccurred(\"E2002\")\r\n }\r\n return axisType === LOGARITHMIC ? LOGARITHMIC : hasCategories || axisType === DISCRETE || type === STRING ? DISCRETE : axisType === SEMIDISCRETE ? SEMIDISCRETE : CONTINUOUS\r\n}\r\n\r\nfunction validUnit(unit, field, incidentOccurred) {\r\n if (unit) {\r\n incidentOccurred(!_isNumber(unit) && !_isDate(unit) && !_isString(unit) ? \"E2003\" : \"E2004\", [field])\r\n }\r\n}\r\n\r\nfunction createParserUnit(type, axisType, incidentOccurred) {\r\n var parser = type ? _getParser(type) : eigen;\r\n var filterInfinity = axisType !== DISCRETE ? function(x) {\r\n return isFinite(x) || void 0 === x ? x : null\r\n } : eigen;\r\n return function(unit, field) {\r\n var parseUnit = filterInfinity(parser(unit));\r\n if (void 0 === parseUnit) {\r\n validUnit(unit, field, incidentOccurred)\r\n }\r\n return parseUnit\r\n }\r\n}\r\n\r\nfunction prepareParsers(groupsData, incidentOccurred) {\r\n var argumentParser = createParserUnit(groupsData.argumentType, groupsData.argumentAxisType, incidentOccurred);\r\n var sizeParser;\r\n var valueParser;\r\n var categoryParsers = [argumentParser];\r\n var cache = {};\r\n var list = [];\r\n groupsData.groups.forEach((function(group, groupIndex) {\r\n group.series.forEach((function(series) {\r\n valueParser = createParserUnit(group.valueType, group.valueAxisType, incidentOccurred);\r\n sizeParser = createParserUnit(NUMERIC, CONTINUOUS, incidentOccurred);\r\n cache[series.getArgumentField()] = argumentParser;\r\n series.getValueFields().forEach((function(field) {\r\n categoryParsers[groupIndex + 1] = valueParser;\r\n cache[field] = valueParser\r\n }));\r\n if (series.getSizeField()) {\r\n cache[series.getSizeField()] = sizeParser\r\n }\r\n }))\r\n }));\r\n for (var field in cache) {\r\n list.push([field, cache[field]])\r\n }\r\n list.length && parseAxisCategories(groupsData, categoryParsers);\r\n return list\r\n}\r\n\r\nfunction getParsedCell(cell, parsers) {\r\n var i;\r\n var ii = parsers.length;\r\n var obj = extend({}, cell);\r\n var field;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n field = parsers[i][0];\r\n value = cell[field];\r\n obj[field] = parsers[i][1](value, field)\r\n }\r\n return obj\r\n}\r\n\r\nfunction parse(data, parsers) {\r\n var parsedData = [];\r\n var i;\r\n var ii = data.length;\r\n parsedData.length = ii;\r\n for (i = 0; i < ii; ++i) {\r\n parsedData[i] = getParsedCell(data[i], parsers)\r\n }\r\n return parsedData\r\n}\r\n\r\nfunction findIndexByThreshold(data, valueField, threshold) {\r\n var i;\r\n var ii = data.length;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n value = data[i][valueField];\r\n if (_isDefined(value) && threshold > value) {\r\n break\r\n }\r\n }\r\n return i\r\n}\r\n\r\nfunction groupMinSlices(originalData, argumentField, valueField, smallValuesGrouping) {\r\n smallValuesGrouping = smallValuesGrouping || {};\r\n var mode = smallValuesGrouping.mode;\r\n var others = {};\r\n if (!mode || \"none\" === mode) {\r\n return\r\n }\r\n others[argumentField] = String(smallValuesGrouping.groupName || \"others\");\r\n others[valueField] = 0;\r\n var data = sortValues(originalData.slice(), false, (function(a) {\r\n return a[valueField]\r\n }));\r\n groupingValues(data, others, valueField, \"smallValueThreshold\" === mode ? findIndexByThreshold(data, valueField, smallValuesGrouping.threshold) : smallValuesGrouping.topCount);\r\n others[valueField] && originalData.push(others)\r\n}\r\n\r\nfunction groupPieData(data, groupsData) {\r\n var firstSeries = groupsData.groups[0] && groupsData.groups[0].series[0];\r\n var isPie = firstSeries && (\"pie\" === firstSeries.type || \"doughnut\" === firstSeries.type || \"donut\" === firstSeries.type);\r\n if (!isPie) {\r\n return\r\n }\r\n groupsData.groups.forEach((function(group) {\r\n group.series.forEach((function(series) {\r\n groupMinSlices(data, series.getArgumentField(), series.getValueFields()[0], series.getOptions().smallValuesGrouping)\r\n }))\r\n }))\r\n}\r\n\r\nfunction addUniqueItemToCollection(item, collection, itemsHash) {\r\n if (!itemsHash[item]) {\r\n collection.push(item);\r\n itemsHash[item] = true\r\n }\r\n}\r\n\r\nfunction getUniqueArgumentFields(groupsData) {\r\n var uniqueArgumentFields = [];\r\n var hash = {};\r\n groupsData.groups.forEach((function(group) {\r\n group.series.forEach((function(series) {\r\n addUniqueItemToCollection(series.getArgumentField(), uniqueArgumentFields, hash)\r\n }))\r\n }));\r\n return uniqueArgumentFields\r\n}\r\n\r\nfunction sort(a, b) {\r\n var result = a - b;\r\n if (isNaN(result)) {\r\n if (!_isDefined(a)) {\r\n return 1\r\n }\r\n if (!_isDefined(b)) {\r\n return -1\r\n }\r\n return 0\r\n }\r\n return result\r\n}\r\n\r\nfunction sortByArgument(data, argumentField) {\r\n return data.slice().sort((function(a, b) {\r\n return sort(a[argumentField], b[argumentField])\r\n }))\r\n}\r\n\r\nfunction sortByCallback(data, callback) {\r\n return data.slice().sort(callback)\r\n}\r\n\r\nfunction checkValueTypeOfGroup(group, cell) {\r\n group.series.forEach((function(series) {\r\n series.getValueFields().forEach((function(field) {\r\n group.valueType = getType(cell[field], group.valueType)\r\n }))\r\n }));\r\n return group.valueType\r\n}\r\n\r\nfunction getSortByCategories(categories) {\r\n var hash = {};\r\n categories.forEach((function(value, i) {\r\n hash[value] = i\r\n }));\r\n return function(data, argumentField) {\r\n return sortValues(data.slice(), true, (function(a) {\r\n return hash[a[argumentField]]\r\n }))\r\n }\r\n}\r\n\r\nfunction sortData(data, groupsData, options, uniqueArgumentFields) {\r\n var dataByArguments = {};\r\n var isDiscrete = groupsData.argumentAxisType === DISCRETE;\r\n var userCategories = isDiscrete && groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n var sortFunction = function(data) {\r\n return data\r\n };\r\n var sortingMethodOption = options.sortingMethod;\r\n var reSortCategories;\r\n if (!userCategories && _isFunction(sortingMethodOption)) {\r\n data = sortByCallback(data, sortingMethodOption)\r\n }\r\n if (isDiscrete) {\r\n groupsData.categories = getCategories(data, uniqueArgumentFields, userCategories)\r\n }\r\n if (userCategories || !_isFunction(sortingMethodOption) && groupsData.argumentType === STRING && !options._skipArgumentSorting) {\r\n sortFunction = getSortByCategories(groupsData.categories)\r\n } else if (true === sortingMethodOption && groupsData.argumentType !== STRING) {\r\n sortFunction = sortByArgument;\r\n reSortCategories = isDiscrete\r\n }\r\n uniqueArgumentFields.forEach((function(field) {\r\n dataByArguments[field] = sortFunction(data, field)\r\n }));\r\n if (reSortCategories) {\r\n groupsData.categories = groupsData.categories.sort(sort)\r\n }\r\n return dataByArguments\r\n}\r\n\r\nfunction checkItemExistence(collection, item) {\r\n return -1 === collection.map((function(collectionItem) {\r\n return collectionItem.valueOf()\r\n })).indexOf(item.valueOf())\r\n}\r\n\r\nfunction getCategories(data, uniqueArgumentFields, userCategories) {\r\n var categories = userCategories ? userCategories.slice() : [];\r\n uniqueArgumentFields.forEach((function(field) {\r\n data.forEach((function(item) {\r\n var dataItem = item[field];\r\n _isDefined(dataItem) && checkItemExistence(categories, dataItem) && categories.push(dataItem)\r\n }))\r\n }));\r\n return categories\r\n}\r\n\r\nfunction checkArgumentTypeOfGroup(series, cell, groupsData) {\r\n series.forEach((function(currentSeries) {\r\n groupsData.argumentType = getType(cell[currentSeries.getArgumentField()], groupsData.argumentType)\r\n }));\r\n return groupsData.argumentType\r\n}\r\n\r\nfunction checkType(data, groupsData, checkTypeForAllData) {\r\n var groupsWithUndefinedValueType = [];\r\n var groupsWithUndefinedArgumentType = [];\r\n var argumentTypeGroup = groupsData.argumentOptions && axisTypeParser(groupsData.argumentOptions.argumentType);\r\n var groupsIndexes;\r\n groupsData.groups.forEach((function(group) {\r\n if (!group.series.length) {\r\n return\r\n }\r\n var valueTypeGroup = group.valueOptions && axisTypeParser(group.valueOptions.valueType);\r\n group.valueType = valueTypeGroup;\r\n groupsData.argumentType = argumentTypeGroup;\r\n !valueTypeGroup && groupsWithUndefinedValueType.push(group);\r\n !argumentTypeGroup && groupsWithUndefinedArgumentType.push(group)\r\n }));\r\n if (groupsWithUndefinedValueType.length || groupsWithUndefinedArgumentType.length) {\r\n groupsIndexes = groupsWithUndefinedValueType.map((function(_, index) {\r\n return index\r\n }));\r\n data.some((function(cell) {\r\n var defineArg;\r\n groupsWithUndefinedValueType.forEach((function(group, groupIndex) {\r\n if (checkValueTypeOfGroup(group, cell) && groupsIndexes.indexOf(groupIndex) >= 0) {\r\n groupsIndexes.splice(groupIndex, 1)\r\n }\r\n }));\r\n if (!defineArg) {\r\n groupsWithUndefinedArgumentType.forEach((function(group) {\r\n defineArg = checkArgumentTypeOfGroup(group.series, cell, groupsData)\r\n }))\r\n }\r\n if (!checkTypeForAllData && defineArg && 0 === groupsIndexes.length) {\r\n return true\r\n }\r\n }))\r\n }\r\n}\r\n\r\nfunction checkAxisType(groupsData, incidentOccurred) {\r\n var argumentOptions = groupsData.argumentOptions || {};\r\n var userArgumentCategories = argumentOptions && argumentOptions.categories || [];\r\n var argumentAxisType = correctAxisType(groupsData.argumentType, argumentOptions.type, !!userArgumentCategories.length, incidentOccurred);\r\n groupsData.groups.forEach((function(group) {\r\n var valueOptions = group.valueOptions || {};\r\n var valueCategories = valueOptions.categories || [];\r\n var valueAxisType = correctAxisType(group.valueType, valueOptions.type, !!valueCategories.length, incidentOccurred);\r\n group.series.forEach((function(series) {\r\n var optionsSeries = {};\r\n optionsSeries.argumentAxisType = argumentAxisType;\r\n optionsSeries.valueAxisType = valueAxisType;\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || optionsSeries.argumentAxisType;\r\n group.valueAxisType = group.valueAxisType || optionsSeries.valueAxisType;\r\n optionsSeries.argumentType = groupsData.argumentType;\r\n optionsSeries.valueType = group.valueType;\r\n optionsSeries.showZero = valueOptions.showZero;\r\n series.updateDataType(optionsSeries)\r\n }));\r\n group.valueAxisType = group.valueAxisType || valueAxisType;\r\n if (group.valueAxis) {\r\n group.valueAxis.setTypes(group.valueAxisType, group.valueType, VALUE_TYPE);\r\n group.valueAxis.validate()\r\n }\r\n }));\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || argumentAxisType;\r\n if (groupsData.argumentAxes) {\r\n groupsData.argumentAxes.forEach((function(axis) {\r\n axis.setTypes(groupsData.argumentAxisType, groupsData.argumentType, ARGUMENT_TYPE);\r\n axis.validate()\r\n }))\r\n }\r\n}\r\n\r\nfunction verifyData(source, incidentOccurred) {\r\n var data = [];\r\n var sourceIsDefined = _isDefined(source);\r\n var hasError = sourceIsDefined && !_isArray(source);\r\n var i;\r\n var ii;\r\n var k;\r\n var item;\r\n if (sourceIsDefined && !hasError) {\r\n for (i = 0, ii = source.length, k = 0; i < ii; ++i) {\r\n item = source[i];\r\n if (_isObject(item)) {\r\n data[k++] = item\r\n } else if (item) {\r\n hasError = true\r\n }\r\n }\r\n }\r\n if (hasError) {\r\n incidentOccurred(\"E2001\")\r\n }\r\n return data\r\n}\r\nexport function validateData(data, groupsData, incidentOccurred, options) {\r\n data = verifyData(data, incidentOccurred);\r\n groupsData.argumentType = groupsData.argumentAxisType = null;\r\n processGroups(groupsData.groups);\r\n resetArgumentAxes(groupsData.argumentAxes);\r\n checkType(data, groupsData, options.checkTypeForAllData);\r\n checkAxisType(groupsData, incidentOccurred);\r\n if (options.convertToAxisDataType) {\r\n data = parse(data, prepareParsers(groupsData, incidentOccurred))\r\n }\r\n groupPieData(data, groupsData);\r\n var dataByArgumentFields = sortData(data, groupsData, options, getUniqueArgumentFields(groupsData));\r\n return dataByArgumentFields\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/title.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions as _patchFontOptions,\r\n enumParser\r\n} from \"./utils\";\r\nimport {\r\n LayoutElement\r\n} from \"./layout_element\";\r\nvar _Number = Number;\r\nvar parseHorizontalAlignment = enumParser([\"left\", \"center\", \"right\"]);\r\nvar parseVerticalAlignment = enumParser([\"top\", \"bottom\"]);\r\nvar DEFAULT_MARGIN = 10;\r\n\r\nfunction hasText(text) {\r\n return !!(text && String(text).length > 0)\r\n}\r\n\r\nfunction processTitleLength(elem, text, width, options, placeholderSize) {\r\n if (elem.attr({\r\n text: text\r\n }).setMaxSize(width, placeholderSize, options).textChanged) {\r\n elem.setTitle(text)\r\n }\r\n}\r\n\r\nfunction pickMarginValue(value) {\r\n return value >= 0 ? _Number(value) : DEFAULT_MARGIN\r\n}\r\n\r\nfunction validateMargin(margin) {\r\n var result;\r\n if (margin >= 0) {\r\n result = {\r\n left: _Number(margin),\r\n top: _Number(margin),\r\n right: _Number(margin),\r\n bottom: _Number(margin)\r\n }\r\n } else {\r\n margin = margin || {};\r\n result = {\r\n left: pickMarginValue(margin.left),\r\n top: pickMarginValue(margin.top),\r\n right: pickMarginValue(margin.right),\r\n bottom: pickMarginValue(margin.bottom)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction checkRect(rect, boundingRect) {\r\n return rect[2] - rect[0] < boundingRect.width || rect[3] - rect[1] < boundingRect.height\r\n}\r\nexport var Title = function(params) {\r\n this._params = params;\r\n this._group = params.renderer.g().attr({\r\n class: params.cssClass\r\n }).linkOn(params.root || params.renderer.root, \"title\");\r\n this._hasText = false\r\n};\r\nextend(Title.prototype, LayoutElement.prototype, {\r\n dispose: function() {\r\n this._group.linkRemove();\r\n this._group.linkOff();\r\n if (this._titleElement) {\r\n this._clipRect.dispose();\r\n this._titleElement = this._subtitleElement = this._clipRect = null\r\n }\r\n this._params = this._group = this._options = null\r\n },\r\n _updateOptions: function(options) {\r\n this._options = options;\r\n this._options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, \"center\");\r\n this._options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, \"top\");\r\n this._options.margin = validateMargin(options.margin)\r\n },\r\n _updateStructure: function() {\r\n var renderer = this._params.renderer;\r\n var group = this._group;\r\n var options = this._options;\r\n var align = options.horizontalAlignment;\r\n if (!this._titleElement) {\r\n this._titleElement = renderer.text().append(group);\r\n this._subtitleElement = renderer.text();\r\n this._clipRect = renderer.clipRect();\r\n group.attr({\r\n \"clip-path\": this._clipRect.id\r\n })\r\n }\r\n this._titleElement.attr({\r\n align: align,\r\n class: options.cssClass\r\n });\r\n this._subtitleElement.attr({\r\n align: align,\r\n class: options.subtitle.cssClass\r\n });\r\n group.linkAppend();\r\n hasText(options.subtitle.text) ? this._subtitleElement.append(group) : this._subtitleElement.remove()\r\n },\r\n _updateTexts: function() {\r\n var options = this._options;\r\n var subtitleOptions = options.subtitle;\r\n var titleElement = this._titleElement;\r\n var subtitleElement = this._subtitleElement;\r\n var titleBox;\r\n titleElement.attr({\r\n text: \"A\",\r\n y: 0\r\n }).css(_patchFontOptions(options.font));\r\n titleBox = titleElement.getBBox();\r\n this._baseLineCorrection = titleBox.height + titleBox.y;\r\n titleElement.attr({\r\n text: options.text\r\n });\r\n titleBox = titleElement.getBBox();\r\n var y = -titleBox.y;\r\n titleElement.attr({\r\n y: y\r\n });\r\n if (hasText(subtitleOptions.text)) {\r\n subtitleElement.attr({\r\n text: subtitleOptions.text,\r\n y: 0\r\n }).css(_patchFontOptions(subtitleOptions.font))\r\n }\r\n },\r\n _shiftSubtitle() {\r\n var titleBox = this._titleElement.getBBox();\r\n var element = this._subtitleElement;\r\n var offset = this._options.subtitle.offset;\r\n element.move(0, titleBox.y + titleBox.height - element.getBBox().y - offset)\r\n },\r\n _updateBoundingRectAlignment: function() {\r\n var boundingRect = this._boundingRect;\r\n var options = this._options;\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\";\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n }\r\n },\r\n hasText: function() {\r\n return this._hasText\r\n },\r\n update: function(themeOptions, userOptions) {\r\n var options = extend(true, {}, themeOptions, processTitleOptions(userOptions));\r\n var _hasText = hasText(options.text);\r\n var isLayoutChanged = _hasText || _hasText !== this._hasText;\r\n this._baseLineCorrection = 0;\r\n this._updateOptions(options);\r\n this._boundingRect = {};\r\n if (_hasText) {\r\n this._updateStructure();\r\n this._updateTexts()\r\n } else {\r\n this._group.linkRemove()\r\n }\r\n this._updateBoundingRect();\r\n this._updateBoundingRectAlignment();\r\n this._hasText = _hasText;\r\n return isLayoutChanged\r\n },\r\n draw: function(width, height) {\r\n if (this._hasText) {\r\n this._group.linkAppend();\r\n this._correctTitleLength(width);\r\n if (this._group.getBBox().height > height) {\r\n this.freeSpace()\r\n }\r\n }\r\n return this\r\n },\r\n _correctTitleLength: function(width) {\r\n var options = this._options;\r\n var margin = options.margin;\r\n var maxWidth = width - margin.left - margin.right;\r\n var placeholderSize = options.placeholderSize;\r\n processTitleLength(this._titleElement, options.text, maxWidth, options, placeholderSize);\r\n if (this._subtitleElement) {\r\n if (_Number(placeholderSize) > 0) {\r\n placeholderSize -= this._titleElement.getBBox().height\r\n }\r\n processTitleLength(this._subtitleElement, options.subtitle.text, maxWidth, options.subtitle, placeholderSize);\r\n this._shiftSubtitle()\r\n }\r\n this._updateBoundingRect();\r\n var {\r\n x: x,\r\n y: y,\r\n height: height\r\n } = this.getCorrectedLayoutOptions();\r\n this._clipRect.attr({\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n })\r\n },\r\n getLayoutOptions: function() {\r\n return this._boundingRect || null\r\n },\r\n shift: function(x, y) {\r\n var box = this.getLayoutOptions();\r\n this._group.move(x - box.x, y - box.y);\r\n return this\r\n },\r\n _updateBoundingRect: function() {\r\n var options = this._options;\r\n var margin = options.margin;\r\n var boundingRect = this._boundingRect;\r\n var box = this._hasText ? this._group.getBBox() : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0,\r\n isEmpty: true\r\n };\r\n if (!box.isEmpty) {\r\n box.height += margin.top + margin.bottom - this._baseLineCorrection;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y += this._baseLineCorrection - margin.top\r\n }\r\n if (options.placeholderSize > 0) {\r\n box.height = options.placeholderSize\r\n }\r\n boundingRect.height = box.height;\r\n boundingRect.width = box.width;\r\n boundingRect.x = box.x;\r\n boundingRect.y = box.y\r\n },\r\n getCorrectedLayoutOptions() {\r\n var srcBox = this.getLayoutOptions();\r\n var correction = this._baseLineCorrection;\r\n return extend({}, srcBox, {\r\n y: srcBox.y - correction,\r\n height: srcBox.height + correction\r\n })\r\n },\r\n layoutOptions: function() {\r\n if (!this._hasText) {\r\n return null\r\n }\r\n return {\r\n horizontalAlignment: this._boundingRect.horizontalAlignment,\r\n verticalAlignment: this._boundingRect.verticalAlignment,\r\n priority: 0\r\n }\r\n },\r\n measure: function(size) {\r\n this.draw(size[0], size[1]);\r\n return [this._boundingRect.width, this._boundingRect.height]\r\n },\r\n move: function(rect, fitRect) {\r\n var boundingRect = this._boundingRect;\r\n if (checkRect(rect, boundingRect)) {\r\n this.shift(fitRect[0], fitRect[1])\r\n } else {\r\n this.shift(Math.round(rect[0]), Math.round(rect[1]))\r\n }\r\n },\r\n freeSpace: function() {\r\n this._params.incidentOccurred(\"W2103\");\r\n this._group.linkRemove();\r\n this._boundingRect.width = this._boundingRect.height = 0\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n changeLink: function(root) {\r\n this._group.linkRemove();\r\n this._group.linkOn(root, \"title\")\r\n }\r\n});\r\n\r\nfunction processTitleOptions(options) {\r\n var newOptions = _isString(options) ? {\r\n text: options\r\n } : options || {};\r\n newOptions.subtitle = _isString(newOptions.subtitle) ? {\r\n text: newOptions.subtitle\r\n } : newOptions.subtitle || {};\r\n return newOptions\r\n}\r\nexport var plugin = {\r\n name: \"title\",\r\n init: function() {\r\n this._title = new Title({\r\n renderer: this._renderer,\r\n cssClass: this._rootClassPrefix + \"-title\",\r\n incidentOccurred: this._incidentOccurred\r\n });\r\n this._layout.add(this._title)\r\n },\r\n dispose: function() {\r\n this._title.dispose();\r\n this._title = null\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"TITLE\",\r\n handler: function() {\r\n if (this._title.update(this._themeManager.theme(\"title\"), this.option(\"title\"))) {\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n isThemeDependent: true,\r\n option: \"title\",\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"title.font\", \"title.subtitle.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\"<svg\", '<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\"')\r\n }\r\n markup = markup.replace(/xmlns=\"[\\s\\S]*?\"/gi, (function(match) {\r\n if (!first) {\r\n return \"\"\r\n }\r\n first = false;\r\n return match\r\n }));\r\n return markup.replace(/xmlns:NS1=\"[\\s\\S]*?\"/gi, \"\").replace(/NS1:xmlns:xlink=\"([\\s\\S]*?)\"/gi, 'xmlns:xlink=\"$1\"')\r\n}\r\n\r\nfunction decodeHtmlEntities(markup) {\r\n return markup.replace(/"/gi, \""\").replace(/&/gi, \"&\").replace(/'/gi, \"'\").replace(/</gi, \"<\").replace(/>/gi, \">\").replace(/ /gi, \" \").replace(/­/gi, \"­\")\r\n}\r\nexport var HIDDEN_FOR_EXPORT = \"hidden-for-export\";\r\nexport function getSvgMarkup(element, backgroundColor) {\r\n return fixNamespaces(decodeHtmlEntities(getMarkup(element, backgroundColor)))\r\n}\r\nexport function getSvgElement(markup) {\r\n return domAdapter.isNode(markup) ? markup : (new window.DOMParser).parseFromString(markup, \"image/svg+xml\").childNodes[0]\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/animation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../../animation/frame\";\r\nvar noop = function() {};\r\nexport var easingFunctions = {\r\n easeOutCubic: function(pos, start, end) {\r\n return 1 === pos ? end : (1 - Math.pow(1 - pos, 3)) * (end - start) + +start\r\n },\r\n linear: function(pos, start, end) {\r\n return 1 === pos ? end : pos * (end - start) + +start\r\n }\r\n};\r\nexport var animationSvgStep = {\r\n segments: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var curSeg;\r\n var seg;\r\n var i;\r\n var j;\r\n var segments = [];\r\n for (i = 0; i < from.length; i++) {\r\n curSeg = from[i];\r\n seg = [curSeg[0]];\r\n if (curSeg.length > 1) {\r\n for (j = 1; j < curSeg.length; j++) {\r\n seg.push(easing(progress, curSeg[j], to[i][j]))\r\n }\r\n }\r\n segments.push(seg)\r\n }\r\n currentParams.segments = params.end && 1 === progress ? params.end : segments;\r\n elem.attr({\r\n segments: segments\r\n })\r\n },\r\n arc: function(elem, params, progress, easing) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n transform: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = currentParams[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n base: function(elem, params, progress, easing, currentParams, attributeName) {\r\n var obj = {};\r\n obj[attributeName] = currentParams[attributeName] = easing(progress, params.from, params.to);\r\n elem.attr(obj)\r\n },\r\n _: noop,\r\n complete: function(element, currentSettings) {\r\n element.attr(currentSettings)\r\n }\r\n};\r\n\r\nfunction step(now) {\r\n var animateStep = this._animateStep;\r\n var attrName;\r\n this._progress = this._calcProgress(now);\r\n for (attrName in this.params) {\r\n var anim = animateStep[attrName] || animateStep.base;\r\n anim(this.element, this.params[attrName], this._progress, this._easing, this._currentParams, attrName)\r\n }\r\n this.options.step && this.options.step(this._easing(this._progress, 0, 1), this._progress);\r\n if (1 === this._progress) {\r\n return this.stop()\r\n }\r\n return true\r\n}\r\n\r\nfunction delayTick(now) {\r\n if (now - this._startTime >= this.delay) {\r\n this.tick = step\r\n }\r\n return true\r\n}\r\n\r\nfunction start(now) {\r\n this._startTime = now;\r\n this.tick = this.delay ? delayTick : step;\r\n return true\r\n}\r\n\r\nfunction Animation(element, params, options) {\r\n this._progress = 0;\r\n this.element = element;\r\n this.params = params;\r\n this.options = options;\r\n this.duration = options.partitionDuration ? options.duration * options.partitionDuration : options.duration;\r\n this.delay = options.delay && options.duration * options.delay || 0;\r\n this._animateStep = options.animateStep || animationSvgStep;\r\n this._easing = easingFunctions[options.easing] || easingFunctions.easeOutCubic;\r\n this._currentParams = {};\r\n this.tick = start\r\n}\r\nAnimation.prototype = {\r\n _calcProgress: function(now) {\r\n return Math.min(1, (now - this.delay - this._startTime) / this.duration)\r\n },\r\n stop: function(disableComplete) {\r\n var options = this.options;\r\n var animateStep = this._animateStep;\r\n this.stop = this.tick = noop;\r\n animateStep.complete && animateStep.complete(this.element, this._currentParams);\r\n options.complete && !disableComplete && options.complete()\r\n }\r\n};\r\nexport function AnimationController(element) {\r\n this._animationCount = 0;\r\n this._timerId = null;\r\n this._animations = {};\r\n this.element = element\r\n}\r\nAnimationController.prototype = {\r\n _loop: function() {\r\n var that = this;\r\n var animations = that._animations;\r\n var activeAnimation = 0;\r\n var now = (new Date).getTime();\r\n var an;\r\n var endAnimation = that._endAnimation;\r\n for (an in animations) {\r\n if (!animations[an].tick(now)) {\r\n delete animations[an]\r\n }\r\n activeAnimation++\r\n }\r\n if (0 === activeAnimation) {\r\n that.stop();\r\n that._endAnimationTimer = endAnimation && setTimeout((function() {\r\n if (0 === that._animationCount) {\r\n endAnimation();\r\n that._endAnimation = null\r\n }\r\n }));\r\n return\r\n }\r\n that._timerId = requestAnimationFrame.call(null, (function() {\r\n that._loop()\r\n }), that.element)\r\n },\r\n addAnimation: function(animation) {\r\n var that = this;\r\n that._animations[that._animationCount++] = animation;\r\n clearTimeout(that._endAnimationTimer);\r\n if (!that._timerId) {\r\n clearTimeout(that._startDelay);\r\n that._startDelay = setTimeout((function() {\r\n that._timerId = 1;\r\n that._loop()\r\n }), 0)\r\n }\r\n },\r\n animateElement: function(elem, params, options) {\r\n if (elem && params && options) {\r\n elem.animation && elem.animation.stop();\r\n this.addAnimation(elem.animation = new Animation(elem, params, options))\r\n }\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationCount ? this._endAnimation = endAnimation : endAnimation()\r\n },\r\n dispose: function() {\r\n this.stop();\r\n this.element = null\r\n },\r\n stop: function() {\r\n this._animations = {};\r\n this._animationCount = 0;\r\n cancelAnimationFrame(this._timerId);\r\n clearTimeout(this._startDelay);\r\n clearTimeout(this._endAnimationTimer);\r\n this._timerId = null\r\n },\r\n lock: function() {\r\n var an;\r\n var animations = this._animations;\r\n var unstoppable;\r\n var hasUnstoppableInAnimations;\r\n for (an in animations) {\r\n unstoppable = animations[an].options.unstoppable;\r\n hasUnstoppableInAnimations = hasUnstoppableInAnimations || unstoppable;\r\n if (!unstoppable) {\r\n animations[an].stop(true);\r\n delete animations[an]\r\n }\r\n }!hasUnstoppableInAnimations && this.stop()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/renderer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport callOnce from \"../../../core/utils/call_once\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n getSvgMarkup\r\n} from \"../../../core/utils/svg\";\r\nimport {\r\n AnimationController\r\n} from \"./animation\";\r\nimport {\r\n normalizeBBox,\r\n rotateBBox,\r\n normalizeEnum,\r\n normalizeArcParams,\r\n getNextDefsSvgId\r\n} from \"../utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar window = getWindow();\r\nvar {\r\n max: max,\r\n round: round\r\n} = Math;\r\nvar SHARPING_CORRECTION = .5;\r\nvar ARC_COORD_PREC = 5;\r\nvar LIGHTENING_HASH = \"@filter::lightening\";\r\nvar pxAddingExceptions = {\r\n \"column-count\": true,\r\n \"fill-opacity\": true,\r\n \"flex-grow\": true,\r\n \"flex-shrink\": true,\r\n \"font-weight\": true,\r\n \"line-height\": true,\r\n opacity: true,\r\n order: true,\r\n orphans: true,\r\n widows: true,\r\n \"z-index\": true,\r\n zoom: true\r\n};\r\nvar KEY_TEXT = \"text\";\r\nvar KEY_STROKE = \"stroke\";\r\nvar KEY_STROKE_WIDTH = \"stroke-width\";\r\nvar KEY_STROKE_OPACITY = \"stroke-opacity\";\r\nvar KEY_FONT_SIZE = \"font-size\";\r\nvar KEY_FONT_STYLE = \"font-style\";\r\nvar KEY_FONT_WEIGHT = \"font-weight\";\r\nvar KEY_TEXT_DECORATION = \"text-decoration\";\r\nvar KEY_TEXTS_ALIGNMENT = \"textsAlignment\";\r\nvar NONE = \"none\";\r\nvar DEFAULT_FONT_SIZE = 12;\r\nvar ELLIPSIS = \"...\";\r\nvar objectCreate = function() {\r\n if (!Object.create) {\r\n return function(proto) {\r\n var F = function() {};\r\n F.prototype = proto;\r\n return new F\r\n }\r\n } else {\r\n return function(proto) {\r\n return Object.create(proto)\r\n }\r\n }\r\n}();\r\nvar DEFAULTS = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n \"pointer-events\": null\r\n};\r\nvar getBackup = callOnce((function() {\r\n var backupContainer = domAdapter.createElement(\"div\");\r\n backupContainer.style.left = \"-9999px\";\r\n backupContainer.style.position = \"absolute\";\r\n return {\r\n backupContainer: backupContainer,\r\n backupCounter: 0\r\n }\r\n}));\r\n\r\nfunction backupRoot(root) {\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().appendChild(getBackup().backupContainer)\r\n }++getBackup().backupCounter;\r\n root.append({\r\n element: getBackup().backupContainer\r\n })\r\n}\r\n\r\nfunction restoreRoot(root, container) {\r\n root.append({\r\n element: container\r\n });\r\n --getBackup().backupCounter;\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().removeChild(getBackup().backupContainer)\r\n }\r\n}\r\n\r\nfunction isObjectArgument(value) {\r\n return value && \"string\" !== typeof value\r\n}\r\n\r\nfunction createElement(tagName) {\r\n return domAdapter.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\r\n}\r\nexport function getFuncIri(id, pathModified) {\r\n return null !== id ? \"url(\" + (pathModified ? window.location.href.split(\"#\")[0] : \"\") + \"#\" + id + \")\" : id\r\n}\r\n\r\nfunction extend(target, source) {\r\n var key;\r\n for (key in source) {\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\nvar preserveAspectRatioMap = {\r\n full: NONE,\r\n lefttop: \"xMinYMin\",\r\n leftcenter: \"xMinYMid\",\r\n leftbottom: \"xMinYMax\",\r\n centertop: \"xMidYMin\",\r\n center: \"xMidYMid\",\r\n centerbottom: \"xMidYMax\",\r\n righttop: \"xMaxYMin\",\r\n rightcenter: \"xMaxYMid\",\r\n rightbottom: \"xMaxYMax\"\r\n};\r\nexport function processHatchingAttrs(element, attrs) {\r\n if (attrs.hatching && \"none\" !== normalizeEnum(attrs.hatching.direction)) {\r\n attrs = extend({}, attrs);\r\n attrs.fill = element._hatching = element.renderer.lockDefsElements({\r\n color: attrs.fill,\r\n hatching: attrs.hatching\r\n }, element._hatching, \"pattern\");\r\n delete attrs.filter\r\n } else if (element._hatching) {\r\n element.renderer.releaseDefsElements(element._hatching);\r\n element._hatching = null;\r\n delete attrs.filter\r\n } else if (attrs.filter) {\r\n attrs = extend({}, attrs);\r\n attrs.filter = element._filter = element.renderer.lockDefsElements({}, element._filter, \"filter\")\r\n } else if (element._filter) {\r\n element.renderer.releaseDefsElements(element._filter);\r\n element._filter = null\r\n }\r\n delete attrs.hatching;\r\n return attrs\r\n}\r\nvar buildArcPath = function(x, y, innerR, outerR, startAngleCos, startAngleSin, endAngleCos, endAngleSin, isCircle, longFlag) {\r\n return [\"M\", (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC), \"A\", outerR.toFixed(ARC_COORD_PREC), outerR.toFixed(ARC_COORD_PREC), 0, longFlag, 0, (x + outerR * endAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * endAngleSin).toFixed(ARC_COORD_PREC), isCircle ? \"M\" : \"L\", (x + innerR * endAngleCos).toFixed(5), (y - innerR * endAngleSin).toFixed(ARC_COORD_PREC), \"A\", innerR.toFixed(ARC_COORD_PREC), innerR.toFixed(ARC_COORD_PREC), 0, longFlag, 1, (x + innerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - innerR * startAngleSin).toFixed(ARC_COORD_PREC), \"Z\"].join(\" \")\r\n};\r\n\r\nfunction buildPathSegments(points, type) {\r\n var list = [\r\n [\"M\", 0, 0]\r\n ];\r\n switch (type) {\r\n case \"line\":\r\n list = buildLineSegments(points);\r\n break;\r\n case \"area\":\r\n list = buildLineSegments(points, true);\r\n break;\r\n case \"bezier\":\r\n list = buildCurveSegments(points);\r\n break;\r\n case \"bezierarea\":\r\n list = buildCurveSegments(points, true)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildLineSegments(points, close) {\r\n return buildSegments(points, buildSimpleLineSegment, close)\r\n}\r\n\r\nfunction buildCurveSegments(points, close) {\r\n return buildSegments(points, buildSimpleCurveSegment, close)\r\n}\r\n\r\nfunction buildSegments(points, buildSimpleSegment, close) {\r\n var _points$;\r\n var i;\r\n var ii;\r\n var list = [];\r\n if (null !== (_points$ = points[0]) && void 0 !== _points$ && _points$.length) {\r\n for (i = 0, ii = points.length; i < ii; ++i) {\r\n buildSimpleSegment(points[i], close, list)\r\n }\r\n } else {\r\n buildSimpleSegment(points, close, list)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildSimpleLineSegment(points, close, list) {\r\n var i = 0;\r\n var k0 = list.length;\r\n var k = k0;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i].x, points[i++].y]\r\n }\r\n } else {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i++], points[i++]]\r\n }\r\n }\r\n list[k0][0] = \"M\"\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction buildSimpleCurveSegment(points, close, list) {\r\n var i;\r\n var k = list.length;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n list[k++] = [\"M\", points[0].x, points[0].y];\r\n for (i = 1; i < ii;) {\r\n list[k++] = [\"C\", points[i].x, points[i++].y, points[i].x, points[i++].y, points[i].x, points[i++].y]\r\n }\r\n } else {\r\n list[k++] = [\"M\", points[0], points[1]];\r\n for (i = 2; i < ii;) {\r\n list[k++] = [\"C\", points[i++], points[i++], points[i++], points[i++], points[i++], points[i++]]\r\n }\r\n }\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction combinePathParam(segments) {\r\n var d = [];\r\n var k = 0;\r\n var i;\r\n var ii = segments.length;\r\n var segment;\r\n var j;\r\n var jj;\r\n for (i = 0; i < ii; ++i) {\r\n segment = segments[i];\r\n for (j = 0, jj = segment.length; j < jj; ++j) {\r\n d[k++] = segment[j]\r\n }\r\n }\r\n return d.join(\" \")\r\n}\r\n\r\nfunction compensateSegments(oldSegments, newSegments, type) {\r\n var oldLength = oldSegments.length;\r\n var newLength = newSegments.length;\r\n var i;\r\n var originalNewSegments;\r\n var makeEqualSegments = -1 !== type.indexOf(\"area\") ? makeEqualAreaSegments : makeEqualLineSegments;\r\n if (0 === oldLength) {\r\n for (i = 0; i < newLength; i++) {\r\n oldSegments.push(newSegments[i].slice(0))\r\n }\r\n } else if (oldLength < newLength) {\r\n makeEqualSegments(oldSegments, newSegments, type)\r\n } else if (oldLength > newLength) {\r\n originalNewSegments = newSegments.slice(0);\r\n makeEqualSegments(newSegments, oldSegments, type)\r\n }\r\n return originalNewSegments\r\n}\r\n\r\nfunction prepareConstSegment(constSeg, type) {\r\n var x = constSeg[constSeg.length - 2];\r\n var y = constSeg[constSeg.length - 1];\r\n switch (type) {\r\n case \"line\":\r\n case \"area\":\r\n constSeg[0] = \"L\";\r\n break;\r\n case \"bezier\":\r\n case \"bezierarea\":\r\n constSeg[0] = \"C\";\r\n constSeg[1] = constSeg[3] = constSeg[5] = x;\r\n constSeg[2] = constSeg[4] = constSeg[6] = y\r\n }\r\n}\r\n\r\nfunction makeEqualLineSegments(short, long, type) {\r\n var constSeg = short[short.length - 1].slice();\r\n var i = short.length;\r\n prepareConstSegment(constSeg, type);\r\n for (; i < long.length; i++) {\r\n short[i] = constSeg.slice(0)\r\n }\r\n}\r\n\r\nfunction makeEqualAreaSegments(short, long, type) {\r\n var i;\r\n var head;\r\n var shortLength = short.length;\r\n var longLength = long.length;\r\n var constsSeg1;\r\n var constsSeg2;\r\n if ((shortLength - 1) % 2 === 0 && (longLength - 1) % 2 === 0) {\r\n i = (shortLength - 1) / 2 - 1;\r\n head = short.slice(0, i + 1);\r\n constsSeg1 = head[head.length - 1].slice(0);\r\n constsSeg2 = short.slice(i + 1)[0].slice(0);\r\n prepareConstSegment(constsSeg1, type);\r\n prepareConstSegment(constsSeg2, type);\r\n for (var j = i; j < (longLength - 1) / 2 - 1; j++) {\r\n short.splice(j + 1, 0, constsSeg1);\r\n short.splice(j + 3, 0, constsSeg2)\r\n }\r\n }\r\n}\r\n\r\nfunction baseCss(that, styles) {\r\n var elemStyles = that._styles;\r\n var key;\r\n var value;\r\n styles = styles || {};\r\n for (key in styles) {\r\n value = styles[key];\r\n if (isDefined(value)) {\r\n value += \"number\" === typeof value && !pxAddingExceptions[key] ? \"px\" : \"\";\r\n elemStyles[key] = \"\" !== value ? value : null\r\n }\r\n }\r\n for (key in elemStyles) {\r\n value = elemStyles[key];\r\n if (value) {\r\n that.element.style[key] = value\r\n } else if (null === value) {\r\n that.element.style[key] = \"\"\r\n }\r\n }\r\n return that\r\n}\r\n\r\nfunction fixFuncIri(wrapper, attribute) {\r\n var element = wrapper.element;\r\n var id = wrapper.attr(attribute);\r\n if (id && -1 !== id.indexOf(\"DevExpress\")) {\r\n element.removeAttribute(attribute);\r\n element.setAttribute(attribute, getFuncIri(id, wrapper.renderer.pathModified))\r\n }\r\n}\r\n\r\nfunction baseAttr(that, attrs) {\r\n attrs = attrs || {};\r\n var settings = that._settings;\r\n var attributes = {};\r\n var key;\r\n var value;\r\n var elem = that.element;\r\n var renderer = that.renderer;\r\n var rtl = renderer.rtl;\r\n var hasTransformations;\r\n var recalculateDashStyle;\r\n var sw;\r\n var i;\r\n if (!isObjectArgument(attrs)) {\r\n if (attrs in settings) {\r\n return settings[attrs]\r\n }\r\n if (attrs in DEFAULTS) {\r\n return DEFAULTS[attrs]\r\n }\r\n return 0\r\n }\r\n extend(attributes, attrs);\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n settings[key] = value;\r\n if (\"align\" === key) {\r\n key = \"text-anchor\";\r\n value = {\r\n left: rtl ? \"end\" : \"start\",\r\n center: \"middle\",\r\n right: rtl ? \"start\" : \"end\"\r\n } [value] || null\r\n } else if (\"dashStyle\" === key) {\r\n recalculateDashStyle = true;\r\n continue\r\n } else if (key === KEY_STROKE_WIDTH) {\r\n recalculateDashStyle = true\r\n } else if (value && (\"fill\" === key || \"clip-path\" === key || \"filter\" === key) && 0 === value.indexOf(\"DevExpress\")) {\r\n that._addFixIRICallback();\r\n value = getFuncIri(value, renderer.pathModified)\r\n } else if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y)|sharp|sharpDirection)$/i.test(key)) {\r\n hasTransformations = true;\r\n continue\r\n } else if (/^(x|y|d)$/i.test(key)) {\r\n hasTransformations = true\r\n }\r\n if (null === value) {\r\n elem.removeAttribute(key)\r\n } else {\r\n elem.setAttribute(key, value)\r\n }\r\n }\r\n if (recalculateDashStyle && \"dashStyle\" in settings) {\r\n value = settings.dashStyle;\r\n sw = (\"_originalSW\" in that ? that._originalSW : settings[KEY_STROKE_WIDTH]) || 1;\r\n key = \"stroke-dasharray\";\r\n value = null === value ? \"\" : normalizeEnum(value);\r\n if (\"\" === value || \"solid\" === value || value === NONE) {\r\n that.element.removeAttribute(key)\r\n } else {\r\n value = value.replace(/longdash/g, \"8,3,\").replace(/dash/g, \"4,3,\").replace(/dot/g, \"1,3,\").replace(/,$/, \"\").split(\",\");\r\n i = value.length;\r\n while (i--) {\r\n value[i] = parseInt(value[i]) * sw\r\n }\r\n that.element.setAttribute(key, value.join(\",\"))\r\n }\r\n }\r\n if (hasTransformations) {\r\n that._applyTransformation()\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAttr(attrs) {\r\n var segments;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n segments = attrs.segments;\r\n if (\"points\" in attrs) {\r\n segments = buildPathSegments(attrs.points, this.type);\r\n delete attrs.points\r\n }\r\n if (segments) {\r\n attrs.d = combinePathParam(segments);\r\n this.segments = segments;\r\n delete attrs.segments\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction arcAttr(attrs) {\r\n var settings = this._settings;\r\n var x;\r\n var y;\r\n var innerRadius;\r\n var outerRadius;\r\n var startAngle;\r\n var endAngle;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (\"x\" in attrs || \"y\" in attrs || \"innerRadius\" in attrs || \"outerRadius\" in attrs || \"startAngle\" in attrs || \"endAngle\" in attrs) {\r\n settings.x = x = \"x\" in attrs ? attrs.x : settings.x;\r\n delete attrs.x;\r\n settings.y = y = \"y\" in attrs ? attrs.y : settings.y;\r\n delete attrs.y;\r\n settings.innerRadius = innerRadius = \"innerRadius\" in attrs ? attrs.innerRadius : settings.innerRadius;\r\n delete attrs.innerRadius;\r\n settings.outerRadius = outerRadius = \"outerRadius\" in attrs ? attrs.outerRadius : settings.outerRadius;\r\n delete attrs.outerRadius;\r\n settings.startAngle = startAngle = \"startAngle\" in attrs ? attrs.startAngle : settings.startAngle;\r\n delete attrs.startAngle;\r\n settings.endAngle = endAngle = \"endAngle\" in attrs ? attrs.endAngle : settings.endAngle;\r\n delete attrs.endAngle;\r\n attrs.d = buildArcPath.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle))\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction rectAttr(attrs) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var sw;\r\n var maxSW;\r\n var newSW;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (void 0 !== attrs.x || void 0 !== attrs.y || void 0 !== attrs.width || void 0 !== attrs.height || void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n void 0 !== attrs.x ? x = this._originalX = attrs.x : x = this._originalX || 0;\r\n void 0 !== attrs.y ? y = this._originalY = attrs.y : y = this._originalY || 0;\r\n void 0 !== attrs.width ? width = this._originalWidth = attrs.width : width = this._originalWidth || 0;\r\n void 0 !== attrs.height ? height = this._originalHeight = attrs.height : height = this._originalHeight || 0;\r\n void 0 !== attrs[KEY_STROKE_WIDTH] ? sw = this._originalSW = attrs[KEY_STROKE_WIDTH] : sw = this._originalSW;\r\n maxSW = ~~((width < height ? width : height) / 2);\r\n newSW = (sw || 0) < maxSW ? sw || 0 : maxSW;\r\n attrs.x = x + newSW / 2;\r\n attrs.y = y + newSW / 2;\r\n attrs.width = width - newSW;\r\n attrs.height = height - newSW;\r\n ((sw || 0) !== newSW || !(0 === newSW && void 0 === sw)) && (attrs[KEY_STROKE_WIDTH] = newSW)\r\n }\r\n if (\"sharp\" in attrs) {\r\n delete attrs.sharp\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction textAttr(attrs) {\r\n var isResetRequired;\r\n if (!isObjectArgument(attrs)) {\r\n return baseAttr(this, attrs)\r\n }\r\n attrs = extend({}, attrs);\r\n var settings = this._settings;\r\n var wasStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n if (void 0 !== attrs[KEY_TEXT]) {\r\n settings[KEY_TEXT] = attrs[KEY_TEXT];\r\n delete attrs[KEY_TEXT];\r\n isResetRequired = true\r\n }\r\n if (void 0 !== attrs[KEY_STROKE]) {\r\n settings[KEY_STROKE] = attrs[KEY_STROKE];\r\n delete attrs[KEY_STROKE]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n settings[KEY_STROKE_WIDTH] = attrs[KEY_STROKE_WIDTH];\r\n delete attrs[KEY_STROKE_WIDTH]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_OPACITY]) {\r\n settings[KEY_STROKE_OPACITY] = attrs[KEY_STROKE_OPACITY];\r\n delete attrs[KEY_STROKE_OPACITY]\r\n }\r\n if (void 0 !== attrs[KEY_TEXTS_ALIGNMENT]) {\r\n alignTextNodes(this, attrs[KEY_TEXTS_ALIGNMENT]);\r\n delete attrs[KEY_TEXTS_ALIGNMENT]\r\n }\r\n var isStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n baseAttr(this, attrs);\r\n isResetRequired = isResetRequired || isStroked !== wasStroked && settings[KEY_TEXT];\r\n if (isResetRequired) {\r\n createTextNodes(this, settings.text, isStroked);\r\n this._hasEllipsis = false\r\n }\r\n if (isResetRequired || void 0 !== attrs.x || void 0 !== attrs.y) {\r\n locateTextNodes(this)\r\n }\r\n if (isStroked) {\r\n strokeTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction textCss(styles) {\r\n styles = styles || {};\r\n baseCss(this, styles);\r\n if (KEY_FONT_SIZE in styles) {\r\n locateTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction orderHtmlTree(list, line, node, parentStyle, parentClassName) {\r\n var style;\r\n var realStyle;\r\n var i;\r\n var ii;\r\n var nodes;\r\n if (void 0 !== node.wholeText) {\r\n list.push({\r\n value: node.wholeText,\r\n style: parentStyle,\r\n className: parentClassName,\r\n line: line,\r\n height: parentStyle[KEY_FONT_SIZE] || 0\r\n })\r\n } else if (\"BR\" === node.tagName) {\r\n ++line\r\n } else if (domAdapter.isElementNode(node)) {\r\n extend(style = {}, parentStyle);\r\n switch (node.tagName) {\r\n case \"B\":\r\n case \"STRONG\":\r\n style[KEY_FONT_WEIGHT] = \"bold\";\r\n break;\r\n case \"I\":\r\n case \"EM\":\r\n style[KEY_FONT_STYLE] = \"italic\";\r\n break;\r\n case \"U\":\r\n style[KEY_TEXT_DECORATION] = \"underline\"\r\n }\r\n realStyle = node.style;\r\n realStyle.color && (style.fill = realStyle.color);\r\n realStyle.fontSize && (style[KEY_FONT_SIZE] = realStyle.fontSize);\r\n realStyle.fontStyle && (style[KEY_FONT_STYLE] = realStyle.fontStyle);\r\n realStyle.fontWeight && (style[KEY_FONT_WEIGHT] = realStyle.fontWeight);\r\n realStyle.textDecoration && (style[KEY_TEXT_DECORATION] = realStyle.textDecoration);\r\n for (i = 0, nodes = node.childNodes, ii = nodes.length; i < ii; ++i) {\r\n line = orderHtmlTree(list, line, nodes[i], style, node.className || parentClassName)\r\n }\r\n }\r\n return line\r\n}\r\n\r\nfunction adjustLineHeights(items) {\r\n var i;\r\n var ii;\r\n var currentItem = items[0];\r\n var item;\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (item.line === currentItem.line) {\r\n currentItem.height = maxLengthFontSize(currentItem.height, item.height);\r\n currentItem.inherits = currentItem.inherits || 0 === parseFloat(item.height);\r\n item.height = NaN\r\n } else {\r\n currentItem = item\r\n }\r\n }\r\n}\r\n\r\nfunction removeExtraAttrs(html) {\r\n var findStyleAndClassAttrs = /(style|class)\\s*=\\s*([\"'])(?:(?!\\2).)*\\2\\s?/gi;\r\n return html.replace(/(?:(<[a-z0-9]+\\s*))([\\s\\S]*?)(>|\\/>)/gi, (function(allTagAttrs, p1, p2, p3) {\r\n p2 = (p2 && p2.match(findStyleAndClassAttrs) || []).map((function(str) {\r\n return str\r\n })).join(\" \");\r\n return p1 + p2 + p3\r\n }))\r\n}\r\n\r\nfunction parseHTML(text) {\r\n var items = [];\r\n var div = domAdapter.createElement(\"div\");\r\n div.innerHTML = text.replace(/\\r/g, \"\").replace(/\\n/g, \"<br/>\").replace(/style=/g, \"data-style=\");\r\n div.querySelectorAll(\"[data-style]\").forEach(element => {\r\n element.style = element.getAttribute(\"data-style\");\r\n element.removeAttribute(\"data-style\")\r\n });\r\n orderHtmlTree(items, 0, div, {}, \"\");\r\n adjustLineHeights(items);\r\n return items\r\n}\r\n\r\nfunction parseMultiline(text) {\r\n var texts = text.replace(/\\r/g, \"\").split(/\\n/g);\r\n var i = 0;\r\n var items = [];\r\n for (; i < texts.length; i++) {\r\n items.push({\r\n value: texts[i].trim(),\r\n height: 0,\r\n line: i\r\n })\r\n }\r\n return items\r\n}\r\n\r\nfunction createTspans(items, element, fieldName) {\r\n var i;\r\n var ii;\r\n var item;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n item[fieldName] = createElement(\"tspan\");\r\n item[fieldName].appendChild(domAdapter.createTextNode(item.value));\r\n item.style && baseCss({\r\n element: item[fieldName],\r\n _styles: {}\r\n }, item.style);\r\n item.className && item[fieldName].setAttribute(\"class\", item.className);\r\n element.appendChild(item[fieldName])\r\n }\r\n}\r\n\r\nfunction restoreText() {\r\n if (this._hasEllipsis) {\r\n this.attr({\r\n text: this._settings.text\r\n })\r\n }\r\n}\r\n\r\nfunction applyEllipsis(maxWidth) {\r\n var lines;\r\n var hasEllipsis = false;\r\n var i;\r\n var ii;\r\n var lineParts;\r\n var j;\r\n var jj;\r\n var text;\r\n restoreText.call(this);\r\n var ellipsis = this.renderer.text(ELLIPSIS).attr(this._styles).append(this.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n if (this._getElementBBox().width > maxWidth) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n maxWidth = 0\r\n } else {\r\n maxWidth -= ellipsisWidth\r\n }\r\n lines = prepareLines(this.element, this._texts, maxWidth);\r\n for (i = 0, ii = lines.length; i < ii; ++i) {\r\n lineParts = lines[i].parts;\r\n if (1 === lines[i].commonLength) {\r\n continue\r\n }\r\n for (j = 0, jj = lineParts.length; j < jj; ++j) {\r\n text = lineParts[j];\r\n if (isDefined(text.endIndex)) {\r\n setNewText(text, text.endIndex);\r\n hasEllipsis = true\r\n } else if (text.startBox > maxWidth) {\r\n removeTextSpan(text)\r\n }\r\n }\r\n }\r\n }\r\n ellipsis.remove();\r\n this._hasEllipsis = hasEllipsis;\r\n return hasEllipsis\r\n}\r\n\r\nfunction cloneAndRemoveAttrs(node) {\r\n var clone;\r\n if (node) {\r\n clone = node.cloneNode();\r\n clone.removeAttribute(\"y\");\r\n clone.removeAttribute(\"x\")\r\n }\r\n return clone || node\r\n}\r\n\r\nfunction detachTitleElements(element) {\r\n var titleElements = domAdapter.querySelectorAll(element, \"title\");\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.removeChild(titleElements[i])\r\n }\r\n return titleElements\r\n}\r\n\r\nfunction detachAndStoreTitleElements(element) {\r\n var titleElements = detachTitleElements(element);\r\n return () => {\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.appendChild(titleElements[i])\r\n }\r\n }\r\n}\r\n\r\nfunction setMaxSize(maxWidth, maxHeight) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n var lines = [];\r\n var textChanged = false;\r\n var textIsEmpty = false;\r\n var ellipsisMaxWidth = maxWidth;\r\n restoreText.call(that);\r\n var restoreTitleElement = detachAndStoreTitleElements(this.element);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n var {\r\n width: width,\r\n height: height\r\n } = that._getElementBBox();\r\n if ((width || height) && (width > maxWidth || maxHeight && height > maxHeight)) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n ellipsisMaxWidth = 0\r\n } else {\r\n ellipsisMaxWidth -= ellipsisWidth\r\n }\r\n lines = applyOverflowRules(that.element, that._texts, maxWidth, ellipsisMaxWidth, options);\r\n lines = setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, parseFloat(this._getLineHeight()));\r\n this._texts = lines.reduce((texts, line) => texts.concat(line.parts), []).filter(t => \"\" !== t.value).map(t => {\r\n t.stroke && t.tspan.parentNode.appendChild(t.stroke);\r\n return t\r\n }).map(t => {\r\n t.tspan.parentNode.appendChild(t.tspan);\r\n return t\r\n });\r\n !this._texts.length && (this._texts = null);\r\n textChanged = true;\r\n if (this._texts) {\r\n locateTextNodes(this)\r\n } else {\r\n this.element.textContent = \"\";\r\n textIsEmpty = true\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = textChanged;\r\n restoreTitleElement();\r\n return {\r\n rowCount: lines.length,\r\n textChanged: textChanged,\r\n textIsEmpty: textIsEmpty\r\n }\r\n}\r\n\r\nfunction getIndexForEllipsis(text, maxWidth, startBox, endBox) {\r\n var k;\r\n var kk;\r\n if (startBox <= maxWidth && endBox > maxWidth) {\r\n for (k = 1, kk = text.value.length; k <= kk; ++k) {\r\n if (startBox + text.tspan.getSubStringLength(0, k) > maxWidth) {\r\n return k - 1\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTextWidth(text) {\r\n return text.value.length ? text.tspan.getSubStringLength(0, text.value.length) : 0\r\n}\r\n\r\nfunction prepareLines(element, texts, maxWidth) {\r\n var lines = [];\r\n var i;\r\n var ii;\r\n var text;\r\n var startBox;\r\n var endBox;\r\n if (texts) {\r\n for (i = 0, ii = texts.length; i < ii; ++i) {\r\n text = texts[i];\r\n if (!lines[text.line]) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n lines[text.line].parts.push(text);\r\n lines[text.line].commonLength += text.value.length\r\n }\r\n endBox = startBox + text.tspan.getSubStringLength(0, text.value.length);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n startBox = endBox\r\n }\r\n } else {\r\n text = {\r\n value: element.textContent,\r\n tspan: element\r\n };\r\n text.startBox = startBox = 0;\r\n endBox = startBox + getTextWidth(text);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n lines = [{\r\n commonLength: element.textContent.length,\r\n parts: [text]\r\n }]\r\n }\r\n return lines\r\n}\r\n\r\nfunction getSpaceBreakIndex(text, maxWidth) {\r\n var initialIndices = text.startBox > 0 ? [0] : [];\r\n var spaceIndices = text.value.split(\"\").reduce((indices, char, index) => {\r\n if (\" \" === char) {\r\n indices.push(index)\r\n }\r\n return indices\r\n }, initialIndices);\r\n var spaceIndex = 0;\r\n while (void 0 !== spaceIndices[spaceIndex + 1] && text.startBox + text.tspan.getSubStringLength(0, spaceIndices[spaceIndex + 1]) < maxWidth) {\r\n spaceIndex++\r\n }\r\n return spaceIndices[spaceIndex]\r\n}\r\n\r\nfunction getWordBreakIndex(text, maxWidth) {\r\n for (var i = 0; i < text.value.length - 1; i++) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i + 1) > maxWidth) {\r\n return i\r\n }\r\n }\r\n}\r\n\r\nfunction getEllipsisString(ellipsisMaxWidth, _ref) {\r\n var {\r\n hideOverflowEllipsis: hideOverflowEllipsis\r\n } = _ref;\r\n return hideOverflowEllipsis && 0 === ellipsisMaxWidth ? \"\" : ELLIPSIS\r\n}\r\n\r\nfunction setEllipsis(text, ellipsisMaxWidth, options) {\r\n var ellipsis = getEllipsisString(ellipsisMaxWidth, options);\r\n if (text.value.length && text.tspan.parentNode) {\r\n for (var i = text.value.length - 1; i >= 1; i--) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i) < ellipsisMaxWidth) {\r\n setNewText(text, i, ellipsis);\r\n break\r\n } else if (1 === i) {\r\n setNewText(text, 0, ellipsis)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction wordWrap(text, maxWidth, ellipsisMaxWidth, options, lastStepBreakIndex) {\r\n var wholeText = text.value;\r\n var breakIndex;\r\n if (\"none\" !== options.wordWrap) {\r\n breakIndex = \"normal\" === options.wordWrap ? getSpaceBreakIndex(text, maxWidth) : getWordBreakIndex(text, maxWidth)\r\n }\r\n var restLines = [];\r\n var restText;\r\n if (isFinite(breakIndex) && !(0 === lastStepBreakIndex && 0 === breakIndex)) {\r\n setNewText(text, breakIndex, \"\");\r\n var newTextOffset = \" \" === wholeText[breakIndex] ? 1 : 0;\r\n var restString = wholeText.slice(breakIndex + newTextOffset);\r\n if (restString.length) {\r\n var restTspan = cloneAndRemoveAttrs(text.tspan);\r\n restTspan.textContent = restString;\r\n text.tspan.parentNode.appendChild(restTspan);\r\n restText = extend(extend({}, text), {\r\n value: restString,\r\n startBox: 0,\r\n height: 0,\r\n tspan: restTspan,\r\n stroke: cloneAndRemoveAttrs(text.stroke),\r\n endBox: restTspan.getSubStringLength(0, restString.length)\r\n });\r\n restText.stroke && (restText.stroke.textContent = restString);\r\n if (restText.endBox > maxWidth) {\r\n restLines = wordWrap(restText, maxWidth, ellipsisMaxWidth, options, breakIndex);\r\n if (!restLines.length) {\r\n return []\r\n }\r\n }\r\n }\r\n }\r\n if (text.value.length) {\r\n if (\"ellipsis\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n if (\"hide\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n return []\r\n }\r\n } else {\r\n text.tspan.parentNode.removeChild(text.tspan)\r\n }\r\n var parts = [];\r\n if (restText) {\r\n parts.push(restText)\r\n }\r\n return [{\r\n commonLength: wholeText.length,\r\n parts: parts\r\n }].concat(restLines)\r\n}\r\n\r\nfunction calculateLineHeight(line, lineHeight) {\r\n return line.parts.reduce((height, text) => max(height, getItemLineHeight(text, lineHeight)), 0)\r\n}\r\n\r\nfunction setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, lineHeight) {\r\n var textOverflow = options.textOverflow;\r\n if (!isFinite(maxHeight) || 0 === Number(maxHeight) || \"none\" === textOverflow) {\r\n return lines\r\n }\r\n var result = lines.reduce((_ref2, l, index, arr) => {\r\n var [lines, commonHeight] = _ref2;\r\n var height = calculateLineHeight(l, lineHeight);\r\n commonHeight += height;\r\n if (commonHeight < maxHeight) {\r\n lines.push(l)\r\n } else {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n });\r\n if (\"ellipsis\" === textOverflow) {\r\n var prevLine = arr[index - 1];\r\n if (prevLine) {\r\n var text = prevLine.parts[prevLine.parts.length - 1];\r\n if (!text.hasEllipsis) {\r\n if (0 === ellipsisMaxWidth || text.endBox < ellipsisMaxWidth) {\r\n setNewText(text, text.value.length, getEllipsisString(ellipsisMaxWidth, options))\r\n } else {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return [lines, commonHeight]\r\n }, [\r\n [], 0\r\n ]);\r\n if (\"hide\" === textOverflow && result[1] > maxHeight) {\r\n result[0].forEach(l => {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n })\r\n });\r\n return []\r\n }\r\n return result[0]\r\n}\r\n\r\nfunction applyOverflowRules(element, texts, maxWidth, ellipsisMaxWidth, options) {\r\n if (!texts) {\r\n var textValue = element.textContent;\r\n var text = {\r\n value: textValue,\r\n height: 0,\r\n line: 0\r\n };\r\n element.textContent = \"\";\r\n createTspans([text], element, \"tspan\");\r\n texts = [text]\r\n }\r\n return texts.reduce((_ref3, text) => {\r\n var [lines, startBox, endBox, stop, lineNumber] = _ref3;\r\n var line = lines[lines.length - 1];\r\n if (stop) {\r\n return [lines, startBox, endBox, stop]\r\n }\r\n if (!line || text.line !== lineNumber) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n if (startBox > ellipsisMaxWidth && \"none\" === options.wordWrap && \"ellipsis\" === options.textOverflow) {\r\n removeTextSpan(text);\r\n return [lines, startBox, endBox, stop, lineNumber]\r\n }\r\n line.parts.push(text);\r\n line.commonLength += text.value.length\r\n }\r\n text.endBox = endBox = startBox + getTextWidth(text);\r\n startBox = endBox;\r\n if (isDefined(maxWidth) && endBox > maxWidth) {\r\n var wordWrapLines = wordWrap(text, maxWidth, ellipsisMaxWidth, options);\r\n if (!wordWrapLines.length) {\r\n lines = [];\r\n stop = true\r\n } else {\r\n lines = lines.concat(wordWrapLines.filter(l => l.parts.length > 0))\r\n }\r\n }\r\n return [lines, startBox, endBox, stop, text.line]\r\n }, [\r\n [], 0, 0, false, 0\r\n ])[0]\r\n}\r\n\r\nfunction setNewText(text, index) {\r\n var insertString = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ELLIPSIS;\r\n var newText = text.value.substr(0, index) + insertString;\r\n text.value = text.tspan.textContent = newText;\r\n text.stroke && (text.stroke.textContent = newText);\r\n if (insertString === ELLIPSIS) {\r\n text.hasEllipsis = true\r\n }\r\n}\r\n\r\nfunction removeTextSpan(text) {\r\n text.tspan.parentNode && text.tspan.parentNode.removeChild(text.tspan);\r\n text.stroke && text.stroke.parentNode && text.stroke.parentNode.removeChild(text.stroke)\r\n}\r\n\r\nfunction createTextNodes(wrapper, text, isStroked) {\r\n var items;\r\n var parsedHtml;\r\n wrapper._texts = null;\r\n wrapper.clear();\r\n if (null === text) {\r\n return\r\n }\r\n text = \"\" + text;\r\n if (!wrapper.renderer.encodeHtml && (/<[a-z][\\s\\S]*>/i.test(text) || -1 !== text.indexOf(\"&\"))) {\r\n parsedHtml = removeExtraAttrs(text);\r\n items = parseHTML(parsedHtml)\r\n } else if (/\\n/g.test(text)) {\r\n items = parseMultiline(text)\r\n } else if (isStroked) {\r\n items = [{\r\n value: text.trim(),\r\n height: 0\r\n }]\r\n }\r\n if (items) {\r\n if (items.length) {\r\n wrapper._texts = items;\r\n if (isStroked) {\r\n createTspans(items, wrapper.element, KEY_STROKE)\r\n }\r\n createTspans(items, wrapper.element, \"tspan\")\r\n }\r\n } else {\r\n wrapper.element.appendChild(domAdapter.createTextNode(text))\r\n }\r\n}\r\n\r\nfunction setTextNodeAttribute(item, name, value) {\r\n item.tspan.setAttribute(name, value);\r\n item.stroke && item.stroke.setAttribute(name, value)\r\n}\r\n\r\nfunction getItemLineHeight(item, defaultValue) {\r\n return item.inherits ? maxLengthFontSize(item.height, defaultValue) : item.height || defaultValue\r\n}\r\n\r\nfunction locateTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var x = wrapper._settings.x;\r\n var lineHeight = wrapper._getLineHeight();\r\n var i;\r\n var ii;\r\n var item = items[0];\r\n setTextNodeAttribute(item, \"x\", x);\r\n setTextNodeAttribute(item, \"y\", wrapper._settings.y);\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (parseFloat(item.height) >= 0) {\r\n setTextNodeAttribute(item, \"x\", x);\r\n var height = getItemLineHeight(item, lineHeight);\r\n setTextNodeAttribute(item, \"dy\", height)\r\n }\r\n }\r\n}\r\n\r\nfunction alignTextNodes(wrapper, alignment) {\r\n if (!wrapper._texts || \"center\" === alignment) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var direction = \"left\" === alignment ? -1 : 1;\r\n var maxTextWidth = Math.max.apply(Math, items.map(t => getTextWidth(t)));\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var textWidth = getTextWidth(item);\r\n if (0 !== maxTextWidth && maxTextWidth !== textWidth) {\r\n setTextNodeAttribute(item, \"dx\", direction * round((maxTextWidth - textWidth) / 2 * 10) / 10)\r\n }\r\n }\r\n}\r\n\r\nfunction maxLengthFontSize(fontSize1, fontSize2) {\r\n var parsedHeight1 = parseFloat(fontSize1);\r\n var parsedHeight2 = parseFloat(fontSize2);\r\n var height1 = parsedHeight1 || DEFAULT_FONT_SIZE;\r\n var height2 = parsedHeight2 || DEFAULT_FONT_SIZE;\r\n return height1 > height2 ? !isNaN(parsedHeight1) ? fontSize1 : height1 : !isNaN(parsedHeight2) ? fontSize2 : height2\r\n}\r\n\r\nfunction strokeTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var stroke = wrapper._settings[KEY_STROKE];\r\n var strokeWidth = wrapper._settings[KEY_STROKE_WIDTH];\r\n var strokeOpacity = wrapper._settings[KEY_STROKE_OPACITY] || 1;\r\n var tspan;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n tspan = items[i].stroke;\r\n tspan.setAttribute(KEY_STROKE, stroke);\r\n tspan.setAttribute(KEY_STROKE_WIDTH, strokeWidth);\r\n tspan.setAttribute(KEY_STROKE_OPACITY, strokeOpacity);\r\n tspan.setAttribute(\"stroke-linejoin\", \"round\")\r\n }\r\n}\r\n\r\nfunction baseAnimate(that, params, options, complete) {\r\n options = options || {};\r\n var key;\r\n var value;\r\n var renderer = that.renderer;\r\n var settings = that._settings;\r\n var animationParams = {};\r\n var defaults = {\r\n translateX: 0,\r\n translateY: 0,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotate: 0,\r\n rotateX: 0,\r\n rotateY: 0\r\n };\r\n if (complete) {\r\n options.complete = complete\r\n }\r\n if (renderer.animationEnabled()) {\r\n for (key in params) {\r\n value = params[key];\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y))$/i.test(key)) {\r\n animationParams.transform = animationParams.transform || {\r\n from: {},\r\n to: {}\r\n };\r\n animationParams.transform.from[key] = key in settings ? Number(settings[key].toFixed(3)) : defaults[key];\r\n animationParams.transform.to[key] = value\r\n } else if (\"arc\" === key || \"segments\" === key) {\r\n animationParams[key] = value\r\n } else {\r\n animationParams[key] = {\r\n from: key in settings ? settings[key] : parseFloat(that.element.getAttribute(key) || 0),\r\n to: value\r\n }\r\n }\r\n }\r\n renderer.animateElement(that, animationParams, extend(extend({}, renderer._animation), options))\r\n } else {\r\n options.step && options.step.call(that, 1, 1);\r\n options.complete && options.complete.call(that);\r\n that.attr(params)\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAnimate(params, options, complete) {\r\n var curSegments = this.segments || [];\r\n var newSegments;\r\n var endSegments;\r\n if (this.renderer.animationEnabled() && \"points\" in params) {\r\n newSegments = buildPathSegments(params.points, this.type);\r\n endSegments = compensateSegments(curSegments, newSegments, this.type);\r\n params.segments = {\r\n from: curSegments,\r\n to: newSegments,\r\n end: endSegments\r\n };\r\n delete params.points\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction arcAnimate(params, options, complete) {\r\n var settings = this._settings;\r\n var arcParams = {\r\n from: {},\r\n to: {}\r\n };\r\n if (this.renderer.animationEnabled() && (\"x\" in params || \"y\" in params || \"innerRadius\" in params || \"outerRadius\" in params || \"startAngle\" in params || \"endAngle\" in params)) {\r\n arcParams.from.x = settings.x || 0;\r\n arcParams.from.y = settings.y || 0;\r\n arcParams.from.innerRadius = settings.innerRadius || 0;\r\n arcParams.from.outerRadius = settings.outerRadius || 0;\r\n arcParams.from.startAngle = settings.startAngle || 0;\r\n arcParams.from.endAngle = settings.endAngle || 0;\r\n arcParams.to.x = \"x\" in params ? params.x : settings.x;\r\n delete params.x;\r\n arcParams.to.y = \"y\" in params ? params.y : settings.y;\r\n delete params.y;\r\n arcParams.to.innerRadius = \"innerRadius\" in params ? params.innerRadius : settings.innerRadius;\r\n delete params.innerRadius;\r\n arcParams.to.outerRadius = \"outerRadius\" in params ? params.outerRadius : settings.outerRadius;\r\n delete params.outerRadius;\r\n arcParams.to.startAngle = \"startAngle\" in params ? params.startAngle : settings.startAngle;\r\n delete params.startAngle;\r\n arcParams.to.endAngle = \"endAngle\" in params ? params.endAngle : settings.endAngle;\r\n delete params.endAngle;\r\n params.arc = arcParams\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction buildLink(target, parameters) {\r\n var obj = {\r\n is: false,\r\n name: parameters.name || parameters,\r\n after: parameters.after\r\n };\r\n if (target) {\r\n obj.to = target\r\n } else {\r\n obj.virtual = true\r\n }\r\n return obj\r\n}\r\nexport var SvgElement = function(renderer, tagName, type) {\r\n this.renderer = renderer;\r\n this.element = createElement(tagName);\r\n this._settings = {};\r\n this._styles = {};\r\n if (\"path\" === tagName) {\r\n this.type = type || \"line\"\r\n }\r\n};\r\n\r\nfunction removeFuncIriCallback(callback) {\r\n fixFuncIriCallbacks.remove(callback)\r\n}\r\nSvgElement.prototype = {\r\n constructor: SvgElement,\r\n _getJQElement: function() {\r\n return this._$element || (this._$element = $(this.element))\r\n },\r\n _addFixIRICallback: function() {\r\n var that = this;\r\n var fn = function() {\r\n fixFuncIri(that, \"fill\");\r\n fixFuncIri(that, \"clip-path\");\r\n fixFuncIri(that, \"filter\")\r\n };\r\n that.element._fixFuncIri = fn;\r\n fn.renderer = that.renderer;\r\n fixFuncIriCallbacks.add(fn);\r\n that._addFixIRICallback = function() {}\r\n },\r\n _clearChildrenFuncIri: function() {\r\n ! function clearChildren(element) {\r\n var i;\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n removeFuncIriCallback(element.childNodes[i]._fixFuncIri);\r\n clearChildren(element.childNodes[i])\r\n }\r\n }(this.element)\r\n },\r\n dispose: function() {\r\n removeFuncIriCallback(this.element._fixFuncIri);\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().remove();\r\n return this\r\n },\r\n append: function(parent) {\r\n (parent || this.renderer.root).element.appendChild(this.element);\r\n return this\r\n },\r\n remove: function() {\r\n var element = this.element;\r\n element.parentNode && element.parentNode.removeChild(element);\r\n return this\r\n },\r\n enableLinks: function() {\r\n this._links = [];\r\n return this\r\n },\r\n virtualLink: function(parameters) {\r\n linkItem({\r\n _link: buildLink(null, parameters)\r\n }, this);\r\n return this\r\n },\r\n linkAfter: function(name) {\r\n this._linkAfter = name;\r\n return this\r\n },\r\n linkOn: function(target, parameters) {\r\n this._link = buildLink(target, parameters);\r\n linkItem(this, target);\r\n return this\r\n },\r\n linkOff: function() {\r\n unlinkItem(this);\r\n this._link = null;\r\n return this\r\n },\r\n linkAppend: function() {\r\n var link = this._link;\r\n var items = link.to._links;\r\n var i;\r\n var next;\r\n for (i = link.i + 1;\r\n (next = items[i]) && !next._link.is; ++i) {}\r\n this._insert(link.to, next);\r\n link.is = true;\r\n return this\r\n },\r\n _insert: function(parent, next) {\r\n parent.element.insertBefore(this.element, next ? next.element : null)\r\n },\r\n linkRemove: function() {\r\n this.remove();\r\n this._link.is = false;\r\n return this\r\n },\r\n clear: function() {\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().empty();\r\n return this\r\n },\r\n toBackground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.insertBefore(elem, parent.firstChild);\r\n return this\r\n },\r\n toForeground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.appendChild(elem);\r\n return this\r\n },\r\n attr: function(attrs) {\r\n return baseAttr(this, attrs)\r\n },\r\n smartAttr: function(attrs) {\r\n return this.attr(processHatchingAttrs(this, attrs))\r\n },\r\n css: function(styles) {\r\n return baseCss(this, styles)\r\n },\r\n animate: function(params, options, complete) {\r\n return baseAnimate(this, params, options, complete)\r\n },\r\n sharp(pos, sharpDirection) {\r\n return this.attr({\r\n sharp: pos || true,\r\n sharpDirection: sharpDirection\r\n })\r\n },\r\n _applyTransformation() {\r\n var tr = this._settings;\r\n var rotateX;\r\n var rotateY;\r\n var transformations = [];\r\n var sharpMode = tr.sharp;\r\n var trDirection = tr.sharpDirection || 1;\r\n var strokeOdd = tr[KEY_STROKE_WIDTH] % 2;\r\n var correctionX = strokeOdd && (\"h\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n var correctionY = strokeOdd && (\"v\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n transformations.push(\"translate(\" + ((tr.translateX || 0) + correctionX) + \",\" + ((tr.translateY || 0) + correctionY) + \")\");\r\n if (tr.rotate) {\r\n if (\"rotateX\" in tr) {\r\n rotateX = tr.rotateX\r\n } else {\r\n rotateX = tr.x\r\n }\r\n if (\"rotateY\" in tr) {\r\n rotateY = tr.rotateY\r\n } else {\r\n rotateY = tr.y\r\n }\r\n transformations.push(\"rotate(\" + tr.rotate + \",\" + (rotateX || 0) + \",\" + (rotateY || 0) + \")\")\r\n }\r\n var scaleXDefined = isDefined(tr.scaleX);\r\n var scaleYDefined = isDefined(tr.scaleY);\r\n if (scaleXDefined || scaleYDefined) {\r\n transformations.push(\"scale(\" + (scaleXDefined ? tr.scaleX : 1) + \",\" + (scaleYDefined ? tr.scaleY : 1) + \")\")\r\n }\r\n if (transformations.length) {\r\n this.element.setAttribute(\"transform\", transformations.join(\" \"))\r\n }\r\n },\r\n move: function(x, y, animate, animOptions) {\r\n var obj = {};\r\n isDefined(x) && (obj.translateX = x);\r\n isDefined(y) && (obj.translateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n rotate: function(angle, x, y, animate, animOptions) {\r\n var obj = {\r\n rotate: angle || 0\r\n };\r\n isDefined(x) && (obj.rotateX = x);\r\n isDefined(y) && (obj.rotateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n _getElementBBox: function() {\r\n var elem = this.element;\r\n var bBox;\r\n try {\r\n bBox = elem.getBBox && elem.getBBox()\r\n } catch (e) {}\r\n return bBox || {\r\n x: 0,\r\n y: 0,\r\n width: elem.offsetWidth || 0,\r\n height: elem.offsetHeight || 0\r\n }\r\n },\r\n getBBox: function() {\r\n var transformation = this._settings;\r\n var bBox = this._getElementBBox();\r\n if (transformation.rotate) {\r\n bBox = rotateBBox(bBox, [(\"rotateX\" in transformation ? transformation.rotateX : transformation.x) || 0, (\"rotateY\" in transformation ? transformation.rotateY : transformation.y) || 0], -transformation.rotate)\r\n } else {\r\n bBox = normalizeBBox(bBox)\r\n }\r\n return bBox\r\n },\r\n markup: function() {\r\n return getSvgMarkup(this.element)\r\n },\r\n getOffset: function() {\r\n return this._getJQElement().offset()\r\n },\r\n stopAnimation: function(disableComplete) {\r\n var animation = this.animation;\r\n animation && animation.stop(disableComplete);\r\n return this\r\n },\r\n setTitle: function(text) {\r\n var titleElem = createElement(\"title\");\r\n titleElem.textContent = text || \"\";\r\n this.element.appendChild(titleElem)\r\n },\r\n removeTitle() {\r\n detachTitleElements(this.element)\r\n },\r\n data: function(obj, val) {\r\n var elem = this.element;\r\n var key;\r\n if (void 0 !== val) {\r\n elem[obj] = val\r\n } else {\r\n for (key in obj) {\r\n elem[key] = obj[key]\r\n }\r\n }\r\n return this\r\n },\r\n on: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.on.apply(eventsEngine, args);\r\n return this\r\n },\r\n off: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.off.apply(eventsEngine, args);\r\n return this\r\n },\r\n trigger: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.trigger.apply(eventsEngine, args);\r\n return this\r\n }\r\n};\r\nexport var PathSvgElement = function(renderer, type) {\r\n SvgElement.call(this, renderer, \"path\", type)\r\n};\r\nPathSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(PathSvgElement.prototype, {\r\n constructor: PathSvgElement,\r\n attr: pathAttr,\r\n animate: pathAnimate\r\n});\r\nexport var ArcSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"path\", \"arc\")\r\n};\r\nArcSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(ArcSvgElement.prototype, {\r\n constructor: ArcSvgElement,\r\n attr: arcAttr,\r\n animate: arcAnimate\r\n});\r\nexport var RectSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"rect\")\r\n};\r\nRectSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(RectSvgElement.prototype, {\r\n constructor: RectSvgElement,\r\n attr: rectAttr\r\n});\r\nexport var TextSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"text\");\r\n this.css({\r\n \"white-space\": \"pre\"\r\n })\r\n};\r\nTextSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(TextSvgElement.prototype, {\r\n constructor: TextSvgElement,\r\n attr: textAttr,\r\n css: textCss,\r\n applyEllipsis: applyEllipsis,\r\n setMaxSize: setMaxSize,\r\n restoreText: restoreText,\r\n _getLineHeight() {\r\n return !isNaN(parseFloat(this._styles[KEY_FONT_SIZE])) ? this._styles[KEY_FONT_SIZE] : DEFAULT_FONT_SIZE\r\n }\r\n});\r\n\r\nfunction updateIndexes(items, k) {\r\n var i;\r\n var item;\r\n for (i = k; item = items[i]; ++i) {\r\n item._link.i = i\r\n }\r\n}\r\n\r\nfunction linkItem(target, container) {\r\n var items = container._links;\r\n var key = target._link.after = target._link.after || container._linkAfter;\r\n var i;\r\n var item;\r\n if (key) {\r\n for (i = 0;\r\n (item = items[i]) && item._link.name !== key; ++i) {}\r\n if (item) {\r\n for (++i;\r\n (item = items[i]) && item._link.after === key; ++i) {}\r\n }\r\n } else {\r\n i = items.length\r\n }\r\n items.splice(i, 0, target);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction unlinkItem(target) {\r\n var i;\r\n var items = target._link.to._links;\r\n for (i = 0; items[i] !== target; ++i) {}\r\n items.splice(i, 1);\r\n updateIndexes(items, i)\r\n}\r\nexport function Renderer(options) {\r\n this.root = this._createElement(\"svg\", {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n version: \"1.1\",\r\n fill: NONE,\r\n stroke: NONE,\r\n \"stroke-width\": 0\r\n }).attr({\r\n class: options.cssClass\r\n }).css({\r\n \"line-height\": \"normal\",\r\n \"-moz-user-select\": NONE,\r\n \"-webkit-user-select\": NONE,\r\n \"-webkit-tap-highlight-color\": \"rgba(0, 0, 0, 0)\",\r\n display: \"block\",\r\n overflow: \"hidden\"\r\n });\r\n this._init();\r\n this.pathModified = !!options.pathModified;\r\n this._$container = $(options.container);\r\n this.root.append({\r\n element: options.container\r\n });\r\n this._locker = 0;\r\n this._backed = false\r\n}\r\nRenderer.prototype = {\r\n constructor: Renderer,\r\n _init: function() {\r\n this._defs = this._createElement(\"defs\").append(this.root);\r\n this._animationController = new AnimationController(this.root.element);\r\n this._animation = {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }\r\n },\r\n setOptions: function(options) {\r\n this.rtl = !!options.rtl;\r\n this.encodeHtml = !!options.encodeHtml;\r\n this.updateAnimationOptions(options.animation || {});\r\n this.root.attr({\r\n direction: this.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n _createElement: function(tagName, attr, type) {\r\n var elem = new SvgElement(this, tagName, type);\r\n attr && elem.attr(attr);\r\n return elem\r\n },\r\n lock: function() {\r\n if (0 === this._locker) {\r\n this._backed = !this._$container.is(\":visible\");\r\n if (this._backed) {\r\n backupRoot(this.root)\r\n }\r\n }++this._locker;\r\n return this\r\n },\r\n unlock: function() {\r\n --this._locker;\r\n if (0 === this._locker) {\r\n if (this._backed) {\r\n restoreRoot(this.root, this._$container[0])\r\n }\r\n this._backed = false\r\n }\r\n return this\r\n },\r\n resize: function(width, height) {\r\n if (width >= 0 && height >= 0) {\r\n this.root.attr({\r\n width: width,\r\n height: height\r\n })\r\n }\r\n return this\r\n },\r\n dispose: function() {\r\n var key;\r\n this.root.dispose();\r\n this._defs.dispose();\r\n this._animationController.dispose();\r\n fixFuncIriCallbacks.removeByRenderer(this);\r\n for (key in this) {\r\n this[key] = null\r\n }\r\n return this\r\n },\r\n animationEnabled: function() {\r\n return !!this._animation.enabled\r\n },\r\n updateAnimationOptions: function(newOptions) {\r\n extend(this._animation, newOptions);\r\n return this\r\n },\r\n stopAllAnimations: function(lock) {\r\n this._animationController[lock ? \"lock\" : \"stop\"]();\r\n return this\r\n },\r\n animateElement: function(element, params, options) {\r\n this._animationController.animateElement(element, params, options);\r\n return this\r\n },\r\n svg: function() {\r\n return this.root.markup()\r\n },\r\n getRootOffset: function() {\r\n return this.root.getOffset()\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationController.onEndAnimation(endAnimation)\r\n },\r\n rect: function(x, y, width, height) {\r\n var elem = new RectSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n })\r\n },\r\n simpleRect: function() {\r\n return this._createElement(\"rect\")\r\n },\r\n circle: function(x, y, r) {\r\n return this._createElement(\"circle\", {\r\n cx: x || 0,\r\n cy: y || 0,\r\n r: r || 0\r\n })\r\n },\r\n g: function() {\r\n return this._createElement(\"g\")\r\n },\r\n image: function(x, y, w, h, href, location) {\r\n var image = this._createElement(\"image\", {\r\n x: x || 0,\r\n y: y || 0,\r\n width: w || 0,\r\n height: h || 0,\r\n preserveAspectRatio: preserveAspectRatioMap[normalizeEnum(location)] || NONE\r\n });\r\n image.element.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", href || \"\");\r\n return image\r\n },\r\n path: function(points, type) {\r\n var elem = new PathSvgElement(this, type);\r\n return elem.attr({\r\n points: points || []\r\n })\r\n },\r\n arc: function(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var elem = new ArcSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n innerRadius: innerRadius || 0,\r\n outerRadius: outerRadius || 0,\r\n startAngle: startAngle || 0,\r\n endAngle: endAngle || 0\r\n })\r\n },\r\n text: function(_text, x, y) {\r\n var elem = new TextSvgElement(this);\r\n return elem.attr({\r\n text: _text,\r\n x: x || 0,\r\n y: y || 0\r\n })\r\n },\r\n linearGradient: function(stops) {\r\n var id = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : getNextDefsSvgId();\r\n var rotationAngle = arguments.length > 2 ? arguments[2] : void 0;\r\n var gradient = this._createElement(\"linearGradient\", {\r\n id: id,\r\n gradientTransform: \"rotate(\".concat(rotationAngle || 0, \")\")\r\n }).append(this._defs);\r\n gradient.id = id;\r\n this._createGradientStops(stops, gradient);\r\n return gradient\r\n },\r\n radialGradient: function(stops, id) {\r\n var gradient = this._createElement(\"radialGradient\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createGradientStops(stops, gradient);\r\n return gradient\r\n },\r\n _createGradientStops: function(stops, group) {\r\n stops.forEach(stop => {\r\n var _stop$stopColor;\r\n this._createElement(\"stop\", {\r\n offset: stop.offset,\r\n \"stop-color\": null !== (_stop$stopColor = stop[\"stop-color\"]) && void 0 !== _stop$stopColor ? _stop$stopColor : stop.color,\r\n \"stop-opacity\": stop.opacity\r\n }).append(group)\r\n })\r\n },\r\n pattern: function(color, hatching, _id) {\r\n hatching = hatching || {};\r\n var step = hatching.step || 6;\r\n var stepTo2 = step / 2;\r\n var stepBy15 = 1.5 * step;\r\n var id = _id || getNextDefsSvgId();\r\n var d = \"right\" === normalizeEnum(hatching.direction) ? \"M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + -stepTo2 + \" \" + stepTo2 + \" M 0 \" + step + \" L \" + step + \" 0 M \" + stepBy15 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 : \"M 0 0 L \" + step + \" \" + step + \" M \" + -stepTo2 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 + \" M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + stepBy15 + \" \" + stepTo2;\r\n var pattern = this._createElement(\"pattern\", {\r\n id: id,\r\n width: step,\r\n height: step,\r\n patternUnits: \"userSpaceOnUse\"\r\n }).append(this._defs);\r\n pattern.id = id;\r\n this.rect(0, 0, step, step).attr({\r\n fill: color,\r\n opacity: hatching.opacity\r\n }).append(pattern);\r\n new PathSvgElement(this).attr({\r\n d: d,\r\n \"stroke-width\": hatching.width || 1,\r\n stroke: color\r\n }).append(pattern);\r\n return pattern\r\n },\r\n customPattern: function(id, template, width, height) {\r\n var option = {\r\n id: id,\r\n width: width,\r\n height: height,\r\n patternContentUnits: \"userSpaceOnUse\",\r\n patternUnits: this._getPatternUnits(width, height)\r\n };\r\n var pattern = this._createElement(\"pattern\", option).append(this._defs);\r\n template.render({\r\n container: pattern.element\r\n });\r\n return pattern\r\n },\r\n _getPatternUnits: function(width, height) {\r\n if (Number(width) && Number(height)) {\r\n return \"userSpaceOnUse\"\r\n }\r\n },\r\n _getPointsWithYOffset: function(points, offset) {\r\n return points.map((function(point, index) {\r\n if (index % 2 !== 0) {\r\n return point + offset\r\n }\r\n return point\r\n }))\r\n },\r\n clipShape: function(method, methodArgs) {\r\n var id = getNextDefsSvgId();\r\n var clipPath = this._createElement(\"clipPath\", {\r\n id: id\r\n }).append(this._defs);\r\n var shape = method.apply(this, methodArgs).append(clipPath);\r\n shape.id = id;\r\n shape.remove = function() {\r\n throw \"Not implemented\"\r\n };\r\n shape.dispose = function() {\r\n clipPath.dispose();\r\n clipPath = null;\r\n return this\r\n };\r\n return shape\r\n },\r\n clipRect(x, y, width, height) {\r\n return this.clipShape(this.rect, arguments)\r\n },\r\n clipCircle(x, y, radius) {\r\n return this.clipShape(this.circle, arguments)\r\n },\r\n shadowFilter: function(x, y, width, height, offsetX, offsetY, blur, color, opacity) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id,\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n }).append(this._defs);\r\n var gaussianBlur = this._createElement(\"feGaussianBlur\", {\r\n in: \"SourceGraphic\",\r\n result: \"gaussianBlurResult\",\r\n stdDeviation: blur || 0\r\n }).append(filter);\r\n var offset = this._createElement(\"feOffset\", {\r\n in: \"gaussianBlurResult\",\r\n result: \"offsetResult\",\r\n dx: offsetX || 0,\r\n dy: offsetY || 0\r\n }).append(filter);\r\n var flood = this._createElement(\"feFlood\", {\r\n result: \"floodResult\",\r\n \"flood-color\": color || \"\",\r\n \"flood-opacity\": opacity\r\n }).append(filter);\r\n var composite = this._createElement(\"feComposite\", {\r\n in: \"floodResult\",\r\n in2: \"offsetResult\",\r\n operator: \"in\",\r\n result: \"compositeResult\"\r\n }).append(filter);\r\n var finalComposite = this._createElement(\"feComposite\", {\r\n in: \"SourceGraphic\",\r\n in2: \"compositeResult\",\r\n operator: \"over\"\r\n }).append(filter);\r\n filter.id = id;\r\n filter.gaussianBlur = gaussianBlur;\r\n filter.offset = offset;\r\n filter.flood = flood;\r\n filter.composite = composite;\r\n filter.finalComposite = finalComposite;\r\n filter.attr = function(attrs) {\r\n var filterAttrs = {};\r\n var offsetAttrs = {};\r\n var floodAttrs = {};\r\n \"x\" in attrs && (filterAttrs.x = attrs.x);\r\n \"y\" in attrs && (filterAttrs.y = attrs.y);\r\n \"width\" in attrs && (filterAttrs.width = attrs.width);\r\n \"height\" in attrs && (filterAttrs.height = attrs.height);\r\n baseAttr(this, filterAttrs);\r\n \"blur\" in attrs && this.gaussianBlur.attr({\r\n stdDeviation: attrs.blur\r\n });\r\n \"offsetX\" in attrs && (offsetAttrs.dx = attrs.offsetX);\r\n \"offsetY\" in attrs && (offsetAttrs.dy = attrs.offsetY);\r\n this.offset.attr(offsetAttrs);\r\n \"color\" in attrs && (floodAttrs[\"flood-color\"] = attrs.color);\r\n \"opacity\" in attrs && (floodAttrs[\"flood-opacity\"] = attrs.opacity);\r\n this.flood.attr(floodAttrs);\r\n return this\r\n };\r\n return filter\r\n },\r\n brightFilter: function(type, slope) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n var componentTransferElement = this._createElement(\"feComponentTransfer\").append(filter);\r\n var attrs = {\r\n type: type,\r\n slope: slope\r\n };\r\n filter.id = id;\r\n this._createElement(\"feFuncR\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncG\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncB\", attrs).append(componentTransferElement);\r\n return filter\r\n },\r\n getGrayScaleFilter: function() {\r\n if (this._grayScaleFilter) {\r\n return this._grayScaleFilter\r\n }\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\").attr({\r\n type: \"matrix\",\r\n 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 0.6 0\"\r\n }).append(filter);\r\n filter.id = id;\r\n this._grayScaleFilter = filter;\r\n return filter\r\n },\r\n lightenFilter: function(id) {\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\", {\r\n type: \"matrix\",\r\n values: \"\".concat(1.3, \" 0 0 0 0 0 \").concat(1.3, \" 0 0 0 0 0 \").concat(1.3, \" 0 0 0 0 0 1 0\")\r\n }).append(filter);\r\n filter.id = id;\r\n return filter\r\n },\r\n initDefsElements: function() {\r\n var storage = this._defsElementsStorage = this._defsElementsStorage || {\r\n byHash: {},\r\n baseId: getNextDefsSvgId()\r\n };\r\n var byHash = storage.byHash;\r\n var name;\r\n for (name in byHash) {\r\n byHash[name].pattern.dispose()\r\n }\r\n storage.byHash = {};\r\n storage.refToHash = {};\r\n storage.nextId = 0\r\n },\r\n drawPattern: function(_ref4, storageId, nextId) {\r\n var {\r\n color: color,\r\n hatching: hatching\r\n } = _ref4;\r\n return this.pattern(color, hatching, \"\".concat(storageId, \"-hatching-\").concat(nextId++))\r\n },\r\n drawFilter: function(_, storageId, nextId) {\r\n return this.lightenFilter(\"\".concat(storageId, \"-lightening-\").concat(nextId++))\r\n },\r\n lockDefsElements: function(attrs, ref, type) {\r\n var storage = this._defsElementsStorage;\r\n var storageItem;\r\n var hash = \"pattern\" === type ? getHatchingHash(attrs) : LIGHTENING_HASH;\r\n var method = \"pattern\" === type ? this.drawPattern : this.drawFilter;\r\n var pattern;\r\n if (storage.refToHash[ref] !== hash) {\r\n if (ref) {\r\n this.releaseDefsElements(ref)\r\n }\r\n storageItem = storage.byHash[hash];\r\n if (!storageItem) {\r\n pattern = method.call(this, attrs, storage.baseId, storage.nextId++);\r\n storageItem = storage.byHash[hash] = {\r\n pattern: pattern,\r\n count: 0\r\n };\r\n storage.refToHash[pattern.id] = hash\r\n }++storageItem.count;\r\n ref = storageItem.pattern.id\r\n }\r\n return ref\r\n },\r\n releaseDefsElements: function(ref) {\r\n var storage = this._defsElementsStorage;\r\n var hash = storage.refToHash[ref];\r\n var storageItem = storage.byHash[hash];\r\n if (storageItem && 0 === --storageItem.count) {\r\n storageItem.pattern.dispose();\r\n delete storage.byHash[hash];\r\n delete storage.refToHash[ref]\r\n }\r\n }\r\n};\r\n\r\nfunction getHatchingHash(_ref5) {\r\n var {\r\n color: color,\r\n hatching: hatching\r\n } = _ref5;\r\n return \"@\" + color + \"::\" + hatching.step + \":\" + hatching.width + \":\" + hatching.opacity + \":\" + hatching.direction\r\n}\r\nvar fixFuncIriCallbacks = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(fn) {\r\n callbacks.push(fn)\r\n },\r\n remove: function(fn) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el !== fn\r\n }))\r\n },\r\n removeByRenderer: function(renderer) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el.renderer !== renderer\r\n }))\r\n },\r\n fire: function() {\r\n callbacks.forEach((function(fn) {\r\n fn()\r\n }))\r\n }\r\n }\r\n}();\r\nexport var refreshPaths = function() {\r\n fixFuncIriCallbacks.fire()\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/legend.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n enumParser,\r\n normalizeEnum,\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n LayoutElement,\r\n WrapperLayoutElement\r\n} from \"../core/layout_element\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Title\r\n} from \"../core/title\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n processHatchingAttrs,\r\n getFuncIri\r\n} from \"../core/renderers/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar _Number = Number;\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _ceil = _math.ceil;\r\nvar _isDefined = isDefined;\r\nvar _isFunction = isFunction;\r\nvar _enumParser = enumParser;\r\nvar _normalizeEnum = normalizeEnum;\r\nvar _extend = extend;\r\nvar DEFAULT_MARGIN = 10;\r\nvar DEFAULT_MARKER_HATCHING_WIDTH = 2;\r\nvar DEFAULT_MARKER_HATCHING_STEP = 5;\r\nvar CENTER = \"center\";\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar VERTICAL = \"vertical\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nvar NONE = \"none\";\r\nvar HEIGHT = \"height\";\r\nvar WIDTH = \"width\";\r\nvar parseHorizontalAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\nvar parseVerticalAlignment = _enumParser([TOP, BOTTOM]);\r\nvar parseOrientation = _enumParser([VERTICAL, HORIZONTAL]);\r\nvar parseItemTextPosition = _enumParser([LEFT, RIGHT, TOP, BOTTOM]);\r\nvar parsePosition = _enumParser([OUTSIDE, INSIDE]);\r\nvar parseItemsAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\n\r\nfunction getState(state, color, stateName) {\r\n if (!state) {\r\n return\r\n }\r\n var colorFromAction = state.fill;\r\n return extend({}, {\r\n state: stateName,\r\n fill: colorFromAction === NONE ? color : colorFromAction,\r\n opacity: state.opacity,\r\n filter: state.filter,\r\n hatching: _extend({}, state.hatching, {\r\n step: DEFAULT_MARKER_HATCHING_STEP,\r\n width: DEFAULT_MARKER_HATCHING_WIDTH\r\n })\r\n })\r\n}\r\n\r\nfunction getAttributes(item, state, size) {\r\n var attrs = processHatchingAttrs(item, state);\r\n if (attrs.fill && 0 === attrs.fill.indexOf(\"DevExpress\")) {\r\n attrs.fill = getFuncIri(attrs.fill)\r\n }\r\n attrs.opacity = attrs.opacity >= 0 ? attrs.opacity : 1;\r\n return extend({}, attrs, {\r\n size: size\r\n })\r\n}\r\n\r\nfunction parseMargins(options) {\r\n var margin = options.margin;\r\n if (margin >= 0) {\r\n margin = _Number(options.margin);\r\n margin = {\r\n top: margin,\r\n bottom: margin,\r\n left: margin,\r\n right: margin\r\n }\r\n } else {\r\n margin = {\r\n top: margin.top >= 0 ? _Number(margin.top) : DEFAULT_MARGIN,\r\n bottom: margin.bottom >= 0 ? _Number(margin.bottom) : DEFAULT_MARGIN,\r\n left: margin.left >= 0 ? _Number(margin.left) : DEFAULT_MARGIN,\r\n right: margin.right >= 0 ? _Number(margin.right) : DEFAULT_MARGIN\r\n }\r\n }\r\n options.margin = margin\r\n}\r\n\r\nfunction getSizeItem(options, markerBBox, labelBBox) {\r\n var width;\r\n var height;\r\n switch (options.itemTextPosition) {\r\n case LEFT:\r\n case RIGHT:\r\n width = markerBBox.width + 7 + labelBBox.width;\r\n height = _max(markerBBox.height, labelBBox.height);\r\n break;\r\n case TOP:\r\n case BOTTOM:\r\n width = _max(markerBBox.width, labelBBox.width);\r\n height = markerBBox.height + 4 + labelBBox.height\r\n }\r\n return {\r\n width: width,\r\n height: height\r\n }\r\n}\r\n\r\nfunction calculateBBoxLabelAndMarker(markerBBox, labelBBox) {\r\n var bBox = {};\r\n bBox.left = _min(markerBBox.x, labelBBox.x);\r\n bBox.top = _min(markerBBox.y, labelBBox.y);\r\n bBox.right = _max(markerBBox.x + markerBBox.width, labelBBox.x + labelBBox.width);\r\n bBox.bottom = _max(markerBBox.y + markerBBox.height, labelBBox.y + labelBBox.height);\r\n return bBox\r\n}\r\n\r\nfunction applyMarkerState(id, idToIndexMap, items, stateName) {\r\n var item = idToIndexMap && items[idToIndexMap[id]];\r\n if (item) {\r\n item.renderMarker(item.states[stateName])\r\n }\r\n}\r\n\r\nfunction parseOptions(options, textField, allowInsidePosition) {\r\n if (!options) {\r\n return null\r\n }\r\n parseMargins(options);\r\n options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, RIGHT);\r\n options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, options.horizontalAlignment === CENTER ? BOTTOM : TOP);\r\n options.orientation = parseOrientation(options.orientation, options.horizontalAlignment === CENTER ? HORIZONTAL : VERTICAL);\r\n options.itemTextPosition = parseItemTextPosition(options.itemTextPosition, options.orientation === HORIZONTAL ? BOTTOM : RIGHT);\r\n options.position = allowInsidePosition ? parsePosition(options.position, OUTSIDE) : OUTSIDE;\r\n options.itemsAlignment = parseItemsAlignment(options.itemsAlignment, null);\r\n options.hoverMode = _normalizeEnum(options.hoverMode);\r\n options.customizeText = _isFunction(options.customizeText) ? options.customizeText : function() {\r\n return this[textField]\r\n };\r\n options.customizeHint = _isFunction(options.customizeHint) ? options.customizeHint : noop;\r\n options._incidentOccurred = options._incidentOccurred || noop;\r\n return options\r\n}\r\n\r\nfunction createSquareMarker(renderer, size) {\r\n return renderer.rect(0, 0, size, size)\r\n}\r\n\r\nfunction createCircleMarker(renderer, size) {\r\n return renderer.circle(size / 2, size / 2, size / 2)\r\n}\r\n\r\nfunction isCircle(type) {\r\n return \"circle\" === _normalizeEnum(type)\r\n}\r\n\r\nfunction inRect(rect, x, y) {\r\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom\r\n}\r\n\r\nfunction checkLinesSize(lines, layoutOptions, countItems, margins) {\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxMeasureLength = 0;\r\n var maxAltMeasureLength = 0;\r\n var margin = 0;\r\n if (\"y\" === layoutOptions.direction) {\r\n margin = margins.top + margins.bottom\r\n } else {\r\n margin = margins.left + margins.right\r\n }\r\n lines.forEach((function(line, i) {\r\n var firstItem = line[0];\r\n var lineLength = line.length;\r\n line.forEach((function(item, index) {\r\n var offset = item.offset || layoutOptions.spacing;\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + (index !== lineLength - 1 ? offset : 0);\r\n maxMeasureLength = _max(maxMeasureLength, position[layoutOptions.direction])\r\n }));\r\n position[layoutOptions.direction] = 0;\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + firstItem.altOffset || layoutOptions.altSpacing;\r\n maxAltMeasureLength = _max(maxAltMeasureLength, position[layoutOptions.altDirection])\r\n }));\r\n if (maxMeasureLength + margin > layoutOptions.length) {\r\n layoutOptions.countItem = decreaseItemCount(layoutOptions, countItems);\r\n return true\r\n }\r\n}\r\n\r\nfunction decreaseItemCount(layoutOptions, countItems) {\r\n layoutOptions.altCountItem++;\r\n return _ceil(countItems / layoutOptions.altCountItem)\r\n}\r\n\r\nfunction getLineLength(line, layoutOptions) {\r\n return line.reduce((lineLength, item) => {\r\n var offset = item.offset || layoutOptions.spacing;\r\n return lineLength + item[layoutOptions.measure] + offset\r\n }, 0)\r\n}\r\n\r\nfunction getMaxLineLength(lines, layoutOptions) {\r\n return lines.reduce((maxLineLength, line) => _max(maxLineLength, getLineLength(line, layoutOptions)), 0)\r\n}\r\n\r\nfunction getInitPositionForDirection(line, layoutOptions, maxLineLength) {\r\n var lineLength = getLineLength(line, layoutOptions);\r\n var initPosition;\r\n switch (layoutOptions.itemsAlignment) {\r\n case RIGHT:\r\n initPosition = maxLineLength - lineLength;\r\n break;\r\n case CENTER:\r\n initPosition = (maxLineLength - lineLength) / 2;\r\n break;\r\n default:\r\n initPosition = 0\r\n }\r\n return initPosition\r\n}\r\n\r\nfunction getPos(layoutOptions) {\r\n switch (layoutOptions.itemTextPosition) {\r\n case BOTTOM:\r\n return {\r\n horizontal: CENTER, vertical: TOP\r\n };\r\n case TOP:\r\n return {\r\n horizontal: CENTER, vertical: BOTTOM\r\n };\r\n case LEFT:\r\n return {\r\n horizontal: RIGHT, vertical: CENTER\r\n };\r\n case RIGHT:\r\n return {\r\n horizontal: LEFT, vertical: CENTER\r\n }\r\n }\r\n}\r\n\r\nfunction getLines(lines, layoutOptions, itemIndex) {\r\n var tableLine = {};\r\n if (itemIndex % layoutOptions.countItem === 0) {\r\n if (layoutOptions.markerOffset) {\r\n lines.push([], [])\r\n } else {\r\n lines.push([])\r\n }\r\n }\r\n if (layoutOptions.markerOffset) {\r\n tableLine.firstLine = lines[lines.length - 1];\r\n tableLine.secondLine = lines[lines.length - 2]\r\n } else {\r\n tableLine.firstLine = tableLine.secondLine = lines[lines.length - 1]\r\n }\r\n return tableLine\r\n}\r\n\r\nfunction setMaxInLine(line, measure) {\r\n var maxLineSize = line.reduce((maxLineSize, item) => {\r\n var itemMeasure = item ? item[measure] : maxLineSize;\r\n return _max(maxLineSize, itemMeasure)\r\n }, 0);\r\n line.forEach(item => {\r\n if (item) {\r\n item[measure] = maxLineSize\r\n }\r\n })\r\n}\r\n\r\nfunction transpose(array) {\r\n var width = array.length;\r\n var height = array[0].length;\r\n var i;\r\n var j;\r\n var transposeArray = [];\r\n for (i = 0; i < height; i++) {\r\n transposeArray[i] = [];\r\n for (j = 0; j < width; j++) {\r\n transposeArray[i][j] = array[j][i]\r\n }\r\n }\r\n return transposeArray\r\n}\r\n\r\nfunction getAlign(position) {\r\n switch (position) {\r\n case TOP:\r\n case BOTTOM:\r\n return CENTER;\r\n case LEFT:\r\n return RIGHT;\r\n case RIGHT:\r\n return LEFT\r\n }\r\n}\r\nvar getMarkerCreator = function(type) {\r\n return isCircle(type) ? createCircleMarker : createSquareMarker\r\n};\r\n\r\nfunction getTitleHorizontalAlignment(options) {\r\n if (options.horizontalAlignment === CENTER) {\r\n return CENTER\r\n } else if (options.itemTextPosition === RIGHT) {\r\n return LEFT\r\n } else if (options.itemTextPosition === LEFT) {\r\n return RIGHT\r\n } else {\r\n return CENTER\r\n }\r\n}\r\nexport var Legend = function(settings) {\r\n this._renderer = settings.renderer;\r\n this._legendGroup = settings.group;\r\n this._backgroundClass = settings.backgroundClass;\r\n this._itemGroupClass = settings.itemGroupClass;\r\n this._textField = settings.textField;\r\n this._getCustomizeObject = settings.getFormatObject;\r\n this._titleGroupClass = settings.titleGroupClass;\r\n this._allowInsidePosition = settings.allowInsidePosition;\r\n this._widget = settings.widget;\r\n this._updated = false\r\n};\r\nvar _Legend = Legend;\r\nvar legendPrototype = _Legend.prototype = clone(LayoutElement.prototype);\r\nextend(legendPrototype, {\r\n constructor: _Legend,\r\n getOptions: function() {\r\n return this._options\r\n },\r\n update: function() {\r\n var data = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var options = arguments.length > 1 ? arguments[1] : void 0;\r\n var themeManagerTitleOptions = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n options = that._options = parseOptions(options, that._textField, that._allowInsidePosition) || {};\r\n var initMarkerSize = options.markerSize;\r\n this._updated = true;\r\n this._data = data.map(dataItem => {\r\n dataItem.size = _Number(dataItem.size > 0 ? dataItem.size : initMarkerSize);\r\n dataItem.marker = getAttributes(dataItem, dataItem.states.normal);\r\n Object.defineProperty(dataItem.marker, \"size\", {\r\n get: () => dataItem.size,\r\n set(value) {\r\n dataItem.size = value\r\n }\r\n });\r\n Object.defineProperty(dataItem.marker, \"opacity\", {\r\n get: () => dataItem.states.normal.opacity,\r\n set(value) {\r\n dataItem.states.normal.opacity = dataItem.states.hover.opacity = dataItem.states.selection.opacity = value\r\n }\r\n });\r\n return dataItem\r\n });\r\n if (options.customizeItems) {\r\n that._data = options.customizeItems(data.slice()) || data\r\n }\r\n that._boundingRect = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (that.isVisible() && !that._title) {\r\n that._title = new Title({\r\n renderer: that._renderer,\r\n cssClass: that._titleGroupClass,\r\n root: that._legendGroup\r\n })\r\n }\r\n if (that._title) {\r\n var titleOptions = options.title;\r\n themeManagerTitleOptions.horizontalAlignment = getTitleHorizontalAlignment(options);\r\n that._title.update(themeManagerTitleOptions, titleOptions)\r\n }\r\n this.erase();\r\n return that\r\n },\r\n isVisible: function() {\r\n return this._options && this._options.visible\r\n },\r\n draw: function(width, height) {\r\n var items = this._getItemData();\r\n this.erase();\r\n if (!(this.isVisible() && items && items.length)) {\r\n return this\r\n }\r\n this._insideLegendGroup = this._renderer.g().enableLinks().append(this._legendGroup);\r\n this._title.changeLink(this._insideLegendGroup);\r\n this._createBackground();\r\n if (this._title.hasText()) {\r\n var horizontalPadding = this._background ? 2 * this._options.paddingLeftRight : 0;\r\n this._title.draw(width - horizontalPadding, height)\r\n }\r\n this._markersGroup = this._renderer.g().attr({\r\n class: this._itemGroupClass\r\n }).append(this._insideLegendGroup);\r\n this._createItems(items);\r\n this._updateElementsPosition(width, height);\r\n return this\r\n },\r\n _measureElements: function() {\r\n var options = this._options;\r\n var maxBBoxHeight = 0;\r\n this._items.forEach(item => {\r\n var labelBBox = item.label.getBBox();\r\n var markerBBox = item.marker.getBBox();\r\n item.markerBBox = markerBBox;\r\n item.markerSize = Math.max(markerBBox.width, markerBBox.height);\r\n var bBox = getSizeItem(options, markerBBox, labelBBox);\r\n item.labelBBox = labelBBox;\r\n item.bBox = bBox;\r\n maxBBoxHeight = _max(maxBBoxHeight, bBox.height)\r\n });\r\n if (options.equalRowHeight) {\r\n this._items.forEach(item => item.bBox.height = maxBBoxHeight)\r\n }\r\n },\r\n _updateElementsPosition: function(width, height) {\r\n var options = this._options;\r\n this._size = {\r\n width: width,\r\n height: height\r\n };\r\n this._measureElements();\r\n this._locateElements(options);\r\n this._finalUpdate(options);\r\n var size = this.getLayoutOptions();\r\n if (size.width > width || size.height > height) {\r\n this.freeSpace()\r\n }\r\n },\r\n _createItems: function(items) {\r\n var that = this;\r\n var options = that._options;\r\n var renderer = that._renderer;\r\n var createMarker = getMarkerCreator(options.markerShape);\r\n that._markersId = {};\r\n var templateFunction = !options.markerTemplate ? (dataItem, group) => {\r\n var attrs = dataItem.marker;\r\n createMarker(renderer, attrs.size).attr({\r\n fill: attrs.fill,\r\n opacity: attrs.opacity,\r\n filter: attrs.filter\r\n }).append({\r\n element: group\r\n })\r\n } : options.markerTemplate;\r\n var template = that._widget._getTemplate(templateFunction);\r\n var markersGroup = that._markersGroup;\r\n markersGroup.css(patchFontOptions(options.font));\r\n that._deferredItems = [];\r\n that._templatesGroups = [];\r\n that._items = (items || []).map((dataItem, i) => {\r\n var stateOfDataItem = dataItem.states;\r\n var normalState = stateOfDataItem.normal;\r\n var normalStateFill = normalState.fill;\r\n dataItem.size = dataItem.marker.size;\r\n var states = {\r\n normal: extend(normalState, {\r\n fill: normalStateFill || options.markerColor || options.defaultColor,\r\n state: \"normal\"\r\n }),\r\n hover: getState(stateOfDataItem.hover, normalStateFill, \"hovered\"),\r\n selection: getState(stateOfDataItem.selection, normalStateFill, \"selected\")\r\n };\r\n dataItem.states = states;\r\n var itemGroup = renderer.g().append(markersGroup);\r\n var markerGroup = renderer.g().attr({\r\n class: \"dxl-marker\"\r\n }).append(itemGroup);\r\n that._deferredItems[i] = new Deferred;\r\n that._templatesGroups.push(markerGroup);\r\n var item = {\r\n label: that._createLabel(dataItem, itemGroup),\r\n marker: markerGroup,\r\n renderer: renderer,\r\n group: itemGroup,\r\n tracker: {\r\n id: dataItem.id,\r\n argument: dataItem.argument,\r\n argumentIndex: dataItem.argumentIndex\r\n },\r\n states: states,\r\n itemTextPosition: options.itemTextPosition,\r\n markerOffset: 0,\r\n bBoxes: [],\r\n renderMarker(state) {\r\n dataItem.marker = getAttributes(item, state, dataItem.size);\r\n markerGroup.clear();\r\n template.render({\r\n model: dataItem,\r\n container: markerGroup.element,\r\n onRendered: that._deferredItems[i].resolve\r\n })\r\n }\r\n };\r\n item.renderMarker(states.normal);\r\n that._createHint(dataItem, itemGroup);\r\n if (void 0 !== dataItem.id) {\r\n that._markersId[dataItem.id] = i\r\n }\r\n return item\r\n })\r\n },\r\n getTemplatesGroups: function() {\r\n return this._templatesGroups || []\r\n },\r\n getTemplatesDef: function() {\r\n return this._deferredItems || []\r\n },\r\n _getItemData: function() {\r\n var items = this._data || [];\r\n var options = this._options || {};\r\n if (options.inverted) {\r\n items = items.slice().reverse()\r\n }\r\n return items.filter(i => i.visible)\r\n },\r\n _finalUpdate: function(options) {\r\n this._adjustBackgroundSettings(options);\r\n this._setBoundingRect(options.margin)\r\n },\r\n erase: function() {\r\n var insideLegendGroup = this._insideLegendGroup;\r\n insideLegendGroup && insideLegendGroup.dispose();\r\n this._insideLegendGroup = this._markersGroup = this._x1 = this._x2 = this._y2 = this._y2 = null;\r\n return this\r\n },\r\n _locateElements: function(locationOptions) {\r\n this._moveInInitialValues();\r\n this._locateRowsColumns(locationOptions)\r\n },\r\n _moveInInitialValues: function() {\r\n this._title.hasText() && this._title.move([0, 0]);\r\n this._legendGroup && this._legendGroup.move(0, 0);\r\n this._background && this._background.attr({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n })\r\n },\r\n applySelected: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"selection\");\r\n return this\r\n },\r\n applyHover: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"hover\");\r\n return this\r\n },\r\n resetItem: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"normal\");\r\n return this\r\n },\r\n _createLabel: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var options = this._options;\r\n var align = getAlign(options.itemTextPosition);\r\n var text = options.customizeText.call(labelFormatObject, labelFormatObject);\r\n var fontStyle = _isDefined(data.textOpacity) ? {\r\n color: options.font.color,\r\n opacity: data.textOpacity\r\n } : {};\r\n return this._renderer.text(text, 0, 0).css(patchFontOptions(fontStyle)).attr({\r\n align: align,\r\n class: options.cssClass\r\n }).append(group)\r\n },\r\n _createHint: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var text = this._options.customizeHint.call(labelFormatObject, labelFormatObject);\r\n if (_isDefined(text) && \"\" !== text) {\r\n group.setTitle(text)\r\n }\r\n },\r\n _createBackground: function() {\r\n var isInside = this._options.position === INSIDE;\r\n var color = this._options.backgroundColor;\r\n var fill = color || (isInside ? this._options.containerBackgroundColor : NONE);\r\n if (this._options.border.visible || (isInside || color) && color !== NONE) {\r\n this._background = this._renderer.rect(0, 0, 0, 0).attr({\r\n fill: fill,\r\n class: this._backgroundClass\r\n }).append(this._insideLegendGroup)\r\n }\r\n },\r\n _locateRowsColumns: function(options) {\r\n var iteration = 0;\r\n var layoutOptions = this._getItemsLayoutOptions();\r\n var countItems = this._items.length;\r\n var lines;\r\n do {\r\n lines = [];\r\n this._createLines(lines, layoutOptions);\r\n this._alignLines(lines, layoutOptions);\r\n iteration++\r\n } while (checkLinesSize(lines, layoutOptions, countItems, options.margin) && iteration < countItems);\r\n this._applyItemPosition(lines, layoutOptions)\r\n },\r\n _createLines: function(lines, layoutOptions) {\r\n this._items.forEach((item, i) => {\r\n var tableLine = getLines(lines, layoutOptions, i);\r\n var labelBox = {\r\n width: item.labelBBox.width,\r\n height: item.labelBBox.height,\r\n element: item.label,\r\n bBox: item.labelBBox,\r\n pos: getPos(layoutOptions),\r\n itemIndex: i\r\n };\r\n var markerBox = {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n element: item.marker,\r\n pos: {\r\n horizontal: CENTER,\r\n vertical: CENTER\r\n },\r\n bBox: {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n x: item.markerBBox.x,\r\n y: item.markerBBox.y\r\n },\r\n itemIndex: i\r\n };\r\n var firstItem;\r\n var secondItem;\r\n var offsetDirection = layoutOptions.markerOffset ? \"altOffset\" : \"offset\";\r\n if (layoutOptions.inverseLabelPosition) {\r\n firstItem = labelBox;\r\n secondItem = markerBox\r\n } else {\r\n firstItem = markerBox;\r\n secondItem = labelBox\r\n }\r\n firstItem[offsetDirection] = layoutOptions.labelOffset;\r\n tableLine.secondLine.push(firstItem);\r\n tableLine.firstLine.push(secondItem)\r\n })\r\n },\r\n _alignLines: function(lines, layoutOptions) {\r\n var i;\r\n var measure = layoutOptions.altMeasure;\r\n lines.forEach(line => setMaxInLine(line, measure));\r\n measure = layoutOptions.measure;\r\n if (layoutOptions.itemsAlignment) {\r\n if (layoutOptions.markerOffset) {\r\n for (i = 0; i < lines.length;) {\r\n transpose([lines[i++], lines[i++]]).forEach(processLine)\r\n }\r\n }\r\n } else {\r\n transpose(lines).forEach(processLine)\r\n }\r\n\r\n function processLine(line) {\r\n setMaxInLine(line, measure)\r\n }\r\n },\r\n _applyItemPosition: function(lines, layoutOptions) {\r\n var that = this;\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxLineLength = getMaxLineLength(lines, layoutOptions);\r\n lines.forEach(line => {\r\n var firstItem = line[0];\r\n var altOffset = firstItem.altOffset || layoutOptions.altSpacing;\r\n position[layoutOptions.direction] = getInitPositionForDirection(line, layoutOptions, maxLineLength);\r\n line.forEach(item => {\r\n var offset = item.offset || layoutOptions.spacing;\r\n var wrap = new WrapperLayoutElement(item.element, item.bBox);\r\n var itemBBoxOptions = {\r\n x: position.x,\r\n y: position.y,\r\n width: item.width,\r\n height: item.height\r\n };\r\n var itemBBox = new WrapperLayoutElement(null, itemBBoxOptions);\r\n var itemLegend = that._items[item.itemIndex];\r\n wrap.position({\r\n of: itemBBox,\r\n my: item.pos,\r\n at: item.pos\r\n });\r\n itemLegend.bBoxes.push(itemBBox);\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + offset\r\n });\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + altOffset\r\n });\r\n this._items.forEach(item => {\r\n var itemBBox = calculateBBoxLabelAndMarker(item.bBoxes[0].getLayoutOptions(), item.bBoxes[1].getLayoutOptions());\r\n var horizontal = that._options.columnItemSpacing / 2;\r\n var vertical = that._options.rowItemSpacing / 2;\r\n item.tracker.left = itemBBox.left - horizontal;\r\n item.tracker.right = itemBBox.right + horizontal;\r\n item.tracker.top = itemBBox.top - vertical;\r\n item.tracker.bottom = itemBBox.bottom + vertical\r\n })\r\n },\r\n _getItemsLayoutOptions: function() {\r\n var options = this._options;\r\n var orientation = options.orientation;\r\n var layoutOptions = {\r\n itemsAlignment: options.itemsAlignment,\r\n orientation: options.orientation\r\n };\r\n var width = this._size.width - (this._background ? 2 * options.paddingLeftRight : 0);\r\n var height = this._size.height - (this._background ? 2 * options.paddingTopBottom : 0);\r\n if (orientation === HORIZONTAL) {\r\n layoutOptions.length = width;\r\n layoutOptions.spacing = options.columnItemSpacing;\r\n layoutOptions.direction = \"x\";\r\n layoutOptions.measure = WIDTH;\r\n layoutOptions.altMeasure = HEIGHT;\r\n layoutOptions.altDirection = \"y\";\r\n layoutOptions.altSpacing = options.rowItemSpacing;\r\n layoutOptions.countItem = options.columnCount;\r\n layoutOptions.altCountItem = options.rowCount;\r\n layoutOptions.marginTextLabel = 4;\r\n layoutOptions.labelOffset = 7;\r\n if (options.itemTextPosition === BOTTOM || options.itemTextPosition === TOP) {\r\n layoutOptions.labelOffset = 4;\r\n layoutOptions.markerOffset = true\r\n }\r\n } else {\r\n layoutOptions.length = height;\r\n layoutOptions.spacing = options.rowItemSpacing;\r\n layoutOptions.direction = \"y\";\r\n layoutOptions.measure = HEIGHT;\r\n layoutOptions.altMeasure = WIDTH;\r\n layoutOptions.altDirection = \"x\";\r\n layoutOptions.altSpacing = options.columnItemSpacing;\r\n layoutOptions.countItem = options.rowCount;\r\n layoutOptions.altCountItem = options.columnCount;\r\n layoutOptions.marginTextLabel = 7;\r\n layoutOptions.labelOffset = 4;\r\n if (options.itemTextPosition === RIGHT || options.itemTextPosition === LEFT) {\r\n layoutOptions.labelOffset = 7;\r\n layoutOptions.markerOffset = true\r\n }\r\n }\r\n if (!layoutOptions.countItem) {\r\n if (layoutOptions.altCountItem) {\r\n layoutOptions.countItem = _ceil(this._items.length / layoutOptions.altCountItem)\r\n } else {\r\n layoutOptions.countItem = this._items.length\r\n }\r\n }\r\n if (options.itemTextPosition === TOP || options.itemTextPosition === LEFT) {\r\n layoutOptions.inverseLabelPosition = true\r\n }\r\n layoutOptions.itemTextPosition = options.itemTextPosition;\r\n layoutOptions.altCountItem = layoutOptions.altCountItem || _ceil(this._items.length / layoutOptions.countItem);\r\n return layoutOptions\r\n },\r\n _adjustBackgroundSettings: function(locationOptions) {\r\n if (!this._background) {\r\n return\r\n }\r\n var border = locationOptions.border;\r\n var legendBox = this._calculateTotalBox();\r\n var backgroundSettings = {\r\n x: _round(legendBox.x - locationOptions.paddingLeftRight),\r\n y: _round(legendBox.y - locationOptions.paddingTopBottom),\r\n width: _round(legendBox.width) + 2 * locationOptions.paddingLeftRight,\r\n height: _round(legendBox.height),\r\n opacity: locationOptions.backgroundOpacity\r\n };\r\n if (border.visible && border.width && border.color && border.color !== NONE) {\r\n backgroundSettings[\"stroke-width\"] = border.width;\r\n backgroundSettings.stroke = border.color;\r\n backgroundSettings[\"stroke-opacity\"] = border.opacity;\r\n backgroundSettings.dashStyle = border.dashStyle;\r\n backgroundSettings.rx = border.cornerRadius || 0;\r\n backgroundSettings.ry = border.cornerRadius || 0\r\n }\r\n this._background.attr(backgroundSettings)\r\n },\r\n _setBoundingRect: function(margin) {\r\n if (!this._insideLegendGroup) {\r\n return\r\n }\r\n var box = this._calculateTotalBox();\r\n box.height += margin.top + margin.bottom;\r\n box.widthWithoutMargins = box.width;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y -= margin.top;\r\n this._boundingRect = box\r\n },\r\n _calculateTotalBox: function() {\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleBox = this._title.getCorrectedLayoutOptions();\r\n var box = this._insideLegendGroup.getBBox();\r\n var verticalPadding = this._background ? 2 * this._options.paddingTopBottom : 0;\r\n box.height = markerBox.height + titleBox.height + verticalPadding;\r\n titleBox.width > box.width && (box.width = titleBox.width);\r\n return box\r\n },\r\n getActionCallback: function(point) {\r\n var that = this;\r\n if (that._options.visible) {\r\n return function(act) {\r\n that[act](point.index)\r\n }\r\n } else {\r\n return noop\r\n }\r\n },\r\n getLayoutOptions: function() {\r\n var options = this._options;\r\n var boundingRect = this._insideLegendGroup ? this._boundingRect : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (options) {\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n if (options.orientation === HORIZONTAL) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else if (options.horizontalAlignment === CENTER) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else {\r\n boundingRect.cutLayoutSide = options.horizontalAlignment;\r\n boundingRect.cutSide = \"horizontal\"\r\n }\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n };\r\n return boundingRect\r\n }\r\n return null\r\n },\r\n shift: function(x, y) {\r\n var box = {};\r\n if (this._insideLegendGroup) {\r\n this._insideLegendGroup.attr({\r\n translateX: x - this._boundingRect.x,\r\n translateY: y - this._boundingRect.y\r\n })\r\n }\r\n this._title && this._shiftTitle(this._boundingRect.widthWithoutMargins);\r\n this._markersGroup && this._shiftMarkers();\r\n if (this._insideLegendGroup) {\r\n box = this._legendGroup.getBBox()\r\n }\r\n this._x1 = box.x;\r\n this._y1 = box.y;\r\n this._x2 = box.x + box.width;\r\n this._y2 = box.y + box.height;\r\n return this\r\n },\r\n _shiftTitle: function(boxWidth) {\r\n var title = this._title;\r\n var titleBox = title.getCorrectedLayoutOptions();\r\n if (!titleBox || !title.hasText()) {\r\n return\r\n }\r\n var width = boxWidth - (this._background ? 2 * this._options.paddingLeftRight : 0);\r\n var titleOptions = title.getOptions();\r\n var titleY = titleBox.y + titleOptions.margin.top;\r\n var titleX = 0;\r\n if (titleOptions.verticalAlignment === BOTTOM && this._markersGroup) {\r\n titleY += this._markersGroup.getBBox().height\r\n }\r\n if (titleOptions.horizontalAlignment === RIGHT) {\r\n titleX = width - titleBox.width\r\n } else if (titleOptions.horizontalAlignment === CENTER) {\r\n titleX = (width - titleBox.width) / 2\r\n }\r\n title.shift(titleX, titleY)\r\n },\r\n _shiftMarkers: function() {\r\n var titleBox = this._title.getLayoutOptions();\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleOptions = this._title.getOptions() || {};\r\n var center = 0;\r\n var y = 0;\r\n if (titleBox.width > markerBox.width && this._options.horizontalAlignment === CENTER) {\r\n center = titleBox.width / 2 - markerBox.width / 2\r\n }\r\n if (titleOptions.verticalAlignment === TOP) {\r\n y = titleBox.height\r\n }\r\n if (0 !== center || 0 !== y) {\r\n this._markersGroup.attr({\r\n translateX: center,\r\n translateY: y\r\n });\r\n this._items.forEach(item => {\r\n item.tracker.left += center;\r\n item.tracker.right += center;\r\n item.tracker.top += y;\r\n item.tracker.bottom += y\r\n })\r\n }\r\n },\r\n getPosition: function() {\r\n return this._options.position\r\n },\r\n coordsIn: function(x, y) {\r\n return x >= this._x1 && x <= this._x2 && y >= this._y1 && y <= this._y2\r\n },\r\n getItemByCoord: function(x, y) {\r\n var items = this._items;\r\n var legendGroup = this._insideLegendGroup;\r\n x -= legendGroup.attr(\"translateX\");\r\n y -= legendGroup.attr(\"translateY\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (inRect(items[i].tracker, x, y)) {\r\n return items[i].tracker\r\n }\r\n }\r\n return null\r\n },\r\n dispose: function() {\r\n this._title && this._title.dispose();\r\n this._legendGroup = this._insideLegendGroup = this._title = this._renderer = this._options = this._data = this._items = null;\r\n return this\r\n },\r\n layoutOptions: function() {\r\n if (!this.isVisible()) {\r\n return null\r\n }\r\n var pos = this.getLayoutOptions();\r\n return {\r\n horizontalAlignment: this._options.horizontalAlignment,\r\n verticalAlignment: this._options.verticalAlignment,\r\n side: pos.cutSide,\r\n priority: 1,\r\n position: this.getPosition()\r\n }\r\n },\r\n measure: function(size) {\r\n if (this._updated || !this._insideLegendGroup) {\r\n this.draw(size[0], size[1]);\r\n this._updated = false\r\n } else {\r\n this._items.forEach(item => {\r\n item.bBoxes = []\r\n });\r\n this._updateElementsPosition(size[0], size[1])\r\n }\r\n var rect = this.getLayoutOptions();\r\n return [rect.width, rect.height]\r\n },\r\n move: function(rect) {\r\n this.shift(rect[0], rect[1])\r\n },\r\n freeSpace: function() {\r\n this._options._incidentOccurred(\"W2104\");\r\n this.erase()\r\n }\r\n});\r\nexport var plugin = {\r\n name: \"legend\",\r\n init: function() {\r\n var group = this._renderer.g().attr({\r\n class: this._rootClassPrefix + \"-legend\"\r\n }).enableLinks().append(this._renderer.root);\r\n this._legend = new Legend({\r\n renderer: this._renderer,\r\n group: group,\r\n widget: this,\r\n itemGroupClass: this._rootClassPrefix + \"-item\",\r\n titleGroupClass: this._rootClassPrefix + \"-title\",\r\n textField: \"text\",\r\n getFormatObject: function(data) {\r\n return {\r\n item: data.item,\r\n text: data.text\r\n }\r\n }\r\n });\r\n this._layout.add(this._legend)\r\n },\r\n extenders: {\r\n _applyTilesAppearance: function() {\r\n var that = this;\r\n this._items.forEach((function(item) {\r\n that._applyLegendItemStyle(item.id, item.getState())\r\n }))\r\n },\r\n _buildNodes: function() {\r\n this._createLegendItems()\r\n }\r\n },\r\n members: {\r\n _applyLegendItemStyle: function(id, state) {\r\n var legend = this._legend;\r\n switch (state) {\r\n case \"hover\":\r\n legend.applyHover(id);\r\n break;\r\n case \"selection\":\r\n legend.applySelected(id);\r\n break;\r\n default:\r\n legend.resetItem(id)\r\n }\r\n },\r\n _createLegendItems: function() {\r\n if (this._legend.update(this._getLegendData(), this._getOption(\"legend\"), this._themeManager.theme(\"legend\").title)) {\r\n this._requestChange([\"LAYOUT\"])\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._legend.dispose()\r\n },\r\n customize: function(constructor) {\r\n constructor.prototype._proxyData.push((function(x, y) {\r\n if (this._legend.coordsIn(x, y)) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n if (item) {\r\n return {\r\n id: item.id,\r\n type: \"legend\"\r\n }\r\n }\r\n }\r\n }));\r\n constructor.addChange({\r\n code: \"LEGEND\",\r\n handler: function() {\r\n this._createLegendItems()\r\n },\r\n isThemeDependent: true,\r\n option: \"legend\",\r\n isOptionChange: true\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nvar postCtor = DataHelperMixin.postCtor;\r\nvar name;\r\nvar members = {\r\n _dataSourceLoadErrorHandler: function() {\r\n this._dataSourceChangedHandler()\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _updateDataSource: function() {\r\n this._refreshDataSource();\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSourceChangedHandler()\r\n }\r\n },\r\n _dataIsLoaded: function() {\r\n return !this._dataSource || this._dataSource.isLoaded()\r\n },\r\n _dataSourceItems: function() {\r\n return this._dataSource && this._dataSource.items()\r\n }\r\n};\r\nfor (name in DataHelperMixin) {\r\n if (\"postCtor\" === name) {\r\n continue\r\n }\r\n members[name] = DataHelperMixin[name]\r\n}\r\nexport var plugin = {\r\n name: \"data_source\",\r\n init: function() {\r\n postCtor.call(this)\r\n },\r\n dispose: noop,\r\n members: members\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/image_creator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Color from \"../color\";\r\nimport {\r\n isFunction,\r\n isPromise,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n getSvgElement,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n each as _each,\r\n map as _map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n camelize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar _math = Math;\r\nvar PI = _math.PI;\r\nvar _min = _math.min;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _pow = _math.pow;\r\nvar _atan2 = _math.atan2;\r\nvar _cos = _math.cos;\r\nvar _sin = _math.sin;\r\nvar _number = Number;\r\nvar IMAGE_QUALITY = 1;\r\nvar TEXT_DECORATION_LINE_WIDTH_COEFF = .05;\r\nvar DEFAULT_FONT_SIZE = \"10px\";\r\nvar DEFAULT_FONT_FAMILY = \"sans-serif\";\r\nvar DEFAULT_TEXT_COLOR = \"#000\";\r\nvar parseAttributes;\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += PI / 180 * 90 * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = extend({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x || 0, options.y || 0, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(item => \"\" !== item.trim());\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[camelize(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && domAdapter.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[camelize(prop)] = style[prop]\r\n }\r\n }));\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n }))\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = isDefined(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily = options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = extend({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n lines.forEach((function(line) {\r\n var commonWidth = line.widths.reduce((function(commonWidth, width) {\r\n return commonWidth + width\r\n }), 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach((function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n }));\r\n line.elements.forEach((function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n }))\r\n }))\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var isComment = 8 === element.nodeType;\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[HIDDEN_FOR_EXPORT] || isComment) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n if (!isImage) {\r\n promise = fillElement(context, options, shared)\r\n }\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element, \"linear\");\r\n applyGradient(context, options, shared, element, \"radial\");\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element, type) {\r\n var {\r\n linearGradients: linearGradients,\r\n radialGradients: radialGradients\r\n } = _ref;\r\n var gradients = \"linear\" === type ? linearGradients : radialGradients;\r\n if (0 === Object.keys(gradients).length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var horizontalCenter = box.x + box.width / 2;\r\n var verticalCenter = box.y + box.height / 2;\r\n var maxRadius = Math.max(box.height / 2, box.width / 2);\r\n var gradient = \"linear\" === type ? context.createLinearGradient(box.x, 0, box.x + box.width, 0) : context.createRadialGradient(horizontalCenter, verticalCenter, 0, horizontalCenter, verticalCenter, maxRadius);\r\n gradients[id].colors.forEach(opt => {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n if (\"linear\" === type) {\r\n var _ref2, _gradients$id$transfo;\r\n var angle = null !== (_ref2 = (null === (_gradients$id$transfo = gradients[id].transform) || void 0 === _gradients$id$transfo ? void 0 : _gradients$id$transfo.replace(/\\D/g, \"\")) * Math.PI / 180) && void 0 !== _ref2 ? _ref2 : 0;\r\n context.translate(horizontalCenter, verticalCenter);\r\n context.rotate(angle);\r\n context.translate(-horizontalCenter, -verticalCenter)\r\n }\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new Color(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var _element$attributes$g;\r\n var options = {\r\n colors: [],\r\n transform: null === (_element$attributes$g = element.attributes.gradientTransform) || void 0 === _element$attributes$g ? void 0 : _element$attributes$g.textContent\r\n };\r\n _each(element.childNodes, (_, _ref3) => {\r\n var {\r\n attributes: attributes\r\n } = _ref3;\r\n options.colors.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n _each(element.childNodes, (function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n }));\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if (isPromise(result)) {\r\n result.then(() => {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, (function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = () => {\r\n context.restore()\r\n };\r\n var promise = drawCanvasElements(element.childNodes, context, options, shared);\r\n if (isPromise(promise)) {\r\n promise.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return promise;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.linearGradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n case \"radialgradient\":\r\n shared.radialGradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n }))\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = _map(matches, (function(item) {\r\n return _number(item)\r\n }));\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared, parentOptions) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = imageCreator._createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n var promise = drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n var onDone = () => {\r\n context.fillStyle = context.createPattern(patternCanvas, \"repeat\");\r\n context.globalAlpha = parentOptions.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n };\r\n if (isPromise(promise)) {\r\n promise.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return promise\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n var promise;\r\n if (fill && \"none\" !== fill) {\r\n if (-1 === fill.search(/url/)) {\r\n context.fillStyle = fill;\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n promise = getPattern(context, pattern, shared, options)\r\n }\r\n }\r\n return promise\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n _each(attributes, (function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n }));\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = domAdapter.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n linearGradients: {},\r\n radialGradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, _ref4) {\r\n var {\r\n width: width,\r\n height: height,\r\n backgroundColor: backgroundColor,\r\n margin: margin,\r\n svgToCanvas: svgToCanvas = convertSvgToCanvas\r\n } = _ref4;\r\n var scaledScreenInfo = calcScaledInfo(width, height);\r\n var canvas = imageCreator._createCanvas(scaledScreenInfo.width, scaledScreenInfo.height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(scaledScreenInfo.pixelRatio, 0, 0, scaledScreenInfo.pixelRatio, 0, 0);\r\n var svgElem = getSvgElement(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = domAdapter.isElementNode(markup);\r\n context.translate(margin, margin);\r\n domAdapter.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n domAdapter.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return fromPromise(svgToCanvas(svgElem, canvas, markupIsDomElement && contains(domAdapter.getBody(), markup))).then(() => canvas).always(() => {\r\n invisibleDiv && domAdapter.getBody().removeChild(invisibleDiv);\r\n domAdapter.getBody().removeChild(canvas)\r\n })\r\n}\r\nexport var imageCreator = {\r\n getImageData: function(markup, options) {\r\n var mimeType = \"image/\" + options.format;\r\n if (isFunction(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, options).then(canvas => getStringFromCanvas(canvas, mimeType))\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(binaryData => {\r\n var mimeType = \"image/\" + options.format;\r\n var data = isFunction(window.Blob) && !options.useBase64 ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n },\r\n _createCanvas(width, height, margin) {\r\n var canvas = $(\"<canvas>\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\nexport function testFormats(formats) {\r\n var canvas = imageCreator._createCanvas(100, 100, 0);\r\n return formats.reduce((function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (-1 !== canvas.toDataURL(mimeType).indexOf(mimeType)) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }), {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\nexport function calcScaledInfo(width, height) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n return {\r\n pixelRatio: pixelRatio,\r\n width: width * pixelRatio,\r\n height: height * pixelRatio\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/file_saver.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n logger\r\n} from \"../core/utils/console\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nexport var MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexport var fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = domAdapter.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then((function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then((function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then((function() {\r\n outputStream.flushAsync().done((function() {\r\n inputStream.close();\r\n outputStream.close()\r\n }))\r\n }))\r\n }))\r\n }\r\n }))\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = domAdapter.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n this._blobSaved = false;\r\n if (isDefined(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else if (isDefined(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if (isDefined(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(() => {\r\n URL.revokeObjectURL(objectURL);\r\n this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if (isFunction(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else {\r\n if (!isDefined(navigator.userAgent.match(/iPad/i))) {\r\n errors.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/svg_creator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport ajax from \"../core/utils/ajax\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getSvgElement,\r\n getSvgMarkup,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nexport var svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n ajax.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail((function() {\r\n callback(false)\r\n }))\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n each(that._imageArray, (function(src) {\r\n var deferred = new Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, (function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n }))\r\n }))\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = $(element).attr(\"href\") || $(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }\r\n each(element.childNodes, (function(_, element) {\r\n that._parseImages(element)\r\n }))\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return when.apply($, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var svgElem = getSvgElement(data);\r\n var $svgObject = $(svgElem);\r\n $svgObject.find(\"[\".concat(HIDDEN_FOR_EXPORT, \"]\")).remove();\r\n markup = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>' + getSvgMarkup($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(() => {\r\n each(that._imageArray, (function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n }));\r\n return isFunction(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/pdf_creator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../core/version\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n imageCreator,\r\n calcScaledInfo\r\n} from \"./image_creator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<</ProcSet[/PDF/ImageB/ImageC/ImageI]/XObject<</I0 5 0 R>>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<</Type/Pages/Kids[1 0 R]/Count 1>>\\r\\nendobj\\r\\n7 0 obj\\r\\n<</OpenAction[1 0 R /FitH null]/Type/Catalog/Pages 4 0 R/PageLayout/OneColumn>>\\r\\nendobj\\r\\n1 0 obj\\r\\n<</Type/Page/Resources 2 0 R/MediaBox[0 0 _width_ _height_]/Contents 3 0 R/Parent 4 0 R>>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<</Length 52>>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<</CreationDate _date_/Producer(DevExtreme _version_)>>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<</Type/XObject/Subtype/Image/Width _width_/Height _height_/ColorSpace/DeviceRGB/BitsPerComponent 8/Filter/DCTDecode/Length _length_>>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var {\r\n width: width,\r\n height: height\r\n } = calcScaledInfo(options.width, options.height);\r\n width += margin;\r\n height += margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var flooredWidth = Math.floor(width);\r\n var flooredHeight = Math.floor(height);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", version);\r\n var image = imageStartTemplate.replace(\"_width_\", flooredWidth).replace(\"_height_\", flooredHeight).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\n\r\nfunction getTwoDigitValue(value) {\r\n var stringValue = value.toString();\r\n if (1 === stringValue.length) {\r\n return \"0\".concat(value)\r\n }\r\n return value\r\n}\r\n\r\nfunction convertToPdfDateFormat(date) {\r\n var dateUnits = [date.getUTCFullYear(), getTwoDigitValue(date.getUTCMonth()), getTwoDigitValue(date.getUTCDate()), getTwoDigitValue(date.getUTCHours()), getTwoDigitValue(date.getUTCMinutes()), getTwoDigitValue(date.getUTCSeconds())];\r\n return \"(D:\".concat(dateUnits.join(\"\"), \"Z00'00')\")\r\n}\r\nexport function getData(data, options) {\r\n return imageCreator.getImageData(data, extend({}, options, {\r\n format: \"JPEG\"\r\n })).then(imageString => {\r\n var binaryData = composePdfString(imageString, options, convertToPdfDateFormat(getCurDate()));\r\n var pdfData = isFunction(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fileSaver\r\n} from \"./exporter/file_saver\";\r\nimport {\r\n imageCreator,\r\n testFormats,\r\n getData as getImageData\r\n} from \"./exporter/image_creator\";\r\nimport {\r\n svgCreator,\r\n getData as getSvgData\r\n} from \"./exporter/svg_creator\";\r\nimport {\r\n isFunction as _isFunction,\r\n isBoolean\r\n} from \"./core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"./core/utils/deferred\";\r\nimport {\r\n getData\r\n} from \"./exporter/pdf_creator\";\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n if (isBoolean(options.selectedRowsOnly)) {\r\n eventArgs.selectedRowsOnly = options.selectedRowsOnly\r\n }\r\n _isFunction(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(blob => {\r\n _isFunction(exportedAction) && exportedAction();\r\n if (_isFunction(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n var format = \"xlsx\" === options.format ? \"EXCEL\" : options.format;\r\n fileSaver.saveAs(eventArgs.fileName, format, blob)\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n}\r\nexport {\r\n _export as\r\n export, fileSaver\r\n};\r\nexport var image = {\r\n creator: imageCreator,\r\n getData: getImageData,\r\n testFormats: testFormats\r\n};\r\nexport var pdf = {\r\n getData: getData\r\n};\r\nexport var svg = {\r\n creator: svgCreator,\r\n getData: getSvgData\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/export.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n patchFontOptions\r\n} from \"./utils\";\r\nimport {\r\n HIDDEN_FOR_EXPORT\r\n} from \"../../core/utils/svg\";\r\nimport {\r\n export as _export,\r\n image as imageExporter,\r\n svg as svgExporter,\r\n pdf as pdfExporter\r\n} from \"../../exporter\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getTheme\r\n} from \"../themes\";\r\nimport {\r\n start as hoverEventStart,\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar pointerActions = [pointerEvents.down, pointerEvents.move].join(\" \");\r\nvar BUTTON_SIZE = 35;\r\nvar ICON_COORDS = [\r\n [9, 12, 26, 12, 26, 14, 9, 14],\r\n [9, 17, 26, 17, 26, 19, 9, 19],\r\n [9, 22, 26, 22, 26, 24, 9, 24]\r\n];\r\nvar LIST_PADDING_TOP = 4;\r\nvar LIST_WIDTH = 120;\r\nvar VERTICAL_TEXT_MARGIN = 8;\r\nvar HORIZONTAL_TEXT_MARGIN = 15;\r\nvar MENU_ITEM_HEIGHT = 30;\r\nvar LIST_STROKE_WIDTH = 1;\r\nvar MARGIN = 10;\r\nvar SHADOW_OFFSET = 2;\r\nvar SHADOW_BLUR = 3;\r\nvar DEFAULT_EXPORT_FORMAT = \"PNG\";\r\nvar ALLOWED_IMAGE_FORMATS = [DEFAULT_EXPORT_FORMAT, \"JPEG\", \"GIF\"];\r\nvar ALLOWED_EXTRA_FORMATS = [\"PDF\", \"SVG\"];\r\nvar EXPORT_CSS_CLASS = \"dx-export-menu\";\r\nvar A4WidthCm = \"21cm\";\r\nvar EXPORT_DATA_KEY = \"export-element-type\";\r\nvar FORMAT_DATA_KEY = \"export-element-format\";\r\nvar GET_COLOR_REGEX = /data-backgroundcolor=\"([^\"]*)\"/;\r\n\r\nfunction getValidFormats() {\r\n var imageFormats = imageExporter.testFormats(ALLOWED_IMAGE_FORMATS);\r\n return {\r\n unsupported: imageFormats.unsupported,\r\n supported: imageFormats.supported.concat(ALLOWED_EXTRA_FORMATS)\r\n }\r\n}\r\n\r\nfunction validateFormat(format, incidentOccurred, validFormats) {\r\n validFormats = validFormats || getValidFormats();\r\n format = String(format).toUpperCase();\r\n if (-1 !== validFormats.supported.indexOf(format)) {\r\n return format\r\n }\r\n if (-1 !== validFormats.unsupported.indexOf(format)) {\r\n incidentOccurred && incidentOccurred(\"W2108\", [format])\r\n }\r\n}\r\n\r\nfunction getCreatorFunc(format) {\r\n if (\"SVG\" === format) {\r\n return svgExporter.getData\r\n } else if (\"PDF\" === format) {\r\n return pdfExporter.getData\r\n } else {\r\n return imageExporter.getData\r\n }\r\n}\r\n\r\nfunction print(imageSrc, options) {\r\n var document = getWindow().document;\r\n var iFrame = document.createElement(\"iframe\");\r\n iFrame.onload = setPrint(imageSrc, options);\r\n iFrame.style.position = \"fixed\";\r\n iFrame.style.width = \"0\";\r\n iFrame.style.height = \"0\";\r\n iFrame.style.right = \"0\";\r\n iFrame.style.bottom = \"0\";\r\n document.body.appendChild(iFrame)\r\n}\r\n\r\nfunction calculatePrintPageWidth(iFrameBody) {\r\n iFrameBody.style.width = A4WidthCm;\r\n var width = getWidth(iFrameBody);\r\n iFrameBody.style.width = \"\";\r\n return width\r\n}\r\n\r\nfunction setPrint(imageSrc, options) {\r\n return function() {\r\n var window = this.contentWindow;\r\n var img = window.document.createElement(\"img\");\r\n window.document.body.appendChild(img);\r\n var widthRatio = calculatePrintPageWidth(window.document.body) / options.width;\r\n if (widthRatio < 1) {\r\n window.document.body.style.transform = \"scale(\".concat(widthRatio, \")\");\r\n window.document.body.style[\"transform-origin\"] = \"0 0\"\r\n }\r\n var removeFrame = () => {\r\n this.parentElement.removeChild(this)\r\n };\r\n img.addEventListener(\"load\", () => {\r\n window.focus();\r\n window.print()\r\n });\r\n img.addEventListener(\"error\", removeFrame);\r\n window.addEventListener(\"afterprint\", () => {\r\n setTimeout(removeFrame, 0)\r\n });\r\n img.src = imageSrc\r\n }\r\n}\r\n\r\nfunction getItemAttributes(options, type, itemIndex) {\r\n var x = BUTTON_SIZE - LIST_WIDTH;\r\n var y = BUTTON_SIZE + LIST_PADDING_TOP + LIST_STROKE_WIDTH + itemIndex * MENU_ITEM_HEIGHT;\r\n var attr = {\r\n rect: {\r\n width: LIST_WIDTH - 2 * LIST_STROKE_WIDTH,\r\n height: MENU_ITEM_HEIGHT,\r\n x: x + LIST_STROKE_WIDTH,\r\n y: y\r\n },\r\n text: {\r\n x: x + (options.rtl ? LIST_WIDTH - HORIZONTAL_TEXT_MARGIN : HORIZONTAL_TEXT_MARGIN),\r\n y: y + MENU_ITEM_HEIGHT - VERTICAL_TEXT_MARGIN\r\n }\r\n };\r\n if (\"printing\" === type) {\r\n attr.separator = {\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n sharp: \"v\",\r\n d: \"M \" + x + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH) + \" L \" + (x + LIST_WIDTH) + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH)\r\n }\r\n }\r\n return attr\r\n}\r\n\r\nfunction createMenuItem(renderer, options, settings) {\r\n var itemData = {};\r\n var type = settings.type;\r\n var format = settings.format;\r\n var attr = getItemAttributes(options, type, settings.itemIndex);\r\n var fontStyle = patchFontOptions(options.font);\r\n fontStyle[\"pointer-events\"] = \"none\";\r\n var menuItem = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-list-item\"\r\n });\r\n itemData[EXPORT_DATA_KEY] = type;\r\n if (format) {\r\n itemData[FORMAT_DATA_KEY] = format\r\n }\r\n var rect = renderer.rect();\r\n rect.attr(attr.rect).css({\r\n cursor: \"pointer\",\r\n \"pointer-events\": \"all\"\r\n }).data(itemData);\r\n rect.on(hoverEventStart + \".export\", () => rect.attr({\r\n fill: options.button.hover.backgroundColor\r\n })).on(hoverEventEnd + \".export\", () => rect.attr({\r\n fill: null\r\n }));\r\n rect.append(menuItem);\r\n var text = renderer.text(settings.text).css(fontStyle).attr(attr.text).append(menuItem);\r\n if (\"printing\" === type) {\r\n renderer.path(null, \"line\").attr(attr.separator).append(menuItem)\r\n }\r\n return {\r\n g: menuItem,\r\n rect: rect,\r\n resetState: () => rect.attr({\r\n fill: null\r\n }),\r\n fixPosition: () => {\r\n var textBBox = text.getBBox();\r\n text.move(attr.text.x - textBBox.x - (options.rtl ? textBBox.width : 0))\r\n }\r\n }\r\n}\r\n\r\nfunction createMenuItems(renderer, options) {\r\n var items = [];\r\n if (options.printingEnabled) {\r\n items.push(createMenuItem(renderer, options, {\r\n type: \"printing\",\r\n text: messageLocalization.format(\"vizExport-printingButtonText\"),\r\n itemIndex: items.length\r\n }))\r\n }\r\n items = options.formats.reduce((r, format) => {\r\n r.push(createMenuItem(renderer, options, {\r\n type: \"exporting\",\r\n text: messageLocalization.getFormatter(\"vizExport-exportButtonText\")(format),\r\n format: format,\r\n itemIndex: r.length\r\n }));\r\n return r\r\n }, items);\r\n return items\r\n}\r\n\r\nfunction getBackgroundColorFromMarkup(markup) {\r\n var parsedMarkup = GET_COLOR_REGEX.exec(markup);\r\n return null === parsedMarkup || void 0 === parsedMarkup ? void 0 : parsedMarkup[1]\r\n}\r\nexport var exportFromMarkup = function(markup, options) {\r\n options.format = validateFormat(options.format) || DEFAULT_EXPORT_FORMAT;\r\n options.fileName = options.fileName || \"file\";\r\n options.exportingAction = options.onExporting;\r\n options.exportedAction = options.onExported;\r\n options.fileSavingAction = options.onFileSaving;\r\n options.margin = isDefined(options.margin) ? options.margin : MARGIN;\r\n options.backgroundColor = isDefined(options.backgroundColor) ? options.backgroundColor : getBackgroundColorFromMarkup(markup) || getTheme().backgroundColor;\r\n _export(markup, options, getCreatorFunc(options.format))\r\n};\r\nexport var getMarkup = widgets => combineMarkups(widgets).markup;\r\nexport var exportWidgets = function(widgets, options) {\r\n options = options || {};\r\n var markupInfo = combineMarkups(widgets, {\r\n gridLayout: options.gridLayout,\r\n verticalAlignment: options.verticalAlignment,\r\n horizontalAlignment: options.horizontalAlignment\r\n });\r\n options.width = markupInfo.width;\r\n options.height = markupInfo.height;\r\n exportFromMarkup(markupInfo.markup, options)\r\n};\r\nexport var combineMarkups = function(widgets) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n if (!Array.isArray(widgets)) {\r\n widgets = [\r\n [widgets]\r\n ]\r\n } else if (!Array.isArray(widgets[0])) {\r\n widgets = widgets.map(item => [item])\r\n }\r\n var compactView = !options.gridLayout;\r\n var exportItems = widgets.reduce((r, row, rowIndex) => {\r\n var rowInfo = row.reduce((r, item, colIndex) => {\r\n var size = item.getSize();\r\n var backgroundColor = item.option(\"backgroundColor\") || getTheme(item.option(\"theme\")).backgroundColor;\r\n backgroundColor && -1 === r.backgroundColors.indexOf(backgroundColor) && r.backgroundColors.push(backgroundColor);\r\n r.hOffset = r.width;\r\n r.width += size.width;\r\n r.height = Math.max(r.height, size.height);\r\n r.itemWidth = Math.max(r.itemWidth, size.width);\r\n r.items.push({\r\n markup: item.svg(),\r\n width: size.width,\r\n height: size.height,\r\n c: colIndex,\r\n r: rowIndex,\r\n hOffset: r.hOffset\r\n });\r\n return r\r\n }, {\r\n items: [],\r\n height: 0,\r\n itemWidth: 0,\r\n hOffset: 0,\r\n width: 0,\r\n backgroundColors: r.backgroundColors\r\n });\r\n r.rowOffsets.push(r.totalHeight);\r\n r.rowHeights.push(rowInfo.height);\r\n r.totalHeight += rowInfo.height;\r\n r.items = r.items.concat(rowInfo.items);\r\n r.itemWidth = Math.max(r.itemWidth, rowInfo.itemWidth);\r\n r.maxItemLen = Math.max(r.maxItemLen, rowInfo.items.length);\r\n r.totalWidth = compactView ? Math.max(r.totalWidth, rowInfo.width) : r.maxItemLen * r.itemWidth;\r\n return r\r\n }, {\r\n items: [],\r\n rowOffsets: [],\r\n rowHeights: [],\r\n itemWidth: 0,\r\n totalHeight: 0,\r\n maxItemLen: 0,\r\n totalWidth: 0,\r\n backgroundColors: []\r\n });\r\n var backgroundColor = 'data-backgroundcolor=\"'.concat(1 === exportItems.backgroundColors.length ? exportItems.backgroundColors[0] : \"\", '\" ');\r\n var getVOffset = item => {\r\n var align = options.verticalAlignment;\r\n var dy = exportItems.rowHeights[item.r] - item.height;\r\n return exportItems.rowOffsets[item.r] + (\"bottom\" === align ? dy : \"center\" === align ? dy / 2 : 0)\r\n };\r\n var getHOffset = item => {\r\n if (compactView) {\r\n return item.hOffset\r\n }\r\n var align = options.horizontalAlignment;\r\n var colWidth = exportItems.itemWidth;\r\n var dx = colWidth - item.width;\r\n return item.c * colWidth + (\"right\" === align ? dx : \"center\" === align ? dx / 2 : 0)\r\n };\r\n var totalHeight = exportItems.totalHeight;\r\n var totalWidth = exportItems.totalWidth;\r\n return {\r\n markup: \"<svg \" + backgroundColor + 'height=\"' + totalHeight + '\" width=\"' + totalWidth + '\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">' + exportItems.items.map(item => '<g transform=\"translate('.concat(getHOffset(item), \",\").concat(getVOffset(item), ')\">').concat(item.markup, \"</g>\")).join(\"\") + \"</svg>\",\r\n width: totalWidth,\r\n height: totalHeight\r\n }\r\n};\r\nexport var ExportMenu = function(params) {\r\n var renderer = this._renderer = params.renderer;\r\n this._incidentOccurred = params.incidentOccurred;\r\n this._exportTo = params.exportTo;\r\n this._print = params.print;\r\n this._shadow = renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\", SHADOW_OFFSET, 6, SHADOW_BLUR);\r\n this._shadow.attr({\r\n opacity: .8\r\n });\r\n this._group = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS,\r\n [HIDDEN_FOR_EXPORT]: true\r\n }).linkOn(renderer.root, {\r\n name: \"export-menu\",\r\n after: \"peripheral\"\r\n });\r\n this._buttonGroup = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-button\"\r\n }).append(this._group);\r\n this._listGroup = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-list\"\r\n }).append(this._group);\r\n this._overlay = renderer.rect(-LIST_WIDTH + BUTTON_SIZE, BUTTON_SIZE + LIST_PADDING_TOP, LIST_WIDTH, 0);\r\n this._overlay.attr({\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n rx: 4,\r\n ry: 4,\r\n filter: this._shadow.id\r\n });\r\n this._overlay.data({\r\n \"export-element-type\": \"list\"\r\n });\r\n this.validFormats = getValidFormats();\r\n this._subscribeEvents()\r\n};\r\nextend(ExportMenu.prototype, {\r\n getLayoutOptions() {\r\n if (this._hiddenDueToLayout) {\r\n return {\r\n width: 0,\r\n height: 0,\r\n cutSide: \"vertical\",\r\n cutLayoutSide: \"top\"\r\n }\r\n }\r\n var bBox = this._buttonGroup.getBBox();\r\n bBox.cutSide = \"vertical\";\r\n bBox.cutLayoutSide = \"top\";\r\n bBox.height += MARGIN;\r\n bBox.position = {\r\n vertical: \"top\",\r\n horizontal: \"right\"\r\n };\r\n bBox.verticalAlignment = \"top\";\r\n bBox.horizontalAlignment = \"right\";\r\n return bBox\r\n },\r\n shift(_, y) {\r\n this._group.attr({\r\n translateY: this._group.attr(\"translateY\") + y\r\n })\r\n },\r\n draw(width, height, canvas) {\r\n this._group.move(width - BUTTON_SIZE - SHADOW_OFFSET - SHADOW_BLUR + canvas.left, Math.floor(height / 2 - BUTTON_SIZE / 2));\r\n var layoutOptions = this.getLayoutOptions();\r\n if (layoutOptions.width > width || layoutOptions.height > height) {\r\n this.freeSpace()\r\n }\r\n return this\r\n },\r\n show() {\r\n this._group.linkAppend()\r\n },\r\n hide() {\r\n this._group.linkRemove()\r\n },\r\n setOptions(options) {\r\n this._options = options;\r\n if (options.formats) {\r\n options.formats = options.formats.reduce((r, format) => {\r\n format = validateFormat(format, this._incidentOccurred, this.validFormats);\r\n format && r.push(format);\r\n return r\r\n }, [])\r\n } else {\r\n options.formats = this.validFormats.supported.slice()\r\n }\r\n options.printingEnabled = void 0 === options.printingEnabled ? true : options.printingEnabled;\r\n if (options.enabled && (options.formats.length || options.printingEnabled)) {\r\n this.show();\r\n this._updateButton();\r\n this._updateList();\r\n this._hideList()\r\n } else {\r\n this.hide()\r\n }\r\n },\r\n dispose() {\r\n this._unsubscribeEvents();\r\n this._group.linkRemove().linkOff();\r\n this._group.dispose();\r\n this._shadow.dispose()\r\n },\r\n layoutOptions() {\r\n return this._options.enabled && {\r\n horizontalAlignment: \"right\",\r\n verticalAlignment: \"top\",\r\n weak: true\r\n }\r\n },\r\n measure() {\r\n this._fillSpace();\r\n var margin = this._options.button.margin;\r\n return [BUTTON_SIZE + margin.left + margin.right, BUTTON_SIZE + margin.top + margin.bottom]\r\n },\r\n move(rect) {\r\n var margin = this._options.button.margin;\r\n this._group.attr({\r\n translateX: Math.round(rect[0]) + margin.left,\r\n translateY: Math.round(rect[1]) + margin.top\r\n })\r\n },\r\n _fillSpace() {\r\n this._hiddenDueToLayout = false;\r\n this.show()\r\n },\r\n freeSpace() {\r\n this._incidentOccurred(\"W2107\");\r\n this._hiddenDueToLayout = true;\r\n this.hide()\r\n },\r\n _hideList() {\r\n this._listGroup.remove();\r\n this._listShown = false;\r\n this._setButtonState(\"default\");\r\n this._menuItems.forEach(item => item.resetState())\r\n },\r\n _showList() {\r\n this._listGroup.append(this._group);\r\n this._listShown = true;\r\n this._menuItems.forEach(item => item.fixPosition())\r\n },\r\n _setButtonState(state) {\r\n var style = this._options.button[state];\r\n this._button.attr({\r\n stroke: style.borderColor,\r\n fill: style.backgroundColor\r\n });\r\n this._icon.attr({\r\n fill: style.color\r\n })\r\n },\r\n _subscribeEvents() {\r\n this._renderer.root.on(pointerEvents.up + \".export\", e => {\r\n var elementType = e.target[EXPORT_DATA_KEY];\r\n if (!elementType) {\r\n if (this._button) {\r\n this._hideList()\r\n }\r\n return\r\n }\r\n if (\"button\" === elementType) {\r\n if (this._listShown) {\r\n this._setButtonState(\"default\");\r\n this._hideList()\r\n } else {\r\n this._setButtonState(\"focus\");\r\n this._showList()\r\n }\r\n } else if (\"printing\" === elementType) {\r\n this._print();\r\n this._hideList()\r\n } else if (\"exporting\" === elementType) {\r\n this._exportTo(e.target[FORMAT_DATA_KEY]);\r\n this._hideList()\r\n }\r\n });\r\n this._listGroup.on(pointerActions, e => e.stopPropagation());\r\n this._buttonGroup.on(pointerEvents.enter, () => this._setButtonState(\"hover\"));\r\n this._buttonGroup.on(pointerEvents.leave, () => this._setButtonState(this._listShown ? \"focus\" : \"default\"));\r\n this._buttonGroup.on(pointerEvents.down + \".export\", () => this._setButtonState(\"active\"))\r\n },\r\n _unsubscribeEvents() {\r\n this._renderer.root.off(\".export\");\r\n this._listGroup.off();\r\n this._buttonGroup.off()\r\n },\r\n _updateButton() {\r\n var renderer = this._renderer;\r\n var options = this._options;\r\n var exportData = {\r\n \"export-element-type\": \"button\"\r\n };\r\n if (!this._button) {\r\n this._button = renderer.rect(0, 0, BUTTON_SIZE, BUTTON_SIZE).append(this._buttonGroup);\r\n this._button.attr({\r\n rx: 4,\r\n ry: 4,\r\n fill: options.button.default.backgroundColor,\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": 1,\r\n cursor: \"pointer\"\r\n });\r\n this._button.data(exportData);\r\n this._icon = renderer.path(ICON_COORDS).append(this._buttonGroup);\r\n this._icon.attr({\r\n fill: options.button.default.color,\r\n cursor: \"pointer\"\r\n });\r\n this._icon.data(exportData);\r\n this._buttonGroup.setTitle(messageLocalization.format(\"vizExport-titleMenuText\"))\r\n }\r\n },\r\n _updateList() {\r\n var options = this._options;\r\n var buttonDefault = options.button.default;\r\n var listGroup = this._listGroup;\r\n var items = createMenuItems(this._renderer, options);\r\n this._shadow.attr({\r\n color: options.shadowColor\r\n });\r\n this._overlay.attr({\r\n height: items.length * MENU_ITEM_HEIGHT + 2 * LIST_STROKE_WIDTH,\r\n fill: buttonDefault.backgroundColor,\r\n stroke: buttonDefault.borderColor\r\n });\r\n listGroup.clear();\r\n this._overlay.append(listGroup);\r\n items.forEach(item => item.g.append(listGroup));\r\n this._menuItems = items\r\n }\r\n});\r\n\r\nfunction getExportOptions(widget, exportOptions, fileName, format) {\r\n if (format || exportOptions.format) {\r\n format = validateFormat(format || exportOptions.format, widget._incidentOccurred)\r\n }\r\n var {\r\n width: width,\r\n height: height\r\n } = widget.getSize();\r\n return {\r\n format: format || DEFAULT_EXPORT_FORMAT,\r\n fileName: fileName || exportOptions.fileName || \"file\",\r\n backgroundColor: exportOptions.backgroundColor,\r\n width: width,\r\n height: height,\r\n margin: exportOptions.margin,\r\n svgToCanvas: exportOptions.svgToCanvas,\r\n exportingAction: widget._createActionByOption(\"onExporting\", {\r\n excludeValidators: [\"disabled\"]\r\n }),\r\n exportedAction: widget._createActionByOption(\"onExported\", {\r\n excludeValidators: [\"disabled\"]\r\n }),\r\n fileSavingAction: widget._createActionByOption(\"onFileSaving\", {\r\n excludeValidators: [\"disabled\"]\r\n })\r\n }\r\n}\r\nexport var plugin = {\r\n name: \"export\",\r\n init() {\r\n this._exportMenu = new ExportMenu({\r\n renderer: this._renderer,\r\n incidentOccurred: this._incidentOccurred,\r\n print: () => this.print(),\r\n exportTo: format => this.exportTo(void 0, format)\r\n });\r\n this._layout.add(this._exportMenu)\r\n },\r\n dispose() {\r\n this._exportMenu.dispose()\r\n },\r\n members: {\r\n _getExportMenuOptions() {\r\n return extend({}, this._getOption(\"export\"), {\r\n rtl: this._getOption(\"rtlEnabled\", true)\r\n })\r\n },\r\n _disablePointerEvents() {\r\n var pointerEventsValue = this._renderer.root.attr(\"pointer-events\");\r\n this._renderer.root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n return pointerEventsValue\r\n },\r\n exportTo(fileName, format) {\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {}, fileName, format);\r\n menu && menu.hide();\r\n var pointerEventsValue = this._disablePointerEvents();\r\n var promise = _export(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(logger.error).always(() => {\r\n this._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n },\r\n print() {\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {});\r\n options.exportingAction = null;\r\n options.exportedAction = null;\r\n options.margin = 0;\r\n options.format = \"PNG\";\r\n options.useBase64 = true;\r\n options.fileSavingAction = eventArgs => {\r\n print(\"data:image/png;base64,\".concat(eventArgs.data), {\r\n width: options.width,\r\n __test: options.__test\r\n });\r\n eventArgs.cancel = true\r\n };\r\n var pointerEventsValue = this._disablePointerEvents();\r\n menu && menu.hide();\r\n var promise = _export(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(logger.error).always(() => {\r\n this._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n }\r\n },\r\n customize(constructor) {\r\n var proto = constructor.prototype;\r\n constructor.addChange({\r\n code: \"EXPORT\",\r\n handler() {\r\n this._exportMenu.setOptions(this._getExportMenuOptions());\r\n this._change([\"LAYOUT\"])\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"export\"\r\n });\r\n proto._optionChangesMap.onExporting = \"EXPORT\";\r\n proto._optionChangesMap.onExported = \"EXPORT\";\r\n proto._optionChangesMap.onFileSaving = \"EXPORT\"\r\n },\r\n fontFields: [\"export.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/loading_indicator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions as _patchFontOptions\r\n} from \"./utils\";\r\nvar STATE_HIDDEN = 0;\r\nvar STATE_SHOWN = 1;\r\nvar ANIMATION_EASING = \"linear\";\r\nvar ANIMATION_DURATION = 400;\r\nvar LOADING_INDICATOR_READY = \"loadingIndicatorReady\";\r\nexport var LoadingIndicator = function(parameters) {\r\n var renderer = parameters.renderer;\r\n this._group = renderer.g().attr({\r\n class: \"dx-loading-indicator\"\r\n }).linkOn(renderer.root, {\r\n name: \"loading-indicator\",\r\n after: \"peripheral\"\r\n });\r\n this._rect = renderer.rect().attr({\r\n opacity: 0\r\n }).append(this._group);\r\n this._text = renderer.text().attr({\r\n align: \"center\"\r\n }).append(this._group);\r\n this._createStates(parameters.eventTrigger, this._group, renderer.root, parameters.notify)\r\n};\r\nLoadingIndicator.prototype = {\r\n constructor: LoadingIndicator,\r\n _createStates: function(eventTrigger, group, root, notify) {\r\n this._states = [{\r\n opacity: 0,\r\n start: function() {\r\n notify(false)\r\n },\r\n complete: function() {\r\n group.linkRemove();\r\n root.css({\r\n \"pointer-events\": \"\"\r\n });\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }, {\r\n opacity: .85,\r\n start: function() {\r\n group.linkAppend();\r\n root.css({\r\n \"pointer-events\": \"none\"\r\n });\r\n notify(true)\r\n },\r\n complete: function() {\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }];\r\n this._state = STATE_HIDDEN\r\n },\r\n setSize: function(size) {\r\n var width = size.width;\r\n var height = size.height;\r\n this._rect.attr({\r\n width: width,\r\n height: height\r\n });\r\n this._text.attr({\r\n x: width / 2,\r\n y: height / 2\r\n })\r\n },\r\n setOptions: function(options) {\r\n this._rect.attr({\r\n fill: options.backgroundColor\r\n });\r\n this._text.css(_patchFontOptions(options.font)).attr({\r\n text: options.text,\r\n class: options.cssClass\r\n });\r\n this[options.show ? \"show\" : \"hide\"]()\r\n },\r\n dispose: function() {\r\n this._group.linkRemove().linkOff();\r\n this._group = this._rect = this._text = this._states = null\r\n },\r\n _transit: function(stateId) {\r\n var state;\r\n if (this._state !== stateId) {\r\n this._state = stateId;\r\n this._isHiding = false;\r\n state = this._states[stateId];\r\n this._rect.stopAnimation().animate({\r\n opacity: state.opacity\r\n }, {\r\n complete: state.complete,\r\n easing: ANIMATION_EASING,\r\n duration: ANIMATION_DURATION,\r\n unstoppable: true\r\n });\r\n this._noHiding = true;\r\n state.start();\r\n this._noHiding = false\r\n }\r\n },\r\n show: function() {\r\n this._transit(STATE_SHOWN)\r\n },\r\n hide: function() {\r\n this._transit(STATE_HIDDEN)\r\n },\r\n scheduleHiding: function() {\r\n if (!this._noHiding) {\r\n this._isHiding = true\r\n }\r\n },\r\n fulfillHiding: function() {\r\n if (this._isHiding) {\r\n this.hide()\r\n }\r\n }\r\n};\r\nexport var plugin = {\r\n name: \"loading_indicator\",\r\n init: function() {\r\n var that = this;\r\n that._loadingIndicator = new LoadingIndicator({\r\n eventTrigger: that._eventTrigger,\r\n renderer: that._renderer,\r\n notify: function(state) {\r\n that._skipLoadingIndicatorOptions = true;\r\n that.option(\"loadingIndicator\", {\r\n show: state\r\n });\r\n that._skipLoadingIndicatorOptions = false;\r\n if (state) {\r\n that._stopCurrentHandling()\r\n }\r\n }\r\n });\r\n that._scheduleLoadingIndicatorHiding()\r\n },\r\n dispose: function() {\r\n this._loadingIndicator.dispose();\r\n this._loadingIndicator = null\r\n },\r\n members: {\r\n _scheduleLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.scheduleHiding()\r\n },\r\n _fulfillLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.fulfillHiding()\r\n },\r\n showLoadingIndicator: function() {\r\n this._loadingIndicator.show()\r\n },\r\n hideLoadingIndicator: function() {\r\n this._loadingIndicator.hide()\r\n },\r\n _onBeginUpdate: function() {\r\n if (!this._optionChangedLocker) {\r\n this._scheduleLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n extenders: {\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (isLoading && (this._options.silent(\"loadingIndicator\") || {}).enabled) {\r\n this._loadingIndicator.show()\r\n }\r\n },\r\n _setContentSize() {\r\n this._loadingIndicator.setSize(this._canvas)\r\n },\r\n endUpdate() {\r\n if (this._initialized && this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n if (proto._dataSourceChangedHandler) {\r\n var _dataSourceChangedHandler = proto._dataSourceChangedHandler;\r\n proto._dataSourceChangedHandler = function() {\r\n this._scheduleLoadingIndicatorHiding();\r\n _dataSourceChangedHandler.apply(this, arguments)\r\n }\r\n }\r\n constructor.addChange({\r\n code: \"LOADING_INDICATOR\",\r\n handler: function() {\r\n if (!this._skipLoadingIndicatorOptions) {\r\n this._loadingIndicator.setOptions(this._getOption(\"loadingIndicator\"))\r\n }\r\n this._scheduleLoadingIndicatorHiding()\r\n },\r\n isThemeDependent: true,\r\n option: \"loadingIndicator\",\r\n isOptionChange: true\r\n });\r\n proto._eventsMap.onLoadingIndicatorReady = {\r\n name: \"loadingIndicatorReady\"\r\n };\r\n var _drawn = proto._drawn;\r\n proto._drawn = function() {\r\n _drawn.apply(this, arguments);\r\n if (this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n fontFields: [\"loadingIndicator.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar NARROW_NO_BREAK_SPACE_REGEX = /[\\u202F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\").replace(NARROW_NO_BREAK_SPACE_REGEX, \" \")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/plaque.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"x\", \"y\", \"canvas\", \"offsetX\", \"offsetY\", \"offset\"];\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar math = Math;\r\nvar round = math.round;\r\nvar max = math.max;\r\nvar min = math.min;\r\nvar sin = math.sin;\r\nvar cos = math.cos;\r\nvar asin = math.asin;\r\nvar PI = math.PI;\r\nvar buildPath = function() {\r\n for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\r\n points[_key] = arguments[_key]\r\n }\r\n return points.join(\"\")\r\n};\r\n\r\nfunction getArc(cornerRadius, xDirection, yDirection) {\r\n return \"a \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(xDirection * cornerRadius, \" \").concat(yDirection * cornerRadius)\r\n}\r\n\r\nfunction getAbsoluteArc(cornerRadius, x, y) {\r\n return \"A \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(x, \" \").concat(y)\r\n}\r\n\r\nfunction rotateX(x, y, angle, x0, y0) {\r\n return (x - x0) * round(cos(angle)) + (y - y0) * round(sin(angle)) + x0\r\n}\r\n\r\nfunction rotateY(x, y, angle, x0, y0) {\r\n return -(x - x0) * round(sin(angle)) + (y - y0) * round(cos(angle)) + y0\r\n}\r\n\r\nfunction rotateSize(options, angle) {\r\n if (angle % 90 === 0 && angle % 180 !== 0) {\r\n return {\r\n width: options.height,\r\n height: options.width\r\n }\r\n }\r\n return options\r\n}\r\n\r\nfunction getCloudAngle(_ref, x, y, anchorX, anchorY) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n if (anchorX < xl && anchorY < yt || anchorX >= xl && anchorX <= xr && anchorY < yt) {\r\n return 270\r\n }\r\n if (anchorX > xr && anchorY > yb || anchorX >= xl && anchorX <= xr && anchorY > yb) {\r\n return 90\r\n } else if (anchorX < xl && anchorY > yb || anchorX < xl && anchorY >= yt && anchorY <= yb) {\r\n return 180\r\n }\r\n return 0\r\n}\r\n\r\nfunction getCloudPoints(_ref2, x, y, anchorX, anchorY, _ref3, bounded) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref2;\r\n var {\r\n arrowWidth: arrowWidth,\r\n cornerRadius: cornerRadius = 0\r\n } = _ref3;\r\n var halfArrowWidth = arrowWidth / 2;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n var leftTopCorner = [xl, yt];\r\n var rightTopCorner = [xr, yt];\r\n var rightBottomCorner = [xr, yb];\r\n var leftBottomCorner = [xl, yb];\r\n var arrowX = anchorX <= xl ? xl : xr <= anchorX ? xr : anchorX;\r\n var arrowY = anchorY <= yt ? yt : yb <= anchorY ? yb : anchorY;\r\n var arrowBaseBottom = min(arrowY + halfArrowWidth, yb);\r\n var arrowBaseTop = max(arrowY - halfArrowWidth, yt);\r\n var arrowBaseLeft = max(arrowX - halfArrowWidth, xl);\r\n cornerRadius = Math.min(width / 2, height / 2, cornerRadius);\r\n var points;\r\n leftTopCorner[1] += cornerRadius;\r\n rightTopCorner[0] -= cornerRadius;\r\n rightBottomCorner[1] -= cornerRadius;\r\n leftBottomCorner[0] += cornerRadius;\r\n if (!bounded || xl <= anchorX && anchorX <= xr && yt <= anchorY && anchorY <= yb) {\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else if (anchorX > xr && anchorY < yt) {\r\n var arrowAngle = arrowWidth / cornerRadius || 0;\r\n var angle = PI / 4 + arrowAngle / 2;\r\n var endAngle = PI / 4 - arrowAngle / 2;\r\n var arrowEndPointX = rightTopCorner[0] + cos(endAngle) * cornerRadius;\r\n var arrowEndPointY = rightTopCorner[1] + (1 - sin(endAngle)) * cornerRadius;\r\n var arrowArc = buildPath(\"L\", rightTopCorner, getArc(cornerRadius, cos(angle), 1 - sin(angle)), \"L\", [anchorX, anchorY, arrowEndPointX, arrowEndPointY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius));\r\n if (Math.abs(angle) > PI / 2) {\r\n arrowArc = buildPath(\"L\", [arrowBaseLeft, yt, anchorX, anchorY, xr, arrowBaseBottom])\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), arrowArc, \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else if (anchorX > xr && anchorY >= yt && anchorY <= yb) {\r\n var _arrowArc;\r\n if (arrowBaseTop >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n var arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _angle = arrowWidthRest / cornerRadius;\r\n var arrowBaseTopX = rightTopCorner[0] + cos(_angle) * cornerRadius;\r\n var arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle)) * cornerRadius;\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle), 1 - sin(_angle)), \"L\", [arrowBaseTopX, arrowBaseTopY, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom < rightTopCorner[1] + cornerRadius) {\r\n var _arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _arrowAngle = _arrowWidthRest / cornerRadius;\r\n var _angle2 = _arrowAngle;\r\n var _arrowBaseTopX = rightTopCorner[0] + cos(_angle2) * cornerRadius;\r\n var _arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle2)) * cornerRadius;\r\n var bottomAngle = Math.sin((rightTopCorner[1] + cornerRadius - arrowBaseBottom) / cornerRadius);\r\n var arrowBaseBottomX = rightTopCorner[0] + cornerRadius * cos(bottomAngle);\r\n var arrowBaseBottomY = rightTopCorner[1] + cornerRadius * (1 - sin(bottomAngle));\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle2), 1 - sin(_angle2)), \"L\", [_arrowBaseTopX, _arrowBaseTopY, anchorX, anchorY, arrowBaseBottomX, arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop <= rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightBottomCorner[1]) {\r\n var topAngle = asin((rightTopCorner[1] + cornerRadius - arrowBaseTop) / cornerRadius);\r\n var _arrowBaseTopX2 = rightTopCorner[0] + cornerRadius * cos(topAngle);\r\n var _arrowBaseTopY2 = rightTopCorner[1] + cornerRadius * (1 - sin(topAngle));\r\n var _bottomAngle = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle) - 1);\r\n var _arrowBaseBottomY = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(topAngle), 1 - sin(topAngle)), \"L\", [_arrowBaseTopX2, _arrowBaseTopY2, anchorX, anchorY, _arrowBaseBottomX, _arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseTop <= rightBottomCorner[1] && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle2 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX2 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle2) - 1);\r\n var _arrowBaseBottomY2 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle2);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, _arrowBaseBottomX2, _arrowBaseBottomY2], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle3 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX3 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle3) - 1);\r\n var _arrowBaseBottomY3 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle3);\r\n var _topAngle = asin((arrowBaseTop - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseTopX3 = rightBottomCorner[0] + cornerRadius * (cos(_topAngle) - 1);\r\n var _arrowBaseTopY3 = rightBottomCorner[1] + cornerRadius * sin(_topAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, cos(_topAngle) - 1, sin(_topAngle)), \"L\", [_arrowBaseTopX3, _arrowBaseTopY3, anchorX, anchorY, _arrowBaseBottomX3, _arrowBaseBottomY3], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, _arrowArc, \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n }\r\n return buildPath(\"M\", points, \"Z\")\r\n}\r\nexport class Plaque {\r\n constructor(options, widget, root, contentTemplate) {\r\n var bounded = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : true;\r\n var measureContent = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : (_, g) => g.getBBox();\r\n var moveContentGroup = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : (_, g, x, y) => g.move(x, y);\r\n this.widget = widget;\r\n this.options = options;\r\n this.root = root;\r\n this.contentTemplate = contentTemplate;\r\n this.bonded = bounded;\r\n this.measureContent = measureContent;\r\n this.moveContentGroup = moveContentGroup\r\n }\r\n draw(_ref4) {\r\n var {\r\n x: anchorX,\r\n y: anchorY,\r\n canvas: canvas = {},\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n offset: offset = 0\r\n } = _ref4, restProps = _objectWithoutPropertiesLoose(_ref4, _excluded);\r\n var options = this.options;\r\n var {\r\n x: x,\r\n y: y\r\n } = options;\r\n var bounds_xl = canvas.left,\r\n bounds_xr = canvas.width - canvas.right,\r\n bounds_width = canvas.width - canvas.right - canvas.left,\r\n bounds_yt = canvas.top,\r\n bounds_yb = canvas.height - canvas.bottom,\r\n bounds_height = canvas.height - canvas.bottom - canvas.top;\r\n if (!(isDefined(anchorX) && isDefined(anchorY)) && !(isDefined(x) && isDefined(y))) {\r\n return false\r\n }\r\n if (isDefined(anchorX) && (anchorX < bounds_xl || bounds_xr < anchorX || anchorY < bounds_yt || bounds_yb < anchorY)) {\r\n return false\r\n }\r\n if (!this._root) {\r\n this._draw()\r\n }\r\n var shadowSettings = extend({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var contentWidth = options.width > 0 ? options.width : null;\r\n var contentHeight = options.height > 0 ? options.height : null;\r\n var onRender = () => {\r\n var _this$_root;\r\n var bBox = this._contentBBox = this.measureContent(this.widget, this._contentGroup);\r\n var size = this._size = {\r\n width: max(contentWidth, bBox.width) + 2 * options.paddingLeftRight,\r\n height: max(contentHeight, bBox.height) + 2 * options.paddingTopBottom,\r\n offset: offset\r\n };\r\n var xOff = shadowSettings.offsetX;\r\n var yOff = shadowSettings.offsetY;\r\n var blur = 2 * shadowSettings.blur + 1;\r\n var lm = max(blur - xOff, 0);\r\n var rm = max(blur + xOff, 0);\r\n var tm = max(blur - yOff, 0);\r\n var bm = max(blur + yOff, 0);\r\n this.margins = {\r\n lm: lm,\r\n rm: rm,\r\n tm: tm,\r\n bm: bm\r\n };\r\n if (!isDefined(x)) {\r\n if (isDefined(offsetX)) {\r\n x = anchorX + offsetX\r\n } else if (bounds_width < size.width) {\r\n x = round(bounds_xl + bounds_width / 2)\r\n } else {\r\n x = min(max(anchorX, Math.ceil(bounds_xl + size.width / 2 + lm)), Math.floor(bounds_xr - size.width / 2 - rm))\r\n }\r\n } else {\r\n x += offsetX || 0;\r\n if (!isDefined(anchorX)) {\r\n anchorX = x\r\n }\r\n }\r\n if (!isDefined(y)) {\r\n if (isDefined(offsetY)) {\r\n y = anchorY + offsetY\r\n } else {\r\n var y_top = anchorY - options.arrowLength - size.height / 2 - offset;\r\n var y_bottom = anchorY + options.arrowLength + size.height / 2 + offset;\r\n if (bounds_height < size.height + options.arrowLength) {\r\n y = round(bounds_yt + size.height / 2)\r\n } else if (y_top - size.height / 2 - tm < bounds_yt) {\r\n if (y_bottom + size.height / 2 + bm < bounds_yb) {\r\n y = y_bottom;\r\n anchorY += offset\r\n } else {\r\n y = round(bounds_yt + size.height / 2)\r\n }\r\n } else {\r\n y = y_top;\r\n anchorY -= offset\r\n }\r\n }\r\n } else {\r\n y += offsetY || 0;\r\n if (!isDefined(anchorY)) {\r\n anchorY = y + size.height / 2\r\n }\r\n }\r\n this.anchorX = anchorX;\r\n this.anchorY = anchorY;\r\n this.move(x, y);\r\n null === (_this$_root = this._root) || void 0 === _this$_root ? void 0 : _this$_root.append(this.root)\r\n };\r\n if (this.contentTemplate.render) {\r\n this.contentTemplate.render({\r\n model: options,\r\n container: this._contentGroup.element,\r\n onRendered: onRender\r\n })\r\n } else {\r\n return this.contentTemplate(_extends({\r\n group: this._contentGroup,\r\n onRender: onRender\r\n }, restProps))\r\n }\r\n return true\r\n }\r\n _draw() {\r\n var renderer = this.widget._renderer;\r\n var options = this.options;\r\n var shadowSettings = extend({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var shadow = this._shadow = renderer.shadowFilter().attr(shadowSettings);\r\n var cloudSettings = {\r\n opacity: options.opacity,\r\n \"stroke-width\": 0,\r\n fill: options.color\r\n };\r\n var borderOptions = options.border || {};\r\n if (borderOptions.visible) {\r\n extend(cloudSettings, {\r\n \"stroke-width\": borderOptions.width,\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n dashStyle: borderOptions.dashStyle\r\n })\r\n }\r\n var group = this._root = renderer.g().append(this.root);\r\n if (options.type) {\r\n group.attr({\r\n class: \"dxc-\".concat(options.type, \"-annotation\")\r\n })\r\n }\r\n var cloudGroup = renderer.g().attr({\r\n filter: shadow.id\r\n }).append(group);\r\n this._cloud = renderer.path([], \"area\").attr(cloudSettings).sharp().append(cloudGroup);\r\n this._contentGroup = renderer.g().append(group)\r\n }\r\n getBBox() {\r\n var size = this._size || {};\r\n var margins = this.margins || {};\r\n var rotationAngle = getCloudAngle(size, this.x, this.y, this.anchorX, this.anchorY);\r\n return {\r\n x: Math.floor(this.x - size.width / 2 - margins.lm),\r\n y: Math.floor(this.y - size.height / 2 - margins.tm - (270 === rotationAngle ? this.options.arrowLength : 0)),\r\n width: size.width + margins.lm + margins.rm,\r\n height: size.height + margins.tm + margins.bm + (90 === rotationAngle || 270 === rotationAngle ? this.options.arrowLength : 0)\r\n }\r\n }\r\n clear() {\r\n if (this._root) {\r\n this._root.remove();\r\n this._shadow.remove();\r\n this._root = null\r\n }\r\n return this\r\n }\r\n customizeCloud(attr) {\r\n if (this._cloud) {\r\n this._cloud.attr(attr)\r\n }\r\n }\r\n moveRoot(x, y) {\r\n if (this._root) {\r\n this._root.move(x, y)\r\n }\r\n }\r\n move(x, y) {\r\n x = round(x);\r\n y = round(y);\r\n this.x = x;\r\n this.y = y;\r\n var rotationAngle = getCloudAngle(this._size, x, y, this.anchorX, this.anchorY);\r\n var radRotationAngle = rotationAngle * PI / 180;\r\n this._cloud.attr({\r\n d: getCloudPoints(rotateSize(this._size, rotationAngle), x, y, rotateX(this.anchorX, this.anchorY, radRotationAngle, x, y), rotateY(this.anchorX, this.anchorY, radRotationAngle, x, y), this.options, this.bonded)\r\n }).rotate(rotationAngle, x, y);\r\n this.moveContentGroup(this.widget, this._contentGroup, x - this._contentBBox.x - this._contentBBox.width / 2, y - this._contentBBox.y - this._contentBBox.height / 2)\r\n }\r\n hitTest(x, y) {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._size || {};\r\n return Math.abs(x - this.x) <= width / 2 && Math.abs(y - this.y) <= height / 2\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n replaceWith\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Renderer\r\n} from \"./renderers/renderer\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions,\r\n normalizeEnum\r\n} from \"./utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n Plaque\r\n} from \"./plaque\";\r\nvar format = formatHelper.format;\r\nvar mathCeil = Math.ceil;\r\nvar mathMax = Math.max;\r\nvar mathMin = Math.min;\r\nvar window = getWindow();\r\nvar DEFAULT_HTML_GROUP_WIDTH = 3e3;\r\n\r\nfunction hideElement($element) {\r\n $element.css({\r\n left: \"-9999px\"\r\n }).detach()\r\n}\r\n\r\nfunction getSpecialFormatOptions(options, specialFormat) {\r\n var result = options;\r\n switch (specialFormat) {\r\n case \"argument\":\r\n result = {\r\n format: options.argumentFormat\r\n };\r\n break;\r\n case \"percent\":\r\n result = {\r\n format: {\r\n type: \"percent\",\r\n precision: options.format && options.format.percentPrecision\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createTextHtml() {\r\n return $(\"<div>\").css({\r\n position: \"relative\",\r\n display: \"inline-block\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n })\r\n}\r\n\r\nfunction removeElements(elements) {\r\n elements.forEach(el => el.remove())\r\n}\r\nexport var Tooltip = function(params) {\r\n this._eventTrigger = params.eventTrigger;\r\n this._widgetRoot = params.widgetRoot;\r\n this._widget = params.widget;\r\n this._textHtmlContainers = [];\r\n this._wrapper = $(\"<div>\").css({\r\n position: \"absolute\",\r\n overflow: \"hidden\",\r\n pointerEvents: \"none\"\r\n }).addClass(params.cssClass);\r\n var renderer = this._renderer = new Renderer({\r\n pathModified: params.pathModified,\r\n container: this._wrapper[0]\r\n });\r\n var root = renderer.root;\r\n root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n this._text = renderer.text(void 0, 0, 0);\r\n this._textGroupHtml = $(\"<div>\").css({\r\n position: \"absolute\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n }).appendTo(this._wrapper);\r\n this._textHtml = createTextHtml().appendTo(this._textGroupHtml)\r\n};\r\nTooltip.prototype = {\r\n constructor: Tooltip,\r\n dispose: function() {\r\n this._wrapper.remove();\r\n this._renderer.dispose();\r\n this._options = this._widgetRoot = null\r\n },\r\n _getContainer: function() {\r\n var options = this._options;\r\n var container = $(this._widgetRoot).closest(options.container);\r\n if (0 === container.length) {\r\n container = $(options.container)\r\n }\r\n return (container.length ? container : $(\"body\")).get(0)\r\n },\r\n setTemplate(contentTemplate) {\r\n this._template = contentTemplate ? this._widget._getTemplate(contentTemplate) : null\r\n },\r\n setOptions: function(options) {\r\n options = options || {};\r\n var that = this;\r\n that._options = options;\r\n that._textFontStyles = patchFontOptions(options.font);\r\n that._textFontStyles.color = that._textFontStyles.fill;\r\n that._wrapper.css({\r\n zIndex: options.zIndex\r\n });\r\n that._customizeTooltip = options.customizeTooltip;\r\n var textGroupHtml = that._textGroupHtml;\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.setTemplate(options.contentTemplate);\r\n var pointerEvents = options.interactive ? \"auto\" : \"none\";\r\n if (options.interactive) {\r\n this._renderer.root.css({\r\n \"-moz-user-select\": \"auto\",\r\n \"-webkit-user-select\": \"auto\"\r\n })\r\n }\r\n this.plaque = new Plaque({\r\n opacity: that._options.opacity,\r\n color: that._options.color,\r\n border: that._options.border,\r\n paddingLeftRight: that._options.paddingLeftRight,\r\n paddingTopBottom: that._options.paddingTopBottom,\r\n arrowLength: that._options.arrowLength,\r\n arrowWidth: 20,\r\n shadow: that._options.shadow,\r\n cornerRadius: that._options.cornerRadius\r\n }, that, that._renderer.root, _ref => {\r\n var {\r\n group: group,\r\n onRender: onRender,\r\n eventData: eventData,\r\n isMoving: isMoving,\r\n templateCallback: templateCallback = (() => {})\r\n } = _ref;\r\n var state = that._state;\r\n if (!isMoving) {\r\n var template = that._template;\r\n var useTemplate = template && !state.formatObject.skipTemplate;\r\n if (state.html || useTemplate) {\r\n textGroupHtml.css({\r\n color: state.textColor,\r\n width: DEFAULT_HTML_GROUP_WIDTH,\r\n pointerEvents: pointerEvents\r\n });\r\n if (useTemplate) {\r\n var htmlContainers = that._textHtmlContainers;\r\n var containerToTemplateRender = createTextHtml().appendTo(that._textGroupHtml);\r\n htmlContainers.push(containerToTemplateRender);\r\n template.render({\r\n model: state.formatObject,\r\n container: containerToTemplateRender,\r\n onRendered: () => {\r\n removeElements(htmlContainers.splice(0, htmlContainers.length - 1));\r\n that._textHtml = replaceWith(that._textHtml, containerToTemplateRender);\r\n state.html = that._textHtml.html();\r\n if (0 === getWidth(that._textHtml) && 0 === getHeight(that._textHtml)) {\r\n this.plaque.clear();\r\n templateCallback(false);\r\n return\r\n }\r\n onRender();\r\n that._riseEvents(eventData);\r\n that._moveWrapper();\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n });\r\n templateCallback(true);\r\n that._textHtmlContainers = []\r\n }\r\n });\r\n return\r\n } else {\r\n that._text.attr({\r\n text: \"\"\r\n });\r\n that._textHtml.html(state.html)\r\n }\r\n } else {\r\n that._text.css({\r\n fill: state.textColor\r\n }).attr({\r\n text: state.text,\r\n class: options.cssClass,\r\n \"pointer-events\": pointerEvents\r\n }).append(group.attr({\r\n align: options.textAlignment\r\n }))\r\n }\r\n that._riseEvents(eventData);\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n })\r\n }\r\n onRender();\r\n that._moveWrapper();\r\n return true\r\n }, true, (tooltip, g) => {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n var bBox = window.getComputedStyle(that._textHtml.get(0));\r\n bBox = {\r\n x: 0,\r\n y: 0,\r\n width: mathCeil(parseFloat(bBox.width)),\r\n height: mathCeil(parseFloat(bBox.height))\r\n };\r\n return bBox\r\n }\r\n return g.getBBox()\r\n }, (tooltip, g, x, y) => {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n that._textGroupHtml.css({\r\n left: x,\r\n top: y\r\n })\r\n } else {\r\n g.move(x, y)\r\n }\r\n });\r\n return that\r\n },\r\n _riseEvents: function(eventData) {\r\n this._eventData && this._eventTrigger(\"tooltipHidden\", this._eventData);\r\n this._eventData = eventData;\r\n this._eventTrigger(\"tooltipShown\", this._eventData)\r\n },\r\n setRendererOptions: function(options) {\r\n this._renderer.setOptions(options);\r\n this._textGroupHtml.css({\r\n direction: options.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n update: function(options) {\r\n this.setOptions(options);\r\n hideElement(this._wrapper);\r\n var normalizedCSS = {};\r\n for (var name in this._textFontStyles) {\r\n normalizedCSS[camelize(name)] = this._textFontStyles[name]\r\n }\r\n this._textGroupHtml.css(normalizedCSS);\r\n this._text.css(this._textFontStyles);\r\n this._eventData = null;\r\n return this\r\n },\r\n _prepare: function(formatObject, state) {\r\n var customizeTooltip = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this._customizeTooltip;\r\n var options = this._options;\r\n var customize = {};\r\n if (isFunction(customizeTooltip)) {\r\n customize = customizeTooltip.call(formatObject, formatObject);\r\n customize = isPlainObject(customize) ? customize : {};\r\n if (\"text\" in customize) {\r\n state.text = isDefined(customize.text) ? String(customize.text) : \"\"\r\n }\r\n if (\"html\" in customize) {\r\n state.html = isDefined(customize.html) ? String(customize.html) : \"\"\r\n }\r\n }\r\n if (!(\"text\" in state) && !(\"html\" in state)) {\r\n state.text = formatObject.valueText || formatObject.description || \"\"\r\n }\r\n state.color = customize.color || options.color;\r\n state.borderColor = customize.borderColor || (options.border || {}).color;\r\n state.textColor = customize.fontColor || (this._textFontStyles || {}).color;\r\n return !!state.text || !!state.html || !!this._template\r\n },\r\n show: function(formatObject, params, eventData, customizeTooltip, templateCallback) {\r\n if (this._options.forceEvents) {\r\n eventData.x = params.x;\r\n eventData.y = params.y - params.offset;\r\n this._riseEvents(eventData);\r\n return true\r\n }\r\n var state = {\r\n formatObject: formatObject,\r\n eventData: eventData,\r\n templateCallback: templateCallback\r\n };\r\n if (!this._prepare(formatObject, state, customizeTooltip)) {\r\n return false\r\n }\r\n this._state = state;\r\n this._wrapper.appendTo(this._getContainer());\r\n this._clear();\r\n var parameters = extend({}, this._options, {\r\n canvas: this._getCanvas()\r\n }, state, {\r\n x: params.x,\r\n y: params.y,\r\n offset: params.offset\r\n });\r\n return this.plaque.clear().draw(parameters)\r\n },\r\n isCursorOnTooltip: function(x, y) {\r\n if (this._options.interactive) {\r\n var box = this.plaque.getBBox();\r\n return x > box.x && x < box.x + box.width && y > box.y && y < box.y + box.height\r\n }\r\n return false\r\n },\r\n hide: function(isPointerOut) {\r\n hideElement(this._wrapper);\r\n if (this._eventData) {\r\n this._eventTrigger(\"tooltipHidden\", this._options.forceEvents ? extend({\r\n isPointerOut: isPointerOut\r\n }, this._eventData) : this._eventData);\r\n this._clear();\r\n this._eventData = null\r\n }\r\n },\r\n _clear() {\r\n this._textHtml.empty()\r\n },\r\n move: function(x, y, offset) {\r\n this.plaque.draw({\r\n x: x,\r\n y: y,\r\n offset: offset,\r\n canvas: this._getCanvas(),\r\n isMoving: true\r\n })\r\n },\r\n _moveWrapper: function() {\r\n var plaqueBBox = this.plaque.getBBox();\r\n this._renderer.resize(plaqueBBox.width, plaqueBBox.height);\r\n var offset = this._wrapper.css({\r\n left: 0,\r\n top: 0\r\n }).offset();\r\n var left = plaqueBBox.x;\r\n var top = plaqueBBox.y;\r\n this._wrapper.css({\r\n left: left - offset.left,\r\n top: top - offset.top\r\n });\r\n this.plaque.moveRoot(-left, -top);\r\n if (this._state.html) {\r\n this._textHtml.css({\r\n left: -left,\r\n top: -top\r\n });\r\n this._textGroupHtml.css({\r\n width: mathCeil(getWidth(this._textHtml))\r\n })\r\n }\r\n },\r\n formatValue: function(value, _specialFormat) {\r\n var options = _specialFormat ? getSpecialFormatOptions(this._options, _specialFormat) : this._options;\r\n return format(value, options.format)\r\n },\r\n getOptions() {\r\n return this._options\r\n },\r\n getLocation: function() {\r\n return normalizeEnum(this._options.location)\r\n },\r\n isEnabled: function() {\r\n return !!this._options.enabled || !!this._options.forceEvents\r\n },\r\n isShared: function() {\r\n return !!this._options.shared\r\n },\r\n _getCanvas: function() {\r\n var container = this._getContainer();\r\n var containerBox = container.getBoundingClientRect();\r\n var html = domAdapter.getDocumentElement();\r\n var document = domAdapter.getDocument();\r\n var left = window.pageXOffset || html.scrollLeft || 0;\r\n var top = window.pageYOffset || html.scrollTop || 0;\r\n var box = {\r\n left: left,\r\n top: top,\r\n width: mathMax(html.clientWidth, document.body.clientWidth) + left,\r\n height: mathMax(document.body.scrollHeight, html.scrollHeight, document.body.offsetHeight, html.offsetHeight, document.body.clientHeight, html.clientHeight),\r\n right: 0,\r\n bottom: 0\r\n };\r\n if (container !== domAdapter.getBody()) {\r\n left = mathMax(box.left, box.left + containerBox.left);\r\n top = mathMax(box.top, box.top + containerBox.top);\r\n box.width = mathMin(containerBox.width, box.width) + left + box.left;\r\n box.height = mathMin(containerBox.height, box.height) + top + box.top;\r\n box.left = left;\r\n box.top = top\r\n }\r\n return box\r\n }\r\n};\r\nexport var plugin = {\r\n name: \"tooltip\",\r\n init: function() {\r\n this._initTooltip()\r\n },\r\n dispose: function() {\r\n this._disposeTooltip()\r\n },\r\n members: {\r\n _initTooltip: function() {\r\n this._tooltip = new Tooltip({\r\n cssClass: this._rootClassPrefix + \"-tooltip\",\r\n eventTrigger: this._eventTrigger,\r\n pathModified: this.option(\"pathModified\"),\r\n widgetRoot: this.element(),\r\n widget: this\r\n })\r\n },\r\n _disposeTooltip: function() {\r\n this._tooltip.dispose();\r\n this._tooltip = null\r\n },\r\n _setTooltipRendererOptions: function() {\r\n this._tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n _setTooltipOptions: function() {\r\n this._tooltip.update(this._getOption(\"tooltip\"))\r\n }\r\n },\r\n extenders: {\r\n _stopCurrentHandling() {\r\n this._tooltip && this._tooltip.hide()\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n proto._eventsMap.onTooltipShown = {\r\n name: \"tooltipShown\"\r\n };\r\n proto._eventsMap.onTooltipHidden = {\r\n name: \"tooltipHidden\"\r\n };\r\n constructor.addChange({\r\n code: \"TOOLTIP_RENDERER\",\r\n handler: function() {\r\n this._setTooltipRendererOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n });\r\n constructor.addChange({\r\n code: \"TOOLTIP\",\r\n handler: function() {\r\n this._setTooltipOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"tooltip\"\r\n })\r\n },\r\n fontFields: [\"tooltip.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./localization/core\";\r\nimport message from \"./localization/message\";\r\nimport number from \"./localization/number\";\r\nimport date from \"./localization/date\";\r\nimport \"./localization/currency\";\r\nexport var locale = core.locale.bind(core);\r\nexport var loadMessages = message.load.bind(message);\r\nexport var formatMessage = message.format.bind(message);\r\nexport var formatNumber = number.format.bind(number);\r\nexport var parseNumber = number.parse.bind(number);\r\nexport var formatDate = date.format.bind(date);\r\nexport var parseDate = date.parse.bind(date);\r\nexport {\r\n message,\r\n number,\r\n date\r\n};\r\nexport function disableIntl() {\r\n if (\"intl\" === number.engine()) {\r\n number.resetInjection()\r\n }\r\n if (\"intl\" === date.engine()) {\r\n date.resetInjection()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/series/helpers/display_format_parser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n formatDate,\r\n formatNumber\r\n} from \"../../../localization\";\r\nvar startPlaceHolderChar = \"{\";\r\nvar endPlaceHolderChar = \"}\";\r\nvar placeholderFormatDelimiter = \":\";\r\n\r\nfunction formatValue(value, format) {\r\n if (format) {\r\n if (value instanceof Date) {\r\n return formatDate(value, format)\r\n }\r\n if (\"number\" === typeof value) {\r\n return formatNumber(value, format)\r\n }\r\n }\r\n return value\r\n}\r\n\r\nfunction getValueByPlaceHolder(placeHolder, pointInfo) {\r\n var customFormat = \"\";\r\n var customFormatIndex = placeHolder.indexOf(placeholderFormatDelimiter);\r\n if (customFormatIndex > 0) {\r\n customFormat = placeHolder.substr(customFormatIndex + 1);\r\n placeHolder = placeHolder.substr(0, customFormatIndex)\r\n }\r\n return formatValue(pointInfo[placeHolder], customFormat)\r\n}\r\nexport function processDisplayFormat(displayFormat, pointInfo) {\r\n var actualText = displayFormat;\r\n var continueProcess = true;\r\n while (continueProcess) {\r\n var startBracketIndex = actualText.indexOf(startPlaceHolderChar);\r\n var endBracketIndex = actualText.indexOf(endPlaceHolderChar);\r\n if (startBracketIndex >= 0 && endBracketIndex > 0) {\r\n var placeHolder = actualText.substring(startBracketIndex + 1, endBracketIndex);\r\n var value = getValueByPlaceHolder(placeHolder, pointInfo);\r\n actualText = actualText.substr(0, startBracketIndex) + value + actualText.substr(endBracketIndex + 1)\r\n } else {\r\n continueProcess = false\r\n }\r\n }\r\n return actualText\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/series/points/label.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport formatHelper from \"../../../format_helper\";\r\nimport {\r\n degreesToRadians as _degreesToRadians,\r\n patchFontOptions as _patchFontOptions,\r\n getCosAndSin as _getCosAndSin,\r\n rotateBBox as _rotateBBox\r\n} from \"../../core/utils\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n processDisplayFormat\r\n} from \"../helpers/display_format_parser\";\r\nvar _format = formatHelper.format;\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _floor = _math.floor;\r\nvar _abs = _math.abs;\r\nvar CONNECTOR_LENGTH = 12;\r\nvar LABEL_BACKGROUND_PADDING_X = 8;\r\nvar LABEL_BACKGROUND_PADDING_Y = 4;\r\n\r\nfunction getClosestCoord(point, coords) {\r\n var closestDistance = 1 / 0;\r\n var closestCoord;\r\n each(coords, (function(_, coord) {\r\n var x = point[0] - coord[0];\r\n var y = point[1] - coord[1];\r\n var distance = x * x + y * y;\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestCoord = coord\r\n }\r\n }));\r\n return [_floor(closestCoord[0]), _floor(closestCoord[1])]\r\n}\r\n\r\nfunction getCrossCoord(rect, coord, indexOffset) {\r\n return (coord - rect[0 + indexOffset]) / (rect[2 + indexOffset] - rect[0 + indexOffset]) * (rect[3 - indexOffset] - rect[1 - indexOffset]) + rect[1 - indexOffset]\r\n}\r\nvar barPointStrategy = {\r\n isLabelInside: function(labelPoint, figure) {\r\n var xc = labelPoint.x + labelPoint.width / 2;\r\n var yc = labelPoint.y + labelPoint.height / 2;\r\n return figure.x <= xc && xc <= figure.x + figure.width && figure.y <= yc && yc <= figure.y + figure.height\r\n },\r\n prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle, figureCenter) {\r\n var x1 = rotatedBBox.x;\r\n var xc = x1 + rotatedBBox.width / 2;\r\n var x2 = x1 + rotatedBBox.width - 1;\r\n var y1 = rotatedBBox.y;\r\n var yc = y1 + rotatedBBox.height / 2;\r\n var y2 = y1 + rotatedBBox.height - 1;\r\n var labelPoints;\r\n var isRectangular = _abs(angle) % 90 === 0;\r\n if (figureCenter[0] > x1 && figureCenter[0] < x2) {\r\n if (isRectangular) {\r\n labelPoints = [\r\n [figureCenter[0], _abs(figureCenter[1] - y1) < _abs(figureCenter[1] - y2) ? y1 : y2]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [figureCenter[0], getCrossCoord([x1, y1, x2, y2], figureCenter[0], 0)]\r\n ]\r\n }\r\n } else if (figureCenter[1] > y1 && figureCenter[1] < y2) {\r\n if (isRectangular) {\r\n labelPoints = [\r\n [_abs(figureCenter[0] - x1) < _abs(figureCenter[0] - x2) ? x1 : x2, figureCenter[1]]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [getCrossCoord([x1, y1, x2, y2], figureCenter[1], 1), figureCenter[1]]\r\n ]\r\n }\r\n } else if (isRectangular) {\r\n labelPoints = [\r\n [x1, y1],\r\n [isHorizontal ? x1 : xc, isHorizontal ? yc : y1],\r\n [x2, y1],\r\n [x1, y2],\r\n [isHorizontal ? x2 : xc, isHorizontal ? yc : y2],\r\n [x2, y2]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [xc, yc]\r\n ]\r\n }\r\n return labelPoints\r\n },\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x + figure.width || bBox.x + bBox.width < figure.x\r\n },\r\n getFigureCenter: function(figure) {\r\n return [_floor(figure.x + figure.width / 2), _floor(figure.y + figure.height / 2)]\r\n },\r\n findFigurePoint: function(figure, labelPoint) {\r\n var figureCenter = barPointStrategy.getFigureCenter(figure);\r\n var point = getClosestCoord(labelPoint, [\r\n [figure.x, figureCenter[1]],\r\n [figureCenter[0], figure.y + figure.height],\r\n [figure.x + figure.width, figureCenter[1]],\r\n [figureCenter[0], figure.y]\r\n ]);\r\n return point\r\n },\r\n adjustPoints: function(points) {\r\n var lineIsVertical = _abs(points[1] - points[3]) <= 1;\r\n var lineIsHorizontal = _abs(points[0] - points[2]) <= 1;\r\n if (lineIsHorizontal) {\r\n points[0] = points[2]\r\n }\r\n if (lineIsVertical) {\r\n points[1] = points[3]\r\n }\r\n return points\r\n }\r\n};\r\nvar symbolPointStrategy = {\r\n isLabelInside: function() {\r\n return false\r\n },\r\n prepareLabelPoints: barPointStrategy.prepareLabelPoints,\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x + figure.r || bBox.x + bBox.width < figure.x - figure.r\r\n },\r\n getFigureCenter: function(figure) {\r\n return [figure.x, figure.y]\r\n },\r\n findFigurePoint: function(figure, labelPoint) {\r\n var angle = Math.atan2(figure.y - labelPoint[1], labelPoint[0] - figure.x);\r\n return [_round(figure.x + figure.r * Math.cos(angle)), _round(figure.y - figure.r * Math.sin(angle))]\r\n },\r\n adjustPoints: barPointStrategy.adjustPoints\r\n};\r\nvar piePointStrategy = {\r\n isLabelInside: function(_0, _1, isOutside) {\r\n return !isOutside\r\n },\r\n prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle) {\r\n var xl = bBox.x;\r\n var xr = xl + bBox.width;\r\n var xc = xl + _round(bBox.width / 2);\r\n var yt = bBox.y;\r\n var yb = yt + bBox.height;\r\n var yc = yt + _round(bBox.height / 2);\r\n var points = [\r\n [\r\n [xl, yt],\r\n [xr, yt]\r\n ],\r\n [\r\n [xr, yt],\r\n [xr, yb]\r\n ],\r\n [\r\n [xr, yb],\r\n [xl, yb]\r\n ],\r\n [\r\n [xl, yb],\r\n [xl, yt]\r\n ]\r\n ];\r\n var cosSin = _getCosAndSin(angle);\r\n if (0 === angle) {\r\n points = isHorizontal ? [\r\n [xl, yc],\r\n [xr, yc]\r\n ] : [\r\n [xc, yt],\r\n [xc, yb]\r\n ]\r\n } else {\r\n points = points.map((function(pair) {\r\n return pair.map((function(point) {\r\n return [_round((point[0] - xc) * cosSin.cos + (point[1] - yc) * cosSin.sin + xc), _round(-(point[0] - xc) * cosSin.sin + (point[1] - yc) * cosSin.cos + yc)]\r\n }))\r\n })).reduce((function(r, pair) {\r\n var point1x = pair[0][0];\r\n var point1y = pair[0][1];\r\n var point2x = pair[1][0];\r\n var point2y = pair[1][1];\r\n if (isHorizontal) {\r\n if (point1y >= yc && yc >= point2y || point1y <= yc && yc <= point2y) {\r\n r.push([(yc - point1y) * (point2x - point1x) / (point2y - point1y) + point1x, yc])\r\n }\r\n } else if (point1x >= xc && xc >= point2x || point1x <= xc && xc <= point2x) {\r\n r.push([xc, (xc - point1x) * (point2y - point1y) / (point2x - point1x) + point1y])\r\n }\r\n return r\r\n }), [])\r\n }\r\n return points\r\n },\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x || figure.x > bBox.x + bBox.width\r\n },\r\n getFigureCenter: symbolPointStrategy.getFigureCenter,\r\n findFigurePoint: function(figure, labelPoint, isHorizontal) {\r\n if (!isHorizontal) {\r\n return [figure.x, figure.y]\r\n }\r\n var labelX = labelPoint[0];\r\n var x = _round(figure.x + (figure.y - labelPoint[1]) / Math.tan(_degreesToRadians(figure.angle)));\r\n var points = [figure.x, figure.y, x, labelPoint[1]];\r\n if (!(figure.x <= x && x <= labelX) && !(labelX <= x && x <= figure.x)) {\r\n if (_abs(figure.x - labelX) < CONNECTOR_LENGTH) {\r\n points = [figure.x, figure.y]\r\n } else if (figure.x <= labelX) {\r\n points[2] = figure.x + CONNECTOR_LENGTH\r\n } else {\r\n points[2] = figure.x - CONNECTOR_LENGTH\r\n }\r\n }\r\n return points\r\n },\r\n adjustPoints: function(points) {\r\n return points\r\n }\r\n};\r\n\r\nfunction selectStrategy(figure) {\r\n return void 0 !== figure.angle && piePointStrategy || void 0 !== figure.r && symbolPointStrategy || barPointStrategy\r\n}\r\n\r\nfunction disposeItem(obj, field) {\r\n obj[field] && obj[field].dispose();\r\n obj[field] = null\r\n}\r\n\r\nfunction checkBackground(background) {\r\n return background && (background.fill && \"none\" !== background.fill || background[\"stroke-width\"] > 0 && background.stroke && \"none\" !== background.stroke)\r\n}\r\n\r\nfunction checkConnector(connector) {\r\n return connector && connector[\"stroke-width\"] > 0 && connector.stroke && \"none\" !== connector.stroke\r\n}\r\n\r\nfunction formatText(data, options) {\r\n var format = options.format;\r\n data.valueText = _format(data.value, format);\r\n data.argumentText = _format(data.argument, options.argumentFormat);\r\n if (void 0 !== data.percent) {\r\n data.percentText = _format(data.percent, {\r\n type: \"percent\",\r\n precision: format && format.percentPrecision\r\n })\r\n }\r\n if (void 0 !== data.total) {\r\n data.totalText = _format(data.total, format)\r\n }\r\n if (void 0 !== data.openValue) {\r\n data.openValueText = _format(data.openValue, format)\r\n }\r\n if (void 0 !== data.closeValue) {\r\n data.closeValueText = _format(data.closeValue, format)\r\n }\r\n if (void 0 !== data.lowValue) {\r\n data.lowValueText = _format(data.lowValue, format)\r\n }\r\n if (void 0 !== data.highValue) {\r\n data.highValueText = _format(data.highValue, format)\r\n }\r\n if (void 0 !== data.reductionValue) {\r\n data.reductionValueText = _format(data.reductionValue, format)\r\n }\r\n return options.customizeText ? options.customizeText.call(data, data) : options.displayFormat ? processDisplayFormat(options.displayFormat, data) : data.valueText\r\n}\r\nexport function Label(renderSettings) {\r\n this._renderer = renderSettings.renderer;\r\n this._container = renderSettings.labelsGroup;\r\n this._point = renderSettings.point;\r\n this._strategy = renderSettings.strategy;\r\n this._rowCount = 1\r\n}\r\nLabel.prototype = {\r\n constructor: Label,\r\n setColor: function(color) {\r\n this._color = color\r\n },\r\n setOptions: function(options) {\r\n this._options = options\r\n },\r\n setData: function(data) {\r\n this._data = data\r\n },\r\n setDataField: function(fieldName, fieldValue) {\r\n this._data = this._data || {};\r\n this._data[fieldName] = fieldValue\r\n },\r\n getData: function() {\r\n return this._data\r\n },\r\n setFigureToDrawConnector: function(figure) {\r\n this._figure = figure\r\n },\r\n dispose: function() {\r\n disposeItem(this, \"_group\");\r\n this._data = this._options = this._textContent = this._visible = this._insideGroup = this._text = this._background = this._connector = this._figure = null\r\n },\r\n _setVisibility: function(value, state) {\r\n this._group && this._group.attr({\r\n visibility: value\r\n });\r\n this._visible = state\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n hide: function(holdInvisible) {\r\n this._holdVisibility = !!holdInvisible;\r\n this._hide()\r\n },\r\n _hide: function() {\r\n this._setVisibility(\"hidden\", false)\r\n },\r\n show: function(holdVisible) {\r\n var correctPosition = !this._drawn;\r\n if (this._point.hasValue()) {\r\n this._holdVisibility = !!holdVisible;\r\n this._show();\r\n correctPosition && this._point.correctLabelPosition(this)\r\n }\r\n },\r\n _show: function() {\r\n var renderer = this._renderer;\r\n var container = this._container;\r\n var options = this._options || {};\r\n var text = this._textContent = formatText(this._data, options) || null;\r\n if (text) {\r\n if (!this._group) {\r\n this._group = renderer.g().append(container);\r\n this._insideGroup = renderer.g().append(this._group);\r\n this._text = renderer.text(\"\", 0, 0).append(this._insideGroup)\r\n }\r\n this._text.css(options.attributes ? _patchFontOptions(options.attributes.font) : {});\r\n if (checkBackground(options.background)) {\r\n this._background = this._background || renderer.rect().append(this._insideGroup).toBackground();\r\n this._background.attr(options.background);\r\n this._color && this._background.attr({\r\n fill: this._color\r\n })\r\n } else {\r\n disposeItem(this, \"_background\")\r\n }\r\n if (checkConnector(options.connector)) {\r\n this._connector = this._connector || renderer.path([], \"line\").sharp().append(this._group).toBackground();\r\n this._connector.attr(options.connector);\r\n this._color && this._connector.attr({\r\n stroke: this._color\r\n })\r\n } else {\r\n disposeItem(this, \"_connector\")\r\n }\r\n this._text.attr({\r\n text: text,\r\n align: options.textAlignment,\r\n class: options.cssClass\r\n });\r\n this._updateBackground(this._text.getBBox());\r\n this._setVisibility(\"visible\", true);\r\n this._drawn = true\r\n } else {\r\n this._hide()\r\n }\r\n },\r\n _getLabelVisibility: function(isVisible) {\r\n return this._holdVisibility ? this.isVisible() : isVisible\r\n },\r\n draw: function(isVisible) {\r\n if (this._getLabelVisibility(isVisible)) {\r\n this._show();\r\n this._point && this._point.correctLabelPosition(this)\r\n } else {\r\n this._drawn = false;\r\n this._hide()\r\n }\r\n return this\r\n },\r\n _updateBackground: function(bBox) {\r\n if (this._background) {\r\n bBox.x -= LABEL_BACKGROUND_PADDING_X;\r\n bBox.y -= LABEL_BACKGROUND_PADDING_Y;\r\n bBox.width += 2 * LABEL_BACKGROUND_PADDING_X;\r\n bBox.height += 2 * LABEL_BACKGROUND_PADDING_Y;\r\n this._background.attr(bBox)\r\n }\r\n this._bBoxWithoutRotation = extend({}, bBox);\r\n var rotationAngle = this._options.rotationAngle || 0;\r\n this._insideGroup.rotate(rotationAngle, bBox.x + bBox.width / 2, bBox.y + bBox.height / 2);\r\n bBox = _rotateBBox(bBox, [bBox.x + bBox.width / 2, bBox.y + bBox.height / 2], -rotationAngle);\r\n this._bBox = bBox\r\n },\r\n getFigureCenter() {\r\n var figure = this._figure;\r\n var strategy = this._strategy || selectStrategy(figure);\r\n return strategy.getFigureCenter(figure)\r\n },\r\n _getConnectorPoints: function() {\r\n var figure = this._figure;\r\n var options = this._options;\r\n var strategy = this._strategy || selectStrategy(figure);\r\n var bBox = this._shiftBBox(this._bBoxWithoutRotation);\r\n var rotatedBBox = this.getBoundingRect();\r\n var labelPoint;\r\n var points = [];\r\n var isHorizontal;\r\n if (!strategy.isLabelInside(bBox, figure, \"inside\" !== options.position)) {\r\n isHorizontal = strategy.isHorizontal(bBox, figure);\r\n var figureCenter = this.getFigureCenter();\r\n points = strategy.prepareLabelPoints(bBox, rotatedBBox, isHorizontal, -options.rotationAngle || 0, figureCenter);\r\n labelPoint = getClosestCoord(figureCenter, points);\r\n points = strategy.findFigurePoint(figure, labelPoint, isHorizontal);\r\n points = points.concat(labelPoint)\r\n }\r\n return strategy.adjustPoints(points)\r\n },\r\n fit: function(maxWidth) {\r\n var padding = this._background ? 2 * LABEL_BACKGROUND_PADDING_X : 0;\r\n var rowCountChanged = false;\r\n if (this._text) {\r\n var result = this._text.setMaxSize(maxWidth - padding, void 0, this._options);\r\n var rowCount = result.rowCount;\r\n if (0 === rowCount) {\r\n rowCount = 1\r\n }\r\n if (rowCount !== this._rowCount) {\r\n rowCountChanged = true;\r\n this._rowCount = rowCount\r\n }\r\n result.textIsEmpty && disposeItem(this, \"_background\")\r\n }\r\n this._updateBackground(this._text.getBBox());\r\n return rowCountChanged\r\n },\r\n resetEllipsis: function() {\r\n this._text && this._text.restoreText();\r\n this._updateBackground(this._text.getBBox())\r\n },\r\n setTrackerData: function(point) {\r\n this._text.data({\r\n \"chart-data-point\": point\r\n });\r\n this._background && this._background.data({\r\n \"chart-data-point\": point\r\n })\r\n },\r\n hideInsideLabel: function(coords) {\r\n return this._point.hideInsideLabel(this, coords)\r\n },\r\n getPoint() {\r\n return this._point\r\n },\r\n shift: function(x, y) {\r\n if (this._textContent) {\r\n this._insideGroup.attr({\r\n translateX: this._x = _round(x - this._bBox.x),\r\n translateY: this._y = _round(y - this._bBox.y)\r\n });\r\n if (this._connector) {\r\n this._connector.attr({\r\n points: this._getConnectorPoints()\r\n })\r\n }\r\n }\r\n return this\r\n },\r\n getBoundingRect: function() {\r\n return this._shiftBBox(this._bBox)\r\n },\r\n _shiftBBox: function(bBox) {\r\n return this._textContent ? {\r\n x: bBox.x + this._x,\r\n y: bBox.y + this._y,\r\n width: bBox.width,\r\n height: bBox.height\r\n } : {}\r\n },\r\n getLayoutOptions: function() {\r\n var options = this._options;\r\n return {\r\n alignment: options.alignment,\r\n background: checkBackground(options.background),\r\n horizontalOffset: options.horizontalOffset,\r\n verticalOffset: options.verticalOffset,\r\n radialOffset: options.radialOffset,\r\n position: options.position,\r\n connectorOffset: (checkConnector(options.connector) ? CONNECTOR_LENGTH : 0) + (checkBackground(options.background) ? LABEL_BACKGROUND_PADDING_X : 0)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/points/symbol_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasProperty\r\n} from \"../../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n Label\r\n} from \"./label\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../../core/utils\";\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _floor = _math.floor;\r\nvar _ceil = _math.ceil;\r\nvar DEFAULT_IMAGE_WIDTH = 20;\r\nvar DEFAULT_IMAGE_HEIGHT = 20;\r\nvar LABEL_OFFSET = 10;\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\n\r\nfunction getSquareMarkerCoords(radius) {\r\n return [-radius, -radius, radius, -radius, radius, radius, -radius, radius, -radius, -radius]\r\n}\r\n\r\nfunction getPolygonMarkerCoords(radius) {\r\n var r = _ceil(radius);\r\n return [-r, 0, 0, -r, r, 0, 0, r, -r, 0]\r\n}\r\n\r\nfunction getCrossMarkerCoords(radius) {\r\n var r = _ceil(radius);\r\n var floorHalfRadius = _floor(r / 2);\r\n var ceilHalfRadius = _ceil(r / 2);\r\n return [-r, -floorHalfRadius, -floorHalfRadius, -r, 0, -ceilHalfRadius, floorHalfRadius, -r, r, -floorHalfRadius, ceilHalfRadius, 0, r, floorHalfRadius, floorHalfRadius, r, 0, ceilHalfRadius, -floorHalfRadius, r, -r, floorHalfRadius, -ceilHalfRadius, 0]\r\n}\r\n\r\nfunction getTriangleDownMarkerCoords(radius) {\r\n return [-radius, -radius, radius, -radius, 0, radius, -radius, -radius]\r\n}\r\n\r\nfunction getTriangleUpMarkerCoords(radius) {\r\n return [-radius, radius, radius, radius, 0, -radius, -radius, radius]\r\n}\r\nexport default {\r\n deleteLabel: function() {\r\n this._label.dispose();\r\n this._label = null\r\n },\r\n _hasGraphic: function() {\r\n return this.graphic\r\n },\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n isVisible: function() {\r\n return this.inVisibleArea && this.series.isVisible()\r\n },\r\n setInvisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && \"hidden\" !== graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n this._errorBar && this._errorBar.attr({\r\n visibility: \"hidden\"\r\n });\r\n this._label.draw(false)\r\n },\r\n clearMarker: function() {\r\n var graphic = this.graphic;\r\n graphic && graphic.attr(this._emptySettings)\r\n },\r\n _createLabel: function() {\r\n this._label = new Label({\r\n renderer: this.series._renderer,\r\n labelsGroup: this.series._labelsGroup,\r\n point: this\r\n })\r\n },\r\n _calculateVisibility: function(x, y) {\r\n var {\r\n minX: minX,\r\n maxX: maxX,\r\n minY: minY,\r\n maxY: maxY\r\n } = this._getVisibleArea();\r\n this.inVisibleArea = minX <= x && maxX >= x && minY <= y && maxY >= y\r\n },\r\n _updateLabelData: function() {\r\n this._label.setData(this._getLabelFormatObject())\r\n },\r\n _updateLabelOptions: function() {\r\n !this._label && this._createLabel();\r\n this._label.setOptions(this._options.label)\r\n },\r\n _checkImage: function(image) {\r\n return _isDefined(image) && (\"string\" === typeof image || _isDefined(image.url))\r\n },\r\n _fillStyle: function() {\r\n this._styles = this._options.styles\r\n },\r\n _checkSymbol: function(oldOptions, newOptions) {\r\n var oldSymbol = oldOptions.symbol;\r\n var newSymbol = newOptions.symbol;\r\n var symbolChanged = \"circle\" === oldSymbol && \"circle\" !== newSymbol || \"circle\" !== oldSymbol && \"circle\" === newSymbol;\r\n var imageChanged = this._checkImage(oldOptions.image) !== this._checkImage(newOptions.image);\r\n return !!(symbolChanged || imageChanged)\r\n },\r\n _populatePointShape: function(symbol, radius) {\r\n switch (symbol) {\r\n case \"square\":\r\n return getSquareMarkerCoords(radius);\r\n case \"polygon\":\r\n return getPolygonMarkerCoords(radius);\r\n case \"triangle\":\r\n case \"triangleDown\":\r\n return getTriangleDownMarkerCoords(radius);\r\n case \"triangleUp\":\r\n return getTriangleUpMarkerCoords(radius);\r\n case \"cross\":\r\n return getCrossMarkerCoords(radius)\r\n }\r\n },\r\n hasCoords: function() {\r\n return null !== this.x && null !== this.y\r\n },\r\n correctValue: function(correction) {\r\n var axis = this.series.getValueAxis();\r\n if (this.hasValue()) {\r\n this.value = this.properValue = axis.validateUnit(this.initialValue.valueOf() + correction.valueOf());\r\n this.minValue = axis.validateUnit(correction)\r\n }\r\n },\r\n resetCorrection: function() {\r\n this.value = this.properValue = this.initialValue;\r\n this.minValue = CANVAS_POSITION_DEFAULT\r\n },\r\n resetValue: function() {\r\n if (this.hasValue()) {\r\n this.value = this.properValue = this.initialValue = 0;\r\n this.minValue = 0;\r\n this._label.setDataField(\"value\", this.value)\r\n }\r\n },\r\n _getTranslates: function(animationEnabled) {\r\n var translateX = this.x;\r\n var translateY = this.y;\r\n if (animationEnabled) {\r\n if (this._options.rotated) {\r\n translateX = this.defaultX\r\n } else {\r\n translateY = this.defaultY\r\n }\r\n }\r\n return {\r\n x: translateX,\r\n y: translateY\r\n }\r\n },\r\n _createImageMarker: function(renderer, settings, options) {\r\n var width = options.width || DEFAULT_IMAGE_WIDTH;\r\n var height = options.height || DEFAULT_IMAGE_HEIGHT;\r\n return renderer.image(-_round(.5 * width), -_round(.5 * height), width, height, options.url ? options.url.toString() : options.toString(), \"center\").attr({\r\n translateX: settings.translateX,\r\n translateY: settings.translateY,\r\n visibility: settings.visibility\r\n })\r\n },\r\n _createSymbolMarker: function(renderer, pointSettings) {\r\n var marker;\r\n var symbol = this._options.symbol;\r\n if (\"circle\" === symbol) {\r\n delete pointSettings.points;\r\n marker = renderer.circle().attr(pointSettings)\r\n } else if (\"square\" === symbol || \"polygon\" === symbol || \"triangle\" === symbol || \"triangleDown\" === symbol || \"triangleUp\" === symbol || \"cross\" === symbol) {\r\n marker = renderer.path([], \"area\").attr(pointSettings).sharp()\r\n }\r\n return marker\r\n },\r\n _createMarker: function(renderer, group, image, settings) {\r\n var marker = this._checkImage(image) ? this._createImageMarker(renderer, settings, image) : this._createSymbolMarker(renderer, settings);\r\n if (marker) {\r\n marker.data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n }\r\n return marker\r\n },\r\n _getSymbolBBox: function(x, y, r) {\r\n return {\r\n x: x - r,\r\n y: y - r,\r\n width: 2 * r,\r\n height: 2 * r\r\n }\r\n },\r\n _getImageBBox: function(x, y) {\r\n var image = this._options.image;\r\n var width = image.width || DEFAULT_IMAGE_WIDTH;\r\n var height = image.height || DEFAULT_IMAGE_HEIGHT;\r\n return {\r\n x: x - _round(width / 2),\r\n y: y - _round(height / 2),\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _getGraphicBBox: function() {\r\n var options = this._options;\r\n var x = this.x;\r\n var y = this.y;\r\n var bBox;\r\n if (options.visible) {\r\n bBox = this._checkImage(options.image) ? this._getImageBBox(x, y) : this._getSymbolBBox(x, y, options.styles.normal.r)\r\n } else {\r\n bBox = {\r\n x: x,\r\n y: y,\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return bBox\r\n },\r\n hideInsideLabel: noop,\r\n _getShiftLabelCoords: function(label) {\r\n var coord = this._addLabelAlignmentAndOffset(label, this._getLabelCoords(label));\r\n return this._checkLabelPosition(label, coord)\r\n },\r\n _drawLabel: function() {\r\n var customVisibility = this._getCustomLabelVisibility();\r\n var label = this._label;\r\n var isVisible = this._showForZeroValues() && this.hasValue() && false !== customVisibility && (this.series.getLabelVisibility() || customVisibility);\r\n label.draw(!!isVisible)\r\n },\r\n correctLabelPosition: function(label) {\r\n var coord = this._getShiftLabelCoords(label);\r\n if (!this.hideInsideLabel(label, coord)) {\r\n label.setFigureToDrawConnector(this._getLabelConnector(label.pointPosition));\r\n label.shift(_round(coord.x), _round(coord.y))\r\n }\r\n },\r\n _showForZeroValues: function() {\r\n return true\r\n },\r\n _getLabelConnector: function(pointPosition) {\r\n var bBox = this._getGraphicBBox(pointPosition);\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n return {\r\n x: bBox.x + w2,\r\n y: bBox.y + h2,\r\n r: this._options.visible ? Math.max(w2, h2) : 0\r\n }\r\n },\r\n _getPositionFromLocation: function() {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n },\r\n _isPointInVisibleArea: function(visibleArea, graphicBBox) {\r\n return visibleArea.minX <= graphicBBox.x + graphicBBox.width && visibleArea.maxX >= graphicBBox.x && visibleArea.minY <= graphicBBox.y + graphicBBox.height && visibleArea.maxY >= graphicBBox.y\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var labelBBox = label.getBoundingRect();\r\n var graphicBBox = this._getGraphicBBox(label.pointPosition);\r\n var fullGraphicBBox = this._getGraphicBBox();\r\n var isInside = \"inside\" === label.getLayoutOptions().position;\r\n var offset = LABEL_OFFSET;\r\n if (this._isPointInVisibleArea(visibleArea, fullGraphicBBox)) {\r\n if (!this._options.rotated) {\r\n if (visibleArea.minX > coord.x) {\r\n coord.x = visibleArea.minX\r\n }\r\n if (visibleArea.maxX < coord.x + labelBBox.width) {\r\n coord.x = visibleArea.maxX - labelBBox.width\r\n }\r\n if (visibleArea.minY > coord.y) {\r\n coord.y = isInside ? visibleArea.minY : graphicBBox.y + graphicBBox.height + offset\r\n }\r\n if (visibleArea.maxY < coord.y + labelBBox.height) {\r\n coord.y = isInside ? visibleArea.maxY - labelBBox.height : graphicBBox.y - labelBBox.height - offset\r\n }\r\n } else {\r\n if (visibleArea.minX > coord.x) {\r\n coord.x = isInside ? visibleArea.minX : graphicBBox.x + graphicBBox.width + offset\r\n }\r\n if (visibleArea.maxX < coord.x + labelBBox.width) {\r\n coord.x = isInside ? visibleArea.maxX - labelBBox.width : graphicBBox.x - offset - labelBBox.width\r\n }\r\n if (visibleArea.minY > coord.y) {\r\n coord.y = visibleArea.minY\r\n }\r\n if (visibleArea.maxY < coord.y + labelBBox.height) {\r\n coord.y = visibleArea.maxY - labelBBox.height\r\n }\r\n }\r\n }\r\n return coord\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n var labelBBox = label.getBoundingRect();\r\n var labelOptions = label.getLayoutOptions();\r\n if (!this._options.rotated) {\r\n if (\"left\" === labelOptions.alignment) {\r\n coord.x += labelBBox.width / 2\r\n } else if (\"right\" === labelOptions.alignment) {\r\n coord.x -= labelBBox.width / 2\r\n }\r\n }\r\n coord.x += labelOptions.horizontalOffset;\r\n coord.y += labelOptions.verticalOffset;\r\n return coord\r\n },\r\n _getLabelCoords: function(label) {\r\n return this._getLabelCoordOfPosition(label, this._getLabelPosition(label.pointPosition))\r\n },\r\n _getLabelCoordOfPosition: function(label, position) {\r\n var labelBBox = label.getBoundingRect();\r\n var graphicBBox = this._getGraphicBBox(label.pointPosition);\r\n var offset = LABEL_OFFSET;\r\n var centerY = graphicBBox.height / 2 - labelBBox.height / 2;\r\n var centerX = graphicBBox.width / 2 - labelBBox.width / 2;\r\n var x = graphicBBox.x;\r\n var y = graphicBBox.y;\r\n switch (position) {\r\n case \"left\":\r\n x -= labelBBox.width + offset;\r\n y += centerY;\r\n break;\r\n case \"right\":\r\n x += graphicBBox.width + offset;\r\n y += centerY;\r\n break;\r\n case \"top\":\r\n x += centerX;\r\n y -= labelBBox.height + offset;\r\n break;\r\n case \"bottom\":\r\n x += centerX;\r\n y += graphicBBox.height + offset;\r\n break;\r\n case \"inside\":\r\n x += centerX;\r\n y += centerY\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var options = this._options;\r\n var translates = this._getTranslates(animationEnabled);\r\n var style = this._getStyle();\r\n this.graphic = this._createMarker(renderer, group, options.image, _extend({\r\n translateX: translates.x,\r\n translateY: translates.y,\r\n points: this._populatePointShape(options.symbol, style.r)\r\n }, style))\r\n },\r\n _getErrorBarSettings: function() {\r\n return {\r\n visibility: \"visible\"\r\n }\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n return 2 * this.getPointRadius()\r\n },\r\n _drawErrorBar: function(renderer, group) {\r\n if (!this._options.errorBars) {\r\n return\r\n }\r\n var options = this._options;\r\n var errorBarOptions = options.errorBars;\r\n var points = [];\r\n var settings;\r\n var pos = this._errorBarPos;\r\n var high = this._highErrorCoord;\r\n var low = this._lowErrorCoord;\r\n var displayMode = _normalizeEnum(errorBarOptions.displayMode);\r\n var isHighDisplayMode = \"high\" === displayMode;\r\n var isLowDisplayMode = \"low\" === displayMode;\r\n var highErrorOnly = (isHighDisplayMode || !_isDefined(low)) && _isDefined(high) && !isLowDisplayMode;\r\n var lowErrorOnly = (isLowDisplayMode || !_isDefined(high)) && _isDefined(low) && !isHighDisplayMode;\r\n var edgeLength = errorBarOptions.edgeLength;\r\n if (edgeLength <= 1 && edgeLength > 0) {\r\n edgeLength = this._getErrorBarBaseEdgeLength() * errorBarOptions.edgeLength\r\n }\r\n edgeLength = _floor(parseInt(edgeLength) / 2);\r\n highErrorOnly && (low = this._baseErrorBarPos);\r\n lowErrorOnly && (high = this._baseErrorBarPos);\r\n if (\"none\" !== displayMode && _isDefined(high) && _isDefined(low) && _isDefined(pos)) {\r\n !lowErrorOnly && points.push([pos - edgeLength, high, pos + edgeLength, high]);\r\n points.push([pos, high, pos, low]);\r\n !highErrorOnly && points.push([pos + edgeLength, low, pos - edgeLength, low]);\r\n options.rotated && each(points, (function(_, p) {\r\n p.reverse()\r\n }));\r\n settings = this._getErrorBarSettings(errorBarOptions);\r\n if (!this._errorBar) {\r\n this._errorBar = renderer.path(points, \"line\").attr(settings).append(group)\r\n } else {\r\n settings.points = points;\r\n this._errorBar.attr(settings)\r\n }\r\n } else {\r\n this._errorBar && this._errorBar.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n },\r\n getTooltipParams: function() {\r\n var graphic = this.graphic;\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n offset: graphic ? graphic.getBBox().height / 2 : 0\r\n }\r\n },\r\n setPercentValue: function(absTotal, total, leftHoleTotal, rightHoleTotal) {\r\n var valuePercent = this.value / absTotal || 0;\r\n var minValuePercent = this.minValue / absTotal || 0;\r\n var percent = valuePercent - minValuePercent;\r\n this._label.setDataField(\"percent\", percent);\r\n this._label.setDataField(\"total\", total);\r\n if (this.series.isFullStackedSeries() && this.hasValue()) {\r\n if (this.leftHole) {\r\n this.leftHole /= absTotal - leftHoleTotal;\r\n this.minLeftHole /= absTotal - leftHoleTotal\r\n }\r\n if (this.rightHole) {\r\n this.rightHole /= absTotal - rightHoleTotal;\r\n this.minRightHole /= absTotal - rightHoleTotal\r\n }\r\n this.value = this.properValue = valuePercent;\r\n this.minValue = !minValuePercent ? this.minValue : minValuePercent\r\n }\r\n },\r\n _storeTrackerR: function() {\r\n var navigator = window.navigator;\r\n var r = this._options.styles.normal.r;\r\n var minTrackerSize = hasProperty(\"ontouchstart\") || navigator.msPointerEnabled && navigator.msMaxTouchPoints || navigator.pointerEnabled && navigator.maxTouchPoints ? 20 : 6;\r\n this._options.trackerR = r < minTrackerSize ? minTrackerSize : r;\r\n return this._options.trackerR\r\n },\r\n _translateErrorBars: function() {\r\n var options = this._options;\r\n var rotated = options.rotated;\r\n var errorBars = options.errorBars;\r\n var translator = this._getValTranslator();\r\n if (!errorBars) {\r\n return\r\n }\r\n _isDefined(this.lowError) && (this._lowErrorCoord = translator.translate(this.lowError));\r\n _isDefined(this.highError) && (this._highErrorCoord = translator.translate(this.highError));\r\n this._errorBarPos = _floor(rotated ? this.vy : this.vx);\r\n this._baseErrorBarPos = \"stdDeviation\" === errorBars.type ? this._lowErrorCoord + (this._highErrorCoord - this._lowErrorCoord) / 2 : rotated ? this.vx : this.vy\r\n },\r\n _translate: function() {\r\n var valTranslator = this._getValTranslator();\r\n var argTranslator = this._getArgTranslator();\r\n if (this._options.rotated) {\r\n this.vx = this.x = valTranslator.translate(this.value, void 0, true);\r\n this.vy = this.y = argTranslator.translate(this.argument, void 0, true);\r\n this.minX = valTranslator.translate(this.minValue, void 0, true);\r\n this.defaultX = valTranslator.translate(CANVAS_POSITION_DEFAULT)\r\n } else {\r\n this.vy = this.y = valTranslator.translate(this.value, void 0, true);\r\n this.vx = this.x = argTranslator.translate(this.argument, void 0, true);\r\n this.minY = valTranslator.translate(this.minValue, void 0, true);\r\n this.defaultY = valTranslator.translate(CANVAS_POSITION_DEFAULT)\r\n }\r\n this._translateErrorBars();\r\n this._calculateVisibility(this.x, this.y)\r\n },\r\n _updateData: function(data) {\r\n this.value = this.properValue = this.initialValue = this.originalValue = data.value;\r\n this.minValue = this.initialMinValue = this.originalMinValue = _isDefined(data.minValue) ? data.minValue : CANVAS_POSITION_DEFAULT\r\n },\r\n _getImageSettings: function(image) {\r\n return {\r\n href: image.url || image.toString(),\r\n width: image.width || DEFAULT_IMAGE_WIDTH,\r\n height: image.height || DEFAULT_IMAGE_HEIGHT\r\n }\r\n },\r\n getCrosshairData: function() {\r\n var r = this._options.rotated;\r\n var value = this.properValue;\r\n var argument = this.argument;\r\n return {\r\n x: this.vx,\r\n y: this.vy,\r\n xValue: r ? value : argument,\r\n yValue: r ? argument : value,\r\n axis: this.series.axis\r\n }\r\n },\r\n getPointRadius: function() {\r\n var style = this._getStyle();\r\n var options = this._options;\r\n var r = style.r;\r\n var extraSpace;\r\n var symbol = options.symbol;\r\n var isSquare = \"square\" === symbol;\r\n var isTriangle = \"triangle\" === symbol || \"triangleDown\" === symbol || \"triangleUp\" === symbol;\r\n if (options.visible && !options.image && r) {\r\n extraSpace = style[\"stroke-width\"] / 2;\r\n return (isSquare || isTriangle ? 1.4 * r : r) + extraSpace\r\n }\r\n return 0\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n var options = this._options;\r\n var settings;\r\n var image = options.image;\r\n var visibility = !this.isVisible() ? {\r\n visibility: \"hidden\"\r\n } : {};\r\n if (this._checkImage(image)) {\r\n settings = _extend({}, {\r\n visibility: style.visibility\r\n }, visibility, this._getImageSettings(image))\r\n } else {\r\n settings = _extend({}, style, visibility, {\r\n points: this._populatePointShape(options.symbol, style.r)\r\n })\r\n }\r\n if (!animationEnabled) {\r\n settings.translateX = this.x;\r\n settings.translateY = this.y\r\n }\r\n this.graphic.attr(settings).sharp()\r\n },\r\n _getLabelFormatObject: function() {\r\n return {\r\n argument: this.initialArgument,\r\n value: this.initialValue,\r\n originalArgument: this.originalArgument,\r\n originalValue: this.originalValue,\r\n seriesName: this.series.name,\r\n lowErrorValue: this.lowError,\r\n highErrorValue: this.highError,\r\n point: this\r\n }\r\n },\r\n _getLabelPosition: function() {\r\n var rotated = this._options.rotated;\r\n if (this.initialValue > 0) {\r\n return rotated ? \"right\" : \"top\"\r\n } else {\r\n return rotated ? \"left\" : \"bottom\"\r\n }\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var labelFormatObject = this._label.getData();\r\n return _extend({}, labelFormatObject, {\r\n argumentText: tooltip.formatValue(this.initialArgument, \"argument\"),\r\n valueText: tooltip.formatValue(this.initialValue)\r\n }, _isDefined(labelFormatObject.percent) ? {\r\n percentText: tooltip.formatValue(labelFormatObject.percent, \"percent\")\r\n } : {}, _isDefined(labelFormatObject.total) ? {\r\n totalText: tooltip.formatValue(labelFormatObject.total)\r\n } : {})\r\n },\r\n getMarkerVisibility: function() {\r\n return this._options.visible\r\n },\r\n coordsIn: function(x, y) {\r\n var trackerRadius = this._storeTrackerR();\r\n return x >= this.x - trackerRadius && x <= this.x + trackerRadius && y >= this.y - trackerRadius && y <= this.y + trackerRadius\r\n },\r\n getMinValue: function(noErrorBar) {\r\n var errorBarOptions = this._options.errorBars;\r\n if (errorBarOptions && !noErrorBar) {\r\n var displayMode = errorBarOptions.displayMode;\r\n var lowValue = \"high\" !== displayMode && _isDefined(this.lowError) ? this.lowError : this.value;\r\n var highValue = \"low\" !== displayMode && _isDefined(this.highError) ? this.highError : this.value;\r\n return lowValue < highValue ? lowValue : highValue\r\n } else {\r\n return this.value\r\n }\r\n },\r\n getMaxValue: function(noErrorBar) {\r\n var errorBarOptions = this._options.errorBars;\r\n if (errorBarOptions && !noErrorBar) {\r\n var displayMode = errorBarOptions.displayMode;\r\n var lowValue = \"high\" !== displayMode && _isDefined(this.lowError) ? this.lowError : this.value;\r\n var highValue = \"low\" !== displayMode && _isDefined(this.highError) ? this.highError : this.value;\r\n return lowValue > highValue ? lowValue : highValue\r\n } else {\r\n return this.value\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/points/bar_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nvar _math = Math;\r\nvar _floor = _math.floor;\r\nvar _abs = _math.abs;\r\nimport symbolPoint from \"./symbol_point\";\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\nvar DEFAULT_BAR_TRACKER_SIZE = 9;\r\nvar CORRECTING_BAR_TRACKER_VALUE = 4;\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\n\r\nfunction getLabelOrientation(point) {\r\n var initialValue = point.initialValue;\r\n var invert = point._getValTranslator().getBusinessRange().invert;\r\n var isDiscreteValue = \"discrete\" === point.series.valueAxisType;\r\n var isFullStacked = point.series.isFullStackedSeries();\r\n var notAxisInverted = !isDiscreteValue && (initialValue >= 0 && !invert || initialValue < 0 && invert) || isDiscreteValue && !invert || isFullStacked;\r\n return notAxisInverted ? TOP : BOTTOM\r\n}\r\nexport default _extend({}, symbolPoint, {\r\n correctCoordinates(correctOptions) {\r\n var correction = _floor(correctOptions.offset - correctOptions.width / 2);\r\n if (this._options.rotated) {\r\n this.height = correctOptions.width;\r\n this.yCorrection = correction;\r\n this.xCorrection = null\r\n } else {\r\n this.width = correctOptions.width;\r\n this.xCorrection = correction;\r\n this.yCorrection = null\r\n }\r\n },\r\n _calculateVisibility: function(x, y, width, height) {\r\n var {\r\n minX: minX,\r\n maxX: maxX,\r\n minY: minY,\r\n maxY: maxY\r\n } = this._getVisibleArea();\r\n this.inVisibleArea = minX <= x + width && maxX >= x && minY <= y + height && maxY >= y\r\n },\r\n _cacheVisibility: function(x, y, minY, rotated) {\r\n var size = Math.abs(y - minY);\r\n y = Math.min(y, minY);\r\n if (rotated) {\r\n this._calculateVisibility(y, x, size, this.height)\r\n } else {\r\n this._calculateVisibility(x, y, this.width, size)\r\n }\r\n },\r\n _getGraphicBBox: function(location) {\r\n var bBox = {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n if (location) {\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n bBox.y = isTop ? bBox.y : bBox.y + bBox.height;\r\n bBox.height = 0\r\n } else {\r\n bBox.x = isTop ? bBox.x + bBox.width : bBox.x;\r\n bBox.width = 0\r\n }\r\n }\r\n return bBox\r\n },\r\n _getLabelConnector: function(location) {\r\n return this._getGraphicBBox(location)\r\n },\r\n _getLabelPosition: function() {\r\n var position = getLabelOrientation(this);\r\n if (this._options.rotated) {\r\n position = position === TOP ? RIGHT : LEFT\r\n }\r\n return position\r\n },\r\n _getLabelCoords: function(label) {\r\n var coords;\r\n if (0 === this.initialValue && this.series.isFullStackedSeries()) {\r\n if (!this._options.rotated) {\r\n coords = this._getLabelCoordOfPosition(label, TOP)\r\n } else {\r\n coords = this._getLabelCoordOfPosition(label, RIGHT)\r\n }\r\n } else if (\"inside\" === label.getLayoutOptions().position) {\r\n coords = this._getLabelCoordOfPosition(label, \"inside\")\r\n } else {\r\n coords = symbolPoint._getLabelCoords.call(this, label)\r\n }\r\n return coords\r\n },\r\n _drawLabel: function() {\r\n this._label.pointPosition = \"inside\" !== this._label.getLayoutOptions().position && getLabelOrientation(this);\r\n symbolPoint._drawLabel.call(this)\r\n },\r\n hideInsideLabel: function(label, coord) {\r\n var graphicBBox = this._getGraphicBBox();\r\n var labelBBox = label.getBoundingRect();\r\n if (this._options.resolveLabelsOverlapping) {\r\n if ((coord.y <= graphicBBox.y && coord.y + labelBBox.height >= graphicBBox.y + graphicBBox.height || coord.x <= graphicBBox.x && coord.x + labelBBox.width >= graphicBBox.x + graphicBBox.width) && !(coord.y > graphicBBox.y + graphicBBox.height || coord.y + labelBBox.height < graphicBBox.y || coord.x > graphicBBox.x + graphicBBox.width || coord.x + labelBBox.width < graphicBBox.x)) {\r\n label.draw(false);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _showForZeroValues: function() {\r\n return this._options.label.showForZeroValues || this.initialValue\r\n },\r\n _drawMarker(renderer, group, animationEnabled) {\r\n var style = this._getStyle();\r\n var r = this._options.cornerRadius;\r\n var rotated = this._options.rotated;\r\n var {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n } = this.getMarkerCoords();\r\n if (animationEnabled) {\r\n if (rotated) {\r\n width = 0;\r\n x = this.defaultX\r\n } else {\r\n height = 0;\r\n y = this.defaultY\r\n }\r\n }\r\n this.graphic = renderer.rect(x, y, width, height).attr({\r\n rx: r,\r\n ry: r\r\n }).smartAttr(style).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n _getSettingsForTracker: function() {\r\n var y = this.y;\r\n var height = this.height;\r\n var x = this.x;\r\n var width = this.width;\r\n if (this._options.rotated) {\r\n if (1 === width) {\r\n width = DEFAULT_BAR_TRACKER_SIZE;\r\n x -= CORRECTING_BAR_TRACKER_VALUE\r\n }\r\n } else if (1 === height) {\r\n height = DEFAULT_BAR_TRACKER_SIZE;\r\n y -= CORRECTING_BAR_TRACKER_VALUE\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n getGraphicSettings: function() {\r\n var graphic = this.graphic;\r\n return {\r\n x: graphic.attr(\"x\"),\r\n y: graphic.attr(\"y\"),\r\n height: graphic.attr(\"height\"),\r\n width: graphic.attr(\"width\")\r\n }\r\n },\r\n _getEdgeTooltipParams() {\r\n var isPositive = this.value >= 0;\r\n var xCoord;\r\n var yCoord;\r\n var invertedBusinessRange = this._getValTranslator().getBusinessRange().invert;\r\n var {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n } = this;\r\n if (this._options.rotated) {\r\n yCoord = y + height / 2;\r\n if (invertedBusinessRange) {\r\n xCoord = isPositive ? x : x + width\r\n } else {\r\n xCoord = isPositive ? x + width : x\r\n }\r\n } else {\r\n xCoord = x + width / 2;\r\n if (invertedBusinessRange) {\r\n yCoord = isPositive ? y + height : y\r\n } else {\r\n yCoord = isPositive ? y : y + height\r\n }\r\n }\r\n return {\r\n x: xCoord,\r\n y: yCoord,\r\n offset: 0\r\n }\r\n },\r\n getTooltipParams: function(location) {\r\n if (\"edge\" === location) {\r\n return this._getEdgeTooltipParams()\r\n }\r\n var center = this.getCenterCoord();\r\n center.offset = 0;\r\n return center\r\n },\r\n getCenterCoord() {\r\n var {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y\r\n } = this;\r\n return {\r\n x: x + width / 2,\r\n y: y + height / 2\r\n }\r\n },\r\n _truncateCoord: function(coord, bounds) {\r\n if (null === coord) {\r\n return coord\r\n }\r\n if (coord < bounds[0]) {\r\n return bounds[0]\r\n }\r\n if (coord > bounds[1]) {\r\n return bounds[1]\r\n }\r\n return coord\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n return this._options.rotated ? this.height : this.width\r\n },\r\n _translateErrorBars: function(argVisibleArea) {\r\n symbolPoint._translateErrorBars.call(this);\r\n if (this._errorBarPos < argVisibleArea[0] || this._errorBarPos > argVisibleArea[1]) {\r\n this._errorBarPos = void 0\r\n }\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n var valAxis = rotated ? \"x\" : \"y\";\r\n var argAxis = rotated ? \"y\" : \"x\";\r\n var valIntervalName = rotated ? \"width\" : \"height\";\r\n var argIntervalName = rotated ? \"height\" : \"width\";\r\n var argTranslator = this._getArgTranslator();\r\n var valTranslator = this._getValTranslator();\r\n var argVisibleArea = this.series.getArgumentAxis().getVisibleArea();\r\n var valVisibleArea = this.series.getValueAxis().getVisibleArea();\r\n var arg = argTranslator.translate(this.argument);\r\n var val = valTranslator.translate(this.value, 1);\r\n var minVal = valTranslator.translate(this.minValue, -1);\r\n this[argAxis] = arg = null === arg ? arg : arg + (this[argAxis + \"Correction\"] || 0);\r\n this[\"v\" + valAxis] = val;\r\n this[\"v\" + argAxis] = arg + this[argIntervalName] / 2;\r\n this._cacheVisibility(arg, val, minVal, rotated);\r\n val = this._truncateCoord(val, valVisibleArea);\r\n minVal = this._truncateCoord(minVal, valVisibleArea);\r\n this[valIntervalName] = _abs(val - minVal);\r\n val = val < minVal ? val : minVal;\r\n this[valAxis] = null === val ? val : val + (this[valAxis + \"Correction\"] || 0);\r\n this[\"min\" + valAxis.toUpperCase()] = null === minVal ? minVal : minVal + (this[valAxis + \"Correction\"] || 0);\r\n this[\"default\" + valAxis.toUpperCase()] = valTranslator.translate(CANVAS_POSITION_DEFAULT);\r\n this._translateErrorBars(argVisibleArea);\r\n if (this.inVisibleArea && null !== this[argAxis]) {\r\n if (this[argAxis] < argVisibleArea[0]) {\r\n this[argIntervalName] = this[argIntervalName] - (argVisibleArea[0] - this[argAxis]);\r\n this[argAxis] = argVisibleArea[0]\r\n }\r\n if (this[argAxis] + this[argIntervalName] > argVisibleArea[1]) {\r\n this[argIntervalName] = argVisibleArea[1] - this[argAxis]\r\n }\r\n }\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n this.graphic.smartAttr(_extend({}, style, !animationEnabled ? this.getMarkerCoords() : {}))\r\n },\r\n getMarkerCoords: function() {\r\n var x = this.x;\r\n var y = this.y;\r\n var width = this.width;\r\n var height = this.height;\r\n var argAxis = this.series.getArgumentAxis();\r\n var rotated = this._options.rotated;\r\n if (argAxis.getAxisPosition) {\r\n var axisOptions = argAxis.getOptions();\r\n var edgeOffset = Math.round(axisOptions.width / 2);\r\n var argAxisPosition = argAxis.getAxisPosition();\r\n if (axisOptions.visible) {\r\n if (!rotated) {\r\n height -= this.minY === this.defaultY && this.minY === argAxisPosition - argAxis.getAxisShift() ? edgeOffset : 0;\r\n height < 0 && (height = 0)\r\n } else {\r\n var isStartFromAxis = this.minX === this.defaultX && this.minX === argAxisPosition - argAxis.getAxisShift();\r\n x += isStartFromAxis ? edgeOffset : 0;\r\n width -= isStartFromAxis ? edgeOffset : 0;\r\n width < 0 && (width = 0)\r\n }\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n return x >= this.x && x <= this.x + this.width && y >= this.y && y <= this.y + this.height\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/bubble_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nvar MIN_BUBBLE_HEIGHT = 20;\r\nexport default _extend({}, symbolPoint, {\r\n correctCoordinates: function(diameter) {\r\n this.bubbleSize = diameter / 2\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var attr = _extend({\r\n translateX: this.x,\r\n translateY: this.y\r\n }, this._getStyle());\r\n this.graphic = renderer.circle(0, 0, animationEnabled ? 0 : this.bubbleSize).smartAttr(attr).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n getTooltipParams: function(location) {\r\n var graphic = this.graphic;\r\n if (!graphic) {\r\n return\r\n }\r\n var height = graphic.getBBox().height;\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n offset: height < MIN_BUBBLE_HEIGHT || \"edge\" === location ? height / 2 : 0\r\n }\r\n },\r\n _getLabelFormatObject: function() {\r\n var formatObject = symbolPoint._getLabelFormatObject.call(this);\r\n formatObject.size = this.initialSize;\r\n return formatObject\r\n },\r\n _updateData: function(data) {\r\n symbolPoint._updateData.call(this, data);\r\n this.size = this.initialSize = data.size\r\n },\r\n _getGraphicBBox: function() {\r\n return this._getSymbolBBox(this.x, this.y, this.bubbleSize)\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n if (!animationEnabled) {\r\n style = _extend({\r\n r: this.bubbleSize,\r\n translateX: this.x,\r\n translateY: this.y\r\n }, style)\r\n }\r\n this.graphic.smartAttr(style)\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var formatObject = symbolPoint._getFormatObject.call(this, tooltip);\r\n formatObject.sizeText = tooltip.formatValue(this.initialSize);\r\n return formatObject\r\n },\r\n _storeTrackerR: function() {\r\n return this.bubbleSize\r\n },\r\n _getLabelCoords: function(label) {\r\n var coords;\r\n if (\"inside\" === label.getLayoutOptions().position) {\r\n coords = this._getLabelCoordOfPosition(label, \"inside\")\r\n } else {\r\n coords = symbolPoint._getLabelCoords.call(this, label)\r\n }\r\n return coords\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/pie_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nvar _round = Math.round;\r\nvar _sqrt = Math.sqrt;\r\nvar _acos = Math.acos;\r\nvar DEG = 180 / Math.PI;\r\nvar _abs = Math.abs;\r\nimport {\r\n getVerticallyShiftedAngularCoords,\r\n normalizeAngle as _normalizeAngle,\r\n getCosAndSin as _getCosAndSin\r\n} from \"../../core/utils\";\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport consts from \"../../components/consts\";\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\nexport default _extend({}, symbolPoint, {\r\n _updateData: function(data, argumentChanged) {\r\n symbolPoint._updateData.call(this, data);\r\n if (argumentChanged || !_isDefined(this._visible)) {\r\n this._visible = true\r\n }\r\n this.minValue = this.initialMinValue = this.originalMinValue = _isDefined(data.minValue) ? data.minValue : 0\r\n },\r\n animate: function(complete, duration, delay) {\r\n this.graphic.animate({\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.radiusInner,\r\n startAngle: this.toAngle,\r\n endAngle: this.fromAngle\r\n }, {\r\n delay: delay,\r\n partitionDuration: duration\r\n }, complete)\r\n },\r\n correctPosition: function(correction) {\r\n this.correctRadius(correction);\r\n this.correctLabelRadius(correction.radiusOuter + RADIAL_LABEL_INDENT);\r\n this.centerX = correction.centerX;\r\n this.centerY = correction.centerY\r\n },\r\n correctRadius: function(correction) {\r\n this.radiusInner = correction.radiusInner;\r\n this.radiusOuter = correction.radiusOuter\r\n },\r\n correctLabelRadius: function(radiusLabels) {\r\n this.radiusLabels = radiusLabels\r\n },\r\n correctValue: function(correction, percent, base) {\r\n this.value = (base || this.normalInitialValue) + correction;\r\n this.minValue = correction;\r\n this.percent = percent;\r\n this._label.setDataField(\"percent\", percent)\r\n },\r\n _updateLabelData: function() {\r\n this._label.setData(this._getLabelFormatObject())\r\n },\r\n _getShiftLabelCoords: function() {\r\n var bBox = this._label.getBoundingRect();\r\n var coord = this._getLabelCoords(this._label);\r\n var visibleArea = this._getVisibleArea();\r\n if (this._isLabelDrawingWithoutPoints) {\r\n return this._checkLabelPosition(coord, bBox, visibleArea)\r\n } else {\r\n return this._getLabelExtraCoord(coord, this._checkVerticalLabelPosition(coord, bBox, visibleArea), bBox)\r\n }\r\n },\r\n _getLabelPosition: function(options) {\r\n return options.position\r\n },\r\n getAnnotationCoords: function(location) {\r\n return this._getElementCoords(\"edge\" !== location ? \"inside\" : \"outside\", this.radiusOuter, 0)\r\n },\r\n _getElementCoords: function(position, elementRadius, radialOffset) {\r\n var bBox = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var that = this;\r\n var angleFunctions = _getCosAndSin(that.middleAngle);\r\n var radiusInner = that.radiusInner;\r\n var radiusOuter = that.radiusOuter;\r\n var columnsPosition = \"columns\" === position;\r\n var rad;\r\n var x;\r\n if (\"inside\" === position) {\r\n rad = radiusInner + (radiusOuter - radiusInner) / 2 + radialOffset;\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width / 2\r\n } else {\r\n rad = elementRadius + radialOffset;\r\n if (angleFunctions.cos > .1 || columnsPosition && angleFunctions.cos >= 0) {\r\n x = that.centerX + rad * angleFunctions.cos\r\n } else if (angleFunctions.cos < -.1 || columnsPosition && angleFunctions.cos < 0) {\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width\r\n } else {\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width / 2\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: _round(that.centerY - rad * angleFunctions.sin - bBox.height / 2)\r\n }\r\n },\r\n _getLabelCoords: function(label) {\r\n var bBox = label.getBoundingRect();\r\n var options = label.getLayoutOptions();\r\n var position = this._getLabelPosition(options);\r\n return this._getElementCoords(position, this.radiusLabels, options.radialOffset, bBox)\r\n },\r\n _correctLabelCoord: function(coord, moveLabelsFromCenter) {\r\n var label = this._label;\r\n var bBox = label.getBoundingRect();\r\n var labelWidth = bBox.width;\r\n var options = label.getLayoutOptions();\r\n var visibleArea = this._getVisibleArea();\r\n var rightBorderX = visibleArea.maxX - labelWidth;\r\n var leftBorderX = visibleArea.minX;\r\n var angleOfPoint = _normalizeAngle(this.middleAngle);\r\n var centerX = this.centerX;\r\n var connectorOffset = options.connectorOffset;\r\n var x = coord.x;\r\n if (\"columns\" === options.position) {\r\n if (angleOfPoint <= 90 || angleOfPoint >= 270) {\r\n x = rightBorderX\r\n } else {\r\n x = leftBorderX\r\n }\r\n coord.x = x\r\n } else if (\"inside\" !== options.position && moveLabelsFromCenter) {\r\n if (angleOfPoint <= 90 || angleOfPoint >= 270) {\r\n if (x - connectorOffset < centerX) {\r\n x = centerX + connectorOffset\r\n }\r\n } else if (x + labelWidth + connectorOffset > centerX) {\r\n x = centerX - labelWidth - connectorOffset\r\n }\r\n coord.x = x\r\n }\r\n return coord\r\n },\r\n drawLabel: function() {\r\n this.translate();\r\n this._isLabelDrawingWithoutPoints = true;\r\n this._drawLabel();\r\n this._isLabelDrawingWithoutPoints = false\r\n },\r\n updateLabelCoord: function(moveLabelsFromCenter) {\r\n var bBox = this._label.getBoundingRect();\r\n var coord = this._correctLabelCoord(bBox, moveLabelsFromCenter);\r\n coord = this._checkHorizontalLabelPosition(coord, bBox, this._getVisibleArea());\r\n this._label.shift(_round(coord.x), _round(bBox.y))\r\n },\r\n _checkVerticalLabelPosition: function(coord, box, visibleArea) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (coord.y + box.height > visibleArea.maxY) {\r\n y = visibleArea.maxY - box.height\r\n } else if (coord.y < visibleArea.minY) {\r\n y = visibleArea.minY\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getLabelExtraCoord: function(coord, shiftCoord, box) {\r\n return coord.y !== shiftCoord.y ? getVerticallyShiftedAngularCoords({\r\n x: coord.x,\r\n y: coord.y,\r\n width: box.width,\r\n height: box.height\r\n }, shiftCoord.y - coord.y, {\r\n x: this.centerX,\r\n y: this.centerY\r\n }) : coord\r\n },\r\n _checkHorizontalLabelPosition: function(coord, box, visibleArea) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (coord.x + box.width > visibleArea.maxX) {\r\n x = visibleArea.maxX - box.width\r\n } else if (coord.x < visibleArea.minX) {\r\n x = visibleArea.minX\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n applyWordWrap: function(moveLabelsFromCenter) {\r\n var label = this._label;\r\n var box = label.getBoundingRect();\r\n var visibleArea = this._getVisibleArea();\r\n var position = label.getLayoutOptions().position;\r\n var width = box.width;\r\n var rowCountChanged = false;\r\n if (\"columns\" === position && this.series.index > 0) {\r\n width = visibleArea.maxX - this.centerX - this.radiusLabels\r\n } else if (\"inside\" === position) {\r\n if (width > visibleArea.maxX - visibleArea.minX) {\r\n width = visibleArea.maxX - visibleArea.minX\r\n }\r\n } else if (moveLabelsFromCenter && box.x < this.centerX && box.width + box.x > this.centerX) {\r\n width = Math.floor((visibleArea.maxX - visibleArea.minX) / 2)\r\n } else if (box.x + width > visibleArea.maxX) {\r\n width = visibleArea.maxX - box.x\r\n } else if (box.x < visibleArea.minX) {\r\n width = box.x + width - visibleArea.minX\r\n }\r\n if (width < box.width) {\r\n rowCountChanged = label.fit(width)\r\n }\r\n return rowCountChanged\r\n },\r\n setLabelTrackerData: function() {\r\n this._label.setTrackerData(this)\r\n },\r\n _checkLabelPosition: function(coord, bBox, visibleArea) {\r\n coord = this._checkHorizontalLabelPosition(coord, bBox, visibleArea);\r\n return this._checkVerticalLabelPosition(coord, bBox, visibleArea)\r\n },\r\n _getLabelConnector: function() {\r\n var rad = this.radiusOuter;\r\n var seriesStyle = this._options.styles.normal;\r\n var strokeWidthBy2 = seriesStyle[\"stroke-width\"] / 2;\r\n var borderWidth = this.series.getOptions().containerBackgroundColor === seriesStyle.stroke ? _round(strokeWidthBy2) : _round(-strokeWidthBy2);\r\n var angleFunctions = _getCosAndSin(_round(this.middleAngle));\r\n return {\r\n x: _round(this.centerX + (rad - borderWidth) * angleFunctions.cos),\r\n y: _round(this.centerY - (rad - borderWidth) * angleFunctions.sin),\r\n angle: this.middleAngle\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled, firstDrawing) {\r\n var radiusOuter = this.radiusOuter;\r\n var radiusInner = this.radiusInner;\r\n var fromAngle = this.fromAngle;\r\n var toAngle = this.toAngle;\r\n if (animationEnabled) {\r\n radiusInner = radiusOuter = 0;\r\n if (!firstDrawing) {\r\n fromAngle = toAngle = this.shiftedAngle\r\n }\r\n }\r\n this.graphic = renderer.arc(this.centerX, this.centerY, radiusInner, radiusOuter, toAngle, fromAngle).attr({\r\n \"stroke-linejoin\": \"round\"\r\n }).smartAttr(this._getStyle()).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n getTooltipParams: function() {\r\n var angleFunctions = _getCosAndSin(this.middleAngle);\r\n var radiusInner = this.radiusInner;\r\n var radiusOuter = this.radiusOuter;\r\n return {\r\n x: this.centerX + (radiusInner + (radiusOuter - radiusInner) / 2) * angleFunctions.cos,\r\n y: this.centerY - (radiusInner + (radiusOuter - radiusInner) / 2) * angleFunctions.sin,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var angle = this.shiftedAngle || 0;\r\n var value = this.value;\r\n var minValue = this.minValue;\r\n var translator = this._getValTranslator();\r\n this.fromAngle = translator.translate(minValue) + angle;\r\n this.toAngle = translator.translate(value) + angle;\r\n this.middleAngle = translator.translate((value - minValue) / 2 + minValue) + angle;\r\n if (!this.isVisible()) {\r\n this.middleAngle = this.toAngle = this.fromAngle = this.fromAngle || angle\r\n }\r\n },\r\n getMarkerVisibility: function() {\r\n return true\r\n },\r\n _updateMarker: function(animationEnabled, style, _, callback) {\r\n if (!animationEnabled) {\r\n style = _extend({\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.radiusInner,\r\n startAngle: this.toAngle,\r\n endAngle: this.fromAngle\r\n }, style)\r\n }\r\n this.graphic.smartAttr(style).sharp();\r\n callback && callback()\r\n },\r\n getLegendStyles: function() {\r\n return this._styles.legendStyles\r\n },\r\n isInVisibleArea: function() {\r\n return true\r\n },\r\n hide: function() {\r\n if (this._visible) {\r\n this._visible = false;\r\n this.hideTooltip();\r\n this._options.visibilityChanged()\r\n }\r\n },\r\n show: function() {\r\n if (!this._visible) {\r\n this._visible = true;\r\n this._options.visibilityChanged()\r\n }\r\n },\r\n setInvisibility: function() {\r\n this._label.draw(false)\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var formatObject = symbolPoint._getFormatObject.call(this, tooltip);\r\n var percent = this.percent;\r\n formatObject.percent = percent;\r\n formatObject.percentText = tooltip.formatValue(percent, \"percent\");\r\n return formatObject\r\n },\r\n getColor: function() {\r\n return this._styles.normal.fill\r\n },\r\n coordsIn: function(x, y) {\r\n var lx = x - this.centerX;\r\n var ly = y - this.centerY;\r\n var r = _sqrt(lx * lx + ly * ly);\r\n var fromAngle = this.fromAngle % 360;\r\n var toAngle = this.toAngle % 360;\r\n var angle;\r\n if (r < this.radiusInner || r > this.radiusOuter || 0 === r) {\r\n return false\r\n }\r\n angle = _acos(lx / r) * DEG * (ly > 0 ? -1 : 1);\r\n if (angle < 0) {\r\n angle += 360\r\n }\r\n if (fromAngle === toAngle && _abs(this.toAngle - this.fromAngle) > 1e-4) {\r\n return true\r\n } else {\r\n return fromAngle >= toAngle ? angle <= fromAngle && angle >= toAngle : !(angle >= fromAngle && angle <= toAngle)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/range_symbol_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Label\r\n} from \"./label\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _min = _math.min;\r\nvar _max = _math.max;\r\nvar _round = _math.round;\r\nvar DEFAULT_IMAGE_WIDTH = 20;\r\nvar DEFAULT_IMAGE_HEIGHT = 20;\r\nexport default _extend({}, symbolPoint, {\r\n deleteLabel: function() {\r\n this._topLabel.dispose();\r\n this._topLabel = null;\r\n this._bottomLabel.dispose();\r\n this._bottomLabel = null\r\n },\r\n hideMarker: function(type) {\r\n var graphic = this.graphic;\r\n var marker = graphic && graphic[type + \"Marker\"];\r\n var label = this[\"_\" + type + \"Label\"];\r\n if (marker && \"hidden\" !== marker.attr(\"visibility\")) {\r\n marker.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n label.draw(false)\r\n },\r\n setInvisibility: function() {\r\n this.hideMarker(\"top\");\r\n this.hideMarker(\"bottom\")\r\n },\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n var topMarker = graphic && graphic.topMarker;\r\n var bottomMarker = graphic && graphic.bottomMarker;\r\n if (topMarker && topMarker.attr(\"visibility\")) {\r\n topMarker.attr({\r\n visibility: null\r\n })\r\n }\r\n if (bottomMarker && bottomMarker.attr(\"visibility\")) {\r\n bottomMarker.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n clearMarker: function() {\r\n var graphic = this.graphic;\r\n var topMarker = graphic && graphic.topMarker;\r\n var bottomMarker = graphic && graphic.bottomMarker;\r\n var emptySettings = this._emptySettings;\r\n topMarker && topMarker.attr(emptySettings);\r\n bottomMarker && bottomMarker.attr(emptySettings)\r\n },\r\n _getLabelPosition: function(markerType) {\r\n var position;\r\n var labelsInside = \"inside\" === this._options.label.position;\r\n if (!this._options.rotated) {\r\n position = \"top\" === markerType ^ labelsInside ? \"top\" : \"bottom\"\r\n } else {\r\n position = \"top\" === markerType ^ labelsInside ? \"right\" : \"left\"\r\n }\r\n return position\r\n },\r\n _getLabelMinFormatObject: function() {\r\n return {\r\n index: 0,\r\n argument: this.initialArgument,\r\n value: this.initialMinValue,\r\n seriesName: this.series.name,\r\n originalValue: this.originalMinValue,\r\n originalArgument: this.originalArgument,\r\n point: this\r\n }\r\n },\r\n _updateLabelData: function() {\r\n var maxFormatObject = this._getLabelFormatObject();\r\n maxFormatObject.index = 1;\r\n this._topLabel.setData(maxFormatObject);\r\n this._bottomLabel.setData(this._getLabelMinFormatObject())\r\n },\r\n _updateLabelOptions: function() {\r\n var options = this._options.label;\r\n (!this._topLabel || !this._bottomLabel) && this._createLabel();\r\n this._topLabel.setOptions(options);\r\n this._bottomLabel.setOptions(options)\r\n },\r\n _createLabel: function() {\r\n var options = {\r\n renderer: this.series._renderer,\r\n labelsGroup: this.series._labelsGroup,\r\n point: this\r\n };\r\n this._topLabel = new Label(options);\r\n this._bottomLabel = new Label(options)\r\n },\r\n _getGraphicBBox: function(location) {\r\n var options = this._options;\r\n var images = this._getImage(options.image);\r\n var image = \"top\" === location ? this._checkImage(images.top) : this._checkImage(images.bottom);\r\n var bBox;\r\n var coord = this._getPositionFromLocation(location);\r\n if (options.visible) {\r\n bBox = image ? this._getImageBBox(coord.x, coord.y) : this._getSymbolBBox(coord.x, coord.y, options.styles.normal.r)\r\n } else {\r\n bBox = {\r\n x: coord.x,\r\n y: coord.y,\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return bBox\r\n },\r\n _getPositionFromLocation: function(location) {\r\n var x;\r\n var y;\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n x = this.x;\r\n y = isTop ? _min(this.y, this.minY) : _max(this.y, this.minY)\r\n } else {\r\n x = isTop ? _max(this.x, this.minX) : _min(this.x, this.minX);\r\n y = this.y\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _checkOverlay: function(bottomCoord, topCoord, topValue) {\r\n return bottomCoord < topCoord + topValue\r\n },\r\n _getOverlayCorrections: function(topCoords, bottomCoords) {\r\n var rotated = this._options.rotated;\r\n var coordSelector = !rotated ? \"y\" : \"x\";\r\n var valueSelector = !rotated ? \"height\" : \"width\";\r\n var visibleArea = this.series.getValueAxis().getVisibleArea();\r\n var minBound = visibleArea[0];\r\n var maxBound = visibleArea[1];\r\n var delta = _round((topCoords[coordSelector] + topCoords[valueSelector] - bottomCoords[coordSelector]) / 2);\r\n var coord1 = topCoords[coordSelector] - delta;\r\n var coord2 = bottomCoords[coordSelector] + delta;\r\n if (coord1 < minBound) {\r\n delta = minBound - coord1;\r\n coord1 += delta;\r\n coord2 += delta\r\n } else if (coord2 + bottomCoords[valueSelector] > maxBound) {\r\n delta = maxBound - coord2 - bottomCoords[valueSelector];\r\n coord1 += delta;\r\n coord2 += delta\r\n }\r\n return {\r\n coord1: coord1,\r\n coord2: coord2\r\n }\r\n },\r\n _checkLabelsOverlay: function(topLocation) {\r\n var topCoords = this._topLabel.getBoundingRect();\r\n var bottomCoords = this._bottomLabel.getBoundingRect();\r\n var corrections = {};\r\n if (!this._options.rotated) {\r\n if (\"top\" === topLocation) {\r\n if (this._checkOverlay(bottomCoords.y, topCoords.y, topCoords.height)) {\r\n corrections = this._getOverlayCorrections(topCoords, bottomCoords);\r\n this._topLabel.shift(topCoords.x, corrections.coord1);\r\n this._bottomLabel.shift(bottomCoords.x, corrections.coord2)\r\n }\r\n } else if (this._checkOverlay(topCoords.y, bottomCoords.y, bottomCoords.height)) {\r\n corrections = this._getOverlayCorrections(bottomCoords, topCoords);\r\n this._topLabel.shift(topCoords.x, corrections.coord2);\r\n this._bottomLabel.shift(bottomCoords.x, corrections.coord1)\r\n }\r\n } else if (\"top\" === topLocation) {\r\n if (this._checkOverlay(topCoords.x, bottomCoords.x, bottomCoords.width)) {\r\n corrections = this._getOverlayCorrections(bottomCoords, topCoords);\r\n this._topLabel.shift(corrections.coord2, topCoords.y);\r\n this._bottomLabel.shift(corrections.coord1, bottomCoords.y)\r\n }\r\n } else if (this._checkOverlay(bottomCoords.x, topCoords.x, topCoords.width)) {\r\n corrections = this._getOverlayCorrections(topCoords, bottomCoords);\r\n this._topLabel.shift(corrections.coord1, topCoords.y);\r\n this._bottomLabel.shift(corrections.coord2, bottomCoords.y)\r\n }\r\n },\r\n _drawLabel: function() {\r\n var labels = [];\r\n var notInverted = this._options.rotated ? this.x >= this.minX : this.y < this.minY;\r\n var customVisibility = this._getCustomLabelVisibility();\r\n var topLabel = this._topLabel;\r\n var bottomLabel = this._bottomLabel;\r\n topLabel.pointPosition = notInverted ? \"top\" : \"bottom\";\r\n bottomLabel.pointPosition = notInverted ? \"bottom\" : \"top\";\r\n if ((this.series.getLabelVisibility() || customVisibility) && this.hasValue() && false !== customVisibility) {\r\n false !== this.visibleTopMarker && labels.push(topLabel);\r\n false !== this.visibleBottomMarker && labels.push(bottomLabel);\r\n each(labels, (function(_, label) {\r\n label.draw(true)\r\n }));\r\n this._checkLabelsOverlay(this._topLabel.pointPosition)\r\n } else {\r\n topLabel.draw(false);\r\n bottomLabel.draw(false)\r\n }\r\n },\r\n _getImage: function(imageOption) {\r\n var image = {};\r\n if (_isDefined(imageOption)) {\r\n if (\"string\" === typeof imageOption) {\r\n image.top = image.bottom = imageOption\r\n } else {\r\n image.top = {\r\n url: \"string\" === typeof imageOption.url ? imageOption.url : imageOption.url && imageOption.url.rangeMaxPoint,\r\n width: \"number\" === typeof imageOption.width ? imageOption.width : imageOption.width && imageOption.width.rangeMaxPoint,\r\n height: \"number\" === typeof imageOption.height ? imageOption.height : imageOption.height && imageOption.height.rangeMaxPoint\r\n };\r\n image.bottom = {\r\n url: \"string\" === typeof imageOption.url ? imageOption.url : imageOption.url && imageOption.url.rangeMinPoint,\r\n width: \"number\" === typeof imageOption.width ? imageOption.width : imageOption.width && imageOption.width.rangeMinPoint,\r\n height: \"number\" === typeof imageOption.height ? imageOption.height : imageOption.height && imageOption.height.rangeMinPoint\r\n }\r\n }\r\n }\r\n return image\r\n },\r\n _checkSymbol: function(oldOptions, newOptions) {\r\n var oldSymbol = oldOptions.symbol;\r\n var newSymbol = newOptions.symbol;\r\n var symbolChanged = \"circle\" === oldSymbol && \"circle\" !== newSymbol || \"circle\" !== oldSymbol && \"circle\" === newSymbol;\r\n var oldImages = this._getImage(oldOptions.image);\r\n var newImages = this._getImage(newOptions.image);\r\n var topImageChanged = this._checkImage(oldImages.top) !== this._checkImage(newImages.top);\r\n var bottomImageChanged = this._checkImage(oldImages.bottom) !== this._checkImage(newImages.bottom);\r\n return symbolChanged || topImageChanged || bottomImageChanged\r\n },\r\n _getSettingsForTwoMarkers: function(style) {\r\n var options = this._options;\r\n var settings = {};\r\n var x = options.rotated ? _min(this.x, this.minX) : this.x;\r\n var y = options.rotated ? this.y : _min(this.y, this.minY);\r\n var radius = style.r;\r\n var points = this._populatePointShape(options.symbol, radius);\r\n settings.top = _extend({\r\n translateX: x + this.width,\r\n translateY: y,\r\n r: radius\r\n }, style);\r\n settings.bottom = _extend({\r\n translateX: x,\r\n translateY: y + this.height,\r\n r: radius\r\n }, style);\r\n if (points) {\r\n settings.top.points = settings.bottom.points = points\r\n }\r\n return settings\r\n },\r\n _hasGraphic: function() {\r\n return this.graphic && this.graphic.topMarker && this.graphic.bottomMarker\r\n },\r\n _drawOneMarker: function(renderer, markerType, imageSettings, settings) {\r\n var graphic = this.graphic;\r\n if (graphic[markerType]) {\r\n this._updateOneMarker(markerType, settings)\r\n } else {\r\n graphic[markerType] = this._createMarker(renderer, graphic, imageSettings, settings)\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled, firstDrawing, style) {\r\n var settings = this._getSettingsForTwoMarkers(style || this._getStyle());\r\n var image = this._getImage(this._options.image);\r\n if (this._checkImage(image.top)) {\r\n settings.top = this._getImageSettings(settings.top, image.top)\r\n }\r\n if (this._checkImage(image.bottom)) {\r\n settings.bottom = this._getImageSettings(settings.bottom, image.bottom)\r\n }\r\n this.graphic = this.graphic || renderer.g().append(group);\r\n this.visibleTopMarker && this._drawOneMarker(renderer, \"topMarker\", image.top, settings.top);\r\n this.visibleBottomMarker && this._drawOneMarker(renderer, \"bottomMarker\", image.bottom, settings.bottom)\r\n },\r\n _getSettingsForTracker: function(radius) {\r\n var rotated = this._options.rotated;\r\n return {\r\n translateX: rotated ? _min(this.x, this.minX) - radius : this.x - radius,\r\n translateY: rotated ? this.y - radius : _min(this.y, this.minY) - radius,\r\n width: this.width + 2 * radius,\r\n height: this.height + 2 * radius\r\n }\r\n },\r\n isInVisibleArea: function() {\r\n var rotated = this._options.rotated;\r\n var argument = !rotated ? this.x : this.y;\r\n var maxValue = !rotated ? _max(this.minY, this.y) : _max(this.minX, this.x);\r\n var minValue = !rotated ? _min(this.minY, this.y) : _min(this.minX, this.x);\r\n var tmp;\r\n var visibleTopMarker;\r\n var visibleBottomMarker;\r\n var visibleRangeArea = true;\r\n var visibleArgArea = this.series.getArgumentAxis().getVisibleArea();\r\n var visibleValArea = this.series.getValueAxis().getVisibleArea();\r\n var notVisibleByArg = visibleArgArea[1] < argument || visibleArgArea[0] > argument;\r\n var notVisibleByVal = visibleValArea[0] > minValue && visibleValArea[0] > maxValue || visibleValArea[1] < minValue && visibleValArea[1] < maxValue;\r\n if (notVisibleByArg || notVisibleByVal) {\r\n visibleTopMarker = visibleBottomMarker = visibleRangeArea = false\r\n } else {\r\n visibleTopMarker = visibleValArea[0] <= minValue && visibleValArea[1] > minValue;\r\n visibleBottomMarker = visibleValArea[0] < maxValue && visibleValArea[1] >= maxValue;\r\n if (rotated) {\r\n tmp = visibleTopMarker;\r\n visibleTopMarker = visibleBottomMarker;\r\n visibleBottomMarker = tmp\r\n }\r\n }\r\n this.visibleTopMarker = visibleTopMarker;\r\n this.visibleBottomMarker = visibleBottomMarker;\r\n return visibleRangeArea\r\n },\r\n getTooltipParams: function() {\r\n var x;\r\n var y;\r\n var rotated = this._options.rotated;\r\n var minValue = !rotated ? _min(this.y, this.minY) : _min(this.x, this.minX);\r\n var side = !rotated ? \"height\" : \"width\";\r\n var visibleArea = this._getVisibleArea();\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, minValue + this[side]);\r\n if (!rotated) {\r\n x = this.x;\r\n y = min + (max - min) / 2\r\n } else {\r\n y = this.y;\r\n x = min + (max - min) / 2\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n symbolPoint._translate.call(this);\r\n this.height = rotated ? 0 : _abs(this.minY - this.y);\r\n this.width = rotated ? _abs(this.x - this.minX) : 0\r\n },\r\n hasCoords: function() {\r\n return symbolPoint.hasCoords.call(this) && !(null === this.minX || null === this.minY)\r\n },\r\n _updateData: function(data) {\r\n symbolPoint._updateData.call(this, data);\r\n this.minValue = this.initialMinValue = this.originalMinValue = data.minValue\r\n },\r\n _getImageSettings: function(settings, image) {\r\n return {\r\n href: image.url || image.toString(),\r\n width: image.width || DEFAULT_IMAGE_WIDTH,\r\n height: image.height || DEFAULT_IMAGE_HEIGHT,\r\n translateX: settings.translateX,\r\n translateY: settings.translateY\r\n }\r\n },\r\n getCrosshairData: function(x, y) {\r\n var rotated = this._options.rotated;\r\n var minX = this.minX;\r\n var minY = this.minY;\r\n var vx = this.vx;\r\n var vy = this.vy;\r\n var value = this.value;\r\n var minValue = this.minValue;\r\n var argument = this.argument;\r\n var coords = {\r\n axis: this.series.axis,\r\n x: vx,\r\n y: vy,\r\n yValue: value,\r\n xValue: argument\r\n };\r\n if (rotated) {\r\n coords.yValue = argument;\r\n if (_abs(vx - x) < _abs(minX - x)) {\r\n coords.xValue = value\r\n } else {\r\n coords.x = minX;\r\n coords.xValue = minValue\r\n }\r\n } else if (_abs(vy - y) >= _abs(minY - y)) {\r\n coords.y = minY;\r\n coords.yValue = minValue\r\n }\r\n return coords\r\n },\r\n _updateOneMarker: function(markerType, settings) {\r\n this.graphic && this.graphic[markerType] && this.graphic[markerType].attr(settings)\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n this._drawMarker(void 0, void 0, false, false, style)\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var initialMinValue = this.initialMinValue;\r\n var initialValue = this.initialValue;\r\n var initialArgument = this.initialArgument;\r\n var minValue = tooltip.formatValue(initialMinValue);\r\n var value = tooltip.formatValue(initialValue);\r\n return {\r\n argument: initialArgument,\r\n argumentText: tooltip.formatValue(initialArgument, \"argument\"),\r\n valueText: minValue + \" - \" + value,\r\n rangeValue1Text: minValue,\r\n rangeValue2Text: value,\r\n rangeValue1: initialMinValue,\r\n rangeValue2: initialValue,\r\n seriesName: this.series.name,\r\n point: this,\r\n originalMinValue: this.originalMinValue,\r\n originalValue: this.originalValue,\r\n originalArgument: this.originalArgument\r\n }\r\n },\r\n getLabel: function() {\r\n return [this._topLabel, this._bottomLabel]\r\n },\r\n getLabels: function() {\r\n return [this._topLabel, this._bottomLabel]\r\n },\r\n getBoundingRect: noop,\r\n coordsIn: function(x, y) {\r\n var trackerRadius = this._storeTrackerR();\r\n var xCond = x >= this.x - trackerRadius && x <= this.x + trackerRadius;\r\n var yCond = y >= this.y - trackerRadius && y <= this.y + trackerRadius;\r\n if (this._options.rotated) {\r\n return yCond && (xCond || x >= this.minX - trackerRadius && x <= this.minX + trackerRadius)\r\n } else {\r\n return xCond && (yCond || y >= this.minY - trackerRadius && y <= this.minY + trackerRadius)\r\n }\r\n },\r\n getMaxValue: function() {\r\n if (\"discrete\" !== this.series.valueAxisType) {\r\n return this.minValue > this.value ? this.minValue : this.value\r\n }\r\n return this.value\r\n },\r\n getMinValue: function() {\r\n if (\"discrete\" !== this.series.valueAxisType) {\r\n return this.minValue < this.value ? this.minValue : this.value\r\n }\r\n return this.minValue\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/range_bar_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport barPoint from \"./bar_point\";\r\nimport rangeSymbolPointMethods from \"./range_symbol_point\";\r\nvar _extend = extend;\r\nexport default _extend({}, barPoint, {\r\n deleteLabel: rangeSymbolPointMethods.deleteLabel,\r\n _getFormatObject: rangeSymbolPointMethods._getFormatObject,\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n setInvisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && \"hidden\" !== graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n this._topLabel.draw(false);\r\n this._bottomLabel.draw(false)\r\n },\r\n getTooltipParams: function(location) {\r\n var edgeLocation = \"edge\" === location;\r\n var x;\r\n var y;\r\n if (this._options.rotated) {\r\n x = edgeLocation ? this.x + this.width : this.x + this.width / 2;\r\n y = this.y + this.height / 2\r\n } else {\r\n x = this.x + this.width / 2;\r\n y = edgeLocation ? this.y : this.y + this.height / 2\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var barMethods = barPoint;\r\n barMethods._translate.call(this);\r\n if (this._options.rotated) {\r\n this.width = this.width || 1\r\n } else {\r\n this.height = this.height || 1\r\n }\r\n },\r\n hasCoords: rangeSymbolPointMethods.hasCoords,\r\n _updateData: rangeSymbolPointMethods._updateData,\r\n _getLabelPosition: rangeSymbolPointMethods._getLabelPosition,\r\n _getLabelMinFormatObject: rangeSymbolPointMethods._getLabelMinFormatObject,\r\n _updateLabelData: rangeSymbolPointMethods._updateLabelData,\r\n _updateLabelOptions: rangeSymbolPointMethods._updateLabelOptions,\r\n getCrosshairData: rangeSymbolPointMethods.getCrosshairData,\r\n _createLabel: rangeSymbolPointMethods._createLabel,\r\n _checkOverlay: rangeSymbolPointMethods._checkOverlay,\r\n _checkLabelsOverlay: rangeSymbolPointMethods._checkLabelsOverlay,\r\n _getOverlayCorrections: rangeSymbolPointMethods._getOverlayCorrections,\r\n _drawLabel: rangeSymbolPointMethods._drawLabel,\r\n _getLabelCoords: rangeSymbolPointMethods._getLabelCoords,\r\n getLabel: rangeSymbolPointMethods.getLabel,\r\n getLabels: rangeSymbolPointMethods.getLabels,\r\n getBoundingRect: noop,\r\n getMinValue: rangeSymbolPointMethods.getMinValue,\r\n getMaxValue: rangeSymbolPointMethods.getMaxValue\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/candlestick_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _min = _math.min;\r\nvar _max = _math.max;\r\nvar _round = _math.round;\r\nvar DEFAULT_FINANCIAL_TRACKER_MARGIN = 2;\r\nexport default _extend({}, barPoint, {\r\n _calculateVisibility: symbolPoint._calculateVisibility,\r\n _getContinuousPoints: function(openCoord, closeCoord) {\r\n var x = this.x;\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n var width = this.width;\r\n var highCoord = this.highY;\r\n var max = _abs(highCoord - openCoord) < _abs(highCoord - closeCoord) ? openCoord : closeCoord;\r\n var min = max === closeCoord ? openCoord : closeCoord;\r\n var points;\r\n if (min === max) {\r\n points = [].concat(createPoint(x, this.highY)).concat(createPoint(x, this.lowY)).concat(createPoint(x, this.closeY)).concat(createPoint(x - width / 2, this.closeY)).concat(createPoint(x + width / 2, this.closeY)).concat(createPoint(x, this.closeY))\r\n } else {\r\n points = [].concat(createPoint(x, this.highY)).concat(createPoint(x, max)).concat(createPoint(x + width / 2, max)).concat(createPoint(x + width / 2, min)).concat(createPoint(x, min)).concat(createPoint(x, this.lowY)).concat(createPoint(x, min)).concat(createPoint(x - width / 2, min)).concat(createPoint(x - width / 2, max)).concat(createPoint(x, max))\r\n }\r\n return points\r\n },\r\n _getCrockPoints: function(y) {\r\n var x = this.x;\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n return [].concat(createPoint(x, this.highY)).concat(createPoint(x, this.lowY)).concat(createPoint(x, y)).concat(createPoint(x - this.width / 2, y)).concat(createPoint(x + this.width / 2, y)).concat(createPoint(x, y))\r\n },\r\n _getPoints: function() {\r\n var points;\r\n var closeCoord = this.closeY;\r\n var openCoord = this.openY;\r\n if (null !== closeCoord && null !== openCoord) {\r\n points = this._getContinuousPoints(openCoord, closeCoord)\r\n } else if (openCoord === closeCoord) {\r\n points = [this.x, this.highY, this.x, this.lowY]\r\n } else {\r\n points = this._getCrockPoints(null !== openCoord ? openCoord : closeCoord)\r\n }\r\n return points\r\n },\r\n getColor: function() {\r\n return this._isReduction ? this._options.reduction.color : this._styles.normal.stroke || this.series.getColor()\r\n },\r\n _drawMarkerInGroup: function(group, attributes, renderer) {\r\n this.graphic = renderer.path(this._getPoints(), \"area\").attr({\r\n \"stroke-linecap\": \"square\"\r\n }).attr(attributes).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n _fillStyle: function() {\r\n var styles = this._options.styles;\r\n if (this._isReduction && this._isPositive) {\r\n this._styles = styles.reductionPositive\r\n } else if (this._isReduction) {\r\n this._styles = styles.reduction\r\n } else if (this._isPositive) {\r\n this._styles = styles.positive\r\n } else {\r\n this._styles = styles\r\n }\r\n },\r\n _getMinTrackerWidth: function() {\r\n return 2 + 2 * this._styles.normal[\"stroke-width\"]\r\n },\r\n correctCoordinates: function(correctOptions) {\r\n var minWidth = this._getMinTrackerWidth();\r\n var width = correctOptions.width;\r\n width = width < minWidth ? minWidth : width > 10 ? 10 : width;\r\n this.width = width + width % 2;\r\n this.xCorrection = correctOptions.offset\r\n },\r\n _getMarkerGroup: function(group) {\r\n var markerGroup;\r\n if (this._isReduction && this._isPositive) {\r\n markerGroup = group.reductionPositiveMarkersGroup\r\n } else if (this._isReduction) {\r\n markerGroup = group.reductionMarkersGroup\r\n } else if (this._isPositive) {\r\n markerGroup = group.defaultPositiveMarkersGroup\r\n } else {\r\n markerGroup = group.defaultMarkersGroup\r\n }\r\n return markerGroup\r\n },\r\n _drawMarker: function(renderer, group) {\r\n this._drawMarkerInGroup(this._getMarkerGroup(group), this._getStyle(), renderer)\r\n },\r\n _getSettingsForTracker: function() {\r\n var highY = this.highY;\r\n var lowY = this.lowY;\r\n var rotated = this._options.rotated;\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (highY === lowY) {\r\n highY = rotated ? highY + DEFAULT_FINANCIAL_TRACKER_MARGIN : highY - DEFAULT_FINANCIAL_TRACKER_MARGIN;\r\n lowY = rotated ? lowY - DEFAULT_FINANCIAL_TRACKER_MARGIN : lowY + DEFAULT_FINANCIAL_TRACKER_MARGIN\r\n }\r\n if (rotated) {\r\n x = _min(lowY, highY);\r\n y = this.x - this.width / 2;\r\n width = _abs(lowY - highY);\r\n height = this.width\r\n } else {\r\n x = this.x - this.width / 2;\r\n y = _min(lowY, highY);\r\n width = this.width;\r\n height = _abs(lowY - highY)\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _getGraphicBBox: function(location) {\r\n var rotated = this._options.rotated;\r\n var x = this.x;\r\n var width = this.width;\r\n var lowY = this.lowY;\r\n var highY = this.highY;\r\n if (location) {\r\n var valVisibleArea = this.series.getValueAxis().getVisibleArea();\r\n highY = this._truncateCoord(highY, valVisibleArea);\r\n lowY = this._truncateCoord(lowY, valVisibleArea)\r\n }\r\n var bBox = {\r\n x: !rotated ? x - _round(width / 2) : lowY,\r\n y: !rotated ? highY : x - _round(width / 2),\r\n width: !rotated ? width : highY - lowY,\r\n height: !rotated ? lowY - highY : width\r\n };\r\n if (location) {\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n bBox.y = isTop ? bBox.y : bBox.y + bBox.height;\r\n bBox.height = 0\r\n } else {\r\n bBox.x = isTop ? bBox.x + bBox.width : bBox.x;\r\n bBox.width = 0\r\n }\r\n }\r\n return bBox\r\n },\r\n getTooltipParams: function(location) {\r\n if (this.graphic) {\r\n var minValue = _min(this.lowY, this.highY);\r\n var maxValue = _max(this.lowY, this.highY);\r\n var visibleArea = this._getVisibleArea();\r\n var rotated = this._options.rotated;\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, maxValue);\r\n var centerCoord = this.getCenterCoord();\r\n if (\"edge\" === location) {\r\n centerCoord[rotated ? \"x\" : \"y\"] = rotated ? max : min\r\n }\r\n centerCoord.offset = 0;\r\n return centerCoord\r\n }\r\n },\r\n getCenterCoord() {\r\n if (this.graphic) {\r\n var x;\r\n var y;\r\n var minValue = _min(this.lowY, this.highY);\r\n var maxValue = _max(this.lowY, this.highY);\r\n var visibleArea = this._getVisibleArea();\r\n var rotated = this._options.rotated;\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, maxValue);\r\n var center = min + (max - min) / 2;\r\n if (rotated) {\r\n y = this.x;\r\n x = center\r\n } else {\r\n x = this.x;\r\n y = center\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n }\r\n },\r\n hasValue: function() {\r\n return null !== this.highValue && null !== this.lowValue\r\n },\r\n hasCoords: function() {\r\n return null !== this.x && null !== this.lowY && null !== this.highY\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n var valTranslator = this._getValTranslator();\r\n var x = this._getArgTranslator().translate(this.argument);\r\n this.vx = this.vy = this.x = null === x ? x : x + (this.xCorrection || 0);\r\n this.openY = null !== this.openValue ? valTranslator.translate(this.openValue) : null;\r\n this.highY = valTranslator.translate(this.highValue);\r\n this.lowY = valTranslator.translate(this.lowValue);\r\n this.closeY = null !== this.closeValue ? valTranslator.translate(this.closeValue) : null;\r\n var centerValue = _min(this.lowY, this.highY) + _abs(this.lowY - this.highY) / 2;\r\n this._calculateVisibility(!rotated ? this.x : centerValue, !rotated ? centerValue : this.x)\r\n },\r\n getCrosshairData: function(x, y) {\r\n var rotated = this._options.rotated;\r\n var origY = rotated ? x : y;\r\n var yValue;\r\n var argument = this.argument;\r\n var coords;\r\n var coord = \"low\";\r\n if (_abs(this.lowY - origY) < _abs(this.closeY - origY)) {\r\n yValue = this.lowY\r\n } else {\r\n yValue = this.closeY;\r\n coord = \"close\"\r\n }\r\n if (_abs(yValue - origY) >= _abs(this.openY - origY)) {\r\n yValue = this.openY;\r\n coord = \"open\"\r\n }\r\n if (_abs(yValue - origY) >= _abs(this.highY - origY)) {\r\n yValue = this.highY;\r\n coord = \"high\"\r\n }\r\n if (rotated) {\r\n coords = {\r\n y: this.vy,\r\n x: yValue,\r\n xValue: this[coord + \"Value\"],\r\n yValue: argument\r\n }\r\n } else {\r\n coords = {\r\n x: this.vx,\r\n y: yValue,\r\n xValue: argument,\r\n yValue: this[coord + \"Value\"]\r\n }\r\n }\r\n coords.axis = this.series.axis;\r\n return coords\r\n },\r\n _updateData: function(data) {\r\n var label = this._label;\r\n var reductionColor = this._options.reduction.color;\r\n this.value = this.initialValue = data.reductionValue;\r\n this.originalValue = data.value;\r\n this.lowValue = this.originalLowValue = data.lowValue;\r\n this.highValue = this.originalHighValue = data.highValue;\r\n this.openValue = this.originalOpenValue = data.openValue;\r\n this.closeValue = this.originalCloseValue = data.closeValue;\r\n this._isPositive = data.openValue < data.closeValue;\r\n this._isReduction = data.isReduction;\r\n if (this._isReduction) {\r\n label.setColor(reductionColor)\r\n }\r\n },\r\n _updateMarker: function(animationEnabled, style, group) {\r\n var graphic = this.graphic;\r\n graphic.attr({\r\n points: this._getPoints()\r\n }).smartAttr(style).sharp();\r\n group && graphic.append(this._getMarkerGroup(group))\r\n },\r\n _getLabelFormatObject: function() {\r\n return {\r\n openValue: this.openValue,\r\n highValue: this.highValue,\r\n lowValue: this.lowValue,\r\n closeValue: this.closeValue,\r\n reductionValue: this.initialValue,\r\n argument: this.initialArgument,\r\n value: this.initialValue,\r\n seriesName: this.series.name,\r\n originalOpenValue: this.originalOpenValue,\r\n originalCloseValue: this.originalCloseValue,\r\n originalLowValue: this.originalLowValue,\r\n originalHighValue: this.originalHighValue,\r\n originalArgument: this.originalArgument,\r\n point: this\r\n }\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var highValue = tooltip.formatValue(this.highValue);\r\n var openValue = tooltip.formatValue(this.openValue);\r\n var closeValue = tooltip.formatValue(this.closeValue);\r\n var lowValue = tooltip.formatValue(this.lowValue);\r\n var symbolMethods = symbolPoint;\r\n var formatObject = symbolMethods._getFormatObject.call(this, tooltip);\r\n return _extend({}, formatObject, {\r\n valueText: \"h: \" + highValue + (\"\" !== openValue ? \" o: \" + openValue : \"\") + (\"\" !== closeValue ? \" c: \" + closeValue : \"\") + \" l: \" + lowValue,\r\n highValueText: highValue,\r\n openValueText: openValue,\r\n closeValueText: closeValue,\r\n lowValueText: lowValue\r\n })\r\n },\r\n getMaxValue: function() {\r\n return this.highValue\r\n },\r\n getMinValue: function() {\r\n return this.lowValue\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/stock_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isNumeric\r\n} from \"../../../core/utils/type\";\r\nimport candlestickPoint from \"./candlestick_point\";\r\nvar _extend = extend;\r\nvar _isNumeric = isNumeric;\r\nexport default _extend({}, candlestickPoint, {\r\n _getPoints: function() {\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n var openYExist = _isNumeric(this.openY);\r\n var closeYExist = _isNumeric(this.closeY);\r\n var x = this.x;\r\n var width = this.width;\r\n var points = [].concat(createPoint(x, this.highY));\r\n openYExist && (points = points.concat(createPoint(x, this.openY)));\r\n openYExist && (points = points.concat(createPoint(x - width / 2, this.openY)));\r\n openYExist && (points = points.concat(createPoint(x, this.openY)));\r\n closeYExist && (points = points.concat(createPoint(x, this.closeY)));\r\n closeYExist && (points = points.concat(createPoint(x + width / 2, this.closeY)));\r\n closeYExist && (points = points.concat(createPoint(x, this.closeY)));\r\n points = points.concat(createPoint(x, this.lowY));\r\n return points\r\n },\r\n _drawMarkerInGroup: function(group, attributes, renderer) {\r\n this.graphic = renderer.path(this._getPoints(), \"line\").attr({\r\n \"stroke-linecap\": \"square\"\r\n }).attr(attributes).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n _getMinTrackerWidth: function() {\r\n var width = 2 + this._styles.normal[\"stroke-width\"];\r\n return width + width % 2\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/polar_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nimport piePoint from \"./pie_point\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n normalizeAngle,\r\n convertPolarToXY,\r\n getCosAndSin,\r\n convertXYToPolar\r\n} from \"../../core/utils\";\r\nvar _math = Math;\r\nvar _max = _math.max;\r\nimport consts from \"../../components/consts\";\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\nvar ERROR_BARS_ANGLE_OFFSET = 90;\r\nvar CANVAS_POSITION_START = \"canvas_position_start\";\r\nvar CANVAS_POSITION_END = \"canvas_position_end\";\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\nexport var polarSymbolPoint = _extend({}, symbolPoint, {\r\n _getLabelCoords: piePoint._getLabelCoords,\r\n _getElementCoords: piePoint._getElementCoords,\r\n _moveLabelOnCanvas: function(coord, visibleArea, labelBBox) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (visibleArea.minX > x) {\r\n x = visibleArea.minX\r\n }\r\n if (visibleArea.maxX < x + labelBBox.width) {\r\n x = visibleArea.maxX - labelBBox.width\r\n }\r\n if (visibleArea.minY > y) {\r\n y = visibleArea.minY\r\n }\r\n if (visibleArea.maxY < y + labelBBox.height) {\r\n y = visibleArea.maxY - labelBBox.height\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getLabelPosition: function() {\r\n return \"outside\"\r\n },\r\n _getCoords: function(argument, value) {\r\n var axis = this.series.getValueAxis();\r\n var startAngle = axis.getAngles()[0];\r\n var angle = this._getArgTranslator().translate(argument);\r\n var radius = this._getValTranslator().translate(value);\r\n var coords = convertPolarToXY(axis.getCenter(), axis.getAngles()[0], angle, radius);\r\n coords.angle = angle + startAngle - 90, coords.radius = radius;\r\n return coords\r\n },\r\n _translate() {\r\n var center = this.series.getValueAxis().getCenter();\r\n var coord = this._getCoords(this.argument, this.value);\r\n var translator = this._getValTranslator();\r\n var maxRadius = translator.isInverted() ? translator.translate(CANVAS_POSITION_START) : translator.translate(CANVAS_POSITION_END);\r\n var normalizedRadius = isDefined(coord.radius) && coord.radius >= 0 ? coord.radius : null;\r\n this.vx = normalizeAngle(coord.angle);\r\n this.vy = this.radiusOuter = this.radiusLabels = normalizedRadius;\r\n this.radiusLabels += RADIAL_LABEL_INDENT;\r\n this.radius = normalizedRadius;\r\n this.middleAngle = -coord.angle;\r\n this.angle = -coord.angle;\r\n this.x = coord.x;\r\n this.y = coord.y;\r\n this.defaultX = this.centerX = center.x;\r\n this.defaultY = this.centerY = center.y;\r\n this._translateErrorBars();\r\n this.inVisibleArea = this._checkRadiusForVisibleArea(normalizedRadius, maxRadius)\r\n },\r\n _checkRadiusForVisibleArea: (radius, maxRadius) => isDefined(radius) && radius <= maxRadius,\r\n _translateErrorBars: function() {\r\n var errorBars = this._options.errorBars;\r\n var translator = this._getValTranslator();\r\n if (!errorBars) {\r\n return\r\n }\r\n isDefined(this.lowError) && (this._lowErrorCoord = this.centerY - translator.translate(this.lowError));\r\n isDefined(this.highError) && (this._highErrorCoord = this.centerY - translator.translate(this.highError));\r\n this._errorBarPos = this.centerX;\r\n this._baseErrorBarPos = \"stdDeviation\" === errorBars.type ? this._lowErrorCoord + (this._highErrorCoord - this._lowErrorCoord) / 2 : this.centerY - this.radius\r\n },\r\n _getTranslates: function(animationEnabled) {\r\n return animationEnabled ? this.getDefaultCoords() : {\r\n x: this.x,\r\n y: this.y\r\n }\r\n },\r\n getDefaultCoords: function() {\r\n var cosSin = getCosAndSin(-this.angle);\r\n var radius = this._getValTranslator().translate(CANVAS_POSITION_DEFAULT);\r\n var x = this.defaultX + radius * cosSin.cos;\r\n var y = this.defaultY + radius * cosSin.sin;\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n return coord\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var graphicBBox = this._getGraphicBBox();\r\n if (this._isPointInVisibleArea(visibleArea, graphicBBox)) {\r\n coord = this._moveLabelOnCanvas(coord, visibleArea, label.getBoundingRect())\r\n }\r\n return coord\r\n },\r\n _getErrorBarSettings: function(errorBarOptions, animationEnabled) {\r\n var settings = symbolPoint._getErrorBarSettings.call(this, errorBarOptions, animationEnabled);\r\n settings.rotate = ERROR_BARS_ANGLE_OFFSET - this.angle;\r\n settings.rotateX = this.centerX;\r\n settings.rotateY = this.centerY;\r\n return settings\r\n },\r\n getCoords: function(min) {\r\n return min ? this.getDefaultCoords() : {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n});\r\nexport var polarBarPoint = _extend({}, barPoint, {\r\n _translateErrorBars: polarSymbolPoint._translateErrorBars,\r\n _getErrorBarSettings: polarSymbolPoint._getErrorBarSettings,\r\n _moveLabelOnCanvas: polarSymbolPoint._moveLabelOnCanvas,\r\n _getLabelCoords: piePoint._getLabelCoords,\r\n _getElementCoords: piePoint._getElementCoords,\r\n _getLabelConnector: piePoint._getLabelConnector,\r\n getTooltipParams: piePoint.getTooltipParams,\r\n _getLabelPosition: piePoint._getLabelPosition,\r\n _getCoords: polarSymbolPoint._getCoords,\r\n _translate() {\r\n var translator = this._getValTranslator();\r\n var businessRange = translator.getBusinessRange();\r\n var maxRadius = translator.isInverted() ? translator.translate(CANVAS_POSITION_START) : translator.translate(CANVAS_POSITION_END);\r\n this.radiusInner = translator.translate(this.minValue);\r\n polarSymbolPoint._translate.call(this);\r\n if (null === this.radiusInner) {\r\n this.radiusInner = this.radius = maxRadius\r\n } else if (null === this.radius) {\r\n this.radius = this.value >= businessRange.minVisible ? maxRadius : 0\r\n } else if (this.radius > maxRadius) {\r\n this.radius = maxRadius\r\n }\r\n this.radiusOuter = this.radiusLabels = _max(this.radiusInner, this.radius);\r\n this.radiusLabels += RADIAL_LABEL_INDENT;\r\n this.radiusInner = this.defaultRadius = _math.min(this.radiusInner, this.radius);\r\n this.middleAngle = this.angle = -normalizeAngle(this.middleAngleCorrection - this.angle)\r\n },\r\n _checkRadiusForVisibleArea(radius) {\r\n return isDefined(radius) || this._getValTranslator().translate(this.minValue) > 0\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n var coord = this.getMarkerCoords();\r\n return _math.PI * coord.outerRadius * _math.abs(coord.startAngle - coord.endAngle) / 180\r\n },\r\n getMarkerCoords: function() {\r\n return {\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.defaultRadius,\r\n startAngle: this.middleAngle - this.interval / 2,\r\n endAngle: this.middleAngle + this.interval / 2\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var styles = this._getStyle();\r\n var coords = this.getMarkerCoords();\r\n var innerRadius = coords.innerRadius;\r\n var outerRadius = coords.outerRadius;\r\n var start = this._getCoords(this.argument, CANVAS_POSITION_DEFAULT);\r\n var x = coords.x;\r\n var y = coords.y;\r\n if (animationEnabled) {\r\n innerRadius = 0;\r\n outerRadius = 0;\r\n x = start.x;\r\n y = start.y\r\n }\r\n this.graphic = renderer.arc(x, y, innerRadius, outerRadius, coords.startAngle, coords.endAngle).attr(styles).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var angleFunctions = getCosAndSin(this.middleAngle);\r\n var x = this.centerX + this.defaultRadius * angleFunctions.cos;\r\n var y = this.centerY - this.defaultRadius * angleFunctions.sin;\r\n if (x > visibleArea.minX && x < visibleArea.maxX && y > visibleArea.minY && y < visibleArea.maxY) {\r\n coord = this._moveLabelOnCanvas(coord, visibleArea, label.getBoundingRect())\r\n }\r\n return coord\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n return coord\r\n },\r\n correctCoordinates: function(correctOptions) {\r\n this.middleAngleCorrection = correctOptions.offset;\r\n this.interval = correctOptions.width\r\n },\r\n coordsIn: function(x, y) {\r\n var val = convertXYToPolar(this.series.getValueAxis().getCenter(), x, y);\r\n var coords = this.getMarkerCoords();\r\n var isBetweenAngles = coords.startAngle < coords.endAngle ? -val.phi >= coords.startAngle && -val.phi <= coords.endAngle : -val.phi <= coords.startAngle && -val.phi >= coords.endAngle;\r\n return val.r >= coords.innerRadius && val.r <= coords.outerRadius && isBetweenAngles\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/base_point.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar mixins = {};\r\nimport consts from \"../../components/consts\";\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nimport bubblePoint from \"./bubble_point\";\r\nimport piePoint from \"./pie_point\";\r\nimport rangeSymbolPoint from \"./range_symbol_point\";\r\nimport rangeBarPoint from \"./range_bar_point\";\r\nimport candlestickPoint from \"./candlestick_point\";\r\nimport stockPoint from \"./stock_point\";\r\nimport {\r\n polarSymbolPoint,\r\n polarBarPoint\r\n} from \"./polar_point\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n noop as _noop\r\n} from \"../../../core/utils/common\";\r\nvar statesConsts = consts.states;\r\nvar SYMBOL_POINT = \"symbolPoint\";\r\nvar POLAR_SYMBOL_POINT = \"polarSymbolPoint\";\r\nvar BAR_POINT = \"barPoint\";\r\nvar POLAR_BAR_POINT = \"polarBarPoint\";\r\nvar PIE_POINT = \"piePoint\";\r\nvar SELECTED_STATE = statesConsts.selectedMark;\r\nvar HOVER_STATE = statesConsts.hoverMark;\r\nvar NORMAL_STATE = statesConsts.normalMark;\r\nvar HOVER = statesConsts.hover;\r\nvar NORMAL = statesConsts.normal;\r\nvar SELECTION = statesConsts.selection;\r\nvar pointTypes = {\r\n chart: {\r\n scatter: SYMBOL_POINT,\r\n line: SYMBOL_POINT,\r\n spline: SYMBOL_POINT,\r\n stepline: SYMBOL_POINT,\r\n stackedline: SYMBOL_POINT,\r\n fullstackedline: SYMBOL_POINT,\r\n stackedspline: SYMBOL_POINT,\r\n fullstackedspline: SYMBOL_POINT,\r\n stackedsplinearea: SYMBOL_POINT,\r\n fullstackedsplinearea: SYMBOL_POINT,\r\n area: SYMBOL_POINT,\r\n splinearea: SYMBOL_POINT,\r\n steparea: SYMBOL_POINT,\r\n stackedarea: SYMBOL_POINT,\r\n fullstackedarea: SYMBOL_POINT,\r\n rangearea: \"rangeSymbolPoint\",\r\n bar: BAR_POINT,\r\n stackedbar: BAR_POINT,\r\n fullstackedbar: BAR_POINT,\r\n rangebar: \"rangeBarPoint\",\r\n bubble: \"bubblePoint\",\r\n stock: \"stockPoint\",\r\n candlestick: \"candlestickPoint\"\r\n },\r\n pie: {\r\n pie: PIE_POINT,\r\n doughnut: PIE_POINT,\r\n donut: PIE_POINT\r\n },\r\n polar: {\r\n scatter: POLAR_SYMBOL_POINT,\r\n line: POLAR_SYMBOL_POINT,\r\n area: POLAR_SYMBOL_POINT,\r\n bar: POLAR_BAR_POINT,\r\n stackedbar: POLAR_BAR_POINT\r\n }\r\n};\r\n\r\nfunction isNoneMode(mode) {\r\n return \"none\" === _normalizeEnum(mode)\r\n}\r\nexport function Point(series, dataItem, options) {\r\n this.fullState = NORMAL_STATE;\r\n this.series = series;\r\n this.update(dataItem, options);\r\n this._viewCounters = {\r\n hover: 0,\r\n selection: 0\r\n };\r\n this._emptySettings = {\r\n fill: null,\r\n stroke: null,\r\n dashStyle: null,\r\n filter: null\r\n }\r\n}\r\nmixins.symbolPoint = symbolPoint;\r\nmixins.barPoint = barPoint;\r\nmixins.bubblePoint = bubblePoint;\r\nmixins.piePoint = piePoint;\r\nmixins.rangeSymbolPoint = rangeSymbolPoint;\r\nmixins.rangeBarPoint = rangeBarPoint;\r\nmixins.candlestickPoint = candlestickPoint;\r\nmixins.stockPoint = stockPoint;\r\nmixins.polarSymbolPoint = polarSymbolPoint;\r\nmixins.polarBarPoint = polarBarPoint;\r\nPoint.prototype = {\r\n constructor: Point,\r\n getColor: function() {\r\n if (!this.hasValue() && !this._styles.usePointCustomOptions) {\r\n this.series.customizePoint(this, this._dataItem)\r\n }\r\n return this._styles.normal.fill || this.series.getColor()\r\n },\r\n _getStyle: function() {\r\n return this._styles[this._currentStyle || \"normal\"]\r\n },\r\n update: function(dataItem, options) {\r\n this.updateOptions(options);\r\n this.updateData(dataItem)\r\n },\r\n updateData: function(dataItem) {\r\n var argumentWasChanged = this.argument !== dataItem.argument;\r\n this.argument = this.initialArgument = this.originalArgument = dataItem.argument;\r\n this.tag = dataItem.tag;\r\n this.index = dataItem.index;\r\n this._dataItem = dataItem;\r\n this.data = dataItem.data;\r\n this.lowError = dataItem.lowError;\r\n this.highError = dataItem.highError;\r\n this.aggregationInfo = dataItem.aggregationInfo;\r\n this._updateData(dataItem, argumentWasChanged);\r\n !this.hasValue() && this.setInvisibility();\r\n this._fillStyle();\r\n this._updateLabelData()\r\n },\r\n deleteMarker: function() {\r\n if (this.graphic) {\r\n this.graphic.dispose()\r\n }\r\n this.graphic = null\r\n },\r\n draw: function(renderer, groups, animationEnabled, firstDrawing) {\r\n if (this._needDeletingOnDraw || this.series.autoHidePointMarkers && !this.isSelected()) {\r\n this.deleteMarker();\r\n this._needDeletingOnDraw = false\r\n }\r\n if (this._needClearingOnDraw) {\r\n this.clearMarker();\r\n this._needClearingOnDraw = false\r\n }\r\n if (!this._hasGraphic()) {\r\n this.getMarkerVisibility() && !this.series.autoHidePointMarkers && this._drawMarker(renderer, groups.markers, animationEnabled, firstDrawing)\r\n } else {\r\n this._updateMarker(animationEnabled, this._getStyle(), groups.markers)\r\n }\r\n this._drawLabel();\r\n this._drawErrorBar(renderer, groups.errorBars, animationEnabled);\r\n return this\r\n },\r\n _getViewStyle: function() {\r\n var state = NORMAL_STATE;\r\n var fullState = this.fullState;\r\n var styles = [NORMAL, HOVER, SELECTION, SELECTION];\r\n if (this._viewCounters.hover) {\r\n state |= HOVER_STATE\r\n }\r\n if (this._viewCounters.selection) {\r\n state |= SELECTED_STATE\r\n }\r\n if (isNoneMode(this.getOptions().selectionMode)) {\r\n fullState &= ~SELECTED_STATE\r\n }\r\n if (isNoneMode(this.getOptions().hoverMode)) {\r\n fullState &= ~HOVER_STATE\r\n }\r\n state |= fullState;\r\n return styles[state]\r\n },\r\n applyView: function(legendCallback) {\r\n var style = this._getViewStyle();\r\n this._currentStyle = style;\r\n if (!this.graphic && this.getMarkerVisibility() && this.series.autoHidePointMarkers && (style === SELECTION || style === HOVER)) {\r\n this._drawMarker(this.series.getRenderer(), this.series.getMarkersGroup())\r\n }\r\n if (this.graphic) {\r\n if (this.series.autoHidePointMarkers && style !== SELECTION && style !== HOVER) {\r\n this.deleteMarker()\r\n } else {\r\n if (\"normal\" === style) {\r\n this.clearMarker()\r\n } else {\r\n this.graphic.toForeground()\r\n }\r\n this._updateMarker(true, this._styles[style], void 0, legendCallback)\r\n }\r\n }\r\n },\r\n setView: function(style) {\r\n this._viewCounters[style]++;\r\n this.applyView()\r\n },\r\n resetView: function(style) {\r\n var viewCounters = this._viewCounters;\r\n --viewCounters[style];\r\n if (viewCounters[style] < 0) {\r\n viewCounters[style] = 0\r\n }\r\n this.applyView()\r\n },\r\n releaseHoverState: function() {\r\n if (this.graphic && !this.isSelected()) {\r\n this.graphic.toBackground()\r\n }\r\n },\r\n select: function() {\r\n this.series.selectPoint(this)\r\n },\r\n clearSelection: function() {\r\n this.series.deselectPoint(this)\r\n },\r\n hover: function() {\r\n this.series.hoverPoint(this)\r\n },\r\n clearHover: function() {\r\n this.series.clearPointHover()\r\n },\r\n showTooltip: function() {\r\n this.series.showPointTooltip(this)\r\n },\r\n hideTooltip: function() {\r\n this.series.hidePointTooltip(this)\r\n },\r\n _checkLabelsChanging: function(oldType, newType) {\r\n var isNewRange = ~newType.indexOf(\"range\");\r\n var isOldRange = ~oldType.indexOf(\"range\");\r\n return isOldRange && !isNewRange || !isOldRange && isNewRange\r\n },\r\n updateOptions: function(newOptions) {\r\n if (!newOptions) {\r\n return\r\n }\r\n var oldOptions = this._options;\r\n var widgetType = newOptions.widgetType;\r\n var oldType = oldOptions && oldOptions.type;\r\n var newType = newOptions.type;\r\n var newPointTypeMixin = pointTypes[widgetType][newType];\r\n if (oldType !== newType) {\r\n this._needDeletingOnDraw = true;\r\n this._needClearingOnDraw = false;\r\n if (oldType) {\r\n this._checkLabelsChanging(oldType, newType) && this.deleteLabel();\r\n this._resetType(mixins[pointTypes[oldType]])\r\n }\r\n this._setType(mixins[newPointTypeMixin])\r\n } else {\r\n this._needDeletingOnDraw = this._checkSymbol(oldOptions, newOptions);\r\n this._needClearingOnDraw = this._checkCustomize(oldOptions, newOptions)\r\n }\r\n this._options = newOptions;\r\n this._fillStyle();\r\n this._updateLabelOptions(newPointTypeMixin)\r\n },\r\n translate: function() {\r\n if (this.hasValue()) {\r\n this._translate();\r\n this.translated = true\r\n }\r\n },\r\n _checkCustomize: function(oldOptions, newOptions) {\r\n return oldOptions.styles.usePointCustomOptions && !newOptions.styles.usePointCustomOptions\r\n },\r\n _getCustomLabelVisibility: function() {\r\n return this._styles.useLabelCustomOptions ? !!this._options.label.visible : null\r\n },\r\n getBoundingRect: function() {\r\n return this._getGraphicBBox()\r\n },\r\n _resetType: function(methods) {\r\n for (var methodName in methods) {\r\n delete this[methodName]\r\n }\r\n },\r\n _setType: function(methods) {\r\n for (var methodName in methods) {\r\n this[methodName] = methods[methodName]\r\n }\r\n },\r\n isInVisibleArea: function() {\r\n return this.inVisibleArea\r\n },\r\n isSelected: function() {\r\n return !!(this.fullState & SELECTED_STATE)\r\n },\r\n isHovered: function() {\r\n return !!(this.fullState & HOVER_STATE)\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n animate: function(complete, settings, partitionDuration) {\r\n if (!this.graphic) {\r\n complete && complete();\r\n return\r\n }\r\n this.graphic.animate(settings, {\r\n partitionDuration: partitionDuration\r\n }, complete)\r\n },\r\n getCoords: function(min) {\r\n if (!min) {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n if (!this._options.rotated) {\r\n return {\r\n x: this.x,\r\n y: this.minY + (this.y - this.minY ? 0 : 1)\r\n }\r\n }\r\n return {\r\n x: this.minX - (this.x - this.minX ? 0 : 1),\r\n y: this.y\r\n }\r\n },\r\n getDefaultCoords: function() {\r\n return !this._options.rotated ? {\r\n x: this.x,\r\n y: this.defaultY\r\n } : {\r\n x: this.defaultX,\r\n y: this.y\r\n }\r\n },\r\n setDefaultCoords() {\r\n var coords = this.getDefaultCoords();\r\n this.x = coords.x;\r\n this.y = coords.y\r\n },\r\n _getVisibleArea: function() {\r\n return this.series.getVisibleArea()\r\n },\r\n _getArgTranslator: function() {\r\n return this.series.getArgumentAxis().getTranslator()\r\n },\r\n _getValTranslator: function() {\r\n return this.series.getValueAxis().getTranslator()\r\n },\r\n isArgumentCorrect() {\r\n return this.series._argumentChecker(this.argument)\r\n },\r\n isValueCorrect() {\r\n var valueChecker = this.series._valueChecker;\r\n return valueChecker(this.getMinValue()) && valueChecker(this.getMaxValue())\r\n },\r\n hasValue: function() {\r\n return null !== this.value && null !== this.minValue && this.isArgumentCorrect() && this.isValueCorrect()\r\n },\r\n hasCoords: _noop,\r\n correctPosition: _noop,\r\n correctRadius: _noop,\r\n correctLabelRadius: _noop,\r\n getCrosshairData: _noop,\r\n getPointRadius: _noop,\r\n _populatePointShape: _noop,\r\n _checkSymbol: _noop,\r\n getMarkerCoords: _noop,\r\n hide: _noop,\r\n show: _noop,\r\n hideMarker: _noop,\r\n setInvisibility: _noop,\r\n clearVisibility: _noop,\r\n isVisible: _noop,\r\n resetCorrection: _noop,\r\n correctValue: _noop,\r\n resetValue: _noop,\r\n setPercentValue: _noop,\r\n correctCoordinates: _noop,\r\n coordsIn: _noop,\r\n getTooltipParams: _noop,\r\n applyWordWrap: _noop,\r\n setLabelTrackerData: _noop,\r\n updateLabelCoord: _noop,\r\n drawLabel: _noop,\r\n correctLabelPosition: _noop,\r\n getMinValue: _noop,\r\n getMaxValue: _noop,\r\n _drawErrorBar: _noop,\r\n getMarkerVisibility: _noop,\r\n dispose: function() {\r\n this.deleteMarker();\r\n this.deleteLabel();\r\n this._errorBar && this._errorBar.dispose();\r\n this._options = this._styles = this.series = this._errorBar = null\r\n },\r\n getTooltipFormatObject: function(tooltip, stackPoints) {\r\n var tooltipFormatObject = this._getFormatObject(tooltip);\r\n var sharedTooltipValuesArray = [];\r\n var tooltipStackPointsFormatObject = [];\r\n if (stackPoints) {\r\n stackPoints.forEach(point => {\r\n if (!point.isVisible()) {\r\n return\r\n }\r\n var formatObject = point._getFormatObject(tooltip);\r\n tooltipStackPointsFormatObject.push(formatObject);\r\n sharedTooltipValuesArray.push(formatObject.seriesName + \": \" + formatObject.valueText)\r\n });\r\n _extend(tooltipFormatObject, {\r\n points: tooltipStackPointsFormatObject,\r\n valueText: sharedTooltipValuesArray.join(\"\\n\"),\r\n stackName: this.series.getStackName() || null\r\n })\r\n }\r\n var aggregationInfo = this.aggregationInfo;\r\n if (aggregationInfo) {\r\n var axis = this.series.getArgumentAxis();\r\n var rangeText = axis.formatRange(aggregationInfo.intervalStart, aggregationInfo.intervalEnd, aggregationInfo.aggregationInterval, tooltip.getOptions().argumentFormat);\r\n if (rangeText) {\r\n tooltipFormatObject.valueText += \"\\n\".concat(rangeText)\r\n }\r\n }\r\n return tooltipFormatObject\r\n },\r\n setHole: function(holeValue, position) {\r\n var minValue = isFinite(this.minValue) ? this.minValue : 0;\r\n if (_isDefined(holeValue)) {\r\n if (\"left\" === position) {\r\n this.leftHole = this.value - holeValue;\r\n this.minLeftHole = minValue - holeValue\r\n } else {\r\n this.rightHole = this.value - holeValue;\r\n this.minRightHole = minValue - holeValue\r\n }\r\n }\r\n },\r\n resetHoles: function() {\r\n this.leftHole = null;\r\n this.minLeftHole = null;\r\n this.rightHole = null;\r\n this.minRightHole = null\r\n },\r\n getLabel: function() {\r\n return this._label\r\n },\r\n getLabels: function() {\r\n return [this._label]\r\n },\r\n getCenterCoord() {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/helpers/range_data_calculator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n unique,\r\n getAddFunction,\r\n getLog\r\n} from \"../../core/utils\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nvar DISCRETE = \"discrete\";\r\nvar {\r\n abs: abs,\r\n floor: floor,\r\n ceil: ceil,\r\n min: min\r\n} = Math;\r\n\r\nfunction continuousRangeCalculator(range, minValue, maxValue) {\r\n range.min = range.min < minValue ? range.min : minValue;\r\n range.max = range.max > maxValue ? range.max : maxValue\r\n}\r\n\r\nfunction createGetLogFunction(axisType, axis) {\r\n if (\"logarithmic\" !== axisType) {\r\n return null\r\n }\r\n var base = axis.getOptions().logarithmBase;\r\n return value => {\r\n var log = getLog(abs(value), base);\r\n var round = log < 0 ? floor : ceil;\r\n return round(log)\r\n }\r\n}\r\n\r\nfunction getRangeCalculator(axisType, axis, getLog) {\r\n var rangeCalculator = continuousRangeCalculator;\r\n if (axisType === DISCRETE) {\r\n rangeCalculator = function(range, minValue, maxValue) {\r\n if (minValue !== maxValue) {\r\n range.categories.push(maxValue)\r\n }\r\n range.categories.push(minValue)\r\n }\r\n } else if (axis) {\r\n rangeCalculator = function(range, value) {\r\n var interval = axis.calculateInterval(value, range.prevValue);\r\n var minInterval = range.interval;\r\n range.interval = (minInterval < interval ? minInterval : interval) || minInterval;\r\n range.prevValue = value;\r\n continuousRangeCalculator(range, value, value)\r\n }\r\n }\r\n if (getLog) {\r\n return (range, minValue, maxValue) => {\r\n var minArgs = [];\r\n rangeCalculator(range, minValue, maxValue);\r\n 0 !== minValue && minArgs.push(getLog(minValue));\r\n 0 !== maxValue && minArgs.push(getLog(maxValue));\r\n var linearThreshold = min.apply(null, minArgs);\r\n range.linearThreshold = range.linearThreshold < linearThreshold ? range.linearThreshold : linearThreshold\r\n }\r\n }\r\n return rangeCalculator\r\n}\r\n\r\nfunction getInitialRange(axisType, dataType, firstValue) {\r\n var range = {\r\n axisType: axisType,\r\n dataType: dataType\r\n };\r\n if (axisType === DISCRETE) {\r\n range.categories = []\r\n } else {\r\n range.min = isObject(firstValue) ? firstValue.min : firstValue;\r\n range.max = isObject(firstValue) ? firstValue.max : firstValue\r\n }\r\n return range\r\n}\r\n\r\nfunction processCategories(range) {\r\n if (range.categories) {\r\n range.categories = unique(range.categories)\r\n }\r\n return range\r\n}\r\n\r\nfunction getValueForArgument(point, extraPoint, x, range) {\r\n if (extraPoint && isDefined(extraPoint.value)) {\r\n var y1 = point.value;\r\n var y2 = extraPoint.value;\r\n var x1 = point.argument;\r\n var x2 = extraPoint.argument;\r\n var r = (x - x1) * (y2 - y1) / (x2 - x1) + y1.valueOf();\r\n return \"datetime\" === range.dataType ? new Date(r) : r\r\n } else {\r\n return point.value\r\n }\r\n}\r\n\r\nfunction calculateRangeBetweenPoints(rangeCalculator, range, point, prevPoint, bound) {\r\n var value = getValueForArgument(point, prevPoint, bound, range);\r\n rangeCalculator(range, value, value)\r\n}\r\n\r\nfunction isLineSeries(series) {\r\n return series.type.toLowerCase().indexOf(\"line\") >= 0 || series.type.toLowerCase().indexOf(\"area\") >= 0\r\n}\r\n\r\nfunction getViewportReducer(series) {\r\n var rangeCalculator = getRangeCalculator(series.valueAxisType);\r\n var argumentAxis = series.getArgumentAxis();\r\n var viewport = argumentAxis && series.getArgumentAxis().visualRange() || {};\r\n var calculatePointBetweenPoints = isLineSeries(series) ? calculateRangeBetweenPoints : noop;\r\n if (argumentAxis && argumentAxis.getMarginOptions().checkInterval) {\r\n var range = series.getArgumentAxis().getTranslator().getBusinessRange();\r\n var add = getAddFunction(range, false);\r\n var interval = range.interval;\r\n if (isFinite(interval) && isDefined(viewport.startValue) && isDefined(viewport.endValue)) {\r\n viewport.startValue = add(viewport.startValue, interval, -1);\r\n viewport.endValue = add(viewport.endValue, interval)\r\n }\r\n }\r\n var viewportFilter = getViewPortFilter(viewport);\r\n return function(range, point, index, points) {\r\n var argument = point.argument;\r\n if (!point.hasValue()) {\r\n return range\r\n }\r\n if (viewportFilter(argument)) {\r\n if (!range.startCalc) {\r\n range.startCalc = true;\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.startValue)\r\n }\r\n rangeCalculator(range, point.getMinValue(), point.getMaxValue())\r\n } else if (!viewport.categories && isDefined(viewport.startValue) && argument > viewport.startValue) {\r\n if (!range.startCalc) {\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.startValue)\r\n }\r\n range.endCalc = true;\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.endValue)\r\n }\r\n return range\r\n }\r\n}\r\n\r\nfunction getViewPortFilter(viewport) {\r\n if (viewport.categories) {\r\n var dictionary = viewport.categories.reduce((result, category) => {\r\n result[category.valueOf()] = true;\r\n return result\r\n }, {});\r\n return argument => isDefined(argument) && dictionary[argument.valueOf()]\r\n }\r\n if (!isDefined(viewport.startValue) && !isDefined(viewport.endValue)) {\r\n return () => true\r\n }\r\n if (!isDefined(viewport.endValue)) {\r\n return argument => argument >= viewport.startValue\r\n }\r\n if (!isDefined(viewport.startValue)) {\r\n return argument => argument <= viewport.endValue\r\n }\r\n return argument => argument >= viewport.startValue && argument <= viewport.endValue\r\n}\r\nexport default {\r\n getViewPortFilter: getViewPortFilter,\r\n getArgumentRange: function(series) {\r\n var data = series._data || [];\r\n var range = {};\r\n if (data.length) {\r\n if (series.argumentAxisType === DISCRETE) {\r\n range = {\r\n categories: data.map(item => item.argument)\r\n }\r\n } else {\r\n var interval;\r\n if (data.length > 1) {\r\n var i1 = series.getArgumentAxis().calculateInterval(data[0].argument, data[1].argument);\r\n var i2 = series.getArgumentAxis().calculateInterval(data[data.length - 1].argument, data[data.length - 2].argument);\r\n interval = min(i1, i2)\r\n }\r\n range = {\r\n min: data[0].argument,\r\n max: data[data.length - 1].argument,\r\n interval: interval\r\n }\r\n }\r\n }\r\n return processCategories(range)\r\n },\r\n getRangeData: function(series) {\r\n var points = series.getPoints();\r\n var useAggregation = series.useAggregation();\r\n var argumentAxis = series.getArgumentAxis();\r\n var argumentCalculator = getRangeCalculator(series.argumentAxisType, points.length > 1 && argumentAxis, createGetLogFunction(series.argumentAxisType, argumentAxis));\r\n var valueRangeCalculator = getRangeCalculator(series.valueAxisType, null, createGetLogFunction(series.valueAxisType, series.getValueAxis()));\r\n var viewportReducer = getViewportReducer(series);\r\n var range = points.reduce((function(range, point, index, points) {\r\n var argument = point.argument;\r\n if (!point.isArgumentCorrect()) {\r\n return range\r\n }\r\n argumentCalculator(range.arg, argument, argument);\r\n if (point.hasValue()) {\r\n valueRangeCalculator(range.val, point.getMinValue(), point.getMaxValue());\r\n viewportReducer(range.viewport, point, index, points)\r\n }\r\n return range\r\n }), {\r\n arg: getInitialRange(series.argumentAxisType, series.argumentType, null !== argumentAxis && void 0 !== argumentAxis && argumentAxis.aggregatedPointBetweenTicks() ? void 0 : series.getArgumentRangeInitialValue()),\r\n val: getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0),\r\n viewport: getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0)\r\n });\r\n if (useAggregation) {\r\n var argumentRange = this.getArgumentRange(series);\r\n if (series.argumentAxisType === DISCRETE) {\r\n range.arg = argumentRange\r\n } else {\r\n var viewport = argumentAxis.getViewport();\r\n if (isDefined(viewport.startValue) || isDefined(viewport.length)) {\r\n argumentCalculator(range.arg, argumentRange.min, argumentRange.min)\r\n }\r\n if (isDefined(viewport.endValue) || isDefined(viewport.length) && isDefined(viewport.startValue)) {\r\n argumentCalculator(range.arg, argumentRange.max, argumentRange.max)\r\n }\r\n }\r\n }\r\n processCategories(range.arg);\r\n processCategories(range.val);\r\n return range\r\n },\r\n getViewport: function(series) {\r\n var points = series.getPoints();\r\n var range;\r\n var reducer = getViewportReducer(series);\r\n range = getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0);\r\n points.some((function(point, index) {\r\n reducer(range, point, index, points);\r\n return range.endCalc\r\n }));\r\n return range\r\n },\r\n getPointsInViewPort: function(series) {\r\n var argumentViewPortFilter = getViewPortFilter(series.getArgumentAxis().visualRange() || {});\r\n var valueViewPort = series.getValueAxis().visualRange() || {};\r\n var valueViewPortFilter = getViewPortFilter(valueViewPort);\r\n var points = series.getPoints();\r\n var addValue = function(values, point, isEdge) {\r\n var minValue = point.getMinValue();\r\n var maxValue = point.getMaxValue();\r\n var isMinValueInViewPort = valueViewPortFilter(minValue);\r\n var isMaxValueInViewPort = valueViewPortFilter(maxValue);\r\n if (isMinValueInViewPort) {\r\n values.push(minValue)\r\n }\r\n if (maxValue !== minValue && isMaxValueInViewPort) {\r\n values.push(maxValue)\r\n }\r\n if (isEdge && !isMinValueInViewPort && !isMaxValueInViewPort) {\r\n if (!values.length) {\r\n values.push(valueViewPort.startValue)\r\n } else {\r\n values.push(valueViewPort.endValue)\r\n }\r\n }\r\n };\r\n var addEdgePoints = isLineSeries(series) ? function(result, points, index) {\r\n var point = points[index];\r\n var prevPoint = points[index - 1];\r\n var nextPoint = points[index + 1];\r\n if (nextPoint && argumentViewPortFilter(nextPoint.argument)) {\r\n addValue(result[1], point, true)\r\n }\r\n if (prevPoint && argumentViewPortFilter(prevPoint.argument)) {\r\n addValue(result[1], point, true)\r\n }\r\n } : noop;\r\n return points.reduce((function(result, point, index) {\r\n if (argumentViewPortFilter(point.argument)) {\r\n addValue(result[0], point)\r\n } else {\r\n addEdgePoints(result, points, index)\r\n }\r\n return result\r\n }), [\r\n [],\r\n []\r\n ])\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/scatter_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport rangeCalculator from \"./helpers/range_data_calculator\";\r\nimport {\r\n isDefined as _isDefined,\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum,\r\n convertXYToPolar,\r\n extractColor\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar math = Math;\r\nvar _abs = math.abs;\r\nvar _sqrt = math.sqrt;\r\nvar _max = math.max;\r\nvar DEFAULT_TRACKER_WIDTH = 12;\r\nvar DEFAULT_DURATION = 400;\r\nvar HIGH_ERROR = \"highError\";\r\nvar LOW_ERROR = \"lowError\";\r\nvar VARIANCE = \"variance\";\r\nvar STANDARD_DEVIATION = \"stddeviation\";\r\nvar STANDARD_ERROR = \"stderror\";\r\nvar PERCENT = \"percent\";\r\nvar FIXED = \"fixed\";\r\nvar UNDEFINED = \"undefined\";\r\nvar DISCRETE = \"discrete\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar DATETIME = \"datetime\";\r\nvar chart = {};\r\nvar polar = {};\r\n\r\nfunction sum(array) {\r\n var result = 0;\r\n _each(array, (function(_, value) {\r\n result += value\r\n }));\r\n return result\r\n}\r\n\r\nfunction isErrorBarTypeCorrect(type) {\r\n return [FIXED, PERCENT, VARIANCE, STANDARD_DEVIATION, STANDARD_ERROR].includes(type)\r\n}\r\n\r\nfunction variance(array, expectedValue) {\r\n return sum(_map(array, (function(value) {\r\n return (value - expectedValue) * (value - expectedValue)\r\n }))) / array.length\r\n}\r\n\r\nfunction calculateAvgErrorBars(result, data, series) {\r\n var errorBarsOptions = series.getOptions().valueErrorBar;\r\n var valueField = series.getValueFields()[0];\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n if (series.areErrorBarsVisible() && void 0 === errorBarsOptions.type) {\r\n var fusionData = data.reduce((function(result, item) {\r\n if (_isDefined(item[lowValueField])) {\r\n result[0] += item[valueField] - item[lowValueField];\r\n result[1]++\r\n }\r\n if (_isDefined(item[highValueField])) {\r\n result[2] += item[highValueField] - item[valueField];\r\n result[3]++\r\n }\r\n return result\r\n }), [0, 0, 0, 0]);\r\n if (fusionData[1]) {\r\n result[lowValueField] = result[valueField] - fusionData[0] / fusionData[1]\r\n }\r\n if (fusionData[2]) {\r\n result[highValueField] = result[valueField] + fusionData[2] / fusionData[3]\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateSumErrorBars(result, data, series) {\r\n var errorBarsOptions = series.getOptions().valueErrorBar;\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n if (series.areErrorBarsVisible() && void 0 === errorBarsOptions.type) {\r\n result[lowValueField] = 0;\r\n result[highValueField] = 0;\r\n result = data.reduce((function(result, item) {\r\n result[lowValueField] += item[lowValueField];\r\n result[highValueField] += item[highValueField];\r\n return result\r\n }), result)\r\n }\r\n return result\r\n}\r\n\r\nfunction getMinMaxAggregator(compare) {\r\n return (_ref, series) => {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n var valueField = series.getValueFields()[0];\r\n var targetData = data[0];\r\n targetData = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (null === result[valueField]) {\r\n result = item\r\n }\r\n if (null !== value && compare(value, result[valueField])) {\r\n return item\r\n }\r\n return result\r\n }, targetData);\r\n return _extend({}, targetData, {\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n })\r\n }\r\n}\r\n\r\nfunction checkFields(data, fieldsToCheck, skippedFields) {\r\n var allFieldsIsValid = true;\r\n for (var field in fieldsToCheck) {\r\n var isArgument = \"argument\" === field;\r\n if (isArgument || \"size\" === field ? !_isDefined(data[field]) : void 0 === data[field]) {\r\n var selector = fieldsToCheck[field];\r\n if (!isArgument) {\r\n skippedFields[selector] = (skippedFields[selector] || 0) + 1\r\n }\r\n allFieldsIsValid = false\r\n }\r\n }\r\n return allFieldsIsValid\r\n}\r\nvar baseScatterMethods = {\r\n _defaultDuration: DEFAULT_DURATION,\r\n _defaultTrackerWidth: DEFAULT_TRACKER_WIDTH,\r\n _applyStyle: _noop,\r\n _updateOptions: _noop,\r\n _parseStyle: _noop,\r\n _prepareSegment: _noop,\r\n _drawSegment: _noop,\r\n _appendInGroup: function() {\r\n this._group.append(this._extGroups.seriesGroup)\r\n },\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: extractColor(styleOptions.color, true) || defaultColor,\r\n hatching: styleOptions.hatching ? _extend({}, styleOptions.hatching, {\r\n direction: \"right\"\r\n }) : void 0\r\n }\r\n },\r\n _getColorId: _noop,\r\n _applyElementsClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._paneClipRectID\r\n },\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._forceClipping ? this._paneClipRectID : null\r\n },\r\n _createGroup: function(groupName, parent, target, settings) {\r\n var group = parent[groupName] = parent[groupName] || this._renderer.g();\r\n target && group.append(target);\r\n settings && group.attr(settings)\r\n },\r\n _applyClearingSettings: function(settings) {\r\n settings.opacity = null;\r\n settings.scale = null;\r\n if (this._options.rotated) {\r\n settings.translateX = null\r\n } else {\r\n settings.translateY = null\r\n }\r\n },\r\n _createGroups: function() {\r\n this._createGroup(\"_markersGroup\", this, this._group);\r\n this._createGroup(\"_labelsGroup\", this)\r\n },\r\n _setMarkerGroupSettings: function() {\r\n var settings = this._createPointStyles(this._getMarkerGroupOptions()).normal;\r\n settings.class = \"dxc-markers\";\r\n settings.opacity = 1;\r\n this._applyMarkerClipRect(settings);\r\n this._markersGroup.attr(settings)\r\n },\r\n getVisibleArea: function() {\r\n return this._visibleArea\r\n },\r\n areErrorBarsVisible: function() {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n return errorBarOptions && this._errorBarsEnabled() && \"none\" !== errorBarOptions.displayMode && (isErrorBarTypeCorrect(_normalizeEnum(errorBarOptions.type)) || _isDefined(errorBarOptions.lowValueField) || _isDefined(errorBarOptions.highValueField))\r\n },\r\n groupPointsByCoords(rotated) {\r\n var cat = [];\r\n _each(this.getVisiblePoints(), (function(_, p) {\r\n var pointCoord = parseInt(rotated ? p.vy : p.vx);\r\n if (!cat[pointCoord]) {\r\n cat[pointCoord] = p\r\n } else {\r\n Array.isArray(cat[pointCoord]) ? cat[pointCoord].push(p) : cat[pointCoord] = [cat[pointCoord], p]\r\n }\r\n }));\r\n return cat\r\n },\r\n _createErrorBarGroup: function(animationEnabled) {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n var settings;\r\n if (this.areErrorBarsVisible()) {\r\n settings = {\r\n class: \"dxc-error-bars\",\r\n stroke: errorBarOptions.color,\r\n \"stroke-width\": errorBarOptions.lineWidth,\r\n opacity: animationEnabled ? .001 : errorBarOptions.opacity || 1,\r\n \"stroke-linecap\": \"square\",\r\n sharp: true,\r\n \"clip-path\": this._forceClipping ? this._paneClipRectID : this._widePaneClipRectID\r\n };\r\n this._createGroup(\"_errorBarGroup\", this, this._group, settings)\r\n }\r\n },\r\n _setGroupsSettings: function(animationEnabled) {\r\n this._setMarkerGroupSettings();\r\n this._setLabelGroupSettings(animationEnabled);\r\n this._createErrorBarGroup(animationEnabled)\r\n },\r\n _getCreatingPointOptions: function() {\r\n var defaultPointOptions;\r\n var creatingPointOptions = this._predefinedPointOptions;\r\n var normalStyle;\r\n if (!creatingPointOptions) {\r\n defaultPointOptions = this._getPointOptions();\r\n this._predefinedPointOptions = creatingPointOptions = _extend(true, {\r\n styles: {}\r\n }, defaultPointOptions);\r\n normalStyle = defaultPointOptions.styles && defaultPointOptions.styles.normal || {};\r\n creatingPointOptions.styles = creatingPointOptions.styles || {};\r\n creatingPointOptions.styles.normal = {\r\n \"stroke-width\": normalStyle[\"stroke-width\"],\r\n r: normalStyle.r,\r\n opacity: normalStyle.opacity\r\n }\r\n }\r\n return creatingPointOptions\r\n },\r\n _getPointOptions: function() {\r\n return this._parsePointOptions(this._preparePointOptions(), this._options.label)\r\n },\r\n _getOptionsForPoint: function() {\r\n return this._options.point\r\n },\r\n _parsePointStyle: function(style, defaultColor, defaultBorderColor, defaultSize) {\r\n var border = style.border || {};\r\n var sizeValue = void 0 !== style.size ? style.size : defaultSize;\r\n return {\r\n fill: extractColor(style.color, true) || defaultColor,\r\n stroke: border.color || defaultBorderColor,\r\n \"stroke-width\": border.visible ? border.width : 0,\r\n r: sizeValue / 2 + (border.visible && 0 !== sizeValue ? ~~(border.width / 2) || 0 : 0)\r\n }\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var mainPointColor = extractColor(pointOptions.color, true) || this._options.mainSeriesColor;\r\n var containerColor = this._options.containerBackgroundColor;\r\n var normalStyle = this._parsePointStyle(pointOptions, mainPointColor, mainPointColor);\r\n normalStyle.visibility = pointOptions.visible ? \"visible\" : \"hidden\";\r\n return {\r\n labelColor: mainPointColor,\r\n normal: normalStyle,\r\n hover: this._parsePointStyle(pointOptions.hoverStyle, containerColor, mainPointColor, pointOptions.size),\r\n selection: this._parsePointStyle(pointOptions.selectionStyle, containerColor, mainPointColor, pointOptions.size)\r\n }\r\n },\r\n _checkData: function(data, skippedFields, fieldsToCheck) {\r\n fieldsToCheck = fieldsToCheck || {\r\n value: this.getValueFields()[0]\r\n };\r\n fieldsToCheck.argument = this.getArgumentField();\r\n return checkFields(data, fieldsToCheck, skippedFields || {}) && data.value === data.value\r\n },\r\n getArgumentRangeInitialValue() {\r\n var points = this.getPoints();\r\n if (this.useAggregation() && points.length) {\r\n var _points$0$aggregation, _points$aggregationIn;\r\n return {\r\n min: null === (_points$0$aggregation = points[0].aggregationInfo) || void 0 === _points$0$aggregation ? void 0 : _points$0$aggregation.intervalStart,\r\n max: null === (_points$aggregationIn = points[points.length - 1].aggregationInfo) || void 0 === _points$aggregationIn ? void 0 : _points$aggregationIn.intervalEnd\r\n }\r\n }\r\n return\r\n },\r\n getValueRangeInitialValue: function() {\r\n return\r\n },\r\n _getRangeData: function() {\r\n return rangeCalculator.getRangeData(this)\r\n },\r\n _getPointDataSelector: function() {\r\n var valueField = this.getValueFields()[0];\r\n var argumentField = this.getArgumentField();\r\n var tagField = this.getTagField();\r\n var areErrorBarsVisible = this.areErrorBarsVisible();\r\n var lowValueField;\r\n var highValueField;\r\n if (areErrorBarsVisible) {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n lowValueField = errorBarOptions.lowValueField || LOW_ERROR;\r\n highValueField = errorBarOptions.highValueField || HIGH_ERROR\r\n }\r\n return data => {\r\n var pointData = {\r\n value: this._processEmptyValue(data[valueField]),\r\n argument: data[argumentField],\r\n tag: data[tagField],\r\n data: data\r\n };\r\n if (areErrorBarsVisible) {\r\n pointData.lowError = data[lowValueField];\r\n pointData.highError = data[highValueField]\r\n }\r\n return pointData\r\n }\r\n },\r\n _errorBarsEnabled: function() {\r\n return this.valueAxisType !== DISCRETE && this.valueAxisType !== LOGARITHMIC && this.valueType !== DATETIME\r\n },\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n if (point.isInVisibleArea()) {\r\n point.clearVisibility();\r\n point.draw(this._renderer, options.groups, options.hasAnimation, options.firstDrawing);\r\n this._drawnPoints.push(point)\r\n } else {\r\n point.setInvisibility()\r\n }\r\n },\r\n _animateComplete: function() {\r\n var animationSettings = {\r\n duration: this._defaultDuration\r\n };\r\n this._labelsGroup && this._labelsGroup.animate({\r\n opacity: 1\r\n }, animationSettings);\r\n this._errorBarGroup && this._errorBarGroup.animate({\r\n opacity: this._options.valueErrorBar.opacity || 1\r\n }, animationSettings)\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastPointIndex = that._drawnPoints.length - 1;\r\n _each(that._drawnPoints || [], (function(i, p) {\r\n p.animate(i === lastPointIndex ? function() {\r\n that._animateComplete()\r\n } : void 0, {\r\n translateX: p.x,\r\n translateY: p.y\r\n })\r\n }))\r\n },\r\n _getIntervalCenter(intervalStart, intervalEnd) {\r\n var argAxis = this.getArgumentAxis();\r\n var axisOptions = argAxis.getOptions();\r\n if (argAxis.aggregatedPointBetweenTicks()) {\r\n return intervalStart\r\n }\r\n return \"discrete\" !== axisOptions.type ? argAxis.getVisualRangeCenter({\r\n minVisible: intervalStart,\r\n maxVisible: intervalEnd\r\n }, true) : intervalStart\r\n },\r\n _defaultAggregator: \"avg\",\r\n _aggregators: {\r\n avg(_ref2, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref2;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var aggregationResult = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (_isDefined(value)) {\r\n result[0] += value;\r\n result[1]++\r\n } else if (null === value) {\r\n result[2]++\r\n }\r\n return result\r\n }, [0, 0, 0]);\r\n return calculateAvgErrorBars({\r\n [valueField]: aggregationResult[2] === data.length ? null : aggregationResult[0] / aggregationResult[1],\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }, data, series)\r\n },\r\n sum(_ref3, series) {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref3;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var aggregationResult = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (void 0 !== value) {\r\n result[0] += value\r\n }\r\n if (null === value) {\r\n result[1]++\r\n } else if (void 0 === value) {\r\n result[2]++\r\n }\r\n return result\r\n }, [0, 0, 0]);\r\n var value = aggregationResult[0];\r\n if (aggregationResult[1] === data.length) {\r\n value = null\r\n }\r\n if (aggregationResult[2] === data.length) {\r\n return\r\n }\r\n return calculateSumErrorBars({\r\n [valueField]: value,\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }, data, series)\r\n },\r\n count(_ref4, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref4;\r\n var valueField = series.getValueFields()[0];\r\n return {\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd),\r\n [valueField]: data.filter(i => void 0 !== i[valueField]).length\r\n }\r\n },\r\n min: getMinMaxAggregator((a, b) => a < b),\r\n max: getMinMaxAggregator((a, b) => a > b)\r\n },\r\n _endUpdateData: function() {\r\n delete this._predefinedPointOptions\r\n },\r\n getArgumentField: function() {\r\n return this._options.argumentField || \"arg\"\r\n },\r\n getValueFields: function() {\r\n var options = this._options;\r\n var errorBarsOptions = options.valueErrorBar;\r\n var valueFields = [options.valueField || \"val\"];\r\n var lowValueField;\r\n var highValueField;\r\n if (errorBarsOptions) {\r\n lowValueField = errorBarsOptions.lowValueField;\r\n highValueField = errorBarsOptions.highValueField;\r\n _isString(lowValueField) && valueFields.push(lowValueField);\r\n _isString(highValueField) && valueFields.push(highValueField)\r\n }\r\n return valueFields\r\n },\r\n _calculateErrorBars: function(data) {\r\n if (!this.areErrorBarsVisible()) {\r\n return\r\n }\r\n var options = this._options;\r\n var errorBarsOptions = options.valueErrorBar;\r\n var errorBarType = _normalizeEnum(errorBarsOptions.type);\r\n var floatErrorValue = parseFloat(errorBarsOptions.value);\r\n var valueField = this.getValueFields()[0];\r\n var value;\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n var valueArray;\r\n var valueArrayLength;\r\n var meanValue;\r\n var processDataItem;\r\n var addSubError = function(_i, item) {\r\n value = item.value;\r\n item.lowError = value - floatErrorValue;\r\n item.highError = value + floatErrorValue\r\n };\r\n switch (errorBarType) {\r\n case FIXED:\r\n processDataItem = addSubError;\r\n break;\r\n case PERCENT:\r\n processDataItem = function(_, item) {\r\n value = item.value;\r\n var error = value * floatErrorValue / 100;\r\n item.lowError = value - error;\r\n item.highError = value + error\r\n };\r\n break;\r\n case UNDEFINED:\r\n processDataItem = function(_, item) {\r\n item.lowError = item.data[lowValueField];\r\n item.highError = item.data[highValueField]\r\n };\r\n break;\r\n default:\r\n valueArray = _map(data, (function(item) {\r\n return _isDefined(item.data[valueField]) ? item.data[valueField] : null\r\n }));\r\n valueArrayLength = valueArray.length;\r\n floatErrorValue = floatErrorValue || 1;\r\n switch (errorBarType) {\r\n case VARIANCE:\r\n floatErrorValue = variance(valueArray, sum(valueArray) / valueArrayLength) * floatErrorValue;\r\n processDataItem = addSubError;\r\n break;\r\n case STANDARD_DEVIATION:\r\n meanValue = sum(valueArray) / valueArrayLength;\r\n floatErrorValue = _sqrt(variance(valueArray, meanValue)) * floatErrorValue;\r\n processDataItem = function(_, item) {\r\n item.lowError = meanValue - floatErrorValue;\r\n item.highError = meanValue + floatErrorValue\r\n };\r\n break;\r\n case STANDARD_ERROR:\r\n floatErrorValue = _sqrt(variance(valueArray, sum(valueArray) / valueArrayLength) / valueArrayLength) * floatErrorValue;\r\n processDataItem = addSubError\r\n }\r\n }\r\n processDataItem && _each(data, processDataItem)\r\n },\r\n _patchMarginOptions: function(options) {\r\n var pointOptions = this._getCreatingPointOptions();\r\n var styles = pointOptions.styles;\r\n var maxSize = [styles.normal, styles.hover, styles.selection].reduce((function(max, style) {\r\n return _max(max, 2 * style.r + style[\"stroke-width\"])\r\n }), 0);\r\n options.size = pointOptions.visible ? maxSize : 0;\r\n options.sizePointNormalState = pointOptions.visible ? 2 * styles.normal.r + styles.normal[\"stroke-width\"] : 2;\r\n return options\r\n },\r\n usePointsToDefineAutoHiding: () => true\r\n};\r\nchart = _extend({}, baseScatterMethods, {\r\n drawTrackers: function() {\r\n var that = this;\r\n var trackers;\r\n var trackersGroup;\r\n var segments = that._segments || [];\r\n var rotated = that._options.rotated;\r\n if (!that.isVisible()) {\r\n return\r\n }\r\n if (segments.length) {\r\n trackers = that._trackers = that._trackers || [];\r\n trackersGroup = that._trackersGroup = (that._trackersGroup || that._renderer.g().attr({\r\n fill: \"gray\",\r\n opacity: .001,\r\n stroke: \"gray\",\r\n class: \"dxc-trackers\"\r\n })).attr({\r\n \"clip-path\": this._paneClipRectID || null\r\n }).append(that._group);\r\n _each(segments, (function(i, segment) {\r\n if (!trackers[i]) {\r\n trackers[i] = that._drawTrackerElement(segment).data({\r\n \"chart-data-series\": that\r\n }).append(trackersGroup)\r\n } else {\r\n that._updateTrackerElement(segment, trackers[i])\r\n }\r\n }))\r\n }\r\n that._trackersTranslator = that.groupPointsByCoords(rotated)\r\n },\r\n _checkAxisVisibleAreaCoord(isArgument, coord) {\r\n var axis = isArgument ? this.getArgumentAxis() : this.getValueAxis();\r\n var visibleArea = axis.getVisibleArea();\r\n return _isDefined(coord) && visibleArea[0] <= coord && visibleArea[1] >= coord\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n return this.getPoints().length && this.isVisible()\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var isOpposite = !isArgument && !this._options.rotated || isArgument && this._options.rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = p[coordName] === coord ? p[oppositeCoordName] : void 0;\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n _getNearestPoints: (point, nextPoint) => [point, nextPoint],\r\n _getBezierPoints: () => [],\r\n _getNearestPointsByCoord(coord, isArgument) {\r\n var that = this;\r\n var rotated = that.getOptions().rotated;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var allPoints = that.getPoints();\r\n var bezierPoints = that._getBezierPoints();\r\n var nearestPoints = [];\r\n if (allPoints.length > 1) {\r\n allPoints.forEach((point, i) => {\r\n var nextPoint = allPoints[i + 1];\r\n if (nextPoint && (point[coordName] <= coord && nextPoint[coordName] >= coord || point[coordName] >= coord && nextPoint[coordName] <= coord)) {\r\n nearestPoints.push(that._getNearestPoints(point, nextPoint, bezierPoints))\r\n }\r\n })\r\n } else {\r\n nearestPoints.push([allPoints[0], allPoints[0]])\r\n }\r\n return nearestPoints\r\n },\r\n getNeighborPoint: function(x, y) {\r\n var pCoord = this._options.rotated ? y : x;\r\n var nCoord = pCoord;\r\n var cat = this._trackersTranslator;\r\n var point = null;\r\n var minDistance;\r\n var oppositeCoord = this._options.rotated ? x : y;\r\n var oppositeCoordName = this._options.rotated ? \"vx\" : \"vy\";\r\n if (this.isVisible() && cat) {\r\n point = cat[pCoord];\r\n do {\r\n point = cat[nCoord] || cat[pCoord];\r\n pCoord--;\r\n nCoord++\r\n } while ((pCoord >= 0 || nCoord < cat.length) && !point);\r\n if (Array.isArray(point)) {\r\n minDistance = _abs(point[0][oppositeCoordName] - oppositeCoord);\r\n _each(point, (function(i, p) {\r\n var distance = _abs(p[oppositeCoordName] - oppositeCoord);\r\n if (minDistance >= distance) {\r\n minDistance = distance;\r\n point = p\r\n }\r\n }))\r\n }\r\n }\r\n return point\r\n },\r\n _applyVisibleArea: function() {\r\n var rotated = this._options.rotated;\r\n var visibleX = (rotated ? this.getValueAxis() : this.getArgumentAxis()).getVisibleArea();\r\n var visibleY = (rotated ? this.getArgumentAxis() : this.getValueAxis()).getVisibleArea();\r\n this._visibleArea = {\r\n minX: visibleX[0],\r\n maxX: visibleX[1],\r\n minY: visibleY[0],\r\n maxY: visibleY[1]\r\n }\r\n },\r\n getPointCenterByArg(arg) {\r\n var point = this.getPointsByArg(arg)[0];\r\n return point ? point.getCenterCoord() : void 0\r\n }\r\n});\r\npolar = _extend({}, baseScatterMethods, {\r\n drawTrackers: function() {\r\n chart.drawTrackers.call(this);\r\n var cat = this._trackersTranslator;\r\n var index;\r\n if (!this.isVisible()) {\r\n return\r\n }\r\n _each(cat, (function(i, category) {\r\n if (category) {\r\n index = i;\r\n return false\r\n }\r\n }));\r\n cat[index + 360] = cat[index]\r\n },\r\n getNeighborPoint: function(x, y) {\r\n var pos = convertXYToPolar(this.getValueAxis().getCenter(), x, y);\r\n return chart.getNeighborPoint.call(this, pos.phi, pos.r)\r\n },\r\n _applyVisibleArea: function() {\r\n var canvas = this.getValueAxis().getCanvas();\r\n this._visibleArea = {\r\n minX: canvas.left,\r\n maxX: canvas.width - canvas.right,\r\n minY: canvas.top,\r\n maxY: canvas.height - canvas.bottom\r\n }\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var coords = null;\r\n var paramName = isArgument ? \"argument\" : \"radius\";\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpPoint = _isDefined(p[paramName]) && _isDefined(params[paramName]) && p[paramName].valueOf() === params[paramName].valueOf() ? {\r\n x: p.x,\r\n y: p.y\r\n } : void 0;\r\n if (_isDefined(tmpPoint)) {\r\n coords = tmpPoint;\r\n break\r\n }\r\n }\r\n return coords\r\n }\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/line_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as chartScatterSeries,\r\n polar as polarScatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n map,\r\n normalizeAngle,\r\n getCosAndSin,\r\n extractColor\r\n} from \"../core/utils\";\r\nimport {\r\n solveCubicEquation,\r\n trunc\r\n} from \"../../core/utils/math\";\r\nvar DISCRETE = \"discrete\";\r\nvar {\r\n round: round,\r\n sqrt: sqrt,\r\n pow: pow,\r\n min: min,\r\n max: max,\r\n abs: abs\r\n} = Math;\r\nvar chart = {};\r\nvar polar = {};\r\n\r\nfunction clonePoint(point, newX, newY, newAngle) {\r\n var p = clone(point);\r\n p.x = newX;\r\n p.y = newY;\r\n p.angle = newAngle;\r\n return p\r\n}\r\n\r\nfunction getTangentPoint(point, prevPoint, centerPoint, tan, nextStepAngle) {\r\n var correctAngle = point.angle + nextStepAngle;\r\n var cosSin = getCosAndSin(correctAngle);\r\n var x = centerPoint.x + (point.radius + tan * nextStepAngle) * cosSin.cos;\r\n var y = centerPoint.y - (point.radius + tan * nextStepAngle) * cosSin.sin;\r\n return clonePoint(prevPoint, x, y, correctAngle)\r\n}\r\n\r\nfunction obtainCubicBezierTCoef(p, p0, p1, p2, p3) {\r\n var d = p0 - p;\r\n var c = 3 * p1 - 3 * p0;\r\n var b = 3 * p2 - 6 * p1 + 3 * p0;\r\n var a = p3 - 3 * p2 + 3 * p1 - p0;\r\n return solveCubicEquation(a, b, c, d)\r\n}\r\nvar lineMethods = {\r\n autoHidePointMarkersEnabled: () => true,\r\n _applyGroupSettings: function(style, settings, group) {\r\n settings = extend(settings, style);\r\n this._applyElementsClipRect(settings);\r\n group.attr(settings)\r\n },\r\n _setGroupsSettings: function(animationEnabled) {\r\n var style = this._styles.normal;\r\n this._applyGroupSettings(style.elements, {\r\n class: \"dxc-elements\"\r\n }, this._elementsGroup);\r\n this._bordersGroup && this._applyGroupSettings(style.border, {\r\n class: \"dxc-borders\"\r\n }, this._bordersGroup);\r\n chartScatterSeries._setGroupsSettings.call(this, animationEnabled);\r\n animationEnabled && this._markersGroup && this._markersGroup.attr({\r\n opacity: .001\r\n })\r\n },\r\n _createGroups: function() {\r\n this._createGroup(\"_elementsGroup\", this, this._group);\r\n this._areBordersVisible() && this._createGroup(\"_bordersGroup\", this, this._group);\r\n chartScatterSeries._createGroups.call(this)\r\n },\r\n _areBordersVisible: function() {\r\n return false\r\n },\r\n _getDefaultSegment: function(segment) {\r\n return {\r\n line: map(segment.line || [], (function(pt) {\r\n return pt.getDefaultCoords()\r\n }))\r\n }\r\n },\r\n _prepareSegment: function(points) {\r\n return {\r\n line: points\r\n }\r\n },\r\n _parseLineOptions: function(options, defaultColor) {\r\n return {\r\n stroke: extractColor(options.color, true) || defaultColor,\r\n \"stroke-width\": options.width,\r\n dashStyle: options.dashStyle || \"solid\"\r\n }\r\n },\r\n _parseStyle: function(options, defaultColor) {\r\n return {\r\n elements: this._parseLineOptions(options, defaultColor)\r\n }\r\n },\r\n _applyStyle: function(style) {\r\n this._elementsGroup && this._elementsGroup.attr(style.elements);\r\n each(this._graphics || [], (function(_, graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.elements[\"stroke-width\"]\r\n }).sharp()\r\n }))\r\n },\r\n _drawElement: function(segment, group) {\r\n return {\r\n line: this._createMainElement(segment.line, {\r\n \"stroke-width\": this._styles.normal.elements[\"stroke-width\"]\r\n }).append(group)\r\n }\r\n },\r\n _removeElement: function(element) {\r\n element.line.remove()\r\n },\r\n _updateElement: function(element, segment, animate, animationComplete) {\r\n var params = {\r\n points: segment.line\r\n };\r\n var lineElement = element.line;\r\n animate ? lineElement.animate(params, {}, animationComplete) : lineElement.attr(params)\r\n },\r\n _animateComplete: function() {\r\n chartScatterSeries._animateComplete.call(this);\r\n this._markersGroup && this._markersGroup.animate({\r\n opacity: 1\r\n }, {\r\n duration: this._defaultDuration\r\n })\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastIndex = that._graphics.length - 1;\r\n each(that._graphics || [], (function(i, elem) {\r\n var complete;\r\n if (i === lastIndex) {\r\n complete = function() {\r\n that._animateComplete()\r\n }\r\n }\r\n that._updateElement(elem, that._segments[i], true, complete)\r\n }))\r\n },\r\n _drawPoint: function(options) {\r\n chartScatterSeries._drawPoint.call(this, {\r\n point: options.point,\r\n groups: options.groups\r\n })\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"line\").attr(settings)\r\n },\r\n _sortPoints: function(points, rotated) {\r\n return rotated ? points.sort((function(p1, p2) {\r\n return p2.y - p1.y\r\n })) : points.sort((function(p1, p2) {\r\n return p1.x - p2.x\r\n }))\r\n },\r\n _drawSegment: function(points, animationEnabled, segmentCount, lastSegment) {\r\n var rotated = this._options.rotated;\r\n var segment = this._prepareSegment(points, rotated, lastSegment);\r\n this._segments.push(segment);\r\n if (!this._graphics[segmentCount]) {\r\n this._graphics[segmentCount] = this._drawElement(animationEnabled ? this._getDefaultSegment(segment) : segment, this._elementsGroup)\r\n } else if (!animationEnabled) {\r\n this._updateElement(this._graphics[segmentCount], segment)\r\n }\r\n },\r\n _getTrackerSettings: function() {\r\n var defaultTrackerWidth = this._defaultTrackerWidth;\r\n var strokeWidthFromElements = this._styles.normal.elements[\"stroke-width\"];\r\n return {\r\n \"stroke-width\": strokeWidthFromElements > defaultTrackerWidth ? strokeWidthFromElements : defaultTrackerWidth,\r\n fill: \"none\"\r\n }\r\n },\r\n _getMainPointsFromSegment: function(segment) {\r\n return segment.line\r\n },\r\n _drawTrackerElement: function(segment) {\r\n return this._createMainElement(this._getMainPointsFromSegment(segment), this._getTrackerSettings(segment))\r\n },\r\n _updateTrackerElement: function(segment, element) {\r\n var settings = this._getTrackerSettings(segment);\r\n settings.points = this._getMainPointsFromSegment(segment);\r\n element.attr(settings)\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n if (!chartScatterSeries.checkSeriesViewportCoord.call(this)) {\r\n return false\r\n }\r\n var range = axis.isArgumentAxis ? this.getArgumentRange() : this.getViewport();\r\n var min = axis.getTranslator().translate(range.categories ? range.categories[0] : range.min);\r\n var max = axis.getTranslator().translate(range.categories ? range.categories[range.categories.length - 1] : range.max);\r\n var rotated = this.getOptions().rotated;\r\n var inverted = axis.getOptions().inverted;\r\n return axis.isArgumentAxis && (!rotated && !inverted || rotated && inverted) || !axis.isArgumentAxis && (rotated && !inverted || !rotated && inverted) ? coord >= min && coord <= max : coord >= max && coord <= min\r\n }\r\n};\r\nvar lineSeries = chart.line = extend({}, chartScatterSeries, lineMethods, {\r\n getPointCenterByArg(arg) {\r\n var value = this.getArgumentAxis().getTranslator().translate(arg);\r\n return {\r\n x: value,\r\n y: value\r\n }\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n var needValueCoord = isArgument && !this._options.rotated || !isArgument && this._options.rotated;\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n var p = nearestPoints[i];\r\n var k = (p[1].vy - p[0].vy) / (p[1].vx - p[0].vx);\r\n var b = p[0].vy - p[0].vx * k;\r\n var tmpCoord = void 0;\r\n if (p[1].vx - p[0].vx === 0) {\r\n tmpCoord = needValueCoord ? p[0].vy : p[0].vx\r\n } else {\r\n tmpCoord = needValueCoord ? k * coord + b : (coord - b) / k\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\nchart.stepline = extend({}, lineSeries, {\r\n _calculateStepLinePoints(points) {\r\n var segment = [];\r\n var coordName = this._options.rotated ? \"x\" : \"y\";\r\n each(points, (function(i, pt) {\r\n var point;\r\n if (!i) {\r\n segment.push(pt);\r\n return\r\n }\r\n var step = segment[segment.length - 1][coordName];\r\n if (step !== pt[coordName]) {\r\n point = clone(pt);\r\n point[coordName] = step;\r\n segment.push(point)\r\n }\r\n segment.push(pt)\r\n }));\r\n return segment\r\n },\r\n _prepareSegment: function(points) {\r\n return lineSeries._prepareSegment(this._calculateStepLinePoints(points))\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord;\r\n var rotated = this._options.rotated;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n var p = nearestPoints[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = coord !== p[1][coordName] ? p[0][oppositeCoordName] : p[1][oppositeCoordName]\r\n } else {\r\n tmpCoord = coord === p[0][coordName] ? p[0][oppositeCoordName] : p[1][oppositeCoordName]\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\nchart.spline = extend({}, lineSeries, {\r\n _calculateBezierPoints: function(src, rotated) {\r\n var bezierPoints = [];\r\n var pointsCopy = src;\r\n var checkExtremum = function(otherPointCoord, pointCoord, controlCoord) {\r\n return otherPointCoord > pointCoord && controlCoord > otherPointCoord || otherPointCoord < pointCoord && controlCoord < otherPointCoord ? otherPointCoord : controlCoord\r\n };\r\n if (1 !== pointsCopy.length) {\r\n pointsCopy.forEach((function(curPoint, i) {\r\n var leftControlX;\r\n var leftControlY;\r\n var rightControlX;\r\n var rightControlY;\r\n var prevPoint = pointsCopy[i - 1];\r\n var nextPoint = pointsCopy[i + 1];\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var a;\r\n var b;\r\n var c;\r\n var xc;\r\n var yc;\r\n var shift;\r\n if (!i || i === pointsCopy.length - 1) {\r\n bezierPoints.push(curPoint, curPoint);\r\n return\r\n }\r\n var xCur = curPoint.x;\r\n var yCur = curPoint.y;\r\n x1 = prevPoint.x;\r\n x2 = nextPoint.x;\r\n y1 = prevPoint.y;\r\n y2 = nextPoint.y;\r\n var curIsExtremum = !!(!rotated && (yCur <= prevPoint.y && yCur <= nextPoint.y || yCur >= prevPoint.y && yCur >= nextPoint.y) || rotated && (xCur <= prevPoint.x && xCur <= nextPoint.x || xCur >= prevPoint.x && xCur >= nextPoint.x));\r\n if (curIsExtremum) {\r\n if (!rotated) {\r\n rightControlY = leftControlY = yCur;\r\n rightControlX = (xCur + nextPoint.x) / 2;\r\n leftControlX = (xCur + prevPoint.x) / 2\r\n } else {\r\n rightControlX = leftControlX = xCur;\r\n rightControlY = (yCur + nextPoint.y) / 2;\r\n leftControlY = (yCur + prevPoint.y) / 2\r\n }\r\n } else {\r\n a = y2 - y1;\r\n b = x1 - x2;\r\n c = y1 * x2 - x1 * y2;\r\n if (!rotated) {\r\n if (!b) {\r\n bezierPoints.push(curPoint, curPoint, curPoint);\r\n return\r\n }\r\n xc = xCur;\r\n yc = -1 * (a * xc + c) / b;\r\n shift = yc - yCur;\r\n y1 -= shift;\r\n y2 -= shift\r\n } else {\r\n if (!a) {\r\n bezierPoints.push(curPoint, curPoint, curPoint);\r\n return\r\n }\r\n yc = yCur;\r\n xc = -1 * (b * yc + c) / a;\r\n shift = xc - xCur;\r\n x1 -= shift;\r\n x2 -= shift\r\n }\r\n rightControlX = (xCur + .5 * x2) / 1.5;\r\n rightControlY = (yCur + .5 * y2) / 1.5;\r\n leftControlX = (xCur + .5 * x1) / 1.5;\r\n leftControlY = (yCur + .5 * y1) / 1.5\r\n }\r\n if (!rotated) {\r\n leftControlY = checkExtremum(prevPoint.y, yCur, leftControlY);\r\n rightControlY = checkExtremum(nextPoint.y, yCur, rightControlY)\r\n } else {\r\n leftControlX = checkExtremum(prevPoint.x, xCur, leftControlX);\r\n rightControlX = checkExtremum(nextPoint.x, xCur, rightControlX)\r\n }\r\n var leftPoint = clonePoint(curPoint, leftControlX, leftControlY);\r\n var rightPoint = clonePoint(curPoint, rightControlX, rightControlY);\r\n bezierPoints.push(leftPoint, curPoint, rightPoint)\r\n }))\r\n } else {\r\n bezierPoints.push(pointsCopy[0])\r\n }\r\n return bezierPoints\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n return lineSeries._prepareSegment(this._calculateBezierPoints(points, rotated))\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"bezier\").attr(settings)\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var isOpposite = !isArgument && !this._options.rotated || isArgument && this._options.rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var bezierCoordName = !isOpposite ? \"x\" : \"y\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var bezierOppositeCoordName = !isOpposite ? \"y\" : \"x\";\r\n var axis = !isArgument ? this.getArgumentAxis() : this.getValueAxis();\r\n var visibleArea = axis.getVisibleArea();\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n var _loop = function() {\r\n var p = nearestPoints[i];\r\n if (1 === p.length) {\r\n visibleArea[0] <= p[0][oppositeCoordName] && visibleArea[1] >= p[0][oppositeCoordName] && (oppositeCoord = p[0][oppositeCoordName])\r\n } else {\r\n var ts = obtainCubicBezierTCoef(coord, p[0][coordName], p[1][bezierCoordName], p[2][bezierCoordName], p[3][coordName]);\r\n ts.forEach(t => {\r\n if (t >= 0 && t <= 1) {\r\n var tmpCoord = Math.pow(1 - t, 3) * p[0][oppositeCoordName] + 3 * Math.pow(1 - t, 2) * t * p[1][bezierOppositeCoordName] + 3 * (1 - t) * t * t * p[2][bezierOppositeCoordName] + t * t * t * p[3][oppositeCoordName];\r\n if (visibleArea[0] <= tmpCoord && visibleArea[1] >= tmpCoord) {\r\n oppositeCoord = tmpCoord\r\n }\r\n }\r\n })\r\n }\r\n if (null !== oppositeCoord) {\r\n return 1\r\n }\r\n };\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n if (_loop()) {\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n _getNearestPoints(point, nextPoint, bezierPoints) {\r\n var index = bezierPoints.indexOf(point);\r\n return [point, bezierPoints[index + 1], bezierPoints[index + 2], nextPoint]\r\n },\r\n _getBezierPoints() {\r\n return this._segments.length > 0 ? this._segments.reduce((a, seg) => a.concat(seg.line), []) : []\r\n }\r\n});\r\npolar.line = extend({}, polarScatterSeries, lineMethods, {\r\n _sortPoints: function(points) {\r\n return points\r\n },\r\n _prepareSegment: function(points, rotated, lastSegment) {\r\n var preparedPoints = [];\r\n var centerPoint = this.getValueAxis().getCenter();\r\n var i;\r\n lastSegment && this._closeSegment(points);\r\n if (this.argumentAxisType !== DISCRETE && this.valueAxisType !== DISCRETE) {\r\n for (i = 1; i < points.length; i++) {\r\n preparedPoints = preparedPoints.concat(this._getTangentPoints(points[i], points[i - 1], centerPoint, i === points.length - 1))\r\n }\r\n if (!preparedPoints.length) {\r\n preparedPoints = points\r\n }\r\n } else {\r\n return lineSeries._prepareSegment.call(this, points)\r\n }\r\n return {\r\n line: preparedPoints\r\n }\r\n },\r\n _getRemainingAngle: function(angle) {\r\n var normAngle = normalizeAngle(angle);\r\n return angle >= 0 ? 360 - normAngle : -normAngle\r\n },\r\n _closeSegment(points) {\r\n var point = this._segments.length ? this._segments[0].line[0] : points[0];\r\n var newPoint = clonePoint(point, point.x, point.y, point.angle);\r\n newPoint = this._modifyReflectedPoint(newPoint, points.at(-1));\r\n if (newPoint) {\r\n points.push(newPoint)\r\n }\r\n },\r\n _modifyReflectedPoint(point, lastPoint) {\r\n if (lastPoint.angle === point.angle) {\r\n return\r\n }\r\n if (normalizeAngle(round(lastPoint.angle)) === normalizeAngle(round(point.angle))) {\r\n point.angle = lastPoint.angle\r\n } else {\r\n var differenceAngle = lastPoint.angle - point.angle;\r\n point.angle = lastPoint.angle + this._getRemainingAngle(differenceAngle)\r\n }\r\n return point\r\n },\r\n _getTangentPoints: function(point, prevPoint, centerPoint, isLastSegment) {\r\n var tangentPoints = [];\r\n var betweenAngle = Math.round(prevPoint.angle - point.angle);\r\n var tan = (prevPoint.radius - point.radius) / betweenAngle;\r\n var i;\r\n if (0 === betweenAngle) {\r\n tangentPoints = [prevPoint, point]\r\n } else if (betweenAngle > 0) {\r\n var angle = isLastSegment ? betweenAngle : betweenAngle - 1;\r\n for (i = angle; i >= 0; i--) {\r\n tangentPoints.push(getTangentPoint(point, prevPoint, centerPoint, tan, i))\r\n }\r\n } else {\r\n var _angle = isLastSegment ? betweenAngle : betweenAngle + 1;\r\n for (i = 0; i >= _angle; i--) {\r\n tangentPoints.push(getTangentPoint(point, prevPoint, centerPoint, tan, betweenAngle - i))\r\n }\r\n }\r\n return tangentPoints\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var argAxis = this.getArgumentAxis();\r\n var paramName = isArgument ? \"angle\" : \"radius\";\r\n var coordParam = params[paramName];\r\n var centerPoint = argAxis.getCenter();\r\n var isInsideInterval = (prevPoint, point, _ref) => {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n return (p1 = {\r\n x: x,\r\n y: y\r\n }, p2 = centerPoint, sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2))) <= argAxis.getRadius() && min(prevPoint.x, point.x) <= x && max(prevPoint.x, point.x) >= x && min(prevPoint.y, point.y) <= y && max(prevPoint.y, point.y) >= y;\r\n var p1, p2\r\n };\r\n var coords;\r\n var neighborPoints = this.getNeighborPoints(coordParam, paramName);\r\n if (1 === neighborPoints.length) {\r\n coords = neighborPoints[0]\r\n } else if (neighborPoints.length > 1) {\r\n var prevPoint = neighborPoints[0];\r\n var point = neighborPoints[1];\r\n if (this.argumentAxisType !== DISCRETE && this.valueAxisType !== DISCRETE) {\r\n var tan;\r\n var stepAngle;\r\n if (isArgument) {\r\n tan = (prevPoint.radius - point.radius) / (prevPoint.angle - point.angle);\r\n stepAngle = coordParam - point.angle\r\n } else {\r\n tan = (prevPoint.radius - point.radius) / (prevPoint.angle - point.angle);\r\n stepAngle = (coordParam - point.radius) / tan\r\n }\r\n coords = getTangentPoint(point, prevPoint, centerPoint, tan, stepAngle)\r\n } else if (isArgument) {\r\n var cosSin = getCosAndSin(-coordParam);\r\n var k1 = (point.y - prevPoint.y) / (point.x - prevPoint.x);\r\n var b1 = prevPoint.y - prevPoint.x * k1;\r\n var k2 = cosSin.sin / cosSin.cos;\r\n var b2 = centerPoint.y - k2 * centerPoint.x;\r\n var x = (b2 - b1) / (k1 - k2);\r\n var y = k1 * x + b1;\r\n if (isInsideInterval(prevPoint, point, {\r\n x: x,\r\n y: y\r\n })) {\r\n var quarter = abs(trunc((360 + coordParam) / 90) % 4);\r\n if (0 === quarter && x >= centerPoint.x && y <= centerPoint.y || 1 === quarter && x <= centerPoint.x && y <= centerPoint.y || 2 === quarter && x <= centerPoint.x && y >= centerPoint.y || 3 === quarter && x >= centerPoint.x && y >= centerPoint.y) {\r\n coords = {\r\n x: x,\r\n y: y\r\n }\r\n }\r\n }\r\n } else {\r\n var k = (point.y - prevPoint.y) / (point.x - prevPoint.x);\r\n var y0 = prevPoint.y - prevPoint.x * k;\r\n var a = 1 + k * k;\r\n var b = -2 * centerPoint.x + 2 * k * y0 - 2 * k * centerPoint.y;\r\n var c = -pow(coordParam, 2) + pow(y0 - centerPoint.y, 2) + pow(centerPoint.x, 2);\r\n var d = b * b - 4 * a * c;\r\n if (d >= 0) {\r\n var x1 = (-b - sqrt(d)) / (2 * a);\r\n var x2 = (-b + sqrt(d)) / (2 * a);\r\n var y1 = k * x1 + y0;\r\n var y2 = k * x2 + y0;\r\n coords = isInsideInterval(prevPoint, point, {\r\n x: x1,\r\n y: y1\r\n }) ? {\r\n x: x1,\r\n y: y1\r\n } : isInsideInterval(prevPoint, point, {\r\n x: x2,\r\n y: y2\r\n }) ? {\r\n x: x2,\r\n y: y2\r\n } : void 0\r\n }\r\n }\r\n }\r\n return coords\r\n },\r\n getNeighborPoints(param, paramName) {\r\n var points = this.getPoints();\r\n var neighborPoints = [];\r\n if (this.getOptions().closed) {\r\n points = extend(true, [], points);\r\n var lastPoint = points[points.length - 1];\r\n var firstPointCopy = clonePoint(points[0], points[0].x, points[0].y, points[0].angle);\r\n var lastPointCopy = clonePoint(lastPoint, lastPoint.x, lastPoint.y, lastPoint.angle);\r\n var rearwardRefPoint = this._modifyReflectedPoint(firstPointCopy, lastPoint);\r\n var forwardRefPoint = this._modifyReflectedPoint(lastPointCopy, points[0]);\r\n if (forwardRefPoint) {\r\n points.unshift(forwardRefPoint)\r\n }\r\n if (rearwardRefPoint) {\r\n points.push(rearwardRefPoint)\r\n }\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n if (points[i - 1][paramName] === param) {\r\n neighborPoints.push(points[i - 1])\r\n } else if (points[i][paramName] === param) {\r\n neighborPoints.push(points[i])\r\n } else if (points[i][paramName] > param && points[i - 1][paramName] < param || points[i - 1][paramName] > param && points[i][paramName] < param) {\r\n neighborPoints.push(points[i - 1]);\r\n neighborPoints.push(points[i])\r\n }\r\n if (neighborPoints.length > 0) {\r\n break\r\n }\r\n }\r\n return neighborPoints\r\n }\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/area_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as lineSeriesChart,\r\n polar as lineSeriesPolar\r\n} from \"./line_series\";\r\nvar chartLineSeries = lineSeriesChart.line;\r\nvar polarLineSeries = lineSeriesPolar.line;\r\nimport {\r\n map as _map,\r\n extractColor\r\n} from \"../core/utils\";\r\nvar _extend = extend;\r\nvar calculateBezierPoints = lineSeriesChart.spline._calculateBezierPoints;\r\nvar chart = {};\r\nvar polar = {};\r\nvar baseAreaMethods = {\r\n _createBorderElement: chartLineSeries._createMainElement,\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: extractColor(styleOptions.color) || defaultColor,\r\n opacity: styleOptions.opacity,\r\n hatching: styleOptions.hatching,\r\n filter: styleOptions.highlight\r\n }\r\n },\r\n _getColorId: function(options) {\r\n var _options$color;\r\n return null === (_options$color = options.color) || void 0 === _options$color ? void 0 : _options$color.fillId\r\n },\r\n getValueRangeInitialValue: function() {\r\n if (\"logarithmic\" !== this.valueAxisType && \"datetime\" !== this.valueType && false !== this.showZero) {\r\n return 0\r\n } else {\r\n return scatterSeries.getValueRangeInitialValue.call(this)\r\n }\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var defaultSegment = chartLineSeries._getDefaultSegment(segment);\r\n defaultSegment.area = defaultSegment.line.concat(defaultSegment.line.slice().reverse());\r\n return defaultSegment\r\n },\r\n _updateElement: function(element, segment, animate, complete) {\r\n var lineParams = {\r\n points: segment.line\r\n };\r\n var areaParams = {\r\n points: segment.area\r\n };\r\n var borderElement = element.line;\r\n if (animate) {\r\n borderElement && borderElement.animate(lineParams);\r\n element.area.animate(areaParams, {}, complete)\r\n } else {\r\n borderElement && borderElement.attr(lineParams);\r\n element.area.attr(areaParams)\r\n }\r\n },\r\n _removeElement: function(element) {\r\n element.line && element.line.remove();\r\n element.area.remove()\r\n },\r\n _drawElement: function(segment) {\r\n return {\r\n line: this._bordersGroup && this._createBorderElement(segment.line, {\r\n \"stroke-width\": this._styles.normal.border[\"stroke-width\"]\r\n }).append(this._bordersGroup),\r\n area: this._createMainElement(segment.area).append(this._elementsGroup)\r\n }\r\n },\r\n _applyStyle: function(style) {\r\n this._elementsGroup && this._elementsGroup.smartAttr(style.elements);\r\n this._bordersGroup && this._bordersGroup.attr(style.border);\r\n (this._graphics || []).forEach((function(graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n }).sharp()\r\n }))\r\n },\r\n _parseStyle: function(options, defaultColor, defaultBorderColor) {\r\n var _options$highlight;\r\n var borderOptions = options.border || {};\r\n var borderStyle = chartLineSeries._parseLineOptions(borderOptions, defaultBorderColor);\r\n borderStyle.stroke = borderOptions.visible && borderStyle[\"stroke-width\"] ? borderStyle.stroke : \"none\";\r\n borderStyle[\"stroke-width\"] = borderStyle[\"stroke-width\"] || 1;\r\n return {\r\n border: borderStyle,\r\n elements: {\r\n stroke: \"none\",\r\n fill: extractColor(options.color) || defaultColor,\r\n hatching: options.hatching,\r\n opacity: options.opacity,\r\n filter: null !== (_options$highlight = options.highlight) && void 0 !== _options$highlight ? _options$highlight : null\r\n }\r\n }\r\n },\r\n _areBordersVisible: function() {\r\n var options = this._options;\r\n return options.border.visible || options.hoverStyle.border.visible || options.selectionStyle.border.visible\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"area\").attr(settings)\r\n },\r\n _getTrackerSettings: function(segment) {\r\n return {\r\n \"stroke-width\": segment.singlePointSegment ? this._defaultTrackerWidth : 0\r\n }\r\n },\r\n _getMainPointsFromSegment: function(segment) {\r\n return segment.area\r\n }\r\n};\r\n\r\nfunction createAreaPoints(points) {\r\n return _map(points, (function(pt) {\r\n return pt.getCoords()\r\n })).concat(_map(points.slice().reverse(), (function(pt) {\r\n return pt.getCoords(true)\r\n })))\r\n}\r\nvar areaSeries = chart.area = _extend({}, chartLineSeries, baseAreaMethods, {\r\n _prepareSegment(points, rotated) {\r\n var processedPoints = this._processSinglePointsAreaSegment(points, rotated);\r\n var areaPoints = createAreaPoints(processedPoints);\r\n var argAxis = this.getArgumentAxis();\r\n if (argAxis.getAxisPosition) {\r\n var argAxisPosition = argAxis.getAxisPosition();\r\n var axisOptions = argAxis.getOptions();\r\n var edgeOffset = (!rotated ? -1 : 1) * Math.round(axisOptions.width / 2);\r\n if (axisOptions.visible) {\r\n areaPoints.forEach((p, i) => {\r\n if (p) {\r\n var index = 1 === points.length ? 0 : i < points.length ? i : areaPoints.length - 1 - i;\r\n rotated && p.x === points[index].defaultX && p.x === argAxisPosition - argAxis.getAxisShift() && (p.x += edgeOffset);\r\n !rotated && p.y === points[index].defaultY && p.y === argAxisPosition - argAxis.getAxisShift() && (p.y += edgeOffset)\r\n }\r\n })\r\n }\r\n }\r\n return {\r\n line: processedPoints,\r\n area: areaPoints,\r\n singlePointSegment: processedPoints !== points\r\n }\r\n },\r\n _processSinglePointsAreaSegment: function(points, rotated) {\r\n if (points && 1 === points.length) {\r\n var p = points[0];\r\n var p1 = clone(p);\r\n p1[rotated ? \"y\" : \"x\"] += 1;\r\n p1.argument = null;\r\n return [p, p1]\r\n }\r\n return points\r\n }\r\n});\r\npolar.area = _extend({}, polarLineSeries, baseAreaMethods, {\r\n _prepareSegment: function(points, rotated, lastSegment) {\r\n lastSegment && polarLineSeries._closeSegment.call(this, points);\r\n return areaSeries._prepareSegment.call(this, points)\r\n },\r\n _processSinglePointsAreaSegment: function(points) {\r\n return lineSeriesPolar.line._prepareSegment.call(this, points).line\r\n }\r\n});\r\nchart.steparea = _extend({}, areaSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n var stepLineSeries = lineSeriesChart.stepline;\r\n points = areaSeries._processSinglePointsAreaSegment(points, rotated);\r\n return areaSeries._prepareSegment.call(this, stepLineSeries._calculateStepLinePoints.call(this, points), rotated)\r\n },\r\n getSeriesPairCoord: lineSeriesChart.stepline.getSeriesPairCoord\r\n});\r\nchart.splinearea = _extend({}, areaSeries, {\r\n _areaPointsToSplineAreaPoints: function(areaPoints) {\r\n var previousMiddlePoint = areaPoints[areaPoints.length / 2 - 1];\r\n var middlePoint = areaPoints[areaPoints.length / 2];\r\n areaPoints.splice(areaPoints.length / 2, 0, {\r\n x: previousMiddlePoint.x,\r\n y: previousMiddlePoint.y\r\n }, {\r\n x: middlePoint.x,\r\n y: middlePoint.y\r\n })\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n var processedPoints = areaSeries._processSinglePointsAreaSegment(points, rotated);\r\n var areaSegment = areaSeries._prepareSegment.call(this, calculateBezierPoints(processedPoints, rotated));\r\n this._areaPointsToSplineAreaPoints(areaSegment.area);\r\n areaSegment.singlePointSegment = processedPoints !== points;\r\n return areaSegment\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var areaDefaultSegment = areaSeries._getDefaultSegment(segment);\r\n this._areaPointsToSplineAreaPoints(areaDefaultSegment.area);\r\n return areaDefaultSegment\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"bezierarea\").attr(settings)\r\n },\r\n _createBorderElement: lineSeriesChart.spline._createMainElement,\r\n getSeriesPairCoord: lineSeriesChart.spline.getSeriesPairCoord,\r\n _getNearestPoints: lineSeriesChart.spline._getNearestPoints,\r\n _getBezierPoints: lineSeriesChart.spline._getBezierPoints,\r\n obtainCubicBezierTCoef: lineSeriesChart.spline.obtainCubicBezierTCoef\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/bar_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport * as scatterSeries from \"./scatter_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nvar areaSeries = areaChart.area;\r\nimport {\r\n convertPolarToXY,\r\n extractColor\r\n} from \"../core/utils\";\r\nvar chartSeries = scatterSeries.chart;\r\nvar polarSeries = scatterSeries.polar;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar chart = {};\r\nvar polar = {};\r\nvar baseBarSeriesMethods = {\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: extractColor(styleOptions.color) || defaultColor,\r\n hatching: styleOptions.hatching,\r\n filter: styleOptions.highlight\r\n }\r\n },\r\n _getColorId: areaSeries._getColorId,\r\n _parsePointStyle: function(style, defaultColor, defaultBorderColor) {\r\n var color = extractColor(style.color) || defaultColor;\r\n var base = chartSeries._parsePointStyle.call(this, style, color, defaultBorderColor);\r\n base.fill = color;\r\n base.hatching = style.hatching;\r\n base.filter = style.highlight;\r\n base.dashStyle = style.border && style.border.dashStyle || \"solid\";\r\n delete base.r;\r\n return base\r\n },\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = null\r\n },\r\n _setGroupsSettings: function(animationEnabled, firstDrawing) {\r\n var that = this;\r\n var settings = {};\r\n chartSeries._setGroupsSettings.apply(that, arguments);\r\n if (animationEnabled && firstDrawing) {\r\n settings = this._getAffineCoordOptions()\r\n } else if (!animationEnabled) {\r\n settings = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n translateX: 0,\r\n translateY: 0\r\n }\r\n }\r\n that._markersGroup.attr(settings)\r\n },\r\n _drawPoint: function(options) {\r\n options.hasAnimation = options.hasAnimation && !options.firstDrawing;\r\n options.firstDrawing = false;\r\n chartSeries._drawPoint.call(this, options)\r\n },\r\n _getMainColor: function() {\r\n return this._options.mainSeriesColor\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var _pointOptions$color;\r\n var mainColor = extractColor(pointOptions.color, true) || this._getMainColor();\r\n var colorId = null === (_pointOptions$color = pointOptions.color) || void 0 === _pointOptions$color ? void 0 : _pointOptions$color.fillId;\r\n var hoverStyle = pointOptions.hoverStyle || {};\r\n var selectionStyle = pointOptions.selectionStyle || {};\r\n if (colorId) {\r\n this._turnOffHatching(hoverStyle, selectionStyle)\r\n }\r\n return {\r\n labelColor: mainColor,\r\n normal: this._parsePointStyle(pointOptions, mainColor, mainColor),\r\n hover: this._parsePointStyle(hoverStyle, colorId || mainColor, mainColor),\r\n selection: this._parsePointStyle(selectionStyle, colorId || mainColor, mainColor)\r\n }\r\n },\r\n _updatePointsVisibility: function() {\r\n var visibility = this._options.visible;\r\n each(this._points, (function(_, point) {\r\n point._options.visible = visibility\r\n }))\r\n },\r\n _getOptionsForPoint: function() {\r\n return this._options\r\n },\r\n _animate: function(firstDrawing) {\r\n var that = this;\r\n that._animatePoints(firstDrawing, (function() {\r\n that._animateComplete()\r\n }), (function(drawnPoints, complete) {\r\n var lastPointIndex = drawnPoints.length - 1;\r\n _each(drawnPoints || [], (function(i, point) {\r\n point.animate(i === lastPointIndex ? complete : void 0, point.getMarkerCoords())\r\n }))\r\n }))\r\n },\r\n getValueRangeInitialValue: areaSeries.getValueRangeInitialValue,\r\n _patchMarginOptions: function(options) {\r\n var _this$getArgumentAxis;\r\n options.checkInterval = !this.useAggregation() || (null === (_this$getArgumentAxis = this.getArgumentAxis()) || void 0 === _this$getArgumentAxis ? void 0 : _this$getArgumentAxis.aggregatedPointBetweenTicks());\r\n return options\r\n },\r\n _defaultAggregator: \"sum\",\r\n _defineDrawingState() {},\r\n usePointsToDefineAutoHiding: () => false\r\n};\r\nchart.bar = _extend({}, chartSeries, baseBarSeriesMethods, {\r\n _getAffineCoordOptions: function() {\r\n var rotated = this._options.rotated;\r\n var direction = rotated ? \"X\" : \"Y\";\r\n var settings = {\r\n scaleX: rotated ? .001 : 1,\r\n scaleY: rotated ? 1 : .001\r\n };\r\n settings[\"translate\" + direction] = this.getValueAxis().getTranslator().translate(\"canvas_position_default\");\r\n return settings\r\n },\r\n _animatePoints: function(firstDrawing, complete, animateFunc) {\r\n this._markersGroup.animate({\r\n scaleX: 1,\r\n scaleY: 1,\r\n translateY: 0,\r\n translateX: 0\r\n }, void 0, complete);\r\n if (!firstDrawing) {\r\n animateFunc(this._drawnPoints, complete)\r\n }\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n if (!chartSeries.checkSeriesViewportCoord.call(this)) {\r\n return false\r\n }\r\n if (axis.isArgumentAxis) {\r\n return true\r\n }\r\n var translator = axis.getTranslator();\r\n var range = this.getViewport();\r\n var min = translator.translate(range.categories ? range.categories[0] : range.min);\r\n var max = translator.translate(range.categories ? range.categories[range.categories.length - 1] : range.max);\r\n var rotated = this.getOptions().rotated;\r\n var inverted = axis.getOptions().inverted;\r\n return rotated && !inverted || !rotated && inverted ? coord >= min && coord <= max : coord >= max && coord <= min\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var {\r\n rotated: rotated\r\n } = this._options;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var oppositeCoordName = isOpposite ? \"vx\" : \"vy\";\r\n var points = this.getPoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.getCenterCoord()[coordName[1]] === coord ? p[oppositeCoordName] : void 0\r\n } else {\r\n tmpCoord = p[coordName] === coord ? p[oppositeCoordName] : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\npolar.bar = _extend({}, polarSeries, baseBarSeriesMethods, {\r\n _animatePoints: function(firstDrawing, complete, animateFunc) {\r\n animateFunc(this._drawnPoints, complete)\r\n },\r\n _setGroupsSettings: chartSeries._setGroupsSettings,\r\n _drawPoint: function(point, groups, animationEnabled) {\r\n chartSeries._drawPoint.call(this, point, groups, animationEnabled)\r\n },\r\n _parsePointStyle: function(style) {\r\n var base = baseBarSeriesMethods._parsePointStyle.apply(this, arguments);\r\n base.opacity = style.opacity;\r\n return base\r\n },\r\n _createGroups: chartSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n var markersSettings = this._createPointStyles(this._getMarkerGroupOptions()).normal;\r\n markersSettings.class = \"dxc-markers\";\r\n this._applyMarkerClipRect(markersSettings);\r\n var groupSettings = _extend({}, markersSettings);\r\n delete groupSettings.opacity;\r\n this._markersGroup.attr(groupSettings)\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var coords = null;\r\n var paramName = isArgument ? \"argument\" : \"radius\";\r\n var points = this.getVisiblePoints();\r\n var argAxis = this.getArgumentAxis();\r\n var startAngle = argAxis.getAngles()[0];\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpPoint = _isDefined(p[paramName]) && _isDefined(params[paramName]) && p[paramName].valueOf() === params[paramName].valueOf() ? convertPolarToXY(argAxis.getCenter(), startAngle, -argAxis.getTranslatedAngle(p.angle), p.radius) : void 0;\r\n if (_isDefined(tmpPoint)) {\r\n coords = tmpPoint;\r\n break\r\n }\r\n }\r\n return coords\r\n },\r\n _createLegendState: areaSeries._createLegendState\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/range_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map as _map\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nvar barSeries = barChart.bar;\r\nvar areaSeries = areaChart.area;\r\nvar chart = {};\r\nvar baseRangeSeries = {\r\n areErrorBarsVisible: _noop,\r\n _createErrorBarGroup: _noop,\r\n _checkData: function(data, skippedFields) {\r\n var valueFields = this.getValueFields();\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n minValue: valueFields[0],\r\n value: valueFields[1]\r\n }) && data.minValue === data.minValue\r\n },\r\n getValueRangeInitialValue: scatterSeries.getValueRangeInitialValue,\r\n _getPointDataSelector: function(data) {\r\n var valueFields = this.getValueFields();\r\n var val1Field = valueFields[0];\r\n var val2Field = valueFields[1];\r\n var tagField = this.getTagField();\r\n var argumentField = this.getArgumentField();\r\n return data => ({\r\n tag: data[tagField],\r\n minValue: this._processEmptyValue(data[val1Field]),\r\n value: this._processEmptyValue(data[val2Field]),\r\n argument: data[argumentField],\r\n data: data\r\n })\r\n },\r\n _defaultAggregator: \"range\",\r\n _aggregators: {\r\n range(_ref, series) {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueFields = series.getValueFields();\r\n var val1Field = valueFields[0];\r\n var val2Field = valueFields[1];\r\n var result = data.reduce((result, item) => {\r\n var val1 = item[val1Field];\r\n var val2 = item[val2Field];\r\n if (!_isDefined(val1) || !_isDefined(val2)) {\r\n return result\r\n }\r\n result[val1Field] = Math.min(result[val1Field], Math.min(val1, val2));\r\n result[val2Field] = Math.max(result[val2Field], Math.max(val1, val2));\r\n return result\r\n }, {\r\n [val1Field]: 1 / 0,\r\n [val2Field]: -1 / 0,\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n });\r\n if (!isFinite(result[val1Field]) || !isFinite(result[val2Field])) {\r\n if (data.filter(i => null === i[val1Field] && null === i[val2Field]).length === data.length) {\r\n result[val1Field] = result[val2Field] = null\r\n } else {\r\n return\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n getValueFields: function() {\r\n return [this._options.rangeValue1Field || \"val1\", this._options.rangeValue2Field || \"val2\"]\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var {\r\n rotated: rotated\r\n } = this._options;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var minCoordName = rotated ? \"minX\" : \"minY\";\r\n var oppositeCoordName = isOpposite ? \"vx\" : \"vy\";\r\n var points = this.getPoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.getCenterCoord()[coordName[1]] === coord ? p[oppositeCoordName] : void 0\r\n } else {\r\n var coords = [Math.min(p[coordName], p[minCoordName]), Math.max(p[coordName], p[minCoordName])];\r\n tmpCoord = coord >= coords[0] && coord <= coords[1] ? p[oppositeCoordName] : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n};\r\nchart.rangebar = _extend({}, barSeries, baseRangeSeries);\r\nchart.rangearea = _extend({}, areaSeries, {\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n if (point.isInVisibleArea()) {\r\n point.clearVisibility();\r\n point.draw(this._renderer, options.groups);\r\n this._drawnPoints.push(point);\r\n if (!point.visibleTopMarker) {\r\n point.hideMarker(\"top\")\r\n }\r\n if (!point.visibleBottomMarker) {\r\n point.hideMarker(\"bottom\")\r\n }\r\n } else {\r\n point.setInvisibility()\r\n }\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n var processedPoints = this._processSinglePointsAreaSegment(points, rotated);\r\n var processedMinPointsCoords = _map(processedPoints, (function(pt) {\r\n return pt.getCoords(true)\r\n }));\r\n return {\r\n line: processedPoints,\r\n bottomLine: processedMinPointsCoords,\r\n area: _map(processedPoints, (function(pt) {\r\n return pt.getCoords()\r\n })).concat(processedMinPointsCoords.slice().reverse()),\r\n singlePointSegment: processedPoints !== points\r\n }\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var defaultSegment = areaSeries._getDefaultSegment.call(this, segment);\r\n defaultSegment.bottomLine = defaultSegment.line;\r\n return defaultSegment\r\n },\r\n _removeElement: function(element) {\r\n areaSeries._removeElement.call(this, element);\r\n element.bottomLine && element.bottomLine.remove()\r\n },\r\n _drawElement: function(segment, group) {\r\n var drawnElement = areaSeries._drawElement.call(this, segment, group);\r\n drawnElement.bottomLine = this._bordersGroup && this._createBorderElement(segment.bottomLine, {\r\n \"stroke-width\": this._styles.normal.border[\"stroke-width\"]\r\n }).append(this._bordersGroup);\r\n return drawnElement\r\n },\r\n _applyStyle: function(style) {\r\n var elementsGroup = this._elementsGroup;\r\n var bordersGroup = this._bordersGroup;\r\n elementsGroup && elementsGroup.smartAttr(style.elements);\r\n bordersGroup && bordersGroup.attr(style.border);\r\n (this._graphics || []).forEach((function(graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n });\r\n graphic.bottomLine && graphic.bottomLine.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n })\r\n }))\r\n },\r\n _updateElement: function(element, segment, animate, complete) {\r\n var bottomLineParams = {\r\n points: segment.bottomLine\r\n };\r\n var bottomBorderElement = element.bottomLine;\r\n areaSeries._updateElement.apply(this, arguments);\r\n if (bottomBorderElement) {\r\n animate ? bottomBorderElement.animate(bottomLineParams) : bottomBorderElement.attr(bottomLineParams)\r\n }\r\n }\r\n}, baseRangeSeries);\r\nexport {\r\n chart\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/bubble_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as lineChart\r\n} from \"./line_series\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nimport {\r\n chart as barChart,\r\n polar as barPolar\r\n} from \"./bar_series\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar lineSeries = lineChart.line;\r\nvar areaSeries = areaChart.area;\r\nvar chartBarSeries = barChart.bar;\r\nvar polarBarSeries = barPolar.bar;\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar _noop = noop;\r\nvar chart = {};\r\nchart.bubble = _extend({}, scatterSeries, {\r\n _calculateErrorBars: _noop,\r\n _getMainColor: chartBarSeries._getMainColor,\r\n _createPointStyles: chartBarSeries._createPointStyles,\r\n _updatePointsVisibility: chartBarSeries._updatePointsVisibility,\r\n _getOptionsForPoint: chartBarSeries._getOptionsForPoint,\r\n _applyMarkerClipRect: lineSeries._applyElementsClipRect,\r\n _parsePointStyle: polarBarSeries._parsePointStyle,\r\n _createLegendState: areaSeries._createLegendState,\r\n _getColorId: areaSeries._getColorId,\r\n _setMarkerGroupSettings: polarBarSeries._setMarkerGroupSettings,\r\n areErrorBarsVisible: _noop,\r\n _createErrorBarGroup: _noop,\r\n _checkData: function(data, skippedFields) {\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n value: this.getValueFields()[0],\r\n size: this.getSizeField()\r\n })\r\n },\r\n _getPointDataSelector: function(data, options) {\r\n var sizeField = this.getSizeField();\r\n var baseGetter = scatterSeries._getPointDataSelector.call(this);\r\n return data => {\r\n var pointData = baseGetter(data);\r\n pointData.size = data[sizeField];\r\n return pointData\r\n }\r\n },\r\n _aggregators: {\r\n avg(_ref, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var sizeField = series.getSizeField();\r\n var aggregate = data.reduce((result, item) => {\r\n result[0] += item[valueField];\r\n result[1] += item[sizeField];\r\n result[2]++;\r\n return result\r\n }, [0, 0, 0]);\r\n return {\r\n [valueField]: aggregate[0] / aggregate[2],\r\n [sizeField]: aggregate[1] / aggregate[2],\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }\r\n }\r\n },\r\n getValueFields: function() {\r\n return [this._options.valueField || \"val\"]\r\n },\r\n getSizeField: function() {\r\n return this._options.sizeField || \"size\"\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastPointIndex = that._drawnPoints.length - 1;\r\n var labelsGroup = that._labelsGroup;\r\n var labelAnimFunc = function() {\r\n labelsGroup && labelsGroup.animate({\r\n opacity: 1\r\n }, {\r\n duration: that._defaultDuration\r\n })\r\n };\r\n _each(that._drawnPoints || [], (function(i, p) {\r\n p.animate(i === lastPointIndex ? labelAnimFunc : void 0, {\r\n r: p.bubbleSize,\r\n translateX: p.x,\r\n translateY: p.y\r\n })\r\n }))\r\n },\r\n _patchMarginOptions: function(options) {\r\n options.processBubbleSize = true;\r\n return options\r\n }\r\n});\r\nexport {\r\n chart\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/pie_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n chart\r\n} from \"./scatter_series\";\r\nimport {\r\n normalizeAngle,\r\n map,\r\n extractColor\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nvar chartScatterSeries = chart;\r\nvar barSeries = barChart.bar;\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar _noop = noop;\r\nvar _map = map;\r\nvar _isFinite = isFinite;\r\nvar _max = Math.max;\r\nvar ANIMATION_DURATION = .7;\r\nvar INSIDE = \"inside\";\r\nexport var pie = _extend({}, barSeries, {\r\n _setGroupsSettings: function() {\r\n chartScatterSeries._setGroupsSettings.apply(this, arguments);\r\n this._labelsGroup.attr({\r\n \"pointer-events\": null\r\n })\r\n },\r\n _createErrorBarGroup: _noop,\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n var legendCallback = this._legendCallback;\r\n chartScatterSeries._drawPoint.call(this, options);\r\n !point.isVisible() && point.setInvisibility();\r\n point.isSelected() && legendCallback()\r\n },\r\n _getOldPoint: function(data, oldPointsByArgument, index) {\r\n var point = (this._points || [])[index];\r\n if (point) {\r\n oldPointsByArgument[point.argument.valueOf()] = oldPointsByArgument[point.argument.valueOf()].filter(p => p !== point)\r\n }\r\n return point\r\n },\r\n adjustLabels: function(moveLabelsFromCenter) {\r\n return (this._points || []).reduce((r, p) => {\r\n if (p._label.isVisible()) {\r\n p.setLabelTrackerData();\r\n r = p.applyWordWrap(moveLabelsFromCenter) || r;\r\n p.updateLabelCoord(moveLabelsFromCenter);\r\n return r\r\n }\r\n }, false)\r\n },\r\n _applyElementsClipRect: _noop,\r\n getColor: _noop,\r\n areErrorBarsVisible: _noop,\r\n drawLabelsWOPoints: function() {\r\n if (this._options.label.position === INSIDE) {\r\n return false\r\n }\r\n this._labelsGroup.append(this._extGroups.labelsGroup);\r\n (this._points || []).forEach((function(point) {\r\n point.drawLabel()\r\n }));\r\n return true\r\n },\r\n getPointsCount: function() {\r\n return this._data.filter(d => this._checkData(d)).length\r\n },\r\n setMaxPointsCount: function(count) {\r\n this._pointsCount = count\r\n },\r\n _getCreatingPointOptions: function(data, dataIndex) {\r\n return this._getPointOptions(data, dataIndex)\r\n },\r\n _updateOptions: function(options) {\r\n this.labelSpace = 0;\r\n this.innerRadius = \"pie\" === this.type ? 0 : options.innerRadius\r\n },\r\n _checkData: function(data, skippedFields) {\r\n var base = barSeries._checkData.call(this, data, skippedFields, {\r\n value: this.getValueFields()[0]\r\n });\r\n return this._options.paintNullPoints ? base : base && null !== data.value\r\n },\r\n _createGroups: chartScatterSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n this._markersGroup.attr({\r\n class: \"dxc-markers\"\r\n })\r\n },\r\n _getMainColor(data, point) {\r\n var pointsByArg = this.getPointsByArg(data.argument);\r\n var argumentIndex = point ? pointsByArg.indexOf(point) : pointsByArg.length;\r\n return this._options.mainSeriesColor(data.argument, argumentIndex, this._pointsCount)\r\n },\r\n _getPointOptions: function(data) {\r\n return this._parsePointOptions(this._preparePointOptions(), this._options.label, data)\r\n },\r\n _getRangeData: function() {\r\n return this._rangeData\r\n },\r\n _createPointStyles: function(pointOptions, data, point) {\r\n var _pointOptions$color;\r\n var mainColor = extractColor(pointOptions.color, true) || this._getMainColor(data, point);\r\n var colorId = null === (_pointOptions$color = pointOptions.color) || void 0 === _pointOptions$color ? void 0 : _pointOptions$color.fillId;\r\n var hoverStyle = pointOptions.hoverStyle || {};\r\n var selectionStyle = pointOptions.selectionStyle || {};\r\n if (colorId) {\r\n this._turnOffHatching(hoverStyle, selectionStyle)\r\n }\r\n return {\r\n labelColor: mainColor,\r\n normal: this._parsePointStyle(pointOptions, mainColor, mainColor),\r\n hover: this._parsePointStyle(hoverStyle, colorId || mainColor, mainColor),\r\n selection: this._parsePointStyle(selectionStyle, colorId || mainColor, mainColor),\r\n legendStyles: {\r\n normal: this._createLegendState(pointOptions, mainColor),\r\n hover: this._createLegendState(hoverStyle, colorId || mainColor),\r\n selection: this._createLegendState(selectionStyle, colorId || mainColor)\r\n }\r\n }\r\n },\r\n _getArrangeMinShownValue: function(points, total) {\r\n var minSegmentSize = this._options.minSegmentSize;\r\n var totalMinSegmentSize = 0;\r\n var totalNotMinValues = 0;\r\n total = total || points.length;\r\n _each(points, (function(_, point) {\r\n if (point.isVisible()) {\r\n if (point.normalInitialValue < minSegmentSize * total / 360) {\r\n totalMinSegmentSize += minSegmentSize\r\n } else {\r\n totalNotMinValues += point.normalInitialValue\r\n }\r\n }\r\n }));\r\n return totalMinSegmentSize < 360 ? minSegmentSize * totalNotMinValues / (360 - totalMinSegmentSize) : 0\r\n },\r\n _applyArrangeCorrection: function(points, minShownValue, total) {\r\n var options = this._options;\r\n var isClockWise = \"anticlockwise\" !== options.segmentsDirection;\r\n var shiftedAngle = _isFinite(options.startAngle) ? normalizeAngle(options.startAngle) : 0;\r\n var minSegmentSize = options.minSegmentSize;\r\n var percent;\r\n var correction = 0;\r\n var zeroTotalCorrection = 0;\r\n if (0 === total) {\r\n total = points.filter((function(el) {\r\n return el.isVisible()\r\n })).length;\r\n zeroTotalCorrection = 1\r\n }\r\n _each(isClockWise ? points : points.concat([]).reverse(), (function(_, point) {\r\n var val = point.isVisible() ? zeroTotalCorrection || point.normalInitialValue : 0;\r\n var updatedZeroValue;\r\n if (minSegmentSize && point.isVisible() && val < minShownValue) {\r\n updatedZeroValue = minShownValue\r\n }\r\n percent = val / total;\r\n point.correctValue(correction, percent, zeroTotalCorrection + (updatedZeroValue || 0));\r\n point.shiftedAngle = shiftedAngle;\r\n correction += updatedZeroValue || val\r\n }));\r\n this._rangeData = {\r\n val: {\r\n min: 0,\r\n max: correction\r\n }\r\n }\r\n },\r\n _removePoint: function(point) {\r\n var points = this.getPointsByArg(point.argument);\r\n points.splice(points.indexOf(point), 1);\r\n point.dispose()\r\n },\r\n arrangePoints: function() {\r\n var that = this;\r\n var originalPoints = that._points || [];\r\n var minSegmentSize = that._options.minSegmentSize;\r\n var minShownValue;\r\n var isAllPointsNegative = true;\r\n var i = 0;\r\n var len = originalPoints.length;\r\n while (i < len && isAllPointsNegative) {\r\n isAllPointsNegative = originalPoints[i].value <= 0;\r\n i++\r\n }\r\n var points = that._points = _map(originalPoints, (function(point) {\r\n if (null === point.value || !isAllPointsNegative && point.value < 0) {\r\n that._removePoint(point);\r\n return null\r\n } else {\r\n return point\r\n }\r\n }));\r\n var maxValue = points.reduce((function(max, p) {\r\n return _max(max, Math.abs(p.initialValue))\r\n }), 0);\r\n points.forEach((function(p) {\r\n p.normalInitialValue = p.initialValue / (0 !== maxValue ? maxValue : 1)\r\n }));\r\n var total = points.reduce((function(total, point) {\r\n return total + (point.isVisible() ? point.normalInitialValue : 0)\r\n }), 0);\r\n if (minSegmentSize) {\r\n minShownValue = this._getArrangeMinShownValue(points, total)\r\n }\r\n that._applyArrangeCorrection(points, minShownValue, total)\r\n },\r\n correctPosition: function(correction, canvas) {\r\n _each(this._points, (function(_, point) {\r\n point.correctPosition(correction)\r\n }));\r\n this.setVisibleArea(canvas)\r\n },\r\n correctRadius: function(correction) {\r\n this._points.forEach((function(point) {\r\n point.correctRadius(correction)\r\n }))\r\n },\r\n correctLabelRadius: function(labelRadius) {\r\n this._points.forEach((function(point) {\r\n point.correctLabelRadius(labelRadius)\r\n }))\r\n },\r\n setVisibleArea: function(canvas) {\r\n this._visibleArea = {\r\n minX: canvas.left,\r\n maxX: canvas.width - canvas.right,\r\n minY: canvas.top,\r\n maxY: canvas.height - canvas.bottom\r\n }\r\n },\r\n _applyVisibleArea: _noop,\r\n _animate: function(firstDrawing) {\r\n var that = this;\r\n var points = that._points;\r\n var pointsCount = points && points.length;\r\n var completeFunc = function() {\r\n that._animateComplete()\r\n };\r\n var animatePoint;\r\n if (firstDrawing) {\r\n animatePoint = function(p, i) {\r\n p.animate(i === pointsCount - 1 ? completeFunc : void 0, ANIMATION_DURATION, (1 - ANIMATION_DURATION) * i / (pointsCount - 1))\r\n }\r\n } else {\r\n animatePoint = function(p, i) {\r\n p.animate(i === pointsCount - 1 ? completeFunc : void 0)\r\n }\r\n }\r\n points.forEach(animatePoint)\r\n },\r\n getVisiblePoints: function() {\r\n return _map(this._points, (function(p) {\r\n return p.isVisible() ? p : null\r\n }))\r\n },\r\n getPointsByKeys: function(arg, argumentIndex) {\r\n var pointsByArg = this.getPointsByArg(arg);\r\n return pointsByArg[argumentIndex] && [pointsByArg[argumentIndex]] || []\r\n }\r\n});\r\nexport var doughnut = pie;\r\nexport var donut = pie;\r\n","/**\r\n * DevExtreme (esm/viz/series/financial_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeEnum as _normalizeEnum,\r\n extractColor\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar barSeries = barChart.bar;\r\nvar DEFAULT_FINANCIAL_POINT_SIZE = 10;\r\nexport var stock = _extend({}, scatterSeries, {\r\n _animate: _noop,\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._forceClipping ? this._paneClipRectID : this._widePaneClipRectID\r\n },\r\n _updatePointsVisibility: barSeries._updatePointsVisibility,\r\n _getOptionsForPoint: barSeries._getOptionsForPoint,\r\n _createErrorBarGroup: _noop,\r\n areErrorBarsVisible: _noop,\r\n _createGroups: scatterSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n var markersGroup = this._markersGroup;\r\n var styles = this._createPointStyles(this._getMarkerGroupOptions());\r\n var defaultStyle = _extend(styles.normal, {\r\n class: \"default-markers\"\r\n });\r\n var defaultPositiveStyle = _extend(styles.positive.normal, {\r\n class: \"default-positive-markers\"\r\n });\r\n var reductionStyle = _extend(styles.reduction.normal, {\r\n class: \"reduction-markers\"\r\n });\r\n var reductionPositiveStyle = _extend(styles.reductionPositive.normal, {\r\n class: \"reduction-positive-markers\"\r\n });\r\n var markerSettings = {\r\n class: \"dxc-markers\"\r\n };\r\n this._applyMarkerClipRect(markerSettings);\r\n markersGroup.attr(markerSettings);\r\n this._createGroup(\"defaultMarkersGroup\", markersGroup, markersGroup, defaultStyle);\r\n this._createGroup(\"reductionMarkersGroup\", markersGroup, markersGroup, reductionStyle);\r\n this._createGroup(\"defaultPositiveMarkersGroup\", markersGroup, markersGroup, defaultPositiveStyle);\r\n this._createGroup(\"reductionPositiveMarkersGroup\", markersGroup, markersGroup, reductionPositiveStyle)\r\n },\r\n _setGroupsSettings: function() {\r\n scatterSeries._setGroupsSettings.call(this, false)\r\n },\r\n _getCreatingPointOptions: function() {\r\n var defaultPointOptions;\r\n var creatingPointOptions = this._predefinedPointOptions;\r\n if (!creatingPointOptions) {\r\n defaultPointOptions = this._getPointOptions();\r\n this._predefinedPointOptions = creatingPointOptions = _extend(true, {\r\n styles: {}\r\n }, defaultPointOptions);\r\n creatingPointOptions.styles.normal = creatingPointOptions.styles.positive.normal = creatingPointOptions.styles.reduction.normal = creatingPointOptions.styles.reductionPositive.normal = {\r\n \"stroke-width\": defaultPointOptions.styles && defaultPointOptions.styles.normal && defaultPointOptions.styles.normal[\"stroke-width\"]\r\n }\r\n }\r\n return creatingPointOptions\r\n },\r\n _checkData: function(data, skippedFields) {\r\n var valueFields = this.getValueFields();\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n openValue: valueFields[0],\r\n highValue: valueFields[1],\r\n lowValue: valueFields[2],\r\n closeValue: valueFields[3]\r\n }) && data.highValue === data.highValue && data.lowValue === data.lowValue\r\n },\r\n _getPointDataSelector: function(data, options) {\r\n var that = this;\r\n var level;\r\n var valueFields = that.getValueFields();\r\n var argumentField = that.getArgumentField();\r\n var openValueField = valueFields[0];\r\n var highValueField = valueFields[1];\r\n var lowValueField = valueFields[2];\r\n var closeValueField = valueFields[3];\r\n that.level = that._options.reduction.level;\r\n switch (_normalizeEnum(that.level)) {\r\n case \"open\":\r\n level = openValueField;\r\n break;\r\n case \"high\":\r\n level = highValueField;\r\n break;\r\n case \"low\":\r\n level = lowValueField;\r\n break;\r\n default:\r\n level = closeValueField;\r\n that.level = \"close\"\r\n }\r\n var prevLevelValue;\r\n return data => {\r\n var reductionValue = data[level];\r\n var isReduction = false;\r\n if (_isDefined(reductionValue)) {\r\n if (_isDefined(prevLevelValue)) {\r\n isReduction = reductionValue < prevLevelValue\r\n }\r\n prevLevelValue = reductionValue\r\n }\r\n return {\r\n argument: data[argumentField],\r\n highValue: this._processEmptyValue(data[highValueField]),\r\n lowValue: this._processEmptyValue(data[lowValueField]),\r\n closeValue: this._processEmptyValue(data[closeValueField]),\r\n openValue: this._processEmptyValue(data[openValueField]),\r\n reductionValue: reductionValue,\r\n tag: data[that.getTagField()],\r\n isReduction: isReduction,\r\n data: data\r\n }\r\n }\r\n },\r\n _parsePointStyle: function(style, defaultColor, innerColor) {\r\n var color = extractColor(style.color, true);\r\n return {\r\n stroke: color || defaultColor,\r\n \"stroke-width\": style.width,\r\n fill: color || innerColor\r\n }\r\n },\r\n _getDefaultStyle: function(options) {\r\n var mainPointColor = extractColor(options.color, true) || this._options.mainSeriesColor;\r\n return {\r\n normal: this._parsePointStyle(options, mainPointColor, mainPointColor),\r\n hover: this._parsePointStyle(options.hoverStyle, mainPointColor, mainPointColor),\r\n selection: this._parsePointStyle(options.selectionStyle, mainPointColor, mainPointColor)\r\n }\r\n },\r\n _getReductionStyle: function(options) {\r\n var reductionColor = options.reduction.color;\r\n return {\r\n normal: this._parsePointStyle({\r\n color: reductionColor,\r\n width: options.width,\r\n hatching: options.hatching\r\n }, reductionColor, reductionColor),\r\n hover: this._parsePointStyle(options.hoverStyle, reductionColor, reductionColor),\r\n selection: this._parsePointStyle(options.selectionStyle, reductionColor, reductionColor)\r\n }\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var innerColor = this._options.innerColor;\r\n var styles = this._getDefaultStyle(pointOptions);\r\n var positiveStyle = _extend(true, {}, styles);\r\n var reductionStyle = this._getReductionStyle(pointOptions);\r\n var reductionPositiveStyle = _extend(true, {}, reductionStyle);\r\n positiveStyle.normal.fill = positiveStyle.hover.fill = positiveStyle.selection.fill = innerColor;\r\n reductionPositiveStyle.normal.fill = reductionPositiveStyle.hover.fill = reductionPositiveStyle.selection.fill = innerColor;\r\n styles.positive = positiveStyle;\r\n styles.reduction = reductionStyle;\r\n styles.reductionPositive = reductionPositiveStyle;\r\n styles.labelColor = this._options.mainSeriesColor;\r\n return styles\r\n },\r\n _endUpdateData: function() {\r\n delete this._predefinedPointOptions\r\n },\r\n _defaultAggregator: \"ohlc\",\r\n _aggregators: {\r\n ohlc: (_ref, series) => {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var result = {};\r\n var valueFields = series.getValueFields();\r\n var highValueField = valueFields[1];\r\n var lowValueField = valueFields[2];\r\n result[highValueField] = -1 / 0;\r\n result[lowValueField] = 1 / 0;\r\n result = data.reduce((function(result, item) {\r\n if (null !== item[highValueField]) {\r\n result[highValueField] = Math.max(result[highValueField], item[highValueField])\r\n }\r\n if (null !== item[lowValueField]) {\r\n result[lowValueField] = Math.min(result[lowValueField], item[lowValueField])\r\n }\r\n return result\r\n }), result);\r\n result[valueFields[0]] = data[0][valueFields[0]];\r\n result[valueFields[3]] = data[data.length - 1][valueFields[3]];\r\n if (!isFinite(result[highValueField])) {\r\n result[highValueField] = null\r\n }\r\n if (!isFinite(result[lowValueField])) {\r\n result[lowValueField] = null\r\n }\r\n result[series.getArgumentField()] = series._getIntervalCenter(intervalStart, intervalEnd);\r\n return result\r\n }\r\n },\r\n getValueFields: function() {\r\n var options = this._options;\r\n return [options.openValueField || \"open\", options.highValueField || \"high\", options.lowValueField || \"low\", options.closeValueField || \"close\"]\r\n },\r\n getArgumentField: function() {\r\n return this._options.argumentField || \"date\"\r\n },\r\n _patchMarginOptions: function(options) {\r\n var pointOptions = this._getCreatingPointOptions();\r\n var styles = pointOptions.styles;\r\n var border = [styles.normal, styles.hover, styles.selection].reduce((function(max, style) {\r\n return Math.max(max, style[\"stroke-width\"])\r\n }), 0);\r\n options.size = DEFAULT_FINANCIAL_POINT_SIZE + border;\r\n options.sizePointNormalState = DEFAULT_FINANCIAL_POINT_SIZE;\r\n return options\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.vx === coord ? (p.openY + p.closeY) / 2 : void 0\r\n } else {\r\n var coords = [Math.min(p.lowY, p.highY), Math.max(p.lowY, p.highY)];\r\n tmpCoord = coord >= coords[0] && coord <= coords[1] ? p.vx : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n usePointsToDefineAutoHiding: () => false\r\n});\r\nexport var candlestick = _extend({}, stock, {\r\n _parsePointStyle: function(style, defaultColor, innerColor) {\r\n var color = extractColor(style.color, true) || innerColor;\r\n var base = stock._parsePointStyle.call(this, style, defaultColor, color);\r\n base.fill = color;\r\n base.hatching = style.hatching;\r\n return base\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/stacked_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n chart as areaSeries\r\n} from \"./area_series\";\r\nvar chartAreaSeries = areaSeries.area;\r\nimport {\r\n chart as _chart,\r\n polar as _polar\r\n} from \"./bar_series\";\r\nvar chartBarSeries = _chart.bar;\r\nimport {\r\n chart as lineSeries\r\n} from \"./line_series\";\r\nimport {\r\n map\r\n} from \"../core/utils\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nvar baseStackedSeries = {\r\n _calculateErrorBars: _noop,\r\n _updateOptions: function(options) {\r\n this._stackName = \"axis_\" + (options.axis || \"default\")\r\n }\r\n};\r\nvar chart = {};\r\nvar polar = {};\r\nchart.stackedline = _extend({}, lineSeries.line, baseStackedSeries, {});\r\nchart.stackedspline = _extend({}, lineSeries.spline, baseStackedSeries, {});\r\nchart.fullstackedline = _extend({}, lineSeries.line, baseStackedSeries, {\r\n getValueRangeInitialValue: areaSeries.area.getValueRangeInitialValue\r\n});\r\nchart.fullstackedspline = _extend({}, lineSeries.spline, baseStackedSeries, {\r\n getValueRangeInitialValue: areaSeries.area.getValueRangeInitialValue\r\n});\r\nvar stackedBar = chart.stackedbar = _extend({}, chartBarSeries, baseStackedSeries, {\r\n _updateOptions: function(options) {\r\n baseStackedSeries._updateOptions.call(this, options);\r\n this._stackName = this._stackName + \"_stack_\" + (options.stack || \"default\")\r\n }\r\n});\r\nchart.fullstackedbar = _extend({}, chartBarSeries, baseStackedSeries, {\r\n _updateOptions: stackedBar._updateOptions\r\n});\r\n\r\nfunction clonePoint(point, value, minValue, position) {\r\n point = clone(point);\r\n point.value = value;\r\n point.minValue = minValue;\r\n point.translate();\r\n point.argument = point.argument + position;\r\n return point\r\n}\r\n\r\nfunction preparePointsForStackedAreaSegment(points) {\r\n var i = 0;\r\n var p;\r\n var result = [];\r\n var array;\r\n var len = points.length;\r\n while (i < len) {\r\n p = points[i];\r\n array = [p];\r\n if (p.leftHole) {\r\n array = [clonePoint(p, p.leftHole, p.minLeftHole, \"left\"), p]\r\n }\r\n if (p.rightHole) {\r\n array.push(clonePoint(p, p.rightHole, p.minRightHole, \"right\"))\r\n }\r\n result.push(array);\r\n i++\r\n }\r\n return [].concat.apply([], result)\r\n}\r\nchart.stackedarea = _extend({}, chartAreaSeries, baseStackedSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n return chartAreaSeries._prepareSegment.call(this, preparePointsForStackedAreaSegment(points), rotated)\r\n },\r\n _appendInGroup: function() {\r\n this._group.append(this._extGroups.seriesGroup).toBackground()\r\n }\r\n});\r\n\r\nfunction getPointsByArgFromPrevSeries(prevSeries, argument) {\r\n var result;\r\n while (!result && prevSeries) {\r\n result = prevSeries._segmentByArg && prevSeries._segmentByArg[argument];\r\n prevSeries = prevSeries._prevSeries\r\n }\r\n return result\r\n}\r\nchart.stackedsplinearea = _extend({}, areaSeries.splinearea, baseStackedSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n var that = this;\r\n var areaSegment;\r\n points = preparePointsForStackedAreaSegment(points);\r\n if (!this._prevSeries || 1 === points.length) {\r\n areaSegment = areaSeries.splinearea._prepareSegment.call(this, points, rotated)\r\n } else {\r\n var forwardPoints = lineSeries.spline._calculateBezierPoints(points, rotated);\r\n var backwardPoints = map(points, (function(p) {\r\n var point = p.getCoords(true);\r\n point.argument = p.argument;\r\n return point\r\n }));\r\n var prevSeriesForwardPoints = [];\r\n var pointByArg = {};\r\n var i = 0;\r\n var len = that._prevSeries._segments.length;\r\n while (i < len) {\r\n prevSeriesForwardPoints = prevSeriesForwardPoints.concat(that._prevSeries._segments[i].line);\r\n i++\r\n }\r\n each(prevSeriesForwardPoints, (function(_, p) {\r\n if (null !== p.argument) {\r\n var argument = p.argument.valueOf();\r\n if (!pointByArg[argument]) {\r\n pointByArg[argument] = [p]\r\n } else {\r\n pointByArg[argument].push(p)\r\n }\r\n }\r\n }));\r\n that._prevSeries._segmentByArg = pointByArg;\r\n backwardPoints = lineSeries.spline._calculateBezierPoints(backwardPoints, rotated);\r\n each(backwardPoints, (function(i, p) {\r\n var argument = p.argument.valueOf();\r\n var prevSeriesPoints;\r\n if (i % 3 === 0) {\r\n prevSeriesPoints = pointByArg[argument] || getPointsByArgFromPrevSeries(that._prevSeries, argument);\r\n if (prevSeriesPoints) {\r\n backwardPoints[i - 1] && prevSeriesPoints[0] && (backwardPoints[i - 1] = prevSeriesPoints[0]);\r\n backwardPoints[i + 1] && (backwardPoints[i + 1] = prevSeriesPoints[2] || p)\r\n }\r\n }\r\n }));\r\n areaSegment = {\r\n line: forwardPoints,\r\n area: forwardPoints.concat(backwardPoints.reverse())\r\n };\r\n that._areaPointsToSplineAreaPoints(areaSegment.area)\r\n }\r\n return areaSegment\r\n },\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\nchart.fullstackedarea = _extend({}, chartAreaSeries, baseStackedSeries, {\r\n _prepareSegment: chart.stackedarea._prepareSegment,\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\nchart.fullstackedsplinearea = _extend({}, areaSeries.splinearea, baseStackedSeries, {\r\n _prepareSegment: chart.stackedsplinearea._prepareSegment,\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\npolar.stackedbar = _extend({}, _polar.bar, baseStackedSeries, {});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/base_series.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar seriesNS = {};\r\nimport {\r\n isFunction,\r\n isDefined as _isDefined,\r\n isEmptyObject as _isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Point\r\n} from \"./points/base_point\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport consts from \"../components/consts\";\r\nvar states = consts.states;\r\nimport rangeCalculator from \"./helpers/range_data_calculator\";\r\nimport * as scatterSeries from \"./scatter_series\";\r\nimport * as lineSeries from \"./line_series\";\r\nimport * as areaSeries from \"./area_series\";\r\nimport * as barSeries from \"./bar_series\";\r\nimport {\r\n chart as rangeSeriesChart\r\n} from \"./range_series\";\r\nimport {\r\n chart as bubbleSeriesChart\r\n} from \"./bubble_series\";\r\nimport * as pieSeries from \"./pie_series\";\r\nimport * as financialSeries from \"./financial_series\";\r\nimport * as stackedSeries from \"./stacked_series\";\r\nvar DISCRETE = \"discrete\";\r\nvar SELECTED_STATE = states.selectedMark;\r\nvar HOVER_STATE = states.hoverMark;\r\nvar HOVER = states.hover;\r\nvar NORMAL = states.normal;\r\nvar SELECTION = states.selection;\r\nvar APPLY_SELECTED = states.applySelected;\r\nvar APPLY_HOVER = states.applyHover;\r\nvar RESET_ITEM = states.resetItem;\r\nvar NONE_MODE = \"none\";\r\nvar INCLUDE_POINTS = \"includepoints\";\r\nvar NEAREST_POINT = \"nearestpoint\";\r\nvar SERIES_SELECTION_CHANGED = \"seriesSelectionChanged\";\r\nvar POINT_SELECTION_CHANGED = \"pointSelectionChanged\";\r\nvar SERIES_HOVER_CHANGED = \"seriesHoverChanged\";\r\nvar POINT_HOVER_CHANGED = \"pointHoverChanged\";\r\nvar ALL_SERIES_POINTS = \"allseriespoints\";\r\nvar ALL_ARGUMENT_POINTS = \"allargumentpoints\";\r\nvar POINT_HOVER = \"pointHover\";\r\nvar CLEAR_POINT_HOVER = \"clearPointHover\";\r\nvar SERIES_SELECT = \"seriesSelect\";\r\nvar POINT_SELECT = \"pointSelect\";\r\nvar POINT_DESELECT = \"pointDeselect\";\r\nvar getEmptyBusinessRange = function() {\r\n return {\r\n arg: {},\r\n val: {}\r\n }\r\n};\r\n\r\nfunction triggerEvent(element, event, point) {\r\n element && element.trigger(event, point)\r\n}\r\nseriesNS.mixins = {\r\n chart: {},\r\n pie: {},\r\n polar: {}\r\n};\r\nseriesNS.mixins.chart.scatter = scatterSeries.chart;\r\nseriesNS.mixins.polar.scatter = scatterSeries.polar;\r\n_extend(seriesNS.mixins.pie, pieSeries);\r\n_extend(seriesNS.mixins.chart, lineSeries.chart, areaSeries.chart, barSeries.chart, rangeSeriesChart, bubbleSeriesChart, financialSeries, stackedSeries.chart);\r\n_extend(seriesNS.mixins.polar, lineSeries.polar, areaSeries.polar, barSeries.polar, stackedSeries.polar);\r\n\r\nfunction includePointsMode(mode) {\r\n mode = _normalizeEnum(mode);\r\n return mode === INCLUDE_POINTS || mode === ALL_SERIES_POINTS\r\n}\r\n\r\nfunction getLabelOptions(labelOptions, defaultColor) {\r\n var opt = labelOptions || {};\r\n var labelFont = _extend({}, opt.font) || {};\r\n var labelBorder = opt.border || {};\r\n var labelConnector = opt.connector || {};\r\n var backgroundAttr = {\r\n fill: opt.backgroundColor || defaultColor,\r\n \"stroke-width\": labelBorder.visible ? labelBorder.width || 0 : 0,\r\n stroke: labelBorder.visible && labelBorder.width ? labelBorder.color : \"none\",\r\n dashStyle: labelBorder.dashStyle\r\n };\r\n var connectorAttr = {\r\n stroke: labelConnector.visible && labelConnector.width ? labelConnector.color || defaultColor : \"none\",\r\n \"stroke-width\": labelConnector.visible ? labelConnector.width || 0 : 0\r\n };\r\n labelFont.color = \"none\" === opt.backgroundColor && \"#ffffff\" === _normalizeEnum(labelFont.color) && \"inside\" !== opt.position ? defaultColor : labelFont.color;\r\n return {\r\n alignment: opt.alignment,\r\n format: opt.format,\r\n argumentFormat: opt.argumentFormat,\r\n customizeText: isFunction(opt.customizeText) ? opt.customizeText : void 0,\r\n attributes: {\r\n font: labelFont\r\n },\r\n visible: 0 !== labelFont.size ? opt.visible : false,\r\n showForZeroValues: opt.showForZeroValues,\r\n horizontalOffset: opt.horizontalOffset,\r\n verticalOffset: opt.verticalOffset,\r\n radialOffset: opt.radialOffset,\r\n background: backgroundAttr,\r\n position: opt.position,\r\n connector: connectorAttr,\r\n rotationAngle: opt.rotationAngle,\r\n wordWrap: opt.wordWrap,\r\n textOverflow: opt.textOverflow,\r\n cssClass: opt.cssClass,\r\n displayFormat: opt.displayFormat\r\n }\r\n}\r\n\r\nfunction setPointHoverState(point, legendCallback) {\r\n point.fullState |= HOVER_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction releasePointHoverState(point, legendCallback) {\r\n point.fullState &= ~HOVER_STATE;\r\n point.applyView(legendCallback);\r\n point.releaseHoverState()\r\n}\r\n\r\nfunction setPointSelectedState(point, legendCallback) {\r\n point.fullState |= SELECTED_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction releasePointSelectedState(point, legendCallback) {\r\n point.fullState &= ~SELECTED_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction mergePointOptionsCore(base, extra) {\r\n var options = _extend({}, base, extra);\r\n options.border = _extend({}, base && base.border, extra && extra.border);\r\n return options\r\n}\r\n\r\nfunction mergePointOptions(base, extra) {\r\n var options = mergePointOptionsCore(base, extra);\r\n options.image = _extend(true, {}, base.image, extra.image);\r\n options.selectionStyle = mergePointOptionsCore(base.selectionStyle, extra.selectionStyle);\r\n options.hoverStyle = mergePointOptionsCore(base.hoverStyle, extra.hoverStyle);\r\n return options\r\n}\r\nexport function Series(settings, options) {\r\n this.fullState = 0;\r\n this._extGroups = settings;\r\n this._renderer = settings.renderer;\r\n this._group = settings.renderer.g().attr({\r\n class: \"dxc-series\"\r\n });\r\n this._eventTrigger = settings.eventTrigger;\r\n this._eventPipe = settings.eventPipe;\r\n this._incidentOccurred = settings.incidentOccurred;\r\n this._legendCallback = _noop;\r\n this.updateOptions(options, settings)\r\n}\r\n\r\nfunction getData(pointData) {\r\n return pointData.data\r\n}\r\n\r\nfunction getValueChecker(axisType, axis) {\r\n if (!axis || \"logarithmic\" !== axisType || false !== axis.getOptions().allowNegatives) {\r\n return () => true\r\n } else {\r\n return value => value > 0\r\n }\r\n}\r\nSeries.prototype = {\r\n constructor: Series,\r\n _createLegendState: _noop,\r\n getLegendStyles: function() {\r\n return this._styles.legendStyles\r\n },\r\n _createStyles: function(options) {\r\n var mainSeriesColor = options.mainSeriesColor;\r\n var colorId = this._getColorId(options);\r\n var hoverStyle = options.hoverStyle || {};\r\n var selectionStyle = options.selectionStyle || {};\r\n if (colorId) {\r\n this._turnOffHatching(hoverStyle, selectionStyle)\r\n }\r\n this._styles = {\r\n labelColor: mainSeriesColor,\r\n normal: this._parseStyle(options, mainSeriesColor, mainSeriesColor),\r\n hover: this._parseStyle(hoverStyle, colorId || mainSeriesColor, mainSeriesColor),\r\n selection: this._parseStyle(selectionStyle, colorId || mainSeriesColor, mainSeriesColor),\r\n legendStyles: {\r\n normal: this._createLegendState(options, colorId || mainSeriesColor),\r\n hover: this._createLegendState(hoverStyle, colorId || mainSeriesColor),\r\n selection: this._createLegendState(selectionStyle, colorId || mainSeriesColor)\r\n }\r\n }\r\n },\r\n setClippingParams(baseId, wideId, forceClipping) {\r\n var clipLabels = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n this._paneClipRectID = baseId;\r\n this._widePaneClipRectID = wideId;\r\n this._forceClipping = forceClipping;\r\n this._clipLabels = clipLabels\r\n },\r\n applyClip: function() {\r\n this._group.attr({\r\n \"clip-path\": this._paneClipRectID\r\n })\r\n },\r\n resetClip: function() {\r\n this._group.attr({\r\n \"clip-path\": null\r\n })\r\n },\r\n getTagField: function() {\r\n return this._options.tagField || \"tag\"\r\n },\r\n getValueFields: _noop,\r\n getSizeField: _noop,\r\n getArgumentField: _noop,\r\n getPoints: function() {\r\n return this._points\r\n },\r\n getPointsInViewPort: function() {\r\n return rangeCalculator.getPointsInViewPort(this)\r\n },\r\n _createPoint: function(data, index, oldPoint) {\r\n data.index = index;\r\n var pointsByArgument = this.pointsByArgument;\r\n var options = this._getCreatingPointOptions(data);\r\n var arg = data.argument.valueOf();\r\n var point = oldPoint;\r\n if (point) {\r\n point.update(data, options)\r\n } else {\r\n point = new Point(this, data, options);\r\n if (this.isSelected() && includePointsMode(this.lastSelectionMode)) {\r\n point.setView(SELECTION)\r\n }\r\n }\r\n var pointByArgument = pointsByArgument[arg];\r\n if (pointByArgument) {\r\n pointByArgument.push(point)\r\n } else {\r\n pointsByArgument[arg] = [point]\r\n }\r\n if (point.hasValue()) {\r\n this.customizePoint(point, data)\r\n }\r\n return point\r\n },\r\n getRangeData: function() {\r\n return this._visible ? this._getRangeData() : getEmptyBusinessRange()\r\n },\r\n getArgumentRange: function() {\r\n return this._visible ? rangeCalculator.getArgumentRange(this) : getEmptyBusinessRange()\r\n },\r\n getViewport: function() {\r\n return rangeCalculator.getViewport(this)\r\n },\r\n _deleteGroup: function(groupName) {\r\n var group = this[groupName];\r\n if (group) {\r\n group.dispose();\r\n this[groupName] = null\r\n }\r\n },\r\n updateOptions(newOptions, settings) {\r\n var widgetType = newOptions.widgetType;\r\n var oldType = this.type;\r\n var newType = newOptions.type;\r\n this.type = newType && _normalizeEnum(newType.toString());\r\n if (!this._checkType(widgetType) || this._checkPolarBarType(widgetType, newOptions)) {\r\n this.dispose();\r\n this.isUpdated = false;\r\n return\r\n }\r\n if (oldType !== this.type) {\r\n this._firstDrawing = true;\r\n this._resetType(oldType, widgetType);\r\n this._setType(this.type, widgetType)\r\n } else {\r\n this._defineDrawingState()\r\n }\r\n this._options = newOptions;\r\n this._pointOptions = null;\r\n this.name = newOptions.name;\r\n this.pane = newOptions.pane;\r\n this.tag = newOptions.tag;\r\n if (settings) {\r\n this._seriesModes = settings.commonSeriesModes || this._seriesModes;\r\n this._valueAxis = settings.valueAxis || this._valueAxis;\r\n this.axis = this._valueAxis && this._valueAxis.name;\r\n this._argumentAxis = settings.argumentAxis || this._argumentAxis\r\n }\r\n this._createStyles(newOptions);\r\n this._stackName = null;\r\n this._updateOptions(newOptions);\r\n this._visible = newOptions.visible;\r\n this.isUpdated = true;\r\n this.stack = newOptions.stack;\r\n this.barOverlapGroup = newOptions.barOverlapGroup;\r\n this._createGroups();\r\n this._processEmptyValue = newOptions.ignoreEmptyPoints ? x => null === x ? void 0 : x : x => x\r\n },\r\n _defineDrawingState() {\r\n this._firstDrawing = true\r\n },\r\n _disposePoints: function(points) {\r\n _each(points || [], (function(_, p) {\r\n p.dispose()\r\n }))\r\n },\r\n updateDataType: function(settings) {\r\n this.argumentType = settings.argumentType;\r\n this.valueType = settings.valueType;\r\n this.argumentAxisType = settings.argumentAxisType;\r\n this.valueAxisType = settings.valueAxisType;\r\n this.showZero = settings.showZero;\r\n this._argumentChecker = getValueChecker(settings.argumentAxisType, this.getArgumentAxis());\r\n this._valueChecker = getValueChecker(settings.valueAxisType, this.getValueAxis());\r\n return this\r\n },\r\n _argumentChecker: function() {\r\n return true\r\n },\r\n _valueChecker: function() {\r\n return true\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n _getOldPoint: function(data, oldPointsByArgument, index) {\r\n var arg = data.argument && data.argument.valueOf();\r\n var point = (oldPointsByArgument[arg] || [])[0];\r\n if (point) {\r\n oldPointsByArgument[arg].splice(0, 1)\r\n }\r\n return point\r\n },\r\n updateData: function(data) {\r\n var options = this._options;\r\n var nameField = options.nameField;\r\n data = data || [];\r\n if (data.length) {\r\n this._canRenderCompleteHandle = true\r\n }\r\n var dataSelector = this._getPointDataSelector();\r\n var itemsWithoutArgument = 0;\r\n this._data = data.reduce((data, dataItem, index) => {\r\n var pointDataItem = dataSelector(dataItem);\r\n if (_isDefined(pointDataItem.argument)) {\r\n if (!nameField || dataItem[nameField] === options.nameFieldValue) {\r\n pointDataItem.index = index;\r\n data.push(pointDataItem)\r\n }\r\n } else {\r\n itemsWithoutArgument++\r\n }\r\n return data\r\n }, []);\r\n if (itemsWithoutArgument && itemsWithoutArgument === data.length) {\r\n this._incidentOccurred(\"W2002\", [this.name, this.getArgumentField()])\r\n }\r\n this._endUpdateData()\r\n },\r\n _getData() {\r\n var data = this._data || [];\r\n if (this.useAggregation()) {\r\n var argumentRange = this.argumentAxisType !== DISCRETE ? this.getArgumentRange() : {};\r\n var aggregationInfo = this.getArgumentAxis().getAggregationInfo(this._useAllAggregatedPoints, argumentRange);\r\n data = this._resample(aggregationInfo, data)\r\n }\r\n return data\r\n },\r\n useAggregation: function() {\r\n var aggregation = this.getOptions().aggregation;\r\n return aggregation && aggregation.enabled\r\n },\r\n autoHidePointMarkersEnabled: _noop,\r\n usePointsToDefineAutoHiding: _noop,\r\n createPoints(useAllAggregatedPoints) {\r\n this._normalizeUsingAllAggregatedPoints(useAllAggregatedPoints);\r\n this._createPoints()\r\n },\r\n _normalizeUsingAllAggregatedPoints: function(useAllAggregatedPoints) {\r\n this._useAllAggregatedPoints = this.useAggregation() && (this.argumentAxisType === DISCRETE || (this._data || []).length > 1 && !!useAllAggregatedPoints)\r\n },\r\n _createPoints: function() {\r\n var that = this;\r\n var oldPointsByArgument = that.pointsByArgument || {};\r\n var data = that._getData();\r\n that.pointsByArgument = {};\r\n that._calculateErrorBars(data);\r\n var skippedFields = {};\r\n var points = data.reduce((points, pointDataItem) => {\r\n if (that._checkData(pointDataItem, skippedFields)) {\r\n var pointIndex = points.length;\r\n var oldPoint = that._getOldPoint(pointDataItem, oldPointsByArgument, pointIndex);\r\n var point = that._createPoint(pointDataItem, pointIndex, oldPoint);\r\n points.push(point)\r\n }\r\n return points\r\n }, []);\r\n for (var field in skippedFields) {\r\n if (skippedFields[field] === data.length) {\r\n that._incidentOccurred(\"W2002\", [that.name, field])\r\n }\r\n }\r\n Object.keys(oldPointsByArgument).forEach(key => that._disposePoints(oldPointsByArgument[key]));\r\n that._points = points\r\n },\r\n _removeOldSegments: function() {\r\n var that = this;\r\n var startIndex = that._segments.length;\r\n _each(that._graphics.splice(startIndex, that._graphics.length) || [], (function(_, elem) {\r\n that._removeElement(elem)\r\n }));\r\n if (that._trackers) {\r\n _each(that._trackers.splice(startIndex, that._trackers.length) || [], (function(_, elem) {\r\n elem.remove()\r\n }))\r\n }\r\n },\r\n _prepareSegmentsPosition() {\r\n var points = this._points || [];\r\n var isCloseSegment = points[0] && points[0].hasValue() && this._options.closed;\r\n var segments = points.reduce((function(segments, p) {\r\n var segment = segments.at(-1);\r\n if (!p.translated) {\r\n p.setDefaultCoords()\r\n }\r\n if (p.hasValue() && p.hasCoords()) {\r\n segment.push(p)\r\n } else if (!p.hasValue() && segment.length) {\r\n segments.push([])\r\n }\r\n return segments\r\n }), [\r\n []\r\n ]);\r\n this._drawSegments(segments, isCloseSegment, false)\r\n },\r\n _drawElements(animationEnabled, firstDrawing) {\r\n var that = this;\r\n var points = that._points || [];\r\n var isCloseSegment = points[0] && points[0].hasValue() && that._options.closed;\r\n var groupForPoint = {\r\n markers: that._markersGroup,\r\n errorBars: that._errorBarGroup\r\n };\r\n that._drawnPoints = [];\r\n that._graphics = that._graphics || [];\r\n that._segments = [];\r\n var segments = points.reduce((function(segments, p) {\r\n var segment = segments.at(-1);\r\n if (p.hasValue() && p.hasCoords()) {\r\n that._drawPoint({\r\n point: p,\r\n groups: groupForPoint,\r\n hasAnimation: animationEnabled,\r\n firstDrawing: firstDrawing\r\n });\r\n segment.push(p)\r\n } else if (!p.hasValue()) {\r\n segment.length && segments.push([])\r\n } else {\r\n p.setInvisibility()\r\n }\r\n return segments\r\n }), [\r\n []\r\n ]);\r\n that._drawSegments(segments, isCloseSegment, animationEnabled);\r\n that._firstDrawing = !points.length;\r\n that._removeOldSegments();\r\n animationEnabled && that._animate(firstDrawing)\r\n },\r\n _drawSegments(segments, closeSegment, animationEnabled) {\r\n segments.forEach((segment, index) => {\r\n if (segment.length) {\r\n var lastSegment = closeSegment && index === segments.length - 1;\r\n this._drawSegment(segment, animationEnabled, index, lastSegment)\r\n }\r\n })\r\n },\r\n draw(animationEnabled, hideLayoutLabels, legendCallback) {\r\n var firstDrawing = this._firstDrawing;\r\n this._legendCallback = legendCallback || this._legendCallback;\r\n if (!this._visible) {\r\n this._group.remove();\r\n return\r\n }\r\n this._appendInGroup();\r\n if (!this._isAllPointsTranslated) {\r\n this.prepareCoordinatesForPoints()\r\n }\r\n this._setGroupsSettings(animationEnabled, firstDrawing);\r\n !firstDrawing && !this._resetApplyingAnimation && this._prepareSegmentsPosition();\r\n this._drawElements(animationEnabled, firstDrawing);\r\n hideLayoutLabels && this.hideLabels();\r\n if (this.isSelected()) {\r\n this._changeStyle(this.lastSelectionMode, void 0, true)\r\n } else if (this.isHovered()) {\r\n this._changeStyle(this.lastHoverMode, void 0, true)\r\n } else {\r\n this._applyStyle(this._styles.normal)\r\n }\r\n this._isAllPointsTranslated = false;\r\n this._resetApplyingAnimation = false\r\n },\r\n _translatePoints() {\r\n var _this$_points;\r\n var points = null !== (_this$_points = this._points) && void 0 !== _this$_points ? _this$_points : [];\r\n points.forEach(p => {\r\n p.translate()\r\n })\r\n },\r\n prepareCoordinatesForPoints() {\r\n this._applyVisibleArea();\r\n this._translatePoints();\r\n this._isAllPointsTranslated = true\r\n },\r\n _setLabelGroupSettings: function(animationEnabled) {\r\n var settings = {\r\n class: \"dxc-labels\",\r\n \"pointer-events\": \"none\"\r\n };\r\n this._clipLabels && this._applyElementsClipRect(settings);\r\n this._applyClearingSettings(settings);\r\n animationEnabled && (settings.opacity = .001);\r\n this._labelsGroup.attr(settings).append(this._extGroups.labelsGroup)\r\n },\r\n _checkType: function(widgetType) {\r\n return !!seriesNS.mixins[widgetType][this.type]\r\n },\r\n _checkPolarBarType: function(widgetType, options) {\r\n return \"polar\" === widgetType && options.spiderWidget && -1 !== this.type.indexOf(\"bar\")\r\n },\r\n _resetType: function(seriesType, widgetType) {\r\n var methodName;\r\n var methods;\r\n if (seriesType) {\r\n methods = seriesNS.mixins[widgetType][seriesType];\r\n for (methodName in methods) {\r\n delete this[methodName]\r\n }\r\n }\r\n },\r\n _setType: function(seriesType, widgetType) {\r\n var methodName;\r\n var methods = seriesNS.mixins[widgetType][seriesType];\r\n for (methodName in methods) {\r\n this[methodName] = methods[methodName]\r\n }\r\n },\r\n _setPointsView: function(view, target) {\r\n this.getPoints().forEach((function(point) {\r\n if (target !== point) {\r\n point.setView(view)\r\n }\r\n }))\r\n },\r\n _resetPointsView: function(view, target) {\r\n this.getPoints().forEach((function(point) {\r\n if (target !== point) {\r\n point.resetView(view)\r\n }\r\n }))\r\n },\r\n _resetNearestPoint: function() {\r\n this._nearestPoint && null !== this._nearestPoint.series && this._nearestPoint.resetView(HOVER);\r\n this._nearestPoint = null\r\n },\r\n _setSelectedState: function(mode) {\r\n this.lastSelectionMode = _normalizeEnum(mode || this._options.selectionMode);\r\n this.fullState = this.fullState | SELECTED_STATE;\r\n this._resetNearestPoint();\r\n this._changeStyle(this.lastSelectionMode);\r\n if (this.lastSelectionMode !== NONE_MODE && this.isHovered() && includePointsMode(this.lastHoverMode)) {\r\n this._resetPointsView(HOVER)\r\n }\r\n },\r\n _releaseSelectedState: function() {\r\n this.fullState = this.fullState & ~SELECTED_STATE;\r\n this._changeStyle(this.lastSelectionMode, SELECTION);\r\n if (this.lastSelectionMode !== NONE_MODE && this.isHovered() && includePointsMode(this.lastHoverMode)) {\r\n this._setPointsView(HOVER)\r\n }\r\n },\r\n isFullStackedSeries: function() {\r\n return 0 === this.type.indexOf(\"fullstacked\")\r\n },\r\n isStackedSeries: function() {\r\n return 0 === this.type.indexOf(\"stacked\")\r\n },\r\n resetApplyingAnimation: function(isFirstDrawing) {\r\n this._resetApplyingAnimation = true;\r\n if (isFirstDrawing) {\r\n this._firstDrawing = true\r\n }\r\n },\r\n isFinancialSeries: function() {\r\n return \"stock\" === this.type || \"candlestick\" === this.type\r\n },\r\n _canChangeView: function() {\r\n return !this.isSelected() && _normalizeEnum(this._options.hoverMode) !== NONE_MODE\r\n },\r\n _changeStyle: function(mode, resetView, skipPoints) {\r\n var state = this.fullState;\r\n var styles = [NORMAL, HOVER, SELECTION, SELECTION];\r\n if (\"none\" === this.lastHoverMode) {\r\n state &= ~HOVER_STATE\r\n }\r\n if (\"none\" === this.lastSelectionMode) {\r\n state &= ~SELECTED_STATE\r\n }\r\n if (includePointsMode(mode) && !skipPoints) {\r\n if (!resetView) {\r\n this._setPointsView(styles[state])\r\n } else {\r\n this._resetPointsView(resetView)\r\n }\r\n }\r\n this._legendCallback([RESET_ITEM, APPLY_HOVER, APPLY_SELECTED, APPLY_SELECTED][state]);\r\n this._applyStyle(this._styles[styles[state]])\r\n },\r\n updateHover: function(x, y) {\r\n var currentNearestPoint = this._nearestPoint;\r\n var point = this.isHovered() && this.lastHoverMode === NEAREST_POINT && this.getNeighborPoint(x, y);\r\n if (point !== currentNearestPoint && !(this.isSelected() && this.lastSelectionMode !== NONE_MODE)) {\r\n this._resetNearestPoint();\r\n if (point) {\r\n point.setView(HOVER);\r\n this._nearestPoint = point\r\n }\r\n }\r\n },\r\n _getMainAxisName: function() {\r\n return this._options.rotated ? \"X\" : \"Y\"\r\n },\r\n areLabelsVisible: function() {\r\n return !_isDefined(this._options.maxLabelCount) || this._points.length <= this._options.maxLabelCount\r\n },\r\n getLabelVisibility: function() {\r\n return this.areLabelsVisible() && this._options.label && this._options.label.visible\r\n },\r\n customizePoint: function(point, pointData) {\r\n var options = this._options;\r\n var customizePoint = options.customizePoint;\r\n var customizeObject;\r\n var pointOptions;\r\n var customLabelOptions;\r\n var customOptions;\r\n var customizeLabel = options.customizeLabel;\r\n var useLabelCustomOptions;\r\n var usePointCustomOptions;\r\n if (customizeLabel && customizeLabel.call) {\r\n customizeObject = _extend({\r\n seriesName: this.name\r\n }, pointData);\r\n customizeObject.series = this;\r\n customLabelOptions = customizeLabel.call(customizeObject, customizeObject);\r\n useLabelCustomOptions = customLabelOptions && !_isEmptyObject(customLabelOptions);\r\n customLabelOptions = useLabelCustomOptions ? _extend(true, {}, options.label, customLabelOptions) : null\r\n }\r\n if (customizePoint && customizePoint.call) {\r\n customizeObject = customizeObject || _extend({\r\n seriesName: this.name\r\n }, pointData);\r\n customizeObject.series = this;\r\n customOptions = customizePoint.call(customizeObject, customizeObject);\r\n usePointCustomOptions = customOptions && !_isEmptyObject(customOptions)\r\n }\r\n if (useLabelCustomOptions || usePointCustomOptions) {\r\n pointOptions = this._parsePointOptions(this._preparePointOptions(customOptions), customLabelOptions || options.label, pointData, point);\r\n pointOptions.styles.useLabelCustomOptions = useLabelCustomOptions;\r\n pointOptions.styles.usePointCustomOptions = usePointCustomOptions;\r\n point.updateOptions(pointOptions)\r\n }\r\n },\r\n show: function() {\r\n if (!this._visible) {\r\n this._changeVisibility(true)\r\n }\r\n },\r\n hide: function() {\r\n if (this._visible) {\r\n this._changeVisibility(false)\r\n }\r\n },\r\n _changeVisibility: function(visibility) {\r\n this._visible = this._options.visible = visibility;\r\n this._updatePointsVisibility();\r\n this.hidePointTooltip();\r\n this._options.visibilityChanged(this)\r\n },\r\n _updatePointsVisibility: _noop,\r\n hideLabels: function() {\r\n _each(this._points, (function(_, point) {\r\n point._label.draw(false)\r\n }))\r\n },\r\n _turnOffHatching(hoverStyle, selectionStyle) {\r\n if (hoverStyle.hatching) {\r\n hoverStyle.hatching.direction = \"none\"\r\n }\r\n if (selectionStyle.hatching) {\r\n selectionStyle.hatching.direction = \"none\"\r\n }\r\n },\r\n _parsePointOptions: function(pointOptions, labelOptions, data, point) {\r\n var options = this._options;\r\n var styles = this._createPointStyles(pointOptions, data, point);\r\n var parsedOptions = _extend({}, pointOptions, {\r\n type: options.type,\r\n rotated: options.rotated,\r\n styles: styles,\r\n widgetType: options.widgetType,\r\n visibilityChanged: options.visibilityChanged\r\n });\r\n parsedOptions.label = getLabelOptions(labelOptions, styles.labelColor);\r\n if (this.areErrorBarsVisible()) {\r\n parsedOptions.errorBars = options.valueErrorBar\r\n }\r\n return parsedOptions\r\n },\r\n _preparePointOptions: function(customOptions) {\r\n var pointOptions = this._getOptionsForPoint();\r\n return customOptions ? mergePointOptions(pointOptions, customOptions) : pointOptions\r\n },\r\n _getMarkerGroupOptions: function() {\r\n return _extend(false, {}, this._getOptionsForPoint(), {\r\n hoverStyle: {},\r\n selectionStyle: {}\r\n })\r\n },\r\n _getAggregationMethod: function(isDiscrete, aggregateByCategory) {\r\n var options = this.getOptions().aggregation;\r\n var method = _normalizeEnum(options.method);\r\n var customAggregator = \"custom\" === method && options.calculate;\r\n var aggregator;\r\n if (isDiscrete && !aggregateByCategory) {\r\n aggregator = _ref => {\r\n var {\r\n data: data\r\n } = _ref;\r\n return data[0]\r\n }\r\n } else {\r\n aggregator = this._aggregators[method] || this._aggregators[this._defaultAggregator]\r\n }\r\n return customAggregator || aggregator\r\n },\r\n _resample(_ref2, data) {\r\n var {\r\n interval: interval,\r\n ticks: ticks,\r\n aggregateByCategory: aggregateByCategory\r\n } = _ref2;\r\n var that = this;\r\n var isDiscrete = that.argumentAxisType === DISCRETE || that.valueAxisType === DISCRETE;\r\n var dataIndex = 0;\r\n var dataSelector = this._getPointDataSelector();\r\n var options = that.getOptions();\r\n var addAggregatedData = (target, data, aggregationInfo) => {\r\n if (!data) {\r\n return\r\n }\r\n var processData = d => {\r\n var pointData = d && dataSelector(d, options);\r\n if (pointData && that._checkData(pointData)) {\r\n pointData.aggregationInfo = aggregationInfo;\r\n target.push(pointData)\r\n }\r\n };\r\n if (Array.isArray(data)) {\r\n data.forEach(processData)\r\n } else {\r\n processData(data)\r\n }\r\n };\r\n var aggregationMethod = this._getAggregationMethod(isDiscrete, aggregateByCategory);\r\n if (isDiscrete) {\r\n if (aggregateByCategory) {\r\n var categories = this.getArgumentAxis().getTranslator().getBusinessRange().categories;\r\n var groups = categories.reduce((g, category) => {\r\n g[category.valueOf()] = [];\r\n return g\r\n }, {});\r\n data.forEach(dataItem => {\r\n groups[dataItem.argument.valueOf()].push(dataItem)\r\n });\r\n return categories.reduce((result, c) => {\r\n addAggregatedData(result, aggregationMethod({\r\n aggregationInterval: null,\r\n intervalStart: c,\r\n intervalEnd: c,\r\n data: groups[c.valueOf()].map(getData)\r\n }, that));\r\n return result\r\n }, [])\r\n } else {\r\n return data.reduce((result, dataItem, index, data) => {\r\n result[1].push(dataItem);\r\n if (index === data.length - 1 || (index + 1) % interval === 0) {\r\n var dataInInterval = result[1];\r\n var aggregationInfo = {\r\n aggregationInterval: interval,\r\n data: dataInInterval.map(getData)\r\n };\r\n addAggregatedData(result[0], aggregationMethod(aggregationInfo, that));\r\n result[1] = []\r\n }\r\n return result\r\n }, [\r\n [],\r\n []\r\n ])[0]\r\n }\r\n }\r\n var aggregatedData = [];\r\n if (1 === ticks.length) {\r\n var aggregationInfo = {\r\n intervalStart: ticks[0],\r\n intervalEnd: ticks[0],\r\n aggregationInterval: null,\r\n data: data.map(getData)\r\n };\r\n addAggregatedData(aggregatedData, aggregationMethod(aggregationInfo, that), aggregationInfo)\r\n } else {\r\n for (var i = 1; i < ticks.length; i++) {\r\n var intervalEnd = ticks[i];\r\n var intervalStart = ticks[i - 1];\r\n var dataInInterval = [];\r\n while (data[dataIndex] && data[dataIndex].argument < intervalEnd) {\r\n if (data[dataIndex].argument >= intervalStart) {\r\n dataInInterval.push(data[dataIndex])\r\n }\r\n dataIndex++\r\n }\r\n var _aggregationInfo = {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n aggregationInterval: interval,\r\n data: dataInInterval.map(getData)\r\n };\r\n addAggregatedData(aggregatedData, aggregationMethod(_aggregationInfo, that), _aggregationInfo)\r\n }\r\n }\r\n that._endUpdateData();\r\n return aggregatedData\r\n },\r\n canRenderCompleteHandle: function() {\r\n var result = this._canRenderCompleteHandle;\r\n delete this._canRenderCompleteHandle;\r\n return !!result\r\n },\r\n isHovered: function() {\r\n return !!(1 & this.fullState)\r\n },\r\n isSelected: function() {\r\n return !!(2 & this.fullState)\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n getAllPoints: function() {\r\n this._createAllAggregatedPoints();\r\n return (this._points || []).slice()\r\n },\r\n getPointByPos: function(pos) {\r\n this._createAllAggregatedPoints();\r\n return (this._points || [])[pos]\r\n },\r\n getVisiblePoints: function() {\r\n return (this._drawnPoints || []).slice()\r\n },\r\n selectPoint: function(point) {\r\n if (!point.isSelected()) {\r\n setPointSelectedState(point, this._legendCallback);\r\n this._eventPipe({\r\n action: POINT_SELECT,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_SELECTION_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n deselectPoint: function(point) {\r\n if (point.isSelected()) {\r\n releasePointSelectedState(point, this._legendCallback);\r\n this._eventPipe({\r\n action: POINT_DESELECT,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_SELECTION_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n hover: function(mode) {\r\n var eventTrigger = this._eventTrigger;\r\n if (this.isHovered()) {\r\n return\r\n }\r\n this.lastHoverMode = _normalizeEnum(mode || this._options.hoverMode);\r\n this.fullState = this.fullState | HOVER_STATE;\r\n this._changeStyle(this.lastHoverMode, void 0, this.isSelected() && this.lastSelectionMode !== NONE_MODE);\r\n eventTrigger(SERIES_HOVER_CHANGED, {\r\n target: this\r\n })\r\n },\r\n clearHover: function() {\r\n var eventTrigger = this._eventTrigger;\r\n if (!this.isHovered()) {\r\n return\r\n }\r\n this._resetNearestPoint();\r\n this.fullState = this.fullState & ~HOVER_STATE;\r\n this._changeStyle(this.lastHoverMode, HOVER, this.isSelected() && this.lastSelectionMode !== NONE_MODE);\r\n eventTrigger(SERIES_HOVER_CHANGED, {\r\n target: this\r\n })\r\n },\r\n hoverPoint: function(point) {\r\n if (!point.isHovered()) {\r\n point.clearHover();\r\n setPointHoverState(point, this._legendCallback);\r\n this._canChangeView() && this._applyStyle(this._styles.hover);\r\n this._eventPipe({\r\n action: POINT_HOVER,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_HOVER_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n clearPointHover: function() {\r\n var that = this;\r\n that.getPoints().some((function(currentPoint) {\r\n if (currentPoint.isHovered()) {\r\n releasePointHoverState(currentPoint, that._legendCallback);\r\n that._canChangeView() && that._applyStyle(that._styles.normal);\r\n that._eventPipe({\r\n action: CLEAR_POINT_HOVER,\r\n target: currentPoint\r\n });\r\n that._eventTrigger(POINT_HOVER_CHANGED, {\r\n target: currentPoint\r\n });\r\n return true\r\n }\r\n return false\r\n }))\r\n },\r\n showPointTooltip: function(point) {\r\n triggerEvent(this._extGroups.seriesGroup, \"showpointtooltip\", point)\r\n },\r\n hidePointTooltip: function(point) {\r\n triggerEvent(this._extGroups.seriesGroup, \"hidepointtooltip\", point)\r\n },\r\n select: function() {\r\n if (!this.isSelected()) {\r\n this._setSelectedState(this._options.selectionMode);\r\n this._eventPipe({\r\n action: SERIES_SELECT,\r\n target: this\r\n });\r\n this._group.toForeground();\r\n this._eventTrigger(SERIES_SELECTION_CHANGED, {\r\n target: this\r\n })\r\n }\r\n },\r\n clearSelection: function() {\r\n if (this.isSelected()) {\r\n this._releaseSelectedState();\r\n this._eventTrigger(SERIES_SELECTION_CHANGED, {\r\n target: this\r\n })\r\n }\r\n },\r\n getPointsByArg: function(arg, skipPointsCreation) {\r\n var argValue = arg.valueOf();\r\n var points = this.pointsByArgument[argValue];\r\n if (!points && !skipPointsCreation && this._createAllAggregatedPoints()) {\r\n points = this.pointsByArgument[argValue]\r\n }\r\n return points || []\r\n },\r\n _createAllAggregatedPoints: function() {\r\n if (this.useAggregation() && !this._useAllAggregatedPoints) {\r\n this.createPoints(true);\r\n return true\r\n }\r\n return false\r\n },\r\n getPointsByKeys: function(arg) {\r\n return this.getPointsByArg(arg)\r\n },\r\n notify: function(data) {\r\n var that = this;\r\n var action = data.action;\r\n var seriesModes = that._seriesModes;\r\n var target = data.target;\r\n var targetOptions = target.getOptions();\r\n var pointHoverMode = _normalizeEnum(targetOptions.hoverMode);\r\n var selectionModeOfPoint = _normalizeEnum(targetOptions.selectionMode);\r\n if (action === POINT_HOVER) {\r\n that._hoverPointHandler(target, pointHoverMode, data.notifyLegend)\r\n } else if (action === CLEAR_POINT_HOVER) {\r\n that._clearPointHoverHandler(target, pointHoverMode, data.notifyLegend)\r\n } else if (action === SERIES_SELECT) {\r\n target !== that && \"single\" === seriesModes.seriesSelectionMode && that.clearSelection()\r\n } else if (action === POINT_SELECT) {\r\n if (\"single\" === seriesModes.pointSelectionMode) {\r\n that.getPoints().some((function(currentPoint) {\r\n if (currentPoint !== target && currentPoint.isSelected()) {\r\n that.deselectPoint(currentPoint);\r\n return true\r\n }\r\n return false\r\n }))\r\n }\r\n that._selectPointHandler(target, selectionModeOfPoint)\r\n } else if (action === POINT_DESELECT) {\r\n that._deselectPointHandler(target, selectionModeOfPoint)\r\n }\r\n },\r\n _selectPointHandler: function(target, mode) {\r\n if (mode === ALL_SERIES_POINTS) {\r\n target.series === this && this._setPointsView(SELECTION, target)\r\n } else if (mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint !== target && currentPoint.setView(SELECTION)\r\n }))\r\n }\r\n },\r\n _deselectPointHandler: function(target, mode) {\r\n if (mode === ALL_SERIES_POINTS) {\r\n target.series === this && this._resetPointsView(SELECTION, target)\r\n } else if (mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint !== target && currentPoint.resetView(SELECTION)\r\n }))\r\n }\r\n },\r\n _hoverPointHandler: function(target, mode, notifyLegend) {\r\n if (target.series !== this && mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint.setView(HOVER)\r\n }));\r\n notifyLegend && this._legendCallback(target)\r\n } else if (mode === ALL_SERIES_POINTS && target.series === this) {\r\n this._setPointsView(HOVER, target)\r\n }\r\n },\r\n _clearPointHoverHandler: function(target, mode, notifyLegend) {\r\n if (mode === ALL_ARGUMENT_POINTS) {\r\n target.series !== this && this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint.resetView(HOVER)\r\n }));\r\n notifyLegend && this._legendCallback(target)\r\n } else if (mode === ALL_SERIES_POINTS && target.series === this) {\r\n this._resetPointsView(HOVER, target)\r\n }\r\n },\r\n _deletePoints: function() {\r\n this._disposePoints(this._points);\r\n this._points = this._drawnPoints = null\r\n },\r\n _deleteTrackers: function() {\r\n _each(this._trackers || [], (function(_, tracker) {\r\n tracker.remove()\r\n }));\r\n this._trackersGroup && this._trackersGroup.dispose();\r\n this._trackers = this._trackersGroup = null\r\n },\r\n dispose: function() {\r\n this._deletePoints();\r\n this._group.dispose();\r\n this._labelsGroup && this._labelsGroup.dispose();\r\n this._errorBarGroup && this._errorBarGroup.dispose();\r\n this._deleteTrackers();\r\n this._group = this._extGroups = this._markersGroup = this._elementsGroup = this._bordersGroup = this._labelsGroup = this._errorBarGroup = this._graphics = this._rangeData = this._renderer = this._styles = this._options = this._pointOptions = this._drawnPoints = this.pointsByArgument = this._segments = this._prevSeries = null\r\n },\r\n correctPosition: _noop,\r\n drawTrackers: _noop,\r\n getNeighborPoint: _noop,\r\n areErrorBarsVisible: _noop,\r\n _getColorId: _noop,\r\n getMarginOptions: function() {\r\n return this._patchMarginOptions({\r\n percentStick: this.isFullStackedSeries()\r\n })\r\n },\r\n getColor: function() {\r\n return this.getLegendStyles().normal.fill\r\n },\r\n getOpacity: function() {\r\n return this._options.opacity\r\n },\r\n getStackName: function() {\r\n return this._stackName\r\n },\r\n getBarOverlapGroup: function() {\r\n return this._options.barOverlapGroup\r\n },\r\n getPointByCoord: function(x, y) {\r\n var point = this.getNeighborPoint(x, y);\r\n return null !== point && void 0 !== point && point.coordsIn(x, y) ? point : null\r\n },\r\n getValueAxis: function() {\r\n return this._valueAxis\r\n },\r\n getArgumentAxis: function() {\r\n return this._argumentAxis\r\n },\r\n getMarkersGroup() {\r\n return this._markersGroup\r\n },\r\n getRenderer() {\r\n return this._renderer\r\n },\r\n removePointElements() {\r\n if (this._markersGroup) {\r\n _each(this._points, (_, p) => p.deleteMarker());\r\n this._markersGroup.dispose();\r\n this._markersGroup = null\r\n }\r\n },\r\n removeGraphicElements() {\r\n var that = this;\r\n if (that._elementsGroup) {\r\n that._elementsGroup.dispose();\r\n that._elementsGroup = null\r\n }\r\n _each(that._graphics || [], (_, elem) => {\r\n that._removeElement(elem)\r\n });\r\n that._graphics = null\r\n },\r\n removeBordersGroup() {\r\n if (this._bordersGroup) {\r\n this._bordersGroup.dispose();\r\n this._bordersGroup = null\r\n }\r\n }\r\n};\r\nexport var mixins = seriesNS.mixins;\r\n","/**\r\n * DevExtreme (esm/viz/core/errors_warnings.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E2001: \"Invalid data source\",\r\n E2002: \"Axis type and data type are incompatible\",\r\n E2003: 'The \"{0}\" data source field contains data of unsupported type',\r\n E2004: 'The \"{0}\" data source field is inconsistent',\r\n E2005: 'The value field \"{0}\" is absent in the data source or all its values are negative',\r\n E2006: \"A cycle is detected in provided data\",\r\n E2007: 'The value field \"{0}\" is absent in the data source',\r\n E2008: 'The value field \"{0}\" must be a string',\r\n E2009: 'The value field \"{0}\" must be a positive numeric value',\r\n E2101: \"Unknown series type: {0}\",\r\n E2102: \"Ambiguity occurred between two value axes with the same name\",\r\n E2103: 'The \"{0}\" option is given an invalid value. Assign a function instead',\r\n E2104: \"Invalid logarithm base\",\r\n E2105: 'Invalid value of a \"{0}\"',\r\n E2202: \"Invalid {0} scale value\",\r\n E2203: \"The range you are trying to set is invalid\",\r\n W2002: \"The {0} series cannot be drawn because the {1} data field is missing\",\r\n W2003: \"Tick interval is too small\",\r\n W2101: 'The \"{0}\" pane does not exist; the last pane is used by default',\r\n W2102: 'A value axis with the \"{0}\" name was created automatically',\r\n W2103: \"The chart title was hidden due to the container size\",\r\n W2104: \"The legend was hidden due to the container size\",\r\n W2105: 'The title of the \"{0}\" axis was hidden due to the container size',\r\n W2106: 'The labels of the \"{0}\" axis were hidden due to the container size',\r\n W2107: \"The export menu was hidden due to the container size\",\r\n W2108: \"The browser does not support exporting images to {0} format.\",\r\n W2301: \"Invalid value range\"\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../../core/version\";\r\nimport {\r\n format as _stringFormat\r\n} from \"../../core/utils/string\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport _windowResizeCallbacks from \"../../core/utils/resize_callbacks\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport {\r\n normalizeEnum\r\n} from \"./utils\";\r\nvar ERROR_MESSAGES = warnings.ERROR_MESSAGES;\r\nexport function createEventTrigger(eventsMap, callbackGetter) {\r\n var triggers = {};\r\n each(eventsMap, (function(name, info) {\r\n if (info.name) {\r\n createEvent(name)\r\n }\r\n }));\r\n var changes;\r\n triggerEvent.change = function(name) {\r\n var eventInfo = eventsMap[name];\r\n if (eventInfo) {\r\n (changes = changes || {})[name] = eventInfo\r\n }\r\n return !!eventInfo\r\n };\r\n triggerEvent.applyChanges = function() {\r\n if (changes) {\r\n each(changes, (function(name, eventInfo) {\r\n createEvent(eventInfo.newName || name)\r\n }));\r\n changes = null\r\n }\r\n };\r\n triggerEvent.dispose = function() {\r\n eventsMap = callbackGetter = triggers = null\r\n };\r\n return triggerEvent;\r\n\r\n function createEvent(name) {\r\n var eventInfo = eventsMap[name];\r\n triggers[eventInfo.name] = callbackGetter(name, eventInfo.actionSettings)\r\n }\r\n\r\n function triggerEvent(name, arg, complete) {\r\n triggers[name](arg);\r\n complete && complete()\r\n }\r\n}\r\nexport var createIncidentOccurred = function(widgetName, eventTrigger) {\r\n return function(id, args) {\r\n eventTrigger(\"incidentOccurred\", {\r\n target: {\r\n id: id,\r\n type: \"E\" === id[0] ? \"error\" : \"warning\",\r\n args: args,\r\n text: _stringFormat.apply(null, [ERROR_MESSAGES[id]].concat(args || [])),\r\n widget: widgetName,\r\n version: version\r\n }\r\n })\r\n }\r\n};\r\n\r\nfunction getResizeManager(resizeCallback) {\r\n return (observe, unsubscribe) => {\r\n var {\r\n handler: handler,\r\n dispose: dispose\r\n } = createDeferredHandler(resizeCallback, unsubscribe);\r\n observe(handler);\r\n return dispose\r\n }\r\n}\r\n\r\nfunction createDeferredHandler(callback, unsubscribe) {\r\n var timeout;\r\n var handler = function() {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(callback, 100)\r\n };\r\n return {\r\n handler: handler,\r\n dispose() {\r\n clearTimeout(timeout);\r\n unsubscribe(handler)\r\n }\r\n }\r\n}\r\nexport function createResizeHandler(contentElement, redrawOnResize, resize) {\r\n var disposeHandler;\r\n var resizeManager = getResizeManager(resize);\r\n if (\"windowonly\" === normalizeEnum(redrawOnResize)) {\r\n disposeHandler = resizeManager(handler => _windowResizeCallbacks.add(handler), handler => _windowResizeCallbacks.remove(handler))\r\n } else if (true === redrawOnResize) {\r\n disposeHandler = resizeManager(handler => resizeObserverSingleton.observe(contentElement, handler), () => resizeObserverSingleton.unobserve(contentElement))\r\n }\r\n return disposeHandler\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/helpers.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction Flags() {\r\n this.reset()\r\n}\r\nFlags.prototype = {\r\n constructor: Flags,\r\n add: function(codes) {\r\n var i;\r\n var ii = codes.length;\r\n var flags = this._flags;\r\n for (i = 0; i < ii; ++i) {\r\n flags[codes[i]] = 1\r\n }\r\n },\r\n has: function(code) {\r\n return this._flags[code] > 0\r\n },\r\n count: function() {\r\n return Object.keys(this._flags).length\r\n },\r\n reset: function() {\r\n this._flags = {}\r\n }\r\n};\r\n\r\nfunction combineMaps(baseMap, thisMap) {\r\n return baseMap !== thisMap ? _extend({}, baseMap, thisMap) : _extend({}, baseMap)\r\n}\r\n\r\nfunction combineLists(baseList, thisList) {\r\n return baseList !== thisList ? baseList.concat(thisList) : baseList.slice()\r\n}\r\n\r\nfunction buildTotalChanges(proto) {\r\n proto._totalChangesOrder = proto._optionChangesOrder.concat(proto._layoutChangesOrder, proto._customChangesOrder)\r\n}\r\n\r\nfunction addChange(settings) {\r\n var proto = this.prototype;\r\n var code = settings.code;\r\n proto[\"_change_\" + code] = settings.handler;\r\n if (settings.isThemeDependent) {\r\n proto._themeDependentChanges.push(code)\r\n }\r\n if (settings.option) {\r\n proto._optionChangesMap[settings.option] = code\r\n }(settings.isOptionChange ? proto._optionChangesOrder : proto._customChangesOrder).push(code);\r\n buildTotalChanges(proto)\r\n}\r\n\r\nfunction createChainExecutor() {\r\n var executeChain = function executeChain() {\r\n var i;\r\n var ii = executeChain._chain.length;\r\n var result;\r\n for (i = 0; i < ii; ++i) {\r\n result = executeChain._chain[i].apply(this, arguments)\r\n }\r\n return result\r\n };\r\n executeChain._chain = [];\r\n executeChain.add = function(item) {\r\n executeChain._chain.push(item)\r\n };\r\n executeChain.copy = function(executor) {\r\n executeChain._chain = executor._chain.slice()\r\n };\r\n return executeChain\r\n}\r\nexport function expand(target, name, expander) {\r\n var current = target[name];\r\n if (!current) {\r\n current = expander\r\n } else if (!current.add) {\r\n current = createChainExecutor();\r\n current.add(target[name]);\r\n current.add(expander)\r\n } else {\r\n if (false === Object.prototype.hasOwnProperty.call(target, name)) {\r\n current = createChainExecutor();\r\n current.copy(target[name])\r\n }\r\n current.add(expander)\r\n }\r\n target[name] = current\r\n}\r\n\r\nfunction addPlugin(plugin) {\r\n var proto = this.prototype;\r\n proto._plugins.push(plugin);\r\n plugin.fontFields && proto._fontFields.push.apply(proto._fontFields, plugin.fontFields);\r\n if (plugin.members) {\r\n _extend(this.prototype, plugin.members)\r\n }\r\n if (plugin.customize) {\r\n plugin.customize(this)\r\n }\r\n if (plugin.extenders) {\r\n Object.keys(plugin.extenders).forEach((function(key) {\r\n var func = plugin.extenders[key];\r\n expand(proto, key, func)\r\n }), this)\r\n }\r\n}\r\nexport var replaceInherit = isServerSide ? function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var result = _inherit.apply(this, arguments);\r\n var proto = result.prototype;\r\n [\"_plugins\", \"_eventsMap\", \"_initialChanges\", \"_themeDependentChanges\", \"_optionChangesMap\", \"_optionChangesOrder\", \"_layoutChangesOrder\", \"_customChangesOrder\", \"_totalChangesOrder\"].forEach((function(key) {\r\n proto[key] = {}\r\n }));\r\n result.addPlugin = noop;\r\n return result\r\n };\r\n widget.addChange = noop;\r\n widget.addPlugin = noop\r\n} : function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var proto = this.prototype;\r\n var plugins = proto._plugins;\r\n var fontFields = proto._fontFields;\r\n var eventsMap = proto._eventsMap;\r\n var initialChanges = proto._initialChanges;\r\n var themeDependentChanges = proto._themeDependentChanges;\r\n var optionChangesMap = proto._optionChangesMap;\r\n var partialOptionChangesMap = proto._partialOptionChangesMap;\r\n var partialOptionChangesPath = proto._partialOptionChangesPath;\r\n var optionChangesOrder = proto._optionChangesOrder;\r\n var layoutChangesOrder = proto._layoutChangesOrder;\r\n var customChangesOrder = proto._customChangesOrder;\r\n var result = _inherit.apply(this, arguments);\r\n proto = result.prototype;\r\n proto._plugins = combineLists(plugins, proto._plugins);\r\n proto._fontFields = combineLists(fontFields, proto._fontFields);\r\n proto._eventsMap = combineMaps(eventsMap, proto._eventsMap);\r\n proto._initialChanges = combineLists(initialChanges, proto._initialChanges);\r\n proto._themeDependentChanges = combineLists(themeDependentChanges, proto._themeDependentChanges);\r\n proto._optionChangesMap = combineMaps(optionChangesMap, proto._optionChangesMap);\r\n proto._partialOptionChangesMap = combineMaps(partialOptionChangesMap, proto._partialOptionChangesMap);\r\n proto._partialOptionChangesPath = combineMaps(partialOptionChangesPath, proto._partialOptionChangesPath);\r\n proto._optionChangesOrder = combineLists(optionChangesOrder, proto._optionChangesOrder);\r\n proto._layoutChangesOrder = combineLists(layoutChangesOrder, proto._layoutChangesOrder);\r\n proto._customChangesOrder = combineLists(customChangesOrder, proto._customChangesOrder);\r\n buildTotalChanges(proto);\r\n result.addPlugin = addPlugin;\r\n return result\r\n };\r\n widget.prototype._plugins = [];\r\n widget.prototype._fontFields = [];\r\n widget.addChange = addChange;\r\n widget.addPlugin = addPlugin\r\n};\r\nexport function changes() {\r\n return new Flags\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nvar ALIGN_START = 0;\r\nvar ALIGN_MIDDLE = 1;\r\nvar ALIGN_END = 2;\r\nvar horizontalAlignmentMap = {\r\n left: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n right: ALIGN_END\r\n};\r\nvar verticalAlignmentMap = {\r\n top: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n bottom: ALIGN_END\r\n};\r\nvar sideMap = {\r\n horizontal: 0,\r\n vertical: 1\r\n};\r\nvar slicersMap = {};\r\nvar BBOX_CEIL_CORRECTION = 2;\r\nslicersMap[ALIGN_START] = function(a, b, size) {\r\n return [a, _min(b, a + size)]\r\n};\r\nslicersMap[ALIGN_MIDDLE] = function(a, b, size) {\r\n return [_max(a, (a + b - size) / 2), _min(b, (a + b + size) / 2)]\r\n};\r\nslicersMap[ALIGN_END] = function(a, b, size) {\r\n return [_max(a, b - size), b]\r\n};\r\n\r\nfunction pickValue(value, map, defaultValue) {\r\n var val = _normalizeEnum(value);\r\n return val in map ? map[val] : defaultValue\r\n}\r\n\r\nfunction normalizeLayoutOptions(options) {\r\n var side = pickValue(options.side, sideMap, 1);\r\n var alignment = [pickValue(options.horizontalAlignment, horizontalAlignmentMap, ALIGN_MIDDLE), pickValue(options.verticalAlignment, verticalAlignmentMap, ALIGN_START)];\r\n return {\r\n side: side,\r\n primary: bringToEdge(alignment[side]),\r\n secondary: alignment[1 - side],\r\n weak: options.weak,\r\n priority: options.priority || 0,\r\n header: options.header,\r\n position: options.position\r\n }\r\n}\r\n\r\nfunction bringToEdge(primary) {\r\n return primary < 2 ? 0 : 2\r\n}\r\n\r\nfunction getConjugateSide(side) {\r\n return 1 - side\r\n}\r\n\r\nfunction getSlice(alignment, a, b, size) {\r\n return slicersMap[alignment](a, b, size)\r\n}\r\n\r\nfunction getShrink(alignment, size) {\r\n return (alignment > 0 ? -1 : 1) * size\r\n}\r\n\r\nfunction processForward(item, rect, minSize) {\r\n var side = item.side;\r\n var size = item.element.measure([rect[2] - rect[0], rect[3] - rect[1]]);\r\n var minSide = \"indside\" === item.position ? 0 : minSize[side];\r\n var isValid = size[side] < rect[2 + side] - rect[side] - minSide;\r\n if (isValid) {\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + side] += getShrink(item.primary, size[side])\r\n }\r\n item.size = size\r\n }\r\n return isValid\r\n}\r\n\r\nfunction processRectBackward(item, rect, alignmentRect) {\r\n var primarySide = item.side;\r\n var secondarySide = getConjugateSide(primarySide);\r\n var itemRect = [];\r\n var secondary = getSlice(item.secondary, alignmentRect[secondarySide], alignmentRect[2 + secondarySide], item.size[secondarySide]);\r\n itemRect[primarySide] = _round(itemRect[2 + primarySide] = rect[item.primary + primarySide] + (\"inside\" === item.position ? getShrink(item.primary, item.size[primarySide]) : 0));\r\n itemRect[item.primary + primarySide] = _round(rect[item.primary + primarySide] - getShrink(item.primary, item.size[primarySide]));\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + primarySide] = itemRect[item.primary + primarySide]\r\n }\r\n itemRect[secondarySide] = _round(secondary[0]);\r\n itemRect[2 + secondarySide] = _round(secondary[1]);\r\n return itemRect\r\n}\r\n\r\nfunction processBackward(item, rect, alignmentRect, fitRect, size, targetRect) {\r\n var itemRect = processRectBackward(item, rect, alignmentRect);\r\n var itemFitRect = processRectBackward(item, fitRect, fitRect);\r\n if (size[item.side] > 0) {\r\n size[item.side] -= item.size[item.side];\r\n targetRect[item.primary + item.side] = itemRect[item.primary + item.side];\r\n item.element.freeSpace()\r\n } else {\r\n item.element.move(itemRect, itemFitRect)\r\n }\r\n}\r\n\r\nfunction Layout() {\r\n this._targets = []\r\n}\r\nLayout.prototype = {\r\n constructor: Layout,\r\n dispose: function() {\r\n this._targets = null\r\n },\r\n add: function(target) {\r\n this._targets.push(target)\r\n },\r\n forward: function(targetRect, minSize) {\r\n var rect = targetRect.slice();\r\n var targets = createTargets(this._targets);\r\n var i;\r\n var ii = targets.length;\r\n var cache = [];\r\n for (i = 0; i < ii; ++i) {\r\n if (processForward(targets[i], rect, minSize)) {\r\n cache.push(targets[i])\r\n } else {\r\n targets[i].element.freeSpace()\r\n }\r\n }\r\n this._cache = cache.reverse();\r\n return rect\r\n },\r\n backward: function(targetRect, alignmentRect) {\r\n var size = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [0, 0];\r\n var backwardRect = targetRect.slice();\r\n var fitRect = targetRect.slice();\r\n var targets = this._cache;\r\n var targetSide = 0;\r\n var target;\r\n var i;\r\n var ii = targets.length;\r\n for (i = 0; i < ii; ++i) {\r\n target = targets[i];\r\n if (target.side !== targetSide) {\r\n backwardRect = targetRect.slice()\r\n }\r\n processBackward(target, backwardRect, alignmentRect, fitRect, size, targetRect);\r\n targetSide = target.side\r\n }\r\n return size\r\n }\r\n};\r\n\r\nfunction createTargets(targets) {\r\n var i;\r\n var ii = targets.length;\r\n var collection = [];\r\n var layout;\r\n for (i = 0; i < ii; ++i) {\r\n layout = targets[i].layoutOptions();\r\n if (layout) {\r\n layout = normalizeLayoutOptions(layout);\r\n layout.element = targets[i];\r\n collection.push(layout)\r\n }\r\n }\r\n collection.sort((function(a, b) {\r\n return b.side - a.side || a.priority - b.priority\r\n }));\r\n collection = processWeakItems(collection);\r\n return collection\r\n}\r\n\r\nfunction processWeakItems(collection) {\r\n var weakItem = collection.filter((function(item) {\r\n return true === item.weak\r\n }))[0];\r\n var headerItem;\r\n if (weakItem) {\r\n headerItem = collection.filter((function(item) {\r\n return weakItem.primary === item.primary && item.side === weakItem.side && item !== weakItem\r\n }))[0]\r\n }\r\n if (weakItem && headerItem) {\r\n return [makeHeader(headerItem, weakItem)].concat(collection.filter((function(item) {\r\n return !(item === headerItem || item === weakItem)\r\n })))\r\n }\r\n return collection\r\n}\r\n\r\nfunction processBackwardHeaderRect(element, rect) {\r\n var rectCopy = rect.slice();\r\n var itemRect = processRectBackward(element, rectCopy, rectCopy);\r\n itemRect[element.side] = rect[element.side];\r\n itemRect[2 + element.side] = rect[2 + element.side];\r\n return itemRect\r\n}\r\n\r\nfunction makeHeader(header, weakElement) {\r\n var side = header.side;\r\n var primary = header.primary;\r\n var secondary = header.secondary;\r\n return {\r\n side: side,\r\n primary: primary,\r\n secondary: secondary,\r\n priority: 0,\r\n element: {\r\n measure: function(targetSize) {\r\n var result = targetSize.slice();\r\n var weakSize = weakElement.element.measure(targetSize.slice());\r\n targetSize[primary] -= weakSize[primary];\r\n var headerSize = header.element.measure(targetSize.slice());\r\n result[side] = weakSize[side] = headerSize[side] = Math.max(headerSize[side], weakSize[side]);\r\n weakElement.size = weakSize;\r\n header.size = headerSize;\r\n return result\r\n },\r\n move: function(rect, fitRect) {\r\n if (fitRect[2] - fitRect[0] < header.size[0] + weakElement.size[0] - BBOX_CEIL_CORRECTION) {\r\n this.freeSpace();\r\n return\r\n }\r\n var weakRect = processBackwardHeaderRect(weakElement, fitRect);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, fitRect);\r\n if (fitRect[2 + weakElement.primary] < rect[2 + weakElement.primary] && header.size[header.primary] > rect[2 + header.primary] - rect[header.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary]\r\n }\r\n var headerRect = processBackwardHeaderRect(header, rect);\r\n if (headerRect[2 + weakElement.primary] > fitRect[2 + weakElement.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary];\r\n headerRect = processBackwardHeaderRect(header, rect)\r\n }\r\n weakElement.element.move(weakRect);\r\n header.element.move(headerRect, headerFitReact)\r\n },\r\n freeSpace: function() {\r\n header.element.freeSpace();\r\n weakElement.element.freeSpace()\r\n }\r\n }\r\n }\r\n}\r\nexport default Layout;\r\n","/**\r\n * DevExtreme (esm/viz/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n refreshPaths\r\n} from \"./core/renderers/renderer\";\r\nimport {\r\n each as _each\r\n} from \"../core/utils/iterator\";\r\nvar {\r\n floor: floor\r\n} = Math;\r\nexport var prepareSegmentRectPoints = function(left, top, width, height, borderOptions) {\r\n var maxSW = ~~((width < height ? width : height) / 2);\r\n var sw = borderOptions.width || 0;\r\n var newSW = sw < maxSW ? sw : maxSW;\r\n left += newSW / 2;\r\n top += newSW / 2;\r\n width -= newSW;\r\n height -= newSW;\r\n var right = left + width;\r\n var bottom = top + height;\r\n var points = [];\r\n var segments = [];\r\n var segmentSequence;\r\n var visiblyOpt = 0;\r\n var prevSegmentVisibility = 0;\r\n var allSegment = {\r\n top: [\r\n [left, top],\r\n [right, top]\r\n ],\r\n right: [\r\n [right, top],\r\n [right, bottom]\r\n ],\r\n bottom: [\r\n [right, bottom],\r\n [left, bottom]\r\n ],\r\n left: [\r\n [left, bottom],\r\n [left, top]\r\n ]\r\n };\r\n _each(allSegment, (function(seg) {\r\n var visibility = !!borderOptions[seg];\r\n visiblyOpt = 2 * visiblyOpt + ~~visibility\r\n }));\r\n switch (visiblyOpt) {\r\n case 13:\r\n case 9:\r\n segmentSequence = [\"left\", \"top\", \"right\", \"bottom\"];\r\n break;\r\n case 11:\r\n segmentSequence = [\"bottom\", \"left\", \"top\", \"right\"];\r\n break;\r\n default:\r\n segmentSequence = [\"top\", \"right\", \"bottom\", \"left\"]\r\n }\r\n _each(segmentSequence, (function(_, seg) {\r\n var segmentVisibility = !!borderOptions[seg];\r\n if (!prevSegmentVisibility && segments.length) {\r\n points.push(segments);\r\n segments = []\r\n }\r\n if (segmentVisibility) {\r\n _each(allSegment[seg].slice(prevSegmentVisibility), (function(_, segment) {\r\n segments = segments.concat(segment)\r\n }))\r\n }\r\n prevSegmentVisibility = ~~segmentVisibility\r\n }));\r\n segments.length && points.push(segments);\r\n 1 === points.length && (points = points[0]);\r\n return {\r\n points: points,\r\n pathType: 15 === visiblyOpt ? \"area\" : \"line\"\r\n }\r\n};\r\nexport {\r\n refreshPaths\r\n};\r\nexport var areCanvasesDifferent = function(canvas1, canvas2) {\r\n var sizeLessThreshold = [\"width\", \"height\"].every(key => Math.abs(canvas1[key] - canvas2[key]) < 1);\r\n var canvasCoordsIsEqual = [\"left\", \"right\", \"top\", \"bottom\"].every(key => canvas1[key] === canvas2[key]);\r\n return !(sizeLessThreshold && canvasCoordsIsEqual)\r\n};\r\nexport var floorCanvasDimensions = function(canvas) {\r\n return _extends({}, canvas, {\r\n height: floor(canvas.height),\r\n width: floor(canvas.width)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/common/m_charts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getNextDefsSvgId\r\n} from \"../../viz/core/utils\";\r\nvar graphicObjects = {};\r\nexport var registerPattern = options => {\r\n var id = getNextDefsSvgId();\r\n graphicObjects[id] = _extends({\r\n type: \"pattern\"\r\n }, options);\r\n return id\r\n};\r\nexport var registerGradient = (type, options) => {\r\n var id = getNextDefsSvgId();\r\n graphicObjects[id] = _extends({\r\n type: type\r\n }, options);\r\n return id\r\n};\r\nvar getGraphicObjects = () => graphicObjects;\r\nexport default {\r\n getGraphicObjects: getGraphicObjects\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/viz/core/m_base_widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject as _isObject,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../../../viz/core/base_theme_manager\";\r\nimport {\r\n createEventTrigger,\r\n createIncidentOccurred,\r\n createResizeHandler\r\n} from \"../../../viz/core/base_widget.utils\";\r\nimport warnings from \"../../../viz/core/errors_warnings\";\r\nimport {\r\n changes,\r\n replaceInherit\r\n} from \"../../../viz/core/helpers\";\r\nimport _Layout from \"../../../viz/core/layout\";\r\nimport {\r\n Renderer\r\n} from \"../../../viz/core/renderers/renderer\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"../../../viz/core/utils\";\r\nimport {\r\n areCanvasesDifferent,\r\n floorCanvasDimensions\r\n} from \"../../../viz/utils\";\r\nimport graphicObject from \"../../common/m_charts\";\r\nvar {\r\n log: log\r\n} = warnings;\r\nvar OPTION_RTL_ENABLED = \"rtlEnabled\";\r\nvar SIZED_ELEMENT_CLASS = \"dx-sized-element\";\r\nvar baseOptionMethod = DOMComponent.prototype.option;\r\n\r\nfunction getTrue() {\r\n return true\r\n}\r\n\r\nfunction getFalse() {\r\n return false\r\n}\r\n\r\nfunction defaultOnIncidentOccurred(e) {\r\n if (!e.component._eventsStrategy.hasEvent(\"incidentOccurred\")) {\r\n log.apply(null, [e.target.id].concat(e.target.args || []))\r\n }\r\n}\r\n\r\nfunction pickPositiveValue(values) {\r\n return values.reduce((result, value) => value > 0 && !result ? value : result, 0)\r\n}\r\nvar getEmptyComponent = function() {\r\n var emptyComponentConfig = {\r\n _initTemplates() {},\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n var sizedElement = domAdapter.createElement(\"div\");\r\n var width = options && isNumeric(options.width) ? \"\".concat(options.width, \"px\") : \"100%\";\r\n var height = options && isNumeric(options.height) ? \"\".concat(options.height, \"px\") : \"\".concat(this._getDefaultSize().height, \"px\");\r\n domAdapter.setStyle(sizedElement, \"width\", width);\r\n domAdapter.setStyle(sizedElement, \"height\", height);\r\n domAdapter.setClass(sizedElement, SIZED_ELEMENT_CLASS, false);\r\n domAdapter.insertElement(element, sizedElement)\r\n }\r\n };\r\n var EmptyComponent = DOMComponent.inherit(emptyComponentConfig);\r\n var originalInherit = EmptyComponent.inherit;\r\n EmptyComponent.inherit = function(config) {\r\n Object.keys(config).forEach(field => {\r\n if (isFunction(config[field]) && \"_\" !== field.substr(0, 1) && \"option\" !== field || \"_dispose\" === field || \"_optionChanged\" === field) {\r\n config[field] = noop\r\n }\r\n });\r\n return originalInherit.call(this, config)\r\n };\r\n return EmptyComponent\r\n};\r\n\r\nfunction callForEach(functions) {\r\n functions.forEach(c => c())\r\n}\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction sizeIsValid(value) {\r\n return isDefined(value) && value > 0\r\n}\r\nvar baseWidget = isServerSide ? getEmptyComponent() : DOMComponent.inherit({\r\n _eventsMap: {\r\n onIncidentOccurred: {\r\n name: \"incidentOccurred\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onDrawn: {\r\n name: \"drawn\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n }\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onIncidentOccurred: defaultOnIncidentOccurred\r\n })\r\n },\r\n _useLinks: true,\r\n _init() {\r\n this._$element.children(\".\".concat(SIZED_ELEMENT_CLASS)).remove();\r\n this._graphicObjects = {};\r\n this.callBase(...arguments);\r\n this._changesLocker = 0;\r\n this._optionChangedLocker = 0;\r\n this._asyncFirstDrawing = true;\r\n this._changes = changes();\r\n this._suspendChanges();\r\n this._themeManager = this._createThemeManager();\r\n this._themeManager.setCallback(() => {\r\n this._requestChange(this._themeDependentChanges)\r\n });\r\n this._renderElementAttributes();\r\n this._initRenderer();\r\n var useLinks = this._useLinks;\r\n if (useLinks) {\r\n this._renderer.root.enableLinks().virtualLink(\"core\").virtualLink(\"peripheral\")\r\n }\r\n this._renderVisibilityChange();\r\n this._attachVisibilityChangeHandlers();\r\n this._toggleParentsScrollSubscription(this._isVisible());\r\n this._initEventTrigger();\r\n this._incidentOccurred = createIncidentOccurred(this.NAME, this._eventTrigger);\r\n this._layout = new _Layout;\r\n if (useLinks) {\r\n this._renderer.root.linkAfter(\"core\")\r\n }\r\n this._initPlugins();\r\n this._initCore();\r\n if (useLinks) {\r\n this._renderer.root.linkAfter()\r\n }\r\n this._change(this._initialChanges)\r\n },\r\n _createThemeManager() {\r\n return new BaseThemeManager(this._getThemeManagerOptions())\r\n },\r\n _getThemeManagerOptions() {\r\n return {\r\n themeSection: this._themeSection,\r\n fontFields: this._fontFields\r\n }\r\n },\r\n _initialChanges: [\"LAYOUT\", \"RESIZE_HANDLER\", \"THEME\", \"DISABLED\"],\r\n _initPlugins() {\r\n each(this._plugins, (_, plugin) => {\r\n plugin.init.call(this)\r\n })\r\n },\r\n _disposePlugins() {\r\n each(this._plugins.slice().reverse(), (_, plugin) => {\r\n plugin.dispose.call(this)\r\n })\r\n },\r\n _change(codes) {\r\n this._changes.add(codes)\r\n },\r\n _suspendChanges() {\r\n this._changesLocker += 1\r\n },\r\n _resumeChanges() {\r\n if (0 === --this._changesLocker && this._changes.count() > 0 && !this._applyingChanges) {\r\n this._renderer.lock();\r\n this._applyingChanges = true;\r\n this._applyChanges();\r\n this._changes.reset();\r\n this._applyingChanges = false;\r\n this._changesApplied();\r\n this._renderer.unlock();\r\n if (this._optionsQueue) {\r\n this._applyQueuedOptions()\r\n }\r\n this.resolveItemsDeferred(this._legend ? [this._legend] : []);\r\n this._optionChangedLocker += 1;\r\n this._notify();\r\n this._optionChangedLocker -= 1\r\n }\r\n },\r\n resolveItemsDeferred(items) {\r\n this._resolveDeferred(this._getTemplatesItems(items))\r\n },\r\n _collectTemplatesFromItems: items => items.reduce((prev, i) => ({\r\n items: prev.items.concat(i.getTemplatesDef()),\r\n groups: prev.groups.concat(i.getTemplatesGroups())\r\n }), {\r\n items: [],\r\n groups: []\r\n }),\r\n _getTemplatesItems(items) {\r\n var elements = this._collectTemplatesFromItems(items);\r\n var extraItems = this._getExtraTemplatesItems();\r\n return {\r\n items: extraItems.items.concat(elements.items),\r\n groups: extraItems.groups.concat(elements.groups),\r\n launchRequest: [extraItems.launchRequest],\r\n doneRequest: [extraItems.doneRequest]\r\n }\r\n },\r\n _getExtraTemplatesItems: () => ({\r\n items: [],\r\n groups: [],\r\n launchRequest: () => {},\r\n doneRequest: () => {}\r\n }),\r\n _resolveDeferred(_ref) {\r\n var {\r\n items: items,\r\n launchRequest: launchRequest,\r\n doneRequest: doneRequest,\r\n groups: groups\r\n } = _ref;\r\n this._setGroupsVisibility(groups, \"hidden\");\r\n if (this._changesApplying) {\r\n this._changesApplying = false;\r\n callForEach(doneRequest);\r\n return\r\n }\r\n var syncRendering = true;\r\n when.apply(this, items).done(() => {\r\n if (syncRendering) {\r\n this._setGroupsVisibility(groups, \"visible\");\r\n return\r\n }\r\n callForEach(launchRequest);\r\n this._changesApplying = true;\r\n var changes = [\"LAYOUT\", \"FULL_RENDER\"];\r\n if (this._asyncFirstDrawing) {\r\n changes.push(\"FORCE_FIRST_DRAWING\");\r\n this._asyncFirstDrawing = false\r\n } else {\r\n changes.push(\"FORCE_DRAWING\")\r\n }\r\n this._requestChange(changes);\r\n this._setGroupsVisibility(groups, \"visible\")\r\n });\r\n syncRendering = false\r\n },\r\n _setGroupsVisibility(groups, visibility) {\r\n groups.forEach(g => g.attr({\r\n visibility: visibility\r\n }))\r\n },\r\n _applyQueuedOptions() {\r\n var queue = this._optionsQueue;\r\n this._optionsQueue = null;\r\n this.beginUpdate();\r\n each(queue, (_, action) => {\r\n action()\r\n });\r\n this.endUpdate()\r\n },\r\n _requestChange(codes) {\r\n this._suspendChanges();\r\n this._change(codes);\r\n this._resumeChanges()\r\n },\r\n _applyChanges() {\r\n var changes = this._changes;\r\n var order = this._totalChangesOrder;\r\n var changesOrderLength = order.length;\r\n for (var i = 0; i < changesOrderLength; i += 1) {\r\n if (changes.has(order[i])) {\r\n this[\"_change_\".concat(order[i])]()\r\n }\r\n }\r\n },\r\n _optionChangesOrder: [\"EVENTS\", \"THEME\", \"RENDERER\", \"RESIZE_HANDLER\"],\r\n _layoutChangesOrder: [\"ELEMENT_ATTR\", \"CONTAINER_SIZE\", \"LAYOUT\"],\r\n _customChangesOrder: [\"DISABLED\"],\r\n _change_EVENTS() {\r\n this._eventTrigger.applyChanges()\r\n },\r\n _change_THEME() {\r\n this._setThemeAndRtl()\r\n },\r\n _change_RENDERER() {\r\n this._setRendererOptions()\r\n },\r\n _change_RESIZE_HANDLER() {\r\n this._setupResizeHandler()\r\n },\r\n _change_ELEMENT_ATTR() {\r\n this._renderElementAttributes();\r\n this._change([\"CONTAINER_SIZE\"])\r\n },\r\n _change_CONTAINER_SIZE() {\r\n this._updateSize()\r\n },\r\n _change_LAYOUT() {\r\n this._setContentSize()\r\n },\r\n _change_DISABLED() {\r\n var renderer = this._renderer;\r\n var {\r\n root: root\r\n } = renderer;\r\n if (this.option(\"disabled\")) {\r\n this._initDisabledState = root.attr(\"pointer-events\");\r\n root.attr({\r\n \"pointer-events\": \"none\",\r\n filter: renderer.getGrayScaleFilter().id\r\n })\r\n } else if (\"none\" === root.attr(\"pointer-events\")) {\r\n root.attr({\r\n \"pointer-events\": isDefined(this._initDisabledState) ? this._initDisabledState : null,\r\n filter: null\r\n })\r\n }\r\n },\r\n _themeDependentChanges: [\"RENDERER\"],\r\n _initRenderer() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._renderer = new Renderer({\r\n cssClass: \"\".concat(this._rootClassPrefix, \" \").concat(this._rootClass),\r\n pathModified: this.option(\"pathModified\"),\r\n container: this._$element[0]\r\n });\r\n this._renderer.resize(this._canvas.width, this._canvas.height)\r\n },\r\n _disposeRenderer() {\r\n this._renderer.dispose()\r\n },\r\n _disposeGraphicObjects() {\r\n Object.keys(this._graphicObjects).forEach(id => {\r\n this._graphicObjects[id].dispose()\r\n });\r\n this._graphicObjects = null\r\n },\r\n _getAnimationOptions: noop,\r\n render() {\r\n this._requestChange([\"CONTAINER_SIZE\"]);\r\n var visible = this._isVisible();\r\n this._toggleParentsScrollSubscription(visible);\r\n !visible && this._stopCurrentHandling()\r\n },\r\n _toggleParentsScrollSubscription(subscribe) {\r\n var $parents = $(this._renderer.root.element).parents();\r\n if (\"generic\" === devices.real().platform) {\r\n $parents = $parents.add(getWindow())\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || function() {\r\n this._stopCurrentHandling()\r\n }.bind(this);\r\n eventsEngine.off($(\"\").add(this._$prevRootParents), \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n if (subscribe) {\r\n eventsEngine.on($parents, \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n this._$prevRootParents = $parents\r\n }\r\n },\r\n _stopCurrentHandling: noop,\r\n _dispose() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this.callBase(...arguments);\r\n this._toggleParentsScrollSubscription(false);\r\n this._removeResizeHandler();\r\n this._layout.dispose();\r\n this._eventTrigger.dispose();\r\n this._disposeCore();\r\n this._disposePlugins();\r\n this._disposeGraphicObjects();\r\n this._disposeRenderer();\r\n this._themeManager.dispose();\r\n this._themeManager = null;\r\n this._renderer = null;\r\n this._eventTrigger = null\r\n },\r\n _initEventTrigger() {\r\n this._eventTrigger = createEventTrigger(this._eventsMap, (name, actionSettings) => this._createActionByOption(name, actionSettings))\r\n },\r\n _calculateRawCanvas() {\r\n var size = this.option(\"size\") || {};\r\n var margin = this.option(\"margin\") || {};\r\n var defaultCanvas = this._getDefaultSize() || {};\r\n var getSizeOfSide = (size, side, getter) => {\r\n if (sizeIsValid(size[side]) || !hasWindow()) {\r\n return 0\r\n }\r\n var elementSize = getter(this._$element);\r\n return elementSize <= 1 ? 0 : elementSize\r\n };\r\n var elementWidth = getSizeOfSide(size, \"width\", x => getWidth(x));\r\n var elementHeight = getSizeOfSide(size, \"height\", x => getHeight(x));\r\n var canvas = {\r\n width: size.width <= 0 ? 0 : pickPositiveValue([size.width, elementWidth, defaultCanvas.width]),\r\n height: size.height <= 0 ? 0 : pickPositiveValue([size.height, elementHeight, defaultCanvas.height]),\r\n left: pickPositiveValue([margin.left, defaultCanvas.left]),\r\n top: pickPositiveValue([margin.top, defaultCanvas.top]),\r\n right: pickPositiveValue([margin.right, defaultCanvas.right]),\r\n bottom: pickPositiveValue([margin.bottom, defaultCanvas.bottom])\r\n };\r\n if (canvas.width - canvas.left - canvas.right <= 0 || canvas.height - canvas.top - canvas.bottom <= 0) {\r\n canvas = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return canvas\r\n },\r\n _updateSize() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n if (areCanvasesDifferent(this._canvas, rawCanvas) || this.__forceRender) {\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._recreateSizeDependentObjects(true);\r\n this._renderer.resize(this._canvas.width, this._canvas.height);\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n _recreateSizeDependentObjects: noop,\r\n _getMinSize: () => [0, 0],\r\n _getAlignmentRect: noop,\r\n _setContentSize() {\r\n var canvas = this._canvas;\r\n var layout = this._layout;\r\n var rect = canvas.width > 0 && canvas.height > 0 ? [canvas.left, canvas.top, canvas.width - canvas.right, canvas.height - canvas.bottom] : [0, 0, 0, 0];\r\n rect = layout.forward(rect, this._getMinSize());\r\n var nextRect = this._applySize(rect) || rect;\r\n layout.backward(nextRect, this._getAlignmentRect() || nextRect)\r\n },\r\n _getOption(name, isScalar) {\r\n var theme = this._themeManager.theme(name);\r\n var option = this.option(name);\r\n return isScalar ? void 0 !== option ? option : theme : extend(true, {}, theme, option)\r\n },\r\n _setupResizeHandler() {\r\n var redrawOnResize = _parseScalar(this._getOption(\"redrawOnResize\", true), true);\r\n if (this._disposeResizeHandler) {\r\n this._removeResizeHandler()\r\n }\r\n this._disposeResizeHandler = createResizeHandler(this._$element[0], redrawOnResize, () => this._requestChange([\"CONTAINER_SIZE\"]))\r\n },\r\n _removeResizeHandler() {\r\n if (this._disposeResizeHandler) {\r\n this._disposeResizeHandler();\r\n this._disposeResizeHandler = null\r\n }\r\n },\r\n _onBeginUpdate: noop,\r\n beginUpdate() {\r\n if (this._initialized && this._isUpdateAllowed()) {\r\n this._onBeginUpdate();\r\n this._suspendChanges()\r\n }\r\n this.callBase(...arguments);\r\n return this\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n this._isUpdateAllowed() && this._resumeChanges();\r\n return this\r\n },\r\n option(name) {\r\n if (this._initialized && this._applyingChanges && (arguments.length > 1 || _isObject(name))) {\r\n this._optionsQueue = this._optionsQueue || [];\r\n this._optionsQueue.push(this._getActionForUpdating(arguments))\r\n } else {\r\n return baseOptionMethod.apply(this, arguments)\r\n }\r\n },\r\n _getActionForUpdating(args) {\r\n return () => {\r\n baseOptionMethod.apply(this, args)\r\n }\r\n },\r\n _clean: noop,\r\n _render: noop,\r\n _optionChanged(arg) {\r\n if (this._optionChangedLocker) {\r\n return\r\n }\r\n var partialChanges = this.getPartialChangeOptionsName(arg);\r\n var changes = [];\r\n if (partialChanges.length > 0) {\r\n partialChanges.forEach(pc => changes.push(this._partialOptionChangesMap[pc]))\r\n } else {\r\n changes.push(this._optionChangesMap[arg.name])\r\n }\r\n changes = changes.filter(c => !!c);\r\n if (this._eventTrigger.change(arg.name)) {\r\n this._change([\"EVENTS\"])\r\n } else if (changes.length > 0) {\r\n this._change(changes)\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _notify: noop,\r\n _changesApplied: noop,\r\n _optionChangesMap: {\r\n size: \"CONTAINER_SIZE\",\r\n margin: \"CONTAINER_SIZE\",\r\n redrawOnResize: \"RESIZE_HANDLER\",\r\n theme: \"THEME\",\r\n rtlEnabled: \"THEME\",\r\n encodeHtml: \"THEME\",\r\n elementAttr: \"ELEMENT_ATTR\",\r\n disabled: \"DISABLED\"\r\n },\r\n _partialOptionChangesMap: {},\r\n _partialOptionChangesPath: {},\r\n getPartialChangeOptionsName(changedOption) {\r\n var {\r\n fullName: fullName\r\n } = changedOption;\r\n var sections = fullName.split(/[.]/);\r\n var {\r\n name: name\r\n } = changedOption;\r\n var {\r\n value: value\r\n } = changedOption;\r\n var options = this._partialOptionChangesPath[name];\r\n var partialChangeOptionsName = [];\r\n if (options) {\r\n if (true === options) {\r\n partialChangeOptionsName.push(name)\r\n } else {\r\n options.forEach(op => {\r\n fullName.indexOf(op) >= 0 && partialChangeOptionsName.push(op)\r\n });\r\n if (1 === sections.length) {\r\n if (\"object\" === type(value)) {\r\n this._addOptionsNameForPartialUpdate(value, options, partialChangeOptionsName)\r\n } else if (\"array\" === type(value)) {\r\n if (value.length > 0 && value.every(item => this._checkOptionsForPartialUpdate(item, options))) {\r\n value.forEach(item => {\r\n this._addOptionsNameForPartialUpdate(item, options, partialChangeOptionsName)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return partialChangeOptionsName.filter((value, index, self) => self.indexOf(value) === index)\r\n },\r\n _checkOptionsForPartialUpdate: (optionObject, options) => !Object.keys(optionObject).some(key => -1 === options.indexOf(key)),\r\n _addOptionsNameForPartialUpdate(optionObject, options, partialChangeOptionsName) {\r\n var optionKeys = Object.keys(optionObject);\r\n if (this._checkOptionsForPartialUpdate(optionObject, options)) {\r\n optionKeys.forEach(key => options.indexOf(key) > -1 && partialChangeOptionsName.push(key))\r\n }\r\n },\r\n _visibilityChanged() {\r\n this.render()\r\n },\r\n _setThemeAndRtl() {\r\n this._themeManager.setTheme(this.option(\"theme\"), this.option(OPTION_RTL_ENABLED))\r\n },\r\n _getRendererOptions() {\r\n return {\r\n rtl: this.option(OPTION_RTL_ENABLED),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n animation: this._getAnimationOptions()\r\n }\r\n },\r\n _setRendererOptions() {\r\n this._renderer.setOptions(this._getRendererOptions())\r\n },\r\n svg() {\r\n return this._renderer.svg()\r\n },\r\n getSize() {\r\n var canvas = this._canvas || {};\r\n return {\r\n width: canvas.width,\r\n height: canvas.height\r\n }\r\n },\r\n isReady: getFalse,\r\n _dataIsReady: getTrue,\r\n _resetIsReady() {\r\n this.isReady = getFalse\r\n },\r\n _renderGraphicObjects() {\r\n var renderer = this._renderer;\r\n var graphics = graphicObject.getGraphicObjects();\r\n Object.keys(graphics).forEach(id => {\r\n if (!this._graphicObjects[id]) {\r\n var {\r\n type: _type,\r\n colors: colors,\r\n rotationAngle: rotationAngle,\r\n template: template,\r\n width: width,\r\n height: height\r\n } = graphics[id];\r\n switch (_type) {\r\n case \"linear\":\r\n this._graphicObjects[id] = renderer.linearGradient(colors, id, rotationAngle);\r\n break;\r\n case \"radial\":\r\n this._graphicObjects[id] = renderer.radialGradient(colors, id);\r\n break;\r\n case \"pattern\":\r\n this._graphicObjects[id] = renderer.customPattern(id, this._getTemplate(template), width, height)\r\n }\r\n }\r\n })\r\n },\r\n _drawn() {\r\n this.isReady = getFalse;\r\n if (this._dataIsReady()) {\r\n this._renderer.onEndAnimation(() => {\r\n this.isReady = getTrue\r\n })\r\n }\r\n this._eventTrigger(\"drawn\", {})\r\n }\r\n});\r\nexport default baseWidget;\r\nreplaceInherit(baseWidget);\r\n","/**\r\n * DevExtreme (esm/__internal/viz/chart_components/rolling_stock.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class RollingStock {\r\n constructor(label, isRotated, shiftFunction) {\r\n var bBox = label.getBoundingRect();\r\n var {\r\n x: x\r\n } = bBox;\r\n var {\r\n y: y\r\n } = bBox;\r\n var endX = bBox.x + bBox.width;\r\n var endY = bBox.y + bBox.height;\r\n this.labels = [label];\r\n this.shiftFunction = shiftFunction;\r\n this.bBox = {\r\n start: isRotated ? x : y,\r\n width: isRotated ? bBox.width : bBox.height,\r\n end: isRotated ? endX : endY,\r\n oppositeStart: isRotated ? y : x,\r\n oppositeEnd: isRotated ? endY : endX\r\n };\r\n this.initialPosition = isRotated ? bBox.x : bBox.y\r\n }\r\n toChain(nextRollingStock) {\r\n var nextRollingStockBBox = nextRollingStock.getBoundingRect();\r\n nextRollingStock.shift(nextRollingStockBBox.start - this.bBox.end);\r\n this.changeBoxWidth(nextRollingStockBBox.width);\r\n this.labels = this.labels.concat(nextRollingStock.labels)\r\n }\r\n getBoundingRect() {\r\n return this.bBox\r\n }\r\n shift(shiftLength) {\r\n this.labels.forEach(label => {\r\n var bBox = label.getBoundingRect();\r\n var coords = this.shiftFunction(bBox, shiftLength);\r\n if (!label.hideInsideLabel(coords)) {\r\n label.shift(coords.x, coords.y)\r\n }\r\n });\r\n this.bBox.end -= shiftLength;\r\n this.bBox.start -= shiftLength\r\n }\r\n setRollingStockInCanvas(canvas) {\r\n if (this.bBox.end > canvas.end) {\r\n this.shift(this.bBox.end - canvas.end)\r\n }\r\n }\r\n getLabels() {\r\n return this.labels\r\n }\r\n value() {\r\n return this.labels[0].getData().value\r\n }\r\n getInitialPosition() {\r\n return this.initialPosition\r\n }\r\n changeBoxWidth(width) {\r\n this.bBox.end += width;\r\n this.bBox.width += width\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/viz/chart_components/m_base_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n reverseEach as _reverseEach\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined as _isDefined,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n isPointerEvent,\r\n isTouchEvent\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n LayoutManager\r\n} from \"../../../viz/chart_components/layout_manager\";\r\nimport * as trackerModule from \"../../../viz/chart_components/tracker\";\r\nimport {\r\n ThemeManager\r\n} from \"../../../viz/components/chart_theme_manager\";\r\nimport {\r\n validateData\r\n} from \"../../../viz/components/data_validator\";\r\nimport {\r\n Legend\r\n} from \"../../../viz/components/legend\";\r\nimport {\r\n plugin as dataSourcePlugin\r\n} from \"../../../viz/core/data_source\";\r\nimport {\r\n plugin as exportPlugin\r\n} from \"../../../viz/core/export\";\r\nimport {\r\n plugin as loadingIndicatorPlugin\r\n} from \"../../../viz/core/loading_indicator\";\r\nimport {\r\n plugin as titlePlugin\r\n} from \"../../../viz/core/title\";\r\nimport {\r\n plugin as tooltipPlugin\r\n} from \"../../../viz/core/tooltip\";\r\nimport {\r\n map as _map,\r\n processSeriesTemplate,\r\n setCanvasValues as _setCanvasValues\r\n} from \"../../../viz/core/utils\";\r\nimport {\r\n Series\r\n} from \"../../../viz/series/base_series\";\r\nimport BaseWidget from \"../core/m_base_widget\";\r\nimport {\r\n RollingStock\r\n} from \"./rolling_stock\";\r\nvar {\r\n isArray: isArray\r\n} = Array;\r\nvar REINIT_REFRESH_ACTION = \"_reinit\";\r\nvar REINIT_DATA_SOURCE_REFRESH_ACTION = \"_updateDataSource\";\r\nvar DATA_INIT_REFRESH_ACTION = \"_dataInit\";\r\nvar FORCE_RENDER_REFRESH_ACTION = \"_forceRender\";\r\nvar RESIZE_REFRESH_ACTION = \"_resize\";\r\nvar ACTIONS_BY_PRIORITY = [REINIT_REFRESH_ACTION, REINIT_DATA_SOURCE_REFRESH_ACTION, DATA_INIT_REFRESH_ACTION, FORCE_RENDER_REFRESH_ACTION, RESIZE_REFRESH_ACTION];\r\nvar DEFAULT_OPACITY = .3;\r\nvar REFRESH_SERIES_DATA_INIT_ACTION_OPTIONS = [\"series\", \"commonSeriesSettings\", \"dataPrepareSettings\", \"seriesSelectionMode\", \"pointSelectionMode\", \"synchronizeMultiAxes\", \"resolveLabelsOverlapping\"];\r\nvar REFRESH_SERIES_FAMILIES_ACTION_OPTIONS = [\"minBubbleSize\", \"maxBubbleSize\", \"barGroupPadding\", \"barGroupWidth\", \"negativesAsZeroes\", \"negativesAsZeros\"];\r\nvar FORCE_RENDER_REFRESH_ACTION_OPTIONS = [\"adaptiveLayout\", \"crosshair\", \"resolveLabelOverlapping\", \"adjustOnZoom\", \"stickyHovering\"];\r\nvar FONT = \"font\";\r\n\r\nfunction checkHeightRollingStock(rollingStocks, stubCanvas) {\r\n var canvasSize = stubCanvas.end - stubCanvas.start;\r\n var size = 0;\r\n rollingStocks.forEach(rollingStock => {\r\n size += rollingStock.getBoundingRect().width\r\n });\r\n while (canvasSize < size) {\r\n size -= findAndKillSmallValue(rollingStocks)\r\n }\r\n}\r\n\r\nfunction findAndKillSmallValue(rollingStocks) {\r\n var smallestObject = rollingStocks.reduce((prev, rollingStock, index) => {\r\n if (!rollingStock) {\r\n return prev\r\n }\r\n var value = rollingStock.value();\r\n return value < prev.value ? {\r\n value: value,\r\n rollingStock: rollingStock,\r\n index: index\r\n } : prev\r\n }, {\r\n rollingStock: void 0,\r\n value: 1 / 0,\r\n index: void 0\r\n });\r\n smallestObject.rollingStock.getLabels()[0].draw(false);\r\n var {\r\n width: width\r\n } = smallestObject.rollingStock.getBoundingRect();\r\n rollingStocks[smallestObject.index] = null;\r\n return width\r\n}\r\n\r\nfunction checkStackOverlap(rollingStocks) {\r\n var i;\r\n var j;\r\n var iLength;\r\n var jLength;\r\n var overlap = false;\r\n for (i = 0, iLength = rollingStocks.length - 1; i < iLength; i++) {\r\n for (j = i + 1, jLength = rollingStocks.length; j < jLength; j++) {\r\n if (i !== j && checkStacksOverlapping(rollingStocks[i], rollingStocks[j], true)) {\r\n overlap = true;\r\n break\r\n }\r\n }\r\n if (overlap) {\r\n break\r\n }\r\n }\r\n return overlap\r\n}\r\n\r\nfunction resolveLabelOverlappingInOneDirection(points, canvas, isRotated, isInverted, shiftFunction) {\r\n var customSorting = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : () => 0;\r\n var rollingStocks = [];\r\n var stubCanvas = {\r\n start: isRotated ? canvas.left : canvas.top,\r\n end: isRotated ? canvas.width - canvas.right : canvas.height - canvas.bottom\r\n };\r\n var hasStackedSeries = false;\r\n var sortRollingStocks;\r\n points.forEach(p => {\r\n if (!p) {\r\n return\r\n }\r\n hasStackedSeries = hasStackedSeries || p.series.isStackedSeries() || p.series.isFullStackedSeries();\r\n p.getLabels().forEach(l => {\r\n if (l.isVisible()) {\r\n rollingStocks.push(new RollingStock(l, isRotated, shiftFunction))\r\n }\r\n })\r\n });\r\n if (hasStackedSeries) {\r\n if (Number(!isRotated) ^ Number(isInverted)) {\r\n rollingStocks.reverse()\r\n }\r\n sortRollingStocks = isInverted ? rollingStocks : sortRollingStocksByValue(rollingStocks)\r\n } else {\r\n var rollingStocksTmp = rollingStocks.slice();\r\n sortRollingStocks = rollingStocks.sort((a, b) => customSorting(a, b) || a.getInitialPosition() - b.getInitialPosition() || rollingStocksTmp.indexOf(a) - rollingStocksTmp.indexOf(b))\r\n }\r\n if (!checkStackOverlap(sortRollingStocks)) {\r\n return false\r\n }\r\n checkHeightRollingStock(sortRollingStocks, stubCanvas);\r\n prepareOverlapStacks(sortRollingStocks);\r\n sortRollingStocks.reverse();\r\n moveRollingStock(sortRollingStocks, stubCanvas);\r\n return true\r\n}\r\n\r\nfunction checkStacksOverlapping(firstRolling, secondRolling, inTwoSides) {\r\n if (!firstRolling || !secondRolling) {\r\n return\r\n }\r\n var firstRect = firstRolling.getBoundingRect();\r\n var secondRect = secondRolling.getBoundingRect();\r\n var oppositeOverlapping = inTwoSides ? firstRect.oppositeStart <= secondRect.oppositeStart && firstRect.oppositeEnd > secondRect.oppositeStart || secondRect.oppositeStart <= firstRect.oppositeStart && secondRect.oppositeEnd > firstRect.oppositeStart : true;\r\n return firstRect.end > secondRect.start && oppositeOverlapping\r\n}\r\n\r\nfunction sortRollingStocksByValue(rollingStocks) {\r\n var positiveRollingStocks = [];\r\n var negativeRollingStocks = [];\r\n rollingStocks.forEach(stock => {\r\n if (stock.value() > 0) {\r\n positiveRollingStocks.push(stock)\r\n } else {\r\n negativeRollingStocks.unshift(stock)\r\n }\r\n });\r\n return positiveRollingStocks.concat(negativeRollingStocks)\r\n}\r\n\r\nfunction prepareOverlapStacks(rollingStocks) {\r\n var root;\r\n for (var i = 0; i < rollingStocks.length - 1; i += 1) {\r\n var currentRollingStock = root || rollingStocks[i];\r\n if (checkStacksOverlapping(currentRollingStock, rollingStocks[i + 1])) {\r\n currentRollingStock.toChain(rollingStocks[i + 1]);\r\n rollingStocks[i + 1] = null;\r\n root = currentRollingStock\r\n } else {\r\n root = rollingStocks[i + 1] || currentRollingStock\r\n }\r\n }\r\n}\r\n\r\nfunction rollingStocksIsOut(rollingStock, canvas) {\r\n return rollingStock.getBoundingRect().end > canvas.end\r\n}\r\n\r\nfunction moveRollingStock(rollingStocks, canvas) {\r\n for (var i = 0; i < rollingStocks.length; i += 1) {\r\n var currentRollingStock = rollingStocks[i];\r\n var shouldSetCanvas = true;\r\n if (null !== currentRollingStock && rollingStocksIsOut(currentRollingStock, canvas)) {\r\n var currentBBox = currentRollingStock.getBoundingRect();\r\n for (var j = i + 1; j < rollingStocks.length; j += 1) {\r\n var nextRollingStock = rollingStocks[j];\r\n if (nextRollingStock) {\r\n var nextBBox = nextRollingStock.getBoundingRect();\r\n if (nextBBox.end > currentBBox.start - (currentBBox.end - canvas.end)) {\r\n nextRollingStock.toChain(currentRollingStock);\r\n shouldSetCanvas = false;\r\n break\r\n }\r\n }\r\n }\r\n }\r\n if (shouldSetCanvas) {\r\n null === currentRollingStock || void 0 === currentRollingStock ? void 0 : currentRollingStock.setRollingStockInCanvas(canvas)\r\n }\r\n }\r\n}\r\n\r\nfunction getLegendFields(name) {\r\n return {\r\n nameField: \"\".concat(name, \"Name\"),\r\n colorField: \"\".concat(name, \"Color\"),\r\n indexField: \"\".concat(name, \"Index\")\r\n }\r\n}\r\n\r\nfunction getLegendSettings(legendDataField) {\r\n var formatObjectFields = getLegendFields(legendDataField);\r\n return {\r\n getFormatObject(data) {\r\n var res = {};\r\n res[formatObjectFields.indexField] = data.id;\r\n res[formatObjectFields.colorField] = data.states.normal.fill;\r\n res[formatObjectFields.nameField] = data.text;\r\n return res\r\n },\r\n textField: formatObjectFields.nameField\r\n }\r\n}\r\n\r\nfunction checkOverlapping(firstRect, secondRect) {\r\n return (firstRect.x <= secondRect.x && secondRect.x <= firstRect.x + firstRect.width || firstRect.x >= secondRect.x && firstRect.x <= secondRect.x + secondRect.width) && (firstRect.y <= secondRect.y && secondRect.y <= firstRect.y + firstRect.height || firstRect.y >= secondRect.y && firstRect.y <= secondRect.y + secondRect.height)\r\n}\r\nexport var overlapping = {\r\n resolveLabelOverlappingInOneDirection: resolveLabelOverlappingInOneDirection\r\n};\r\nexport var BaseChart = BaseWidget.inherit({\r\n _eventsMap: {\r\n onSeriesClick: {\r\n name: \"seriesClick\"\r\n },\r\n onPointClick: {\r\n name: \"pointClick\"\r\n },\r\n onArgumentAxisClick: {\r\n name: \"argumentAxisClick\"\r\n },\r\n onLegendClick: {\r\n name: \"legendClick\"\r\n },\r\n onSeriesSelectionChanged: {\r\n name: \"seriesSelectionChanged\"\r\n },\r\n onPointSelectionChanged: {\r\n name: \"pointSelectionChanged\"\r\n },\r\n onSeriesHoverChanged: {\r\n name: \"seriesHoverChanged\"\r\n },\r\n onPointHoverChanged: {\r\n name: \"pointHoverChanged\"\r\n },\r\n onDone: {\r\n name: \"done\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onZoomStart: {\r\n name: \"zoomStart\"\r\n },\r\n onZoomEnd: {\r\n name: \"zoomEnd\"\r\n }\r\n },\r\n _fontFields: [\"legend.\".concat(FONT), \"legend.title.\".concat(FONT), \"legend.title.subtitle.\".concat(FONT), \"commonSeriesSettings.label.\".concat(FONT)],\r\n _rootClassPrefix: \"dxc\",\r\n _rootClass: \"dxc-chart\",\r\n _initialChanges: [\"INIT\"],\r\n _themeDependentChanges: [\"REFRESH_SERIES_REINIT\"],\r\n _getThemeManagerOptions() {\r\n var themeOptions = this.callBase.apply(this, arguments);\r\n themeOptions.options = this.option();\r\n return themeOptions\r\n },\r\n _createThemeManager() {\r\n var chartOption = this.option();\r\n var themeManager = new ThemeManager(this._getThemeManagerOptions());\r\n themeManager.setTheme(chartOption.theme, chartOption.rtlEnabled);\r\n return themeManager\r\n },\r\n _initCore() {\r\n this._canvasClipRect = this._renderer.clipRect();\r\n this._createHtmlStructure();\r\n this._createLegend();\r\n this._createTracker();\r\n this._needHandleRenderComplete = true;\r\n this.layoutManager = new LayoutManager;\r\n this._createScrollBar();\r\n eventsEngine.on(this._$element, \"contextmenu\", event => {\r\n if (isTouchEvent(event) || isPointerEvent(event)) {\r\n event.preventDefault()\r\n }\r\n });\r\n eventsEngine.on(this._$element, \"MSHoldVisual\", event => {\r\n event.preventDefault()\r\n })\r\n },\r\n _getLayoutItems: noop,\r\n _layoutManagerOptions() {\r\n return this._themeManager.getOptions(\"adaptiveLayout\")\r\n },\r\n _reinit() {\r\n _setCanvasValues(this._canvas);\r\n this._reinitAxes();\r\n this._requestChange([\"DATA_SOURCE\", \"DATA_INIT\", \"CORRECT_AXIS\", \"FULL_RENDER\"])\r\n },\r\n _correctAxes: noop,\r\n _createHtmlStructure() {\r\n var renderer = this._renderer;\r\n var {\r\n root: root\r\n } = renderer;\r\n var createConstantLinesGroup = function() {\r\n return renderer.g().attr({\r\n class: \"dxc-constant-lines-group\"\r\n }).linkOn(root, \"constant-lines\")\r\n };\r\n this._constantLinesGroup = {\r\n dispose() {\r\n this.under.dispose();\r\n this.above.dispose()\r\n },\r\n linkOff() {\r\n this.under.linkOff();\r\n this.above.linkOff()\r\n },\r\n clear() {\r\n this.under.linkRemove().clear();\r\n this.above.linkRemove().clear()\r\n },\r\n linkAppend() {\r\n this.under.linkAppend();\r\n this.above.linkAppend()\r\n }\r\n };\r\n this._labelsAxesGroup = renderer.g().attr({\r\n class: \"dxc-elements-axes-group\"\r\n });\r\n var appendLabelsAxesGroup = () => {\r\n this._labelsAxesGroup.linkOn(root, \"elements\")\r\n };\r\n this._backgroundRect = renderer.rect().attr({\r\n fill: \"gray\",\r\n opacity: 1e-4\r\n }).append(root);\r\n this._panesBackgroundGroup = renderer.g().attr({\r\n class: \"dxc-background\"\r\n }).append(root);\r\n this._stripsGroup = renderer.g().attr({\r\n class: \"dxc-strips-group\"\r\n }).linkOn(root, \"strips\");\r\n this._gridGroup = renderer.g().attr({\r\n class: \"dxc-grids-group\"\r\n }).linkOn(root, \"grids\");\r\n this._panesBorderGroup = renderer.g().attr({\r\n class: \"dxc-border\"\r\n }).linkOn(root, \"border\");\r\n this._axesGroup = renderer.g().attr({\r\n class: \"dxc-axes-group\"\r\n }).linkOn(root, \"axes\");\r\n this._executeAppendBeforeSeries(appendLabelsAxesGroup);\r\n this._stripLabelAxesGroup = renderer.g().attr({\r\n class: \"dxc-strips-labels-group\"\r\n }).linkOn(root, \"strips-labels\");\r\n this._constantLinesGroup.under = createConstantLinesGroup();\r\n this._seriesGroup = renderer.g().attr({\r\n class: \"dxc-series-group\"\r\n }).linkOn(root, \"series\");\r\n this._executeAppendAfterSeries(appendLabelsAxesGroup);\r\n this._constantLinesGroup.above = createConstantLinesGroup();\r\n this._scaleBreaksGroup = renderer.g().attr({\r\n class: \"dxc-scale-breaks\"\r\n }).linkOn(root, \"scale-breaks\");\r\n this._labelsGroup = renderer.g().attr({\r\n class: \"dxc-labels-group\"\r\n }).linkOn(root, \"labels\");\r\n this._crosshairCursorGroup = renderer.g().attr({\r\n class: \"dxc-crosshair-cursor\"\r\n }).linkOn(root, \"crosshair\");\r\n this._legendGroup = renderer.g().attr({\r\n class: \"dxc-legend\",\r\n \"clip-path\": this._getCanvasClipRectID()\r\n }).linkOn(root, \"legend\").linkAppend(root).enableLinks();\r\n this._scrollBarGroup = renderer.g().attr({\r\n class: \"dxc-scroll-bar\"\r\n }).linkOn(root, \"scroll-bar\")\r\n },\r\n _executeAppendBeforeSeries() {},\r\n _executeAppendAfterSeries() {},\r\n _disposeObjectsInArray(propName, fieldNames) {\r\n (this[propName] || []).forEach(item => {\r\n if (fieldNames && item) {\r\n fieldNames.forEach(field => {\r\n var _a;\r\n null === (_a = item[field]) || void 0 === _a ? void 0 : _a.dispose()\r\n })\r\n } else {\r\n null === item || void 0 === item ? void 0 : item.dispose()\r\n }\r\n });\r\n this[propName] = null\r\n },\r\n _disposeCore() {\r\n var disposeObject = propName => {\r\n if (this[propName]) {\r\n this[propName].dispose();\r\n this[propName] = null\r\n }\r\n };\r\n var unlinkGroup = name => {\r\n this[name].linkOff()\r\n };\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n this._renderer.stopAllAnimations();\r\n disposeObjectsInArray.call(this, \"series\");\r\n disposeObject(\"_tracker\");\r\n disposeObject(\"_crosshair\");\r\n this.layoutManager = this._userOptions = this._canvas = this._groupsData = null;\r\n unlinkGroup(\"_stripsGroup\");\r\n unlinkGroup(\"_gridGroup\");\r\n unlinkGroup(\"_axesGroup\");\r\n unlinkGroup(\"_constantLinesGroup\");\r\n unlinkGroup(\"_stripLabelAxesGroup\");\r\n unlinkGroup(\"_panesBorderGroup\");\r\n unlinkGroup(\"_seriesGroup\");\r\n unlinkGroup(\"_labelsGroup\");\r\n unlinkGroup(\"_crosshairCursorGroup\");\r\n unlinkGroup(\"_legendGroup\");\r\n unlinkGroup(\"_scrollBarGroup\");\r\n unlinkGroup(\"_scaleBreaksGroup\");\r\n disposeObject(\"_canvasClipRect\");\r\n disposeObject(\"_panesBackgroundGroup\");\r\n disposeObject(\"_backgroundRect\");\r\n disposeObject(\"_stripsGroup\");\r\n disposeObject(\"_gridGroup\");\r\n disposeObject(\"_axesGroup\");\r\n disposeObject(\"_constantLinesGroup\");\r\n disposeObject(\"_stripLabelAxesGroup\");\r\n disposeObject(\"_panesBorderGroup\");\r\n disposeObject(\"_seriesGroup\");\r\n disposeObject(\"_labelsGroup\");\r\n disposeObject(\"_crosshairCursorGroup\");\r\n disposeObject(\"_legendGroup\");\r\n disposeObject(\"_scrollBarGroup\");\r\n disposeObject(\"_scaleBreaksGroup\")\r\n },\r\n _getAnimationOptions() {\r\n return this._themeManager.getOptions(\"animation\")\r\n },\r\n _getDefaultSize: () => ({\r\n width: 400,\r\n height: 400\r\n }),\r\n _getOption(name) {\r\n return this._themeManager.getOptions(name)\r\n },\r\n _applySize(rect) {\r\n this._rect = rect.slice();\r\n if (!this._changes.has(\"FULL_RENDER\")) {\r\n this._processRefreshData(RESIZE_REFRESH_ACTION)\r\n }\r\n },\r\n _resize() {\r\n this._doRender(this.__renderOptions || {\r\n animate: false,\r\n isResize: true\r\n })\r\n },\r\n _trackerType: \"ChartTracker\",\r\n _createTracker() {\r\n this._tracker = new trackerModule[this._trackerType]({\r\n seriesGroup: this._seriesGroup,\r\n renderer: this._renderer,\r\n tooltip: this._tooltip,\r\n legend: this._legend,\r\n eventTrigger: this._eventTrigger\r\n })\r\n },\r\n _getTrackerSettings() {\r\n return extend({\r\n chart: this\r\n }, this._getSelectionModes())\r\n },\r\n _getSelectionModes() {\r\n var themeManager = this._themeManager;\r\n return {\r\n seriesSelectionMode: themeManager.getOptions(\"seriesSelectionMode\"),\r\n pointSelectionMode: themeManager.getOptions(\"pointSelectionMode\")\r\n }\r\n },\r\n _updateTracker(trackerCanvases) {\r\n this._tracker.update(this._getTrackerSettings());\r\n this._tracker.setCanvases({\r\n left: 0,\r\n right: this._canvas.width,\r\n top: 0,\r\n bottom: this._canvas.height\r\n }, trackerCanvases)\r\n },\r\n _createCanvasFromRect(rect) {\r\n var currentCanvas = this._canvas;\r\n return _setCanvasValues({\r\n left: rect[0],\r\n top: rect[1],\r\n right: currentCanvas.width - rect[2],\r\n bottom: currentCanvas.height - rect[3],\r\n width: currentCanvas.width,\r\n height: currentCanvas.height\r\n })\r\n },\r\n _doRender(_options) {\r\n if (0 === this._canvas.width && 0 === this._canvas.height) {\r\n return\r\n }\r\n this._resetIsReady();\r\n var drawOptions = this._prepareDrawOptions(_options);\r\n var {\r\n recreateCanvas: recreateCanvas\r\n } = drawOptions;\r\n this._preserveOriginalCanvas();\r\n if (recreateCanvas) {\r\n this.__currentCanvas = this._canvas\r\n } else {\r\n this._canvas = this.__currentCanvas\r\n }\r\n recreateCanvas && this._updateCanvasClipRect(this._canvas);\r\n this._canvas = this._createCanvasFromRect(this._rect);\r\n this._renderer.stopAllAnimations(true);\r\n this._cleanGroups();\r\n var startTime = new Date;\r\n this._renderElements(drawOptions);\r\n this._lastRenderingTime = Number(new Date) - Number(startTime)\r\n },\r\n _preserveOriginalCanvas() {\r\n this.__originalCanvas = this._canvas;\r\n this._canvas = extend({}, this._canvas)\r\n },\r\n _layoutAxes: noop,\r\n _renderElements(drawOptions) {\r\n var preparedOptions = this._prepareToRender(drawOptions);\r\n var isRotated = this._isRotated();\r\n var isLegendInside = this._isLegendInside();\r\n var trackerCanvases = [];\r\n extend({}, this._canvas);\r\n var argBusinessRange;\r\n var zoomMinArg;\r\n var zoomMaxArg;\r\n this._renderer.lock();\r\n if (drawOptions.drawLegend && this._legend) {\r\n this._legendGroup.linkAppend()\r\n }\r\n this.layoutManager.setOptions(this._layoutManagerOptions());\r\n var layoutTargets = this._getLayoutTargets();\r\n this._layoutAxes(needSpace => {\r\n var axisDrawOptions = needSpace ? extend({}, drawOptions, {\r\n animate: false,\r\n recreateCanvas: true\r\n }) : drawOptions;\r\n var canvas = this._renderAxes(axisDrawOptions, preparedOptions);\r\n this._shrinkAxes(needSpace, canvas)\r\n });\r\n this._applyClipRects(preparedOptions);\r\n this._appendSeriesGroups();\r\n this._createCrosshairCursor();\r\n layoutTargets.forEach(_ref => {\r\n var {\r\n canvas: canvas\r\n } = _ref;\r\n trackerCanvases.push({\r\n left: canvas.left,\r\n right: canvas.width - canvas.right,\r\n top: canvas.top,\r\n bottom: canvas.height - canvas.bottom\r\n })\r\n });\r\n if (this._scrollBar) {\r\n argBusinessRange = this._argumentAxes[0].getTranslator().getBusinessRange();\r\n if (\"discrete\" === argBusinessRange.axisType && argBusinessRange.categories && argBusinessRange.categories.length <= 1 || \"discrete\" !== argBusinessRange.axisType && argBusinessRange.min === argBusinessRange.max) {\r\n zoomMinArg = zoomMaxArg = void 0\r\n } else {\r\n zoomMinArg = argBusinessRange.minVisible;\r\n zoomMaxArg = argBusinessRange.maxVisible\r\n }\r\n this._scrollBar.init(argBusinessRange, !this._argumentAxes[0].getOptions().valueMarginsEnabled).setPosition(zoomMinArg, zoomMaxArg)\r\n }\r\n this._updateTracker(trackerCanvases);\r\n this._updateLegendPosition(drawOptions, isLegendInside);\r\n this._applyPointMarkersAutoHiding();\r\n this._renderSeries(drawOptions, isRotated, isLegendInside);\r\n this._renderGraphicObjects();\r\n this._renderer.unlock()\r\n },\r\n _updateLegendPosition: noop,\r\n _createCrosshairCursor: noop,\r\n _appendSeriesGroups() {\r\n this._seriesGroup.linkAppend();\r\n this._labelsGroup.linkAppend();\r\n this._appendAdditionalSeriesGroups()\r\n },\r\n _renderSeries(drawOptions, isRotated, isLegendInside) {\r\n this._calculateSeriesLayout(drawOptions, isRotated);\r\n this._renderSeriesElements(drawOptions, isLegendInside)\r\n },\r\n _calculateSeriesLayout(drawOptions, isRotated) {\r\n drawOptions.hideLayoutLabels = this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), isRotated) && !this._themeManager.getOptions(\"adaptiveLayout\").keepLabels;\r\n this._updateSeriesDimensions(drawOptions)\r\n },\r\n _getArgFilter: () => () => true,\r\n _getValFilter: () => () => true,\r\n _getPointsToAnimation(series) {\r\n var argViewPortFilter = this._getArgFilter();\r\n return series.map(s => {\r\n var valViewPortFilter = this._getValFilter(s);\r\n return s.getPoints().filter(p => p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true)))).length\r\n })\r\n },\r\n _renderSeriesElements(drawOptions, isLegendInside) {\r\n var {\r\n series: series\r\n } = this;\r\n var resolveLabelOverlapping = this._themeManager.getOptions(\"resolveLabelOverlapping\");\r\n var pointsToAnimation = this._getPointsToAnimation(series);\r\n series.forEach((singleSeries, index) => {\r\n this._applyExtraSettings(singleSeries, drawOptions);\r\n var animationEnabled = drawOptions.animate && pointsToAnimation[index] <= drawOptions.animationPointsLimit && this._renderer.animationEnabled();\r\n singleSeries.draw(animationEnabled, drawOptions.hideLayoutLabels, this._getLegendCallBack(singleSeries))\r\n });\r\n if (\"none\" === resolveLabelOverlapping) {\r\n this._adjustSeriesLabels(false)\r\n } else {\r\n this._locateLabels(resolveLabelOverlapping)\r\n }\r\n this._renderTrackers(isLegendInside);\r\n this._tracker.repairTooltip();\r\n this._renderExtraElements();\r\n this._clearCanvas();\r\n this._seriesElementsDrawn = true\r\n },\r\n _changesApplied() {\r\n if (this._seriesElementsDrawn) {\r\n this._seriesElementsDrawn = false;\r\n this._drawn();\r\n this._renderCompleteHandler()\r\n }\r\n },\r\n _locateLabels(resolveLabelOverlapping) {\r\n this._resolveLabelOverlapping(resolveLabelOverlapping)\r\n },\r\n _renderExtraElements() {},\r\n _clearCanvas() {\r\n this._canvas = this.__originalCanvas\r\n },\r\n _resolveLabelOverlapping(resolveLabelOverlapping) {\r\n var func;\r\n switch (resolveLabelOverlapping) {\r\n case \"stack\":\r\n func = this._resolveLabelOverlappingStack;\r\n break;\r\n case \"hide\":\r\n func = this._resolveLabelOverlappingHide;\r\n break;\r\n case \"shift\":\r\n func = this._resolveLabelOverlappingShift\r\n }\r\n return isFunction(func) && func.call(this)\r\n },\r\n _getVisibleSeries() {\r\n return grep(this.getAllSeries(), series => series.isVisible())\r\n },\r\n _resolveLabelOverlappingHide() {\r\n var labels = [];\r\n var currentLabel;\r\n var nextLabel;\r\n var currentLabelRect;\r\n var nextLabelRect;\r\n var i;\r\n var j;\r\n var points;\r\n var series = this._getVisibleSeries();\r\n for (i = 0; i < series.length; i++) {\r\n points = series[i].getVisiblePoints();\r\n for (j = 0; j < points.length; j++) {\r\n labels.push.apply(labels, points[j].getLabels())\r\n }\r\n }\r\n for (i = 0; i < labels.length; i++) {\r\n currentLabel = labels[i];\r\n if (!currentLabel.isVisible()) {\r\n continue\r\n }\r\n currentLabelRect = currentLabel.getBoundingRect();\r\n for (j = i + 1; j < labels.length; j++) {\r\n nextLabel = labels[j];\r\n nextLabelRect = nextLabel.getBoundingRect();\r\n if (checkOverlapping(currentLabelRect, nextLabelRect)) {\r\n nextLabel.draw(false)\r\n }\r\n }\r\n }\r\n },\r\n _cleanGroups() {\r\n this._stripsGroup.linkRemove().clear();\r\n this._gridGroup.linkRemove().clear();\r\n this._axesGroup.linkRemove().clear();\r\n this._constantLinesGroup.clear();\r\n this._stripLabelAxesGroup.linkRemove().clear();\r\n this._labelsGroup.linkRemove().clear();\r\n this._crosshairCursorGroup.linkRemove().clear();\r\n this._scaleBreaksGroup.linkRemove().clear()\r\n },\r\n _allowLegendInsidePosition: () => false,\r\n _createLegend() {\r\n var legendSettings = getLegendSettings(this._legendDataField);\r\n this._legend = new Legend({\r\n renderer: this._renderer,\r\n widget: this,\r\n group: this._legendGroup,\r\n backgroundClass: \"dxc-border\",\r\n itemGroupClass: \"dxc-item\",\r\n titleGroupClass: \"dxc-title\",\r\n textField: legendSettings.textField,\r\n getFormatObject: legendSettings.getFormatObject,\r\n allowInsidePosition: this._allowLegendInsidePosition()\r\n });\r\n this._updateLegend();\r\n this._layout.add(this._legend)\r\n },\r\n _updateLegend() {\r\n var themeManager = this._themeManager;\r\n var legendOptions = themeManager.getOptions(\"legend\");\r\n var legendData = this._getLegendData();\r\n legendOptions.containerBackgroundColor = themeManager.getOptions(\"containerBackgroundColor\");\r\n legendOptions._incidentOccurred = this._incidentOccurred;\r\n this._legend.update(legendData, legendOptions, themeManager.theme(\"legend\").title);\r\n this._change([\"LAYOUT\"])\r\n },\r\n _prepareDrawOptions(drawOptions) {\r\n var animationOptions = this._getAnimationOptions();\r\n var options = extend({}, {\r\n force: false,\r\n adjustAxes: true,\r\n drawLegend: true,\r\n drawTitle: true,\r\n animate: animationOptions.enabled,\r\n animationPointsLimit: animationOptions.maxPointCountSupported\r\n }, drawOptions, this.__renderOptions);\r\n if (!_isDefined(options.recreateCanvas)) {\r\n options.recreateCanvas = options.adjustAxes && options.drawLegend && options.drawTitle\r\n }\r\n return options\r\n },\r\n _processRefreshData(newRefreshAction) {\r\n var currentRefreshActionPosition = ACTIONS_BY_PRIORITY.indexOf(this._currentRefreshData);\r\n var newRefreshActionPosition = ACTIONS_BY_PRIORITY.indexOf(newRefreshAction);\r\n if (!this._currentRefreshData || currentRefreshActionPosition >= 0 && newRefreshActionPosition < currentRefreshActionPosition) {\r\n this._currentRefreshData = newRefreshAction\r\n }\r\n this._requestChange([\"REFRESH\"])\r\n },\r\n _getLegendData() {\r\n return _map(this._getLegendTargets(), item => {\r\n var {\r\n legendData: legendData\r\n } = item;\r\n var style = item.getLegendStyles;\r\n var {\r\n opacity: opacity\r\n } = style.normal;\r\n if (!item.visible) {\r\n if (!_isDefined(opacity) || opacity > DEFAULT_OPACITY) {\r\n opacity = DEFAULT_OPACITY\r\n }\r\n legendData.textOpacity = DEFAULT_OPACITY\r\n }\r\n var opacityStyle = {\r\n opacity: opacity\r\n };\r\n legendData.states = {\r\n hover: extend({}, style.hover, opacityStyle),\r\n selection: extend({}, style.selection, opacityStyle),\r\n normal: extend({}, style.normal, opacityStyle)\r\n };\r\n return legendData\r\n })\r\n },\r\n _getLegendOptions(item) {\r\n return {\r\n legendData: {\r\n text: item[this._legendItemTextField],\r\n id: item.index,\r\n visible: true\r\n },\r\n getLegendStyles: item.getLegendStyles(),\r\n visible: item.isVisible()\r\n }\r\n },\r\n _disposeSeries(seriesIndex) {\r\n var _a;\r\n if (this.series) {\r\n if (_isDefined(seriesIndex)) {\r\n this.series[seriesIndex].dispose();\r\n this.series.splice(seriesIndex, 1)\r\n } else {\r\n this.series.forEach(s => s.dispose());\r\n this.series.length = 0\r\n }\r\n }\r\n if (!(null === (_a = this.series) || void 0 === _a ? void 0 : _a.length)) {\r\n this.series = []\r\n }\r\n },\r\n _disposeSeriesFamilies() {\r\n (this.seriesFamilies || []).forEach(family => {\r\n family.dispose()\r\n });\r\n this.seriesFamilies = null;\r\n this._needHandleRenderComplete = true\r\n },\r\n _optionChanged(arg) {\r\n this._themeManager.resetOptions(arg.name);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyChanges() {\r\n this._themeManager.update(this._options.silent());\r\n this.callBase(...arguments)\r\n },\r\n _optionChangesMap: {\r\n animation: \"ANIMATION\",\r\n dataSource: \"DATA_SOURCE\",\r\n palette: \"PALETTE\",\r\n paletteExtensionMode: \"PALETTE\",\r\n legend: \"FORCE_DATA_INIT\",\r\n seriesTemplate: \"FORCE_DATA_INIT\",\r\n export: \"FORCE_RENDER\",\r\n valueAxis: \"AXES_AND_PANES\",\r\n argumentAxis: \"AXES_AND_PANES\",\r\n commonAxisSettings: \"AXES_AND_PANES\",\r\n panes: \"AXES_AND_PANES\",\r\n commonPaneSettings: \"AXES_AND_PANES\",\r\n defaultPane: \"AXES_AND_PANES\",\r\n containerBackgroundColor: \"AXES_AND_PANES\",\r\n rotated: \"ROTATED\",\r\n autoHidePointMarkers: \"REFRESH_SERIES_REINIT\",\r\n customizePoint: \"REFRESH_SERIES_REINIT\",\r\n customizeLabel: \"REFRESH_SERIES_REINIT\",\r\n scrollBar: \"SCROLL_BAR\"\r\n },\r\n _optionChangesOrder: [\"ROTATED\", \"PALETTE\", \"REFRESH_SERIES_REINIT\", \"USE_SPIDER_WEB\", \"AXES_AND_PANES\", \"INIT\", \"REINIT\", \"DATA_SOURCE\", \"REFRESH_SERIES_DATA_INIT\", \"DATA_INIT\", \"FORCE_DATA_INIT\", \"REFRESH_AXES\", \"CORRECT_AXIS\"],\r\n _customChangesOrder: [\"ANIMATION\", \"REFRESH_SERIES_FAMILIES\", \"FORCE_FIRST_DRAWING\", \"FORCE_DRAWING\", \"FORCE_RENDER\", \"VISUAL_RANGE\", \"SCROLL_BAR\", \"REINIT\", \"REFRESH\", \"FULL_RENDER\"],\r\n _change_ANIMATION() {\r\n this._renderer.updateAnimationOptions(this._getAnimationOptions())\r\n },\r\n _change_DATA_SOURCE() {\r\n this._needHandleRenderComplete = true;\r\n this._updateDataSource()\r\n },\r\n _change_PALETTE() {\r\n this._themeManager.updatePalette();\r\n this._refreshSeries(\"DATA_INIT\")\r\n },\r\n _change_REFRESH_SERIES_DATA_INIT() {\r\n this._refreshSeries(\"DATA_INIT\")\r\n },\r\n _change_DATA_INIT() {\r\n if ((!this.series || this.needToPopulateSeries) && !this._changes.has(\"FORCE_DATA_INIT\")) {\r\n this._dataInit()\r\n }\r\n },\r\n _change_FORCE_DATA_INIT() {\r\n this._dataInit()\r\n },\r\n _change_REFRESH_SERIES_FAMILIES() {\r\n this._processSeriesFamilies();\r\n this._populateBusinessRange();\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_FORCE_RENDER() {\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_AXES_AND_PANES() {\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_ROTATED() {\r\n this._createScrollBar();\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_REFRESH_SERIES_REINIT() {\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_REFRESH_AXES() {\r\n _setCanvasValues(this._canvas);\r\n this._reinitAxes();\r\n this._requestChange([\"CORRECT_AXIS\", \"FULL_RENDER\"])\r\n },\r\n _change_SCROLL_BAR() {\r\n this._createScrollBar();\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_REINIT() {\r\n this._processRefreshData(REINIT_REFRESH_ACTION)\r\n },\r\n _change_FORCE_DRAWING() {\r\n this._resetComponentsAnimation()\r\n },\r\n _change_FORCE_FIRST_DRAWING() {\r\n this._resetComponentsAnimation(true)\r\n },\r\n _resetComponentsAnimation(isFirstDrawing) {\r\n this.series.forEach(s => {\r\n s.resetApplyingAnimation(isFirstDrawing)\r\n });\r\n this._resetAxesAnimation(isFirstDrawing)\r\n },\r\n _resetAxesAnimation: noop,\r\n _refreshSeries(actionName) {\r\n this.needToPopulateSeries = true;\r\n this._requestChange([actionName])\r\n },\r\n _change_CORRECT_AXIS() {\r\n this._correctAxes()\r\n },\r\n _doRefresh() {\r\n var methodName = this._currentRefreshData;\r\n if (methodName) {\r\n this._currentRefreshData = null;\r\n this._renderer.stopAllAnimations(true);\r\n this[methodName]()\r\n }\r\n },\r\n _updateCanvasClipRect(canvas) {\r\n var width = Math.max(canvas.width - canvas.left - canvas.right, 0);\r\n var height = Math.max(canvas.height - canvas.top - canvas.bottom, 0);\r\n this._canvasClipRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: width,\r\n height: height\r\n });\r\n this._backgroundRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _getCanvasClipRectID() {\r\n return this._canvasClipRect.id\r\n },\r\n _dataSourceChangedHandler() {\r\n if (this._changes.has(\"INIT\")) {\r\n this._requestChange([\"DATA_INIT\"])\r\n } else {\r\n this._requestChange([\"FORCE_DATA_INIT\"])\r\n }\r\n },\r\n _dataInit() {\r\n this._dataSpecificInit(true)\r\n },\r\n _processSingleSeries(singleSeries) {\r\n singleSeries.createPoints(false)\r\n },\r\n _handleSeriesDataUpdated() {\r\n if (this._getVisibleSeries().some(s => s.useAggregation())) {\r\n this._populateMarginOptions()\r\n }\r\n this.series.forEach(s => this._processSingleSeries(s), this)\r\n },\r\n _dataSpecificInit(needRedraw) {\r\n if (!this.series || this.needToPopulateSeries) {\r\n this.series = this._populateSeries()\r\n }\r\n this._repopulateSeries();\r\n this._seriesPopulatedHandlerCore();\r\n this._populateBusinessRange();\r\n this._tracker.updateSeries(this.series, this._changes.has(\"INIT\"));\r\n this._updateLegend();\r\n if (needRedraw) {\r\n this._requestChange([\"FULL_RENDER\"])\r\n }\r\n },\r\n _forceRender() {\r\n this._doRender({\r\n force: true\r\n })\r\n },\r\n _repopulateSeries() {\r\n var themeManager = this._themeManager;\r\n var data = this._dataSourceItems();\r\n var dataValidatorOptions = themeManager.getOptions(\"dataPrepareSettings\");\r\n var seriesTemplate = themeManager.getOptions(\"seriesTemplate\");\r\n if (seriesTemplate) {\r\n this._populateSeries(data)\r\n }\r\n this._groupSeries();\r\n var parsedData = validateData(data, this._groupsData, this._incidentOccurred, dataValidatorOptions);\r\n themeManager.resetPalette();\r\n this.series.forEach(singleSeries => {\r\n singleSeries.updateData(parsedData[singleSeries.getArgumentField()])\r\n });\r\n this._handleSeriesDataUpdated()\r\n },\r\n _renderCompleteHandler() {\r\n var allSeriesInited = true;\r\n if (this._needHandleRenderComplete) {\r\n this.series.forEach(s => {\r\n allSeriesInited = allSeriesInited && s.canRenderCompleteHandle()\r\n });\r\n if (allSeriesInited) {\r\n this._needHandleRenderComplete = false;\r\n this._eventTrigger(\"done\", {\r\n target: this\r\n })\r\n }\r\n }\r\n },\r\n _dataIsReady() {\r\n return _isDefined(this.option(\"dataSource\")) && this._dataIsLoaded()\r\n },\r\n _populateSeriesOptions(data) {\r\n var themeManager = this._themeManager;\r\n var seriesTemplate = themeManager.getOptions(\"seriesTemplate\");\r\n var seriesOptions = seriesTemplate ? processSeriesTemplate(seriesTemplate, data || []) : this.option(\"series\");\r\n var allSeriesOptions = isArray(seriesOptions) ? seriesOptions : seriesOptions ? [seriesOptions] : [];\r\n var extraOptions = this._getExtraOptions();\r\n var particularSeriesOptions;\r\n var seriesTheme;\r\n var seriesThemes = [];\r\n var seriesVisibilityChanged = target => {\r\n this._specialProcessSeries();\r\n this._populateBusinessRange(target && target.getValueAxis(), true);\r\n this._renderer.stopAllAnimations(true);\r\n this._updateLegend();\r\n this._requestChange([\"FULL_RENDER\"])\r\n };\r\n for (var i = 0; i < allSeriesOptions.length; i++) {\r\n particularSeriesOptions = extend(true, {}, allSeriesOptions[i], extraOptions);\r\n if (!_isDefined(particularSeriesOptions.name) || \"\" === particularSeriesOptions.name) {\r\n particularSeriesOptions.name = \"Series \".concat((i + 1).toString())\r\n }\r\n particularSeriesOptions.rotated = this._isRotated();\r\n particularSeriesOptions.customizePoint = themeManager.getOptions(\"customizePoint\");\r\n particularSeriesOptions.customizeLabel = themeManager.getOptions(\"customizeLabel\");\r\n particularSeriesOptions.visibilityChanged = seriesVisibilityChanged;\r\n particularSeriesOptions.incidentOccurred = this._incidentOccurred;\r\n seriesTheme = themeManager.getOptions(\"series\", particularSeriesOptions, allSeriesOptions.length);\r\n if (this._checkPaneName(seriesTheme)) {\r\n seriesThemes.push(seriesTheme)\r\n }\r\n }\r\n return seriesThemes\r\n },\r\n _populateSeries(data) {\r\n var _a;\r\n var seriesBasis = [];\r\n var incidentOccurred = this._incidentOccurred;\r\n var seriesThemes = this._populateSeriesOptions(data);\r\n var particularSeries;\r\n var disposeSeriesFamilies = false;\r\n this.needToPopulateSeries = false;\r\n seriesThemes.forEach(theme => {\r\n var _a;\r\n var curSeries = null === (_a = this.series) || void 0 === _a ? void 0 : _a.find(s => s.name === theme.name && !seriesBasis.map(sb => sb.series).includes(s));\r\n if (curSeries && curSeries.type === theme.type) {\r\n seriesBasis.push({\r\n series: curSeries,\r\n options: theme\r\n })\r\n } else {\r\n seriesBasis.push({\r\n options: theme\r\n });\r\n disposeSeriesFamilies = true\r\n }\r\n });\r\n 0 !== (null === (_a = this.series) || void 0 === _a ? void 0 : _a.length) && this._tracker.clearHover();\r\n _reverseEach(this.series, (index, series) => {\r\n if (!seriesBasis.some(s => series === s.series)) {\r\n this._disposeSeries(index);\r\n disposeSeriesFamilies = true\r\n }\r\n });\r\n !disposeSeriesFamilies && (disposeSeriesFamilies = seriesBasis.some(sb => sb.series.name !== seriesThemes[sb.series.index].name));\r\n this.series = [];\r\n disposeSeriesFamilies && this._disposeSeriesFamilies();\r\n this._themeManager.resetPalette();\r\n var eventPipe = data => {\r\n this.series.forEach(currentSeries => {\r\n currentSeries.notify(data)\r\n })\r\n };\r\n seriesBasis.forEach(basis => {\r\n var _a, _b;\r\n var seriesTheme = basis.options;\r\n var argumentAxis = null !== (_b = null === (_a = this._argumentAxes) || void 0 === _a ? void 0 : _a.filter(a => a.pane === seriesTheme.pane)[0]) && void 0 !== _b ? _b : this.getArgumentAxis();\r\n var renderSettings = {\r\n commonSeriesModes: this._getSelectionModes(),\r\n argumentAxis: argumentAxis,\r\n valueAxis: this._getValueAxis(seriesTheme.pane, seriesTheme.axis)\r\n };\r\n if (basis.series) {\r\n particularSeries = basis.series;\r\n particularSeries.updateOptions(seriesTheme, renderSettings)\r\n } else {\r\n particularSeries = new Series(extend({\r\n renderer: this._renderer,\r\n seriesGroup: this._seriesGroup,\r\n labelsGroup: this._labelsGroup,\r\n eventTrigger: this._eventTrigger,\r\n eventPipe: eventPipe,\r\n incidentOccurred: incidentOccurred\r\n }, renderSettings), seriesTheme)\r\n }\r\n if (!particularSeries.isUpdated) {\r\n incidentOccurred(\"E2101\", [seriesTheme.type])\r\n } else {\r\n particularSeries.index = this.series.length;\r\n this.series.push(particularSeries)\r\n }\r\n });\r\n return this.series\r\n },\r\n getStackedPoints(point) {\r\n var stackName = point.series.getStackName();\r\n return this._getVisibleSeries().reduce((stackPoints, series) => {\r\n if (!_isDefined(series.getStackName()) || !_isDefined(stackName) || stackName === series.getStackName()) {\r\n stackPoints = stackPoints.concat(series.getPointsByArg(point.argument))\r\n }\r\n return stackPoints\r\n }, [])\r\n },\r\n getAllSeries: function() {\r\n return (this.series || []).slice()\r\n },\r\n getSeriesByName: function(name) {\r\n var found = (this.series || []).find(singleSeries => singleSeries.name === name);\r\n return found || null\r\n },\r\n getSeriesByPos: function(pos) {\r\n return (this.series || [])[pos]\r\n },\r\n clearSelection: function() {\r\n this._tracker.clearSelection()\r\n },\r\n hideTooltip() {\r\n this._tracker._hideTooltip()\r\n },\r\n clearHover() {\r\n this._tracker.clearHover()\r\n },\r\n render(renderOptions) {\r\n this.__renderOptions = renderOptions;\r\n this.__forceRender = renderOptions && renderOptions.force;\r\n this.callBase.apply(this, arguments);\r\n this.__renderOptions = this.__forceRender = null;\r\n return this\r\n },\r\n refresh() {\r\n this._disposeSeries();\r\n this._disposeSeriesFamilies();\r\n this._requestChange([\"CONTAINER_SIZE\", \"REFRESH_SERIES_REINIT\"])\r\n },\r\n _getMinSize() {\r\n var adaptiveLayout = this._layoutManagerOptions();\r\n return [adaptiveLayout.width, adaptiveLayout.height]\r\n },\r\n _change_REFRESH() {\r\n if (!this._changes.has(\"INIT\")) {\r\n this._doRefresh()\r\n } else {\r\n this._currentRefreshData = null\r\n }\r\n },\r\n _change_FULL_RENDER() {\r\n this._forceRender()\r\n },\r\n _change_INIT() {\r\n this._reinit()\r\n },\r\n _stopCurrentHandling() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._tracker.stopCurrentHandling()\r\n }\r\n});\r\nREFRESH_SERIES_DATA_INIT_ACTION_OPTIONS.forEach(name => {\r\n BaseChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_DATA_INIT\"\r\n});\r\nFORCE_RENDER_REFRESH_ACTION_OPTIONS.forEach(name => {\r\n BaseChart.prototype._optionChangesMap[name] = \"FORCE_RENDER\"\r\n});\r\nREFRESH_SERIES_FAMILIES_ACTION_OPTIONS.forEach(name => {\r\n BaseChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_FAMILIES\"\r\n});\r\nBaseChart.addPlugin(exportPlugin);\r\nBaseChart.addPlugin(titlePlugin);\r\nBaseChart.addPlugin(dataSourcePlugin);\r\nBaseChart.addPlugin(tooltipPlugin);\r\nBaseChart.addPlugin(loadingIndicatorPlugin);\r\nvar {\r\n _change_TITLE: _change_TITLE\r\n} = BaseChart.prototype;\r\nBaseChart.prototype._change_TITLE = function() {\r\n _change_TITLE.apply(this, arguments);\r\n this._change([\"FORCE_RENDER\"])\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/translator1d.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _Number = Number;\r\nexport function Translator1D() {\r\n this.setDomain(arguments[0], arguments[1]).setCodomain(arguments[2], arguments[3]).setInverted(false)\r\n}\r\nTranslator1D.prototype = {\r\n constructor: Translator1D,\r\n setDomain: function(domain1, domain2) {\r\n this._domain1 = _Number(domain1);\r\n this._domain2 = _Number(domain2);\r\n this._domainDelta = this._domain2 - this._domain1;\r\n return this\r\n },\r\n setCodomain: function(codomain1, codomain2) {\r\n this._codomain1 = _Number(codomain1);\r\n this._codomain2 = _Number(codomain2);\r\n this._codomainDelta = this._codomain2 - this._codomain1;\r\n return this\r\n },\r\n setInverted(state) {\r\n this.inverted = state\r\n },\r\n getDomain: function() {\r\n return [this._domain1, this._domain2]\r\n },\r\n getCodomain: function() {\r\n return [this._codomain1, this._codomain2]\r\n },\r\n getDomainStart: function() {\r\n return this._domain1\r\n },\r\n getDomainEnd: function() {\r\n return this._domain2\r\n },\r\n getCodomainStart: function() {\r\n return this._codomain1\r\n },\r\n getCodomainEnd: function() {\r\n return this._codomain2\r\n },\r\n getDomainRange: function() {\r\n return this._domainDelta\r\n },\r\n getCodomainRange: function() {\r\n return this._codomainDelta\r\n },\r\n translate: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n this.inverted && (ratio = 1 - ratio);\r\n return 0 <= ratio && ratio <= 1 ? this._codomain1 + ratio * this._codomainDelta : NaN\r\n },\r\n adjust: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n var result = NaN;\r\n if (ratio < 0) {\r\n result = this._domain1\r\n } else if (ratio > 1) {\r\n result = this._domain2\r\n } else if (0 <= ratio && ratio <= 1) {\r\n result = _Number(value)\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/gauges/theme_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport {\r\n BaseThemeManager\r\n} from \"../core/base_theme_manager\";\r\nvar ThemeManager = BaseThemeManager.inherit({\r\n ctor(options) {\r\n this.callBase.apply(this, arguments);\r\n this._subTheme = options.subTheme\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n var subTheme;\r\n if (that._subTheme) {\r\n subTheme = _extend(true, {}, that._theme[that._subTheme], that._theme);\r\n _extend(true, that._theme, subTheme)\r\n }\r\n that.callBase.apply(that, arguments)\r\n }\r\n});\r\nexport default {\r\n ThemeManager: ThemeManager\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/gauges/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport ReadyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nvar EVENT_NS = \"gauge-tooltip\";\r\nvar TOOLTIP_HIDE_DELAY = 100;\r\nvar ready = ReadyCallbacks.add;\r\nvar Tracker = Class.inherit({\r\n ctor: function(parameters) {\r\n var that = this;\r\n that._element = parameters.renderer.g().attr({\r\n class: \"dxg-tracker\",\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).linkOn(parameters.container, {\r\n name: \"tracker\",\r\n after: \"peripheral\"\r\n });\r\n that._showTooltipCallback = function() {\r\n var target = that._tooltipEvent.target;\r\n var data_target = target[\"gauge-data-target\"];\r\n var data_info = target[\"gauge-data-info\"];\r\n that._targetEvent = null;\r\n if (that._tooltipTarget !== target) {\r\n var callback = result => {\r\n result && (that._tooltipTarget = target)\r\n };\r\n callback(that._callbacks[\"tooltip-show\"](data_target, data_info, callback))\r\n }\r\n };\r\n that._hideTooltipCallback = function() {\r\n that._hideTooltipTimeout = null;\r\n that._targetEvent = null;\r\n if (that._tooltipTarget) {\r\n that._callbacks[\"tooltip-hide\"]();\r\n that._tooltipTarget = null\r\n }\r\n };\r\n that._dispose = function() {\r\n clearTimeout(that._hideTooltipTimeout);\r\n that._showTooltipCallback = that._hideTooltipCallback = that._dispose = null\r\n }\r\n },\r\n dispose: function() {\r\n this._dispose();\r\n this.deactivate();\r\n this._element.off(\".\" + EVENT_NS);\r\n this._element.linkOff();\r\n this._element = this._context = this._callbacks = null;\r\n return this\r\n },\r\n activate: function() {\r\n this._element.linkAppend();\r\n return this\r\n },\r\n deactivate: function() {\r\n this._element.linkRemove().clear();\r\n return this\r\n },\r\n attach: function(element, target, info) {\r\n element.data({\r\n \"gauge-data-target\": target,\r\n \"gauge-data-info\": info\r\n }).append(this._element);\r\n return this\r\n },\r\n detach: function(element) {\r\n element.remove();\r\n return this\r\n },\r\n setTooltipState: function(state) {\r\n this._element.off(\".\" + EVENT_NS);\r\n if (state) {\r\n var data = {\r\n tracker: this\r\n };\r\n this._element.on(addNamespace([pointerEvents.move], EVENT_NS), data, handleTooltipMouseOver).on(addNamespace([pointerEvents.out], EVENT_NS), data, handleTooltipMouseOut).on(addNamespace([pointerEvents.down], EVENT_NS), data, handleTooltipTouchStart).on(addNamespace([pointerEvents.up], EVENT_NS), data, handleTooltipTouchEnd).on(addNamespace([wheelEventName], EVENT_NS), data, handleTooltipMouseWheel)\r\n }\r\n return this\r\n },\r\n setCallbacks: function(callbacks) {\r\n this._callbacks = callbacks;\r\n return this\r\n },\r\n _showTooltip: function(event) {\r\n clearTimeout(this._hideTooltipTimeout);\r\n this._hideTooltipTimeout = null;\r\n if (this._tooltipTarget === event.target) {\r\n return\r\n }\r\n this._tooltipEvent = event;\r\n this._showTooltipCallback()\r\n },\r\n _hideTooltip: function(delay) {\r\n clearTimeout(this._hideTooltipTimeout);\r\n if (delay) {\r\n this._hideTooltipTimeout = setTimeout(this._hideTooltipCallback, delay)\r\n } else {\r\n this._hideTooltipCallback()\r\n }\r\n }\r\n});\r\nvar active_touch_tooltip_tracker = null;\r\n\r\nfunction handleTooltipMouseOver(event) {\r\n var tracker = event.data.tracker;\r\n tracker._x = event.pageX;\r\n tracker._y = event.pageY;\r\n tracker._showTooltip(event)\r\n}\r\n\r\nfunction handleTooltipMouseOut(event) {\r\n event.data.tracker._hideTooltip(TOOLTIP_HIDE_DELAY)\r\n}\r\n\r\nfunction handleTooltipMouseWheel(event) {\r\n event.data.tracker._hideTooltip()\r\n}\r\n\r\nfunction handleTooltipTouchStart(event) {\r\n var tracker = active_touch_tooltip_tracker = event.data.tracker;\r\n tracker._touch = true;\r\n handleTooltipMouseOver(event)\r\n}\r\n\r\nfunction handleTooltipTouchEnd() {\r\n active_touch_tooltip_tracker._touch = false\r\n}\r\n\r\nfunction handleDocumentTooltipTouchStart(event) {\r\n var tracker = active_touch_tooltip_tracker;\r\n if (tracker && !tracker._touch) {\r\n tracker._hideTooltip(TOOLTIP_HIDE_DELAY);\r\n active_touch_tooltip_tracker = null\r\n }\r\n}\r\nready((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace([pointerEvents.down], EVENT_NS), handleDocumentTooltipTouchStart)\r\n}));\r\nexport default Tracker;\r\n","/**\r\n * DevExtreme (esm/viz/gauges/base_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _Number = Number;\r\nimport {\r\n getAppropriateFormat as _getAppropriateFormat\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Translator1D\r\n} from \"../translators/translator1d\";\r\nvar _extend = extend;\r\nimport BaseWidget from \"../../__internal/viz/core/m_base_widget\";\r\nimport themeManagerModule from \"./theme_manager\";\r\nimport Tracker from \"./tracker\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n plugin as exportPlugin\r\n} from \"../core/export\";\r\nimport {\r\n plugin as titlePlugin\r\n} from \"../core/title\";\r\nimport {\r\n plugin as tooltipPlugin\r\n} from \"../core/tooltip\";\r\nimport {\r\n plugin as loadingIndicatorPlugin\r\n} from \"../core/loading_indicator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar _format = formatHelper.format;\r\nexport var BaseGauge = BaseWidget.inherit({\r\n _rootClassPrefix: \"dxg\",\r\n _themeSection: \"gauge\",\r\n _createThemeManager: function() {\r\n return new themeManagerModule.ThemeManager(this._getThemeManagerOptions())\r\n },\r\n _initCore: function() {\r\n var root = this._renderer.root;\r\n this._valueChangingLocker = 0;\r\n this._translator = this._factory.createTranslator();\r\n this._tracker = this._factory.createTracker({\r\n renderer: this._renderer,\r\n container: root\r\n });\r\n this._setTrackerCallbacks()\r\n },\r\n _beginValueChanging: function() {\r\n this._resetIsReady();\r\n this._onBeginUpdate();\r\n ++this._valueChangingLocker\r\n },\r\n _endValueChanging: function() {\r\n if (0 === --this._valueChangingLocker) {\r\n this._drawn()\r\n }\r\n },\r\n _setTrackerCallbacks: function() {\r\n var renderer = this._renderer;\r\n var tooltip = this._tooltip;\r\n this._tracker.setCallbacks({\r\n \"tooltip-show\": function(target, info, callback) {\r\n var tooltipParameters = target.getTooltipParameters();\r\n var offset = renderer.getRootOffset();\r\n var formatObject = _extend({\r\n value: tooltipParameters.value,\r\n valueText: tooltip.formatValue(tooltipParameters.value),\r\n color: tooltipParameters.color\r\n }, info);\r\n return tooltip.show(formatObject, {\r\n x: tooltipParameters.x + offset.left,\r\n y: tooltipParameters.y + offset.top,\r\n offset: tooltipParameters.offset\r\n }, {\r\n target: info\r\n }, void 0, callback)\r\n },\r\n \"tooltip-hide\": function() {\r\n return tooltip.hide()\r\n }\r\n })\r\n },\r\n _dispose: function() {\r\n this._cleanCore();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeCore: function() {\r\n this._themeManager.dispose();\r\n this._tracker.dispose();\r\n this._translator = this._tracker = null\r\n },\r\n _cleanCore: function() {\r\n this._tracker.deactivate();\r\n this._cleanContent()\r\n },\r\n _renderCore: function() {\r\n if (!this._isValidDomain) {\r\n return\r\n }\r\n this._renderContent();\r\n this._renderGraphicObjects();\r\n this._tracker.setTooltipState(this._tooltip.isEnabled());\r\n this._tracker.activate();\r\n this._noAnimation = false\r\n },\r\n _applyChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._resizing = this._noAnimation = false\r\n },\r\n _setContentSize: function() {\r\n var that = this;\r\n that._resizing = that._noAnimation = 2 === that._changes.count();\r\n that.callBase.apply(that, arguments)\r\n },\r\n _applySize: function(rect) {\r\n this._innerRect = {\r\n left: rect[0],\r\n top: rect[1],\r\n right: rect[2],\r\n bottom: rect[3]\r\n };\r\n var layoutCache = this._layout._cache;\r\n this._cleanCore();\r\n this._renderCore();\r\n this._layout._cache = this._layout._cache || layoutCache;\r\n return [rect[0], this._innerRect.top, rect[2], this._innerRect.bottom]\r\n },\r\n _initialChanges: [\"DOMAIN\"],\r\n _themeDependentChanges: [\"DOMAIN\"],\r\n _optionChangesMap: {\r\n subtitle: \"MOSTLY_TOTAL\",\r\n indicator: \"MOSTLY_TOTAL\",\r\n geometry: \"MOSTLY_TOTAL\",\r\n animation: \"MOSTLY_TOTAL\",\r\n startValue: \"DOMAIN\",\r\n endValue: \"DOMAIN\"\r\n },\r\n _optionChangesOrder: [\"DOMAIN\", \"MOSTLY_TOTAL\"],\r\n _change_DOMAIN: function() {\r\n this._setupDomain()\r\n },\r\n _change_MOSTLY_TOTAL: function() {\r\n this._applyMostlyTotalChange()\r\n },\r\n _updateExtraElements: noop,\r\n _setupDomain: function() {\r\n this._setupDomainCore();\r\n this._isValidDomain = isFinite(1 / (this._translator.getDomain()[1] - this._translator.getDomain()[0]));\r\n if (!this._isValidDomain) {\r\n this._incidentOccurred(\"W2301\")\r\n }\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _applyMostlyTotalChange: function() {\r\n this._setupCodomain();\r\n this._setupAnimationSettings();\r\n this._setupDefaultFormat();\r\n this._change([\"LAYOUT\"])\r\n },\r\n _setupAnimationSettings: function() {\r\n var option = this.option(\"animation\");\r\n this._animationSettings = null;\r\n if (void 0 === option || option) {\r\n option = _extend({\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }, option);\r\n if (option.enabled && option.duration > 0) {\r\n this._animationSettings = {\r\n duration: _Number(option.duration),\r\n easing: option.easing\r\n }\r\n }\r\n }\r\n this._containerBackgroundColor = this.option(\"containerBackgroundColor\") || this._themeManager.theme().containerBackgroundColor\r\n },\r\n _setupDefaultFormat: function() {\r\n var domain = this._translator.getDomain();\r\n this._defaultFormatOptions = _getAppropriateFormat(domain[0], domain[1], this._getApproximateScreenRange())\r\n },\r\n _setupDomainCore: null,\r\n _calculateSize: null,\r\n _cleanContent: null,\r\n _renderContent: null,\r\n _setupCodomain: null,\r\n _getApproximateScreenRange: null,\r\n _factory: {\r\n createTranslator: function() {\r\n return new Translator1D\r\n },\r\n createTracker: function(parameters) {\r\n return new Tracker(parameters)\r\n }\r\n }\r\n});\r\nexport var formatValue = function(value, options, extra) {\r\n if (Object.is(value, -0)) {\r\n value = 0\r\n }\r\n options = options || {};\r\n var text = _format(value, options.format);\r\n var formatObject;\r\n if (\"function\" === typeof options.customizeText) {\r\n formatObject = _extend({\r\n value: value,\r\n valueText: text\r\n }, extra);\r\n return String(options.customizeText.call(formatObject, formatObject))\r\n }\r\n return text\r\n};\r\nexport var getSampleText = function(translator, options) {\r\n var text1 = formatValue(translator.getDomainStart(), options);\r\n var text2 = formatValue(translator.getDomainEnd(), options);\r\n return text1.length >= text2.length ? text1 : text2\r\n};\r\nexport function compareArrays(array1, array2) {\r\n return array1 && array2 && array1.length === array2.length && compareArraysElements(array1, array2)\r\n}\r\n\r\nfunction compareArraysElements(array1, array2) {\r\n var i;\r\n var ii = array1.length;\r\n var array1ValueIsNaN;\r\n var array2ValueIsNaN;\r\n for (i = 0; i < ii; ++i) {\r\n array1ValueIsNaN = array1[i] !== array1[i];\r\n array2ValueIsNaN = array2[i] !== array2[i];\r\n if (array1ValueIsNaN && array2ValueIsNaN) {\r\n continue\r\n }\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\nBaseGauge.addPlugin(exportPlugin);\r\nBaseGauge.addPlugin(titlePlugin);\r\nBaseGauge.addPlugin(tooltipPlugin);\r\nBaseGauge.addPlugin(loadingIndicatorPlugin);\r\nvar _setTooltipOptions = BaseGauge.prototype._setTooltipOptions;\r\nBaseGauge.prototype._setTooltipOptions = function() {\r\n _setTooltipOptions.apply(this, arguments);\r\n this._tracker && this._tracker.setTooltipState(this._tooltip.isEnabled())\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/smart_formatter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isExponential,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n adjust,\r\n getPrecision,\r\n getExponent\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getAdjustedLog10 as log10\r\n} from \"../core/utils\";\r\nvar _format = formatHelper.format;\r\nvar {\r\n abs: abs,\r\n floor: floor\r\n} = Math;\r\nvar EXPONENTIAL = \"exponential\";\r\nvar formats = [\"fixedPoint\", \"thousands\", \"millions\", \"billions\", \"trillions\", EXPONENTIAL];\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\nvar INTERVALS_MAP = {\r\n week: \"day\",\r\n quarter: \"month\",\r\n shorttime: \"hour\",\r\n longtime: \"second\"\r\n};\r\n\r\nfunction patchFirstTickDiff(differences, tickFormatIndex) {\r\n for (var i = tickFormatIndex; i < dateUnitIntervals.length - 1; i++) {\r\n var dateUnitInterval = dateUnitIntervals[i];\r\n if (i === tickFormatIndex) {\r\n setDateUnitInterval(differences, tickFormatIndex + (differences.millisecond ? 2 : 1));\r\n break\r\n } else if (differences[dateUnitInterval] && differences.count > 1) {\r\n resetDateUnitInterval(differences, i);\r\n break\r\n }\r\n }\r\n}\r\n\r\nfunction patchTickDiff(differences, tickFormatIndex) {\r\n var patched = false;\r\n for (var i = dateUnitIntervals.length - 1; i >= tickFormatIndex; i--) {\r\n var dateUnitInterval = dateUnitIntervals[i];\r\n if (differences[dateUnitInterval]) {\r\n if (i - tickFormatIndex > 1) {\r\n for (var j = 0; j <= tickFormatIndex; j++) {\r\n resetDateUnitInterval(differences, j);\r\n patched = true\r\n }\r\n break\r\n }\r\n }\r\n }\r\n return patched\r\n}\r\n\r\nfunction getDatesDifferences(prevDate, curDate, nextDate, tickIntervalFormat) {\r\n tickIntervalFormat = INTERVALS_MAP[tickIntervalFormat] || tickIntervalFormat;\r\n var tickFormatIndex = dateUnitIntervals.indexOf(tickIntervalFormat);\r\n if (nextDate) {\r\n var nextDifferences = dateUtils.getDatesDifferences(curDate, nextDate);\r\n if (nextDifferences[tickIntervalFormat]) {\r\n patchFirstTickDiff(nextDifferences, tickFormatIndex)\r\n }\r\n return nextDifferences\r\n } else {\r\n var prevDifferences = dateUtils.getDatesDifferences(prevDate, curDate);\r\n var patched = patchTickDiff(prevDifferences, tickFormatIndex);\r\n if (!patched && 1 === prevDifferences.count) {\r\n setDateUnitInterval(prevDifferences, tickFormatIndex)\r\n }\r\n return prevDifferences\r\n }\r\n}\r\n\r\nfunction resetDateUnitInterval(differences, intervalIndex) {\r\n var dateUnitInterval = dateUnitIntervals[intervalIndex];\r\n if (differences[dateUnitInterval]) {\r\n differences[dateUnitInterval] = false;\r\n differences.count--\r\n }\r\n}\r\n\r\nfunction setDateUnitInterval(differences, intervalIndex) {\r\n var dateUnitInterval = dateUnitIntervals[intervalIndex];\r\n if (false === differences[dateUnitInterval]) {\r\n differences[dateUnitInterval] = true;\r\n differences.count++\r\n }\r\n}\r\n\r\nfunction getNoZeroIndex(str) {\r\n return str.length - parseInt(str).toString().length\r\n}\r\n\r\nfunction getTransitionTickIndex(ticks, value) {\r\n var i;\r\n var curDiff;\r\n var minDiff;\r\n var nearestTickIndex = 0;\r\n minDiff = abs(value - ticks[0]);\r\n for (i = 1; i < ticks.length; i++) {\r\n curDiff = abs(value - ticks[i]);\r\n if (curDiff < minDiff) {\r\n minDiff = curDiff;\r\n nearestTickIndex = i\r\n }\r\n }\r\n return nearestTickIndex\r\n}\r\n\r\nfunction splitDecimalNumber(value) {\r\n return value.toString().split(\".\")\r\n}\r\n\r\nfunction createFormat(type) {\r\n var formatter;\r\n if (isFunction(type)) {\r\n formatter = type;\r\n type = null\r\n }\r\n return {\r\n type: type,\r\n formatter: formatter\r\n }\r\n}\r\n\r\nfunction formatLogarithmicNumber(tick) {\r\n var log10Tick = log10(abs(tick));\r\n var type;\r\n if (log10Tick > 0) {\r\n type = formats[floor(log10Tick / 3)] || EXPONENTIAL\r\n } else if (log10Tick < -4) {\r\n type = EXPONENTIAL\r\n } else {\r\n return _format(adjust(tick))\r\n }\r\n return _format(tick, {\r\n type: type,\r\n precision: 0\r\n })\r\n}\r\n\r\nfunction getDateTimeFormat(tick, _ref) {\r\n var {\r\n showTransition: showTransition,\r\n ticks: ticks,\r\n tickInterval: tickInterval\r\n } = _ref;\r\n var typeFormat = dateUtils.getDateFormatByTickInterval(tickInterval);\r\n var prevDateIndex;\r\n var nextDateIndex;\r\n if (showTransition && ticks.length) {\r\n var indexOfTick = ticks.map(Number).indexOf(+tick);\r\n if (1 === ticks.length && 0 === indexOfTick) {\r\n typeFormat = formatHelper.getDateFormatByTicks(ticks)\r\n } else {\r\n if (-1 === indexOfTick) {\r\n prevDateIndex = getTransitionTickIndex(ticks, tick)\r\n } else {\r\n prevDateIndex = 0 === indexOfTick ? ticks.length - 1 : indexOfTick - 1;\r\n nextDateIndex = 0 === indexOfTick ? 1 : -1\r\n }\r\n var datesDifferences = getDatesDifferences(ticks[prevDateIndex], tick, ticks[nextDateIndex], typeFormat);\r\n typeFormat = formatHelper.getDateFormatByDifferences(datesDifferences, typeFormat)\r\n }\r\n }\r\n return createFormat(typeFormat)\r\n}\r\n\r\nfunction getFormatExponential(tick, tickInterval) {\r\n var stringTick = abs(tick).toString();\r\n if (isExponential(tick)) {\r\n return Math.max(abs(getExponent(tick) - getExponent(tickInterval)), abs(getPrecision(tick) - getPrecision(tickInterval)))\r\n } else {\r\n return abs(getNoZeroIndex(stringTick.split(\".\")[1]) - getExponent(tickInterval) + 1)\r\n }\r\n}\r\n\r\nfunction getFormatWithModifier(tick, tickInterval) {\r\n var tickIntervalIndex = floor(log10(tickInterval));\r\n var tickIndex;\r\n var precision = 0;\r\n var actualIndex = tickIndex = floor(log10(abs(tick)));\r\n if (tickIndex - tickIntervalIndex >= 2) {\r\n actualIndex = tickIntervalIndex\r\n }\r\n var indexOfFormat = floor(actualIndex / 3);\r\n var offset = 3 * indexOfFormat;\r\n if (indexOfFormat < 0) {\r\n indexOfFormat = 0\r\n }\r\n var typeFormat = formats[indexOfFormat] || formats[formats.length - 1];\r\n if (offset > 0) {\r\n var separatedTickInterval = splitDecimalNumber(tickInterval / Math.pow(10, offset));\r\n if (separatedTickInterval[1]) {\r\n precision = separatedTickInterval[1].length\r\n }\r\n }\r\n return {\r\n precision: precision,\r\n type: typeFormat\r\n }\r\n}\r\n\r\nfunction getHighDiffFormat(diff) {\r\n var stop = false;\r\n for (var i in diff) {\r\n if (true === diff[i] || \"hour\" === i || stop) {\r\n diff[i] = false;\r\n stop = true\r\n } else if (false === diff[i]) {\r\n diff[i] = true\r\n }\r\n }\r\n return createFormat(formatHelper.getDateFormatByDifferences(diff))\r\n}\r\n\r\nfunction getHighAndSelfDiffFormat(diff, interval) {\r\n var stop = false;\r\n for (var i in diff) {\r\n if (stop) {\r\n diff[i] = false\r\n } else if (i === interval) {\r\n stop = true\r\n } else {\r\n diff[i] = true\r\n }\r\n }\r\n return createFormat(formatHelper.getDateFormatByDifferences(diff))\r\n}\r\n\r\nfunction formatDateRange(startValue, endValue, tickInterval) {\r\n var diff = getDatesDifferences(startValue, endValue);\r\n var typeFormat = dateUtils.getDateFormatByTickInterval(tickInterval);\r\n var diffFormatType = formatHelper.getDateFormatByDifferences(diff, typeFormat);\r\n var diffFormat = createFormat(diffFormatType);\r\n var values = [];\r\n if (tickInterval in diff) {\r\n var rangeFormat = getHighAndSelfDiffFormat(getDatesDifferences(startValue, endValue), tickInterval);\r\n var value = _format(startValue, rangeFormat);\r\n if (value) {\r\n values.push(value)\r\n }\r\n } else {\r\n var _rangeFormat = getHighDiffFormat(getDatesDifferences(startValue, endValue));\r\n var highValue = _format(startValue, _rangeFormat);\r\n if (highValue) {\r\n values.push(highValue)\r\n }\r\n values.push(\"\".concat(_format(startValue, diffFormat), \" - \").concat(_format(endValue, diffFormat)))\r\n }\r\n return values.join(\", \")\r\n}\r\n\r\nfunction processDateInterval(interval) {\r\n if (isObject(interval)) {\r\n var dateUnits = Object.keys(interval);\r\n var sum = dateUnits.reduce((sum, k) => interval[k] + sum, 0);\r\n if (1 === sum) {\r\n var dateUnit = dateUnits.filter(k => 1 === interval[k])[0];\r\n return dateUnit.slice(0, dateUnit.length - 1)\r\n }\r\n }\r\n return interval\r\n}\r\nexport function smartFormatter(tick, options) {\r\n var tickInterval = options.tickInterval;\r\n var stringTick = abs(tick).toString();\r\n var format = options.labelOptions.format;\r\n var ticks = options.ticks;\r\n var isLogarithmic = \"logarithmic\" === options.type;\r\n if (1 === ticks.length && 0 === ticks.indexOf(tick) && !isDefined(tickInterval)) {\r\n tickInterval = abs(tick) >= 1 ? 1 : adjust(1 - abs(tick), tick)\r\n }\r\n if (Object.is(tick, -0)) {\r\n tick = 0\r\n }\r\n if (!isDefined(format) && \"discrete\" !== options.type && tick && (10 === options.logarithmBase || !isLogarithmic)) {\r\n if (\"datetime\" !== options.dataType && isDefined(tickInterval)) {\r\n if (ticks.length && -1 === ticks.indexOf(tick)) {\r\n var indexOfTick = getTransitionTickIndex(ticks, tick);\r\n tickInterval = adjust(abs(tick - ticks[indexOfTick]), tick)\r\n }\r\n if (isLogarithmic) {\r\n return formatLogarithmicNumber(tick)\r\n } else {\r\n var separatedTickInterval = splitDecimalNumber(tickInterval);\r\n if (separatedTickInterval < 2) {\r\n separatedTickInterval = splitDecimalNumber(tick)\r\n }\r\n if (separatedTickInterval.length > 1 && !isExponential(tickInterval)) {\r\n format = {\r\n type: formats[0],\r\n precision: separatedTickInterval[1].length\r\n }\r\n } else if (isExponential(tickInterval) && (-1 !== stringTick.indexOf(\".\") || isExponential(tick))) {\r\n format = {\r\n type: EXPONENTIAL,\r\n precision: getFormatExponential(tick, tickInterval)\r\n }\r\n } else {\r\n format = getFormatWithModifier(tick, tickInterval)\r\n }\r\n }\r\n } else if (\"datetime\" === options.dataType) {\r\n format = getDateTimeFormat(tick, options)\r\n }\r\n }\r\n return _format(tick, format)\r\n}\r\nexport function formatRange(_ref2) {\r\n var {\r\n startValue: startValue,\r\n endValue: endValue,\r\n tickInterval: tickInterval,\r\n argumentFormat: argumentFormat,\r\n axisOptions: {\r\n dataType: dataType,\r\n type: type,\r\n logarithmBase: logarithmBase\r\n }\r\n } = _ref2;\r\n if (\"discrete\" === type) {\r\n return \"\"\r\n }\r\n if (\"datetime\" === dataType) {\r\n return formatDateRange(startValue, endValue, processDateInterval(tickInterval))\r\n }\r\n var formatOptions = {\r\n ticks: [],\r\n type: type,\r\n dataType: dataType,\r\n tickInterval: tickInterval,\r\n logarithmBase: logarithmBase,\r\n labelOptions: {\r\n format: argumentFormat\r\n }\r\n };\r\n return \"\".concat(smartFormatter(startValue, formatOptions), \" - \").concat(smartFormatter(endValue, formatOptions))\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/axes_constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map as _map\r\n} from \"../core/utils\";\r\nexport default {\r\n logarithmic: \"logarithmic\",\r\n discrete: \"discrete\",\r\n numeric: \"numeric\",\r\n left: \"left\",\r\n right: \"right\",\r\n top: \"top\",\r\n bottom: \"bottom\",\r\n center: \"center\",\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\",\r\n convertTicksToValues: function(ticks) {\r\n return _map(ticks || [], (function(item) {\r\n return item.value\r\n }))\r\n },\r\n validateOverlappingMode: function(mode) {\r\n return \"ignore\" === mode || \"none\" === mode ? mode : \"hide\"\r\n },\r\n getTicksCountInRange: function(ticks, valueKey, range) {\r\n var i = 1;\r\n if (ticks.length > 1) {\r\n for (; i < ticks.length; i++) {\r\n if (Math.abs(ticks[i].coords[valueKey] - ticks[0].coords[valueKey]) >= range) {\r\n break\r\n }\r\n }\r\n }\r\n return i\r\n },\r\n areLabelsOverlap: function(bBox1, bBox2, spacing, alignment) {\r\n var horizontalInverted = bBox1.x > bBox2.x;\r\n var verticalInverted = bBox1.y > bBox2.y;\r\n var x1 = bBox1.x;\r\n var x2 = bBox2.x;\r\n var width1 = bBox1.width;\r\n var width2 = bBox2.width;\r\n if (\"left\" === alignment) {\r\n x1 += width1 / 2;\r\n x2 += width2 / 2\r\n } else if (\"right\" === alignment) {\r\n x1 -= width1 / 2;\r\n x2 -= width2 / 2\r\n }\r\n var hasHorizontalOverlapping = horizontalInverted ? x2 + width2 + spacing > x1 : x1 + width1 + spacing > x2;\r\n var hasVerticalOverlapping = verticalInverted ? bBox2.y + bBox2.height > bBox1.y : bBox1.y + bBox1.height > bBox2.y;\r\n return hasHorizontalOverlapping && hasVerticalOverlapping\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/tick_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getLogExt as getLog,\r\n getCategoriesInfo,\r\n raiseToExt,\r\n getLog as mathLog,\r\n raiseTo as mathRaise\r\n} from \"../core/utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar convertDateUnitToMilliseconds = dateUtils.convertDateUnitToMilliseconds;\r\nvar dateToMilliseconds = dateUtils.dateToMilliseconds;\r\nvar math = Math;\r\nvar mathAbs = math.abs;\r\nvar mathFloor = math.floor;\r\nvar mathCeil = math.ceil;\r\nvar mathPow = math.pow;\r\nvar NUMBER_MULTIPLIERS = [1, 2, 2.5, 5];\r\nvar LOGARITHMIC_MULTIPLIERS = [1, 2, 3, 5];\r\nvar DATETIME_MULTIPLIERS = {\r\n millisecond: [1, 2, 5, 10, 25, 50, 100, 250, 500],\r\n second: [1, 2, 3, 5, 10, 15, 20, 30],\r\n minute: [1, 2, 3, 5, 10, 15, 20, 30],\r\n hour: [1, 2, 3, 4, 6, 8, 12],\r\n day: [1, 2],\r\n week: [1, 2],\r\n month: [1, 2, 3, 6]\r\n};\r\nvar DATETIME_MULTIPLIERS_WITH_BIG_WEEKEND = extend({}, DATETIME_MULTIPLIERS, {\r\n day: [1]\r\n});\r\nvar DATETIME_MINOR_MULTIPLIERS = {\r\n millisecond: [1, 2, 5, 10, 25, 50, 100, 250, 500],\r\n second: [1, 2, 3, 5, 10, 15, 20, 30],\r\n minute: [1, 2, 3, 5, 10, 15, 20, 30],\r\n hour: [1, 2, 3, 4, 6, 8, 12],\r\n day: [1, 2, 3, 7, 14],\r\n month: [1, 2, 3, 6]\r\n};\r\nvar MINOR_DELIMITERS = [2, 4, 5, 8, 10];\r\nvar VISIBILITY_DELIMITER = 3;\r\nvar MINUTE = 6e4;\r\n\r\nfunction dummyGenerator(options) {\r\n return function(data, screenDelta, tickInterval, forceTickInterval) {\r\n var count = mathFloor(screenDelta / options.axisDivisionFactor);\r\n count = count < 1 ? 1 : count;\r\n var interval = screenDelta / count;\r\n return {\r\n ticks: interval > 0 ? Array.apply(null, new Array(count + 1)).map((_, i) => interval * i) : [],\r\n tickInterval: interval\r\n }\r\n }\r\n}\r\n\r\nfunction discreteGenerator(options) {\r\n return function(data, screenDelta, tickInterval, forceTickInterval) {\r\n var categories = getCategoriesInfo(data.categories, data.min, data.max).categories;\r\n return {\r\n ticks: categories,\r\n tickInterval: mathCeil(categories.length * options.axisDivisionFactor / screenDelta)\r\n }\r\n }\r\n}\r\nvar getValue = value => value;\r\nvar getLogValue = (base, allowNegatives, linearThreshold) => value => getLog(value, base, allowNegatives, linearThreshold);\r\nvar raiseTo = (base, allowNegatives, linearThreshold) => value => raiseToExt(value, base, allowNegatives, linearThreshold);\r\nvar mathRaiseTo = base => value => mathRaise(value, base);\r\nvar logAbsValue = base => value => 0 === value ? 0 : mathLog(mathAbs(value), base);\r\nvar correctValueByInterval = (post, round, getValue) => (value, interval) => adjust(post(round(adjust(getValue(value) / interval)) * interval));\r\n\r\nfunction correctMinValueByEndOnTick(floorFunc, ceilFunc, resolveEndOnTick, endOnTick) {\r\n if (isDefined(endOnTick)) {\r\n return endOnTick ? floorFunc : ceilFunc\r\n }\r\n return function(value, interval, businessViewInfo, forceEndOnTick) {\r\n var floorTickValue = floorFunc(value, interval);\r\n if (value - floorTickValue === 0 || !isDefined(businessViewInfo) || resolveEndOnTick(value, floorTickValue, interval, businessViewInfo) || forceEndOnTick) {\r\n return floorTickValue\r\n }\r\n return ceilFunc(value, interval)\r\n }\r\n}\r\n\r\nfunction resolveEndOnTick(curValue, tickValue, interval, businessViewInfo) {\r\n var prevTickDataDiff = interval - mathAbs(tickValue - curValue);\r\n var intervalCount = math.max(mathCeil(businessViewInfo.businessDelta / interval), 2);\r\n var businessRatio = businessViewInfo.screenDelta / (intervalCount * interval);\r\n var potentialTickScreenDiff = math.round(businessRatio * prevTickDataDiff);\r\n var delimiterFactor = getLog(businessRatio * interval / businessViewInfo.axisDivisionFactor, 2) + 1;\r\n var delimiterMultiplier = (businessViewInfo.isSpacedMargin ? 2 : 1) * delimiterFactor;\r\n var screenDelimiter = math.round(VISIBILITY_DELIMITER * delimiterMultiplier);\r\n return businessViewInfo.businessDelta > businessViewInfo.interval && potentialTickScreenDiff >= screenDelimiter\r\n}\r\n\r\nfunction resolveEndOnTickLog(base) {\r\n return function(curValue, tickValue, interval, businessViewInfo) {\r\n return resolveEndOnTick(getLog(curValue, base), getLog(tickValue, base), interval, businessViewInfo)\r\n }\r\n}\r\n\r\nfunction resolveEndOnTickDate(curValue, tickValue, interval, businessViewInfo) {\r\n return resolveEndOnTick(curValue.valueOf(), tickValue.valueOf(), dateToMilliseconds(interval), businessViewInfo)\r\n}\r\n\r\nfunction getBusinessDelta(data, breaks) {\r\n var spacing = 0;\r\n if (breaks) {\r\n spacing = breaks.reduce((prev, item) => prev + (item.to - item.from), 0)\r\n }\r\n return mathAbs(data.max - data.min - spacing)\r\n}\r\n\r\nfunction getBusinessDeltaLog(base, allowNegatives, linearThreshold) {\r\n var getLog = getLogValue(base, allowNegatives, linearThreshold);\r\n return function(data, breaks) {\r\n var spacing = 0;\r\n if (breaks) {\r\n spacing = breaks.reduce((prev, item) => prev + mathAbs(getLog(item.to / item.from)), 0)\r\n }\r\n return mathCeil(mathAbs(getLog(data.max) - getLog(data.min)) - spacing)\r\n }\r\n}\r\n\r\nfunction getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor, addTickCount) {\r\n var count = screenDelta / axisDivisionFactor - (addTickCount || 0);\r\n count = count < 1 ? 1 : count;\r\n return businessDelta / count\r\n}\r\n\r\nfunction getMultiplierFactor(interval, factorDelta) {\r\n return mathPow(10, mathFloor(getLog(interval, 10)) + (factorDelta || 0))\r\n}\r\n\r\nfunction calculateTickInterval(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, addTickCount, _, minTickInterval) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor, addTickCount);\r\n var result = 1;\r\n var onlyIntegers = false === allowDecimals;\r\n if (!forceTickInterval || !tickInterval) {\r\n if (interval >= 1 || !onlyIntegers && interval > 0) {\r\n result = adjustInterval(interval, multipliers, onlyIntegers)\r\n }\r\n if (!tickInterval || !forceTickInterval && tickInterval < result) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustInterval(minTickInterval, multipliers, onlyIntegers);\r\n if (minTickInterval > tickInterval) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction adjustInterval(interval, multipliers, onlyIntegers) {\r\n var factor = getMultiplierFactor(interval, -1);\r\n var result = 1;\r\n multipliers = multipliers || NUMBER_MULTIPLIERS;\r\n if (interval > 0) {\r\n interval /= factor;\r\n result = multipliers.concat(10 * multipliers[0]).map(m => 10 * m).reduce((r, m) => {\r\n if (.1 === factor && onlyIntegers && 25 === m) {\r\n return r\r\n }\r\n return r < interval ? m : r\r\n }, 0);\r\n result = adjust(result * factor, factor)\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateMinorTickInterval(businessDelta, screenDelta, tickInterval, axisDivisionFactor) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor);\r\n return tickInterval || MINOR_DELIMITERS.reduce((r, d) => {\r\n var cur = businessDelta / d;\r\n return cur >= interval ? cur : r\r\n }, 0)\r\n}\r\n\r\nfunction getCalculateTickIntervalLog(skipCalculationLimits) {\r\n return function(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, _, __, minTickInterval) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor);\r\n var result = 0;\r\n var adjustInterval = getAdjustIntervalLog(skipCalculationLimits);\r\n if (!forceTickInterval || !tickInterval) {\r\n if (interval > 0) {\r\n result = adjustInterval(interval, multipliers)\r\n }\r\n if (!tickInterval || !forceTickInterval && tickInterval < result) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustInterval(minTickInterval, multipliers);\r\n if (minTickInterval > tickInterval) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n }\r\n}\r\n\r\nfunction getAdjustIntervalLog(skipCalculationLimits) {\r\n return function(interval, multipliers) {\r\n var factor = getMultiplierFactor(interval);\r\n multipliers = multipliers || LOGARITHMIC_MULTIPLIERS;\r\n if (!skipCalculationLimits && factor < 1) {\r\n factor = 1\r\n }\r\n return multipliers.concat(10 * multipliers[0]).reduce((r, m) => r < interval ? m * factor : r, 0)\r\n }\r\n}\r\n\r\nfunction getDataTimeMultipliers(gapSize) {\r\n if (gapSize && gapSize > 2) {\r\n return DATETIME_MULTIPLIERS_WITH_BIG_WEEKEND\r\n } else {\r\n return DATETIME_MULTIPLIERS\r\n }\r\n}\r\n\r\nfunction numbersReducer(interval, key) {\r\n return function(r, m) {\r\n if (!r && interval <= convertDateUnitToMilliseconds(key, m)) {\r\n r = {};\r\n r[key + \"s\"] = m\r\n }\r\n return r\r\n }\r\n}\r\n\r\nfunction yearsReducer(interval, factor) {\r\n return function(r, m) {\r\n var years = factor * m;\r\n if (!r && interval <= convertDateUnitToMilliseconds(\"year\", years) && 2.5 !== years) {\r\n r = {\r\n years: years\r\n }\r\n }\r\n return r\r\n }\r\n}\r\n\r\nfunction calculateTickIntervalDateTime(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, addTickCount, gapSize, minTickInterval) {\r\n if (!forceTickInterval || !tickInterval) {\r\n var result = adjustIntervalDateTime(getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor), multipliers, null, gapSize);\r\n if (!tickInterval || !forceTickInterval && dateToMilliseconds(tickInterval) <= dateToMilliseconds(result)) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustIntervalDateTime(minTickInterval, multipliers, null, gapSize);\r\n if (dateToMilliseconds(minTickInterval) > dateToMilliseconds(tickInterval)) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction adjustIntervalDateTime(interval, multipliers, _, gapSize) {\r\n var result;\r\n multipliers = multipliers || getDataTimeMultipliers(gapSize);\r\n for (var key in multipliers) {\r\n result = multipliers[key].reduce(numbersReducer(interval, key), result);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!result) {\r\n for (var factor = 1;; factor *= 10) {\r\n result = NUMBER_MULTIPLIERS.reduce(yearsReducer(interval, factor), result);\r\n if (result) {\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateMinorTickIntervalDateTime(businessDelta, screenDelta, tickInterval, axisDivisionFactor) {\r\n return calculateTickIntervalDateTime(businessDelta, screenDelta, tickInterval, true, axisDivisionFactor, DATETIME_MINOR_MULTIPLIERS)\r\n}\r\n\r\nfunction getTickIntervalByCustomTicks(getValue, postProcess) {\r\n return ticks => ticks ? postProcess(mathAbs(adjust(getValue(ticks[1]) - getValue(ticks[0])))) || void 0 : void 0\r\n}\r\n\r\nfunction addInterval(value, interval, isNegative) {\r\n return dateUtils.addInterval(value, interval, isNegative)\r\n}\r\n\r\nfunction addIntervalLog(log, raise) {\r\n return (value, interval, isNegative) => raise(addInterval(log(value), interval, isNegative))\r\n}\r\n\r\nfunction addIntervalDate(value, interval, isNegative) {\r\n return addInterval(value, interval, isNegative)\r\n}\r\n\r\nfunction addIntervalWithBreaks(addInterval, breaks, correctValue) {\r\n breaks = breaks.filter(b => !b.gapSize);\r\n return function(value, interval, isNegative) {\r\n var breakSize;\r\n value = addInterval(value, interval, isNegative);\r\n if (!breaks.every(item => {\r\n if (value >= addInterval(item.from, interval) && addInterval(value, interval) < item.to) {\r\n breakSize = item.to - item.from - 2 * (addInterval(item.from, interval) - item.from)\r\n }\r\n return !breakSize\r\n })) {\r\n value = correctValue(addInterval(value, breakSize), interval)\r\n }\r\n return value\r\n }\r\n}\r\n\r\nfunction calculateTicks(addInterval, correctMinValue, adjustInterval, resolveEndOnTick) {\r\n return function(data, tickInterval, endOnTick, gaps, breaks, businessDelta, screenDelta, axisDivisionFactor, generateExtraTick) {\r\n var correctTickValue = correctTickValueOnGapSize(addInterval, gaps);\r\n var min = data.min;\r\n var max = data.max;\r\n var businessViewInfo = {\r\n screenDelta: screenDelta,\r\n businessDelta: businessDelta,\r\n axisDivisionFactor: axisDivisionFactor,\r\n isSpacedMargin: data.isSpacedMargin,\r\n interval: tickInterval\r\n };\r\n var cur = correctMinValue(min, tickInterval, businessViewInfo);\r\n var ticks = [];\r\n if (null !== breaks && void 0 !== breaks && breaks.length) {\r\n addInterval = addIntervalWithBreaks(addInterval, breaks, correctMinValue)\r\n }\r\n if (cur > max) {\r\n cur = correctMinValue(min, adjustInterval(businessDelta / 2), businessViewInfo);\r\n if (cur > max) {\r\n endOnTick = true;\r\n cur = correctMinValue(min, tickInterval, businessViewInfo, endOnTick)\r\n }\r\n }\r\n cur = correctTickValue(cur);\r\n var prev;\r\n while (cur < max && cur !== prev || generateExtraTick && cur <= max) {\r\n ticks.push(cur);\r\n prev = cur;\r\n cur = correctTickValue(addInterval(cur, tickInterval))\r\n }\r\n if (endOnTick || cur - max === 0 || !isDefined(endOnTick) && resolveEndOnTick(max, cur, tickInterval, businessViewInfo)) {\r\n ticks.push(cur)\r\n }\r\n return ticks\r\n }\r\n}\r\n\r\nfunction calculateMinorTicks(updateTickInterval, addInterval, correctMinValue, correctTickValue, ceil) {\r\n return function(min, max, majorTicks, minorTickInterval, tickInterval, breaks, maxCount) {\r\n var factor = tickInterval / minorTickInterval;\r\n var lastMajor = majorTicks[majorTicks.length - 1];\r\n var firstMajor = majorTicks[0];\r\n var tickBalance = maxCount - 1;\r\n if (null !== breaks && void 0 !== breaks && breaks.length) {\r\n addInterval = addIntervalWithBreaks(addInterval, breaks, correctMinValue)\r\n }\r\n minorTickInterval = updateTickInterval(minorTickInterval, firstMajor, firstMajor, factor);\r\n if (0 === minorTickInterval) {\r\n return []\r\n }\r\n var cur = correctTickValue(correctMinValue(min, tickInterval, min), minorTickInterval);\r\n minorTickInterval = updateTickInterval(minorTickInterval, firstMajor, cur, factor);\r\n var ticks = [];\r\n while (cur < firstMajor && (!tickBalance || tickBalance > 0)) {\r\n cur >= min && ticks.push(cur);\r\n tickBalance--;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n var middleTicks = majorTicks.reduce((r, tick) => {\r\n tickBalance = maxCount - 1;\r\n if (null === r.prevTick) {\r\n r.prevTick = tick;\r\n return r\r\n }\r\n minorTickInterval = updateTickInterval(minorTickInterval, tick, r.prevTick, factor);\r\n var cur = correctTickValue(r.prevTick, minorTickInterval);\r\n while (cur < tick && (!tickBalance || tickBalance > 0)) {\r\n cur !== r.prevTick && r.minors.push(cur);\r\n tickBalance--;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n r.prevTick = tick;\r\n return r\r\n }, {\r\n prevTick: null,\r\n minors: []\r\n });\r\n ticks = ticks.concat(middleTicks.minors);\r\n var maxValue = ceil(max, tickInterval, min);\r\n minorTickInterval = updateTickInterval(minorTickInterval, maxValue, maxValue, factor);\r\n cur = correctTickValue(lastMajor, minorTickInterval);\r\n var prev;\r\n while (cur < max && cur !== prev) {\r\n ticks.push(cur);\r\n prev = cur;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n if (lastMajor - max !== 0 && cur - max === 0) {\r\n ticks.push(cur)\r\n }\r\n return ticks\r\n }\r\n}\r\n\r\nfunction filterTicks(ticks, breaks) {\r\n if (breaks.length) {\r\n var result = breaks.reduce((result, b) => {\r\n var tmpTicks = [];\r\n var i;\r\n for (i = result[1]; i < ticks.length; i++) {\r\n var tickValue = ticks[i];\r\n if (tickValue < b.from) {\r\n tmpTicks.push(tickValue)\r\n }\r\n if (tickValue >= b.to) {\r\n break\r\n }\r\n }\r\n return [result[0].concat(tmpTicks), i]\r\n }, [\r\n [], 0\r\n ]);\r\n return result[0].concat(ticks.slice(result[1]))\r\n }\r\n return ticks\r\n}\r\n\r\nfunction correctTickValueOnGapSize(addInterval, breaks) {\r\n return function(value) {\r\n var gapSize;\r\n if (!breaks.every(item => {\r\n if (value >= item.from && value < item.to) {\r\n gapSize = item.gapSize\r\n }\r\n return !gapSize\r\n })) {\r\n value = addInterval(value, gapSize)\r\n }\r\n return value\r\n }\r\n}\r\n\r\nfunction generator(options, getBusinessDelta, calculateTickInterval, calculateMinorTickInterval, getMajorTickIntervalByCustomTicks, getMinorTickIntervalByCustomTicks, convertTickInterval, calculateTicks, calculateMinorTicks, processScaleBreaks) {\r\n function correctUserTickInterval(tickInterval, businessDelta, limit) {\r\n if (tickInterval && businessDelta / convertTickInterval(tickInterval) >= limit + 1) {\r\n options.incidentOccurred(\"W2003\");\r\n tickInterval = void 0\r\n }\r\n return tickInterval\r\n }\r\n return function(data, screenDelta, tickInterval, forceTickInterval, customTicks, minorTickInterval, minorTickCount, breaks) {\r\n customTicks = customTicks || {};\r\n var businessDelta = getBusinessDelta(data, breaks);\r\n var result = function(customTicks) {\r\n return {\r\n tickInterval: getMajorTickIntervalByCustomTicks(customTicks.majors),\r\n ticks: customTicks.majors || [],\r\n minorTickInterval: getMinorTickIntervalByCustomTicks(customTicks.minors),\r\n minorTicks: customTicks.minors || []\r\n }\r\n }(customTicks);\r\n if (!isNaN(businessDelta)) {\r\n if (0 === businessDelta && !customTicks.majors) {\r\n result.ticks = [data.min]\r\n } else {\r\n result = function(ticks, data, businessDelta, screenDelta, tickInterval, forceTickInterval, customTicks, breaks) {\r\n if (customTicks.majors) {\r\n ticks.breaks = breaks;\r\n return ticks\r\n }\r\n var gaps = breaks.filter(b => b.gapSize);\r\n var majorTicks;\r\n tickInterval = options.skipCalculationLimits ? tickInterval : correctUserTickInterval(tickInterval, businessDelta, screenDelta);\r\n tickInterval = calculateTickInterval(businessDelta, screenDelta, tickInterval, forceTickInterval, options.axisDivisionFactor, options.numberMultipliers, options.allowDecimals, breaks.length, gaps[0] && gaps[0].gapSize.days, options.minTickInterval);\r\n if (!options.skipTickGeneration) {\r\n majorTicks = calculateTicks(data, tickInterval, options.endOnTick, gaps, breaks, businessDelta, screenDelta, options.axisDivisionFactor, options.generateExtraTick);\r\n breaks = processScaleBreaks(breaks, majorTicks, tickInterval);\r\n majorTicks = filterTicks(majorTicks, breaks);\r\n ticks.breaks = breaks;\r\n ticks.ticks = ticks.ticks.concat(majorTicks)\r\n }\r\n ticks.tickInterval = tickInterval;\r\n return ticks\r\n }(result, data, businessDelta, screenDelta, tickInterval, forceTickInterval, customTicks, breaks || []);\r\n if (!options.skipTickGeneration && businessDelta > 0) {\r\n result = function(ticks, data, businessDelta, screenDelta, minorTickInterval, minorTickCount, customTicks) {\r\n if (!options.calculateMinors) {\r\n return ticks\r\n }\r\n if (customTicks.minors) {\r\n return ticks\r\n }\r\n var minorBusinessDelta = convertTickInterval(ticks.tickInterval);\r\n var minorScreenDelta = screenDelta * minorBusinessDelta / businessDelta;\r\n var breaks = ticks.breaks;\r\n if (!minorTickInterval && minorTickCount) {\r\n minorTickInterval = getMinorTickIntervalByCustomTicks([minorBusinessDelta / (minorTickCount + 1), minorBusinessDelta / (minorTickCount + 1) * 2])\r\n } else {\r\n minorTickCount = void 0\r\n }\r\n minorTickInterval = correctUserTickInterval(minorTickInterval, minorBusinessDelta, minorScreenDelta);\r\n minorTickInterval = calculateMinorTickInterval(minorBusinessDelta, minorScreenDelta, minorTickInterval, options.minorAxisDivisionFactor);\r\n ticks.minorTicks = filterTicks(ticks.minorTicks.concat(calculateMinorTicks(data.min, data.max, ticks.ticks, minorTickInterval, ticks.tickInterval, breaks, minorTickCount)), breaks);\r\n ticks.minorTickInterval = minorTickInterval;\r\n return ticks\r\n }(result, data, businessDelta, screenDelta, minorTickInterval, minorTickCount, customTicks)\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n}\r\n\r\nfunction getBaseTick(breakValue, _ref, interval, getValue) {\r\n var [tick, insideTick] = _ref;\r\n if (!isDefined(tick) || mathAbs(getValue(breakValue) - getValue(tick)) / interval > .25) {\r\n if (isDefined(insideTick) && mathAbs(getValue(insideTick) - getValue(tick)) / interval < 2) {\r\n tick = insideTick\r\n } else if (!isDefined(tick)) {\r\n tick = breakValue\r\n }\r\n }\r\n return tick\r\n}\r\n\r\nfunction getScaleBreaksProcessor(convertTickInterval, getValue, addCorrection) {\r\n return function(breaks, ticks, tickInterval) {\r\n var interval = convertTickInterval(tickInterval);\r\n var correction = .5 * interval;\r\n return breaks.reduce((result, b) => {\r\n var breakTicks = ticks.filter(tick => tick <= b.from);\r\n var from = addCorrection(getBaseTick(b.from, [].concat(breakTicks[breakTicks.length - 1], ticks[breakTicks.length]), interval, getValue), correction);\r\n breakTicks = ticks.filter(tick => tick >= b.to);\r\n var to = addCorrection(getBaseTick(b.to, [].concat(breakTicks[0], ticks[ticks.length - breakTicks.length - 1]), interval, getValue), -correction);\r\n if (getValue(to) - getValue(from) < interval && !b.gapSize) {\r\n return result\r\n }\r\n if (b.gapSize) {\r\n return result.concat([b])\r\n }\r\n return result.concat([{\r\n from: from,\r\n to: to,\r\n cumulativeWidth: b.cumulativeWidth\r\n }])\r\n }, [])\r\n }\r\n}\r\n\r\nfunction numericGenerator(options) {\r\n var floor = correctValueByInterval(getValue, mathFloor, getValue);\r\n var ceil = correctValueByInterval(getValue, mathCeil, getValue);\r\n var calculateTickIntervalByCustomTicks = getTickIntervalByCustomTicks(getValue, getValue);\r\n return generator(options, getBusinessDelta, calculateTickInterval, calculateMinorTickInterval, calculateTickIntervalByCustomTicks, calculateTickIntervalByCustomTicks, getValue, calculateTicks(addInterval, correctMinValueByEndOnTick(floor, ceil, resolveEndOnTick, options.endOnTick), adjustInterval, resolveEndOnTick), calculateMinorTicks(getValue, addInterval, floor, addInterval, getValue), getScaleBreaksProcessor(getValue, getValue, (value, correction) => value + correction))\r\n}\r\nvar correctValueByIntervalLog = (post, getRound, getValue) => (value, interval) => sign(value) * adjust(post(getRound(value)(adjust(getValue(value) / interval)) * interval));\r\n\r\nfunction logarithmicGenerator(options) {\r\n var base = options.logBase;\r\n var raise = raiseTo(base, options.allowNegatives, options.linearThreshold);\r\n var log = getLogValue(base, options.allowNegatives, options.linearThreshold);\r\n var absLog = logAbsValue(base);\r\n var absRaise = mathRaiseTo(base);\r\n var floor = correctValueByIntervalLog(absRaise, value => value < 0 ? mathCeil : mathFloor, absLog);\r\n var ceil = correctValueByIntervalLog(absRaise, value => value < 0 ? mathFloor : mathCeil, absLog);\r\n var ceilNumber = correctValueByInterval(getValue, mathCeil, getValue);\r\n return generator(options, getBusinessDeltaLog(base, options.allowNegatives, options.linearThreshold), getCalculateTickIntervalLog(options.skipCalculationLimits), calculateMinorTickInterval, getTickIntervalByCustomTicks(log, getValue), getTickIntervalByCustomTicks(getValue, getValue), getValue, calculateTicks(addIntervalLog(log, raise), correctMinValueByEndOnTick(floor, ceil, resolveEndOnTickLog(base), options.endOnTick), getAdjustIntervalLog(options.skipCalculationLimits), resolveEndOnTickLog(base)), calculateMinorTicks((_, tick, prevTick, factor) => Math.max(Math.abs(tick), Math.abs(prevTick)) / factor, addInterval, floor, ceilNumber, ceil), getScaleBreaksProcessor(getValue, log, (value, correction) => raise(log(value) + correction)))\r\n}\r\n\r\nfunction dateGenerator(options) {\r\n function floor(value, interval) {\r\n var floorNumber = correctValueByInterval(getValue, mathFloor, getValue);\r\n var intervalObject = isString(interval) ? dateUtils.getDateIntervalByString(interval.toLowerCase()) : interval;\r\n var divider = dateToMilliseconds(interval);\r\n if (intervalObject.days % 7 === 0 || interval.quarters) {\r\n intervalObject = adjustIntervalDateTime(divider)\r\n }\r\n var correctDateWithUnitBeginning = v => dateUtils.correctDateWithUnitBeginning(v, intervalObject, null, options.firstDayOfWeek);\r\n var floorAtStartDate = v => new Date(mathFloor((v.getTime() - v.getTimezoneOffset() * MINUTE) / divider) * divider + v.getTimezoneOffset() * MINUTE);\r\n value = correctDateWithUnitBeginning(value);\r\n if (\"years\" in intervalObject) {\r\n value.setFullYear(floorNumber(value.getFullYear(), intervalObject.years))\r\n } else if (\"quarters\" in intervalObject) {\r\n value = correctDateWithUnitBeginning(floorAtStartDate(value))\r\n } else if (\"months\" in intervalObject) {\r\n value.setMonth(floorNumber(value.getMonth(), intervalObject.months))\r\n } else if (\"weeks\" in intervalObject || \"days\" in intervalObject) {\r\n value = correctDateWithUnitBeginning(floorAtStartDate(value))\r\n } else if (\"hours\" in intervalObject) {\r\n value.setHours(floorNumber(value.getHours(), intervalObject.hours))\r\n } else if (\"minutes\" in intervalObject) {\r\n value.setMinutes(floorNumber(value.getMinutes(), intervalObject.minutes))\r\n } else if (\"seconds\" in intervalObject) {\r\n value.setSeconds(floorNumber(value.getSeconds(), intervalObject.seconds))\r\n } else if (\"milliseconds\" in intervalObject) {\r\n value = floorAtStartDate(value)\r\n }\r\n return value\r\n }\r\n var calculateTickIntervalByCustomTicks = getTickIntervalByCustomTicks(getValue, dateUtils.convertMillisecondsToDateUnits);\r\n return generator(options, getBusinessDelta, calculateTickIntervalDateTime, calculateMinorTickIntervalDateTime, calculateTickIntervalByCustomTicks, calculateTickIntervalByCustomTicks, dateToMilliseconds, calculateTicks(addIntervalDate, correctMinValueByEndOnTick(floor, (function(value, interval) {\r\n var newValue = floor(value, interval);\r\n while (value - newValue > 0) {\r\n newValue = addIntervalDate(newValue, interval)\r\n }\r\n return newValue\r\n }), resolveEndOnTickDate, options.endOnTick), adjustIntervalDateTime, resolveEndOnTickDate), calculateMinorTicks(getValue, addIntervalDate, floor, addIntervalDate, getValue), getScaleBreaksProcessor(dateToMilliseconds, getValue, (value, correction) => new Date(value.getTime() + correction)))\r\n}\r\nexport var tickGenerator = function(options) {\r\n var result;\r\n if (options.rangeIsEmpty) {\r\n result = dummyGenerator(options)\r\n } else if (\"discrete\" === options.axisType) {\r\n result = discreteGenerator(options)\r\n } else if (\"logarithmic\" === options.axisType) {\r\n result = logarithmicGenerator(options)\r\n } else if (\"datetime\" === options.dataType) {\r\n result = dateGenerator(options)\r\n } else {\r\n result = numericGenerator(options)\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/range.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isDate,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _isDefined = isDefined;\r\nvar _isDate = isDate;\r\nvar _isFunction = isFunction;\r\nimport {\r\n unique\r\n} from \"../core/utils\";\r\nvar minSelector = \"min\";\r\nvar maxSelector = \"max\";\r\nvar minVisibleSelector = \"minVisible\";\r\nvar maxVisibleSelector = \"maxVisible\";\r\nvar baseSelector = \"base\";\r\nvar axisTypeSelector = \"axisType\";\r\n\r\nfunction otherLessThan(thisValue, otherValue) {\r\n return otherValue < thisValue\r\n}\r\n\r\nfunction otherGreaterThan(thisValue, otherValue) {\r\n return otherValue > thisValue\r\n}\r\n\r\nfunction compareAndReplace(thisValue, otherValue, setValue, compare) {\r\n var otherValueDefined = _isDefined(otherValue);\r\n if (_isDefined(thisValue)) {\r\n if (otherValueDefined && compare(thisValue, otherValue)) {\r\n setValue(otherValue)\r\n }\r\n } else if (otherValueDefined) {\r\n setValue(otherValue)\r\n }\r\n}\r\nexport var Range = function(range) {\r\n range && extend(this, range)\r\n};\r\nvar _Range = Range;\r\n_Range.prototype = {\r\n constructor: _Range,\r\n addRange: function(otherRange) {\r\n var that = this;\r\n var categories = that.categories;\r\n var otherCategories = otherRange.categories;\r\n var isDiscrete = \"discrete\" === that[axisTypeSelector];\r\n var compareAndReplaceByField = function(field, compare) {\r\n compareAndReplace(that[field], otherRange[field], (function(value) {\r\n that[field] = value\r\n }), compare)\r\n };\r\n var controlValuesByVisibleBounds = function(valueField, visibleValueField, compare) {\r\n compareAndReplace(that[valueField], that[visibleValueField], (function(value) {\r\n _isDefined(that[valueField]) && (that[valueField] = value)\r\n }), compare)\r\n };\r\n var checkField = function(field) {\r\n that[field] = that[field] || otherRange[field]\r\n };\r\n checkField(\"invert\");\r\n checkField(\"containsConstantLine\");\r\n checkField(axisTypeSelector);\r\n checkField(\"dataType\");\r\n checkField(\"isSpacedMargin\");\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(baseSelector)\r\n } else {\r\n that[baseSelector] = void 0\r\n }\r\n compareAndReplaceByField(minSelector, otherLessThan);\r\n compareAndReplaceByField(maxSelector, otherGreaterThan);\r\n if (isDiscrete) {\r\n checkField(minVisibleSelector);\r\n checkField(maxVisibleSelector)\r\n } else {\r\n compareAndReplaceByField(minVisibleSelector, otherLessThan);\r\n compareAndReplaceByField(maxVisibleSelector, otherGreaterThan)\r\n }\r\n compareAndReplaceByField(\"interval\", otherLessThan);\r\n if (!isDiscrete) {\r\n controlValuesByVisibleBounds(minSelector, minVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(minSelector, maxVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(maxSelector, maxVisibleSelector, otherGreaterThan);\r\n controlValuesByVisibleBounds(maxSelector, minVisibleSelector, otherGreaterThan)\r\n }\r\n if (void 0 === categories) {\r\n that.categories = otherCategories\r\n } else {\r\n that.categories = otherCategories ? unique(categories.concat(otherCategories)) : categories\r\n }\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(\"allowNegatives\");\r\n compareAndReplaceByField(\"linearThreshold\", otherLessThan)\r\n }\r\n return that\r\n },\r\n isEmpty: function() {\r\n return (!_isDefined(this[minSelector]) || !_isDefined(this[maxSelector])) && (!this.categories || 0 === this.categories.length)\r\n },\r\n correctValueZeroLevel: function() {\r\n var that = this;\r\n if (_isDate(that[maxSelector]) || _isDate(that[minSelector])) {\r\n return that\r\n }\r\n\r\n function setZeroLevel(min, max) {\r\n that[min] < 0 && that[max] < 0 && (that[max] = 0);\r\n that[min] > 0 && that[max] > 0 && (that[min] = 0)\r\n }\r\n setZeroLevel(minSelector, maxSelector);\r\n setZeroLevel(minVisibleSelector, maxVisibleSelector);\r\n return that\r\n },\r\n sortCategories(sort) {\r\n if (false === sort || !this.categories) {\r\n return\r\n }\r\n if (Array.isArray(sort)) {\r\n var sortValues = sort.map(item => item.valueOf());\r\n var filteredSeriesCategories = this.categories.filter(item => -1 === sortValues.indexOf(item.valueOf()));\r\n this.categories = sort.concat(filteredSeriesCategories)\r\n } else {\r\n var notAFunction = !_isFunction(sort);\r\n if (notAFunction && \"string\" !== this.dataType) {\r\n sort = (a, b) => a.valueOf() - b.valueOf()\r\n } else if (notAFunction) {\r\n sort = false\r\n }\r\n sort && this.categories.sort(sort)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/category_translator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar round = Math.round;\r\n\r\nfunction getValue(value) {\r\n return value\r\n}\r\nexport default {\r\n translate: function(category, directionOffset) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoryIndex = this._categoriesToPoints[null === category || void 0 === category ? void 0 : category.valueOf()];\r\n var specialValue = this.translateSpecialCase(category);\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickInterval = this._options.stick ? 0 : .5;\r\n if (isDefined(specialValue)) {\r\n return round(specialValue)\r\n }\r\n if (!categoryIndex && 0 !== categoryIndex) {\r\n return null\r\n }\r\n directionOffset = directionOffset || 0;\r\n var stickDelta = categoryIndex + stickInterval - startPointIndex + .5 * directionOffset;\r\n return round(this._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n getInterval: function() {\r\n return this._canvasOptions.interval\r\n },\r\n getEventScale: function(zoomEvent) {\r\n var scale = zoomEvent.deltaScale || 1;\r\n return 1 - (1 - scale) / (.75 + this.visibleCategories.length / this._categories.length)\r\n },\r\n zoom: function(translate, scale) {\r\n var categories = this._categories;\r\n var canvasOptions = this._canvasOptions;\r\n var stick = this._options.stick;\r\n var invert = canvasOptions.invert;\r\n var interval = canvasOptions.interval * scale;\r\n var translateCategories = translate / interval;\r\n var visibleCount = (this.visibleCategories || []).length;\r\n var startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + translateCategories + .5);\r\n var categoriesLength = parseInt(adjust(canvasOptions.canvasLength / interval) + (stick ? 1 : 0)) || 1;\r\n var endCategoryIndex;\r\n if (invert) {\r\n startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + visibleCount - translateCategories + .5) - categoriesLength\r\n }\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n endCategoryIndex = startCategoryIndex + categoriesLength;\r\n if (endCategoryIndex > categories.length) {\r\n endCategoryIndex = categories.length;\r\n startCategoryIndex = endCategoryIndex - categoriesLength;\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n }\r\n var newVisibleCategories = categories.slice(parseInt(startCategoryIndex), parseInt(endCategoryIndex));\r\n var newInterval = this._getDiscreteInterval(newVisibleCategories.length, canvasOptions);\r\n scale = newInterval / canvasOptions.interval;\r\n translate = this.translate(!invert ? newVisibleCategories[0] : newVisibleCategories[newVisibleCategories.length - 1]) * scale - (canvasOptions.startPoint + (stick ? 0 : newInterval / 2));\r\n return {\r\n min: newVisibleCategories[0],\r\n max: newVisibleCategories[newVisibleCategories.length - 1],\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoriesLength = (this.visibleCategories || this._categories).length;\r\n categoriesLength += (parseInt(.1 * categoriesLength) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(categoriesLength, 1) * canvasOptions.interval)\r\n },\r\n getScale: function(min, max) {\r\n var canvasOptions = this._canvasOptions;\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var stickOffset = !this._options.stick && 1;\r\n var minPoint = isDefined(min) ? this.translate(min, -stickOffset) : null;\r\n var maxPoint = isDefined(max) ? this.translate(max, +stickOffset) : null;\r\n if (null === minPoint) {\r\n minPoint = canvasOptions.invert ? visibleArea.max : visibleArea.min\r\n }\r\n if (null === maxPoint) {\r\n maxPoint = canvasOptions.invert ? visibleArea.min : visibleArea.max\r\n }\r\n return this.canvasLength / Math.abs(maxPoint - minPoint)\r\n },\r\n isValid: function(value) {\r\n return isDefined(value) ? this._categoriesToPoints[value.valueOf()] >= 0 : false\r\n },\r\n getCorrectValue: getValue,\r\n to: function(value, direction) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoryIndex = this._categoriesToPoints[null === value || void 0 === value ? void 0 : value.valueOf()];\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickDelta = categoryIndex + (this._options.stick ? 0 : .5) - startPointIndex + (this._businessRange.invert ? -1 : 1) * direction * .5;\r\n return round(this._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n from: function(position) {\r\n var direction = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var categories = this.visibleCategories || this._categories;\r\n var categoriesLength = categories.length;\r\n var stickInterval = this._options.stick ? .5 : 0;\r\n var result = round((position - startPoint) / canvasOptions.interval + stickInterval - .5 - .5 * direction);\r\n if (result >= categoriesLength) {\r\n result = categoriesLength - 1\r\n }\r\n if (result < 0) {\r\n result = 0\r\n }\r\n if (canvasOptions.invert) {\r\n result = categoriesLength - result - 1\r\n }\r\n return categories[result]\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n toValue: getValue,\r\n isValueProlonged: true,\r\n getRangeByMinZoomValue(minZoom, visualRange) {\r\n var categories = this._categories;\r\n var minVisibleIndex = categories.indexOf(visualRange.minVisible);\r\n var maxVisibleIndex = categories.indexOf(visualRange.maxVisible);\r\n var startIndex = minVisibleIndex + minZoom - 1;\r\n var endIndex = maxVisibleIndex - minZoom + 1;\r\n if (categories[startIndex]) {\r\n return [visualRange.minVisible, categories[startIndex]]\r\n } else {\r\n return [categories[endIndex], visualRange.maxVisible]\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/interval_translator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric as isNumber,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar floor = Math.floor;\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nexport default {\r\n _intervalize: function(value, interval) {\r\n if (!isDefined(value)) {\r\n return\r\n }\r\n if (\"datetime\" === this._businessRange.dataType) {\r\n if (isNumber(value)) {\r\n value = new Date(value)\r\n } else {\r\n value = new Date(value.getTime())\r\n }\r\n value = dateUtils.correctDateWithUnitBeginning(value, interval, null, this._options.firstDayOfWeek)\r\n } else {\r\n value = adjust(floor(adjust(value / interval)) * interval, interval)\r\n }\r\n return value\r\n },\r\n translate: function(bp, direction, interval) {\r\n var specialValue = this.translateSpecialCase(bp);\r\n if (isDefined(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n interval = interval || this._options.interval;\r\n if (!this.isValid(bp, interval)) {\r\n return null\r\n }\r\n return this.to(bp, direction, interval)\r\n },\r\n getInterval: function() {\r\n return Math.round(this._canvasOptions.ratioOfCanvasRange * (this._businessRange.interval || Math.abs(this._canvasOptions.rangeMax - this._canvasOptions.rangeMin)))\r\n },\r\n zoom: function() {},\r\n getMinScale: function() {},\r\n getScale: function() {},\r\n _parse: function(value) {\r\n return \"datetime\" === this._businessRange.dataType ? new Date(value) : Number(value)\r\n },\r\n fromValue: function(value) {\r\n return this._parse(value)\r\n },\r\n toValue: function(value) {\r\n return this._parse(value)\r\n },\r\n isValid: function(value, interval) {\r\n var co = this._canvasOptions;\r\n var rangeMin = co.rangeMin;\r\n var rangeMax = co.rangeMax;\r\n interval = interval || this._options.interval;\r\n if (null === value || isNaN(value)) {\r\n return false\r\n }\r\n value = \"datetime\" === this._businessRange.dataType && isNumber(value) ? new Date(value) : value;\r\n if (interval !== this._options.interval) {\r\n rangeMin = this._intervalize(rangeMin, interval);\r\n rangeMax = this._intervalize(rangeMax, interval)\r\n }\r\n if (value.valueOf() < rangeMin || value.valueOf() >= dateUtils.addInterval(rangeMax, interval)) {\r\n return false\r\n }\r\n return true\r\n },\r\n to: function(bp, direction, interval) {\r\n interval = interval || this._options.interval;\r\n var v1 = this._intervalize(bp, interval);\r\n var v2 = dateUtils.addInterval(v1, interval);\r\n var res = this._to(v1);\r\n var p2 = this._to(v2);\r\n if (!direction) {\r\n res = floor((res + p2) / 2)\r\n } else if (direction > 0) {\r\n res = p2\r\n }\r\n return res\r\n },\r\n _to: function(value) {\r\n var co = this._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var offset = value - rMin;\r\n if (value < rMin) {\r\n offset = 0\r\n } else if (value > rMax) {\r\n offset = dateUtils.addInterval(rMax, this._options.interval) - rMin\r\n }\r\n return this._conversionValue(this._calculateProjection(offset * this._canvasOptions.ratioOfCanvasRange))\r\n },\r\n from: function(position, direction) {\r\n var origInterval = this._options.interval;\r\n var interval = origInterval;\r\n var co = this._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var value;\r\n if (\"datetime\" === this._businessRange.dataType) {\r\n interval = dateUtils.dateToMilliseconds(origInterval)\r\n }\r\n value = this._calculateUnProjection((position - this._canvasOptions.startPoint) / this._canvasOptions.ratioOfCanvasRange);\r\n value = this._intervalize(dateUtils.addInterval(value, interval / 2, direction > 0), origInterval);\r\n if (value < rMin) {\r\n value = rMin\r\n } else if (value > rMax) {\r\n value = rMax\r\n }\r\n return value\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n isValueProlonged: true\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/datetime_translator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\n\r\nfunction parse(value) {\r\n return null !== value ? new Date(value) : value\r\n}\r\nexport default {\r\n fromValue: parse,\r\n toValue: parse,\r\n _add: dateUtils.addDateInterval,\r\n convert: dateUtils.dateToMilliseconds\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/logarithmic_translator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n raiseToExt as raiseTo,\r\n getLogExt as getLog\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport default {\r\n fromValue: function(value) {\r\n return null !== value ? getLog(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n toValue: function(value) {\r\n return null !== value ? raiseTo(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n var canvasOptions = this._canvasOptions;\r\n var startValue = this.fromValue(this.from(visibleArea.min));\r\n var endValue = this.fromValue(null !== minValue && void 0 !== minValue ? minValue : this.from(visibleArea.max));\r\n var value = Math.abs(startValue - endValue);\r\n return Math.pow(canvasOptions.base, value)\r\n },\r\n checkMinBarSize: function(initialValue, minShownValue, stackValue) {\r\n var canvasOptions = this._canvasOptions;\r\n var prevValue = stackValue ? stackValue - initialValue : 0;\r\n var baseMethod = this.constructor.prototype.checkMinBarSize;\r\n var minBarSize;\r\n var updateValue;\r\n if (isDefined(minShownValue) && prevValue > 0) {\r\n minBarSize = baseMethod(this.fromValue(stackValue / prevValue), this.fromValue(minShownValue) - canvasOptions.rangeMinVisible);\r\n updateValue = Math.pow(canvasOptions.base, this.fromValue(prevValue) + minBarSize) - prevValue\r\n } else {\r\n updateValue = baseMethod(initialValue, minShownValue)\r\n }\r\n return updateValue\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/translator2d.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Range\r\n} from \"./range\";\r\nimport categoryTranslator from \"./category_translator\";\r\nimport intervalTranslator from \"./interval_translator\";\r\nimport datetimeTranslator from \"./datetime_translator\";\r\nimport logarithmicTranslator from \"./logarithmic_translator\";\r\nimport {\r\n getLogExt as getLog,\r\n getPower,\r\n raiseToExt,\r\n getCategoriesInfo\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined,\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar _abs = Math.abs;\r\nvar CANVAS_PROP = [\"width\", \"height\", \"left\", \"top\", \"bottom\", \"right\"];\r\nvar dummyTranslator = {\r\n to(value) {\r\n var coord = this._canvasOptions.startPoint + (this._options.conversionValue ? value : Math.round(value));\r\n return coord > this._canvasOptions.endPoint ? this._canvasOptions.endPoint : coord\r\n },\r\n from(value) {\r\n return value - this._canvasOptions.startPoint\r\n }\r\n};\r\nvar validateCanvas = function(canvas) {\r\n each(CANVAS_PROP, (function(_, prop) {\r\n canvas[prop] = parseInt(canvas[prop]) || 0\r\n }));\r\n return canvas\r\n};\r\nvar makeCategoriesToPoints = function(categories) {\r\n var categoriesToPoints = {};\r\n categories.forEach((function(item, i) {\r\n categoriesToPoints[item.valueOf()] = i\r\n }));\r\n return categoriesToPoints\r\n};\r\nvar validateBusinessRange = function(businessRange) {\r\n if (!(businessRange instanceof Range)) {\r\n businessRange = new Range(businessRange)\r\n }\r\n\r\n function validate(valueSelector, baseValueSelector) {\r\n if (!isDefined(businessRange[valueSelector]) && isDefined(businessRange[baseValueSelector])) {\r\n businessRange[valueSelector] = businessRange[baseValueSelector]\r\n }\r\n }\r\n validate(\"minVisible\", \"min\");\r\n validate(\"maxVisible\", \"max\");\r\n return businessRange\r\n};\r\n\r\nfunction prepareBreaks(breaks, range) {\r\n var transform = \"logarithmic\" === range.axisType ? function(value) {\r\n return getLog(value, range.base)\r\n } : function(value) {\r\n return value\r\n };\r\n var array = [];\r\n var br;\r\n var transformFrom;\r\n var transformTo;\r\n var i;\r\n var length = breaks.length;\r\n var sum = 0;\r\n for (i = 0; i < length; i++) {\r\n br = breaks[i];\r\n transformFrom = transform(br.from);\r\n transformTo = transform(br.to);\r\n sum += transformTo - transformFrom;\r\n array.push({\r\n trFrom: transformFrom,\r\n trTo: transformTo,\r\n from: br.from,\r\n to: br.to,\r\n length: sum,\r\n cumulativeWidth: br.cumulativeWidth\r\n })\r\n }\r\n return array\r\n}\r\n\r\nfunction getCanvasBounds(range) {\r\n var min = range.min;\r\n var max = range.max;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var isLogarithmic = \"logarithmic\" === range.axisType;\r\n if (isLogarithmic) {\r\n maxVisible = getLog(maxVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n minVisible = getLog(minVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n min = getLog(min, range.base, range.allowNegatives, range.linearThreshold);\r\n max = getLog(max, range.base, range.allowNegatives, range.linearThreshold)\r\n }\r\n return {\r\n base: range.base,\r\n rangeMin: min,\r\n rangeMax: max,\r\n rangeMinVisible: minVisible,\r\n rangeMaxVisible: maxVisible\r\n }\r\n}\r\n\r\nfunction getCheckingMethodsAboutBreaks(inverted) {\r\n return {\r\n isStartSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos < breaks[0][start]\r\n } : function(pos, breaks, start, end) {\r\n return pos <= breaks[breaks.length - 1][end]\r\n },\r\n isEndSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos >= breaks[breaks.length - 1][end]\r\n } : function(pos, breaks, start, end) {\r\n return pos > breaks[0][start]\r\n },\r\n isInBreak: !inverted ? function(pos, br, start, end) {\r\n return pos >= br[start] && pos < br[end]\r\n } : function(pos, br, start, end) {\r\n return pos > br[end] && pos <= br[start]\r\n },\r\n isBetweenBreaks: !inverted ? function(pos, br, prevBreak, start, end) {\r\n return pos < br[start] && pos >= prevBreak[end]\r\n } : function(pos, br, prevBreak, start, end) {\r\n return pos >= br[end] && pos < prevBreak[start]\r\n },\r\n getLength: !inverted ? function(br) {\r\n return br.length\r\n } : function(br, lastBreak) {\r\n return lastBreak.length - br.length\r\n },\r\n getBreaksSize: !inverted ? function(br) {\r\n return br.cumulativeWidth\r\n } : function(br, lastBreak) {\r\n return lastBreak.cumulativeWidth - br.cumulativeWidth\r\n }\r\n }\r\n}\r\nvar _Translator2d = function(businessRange, canvas, options) {\r\n this.update(businessRange, canvas, options)\r\n};\r\n_Translator2d.prototype = {\r\n constructor: _Translator2d,\r\n reinit: function() {\r\n var that = this;\r\n var options = that._options;\r\n var range = that._businessRange;\r\n var categories = range.categories || [];\r\n var script = {};\r\n var canvasOptions = that._prepareCanvasOptions();\r\n var visibleCategories = getCategoriesInfo(categories, range.minVisible, range.maxVisible).categories;\r\n var categoriesLength = visibleCategories.length;\r\n if (range.isEmpty()) {\r\n script = dummyTranslator\r\n } else {\r\n switch (range.axisType) {\r\n case \"logarithmic\":\r\n script = logarithmicTranslator;\r\n break;\r\n case \"semidiscrete\":\r\n script = intervalTranslator;\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (dateUtils.addInterval(canvasOptions.rangeMaxVisible, options.interval) - canvasOptions.rangeMinVisible);\r\n break;\r\n case \"discrete\":\r\n script = categoryTranslator;\r\n that._categories = categories;\r\n canvasOptions.interval = that._getDiscreteInterval(options.addSpiderCategory ? categoriesLength + 1 : categoriesLength, canvasOptions);\r\n that._categoriesToPoints = makeCategoriesToPoints(categories);\r\n if (categoriesLength) {\r\n canvasOptions.startPointIndex = that._categoriesToPoints[visibleCategories[0].valueOf()];\r\n that.visibleCategories = visibleCategories\r\n }\r\n break;\r\n default:\r\n if (\"datetime\" === range.dataType) {\r\n script = datetimeTranslator\r\n }\r\n }\r\n }(that._oldMethods || []).forEach((function(methodName) {\r\n delete that[methodName]\r\n }));\r\n that._oldMethods = Object.keys(script);\r\n extend(that, script);\r\n that._conversionValue = options.conversionValue ? value => value : (value, skipRound) => skipRound ? value : Math.round(value);\r\n that.sc = {};\r\n that._checkingMethodsAboutBreaks = [getCheckingMethodsAboutBreaks(false), getCheckingMethodsAboutBreaks(that.isInverted())];\r\n that._translateBreaks();\r\n that._calculateSpecialValues()\r\n },\r\n _translateBreaks: function() {\r\n var breaks = this._breaks;\r\n var size = this._options.breaksSize;\r\n var i;\r\n var b;\r\n var end;\r\n var length;\r\n if (void 0 === breaks) {\r\n return\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n b = breaks[i];\r\n end = this.translate(b.to);\r\n b.end = end;\r\n b.start = !b.gapSize ? !this.isInverted() ? end - size : end + size : end\r\n }\r\n },\r\n _checkValueAboutBreaks: function(breaks, pos, start, end, methods) {\r\n var i;\r\n var length;\r\n var prop = {\r\n length: 0,\r\n breaksSize: void 0,\r\n inBreak: false\r\n };\r\n var br;\r\n var prevBreak;\r\n var lastBreak = breaks[breaks.length - 1];\r\n if (methods.isStartSide(pos, breaks, start, end)) {\r\n return prop\r\n } else if (methods.isEndSide(pos, breaks, start, end)) {\r\n return {\r\n length: lastBreak.length,\r\n breaksSize: lastBreak.cumulativeWidth,\r\n inBreak: false\r\n }\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n br = breaks[i];\r\n prevBreak = breaks[i - 1];\r\n if (methods.isInBreak(pos, br, start, end)) {\r\n prop.inBreak = true;\r\n prop.break = br;\r\n break\r\n }\r\n if (prevBreak && methods.isBetweenBreaks(pos, br, prevBreak, start, end)) {\r\n prop = {\r\n length: methods.getLength(prevBreak, lastBreak),\r\n breaksSize: methods.getBreaksSize(prevBreak, lastBreak),\r\n inBreak: false\r\n };\r\n break\r\n }\r\n }\r\n return prop\r\n },\r\n isInverted: function() {\r\n return !(this._options.isHorizontal ^ this._businessRange.invert)\r\n },\r\n _getDiscreteInterval: function(categoriesLength, canvasOptions) {\r\n var correctedCategoriesCount = categoriesLength - (this._options.stick ? 1 : 0);\r\n return correctedCategoriesCount > 0 ? canvasOptions.canvasLength / correctedCategoriesCount : canvasOptions.canvasLength\r\n },\r\n _prepareCanvasOptions() {\r\n var businessRange = this._businessRange;\r\n var canvasOptions = this._canvasOptions = getCanvasBounds(businessRange);\r\n var canvas = this._canvas;\r\n var breaks = this._breaks;\r\n var length;\r\n canvasOptions.startPadding = canvas.startPadding || 0;\r\n canvasOptions.endPadding = canvas.endPadding || 0;\r\n if (this._options.isHorizontal) {\r\n canvasOptions.startPoint = canvas.left + canvasOptions.startPadding;\r\n length = canvas.width;\r\n canvasOptions.endPoint = canvas.width - canvas.right - canvasOptions.endPadding;\r\n canvasOptions.invert = businessRange.invert\r\n } else {\r\n canvasOptions.startPoint = canvas.top + canvasOptions.startPadding;\r\n length = canvas.height;\r\n canvasOptions.endPoint = canvas.height - canvas.bottom - canvasOptions.endPadding;\r\n canvasOptions.invert = !businessRange.invert\r\n }\r\n this.canvasLength = canvasOptions.canvasLength = canvasOptions.endPoint - canvasOptions.startPoint;\r\n canvasOptions.rangeDoubleError = Math.pow(10, getPower(canvasOptions.rangeMax - canvasOptions.rangeMin) - getPower(length) - 2);\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible);\r\n if (void 0 !== breaks) {\r\n canvasOptions.ratioOfCanvasRange = (canvasOptions.canvasLength - breaks[breaks.length - 1].cumulativeWidth) / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible - breaks[breaks.length - 1].length)\r\n }\r\n return canvasOptions\r\n },\r\n updateCanvas: function(canvas) {\r\n this._canvas = validateCanvas(canvas);\r\n this.reinit()\r\n },\r\n updateBusinessRange: function(businessRange) {\r\n var breaks = businessRange.breaks || [];\r\n this._userBreaks = businessRange.userBreaks || [];\r\n this._businessRange = validateBusinessRange(businessRange);\r\n this._breaks = breaks.length ? prepareBreaks(breaks, this._businessRange) : void 0;\r\n this.reinit()\r\n },\r\n update: function(businessRange, canvas, options) {\r\n this._options = extend(this._options || {}, options);\r\n this._canvas = validateCanvas(canvas);\r\n this.updateBusinessRange(businessRange)\r\n },\r\n getBusinessRange: function() {\r\n return this._businessRange\r\n },\r\n getEventScale: function(zoomEvent) {\r\n return zoomEvent.deltaScale || 1\r\n },\r\n getCanvasVisibleArea: function() {\r\n return {\r\n min: this._canvasOptions.startPoint,\r\n max: this._canvasOptions.endPoint\r\n }\r\n },\r\n _calculateSpecialValues: function() {\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint - canvasOptions.startPadding;\r\n var endPoint = canvasOptions.endPoint + canvasOptions.endPadding;\r\n var range = this._businessRange;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var canvas_position_center_middle = startPoint + canvasOptions.canvasLength / 2;\r\n var canvas_position_default;\r\n if (minVisible < 0 && maxVisible > 0 && minVisible !== maxVisible) {\r\n canvas_position_default = this.translate(0, 1)\r\n }\r\n if (!isDefined(canvas_position_default)) {\r\n var invert = range.invert ^ (minVisible < 0 && maxVisible <= 0);\r\n if (this._options.isHorizontal) {\r\n canvas_position_default = invert ? endPoint : startPoint\r\n } else {\r\n canvas_position_default = invert ? startPoint : endPoint\r\n }\r\n }\r\n this.sc = {\r\n canvas_position_default: canvas_position_default,\r\n canvas_position_left: startPoint,\r\n canvas_position_top: startPoint,\r\n canvas_position_center: canvas_position_center_middle,\r\n canvas_position_middle: canvas_position_center_middle,\r\n canvas_position_right: endPoint,\r\n canvas_position_bottom: endPoint,\r\n canvas_position_start: canvasOptions.invert ? endPoint : startPoint,\r\n canvas_position_end: canvasOptions.invert ? startPoint : endPoint\r\n }\r\n },\r\n translateSpecialCase(value) {\r\n return this.sc[value]\r\n },\r\n _calculateProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n return canvasOptions.invert ? canvasOptions.endPoint - distance : canvasOptions.startPoint + distance\r\n },\r\n _calculateUnProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n \"datetime\" === this._businessRange.dataType && (distance = Math.round(distance));\r\n return canvasOptions.invert ? canvasOptions.rangeMaxVisible.valueOf() - distance : canvasOptions.rangeMinVisible.valueOf() + distance\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n return _abs(this.from(visibleArea.min) - (!isDefined(minValue) ? this.from(visibleArea.max) : minValue))\r\n },\r\n checkMinBarSize: function(value, minShownValue) {\r\n return _abs(value) < minShownValue ? value >= 0 ? minShownValue : -minShownValue : value\r\n },\r\n translate(bp, direction, skipRound) {\r\n var specialValue = this.translateSpecialCase(bp);\r\n if (isDefined(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n if (isNaN(bp)) {\r\n return null\r\n }\r\n return this.to(bp, direction, skipRound)\r\n },\r\n getInterval: function(interval) {\r\n var _interval;\r\n var canvasOptions = this._canvasOptions;\r\n interval = null !== (_interval = interval) && void 0 !== _interval ? _interval : this._businessRange.interval;\r\n if (interval) {\r\n return Math.round(canvasOptions.ratioOfCanvasRange * interval)\r\n }\r\n return Math.round(canvasOptions.endPoint - canvasOptions.startPoint)\r\n },\r\n zoom(translate, scale, wholeRange) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMinVisible.valueOf() === canvasOptions.rangeMaxVisible.valueOf() && 0 !== translate) {\r\n return this.zoomZeroLengthRange(translate, scale)\r\n }\r\n var startPoint = canvasOptions.startPoint;\r\n var endPoint = canvasOptions.endPoint;\r\n var isInverted = this.isInverted();\r\n var newStart = (startPoint + translate) / scale;\r\n var newEnd = (endPoint + translate) / scale;\r\n wholeRange = wholeRange || {};\r\n var minPoint = this.to(isInverted ? wholeRange.endValue : wholeRange.startValue);\r\n var maxPoint = this.to(isInverted ? wholeRange.startValue : wholeRange.endValue);\r\n var min;\r\n var max;\r\n if (minPoint > newStart) {\r\n newEnd -= newStart - minPoint;\r\n newStart = minPoint;\r\n min = isInverted ? wholeRange.endValue : wholeRange.startValue\r\n }\r\n if (maxPoint < newEnd) {\r\n newStart -= newEnd - maxPoint;\r\n newEnd = maxPoint;\r\n max = isInverted ? wholeRange.startValue : wholeRange.endValue\r\n }\r\n if (maxPoint - minPoint < newEnd - newStart) {\r\n newStart = minPoint;\r\n newEnd = maxPoint\r\n }\r\n translate = (endPoint - startPoint) * newStart / (newEnd - newStart) - startPoint;\r\n scale = (startPoint + translate) / newStart || 1;\r\n min = isDefined(min) ? min : adjust(this.from(newStart, 1));\r\n max = isDefined(max) ? max : adjust(this.from(newEnd, -1));\r\n if (scale <= 1) {\r\n min = this._correctValueAboutBreaks(min, 1 === scale ? translate : -1);\r\n max = this._correctValueAboutBreaks(max, 1 === scale ? translate : 1)\r\n }\r\n if (min > max) {\r\n min = min > wholeRange.endValue ? wholeRange.endValue : min;\r\n max = max < wholeRange.startValue ? wholeRange.startValue : max\r\n } else {\r\n min = min < wholeRange.startValue ? wholeRange.startValue : min;\r\n max = max > wholeRange.endValue ? wholeRange.endValue : max\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n translate: adjust(translate),\r\n scale: adjust(scale)\r\n }\r\n },\r\n _correctValueAboutBreaks(value, direction) {\r\n var br = this._userBreaks.filter(br => value >= br.from && value <= br.to);\r\n if (br.length) {\r\n return direction > 0 ? br[0].to : br[0].from\r\n } else {\r\n return value\r\n }\r\n },\r\n zoomZeroLengthRange(translate, scale) {\r\n var canvasOptions = this._canvasOptions;\r\n var min = canvasOptions.rangeMin;\r\n var max = canvasOptions.rangeMax;\r\n var correction = (max.valueOf() !== min.valueOf() ? max.valueOf() - min.valueOf() : _abs(canvasOptions.rangeMinVisible.valueOf() - min.valueOf())) / canvasOptions.canvasLength;\r\n var isDateTime = isDate(max) || isDate(min);\r\n var isLogarithmic = \"logarithmic\" === this._businessRange.axisType;\r\n var newMin = canvasOptions.rangeMinVisible.valueOf() - correction;\r\n var newMax = canvasOptions.rangeMaxVisible.valueOf() + correction;\r\n newMin = isLogarithmic ? adjust(raiseToExt(newMin, canvasOptions.base)) : isDateTime ? new Date(newMin) : newMin;\r\n newMax = isLogarithmic ? adjust(raiseToExt(newMax, canvasOptions.base)) : isDateTime ? new Date(newMax) : newMax;\r\n return {\r\n min: newMin,\r\n max: newMax,\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var {\r\n dataType: dataType,\r\n interval: interval\r\n } = this._businessRange;\r\n if (\"datetime\" === dataType && 1 === interval) {\r\n return this.getDateTimeMinScale(zoom)\r\n }\r\n return zoom ? 1.1 : .9\r\n },\r\n getDateTimeMinScale(zoom) {\r\n var canvasOptions = this._canvasOptions;\r\n var length = canvasOptions.canvasLength / canvasOptions.ratioOfCanvasRange;\r\n length += (parseInt(.1 * length) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(length, 1) * canvasOptions.ratioOfCanvasRange)\r\n },\r\n getScale: function(val1, val2) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMax === canvasOptions.rangeMin) {\r\n return 1\r\n }\r\n val1 = isDefined(val1) ? this.fromValue(val1) : canvasOptions.rangeMin;\r\n val2 = isDefined(val2) ? this.fromValue(val2) : canvasOptions.rangeMax;\r\n return (canvasOptions.rangeMax - canvasOptions.rangeMin) / Math.abs(val1 - val2)\r\n },\r\n isValid: function(value) {\r\n var co = this._canvasOptions;\r\n value = this.fromValue(value);\r\n return null !== value && !isNaN(value) && value.valueOf() + co.rangeDoubleError >= co.rangeMin && value.valueOf() - co.rangeDoubleError <= co.rangeMax\r\n },\r\n getCorrectValue: function(value, direction) {\r\n var breaks = this._breaks;\r\n var prop;\r\n value = this.fromValue(value);\r\n if (this._breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, value, \"trFrom\", \"trTo\", this._checkingMethodsAboutBreaks[0]);\r\n if (true === prop.inBreak) {\r\n return this.toValue(direction > 0 ? prop.break.trTo : prop.break.trFrom)\r\n }\r\n }\r\n return this.toValue(value)\r\n },\r\n to: function(bp, direction, skipRound) {\r\n var range = this.getBusinessRange();\r\n if (isDefined(range.maxVisible) && isDefined(range.minVisible) && range.maxVisible.valueOf() === range.minVisible.valueOf()) {\r\n if (!isDefined(bp) || range.maxVisible.valueOf() !== bp.valueOf()) {\r\n return null\r\n }\r\n return this.translateSpecialCase(0 === bp && this._options.shiftZeroValue ? \"canvas_position_default\" : \"canvas_position_middle\")\r\n }\r\n bp = this.fromValue(bp);\r\n var canvasOptions = this._canvasOptions;\r\n var breaks = this._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, bp, \"trFrom\", \"trTo\", this._checkingMethodsAboutBreaks[0]);\r\n commonBreakSize = isDefined(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return prop.break.start\r\n } else if (direction < 0) {\r\n return prop.break.end\r\n } else {\r\n return null\r\n }\r\n }\r\n return this._conversionValue(this._calculateProjection((bp - canvasOptions.rangeMinVisible - prop.length) * canvasOptions.ratioOfCanvasRange + commonBreakSize), skipRound)\r\n },\r\n from: function(pos, direction) {\r\n var breaks = this._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, pos, \"start\", \"end\", this._checkingMethodsAboutBreaks[1]);\r\n commonBreakSize = isDefined(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return this.toValue(prop.break.trTo)\r\n } else if (direction < 0) {\r\n return this.toValue(prop.break.trFrom)\r\n } else {\r\n return null\r\n }\r\n }\r\n return this.toValue(this._calculateUnProjection((pos - startPoint - commonBreakSize) / canvasOptions.ratioOfCanvasRange + prop.length))\r\n },\r\n isValueProlonged: false,\r\n getRange: function() {\r\n return [this.toValue(this._canvasOptions.rangeMin), this.toValue(this._canvasOptions.rangeMax)]\r\n },\r\n getScreenRange: function() {\r\n return [this._canvasOptions.startPoint, this._canvasOptions.endPoint]\r\n },\r\n add: function(value, diff, dir) {\r\n return this._add(value, diff, (this._businessRange.invert ? -1 : 1) * dir)\r\n },\r\n _add: function(value, diff, coeff) {\r\n return this.toValue(this.fromValue(value) + diff * coeff)\r\n },\r\n fromValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n toValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n ratioOfCanvasRange() {\r\n return this._canvasOptions.ratioOfCanvasRange\r\n },\r\n convert: value => value,\r\n getRangeByMinZoomValue(minZoom, visualRange) {\r\n if (visualRange.minVisible + minZoom <= this._businessRange.max) {\r\n return [visualRange.minVisible, visualRange.minVisible + minZoom]\r\n } else {\r\n return [visualRange.maxVisible - minZoom, visualRange.maxVisible]\r\n }\r\n }\r\n};\r\nexport {\r\n _Translator2d as Translator2D\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/tick.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getPathStyle(options) {\r\n return {\r\n stroke: options.color,\r\n \"stroke-width\": options.width,\r\n \"stroke-opacity\": options.opacity,\r\n opacity: 1\r\n }\r\n}\r\n\r\nfunction createTick(axis, renderer, tickOptions, gridOptions, skippedCategory, skipLabels, offset) {\r\n var tickOffset = offset || axis._tickOffset;\r\n var lineGroup = axis._axisLineGroup;\r\n var elementsGroup = axis._axisElementsGroup;\r\n var tickStyle = getPathStyle(tickOptions);\r\n var gridStyle = getPathStyle(gridOptions);\r\n var emptyStrRegExp = /^\\s+$/;\r\n var axisOptions = axis.getOptions();\r\n var labelOptions = axisOptions.label;\r\n var labelStyle = axis._textOptions;\r\n\r\n function getLabelFontStyle(tick) {\r\n var fontStyle = axis._textFontStyles;\r\n var customizeColor = labelOptions.customizeColor;\r\n if (customizeColor && customizeColor.call) {\r\n fontStyle = extend({}, axis._textFontStyles, {\r\n fill: customizeColor.call(tick, tick)\r\n })\r\n }\r\n return fontStyle\r\n }\r\n\r\n function createLabelHint(tick, range) {\r\n var labelHint = axis.formatHint(tick.value, labelOptions, range);\r\n if (isDefined(labelHint) && \"\" !== labelHint) {\r\n tick.getContentContainer().setTitle(labelHint)\r\n }\r\n }\r\n return function(value) {\r\n var tick = {\r\n value: value,\r\n updateValue(newValue) {\r\n this.value = value = newValue\r\n },\r\n initCoords: function() {\r\n this.coords = axis._getTranslatedValue(value, tickOffset);\r\n this.labelCoords = axis._getTranslatedValue(value)\r\n },\r\n saveCoords() {\r\n this._lastStoredCoordinates = {\r\n coords: this._storedCoords,\r\n labelCoords: this._storedLabelsCoords\r\n };\r\n this._storedCoords = this.coords;\r\n this._storedLabelsCoords = this.templateContainer ? this._getTemplateCoords() : this.labelCoords\r\n },\r\n resetCoordinates() {\r\n if (this._lastStoredCoordinates) {\r\n this._storedCoords = this._lastStoredCoordinates.coords;\r\n this._storedLabelsCoords = this._lastStoredCoordinates.labelCoords\r\n }\r\n },\r\n drawMark(options) {\r\n if (!tickOptions.visible || skippedCategory === value) {\r\n return\r\n }\r\n if (axis.areCoordsOutsideAxis(this.coords)) {\r\n return\r\n }\r\n if (this.mark) {\r\n this.mark.append(lineGroup);\r\n axis.sharp(this.mark, axis.getSharpDirectionByCoords(this.coords));\r\n this.updateTickPosition(options)\r\n } else {\r\n this.mark = axis._createPathElement([], tickStyle, axis.getSharpDirectionByCoords(this.coords)).append(lineGroup);\r\n this.updateTickPosition(options)\r\n }\r\n },\r\n setSkippedCategory(category) {\r\n skippedCategory = category\r\n },\r\n _updateLine(lineElement, settings, storedSettings, animate, isGridLine) {\r\n if (!lineElement) {\r\n return\r\n }\r\n if (null === settings.points || null === settings.r) {\r\n lineElement.remove();\r\n return\r\n }\r\n if (animate && storedSettings && null !== storedSettings.points) {\r\n settings.opacity = 1;\r\n lineElement.attr(storedSettings);\r\n lineElement.animate(settings)\r\n } else {\r\n settings.opacity = animate ? 0 : 1;\r\n lineElement.attr(settings);\r\n animate && lineElement.animate({\r\n opacity: 1\r\n }, {\r\n delay: .5,\r\n partitionDuration: .5\r\n })\r\n }\r\n this.coords.angle && axis._rotateTick(lineElement, this.coords, isGridLine)\r\n },\r\n updateTickPosition: function(options, animate) {\r\n this._updateLine(this.mark, {\r\n points: axis._getTickMarkPoints(tick.coords, tickOptions.length, options)\r\n }, this._storedCoords && {\r\n points: axis._getTickMarkPoints(tick._storedCoords, tickOptions.length, options)\r\n }, animate, false)\r\n },\r\n drawLabel: function(range, template) {\r\n if (this.templateContainer && axis.isRendered()) {\r\n this.updateLabelPosition();\r\n return\r\n }\r\n var labelIsVisible = labelOptions.visible && !skipLabels && !axis.getTranslator().getBusinessRange().isEmpty() && !axis.areCoordsOutsideAxis(this.labelCoords);\r\n if (!labelIsVisible) {\r\n if (this.label) {\r\n this.removeLabel()\r\n }\r\n return\r\n }\r\n var templateOption = labelOptions.template;\r\n var text = axis.formatLabel(value, labelOptions, range);\r\n if (this.label) {\r\n this.label.attr({\r\n text: text,\r\n rotate: 0\r\n }).append(elementsGroup);\r\n createLabelHint(this, range);\r\n this.updateLabelPosition();\r\n return\r\n }\r\n if (templateOption) {\r\n this.templateContainer = renderer.g().append(elementsGroup);\r\n this._templateDef && this._templateDef.reject();\r\n this._templateDef = new Deferred;\r\n template.render({\r\n model: {\r\n valueText: text,\r\n value: this.value,\r\n labelFontStyle: getLabelFontStyle(this),\r\n labelStyle: labelStyle\r\n },\r\n container: this.templateContainer.element,\r\n onRendered: () => {\r\n this.updateLabelPosition();\r\n this._templateDef && this._templateDef.resolve()\r\n }\r\n })\r\n } else if (isDefined(text) && \"\" !== text && !emptyStrRegExp.test(text)) {\r\n this.label = renderer.text(text).css(getLabelFontStyle(this)).attr(labelStyle).append(elementsGroup);\r\n this.updateLabelPosition();\r\n createLabelHint(this, range)\r\n }\r\n var containerForData = this.getContentContainer();\r\n containerForData && containerForData.data(\"chart-data-argument\", this.value);\r\n this.templateContainer && createLabelHint(this, range)\r\n },\r\n getTemplateDeferred() {\r\n return this._templateDef\r\n },\r\n getContentContainer() {\r\n return this.templateContainer || this.label\r\n },\r\n fadeOutElements() {\r\n var startSettings = {\r\n opacity: 1\r\n };\r\n var endSettings = {\r\n opacity: 0\r\n };\r\n var animationSettings = {\r\n partitionDuration: .5\r\n };\r\n if (this.getContentContainer()) {\r\n this._fadeOutLabel()\r\n }\r\n if (this.grid) {\r\n this.grid.append(axis._axisGridGroup).attr(startSettings).animate(endSettings, animationSettings)\r\n }\r\n if (this.mark) {\r\n this.mark.append(axis._axisLineGroup).attr(startSettings).animate(endSettings, animationSettings)\r\n }\r\n },\r\n _fadeInLabel() {\r\n var group = axis._renderer.g().attr({\r\n opacity: 0\r\n }).append(axis._axisElementsGroup).animate({\r\n opacity: 1\r\n }, {\r\n delay: .5,\r\n partitionDuration: .5\r\n });\r\n this.getContentContainer().append(group)\r\n },\r\n _fadeOutLabel() {\r\n var group = axis._renderer.g().attr({\r\n opacity: 1\r\n }).animate({\r\n opacity: 0\r\n }, {\r\n partitionDuration: .5\r\n }).append(axis._axisElementsGroup).toBackground();\r\n this.getContentContainer().append(group)\r\n },\r\n _getTemplateCoords() {\r\n return axis._getLabelAdjustedCoord(this, (axis._constantLabelOffset || 0) + (tick.labelOffset || 0))\r\n },\r\n updateLabelPosition: function(animate) {\r\n var templateContainer = this.templateContainer;\r\n if (!this.getContentContainer()) {\r\n return\r\n }\r\n if (animate && this._storedLabelsCoords) {\r\n if (templateContainer) {\r\n templateContainer.attr(this._storedLabelsCoords);\r\n var lCoords = this._getTemplateCoords();\r\n templateContainer.animate(lCoords)\r\n } else {\r\n this.label.attr({\r\n x: this._storedLabelsCoords.x,\r\n y: this._storedLabelsCoords.y\r\n });\r\n this.label.animate({\r\n x: this.labelCoords.x,\r\n y: this.labelCoords.y\r\n })\r\n }\r\n } else {\r\n if (templateContainer) {\r\n var _lCoords = this._getTemplateCoords();\r\n templateContainer.attr(_lCoords)\r\n } else {\r\n this.label.attr({\r\n x: this.labelCoords.x,\r\n y: this.labelCoords.y\r\n })\r\n }\r\n if (animate) {\r\n this._fadeInLabel()\r\n }\r\n }\r\n },\r\n updateMultilineTextAlignment() {\r\n if (labelOptions.template || !this.label) {\r\n return\r\n }\r\n this.label.attr({\r\n textsAlignment: this.labelAlignment || axis.getOptions().label.alignment\r\n })\r\n },\r\n drawGrid: function(drawLine) {\r\n if (gridOptions.visible && skippedCategory !== this.value) {\r\n if (this.grid) {\r\n this.grid.append(axis._axisGridGroup);\r\n axis.sharp(this.grid, axis.getSharpDirectionByCoords(this.coords));\r\n this.updateGridPosition()\r\n } else {\r\n this.grid = drawLine(this, gridStyle);\r\n this.grid && this.grid.append(axis._axisGridGroup)\r\n }\r\n }\r\n },\r\n updateGridPosition: function(animate) {\r\n this._updateLine(this.grid, axis._getGridPoints(tick.coords), this._storedCoords && axis._getGridPoints(this._storedCoords), animate, true)\r\n },\r\n removeLabel() {\r\n var contentContainer = this.getContentContainer();\r\n contentContainer && contentContainer.remove();\r\n this._templateDef && this._templateDef.reject();\r\n this._templateDef = this.templateContainer = this.label = null\r\n }\r\n };\r\n return tick\r\n }\r\n}\r\nexport {\r\n createTick as tick\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/datetime_breaks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar days = [0, 1, 2, 3, 4, 5, 6];\r\n\r\nfunction getWeekendDays(workdays) {\r\n return days.filter((function(day) {\r\n return !workdays.some((function(workDay) {\r\n return workDay === day\r\n }))\r\n }))\r\n}\r\n\r\nfunction getNextDayIndex(dayIndex) {\r\n return (dayIndex + 1) % 7\r\n}\r\n\r\nfunction dayBetweenWeekend(weekend, day) {\r\n var start = weekend.start;\r\n var end = weekend.end;\r\n while (start !== end) {\r\n if (start === day) {\r\n return true\r\n }\r\n start = getNextDayIndex(start)\r\n }\r\n return false\r\n}\r\n\r\nfunction getDaysDistance(day, end) {\r\n var length = 0;\r\n while (day !== end) {\r\n day = getNextDayIndex(day);\r\n length++\r\n }\r\n return length\r\n}\r\n\r\nfunction separateBreak(scaleBreak, day) {\r\n var result = [];\r\n var dayEnd = new Date(day);\r\n dayEnd.setDate(day.getDate() + 1);\r\n if (day > scaleBreak.from) {\r\n result.push({\r\n from: scaleBreak.from,\r\n to: day\r\n })\r\n }\r\n if (dayEnd < scaleBreak.to) {\r\n result.push({\r\n from: dayEnd,\r\n to: scaleBreak.to\r\n })\r\n }\r\n return result\r\n}\r\n\r\nfunction getWeekEndDayIndices(workDays) {\r\n var indices = getWeekendDays(workDays);\r\n if (indices.length < 7) {\r\n while (getNextDayIndex(indices[indices.length - 1]) === indices[0]) {\r\n indices.unshift(indices.pop())\r\n }\r\n }\r\n return indices\r\n}\r\n\r\nfunction generateDateBreaksForWeekend(min, max, weekendDayIndices) {\r\n var day = min.getDate();\r\n var breaks = [];\r\n var weekends = weekendDayIndices.reduce((function(obj, day) {\r\n var currentWeekEnd = obj[1];\r\n if (void 0 === currentWeekEnd.start) {\r\n currentWeekEnd = {\r\n start: day,\r\n end: getNextDayIndex(day)\r\n };\r\n obj[0].push(currentWeekEnd);\r\n return [obj[0], currentWeekEnd]\r\n } else if (currentWeekEnd.end === day) {\r\n currentWeekEnd.end = getNextDayIndex(day);\r\n return obj\r\n }\r\n currentWeekEnd = {\r\n start: day,\r\n end: getNextDayIndex(day)\r\n };\r\n obj[0].push(currentWeekEnd);\r\n return [obj[0], currentWeekEnd]\r\n }), [\r\n [], {}\r\n ]);\r\n weekends[0].forEach((function(weekend) {\r\n var currentDate = new Date(min);\r\n currentDate = dateUtils.trimTime(currentDate);\r\n while (currentDate < max) {\r\n day = currentDate.getDay();\r\n var date = currentDate.getDate();\r\n if (dayBetweenWeekend(weekend, day)) {\r\n var from = new Date(currentDate);\r\n currentDate.setDate(date + getDaysDistance(day, weekend.end));\r\n var to = new Date(currentDate);\r\n breaks.push({\r\n from: from,\r\n to: to\r\n })\r\n }\r\n currentDate.setDate(currentDate.getDate() + 1)\r\n }\r\n }));\r\n return breaks\r\n}\r\n\r\nfunction excludeWorkDaysFromWeekEndBreaks(breaks, exactWorkDays) {\r\n var result = breaks.slice();\r\n var i;\r\n var processWorkDay = function(workday) {\r\n workday = dateUtils.trimTime(new Date(workday));\r\n if (result[i].from <= workday && result[i].to > workday) {\r\n var separatedBreak = separateBreak(result[i], workday);\r\n if (2 === separatedBreak.length) {\r\n result.splice(i, 1, separatedBreak[0], separatedBreak[1])\r\n } else if (1 === separatedBreak.length) {\r\n result.splice(i, 1, separatedBreak[0])\r\n } else {\r\n result.splice(i, 1)\r\n }\r\n }\r\n };\r\n for (i = 0; i < result.length; i++) {\r\n exactWorkDays.forEach(processWorkDay)\r\n }\r\n return result\r\n}\r\n\r\nfunction generateBreaksForHolidays(min, max, holidays, weekendDayIndices) {\r\n var day;\r\n var dayInWeekend = function(dayIndex) {\r\n return dayIndex === day\r\n };\r\n var adjustedMin = dateUtils.trimTime(min);\r\n var adjustedMax = dateUtils.trimTime(max);\r\n adjustedMax.setDate(max.getDate() + 1);\r\n return holidays.reduce((function(breaks, holiday) {\r\n var holidayStart;\r\n var holidayEnd;\r\n holiday = new Date(holiday);\r\n day = holiday.getDay();\r\n if (!weekendDayIndices.some(dayInWeekend) && holiday >= adjustedMin && holiday <= adjustedMax) {\r\n holidayStart = dateUtils.trimTime(holiday);\r\n holidayEnd = new Date(holidayStart);\r\n holidayEnd.setDate(holidayStart.getDate() + 1);\r\n breaks.push({\r\n from: holidayStart,\r\n to: holidayEnd\r\n })\r\n }\r\n return breaks\r\n }), [])\r\n}\r\n\r\nfunction calculateGaps(breaks) {\r\n return breaks.map((function(b) {\r\n return {\r\n from: b.from,\r\n to: b.to,\r\n gapSize: dateUtils.convertMillisecondsToDateUnits(b.to - b.from)\r\n }\r\n }))\r\n}\r\nexport function generateDateBreaks(min, max, workWeek, singleWorkdays, holidays) {\r\n var weekendDayIndices = getWeekEndDayIndices(workWeek);\r\n var breaks = generateDateBreaksForWeekend(min, max, weekendDayIndices);\r\n breaks.push.apply(breaks, generateBreaksForHolidays(min, max, holidays || [], weekendDayIndices));\r\n return calculateGaps(excludeWorkDaysFromWeekEndBreaks(breaks, singleWorkdays || []))\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/xy_axes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n generateDateBreaks\r\n} from \"./datetime_breaks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getLog,\r\n patchFontOptions,\r\n getCosAndSin\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport constants from \"./axes_constants\";\r\nvar getNextDateUnit = dateUtils.getNextDateUnit;\r\nvar correctDateWithUnitBeginning = dateUtils.correctDateWithUnitBeginning;\r\nvar _math = Math;\r\nvar _max = _math.max;\r\nvar TOP = constants.top;\r\nvar BOTTOM = constants.bottom;\r\nvar LEFT = constants.left;\r\nvar RIGHT = constants.right;\r\nvar CENTER = constants.center;\r\nvar SCALE_BREAK_OFFSET = 3;\r\nvar RANGE_RATIO = .3;\r\nvar WAVED_LINE_CENTER = 2;\r\nvar WAVED_LINE_TOP = 0;\r\nvar WAVED_LINE_BOTTOM = 4;\r\nvar WAVED_LINE_LENGTH = 24;\r\nvar TICKS_CORRECTIONS = {\r\n left: -1,\r\n top: -1,\r\n right: 0,\r\n bottom: 0,\r\n center: -.5\r\n};\r\n\r\nfunction prepareDatesDifferences(datesDifferences, tickInterval) {\r\n var dateUnitInterval;\r\n var i;\r\n if (\"week\" === tickInterval) {\r\n tickInterval = \"day\"\r\n }\r\n if (\"quarter\" === tickInterval) {\r\n tickInterval = \"month\"\r\n }\r\n if (datesDifferences[tickInterval]) {\r\n for (i = 0; i < dateUtils.dateUnitIntervals.length; i++) {\r\n dateUnitInterval = dateUtils.dateUnitIntervals[i];\r\n if (datesDifferences[dateUnitInterval]) {\r\n datesDifferences[dateUnitInterval] = false;\r\n datesDifferences.count--\r\n }\r\n if (dateUnitInterval === tickInterval) {\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction sortingBreaks(breaks) {\r\n return breaks.sort((function(a, b) {\r\n return a.from - b.from\r\n }))\r\n}\r\n\r\nfunction getMarkerDates(min, max, markerInterval) {\r\n var origMin = min;\r\n var dates;\r\n min = correctDateWithUnitBeginning(min, markerInterval);\r\n max = correctDateWithUnitBeginning(max, markerInterval);\r\n dates = dateUtils.getSequenceByInterval(min, max, markerInterval);\r\n if (dates.length && origMin > dates[0]) {\r\n dates = dates.slice(1)\r\n }\r\n return dates\r\n}\r\n\r\nfunction getStripHorizontalAlignmentPosition(alignment) {\r\n var position = \"start\";\r\n if (\"center\" === alignment) {\r\n position = \"center\"\r\n }\r\n if (\"right\" === alignment) {\r\n position = \"end\"\r\n }\r\n return position\r\n}\r\n\r\nfunction getStripVerticalAlignmentPosition(alignment) {\r\n var position = \"start\";\r\n if (\"center\" === alignment) {\r\n position = \"center\"\r\n }\r\n if (\"bottom\" === alignment) {\r\n position = \"end\"\r\n }\r\n return position\r\n}\r\n\r\nfunction getMarkerInterval(tickInterval) {\r\n var markerInterval = getNextDateUnit(tickInterval);\r\n if (\"quarter\" === markerInterval) {\r\n markerInterval = getNextDateUnit(markerInterval)\r\n }\r\n return markerInterval\r\n}\r\n\r\nfunction getMarkerFormat(curDate, prevDate, tickInterval, markerInterval) {\r\n var format = markerInterval;\r\n var datesDifferences = prevDate && dateUtils.getDatesDifferences(prevDate, curDate);\r\n if (prevDate && \"year\" !== tickInterval) {\r\n prepareDatesDifferences(datesDifferences, tickInterval);\r\n format = formatHelper.getDateFormatByDifferences(datesDifferences)\r\n }\r\n return format\r\n}\r\n\r\nfunction getMaxSide(act, boxes) {\r\n return boxes.reduce((function(prevValue, box) {\r\n return _max(prevValue, act(box))\r\n }), 0)\r\n}\r\n\r\nfunction getDistanceByAngle(bBox, rotationAngle) {\r\n rotationAngle = _math.abs(rotationAngle);\r\n rotationAngle = rotationAngle % 180 >= 90 ? 90 - rotationAngle % 90 : rotationAngle % 90;\r\n var a = rotationAngle * (_math.PI / 180);\r\n if (a >= _math.atan(bBox.height / bBox.width)) {\r\n return bBox.height / _math.abs(_math.sin(a))\r\n } else {\r\n return bBox.width\r\n }\r\n}\r\n\r\nfunction getMaxConstantLinePadding(constantLines) {\r\n return constantLines.reduce((function(padding, options) {\r\n return _max(padding, options.paddingTopBottom)\r\n }), 0)\r\n}\r\n\r\nfunction getConstantLineLabelMarginForVerticalAlignment(constantLines, alignment, labelHeight) {\r\n return constantLines.some((function(options) {\r\n return options.label.verticalAlignment === alignment\r\n })) && labelHeight || 0\r\n}\r\n\r\nfunction getLeftMargin(bBox) {\r\n return _math.abs(bBox.x) || 0\r\n}\r\n\r\nfunction getRightMargin(bBox) {\r\n return _math.abs(bBox.width - _math.abs(bBox.x)) || 0\r\n}\r\n\r\nfunction generateRangesOnPoints(points, edgePoints, getRange) {\r\n var i;\r\n var length;\r\n var maxRange = null;\r\n var ranges = [];\r\n var curValue;\r\n var prevValue;\r\n var curRange;\r\n for (i = 1, length = points.length; i < length; i++) {\r\n curValue = points[i];\r\n prevValue = points[i - 1];\r\n curRange = getRange(curValue, prevValue);\r\n if (edgePoints.indexOf(curValue) >= 0) {\r\n if (!maxRange || curRange > maxRange.length) {\r\n maxRange = {\r\n start: curValue,\r\n end: prevValue,\r\n length: curRange\r\n }\r\n }\r\n } else {\r\n if (maxRange && curRange < maxRange.length) {\r\n ranges.push(maxRange)\r\n } else {\r\n ranges.push({\r\n start: curValue,\r\n end: prevValue,\r\n length: curRange\r\n })\r\n }\r\n maxRange = null\r\n }\r\n }\r\n if (maxRange) {\r\n ranges.push(maxRange)\r\n }\r\n return ranges\r\n}\r\n\r\nfunction generateAutoBreaks(_ref, series, _ref2) {\r\n var {\r\n logarithmBase: logarithmBase,\r\n type: type,\r\n maxAutoBreakCount: maxAutoBreakCount\r\n } = _ref;\r\n var {\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = _ref2;\r\n var breaks = [];\r\n var getRange = \"logarithmic\" === type ? (min, max) => getLog(max / min, logarithmBase) : (min, max) => max - min;\r\n var visibleRange = getRange(minVisible, maxVisible);\r\n var points = series.reduce((result, s) => {\r\n var points = s.getPointsInViewPort();\r\n result[0] = result[0].concat(points[0]);\r\n result[1] = result[1].concat(points[1]);\r\n return result\r\n }, [\r\n [],\r\n []\r\n ]);\r\n var sortedAllPoints = points[0].concat(points[1]).sort((a, b) => b - a);\r\n var edgePoints = points[1].filter(p => points[0].indexOf(p) < 0);\r\n var minDiff = RANGE_RATIO * visibleRange;\r\n var ranges = generateRangesOnPoints(sortedAllPoints, edgePoints, getRange).sort((a, b) => b.length - a.length);\r\n var epsilon = _math.min.apply(null, ranges.map(r => r.length)) / 1e3;\r\n var _maxAutoBreakCount = isDefined(maxAutoBreakCount) ? _math.min(maxAutoBreakCount, ranges.length) : ranges.length;\r\n for (var i = 0; i < _maxAutoBreakCount; i++) {\r\n if (ranges[i].length >= minDiff) {\r\n if (visibleRange <= ranges[i].length) {\r\n break\r\n }\r\n visibleRange -= ranges[i].length;\r\n if (visibleRange > epsilon || visibleRange < -epsilon) {\r\n breaks.push({\r\n from: ranges[i].start,\r\n to: ranges[i].end\r\n });\r\n minDiff = RANGE_RATIO * visibleRange\r\n }\r\n } else {\r\n break\r\n }\r\n }\r\n sortingBreaks(breaks);\r\n return breaks\r\n}\r\nexport default {\r\n linear: {\r\n _getStep: function(boxes, rotationAngle) {\r\n var spacing = this._options.label.minSpacing;\r\n var func = this._isHorizontal ? function(box) {\r\n return box.width + spacing\r\n } : function(box) {\r\n return box.height\r\n };\r\n var maxLabelLength = getMaxSide(func, boxes);\r\n if (rotationAngle) {\r\n maxLabelLength = getDistanceByAngle({\r\n width: maxLabelLength,\r\n height: this._getMaxLabelHeight(boxes, 0)\r\n }, rotationAngle)\r\n }\r\n return constants.getTicksCountInRange(this._majorTicks, this._isHorizontal ? \"x\" : \"y\", maxLabelLength)\r\n },\r\n _getMaxLabelHeight: function(boxes, spacing) {\r\n return getMaxSide((function(box) {\r\n return box.height\r\n }), boxes) + spacing\r\n },\r\n _validateOverlappingMode: function(mode, displayMode) {\r\n if (this._isHorizontal && (\"rotate\" === displayMode || \"stagger\" === displayMode) || !this._isHorizontal) {\r\n return constants.validateOverlappingMode(mode)\r\n }\r\n return mode\r\n },\r\n _validateDisplayMode: function(mode) {\r\n return this._isHorizontal ? mode : \"standard\"\r\n },\r\n getMarkerTrackers: function() {\r\n return this._markerTrackers\r\n },\r\n _getSharpParam: function(opposite) {\r\n return this._isHorizontal ^ opposite ? \"h\" : \"v\"\r\n },\r\n _createAxisElement: function() {\r\n return this._renderer.path([], \"line\")\r\n },\r\n _updateAxisElementPosition: function() {\r\n var axisCoord = this._axisPosition;\r\n var canvas = this._getCanvasStartEnd();\r\n this._axisElement.attr({\r\n points: this._isHorizontal ? [canvas.start, axisCoord, canvas.end, axisCoord] : [axisCoord, canvas.start, axisCoord, canvas.end]\r\n })\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset)\r\n },\r\n _initAxisPositions() {\r\n if (this.customPositionIsAvailable()) {\r\n this._customBoundaryPosition = this.getCustomBoundaryPosition()\r\n }\r\n if (!this.customPositionIsAvailable() || this.customPositionIsBoundary()) {\r\n this._axisPosition = this.getPredefinedPosition(this.getResolvedBoundaryPosition())\r\n } else {\r\n this._axisPosition = this.getCustomPosition()\r\n }\r\n },\r\n _getTickMarkPoints(coords, length, tickOptions) {\r\n var isHorizontal = this._isHorizontal;\r\n var tickOrientation = this._options.tickOrientation;\r\n var labelPosition = this._options.label.position;\r\n var tickStartCoord;\r\n if (isDefined(tickOrientation)) {\r\n tickStartCoord = TICKS_CORRECTIONS[tickOrientation] * length\r\n } else {\r\n var shift = tickOptions.shift || 0;\r\n if (!isHorizontal && labelPosition === LEFT || isHorizontal && labelPosition !== BOTTOM) {\r\n shift = -shift\r\n }\r\n tickStartCoord = shift + this.getTickStartPositionShift(length)\r\n }\r\n return [coords.x + (isHorizontal ? 0 : tickStartCoord), coords.y + (isHorizontal ? tickStartCoord : 0), coords.x + (isHorizontal ? 0 : tickStartCoord + length), coords.y + (isHorizontal ? tickStartCoord + length : 0)]\r\n },\r\n getTickStartPositionShift(length) {\r\n var width = this._options.width;\r\n var position = this.getResolvedBoundaryPosition();\r\n return length % 2 === 1 ? width % 2 === 0 && (position === LEFT || position === TOP) || width % 2 === 1 && (position === RIGHT || position === BOTTOM) && !this.hasNonBoundaryPosition() ? Math.floor(-length / 2) : -Math.floor(length / 2) : -length / 2 + (width % 2 === 0 ? 0 : position === BOTTOM || position === RIGHT ? -1 : 1)\r\n },\r\n _getTitleCoords: function() {\r\n var horizontal = this._isHorizontal;\r\n var x = this._axisPosition;\r\n var y = this._axisPosition;\r\n var align = this._options.title.alignment;\r\n var canvas = this._getCanvasStartEnd();\r\n var fromStartToEnd = horizontal || this._options.position === LEFT;\r\n var canvasStart = fromStartToEnd ? canvas.start : canvas.end;\r\n var canvasEnd = fromStartToEnd ? canvas.end : canvas.start;\r\n var coord = align === LEFT ? canvasStart : align === RIGHT ? canvasEnd : canvas.start + (canvas.end - canvas.start) / 2;\r\n if (horizontal) {\r\n x = coord\r\n } else {\r\n y = coord\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _drawTitleText: function(group, coords) {\r\n var options = this._options;\r\n var titleOptions = options.title;\r\n var attrs = {\r\n opacity: titleOptions.opacity,\r\n align: titleOptions.alignment,\r\n class: titleOptions.cssClass\r\n };\r\n if (!titleOptions.text || !group) {\r\n return\r\n }\r\n coords = coords || this._getTitleCoords();\r\n if (!this._isHorizontal) {\r\n attrs.rotate = options.position === LEFT ? 270 : 90\r\n }\r\n var text = this._renderer.text(titleOptions.text, coords.x, coords.y).css(patchFontOptions(titleOptions.font)).attr(attrs).append(group);\r\n this._checkTitleOverflow(text);\r\n return text\r\n },\r\n _updateTitleCoords: function() {\r\n this._title && this._title.element.attr(this._getTitleCoords())\r\n },\r\n _drawTitle: function() {\r\n var title = this._drawTitleText(this._axisTitleGroup);\r\n if (title) {\r\n this._title = {\r\n element: title\r\n }\r\n }\r\n },\r\n _measureTitle: function() {\r\n if (this._title) {\r\n if (this._title.bBox && !this._title.originalSize) {\r\n this._title.originalSize = this._title.bBox\r\n }\r\n this._title.bBox = this._title.element.getBBox()\r\n }\r\n },\r\n _drawDateMarker: function(date, options, range) {\r\n var markerOptions = this._options.marker;\r\n var invert = this._translator.getBusinessRange().invert;\r\n var textIndent = markerOptions.width + markerOptions.textLeftIndent;\r\n var pathElement;\r\n if (null === options.x) {\r\n return\r\n }\r\n if (!options.withoutStick) {\r\n pathElement = this._renderer.path([options.x, options.y, options.x, options.y + markerOptions.separatorHeight], \"line\").attr({\r\n \"stroke-width\": markerOptions.width,\r\n stroke: markerOptions.color,\r\n \"stroke-opacity\": markerOptions.opacity,\r\n sharp: \"h\"\r\n }).append(this._axisElementsGroup)\r\n }\r\n var text = String(this.formatLabel(date, options.labelOptions, range));\r\n return {\r\n date: date,\r\n x: options.x,\r\n y: options.y,\r\n cropped: options.withoutStick,\r\n label: this._renderer.text(text, options.x, options.y).css(patchFontOptions(markerOptions.label.font)).append(this._axisElementsGroup),\r\n line: pathElement,\r\n getContentContainer() {\r\n return this.label\r\n },\r\n getEnd: function() {\r\n return this.x + (invert ? -1 : 1) * (textIndent + this.labelBBox.width)\r\n },\r\n setTitle: function() {\r\n this.title = text\r\n },\r\n hideLabel: function() {\r\n this.label.dispose();\r\n this.label = null;\r\n this.title = text\r\n },\r\n hide: function() {\r\n if (pathElement) {\r\n pathElement.dispose();\r\n pathElement = null\r\n }\r\n this.label.dispose();\r\n this.label = null;\r\n this.hidden = true\r\n }\r\n }\r\n },\r\n _drawDateMarkers: function() {\r\n var that = this;\r\n var options = that._options;\r\n var translator = that._translator;\r\n var viewport = that._getViewportRange();\r\n var minBound = viewport.minVisible;\r\n var dateMarkers = [];\r\n var dateMarker;\r\n\r\n function draw(markerDate, format, withoutStick) {\r\n return that._drawDateMarker(markerDate, {\r\n x: translator.translate(markerDate),\r\n y: markersAreaTop,\r\n labelOptions: that._getLabelFormatOptions(format),\r\n withoutStick: withoutStick\r\n }, viewport)\r\n }\r\n if (viewport.isEmpty() || !options.marker.visible || \"datetime\" !== options.argumentType || \"discrete\" === options.type || that._majorTicks.length <= 1) {\r\n return []\r\n }\r\n var markersAreaTop = that._axisPosition + options.marker.topIndent;\r\n var tickInterval = dateUtils.getDateUnitInterval(this._tickInterval);\r\n var markerInterval = getMarkerInterval(tickInterval);\r\n var markerDates = getMarkerDates(minBound, viewport.maxVisible, markerInterval);\r\n if (markerDates.length > 1 || 1 === markerDates.length && minBound < markerDates[0]) {\r\n dateMarkers = markerDates.reduce((function(markers, curDate, i, dates) {\r\n var marker = draw(curDate, getMarkerFormat(curDate, dates[i - 1] || minBound < curDate && minBound, tickInterval, markerInterval));\r\n marker && markers.push(marker);\r\n return markers\r\n }), []);\r\n if (minBound < markerDates[0]) {\r\n dateMarker = draw(minBound, getMarkerFormat(minBound, markerDates[0], tickInterval, markerInterval), true);\r\n dateMarker && dateMarkers.unshift(dateMarker)\r\n }\r\n }\r\n return dateMarkers\r\n },\r\n _adjustDateMarkers: function(offset) {\r\n offset = offset || 0;\r\n var that = this;\r\n var markerOptions = this._options.marker;\r\n var textIndent = markerOptions.width + markerOptions.textLeftIndent;\r\n var invert = this._translator.getBusinessRange().invert;\r\n var canvas = that._getCanvasStartEnd();\r\n var dateMarkers = this._dateMarkers;\r\n if (!dateMarkers.length) {\r\n return offset\r\n }\r\n if (dateMarkers[0].cropped) {\r\n if (!this._checkMarkersPosition(invert, dateMarkers[1], dateMarkers[0])) {\r\n dateMarkers[0].hideLabel()\r\n }\r\n }\r\n var prevDateMarker;\r\n dateMarkers.forEach((function(marker, i, markers) {\r\n if (marker.cropped) {\r\n return\r\n }\r\n if (invert ? marker.getEnd() < canvas.end : marker.getEnd() > canvas.end) {\r\n marker.hideLabel()\r\n } else if (that._checkMarkersPosition(invert, marker, prevDateMarker)) {\r\n prevDateMarker = marker\r\n } else {\r\n marker.hide()\r\n }\r\n }));\r\n this._dateMarkers.forEach((function(marker) {\r\n if (marker.label) {\r\n var labelBBox = marker.labelBBox;\r\n var dy = marker.y + markerOptions.textTopIndent - labelBBox.y;\r\n marker.label.attr({\r\n translateX: invert ? marker.x - textIndent - labelBBox.x - labelBBox.width : marker.x + textIndent - labelBBox.x,\r\n translateY: dy + offset\r\n })\r\n }\r\n if (marker.line) {\r\n marker.line.attr({\r\n translateY: offset\r\n })\r\n }\r\n }));\r\n that._initializeMarkersTrackers(offset);\r\n return offset + markerOptions.topIndent + markerOptions.separatorHeight\r\n },\r\n _checkMarkersPosition: function(invert, dateMarker, prevDateMarker) {\r\n if (void 0 === prevDateMarker) {\r\n return true\r\n }\r\n return invert ? dateMarker.x < prevDateMarker.getEnd() : dateMarker.x > prevDateMarker.getEnd()\r\n },\r\n _initializeMarkersTrackers: function(offset) {\r\n var separatorHeight = this._options.marker.separatorHeight;\r\n var renderer = this._renderer;\r\n var businessRange = this._translator.getBusinessRange();\r\n var canvas = this._getCanvasStartEnd();\r\n var group = this._axisElementsGroup;\r\n this._markerTrackers = this._dateMarkers.filter((function(marker) {\r\n return !marker.hidden\r\n })).map((function(marker, i, markers) {\r\n var nextMarker = markers[i + 1] || {\r\n x: canvas.end,\r\n date: businessRange.max\r\n };\r\n var x = marker.x;\r\n var y = marker.y + offset;\r\n var markerTracker = renderer.path([x, y, x, y + separatorHeight, nextMarker.x, y + separatorHeight, nextMarker.x, y, x, y], \"area\").attr({\r\n \"stroke-width\": 1,\r\n stroke: \"grey\",\r\n fill: \"grey\",\r\n opacity: 1e-4\r\n }).append(group);\r\n markerTracker.data(\"range\", {\r\n startValue: marker.date,\r\n endValue: nextMarker.date\r\n });\r\n if (marker.title) {\r\n markerTracker.setTitle(marker.title)\r\n }\r\n return markerTracker\r\n }))\r\n },\r\n _getLabelFormatOptions: function(formatString) {\r\n var markerLabelOptions = this._markerLabelOptions;\r\n if (!markerLabelOptions) {\r\n this._markerLabelOptions = markerLabelOptions = extend(true, {}, this._options.marker.label)\r\n }\r\n if (!isDefined(this._options.marker.label.format)) {\r\n markerLabelOptions.format = formatString\r\n }\r\n return markerLabelOptions\r\n },\r\n _adjustConstantLineLabels: function(constantLines) {\r\n var that = this;\r\n var axisPosition = that._options.position;\r\n var canvas = that.getCanvas();\r\n var canvasLeft = canvas.left;\r\n var canvasRight = canvas.width - canvas.right;\r\n var canvasTop = canvas.top;\r\n var canvasBottom = canvas.height - canvas.bottom;\r\n var verticalCenter = canvasTop + (canvasBottom - canvasTop) / 2;\r\n var horizontalCenter = canvasLeft + (canvasRight - canvasLeft) / 2;\r\n var maxLabel = 0;\r\n constantLines.forEach((function(item) {\r\n var isHorizontal = that._isHorizontal;\r\n var linesOptions = item.options;\r\n var paddingTopBottom = linesOptions.paddingTopBottom;\r\n var paddingLeftRight = linesOptions.paddingLeftRight;\r\n var labelOptions = linesOptions.label;\r\n var labelVerticalAlignment = labelOptions.verticalAlignment;\r\n var labelHorizontalAlignment = labelOptions.horizontalAlignment;\r\n var labelIsInside = \"inside\" === labelOptions.position;\r\n var label = item.label;\r\n var box = item.labelBBox;\r\n var translateX;\r\n var translateY;\r\n if (null === label || box.isEmpty) {\r\n return\r\n }\r\n if (isHorizontal) {\r\n if (labelIsInside) {\r\n if (labelHorizontalAlignment === LEFT) {\r\n translateX = item.coord - paddingLeftRight - box.x - box.width\r\n } else {\r\n translateX = item.coord + paddingLeftRight - box.x\r\n }\r\n switch (labelVerticalAlignment) {\r\n case CENTER:\r\n translateY = verticalCenter - box.y - box.height / 2;\r\n break;\r\n case BOTTOM:\r\n translateY = canvasBottom - paddingTopBottom - box.y - box.height;\r\n break;\r\n default:\r\n translateY = canvasTop + paddingTopBottom - box.y\r\n }\r\n } else {\r\n if (axisPosition === labelVerticalAlignment) {\r\n maxLabel = _max(maxLabel, box.height + paddingTopBottom)\r\n }\r\n translateX = item.coord - box.x - box.width / 2;\r\n if (labelVerticalAlignment === BOTTOM) {\r\n translateY = canvasBottom + paddingTopBottom - box.y\r\n } else {\r\n translateY = canvasTop - paddingTopBottom - box.y - box.height\r\n }\r\n }\r\n } else if (labelIsInside) {\r\n if (labelVerticalAlignment === BOTTOM) {\r\n translateY = item.coord + paddingTopBottom - box.y\r\n } else {\r\n translateY = item.coord - paddingTopBottom - box.y - box.height\r\n }\r\n switch (labelHorizontalAlignment) {\r\n case CENTER:\r\n translateX = horizontalCenter - box.x - box.width / 2;\r\n break;\r\n case RIGHT:\r\n translateX = canvasRight - paddingLeftRight - box.x - box.width;\r\n break;\r\n default:\r\n translateX = canvasLeft + paddingLeftRight - box.x\r\n }\r\n } else {\r\n if (axisPosition === labelHorizontalAlignment) {\r\n maxLabel = _max(maxLabel, box.width + paddingLeftRight)\r\n }\r\n translateY = item.coord - box.y - box.height / 2;\r\n if (labelHorizontalAlignment === RIGHT) {\r\n translateX = canvasRight + paddingLeftRight - box.x\r\n } else {\r\n translateX = canvasLeft - paddingLeftRight - box.x - box.width\r\n }\r\n }\r\n label.attr({\r\n translateX: translateX,\r\n translateY: translateY\r\n })\r\n }));\r\n return maxLabel\r\n },\r\n _drawConstantLinesForEstimating: function(constantLines) {\r\n var that = this;\r\n var renderer = this._renderer;\r\n var group = renderer.g();\r\n constantLines.forEach((function(options) {\r\n that._drawConstantLineLabelText(options.label.text, 0, 0, options.label, group).attr({\r\n align: \"center\"\r\n })\r\n }));\r\n return group.append(renderer.root)\r\n },\r\n _estimateLabelHeight: function(bBox, labelOptions) {\r\n var height = bBox.height;\r\n var drawingType = labelOptions.drawingType;\r\n if (\"stagger\" === this._validateDisplayMode(drawingType) || \"stagger\" === this._validateOverlappingMode(labelOptions.overlappingBehavior, drawingType)) {\r\n height = 2 * height + labelOptions.staggeringSpacing\r\n }\r\n if (\"rotate\" === this._validateDisplayMode(drawingType) || \"rotate\" === this._validateOverlappingMode(labelOptions.overlappingBehavior, drawingType)) {\r\n var sinCos = getCosAndSin(labelOptions.rotationAngle);\r\n height = height * sinCos.cos + bBox.width * sinCos.sin\r\n }\r\n return height && (height + labelOptions.indentFromAxis || 0) || 0\r\n },\r\n estimateMargins: function(canvas) {\r\n this.updateCanvas(canvas);\r\n var range = this._getViewportRange();\r\n var ticksData = this._createTicksAndLabelFormat(range);\r\n var ticks = ticksData.ticks;\r\n var tickInterval = ticksData.tickInterval;\r\n var options = this._options;\r\n var constantLineOptions = this._outsideConstantLines.filter(l => l.labelOptions.visible).map(l => l.options);\r\n var rootElement = this._renderer.root;\r\n var labelIsVisible = options.label.visible && !range.isEmpty() && ticks.length;\r\n var labelValue = labelIsVisible && this.formatLabel(ticks[ticks.length - 1], options.label, void 0, void 0, tickInterval, ticks);\r\n var labelElement = labelIsVisible && this._renderer.text(labelValue, 0, 0).css(this._textFontStyles).attr(this._textOptions).append(rootElement);\r\n var titleElement = this._drawTitleText(rootElement, {\r\n x: 0,\r\n y: 0\r\n });\r\n var constantLinesLabelsElement = this._drawConstantLinesForEstimating(constantLineOptions);\r\n var labelBox = !options.label.template && labelElement && labelElement.getBBox() || {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var titleBox = titleElement && titleElement.getBBox() || {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var constantLinesBox = constantLinesLabelsElement.getBBox();\r\n var titleHeight = titleBox.height ? titleBox.height + options.title.margin : 0;\r\n var labelHeight = this._estimateLabelHeight(labelBox, options.label);\r\n var constantLinesHeight = constantLinesBox.height ? constantLinesBox.height + getMaxConstantLinePadding(constantLineOptions) : 0;\r\n var height = labelHeight + titleHeight;\r\n var margins = {\r\n left: _max(getLeftMargin(labelBox), getLeftMargin(constantLinesBox)),\r\n right: _max(getRightMargin(labelBox), getRightMargin(constantLinesBox)),\r\n top: (\"top\" === options.position ? height : 0) + getConstantLineLabelMarginForVerticalAlignment(constantLineOptions, \"top\", constantLinesHeight),\r\n bottom: (\"top\" !== options.position ? height : 0) + getConstantLineLabelMarginForVerticalAlignment(constantLineOptions, \"bottom\", constantLinesHeight)\r\n };\r\n labelElement && labelElement.remove();\r\n titleElement && titleElement.remove();\r\n constantLinesLabelsElement && constantLinesLabelsElement.remove();\r\n return margins\r\n },\r\n _checkAlignmentConstantLineLabels: function(labelOptions) {\r\n var position = labelOptions.position;\r\n var verticalAlignment = (labelOptions.verticalAlignment || \"\").toLowerCase();\r\n var horizontalAlignment = (labelOptions.horizontalAlignment || \"\").toLowerCase();\r\n if (this._isHorizontal) {\r\n if (\"outside\" === position) {\r\n verticalAlignment = verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = CENTER\r\n } else {\r\n verticalAlignment = verticalAlignment === CENTER ? CENTER : verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = horizontalAlignment === LEFT ? LEFT : RIGHT\r\n }\r\n } else if (\"outside\" === position) {\r\n verticalAlignment = CENTER;\r\n horizontalAlignment = horizontalAlignment === LEFT ? LEFT : RIGHT\r\n } else {\r\n verticalAlignment = verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = horizontalAlignment === RIGHT ? RIGHT : horizontalAlignment === CENTER ? CENTER : LEFT\r\n }\r\n labelOptions.verticalAlignment = verticalAlignment;\r\n labelOptions.horizontalAlignment = horizontalAlignment\r\n },\r\n _getConstantLineLabelsCoords: function(value, lineLabelOptions) {\r\n var x = value;\r\n var y = value;\r\n if (this._isHorizontal) {\r\n y = this._orthogonalPositions[\"top\" === lineLabelOptions.verticalAlignment ? \"start\" : \"end\"]\r\n } else {\r\n x = this._orthogonalPositions[\"right\" === lineLabelOptions.horizontalAlignment ? \"end\" : \"start\"]\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getAdjustedStripLabelCoords: function(strip) {\r\n var stripOptions = strip.options;\r\n var paddingTopBottom = stripOptions.paddingTopBottom;\r\n var paddingLeftRight = stripOptions.paddingLeftRight;\r\n var horizontalAlignment = stripOptions.label.horizontalAlignment;\r\n var verticalAlignment = stripOptions.label.verticalAlignment;\r\n var box = strip.labelBBox;\r\n var labelHeight = box.height;\r\n var labelWidth = box.width;\r\n var labelCoords = strip.labelCoords;\r\n var y = labelCoords.y - box.y;\r\n var x = labelCoords.x - box.x;\r\n if (verticalAlignment === TOP) {\r\n y += paddingTopBottom\r\n } else if (verticalAlignment === CENTER) {\r\n y -= labelHeight / 2\r\n } else if (verticalAlignment === BOTTOM) {\r\n y -= paddingTopBottom + labelHeight\r\n }\r\n if (horizontalAlignment === LEFT) {\r\n x += paddingLeftRight\r\n } else if (horizontalAlignment === CENTER) {\r\n x -= labelWidth / 2\r\n } else if (horizontalAlignment === RIGHT) {\r\n x -= paddingLeftRight + labelWidth\r\n }\r\n return {\r\n translateX: x,\r\n translateY: y\r\n }\r\n },\r\n _adjustTitle: function(offset) {\r\n offset = offset || 0;\r\n if (!this._title) {\r\n return\r\n }\r\n var options = this._options;\r\n var position = options.position;\r\n var margin = options.title.margin;\r\n var title = this._title;\r\n var boxTitle = title.bBox;\r\n var x = boxTitle.x;\r\n var y = boxTitle.y;\r\n var width = boxTitle.width;\r\n var height = boxTitle.height;\r\n var axisPosition = this._axisPosition;\r\n var loCoord = axisPosition - margin - offset;\r\n var hiCoord = axisPosition + margin + offset;\r\n var params = {};\r\n if (this._isHorizontal) {\r\n if (position === TOP) {\r\n params.translateY = loCoord - (y + height)\r\n } else {\r\n params.translateY = hiCoord - y\r\n }\r\n } else if (position === LEFT) {\r\n params.translateX = loCoord - (x + width)\r\n } else {\r\n params.translateX = hiCoord - x\r\n }\r\n title.element.attr(params)\r\n },\r\n _checkTitleOverflow: function(titleElement) {\r\n if (!this._title && !titleElement) {\r\n return\r\n }\r\n var canvasLength = this._getScreenDelta();\r\n var title = titleElement ? {\r\n bBox: titleElement.getBBox(),\r\n element: titleElement\r\n } : this._title;\r\n var titleOptions = this._options.title;\r\n var boxTitle = title.bBox;\r\n if ((this._isHorizontal ? boxTitle.width : boxTitle.height) > canvasLength) {\r\n title.element.setMaxSize(canvasLength, void 0, {\r\n wordWrap: titleOptions.wordWrap || \"none\",\r\n textOverflow: titleOptions.textOverflow || \"ellipsis\"\r\n });\r\n this._wrapped = titleOptions.wordWrap && \"none\" !== titleOptions.wordWrap\r\n } else {\r\n var moreThanOriginalSize = title.originalSize && canvasLength > (this._isHorizontal ? title.originalSize.width : title.originalSize.height);\r\n !this._wrapped && moreThanOriginalSize && title.element.restoreText()\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n var canvas = this.getCanvas();\r\n var isHorizontal = this._options.isHorizontal;\r\n var position = this._options.position;\r\n var coord = isHorizontal ? y : x;\r\n if (isHorizontal && (x < canvas.left || x > canvas.width - canvas.right) || !isHorizontal && (y < canvas.top || y > canvas.height - canvas.bottom)) {\r\n return false\r\n }\r\n if (isHorizontal && position === constants.top || !isHorizontal && position === constants.left) {\r\n return coord < canvas[position]\r\n }\r\n return coord > canvas[isHorizontal ? \"height\" : \"width\"] - canvas[position]\r\n },\r\n _boundaryTicksVisibility: {\r\n min: true,\r\n max: true\r\n },\r\n adjust() {\r\n var seriesData = this._seriesData;\r\n var viewport = this._series.filter(s => s.isVisible()).reduce((range, s) => {\r\n var seriesRange = s.getViewport();\r\n range.min = isDefined(seriesRange.min) ? range.min < seriesRange.min ? range.min : seriesRange.min : range.min;\r\n range.max = isDefined(seriesRange.max) ? range.max > seriesRange.max ? range.max : seriesRange.max : range.max;\r\n if (s.showZero) {\r\n range = new Range(range);\r\n range.correctValueZeroLevel()\r\n }\r\n return range\r\n }, {});\r\n if (isDefined(viewport.min) && isDefined(viewport.max)) {\r\n seriesData.minVisible = viewport.min;\r\n seriesData.maxVisible = viewport.max\r\n }\r\n seriesData.userBreaks = this._getScaleBreaks(this._options, {\r\n minVisible: seriesData.minVisible,\r\n maxVisible: seriesData.maxVisible\r\n }, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n hasWrap() {\r\n return this._wrapped\r\n },\r\n getAxisPosition() {\r\n return this._axisPosition\r\n },\r\n _getStick: function() {\r\n return !this._options.valueMarginsEnabled\r\n },\r\n _getStripLabelCoords: function(from, to, stripLabelOptions) {\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var isHorizontal = this._isHorizontal;\r\n var horizontalAlignment = stripLabelOptions.horizontalAlignment;\r\n var verticalAlignment = stripLabelOptions.verticalAlignment;\r\n var x;\r\n var y;\r\n if (isHorizontal) {\r\n if (horizontalAlignment === CENTER) {\r\n x = from + (to - from) / 2\r\n } else if (horizontalAlignment === LEFT) {\r\n x = from\r\n } else if (horizontalAlignment === RIGHT) {\r\n x = to\r\n }\r\n y = orthogonalPositions[getStripVerticalAlignmentPosition(verticalAlignment)]\r\n } else {\r\n x = orthogonalPositions[getStripHorizontalAlignmentPosition(horizontalAlignment)];\r\n if (verticalAlignment === TOP) {\r\n y = from\r\n } else if (verticalAlignment === CENTER) {\r\n y = to + (from - to) / 2\r\n } else if (verticalAlignment === BOTTOM) {\r\n y = to\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var pos1 = this._translator.translate(value, offset, \"semidiscrete\" === this._options.type && this._options.tickInterval);\r\n var pos2 = this._axisPosition;\r\n var isHorizontal = this._isHorizontal;\r\n return {\r\n x: isHorizontal ? pos1 : pos2,\r\n y: isHorizontal ? pos2 : pos1\r\n }\r\n },\r\n areCoordsOutsideAxis: function(coords) {\r\n var coord = this._isHorizontal ? coords.x : coords.y;\r\n var visibleArea = this.getVisibleArea();\r\n if (coord < visibleArea[0] || coord > visibleArea[1]) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getSkippedCategory: function(ticks) {\r\n var skippedCategory;\r\n if (this._options.type === constants.discrete && this._tickOffset && 0 !== ticks.length) {\r\n skippedCategory = ticks[ticks.length - 1]\r\n }\r\n return skippedCategory\r\n },\r\n _filterBreaks: function(breaks, viewport, breakStyle) {\r\n var minVisible = viewport.minVisible;\r\n var maxVisible = viewport.maxVisible;\r\n var breakSize = breakStyle ? breakStyle.width : 0;\r\n return breaks.reduce((function(result, currentBreak) {\r\n var from = currentBreak.from;\r\n var to = currentBreak.to;\r\n var lastResult = result[result.length - 1];\r\n var newBreak;\r\n if (!isDefined(from) || !isDefined(to)) {\r\n return result\r\n }\r\n if (from > to) {\r\n to = [from, from = to][0]\r\n }\r\n if (result.length && from < lastResult.to) {\r\n if (to > lastResult.to) {\r\n lastResult.to = to > maxVisible ? maxVisible : to;\r\n if (lastResult.gapSize) {\r\n lastResult.gapSize = void 0;\r\n lastResult.cumulativeWidth += breakSize\r\n }\r\n }\r\n } else if (from >= minVisible && from < maxVisible || to <= maxVisible && to > minVisible) {\r\n from = from >= minVisible ? from : minVisible;\r\n to = to <= maxVisible ? to : maxVisible;\r\n if (to - from < maxVisible - minVisible) {\r\n var _lastResult$cumulativ;\r\n newBreak = {\r\n from: from,\r\n to: to,\r\n cumulativeWidth: (null !== (_lastResult$cumulativ = null === lastResult || void 0 === lastResult ? void 0 : lastResult.cumulativeWidth) && void 0 !== _lastResult$cumulativ ? _lastResult$cumulativ : 0) + breakSize\r\n };\r\n if (currentBreak.gapSize) {\r\n var _lastResult$cumulativ2;\r\n newBreak.gapSize = dateUtils.convertMillisecondsToDateUnits(to - from);\r\n newBreak.cumulativeWidth = null !== (_lastResult$cumulativ2 = null === lastResult || void 0 === lastResult ? void 0 : lastResult.cumulativeWidth) && void 0 !== _lastResult$cumulativ2 ? _lastResult$cumulativ2 : 0\r\n }\r\n result.push(newBreak)\r\n }\r\n }\r\n return result\r\n }), [])\r\n },\r\n _getScaleBreaks: function(axisOptions, viewport, series, isArgumentAxis) {\r\n var that = this;\r\n var breaks = (axisOptions.breaks || []).map((function(b) {\r\n return {\r\n from: that.parser(b.startValue),\r\n to: that.parser(b.endValue)\r\n }\r\n }));\r\n if (\"discrete\" !== axisOptions.type && \"datetime\" === axisOptions.dataType && axisOptions.workdaysOnly) {\r\n breaks = breaks.concat(generateDateBreaks(viewport.minVisible, viewport.maxVisible, axisOptions.workWeek, axisOptions.singleWorkdays, axisOptions.holidays))\r\n }\r\n if (!isArgumentAxis && \"discrete\" !== axisOptions.type && \"datetime\" !== axisOptions.dataType && axisOptions.autoBreaksEnabled && 0 !== axisOptions.maxAutoBreakCount) {\r\n breaks = breaks.concat(generateAutoBreaks(axisOptions, series, viewport))\r\n }\r\n return sortingBreaks(breaks)\r\n },\r\n _drawBreak: function(translatedEnd, positionFrom, positionTo, width, options, group) {\r\n var breakStart = translatedEnd - (!this._translator.isInverted() ? width + 1 : 0);\r\n var attr = {\r\n \"stroke-width\": 1,\r\n stroke: options.borderColor,\r\n sharp: !options.isWaved ? options.isHorizontal ? \"h\" : \"v\" : void 0\r\n };\r\n var spaceAttr = {\r\n stroke: options.color,\r\n \"stroke-width\": width\r\n };\r\n var getPoints = this._isHorizontal ? rotateLine : function(p) {\r\n return p\r\n };\r\n var drawer = getLineDrawer(this._renderer, group, getPoints, positionFrom, breakStart, positionTo, options.isWaved);\r\n drawer(width / 2, spaceAttr);\r\n drawer(0, attr);\r\n drawer(width, attr)\r\n },\r\n _createBreakClipRect: function(from, to) {\r\n var canvas = this._canvas;\r\n var clipWidth = to - from;\r\n var clipRect;\r\n if (this._isHorizontal) {\r\n clipRect = this._renderer.clipRect(canvas.left, from, canvas.width, clipWidth)\r\n } else {\r\n clipRect = this._renderer.clipRect(from, canvas.top, clipWidth, canvas.height)\r\n }\r\n this._breaksElements = this._breaksElements || [];\r\n this._breaksElements.push(clipRect);\r\n return clipRect.id\r\n },\r\n _createBreaksGroup: function(clipFrom, clipTo) {\r\n var group = this._renderer.g().attr({\r\n class: this._axisCssPrefix + \"breaks\",\r\n \"clip-path\": this._createBreakClipRect(clipFrom, clipTo)\r\n }).append(this._scaleBreaksGroup);\r\n this._breaksElements = this._breaksElements || [];\r\n this._breaksElements.push(group);\r\n return group\r\n },\r\n _disposeBreaksGroup: function() {\r\n (this._breaksElements || []).forEach((function(clipRect) {\r\n clipRect.dispose()\r\n }));\r\n this._breaksElements = null\r\n },\r\n drawScaleBreaks: function(customCanvas) {\r\n var that = this;\r\n var options = that._options;\r\n var breakStyle = options.breakStyle;\r\n var position = options.position;\r\n var positionFrom;\r\n var positionTo;\r\n var breaks = that._translator.getBusinessRange().breaks || [];\r\n var additionGroup;\r\n var additionBreakFrom;\r\n var additionBreakTo;\r\n that._disposeBreaksGroup();\r\n if (!(breaks && breaks.length)) {\r\n return\r\n }\r\n var breakOptions = {\r\n color: that._options.containerColor,\r\n borderColor: breakStyle.color,\r\n isHorizontal: that._isHorizontal,\r\n isWaved: \"straight\" !== breakStyle.line.toLowerCase()\r\n };\r\n if (customCanvas) {\r\n positionFrom = customCanvas.start;\r\n positionTo = customCanvas.end\r\n } else {\r\n positionFrom = that._orthogonalPositions.start - (options.visible && !that._axisShift && (position === LEFT || position === TOP) ? SCALE_BREAK_OFFSET : 0);\r\n positionTo = that._orthogonalPositions.end + (options.visible && (position === RIGHT || position === BOTTOM) ? SCALE_BREAK_OFFSET : 0)\r\n }\r\n var mainGroup = that._createBreaksGroup(positionFrom, positionTo);\r\n if (that._axisShift && options.visible) {\r\n additionBreakFrom = that._axisPosition - that._axisShift - SCALE_BREAK_OFFSET;\r\n additionBreakTo = additionBreakFrom + 2 * SCALE_BREAK_OFFSET;\r\n additionGroup = that._createBreaksGroup(additionBreakFrom, additionBreakTo)\r\n }\r\n breaks.forEach((function(br) {\r\n if (!br.gapSize) {\r\n var breakCoord = that._getTranslatedCoord(br.to);\r\n that._drawBreak(breakCoord, positionFrom, positionTo, breakStyle.width, breakOptions, mainGroup);\r\n if (that._axisShift && options.visible) {\r\n that._drawBreak(breakCoord, additionBreakFrom, additionBreakTo, breakStyle.width, breakOptions, additionGroup)\r\n }\r\n }\r\n }))\r\n },\r\n _getSpiderCategoryOption: noop,\r\n shift: function(margins) {\r\n var options = this._options;\r\n var isHorizontal = options.isHorizontal;\r\n var axesSpacing = this.getMultipleAxesSpacing();\r\n var constantLinesGroups = this._axisConstantLineGroups;\r\n\r\n function shiftGroup(side, group) {\r\n var attr = {\r\n translateX: 0,\r\n translateY: 0\r\n };\r\n var shift = margins[side] ? margins[side] + axesSpacing : 0;\r\n attr[isHorizontal ? \"translateY\" : \"translateX\"] = (side === LEFT || side === TOP ? -1 : 1) * shift;\r\n (group[side] || group).attr(attr);\r\n return shift\r\n }\r\n this._axisShift = shiftGroup(options.position, this._axisGroup);\r\n shiftGroup(options.position, this._axisElementsGroup);\r\n (isHorizontal ? [TOP, BOTTOM] : [LEFT, RIGHT]).forEach(side => {\r\n shiftGroup(side, constantLinesGroups.above);\r\n shiftGroup(side, constantLinesGroups.under)\r\n })\r\n },\r\n getCustomPosition(position) {\r\n var orthogonalAxis = this.getOrthogonalAxis();\r\n var resolvedPosition = null !== position && void 0 !== position ? position : this.getResolvedPositionOption();\r\n var offset = this.getOptions().offset;\r\n var orthogonalTranslator = orthogonalAxis.getTranslator();\r\n var orthogonalAxisType = orthogonalAxis.getOptions().type;\r\n var validPosition = orthogonalAxis.validateUnit(resolvedPosition);\r\n var currentPosition;\r\n if (\"discrete\" === orthogonalAxisType && (!orthogonalTranslator._categories || orthogonalTranslator._categories.indexOf(validPosition) < 0)) {\r\n validPosition = void 0\r\n }\r\n if (this.positionIsBoundary(resolvedPosition)) {\r\n currentPosition = this.getPredefinedPosition(resolvedPosition)\r\n } else if (!isDefined(validPosition)) {\r\n currentPosition = this.getPredefinedPosition(this.getOptions().position)\r\n } else {\r\n currentPosition = orthogonalTranslator.to(validPosition, -1)\r\n }\r\n if (isFinite(currentPosition) && isFinite(offset)) {\r\n currentPosition += offset\r\n }\r\n return currentPosition\r\n },\r\n getCustomBoundaryPosition(position) {\r\n var {\r\n customPosition: customPosition,\r\n offset: offset\r\n } = this.getOptions();\r\n var resolvedPosition = null !== position && void 0 !== position ? position : this.getResolvedPositionOption();\r\n var orthogonalAxis = this.getOrthogonalAxis();\r\n var orthogonalTranslator = orthogonalAxis.getTranslator();\r\n var visibleArea = orthogonalTranslator.getCanvasVisibleArea();\r\n if (!isDefined(orthogonalAxis._orthogonalPositions) || 0 === orthogonalTranslator.canvasLength) {\r\n return\r\n }\r\n var currentPosition = this.getCustomPosition(resolvedPosition);\r\n if (!isDefined(currentPosition)) {\r\n return this.getResolvedBoundaryPosition()\r\n } else if (isDefined(customPosition)) {\r\n if (currentPosition <= visibleArea.min) {\r\n return this._isHorizontal ? TOP : LEFT\r\n } else if (currentPosition >= visibleArea.max) {\r\n return this._isHorizontal ? BOTTOM : RIGHT\r\n }\r\n } else if (isDefined(offset)) {\r\n if (currentPosition <= this._orthogonalPositions.start) {\r\n return this._isHorizontal ? TOP : LEFT\r\n } else if (currentPosition >= this._orthogonalPositions.end) {\r\n return this._isHorizontal ? BOTTOM : RIGHT\r\n }\r\n }\r\n return currentPosition\r\n },\r\n getResolvedPositionOption() {\r\n var _options$customPositi;\r\n var options = this.getOptions();\r\n return null !== (_options$customPositi = options.customPosition) && void 0 !== _options$customPositi ? _options$customPositi : options.position\r\n },\r\n customPositionIsAvailable() {\r\n var options = this.getOptions();\r\n return isDefined(this.getOrthogonalAxis()) && (isDefined(options.customPosition) || isFinite(options.offset))\r\n },\r\n hasNonBoundaryPosition() {\r\n return this.customPositionIsAvailable() && !this.customPositionIsBoundary()\r\n },\r\n getResolvedBoundaryPosition() {\r\n return this.customPositionIsBoundary() ? this._customBoundaryPosition : this.getOptions().position\r\n },\r\n customPositionEqualsToPredefined() {\r\n return this.customPositionIsBoundary() && this._customBoundaryPosition === this.getOptions().position\r\n },\r\n customPositionIsBoundary() {\r\n return this.positionIsBoundary(this._customBoundaryPosition)\r\n },\r\n positionIsBoundary: position => [TOP, LEFT, BOTTOM, RIGHT].indexOf(position) >= 0,\r\n getPredefinedPosition(position) {\r\n var _this$_orthogonalPosi;\r\n return null === (_this$_orthogonalPosi = this._orthogonalPositions) || void 0 === _this$_orthogonalPosi ? void 0 : _this$_orthogonalPosi[position === TOP || position === LEFT ? \"start\" : \"end\"]\r\n },\r\n resolveOverlappingForCustomPositioning(oppositeAxes) {\r\n var that = this;\r\n if (!that.hasNonBoundaryPosition() && !that.customPositionIsBoundary() && !oppositeAxes.some(a => a.hasNonBoundaryPosition())) {\r\n return\r\n }\r\n var overlappingObj = {\r\n axes: [],\r\n ticks: []\r\n };\r\n oppositeAxes.filter(orthogonalAxis => orthogonalAxis.pane === that.pane).forEach(orthogonalAxis => {\r\n for (var i = 0; i < that._majorTicks.length; i++) {\r\n var tick = that._majorTicks[i];\r\n var label = tick.label;\r\n if (label) {\r\n if (overlappingObj.axes.indexOf(orthogonalAxis) < 0 && that._detectElementsOverlapping(label, orthogonalAxis._axisElement)) {\r\n overlappingObj.axes.push(orthogonalAxis);\r\n that._shiftThroughOrthogonalAxisOverlappedTick(label, orthogonalAxis)\r\n }\r\n for (var j = 0; j < orthogonalAxis._majorTicks.length; j++) {\r\n var oppositeTick = orthogonalAxis._majorTicks[j];\r\n var oppositeLabel = oppositeTick.label;\r\n if (oppositeLabel && that._detectElementsOverlapping(label, oppositeLabel)) {\r\n overlappingObj.ticks.push(tick);\r\n that._shiftThroughAxisOverlappedTick(tick);\r\n i = that._majorTicks.length;\r\n break\r\n }\r\n }\r\n }\r\n if (tick.mark && overlappingObj.ticks.indexOf(tick) < 0) {\r\n if (that._isHorizontal && tick.mark.attr(\"translateY\")) {\r\n tick.mark.attr({\r\n translateY: 0\r\n })\r\n } else if (!that._isHorizontal && tick.mark.attr(\"translateX\")) {\r\n tick.mark.attr({\r\n translateX: 0\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _shiftThroughOrthogonalAxisOverlappedTick(label, orthogonalAxis) {\r\n var labelBBox = label.getBBox();\r\n var orthogonalAxisPosition = orthogonalAxis.getAxisPosition();\r\n var orthogonalAxisLabelOptions = orthogonalAxis.getOptions().label;\r\n var orthogonalAxisLabelPosition = orthogonalAxisLabelOptions.position;\r\n var orthogonalAxisLabelIndent = orthogonalAxisLabelOptions.indentFromAxis / 2;\r\n var translateCoordName = this._isHorizontal ? \"translateX\" : \"translateY\";\r\n var defaultOrthogonalAxisLabelPosition = this._isHorizontal ? LEFT : TOP;\r\n var translate = label.attr(translateCoordName);\r\n var labelCoord = (this._isHorizontal ? labelBBox.x : labelBBox.y) + translate;\r\n var labelSize = this._isHorizontal ? labelBBox.width : labelBBox.height;\r\n var outsidePart = orthogonalAxisPosition - labelCoord;\r\n var insidePart = labelCoord + labelSize - orthogonalAxisPosition;\r\n var attr = {};\r\n attr[translateCoordName] = translate;\r\n if (outsidePart > 0 && insidePart > 0) {\r\n if (insidePart - outsidePart > 1) {\r\n attr[translateCoordName] += outsidePart + orthogonalAxisLabelIndent\r\n } else if (outsidePart - insidePart > 1) {\r\n attr[translateCoordName] -= insidePart + orthogonalAxisLabelIndent\r\n } else {\r\n attr[translateCoordName] += orthogonalAxisLabelPosition === defaultOrthogonalAxisLabelPosition ? outsidePart + orthogonalAxisLabelIndent : -(insidePart + orthogonalAxisLabelIndent)\r\n }\r\n label.attr(attr)\r\n }\r\n },\r\n _shiftThroughAxisOverlappedTick(tick) {\r\n var _tick$mark;\r\n var label = tick.label;\r\n if (!label) {\r\n return\r\n }\r\n var labelBBox = label.getBBox();\r\n var tickMarkBBox = null === (_tick$mark = tick.mark) || void 0 === _tick$mark ? void 0 : _tick$mark.getBBox();\r\n var axisPosition = this.getAxisPosition();\r\n var labelOptions = this.getOptions().label;\r\n var labelIndent = labelOptions.indentFromAxis;\r\n var labelPosition = labelOptions.position;\r\n var defaultLabelPosition = this._isHorizontal ? TOP : LEFT;\r\n var translateCoordName = this._isHorizontal ? \"translateY\" : \"translateX\";\r\n var translate = label.attr(translateCoordName);\r\n var labelCoord = (this._isHorizontal ? labelBBox.y : labelBBox.x) + translate;\r\n var labelSize = this._isHorizontal ? labelBBox.height : labelBBox.width;\r\n var attr = {};\r\n attr[translateCoordName] = translate + (labelPosition === defaultLabelPosition ? axisPosition - labelCoord + labelIndent : -(labelCoord - axisPosition + labelSize + labelIndent));\r\n label.attr(attr);\r\n if (tick.mark) {\r\n var markerSize = this._isHorizontal ? tickMarkBBox.height : tickMarkBBox.width;\r\n var dir = labelPosition === defaultLabelPosition ? 1 : -1;\r\n attr[translateCoordName] = dir * (markerSize - 1);\r\n tick.mark.attr(attr)\r\n }\r\n },\r\n _detectElementsOverlapping(element1, element2) {\r\n if (!element1 || !element2) {\r\n return false\r\n }\r\n var bBox1 = element1.getBBox();\r\n var x1 = bBox1.x + element1.attr(\"translateX\");\r\n var y1 = bBox1.y + element1.attr(\"translateY\");\r\n var bBox2 = element2.getBBox();\r\n var x2 = bBox2.x + element2.attr(\"translateX\");\r\n var y2 = bBox2.y + element2.attr(\"translateY\");\r\n return (x2 >= x1 && x2 <= x1 + bBox1.width || x1 >= x2 && x1 <= x2 + bBox2.width) && (y2 >= y1 && y2 <= y1 + bBox1.height || y1 >= y2 && y1 <= y2 + bBox2.height)\r\n }\r\n }\r\n};\r\n\r\nfunction getLineDrawer(renderer, root, rotatePoints, positionFrom, breakStart, positionTo, isWaved) {\r\n var elementType = isWaved ? \"bezier\" : \"line\";\r\n var group = renderer.g().append(root);\r\n return function(offset, attr) {\r\n renderer.path(rotatePoints(getPoints(positionFrom, breakStart, positionTo, offset, isWaved)), elementType).attr(attr).append(group)\r\n }\r\n}\r\n\r\nfunction getPoints(positionFrom, breakStart, positionTo, offset, isWaved) {\r\n if (!isWaved) {\r\n return [positionFrom, breakStart + offset, positionTo, breakStart + offset]\r\n }\r\n breakStart += offset;\r\n var currentPosition;\r\n var topPoint = breakStart + WAVED_LINE_TOP;\r\n var centerPoint = breakStart + WAVED_LINE_CENTER;\r\n var bottomPoint = breakStart + WAVED_LINE_BOTTOM;\r\n var points = [\r\n [positionFrom, centerPoint]\r\n ];\r\n for (currentPosition = positionFrom; currentPosition < positionTo + WAVED_LINE_LENGTH; currentPosition += WAVED_LINE_LENGTH) {\r\n points.push([currentPosition + 6, topPoint, currentPosition + 6, topPoint, currentPosition + 12, centerPoint, currentPosition + 18, bottomPoint, currentPosition + 18, bottomPoint, currentPosition + 24, centerPoint])\r\n }\r\n return [].concat.apply([], points)\r\n}\r\n\r\nfunction rotateLine(lineCoords) {\r\n var points = [];\r\n var i;\r\n for (i = 0; i < lineCoords.length; i += 2) {\r\n points.push(lineCoords[i + 1]);\r\n points.push(lineCoords[i])\r\n }\r\n return points\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/axes_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _max = Math.max;\r\nexport var calculateCanvasMargins = function(bBoxes, canvas) {\r\n var cLeft = canvas.left;\r\n var cTop = canvas.top;\r\n var cRight = canvas.width - canvas.right;\r\n var cBottom = canvas.height - canvas.bottom;\r\n return bBoxes.reduce((function(margins, bBox) {\r\n if (!bBox || bBox.isEmpty) {\r\n return margins\r\n }\r\n return {\r\n left: _max(margins.left, cLeft - bBox.x),\r\n top: _max(margins.top, cTop - bBox.y),\r\n right: _max(margins.right, bBox.x + bBox.width - cRight),\r\n bottom: _max(margins.bottom, bBox.y + bBox.height - cBottom)\r\n }\r\n }), {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n })\r\n};\r\nexport var measureLabels = function(items) {\r\n items.forEach((function(item) {\r\n var label = item.getContentContainer();\r\n item.labelBBox = label ? label.getBBox() : {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n }\r\n }))\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/polar_axes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map as _map,\r\n convertPolarToXY,\r\n convertXYToPolar,\r\n normalizeAngle,\r\n getVizRangeObject,\r\n getCosAndSin,\r\n getDistance\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport constants from \"./axes_constants\";\r\nimport xyAxes from \"./xy_axes\";\r\nimport {\r\n tick\r\n} from \"./tick\";\r\nimport {\r\n calculateCanvasMargins,\r\n measureLabels\r\n} from \"./axes_utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar {\r\n PI: PI,\r\n abs: abs,\r\n atan: atan,\r\n round: round\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar xyAxesLinear = xyAxes.linear;\r\nvar HALF_PI_ANGLE = 90;\r\n\r\nfunction getPolarQuarter(angle) {\r\n var quarter;\r\n angle = normalizeAngle(angle);\r\n if (angle >= 315 && angle <= 360 || angle < 45 && angle >= 0) {\r\n quarter = 1\r\n } else if (angle >= 45 && angle < 135) {\r\n quarter = 2\r\n } else if (angle >= 135 && angle < 225) {\r\n quarter = 3\r\n } else if (angle >= 225 && angle < 315) {\r\n quarter = 4\r\n }\r\n return quarter\r\n}\r\nvar circularAxes = {\r\n _calculateValueMargins(ticks) {\r\n var {\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = this._getViewportRange();\r\n if (ticks && ticks.length > 1) {\r\n minVisible = minVisible < ticks[0].value ? minVisible : ticks[0].value;\r\n maxVisible = minVisible > ticks[ticks.length - 1].value ? maxVisible : ticks[ticks.length - 1].value\r\n }\r\n return {\r\n minValue: minVisible,\r\n maxValue: maxVisible\r\n }\r\n },\r\n applyMargins() {\r\n var margins = this._calculateValueMargins(this._majorTicks);\r\n var br = this._translator.getBusinessRange();\r\n br.addRange({\r\n minVisible: margins.minValue,\r\n maxVisible: margins.maxValue,\r\n interval: this._calculateRangeInterval(br.interval)\r\n });\r\n this._translator.updateBusinessRange(br)\r\n },\r\n _getTranslatorOptions: function() {\r\n return {\r\n isHorizontal: true,\r\n conversionValue: true,\r\n addSpiderCategory: this._getSpiderCategoryOption(),\r\n stick: this._getStick()\r\n }\r\n },\r\n getCenter: function() {\r\n return this._center\r\n },\r\n getRadius: function() {\r\n return this._radius\r\n },\r\n getAngles: function() {\r\n var options = this._options;\r\n return [options.startAngle, options.endAngle]\r\n },\r\n _updateRadius(canvas) {\r\n var rad = _min(canvas.width - canvas.left - canvas.right, canvas.height - canvas.top - canvas.bottom) / 2;\r\n this._radius = rad < 0 ? 0 : rad\r\n },\r\n _updateCenter: function(canvas) {\r\n this._center = {\r\n x: canvas.left + (canvas.width - canvas.right - canvas.left) / 2,\r\n y: canvas.top + (canvas.height - canvas.top - canvas.bottom) / 2\r\n }\r\n },\r\n _processCanvas: function(canvas) {\r\n this._updateRadius(canvas);\r\n this._updateCenter(canvas);\r\n return {\r\n left: 0,\r\n right: 0,\r\n width: this._getScreenDelta()\r\n }\r\n },\r\n _createAxisElement: function() {\r\n return this._renderer.circle()\r\n },\r\n _updateAxisElementPosition: function() {\r\n var center = this.getCenter();\r\n this._axisElement.attr({\r\n cx: center.x,\r\n cy: center.y,\r\n r: this.getRadius()\r\n })\r\n },\r\n _boundaryTicksVisibility: {\r\n min: true\r\n },\r\n _getSpiderCategoryOption: function() {\r\n return this._options.firstPointOnStartAngle\r\n },\r\n _validateOptions(options) {\r\n var originValue = options.originValue;\r\n var wholeRange = options.wholeRange = {};\r\n var period = options.period;\r\n if (isDefined(originValue)) {\r\n originValue = this.validateUnit(originValue)\r\n }\r\n if (period > 0 && options.argumentType === constants.numeric) {\r\n originValue = originValue || 0;\r\n wholeRange.endValue = originValue + period;\r\n this._viewport = getVizRangeObject([originValue, wholeRange.endValue])\r\n }\r\n if (isDefined(originValue)) {\r\n wholeRange.startValue = originValue\r\n }\r\n },\r\n getMargins() {\r\n var tickOptions = this._options.tick;\r\n var tickOuterLength = _max(tickOptions.visible ? tickOptions.length / 2 + tickOptions.shift : 0, 0);\r\n var radius = this.getRadius();\r\n var {\r\n x: x,\r\n y: y\r\n } = this._center;\r\n var labelBoxes = this._majorTicks.map(t => t.label && t.label.getBBox()).filter(b => b);\r\n var canvas = extend({}, this._canvas, {\r\n left: x - radius,\r\n top: y - radius,\r\n right: this._canvas.width - (x + radius),\r\n bottom: this._canvas.height - (y + radius)\r\n });\r\n var margins = calculateCanvasMargins(labelBoxes, canvas);\r\n Object.keys(margins).forEach(k => margins[k] = margins[k] < tickOuterLength ? tickOuterLength : margins[k]);\r\n return margins\r\n },\r\n _updateLabelsPosition() {\r\n measureLabels(this._majorTicks);\r\n this._adjustLabelsCoord(0, 0, true);\r\n this._checkBoundedLabelsOverlapping(this._majorTicks, this._majorTicks.map(t => t.labelBBox))\r\n },\r\n _setVisualRange: _noop,\r\n applyVisualRangeSetter: _noop,\r\n _getStick: function() {\r\n return this._options.firstPointOnStartAngle || this._options.type !== constants.discrete\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset) - HALF_PI_ANGLE\r\n },\r\n _getCanvasStartEnd: function() {\r\n return {\r\n start: 0 - HALF_PI_ANGLE,\r\n end: 360 - HALF_PI_ANGLE\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromAngle, toAngle) {\r\n var center = this.getCenter();\r\n var angle = this.getAngles()[0];\r\n var r = this.getRadius();\r\n return {\r\n x: center.x,\r\n y: center.y,\r\n innerRadius: 0,\r\n outerRadius: r,\r\n startAngle: -toAngle - angle,\r\n endAngle: -fromAngle - angle\r\n }\r\n },\r\n _createStrip: function(coords) {\r\n return this._renderer.arc(coords.x, coords.y, coords.innerRadius, coords.outerRadius, coords.startAngle, coords.endAngle)\r\n },\r\n _getStripLabelCoords: function(from, to) {\r\n var coords = this._getStripGraphicAttributes(from, to);\r\n var angle = coords.startAngle + (coords.endAngle - coords.startAngle) / 2;\r\n var cosSin = getCosAndSin(angle);\r\n var halfRad = this.getRadius() / 2;\r\n var center = this.getCenter();\r\n var x = round(center.x + halfRad * cosSin.cos);\r\n var y = round(center.y - halfRad * cosSin.sin);\r\n return {\r\n x: x,\r\n y: y,\r\n align: constants.center\r\n }\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var center = this.getCenter();\r\n var r = this.getRadius();\r\n return {\r\n points: [center.x, center.y, center.x + r, center.y]\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr)\r\n },\r\n _rotateConstantLine(line, value) {\r\n var {\r\n x: x,\r\n y: y\r\n } = this.getCenter();\r\n line.rotate(value + this.getAngles()[0], x, y)\r\n },\r\n _getConstantLineLabelsCoords: function(value) {\r\n var cosSin = getCosAndSin(-value - this.getAngles()[0]);\r\n var halfRad = this.getRadius() / 2;\r\n var center = this.getCenter();\r\n var x = round(center.x + halfRad * cosSin.cos);\r\n var y = round(center.y - halfRad * cosSin.sin);\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _checkAlignmentConstantLineLabels: _noop,\r\n _adjustDivisionFactor: function(val) {\r\n return 180 * val / (this.getRadius() * PI)\r\n },\r\n _getScreenDelta: function() {\r\n var angles = this.getAngles();\r\n return abs(angles[0] - angles[1])\r\n },\r\n _getTickMarkPoints: function(coords, length, _ref) {\r\n var {\r\n shift: shift = 0\r\n } = _ref;\r\n var center = this.getCenter();\r\n var radiusWithTicks = this.getRadius() + length * {\r\n inside: -1,\r\n center: -.5,\r\n outside: 0\r\n } [this._options.tickOrientation || \"center\"];\r\n return [center.x + radiusWithTicks + shift, center.y, center.x + radiusWithTicks + length + shift, center.y]\r\n },\r\n _getLabelAdjustedCoord: function(tick, _offset, _maxWidth, checkCanvas) {\r\n var labelCoords = tick.labelCoords;\r\n var labelY = labelCoords.y;\r\n var labelAngle = labelCoords.angle;\r\n var cosSin = getCosAndSin(labelAngle);\r\n var cos = cosSin.cos;\r\n var sin = cosSin.sin;\r\n var box = tick.labelBBox;\r\n var halfWidth = box.width / 2;\r\n var halfHeight = box.height / 2;\r\n var indentFromAxis = this._options.label.indentFromAxis || 0;\r\n var x = labelCoords.x + indentFromAxis * cos;\r\n var y = labelY + (labelY - box.y - halfHeight) + indentFromAxis * sin;\r\n var shiftX = 0;\r\n var shiftY = 0;\r\n switch (getPolarQuarter(labelAngle)) {\r\n case 1:\r\n shiftX = halfWidth;\r\n shiftY = halfHeight * sin;\r\n break;\r\n case 2:\r\n shiftX = halfWidth * cos;\r\n shiftY = halfHeight;\r\n break;\r\n case 3:\r\n shiftX = -halfWidth;\r\n shiftY = halfHeight * sin;\r\n break;\r\n case 4:\r\n shiftX = halfWidth * cos;\r\n shiftY = -halfHeight\r\n }\r\n if (checkCanvas) {\r\n var canvas = this._canvas;\r\n var boxShiftX = x - labelCoords.x + shiftX;\r\n var boxShiftY = y - labelCoords.y + shiftY;\r\n if (box.x + boxShiftX < canvas.originalLeft) {\r\n shiftX -= box.x + boxShiftX - canvas.originalLeft\r\n }\r\n if (box.x + box.width + boxShiftX > canvas.width - canvas.originalRight) {\r\n shiftX -= box.x + box.width + boxShiftX - (canvas.width - canvas.originalRight)\r\n }\r\n if (box.y + boxShiftY < canvas.originalTop) {\r\n shiftY -= box.y + boxShiftY - canvas.originalTop\r\n }\r\n if (box.y + box.height + boxShiftY > canvas.height - canvas.originalBottom) {\r\n shiftY -= box.y + box.height + boxShiftY - (canvas.height - canvas.originalBottom)\r\n }\r\n }\r\n return {\r\n x: x + shiftX,\r\n y: y + shiftY\r\n }\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var center = that.getCenter();\r\n return that._createPathElement(that._getGridPoints().points, gridStyle).rotate(tick.coords.angle, center.x, center.y)\r\n }\r\n },\r\n _getGridPoints: function() {\r\n var r = this.getRadius();\r\n var center = this.getCenter();\r\n return {\r\n points: [center.x, center.y, center.x + r, center.y]\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var startAngle = this.getAngles()[0];\r\n var angle = this._translator.translate(value, -offset);\r\n var coords = convertPolarToXY(this.getCenter(), startAngle, angle, this.getRadius());\r\n return {\r\n x: coords.x,\r\n y: coords.y,\r\n angle: this.getTranslatedAngle(angle)\r\n }\r\n },\r\n _getAdjustedStripLabelCoords: function(strip) {\r\n var box = strip.labelBBox;\r\n return {\r\n translateY: strip.label.attr(\"y\") - box.y - box.height / 2\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n return convertXYToPolar(this.getCenter(), x, y).r > this.getRadius()\r\n },\r\n _rotateTick: function(element, coords) {\r\n var center = this.getCenter();\r\n element.rotate(coords.angle, center.x, center.y)\r\n },\r\n _validateOverlappingMode: function(mode) {\r\n return constants.validateOverlappingMode(mode)\r\n },\r\n _validateDisplayMode: function() {\r\n return \"standard\"\r\n },\r\n _getStep: function(boxes) {\r\n var radius = this.getRadius() + (this._options.label.indentFromAxis || 0);\r\n var maxLabelBox = boxes.reduce((function(prevValue, box) {\r\n var curValue = prevValue;\r\n if (prevValue.width < box.width) {\r\n curValue.width = box.width\r\n }\r\n if (prevValue.height < box.height) {\r\n curValue.height = box.height\r\n }\r\n return curValue\r\n }), {\r\n width: 0,\r\n height: 0\r\n });\r\n var angle1 = abs(2 * atan(maxLabelBox.height / (2 * radius - maxLabelBox.width)) * 180 / PI);\r\n var angle2 = abs(2 * atan(maxLabelBox.width / (2 * radius - maxLabelBox.height)) * 180 / PI);\r\n return constants.getTicksCountInRange(this._majorTicks, \"angle\", _max(angle1, angle2))\r\n },\r\n _checkBoundedLabelsOverlapping: function(majorTicks, boxes, mode) {\r\n var labelOpt = this._options.label;\r\n mode = mode || this._validateOverlappingMode(labelOpt.overlappingBehavior);\r\n if (\"hide\" !== mode) {\r\n return\r\n }\r\n var lastVisibleLabelIndex = majorTicks.reduce((lastVisibleLabelIndex, tick, index) => tick.label ? index : lastVisibleLabelIndex, null);\r\n if (!lastVisibleLabelIndex) {\r\n return\r\n }\r\n if (constants.areLabelsOverlap(boxes[0], boxes[lastVisibleLabelIndex], labelOpt.minSpacing, constants.center)) {\r\n \"first\" === labelOpt.hideFirstOrLast ? majorTicks[0].removeLabel() : majorTicks[lastVisibleLabelIndex].removeLabel()\r\n }\r\n },\r\n shift: function(margins) {\r\n this._axisGroup.attr({\r\n translateX: margins.right,\r\n translateY: margins.bottom\r\n });\r\n this._axisElementsGroup.attr({\r\n translateX: margins.right,\r\n translateY: margins.bottom\r\n })\r\n },\r\n getTranslatedAngle(angle) {\r\n var startAngle = this.getAngles()[0];\r\n return angle + startAngle - HALF_PI_ANGLE\r\n }\r\n};\r\nexport var circular = circularAxes;\r\nexport var circularSpider = extend({}, circularAxes, {\r\n _createAxisElement: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _updateAxisElementPosition: function() {\r\n this._axisElement.attr({\r\n points: _map(this.getSpiderTicks(), (function(tick) {\r\n return {\r\n x: tick.coords.x,\r\n y: tick.coords.y\r\n }\r\n }))\r\n })\r\n },\r\n _getStick: function() {\r\n return true\r\n },\r\n _getSpiderCategoryOption: function() {\r\n return true\r\n },\r\n getSpiderTicks: function() {\r\n var ticks = this.getFullTicks();\r\n this._spiderTicks = ticks.map(tick(this, this.renderer, {}, {}, this._getSkippedCategory(ticks), true));\r\n this._spiderTicks.forEach((function(tick) {\r\n tick.initCoords()\r\n }));\r\n return this._spiderTicks\r\n },\r\n _getStripGraphicAttributes: function(fromAngle, toAngle) {\r\n var center = this.getCenter();\r\n var spiderTicks = this.getSpiderTicks();\r\n var firstTick;\r\n var lastTick;\r\n var nextTick;\r\n var tick;\r\n var points = [];\r\n var i = 0;\r\n var len = spiderTicks.length;\r\n while (i < len) {\r\n tick = spiderTicks[i].coords;\r\n if (tick.angle >= fromAngle && tick.angle <= toAngle) {\r\n if (!firstTick) {\r\n firstTick = (spiderTicks[i - 1] || spiderTicks[spiderTicks.length - 1]).coords;\r\n points.push((tick.x + firstTick.x) / 2, (tick.y + firstTick.y) / 2)\r\n }\r\n points.push(tick.x, tick.y);\r\n nextTick = (spiderTicks[i + 1] || spiderTicks[0]).coords;\r\n lastTick = {\r\n x: (tick.x + nextTick.x) / 2,\r\n y: (tick.y + nextTick.y) / 2\r\n }\r\n }\r\n i++\r\n }\r\n points.push(lastTick.x, lastTick.y);\r\n points.push(center.x, center.y);\r\n return {\r\n points: points\r\n }\r\n },\r\n _createStrip: function(_ref2) {\r\n var {\r\n points: points\r\n } = _ref2;\r\n return this._renderer.path(points, \"area\")\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset) - HALF_PI_ANGLE\r\n },\r\n _setTickOffset: function() {\r\n this._tickOffset = false\r\n }\r\n});\r\nexport var linear = {\r\n _resetMargins() {\r\n this._reinitTranslator(this._getViewportRange())\r\n },\r\n _getStick: xyAxesLinear._getStick,\r\n _getSpiderCategoryOption: _noop,\r\n _getTranslatorOptions: function() {\r\n return {\r\n isHorizontal: true,\r\n stick: this._getStick()\r\n }\r\n },\r\n getRadius: circularAxes.getRadius,\r\n getCenter: circularAxes.getCenter,\r\n getAngles: circularAxes.getAngles,\r\n _updateRadius: circularAxes._updateRadius,\r\n _updateCenter: circularAxes._updateCenter,\r\n _processCanvas(canvas) {\r\n this._updateRadius(canvas);\r\n this._updateCenter(canvas);\r\n return {\r\n left: 0,\r\n right: 0,\r\n startPadding: canvas.startPadding,\r\n endPadding: canvas.endPadding,\r\n width: this.getRadius()\r\n }\r\n },\r\n _createAxisElement: xyAxesLinear._createAxisElement,\r\n _updateAxisElementPosition: function() {\r\n var centerCoord = this.getCenter();\r\n this._axisElement.attr({\r\n points: [centerCoord.x, centerCoord.y, centerCoord.x + this.getRadius(), centerCoord.y]\r\n }).rotate(this.getAngles()[0] - HALF_PI_ANGLE, centerCoord.x, centerCoord.y)\r\n },\r\n _getScreenDelta: function() {\r\n return this.getRadius()\r\n },\r\n _getTickMarkPoints: function(coords, length) {\r\n return [coords.x - length / 2, coords.y, coords.x + length / 2, coords.y]\r\n },\r\n _getLabelAdjustedCoord: function(tick) {\r\n var labelCoords = tick.labelCoords;\r\n var labelY = labelCoords.y;\r\n var cosSin = getCosAndSin(labelCoords.angle);\r\n var indentFromAxis = this._options.label.indentFromAxis || 0;\r\n var box = tick.labelBBox;\r\n var x = labelCoords.x - abs(indentFromAxis * cosSin.sin) + abs(box.width / 2 * cosSin.cos) - box.width / 2;\r\n var y = labelY + (labelY - box.y) - abs(box.height / 2 * cosSin.sin) + abs(indentFromAxis * cosSin.cos);\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var grid = that._getGridPoints(tick.coords);\r\n return that._renderer.circle(grid.cx, grid.cy, grid.r).attr(gridStyle).sharp()\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var pos = this.getCenter();\r\n var radius = getDistance(pos.x, pos.y, coords.x, coords.y);\r\n if (radius > this.getRadius()) {\r\n return {\r\n cx: null,\r\n cy: null,\r\n r: null\r\n }\r\n }\r\n return {\r\n cx: pos.x,\r\n cy: pos.y,\r\n r: radius\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var startAngle = this.getAngles()[0];\r\n var xy = convertPolarToXY(this.getCenter(), startAngle, 0, this._translator.translate(value, offset));\r\n return {\r\n x: xy.x,\r\n y: xy.y,\r\n angle: startAngle - HALF_PI_ANGLE\r\n }\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset)\r\n },\r\n _getCanvasStartEnd() {\r\n var invert = this.getTranslator().getBusinessRange().invert;\r\n var coords = [0, this.getRadius()];\r\n invert && coords.reverse();\r\n return {\r\n start: coords[0],\r\n end: coords[1]\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var center = this.getCenter();\r\n return {\r\n x: center.x,\r\n y: center.y,\r\n innerRadius: fromPoint,\r\n outerRadius: toPoint\r\n }\r\n },\r\n _createStrip: function(attrs) {\r\n return this._renderer.arc(attrs.x, attrs.y, attrs.innerRadius, attrs.outerRadius, 0, 360)\r\n },\r\n _getAdjustedStripLabelCoords: circularAxes._getAdjustedStripLabelCoords,\r\n _getStripLabelCoords: function(from, to) {\r\n var labelPos = from + (to - from) / 2;\r\n var center = this.getCenter();\r\n var y = round(center.y - labelPos);\r\n return {\r\n x: center.x,\r\n y: y,\r\n align: constants.center\r\n }\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var center = this.getCenter();\r\n return {\r\n cx: center.x,\r\n cy: center.y,\r\n r: value\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n var attrs = this._getConstantLineGraphicAttributes(value);\r\n return this._renderer.circle(attrs.cx, attrs.cy, attrs.r).attr(attr).sharp()\r\n },\r\n _getConstantLineLabelsCoords: function(value) {\r\n var center = this.getCenter();\r\n var y = round(center.y - value);\r\n return {\r\n x: center.x,\r\n y: y\r\n }\r\n },\r\n _checkAlignmentConstantLineLabels: _noop,\r\n _rotateTick: function(element, coords, isGridLine) {\r\n !isGridLine && element.rotate(coords.angle + HALF_PI_ANGLE, coords.x, coords.y)\r\n },\r\n _validateOverlappingMode: circularAxes._validateOverlappingMode,\r\n _validateDisplayMode: circularAxes._validateDisplayMode,\r\n _getStep: function(boxes) {\r\n var quarter = getPolarQuarter(this.getAngles()[0]);\r\n var spacing = this._options.label.minSpacing;\r\n var func = 2 === quarter || 4 === quarter ? function(box) {\r\n return box.width + spacing\r\n } : function(box) {\r\n return box.height\r\n };\r\n var maxLabelLength = boxes.reduce((prevValue, box) => _max(prevValue, func(box)), 0);\r\n return constants.getTicksCountInRange(this._majorTicks, 2 === quarter || 4 === quarter ? \"x\" : \"y\", maxLabelLength)\r\n }\r\n};\r\nexport var linearSpider = extend({}, linear, {\r\n _createPathElement: function(points, attr) {\r\n return this._renderer.path(points, \"area\").attr(attr).sharp()\r\n },\r\n setSpiderTicks: function(ticks) {\r\n this._spiderTicks = ticks\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n return that._createPathElement(that._getGridPoints(tick.coords).points, gridStyle)\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var pos = this.getCenter();\r\n var radius = getDistance(pos.x, pos.y, coords.x, coords.y);\r\n return this._getGridPointsByRadius(radius)\r\n },\r\n _getGridPointsByRadius: function(radius) {\r\n var pos = this.getCenter();\r\n if (radius > this.getRadius()) {\r\n return {\r\n points: null\r\n }\r\n }\r\n return {\r\n points: _map(this._spiderTicks, (function(tick) {\r\n var cosSin = getCosAndSin(tick.coords.angle);\r\n return {\r\n x: round(pos.x + radius * cosSin.cos),\r\n y: round(pos.y + radius * cosSin.sin)\r\n }\r\n }))\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var innerPoints = this._getGridPointsByRadius(toPoint).points;\r\n var outerPoints = this._getGridPointsByRadius(fromPoint).points;\r\n return {\r\n points: [outerPoints, innerPoints.reverse()]\r\n }\r\n },\r\n _createStrip: circularSpider._createStrip,\r\n _getConstantLineGraphicAttributes: function(value) {\r\n return this._getGridPointsByRadius(value)\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/axes/base_axis.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n smartFormatter as _format,\r\n formatRange\r\n} from \"./smart_formatter\";\r\nimport {\r\n patchFontOptions,\r\n getVizRangeObject,\r\n getLogExt as getLog,\r\n raiseToExt as raiseTo,\r\n valueOf,\r\n rotateBBox,\r\n getCategoriesInfo,\r\n adjustVisualRange,\r\n getAddFunction,\r\n convertVisualRangeObject\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport constants from \"./axes_constants\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getParser\r\n} from \"../components/parse_utils\";\r\nimport {\r\n tickGenerator\r\n} from \"./tick_generator\";\r\nimport {\r\n Translator2D\r\n} from \"../translators/translator2d\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n tick\r\n} from \"./tick\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport errors from \"../../core/errors\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport xyMethods from \"./xy_axes\";\r\nimport * as polarMethods from \"./polar_axes\";\r\nimport createConstantLine from \"./constant_line\";\r\nimport createStrip from \"./strip\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n calculateCanvasMargins,\r\n measureLabels\r\n} from \"./axes_utils\";\r\nvar convertTicksToValues = constants.convertTicksToValues;\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _isArray = Array.isArray;\r\nvar DEFAULT_AXIS_LABEL_SPACING = 5;\r\nvar MAX_GRID_BORDER_ADHENSION = 4;\r\nvar TOP = constants.top;\r\nvar BOTTOM = constants.bottom;\r\nvar LEFT = constants.left;\r\nvar RIGHT = constants.right;\r\nvar CENTER = constants.center;\r\nvar KEEP = \"keep\";\r\nvar SHIFT = \"shift\";\r\nvar RESET = \"reset\";\r\nvar ROTATE = \"rotate\";\r\nvar DEFAULT_AXIS_DIVISION_FACTOR = 50;\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 15;\r\nvar SCROLL_THRESHOLD = 5;\r\nvar MIN_BAR_MARGIN = 5;\r\nvar MAX_MARGIN_VALUE = .8;\r\nvar dateIntervals = {\r\n day: 864e5,\r\n week: 6048e5\r\n};\r\n\r\nfunction getTickGenerator(options, incidentOccurred, skipTickGeneration, rangeIsEmpty, adjustDivisionFactor, _ref) {\r\n var _options$workWeek;\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold\r\n } = _ref;\r\n return tickGenerator({\r\n axisType: options.type,\r\n dataType: options.dataType,\r\n logBase: options.logarithmBase,\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold,\r\n axisDivisionFactor: adjustDivisionFactor(options.axisDivisionFactor || DEFAULT_AXIS_DIVISION_FACTOR),\r\n minorAxisDivisionFactor: adjustDivisionFactor(options.minorAxisDivisionFactor || DEFAULT_MINOR_AXIS_DIVISION_FACTOR),\r\n numberMultipliers: options.numberMultipliers,\r\n calculateMinors: options.minorTick.visible || options.minorGrid.visible || options.calculateMinors,\r\n allowDecimals: options.allowDecimals,\r\n endOnTick: options.endOnTick,\r\n incidentOccurred: incidentOccurred,\r\n firstDayOfWeek: null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0],\r\n skipTickGeneration: skipTickGeneration,\r\n skipCalculationLimits: options.skipCalculationLimits,\r\n generateExtraTick: options.generateExtraTick,\r\n minTickInterval: options.minTickInterval,\r\n rangeIsEmpty: rangeIsEmpty\r\n })\r\n}\r\n\r\nfunction createMajorTick(axis, renderer, skippedCategory) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, options.tick, options.grid, skippedCategory, false)\r\n}\r\n\r\nfunction createMinorTick(axis, renderer) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, options.minorTick, options.minorGrid)\r\n}\r\n\r\nfunction createBoundaryTick(axis, renderer, isFirst) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, extend({}, options.tick, {\r\n visible: options.showCustomBoundaryTicks\r\n }), options.grid, void 0, false, isFirst ? -1 : 1)\r\n}\r\n\r\nfunction callAction(elements, action, actionArgument1, actionArgument2) {\r\n (elements || []).forEach(e => e[action](actionArgument1, actionArgument2))\r\n}\r\n\r\nfunction initTickCoords(ticks) {\r\n callAction(ticks, \"initCoords\")\r\n}\r\n\r\nfunction drawTickMarks(ticks, options) {\r\n callAction(ticks, \"drawMark\", options)\r\n}\r\n\r\nfunction drawGrids(ticks, drawLine) {\r\n callAction(ticks, \"drawGrid\", drawLine)\r\n}\r\n\r\nfunction updateTicksPosition(ticks, options, animate) {\r\n callAction(ticks, \"updateTickPosition\", options, animate)\r\n}\r\n\r\nfunction updateGridsPosition(ticks, animate) {\r\n callAction(ticks, \"updateGridPosition\", animate)\r\n}\r\n\r\nfunction cleanUpInvalidTicks(ticks) {\r\n var i = ticks.length - 1;\r\n for (i; i >= 0; i--) {\r\n if (!removeInvalidTick(ticks, i)) {\r\n break\r\n }\r\n }\r\n for (i = 0; i < ticks.length; i++) {\r\n if (removeInvalidTick(ticks, i)) {\r\n i--\r\n } else {\r\n break\r\n }\r\n }\r\n}\r\n\r\nfunction removeInvalidTick(ticks, i) {\r\n if (null === ticks[i].coords.x || null === ticks[i].coords.y) {\r\n ticks.splice(i, 1);\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nfunction validateAxisOptions(options) {\r\n var _labelOptions$minSpac;\r\n var labelOptions = options.label;\r\n var position = options.position;\r\n var defaultPosition = options.isHorizontal ? BOTTOM : LEFT;\r\n var secondaryPosition = options.isHorizontal ? TOP : RIGHT;\r\n var labelPosition = labelOptions.position;\r\n if (position !== defaultPosition && position !== secondaryPosition) {\r\n position = defaultPosition\r\n }\r\n if (!labelPosition || \"outside\" === labelPosition) {\r\n labelPosition = position\r\n } else if (\"inside\" === labelPosition) {\r\n labelPosition = {\r\n [TOP]: BOTTOM,\r\n [BOTTOM]: TOP,\r\n [LEFT]: RIGHT,\r\n [RIGHT]: LEFT\r\n } [position]\r\n }\r\n if (labelPosition !== defaultPosition && labelPosition !== secondaryPosition) {\r\n labelPosition = position\r\n }\r\n if (labelOptions.alignment !== CENTER && !labelOptions.userAlignment) {\r\n labelOptions.alignment = {\r\n [TOP]: CENTER,\r\n [BOTTOM]: CENTER,\r\n [LEFT]: RIGHT,\r\n [RIGHT]: LEFT\r\n } [labelPosition]\r\n }\r\n options.position = position;\r\n labelOptions.position = labelPosition;\r\n options.hoverMode = options.hoverMode ? options.hoverMode.toLowerCase() : \"none\";\r\n labelOptions.minSpacing = null !== (_labelOptions$minSpac = labelOptions.minSpacing) && void 0 !== _labelOptions$minSpac ? _labelOptions$minSpac : DEFAULT_AXIS_LABEL_SPACING;\r\n options.type && (options.type = options.type.toLowerCase());\r\n options.argumentType && (options.argumentType = options.argumentType.toLowerCase());\r\n options.valueType && (options.valueType = options.valueType.toLowerCase())\r\n}\r\n\r\nfunction getOptimalAngle(boxes, labelOpt) {\r\n var angle = 180 * _math.asin((boxes[0].height + labelOpt.minSpacing) / (boxes[1].x - boxes[0].x)) / _math.PI;\r\n return angle < 45 ? -45 : -90\r\n}\r\n\r\nfunction updateLabels(ticks, step, func) {\r\n ticks.forEach((function(tick, index) {\r\n if (tick.getContentContainer()) {\r\n if (index % step !== 0) {\r\n tick.removeLabel()\r\n } else if (func) {\r\n func(tick, index)\r\n }\r\n }\r\n }))\r\n}\r\n\r\nfunction getZoomBoundValue(optionValue, dataValue) {\r\n if (void 0 === optionValue) {\r\n return dataValue\r\n } else if (null === optionValue) {\r\n return\r\n } else {\r\n return optionValue\r\n }\r\n}\r\n\r\nfunction configureGenerator(options, axisDivisionFactor, viewPort, screenDelta, minTickInterval) {\r\n var tickGeneratorOptions = extend({}, options, {\r\n endOnTick: true,\r\n axisDivisionFactor: axisDivisionFactor,\r\n skipCalculationLimits: true,\r\n generateExtraTick: true,\r\n minTickInterval: minTickInterval\r\n });\r\n return function(tickInterval, skipTickGeneration, min, max, breaks) {\r\n return getTickGenerator(tickGeneratorOptions, _noop, skipTickGeneration, viewPort.isEmpty(), v => v, viewPort)({\r\n min: min,\r\n max: max,\r\n categories: viewPort.categories,\r\n isSpacedMargin: viewPort.isSpacedMargin\r\n }, screenDelta, tickInterval, isDefined(tickInterval), void 0, void 0, void 0, breaks)\r\n }\r\n}\r\n\r\nfunction getConstantLineSharpDirection(coord, axisCanvas) {\r\n return Math.max(axisCanvas.start, axisCanvas.end) !== coord ? 1 : -1\r\n}\r\n\r\nfunction checkDeprecatedOptions(isValueAxis, options) {\r\n if (isValueAxis && \"shift\" === options.visualRangeUpdateMode) {\r\n errors.log(\"W0016\", \"valueAxis.visualRangeUpdateMode\", \"shift\", \"23.1\", \"Specify another value\")\r\n }\r\n}\r\nexport var Axis = function(renderSettings) {\r\n this._renderer = renderSettings.renderer;\r\n this._incidentOccurred = renderSettings.incidentOccurred;\r\n this._eventTrigger = renderSettings.eventTrigger;\r\n this._stripsGroup = renderSettings.stripsGroup;\r\n this._stripLabelAxesGroup = renderSettings.stripLabelAxesGroup;\r\n this._labelsAxesGroup = renderSettings.labelsAxesGroup;\r\n this._constantLinesGroup = renderSettings.constantLinesGroup;\r\n this._scaleBreaksGroup = renderSettings.scaleBreaksGroup;\r\n this._axesContainerGroup = renderSettings.axesContainerGroup;\r\n this._gridContainerGroup = renderSettings.gridGroup;\r\n this._axisCssPrefix = renderSettings.widgetClass + \"-\" + (renderSettings.axisClass ? renderSettings.axisClass + \"-\" : \"\");\r\n this._setType(renderSettings.axisType, renderSettings.drawingType);\r\n this._createAxisGroups();\r\n this._translator = this._createTranslator();\r\n this.isArgumentAxis = renderSettings.isArgumentAxis;\r\n this._viewport = {};\r\n this._prevDataInfo = {};\r\n this._firstDrawing = true;\r\n this._initRange = {};\r\n this._getTemplate = renderSettings.getTemplate\r\n};\r\nAxis.prototype = {\r\n constructor: Axis,\r\n _drawAxis() {\r\n var options = this._options;\r\n if (!options.visible) {\r\n return\r\n }\r\n this._axisElement = this._createAxisElement();\r\n this._updateAxisElementPosition();\r\n this._axisElement.attr({\r\n \"stroke-width\": options.width,\r\n stroke: options.color,\r\n \"stroke-opacity\": options.opacity\r\n }).sharp(this._getSharpParam(true), this.getAxisSharpDirection()).append(this._axisLineGroup)\r\n },\r\n _createPathElement(points, attr, sharpDirection) {\r\n return this.sharp(this._renderer.path(points, \"line\").attr(attr), sharpDirection)\r\n },\r\n sharp(svgElement) {\r\n var sharpDirection = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\r\n return svgElement.sharp(this._getSharpParam(), sharpDirection)\r\n },\r\n customPositionIsAvailable: () => false,\r\n getOrthogonalAxis: _noop,\r\n getCustomPosition: _noop,\r\n getCustomBoundaryPosition: _noop,\r\n resolveOverlappingForCustomPositioning: _noop,\r\n hasNonBoundaryPosition: () => false,\r\n customPositionIsBoundaryOrthogonalAxis: () => false,\r\n getResolvedBoundaryPosition() {\r\n return this.getOptions().position\r\n },\r\n getAxisSharpDirection() {\r\n var position = this.getResolvedBoundaryPosition();\r\n return this.hasNonBoundaryPosition() || position !== BOTTOM && position !== RIGHT ? 1 : -1\r\n },\r\n getSharpDirectionByCoords(coords) {\r\n var canvas = this._getCanvasStartEnd();\r\n var maxCoord = Math.max(canvas.start, canvas.end);\r\n return this.getRadius ? 0 : maxCoord !== coords[this._isHorizontal ? \"x\" : \"y\"] ? 1 : -1\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var grid = that._getGridPoints(tick.coords);\r\n if (grid.points) {\r\n return that._createPathElement(grid.points, gridStyle, that.getSharpDirectionByCoords(tick.coords))\r\n }\r\n return null\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var isHorizontal = this._isHorizontal;\r\n var tickPositionField = isHorizontal ? \"x\" : \"y\";\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var positionFrom = orthogonalPositions.start;\r\n var positionTo = orthogonalPositions.end;\r\n var borderOptions = this.borderOptions;\r\n var canvasStart = isHorizontal ? LEFT : TOP;\r\n var canvasEnd = isHorizontal ? RIGHT : BOTTOM;\r\n var axisCanvas = this.getCanvas();\r\n var canvas = {\r\n left: axisCanvas.left,\r\n right: axisCanvas.width - axisCanvas.right,\r\n top: axisCanvas.top,\r\n bottom: axisCanvas.height - axisCanvas.bottom\r\n };\r\n var firstBorderLinePosition = borderOptions.visible && borderOptions[canvasStart] ? canvas[canvasStart] : void 0;\r\n var lastBorderLinePosition = borderOptions.visible && borderOptions[canvasEnd] ? canvas[canvasEnd] : void 0;\r\n var minDelta = MAX_GRID_BORDER_ADHENSION + firstBorderLinePosition;\r\n var maxDelta = lastBorderLinePosition - MAX_GRID_BORDER_ADHENSION;\r\n if (this.areCoordsOutsideAxis(coords) || void 0 === coords[tickPositionField] || coords[tickPositionField] < minDelta || coords[tickPositionField] > maxDelta) {\r\n return {\r\n points: null\r\n }\r\n }\r\n return {\r\n points: isHorizontal ? null !== coords[tickPositionField] ? [coords[tickPositionField], positionFrom, coords[tickPositionField], positionTo] : null : null !== coords[tickPositionField] ? [positionFrom, coords[tickPositionField], positionTo, coords[tickPositionField]] : null\r\n }\r\n },\r\n _getConstantLinePos: function(parsedValue, canvasStart, canvasEnd) {\r\n var value = this._getTranslatedCoord(parsedValue);\r\n if (!isDefined(value) || value < _min(canvasStart, canvasEnd) || value > _max(canvasStart, canvasEnd)) {\r\n return\r\n }\r\n return value\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var positionFrom = this._orthogonalPositions.start;\r\n var positionTo = this._orthogonalPositions.end;\r\n return {\r\n points: this._isHorizontal ? [value, positionFrom, value, positionTo] : [positionFrom, value, positionTo, value]\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr, getConstantLineSharpDirection(value, this._getCanvasStartEnd()))\r\n },\r\n _drawConstantLineLabelText: function(text, x, y, _ref2, group) {\r\n var {\r\n font: font,\r\n cssClass: cssClass\r\n } = _ref2;\r\n return this._renderer.text(text, x, y).css(patchFontOptions(extend({}, this._options.label.font, font))).attr({\r\n align: \"center\",\r\n class: cssClass\r\n }).append(group)\r\n },\r\n _drawConstantLineLabels: function(parsedValue, lineLabelOptions, value, group) {\r\n var _text;\r\n var text = lineLabelOptions.text;\r\n var options = this._options;\r\n var labelOptions = options.label;\r\n this._checkAlignmentConstantLineLabels(lineLabelOptions);\r\n text = null !== (_text = text) && void 0 !== _text ? _text : this.formatLabel(parsedValue, labelOptions);\r\n var coords = this._getConstantLineLabelsCoords(value, lineLabelOptions);\r\n return this._drawConstantLineLabelText(text, coords.x, coords.y, lineLabelOptions, group)\r\n },\r\n _getStripPos: function(startValue, endValue, canvasStart, canvasEnd, range) {\r\n var isContinuous = !!(range.minVisible || range.maxVisible);\r\n var categories = (range.categories || []).reduce((function(result, cat) {\r\n result.push(cat.valueOf());\r\n return result\r\n }), []);\r\n var start;\r\n var end;\r\n var swap;\r\n var startCategoryIndex;\r\n var endCategoryIndex;\r\n if (!isContinuous) {\r\n if (isDefined(startValue) && isDefined(endValue)) {\r\n var _parsedStartValue$val, _parsedEndValue$value;\r\n var parsedStartValue = this.parser(startValue);\r\n var parsedEndValue = this.parser(endValue);\r\n startCategoryIndex = categories.indexOf(null !== (_parsedStartValue$val = null === parsedStartValue || void 0 === parsedStartValue ? void 0 : parsedStartValue.valueOf()) && void 0 !== _parsedStartValue$val ? _parsedStartValue$val : void 0);\r\n endCategoryIndex = categories.indexOf(null !== (_parsedEndValue$value = null === parsedEndValue || void 0 === parsedEndValue ? void 0 : parsedEndValue.valueOf()) && void 0 !== _parsedEndValue$value ? _parsedEndValue$value : void 0);\r\n if (-1 === startCategoryIndex || -1 === endCategoryIndex) {\r\n return {\r\n from: 0,\r\n to: 0,\r\n outOfCanvas: true\r\n }\r\n }\r\n if (startCategoryIndex > endCategoryIndex) {\r\n swap = endValue;\r\n endValue = startValue;\r\n startValue = swap\r\n }\r\n }\r\n }\r\n if (isDefined(startValue)) {\r\n startValue = this.validateUnit(startValue, \"E2105\", \"strip\");\r\n start = this._getTranslatedCoord(startValue, -1)\r\n } else {\r\n start = canvasStart\r\n }\r\n if (isDefined(endValue)) {\r\n endValue = this.validateUnit(endValue, \"E2105\", \"strip\");\r\n end = this._getTranslatedCoord(endValue, 1)\r\n } else {\r\n end = canvasEnd\r\n }\r\n var stripPosition = start < end ? {\r\n from: start,\r\n to: end\r\n } : {\r\n from: end,\r\n to: start\r\n };\r\n var visibleArea = this.getVisibleArea();\r\n if (stripPosition.from <= visibleArea[0] && stripPosition.to <= visibleArea[0] || stripPosition.from >= visibleArea[1] && stripPosition.to >= visibleArea[1]) {\r\n stripPosition.outOfCanvas = true\r\n }\r\n return stripPosition\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var positionFrom = orthogonalPositions.start;\r\n var positionTo = orthogonalPositions.end;\r\n if (this._isHorizontal) {\r\n x = fromPoint;\r\n y = _min(positionFrom, positionTo);\r\n width = toPoint - fromPoint;\r\n height = _abs(positionFrom - positionTo)\r\n } else {\r\n x = _min(positionFrom, positionTo);\r\n y = fromPoint;\r\n width = _abs(positionFrom - positionTo);\r\n height = _abs(fromPoint - toPoint)\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _createStrip: function(attrs) {\r\n return this._renderer.rect(attrs.x, attrs.y, attrs.width, attrs.height)\r\n },\r\n _adjustStripLabels: function() {\r\n var that = this;\r\n this._strips.forEach((function(strip) {\r\n if (strip.label) {\r\n strip.label.attr(that._getAdjustedStripLabelCoords(strip))\r\n }\r\n }))\r\n },\r\n _adjustLabelsCoord(offset, maxWidth, checkCanvas) {\r\n var getContainerAttrs = tick => this._getLabelAdjustedCoord(tick, offset + (tick.labelOffset || 0), maxWidth, checkCanvas);\r\n this._majorTicks.forEach((function(tick) {\r\n if (tick.label) {\r\n tick.updateMultilineTextAlignment();\r\n tick.label.attr(getContainerAttrs(tick))\r\n } else {\r\n tick.templateContainer && tick.templateContainer.attr(getContainerAttrs(tick))\r\n }\r\n }))\r\n },\r\n _adjustLabels: function(offset) {\r\n var options = this.getOptions();\r\n var positionsAreConsistent = options.position === options.label.position;\r\n var maxSize = this._majorTicks.reduce((function(size, tick) {\r\n if (!tick.getContentContainer()) {\r\n return size\r\n }\r\n var bBox = tick.labelRotationAngle ? rotateBBox(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle) : tick.labelBBox;\r\n return {\r\n width: _max(size.width || 0, bBox.width),\r\n height: _max(size.height || 0, bBox.height),\r\n offset: _max(size.offset || 0, tick.labelOffset || 0)\r\n }\r\n }), {});\r\n var additionalOffset = positionsAreConsistent ? this._isHorizontal ? maxSize.height : maxSize.width : 0;\r\n this._adjustLabelsCoord(offset, maxSize.width);\r\n return offset + additionalOffset + (additionalOffset && this._options.label.indentFromAxis) + (positionsAreConsistent ? maxSize.offset : 0)\r\n },\r\n _getLabelAdjustedCoord: function(tick, offset, maxWidth) {\r\n offset = offset || 0;\r\n var options = this._options;\r\n var templateBox = tick.templateContainer && tick.templateContainer.getBBox();\r\n var box = templateBox || rotateBBox(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle || 0);\r\n var textAlign = tick.labelAlignment || options.label.alignment;\r\n var isDiscrete = \"discrete\" === this._options.type;\r\n var isFlatLabel = tick.labelRotationAngle % 90 === 0;\r\n var indentFromAxis = options.label.indentFromAxis;\r\n var labelPosition = options.label.position;\r\n var axisPosition = this._axisPosition;\r\n var labelCoords = tick.labelCoords;\r\n var labelX = labelCoords.x;\r\n var translateX;\r\n var translateY;\r\n if (this._isHorizontal) {\r\n if (labelPosition === BOTTOM) {\r\n translateY = axisPosition + indentFromAxis - box.y + offset\r\n } else {\r\n translateY = axisPosition - indentFromAxis - (box.y + box.height) - offset\r\n }\r\n if (textAlign === RIGHT) {\r\n translateX = isDiscrete && isFlatLabel ? tick.coords.x - (box.x + box.width) : labelX - box.x - box.width\r\n } else if (textAlign === LEFT) {\r\n translateX = isDiscrete && isFlatLabel ? labelX - box.x - (tick.coords.x - labelX) : labelX - box.x\r\n } else {\r\n translateX = labelX - box.x - box.width / 2\r\n }\r\n } else {\r\n translateY = labelCoords.y - box.y - box.height / 2;\r\n if (labelPosition === LEFT) {\r\n if (textAlign === LEFT) {\r\n translateX = axisPosition - indentFromAxis - maxWidth - box.x\r\n } else if (textAlign === CENTER) {\r\n translateX = axisPosition - indentFromAxis - maxWidth / 2 - box.x - box.width / 2\r\n } else {\r\n translateX = axisPosition - indentFromAxis - box.x - box.width\r\n }\r\n translateX -= offset\r\n } else {\r\n if (textAlign === RIGHT) {\r\n translateX = axisPosition + indentFromAxis + maxWidth - box.x - box.width\r\n } else if (textAlign === CENTER) {\r\n translateX = axisPosition + indentFromAxis + maxWidth / 2 - box.x - box.width / 2\r\n } else {\r\n translateX = axisPosition + indentFromAxis - box.x\r\n }\r\n translateX += offset\r\n }\r\n }\r\n return {\r\n translateX: translateX,\r\n translateY: translateY\r\n }\r\n },\r\n _createAxisConstantLineGroups: function() {\r\n var renderer = this._renderer;\r\n var classSelector = this._axisCssPrefix;\r\n var constantLinesClass = classSelector + \"constant-lines\";\r\n var insideGroup = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n var outsideGroup1 = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n var outsideGroup2 = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n return {\r\n inside: insideGroup,\r\n outside1: outsideGroup1,\r\n left: outsideGroup1,\r\n top: outsideGroup1,\r\n outside2: outsideGroup2,\r\n right: outsideGroup2,\r\n bottom: outsideGroup2,\r\n remove: function() {\r\n this.inside.remove();\r\n this.outside1.remove();\r\n this.outside2.remove()\r\n },\r\n clear: function() {\r\n this.inside.clear();\r\n this.outside1.clear();\r\n this.outside2.clear()\r\n }\r\n }\r\n },\r\n _createAxisGroups: function() {\r\n var renderer = this._renderer;\r\n var classSelector = this._axisCssPrefix;\r\n this._axisGroup = renderer.g().attr({\r\n class: classSelector + \"axis\"\r\n }).enableLinks();\r\n this._axisStripGroup = renderer.g().attr({\r\n class: classSelector + \"strips\"\r\n });\r\n this._axisGridGroup = renderer.g().attr({\r\n class: classSelector + \"grid\"\r\n });\r\n this._axisElementsGroup = renderer.g().attr({\r\n class: classSelector + \"elements\"\r\n });\r\n this._axisLineGroup = renderer.g().attr({\r\n class: classSelector + \"line\"\r\n }).linkOn(this._axisGroup, \"axisLine\").linkAppend();\r\n this._axisTitleGroup = renderer.g().attr({\r\n class: classSelector + \"title\"\r\n }).append(this._axisGroup);\r\n this._axisConstantLineGroups = {\r\n above: this._createAxisConstantLineGroups(),\r\n under: this._createAxisConstantLineGroups()\r\n };\r\n this._axisStripLabelGroup = renderer.g().attr({\r\n class: classSelector + \"axis-labels\"\r\n })\r\n },\r\n _clearAxisGroups: function() {\r\n this._axisGroup.remove();\r\n this._axisStripGroup.remove();\r\n this._axisStripLabelGroup.remove();\r\n this._axisConstantLineGroups.above.remove();\r\n this._axisConstantLineGroups.under.remove();\r\n this._axisGridGroup.remove();\r\n this._axisTitleGroup.clear();\r\n if (!this._options.label.template || !this.isRendered()) {\r\n this._axisElementsGroup.remove();\r\n this._axisElementsGroup.clear()\r\n }\r\n this._axisLineGroup && this._axisLineGroup.clear();\r\n this._axisStripGroup && this._axisStripGroup.clear();\r\n this._axisGridGroup && this._axisGridGroup.clear();\r\n this._axisConstantLineGroups.above.clear();\r\n this._axisConstantLineGroups.under.clear();\r\n this._axisStripLabelGroup && this._axisStripLabelGroup.clear()\r\n },\r\n _getLabelFormatObject: function(value, labelOptions, range, point, tickInterval, ticks) {\r\n range = range || this._getViewportRange();\r\n var formatObject = {\r\n value: value,\r\n valueText: _format(value, {\r\n labelOptions: labelOptions,\r\n ticks: ticks || convertTicksToValues(this._majorTicks),\r\n tickInterval: null !== tickInterval && void 0 !== tickInterval ? tickInterval : this._tickInterval,\r\n dataType: this._options.dataType,\r\n logarithmBase: this._options.logarithmBase,\r\n type: this._options.type,\r\n showTransition: !this._options.marker.visible,\r\n point: point\r\n }) || \"\",\r\n min: range.minVisible,\r\n max: range.maxVisible\r\n };\r\n if (point) {\r\n formatObject.point = point\r\n }\r\n return formatObject\r\n },\r\n formatLabel: function(value, labelOptions, range, point, tickInterval, ticks) {\r\n var formatObject = this._getLabelFormatObject(value, labelOptions, range, point, tickInterval, ticks);\r\n return isFunction(labelOptions.customizeText) ? labelOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText\r\n },\r\n formatHint: function(value, labelOptions, range) {\r\n var formatObject = this._getLabelFormatObject(value, labelOptions, range);\r\n return isFunction(labelOptions.customizeHint) ? labelOptions.customizeHint.call(formatObject, formatObject) : void 0\r\n },\r\n formatRange(startValue, endValue, interval, argumentFormat) {\r\n return formatRange({\r\n startValue: startValue,\r\n endValue: endValue,\r\n tickInterval: interval,\r\n argumentFormat: argumentFormat,\r\n axisOptions: this.getOptions()\r\n })\r\n },\r\n _setTickOffset: function() {\r\n var options = this._options;\r\n var discreteAxisDivisionMode = options.discreteAxisDivisionMode;\r\n this._tickOffset = +(\"crossLabels\" !== discreteAxisDivisionMode || !discreteAxisDivisionMode)\r\n },\r\n aggregatedPointBetweenTicks() {\r\n return \"crossTicks\" === this._options.aggregatedPointsPosition\r\n },\r\n resetApplyingAnimation: function(isFirstDrawing) {\r\n this._resetApplyingAnimation = true;\r\n if (isFirstDrawing) {\r\n this._firstDrawing = true\r\n }\r\n },\r\n isFirstDrawing() {\r\n return this._firstDrawing\r\n },\r\n getMargins: function() {\r\n var that = this;\r\n var {\r\n position: position,\r\n offset: offset,\r\n customPosition: customPosition,\r\n placeholderSize: placeholderSize,\r\n grid: grid,\r\n tick: tick,\r\n crosshairMargin: crosshairMargin\r\n } = that._options;\r\n var isDefinedCustomPositionOption = isDefined(customPosition);\r\n var boundaryPosition = that.getResolvedBoundaryPosition();\r\n var canvas = that.getCanvas();\r\n var cLeft = canvas.left;\r\n var cTop = canvas.top;\r\n var cRight = canvas.width - canvas.right;\r\n var cBottom = canvas.height - canvas.bottom;\r\n var edgeMarginCorrection = _max(grid.visible && grid.width || 0, tick.visible && tick.width || 0);\r\n var constantLineAboveSeries = that._axisConstantLineGroups.above;\r\n var constantLineUnderSeries = that._axisConstantLineGroups.under;\r\n var boxes = [that._axisElementsGroup, constantLineAboveSeries.outside1, constantLineAboveSeries.outside2, constantLineUnderSeries.outside1, constantLineUnderSeries.outside2, that._axisLineGroup].map(group => group && group.getBBox()).concat(function(group) {\r\n var box = group && group.getBBox();\r\n if (!box || box.isEmpty) {\r\n return box\r\n }\r\n if (that._isHorizontal) {\r\n box.x = cLeft;\r\n box.width = cRight - cLeft\r\n } else {\r\n box.y = cTop;\r\n box.height = cBottom - cTop\r\n }\r\n return box\r\n }(that._axisTitleGroup));\r\n var margins = calculateCanvasMargins(boxes, canvas);\r\n margins[position] += crosshairMargin;\r\n if (that.hasNonBoundaryPosition() && isDefinedCustomPositionOption) {\r\n margins[boundaryPosition] = 0\r\n }\r\n if (placeholderSize) {\r\n margins[position] = placeholderSize\r\n }\r\n if (edgeMarginCorrection) {\r\n if (that._isHorizontal && canvas.right < edgeMarginCorrection && margins.right < edgeMarginCorrection) {\r\n margins.right = edgeMarginCorrection\r\n }\r\n if (!that._isHorizontal && canvas.bottom < edgeMarginCorrection && margins.bottom < edgeMarginCorrection) {\r\n margins.bottom = edgeMarginCorrection\r\n }\r\n }\r\n if (!isDefinedCustomPositionOption && isDefined(offset)) {\r\n var moveByOffset = that.customPositionIsBoundary() && (offset > 0 && (boundaryPosition === LEFT || boundaryPosition === TOP) || offset < 0 && (boundaryPosition === RIGHT || boundaryPosition === BOTTOM));\r\n margins[boundaryPosition] -= moveByOffset ? offset : 0\r\n }\r\n return margins\r\n },\r\n validateUnit: function(unit, idError, parameters) {\r\n unit = this.parser(unit);\r\n if (void 0 === unit && idError) {\r\n this._incidentOccurred(idError, [parameters])\r\n }\r\n return unit\r\n },\r\n _setType: function(axisType, drawingType) {\r\n var axisTypeMethods;\r\n switch (axisType) {\r\n case \"xyAxes\":\r\n axisTypeMethods = xyMethods;\r\n break;\r\n case \"polarAxes\":\r\n axisTypeMethods = polarMethods\r\n }\r\n extend(this, axisTypeMethods[drawingType])\r\n },\r\n _getSharpParam: function() {\r\n return true\r\n },\r\n _disposeBreaksGroup: _noop,\r\n dispose: function() {\r\n [this._axisElementsGroup, this._axisStripGroup, this._axisGroup].forEach((function(g) {\r\n g.dispose()\r\n }));\r\n this._strips = this._title = null;\r\n this._axisStripGroup = this._axisConstantLineGroups = this._axisStripLabelGroup = this._axisBreaksGroup = null;\r\n this._axisLineGroup = this._axisElementsGroup = this._axisGridGroup = null;\r\n this._axisGroup = this._axisTitleGroup = null;\r\n this._axesContainerGroup = this._stripsGroup = this._constantLinesGroup = this._labelsAxesGroup = null;\r\n this._renderer = this._options = this._textOptions = this._textFontStyles = null;\r\n this._translator = null;\r\n this._majorTicks = this._minorTicks = null;\r\n this._disposeBreaksGroup();\r\n this._templatesRendered && this._templatesRendered.reject()\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n setPane: function(pane) {\r\n this.pane = pane;\r\n this._options.pane = pane\r\n },\r\n setTypes: function(type, axisType, typeSelector) {\r\n this._options.type = type || this._options.type;\r\n this._options[typeSelector] = axisType || this._options[typeSelector];\r\n this._updateTranslator()\r\n },\r\n resetTypes: function(typeSelector) {\r\n this._options.type = this._initTypes.type;\r\n this._options[typeSelector] = this._initTypes[typeSelector]\r\n },\r\n getTranslator: function() {\r\n return this._translator\r\n },\r\n updateOptions: function(options) {\r\n var that = this;\r\n var labelOpt = options.label;\r\n validateAxisOptions(options);\r\n checkDeprecatedOptions(!that.isArgumentAxis, options);\r\n that._options = options;\r\n options.tick = options.tick || {};\r\n options.minorTick = options.minorTick || {};\r\n options.grid = options.grid || {};\r\n options.minorGrid = options.minorGrid || {};\r\n options.title = options.title || {};\r\n options.marker = options.marker || {};\r\n that._initTypes = {\r\n type: options.type,\r\n argumentType: options.argumentType,\r\n valueType: options.valueType\r\n };\r\n that._setTickOffset();\r\n that._isHorizontal = options.isHorizontal;\r\n that.pane = options.pane;\r\n that.name = options.name;\r\n that.priority = options.priority;\r\n that._hasLabelFormat = \"\" !== labelOpt.format && isDefined(labelOpt.format);\r\n that._textOptions = {\r\n opacity: labelOpt.opacity,\r\n align: \"center\",\r\n class: labelOpt.cssClass\r\n };\r\n that._textFontStyles = patchFontOptions(labelOpt.font);\r\n if (options.type === constants.logarithmic) {\r\n if (options.logarithmBaseError) {\r\n that._incidentOccurred(\"E2104\");\r\n delete options.logarithmBaseError\r\n }\r\n }\r\n that._updateTranslator();\r\n that._createConstantLines();\r\n that._strips = (options.strips || []).map(o => createStrip(that, o));\r\n that._majorTicks = that._minorTicks = null;\r\n that._firstDrawing = true\r\n },\r\n calculateInterval: function(value, prevValue) {\r\n var options = this._options;\r\n if (!options || options.type !== constants.logarithmic) {\r\n return _abs(value - prevValue)\r\n }\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold\r\n } = new Range(this.getTranslator().getBusinessRange());\r\n return _abs(getLog(value, options.logarithmBase, allowNegatives, linearThreshold) - getLog(prevValue, options.logarithmBase, allowNegatives, linearThreshold))\r\n },\r\n getCanvasRange() {\r\n var translator = this._translator;\r\n return {\r\n startValue: translator.from(translator.translate(\"canvas_position_start\")),\r\n endValue: translator.from(translator.translate(\"canvas_position_end\"))\r\n }\r\n },\r\n _processCanvas: function(canvas) {\r\n return canvas\r\n },\r\n updateCanvas: function(canvas, canvasRedesign) {\r\n if (!canvasRedesign) {\r\n var positions = this._orthogonalPositions = {\r\n start: !this._isHorizontal ? canvas.left : canvas.top,\r\n end: !this._isHorizontal ? canvas.width - canvas.right : canvas.height - canvas.bottom\r\n };\r\n positions.center = positions.start + (positions.end - positions.start) / 2\r\n } else {\r\n this._orthogonalPositions = null\r\n }\r\n this._canvas = canvas;\r\n this._translator.updateCanvas(this._processCanvas(canvas));\r\n this._initAxisPositions()\r\n },\r\n getCanvas: function() {\r\n return this._canvas\r\n },\r\n getAxisShift() {\r\n return this._axisShift || 0\r\n },\r\n hideTitle: function() {\r\n if (this._options.title.text) {\r\n this._incidentOccurred(\"W2105\", [this._isHorizontal ? \"horizontal\" : \"vertical\"]);\r\n this._axisTitleGroup.clear()\r\n }\r\n },\r\n getTitle: function() {\r\n return this._title\r\n },\r\n hideOuterElements: function() {\r\n var options = this._options;\r\n if ((options.label.visible || this._outsideConstantLines.length) && !this._translator.getBusinessRange().isEmpty()) {\r\n this._incidentOccurred(\"W2106\", [this._isHorizontal ? \"horizontal\" : \"vertical\"]);\r\n this._axisElementsGroup.clear();\r\n callAction(this._outsideConstantLines, \"removeLabel\")\r\n }\r\n },\r\n _resolveLogarithmicOptionsForRange(range) {\r\n var options = this._options;\r\n if (options.type === constants.logarithmic) {\r\n range.addRange({\r\n allowNegatives: void 0 !== options.allowNegatives ? options.allowNegatives : range.min <= 0\r\n });\r\n if (!isNaN(options.linearThreshold)) {\r\n range.linearThreshold = options.linearThreshold\r\n }\r\n }\r\n },\r\n adjustViewport(businessRange) {\r\n var options = this._options;\r\n var isDiscrete = options.type === constants.discrete;\r\n var categories = this._seriesData && this._seriesData.categories || [];\r\n var wholeRange = this.adjustRange(getVizRangeObject(options.wholeRange));\r\n var visualRange = this.getViewport() || {};\r\n var result = new Range(businessRange);\r\n this._addConstantLinesToRange(result);\r\n var minDefined = isDefined(visualRange.startValue);\r\n var maxDefined = isDefined(visualRange.endValue);\r\n if (!isDiscrete) {\r\n minDefined = minDefined && (!isDefined(wholeRange.endValue) || visualRange.startValue < wholeRange.endValue);\r\n maxDefined = maxDefined && (!isDefined(wholeRange.startValue) || visualRange.endValue > wholeRange.startValue)\r\n }\r\n var minVisible = minDefined ? visualRange.startValue : result.minVisible;\r\n var maxVisible = maxDefined ? visualRange.endValue : result.maxVisible;\r\n if (!isDiscrete) {\r\n var _wholeRange$startValu, _wholeRange$endValue;\r\n result.min = null !== (_wholeRange$startValu = wholeRange.startValue) && void 0 !== _wholeRange$startValu ? _wholeRange$startValu : result.min;\r\n result.max = null !== (_wholeRange$endValue = wholeRange.endValue) && void 0 !== _wholeRange$endValue ? _wholeRange$endValue : result.max\r\n } else {\r\n var categoriesInfo = getCategoriesInfo(categories, wholeRange.startValue, wholeRange.endValue);\r\n categories = categoriesInfo.categories;\r\n result.categories = categories\r\n }\r\n var adjustedVisualRange = adjustVisualRange({\r\n axisType: options.type,\r\n dataType: options.dataType,\r\n base: options.logarithmBase\r\n }, {\r\n startValue: minDefined ? visualRange.startValue : void 0,\r\n endValue: maxDefined ? visualRange.endValue : void 0,\r\n length: visualRange.length\r\n }, {\r\n categories: categories,\r\n min: wholeRange.startValue,\r\n max: wholeRange.endValue\r\n }, {\r\n categories: categories,\r\n min: minVisible,\r\n max: maxVisible\r\n });\r\n result.minVisible = adjustedVisualRange.startValue;\r\n result.maxVisible = adjustedVisualRange.endValue;\r\n !isDefined(result.min) && (result.min = result.minVisible);\r\n !isDefined(result.max) && (result.max = result.maxVisible);\r\n result.addRange({});\r\n this._resolveLogarithmicOptionsForRange(result);\r\n return result\r\n },\r\n adjustRange(range) {\r\n range = range || {};\r\n var isDiscrete = this._options.type === constants.discrete;\r\n var isLogarithmic = this._options.type === constants.logarithmic;\r\n var disabledNegatives = false === this._options.allowNegatives;\r\n if (isLogarithmic) {\r\n range.startValue = disabledNegatives && range.startValue <= 0 ? null : range.startValue;\r\n range.endValue = disabledNegatives && range.endValue <= 0 ? null : range.endValue\r\n }\r\n if (!isDiscrete && isDefined(range.startValue) && isDefined(range.endValue) && range.startValue > range.endValue) {\r\n var tmp = range.endValue;\r\n range.endValue = range.startValue;\r\n range.startValue = tmp\r\n }\r\n return range\r\n },\r\n _getVisualRangeUpdateMode(viewport, newRange, oppositeValue) {\r\n var value = this._options.visualRangeUpdateMode;\r\n var translator = this._translator;\r\n var range = this._seriesData;\r\n var prevDataInfo = this._prevDataInfo;\r\n if (prevDataInfo.isEmpty && !prevDataInfo.containsConstantLine) {\r\n return KEEP\r\n }\r\n if (!this.isArgumentAxis) {\r\n var _viewport = this.getViewport();\r\n if (!isDefined(_viewport.startValue) && !isDefined(_viewport.endValue) && !isDefined(_viewport.length)) {\r\n return RESET\r\n }\r\n }\r\n if (this.isArgumentAxis) {\r\n if (-1 === [SHIFT, KEEP, RESET].indexOf(value)) {\r\n if (range.axisType === constants.discrete) {\r\n var categories = range.categories;\r\n var newCategories = newRange.categories;\r\n var visualRange = this.visualRange();\r\n if (categories && newCategories && categories.length && -1 !== newCategories.map(c => c.valueOf()).join(\",\").indexOf(categories.map(c => c.valueOf()).join(\",\")) && (visualRange.startValue.valueOf() !== categories[0].valueOf() || visualRange.endValue.valueOf() !== categories[categories.length - 1].valueOf())) {\r\n value = KEEP\r\n } else {\r\n value = RESET\r\n }\r\n } else {\r\n var minPoint = translator.translate(range.min);\r\n var minVisiblePoint = translator.translate(viewport.startValue);\r\n var maxPoint = translator.translate(range.max);\r\n var maxVisiblePoint = translator.translate(viewport.endValue);\r\n if (minPoint === minVisiblePoint && maxPoint === maxVisiblePoint) {\r\n value = RESET\r\n } else if (minPoint !== minVisiblePoint && maxPoint === maxVisiblePoint) {\r\n value = SHIFT\r\n } else {\r\n value = KEEP\r\n }\r\n }\r\n if (value === KEEP && prevDataInfo.isEmpty && prevDataInfo.containsConstantLine) {\r\n value = RESET\r\n }\r\n }\r\n } else if (-1 === [KEEP, RESET].indexOf(value)) {\r\n if (oppositeValue === KEEP) {\r\n value = KEEP\r\n } else {\r\n value = RESET\r\n }\r\n }\r\n return value\r\n },\r\n _handleBusinessRangeChanged(oppositeVisualRangeUpdateMode, axisReinitialized, newRange) {\r\n var visualRange = this.visualRange();\r\n if (axisReinitialized || this._translator.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n var visualRangeUpdateMode = this._lastVisualRangeUpdateMode = this._getVisualRangeUpdateMode(visualRange, newRange, oppositeVisualRangeUpdateMode);\r\n if (visualRangeUpdateMode === KEEP) {\r\n this._setVisualRange([visualRange.startValue, visualRange.endValue])\r\n } else if (visualRangeUpdateMode === RESET) {\r\n this._setVisualRange([null, null])\r\n } else if (visualRangeUpdateMode === SHIFT) {\r\n this._setVisualRange({\r\n length: this.getVisualRangeLength()\r\n })\r\n }\r\n },\r\n getVisualRangeLength(range) {\r\n var currentBusinessRange = range || this._translator.getBusinessRange();\r\n var {\r\n type: type\r\n } = this._options;\r\n var length;\r\n if (type === constants.logarithmic) {\r\n length = adjust(this.calculateInterval(currentBusinessRange.maxVisible, currentBusinessRange.minVisible))\r\n } else if (type === constants.discrete) {\r\n var categoriesInfo = getCategoriesInfo(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);\r\n length = categoriesInfo.categories.length\r\n } else {\r\n length = currentBusinessRange.maxVisible - currentBusinessRange.minVisible\r\n }\r\n return length\r\n },\r\n getVisualRangeCenter(range, useMerge) {\r\n var translator = this.getTranslator();\r\n var businessRange = translator.getBusinessRange();\r\n var currentBusinessRange = useMerge ? extend(true, {}, businessRange, range || {}) : range || businessRange;\r\n var {\r\n type: type,\r\n logarithmBase: logarithmBase\r\n } = this._options;\r\n var center;\r\n if (!isDefined(currentBusinessRange.minVisible) || !isDefined(currentBusinessRange.maxVisible)) {\r\n return\r\n }\r\n if (type === constants.logarithmic) {\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold,\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = currentBusinessRange;\r\n center = raiseTo(adjust(getLog(maxVisible, logarithmBase, allowNegatives, linearThreshold) + getLog(minVisible, logarithmBase, allowNegatives, linearThreshold)) / 2, logarithmBase, allowNegatives, linearThreshold)\r\n } else if (type === constants.discrete) {\r\n var categoriesInfo = getCategoriesInfo(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);\r\n var index = Math.ceil(categoriesInfo.categories.length / 2) - 1;\r\n center = businessRange.categories.indexOf(categoriesInfo.categories[index])\r\n } else {\r\n center = translator.toValue((currentBusinessRange.maxVisible.valueOf() + currentBusinessRange.minVisible.valueOf()) / 2)\r\n }\r\n return center\r\n },\r\n setBusinessRange(range, axisReinitialized, oppositeVisualRangeUpdateMode, argCategories) {\r\n var _that$_seriesData$min, _that$_seriesData$max;\r\n var options = this._options;\r\n var isDiscrete = options.type === constants.discrete;\r\n this._handleBusinessRangeChanged(oppositeVisualRangeUpdateMode, axisReinitialized, range);\r\n this._seriesData = new Range(range);\r\n var dataIsEmpty = this._seriesData.isEmpty();\r\n var rangeWithConstantLines = new Range(this._seriesData);\r\n this._addConstantLinesToRange(rangeWithConstantLines);\r\n this._prevDataInfo = {\r\n isEmpty: dataIsEmpty,\r\n containsConstantLine: rangeWithConstantLines.containsConstantLine\r\n };\r\n this._seriesData.addRange({\r\n categories: options.categories,\r\n dataType: options.dataType,\r\n axisType: options.type,\r\n base: options.logarithmBase,\r\n invert: options.inverted\r\n });\r\n this._resolveLogarithmicOptionsForRange(this._seriesData);\r\n if (!isDiscrete) {\r\n if (!isDefined(this._seriesData.min) && !isDefined(this._seriesData.max)) {\r\n var visualRange = this.getViewport();\r\n visualRange && this._seriesData.addRange({\r\n min: visualRange.startValue,\r\n max: visualRange.endValue\r\n })\r\n }\r\n var synchronizedValue = options.synchronizedValue;\r\n if (isDefined(synchronizedValue)) {\r\n this._seriesData.addRange({\r\n min: synchronizedValue,\r\n max: synchronizedValue\r\n })\r\n }\r\n }\r\n this._seriesData.minVisible = null !== (_that$_seriesData$min = this._seriesData.minVisible) && void 0 !== _that$_seriesData$min ? _that$_seriesData$min : this._seriesData.min;\r\n this._seriesData.maxVisible = null !== (_that$_seriesData$max = this._seriesData.maxVisible) && void 0 !== _that$_seriesData$max ? _that$_seriesData$max : this._seriesData.max;\r\n if (!this.isArgumentAxis && options.showZero) {\r\n this._seriesData.correctValueZeroLevel()\r\n }\r\n this._seriesData.sortCategories(this.getCategoriesSorter(argCategories));\r\n this._seriesData.userBreaks = this._seriesData.isEmpty() ? [] : this._getScaleBreaks(options, this._seriesData, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n _addConstantLinesToRange(dataRange) {\r\n this._outsideConstantLines.concat(this._insideConstantLines || []).forEach(cl => {\r\n if (cl.options.extendAxis) {\r\n var value = cl.getParsedValue();\r\n dataRange.addRange({\r\n containsConstantLine: true,\r\n minVisible: value,\r\n maxVisible: value,\r\n min: !isDefined(dataRange.min) ? value : dataRange.min,\r\n max: !isDefined(dataRange.max) ? value : dataRange.max\r\n })\r\n }\r\n })\r\n },\r\n setGroupSeries: function(series) {\r\n this._series = series\r\n },\r\n getLabelsPosition: function() {\r\n var options = this._options;\r\n var position = options.position;\r\n var labelShift = options.label.indentFromAxis + (this._axisShift || 0) + this._constantLabelOffset;\r\n var axisPosition = this._axisPosition;\r\n return position === TOP || position === LEFT ? axisPosition - labelShift : axisPosition + labelShift\r\n },\r\n getFormattedValue: function(value, options, point) {\r\n var labelOptions = this._options.label;\r\n return isDefined(value) ? this.formatLabel(value, extend(true, {}, labelOptions, options), void 0, point) : null\r\n },\r\n _getBoundaryTicks: function(majors, viewPort) {\r\n var length = majors.length;\r\n var options = this._options;\r\n var customBounds = options.customBoundTicks;\r\n var min = viewPort.minVisible;\r\n var max = viewPort.maxVisible;\r\n var addMinMax = options.showCustomBoundaryTicks ? this._boundaryTicksVisibility : {};\r\n var boundaryTicks = [];\r\n if (options.type === constants.discrete) {\r\n if (this._tickOffset && 0 !== majors.length) {\r\n boundaryTicks = [majors[0], majors[majors.length - 1]]\r\n }\r\n } else if (customBounds) {\r\n if (addMinMax.min && isDefined(customBounds[0])) {\r\n boundaryTicks.push(customBounds[0])\r\n }\r\n if (addMinMax.max && isDefined(customBounds[1])) {\r\n boundaryTicks.push(customBounds[1])\r\n }\r\n } else {\r\n if (addMinMax.min && (0 === length || majors[0] > min)) {\r\n boundaryTicks.push(min)\r\n }\r\n if (addMinMax.max && (0 === length || majors[length - 1] < max)) {\r\n boundaryTicks.push(max)\r\n }\r\n }\r\n return boundaryTicks\r\n },\r\n setPercentLabelFormat: function() {\r\n if (!this._hasLabelFormat) {\r\n this._options.label.format = \"percent\"\r\n }\r\n },\r\n resetAutoLabelFormat: function() {\r\n if (!this._hasLabelFormat) {\r\n delete this._options.label.format\r\n }\r\n },\r\n getMultipleAxesSpacing: function() {\r\n return this._options.multipleAxesSpacing || 0\r\n },\r\n getTicksValues: function() {\r\n return {\r\n majorTicksValues: convertTicksToValues(this._majorTicks),\r\n minorTicksValues: convertTicksToValues(this._minorTicks)\r\n }\r\n },\r\n estimateTickInterval: function(canvas) {\r\n this.updateCanvas(canvas);\r\n return this._tickInterval !== this._getTicks(this._getViewportRange(), _noop, true).tickInterval\r\n },\r\n setTicks: function(ticks) {\r\n var majors = ticks.majorTicks || [];\r\n this._majorTicks = majors.map(createMajorTick(this, this._renderer, this._getSkippedCategory(majors)));\r\n this._minorTicks = (ticks.minorTicks || []).map(createMinorTick(this, this._renderer));\r\n this._isSynchronized = true\r\n },\r\n _adjustDivisionFactor: function(val) {\r\n return val\r\n },\r\n _getTicks: function(viewPort, incidentOccurred, skipTickGeneration) {\r\n var options = this._options;\r\n var customTicks = options.customTicks;\r\n var customMinorTicks = options.customMinorTicks;\r\n return getTickGenerator(options, incidentOccurred || this._incidentOccurred, skipTickGeneration, this._translator.getBusinessRange().isEmpty(), this._adjustDivisionFactor.bind(this), viewPort)({\r\n min: viewPort.minVisible,\r\n max: viewPort.maxVisible,\r\n categories: viewPort.categories,\r\n isSpacedMargin: viewPort.isSpacedMargin\r\n }, this._getScreenDelta(), options.tickInterval, \"ignore\" === options.label.overlappingBehavior || options.forceUserTickInterval, {\r\n majors: customTicks,\r\n minors: customMinorTicks\r\n }, options.minorTickInterval, options.minorTickCount, this._initialBreaks)\r\n },\r\n _createTicksAndLabelFormat: function(range, incidentOccurred) {\r\n var options = this._options;\r\n var ticks = this._getTicks(range, incidentOccurred, false);\r\n if (!range.isEmpty() && options.type === constants.discrete && \"datetime\" === options.dataType && !this._hasLabelFormat && ticks.ticks.length) {\r\n options.label.format = formatHelper.getDateFormatByTicks(ticks.ticks)\r\n }\r\n return ticks\r\n },\r\n getAggregationInfo(useAllAggregatedPoints, range) {\r\n var _visualRange$startVal, _visualRange$endValue, _that$_seriesData;\r\n var options = this._options;\r\n var marginOptions = this._marginOptions;\r\n var businessRange = new Range(this.getTranslator().getBusinessRange()).addRange(range);\r\n var visualRange = this.getViewport();\r\n var minVisible = null !== (_visualRange$startVal = null === visualRange || void 0 === visualRange ? void 0 : visualRange.startValue) && void 0 !== _visualRange$startVal ? _visualRange$startVal : businessRange.minVisible;\r\n var maxVisible = null !== (_visualRange$endValue = null === visualRange || void 0 === visualRange ? void 0 : visualRange.endValue) && void 0 !== _visualRange$endValue ? _visualRange$endValue : businessRange.maxVisible;\r\n var ticks = [];\r\n if (options.type === constants.discrete && options.aggregateByCategory) {\r\n return {\r\n aggregateByCategory: true\r\n }\r\n }\r\n var aggregationInterval = options.aggregationInterval;\r\n var aggregationGroupWidth = options.aggregationGroupWidth;\r\n if (!aggregationGroupWidth && marginOptions) {\r\n if (marginOptions.checkInterval) {\r\n aggregationGroupWidth = options.axisDivisionFactor\r\n }\r\n if (marginOptions.sizePointNormalState) {\r\n aggregationGroupWidth = Math.min(marginOptions.sizePointNormalState, options.axisDivisionFactor)\r\n }\r\n }\r\n var minInterval = !options.aggregationGroupWidth && !aggregationInterval && range.interval;\r\n var generateTicks = configureGenerator(options, aggregationGroupWidth, businessRange, this._getScreenDelta(), minInterval);\r\n var tickInterval = generateTicks(aggregationInterval, true, minVisible, maxVisible, null === (_that$_seriesData = this._seriesData) || void 0 === _that$_seriesData ? void 0 : _that$_seriesData.breaks).tickInterval;\r\n if (options.type !== constants.discrete) {\r\n var min = useAllAggregatedPoints ? businessRange.min : minVisible;\r\n var max = useAllAggregatedPoints ? businessRange.max : maxVisible;\r\n if (isDefined(min) && isDefined(max)) {\r\n var add = getAddFunction({\r\n base: options.logarithmBase,\r\n axisType: options.type,\r\n dataType: options.dataType\r\n }, false);\r\n var start = min;\r\n var end = max;\r\n if (!useAllAggregatedPoints && isDefined(tickInterval)) {\r\n var maxMinDistance = Math.max(this.calculateInterval(max, min), \"datetime\" === options.dataType ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval);\r\n start = add(min, maxMinDistance, -1);\r\n end = add(max, maxMinDistance)\r\n }\r\n start = start < businessRange.min ? businessRange.min : start;\r\n end = end > businessRange.max ? businessRange.max : end;\r\n var breaks = this._getScaleBreaks(options, {\r\n minVisible: start,\r\n maxVisible: end\r\n }, this._series, this.isArgumentAxis);\r\n var filteredBreaks = this._filterBreaks(breaks, {\r\n minVisible: start,\r\n maxVisible: end\r\n }, options.breakStyle);\r\n ticks = generateTicks(tickInterval, false, start, end, filteredBreaks).ticks\r\n }\r\n }\r\n this._aggregationInterval = tickInterval;\r\n return {\r\n interval: tickInterval,\r\n ticks: ticks\r\n }\r\n },\r\n getTickInterval() {\r\n return this._tickInterval\r\n },\r\n getAggregationInterval() {\r\n return this._aggregationInterval\r\n },\r\n createTicks: function(canvas) {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var options = that._options;\r\n if (!canvas) {\r\n return\r\n }\r\n that._isSynchronized = false;\r\n that.updateCanvas(canvas);\r\n var range = that._getViewportRange();\r\n that._initialBreaks = range.breaks = this._seriesData.breaks = that._filterBreaks(this._seriesData.userBreaks, range, options.breakStyle);\r\n that._estimatedTickInterval = that._getTicks(that.adjustViewport(this._seriesData), _noop, true).tickInterval;\r\n var margins = this._calculateValueMargins();\r\n range.addRange({\r\n minVisible: margins.minValue,\r\n maxVisible: margins.maxValue,\r\n isSpacedMargin: margins.isSpacedMargin\r\n });\r\n var ticks = that._createTicksAndLabelFormat(range);\r\n var boundaryTicks = that._getBoundaryTicks(ticks.ticks, that._getViewportRange());\r\n if (options.showCustomBoundaryTicks && boundaryTicks.length) {\r\n that._boundaryTicks = [boundaryTicks[0]].map(createBoundaryTick(that, renderer, true));\r\n if (boundaryTicks.length > 1) {\r\n that._boundaryTicks = that._boundaryTicks.concat([boundaryTicks[1]].map(createBoundaryTick(that, renderer, false)))\r\n }\r\n } else {\r\n that._boundaryTicks = []\r\n }\r\n var minors = (ticks.minorTicks || []).filter((function(minor) {\r\n return !boundaryTicks.some((function(boundary) {\r\n return valueOf(boundary) === valueOf(minor)\r\n }))\r\n }));\r\n that._tickInterval = ticks.tickInterval;\r\n that._minorTickInterval = ticks.minorTickInterval;\r\n var oldMajorTicks = that._majorTicks || [];\r\n var majorTicksByValues = oldMajorTicks.reduce((r, t) => {\r\n r[t.value.valueOf()] = t;\r\n return r\r\n }, {});\r\n var sameType = type(ticks.ticks[0]) === type(oldMajorTicks[0] && oldMajorTicks[0].value);\r\n var skippedCategory = that._getSkippedCategory(ticks.ticks);\r\n var majorTicks = ticks.ticks.map(v => {\r\n var tick = majorTicksByValues[v.valueOf()];\r\n if (tick && sameType) {\r\n delete majorTicksByValues[v.valueOf()];\r\n tick.setSkippedCategory(skippedCategory);\r\n return tick\r\n } else {\r\n return createMajorTick(that, renderer, skippedCategory)(v)\r\n }\r\n });\r\n that._majorTicks = majorTicks;\r\n var oldMinorTicks = that._minorTicks || [];\r\n that._minorTicks = minors.map((v, i) => {\r\n var minorTick = oldMinorTicks[i];\r\n if (minorTick) {\r\n minorTick.updateValue(v);\r\n return minorTick\r\n }\r\n return createMinorTick(that, renderer)(v)\r\n });\r\n that._ticksToRemove = Object.keys(majorTicksByValues).map(k => majorTicksByValues[k]).concat(oldMinorTicks.slice(that._minorTicks.length, oldMinorTicks.length));\r\n that._ticksToRemove.forEach(t => {\r\n var _t$label;\r\n return null === (_t$label = t.label) || void 0 === _t$label ? void 0 : _t$label.removeTitle()\r\n });\r\n if (ticks.breaks) {\r\n that._seriesData.breaks = ticks.breaks\r\n }\r\n that._reinitTranslator(that._getViewportRange())\r\n },\r\n _reinitTranslator: function(range) {\r\n var translator = this._translator;\r\n if (this._isSynchronized) {\r\n return\r\n }\r\n translator.updateBusinessRange(range)\r\n },\r\n _getViewportRange() {\r\n return this.adjustViewport(this._seriesData)\r\n },\r\n setMarginOptions: function(options) {\r\n this._marginOptions = options\r\n },\r\n getMarginOptions() {\r\n var _this$_marginOptions;\r\n return null !== (_this$_marginOptions = this._marginOptions) && void 0 !== _this$_marginOptions ? _this$_marginOptions : {}\r\n },\r\n _calculateRangeInterval: function(interval) {\r\n var isDateTime = \"datetime\" === this._options.dataType;\r\n var minArgs = [];\r\n var addToArgs = function(value) {\r\n isDefined(value) && minArgs.push(isDateTime ? dateUtils.dateToMilliseconds(value) : value)\r\n };\r\n addToArgs(this._tickInterval);\r\n addToArgs(this._estimatedTickInterval);\r\n isDefined(interval) && minArgs.push(interval);\r\n addToArgs(this._aggregationInterval);\r\n return this._calculateWorkWeekInterval(_min.apply(this, minArgs))\r\n },\r\n _calculateWorkWeekInterval(businessInterval) {\r\n var options = this._options;\r\n if (\"datetime\" === options.dataType && options.workdaysOnly && businessInterval) {\r\n var workWeek = options.workWeek.length * dateIntervals.day;\r\n var weekend = dateIntervals.week - workWeek;\r\n if (workWeek !== businessInterval && weekend < businessInterval) {\r\n var weekendsCount = Math.ceil(businessInterval / dateIntervals.week);\r\n businessInterval -= weekend * weekendsCount\r\n } else if (weekend >= businessInterval && businessInterval > dateIntervals.day) {\r\n businessInterval = dateIntervals.day\r\n }\r\n }\r\n return businessInterval\r\n },\r\n _getConvertIntervalCoefficient(intervalInPx, screenDelta) {\r\n var ratioOfCanvasRange = this._translator.ratioOfCanvasRange();\r\n return ratioOfCanvasRange / (ratioOfCanvasRange * screenDelta / (intervalInPx + screenDelta))\r\n },\r\n _calculateValueMargins(ticks) {\r\n this._resetMargins();\r\n var margins = this.getMarginOptions();\r\n var marginSize = (margins.size || 0) / 2;\r\n var options = this._options;\r\n var dataRange = this._getViewportRange();\r\n var viewPort = this.getViewport();\r\n var screenDelta = this._getScreenDelta();\r\n var isDiscrete = -1 !== (options.type || \"\").indexOf(constants.discrete);\r\n var valueMarginsEnabled = options.valueMarginsEnabled && !isDiscrete && !this.customPositionIsBoundaryOrthogonalAxis();\r\n var translator = this._translator;\r\n var minValueMargin = options.minValueMargin;\r\n var maxValueMargin = options.maxValueMargin;\r\n var minPadding = 0;\r\n var maxPadding = 0;\r\n var interval = 0;\r\n var rangeInterval;\r\n if (dataRange.stubData || !screenDelta) {\r\n return {\r\n startPadding: 0,\r\n endPadding: 0\r\n }\r\n }\r\n if (this.isArgumentAxis && margins.checkInterval) {\r\n rangeInterval = this._calculateRangeInterval(dataRange.interval);\r\n var pxInterval = translator.getInterval(rangeInterval);\r\n if (isFinite(pxInterval)) {\r\n interval = Math.ceil(pxInterval / (2 * this._getConvertIntervalCoefficient(pxInterval, screenDelta)))\r\n } else {\r\n rangeInterval = 0\r\n }\r\n }\r\n var minPercentPadding;\r\n var maxPercentPadding;\r\n var maxPaddingValue = screenDelta * MAX_MARGIN_VALUE / 2;\r\n if (valueMarginsEnabled) {\r\n if (isDefined(minValueMargin)) {\r\n minPercentPadding = isFinite(minValueMargin) ? minValueMargin : 0\r\n } else if (!this.isArgumentAxis && margins.checkInterval && valueOf(dataRange.minVisible) > 0 && valueOf(dataRange.minVisible) === valueOf(dataRange.min)) {\r\n minPadding = MIN_BAR_MARGIN\r\n } else {\r\n minPadding = Math.max(marginSize, interval);\r\n minPadding = Math.min(maxPaddingValue, minPadding)\r\n }\r\n if (isDefined(maxValueMargin)) {\r\n maxPercentPadding = isFinite(maxValueMargin) ? maxValueMargin : 0\r\n } else if (!this.isArgumentAxis && margins.checkInterval && valueOf(dataRange.maxVisible) < 0 && valueOf(dataRange.maxVisible) === valueOf(dataRange.max)) {\r\n maxPadding = MIN_BAR_MARGIN\r\n } else {\r\n maxPadding = Math.max(marginSize, interval);\r\n maxPadding = Math.min(maxPaddingValue, maxPadding)\r\n }\r\n }\r\n var percentStick = margins.percentStick && !this.isArgumentAxis;\r\n if (percentStick) {\r\n if (1 === _abs(dataRange.max)) {\r\n maxPadding = 0\r\n }\r\n if (1 === _abs(dataRange.min)) {\r\n minPadding = 0\r\n }\r\n }\r\n var canvasStartEnd = this._getCanvasStartEnd();\r\n var commonMargin = 1 + (minPercentPadding || 0) + (maxPercentPadding || 0);\r\n var screenDeltaWithMargins = (screenDelta - minPadding - maxPadding) / commonMargin || screenDelta;\r\n if (void 0 !== minPercentPadding || void 0 !== maxPercentPadding) {\r\n if (void 0 !== minPercentPadding) {\r\n minPadding = screenDeltaWithMargins * minPercentPadding\r\n }\r\n if (void 0 !== maxPercentPadding) {\r\n maxPadding = screenDeltaWithMargins * maxPercentPadding\r\n }\r\n }\r\n var minValue;\r\n var maxValue;\r\n if (options.type !== constants.discrete && ticks && ticks.length > 1 && !options.skipViewportExtending && !viewPort.action && false !== options.endOnTick) {\r\n var length = ticks.length;\r\n var firstTickPosition = translator.translate(ticks[0].value);\r\n var lastTickPosition = translator.translate(ticks[length - 1].value);\r\n var invertMultiplier = firstTickPosition > lastTickPosition ? -1 : 1;\r\n var minTickPadding = _max(invertMultiplier * (canvasStartEnd.start - firstTickPosition), 0);\r\n var maxTickPadding = _max(invertMultiplier * (lastTickPosition - canvasStartEnd.end), 0);\r\n if (minTickPadding > minPadding || maxTickPadding > maxPadding) {\r\n var commonPadding = maxTickPadding + minTickPadding;\r\n var coeff = this._getConvertIntervalCoefficient(commonPadding, screenDelta);\r\n if (minTickPadding >= minPadding) {\r\n minValue = ticks[0].value\r\n }\r\n if (maxTickPadding >= maxPadding) {\r\n maxValue = ticks[length - 1].value\r\n }\r\n minPadding = _max(minTickPadding, minPadding) / coeff;\r\n maxPadding = _max(maxTickPadding, maxPadding) / coeff\r\n }\r\n }\r\n minPercentPadding = void 0 === minPercentPadding ? minPadding / screenDeltaWithMargins : minPercentPadding;\r\n maxPercentPadding = void 0 === maxPercentPadding ? maxPadding / screenDeltaWithMargins : maxPercentPadding;\r\n if (!isDiscrete) {\r\n if (this._translator.isInverted()) {\r\n var _minValue, _maxValue;\r\n minValue = null !== (_minValue = minValue) && void 0 !== _minValue ? _minValue : translator.from(canvasStartEnd.start + screenDelta * minPercentPadding, -1);\r\n maxValue = null !== (_maxValue = maxValue) && void 0 !== _maxValue ? _maxValue : translator.from(canvasStartEnd.end - screenDelta * maxPercentPadding, 1)\r\n } else {\r\n var _minValue2, _maxValue2;\r\n minValue = null !== (_minValue2 = minValue) && void 0 !== _minValue2 ? _minValue2 : translator.from(canvasStartEnd.start - screenDelta * minPercentPadding, -1);\r\n maxValue = null !== (_maxValue2 = maxValue) && void 0 !== _maxValue2 ? _maxValue2 : translator.from(canvasStartEnd.end + screenDelta * maxPercentPadding, 1)\r\n }\r\n }\r\n var {\r\n correctedMin: correctedMin,\r\n correctedMax: correctedMax,\r\n start: start,\r\n end: end\r\n } = this.getCorrectedValuesToZero(minValue, maxValue);\r\n minPadding = null !== start && void 0 !== start ? start : minPadding;\r\n maxPadding = null !== end && void 0 !== end ? end : maxPadding;\r\n return {\r\n startPadding: translator.isInverted() ? maxPadding : minPadding,\r\n endPadding: translator.isInverted() ? minPadding : maxPadding,\r\n minValue: null !== correctedMin && void 0 !== correctedMin ? correctedMin : minValue,\r\n maxValue: null !== correctedMax && void 0 !== correctedMax ? correctedMax : maxValue,\r\n interval: rangeInterval,\r\n isSpacedMargin: minPadding === maxPadding && 0 !== minPadding\r\n }\r\n },\r\n getCorrectedValuesToZero(minValue, maxValue) {\r\n var that = this;\r\n var translator = that._translator;\r\n var canvasStartEnd = that._getCanvasStartEnd();\r\n var dataRange = that._getViewportRange();\r\n var screenDelta = that._getScreenDelta();\r\n var options = that._options;\r\n var start;\r\n var end;\r\n var correctedMin;\r\n var correctedMax;\r\n var correctZeroLevel = (minPoint, maxPoint) => {\r\n var minExpectedPadding = _abs(canvasStartEnd.start - minPoint);\r\n var maxExpectedPadding = _abs(canvasStartEnd.end - maxPoint);\r\n var coeff = that._getConvertIntervalCoefficient(minExpectedPadding + maxExpectedPadding, screenDelta);\r\n start = minExpectedPadding / coeff;\r\n end = maxExpectedPadding / coeff\r\n };\r\n if (!that.isArgumentAxis && \"datetime\" !== options.dataType) {\r\n if (minValue * dataRange.min <= 0 && minValue * dataRange.minVisible <= 0) {\r\n correctZeroLevel(translator.translate(0), translator.translate(maxValue));\r\n correctedMin = 0\r\n }\r\n if (maxValue * dataRange.max <= 0 && maxValue * dataRange.maxVisible <= 0) {\r\n correctZeroLevel(translator.translate(minValue), translator.translate(0));\r\n correctedMax = 0\r\n }\r\n }\r\n return {\r\n start: isFinite(start) ? start : null,\r\n end: isFinite(end) ? end : null,\r\n correctedMin: correctedMin,\r\n correctedMax: correctedMax\r\n }\r\n },\r\n applyMargins() {\r\n if (this._isSynchronized) {\r\n return\r\n }\r\n var margins = this._calculateValueMargins(this._majorTicks);\r\n var canvas = extend({}, this._canvas, {\r\n startPadding: margins.startPadding,\r\n endPadding: margins.endPadding\r\n });\r\n this._translator.updateCanvas(this._processCanvas(canvas));\r\n if (isFinite(margins.interval)) {\r\n var br = this._translator.getBusinessRange();\r\n br.addRange({\r\n interval: margins.interval\r\n });\r\n this._translator.updateBusinessRange(br)\r\n }\r\n },\r\n _resetMargins: function() {\r\n this._reinitTranslator(this._getViewportRange());\r\n if (this._canvas) {\r\n this._translator.updateCanvas(this._processCanvas(this._canvas))\r\n }\r\n },\r\n _createConstantLines() {\r\n var constantLines = (this._options.constantLines || []).map(o => createConstantLine(this, o));\r\n this._outsideConstantLines = constantLines.filter(l => \"outside\" === l.labelPosition);\r\n this._insideConstantLines = constantLines.filter(l => \"inside\" === l.labelPosition)\r\n },\r\n draw: function(canvas, borderOptions) {\r\n var that = this;\r\n var options = this._options;\r\n that.borderOptions = borderOptions || {\r\n visible: false\r\n };\r\n that._resetMargins();\r\n that.createTicks(canvas);\r\n that.applyMargins();\r\n that._clearAxisGroups();\r\n initTickCoords(that._majorTicks);\r\n initTickCoords(that._minorTicks);\r\n initTickCoords(that._boundaryTicks);\r\n that._axisGroup.append(that._axesContainerGroup);\r\n that._drawAxis();\r\n that._drawTitle();\r\n drawTickMarks(that._majorTicks, options.tick);\r\n drawTickMarks(that._minorTicks, options.minorTick);\r\n drawTickMarks(that._boundaryTicks, options.tick);\r\n var drawGridLine = that._getGridLineDrawer();\r\n drawGrids(that._majorTicks, drawGridLine);\r\n drawGrids(that._minorTicks, drawGridLine);\r\n callAction(that._majorTicks, \"drawLabel\", that._getViewportRange(), that._getTemplate(options.label.template));\r\n that._templatesRendered && that._templatesRendered.reject();\r\n that._templatesRendered = new Deferred;\r\n that._majorTicks.forEach((function(tick) {\r\n tick.labelRotationAngle = 0;\r\n tick.labelAlignment = void 0;\r\n tick.labelOffset = 0\r\n }));\r\n callAction(that._outsideConstantLines.concat(that._insideConstantLines), \"draw\");\r\n callAction(that._strips, \"draw\");\r\n that._dateMarkers = that._drawDateMarkers() || [];\r\n that._stripLabelAxesGroup && that._axisStripLabelGroup.append(that._stripLabelAxesGroup);\r\n that._gridContainerGroup && that._axisGridGroup.append(that._gridContainerGroup);\r\n that._stripsGroup && that._axisStripGroup.append(that._stripsGroup);\r\n that._labelsAxesGroup && that._axisElementsGroup.append(that._labelsAxesGroup);\r\n if (that._constantLinesGroup) {\r\n that._axisConstantLineGroups.above.inside.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.above.outside1.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.above.outside2.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.under.inside.append(that._constantLinesGroup.under);\r\n that._axisConstantLineGroups.under.outside1.append(that._constantLinesGroup.under);\r\n that._axisConstantLineGroups.under.outside2.append(that._constantLinesGroup.under)\r\n }\r\n that._measureTitle();\r\n measureLabels(that._majorTicks);\r\n !options.label.template && that._applyWordWrap();\r\n measureLabels(that._outsideConstantLines);\r\n measureLabels(that._insideConstantLines);\r\n measureLabels(that._strips);\r\n measureLabels(that._dateMarkers);\r\n that._adjustConstantLineLabels(that._insideConstantLines);\r\n that._adjustStripLabels();\r\n var offset = that._constantLabelOffset = that._adjustConstantLineLabels(that._outsideConstantLines);\r\n if (!that._translator.getBusinessRange().isEmpty()) {\r\n that._setLabelsPlacement();\r\n offset = that._adjustLabels(offset)\r\n }\r\n when.apply(this, that._majorTicks.map(tick => tick.getTemplateDeferred())).done(() => {\r\n that._templatesRendered.resolve()\r\n });\r\n offset = that._adjustDateMarkers(offset);\r\n that._adjustTitle(offset)\r\n },\r\n getTemplatesDef() {\r\n return this._templatesRendered\r\n },\r\n setRenderedState(state) {\r\n this._drawn = state\r\n },\r\n isRendered() {\r\n return this._drawn\r\n },\r\n _applyWordWrap() {\r\n var convertedTickInterval;\r\n var textWidth;\r\n var textHeight;\r\n var options = this._options;\r\n var tickInterval = this._tickInterval;\r\n if (isDefined(tickInterval)) {\r\n convertedTickInterval = this.getTranslator().getInterval(\"datetime\" === options.dataType ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval)\r\n }\r\n var displayMode = this._validateDisplayMode(options.label.displayMode);\r\n var overlappingMode = this._validateOverlappingMode(options.label.overlappingBehavior, displayMode);\r\n var wordWrapMode = options.label.wordWrap || \"none\";\r\n var overflowMode = options.label.textOverflow || \"none\";\r\n if ((\"none\" !== wordWrapMode || \"none\" !== overflowMode) && displayMode !== ROTATE && overlappingMode !== ROTATE && \"auto\" !== overlappingMode) {\r\n var usefulSpace = isDefined(options.placeholderSize) ? options.placeholderSize - options.label.indentFromAxis : void 0;\r\n if (this._isHorizontal) {\r\n textWidth = convertedTickInterval;\r\n textHeight = usefulSpace\r\n } else {\r\n textWidth = usefulSpace;\r\n textHeight = convertedTickInterval\r\n }\r\n var correctByWidth = false;\r\n var correctByHeight = false;\r\n if (textWidth) {\r\n if (this._majorTicks.some(tick => tick.labelBBox.width > textWidth)) {\r\n correctByWidth = true\r\n }\r\n }\r\n if (textHeight) {\r\n if (this._majorTicks.some(tick => tick.labelBBox.height > textHeight)) {\r\n correctByHeight = true\r\n }\r\n }\r\n if (correctByWidth || correctByHeight) {\r\n this._majorTicks.forEach(tick => {\r\n tick.label && tick.label.setMaxSize(textWidth, textHeight, options.label)\r\n });\r\n measureLabels(this._majorTicks)\r\n }\r\n }\r\n },\r\n _measureTitle: _noop,\r\n animate() {\r\n callAction(this._majorTicks, \"animateLabels\")\r\n },\r\n updateSize(canvas, animate) {\r\n var updateTitle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n this.updateCanvas(canvas);\r\n if (updateTitle) {\r\n this._checkTitleOverflow();\r\n this._measureTitle();\r\n this._updateTitleCoords()\r\n }\r\n this._reinitTranslator(this._getViewportRange());\r\n this.applyMargins();\r\n var animationEnabled = !this._firstDrawing && animate;\r\n var options = this._options;\r\n initTickCoords(this._majorTicks);\r\n initTickCoords(this._minorTicks);\r\n initTickCoords(this._boundaryTicks);\r\n if (this._resetApplyingAnimation && !this._firstDrawing) {\r\n this._resetStartCoordinates()\r\n }\r\n cleanUpInvalidTicks(this._majorTicks);\r\n cleanUpInvalidTicks(this._minorTicks);\r\n cleanUpInvalidTicks(this._boundaryTicks);\r\n if (this._axisElement) {\r\n this._updateAxisElementPosition()\r\n }\r\n updateTicksPosition(this._majorTicks, options.tick, animationEnabled);\r\n updateTicksPosition(this._minorTicks, options.minorTick, animationEnabled);\r\n updateTicksPosition(this._boundaryTicks, options.tick);\r\n callAction(this._majorTicks, \"updateLabelPosition\", animationEnabled);\r\n this._outsideConstantLines.concat(this._insideConstantLines || []).forEach(l => l.updatePosition(animationEnabled));\r\n callAction(this._strips, \"updatePosition\", animationEnabled);\r\n updateGridsPosition(this._majorTicks, animationEnabled);\r\n updateGridsPosition(this._minorTicks, animationEnabled);\r\n if (animationEnabled) {\r\n callAction(this._ticksToRemove || [], \"fadeOutElements\")\r\n }\r\n this.prepareAnimation();\r\n this._ticksToRemove = null;\r\n if (!this._translator.getBusinessRange().isEmpty()) {\r\n this._firstDrawing = false\r\n }\r\n this._resetApplyingAnimation = false;\r\n this._updateLabelsPosition()\r\n },\r\n _updateLabelsPosition: _noop,\r\n prepareAnimation() {\r\n var action = \"saveCoords\";\r\n callAction(this._majorTicks, action);\r\n callAction(this._minorTicks, action);\r\n callAction(this._insideConstantLines, action);\r\n callAction(this._outsideConstantLines, action);\r\n callAction(this._strips, action)\r\n },\r\n _resetStartCoordinates() {\r\n var action = \"resetCoordinates\";\r\n callAction(this._majorTicks, action);\r\n callAction(this._minorTicks, action);\r\n callAction(this._insideConstantLines, action);\r\n callAction(this._outsideConstantLines, action);\r\n callAction(this._strips, action)\r\n },\r\n applyClipRects: function(elementsClipID, canvasClipID) {\r\n this._axisGroup.attr({\r\n \"clip-path\": canvasClipID\r\n });\r\n this._axisStripGroup.attr({\r\n \"clip-path\": elementsClipID\r\n });\r\n this._axisElementsGroup.attr({\r\n \"clip-path\": canvasClipID\r\n })\r\n },\r\n _validateVisualRange(optionValue) {\r\n var range = getVizRangeObject(optionValue);\r\n if (void 0 !== range.startValue) {\r\n range.startValue = this.validateUnit(range.startValue)\r\n }\r\n if (void 0 !== range.endValue) {\r\n range.endValue = this.validateUnit(range.endValue)\r\n }\r\n return convertVisualRangeObject(range, !_isArray(optionValue))\r\n },\r\n _validateOptions(options) {\r\n options.wholeRange = this._validateVisualRange(options.wholeRange);\r\n options.visualRange = options._customVisualRange = this._validateVisualRange(options._customVisualRange);\r\n this._setVisualRange(options._customVisualRange)\r\n },\r\n validate() {\r\n var options = this._options;\r\n var dataType = this.isArgumentAxis ? options.argumentType : options.valueType;\r\n var parser = dataType ? getParser(dataType) : function(unit) {\r\n return unit\r\n };\r\n this.parser = parser;\r\n options.dataType = dataType;\r\n this._validateOptions(options)\r\n },\r\n resetVisualRange(isSilent) {\r\n this._seriesData.minVisible = this._seriesData.min;\r\n this._seriesData.maxVisible = this._seriesData.max;\r\n this.handleZooming([null, null], {\r\n start: !!isSilent,\r\n end: !!isSilent\r\n })\r\n },\r\n _setVisualRange(visualRange, allowPartialUpdate) {\r\n var range = this.adjustRange(getVizRangeObject(visualRange));\r\n if (allowPartialUpdate) {\r\n isDefined(range.startValue) && (this._viewport.startValue = range.startValue);\r\n isDefined(range.endValue) && (this._viewport.endValue = range.endValue)\r\n } else {\r\n this._viewport = range\r\n }\r\n },\r\n _applyZooming(visualRange, allowPartialUpdate) {\r\n this._resetVisualRangeOption();\r\n this._setVisualRange(visualRange, allowPartialUpdate);\r\n var viewPort = this.getViewport();\r\n this._seriesData.userBreaks = this._getScaleBreaks(this._options, {\r\n minVisible: viewPort.startValue,\r\n maxVisible: viewPort.endValue\r\n }, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n getZoomStartEventArg(event, actionType) {\r\n return {\r\n axis: this,\r\n range: this.visualRange(),\r\n cancel: false,\r\n event: event,\r\n actionType: actionType\r\n }\r\n },\r\n _getZoomEndEventArg(previousRange, event, actionType, zoomFactor, shift) {\r\n var newRange = this.visualRange();\r\n return {\r\n axis: this,\r\n previousRange: previousRange,\r\n range: newRange,\r\n cancel: false,\r\n event: event,\r\n actionType: actionType,\r\n zoomFactor: zoomFactor,\r\n shift: shift,\r\n rangeStart: newRange.startValue,\r\n rangeEnd: newRange.endValue\r\n }\r\n },\r\n getZoomBounds() {\r\n var wholeRange = getVizRangeObject(this._options.wholeRange);\r\n var range = this.getTranslator().getBusinessRange();\r\n var secondPriorityRange = {\r\n startValue: getZoomBoundValue(this._initRange.startValue, range.min),\r\n endValue: getZoomBoundValue(this._initRange.endValue, range.max)\r\n };\r\n return {\r\n startValue: getZoomBoundValue(wholeRange.startValue, secondPriorityRange.startValue),\r\n endValue: getZoomBoundValue(wholeRange.endValue, secondPriorityRange.endValue)\r\n }\r\n },\r\n setInitRange() {\r\n this._initRange = {};\r\n if (0 === Object.keys(this._options.wholeRange || {}).length) {\r\n this._initRange = this.getZoomBounds()\r\n }\r\n },\r\n _resetVisualRangeOption() {\r\n this._options._customVisualRange = {}\r\n },\r\n getTemplatesGroups() {\r\n var ticks = this._majorTicks;\r\n if (ticks) {\r\n return this._majorTicks.map(tick => tick.templateContainer).filter(item => isDefined(item))\r\n } else {\r\n return []\r\n }\r\n },\r\n setCustomVisualRange(range) {\r\n this._options._customVisualRange = range\r\n },\r\n visualRange() {\r\n var args = arguments;\r\n var visualRange;\r\n if (0 === args.length) {\r\n var adjustedRange = this._getAdjustedBusinessRange();\r\n var startValue = adjustedRange.minVisible;\r\n var endValue = adjustedRange.maxVisible;\r\n if (this._options.type === constants.discrete) {\r\n var _startValue, _endValue;\r\n startValue = null !== (_startValue = startValue) && void 0 !== _startValue ? _startValue : adjustedRange.categories[0];\r\n endValue = null !== (_endValue = endValue) && void 0 !== _endValue ? _endValue : adjustedRange.categories[adjustedRange.categories.length - 1];\r\n return {\r\n startValue: startValue,\r\n endValue: endValue,\r\n categories: getCategoriesInfo(adjustedRange.categories, startValue, endValue).categories\r\n }\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n } else if (_isArray(args[0])) {\r\n visualRange = args[0]\r\n } else if (isPlainObject(args[0])) {\r\n visualRange = extend({}, args[0])\r\n } else {\r\n visualRange = [args[0], args[1]]\r\n }\r\n var zoomResults = this.handleZooming(visualRange, args[1]);\r\n if (!zoomResults.isPrevented) {\r\n this._visualRange(this, zoomResults)\r\n }\r\n },\r\n handleZooming(visualRange, preventEvents, domEvent, action) {\r\n preventEvents = preventEvents || {};\r\n if (isDefined(visualRange)) {\r\n visualRange = this._validateVisualRange(visualRange);\r\n visualRange.action = action\r\n }\r\n var zoomStartEvent = this.getZoomStartEventArg(domEvent, action);\r\n var previousRange = zoomStartEvent.range;\r\n !preventEvents.start && this._eventTrigger(\"zoomStart\", zoomStartEvent);\r\n var zoomResults = {\r\n isPrevented: zoomStartEvent.cancel,\r\n skipEventRising: preventEvents.skipEventRising,\r\n range: visualRange || zoomStartEvent.range\r\n };\r\n if (!zoomStartEvent.cancel) {\r\n isDefined(visualRange) && this._applyZooming(visualRange, preventEvents.allowPartialUpdate);\r\n if (!isDefined(this._storedZoomEndParams)) {\r\n this._storedZoomEndParams = {\r\n startRange: previousRange,\r\n type: this.getOptions().type\r\n }\r\n }\r\n this._storedZoomEndParams.event = domEvent;\r\n this._storedZoomEndParams.action = action;\r\n this._storedZoomEndParams.prevent = !!preventEvents.end\r\n }\r\n return zoomResults\r\n },\r\n handleZoomEnd() {\r\n if (isDefined(this._storedZoomEndParams) && !this._storedZoomEndParams.prevent) {\r\n var previousRange = this._storedZoomEndParams.startRange;\r\n var domEvent = this._storedZoomEndParams.event;\r\n var action = this._storedZoomEndParams.action;\r\n var previousBusinessRange = {\r\n minVisible: previousRange.startValue,\r\n maxVisible: previousRange.endValue,\r\n categories: previousRange.categories\r\n };\r\n var typeIsNotChanged = this.getOptions().type === this._storedZoomEndParams.type;\r\n var shift = typeIsNotChanged ? adjust(this.getVisualRangeCenter() - this.getVisualRangeCenter(previousBusinessRange, false)) : NaN;\r\n var zoomFactor = typeIsNotChanged ? +(Math.round(this.getVisualRangeLength(previousBusinessRange) / (this.getVisualRangeLength() || 1) + \"e+2\") + \"e-2\") : NaN;\r\n var zoomEndEvent = this._getZoomEndEventArg(previousRange, domEvent, action, zoomFactor, shift);\r\n zoomEndEvent.cancel = this.checkZoomingLowerLimitOvercome(1 === zoomFactor ? \"pan\" : \"zoom\", zoomFactor).stopInteraction;\r\n this._eventTrigger(\"zoomEnd\", zoomEndEvent);\r\n if (zoomEndEvent.cancel) {\r\n this._restorePreviousVisualRange(previousRange)\r\n }\r\n this._storedZoomEndParams = null\r\n }\r\n },\r\n _restorePreviousVisualRange(previousRange) {\r\n this._storedZoomEndParams = null;\r\n this._applyZooming(previousRange);\r\n this._visualRange(this, previousRange)\r\n },\r\n checkZoomingLowerLimitOvercome(actionType, zoomFactor, range) {\r\n var options = this._options;\r\n var translator = this._translator;\r\n var minZoom = options.minVisualRangeLength;\r\n var correctedRange = range;\r\n var visualRange;\r\n var isOvercoming = \"zoom\" === actionType && zoomFactor >= 1;\r\n var businessRange = translator.getBusinessRange();\r\n if (range) {\r\n visualRange = this.adjustRange(getVizRangeObject(range));\r\n visualRange = {\r\n minVisible: visualRange.startValue,\r\n maxVisible: visualRange.endValue,\r\n categories: businessRange.categories\r\n }\r\n }\r\n var beforeVisualRangeLength = this.getVisualRangeLength(businessRange);\r\n var afterVisualRangeLength = this.getVisualRangeLength(visualRange);\r\n if (isDefined(minZoom) || \"discrete\" === options.type) {\r\n minZoom = translator.convert(minZoom);\r\n if (visualRange && minZoom < beforeVisualRangeLength && minZoom >= afterVisualRangeLength) {\r\n correctedRange = getVizRangeObject(translator.getRangeByMinZoomValue(minZoom, visualRange));\r\n isOvercoming = false\r\n } else {\r\n isOvercoming &= minZoom > afterVisualRangeLength\r\n }\r\n } else {\r\n var canvasLength = this._translator.canvasLength;\r\n var fullRange = {\r\n minVisible: businessRange.min,\r\n maxVisible: businessRange.max,\r\n categories: businessRange.categories\r\n };\r\n isOvercoming &= this.getVisualRangeLength(fullRange) / canvasLength >= afterVisualRangeLength\r\n }\r\n return {\r\n stopInteraction: !!isOvercoming,\r\n correctedRange: correctedRange\r\n }\r\n },\r\n isExtremePosition(isMax) {\r\n var extremeDataValue;\r\n var seriesData;\r\n if (\"discrete\" === this._options.type) {\r\n seriesData = this._translator.getBusinessRange();\r\n extremeDataValue = isMax ? seriesData.categories[seriesData.categories.length - 1] : seriesData.categories[0]\r\n } else {\r\n seriesData = this.getZoomBounds();\r\n extremeDataValue = isMax ? seriesData.endValue : seriesData.startValue\r\n }\r\n var translator = this.getTranslator();\r\n var extremePoint = translator.translate(extremeDataValue);\r\n var visualRange = this.visualRange();\r\n var visualRangePoint = isMax ? translator.translate(visualRange.endValue) : translator.translate(visualRange.startValue);\r\n return _abs(visualRangePoint - extremePoint) < SCROLL_THRESHOLD\r\n },\r\n getViewport() {\r\n return this._viewport\r\n },\r\n getFullTicks: function() {\r\n var majors = this._majorTicks || [];\r\n if (this._options.type === constants.discrete) {\r\n return convertTicksToValues(majors)\r\n } else {\r\n return convertTicksToValues(majors.concat(this._minorTicks, this._boundaryTicks)).sort((function(a, b) {\r\n return valueOf(a) - valueOf(b)\r\n }))\r\n }\r\n },\r\n measureLabels: function(canvas, withIndents) {\r\n var that = this;\r\n var options = that._options;\r\n var widthAxis = options.visible ? options.width : 0;\r\n var ticks;\r\n var indent = withIndents ? options.label.indentFromAxis + .5 * options.tick.length : 0;\r\n var tickInterval;\r\n var viewportRange = that._getViewportRange();\r\n if (viewportRange.isEmpty() || !options.label.visible || !that._axisElementsGroup) {\r\n return {\r\n height: widthAxis,\r\n width: widthAxis,\r\n x: 0,\r\n y: 0\r\n }\r\n }\r\n if (that._majorTicks) {\r\n ticks = convertTicksToValues(that._majorTicks)\r\n } else {\r\n that.updateCanvas(canvas);\r\n ticks = that._createTicksAndLabelFormat(viewportRange, _noop);\r\n tickInterval = ticks.tickInterval;\r\n ticks = ticks.ticks\r\n }\r\n var maxText = ticks.reduce((function(prevLabel, tick, index) {\r\n var label = that.formatLabel(tick, options.label, viewportRange, void 0, tickInterval, ticks);\r\n if (prevLabel.length < label.length) {\r\n return label\r\n } else {\r\n return prevLabel\r\n }\r\n }), that.formatLabel(ticks[0], options.label, viewportRange, void 0, tickInterval, ticks));\r\n var text = that._renderer.text(maxText, 0, 0).css(that._textFontStyles).attr(that._textOptions).append(that._renderer.root);\r\n var box = text.getBBox();\r\n text.remove();\r\n return {\r\n x: box.x,\r\n y: box.y,\r\n width: box.width + indent,\r\n height: box.height + indent\r\n }\r\n },\r\n _setLabelsPlacement: function() {\r\n if (!this._options.label.visible) {\r\n return\r\n }\r\n var labelOpt = this._options.label;\r\n var displayMode = this._validateDisplayMode(labelOpt.displayMode);\r\n var overlappingMode = this._validateOverlappingMode(labelOpt.overlappingBehavior, displayMode);\r\n var ignoreOverlapping = \"none\" === overlappingMode || \"ignore\" === overlappingMode;\r\n var behavior = {\r\n rotationAngle: labelOpt.rotationAngle,\r\n staggeringSpacing: labelOpt.staggeringSpacing\r\n };\r\n var notRecastStep;\r\n var boxes = this._majorTicks.map((function(tick) {\r\n return tick.labelBBox\r\n }));\r\n var step = this._getStep(boxes);\r\n switch (displayMode) {\r\n case ROTATE:\r\n if (ignoreOverlapping) {\r\n notRecastStep = true;\r\n step = 1\r\n }\r\n this._applyLabelMode(displayMode, step, boxes, labelOpt, notRecastStep);\r\n break;\r\n case \"stagger\":\r\n if (ignoreOverlapping) {\r\n step = 2\r\n }\r\n this._applyLabelMode(displayMode, _max(step, 2), boxes, labelOpt);\r\n break;\r\n default:\r\n this._applyLabelOverlapping(boxes, overlappingMode, step, behavior)\r\n }\r\n },\r\n _applyLabelOverlapping: function(boxes, mode, step, behavior) {\r\n var labelOpt = this._options.label;\r\n var majorTicks = this._majorTicks;\r\n if (\"none\" === mode || \"ignore\" === mode) {\r\n return\r\n }\r\n if (step > 1 && boxes.some((function(box, index, array) {\r\n if (0 === index) {\r\n return false\r\n }\r\n return constants.areLabelsOverlap(box, array[index - 1], labelOpt.minSpacing, labelOpt.alignment)\r\n }))) {\r\n this._applyLabelMode(mode, step, boxes, behavior)\r\n }\r\n this._checkBoundedLabelsOverlapping(majorTicks, boxes, mode);\r\n this._checkShiftedLabels(majorTicks, boxes, labelOpt.minSpacing, labelOpt.alignment)\r\n },\r\n _applyLabelMode: function(mode, step, boxes, behavior, notRecastStep) {\r\n var majorTicks = this._majorTicks;\r\n var labelOpt = this._options.label;\r\n var angle = behavior.rotationAngle;\r\n var labelHeight;\r\n var alignment;\r\n var func;\r\n switch (mode) {\r\n case ROTATE:\r\n if (!labelOpt.userAlignment) {\r\n alignment = angle < 0 ? RIGHT : LEFT;\r\n if (angle % 90 === 0) {\r\n alignment = CENTER\r\n }\r\n }\r\n step = notRecastStep ? step : this._getStep(boxes, angle);\r\n func = function(tick) {\r\n var contentContainer = tick.getContentContainer();\r\n if (!contentContainer) {\r\n return\r\n }\r\n contentContainer.rotate(angle);\r\n tick.labelRotationAngle = angle;\r\n alignment && (tick.labelAlignment = alignment)\r\n };\r\n updateLabels(majorTicks, step, func);\r\n break;\r\n case \"stagger\":\r\n labelHeight = this._getMaxLabelHeight(boxes, behavior.staggeringSpacing);\r\n func = function(tick, index) {\r\n if (index / (step - 1) % 2 !== 0) {\r\n tick.labelOffset = labelHeight\r\n }\r\n };\r\n updateLabels(majorTicks, step - 1, func);\r\n break;\r\n case \"auto\":\r\n case \"_auto\":\r\n if (2 === step) {\r\n this._applyLabelMode(\"stagger\", step, boxes, behavior)\r\n } else {\r\n this._applyLabelMode(ROTATE, step, boxes, {\r\n rotationAngle: getOptimalAngle(boxes, labelOpt)\r\n })\r\n }\r\n break;\r\n default:\r\n updateLabels(majorTicks, step)\r\n }\r\n },\r\n getMarkerTrackers: _noop,\r\n _drawDateMarkers: _noop,\r\n _adjustDateMarkers: _noop,\r\n coordsIn: _noop,\r\n areCoordsOutsideAxis: _noop,\r\n _getSkippedCategory: _noop,\r\n _initAxisPositions: _noop,\r\n _drawTitle: _noop,\r\n _updateTitleCoords: _noop,\r\n _adjustConstantLineLabels: _noop,\r\n _createTranslator: function() {\r\n return new Translator2D({}, {}, {})\r\n },\r\n _updateTranslator: function() {\r\n var translator = this._translator;\r\n translator.update(translator.getBusinessRange(), this._canvas || {}, this._getTranslatorOptions())\r\n },\r\n _getTranslatorOptions: function() {\r\n var _options$workWeek2, _options$breakStyle$w, _options$breakStyle;\r\n var options = this._options;\r\n return {\r\n isHorizontal: this._isHorizontal,\r\n shiftZeroValue: !this.isArgumentAxis,\r\n interval: options.semiDiscreteInterval,\r\n firstDayOfWeek: null === (_options$workWeek2 = options.workWeek) || void 0 === _options$workWeek2 ? void 0 : _options$workWeek2[0],\r\n stick: this._getStick(),\r\n breaksSize: null !== (_options$breakStyle$w = null === (_options$breakStyle = options.breakStyle) || void 0 === _options$breakStyle ? void 0 : _options$breakStyle.width) && void 0 !== _options$breakStyle$w ? _options$breakStyle$w : 0\r\n }\r\n },\r\n getVisibleArea() {\r\n var canvas = this._getCanvasStartEnd();\r\n return [canvas.start, canvas.end].sort((a, b) => a - b)\r\n },\r\n _getCanvasStartEnd: function() {\r\n var isHorizontal = this._isHorizontal;\r\n var canvas = this._canvas || {};\r\n var invert = this._translator.getBusinessRange().invert;\r\n var coords = isHorizontal ? [canvas.left, canvas.width - canvas.right] : [canvas.height - canvas.bottom, canvas.top];\r\n invert && coords.reverse();\r\n return {\r\n start: coords[0],\r\n end: coords[1]\r\n }\r\n },\r\n _getScreenDelta: function() {\r\n var canvas = this._getCanvasStartEnd();\r\n var breaks = this._seriesData ? this._seriesData.breaks || [] : [];\r\n var breaksLength = breaks.length;\r\n var screenDelta = _abs(canvas.start - canvas.end);\r\n return screenDelta - (breaksLength ? breaks[breaksLength - 1].cumulativeWidth : 0)\r\n },\r\n _getScaleBreaks: function() {\r\n return []\r\n },\r\n _filterBreaks: function() {\r\n return []\r\n },\r\n _adjustTitle: _noop,\r\n _checkTitleOverflow: _noop,\r\n getSpiderTicks: _noop,\r\n setSpiderTicks: _noop,\r\n _checkBoundedLabelsOverlapping: _noop,\r\n _checkShiftedLabels: _noop,\r\n drawScaleBreaks: _noop,\r\n _visualRange: _noop,\r\n _rotateConstantLine: _noop,\r\n applyVisualRangeSetter(visualRangeSetter) {\r\n this._visualRange = visualRangeSetter\r\n },\r\n getCategoriesSorter(argCategories) {\r\n var sort;\r\n if (this.isArgumentAxis) {\r\n sort = argCategories\r\n } else {\r\n var categoriesSortingMethod = this._options.categoriesSortingMethod;\r\n sort = null !== categoriesSortingMethod && void 0 !== categoriesSortingMethod ? categoriesSortingMethod : this._options.categories\r\n }\r\n return sort\r\n },\r\n _getAdjustedBusinessRange() {\r\n return this.adjustViewport(this._translator.getBusinessRange())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/strip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default function createStrip(axis, options) {\r\n var storedCoord;\r\n var lastStoredCoordinates;\r\n var labelOptions = options.label || {};\r\n return {\r\n options: options,\r\n label: null,\r\n rect: null,\r\n _getCoord() {\r\n var canvas = axis._getCanvasStartEnd();\r\n var range = axis._translator.getBusinessRange();\r\n return axis._getStripPos(options.startValue, options.endValue, canvas.start, canvas.end, range)\r\n },\r\n _drawLabel: coords => axis._renderer.text(labelOptions.text, coords.x, coords.y).css(patchFontOptions(extend({}, axis.getOptions().label.font, labelOptions.font))).attr({\r\n align: \"center\",\r\n class: labelOptions.cssClass\r\n }).append(axis._axisStripLabelGroup),\r\n draw() {\r\n if (axis._translator.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n if ((isDefined(options.startValue) || isDefined(options.endValue)) && isDefined(options.color)) {\r\n var stripPos = this._getCoord();\r\n this.labelCoords = labelOptions.text ? axis._getStripLabelCoords(stripPos.from, stripPos.to, labelOptions) : null;\r\n if (stripPos.outOfCanvas || !isDefined(stripPos.to) || !isDefined(stripPos.from)) {\r\n return\r\n }\r\n this.rect = axis._createStrip(axis._getStripGraphicAttributes(stripPos.from, stripPos.to)).attr({\r\n fill: options.color\r\n }).append(axis._axisStripGroup);\r\n this.label = labelOptions.text ? this._drawLabel(this.labelCoords) : null\r\n }\r\n },\r\n getContentContainer() {\r\n return this.label\r\n },\r\n removeLabel() {},\r\n updatePosition(animate) {\r\n var stripPos = this._getCoord();\r\n if (animate && storedCoord) {\r\n this.label && this.label.attr(axis._getStripLabelCoords(storedCoord.from, storedCoord.to, options.label));\r\n this.rect && this.rect.attr(axis._getStripGraphicAttributes(storedCoord.from, storedCoord.to));\r\n this.label && this.label.animate(axis._getStripLabelCoords(stripPos.from, stripPos.to, options.label));\r\n this.rect && this.rect.animate(axis._getStripGraphicAttributes(stripPos.from, stripPos.to))\r\n } else {\r\n this.label && this.label.attr(axis._getStripLabelCoords(stripPos.from, stripPos.to, options.label));\r\n this.rect && this.rect.attr(axis._getStripGraphicAttributes(stripPos.from, stripPos.to))\r\n }\r\n },\r\n saveCoords() {\r\n lastStoredCoordinates = storedCoord;\r\n storedCoord = this._getCoord()\r\n },\r\n resetCoordinates() {\r\n storedCoord = lastStoredCoordinates\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/constant_line.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport default function createConstantLine(axis, options) {\r\n var labelOptions = options.label || {};\r\n var labelPosition = labelOptions.position || \"inside\";\r\n var parsedValue;\r\n var valueIsParsed = false;\r\n var lastStoredCoordinates;\r\n axis._checkAlignmentConstantLineLabels(labelOptions);\r\n var storedCoord;\r\n return {\r\n options: options,\r\n labelOptions: labelOptions,\r\n labelPosition: labelPosition,\r\n label: null,\r\n line: null,\r\n getParsedValue() {\r\n if (!valueIsParsed) {\r\n parsedValue = axis.validateUnit(options.value, \"E2105\", \"constantLine\");\r\n valueIsParsed = true;\r\n return parsedValue\r\n }\r\n return parsedValue\r\n },\r\n draw() {\r\n if (!isDefined(options.value) || axis._translator.getBusinessRange().isEmpty()) {\r\n return this\r\n }\r\n var canvas = axis._getCanvasStartEnd();\r\n var parsedValue = this.getParsedValue();\r\n this.coord = axis._getConstantLinePos(parsedValue, canvas.start, canvas.end);\r\n var rootGroup = options.displayBehindSeries ? axis._axisConstantLineGroups.under : axis._axisConstantLineGroups.above;\r\n var group = rootGroup[labelPosition];\r\n if (!group) {\r\n var side = axis._isHorizontal ? labelOptions.verticalAlignment : labelOptions.horizontalAlignment;\r\n group = rootGroup[side]\r\n }\r\n if (!isDefined(this.coord)) {\r\n return this\r\n }\r\n var path = axis._createConstantLine(this.coord, {\r\n stroke: options.color,\r\n \"stroke-width\": options.width,\r\n dashStyle: options.dashStyle\r\n });\r\n this.line = path.append(rootGroup.inside);\r\n this.label = labelOptions.visible ? axis._drawConstantLineLabels(parsedValue, labelOptions, this.coord, group) : null;\r\n this.updatePosition();\r\n return this\r\n },\r\n getContentContainer() {\r\n return this.label\r\n },\r\n removeLabel() {\r\n this.label && this.label.remove()\r\n },\r\n updatePosition(animate) {\r\n var canvas = axis._getCanvasStartEnd();\r\n var coord = axis._getConstantLinePos(this.getParsedValue(), canvas.start, canvas.end);\r\n if (!isDefined(coord)) {\r\n return\r\n }\r\n this.coord = coord;\r\n if (animate && storedCoord) {\r\n this.label && this.label.attr(axis._getConstantLineLabelsCoords(storedCoord, this.labelOptions));\r\n this.line && this.line.attr(axis._getConstantLineGraphicAttributes(storedCoord));\r\n this.label && this.label.animate(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions));\r\n this.line && this.line.animate(axis._getConstantLineGraphicAttributes(this.coord))\r\n } else {\r\n this.label && this.label.attr(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions));\r\n this.line && this.line.attr(axis._getConstantLineGraphicAttributes(this.coord));\r\n axis._rotateConstantLine(this.line, this.coord)\r\n }\r\n },\r\n saveCoords() {\r\n lastStoredCoordinates = storedCoord;\r\n storedCoord = this.coord\r\n },\r\n resetCoordinates() {\r\n storedCoord = lastStoredCoordinates\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/gauges/common.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n BaseGauge,\r\n compareArrays as _compareArrays\r\n} from \"./base_gauge\";\r\nimport {\r\n isDefined as _isDefined,\r\n isNumeric as _isNumber\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _isArray = Array.isArray;\r\nimport {\r\n Axis\r\n} from \"../axes/base_axis\";\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar _isFinite = isFinite;\r\nvar _Number = Number;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _extend = extend;\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar SHIFT_ANGLE = 90;\r\nvar OPTION_VALUE = \"value\";\r\nvar OPTION_SUBVALUES = \"subvalues\";\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 5;\r\nvar DEFAULT_NUMBER_MULTIPLIERS = [1, 2, 5];\r\n\r\nfunction processValue(value, fallbackValue) {\r\n if (null === value) {\r\n return value\r\n }\r\n return _isFinite(value) ? _Number(value) : fallbackValue\r\n}\r\n\r\nfunction parseArrayOfNumbers(arg) {\r\n return _isArray(arg) ? arg : _isNumber(arg) ? [arg] : null\r\n}\r\nexport var dxGauge = BaseGauge.inherit({\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n that._setupValue(that.option(OPTION_VALUE));\r\n that.__subvalues = parseArrayOfNumbers(that.option(OPTION_SUBVALUES));\r\n that._setupSubvalues(that.__subvalues);\r\n selectMode(that);\r\n that.callBase.apply(that, arguments);\r\n that._rangeContainer = new that._factory.RangeContainer({\r\n renderer: renderer,\r\n container: renderer.root,\r\n translator: that._translator,\r\n themeManager: that._themeManager\r\n });\r\n that._initScale();\r\n that._subvalueIndicatorContainer = that._renderer.g().attr({\r\n class: \"dxg-subvalue-indicators\"\r\n }).linkOn(that._renderer.root, \"valueIndicator\").enableLinks()\r\n },\r\n _fontFields: [\"scale.label.font\", \"valueIndicators.rangebar.text.font\", \"valueIndicators.textcloud.text.font\", \"indicator.text.font\"],\r\n _initScale: function() {\r\n this._scaleGroup = this._renderer.g().attr({\r\n class: \"dxg-scale\"\r\n }).linkOn(this._renderer.root, \"scale\");\r\n this._labelsAxesGroup = this._renderer.g().attr({\r\n class: \"dxg-scale-elements\"\r\n }).linkOn(this._renderer.root, \"scale-elements\");\r\n this._scale = new Axis({\r\n incidentOccurred: this._incidentOccurred,\r\n renderer: this._renderer,\r\n axesContainerGroup: this._scaleGroup,\r\n labelsAxesGroup: this._labelsAxesGroup,\r\n axisType: this._scaleTypes.type,\r\n drawingType: this._scaleTypes.drawingType,\r\n widgetClass: \"dxg\",\r\n getTemplate() {}\r\n })\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._scale.dispose();\r\n that._scaleGroup.linkOff();\r\n that._labelsAxesGroup.linkOff();\r\n that._rangeContainer.dispose();\r\n that._disposeValueIndicators();\r\n that._subvalueIndicatorContainer.linkOff();\r\n that._scale = that._scaleGroup = that._labelsAxesGroup = that._rangeContainer = null\r\n },\r\n _disposeValueIndicators: function() {\r\n this._valueIndicator && this._valueIndicator.dispose();\r\n this._subvalueIndicatorsSet && this._subvalueIndicatorsSet.dispose();\r\n this._valueIndicator = this._subvalueIndicatorsSet = null\r\n },\r\n _setupDomainCore: function() {\r\n var scaleOption = this.option(\"scale\") || {};\r\n var startValue = this.option(\"startValue\");\r\n var endValue = this.option(\"endValue\");\r\n startValue = _isNumber(startValue) ? _Number(startValue) : _isNumber(scaleOption.startValue) ? _Number(scaleOption.startValue) : 0;\r\n endValue = _isNumber(endValue) ? _Number(endValue) : _isNumber(scaleOption.endValue) ? _Number(scaleOption.endValue) : 100;\r\n this._baseValue = startValue < endValue ? startValue : endValue;\r\n this._translator.setDomain(startValue, endValue)\r\n },\r\n _cleanContent: function() {\r\n this._rangeContainer.clean();\r\n this._cleanValueIndicators()\r\n },\r\n _measureScale: function(scaleOptions) {\r\n var majorTick = scaleOptions.tick;\r\n var majorTickEnabled = majorTick.visible && majorTick.length > 0 && majorTick.width > 0;\r\n var minorTick = scaleOptions.minorTick;\r\n var minorTickEnabled = minorTick.visible && minorTick.length > 0 && minorTick.width > 0;\r\n var label = scaleOptions.label;\r\n var indentFromTick = Number(label.indentFromTick);\r\n if (!majorTickEnabled && !minorTickEnabled && !label.visible) {\r\n return {}\r\n }\r\n var textParams = this._scale.measureLabels(extend({}, this._canvas));\r\n var layoutValue = this._getScaleLayoutValue();\r\n var result = {\r\n min: layoutValue,\r\n max: layoutValue\r\n };\r\n var coefs = this._getTicksCoefficients(scaleOptions);\r\n var innerCoef = coefs.inner;\r\n var outerCoef = coefs.outer;\r\n if (majorTickEnabled) {\r\n result.min = _min(result.min, layoutValue - innerCoef * majorTick.length);\r\n result.max = _max(result.max, layoutValue + outerCoef * majorTick.length)\r\n }\r\n if (minorTickEnabled) {\r\n result.min = _min(result.min, layoutValue - innerCoef * minorTick.length);\r\n result.max = _max(result.max, layoutValue + outerCoef * minorTick.length)\r\n }\r\n label.visible && this._correctScaleIndents(result, indentFromTick, textParams);\r\n return result\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n var scaleOptions = that._prepareScaleSettings();\r\n that._rangeContainer.render(_extend(that._getOption(\"rangeContainer\"), {\r\n vertical: that._area.vertical\r\n }));\r\n that._renderScale(scaleOptions);\r\n that._subvalueIndicatorContainer.linkAppend();\r\n var elements = _map([that._rangeContainer].concat(that._prepareValueIndicators()), (function(element) {\r\n return element && element.enabled ? element : null\r\n }));\r\n that._applyMainLayout(elements, that._measureScale(scaleOptions));\r\n elements.forEach(element => element.resize(that._getElementLayout(element.getOffset())));\r\n that._shiftScale(that._getElementLayout(0), scaleOptions);\r\n that._beginValueChanging();\r\n that._updateActiveElements();\r\n that._endValueChanging()\r\n },\r\n _prepareScaleSettings: function() {\r\n var that = this;\r\n var userOptions = that.option(\"scale\");\r\n var scaleOptions = extend(true, {}, that._themeManager.theme(\"scale\"), userOptions);\r\n scaleOptions.label.indentFromAxis = 0;\r\n scaleOptions.isHorizontal = !that._area.vertical;\r\n scaleOptions.forceUserTickInterval |= _isDefined(userOptions) && _isDefined(userOptions.tickInterval) && !_isDefined(userOptions.scaleDivisionFactor);\r\n scaleOptions.axisDivisionFactor = scaleOptions.scaleDivisionFactor || that._gridSpacingFactor;\r\n scaleOptions.minorAxisDivisionFactor = scaleOptions.minorScaleDivisionFactor || DEFAULT_MINOR_AXIS_DIVISION_FACTOR;\r\n scaleOptions.numberMultipliers = DEFAULT_NUMBER_MULTIPLIERS;\r\n scaleOptions.tickOrientation = that._getTicksOrientation(scaleOptions);\r\n if (scaleOptions.label.useRangeColors) {\r\n scaleOptions.label.customizeColor = function() {\r\n return that._rangeContainer.getColorForValue(this.value)\r\n }\r\n }\r\n return scaleOptions\r\n },\r\n _renderScale: function(scaleOptions) {\r\n var bounds = this._translator.getDomain();\r\n var startValue = bounds[0];\r\n var endValue = bounds[1];\r\n var angles = this._translator.getCodomain();\r\n var invert = !!(startValue > endValue ^ scaleOptions.inverted);\r\n var min = _min(startValue, endValue);\r\n var max = _max(startValue, endValue);\r\n scaleOptions.min = min;\r\n scaleOptions.max = max;\r\n scaleOptions.startAngle = SHIFT_ANGLE - angles[0];\r\n scaleOptions.endAngle = SHIFT_ANGLE - angles[1];\r\n scaleOptions.skipViewportExtending = true;\r\n scaleOptions.inverted = invert;\r\n this._scale.updateOptions(scaleOptions);\r\n this._scale.setBusinessRange({\r\n axisType: \"continuous\",\r\n dataType: \"numeric\",\r\n min: min,\r\n max: max,\r\n invert: invert\r\n });\r\n this._updateScaleTickIndent(scaleOptions);\r\n this._scaleGroup.linkAppend();\r\n this._labelsAxesGroup.linkAppend();\r\n this._scale.draw(extend({}, this._canvas))\r\n },\r\n _updateIndicatorSettings: function(settings) {\r\n settings.currentValue = settings.baseValue = _isFinite(this._translator.translate(settings.baseValue)) ? _Number(settings.baseValue) : this._baseValue;\r\n settings.vertical = this._area.vertical;\r\n if (settings.text && !settings.text.format) {\r\n settings.text.format = this._defaultFormatOptions\r\n }\r\n },\r\n _prepareIndicatorSettings: function(options, defaultTypeField) {\r\n var theme = this._themeManager.theme(\"valueIndicators\");\r\n var type = _normalizeEnum(options.type || this._themeManager.theme(defaultTypeField));\r\n var settings = _extend(true, {}, theme._default, theme[type], options);\r\n settings.type = type;\r\n settings.animation = this._animationSettings;\r\n settings.containerBackgroundColor = this._containerBackgroundColor;\r\n this._updateIndicatorSettings(settings);\r\n return settings\r\n },\r\n _cleanValueIndicators: function() {\r\n this._valueIndicator && this._valueIndicator.clean();\r\n this._subvalueIndicatorsSet && this._subvalueIndicatorsSet.clean()\r\n },\r\n _prepareValueIndicators: function() {\r\n this._prepareValueIndicator();\r\n null !== this.__subvalues && this._prepareSubvalueIndicators();\r\n return [this._valueIndicator, this._subvalueIndicatorsSet]\r\n },\r\n _updateActiveElements: function() {\r\n this._updateValueIndicator();\r\n this._updateSubvalueIndicators()\r\n },\r\n _prepareValueIndicator: function() {\r\n var target = this._valueIndicator;\r\n var settings = this._prepareIndicatorSettings(this.option(\"valueIndicator\") || {}, \"valueIndicatorType\");\r\n if (target && target.type !== settings.type) {\r\n target.dispose();\r\n target = null\r\n }\r\n if (!target) {\r\n target = this._valueIndicator = this._createIndicator(settings.type, this._renderer.root, \"dxg-value-indicator\", \"value-indicator\")\r\n }\r\n target.render(settings)\r\n },\r\n _createSubvalueIndicatorsSet: function() {\r\n var that = this;\r\n var root = that._subvalueIndicatorContainer;\r\n return new ValueIndicatorsSet({\r\n createIndicator: function(type, i) {\r\n return that._createIndicator(type, root, \"dxg-subvalue-indicator\", \"subvalue-indicator\", i)\r\n },\r\n createPalette: function(palette) {\r\n return that._themeManager.createPalette(palette)\r\n }\r\n })\r\n },\r\n _prepareSubvalueIndicators: function() {\r\n var target = this._subvalueIndicatorsSet;\r\n var settings = this._prepareIndicatorSettings(this.option(\"subvalueIndicator\") || {}, \"subvalueIndicatorType\");\r\n if (!target) {\r\n target = this._subvalueIndicatorsSet = this._createSubvalueIndicatorsSet()\r\n }\r\n var isRecreate = settings.type !== target.type;\r\n target.type = settings.type;\r\n var dummy = this._createIndicator(settings.type, this._renderer.root);\r\n if (dummy) {\r\n dummy.dispose();\r\n target.render(settings, isRecreate)\r\n }\r\n },\r\n _setupValue: function(value) {\r\n this.__value = processValue(value, this.__value)\r\n },\r\n _setupSubvalues: function(subvalues) {\r\n var vals = void 0 === subvalues ? this.__subvalues : parseArrayOfNumbers(subvalues);\r\n var i;\r\n var ii;\r\n var list;\r\n if (null === vals) {\r\n return\r\n }\r\n for (i = 0, ii = vals.length, list = []; i < ii; ++i) {\r\n list.push(processValue(vals[i], this.__subvalues[i]))\r\n }\r\n this.__subvalues = list\r\n },\r\n _updateValueIndicator: function() {\r\n this._valueIndicator && this._valueIndicator.value(this.__value, this._noAnimation)\r\n },\r\n _updateSubvalueIndicators: function() {\r\n this._subvalueIndicatorsSet && this._subvalueIndicatorsSet.values(this.__subvalues, this._noAnimation)\r\n },\r\n value: function(arg) {\r\n if (void 0 !== arg) {\r\n this._changeValue(arg);\r\n return this\r\n }\r\n return this.__value\r\n },\r\n subvalues: function(arg) {\r\n if (void 0 !== arg) {\r\n this._changeSubvalues(arg);\r\n return this\r\n }\r\n return null !== this.__subvalues ? this.__subvalues.slice() : void 0\r\n },\r\n _changeValue: function(value) {\r\n this._setupValue(value);\r\n this._beginValueChanging();\r\n this._updateValueIndicator();\r\n this._updateExtraElements();\r\n if (this.__value !== this.option(OPTION_VALUE)) {\r\n this.option(OPTION_VALUE, this.__value)\r\n }\r\n this._endValueChanging()\r\n },\r\n _changeSubvalues: function(subvalues) {\r\n if (null !== this.__subvalues) {\r\n this._setupSubvalues(subvalues);\r\n this._beginValueChanging();\r\n this._updateSubvalueIndicators();\r\n this._updateExtraElements();\r\n this._endValueChanging()\r\n } else {\r\n this.__subvalues = parseArrayOfNumbers(subvalues);\r\n this._setContentSize();\r\n this._renderContent()\r\n }\r\n if (!_compareArrays(this.__subvalues, this.option(OPTION_SUBVALUES))) {\r\n this.option(OPTION_SUBVALUES, this.__subvalues)\r\n }\r\n },\r\n _optionChangesMap: {\r\n scale: \"DOMAIN\",\r\n rangeContainer: \"MOSTLY_TOTAL\",\r\n valueIndicator: \"MOSTLY_TOTAL\",\r\n subvalueIndicator: \"MOSTLY_TOTAL\",\r\n containerBackgroundColor: \"MOSTLY_TOTAL\",\r\n value: \"VALUE\",\r\n subvalues: \"SUBVALUES\",\r\n valueIndicators: \"MOSTLY_TOTAL\"\r\n },\r\n _customChangesOrder: [\"VALUE\", \"SUBVALUES\"],\r\n _change_VALUE: function() {\r\n this._changeValue(this.option(OPTION_VALUE))\r\n },\r\n _change_SUBVALUES: function() {\r\n this._changeSubvalues(this.option(OPTION_SUBVALUES))\r\n },\r\n _applyMainLayout: null,\r\n _getElementLayout: null,\r\n _createIndicator: function(type, owner, className, trackerType, trackerIndex, _strict) {\r\n var indicator = this._factory.createIndicator({\r\n renderer: this._renderer,\r\n translator: this._translator,\r\n owner: owner,\r\n tracker: this._tracker,\r\n className: className\r\n }, type, _strict);\r\n if (indicator) {\r\n indicator.type = type;\r\n indicator._trackerInfo = {\r\n type: trackerType,\r\n index: trackerIndex\r\n }\r\n }\r\n return indicator\r\n },\r\n _getApproximateScreenRange: null\r\n});\r\n\r\nfunction valueGetter(arg) {\r\n return arg ? arg.value : null\r\n}\r\n\r\nfunction setupValues(that, fieldName, optionItems) {\r\n var currentValues = that[fieldName];\r\n var newValues = _isArray(optionItems) ? _map(optionItems, valueGetter) : [];\r\n var i = 0;\r\n var ii = newValues.length;\r\n var list = [];\r\n for (; i < ii; ++i) {\r\n list.push(processValue(newValues[i], currentValues[i]))\r\n }\r\n that[fieldName] = list\r\n}\r\n\r\nfunction selectMode(gauge) {\r\n if (void 0 === gauge.option(OPTION_VALUE) && void 0 === gauge.option(OPTION_SUBVALUES)) {\r\n if (void 0 !== gauge.option(\"valueIndicators\")) {\r\n disableDefaultMode(gauge);\r\n selectHardMode(gauge)\r\n }\r\n }\r\n}\r\n\r\nfunction disableDefaultMode(that) {\r\n that.value = that.subvalues = _noop;\r\n that._setupValue = that._setupSubvalues = that._updateValueIndicator = that._updateSubvalueIndicators = null\r\n}\r\n\r\nfunction selectHardMode(that) {\r\n that._indicatorValues = [];\r\n setupValues(that, \"_indicatorValues\", that.option(\"valueIndicators\"));\r\n that._valueIndicators = [];\r\n var _applyMostlyTotalChange = that._applyMostlyTotalChange;\r\n that._applyMostlyTotalChange = function() {\r\n setupValues(this, \"_indicatorValues\", this.option(\"valueIndicators\"));\r\n _applyMostlyTotalChange.call(this)\r\n };\r\n that._updateActiveElements = updateActiveElements_hardMode;\r\n that._prepareValueIndicators = prepareValueIndicators_hardMode;\r\n that._disposeValueIndicators = disposeValueIndicators_hardMode;\r\n that._cleanValueIndicators = cleanValueIndicators_hardMode;\r\n that.indicatorValue = indicatorValue_hardMode\r\n}\r\n\r\nfunction updateActiveElements_hardMode() {\r\n var that = this;\r\n that._valueIndicators.forEach(valueIndicator => {\r\n valueIndicator.value(that._indicatorValues[valueIndicator.index], that._noAnimation)\r\n })\r\n}\r\n\r\nfunction prepareValueIndicators_hardMode() {\r\n var that = this;\r\n var valueIndicators = that._valueIndicators || [];\r\n var userOptions = that.option(\"valueIndicators\");\r\n var optionList = [];\r\n var i = 0;\r\n var ii;\r\n for (ii = _isArray(userOptions) ? userOptions.length : 0; i < ii; ++i) {\r\n optionList.push(userOptions[i])\r\n }\r\n for (ii = valueIndicators.length; i < ii; ++i) {\r\n optionList.push(null)\r\n }\r\n var newValueIndicators = [];\r\n optionList.forEach((userSettings, i) => {\r\n var valueIndicator = valueIndicators[i];\r\n if (!userSettings) {\r\n valueIndicator && valueIndicator.dispose();\r\n return\r\n }\r\n var settings = that._prepareIndicatorSettings(userSettings, \"valueIndicatorType\");\r\n if (valueIndicator && valueIndicator.type !== settings.type) {\r\n valueIndicator.dispose();\r\n valueIndicator = null\r\n }\r\n if (!valueIndicator) {\r\n valueIndicator = that._createIndicator(settings.type, that._renderer.root, \"dxg-value-indicator\", \"value-indicator\", i, true)\r\n }\r\n if (valueIndicator) {\r\n valueIndicator.index = i;\r\n valueIndicator.render(settings);\r\n newValueIndicators.push(valueIndicator)\r\n }\r\n });\r\n that._valueIndicators = newValueIndicators;\r\n return that._valueIndicators\r\n}\r\n\r\nfunction disposeValueIndicators_hardMode() {\r\n this._valueIndicators.forEach(valueIndicator => valueIndicator.dispose());\r\n this._valueIndicators = null\r\n}\r\n\r\nfunction cleanValueIndicators_hardMode() {\r\n this._valueIndicators.forEach(valueIndicator => valueIndicator.clean())\r\n}\r\n\r\nfunction indicatorValue_hardMode(index, value) {\r\n return accessPointerValue(this, this._valueIndicators, this._indicatorValues, index, value)\r\n}\r\n\r\nfunction accessPointerValue(that, pointers, values, index, value) {\r\n if (void 0 !== value) {\r\n if (void 0 !== values[index]) {\r\n values[index] = processValue(value, values[index]);\r\n pointers[index] && pointers[index].value(values[index])\r\n }\r\n return that\r\n } else {\r\n return values[index]\r\n }\r\n}\r\n\r\nfunction ValueIndicatorsSet(parameters) {\r\n this._parameters = parameters;\r\n this._indicators = []\r\n}\r\nValueIndicatorsSet.prototype = {\r\n constructor: ValueIndicatorsSet,\r\n dispose: function() {\r\n this._indicators.forEach(indicator => indicator.dispose());\r\n this._parameters = this._options = this._indicators = this._colorPalette = this._palette = null;\r\n return this\r\n },\r\n clean: function() {\r\n this._sample && this._sample.clean().dispose();\r\n this._indicators.forEach(indicator => indicator.clean());\r\n this._sample = this._options = this._palette = null;\r\n return this\r\n },\r\n render: function(options, isRecreate) {\r\n var that = this;\r\n that._options = options;\r\n that._sample = that._parameters.createIndicator(that.type);\r\n that._sample.render(options);\r\n that.enabled = that._sample.enabled;\r\n that._palette = _isDefined(options.palette) ? that._parameters.createPalette(options.palette) : null;\r\n if (that.enabled) {\r\n that._generatePalette(that._indicators.length);\r\n that._indicators = _map(that._indicators, (function(indicator, i) {\r\n if (isRecreate) {\r\n indicator.dispose();\r\n indicator = that._parameters.createIndicator(that.type, i)\r\n }\r\n indicator.render(that._getIndicatorOptions(i));\r\n return indicator\r\n }))\r\n }\r\n return that\r\n },\r\n getOffset: function() {\r\n return this._sample.getOffset()\r\n },\r\n resize: function(layout) {\r\n this._layout = layout;\r\n this._indicators.forEach(indicator => indicator.resize(layout));\r\n return this\r\n },\r\n measure: function(layout) {\r\n return this._sample.measure(layout)\r\n },\r\n _getIndicatorOptions: function(index) {\r\n var result = this._options;\r\n if (this._colorPalette) {\r\n result = _extend({}, result, {\r\n color: this._colorPalette[index]\r\n })\r\n }\r\n return result\r\n },\r\n _generatePalette: function(count) {\r\n var colors = null;\r\n if (this._palette) {\r\n this._palette.reset();\r\n colors = this._palette.generateColors(count, {\r\n repeat: true\r\n })\r\n }\r\n this._colorPalette = colors\r\n },\r\n _adjustIndicatorsCount: function(count) {\r\n var indicators = this._indicators;\r\n var i;\r\n var ii;\r\n var indicator;\r\n var indicatorsLen = indicators.length;\r\n if (indicatorsLen > count) {\r\n for (i = count, ii = indicatorsLen; i < ii; ++i) {\r\n indicators[i].clean().dispose()\r\n }\r\n this._indicators = indicators.slice(0, count);\r\n this._generatePalette(indicators.length)\r\n } else if (indicatorsLen < count) {\r\n this._generatePalette(count);\r\n for (i = indicatorsLen, ii = count; i < ii; ++i) {\r\n indicator = this._parameters.createIndicator(this.type, i);\r\n indicator.render(this._getIndicatorOptions(i)).resize(this._layout);\r\n indicators.push(indicator)\r\n }\r\n }\r\n },\r\n values: function(arg, _noAnimation) {\r\n if (!this.enabled) {\r\n return\r\n }\r\n if (void 0 !== arg) {\r\n if (!_isArray(arg)) {\r\n arg = _isFinite(arg) ? [Number(arg)] : null\r\n }\r\n if (arg) {\r\n this._adjustIndicatorsCount(arg.length);\r\n this._indicators.forEach((indicator, i) => indicator.value(arg[i], _noAnimation))\r\n }\r\n return this\r\n }\r\n return _map(this._indicators, (function(indicator) {\r\n return indicator.value()\r\n }))\r\n }\r\n};\r\nexport function createIndicatorCreator(indicators) {\r\n return function(parameters, type, _strict) {\r\n var indicatorType = indicators[_normalizeEnum(type)] || !_strict && indicators._default;\r\n return indicatorType ? new indicatorType(parameters) : null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/center_template.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar pieChartPlugin = {\r\n name: \"center_template_pie_chart\",\r\n init: noop,\r\n dispose: function() {\r\n this._centerTemplateGroup.linkOff().dispose()\r\n },\r\n extenders: {\r\n _createHtmlStructure() {\r\n var patchedFontOptions = patchFontOptions(this._themeManager._font);\r\n this._centerTemplateGroup = this._renderer.g().attr({\r\n class: \"dxc-hole-template\"\r\n }).linkOn(this._renderer.root, \"center-template\").css(patchedFontOptions).linkAppend()\r\n },\r\n _renderExtraElements() {\r\n this._requestChange([\"CENTER_TEMPLATE\"])\r\n }\r\n },\r\n members: {\r\n _renderCenterTemplate() {\r\n var template = this.option(\"centerTemplate\");\r\n var centerTemplateGroup = this._centerTemplateGroup.clear();\r\n if (!template) {\r\n return\r\n }\r\n centerTemplateGroup.attr({\r\n visibility: \"hidden\"\r\n });\r\n var center = this._getCenter();\r\n this._getTemplate(template).render({\r\n model: this,\r\n container: centerTemplateGroup.element,\r\n onRendered: () => {\r\n var group = centerTemplateGroup;\r\n var bBox = group.getBBox();\r\n var bBoxCenterX = bBox.x + bBox.width / 2;\r\n var bBoxCenterY = bBox.y + bBox.height / 2;\r\n group.move(center.x - bBoxCenterX, center.y - bBoxCenterY);\r\n group.attr({\r\n visibility: \"visible\"\r\n })\r\n }\r\n })\r\n }\r\n },\r\n customize(constructor) {\r\n constructor.addChange({\r\n code: \"CENTER_TEMPLATE\",\r\n handler: function() {\r\n this._renderCenterTemplate()\r\n },\r\n option: \"centerTemplate\"\r\n })\r\n }\r\n};\r\nvar gaugePlugin = {\r\n name: \"center_template_gauge\",\r\n init: noop,\r\n dispose: pieChartPlugin.dispose,\r\n extenders: {\r\n _initCore() {\r\n this._createCenterTemplateGroup()\r\n },\r\n _renderContent() {\r\n var patchedFontOptions = patchFontOptions(this._themeManager._font);\r\n this._centerTemplateGroup.css(patchedFontOptions);\r\n this._requestChange([\"CENTER_TEMPLATE\"])\r\n },\r\n _updateExtraElements() {\r\n this._requestChange([\"CENTER_TEMPLATE\"])\r\n }\r\n },\r\n members: {\r\n _renderCenterTemplate: pieChartPlugin.members._renderCenterTemplate,\r\n _createCenterTemplateGroup() {\r\n this._centerTemplateGroup = this._renderer.g().attr({\r\n class: \"dxg-hole-template\"\r\n }).linkOn(this._renderer.root, \"center-template\").linkAppend()\r\n }\r\n },\r\n customize: pieChartPlugin.customize\r\n};\r\nexport var plugins = {\r\n pieChart: pieChartPlugin,\r\n gauge: gaugePlugin\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/gauges/base_indicators.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar _isFinite = isFinite;\r\nvar _Number = Number;\r\nvar _round = Math.round;\r\nimport {\r\n formatValue,\r\n getSampleText\r\n} from \"./base_gauge\";\r\nvar _formatValue = formatValue;\r\nvar _getSampleText = getSampleText;\r\nimport {\r\n patchFontOptions as _patchFontOptions,\r\n extractColor\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Class from \"../../core/class\";\r\nexport var BaseElement = Class.inherit({\r\n ctor: function(parameters) {\r\n var that = this;\r\n each(parameters, (function(name, value) {\r\n that[\"_\" + name] = value\r\n }));\r\n that._init()\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that._dispose();\r\n each(that, (function(name) {\r\n that[name] = null\r\n }));\r\n return that\r\n },\r\n getOffset: function() {\r\n return _Number(this._options.offset) || 0\r\n }\r\n});\r\nexport var BaseIndicator = BaseElement.inherit({\r\n _init: function() {\r\n this._rootElement = this._createRoot().linkOn(this._owner, {\r\n name: \"value-indicator\",\r\n after: \"core\"\r\n });\r\n this._trackerElement = this._createTracker()\r\n },\r\n _dispose: function() {\r\n this._rootElement.linkOff()\r\n },\r\n _setupAnimation: function() {\r\n var that = this;\r\n if (that._options.animation) {\r\n that._animation = {\r\n step: function(pos) {\r\n that._actualValue = that._animation.start + that._animation.delta * pos;\r\n that._actualPosition = that._translator.translate(that._actualValue);\r\n that._move()\r\n },\r\n duration: that._options.animation.duration > 0 ? _Number(that._options.animation.duration) : 0,\r\n easing: that._options.animation.easing\r\n }\r\n }\r\n },\r\n _runAnimation: function(value) {\r\n var animation = this._animation;\r\n animation.start = this._actualValue;\r\n animation.delta = value - this._actualValue;\r\n this._rootElement.animate({\r\n _: 0\r\n }, {\r\n step: animation.step,\r\n duration: animation.duration,\r\n easing: animation.easing\r\n })\r\n },\r\n _createRoot: function() {\r\n return this._renderer.g().attr({\r\n class: this._className\r\n })\r\n },\r\n _createTracker: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _getTrackerSettings: noop,\r\n clean: function() {\r\n this._animation && this._rootElement.stopAnimation();\r\n this._rootElement.linkRemove().clear();\r\n this._clear();\r\n this._tracker.detach(this._trackerElement);\r\n this._options = this.enabled = this._animation = null;\r\n return this\r\n },\r\n render: function(options) {\r\n this.type = options.type;\r\n this._options = options;\r\n this._actualValue = this._currentValue = this._translator.adjust(this._options.currentValue);\r\n this.enabled = this._isEnabled();\r\n if (this.enabled) {\r\n this._setupAnimation();\r\n this._rootElement.attr({\r\n fill: extractColor(this._options.color)\r\n }).linkAppend();\r\n this._tracker.attach(this._trackerElement, this, this._trackerInfo)\r\n }\r\n return this\r\n },\r\n resize: function(layout) {\r\n this._rootElement.clear();\r\n this._clear();\r\n this.visible = this._isVisible(layout);\r\n if (this.visible) {\r\n extend(this._options, layout);\r\n this._actualPosition = this._translator.translate(this._actualValue);\r\n this._render();\r\n this._trackerElement.attr(this._getTrackerSettings());\r\n this._move()\r\n }\r\n return this\r\n },\r\n value: function(arg, _noAnimation) {\r\n var val;\r\n var rootElement = this._rootElement;\r\n var visibility = null;\r\n if (void 0 === arg) {\r\n return this._currentValue\r\n }\r\n if (null === arg) {\r\n visibility = \"hidden\";\r\n this._currentValue = arg\r\n } else {\r\n val = this._translator.adjust(arg);\r\n if (this._currentValue !== val && _isFinite(val)) {\r\n this._currentValue = val;\r\n if (this.visible) {\r\n if (this._animation && !_noAnimation) {\r\n this._runAnimation(val)\r\n } else {\r\n this._actualValue = val;\r\n this._actualPosition = this._translator.translate(val);\r\n this._move()\r\n }\r\n }\r\n }\r\n }\r\n rootElement.attr({\r\n visibility: visibility\r\n });\r\n return this\r\n },\r\n _isEnabled: null,\r\n _isVisible: null,\r\n _render: null,\r\n _clear: null,\r\n _move: null\r\n});\r\nvar COEFFICIENTS_MAP = {};\r\nCOEFFICIENTS_MAP[\"right-bottom\"] = COEFFICIENTS_MAP.rb = [0, -1, -1, 0, 0, 1, 1, 0];\r\nCOEFFICIENTS_MAP[\"bottom-right\"] = COEFFICIENTS_MAP.br = [-1, 0, 0, -1, 1, 0, 0, 1];\r\nCOEFFICIENTS_MAP[\"left-bottom\"] = COEFFICIENTS_MAP.lb = [0, -1, 1, 0, 0, 1, -1, 0];\r\nCOEFFICIENTS_MAP[\"bottom-left\"] = COEFFICIENTS_MAP.bl = [1, 0, 0, -1, -1, 0, 0, 1];\r\nCOEFFICIENTS_MAP[\"left-top\"] = COEFFICIENTS_MAP.lt = [0, 1, 1, 0, 0, -1, -1, 0];\r\nCOEFFICIENTS_MAP[\"top-left\"] = COEFFICIENTS_MAP.tl = [1, 0, 0, 1, -1, 0, 0, -1];\r\nCOEFFICIENTS_MAP[\"right-top\"] = COEFFICIENTS_MAP.rt = [0, 1, -1, 0, 0, -1, 1, 0];\r\nCOEFFICIENTS_MAP[\"top-right\"] = COEFFICIENTS_MAP.tr = [-1, 0, 0, 1, 1, 0, 0, -1];\r\n\r\nfunction getTextCloudInfo(options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var type = COEFFICIENTS_MAP[options.type];\r\n var cloudWidth = options.cloudWidth;\r\n var cloudHeight = options.cloudHeight;\r\n var tailWidth;\r\n var tailHeight;\r\n var cx = x;\r\n var cy = y;\r\n tailWidth = tailHeight = options.tailLength;\r\n if (1 & type[0]) {\r\n tailHeight = Math.min(tailHeight, cloudHeight / 3)\r\n } else {\r\n tailWidth = Math.min(tailWidth, cloudWidth / 3)\r\n }\r\n return {\r\n cx: _round(cx + type[0] * tailWidth + (type[0] + type[2]) * cloudWidth / 2),\r\n cy: _round(cy + type[1] * tailHeight + (type[1] + type[3]) * cloudHeight / 2),\r\n points: [_round(x), _round(y), _round(x += type[0] * (cloudWidth + tailWidth)), _round(y += type[1] * (cloudHeight + tailHeight)), _round(x += type[2] * cloudWidth), _round(y += type[3] * cloudHeight), _round(x += type[4] * cloudWidth), _round(y += type[5] * cloudHeight), _round(x += type[6] * (cloudWidth - tailWidth)), _round(y += type[7] * (cloudHeight - tailHeight))]\r\n }\r\n}\r\nexport var BaseTextCloudMarker = BaseIndicator.inherit({\r\n _move: function() {\r\n var options = this._options;\r\n var textCloudOptions = this._getTextCloudOptions();\r\n var text = _formatValue(this._actualValue, options.text);\r\n this._text.attr({\r\n text: text\r\n });\r\n var bBox = this._text.getBBox();\r\n var x = textCloudOptions.x;\r\n var y = textCloudOptions.y;\r\n var cloudWidth = (bBox.width || text.length * this._textUnitWidth) + 2 * options.horizontalOffset;\r\n var cloudHeight = (bBox.height || this._textHeight) + 2 * options.verticalOffset;\r\n var info = getTextCloudInfo({\r\n x: x,\r\n y: y,\r\n cloudWidth: cloudWidth,\r\n cloudHeight: cloudHeight,\r\n tailLength: options.arrowLength,\r\n type: this._correctCloudType(textCloudOptions.type, {\r\n x: x,\r\n y: y\r\n }, {\r\n width: cloudWidth,\r\n height: cloudHeight\r\n })\r\n });\r\n this._text.attr({\r\n x: info.cx,\r\n y: info.cy + this._textVerticalOffset\r\n });\r\n this._cloud.attr({\r\n points: info.points\r\n });\r\n this._trackerElement && this._trackerElement.attr({\r\n points: info.points\r\n })\r\n },\r\n _measureText: function() {\r\n var root;\r\n var text;\r\n var bBox;\r\n var sampleText;\r\n if (!this._textVerticalOffset) {\r\n root = this._createRoot().append(this._owner);\r\n sampleText = _getSampleText(this._translator, this._options.text);\r\n text = this._renderer.text(sampleText, 0, 0).attr({\r\n align: \"center\"\r\n }).css(_patchFontOptions(this._options.text.font)).append(root);\r\n bBox = text.getBBox();\r\n root.remove();\r\n this._textVerticalOffset = -bBox.y - bBox.height / 2;\r\n this._textWidth = bBox.width;\r\n this._textHeight = bBox.height;\r\n this._textUnitWidth = this._textWidth / sampleText.length;\r\n this._textFullWidth = this._textWidth + 2 * this._options.horizontalOffset;\r\n this._textFullHeight = this._textHeight + 2 * this._options.verticalOffset\r\n }\r\n },\r\n _render: function() {\r\n this._measureText();\r\n this._cloud = this._cloud || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._text = this._text || this._renderer.text().append(this._rootElement);\r\n this._text.attr({\r\n align: \"center\"\r\n }).css(_patchFontOptions(this._options.text.font))\r\n },\r\n _clear: function() {\r\n delete this._cloud;\r\n delete this._text\r\n },\r\n getTooltipParameters: function() {\r\n var position = this._getTextCloudOptions();\r\n return {\r\n x: position.x,\r\n y: position.y,\r\n value: this._currentValue,\r\n color: this._options.color\r\n }\r\n },\r\n _correctCloudType: type => type\r\n});\r\nexport var BaseRangeBar = BaseIndicator.inherit({\r\n _measureText: function() {\r\n var root;\r\n var text;\r\n var bBox;\r\n this._hasText = this._isTextVisible();\r\n if (this._hasText && !this._textVerticalOffset) {\r\n root = this._createRoot().append(this._owner);\r\n text = this._renderer.text(_getSampleText(this._translator, this._options.text), 0, 0).attr({\r\n class: \"dxg-text\",\r\n align: \"center\"\r\n }).css(_patchFontOptions(this._options.text.font)).append(root);\r\n bBox = text.getBBox();\r\n root.remove();\r\n this._textVerticalOffset = -bBox.y - bBox.height / 2;\r\n this._textWidth = bBox.width;\r\n this._textHeight = bBox.height\r\n }\r\n },\r\n _move: function() {\r\n this._updateBarItemsPositions();\r\n if (this._hasText) {\r\n this._text.attr({\r\n text: _formatValue(this._actualValue, this._options.text)\r\n });\r\n this._updateTextPosition();\r\n this._updateLinePosition()\r\n }\r\n },\r\n _updateBarItems: function() {\r\n var options = this._options;\r\n var spaceColor;\r\n var translator = this._translator;\r\n this._setBarSides();\r\n this._startPosition = translator.translate(translator.getDomainStart());\r\n this._endPosition = translator.translate(translator.getDomainEnd());\r\n this._basePosition = translator.translate(options.baseValue);\r\n this._space = this._getSpace();\r\n var backgroundColor = options.backgroundColor || \"none\";\r\n if (\"none\" !== backgroundColor && this._space > 0) {\r\n spaceColor = options.containerBackgroundColor || \"none\"\r\n } else {\r\n this._space = 0;\r\n spaceColor = \"none\"\r\n }\r\n this._backItem1.attr({\r\n fill: backgroundColor\r\n });\r\n this._backItem2.attr({\r\n fill: backgroundColor\r\n });\r\n this._spaceItem1.attr({\r\n fill: spaceColor\r\n });\r\n this._spaceItem2.attr({\r\n fill: spaceColor\r\n })\r\n },\r\n _getSpace: function() {\r\n return 0\r\n },\r\n _updateTextItems: function() {\r\n if (this._hasText) {\r\n this._line = this._line || this._renderer.path([], \"line\").attr({\r\n class: \"dxg-main-bar\",\r\n \"stroke-linecap\": \"square\"\r\n }).append(this._rootElement);\r\n this._text = this._text || this._renderer.text(\"\", 0, 0).attr({\r\n class: \"dxg-text\"\r\n }).append(this._rootElement);\r\n this._text.attr({\r\n align: this._getTextAlign()\r\n }).css(this._getFontOptions());\r\n this._setTextItemsSides()\r\n } else {\r\n if (this._line) {\r\n this._line.remove();\r\n delete this._line\r\n }\r\n if (this._text) {\r\n this._text.remove();\r\n delete this._text\r\n }\r\n }\r\n },\r\n _isTextVisible: function() {\r\n return false\r\n },\r\n _getTextAlign: function() {\r\n return \"center\"\r\n },\r\n _getFontOptions: function() {\r\n var options = this._options;\r\n var font = options.text.font;\r\n if (!font || !font.color) {\r\n font = extend({}, font, {\r\n color: options.color\r\n })\r\n }\r\n return _patchFontOptions(font)\r\n },\r\n _updateBarItemsPositions: function() {\r\n var positions = this._getPositions();\r\n this._backItem1.attr(this._buildItemSettings(positions.start, positions.back1));\r\n this._backItem2.attr(this._buildItemSettings(positions.back2, positions.end));\r\n this._spaceItem1.attr(this._buildItemSettings(positions.back1, positions.main1));\r\n this._spaceItem2.attr(this._buildItemSettings(positions.main2, positions.back2));\r\n this._mainItem.attr(this._buildItemSettings(positions.main1, positions.main2));\r\n this._trackerElement && this._trackerElement.attr(this._buildItemSettings(positions.main1, positions.main2))\r\n },\r\n _render: function() {\r\n this._measureText();\r\n if (!this._backItem1) {\r\n this._backItem1 = this._createBarItem();\r\n this._backItem1.attr({\r\n class: \"dxg-back-bar\"\r\n })\r\n }\r\n if (!this._backItem2) {\r\n this._backItem2 = this._createBarItem();\r\n this._backItem2.attr({\r\n class: \"dxg-back-bar\"\r\n })\r\n }\r\n if (!this._spaceItem1) {\r\n this._spaceItem1 = this._createBarItem();\r\n this._spaceItem1.attr({\r\n class: \"dxg-space-bar\"\r\n })\r\n }\r\n if (!this._spaceItem2) {\r\n this._spaceItem2 = this._createBarItem();\r\n this._spaceItem2.attr({\r\n class: \"dxg-space-bar\"\r\n })\r\n }\r\n if (!this._mainItem) {\r\n this._mainItem = this._createBarItem();\r\n this._mainItem.attr({\r\n class: \"dxg-main-bar\"\r\n })\r\n }\r\n this._updateBarItems();\r\n this._updateTextItems()\r\n },\r\n _clear: function() {\r\n delete this._backItem1;\r\n delete this._backItem2;\r\n delete this._spaceItem1;\r\n delete this._spaceItem2;\r\n delete this._mainItem;\r\n delete this._hasText;\r\n delete this._line;\r\n delete this._text\r\n },\r\n getTooltipParameters: function() {\r\n var position = this._getTooltipPosition();\r\n return {\r\n x: position.x,\r\n y: position.y,\r\n value: this._currentValue,\r\n color: this._options.color,\r\n offset: 0\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/gauges/circular_indicators.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n BaseIndicator,\r\n BaseTextCloudMarker,\r\n BaseRangeBar\r\n} from \"./base_indicators\";\r\nimport {\r\n getCosAndSin,\r\n convertAngleToRendererSpace,\r\n normalizeAngle\r\n} from \"../core/utils\";\r\nvar _Number = Number;\r\nvar _getCosAndSin = getCosAndSin;\r\nvar _convertAngleToRendererSpace = convertAngleToRendererSpace;\r\n\r\nfunction correctRadius(layout, size) {\r\n if (layout && layout.radius - size <= 0) {\r\n layout.radius = size + 1\r\n }\r\n return layout\r\n}\r\nvar SimpleIndicator = BaseIndicator.inherit({\r\n _move: function() {\r\n var options = this._options;\r\n var angle = _convertAngleToRendererSpace(this._actualPosition);\r\n this._rootElement.rotate(angle, options.x, options.y);\r\n this._trackerElement && this._trackerElement.rotate(angle, options.x, options.y)\r\n },\r\n _isEnabled: function() {\r\n return this._options.width > 0\r\n },\r\n _isVisible: function(layout) {\r\n return layout.radius - _Number(this._options.indentFromCenter) > 0\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var radius = this._getRadius();\r\n var indentFromCenter = this._getIndentFromCenter();\r\n var x = options.x;\r\n var y = options.y - (radius + indentFromCenter) / 2;\r\n var width = options.width / 2;\r\n var length = (radius - indentFromCenter) / 2;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n return {\r\n points: [x - width, y - length, x - width, y + length, x + width, y + length, x + width, y - length]\r\n }\r\n },\r\n _render: function() {\r\n this._renderPointer()\r\n },\r\n _clearPointer: function() {\r\n delete this._element\r\n },\r\n _clear: function() {\r\n this._clearPointer()\r\n },\r\n _getIndentFromCenter: function(radius) {\r\n return Number(this._options.indentFromCenter) || 0\r\n },\r\n _getRadius: function() {\r\n return 0\r\n },\r\n measure: function(layout) {\r\n var result = {\r\n max: layout.radius\r\n };\r\n if (this._options.indentFromCenter < 0) {\r\n result.inverseHorizontalOffset = result.inverseVerticalOffset = -_Number(this._options.indentFromCenter)\r\n }\r\n return result\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var r = (this._getRadius() + this._getIndentFromCenter()) / 2;\r\n return {\r\n x: options.x + cosSin.cos * r,\r\n y: options.y - cosSin.sin * r,\r\n value: this._currentValue,\r\n color: options.color,\r\n offset: options.width / 2\r\n }\r\n }\r\n});\r\nvar NeedleIndicator = SimpleIndicator.inherit({\r\n _isVisible: function(layout) {\r\n var indentFromCenter = this._adjustOffset(Number(this._options.indentFromCenter), layout.radius);\r\n var offset = this._adjustOffset(Number(this._options.offset), layout.radius);\r\n return layout.radius - indentFromCenter - offset > 0\r\n },\r\n getOffset: function() {\r\n return 0\r\n },\r\n _adjustOffset: function(value, radius) {\r\n var minRadius = Number(this._options.beginAdaptingAtRadius);\r\n var diff = radius / minRadius;\r\n if (diff < 1) {\r\n value = Math.floor(value * diff)\r\n }\r\n return value || 0\r\n },\r\n _getIndentFromCenter: function(radius) {\r\n return this._adjustOffset(Number(this._options.indentFromCenter), this._options.radius)\r\n },\r\n _getRadius: function() {\r\n var options = this._options;\r\n return options.radius - this._adjustOffset(Number(options.offset), options.radius)\r\n },\r\n _renderSpindle: function() {\r\n var options = this._options;\r\n var radius = options.radius;\r\n var spindleSize = 2 * this._adjustOffset(_Number(options.spindleSize) / 2, radius);\r\n var gapSize = 2 * this._adjustOffset(_Number(options.spindleGapSize) / 2, radius) || 0;\r\n if (gapSize > 0) {\r\n gapSize = gapSize <= spindleSize ? gapSize : spindleSize\r\n }\r\n if (spindleSize > 0) {\r\n this._spindleOuter = this._spindleOuter || this._renderer.circle().append(this._rootElement);\r\n this._spindleInner = this._spindleInner || this._renderer.circle().append(this._rootElement);\r\n this._spindleOuter.attr({\r\n class: \"dxg-spindle-border\",\r\n cx: options.x,\r\n cy: options.y,\r\n r: spindleSize / 2\r\n });\r\n this._spindleInner.attr({\r\n class: \"dxg-spindle-hole\",\r\n cx: options.x,\r\n cy: options.y,\r\n r: gapSize / 2,\r\n fill: options.containerBackgroundColor\r\n })\r\n }\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderSpindle()\r\n },\r\n _clear: function() {\r\n this.callBase();\r\n delete this._spindleOuter;\r\n delete this._spindleInner\r\n }\r\n});\r\nvar rectangleNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var options = this._options;\r\n var y2 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var x1 = options.x - options.width / 2;\r\n var x2 = x1 + _Number(options.width);\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._element.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n })\r\n }\r\n});\r\nvar triangleNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var options = this._options;\r\n var y2 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var x1 = options.x - options.width / 2;\r\n var x2 = options.x + options.width / 2;\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._element.attr({\r\n points: [x1, y1, options.x, y2, x2, y1]\r\n })\r\n }\r\n});\r\nvar twoColorNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var options = this._options;\r\n var x1 = options.x - options.width / 2;\r\n var x2 = options.x + options.width / 2;\r\n var y4 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var fraction = _Number(options.secondFraction) || 0;\r\n var y2;\r\n var y3;\r\n if (fraction >= 1) {\r\n y2 = y3 = y1\r\n } else if (fraction <= 0) {\r\n y2 = y3 = y4\r\n } else {\r\n y3 = y4 + (y1 - y4) * fraction;\r\n y2 = y3 + _Number(options.space)\r\n }\r\n this._firstElement = this._firstElement || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._spaceElement = this._spaceElement || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._secondElement = this._secondElement || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._firstElement.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n });\r\n this._spaceElement.attr({\r\n points: [x1, y2, x1, y3, x2, y3, x2, y2],\r\n class: \"dxg-hole\",\r\n fill: options.containerBackgroundColor\r\n });\r\n this._secondElement.attr({\r\n points: [x1, y3, x1, y4, x2, y4, x2, y3],\r\n class: \"dxg-part\",\r\n fill: options.secondColor\r\n })\r\n },\r\n _clearPointer: function() {\r\n delete this._firstElement;\r\n delete this._secondElement;\r\n delete this._spaceElement\r\n }\r\n});\r\nvar triangleMarker = SimpleIndicator.inherit({\r\n _isEnabled: function() {\r\n return this._options.length > 0 && this._options.width > 0\r\n },\r\n _isVisible: layout => true,\r\n resize(layout) {\r\n return this.callBase(correctRadius(layout, 0))\r\n },\r\n _render: function() {\r\n var options = this._options;\r\n var x = options.x;\r\n var y1 = options.y - options.radius;\r\n var dx = options.width / 2 || 0;\r\n var y2 = y1 - _Number(options.length);\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n var settings = {\r\n points: [x, y1, x - dx, y2, x + dx, y2],\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n if (options.space > 0) {\r\n settings[\"stroke-width\"] = Math.min(options.space, options.width / 4) || 0;\r\n settings.stroke = settings[\"stroke-width\"] > 0 ? options.containerBackgroundColor || \"none\" : \"none\"\r\n }\r\n this._element.attr(settings).sharp()\r\n },\r\n _clear: function() {\r\n delete this._element\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var x = options.x;\r\n var y = options.y - options.radius - options.length / 2;\r\n var width = options.width / 2;\r\n var length = options.length / 2;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n return {\r\n points: [x - width, y - length, x - width, y + length, x + width, y + length, x + width, y - length]\r\n }\r\n },\r\n measure: function(layout) {\r\n return {\r\n min: layout.radius,\r\n max: layout.radius + _Number(this._options.length)\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var r = options.radius + options.length / 2;\r\n var parameters = this.callBase();\r\n parameters.x = options.x + cosSin.cos * r;\r\n parameters.y = options.y - cosSin.sin * r;\r\n parameters.offset = options.length / 2;\r\n return parameters\r\n }\r\n});\r\nvar textCloud = BaseTextCloudMarker.inherit({\r\n _isEnabled: function() {\r\n return true\r\n },\r\n _isVisible: layout => true,\r\n resize(layout) {\r\n return this.callBase(correctRadius(layout, 0))\r\n },\r\n _getTextCloudOptions: function() {\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var nAngle = normalizeAngle(this._actualPosition);\r\n return {\r\n x: this._options.x + cosSin.cos * this._options.radius,\r\n y: this._options.y - cosSin.sin * this._options.radius,\r\n type: nAngle > 270 ? \"left-top\" : nAngle > 180 ? \"top-right\" : nAngle > 90 ? \"right-bottom\" : \"bottom-left\"\r\n }\r\n },\r\n measure: function(layout) {\r\n var arrowLength = _Number(this._options.arrowLength) || 0;\r\n this._measureText();\r\n var verticalOffset = this._textFullHeight + arrowLength;\r\n var horizontalOffset = this._textFullWidth + arrowLength;\r\n return {\r\n min: layout.radius,\r\n max: layout.radius,\r\n horizontalOffset: horizontalOffset,\r\n verticalOffset: verticalOffset,\r\n inverseHorizontalOffset: horizontalOffset,\r\n inverseVerticalOffset: verticalOffset\r\n }\r\n }\r\n});\r\nvar rangeBar = BaseRangeBar.inherit({\r\n _isEnabled: function() {\r\n return this._options.size > 0\r\n },\r\n _isVisible: layout => true,\r\n resize(layout) {\r\n return this.callBase(correctRadius(layout, _Number(this._options.size)))\r\n },\r\n _createBarItem: function() {\r\n return this._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n }).append(this._rootElement)\r\n },\r\n _createTracker: function() {\r\n return this._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n },\r\n _setBarSides: function() {\r\n this._maxSide = this._options.radius;\r\n this._minSide = this._maxSide - _Number(this._options.size)\r\n },\r\n _getSpace: function() {\r\n var options = this._options;\r\n return options.space > 0 ? 180 * options.space / options.radius / Math.PI : 0\r\n },\r\n _isTextVisible: function() {\r\n var options = this._options.text || {};\r\n return options.indent > 0\r\n },\r\n _setTextItemsSides: function() {\r\n var options = this._options;\r\n var indent = _Number(options.text.indent);\r\n this._lineFrom = options.y - options.radius;\r\n this._lineTo = this._lineFrom - indent;\r\n this._textRadius = options.radius + indent\r\n },\r\n _getPositions: function() {\r\n var basePosition = this._basePosition;\r\n var actualPosition = this._actualPosition;\r\n var mainPosition1;\r\n var mainPosition2;\r\n if (basePosition >= actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n return {\r\n start: this._startPosition,\r\n end: this._endPosition,\r\n main1: mainPosition1,\r\n main2: mainPosition2,\r\n back1: Math.min(mainPosition1 + this._space, this._startPosition),\r\n back2: Math.max(mainPosition2 - this._space, this._endPosition)\r\n }\r\n },\r\n _buildItemSettings: function(from, to) {\r\n return {\r\n x: this._options.x,\r\n y: this._options.y,\r\n innerRadius: this._minSide,\r\n outerRadius: this._maxSide,\r\n startAngle: to,\r\n endAngle: from\r\n }\r\n },\r\n _updateTextPosition: function() {\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var x = this._options.x + this._textRadius * cosSin.cos;\r\n var y = this._options.y - this._textRadius * cosSin.sin;\r\n x += cosSin.cos * this._textWidth * .6;\r\n y -= cosSin.sin * this._textHeight * .6;\r\n this._text.attr({\r\n x: x,\r\n y: y + this._textVerticalOffset\r\n })\r\n },\r\n _updateLinePosition: function() {\r\n var x = this._options.x;\r\n var x1;\r\n var x2;\r\n if (this._basePosition > this._actualPosition) {\r\n x1 = x - 2;\r\n x2 = x\r\n } else if (this._basePosition < this._actualPosition) {\r\n x1 = x;\r\n x2 = x + 2\r\n } else {\r\n x1 = x - 1;\r\n x2 = x + 1\r\n }\r\n this._line.attr({\r\n points: [x1, this._lineFrom, x1, this._lineTo, x2, this._lineTo, x2, this._lineFrom]\r\n }).rotate(_convertAngleToRendererSpace(this._actualPosition), x, this._options.y).sharp()\r\n },\r\n _getTooltipPosition: function() {\r\n var cosSin = _getCosAndSin((this._basePosition + this._actualPosition) / 2);\r\n var r = (this._minSide + this._maxSide) / 2;\r\n return {\r\n x: this._options.x + cosSin.cos * r,\r\n y: this._options.y - cosSin.sin * r\r\n }\r\n },\r\n measure: function(layout) {\r\n var result = {\r\n min: layout.radius - _Number(this._options.size),\r\n max: layout.radius\r\n };\r\n this._measureText();\r\n if (this._hasText) {\r\n result.max += _Number(this._options.text.indent);\r\n result.horizontalOffset = this._textWidth;\r\n result.verticalOffset = this._textHeight\r\n }\r\n return result\r\n }\r\n});\r\nexport {\r\n rectangleNeedle as _default, rectangleNeedle as rectangleneedle, triangleNeedle as triangleneedle, twoColorNeedle as twocolorneedle, triangleMarker as trianglemarker, textCloud as textcloud, rangeBar as rangebar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/gauges/base_range_container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n BaseElement\r\n} from \"./base_indicators\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extractColor\r\n} from \"../core/utils\";\r\nvar _Number = Number;\r\nvar _isArray = Array.isArray;\r\nvar _isFinite = isFinite;\r\nvar BaseRangeContainer = BaseElement.inherit({\r\n _init: function() {\r\n this._root = this._renderer.g().attr({\r\n class: \"dxg-range-container\"\r\n }).linkOn(this._container, \"range-container\")\r\n },\r\n _dispose: function() {\r\n this._root.linkOff()\r\n },\r\n clean: function() {\r\n this._root.linkRemove().clear();\r\n this._options = this.enabled = null;\r\n return this\r\n },\r\n _getRanges: function() {\r\n var options = this._options;\r\n var translator = this._translator;\r\n var totalStart = translator.getDomain()[0];\r\n var totalEnd = translator.getDomain()[1];\r\n var totalDelta = totalEnd - totalStart;\r\n var isValidSegment = totalDelta >= 0 ? isValidSegmentAsc : isValidSegmentDesc;\r\n var subtractSegment = totalDelta >= 0 ? subtractSegmentAsc : subtractSegmentDesc;\r\n var list;\r\n var ranges = [];\r\n var backgroundRanges = [{\r\n start: totalStart,\r\n end: totalEnd\r\n }];\r\n var backgroundColor = extractColor(options.backgroundColor) || \"none\";\r\n var width = options.width || {};\r\n var startWidth = _Number(width > 0 ? width : width.start);\r\n var endWidth = _Number(width > 0 ? width : width.end);\r\n var deltaWidth = endWidth - startWidth;\r\n if (void 0 !== options.ranges && !_isArray(options.ranges)) {\r\n return null\r\n }\r\n if (!(startWidth >= 0 && endWidth >= 0 && startWidth + endWidth > 0)) {\r\n return null\r\n }\r\n list = (_isArray(options.ranges) ? options.ranges : []).reduce((result, rangeOptions, i) => {\r\n rangeOptions = rangeOptions || {};\r\n var start = translator.adjust(rangeOptions.startValue);\r\n var end = translator.adjust(rangeOptions.endValue);\r\n if (_isFinite(start) && _isFinite(end) && isValidSegment(start, end, rangeOptions)) {\r\n result.push({\r\n start: start,\r\n end: end,\r\n color: extractColor(rangeOptions.color),\r\n classIndex: i\r\n })\r\n }\r\n return result\r\n }, []);\r\n var palette = this._themeManager.createPalette(options.palette, {\r\n type: \"indicatingSet\",\r\n extensionMode: options.paletteExtensionMode,\r\n keepLastColorInEnd: true,\r\n count: list.length\r\n });\r\n each(list, (function(_, item) {\r\n var paletteColor = palette.getNextColor();\r\n item.color = isString(item.color) && item.color || paletteColor || \"none\";\r\n item.className = \"dxg-range dxg-range-\" + item.classIndex;\r\n delete item.classIndex\r\n }));\r\n each(list, (function(_, item) {\r\n var i;\r\n var ii;\r\n var sub;\r\n var subs;\r\n var range;\r\n var newRanges = [];\r\n var newBackgroundRanges = [];\r\n for (i = 0, ii = ranges.length; i < ii; ++i) {\r\n range = ranges[i];\r\n subs = subtractSegment(range.start, range.end, item.start, item.end);\r\n (sub = subs[0]) && (sub.color = range.color) && (sub.className = range.className) && newRanges.push(sub);\r\n (sub = subs[1]) && (sub.color = range.color) && (sub.className = range.className) && newRanges.push(sub)\r\n }\r\n newRanges.push(item);\r\n ranges = newRanges;\r\n for (i = 0, ii = backgroundRanges.length; i < ii; ++i) {\r\n range = backgroundRanges[i];\r\n subs = subtractSegment(range.start, range.end, item.start, item.end);\r\n (sub = subs[0]) && newBackgroundRanges.push(sub);\r\n (sub = subs[1]) && newBackgroundRanges.push(sub)\r\n }\r\n backgroundRanges = newBackgroundRanges\r\n }));\r\n each(backgroundRanges, (function(_, range) {\r\n range.color = backgroundColor;\r\n range.className = \"dxg-range dxg-background-range\";\r\n ranges.push(range)\r\n }));\r\n each(ranges, (function(_, range) {\r\n range.startWidth = (range.start - totalStart) / totalDelta * deltaWidth + startWidth;\r\n range.endWidth = (range.end - totalStart) / totalDelta * deltaWidth + startWidth\r\n }));\r\n return ranges\r\n },\r\n render: function(options) {\r\n this._options = options;\r\n this._processOptions();\r\n this._ranges = this._getRanges();\r\n if (this._ranges) {\r\n this.enabled = true;\r\n this._root.linkAppend()\r\n }\r\n return this\r\n },\r\n resize: function(layout) {\r\n var that = this;\r\n that._root.clear();\r\n if (that._isVisible(layout)) {\r\n each(that._ranges, (function(_, range) {\r\n that._createRange(range, layout).attr({\r\n fill: range.color,\r\n class: range.className\r\n }).append(that._root)\r\n }))\r\n }\r\n return that\r\n },\r\n _processOptions: null,\r\n _isVisible: null,\r\n _createRange: null,\r\n getColorForValue: function(value) {\r\n var color = null;\r\n each(this._ranges, (function(_, range) {\r\n if (range.start <= value && value <= range.end || range.start >= value && value >= range.end) {\r\n color = range.color;\r\n return false\r\n }\r\n }));\r\n return color\r\n }\r\n});\r\n\r\nfunction subtractSegmentAsc(segmentStart, segmentEnd, otherStart, otherEnd) {\r\n var result;\r\n if (otherStart > segmentStart && otherEnd < segmentEnd) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }, {\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n } else if (otherStart >= segmentEnd || otherEnd <= segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: segmentEnd\r\n }]\r\n } else if (otherStart <= segmentStart && otherEnd >= segmentEnd) {\r\n result = []\r\n } else if (otherStart > segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }]\r\n } else if (otherEnd < segmentEnd) {\r\n result = [{\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n }\r\n return result\r\n}\r\n\r\nfunction subtractSegmentDesc(segmentStart, segmentEnd, otherStart, otherEnd) {\r\n var result;\r\n if (otherStart < segmentStart && otherEnd > segmentEnd) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }, {\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n } else if (otherStart <= segmentEnd || otherEnd >= segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: segmentEnd\r\n }]\r\n } else if (otherStart >= segmentStart && otherEnd <= segmentEnd) {\r\n result = []\r\n } else if (otherStart < segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }]\r\n } else if (otherEnd > segmentEnd) {\r\n result = [{\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n }\r\n return result\r\n}\r\n\r\nfunction areEqualValues(start, end, _ref) {\r\n var {\r\n startValue: startValue,\r\n endValue: endValue\r\n } = _ref;\r\n return endValue === startValue && startValue === start && end === start\r\n}\r\n\r\nfunction isValidSegmentAsc(start, end, options) {\r\n return end - start > 0 || areEqualValues(start, end, options)\r\n}\r\n\r\nfunction isValidSegmentDesc(start, end, options) {\r\n return start - end > 0 || areEqualValues(start, end, options)\r\n}\r\nexport default BaseRangeContainer;\r\n","/**\r\n * DevExtreme (esm/viz/gauges/circular_range_container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseRangeContainer from \"./base_range_container\";\r\nvar _Number = Number;\r\nvar _max = Math.max;\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar CircularRangeContainer = BaseRangeContainer.inherit({\r\n _processOptions: function() {\r\n this._inner = this._outer = 0;\r\n switch (_normalizeEnum(this._options.orientation)) {\r\n case \"inside\":\r\n this._inner = 1;\r\n break;\r\n case \"center\":\r\n this._inner = this._outer = .5;\r\n break;\r\n default:\r\n this._outer = 1\r\n }\r\n },\r\n _isVisible: function(layout) {\r\n var width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n return layout.radius - this._inner * width > 0\r\n },\r\n _createRange: function(range, layout) {\r\n var width = (range.startWidth + range.endWidth) / 2;\r\n return this._renderer.arc(layout.x, layout.y, layout.radius - this._inner * width, layout.radius + this._outer * width, this._translator.translate(range.end), this._translator.translate(range.start)).attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n },\r\n measure: function(layout) {\r\n var width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n return {\r\n min: layout.radius - this._inner * width,\r\n max: layout.radius + this._outer * width\r\n }\r\n }\r\n});\r\nexport default CircularRangeContainer;\r\n","/**\r\n * DevExtreme (esm/viz/gauges/circular_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _isFinite = isFinite;\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n BaseGauge\r\n} from \"./base_gauge\";\r\nimport {\r\n dxGauge,\r\n createIndicatorCreator\r\n} from \"./common\";\r\nimport {\r\n normalizeAngle,\r\n getCosAndSin\r\n} from \"../core/utils\";\r\nimport {\r\n plugins as centerTemplatePlugins\r\n} from \"../core/center_template\";\r\nvar _normalizeAngle = normalizeAngle;\r\nvar _getCosAndSin = getCosAndSin;\r\nimport * as circularIndicators from \"./circular_indicators\";\r\nimport CircularRangeContainer from \"./circular_range_container\";\r\nvar _abs = Math.abs;\r\nvar _max = Math.max;\r\nvar _min = Math.min;\r\nvar _round = Math.round;\r\nvar _each = each;\r\nvar PI = Math.PI;\r\n\r\nfunction getSides(startAngle, endAngle) {\r\n var startCosSin = _getCosAndSin(startAngle);\r\n var endCosSin = _getCosAndSin(endAngle);\r\n var startCos = startCosSin.cos;\r\n var startSin = startCosSin.sin;\r\n var endCos = endCosSin.cos;\r\n var endSin = endCosSin.sin;\r\n return {\r\n left: startSin <= 0 && endSin >= 0 || startSin <= 0 && endSin <= 0 && startCos <= endCos || startSin >= 0 && endSin >= 0 && startCos >= endCos ? -1 : _min(startCos, endCos, 0),\r\n right: startSin >= 0 && endSin <= 0 || startSin >= 0 && endSin >= 0 && startCos >= endCos || startSin <= 0 && endSin <= 0 && startCos <= endCos ? 1 : _max(startCos, endCos, 0),\r\n up: startCos <= 0 && endCos >= 0 || startCos <= 0 && endCos <= 0 && startSin >= endSin || startCos >= 0 && endCos >= 0 && startSin <= endSin ? -1 : -_max(startSin, endSin, 0),\r\n down: startCos >= 0 && endCos <= 0 || startCos >= 0 && endCos >= 0 && startSin <= endSin || startCos <= 0 && endCos <= 0 && startSin >= endSin ? 1 : -_min(startSin, endSin, 0)\r\n }\r\n}\r\nvar dxCircularGauge = dxGauge.inherit({\r\n _rootClass: \"dxg-circular-gauge\",\r\n _factoryMethods: {\r\n rangeContainer: \"createCircularRangeContainer\",\r\n indicator: \"createCircularIndicator\"\r\n },\r\n _gridSpacingFactor: 17,\r\n _scaleTypes: {\r\n type: \"polarAxes\",\r\n drawingType: \"circular\"\r\n },\r\n _getThemeManagerOptions() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.subTheme = \"_circular\";\r\n return options\r\n },\r\n _updateScaleTickIndent: function(scaleOptions) {\r\n var indentFromTick = scaleOptions.label.indentFromTick;\r\n var length = scaleOptions.tick.visible ? scaleOptions.tick.length : 0;\r\n var textParams = this._scale.measureLabels(extend({}, this._canvas));\r\n var scaleOrientation = scaleOptions.orientation;\r\n var tickCorrection = length;\r\n var indentFromAxis = indentFromTick;\r\n if (indentFromTick >= 0) {\r\n if (\"outside\" === scaleOrientation) {\r\n indentFromAxis += tickCorrection\r\n } else if (\"center\" === scaleOrientation) {\r\n indentFromAxis += tickCorrection / 2\r\n }\r\n } else {\r\n var labelCorrection = _max(textParams.width, textParams.height);\r\n indentFromAxis -= labelCorrection;\r\n if (\"inside\" === scaleOrientation) {\r\n indentFromAxis -= tickCorrection\r\n } else if (\"center\" === scaleOrientation) {\r\n indentFromAxis -= tickCorrection / 2\r\n }\r\n }\r\n scaleOptions.label.indentFromAxis = indentFromAxis;\r\n this._scale.updateOptions(scaleOptions)\r\n },\r\n _setupCodomain: function() {\r\n var geometry = this.option(\"geometry\") || {};\r\n var startAngle = geometry.startAngle;\r\n var endAngle = geometry.endAngle;\r\n var sides;\r\n startAngle = _isFinite(startAngle) ? _normalizeAngle(startAngle) : 225;\r\n endAngle = _isFinite(endAngle) ? _normalizeAngle(endAngle) : -45;\r\n if (_abs(startAngle - endAngle) < 1) {\r\n endAngle -= 360;\r\n sides = {\r\n left: -1,\r\n up: -1,\r\n right: 1,\r\n down: 1\r\n }\r\n } else {\r\n startAngle < endAngle && (endAngle -= 360);\r\n sides = getSides(startAngle, endAngle)\r\n }\r\n this._area = {\r\n x: 0,\r\n y: 0,\r\n radius: 100,\r\n startCoord: startAngle,\r\n endCoord: endAngle,\r\n sides: sides\r\n };\r\n this._translator.setCodomain(startAngle, endAngle)\r\n },\r\n _getCenter: function() {\r\n return this._getElementLayout()\r\n },\r\n _shiftScale: function(layout) {\r\n var scale = this._scale;\r\n var canvas = scale.getCanvas();\r\n canvas.width = canvas.height = 2 * layout.radius;\r\n scale.draw(canvas);\r\n var centerCoords = scale.getCenter();\r\n scale.shift({\r\n right: layout.x - centerCoords.x,\r\n bottom: layout.y - centerCoords.y\r\n })\r\n },\r\n _getScaleLayoutValue: function() {\r\n return this._area.radius\r\n },\r\n _getTicksOrientation: function(scaleOptions) {\r\n return scaleOptions.orientation\r\n },\r\n _getTicksCoefficients: function(options) {\r\n var coefs = {\r\n inner: 0,\r\n outer: 1\r\n };\r\n if (\"inside\" === options.orientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else if (\"center\" === options.orientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n return coefs\r\n },\r\n _correctScaleIndents: function(result, indentFromTick, textParams) {\r\n if (indentFromTick >= 0) {\r\n result.horizontalOffset = indentFromTick + textParams.width;\r\n result.verticalOffset = indentFromTick + textParams.height\r\n } else {\r\n result.horizontalOffset = result.verticalOffset = 0;\r\n result.min -= -indentFromTick + _max(textParams.width, textParams.height)\r\n }\r\n result.inverseHorizontalOffset = textParams.width / 2;\r\n result.inverseVerticalOffset = textParams.height / 2\r\n },\r\n _measureMainElements: function(elements, scaleMeasurement) {\r\n var radius = this._area.radius;\r\n var maxRadius = 0;\r\n var minRadius = 1 / 0;\r\n var maxHorizontalOffset = 0;\r\n var maxVerticalOffset = 0;\r\n var maxInverseHorizontalOffset = 0;\r\n var maxInverseVerticalOffset = 0;\r\n var scale = this._scale;\r\n _each(elements.concat(scale), (function(_, element) {\r\n var bounds = element.measure ? element.measure({\r\n radius: radius - element.getOffset()\r\n }) : scaleMeasurement;\r\n bounds.min > 0 && (minRadius = _min(minRadius, bounds.min));\r\n bounds.max > 0 && (maxRadius = _max(maxRadius, bounds.max));\r\n bounds.horizontalOffset > 0 && (maxHorizontalOffset = _max(maxHorizontalOffset, bounds.max + bounds.horizontalOffset));\r\n bounds.verticalOffset > 0 && (maxVerticalOffset = _max(maxVerticalOffset, bounds.max + bounds.verticalOffset));\r\n bounds.inverseHorizontalOffset > 0 && (maxInverseHorizontalOffset = _max(maxInverseHorizontalOffset, bounds.inverseHorizontalOffset));\r\n bounds.inverseVerticalOffset > 0 && (maxInverseVerticalOffset = _max(maxInverseVerticalOffset, bounds.inverseVerticalOffset))\r\n }));\r\n maxHorizontalOffset = _max(maxHorizontalOffset - maxRadius, 0);\r\n maxVerticalOffset = _max(maxVerticalOffset - maxRadius, 0);\r\n return {\r\n minRadius: minRadius,\r\n maxRadius: maxRadius,\r\n horizontalMargin: maxHorizontalOffset,\r\n verticalMargin: maxVerticalOffset,\r\n inverseHorizontalMargin: maxInverseHorizontalOffset,\r\n inverseVerticalMargin: maxInverseVerticalOffset\r\n }\r\n },\r\n _applyMainLayout: function(elements, scaleMeasurement) {\r\n var measurements = this._measureMainElements(elements, scaleMeasurement);\r\n var area = this._area;\r\n var sides = area.sides;\r\n var margins = {\r\n left: (sides.left < -.1 ? measurements.horizontalMargin : measurements.inverseHorizontalMargin) || 0,\r\n right: (sides.right > .1 ? measurements.horizontalMargin : measurements.inverseHorizontalMargin) || 0,\r\n top: (sides.up < -.1 ? measurements.verticalMargin : measurements.inverseVerticalMargin) || 0,\r\n bottom: (sides.down > .1 ? measurements.verticalMargin : measurements.inverseVerticalMargin) || 0\r\n };\r\n var rect = selectRectByAspectRatio(this._innerRect, (sides.down - sides.up) / (sides.right - sides.left), margins);\r\n var radius = _min(getWidth(rect) / (sides.right - sides.left), getHeight(rect) / (sides.down - sides.up));\r\n radius = radius - measurements.maxRadius + area.radius;\r\n var x = rect.left - getWidth(rect) * sides.left / (sides.right - sides.left);\r\n var y = rect.top - getHeight(rect) * sides.up / (sides.down - sides.up);\r\n area.x = _round(x);\r\n area.y = _round(y);\r\n area.radius = radius;\r\n rect.left -= margins.left;\r\n rect.right += margins.right;\r\n rect.top -= margins.top;\r\n rect.bottom += margins.bottom;\r\n this._innerRect = rect\r\n },\r\n _getElementLayout: function() {\r\n var offset = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n return {\r\n x: this._area.x,\r\n y: this._area.y,\r\n radius: _round(this._area.radius - offset)\r\n }\r\n },\r\n _getApproximateScreenRange: function() {\r\n var area = this._area;\r\n var r = _min(this._canvas.width / (area.sides.right - area.sides.left), this._canvas.height / (area.sides.down - area.sides.up));\r\n r > area.totalRadius && (r = area.totalRadius);\r\n r *= .8;\r\n return -this._translator.getCodomainRange() * r * PI / 180\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 300,\r\n height: 300\r\n }\r\n },\r\n _factory: clone(BaseGauge.prototype._factory)\r\n});\r\n\r\nfunction getWidth(rect) {\r\n return rect.right - rect.left\r\n}\r\n\r\nfunction getHeight(rect) {\r\n return rect.bottom - rect.top\r\n}\r\n\r\nfunction selectRectByAspectRatio(srcRect, aspectRatio, margins) {\r\n var rect = extend({}, srcRect);\r\n var selfAspectRatio;\r\n var width = 0;\r\n var height = 0;\r\n margins = margins || {};\r\n if (aspectRatio > 0) {\r\n rect.left += margins.left || 0;\r\n rect.right -= margins.right || 0;\r\n rect.top += margins.top || 0;\r\n rect.bottom -= margins.bottom || 0;\r\n if (getWidth(rect) > 0 && getHeight(rect) > 0) {\r\n selfAspectRatio = getHeight(rect) / getWidth(rect);\r\n if (selfAspectRatio > 1) {\r\n aspectRatio < selfAspectRatio ? width = getWidth(rect) : height = getHeight(rect)\r\n } else {\r\n aspectRatio > selfAspectRatio ? height = getHeight(rect) : width = getWidth(rect)\r\n }\r\n width > 0 || (width = height / aspectRatio);\r\n height > 0 || (height = width * aspectRatio);\r\n width = (getWidth(rect) - width) / 2;\r\n height = (getHeight(rect) - height) / 2;\r\n rect.left += width;\r\n rect.right -= width;\r\n rect.top += height;\r\n rect.bottom -= height\r\n } else {\r\n rect.left = rect.right = (rect.left + rect.right) / 2;\r\n rect.top = rect.bottom = (rect.top + rect.bottom) / 2\r\n }\r\n }\r\n return rect\r\n}\r\nvar indicators = dxCircularGauge.prototype._factory.indicators = {};\r\ndxCircularGauge.prototype._factory.createIndicator = createIndicatorCreator(indicators);\r\nindicators._default = circularIndicators._default;\r\nindicators.rectangleneedle = circularIndicators.rectangleneedle;\r\nindicators.triangleneedle = circularIndicators.triangleneedle;\r\nindicators.twocolorneedle = circularIndicators.twocolorneedle;\r\nindicators.trianglemarker = circularIndicators.trianglemarker;\r\nindicators.textcloud = circularIndicators.textcloud;\r\nindicators.rangebar = circularIndicators.rangebar;\r\ndxCircularGauge.prototype._factory.RangeContainer = CircularRangeContainer;\r\nregisterComponent(\"dxCircularGauge\", dxCircularGauge);\r\ndxCircularGauge.addPlugin(centerTemplatePlugins.gauge);\r\nexport default dxCircularGauge;\r\n","/**\r\n * DevExtreme (esm/viz/gauges/bar_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PI_DIV_180 = Math.PI / 180;\r\nvar _abs = Math.abs;\r\nvar _round = Math.round;\r\nvar _floor = Math.floor;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n overlapping\r\n} from \"../../__internal/viz/chart_components/m_base_chart\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeEnum as _normalizeEnum,\r\n convertAngleToRendererSpace,\r\n getCosAndSin,\r\n patchFontOptions,\r\n getVerticallyShiftedAngularCoords,\r\n normalizeArcParams,\r\n normalizeAngle\r\n} from \"../core/utils\";\r\nimport {\r\n BaseGauge,\r\n getSampleText,\r\n formatValue,\r\n compareArrays\r\n} from \"./base_gauge\";\r\nimport dxCircularGauge from \"./circular_gauge\";\r\nimport {\r\n plugin as pluginLegend\r\n} from \"../components/legend\";\r\nimport {\r\n plugins as centerTemplatePlugins\r\n} from \"../core/center_template\";\r\nimport {\r\n roundFloatPart\r\n} from \"../../core/utils/math\";\r\nvar _getSampleText = getSampleText;\r\nvar _formatValue = formatValue;\r\nvar _compareArrays = compareArrays;\r\nvar _isArray = Array.isArray;\r\nvar _convertAngleToRendererSpace = convertAngleToRendererSpace;\r\nvar _getCosAndSin = getCosAndSin;\r\nvar _patchFontOptions = patchFontOptions;\r\nvar _Number = Number;\r\nvar _isFinite = isFinite;\r\nvar _noop = noop;\r\nvar _extend = extend;\r\nvar ARC_COORD_PREC = 5;\r\nvar OPTION_VALUES = \"values\";\r\nvar BarWrapper;\r\nexport var dxBarGauge = BaseGauge.inherit({\r\n _rootClass: \"dxbg-bar-gauge\",\r\n _themeSection: \"barGauge\",\r\n _fontFields: [\"label.font\", \"legend.font\", \"legend.title.font\", \"legend.title.subtitle.font\"],\r\n _initCore: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._barsGroup = that._renderer.g().attr({\r\n class: \"dxbg-bars\"\r\n }).linkOn(that._renderer.root, \"bars\");\r\n that._values = [];\r\n that._context = {\r\n renderer: that._renderer,\r\n translator: that._translator,\r\n tracker: that._tracker,\r\n group: that._barsGroup\r\n };\r\n that._animateStep = function(pos) {\r\n var bars = that._bars;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = bars.length; i < ii; ++i) {\r\n bars[i].animate(pos)\r\n }\r\n };\r\n that._animateComplete = function() {\r\n that._bars.forEach(bar => bar.endAnimation());\r\n that._checkOverlap()\r\n }\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n that._barsGroup.linkOff();\r\n that._barsGroup = that._values = that._context = that._animateStep = that._animateComplete = null;\r\n that.callBase.apply(that, arguments)\r\n },\r\n _setupDomainCore: function() {\r\n var startValue = this.option(\"startValue\");\r\n var endValue = this.option(\"endValue\");\r\n _isFinite(startValue) || (startValue = 0);\r\n _isFinite(endValue) || (endValue = 100);\r\n this._translator.setDomain(startValue, endValue);\r\n this._baseValue = this._translator.adjust(this.option(\"baseValue\"));\r\n _isFinite(this._baseValue) || (this._baseValue = startValue < endValue ? startValue : endValue)\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 300,\r\n height: 300\r\n }\r\n },\r\n _setupCodomain: dxCircularGauge.prototype._setupCodomain,\r\n _getApproximateScreenRange: function() {\r\n var sides = this._area.sides;\r\n var width = this._canvas.width / (sides.right - sides.left);\r\n var height = this._canvas.height / (sides.down - sides.up);\r\n var r = width < height ? width : height;\r\n return -this._translator.getCodomainRange() * r * PI_DIV_180\r\n },\r\n _setupAnimationSettings: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that._animationSettings) {\r\n that._animationSettings.step = that._animateStep;\r\n that._animationSettings.complete = that._animateComplete\r\n }\r\n },\r\n _cleanContent: function() {\r\n this._barsGroup.linkRemove();\r\n this._animationSettings && this._barsGroup.stopAnimation();\r\n this._barsGroup.clear()\r\n },\r\n _renderContent: function() {\r\n var labelOptions = this.option(\"label\");\r\n var text;\r\n var bBox;\r\n var context = this._context;\r\n this._barsGroup.linkAppend();\r\n context.textEnabled = void 0 === labelOptions || labelOptions && (!(\"visible\" in labelOptions) || labelOptions.visible);\r\n if (context.textEnabled) {\r\n context.textColor = labelOptions && labelOptions.font && labelOptions.font.color || null;\r\n labelOptions = _extend(true, {}, this._themeManager.theme().label, labelOptions);\r\n context.formatOptions = {\r\n format: void 0 !== labelOptions.format ? labelOptions.format : this._defaultFormatOptions,\r\n customizeText: labelOptions.customizeText\r\n };\r\n context.textOptions = {\r\n align: \"center\"\r\n };\r\n context.fontStyles = _patchFontOptions(_extend({}, this._themeManager.theme().label.font, labelOptions.font, {\r\n color: null\r\n }));\r\n this._textIndent = labelOptions.indent > 0 ? _Number(labelOptions.indent) : 0;\r\n context.lineWidth = labelOptions.connectorWidth > 0 ? _Number(labelOptions.connectorWidth) : 0;\r\n context.lineColor = labelOptions.connectorColor || null;\r\n text = this._renderer.text(_getSampleText(this._translator, context.formatOptions), 0, 0).attr(context.textOptions).css(context.fontStyles).append(this._barsGroup);\r\n bBox = text.getBBox();\r\n text.remove();\r\n context.textY = bBox.y;\r\n context.textWidth = bBox.width;\r\n context.textHeight = bBox.height\r\n }\r\n dxCircularGauge.prototype._applyMainLayout.call(this);\r\n this._renderBars()\r\n },\r\n _measureMainElements: function() {\r\n var result = {\r\n maxRadius: this._area.radius\r\n };\r\n if (this._context.textEnabled) {\r\n result.horizontalMargin = this._context.textWidth;\r\n result.verticalMargin = this._context.textHeight;\r\n result.inverseHorizontalMargin = this._context.textWidth / 2;\r\n result.inverseVerticalMargin = this._context.textHeight / 2\r\n }\r\n return result\r\n },\r\n _renderBars: function() {\r\n var options = _extend({}, this._themeManager.theme(), this.option());\r\n var radius;\r\n var area = this._area;\r\n var relativeInnerRadius = options.relativeInnerRadius > 0 && options.relativeInnerRadius < 1 ? _Number(options.relativeInnerRadius) : .1;\r\n radius = area.radius;\r\n if (this._context.textEnabled) {\r\n this._textIndent = _round(_min(this._textIndent, radius / 2));\r\n radius -= this._textIndent\r\n }\r\n this._outerRadius = _floor(radius);\r\n this._innerRadius = _floor(radius * relativeInnerRadius);\r\n this._barSpacing = options.barSpacing > 0 ? _Number(options.barSpacing) : 0;\r\n _extend(this._context, {\r\n backgroundColor: options.backgroundColor,\r\n x: area.x,\r\n y: area.y,\r\n startAngle: area.startCoord,\r\n endAngle: area.endCoord,\r\n baseAngle: this._translator.translate(this._baseValue)\r\n });\r\n this._arrangeBars()\r\n },\r\n _arrangeBars: function() {\r\n var radius = this._outerRadius - this._innerRadius;\r\n var context = this._context;\r\n var i;\r\n var count = this._bars.length;\r\n this._beginValueChanging();\r\n context.barSize = count > 0 ? _max((radius - (count - 1) * this._barSpacing) / count, 1) : 0;\r\n var spacing = count > 1 ? _max(_min((radius - count * context.barSize) / (count - 1), this._barSpacing), 0) : 0;\r\n var _count = _min(_floor((radius + spacing) / context.barSize), count);\r\n this._setBarsCount(count);\r\n radius = this._outerRadius;\r\n context.textRadius = radius;\r\n context.textIndent = this._textIndent;\r\n this._palette.reset();\r\n var unitOffset = context.barSize + spacing;\r\n var colors = this._palette.generateColors(_count);\r\n for (i = 0; i < _count; ++i, radius -= unitOffset) {\r\n this._bars[i].arrange({\r\n radius: radius,\r\n color: colors[i]\r\n })\r\n }\r\n for (var _i = _count; _i < count; _i++) {\r\n this._bars[_i].hide()\r\n }\r\n if (this._animationSettings && !this._noAnimation) {\r\n this._animateBars()\r\n } else {\r\n this._updateBars()\r\n }\r\n this._endValueChanging()\r\n },\r\n _setBarsCount: function() {\r\n if (this._bars.length > 0) {\r\n if (this._dummyBackground) {\r\n this._dummyBackground.dispose();\r\n this._dummyBackground = null\r\n }\r\n } else {\r\n if (!this._dummyBackground) {\r\n this._dummyBackground = this._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n }\r\n this._dummyBackground.attr({\r\n x: this._context.x,\r\n y: this._context.y,\r\n outerRadius: this._outerRadius,\r\n innerRadius: this._innerRadius,\r\n startAngle: this._context.endAngle,\r\n endAngle: this._context.startAngle,\r\n fill: this._context.backgroundColor\r\n }).append(this._barsGroup)\r\n }\r\n },\r\n _getCenter: function() {\r\n return {\r\n x: this._context.x,\r\n y: this._context.y\r\n }\r\n },\r\n _updateBars: function() {\r\n this._bars.forEach(bar => bar.applyValue());\r\n this._checkOverlap()\r\n },\r\n _checkOverlap: function() {\r\n var that = this;\r\n var overlapStrategy = _normalizeEnum(that._getOption(\"resolveLabelOverlapping\", true));\r\n\r\n function shiftFunction(box, length) {\r\n return getVerticallyShiftedAngularCoords(box, -length, that._context)\r\n }\r\n if (\"none\" === overlapStrategy) {\r\n return\r\n }\r\n if (\"shift\" === overlapStrategy) {\r\n var newBars = that._dividePoints();\r\n overlapping.resolveLabelOverlappingInOneDirection(newBars.left, that._canvas, false, false, shiftFunction);\r\n overlapping.resolveLabelOverlappingInOneDirection(newBars.right, that._canvas, false, false, shiftFunction);\r\n that._clearLabelsCrossTitle();\r\n that._drawConnector()\r\n } else {\r\n that._clearOverlappingLabels()\r\n }\r\n },\r\n _drawConnector() {\r\n var that = this;\r\n var bars = that._bars;\r\n var {\r\n connectorWidth: connectorWidth\r\n } = that._getOption(\"label\");\r\n bars.forEach(bar => {\r\n if (!bar._isLabelShifted) {\r\n return\r\n }\r\n var x = bar._bar.attr(\"x\");\r\n var y = bar._bar.attr(\"y\");\r\n var innerRadius = bar._bar.attr(\"innerRadius\");\r\n var outerRadius = bar._bar.attr(\"outerRadius\");\r\n var startAngle = bar._bar.attr(\"startAngle\");\r\n var endAngle = bar._bar.attr(\"endAngle\");\r\n var coordStart = getStartCoordsArc.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle));\r\n var {\r\n cos: cos,\r\n sin: sin\r\n } = _getCosAndSin(bar._angle);\r\n var xStart = coordStart.x - sin * connectorWidth / 2 - cos;\r\n var yStart = coordStart.y - cos * connectorWidth / 2 + sin;\r\n var box = bar._text.getBBox();\r\n var lastCoords = bar._text._lastCoords;\r\n var indentFromLabel = that._context.textWidth / 2;\r\n var originalXLabelCoord = box.x + box.width / 2 + lastCoords.x;\r\n var originalPoints = [xStart, yStart, originalXLabelCoord, box.y + lastCoords.y];\r\n if (bar._angle > 90) {\r\n originalPoints[2] += indentFromLabel\r\n } else {\r\n originalPoints[2] -= indentFromLabel\r\n }\r\n if (bar._angle <= 180 && bar._angle > 0) {\r\n originalPoints[3] += box.height\r\n }\r\n if (connectorWidth % 2) {\r\n var xDeviation = -sin / 2;\r\n var yDeviation = -cos / 2;\r\n if (bar._angle > 180) {\r\n originalPoints[0] -= xDeviation;\r\n originalPoints[1] -= yDeviation\r\n } else if (bar._angle > 0 && bar._angle <= 90) {\r\n originalPoints[0] += xDeviation;\r\n originalPoints[1] += yDeviation\r\n }\r\n }\r\n var points = originalPoints.map(coordinate => roundFloatPart(coordinate, 4));\r\n bar._line.attr({\r\n points: points\r\n });\r\n bar._line.rotate(0);\r\n bar._isLabelShifted = false\r\n })\r\n },\r\n _dividePoints() {\r\n var bars = this._bars;\r\n return bars.reduce((function(stackBars, bar) {\r\n var angle = normalizeAngle(bar._angle);\r\n var isRightSide = angle <= 90 || angle >= 270;\r\n bar._text._lastCoords = {\r\n x: 0,\r\n y: 0\r\n };\r\n var barToExtend = isRightSide ? stackBars.right : stackBars.left;\r\n barToExtend.push({\r\n series: {\r\n isStackedSeries: () => false,\r\n isFullStackedSeries: () => false\r\n },\r\n getLabels: () => [{\r\n isVisible: () => true,\r\n getBoundingRect: () => {\r\n var {\r\n height: height,\r\n width: width,\r\n x: x,\r\n y: y\r\n } = bar._text.getBBox();\r\n var lastCoords = bar._text._lastCoords;\r\n return {\r\n x: x + lastCoords.x,\r\n y: y + lastCoords.y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n shift: (x, y) => {\r\n var box = bar._text.getBBox();\r\n bar._text._lastCoords = {\r\n x: x - box.x,\r\n y: y - box.y\r\n };\r\n bar._text.attr({\r\n translateX: x - box.x,\r\n translateY: y - box.y\r\n });\r\n bar._isLabelShifted = true\r\n },\r\n draw: () => bar.hideLabel(),\r\n getData: () => ({\r\n value: bar.getValue()\r\n }),\r\n hideInsideLabel: () => false\r\n }]\r\n });\r\n return stackBars\r\n }), {\r\n left: [],\r\n right: []\r\n })\r\n },\r\n _clearOverlappingLabels() {\r\n var bars = this._bars;\r\n var currentIndex = 0;\r\n var nextIndex = 1;\r\n var sortedBars = bars.concat().sort((a, b) => a.getValue() - b.getValue());\r\n while (currentIndex < sortedBars.length && nextIndex < sortedBars.length) {\r\n var current = sortedBars[currentIndex];\r\n var next = sortedBars[nextIndex];\r\n if (current.checkIntersect(next)) {\r\n next.hideLabel();\r\n nextIndex++\r\n } else {\r\n currentIndex = nextIndex;\r\n nextIndex = currentIndex + 1\r\n }\r\n }\r\n },\r\n _clearLabelsCrossTitle() {\r\n var bars = this._bars;\r\n var titleCoords = this._title.getLayoutOptions() || {\r\n x: 0,\r\n y: 0,\r\n height: 0,\r\n width: 0\r\n };\r\n var minY = titleCoords.y + titleCoords.height;\r\n bars.forEach(bar => {\r\n var box = bar._text.getBBox();\r\n var lastCoords = bar._text._lastCoords;\r\n if (minY > box.y + lastCoords.y) {\r\n bar.hideLabel()\r\n }\r\n })\r\n },\r\n _animateBars: function() {\r\n var i;\r\n var ii = this._bars.length;\r\n if (ii > 0) {\r\n for (i = 0; i < ii; ++i) {\r\n this._bars[i].beginAnimation()\r\n }\r\n this._barsGroup.animate({\r\n _: 0\r\n }, this._animationSettings)\r\n }\r\n },\r\n _buildNodes() {\r\n var that = this;\r\n var options = that._options.silent();\r\n that._palette = that._themeManager.createPalette(options.palette, {\r\n useHighlight: true,\r\n extensionMode: options.paletteExtensionMode\r\n });\r\n that._palette.reset();\r\n that._bars = that._bars || [];\r\n that._animationSettings && that._barsGroup.stopAnimation();\r\n var barValues = that._values.filter(_isFinite);\r\n var count = barValues.length;\r\n if (that._bars.length > count) {\r\n var ii = that._bars.length;\r\n for (var i = count; i < ii; ++i) {\r\n that._bars[i].dispose()\r\n }\r\n that._bars.splice(count, ii - count)\r\n } else if (that._bars.length < count) {\r\n for (var _i2 = that._bars.length; _i2 < count; ++_i2) {\r\n that._bars.push(new BarWrapper(_i2, that._context))\r\n }\r\n }\r\n that._bars.forEach((bar, index) => {\r\n bar.update({\r\n color: that._palette.getNextColor(count),\r\n value: barValues[index]\r\n })\r\n })\r\n },\r\n _updateValues: function(values) {\r\n var list = _isArray(values) && values || _isFinite(values) && [values] || [];\r\n var i;\r\n var ii = list.length;\r\n var value;\r\n this._values.length = ii;\r\n for (i = 0; i < ii; ++i) {\r\n value = list[i];\r\n this._values[i] = _Number(_isFinite(value) ? value : this._values[i])\r\n }\r\n if (!this._resizing) {\r\n if (!_compareArrays(this._values, this.option(OPTION_VALUES))) {\r\n this.option(OPTION_VALUES, this._values.slice())\r\n }\r\n }\r\n this._change([\"NODES\"])\r\n },\r\n values: function(arg) {\r\n if (void 0 !== arg) {\r\n this._updateValues(arg);\r\n return this\r\n } else {\r\n return this._values.slice(0)\r\n }\r\n },\r\n _optionChangesMap: {\r\n backgroundColor: \"MOSTLY_TOTAL\",\r\n relativeInnerRadius: \"MOSTLY_TOTAL\",\r\n barSpacing: \"MOSTLY_TOTAL\",\r\n label: \"MOSTLY_TOTAL\",\r\n resolveLabelOverlapping: \"MOSTLY_TOTAL\",\r\n palette: \"MOSTLY_TOTAL\",\r\n paletteExtensionMode: \"MOSTLY_TOTAL\",\r\n values: \"VALUES\"\r\n },\r\n _change_VALUES: function() {\r\n this._updateValues(this.option(OPTION_VALUES))\r\n },\r\n _factory: clone(BaseGauge.prototype._factory),\r\n _optionChangesOrder: [\"VALUES\", \"NODES\"],\r\n _initialChanges: [\"VALUES\"],\r\n _change_NODES() {\r\n this._buildNodes()\r\n },\r\n _change_MOSTLY_TOTAL: function() {\r\n this._change([\"NODES\"]);\r\n this.callBase()\r\n },\r\n _proxyData: [],\r\n _getLegendData() {\r\n var formatOptions = {};\r\n var options = this._options.silent();\r\n var labelFormatOptions = (options.label || {}).format;\r\n var legendFormatOptions = (options.legend || {}).itemTextFormat;\r\n if (legendFormatOptions) {\r\n formatOptions.format = legendFormatOptions\r\n } else {\r\n formatOptions.format = labelFormatOptions || this._defaultFormatOptions\r\n }\r\n return (this._bars || []).map(b => ({\r\n id: b.index,\r\n item: {\r\n value: b.getValue(),\r\n color: b.getColor(),\r\n index: b.index\r\n },\r\n text: _formatValue(b.getValue(), formatOptions),\r\n visible: true,\r\n states: {\r\n normal: {\r\n fill: b.getColor()\r\n }\r\n }\r\n }))\r\n }\r\n});\r\nBarWrapper = function(index, context) {\r\n this._context = context;\r\n this._tracker = context.renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n });\r\n this.index = index\r\n};\r\n_extend(BarWrapper.prototype, {\r\n dispose: function() {\r\n this._background.dispose();\r\n this._bar.dispose();\r\n if (this._context.textEnabled) {\r\n this._line.dispose();\r\n this._text.dispose()\r\n }\r\n this._context.tracker.detach(this._tracker);\r\n this._context = this._settings = this._background = this._bar = this._line = this._text = this._tracker = null;\r\n return this\r\n },\r\n arrange: function(options) {\r\n var context = this._context;\r\n this._visible = true;\r\n context.tracker.attach(this._tracker, this, {\r\n index: this.index\r\n });\r\n this._background = context.renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\",\r\n fill: context.backgroundColor\r\n }).append(context.group);\r\n this._settings = this._settings || {\r\n x: context.x,\r\n y: context.y,\r\n startAngle: context.baseAngle,\r\n endAngle: context.baseAngle\r\n };\r\n this._bar = context.renderer.arc().attr(_extend({\r\n \"stroke-linejoin\": \"round\"\r\n }, this._settings)).append(context.group);\r\n if (context.textEnabled) {\r\n this._line = context.renderer.path([], \"line\").attr({\r\n \"stroke-width\": context.lineWidth\r\n }).append(context.group);\r\n this._text = context.renderer.text().css(context.fontStyles).attr(context.textOptions).append(context.group)\r\n }\r\n this._angle = isFinite(this._angle) ? this._angle : context.baseAngle;\r\n this._settings.outerRadius = options.radius;\r\n this._settings.innerRadius = options.radius - context.barSize;\r\n this._settings.x = context.x;\r\n this._settings.y = context.y;\r\n this._background.attr(_extend({}, this._settings, {\r\n startAngle: context.endAngle,\r\n endAngle: context.startAngle,\r\n fill: this._context.backgroundColor\r\n }));\r\n this._bar.attr({\r\n x: context.x,\r\n y: context.y,\r\n outerRadius: this._settings.outerRadius,\r\n innerRadius: this._settings.innerRadius,\r\n fill: this._color\r\n });\r\n this._tracker.attr(this._settings);\r\n if (context.textEnabled) {\r\n this._line.attr({\r\n points: [context.x, context.y - this._settings.innerRadius, context.x, context.y - context.textRadius - context.textIndent],\r\n stroke: context.lineColor || this._color\r\n }).sharp();\r\n this._text.css({\r\n fill: context.textColor || this._color\r\n })\r\n }\r\n return this\r\n },\r\n getTooltipParameters: function() {\r\n var cosSin = _getCosAndSin((this._angle + this._context.baseAngle) / 2);\r\n return {\r\n x: _round(this._context.x + (this._settings.outerRadius + this._settings.innerRadius) / 2 * cosSin.cos),\r\n y: _round(this._context.y - (this._settings.outerRadius + this._settings.innerRadius) / 2 * cosSin.sin),\r\n offset: 0,\r\n color: this._color,\r\n value: this._value\r\n }\r\n },\r\n setAngle: function(angle) {\r\n var context = this._context;\r\n var settings = this._settings;\r\n var cosSin;\r\n this._angle = angle;\r\n setAngles(settings, context.baseAngle, angle);\r\n this._bar.attr(settings);\r\n this._tracker.attr(settings);\r\n if (context.textEnabled) {\r\n cosSin = _getCosAndSin(angle);\r\n var indent = context.textIndent;\r\n var radius = context.textRadius + indent;\r\n var x = context.x + radius * cosSin.cos;\r\n var y = context.y - radius * cosSin.sin;\r\n var halfWidth = .5 * context.textWidth;\r\n var textHeight = context.textHeight;\r\n var textY = context.textY;\r\n if (_abs(x - context.x) > indent) {\r\n x += x < context.x ? -halfWidth : halfWidth\r\n }\r\n if (_abs(y - context.y) <= indent) {\r\n y -= textY + .5 * textHeight\r\n } else {\r\n y -= y < context.y ? textY + textHeight : textY\r\n }\r\n var text = _formatValue(this._value, context.formatOptions, {\r\n index: this.index\r\n });\r\n var visibility = \"\" === text ? \"hidden\" : null;\r\n this._text.attr({\r\n text: text,\r\n x: x,\r\n y: y,\r\n visibility: visibility\r\n });\r\n this._line.attr({\r\n visibility: visibility\r\n });\r\n this._line.rotate(_convertAngleToRendererSpace(angle), context.x, context.y)\r\n }\r\n return this\r\n },\r\n hideLabel: function() {\r\n this._text.attr({\r\n visibility: \"hidden\"\r\n });\r\n this._line.attr({\r\n visibility: \"hidden\"\r\n })\r\n },\r\n checkIntersect: function(anotherBar) {\r\n var coords = this.calculateLabelCoords();\r\n var anotherCoords = anotherBar.calculateLabelCoords();\r\n if (!coords || !anotherCoords) {\r\n return false\r\n }\r\n var width = Math.max(0, Math.min(coords.bottomRight.x, anotherCoords.bottomRight.x) - Math.max(coords.topLeft.x, anotherCoords.topLeft.x));\r\n var height = Math.max(0, Math.min(coords.bottomRight.y, anotherCoords.bottomRight.y) - Math.max(coords.topLeft.y, anotherCoords.topLeft.y));\r\n return width * height !== 0\r\n },\r\n calculateLabelCoords: function() {\r\n if (!this._text) {\r\n return\r\n }\r\n var box = this._text.getBBox();\r\n return {\r\n topLeft: {\r\n x: box.x,\r\n y: box.y\r\n },\r\n bottomRight: {\r\n x: box.x + box.width,\r\n y: box.y + box.height\r\n }\r\n }\r\n },\r\n _processValue: function(value) {\r\n return this._context.translator.translate(this._context.translator.adjust(value))\r\n },\r\n applyValue() {\r\n if (!this._visible) {\r\n return this\r\n }\r\n return this.setAngle(this._processValue(this.getValue()))\r\n },\r\n update(_ref) {\r\n var {\r\n color: color,\r\n value: value\r\n } = _ref;\r\n this._color = color;\r\n this._value = value\r\n },\r\n hide() {\r\n this._visible = false\r\n },\r\n getColor() {\r\n return this._color\r\n },\r\n getValue() {\r\n return this._value\r\n },\r\n beginAnimation: function() {\r\n if (!this._visible) {\r\n return this\r\n }\r\n var angle = this._processValue(this.getValue());\r\n if (!compareFloats(this._angle, angle)) {\r\n this._start = this._angle;\r\n this._delta = angle - this._angle;\r\n this._tracker.attr({\r\n visibility: \"hidden\"\r\n });\r\n if (this._context.textEnabled) {\r\n this._line.attr({\r\n visibility: \"hidden\"\r\n });\r\n this._text.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n } else {\r\n this.animate = _noop;\r\n this.setAngle(this._angle)\r\n }\r\n },\r\n animate: function(pos) {\r\n if (!this._visible) {\r\n return this\r\n }\r\n this._angle = this._start + this._delta * pos;\r\n setAngles(this._settings, this._context.baseAngle, this._angle);\r\n this._bar.attr(this._settings)\r\n },\r\n endAnimation: function() {\r\n if (void 0 !== this._delta) {\r\n if (compareFloats(this._angle, this._start + this._delta)) {\r\n this._tracker.attr({\r\n visibility: null\r\n });\r\n this.setAngle(this._angle)\r\n }\r\n } else {\r\n delete this.animate\r\n }\r\n delete this._start;\r\n delete this._delta\r\n }\r\n});\r\n\r\nfunction setAngles(target, angle1, angle2) {\r\n target.startAngle = angle1 < angle2 ? angle1 : angle2;\r\n target.endAngle = angle1 < angle2 ? angle2 : angle1\r\n}\r\n\r\nfunction compareFloats(value1, value2) {\r\n return _abs(value1 - value2) < 1e-4\r\n}\r\n\r\nfunction getStartCoordsArc(x, y, innerR, outerR, startAngleCos, startAngleSin) {\r\n return {\r\n x: (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC),\r\n y: (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC)\r\n }\r\n}\r\nregisterComponent(\"dxBarGauge\", dxBarGauge);\r\ndxBarGauge.addPlugin(pluginLegend);\r\ndxBarGauge.addPlugin(centerTemplatePlugins.gauge);\r\n","/**\r\n * DevExtreme (esm/viz/bar_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dxBarGauge\r\n} from \"./gauges/bar_gauge\";\r\nexport default dxBarGauge;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxBarGauge from 'devextreme/viz/bar_gauge';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoExportModule, DxoGeometryModule, DxoLabelModule, DxoFontModule, DxoFormatModule, DxoLegendModule, DxoBorderModule, DxoItemTextFormatModule, DxoMarginModule, DxoTitleModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxoSizeModule, DxoTooltipModule, DxoShadowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxBarGauge]\r\n\r\n */\r\nclass DxBarGaugeComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'animationChange' },\r\n { emit: 'backgroundColorChange' },\r\n { emit: 'barSpacingChange' },\r\n { emit: 'baseValueChange' },\r\n { emit: 'centerTemplateChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endValueChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'geometryChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'legendChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'relativeInnerRadiusChange' },\r\n { emit: 'resolveLabelOverlappingChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'startValueChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valuesChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.backgroundColor]\r\n \r\n */\r\n get backgroundColor() {\r\n return this._getOption('backgroundColor');\r\n }\r\n set backgroundColor(value) {\r\n this._setOption('backgroundColor', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.barSpacing]\r\n \r\n */\r\n get barSpacing() {\r\n return this._getOption('barSpacing');\r\n }\r\n set barSpacing(value) {\r\n this._setOption('barSpacing', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.baseValue]\r\n \r\n */\r\n get baseValue() {\r\n return this._getOption('baseValue');\r\n }\r\n set baseValue(value) {\r\n this._setOption('baseValue', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.centerTemplate]\r\n \r\n */\r\n get centerTemplate() {\r\n return this._getOption('centerTemplate');\r\n }\r\n set centerTemplate(value) {\r\n this._setOption('centerTemplate', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.endValue]\r\n \r\n */\r\n get endValue() {\r\n return this._getOption('endValue');\r\n }\r\n set endValue(value) {\r\n this._setOption('endValue', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.geometry]\r\n \r\n */\r\n get geometry() {\r\n return this._getOption('geometry');\r\n }\r\n set geometry(value) {\r\n this._setOption('geometry', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.legend]\r\n \r\n */\r\n get legend() {\r\n return this._getOption('legend');\r\n }\r\n set legend(value) {\r\n this._setOption('legend', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.relativeInnerRadius]\r\n \r\n */\r\n get relativeInnerRadius() {\r\n return this._getOption('relativeInnerRadius');\r\n }\r\n set relativeInnerRadius(value) {\r\n this._setOption('relativeInnerRadius', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.resolveLabelOverlapping]\r\n \r\n */\r\n get resolveLabelOverlapping() {\r\n return this._getOption('resolveLabelOverlapping');\r\n }\r\n set resolveLabelOverlapping(value) {\r\n this._setOption('resolveLabelOverlapping', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.startValue]\r\n \r\n */\r\n get startValue() {\r\n return this._getOption('startValue');\r\n }\r\n set startValue(value) {\r\n this._setOption('startValue', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxBarGaugeOptions.values]\r\n \r\n */\r\n get values() {\r\n return this._getOption('values');\r\n }\r\n set values(value) {\r\n this._setOption('values', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxBarGauge(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('palette', changes);\r\n this.setupChanges('values', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('palette');\r\n this._idh.doCheck('values');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxBarGaugeComponent.ɵfac = function DxBarGaugeComponent_Factory(t) { return new (t || DxBarGaugeComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxBarGaugeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxBarGaugeComponent, selectors: [[\"dx-bar-gauge\"]], inputs: { animation: \"animation\", backgroundColor: \"backgroundColor\", barSpacing: \"barSpacing\", baseValue: \"baseValue\", centerTemplate: \"centerTemplate\", disabled: \"disabled\", elementAttr: \"elementAttr\", endValue: \"endValue\", export: \"export\", geometry: \"geometry\", label: \"label\", legend: \"legend\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", pathModified: \"pathModified\", redrawOnResize: \"redrawOnResize\", relativeInnerRadius: \"relativeInnerRadius\", resolveLabelOverlapping: \"resolveLabelOverlapping\", rtlEnabled: \"rtlEnabled\", size: \"size\", startValue: \"startValue\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", values: \"values\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", animationChange: \"animationChange\", backgroundColorChange: \"backgroundColorChange\", barSpacingChange: \"barSpacingChange\", baseValueChange: \"baseValueChange\", centerTemplateChange: \"centerTemplateChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", endValueChange: \"endValueChange\", exportChange: \"exportChange\", geometryChange: \"geometryChange\", labelChange: \"labelChange\", legendChange: \"legendChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", pathModifiedChange: \"pathModifiedChange\", redrawOnResizeChange: \"redrawOnResizeChange\", relativeInnerRadiusChange: \"relativeInnerRadiusChange\", resolveLabelOverlappingChange: \"resolveLabelOverlappingChange\", rtlEnabledChange: \"rtlEnabledChange\", sizeChange: \"sizeChange\", startValueChange: \"startValueChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valuesChange: \"valuesChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxBarGaugeComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBarGaugeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-bar-gauge',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], backgroundColor: [{\r\n type: Input\r\n }], barSpacing: [{\r\n type: Input\r\n }], baseValue: [{\r\n type: Input\r\n }], centerTemplate: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], endValue: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], geometry: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], legend: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], relativeInnerRadius: [{\r\n type: Input\r\n }], resolveLabelOverlapping: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], startValue: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], values: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], backgroundColorChange: [{\r\n type: Output\r\n }], barSpacingChange: [{\r\n type: Output\r\n }], baseValueChange: [{\r\n type: Output\r\n }], centerTemplateChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endValueChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], geometryChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], legendChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], relativeInnerRadiusChange: [{\r\n type: Output\r\n }], resolveLabelOverlappingChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], startValueChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valuesChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxBarGaugeModule {\r\n}\r\n/** @nocollapse */ DxBarGaugeModule.ɵfac = function DxBarGaugeModule_Factory(t) { return new (t || DxBarGaugeModule)(); };\r\n/** @nocollapse */ DxBarGaugeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxBarGaugeModule });\r\n/** @nocollapse */ DxBarGaugeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBarGaugeModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxBarGaugeComponent\r\n ],\r\n exports: [\r\n DxBarGaugeComponent,\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxBarGaugeModule, { declarations: [DxBarGaugeComponent], imports: [DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxBarGaugeComponent, DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoBorderModule,\r\n DxoItemTextFormatModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxBarGaugeComponent, DxBarGaugeModule };\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix,\r\n setStyle\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_FLEX_CLASS = \"dx-box-flex\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar SHRINK = 1;\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n setStyle(element, styleExpr, false)\r\n }\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass LayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(BOX_FLEX_CLASS);\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = new LayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements())\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxBox from 'devextreme/ui/box';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule, DxoBoxModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxBox]\r\n\r\n */\r\nclass DxBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'alignChange' },\r\n { emit: 'crossAlignChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'directionChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxBoxOptions.align]\r\n \r\n */\r\n get align() {\r\n return this._getOption('align');\r\n }\r\n set align(value) {\r\n this._setOption('align', value);\r\n }\r\n /**\r\n * [descr:dxBoxOptions.crossAlign]\r\n \r\n */\r\n get crossAlign() {\r\n return this._getOption('crossAlign');\r\n }\r\n set crossAlign(value) {\r\n this._setOption('crossAlign', value);\r\n }\r\n /**\r\n * [descr:dxBoxOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxBoxOptions.direction]\r\n \r\n */\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxBoxOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxBox(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxBoxComponent.ɵfac = function DxBoxComponent_Factory(t) { return new (t || DxBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxBoxComponent, selectors: [[\"dx-box\"]], contentQueries: function DxBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { align: \"align\", crossAlign: \"crossAlign\", dataSource: \"dataSource\", direction: \"direction\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", rtlEnabled: \"rtlEnabled\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", alignChange: \"alignChange\", crossAlignChange: \"crossAlignChange\", dataSourceChange: \"dataSourceChange\", directionChange: \"directionChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", rtlEnabledChange: \"rtlEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { align: [{\r\n type: Input\r\n }], crossAlign: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], direction: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], alignChange: [{\r\n type: Output\r\n }], crossAlignChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], directionChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxBoxModule {\r\n}\r\n/** @nocollapse */ DxBoxModule.ɵfac = function DxBoxModule_Factory(t) { return new (t || DxBoxModule)(); };\r\n/** @nocollapse */ DxBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxBoxModule });\r\n/** @nocollapse */ DxBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxoBoxModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxoBoxModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxoBoxModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxBoxComponent\r\n ],\r\n exports: [\r\n DxBoxComponent,\r\n DxiItemModule,\r\n DxoBoxModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxBoxModule, { declarations: [DxBoxComponent], imports: [DxiItemModule,\r\n DxoBoxModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxBoxComponent, DxiItemModule,\r\n DxoBoxModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxBoxComponent, DxBoxModule };\n","/**\r\n * DevExtreme (esm/viz/sparklines/base_sparkline.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport BaseWidget from \"../../__internal/viz/core/m_base_widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n pointInCanvas\r\n} from \"../core/utils\";\r\nimport $ from \"../../core/renderer\";\r\nvar DEFAULT_LINE_SPACING = 2;\r\nvar TOOLTIP_TABLE_BORDER_SPACING = 0;\r\nvar TOOLTIP_TABLE_KEY_VALUE_SPACE = 15;\r\nvar EVENT_NS = \"sparkline-tooltip\";\r\nvar POINTER_ACTION = addNamespace([pointerEvents.down, pointerEvents.move], EVENT_NS);\r\nimport {\r\n Translator2D\r\n} from \"../translators/translator2d\";\r\nvar _extend = extend;\r\nvar _floor = Math.floor;\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\n\r\nfunction inCanvas(_ref, x, y) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref;\r\n return pointInCanvas({\r\n left: 0,\r\n top: 0,\r\n right: width,\r\n bottom: height,\r\n width: width,\r\n height: height\r\n }, x, y)\r\n}\r\n\r\nfunction pointerHandler(_ref2) {\r\n var {\r\n data: data\r\n } = _ref2;\r\n var that = data.widget;\r\n that._enableOutHandler();\r\n that._showTooltip()\r\n}\r\n\r\nfunction getDefaultTemplate(_ref3, textAlign) {\r\n var {\r\n lineSpacing: lineSpacing,\r\n size: size\r\n } = _ref3;\r\n var lineHeight = \"\".concat((null !== lineSpacing && void 0 !== lineSpacing ? lineSpacing : DEFAULT_LINE_SPACING) + size, \"px\");\r\n return function(_ref4, container) {\r\n var {\r\n valueText: valueText\r\n } = _ref4;\r\n var table = $(\"<table>\").css({\r\n borderSpacing: TOOLTIP_TABLE_BORDER_SPACING,\r\n lineHeight: lineHeight\r\n });\r\n for (var i = 0; i < valueText.length; i += 2) {\r\n var tr = $(\"<tr>\");\r\n $(\"<td>\").text(valueText[i]).appendTo(tr);\r\n $(\"<td>\").css({\r\n width: TOOLTIP_TABLE_KEY_VALUE_SPACE\r\n }).appendTo(tr);\r\n $(\"<td>\").css({\r\n textAlign: textAlign\r\n }).text(valueText[i + 1]).appendTo(tr);\r\n table.append(tr)\r\n }\r\n container.append(table)\r\n }\r\n}\r\n\r\nfunction createAxis(isHorizontal) {\r\n var translator = new Translator2D({}, {}, {\r\n shiftZeroValue: !isHorizontal,\r\n isHorizontal: !!isHorizontal\r\n });\r\n return {\r\n getTranslator: function() {\r\n return translator\r\n },\r\n update: function(range, canvas, options) {\r\n translator.update(range, canvas, options)\r\n },\r\n getVisibleArea() {\r\n var visibleArea = translator.getCanvasVisibleArea();\r\n return [visibleArea.min, visibleArea.max]\r\n },\r\n visualRange: _noop,\r\n calculateInterval: _noop,\r\n getMarginOptions: () => ({}),\r\n aggregatedPointBetweenTicks: () => false\r\n }\r\n}\r\nvar _initTooltip;\r\nvar BaseSparkline = BaseWidget.inherit({\r\n _getLayoutItems: _noop,\r\n _useLinks: false,\r\n _themeDependentChanges: [\"OPTIONS\"],\r\n _initCore: function() {\r\n this._tooltipTracker = this._renderer.root;\r\n this._tooltipTracker.attr({\r\n \"pointer-events\": \"visible\"\r\n });\r\n this._createHtmlElements();\r\n this._initTooltipEvents();\r\n this._argumentAxis = createAxis(true);\r\n this._valueAxis = createAxis()\r\n },\r\n _getDefaultSize: function() {\r\n return this._defaultSize\r\n },\r\n _disposeCore: function() {\r\n this._disposeWidgetElements();\r\n this._disposeTooltipEvents();\r\n this._ranges = null\r\n },\r\n _optionChangesOrder: [\"OPTIONS\"],\r\n _change_OPTIONS: function() {\r\n this._prepareOptions();\r\n this._change([\"UPDATE\"])\r\n },\r\n _customChangesOrder: [\"UPDATE\"],\r\n _change_UPDATE: function() {\r\n this._update()\r\n },\r\n _update: function() {\r\n if (this._tooltipShown) {\r\n this._tooltipShown = false;\r\n this._tooltip.hide()\r\n }\r\n this._cleanWidgetElements();\r\n this._updateWidgetElements();\r\n this._drawWidgetElements()\r\n },\r\n _updateWidgetElements: function() {\r\n var canvas = this._getCorrectCanvas();\r\n this._updateRange();\r\n this._argumentAxis.update(this._ranges.arg, canvas, this._getStick());\r\n this._valueAxis.update(this._ranges.val, canvas)\r\n },\r\n _getStick: function() {},\r\n _applySize: function(rect) {\r\n this._allOptions.size = {\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n this._change([\"UPDATE\"])\r\n },\r\n _setupResizeHandler: _noop,\r\n _prepareOptions: function() {\r\n return _extend(true, {}, this._themeManager.theme(), this.option())\r\n },\r\n _getTooltipCoords: function() {\r\n var canvas = this._canvas;\r\n var rootOffset = this._renderer.getRootOffset();\r\n return {\r\n x: canvas.width / 2 + rootOffset.left,\r\n y: canvas.height / 2 + rootOffset.top\r\n }\r\n },\r\n _initTooltipEvents() {\r\n var data = {\r\n widget: this\r\n };\r\n this._renderer.root.off(\".\" + EVENT_NS).on(POINTER_ACTION, data, pointerHandler)\r\n },\r\n _showTooltip() {\r\n var tooltip;\r\n if (!this._tooltipShown) {\r\n this._tooltipShown = true;\r\n tooltip = this._getTooltip();\r\n tooltip.isEnabled() && this._tooltip.show(this._getTooltipData(), this._getTooltipCoords(), {})\r\n }\r\n },\r\n _hideTooltip() {\r\n if (this._tooltipShown) {\r\n this._tooltipShown = false;\r\n this._tooltip.hide()\r\n }\r\n },\r\n _stopCurrentHandling() {\r\n this._hideTooltip()\r\n },\r\n _enableOutHandler() {\r\n var that = this;\r\n if (that._outHandler) {\r\n return\r\n }\r\n var handler = _ref5 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY\r\n } = _ref5;\r\n var {\r\n left: left,\r\n top: top\r\n } = that._renderer.getRootOffset();\r\n var x = _floor(pageX - left);\r\n var y = _floor(pageY - top);\r\n if (!inCanvas(that._canvas, x, y)) {\r\n that._hideTooltip();\r\n that._disableOutHandler()\r\n }\r\n };\r\n eventsEngine.on(domAdapter.getDocument(), POINTER_ACTION, handler);\r\n this._outHandler = handler\r\n },\r\n _disableOutHandler() {\r\n this._outHandler && eventsEngine.off(domAdapter.getDocument(), POINTER_ACTION, this._outHandler);\r\n this._outHandler = null\r\n },\r\n _disposeTooltipEvents: function() {\r\n this._tooltipTracker.off();\r\n this._disableOutHandler();\r\n this._renderer.root.off(\".\" + EVENT_NS)\r\n },\r\n _getTooltip: function() {\r\n var that = this;\r\n if (!that._tooltip) {\r\n _initTooltip.apply(this, arguments);\r\n that._setTooltipRendererOptions(that._tooltipRendererOptions);\r\n that._tooltipRendererOptions = null;\r\n that._setTooltipOptions()\r\n }\r\n return that._tooltip\r\n }\r\n});\r\nexport default BaseSparkline;\r\nimport {\r\n plugin as tooltipPlugin\r\n} from \"../core/tooltip\";\r\nBaseSparkline.addPlugin(tooltipPlugin);\r\n_initTooltip = BaseSparkline.prototype._initTooltip;\r\nBaseSparkline.prototype._initTooltip = _noop;\r\nvar _disposeTooltip = BaseSparkline.prototype._disposeTooltip;\r\nBaseSparkline.prototype._disposeTooltip = function() {\r\n if (this._tooltip) {\r\n _disposeTooltip.apply(this, arguments)\r\n }\r\n};\r\nBaseSparkline.prototype._setTooltipRendererOptions = function() {\r\n var options = this._getRendererOptions();\r\n if (this._tooltip) {\r\n this._tooltip.setRendererOptions(options)\r\n } else {\r\n this._tooltipRendererOptions = options\r\n }\r\n};\r\nBaseSparkline.prototype._setTooltipOptions = function() {\r\n if (this._tooltip) {\r\n var options = this._getOption(\"tooltip\");\r\n var defaultContentTemplate = this._getDefaultTooltipTemplate(options);\r\n var contentTemplateOptions = defaultContentTemplate ? {\r\n contentTemplate: defaultContentTemplate\r\n } : {};\r\n var optionsToUpdate = _extend(contentTemplateOptions, options, {\r\n enabled: options.enabled && this._isTooltipEnabled()\r\n });\r\n this._tooltip.update(optionsToUpdate)\r\n }\r\n};\r\nBaseSparkline.prototype._getDefaultTooltipTemplate = function(options) {\r\n var defaultTemplateNeeded = true;\r\n var textAlign = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n if (isFunction(options.customizeTooltip)) {\r\n var _options$customizeToo;\r\n this._tooltip.update(options);\r\n var formatObject = this._getTooltipData();\r\n var customizeResult = null !== (_options$customizeToo = options.customizeTooltip.call(formatObject, formatObject)) && void 0 !== _options$customizeToo ? _options$customizeToo : {};\r\n defaultTemplateNeeded = !(\"html\" in customizeResult) && !(\"text\" in customizeResult)\r\n }\r\n return defaultTemplateNeeded && getDefaultTemplate(options.font, textAlign)\r\n};\r\nimport {\r\n plugin\r\n} from \"../core/export\";\r\nvar exportPlugin = extend(true, {}, plugin, {\r\n init: _noop,\r\n dispose: _noop,\r\n customize: null,\r\n members: {\r\n _getExportMenuOptions: null\r\n }\r\n});\r\nBaseSparkline.addPlugin(exportPlugin);\r\n","/**\r\n * DevExtreme (esm/viz/sparklines/bullet.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseSparkline from \"./base_sparkline\";\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\nvar TARGET_MIN_Y = .02;\r\nvar TARGET_MAX_Y = .98;\r\nvar BAR_VALUE_MIN_Y = .1;\r\nvar BAR_VALUE_MAX_Y = .9;\r\nvar DEFAULT_CANVAS_WIDTH = 300;\r\nvar DEFAULT_CANVAS_HEIGHT = 30;\r\nvar DEFAULT_HORIZONTAL_MARGIN = 1;\r\nvar DEFAULT_VERTICAL_MARGIN = 2;\r\nvar _Number = Number;\r\nvar _isFinite = isFinite;\r\nvar dxBullet = BaseSparkline.inherit({\r\n _rootClassPrefix: \"dxb\",\r\n _rootClass: \"dxb-bullet\",\r\n _themeSection: \"bullet\",\r\n _defaultSize: {\r\n width: DEFAULT_CANVAS_WIDTH,\r\n height: DEFAULT_CANVAS_HEIGHT,\r\n left: DEFAULT_HORIZONTAL_MARGIN,\r\n right: DEFAULT_HORIZONTAL_MARGIN,\r\n top: DEFAULT_VERTICAL_MARGIN,\r\n bottom: DEFAULT_VERTICAL_MARGIN\r\n },\r\n _disposeWidgetElements: function() {\r\n delete this._zeroLevelPath;\r\n delete this._targetPath;\r\n delete this._barValuePath\r\n },\r\n _cleanWidgetElements: function() {\r\n this._zeroLevelPath.remove();\r\n this._targetPath.remove();\r\n this._barValuePath.remove()\r\n },\r\n _drawWidgetElements: function() {\r\n this._drawBullet();\r\n this._drawn()\r\n },\r\n _createHtmlElements: function() {\r\n var renderer = this._renderer;\r\n this._zeroLevelPath = renderer.path(void 0, \"line\").attr({\r\n class: \"dxb-zero-level\",\r\n \"stroke-linecap\": \"square\"\r\n });\r\n this._targetPath = renderer.path(void 0, \"line\").attr({\r\n class: \"dxb-target\",\r\n \"stroke-linecap\": \"square\"\r\n });\r\n this._barValuePath = renderer.path(void 0, \"line\").attr({\r\n class: \"dxb-bar-value\",\r\n \"stroke-linecap\": \"square\"\r\n })\r\n },\r\n _prepareOptions: function() {\r\n var options;\r\n var startScaleValue;\r\n var endScaleValue;\r\n var level;\r\n var value;\r\n var target;\r\n this._allOptions = options = this.callBase();\r\n var isValueUndefined = void 0 === this._allOptions.value;\r\n var isTargetUndefined = void 0 === this._allOptions.target;\r\n this._tooltipEnabled = !(isValueUndefined && isTargetUndefined);\r\n if (isValueUndefined) {\r\n this._allOptions.value = 0\r\n }\r\n if (isTargetUndefined) {\r\n this._allOptions.target = 0\r\n }\r\n options.value = value = _Number(options.value);\r\n options.target = target = _Number(options.target);\r\n if (void 0 === this._allOptions.startScaleValue) {\r\n this._allOptions.startScaleValue = target < value ? target : value;\r\n this._allOptions.startScaleValue = this._allOptions.startScaleValue < 0 ? this._allOptions.startScaleValue : 0\r\n }\r\n if (void 0 === this._allOptions.endScaleValue) {\r\n this._allOptions.endScaleValue = target > value ? target : value\r\n }\r\n options.startScaleValue = startScaleValue = _Number(options.startScaleValue);\r\n options.endScaleValue = endScaleValue = _Number(options.endScaleValue);\r\n if (endScaleValue < startScaleValue) {\r\n level = endScaleValue;\r\n this._allOptions.endScaleValue = startScaleValue;\r\n this._allOptions.startScaleValue = level;\r\n this._allOptions.inverted = true\r\n }\r\n },\r\n _updateRange: function() {\r\n var options = this._allOptions;\r\n this._ranges = {\r\n arg: {\r\n invert: options.rtlEnabled ? !options.inverted : options.inverted,\r\n min: options.startScaleValue,\r\n max: options.endScaleValue,\r\n axisType: \"continuous\",\r\n dataType: \"numeric\"\r\n },\r\n val: {\r\n min: 0,\r\n max: 1,\r\n axisType: \"continuous\",\r\n dataType: \"numeric\"\r\n }\r\n }\r\n },\r\n _drawBullet: function() {\r\n var options = this._allOptions;\r\n var isValidBounds = options.startScaleValue !== options.endScaleValue;\r\n var isValidMin = _isFinite(options.startScaleValue);\r\n var isValidMax = _isFinite(options.endScaleValue);\r\n var isValidValue = _isFinite(options.value);\r\n var isValidTarget = _isFinite(options.target);\r\n if (isValidBounds && isValidMax && isValidMin && isValidTarget && isValidValue) {\r\n this._drawBarValue();\r\n this._drawTarget();\r\n this._drawZeroLevel()\r\n }\r\n },\r\n _getTargetParams: function() {\r\n var options = this._allOptions;\r\n var translatorY = this._valueAxis.getTranslator();\r\n var x = this._argumentAxis.getTranslator().translate(options.target);\r\n return {\r\n points: [x, translatorY.translate(TARGET_MIN_Y), x, translatorY.translate(TARGET_MAX_Y)],\r\n stroke: options.targetColor,\r\n \"stroke-width\": options.targetWidth\r\n }\r\n },\r\n _getBarValueParams: function() {\r\n var options = this._allOptions;\r\n var translatorX = this._argumentAxis.getTranslator();\r\n var translatorY = this._valueAxis.getTranslator();\r\n var startLevel = options.startScaleValue;\r\n var endLevel = options.endScaleValue;\r\n var value = options.value;\r\n var y2 = translatorY.translate(BAR_VALUE_MIN_Y);\r\n var y1 = translatorY.translate(BAR_VALUE_MAX_Y);\r\n var x1;\r\n var x2;\r\n if (value > 0) {\r\n x1 = startLevel <= 0 ? 0 : startLevel;\r\n x2 = value >= endLevel ? endLevel : value < x1 ? x1 : value\r\n } else {\r\n x1 = endLevel >= 0 ? 0 : endLevel;\r\n x2 = value < startLevel ? startLevel : value > x1 ? x1 : value\r\n }\r\n x1 = translatorX.translate(x1);\r\n x2 = translatorX.translate(x2);\r\n return {\r\n points: [x1, y1, x2, y1, x2, y2, x1, y2],\r\n fill: options.color\r\n }\r\n },\r\n _getCorrectCanvas: function() {\r\n return this._canvas\r\n },\r\n _getZeroLevelParams: function() {\r\n var translatorY = this._valueAxis.getTranslator();\r\n var x = this._argumentAxis.getTranslator().translate(0);\r\n return {\r\n points: [x, translatorY.translate(TARGET_MIN_Y), x, translatorY.translate(TARGET_MAX_Y)],\r\n stroke: this._allOptions.targetColor,\r\n \"stroke-width\": 1\r\n }\r\n },\r\n _drawZeroLevel: function() {\r\n var options = this._allOptions;\r\n if (0 > options.endScaleValue || 0 < options.startScaleValue || !options.showZeroLevel) {\r\n return\r\n }\r\n this._zeroLevelPath.attr(this._getZeroLevelParams()).sharp().append(this._renderer.root)\r\n },\r\n _drawTarget: function() {\r\n var options = this._allOptions;\r\n var target = options.target;\r\n if (target > options.endScaleValue || target < options.startScaleValue || !options.showTarget) {\r\n return\r\n }\r\n this._targetPath.attr(this._getTargetParams()).sharp().append(this._renderer.root)\r\n },\r\n _drawBarValue: function() {\r\n this._barValuePath.attr(this._getBarValueParams()).append(this._renderer.root)\r\n },\r\n _getTooltipCoords: function() {\r\n var canvas = this._canvas;\r\n var rootOffset = this._renderer.getRootOffset();\r\n var bBox = this._barValuePath.getBBox();\r\n return {\r\n x: bBox.x + bBox.width / 2 + rootOffset.left,\r\n y: canvas.height / 2 + rootOffset.top\r\n }\r\n },\r\n _getTooltipData: function() {\r\n var tooltip = this._tooltip;\r\n var options = this._allOptions;\r\n var value = options.value;\r\n var target = options.target;\r\n var valueText = tooltip.formatValue(value);\r\n var targetText = tooltip.formatValue(target);\r\n return {\r\n originalValue: value,\r\n originalTarget: target,\r\n value: valueText,\r\n target: targetText,\r\n valueText: [\"Actual Value:\", valueText, \"Target Value:\", targetText]\r\n }\r\n },\r\n _isTooltipEnabled: function() {\r\n return this._tooltipEnabled\r\n }\r\n});\r\neach([\"color\", \"targetColor\", \"targetWidth\", \"showTarget\", \"showZeroLevel\", \"value\", \"target\", \"startScaleValue\", \"endScaleValue\"], (function(_, name) {\r\n dxBullet.prototype._optionChangesMap[name] = \"OPTIONS\"\r\n}));\r\ncomponentRegistrator(\"dxBullet\", dxBullet);\r\nexport default dxBullet;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxBullet from 'devextreme/viz/bullet';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoMarginModule, DxoSizeModule, DxoTooltipModule, DxoBorderModule, DxoFontModule, DxoFormatModule, DxoShadowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxBullet]\r\n\r\n */\r\nclass DxBulletComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'colorChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endScaleValueChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showTargetChange' },\r\n { emit: 'showZeroLevelChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'startScaleValueChange' },\r\n { emit: 'targetChange' },\r\n { emit: 'targetColorChange' },\r\n { emit: 'targetWidthChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.color]\r\n \r\n */\r\n get color() {\r\n return this._getOption('color');\r\n }\r\n set color(value) {\r\n this._setOption('color', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.endScaleValue]\r\n \r\n */\r\n get endScaleValue() {\r\n return this._getOption('endScaleValue');\r\n }\r\n set endScaleValue(value) {\r\n this._setOption('endScaleValue', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.showTarget]\r\n \r\n */\r\n get showTarget() {\r\n return this._getOption('showTarget');\r\n }\r\n set showTarget(value) {\r\n this._setOption('showTarget', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.showZeroLevel]\r\n \r\n */\r\n get showZeroLevel() {\r\n return this._getOption('showZeroLevel');\r\n }\r\n set showZeroLevel(value) {\r\n this._setOption('showZeroLevel', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.startScaleValue]\r\n \r\n */\r\n get startScaleValue() {\r\n return this._getOption('startScaleValue');\r\n }\r\n set startScaleValue(value) {\r\n this._setOption('startScaleValue', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.target]\r\n \r\n */\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.targetColor]\r\n \r\n */\r\n get targetColor() {\r\n return this._getOption('targetColor');\r\n }\r\n set targetColor(value) {\r\n this._setOption('targetColor', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.targetWidth]\r\n \r\n */\r\n get targetWidth() {\r\n return this._getOption('targetWidth');\r\n }\r\n set targetWidth(value) {\r\n this._setOption('targetWidth', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseSparklineOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxBulletOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxBullet(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxBulletComponent.ɵfac = function DxBulletComponent_Factory(t) { return new (t || DxBulletComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxBulletComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxBulletComponent, selectors: [[\"dx-bullet\"]], inputs: { color: \"color\", disabled: \"disabled\", elementAttr: \"elementAttr\", endScaleValue: \"endScaleValue\", margin: \"margin\", pathModified: \"pathModified\", rtlEnabled: \"rtlEnabled\", showTarget: \"showTarget\", showZeroLevel: \"showZeroLevel\", size: \"size\", startScaleValue: \"startScaleValue\", target: \"target\", targetColor: \"targetColor\", targetWidth: \"targetWidth\", theme: \"theme\", tooltip: \"tooltip\", value: \"value\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", colorChange: \"colorChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", endScaleValueChange: \"endScaleValueChange\", marginChange: \"marginChange\", pathModifiedChange: \"pathModifiedChange\", rtlEnabledChange: \"rtlEnabledChange\", showTargetChange: \"showTargetChange\", showZeroLevelChange: \"showZeroLevelChange\", sizeChange: \"sizeChange\", startScaleValueChange: \"startScaleValueChange\", targetChange: \"targetChange\", targetColorChange: \"targetColorChange\", targetWidthChange: \"targetWidthChange\", themeChange: \"themeChange\", tooltipChange: \"tooltipChange\", valueChange: \"valueChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxBulletComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBulletComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-bullet',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { color: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], endScaleValue: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showTarget: [{\r\n type: Input\r\n }], showZeroLevel: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], startScaleValue: [{\r\n type: Input\r\n }], target: [{\r\n type: Input\r\n }], targetColor: [{\r\n type: Input\r\n }], targetWidth: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], colorChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endScaleValueChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showTargetChange: [{\r\n type: Output\r\n }], showZeroLevelChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], startScaleValueChange: [{\r\n type: Output\r\n }], targetChange: [{\r\n type: Output\r\n }], targetColorChange: [{\r\n type: Output\r\n }], targetWidthChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxBulletModule {\r\n}\r\n/** @nocollapse */ DxBulletModule.ɵfac = function DxBulletModule_Factory(t) { return new (t || DxBulletModule)(); };\r\n/** @nocollapse */ DxBulletModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxBulletModule });\r\n/** @nocollapse */ DxBulletModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxBulletModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxBulletComponent\r\n ],\r\n exports: [\r\n DxBulletComponent,\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxBulletModule, { declarations: [DxBulletComponent], imports: [DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxBulletComponent, DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxBulletComponent, DxBulletModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxButton from 'devextreme/ui/button';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxButton]\r\n\r\n */\r\nclass DxButtonComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'click', emit: 'onClick' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'templateChange' },\r\n { emit: 'textChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'useSubmitBehaviorChange' },\r\n { emit: 'validationGroupChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.icon]\r\n \r\n */\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.template]\r\n \r\n */\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.useSubmitBehavior]\r\n \r\n */\r\n get useSubmitBehavior() {\r\n return this._getOption('useSubmitBehavior');\r\n }\r\n set useSubmitBehavior(value) {\r\n this._setOption('useSubmitBehavior', value);\r\n }\r\n /**\r\n * [descr:dxButtonOptions.validationGroup]\r\n \r\n */\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxButton(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxButtonComponent.ɵfac = function DxButtonComponent_Factory(t) { return new (t || DxButtonComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxButtonComponent, selectors: [[\"dx-button\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", icon: \"icon\", rtlEnabled: \"rtlEnabled\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", template: \"template\", text: \"text\", type: \"type\", useSubmitBehavior: \"useSubmitBehavior\", validationGroup: \"validationGroup\", visible: \"visible\", width: \"width\" }, outputs: { onClick: \"onClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconChange: \"iconChange\", rtlEnabledChange: \"rtlEnabledChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", templateChange: \"templateChange\", textChange: \"textChange\", typeChange: \"typeChange\", useSubmitBehaviorChange: \"useSubmitBehaviorChange\", validationGroupChange: \"validationGroupChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxButtonComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxButtonComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-button',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], icon: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], useSubmitBehavior: [{\r\n type: Input\r\n }], validationGroup: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onClick: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], templateChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], useSubmitBehaviorChange: [{\r\n type: Output\r\n }], validationGroupChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxButtonModule {\r\n}\r\n/** @nocollapse */ DxButtonModule.ɵfac = function DxButtonModule_Factory(t) { return new (t || DxButtonModule)(); };\r\n/** @nocollapse */ DxButtonModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxButtonModule });\r\n/** @nocollapse */ DxButtonModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxButtonModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxButtonComponent\r\n ],\r\n exports: [\r\n DxButtonComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxButtonModule, { declarations: [DxButtonComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxButtonComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxButtonComponent, DxButtonModule };\n","/**\r\n * DevExtreme (esm/ui/button_group.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = BUTTON_GROUP_CLASS + \"-wrapper\";\r\nvar BUTTON_GROUP_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-item\";\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-first-item\";\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-last-item\";\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = BUTTON_GROUP_ITEM_CLASS + \"-has-width\";\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar BUTTON_GROUP_STYLING_MODE_CLASS = {\r\n contained: \"dx-buttongroup-mode-contained\",\r\n outlined: \"dx-buttongroup-mode-outlined\",\r\n text: \"dx-buttongroup-mode-text\"\r\n};\r\nvar ButtonCollection = CollectionWidget.inherit({\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => {\r\n this._prepareItemStyles($container);\r\n var template = this.option(\"buttonTemplate\");\r\n this._createComponent($container, Button, extend({}, model, data, this._getBasicButtonOptions(), {\r\n _templateData: this._hasCustomTemplate(template) ? model : {},\r\n template: model.template || template\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _hasCustomTemplate(template) {\r\n return isFunction(template) || this.option(\"integrationOptions.templates\")[template]\r\n },\r\n _selectedItemClass: () => \"dx-item-selected dx-state-selected\",\r\n _prepareItemStyles($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent(args) {\r\n args.container = $(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _setAriaSelectionAttribute: function($target, value) {\r\n this.setAria(\"pressed\", value, $target)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n args.container = $(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: () => BUTTON_GROUP_ITEM_CLASS,\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderStylingMode();\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _renderStylingMode() {\r\n var _BUTTON_GROUP_STYLING;\r\n var {\r\n stylingMode: stylingMode\r\n } = this.option();\r\n for (var key in BUTTON_GROUP_STYLING_MODE_CLASS) {\r\n this.$element().removeClass(BUTTON_GROUP_STYLING_MODE_CLASS[key])\r\n }\r\n this.$element().addClass(null !== (_BUTTON_GROUP_STYLING = BUTTON_GROUP_STYLING_MODE_CLASS[stylingMode]) && void 0 !== _BUTTON_GROUP_STYLING ? _BUTTON_GROUP_STYLING : BUTTON_GROUP_STYLING_MODE_CLASS.contained)\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons() {\r\n var $buttons = $(\"<div>\").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: e => {\r\n var width = this.option(\"width\");\r\n isDefined(width) && $(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: e => {\r\n this._syncSelectionOptions();\r\n this._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: e => {\r\n this._itemClickAction(e)\r\n }\r\n };\r\n if (isDefined(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxButtonGroup\", ButtonGroup);\r\nexport default ButtonGroup;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxButtonGroup from 'devextreme/ui/button_group';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxButtonGroup]\r\n\r\n */\r\nclass DxButtonGroupComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonTemplateChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedItemKeysChange' },\r\n { emit: 'selectedItemsChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.buttonTemplate]\r\n \r\n */\r\n get buttonTemplate() {\r\n return this._getOption('buttonTemplate');\r\n }\r\n set buttonTemplate(value) {\r\n this._setOption('buttonTemplate', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.selectedItemKeys]\r\n \r\n */\r\n get selectedItemKeys() {\r\n return this._getOption('selectedItemKeys');\r\n }\r\n set selectedItemKeys(value) {\r\n this._setOption('selectedItemKeys', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.selectedItems]\r\n \r\n */\r\n get selectedItems() {\r\n return this._getOption('selectedItems');\r\n }\r\n set selectedItems(value) {\r\n this._setOption('selectedItems', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxButtonGroupOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxButtonGroup(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('selectedItemKeys', changes);\r\n this.setupChanges('selectedItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('selectedItemKeys');\r\n this._idh.doCheck('selectedItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxButtonGroupComponent.ɵfac = function DxButtonGroupComponent_Factory(t) { return new (t || DxButtonGroupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxButtonGroupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxButtonGroupComponent, selectors: [[\"dx-button-group\"]], contentQueries: function DxButtonGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttonTemplate: \"buttonTemplate\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", items: \"items\", keyExpr: \"keyExpr\", rtlEnabled: \"rtlEnabled\", selectedItemKeys: \"selectedItemKeys\", selectedItems: \"selectedItems\", selectionMode: \"selectionMode\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonTemplateChange: \"buttonTemplateChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemsChange: \"itemsChange\", keyExprChange: \"keyExprChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedItemKeysChange: \"selectedItemKeysChange\", selectedItemsChange: \"selectedItemsChange\", selectionModeChange: \"selectionModeChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxButtonGroupComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxButtonGroupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-button-group',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttonTemplate: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedItemKeys: [{\r\n type: Input\r\n }], selectedItems: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonTemplateChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedItemKeysChange: [{\r\n type: Output\r\n }], selectedItemsChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxButtonGroupModule {\r\n}\r\n/** @nocollapse */ DxButtonGroupModule.ɵfac = function DxButtonGroupModule_Factory(t) { return new (t || DxButtonGroupModule)(); };\r\n/** @nocollapse */ DxButtonGroupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxButtonGroupModule });\r\n/** @nocollapse */ DxButtonGroupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxButtonGroupModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxButtonGroupComponent\r\n ],\r\n exports: [\r\n DxButtonGroupComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxButtonGroupModule, { declarations: [DxButtonGroupComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxButtonGroupComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxButtonGroupComponent, DxButtonGroupModule };\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n immediateTimeout: IMMEDIATE_TIMEOUT,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\"),\r\n immediateTimeout: this.option(\"immediateTimeout\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nimport {\r\n isFluent,\r\n isMaterial\r\n} from \"../themes\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nclass Navigator extends Widget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n type: \"normal\",\r\n stylingMode: \"outlined\",\r\n text: \"\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n type: \"default\",\r\n stylingMode: \"text\"\r\n }\r\n }, {\r\n device: function() {\r\n return isFluent()\r\n },\r\n options: {\r\n type: \"normal\",\r\n stylingMode: \"text\"\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this._initActions()\r\n }\r\n _initActions() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n }\r\n _renderButtons() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n type: type,\r\n stylingMode: stylingMode,\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n this._prevButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronright\" : \"chevronleft\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: -1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronleft\" : \"chevronright\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: 1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"<div>\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n onClick: e => {\r\n this._captionClickAction({\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n template: (_, content) => {\r\n var {\r\n text: text\r\n } = this.option();\r\n var viewCaptionTexts = text.split(\" - \");\r\n viewCaptionTexts.forEach(captionText => {\r\n $(content).append($(\"<span>\").addClass(BUTTON_TEXT_CLASS).text(captionText))\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n }\r\n _renderCaption() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n }\r\n toggleButton(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n start as hoverStartEventName\r\n} from \"../../events/hover\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_CELL_START_CLASS = \"dx-calendar-cell-start\";\r\nvar CALENDAR_CELL_END_CLASS = \"dx-calendar-cell-end\";\r\nvar CALENDAR_CELL_START_IN_ROW_CLASS = \"dx-calendar-cell-start-in-row\";\r\nvar CALENDAR_CELL_END_IN_ROW_CLASS = \"dx-calendar-cell-end-in-row\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CELL_IN_RANGE_CLASS = \"dx-calendar-cell-in-range\";\r\nvar CALENDAR_CELL_RANGE_HOVER_CLASS = \"dx-calendar-cell-range-hover\";\r\nvar CALENDAR_CELL_RANGE_HOVER_START_CLASS = \"dx-calendar-cell-range-hover-start\";\r\nvar CALENDAR_CELL_RANGE_HOVER_END_CLASS = \"dx-calendar-cell-range-hover-end\";\r\nvar CALENDAR_RANGE_START_DATE_CLASS = \"dx-calendar-range-start-date\";\r\nvar CALENDAR_RANGE_END_DATE_CLASS = \"dx-calendar-range-end-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar NOT_WEEK_CELL_SELECTOR = \"td:not(.\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS, \")\");\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DXHOVERSTART_EVENT_NAME = addNamespace(hoverStartEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar DAY_INTERVAL = 864e5;\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n onCellHover: null,\r\n onWeekNumberClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderRange();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"<table>\");\r\n var localizedWidgetName = messageLocalization.format(\"dxCalendar-ariaWidgetName\");\r\n this.setAria({\r\n label: localizedWidgetName,\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"<tbody>\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n this._renderWeekNumberCell(rowData)\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _createCell: function(cellDate, cellIndex) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate, cellIndex);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate, cellIndex);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n $(row).append(cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate, cellIndex) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n if (0 === cellIndex) {\r\n className += \" \".concat(CALENDAR_CELL_START_IN_ROW_CLASS)\r\n }\r\n if (cellIndex === this.option(\"colCount\") - 1) {\r\n className += \" \".concat(CALENDAR_CELL_END_IN_ROW_CLASS)\r\n }\r\n if (this._isStartDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_START_CLASS)\r\n }\r\n if (this._isEndDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_END_CLASS)\r\n }\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n var isDateCell = cellDate instanceof Date;\r\n var text = isDateCell ? this._getCellText(cellDate) : cellDate;\r\n var date = isDateCell ? cellDate : void 0;\r\n var view = this._getViewName();\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n view: view\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n });\r\n var {\r\n selectionMode: selectionMode\r\n } = this.option();\r\n eventsEngine.off(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME);\r\n if (\"range\" === selectionMode) {\r\n this._createCellHoverAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellHoverAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n }\r\n if (\"single\" !== selectionMode) {\r\n this._createWeekNumberCellClickAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \".\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS), e => {\r\n var $row = $(e.currentTarget).closest(\"tr\");\r\n var firstDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).first().data(CALENDAR_DATE_VALUE_KEY);\r\n var lastDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).last().data(CALENDAR_DATE_VALUE_KEY);\r\n var rowDates = [...coreDateUtils.getDatesOfInterval(firstDateInRow, lastDateInRow, DAY_INTERVAL), lastDateInRow];\r\n this._weekNumberCellClickAction({\r\n event: e,\r\n rowDates: rowDates\r\n })\r\n })\r\n }\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createCellHoverAction: function() {\r\n this._cellHoverAction = this._createActionByOption(\"onCellHover\")\r\n },\r\n _createWeekNumberCellClickAction: function() {\r\n this._weekNumberCellClickAction = this._createActionByOption(\"onWeekNumberClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _isStartDayOfMonth: abstract,\r\n _isEndDayOfMonth: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n if (contouredDate) {\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n }\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n if (!Array.isArray(value)) {\r\n value = [value]\r\n }\r\n this._updateSelectedClass(value)\r\n },\r\n _updateSelectedClass: function(value) {\r\n var _this$_$selectedCells;\r\n if (this._isRangeMode() && !this._isMonthView()) {\r\n return\r\n }\r\n null === (_this$_$selectedCells = this._$selectedCells) || void 0 === _this$_$selectedCells ? void 0 : _this$_$selectedCells.forEach($cell => {\r\n $cell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n });\r\n this._$selectedCells = value.map(value => this._getCellByDate(value));\r\n this._$selectedCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_SELECTED_DATE_CLASS)\r\n })\r\n },\r\n _renderRange: function() {\r\n var _this$_$rangeCells, _this$_$hoveredRangeC, _this$_$rangeStartHov, _this$_$rangeEndHover, _this$_$rangeStartDat, _this$_$rangeEndDateC, _this$_$rangeStartDat2, _this$_$rangeEndDateC2;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n value: value,\r\n range: range\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_this$_$rangeCells = this._$rangeCells) || void 0 === _this$_$rangeCells ? void 0 : _this$_$rangeCells.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_this$_$hoveredRangeC = this._$hoveredRangeCells) || void 0 === _this$_$hoveredRangeC ? void 0 : _this$_$hoveredRangeC.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov ? void 0 : _this$_$rangeStartHov.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover ? void 0 : _this$_$rangeEndHover.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n null === (_this$_$rangeStartDat = this._$rangeStartDateCell) || void 0 === _this$_$rangeStartDat ? void 0 : _this$_$rangeStartDat.removeClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_this$_$rangeEndDateC = this._$rangeEndDateCell) || void 0 === _this$_$rangeEndDateC ? void 0 : _this$_$rangeEndDateC.removeClass(CALENDAR_RANGE_END_DATE_CLASS);\r\n this._$rangeCells = range.map(value => this._getCellByDate(value));\r\n this._$rangeStartDateCell = this._getCellByDate(value[0]);\r\n this._$rangeEndDateCell = this._getCellByDate(value[1]);\r\n this._$rangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_this$_$rangeStartDat2 = this._$rangeStartDateCell) || void 0 === _this$_$rangeStartDat2 ? void 0 : _this$_$rangeStartDat2.addClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_this$_$rangeEndDateC2 = this._$rangeEndDateCell) || void 0 === _this$_$rangeEndDateC2 ? void 0 : _this$_$rangeEndDateC2.addClass(CALENDAR_RANGE_END_DATE_CLASS)\r\n },\r\n _renderHoveredRange() {\r\n var _this$_$hoveredRangeC2, _this$_$rangeStartHov2, _this$_$rangeEndHover2, _this$_$rangeStartHov3, _this$_$rangeEndHover3;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n hoveredRange: hoveredRange\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_this$_$hoveredRangeC2 = this._$hoveredRangeCells) || void 0 === _this$_$hoveredRangeC2 ? void 0 : _this$_$hoveredRangeC2.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov2 = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov2 ? void 0 : _this$_$rangeStartHov2.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover2 = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover2 ? void 0 : _this$_$rangeEndHover2.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n this._$hoveredRangeCells = hoveredRange.map(value => this._getCellByDate(value));\r\n this._$rangeStartHoverCell = this._getCellByDate(hoveredRange[0]);\r\n this._$rangeEndHoverCell = this._getCellByDate(hoveredRange[hoveredRange.length - 1]);\r\n this._$hoveredRangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov3 = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov3 ? void 0 : _this$_$rangeStartHov3.addClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover3 = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover3 ? void 0 : _this$_$rangeEndHover3.addClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS)\r\n },\r\n _isMonthView: function() {\r\n return \"month\" === this.option(\"zoomLevel\")\r\n },\r\n _isRangeMode: function() {\r\n return \"range\" === this.option(\"selectionMode\")\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getViewFirstCellDate(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"range\":\r\n this._renderRange();\r\n break;\r\n case \"hoveredRange\":\r\n this._renderHoveredRange();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellHover\":\r\n this._createCellHoverAction();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport BaseView from \"./ui.calendar.base_view\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_WEEK_SELECTION_CLASS = \"dx-calendar-week-selection\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"<tr>\");\r\n var $header = $(\"<thead>\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n if (this.option(\"showWeekNumbers\")) {\r\n this._renderWeekHeaderCell($headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(firstDayOfWeek + cellIndex);\r\n var $cell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n $headerRow.append($cell)\r\n },\r\n _renderWeekHeaderCell: function($headerRow) {\r\n var $weekNumberHeaderCell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: \"WeekNumber\",\r\n class: \"dx-week-number-header\"\r\n });\r\n $headerRow.prepend($weekNumberHeaderCell)\r\n },\r\n _renderWeekNumberCell: function(rowData) {\r\n var {\r\n showWeekNumbers: showWeekNumbers,\r\n cellTemplate: cellTemplate,\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.option();\r\n if (!showWeekNumbers) {\r\n return\r\n }\r\n var weekNumber = this._getWeekNumber(rowData.prevCellDate);\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = CALENDAR_WEEK_NUMBER_CELL_CLASS;\r\n if (\"single\" !== selectionMode && selectWeekOnClick) {\r\n $cell.addClass(CALENDAR_WEEK_SELECTION_CLASS)\r\n }\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(weekNumber, -1, $cell))\r\n } else {\r\n cell.innerHTML = weekNumber\r\n }\r\n rowData.row.prepend(cell);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: \"Week \".concat(weekNumber)\r\n }, $cell)\r\n },\r\n _getWeekNumber: function(date) {\r\n var {\r\n weekNumberRule: weekNumberRule,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n if (\"auto\" === weekNumberRule) {\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, 1 === firstDayOfWeek ? \"firstFourDays\" : \"firstDay\")\r\n }\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, weekNumberRule)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _isStartDayOfMonth: function(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getFirstMonthDate(this.option(\"date\")))\r\n },\r\n _isEndDayOfMonth: function(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getLastMonthDate(this.option(\"date\")))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = firstDayOfWeek - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.selection.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nclass CalendarSelectionStrategy {\r\n constructor(component) {\r\n this.calendar = component\r\n }\r\n dateOption(optionName) {\r\n return this.calendar._dateOption(optionName)\r\n }\r\n dateValue(value, e) {\r\n this.calendar._dateValue(value, e)\r\n }\r\n skipNavigate() {\r\n this.calendar._skipNavigate = true\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n this.calendar._updateAriaSelected(value, previousValue);\r\n if (value[0] && this.calendar.option(\"currentDate\").getTime() === value[0].getTime()) {\r\n this.calendar._updateAriaId(value[0])\r\n }\r\n }\r\n processValueChanged(value, previousValue) {\r\n var _value, _previousValue;\r\n if (isDefined(value) && !Array.isArray(value)) {\r\n value = [value]\r\n }\r\n if (isDefined(previousValue) && !Array.isArray(previousValue)) {\r\n previousValue = [previousValue]\r\n }\r\n value = (null === (_value = value) || void 0 === _value ? void 0 : _value.map(item => this._convertToDate(item))) || [];\r\n previousValue = (null === (_previousValue = previousValue) || void 0 === _previousValue ? void 0 : _previousValue.map(item => this._convertToDate(item))) || [];\r\n this._updateViewsValue(value);\r\n this.updateAriaSelected(value, previousValue);\r\n if (!this._currentDateChanged) {\r\n this.calendar._initCurrentDate()\r\n }\r\n this._currentDateChanged = false\r\n }\r\n _isDateDisabled(date) {\r\n var min = this.calendar._dateOption(\"min\");\r\n var max = this.calendar._dateOption(\"max\");\r\n var isLessThanMin = isDefined(min) && date < min && !dateUtils.sameDate(min, date);\r\n var isBiggerThanMax = isDefined(max) && date > max && !dateUtils.sameDate(max, date);\r\n return this.calendar._view.isDateDisabled(date) || isLessThanMin || isBiggerThanMax\r\n }\r\n _getLowestDateInArray(dates) {\r\n if (dates.length) {\r\n return new Date(Math.min(...dates))\r\n }\r\n }\r\n _convertToDate(value) {\r\n return this.calendar._convertToDate(value)\r\n }\r\n _isMaxZoomLevel() {\r\n return this.calendar._isMaxZoomLevel()\r\n }\r\n _updateViewsOption(optionName, optionValue) {\r\n this.calendar._updateViewsOption(optionName, optionValue)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value)\r\n }\r\n _updateCurrentDate(value) {\r\n this.calendar.option(\"currentDate\", null !== value && void 0 !== value ? value : new Date)\r\n }\r\n _shouldHandleWeekNumberClick() {\r\n var {\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.calendar.option();\r\n return selectWeekOnClick && \"single\" !== selectionMode\r\n }\r\n}\r\nexport default CalendarSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed,\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport CalendarSingleSelectionStrategy from \"./ui.calendar.single.selection.strategy\";\r\nimport CalendarMultipleSelectionStrategy from \"./ui.calendar.multiple.selection.strategy\";\r\nimport CalendarRangeSelectionStrategy from \"./ui.calendar.range.selection.strategy\";\r\nimport {\r\n end as hoverEndEventName\r\n} from \"../../events/hover\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isFluent\r\n} from \"../themes\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar CALENDAR_MULTIVIEW_CLASS = \"dx-calendar-multiview\";\r\nvar CALENDAR_RANGE_CLASS = \"dx-calendar-range\";\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar CALENDAR_DXHOVEREND_EVENT_NAME = addNamespace(hoverEndEventName, \"dxCalendar\");\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar SELECTION_STRATEGIES = {\r\n SingleSelection: CalendarSingleSelectionStrategy,\r\n MultipleSelection: CalendarMultipleSelectionStrategy,\r\n RangeSelection: CalendarRangeSelectionStrategy\r\n};\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n viewsCount: 1,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n selectionMode: \"single\",\r\n selectWeekOnClick: true,\r\n showTodayButton: false,\r\n showWeekNumbers: false,\r\n weekNumberRule: \"auto\",\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: this._enterKeyHandler\r\n })\r\n },\r\n _enterKeyHandler: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._selectionStrategy.selectValue(value, e)\r\n }\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n var isArray = \"value\" === optionName && !this._isSingleMode();\r\n var value = this.option(\"value\");\r\n if (1 === arguments.length) {\r\n return isArray ? (null !== value && void 0 !== value ? value : []).map(value => this._convertToDate(value)) : this._convertToDate(this.option(optionName))\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n var serializedValue = isArray ? (null === optionValue || void 0 === optionValue ? void 0 : optionValue.map(value => dateSerialization.serializeDate(value, serializationFormat))) || [] : dateSerialization.serializeDate(optionValue, serializationFormat);\r\n this.option(optionName, serializedValue)\r\n },\r\n _isSingleMode: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n var direction = offset > 0 ? 1 : -1;\r\n var isViewDisabled = 1 === direction ? this._isNextViewDisabled() : this._isPrevViewDisabled();\r\n if (!isViewDisabled) {\r\n this._waitRenderView(direction)\r\n } else {\r\n this._moveToClosestAvailableDate(currentDate)\r\n }\r\n } else {\r\n this._skipNavigate = true;\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _isNextViewDisabled() {\r\n return this._navigator._nextButton.option(\"disabled\")\r\n },\r\n _isPrevViewDisabled() {\r\n return this._navigator._prevButton.option(\"disabled\")\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initSelectionStrategy();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _initSelectionStrategy: function() {\r\n var strategyName = this._getSelectionStrategyName();\r\n var strategy = SELECTION_STRATEGIES[strategyName];\r\n if (!this._selectionStrategy || this._selectionStrategy.NAME !== strategyName) {\r\n this._selectionStrategy = new strategy(this)\r\n }\r\n },\r\n _refreshSelectionStrategy: function() {\r\n this._initSelectionStrategy();\r\n this._selectionStrategy.restoreValue();\r\n this._refresh()\r\n },\r\n _getSelectionStrategyName: function() {\r\n var selectionMode = this.option(\"selectionMode\");\r\n switch (selectionMode) {\r\n case \"multiple\":\r\n return \"MultipleSelection\";\r\n case \"range\":\r\n return \"RangeSelection\";\r\n default:\r\n return \"SingleSelection\"\r\n }\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var _this$_getNormalizedD;\r\n var currentDate = null !== (_this$_getNormalizedD = this._getNormalizedDate(this._selectionStrategy.getDefaultCurrentDate())) && void 0 !== _this$_getNormalizedD ? _this$_getNormalizedD : this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"<span>\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n if (this._additionalView) {\r\n if (offset > 2 || offset < -1) {\r\n this._refreshViews();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate);\r\n this._renderNavigator()\r\n } else if (1 === offset && this._skipNavigate) {\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n this._skipNavigate = false\r\n },\r\n _isAdditionalViewDate(date) {\r\n if (!this._additionalView) {\r\n return false\r\n }\r\n return date >= this._additionalView._getFirstAvailableDate()\r\n },\r\n _getActiveView: function(date) {\r\n return this._isAdditionalViewDate(date) ? this._additionalView : this._view\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || $(this._$viewsWrapper).is(\":focus\")) {\r\n var _this$_additionalView;\r\n this._view.option(\"contouredDate\", null);\r\n null === (_this$_additionalView = this._additionalView) || void 0 === _this$_additionalView ? void 0 : _this$_additionalView.option(\"contouredDate\", null);\r\n var view = this._isAdditionalViewDate(date) ? this._additionalView : this._view;\r\n view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n var _rangeMin = this.option(\"_rangeMin\");\r\n if (_rangeMin) {\r\n return _rangeMin\r\n }\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n var _rangeMax = this.option(\"_rangeMax\");\r\n if (_rangeMax) {\r\n return _rangeMax\r\n }\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this._$viewsWrapper\r\n },\r\n _focusEventTarget() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n $element.toggleClass(CALENDAR_RANGE_CLASS, \"range\" === this.option(\"selectionMode\"));\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n this.callBase();\r\n this._renderEvents();\r\n $element.prepend(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._selectionStrategy.updateAriaSelected();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n this.setAria(\"role\", \"application\");\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"<div>\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"<div>\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this.$element().toggleClass(CALENDAR_MULTIVIEW_CLASS, viewsCount > 1);\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(viewsCount, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n if (viewsCount > 1) {\r\n this._additionalView = this._renderSpecificView(this._getDateByOffset(1, currentDate))\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var {\r\n zoomLevel: zoomLevel\r\n } = this.option();\r\n var specificView = Views[zoomLevel];\r\n var $view = $(\"<div>\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n var view = this._createComponent($view, specificView, config);\r\n return view\r\n },\r\n _viewConfig: function(date) {\r\n var _this$option;\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return _extends({}, this._selectionStrategy.getViewOptions(), {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: null !== (_this$option = this.option(\"firstDayOfWeek\")) && void 0 !== _this$option ? _this$option : dateLocalization.firstDayOfWeekIndex(),\r\n showWeekNumbers: this.option(\"showWeekNumbers\"),\r\n selectWeekOnClick: this.option(\"selectWeekOnClick\"),\r\n weekNumberRule: this.option(\"weekNumberRule\"),\r\n zoomLevel: this.option(\"zoomLevel\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n })\r\n },\r\n _renderEvents() {\r\n eventsEngine.off(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME);\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n eventsEngine.on(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME, null, e => {\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n })\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._moveViewElement(this._beforeView, -1);\r\n this._moveViewElement(this._afterView, viewsCount);\r\n this._moveViewElement(this._additionalView, 1)\r\n },\r\n _moveViewElement(view, coefficient) {\r\n view && move(view.$element(), {\r\n left: this._getViewPosition(coefficient),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._selectionStrategy.selectValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue && this._isSingleMode()) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"<div>\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(this._view, this._additionalView));\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return {\r\n text: this._getViewsCaption(this._view, this._additionalView),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: void 0\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var offset = e.direction;\r\n if (viewsCount > 1) {\r\n var additionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = additionalViewActive && offset < 0 || !additionalViewActive && offset > 0;\r\n if (shouldDoubleOffset) {\r\n offset *= 2\r\n }\r\n }\r\n var newCurrentDate = this._getDateByOffset(offset, currentDate);\r\n this._moveToClosestAvailableDate(newCurrentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._afterView));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._beforeView))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this._toggleGestureCoverCursor(\"grabbing\");\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 / viewsCount : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 / viewsCount : 0\r\n },\r\n _toggleGestureCoverCursor: function(cursor) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", cursor)\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n this._toggleGestureCoverCursor(\"auto\");\r\n var {\r\n currentDate: currentDate,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n var isAdditionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = isAdditionalViewActive && (rtlEnabled ? -1 === moveOffset : 1 === moveOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var offset = -moveOffset * this._getRtlCorrection() * (shouldDoubleOffset ? 2 : 1);\r\n var date = this._getDateByOffset(offset);\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element()) / this.option(\"viewsCount\")\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var isMultiView = this.option(\"viewsCount\") > 1;\r\n var view;\r\n var additionalView;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView;\r\n additionalView = isMultiView && this._view\r\n } else if (offset < -.5 && this._afterView) {\r\n view = isMultiView ? this._additionalView : this._afterView;\r\n additionalView = isMultiView ? this._afterView : null\r\n } else {\r\n view = this._view;\r\n additionalView = isMultiView ? this._additionalView : null\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(view, additionalView))\r\n },\r\n _getViewsCaption: function(view, additionalView) {\r\n var caption = view.getNavigatorCaption();\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n if (viewsCount > 1 && additionalView) {\r\n var additionalViewCaption = additionalView.getNavigatorCaption();\r\n caption = \"\".concat(caption, \" - \").concat(additionalViewCaption)\r\n }\r\n return caption\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: args => {\r\n this._toTodayView(args)\r\n },\r\n type: isFluent() ? \"normal\" : \"default\",\r\n stylingMode: isFluent() ? \"outlined\" : \"text\",\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"<div>\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW);\r\n if (this.option(\"viewsCount\") > 1) {\r\n fx.stop(this._additionalView.$element(), true);\r\n this._popAnimationView(this._additionalView, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW)\r\n }\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._selectionStrategy.selectValue(today, args.event);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._selectionStrategy.selectValue(today, args.event);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate);\r\n this._selectionStrategy.updateAriaSelected()\r\n },\r\n _rearrangeViews: function(offset) {\r\n var _this$viewToRemoveKey;\r\n if (0 === offset) {\r\n return\r\n }\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n var viewBeforeCreateKey;\r\n var viewAfterRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\";\r\n viewBeforeCreateKey = \"_view\";\r\n viewAfterRemoveKey = 1 === viewsCount ? \"_view\" : \"_additionalView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\";\r\n viewBeforeCreateKey = 1 === viewsCount ? \"_view\" : \"_additionalView\";\r\n viewAfterRemoveKey = \"_view\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n null === (_this$viewToRemoveKey = this[viewToRemoveKey]) || void 0 === _this$viewToRemoveKey ? void 0 : _this$viewToRemoveKey.$element().remove();\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset * viewsCount, destinationDate));\r\n this[viewAfterRemoveKey].$element().remove();\r\n if (1 === viewsCount) {\r\n this[viewAfterRemoveKey] = this[viewToCreateKey]\r\n } else {\r\n this[viewAfterRemoveKey] = this[viewBeforeCreateKey];\r\n this[viewBeforeCreateKey] = this[viewToCreateKey]\r\n }\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._additionalView && this._additionalView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._additionalView;\r\n delete this._beforeView;\r\n delete this._afterView;\r\n delete this._skipNavigate\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._resetActiveState();\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _shouldSkipFocusEvent(event) {\r\n var {\r\n target: target,\r\n relatedTarget: relatedTarget\r\n } = event;\r\n return $(target).parents(\".\".concat(CALENDAR_CLASS)).length && $(relatedTarget).parents(\".\".concat(CALENDAR_CLASS)).length\r\n },\r\n _focusInHandler: function(event) {\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(true, this.$element())\r\n },\r\n _focusOutHandler: function(event) {\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n var _this$_additionalView2;\r\n this._view.option(\"contouredDate\", null);\r\n null === (_this$_additionalView2 = this._additionalView) || void 0 === _this$_additionalView2 ? void 0 : _this$_additionalView2.option(\"contouredDate\", null)\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(false, this.$element())\r\n },\r\n _updateViewsOption: function(optionName, newValue) {\r\n var _this$_additionalView3, _this$_beforeView, _this$_afterView;\r\n this._view.option(optionName, newValue);\r\n null === (_this$_additionalView3 = this._additionalView) || void 0 === _this$_additionalView3 ? void 0 : _this$_additionalView3.option(optionName, newValue);\r\n null === (_this$_beforeView = this._beforeView) || void 0 === _this$_beforeView ? void 0 : _this$_beforeView.option(optionName, newValue);\r\n null === (_this$_afterView = this._afterView) || void 0 === _this$_afterView ? void 0 : _this$_afterView.option(optionName, newValue)\r\n },\r\n _setViewsMinOption: function(min) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMin\", this._convertToDate(min));\r\n this._updateViewsOption(\"min\", this._getMinDate())\r\n },\r\n _setViewsMaxOption: function(max) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMax\", this._convertToDate(max));\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _restoreViewsMinMaxOptions: function() {\r\n this._resetActiveState();\r\n this.option({\r\n _rangeMin: null,\r\n _rangeMax: null\r\n });\r\n this._updateViewsOption(\"min\", this._getMinDate());\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _updateNavigatorLabels: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n zoomLevel = zoomLevel.charAt(0).toUpperCase() + zoomLevel.slice(1);\r\n var captionButtonText = this._navigator._caption.option(\"text\");\r\n var localizedPrevButtonLabel = messageLocalization.format(\"dxCalendar-previous\".concat(zoomLevel, \"ButtonLabel\"));\r\n var localizedCaptionLabel = messageLocalization.format(\"dxCalendar-caption\".concat(zoomLevel, \"Label\"));\r\n var localizedNextButtonLabel = messageLocalization.format(\"dxCalendar-next\".concat(zoomLevel, \"ButtonLabel\"));\r\n this.setAria(\"label\", localizedPrevButtonLabel, this._navigator._prevButton.$element());\r\n this.setAria(\"label\", \"\".concat(captionButtonText, \". \").concat(localizedCaptionLabel), this._navigator._caption.$element());\r\n this.setAria(\"label\", localizedNextButtonLabel, this._navigator._nextButton.$element())\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._view._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._view._getCellByDate(item))\r\n });\r\n if (this.option(\"viewsCount\") > 1) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._additionalView._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._additionalView._getCellByDate(item))\r\n })\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var view = this._getActiveView(value);\r\n var $newCell = view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"selectionMode\":\r\n this._refreshSelectionStrategy();\r\n this._initCurrentDate();\r\n break;\r\n case \"selectWeekOnClick\":\r\n this._refreshViews();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"focusStateEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n this._selectionStrategy.processValueChanged(value, previousValue);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"viewsCount\":\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n case \"showWeekNumbers\":\r\n case \"weekNumberRule\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.single.selection.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nclass CalendarSingleSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"SingleSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"single\"\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n this.skipNavigate();\r\n this.dateValue(selectedValue, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = [this.dateOption(\"value\")];\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n return this.dateOption(\"value\")\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", null)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value[0])\r\n }\r\n}\r\nexport default CalendarSingleSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.multiple.selection.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nclass CalendarMultiSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"MultiSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"multi\",\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var value = [...this.dateOption(\"value\")];\r\n var alreadySelectedIndex = value.findIndex(date => (null === date || void 0 === date ? void 0 : date.toDateString()) === selectedValue.toDateString());\r\n if (alreadySelectedIndex > -1) {\r\n value.splice(alreadySelectedIndex, 1)\r\n } else {\r\n value.push(selectedValue)\r\n }\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n this.dateValue(value, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = this.dateOption(\"value\");\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n var dates = this.dateOption(\"value\").filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [])\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n this.dateValue(selectedDates, event)\r\n }\r\n}\r\nexport default CalendarMultiSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.range.selection.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nvar DAY_INTERVAL = 864e5;\r\nclass CalendarRangeSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"RangeSelection\"\r\n }\r\n getViewOptions() {\r\n var value = this._getValue();\r\n var range = this._getDaysInRange(value[0], value[1]);\r\n return {\r\n value: value,\r\n range: range,\r\n selectionMode: \"range\",\r\n onCellHover: this._cellHoverHandler.bind(this),\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var [startDate, endDate] = this._getValue();\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n if (true === this.calendar.option(\"_allowChangeSelectionOrder\")) {\r\n this.calendar._valueSelected = true;\r\n if (\"startDate\" === this.calendar.option(\"_currentSelection\")) {\r\n if (this.calendar._convertToDate(selectedValue) > this.calendar._convertToDate(endDate)) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue([selectedValue, endDate], e)\r\n }\r\n } else if (this.calendar._convertToDate(selectedValue) >= this.calendar._convertToDate(startDate)) {\r\n this.dateValue([startDate, selectedValue], e)\r\n } else {\r\n this.dateValue([selectedValue, null], e)\r\n }\r\n } else if (!startDate || endDate) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue(startDate < selectedValue ? [startDate, selectedValue] : [selectedValue, startDate], e)\r\n }\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = this._getValue();\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n processValueChanged(value, previousValue) {\r\n super.processValueChanged(value, previousValue);\r\n var range = this._getRange();\r\n this._updateViewsOption(\"range\", range)\r\n }\r\n getDefaultCurrentDate() {\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n var value = this.dateOption(\"value\");\r\n if (_allowChangeSelectionOrder) {\r\n if (\"startDate\" === _currentSelection && value[0]) {\r\n return value[0]\r\n }\r\n if (\"endDate\" === _currentSelection && value[1]) {\r\n return value[1]\r\n }\r\n }\r\n var dates = value.filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [null, null])\r\n }\r\n _getValue() {\r\n var value = this.dateOption(\"value\");\r\n if (!value.length) {\r\n return value\r\n }\r\n var [startDate, endDate] = value;\r\n if (startDate && endDate && startDate > endDate) {\r\n [startDate, endDate] = [endDate, startDate]\r\n }\r\n return [startDate, endDate]\r\n }\r\n _getRange() {\r\n var [startDate, endDate] = this._getValue();\r\n return this._getDaysInRange(startDate, endDate)\r\n }\r\n _getDaysInRange(startDate, endDate) {\r\n if (!startDate || !endDate) {\r\n return []\r\n }\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.calendar.option();\r\n var isAdditionalViewDate = this.calendar._isAdditionalViewDate(currentDate);\r\n var firstDateInViews = dateUtils.getFirstMonthDate(dateUtils.addDateInterval(currentDate, \"month\", isAdditionalViewDate ? -2 : -1));\r\n var lastDateInViews = dateUtils.getLastMonthDate(dateUtils.addDateInterval(currentDate, \"month\", isAdditionalViewDate ? 1 : viewsCount));\r\n var rangeStartDate = new Date(Math.max(firstDateInViews, startDate));\r\n var rangeEndDate = new Date(Math.min(lastDateInViews, endDate));\r\n return [...dateUtils.getDatesOfInterval(rangeStartDate, rangeEndDate, DAY_INTERVAL), rangeEndDate]\r\n }\r\n _cellHoverHandler(e) {\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n var [startDate, endDate] = this._getValue();\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n if (isMaxZoomLevel) {\r\n var skipHoveredRange = _allowChangeSelectionOrder && \"startDate\" === _currentSelection;\r\n if (startDate && !endDate && !skipHoveredRange) {\r\n if (e.value > startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(startDate, e.value));\r\n return\r\n }\r\n } else if (!startDate && endDate && !(_allowChangeSelectionOrder && \"endDate\" === _currentSelection)) {\r\n if (e.value < endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, endDate));\r\n return\r\n }\r\n } else if (startDate && endDate) {\r\n if (\"startDate\" === _currentSelection && e.value < startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, startDate));\r\n return\r\n } else if (\"endDate\" === _currentSelection && e.value > endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(endDate, e.value));\r\n return\r\n }\r\n }\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n }\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n var value = selectedDates.length ? [selectedDates[0], selectedDates[selectedDates.length - 1]] : [null, null];\r\n this.dateValue(value, event)\r\n }\r\n}\r\nexport default CalendarRangeSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxCalendar from 'devextreme/ui/calendar';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxCalendarComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxCalendar]\r\n\r\n */\r\nclass DxCalendarComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'cellTemplateChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disabledDatesChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'firstDayOfWeekChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'maxZoomLevelChange' },\r\n { emit: 'minChange' },\r\n { emit: 'minZoomLevelChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'selectWeekOnClickChange' },\r\n { emit: 'showTodayButtonChange' },\r\n { emit: 'showWeekNumbersChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'weekNumberRuleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'zoomLevelChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.cellTemplate]\r\n \r\n */\r\n get cellTemplate() {\r\n return this._getOption('cellTemplate');\r\n }\r\n set cellTemplate(value) {\r\n this._setOption('cellTemplate', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.disabledDates]\r\n \r\n */\r\n get disabledDates() {\r\n return this._getOption('disabledDates');\r\n }\r\n set disabledDates(value) {\r\n this._setOption('disabledDates', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.firstDayOfWeek]\r\n \r\n */\r\n get firstDayOfWeek() {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.maxZoomLevel]\r\n \r\n */\r\n get maxZoomLevel() {\r\n return this._getOption('maxZoomLevel');\r\n }\r\n set maxZoomLevel(value) {\r\n this._setOption('maxZoomLevel', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.minZoomLevel]\r\n \r\n */\r\n get minZoomLevel() {\r\n return this._getOption('minZoomLevel');\r\n }\r\n set minZoomLevel(value) {\r\n this._setOption('minZoomLevel', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.selectWeekOnClick]\r\n \r\n */\r\n get selectWeekOnClick() {\r\n return this._getOption('selectWeekOnClick');\r\n }\r\n set selectWeekOnClick(value) {\r\n this._setOption('selectWeekOnClick', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.showTodayButton]\r\n \r\n */\r\n get showTodayButton() {\r\n return this._getOption('showTodayButton');\r\n }\r\n set showTodayButton(value) {\r\n this._setOption('showTodayButton', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.showWeekNumbers]\r\n \r\n */\r\n get showWeekNumbers() {\r\n return this._getOption('showWeekNumbers');\r\n }\r\n set showWeekNumbers(value) {\r\n this._setOption('showWeekNumbers', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.weekNumberRule]\r\n \r\n */\r\n get weekNumberRule() {\r\n return this._getOption('weekNumberRule');\r\n }\r\n set weekNumberRule(value) {\r\n this._setOption('weekNumberRule', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxCalendarOptions.zoomLevel]\r\n \r\n */\r\n get zoomLevel() {\r\n return this._getOption('zoomLevel');\r\n }\r\n set zoomLevel(value) {\r\n this._setOption('zoomLevel', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxCalendar(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('disabledDates', changes);\r\n this.setupChanges('validationErrors', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('disabledDates');\r\n this._idh.doCheck('validationErrors');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxCalendarComponent.ɵfac = function DxCalendarComponent_Factory(t) { return new (t || DxCalendarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxCalendarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxCalendarComponent, selectors: [[\"dx-calendar\"]], hostBindings: function DxCalendarComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxCalendarComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxCalendarComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", cellTemplate: \"cellTemplate\", dateSerializationFormat: \"dateSerializationFormat\", disabled: \"disabled\", disabledDates: \"disabledDates\", elementAttr: \"elementAttr\", firstDayOfWeek: \"firstDayOfWeek\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", max: \"max\", maxZoomLevel: \"maxZoomLevel\", min: \"min\", minZoomLevel: \"minZoomLevel\", name: \"name\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", selectionMode: \"selectionMode\", selectWeekOnClick: \"selectWeekOnClick\", showTodayButton: \"showTodayButton\", showWeekNumbers: \"showWeekNumbers\", tabIndex: \"tabIndex\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", weekNumberRule: \"weekNumberRule\", width: \"width\", zoomLevel: \"zoomLevel\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", cellTemplateChange: \"cellTemplateChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", disabledChange: \"disabledChange\", disabledDatesChange: \"disabledDatesChange\", elementAttrChange: \"elementAttrChange\", firstDayOfWeekChange: \"firstDayOfWeekChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", maxChange: \"maxChange\", maxZoomLevelChange: \"maxZoomLevelChange\", minChange: \"minChange\", minZoomLevelChange: \"minZoomLevelChange\", nameChange: \"nameChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", selectionModeChange: \"selectionModeChange\", selectWeekOnClickChange: \"selectWeekOnClickChange\", showTodayButtonChange: \"showTodayButtonChange\", showWeekNumbersChange: \"showWeekNumbersChange\", tabIndexChange: \"tabIndexChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", weekNumberRuleChange: \"weekNumberRuleChange\", widthChange: \"widthChange\", zoomLevelChange: \"zoomLevelChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxCalendarComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCalendarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-calendar',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], cellTemplate: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disabledDates: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], firstDayOfWeek: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], maxZoomLevel: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], minZoomLevel: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], selectWeekOnClick: [{\r\n type: Input\r\n }], showTodayButton: [{\r\n type: Input\r\n }], showWeekNumbers: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], weekNumberRule: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], zoomLevel: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], cellTemplateChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disabledDatesChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], firstDayOfWeekChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], maxZoomLevelChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], minZoomLevelChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], selectWeekOnClickChange: [{\r\n type: Output\r\n }], showTodayButtonChange: [{\r\n type: Output\r\n }], showWeekNumbersChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], weekNumberRuleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], zoomLevelChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxCalendarModule {\r\n}\r\n/** @nocollapse */ DxCalendarModule.ɵfac = function DxCalendarModule_Factory(t) { return new (t || DxCalendarModule)(); };\r\n/** @nocollapse */ DxCalendarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxCalendarModule });\r\n/** @nocollapse */ DxCalendarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCalendarModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxCalendarComponent\r\n ],\r\n exports: [\r\n DxCalendarComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxCalendarModule, { declarations: [DxCalendarComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxCalendarComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxCalendarComponent, DxCalendarModule };\n","/**\r\n * DevExtreme (esm/viz/chart_components/crosshair.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nvar mathAbs = math.abs;\r\nvar mathMin = math.min;\r\nvar mathMax = math.max;\r\nvar mathFloor = math.floor;\r\nvar HORIZONTAL = \"horizontal\";\r\nvar VERTICAL = \"vertical\";\r\nvar LABEL_BACKGROUND_PADDING_X = 8;\r\nvar LABEL_BACKGROUND_PADDING_Y = 4;\r\nvar CENTER = \"center\";\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\nexport function getMargins() {\r\n return {\r\n x: LABEL_BACKGROUND_PADDING_X,\r\n y: LABEL_BACKGROUND_PADDING_Y\r\n }\r\n}\r\n\r\nfunction getRectangleBBox(bBox) {\r\n return {\r\n x: bBox.x - LABEL_BACKGROUND_PADDING_X,\r\n y: bBox.y - LABEL_BACKGROUND_PADDING_Y,\r\n width: bBox.width + 2 * LABEL_BACKGROUND_PADDING_X,\r\n height: bBox.height + 2 * LABEL_BACKGROUND_PADDING_Y\r\n }\r\n}\r\n\r\nfunction getLabelCheckerPosition(x, y, isHorizontal, canvas) {\r\n var params = isHorizontal ? [\"x\", \"width\", \"y\", \"height\", y, 0] : [\"y\", \"height\", \"x\", \"width\", x, 1];\r\n return function(bBox, position, coord) {\r\n var labelCoord = {\r\n x: coord.x,\r\n y: coord.y\r\n };\r\n var rectangleBBox = getRectangleBBox(bBox);\r\n var delta = isHorizontal ? coord.y - bBox.y - bBox.height / 2 : coord.y - bBox.y;\r\n labelCoord.y = isHorizontal || !isHorizontal && position === BOTTOM ? coord.y + delta : coord.y;\r\n if (rectangleBBox[params[0]] < 0) {\r\n labelCoord[params[0]] -= rectangleBBox[params[0]]\r\n } else if (rectangleBBox[params[0]] + rectangleBBox[params[1]] + delta * params[5] > canvas[params[1]]) {\r\n labelCoord[params[0]] -= rectangleBBox[params[0]] + rectangleBBox[params[1]] + delta * params[5] - canvas[params[1]]\r\n }\r\n if (params[4] - rectangleBBox[params[3]] / 2 < 0) {\r\n labelCoord[params[2]] -= params[4] - rectangleBBox[params[3]] / 2\r\n } else if (params[4] + rectangleBBox[params[3]] / 2 > canvas[params[3]]) {\r\n labelCoord[params[2]] -= params[4] + rectangleBBox[params[3]] / 2 - canvas[params[3]]\r\n }\r\n return labelCoord\r\n }\r\n}\r\nexport function Crosshair(renderer, options, params, group) {\r\n this._renderer = renderer;\r\n this._crosshairGroup = group;\r\n this._options = {};\r\n this.update(options, params)\r\n}\r\nCrosshair.prototype = {\r\n constructor: Crosshair,\r\n update: function(options, params) {\r\n var canvas = params.canvas;\r\n this._canvas = {\r\n top: canvas.top,\r\n bottom: canvas.height - canvas.bottom,\r\n left: canvas.left,\r\n right: canvas.width - canvas.right,\r\n width: canvas.width,\r\n height: canvas.height\r\n };\r\n this._axes = params.axes;\r\n this._panes = params.panes;\r\n this._prepareOptions(options, HORIZONTAL);\r\n this._prepareOptions(options, VERTICAL)\r\n },\r\n dispose: function() {\r\n this._renderer = this._crosshairGroup = this._options = this._axes = this._canvas = this._horizontalGroup = this._verticalGroup = this._horizontal = this._vertical = this._circle = this._panes = null\r\n },\r\n _prepareOptions: function(options, direction) {\r\n var lineOptions = options[direction + \"Line\"];\r\n this._options[direction] = {\r\n visible: lineOptions.visible,\r\n line: {\r\n stroke: lineOptions.color || options.color,\r\n \"stroke-width\": lineOptions.width || options.width,\r\n dashStyle: lineOptions.dashStyle || options.dashStyle,\r\n opacity: lineOptions.opacity || options.opacity,\r\n \"stroke-linecap\": \"butt\"\r\n },\r\n label: extend(true, {}, options.label, lineOptions.label)\r\n }\r\n },\r\n _createLines: function(options, sharpParam, group) {\r\n var lines = [];\r\n var canvas = this._canvas;\r\n var points = [canvas.left, canvas.top, canvas.left, canvas.top];\r\n for (var i = 0; i < 2; i++) {\r\n lines.push(this._renderer.path(points, \"line\").attr(options).sharp(sharpParam).append(group))\r\n }\r\n return lines\r\n },\r\n render: function() {\r\n var renderer = this._renderer;\r\n var options = this._options;\r\n var verticalOptions = options.vertical;\r\n var horizontalOptions = options.horizontal;\r\n var extraOptions = horizontalOptions.visible ? horizontalOptions.line : verticalOptions.line;\r\n var circleOptions = {\r\n stroke: extraOptions.stroke,\r\n \"stroke-width\": extraOptions[\"stroke-width\"],\r\n dashStyle: extraOptions.dashStyle,\r\n opacity: extraOptions.opacity\r\n };\r\n var canvas = this._canvas;\r\n this._horizontal = {};\r\n this._vertical = {};\r\n this._circle = renderer.circle(canvas.left, canvas.top, 0).attr(circleOptions).append(this._crosshairGroup);\r\n this._horizontalGroup = renderer.g().append(this._crosshairGroup);\r\n this._verticalGroup = renderer.g().append(this._crosshairGroup);\r\n if (verticalOptions.visible) {\r\n this._vertical.lines = this._createLines(verticalOptions.line, \"h\", this._verticalGroup);\r\n this._vertical.labels = this._createLabels(this._axes[0], verticalOptions, false, this._verticalGroup)\r\n }\r\n if (horizontalOptions.visible) {\r\n this._horizontal.lines = this._createLines(horizontalOptions.line, \"v\", this._horizontalGroup);\r\n this._horizontal.labels = this._createLabels(this._axes[1], horizontalOptions, true, this._horizontalGroup)\r\n }\r\n this.hide()\r\n },\r\n _createLabels: function(axes, options, isHorizontal, group) {\r\n var canvas = this._canvas;\r\n var renderer = this._renderer;\r\n var x;\r\n var y;\r\n var text;\r\n var labels = [];\r\n var background;\r\n var currentLabelPos;\r\n var labelOptions = options.label;\r\n if (labelOptions.visible) {\r\n axes.forEach((function(axis) {\r\n var position = axis.getOptions().position;\r\n if (axis.getTranslator().getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n currentLabelPos = axis.getLabelsPosition();\r\n if (isHorizontal) {\r\n y = canvas.top;\r\n x = currentLabelPos\r\n } else {\r\n x = canvas.left;\r\n y = currentLabelPos\r\n }\r\n var align = position === TOP || position === BOTTOM ? CENTER : position === RIGHT ? LEFT : RIGHT;\r\n background = renderer.rect(0, 0, 0, 0).attr({\r\n fill: labelOptions.backgroundColor || options.line.stroke\r\n }).append(group);\r\n text = renderer.text(\"0\", 0, 0).css(patchFontOptions(options.label.font)).attr({\r\n align: align,\r\n class: labelOptions.cssClass\r\n }).append(group);\r\n labels.push({\r\n text: text,\r\n background: background,\r\n axis: axis,\r\n options: labelOptions,\r\n pos: {\r\n coord: currentLabelPos,\r\n side: position\r\n },\r\n startXY: {\r\n x: x,\r\n y: y\r\n }\r\n })\r\n }))\r\n }\r\n return labels\r\n },\r\n _updateText: function(value, axisName, labels, point, func) {\r\n var that = this;\r\n labels.forEach((function(label) {\r\n var axis = label.axis;\r\n var coord = label.startXY;\r\n var textElement = label.text;\r\n var backgroundElement = label.background;\r\n var text = \"\";\r\n if (!axis.name || axis.name === axisName) {\r\n text = axis.getFormattedValue(value, label.options, point)\r\n }\r\n if (text) {\r\n textElement.attr({\r\n text: text,\r\n x: coord.x,\r\n y: coord.y\r\n });\r\n textElement.attr(func(textElement.getBBox(), label.pos.side, coord));\r\n that._updateLinesCanvas(label);\r\n backgroundElement.attr(getRectangleBBox(textElement.getBBox()))\r\n } else {\r\n textElement.attr({\r\n text: \"\"\r\n });\r\n backgroundElement.attr({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n })\r\n }\r\n }))\r\n },\r\n hide: function() {\r\n this._crosshairGroup.attr({\r\n visibility: \"hidden\"\r\n })\r\n },\r\n _updateLinesCanvas: function(label) {\r\n var position = label.pos.side;\r\n var labelCoord = label.pos.coord;\r\n var coords = this._linesCanvas;\r\n var canvas = this._canvas;\r\n coords[position] = coords[position] !== canvas[position] && mathAbs(coords[position] - canvas[position]) < mathAbs(labelCoord - canvas[position]) ? coords[position] : labelCoord\r\n },\r\n _updateLines: function(lines, x, y, r, isHorizontal) {\r\n var coords = this._linesCanvas;\r\n var canvas = this._canvas;\r\n var points = isHorizontal ? [\r\n [mathMin(x - r, coords.left), canvas.top, x - r, canvas.top],\r\n [x + r, canvas.top, mathMax(coords.right, x + r), canvas.top]\r\n ] : [\r\n [canvas.left, mathMin(coords.top, y - r), canvas.left, y - r],\r\n [canvas.left, y + r, canvas.left, mathMax(coords.bottom, y + r)]\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n lines[i].attr({\r\n points: points[i]\r\n }).sharp(isHorizontal ? \"v\" : \"h\", isHorizontal ? y === canvas.bottom ? -1 : 1 : x === canvas.right ? -1 : 1)\r\n }\r\n },\r\n _resetLinesCanvas: function() {\r\n var canvas = this._canvas;\r\n this._linesCanvas = {\r\n left: canvas.left,\r\n right: canvas.right,\r\n top: canvas.top,\r\n bottom: canvas.bottom\r\n }\r\n },\r\n _getClipRectForPane: function(x, y) {\r\n var panes = this._panes;\r\n var i;\r\n var coords;\r\n for (i = 0; i < panes.length; i++) {\r\n coords = panes[i].coords;\r\n if (coords.left <= x && coords.right >= x && coords.top <= y && coords.bottom >= y) {\r\n return panes[i].clipRect\r\n }\r\n }\r\n return {\r\n id: null\r\n }\r\n },\r\n show: function(data) {\r\n var point = data.point;\r\n var pointData = point.getCrosshairData(data.x, data.y);\r\n var r = point.getPointRadius();\r\n var horizontal = this._horizontal;\r\n var vertical = this._vertical;\r\n var rad = !r ? 0 : r + 3;\r\n var canvas = this._canvas;\r\n var x = mathFloor(pointData.x);\r\n var y = mathFloor(pointData.y);\r\n if (x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom) {\r\n this._crosshairGroup.attr({\r\n visibility: \"visible\"\r\n });\r\n this._resetLinesCanvas();\r\n this._circle.attr({\r\n cx: x,\r\n cy: y,\r\n r: rad,\r\n \"clip-path\": this._getClipRectForPane(x, y).id\r\n });\r\n if (horizontal.lines) {\r\n this._updateText(pointData.yValue, pointData.axis, horizontal.labels, point, getLabelCheckerPosition(x, y, true, canvas));\r\n this._updateLines(horizontal.lines, x, y, rad, true);\r\n this._horizontalGroup.attr({\r\n translateY: y - canvas.top\r\n })\r\n }\r\n if (vertical.lines) {\r\n this._updateText(pointData.xValue, pointData.axis, vertical.labels, point, getLabelCheckerPosition(x, y, false, canvas));\r\n this._updateLines(vertical.lines, x, y, rad, false);\r\n this._verticalGroup.attr({\r\n translateX: x - canvas.left\r\n })\r\n }\r\n } else {\r\n this.hide()\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/multi_axes_synchronizer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n debug\r\n} from \"../../core/utils/console\";\r\nimport {\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getLogExt,\r\n raiseToExt\r\n} from \"../core/utils\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar _math = Math;\r\nvar _floor = _math.floor;\r\nvar _max = _math.max;\r\nvar _abs = _math.abs;\r\n\r\nfunction getValueAxesPerPanes(valueAxes) {\r\n var result = {};\r\n valueAxes.forEach(axis => {\r\n var pane = axis.pane;\r\n if (!result[pane]) {\r\n result[pane] = []\r\n }\r\n result[pane].push(axis)\r\n });\r\n return result\r\n}\r\nvar linearConverter = br => ({\r\n transform: function(v, b) {\r\n return adjust(getLogExt(v, b, br.allowNegatives, br.linearThreshold))\r\n },\r\n getTicks: function(interval, tickValues, base) {\r\n var ticks = [];\r\n var tick = this.transform(tickValues[0], base);\r\n while (ticks.length < tickValues.length) {\r\n ticks.push(tick);\r\n tick = adjust(tick + interval)\r\n }\r\n return ticks\r\n }\r\n});\r\nvar logConverter = br => ({\r\n transform: function(v, b) {\r\n return adjust(raiseToExt(v, b, br.allowNegatives, br.linearThreshold))\r\n },\r\n getTicks: function(interval, tickValues, base) {\r\n var ticks = [];\r\n var tick;\r\n for (var i = 0; i < tickValues.length; i += 1) {\r\n tick = this.transform(tickValues[i], base);\r\n ticks.push(tick)\r\n }\r\n return ticks\r\n }\r\n});\r\n\r\nfunction convertAxisInfo(axisInfo, converter) {\r\n if (!axisInfo.isLogarithmic) {\r\n return\r\n }\r\n var base = axisInfo.logarithmicBase;\r\n var tickValues = axisInfo.tickValues;\r\n axisInfo.minValue = converter.transform(axisInfo.minValue, base);\r\n axisInfo.oldMinValue = converter.transform(axisInfo.oldMinValue, base);\r\n axisInfo.maxValue = converter.transform(axisInfo.maxValue, base);\r\n axisInfo.oldMaxValue = converter.transform(axisInfo.oldMaxValue, base);\r\n axisInfo.tickInterval = _math.round(axisInfo.tickInterval);\r\n if (axisInfo.tickInterval < 1) {\r\n axisInfo.tickInterval = 1\r\n }\r\n var ticks = converter.getTicks(axisInfo.tickInterval, tickValues, base);\r\n ticks.tickInterval = axisInfo.tickInterval;\r\n axisInfo.tickValues = ticks\r\n}\r\n\r\nfunction populateAxesInfo(axes) {\r\n return axes.reduce((function(result, axis) {\r\n var ticksValues = axis.getTicksValues();\r\n var majorTicks = ticksValues.majorTicksValues;\r\n var options = axis.getOptions();\r\n var businessRange = axis.getTranslator().getBusinessRange();\r\n var visibleArea = axis.getVisibleArea();\r\n var axisInfo;\r\n var tickInterval = axis._tickInterval;\r\n var synchronizedValue = options.synchronizedValue;\r\n var action = axis.getViewport().action;\r\n if (majorTicks && majorTicks.length > 0 && isNumeric(majorTicks[0]) && \"discrete\" !== options.type && !businessRange.isEmpty() && !(businessRange.breaks && businessRange.breaks.length) && \"zoom\" !== action && \"pan\" !== action) {\r\n axis.applyMargins();\r\n var startValue = axis.getTranslator().from(visibleArea[0]);\r\n var endValue = axis.getTranslator().from(visibleArea[1]);\r\n var minValue = startValue < endValue ? startValue : endValue;\r\n var maxValue = startValue < endValue ? endValue : startValue;\r\n if (minValue === maxValue && isDefined(synchronizedValue)) {\r\n tickInterval = _abs(majorTicks[0] - synchronizedValue) || 1;\r\n minValue = majorTicks[0] - tickInterval;\r\n maxValue = majorTicks[0] + tickInterval\r\n }\r\n axisInfo = {\r\n axis: axis,\r\n isLogarithmic: \"logarithmic\" === options.type,\r\n logarithmicBase: businessRange.base,\r\n tickValues: majorTicks,\r\n minorValues: ticksValues.minorTicksValues,\r\n minorTickInterval: axis._minorTickInterval,\r\n minValue: minValue,\r\n oldMinValue: minValue,\r\n maxValue: maxValue,\r\n oldMaxValue: maxValue,\r\n inverted: businessRange.invert,\r\n tickInterval: tickInterval,\r\n synchronizedValue: synchronizedValue\r\n };\r\n convertAxisInfo(axisInfo, linearConverter(axis.getTranslator().getBusinessRange()));\r\n result.push(axisInfo)\r\n }\r\n return result\r\n }), [])\r\n}\r\n\r\nfunction updateTickValues(axesInfo) {\r\n var maxTicksCount = axesInfo.reduce((max, axisInfo) => _max(max, axisInfo.tickValues.length), 0);\r\n axesInfo.forEach(axisInfo => {\r\n var ticksMultiplier;\r\n var ticksCount;\r\n var additionalStartTicksCount = 0;\r\n var synchronizedValue = axisInfo.synchronizedValue;\r\n var tickValues = axisInfo.tickValues;\r\n var tickInterval = axisInfo.tickInterval;\r\n if (isDefined(synchronizedValue)) {\r\n axisInfo.baseTickValue = axisInfo.invertedBaseTickValue = synchronizedValue;\r\n axisInfo.tickValues = [axisInfo.baseTickValue]\r\n } else {\r\n if (tickValues.length > 1 && tickInterval) {\r\n ticksMultiplier = _floor((maxTicksCount + 1) / tickValues.length);\r\n ticksCount = ticksMultiplier > 1 ? _floor((maxTicksCount + 1) / ticksMultiplier) : maxTicksCount;\r\n additionalStartTicksCount = _floor((ticksCount - tickValues.length) / 2);\r\n while (additionalStartTicksCount > 0 && 0 !== tickValues[0]) {\r\n tickValues.unshift(adjust(tickValues[0] - tickInterval));\r\n additionalStartTicksCount--\r\n }\r\n while (tickValues.length < ticksCount) {\r\n tickValues.push(adjust(tickValues[tickValues.length - 1] + tickInterval))\r\n }\r\n axisInfo.tickInterval = tickInterval / ticksMultiplier\r\n }\r\n axisInfo.baseTickValue = tickValues[0];\r\n axisInfo.invertedBaseTickValue = tickValues[tickValues.length - 1]\r\n }\r\n })\r\n}\r\n\r\nfunction getAxisRange(axisInfo) {\r\n return axisInfo.maxValue - axisInfo.minValue || 1\r\n}\r\n\r\nfunction getMainAxisInfo(axesInfo) {\r\n for (var i = 0; i < axesInfo.length; i++) {\r\n if (!axesInfo[i].stubData) {\r\n return axesInfo[i]\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction correctMinMaxValues(axesInfo) {\r\n var mainAxisInfo = getMainAxisInfo(axesInfo);\r\n var mainAxisInfoTickInterval = mainAxisInfo.tickInterval;\r\n axesInfo.forEach(axisInfo => {\r\n var scale;\r\n var move;\r\n var mainAxisBaseValueOffset;\r\n var valueFromAxisInfo;\r\n if (axisInfo !== mainAxisInfo) {\r\n if (mainAxisInfoTickInterval && axisInfo.tickInterval) {\r\n if (axisInfo.stubData && isDefined(axisInfo.synchronizedValue)) {\r\n axisInfo.oldMinValue = axisInfo.minValue = axisInfo.baseTickValue - (mainAxisInfo.baseTickValue - mainAxisInfo.minValue) / mainAxisInfoTickInterval * axisInfo.tickInterval;\r\n axisInfo.oldMaxValue = axisInfo.maxValue = axisInfo.baseTickValue - (mainAxisInfo.baseTickValue - mainAxisInfo.maxValue) / mainAxisInfoTickInterval * axisInfo.tickInterval\r\n }\r\n scale = mainAxisInfoTickInterval / getAxisRange(mainAxisInfo) / axisInfo.tickInterval * getAxisRange(axisInfo);\r\n axisInfo.maxValue = axisInfo.minValue + getAxisRange(axisInfo) / scale\r\n }\r\n if (mainAxisInfo.inverted && !axisInfo.inverted || !mainAxisInfo.inverted && axisInfo.inverted) {\r\n mainAxisBaseValueOffset = mainAxisInfo.maxValue - mainAxisInfo.invertedBaseTickValue\r\n } else {\r\n mainAxisBaseValueOffset = mainAxisInfo.baseTickValue - mainAxisInfo.minValue\r\n }\r\n valueFromAxisInfo = getAxisRange(axisInfo);\r\n move = (mainAxisBaseValueOffset / getAxisRange(mainAxisInfo) - (axisInfo.baseTickValue - axisInfo.minValue) / valueFromAxisInfo) * valueFromAxisInfo;\r\n axisInfo.minValue -= move;\r\n axisInfo.maxValue -= move\r\n }\r\n })\r\n}\r\n\r\nfunction calculatePaddings(axesInfo) {\r\n var minPadding;\r\n var maxPadding;\r\n var startPadding = 0;\r\n var endPadding = 0;\r\n axesInfo.forEach(axisInfo => {\r\n var inverted = axisInfo.inverted;\r\n minPadding = axisInfo.minValue > axisInfo.oldMinValue ? (axisInfo.minValue - axisInfo.oldMinValue) / getAxisRange(axisInfo) : 0;\r\n maxPadding = axisInfo.maxValue < axisInfo.oldMaxValue ? (axisInfo.oldMaxValue - axisInfo.maxValue) / getAxisRange(axisInfo) : 0;\r\n startPadding = _max(startPadding, inverted ? maxPadding : minPadding);\r\n endPadding = _max(endPadding, inverted ? minPadding : maxPadding)\r\n });\r\n return {\r\n start: startPadding,\r\n end: endPadding\r\n }\r\n}\r\n\r\nfunction correctMinMaxValuesByPaddings(axesInfo, paddings) {\r\n axesInfo.forEach(info => {\r\n var range = getAxisRange(info);\r\n var inverted = info.inverted;\r\n info.minValue = adjust(info.minValue - paddings[inverted ? \"end\" : \"start\"] * range);\r\n info.maxValue = adjust(info.maxValue + paddings[inverted ? \"start\" : \"end\"] * range)\r\n })\r\n}\r\n\r\nfunction updateTickValuesIfSynchronizedValueUsed(axesInfo) {\r\n var hasSynchronizedValue = false;\r\n axesInfo.forEach(info => {\r\n hasSynchronizedValue = hasSynchronizedValue || isDefined(info.synchronizedValue)\r\n });\r\n axesInfo.forEach(info => {\r\n var tickInterval = info.tickInterval;\r\n var tickValues = info.tickValues;\r\n var maxValue = info.maxValue;\r\n var minValue = info.minValue;\r\n var tick;\r\n if (hasSynchronizedValue && tickInterval) {\r\n while ((tick = adjust(tickValues[0] - tickInterval)) >= minValue) {\r\n tickValues.unshift(tick)\r\n }\r\n tick = tickValues[tickValues.length - 1];\r\n while ((tick = adjust(tick + tickInterval)) <= maxValue) {\r\n tickValues.push(tick)\r\n }\r\n }\r\n while (tickValues[0] + tickInterval / 10 < minValue) {\r\n tickValues.shift()\r\n }\r\n while (tickValues[tickValues.length - 1] - tickInterval / 10 > maxValue) {\r\n tickValues.pop()\r\n }\r\n })\r\n}\r\n\r\nfunction applyMinMaxValues(axesInfo) {\r\n axesInfo.forEach(info => {\r\n var axis = info.axis;\r\n var range = axis.getTranslator().getBusinessRange();\r\n if (range.min === range.minVisible) {\r\n range.min = info.minValue\r\n }\r\n if (range.max === range.maxVisible) {\r\n range.max = info.maxValue\r\n }\r\n range.minVisible = info.minValue;\r\n range.maxVisible = info.maxValue;\r\n if (range.min > range.minVisible) {\r\n range.min = range.minVisible\r\n }\r\n if (range.max < range.maxVisible) {\r\n range.max = range.maxVisible\r\n }\r\n axis.getTranslator().updateBusinessRange(range);\r\n axis.setTicks({\r\n majorTicks: info.tickValues,\r\n minorTicks: info.minorValues\r\n })\r\n })\r\n}\r\n\r\nfunction correctAfterSynchronize(axesInfo) {\r\n var invalidAxisInfo = [];\r\n var correctValue;\r\n axesInfo.forEach(info => {\r\n if (info.oldMaxValue - info.oldMinValue === 0) {\r\n invalidAxisInfo.push(info)\r\n } else if (!isDefined(correctValue) && !isDefined(info.synchronizedValue)) {\r\n correctValue = _abs((info.maxValue - info.minValue) / (info.tickValues[_floor(info.tickValues.length / 2)] - info.minValue || info.maxValue))\r\n }\r\n });\r\n if (!isDefined(correctValue)) {\r\n return\r\n }\r\n invalidAxisInfo.forEach(info => {\r\n var firstTick = info.tickValues[0];\r\n var correctedTick = firstTick * correctValue;\r\n if (firstTick > 0) {\r\n info.maxValue = correctedTick;\r\n info.minValue = 0\r\n } else if (firstTick < 0) {\r\n info.minValue = correctedTick;\r\n info.maxValue = 0\r\n }\r\n })\r\n}\r\n\r\nfunction updateMinorTicks(axesInfo) {\r\n axesInfo.forEach((function(axisInfo) {\r\n if (!axisInfo.minorTickInterval) {\r\n return\r\n }\r\n var ticks = [];\r\n var interval = axisInfo.minorTickInterval;\r\n var tickCount = axisInfo.tickInterval / interval - 1;\r\n for (var i = 1; i < axisInfo.tickValues.length; i++) {\r\n var tick = axisInfo.tickValues[i - 1];\r\n for (var j = 0; j < tickCount; j++) {\r\n tick += interval;\r\n ticks.push(tick)\r\n }\r\n }\r\n axisInfo.minorValues = ticks\r\n }))\r\n}\r\n\r\nfunction allAxesValuesOnSameSideFromZero(axesInfo) {\r\n var allPositive = true;\r\n var allNegative = true;\r\n axesInfo.forEach(axis => {\r\n if (axis.oldMinValue > 0 || axis.oldMaxValue > 0) {\r\n allNegative = false\r\n }\r\n if (axis.oldMinValue < 0 || axis.oldMaxValue < 0) {\r\n allPositive = false\r\n }\r\n });\r\n return allPositive || allNegative\r\n}\r\n\r\nfunction correctPaddings(axesInfo, paddings) {\r\n if (!allAxesValuesOnSameSideFromZero(axesInfo)) {\r\n return paddings\r\n }\r\n return axesInfo.reduce((prev, info) => {\r\n var inverted = info.inverted;\r\n var {\r\n start: start,\r\n end: end\r\n } = info.axis.getCorrectedValuesToZero(info.minValue, info.maxValue);\r\n if (isDefined(start) || isDefined(end)) {\r\n return inverted ? {\r\n start: prev.start,\r\n end: Math.min(prev.end, end)\r\n } : {\r\n start: Math.min(prev.start, start),\r\n end: prev.end\r\n }\r\n }\r\n return prev\r\n }, paddings)\r\n}\r\nvar multiAxesSynchronizer = {\r\n synchronize: function(valueAxes) {\r\n each(getValueAxesPerPanes(valueAxes), (function(_, axes) {\r\n var axesInfo;\r\n var paddings;\r\n if (axes.length > 1) {\r\n axesInfo = populateAxesInfo(axes);\r\n if (axesInfo.length < 2 || !getMainAxisInfo(axesInfo)) {\r\n return\r\n }\r\n updateTickValues(axesInfo);\r\n correctMinMaxValues(axesInfo);\r\n paddings = calculatePaddings(axesInfo);\r\n paddings = correctPaddings(axesInfo, paddings);\r\n correctMinMaxValuesByPaddings(axesInfo, paddings);\r\n correctAfterSynchronize(axesInfo);\r\n updateTickValuesIfSynchronizedValueUsed(axesInfo);\r\n updateMinorTicks(axesInfo);\r\n axesInfo.forEach(info => {\r\n convertAxisInfo(info, logConverter(info.axis.getTranslator().getBusinessRange()))\r\n });\r\n applyMinMaxValues(axesInfo)\r\n }\r\n }))\r\n }\r\n};\r\nexport default multiAxesSynchronizer;\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/scroll_bar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n fireEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Translator2D\r\n} from \"../translators/translator2d\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar MIN_SCROLL_BAR_SIZE = 2;\r\nexport var ScrollBar = function(renderer, group) {\r\n this._translator = new Translator2D({}, {}, {});\r\n this._scroll = renderer.rect().append(group);\r\n this._addEvents()\r\n};\r\n\r\nfunction _getXCoord(canvas, pos, offset, width) {\r\n var x = 0;\r\n if (\"right\" === pos) {\r\n x = canvas.width - canvas.right + offset\r\n } else if (\"left\" === pos) {\r\n x = canvas.left - offset - width\r\n }\r\n return x\r\n}\r\n\r\nfunction _getYCoord(canvas, pos, offset, width) {\r\n var y = 0;\r\n if (\"top\" === pos) {\r\n y = canvas.top - offset\r\n } else if (\"bottom\" === pos) {\r\n y = canvas.height - canvas.bottom + width + offset\r\n }\r\n return y\r\n}\r\nScrollBar.prototype = {\r\n _addEvents: function() {\r\n var scrollElement = this._scroll.element;\r\n eventsEngine.on(scrollElement, dragEventStart, e => {\r\n fireEvent({\r\n type: \"dxc-scroll-start\",\r\n originalEvent: e,\r\n target: scrollElement\r\n })\r\n });\r\n eventsEngine.on(scrollElement, dragEventMove, e => {\r\n var dX = -e.offset.x * this._scale;\r\n var dY = -e.offset.y * this._scale;\r\n var lx = this._offset - (this._layoutOptions.vertical ? dY : dX) / this._scale;\r\n this._applyPosition(lx, lx + this._translator.canvasLength / this._scale);\r\n fireEvent({\r\n type: \"dxc-scroll-move\",\r\n originalEvent: e,\r\n target: scrollElement,\r\n offset: {\r\n x: dX,\r\n y: dY\r\n }\r\n })\r\n });\r\n eventsEngine.on(scrollElement, dragEventEnd, e => {\r\n fireEvent({\r\n type: \"dxc-scroll-end\",\r\n originalEvent: e,\r\n target: scrollElement,\r\n offset: {\r\n x: -e.offset.x * this._scale,\r\n y: -e.offset.y * this._scale\r\n }\r\n })\r\n })\r\n },\r\n update: function(options) {\r\n var position = options.position;\r\n var isVertical = options.rotated;\r\n var defaultPosition = isVertical ? \"right\" : \"top\";\r\n var secondaryPosition = isVertical ? \"left\" : \"bottom\";\r\n if (position !== defaultPosition && position !== secondaryPosition) {\r\n position = defaultPosition\r\n }\r\n this._scroll.attr({\r\n rotate: !options.rotated ? -90 : 0,\r\n rotateX: 0,\r\n rotateY: 0,\r\n fill: options.color,\r\n width: options.width,\r\n opacity: options.opacity\r\n });\r\n this._layoutOptions = {\r\n width: options.width,\r\n offset: options.offset,\r\n vertical: isVertical,\r\n position: position\r\n };\r\n return this\r\n },\r\n init: function(range, stick) {\r\n var isDiscrete = \"discrete\" === range.axisType;\r\n this._translateWithOffset = isDiscrete && !stick ? 1 : 0;\r\n this._translator.update(extend({}, range, {\r\n minVisible: null,\r\n maxVisible: null,\r\n visibleCategories: null\r\n }, isDiscrete && {\r\n min: null,\r\n max: null\r\n } || {}), this._canvas, {\r\n isHorizontal: !this._layoutOptions.vertical,\r\n stick: stick\r\n });\r\n return this\r\n },\r\n getOptions: function() {\r\n return this._layoutOptions\r\n },\r\n setPane: function(panes) {\r\n var position = this._layoutOptions.position;\r\n var pane;\r\n if (\"left\" === position || \"top\" === position) {\r\n pane = panes[0]\r\n } else {\r\n pane = panes[panes.length - 1]\r\n }\r\n this.pane = pane.name;\r\n return this\r\n },\r\n updateSize: function(canvas) {\r\n this._canvas = extend({}, canvas);\r\n var options = this._layoutOptions;\r\n var pos = options.position;\r\n var offset = options.offset;\r\n var width = options.width;\r\n this._scroll.attr({\r\n translateX: _getXCoord(canvas, pos, offset, width),\r\n translateY: _getYCoord(canvas, pos, offset, width)\r\n })\r\n },\r\n getMultipleAxesSpacing: function() {\r\n return 0\r\n },\r\n estimateMargins: function() {\r\n return this.getMargins()\r\n },\r\n getMargins: function() {\r\n var options = this._layoutOptions;\r\n var margins = {\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0\r\n };\r\n margins[options.position] = options.width + options.offset;\r\n return margins\r\n },\r\n shift: function(margins) {\r\n var _that$_scroll$attr, _that$_scroll$attr2;\r\n var options = this._layoutOptions;\r\n var side = options.position;\r\n var isVertical = options.vertical;\r\n var attr = {\r\n translateX: null !== (_that$_scroll$attr = this._scroll.attr(\"translateX\")) && void 0 !== _that$_scroll$attr ? _that$_scroll$attr : 0,\r\n translateY: null !== (_that$_scroll$attr2 = this._scroll.attr(\"translateY\")) && void 0 !== _that$_scroll$attr2 ? _that$_scroll$attr2 : 0\r\n };\r\n var shift = margins[side];\r\n attr[isVertical ? \"translateX\" : \"translateY\"] += (\"left\" === side || \"top\" === side ? -1 : 1) * shift;\r\n this._scroll.attr(attr)\r\n },\r\n hideTitle: noop,\r\n hideOuterElements: noop,\r\n setPosition: function(min, max) {\r\n var translator = this._translator;\r\n var minPoint = isDefined(min) ? translator.translate(min, -this._translateWithOffset) : translator.translate(\"canvas_position_start\");\r\n var maxPoint = isDefined(max) ? translator.translate(max, this._translateWithOffset) : translator.translate(\"canvas_position_end\");\r\n this._offset = _min(minPoint, maxPoint);\r\n this._scale = translator.getScale(min, max);\r\n this._applyPosition(_min(minPoint, maxPoint), _max(minPoint, maxPoint))\r\n },\r\n customPositionIsAvailable: () => false,\r\n dispose: function() {\r\n this._scroll.dispose();\r\n this._scroll = this._translator = null\r\n },\r\n _applyPosition: function(x1, x2) {\r\n var visibleArea = this._translator.getCanvasVisibleArea();\r\n x1 = _max(x1, visibleArea.min);\r\n x1 = _min(x1, visibleArea.max);\r\n x2 = _min(x2, visibleArea.max);\r\n x2 = _max(x2, visibleArea.min);\r\n var height = Math.abs(x2 - x1);\r\n this._scroll.attr({\r\n y: x1,\r\n height: height < MIN_SCROLL_BAR_SIZE ? MIN_SCROLL_BAR_SIZE : height\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/shutter_zoom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar SHUTTER_EVENTS_NS = \".shutter-zoom\";\r\nvar DRAG_START_EVENT_NAME = dragEventStart + SHUTTER_EVENTS_NS;\r\nvar DRAG_UPDATE_EVENT_NAME = dragEventMove + SHUTTER_EVENTS_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + SHUTTER_EVENTS_NS;\r\n\r\nfunction getPointerCoord(rootOffset, canvas, rotated, e) {\r\n var coord = Math.floor(rotated ? e.pageY - rootOffset.top : e.pageX - rootOffset.left);\r\n var min = rotated ? canvas.y1 : canvas.x1;\r\n var max = rotated ? canvas.y2 : canvas.x2;\r\n if (coord < min) {\r\n coord = min\r\n } else if (coord > max) {\r\n coord = max\r\n }\r\n return coord\r\n}\r\n\r\nfunction checkCoords(rootOffset, canvas, e) {\r\n var x = e.pageX - rootOffset.left;\r\n var y = e.pageY - rootOffset.top;\r\n return x >= canvas.x1 && x <= canvas.x2 && y >= canvas.y1 && y <= canvas.y2\r\n}\r\n\r\nfunction dragStartHandler(ctx) {\r\n return function(e) {\r\n var offset = ctx.getRootOffset();\r\n var canvas = ctx.getCanvas();\r\n if (!checkCoords(offset, canvas, e)) {\r\n e.cancel = true;\r\n return\r\n }\r\n ctx.rootOffset = offset;\r\n ctx.canvas = canvas;\r\n ctx.startCoord = getPointerCoord(offset, canvas, ctx.rotated, e);\r\n ctx.triggerStart();\r\n ctx.rect.attr({\r\n x: canvas.x1,\r\n y: canvas.y1,\r\n width: canvas.width,\r\n height: canvas.height\r\n }).append(ctx.root)\r\n }\r\n}\r\n\r\nfunction dragHandler(ctx) {\r\n return function(e) {\r\n var curCoord = getPointerCoord(ctx.rootOffset, ctx.canvas, ctx.rotated, e);\r\n var attr = {};\r\n ctx.curCoord = curCoord;\r\n attr[ctx.rotated ? \"y\" : \"x\"] = Math.min(ctx.startCoord, curCoord);\r\n attr[ctx.rotated ? \"height\" : \"width\"] = Math.abs(ctx.startCoord - curCoord);\r\n ctx.rect.attr(attr)\r\n }\r\n}\r\n\r\nfunction dragEndHandler(ctx) {\r\n return function(e) {\r\n ctx.triggerEnd();\r\n ctx.rect.remove()\r\n }\r\n}\r\n\r\nfunction shutterZoom(options) {\r\n var chart = options.chart;\r\n var renderer = options.renderer;\r\n var rotated = options.rotated;\r\n var rect = renderer.rect(0, 0, 0, 0).attr(options.shutterOptions);\r\n var shutter = {\r\n rect: rect,\r\n root: renderer.root,\r\n rotated: rotated,\r\n triggerStart: function() {\r\n chart._eventTrigger(\"zoomStart\")\r\n },\r\n triggerEnd: function() {\r\n var tr = chart._argumentAxes[0].getTranslator();\r\n var rangeStart = Math.min(this.startCoord, this.curCoord);\r\n var rangeEnd = Math.max(this.startCoord, this.curCoord);\r\n chart._eventTrigger(\"zoomEnd\", {\r\n rangeStart: tr.from(rangeStart),\r\n rangeEnd: tr.from(rangeEnd)\r\n })\r\n },\r\n dispose: function() {\r\n renderer.root.off(SHUTTER_EVENTS_NS);\r\n rect.dispose()\r\n },\r\n getRootOffset: function() {\r\n return renderer.getRootOffset()\r\n },\r\n getCanvas: function() {\r\n var canvas = chart._canvas;\r\n var panes = chart.panes;\r\n var firstPane = panes[0].canvas;\r\n var lastPane = panes[panes.length - 1].canvas;\r\n return {\r\n x1: firstPane.left,\r\n y1: firstPane.top,\r\n x2: canvas.width - lastPane.right,\r\n y2: canvas.height - lastPane.bottom,\r\n width: canvas.width - firstPane.left - lastPane.right,\r\n height: canvas.height - firstPane.top - lastPane.bottom\r\n }\r\n }\r\n };\r\n renderer.root.off(SHUTTER_EVENTS_NS).on(DRAG_START_EVENT_NAME, {\r\n direction: rotated ? \"vertical\" : \"horizontal\",\r\n immediate: true\r\n }, dragStartHandler(shutter)).on(DRAG_UPDATE_EVENT_NAME, dragHandler(shutter)).on(DRAG_END_EVENT_NAME, dragEndHandler(shutter));\r\n return shutter\r\n}\r\nexport default {\r\n name: \"shutter_zoom\",\r\n init: function() {\r\n var options = this.option(\"shutterZoom\") || {};\r\n if (!options.enabled) {\r\n return\r\n }\r\n this._shutterZoom = shutterZoom({\r\n chart: this,\r\n renderer: this._renderer,\r\n rotated: this.option(\"rotated\"),\r\n shutterOptions: options\r\n })\r\n },\r\n dispose: function() {\r\n this._shutterZoom && this._shutterZoom.dispose()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/transform.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign as mathSign,\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n hasTouches\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DX_PREFIX = \"dx\";\r\nvar TRANSFORM = \"transform\";\r\nvar TRANSLATE = \"translate\";\r\nvar PINCH = \"pinch\";\r\nvar ROTATE = \"rotate\";\r\nvar START_POSTFIX = \"start\";\r\nvar UPDATE_POSTFIX = \"\";\r\nvar END_POSTFIX = \"end\";\r\nvar eventAliases = [];\r\nvar addAlias = function(eventName, eventArgs) {\r\n eventAliases.push({\r\n name: eventName,\r\n args: eventArgs\r\n })\r\n};\r\naddAlias(TRANSFORM, {\r\n scale: true,\r\n deltaScale: true,\r\n rotation: true,\r\n deltaRotation: true,\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(TRANSLATE, {\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(PINCH, {\r\n scale: true,\r\n deltaScale: true\r\n});\r\naddAlias(ROTATE, {\r\n rotation: true,\r\n deltaRotation: true\r\n});\r\nvar getVector = function(first, second) {\r\n return {\r\n x: second.pageX - first.pageX,\r\n y: -second.pageY + first.pageY,\r\n centerX: .5 * (second.pageX + first.pageX),\r\n centerY: .5 * (second.pageY + first.pageY)\r\n }\r\n};\r\nvar getEventVector = function(e) {\r\n var pointers = e.pointers;\r\n return getVector(pointers[0], pointers[1])\r\n};\r\nvar getDistance = function(vector) {\r\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y)\r\n};\r\nvar getScale = function(firstVector, secondVector) {\r\n return getDistance(firstVector) / getDistance(secondVector)\r\n};\r\nvar getRotation = function(firstVector, secondVector) {\r\n var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;\r\n var distanceProduct = getDistance(firstVector) * getDistance(secondVector);\r\n if (0 === distanceProduct) {\r\n return 0\r\n }\r\n var sign = mathSign(firstVector.x * secondVector.y - secondVector.x * firstVector.y);\r\n var angle = Math.acos(fitIntoRange(scalarProduct / distanceProduct, -1, 1));\r\n return sign * angle\r\n};\r\nvar getTranslation = function(firstVector, secondVector) {\r\n return {\r\n x: firstVector.centerX - secondVector.centerX,\r\n y: firstVector.centerY - secondVector.centerY\r\n }\r\n};\r\nvar TransformEmitter = Emitter.inherit({\r\n validatePointers: function(e) {\r\n return hasTouches(e) > 1\r\n },\r\n start: function(e) {\r\n this._accept(e);\r\n var startVector = getEventVector(e);\r\n this._startVector = startVector;\r\n this._prevVector = startVector;\r\n this._fireEventAliases(START_POSTFIX, e)\r\n },\r\n move: function(e) {\r\n var currentVector = getEventVector(e);\r\n var eventArgs = this._getEventArgs(currentVector);\r\n this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);\r\n this._prevVector = currentVector\r\n },\r\n end: function(e) {\r\n var eventArgs = this._getEventArgs(this._prevVector);\r\n this._fireEventAliases(END_POSTFIX, e, eventArgs)\r\n },\r\n _getEventArgs: function(vector) {\r\n return {\r\n scale: getScale(vector, this._startVector),\r\n deltaScale: getScale(vector, this._prevVector),\r\n rotation: getRotation(vector, this._startVector),\r\n deltaRotation: getRotation(vector, this._prevVector),\r\n translation: getTranslation(vector, this._startVector),\r\n deltaTranslation: getTranslation(vector, this._prevVector)\r\n }\r\n },\r\n _fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {\r\n eventArgs = eventArgs || {};\r\n iteratorUtils.each(eventAliases, function(_, eventAlias) {\r\n var args = {};\r\n iteratorUtils.each(eventAlias.args, (function(name) {\r\n if (name in eventArgs) {\r\n args[name] = eventArgs[name]\r\n }\r\n }));\r\n this._fireEvent(DX_PREFIX + eventAlias.name + eventPostfix, originalEvent, args)\r\n }.bind(this))\r\n }\r\n});\r\nvar eventNames = eventAliases.reduce((result, eventAlias) => {\r\n [START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach(eventPostfix => {\r\n result.push(DX_PREFIX + eventAlias.name + eventPostfix)\r\n });\r\n return result\r\n}, []);\r\nregisterEmitter({\r\n emitter: TransformEmitter,\r\n events: eventNames\r\n});\r\nvar exportNames = {};\r\niteratorUtils.each(eventNames, (function(_, eventName) {\r\n exportNames[eventName.substring(DX_PREFIX.length)] = eventName\r\n}));\r\nexport var {\r\n transformstart: transformstart,\r\n transform: transform,\r\n transformend: transformend,\r\n translatestart: translatestart,\r\n translate: translate,\r\n translateend: translateend,\r\n zoomstart: zoomstart,\r\n zoom: zoom,\r\n zoomend: zoomend,\r\n pinchstart: pinchstart,\r\n pinch: pinch,\r\n pinchend: pinchend,\r\n rotatestart: rotatestart,\r\n rotate: rotate,\r\n rotateend: rotateend\r\n} = exportNames;\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/zoom_and_pan.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeEnum,\r\n getVizRangeObject\r\n} from \"../core/utils\";\r\nimport {\r\n name as wheelEvent\r\n} from \"../../events/core/wheel\";\r\nimport * as transformEvents from \"../../events/transform\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar EVENTS_NS = \".zoomAndPanNS\";\r\nvar DRAG_START_EVENT_NAME = dragEventStart + EVENTS_NS;\r\nvar DRAG_EVENT_NAME = dragEventMove + EVENTS_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + EVENTS_NS;\r\nvar PINCH_START_EVENT_NAME = transformEvents.pinchstart + EVENTS_NS;\r\nvar PINCH_EVENT_NAME = transformEvents.pinch + EVENTS_NS;\r\nvar PINCH_END_EVENT_NAME = transformEvents.pinchend + EVENTS_NS;\r\nvar SCROLL_BAR_START_EVENT_NAME = \"dxc-scroll-start\" + EVENTS_NS;\r\nvar SCROLL_BAR_MOVE_EVENT_NAME = \"dxc-scroll-move\" + EVENTS_NS;\r\nvar SCROLL_BAR_END_EVENT_NAME = \"dxc-scroll-end\" + EVENTS_NS;\r\nvar GESTURE_TIMEOUT = 300;\r\nvar MIN_DRAG_DELTA = 5;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _abs = Math.abs;\r\n\r\nfunction canvasToRect(canvas) {\r\n return {\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvas.width - canvas.left - canvas.right,\r\n height: canvas.height - canvas.top - canvas.bottom\r\n }\r\n}\r\n\r\nfunction checkCoords(rect, coords) {\r\n var x = coords.x;\r\n var y = coords.y;\r\n return x >= rect.x && x <= rect.width + rect.x && y >= rect.y && y <= rect.height + rect.y\r\n}\r\n\r\nfunction sortAxes(axes, onlyAxisToNotify) {\r\n if (onlyAxisToNotify) {\r\n axes = axes.sort((a, b) => {\r\n if (a === onlyAxisToNotify) {\r\n return -1\r\n }\r\n if (b === onlyAxisToNotify) {\r\n return 1\r\n }\r\n return 0\r\n })\r\n }\r\n return axes\r\n}\r\n\r\nfunction getFilteredAxes(axes) {\r\n return axes.filter(a => !a.getTranslator().getBusinessRange().isEmpty())\r\n}\r\n\r\nfunction isAxisAvailablePanning(axes) {\r\n return axes.some(axis => !axis.isExtremePosition(false) || !axis.isExtremePosition(true))\r\n}\r\n\r\nfunction axisZoom(axis, onlyAxisToNotify, getRange, getParameters, actionField, scale, e) {\r\n var silent = onlyAxisToNotify && axis !== onlyAxisToNotify;\r\n var range = getRange(axis);\r\n var {\r\n stopInteraction: stopInteraction,\r\n correctedRange: correctedRange\r\n } = axis.checkZoomingLowerLimitOvercome(actionField, scale, range);\r\n var result = axis.handleZooming(stopInteraction ? null : correctedRange, getParameters(silent), e, actionField);\r\n stopInteraction && axis.handleZoomEnd();\r\n return {\r\n stopInteraction: stopInteraction,\r\n result: result\r\n }\r\n}\r\n\r\nfunction zoomAxes(e, axes, getRange, zoom, params, onlyAxisToNotify) {\r\n axes = sortAxes(axes, onlyAxisToNotify);\r\n var zoomStarted = false;\r\n var getParameters = silent => ({\r\n start: !!silent,\r\n end: !!silent\r\n });\r\n getFilteredAxes(axes).some(axis => {\r\n var translator = axis.getTranslator();\r\n var scale = translator.getMinScale(zoom);\r\n var {\r\n stopInteraction: stopInteraction,\r\n result: result\r\n } = axisZoom(axis, onlyAxisToNotify, getRange(_extends({\r\n scale: scale,\r\n translator: translator,\r\n axis: axis\r\n }, params)), getParameters, \"zoom\", scale, e);\r\n zoomStarted = !stopInteraction;\r\n return onlyAxisToNotify && result.isPrevented\r\n });\r\n return zoomStarted\r\n}\r\n\r\nfunction cancelEvent(e) {\r\n if (e.originalEvent) {\r\n cancelEvent(e.originalEvent)\r\n }\r\n if (false !== e.cancelable) {\r\n e.cancel = true\r\n }\r\n}\r\nexport default {\r\n name: \"zoom_and_pan\",\r\n init: function() {\r\n var chart = this;\r\n var renderer = this._renderer;\r\n\r\n function getAxesCopy(zoomAndPan, actionField) {\r\n var axes = [];\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n if (options.argumentAxis[actionField]) {\r\n axes.push(chart.getArgumentAxis())\r\n }\r\n if (options.valueAxis[actionField]) {\r\n axes = axes.concat(actionData.valueAxes)\r\n }\r\n return axes\r\n }\r\n\r\n function startAxesViewportChanging(zoomAndPan, actionField, e) {\r\n var axes = getAxesCopy(zoomAndPan, actionField);\r\n getFilteredAxes(axes).some(axis => axis.handleZooming(null, {\r\n end: true\r\n }, e, actionField).isPrevented) && cancelEvent(e)\r\n }\r\n\r\n function axesViewportChanging(zoomAndPan, actionField, e, offsetCalc, centerCalc) {\r\n function zoomAxes(axes, criteria, coordField, e, actionData) {\r\n var zoom = {\r\n zoomed: false\r\n };\r\n criteria && getFilteredAxes(axes).forEach(axis => {\r\n var options = axis.getOptions();\r\n var viewport = axis.visualRange();\r\n var scale = axis.getTranslator().getEventScale(e);\r\n var translate = -offsetCalc(e, actionData, coordField, scale);\r\n zoom = extend(true, zoom, axis.getTranslator().zoom(translate, scale, axis.getZoomBounds()));\r\n var range = axis.adjustRange(getVizRangeObject([zoom.min, zoom.max]));\r\n var {\r\n stopInteraction: stopInteraction,\r\n correctedRange: correctedRange\r\n } = axis.checkZoomingLowerLimitOvercome(actionField, scale, range);\r\n if (!isDefined(viewport) || viewport.startValue.valueOf() !== correctedRange.startValue.valueOf() || viewport.endValue.valueOf() !== correctedRange.endValue.valueOf()) {\r\n axis.handleZooming(stopInteraction ? null : correctedRange, {\r\n start: true,\r\n end: true\r\n }, e, actionField);\r\n if (!stopInteraction) {\r\n zoom.zoomed = true;\r\n zoom.deltaTranslate = translate - zoom.translate\r\n }\r\n } else if (\"touch\" === e.pointerType && \"discrete\" === options.type) {\r\n var isMinPosition = axis.isExtremePosition(false);\r\n var isMaxPosition = axis.isExtremePosition(true);\r\n var zoomInEnabled = scale > 1 && !stopInteraction;\r\n var zoomOutEnabled = scale < 1 && (!isMinPosition || !isMaxPosition);\r\n var panningEnabled = 1 === scale && !(isMinPosition && (translate < 0 && !options.inverted || translate > 0 && options.inverted) || isMaxPosition && (translate > 0 && !options.inverted || translate < 0 && options.inverted));\r\n zoom.enabled = zoomInEnabled || zoomOutEnabled || panningEnabled\r\n }\r\n });\r\n return zoom\r\n }\r\n\r\n function storeOffset(e, actionData, zoom, coordField) {\r\n if (zoom.zoomed) {\r\n actionData.offset[coordField] = (e.offset ? e.offset[coordField] : actionData.offset[coordField]) + zoom.deltaTranslate\r\n }\r\n }\r\n\r\n function storeCenter(center, actionData, zoom, coordField) {\r\n if (zoom.zoomed) {\r\n actionData.center[coordField] = center[coordField] + zoom.deltaTranslate\r\n }\r\n }\r\n var rotated = chart.option(\"rotated\");\r\n var actionData = zoomAndPan.actionData;\r\n var options = zoomAndPan.options;\r\n var argZoom = {};\r\n var valZoom = {};\r\n if (!actionData.fallback) {\r\n argZoom = zoomAxes(chart._argumentAxes, options.argumentAxis[actionField], rotated ? \"y\" : \"x\", e, actionData);\r\n valZoom = zoomAxes(actionData.valueAxes, options.valueAxis[actionField], rotated ? \"x\" : \"y\", e, actionData);\r\n chart._requestChange([\"VISUAL_RANGE\"]);\r\n storeOffset(e, actionData, argZoom, rotated ? \"y\" : \"x\");\r\n storeOffset(e, actionData, valZoom, rotated ? \"x\" : \"y\")\r\n }\r\n var center = centerCalc(e);\r\n storeCenter(center, actionData, argZoom, rotated ? \"y\" : \"x\");\r\n storeCenter(center, actionData, valZoom, rotated ? \"x\" : \"y\");\r\n if (!argZoom.zoomed && !valZoom.zoomed) {\r\n actionData.center = center\r\n }\r\n return argZoom.zoomed || valZoom.zoomed || actionData.fallback || argZoom.enabled || valZoom.enabled\r\n }\r\n\r\n function finishAxesViewportChanging(zoomAndPan, actionField, e, offsetCalc) {\r\n function zoomAxes(axes, coordField, actionData, onlyAxisToNotify) {\r\n var zoomStarted = false;\r\n var scale = e.scale || 1;\r\n var getRange = axis => {\r\n var zoom = axis.getTranslator().zoom(-offsetCalc(e, actionData, coordField, scale), scale, axis.getZoomBounds());\r\n return {\r\n startValue: zoom.min,\r\n endValue: zoom.max\r\n }\r\n };\r\n var getParameters = silent => ({\r\n start: true,\r\n end: silent\r\n });\r\n getFilteredAxes(axes).forEach(axis => {\r\n zoomStarted = !axisZoom(axis, onlyAxisToNotify, getRange, getParameters, actionField, scale, e).stopInteraction\r\n });\r\n return zoomStarted\r\n }\r\n var rotated = chart.option(\"rotated\");\r\n var actionData = zoomAndPan.actionData;\r\n var options = zoomAndPan.options;\r\n var zoomStarted = true;\r\n if (actionData.fallback) {\r\n zoomStarted &= options.argumentAxis[actionField] && zoomAxes(chart._argumentAxes, rotated ? \"y\" : \"x\", actionData, chart.getArgumentAxis());\r\n zoomStarted |= options.valueAxis[actionField] && zoomAxes(actionData.valueAxes, rotated ? \"x\" : \"y\", actionData)\r\n } else {\r\n var axes = getAxesCopy(zoomAndPan, actionField);\r\n getFilteredAxes(axes).forEach(axis => {\r\n axis.handleZooming(null, {\r\n start: true\r\n }, e, actionField)\r\n });\r\n zoomStarted = axes.length\r\n }\r\n zoomStarted && chart._requestChange([\"VISUAL_RANGE\"])\r\n }\r\n\r\n function prepareActionData(coords, action) {\r\n var axes = chart._argumentAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords));\r\n return {\r\n fallback: chart._lastRenderingTime > GESTURE_TIMEOUT,\r\n cancel: !axes.length || !isDefined(action),\r\n action: action,\r\n curAxisRect: axes.length && canvasToRect(axes[0].getCanvas()),\r\n valueAxes: axes.length && chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords)),\r\n offset: {\r\n x: 0,\r\n y: 0\r\n },\r\n center: coords,\r\n startCenter: coords\r\n }\r\n }\r\n\r\n function getPointerCoord(rect, e) {\r\n var rootOffset = renderer.getRootOffset();\r\n return {\r\n x: _min(_max(e.pageX - rootOffset.left, rect.x), rect.width + rect.x),\r\n y: _min(_max(e.pageY - rootOffset.top, rect.y), rect.height + rect.y)\r\n }\r\n }\r\n\r\n function calcCenterForPinch(e) {\r\n var rootOffset = renderer.getRootOffset();\r\n var x1 = e.pointers[0].pageX;\r\n var x2 = e.pointers[1].pageX;\r\n var y1 = e.pointers[0].pageY;\r\n var y2 = e.pointers[1].pageY;\r\n return {\r\n x: _min(x1, x2) + _abs(x2 - x1) / 2 - rootOffset.left,\r\n y: _min(y1, y2) + _abs(y2 - y1) / 2 - rootOffset.top\r\n }\r\n }\r\n\r\n function calcCenterForDrag(e) {\r\n var rootOffset = renderer.getRootOffset();\r\n return {\r\n x: e.pageX - rootOffset.left,\r\n y: e.pageY - rootOffset.top\r\n }\r\n }\r\n\r\n function calcOffsetForDrag(e, actionData, coordField) {\r\n return e.offset[coordField] - actionData.offset[coordField]\r\n }\r\n\r\n function preventDefaults(e) {\r\n if (false !== e.cancelable) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n chart._stopCurrentHandling()\r\n }\r\n var zoomAndPan = {\r\n dragStartHandler: function(e) {\r\n var options = zoomAndPan.options;\r\n var isTouch = \"touch\" === e.pointerType;\r\n var wantPan = options.argumentAxis.pan || options.valueAxis.pan;\r\n var wantZoom = options.argumentAxis.zoom || options.valueAxis.zoom;\r\n var panKeyPressed = isDefined(options.panKey) && e[normalizeEnum(options.panKey) + \"Key\"];\r\n var dragToZoom = options.dragToZoom;\r\n var action;\r\n e._cancelPreventDefault = true;\r\n if (isTouch) {\r\n if (options.allowTouchGestures && wantPan) {\r\n var cancelPanning = !zoomAndPan.panningVisualRangeEnabled() || zoomAndPan.skipEvent;\r\n action = cancelPanning ? null : \"pan\"\r\n }\r\n } else if (dragToZoom && wantPan && panKeyPressed || !dragToZoom && wantPan) {\r\n action = \"pan\"\r\n } else if (dragToZoom && wantZoom) {\r\n action = \"zoom\"\r\n }\r\n var actionData = prepareActionData(calcCenterForDrag(e), action);\r\n if (actionData.cancel) {\r\n zoomAndPan.skipEvent = false;\r\n if (false !== e.cancelable) {\r\n e.cancel = true\r\n }\r\n return\r\n }\r\n zoomAndPan.actionData = actionData;\r\n if (\"zoom\" === action) {\r\n actionData.startCoords = getPointerCoord(actionData.curAxisRect, e);\r\n actionData.rect = renderer.rect(0, 0, 0, 0).attr(options.dragBoxStyle).append(renderer.root)\r\n } else {\r\n startAxesViewportChanging(zoomAndPan, \"pan\", e)\r\n }\r\n },\r\n dragHandler: function(e) {\r\n var rotated = chart.option(\"rotated\");\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n var isTouch = \"touch\" === e.pointerType;\r\n e._cancelPreventDefault = true;\r\n if (!actionData || isTouch && !zoomAndPan.panningVisualRangeEnabled()) {\r\n return\r\n }\r\n if (\"zoom\" === actionData.action) {\r\n preventDefaults(e);\r\n var curCanvas = actionData.curAxisRect;\r\n var startCoords = actionData.startCoords;\r\n var curCoords = getPointerCoord(curCanvas, e);\r\n var zoomArg = options.argumentAxis.zoom;\r\n var zoomVal = options.valueAxis.zoom;\r\n var rect = {\r\n x: _min(startCoords.x, curCoords.x),\r\n y: _min(startCoords.y, curCoords.y),\r\n width: _abs(startCoords.x - curCoords.x),\r\n height: _abs(startCoords.y - curCoords.y)\r\n };\r\n if (!zoomArg || !zoomVal) {\r\n if (!zoomArg && !rotated || !zoomVal && rotated) {\r\n rect.x = curCanvas.x;\r\n rect.width = curCanvas.width\r\n } else {\r\n rect.y = curCanvas.y;\r\n rect.height = curCanvas.height\r\n }\r\n }\r\n actionData.rect.attr(rect)\r\n } else if (\"pan\" === actionData.action) {\r\n axesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag, e => e.offset);\r\n var deltaOffsetY = Math.abs(e.offset.y - actionData.offset.y);\r\n var deltaOffsetX = Math.abs(e.offset.x - actionData.offset.x);\r\n if (isTouch && (deltaOffsetY > MIN_DRAG_DELTA && deltaOffsetY > Math.abs(actionData.offset.x) || deltaOffsetX > MIN_DRAG_DELTA && deltaOffsetX > Math.abs(actionData.offset.y))) {\r\n return\r\n }\r\n preventDefaults(e)\r\n }\r\n },\r\n dragEndHandler: function(e) {\r\n var rotated = chart.option(\"rotated\");\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n var isTouch = \"touch\" === e.pointerType;\r\n var getRange = _ref => {\r\n var {\r\n translator: translator,\r\n startCoord: startCoord,\r\n curCoord: curCoord\r\n } = _ref;\r\n return () => [translator.from(startCoord), translator.from(curCoord)]\r\n };\r\n var getCoords = (curCoords, startCoords, field) => ({\r\n curCoord: curCoords[field],\r\n startCoord: startCoords[field]\r\n });\r\n var needToZoom = (axisOption, coords) => axisOption.zoom && _abs(coords.curCoord - coords.startCoord) > MIN_DRAG_DELTA;\r\n var panIsEmpty = actionData && \"pan\" === actionData.action && !actionData.fallback && 0 === actionData.offset.x && 0 === actionData.offset.y;\r\n if (!actionData || isTouch && !zoomAndPan.panningVisualRangeEnabled() || panIsEmpty) {\r\n return\r\n }!isTouch && preventDefaults(e);\r\n if (\"zoom\" === actionData.action) {\r\n var curCoords = getPointerCoord(actionData.curAxisRect, e);\r\n var argumentCoords = getCoords(curCoords, actionData.startCoords, rotated ? \"y\" : \"x\");\r\n var valueCoords = getCoords(curCoords, actionData.startCoords, rotated ? \"x\" : \"y\");\r\n var argumentAxesZoomed = needToZoom(options.argumentAxis, argumentCoords) && zoomAxes(e, chart._argumentAxes, getRange, true, argumentCoords, chart.getArgumentAxis());\r\n var valueAxesZoomed = needToZoom(options.valueAxis, valueCoords) && zoomAxes(e, actionData.valueAxes, getRange, true, valueCoords);\r\n if (valueAxesZoomed || argumentAxesZoomed) {\r\n chart._requestChange([\"VISUAL_RANGE\"])\r\n }\r\n actionData.rect.dispose()\r\n } else if (\"pan\" === actionData.action) {\r\n finishAxesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag)\r\n }\r\n zoomAndPan.actionData = null\r\n },\r\n pinchStartHandler: function(e) {\r\n var actionData = prepareActionData(calcCenterForPinch(e), \"zoom\");\r\n if (actionData.cancel) {\r\n cancelEvent(e);\r\n return\r\n }\r\n zoomAndPan.actionData = actionData;\r\n startAxesViewportChanging(zoomAndPan, \"zoom\", e)\r\n },\r\n pinchHandler: function(e) {\r\n if (!zoomAndPan.actionData) {\r\n return\r\n }\r\n axesViewportChanging(zoomAndPan, \"zoom\", e, (e, actionData, coordField, scale) => calcCenterForPinch(e)[coordField] - actionData.center[coordField] + (actionData.center[coordField] - actionData.center[coordField] * scale), calcCenterForPinch);\r\n preventDefaults(e)\r\n },\r\n pinchEndHandler: function(e) {\r\n if (!zoomAndPan.actionData) {\r\n return\r\n }\r\n finishAxesViewportChanging(zoomAndPan, \"zoom\", e, (e, actionData, coordField, scale) => actionData.center[coordField] - actionData.startCenter[coordField] + (actionData.startCenter[coordField] - actionData.startCenter[coordField] * scale));\r\n zoomAndPan.actionData = null\r\n },\r\n mouseWheelHandler: function(e) {\r\n var options = zoomAndPan.options;\r\n var rotated = chart.option(\"rotated\");\r\n var getRange = _ref2 => {\r\n var {\r\n translator: translator,\r\n coord: coord,\r\n scale: scale,\r\n axis: axis\r\n } = _ref2;\r\n return () => {\r\n var zoom = translator.zoom(-(coord - coord * scale), scale, axis.getZoomBounds());\r\n return {\r\n startValue: zoom.min,\r\n endValue: zoom.max\r\n }\r\n }\r\n };\r\n var coords = calcCenterForDrag(e);\r\n var axesZoomed = false;\r\n var targetAxes;\r\n if (options.valueAxis.zoom) {\r\n targetAxes = chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords));\r\n if (0 === targetAxes.length) {\r\n var targetCanvas = chart._valueAxes.reduce((r, axis) => {\r\n if (!r && axis.coordsIn(coords.x, coords.y)) {\r\n r = axis.getCanvas()\r\n }\r\n return r\r\n }, null);\r\n if (targetCanvas) {\r\n targetAxes = chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), {\r\n x: targetCanvas.left,\r\n y: targetCanvas.top\r\n }))\r\n }\r\n }\r\n axesZoomed |= zoomAxes(e, targetAxes, getRange, e.delta > 0, {\r\n coord: rotated ? coords.x : coords.y\r\n })\r\n }\r\n if (options.argumentAxis.zoom) {\r\n var canZoom = chart._argumentAxes.some(axis => {\r\n if (checkCoords(canvasToRect(axis.getCanvas()), coords) || axis.coordsIn(coords.x, coords.y)) {\r\n return true\r\n }\r\n return false\r\n });\r\n axesZoomed |= canZoom && zoomAxes(e, chart._argumentAxes, getRange, e.delta > 0, {\r\n coord: rotated ? coords.y : coords.x\r\n }, chart.getArgumentAxis())\r\n }\r\n if (axesZoomed) {\r\n chart._requestChange([\"VISUAL_RANGE\"]);\r\n if (targetAxes && isAxisAvailablePanning(targetAxes) || !targetAxes && zoomAndPan.panningVisualRangeEnabled()) {\r\n preventDefaults(e)\r\n }\r\n }\r\n },\r\n cleanup: function() {\r\n renderer.root.off(EVENTS_NS);\r\n zoomAndPan.actionData && zoomAndPan.actionData.rect && zoomAndPan.actionData.rect.dispose();\r\n zoomAndPan.actionData = null;\r\n renderer.root.css({\r\n \"touch-action\": \"\"\r\n })\r\n },\r\n setup: function(options) {\r\n zoomAndPan.cleanup();\r\n if (!options.argumentAxis.pan) {\r\n renderer.root.on(SCROLL_BAR_START_EVENT_NAME, cancelEvent)\r\n }\r\n if (options.argumentAxis.none && options.valueAxis.none) {\r\n return\r\n }\r\n zoomAndPan.options = options;\r\n if ((options.argumentAxis.zoom || options.valueAxis.zoom) && options.allowMouseWheel) {\r\n renderer.root.on(wheelEvent + EVENTS_NS, zoomAndPan.mouseWheelHandler)\r\n }\r\n if ((options.argumentAxis.zoom || options.valueAxis.zoom) && options.allowTouchGestures) {\r\n renderer.root.on(PINCH_START_EVENT_NAME, {\r\n passive: false\r\n }, zoomAndPan.pinchStartHandler).on(PINCH_EVENT_NAME, {\r\n passive: false\r\n }, zoomAndPan.pinchHandler).on(PINCH_END_EVENT_NAME, zoomAndPan.pinchEndHandler)\r\n }\r\n renderer.root.on(DRAG_START_EVENT_NAME, {\r\n immediate: true,\r\n passive: false\r\n }, zoomAndPan.dragStartHandler).on(DRAG_EVENT_NAME, {\r\n immediate: true,\r\n passive: false\r\n }, zoomAndPan.dragHandler).on(DRAG_END_EVENT_NAME, zoomAndPan.dragEndHandler);\r\n renderer.root.on(SCROLL_BAR_START_EVENT_NAME, (function(e) {\r\n zoomAndPan.actionData = {\r\n valueAxes: [],\r\n offset: {\r\n x: 0,\r\n y: 0\r\n },\r\n center: {\r\n x: 0,\r\n y: 0\r\n }\r\n };\r\n preventDefaults(e);\r\n startAxesViewportChanging(zoomAndPan, \"pan\", e)\r\n })).on(SCROLL_BAR_MOVE_EVENT_NAME, (function(e) {\r\n preventDefaults(e);\r\n axesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag, e => e.offset)\r\n })).on(SCROLL_BAR_END_EVENT_NAME, (function(e) {\r\n preventDefaults(e);\r\n finishAxesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag);\r\n zoomAndPan.actionData = null\r\n }))\r\n },\r\n panningVisualRangeEnabled: function() {\r\n return isAxisAvailablePanning(chart._valueAxes) || isAxisAvailablePanning(chart._argumentAxes)\r\n }\r\n };\r\n this._zoomAndPan = zoomAndPan\r\n },\r\n members: {\r\n _setupZoomAndPan: function() {\r\n this._zoomAndPan.setup(this._themeManager.getOptions(\"zoomAndPan\"))\r\n }\r\n },\r\n dispose: function() {\r\n this._zoomAndPan.cleanup()\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"ZOOM_AND_PAN\",\r\n handler: function() {\r\n this._setupZoomAndPan()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"zoomAndPan\"\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/annotations.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Tooltip\r\n} from \"../core/tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions\r\n} from \"./utils\";\r\nimport {\r\n Plaque\r\n} from \"./plaque\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar getDocument = domAdapter.getDocument;\r\nvar EVENT_NS = \"annotations\";\r\nvar DOT_EVENT_NS = \".\" + EVENT_NS;\r\nvar POINTER_ACTION = addNamespace([pointerEvents.down, pointerEvents.move], EVENT_NS);\r\nvar POINTER_UP_EVENT_NAME = addNamespace(pointerEvents.up, EVENT_NS);\r\nvar DRAG_START_EVENT_NAME = dragEventStart + DOT_EVENT_NS;\r\nvar DRAG_EVENT_NAME = dragEventMove + DOT_EVENT_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + DOT_EVENT_NS;\r\n\r\nfunction coreAnnotation(options, contentTemplate) {\r\n return {\r\n draw: function(widget, group) {\r\n var annotationGroup = widget._renderer.g().append(group).css(patchFontOptions(options.font));\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.plaque = new Plaque(extend(true, {}, options, {\r\n cornerRadius: (options.border || {}).cornerRadius\r\n }), widget, annotationGroup, contentTemplate, widget._isAnnotationBounded(options));\r\n this.plaque.draw(widget._getAnnotationCoords(this));\r\n if (options.allowDragging) {\r\n annotationGroup.on(DRAG_START_EVENT_NAME, {\r\n immediate: true\r\n }, e => {\r\n this._dragOffsetX = this.plaque.x - e.pageX;\r\n this._dragOffsetY = this.plaque.y - e.pageY\r\n }).on(DRAG_EVENT_NAME, e => {\r\n this.plaque.move(e.pageX + this._dragOffsetX, e.pageY + this._dragOffsetY)\r\n }).on(DRAG_END_EVENT_NAME, e => {\r\n this.offsetX = (this.offsetX || 0) + e.offset.x;\r\n this.offsetY = (this.offsetY || 0) + e.offset.y\r\n })\r\n }\r\n },\r\n hitTest(x, y) {\r\n return this.plaque.hitTest(x, y)\r\n },\r\n showTooltip(tooltip, _ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var that = this;\r\n var options = that.options;\r\n if (tooltip.annotation !== that) {\r\n tooltip.setTemplate(options.tooltipTemplate);\r\n var callback = result => {\r\n result && (tooltip.annotation = that)\r\n };\r\n callback(tooltip.show(options, {\r\n x: x,\r\n y: y\r\n }, {\r\n target: options\r\n }, options.customizeTooltip, callback))\r\n } else if (!tooltip.isCursorOnTooltip(x, y)) {\r\n tooltip.move(x, y)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTemplateFunction(options, widget) {\r\n var template;\r\n if (\"text\" === options.type) {\r\n template = function(item, groupElement) {\r\n var text = widget._renderer.text(item.text).attr({\r\n class: item.cssClass\r\n }).append({\r\n element: groupElement\r\n });\r\n if (item.width > 0 || item.height > 0) {\r\n text.setMaxSize(item.width, item.height, {\r\n wordWrap: item.wordWrap,\r\n textOverflow: item.textOverflow\r\n })\r\n }\r\n }\r\n } else if (\"image\" === options.type) {\r\n template = function(item, groupElement) {\r\n var {\r\n width: width,\r\n height: height,\r\n url: url,\r\n location: location\r\n } = item.image || {};\r\n var {\r\n width: outerWidth,\r\n height: outerHeight\r\n } = item;\r\n var imageWidth = outerWidth > 0 ? Math.min(width, outerWidth) : width;\r\n var imageHeight = outerHeight > 0 ? Math.min(height, outerHeight) : height;\r\n widget._renderer.image(0, 0, imageWidth, imageHeight, url, location || \"center\").append({\r\n element: groupElement\r\n })\r\n }\r\n } else if (\"custom\" === options.type) {\r\n template = options.template\r\n }\r\n return template\r\n}\r\n\r\nfunction getImageObject(image) {\r\n return \"string\" === typeof image ? {\r\n url: image\r\n } : image\r\n}\r\nexport var createAnnotations = function(widget, items) {\r\n var commonAnnotationSettings = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var customizeAnnotation = arguments.length > 3 ? arguments[3] : void 0;\r\n var pullOptions = arguments.length > 4 ? arguments[4] : void 0;\r\n var commonImageOptions = getImageObject(commonAnnotationSettings.image);\r\n return items.reduce((arr, item) => {\r\n var currentImageOptions = getImageObject(item.image);\r\n var customizedItem = isFunction(customizeAnnotation) ? customizeAnnotation(item) : {};\r\n if (customizedItem) {\r\n customizedItem.image = getImageObject(customizedItem.image)\r\n }\r\n var options = extend(true, {}, commonAnnotationSettings, item, {\r\n image: commonImageOptions\r\n }, {\r\n image: currentImageOptions\r\n }, customizedItem);\r\n var templateFunction = getTemplateFunction(options, widget);\r\n var annotation = templateFunction && extend(true, pullOptions(options), coreAnnotation(options, widget._getTemplate(templateFunction)));\r\n annotation && arr.push(annotation);\r\n return arr\r\n }, [])\r\n};\r\nvar chartPlugin = {\r\n name: \"annotations_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var _axis, _axis2;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n var argCoordName = this._options.silent(\"rotated\") ? \"y\" : \"x\";\r\n var valCoordName = this._options.silent(\"rotated\") ? \"x\" : \"y\";\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var axis = this.getValueAxis(annotation.axis);\r\n var series;\r\n var pane = null === (_axis = axis) || void 0 === _axis ? void 0 : _axis.pane;\r\n if (annotation.series) {\r\n var _series;\r\n series = this.series.filter(s => s.name === annotation.series)[0];\r\n axis = null === (_series = series) || void 0 === _series ? void 0 : _series.getValueAxis();\r\n isDefined(axis) && (pane = axis.pane)\r\n }\r\n if (isDefined(argument)) {\r\n if (series) {\r\n var center = series.getPointCenterByArg(argument);\r\n center && (coords[argCoordName] = center[argCoordName])\r\n } else {\r\n coords[argCoordName] = argAxis.getTranslator().translate(argument)\r\n }!isDefined(pane) && (pane = argAxis.pane)\r\n }\r\n var value = null === (_axis2 = axis) || void 0 === _axis2 ? void 0 : _axis2.validateUnit(annotation.value);\r\n if (isDefined(value)) {\r\n var _axis3;\r\n coords[valCoordName] = null === (_axis3 = axis) || void 0 === _axis3 ? void 0 : _axis3.getTranslator().translate(value);\r\n !isDefined(pane) && isDefined(axis) && (pane = axis.pane)\r\n }\r\n coords.canvas = this._getCanvasForPane(pane);\r\n if (isDefined(coords[argCoordName]) && !isDefined(value)) {\r\n var _series2;\r\n if (!isDefined(axis) && !isDefined(series)) {\r\n coords[valCoordName] = argAxis.getAxisPosition()\r\n } else if (isDefined(axis) && !isDefined(series)) {\r\n coords[valCoordName] = this._argumentAxes.filter(a => a.pane === axis.pane)[0].getAxisPosition()\r\n } else if (null !== (_series2 = series) && void 0 !== _series2 && _series2.checkSeriesViewportCoord(argAxis, coords[argCoordName])) {\r\n coords[valCoordName] = series.getSeriesPairCoord(coords[argCoordName], true)\r\n }\r\n }\r\n if (!isDefined(argument) && isDefined(coords[valCoordName])) {\r\n if (isDefined(axis) && !isDefined(series)) {\r\n coords[argCoordName] = axis.getAxisPosition()\r\n } else if (isDefined(series)) {\r\n if (series.checkSeriesViewportCoord(axis, coords[valCoordName])) {\r\n coords[argCoordName] = series.getSeriesPairCoord(coords[valCoordName], false)\r\n }\r\n }\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler(event) {\r\n if (this._disposed) {\r\n return\r\n }\r\n var originalEvent = event.originalEvent || {};\r\n var touch = originalEvent.touches && originalEvent.touches[0] || {};\r\n var rootOffset = this._renderer.getRootOffset();\r\n var coords = {\r\n x: touch.pageX || originalEvent.pageX || event.pageX,\r\n y: touch.pageY || originalEvent.pageY || event.pageY\r\n };\r\n var annotation = this._annotations.items.filter(a => a.hitTest(coords.x - rootOffset.left, coords.y - rootOffset.top))[0];\r\n if (!annotation || !annotation.options.tooltipEnabled) {\r\n this._annotations.hideTooltip();\r\n return\r\n }\r\n this._clear();\r\n if (annotation.options.allowDragging && event.type === pointerEvents.down) {\r\n this._annotations._hideToolTipForDrag = true\r\n }\r\n if (!this._annotations._hideToolTipForDrag) {\r\n annotation.showTooltip(this._annotations.tooltip, coords);\r\n event.stopPropagation()\r\n }\r\n },\r\n _isAnnotationBounded: options => isDefined(options.value) || isDefined(options.argument),\r\n _pullOptions: options => ({\r\n type: options.type,\r\n name: options.name,\r\n x: options.x,\r\n y: options.y,\r\n value: options.value,\r\n argument: options.argument,\r\n axis: options.axis,\r\n series: options.series,\r\n options: options,\r\n offsetX: options.offsetX,\r\n offsetY: options.offsetY\r\n }),\r\n _forceAnnotationRender() {\r\n this._change([\"FORCE_RENDER\"])\r\n },\r\n _clear() {\r\n this.hideTooltip();\r\n this.clearHover()\r\n }\r\n }\r\n};\r\nvar polarChartPlugin = {\r\n name: \"annotations_polar_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._calcCanvas()\r\n };\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var value = this.getValueAxis().validateUnit(annotation.value);\r\n var radius = annotation.radius;\r\n var angle = annotation.angle;\r\n var pointCoords;\r\n var series;\r\n if (annotation.series) {\r\n series = this.series.filter(s => s.name === annotation.series)[0]\r\n }\r\n extend(true, coords, this.getXYFromPolar(angle, radius, argument, value));\r\n if (isDefined(series)) {\r\n if (isDefined(coords.angle) && !isDefined(value) && !isDefined(radius)) {\r\n if (!isDefined(argument)) {\r\n argument = argAxis.getTranslator().from(isFinite(angle) ? this.getActualAngle(angle) : coords.angle)\r\n }\r\n pointCoords = series.getSeriesPairCoord({\r\n argument: argument,\r\n angle: -coords.angle\r\n }, true)\r\n } else if (isDefined(coords.radius) && !isDefined(argument) && !isDefined(angle)) {\r\n pointCoords = series.getSeriesPairCoord({\r\n radius: coords.radius\r\n }, false)\r\n }\r\n if (isDefined(pointCoords)) {\r\n coords.x = pointCoords.x;\r\n coords.y = pointCoords.y\r\n }\r\n }\r\n if (annotation.series && !isDefined(pointCoords)) {\r\n coords.x = coords.y = void 0\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: chartPlugin.members._isAnnotationBounded,\r\n _pullOptions(options) {\r\n var polarOptions = extend({}, {\r\n radius: options.radius,\r\n angle: options.angle\r\n }, chartPlugin.members._pullOptions(options));\r\n delete polarOptions.axis;\r\n return polarOptions\r\n },\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender,\r\n _clear: chartPlugin.members._clear\r\n }\r\n};\r\nvar vectorMapPlugin = {\r\n name: \"annotations_vector_map\",\r\n init() {},\r\n dispose() {\r\n this._annotations._offTracker();\r\n this._annotations._offTracker = null\r\n },\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n coords.canvas = this._projection.getCanvas();\r\n if (annotation.coordinates) {\r\n var data = this._projection.toScreenPoint(annotation.coordinates);\r\n coords.x = data[0];\r\n coords.y = data[1]\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: options => isDefined(options.coordinates),\r\n _pullOptions(options) {\r\n var vectorMapOptions = extend({}, {\r\n coordinates: options.coordinates\r\n }, chartPlugin.members._pullOptions(options));\r\n delete vectorMapOptions.axis;\r\n delete vectorMapOptions.series;\r\n delete vectorMapOptions.argument;\r\n delete vectorMapOptions.value;\r\n return vectorMapOptions\r\n },\r\n _forceAnnotationRender() {\r\n this._change([\"EXTRA_ELEMENTS\"])\r\n },\r\n _getAnnotationStyles: () => ({\r\n \"text-anchor\": \"start\"\r\n }),\r\n _clear() {}\r\n },\r\n extenders: {\r\n _prepareExtraElements() {\r\n var that = this;\r\n var renderElements = () => {\r\n that._renderExtraElements()\r\n };\r\n that._annotations._offTracker = that._tracker.on({\r\n move: renderElements,\r\n zoom: renderElements,\r\n end: renderElements\r\n })\r\n }\r\n }\r\n};\r\nvar pieChartPlugin = {\r\n name: \"annotations_pie_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var series;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._canvas\r\n };\r\n if (annotation.argument) {\r\n if (annotation.series) {\r\n series = this.getSeriesByName(annotation.series)\r\n } else {\r\n series = this.series[0]\r\n }\r\n var argument = series.getPointsByArg(annotation.argument)[0];\r\n var {\r\n x: x,\r\n y: y\r\n } = argument.getAnnotationCoords(annotation.location);\r\n coords.x = x;\r\n coords.y = y\r\n }\r\n return coords\r\n },\r\n _isAnnotationBounded: options => options.argument,\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _pullOptions(options) {\r\n var pieChartOptions = extend({}, {\r\n location: options.location\r\n }, chartPlugin.members._pullOptions(options));\r\n delete pieChartOptions.axis;\r\n return pieChartOptions\r\n },\r\n _clear: chartPlugin.members._clear,\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender\r\n }\r\n};\r\nvar corePlugin = {\r\n name: \"annotations_core\",\r\n init() {\r\n this._annotations = {\r\n items: [],\r\n _hideToolTipForDrag: false,\r\n tooltip: new Tooltip({\r\n cssClass: \"\".concat(this._rootClassPrefix, \"-annotation-tooltip\"),\r\n eventTrigger: this._eventTrigger,\r\n widgetRoot: this.element(),\r\n widget: this\r\n }),\r\n hideTooltip() {\r\n this.tooltip.annotation = null;\r\n this.tooltip.hide()\r\n },\r\n clearItems() {\r\n this.items.forEach(i => i.plaque.clear());\r\n this.items = []\r\n }\r\n };\r\n this._annotations.tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n dispose() {\r\n this._annotationsGroup.linkRemove().linkOff();\r\n eventsEngine.off(getDocument(), DOT_EVENT_NS);\r\n this._annotationsGroup.off(DOT_EVENT_NS);\r\n this._annotations.tooltip && this._annotations.tooltip.dispose()\r\n },\r\n extenders: {\r\n _createHtmlStructure() {\r\n this._annotationsGroup = this._renderer.g().attr({\r\n class: \"\".concat(this._rootClassPrefix, \"-annotations\")\r\n }).css(this._getAnnotationStyles()).linkOn(this._renderer.root, \"annotations\").linkAppend();\r\n eventsEngine.on(getDocument(), POINTER_ACTION, e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!this._annotations.tooltip.isCursorOnTooltip(e.pageX, e.pageY)) {\r\n this._annotations.hideTooltip()\r\n }\r\n });\r\n eventsEngine.on(getDocument(), POINTER_UP_EVENT_NAME, event => {\r\n this._annotations._hideToolTipForDrag = false;\r\n this._annotationsPointerEventHandler(event)\r\n });\r\n this._annotationsGroup.on(POINTER_ACTION, this._annotationsPointerEventHandler.bind(this))\r\n },\r\n _renderExtraElements() {\r\n this._annotationsGroup.clear();\r\n this._annotations.items.forEach(item => item.draw(this, this._annotationsGroup))\r\n },\r\n _stopCurrentHandling() {\r\n this._annotations.hideTooltip()\r\n }\r\n },\r\n members: {\r\n _buildAnnotations() {\r\n this._annotations.clearItems();\r\n var items = this._getOption(\"annotations\", true);\r\n if (!(null !== items && void 0 !== items && items.length)) {\r\n return\r\n }\r\n this._annotations.items = createAnnotations(this, items, this._getOption(\"commonAnnotationSettings\"), this._getOption(\"customizeAnnotation\", true), this._pullOptions)\r\n },\r\n _setAnnotationTooltipOptions() {\r\n var tooltipOptions = extend({}, this._getOption(\"tooltip\"));\r\n tooltipOptions.contentTemplate = tooltipOptions.customizeTooltip = void 0;\r\n this._annotations.tooltip.update(tooltipOptions)\r\n },\r\n _getAnnotationCoords: () => ({}),\r\n _pullOptions: () => ({}),\r\n _getAnnotationStyles: () => ({})\r\n },\r\n customize(constructor) {\r\n constructor.addChange({\r\n code: \"ANNOTATIONITEMS\",\r\n handler() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"annotations\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONSSETTINGS\",\r\n handler() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"commonAnnotationSettings\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONS\",\r\n handler() {\r\n this._buildAnnotations();\r\n this._setAnnotationTooltipOptions();\r\n this._forceAnnotationRender()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"commonAnnotationSettings.font\"]\r\n};\r\nexport var plugins = {\r\n core: corePlugin,\r\n chart: chartPlugin,\r\n polarChart: polarChartPlugin,\r\n vectorMap: vectorMapPlugin,\r\n pieChart: pieChartPlugin\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/series_family.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar {\r\n round: round,\r\n abs: abs,\r\n pow: pow,\r\n sqrt: sqrt\r\n} = Math;\r\nvar _min = Math.min;\r\nvar DEFAULT_BAR_GROUP_PADDING = .3;\r\n\r\nfunction validateBarPadding(barPadding) {\r\n return barPadding < 0 || barPadding > 1 ? void 0 : barPadding\r\n}\r\n\r\nfunction validateBarGroupPadding(barGroupPadding) {\r\n return barGroupPadding < 0 || barGroupPadding > 1 ? DEFAULT_BAR_GROUP_PADDING : barGroupPadding\r\n}\r\n\r\nfunction isStackExist(series, arg) {\r\n return series.some((function(s) {\r\n return !s.getOptions().ignoreEmptyPoints || s.getPointsByArg(arg, true).some((function(point) {\r\n return point.hasValue()\r\n }))\r\n }))\r\n}\r\n\r\nfunction correctStackCoordinates(series, currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback) {\r\n series.forEach((function(series) {\r\n var stackIndex = seriesStackIndexCallback(currentStacks.indexOf(stack), currentStacks.length);\r\n var points = series.getPointsByArg(arg, true);\r\n var barPadding = validateBarPadding(series.getOptions().barPadding);\r\n var barWidth = series.getOptions().barWidth;\r\n var offset = getOffset(stackIndex, parameters);\r\n var width = parameters.width;\r\n var extraParameters;\r\n if (-1 === stackIndex) {\r\n return\r\n }\r\n if (isDefined(barPadding) || isDefined(barWidth)) {\r\n extraParameters = calculateParams(barsArea, currentStacks.length, 1 - barPadding, barWidth);\r\n width = extraParameters.width;\r\n if (!series.getBarOverlapGroup()) {\r\n offset = getOffset(stackIndex, extraParameters)\r\n }\r\n }\r\n correctPointCoordinates(points, width, offset)\r\n }))\r\n}\r\n\r\nfunction getStackName(series) {\r\n return series.getStackName() || series.getBarOverlapGroup()\r\n}\r\n\r\nfunction adjustBarSeriesDimensionsCore(series, options, seriesStackIndexCallback) {\r\n var _series$, _series$2;\r\n var commonStacks = [];\r\n var allArguments = [];\r\n var seriesInStacks = {};\r\n var barGroupWidth = options.barGroupWidth;\r\n var argumentAxis = null === (_series$ = series[0]) || void 0 === _series$ ? void 0 : _series$.getArgumentAxis();\r\n var interval;\r\n if (null !== (_series$2 = series[0]) && void 0 !== _series$2 && _series$2.useAggregation()) {\r\n var _series$3;\r\n var isDateArgAxis = \"datetime\" === (null === (_series$3 = series[0]) || void 0 === _series$3 ? void 0 : _series$3.argumentType);\r\n var tickInterval = argumentAxis.getTickInterval();\r\n var aggregationInterval = argumentAxis.getAggregationInterval();\r\n tickInterval = isDateArgAxis ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval;\r\n aggregationInterval = isDateArgAxis ? dateUtils.dateToMilliseconds(aggregationInterval) : aggregationInterval;\r\n interval = aggregationInterval < tickInterval ? aggregationInterval : tickInterval\r\n }\r\n interval = null === argumentAxis || void 0 === argumentAxis ? void 0 : argumentAxis.getTranslator().getInterval(interval);\r\n var barsArea = barGroupWidth ? interval > barGroupWidth ? barGroupWidth : interval : interval * (1 - validateBarGroupPadding(options.barGroupPadding));\r\n series.forEach((function(s, i) {\r\n var stackName = getStackName(s) || i.toString();\r\n var argument;\r\n for (argument in s.pointsByArgument) {\r\n if (-1 === allArguments.indexOf(argument.valueOf())) {\r\n allArguments.push(argument.valueOf())\r\n }\r\n }\r\n if (-1 === commonStacks.indexOf(stackName)) {\r\n commonStacks.push(stackName);\r\n seriesInStacks[stackName] = []\r\n }\r\n seriesInStacks[stackName].push(s)\r\n }));\r\n allArguments.forEach((function(arg) {\r\n var currentStacks = commonStacks.reduce((stacks, stack) => {\r\n if (isStackExist(seriesInStacks[stack], arg)) {\r\n stacks.push(stack)\r\n }\r\n return stacks\r\n }, []);\r\n var parameters = calculateParams(barsArea, currentStacks.length);\r\n commonStacks.forEach(stack => {\r\n correctStackCoordinates(seriesInStacks[stack], currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback)\r\n })\r\n }))\r\n}\r\n\r\nfunction calculateParams(barsArea, count, percentWidth, fixedBarWidth) {\r\n var spacing;\r\n var width;\r\n if (fixedBarWidth) {\r\n width = _min(fixedBarWidth, barsArea / count);\r\n spacing = count > 1 ? round((barsArea - round(width) * count) / (count - 1)) : 0\r\n } else if (isDefined(percentWidth)) {\r\n width = barsArea * percentWidth / count;\r\n spacing = count > 1 ? round((barsArea - barsArea * percentWidth) / (count - 1)) : 0\r\n } else {\r\n spacing = round(barsArea / count * .2);\r\n width = (barsArea - spacing * (count - 1)) / count\r\n }\r\n return {\r\n width: width > 1 ? round(width) : 1,\r\n spacing: spacing,\r\n middleIndex: count / 2,\r\n rawWidth: width\r\n }\r\n}\r\n\r\nfunction getOffset(stackIndex, parameters) {\r\n var width = parameters.rawWidth < 1 ? parameters.rawWidth : parameters.width;\r\n return (stackIndex - parameters.middleIndex + .5) * width - (parameters.middleIndex - stackIndex - .5) * parameters.spacing\r\n}\r\n\r\nfunction correctPointCoordinates(points, width, offset) {\r\n _each(points, (function(_, point) {\r\n point.correctCoordinates({\r\n width: width,\r\n offset: offset\r\n })\r\n }))\r\n}\r\n\r\nfunction getValueType(value) {\r\n return value >= 0 ? \"positive\" : \"negative\"\r\n}\r\n\r\nfunction getVisibleSeries(that) {\r\n return that.series.filter((function(s) {\r\n return s.isVisible()\r\n }))\r\n}\r\n\r\nfunction getAbsStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = -(stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = (stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getSeriesStackIndexCallback(inverted) {\r\n if (!inverted) {\r\n return function(index) {\r\n return index\r\n }\r\n } else {\r\n return function(index, stackCount) {\r\n return stackCount - index - 1\r\n }\r\n }\r\n}\r\n\r\nfunction isInverted(series) {\r\n return series[0] && series[0].getArgumentAxis().getTranslator().isInverted()\r\n}\r\n\r\nfunction adjustBarSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, this._options, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction getFirstValueSign(series) {\r\n var points = series.getPoints();\r\n var value;\r\n for (var i = 0; i < points.length; i++) {\r\n var point = points[i];\r\n value = point.initialValue && point.initialValue.valueOf();\r\n if (abs(value) > 0) {\r\n break\r\n }\r\n }\r\n return sign(value)\r\n}\r\n\r\nfunction adjustStackedSeriesValues() {\r\n var negativesAsZeroes = this._options.negativesAsZeroes;\r\n var series = getVisibleSeries(this);\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n var holesStack = {\r\n left: {},\r\n right: {}\r\n };\r\n var lastSeriesInPositiveStack = {};\r\n var lastSeriesInNegativeStack = {};\r\n series.forEach((function(singleSeries) {\r\n var stackName = getStackName(singleSeries);\r\n var hole = false;\r\n var stack = getFirstValueSign(singleSeries) < 0 ? lastSeriesInNegativeStack : lastSeriesInPositiveStack;\r\n singleSeries._prevSeries = stack[stackName];\r\n stack[stackName] = singleSeries;\r\n singleSeries.holes = extend(true, {}, holesStack);\r\n singleSeries.getPoints().forEach((function(point, index, points) {\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n var stacks = value >= 0 ? stackKeepers.positive : stackKeepers.negative;\r\n var isNotBarSeries = \"bar\" !== singleSeries.type;\r\n if (negativesAsZeroes && value < 0) {\r\n stacks = stackKeepers.positive;\r\n value = 0;\r\n point.resetValue()\r\n }\r\n stacks[stackName] = stacks[stackName] || {};\r\n var currentStack = stacks[stackName];\r\n if (currentStack[argument]) {\r\n if (isNotBarSeries) {\r\n point.correctValue(currentStack[argument])\r\n }\r\n currentStack[argument] += value\r\n } else {\r\n currentStack[argument] = value;\r\n if (isNotBarSeries) {\r\n point.resetCorrection()\r\n }\r\n }\r\n if (!point.hasValue()) {\r\n var prevPoint = points[index - 1];\r\n if (!hole && prevPoint && prevPoint.hasValue()) {\r\n argument = prevPoint.argument.valueOf();\r\n prevPoint._skipSetRightHole = true;\r\n holesStack.right[argument] = (holesStack.right[argument] || 0) + (prevPoint.value.valueOf() - (isFinite(prevPoint.minValue) ? prevPoint.minValue.valueOf() : 0))\r\n }\r\n hole = true\r\n } else if (hole) {\r\n hole = false;\r\n holesStack.left[argument] = (holesStack.left[argument] || 0) + (point.value.valueOf() - (isFinite(point.minValue) ? point.minValue.valueOf() : 0));\r\n point._skipSetLeftHole = true\r\n }\r\n }))\r\n }));\r\n series.forEach((function(singleSeries) {\r\n var holes = singleSeries.holes;\r\n singleSeries.getPoints().forEach((function(point) {\r\n var argument = point.argument.valueOf();\r\n point.resetHoles();\r\n !point._skipSetLeftHole && point.setHole(holes.left[argument] || holesStack.left[argument] && 0, \"left\");\r\n !point._skipSetRightHole && point.setHole(holes.right[argument] || holesStack.right[argument] && 0, \"right\");\r\n point._skipSetLeftHole = null;\r\n point._skipSetRightHole = null\r\n }))\r\n }));\r\n this._stackKeepers = stackKeepers;\r\n series.forEach((function(singleSeries) {\r\n singleSeries.getPoints().forEach((function(point) {\r\n var argument = point.argument.valueOf();\r\n var stackName = getStackName(singleSeries);\r\n var absTotal = getAbsStackSumByArg(stackKeepers, stackName, argument);\r\n var total = getStackSumByArg(stackKeepers, stackName, argument);\r\n point.setPercentValue(absTotal, total, holesStack.left[argument], holesStack.right[argument])\r\n }))\r\n }))\r\n}\r\n\r\nfunction updateStackedSeriesValues() {\r\n var that = this;\r\n var series = getVisibleSeries(that);\r\n var stack = that._stackKeepers;\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n _each(series, (function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n var stackName = singleSeries.getStackName();\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n if (!point.hasValue()) {\r\n return\r\n }\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n if (that.fullStacked) {\r\n value = value / getAbsStackSumByArg(stack, stackName, argument) || 0\r\n }\r\n var updateValue = valueAxisTranslator.checkMinBarSize(value, minShownBusinessValue, point.value);\r\n var valueType = getValueType(updateValue);\r\n var currentStack = stackKeepers[valueType][stackName] = stackKeepers[valueType][stackName] || {};\r\n if (currentStack[argument]) {\r\n point.minValue = currentStack[argument];\r\n currentStack[argument] += updateValue\r\n } else {\r\n currentStack[argument] = updateValue\r\n }\r\n point.value = currentStack[argument]\r\n }))\r\n }));\r\n if (that.fullStacked) {\r\n updateFullStackedSeriesValues(series, stackKeepers)\r\n }\r\n}\r\n\r\nfunction updateFullStackedSeriesValues(series, stackKeepers) {\r\n _each(series, (function(_, singleSeries) {\r\n var stackName = singleSeries.getStackName ? singleSeries.getStackName() : \"default\";\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n var stackSum = getAbsStackSumByArg(stackKeepers, stackName, point.argument.valueOf());\r\n if (0 !== stackSum) {\r\n point.value = point.value / stackSum;\r\n if (isNumeric(point.minValue)) {\r\n point.minValue = point.minValue / stackSum\r\n }\r\n }\r\n }))\r\n }))\r\n}\r\n\r\nfunction updateRangeSeriesValues() {\r\n var series = getVisibleSeries(this);\r\n _each(series, (function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n if (minShownBusinessValue) {\r\n _each(singleSeries.getPoints(), (function(_, point) {\r\n if (!point.hasValue()) {\r\n return\r\n }\r\n if (point.value.valueOf() - point.minValue.valueOf() < minShownBusinessValue) {\r\n point.value = point.value.valueOf() + minShownBusinessValue / 2;\r\n point.minValue = point.minValue.valueOf() - minShownBusinessValue / 2\r\n }\r\n }))\r\n }\r\n }))\r\n}\r\n\r\nfunction updateBarSeriesValues() {\r\n _each(this.series, (function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n if (minShownBusinessValue) {\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n if (point.hasValue()) {\r\n point.value = valueAxisTranslator.checkMinBarSize(point.initialValue, minShownBusinessValue)\r\n }\r\n }))\r\n }\r\n }))\r\n}\r\n\r\nfunction adjustCandlestickSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, {\r\n barGroupPadding: .3\r\n }, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction adjustBubbleSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n if (!series.length) {\r\n return\r\n }\r\n var options = this._options;\r\n var visibleAreaX = series[0].getArgumentAxis().getVisibleArea();\r\n var visibleAreaY = series[0].getValueAxis().getVisibleArea();\r\n var min = _min(visibleAreaX[1] - visibleAreaX[0], visibleAreaY[1] - visibleAreaY[0]);\r\n var minBubbleArea = pow(options.minBubbleSize, 2);\r\n var maxBubbleArea = pow(min * options.maxBubbleSize, 2);\r\n var equalBubbleSize = (min * options.maxBubbleSize + options.minBubbleSize) / 2;\r\n var minPointSize = 1 / 0;\r\n var maxPointSize = -1 / 0;\r\n var pointSize;\r\n var bubbleArea;\r\n var sizeProportion;\r\n _each(series, (function(_, seriesItem) {\r\n _each(seriesItem.getPoints(), (function(_, point) {\r\n maxPointSize = maxPointSize > point.size ? maxPointSize : point.size;\r\n minPointSize = minPointSize < point.size ? minPointSize : point.size\r\n }))\r\n }));\r\n var sizeDispersion = maxPointSize - minPointSize;\r\n var areaDispersion = abs(maxBubbleArea - minBubbleArea);\r\n _each(series, (function(_, seriesItem) {\r\n _each(seriesItem.getPoints(), (function(_, point) {\r\n if (maxPointSize === minPointSize) {\r\n pointSize = round(equalBubbleSize)\r\n } else {\r\n sizeProportion = abs(point.size - minPointSize) / sizeDispersion;\r\n bubbleArea = areaDispersion * sizeProportion + minBubbleArea;\r\n pointSize = round(sqrt(bubbleArea))\r\n }\r\n point.correctCoordinates(pointSize)\r\n }))\r\n }))\r\n}\r\nexport function SeriesFamily(options) {\r\n this.type = _normalizeEnum(options.type);\r\n this.pane = options.pane;\r\n this.series = [];\r\n this.updateOptions(options);\r\n switch (this.type) {\r\n case \"bar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.updateSeriesValues = updateBarSeriesValues;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"rangebar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.updateSeriesValues = updateRangeSeriesValues;\r\n break;\r\n case \"fullstackedbar\":\r\n this.fullStacked = true;\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n this.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"stackedbar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n this.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"fullstackedarea\":\r\n case \"fullstackedline\":\r\n case \"fullstackedspline\":\r\n case \"fullstackedsplinearea\":\r\n this.fullStacked = true;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"stackedarea\":\r\n case \"stackedsplinearea\":\r\n case \"stackedline\":\r\n case \"stackedspline\":\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"candlestick\":\r\n case \"stock\":\r\n this.adjustSeriesDimensions = adjustCandlestickSeriesDimensions;\r\n break;\r\n case \"bubble\":\r\n this.adjustSeriesDimensions = adjustBubbleSeriesDimensions\r\n }\r\n}\r\nSeriesFamily.prototype = {\r\n constructor: SeriesFamily,\r\n adjustSeriesDimensions: _noop,\r\n adjustSeriesValues: _noop,\r\n updateSeriesValues: _noop,\r\n updateOptions: function(options) {\r\n this._options = options\r\n },\r\n dispose: function() {\r\n this.series = null\r\n },\r\n add: function(series) {\r\n var type = this.type;\r\n this.series = _map(series, singleSeries => singleSeries.type === type ? singleSeries : null)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/viz/chart_components/m_advanced_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n noop as _noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n reverseEach as _reverseEach\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined as _isDefined,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n Axis\r\n} from \"../../../viz/axes/base_axis\";\r\nimport {\r\n SeriesFamily\r\n} from \"../../../viz/core/series_family\";\r\nimport {\r\n convertVisualRangeObject,\r\n map as _map,\r\n mergeMarginOptions,\r\n rangesAreEqual,\r\n setCanvasValues,\r\n unique\r\n} from \"../../../viz/core/utils\";\r\nimport rangeDataCalculator from \"../../../viz/series/helpers/range_data_calculator\";\r\nimport {\r\n Range\r\n} from \"../../../viz/translators/range\";\r\nimport {\r\n areCanvasesDifferent,\r\n floorCanvasDimensions\r\n} from \"../../../viz/utils\";\r\nimport {\r\n BaseChart\r\n} from \"./m_base_chart\";\r\nvar {\r\n isArray: isArray\r\n} = Array;\r\nvar DEFAULT_AXIS_NAME = \"defaultAxisName\";\r\nvar FONT = \"font\";\r\nvar COMMON_AXIS_SETTINGS = \"commonAxisSettings\";\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar VISUAL_RANGE = \"VISUAL_RANGE\";\r\n\r\nfunction prepareAxis(axisOptions) {\r\n if (isArray(axisOptions)) {\r\n return 0 === axisOptions.length ? [{}] : axisOptions\r\n }\r\n return [axisOptions]\r\n}\r\n\r\nfunction processBubbleMargin(marginOptions, bubbleSize) {\r\n if (marginOptions.processBubbleSize) {\r\n marginOptions.size = bubbleSize\r\n }\r\n return marginOptions\r\n}\r\n\r\nfunction estimateBubbleSize(size, panesCount, maxSize, rotated) {\r\n var width = rotated ? size.width / panesCount : size.width;\r\n var height = rotated ? size.height : size.height / panesCount;\r\n return Math.min(width, height) * maxSize\r\n}\r\n\r\nfunction setAxisVisualRangeByOption(arg, axis, isDirectOption, index) {\r\n var options;\r\n var visualRange;\r\n if (isDirectOption) {\r\n visualRange = arg.value;\r\n options = {\r\n skipEventRising: true\r\n };\r\n var wrappedVisualRange = wrapVisualRange(arg.fullName, visualRange);\r\n if (wrappedVisualRange) {\r\n options = {\r\n allowPartialUpdate: true\r\n };\r\n visualRange = wrappedVisualRange\r\n }\r\n } else {\r\n visualRange = (_isDefined(index) ? arg.value[index] : arg.value).visualRange\r\n }\r\n axis.visualRange(visualRange, options)\r\n}\r\n\r\nfunction getAxisTypes(groupsData, axis, isArgumentAxes) {\r\n if (isArgumentAxes) {\r\n return {\r\n argumentAxisType: groupsData.argumentAxisType,\r\n argumentType: groupsData.argumentType\r\n }\r\n }\r\n var {\r\n valueAxisType: valueAxisType,\r\n valueType: valueType\r\n } = groupsData.groups.find(g => g.valueAxis === axis);\r\n return {\r\n valueAxisType: valueAxisType,\r\n valueType: valueType\r\n }\r\n}\r\n\r\nfunction wrapVisualRange(fullName, value) {\r\n var pathElements = fullName.split(\".\");\r\n var destElem = pathElements.at(-1);\r\n if (\"endValue\" === destElem || \"startValue\" === destElem) {\r\n return {\r\n [destElem]: value\r\n }\r\n }\r\n return\r\n}\r\nexport var AdvancedChart = BaseChart.inherit({\r\n _fontFields: [\"\".concat(COMMON_AXIS_SETTINGS, \".label.\").concat(FONT), \"\".concat(COMMON_AXIS_SETTINGS, \".title.\").concat(FONT)],\r\n _partialOptionChangesMap: {\r\n visualRange: VISUAL_RANGE,\r\n _customVisualRange: VISUAL_RANGE,\r\n strips: \"REFRESH_AXES\",\r\n constantLines: \"REFRESH_AXES\"\r\n },\r\n _partialOptionChangesPath: {\r\n argumentAxis: [\"strips\", \"constantLines\", \"visualRange\", \"_customVisualRange\"],\r\n valueAxis: [\"strips\", \"constantLines\", \"visualRange\", \"_customVisualRange\"]\r\n },\r\n _initCore() {\r\n this._panesClipRects = {};\r\n this.callBase()\r\n },\r\n _disposeCore() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n var panesClipRects = this._panesClipRects;\r\n this.callBase();\r\n disposeObjectsInArray.call(panesClipRects, \"fixed\");\r\n disposeObjectsInArray.call(panesClipRects, \"base\");\r\n disposeObjectsInArray.call(panesClipRects, \"wide\");\r\n this._panesClipRects = null;\r\n this._labelsAxesGroup.linkOff();\r\n this._labelsAxesGroup.dispose();\r\n this._labelsAxesGroup = null\r\n },\r\n _dispose() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n this.callBase();\r\n this.panes = null;\r\n if (this._legend) {\r\n this._legend.dispose();\r\n this._legend = null\r\n }\r\n disposeObjectsInArray.call(this, \"panesBackground\");\r\n disposeObjectsInArray.call(this, \"seriesFamilies\");\r\n this._disposeAxes()\r\n },\r\n _createPanes() {\r\n this._cleanPanesClipRects(\"fixed\");\r\n this._cleanPanesClipRects(\"base\");\r\n this._cleanPanesClipRects(\"wide\")\r\n },\r\n _cleanPanesClipRects(clipArrayName) {\r\n var clipArray = this._panesClipRects[clipArrayName];\r\n (clipArray || []).forEach(clipRect => {\r\n null === clipRect || void 0 === clipRect ? void 0 : clipRect.dispose()\r\n });\r\n this._panesClipRects[clipArrayName] = []\r\n },\r\n _getElementsClipRectID(paneName) {\r\n var clipShape = this._panesClipRects.fixed[this._getPaneIndex(paneName)];\r\n return null === clipShape || void 0 === clipShape ? void 0 : clipShape.id\r\n },\r\n _getPaneIndex(paneName) {\r\n var name = paneName || DEFAULT_PANE_NAME;\r\n return this.panes.findIndex(pane => pane.name === name)\r\n },\r\n _updateSize(forceUpdateCanvas) {\r\n this.callBase();\r\n if (forceUpdateCanvas && areCanvasesDifferent(this.__currentCanvas, this._canvas)) {\r\n this.__currentCanvas = floorCanvasDimensions(this._canvas)\r\n }\r\n setCanvasValues(this._canvas)\r\n },\r\n _reinitAxes() {\r\n this.panes = this._createPanes();\r\n this._populateAxes();\r\n this._axesReinitialized = true\r\n },\r\n _populateAxes() {\r\n var {\r\n panes: panes\r\n } = this;\r\n var rotated = this._isRotated();\r\n var argumentAxesOptions = prepareAxis(this.option(\"argumentAxis\") || {})[0];\r\n var valueAxisOption = this.option(\"valueAxis\");\r\n var valueAxesOptions = prepareAxis(valueAxisOption || {});\r\n var argumentAxesPopulatedOptions;\r\n var valueAxesPopulatedOptions = [];\r\n var axisNames = [];\r\n var valueAxesCounter = 0;\r\n var paneWithNonVirtualAxis;\r\n var crosshairMargins = this._getCrosshairMargins();\r\n\r\n function getNextAxisName() {\r\n var name = DEFAULT_AXIS_NAME + String(valueAxesCounter);\r\n valueAxesCounter += 1;\r\n return name\r\n }\r\n if (rotated) {\r\n paneWithNonVirtualAxis = \"right\" === argumentAxesOptions.position ? panes[panes.length - 1].name : panes[0].name\r\n } else {\r\n paneWithNonVirtualAxis = \"top\" === argumentAxesOptions.position ? panes[0].name : panes[panes.length - 1].name\r\n }\r\n argumentAxesPopulatedOptions = _map(panes, pane => {\r\n var virtual = pane.name !== paneWithNonVirtualAxis;\r\n return this._populateAxesOptions(\"argumentAxis\", argumentAxesOptions, {\r\n pane: pane.name,\r\n name: null,\r\n optionPath: \"argumentAxis\",\r\n crosshairMargin: rotated ? crosshairMargins.x : crosshairMargins.y\r\n }, rotated, virtual)\r\n });\r\n valueAxesOptions.forEach((axisOptions, priority) => {\r\n var _a;\r\n var axisPanes = [];\r\n var {\r\n name: name\r\n } = axisOptions;\r\n if (name && axisNames.includes(name)) {\r\n this._incidentOccurred(\"E2102\");\r\n return\r\n }\r\n if (name) {\r\n axisNames.push(name)\r\n }\r\n if (axisOptions.pane) {\r\n axisPanes.push(axisOptions.pane)\r\n }\r\n if (null === (_a = axisOptions.panes) || void 0 === _a ? void 0 : _a.length) {\r\n axisPanes = axisPanes.concat(axisOptions.panes.slice(0))\r\n }\r\n axisPanes = unique(axisPanes);\r\n if (!axisPanes.length) {\r\n axisPanes.push(void 0)\r\n }\r\n axisPanes.forEach(pane => {\r\n var optionPath = isArray(valueAxisOption) ? \"valueAxis[\".concat(String(priority), \"]\") : \"valueAxis\";\r\n valueAxesPopulatedOptions.push(this._populateAxesOptions(\"valueAxis\", axisOptions, {\r\n name: name || getNextAxisName(),\r\n pane: pane,\r\n priority: priority,\r\n optionPath: optionPath,\r\n crosshairMargin: rotated ? crosshairMargins.y : crosshairMargins.x\r\n }, rotated))\r\n })\r\n });\r\n this._redesignAxes(argumentAxesPopulatedOptions, true, paneWithNonVirtualAxis);\r\n this._redesignAxes(valueAxesPopulatedOptions, false)\r\n },\r\n _redesignAxes(options, isArgumentAxes, paneWithNonVirtualAxis) {\r\n var axesBasis = [];\r\n var axes = isArgumentAxes ? this._argumentAxes : this._valueAxes;\r\n options.forEach(opt => {\r\n var curAxes = null === axes || void 0 === axes ? void 0 : axes.filter(a => a.name === opt.name && (!_isDefined(opt.pane) && this.panes.some(p => p.name === a.pane) || a.pane === opt.pane));\r\n if (null === curAxes || void 0 === curAxes ? void 0 : curAxes.length) {\r\n curAxes.forEach(axis => {\r\n var axisTypes = getAxisTypes(this._groupsData, axis, isArgumentAxes);\r\n axis.updateOptions(opt);\r\n if (isArgumentAxes) {\r\n axis.setTypes(axisTypes.argumentAxisType, axisTypes.argumentType, \"argumentType\")\r\n } else {\r\n axis.setTypes(axisTypes.valueAxisType, axisTypes.valueType, \"valueType\")\r\n }\r\n axis.validate();\r\n axesBasis.push({\r\n axis: axis\r\n })\r\n })\r\n } else {\r\n axesBasis.push({\r\n options: opt\r\n })\r\n }\r\n });\r\n if (axes) {\r\n _reverseEach(axes, (index, axis) => {\r\n if (!axesBasis.some(basis => basis.axis && basis.axis === axis)) {\r\n this._disposeAxis(index, isArgumentAxes)\r\n }\r\n })\r\n } else if (isArgumentAxes) {\r\n axes = this._argumentAxes = []\r\n } else {\r\n axes = this._valueAxes = []\r\n }\r\n axesBasis.forEach(basis => {\r\n var {\r\n axis: axis\r\n } = basis;\r\n if (basis.axis && isArgumentAxes) {\r\n basis.axis.isVirtual = basis.axis.pane !== paneWithNonVirtualAxis\r\n } else if (basis.options) {\r\n axis = this._createAxis(isArgumentAxes, basis.options, isArgumentAxes ? basis.options.pane !== paneWithNonVirtualAxis : void 0);\r\n axes.push(axis)\r\n }\r\n axis.applyVisualRangeSetter(this._getVisualRangeSetter())\r\n })\r\n },\r\n _disposeAxis(index, isArgumentAxis) {\r\n var axes = isArgumentAxis ? this._argumentAxes : this._valueAxes;\r\n var axis = axes[index];\r\n if (!axis) {\r\n return\r\n }\r\n axis.dispose();\r\n axes.splice(index, 1)\r\n },\r\n _disposeAxes() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n disposeObjectsInArray.call(this, \"_argumentAxes\");\r\n disposeObjectsInArray.call(this, \"_valueAxes\")\r\n },\r\n _appendAdditionalSeriesGroups() {\r\n this._crosshairCursorGroup.linkAppend();\r\n if (this._scrollBar) {\r\n this._scrollBarGroup.linkAppend()\r\n }\r\n },\r\n _getLegendTargets() {\r\n return (this.series || []).map(s => {\r\n var item = this._getLegendOptions(s);\r\n item.legendData.series = s;\r\n if (!s.getOptions().showInLegend) {\r\n item.legendData.visible = false\r\n }\r\n return item\r\n })\r\n },\r\n _legendItemTextField: \"name\",\r\n _seriesPopulatedHandlerCore() {\r\n this._processSeriesFamilies();\r\n this._processValueAxisFormat()\r\n },\r\n _renderTrackers() {\r\n for (var i = 0; i < this.series.length; i += 1) {\r\n this.series[i].drawTrackers()\r\n }\r\n },\r\n _specialProcessSeries() {\r\n this._processSeriesFamilies()\r\n },\r\n _processSeriesFamilies() {\r\n var _a;\r\n var types = [];\r\n var families = [];\r\n var paneSeries;\r\n var themeManager = this._themeManager;\r\n var negativesAsZeroes = themeManager.getOptions(\"negativesAsZeroes\");\r\n var negativesAsZeros = themeManager.getOptions(\"negativesAsZeros\");\r\n var familyOptions = {\r\n minBubbleSize: themeManager.getOptions(\"minBubbleSize\"),\r\n maxBubbleSize: themeManager.getOptions(\"maxBubbleSize\"),\r\n barGroupPadding: themeManager.getOptions(\"barGroupPadding\"),\r\n barGroupWidth: themeManager.getOptions(\"barGroupWidth\"),\r\n negativesAsZeroes: _isDefined(negativesAsZeroes) ? negativesAsZeroes : negativesAsZeros\r\n };\r\n if (null === (_a = this.seriesFamilies) || void 0 === _a ? void 0 : _a.length) {\r\n this.seriesFamilies.forEach(family => {\r\n family.updateOptions(familyOptions);\r\n family.adjustSeriesValues()\r\n });\r\n return\r\n }\r\n this.series.forEach(item => {\r\n if (!types.includes(item.type)) {\r\n types.push(item.type)\r\n }\r\n });\r\n this._getLayoutTargets().forEach(pane => {\r\n paneSeries = this._getSeriesForPane(pane.name);\r\n types.forEach(type => {\r\n var family = new SeriesFamily({\r\n type: type,\r\n pane: pane.name,\r\n minBubbleSize: familyOptions.minBubbleSize,\r\n maxBubbleSize: familyOptions.maxBubbleSize,\r\n barGroupPadding: familyOptions.barGroupPadding,\r\n barGroupWidth: familyOptions.barGroupWidth,\r\n negativesAsZeroes: familyOptions.negativesAsZeroes,\r\n rotated: this._isRotated()\r\n });\r\n family.add(paneSeries);\r\n family.adjustSeriesValues();\r\n families.push(family)\r\n })\r\n });\r\n this.seriesFamilies = families\r\n },\r\n _updateSeriesDimensions() {\r\n var seriesFamilies = this.seriesFamilies || [];\r\n for (var i = 0; i < seriesFamilies.length; i += 1) {\r\n var family = seriesFamilies[i];\r\n family.updateSeriesValues();\r\n family.adjustSeriesDimensions()\r\n }\r\n },\r\n _getLegendCallBack(series) {\r\n var _a;\r\n return null === (_a = this._legend) || void 0 === _a ? void 0 : _a.getActionCallback(series)\r\n },\r\n _appendAxesGroups() {\r\n this._stripsGroup.linkAppend();\r\n this._gridGroup.linkAppend();\r\n this._axesGroup.linkAppend();\r\n this._labelsAxesGroup.linkAppend();\r\n this._constantLinesGroup.linkAppend();\r\n this._stripLabelAxesGroup.linkAppend();\r\n this._scaleBreaksGroup.linkAppend()\r\n },\r\n _populateMarginOptions() {\r\n var bubbleSize = estimateBubbleSize(this.getSize(), this.panes.length, this._themeManager.getOptions(\"maxBubbleSize\"), this._isRotated());\r\n var argumentMarginOptions = {};\r\n this._valueAxes.forEach(valueAxis => {\r\n var groupSeries = this.series.filter(series => series.getValueAxis() === valueAxis);\r\n var marginOptions = {};\r\n groupSeries.forEach(series => {\r\n if (series.isVisible()) {\r\n var seriesMarginOptions = processBubbleMargin(series.getMarginOptions(), bubbleSize);\r\n marginOptions = mergeMarginOptions(marginOptions, seriesMarginOptions);\r\n argumentMarginOptions = mergeMarginOptions(argumentMarginOptions, seriesMarginOptions)\r\n }\r\n });\r\n valueAxis.setMarginOptions(marginOptions)\r\n });\r\n this._argumentAxes.forEach(a => a.setMarginOptions(argumentMarginOptions))\r\n },\r\n _populateBusinessRange(updatedAxis, keepRange) {\r\n var rotated = this._isRotated();\r\n var series = this._getVisibleSeries();\r\n var argRanges = {};\r\n var commonArgRange = new Range({\r\n rotated: !!rotated\r\n });\r\n var getPaneName = axis => axis.pane || DEFAULT_PANE_NAME;\r\n this.panes.forEach(p => {\r\n argRanges[p.name] = new Range({\r\n rotated: !!rotated\r\n })\r\n });\r\n this._valueAxes.forEach(valueAxis => {\r\n var groupRange = new Range({\r\n rotated: !!rotated,\r\n pane: valueAxis.pane,\r\n axis: valueAxis.name\r\n });\r\n var groupSeries = series.filter(series => series.getValueAxis() === valueAxis);\r\n groupSeries.forEach(series => {\r\n var seriesRange = series.getRangeData();\r\n groupRange.addRange(seriesRange.val);\r\n argRanges[getPaneName(valueAxis)].addRange(seriesRange.arg)\r\n });\r\n if (!updatedAxis || updatedAxis && groupSeries.length && valueAxis === updatedAxis) {\r\n valueAxis.setGroupSeries(groupSeries);\r\n valueAxis.setBusinessRange(groupRange, this._axesReinitialized || keepRange, this._argumentAxes[0]._lastVisualRangeUpdateMode)\r\n }\r\n });\r\n if (!updatedAxis || updatedAxis && series.length) {\r\n Object.keys(argRanges).forEach(p => commonArgRange.addRange(argRanges[p]));\r\n var commonInterval = commonArgRange.interval;\r\n this._argumentAxes.forEach(a => {\r\n var _a;\r\n var currentInterval = null !== (_a = argRanges[getPaneName(a)].interval) && void 0 !== _a ? _a : commonInterval;\r\n a.setBusinessRange(new Range(_extends(_extends({}, commonArgRange), {\r\n interval: currentInterval\r\n })), this._axesReinitialized, void 0, this._groupsData.categories)\r\n })\r\n }\r\n this._populateMarginOptions()\r\n },\r\n getArgumentAxis() {\r\n return (this._argumentAxes || []).find(a => !a.isVirtual)\r\n },\r\n getValueAxis(name) {\r\n return (this._valueAxes || []).find(_isDefined(name) ? a => a.name === name : a => a.pane === this.defaultPane)\r\n },\r\n _getGroupsData() {\r\n var groups = [];\r\n this._valueAxes.forEach(axis => {\r\n groups.push({\r\n series: this.series.filter(series => series.getValueAxis() === axis),\r\n valueAxis: axis,\r\n valueOptions: axis.getOptions()\r\n })\r\n });\r\n return {\r\n groups: groups,\r\n argumentAxes: this._argumentAxes,\r\n argumentOptions: this._argumentAxes[0].getOptions()\r\n }\r\n },\r\n _groupSeries() {\r\n this._correctValueAxes(false);\r\n this._groupsData = this._getGroupsData()\r\n },\r\n _processValueAxisFormat() {\r\n var axesWithFullStackedFormat = [];\r\n this.series.forEach(series => {\r\n var axis = series.getValueAxis();\r\n if (series.isFullStackedSeries()) {\r\n axis.setPercentLabelFormat();\r\n axesWithFullStackedFormat.push(axis)\r\n }\r\n });\r\n this._valueAxes.forEach(axis => {\r\n if (!axesWithFullStackedFormat.includes(axis)) {\r\n axis.resetAutoLabelFormat()\r\n }\r\n })\r\n },\r\n _populateAxesOptions(typeSelector, userOptions, axisOptions, rotated, virtual) {\r\n var preparedUserOptions = this._prepareStripsAndConstantLines(typeSelector, userOptions, rotated);\r\n var options = _extend(true, {}, preparedUserOptions, axisOptions, this._prepareAxisOptions(typeSelector, preparedUserOptions, rotated));\r\n if (virtual) {\r\n options.visible = false;\r\n options.tick.visible = false;\r\n options.minorTick.visible = false;\r\n options.label.visible = false;\r\n options.title = {}\r\n }\r\n return options\r\n },\r\n _getValFilter: series => rangeDataCalculator.getViewPortFilter(series.getValueAxis().visualRange() || {}),\r\n _createAxis(isArgumentAxes, options, virtual) {\r\n var typeSelector = isArgumentAxes ? \"argumentAxis\" : \"valueAxis\";\r\n var renderingSettings = _extend({\r\n renderer: this._renderer,\r\n incidentOccurred: this._incidentOccurred,\r\n eventTrigger: this._eventTrigger,\r\n axisClass: isArgumentAxes ? \"arg\" : \"val\",\r\n widgetClass: \"dxc\",\r\n stripsGroup: this._stripsGroup,\r\n stripLabelAxesGroup: this._stripLabelAxesGroup,\r\n constantLinesGroup: this._constantLinesGroup,\r\n scaleBreaksGroup: this._scaleBreaksGroup,\r\n axesContainerGroup: this._axesGroup,\r\n labelsAxesGroup: this._labelsAxesGroup,\r\n gridGroup: this._gridGroup,\r\n isArgumentAxis: isArgumentAxes,\r\n getTemplate: template => this._getTemplate(template)\r\n }, this._getAxisRenderingOptions(typeSelector));\r\n var axis = new Axis(renderingSettings);\r\n axis.updateOptions(options);\r\n axis.isVirtual = virtual;\r\n return axis\r\n },\r\n _applyVisualRangeByVirtualAxes: () => false,\r\n _applyCustomVisualRangeOption(axis, range) {\r\n if (axis.getOptions().optionPath) {\r\n this._parseVisualRangeOption(\"\".concat(axis.getOptions().optionPath, \".visualRange\"), range)\r\n }\r\n },\r\n _getVisualRangeSetter() {\r\n return (axis, _ref) => {\r\n var {\r\n skipEventRising: skipEventRising,\r\n range: range\r\n } = _ref;\r\n this._applyCustomVisualRangeOption(axis, range);\r\n axis.setCustomVisualRange(range);\r\n axis.skipEventRising = skipEventRising;\r\n if (!this._applyVisualRangeByVirtualAxes(axis, range)) {\r\n if (this._applyingChanges) {\r\n this._change_VISUAL_RANGE()\r\n } else {\r\n this._requestChange([VISUAL_RANGE])\r\n }\r\n }\r\n }\r\n },\r\n _getTrackerSettings() {\r\n return _extend(this.callBase(), {\r\n argumentAxis: this.getArgumentAxis()\r\n })\r\n },\r\n _prepareStripsAndConstantLines(typeSelector, userOptions, rotated) {\r\n userOptions = this._themeManager.getOptions(typeSelector, userOptions, rotated);\r\n if (userOptions.strips) {\r\n userOptions.strips.forEach((line, i) => {\r\n userOptions.strips[i] = _extend(true, {}, userOptions.stripStyle, line)\r\n })\r\n }\r\n if (userOptions.constantLines) {\r\n userOptions.constantLines.forEach((line, i) => {\r\n userOptions.constantLines[i] = _extend(true, {}, userOptions.constantLineStyle, line)\r\n })\r\n }\r\n return userOptions\r\n },\r\n refresh() {\r\n this._disposeAxes();\r\n this.callBase()\r\n },\r\n _layoutAxes(drawAxes) {\r\n drawAxes();\r\n var needSpace = this.checkForMoreSpaceForPanesCanvas();\r\n if (needSpace) {\r\n var rect = this._rect.slice();\r\n var size = this._layout.backward(rect, rect, [needSpace.width, needSpace.height]);\r\n needSpace.width = Math.max(0, size[0]);\r\n needSpace.height = Math.max(0, size[1]);\r\n this._canvas = this._createCanvasFromRect(rect);\r\n drawAxes(needSpace)\r\n }\r\n },\r\n checkForMoreSpaceForPanesCanvas() {\r\n return this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), this._isRotated())\r\n },\r\n _parseVisualRangeOption(fullName, value) {\r\n var _a;\r\n var name = fullName.split(/[.[]/)[0];\r\n var index = fullName.match(/\\d+/g);\r\n index = _isDefined(index) ? parseInt(index[0], 10) : index;\r\n if (fullName.indexOf(\"visualRange\") > 0) {\r\n if (\"object\" !== type(value)) {\r\n value = null !== (_a = wrapVisualRange(fullName, value)) && void 0 !== _a ? _a : value\r\n }\r\n this._setCustomVisualRange(name, index, value)\r\n } else if ((\"object\" === type(value) || isArray(value)) && name.indexOf(\"Axis\") > 0 && JSON.stringify(value).indexOf(\"visualRange\") > 0) {\r\n if (_isDefined(value.visualRange)) {\r\n this._setCustomVisualRange(name, index, value.visualRange)\r\n } else if (isArray(value)) {\r\n value.forEach((a, i) => {\r\n if (_isDefined(a.visualRange)) {\r\n this._setCustomVisualRange(name, i, a.visualRange)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _setCustomVisualRange(axesName, index, value) {\r\n var options = this._options.silent(axesName);\r\n if (!options) {\r\n return\r\n }\r\n if (!_isDefined(index)) {\r\n options._customVisualRange = value\r\n } else {\r\n options[index]._customVisualRange = value\r\n }\r\n this._axesReinitialized = true\r\n },\r\n _raiseZoomEndHandlers() {\r\n this._valueAxes.forEach(axis => axis.handleZoomEnd())\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n _extend(this._optionsByReference, {\r\n \"valueAxis.visualRange\": true\r\n })\r\n },\r\n _notifyOptionChanged(option, value) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._optionChangedLocker) {\r\n this._parseVisualRangeOption(option, value)\r\n }\r\n },\r\n _notifyVisualRange() {\r\n this._valueAxes.forEach(axis => {\r\n var axisPath = axis.getOptions().optionPath;\r\n if (axisPath) {\r\n var path = \"\".concat(axisPath, \".visualRange\");\r\n var visualRange = convertVisualRangeObject(axis.visualRange(), !isArray(this.option(path)));\r\n if (!axis.skipEventRising || !rangesAreEqual(visualRange, this.option(path))) {\r\n if (!this.option(axisPath) && \"valueAxis\" !== axisPath) {\r\n this.option(axisPath, {\r\n name: axis.name,\r\n visualRange: visualRange\r\n })\r\n } else {\r\n this.option(path, visualRange)\r\n }\r\n } else {\r\n axis.skipEventRising = null\r\n }\r\n }\r\n })\r\n },\r\n _notify() {\r\n this.callBase();\r\n this._axesReinitialized = false;\r\n if (true !== this.option(\"disableTwoWayBinding\")) {\r\n this.skipOptionsRollBack = true;\r\n this._notifyVisualRange();\r\n this.skipOptionsRollBack = false\r\n }\r\n },\r\n _getAxesForScaling() {\r\n return this._valueAxes\r\n },\r\n _getAxesByOptionPath(arg, isDirectOption, optionName) {\r\n var sourceAxes = this._getAxesForScaling();\r\n var axes = [];\r\n if (isDirectOption) {\r\n var axisPath;\r\n if (arg.fullName) {\r\n axisPath = arg.fullName.slice(0, arg.fullName.indexOf(\".\"))\r\n }\r\n axes = sourceAxes.filter(a => a.getOptions().optionPath === axisPath)\r\n } else if (\"object\" === type(arg.value)) {\r\n axes = sourceAxes.filter(a => a.getOptions().optionPath === arg.name)\r\n } else if (isArray(arg.value)) {\r\n arg.value.forEach((v, index) => {\r\n var axis = sourceAxes.filter(a => a.getOptions().optionPath === \"\".concat(arg.name, \"[\").concat(index, \"]\"))[0];\r\n if (_isDefined(v[optionName]) && _isDefined(axis)) {\r\n axes[index] = axis\r\n }\r\n })\r\n }\r\n return axes\r\n },\r\n _optionChanged(arg) {\r\n if (!this._optionChangedLocker) {\r\n var axes;\r\n var isDirectOption = arg.fullName.indexOf(\"visualRange\") > 0 ? true : this.getPartialChangeOptionsName(arg).indexOf(\"visualRange\") > -1 ? false : void 0;\r\n if (_isDefined(isDirectOption)) {\r\n axes = this._getAxesByOptionPath(arg, isDirectOption, \"visualRange\");\r\n if (axes) {\r\n if (axes.length > 1 || isArray(arg.value)) {\r\n axes.forEach((a, index) => setAxisVisualRangeByOption(arg, a, isDirectOption, index))\r\n } else if (1 === axes.length) {\r\n setAxisVisualRangeByOption(arg, axes[0], isDirectOption)\r\n }\r\n }\r\n }\r\n }\r\n this.callBase(arg)\r\n },\r\n _change_VISUAL_RANGE() {\r\n this._recreateSizeDependentObjects(false);\r\n if (!this._changes.has(\"FULL_RENDER\")) {\r\n var resizePanesOnZoom = this.option(\"resizePanesOnZoom\");\r\n this._doRender({\r\n force: true,\r\n drawTitle: false,\r\n drawLegend: false,\r\n adjustAxes: null !== resizePanesOnZoom && void 0 !== resizePanesOnZoom ? resizePanesOnZoom : this.option(\"adjustAxesOnZoom\") || false,\r\n animate: false\r\n });\r\n this._raiseZoomEndHandlers()\r\n }\r\n },\r\n resetVisualRange() {\r\n this._valueAxes.forEach(axis => {\r\n axis.resetVisualRange(false);\r\n this._applyCustomVisualRangeOption(axis)\r\n });\r\n this._requestChange([VISUAL_RANGE])\r\n },\r\n _getCrosshairMargins: () => ({\r\n x: 0,\r\n y: 0\r\n }),\r\n _legendDataField: \"series\",\r\n _adjustSeriesLabels: _noop,\r\n _correctValueAxes: _noop\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/viz/m_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPrecision\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined as _isDefined,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n Crosshair,\r\n getMargins\r\n} from \"../../viz/chart_components/crosshair\";\r\nimport {\r\n LayoutManager\r\n} from \"../../viz/chart_components/layout_manager\";\r\nimport multiAxesSynchronizer from \"../../viz/chart_components/multi_axes_synchronizer\";\r\nimport {\r\n ScrollBar\r\n} from \"../../viz/chart_components/scroll_bar\";\r\nimport shutterZoom from \"../../viz/chart_components/shutter_zoom\";\r\nimport zoomAndPan from \"../../viz/chart_components/zoom_and_pan\";\r\nimport {\r\n plugins\r\n} from \"../../viz/core/annotations\";\r\nimport {\r\n convertVisualRangeObject,\r\n extractColor,\r\n getCategoriesInfo,\r\n getLog,\r\n isRelativeHeightPane,\r\n map as _map,\r\n normalizePanesHeight,\r\n PANE_PADDING,\r\n rangesAreEqual,\r\n updatePanesCanvases\r\n} from \"../../viz/core/utils\";\r\nimport rangeDataCalculator from \"../../viz/series/helpers/range_data_calculator\";\r\nimport {\r\n Range\r\n} from \"../../viz/translators/range\";\r\nimport {\r\n prepareSegmentRectPoints\r\n} from \"../../viz/utils\";\r\nimport {\r\n AdvancedChart\r\n} from \"./chart_components/m_advanced_chart\";\r\nimport {\r\n overlapping\r\n} from \"./chart_components/m_base_chart\";\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar VISUAL_RANGE = \"VISUAL_RANGE\";\r\nvar DEFAULT_PANES = [{\r\n name: DEFAULT_PANE_NAME,\r\n border: {}\r\n}];\r\nvar DISCRETE = \"discrete\";\r\nvar {\r\n isArray: isArray\r\n} = Array;\r\n\r\nfunction getFirstAxisNameForPane(axes, paneName, defaultPane) {\r\n var result;\r\n for (var i = 0; i < axes.length; i += 1) {\r\n if (axes[i].pane === paneName || void 0 === axes[i].pane && paneName === defaultPane) {\r\n result = axes[i].name;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n result = axes[0].name\r\n }\r\n return result\r\n}\r\n\r\nfunction changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility) {\r\n var gridOpt = axis.getOptions().grid;\r\n var minorGridOpt = axis.getOptions().minorGrid;\r\n gridOpt.visible = gridVisibility;\r\n minorGridOpt && (minorGridOpt.visible = minorGridVisibility)\r\n}\r\n\r\nfunction hideGridsOnNonFirstValueAxisForPane(axesForPane) {\r\n var axisShown = false;\r\n var hiddenStubAxis = [];\r\n var minorGridVisibility = axesForPane.some(axis => {\r\n var minorGridOptions = axis.getOptions().minorGrid;\r\n return null === minorGridOptions || void 0 === minorGridOptions ? void 0 : minorGridOptions.visible\r\n });\r\n var gridVisibility = axesForPane.some(axis => {\r\n var gridOptions = axis.getOptions().grid;\r\n return null === gridOptions || void 0 === gridOptions ? void 0 : gridOptions.visible\r\n });\r\n if (axesForPane.length > 1) {\r\n axesForPane.forEach(axis => {\r\n var gridOpt = axis.getOptions().grid;\r\n if (axisShown) {\r\n changeVisibilityAxisGrids(axis, false, false)\r\n } else if (null === gridOpt || void 0 === gridOpt ? void 0 : gridOpt.visible) {\r\n if (axis.getTranslator().getBusinessRange().isEmpty()) {\r\n changeVisibilityAxisGrids(axis, false, false);\r\n hiddenStubAxis.push(axis)\r\n } else {\r\n axisShown = true;\r\n changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility)\r\n }\r\n }\r\n });\r\n if (!axisShown && hiddenStubAxis.length) {\r\n changeVisibilityAxisGrids(hiddenStubAxis[0], gridVisibility, minorGridVisibility)\r\n }\r\n }\r\n}\r\n\r\nfunction findAxisOptions(valueAxes, valueAxesOptions, axisName) {\r\n var result;\r\n var axInd;\r\n for (axInd = 0; axInd < valueAxesOptions.length; axInd += 1) {\r\n if (valueAxesOptions[axInd].name === axisName) {\r\n result = valueAxesOptions[axInd];\r\n result.priority = axInd;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n for (axInd = 0; axInd < valueAxes.length; axInd += 1) {\r\n if (valueAxes[axInd].name === axisName) {\r\n result = valueAxes[axInd].getOptions();\r\n result.priority = valueAxes[axInd].priority;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction findAxis(paneName, axisName, axes) {\r\n var axisByName = axes.find(axis => axis.name === axisName && axis.pane === paneName);\r\n if (axisByName) {\r\n return axisByName\r\n }\r\n if (paneName) {\r\n return findAxis(void 0, axisName, axes)\r\n }\r\n}\r\n\r\nfunction compareAxes(a, b) {\r\n return a.priority - b.priority\r\n}\r\n\r\nfunction doesPaneExist(panes, paneName) {\r\n var found = false;\r\n _each(panes, (_, pane) => {\r\n if (pane.name === paneName) {\r\n found = true;\r\n return false\r\n }\r\n return\r\n });\r\n return found\r\n}\r\n\r\nfunction accumulate(field, src1, src2, auxSpacing) {\r\n var val1 = src1[field] || 0;\r\n var val2 = src2[field] || 0;\r\n return val1 + val2 + (val1 && val2 ? auxSpacing : 0)\r\n}\r\n\r\nfunction pickMax(field, src1, src2) {\r\n return pickMaxValue(src1[field], src2[field])\r\n}\r\n\r\nfunction pickMaxValue(val1, val2) {\r\n return Math.max(val1 || 0, val2 || 0)\r\n}\r\n\r\nfunction getAxisMargins(axis) {\r\n return axis.getMargins()\r\n}\r\n\r\nfunction getHorizontalAxesMargins(axes, getMarginsFunc) {\r\n return axes.reduce((margins, axis) => {\r\n var _a;\r\n var axisMargins = getMarginsFunc(axis);\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = accumulate(\"top\", paneMargins, axisMargins, spacing);\r\n paneMargins.bottom = accumulate(\"bottom\", paneMargins, axisMargins, spacing);\r\n paneMargins.left = pickMax(\"left\", paneMargins, axisMargins);\r\n paneMargins.right = pickMax(\"right\", paneMargins, axisMargins);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n var orthogonalAxis = null === (_a = axis.getOrthogonalAxis) || void 0 === _a ? void 0 : _a.call(axis);\r\n var shouldResetPositionMargin = (null === orthogonalAxis || void 0 === orthogonalAxis ? void 0 : orthogonalAxis.customPositionIsAvailable()) && (!axis.customPositionIsBoundaryOrthogonalAxis() || !orthogonalAxis.customPositionEqualsToPredefined());\r\n if (shouldResetPositionMargin) {\r\n margins[orthogonalAxis.getResolvedBoundaryPosition()] = 0\r\n }\r\n return margins\r\n }, {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction getVerticalAxesMargins(axes) {\r\n return axes.reduce((margins, axis) => {\r\n var axisMargins = axis.getMargins();\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = pickMax(\"top\", paneMargins, axisMargins);\r\n paneMargins.bottom = pickMax(\"bottom\", paneMargins, axisMargins);\r\n paneMargins.left = accumulate(\"left\", paneMargins, axisMargins, spacing);\r\n paneMargins.right = accumulate(\"right\", paneMargins, axisMargins, spacing);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n return margins\r\n }, {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction performActionOnAxes(axes, action, actionArgument1, actionArgument2, actionArgument3) {\r\n axes.forEach(axis => {\r\n axis[action](null === actionArgument1 || void 0 === actionArgument1 ? void 0 : actionArgument1[axis.pane], (null === actionArgument2 || void 0 === actionArgument2 ? void 0 : actionArgument2[axis.pane]) || actionArgument2, actionArgument3)\r\n })\r\n}\r\n\r\nfunction shrinkCanvases(isRotated, canvases, sizes, verticalMargins, horizontalMargins) {\r\n function getMargin(side, margins, pane) {\r\n var m = !(isRotated ? [\"left\", \"right\"] : [\"top\", \"bottom\"]).includes(side) ? margins : margins.panes[pane] || {};\r\n return m[side]\r\n }\r\n\r\n function getMaxMargin(side, margins1, margins2, pane) {\r\n return pickMaxValue(getMargin(side, margins1, pane), getMargin(side, margins2, pane))\r\n }\r\n var getOriginalField = field => \"original\".concat(field[0].toUpperCase()).concat(field.slice(1));\r\n\r\n function shrink(canvases, paneNames, sizeField, startMargin, endMargin, oppositeMargins) {\r\n paneNames = paneNames.sort((p1, p2) => canvases[p2][startMargin] - canvases[p1][startMargin]);\r\n paneNames.forEach(pane => {\r\n var canvas = canvases[pane];\r\n oppositeMargins.forEach(margin => {\r\n canvas[margin] = canvas[getOriginalField(margin)] + getMaxMargin(margin, verticalMargins, horizontalMargins, pane)\r\n })\r\n });\r\n var firstPane = canvases[paneNames[0]];\r\n var initialEmptySpace = firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - canvases[paneNames.at(-1)][getOriginalField(startMargin)];\r\n var emptySpace = paneNames.reduce((space, paneName) => {\r\n var maxStartMargin = getMaxMargin(startMargin, verticalMargins, horizontalMargins, paneName);\r\n var maxEndMargin = getMaxMargin(endMargin, verticalMargins, horizontalMargins, paneName);\r\n return space - maxStartMargin - maxEndMargin\r\n }, initialEmptySpace) - PANE_PADDING * (paneNames.length - 1);\r\n emptySpace -= Object.keys(sizes).reduce((prev, key) => {\r\n var currentHeight = !isRelativeHeightPane(sizes[key]) ? sizes[key].height : 0;\r\n return prev + currentHeight\r\n }, 0);\r\n var initialOffset = firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - (emptySpace < 0 ? emptySpace : 0);\r\n paneNames.reduce((offset, pane) => {\r\n var canvas = canvases[pane];\r\n var paneSize = sizes[pane];\r\n offset -= getMaxMargin(endMargin, verticalMargins, horizontalMargins, pane);\r\n canvas[endMargin] = firstPane[sizeField] - offset;\r\n offset -= !isRelativeHeightPane(paneSize) ? paneSize.height : Math.floor(emptySpace * paneSize.height);\r\n canvas[startMargin] = offset;\r\n offset -= getMaxMargin(startMargin, verticalMargins, horizontalMargins, pane) + PANE_PADDING;\r\n return offset\r\n }, initialOffset)\r\n }\r\n var paneNames = Object.keys(canvases);\r\n if (!isRotated) {\r\n shrink(canvases, paneNames, \"height\", \"top\", \"bottom\", [\"left\", \"right\"])\r\n } else {\r\n shrink(canvases, paneNames, \"width\", \"left\", \"right\", [\"top\", \"bottom\"])\r\n }\r\n return canvases\r\n}\r\n\r\nfunction drawAxesWithTicks(axes, condition, canvases, panesBorderOptions) {\r\n if (condition) {\r\n performActionOnAxes(axes, \"createTicks\", canvases);\r\n multiAxesSynchronizer.synchronize(axes)\r\n }\r\n performActionOnAxes(axes, \"draw\", !condition && canvases, panesBorderOptions)\r\n}\r\n\r\nfunction shiftAxis(side1, side2) {\r\n var shifts = {};\r\n return function(axis) {\r\n if (!axis.customPositionIsAvailable() || axis.customPositionEqualsToPredefined()) {\r\n var shift = shifts[axis.pane] = shifts[axis.pane] || {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n var spacing = axis.getMultipleAxesSpacing();\r\n var margins = axis.getMargins();\r\n axis.shift(shift);\r\n shift[side1] = accumulate(side1, shift, margins, spacing);\r\n shift[side2] = accumulate(side2, shift, margins, spacing)\r\n } else {\r\n axis.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction getCommonSize(side, margins) {\r\n var size = 0;\r\n var paneMargins;\r\n Object.keys(margins.panes).forEach(pane => {\r\n paneMargins = margins.panes[pane];\r\n size += \"height\" === side ? paneMargins.top + paneMargins.bottom : paneMargins.left + paneMargins.right\r\n });\r\n return size\r\n}\r\n\r\nfunction checkUsedSpace(sizeShortage, side, axes, getMarginFunc) {\r\n var size = 0;\r\n if (sizeShortage[side] > 0) {\r\n size = getCommonSize(side, getMarginFunc(axes, getAxisMargins));\r\n performActionOnAxes(axes, \"hideTitle\");\r\n sizeShortage[side] -= size - getCommonSize(side, getMarginFunc(axes, getAxisMargins))\r\n }\r\n if (sizeShortage[side] > 0) {\r\n performActionOnAxes(axes, \"hideOuterElements\")\r\n }\r\n}\r\n\r\nfunction axisAnimationEnabled(drawOptions, pointsToAnimation) {\r\n var pointsCount = pointsToAnimation.reduce((sum, count) => sum + count, 0) / pointsToAnimation.length;\r\n return drawOptions.animate && pointsCount <= drawOptions.animationPointsLimit\r\n}\r\n\r\nfunction collectMarkersInfoBySeries(allSeries, filteredSeries, argAxis) {\r\n var series = [];\r\n var overloadedSeries = {};\r\n var argVisualRange = argAxis.visualRange();\r\n var argTranslator = argAxis.getTranslator();\r\n var argViewPortFilter = rangeDataCalculator.getViewPortFilter(argVisualRange || {});\r\n filteredSeries.forEach(s => {\r\n var valAxis = s.getValueAxis();\r\n var valVisualRange = valAxis.getCanvasRange();\r\n var valTranslator = valAxis.getTranslator();\r\n var seriesIndex = allSeries.indexOf(s);\r\n var valViewPortFilter = rangeDataCalculator.getViewPortFilter(valVisualRange || {});\r\n overloadedSeries[seriesIndex] = {};\r\n filteredSeries.forEach(sr => {\r\n overloadedSeries[seriesIndex][allSeries.indexOf(sr)] = 0\r\n });\r\n var seriesPoints = [];\r\n var pointsInViewport = s.getPoints().filter(p => p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true))));\r\n pointsInViewport.forEach(p => {\r\n var tp = {\r\n seriesIndex: seriesIndex,\r\n argument: p.argument,\r\n value: p.getMaxValue(true),\r\n size: p.bubbleSize || p.getOptions().size,\r\n x: void 0,\r\n y: void 0\r\n };\r\n if (p.getMinValue(true) !== p.getMaxValue(true)) {\r\n var mp = _extend({}, tp);\r\n mp.value = p.getMinValue(true);\r\n mp.x = argTranslator.to(mp.argument, 1);\r\n mp.y = valTranslator.to(mp.value, 1);\r\n seriesPoints.push(mp)\r\n }\r\n tp.x = argTranslator.to(tp.argument, 1);\r\n tp.y = valTranslator.to(tp.value, 1);\r\n seriesPoints.push(tp)\r\n });\r\n overloadedSeries[seriesIndex].pointsCount = seriesPoints.length;\r\n overloadedSeries[seriesIndex].total = 0;\r\n overloadedSeries[seriesIndex].continuousSeries = 0;\r\n series.push({\r\n name: s.name,\r\n index: seriesIndex,\r\n points: seriesPoints\r\n })\r\n });\r\n return {\r\n series: series,\r\n overloadedSeries: overloadedSeries\r\n }\r\n}\r\nvar isOverlay = (currentPoint, overlayPoint, pointRadius) => {\r\n var pointHitsLeftBorder = overlayPoint.x - pointRadius <= currentPoint.x;\r\n var pointHitsRightBorder = overlayPoint.x + pointRadius >= currentPoint.x;\r\n var pointHitsTopBorder = overlayPoint.y - pointRadius <= currentPoint.y;\r\n var pointHitsBottomBorder = overlayPoint.y + pointRadius >= currentPoint.y;\r\n var isPointOverlappedHorizontally = pointHitsLeftBorder && pointHitsRightBorder;\r\n var isPointOverlappedVertically = pointHitsTopBorder && pointHitsBottomBorder;\r\n return isPointOverlappedHorizontally && isPointOverlappedVertically\r\n};\r\nvar isPointOverlapped = (currentPoint, points, skipSamePointsComparing) => {\r\n var radiusPoint = currentPoint.getOptions().size / 2;\r\n for (var i = 0; i < points.length; i += 1) {\r\n if (!skipSamePointsComparing) {\r\n var isXCoordinateSame = points[i].x === currentPoint.x;\r\n var isYCoordinateSame = points[i].y === currentPoint.y;\r\n if (isXCoordinateSame && isYCoordinateSame) {\r\n continue\r\n }\r\n }\r\n if (isOverlay(currentPoint, points[i], radiusPoint)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\n\r\nfunction fastHidingPointMarkersByArea(canvas, markersInfo, series) {\r\n var area = canvas.width * canvas.height;\r\n var seriesPoints = markersInfo.series;\r\n var _loop = function(i) {\r\n var currentSeries = series.filter(s => s.name === seriesPoints[i].name)[0];\r\n var {\r\n points: points\r\n } = seriesPoints[i];\r\n var pointSize = points.length ? points[0].size : 0;\r\n var pointsArea = pointSize * pointSize * points.length;\r\n if (currentSeries.autoHidePointMarkersEnabled() && pointsArea >= area / seriesPoints.length) {\r\n var {\r\n index: index\r\n } = seriesPoints[i];\r\n currentSeries.autoHidePointMarkers = true;\r\n seriesPoints.splice(i, 1);\r\n series.splice(series.indexOf(currentSeries), 1);\r\n markersInfo.overloadedSeries[index] = null\r\n }\r\n };\r\n for (var i = seriesPoints.length - 1; i >= 0; i -= 1) {\r\n _loop(i)\r\n }\r\n}\r\n\r\nfunction updateMarkersInfo(points, overloadedSeries) {\r\n var isContinuousSeries = false;\r\n for (var i = 0; i < points.length - 1; i += 1) {\r\n var curPoint = points[i];\r\n var {\r\n size: size\r\n } = curPoint;\r\n if (_isDefined(curPoint.x) && _isDefined(curPoint.y)) {\r\n for (var j = i + 1; j < points.length; j += 1) {\r\n var nextPoint = points[j];\r\n var nextX = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.x;\r\n var nextY = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.y;\r\n if (!_isDefined(nextX) || Math.abs(curPoint.x - nextX) >= size) {\r\n isContinuousSeries = isContinuousSeries && j !== i + 1;\r\n break\r\n } else {\r\n var distance = _isDefined(nextX) && _isDefined(nextY) && Math.sqrt((curPoint.x - nextX) ** 2 + (curPoint.y - nextY) ** 2);\r\n if (distance && distance < size) {\r\n overloadedSeries[curPoint.seriesIndex][nextPoint.seriesIndex] += 1;\r\n overloadedSeries[curPoint.seriesIndex].total += 1;\r\n if (!isContinuousSeries) {\r\n overloadedSeries[curPoint.seriesIndex].continuousSeries += 1;\r\n isContinuousSeries = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\nvar dxChart = AdvancedChart.inherit({\r\n _themeSection: \"chart\",\r\n _fontFields: [\"crosshair.label.font\"],\r\n _initCore() {\r\n this.paneAxis = {};\r\n this.callBase()\r\n },\r\n _init() {\r\n this._containerInitialHeight = hasWindow() ? getHeight(this._$element) : 0;\r\n this.callBase()\r\n },\r\n _correctAxes() {\r\n this._correctValueAxes(true)\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n _extend(this._deprecatedOptions, {\r\n \"argumentAxis.aggregateByCategory\": {\r\n since: \"23.1\",\r\n message: \"Use the aggregation.enabled property\"\r\n }\r\n })\r\n },\r\n _getExtraOptions: noop,\r\n _createPanes() {\r\n var panes = this.option(\"panes\");\r\n var panesNameCounter = 0;\r\n var defaultPane;\r\n if (!panes || isArray(panes) && !panes.length) {\r\n panes = DEFAULT_PANES\r\n }\r\n this.callBase();\r\n defaultPane = this.option(\"defaultPane\");\r\n panes = _extend(true, [], isArray(panes) ? panes : [panes]);\r\n _each(panes, (_, pane) => {\r\n pane.name = !_isDefined(pane.name) ? DEFAULT_PANE_NAME + panesNameCounter++ : pane.name\r\n });\r\n if (_isDefined(defaultPane)) {\r\n if (!doesPaneExist(panes, defaultPane)) {\r\n this._incidentOccurred(\"W2101\", [defaultPane]);\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n } else {\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n this.defaultPane = defaultPane;\r\n panes = this._isRotated() ? panes.reverse() : panes;\r\n return panes\r\n },\r\n _getAxisRenderingOptions: () => ({\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n }),\r\n _prepareAxisOptions(typeSelector, userOptions, rotated) {\r\n return {\r\n isHorizontal: \"argumentAxis\" === typeSelector !== rotated,\r\n containerColor: this._themeManager.getOptions(\"containerBackgroundColor\")\r\n }\r\n },\r\n _checkPaneName(seriesTheme) {\r\n var paneList = _map(this.panes, pane => pane.name);\r\n seriesTheme.pane = seriesTheme.pane || this.defaultPane;\r\n return paneList.includes(seriesTheme.pane)\r\n },\r\n _initCustomPositioningAxes() {\r\n var argumentAxis = this.getArgumentAxis();\r\n var valueAxisName = argumentAxis.getOptions().customPositionAxis;\r\n var valueAxis = this._valueAxes.find(v => v.pane === argumentAxis.pane && (!valueAxisName || valueAxisName === v.name));\r\n this._valueAxes.forEach(v => {\r\n if (argumentAxis !== v.getOrthogonalAxis()) {\r\n v.getOrthogonalAxis = () => argumentAxis;\r\n v.customPositionIsBoundaryOrthogonalAxis = () => argumentAxis.customPositionIsBoundary()\r\n }\r\n });\r\n if (_isDefined(valueAxis) && valueAxis !== argumentAxis.getOrthogonalAxis()) {\r\n argumentAxis.getOrthogonalAxis = () => valueAxis;\r\n argumentAxis.customPositionIsBoundaryOrthogonalAxis = () => this._valueAxes.some(v => v.customPositionIsBoundary())\r\n } else if (_isDefined(argumentAxis.getOrthogonalAxis()) && !_isDefined(valueAxis)) {\r\n argumentAxis.getOrthogonalAxis = noop\r\n }\r\n },\r\n _getAllAxes() {\r\n return this._argumentAxes.concat(this._valueAxes)\r\n },\r\n _resetAxesAnimation(isFirstDrawing, isHorizontal) {\r\n var axes;\r\n if (_isDefined(isHorizontal)) {\r\n axes = isHorizontal ^ this._isRotated() ? this._argumentAxes : this._valueAxes\r\n } else {\r\n axes = this._getAllAxes()\r\n }\r\n axes.forEach(a => {\r\n a.resetApplyingAnimation(isFirstDrawing)\r\n })\r\n },\r\n _axesBoundaryPositioning() {\r\n var allAxes = this._getAllAxes();\r\n var boundaryStateChanged = false;\r\n allAxes.forEach(a => {\r\n if (!a.customPositionIsAvailable()) {\r\n return\r\n }\r\n var prevBoundaryState = a.customPositionIsBoundary();\r\n a._customBoundaryPosition = a.getCustomBoundaryPosition();\r\n boundaryStateChanged = boundaryStateChanged || prevBoundaryState !== a.customPositionIsBoundary()\r\n });\r\n return boundaryStateChanged\r\n },\r\n _getCrosshairMargins() {\r\n var crosshairOptions = this._getCrosshairOptions() || {};\r\n var crosshairEnabled = crosshairOptions.enabled;\r\n var margins = getMargins();\r\n var horizontalLabel = _extend(true, {}, crosshairOptions.label, crosshairOptions.horizontalLine.label);\r\n var verticalLabel = _extend(true, {}, crosshairOptions.label, crosshairOptions.verticalLine.label);\r\n return {\r\n x: crosshairEnabled && crosshairOptions.horizontalLine.visible && horizontalLabel.visible ? margins.x : 0,\r\n y: crosshairEnabled && crosshairOptions.verticalLine.visible && verticalLabel.visible ? margins.y : 0\r\n }\r\n },\r\n _getValueAxis(paneName, axisName) {\r\n var valueAxes = this._valueAxes;\r\n var valueAxisOptions = this.option(\"valueAxis\") || {};\r\n var valueAxesOptions = isArray(valueAxisOptions) ? valueAxisOptions : [valueAxisOptions];\r\n var rotated = this._isRotated();\r\n var crosshairMargins = this._getCrosshairMargins();\r\n var axisOptions;\r\n var axis;\r\n axisName = axisName || getFirstAxisNameForPane(valueAxes, paneName, this.defaultPane);\r\n axis = findAxis(paneName, axisName, valueAxes);\r\n if (!axis) {\r\n axisOptions = findAxisOptions(valueAxes, valueAxesOptions, axisName);\r\n if (!axisOptions) {\r\n this._incidentOccurred(\"W2102\", [axisName]);\r\n axisOptions = {\r\n name: axisName,\r\n priority: valueAxes.length\r\n }\r\n }\r\n axis = this._createAxis(false, this._populateAxesOptions(\"valueAxis\", axisOptions, {\r\n pane: paneName,\r\n name: axisName,\r\n optionPath: isArray(valueAxisOptions) ? \"valueAxis[\".concat(axisOptions.priority, \"]\") : \"valueAxis\",\r\n crosshairMargin: rotated ? crosshairMargins.y : crosshairMargins.x\r\n }, rotated));\r\n axis.applyVisualRangeSetter(this._getVisualRangeSetter());\r\n valueAxes.push(axis)\r\n }\r\n axis.setPane(paneName);\r\n return axis\r\n },\r\n _correctValueAxes(needHideGrids) {\r\n var synchronizeMultiAxes = this._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var valueAxes = this._valueAxes;\r\n var paneWithAxis = {};\r\n this.series.forEach(series => {\r\n var axis = series.getValueAxis();\r\n paneWithAxis[axis.pane] = true\r\n });\r\n this.panes.forEach(pane => {\r\n var paneName = pane.name;\r\n if (!paneWithAxis[paneName]) {\r\n this._getValueAxis(paneName)\r\n }\r\n if (needHideGrids && synchronizeMultiAxes) {\r\n hideGridsOnNonFirstValueAxisForPane(valueAxes.filter(axis => axis.pane === paneName))\r\n }\r\n });\r\n this._valueAxes = valueAxes.filter(axis => {\r\n if (!axis.pane) {\r\n axis.setPane(this.defaultPane)\r\n }\r\n var paneExists = doesPaneExist(this.panes, axis.pane);\r\n if (!paneExists) {\r\n axis.dispose();\r\n axis = null\r\n }\r\n return paneExists\r\n }).sort(compareAxes);\r\n var defaultAxis = this.getValueAxis();\r\n this._valueAxes.forEach(axis => {\r\n var {\r\n optionPath: optionPath\r\n } = axis.getOptions();\r\n if (optionPath) {\r\n var axesWithSamePath = this._valueAxes.filter(a => a.getOptions().optionPath === optionPath);\r\n if (axesWithSamePath.length > 1) {\r\n if (axesWithSamePath.some(a => a === defaultAxis)) {\r\n axesWithSamePath.forEach(a => {\r\n if (a !== defaultAxis) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n } else {\r\n axesWithSamePath.forEach((a, i) => {\r\n if (0 !== i) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getSeriesForPane(paneName) {\r\n var paneSeries = [];\r\n _each(this.series, (_, oneSeries) => {\r\n if (oneSeries.pane === paneName) {\r\n paneSeries.push(oneSeries)\r\n }\r\n });\r\n return paneSeries\r\n },\r\n _createPanesBorderOptions() {\r\n var commonBorderOptions = this._themeManager.getOptions(\"commonPaneSettings\").border;\r\n var panesBorderOptions = {};\r\n this.panes.forEach(pane => {\r\n panesBorderOptions[pane.name] = _extend(true, {}, commonBorderOptions, pane.border)\r\n });\r\n return panesBorderOptions\r\n },\r\n _createScrollBar() {\r\n var _a;\r\n var scrollBarOptions = this._themeManager.getOptions(\"scrollBar\") || {};\r\n var scrollBarGroup = this._scrollBarGroup;\r\n if (scrollBarOptions.visible) {\r\n scrollBarOptions.rotated = this._isRotated();\r\n this._scrollBar = (this._scrollBar || new ScrollBar(this._renderer, scrollBarGroup)).update(scrollBarOptions)\r\n } else {\r\n scrollBarGroup.linkRemove();\r\n null === (_a = this._scrollBar) || void 0 === _a ? void 0 : _a.dispose();\r\n this._scrollBar = null\r\n }\r\n },\r\n _executeAppendAfterSeries(append) {\r\n append()\r\n },\r\n _prepareToRender() {\r\n var panesBorderOptions = this._createPanesBorderOptions();\r\n this._createPanesBackground();\r\n this._appendAxesGroups();\r\n this._adjustViewport();\r\n return panesBorderOptions\r\n },\r\n _adjustViewport() {\r\n var adjustOnZoom = this._themeManager.getOptions(\"adjustOnZoom\");\r\n if (!adjustOnZoom) {\r\n return\r\n }\r\n this._valueAxes.forEach(axis => axis.adjust())\r\n },\r\n _recreateSizeDependentObjects(isCanvasChanged) {\r\n var series = this._getVisibleSeries();\r\n var useAggregation = series.some(s => s.useAggregation());\r\n var zoomChanged = this._isZooming();\r\n if (!useAggregation) {\r\n return\r\n }\r\n this._argumentAxes.forEach(axis => {\r\n axis.updateCanvas(this._canvas, true)\r\n });\r\n series.forEach(series => {\r\n if (series.useAggregation() && (isCanvasChanged || zoomChanged || !series._useAllAggregatedPoints)) {\r\n series.createPoints()\r\n }\r\n });\r\n this._processSeriesFamilies()\r\n },\r\n _isZooming() {\r\n var argumentAxis = this.getArgumentAxis();\r\n if (!(null === argumentAxis || void 0 === argumentAxis ? void 0 : argumentAxis.getTranslator())) {\r\n return false\r\n }\r\n var businessRange = argumentAxis.getTranslator().getBusinessRange();\r\n var zoomRange = argumentAxis.getViewport();\r\n var min = zoomRange ? zoomRange.min : 0;\r\n var max = zoomRange ? zoomRange.max : 0;\r\n if (\"logarithmic\" === businessRange.axisType) {\r\n min = getLog(min, businessRange.base);\r\n max = getLog(max, businessRange.base)\r\n }\r\n var viewportDistance = businessRange.axisType === DISCRETE ? getCategoriesInfo(businessRange.categories, min, max).categories.length : Math.abs(max - min);\r\n var precision = getPrecision(viewportDistance);\r\n precision = precision > 1 ? 10 ** (precision - 2) : 1;\r\n var zoomChanged = Math.round((this._zoomLength - viewportDistance) * precision) / precision !== 0;\r\n this._zoomLength = viewportDistance;\r\n return zoomChanged\r\n },\r\n _handleSeriesDataUpdated() {\r\n var viewport = new Range;\r\n this.series.forEach(s => {\r\n viewport.addRange(s.getArgumentRange())\r\n });\r\n this._argumentAxes.forEach(axis => {\r\n axis.updateCanvas(this._canvas, true);\r\n axis.setBusinessRange(viewport, this._axesReinitialized)\r\n });\r\n this.callBase()\r\n },\r\n _isLegendInside() {\r\n return this._legend && \"inside\" === this._legend.getPosition()\r\n },\r\n _isRotated() {\r\n return this._themeManager.getOptions(\"rotated\")\r\n },\r\n _getLayoutTargets() {\r\n return this.panes\r\n },\r\n _applyClipRects(panesBorderOptions) {\r\n this._drawPanesBorders(panesBorderOptions);\r\n this._createClipRectsForPanes();\r\n this._applyClipRectsForAxes();\r\n this._fillPanesBackground()\r\n },\r\n _updateLegendPosition(drawOptions, legendHasInsidePosition) {\r\n if (drawOptions.drawLegend && this._legend && legendHasInsidePosition) {\r\n var {\r\n panes: panes\r\n } = this;\r\n var newCanvas = _extend({}, panes[0].canvas);\r\n var layoutManager = new LayoutManager;\r\n newCanvas.right = panes[panes.length - 1].canvas.right;\r\n newCanvas.bottom = panes[panes.length - 1].canvas.bottom;\r\n layoutManager.layoutInsideLegend(this._legend, newCanvas)\r\n }\r\n },\r\n _allowLegendInsidePosition: () => true,\r\n _applyExtraSettings(series) {\r\n var paneIndex = this._getPaneIndex(series.pane);\r\n var panesClipRects = this._panesClipRects;\r\n var wideClipRect = panesClipRects.wide[paneIndex];\r\n series.setClippingParams(panesClipRects.base[paneIndex].id, null === wideClipRect || void 0 === wideClipRect ? void 0 : wideClipRect.id, this._getPaneBorderVisibility(paneIndex))\r\n },\r\n _updatePanesCanvases(drawOptions) {\r\n if (!drawOptions.recreateCanvas) {\r\n return\r\n }\r\n updatePanesCanvases(this.panes, this._canvas, this._isRotated())\r\n },\r\n _normalizePanesHeight() {\r\n normalizePanesHeight(this.panes)\r\n },\r\n _renderScaleBreaks() {\r\n this._valueAxes.concat(this._argumentAxes).forEach(axis => {\r\n axis.drawScaleBreaks()\r\n })\r\n },\r\n _getArgFilter() {\r\n return rangeDataCalculator.getViewPortFilter(this.getArgumentAxis().visualRange() || {})\r\n },\r\n _hidePointsForSingleSeriesIfNeeded(series) {\r\n var seriesPoints = series.getPoints();\r\n var overlappedPointsCount = 0;\r\n for (var i = 0; i < seriesPoints.length; i += 1) {\r\n var currentPoint = seriesPoints[i];\r\n var overlappingPoints = seriesPoints.slice(i + 1);\r\n overlappedPointsCount += Number(isPointOverlapped(currentPoint, overlappingPoints));\r\n if (overlappedPointsCount > seriesPoints.length / 2) {\r\n series.autoHidePointMarkers = true;\r\n break\r\n }\r\n }\r\n },\r\n _applyAutoHidePointMarkers(filteredSeries) {\r\n var overlappingPoints = [];\r\n var overlappedPointsCalculator = (pointsCount, currentPoint) => pointsCount + isPointOverlapped(currentPoint, overlappingPoints, true);\r\n for (var i = filteredSeries.length - 1; i >= 0; i -= 1) {\r\n var currentSeries = filteredSeries[i];\r\n if (!currentSeries.autoHidePointMarkersEnabled()) {\r\n continue\r\n }\r\n currentSeries.autoHidePointMarkers = false;\r\n this._hidePointsForSingleSeriesIfNeeded(currentSeries);\r\n if (!currentSeries.autoHidePointMarkers) {\r\n var seriesPoints = currentSeries.getPoints();\r\n var overlappingPointsCount = seriesPoints.reduce(overlappedPointsCalculator, 0);\r\n if (overlappingPointsCount < seriesPoints.length) {\r\n overlappingPoints = overlappingPoints.concat(seriesPoints)\r\n } else {\r\n currentSeries.autoHidePointMarkers = true\r\n }\r\n }\r\n }\r\n },\r\n _applyPointMarkersAutoHiding() {\r\n var allSeries = this.series;\r\n if (!this._themeManager.getOptions(\"autoHidePointMarkers\")) {\r\n allSeries.forEach(s => {\r\n s.autoHidePointMarkers = false\r\n });\r\n return\r\n }\r\n this.panes.forEach(_ref => {\r\n var {\r\n borderCoords: borderCoords,\r\n name: name\r\n } = _ref;\r\n var series = allSeries.filter(s => s.pane === name && s.usePointsToDefineAutoHiding());\r\n series.forEach(singleSeries => {\r\n singleSeries.prepareCoordinatesForPoints()\r\n });\r\n var argAxis = this.getArgumentAxis();\r\n var markersInfo = collectMarkersInfoBySeries(allSeries, series, argAxis);\r\n fastHidingPointMarkersByArea(borderCoords, markersInfo, series);\r\n if (markersInfo.series.length) {\r\n var argVisualRange = argAxis.visualRange();\r\n var argAxisIsDiscrete = argAxis.getOptions().type === DISCRETE;\r\n var sortingCallback = argAxisIsDiscrete ? (p1, p2) => argVisualRange.categories.indexOf(p1.argument) - argVisualRange.categories.indexOf(p2.argument) : (p1, p2) => p1.argument - p2.argument;\r\n var points = [];\r\n markersInfo.series.forEach(s => {\r\n points = points.concat(s.points)\r\n });\r\n points.sort(sortingCallback);\r\n updateMarkersInfo(points, markersInfo.overloadedSeries);\r\n this._applyAutoHidePointMarkers(series)\r\n }\r\n })\r\n },\r\n _renderAxes(drawOptions, panesBorderOptions) {\r\n function calculateTitlesWidth(axes) {\r\n return axes.map(axis => {\r\n if (!axis.getTitle) {\r\n return 0\r\n }\r\n var title = axis.getTitle();\r\n return title ? title.bBox.width : 0\r\n })\r\n }\r\n var rotated = this._isRotated();\r\n var synchronizeMultiAxes = this._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var scrollBar = this._scrollBar ? [this._scrollBar] : [];\r\n var extendedArgAxes = this._isArgumentAxisBeforeScrollBar() ? this._argumentAxes.concat(scrollBar) : scrollBar.concat(this._argumentAxes);\r\n var verticalAxes = rotated ? this._argumentAxes : this._valueAxes;\r\n var verticalElements = rotated ? extendedArgAxes : this._valueAxes;\r\n var horizontalAxes = rotated ? this._valueAxes : this._argumentAxes;\r\n var horizontalElements = rotated ? this._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n var allElements = allAxes.concat(scrollBar);\r\n var verticalAxesFirstDrawing = verticalAxes.some(v => v.isFirstDrawing());\r\n this._normalizePanesHeight();\r\n this._updatePanesCanvases(drawOptions);\r\n var panesCanvases = this.panes.reduce((canvases, pane) => {\r\n canvases[pane.name] = _extend({}, pane.canvas);\r\n return canvases\r\n }, {});\r\n var paneSizes = this.panes.reduce((sizes, pane) => {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n var cleanPanesCanvases = _extend(true, {}, panesCanvases);\r\n this._initCustomPositioningAxes();\r\n var needCustomAdjustAxes = this._axesBoundaryPositioning();\r\n if (!drawOptions.adjustAxes && !needCustomAdjustAxes) {\r\n drawAxesWithTicks(verticalAxes, !rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n drawAxesWithTicks(horizontalAxes, rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n performActionOnAxes(allAxes, \"prepareAnimation\");\r\n this._renderScaleBreaks();\r\n horizontalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(verticalAxes));\r\n verticalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(horizontalAxes));\r\n return false\r\n }\r\n if (needCustomAdjustAxes) {\r\n allAxes.forEach(a => a.customPositionIsAvailable() && a.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n }))\r\n }\r\n if (this._scrollBar) {\r\n this._scrollBar.setPane(this.panes)\r\n }\r\n var vAxesMargins = {\r\n panes: {},\r\n left: 0,\r\n right: 0\r\n };\r\n var hAxesMargins = getHorizontalAxesMargins(horizontalElements, axis => axis.estimateMargins(panesCanvases[axis.pane]));\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n var drawAxesAndSetCanvases = isHorizontal => {\r\n var axes = isHorizontal ? horizontalAxes : verticalAxes;\r\n var condition = (isHorizontal ? rotated : !rotated) && synchronizeMultiAxes;\r\n drawAxesWithTicks(axes, condition, panesCanvases, panesBorderOptions);\r\n if (isHorizontal) {\r\n hAxesMargins = getHorizontalAxesMargins(horizontalElements, getAxisMargins)\r\n } else {\r\n vAxesMargins = getVerticalAxesMargins(verticalElements)\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins)\r\n };\r\n drawAxesAndSetCanvases(false);\r\n drawAxesAndSetCanvases(true);\r\n if (!this._changesApplying && this._estimateTickIntervals(verticalAxes, panesCanvases)) {\r\n drawAxesAndSetCanvases(false)\r\n }\r\n var oldTitlesWidth = calculateTitlesWidth(verticalAxes);\r\n var visibleSeries = this._getVisibleSeries();\r\n var pointsToAnimation = this._getPointsToAnimation(visibleSeries);\r\n var axesIsAnimated = axisAnimationEnabled(drawOptions, pointsToAnimation);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, axesIsAnimated);\r\n horizontalElements.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalElements.forEach(shiftAxis(\"left\", \"right\"));\r\n this._renderScaleBreaks();\r\n this.panes.forEach(pane => {\r\n _extend(pane.canvas, panesCanvases[pane.name])\r\n });\r\n this._valueAxes.forEach(axis => {\r\n axis.setInitRange()\r\n });\r\n verticalAxes.forEach((axis, i) => {\r\n var _a;\r\n if (null === (_a = axis.hasWrap) || void 0 === _a ? void 0 : _a.call(axis)) {\r\n var title = axis.getTitle();\r\n var newTitleWidth = title ? title.bBox.width : 0;\r\n var offset = newTitleWidth - oldTitlesWidth[i];\r\n if (\"right\" === axis.getOptions().position) {\r\n vAxesMargins.right += offset\r\n } else {\r\n vAxesMargins.left += offset;\r\n this.panes.forEach(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n vAxesMargins.panes[name].left += offset\r\n })\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, false, false);\r\n oldTitlesWidth = calculateTitlesWidth(verticalAxes)\r\n }\r\n });\r\n if (verticalAxes.some(v => v.customPositionIsAvailable() && v.getCustomPosition() !== v._axisPosition)) {\r\n axesIsAnimated && this._resetAxesAnimation(verticalAxesFirstDrawing, false);\r\n performActionOnAxes(verticalAxes, \"updateSize\", panesCanvases, axesIsAnimated)\r\n }\r\n horizontalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(verticalAxes));\r\n verticalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(horizontalAxes));\r\n return cleanPanesCanvases\r\n },\r\n _getExtraTemplatesItems() {\r\n var allAxes = (this._argumentAxes || []).concat(this._valueAxes || []);\r\n var elements = this._collectTemplatesFromItems(allAxes);\r\n return {\r\n items: elements.items,\r\n groups: elements.groups,\r\n launchRequest() {\r\n allAxes.forEach(a => {\r\n a.setRenderedState(true)\r\n })\r\n },\r\n doneRequest() {\r\n allAxes.forEach(a => {\r\n a.setRenderedState(false)\r\n })\r\n }\r\n }\r\n },\r\n _estimateTickIntervals: (axes, canvases) => axes.some(axis => axis.estimateTickInterval(canvases[axis.pane])),\r\n checkForMoreSpaceForPanesCanvas() {\r\n var rotated = this._isRotated();\r\n var panesAreCustomSized = this.panes.filter(p => p.unit).length === this.panes.length;\r\n var needSpace = false;\r\n if (panesAreCustomSized) {\r\n var needHorizontalSpace = 0;\r\n var needVerticalSpace = 0;\r\n if (rotated) {\r\n var argAxisRightMargin = this.getArgumentAxis().getMargins().right;\r\n var rightPanesIndent = Math.min(...this.panes.map(p => p.canvas.right));\r\n needHorizontalSpace = this._canvas.right + argAxisRightMargin - rightPanesIndent\r\n } else {\r\n var argAxisBottomMargin = this.getArgumentAxis().getMargins().bottom;\r\n var bottomPanesIndent = Math.min(...this.panes.map(p => p.canvas.bottom));\r\n needVerticalSpace = this._canvas.bottom + argAxisBottomMargin - bottomPanesIndent\r\n }\r\n needSpace = needHorizontalSpace > 0 || needVerticalSpace > 0 ? {\r\n width: needHorizontalSpace,\r\n height: needVerticalSpace\r\n } : false;\r\n if (0 !== needVerticalSpace) {\r\n var realSize = this.getSize();\r\n var customSize = this.option(\"size\");\r\n var container = this._$element[0];\r\n var containerHasStyledHeight = !!parseInt(container.style.height, 10) || 0 !== this._containerInitialHeight;\r\n if (!rotated && !(null === customSize || void 0 === customSize ? void 0 : customSize.height) && !containerHasStyledHeight) {\r\n this._forceResize(realSize.width, realSize.height + needVerticalSpace);\r\n needSpace = false\r\n }\r\n }\r\n } else {\r\n needSpace = this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), rotated, pane => ({\r\n width: rotated && !!pane.unit,\r\n height: !rotated && !!pane.unit\r\n }))\r\n }\r\n return needSpace\r\n },\r\n _forceResize(width, height) {\r\n this._renderer.resize(width, height);\r\n this._updateSize(true);\r\n this._setContentSize();\r\n this._preserveOriginalCanvas();\r\n this._updateCanvasClipRect(this._canvas)\r\n },\r\n _shrinkAxes(sizeShortage, panesCanvases) {\r\n if (!sizeShortage || !panesCanvases) {\r\n return\r\n }\r\n this._renderer.stopAllAnimations(true);\r\n var rotated = this._isRotated();\r\n var scrollBar = this._scrollBar ? [this._scrollBar] : [];\r\n var extendedArgAxes = this._isArgumentAxisBeforeScrollBar() ? this._argumentAxes.concat(scrollBar) : scrollBar.concat(this._argumentAxes);\r\n var verticalAxes = rotated ? extendedArgAxes : this._valueAxes;\r\n var horizontalAxes = rotated ? this._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n if (sizeShortage.width || sizeShortage.height) {\r\n checkUsedSpace(sizeShortage, \"height\", horizontalAxes, getHorizontalAxesMargins);\r\n checkUsedSpace(sizeShortage, \"width\", verticalAxes, getVerticalAxesMargins);\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n var paneSizes = this.panes.reduce((sizes, pane) => {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, getVerticalAxesMargins(verticalAxes), getHorizontalAxesMargins(horizontalAxes, getAxisMargins));\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n horizontalAxes.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalAxes.forEach(shiftAxis(\"left\", \"right\"));\r\n this.panes.forEach(pane => _extend(pane.canvas, panesCanvases[pane.name]))\r\n }\r\n },\r\n _isArgumentAxisBeforeScrollBar() {\r\n var _a;\r\n var argumentAxis = this.getArgumentAxis();\r\n if (this._scrollBar) {\r\n var argAxisPosition = argumentAxis.getResolvedBoundaryPosition();\r\n var argAxisLabelPosition = null === (_a = argumentAxis.getOptions().label) || void 0 === _a ? void 0 : _a.position;\r\n var scrollBarPosition = this._scrollBar.getOptions().position;\r\n return argumentAxis.hasNonBoundaryPosition() || scrollBarPosition === argAxisPosition && argAxisLabelPosition !== scrollBarPosition\r\n }\r\n return false\r\n },\r\n _getPanesParameters() {\r\n var {\r\n panes: panes\r\n } = this;\r\n var params = [];\r\n for (var i = 0; i < panes.length; i += 1) {\r\n if (this._getPaneBorderVisibility(i)) {\r\n params.push({\r\n coords: panes[i].borderCoords,\r\n clipRect: this._panesClipRects.fixed[i]\r\n })\r\n }\r\n }\r\n return params\r\n },\r\n _createCrosshairCursor() {\r\n var options = this._themeManager.getOptions(\"crosshair\") || {};\r\n var argumentAxis = this.getArgumentAxis();\r\n var axes = this._isRotated() ? [this._valueAxes, [argumentAxis]] : [\r\n [argumentAxis], this._valueAxes\r\n ];\r\n var parameters = {\r\n canvas: this._getCommonCanvas(),\r\n panes: this._getPanesParameters(),\r\n axes: axes\r\n };\r\n if (!(null === options || void 0 === options ? void 0 : options.enabled)) {\r\n return\r\n }\r\n if (this._crosshair) {\r\n this._crosshair.update(options, parameters)\r\n } else {\r\n this._crosshair = new Crosshair(this._renderer, options, parameters, this._crosshairCursorGroup)\r\n }\r\n this._crosshair.render()\r\n },\r\n _getCommonCanvas() {\r\n var commonCanvas;\r\n var {\r\n panes: panes\r\n } = this;\r\n for (var i = 0; i < panes.length; i += 1) {\r\n var {\r\n canvas: canvas\r\n } = panes[i];\r\n if (!commonCanvas) {\r\n commonCanvas = _extend({}, canvas)\r\n } else {\r\n commonCanvas.right = canvas.right;\r\n commonCanvas.bottom = canvas.bottom\r\n }\r\n }\r\n return commonCanvas\r\n },\r\n _createPanesBackground() {\r\n var defaultBackgroundColor = this._themeManager.getOptions(\"commonPaneSettings\").backgroundColor;\r\n var renderer = this._renderer;\r\n var rects = [];\r\n this._panesBackgroundGroup.clear();\r\n for (var i = 0; i < this.panes.length; i += 1) {\r\n var backgroundColor = this.panes[i].backgroundColor || defaultBackgroundColor;\r\n if (!backgroundColor || \"none\" === backgroundColor) {\r\n rects.push(null);\r\n continue\r\n }\r\n var rect = renderer.rect(0, 0, 0, 0).attr({\r\n fill: extractColor(backgroundColor),\r\n \"stroke-width\": 0\r\n }).append(this._panesBackgroundGroup);\r\n rects.push(rect)\r\n }\r\n this.panesBackground = rects\r\n },\r\n _fillPanesBackground() {\r\n _each(this.panes, (i, pane) => {\r\n var bc = pane.borderCoords;\r\n if (null !== this.panesBackground[i]) {\r\n this.panesBackground[i].attr({\r\n x: bc.left,\r\n y: bc.top,\r\n width: bc.width,\r\n height: bc.height\r\n })\r\n }\r\n })\r\n },\r\n _calcPaneBorderCoords(pane) {\r\n var {\r\n canvas: canvas\r\n } = pane;\r\n var bc = pane.borderCoords = pane.borderCoords || {};\r\n bc.left = canvas.left;\r\n bc.top = canvas.top;\r\n bc.right = canvas.width - canvas.right;\r\n bc.bottom = canvas.height - canvas.bottom;\r\n bc.width = Math.max(bc.right - bc.left, 0);\r\n bc.height = Math.max(bc.bottom - bc.top, 0)\r\n },\r\n _drawPanesBorders(panesBorderOptions) {\r\n var rotated = this._isRotated();\r\n this._panesBorderGroup.linkRemove().clear();\r\n _each(this.panes, (i, pane) => {\r\n var borderOptions = panesBorderOptions[pane.name];\r\n var attr = {\r\n fill: \"none\",\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n \"stroke-width\": borderOptions.width,\r\n dashStyle: borderOptions.dashStyle,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n this._calcPaneBorderCoords(pane, rotated);\r\n if (!borderOptions.visible) {\r\n return\r\n }\r\n var bc = pane.borderCoords;\r\n var segmentRectParams = prepareSegmentRectPoints(bc.left, bc.top, bc.width, bc.height, borderOptions);\r\n this._renderer.path(segmentRectParams.points, segmentRectParams.pathType).attr(attr).append(this._panesBorderGroup)\r\n });\r\n this._panesBorderGroup.linkAppend()\r\n },\r\n _createClipRect(clipArray, index, left, top, width, height) {\r\n var clipRect = clipArray[index];\r\n if (!clipRect) {\r\n clipRect = this._renderer.clipRect(left, top, width, height);\r\n clipArray[index] = clipRect\r\n } else {\r\n clipRect.attr({\r\n x: left,\r\n y: top,\r\n width: width,\r\n height: height\r\n })\r\n }\r\n },\r\n _createClipRectsForPanes() {\r\n var canvas = this._canvas;\r\n _each(this.panes, (i, pane) => {\r\n var needWideClipRect = false;\r\n var bc = pane.borderCoords;\r\n var {\r\n left: left\r\n } = bc;\r\n var {\r\n top: top\r\n } = bc;\r\n var {\r\n width: width\r\n } = bc;\r\n var {\r\n height: height\r\n } = bc;\r\n var panesClipRects = this._panesClipRects;\r\n this._createClipRect(panesClipRects.fixed, i, left, top, width, height);\r\n this._createClipRect(panesClipRects.base, i, left, top, width, height);\r\n _each(this.series, (_, series) => {\r\n if (series.pane === pane.name && (series.isFinancialSeries() || series.areErrorBarsVisible())) {\r\n needWideClipRect = true\r\n }\r\n });\r\n if (needWideClipRect) {\r\n if (this._isRotated()) {\r\n top = 0;\r\n height = canvas.height\r\n } else {\r\n left = 0;\r\n width = canvas.width\r\n }\r\n this._createClipRect(panesClipRects.wide, i, left, top, width, height)\r\n } else {\r\n panesClipRects.wide[i] = null\r\n }\r\n })\r\n },\r\n _applyClipRectsForAxes() {\r\n var axes = this._getAllAxes();\r\n var chartCanvasClipRectID = this._getCanvasClipRectID();\r\n for (var i = 0; i < axes.length; i += 1) {\r\n var elementsClipRectID = this._getElementsClipRectID(axes[i].pane);\r\n axes[i].applyClipRects(elementsClipRectID, chartCanvasClipRectID)\r\n }\r\n },\r\n _getPaneBorderVisibility(paneIndex) {\r\n var _a;\r\n var commonPaneBorderVisible = this._themeManager.getOptions(\"commonPaneSettings\").border.visible;\r\n var pane = this.panes[paneIndex];\r\n var paneVisibility = null === (_a = null === pane || void 0 === pane ? void 0 : pane.border) || void 0 === _a ? void 0 : _a.visible;\r\n return void 0 === paneVisibility ? commonPaneBorderVisible : paneVisibility\r\n },\r\n _getCanvasForPane(paneName) {\r\n var _a;\r\n return null === (_a = this.panes.find(pane => pane.name === paneName)) || void 0 === _a ? void 0 : _a.canvas\r\n },\r\n _getTrackerSettings() {\r\n return _extend(this.callBase(), {\r\n chart: this,\r\n rotated: this._isRotated(),\r\n crosshair: this._getCrosshairOptions().enabled ? this._crosshair : null,\r\n stickyHovering: this._themeManager.getOptions(\"stickyHovering\")\r\n })\r\n },\r\n _resolveLabelOverlappingStack() {\r\n var isRotated = this._isRotated();\r\n var shiftDirection = isRotated ? (box, length) => ({\r\n x: box.x - length,\r\n y: box.y\r\n }) : (box, length) => ({\r\n x: box.x,\r\n y: box.y - length\r\n });\r\n var processor = (a, b) => {\r\n var coordPosition = isRotated ? 1 : 0;\r\n var figureCenter1 = a.labels[0].getFigureCenter()[coordPosition];\r\n var figureCenter12 = b.labels[0].getFigureCenter()[coordPosition];\r\n if (figureCenter1 - figureCenter12 === 0) {\r\n var translator = a.labels[0].getPoint().series.getValueAxis().getTranslator();\r\n var direction = translator.isInverted() ? -1 : 1;\r\n return (a.value() - b.value()) * direction\r\n }\r\n return 0\r\n };\r\n _each(this._getStackPoints(), (_, stacks) => {\r\n _each(stacks, (_, points) => {\r\n var isInverted = points[0].series.getValueAxis().getOptions().inverted;\r\n overlapping.resolveLabelOverlappingInOneDirection(points, this._getCommonCanvas(), isRotated, isInverted, shiftDirection, processor)\r\n })\r\n })\r\n },\r\n _getStackPoints() {\r\n var stackPoints = {};\r\n var visibleSeries = this._getVisibleSeries();\r\n _each(visibleSeries, (_, singleSeries) => {\r\n var points = singleSeries.getPoints();\r\n var stackName = singleSeries.getStackName() || null;\r\n _each(points, (_, point) => {\r\n var {\r\n argument: argument\r\n } = point;\r\n if (!stackPoints[argument]) {\r\n stackPoints[argument] = {}\r\n }\r\n if (!stackPoints[argument][stackName]) {\r\n stackPoints[argument][stackName] = []\r\n }\r\n stackPoints[argument][stackName].push(point)\r\n })\r\n });\r\n return stackPoints\r\n },\r\n _getCrosshairOptions() {\r\n return this._getOption(\"crosshair\")\r\n },\r\n zoomArgument(min, max) {\r\n if (!this._initialized || !_isDefined(min) && !_isDefined(max)) {\r\n return\r\n }\r\n this.getArgumentAxis().visualRange([min, max])\r\n },\r\n resetVisualRange() {\r\n var axes = this._argumentAxes;\r\n var nonVirtualArgumentAxis = this.getArgumentAxis();\r\n axes.forEach(axis => {\r\n axis.resetVisualRange(nonVirtualArgumentAxis !== axis);\r\n this._applyCustomVisualRangeOption(axis)\r\n });\r\n this.callBase()\r\n },\r\n getVisibleArgumentBounds() {\r\n var translator = this._argumentAxes[0].getTranslator();\r\n var range = translator.getBusinessRange();\r\n var isDiscrete = range.axisType === DISCRETE;\r\n var {\r\n categories: categories\r\n } = range;\r\n return {\r\n minVisible: isDiscrete ? range.minVisible || categories[0] : range.minVisible,\r\n maxVisible: isDiscrete ? range.maxVisible || categories[categories.length - 1] : range.maxVisible\r\n }\r\n },\r\n _change_FULL_RENDER() {\r\n this.callBase();\r\n if (this._changes.has(VISUAL_RANGE)) {\r\n this._raiseZoomEndHandlers()\r\n }\r\n },\r\n _getAxesForScaling() {\r\n return [this.getArgumentAxis()].concat(this._valueAxes)\r\n },\r\n _applyVisualRangeByVirtualAxes(axis, range) {\r\n if (axis.isArgumentAxis) {\r\n if (axis !== this.getArgumentAxis()) {\r\n return true\r\n }\r\n this._argumentAxes.filter(a => a !== axis).forEach(a => a.visualRange(range, {\r\n start: true,\r\n end: true\r\n }))\r\n }\r\n return false\r\n },\r\n _raiseZoomEndHandlers() {\r\n this._argumentAxes.forEach(axis => axis.handleZoomEnd());\r\n this.callBase()\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n _extend(this._optionsByReference, {\r\n \"argumentAxis.visualRange\": true\r\n })\r\n },\r\n option() {\r\n var option = this.callBase(...arguments);\r\n var valueAxis = this._options.silent(\"valueAxis\");\r\n if (\"array\" === type(valueAxis)) {\r\n for (var i = 0; i < valueAxis.length; i += 1) {\r\n var optionPath = \"valueAxis[\".concat(i, \"].visualRange\");\r\n this._optionsByReference[optionPath] = true\r\n }\r\n }\r\n return option\r\n },\r\n _notifyVisualRange() {\r\n var argAxis = this._argumentAxes[0];\r\n var argumentVisualRange = convertVisualRangeObject(argAxis.visualRange(), !isArray(this.option(\"argumentAxis.visualRange\")));\r\n if (!argAxis.skipEventRising || !rangesAreEqual(argumentVisualRange, this.option(\"argumentAxis.visualRange\"))) {\r\n this.option(\"argumentAxis.visualRange\", argumentVisualRange)\r\n } else {\r\n argAxis.skipEventRising = null\r\n }\r\n this.callBase()\r\n }\r\n});\r\ndxChart.addPlugin(shutterZoom);\r\ndxChart.addPlugin(zoomAndPan);\r\ndxChart.addPlugin(plugins.core);\r\ndxChart.addPlugin(plugins.chart);\r\nregisterComponent(\"dxChart\", dxChart);\r\nexport default dxChart;\r\n","/**\r\n * DevExtreme (esm/viz/chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Chart from \"../__internal/viz/m_chart\";\r\nexport default Chart;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxChart from 'devextreme/viz/chart';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiAnnotationComponent, DxiPaneComponent, DxiSeriesComponent, DxiValueAxisComponent, DxoAdaptiveLayoutModule, DxoAnimationModule, DxiAnnotationModule, DxoBorderModule, DxoFontModule, DxoImageModule, DxoShadowModule, DxoArgumentAxisModule, DxoAggregationIntervalModule, DxiBreakModule, DxoBreakStyleModule, DxiConstantLineModule, DxoLabelModule, DxoConstantLineStyleModule, DxoGridModule, DxoFormatModule, DxoMinorGridModule, DxoMinorTickModule, DxoMinorTickIntervalModule, DxoMinVisualRangeLengthModule, DxiStripModule, DxoStripStyleModule, DxoTickModule, DxoTickIntervalModule, DxoTitleModule, DxoCommonAnnotationSettingsModule, DxoCommonAxisSettingsModule, DxoCommonPaneSettingsModule, DxoBackgroundColorModule, DxoCommonSeriesSettingsModule, DxoAggregationModule, DxoAreaModule, DxoHoverStyleModule, DxoHatchingModule, DxoConnectorModule, DxoPointModule, DxoHeightModule, DxoUrlModule, DxoWidthModule, DxoSelectionStyleModule, DxoReductionModule, DxoValueErrorBarModule, DxoBarModule, DxoBubbleModule, DxoCandlestickModule, DxoColorModule, DxoFullstackedareaModule, DxoFullstackedbarModule, DxoFullstackedlineModule, DxoFullstackedsplineModule, DxoFullstackedsplineareaModule, DxoArgumentFormatModule, DxoLineModule, DxoRangeareaModule, DxoRangebarModule, DxoScatterModule, DxoSplineModule, DxoSplineareaModule, DxoStackedareaModule, DxoStackedbarModule, DxoStackedlineModule, DxoStackedsplineModule, DxoStackedsplineareaModule, DxoStepareaModule, DxoSteplineModule, DxoStockModule, DxoCrosshairModule, DxoHorizontalLineModule, DxoVerticalLineModule, DxoDataPrepareSettingsModule, DxoExportModule, DxoLegendModule, DxoMarginModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxiPaneModule, DxoScrollBarModule, DxiSeriesModule, DxoSeriesTemplateModule, DxoSizeModule, DxoTooltipModule, DxiValueAxisModule, DxoZoomAndPanModule, DxoDragBoxStyleModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxChart]\r\n\r\n */\r\nclass DxChartComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'argumentAxisClick', emit: 'onArgumentAxisClick' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'done', emit: 'onDone' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'legendClick', emit: 'onLegendClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pointClick', emit: 'onPointClick' },\r\n { subscribe: 'pointHoverChanged', emit: 'onPointHoverChanged' },\r\n { subscribe: 'pointSelectionChanged', emit: 'onPointSelectionChanged' },\r\n { subscribe: 'seriesClick', emit: 'onSeriesClick' },\r\n { subscribe: 'seriesHoverChanged', emit: 'onSeriesHoverChanged' },\r\n { subscribe: 'seriesSelectionChanged', emit: 'onSeriesSelectionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { subscribe: 'zoomEnd', emit: 'onZoomEnd' },\r\n { subscribe: 'zoomStart', emit: 'onZoomStart' },\r\n { emit: 'adaptiveLayoutChange' },\r\n { emit: 'adjustOnZoomChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'annotationsChange' },\r\n { emit: 'argumentAxisChange' },\r\n { emit: 'autoHidePointMarkersChange' },\r\n { emit: 'barGroupPaddingChange' },\r\n { emit: 'barGroupWidthChange' },\r\n { emit: 'commonAnnotationSettingsChange' },\r\n { emit: 'commonAxisSettingsChange' },\r\n { emit: 'commonPaneSettingsChange' },\r\n { emit: 'commonSeriesSettingsChange' },\r\n { emit: 'containerBackgroundColorChange' },\r\n { emit: 'crosshairChange' },\r\n { emit: 'customizeAnnotationChange' },\r\n { emit: 'customizeLabelChange' },\r\n { emit: 'customizePointChange' },\r\n { emit: 'dataPrepareSettingsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'defaultPaneChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'legendChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'maxBubbleSizeChange' },\r\n { emit: 'minBubbleSizeChange' },\r\n { emit: 'negativesAsZeroesChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'panesChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'pointSelectionModeChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'resizePanesOnZoomChange' },\r\n { emit: 'resolveLabelOverlappingChange' },\r\n { emit: 'rotatedChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollBarChange' },\r\n { emit: 'seriesChange' },\r\n { emit: 'seriesSelectionModeChange' },\r\n { emit: 'seriesTemplateChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'stickyHoveringChange' },\r\n { emit: 'synchronizeMultiAxesChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueAxisChange' },\r\n { emit: 'zoomAndPanChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.adaptiveLayout]\r\n \r\n */\r\n get adaptiveLayout() {\r\n return this._getOption('adaptiveLayout');\r\n }\r\n set adaptiveLayout(value) {\r\n this._setOption('adaptiveLayout', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.adjustOnZoom]\r\n \r\n */\r\n get adjustOnZoom() {\r\n return this._getOption('adjustOnZoom');\r\n }\r\n set adjustOnZoom(value) {\r\n this._setOption('adjustOnZoom', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.annotations]\r\n \r\n */\r\n get annotations() {\r\n return this._getOption('annotations');\r\n }\r\n set annotations(value) {\r\n this._setOption('annotations', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.argumentAxis]\r\n \r\n */\r\n get argumentAxis() {\r\n return this._getOption('argumentAxis');\r\n }\r\n set argumentAxis(value) {\r\n this._setOption('argumentAxis', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.autoHidePointMarkers]\r\n \r\n */\r\n get autoHidePointMarkers() {\r\n return this._getOption('autoHidePointMarkers');\r\n }\r\n set autoHidePointMarkers(value) {\r\n this._setOption('autoHidePointMarkers', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.barGroupPadding]\r\n \r\n */\r\n get barGroupPadding() {\r\n return this._getOption('barGroupPadding');\r\n }\r\n set barGroupPadding(value) {\r\n this._setOption('barGroupPadding', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.barGroupWidth]\r\n \r\n */\r\n get barGroupWidth() {\r\n return this._getOption('barGroupWidth');\r\n }\r\n set barGroupWidth(value) {\r\n this._setOption('barGroupWidth', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.commonAnnotationSettings]\r\n \r\n */\r\n get commonAnnotationSettings() {\r\n return this._getOption('commonAnnotationSettings');\r\n }\r\n set commonAnnotationSettings(value) {\r\n this._setOption('commonAnnotationSettings', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.commonAxisSettings]\r\n \r\n */\r\n get commonAxisSettings() {\r\n return this._getOption('commonAxisSettings');\r\n }\r\n set commonAxisSettings(value) {\r\n this._setOption('commonAxisSettings', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.commonPaneSettings]\r\n \r\n */\r\n get commonPaneSettings() {\r\n return this._getOption('commonPaneSettings');\r\n }\r\n set commonPaneSettings(value) {\r\n this._setOption('commonPaneSettings', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.commonSeriesSettings]\r\n \r\n */\r\n get commonSeriesSettings() {\r\n return this._getOption('commonSeriesSettings');\r\n }\r\n set commonSeriesSettings(value) {\r\n this._setOption('commonSeriesSettings', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.containerBackgroundColor]\r\n \r\n */\r\n get containerBackgroundColor() {\r\n return this._getOption('containerBackgroundColor');\r\n }\r\n set containerBackgroundColor(value) {\r\n this._setOption('containerBackgroundColor', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.crosshair]\r\n \r\n */\r\n get crosshair() {\r\n return this._getOption('crosshair');\r\n }\r\n set crosshair(value) {\r\n this._setOption('crosshair', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.customizeAnnotation]\r\n \r\n */\r\n get customizeAnnotation() {\r\n return this._getOption('customizeAnnotation');\r\n }\r\n set customizeAnnotation(value) {\r\n this._setOption('customizeAnnotation', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizeLabel]\r\n \r\n */\r\n get customizeLabel() {\r\n return this._getOption('customizeLabel');\r\n }\r\n set customizeLabel(value) {\r\n this._setOption('customizeLabel', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizePoint]\r\n \r\n */\r\n get customizePoint() {\r\n return this._getOption('customizePoint');\r\n }\r\n set customizePoint(value) {\r\n this._setOption('customizePoint', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.dataPrepareSettings]\r\n \r\n */\r\n get dataPrepareSettings() {\r\n return this._getOption('dataPrepareSettings');\r\n }\r\n set dataPrepareSettings(value) {\r\n this._setOption('dataPrepareSettings', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.defaultPane]\r\n \r\n */\r\n get defaultPane() {\r\n return this._getOption('defaultPane');\r\n }\r\n set defaultPane(value) {\r\n this._setOption('defaultPane', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.legend]\r\n \r\n */\r\n get legend() {\r\n return this._getOption('legend');\r\n }\r\n set legend(value) {\r\n this._setOption('legend', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.maxBubbleSize]\r\n \r\n */\r\n get maxBubbleSize() {\r\n return this._getOption('maxBubbleSize');\r\n }\r\n set maxBubbleSize(value) {\r\n this._setOption('maxBubbleSize', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.minBubbleSize]\r\n \r\n */\r\n get minBubbleSize() {\r\n return this._getOption('minBubbleSize');\r\n }\r\n set minBubbleSize(value) {\r\n this._setOption('minBubbleSize', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.negativesAsZeroes]\r\n \r\n */\r\n get negativesAsZeroes() {\r\n return this._getOption('negativesAsZeroes');\r\n }\r\n set negativesAsZeroes(value) {\r\n this._setOption('negativesAsZeroes', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.panes]\r\n \r\n */\r\n get panes() {\r\n return this._getOption('panes');\r\n }\r\n set panes(value) {\r\n this._setOption('panes', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.pointSelectionMode]\r\n \r\n */\r\n get pointSelectionMode() {\r\n return this._getOption('pointSelectionMode');\r\n }\r\n set pointSelectionMode(value) {\r\n this._setOption('pointSelectionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.resizePanesOnZoom]\r\n \r\n */\r\n get resizePanesOnZoom() {\r\n return this._getOption('resizePanesOnZoom');\r\n }\r\n set resizePanesOnZoom(value) {\r\n this._setOption('resizePanesOnZoom', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.resolveLabelOverlapping]\r\n \r\n */\r\n get resolveLabelOverlapping() {\r\n return this._getOption('resolveLabelOverlapping');\r\n }\r\n set resolveLabelOverlapping(value) {\r\n this._setOption('resolveLabelOverlapping', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.rotated]\r\n \r\n */\r\n get rotated() {\r\n return this._getOption('rotated');\r\n }\r\n set rotated(value) {\r\n this._setOption('rotated', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.scrollBar]\r\n \r\n */\r\n get scrollBar() {\r\n return this._getOption('scrollBar');\r\n }\r\n set scrollBar(value) {\r\n this._setOption('scrollBar', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.series]\r\n \r\n */\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.seriesSelectionMode]\r\n \r\n */\r\n get seriesSelectionMode() {\r\n return this._getOption('seriesSelectionMode');\r\n }\r\n set seriesSelectionMode(value) {\r\n this._setOption('seriesSelectionMode', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.seriesTemplate]\r\n \r\n */\r\n get seriesTemplate() {\r\n return this._getOption('seriesTemplate');\r\n }\r\n set seriesTemplate(value) {\r\n this._setOption('seriesTemplate', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.stickyHovering]\r\n \r\n */\r\n get stickyHovering() {\r\n return this._getOption('stickyHovering');\r\n }\r\n set stickyHovering(value) {\r\n this._setOption('stickyHovering', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.synchronizeMultiAxes]\r\n \r\n */\r\n get synchronizeMultiAxes() {\r\n return this._getOption('synchronizeMultiAxes');\r\n }\r\n set synchronizeMultiAxes(value) {\r\n this._setOption('synchronizeMultiAxes', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.valueAxis]\r\n \r\n */\r\n get valueAxis() {\r\n return this._getOption('valueAxis');\r\n }\r\n set valueAxis(value) {\r\n this._setOption('valueAxis', value);\r\n }\r\n /**\r\n * [descr:dxChartOptions.zoomAndPan]\r\n \r\n */\r\n get zoomAndPan() {\r\n return this._getOption('zoomAndPan');\r\n }\r\n set zoomAndPan(value) {\r\n this._setOption('zoomAndPan', value);\r\n }\r\n get annotationsChildren() {\r\n return this._getOption('annotations');\r\n }\r\n set annotationsChildren(value) {\r\n this.setChildren('annotations', value);\r\n }\r\n get panesChildren() {\r\n return this._getOption('panes');\r\n }\r\n set panesChildren(value) {\r\n this.setChildren('panes', value);\r\n }\r\n get seriesChildren() {\r\n return this._getOption('series');\r\n }\r\n set seriesChildren(value) {\r\n this.setChildren('series', value);\r\n }\r\n get valueAxisChildren() {\r\n return this._getOption('valueAxis');\r\n }\r\n set valueAxisChildren(value) {\r\n this.setChildren('valueAxis', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxChart(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('annotations', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('palette', changes);\r\n this.setupChanges('panes', changes);\r\n this.setupChanges('series', changes);\r\n this.setupChanges('valueAxis', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('annotations');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('palette');\r\n this._idh.doCheck('panes');\r\n this._idh.doCheck('series');\r\n this._idh.doCheck('valueAxis');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxChartComponent.ɵfac = function DxChartComponent_Factory(t) { return new (t || DxChartComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxChartComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxChartComponent, selectors: [[\"dx-chart\"]], contentQueries: function DxChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiAnnotationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiPaneComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiSeriesComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiValueAxisComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.annotationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.valueAxisChildren = _t);\r\n } }, inputs: { adaptiveLayout: \"adaptiveLayout\", adjustOnZoom: \"adjustOnZoom\", animation: \"animation\", annotations: \"annotations\", argumentAxis: \"argumentAxis\", autoHidePointMarkers: \"autoHidePointMarkers\", barGroupPadding: \"barGroupPadding\", barGroupWidth: \"barGroupWidth\", commonAnnotationSettings: \"commonAnnotationSettings\", commonAxisSettings: \"commonAxisSettings\", commonPaneSettings: \"commonPaneSettings\", commonSeriesSettings: \"commonSeriesSettings\", containerBackgroundColor: \"containerBackgroundColor\", crosshair: \"crosshair\", customizeAnnotation: \"customizeAnnotation\", customizeLabel: \"customizeLabel\", customizePoint: \"customizePoint\", dataPrepareSettings: \"dataPrepareSettings\", dataSource: \"dataSource\", defaultPane: \"defaultPane\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", legend: \"legend\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", maxBubbleSize: \"maxBubbleSize\", minBubbleSize: \"minBubbleSize\", negativesAsZeroes: \"negativesAsZeroes\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", panes: \"panes\", pathModified: \"pathModified\", pointSelectionMode: \"pointSelectionMode\", redrawOnResize: \"redrawOnResize\", resizePanesOnZoom: \"resizePanesOnZoom\", resolveLabelOverlapping: \"resolveLabelOverlapping\", rotated: \"rotated\", rtlEnabled: \"rtlEnabled\", scrollBar: \"scrollBar\", series: \"series\", seriesSelectionMode: \"seriesSelectionMode\", seriesTemplate: \"seriesTemplate\", size: \"size\", stickyHovering: \"stickyHovering\", synchronizeMultiAxes: \"synchronizeMultiAxes\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", valueAxis: \"valueAxis\", zoomAndPan: \"zoomAndPan\" }, outputs: { onArgumentAxisClick: \"onArgumentAxisClick\", onDisposing: \"onDisposing\", onDone: \"onDone\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onLegendClick: \"onLegendClick\", onOptionChanged: \"onOptionChanged\", onPointClick: \"onPointClick\", onPointHoverChanged: \"onPointHoverChanged\", onPointSelectionChanged: \"onPointSelectionChanged\", onSeriesClick: \"onSeriesClick\", onSeriesHoverChanged: \"onSeriesHoverChanged\", onSeriesSelectionChanged: \"onSeriesSelectionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", onZoomEnd: \"onZoomEnd\", onZoomStart: \"onZoomStart\", adaptiveLayoutChange: \"adaptiveLayoutChange\", adjustOnZoomChange: \"adjustOnZoomChange\", animationChange: \"animationChange\", annotationsChange: \"annotationsChange\", argumentAxisChange: \"argumentAxisChange\", autoHidePointMarkersChange: \"autoHidePointMarkersChange\", barGroupPaddingChange: \"barGroupPaddingChange\", barGroupWidthChange: \"barGroupWidthChange\", commonAnnotationSettingsChange: \"commonAnnotationSettingsChange\", commonAxisSettingsChange: \"commonAxisSettingsChange\", commonPaneSettingsChange: \"commonPaneSettingsChange\", commonSeriesSettingsChange: \"commonSeriesSettingsChange\", containerBackgroundColorChange: \"containerBackgroundColorChange\", crosshairChange: \"crosshairChange\", customizeAnnotationChange: \"customizeAnnotationChange\", customizeLabelChange: \"customizeLabelChange\", customizePointChange: \"customizePointChange\", dataPrepareSettingsChange: \"dataPrepareSettingsChange\", dataSourceChange: \"dataSourceChange\", defaultPaneChange: \"defaultPaneChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", legendChange: \"legendChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", maxBubbleSizeChange: \"maxBubbleSizeChange\", minBubbleSizeChange: \"minBubbleSizeChange\", negativesAsZeroesChange: \"negativesAsZeroesChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", panesChange: \"panesChange\", pathModifiedChange: \"pathModifiedChange\", pointSelectionModeChange: \"pointSelectionModeChange\", redrawOnResizeChange: \"redrawOnResizeChange\", resizePanesOnZoomChange: \"resizePanesOnZoomChange\", resolveLabelOverlappingChange: \"resolveLabelOverlappingChange\", rotatedChange: \"rotatedChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollBarChange: \"scrollBarChange\", seriesChange: \"seriesChange\", seriesSelectionModeChange: \"seriesSelectionModeChange\", seriesTemplateChange: \"seriesTemplateChange\", sizeChange: \"sizeChange\", stickyHoveringChange: \"stickyHoveringChange\", synchronizeMultiAxesChange: \"synchronizeMultiAxesChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valueAxisChange: \"valueAxisChange\", zoomAndPanChange: \"zoomAndPanChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxChartComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxChartComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-chart',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adaptiveLayout: [{\r\n type: Input\r\n }], adjustOnZoom: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], annotations: [{\r\n type: Input\r\n }], argumentAxis: [{\r\n type: Input\r\n }], autoHidePointMarkers: [{\r\n type: Input\r\n }], barGroupPadding: [{\r\n type: Input\r\n }], barGroupWidth: [{\r\n type: Input\r\n }], commonAnnotationSettings: [{\r\n type: Input\r\n }], commonAxisSettings: [{\r\n type: Input\r\n }], commonPaneSettings: [{\r\n type: Input\r\n }], commonSeriesSettings: [{\r\n type: Input\r\n }], containerBackgroundColor: [{\r\n type: Input\r\n }], crosshair: [{\r\n type: Input\r\n }], customizeAnnotation: [{\r\n type: Input\r\n }], customizeLabel: [{\r\n type: Input\r\n }], customizePoint: [{\r\n type: Input\r\n }], dataPrepareSettings: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], defaultPane: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], legend: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], maxBubbleSize: [{\r\n type: Input\r\n }], minBubbleSize: [{\r\n type: Input\r\n }], negativesAsZeroes: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], panes: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], pointSelectionMode: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], resizePanesOnZoom: [{\r\n type: Input\r\n }], resolveLabelOverlapping: [{\r\n type: Input\r\n }], rotated: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollBar: [{\r\n type: Input\r\n }], series: [{\r\n type: Input\r\n }], seriesSelectionMode: [{\r\n type: Input\r\n }], seriesTemplate: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], stickyHovering: [{\r\n type: Input\r\n }], synchronizeMultiAxes: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], valueAxis: [{\r\n type: Input\r\n }], zoomAndPan: [{\r\n type: Input\r\n }], onArgumentAxisClick: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDone: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onLegendClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPointClick: [{\r\n type: Output\r\n }], onPointHoverChanged: [{\r\n type: Output\r\n }], onPointSelectionChanged: [{\r\n type: Output\r\n }], onSeriesClick: [{\r\n type: Output\r\n }], onSeriesHoverChanged: [{\r\n type: Output\r\n }], onSeriesSelectionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], onZoomEnd: [{\r\n type: Output\r\n }], onZoomStart: [{\r\n type: Output\r\n }], adaptiveLayoutChange: [{\r\n type: Output\r\n }], adjustOnZoomChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], annotationsChange: [{\r\n type: Output\r\n }], argumentAxisChange: [{\r\n type: Output\r\n }], autoHidePointMarkersChange: [{\r\n type: Output\r\n }], barGroupPaddingChange: [{\r\n type: Output\r\n }], barGroupWidthChange: [{\r\n type: Output\r\n }], commonAnnotationSettingsChange: [{\r\n type: Output\r\n }], commonAxisSettingsChange: [{\r\n type: Output\r\n }], commonPaneSettingsChange: [{\r\n type: Output\r\n }], commonSeriesSettingsChange: [{\r\n type: Output\r\n }], containerBackgroundColorChange: [{\r\n type: Output\r\n }], crosshairChange: [{\r\n type: Output\r\n }], customizeAnnotationChange: [{\r\n type: Output\r\n }], customizeLabelChange: [{\r\n type: Output\r\n }], customizePointChange: [{\r\n type: Output\r\n }], dataPrepareSettingsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], defaultPaneChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], legendChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], maxBubbleSizeChange: [{\r\n type: Output\r\n }], minBubbleSizeChange: [{\r\n type: Output\r\n }], negativesAsZeroesChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], panesChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], pointSelectionModeChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], resizePanesOnZoomChange: [{\r\n type: Output\r\n }], resolveLabelOverlappingChange: [{\r\n type: Output\r\n }], rotatedChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollBarChange: [{\r\n type: Output\r\n }], seriesChange: [{\r\n type: Output\r\n }], seriesSelectionModeChange: [{\r\n type: Output\r\n }], seriesTemplateChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], stickyHoveringChange: [{\r\n type: Output\r\n }], synchronizeMultiAxesChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueAxisChange: [{\r\n type: Output\r\n }], zoomAndPanChange: [{\r\n type: Output\r\n }], annotationsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiAnnotationComponent]\r\n }], panesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiPaneComponent]\r\n }], seriesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiSeriesComponent]\r\n }], valueAxisChildren: [{\r\n type: ContentChildren,\r\n args: [DxiValueAxisComponent]\r\n }] }); })();\r\nclass DxChartModule {\r\n}\r\n/** @nocollapse */ DxChartModule.ɵfac = function DxChartModule_Factory(t) { return new (t || DxChartModule)(); };\r\n/** @nocollapse */ DxChartModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxChartModule });\r\n/** @nocollapse */ DxChartModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxChartModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxChartComponent\r\n ],\r\n exports: [\r\n DxChartComponent,\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxChartModule, { declarations: [DxChartComponent], imports: [DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxChartComponent, DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoTitleModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonPaneSettingsModule,\r\n DxoBackgroundColorModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoCrosshairModule,\r\n DxoHorizontalLineModule,\r\n DxoVerticalLineModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiPaneModule,\r\n DxoScrollBarModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxiValueAxisModule,\r\n DxoZoomAndPanModule,\r\n DxoDragBoxStyleModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxChartComponent, DxChartModule };\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport Component from \"../common/component\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport OldEditor from \"../../../ui/editor/editor\";\r\nimport {\r\n querySelectorInSameDocument\r\n} from \"../../utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nexport default class Editor extends Component {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onFocusIn = () => {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = $(querySelectorInSameDocument(this.element(), \".dx-invalid-message.dx-overlay-wrapper\"));\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _init() {\r\n super._init();\r\n this._initialValue = this.option(\"value\")\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this.option(\"isDirty\", this._initialValue !== value);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n clear() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this.option(\"value\", this._initialValue);\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function querySelectorInSameDocument(el, selector) {\r\n var _el$getRootNode, _el$getRootNode2;\r\n var root = null !== (_el$getRootNode = null === (_el$getRootNode2 = el.getRootNode) || void 0 === _el$getRootNode2 ? void 0 : _el$getRootNode2.call(el)) && void 0 !== _el$getRootNode ? _el$getRootNode : document;\r\n return root.querySelector(selector)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"./editor\";\r\nexport default class CheckBox extends Editor {\r\n _useTemplates() {\r\n return false\r\n }\r\n _isFocused() {\r\n var focusTarget = this.$element()[0];\r\n return focusTarget.classList.contains(\"dx-state-focused\")\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n if (null !== props.value) {\r\n props.value = Boolean(props.value)\r\n }\r\n return props\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nvar defaultNotDeepCopyArrays = [\"dataSource\", \"selectedRowKeys\"];\r\nvar propsToIgnore = {\r\n integrationOptions: true\r\n};\r\n\r\nfunction getDiffItem(key, value, previousValue) {\r\n return {\r\n path: key,\r\n value: value,\r\n previousValue: previousValue\r\n }\r\n}\r\n\r\nfunction compare(resultPaths, item1, item2, key, fullPropName, notDeepCopyArrays) {\r\n if (propsToIgnore[key]) {\r\n return\r\n }\r\n var type1 = type(item1);\r\n var type2 = type(item2);\r\n if (item1 === item2) {\r\n return\r\n }\r\n if (type1 !== type2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (\"object\" === type1) {\r\n if (!isPlainObject(item2)) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n resultPaths.push(...diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key, \".\").concat(item.path)\r\n })))\r\n }\r\n } else if (\"array\" === type1) {\r\n var notDeepCopy = notDeepCopyArrays.some(prop => fullPropName.includes(prop));\r\n if (notDeepCopy && item1 !== item2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (item1.length !== item2.length) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var _diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n [].push.apply(resultPaths, _diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key).concat(item.path)\r\n })))\r\n }\r\n } else {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n }\r\n}\r\nvar objectDiffsFiltered = propsEnumerator => (oldProps, props, fullPropName, notDeepCopyArrays) => {\r\n var resultPaths = [];\r\n var processItem = !Array.isArray(oldProps) ? propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], propName, \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n } : propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], \"[\".concat(propName, \"]\"), \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n };\r\n propsEnumerator(oldProps).forEach(processItem);\r\n Object.keys(props).filter(propName => !Object.prototype.hasOwnProperty.call(oldProps, propName) && oldProps[propName] !== props[propName]).forEach(propName => {\r\n resultPaths.push({\r\n path: propName,\r\n value: props[propName],\r\n previousValue: oldProps[propName]\r\n })\r\n });\r\n return resultPaths\r\n};\r\nvar objectDiffs = objectDiffsFiltered(oldProps => Object.keys(oldProps));\r\nvar reactProps = {\r\n key: true,\r\n ref: true,\r\n children: true,\r\n style: true\r\n};\r\nvar objectDiffsWithoutReactProps = objectDiffsFiltered(prop => Object.keys(prop).filter(p => !reactProps[p]));\r\nexport function getUpdatedOptions(oldProps, props) {\r\n var notDeepCopyArrays = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : defaultNotDeepCopyArrays;\r\n return objectDiffsWithoutReactProps(oldProps, props, \"\", notDeepCopyArrays)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"templateNames\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderTemplate,\r\n hasTemplate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n getUpdatedOptions\r\n} from \"./utils/get_updated_options\";\r\nvar normalizeProps = props => Object.keys(props).reduce((accumulator, key) => {\r\n if (void 0 !== props[key]) {\r\n accumulator[key] = props[key]\r\n }\r\n return accumulator\r\n}, {});\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config, this.props.templateNames])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config, this.props.templateNames])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n updateWidget() {\r\n var instance = this.getInstance();\r\n if (!instance) {\r\n return\r\n }\r\n var updatedOptions = getUpdatedOptions(this.prevProps || {}, this.properties);\r\n if (updatedOptions.length) {\r\n instance.beginUpdate();\r\n updatedOptions.forEach(_ref2 => {\r\n var {\r\n path: path,\r\n value: value\r\n } = _ref2;\r\n instance.option(path, value)\r\n });\r\n instance.endUpdate()\r\n }\r\n this.prevProps = this.properties\r\n }\r\n get properties() {\r\n var _this$config;\r\n var normalizedProps = normalizeProps(this.props.componentProps);\r\n var {\r\n valueChange: valueChange\r\n } = normalizedProps, restProps = _objectWithoutPropertiesLoose(normalizedProps, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: !!(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled),\r\n isRenovated: true\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n return valueChange(value)\r\n }\r\n }\r\n var templates = this.props.templateNames;\r\n templates.forEach(name => {\r\n if (hasTemplate(name, properties, this)) {\r\n properties[name] = (item, index, container) => {\r\n renderTemplate(this.props.componentProps[name], {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, this)\r\n }\r\n }\r\n });\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = DomComponentWrapperProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"boundary\", \"className\", \"contentId\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"mode\", \"offset\", \"onClick\", \"onKeyDown\", \"positionSide\", \"rtlEnabled\", \"tabIndex\", \"target\", \"validationErrors\", \"visible\", \"visualContainer\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyValidationMessage from \"../../../ui/validation_message\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../common/base_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyValidationMessage,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var ValidationMessageProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n mode: \"auto\",\r\n positionSide: \"top\",\r\n offset: Object.freeze({\r\n h: 0,\r\n v: 0\r\n }),\r\n isReactComponentWrapper: true\r\n})));\r\nexport class ValidationMessage extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get componentProps() {\r\n return this.props\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nValidationMessage.defaultProps = ValidationMessageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isDirty\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n Widget,\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../../common/base_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n ValidationMessage\r\n} from \"../../overlays/validation_message\";\r\nvar getCssClasses = model => {\r\n var {\r\n classes: classes,\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = model;\r\n var classesMap = {\r\n \"dx-state-readonly\": !!readOnly,\r\n \"dx-invalid\": !isValid,\r\n [\"\".concat(classes)]: !!classes\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n isValidationMessageVisible: isValidationMessageVisible,\r\n onFocusIn: onFocusIn,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n children: children,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rootElementRef: rootElementRef,\r\n validationErrors: validationErrors,\r\n validationMessageGuid: validationMessageGuid,\r\n validationMessageTarget: validationMessageTarget,\r\n widgetRef: widgetRef\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: rootElementRef,\r\n aria: aria,\r\n classes: classes,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n accessKey: accessKey,\r\n className: className,\r\n rtlEnabled: rtlEnabled,\r\n hint: hint,\r\n disabled: disabled,\r\n height: height,\r\n width: width,\r\n onFocusIn: onFocusIn,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n tabIndex: tabIndex,\r\n visible: visible\r\n }, restAttributes, {\r\n children: createFragment([children, isValidationMessageVisible && createComponentVNode(2, ValidationMessage, {\r\n validationErrors: validationErrors,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n rtlEnabled: rtlEnabled,\r\n target: validationMessageTarget,\r\n boundary: validationMessageTarget,\r\n visualContainer: validationMessageTarget,\r\n contentId: validationMessageGuid\r\n })], 0)\r\n }), null, widgetRef))\r\n};\r\nexport var EditorProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n readOnly: false,\r\n name: \"\",\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationStatus: \"valid\",\r\n isValid: true,\r\n isDirty: false,\r\n inputAttr: Object.freeze({}),\r\n defaultValue: null,\r\n valueChange: () => {}\r\n})));\r\nexport var EditorPropsType = {\r\n get readOnly() {\r\n return EditorProps.readOnly\r\n },\r\n get name() {\r\n return EditorProps.name\r\n },\r\n get validationError() {\r\n return EditorProps.validationError\r\n },\r\n get validationErrors() {\r\n return EditorProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return EditorProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return EditorProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\r\n },\r\n get isDirty() {\r\n return EditorProps.isDirty\r\n },\r\n get inputAttr() {\r\n return EditorProps.inputAttr\r\n },\r\n get defaultValue() {\r\n return EditorProps.defaultValue\r\n },\r\n get valueChange() {\r\n return EditorProps.valueChange\r\n },\r\n get className() {\r\n return EditorProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return EditorProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return EditorProps.tabIndex\r\n },\r\n get visible() {\r\n return EditorProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n },\r\n get classes() {\r\n return WidgetProps.classes\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Editor extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetRef = infernoCreateRef();\r\n this.rootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.state = {\r\n validationMessageGuid: \"dx-\".concat(new Guid),\r\n isValidationMessageVisible: false,\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.updateValidationMessageVisibility = this.updateValidationMessageVisibility.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onFocusIn = this.onFocusIn.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateValidationMessageVisibility, [this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors])\r\n }\r\n updateValidationMessageVisibility() {\r\n this.setState(__state_argument => ({\r\n isValidationMessageVisible: this.shouldShowValidationMessage\r\n }))\r\n }\r\n onFocusIn(event) {\r\n var {\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n get cssClasses() {\r\n return \"\".concat(getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })))\r\n }\r\n get shouldShowValidationMessage() {\r\n var _this$validationError;\r\n var {\r\n isValid: isValid,\r\n validationStatus: validationStatus\r\n } = this.props;\r\n var validationErrors = null !== (_this$validationError = this.validationErrors) && void 0 !== _this$validationError ? _this$validationError : [];\r\n var isEditorValid = isValid && \"invalid\" !== validationStatus;\r\n return !isEditorValid && validationErrors.length > 0\r\n }\r\n get aria() {\r\n var {\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = this.props;\r\n var result = {\r\n readonly: readOnly ? \"true\" : \"false\",\r\n invalid: !isValid ? \"true\" : \"false\"\r\n };\r\n if (this.shouldShowValidationMessage) {\r\n result.describedBy = this.state.validationMessageGuid\r\n }\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get validationErrors() {\r\n if (void 0 !== this.__getterCache.validationErrors) {\r\n return this.__getterCache.validationErrors\r\n }\r\n return this.__getterCache.validationErrors = (() => {\r\n var {\r\n validationError: validationError,\r\n validationErrors: validationErrors\r\n } = this.props;\r\n var allValidationErrors = validationErrors && [...validationErrors];\r\n if (!allValidationErrors && validationError) {\r\n allValidationErrors = [_extends({}, validationError)]\r\n }\r\n return allValidationErrors\r\n })()\r\n }\r\n get validationMessageTarget() {\r\n var _this$rootElementRef;\r\n return null === (_this$rootElementRef = this.rootElementRef) || void 0 === _this$rootElementRef ? void 0 : _this$rootElementRef.current\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n blur() {\r\n this.widgetRef.current.blur()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.validationError !== nextProps.validationError || this.props.validationErrors !== nextProps.validationErrors) {\r\n this.__getterCache.validationErrors = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n validationMessageGuid: this.state.validationMessageGuid,\r\n isValidationMessageVisible: this.state.isValidationMessageVisible,\r\n rootElementRef: this.rootElementRef,\r\n widgetRef: this.widgetRef,\r\n onFocusIn: this.onFocusIn,\r\n cssClasses: this.cssClasses,\r\n shouldShowValidationMessage: this.shouldShowValidationMessage,\r\n aria: this.aria,\r\n validationErrors: this.validationErrors,\r\n validationMessageTarget: this.validationMessageTarget,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nEditor.defaultProps = EditorPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Editor.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Editor.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nexport default function getElementComputedStyle(el) {\r\n var _window$getComputedSt;\r\n var window = getWindow();\r\n return el ? null === (_window$getComputedSt = window.getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../../../ui/themes\";\r\nvar defaultIconSizes = [\r\n [22, 16],\r\n [18, 16]\r\n];\r\nvar defaultFontSizes = [\r\n [\r\n [12, 8],\r\n [20, 18]\r\n ],\r\n [\r\n [16, 10],\r\n [16, 14]\r\n ]\r\n];\r\n\r\nfunction getThemeType() {\r\n var theme = current();\r\n return {\r\n isMaterialTheme: isMaterial(theme),\r\n isCompactTheme: isCompact(theme)\r\n }\r\n}\r\n\r\nfunction getDefaultIconSize() {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultIconSizes[+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getDefaultFontSize(isChecked) {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultFontSizes[+isChecked][+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getFontSizeByIconSize(iconSize, isChecked) {\r\n var defaultFontSize = getDefaultFontSize(isChecked);\r\n var defaultIconSize = getDefaultIconSize();\r\n var fontToIconSizeRatio = defaultFontSize / defaultIconSize;\r\n return Math.ceil(fontToIconSizeRatio * iconSize)\r\n}\r\nexport {\r\n getDefaultFontSize,\r\n getDefaultIconSize,\r\n getFontSizeByIconSize\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box_icon.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"className\", \"defaultValue\", \"disabled\", \"enableThreeStateBehavior\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"inputAttr\", \"isDirty\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n Editor,\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n CheckBoxIcon\r\n} from \"./check_box_icon\";\r\nimport {\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nvar getCssClasses = model => {\r\n var {\r\n text: text,\r\n value: value\r\n } = model;\r\n var checked = value;\r\n var indeterminate = null === checked;\r\n var classesMap = {\r\n \"dx-checkbox\": true,\r\n \"dx-checkbox-checked\": true === checked,\r\n \"dx-checkbox-has-text\": !!text,\r\n \"dx-checkbox-indeterminate\": indeterminate\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n editorRef: editorRef,\r\n keyDown: onKeyDown,\r\n onWidgetClick: onClick,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n iconSize: iconSize,\r\n isValid: isValid,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n readOnly: readOnly,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n text: text,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n value: value,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Editor, _extends({\r\n aria: aria,\r\n classes: classes,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n readOnly: readOnly,\r\n hint: hint,\r\n height: height,\r\n width: width,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n visible: visible,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n isValid: isValid,\r\n onFocusIn: onFocusIn\r\n }, restAttributes, {\r\n children: createFragment([normalizeProps(createVNode(64, \"input\", null, null, 1, _extends({\r\n type: \"hidden\",\r\n value: \"\".concat(value)\r\n }, name && {\r\n name: name\r\n }))), createVNode(1, \"div\", \"dx-checkbox-container\", [createComponentVNode(2, CheckBoxIcon, {\r\n size: iconSize,\r\n isChecked: true === value\r\n }), text && createVNode(1, \"span\", \"dx-checkbox-text\", text, 0)], 0)], 4)\r\n }), null, editorRef))\r\n};\r\nexport var CheckBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n text: \"\",\r\n enableThreeStateBehavior: false,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n defaultValue: false,\r\n valueChange: () => {}\r\n})));\r\nexport var CheckBoxPropsType = {\r\n get text() {\r\n return CheckBoxProps.text\r\n },\r\n get enableThreeStateBehavior() {\r\n return CheckBoxProps.enableThreeStateBehavior\r\n },\r\n get activeStateEnabled() {\r\n return CheckBoxProps.activeStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return CheckBoxProps.hoverStateEnabled\r\n },\r\n get focusStateEnabled() {\r\n return CheckBoxProps.focusStateEnabled\r\n },\r\n get defaultValue() {\r\n return CheckBoxProps.defaultValue\r\n },\r\n get valueChange() {\r\n return CheckBoxProps.valueChange\r\n },\r\n get readOnly() {\r\n return CheckBoxProps.readOnly\r\n },\r\n get name() {\r\n return CheckBoxProps.name\r\n },\r\n get validationError() {\r\n return CheckBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return CheckBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return CheckBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return CheckBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return CheckBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return CheckBoxProps.inputAttr\r\n },\r\n get className() {\r\n return CheckBoxProps.className\r\n },\r\n get disabled() {\r\n return CheckBoxProps.disabled\r\n },\r\n get tabIndex() {\r\n return CheckBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return CheckBoxProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBox extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.editorRef = infernoCreateRef();\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n enableThreeStateBehavior: enableThreeStateBehavior,\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n if (enableThreeStateBehavior) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = null === (void 0 !== this.props.value ? this.props.value : __state_argument.value) || (!(void 0 !== this.props.value ? this.props.value : __state_argument.value) ? null : false);\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n var _ref;\r\n _newValue = !(null !== (_ref = void 0 !== this.props.value ? this.props.value : __state_argument.value) && void 0 !== _ref ? _ref : false);\r\n return {\r\n value: _newValue\r\n }\r\n });\r\n this.props.valueChange(_newValue)\r\n }\r\n }\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get cssClasses() {\r\n return getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }))\r\n }\r\n get aria() {\r\n var checked = true === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var indeterminate = null === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var result = {\r\n role: \"checkbox\",\r\n checked: indeterminate ? \"mixed\" : \"\".concat(checked)\r\n };\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.editorRef.current.focus()\r\n }\r\n blur() {\r\n this.editorRef.current.blur()\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n editorRef: this.editorRef,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n cssClasses: this.cssClasses,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nCheckBox.defaultProps = CheckBoxPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n CheckBox.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CheckBox.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/editors/check_box\";\r\nimport {\r\n CheckBox as CheckBoxComponent,\r\n defaultOptions\r\n} from \"./check_box\";\r\nexport default class CheckBox extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n blur() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.blur(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onFocusIn: {},\r\n onClick: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"value\", \"defaultValue\", \"valueChange\"]\r\n ],\r\n allowNull: [\"defaultValue\", \"validationError\", \"validationErrors\", \"value\"],\r\n elements: [],\r\n templates: [],\r\n props: [\"text\", \"iconSize\", \"enableThreeStateBehavior\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"isValid\", \"isDirty\", \"inputAttr\", \"onFocusIn\", \"className\", \"accessKey\", \"disabled\", \"height\", \"hint\", \"onClick\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\", \"aria\", \"value\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return CheckBoxComponent\r\n }\r\n}\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nCheckBox.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/check_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/editors/check_box/check_box.j\";\r\nexport default Widget;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxCheckBox from 'devextreme/ui/check_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxCheckBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxCheckBox]\r\n\r\n */\r\nclass DxCheckBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'enableThreeStateBehaviorChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconSizeChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.enableThreeStateBehavior]\r\n \r\n */\r\n get enableThreeStateBehavior() {\r\n return this._getOption('enableThreeStateBehavior');\r\n }\r\n set enableThreeStateBehavior(value) {\r\n this._setOption('enableThreeStateBehavior', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.iconSize]\r\n \r\n */\r\n get iconSize() {\r\n return this._getOption('iconSize');\r\n }\r\n set iconSize(value) {\r\n this._setOption('iconSize', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxCheckBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxCheckBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxCheckBoxComponent.ɵfac = function DxCheckBoxComponent_Factory(t) { return new (t || DxCheckBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxCheckBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxCheckBoxComponent, selectors: [[\"dx-check-box\"]], hostBindings: function DxCheckBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxCheckBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxCheckBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", enableThreeStateBehavior: \"enableThreeStateBehavior\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", iconSize: \"iconSize\", isDirty: \"isDirty\", isValid: \"isValid\", name: \"name\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", text: \"text\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", enableThreeStateBehaviorChange: \"enableThreeStateBehaviorChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconSizeChange: \"iconSizeChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", nameChange: \"nameChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxCheckBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCheckBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-check-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], enableThreeStateBehavior: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], iconSize: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], enableThreeStateBehaviorChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconSizeChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxCheckBoxModule {\r\n}\r\n/** @nocollapse */ DxCheckBoxModule.ɵfac = function DxCheckBoxModule_Factory(t) { return new (t || DxCheckBoxModule)(); };\r\n/** @nocollapse */ DxCheckBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxCheckBoxModule });\r\n/** @nocollapse */ DxCheckBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCheckBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxCheckBoxComponent\r\n ],\r\n exports: [\r\n DxCheckBoxComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxCheckBoxModule, { declarations: [DxCheckBoxComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxCheckBoxComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxCheckBoxComponent, DxCheckBoxModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxCircularGauge from 'devextreme/viz/circular_gauge';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoExportModule, DxoGeometryModule, DxoLoadingIndicatorModule, DxoFontModule, DxoMarginModule, DxoRangeContainerModule, DxoBackgroundColorModule, DxiRangeModule, DxoColorModule, DxoScaleModule, DxoLabelModule, DxoFormatModule, DxoMinorTickModule, DxoTickModule, DxoSizeModule, DxoSubvalueIndicatorModule, DxoTextModule, DxoTitleModule, DxoSubtitleModule, DxoTooltipModule, DxoBorderModule, DxoShadowModule, DxoValueIndicatorModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxCircularGauge]\r\n\r\n */\r\nclass DxCircularGaugeComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'animationChange' },\r\n { emit: 'centerTemplateChange' },\r\n { emit: 'containerBackgroundColorChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'geometryChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'rangeContainerChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scaleChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'subvalueIndicatorChange' },\r\n { emit: 'subvaluesChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueIndicatorChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.centerTemplate]\r\n \r\n */\r\n get centerTemplate() {\r\n return this._getOption('centerTemplate');\r\n }\r\n set centerTemplate(value) {\r\n this._setOption('centerTemplate', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.containerBackgroundColor]\r\n \r\n */\r\n get containerBackgroundColor() {\r\n return this._getOption('containerBackgroundColor');\r\n }\r\n set containerBackgroundColor(value) {\r\n this._setOption('containerBackgroundColor', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.geometry]\r\n \r\n */\r\n get geometry() {\r\n return this._getOption('geometry');\r\n }\r\n set geometry(value) {\r\n this._setOption('geometry', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.rangeContainer]\r\n \r\n */\r\n get rangeContainer() {\r\n return this._getOption('rangeContainer');\r\n }\r\n set rangeContainer(value) {\r\n this._setOption('rangeContainer', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.scale]\r\n \r\n */\r\n get scale() {\r\n return this._getOption('scale');\r\n }\r\n set scale(value) {\r\n this._setOption('scale', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.subvalueIndicator]\r\n \r\n */\r\n get subvalueIndicator() {\r\n return this._getOption('subvalueIndicator');\r\n }\r\n set subvalueIndicator(value) {\r\n this._setOption('subvalueIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.subvalues]\r\n \r\n */\r\n get subvalues() {\r\n return this._getOption('subvalues');\r\n }\r\n set subvalues(value) {\r\n this._setOption('subvalues', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxCircularGaugeOptions.valueIndicator]\r\n \r\n */\r\n get valueIndicator() {\r\n return this._getOption('valueIndicator');\r\n }\r\n set valueIndicator(value) {\r\n this._setOption('valueIndicator', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxCircularGauge(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('subvalues', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('subvalues');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxCircularGaugeComponent.ɵfac = function DxCircularGaugeComponent_Factory(t) { return new (t || DxCircularGaugeComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxCircularGaugeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxCircularGaugeComponent, selectors: [[\"dx-circular-gauge\"]], inputs: { animation: \"animation\", centerTemplate: \"centerTemplate\", containerBackgroundColor: \"containerBackgroundColor\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", geometry: \"geometry\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", pathModified: \"pathModified\", rangeContainer: \"rangeContainer\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", scale: \"scale\", size: \"size\", subvalueIndicator: \"subvalueIndicator\", subvalues: \"subvalues\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", value: \"value\", valueIndicator: \"valueIndicator\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", animationChange: \"animationChange\", centerTemplateChange: \"centerTemplateChange\", containerBackgroundColorChange: \"containerBackgroundColorChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", geometryChange: \"geometryChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", pathModifiedChange: \"pathModifiedChange\", rangeContainerChange: \"rangeContainerChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", scaleChange: \"scaleChange\", sizeChange: \"sizeChange\", subvalueIndicatorChange: \"subvalueIndicatorChange\", subvaluesChange: \"subvaluesChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valueChange: \"valueChange\", valueIndicatorChange: \"valueIndicatorChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxCircularGaugeComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCircularGaugeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-circular-gauge',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], centerTemplate: [{\r\n type: Input\r\n }], containerBackgroundColor: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], geometry: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], rangeContainer: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scale: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], subvalueIndicator: [{\r\n type: Input\r\n }], subvalues: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueIndicator: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], centerTemplateChange: [{\r\n type: Output\r\n }], containerBackgroundColorChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], geometryChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], rangeContainerChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scaleChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], subvalueIndicatorChange: [{\r\n type: Output\r\n }], subvaluesChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueIndicatorChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxCircularGaugeModule {\r\n}\r\n/** @nocollapse */ DxCircularGaugeModule.ɵfac = function DxCircularGaugeModule_Factory(t) { return new (t || DxCircularGaugeModule)(); };\r\n/** @nocollapse */ DxCircularGaugeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxCircularGaugeModule });\r\n/** @nocollapse */ DxCircularGaugeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxCircularGaugeModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxCircularGaugeComponent\r\n ],\r\n exports: [\r\n DxCircularGaugeComponent,\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxCircularGaugeModule, { declarations: [DxCircularGaugeComponent], imports: [DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxCircularGaugeComponent, DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxCircularGaugeComponent, DxCircularGaugeModule };\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"<div>\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"<div>\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"<div>\").appendTo($spinContainer);\r\n var $spinDown = $(\"<div>\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n clear: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n if (this._input().length) {\r\n this._renderValue()\r\n }\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue();\r\n var shouldTriggerInputEvent = this.option(\"valueChangeEvent\").split(\" \").includes(\"input\");\r\n if (shouldTriggerInputEvent) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var isTextSelected = selection.start !== selection.end;\r\n var isWholeTextSelected = isTextSelected && 0 === selection.start && selection.end === text.length;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (isWholeTextSelected && char === decimalSeparator) {\r\n return 0\r\n }\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue) || 0 === newValue) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/__internal/m_draggable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../core/templates/empty_template\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n quadToObject\r\n} from \"../core/utils/string\";\r\nimport {\r\n isFunction,\r\n isNumeric,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../events/drag\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n addNamespace,\r\n needSkipEvent\r\n} from \"../events/utils/index\";\r\nimport Animator from \"../ui/scroll_view/animator\";\r\nvar window = getWindow();\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventStart, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = addNamespace(dragEventMove, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = addNamespace(dragEventEnd, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = addNamespace(dragEventEnter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = addNamespace(dragEventLeave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, DRAGGABLE);\r\nvar KEYDOWN_EVENT_NAME = addNamespace(KEYDOWN_EVENT, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = event => ({\r\n x: event.pageX - $(window).scrollLeft(),\r\n y: event.pageY - $(window).scrollTop()\r\n});\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nclass ScrollHelper {\r\n constructor(orientation, component) {\r\n this._$scrollableAtPointer = null;\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n updateScrollable(elements, mousePosition) {\r\n var isScrollableFound = false;\r\n elements.some(element => {\r\n var $element = $(element);\r\n var isTargetOverOverlayWrapper = $element.hasClass(OVERLAY_WRAPPER_CLASS);\r\n var isTargetOverOverlayContent = $element.hasClass(OVERLAY_CONTENT_CLASS);\r\n if (isTargetOverOverlayWrapper || isTargetOverOverlayContent) {\r\n return true\r\n }\r\n isScrollableFound = this._trySetScrollable(element, mousePosition);\r\n return isScrollableFound\r\n });\r\n if (!isScrollableFound) {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0\r\n }\r\n }\r\n isScrolling() {\r\n return !!this._scrollSpeed\r\n }\r\n isScrollable($element) {\r\n return (\"auto\" === $element.css(this._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(this._scrollSizeProp) > Math.ceil(\"width\" === this._sizeAttr ? getWidth($element) : getHeight($element))\r\n }\r\n _trySetScrollable(element, mousePosition) {\r\n var $element = $(element);\r\n var distanceToBorders;\r\n var sensitivity = this._component.option(\"scrollSensitivity\");\r\n var isScrollable = this.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = this._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[this._limitProps.start]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = -this._calculateScrollSpeed(distanceToBorders[this._limitProps.start]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else if (sensitivity > distanceToBorders[this._limitProps.end]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = this._calculateScrollSpeed(distanceToBorders[this._limitProps.end]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n this._preventScroll = false\r\n }\r\n }\r\n return isScrollable\r\n }\r\n _calculateDistanceToBorders($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = getBoundingRect(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n }\r\n return {}\r\n }\r\n _calculateScrollSpeed(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(((sensitivity - distance) / sensitivity) ** 2 * maxSpeed)\r\n }\r\n scrollByStep() {\r\n if (this._$scrollableAtPointer && this._scrollSpeed) {\r\n if (this._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = this._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[this._limitProps.start] + this._scrollSpeed;\r\n scrollableInstance.scrollTo({\r\n [this._limitProps.start]: nextScrollPosition\r\n })\r\n }\r\n } else {\r\n var _nextScrollPosition = this._$scrollableAtPointer[this._scrollValue]() + this._scrollSpeed;\r\n this._$scrollableAtPointer[this._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = this._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n this._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n }\r\n reset() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n }\r\n isOutsideScrollable($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = getBoundingRect($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n }\r\n}\r\nvar ScrollAnimator = Animator.inherit({\r\n ctor(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = DOMComponent.inherit({\r\n reset: noop,\r\n dragMove: noop,\r\n dragEnter: noop,\r\n dragLeave: noop,\r\n dragEnd(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return Deferred().resolve()\r\n },\r\n _fireRemoveEvent: noop,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDragCancel: null,\r\n onCancelByEsc: false,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase.apply(this, arguments);\r\n extend(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this);\r\n this._initScrollTop = 0;\r\n this._initScrollLeft = 0\r\n },\r\n _normalizeCursorOffset(offset) {\r\n if (isObject(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = splitPair(offset).map(value => parseFloat(value));\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset(offset, options) {\r\n if (isFunction(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var {\r\n event: event\r\n } = options;\r\n var $element = $(options.itemElement);\r\n var $dragElement = $(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = locate($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition(options) {\r\n var $dragElement = $(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = locate($dragElement)\r\n },\r\n _startAnimator() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix(className) {\r\n var componentName = this.NAME;\r\n return dasherize(componentName) + (className ? \"-\".concat(className) : \"\")\r\n },\r\n _getItemsSelector() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: ($target, event) => {\r\n var targetGroup = this.option(\"group\");\r\n var sourceGroup = this._getSourceDraggable().option(\"group\");\r\n var $scrollable = this._getScrollable($target);\r\n if (this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n eventsEngine.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n eventsEngine.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n eventsEngine.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n eventsEngine.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this));\r\n if (this.option(\"onCancelByEsc\")) {\r\n eventsEngine.on($element, KEYDOWN_EVENT_NAME, this._keydownHandler.bind(this))\r\n }\r\n },\r\n _dragElementIsCloned() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs($element, $container) {\r\n return {\r\n container: getPublicElement($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: getPublicElement($element)\r\n }\r\n }\r\n },\r\n _createDragElement($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = $(\"<div>\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else if (clone) {\r\n result = $(\"<div>\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$content(), \".\".concat(DRAGGABLE));\r\n eventsEngine.off(this._getArea(), \".\".concat(DRAGGABLE))\r\n },\r\n _move(position, $element) {\r\n move($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = $(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler(e) {\r\n if (needSkipEvent(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + locate($element).left - getWidth($element) / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + locate($element).top - getHeight($element) / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = $(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler(e) {\r\n var $element = this._getDraggableElement(e);\r\n this.dragInProgress = true;\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n if (!this._hasClonedDraggable() && this.option(\"autoScroll\")) {\r\n this._initScrollTop = this._getScrollableScrollTop();\r\n this._initScrollLeft = this._getScrollableScrollLeft();\r\n initialOffset = this._getDraggableElementOffset(initialOffset.left, initialOffset.top)\r\n }\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition(extend({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n this._getAction(\"onDraggableElementShown\")(_extends(_extends({}, dragStartArgs), {\r\n dragElement: $dragElement\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = getOuterWidth($area);\r\n var areaHeight = getOuterHeight($area);\r\n var elementWidth = getWidth($dragElement);\r\n var elementHeight = getHeight($dragElement);\r\n var startOffset_left = $dragElement.offset().left - areaOffset.left,\r\n startOffset_top = $dragElement.offset().top - areaOffset.top;\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset_left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset_left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset_top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset_top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset($area) {\r\n var offset = $area && positionUtils.offset($area);\r\n return offset || {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor($element) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if (isFunction(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return quadToObject(boundOffset)\r\n },\r\n _getArea() {\r\n var area = this.option(\"boundary\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n return $(area)\r\n },\r\n _getContainer() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = viewPort()\r\n }\r\n return $(container)\r\n },\r\n _getDraggableElementOffset(initialOffsetX, initialOffsetY) {\r\n var _a, _b, _c, _d;\r\n var initScrollTop = this._initScrollTop;\r\n var initScrollLeft = this._initScrollLeft;\r\n var scrollTop = this._getScrollableScrollTop();\r\n var scrollLeft = this._getScrollableScrollLeft();\r\n var elementPosition = $(this.element()).css(\"position\");\r\n var isFixedPosition = \"fixed\" === elementPosition;\r\n var result = {\r\n left: (null !== (_b = null === (_a = this._startPosition) || void 0 === _a ? void 0 : _a.left) && void 0 !== _b ? _b : 0) + initialOffsetX,\r\n top: (null !== (_d = null === (_c = this._startPosition) || void 0 === _c ? void 0 : _c.top) && void 0 !== _d ? _d : 0) + initialOffsetY\r\n };\r\n if (isFixedPosition || this._hasClonedDraggable()) {\r\n return result\r\n }\r\n return {\r\n left: isNumeric(scrollLeft) ? result.left + scrollLeft - initScrollLeft : result.left,\r\n top: isNumeric(scrollTop) ? result.top + scrollTop - initScrollTop : result.top\r\n }\r\n },\r\n _hasClonedDraggable() {\r\n return this.option(\"clone\") || this.option(\"dragTemplate\")\r\n },\r\n _dragMoveHandler(e) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = this._getDraggableElementOffset(e.offset.x, e.offset.y);\r\n this._move(offset);\r\n this._updateScrollable(e);\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable(e) {\r\n if (this.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.$element().get(0));\r\n this._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n this._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n _getScrollable($element) {\r\n var $scrollable;\r\n $element.parents().toArray().some(parent => {\r\n var $parent = $(parent);\r\n if (this._horizontalScrollHelper.isScrollable($parent) || this._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n return false\r\n });\r\n return $scrollable\r\n },\r\n _getScrollableScrollTop() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollTop()) && void 0 !== _b ? _b : 0\r\n },\r\n _getScrollableScrollLeft() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollLeft()) && void 0 !== _b ? _b : 0\r\n },\r\n _defaultActionArgs() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: getPublicElement(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler(e) {\r\n var d = Deferred();\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n this.dragInProgress = false;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n when(fromPromise(dragEndEventArgs.cancel)).done(cancel => {\r\n if (!cancel) {\r\n if (targetDraggable !== this) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n when(fromPromise(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(() => {\r\n if (needRevertPosition) {\r\n this._revertItemToInitialPosition()\r\n }\r\n this._resetDragOptions(targetDraggable)\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.element());\r\n var firstWidgetElement = elements.filter(element => {\r\n var $element = $(element);\r\n if ($element.hasClass(this._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n return false\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = $(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _keydownHandler(e) {\r\n if (this.dragInProgress && \"Escape\" === e.key) {\r\n this._keydownEscapeHandler(e)\r\n }\r\n },\r\n _keydownEscapeHandler(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if (!$sourceElement) {\r\n return\r\n }\r\n var dragCancelEventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragCancel\")(dragCancelEventArgs);\r\n if (dragCancelEventArgs.cancel) {\r\n return\r\n }\r\n this.dragInProgress = false;\r\n null === sourceDraggable || void 0 === sourceDraggable ? void 0 : sourceDraggable._toggleDraggingClass(false);\r\n this._detachEventHandlers();\r\n this._revertItemToInitialPosition();\r\n var targetDraggable = this._getTargetDraggable();\r\n this._resetDragOptions(targetDraggable);\r\n this._attachEventHandlers()\r\n },\r\n _getAction(name) {\r\n return this[\"_\".concat(name, \"Action\")] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n $(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n case \"onDragCancel\":\r\n case \"onDraggableElementShown\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"onCancelByEsc\":\r\n this._keydownHandler();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable() {\r\n targetDraggable = null\r\n },\r\n _resetDragOptions(targetDraggable) {\r\n this.reset();\r\n targetDraggable.reset();\r\n this._stopAnimator();\r\n this._horizontalScrollHelper.reset();\r\n this._verticalScrollHelper.reset();\r\n this._resetDragElement();\r\n this._resetSourceElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\nregisterComponent(DRAGGABLE, Draggable);\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/ui/draggable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Draggable from \"../__internal/m_draggable\";\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/ui/color_box/color_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Color from \"../../color\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport TextBox from \"../text_box\";\r\nimport Draggable from \"../draggable\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Guid from \"../../core/guid\";\r\nvar COLOR_VIEW_CLASS = \"dx-colorview\";\r\nvar COLOR_VIEW_CONTAINER_CLASS = \"dx-colorview-container\";\r\nvar COLOR_VIEW_ROW_CLASS = \"dx-colorview-container-row\";\r\nvar COLOR_VIEW_CELL_CLASS = \"dx-colorview-container-cell\";\r\nvar COLOR_VIEW_PALETTE_CLASS = \"dx-colorview-palette\";\r\nvar COLOR_VIEW_PALETTE_CELL_CLASS = \"dx-colorview-palette-cell\";\r\nvar COLOR_VIEW_PALETTE_HANDLE_CLASS = \"dx-colorview-palette-handle\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_CLASS = \"dx-colorview-palette-gradient\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS = \"dx-colorview-palette-gradient-white\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS = \"dx-colorview-palette-gradient-black\";\r\nvar COLOR_VIEW_HUE_SCALE_CLASS = \"dx-colorview-hue-scale\";\r\nvar COLOR_VIEW_HUE_SCALE_CELL_CLASS = \"dx-colorview-hue-scale-cell\";\r\nvar COLOR_VIEW_HUE_SCALE_HANDLE_CLASS = \"dx-colorview-hue-scale-handle\";\r\nvar COLOR_VIEW_HUE_SCALE_WRAPPER_CLASS = \"dx-colorview-hue-scale-wrapper\";\r\nvar COLOR_VIEW_CONTROLS_CONTAINER_CLASS = \"dx-colorview-controls-container\";\r\nvar COLOR_VIEW_RED_LABEL_CLASS = \"dx-colorview-label-red\";\r\nvar COLOR_VIEW_GREEN_LABEL_CLASS = \"dx-colorview-label-green\";\r\nvar COLOR_VIEW_BLUE_LABEL_CLASS = \"dx-colorview-label-blue\";\r\nvar COLOR_VIEW_HEX_LABEL_CLASS = \"dx-colorview-label-hex\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_SCALE_CLASS = \"dx-colorview-alpha-channel-scale\";\r\nvar COLOR_VIEW_APLHA_CHANNEL_ROW_CLASS = \"dx-colorview-alpha-channel-row\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_SCALE_WRAPPER_CLASS = \"dx-colorview-alpha-channel-wrapper\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_LABEL_CLASS = \"dx-colorview-alpha-channel-label\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_HANDLE_CLASS = \"dx-colorview-alpha-channel-handle\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_CELL_CLASS = \"dx-colorview-alpha-channel-cell\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_BORDER_CLASS = \"dx-colorview-alpha-channel-border\";\r\nvar COLOR_VIEW_COLOR_PREVIEW = \"dx-colorview-color-preview\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_CONTAINER_CLASS = \"dx-colorview-color-preview-container\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_CONTAINER_INNER_CLASS = \"dx-colorview-color-preview-container-inner\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT = \"dx-colorview-color-preview-color-current\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW = \"dx-colorview-color-preview-color-new\";\r\nvar TEXT_EDITOR_INPUT = \"dx-texteditor-input\";\r\nvar BLACK_COLOR = \"#000000\";\r\nvar ColorView = Editor.inherit({\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var that = this;\r\n var getHorizontalPaletteStep = function(e) {\r\n var step = 100 / that._paletteWidth;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return Math.round(step)\r\n };\r\n var updateHorizontalPaletteValue = function(step) {\r\n var value = that._currentColor.hsv.s + step;\r\n if (value > 100) {\r\n value = 100\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n that._currentColor.hsv.s = value;\r\n updatePaletteValue()\r\n };\r\n var getVerticalPaletteStep = function(e) {\r\n var step = 100 / that._paletteHeight;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return Math.round(step)\r\n };\r\n var updateVerticalPaletteValue = function(step) {\r\n var value = that._currentColor.hsv.v + step;\r\n if (value > 100) {\r\n value = 100\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n that._currentColor.hsv.v = value;\r\n updatePaletteValue()\r\n };\r\n\r\n function updatePaletteValue() {\r\n that._placePaletteHandle();\r\n that._updateColorFromHsv(that._currentColor.hsv.h, that._currentColor.hsv.s, that._currentColor.hsv.v)\r\n }\r\n var getHueScaleStep = function(e) {\r\n var step = 360 / (that._hueScaleWrapperHeight - that._hueScaleHandleHeight);\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return step\r\n };\r\n var updateHueScaleValue = function(step) {\r\n that._currentColor.hsv.h += step;\r\n that._placeHueScaleHandle();\r\n var handleLocation = locate(that._$hueScaleHandle);\r\n that._updateColorHue(handleLocation.top + that._hueScaleHandleHeight / 2)\r\n };\r\n var getAlphaScaleStep = function(e) {\r\n var step = 1 / that._alphaChannelScaleWorkWidth;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > .01 ? step : .01;\r\n step = isRTL ? -step : step;\r\n return step\r\n };\r\n var updateAlphaScaleValue = function(step) {\r\n that._currentColor.a += step;\r\n that._placeAlphaChannelHandle();\r\n var handleLocation = locate(that._$alphaChannelHandle);\r\n that._calculateColorTransparencyByScaleWidth(handleLocation.left + that._alphaChannelHandleWidth / 2)\r\n };\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (this._currentColor.hsv.h <= 360 && !this._isTopColorHue) {\r\n this._saveValueChangeEvent(e);\r\n updateHueScaleValue(getHueScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.v < 100) {\r\n this._saveValueChangeEvent(e);\r\n updateVerticalPaletteValue(getVerticalPaletteStep(e))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (this._currentColor.hsv.h >= 0) {\r\n if (this._isTopColorHue) {\r\n this._currentColor.hsv.h = 360\r\n }\r\n this._saveValueChangeEvent(e);\r\n updateHueScaleValue(-getHueScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.v > 0) {\r\n this._saveValueChangeEvent(e);\r\n updateVerticalPaletteValue(-getVerticalPaletteStep(e))\r\n }\r\n },\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (isRTL ? this._currentColor.a < 1 : this._currentColor.a > 0 && this.option(\"editAlphaChannel\")) {\r\n this._saveValueChangeEvent(e);\r\n updateAlphaScaleValue(-getAlphaScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.s < 100) {\r\n this._saveValueChangeEvent(e);\r\n updateHorizontalPaletteValue(getHorizontalPaletteStep(e))\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (isRTL ? this._currentColor.a > 0 : this._currentColor.a < 1 && this.option(\"editAlphaChannel\")) {\r\n this._saveValueChangeEvent(e);\r\n updateAlphaScaleValue(getAlphaScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.s > 0) {\r\n this._saveValueChangeEvent(e);\r\n updateHorizontalPaletteValue(-getHorizontalPaletteStep(e))\r\n }\r\n },\r\n enter: function(e) {\r\n this._fireEnterKeyPressed(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n matchValue: null,\r\n onEnterKeyPressed: void 0,\r\n editAlphaChannel: false,\r\n keyStep: 1,\r\n stylingMode: void 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initColorAndOpacity();\r\n this._initEnterKeyPressedAction()\r\n },\r\n _initEnterKeyPressedAction: function() {\r\n this._onEnterKeyPressedAction = this._createActionByOption(\"onEnterKeyPressed\")\r\n },\r\n _fireEnterKeyPressed: function(e) {\r\n if (!this._onEnterKeyPressedAction) {\r\n return\r\n }\r\n this._onEnterKeyPressedAction({\r\n event: e\r\n })\r\n },\r\n _initColorAndOpacity: function() {\r\n this._setCurrentColor(this.option(\"value\"))\r\n },\r\n _setCurrentColor: function(value) {\r\n value = value || BLACK_COLOR;\r\n var newColor = new Color(value);\r\n if (!newColor.colorIsInvalid) {\r\n if (!this._currentColor || this._makeRgba(this._currentColor) !== this._makeRgba(newColor)) {\r\n this._currentColor = newColor;\r\n if (this._$currentColor) {\r\n this._makeTransparentBackground(this._$currentColor, newColor)\r\n }\r\n }\r\n } else {\r\n if (!this._currentColor) {\r\n this._currentColor = new Color(BLACK_COLOR)\r\n }\r\n this.option(\"value\", this._currentColor.baseColor)\r\n }\r\n },\r\n _setBaseColor: function(value) {\r\n var color = value || BLACK_COLOR;\r\n var newColor = new Color(color);\r\n if (!newColor.colorIsInvalid) {\r\n var isBaseColorChanged = this._makeRgba(this.option(\"matchValue\") !== this._makeRgba(newColor));\r\n if (isBaseColorChanged) {\r\n if (this._$baseColor) {\r\n this._makeTransparentBackground(this._$baseColor, newColor)\r\n }\r\n }\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(COLOR_VIEW_CLASS);\r\n this._renderColorPickerContainer()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderPalette();\r\n this._renderHueScale();\r\n this._renderControlsContainer();\r\n this._renderControls();\r\n this._renderAlphaChannelElements()\r\n },\r\n _makeTransparentBackground: function($el, color) {\r\n if (!(color instanceof Color)) {\r\n color = new Color(color)\r\n }\r\n $el.css(\"backgroundColor\", this._makeRgba(color))\r\n },\r\n _makeRgba: function(color) {\r\n if (!(color instanceof Color)) {\r\n color = new Color(color)\r\n }\r\n return \"rgba(\" + [color.r, color.g, color.b, color.a].join(\", \") + \")\"\r\n },\r\n _renderValue: function() {\r\n this.callBase(this.option(\"editAlphaChannel\") ? this._makeRgba(this._currentColor) : this.option(\"value\"))\r\n },\r\n _renderColorPickerContainer: function() {\r\n var $parent = this.$element();\r\n this._$colorPickerContainer = $(\"<div>\").addClass(COLOR_VIEW_CONTAINER_CLASS).appendTo($parent);\r\n this._renderHtmlRows()\r\n },\r\n _renderHtmlRows: function(updatedOption) {\r\n var $renderedRows = this._$colorPickerContainer.find(\".\" + COLOR_VIEW_ROW_CLASS);\r\n var renderedRowsCount = $renderedRows.length;\r\n var rowCount = this.option(\"editAlphaChannel\") ? 2 : 1;\r\n var delta = renderedRowsCount - rowCount;\r\n if (delta > 0) {\r\n $renderedRows.eq(-1).remove()\r\n }\r\n if (delta < 0) {\r\n delta = Math.abs(delta);\r\n var rows = [];\r\n var i;\r\n for (i = 0; i < delta; i++) {\r\n rows.push($(\"<div>\").addClass(COLOR_VIEW_ROW_CLASS))\r\n }\r\n if (renderedRowsCount) {\r\n for (i = 0; i < rows.length; i++) {\r\n $renderedRows.eq(0).after(rows[i])\r\n }\r\n } else {\r\n this._$colorPickerContainer.append(rows)\r\n }\r\n }\r\n },\r\n _renderHtmlCellInsideRow: function(index, $rowParent, additionalClass) {\r\n return $(\"<div>\").addClass(COLOR_VIEW_CELL_CLASS).addClass(additionalClass).appendTo($rowParent.find(\".\" + COLOR_VIEW_ROW_CLASS).eq(index))\r\n },\r\n _renderPalette: function() {\r\n var $paletteCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, COLOR_VIEW_PALETTE_CELL_CLASS);\r\n var $paletteGradientWhite = $(\"<div>\").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS].join(\" \"));\r\n var $paletteGradientBlack = $(\"<div>\").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS].join(\" \"));\r\n this._$palette = $(\"<div>\").addClass(COLOR_VIEW_PALETTE_CLASS).css(\"backgroundColor\", this._currentColor.getPureColor().toHex()).appendTo($paletteCell);\r\n this._paletteHeight = getHeight(this._$palette);\r\n this._paletteWidth = getWidth(this._$palette);\r\n this._renderPaletteHandle();\r\n this._$palette.append([$paletteGradientWhite, $paletteGradientBlack])\r\n },\r\n _renderPaletteHandle: function() {\r\n this._$paletteHandle = $(\"<div>\").addClass(COLOR_VIEW_PALETTE_HANDLE_CLASS).appendTo(this._$palette);\r\n var ariaId = \"dx-\".concat(new Guid);\r\n var handleAria = {\r\n id: ariaId,\r\n role: \"application\"\r\n };\r\n this.setAria(handleAria, this._$paletteHandle);\r\n this.setAria(\"activedescendant\", ariaId, this.option(\"target\"));\r\n this._createComponent(this._$paletteHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: this._$palette,\r\n allowMoveByClick: true,\r\n boundOffset: function() {\r\n return -this._paletteHandleHeight / 2\r\n }.bind(this),\r\n onDragMove: _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n var paletteHandlePosition = locate(this._$paletteHandle);\r\n this._updateByDrag = true;\r\n this._saveValueChangeEvent(event);\r\n this._updateColorFromHsv(this._currentColor.hsv.h, this._calculateColorSaturation(paletteHandlePosition), this._calculateColorValue(paletteHandlePosition))\r\n }\r\n });\r\n this._paletteHandleWidth = getWidth(this._$paletteHandle);\r\n this._paletteHandleHeight = getHeight(this._$paletteHandle);\r\n this._placePaletteHandle()\r\n },\r\n _placePaletteHandle: function() {\r\n move(this._$paletteHandle, {\r\n left: Math.round(this._paletteWidth * this._currentColor.hsv.s / 100 - this._paletteHandleWidth / 2),\r\n top: Math.round(this._paletteHeight - this._paletteHeight * this._currentColor.hsv.v / 100 - this._paletteHandleHeight / 2)\r\n })\r\n },\r\n _calculateColorValue: function(paletteHandlePosition) {\r\n var value = Math.floor(paletteHandlePosition.top + this._paletteHandleHeight / 2);\r\n return 100 - Math.round(100 * value / this._paletteHeight)\r\n },\r\n _calculateColorSaturation: function(paletteHandlePosition) {\r\n var saturation = Math.floor(paletteHandlePosition.left + this._paletteHandleWidth / 2);\r\n return Math.round(100 * saturation / this._paletteWidth)\r\n },\r\n _updateColorFromHsv: function(hue, saturation, value) {\r\n var a = this._currentColor.a;\r\n this._currentColor = new Color(\"hsv(\" + [hue, saturation, value].join(\",\") + \")\");\r\n this._currentColor.a = a;\r\n this._updateColorParamsAndColorPreview();\r\n this.applyColor()\r\n },\r\n _renderHueScale: function() {\r\n var $hueScaleCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, COLOR_VIEW_HUE_SCALE_CELL_CLASS);\r\n this._$hueScaleWrapper = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_WRAPPER_CLASS).appendTo($hueScaleCell);\r\n this._$hueScale = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_CLASS).appendTo(this._$hueScaleWrapper);\r\n this._hueScaleHeight = getHeight(this._$hueScale);\r\n this._hueScaleWrapperHeight = getOuterHeight(this._$hueScaleWrapper);\r\n this._renderHueScaleHandle()\r\n },\r\n _renderHueScaleHandle: function() {\r\n this._$hueScaleHandle = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_HANDLE_CLASS).appendTo(this._$hueScaleWrapper);\r\n this._createComponent(this._$hueScaleHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: this._$hueScaleWrapper,\r\n allowMoveByClick: true,\r\n dragDirection: \"vertical\",\r\n onDragMove: _ref2 => {\r\n var {\r\n event: event\r\n } = _ref2;\r\n this._updateByDrag = true;\r\n this._saveValueChangeEvent(event);\r\n this._updateColorHue(locate(this._$hueScaleHandle).top + this._hueScaleHandleHeight / 2)\r\n }\r\n });\r\n this._hueScaleHandleHeight = getHeight(this._$hueScaleHandle);\r\n this._placeHueScaleHandle()\r\n },\r\n _placeHueScaleHandle: function() {\r\n var hueScaleHeight = this._hueScaleWrapperHeight;\r\n var handleHeight = this._hueScaleHandleHeight;\r\n var top = (hueScaleHeight - handleHeight) * (360 - this._currentColor.hsv.h) / 360;\r\n if (hueScaleHeight < top + handleHeight) {\r\n top = hueScaleHeight - handleHeight\r\n }\r\n if (top < 0) {\r\n top = 0\r\n }\r\n move(this._$hueScaleHandle, {\r\n top: Math.round(top)\r\n })\r\n },\r\n _updateColorHue: function(handlePosition) {\r\n var hue = 360 - Math.round(360 * (handlePosition - this._hueScaleHandleHeight / 2) / (this._hueScaleWrapperHeight - this._hueScaleHandleHeight));\r\n var saturation = this._currentColor.hsv.s;\r\n var value = this._currentColor.hsv.v;\r\n this._isTopColorHue = false;\r\n hue = hue < 0 ? 0 : hue;\r\n if (hue >= 360) {\r\n this._isTopColorHue = true;\r\n hue = 0\r\n }\r\n this._updateColorFromHsv(hue, saturation, value);\r\n this._$palette.css(\"backgroundColor\", this._currentColor.getPureColor().toHex())\r\n },\r\n _renderControlsContainer: function() {\r\n var $controlsContainerCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer);\r\n this._$controlsContainer = $(\"<div>\").addClass(COLOR_VIEW_CONTROLS_CONTAINER_CLASS).appendTo($controlsContainerCell)\r\n },\r\n _renderControls: function() {\r\n this._renderColorsPreview();\r\n this._renderRgbInputs();\r\n this._renderHexInput()\r\n },\r\n _renderColorsPreview: function() {\r\n var $colorsPreviewContainer = $(\"<div>\").addClass(COLOR_VIEW_COLOR_PREVIEW_CONTAINER_CLASS).appendTo(this._$controlsContainer);\r\n var $colorsPreviewContainerInner = $(\"<div>\").addClass(COLOR_VIEW_COLOR_PREVIEW_CONTAINER_INNER_CLASS).appendTo($colorsPreviewContainer);\r\n this._$currentColor = $(\"<div>\").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW].join(\" \"));\r\n this._$baseColor = $(\"<div>\").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT].join(\" \"));\r\n this._makeTransparentBackground(this._$baseColor, this.option(\"matchValue\"));\r\n this._makeTransparentBackground(this._$currentColor, this._currentColor);\r\n $colorsPreviewContainerInner.append([this._$baseColor, this._$currentColor])\r\n },\r\n _renderAlphaChannelElements: function() {\r\n if (this.option(\"editAlphaChannel\")) {\r\n this._$colorPickerContainer.find(\".\" + COLOR_VIEW_ROW_CLASS).eq(1).addClass(COLOR_VIEW_APLHA_CHANNEL_ROW_CLASS);\r\n this._renderAlphaChannelScale();\r\n this._renderAlphaChannelInput()\r\n }\r\n },\r\n _renderRgbInputs: function() {\r\n this._rgbInputsWithLabels = [this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.r,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"R\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaRed\"),\r\n labelClass: COLOR_VIEW_RED_LABEL_CLASS\r\n }), this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.g,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"G\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaGreen\"),\r\n labelClass: COLOR_VIEW_GREEN_LABEL_CLASS\r\n }), this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.b,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"B\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaBlue\"),\r\n labelClass: COLOR_VIEW_BLUE_LABEL_CLASS\r\n })];\r\n this._$controlsContainer.append(this._rgbInputsWithLabels);\r\n this._rgbInputs = [this._rgbInputsWithLabels[0].find(\".dx-numberbox\").dxNumberBox(\"instance\"), this._rgbInputsWithLabels[1].find(\".dx-numberbox\").dxNumberBox(\"instance\"), this._rgbInputsWithLabels[2].find(\".dx-numberbox\").dxNumberBox(\"instance\")]\r\n },\r\n _renderEditorWithLabel: function(options) {\r\n var $editor = $(\"<div>\");\r\n var $label = $(\"<label>\").addClass(options.labelClass).text(options.labelText + \":\").append($editor);\r\n eventsEngine.off($label, clickEventName);\r\n eventsEngine.on($label, clickEventName, (function(e) {\r\n e.preventDefault()\r\n }));\r\n var editorType = options.editorType;\r\n var editorOptions = extend({\r\n value: options.value,\r\n onValueChanged: options.onValueChanged,\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, {\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n if (editorType === NumberBox) {\r\n editorOptions.min = options.min || 0;\r\n editorOptions.max = options.max || 255;\r\n editorOptions.step = options.step || 1\r\n }\r\n var editor = new editorType($editor, editorOptions);\r\n editor.registerKeyHandler(\"enter\", function(e) {\r\n this._fireEnterKeyPressed(e)\r\n }.bind(this));\r\n this.setAria(\"label\", options.labelAriaText, $editor);\r\n return $label\r\n },\r\n hexInputOptions: function() {\r\n return {\r\n editorType: TextBox,\r\n value: this._currentColor.toHex().replace(\"#\", \"\"),\r\n onValueChanged: this._updateColor.bind(this, true),\r\n labelClass: COLOR_VIEW_HEX_LABEL_CLASS,\r\n labelText: \"#\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaHex\")\r\n }\r\n },\r\n _renderHexInput: function() {\r\n this._hexInput = TextBox.getInstance(this._renderEditorWithLabel(this.hexInputOptions()).appendTo(this._$controlsContainer).find(\".dx-textbox\"));\r\n var inputId = \"dx-\".concat(new Guid);\r\n var $hexInput = this._$controlsContainer.find(\".\".concat(COLOR_VIEW_HEX_LABEL_CLASS)).find(\".\".concat(TEXT_EDITOR_INPUT));\r\n this.setAria(\"id\", inputId, $hexInput);\r\n this.setAria(\"labelledby\", inputId, this._$paletteHandle)\r\n },\r\n _renderAlphaChannelScale: function() {\r\n var $alphaChannelScaleCell = this._renderHtmlCellInsideRow(1, this._$colorPickerContainer, COLOR_VIEW_ALPHA_CHANNEL_CELL_CLASS);\r\n var $alphaChannelBorder = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_BORDER_CLASS).appendTo($alphaChannelScaleCell);\r\n var $alphaChannelScaleWrapper = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_SCALE_WRAPPER_CLASS).appendTo($alphaChannelBorder);\r\n this._$alphaChannelScale = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_SCALE_CLASS).appendTo($alphaChannelScaleWrapper);\r\n this._makeCSSLinearGradient(this._$alphaChannelScale);\r\n this._renderAlphaChannelHandle($alphaChannelScaleCell)\r\n },\r\n _makeCSSLinearGradient: function($el) {\r\n var color = this._currentColor;\r\n var colorAsRgb = \"\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var startColor = \"rgba(\".concat(colorAsRgb, \", \").concat(rtlEnabled ? \"1\" : \"0\", \")\");\r\n var finishColor = \"rgba(\".concat(colorAsRgb, \", \").concat(rtlEnabled ? \"0\" : \"1\", \")\");\r\n var backgroundImage = \"linear-gradient(-90deg, \".concat(startColor, \", \").concat(finishColor, \")\");\r\n $el.css(\"backgroundImage\", backgroundImage)\r\n },\r\n _renderAlphaChannelInput: function() {\r\n var that = this;\r\n var $alphaChannelInputCell = this._renderHtmlCellInsideRow(1, this._$colorPickerContainer);\r\n that._alphaChannelInput = this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.a,\r\n max: 1,\r\n step: .1,\r\n onValueChanged: function(args) {\r\n var value = args.value;\r\n value = that._currentColor.isValidAlpha(value) ? value : that._currentColor.a;\r\n args.event && that._saveValueChangeEvent(args.event);\r\n that._updateColorTransparency(value);\r\n that._placeAlphaChannelHandle()\r\n },\r\n labelClass: COLOR_VIEW_ALPHA_CHANNEL_LABEL_CLASS,\r\n labelText: \"Alpha\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaAlpha\")\r\n }).appendTo($alphaChannelInputCell).find(\".dx-numberbox\").dxNumberBox(\"instance\")\r\n },\r\n _updateColorTransparency: function(transparency) {\r\n this._currentColor.a = transparency;\r\n this.applyColor()\r\n },\r\n _renderAlphaChannelHandle: function($parent) {\r\n this._$alphaChannelHandle = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_HANDLE_CLASS).appendTo($parent);\r\n this._createComponent(this._$alphaChannelHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: $parent,\r\n allowMoveByClick: true,\r\n dragDirection: \"horizontal\",\r\n onDragMove: _ref3 => {\r\n var {\r\n event: event\r\n } = _ref3;\r\n this._updateByDrag = true;\r\n var $alphaChannelHandle = this._$alphaChannelHandle;\r\n var alphaChannelHandlePosition = locate($alphaChannelHandle).left + this._alphaChannelHandleWidth / 2;\r\n this._saveValueChangeEvent(event);\r\n this._calculateColorTransparencyByScaleWidth(alphaChannelHandlePosition)\r\n }\r\n });\r\n this._alphaChannelHandleWidth = getWidth(this._$alphaChannelHandle);\r\n this._alphaChannelScaleWorkWidth = getWidth($parent) - this._alphaChannelHandleWidth;\r\n this._placeAlphaChannelHandle()\r\n },\r\n _calculateColorTransparencyByScaleWidth: function(handlePosition) {\r\n var transparency = (handlePosition - this._alphaChannelHandleWidth / 2) / this._alphaChannelScaleWorkWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n transparency = rtlEnabled ? transparency : 1 - transparency;\r\n if (handlePosition >= this._alphaChannelScaleWorkWidth + this._alphaChannelHandleWidth / 2) {\r\n transparency = rtlEnabled ? 1 : 0\r\n } else if (transparency < 1) {\r\n transparency = transparency.toFixed(2)\r\n }\r\n var previousTransparency = this._alphaChannelInput.option(\"value\");\r\n transparency = Math.max(transparency, 0);\r\n transparency = Math.min(transparency, 1);\r\n if (transparency === previousTransparency) {\r\n this._updateByDrag = false\r\n } else {\r\n this._alphaChannelInput.option(\"value\", transparency)\r\n }\r\n },\r\n _placeAlphaChannelHandle: function() {\r\n var left = this._alphaChannelScaleWorkWidth * (1 - this._currentColor.a);\r\n if (left < 0) {\r\n left = 0\r\n }\r\n if (this._alphaChannelScaleWorkWidth < left) {\r\n left = this._alphaChannelScaleWorkWidth\r\n }\r\n move(this._$alphaChannelHandle, {\r\n left: this.option(\"rtlEnabled\") ? this._alphaChannelScaleWorkWidth - left : left\r\n })\r\n },\r\n applyColor: function() {\r\n var previousValue = this.option(\"value\");\r\n var colorValue = this.option(\"editAlphaChannel\") ? this._makeRgba(this._currentColor) : this._currentColor.toHex();\r\n this._makeTransparentBackground(this._$currentColor, this._currentColor);\r\n if (colorValue === previousValue) {\r\n this._updateByDrag = false\r\n } else {\r\n this.option(\"value\", colorValue)\r\n }\r\n },\r\n cancelColor: function() {\r\n this._initColorAndOpacity();\r\n this._refreshMarkup()\r\n },\r\n _updateColor: function(isHex, args) {\r\n var rgba;\r\n var newColor;\r\n if (isHex) {\r\n newColor = this._validateHex(\"#\" + this._hexInput.option(\"value\"))\r\n } else {\r\n rgba = this._validateRgb();\r\n if (this._alphaChannelInput) {\r\n rgba.push(this._alphaChannelInput.option(\"value\"));\r\n newColor = \"rgba(\" + rgba.join(\", \") + \")\"\r\n } else {\r\n newColor = \"rgb(\" + rgba.join(\", \") + \")\"\r\n }\r\n }\r\n if (!this._suppressEditorsValueUpdating) {\r\n this._currentColor = new Color(newColor);\r\n this._saveValueChangeEvent(args.event);\r\n this.applyColor();\r\n this._refreshMarkup()\r\n }\r\n },\r\n _validateHex: function(hex) {\r\n return this._currentColor.isValidHex(hex) ? hex : this._currentColor.toHex()\r\n },\r\n _validateRgb: function() {\r\n var r = this._rgbInputs[0].option(\"value\");\r\n var g = this._rgbInputs[1].option(\"value\");\r\n var b = this._rgbInputs[2].option(\"value\");\r\n if (!this._currentColor.isValidRGB(r, g, b)) {\r\n r = this._currentColor.r;\r\n g = this._currentColor.g;\r\n b = this._currentColor.b\r\n }\r\n return [r, g, b]\r\n },\r\n _refreshMarkup: function() {\r\n this._placeHueScaleHandle();\r\n this._placePaletteHandle();\r\n this._updateColorParamsAndColorPreview();\r\n this._$palette.css(\"backgroundColor\", this._currentColor.getPureColor().toHex());\r\n if (this._$alphaChannelHandle) {\r\n this._updateColorTransparency(this._currentColor.a);\r\n this._placeAlphaChannelHandle()\r\n }\r\n },\r\n _updateColorParamsAndColorPreview: function() {\r\n this._suppressEditorsValueUpdating = true;\r\n this._hexInput.option(\"value\", this._currentColor.toHex().replace(\"#\", \"\"));\r\n this._rgbInputs[0].option(\"value\", this._currentColor.r);\r\n this._rgbInputs[1].option(\"value\", this._currentColor.g);\r\n this._rgbInputs[2].option(\"value\", this._currentColor.b);\r\n this._suppressEditorsValueUpdating = false;\r\n if (this.option(\"editAlphaChannel\")) {\r\n this._makeCSSLinearGradient.call(this, this._$alphaChannelScale);\r\n this._alphaChannelInput.option(\"value\", this._currentColor.a)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"value\":\r\n this._setCurrentColor(value);\r\n if (!this._updateByDrag) {\r\n this._refreshMarkup()\r\n }\r\n this._updateByDrag = false;\r\n this.callBase(args);\r\n break;\r\n case \"matchValue\":\r\n this._setBaseColor(value);\r\n break;\r\n case \"onEnterKeyPressed\":\r\n this._initEnterKeyPressedAction();\r\n break;\r\n case \"editAlphaChannel\":\r\n if (this._$colorPickerContainer) {\r\n this._renderHtmlRows(\"editAlphaChannel\");\r\n this._renderAlphaChannelElements()\r\n }\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"stylingMode\":\r\n this._renderControls();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxColorView\", ColorView);\r\nexport default ColorView;\r\n","/**\r\n * DevExtreme (esm/ui/color_box/color_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Color from \"../../color\";\r\nimport ColorView from \"./color_view\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nvar COLOR_BOX_CLASS = \"dx-colorbox\";\r\nvar COLOR_BOX_INPUT_CLASS = COLOR_BOX_CLASS + \"-input\";\r\nvar COLOR_BOX_INPUT_CONTAINER_CLASS = COLOR_BOX_INPUT_CLASS + \"-container\";\r\nvar COLOR_BOX_COLOR_RESULT_PREVIEW_CLASS = COLOR_BOX_CLASS + \"-color-result-preview\";\r\nvar COLOR_BOX_COLOR_IS_NOT_DEFINED = COLOR_BOX_CLASS + \"-color-is-not-defined\";\r\nvar COLOR_BOX_OVERLAY_CLASS = COLOR_BOX_CLASS + \"-overlay\";\r\nvar COLOR_BOX_CONTAINER_CELL_CLASS = \"dx-colorview-container-cell\";\r\nvar COLOR_BOX_BUTTON_CELL_CLASS = \"dx-colorview-button-cell\";\r\nvar COLOR_BOX_BUTTONS_CONTAINER_CLASS = \"dx-colorview-buttons-container\";\r\nvar COLOR_BOX_APPLY_BUTTON_CLASS = \"dx-colorview-apply-button\";\r\nvar COLOR_BOX_CANCEL_BUTTON_CLASS = \"dx-colorview-cancel-button\";\r\nvar colorEditorPrototype = ColorView.prototype;\r\nvar colorUtils = {\r\n makeTransparentBackground: colorEditorPrototype._makeTransparentBackground.bind(colorEditorPrototype),\r\n makeRgba: colorEditorPrototype._makeRgba.bind(colorEditorPrototype)\r\n};\r\nvar ColorBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var arrowHandler = function(e) {\r\n e.stopPropagation();\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._enterKeyHandler,\r\n leftArrow: arrowHandler,\r\n rightArrow: arrowHandler,\r\n upArrow: function(e) {\r\n if (!this.option(\"opened\")) {\r\n e.preventDefault();\r\n return false\r\n }\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!this.option(\"opened\") && !e.altKey) {\r\n e.preventDefault();\r\n return false\r\n }\r\n if (!this.option(\"opened\") && e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n editAlphaChannel: false,\r\n applyValueMode: \"useButtons\",\r\n keyStep: 1,\r\n fieldTemplate: null,\r\n buttonsLocation: \"bottom after\"\r\n })\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n this._updateColorViewValue(this.option(\"value\"))\r\n }\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n width: \"\"\r\n })\r\n },\r\n _contentReadyHandler: function() {\r\n this._createColorView();\r\n this._addPopupBottomClasses()\r\n },\r\n _addPopupBottomClasses: function() {\r\n var $popupBottom = this._popup.bottomToolbar();\r\n if ($popupBottom) {\r\n $popupBottom.addClass(COLOR_BOX_CONTAINER_CELL_CLASS).addClass(COLOR_BOX_BUTTON_CELL_CLASS).find(\".dx-toolbar-items-container\").addClass(COLOR_BOX_BUTTONS_CONTAINER_CLASS);\r\n $popupBottom.find(\".dx-popup-done\").addClass(COLOR_BOX_APPLY_BUTTON_CLASS);\r\n $popupBottom.find(\".dx-popup-cancel\").addClass(COLOR_BOX_CANCEL_BUTTON_CLASS)\r\n }\r\n },\r\n _createColorView: function() {\r\n this._popup.$overlayContent().addClass(COLOR_BOX_OVERLAY_CLASS);\r\n var $colorView = $(\"<div>\").appendTo(this._popup.$content());\r\n this._colorView = this._createComponent($colorView, ColorView, this._colorViewConfig())\r\n },\r\n _applyNewColor: function(value) {\r\n this.option(\"value\", value);\r\n if (value) {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, value)\r\n }\r\n if (this._colorViewEnterKeyPressed) {\r\n this.close();\r\n this._colorViewEnterKeyPressed = false\r\n }\r\n },\r\n _colorViewConfig: function() {\r\n var that = this;\r\n return {\r\n value: that.option(\"value\"),\r\n matchValue: that.option(\"value\"),\r\n editAlphaChannel: that.option(\"editAlphaChannel\"),\r\n applyValueMode: that.option(\"applyValueMode\"),\r\n focusStateEnabled: that.option(\"focusStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n target: this._input(),\r\n onEnterKeyPressed: function(_ref) {\r\n var {\r\n event: event\r\n } = _ref;\r\n that._colorViewEnterKeyPressed = true;\r\n if (that._colorView.option(\"value\") !== that.option(\"value\")) {\r\n that._saveValueChangeEvent(event);\r\n that._applyNewColor(that._colorView.option(\"value\"));\r\n that.close()\r\n }\r\n },\r\n onValueChanged: function(_ref2) {\r\n var {\r\n event: event,\r\n value: value,\r\n previousValue: previousValue\r\n } = _ref2;\r\n var instantlyMode = \"instantly\" === that.option(\"applyValueMode\");\r\n var isOldValue = colorUtils.makeRgba(value) === previousValue;\r\n var changesApplied = instantlyMode || that._colorViewEnterKeyPressed;\r\n var valueCleared = that._shouldSaveEmptyValue;\r\n if (isOldValue || !changesApplied || valueCleared) {\r\n return\r\n }\r\n if (event) {\r\n that._saveValueChangeEvent(event)\r\n }\r\n that._applyNewColor(value)\r\n }\r\n }\r\n },\r\n _enterKeyHandler: function(e) {\r\n var newValue = this._input().val();\r\n var {\r\n value: value,\r\n editAlphaChannel: editAlphaChannel\r\n } = this.option();\r\n var oldValue = value && editAlphaChannel ? colorUtils.makeRgba(value) : value;\r\n if (!newValue) {\r\n return false\r\n }\r\n var color = new Color(newValue);\r\n if (color.colorIsInvalid) {\r\n this._input().val(oldValue);\r\n return\r\n }\r\n if (newValue !== oldValue) {\r\n this._applyColorFromInput(newValue);\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this.option(\"editAlphaChannel\") ? colorUtils.makeRgba(newValue) : newValue)\r\n }\r\n if (this._colorView) {\r\n var colorViewValue = this._colorView.option(\"value\");\r\n if (value !== colorViewValue) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", colorViewValue)\r\n }\r\n }\r\n this.close();\r\n return false\r\n },\r\n _applyButtonHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this._applyNewColor(this._colorView.option(\"value\"));\r\n this.callBase()\r\n },\r\n _cancelButtonHandler: function() {\r\n this._resetInputValue();\r\n this.callBase()\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._colorView])\r\n },\r\n _init: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(COLOR_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._input().addClass(COLOR_BOX_INPUT_CLASS);\r\n this._renderColorPreview()\r\n },\r\n _renderColorPreview: function() {\r\n this.$element().wrapInner($(\"<div>\").addClass(COLOR_BOX_INPUT_CONTAINER_CLASS));\r\n this._$colorBoxInputContainer = this.$element().children().eq(0);\r\n this._$colorResultPreview = $(\"<div>\").addClass(COLOR_BOX_COLOR_RESULT_PREVIEW_CLASS).appendTo(this._$textEditorInputContainer);\r\n if (!this.option(\"value\")) {\r\n this._$colorBoxInputContainer.addClass(COLOR_BOX_COLOR_IS_NOT_DEFINED)\r\n } else {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, this.option(\"value\"))\r\n }\r\n },\r\n _renderValue: function() {\r\n var {\r\n value: value,\r\n editAlphaChannel: editAlphaChannel\r\n } = this.option();\r\n var shouldConvertToColor = value && editAlphaChannel;\r\n var text = shouldConvertToColor ? colorUtils.makeRgba(value) : value;\r\n this.option(\"text\", text);\r\n return this.callBase()\r\n },\r\n _resetInputValue: function() {\r\n var $input = this._input();\r\n var value = this.option(\"value\");\r\n $input.val(value);\r\n this._updateColorViewValue(value)\r\n },\r\n _updateColorViewValue: function(value) {\r\n if (this._colorView) {\r\n this._colorView.option({\r\n value: value,\r\n matchValue: value\r\n })\r\n }\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var value = this._input().val();\r\n if (value) {\r\n value = this._applyColorFromInput(value);\r\n this._updateColorViewValue(value)\r\n }\r\n this.callBase(e, value)\r\n },\r\n _applyColorFromInput: function(value) {\r\n var {\r\n editAlphaChannel: editAlphaChannel\r\n } = this.option();\r\n var newColor = new Color(value);\r\n if (newColor.colorIsInvalid) {\r\n this._resetInputValue();\r\n return this.option(\"value\")\r\n }\r\n if (editAlphaChannel) {\r\n return colorUtils.makeRgba(value)\r\n }\r\n return value\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._shouldSaveEmptyValue\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var name = args.name;\r\n switch (name) {\r\n case \"value\":\r\n this._$colorBoxInputContainer.toggleClass(COLOR_BOX_COLOR_IS_NOT_DEFINED, !value);\r\n if (value) {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, value)\r\n } else {\r\n this._$colorResultPreview.removeAttr(\"style\")\r\n }\r\n if (null === value) {\r\n this._shouldSaveEmptyValue = true\r\n }\r\n this._updateColorViewValue(value);\r\n this._shouldSaveEmptyValue = false;\r\n this.callBase(args);\r\n break;\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n this.callBase(args);\r\n this._popup && this._addPopupBottomClasses();\r\n break;\r\n case \"editAlphaChannel\":\r\n case \"keyStep\":\r\n if (this._colorView) {\r\n this._colorView.option(name, value)\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxColorBox\", ColorBox);\r\nexport default ColorBox;\r\n","/**\r\n * DevExtreme (esm/ui/color_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ColorBox from \"./color_box/color_box\";\r\nexport default ColorBox;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxColorBox from 'devextreme/ui/color_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxColorBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxColorBox]\r\n\r\n */\r\nclass DxColorBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'applyButtonTextChange' },\r\n { emit: 'applyValueModeChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'cancelButtonTextChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'editAlphaChannelChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldTemplateChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'keyStepChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.applyButtonText]\r\n \r\n */\r\n get applyButtonText() {\r\n return this._getOption('applyButtonText');\r\n }\r\n set applyButtonText(value) {\r\n this._setOption('applyButtonText', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.applyValueMode]\r\n \r\n */\r\n get applyValueMode() {\r\n return this._getOption('applyValueMode');\r\n }\r\n set applyValueMode(value) {\r\n this._setOption('applyValueMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.cancelButtonText]\r\n \r\n */\r\n get cancelButtonText() {\r\n return this._getOption('cancelButtonText');\r\n }\r\n set cancelButtonText(value) {\r\n this._setOption('cancelButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.editAlphaChannel]\r\n \r\n */\r\n get editAlphaChannel() {\r\n return this._getOption('editAlphaChannel');\r\n }\r\n set editAlphaChannel(value) {\r\n this._setOption('editAlphaChannel', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.fieldTemplate]\r\n \r\n */\r\n get fieldTemplate() {\r\n return this._getOption('fieldTemplate');\r\n }\r\n set fieldTemplate(value) {\r\n this._setOption('fieldTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.keyStep]\r\n \r\n */\r\n get keyStep() {\r\n return this._getOption('keyStep');\r\n }\r\n set keyStep(value) {\r\n this._setOption('keyStep', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxColorBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxColorBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxColorBoxComponent.ɵfac = function DxColorBoxComponent_Factory(t) { return new (t || DxColorBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxColorBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxColorBoxComponent, selectors: [[\"dx-color-box\"]], contentQueries: function DxColorBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, hostBindings: function DxColorBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxColorBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxColorBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", applyButtonText: \"applyButtonText\", applyValueMode: \"applyValueMode\", buttons: \"buttons\", cancelButtonText: \"cancelButtonText\", deferRendering: \"deferRendering\", disabled: \"disabled\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", editAlphaChannel: \"editAlphaChannel\", elementAttr: \"elementAttr\", fieldTemplate: \"fieldTemplate\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", keyStep: \"keyStep\", label: \"label\", labelMode: \"labelMode\", name: \"name\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showDropDownButton: \"showDropDownButton\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", applyButtonTextChange: \"applyButtonTextChange\", applyValueModeChange: \"applyValueModeChange\", buttonsChange: \"buttonsChange\", cancelButtonTextChange: \"cancelButtonTextChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", editAlphaChannelChange: \"editAlphaChannelChange\", elementAttrChange: \"elementAttrChange\", fieldTemplateChange: \"fieldTemplateChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", keyStepChange: \"keyStepChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", nameChange: \"nameChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showClearButtonChange: \"showClearButtonChange\", showDropDownButtonChange: \"showDropDownButtonChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxColorBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxColorBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-color-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], applyButtonText: [{\r\n type: Input\r\n }], applyValueMode: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], cancelButtonText: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], editAlphaChannel: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fieldTemplate: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], keyStep: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], applyButtonTextChange: [{\r\n type: Output\r\n }], applyValueModeChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], cancelButtonTextChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], editAlphaChannelChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldTemplateChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], keyStepChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }] }); })();\r\nclass DxColorBoxModule {\r\n}\r\n/** @nocollapse */ DxColorBoxModule.ɵfac = function DxColorBoxModule_Factory(t) { return new (t || DxColorBoxModule)(); };\r\n/** @nocollapse */ DxColorBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxColorBoxModule });\r\n/** @nocollapse */ DxColorBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxColorBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxColorBoxComponent\r\n ],\r\n exports: [\r\n DxColorBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxColorBoxModule, { declarations: [DxColorBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxColorBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxColorBoxComponent, DxColorBoxModule };\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../core/utils/type\";\r\nvar DataConverter = Class.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n each(items, (function(_, item) {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n }))\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n }))\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (function(_, node) {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n }));\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n each(data, (function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n }));\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n }))\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n }))\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../ui/widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport query from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport HierarchicalDataConverter from \"./ui.data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n }));\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n }))\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, (function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n }))\r\n }\r\n }))\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n }))\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, (function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }))\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n }))\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, (function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n }))\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n each(keys, (function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n }))\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n }))\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n }));\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return query(this._dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n }));\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n }));\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n ! function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort,\r\n langParams: this.options.langParams\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n }));\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport HierarchicalDataAdapter from \"./ui.data_adapter\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n isFunction,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _getItemExtraPropNames: noop,\r\n _initDynamicTemplates: function() {\r\n var fields = [\"text\", \"html\", \"items\", \"icon\"].concat(this._getItemExtraPropNames());\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(this._addContent.bind(this), fields, this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _addContent: function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData))\r\n },\r\n _getLinkContainer: function(iconContainer, textContainer, _ref) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = _ref;\r\n var linkAttributes = isObject(linkAttr) ? linkAttr : {};\r\n return $(\"<a>\").addClass(ITEM_URL_CLASS).attr(_extends({}, linkAttributes, {\r\n href: url\r\n })).append(iconContainer).append(textContainer)\r\n },\r\n _getIconContainer: function(itemData) {\r\n if (!itemData.icon) {\r\n return\r\n }\r\n var $imageContainer = getImageContainer(itemData.icon);\r\n if ($imageContainer.is(\"img\")) {\r\n $imageContainer.attr(\"alt\", \"\".concat(this.NAME, \" item icon\"))\r\n }\r\n return $imageContainer\r\n },\r\n _getTextContainer: function(itemData) {\r\n return $(\"<span>\").text(itemData.text)\r\n },\r\n _initAccessors: function() {\r\n var that = this;\r\n each(this._getAccessors(), (function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n }));\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n }));\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n } else if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n }));\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar DX_MENU_ITEM_CAPTION_URL_CLASS = \"\".concat(DX_MENU_ITEM_CAPTION_CLASS, \"-with-url\");\r\nvar DX_ICON_WITH_URL_CLASS = \"dx-icon-with-url\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelectionAttribute() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getLinkContainer(iconContainer, textContainer, _ref) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = _ref;\r\n null === iconContainer || void 0 === iconContainer ? void 0 : iconContainer.addClass(DX_ICON_WITH_URL_CLASS);\r\n null === textContainer || void 0 === textContainer ? void 0 : textContainer.addClass(DX_MENU_ITEM_CAPTION_URL_CLASS);\r\n return super._getLinkContainer(iconContainer, textContainer, {\r\n linkAttr: linkAttr,\r\n url: url\r\n })\r\n }\r\n _addContent($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n if (url) {\r\n $container.html(html);\r\n var link = this._getLinkContainer(this._getIconContainer(itemData), this._getTextContainer(itemData), itemData);\r\n $container.append(link)\r\n } else {\r\n super._addContent($container, itemData)\r\n }\r\n $container.append(this._getPopoutContainer(itemData));\r\n this._addContentClasses(itemData, $container.parent())\r\n }\r\n _getTextContainer(itemData) {\r\n var {\r\n text: text\r\n } = itemData;\r\n if (!text) {\r\n return\r\n }\r\n var $itemContainer = $(\"<span>\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemText = isPlainObject(itemData) ? text : String(itemData);\r\n return $itemContainer.text(itemText)\r\n }\r\n _getItemExtraPropNames() {\r\n return [\"url\", \"linkAttr\"]\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"<div>\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"<span>\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"<ul>\");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"<li>\");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelectionAttribute($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelectionAttribute($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelectionAttribute($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"<li>\").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n beforeExecute: this._itemClick,\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _itemClick(actionArgs) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = actionArgs.args[0];\r\n var $itemElement = this._getItemElementByEventArgs(event);\r\n var link = $itemElement.find(\".\".concat(ITEM_URL_CLASS)).get(0);\r\n if (itemData.url && link) {\r\n link.click()\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectAllowed(item) {\r\n var isSelectByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"<div>\").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"<div>\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\");\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxContextMenu from 'devextreme/ui/context_menu';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiItemModule, DxoShowEventModule, DxoShowSubmenuModeModule, DxoDelayModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxContextMenu]\r\n\r\n */\r\nclass DxContextMenuComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'positioning', emit: 'onPositioning' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'cssClassChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disabledExprChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemsExprChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectByClickChange' },\r\n { emit: 'selectedExprChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'showEventChange' },\r\n { emit: 'showSubmenuModeChange' },\r\n { emit: 'submenuDirectionChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'targetChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxContextMenuOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.cssClass]\r\n \r\n */\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.disabledExpr]\r\n \r\n */\r\n get disabledExpr() {\r\n return this._getOption('disabledExpr');\r\n }\r\n set disabledExpr(value) {\r\n this._setOption('disabledExpr', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.itemsExpr]\r\n \r\n */\r\n get itemsExpr() {\r\n return this._getOption('itemsExpr');\r\n }\r\n set itemsExpr(value) {\r\n this._setOption('itemsExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.selectByClick]\r\n \r\n */\r\n get selectByClick() {\r\n return this._getOption('selectByClick');\r\n }\r\n set selectByClick(value) {\r\n this._setOption('selectByClick', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.selectedExpr]\r\n \r\n */\r\n get selectedExpr() {\r\n return this._getOption('selectedExpr');\r\n }\r\n set selectedExpr(value) {\r\n this._setOption('selectedExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.showEvent]\r\n \r\n */\r\n get showEvent() {\r\n return this._getOption('showEvent');\r\n }\r\n set showEvent(value) {\r\n this._setOption('showEvent', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.showSubmenuMode]\r\n \r\n */\r\n get showSubmenuMode() {\r\n return this._getOption('showSubmenuMode');\r\n }\r\n set showSubmenuMode(value) {\r\n this._setOption('showSubmenuMode', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.submenuDirection]\r\n \r\n */\r\n get submenuDirection() {\r\n return this._getOption('submenuDirection');\r\n }\r\n set submenuDirection(value) {\r\n this._setOption('submenuDirection', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.target]\r\n \r\n */\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n /**\r\n * [descr:dxContextMenuOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxContextMenu(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxContextMenuComponent.ɵfac = function DxContextMenuComponent_Factory(t) { return new (t || DxContextMenuComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxContextMenuComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxContextMenuComponent, selectors: [[\"dx-context-menu\"]], contentQueries: function DxContextMenuComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", cssClass: \"cssClass\", dataSource: \"dataSource\", disabled: \"disabled\", disabledExpr: \"disabledExpr\", displayExpr: \"displayExpr\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", items: \"items\", itemsExpr: \"itemsExpr\", itemTemplate: \"itemTemplate\", position: \"position\", rtlEnabled: \"rtlEnabled\", selectByClick: \"selectByClick\", selectedExpr: \"selectedExpr\", selectedItem: \"selectedItem\", selectionMode: \"selectionMode\", showEvent: \"showEvent\", showSubmenuMode: \"showSubmenuMode\", submenuDirection: \"submenuDirection\", tabIndex: \"tabIndex\", target: \"target\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onPositioning: \"onPositioning\", onSelectionChanged: \"onSelectionChanged\", onShowing: \"onShowing\", onShown: \"onShown\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationChange: \"animationChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", cssClassChange: \"cssClassChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", disabledExprChange: \"disabledExprChange\", displayExprChange: \"displayExprChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemsChange: \"itemsChange\", itemsExprChange: \"itemsExprChange\", itemTemplateChange: \"itemTemplateChange\", positionChange: \"positionChange\", rtlEnabledChange: \"rtlEnabledChange\", selectByClickChange: \"selectByClickChange\", selectedExprChange: \"selectedExprChange\", selectedItemChange: \"selectedItemChange\", selectionModeChange: \"selectionModeChange\", showEventChange: \"showEventChange\", showSubmenuModeChange: \"showSubmenuModeChange\", submenuDirectionChange: \"submenuDirectionChange\", tabIndexChange: \"tabIndexChange\", targetChange: \"targetChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxContextMenuComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxContextMenuComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-context-menu',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], cssClass: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disabledExpr: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemsExpr: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectByClick: [{\r\n type: Input\r\n }], selectedExpr: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], showEvent: [{\r\n type: Input\r\n }], showSubmenuMode: [{\r\n type: Input\r\n }], submenuDirection: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], target: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPositioning: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], cssClassChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disabledExprChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemsExprChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectByClickChange: [{\r\n type: Output\r\n }], selectedExprChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], showEventChange: [{\r\n type: Output\r\n }], showSubmenuModeChange: [{\r\n type: Output\r\n }], submenuDirectionChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], targetChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxContextMenuModule {\r\n}\r\n/** @nocollapse */ DxContextMenuModule.ɵfac = function DxContextMenuModule_Factory(t) { return new (t || DxContextMenuModule)(); };\r\n/** @nocollapse */ DxContextMenuModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxContextMenuModule });\r\n/** @nocollapse */ DxContextMenuModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxContextMenuModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxContextMenuComponent\r\n ],\r\n exports: [\r\n DxContextMenuComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxContextMenuModule, { declarations: [DxContextMenuComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxContextMenuComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowEventModule,\r\n DxoShowSubmenuModeModule,\r\n DxoDelayModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxContextMenuComponent, DxContextMenuModule };\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\nexport function saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element, preventScroll) {\r\n isHiddenFocusing = true;\r\n element.focus({\r\n preventScroll: preventScroll\r\n });\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_accessibility.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var _a;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"<span>\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_a = this.component) || void 0 === _a ? void 0 : _a.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"<div>\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: $cell => $cell && $cell.find(\".\".concat(COLUMN_INDICATORS_CLASS)),\r\n _getIndicatorElements($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/utils/update_views_borders.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n isDefined\r\n} from \"../../../../../core/utils/type\";\r\nvar CLASSES = {\r\n borderedTop: \"dx-bordered-top-view\",\r\n borderedBottom: \"dx-bordered-bottom-view\"\r\n};\r\nvar getFirstVisibleViewElement = _ref => {\r\n var {\r\n columnHeadersView: columnHeadersView,\r\n rowsView: rowsView\r\n } = _ref;\r\n if (null === columnHeadersView || void 0 === columnHeadersView ? void 0 : columnHeadersView.isVisible()) {\r\n return columnHeadersView.element()\r\n }\r\n return rowsView.element()\r\n};\r\nvar getLastVisibleViewElement = _ref2 => {\r\n var {\r\n filterPanelView: filterPanelView,\r\n footerView: footerView,\r\n rowsView: rowsView\r\n } = _ref2;\r\n if (null === filterPanelView || void 0 === filterPanelView ? void 0 : filterPanelView.isVisible()) {\r\n return filterPanelView.element()\r\n }\r\n if (null === footerView || void 0 === footerView ? void 0 : footerView.isVisible()) {\r\n return footerView.element()\r\n }\r\n return rowsView.element()\r\n};\r\nvar getViewElementWithClass = (viewsWithBorder, className) => {\r\n var _a;\r\n var borderedView = Object.values(viewsWithBorder).find(view => {\r\n var _a;\r\n return null === (_a = null === view || void 0 === view ? void 0 : view.element()) || void 0 === _a ? void 0 : _a.hasClass(className)\r\n });\r\n return null !== (_a = null === borderedView || void 0 === borderedView ? void 0 : borderedView.element()) && void 0 !== _a ? _a : null\r\n};\r\nvar shouldUpdateBorders = (viewName, viewsWithBorder) => {\r\n var _a;\r\n if (!Object.keys(viewsWithBorder).includes(viewName)) {\r\n return false\r\n }\r\n var {\r\n rowsView: rowsView\r\n } = viewsWithBorder, otherViews = __rest(viewsWithBorder, [\"rowsView\"]);\r\n if (!isDefined(null === (_a = null === rowsView || void 0 === rowsView ? void 0 : rowsView.element) || void 0 === _a ? void 0 : _a.call(rowsView))) {\r\n return false\r\n }\r\n return Object.values(otherViews).filter(view => {\r\n var _a;\r\n return null === (_a = null === view || void 0 === view ? void 0 : view.isVisible) || void 0 === _a ? void 0 : _a.call(view)\r\n }).every(view => isDefined(null === view || void 0 === view ? void 0 : view.element()))\r\n};\r\nexport var updateViewsBorders = (viewName, viewsWithBorder) => {\r\n if (!shouldUpdateBorders(viewName, viewsWithBorder)) {\r\n return\r\n }\r\n var $oldFirst = getViewElementWithClass(viewsWithBorder, CLASSES.borderedTop);\r\n var $oldLast = getViewElementWithClass(viewsWithBorder, CLASSES.borderedBottom);\r\n var $newFirst = getFirstVisibleViewElement(viewsWithBorder);\r\n var $newLast = getLastVisibleViewElement(viewsWithBorder);\r\n if ($oldFirst && !$oldFirst.is($newFirst)) {\r\n $oldFirst.removeClass(CLASSES.borderedTop)\r\n }\r\n if ($oldLast && !$oldLast.is($newLast)) {\r\n $oldLast.removeClass(CLASSES.borderedBottom)\r\n }\r\n if (!$newFirst.hasClass(CLASSES.borderedTop)) {\r\n $newFirst.addClass(CLASSES.borderedTop)\r\n }\r\n if (!$newLast.hasClass(CLASSES.borderedBottom)) {\r\n $newLast.addClass(CLASSES.borderedBottom)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_modules.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n updateViewsBorders\r\n} from \"./views/utils/update_views_borders\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore() {},\r\n ctor(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true;\r\n flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init() {},\r\n callbackNames() {},\r\n callbackFlags() {},\r\n publicMethods() {},\r\n beginUpdate() {\r\n this._updateLockCount++\r\n },\r\n endUpdate() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option(name) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption(name, value) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n }\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config;\r\n return\r\n },\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\".concat(componentName.slice(2).toLowerCase()).concat(className ? \"-\".concat(className) : \"\")\r\n },\r\n getWidgetContainerClass() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid($element) {\r\n var $gridElement = $element.closest(\".\".concat(this.getWidgetContainerClass())).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n getViews() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore() {},\r\n _resizeCore() {},\r\n _parentElement() {\r\n return this._$parent\r\n },\r\n ctor(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element() {\r\n return this._$element\r\n },\r\n getElementHeight() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var {\r\n offsetHeight: offsetHeight\r\n } = $element.get(0);\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: () => true,\r\n getTemplate(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n _getBorderedViews() {\r\n return {\r\n columnHeadersView: this.component._views.columnHeadersView,\r\n rowsView: this.component._views.rowsView,\r\n filterPanelView: this.component._views.filterPanelView,\r\n footerView: this.component._views.footerView\r\n }\r\n },\r\n render($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"<div>\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (this.component._views) {\r\n updateViewsBorders(this.name, this._getBorderedViews())\r\n }\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n var deferred = this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n if (deferred) {\r\n deferred.done(() => {\r\n this.renderCompleted.fire(options)\r\n })\r\n } else {\r\n this.renderCompleted.fire(options)\r\n }\r\n }\r\n },\r\n resize() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\n\r\nfunction getExtendedTypes(types) {\r\n var moduleExtenders = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var extendTypes = {};\r\n Object.entries(moduleExtenders).forEach(_ref => {\r\n var [name, extender] = _ref;\r\n var currentType = types[name];\r\n if (currentType) {\r\n if (isFunction(extender)) {\r\n extendTypes[name] = extender(currentType)\r\n } else {\r\n var classType = currentType;\r\n extendTypes[name] = classType.inherit(extender)\r\n }\r\n }\r\n });\r\n return extendTypes\r\n}\r\n\r\nfunction registerPublicMethods(componentInstance, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (_, methodName) => {\r\n if (moduleItem[methodName]) {\r\n if (!componentInstance[methodName]) {\r\n componentInstance[methodName] = function() {\r\n return moduleItem[methodName](...arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n}\r\nexport function processModules(componentInstance, componentClass) {\r\n var {\r\n modules: modules\r\n } = componentClass;\r\n var {\r\n modulesOrder: modulesOrder\r\n } = componentClass;\r\n\r\n function createModuleItems(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (name, moduleType) => {\r\n var moduleItem = new moduleType(componentInstance);\r\n moduleItem.name = name;\r\n registerPublicMethods(componentInstance, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n }\r\n if (modulesOrder) {\r\n modules.sort((module1, module2) => {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }\r\n var rootControllerTypes = {};\r\n var rootViewTypes = {};\r\n modules.forEach(_ref2 => {\r\n var {\r\n name: moduleName,\r\n controllers: controllers = {},\r\n views: views = {}\r\n } = _ref2;\r\n Object.entries(controllers).forEach(_ref3 => {\r\n var [name, type] = _ref3;\r\n var _a;\r\n if (rootControllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, Controller))) {\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n rootControllerTypes[name] = type\r\n });\r\n Object.entries(views).forEach(_ref4 => {\r\n var [name, type] = _ref4;\r\n var _a;\r\n if (rootViewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n rootViewTypes[name] = type\r\n })\r\n });\r\n var moduleExtenders = modules.filter(_ref5 => {\r\n var {\r\n extenders: extenders\r\n } = _ref5;\r\n return !!extenders\r\n });\r\n var controllerTypes = moduleExtenders.reduce((types, _ref6) => {\r\n var {\r\n extenders: extenders\r\n } = _ref6;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.controllers))\r\n }, rootControllerTypes);\r\n var viewTypes = moduleExtenders.reduce((types, _ref7) => {\r\n var {\r\n extenders: extenders\r\n } = _ref7;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.views))\r\n }, rootViewTypes);\r\n componentInstance._controllers = createModuleItems(controllerTypes);\r\n componentInstance._views = createModuleItems(viewTypes)\r\n}\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule(name, module) {\r\n var {\r\n modules: modules\r\n } = this;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module)\r\n },\r\n registerModulesOrder(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule(name) {\r\n this.modules = grep(this.modules, module => module.name !== name)\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n toComparable\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../data/data_source/utils\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../../data/utils\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport formatHelper from \"../../../format_helper\";\r\nimport LoadPanel from \"../../../ui/load_panel\";\r\nimport sharedFiltering from \"../../../ui/shared/filtering\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: value => value && value.getFullYear(),\r\n month: value => value && value.getMonth() + 1,\r\n day: value => value && value.getDate(),\r\n quarter: value => value && Math.floor(value.getMonth() / 3) + 1,\r\n hour: value => value && value.getHours(),\r\n minute: value => value && value.getMinutes(),\r\n second: value => value && value.getSeconds()\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n }\r\n if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[\"\".concat(summaryItem.summaryType, \"OtherColumn\")] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: valueText => displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText,\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue) && toComparable(filter1.selectedFilterOperation) === toComparable(filter2.selectedFilterOperation)\r\n }\r\n return toComparable(filter1) == toComparable(filter2)\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\".concat(noDataClass)).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"<span>\").addClass(noDataClass)\r\n }\r\n if (!noDataElement.parent().is($element)) {\r\n noDataElement.appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"<div>\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters(filters, operation) {\r\n var _a;\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_a = filters[i]) || void 0 === _a ? void 0 : _a.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n }\r\n if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n return\r\n },\r\n checkChanges(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: (column, target) => ({\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }),\r\n getDisplayValue(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n }\r\n if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n }\r\n if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\";\r\n default:\r\n return\r\n }\r\n },\r\n getHeaderFilterGroupParameters(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (index, interval) => {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n });\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n },\r\n getPointsByColumns(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: () => ({\r\n allowRenderToDetachedContainer: true,\r\n render(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"<div>\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }),\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done(() => {\r\n element.select()\r\n })\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\".concat(controller.getWidgetContainerClass())).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: window => window.devicePixelRatio || 1,\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n if (!dataSource) {\r\n return []\r\n }\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var previousTake;\r\n var previousSkip;\r\n var sliceItems = (items, loadOptions) => {\r\n var _a;\r\n var start = null !== (_a = loadOptions.skip) && void 0 !== _a ? _a : 0;\r\n var end = loadOptions.take ? start + loadOptions.take : items.length;\r\n return items.slice(start, end)\r\n };\r\n var lookupDataSource = _extends(_extends({}, lookupDataSourceOptions), {\r\n __dataGridSourceFilter: filter,\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n var canUseCache = cachedUniqueRelevantItems && (!hasGroupPaging || loadOptions.skip === previousSkip && loadOptions.take === previousTake);\r\n if (canUseCache) {\r\n d.resolve(sliceItems(cachedUniqueRelevantItems, loadOptions))\r\n } else {\r\n previousSkip = loadOptions.skip;\r\n previousTake = loadOptions.take;\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(hasGroupPaging ? items : sliceItems(items, loadOptions))\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([]);\r\n return\r\n }\r\n var filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n var newDataSource = new DataSource(_extends(_extends(_extends({}, lookupDataSourceOptions), loadOptions), {\r\n filter: this.combineFilters([filter, loadOptions.filter], \"and\"),\r\n paginate: false\r\n }));\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n },\r\n logHeaderFilterDeprecatedWarningIfNeed(component) {\r\n var logWarning = component._logDeprecatedOptionWarning.bind(component);\r\n if (isDefined(component.option(\"headerFilter.allowSearch\"))) {\r\n logWarning(\"headerFilter.allowSearch\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.enabled\"\r\n })\r\n }\r\n if (isDefined(component.option(\"headerFilter.searchTimeout\"))) {\r\n logWarning(\"headerFilter.searchTimeout\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.timeout\"\r\n })\r\n }\r\n var specificName = \"dxPivotGrid\" === component.NAME ? \"dataSource.fields\" : \"columns\";\r\n var columns = component.option(specificName);\r\n if (!Array.isArray(columns)) {\r\n return\r\n }\r\n var logSpecificDeprecatedWarningIfNeed = columns => {\r\n columns.forEach(column => {\r\n var _a;\r\n var headerFilter = column.headerFilter || {};\r\n if (isDefined(headerFilter.allowSearch)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.allowSearch\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.enabled\")\r\n })\r\n }\r\n if (isDefined(headerFilter.searchMode)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.searchMode\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.mode\")\r\n })\r\n }\r\n if (null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length) {\r\n logSpecificDeprecatedWarningIfNeed(column.columns)\r\n }\r\n })\r\n };\r\n logSpecificDeprecatedWarningIfNeed(columns)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_columns_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../../core/element_data\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iteratorUtils from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isRenderer,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../../events/double_click\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport columnStateMixin from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(() => {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", e => {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? \"\".concat(width, \"px\") : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar removeHandler = function(templateDeferred) {\r\n templateDeferred.resolve()\r\n};\r\nexport var normalizeWidth = width => {\r\n if (\"number\" === typeof width) {\r\n return \"\".concat(width.toFixed(3), \"px\")\r\n }\r\n if (\"adaptiveHidden\" === width) {\r\n return HIDDEN_COLUMNS_WIDTH\r\n }\r\n return width\r\n};\r\nvar viewWithColumnStateMixin = modules.View.inherit(columnStateMixin);\r\nexport class ColumnsView extends viewWithColumnStateMixin {\r\n _createScrollableOptions() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n }\r\n _updateCell($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (Array.isArray(column.elementAttr)) {\r\n column.elementAttr.forEach(_ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n $cell.attr(name, value)\r\n })\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n }\r\n _createRow(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n }\r\n _isAltRow(row) {\r\n return row && row.dataIndex % 2 === 1\r\n }\r\n _createTable(columns, isAppend) {\r\n var $table = $(\"<table>\").addClass(this.addWidgetPrefix(TABLE_CLASS)).addClass(this.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.attr(\"id\", \"dx-\".concat(new Guid)).append(this._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"<thead>\").append(\"<tr>\"))\r\n }\r\n this.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n this.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"<tbody>\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", e => {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (this.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction(args => {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = event => {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\".concat(FORM_FIELD_ITEM_CONTENT_CLASS));\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = this.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = this._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellClick\", options)\r\n });\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(this, $table);\r\n return $table\r\n }\r\n _rowPointerDown() {}\r\n _rowClick() {}\r\n _rowDblClick() {}\r\n _createColGroup(columns) {\r\n var colgroupElement = $(\"<colgroup>\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n }\r\n _createCol(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"<col>\");\r\n setWidth(col, width);\r\n return col\r\n }\r\n renderDelayedTemplates(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n }\r\n _renderDelayedTemplatesCoreAsync(templates) {\r\n if (templates.length) {\r\n var templateTimeout = getWindow().setTimeout(() => {\r\n this._templateTimeouts.delete(templateTimeout);\r\n this._renderDelayedTemplatesCore(templates, true)\r\n });\r\n this._templateTimeouts.add(templateTimeout)\r\n }\r\n }\r\n _renderDelayedTemplatesCore(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var {\r\n options: options\r\n } = templateParameters;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this.needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n }\r\n _processTemplate(template, options) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n }\r\n renderTemplate(container, template, options, allowRenderToDetachedContainer, change) {\r\n var _a;\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var {\r\n column: column\r\n } = options;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n if (this.isDisposed()) {\r\n templateDeferred.reject()\r\n } else {\r\n templateDeferred.resolve()\r\n }\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var columnAsync = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n var async = null !== (_a = options.renderAsync) && void 0 !== _a ? _a : columnAsync;\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n this._templateDeferreds.add(templateDeferred);\r\n eventsEngine.on(container, removeEvent, removeHandler.bind(null, templateDeferred))\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise().always(() => {\r\n this._templateDeferreds.delete(templateDeferred)\r\n })\r\n }\r\n _getBodies(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n }\r\n _needWrapRow($tableElement) {\r\n var _a;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null === (_a = this._getBodies($tableElement)) || void 0 === _a ? void 0 : _a.filter(\".\".concat(ROW_CLASS)).length)\r\n }\r\n _wrapRowIfNeed($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"<tbody>\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n }\r\n _appendRow($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n }\r\n _resizeCore() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n _renderCore(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n }\r\n _renderTable(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n }\r\n _renderRows($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n }\r\n _renderRow($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n }\r\n _needRenderCell(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n }\r\n _renderCells($row, options) {\r\n var columnIndex = 0;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n columns: columns\r\n } = options;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n }\r\n _updateCells($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((columnIndex, index) => {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n }\r\n _renderCell($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n }\r\n _renderCellContent($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n }\r\n _getCellTemplate(options) {}\r\n _getRows(change) {\r\n return []\r\n }\r\n _getCellOptions(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n }\r\n _addWatchMethod(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(watcher => {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n }\r\n _cellPrepared(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n }\r\n _rowPrepared($row, options, row) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = visibleColumns.map(column => column.visibleWidth || column.width);\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n getCellIndex($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n }\r\n getTableElements() {\r\n return this._tableElement || $()\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n return this._tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n this._tableElement = tableElement\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n case \"keyboardNavigation\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n }\r\n init() {\r\n this._scrollLeft = -1;\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._delayedTemplates = [];\r\n this._templateDeferreds = new Set;\r\n this._templatesCache = {};\r\n this._templateTimeouts = new Set;\r\n this.createAction(\"onCellClick\");\r\n this.createAction(\"onRowClick\");\r\n this.createAction(\"onCellDblClick\");\r\n this.createAction(\"onRowDblClick\");\r\n this.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: e => {\r\n this._afterRowPrepared(e)\r\n }\r\n });\r\n this._columnsController.columnsChanged.add(this._columnOptionChanged.bind(this));\r\n this._dataController && this._dataController.changed.add(this._handleDataChanged.bind(this))\r\n }\r\n _afterRowPrepared(e) {}\r\n _handleDataChanged() {}\r\n callbackNames() {\r\n return [\"scrollChanged\"]\r\n }\r\n _updateScrollLeftPosition() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n scrollTo(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\".concat(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS))).not(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n }\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return null === (_a = this._tableElement) || void 0 === _a ? void 0 : _a.parent()\r\n }\r\n _removeContent(isFixedTableRendering) {\r\n var $scrollContainer = this._getContent(isFixedTableRendering);\r\n if (null === $scrollContainer || void 0 === $scrollContainer ? void 0 : $scrollContainer.length) {\r\n $scrollContainer.remove()\r\n }\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = $(\"<div>\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n }\r\n needWaitAsyncTemplates() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n }\r\n waitAsyncTemplates() {\r\n var forceWaiting = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var result = new Deferred;\r\n var needWaitAsyncTemplates = forceWaiting || this.needWaitAsyncTemplates();\r\n if (!needWaitAsyncTemplates) {\r\n return result.resolve()\r\n }\r\n var waitTemplatesRecursion = () => when.apply(this, Array.from(this._templateDeferreds)).done(() => {\r\n if (this.isDisposed()) {\r\n result.reject()\r\n } else if (this._templateDeferreds.size > 0) {\r\n waitTemplatesRecursion()\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n waitTemplatesRecursion();\r\n return result.promise()\r\n }\r\n _updateContent($newTableElement, change, isFixedTableRendering) {\r\n return this.waitAsyncTemplates().done(() => {\r\n this._removeContent(isFixedTableRendering);\r\n this.setTableElement($newTableElement, isFixedTableRendering);\r\n this._wrapTableInScrollContainer($newTableElement, isFixedTableRendering)\r\n })\r\n }\r\n _findContentElement() {}\r\n _getWidths($cellElements) {\r\n if (!$cellElements) {\r\n return []\r\n }\r\n var result = [];\r\n var cellElements = $cellElements.toArray();\r\n cellElements.forEach(cell => {\r\n var width = cell.offsetWidth;\r\n if (cell.getBoundingClientRect) {\r\n var rect = getBoundingRect(cell);\r\n if (rect.width > cell.offsetWidth - 1) {\r\n width = rect.width\r\n }\r\n }\r\n result.push(width)\r\n });\r\n return result\r\n }\r\n getColumnWidths($tableElement) {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = null !== $tableElement && void 0 !== $tableElement ? $tableElement : this.getTableElement();\r\n if ($tableElement) {\r\n var $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isErrorRow = $row.hasClass(ERROR_ROW_CLASS);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n var isRelevantRow = !isGroupRow && !isDetailRow && !isErrorRow;\r\n if (isRowVisible && isRelevantRow) {\r\n var $cells = $row.children(\"td\");\r\n var result = this._getWidths($cells);\r\n return result\r\n }\r\n }\r\n }\r\n return []\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n return columnIndex\r\n }\r\n setColumnWidths(_ref2) {\r\n var {\r\n widths: widths,\r\n optionNames: optionNames\r\n } = _ref2;\r\n var $tableElement = this.getTableElement();\r\n if (!(null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) || !widths) {\r\n return\r\n }\r\n var columns = this.getColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n columns.forEach((column, columnIndex) => {\r\n if (columnAutoWidth && column.width && !column.command) {\r\n var width = getWidthStyle(column.visibleWidth || column.width);\r\n var minWidth = getWidthStyle(column.minWidth || width);\r\n var $rows = $tableElement.children().children(\".dx-row\").not(\".\".concat(DETAIL_ROW_CLASS));\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var visibleIndex = this.getVisibleColumnIndex(columnIndex, rowIndex);\r\n if (visibleIndex >= 0) {\r\n var $row = $rows.eq(rowIndex);\r\n var $cell = $row.hasClass(GROUP_ROW_CLASS) ? $row.find(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\")) : $row.find(\"td\").eq(visibleIndex);\r\n if ($cell.length) {\r\n var cell = $cell.get(0);\r\n setCellWidth(cell, column, width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n })\r\n }\r\n getCellElements(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if (!(null === $cells || void 0 === $cells ? void 0 : $cells.length) || columnVisibleIndex < 0) {\r\n return\r\n }\r\n var $cell = $cells.eq(columnVisibleIndex);\r\n return $cell.length > 0 ? $cell : void 0\r\n }\r\n _getRowElement(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (_, tableElement) => {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n return\r\n }\r\n getCellElement(rowIndex, columnIdentifier) {\r\n var $cell = this._getCellElement(rowIndex, columnIdentifier);\r\n if ($cell) {\r\n return getPublicElement($cell)\r\n }\r\n return\r\n }\r\n getRowElement(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n }\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n }\r\n getColumnElements() {}\r\n getColumns(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n }\r\n getCell(cellPosition, rows, cells) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = cells || this.getCellElements(cellPosition.rowIndex);\r\n if ((null === $cells || void 0 === $cells ? void 0 : $cells.length) > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n }\r\n getRowsCount() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n }\r\n _getRowElementsCore(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\".concat(ROW_CLASS));\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > \" + \".\".concat(ROW_CLASS, \", > .\").concat(ROW_CLASS))\r\n }\r\n return $()\r\n }\r\n _getRowElements(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n }\r\n getRowIndex($row) {\r\n return this._getRowElements().index($row)\r\n }\r\n getBoundingRect() {}\r\n getName() {}\r\n setScrollerSpacing(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n isScrollbarVisible(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n isDisposed() {\r\n var _a;\r\n return null === (_a = this.component) || void 0 === _a ? void 0 : _a._disposed\r\n }\r\n dispose() {\r\n var _a, _b;\r\n if (hasWindow()) {\r\n var window = getWindow();\r\n null === (_a = this._templateTimeouts) || void 0 === _a ? void 0 : _a.forEach(templateTimeout => window.clearTimeout(templateTimeout));\r\n null === (_b = this._templateTimeouts) || void 0 === _b ? void 0 : _b.clear()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_headers/m_column_headers.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar LINK = \"dx-link\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: () => ({\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }),\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"<div>\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\".concat(that.addWidgetPrefix(CELL_CONTENT_CLASS)));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\".concat(that._getIndicatorClassName(\"headerFilter\"))).length)\r\n }\r\n var members = {\r\n _createTable() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var {\r\n caption: caption\r\n } = column;\r\n var needCellContent = !column.command || caption && \"expand\" !== column.command;\r\n if (\"empty\" === column.command) {\r\n that._renderEmptyMessage($container, options)\r\n } else if (needCellContent) {\r\n var $content = createCellContent(that, $container, options);\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _renderEmptyMessage($container, options) {\r\n var textEmpty = this._getEmptyHeaderText();\r\n if (!textEmpty) {\r\n $container.html(\" \");\r\n return\r\n }\r\n var $cellContent = createCellContent(this, $container, options);\r\n var needSplit = textEmpty.includes(\"{0}\");\r\n if (needSplit) {\r\n var [leftPart, rightPart] = textEmpty.split(\"{0}\");\r\n var columnChooserTitle = messageLocalization.format(\"dxDataGrid-emptyHeaderColumnChooserText\");\r\n var columnChooserView = this.component.getView(\"columnChooserView\");\r\n var $link = $(\"<a>\").text(columnChooserTitle).addClass(LINK);\r\n eventsEngine.on($link, \"click\", this.createAction(() => columnChooserView.showColumnChooser()));\r\n $cellContent.append(domAdapter.createTextNode(leftPart)).append($link).append(domAdapter.createTextNode(rightPart))\r\n } else {\r\n $cellContent.text(textEmpty)\r\n }\r\n },\r\n _getEmptyHeaderText() {\r\n var hasHiddenColumns = !!this.component.getView(\"columnChooserView\").hasHiddenColumns();\r\n var hasGroupedColumns = !!this.component.getView(\"headerPanel\").hasGroupedColumns();\r\n switch (true) {\r\n case hasHiddenColumns && hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\");\r\n case hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithGroupPanelText\");\r\n case hasHiddenColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserText\");\r\n default:\r\n return \"\"\r\n }\r\n },\r\n _getHeaderTemplate(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var {\r\n column: column\r\n } = options;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n if (!cellOptions.column.type) {\r\n this.setAria(\"role\", \"columnheader\", $cell)\r\n }\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", \"\".concat(messageLocalization.format(\"dxDataGrid-ariaColumn\"), \" \").concat(cellOptions.column.caption), $cell)\r\n }\r\n }\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore() {\r\n var $container = this.element();\r\n var change = {};\r\n if (this._tableElement && !this._dataController.isLoaded() && !this._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(this.addWidgetPrefix(HEADERS_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\")).empty();\r\n this.setAria(\"role\", \"presentation\", $container);\r\n var deferred = this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n if (this.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n this.callBase.apply(this, arguments);\r\n return deferred\r\n },\r\n _renderRows() {\r\n if (this._dataController.isLoaded() || this._hasRowElements) {\r\n this.callBase.apply(this, arguments);\r\n this._hasRowElements = true\r\n }\r\n },\r\n _renderRow($table, options) {\r\n var rowIndex = 1 === this.getRowCount() ? null : options.row.rowIndex;\r\n options.columns = this.getColumns(rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: elementOptions => elementOptions && elementOptions.visible,\r\n _alignCaptionByCenter($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\".concat(VISIBILITY_HIDDEN_CLASS)).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\".concat(this.addWidgetPrefix(CELL_CONTENT_CLASS))))\r\n }\r\n },\r\n _updateCell($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\".concat(VISIBILITY_HIDDEN_CLASS, \")\"))\r\n },\r\n _isSortableElement: () => true,\r\n getHeadersRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\".concat(HEADER_ROW_CLASS));\r\n return $headerRows && $headerRows.toArray().reduce((sum, headerRow) => sum + getHeight(headerRow), 0) || 0\r\n },\r\n getHeaderElement(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (_, column) => {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return $(result)\r\n }\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var {\r\n rowIndex: rowIndex\r\n } = $row[0];\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging(column) {\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(rowIndex);\r\n var isReorderingEnabled = this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\");\r\n return isReorderingEnabled && column.allowReordering && columns.length > 1\r\n },\r\n getBoundingRect() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: () => \"headers\",\r\n getColumnCount() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return\r\n },\r\n getRowCount() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity(columnIndex, value, rowIndex) {\r\n var i;\r\n var columnElements;\r\n var rowCount = this.getRowCount();\r\n var columns = this._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = (column, index) => {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n this.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = this.getCellElements(i);\r\n if (columnElements) {\r\n var rowColumns = this.getColumns(i);\r\n rowColumns.forEach(setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport modules from \"../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport default _extends(_extends(_extends({}, modules), gridCoreUtils), {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_headers.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nexport var USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nexport var IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nexport var GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nexport var DETAIL_COMMAND_COLUMN_NAME = \"detailExpand\";\r\nexport var COLUMN_OPTION_REGEXP = /columns\\[(\\d+)\\]\\.?/gi;\r\nexport var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n};\r\nexport var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n};\r\nexport var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n};\r\nexport var GROUP_LOCATION = \"group\";\r\nexport var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isString,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport numberLocalization from \"../../../../localization/number\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_INDEX_OPTIONS,\r\n DEFAULT_COLUMN_OPTIONS,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n IGNORE_COLUMN_OPTION_NAMES,\r\n USER_STATE_FIELD_NAMES,\r\n USER_STATE_FIELD_NAMES_15_1\r\n} from \"./const\";\r\nexport var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n};\r\nvar globalColumnId = 1;\r\nexport var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n};\r\nexport var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (index, columnOptions) => {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n};\r\nexport var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n};\r\nexport var getChildrenByBandColumn = function getChildrenByBandColumn(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n};\r\nexport var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (_, column) => {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n};\r\nexport var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n};\r\nexport var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n};\r\nexport var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n};\r\nexport var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n};\r\nexport var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n }\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n }\r\n return e.valueText || \"\"\r\n};\r\nexport var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n};\r\nexport var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n};\r\nexport var updateColumnIndexes = function(that) {\r\n each(that._columns, (index, column) => {\r\n column.index = index\r\n });\r\n each(that._columns, (index, column) => {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n each(that._commandColumns, (index, column) => {\r\n column.index = -(index + 1)\r\n })\r\n};\r\nexport var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, column => {\r\n var {\r\n grouped: grouped\r\n } = column;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n};\r\nexport var updateColumnSortIndexes = function(that, currentColumn) {\r\n each(that._columns, (index, column) => {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, column => !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder))\r\n};\r\nexport var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n};\r\nexport var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n};\r\nexport var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n};\r\n\r\nfunction checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n}\r\nexport var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n};\r\nexport var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n};\r\nexport var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n};\r\nexport function assignColumns(that, columns) {\r\n that._previousColumns = that._columns;\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n}\r\nexport var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var _a;\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var {\r\n changeTypes: changeTypes\r\n } = columnChanges;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var {\r\n optionNames: optionNames\r\n } = columnChanges;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n if (isDefined(columnIndex)) {\r\n null !== (_a = columnChanges.columnIndices) && void 0 !== _a ? _a : columnChanges.columnIndices = [];\r\n if (isDefined(columnChanges.columnIndex)) {\r\n columnChanges.columnIndices.push(columnChanges.columnIndex)\r\n }\r\n columnChanges.columnIndices.push(columnIndex)\r\n }\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n};\r\nexport var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that._reinitAfterLookupChanges = null === columnChanges || void 0 === columnChanges ? void 0 : columnChanges.optionNames.lookup;\r\n that.reinit();\r\n that._reinitAfterLookupChanges = void 0\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n};\r\nexport var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n};\r\nexport var fireOptionChanged = function(that, options) {\r\n var {\r\n value: value\r\n } = options;\r\n var {\r\n optionName: optionName\r\n } = options;\r\n var {\r\n prevValue: prevValue\r\n } = options;\r\n var {\r\n fullOptionName: fullOptionName\r\n } = options;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n};\r\nexport var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value, {\r\n maxDepth: 5\r\n })) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n};\r\nexport function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n}\r\nexport var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n};\r\nexport var defaultSetCellValue = function(data, value) {\r\n if (!this.dataField) {\r\n return\r\n }\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n};\r\nexport var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (_, column) => {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n};\r\nexport var getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var {\r\n columnParentByIndex: columnParentByIndex\r\n } = bandColumnsCache;\r\n that._columns.forEach(column => {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(column => !column.visible);\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n};\r\nexport var isCustomCommandColumn = (that, commandColumn) => {\r\n var customCommandColumns = that._columns.filter(column => column.type === commandColumn.type);\r\n return !!customCommandColumns.length\r\n};\r\nexport var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n};\r\nexport var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, expandColumn => extend({}, expandColumn, {\r\n rowspan: rowspan\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n};\r\nexport var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n};\r\nexport var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\".concat(str)\r\n }\r\n return str\r\n};\r\nexport var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n};\r\nexport var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\nexport var convertOwnerBandToColumnReference = columns => {\r\n columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n};\r\nexport var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n};\r\nexport var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\".concat(column[identifierOptionName]) === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n};\r\nexport var sortColumns = (columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((column1, column2) => {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n });\r\n return columns\r\n};\r\nexport var strictParseNumber = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../../../../core/config\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n orderEach\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_OPTION_REGEXP,\r\n COMMAND_EXPAND_CLASS,\r\n DATATYPE_OPERATIONS,\r\n DETAIL_COMMAND_COLUMN_NAME,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n MAX_SAFE_INTEGER,\r\n USER_STATE_FIELD_NAMES\r\n} from \"./const\";\r\nimport {\r\n addExpandColumn,\r\n applyUserState,\r\n assignColumns,\r\n columnOptionCore,\r\n convertOwnerBandToColumnReference,\r\n createColumn,\r\n createColumnsFromDataSource,\r\n createColumnsFromOptions,\r\n defaultSetCellValue,\r\n digitsCount,\r\n findColumn,\r\n fireColumnsChanged,\r\n getAlignmentByDataType,\r\n getChildrenByBandColumn,\r\n getColumnByIndexes,\r\n getColumnIndexByVisibleIndex,\r\n getCustomizeTextByDataType,\r\n getDataColumns,\r\n getFixedPosition,\r\n getParentBandColumns,\r\n getRowCount,\r\n getSerializationFormat,\r\n getValueDataType,\r\n isColumnFixed,\r\n isCustomCommandColumn,\r\n isSortOrderValid,\r\n mergeColumns,\r\n moveColumnToGroup,\r\n numberToString,\r\n processBandColumns,\r\n processExpandColumns,\r\n resetBandColumnsCache,\r\n resetColumnsCache,\r\n setFilterOperationsAsDefaultValues,\r\n sortColumns,\r\n strictParseNumber,\r\n updateColumnChanges,\r\n updateColumnGroupIndexes,\r\n updateIndexes,\r\n updateSerializers\r\n} from \"./m_columns_controller_utils\";\r\nexport class ColumnsController extends modules.Controller {\r\n _getExpandColumnOptions() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n }\r\n _getFirstItems(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n }\r\n _endUpdateCore() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n }\r\n init(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }\r\n addExpandColumn(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n }\r\n callbackNames() {\r\n return [\"columnsChanged\"]\r\n }\r\n getColumnByPath(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(COLUMN_OPTION_REGEXP, (_, columnIndex) => {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((column, index) => column && column.columns && column.columns[index], {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n }\r\n optionChanged(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _columnOptionChanged(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(COLUMN_OPTION_REGEXP, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n }\r\n _updateRequireResize(args) {\r\n var {\r\n component: component\r\n } = this;\r\n if (\"width\" === args.fullName.replace(COLUMN_OPTION_REGEXP, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n }\r\n applyDataSource(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n }\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n }\r\n reset() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n }\r\n resetColumnsCache() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n }\r\n reinit(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n }\r\n isInitialized() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n }\r\n isDataSourceApplied() {\r\n return this._dataSourceApplied\r\n }\r\n getCommonSettings(column) {\r\n var _a, _b;\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = null !== (_a = this.option(\"grouping\")) && void 0 !== _a ? _a : {};\r\n var groupPanelOptions = null !== (_b = this.option(\"groupPanel\")) && void 0 !== _b ? _b : {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n }\r\n isColumnOptionUsed(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n }\r\n isAllDataTypesDefined(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n getColumns() {\r\n return this._columns\r\n }\r\n isBandColumnsUsed() {\r\n return this.getColumns().some(column => column.isBand)\r\n }\r\n getGroupColumns() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n }\r\n _shouldReturnVisibleColumns() {\r\n return true\r\n }\r\n _compileVisibleColumns(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n }\r\n getVisibleColumns(rowIndex, isBase) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n }\r\n getFixedColumns(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n }\r\n getFilteringColumns() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n }\r\n getColumnIndexOffset() {\r\n return 0\r\n }\r\n _getFixedColumnsCore() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n }\r\n _isColumnFixing() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (_, column) => {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n }\r\n _getExpandColumnsCore() {\r\n return this.getGroupColumns()\r\n }\r\n getExpandColumns() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n }\r\n getBandColumnsCache() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(column => {\r\n var {\r\n ownerBand: ownerBand\r\n } = column;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n }\r\n _isColumnVisible(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n }\r\n _isColumnInGroupPanel(column) {\r\n return isDefined(column.groupIndex) && !column.showWhenGrouped\r\n }\r\n hasVisibleDataColumns() {\r\n var columns = this._columns;\r\n return columns.some(column => {\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n var isCommand = !!column.command;\r\n return isVisible && !isInGroupPanel && !isCommand\r\n })\r\n }\r\n _compileVisibleColumnsCore() {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var columns = mergeColumns(this, this._columns, this._commandColumns, true);\r\n processBandColumns(this, columns, bandColumnsCache);\r\n var indexedColumns = this._getIndexedColumns(columns);\r\n var visibleColumns = this._getVisibleColumnsFromIndexed(indexedColumns);\r\n var isDataColumnsInvisible = !this.hasVisibleDataColumns();\r\n if (isDataColumnsInvisible && this._columns.length) {\r\n visibleColumns[visibleColumns.length - 1].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return visibleColumns\r\n }\r\n _getIndexedColumns(columns) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var rowCount = this.getRowCount();\r\n var columnDigitsCount = digitsCount(columns.length);\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n for (var i = 0; i < rowCount; i += 1) {\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n columns.forEach(column => {\r\n var _a, _b, _c, _d;\r\n var {\r\n visibleIndex: visibleIndex\r\n } = column;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n if (isVisible && !isInGroupPanel) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = null !== (_b = null === (_a = parentBandColumns[0]) || void 0 === _a ? void 0 : _a.fixed) && void 0 !== _b ? _b : column.fixed;\r\n column.fixedPosition = null !== (_d = null === (_c = parentBandColumns[0]) || void 0 === _c ? void 0 : _c.fixedPosition) && void 0 !== _d ? _d : column.fixedPosition;\r\n if (column.fixed) {\r\n var isDefaultCommandColumn = !!column.command && !isCustomCommandColumn(this, column);\r\n var isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && !isDefaultCommandColumn) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n indexedColumns = isFixedToEnd ? positiveIndexedColumns[rowIndex][2] : positiveIndexedColumns[rowIndex][0]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (var _i = parentBandColumns.length - 1; _i >= 0; _i -= 1) {\r\n visibleIndex = numberToString(parentBandColumns[_i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column)\r\n }\r\n });\r\n return {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n }\r\n }\r\n _getVisibleColumnsFromIndexed(_ref) {\r\n var _this = this;\r\n var {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n } = _ref;\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var expandColumns = mergeColumns(this, this.getExpandColumns(), this._columns);\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var _loop = function(rowIndex) {\r\n result.push([]);\r\n orderEach(negativeIndexedColumns[rowIndex], (_, columns) => {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n var positiveIndexedRowColumns = positiveIndexedColumns[rowIndex];\r\n positiveIndexedRowColumns.forEach(columnsByFixing => {\r\n orderEach(columnsByFixing, (_, columnsByVisibleIndex) => {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns <= rowIndex) {\r\n rowspanExpandColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, DETAIL_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns <= rowIndex) {\r\n rowspanGroupColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n };\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n _loop(rowIndex)\r\n }\r\n result.push(getDataColumns(result));\r\n return result\r\n }\r\n getInvisibleColumns(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (_, column) => {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n }\r\n getChooserColumns(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return sortColumns(columnChooserColumns, sortOrder)\r\n }\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n }\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n }\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n moveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(this, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n }\r\n changeSortOrder(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n getSortDataSourceParameters(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n }\r\n getGroupDataSourceParameters(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n }\r\n refresh(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var {\r\n lookup: lookup\r\n } = this;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n }\r\n _updateColumnOptions(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n if (this._reinitAfterLookupChanges && this._previousColumns) {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = this._previousColumns[columnIndex].selector.originalCallback\r\n } else {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = column.selector\r\n }\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (_, calculateCallbackName) => {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n });\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n }\r\n updateColumnDataTypes(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (index, column) => {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n }\r\n _customizeColumns(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(column => isObject(column.ownerBand));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n }\r\n updateColumns(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n }\r\n _updateChanges(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n }\r\n updateSortingGrouping(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (index, column) => {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var {\r\n selector: selector\r\n } = sortParameters[i];\r\n var {\r\n isExpanded: isExpanded\r\n } = sortParameters[i];\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (index, group) => {\r\n that._columns.push(group.selector)\r\n });\r\n each(sortParameters, (index, sort) => {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n }\r\n updateFilter(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue;\r\n filter[0].selectedFilterOperation = filter.selectedFilterOperation\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n }\r\n columnCount() {\r\n return this._columns ? this._columns.length : 0\r\n }\r\n columnOption(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n }\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n } else if (isObject(option)) {\r\n each(option, (optionName, value) => {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n clearSorting() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0);\r\n delete findColumn(this._columns, i).sortOrder\r\n }\r\n this.endUpdate()\r\n }\r\n clearGrouping() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n }\r\n getVisibleIndex(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n getVisibleIndexByColumn(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n }\r\n getVisibleColumnIndex(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n }\r\n addColumn(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n }\r\n deleteColumn(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(this._columns);\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n }\r\n addCommandColumn(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n }\r\n getUserState() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n }\r\n setName(column) {\r\n column.name = column.name || column.dataField || column.type\r\n }\r\n setUserState(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n }\r\n _checkColumns() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _a;\r\n var {\r\n name: name\r\n } = column;\r\n var isBand = null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n }\r\n _createCalculatedColumnOptions(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var {\r\n dataField: dataField\r\n } = columnOptions;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = strictParseNumber(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.defaultFilterOperation = \"=\";\r\n calculatedColumnOptions.createFilterExpression = function(filterValue, selectedFilterOperation) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue;\r\n result.selectedFilterOperation = selectedFilterOperation\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: () => null\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update() {\r\n var that = this;\r\n var {\r\n dataSource: dataSource\r\n } = that;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done(data => {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, optionName => {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\".concat(optionName.charAt(0).toUpperCase()).concat(optionName.substr(1));\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n }\r\n getRowCount() {\r\n this._rowCount = this._rowCount || getRowCount(this);\r\n return this._rowCount\r\n }\r\n getRowIndex(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n }\r\n getChildrenByBandColumn(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(column => column.visible && !column.command).sort((column1, column2) => column1.visibleIndex - column2.visibleIndex)\r\n }\r\n return result\r\n }\r\n isParentBandColumn(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (_, bandColumn) => {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n isParentColumnVisible(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (_, bandColumn) => {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n }\r\n getColumnId(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\".concat(column.type)\r\n }\r\n return \"command:\".concat(column.command)\r\n }\r\n return column.index\r\n }\r\n getCustomizeTextByDataType(dataType) {\r\n return getCustomizeTextByDataType(dataType)\r\n }\r\n getHeaderContentAlignment(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n}\r\nexport var columnsControllerModule = {\r\n defaultOptions: () => ({\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }),\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_columns_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: () => extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n }),\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../../core/utils/array_compare\";\r\nimport {\r\n deferRender,\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport DataHelperMixin from \"../../../../data_helper\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\".concat(optionName), value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n};\r\nvar ControllerWithDataMixin = modules.Controller.inherit(DataHelperMixin);\r\nexport class DataController extends ControllerWithDataMixin {\r\n init() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = this.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add(error => that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n }));\r\n that._refreshDataSource();\r\n this.postCtor()\r\n }\r\n _getPagingOptionValue(optionName) {\r\n return this._dataSource[optionName]()\r\n }\r\n callbackNames() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n }\r\n callbackFlags(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n }\r\n reset() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n }\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n return true\r\n }\r\n optionChanged(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isReady() {\r\n return !this._isLoading\r\n }\r\n getDataSource() {\r\n return this._dataSource && this._dataSource._dataSource\r\n }\r\n getCombinedFilter(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n }\r\n combinedFilter(filter, returnDataField) {\r\n if (!this._dataSource) {\r\n return filter\r\n }\r\n var combined = null !== filter && void 0 !== filter ? filter : this._dataSource.filter();\r\n var isColumnsTypesDefined = this._columnsController.isDataSourceApplied() || this._columnsController.isAllDataTypesDefined();\r\n if (isColumnsTypesDefined) {\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n combined = additionalFilter ? gridCoreUtils.combineFilters([additionalFilter, combined]) : combined\r\n }\r\n var isRemoteFiltering = this._dataSource.remoteOperations().filtering || returnDataField;\r\n combined = this._columnsController.updateFilter(combined, isRemoteFiltering);\r\n return combined\r\n }\r\n waitReady() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(e) {\r\n var _a;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = e;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_a = storeLoadOptions.filter) || void 0 === _a ? void 0 : _a.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n }\r\n _handleColumnsChanged(e) {\r\n var that = this;\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _a;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering && !this._needApplyFilter) {\r\n that.reload()\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done(() => {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n }).fail(() => {\r\n that._isDataSourceApplying = false\r\n });\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n }\r\n _handleLoadError(e) {\r\n this.dataErrorOccurred.fire(e)\r\n }\r\n _handleDataPushed(changes) {\r\n this.pushed.fire(changes)\r\n }\r\n fireError() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, args))\r\n }\r\n _setPagingOptions(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _initDataSource() {\r\n var oldDataSource = this._dataSource;\r\n super._initDataSource();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always(() => {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n }\r\n _beforeProcessItems(items) {\r\n return items.slice(0)\r\n }\r\n getRowIndexDelta() {\r\n return 0\r\n }\r\n getDataIndex(change) {\r\n var visibleItems = this._items;\r\n var lastVisibleItem = \"append\" === change.changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n return isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var dataIndex = this.getDataIndex(change);\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (index, item) => {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _processItem(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n }\r\n _generateDataItem(data, options) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n }\r\n _processDataItem(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n }\r\n generateDataValues(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n }\r\n _applyChange(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n }\r\n _applyChangeFull(change) {\r\n this._items = change.items.slice(0)\r\n }\r\n _getRowIndices(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((a, b) => a - b);\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n }\r\n _applyChangeUpdate(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (index, rowIndex) => {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n })\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && oldItem.cells) {\r\n var isRowStateEquals = newItem.isExpanded === oldItem.isExpanded && newItem.data.isContinuation === oldItem.data.isContinuation && newItem.data.isContinuationOnNextPage === oldItem.data.isContinuationOnNextPage;\r\n if (isRowStateEquals) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _a;\r\n return \"groupExpand\" !== (null === (_a = cell.column) || void 0 === _a ? void 0 : _a.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n }\r\n return columnIndices\r\n }\r\n _partialUpdateRow(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if ((null === changedColumnIndices || void 0 === changedColumnIndices ? void 0 : changedColumnIndices.length) && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((cell, columnIndex) => {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n });\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n }\r\n _isItemEquals(item1, item2) {\r\n var _a, _b, _c, _d;\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_a = item1.data) || void 0 === _a ? void 0 : _a.isContinuation) === (null === (_b = item2.data) || void 0 === _b ? void 0 : _b.isContinuation) && (null === (_c = item1.data) || void 0 === _c ? void 0 : _c.isContinuationOnNextPage) === (null === (_d = item2.data) || void 0 === _d ? void 0 : _d.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyChangesOnly(change) {\r\n var _a;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_a = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _a ? _a : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return \"\".concat(row.rowType, \",\").concat(JSON.stringify(row.key))\r\n }\r\n return\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((item, index) => {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach(cell => {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n })\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var {\r\n index: index\r\n } = change;\r\n var newItem = change.data;\r\n var {\r\n oldItem: oldItem\r\n } = change;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n }\r\n _correctRowIndices(rowIndex) {}\r\n _afterProcessItems(items, change) {\r\n return items\r\n }\r\n _updateItemsCore(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n var _a;\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = null !== (_a = oldItems[index].cells) && void 0 !== _a ? _a : []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n }\r\n _handleChanging(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(change => {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n })\r\n }\r\n }\r\n updateItems(change, isDataChanged) {\r\n var _a;\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = null !== (_a = change.repaintChangesOnly) && void 0 !== _a ? _a : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n }\r\n loadingOperationTypes() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n }\r\n _fireChanged(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n }\r\n isLoading() {\r\n return this._isLoading || this._isCustomLoading\r\n }\r\n _fireLoadingChanged() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n }\r\n _calculateAdditionalFilter() {\r\n return null\r\n }\r\n _applyFilter() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n resetFilterApplying() {\r\n this._isFilterApplying = false\r\n }\r\n filter(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n }\r\n clearFilter(filterName) {\r\n var columnsController = this._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n this.filter(null);\r\n break;\r\n case \"search\":\r\n this.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n this.filter(null);\r\n this.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n this.component.endUpdate()\r\n }\r\n _fireDataSourceChanged() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n }\r\n _getDataSourceAdapter() {}\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n }\r\n isLocalStore() {\r\n var store = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.store();\r\n return store instanceof ArrayStore\r\n }\r\n isCustomStore(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n }\r\n _createDataSourceAdapter(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (isObject(remoteOperations) && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n }\r\n setDataSource(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n items(byLoaded) {\r\n return this._items\r\n }\r\n isEmpty() {\r\n return !this.items().length\r\n }\r\n pageCount() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n }\r\n dataSource() {\r\n return this._dataSource\r\n }\r\n store() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n }\r\n loadAll(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: skipFilter ? null : that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done(data => {\r\n var _a;\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), null === (_a = options.extra) || void 0 === _a ? void 0 : _a.summary)\r\n }).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((items, extra) => {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n }\r\n getKeyByRowIndex(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n }\r\n getRowIndexByKey(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n }\r\n keyOf(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n }\r\n byKey(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n }\r\n key() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n }\r\n getRowIndexOffset(byLoadedRows) {\r\n return 0\r\n }\r\n getDataByKeys(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (index, key) => {\r\n deferreds.push(that.byKey(key).done(keyData => {\r\n data[index] = keyData\r\n }))\r\n });\r\n when.apply($, deferreds).always(() => {\r\n result.resolve(data)\r\n });\r\n return result\r\n }\r\n pageIndex(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n }\r\n pageSize(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n }\r\n beginCustomLoading(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n }\r\n endCustomLoading() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n }\r\n refresh(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var {\r\n changesOnly: changesOnly\r\n } = options;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always(() => {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always(() => {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n }).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n });\r\n return d.promise()\r\n }\r\n getVisibleRows() {\r\n return this.items()\r\n }\r\n _disposeDataSource() {\r\n if (this._dataSource && this._dataSource._eventsStrategy) {\r\n this._dataSource._eventsStrategy.off(\"loadingChanged\", this.readyWatcher)\r\n }\r\n this.setDataSource(null)\r\n }\r\n dispose() {\r\n this._disposeDataSource();\r\n super.dispose()\r\n }\r\n repaintRows(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n }\r\n skipProcessingPagingChange(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n }\r\n getUserState() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n }\r\n getCachedStoreData() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n isLastPageLoaded() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n load() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.load()\r\n }\r\n reload(reload, changesOnly) {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.reload(reload, changesOnly)\r\n }\r\n push() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.push(...arguments)\r\n }\r\n itemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.itemsCount() : 0\r\n }\r\n totalItemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalItemsCount() : 0\r\n }\r\n hasKnownLastPage() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.hasKnownLastPage() : true\r\n }\r\n isLoaded() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isLoaded() : true\r\n }\r\n totalCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalCount() : 0\r\n }\r\n}\r\nexport var dataControllerModule = {\r\n defaultOptions: () => ({\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nexport default modules.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCoreUtils.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCoreUtils.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload,\r\n reload: false,\r\n paging: false\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n }\r\n if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var _a, _b;\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n options.skip = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip;\r\n options.take = null !== (_b = options.take) && void 0 !== _b ? _b : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_b = null !== (_a = options.take) && void 0 !== _a ? _a : storeLoadOptions.take) && void 0 !== _b ? _b : 0;\r\n var cachedItems = null === (_c = options.cachedData) || void 0 === _c ? void 0 : _c.items;\r\n if (take && cachedItems) {\r\n var skip = null !== (_e = null !== (_d = options.skip) && void 0 !== _d ? _d : storeLoadOptions.skip) && void 0 !== _e ? _e : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var {\r\n items: items\r\n } = cacheItem;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (take) {\r\n result.isContinuationOnNextPage = cacheItem.count > take\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n }\r\n return cacheItem\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n var members = {\r\n init(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (memberName, member) => {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n },\r\n remoteOperations() {\r\n return this._remoteOperations\r\n },\r\n dispose(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo() {\r\n return this.store()\r\n },\r\n _needToCopyDataObject: () => true,\r\n _applyBatch(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(change => !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index);\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n this.push(changes, true)\r\n },\r\n _handleChanging(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n },\r\n _needCleanCacheByOperation(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _a;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_a = options.data) || void 0 === _a ? void 0 : _a.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore(options) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging,\r\n langParams: !remoteOperations.filtering || !remoteOperations.sorting\r\n };\r\n each(options.storeLoadOptions, (optionName, optionValue) => {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded(options) {\r\n var _a, _b;\r\n var {\r\n loadOptions: loadOptions\r\n } = options;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var {\r\n cachedData: cachedData\r\n } = options;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCoreUtils.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_b = null === (_a = options.extra) || void 0 === _a ? void 0 : _a.totalCount) && void 0 !== _b ? _b : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _a, _b, _c, _d;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_b = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip) && void 0 !== _b ? _b : 0;\r\n var take = null !== (_d = null !== (_c = options.take) && void 0 !== _c ? _c : storeLoadOptions.take) && void 0 !== _d ? _d : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(() => {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount() {\r\n return this.totalCount()\r\n },\r\n pageSize() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((data, extra) => {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading() {\r\n return !!this._isCustomLoading\r\n },\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: extend({}, options, {\r\n langParams: null === dataSourceLoadOptions || void 0 === dataSourceLoadOptions ? void 0 : dataSourceLoadOptions.langParams\r\n }),\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (_, optionName) => {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }(() => {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((data, extra) => {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((data, totalCount) => {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n }\r\n return dataSource.load()\r\n },\r\n reload(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData() {\r\n return this._cachedStoreData\r\n }\r\n };\r\n return members\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_source_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: component => new dataSourceAdapterType(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _a, _b;\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n dataControllerModule\r\n} from \"../../grids/grid_core/data_controller/m_data_controller\";\r\nimport gridCore from \"./m_core\";\r\nimport dataSourceAdapterProvider from \"./m_data_source_adapter\";\r\nexport var DataController = null === (_b = null === (_a = dataControllerModule.controllers) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b.inherit({\r\n _getDataSourceAdapter: () => dataSourceAdapterProvider,\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\".concat(SORT_CLASS)).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"<span>\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n this._setAriaSortAttribute(column, ariaSortState, rootElement, hasSeveralSortIndexes);\r\n return $sortIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _setAriaSortAttribute(column, ariaSortState, $rootElement, hasSeveralSortIndexes) {\r\n $rootElement.removeAttr(\"aria-roledescription\");\r\n if (column.isGrouped) {\r\n var description = this.localize(\"dxDataGrid-ariaNotSortedColumn\");\r\n if (isDefined(column.sortOrder)) {\r\n description = \"asc\" === column.sortOrder ? this.localize(\"dxDataGrid-ariaSortedAscendingColumn\") : this.localize(\"dxDataGrid-ariaSortedDescendingColumn\")\r\n }\r\n this.setAria(\"roledescription\", description, $rootElement)\r\n } else if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", $rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, $rootElement);\r\n if (hasSeveralSortIndexes && column.sortIndex >= 0) {\r\n var ariaColumnHeader = messageLocalization.format(\"dxDataGrid-ariaColumnHeader\");\r\n var ariaSortIndex = messageLocalization.format(\"dxDataGrid-ariaSortIndex\", column.sortIndex + 1);\r\n var _description = \"\".concat(ariaColumnHeader, \", \").concat(ariaSortIndex);\r\n this.setAria(\"roledescription\", _description, $rootElement)\r\n }\r\n }\r\n },\r\n _getIndicatorClassName(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n }\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\".concat(SORT_NONE_CLASS))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport sortingMixin from \"./m_sorting_mixin\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\",\r\n isGrouped: true\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/sorting.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_rows_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isEmpty\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n setHeight\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./m_columns_view\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\n\r\nfunction isGroupRow(_ref) {\r\n var {\r\n rowType: rowType,\r\n column: column\r\n } = _ref;\r\n return \"group\" === rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command\r\n}\r\n\r\nfunction setWatcher(_ref2) {\r\n var {\r\n element: element,\r\n watch: watch,\r\n getter: getter,\r\n callBack: callBack\r\n } = _ref2;\r\n if (watch) {\r\n var dispose = watch(getter, callBack);\r\n eventsEngine.on(element, removeEvent, dispose)\r\n }\r\n}\r\nvar defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var {\r\n text: text\r\n } = options;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n};\r\nvar getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0\r\n};\r\nexport class RowsView extends ColumnsView {\r\n _getDefaultTemplate(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n }\r\n _getDefaultGroupTemplate(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var {\r\n data: data\r\n } = options;\r\n var text = \"\".concat(options.column.caption, \": \").concat(options.text);\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \".concat(gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts))\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \". \").concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \")\")\r\n }\r\n }\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n }\r\n _update(change) {}\r\n _updateCell($cell, options) {\r\n if (isGroupRow(options)) {\r\n $cell.addClass(GROUP_CELL_CLASS)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var template;\r\n if (isGroupRow(options)) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n }\r\n _createRow(row, tag) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAriaExpandedAttribute($row, row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowPrepared($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n setWatcher({\r\n element: $row.get(0),\r\n watch: rowOptions.watch,\r\n getter: () => this._isAltRow(row),\r\n callBack: value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n }\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n setWatcher({\r\n element: $row.get(0),\r\n watch: rowOptions.watch,\r\n getter: () => rowOptions.rowIndex,\r\n callBack: () => this._setAriaRowIndex(rowOptions, $row)\r\n })\r\n }\r\n super._rowPrepared.apply(this, arguments)\r\n }\r\n _setAriaRowIndex(row, $row) {\r\n var {\r\n component: component\r\n } = this;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n }\r\n setAriaExpandedAttribute($row, row) {\r\n var description = row.isExpanded ? this.localize(\"dxDataGrid-ariaExpandedRow\") : this.localize(\"dxDataGrid-ariaCollapsedRow\");\r\n this.setAria(\"roledescription\", description, $row)\r\n }\r\n _afterRowPrepared(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n }\r\n _renderScrollable(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"<div>\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends(_extends({}, e.scrollOffset), {\r\n left: scrollLeft\r\n }), this.name)\r\n }\r\n _renderScrollableCore($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n }\r\n _renderLoadPanel() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return gridCoreUtils.renderLoadPanel.apply(this, arguments)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n }\r\n _updateContent(newTableElement, change, isFixedTableRendering) {\r\n this._contentChanges.push({\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n });\r\n return this.waitAsyncTemplates().done(() => {\r\n var contentChanges = this._contentChanges;\r\n this._contentChanges = [];\r\n contentChanges.forEach(_ref3 => {\r\n var {\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n } = _ref3;\r\n var tableElement = this.getTableElement(isFixedTableRendering);\r\n var contentElement = this._findContentElement(isFixedTableRendering);\r\n var changeType = null === change || void 0 === change ? void 0 : change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (index, rowIndex) => {\r\n var _a;\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var dataChangeType = null === (_a = change.changeTypes) || void 0 === _a ? void 0 : _a[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var _a;\r\n var $rowElements = this._getRowElements(tableElement);\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n switch (dataChangeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = null === (_a = change.columnIndices) || void 0 === _a ? void 0 : _a[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowElements.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowElements.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement, isFixedTableRendering);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._setGridRole(contentElement);\r\n this._renderContent(contentElement, newTableElement, isFixedTableRendering)\r\n }\r\n })\r\n }).fail(() => {\r\n this._contentChanges = []\r\n })\r\n }\r\n _getGridRoleName() {\r\n return \"grid\"\r\n }\r\n _setGridRole($element) {\r\n var _a;\r\n var hasData = !(null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.isEmpty());\r\n var gridRoleName = this._getGridRoleName();\r\n if ((null === $element || void 0 === $element ? void 0 : $element.length) && hasData) {\r\n this.setAria(\"role\", gridRoleName, $element)\r\n }\r\n }\r\n _createEmptyRow(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n }\r\n getFixedColumns() {\r\n throw new Error(\"Method not implemented.\")\r\n }\r\n _appendEmptyRow($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n }\r\n _renderFreeSpaceRow($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n }\r\n _checkRowKeys(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(row => {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n return\r\n })\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n }\r\n _getRowsHeight($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\".concat(FREE_SPACE_CLASS));\r\n return $rowElements.toArray().reduce((sum, row) => sum + getBoundingRect(row).height, 0)\r\n }\r\n _updateRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n }\r\n _findContentElement(isFixedTableRendering) {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n }\r\n _getRowElements(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getFreeSpaceRowElements($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getNoDataText() {\r\n return this.option(\"noDataText\")\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n }\r\n _rowDblClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n }\r\n _getColumnsCountBeforeGroups(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n }\r\n _getGroupCellOptions(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n }\r\n _needWrapRow() {\r\n return super._needWrapRow.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n }\r\n _renderCells($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n super._renderCells($row, options)\r\n }\r\n }\r\n _renderGroupedCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var expandColumn;\r\n var {\r\n columns: columns\r\n } = options;\r\n var {\r\n rowIndex: rowIndex\r\n } = row;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n _renderRows($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n super._renderRows($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n }\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var {\r\n row: row\r\n } = options;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n }\r\n _renderRow($table, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n rowTemplate: rowTemplate\r\n } = this.option();\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n super._renderRow($table, options)\r\n }\r\n }\r\n _renderTable(options) {\r\n var that = this;\r\n var $table = super._renderTable(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n }\r\n _renderCore(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n var deferred = this._updateContent($table, change);\r\n super._renderCore(change);\r\n this._lastColumnWidths = null;\r\n return deferred\r\n }\r\n _getRows(change) {\r\n return change && change.items || this._dataController.items()\r\n }\r\n _getCellOptions(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n data: data\r\n } = row;\r\n var summaryCells = row && row.summaryCells;\r\n var {\r\n value: value\r\n } = options;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = super._getCellOptions(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n }\r\n _setRowsOpacityCore($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (rowIndex, row) => {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getDevicePixelRatio() {\r\n return getWindow().devicePixelRatio\r\n }\r\n renderNoDataText() {\r\n return gridCoreUtils.renderNoDataText.apply(this, arguments)\r\n }\r\n getCellOptions(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n }\r\n getRow(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n return\r\n }\r\n updateFreeSpaceRowHeight($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n }\r\n _getHeightCorrection() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n super.init();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = void 0;\r\n that._contentChanges = [];\r\n dataController.loadingChanged.add((isLoading, messageText) => {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n if (this._scrollLeft >= 0 && !this._dataController.isLoading()) {\r\n this._handleScroll({\r\n component: this.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: this._scrollTop,\r\n left: this._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _handleDataChanged(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n }\r\n contentWidth() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n }\r\n getScrollbarWidth(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n }\r\n _fireColumnResizedCallbacks() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n }\r\n _updateLastRowBorder(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n }\r\n _updateScrollable() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n }\r\n _updateHorizontalScrollPosition() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n }\r\n _resizeCore() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender(() => {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate(() => {\r\n that._updateScrollable()\r\n })\r\n })\r\n }\r\n scrollTo(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n }\r\n height(height) {\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n if (isDefined(height) && $element) {\r\n this.hasHeight(\"auto\" !== height);\r\n setHeight($element, height)\r\n }\r\n }\r\n hasHeight(hasHeight) {\r\n if (0 === arguments.length) {\r\n return !!this._hasHeight\r\n }\r\n this._hasHeight = hasHeight;\r\n return\r\n }\r\n setLoading(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout(() => {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n }\r\n setRowsOpacity(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\".concat(GROUP_ROW_CLASS)) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var $cells = super._getCellElementsCore.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\".concat(GROUP_CELL_CLASS)).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n }\r\n _getBoundaryVisibleItemIndex(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n }\r\n getTopVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n }\r\n getBottomVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n }\r\n getTopVisibleRowData() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n return\r\n }\r\n _scrollToElement($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n }\r\n setAriaOwns(headerTableId, footerTableId) {\r\n var _a;\r\n var $contentElement = this._findContentElement();\r\n var $tableElement = this.getTableElement();\r\n if (null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) {\r\n this.setAria(\"owns\", \"\".concat(null !== headerTableId && void 0 !== headerTableId ? headerTableId : \"\", \" \").concat(null !== (_a = $tableElement.attr(\"id\")) && void 0 !== _a ? _a : \"\", \" \").concat(null !== footerTableId && void 0 !== footerTableId ? footerTableId : \"\").trim(), $contentElement)\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n }\r\n setScrollerSpacing() {}\r\n _restoreErrorRow() {}\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: () => ({\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }),\r\n views: {\r\n rowsView: RowsView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/rows.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport gridCore from \"../m_core\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/context_menu/m_context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport modules from \"../m_modules\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var _a, _b;\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === (_b = null === (_a = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.cells) || void 0 === _a ? void 0 : _a[columnIndex]) || void 0 === _b ? void 0 : _b.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n return\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: () => ({\r\n onContextMenuPreparing: null\r\n }),\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/error_handling/m_error_handling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport modules from \"../m_modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"<tr>\").attr(\"role\", \"row\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"<div>\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction(args => {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\".concat(ERROR_ROW_CLASS)).index();\r\n e.stopPropagation();\r\n each($tableElements, (_, tableElement) => {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n });\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n }));\r\n $(\"<td>\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"gridcell\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"<div>\").attr(\"role\", \"alert\").attr(\"aria-roledescription\", messageLocalization.format(\"dxDataGrid-ariaError\")).addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"<a>\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\".concat(ERROR_MESSAGE_CLASS)).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (_, tableElement) => {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\".concat(ERROR_ROW_CLASS));\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\".concat(ERROR_ROW_CLASS))\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: () => ({\r\n errorRowEnabled: true\r\n }),\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((error, $popupContent) => {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n that.changed.add(e => {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/error_handling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_grid_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getInnerWidth,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar GROUP_ROW_SELECTOR = \"tr.dx-group-row\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && width.endsWith(\"px\")\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((width, index) => index === columnIndex ? currentMinWidth : width))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement, true);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar resizingControllerMembers = {\r\n _initPostRenderHandlers() {\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var needFireContentReady = changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed;\r\n this._dataController.changed.remove(this._refreshSizesHandler);\r\n if (this._checkSize()) {\r\n resizeDeferred = this._refreshSizes(e)\r\n }\r\n if (needFireContentReady) {\r\n when(resizeDeferred).done(() => {\r\n this._setAriaLabel();\r\n this.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n this._dataController.changed.add(() => {\r\n this._dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes(e) {\r\n var _a;\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var items = this._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = this.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n if (0 === (null === (_a = e.changeTypes) || void 0 === _a ? void 0 : _a.length)) {\r\n return resizeDeferred\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n resizeDeferred = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n this._setScrollerSpacing();\r\n this._rowsView.resize();\r\n resizeDeferred.resolve()\r\n })))\r\n }).fail(resizeDeferred.reject)\r\n } else {\r\n resizeDeferred = this.resize()\r\n }\r\n }\r\n return resizeDeferred\r\n },\r\n fireContentReadyAction() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _getWidgetAriaLabel: () => \"dxDataGrid-ariaDataGrid\",\r\n _setAriaLabel() {\r\n var totalItemsCount = Math.max(0, this._dataController.totalItemsCount());\r\n this.component.setAria(\"label\", messageLocalization.format(this._getWidgetAriaLabel(), totalItemsCount, this.component.columnCount()), this.component.$element().children(\".\".concat(GRIDBASE_CONTAINER_CLASS)))\r\n },\r\n _getBestFitWidths() {\r\n var _a;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null === widths || void 0 === widths ? void 0 : widths.length)) {\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_a = rowsView.getTableElement()) || void 0 === _a ? void 0 : _a.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\".concat(className)).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n each($rowsFixedTable.find(GROUP_ROW_SELECTOR), (idx, item) => {\r\n $(item).css(\"display\", isBestFit ? \"none\" : \"\")\r\n });\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight(value) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n if (true === value) {\r\n this._prevContentMinHeight = $contentElement.get(0).style.minHeight\r\n }\r\n if (isDefined(this._prevContentMinHeight)) {\r\n $contentElement.css({\r\n minHeight: value ? gridCoreUtils.getContentHeightLimit(browser) : this._prevContentMinHeight\r\n })\r\n }\r\n }\r\n },\r\n _synchronizeColumns() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var hasUndefinedColumnWidth = visibleColumns.some(column => !isDefined(column.width));\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (index, column) => {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n return\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n return\r\n });\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n this._toggleContentMinHeight(wordWrapEnabled);\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var {\r\n width: width\r\n } = this;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected || hasUndefinedColumnWidth) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n if (wordWrapEnabled) {\r\n this._toggleContentMinHeight(false)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(width => void 0 === width).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var {\r\n minWidth: minWidth\r\n } = column;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((columnWidth, columnIndex) => index === columnIndex ? width : columnWidth));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n _getGroupElement() {\r\n return this.component.$element().children().get(0)\r\n },\r\n updateSize(rootElement) {\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n var $groupElement = $rootElement.children(\".\".concat(this.getWidgetContainerClass()));\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getHeight($rootElement);\r\n var width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: () => [\"resize\", \"updateDimensions\"],\r\n _waitAsyncTemplates() {\r\n var _a, _b, _c;\r\n return when(null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true), null === (_b = this._rowsView) || void 0 === _b ? void 0 : _b.waitAsyncTemplates(true), null === (_c = this._footerView) || void 0 === _c ? void 0 : _c.waitAsyncTemplates(true))\r\n },\r\n resize() {\r\n if (this.component._requireResize) {\r\n return\r\n }\r\n var d = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n when(this.updateDimensions()).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n updateDimensions(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always(() => {\r\n deferRender(() => {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate(() => {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight() {\r\n var groupElement = this._getGroupElement();\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize(checkSize) {\r\n var $rootElement = this.component.$element();\r\n var isWidgetVisible = $rootElement.is(\":visible\");\r\n var isGridSizeChanged = this._lastWidth !== getWidth($rootElement) || this._lastHeight !== getHeight($rootElement) || this._devicePixelRatio !== getWindow().devicePixelRatio;\r\n return isWidgetVisible && (!checkSize || isGridSizeChanged)\r\n },\r\n _setScrollerSpacingCore() {\r\n var that = this;\r\n var vScrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender(() => {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n },\r\n _setScrollerSpacing() {\r\n var scrollable = this._rowsView.getScrollable();\r\n var isNativeScrolling = true === this.option(\"scrolling.useNative\");\r\n if (!scrollable || isNativeScrolling) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore()\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore()\r\n }\r\n },\r\n _setAriaOwns() {\r\n var _a, _b, _c;\r\n var headerTable = null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.getTableElement();\r\n var footerTable = null === (_b = this._footerView) || void 0 === _b ? void 0 : _b.getTableElement();\r\n null === (_c = this._rowsView) || void 0 === _c ? void 0 : _c.setAriaOwns(null === headerTable || void 0 === headerTable ? void 0 : headerTable.attr(\"id\"), null === footerTable || void 0 === footerTable ? void 0 : footerTable.attr(\"id\"))\r\n },\r\n _updateDimensionsCore() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = this._getGroupElement();\r\n var rootElementHeight = getHeight($rootElement);\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var isHeightSpecified = !!height && \"auto\" !== height;\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var isMaxHeightApplied = groupElement && groupElement.scrollHeight === groupElement.offsetHeight;\r\n that.updateSize($rootElement);\r\n deferRender(() => {\r\n var hasHeight = that._hasHeight || !!maxHeight || isHeightSpecified;\r\n rowsView.hasHeight(hasHeight);\r\n this._setAriaOwns();\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate(() => {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing();\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n editorFactory && editorFactory.resize()\r\n })\r\n })\r\n },\r\n _updateLastSizes($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init() {\r\n this._prevContentMinHeight = null;\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n};\r\nvar ResizingController = modules.ViewController.inherit(resizingControllerMembers);\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n element() {\r\n return this._groupElement\r\n },\r\n optionChanged(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n },\r\n _getTableRoleName: () => \"group\",\r\n render($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"<div>\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria(\"role\", this._getTableRoleName(), $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: () => ({\r\n showBorders: false,\r\n renderAsync: false\r\n }),\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/grid_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n gridViewModule\r\n} from \"../../../grids/grid_core/views/m_grid_view\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n var _$focusTarget;\r\n $focusTarget = null !== (_$focusTarget = $focusTarget) && void 0 !== _$focusTarget ? _$focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", null !== tabIndex && void 0 !== tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.multiline.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nexport class MultiLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {}\r\n _updateMenuVisibility() {}\r\n _renderMenuItems() {}\r\n _renderItem() {}\r\n _getMenuItems() {}\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", this._toolbar.itemElements(), true)\r\n }\r\n _arrangeItems() {\r\n var $label = this._toolbar._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n if (!$label.length) {\r\n return\r\n }\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", elementWidth - labelPaddings)\r\n }\r\n _hideOverflowItems() {}\r\n _dimensionChanged() {}\r\n _itemOptionChanged() {}\r\n _optionChanged() {}\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_CUSTOM_CLASS = \"dx-toolbar-menu-custom\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport default class ToolbarMenuList extends ListBase {\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(TOOLBAR_MENU_ACTION_CLASS, \":not(.\").concat(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS, \")\")\r\n }\r\n _initMarkup() {\r\n this._renderSections();\r\n super._initMarkup();\r\n this._setMenuRole()\r\n }\r\n _getSections() {\r\n return this._itemContainer().children()\r\n }\r\n _itemElements() {\r\n return this._getSections().children(this._itemSelector())\r\n }\r\n _renderSections() {\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (_, section) => {\r\n var sectionName = \"_$\".concat(section, \"Section\");\r\n if (!this[sectionName]) {\r\n this[sectionName] = $(\"<div>\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n this[sectionName].appendTo($container)\r\n })\r\n }\r\n _renderItems() {\r\n super._renderItems.apply(this, arguments);\r\n this._updateSections()\r\n }\r\n _setMenuRole() {\r\n var $menuContainer = this.$element().find(\".\".concat(SCROLLVIEW_CONTENT_CLASS));\r\n $menuContainer.attr(\"role\", \"menu\")\r\n }\r\n _updateSections() {\r\n var $sections = this.$element().find(\".\".concat(TOOLBAR_MENU_SECTION_CLASS));\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"menu\";\r\n var $container = this[\"_$\".concat(location, \"Section\")];\r\n var itemElement = super._renderItem(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(TOOLBAR_MENU_CUSTOM_CLASS)\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _getItemTemplateName(args) {\r\n var template = super._getItemTemplateName(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _itemClickHandler(e, args, config) {\r\n if ($(e.target).closest(\".\".concat(TOOLBAR_MENU_ACTION_CLASS)).length) {\r\n super._itemClickHandler(e, args, config)\r\n }\r\n }\r\n _clean() {\r\n this._getSections().empty();\r\n super._clean()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.full.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default class PopupFull extends Popup {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n preventScrollEvents: false\r\n })\r\n }\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopupFull.defaultOptions = function(rule) {\r\n Popup.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopup\", PopupFull);\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup.full\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Widget from \"../../widget/ui.widget\";\r\nimport Button from \"../../button\";\r\nimport ToolbarMenuList from \"./ui.toolbar.menu.list\";\r\nimport {\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../ui.toolbar.utils\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport \"../../popup\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_BOUNDARY_VERTICAL_OFFSET = 10;\r\nvar POPUP_VERTICAL_OFFSET = 3;\r\nexport default class DropDownMenu extends Widget {\r\n _supportedKeys() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n onButtonClick: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n onItemRendered: null,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n useInkRipple: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n }\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _initButtonClickAction() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n super._initTemplates()\r\n }\r\n _initMarkup() {\r\n this._renderButton();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this.setAria({\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n }\r\n _renderContentImpl() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n }\r\n _clean() {\r\n this._cleanFocusState();\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove();\r\n delete this._list;\r\n delete this._popup\r\n }\r\n _renderButton() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n template: \"content\",\r\n stylingMode: isFluent() ? \"text\" : \"contained\",\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }\r\n })\r\n }\r\n _toggleActiveState($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n }\r\n _toggleMenuVisibility(opened) {\r\n var state = null !== opened && void 0 !== opened ? opened : !this._popup.option(\"visible\");\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n }\r\n _renderPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n container: container,\r\n animation: animation\r\n } = this.option();\r\n this._popup = this._createComponent(this._$popup, \"dxPopup\", {\r\n onInitialized(_ref) {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).addClass(DROP_DOWN_MENU_POPUP_CLASS)\r\n },\r\n deferRendering: false,\r\n contentTemplate: contentElement => this._renderList(contentElement),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => this._getMaxHeight(),\r\n position: {\r\n my: \"top \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n at: \"bottom \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n collision: \"fit flip\",\r\n offset: {\r\n v: POPUP_VERTICAL_OFFSET\r\n },\r\n of: this.$element()\r\n },\r\n animation: animation,\r\n onOptionChanged: _ref2 => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n if (\"visible\" === name) {\r\n this.option(\"opened\", value)\r\n }\r\n },\r\n container: container,\r\n autoResizeEnabled: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n hideOnParentScroll: true,\r\n shading: false,\r\n dragEnabled: false,\r\n showTitle: false,\r\n fullScreen: false,\r\n _fixWrapperPosition: true\r\n })\r\n }\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var offsetTop = $element.offset().top;\r\n var windowHeight = getOuterHeight(getWindow());\r\n var maxHeight = Math.max(offsetTop, windowHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(windowHeight, maxHeight - POPUP_VERTICAL_OFFSET - POPUP_BOUNDARY_VERTICAL_OFFSET)\r\n }\r\n _closeOutsideDropDownHandler(e) {\r\n var isOutsideClick = !$(e.target).closest(this.$element()).length;\r\n return isOutsideClick\r\n }\r\n _renderList(contentElement) {\r\n var $content = $(contentElement);\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, ToolbarMenuList, {\r\n dataSource: this._getListDataSource(),\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: e => {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n },\r\n tabIndex: -1,\r\n focusStateEnabled: false,\r\n activeStateEnabled: true,\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n })\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"dataSource\")) && void 0 !== _this$option ? _this$option : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _this$_list2;\r\n null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"dataSource\", this._getListDataSource());\r\n delete this._deferRendering\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat([this._list])\r\n }\r\n _toggleVisibility(visible) {\r\n super._toggleVisibility(visible);\r\n this._button.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _this$_list3, _this$_list4, _this$_list5;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (!this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.option(name, this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n null === (_this$_list4 = this._list) || void 0 === _this$_list4 ? void 0 : _this$_list4.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_this$_list5 = this._list) || void 0 === _this$_list5 ? void 0 : _this$_list5.option(name, value);\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(name, value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.singleline.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DropDownMenu from \"../internal/ui.toolbar.menu\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nexport class SingleLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {\r\n deferRender(() => {\r\n this._renderOverflowMenu();\r\n this._renderMenuItems()\r\n })\r\n }\r\n _renderOverflowMenu() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"<div>\").appendTo(this._overflowMenuContainer());\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var menuItemTemplate = this._toolbar._getTemplateByOption(\"menuItemTemplate\");\r\n this._menu = this._toolbar._createComponent($menu, DropDownMenu, {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: () => menuItemTemplate,\r\n onItemClick: e => {\r\n itemClickAction(e)\r\n },\r\n container: this._toolbar.option(\"menuContainer\"),\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n }\r\n })\r\n }\r\n renderMenuItems() {\r\n if (!this._menu) {\r\n this._renderOverflowMenu()\r\n }\r\n this._menu && this._menu.option(\"items\", this._getMenuItems());\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.option(\"opened\", false)\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n this._$overflowMenuContainer = $(\"<div>\").appendTo(this._toolbar._$afterSection).addClass(TOOLBAR_BUTTON_CLASS).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _overflowMenuContainer() {\r\n return this._$overflowMenuContainer\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = null !== menuItems && void 0 !== menuItems ? menuItems : this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._overflowMenuContainer()) {\r\n return\r\n }\r\n this._overflowMenuContainer().toggleClass(INVISIBLE_STATE_CLASS, !value)\r\n }\r\n _renderMenuItems() {\r\n deferRender(() => {\r\n this.renderMenuItems()\r\n })\r\n }\r\n _dimensionChanged() {\r\n this.renderMenuItems()\r\n }\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return grep(null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : [], item => !this._toolbar._isMenuItem(item))\r\n }\r\n _getHiddenItems() {\r\n return this._toolbar._itemContainer().children(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS, \".\").concat(TOOLBAR_HIDDEN_ITEM)).not(\".\".concat(INVISIBLE_STATE_CLASS))\r\n }\r\n _getMenuItems() {\r\n var _this$_toolbar$option2, _this$_restoreItems;\r\n var menuItems = grep(null !== (_this$_toolbar$option2 = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option2 ? _this$_toolbar$option2 : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._getHiddenItems();\r\n this._restoreItems = null !== (_this$_restoreItems = this._restoreItems) && void 0 !== _this$_restoreItems ? _this$_restoreItems : [];\r\n var overflowItems = [].slice.call($hiddenItems).map(hiddenItem => {\r\n var itemData = this._toolbar._getItemData(hiddenItem);\r\n var $itemContainer = $(hiddenItem);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: () => {\r\n this._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"<div>\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = null !== items && void 0 !== items ? items : this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _arrangeItems() {\r\n var _this$_restoreItems2;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_this$_restoreItems2 = this._restoreItems) && void 0 !== _this$_restoreItems2 ? _this$_restoreItems2 : [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n this._hideOverflowItems(elementWidth);\r\n return elementWidth\r\n }\r\n _hideOverflowItems(elementWidth) {\r\n var _elementWidth;\r\n var overflowItems = this._toolbar.$element().find(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS));\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this._toolbar.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n itemsWidth = this._getItemsWidth();\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", [this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n var _this$_menu;\r\n null === (_this$_menu = this._menu) || void 0 === _this$_menu ? void 0 : _this$_menu._itemOptionChanged(item, property, value);\r\n return\r\n }\r\n }\r\n this.renderMenuItems()\r\n }\r\n _renderItem(item, itemElement) {\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n }\r\n _optionChanged(name, value) {\r\n var _this$_menu2, _this$_menu3, _this$_menu4, _this$_menu5, _this$_menu6;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_this$_menu2 = this._menu) || void 0 === _this$_menu2 ? void 0 : _this$_menu2.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_this$_menu3 = this._menu) || void 0 === _this$_menu3 ? void 0 : _this$_menu3.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_this$_menu4 = this._menu) || void 0 === _this$_menu4 ? void 0 : _this$_menu4.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_this$_menu5 = this._menu) || void 0 === _this$_menu5 ? void 0 : _this$_menu5.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_this$_menu6 = this._menu) || void 0 === _this$_menu6 ? void 0 : _this$_menu6.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ToolbarBase from \"./ui.toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./ui.toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/toolbar.singleline\";\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nclass Toolbar extends ToolbarBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false,\r\n multiline: false\r\n })\r\n }\r\n _isMultiline() {\r\n return this.option(\"multiline\")\r\n }\r\n _dimensionChanged(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n super._dimensionChanged();\r\n this._layoutStrategy._dimensionChanged()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._updateFocusableItemsTabIndex();\r\n this._layoutStrategy._initMarkup()\r\n }\r\n _renderToolbar() {\r\n super._renderToolbar();\r\n this._renderLayoutStrategy()\r\n }\r\n _itemContainer() {\r\n if (this._isMultiline()) {\r\n return this._$toolbarItemsContainer\r\n }\r\n return super._itemContainer()\r\n }\r\n _renderLayoutStrategy() {\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, this._isMultiline());\r\n this._layoutStrategy = this._isMultiline() ? new MultiLineStrategy(this) : new SingleLineStrategy(this)\r\n }\r\n _renderSections() {\r\n if (this._isMultiline()) {\r\n return\r\n }\r\n return super._renderSections()\r\n }\r\n _postProcessRenderItems() {\r\n this._layoutStrategy._hideOverflowItems();\r\n this._layoutStrategy._updateMenuVisibility();\r\n super._postProcessRenderItems();\r\n this._layoutStrategy._renderMenuItems()\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var itemElement = super._renderItem(index, item, itemContainer, $after);\r\n this._layoutStrategy._renderItem(item, itemElement);\r\n var {\r\n widget: widget,\r\n showText: showText\r\n } = item;\r\n if (\"dxButton\" === widget && \"inMenu\" === showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n }\r\n _getItemsWidth() {\r\n return this._layoutStrategy._getItemsWidth()\r\n }\r\n _getMenuItems() {\r\n return this._layoutStrategy._getMenuItems()\r\n }\r\n _getToolbarItems() {\r\n return this._layoutStrategy._getToolbarItems()\r\n }\r\n _arrangeItems() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n var elementWidth = this._layoutStrategy._arrangeItems();\r\n if (!this._isMultiline()) {\r\n super._arrangeItems(elementWidth)\r\n }\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n this._layoutStrategy._itemOptionChanged(item, property, value);\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n }\r\n _isMenuItem(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n }\r\n _isToolbarItem(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n this._layoutStrategy._optionChanged(name, value);\r\n switch (name) {\r\n case \"menuContainer\":\r\n case \"menuItemTemplate\":\r\n case \"overflowMenuVisible\":\r\n break;\r\n case \"multiline\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n super._optionChanged.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n updateDimensions() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toolbar from \"./toolbar/ui.toolbar\";\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_panel/m_header_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Toolbar from \"../../../../ui/toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nexport class HeaderPanel extends ColumnsView {\r\n _getToolbarItems() {\r\n return []\r\n }\r\n _getButtonContainer() {\r\n return $(\"<div>\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n }\r\n _getToolbarButtonClass(specificClass) {\r\n var secondClass = specificClass ? \" \".concat(specificClass) : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n }\r\n _getToolbarOptions() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null === toolbarItems || void 0 === toolbarItems ? void 0 : toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n }\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends(_extends({}, button), {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n }\r\n _renderCore() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"<div>\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n }\r\n _columnOptionChanged() {}\r\n _handleDataChanged() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n _isDisabledDefinedByUser(name) {\r\n var _a;\r\n var userItems = null === (_a = this.option(\"toolbar\")) || void 0 === _a ? void 0 : _a.items;\r\n var userItem = null === userItems || void 0 === userItems ? void 0 : userItems.find(item => (null === item || void 0 === item ? void 0 : item.name) === name);\r\n return isDefined(null === userItem || void 0 === userItem ? void 0 : userItem.disabled)\r\n }\r\n init() {\r\n super.init();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n render() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n super.render.apply(this, arguments)\r\n }\r\n setToolbarItemDisabled(name, disabled) {\r\n var _a;\r\n var toolbar = this._toolbar;\r\n var isDefinedByUser = this._isDisabledDefinedByUser(name);\r\n if (!toolbar || isDefinedByUser) {\r\n return\r\n }\r\n var items = null !== (_a = toolbar.option(\"items\")) && void 0 !== _a ? _a : [];\r\n var itemIndex = items.findIndex(item => item.name === name);\r\n if (itemIndex < 0) {\r\n return\r\n }\r\n var item = toolbar.option(\"items[\".concat(itemIndex, \"]\"));\r\n toolbar.option(\"items[\".concat(itemIndex, \"].disabled\"), disabled);\r\n if (item.options) {\r\n toolbar.option(\"items[\".concat(itemIndex, \"].options.disabled\"), disabled)\r\n }\r\n }\r\n updateToolbarDimensions() {\r\n var _a;\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.updateDimensions()\r\n }\r\n getHeaderPanel() {\r\n return this.element()\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n optionChanged(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n isVisible() {\r\n return !!(this._toolbarOptions && this._toolbarOptions.visible)\r\n }\r\n allowDragging() {}\r\n hasGroupedColumns() {}\r\n}\r\nexport var headerPanelModule = {\r\n defaultOptions: () => ({}),\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport gridCore from \"../m_core\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./module_not_extended/rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./module_not_extended/grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../../core/utils/console\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport gridCore from \"./m_core\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n },\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: () => browser.webkit,\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate(templateName) {\r\n var template = templateName;\r\n if (isString(template) && template.startsWith(\"#\")) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fromPromise\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n sessionStorage\r\n} from \"../../../../core/utils/storage\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (key, value) => {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n })\r\n};\r\nvar StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(\"W1022\", \"State storing\", e.message)\r\n }\r\n },\r\n _saveState(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: () => [\"state\"],\r\n isEnabled() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._isLoading\r\n },\r\n load() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state(state) {\r\n if (!arguments.length) {\r\n return extend(true, {}, this._state)\r\n }\r\n this._state = extend({}, state);\r\n parseDates(this._state)\r\n },\r\n save() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(() => {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexport default {\r\n StateStoringController: StateStoringController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport stateStoringCore from \"./m_state_storing_core\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add(() => {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(e => {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n })\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add(() => {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(() => {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n })\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n }\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: () => ({\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }),\r\n controllers: {\r\n stateStoring: stateStoringCore.StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add(() => {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state(state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== state) {\r\n this.applyState(extend(true, {}, state))\r\n }\r\n return result\r\n },\r\n updateState(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState(state) {\r\n var _a;\r\n var {\r\n allowedPageSizes: allowedPageSizes\r\n } = state;\r\n var {\r\n searchText: searchText\r\n } = state;\r\n var {\r\n selectedRowKeys: selectedRowKeys\r\n } = state;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = state;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n var hasHeight = null === (_a = this.getView(\"rowsView\")) || void 0 === _a ? void 0 : _a.hasHeight();\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", (!isVirtualScrollingMode || hasHeight) && state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource() {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/state_storing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n stateStoringModule\r\n} from \"../../../grids/grid_core/state_storing/m_state_storing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/selection/m_selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n touch\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Selection from \"../../../../ui/selection/selection\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\".concat(DATA_ROW_CLASS));\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar isSeveralRowsSelected = function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n};\r\nvar selectionCellTemplate = (container, options) => {\r\n var {\r\n component: component\r\n } = options;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n};\r\nvar selectionHeaderTemplate = (container, options) => {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n};\r\nexport class SelectionController extends modules.Controller {\r\n init() {\r\n var _a;\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n if (!this._dataPushedHandler) {\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._dataController.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n this._deselectRemovedOnPush(changes);\r\n this._updateSelectedOnPush(changes)\r\n }\r\n _deselectRemovedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n if (isDeferredSelection) {\r\n var selectedKeys = this._dataController.items().filter(item => item.isSelected).map(item => item.key);\r\n removedKeys = removedKeys.filter(key => selectedKeys.find(selectedKey => equalByValue(selectedKey, key)))\r\n }\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n }\r\n _updateSelectedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (isDeferredSelection) {\r\n return\r\n }\r\n var updateChanges = changes.filter(change => \"update\" === change.type);\r\n var data = this.getSelectedRowsData();\r\n applyBatch({\r\n keyInfo: this._selection.options,\r\n data: data,\r\n changes: updateChanges\r\n })\r\n }\r\n _getSelectionConfig() {\r\n var _a;\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n var {\r\n deferred: deferred\r\n } = selectionOptions;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: () => null === dataController || void 0 === dataController ? void 0 : dataController.key(),\r\n keyOf: item => null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item),\r\n dataFields() {\r\n var _a;\r\n return null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.select()\r\n },\r\n load(options) {\r\n var _a;\r\n return (null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: () => dataController.items(true),\r\n isItemSelected: item => item.selected,\r\n isSelectableItem: item => \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow,\r\n getItemData: item => isDefined(null === item || void 0 === item ? void 0 : item.rowType) ? (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) : item,\r\n filter: () => dataController.getCombinedFilter(deferred),\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _a, _b;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_b = null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.lastLoadOptions()) && void 0 !== _b ? _b : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n }\r\n _updateSelectColumn() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n }\r\n _createSelection() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n }\r\n _fireSelectionChanged(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n }\r\n _updateCheckboxesState(options) {\r\n var {\r\n isDeferredMode: isDeferredMode\r\n } = options;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = options;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && isSeveralRowsSelected(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n _updateSelectedItems(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n }\r\n getChangedItemIndexes(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, {\r\n length: length\r\n } = items; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n }\r\n callbackNames() {\r\n return [\"selectionChanged\"]\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n }\r\n isRowSelected(arg) {\r\n return this._selection.isItemSelected(arg)\r\n }\r\n isSelectColumnVisible() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n _isOnePageSelectAll() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n }\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n }\r\n selectAll() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n }\r\n deselectAll() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n refresh() {\r\n var _a;\r\n var selectedRowKeys = null !== (_a = this.option(\"selectedRowKeys\")) && void 0 !== _a ? _a : [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n }\r\n getSelectedRowKeys() {\r\n return this._selection.getSelectedItemKeys()\r\n }\r\n selectRows(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n }\r\n deselectRows(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectRowsByIndexes(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n }\r\n getSelectedRowsData() {\r\n return this._selection.getSelectedItems()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selection.loadSelectedItemsWithFilter()\r\n }\r\n changeItemSelection(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n }\r\n focusedItemIndex(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n return\r\n }\r\n isSelectionWithCheckboxes() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n startSelectionWithCheckboxes() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n stopSelectionWithCheckboxes() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nexport var selectionModule = {\r\n defaultOptions: () => ({\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }),\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource() {\r\n var that = this;\r\n return that.callBase().always(() => {\r\n that.getController(\"selection\").refresh()\r\n })\r\n },\r\n _processDataItem(item, options) {\r\n var selectionController = this.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\".concat(SELECT_CHECKBOX_CLASS));\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateSelectAllValue()\r\n })\r\n }\r\n },\r\n _renderSelectAllCheckBox($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"<div>\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (!$(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\".concat(SELECT_CHECKBOX_CLASS)), clickEventName)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox(container, options) {\r\n var groupElement = $(\"<div>\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue(value, e) {\r\n var _a;\r\n if (\"keydown\" === (null === (_a = null === e || void 0 === e ? void 0 : e.event) || void 0 === _a ? void 0 : _a.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var {\r\n event: event\r\n } = e;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\".concat(ROW_CLASS)));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (_, tableElement) => {\r\n each(change.itemIndexes || [], (_, index) => {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var {\r\n isSelected: isSelected\r\n } = change.items[index];\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\".concat(SELECT_CHECKBOX_CLASS)).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n })\r\n });\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\".concat(DATA_ROW_CLASS), that.createAction(e => {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var {\r\n isSelected: isSelected\r\n } = row;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\".concat(SELECTION_DISABLED_CLASS)).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement($target) {\r\n var isCommandSelect = $target.closest(\".\".concat(COMMAND_SELECT_CLASS)).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore(change) {\r\n var deferred = this.callBase(change);\r\n this._updateCheckboxesClass();\r\n return deferred\r\n },\r\n _updateCheckboxesClass() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (_, tableElement) => {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nvar CHECK_BOX_CLASS = \"dx-checkbox\";\r\nvar CHECK_BOX_ICON_CLASS = \"dx-checkbox-icon\";\r\nvar ROOT_NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-root-node\");\r\nvar EXPANDER_ICON_STUB_CLASS = \"\".concat(WIDGET_CLASS, \"-expander-icon-stub\");\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var previousSelectAllEnabled = this._selectAllEnabled(previousValue);\r\n var previousItemsContainer = this._itemContainer(searchEnabled, previousSelectAllEnabled);\r\n this._detachClickEvent(previousItemsContainer);\r\n this._detachExpandEvent(previousItemsContainer);\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._attachExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n case \"expandIcon\":\r\n case \"collapseIcon\":\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"<div>\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"<div>\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n var _this$_dataSource, _this$_dataSource$loa, _this$_dataSource$loa2;\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort(),\r\n langParams: null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : null === (_this$_dataSource$loa = _this$_dataSource.loadOptions) || void 0 === _this$_dataSource$loa ? void 0 : null === (_this$_dataSource$loa2 = _this$_dataSource$loa.call(_this$_dataSource)) || void 0 === _this$_dataSource$loa2 ? void 0 : _this$_dataSource$loa2.langParams\r\n }\r\n },\r\n _initMarkup() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this._setAriaRole()\r\n },\r\n _setAriaRole() {\r\n var {\r\n items: items\r\n } = this.option();\r\n if (null !== items && void 0 !== items && items.length) {\r\n this.setAria({\r\n role: \"tree\"\r\n })\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._attachExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"<div>\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"<ul>\").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var _node$internalFields, _node$internalFields$;\r\n var $node = $(\"<li>\").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n var attrs = {\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n level: this._getLevel($nodeContainer)\r\n };\r\n var hasChildNodes = !!(null !== node && void 0 !== node && null !== (_node$internalFields = node.internalFields) && void 0 !== _node$internalFields && null !== (_node$internalFields$ = _node$internalFields.childrenKeys) && void 0 !== _node$internalFields$ && _node$internalFields$.length);\r\n if (hasChildNodes) {\r\n attrs.expanded = node.internalFields.expanded || false\r\n }\r\n this.setAria(attrs, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _hasCustomExpanderIcons: function() {\r\n return this.option(\"expandIcon\") || this.option(\"collapseIcon\")\r\n },\r\n _selectAllEnabled: function(showCheckBoxesMode) {\r\n var mode = null !== showCheckBoxesMode && void 0 !== showCheckBoxesMode ? showCheckBoxesMode : this.option(\"showCheckBoxesMode\");\r\n return \"selectAll\" === mode && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n if (this._hasCustomExpanderIcons()) {\r\n $node.addClass(ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS);\r\n $nodeContainer.addClass(CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS)\r\n }\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n if (nodeData.disabled) {\r\n this.setAria(\"disabled\", nodeData.disabled, $node)\r\n }\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n var parent = this._getNode(node.internalFields.parentKey);\r\n if (!parent) {\r\n $node.addClass(ROOT_NODE_CLASS)\r\n }\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _renderChildren: function($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n $(\"<div>\").addClass(EXPANDER_ICON_STUB_CLASS).appendTo(this._getItem($node));\r\n return\r\n }\r\n if (this._hasCustomExpanderIcons()) {\r\n this._renderCustomExpanderIcons($node, node)\r\n } else {\r\n this._renderDefaultExpanderIcons($node, node)\r\n }\r\n if (this._shouldRenderSublevel(node.internalFields.expanded)) {\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n }\r\n },\r\n _shouldRenderSublevel: function(expanded) {\r\n return expanded || !this.option(\"deferRendering\")\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var deferred = new Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _getItemExtraPropNames: () => [\"url\", \"linkAttr\"],\r\n _addContent: function($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n if (url) {\r\n $container.html(html);\r\n var link = this._getLinkContainer(this._getIconContainer(itemData), this._getTextContainer(itemData), itemData);\r\n $container.append(link)\r\n } else {\r\n this.callBase($container, itemData)\r\n }\r\n },\r\n _postprocessRenderItem(args) {\r\n var {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n } = args;\r\n if (this._showCheckboxes()) {\r\n this._renderCheckBox(itemElement, this._getNode(itemData))\r\n }\r\n this.callBase(args)\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _attachExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n this._detachExpandEvent($itemsContainer);\r\n eventsEngine.on($itemsContainer, expandedEventName, this._itemSelector(), this._expandEventHandler.bind(this))\r\n },\r\n _detachExpandEvent(itemsContainer) {\r\n eventsEngine.off(itemsContainer, \".\".concat(EXPAND_EVENT_NAMESPACE), this._itemSelector())\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = $(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (!currentState && !this._nodeHasRenderedChildren($node)) {\r\n this._createLoadIndicator($node)\r\n }\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _nodeHasRenderedChildren($node) {\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n return $nodeContainer.not(\":empty\").length\r\n },\r\n _getItem: function($node) {\r\n return $node.children(\".\".concat(ITEM_CLASS)).eq(0)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $treeviewItem = this._getItem($node);\r\n this._createComponent($(\"<div>\").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($treeviewItem);\r\n var $icon = $treeviewItem.children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS, \",.\").concat(CUSTOM_EXPAND_ICON_CLASS));\r\n $icon.hide()\r\n },\r\n _renderExpanderIcon: function($node, node, $icon, iconClass) {\r\n $icon.appendTo(this._getItem($node));\r\n $icon.addClass(iconClass);\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderDefaultExpanderIcons: function($node, node) {\r\n var $treeViewItem = this._getItem($node);\r\n var $icon = $(\"<div>\").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($treeViewItem);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderCustomExpanderIcons: function($node, node) {\r\n var {\r\n expandIcon: expandIcon,\r\n collapseIcon: collapseIcon\r\n } = this.option();\r\n var $expandIcon = getImageContainer(null !== expandIcon && void 0 !== expandIcon ? expandIcon : collapseIcon);\r\n var $collapseIcon = getImageContainer(null !== collapseIcon && void 0 !== collapseIcon ? collapseIcon : expandIcon);\r\n this._renderExpanderIcon($node, node, $expandIcon, CUSTOM_EXPAND_ICON_CLASS);\r\n this._renderExpanderIcon($node, node, $collapseIcon, CUSTOM_COLLAPSE_ICON_CLASS);\r\n var isNodeExpanded = node.internalFields.expanded;\r\n if (isNodeExpanded) {\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n this._toggleCustomExpanderIcons($expandIcon, $collapseIcon, isNodeExpanded)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e);\r\n return false\r\n })\r\n },\r\n _toggleCustomExpanderIcons: function($expandIcon, $collapseIcon, isNodeExpanded) {\r\n $collapseIcon.toggle(isNodeExpanded);\r\n $expandIcon.toggle(!isNodeExpanded)\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n if (!this._hasCustomExpanderIcons()) {\r\n var $icon = this._getItem($node).children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state)\r\n } else if (this._nodeHasRenderedChildren($node)) {\r\n var $item = this._getItem($node);\r\n var $childExpandIcons = $item.children(\".\".concat(CUSTOM_EXPAND_ICON_CLASS));\r\n var $childCollapseIcons = $item.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS));\r\n this._toggleCustomExpanderIcons($childExpandIcons, $childCollapseIcons, state)\r\n }\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n completionCallback.resolve();\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = getHeight($nodeContainer);\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this.getScrollable().update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node) || this._skipContentReadyAndItemExpanded) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n if ($loadIndicator.length) {\r\n var _LoadIndicator$getIns;\r\n null === (_LoadIndicator$getIns = LoadIndicator.getInstance($loadIndicator)) || void 0 === _LoadIndicator$getIns ? void 0 : _LoadIndicator$getIns.option(\"visible\", false)\r\n }\r\n var $treeViewItem = this._getItem($node);\r\n var $toggleItem = $treeViewItem.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS, \",.\").concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n if (hasNewItems) {\r\n $toggleItem.show();\r\n return\r\n }\r\n $toggleItem.removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n var scrollable = this.getScrollable();\r\n return scrollable ? $(scrollable.content()) : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n var {\r\n selectAllText: selectAllText,\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"<div>\").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n text: selectAllText,\r\n focusStateEnabled: focusStateEnabled,\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this),\r\n onInitialized: _ref => {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.registerKeyHandler(\"enter\", () => {\r\n component.option(\"value\", !component.option(\"value\"))\r\n })\r\n }\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = $(\"<div>\").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = $(e.element).closest(\".\".concat(NODE_CLASS));\r\n var $item = this._getItem($node);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n var $treeViewItem = this._getItem($node);\r\n return $treeViewItem.children(\".\".concat(CHECK_BOX_CLASS)).dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n this._detachClickEvent($itemContainer);\r\n var {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n } = this._getItemClickEventData();\r\n eventsEngine.on($itemContainer, clickEventNamespace, itemSelector, e => {\r\n if ($(e.target).hasClass(CHECK_BOX_ICON_CLASS) || $(e.target).hasClass(CHECK_BOX_CLASS)) {\r\n return\r\n }\r\n this._itemClickHandler(e, $(e.currentTarget))\r\n });\r\n eventsEngine.on($itemContainer, pointerDownEventNamespace, nodeSelector, e => {\r\n this._itemPointerDownHandler(e)\r\n })\r\n },\r\n _detachClickEvent: function(itemsContainer) {\r\n var {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n } = this._getItemClickEventData();\r\n eventsEngine.off(itemsContainer, clickEventNamespace, itemSelector);\r\n eventsEngine.off(itemsContainer, pointerDownEventNamespace, nodeSelector)\r\n },\r\n _getItemClickEventData: function() {\r\n var itemSelector = \".\".concat(this._itemClass());\r\n var nodeSelector = \".\".concat(NODE_CLASS, \", .\").concat(SELECT_ALL_ITEM_CLASS);\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n return {\r\n clickEventNamespace: clickEventNamespace,\r\n itemSelector: itemSelector,\r\n pointerDownEventNamespace: pointerDownEventNamespace,\r\n nodeSelector: nodeSelector\r\n }\r\n },\r\n _itemClick: function(actionArgs) {\r\n var args = actionArgs.args[0];\r\n var target = args.event.target[0] || args.event.target;\r\n var link = target.getElementsByClassName(ITEM_URL_CLASS)[0];\r\n if (args.itemData.url && link) {\r\n link.click()\r\n }\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n }, {\r\n beforeExecute: this._itemClick\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n focus: function() {\r\n if (this._selectAllEnabled()) {\r\n eventsEngine.trigger(this._$selectAllItem, \"focus\");\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _focusInHandler: function(e) {\r\n this._updateFocusState(e, true);\r\n var isSelectAllItem = $(e.target).hasClass(SELECT_ALL_ITEM_CLASS);\r\n if (isSelectAllItem || this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n var element = isSelectAllItem ? getPublicElement(this._$selectAllItem) : $(this.option(\"focusedElement\"));\r\n this._setFocusedItem(element)\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not((function() {\r\n return $(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n }))\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._nodeElements();\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this.getScrollable().scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this.getScrollable().scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement(this._getItem($focusedNode));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement(this._getItem($focusedNode));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return isString(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return isString(value) ? decodeURI(value) : value\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n updateDimensions: function() {\r\n var deferred = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n scrollable.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n _allItemsExpandedHandler: function() {\r\n this._skipContentReadyAndItemExpanded = false;\r\n this._fireContentReadyAction()\r\n },\r\n expandAll: function() {\r\n var nodes = this._dataAdapter.getData();\r\n var expandingPromises = [];\r\n this._skipContentReadyAndItemExpanded = true;\r\n nodes.forEach(node => expandingPromises.push(this._toggleExpandedState(node.internalFields.key, true)));\r\n Promise.allSettled(expandingPromises).then(() => {\r\n var _this$_allItemsExpand;\r\n return null === (_this$_allItemsExpand = this._allItemsExpandedHandler) || void 0 === _this$_allItemsExpand ? void 0 : _this$_allItemsExpand.call(this)\r\n })\r\n },\r\n collapseAll: function() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this.scrollToElementTopLeft($element.get(0));\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n scrollToElementTopLeft: function(targetElement) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n scrollDirection: scrollDirection,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetLocation = {\r\n top: 0,\r\n left: 0\r\n };\r\n var relativeOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement);\r\n if (scrollDirection !== DIRECTION_VERTICAL) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n targetLocation.left = rtlEnabled ? relativeOffset.left + targetElement.offsetWidth - containerElement.clientWidth : relativeOffset.left\r\n }\r\n if (scrollDirection !== DIRECTION_HORIZONTAL) {\r\n targetLocation.top = relativeOffset.top\r\n }\r\n scrollable.scrollTo(targetLocation)\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var resultCallback = new Deferred;\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._allItemsExpandedHandler = null\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n this.option(\"focusedElement\", null);\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _getNodeContainer: function() {\r\n return this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first()\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this._getNodeContainer();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _focusTarget: function() {\r\n return this._itemContainer(this.option(\"searchEnabled\"))\r\n },\r\n _cleanItemContainer: function() {\r\n this.$element().empty()\r\n },\r\n _itemContainer: function(isSearchMode, selectAllEnabled) {\r\n var _selectAllEnabled;\r\n null !== (_selectAllEnabled = selectAllEnabled) && void 0 !== _selectAllEnabled ? _selectAllEnabled : selectAllEnabled = this._selectAllEnabled();\r\n if (selectAllEnabled) {\r\n return this._getNodeContainer()\r\n }\r\n if (this._scrollable && isSearchMode) {\r\n return $(this._scrollable.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeView from \"./tree_view/ui.tree_view.search\";\r\nexport default TreeView;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferUpdate,\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Button from \"../../../../ui/button\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport {\r\n current,\r\n isGeneric,\r\n isMaterial as isMaterialTheme\r\n} from \"../../../../ui/themes\";\r\nimport TreeView from \"../../../../ui/tree_view\";\r\nimport modules from \"../m_modules\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar COLUMN_OPTIONS_USED_IN_ITEMS = [\"showInColumnChooser\", \"caption\", \"allowHiding\", \"visible\", \"cssClass\", \"ownerBand\"];\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = that.isSelectMode();\r\n var isRecursive = that.option(\"columnChooser.selection.recursive\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (index, column) => {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n var isRecursiveWithColumns = isRecursive && column.hasColumns;\r\n if (isSelectMode && !isRecursiveWithColumns) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n })\r\n }\r\n return items\r\n};\r\nvar columnChooserControllerMembers = {\r\n renderShowColumnChooserButton($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\".concat(columnChooserButtonClass));\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"<div>\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition() {\r\n var rowsView = this.getView(\"rowsView\");\r\n var position = this.option(\"columnChooser.position\");\r\n return isDefined(position) ? position : {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n};\r\nvar ColumnChooserController = modules.ViewController.inherit(columnChooserControllerMembers);\r\nvar columnChooserMembers = {\r\n _resizeCore: noop,\r\n _isWinDevice: () => !!devices.real().win,\r\n _initializePopupContainer() {\r\n var that = this;\r\n var columnChooserClass = that.addWidgetPrefix(COLUMN_CHOOSER_CLASS);\r\n var $element = that.element().addClass(columnChooserClass);\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n wrapperAttr: {\r\n class: columnChooserClass\r\n },\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", args => {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n })\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n this.setPopupAttributes()\r\n },\r\n setPopupAttributes() {\r\n var isSelectMode = this.isSelectMode();\r\n var isBandColumnsUsed = this._columnsController.isBandColumnsUsed();\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n this._popupContainer.$content().addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS));\r\n if (isSelectMode && !isBandColumnsUsed) {\r\n this._popupContainer.$content().addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n },\r\n _renderCore(change) {\r\n if (this._popupContainer) {\r\n var isDragMode = !this.isSelectMode();\r\n if (!this._columnChooserList || \"full\" === change) {\r\n this._renderTreeView()\r\n } else if (isDragMode) {\r\n this._updateItems()\r\n }\r\n }\r\n },\r\n _renderTreeView() {\r\n var _a, _b, _c;\r\n var that = this;\r\n var $container = this._popupContainer.$content();\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = this.isSelectMode();\r\n var searchEnabled = isDefined(columnChooser.allowSearch) ? columnChooser.allowSearch : null === (_a = columnChooser.search) || void 0 === _a ? void 0 : _a.enabled;\r\n var searchTimeout = isDefined(columnChooser.searchTimeout) ? columnChooser.searchTimeout : null === (_b = columnChooser.search) || void 0 === _b ? void 0 : _b.timeout;\r\n var treeViewConfig = {\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: searchEnabled,\r\n searchTimeout: searchTimeout,\r\n searchEditorOptions: null === (_c = columnChooser.search) || void 0 === _c ? void 0 : _c.editorOptions\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig);\r\n this._updateItems()\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n this._updateItems();\r\n var scrollTop = 0;\r\n this._columnChooserList.on(\"optionChanged\", e => {\r\n var scrollable = e.component.getScrollable();\r\n scrollTop = scrollable.scrollTop()\r\n });\r\n this._columnChooserList.on(\"contentReady\", e => {\r\n deferUpdate(() => {\r\n var scrollable = e.component.getScrollable();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n });\r\n that.renderCompleted.fire()\r\n })\r\n })\r\n }\r\n },\r\n _prepareDragModeConfig() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig() {\r\n var that = this;\r\n var selectionOptions = this.option(\"columnChooser.selection\") || {};\r\n var isUpdatingSelection = false;\r\n return {\r\n selectByClick: selectionOptions.selectByClick,\r\n selectNodesRecursive: selectionOptions.recursive,\r\n showCheckBoxesMode: selectionOptions.allowSelectAll ? \"selectAll\" : \"normal\",\r\n onSelectionChanged: e => {\r\n if (isUpdatingSelection) {\r\n return\r\n }\r\n var nodes = (nodes => {\r\n var addNodesToArray = (nodes, flatNodesArray) => nodes.reduce((result, node) => {\r\n result.push(node);\r\n if (node.children.length) {\r\n addNodesToArray(node.children, result)\r\n }\r\n return result\r\n }, flatNodesArray);\r\n return addNodesToArray(nodes, [])\r\n })(e.component.getNodes());\r\n e.component.beginUpdate();\r\n isUpdatingSelection = true;\r\n ((e, nodes) => {\r\n nodes.filter(node => false === node.itemData.allowHiding).forEach(node => e.component.selectItem(node.key))\r\n })(e, nodes);\r\n e.component.endUpdate();\r\n isUpdatingSelection = false;\r\n that.component.beginUpdate();\r\n this._isUpdatingColumnVisibility = true;\r\n (nodes => {\r\n nodes.forEach(node => {\r\n var columnIndex = node.itemData.id;\r\n var isVisible = false !== node.selected;\r\n that._columnsController.columnOption(columnIndex, \"visible\", isVisible)\r\n })\r\n })(nodes);\r\n that.component.endUpdate();\r\n this._isUpdatingColumnVisibility = false\r\n }\r\n }\r\n },\r\n _updateItems() {\r\n var isSelectMode = this.isSelectMode();\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var items = processItems(this, chooserColumns);\r\n this._columnChooserList.option(\"items\", items)\r\n },\r\n _updateItemsSelection(columnIndices) {\r\n var changedColumns = null === columnIndices || void 0 === columnIndices ? void 0 : columnIndices.map(columnIndex => this._columnsController.columnOption(columnIndex));\r\n this._columnChooserList.beginUpdate();\r\n null === changedColumns || void 0 === changedColumns ? void 0 : changedColumns.forEach(_ref => {\r\n var {\r\n visible: visible,\r\n index: index\r\n } = _ref;\r\n if (visible) {\r\n this._columnChooserList.selectItem(index)\r\n } else {\r\n this._columnChooserList.unselectItem(index)\r\n }\r\n });\r\n this._columnChooserList.endUpdate()\r\n },\r\n _columnOptionChanged(e) {\r\n this.callBase(e);\r\n var isSelectMode = this.isSelectMode();\r\n if (isSelectMode && this._columnChooserList && true !== this._isUpdatingColumnVisibility) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var onlyVisibleChanged = optionNames.visible && 1 === optionNames.length;\r\n var columnIndices = isDefined(e.columnIndex) ? [e.columnIndex] : e.columnIndices;\r\n var needUpdate = COLUMN_OPTIONS_USED_IN_ITEMS.some(optionName => optionNames[optionName]) || e.changeTypes.columns && optionNames.all;\r\n if (needUpdate) {\r\n this._updateItemsSelection(columnIndices);\r\n if (!onlyVisibleChanged) {\r\n this._updateItems()\r\n }\r\n }\r\n }\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements() {\r\n var result = [];\r\n var isSelectMode = this.isSelectMode();\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach(column => {\r\n var $node = $nodes.filter(\"[data-item-id = '\".concat(column.index, \"']\"));\r\n var item = $node.length ? $node.children(\".\".concat(COLUMN_CHOOSER_ITEM_CLASS)).get(0) : null;\r\n result.push(item)\r\n })\r\n }\r\n return $(result)\r\n },\r\n getName: () => \"columnChooser\",\r\n getColumns() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging(column) {\r\n var isParentColumnVisible = this._columnsController.isParentColumnVisible(column.index);\r\n var isColumnHidden = !column.visible && column.allowHiding;\r\n return this.isColumnChooserVisible() && isParentColumnVisible && isColumnHidden\r\n },\r\n allowColumnHeaderDragging(column) {\r\n var isDragMode = !this.isSelectMode();\r\n return isDragMode && this.isColumnChooserVisible() && column.allowHiding\r\n },\r\n getBoundingRect() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n isSelectMode() {\r\n return \"select\" === this.option(\"columnChooser.mode\")\r\n },\r\n hasHiddenColumns() {\r\n var isEnabled = this.option(\"columnChooser.enabled\");\r\n var hiddenColumns = this.getColumns().filter(column => !column.visible);\r\n return isEnabled && hiddenColumns.length\r\n },\r\n publicMethods: () => [\"showColumnChooser\", \"hideColumnChooser\"]\r\n};\r\nvar ColumnChooserView = ColumnsView.inherit(columnChooserMembers);\r\nexport var columnChooserModule = {\r\n defaultOptions: () => ({\r\n columnChooser: {\r\n enabled: false,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n editorOptions: {}\r\n },\r\n selection: {\r\n allowSelectAll: false,\r\n selectByClick: false,\r\n recursive: false\r\n },\r\n position: void 0,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }),\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return this.callBase() || columnChooserEnabled\r\n }\r\n },\r\n columnHeadersView: {\r\n allowDragging(column) {\r\n var columnChooserView = this.component.getView(\"columnChooserView\");\r\n var isDragMode = !columnChooserView.isSelectMode();\r\n var isColumnChooserVisible = columnChooserView.isColumnChooserVisible();\r\n return isDragMode && isColumnChooserVisible && column.allowHiding || this.callBase(column)\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = isSelectMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../data/utils\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../../data/utils\";\r\nimport gridCore from \"../m_core\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var {\r\n selector: selector\r\n } = groups[j];\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nexport var GroupingHelper = Class.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var {\r\n hash: hash\r\n } = groupsInfo;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n return {\r\n ctor(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var {\r\n children: children\r\n } = groupsInfo[i];\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always(() => {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n })\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((a, b) => a.offset - b.offset)\r\n },\r\n findGroupInfo(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo(groupInfoData) {\r\n var groupInfo;\r\n var {\r\n path: path\r\n } = groupInfoData;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: () => true,\r\n refresh(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n ! function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n }(this._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading() {},\r\n handleDataLoaded(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_chooser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnChooserModule\r\n} from \"../../../grids/grid_core/column_chooser/m_column_chooser\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../../../data/errors\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport dataGridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nimport {\r\n createOffsetFilter,\r\n GroupingHelper as GroupingHelperCore\r\n} from \"./m_grouping_core\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((groupInfo, parents) => {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }, true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n ! function(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, expandedItemIndex => {\r\n var _a;\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select,\r\n langParams: null === (_a = options.storeLoadOptions) || void 0 === _a ? void 0 : _a.langParams\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done(data => {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n });\r\n deferreds.push(loadResult)\r\n });\r\n when.apply(null, deferreds).done(() => {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n })\r\n }(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (_, expandedPath) => {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n });\r\n var {\r\n filter: filter\r\n } = options.storeLoadOptions;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done(items => {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (index, item) => {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n });\r\n options.data.resolve(data)\r\n }).fail(options.data.reject)\r\n }(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((data, extra) => {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, groupInfo => {\r\n groupInfo.childrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(this, (groupInfo, parents) => {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n });\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, groupInfo => {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(this, (groupInfo, parents) => {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n });\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done(groupCount => {\r\n groupInfo.count = groupCount\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n },\r\n handleDataLoading(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((group, index) => {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n })\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n },\r\n handleDataLoadedCore(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups(groupInfo => {\r\n groupInfo.count = 0\r\n })\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options);\r\n options.lastLoadOptions.skips = options.skips;\r\n options.lastLoadOptions.takes = options.takes\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach(parent => {\r\n parent.isContinuationOnNextPage = true\r\n });\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: () => false,\r\n sortLastLevelGroupItems: items => items,\r\n refresh(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, groupInfo => {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((offset, count) => {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n keysEqual\r\n} from \"../../../../data/utils\";\r\nimport dataGridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nimport {\r\n createOffsetFilter,\r\n GroupingHelper as GroupingHelperCore\r\n} from \"./m_grouping_core\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((data, extra) => {\r\n d.resolve(extra && extra.totalCount)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups(groupInfo => {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }, false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, groupInfo => {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n });\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading(options) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var {\r\n group: group\r\n } = options.loadOptions;\r\n var skipCorrection = 0;\r\n ! function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n }(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, groupInfo => {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n }\r\n if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n });\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n }(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded(options, callBase) {\r\n var {\r\n collapsedGroups: collapsedGroups\r\n } = options;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var {\r\n data: data\r\n } = options;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done(groupedData => {\r\n data = groupedData\r\n });\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n ! function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n }(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: item => null === item.items,\r\n updateTotalItemsCount() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, groupInfo => {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n });\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done(count => {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n }).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n },\r\n allowCollapseAll: () => false,\r\n refresh(options, operationTypes) {\r\n var that = this;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, groupInfo => {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((offset, count) => {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/grouping/m_grouping.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n restoreFocus,\r\n setTabIndex\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../../../grids/grid_core/m_accessibility\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapter from \"../m_data_source_adapter\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./m_grouping_collapsed\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./m_grouping_expanded\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n },\r\n totalItemsCount() {\r\n var totalCount = this.callBase();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((groupInfo, parents) => {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }, false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always(() => {\r\n dataSource.endLoading()\r\n })\r\n }\r\n },\r\n _changeRowExpandCore(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n};\r\ndataSourceAdapter.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = {\r\n init() {\r\n this.callBase();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: item => item,\r\n _processGroupItems(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var {\r\n resultItems: resultItems\r\n } = options;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done(() => {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _changeRowExpandCore(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done(() => {\r\n that.load().done(d.resolve).fail(d.reject)\r\n }).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n optionChanged(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nvar isGroupPanelVisible = groupPanelOptions => {\r\n var visible = null === groupPanelOptions || void 0 === groupPanelOptions ? void 0 : groupPanelOptions.visible;\r\n return \"auto\" === visible ? \"desktop\" === devices.current().deviceType : !!visible\r\n};\r\nvar allowDragging = (groupPanelOptions, column) => {\r\n var isVisible = isGroupPanelVisible(groupPanelOptions);\r\n var canDrag = (null === groupPanelOptions || void 0 === groupPanelOptions ? void 0 : groupPanelOptions.allowColumnDragging) && column.allowGrouping;\r\n return isVisible && !!canDrag\r\n};\r\nexport var GroupingHeaderPanelExtender = {\r\n _getToolbarItems() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem);\r\n this.updateToolbarDimensions()\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible() {\r\n return isGroupPanelVisible(this.option(\"groupPanel\"))\r\n },\r\n _renderGroupPanelItems($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (index, groupColumn) => {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n });\r\n restoreFocus(this)\r\n },\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"<div>\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\".concat(DATAGRID_GROUP_PANEL_CLASS));\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.updateToolbarDimensions();\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent($groupPanel) {\r\n var groupColumns = this.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\".concat(DATAGRID_GROUP_PANEL_CONTAINER_CLASS)).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\".concat(DATAGRID_GROUP_PANEL_LABEL_CLASS)).css(\"maxWidth\", \"none\")\r\n }\r\n },\r\n allowDragging(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return allowDragging(groupPanelOptions, column)\r\n },\r\n getColumnElements() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS))\r\n },\r\n getColumns() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\".concat(DATAGRID_GROUP_PANEL_CLASS)).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n },\r\n getName: () => \"group\",\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS));\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var {\r\n column: column\r\n } = options;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n hasGroupedColumns() {\r\n return this._isGroupPanelVisible() && !!this.getColumns().length\r\n },\r\n optionChanged(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar GroupingRowsViewExtender = {\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\".concat(options.row.groupIndex));\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\".concat(DATAGRID_GROUP_ROW_CLASS)).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\".concat(DATAGRID_EXPAND_CLASS)).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n this.callBase(e)\r\n },\r\n _changeGroupRowState(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\".concat(row.groupIndex), \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = {\r\n getContextMenuItems(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = this.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n allowDragging(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return allowDragging(groupPanelOptions, column) || this.callBase(column)\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: () => ({\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: {\r\n _isProcessedItem: item => isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/master_detail/m_master_detail.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n grep\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nexport var masterDetailModule = {\r\n defaultOptions: () => ({\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init() {\r\n initMasterDetail(this);\r\n this.callBase()\r\n },\r\n expandAll(groupIndex) {\r\n if (groupIndex < 0) {\r\n this._isExpandAll = true;\r\n this._expandedItems = [];\r\n this.updateItems()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n collapseAll(groupIndex) {\r\n if (groupIndex < 0) {\r\n this._isExpandAll = false;\r\n this._expandedItems = [];\r\n this.updateItems()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n isRowExpanded(key) {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, this._expandedItems);\r\n if (Array.isArray(key)) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return !!(this._isExpandAll ^ (expandIndex >= 0 && this._expandedItems[expandIndex].visible))\r\n },\r\n _getRowIndicesForExpand(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore(key) {\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = this.callBase.apply(this, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, this._expandedItems);\r\n if (expandIndex >= 0) {\r\n var {\r\n visible: visible\r\n } = this._expandedItems[expandIndex];\r\n this._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n this._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem(data, options) {\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isExpanded = this.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (index, column) => {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n return\r\n })\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems(items, change) {\r\n var that = this;\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, item => item.visible)\r\n }\r\n each(items, (index, item) => {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n });\r\n return result\r\n },\r\n optionChanged(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids($element) {\r\n var $masterDetailRow = $element.closest(\".\".concat(MASTER_DETAIL_ROW_CLASS));\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\".concat(this.getWidgetContainerClass())).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n },\r\n _updateMasterDataGridCore(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n },\r\n _updateFixedMasterDetailGrids(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _toggleBestFitMode(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var editingController = this.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = this.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = this.callBase.apply(this, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: row => row && row.rowType && 0 === row.rowType.indexOf(\"detail\"),\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/master_detail.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n masterDetailModule\r\n} from \"../../../grids/grid_core/master_detail/m_master_detail\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"<div>\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataController = list._dataController;\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && !dataController.group()) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/select_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport errors from \"../core/errors\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport \"./list/modules/selection\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.clear()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && !this._popup.getFocusableElements().length) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n customItemCreateEvent: \"change\",\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.2\",\r\n alias: \"customItemCreateEvent\"\r\n }\r\n })\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var _items$indexOf;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_items$indexOf = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _items$indexOf ? _items$indexOf : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataController.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataController.isLoaded() ? (new Deferred).resolve() : this._dataController.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataController.pageSize();\r\n var isLastPage = this._dataController.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataController.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n each(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataController.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataController.getDataSource()) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _valueChangeEventIncludesBlur: function() {\r\n var valueChangeEvent = this.option(this._getValueChangeEventOptionName());\r\n return valueChangeEvent.includes(\"blur\")\r\n },\r\n _isPreventedFocusOutEvent: function(e) {\r\n return this._preventNestedFocusEvent(e) || this._valueChangeEventIncludesBlur()\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._isPreventedFocusOutEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n var shouldRestoreValue = selectedItem && \"\" !== selectedItemText;\r\n if (shouldRestoreValue) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = domAdapter.getActiveElement(this.element());\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"customItemCreateEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"customItemCreateEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function() {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop()\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 1,\r\n max: 12\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"<input>\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"<div>\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar TODAY_BUTTON_CLASS = \"dx-button-today\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\")\r\n })\r\n },\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n selectionMode: \"single\",\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _getTodayButtonConfig() {\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var isButtonsLocationDefault = \"default\" === buttonsLocation;\r\n var position = isButtonsLocationDefault ? [\"bottom\", \"center\"] : splitPair(buttonsLocation);\r\n var stylingMode = isMaterial() ? \"text\" : \"outlined\";\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: this.dateBox.option(\"todayButtonText\"),\r\n elementAttr: {\r\n class: TODAY_BUTTON_CLASS\r\n },\r\n stylingMode: stylingMode\r\n }\r\n }\r\n },\r\n _isCalendarVisible: function() {\r\n var {\r\n calendarOptions: calendarOptions\r\n } = this.dateBox.option();\r\n return isEmptyObject(calendarOptions) || false !== calendarOptions.visible\r\n },\r\n _getPopupToolbarItems(toolbarItems) {\r\n var useButtons = \"useButtons\" === this.dateBox.option(\"applyValueMode\");\r\n var shouldRenderTodayButton = useButtons && this._isCalendarVisible();\r\n if (shouldRenderTodayButton) {\r\n var todayButton = this._getTodayButtonConfig();\r\n return [todayButton, ...toolbarItems]\r\n }\r\n return toolbarItems\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return extend(true, _popupConfig, {\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _valueChangedHandler: function(e) {\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"<div>\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"<div>\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"<div>\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"<div>\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"<div>\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"<div>\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"<div>\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"<div>\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"<div>\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"<div>\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"<div>\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n })\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"<div>\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"<div>\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n })\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n return extend(calendarPopupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true,\r\n _showValidationIcon: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this._pickerType = pickerType;\r\n this._setShowDropDownButtonOption()\r\n },\r\n _setShowDropDownButtonOption() {\r\n var platform = devices.real().platform;\r\n var isMozillaOnAndroid = \"android\" === platform && browser.mozilla;\r\n var isNativePickerType = this._isNativeType();\r\n var showDropDownButton = \"generic\" !== platform || !isNativePickerType;\r\n if (isNativePickerType && isMozillaOnAndroid) {\r\n showDropDownButton = false\r\n }\r\n this.option({\r\n showDropDownButton: showDropDownButton\r\n })\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._updatePopupWidth();\r\n this._updatePopupHeight()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase();\r\n this._updatePopupHeight()\r\n },\r\n _updatePopupHeight: function() {\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon && this.option(\"_showValidationIcon\"));\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _getPopupToolbarItems() {\r\n var _this$_strategy$_getP, _this$_strategy$_getP2, _this$_strategy2;\r\n var defaultItems = this.callBase();\r\n return null !== (_this$_strategy$_getP = null === (_this$_strategy$_getP2 = (_this$_strategy2 = this._strategy)._getPopupToolbarItems) || void 0 === _this$_strategy$_getP2 ? void 0 : _this$_strategy$_getP2.call(_this$_strategy2, defaultItems)) && void 0 !== _this$_strategy$_getP ? _this$_strategy$_getP : defaultItems\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._recallInternalValidation(currentValue, validationError);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _recallInternalValidation(value, validationError) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(value);\r\n this._applyCustomValidation(value)\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this._updateInternalValidationState(isValid, validationMessage);\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _updateInternalValidationState(isValid, validationMessage) {\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n })\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy3;\r\n this.callBase();\r\n null === (_this$_strategy3 = this._strategy) || void 0 === _this$_strategy3 ? void 0 : _this$_strategy3.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"todayButtonText\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n case \"_showValidationIcon\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n clear: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, () => {\r\n this._enterHandler()\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(delta + step, true)\r\n },\r\n _changePartValue(step, lockOtherParts) {\r\n var isAmPmPartActive = \"a\" === this._getActivePartProp(\"pattern\");\r\n if (isAmPmPartActive) {\r\n this._toggleAmPm()\r\n } else {\r\n this._partIncrease(step, lockOtherParts)\r\n }\r\n },\r\n _toggleAmPm() {\r\n var currentValue = this._getActivePartProp(\"text\");\r\n var indexOfCurrentValue = defaultDateNames.getPeriodNames().indexOf(currentValue);\r\n var newValue = 1 ^ indexOfCurrentValue;\r\n this._setActivePartValue(newValue)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n max: max\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n max: max\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n max: max\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % max;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler() {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n clear() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateBox from \"./date_box/ui.date_box\";\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id,\r\n \"aria-labelledby\": options[\"aria-labelledby\"]\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareDateBox = function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n };\r\n var prepareTextBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n };\r\n var prepareNumberBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n };\r\n\r\n function prepareLookupEditor(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n var _options$editorType;\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n ! function(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n }(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = null !== (_options$editorType = options.editorType) && void 0 !== _options$editorType ? _options$editorType : \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n\r\n function prepareCheckBox(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }\r\n var prepareCustomEditor = options => {\r\n options.editorName = options.editorType;\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n }\r\n }, options)\r\n };\r\n var prepareEditor = options => {\r\n var prepareDefaultEditor = {\r\n dxDateBox: prepareDateBox,\r\n dxCheckBox: prepareCheckBox,\r\n dxNumberBox: prepareNumberBox,\r\n dxTextBox: prepareTextBox\r\n };\r\n if (options.lookup) {\r\n prepareLookupEditor(options)\r\n } else if (options.editorType) {\r\n var _prepareDefaultEditor;\r\n (null !== (_prepareDefaultEditor = prepareDefaultEditor[options.editorType]) && void 0 !== _prepareDefaultEditor ? _prepareDefaultEditor : prepareCustomEditor)(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n prepareDateBox(options);\r\n break;\r\n case \"boolean\":\r\n ! function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareLookupEditor(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n prepareCheckBox(options)\r\n }\r\n }(options);\r\n break;\r\n case \"number\":\r\n prepareNumberBox(options);\r\n break;\r\n default:\r\n prepareTextBox(options)\r\n }\r\n }\r\n };\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n prepareEditor(options);\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }! function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n }(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../../animation/position\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n setOuterHeight,\r\n setOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../../events/utils/index\";\r\nimport EditorFactoryMixin from \"../../../../ui/shared/ui.editor_factory_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nvar CELL_INVALID_CLASS = \"invalid\";\r\nvar FOCUSED_CELL_MODIFIED_CLASS = \"dx-focused-cell-modified\";\r\nvar FOCUSED_CELL_INVALID_CLASS = \"dx-focused-cell-invalid\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar ViewControllerWithMixin = modules.ViewController.inherit(EditorFactoryMixin);\r\nexport class EditorFactory extends ViewControllerWithMixin {\r\n _getFocusedElement($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus, .dx-adaptive-item-text:focus\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n }\r\n _getFocusCellSelector() {\r\n return \".dx-row > td\"\r\n }\r\n _updateFocusCore() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n var isHideBorder;\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n var $focusCell = $focus.closest(\"\".concat(this._getFocusCellSelector(), \", .\").concat(CELL_FOCUS_DISABLED_CLASS));\r\n if ($focusCell.get(0) !== $focus.get(0)) {\r\n isHideBorder = this._needHideBorder($focusCell);\r\n $focus = $focusCell\r\n }\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, isHideBorder);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n }\r\n _needHideBorder($element) {\r\n return $element.hasClass(EDITOR_INLINE_BLOCK)\r\n }\r\n _updateFocus(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout(() => {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n })\r\n }\r\n _updateFocusOverlaySize($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n }\r\n callbackNames() {\r\n return [\"focused\"]\r\n }\r\n focus($element, isHideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n }\r\n if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout(() => {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, isHideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n })\r\n }\r\n }\r\n refocus() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n }\r\n renderFocusOverlay($element, isHideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"<div>\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (isHideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n var isFocusedCellInvalid = $element.hasClass(this.addWidgetPrefix(CELL_INVALID_CLASS));\r\n var isFocusedCellModified = $element.hasClass(CELL_MODIFIED_CLASS) && !isFocusedCellInvalid;\r\n this._$focusOverlay.removeClass(DX_HIDDEN).toggleClass(FOCUSED_CELL_INVALID_CLASS, isFocusedCellInvalid).toggleClass(FOCUSED_CELL_MODIFIED_CLASS, isFocusedCellModified).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n resize() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n }\r\n loseFocus() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n }\r\n init() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n this._subscribedContainerRoot = this._getContainerRoot();\r\n eventsEngine.on(this._subscribedContainerRoot, UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n }\r\n _getContainerRoot() {\r\n var _a;\r\n var $container = null === (_a = this.component) || void 0 === _a ? void 0 : _a.$element();\r\n var root = domAdapter.getRootNode(null === $container || void 0 === $container ? void 0 : $container.get(0));\r\n if (root.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !root.host) {\r\n return domAdapter.getDocument()\r\n }\r\n return root\r\n }\r\n _attachContainerEventHandlers() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), e => {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n })\r\n }\r\n }\r\n dispose() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(this._subscribedContainerRoot, UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}\r\nexport var editorFactoryModule = {\r\n defaultOptions: () => ({}),\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editor_factory.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editorFactoryModule\r\n} from \"../../../grids/grid_core/editor_factory/m_editor_factory\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n isFluent\r\n} from \"./themes\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nvar getApplyButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"contained\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nvar getCancelButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"outlined\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nexport var custom = function(options) {\r\n var _options$title;\r\n var deferred = new Deferred;\r\n options = options || {};\r\n var $element = $(\"<div>\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var messageId = options.title ? null : new Guid;\r\n var $message = $(\"<div>\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml).attr(\"id\", messageId);\r\n var popupToolbarItems = [];\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_options$title = options.title) && void 0 !== _options$title ? _options$title : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n dragAndResizeArea: window,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message);\r\n if (messageId) {\r\n args.component.$overlayContent().attr(\"aria-labelledby\", messageId)\r\n }\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n onHidden: function(_ref) {\r\n var {\r\n element: element\r\n } = _ref;\r\n $(element).remove()\r\n },\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n var buttonOptions = options.buttons || [DEFAULT_BUTTON];\r\n buttonOptions.forEach(options => {\r\n var action = new Action(options.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: _extends({}, options, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n });\r\n popupInstance.option(\"toolbarItems\", popupToolbarItems);\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide()\r\n }\r\n return {\r\n show: function() {\r\n if (\"phone\" === devices.real().deviceType) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"90%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends({}, DEFAULT_BUTTON, getApplyButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends({\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, getApplyButtonConfig()), _extends({\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }, getCancelButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex]:not([disabled]), \".concat(EDITORS_INPUT_SELECTOR, \":not([disabled])\");\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var CELL_BASED_MODES = [EDIT_MODE_BATCH, EDIT_MODE_CELL];\r\nexport var REQUIRED_EDITOR_LABELLEDBY_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\nexport var READONLY_CLASS = \"readonly\";\r\nexport var LINK_CLASS = \"dx-link\";\r\nexport var LINK_ICON_CLASS = \"dx-link-icon\";\r\nexport var ROW_SELECTED = \"dx-selection\";\r\nexport var EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nexport var COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nexport var COMMAND_EDIT_WITH_ICONS_CLASS = \"\".concat(COMMAND_EDIT_CLASS, \"-with-icons\");\r\nexport var INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nexport var ROW_INSERTED = \"dx-row-inserted\";\r\nexport var ROW_MODIFIED = \"dx-row-modified\";\r\nexport var CELL_MODIFIED = \"dx-cell-modified\";\r\nexport var EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nexport var CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nexport var DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nexport var DEFAULT_START_EDIT_ACTION = \"click\";\r\nexport var EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nexport var EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nexport var METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nexport var ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nexport var BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nexport var EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nexport var FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nexport var ADD_ROW_BUTTON_CLASS = \"addrow-button\";\r\nexport var DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nexport var DATA_ROW_CLASS = \"dx-data-row\";\r\nexport var ROW_REMOVED = \"dx-row-removed\";\r\nvar isRenovatedScrollable = !!Scrollable.IS_RENOVATED_WIDGET;\r\nexport var EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nexport var EDIT_POPUP_CLASS = \"edit-popup\";\r\nexport var EDIT_POPUP_FORM_CLASS = \"edit-popup-form\";\r\nexport var FOCUSABLE_ELEMENT_CLASS = isRenovatedScrollable ? \"dx-scrollable\" : \"dx-scrollable-container\";\r\nexport var BUTTON_CLASS = \"dx-button\";\r\nexport var FORM_BUTTONS_CONTAINER_CLASS = \"form-buttons-container\";\r\nexport var EDIT_ROW = \"dx-edit-row\";\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nvar NEW_ROW_TEMP_KEY_PREFIX = \"_DX_KEY_\";\r\nvar GUID_LENGTH = 36;\r\nexport var createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nexport var isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nexport var isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nexport var getEditingTexts = options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n};\r\nexport var generateNewRowTempKey = () => \"\".concat(NEW_ROW_TEMP_KEY_PREFIX).concat(new Guid);\r\nexport var isNewRowTempKey = key => \"string\" === typeof key && key.startsWith(NEW_ROW_TEMP_KEY_PREFIX) && key.length === NEW_ROW_TEMP_KEY_PREFIX.length + GUID_LENGTH;\r\nexport var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n};\r\nexport function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n}\r\nexport function isEditable($element) {\r\n return $element && ($element.is(\"input\") || $element.is(\"textarea\"))\r\n}\r\nexport var getEditorType = item => {\r\n var _a;\r\n var {\r\n column: column\r\n } = item;\r\n return item.isCustomEditorType ? item.editorType : null === (_a = column.formItem) || void 0 === _a ? void 0 : _a.editorType\r\n};\r\nexport var forEachFormItems = (items, callBack) => {\r\n items.forEach(item => {\r\n if (item.items || item.tabs) {\r\n forEachFormItems(item.items || item.tabs, callBack)\r\n } else {\r\n callBack(item)\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../../core/devices\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iconUtils from \"../../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n confirm\r\n} from \"../../../../ui/dialog\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../../ui/themes\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ACTION_OPTION_NAMES,\r\n BUTTON_NAMES,\r\n CELL_BASED_MODES,\r\n CELL_FOCUS_DISABLED_CLASS,\r\n CELL_MODIFIED,\r\n COMMAND_EDIT_CLASS,\r\n COMMAND_EDIT_WITH_ICONS_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n DATA_EDIT_DATA_UPDATE_TYPE,\r\n DEFAULT_START_EDIT_ACTION,\r\n EDIT_BUTTON_CLASS,\r\n EDIT_FORM_CLASS,\r\n EDIT_ICON_CLASS,\r\n EDIT_LINK_CLASS,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n EDITING_CHANGES_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_NAMESPACE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITOR_CELL_CLASS,\r\n EDITORS_INPUT_SELECTOR,\r\n FIRST_NEW_ROW_POSITION,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n INSERT_INDEX,\r\n LAST_NEW_ROW_POSITION,\r\n LINK_CLASS,\r\n LINK_ICON_CLASS,\r\n METHOD_NAMES,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n READONLY_CLASS,\r\n REQUIRED_EDITOR_LABELLEDBY_MODES,\r\n ROW_BASED_MODES,\r\n ROW_CLASS,\r\n ROW_INSERTED,\r\n ROW_MODIFIED,\r\n ROW_SELECTED,\r\n TARGET_COMPONENT_NAME,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./const\";\r\nimport {\r\n createFailureHandler,\r\n generateNewRowTempKey,\r\n getButtonIndex,\r\n getButtonName,\r\n getEditingTexts,\r\n isEditingCell,\r\n isEditingOrShowEditorAlwaysDataCell\r\n} from \"./m_editing_utils\";\r\nclass EditingControllerImpl extends modules.ViewController {\r\n init() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._lastOperation = null;\r\n this._changes = [];\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => {\r\n d.reject(\"cancel\")\r\n })\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n }\r\n getEditMode() {\r\n var _a;\r\n var editMode = null !== (_a = this.option(\"editing.mode\")) && void 0 !== _a ? _a : EDIT_MODE_ROW;\r\n if (EDIT_MODES.includes(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n }\r\n isCellBasedEditMode() {\r\n var editMode = this.getEditMode();\r\n return CELL_BASED_MODES.includes(editMode)\r\n }\r\n _getDefaultEditorTemplate() {\r\n return (container, options) => {\r\n var $editor = $(\"<div>\").appendTo(container);\r\n var editorOptions = extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n });\r\n var needLabel = REQUIRED_EDITOR_LABELLEDBY_MODES.includes(this.getEditMode());\r\n if (needLabel) {\r\n editorOptions[\"aria-labelledby\"] = options.column.headerId\r\n }\r\n this.getController(\"editorFactory\").createEditor($editor, editorOptions)\r\n }\r\n }\r\n _getNewRowPosition() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n }\r\n getChanges() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n }\r\n getInsertRowCount() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n }\r\n resetChanges() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n }\r\n _getInternalData(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n }\r\n _addInternalData(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n }\r\n _getOldData(key) {\r\n var _a;\r\n return null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.oldData\r\n }\r\n getUpdatedData(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n }\r\n getInsertedData() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n }\r\n getRemovedData() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n }\r\n _fireDataErrorOccurred(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n }\r\n _needToCloseEditableCell($targetElement) {}\r\n _closeEditItem($targetElement) {}\r\n _handleDataChanged(args) {}\r\n _isDefaultButtonVisible(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n }\r\n _isButtonVisible(button, options) {\r\n var {\r\n visible: visible\r\n } = button;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n }\r\n _isButtonDisabled(button, options) {\r\n var {\r\n disabled: disabled\r\n } = button;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n }\r\n _getButtonConfig(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = getEditingTexts(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var {\r\n event: event\r\n } = e;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n }\r\n _getEditingButtons(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n }\r\n _renderEditingButtons($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n }\r\n _getEditCommandCellTemplate() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n if (options.watch) {\r\n var dispose = options.watch(() => buttons.map(button => ({\r\n visible: this._isButtonVisible(button, options),\r\n disabled: this._isButtonDisabled(button, options)\r\n })), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n }\r\n isRowBasedEditMode() {\r\n var editMode = this.getEditMode();\r\n return ROW_BASED_MODES.includes(editMode)\r\n }\r\n getFirstEditableColumnIndex() {\r\n var columnsController = this.getController(\"columns\");\r\n var columnIndex;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n each(visibleColumns, (index, column) => {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n });\r\n return columnIndex\r\n }\r\n getFirstEditableCellInRow(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var columnIndex = this.getFirstEditableColumnIndex();\r\n return null === rowsView || void 0 === rowsView ? void 0 : rowsView._getCellElement(rowIndex || 0, columnIndex)\r\n }\r\n getFocusedCellInRow(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n }\r\n getIndexByKey(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n }\r\n hasChanges(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n }\r\n _silentOption(name, value) {\r\n if (\"editing.changes\" === name) {\r\n this._changes = deepExtendArraySafe([], value)\r\n }\r\n super._silentOption(name, value)\r\n }\r\n optionChanged(args) {\r\n if (\"editing\" === args.name) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n var isEqual = equalByValue(args.value, this._changes, {\r\n maxDepth: 4\r\n });\r\n if (!isEqual) {\r\n this._changes = deepExtendArraySafe([], args.value);\r\n this._handleChangesChange(args)\r\n }\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _handleEditRowKeyChange(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n }\r\n _handleChangesChange(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n var _a;\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var items = dataController.getCachedStoreData() || (null === (_a = dataController.items()) || void 0 === _a ? void 0 : _a.map(item => item.data));\r\n var rowIndex = gridCoreUtils.getIndexByKey(change.key, items, dataController.key());\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: items[rowIndex]\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false,\r\n isOptionChanged: true\r\n })\r\n }\r\n publicMethods() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n }\r\n refresh() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n }\r\n _refreshCore(params) {}\r\n isEditing() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n }\r\n isEditRow(rowIndex) {\r\n return false\r\n }\r\n _setEditRowKey(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n if (this._refocusEditCell) {\r\n this._refocusEditCell = false;\r\n this._focusEditingCell()\r\n }\r\n }\r\n _setEditRowKeyByIndex(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n }\r\n getEditRowIndex() {\r\n return this._getVisibleEditRowIndex()\r\n }\r\n getEditFormRowIndex() {\r\n return -1\r\n }\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n }\r\n isEditCell(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n }\r\n getPopupContent() {}\r\n _isProcessedItem(item) {\r\n return false\r\n }\r\n _getInsertRowIndex(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n _generateNewItem(key) {\r\n var _a;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (null === insertInfo || void 0 === insertInfo ? void 0 : insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n }\r\n _getLoadedRowIndex(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n }\r\n processItems(items, e) {\r\n var {\r\n changeType: changeType\r\n } = e;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _a;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var {\r\n key: key\r\n } = change;\r\n var insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n }\r\n processDataItem(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n }\r\n _initNewRow(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n }\r\n _createInsertInfo() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n }\r\n _addInsertInfo(change, parentKey) {\r\n var _a;\r\n var insertInfo;\r\n change.key = this.getChangeKeyValue(change);\r\n var {\r\n key: key\r\n } = change;\r\n insertInfo = null === (_a = this._getInternalData(key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n }\r\n getChangeKeyValue(change) {\r\n if (isDefined(change.key)) {\r\n return change.key\r\n }\r\n var keyExpr = this._dataController.key();\r\n var keyValue;\r\n if (change.data && keyExpr && !Array.isArray(keyExpr)) {\r\n keyValue = change.data[keyExpr]\r\n }\r\n if (!isDefined(keyValue)) {\r\n keyValue = generateNewRowTempKey()\r\n }\r\n return keyValue\r\n }\r\n _setInsertAfterOrBeforeKey(change, parentKey) {\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var rowsView = this.getView(\"rowsView\");\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n }\r\n _getInsertIndex() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _a;\r\n var insertInfo = null === (_a = this._getInternalData(editItem.key)) || void 0 === _a ? void 0 : _a.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n }\r\n _getInsertAfterOrBeforeKey(insertChange) {\r\n var _a;\r\n return null !== (_a = insertChange.insertAfterKey) && void 0 !== _a ? _a : insertChange.insertBeforeKey\r\n }\r\n _getPageIndexToInsertRow() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n }\r\n if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n }\r\n addRow(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n }\r\n _addRow(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _allowRowAdding(params) {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n }\r\n _addRowCore(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var {\r\n key: key\r\n } = insertInfo;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n }\r\n _navigateToNewRow(oldEditRowIndex, change, editRowIndex) {\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n var focusController = this.getController(\"focus\");\r\n editRowIndex = null !== editRowIndex && void 0 !== editRowIndex ? editRowIndex : -1;\r\n change = null !== change && void 0 !== change ? change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n when(null === focusController || void 0 === focusController ? void 0 : focusController.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n var _a;\r\n null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true).done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n })\r\n });\r\n return d.promise()\r\n }\r\n _showAddedRow(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n }\r\n _beforeFocusElementInRow(rowIndex) {}\r\n _focusFirstEditableCellInRow(rowIndex) {\r\n var dataController = this._dataController;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n null === keyboardController || void 0 === keyboardController ? void 0 : keyboardController.focus($firstCell);\r\n this.option(\"focusedRowKey\", key);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n }\r\n _isEditingStart(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n }\r\n _beforeUpdateItems(rowIndices, rowIndex) {}\r\n _getVisibleEditColumnIndex() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n }\r\n _setEditColumnNameByIndex(index, silent) {\r\n var _a;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_a = visibleColumns[index]) || void 0 === _a ? void 0 : _a.name, silent)\r\n }\r\n _setEditColumnName(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n }\r\n _resetEditColumnName() {\r\n this._setEditColumnName(null, true)\r\n }\r\n _getEditColumn() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n }\r\n _getColumnByName(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n }\r\n _getVisibleEditRowIndex(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n }\r\n _getEditRowIndexCorrection(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n }\r\n _resetEditRowKey() {\r\n this._refocusEditCell = false;\r\n this._setEditRowKey(null, true)\r\n }\r\n _resetEditIndices() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n editRow(rowIndex) {\r\n var _a;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_a = item.oldData) && void 0 !== _a ? _a : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n }\r\n _editRowFromOptionChanged(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n }\r\n _editRowFromOptionChangedCore(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n }\r\n _focusEditorIfNeed() {}\r\n _showEditPopup(rowIndex, repaintForm) {}\r\n _repaintEditPopup() {}\r\n _getEditPopupHiddenHandler() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n }\r\n _getPopupEditFormTemplate(rowIndex) {}\r\n _getSaveButtonConfig() {\r\n var buttonConfig = {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n };\r\n if (isFluent(current())) {\r\n buttonConfig.stylingMode = \"contained\";\r\n buttonConfig.type = \"default\"\r\n }\r\n return buttonConfig\r\n }\r\n _getCancelButtonConfig() {\r\n var buttonConfig = {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n };\r\n if (isFluent(current())) {\r\n buttonConfig.stylingMode = \"outlined\"\r\n }\r\n return buttonConfig\r\n }\r\n _removeInternalData(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n }\r\n _updateInsertAfterOrBeforeKeys(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n }\r\n _removeChange(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var {\r\n key: key\r\n } = changes[index];\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n }\r\n executeOperation(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n }\r\n waitForDeferredOperations() {\r\n return when(...this._deferreds)\r\n }\r\n _processCanceledEditingCell() {}\r\n _repaintEditCell(column, oldColumn, oldEditRowIndex) {\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this._needFocusEditor = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n }\r\n _delayedInputFocus($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n }\r\n _focusEditingCell(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n }\r\n deleteRow(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n }\r\n _checkAndDeleteRow(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n _deleteRowCore(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n }\r\n _afterDeleteRow(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n }\r\n undeleteRow(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n }\r\n _fireOnSaving() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n }\r\n _executeEditingAction(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done(cancel => {\r\n if (cancel) {\r\n setTimeout(() => {\r\n deferred.resolve(\"cancel\")\r\n })\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n }).fail(createFailureHandler(deferred));\r\n return deferred\r\n }\r\n _processChanges(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, () => store.remove(change.key).done(key => {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, () => store.insert(params.data).done((data, key) => {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, () => store.update(change.key, params.newData).done((data, key) => {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always(data => {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n }).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n }\r\n _processRemoveIfError(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n }\r\n _processRemove(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n }\r\n _processRemoveCore(changes, editIndex, processIfBatch) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n }\r\n _processSaveEditDataResult(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n }\r\n _fireSaveEditDataEvents(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n }\r\n saveEditData() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n this._saveEditDataInner().always(() => {\r\n this._saving = false;\r\n if (this._refocusEditCell) {\r\n this._focusEditingCell()\r\n }\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _resolveAfterSave(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done(() => {\r\n deferred.resolve(error)\r\n }).fail(deferred.reject)\r\n }\r\n _saveEditDataInner() {\r\n var result = new Deferred;\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataSource = this._dataController.dataSource();\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n this._refocusEditCell = true;\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n this._refocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n }\r\n _beforeEndSaving(changes) {\r\n this._resetEditIndices()\r\n }\r\n _endSaving(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n }\r\n _cancelSaving(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n }\r\n _refreshDataAfterSave(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n }\r\n isSaving() {\r\n return this._saving\r\n }\r\n _updateEditColumn() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \".concat(COMMAND_EDIT_WITH_ICONS_CLASS) : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n }\r\n _isEditColumnVisible() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n }\r\n _isEditButtonDisabled() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n }\r\n _updateEditButtons() {\r\n var headerPanel = this.getView(\"headerPanel\");\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n }\r\n _applyModified($element, options) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n }\r\n _beforeCloseEditCellInBatchMode(rowIndices) {}\r\n cancelEditData() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n }\r\n _cancelEditDataCore() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n }\r\n _afterCancelEditData(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n }\r\n _hideEditPopup() {}\r\n hasEditData() {\r\n return this.hasChanges()\r\n }\r\n update(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n }\r\n _getRowIndicesForCascadeUpdating(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n }\r\n addDeferred(deferred) {\r\n if (!this._deferreds.includes(deferred)) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n }\r\n _prepareChange(options, value, text) {\r\n var _a;\r\n var newData = {};\r\n var oldData = null === (_a = options.row) || void 0 === _a ? void 0 : _a.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done(() => {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n }\r\n _updateRowValues(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.row.values = row.values;\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n }\r\n updateFieldValue(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }\r\n _focusPreviousEditingCellIfNeed(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n }\r\n _needUpdateRow(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n }\r\n _applyChange(options, params, forceUpdateRow) {\r\n var changeOptions = _extends(_extends({}, options), {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n }\r\n _applyChangeCore(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var {\r\n row: row\r\n } = options;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n }\r\n _updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n }\r\n _updateEditRow(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n }\r\n _updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n }\r\n _updateRowWithDelay(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var _a;\r\n var elementContainer = (null === (_a = this._editForm) || void 0 === _a ? void 0 : _a.element()) || this.component.$element().get(0);\r\n var $focusedElement = $(domAdapter.getActiveElement(elementContainer));\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n var _a;\r\n focusedElement = domAdapter.getActiveElement(null === (_a = this.component.$element()) || void 0 === _a ? void 0 : _a.get(0));\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n }\r\n _validateEditFormAfterUpdate() {}\r\n _addChange(changeParams, options) {\r\n var _a;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_a = this.getChanges()) || void 0 === _a ? void 0 : _a[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n }\r\n _getFormEditItemTemplate(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n }\r\n getColumnTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n }\r\n _createButton($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"<a>\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"<span>\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\".concat(\"dxIcon\" === iconType ? \"-\" : \" \").concat(icon)).attr(\"title\", button.text)\r\n }\r\n $button.addClass(LINK_ICON_CLASS);\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction(e => {\r\n var _a;\r\n null === (_a = button.onClick) || void 0 === _a ? void 0 : _a.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n options.renderAsync = false;\r\n this._rowsView.renderTemplate($button, button.template, options, true, change)\r\n }\r\n }\r\n }\r\n getButtonLocalizationNames() {\r\n return {\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }\r\n }\r\n prepareButtonItem(headerPanel, name, methodName, sortIndex) {\r\n var _a;\r\n var editingTexts = null !== (_a = this.option(\"editing.texts\")) && void 0 !== _a ? _a : {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(\"\".concat(EDIT_BUTTON_CLASS, \" \").concat(this.addWidgetPrefix(className), \"-button\")))\r\n },\r\n icon: \"edit-button-\".concat(className),\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: \"\".concat(name, \"Button\"),\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n }\r\n prepareEditButtons(headerPanel) {\r\n var _a;\r\n var editingOptions = null !== (_a = this.option(\"editing\")) && void 0 !== _a ? _a : {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n }\r\n highlightDataCell($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n }\r\n _afterInsertRow(key) {}\r\n _beforeSaveEditData(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n }\r\n _afterSaveEditData() {}\r\n _beforeCancelEditData() {}\r\n _allowEditAction(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\".concat(actionName));\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n }\r\n allowUpdating(options, eventName) {\r\n var _a;\r\n var startEditAction = null !== (_a = this.option(\"editing.startEditAction\")) && void 0 !== _a ? _a : DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n }\r\n allowDeleting(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n }\r\n isCellModified(parameters) {\r\n var _a, _b, _c;\r\n var {\r\n columnIndex: columnIndex\r\n } = parameters;\r\n var modifiedValue = null === (_b = null === (_a = null === parameters || void 0 === parameters ? void 0 : parameters.row) || void 0 === _a ? void 0 : _a.modifiedValues) || void 0 === _b ? void 0 : _b[columnIndex];\r\n if (null === (_c = null === parameters || void 0 === parameters ? void 0 : parameters.row) || void 0 === _c ? void 0 : _c.isNewRow) {\r\n modifiedValue = parameters.value\r\n }\r\n return void 0 !== modifiedValue\r\n }\r\n isNewRowInEditMode() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n }\r\n _isRowDeleteAllowed() {}\r\n shouldHighlightCell(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n}\r\nexport var editingModule = {\r\n defaultOptions: () => ({\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }),\r\n controllers: {\r\n editing: EditingControllerImpl\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow(items) {\r\n var _a;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n editItem.isEditing = true;\r\n null === (_a = this._updateEditItem) || void 0 === _a ? void 0 : _a.call(this, editItem)\r\n }\r\n },\r\n _updateItemsCore(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items(true))\r\n },\r\n _applyChangeUpdate(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n needToRefreshOnDataSourceChange(args) {\r\n var editingController = this.getController(\"editing\");\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && editingController.isSaving();\r\n return !isParasiteChange\r\n },\r\n _handleDataSourceChange(args) {\r\n var result = this.callBase(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellIndex($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (index, cellElement) => {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n });\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n publicMethods() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || this.callBase(options)\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore($element) {\r\n var $targetElement = $element.closest(\".\".concat(ROW_CLASS, \"> td:not(.dx-master-detail-cell)\"));\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n var isShowEditorAlways = column && column.showEditorAlways;\r\n if (isEditedCell) {\r\n return true\r\n }\r\n if (\"down\" === eventName) {\r\n if (devices.real().ios || devices.real().android) {\r\n resetActiveElement()\r\n }\r\n return isShowEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && this._pointerDownTarget === $targetElement.get(0)) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown(e) {\r\n this._pointerDownTarget = e.event.target;\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared($cell, parameters) {\r\n var _a;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var {\r\n alignment: alignment\r\n } = parameters.column;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null === (_a = parameters.column) || void 0 === _a ? void 0 : _a.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: noop,\r\n _formItemPrepared: noop,\r\n _getCellOptions(options) {\r\n var cellOptions = this.callBase(options);\r\n var {\r\n columnIndex: columnIndex,\r\n row: row\r\n } = options;\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n cellOptions.removed = row.removed;\r\n if (row.modified) {\r\n cellOptions.modified = void 0 !== row.modifiedValues[columnIndex]\r\n }\r\n return cellOptions\r\n },\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (cellOptions.removed) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaDeletedCell\"), $cell)\r\n }\r\n if (cellOptions.modified) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaModifiedCell\"), $cell)\r\n }\r\n var isEditableCell = cellOptions.column.allowEditing && !cellOptions.removed && !cellOptions.modified && \"data\" === cellOptions.rowType && cellOptions.column.calculateCellValue === cellOptions.column.defaultCalculateCellValue && this._editingController.isCellBasedEditMode();\r\n if (isEditableCell) {\r\n this.setAria(\"roledescription\", messageLocalization.format(\"dxDataGrid-ariaEditableCell\"), $cell)\r\n }\r\n },\r\n _createCell(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n cellValue(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n }\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n },\r\n dispose() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore() {\r\n this.callBase.apply(this, arguments);\r\n return this.waitAsyncTemplates(true).done(() => {\r\n this._editingController._focusEditorIfNeed()\r\n })\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged(args) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_editing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/editor_factory\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n editingModule\r\n} from \"../../grids/grid_core/editing/m_editing\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"editing\", extend(true, {}, editingModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_row_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n EDIT_FORM_CLASS,\r\n EDIT_MODE_ROW,\r\n EDIT_ROW,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS\r\n} from \"./const\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n isRowEditMode() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n }\r\n _afterCancelEditData(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n super._afterCancelEditData(rowIndex)\r\n }\r\n }\r\n _isDefaultButtonVisible(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isEditRow = options.row && equalByValue(options.row.key, this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return super._isDefaultButtonVisible(button, options) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n }\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n isEditRow(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n }\r\n _cancelSaving(result) {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n super._cancelSaving(result)\r\n }\r\n _refreshCore(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n super._refreshCore(params)\r\n }\r\n _isEditColumnVisible() {\r\n var result = super._isEditColumnVisible();\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n }\r\n _focusEditorIfNeed() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (MODES_WITH_DELAYED_FOCUS.includes(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n};\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender,\r\n data: {\r\n _getChangedColumnIndices(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n },\r\n _update(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\".concat(EDIT_ROW)).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingRowBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_row_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (function(guid, _ref) {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n }))\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/multi_view/ui.multi_view.animation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n locate\r\n} from \"../animation/translator\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/ui.multi_view.animation\";\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport messageLocalization from \"../localization/message\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"<div>\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"<div>\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._findBoundaryIndices();\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0]);\r\n this._setElementAria();\r\n this._setItemsAria()\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new Deferred;\r\n deferred.done((function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n }));\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _getElementAria: () => ({\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-elementAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-elementAriaLabel\")\r\n }),\r\n _setElementAria() {\r\n var aria = this._getElementAria();\r\n this.setAria(aria, this.$element())\r\n },\r\n _setItemsAria() {\r\n var $itemElements = this._itemElements();\r\n var itemsCount = this._itemsCount();\r\n $itemElements.each((itemIndex, item) => {\r\n var aria = this._getItemAria({\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n });\r\n this.setAria(aria, $(item))\r\n })\r\n },\r\n _getItemAria(_ref) {\r\n var {\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n } = _ref;\r\n var aria = {\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-itemAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-itemAriaLabel\", itemIndex + 1, itemsCount)\r\n };\r\n return aria\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each((itemIndex, item) => {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n })\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _findBoundaryIndices() {\r\n var _firstIndex2, _lastIndex;\r\n var items = this.option(\"items\");\r\n var firstIndex;\r\n var lastIndex;\r\n items.forEach((item, index) => {\r\n var isDisabled = Boolean(null === item || void 0 === item ? void 0 : item.disabled);\r\n if (!isDisabled) {\r\n var _firstIndex;\r\n null !== (_firstIndex = firstIndex) && void 0 !== _firstIndex ? _firstIndex : firstIndex = index;\r\n lastIndex = index\r\n }\r\n });\r\n this._boundaryIndices = {\r\n firstAvailableIndex: null !== (_firstIndex2 = firstIndex) && void 0 !== _firstIndex2 ? _firstIndex2 : 0,\r\n lastAvailableIndex: null !== (_lastIndex = lastIndex) && void 0 !== _lastIndex ? _lastIndex : items.length - 1,\r\n firstTrueIndex: 0,\r\n lastTrueIndex: items.length - 1\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex\r\n } = this._boundaryIndices;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > firstAvailableIndex : selectedIndex < lastAvailableIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastAvailableIndex : selectedIndex > firstAvailableIndex));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _findNextAvailableIndex(index, offset) {\r\n var {\r\n items: items,\r\n loop: loop\r\n } = this.option();\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex,\r\n firstTrueIndex: firstTrueIndex,\r\n lastTrueIndex: lastTrueIndex\r\n } = this._boundaryIndices;\r\n var isFirstActive = [firstTrueIndex, firstAvailableIndex].includes(index);\r\n var isLastActive = [lastTrueIndex, lastAvailableIndex].includes(index);\r\n if (loop) {\r\n if (isFirstActive && offset < 0) {\r\n return lastAvailableIndex\r\n } else if (isLastActive && offset > 0) {\r\n return firstAvailableIndex\r\n }\r\n }\r\n for (var i = index + offset; i >= firstAvailableIndex && i <= lastAvailableIndex; i += offset) {\r\n var isDisabled = Boolean(items[i].disabled);\r\n if (!isDisabled) {\r\n return i\r\n }\r\n }\r\n return index\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n var newSelectedIndex = this._findNextAvailableIndex(this.option(\"selectedIndex\"), -targetOffset);\r\n this.option(\"selectedIndex\", newSelectedIndex);\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _dispose: function() {\r\n delete this._boundaryIndices;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this._findBoundaryIndices();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Button from \"./button\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport TabsItem from \"./tabs/item\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./tabs/constants\";\r\nimport {\r\n isMaterial,\r\n isFluent,\r\n current as currentTheme\r\n} from \"./themes\";\r\nimport holdEvent from \"../events/hold\";\r\nimport Scrollable from \"./scroll_view/ui.scrollable\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isReachedLeft,\r\n isReachedRight,\r\n isReachedTop,\r\n isReachedBottom\r\n} from \"../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_SCROLLING_ENABLED_CLASS = \"dx-tabs-scrolling-enabled\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar FOCUSED_DISABLED_NEXT_TAB_CLASS = \"dx-focused-disabled-next-tab\";\r\nvar FOCUSED_DISABLED_PREV_TAB_CLASS = \"dx-focused-disabled-prev-tab\";\r\nvar TABS_ORIENTATION_CLASS = {\r\n vertical: \"dx-tabs-vertical\",\r\n horizontal: \"dx-tabs-horizontal\"\r\n};\r\nvar INDICATOR_POSITION_CLASS = {\r\n top: \"dx-tab-indicator-position-top\",\r\n right: \"dx-tab-indicator-position-right\",\r\n bottom: \"dx-tab-indicator-position-bottom\",\r\n left: \"dx-tab-indicator-position-left\"\r\n};\r\nvar TABS_ICON_POSITION_CLASS = {\r\n top: \"dx-tabs-icon-position-top\",\r\n end: \"dx-tabs-icon-position-end\",\r\n bottom: \"dx-tabs-icon-position-bottom\",\r\n start: \"dx-tabs-icon-position-start\"\r\n};\r\nvar TABS_STYLING_MODE_CLASS = {\r\n primary: \"dx-tabs-styling-mode-primary\",\r\n secondary: \"dx-tabs-styling-mode-secondary\"\r\n};\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar INDICATOR_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar SCROLLABLE_DIRECTION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n orientation: ORIENTATION.horizontal,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n },\r\n _indicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" !== devices.real().deviceType,\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top,\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterial(themeName),\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false,\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init() {\r\n var {\r\n orientation: orientation,\r\n stylingMode: stylingMode,\r\n scrollingEnabled: scrollingEnabled\r\n } = this.option();\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this.callBase();\r\n this.$element().addClass(TABS_CLASS);\r\n this._toggleScrollingEnabledClass(scrollingEnabled);\r\n this._toggleOrientationClass(orientation);\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n this._toggleIconPositionClass();\r\n this._toggleStylingModeClass(stylingMode);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n var text = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.text : data;\r\n if (isDefined(text)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.text(text);\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.text(text);\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate((($container, data) => {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }).bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = new Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsState();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isVertical() {\r\n return this.option(\"orientation\") === ORIENTATION.vertical\r\n },\r\n _isItemsSizeExceeded() {\r\n var isVertical = this._isVertical();\r\n var isItemsSizeExceeded = isVertical ? this._isItemsHeightExceeded() : this._isItemsWidthExceeded();\r\n return isItemsSizeExceeded\r\n },\r\n _isItemsWidthExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var tabItemTotalWidth = this._getSummaryItemsSize(\"width\", $visibleItems, true);\r\n var elementWidth = getWidth(this.$element());\r\n if ([tabItemTotalWidth, elementWidth].includes(0)) {\r\n return false\r\n }\r\n var isItemsWidthExceeded = tabItemTotalWidth > elementWidth - 1;\r\n return isItemsWidthExceeded\r\n },\r\n _isItemsHeightExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var itemsHeight = this._getSummaryItemsSize(\"height\", $visibleItems, true);\r\n var elementHeight = getHeight(this.$element());\r\n var isItemsHeightExceeded = itemsHeight - 1 > elementHeight;\r\n return isItemsHeightExceeded\r\n },\r\n _needStretchItems() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabItemWidth = Math.max.apply(null, itemsWidth);\r\n var requireWidth = elementWidth / $visibleItems.length;\r\n var needStretchItems = maxTabItemWidth > requireWidth + 1;\r\n return needStretchItems\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _getPointerEvent: () => pointerEvents.up,\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(TABS_WRAPPER_CLASS);\r\n this.setAria(\"role\", \"tablist\", this._$wrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _getScrollableDirection() {\r\n var isVertical = this._isVertical();\r\n var scrollableDirection = isVertical ? SCROLLABLE_DIRECTION.vertical : SCROLLABLE_DIRECTION.horizontal;\r\n return scrollableDirection\r\n },\r\n _updateScrollable() {\r\n if (this.getScrollable()) {\r\n this._cleanScrolling()\r\n }\r\n this._renderScrolling()\r\n },\r\n _renderScrollable() {\r\n var $itemContainer = this.$element().wrapInner($(\"<div>\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: this._getScrollableDirection(),\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsState()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsState() {\r\n var isVertical = this._isVertical();\r\n var scrollable = this.getScrollable();\r\n if (isVertical) {\r\n var _this$_leftButton, _this$_rightButton;\r\n null === (_this$_leftButton = this._leftButton) || void 0 === _this$_leftButton ? void 0 : _this$_leftButton.option(\"disabled\", isReachedTop(scrollable.scrollTop(), 1));\r\n null === (_this$_rightButton = this._rightButton) || void 0 === _this$_rightButton ? void 0 : _this$_rightButton.option(\"disabled\", isReachedBottom($(scrollable.container()).get(0), scrollable.scrollTop(), 0, 1))\r\n } else {\r\n var _this$_leftButton2, _this$_rightButton2;\r\n null === (_this$_leftButton2 = this._leftButton) || void 0 === _this$_leftButton2 ? void 0 : _this$_leftButton2.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n null === (_this$_rightButton2 = this._rightButton) || void 0 === _this$_rightButton2 ? void 0 : _this$_rightButton2.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n }\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction((function() {\r\n that._holdInterval = setInterval((function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }), FEEDBACK_DURATION_INTERVAL)\r\n }));\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"<div>\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n eventsEngine.on($navButton, pointerUpEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n eventsEngine.on($navButton, pointerOutEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _refreshActiveDescendant: function() {\r\n this.callBase(this._$wrapper)\r\n },\r\n _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _toggleTabsVerticalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.vertical, value)\r\n },\r\n _toggleTabsHorizontalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.horizontal, value)\r\n },\r\n _getIndicatorPositionClass: indicatorPosition => INDICATOR_POSITION_CLASS[indicatorPosition],\r\n _getIndicatorPosition() {\r\n var {\r\n _indicatorPosition: _indicatorPosition,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n if (_indicatorPosition) {\r\n return _indicatorPosition\r\n }\r\n var isVertical = this._isVertical();\r\n if (rtlEnabled) {\r\n return isVertical ? INDICATOR_POSITION.left : INDICATOR_POSITION.bottom\r\n } else {\r\n return isVertical ? INDICATOR_POSITION.right : INDICATOR_POSITION.bottom\r\n }\r\n },\r\n _toggleIndicatorPositionClass(indicatorPosition) {\r\n var newClass = this._getIndicatorPositionClass(indicatorPosition);\r\n this._toggleElementClasses(INDICATOR_POSITION_CLASS, newClass)\r\n },\r\n _toggleScrollingEnabledClass(scrollingEnabled) {\r\n this.$element().toggleClass(TABS_SCROLLING_ENABLED_CLASS, Boolean(scrollingEnabled))\r\n },\r\n _toggleOrientationClass(orientation) {\r\n var isVertical = orientation === ORIENTATION.vertical;\r\n this._toggleTabsVerticalClass(isVertical);\r\n this._toggleTabsHorizontalClass(!isVertical)\r\n },\r\n _getTabsIconPositionClass() {\r\n var position = this.option(\"iconPosition\");\r\n switch (position) {\r\n case ICON_POSITION.top:\r\n return TABS_ICON_POSITION_CLASS.top;\r\n case ICON_POSITION.end:\r\n return TABS_ICON_POSITION_CLASS.end;\r\n case ICON_POSITION.bottom:\r\n return TABS_ICON_POSITION_CLASS.bottom;\r\n case ICON_POSITION.start:\r\n default:\r\n return TABS_ICON_POSITION_CLASS.start\r\n }\r\n },\r\n _toggleIconPositionClass() {\r\n var newClass = this._getTabsIconPositionClass();\r\n this._toggleElementClasses(TABS_ICON_POSITION_CLASS, newClass)\r\n },\r\n _toggleStylingModeClass(value) {\r\n var _TABS_STYLING_MODE_CL;\r\n var newClass = null !== (_TABS_STYLING_MODE_CL = TABS_STYLING_MODE_CLASS[value]) && void 0 !== _TABS_STYLING_MODE_CL ? _TABS_STYLING_MODE_CL : TABS_STYLING_MODE_CLASS.primary;\r\n this._toggleElementClasses(TABS_STYLING_MODE_CLASS, newClass)\r\n },\r\n _toggleElementClasses(classMap, newClass) {\r\n for (var key in classMap) {\r\n this.$element().removeClass(classMap[key])\r\n }\r\n this.$element().addClass(newClass)\r\n },\r\n _toggleFocusedDisabledNextClass(currentIndex, isNextDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_NEXT_TAB_CLASS, isNextDisabled)\r\n },\r\n _toggleFocusedDisabledPrevClass(currentIndex, isPrevDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_PREV_TAB_CLASS, isPrevDisabled)\r\n },\r\n _toggleFocusedDisabledClasses(value) {\r\n var {\r\n selectedIndex: currentIndex\r\n } = this.option();\r\n this._itemElements().removeClass(FOCUSED_DISABLED_NEXT_TAB_CLASS).removeClass(FOCUSED_DISABLED_PREV_TAB_CLASS);\r\n var prevItemIndex = currentIndex - 1;\r\n var nextItemIndex = currentIndex + 1;\r\n var nextFocusedIndex = $(value).index();\r\n var isNextDisabled = this._itemElements().eq(nextItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var isPrevDisabled = this._itemElements().eq(prevItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var shouldNextClassBeSetted = isNextDisabled && nextFocusedIndex === nextItemIndex;\r\n var shouldPrevClassBeSetted = isPrevDisabled && nextFocusedIndex === prevItemIndex;\r\n this._toggleFocusedDisabledNextClass(currentIndex, shouldNextClassBeSetted);\r\n this._toggleFocusedDisabledPrevClass(currentIndex, shouldPrevClassBeSetted)\r\n },\r\n _updateFocusedElement() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n selectedIndex: selectedIndex\r\n } = this.option();\r\n var itemElements = this._itemElements();\r\n if (focusStateEnabled && itemElements.length) {\r\n var selectedItem = itemElements.get(selectedIndex);\r\n this.option({\r\n focusedElement: selectedItem\r\n })\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n this._toggleScrollingEnabledClass(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._toggleFocusedDisabledClasses(args.value);\r\n this.callBase(args);\r\n this._scrollToItem(args.value);\r\n break;\r\n case \"rtlEnabled\":\r\n this.callBase(args);\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n break;\r\n case \"orientation\":\r\n this._toggleOrientationClass(args.value);\r\n var _indicatorPosition2 = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(_indicatorPosition2);\r\n if (hasWindow()) {\r\n this._updateScrollable()\r\n }\r\n break;\r\n case \"iconPosition\":\r\n this._toggleIconPositionClass();\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"stylingMode\":\r\n this._toggleStylingModeClass(args.value);\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"_indicatorPosition\":\r\n this._toggleIndicatorPositionClass(args.value);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n this.callBase(args);\r\n this._updateFocusedElement();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollTopMax(element) {\r\n return element.scrollHeight - element.clientHeight\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport MultiView from \"./multi_view\";\r\nimport Tabs from \"./tabs\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./tab_panel/item\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n isMaterialBased,\r\n isFluent,\r\n current as currentTheme\r\n} from \"./themes\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_TABS_ITEM_CLASS = \"dx-tabpanel-tab\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar DISABLED_FOCUSED_TAB_CLASS = \"dx-disabled-focused-tab\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar TABPANEL_TABS_POSITION_CLASS = {\r\n top: \"dx-tabpanel-tabs-position-top\",\r\n right: \"dx-tabpanel-tabs-position-right\",\r\n bottom: \"dx-tabpanel-tabs-position-bottom\",\r\n left: \"dx-tabpanel-tabs-position-left\"\r\n};\r\nvar TABS_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar TABS_INDICATOR_POSITION_BY_TABS_POSITION = {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\"\r\n};\r\nvar TABS_ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n tabsPosition: TABS_POSITION.top,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _tabsIndicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return !touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this._toggleTabPanelTabsPositionClass()\r\n },\r\n _getElementAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _getItemAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _prepareTabsItemTemplate(data, $container) {\r\n var $iconElement = getImageContainer(null === data || void 0 === data ? void 0 : data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n var title = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.title : data;\r\n if (isDefined(title) && !isPlainObject(title)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.append(domAdapter.createTextNode(title));\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.append(domAdapter.createTextNode(title));\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate(($container, data) => {\r\n this._prepareTabsItemTemplate(data, $container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }, [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"<div>\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"<div>\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"<div>\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper)\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _getTabsIndicatorPosition() {\r\n var {\r\n _tabsIndicatorPosition: _tabsIndicatorPosition,\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n return null !== _tabsIndicatorPosition && void 0 !== _tabsIndicatorPosition ? _tabsIndicatorPosition : TABS_INDICATOR_POSITION_BY_TABS_POSITION[tabsPosition]\r\n },\r\n _tabConfig() {\r\n var tabsIndicatorPosition = this._getTabsIndicatorPosition();\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this),\r\n orientation: this._getTabsOrientation(),\r\n iconPosition: this.option(\"iconPosition\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n _itemAttributes: {\r\n class: TABPANEL_TABS_ITEM_CLASS\r\n },\r\n _indicatorPosition: tabsIndicatorPosition\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _getTabsOrientation() {\r\n var {\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n if ([TABS_POSITION.right, TABS_POSITION.left].includes(tabsPosition)) {\r\n return TABS_ORIENTATION.vertical\r\n }\r\n return TABS_ORIENTATION.horizontal\r\n },\r\n _getTabPanelTabsPositionClass() {\r\n var position = this.option(\"tabsPosition\");\r\n switch (position) {\r\n case TABS_POSITION.right:\r\n return TABPANEL_TABS_POSITION_CLASS.right;\r\n case TABS_POSITION.bottom:\r\n return TABPANEL_TABS_POSITION_CLASS.bottom;\r\n case TABS_POSITION.left:\r\n return TABPANEL_TABS_POSITION_CLASS.left;\r\n case TABS_POSITION.top:\r\n default:\r\n return TABPANEL_TABS_POSITION_CLASS.top\r\n }\r\n },\r\n _toggleTabPanelTabsPositionClass() {\r\n for (var key in TABPANEL_TABS_POSITION_CLASS) {\r\n this.$element().removeClass(TABPANEL_TABS_POSITION_CLASS[key])\r\n }\r\n var newClass = this._getTabPanelTabsPositionClass();\r\n this.$element().addClass(newClass)\r\n },\r\n _updateTabsOrientation() {\r\n var orientation = this._getTabsOrientation();\r\n this._setTabsOption(\"orientation\", orientation)\r\n },\r\n _toggleWrapperFocusedClass(isFocused) {\r\n this._toggleFocusClass(isFocused, this._$wrapper)\r\n },\r\n _toggleDisabledFocusedClass(isFocused) {\r\n this._focusTarget().toggleClass(DISABLED_FOCUSED_TAB_CLASS, isFocused)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n var isTabsTarget = e.target === this._tabs._focusTarget().get(0);\r\n var isMultiViewTarget = e.target === this._focusTarget().get(0);\r\n if (isTabsTarget) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n if (isTabsTarget || isMultiViewTarget) {\r\n var isDisabled = this._isDisabled(this.option(\"focusedElement\"));\r\n this._toggleWrapperFocusedClass(isFocused && !isDisabled);\r\n this._toggleDisabledFocusedClass(isFocused && isDisabled)\r\n }\r\n if (isMultiViewTarget) {\r\n this._toggleFocusClass(isFocused, this._tabs.option(\"focusedElement\"))\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _updateTabsIndicatorPosition() {\r\n var value = this._getTabsIndicatorPosition();\r\n this._setTabsOption(\"_indicatorPosition\", value)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n fullName: fullName\r\n } = args;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n if (value) {\r\n var isDisabled = this._isDisabled(value);\r\n this._toggleWrapperFocusedClass(!isDisabled);\r\n this._toggleDisabledFocusedClass(isDisabled)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"tabsPosition\":\r\n this._toggleTabPanelTabsPositionClass();\r\n this._updateTabsIndicatorPosition();\r\n this._updateTabsOrientation();\r\n break;\r\n case \"iconPosition\":\r\n this._setTabsOption(\"iconPosition\", value);\r\n break;\r\n case \"stylingMode\":\r\n this._setTabsOption(\"stylingMode\", value);\r\n break;\r\n case \"_tabsIndicatorPosition\":\r\n this._setTabsOption(\"_indicatorPosition\", value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel/item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemOptionAction from \"./ui.form.item_option_action\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getFullOptionName\r\n} from \"./ui.form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var _itemActionOptions$it, _itemActionOptions$it2, _itemActionOptions$it3;\r\n var itemType = null !== (_itemActionOptions$it = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : null === (_itemActionOptions$it2 = itemActionOptions.item) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType) && void 0 !== _itemActionOptions$it ? _itemActionOptions$it : null === (_itemActionOptions$it3 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it3 ? void 0 : _itemActionOptions$it3.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n } else if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport {\r\n getWindow,\r\n defaultScreenFactorFunc,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Box from \"./box\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS)\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort((function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n }));\r\n each(this._screenItems, (function(index, item) {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n }))\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return extend(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, (function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n }))\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return hasWindow() ? getWidth(getWindow()) : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n each(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, (function(cell) {\r\n result = result || !isEmptyObject(cell.item)\r\n }));\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, (function(cell) {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n }))\r\n },\r\n _linkNodeToItem: function() {\r\n each(this._itemElements(), (function(_, itemNode) {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n }))\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"<div>\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = each(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (function(_, item) {\r\n $(item).remove()\r\n }))\r\n },\r\n _clearItemNodeTemplates: function() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/form/constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.clear()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\", \"dxDateRangeBox\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n item: item,\r\n template: template,\r\n labelTemplate: labelTemplate,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode,\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n var needRenderLabel = labelOptions.visible && (labelOptions.text || labelOptions.labelTemplate && isSimpleItem);\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType);\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (-1 !== EDITORS_WITH_ARRAY_VALUE.indexOf(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n labelTemplate: labelTemplate,\r\n formLabelMode: formLabelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired),\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\", \"dxDateRangeBox\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/label.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../ui.form.layout_manager.utils\";\r\nimport {\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_LABEL_CLASS\r\n} from \"../constants\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {},\r\n labelTemplate: labelTemplate,\r\n labelTemplateData: labelTemplateData,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n if ((!isDefined(text) || text.length <= 0) && !isDefined(labelTemplate)) {\r\n return null\r\n }\r\n var $label = $(\"<label>\").addClass(FIELD_ITEM_LABEL_CLASS + \" \" + FIELD_ITEM_LABEL_LOCATION_CLASS + location).attr(\"for\", id).attr(\"id\", labelID).css(\"textAlign\", alignment);\r\n var $labelContainer = $(\"<span>\").addClass(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $labelContent = $(\"<span>\").addClass(FIELD_ITEM_LABEL_TEXT_CLASS).text(text);\r\n if (labelTemplate) {\r\n $labelContent = $(\"<div>\").addClass(\"dx-field-item-custom-label-content\");\r\n labelTemplateData.text = text;\r\n labelTemplate.render({\r\n container: getPublicElement($labelContent),\r\n model: labelTemplateData,\r\n onRendered() {\r\n null === onLabelTemplateRendered || void 0 === onLabelTemplateRendered ? void 0 : onLabelTemplateRendered()\r\n }\r\n })\r\n }\r\n return $label.append($labelContainer.append($labelContent, _renderLabelMark(markOptions)))\r\n}\r\n\r\nfunction _renderLabelMark(markOptions) {\r\n var markText = getLabelMarkText(markOptions);\r\n if (\"\" === markText) {\r\n return null\r\n }\r\n return $(\"<span>\").addClass(markOptions.showRequiredMark ? FIELD_ITEM_REQUIRED_MARK_CLASS : FIELD_ITEM_OPTIONAL_MARK_CLASS).text(markText)\r\n}\r\nexport function setLabelWidthByMaxLabelWidth($targetContainer, labelsSelector, labelMarkOptions) {\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Selector = \"\".concat(labelsSelector, \" > .\").concat(FIELD_ITEM_LABEL_CLASS, \":not(.\").concat(FIELD_ITEM_LABEL_LOCATION_CLASS, \"top) > .\").concat(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $FIELD_ITEM_LABEL_CONTENT_CLASS_Items = $targetContainer.find(FIELD_ITEM_LABEL_CONTENT_CLASS_Selector);\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Length = $FIELD_ITEM_LABEL_CONTENT_CLASS_Items.length;\r\n var labelWidth;\r\n var i;\r\n var maxWidth = 0;\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n labelWidth = getLabelWidthByHTML($FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i]);\r\n if (labelWidth > maxWidth) {\r\n maxWidth = labelWidth\r\n }\r\n }\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n $FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i].style.width = maxWidth + \"px\"\r\n }\r\n}\r\n\r\nfunction getLabelWidthByHTML(labelContent) {\r\n var result = 0;\r\n var itemsCount = labelContent.children.length;\r\n for (var i = 0; i < itemsCount; i++) {\r\n var child = labelContent.children[i];\r\n result += child.offsetWidth\r\n }\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/field_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n captionize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../themes\";\r\nimport errors from \"../../widget/ui.errors\";\r\nimport Validator from \"../../validator\";\r\nimport {\r\n FIELD_ITEM_CONTENT_CLASS\r\n} from \"../constants\";\r\nexport var FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexport var FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexport var FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexport var FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexport var FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexport var FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexport var FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexport var LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexport var LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nexport var TOGGLE_CONTROLS_PADDING_CLASS = \"dx-toggle-controls-paddings\";\r\nimport {\r\n renderLabel\r\n} from \"./label\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar VALIDATION_TARGET_CLASS = \"dx-validation-target\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nexport function renderFieldItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n formLabelLocation: formLabelLocation,\r\n item: item,\r\n editorOptions: editorOptions,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").addClass(rootElementCssClassList.join(\" \")).appendTo($parent);\r\n $rootElement.addClass(isRequired ? FIELD_ITEM_REQUIRED_CLASS : FIELD_ITEM_OPTIONAL_CLASS);\r\n if (isSimpleItem) {\r\n $rootElement.addClass(FLEX_LAYOUT_CLASS)\r\n }\r\n if (isSimpleItem && labelNeedBaselineAlign) {\r\n $rootElement.addClass(FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n var $fieldEditorContainer = $(\"<div>\");\r\n $fieldEditorContainer.data(\"dx-form-item\", item);\r\n $fieldEditorContainer.addClass(FIELD_ITEM_CONTENT_CLASS).addClass(FIELD_ITEM_CONTENT_LOCATION_CLASS + {\r\n right: \"left\",\r\n left: \"right\",\r\n top: \"bottom\"\r\n } [formLabelLocation]);\r\n var $label = null;\r\n if (needRenderLabel) {\r\n if (labelOptions.labelTemplate) {\r\n labelOptions.labelTemplateData = getTemplateData(item, editorOptions, formOrLayoutManager)\r\n }\r\n $label = renderLabel(labelOptions)\r\n }\r\n if ($label) {\r\n var {\r\n editorType: editorType\r\n } = item;\r\n $rootElement.append($label);\r\n if (\"top\" === labelLocation || \"left\" === labelLocation) {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n if (\"right\" === labelLocation) {\r\n $rootElement.prepend($fieldEditorContainer)\r\n }\r\n if (\"top\" === labelLocation) {\r\n $rootElement.addClass(LABEL_VERTICAL_ALIGNMENT_CLASS)\r\n } else {\r\n $rootElement.addClass(LABEL_HORIZONTAL_ALIGNMENT_CLASS)\r\n }\r\n if (\"dxCheckBox\" === editorType || \"dxSwitch\" === editorType) {\r\n eventsEngine.on($label, clickEventName, (function() {\r\n eventsEngine.trigger($fieldEditorContainer.children(), clickEventName)\r\n }))\r\n }\r\n var isToggleControls = [\"dxCheckBox\", \"dxSwitch\", \"dxRadioGroup\"].includes(editorType);\r\n var labelAlignment = labelOptions.alignment;\r\n var isLabelAlignmentLeft = \"left\" === labelAlignment || !labelAlignment;\r\n var hasNotTemplate = !template;\r\n var isLabelOnTop = \"top\" === labelLocation;\r\n if (hasNotTemplate && isToggleControls && isLabelOnTop && isLabelAlignmentLeft) {\r\n $fieldEditorContainer.addClass(TOGGLE_CONTROLS_PADDING_CLASS)\r\n }\r\n } else {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n var widgetInstance;\r\n if (template) {\r\n template.render({\r\n container: getPublicElement($fieldEditorContainer),\r\n model: getTemplateData(item, editorOptions, formOrLayoutManager),\r\n onRendered() {\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = tryGetValidationTargetInstance($validationTarget);\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n })\r\n } else {\r\n var $div = $(\"<div>\").appendTo($fieldEditorContainer);\r\n try {\r\n widgetInstance = createComponentCallback($div, item.editorType, editorOptions);\r\n widgetInstance.setAria(\"describedby\", helpID);\r\n if (labelID) {\r\n widgetInstance.setAria(\"labelledby\", labelID)\r\n }\r\n widgetInstance.setAria(\"required\", isRequired)\r\n } catch (e) {\r\n errors.log(\"E1035\", e.message)\r\n }\r\n }\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(VALIDATION_TARGET_CLASS);\r\n if (validationTargetInstance) {\r\n var isItemHaveCustomLabel = item.label && item.label.text;\r\n var itemName = isItemHaveCustomLabel ? null : name;\r\n var fieldName = isItemHaveCustomLabel ? item.label.text : itemName && captionize(itemName);\r\n var validationRules;\r\n if (isSimpleItem) {\r\n if (item.validationRules) {\r\n validationRules = item.validationRules\r\n } else {\r\n var requiredMessage = format(requiredMessageTemplate, fieldName || \"\");\r\n validationRules = item.isRequired ? [{\r\n type: \"required\",\r\n message: requiredMessage\r\n }] : null\r\n }\r\n }\r\n if (Array.isArray(validationRules) && validationRules.length) {\r\n createComponentCallback($validationTarget, Validator, {\r\n validationRules: validationRules,\r\n validationGroup: validationGroup,\r\n dataGetter: function() {\r\n return {\r\n formItem: item\r\n }\r\n }\r\n })\r\n }\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n if (helpText && isSimpleItem) {\r\n var $editorParent = $fieldEditorContainer.parent();\r\n $editorParent.append($(\"<div>\").addClass(FIELD_ITEM_CONTENT_WRAPPER_CLASS).append($fieldEditorContainer).append($(\"<div>\").addClass(FIELD_ITEM_HELP_TEXT_CLASS).attr(\"id\", helpID).text(helpText)))\r\n }\r\n return {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n $rootElement: $rootElement,\r\n widgetInstance: widgetInstance\r\n }\r\n}\r\n\r\nfunction getValidationTarget($fieldEditorContainer) {\r\n var $editor = $fieldEditorContainer.children().first();\r\n return $editor.hasClass(TEMPLATE_WRAPPER_CLASS) ? $editor.children().first() : $editor\r\n}\r\n\r\nfunction tryGetValidationTargetInstance($validationTarget) {\r\n var _$validationTarget$pa, _$validationTarget$pa2;\r\n return (null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.data(VALIDATION_TARGET_CLASS)) || (null === $validationTarget || void 0 === $validationTarget ? void 0 : null === (_$validationTarget$pa = $validationTarget.parent) || void 0 === _$validationTarget$pa ? void 0 : null === (_$validationTarget$pa2 = _$validationTarget$pa.call($validationTarget)) || void 0 === _$validationTarget$pa2 ? void 0 : _$validationTarget$pa2.data(VALIDATION_TARGET_CLASS))\r\n}\r\n\r\nfunction subscribeWrapperInvalidClassToggle(validationTargetInstance) {\r\n if (validationTargetInstance && isMaterialBased()) {\r\n var wrapperClass = \".\".concat(FIELD_ITEM_CONTENT_WRAPPER_CLASS);\r\n var toggleInvalidClass = _ref2 => {\r\n var {\r\n element: element,\r\n component: component\r\n } = _ref2;\r\n var {\r\n isValid: isValid,\r\n validationMessageMode: validationMessageMode\r\n } = component.option();\r\n $(element).parents(wrapperClass).toggleClass(INVALID_CLASS, false === isValid && (component._isFocused() || \"always\" === validationMessageMode))\r\n };\r\n validationTargetInstance.on(\"optionChanged\", e => {\r\n if (\"isValid\" !== e.name) {\r\n return\r\n }\r\n toggleInvalidClass(e)\r\n });\r\n validationTargetInstance.on(\"focusIn\", toggleInvalidClass).on(\"focusOut\", toggleInvalidClass).on(\"enterKey\", toggleInvalidClass)\r\n }\r\n}\r\n\r\nfunction getTemplateData(item, editorOptions, formOrLayoutManager) {\r\n return {\r\n dataField: item.dataField,\r\n editorType: item.editorType,\r\n editorOptions: editorOptions,\r\n component: formOrLayoutManager,\r\n name: item.name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/empty_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport var FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexport function renderEmptyItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref;\r\n return $(\"<div>\").addClass(FIELD_EMPTY_ITEM_CLASS).html(\" \").addClass(rootElementCssClassList.join(\" \")).appendTo($parent)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./ui.form.items_runtime_info\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ResponsiveBox from \"../responsive_box\";\r\nimport {\r\n LAYOUT_MANAGER_ONE_COLUMN,\r\n FORM_LAYOUT_MANAGER_CLASS,\r\n SINGLE_COLUMN_ITEM_CONTENT,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n SIMPLE_ITEM_TYPE,\r\n FIELD_ITEM_CLASS\r\n} from \"./constants\";\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../date_box\";\r\nimport \"../button\";\r\nimport {\r\n renderFieldItem\r\n} from \"./components/field_item\";\r\nimport {\r\n renderButtonItem\r\n} from \"./components/button_item\";\r\nimport {\r\n renderEmptyItem\r\n} from \"./components/empty_item\";\r\nimport {\r\n convertToRenderFieldItemOptions\r\n} from \"./ui.form.layout_manager.utils\";\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar LayoutManager = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n labelMode: \"outside\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems: function(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if (isDefined(userItems)) {\r\n userItems.forEach(item => {\r\n if (item.dataField && void 0 === this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if (isDefined(value) || item.dataField in layoutData) {\r\n this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField: function(dataField) {\r\n return dataField ? this.option(\"layoutData.\" + dataField) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled: function(_ref) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = _ref;\r\n if (true === allowIndeterminateState && \"dxCheckBox\" === editorType) {\r\n var nameParts = [\"layoutData\", ...dataField.split(\".\")];\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!variableWrapper.isWrapped(layoutData[dataField]) && isDefined(dataField)) {\r\n this.option(\"layoutData.\" + dataField, newValue)\r\n } else if (variableWrapper.isWritableWrapped(layoutData[dataField])) {\r\n newValue = isFunction(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems: function(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = isDefined(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if (isDefined(items)) {\r\n var processedItems = [];\r\n each(items, (function(index, item) {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if (isObject(item) && false !== variableWrapper.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n }));\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers: function() {\r\n this._itemWatchers.forEach((function(dispose) {\r\n dispose()\r\n }));\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers: function(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach((function(item) {\r\n if (isObject(item) && isDefined(item.visible) && isFunction(watch)) {\r\n that._itemWatchers.push(watch((function() {\r\n return variableWrapper.unwrap(item.visible)\r\n }), (function() {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }), {\r\n skipImmediate: true\r\n }))\r\n }\r\n }))\r\n },\r\n _generateItemsByData: function(layoutData) {\r\n var result = [];\r\n if (isDefined(layoutData)) {\r\n each(layoutData, (function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n }))\r\n }\r\n return result\r\n },\r\n _isAcceptableItem: function(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !(isFunction(itemData) && !variableWrapper.isWrapped(itemData))\r\n },\r\n _processItem: function(item) {\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === typeof item && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!isDefined(item.editorType) && isDefined(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = isDefined(value) ? this._getEditorTypeByDataType(type(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n var _item$allowIndetermin;\r\n item.allowIndeterminateState = null !== (_item$allowIndetermin = item.allowIndeterminateState) && void 0 !== _item$allowIndetermin ? _item$allowIndetermin : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems: function() {\r\n normalizeIndexes(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes: function() {\r\n this._items.sort((function(itemA, itemB) {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n return result\r\n }))\r\n },\r\n _initMarkup: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _renderResponsiveBox: function() {\r\n var templatesInfo = [];\r\n if (this._items && this._items.length) {\r\n var colCount = this._getColCount();\r\n var $container = $(\"<div>\").appendTo(this.$element());\r\n this._prepareItemsWithMerging(colCount);\r\n var layoutItems = this._generateLayoutItems();\r\n this._responsiveBox = this._createComponent($container, ResponsiveBox, this._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!hasWindow()) {\r\n this._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _itemStateChangedHandler: function(e) {\r\n this._refresh()\r\n },\r\n _renderTemplates: function(templatesInfo) {\r\n var that = this;\r\n var itemsWithLabelTemplateCount = 0;\r\n templatesInfo.forEach(_ref2 => {\r\n var _item$label;\r\n var {\r\n item: item\r\n } = _ref2;\r\n if (null !== item && void 0 !== item && null !== (_item$label = item.label) && void 0 !== _item$label && _item$label.template) {\r\n itemsWithLabelTemplateCount++\r\n }\r\n });\r\n each(templatesInfo, (function(index, info) {\r\n switch (info.itemType) {\r\n case \"empty\":\r\n renderEmptyItem(info);\r\n break;\r\n case \"button\":\r\n that._renderButtonItem(info);\r\n break;\r\n default:\r\n that._renderFieldItem(info, itemsWithLabelTemplateCount)\r\n }\r\n }))\r\n },\r\n _getResponsiveBoxConfig: function(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n onLayoutChanged: function() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady: function(e) {\r\n if (hasWindow()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate: function(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = $(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n if (!item) {\r\n return\r\n }\r\n var itemCssClassList = [item.cssClass];\r\n $itemElement.toggleClass(SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n if (\"empty\" !== item.itemType) {\r\n itemCssClassList.push(FIELD_ITEM_CLASS);\r\n itemCssClassList.push(that.option(\"cssItemClass\"));\r\n if (isDefined(item.col)) {\r\n itemCssClassList.push(\"dx-col-\" + item.col)\r\n }\r\n }\r\n templatesInfo.push({\r\n itemType: item.itemType,\r\n item: item,\r\n $parent: $itemElement,\r\n rootElementCssClassList: itemCssClassList\r\n })\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount: function() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount: function() {\r\n if (!hasWindow()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = getWidth(this.$element());\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete: function() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging: function(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: function(index, colCount) {\r\n return index % colCount\r\n },\r\n _setItems: function(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems: function() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if (isDefined(item.disabled)) {\r\n generatedItem.disabled = item.disabled\r\n }\r\n if (isDefined(item.visible)) {\r\n generatedItem.visible = item.visible\r\n }\r\n if (isDefined(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if (isDefined(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem: function($container) {\r\n renderEmptyItem({\r\n $container: $container\r\n })\r\n },\r\n _renderButtonItem: function(_ref3) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref3;\r\n var {\r\n $rootElement: $rootElement,\r\n buttonInstance: buttonInstance\r\n } = renderButtonItem({\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: this.option(\"validationGroup\"),\r\n createComponentCallback: this._createComponent.bind(this)\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: buttonInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _renderFieldItem: function(_ref4, itemsWithLabelTemplateCount) {\r\n var _item$label2, _this$option;\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref4;\r\n var editorValue = this._getDataByField(item.dataField);\r\n var canAssignUndefinedValueToEditor = false;\r\n if (void 0 === editorValue) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = item;\r\n canAssignUndefinedValueToEditor = this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })\r\n }\r\n var name = item.dataField || item.name;\r\n var formOrLayoutManager = this._getFormOrThis();\r\n var {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n widgetInstance: widgetInstance,\r\n $rootElement: $rootElement\r\n } = renderFieldItem(convertToRenderFieldItemOptions({\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n item: item,\r\n name: name,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n formOrLayoutManager: this._getFormOrThis(),\r\n createComponentCallback: this._createComponent.bind(this),\r\n formLabelLocation: this.option(\"labelLocation\"),\r\n requiredMessageTemplate: this.option(\"requiredMessage\"),\r\n validationGroup: this.option(\"validationGroup\"),\r\n editorValidationBoundary: this.option(\"validationBoundary\"),\r\n editorStylingMode: this.option(\"form\") && this.option(\"form\").option(\"stylingMode\"),\r\n showColonAfterLabel: this.option(\"showColonAfterLabel\"),\r\n managerLabelLocation: this.option(\"labelLocation\"),\r\n template: item.template ? this._getTemplate(item.template) : null,\r\n labelTemplate: null !== (_item$label2 = item.label) && void 0 !== _item$label2 && _item$label2.template ? this._getTemplate(item.label.template) : null,\r\n itemId: this.option(\"form\") && this.option(\"form\").getItemID(name),\r\n managerMarkOptions: this._getMarkOptions(),\r\n labelMode: this.option(\"labelMode\"),\r\n onLabelTemplateRendered: () => {\r\n this._incTemplateRenderedCallCount();\r\n if (this._shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, itemsWithLabelTemplateCount)) {\r\n formOrLayoutManager._alignLabels(this, this.isSingleColumnMode(formOrLayoutManager))\r\n }\r\n }\r\n }));\r\n null === (_this$option = this.option(\"onFieldItemRendered\")) || void 0 === _this$option ? void 0 : _this$option();\r\n if (widgetInstance && item.dataField) {\r\n this._bindDataField(widgetInstance, item.dataField, item.editorType, $fieldEditorContainer)\r\n }\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: widgetInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _incTemplateRenderedCallCount() {\r\n var _this$_labelTemplateR;\r\n this._labelTemplateRenderedCallCount = (null !== (_this$_labelTemplateR = this._labelTemplateRenderedCallCount) && void 0 !== _this$_labelTemplateR ? _this$_labelTemplateR : 0) + 1\r\n },\r\n _shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, totalItemsWithLabelTemplate) {\r\n return formOrLayoutManager.option(\"templatesRenderAsynchronously\") && this._labelTemplateRenderedCallCount === totalItemsWithLabelTemplate\r\n },\r\n _getMarkOptions: function() {\r\n return {\r\n showRequiredMark: this.option(\"showRequiredMark\"),\r\n requiredMark: this.option(\"requiredMark\"),\r\n showOptionalMark: this.option(\"showOptionalMark\"),\r\n optionalMark: this.option(\"optionalMark\")\r\n }\r\n },\r\n _getFormOrThis: function() {\r\n return this.option(\"form\") || this\r\n },\r\n _bindDataField: function(editorInstance, dataField, editorType, $container) {\r\n var formOrThis = this._getFormOrThis();\r\n editorInstance.on(\"enterKey\", (function(args) {\r\n formOrThis._createActionByOption(\"onEditorEnterKey\")(extend(args, {\r\n dataField: dataField\r\n }))\r\n }));\r\n this._createWatcher(editorInstance, $container, dataField);\r\n this.linkEditorToDataField(editorInstance, dataField, editorType)\r\n },\r\n _createWatcher: function(editorInstance, $container, dataField) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n if (!isFunction(watch)) {\r\n return\r\n }\r\n var dispose = watch((function() {\r\n return that._getDataByField(dataField)\r\n }), (function() {\r\n var fieldValue = that._getDataByField(dataField);\r\n if (\"dxTagBox\" === editorInstance.NAME) {\r\n var editorValue = editorInstance.option(\"value\");\r\n if (fieldValue !== editorValue && function(array1, array2) {\r\n if (!Array.isArray(array1) || !Array.isArray(array2) || array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n }(fieldValue, editorValue)) {\r\n return\r\n }\r\n }\r\n editorInstance.option(\"value\", fieldValue)\r\n }), {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n },\r\n _getWatch: function() {\r\n if (!isDefined(this._watch)) {\r\n var formInstance = this.option(\"form\");\r\n this._watch = formInstance && formInstance.option(\"integrationOptions.watchMethod\")\r\n }\r\n return this._watch\r\n },\r\n _createComponent: function($editor, type, editorOptions) {\r\n var readOnlyState = this.option(\"readOnly\");\r\n var hasEditorReadOnly = Object.hasOwn(editorOptions, \"readOnly\");\r\n var instance = this.callBase($editor, type, _extends({}, editorOptions, {\r\n readOnly: !hasEditorReadOnly ? readOnlyState : editorOptions.readOnly\r\n }));\r\n var isChangeByForm = false;\r\n instance.on(\"optionChanged\", args => {\r\n if (\"readOnly\" === args.name && !isChangeByForm) {\r\n hasEditorReadOnly = true\r\n }\r\n });\r\n this.on(\"optionChanged\", (function(args) {\r\n if (\"readOnly\" === args.name && !hasEditorReadOnly) {\r\n isChangeByForm = true;\r\n instance.option(args.name, args.value);\r\n isChangeByForm = false\r\n }\r\n }));\r\n return instance\r\n },\r\n _generateRatio: function(count, isAutoSize) {\r\n var result = [];\r\n var ratio;\r\n var i;\r\n for (i = 0; i < count; i++) {\r\n ratio = {\r\n ratio: 1\r\n };\r\n if (isAutoSize) {\r\n ratio.baseSize = \"auto\"\r\n }\r\n result.push(ratio)\r\n }\r\n return result\r\n },\r\n _getRowsCount: function() {\r\n return Math.ceil(this._items.length / this._getColCount())\r\n },\r\n _updateReferencedOptions: function(newLayoutData) {\r\n var layoutData = this.option(\"layoutData\");\r\n if (isObject(layoutData)) {\r\n Object.getOwnPropertyNames(layoutData).forEach(property => delete this._optionsByReference[\"layoutData.\" + property])\r\n }\r\n if (isObject(newLayoutData)) {\r\n Object.getOwnPropertyNames(newLayoutData).forEach(property => this._optionsByReference[\"layoutData.\" + property] = true)\r\n }\r\n },\r\n _clearWidget(instance) {\r\n this._disableEditorValueChangedHandler = true;\r\n instance.clear();\r\n this._disableEditorValueChangedHandler = false;\r\n instance.option(\"isValid\", true)\r\n },\r\n _optionChanged(args) {\r\n if (0 === args.fullName.search(\"layoutData.\")) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n this._cashedRequiredConfig = null;\r\n this._invalidate();\r\n break;\r\n case \"layoutData\":\r\n this._updateReferencedOptions(args.value);\r\n if (this.option(\"items\")) {\r\n if (!isEmptyObject(args.value)) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.item)) {\r\n var dataField = itemRunTimeInfo.item.dataField;\r\n if (dataField && isDefined(itemRunTimeInfo.widgetInstance)) {\r\n var valueGetter = compileGetter(dataField);\r\n var dataValue = valueGetter(args.value);\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType\r\n } = itemRunTimeInfo.item;\r\n if (void 0 !== dataValue || this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })) {\r\n itemRunTimeInfo.widgetInstance.option(\"value\", dataValue)\r\n } else {\r\n this._clearWidget(itemRunTimeInfo.widgetInstance)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n } else {\r\n this._initDataAndItems(args.value);\r\n this._invalidate()\r\n }\r\n break;\r\n case \"items\":\r\n this._cleanItemWatchers();\r\n this._initDataAndItems(args.value);\r\n this._invalidate();\r\n break;\r\n case \"alignItemLabels\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"requiredMessage\":\r\n this._invalidate();\r\n break;\r\n case \"customizeItem\":\r\n this._updateItems(this.option(\"layoutData\"));\r\n this._invalidate();\r\n break;\r\n case \"colCount\":\r\n case \"colCountByScreen\":\r\n this._resetColCount();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetColCount: function() {\r\n this._cashedColCount = null;\r\n this._invalidate()\r\n },\r\n linkEditorToDataField(editorInstance, dataField) {\r\n this.on(\"optionChanged\", args => {\r\n if (args.fullName === \"layoutData.\".concat(dataField)) {\r\n editorInstance._setOptionWithoutOptionChange(\"value\", args.value)\r\n }\r\n });\r\n editorInstance.on(\"valueChanged\", args => {\r\n var isValueReferenceType = isObject(args.value) || Array.isArray(args.value);\r\n if (!this._disableEditorValueChangedHandler && !(isValueReferenceType && args.value === args.previousValue)) {\r\n this._updateFieldValue(dataField, args.value)\r\n }\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n if (\"auto\" === this.option(\"colCount\") && this.isCachedColCountObsolete()) {\r\n this._eventsStrategy.fireEvent(\"autoColCountChanged\")\r\n }\r\n },\r\n updateData: function(data, value) {\r\n var that = this;\r\n if (isObject(data)) {\r\n each(data, (function(dataField, fieldValue) {\r\n that._updateFieldValue(dataField, fieldValue)\r\n }))\r\n } else if (\"string\" === typeof data) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n getEditor: function(field) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(field) || this._itemsRunTimeInfo.findWidgetInstanceByName(field)\r\n },\r\n isSingleColumnMode: function(component) {\r\n var responsiveBox = this._responsiveBox || component;\r\n if (responsiveBox) {\r\n return responsiveBox.option(\"currentScreenFactor\") === responsiveBox.option(\"singleColumnScreen\")\r\n }\r\n },\r\n getItemsRunTimeInfo: function() {\r\n return this._itemsRunTimeInfo\r\n }\r\n});\r\nregisterComponent(\"dxLayoutManager\", LayoutManager);\r\nexport default LayoutManager;\r\n","/**\r\n * DevExtreme (esm/ui/form/components/button_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexport function renderButtonItem(_ref) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: validationGroup,\r\n createComponentCallback: createComponentCallback\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").appendTo($parent).addClass(rootElementCssClassList.join(\" \")).addClass(FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", convertAlignmentToTextAlign(item.horizontalAlignment));\r\n $parent.css(\"justifyContent\", convertAlignmentToJustifyContent(item.verticalAlignment));\r\n var $button = $(\"<div>\").appendTo($rootElement);\r\n return {\r\n $rootElement: $rootElement,\r\n buttonInstance: createComponentCallback($button, \"dxButton\", extend({\r\n validationGroup: validationGroup\r\n }, item.buttonOptions))\r\n }\r\n}\r\n\r\nfunction convertAlignmentToTextAlign(horizontalAlignment) {\r\n return isDefined(horizontalAlignment) ? horizontalAlignment : \"right\"\r\n}\r\n\r\nfunction convertAlignmentToJustifyContent(verticalAlignment) {\r\n switch (verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/validation_summary.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = VALIDATION_SUMMARY_CLASS + \"-item\";\r\nvar ITEM_DATA_KEY = VALIDATION_SUMMARY_CLASS + \"-item-data\";\r\nvar ValidationSummary = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element));\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup() {\r\n var groupConfig = ValidationEngine.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems(validators, items) {\r\n var orderedItems = [];\r\n each(validators, (function(_, validator) {\r\n var foundItems = grep(items, (function(item) {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n }));\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n }));\r\n return orderedItems\r\n },\r\n _groupValidationHandler(params) {\r\n var items = this._getOrderedItems(params.validators, map(params.brokenRules, (function(rule) {\r\n return {\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n }\r\n })));\r\n this.validators = params.validators;\r\n each(this.validators, (_, validator) => {\r\n if (validator._validationSummary !== this) {\r\n var handler = this._itemValidationHandler.bind(this);\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", (function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n }));\r\n validator._validationSummary = this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler(_ref) {\r\n var {\r\n isValid: isValid,\r\n validator: validator,\r\n brokenRules: brokenRules\r\n } = _ref;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = grep(brokenRules || [], (function(rule) {\r\n return rule.index === item.index\r\n }))[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return 1\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n if (_loop()) {\r\n continue\r\n }\r\n }\r\n each(brokenRules, (function(_, rule) {\r\n var foundItem = grep(items, (function(item) {\r\n return item.validator === validator && item.index === rule.index\r\n }))[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n }));\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _postprocessRenderItem(params) {\r\n eventsEngine.on(params.itemElement, \"click\", (function() {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n }))\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n },\r\n refreshValidationGroup() {\r\n this._initGroupRegistration()\r\n }\r\n});\r\nregisterComponent(\"dxValidationSummary\", ValidationSummary);\r\nexport default ValidationSummary;\r\n","/**\r\n * DevExtreme (esm/ui/validation_group.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport ValidationSummary from \"./validation_summary\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport Validator from \"./validator\";\r\nvar VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nclass ValidationGroup extends DOMComponent {\r\n _getDefaultOptions() {\r\n return super._getDefaultOptions()\r\n }\r\n _init() {\r\n super._init();\r\n ValidationEngine.addGroup(this)\r\n }\r\n _initMarkup() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each((function(_, validatorContainer) {\r\n Validator.getInstance($(validatorContainer))._initGroupRegistration()\r\n }));\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each((function(_, summaryContainer) {\r\n ValidationSummary.getInstance($(summaryContainer)).refreshValidationGroup()\r\n }));\r\n super._initMarkup()\r\n }\r\n validate() {\r\n return ValidationEngine.validateGroup(this)\r\n }\r\n reset() {\r\n return ValidationEngine.resetGroup(this)\r\n }\r\n _dispose() {\r\n ValidationEngine.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n super._dispose()\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxValidationGroup\", ValidationGroup);\r\nexport default ValidationGroup;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./ui.form.items_runtime_info\";\r\nimport TabPanel from \"../tab_panel\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isMaterialBased,\r\n isMaterial\r\n} from \"../themes\";\r\nimport tryCreateItemOptionAction from \"./ui.form.item_options_actions\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport \"./ui.form.layout_manager\";\r\nimport {\r\n concatPaths,\r\n createItemPathByIndex,\r\n getFullOptionName,\r\n getOptionNameFromFullName,\r\n tryGetTabPath,\r\n getTextWithoutSpaces,\r\n isEqualToDataFieldOrNameOrTitleOrCaption,\r\n isFullPathContainsTabs,\r\n getItemPath,\r\n convertToLayoutManagerOptions\r\n} from \"./ui.form.utils\";\r\nimport {\r\n convertToLabelMarkOptions\r\n} from \"./ui.form.layout_manager.utils\";\r\nimport {\r\n setLabelWidthByMaxLabelWidth\r\n} from \"./components/label\";\r\nimport \"../validation_summary\";\r\nimport \"../validation_group\";\r\nimport {\r\n FORM_CLASS,\r\n FIELD_ITEM_CLASS,\r\n FORM_GROUP_CLASS,\r\n FORM_GROUP_CONTENT_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_GROUP_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_TABS_CLASS,\r\n FORM_GROUP_WITH_CAPTION_CLASS,\r\n FORM_GROUP_CAPTION_CLASS,\r\n FIELD_ITEM_TAB_CLASS,\r\n FORM_FIELD_ITEM_COL_CLASS,\r\n GROUP_COL_COUNT_CLASS,\r\n GROUP_COL_COUNT_ATTR,\r\n FIELD_ITEM_CONTENT_CLASS,\r\n FORM_VALIDATION_SUMMARY,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n FORM_UNDERLINED_CLASS\r\n} from \"./constants\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"../toolbar/constants\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ITEM_OPTIONS_FOR_VALIDATION_UPDATING = [\"items\", \"isRequired\", \"validationRules\", \"visible\"];\r\nvar Form = Widget.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this._dirtyFields = new Set;\r\n this._cachedColCountOptions = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._groupsColCount = [];\r\n this._attachSyncSubscriptions()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n formID: \"dx-\" + new Guid,\r\n formData: {},\r\n colCount: 1,\r\n screenByWidth: defaultScreenFactorFunc,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n readOnly: false,\r\n onFieldDataChanged: null,\r\n customizeItem: null,\r\n onEditorEnterKey: null,\r\n minColWidth: 200,\r\n alignItemLabels: true,\r\n alignItemLabelsInAllGroups: true,\r\n alignRootItemLabels: true,\r\n showColonAfterLabel: true,\r\n showRequiredMark: true,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\"),\r\n showValidationSummary: false,\r\n items: void 0,\r\n scrollingEnabled: false,\r\n validationGroup: void 0,\r\n stylingMode: config().editorStylingMode,\r\n labelMode: \"outside\",\r\n isDirty: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterialBased()\r\n },\r\n options: {\r\n labelLocation: \"top\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showColonAfterLabel: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n formData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _getGroupColCount: function($element) {\r\n return parseInt($element.attr(GROUP_COL_COUNT_ATTR))\r\n },\r\n _applyLabelsWidthByCol: function($container, index) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var labelMarkOptions = arguments.length > 3 ? arguments[3] : void 0;\r\n var fieldItemClass = options.inOneColumn ? FIELD_ITEM_CLASS : FORM_FIELD_ITEM_COL_CLASS + index;\r\n var cssExcludeTabbedSelector = options.excludeTabbed ? \":not(.\".concat(FIELD_ITEM_TAB_CLASS, \")\") : \"\";\r\n setLabelWidthByMaxLabelWidth($container, \".\".concat(fieldItemClass).concat(cssExcludeTabbedSelector), labelMarkOptions);\r\n return\r\n },\r\n _applyLabelsWidth: function($container, excludeTabbed, inOneColumn, colCount, labelMarkOptions) {\r\n colCount = inOneColumn ? 1 : colCount || this._getGroupColCount($container);\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed,\r\n inOneColumn: inOneColumn\r\n };\r\n var i;\r\n for (i = 0; i < colCount; i++) {\r\n this._applyLabelsWidthByCol($container, i, applyLabelsOptions, labelMarkOptions)\r\n }\r\n },\r\n _getGroupElementsInColumn: function($container, columnIndex, colCount) {\r\n var cssColCountSelector = isDefined(colCount) ? \".\" + GROUP_COL_COUNT_CLASS + colCount : \"\";\r\n var groupSelector = \".\" + FORM_FIELD_ITEM_COL_CLASS + columnIndex + \" > .\" + FIELD_ITEM_CONTENT_CLASS + \" > .\" + FORM_GROUP_CLASS + cssColCountSelector;\r\n return $container.find(groupSelector)\r\n },\r\n _applyLabelsWidthWithGroups: function($container, colCount, excludeTabbed, labelMarkOptions) {\r\n if (true === this.option(\"alignRootItemLabels\")) {\r\n var $rootSimpleItems = $container.find(\".\".concat(ROOT_SIMPLE_ITEM_CLASS));\r\n for (var colIndex = 0; colIndex < colCount; colIndex++) {\r\n this._applyLabelsWidthByCol($rootSimpleItems, colIndex, excludeTabbed, labelMarkOptions)\r\n }\r\n }\r\n var alignItemLabelsInAllGroups = this.option(\"alignItemLabelsInAllGroups\");\r\n if (alignItemLabelsInAllGroups) {\r\n this._applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions)\r\n } else {\r\n var $groups = this.$element().find(\".\" + FORM_GROUP_CLASS);\r\n var i;\r\n for (i = 0; i < $groups.length; i++) {\r\n this._applyLabelsWidth($groups.eq(i), excludeTabbed, void 0, void 0, labelMarkOptions)\r\n }\r\n }\r\n },\r\n _applyLabelsWidthWithNestedGroups: function($container, colCount, excludeTabbed, labelMarkOptions) {\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed\r\n };\r\n var colIndex;\r\n var groupsColIndex;\r\n var groupColIndex;\r\n var $groupsByCol;\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex);\r\n this._applyLabelsWidthByCol($groupsByCol, 0, applyLabelsOptions, labelMarkOptions);\r\n for (groupsColIndex = 0; groupsColIndex < this._groupsColCount.length; groupsColIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex, this._groupsColCount[groupsColIndex]);\r\n var groupColCount = this._getGroupColCount($groupsByCol);\r\n for (groupColIndex = 1; groupColIndex < groupColCount; groupColIndex++) {\r\n this._applyLabelsWidthByCol($groupsByCol, groupColIndex, applyLabelsOptions, labelMarkOptions)\r\n }\r\n }\r\n }\r\n },\r\n _labelLocation: function() {\r\n return this.option(\"labelLocation\")\r\n },\r\n _alignLabelsInColumn: function(_ref) {\r\n var {\r\n layoutManager: layoutManager,\r\n inOneColumn: inOneColumn,\r\n $container: $container,\r\n excludeTabbed: excludeTabbed,\r\n items: items\r\n } = _ref;\r\n if (!hasWindow() || \"top\" === this._labelLocation()) {\r\n return\r\n }\r\n var labelMarkOptions = convertToLabelMarkOptions(layoutManager._getMarkOptions());\r\n if (inOneColumn) {\r\n this._applyLabelsWidth($container, excludeTabbed, true, void 0, labelMarkOptions)\r\n } else if (this._checkGrouping(items)) {\r\n this._applyLabelsWidthWithGroups($container, layoutManager._getColCount(), excludeTabbed, labelMarkOptions)\r\n } else {\r\n this._applyLabelsWidth($container, excludeTabbed, false, layoutManager._getColCount(), labelMarkOptions)\r\n }\r\n },\r\n _prepareFormData: function() {\r\n if (!isDefined(this.option(\"formData\"))) {\r\n this.option(\"formData\", {})\r\n }\r\n },\r\n _setStylingModeClass: function() {\r\n if (\"underlined\" === this.option(\"stylingMode\")) {\r\n this.$element().addClass(FORM_UNDERLINED_CLASS)\r\n }\r\n },\r\n _initMarkup: function() {\r\n ValidationEngine.addGroup(this._getValidationGroup());\r\n this._clearCachedInstances();\r\n this._prepareFormData();\r\n this.$element().addClass(FORM_CLASS);\r\n this._setStylingModeClass();\r\n this.callBase();\r\n this.setAria(\"role\", \"form\", this.$element());\r\n if (this.option(\"scrollingEnabled\")) {\r\n this._renderScrollable()\r\n }\r\n this._renderLayout();\r\n this._renderValidationSummary();\r\n this._lastMarkupScreenFactor = this._targetScreenFactor || this._getCurrentScreenFactor();\r\n this._attachResizeObserverSubscription()\r\n },\r\n _attachResizeObserverSubscription: function() {\r\n if (hasWindow()) {\r\n var formRootElement = this.$element().get(0);\r\n resizeObserverSingleton.unobserve(formRootElement);\r\n resizeObserverSingleton.observe(formRootElement, () => {\r\n this._resizeHandler()\r\n })\r\n }\r\n },\r\n _resizeHandler: function() {\r\n if (this._cachedLayoutManagers.length) {\r\n each(this._cachedLayoutManagers, (_, layoutManager) => {\r\n var _layoutManager$option;\r\n null === (_layoutManager$option = layoutManager.option(\"onLayoutChanged\")) || void 0 === _layoutManager$option ? void 0 : _layoutManager$option(layoutManager.isSingleColumnMode())\r\n })\r\n }\r\n },\r\n _getCurrentScreenFactor: function() {\r\n return hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n },\r\n _clearCachedInstances: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this._cachedLayoutManagers = []\r\n },\r\n _alignLabels: function(layoutManager, inOneColumn) {\r\n this._alignLabelsInColumn({\r\n $container: this.$element(),\r\n layoutManager: layoutManager,\r\n excludeTabbed: true,\r\n items: this.option(\"items\"),\r\n inOneColumn: inOneColumn\r\n });\r\n triggerResizeEvent(this.$element().find(\".\".concat(TOOLBAR_CLASS)))\r\n },\r\n _clean: function() {\r\n this._clearValidationSummary();\r\n this.callBase();\r\n this._groupsColCount = [];\r\n this._cachedColCountOptions = [];\r\n this._lastMarkupScreenFactor = void 0;\r\n resizeObserverSingleton.unobserve(this.$element().get(0))\r\n },\r\n _renderScrollable: function() {\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n this._scrollable = new Scrollable(this.$element(), {\r\n useNative: !!useNativeScrolling,\r\n useSimulatedScrollbar: !useNativeScrolling,\r\n useKeyboard: false,\r\n direction: \"both\",\r\n bounceEnabled: false\r\n })\r\n },\r\n _getContent: function() {\r\n return this.option(\"scrollingEnabled\") ? $(this._scrollable.content()) : this.$element()\r\n },\r\n _clearValidationSummary: function() {\r\n var _this$_$validationSum;\r\n null === (_this$_$validationSum = this._$validationSummary) || void 0 === _this$_$validationSum ? void 0 : _this$_$validationSum.remove();\r\n this._$validationSummary = void 0;\r\n this._validationSummary = void 0\r\n },\r\n _renderValidationSummary: function() {\r\n this._clearValidationSummary();\r\n if (this.option(\"showValidationSummary\")) {\r\n this._$validationSummary = $(\"<div>\").addClass(FORM_VALIDATION_SUMMARY).appendTo(this._getContent());\r\n this._validationSummary = this._$validationSummary.dxValidationSummary({\r\n validationGroup: this._getValidationGroup()\r\n }).dxValidationSummary(\"instance\")\r\n }\r\n },\r\n _prepareItems(items, parentIsTabbedItem, currentPath, isTabs) {\r\n if (items) {\r\n var result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var path = concatPaths(currentPath, createItemPathByIndex(i, isTabs));\r\n var itemRunTimeInfo = {\r\n item: item,\r\n itemIndex: i,\r\n path: path\r\n };\r\n var guid = this._itemsRunTimeInfo.add(itemRunTimeInfo);\r\n if (isString(item)) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (isObject(item)) {\r\n var preparedItem = _extends({}, item);\r\n itemRunTimeInfo.preparedItem = preparedItem;\r\n preparedItem.guid = guid;\r\n this._tryPrepareGroupItem(preparedItem);\r\n this._tryPrepareTabbedItem(preparedItem, path);\r\n this._tryPrepareItemTemplate(preparedItem);\r\n if (parentIsTabbedItem) {\r\n preparedItem.cssItemClass = FIELD_ITEM_TAB_CLASS\r\n }\r\n if (preparedItem.items) {\r\n preparedItem.items = this._prepareItems(preparedItem.items, parentIsTabbedItem, path)\r\n }\r\n result.push(preparedItem)\r\n } else {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n _tryPrepareGroupItem: function(item) {\r\n if (\"group\" === item.itemType) {\r\n item.alignItemLabels = ensureDefined(item.alignItemLabels, true);\r\n item._prepareGroupItemTemplate = itemTemplate => {\r\n if (item.template) {\r\n item.groupContentTemplate = this._getTemplate(itemTemplate)\r\n }\r\n item.template = this._itemGroupTemplate.bind(this, item)\r\n };\r\n item._prepareGroupItemTemplate(item.template)\r\n }\r\n },\r\n _tryPrepareTabbedItem: function(item, path) {\r\n if (\"tabbed\" === item.itemType) {\r\n item.template = this._itemTabbedTemplate.bind(this, item);\r\n item.tabs = this._prepareItems(item.tabs, true, path, true)\r\n }\r\n },\r\n _tryPrepareItemTemplate: function(item) {\r\n if (item.template) {\r\n item.template = this._getTemplate(item.template)\r\n }\r\n },\r\n _checkGrouping: function(items) {\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"group\" === item.itemType) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _renderLayout: function() {\r\n var that = this;\r\n var items = that.option(\"items\");\r\n var $content = that._getContent();\r\n items = that._prepareItems(items);\r\n that._rootLayoutManager = that._renderLayoutManager($content, this._createLayoutManagerOptions(items, {\r\n isRoot: true,\r\n colCount: that.option(\"colCount\"),\r\n alignItemLabels: that.option(\"alignItemLabels\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: this.option(\"colCountByScreen\"),\r\n onLayoutChanged: function(inOneColumn) {\r\n that._alignLabels.bind(that)(that._rootLayoutManager, inOneColumn)\r\n },\r\n onContentReady: function(e) {\r\n that._alignLabels(e.component, e.component.isSingleColumnMode())\r\n }\r\n }))\r\n },\r\n _tryGetItemsForTemplate: function(item) {\r\n return item.items || []\r\n },\r\n _itemTabbedTemplate: function(item, e, $container) {\r\n var _item$tabs;\r\n var $tabPanel = $(\"<div>\").appendTo($container);\r\n var tabPanelOptions = extend({}, item.tabPanelOptions, {\r\n dataSource: item.tabs,\r\n onItemRendered: args => {\r\n var _item$tabPanelOptions, _item$tabPanelOptions2;\r\n null === (_item$tabPanelOptions = item.tabPanelOptions) || void 0 === _item$tabPanelOptions ? void 0 : null === (_item$tabPanelOptions2 = _item$tabPanelOptions.onItemRendered) || void 0 === _item$tabPanelOptions2 ? void 0 : _item$tabPanelOptions2.call(_item$tabPanelOptions, args);\r\n triggerShownEvent(args.itemElement)\r\n },\r\n itemTemplate: (itemData, e, container) => {\r\n var $container = $(container);\r\n var alignItemLabels = ensureDefined(itemData.alignItemLabels, true);\r\n var layoutManager = this._renderLayoutManager($container, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(itemData), {\r\n colCount: itemData.colCount,\r\n alignItemLabels: alignItemLabels,\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: itemData.colCountByScreen,\r\n cssItemClass: itemData.cssItemClass,\r\n onLayoutChanged: inOneColumn => {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: inOneColumn\r\n })\r\n }\r\n }));\r\n if (this._itemsRunTimeInfo) {\r\n this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(itemData.guid, {\r\n layoutManager: layoutManager\r\n })\r\n }\r\n if (alignItemLabels) {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: layoutManager.isSingleColumnMode()\r\n })\r\n }\r\n }\r\n });\r\n var tryUpdateTabPanelInstance = (items, instance) => {\r\n if (Array.isArray(items)) {\r\n items.forEach(item => this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n widgetInstance: instance\r\n }))\r\n }\r\n };\r\n var tabPanel = this._createComponent($tabPanel, TabPanel, tabPanelOptions);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_TABS_CLASS);\r\n tabPanel.on(\"optionChanged\", e => {\r\n if (\"dataSource\" === e.fullName) {\r\n tryUpdateTabPanelInstance(e.value, e.component)\r\n }\r\n });\r\n tryUpdateTabPanelInstance([{\r\n guid: item.guid\r\n }, ...null !== (_item$tabs = item.tabs) && void 0 !== _item$tabs ? _item$tabs : []], tabPanel)\r\n },\r\n _itemGroupTemplate: function(item, options, $container) {\r\n var id = options.editorOptions.inputAttr.id;\r\n var $group = $(\"<div>\").toggleClass(FORM_GROUP_WITH_CAPTION_CLASS, isDefined(item.caption) && item.caption.length).addClass(FORM_GROUP_CLASS).appendTo($container);\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $group);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_GROUP_CLASS);\r\n if (item.caption) {\r\n $(\"<span>\").addClass(FORM_GROUP_CAPTION_CLASS).text(item.caption).attr(\"id\", id).appendTo($group)\r\n }\r\n var $groupContent = $(\"<div>\").addClass(FORM_GROUP_CONTENT_CLASS).appendTo($group);\r\n if (item.groupContentTemplate) {\r\n item._renderGroupContentTemplate = () => {\r\n $groupContent.empty();\r\n var data = {\r\n formData: this.option(\"formData\"),\r\n component: this\r\n };\r\n item.groupContentTemplate.render({\r\n model: data,\r\n container: getPublicElement($groupContent)\r\n })\r\n };\r\n item._renderGroupContentTemplate()\r\n } else {\r\n var layoutManager = this._renderLayoutManager($groupContent, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(item), {\r\n colCount: item.colCount,\r\n colCountByScreen: item.colCountByScreen,\r\n alignItemLabels: item.alignItemLabels,\r\n cssItemClass: item.cssItemClass\r\n }));\r\n this._itemsRunTimeInfo && this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n layoutManager: layoutManager\r\n });\r\n var colCount = layoutManager._getColCount();\r\n if (!this._groupsColCount.includes(colCount)) {\r\n this._groupsColCount.push(colCount)\r\n }\r\n $group.addClass(GROUP_COL_COUNT_CLASS + colCount);\r\n $group.attr(GROUP_COL_COUNT_ATTR, colCount)\r\n }\r\n },\r\n _createLayoutManagerOptions: function(items, extendedLayoutManagerOptions) {\r\n return convertToLayoutManagerOptions({\r\n form: this,\r\n formOptions: this.option(),\r\n $formElement: this.$element(),\r\n items: items,\r\n validationGroup: this._getValidationGroup(),\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: args => {\r\n if (!this._isDataUpdating) {\r\n this._triggerOnFieldDataChanged(args)\r\n }\r\n },\r\n onContentReady: args => {\r\n this._itemsRunTimeInfo.addItemsOrExtendFrom(args.component._itemsRunTimeInfo);\r\n extendedLayoutManagerOptions.onContentReady && extendedLayoutManagerOptions.onContentReady(args)\r\n },\r\n onDisposing: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n var nestedItemsRunTimeInfo = component.getItemsRunTimeInfo();\r\n this._itemsRunTimeInfo.removeItemsByItems(nestedItemsRunTimeInfo)\r\n },\r\n onFieldItemRendered: () => {\r\n var _this$_validationSumm;\r\n null === (_this$_validationSumm = this._validationSummary) || void 0 === _this$_validationSumm ? void 0 : _this$_validationSumm.refreshValidationGroup()\r\n }\r\n })\r\n },\r\n _renderLayoutManager: function($parent, layoutManagerOptions) {\r\n var baseColCountByScreen = {\r\n lg: layoutManagerOptions.colCount,\r\n md: layoutManagerOptions.colCount,\r\n sm: layoutManagerOptions.colCount,\r\n xs: 1\r\n };\r\n this._cachedColCountOptions.push({\r\n colCountByScreen: extend(baseColCountByScreen, layoutManagerOptions.colCountByScreen)\r\n });\r\n var $element = $(\"<div>\");\r\n $element.appendTo($parent);\r\n var instance = this._createComponent($element, \"dxLayoutManager\", layoutManagerOptions);\r\n instance.on(\"autoColCountChanged\", () => {\r\n this._clearAutoColCountChangedTimeout();\r\n this.autoColCountChangedTimeoutId = setTimeout(() => !this._disposed && this._refresh(), 0)\r\n });\r\n this._cachedLayoutManagers.push(instance);\r\n return instance\r\n },\r\n _getValidationGroup: function() {\r\n return this.option(\"validationGroup\") || this\r\n },\r\n _createComponent: function($element, type, config) {\r\n config = config || {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase($element, type, config)\r\n },\r\n _attachSyncSubscriptions: function() {\r\n var that = this;\r\n that.on(\"optionChanged\", (function(args) {\r\n var optionFullName = args.fullName;\r\n if (\"formData\" === optionFullName) {\r\n if (!isDefined(args.value)) {\r\n that._options.silent(\"formData\", args.value = {})\r\n }\r\n that._triggerOnFieldDataChangedByDataSet(args.value)\r\n }\r\n if (that._cachedLayoutManagers.length) {\r\n each(that._cachedLayoutManagers, (function(index, layoutManager) {\r\n if (\"formData\" === optionFullName) {\r\n that._isDataUpdating = true;\r\n layoutManager.option(\"layoutData\", args.value);\r\n that._isDataUpdating = false\r\n }\r\n if (\"readOnly\" === args.name || \"disabled\" === args.name) {\r\n layoutManager.option(optionFullName, args.value)\r\n }\r\n }))\r\n }\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var splitFullName = args.fullName.split(\".\");\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"items\") && this._itemsOptionChangedHandler(args)) {\r\n return\r\n }\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"formData\") && this._formDataOptionChangedHandler(args)) {\r\n return\r\n }\r\n this._defaultOptionChangedHandler(args)\r\n },\r\n _defaultOptionChangedHandler: function(args) {\r\n switch (args.name) {\r\n case \"formData\":\r\n if (!this.option(\"items\")) {\r\n this._invalidate()\r\n } else if (isEmptyObject(args.value)) {\r\n this._clear()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n case \"items\":\r\n case \"colCount\":\r\n case \"onEditorEnterKey\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"alignItemLabels\":\r\n case \"showColonAfterLabel\":\r\n case \"customizeItem\":\r\n case \"alignItemLabelsInAllGroups\":\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n case \"requiredMessage\":\r\n case \"scrollingEnabled\":\r\n case \"formID\":\r\n case \"colCountByScreen\":\r\n case \"screenByWidth\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationSummary\":\r\n this._renderValidationSummary();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"alignRootItemLabels\":\r\n case \"readOnly\":\r\n case \"isDirty\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._rootLayoutManager.option(args.name, args.value);\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode());\r\n break;\r\n case \"validationGroup\":\r\n ValidationEngine.removeGroup(args.previousValue || this);\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemsOptionChangedHandler: function(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var value = args.value;\r\n var itemPath = this._getItemPath(nameParts);\r\n var item = this.option(itemPath);\r\n var optionNameWithoutPath = args.fullName.replace(itemPath + \".\", \"\");\r\n var simpleOptionName = optionNameWithoutPath.split(\".\")[0].replace(/\\[\\d+]/, \"\");\r\n var itemAction = this._tryCreateItemOptionAction(simpleOptionName, item, item[simpleOptionName], args.previousValue, itemPath);\r\n var result = this._tryExecuteItemOptionAction(itemAction) || this._tryChangeLayoutManagerItemOption(args.fullName, value);\r\n if (!result && item) {\r\n this._changeItemOption(item, optionNameWithoutPath, value);\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n this.option(\"items\", items);\r\n result = true\r\n }\r\n return result\r\n },\r\n _formDataOptionChangedHandler: function(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var value = args.value;\r\n var dataField = nameParts.slice(1).join(\".\");\r\n var editor = this.getEditor(dataField);\r\n if (editor) {\r\n editor.option(\"value\", value)\r\n } else {\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }\r\n return true\r\n },\r\n _tryCreateItemOptionAction: function(optionName, item, value, previousValue, itemPath) {\r\n if (\"tabs\" === optionName) {\r\n this._itemsRunTimeInfo.removeItemsByPathStartWith(\"\".concat(itemPath, \".tabs\"));\r\n value = this._prepareItems(value, true, itemPath, true)\r\n }\r\n return tryCreateItemOptionAction(optionName, {\r\n item: item,\r\n value: value,\r\n previousValue: previousValue,\r\n itemsRunTimeInfo: this._itemsRunTimeInfo\r\n })\r\n },\r\n _tryExecuteItemOptionAction: function(action) {\r\n return action && action.tryExecute()\r\n },\r\n _updateValidationGroupAndSummaryIfNeeded: function(fullName) {\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (ITEM_OPTIONS_FOR_VALIDATION_UPDATING.indexOf(optionName) > -1) {\r\n ValidationEngine.addGroup(this._getValidationGroup());\r\n if (this.option(\"showValidationSummary\")) {\r\n var _this$_validationSumm2;\r\n null === (_this$_validationSumm2 = this._validationSummary) || void 0 === _this$_validationSumm2 ? void 0 : _this$_validationSumm2.refreshValidationGroup()\r\n }\r\n }\r\n },\r\n _setLayoutManagerItemOption(layoutManager, optionName, value, path) {\r\n if (this._updateLockCount > 0) {\r\n !layoutManager._updateLockCount && layoutManager.beginUpdate();\r\n var key = this._itemsRunTimeInfo.findKeyByPath(path);\r\n this.postponedOperations.add(key, () => {\r\n !layoutManager._disposed && layoutManager.endUpdate();\r\n return (new Deferred).resolve()\r\n })\r\n }\r\n var contentReadyHandler = e => {\r\n e.component.off(\"contentReady\", contentReadyHandler);\r\n if (isFullPathContainsTabs(path)) {\r\n var tabPath = tryGetTabPath(path);\r\n var tabLayoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(tabPath);\r\n if (tabLayoutManager) {\r\n this._alignLabelsInColumn({\r\n items: tabLayoutManager.option(\"items\"),\r\n layoutManager: tabLayoutManager,\r\n $container: tabLayoutManager.$element(),\r\n inOneColumn: tabLayoutManager.isSingleColumnMode()\r\n })\r\n }\r\n } else {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n }\r\n };\r\n layoutManager.on(\"contentReady\", contentReadyHandler);\r\n layoutManager.option(optionName, value);\r\n this._updateValidationGroupAndSummaryIfNeeded(optionName)\r\n },\r\n _tryChangeLayoutManagerItemOption(fullName, value) {\r\n var nameParts = fullName.split(\".\");\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (\"items\" === optionName && nameParts.length > 1) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(itemPath);\r\n if (layoutManager) {\r\n this._itemsRunTimeInfo.removeItemsByItems(layoutManager.getItemsRunTimeInfo());\r\n var items = this._prepareItems(value, false, itemPath);\r\n this._setLayoutManagerItemOption(layoutManager, optionName, items, itemPath);\r\n return true\r\n }\r\n } else if (nameParts.length > 2) {\r\n var endPartIndex = nameParts.length - 2;\r\n var _itemPath = this._getItemPath(nameParts.slice(0, endPartIndex));\r\n var _layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(_itemPath);\r\n if (_layoutManager) {\r\n var fullOptionName = getFullOptionName(nameParts[endPartIndex], optionName);\r\n if (\"editorType\" === optionName) {\r\n if (_layoutManager.option(fullOptionName) !== value) {\r\n return false\r\n }\r\n }\r\n if (\"visible\" === optionName) {\r\n var formItems = this.option(getFullOptionName(_itemPath, \"items\"));\r\n if (formItems && formItems.length) {\r\n var layoutManagerItems = _layoutManager.option(\"items\");\r\n formItems.forEach((item, index) => {\r\n var layoutItem = layoutManagerItems[index];\r\n layoutItem.visibleIndex = item.visibleIndex\r\n })\r\n }\r\n }\r\n this._setLayoutManagerItemOption(_layoutManager, fullOptionName, value, _itemPath);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _tryChangeLayoutManagerItemOptions(itemPath, options) {\r\n var result;\r\n this.beginUpdate();\r\n each(options, (optionName, optionValue) => {\r\n result = this._tryChangeLayoutManagerItemOption(getFullOptionName(itemPath, optionName), optionValue);\r\n if (!result) {\r\n return false\r\n }\r\n });\r\n this.endUpdate();\r\n return result\r\n },\r\n _getItemPath: function(nameParts) {\r\n var itemPath = nameParts[0];\r\n var i;\r\n for (i = 1; i < nameParts.length; i++) {\r\n if (-1 !== nameParts[i].search(/items\\[\\d+]|tabs\\[\\d+]/)) {\r\n itemPath += \".\" + nameParts[i]\r\n } else {\r\n break\r\n }\r\n }\r\n return itemPath\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._updateIsDirty(args.dataField);\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _triggerOnFieldDataChangedByDataSet: function(data) {\r\n var that = this;\r\n if (data && isObject(data)) {\r\n each(data, (function(dataField, value) {\r\n that._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }))\r\n }\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n if (isDefined(this.option(\"formData\"))) {\r\n var editor = this.getEditor(dataField);\r\n this.option(\"formData.\" + dataField, value);\r\n if (editor) {\r\n var editorValue = editor.option(\"value\");\r\n if (editorValue !== value) {\r\n editor.option(\"value\", value)\r\n }\r\n }\r\n }\r\n },\r\n _generateItemsFromData: function(items) {\r\n var formData = this.option(\"formData\");\r\n var result = [];\r\n if (!items && isDefined(formData)) {\r\n each(formData, (function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n }))\r\n }\r\n if (items) {\r\n each(items, (function(index, item) {\r\n if (isObject(item)) {\r\n result.push(item)\r\n } else {\r\n result.push({\r\n dataField: item\r\n })\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n _getItemByField: function(field, items) {\r\n var that = this;\r\n var fieldParts = isObject(field) ? field : that._getFieldParts(field);\r\n var fieldName = fieldParts.fieldName;\r\n var fieldPath = fieldParts.fieldPath;\r\n var resultItem;\r\n if (items.length) {\r\n each(items, (function(index, item) {\r\n var itemType = item.itemType;\r\n if (fieldPath.length) {\r\n var path = fieldPath.slice();\r\n item = that._getItemByFieldPath(path, fieldName, item)\r\n } else if (\"group\" === itemType && !(item.caption || item.name) || \"tabbed\" === itemType && !item.name) {\r\n var subItemsField = that._getSubItemField(itemType);\r\n item.items = that._generateItemsFromData(item.items);\r\n item = that._getItemByField({\r\n fieldName: fieldName,\r\n fieldPath: fieldPath\r\n }, item[subItemsField])\r\n }\r\n if (isEqualToDataFieldOrNameOrTitleOrCaption(item, fieldName)) {\r\n resultItem = item;\r\n return false\r\n }\r\n }))\r\n }\r\n return resultItem\r\n },\r\n _getFieldParts: function(field) {\r\n var fieldName = field;\r\n var separatorIndex = fieldName.indexOf(\".\");\r\n var resultPath = [];\r\n while (-1 !== separatorIndex) {\r\n resultPath.push(fieldName.substr(0, separatorIndex));\r\n fieldName = fieldName.substr(separatorIndex + 1);\r\n separatorIndex = fieldName.indexOf(\".\")\r\n }\r\n return {\r\n fieldName: fieldName,\r\n fieldPath: resultPath.reverse()\r\n }\r\n },\r\n _getItemByFieldPath: function(path, fieldName, item) {\r\n var itemType = item.itemType;\r\n var subItemsField = this._getSubItemField(itemType);\r\n var isItemWithSubItems = \"group\" === itemType || \"tabbed\" === itemType || item.title;\r\n var result;\r\n do {\r\n if (isItemWithSubItems) {\r\n var name = item.name || item.caption || item.title;\r\n var isGroupWithName = isDefined(name);\r\n var nameWithoutSpaces = getTextWithoutSpaces(name);\r\n var pathNode = void 0;\r\n item[subItemsField] = this._generateItemsFromData(item[subItemsField]);\r\n if (isGroupWithName) {\r\n pathNode = path.pop()\r\n }\r\n if (!path.length) {\r\n result = this._getItemByField(fieldName, item[subItemsField]);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!isGroupWithName || isGroupWithName && nameWithoutSpaces === pathNode) {\r\n if (path.length) {\r\n result = this._searchItemInEverySubItem(path, fieldName, item[subItemsField])\r\n }\r\n }\r\n } else {\r\n break\r\n }\r\n } while (path.length && !isDefined(result));\r\n return result\r\n },\r\n _getSubItemField: function(itemType) {\r\n return \"tabbed\" === itemType ? \"tabs\" : \"items\"\r\n },\r\n _searchItemInEverySubItem: function(path, fieldName, items) {\r\n var that = this;\r\n var result;\r\n each(items, (function(index, groupItem) {\r\n result = that._getItemByFieldPath(path.slice(), fieldName, groupItem);\r\n if (result) {\r\n return false\r\n }\r\n }));\r\n if (!result) {\r\n result = false\r\n }\r\n return result\r\n },\r\n _changeItemOption: function(item, option, value) {\r\n if (isObject(item)) {\r\n item[option] = value\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var currentScreenFactor = this._getCurrentScreenFactor();\r\n if (this._lastMarkupScreenFactor !== currentScreenFactor) {\r\n if (this._isColCountChanged(this._lastMarkupScreenFactor, currentScreenFactor)) {\r\n this._targetScreenFactor = currentScreenFactor;\r\n this._refresh();\r\n this._targetScreenFactor = void 0\r\n }\r\n this._lastMarkupScreenFactor = currentScreenFactor\r\n }\r\n },\r\n _isColCountChanged: function(oldScreenSize, newScreenSize) {\r\n var isChanged = false;\r\n each(this._cachedColCountOptions, (function(index, item) {\r\n if (item.colCountByScreen[oldScreenSize] !== item.colCountByScreen[newScreenSize]) {\r\n isChanged = true;\r\n return false\r\n }\r\n }));\r\n return isChanged\r\n },\r\n _refresh: function() {\r\n var editorSelector = \".\".concat(FOCUSED_STATE_CLASS, \" > :not(.dx-dropdowneditor-input-wrapper) input,\") + \" .\".concat(FOCUSED_STATE_CLASS, \" textarea\");\r\n eventsEngine.trigger(this.$element().find(editorSelector), \"change\");\r\n this.callBase()\r\n },\r\n _updateIsDirty: function(dataField) {\r\n var editor = this.getEditor(dataField);\r\n if (!editor) {\r\n return\r\n }\r\n if (editor.option(\"isDirty\")) {\r\n this._dirtyFields.add(dataField)\r\n } else {\r\n this._dirtyFields.delete(dataField)\r\n }\r\n this.option(\"isDirty\", !!this._dirtyFields.size)\r\n },\r\n updateRunTimeInfoForEachEditor: function(editorAction) {\r\n this._itemsRunTimeInfo.each((function(_, itemRunTimeInfo) {\r\n var widgetInstance = itemRunTimeInfo.widgetInstance;\r\n if (isDefined(widgetInstance) && Editor.isEditor(widgetInstance)) {\r\n editorAction(widgetInstance)\r\n }\r\n }))\r\n },\r\n _clear: function() {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n editor.clear();\r\n editor.option(\"isValid\", true)\r\n });\r\n ValidationEngine.resetGroup(this._getValidationGroup())\r\n },\r\n _updateData: function(data, value, isComplexData) {\r\n var that = this;\r\n var _data = isComplexData ? value : data;\r\n if (isObject(_data)) {\r\n each(_data, (function(dataField, fieldValue) {\r\n that._updateData(isComplexData ? data + \".\" + dataField : dataField, fieldValue, isObject(fieldValue))\r\n }))\r\n } else if (isString(data)) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n this._itemsRunTimeInfo.each((function(_, itemRunTimeInfo) {\r\n if (isDefined(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.registerKeyHandler(key, handler)\r\n }\r\n }))\r\n },\r\n _focusTarget: function() {\r\n return this.$element().find(\".\" + FIELD_ITEM_CONTENT_CLASS + \" [tabindex]\").first()\r\n },\r\n _visibilityChanged: function() {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n },\r\n _clearAutoColCountChangedTimeout: function() {\r\n if (this.autoColCountChangedTimeoutId) {\r\n clearTimeout(this.autoColCountChangedTimeoutId);\r\n this.autoColCountChangedTimeoutId = void 0\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearAutoColCountChangedTimeout();\r\n ValidationEngine.removeGroup(this._getValidationGroup());\r\n this.callBase()\r\n },\r\n clear: function() {\r\n this._clear()\r\n },\r\n resetValues: function() {\r\n this._clear()\r\n },\r\n reset: function(editorsData) {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n var editorName = editor.option(\"name\");\r\n if (editorsData && editorName in editorsData) {\r\n editor.reset(editorsData[editorName])\r\n } else {\r\n editor.reset()\r\n }\r\n });\r\n this._renderValidationSummary()\r\n },\r\n updateData: function(data, value) {\r\n this._updateData(data, value)\r\n },\r\n getEditor: function(dataField) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(dataField) || this._itemsRunTimeInfo.findWidgetInstanceByName(dataField)\r\n },\r\n getButton: function(name) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByName(name)\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollable) {\r\n that._scrollable.update().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n itemOption: function(id, option, value) {\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n var item = this._getItemByField(id, items);\r\n var path = getItemPath(items, item);\r\n if (!item) {\r\n return\r\n }\r\n switch (arguments.length) {\r\n case 1:\r\n return item;\r\n case 3:\r\n var itemAction = this._tryCreateItemOptionAction(option, item, value, item[option], path);\r\n this._changeItemOption(item, option, value);\r\n var fullName = getFullOptionName(path, option);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(fullName, value)) {\r\n this.option(\"items\", items)\r\n }\r\n break;\r\n default:\r\n if (isObject(option)) {\r\n if (!this._tryChangeLayoutManagerItemOptions(path, option)) {\r\n var allowUpdateItems;\r\n each(option, (optionName, optionValue) => {\r\n var itemAction = this._tryCreateItemOptionAction(optionName, item, optionValue, item[optionName], path);\r\n this._changeItemOption(item, optionName, optionValue);\r\n if (!allowUpdateItems && !this._tryExecuteItemOptionAction(itemAction)) {\r\n allowUpdateItems = true\r\n }\r\n });\r\n allowUpdateItems && this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n },\r\n validate: function() {\r\n return ValidationEngine.validateGroup(this._getValidationGroup())\r\n },\r\n getItemID: function(name) {\r\n return \"dx_\" + this.option(\"formID\") + \"_\" + (name || new Guid)\r\n },\r\n getTargetScreenFactor: function() {\r\n return this._targetScreenFactor\r\n }\r\n});\r\nregisterComponent(\"dxForm\", Form);\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/ui/form.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Form from \"./form/ui.form\";\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_form_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport Button from \"../../../../ui/button\";\r\nimport Form from \"../../../../ui/form\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport {\r\n BUTTON_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n EDIT_FORM_ITEM_CLASS,\r\n EDIT_MODE_FORM,\r\n EDIT_MODE_POPUP,\r\n EDIT_POPUP_CLASS,\r\n EDIT_POPUP_FORM_CLASS,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_FORM_OPTION_NAME,\r\n EDITING_POPUP_OPTION_NAME,\r\n FOCUSABLE_ELEMENT_CLASS,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n FORM_BUTTONS_CONTAINER_CLASS\r\n} from \"./const\";\r\nimport {\r\n forEachFormItems,\r\n getEditorType\r\n} from \"./m_editing_utils\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n init() {\r\n this._editForm = null;\r\n this._updateEditFormDeferred = null;\r\n super.init()\r\n }\r\n isFormOrPopupEditMode() {\r\n return this.isPopupEditMode() || this.isFormEditMode()\r\n }\r\n isPopupEditMode() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_POPUP\r\n }\r\n isFormEditMode() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_FORM\r\n }\r\n getFirstEditableColumnIndex() {\r\n var firstFormItem = this._firstFormItem;\r\n if (this.isFormEditMode() && firstFormItem) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = this._dataController.getRowIndexByKey(editRowKey);\r\n var $editFormElements = this._rowsView.getCellElements(editRowIndex);\r\n return this._rowsView._getEditFormEditorVisibleIndex($editFormElements, firstFormItem.column)\r\n }\r\n return super.getFirstEditableColumnIndex()\r\n }\r\n getEditFormRowIndex() {\r\n return this.isFormOrPopupEditMode() ? this._getVisibleEditRowIndex() : super.getEditFormRowIndex()\r\n }\r\n _isEditColumnVisible() {\r\n var result = super._isEditColumnVisible();\r\n var editingOptions = this.option(\"editing\");\r\n return this.isFormOrPopupEditMode() ? editingOptions.allowUpdating || result : result\r\n }\r\n _handleDataChanged(args) {\r\n var _a, _b;\r\n if (this.isPopupEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var hasEditRow = null === (_a = null === args || void 0 === args ? void 0 : args.items) || void 0 === _a ? void 0 : _a.some(item => equalByValue(item.key, editRowKey));\r\n var onlyInsertChanges = (null === (_b = args.changeTypes) || void 0 === _b ? void 0 : _b.length) && args.changeTypes.every(item => \"insert\" === item);\r\n if ((\"refresh\" === args.changeType || hasEditRow && args.isOptionChanged) && !onlyInsertChanges) {\r\n this._repaintEditPopup()\r\n }\r\n }\r\n super._handleDataChanged(args)\r\n }\r\n getPopupContent() {\r\n var _a;\r\n var popupVisible = null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\");\r\n if (this.isPopupEditMode() && popupVisible) {\r\n return this._$popupContent\r\n }\r\n }\r\n _showAddedRow(rowIndex) {\r\n if (this.isPopupEditMode()) {\r\n this._showEditPopup(rowIndex)\r\n } else {\r\n super._showAddedRow(rowIndex)\r\n }\r\n }\r\n _cancelEditDataCore() {\r\n super._cancelEditDataCore();\r\n if (this.isPopupEditMode()) {\r\n this._hideEditPopup()\r\n }\r\n }\r\n _updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue) {\r\n var _a;\r\n var editForm = this._editForm;\r\n if (this.isPopupEditMode()) {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n null === (_a = row.update) || void 0 === _a ? void 0 : _a.call(row, row);\r\n this._rowsView.renderDelayedTemplates()\r\n } else if (editForm) {\r\n this._updateEditFormDeferred = (new Deferred).done(() => editForm.repaint());\r\n if (!this._updateLockCount) {\r\n this._updateEditFormDeferred.resolve()\r\n }\r\n }\r\n } else {\r\n super._updateEditRowCore(row, skipCurrentRow, isCustomSetCellValue)\r\n }\r\n }\r\n _showEditPopup(rowIndex, repaintForm) {\r\n var isMobileDevice = \"desktop\" !== devices.current().deviceType;\r\n var editPopupClass = this.addWidgetPrefix(EDIT_POPUP_CLASS);\r\n var popupOptions = extend({\r\n showTitle: false,\r\n fullScreen: isMobileDevice,\r\n wrapperAttr: {\r\n class: editPopupClass\r\n },\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getSaveButtonConfig()\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getCancelButtonConfig()\r\n }],\r\n contentTemplate: this._getPopupEditFormTemplate(rowIndex)\r\n }, this.option(EDITING_POPUP_OPTION_NAME));\r\n if (!this._editPopup) {\r\n var $popupContainer = $(\"<div>\").appendTo(this.component.$element()).addClass(editPopupClass);\r\n this._editPopup = this._createComponent($popupContainer, Popup);\r\n this._editPopup.on(\"hiding\", this._getEditPopupHiddenHandler());\r\n this._editPopup.on(\"shown\", e => {\r\n var _a;\r\n eventsEngine.trigger(e.component.$content().find(FOCUSABLE_ELEMENT_SELECTOR).not(\".\".concat(FOCUSABLE_ELEMENT_CLASS)).first(), \"focus\");\r\n if (repaintForm) {\r\n null === (_a = this._editForm) || void 0 === _a ? void 0 : _a.repaint()\r\n }\r\n })\r\n }\r\n this._editPopup.option(popupOptions);\r\n this._editPopup.show();\r\n super._showEditPopup(rowIndex, repaintForm)\r\n }\r\n _getPopupEditFormTemplate(rowIndex) {\r\n var row = this.component.getVisibleRows()[rowIndex];\r\n var templateOptions = {\r\n row: row,\r\n values: row.values,\r\n rowType: row.rowType,\r\n key: row.key,\r\n rowIndex: rowIndex\r\n };\r\n this._rowsView._addWatchMethod(templateOptions, row);\r\n return container => {\r\n var formTemplate = this.getEditFormTemplate();\r\n var scrollable = this._createComponent($(\"<div>\").appendTo(container), Scrollable);\r\n this._$popupContent = $(scrollable.content());\r\n formTemplate(this._$popupContent, templateOptions, {\r\n isPopupForm: true\r\n });\r\n this._rowsView.renderDelayedTemplates();\r\n $(container).parent().attr(\"aria-label\", this.localize(\"dxDataGrid-ariaEditForm\"))\r\n }\r\n }\r\n _repaintEditPopup() {\r\n var _a, _b;\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n if (rowIndex >= 0) {\r\n var defaultAnimation = null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"animation\");\r\n null === (_b = this._editPopup) || void 0 === _b ? void 0 : _b.option(\"animation\", null);\r\n this._showEditPopup(rowIndex, true);\r\n if (void 0 !== defaultAnimation) {\r\n this._editPopup.option(\"animation\", defaultAnimation)\r\n }\r\n }\r\n }\r\n _hideEditPopup() {\r\n var _a;\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\", false)\r\n }\r\n optionChanged(args) {\r\n if (\"editing\" === args.name && this.isFormOrPopupEditMode()) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (0 === fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._handleFormOptionChange(args);\r\n args.handled = true\r\n } else if (0 === fullName.indexOf(EDITING_POPUP_OPTION_NAME)) {\r\n this._handlePopupOptionChange(args);\r\n args.handled = true\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n _handleFormOptionChange(args) {\r\n var _a;\r\n if (this.isFormEditMode()) {\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n if (editRowIndex >= 0) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n })\r\n }\r\n } else if ((null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.option(\"visible\")) && 0 === args.fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._repaintEditPopup()\r\n }\r\n }\r\n _handlePopupOptionChange(args) {\r\n var editPopup = this._editPopup;\r\n if (editPopup) {\r\n var popupOptionName = args.fullName.slice(EDITING_POPUP_OPTION_NAME.length + 1);\r\n if (popupOptionName) {\r\n editPopup.option(popupOptionName, args.value)\r\n } else {\r\n editPopup.option(args.value)\r\n }\r\n }\r\n }\r\n renderFormEditorTemplate(detailCellOptions, item, formTemplateOptions, container, isReadOnly) {\r\n var that = this;\r\n var $container = $(container);\r\n var {\r\n column: column\r\n } = item;\r\n var editorType = getEditorType(item);\r\n var rowData = null === detailCellOptions || void 0 === detailCellOptions ? void 0 : detailCellOptions.row.data;\r\n var form = formTemplateOptions.component;\r\n var {\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n } = formTemplateOptions.editorOptions || {};\r\n var cellOptions = extend({}, detailCellOptions, {\r\n data: rowData,\r\n cellElement: null,\r\n isOnForm: true,\r\n item: item,\r\n id: form.getItemID(item.name || item.dataField),\r\n column: extend({}, column, {\r\n editorType: editorType,\r\n editorOptions: extend({\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n }, column.editorOptions, item.editorOptions)\r\n }),\r\n columnIndex: column.index,\r\n setValue: !isReadOnly && column.allowEditing && function(value, text) {\r\n that.updateFieldValue(cellOptions, value, text)\r\n }\r\n });\r\n cellOptions.value = column.calculateCellValue(rowData);\r\n var template = this._getFormEditItemTemplate.bind(this)(cellOptions, column);\r\n this._rowsView.renderTemplate($container, template, cellOptions, !!isElementInDom($container)).done(() => {\r\n this._rowsView._updateCell($container, cellOptions)\r\n });\r\n return cellOptions\r\n }\r\n getFormEditorTemplate(cellOptions, item) {\r\n var column = this.component.columnOption(item.name || item.dataField);\r\n return (options, container) => {\r\n var $container = $(container);\r\n var {\r\n row: row\r\n } = cellOptions;\r\n if (null === row || void 0 === row ? void 0 : row.watch) {\r\n var dispose = row.watch(() => column.selector(row.data), () => {\r\n var $editorElement = $container.find(\".dx-widget\").first();\r\n var validator = $editorElement.data(\"dxValidator\");\r\n var validatorOptions = null === validator || void 0 === validator ? void 0 : validator.option();\r\n $container.contents().remove();\r\n cellOptions = this.renderFormEditorTemplate.bind(this)(cellOptions, item, options, $container);\r\n $editorElement = $container.find(\".dx-widget\").first();\r\n validator = $editorElement.data(\"dxValidator\");\r\n if (validatorOptions && !validator) {\r\n $editorElement.dxValidator({\r\n validationRules: validatorOptions.validationRules,\r\n validationGroup: validatorOptions.validationGroup,\r\n dataGetter: validatorOptions.dataGetter\r\n })\r\n }\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n cellOptions = this.renderFormEditorTemplate.bind(this)(cellOptions, item, options, $container)\r\n }\r\n }\r\n getEditFormOptions(detailOptions) {\r\n var _b;\r\n var editFormOptions = null === (_b = this._getValidationGroupsInForm) || void 0 === _b ? void 0 : _b.call(this, detailOptions);\r\n var userCustomizeItem = this.option(\"editing.form.customizeItem\");\r\n var editFormItemClass = this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS);\r\n var items = this.option(\"editing.form.items\");\r\n var isCustomEditorType = {};\r\n if (!items) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n items = [];\r\n each(columns, (_, column) => {\r\n if (!column.isBand && !column.type) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField\r\n })\r\n }\r\n })\r\n } else {\r\n forEachFormItems(items, item => {\r\n var itemId = (null === item || void 0 === item ? void 0 : item.name) || (null === item || void 0 === item ? void 0 : item.dataField);\r\n if (itemId) {\r\n isCustomEditorType[itemId] = !!item.editorType\r\n }\r\n })\r\n }\r\n return extend({}, editFormOptions, {\r\n items: items,\r\n formID: \"dx-\".concat(new Guid),\r\n customizeItem: item => {\r\n var column;\r\n var itemId = item.name || item.dataField;\r\n if (item.column || itemId) {\r\n column = item.column || this._columnsController.columnOption(item.name ? \"name:\".concat(item.name) : \"dataField:\".concat(item.dataField))\r\n }\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n if (\"boolean\" === column.dataType && void 0 === item.label.visible) {\r\n var labelMode = this.option(\"editing.form.labelMode\");\r\n if (\"floating\" === labelMode || \"static\" === labelMode) {\r\n item.label.visible = true\r\n }\r\n }\r\n item.template = item.template || this.getFormEditorTemplate(detailOptions, item);\r\n item.column = column;\r\n item.isCustomEditorType = isCustomEditorType[itemId];\r\n if (column.formItem) {\r\n extend(item, column.formItem)\r\n }\r\n if (void 0 === item.isRequired && column.validationRules) {\r\n item.isRequired = column.validationRules.some(rule => \"required\" === rule.type);\r\n item.validationRules = []\r\n }\r\n var itemVisible = isDefined(item.visible) ? item.visible : true;\r\n if (!this._firstFormItem && itemVisible) {\r\n this._firstFormItem = item\r\n }\r\n }\r\n null === userCustomizeItem || void 0 === userCustomizeItem ? void 0 : userCustomizeItem.call(this, item);\r\n item.cssClass = isString(item.cssClass) ? \"\".concat(item.cssClass, \" \").concat(editFormItemClass) : editFormItemClass\r\n }\r\n })\r\n }\r\n getEditFormTemplate() {\r\n return ($container, detailOptions, options) => {\r\n var editFormOptions = this.option(EDITING_FORM_OPTION_NAME);\r\n var baseEditFormOptions = this.getEditFormOptions(detailOptions);\r\n var $formContainer = $(\"<div>\").appendTo($container);\r\n var isPopupForm = null === options || void 0 === options ? void 0 : options.isPopupForm;\r\n this._firstFormItem = void 0;\r\n if (isPopupForm) {\r\n $formContainer.addClass(this.addWidgetPrefix(EDIT_POPUP_FORM_CLASS))\r\n }\r\n this._editForm = this._createComponent($formContainer, Form, extend({}, editFormOptions, baseEditFormOptions));\r\n if (!isPopupForm) {\r\n var $buttonsContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FORM_BUTTONS_CONTAINER_CLASS)).appendTo($container);\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getSaveButtonConfig());\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getCancelButtonConfig())\r\n }\r\n this._editForm.on(\"contentReady\", () => {\r\n var _a;\r\n this._rowsView.renderDelayedTemplates();\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.repaint()\r\n })\r\n }\r\n }\r\n getEditForm() {\r\n return this._editForm\r\n }\r\n _endUpdateCore() {\r\n var _a;\r\n null === (_a = this._updateEditFormDeferred) || void 0 === _a ? void 0 : _a.resolve()\r\n }\r\n _beforeEndSaving(changes) {\r\n var _a;\r\n super._beforeEndSaving(changes);\r\n if (this.isPopupEditMode()) {\r\n null === (_a = this._editPopup) || void 0 === _a ? void 0 : _a.hide()\r\n }\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n type: type\r\n } = change;\r\n if (this.isPopupEditMode() && type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n item.visible = false\r\n }\r\n super._processDataItemCore(item, change, key, columns, generateDataValues)\r\n }\r\n _editRowFromOptionChangedCore(rowIndices, rowIndex) {\r\n var isPopupEditMode = this.isPopupEditMode();\r\n super._editRowFromOptionChangedCore(rowIndices, rowIndex, isPopupEditMode);\r\n if (isPopupEditMode) {\r\n this._showEditPopup(rowIndex)\r\n }\r\n }\r\n};\r\nexport var editingFormBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender,\r\n data: {\r\n _updateEditItem(item) {\r\n if (this._editingController.isFormEditMode()) {\r\n item.rowType = \"detail\"\r\n }\r\n },\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n if (false === isLiveUpdate && newItem.isEditing && this._editingController.isFormEditMode()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _renderCellContent($cell, options) {\r\n if (\"data\" === options.rowType && this._editingController.isPopupEditMode() && false === options.row.visible) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n getCellElements(rowIndex) {\r\n var $cellElements = this.callBase(rowIndex);\r\n var editingController = this._editingController;\r\n var editForm = editingController.getEditForm();\r\n var editFormRowIndex = editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && $cellElements && editForm) {\r\n return editForm.$element().find(\".\".concat(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS), \", .\").concat(BUTTON_CLASS))\r\n }\r\n return $cellElements\r\n },\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n var editFormRowIndex = this._editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && isString(columnIdentifier)) {\r\n var column = this._columnsController.columnOption(columnIdentifier);\r\n return this._getEditFormEditorVisibleIndex($cells, column)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getEditFormEditorVisibleIndex($cells, column) {\r\n var visibleIndex = -1;\r\n each($cells, (index, cellElement) => {\r\n var item = $(cellElement).find(\".dx-field-item-content\").data(\"dx-form-item\");\r\n if ((null === item || void 0 === item ? void 0 : item.column) && column && item.column.index === column.index) {\r\n visibleIndex = index;\r\n return false\r\n }\r\n });\r\n return visibleIndex\r\n },\r\n _isFormItem(parameters) {\r\n var isDetailRow = \"detail\" === parameters.rowType || \"detailAdaptive\" === parameters.rowType;\r\n var isPopupEditing = \"data\" === parameters.rowType && this._editingController.isPopupEditMode();\r\n return (isDetailRow || isPopupEditing) && parameters.item\r\n },\r\n _updateCell($cell, parameters) {\r\n if (this._isFormItem(parameters)) {\r\n this._formItemPrepared(parameters, $cell)\r\n } else {\r\n this.callBase($cell, parameters)\r\n }\r\n },\r\n _updateContent() {\r\n var editingController = this._editingController;\r\n var oldEditForm = editingController.getEditForm();\r\n var validationGroup = null === oldEditForm || void 0 === oldEditForm ? void 0 : oldEditForm.option(\"validationGroup\");\r\n var deferred = this.callBase.apply(this, arguments);\r\n return deferred.done(() => {\r\n var newEditForm = editingController.getEditForm();\r\n if (validationGroup && newEditForm && newEditForm !== oldEditForm) {\r\n newEditForm.option(\"validationGroup\", validationGroup)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingFormBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_form_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingFormBased\", editingFormBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/editing/m_editing_cell_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferRender\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport {\r\n ADD_ROW_BUTTON_CLASS,\r\n CELL_MODIFIED_CLASS,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n DATA_ROW_CLASS,\r\n DROPDOWN_EDITOR_OVERLAY_CLASS,\r\n EDIT_MODE_BATCH,\r\n EDIT_MODE_CELL,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITOR_CELL_CLASS,\r\n FOCUS_OVERLAY_CLASS,\r\n ROW_CLASS,\r\n ROW_REMOVED,\r\n TARGET_COMPONENT_NAME\r\n} from \"./const\";\r\nimport {\r\n isEditable\r\n} from \"./m_editing_utils\";\r\nvar editingControllerExtender = Base => class extends Base {\r\n init() {\r\n var needCreateHandlers = !this._saveEditorHandler;\r\n super.init();\r\n if (needCreateHandlers) {\r\n var $pointerDownTarget;\r\n var isResizing;\r\n this._pointerUpEditorHandler = () => {\r\n var _a;\r\n isResizing = null === (_a = this.getController(\"columnsResizer\")) || void 0 === _a ? void 0 : _a.isResizing()\r\n };\r\n this._pointerDownEditorHandler = e => $pointerDownTarget = $(e.target);\r\n this._saveEditorHandler = this.createAction((function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n var $target = $(event.target);\r\n var targetComponent = event[TARGET_COMPONENT_NAME];\r\n var {\r\n component: component\r\n } = this;\r\n if (isEditable($pointerDownTarget) && !$pointerDownTarget.is($target)) {\r\n return\r\n }\r\n\r\n function checkEditorPopup($element) {\r\n if (!$element) {\r\n return false\r\n }\r\n var $dropDownEditorOverlay = $element.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS));\r\n var $componentElement = component.$element();\r\n return $dropDownEditorOverlay.length > 0 && 0 === $componentElement.closest($dropDownEditorOverlay).length\r\n }\r\n if (this.isCellOrBatchEditMode() && !this._editCellInProgress) {\r\n var isEditorPopup = checkEditorPopup($target) || checkEditorPopup(null === targetComponent || void 0 === targetComponent ? void 0 : targetComponent.$element());\r\n var isAnotherComponent = targetComponent && !targetComponent._disposed && targetComponent !== this.component;\r\n var isAddRowButton = !!$target.closest(\".\".concat(this.addWidgetPrefix(ADD_ROW_BUTTON_CLASS))).length;\r\n var isFocusOverlay = $target.hasClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n var isCellEditMode = this.isCellEditMode();\r\n if (!isResizing && !isEditorPopup && !isFocusOverlay && !(isAddRowButton && isCellEditMode && this.isEditing()) && (isElementInDom($target) || isAnotherComponent)) {\r\n this._closeEditItem.bind(this)($target)\r\n }\r\n }\r\n }));\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n }\r\n }\r\n isCellEditMode() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_CELL\r\n }\r\n isBatchEditMode() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_BATCH\r\n }\r\n isCellOrBatchEditMode() {\r\n return this.isCellEditMode() || this.isBatchEditMode()\r\n }\r\n _needToCloseEditableCell($targetElement) {\r\n var _a;\r\n var $element = this.component.$element();\r\n var result = this.isEditing();\r\n var isCurrentComponentElement = !$element || !!$targetElement.closest($element).length;\r\n if (isCurrentComponentElement) {\r\n var isDataRow = $targetElement.closest(\".\".concat(DATA_ROW_CLASS)).length;\r\n if (isDataRow) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $targetCell = $targetElement.closest(\".\".concat(ROW_CLASS, \"> td\"));\r\n var rowIndex = rowsView.getRowIndex($targetCell.parent());\r\n var cellElements = rowsView.getCellElements(rowIndex);\r\n if (null === cellElements || void 0 === cellElements ? void 0 : cellElements.length) {\r\n var columnIndex = cellElements.index($targetCell);\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var allowEditing = null === (_a = visibleColumns[columnIndex]) || void 0 === _a ? void 0 : _a.allowEditing;\r\n var isEditingCell = this.isEditCell(rowIndex, columnIndex);\r\n result = result && !allowEditing && !isEditingCell\r\n }\r\n }\r\n }\r\n return result || super._needToCloseEditableCell($targetElement)\r\n }\r\n _closeEditItem($targetElement) {\r\n if (this._needToCloseEditableCell($targetElement)) {\r\n this.closeEditCell()\r\n }\r\n }\r\n _focusEditorIfNeed() {\r\n var _a;\r\n if (this._needFocusEditor && this.isCellOrBatchEditMode()) {\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n var $cell = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($cell && !$cell.find(\":focus\").length) {\r\n this._focusEditingCell(() => {\r\n this._editCellInProgress = false\r\n }, $cell, true)\r\n } else {\r\n this._editCellInProgress = false\r\n }\r\n this._needFocusEditor = false\r\n } else {\r\n super._focusEditorIfNeed()\r\n }\r\n }\r\n isEditing() {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n var isEditColumnNameDefined = isDefined(this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME));\r\n return isEditRowKeyDefined && isEditColumnNameDefined\r\n }\r\n return super.isEditing()\r\n }\r\n _handleEditColumnNameChange(args) {\r\n var oldRowIndex = this._getVisibleEditRowIndex(args.previousValue);\r\n if (this.isCellOrBatchEditMode() && -1 !== oldRowIndex && isDefined(args.value) && args.value !== args.previousValue) {\r\n var columnIndex = this._columnsController.getVisibleColumnIndex(args.value);\r\n var oldColumnIndex = this._columnsController.getVisibleColumnIndex(args.previousValue);\r\n this._editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex)\r\n }\r\n }\r\n _addRow(parentKey) {\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n var deferred = new Deferred;\r\n this.saveEditData().done(() => {\r\n if (!this.hasChanges()) {\r\n this.addRow(parentKey).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n });\r\n return deferred.promise()\r\n }\r\n return super._addRow(parentKey)\r\n }\r\n editCell(rowIndex, columnIndex) {\r\n return this._editCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n _editCell(options) {\r\n var d = new Deferred;\r\n var coreResult;\r\n this.executeOperation(d, () => {\r\n coreResult = this._editCellCore(options);\r\n when(coreResult).done(d.resolve).fail(d.reject)\r\n });\r\n return void 0 !== coreResult ? coreResult : d.promise()\r\n }\r\n _editCellCore(options) {\r\n var dataController = this._dataController;\r\n var isEditByOptionChanged = isDefined(options.oldColumnIndex) || isDefined(options.oldRowIndex);\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n } = this._getNormalizedEditCellOptions(options);\r\n var params = {\r\n data: null === item || void 0 === item ? void 0 : item.data,\r\n cancel: false,\r\n column: column\r\n };\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (column && (\"data\" === item.rowType || \"detailAdaptive\" === item.rowType) && !item.removed && this.isCellOrBatchEditMode()) {\r\n if (!isEditByOptionChanged && this.isEditCell(rowIndex, columnIndex)) {\r\n return true\r\n }\r\n var editRowIndex = rowIndex + dataController.getRowIndexOffset();\r\n return when(this._beforeEditCell(rowIndex, columnIndex, item)).done(cancel => {\r\n if (cancel) {\r\n return\r\n }\r\n if (!this._prepareEditCell(params, item, columnIndex, editRowIndex)) {\r\n this._processCanceledEditingCell()\r\n }\r\n })\r\n }\r\n return false\r\n }\r\n _beforeEditCell(rowIndex, columnIndex, item) {\r\n if (this.isCellEditMode() && !item.isNewRow && this.hasChanges()) {\r\n var isSaving = new Deferred;\r\n this.saveEditData().always(() => {\r\n isSaving.resolve(this.hasChanges())\r\n });\r\n this.addDeferred(isSaving);\r\n return isSaving\r\n }\r\n return false\r\n }\r\n publicMethods() {\r\n var publicMethods = super.publicMethods();\r\n return publicMethods.concat([\"editCell\", \"closeEditCell\"])\r\n }\r\n _getNormalizedEditCellOptions(_ref) {\r\n var {\r\n oldColumnIndex: oldColumnIndex,\r\n oldRowIndex: oldRowIndex,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = _ref;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldColumn;\r\n if (isDefined(oldColumnIndex)) {\r\n oldColumn = visibleColumns[oldColumnIndex]\r\n } else {\r\n oldColumn = this._getEditColumn()\r\n }\r\n if (!isDefined(oldRowIndex)) {\r\n oldRowIndex = this._getVisibleEditRowIndex()\r\n }\r\n if (isString(columnIndex)) {\r\n columnIndex = columnsController.columnOption(columnIndex, \"index\");\r\n columnIndex = columnsController.getVisibleIndex(columnIndex)\r\n }\r\n var column = visibleColumns[columnIndex];\r\n return {\r\n oldColumn: oldColumn,\r\n columnIndex: columnIndex,\r\n oldRowIndex: oldRowIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n }\r\n }\r\n _prepareEditCell(params, item, editColumnIndex, editRowIndex) {\r\n var _a;\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return false\r\n }\r\n this._pageIndex = this._dataController.pageIndex();\r\n this._setEditRowKey(item.key);\r\n this._setEditColumnNameByIndex(editColumnIndex);\r\n if (!params.column.showEditorAlways) {\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_a = item.oldData) && void 0 !== _a ? _a : item.data\r\n })\r\n }\r\n return true\r\n }\r\n closeEditCell(isError, withoutSaveEditData) {\r\n var result = when();\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n if (this.isCellOrBatchEditMode()) {\r\n var deferred = new Deferred;\r\n result = new Deferred;\r\n this.executeOperation(deferred, () => {\r\n this._closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData).always(result.resolve)\r\n })\r\n }\r\n return result.promise()\r\n }\r\n _closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var promise = deferred.promise();\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n if (!withoutSaveEditData) {\r\n this.saveEditData().done(error => {\r\n if (!this.hasChanges()) {\r\n this.closeEditCell(!!error).always(deferred.resolve);\r\n return\r\n }\r\n deferred.resolve()\r\n });\r\n return promise\r\n }\r\n } else {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n if (oldEditRowIndex >= 0) {\r\n var rowIndices = [oldEditRowIndex];\r\n this._beforeCloseEditCellInBatchMode(rowIndices);\r\n if (!isError) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n }\r\n }\r\n deferred.resolve();\r\n return promise\r\n }\r\n _resetModifiedClassCells(changes) {\r\n if (this.isBatchEditMode()) {\r\n var columnsCount = this._columnsController.getVisibleColumns().length;\r\n changes.forEach(_ref2 => {\r\n var {\r\n key: key\r\n } = _ref2;\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n for (var columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\r\n var cellElement = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n null === cellElement || void 0 === cellElement ? void 0 : cellElement.removeClass(CELL_MODIFIED_CLASS)\r\n }\r\n })\r\n }\r\n }\r\n _prepareChange(options, value, text) {\r\n var $cellElement = $(options.cellElement);\r\n if (this.isBatchEditMode() && void 0 !== options.key) {\r\n this._applyModified($cellElement, options)\r\n }\r\n return super._prepareChange(options, value, text)\r\n }\r\n _cancelSaving(result) {\r\n var dataController = this._dataController;\r\n if (this.isCellOrBatchEditMode()) {\r\n if (this.isBatchEditMode()) {\r\n this._resetEditIndices()\r\n }\r\n dataController.updateItems()\r\n }\r\n super._cancelSaving(result)\r\n }\r\n optionChanged(args) {\r\n var {\r\n fullName: fullName\r\n } = args;\r\n if (\"editing\" === args.name && fullName === EDITING_EDITCOLUMNNAME_OPTION_NAME) {\r\n this._handleEditColumnNameChange(args);\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n _editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n if (columnIndex > -1) {\r\n deferRender(() => {\r\n this._repaintEditCell(columns[columnIndex], columns[oldColumnIndex], oldRowIndex)\r\n })\r\n }\r\n }\r\n _handleEditRowKeyChange(args) {\r\n var _a;\r\n if (this.isCellOrBatchEditMode()) {\r\n var columnIndex = this._getVisibleEditColumnIndex();\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value) && args.value !== args.previousValue) {\r\n null === (_a = this._editCellFromOptionChanged) || void 0 === _a ? void 0 : _a.call(this, columnIndex, columnIndex, oldRowIndex)\r\n }\r\n } else {\r\n super._handleEditRowKeyChange(args)\r\n }\r\n }\r\n deleteRow(rowIndex) {\r\n if (this.isCellEditMode() && this.isEditing()) {\r\n var {\r\n isNewRow: isNewRow\r\n } = this._dataController.items()[rowIndex];\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n this.closeEditCell(null, isNewRow).always(() => {\r\n rowIndex = this._dataController.getRowIndexByKey(rowKey);\r\n this._checkAndDeleteRow(rowIndex)\r\n })\r\n } else {\r\n super.deleteRow(rowIndex)\r\n }\r\n }\r\n _checkAndDeleteRow(rowIndex) {\r\n if (this.isBatchEditMode()) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n super._checkAndDeleteRow(rowIndex)\r\n }\r\n }\r\n _refreshCore(params) {\r\n var {\r\n isPageChanged: isPageChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var needResetIndexes = this.isBatchEditMode() || isPageChanged && \"virtual\" !== this.option(\"scrolling.mode\");\r\n if (this.isCellOrBatchEditMode()) {\r\n if (needResetIndexes) {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n } else {\r\n super._refreshCore(params)\r\n }\r\n }\r\n _allowRowAdding(params) {\r\n if (this.isBatchEditMode()) {\r\n return true\r\n }\r\n return super._allowRowAdding(params)\r\n }\r\n _afterDeleteRow(rowIndex, oldEditRowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isBatchEditMode()) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n });\r\n return (new Deferred).resolve()\r\n }\r\n return super._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n }\r\n _updateEditRow(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (this.isCellOrBatchEditMode()) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n super._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n }\r\n }\r\n _isDefaultButtonVisible(button, options) {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isBatchMode = this.isBatchEditMode();\r\n switch (button.name) {\r\n case \"save\":\r\n case \"cancel\":\r\n case \"edit\":\r\n return false;\r\n case \"delete\":\r\n return super._isDefaultButtonVisible(button, options) && (!isBatchMode || !options.row.removed);\r\n case \"undelete\":\r\n return isBatchMode && this.allowDeleting(options) && options.row.removed;\r\n default:\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n }\r\n return super._isDefaultButtonVisible(button, options)\r\n }\r\n _isRowDeleteAllowed() {\r\n var callBaseResult = super._isRowDeleteAllowed();\r\n return callBaseResult || this.isBatchEditMode()\r\n }\r\n _beforeEndSaving(changes) {\r\n var _a;\r\n if (this.isCellEditMode()) {\r\n if (\"update\" !== (null === (_a = changes[0]) || void 0 === _a ? void 0 : _a.type)) {\r\n super._beforeEndSaving(changes)\r\n }\r\n } else {\r\n if (this.isBatchEditMode()) {\r\n this._resetModifiedClassCells(changes)\r\n }\r\n super._beforeEndSaving(changes)\r\n }\r\n }\r\n prepareEditButtons(headerPanel) {\r\n var _a;\r\n var editingOptions = null !== (_a = this.option(\"editing\")) && void 0 !== _a ? _a : {};\r\n var buttonItems = super.prepareEditButtons(headerPanel);\r\n var needEditingButtons = editingOptions.allowUpdating || editingOptions.allowAdding || editingOptions.allowDeleting;\r\n if (needEditingButtons && this.isBatchEditMode()) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"save\", \"saveEditData\", 21));\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"revert\", \"cancelEditData\", 22))\r\n }\r\n return buttonItems\r\n }\r\n _saveEditDataInner() {\r\n var editRow = this._dataController.getVisibleRows()[this.getEditRowIndex()];\r\n var editColumn = this._getEditColumn();\r\n var showEditorAlways = null === editColumn || void 0 === editColumn ? void 0 : editColumn.showEditorAlways;\r\n var isUpdateInCellMode = this.isCellEditMode() && !(null === editRow || void 0 === editRow ? void 0 : editRow.isNewRow);\r\n var deferred;\r\n if (isUpdateInCellMode && showEditorAlways) {\r\n deferred = new Deferred;\r\n this.addDeferred(deferred)\r\n }\r\n return super._saveEditDataInner().always(null === deferred || void 0 === deferred ? void 0 : deferred.resolve)\r\n }\r\n _applyChange(options, params, forceUpdateRow) {\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = options.column;\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var focusPreviousEditingCell = showEditorAlways && !forceUpdateRow && isUpdateInCellMode && this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex);\r\n if (focusPreviousEditingCell) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true, isCustomSetCellValue);\r\n return\r\n }\r\n return super._applyChange(options, params, forceUpdateRow)\r\n }\r\n _applyChangeCore(options, forceUpdateRow) {\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = options.column;\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n if (showEditorAlways && !forceUpdateRow) {\r\n if (isUpdateInCellMode) {\r\n this._setEditRowKey(options.row.key, true);\r\n this._setEditColumnNameByIndex(options.columnIndex, true);\r\n return this.saveEditData()\r\n }\r\n if (this.isBatchEditMode()) {\r\n forceUpdateRow = this._needUpdateRow(options.column);\r\n return super._applyChangeCore(options, forceUpdateRow)\r\n }\r\n }\r\n return super._applyChangeCore(options, forceUpdateRow)\r\n }\r\n _processDataItemCore(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n if (this.isBatchEditMode() && type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n item.data = createObjectWithChanges(item.data, data)\r\n }\r\n super._processDataItemCore(item, change, key, columns, generateDataValues)\r\n }\r\n _processRemoveCore(changes, editIndex, processIfBatch) {\r\n if (this.isBatchEditMode() && !processIfBatch) {\r\n return\r\n }\r\n return super._processRemoveCore(changes, editIndex, processIfBatch)\r\n }\r\n _processRemoveIfError(changes, editIndex) {\r\n if (this.isBatchEditMode()) {\r\n return\r\n }\r\n return super._processRemoveIfError(changes, editIndex)\r\n }\r\n _beforeFocusElementInRow(rowIndex) {\r\n super._beforeFocusElementInRow(rowIndex);\r\n var editRowIndex = rowIndex >= 0 ? rowIndex : 0;\r\n var columnIndex = this.getFirstEditableColumnIndex();\r\n columnIndex >= 0 && this.editCell(editRowIndex, columnIndex)\r\n }\r\n};\r\nexport var editingCellBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: editingControllerExtender\r\n },\r\n views: {\r\n rowsView: {\r\n _createTable() {\r\n var $table = this.callBase.apply(this, arguments);\r\n var editingController = this._editingController;\r\n if (editingController.isCellOrBatchEditMode() && this.option(\"editing.allowUpdating\")) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \"td:not(.\".concat(EDITOR_CELL_CLASS, \")\"), this.createAction(() => {\r\n if (editingController.isEditing()) {\r\n editingController.closeEditCell()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isRowRemoved = !!row.removed;\r\n if (editingController.isBatchEditMode()) {\r\n isRowRemoved && $row.addClass(ROW_REMOVED)\r\n }\r\n }\r\n return $row\r\n }\r\n },\r\n headerPanel: {\r\n isVisible() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || editingOptions && (editingOptions.allowUpdating || editingOptions.allowDeleting) && editingOptions.mode === EDIT_MODE_BATCH\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingCellBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_cell_based\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"editingCellBased\", editingCellBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/validating/m_validating.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferUpdate,\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth,\r\n setHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n encodeHtml\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Button from \"../../../../ui/button\";\r\nimport LoadIndicator from \"../../../../ui/load_indicator\";\r\nimport Overlay from \"../../../../ui/overlay/ui.overlay\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../../ui/themes\";\r\nimport ValidationEngine from \"../../../../ui/validation_engine\";\r\nimport Validator from \"../../../../ui/validator\";\r\nimport {\r\n focused\r\n} from \"../../../../ui/widget/selectors\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n EDITORS_INPUT_SELECTOR\r\n} from \"../editing/const\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar INVALIDATE_CLASS = \"invalid\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar INVALID_MESSAGE_CLASS = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_ID = \"dxInvalidMessage\";\r\nvar WIDGET_INVALID_MESSAGE_CLASS = \"invalid-message\";\r\nvar INVALID_MESSAGE_ALWAYS_CLASS = \"dx-invalid-message-always\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar REVERT_BUTTON_ID = \"dxRevertButton\";\r\nvar VALIDATOR_CLASS = \"validator\";\r\nvar PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar PADDING_BETWEEN_TOOLTIPS = 2;\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar FORM_BASED_MODES = [EDIT_MODE_POPUP, EDIT_MODE_FORM];\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar VALIDATION_STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nvar EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar VALIDATION_CANCELLED = \"cancel\";\r\nvar validationResultIsValid = function(result) {\r\n return isDefined(result) && result !== VALIDATION_CANCELLED\r\n};\r\nvar cellValueShouldBeValidated = function(value, rowOptions) {\r\n return void 0 !== value || void 0 === value && rowOptions && !rowOptions.isNewRow\r\n};\r\nvar ValidatingController = modules.Controller.inherit({\r\n init() {\r\n this._editingController = this.getController(\"editing\");\r\n this.createAction(\"onRowValidating\");\r\n if (!this._validationState) {\r\n this.initValidationState()\r\n }\r\n },\r\n initValidationState() {\r\n this._validationState = [];\r\n this._validationStateCache = {}\r\n },\r\n _rowIsValidated(change) {\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n return !!validationData && !!validationData.validated\r\n },\r\n _getValidationData(key, create) {\r\n var keyHash = getKeyHash(key);\r\n var isObjectKeyHash = isObject(keyHash);\r\n var validationData;\r\n if (isObjectKeyHash) {\r\n validationData = this._validationState.filter(data => equalByValue(data.key, key))[0]\r\n } else {\r\n validationData = this._validationStateCache[keyHash]\r\n }\r\n if (!validationData && create) {\r\n validationData = {\r\n key: key,\r\n isValid: true\r\n };\r\n this._validationState.push(validationData);\r\n if (!isObjectKeyHash) {\r\n this._validationStateCache[keyHash] = validationData\r\n }\r\n }\r\n return validationData\r\n },\r\n _getBrokenRules(validationData, validationResults) {\r\n var brokenRules;\r\n if (validationResults) {\r\n brokenRules = validationResults.brokenRules || validationResults.brokenRule && [validationResults.brokenRule]\r\n } else {\r\n brokenRules = validationData.brokenRules || []\r\n }\r\n return brokenRules\r\n },\r\n _rowValidating(validationData, validationResults) {\r\n var deferred = new Deferred;\r\n var change = this._editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var brokenRules = this._getBrokenRules(validationData, validationResults);\r\n var isValid = validationResults ? validationResults.isValid : validationData.isValid;\r\n var parameters = {\r\n brokenRules: brokenRules,\r\n isValid: isValid,\r\n key: change.key,\r\n newData: change.data,\r\n oldData: this._editingController._getOldData(change.key),\r\n promise: null,\r\n errorText: this.getHiddenValidatorsErrorText(brokenRules)\r\n };\r\n this.executeAction(\"onRowValidating\", parameters);\r\n when(fromPromise(parameters.promise)).always(() => {\r\n validationData.isValid = parameters.isValid;\r\n validationData.errorText = parameters.errorText;\r\n deferred.resolve(parameters)\r\n });\r\n return deferred.promise()\r\n },\r\n getHiddenValidatorsErrorText(brokenRules) {\r\n var brokenRulesMessages = [];\r\n each(brokenRules, (_, brokenRule) => {\r\n var {\r\n column: column\r\n } = brokenRule;\r\n var isGroupExpandColumn = column && void 0 !== column.groupIndex && !column.showWhenGrouped;\r\n var isVisibleColumn = column && column.visible;\r\n if (!brokenRule.validator.$element().parent().length && (!isVisibleColumn || isGroupExpandColumn)) {\r\n brokenRulesMessages.push(brokenRule.message)\r\n }\r\n });\r\n return brokenRulesMessages.join(\", \")\r\n },\r\n validate(isFull) {\r\n var isValid = true;\r\n var editingController = this._editingController;\r\n var deferred = new Deferred;\r\n var completeList = [];\r\n var editMode = editingController.getEditMode();\r\n isFull = isFull || editMode === EDIT_MODE_ROW;\r\n if (this._isValidationInProgress) {\r\n return deferred.resolve(false).promise()\r\n }\r\n this._isValidationInProgress = true;\r\n if (isFull) {\r\n editingController.addDeferred(deferred);\r\n var changes = editingController.getChanges();\r\n each(changes, (index, _ref) => {\r\n var {\r\n type: type,\r\n key: key\r\n } = _ref;\r\n if (\"remove\" !== type) {\r\n var validationData = this._getValidationData(key, true);\r\n var validationResult = this.validateGroup(validationData);\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n validationData.validated = true;\r\n isValid = isValid && validationResult.isValid\r\n })\r\n }\r\n })\r\n } else if (this._currentCellValidator) {\r\n var validationResult = this.validateGroup(this._currentCellValidator._findGroup());\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n isValid = validationResult.isValid\r\n })\r\n }\r\n when(...completeList).done(() => {\r\n this._isValidationInProgress = false;\r\n deferred.resolve(isValid)\r\n });\r\n return deferred.promise()\r\n },\r\n validateGroup(validationData) {\r\n var result = new Deferred;\r\n var validateGroup = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validationResult;\r\n if (null === validateGroup || void 0 === validateGroup ? void 0 : validateGroup.validators.length) {\r\n this.resetRowValidationResults(validationData);\r\n validationResult = ValidationEngine.validateGroup(validationData)\r\n }\r\n when((null === validationResult || void 0 === validationResult ? void 0 : validationResult.complete) || validationResult).done(validationResult => {\r\n when(this._rowValidating(validationData, validationResult)).done(result.resolve)\r\n });\r\n return result.promise()\r\n },\r\n isRowDataModified: change => !isEmptyObject(change.data),\r\n updateValidationState(change) {\r\n var editMode = this._editingController.getEditMode();\r\n var {\r\n key: key\r\n } = change;\r\n var validationData = this._getValidationData(key, true);\r\n if (!FORM_BASED_MODES.includes(editMode)) {\r\n if (change.type === EDIT_DATA_INSERT_TYPE && !this.isRowDataModified(change)) {\r\n validationData.isValid = true;\r\n return\r\n }\r\n this.setDisableApplyValidationResults(true);\r\n var groupConfig = ValidationEngine.getGroupConfig(validationData);\r\n if (groupConfig) {\r\n var validationResult = ValidationEngine.validateGroup(validationData);\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n validationData.isValid = validationResult.isValid;\r\n validationData.brokenRules = validationResult.brokenRules\r\n })\r\n } else if (!validationData.brokenRules || !validationData.brokenRules.length) {\r\n validationData.isValid = true\r\n }\r\n this.setDisableApplyValidationResults(false)\r\n } else {\r\n validationData.isValid = true\r\n }\r\n },\r\n setValidator(validator) {\r\n this._currentCellValidator = validator\r\n },\r\n renderCellPendingIndicator($container) {\r\n var $indicator = $container.find(\".\".concat(PENDING_INDICATOR_CLASS));\r\n if (!$indicator.length) {\r\n var $indicatorContainer = $container;\r\n $indicator = $(\"<div>\").appendTo($indicatorContainer).addClass(PENDING_INDICATOR_CLASS);\r\n this._createComponent($indicator, LoadIndicator);\r\n $container.addClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n disposeCellPendingIndicator($container) {\r\n var $indicator = $container.find(\".\".concat(PENDING_INDICATOR_CLASS));\r\n if ($indicator.length) {\r\n var indicator = LoadIndicator.getInstance($indicator);\r\n if (indicator) {\r\n indicator.dispose();\r\n indicator.$element().remove()\r\n }\r\n $container.removeClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n validationStatusChanged(result) {\r\n var {\r\n validator: validator\r\n } = result;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n this.updateCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index,\r\n validationResult: result\r\n })\r\n },\r\n validatorInitialized(arg) {\r\n arg.component.on(\"validating\", this.validationStatusChanged.bind(this));\r\n arg.component.on(\"validated\", this.validationStatusChanged.bind(this))\r\n },\r\n validatorDisposing(arg) {\r\n var validator = arg.component;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n var result = this.getCellValidationResult({\r\n rowKey: null === validationGroup || void 0 === validationGroup ? void 0 : validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n if (validationResultIsValid(result) && result.status === VALIDATION_STATUS.pending) {\r\n this.cancelCellValidationResult({\r\n change: validationGroup,\r\n columnIndex: column.index\r\n })\r\n }\r\n },\r\n applyValidationResult($container, result) {\r\n var {\r\n validator: validator\r\n } = result;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var {\r\n column: column\r\n } = validator.option(\"dataGetter\")();\r\n result.brokenRules && result.brokenRules.forEach(rule => {\r\n rule.columnIndex = column.index;\r\n rule.column = column\r\n });\r\n if ($container) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n var requestIsDisabled = validationResultIsValid(validationResult) && validationResult.disabledPendingId === result.id;\r\n if (this._disableApplyValidationResults || requestIsDisabled) {\r\n return\r\n }\r\n if (result.status === VALIDATION_STATUS.invalid) {\r\n var $focus = $container.find(\":focus\");\r\n if (!focused($focus)) {\r\n eventsEngine.trigger($focus, \"focus\");\r\n eventsEngine.trigger($focus, pointerEvents.down)\r\n }\r\n }\r\n var editor = !column.editCellTemplate && this.getController(\"editorFactory\").getEditorInstance($container);\r\n if (result.status === VALIDATION_STATUS.pending) {\r\n if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.pending)\r\n } else {\r\n this.renderCellPendingIndicator($container)\r\n }\r\n } else if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.valid)\r\n } else {\r\n this.disposeCellPendingIndicator($container)\r\n }\r\n $container.toggleClass(this.addWidgetPrefix(INVALIDATE_CLASS), result.status === VALIDATION_STATUS.invalid)\r\n }\r\n },\r\n _syncInternalEditingData(parameters) {\r\n var _a;\r\n var editingController = this._editingController;\r\n var change = editingController.getChangeByKey(parameters.key);\r\n var oldDataFromState = editingController._getOldData(parameters.key);\r\n var oldData = null === (_a = parameters.row) || void 0 === _a ? void 0 : _a.oldData;\r\n if (change && oldData && !oldDataFromState) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: oldData\r\n })\r\n }\r\n },\r\n createValidator(parameters, $container) {\r\n var _a, _b;\r\n var editingController = this._editingController;\r\n var {\r\n column: column\r\n } = parameters;\r\n var {\r\n showEditorAlways: showEditorAlways\r\n } = column;\r\n if (isDefined(column.command) || !column.validationRules || !Array.isArray(column.validationRules) || !column.validationRules.length) {\r\n return\r\n }\r\n var editIndex = editingController.getIndexByKey(parameters.key, editingController.getChanges());\r\n var needCreateValidator = editIndex > -1;\r\n if (!needCreateValidator) {\r\n if (!showEditorAlways) {\r\n var columnsController = this.getController(\"columns\");\r\n var visibleColumns = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getVisibleColumns()) || [];\r\n showEditorAlways = visibleColumns.some(column => column.showEditorAlways)\r\n }\r\n var isEditRow = equalByValue(this.option(\"editing.editRowKey\"), parameters.key);\r\n var isCellOrBatchEditingAllowed = editingController.isCellOrBatchEditMode() && editingController.allowUpdating({\r\n row: parameters.row\r\n });\r\n needCreateValidator = isEditRow || isCellOrBatchEditingAllowed && showEditorAlways;\r\n if (isCellOrBatchEditingAllowed && showEditorAlways) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: null !== (_b = null === (_a = parameters.row) || void 0 === _a ? void 0 : _a.oldData) && void 0 !== _b ? _b : parameters.data\r\n })\r\n }\r\n }\r\n if (needCreateValidator) {\r\n if ($container && !$container.length) {\r\n errors.log(\"E1050\");\r\n return\r\n }\r\n this._syncInternalEditingData(parameters);\r\n var validationData = this._getValidationData(parameters.key, true);\r\n var getValue = () => {\r\n var change = editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var value = column.calculateCellValue((null === change || void 0 === change ? void 0 : change.data) || {});\r\n return void 0 !== value ? value : parameters.value\r\n };\r\n var useDefaultValidator = $container && $container.hasClass(\"dx-widget\");\r\n $container && $container.addClass(this.addWidgetPrefix(VALIDATOR_CLASS));\r\n var validator = new Validator($container || $(\"<div>\"), {\r\n name: column.caption,\r\n validationRules: extend(true, [], column.validationRules),\r\n validationGroup: validationData,\r\n adapter: useDefaultValidator ? null : {\r\n getValue: getValue,\r\n applyValidationResults: result => {\r\n this.applyValidationResult($container, result)\r\n }\r\n },\r\n dataGetter() {\r\n var key = null === validationData || void 0 === validationData ? void 0 : validationData.key;\r\n var change = editingController.getChangeByKey(key);\r\n var oldData = editingController._getOldData(key);\r\n return {\r\n data: createObjectWithChanges(oldData, null === change || void 0 === change ? void 0 : change.data),\r\n column: column\r\n }\r\n },\r\n onInitialized: this.validatorInitialized.bind(this),\r\n onDisposing: this.validatorDisposing.bind(this)\r\n });\r\n if (useDefaultValidator) {\r\n var adapter = validator.option(\"adapter\");\r\n if (adapter) {\r\n var originBypass = adapter.bypass;\r\n var defaultAdapterBypass = () => parameters.row.isNewRow && !this._isValidationInProgress && !editingController.isCellModified(parameters);\r\n adapter.getValue = getValue;\r\n adapter.validationRequestsCallbacks = [];\r\n adapter.bypass = () => originBypass.call(adapter) || defaultAdapterBypass()\r\n }\r\n }\r\n return validator\r\n }\r\n return\r\n },\r\n setDisableApplyValidationResults(flag) {\r\n this._disableApplyValidationResults = flag\r\n },\r\n getDisableApplyValidationResults() {\r\n return this._disableApplyValidationResults\r\n },\r\n isCurrentValidatorProcessing(_ref2) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref2;\r\n return this._currentCellValidator && equalByValue(this._currentCellValidator.option(\"validationGroup\").key, rowKey) && this._currentCellValidator.option(\"dataGetter\")().column.index === columnIndex\r\n },\r\n validateCell(validator) {\r\n var cellParams = {\r\n rowKey: validator.option(\"validationGroup\").key,\r\n columnIndex: validator.option(\"dataGetter\")().column.index\r\n };\r\n var validationResult = this.getCellValidationResult(cellParams);\r\n var stateRestored = validationResultIsValid(validationResult);\r\n var adapter = validator.option(\"adapter\");\r\n if (!stateRestored) {\r\n validationResult = validator.validate()\r\n } else {\r\n var currentCellValue = adapter.getValue();\r\n if (!equalByValue(currentCellValue, validationResult.value)) {\r\n validationResult = validator.validate()\r\n }\r\n }\r\n var deferred = new Deferred;\r\n if (stateRestored && validationResult.status === VALIDATION_STATUS.pending) {\r\n this.updateCellValidationResult(cellParams);\r\n adapter.applyValidationResults(validationResult)\r\n }\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n stateRestored && adapter.applyValidationResults(validationResult);\r\n deferred.resolve(validationResult)\r\n });\r\n return deferred.promise()\r\n },\r\n updateCellValidationResult(_ref3) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex,\r\n validationResult: validationResult\r\n } = _ref3;\r\n var validationData = this._getValidationData(rowKey);\r\n if (!validationData) {\r\n return\r\n }\r\n if (!validationData.validationResults) {\r\n validationData.validationResults = {}\r\n }\r\n var result;\r\n if (validationResult) {\r\n result = extend({}, validationResult);\r\n validationData.validationResults[columnIndex] = result;\r\n if (validationResult.status === VALIDATION_STATUS.pending) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n result.deferred = new Deferred;\r\n result.complete.always(() => {\r\n result.deferred.resolve()\r\n });\r\n this._editingController.addDeferred(result.deferred)\r\n }\r\n if (this._disableApplyValidationResults) {\r\n result.disabledPendingId = validationResult.id;\r\n return\r\n }\r\n }\r\n } else {\r\n result = validationData.validationResults[columnIndex]\r\n }\r\n if (result && result.disabledPendingId) {\r\n delete result.disabledPendingId\r\n }\r\n },\r\n getCellValidationResult(_ref4) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref4;\r\n var _a;\r\n var validationData = this._getValidationData(rowKey, true);\r\n return null === (_a = null === validationData || void 0 === validationData ? void 0 : validationData.validationResults) || void 0 === _a ? void 0 : _a[columnIndex]\r\n },\r\n removeCellValidationResult(_ref5) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref5;\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (validationData && validationData.validationResults) {\r\n this.cancelCellValidationResult({\r\n change: change,\r\n columnIndex: columnIndex\r\n });\r\n delete validationData.validationResults[columnIndex]\r\n }\r\n },\r\n cancelCellValidationResult(_ref6) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref6;\r\n var validationData = this._getValidationData(change.key);\r\n if (change && validationData.validationResults) {\r\n var result = validationData.validationResults[columnIndex];\r\n if (result) {\r\n result.deferred && result.deferred.reject(VALIDATION_CANCELLED);\r\n validationData.validationResults[columnIndex] = VALIDATION_CANCELLED\r\n }\r\n }\r\n },\r\n resetRowValidationResults(validationData) {\r\n if (validationData) {\r\n validationData.validationResults && delete validationData.validationResults;\r\n delete validationData.validated\r\n }\r\n },\r\n isInvalidCell(_ref7) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref7;\r\n var result = this.getCellValidationResult({\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n });\r\n return validationResultIsValid(result) && result.status === VALIDATION_STATUS.invalid\r\n },\r\n getCellValidator(_ref8) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref8;\r\n var validationData = this._getValidationData(rowKey);\r\n var groupConfig = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validators = groupConfig && groupConfig.validators;\r\n return validators && validators.filter(v => {\r\n var {\r\n column: column\r\n } = v.option(\"dataGetter\")();\r\n return column ? column.index === columnIndex : false\r\n })[0]\r\n },\r\n setCellValidationStatus(cellOptions) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: cellOptions.key,\r\n columnIndex: cellOptions.column.index\r\n });\r\n if (isDefined(validationResult)) {\r\n cellOptions.validationStatus = validationResult !== VALIDATION_CANCELLED ? validationResult.status : VALIDATION_CANCELLED\r\n } else {\r\n delete cellOptions.validationStatus\r\n }\r\n }\r\n});\r\nexport var validatingModule = {\r\n defaultOptions: () => ({\r\n editing: {\r\n texts: {\r\n validationCancelChanges: messageLocalization.format(\"dxDataGrid-validationCancelChanges\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n validating: ValidatingController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n _addChange(changeParams) {\r\n var change = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n if (change && changeParams.type !== EDIT_DATA_REMOVE_TYPE) {\r\n validatingController.updateValidationState(change)\r\n }\r\n return change\r\n },\r\n _handleChangesChange(args) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n args.value.forEach(change => {\r\n if (void 0 === validatingController._getValidationData(change.key)) {\r\n validatingController.updateValidationState(change)\r\n }\r\n })\r\n },\r\n _updateRowAndPageIndices() {\r\n var that = this;\r\n var startInsertIndex = that.getView(\"rowsView\").getTopVisibleItemIndex();\r\n var rowIndex = startInsertIndex;\r\n each(that.getChanges(), (_, _ref9) => {\r\n var {\r\n key: key,\r\n type: type\r\n } = _ref9;\r\n var validationData = this.getController(\"validating\")._getValidationData(key);\r\n if (validationData && !validationData.isValid && validationData.pageIndex !== that._pageIndex) {\r\n validationData.pageIndex = that._pageIndex;\r\n if (type === EDIT_DATA_INSERT_TYPE) {\r\n validationData.rowIndex = startInsertIndex\r\n } else {\r\n validationData.rowIndex = rowIndex\r\n }\r\n rowIndex++\r\n }\r\n })\r\n },\r\n _getValidationGroupsInForm(detailOptions) {\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(detailOptions.key, true);\r\n return {\r\n validationGroup: validationData\r\n }\r\n },\r\n _validateEditFormAfterUpdate(row, isCustomSetCellValue) {\r\n if (isCustomSetCellValue && this._editForm) {\r\n this._editForm.validate()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _prepareEditCell(params) {\r\n var isNotCanceled = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n if (isNotCanceled && params.column.showEditorAlways) {\r\n validatingController.updateValidationState({\r\n key: params.key\r\n })\r\n }\r\n return isNotCanceled\r\n },\r\n processItems(items, changeType) {\r\n var changes = this.getChanges();\r\n var dataController = this.getController(\"data\");\r\n var validatingController = this.getController(\"validating\");\r\n items = this.callBase(items, changeType);\r\n var itemsCount = items.length;\r\n var addInValidItem = function(change, validationData) {\r\n var data = {\r\n key: change.key\r\n };\r\n var index = function(change, items) {\r\n var index = -1;\r\n var isInsert = change.type === EDIT_DATA_INSERT_TYPE;\r\n var {\r\n key: key\r\n } = change;\r\n each(items, (i, item) => {\r\n if (equalByValue(key, isInsert ? item.key : dataController.keyOf(item))) {\r\n index = i;\r\n return false\r\n }\r\n return\r\n });\r\n return index\r\n }(change, items);\r\n if (index >= 0) {\r\n return\r\n }\r\n validationData.rowIndex = validationData.rowIndex > itemsCount ? validationData.rowIndex % itemsCount : validationData.rowIndex;\r\n var {\r\n rowIndex: rowIndex\r\n } = validationData;\r\n data[INSERT_INDEX] = 1;\r\n items.splice(rowIndex, 0, data)\r\n };\r\n if (this.getEditMode() === EDIT_MODE_BATCH && \"prepend\" !== changeType && \"append\" !== changeType) {\r\n changes.forEach(change => {\r\n var {\r\n key: key\r\n } = change;\r\n var validationData = validatingController._getValidationData(key);\r\n if (validationData && change.type && validationData.pageIndex === this._pageIndex && (null === change || void 0 === change ? void 0 : change.pageIndex) !== this._pageIndex) {\r\n addInValidItem(change, validationData)\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n processDataItem(item) {\r\n var isInserted = item.data[INSERT_INDEX];\r\n var key = isInserted ? item.data.key : item.key;\r\n var editMode = this.getEditMode();\r\n if (editMode === EDIT_MODE_BATCH && isInserted && key) {\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var change = changes[editIndex];\r\n if (change.type !== EDIT_DATA_INSERT_TYPE) {\r\n var oldData = this._getOldData(change.key);\r\n item.data = extend(true, {}, oldData, change.data);\r\n item.key = key\r\n }\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createInvisibleColumnValidators(changes) {\r\n var that = this;\r\n var validatingController = this.getController(\"validating\");\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n var invisibleColumns = columnsController.getInvisibleColumns().filter(column => !column.isBand);\r\n var groupColumns = columnsController.getGroupColumns().filter(column => !column.showWhenGrouped && -1 === invisibleColumns.indexOf(column));\r\n var invisibleColumnValidators = [];\r\n var isCellVisible = (column, rowKey) => this._dataController.getRowIndexByKey(rowKey) >= 0 && invisibleColumns.indexOf(column) < 0;\r\n invisibleColumns.push(...groupColumns);\r\n if (!FORM_BASED_MODES.includes(this.getEditMode())) {\r\n each(columns, (_, column) => {\r\n changes.forEach(change => {\r\n var data;\r\n if (isCellVisible(column, change.key)) {\r\n return\r\n }\r\n if (change.type === EDIT_DATA_INSERT_TYPE) {\r\n data = change.data\r\n } else if (\"update\" === change.type) {\r\n var oldData = that._getOldData(change.key);\r\n if (!isDefined(oldData)) {\r\n return\r\n }\r\n data = createObjectWithChanges(oldData, change.data)\r\n }\r\n if (data) {\r\n var validator = validatingController.createValidator({\r\n column: column,\r\n key: change.key,\r\n value: column.calculateCellValue(data)\r\n });\r\n if (validator) {\r\n invisibleColumnValidators.push(validator)\r\n }\r\n }\r\n })\r\n })\r\n }\r\n return function() {\r\n invisibleColumnValidators.forEach(validator => {\r\n validator.dispose()\r\n })\r\n }\r\n },\r\n _beforeSaveEditData(change, editIndex) {\r\n var result = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (change) {\r\n var isValid = \"remove\" === change.type || validationData.isValid;\r\n result = result || !isValid\r\n } else {\r\n var disposeValidators = this._createInvisibleColumnValidators(this.getChanges());\r\n result = new Deferred;\r\n this.executeOperation(result, () => {\r\n validatingController.validate(true).done(isFullValid => {\r\n disposeValidators();\r\n this._updateRowAndPageIndices();\r\n switch (this.getEditMode()) {\r\n case EDIT_MODE_CELL:\r\n if (!isFullValid) {\r\n this._focusEditingCell()\r\n }\r\n break;\r\n case EDIT_MODE_BATCH:\r\n if (!isFullValid) {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n this.getController(\"data\").updateItems()\r\n }\r\n }\r\n result.resolve(!isFullValid)\r\n })\r\n })\r\n }\r\n return result.promise ? result.promise() : result\r\n },\r\n _beforeEditCell(rowIndex, columnIndex, item) {\r\n var result = this.callBase(rowIndex, columnIndex, item);\r\n if (this.getEditMode() === EDIT_MODE_CELL) {\r\n var $cell = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n var validator = $cell && $cell.data(\"dxValidator\");\r\n var rowOptions = $cell && $cell.closest(\".dx-row\").data(\"options\");\r\n var value = validator && validator.option(\"adapter\").getValue();\r\n if (validator && cellValueShouldBeValidated(value, rowOptions)) {\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new Deferred;\r\n when(validatingController.validateCell(validator), result).done((validationResult, result) => {\r\n deferred.resolve(validationResult.status === VALIDATION_STATUS.valid && result)\r\n });\r\n return deferred.promise()\r\n }\r\n if (!validator) {\r\n return result\r\n }\r\n }\r\n return false\r\n },\r\n _afterSaveEditData(cancel) {\r\n var $firstErrorRow;\r\n var isCellEditMode = this.getEditMode() === EDIT_MODE_CELL;\r\n each(this.getChanges(), (_, change) => {\r\n var $errorRow = this._showErrorRow(change);\r\n $firstErrorRow = $firstErrorRow || $errorRow\r\n });\r\n if ($firstErrorRow) {\r\n var scrollable = this._rowsView.getScrollable();\r\n if (scrollable) {\r\n scrollable.update();\r\n scrollable.scrollToElement($firstErrorRow)\r\n }\r\n }\r\n if (cancel && isCellEditMode && this._needUpdateRow()) {\r\n var editRowIndex = this.getEditRowIndex();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n });\r\n this._focusEditingCell()\r\n } else if (!cancel) {\r\n var shouldResetValidationState = true;\r\n if (isCellEditMode) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var columnsWithValidatingEditors = columns.filter(col => {\r\n var _a;\r\n return col.showEditorAlways && (null === (_a = col.validationRules) || void 0 === _a ? void 0 : _a.length) > 0\r\n }).length > 0;\r\n shouldResetValidationState = !columnsWithValidatingEditors\r\n }\r\n if (shouldResetValidationState) {\r\n this.getController(\"validating\").initValidationState()\r\n }\r\n }\r\n },\r\n _handleDataChanged(args) {\r\n var validationState = this.getController(\"validating\")._validationState;\r\n if (\"standard\" === this.option(\"scrolling.mode\")) {\r\n this.resetRowAndPageIndices()\r\n }\r\n if (\"prepend\" === args.changeType) {\r\n each(validationState, (_, validationData) => {\r\n validationData.rowIndex += args.items.length\r\n })\r\n }\r\n this.callBase(args)\r\n },\r\n resetRowAndPageIndices() {\r\n var validationState = this.getController(\"validating\")._validationState;\r\n each(validationState, (_, validationData) => {\r\n if (validationData.pageIndex !== this._pageIndex) {\r\n delete validationData.pageIndex;\r\n delete validationData.rowIndex\r\n }\r\n })\r\n },\r\n _beforeCancelEditData() {\r\n this.getController(\"validating\").initValidationState();\r\n this.callBase()\r\n },\r\n _showErrorRow(change) {\r\n var $popupContent;\r\n var errorHandling = this.getController(\"errorHandling\");\r\n var items = this.getController(\"data\").items();\r\n var rowIndex = this.getIndexByKey(change.key, items);\r\n var validationData = this.getController(\"validating\")._getValidationData(change.key);\r\n if (!(null === validationData || void 0 === validationData ? void 0 : validationData.isValid) && (null === validationData || void 0 === validationData ? void 0 : validationData.errorText) && rowIndex >= 0) {\r\n $popupContent = this.getPopupContent();\r\n return errorHandling && errorHandling.renderErrorRow(null === validationData || void 0 === validationData ? void 0 : validationData.errorText, rowIndex, $popupContent)\r\n }\r\n },\r\n updateFieldValue(e) {\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new Deferred;\r\n validatingController.removeCellValidationResult({\r\n change: this.getChangeByKey(e.key),\r\n columnIndex: e.column.index\r\n });\r\n this.callBase.apply(this, arguments).done(() => {\r\n var currentValidator = validatingController.getCellValidator({\r\n rowKey: e.key,\r\n columnIndex: e.column.index\r\n });\r\n when(currentValidator && validatingController.validateCell(currentValidator)).done(validationResult => {\r\n this.getController(\"editorFactory\").refocus();\r\n deferred.resolve(validationResult)\r\n })\r\n });\r\n return deferred.promise()\r\n },\r\n highlightDataCell($cell, parameters) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n validatingController.setCellValidationStatus(parameters);\r\n var isEditableCell = !!parameters.setValue;\r\n var cellModified = this.isCellModified(parameters);\r\n var isValidated = isDefined(parameters.validationStatus);\r\n var needValidation = cellModified && parameters.column.setCellValue || isEditableCell && !cellModified && !(parameters.row.isNewRow || !isValidated);\r\n if (needValidation) {\r\n var validator = $cell.data(\"dxValidator\");\r\n if (validator) {\r\n when(this.getController(\"validating\").validateCell(validator)).done(() => {\r\n validatingController.setCellValidationStatus(parameters)\r\n })\r\n }\r\n }\r\n },\r\n getChangeByKey(key) {\r\n var changes = this.getChanges();\r\n return changes[gridCoreUtils.getIndexByKey(key, changes)]\r\n },\r\n isCellModified(parameters) {\r\n var cellModified = this.callBase(parameters);\r\n var change = this.getChangeByKey(parameters.key);\r\n var isCellInvalid = !!parameters.row && this.getController(\"validating\").isInvalidCell({\r\n rowKey: parameters.key,\r\n columnIndex: parameters.column.index\r\n });\r\n return cellModified || this.getController(\"validating\")._rowIsValidated(change) && isCellInvalid\r\n }\r\n },\r\n editorFactory: {\r\n _showRevertButton($container) {\r\n var _a;\r\n var $tooltipElement = null === (_a = this._revertTooltip) || void 0 === _a ? void 0 : _a.$element();\r\n if (!$container || !$container.length) {\r\n null === $tooltipElement || void 0 === $tooltipElement ? void 0 : $tooltipElement.remove();\r\n this._revertTooltip = void 0;\r\n return\r\n }\r\n if ($container.find($tooltipElement).length) {\r\n return\r\n }\r\n var $overlayContainer = $container.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS))).parent();\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n null === $tooltipElement || void 0 === $tooltipElement ? void 0 : $tooltipElement.remove();\r\n $tooltipElement = $(\"<div>\").addClass(revertTooltipClass).appendTo($container);\r\n var tooltipOptions = {\r\n animation: null,\r\n visible: true,\r\n width: \"auto\",\r\n height: \"auto\",\r\n shading: false,\r\n container: $overlayContainer,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n wrapperAttr: {\r\n class: revertTooltipClass\r\n },\r\n contentTemplate: () => {\r\n var $buttonElement = $(\"<div>\").addClass(REVERT_BUTTON_CLASS);\r\n var buttonOptions = {\r\n icon: \"revert\",\r\n hint: this.option(\"editing.texts.validationCancelChanges\"),\r\n elementAttr: {\r\n id: REVERT_BUTTON_ID,\r\n \"aria-label\": messageLocalization.format(\"dxDataGrid-ariaRevertButton\")\r\n },\r\n onClick: () => {\r\n this._editingController.cancelEditData()\r\n }\r\n };\r\n return new Button($buttonElement, buttonOptions).$element()\r\n },\r\n position: {\r\n my: \"left top\",\r\n at: \"right top\",\r\n offset: \"1 0\",\r\n collision: \"flip\",\r\n boundaryOffset: \"0 0\",\r\n boundary: this._rowsView.element(),\r\n of: $container\r\n },\r\n onPositioned: this._positionedHandler.bind(this)\r\n };\r\n this._revertTooltip = new Overlay($tooltipElement, tooltipOptions)\r\n },\r\n _hideFixedGroupCell($cell, overlayOptions) {\r\n var $nextFixedRowElement;\r\n var $groupCellElement;\r\n var isFixedColumns = this._rowsView.isFixedColumns();\r\n var isFormOrPopupEditMode = this._editingController.isFormOrPopupEditMode();\r\n if (isFixedColumns && !isFormOrPopupEditMode) {\r\n var nextRowOptions = $cell.closest(\".dx-row\").next().data(\"options\");\r\n if (nextRowOptions && \"group\" === nextRowOptions.rowType) {\r\n $nextFixedRowElement = $(this._rowsView.getRowElement(nextRowOptions.rowIndex)).last();\r\n $groupCellElement = $nextFixedRowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n if ($groupCellElement.length && \"hidden\" !== $groupCellElement.get(0).style.visibility) {\r\n $groupCellElement.css(\"visibility\", \"hidden\");\r\n overlayOptions.onDisposing = function() {\r\n $groupCellElement.css(\"visibility\", \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _positionedHandler(e, isOverlayVisible) {\r\n if (!e.component.__skipPositionProcessing) {\r\n var isRevertButton = $(e.element).hasClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var needRepaint = !isRevertButton && this._rowsView.updateFreeSpaceRowHeight();\r\n var normalizedPosition = this._normalizeValidationMessagePositionAndMaxWidth(e, isRevertButton, isOverlayVisible);\r\n e.component.__skipPositionProcessing = !!(needRepaint || normalizedPosition);\r\n if (normalizedPosition) {\r\n e.component.option(normalizedPosition)\r\n } else if (needRepaint) {\r\n e.component.repaint()\r\n }\r\n }\r\n },\r\n _showValidationMessage($cell, messages, alignment) {\r\n var _a;\r\n var editorPopup = $cell.find(\".dx-dropdowneditor-overlay\").data(\"dxPopup\");\r\n var isOverlayVisible = editorPopup && editorPopup.option(\"visible\");\r\n var myPosition = isOverlayVisible ? \"top right\" : \"top \".concat(alignment);\r\n var atPosition = isOverlayVisible ? \"top left\" : \"bottom \".concat(alignment);\r\n var hasFixedColumns = (null === (_a = this._columnsController.getFixedColumns()) || void 0 === _a ? void 0 : _a.length) > 0;\r\n var $overlayContainer = hasFixedColumns ? this.getView(\"rowsView\").element() : $cell.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var errorMessageText = \"\";\r\n messages && messages.forEach(message => {\r\n errorMessageText += (errorMessageText.length ? \"<br/>\" : \"\") + encodeHtml(message)\r\n });\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n this._rowsView.element().find(\".\".concat(invalidMessageClass)).remove();\r\n var $overlayElement = $(\"<div>\").addClass(INVALID_MESSAGE_CLASS).addClass(INVALID_MESSAGE_ALWAYS_CLASS).addClass(invalidMessageClass).html(errorMessageText).appendTo($cell);\r\n var overlayOptions = {\r\n container: $overlayContainer,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n visible: true,\r\n animation: false,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n wrapperAttr: {\r\n id: INVALID_MESSAGE_ID,\r\n class: \"\".concat(INVALID_MESSAGE_CLASS, \" \").concat(INVALID_MESSAGE_ALWAYS_CLASS, \" \").concat(invalidMessageClass)\r\n },\r\n position: {\r\n collision: \"flip\",\r\n boundary: this._rowsView.element(),\r\n boundaryOffset: \"0 0\",\r\n offset: {\r\n x: 0,\r\n y: !isOverlayVisible && browser.mozilla ? -1 : 0\r\n },\r\n my: myPosition,\r\n at: atPosition,\r\n of: $cell\r\n },\r\n onPositioned: e => {\r\n this._positionedHandler(e, isOverlayVisible);\r\n this._shiftValidationMessageIfNeed(e.component.$content(), $cell)\r\n }\r\n };\r\n this._hideFixedGroupCell($cell, overlayOptions);\r\n new Overlay($overlayElement, overlayOptions)\r\n },\r\n _hideValidationMessage() {\r\n var _a;\r\n var validationMessages = null === (_a = this._rowsView.element()) || void 0 === _a ? void 0 : _a.find(this._getValidationMessagesSelector());\r\n null === validationMessages || void 0 === validationMessages ? void 0 : validationMessages.remove()\r\n },\r\n _normalizeValidationMessagePositionAndMaxWidth(options, isRevertButton, isOverlayVisible) {\r\n var fixedColumns = this._columnsController.getFixedColumns();\r\n if (!fixedColumns || !fixedColumns.length) {\r\n return\r\n }\r\n var position;\r\n var visibleTableWidth = !isRevertButton && (that = this, element = options.element, rowIndex = $(element).closest(\"tr\").index(), $cellElements = $(that._rowsView.getRowElement(rowIndex)).first().children().filter(\":not(.dx-hidden-cell)\"), that._rowsView._getWidths($cellElements).reduce((w1, w2) => w1 + w2, 0));\r\n var that, element, rowIndex, $cellElements;\r\n var $overlayContentElement = options.component.$content();\r\n var validationMessageWidth = getOuterWidth($overlayContentElement, true);\r\n var needMaxWidth = !isRevertButton && validationMessageWidth > visibleTableWidth;\r\n var columnIndex = this._rowsView.getCellIndex($(options.element).closest(\"td\"));\r\n var boundaryNonFixedColumnsInfo = function(fixedColumns) {\r\n var firstNonFixedColumnIndex;\r\n var lastNonFixedColumnIndex;\r\n fixedColumns.some((column, index) => {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n firstNonFixedColumnIndex = 0 === index ? -1 : index;\r\n lastNonFixedColumnIndex = index === fixedColumns.length - 1 ? -1 : index + column.colspan - 1;\r\n return true\r\n }\r\n return\r\n });\r\n return {\r\n startColumnIndex: firstNonFixedColumnIndex,\r\n endColumnIndex: lastNonFixedColumnIndex\r\n }\r\n }(fixedColumns);\r\n if (!isRevertButton && (columnIndex === boundaryNonFixedColumnsInfo.startColumnIndex || needMaxWidth)) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top left\",\r\n at: isOverlayVisible ? \"top right\" : \"bottom left\"\r\n }\r\n } else if (columnIndex === boundaryNonFixedColumnsInfo.endColumnIndex) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top right\",\r\n at: isRevertButton || isOverlayVisible ? \"top left\" : \"bottom right\"\r\n };\r\n if (isRevertButton) {\r\n position.offset = \"-1 0\"\r\n }\r\n }\r\n return position && {\r\n position: position,\r\n maxWidth: needMaxWidth ? visibleTableWidth - 2 : void 0\r\n }\r\n },\r\n _shiftValidationMessageIfNeed($content, $cell) {\r\n var $revertContent = this._revertTooltip && this._revertTooltip.$content();\r\n if (!$revertContent) {\r\n return\r\n }\r\n var contentOffset = $content.offset();\r\n var revertContentOffset = $revertContent.offset();\r\n if (contentOffset.top === revertContentOffset.top && contentOffset.left + getWidth($content) > revertContentOffset.left) {\r\n var left = getWidth($revertContent) + PADDING_BETWEEN_TOOLTIPS;\r\n $content.css(\"left\", revertContentOffset.left < $cell.offset().left ? -left : left)\r\n }\r\n },\r\n _getRevertTooltipsSelector() {\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n return \".dx-editor-cell .\".concat(revertTooltipClass)\r\n },\r\n _getValidationMessagesSelector() {\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n return \".dx-editor-cell .\".concat(invalidMessageClass, \", .dx-cell-modified .\").concat(invalidMessageClass)\r\n },\r\n init() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n loseFocus(skipValidator) {\r\n if (!skipValidator) {\r\n this.getController(\"validating\").setValidator(null)\r\n }\r\n this.callBase()\r\n },\r\n updateCellState($element, validationResult, isHideBorder) {\r\n var _a;\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var $cell = (null === $focus || void 0 === $focus ? void 0 : $focus.is(\"td\")) ? $focus : null;\r\n var rowOptions = null === $focus || void 0 === $focus ? void 0 : $focus.closest(\".dx-row\").data(\"options\");\r\n var change = rowOptions ? this.getController(\"editing\").getChangeByKey(rowOptions.key) : null;\r\n var column = $cell && this.getController(\"columns\").getVisibleColumns()[$cell.index()];\r\n var isCellModified = void 0 !== (null === (_a = null === change || void 0 === change ? void 0 : change.data) || void 0 === _a ? void 0 : _a[null === column || void 0 === column ? void 0 : column.name]) && !this._editingController.isSaving();\r\n var validationDescriptionValues = [];\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n if ((null === validationResult || void 0 === validationResult ? void 0 : validationResult.status) === VALIDATION_STATUS.invalid || isCellModified) {\r\n this._showRevertButton($focus);\r\n validationDescriptionValues.push(REVERT_BUTTON_ID)\r\n } else {\r\n this._revertTooltip && this._revertTooltip.$element().remove()\r\n }\r\n }\r\n var showValidationMessage = validationResult && validationResult.status === VALIDATION_STATUS.invalid;\r\n if (showValidationMessage && $cell && column && validationResult && validationResult.brokenRules) {\r\n var errorMessages = [];\r\n validationResult.brokenRules.forEach(rule => {\r\n if (rule.message) {\r\n errorMessages.push(rule.message)\r\n }\r\n });\r\n if (errorMessages.length) {\r\n this._showValidationMessage($focus, errorMessages, column.alignment || \"left\");\r\n validationDescriptionValues.push(INVALID_MESSAGE_ID)\r\n }\r\n }\r\n this._updateAriaValidationAttributes($focus, validationDescriptionValues);\r\n !isHideBorder && this._rowsView.element() && this._rowsView.updateFreeSpaceRowHeight()\r\n },\r\n _updateAriaValidationAttributes($focus, inputDescriptionValues) {\r\n if (0 === inputDescriptionValues.length) {\r\n return\r\n }\r\n var editMode = this._editingController.getEditMode();\r\n var shouldSetValidationAriaAttributes = [EDIT_MODE_CELL, EDIT_MODE_BATCH, EDIT_MODE_ROW].includes(editMode);\r\n if (shouldSetValidationAriaAttributes) {\r\n var $focusElement = this._getCurrentFocusElement($focus);\r\n $focusElement.attr(\"aria-labelledby\", inputDescriptionValues.join(\" \"));\r\n $focusElement.attr(\"aria-invalid\", true)\r\n }\r\n },\r\n _getCurrentFocusElement($focus) {\r\n if (this._editingController.isEditing()) {\r\n return $focus.find(EDITORS_INPUT_SELECTOR).first()\r\n }\r\n return $focus\r\n },\r\n focus($element, isHideBorder) {\r\n if (!arguments.length) {\r\n return this.callBase()\r\n }\r\n this._hideValidationMessage();\r\n if ((null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-row\")) || (null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-master-detail-cell\"))) {\r\n return this.callBase($element, isHideBorder)\r\n }\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var validator = $focus && ($focus.data(\"dxValidator\") || $element.find(\".\".concat(this.addWidgetPrefix(VALIDATOR_CLASS))).eq(0).data(\"dxValidator\"));\r\n var rowOptions = $focus && $focus.closest(\".dx-row\").data(\"options\");\r\n var editingController = this.getController(\"editing\");\r\n var change = rowOptions ? editingController.getChangeByKey(rowOptions.key) : null;\r\n var validatingController = this.getController(\"validating\");\r\n var validationResult;\r\n if (validator) {\r\n validatingController.setValidator(validator);\r\n var value = validator.option(\"adapter\").getValue();\r\n if (cellValueShouldBeValidated(value, rowOptions) || validatingController._rowIsValidated(change)) {\r\n editingController.waitForDeferredOperations().done(() => {\r\n when(validatingController.validateCell(validator)).done(result => {\r\n validationResult = result;\r\n var {\r\n column: column\r\n } = validationResult.validator.option(\"dataGetter\")();\r\n if (change && column && !validatingController.isCurrentValidatorProcessing({\r\n rowKey: change.key,\r\n columnIndex: column.index\r\n })) {\r\n return\r\n }\r\n if (!isFluent(current()) && validationResult.status === VALIDATION_STATUS.invalid) {\r\n isHideBorder = true\r\n }\r\n this.updateCellState($element, validationResult, isHideBorder);\r\n callBase.call(this, $element, isHideBorder)\r\n })\r\n });\r\n return this.callBase($element, isHideBorder)\r\n }\r\n }\r\n this.updateCellState($element, validationResult, isHideBorder);\r\n return this.callBase($element, isHideBorder)\r\n },\r\n getEditorInstance($container) {\r\n var $editor = $container.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n },\r\n data: {\r\n _getValidationStatus(validationResult) {\r\n var validationStatus = validationResultIsValid(validationResult) ? validationResult.status : validationResult;\r\n return validationStatus || VALIDATION_STATUS.valid\r\n },\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var _a, _b;\r\n var cell = null === (_a = oldRow.cells) || void 0 === _a ? void 0 : _a[columnIndex];\r\n var oldValidationStatus = this._getValidationStatus({\r\n status: null === cell || void 0 === cell ? void 0 : cell.validationStatus\r\n });\r\n var validatingController = this.getController(\"validating\");\r\n var validationResult = validatingController.getCellValidationResult({\r\n rowKey: oldRow.key,\r\n columnIndex: columnIndex\r\n });\r\n var validationData = validatingController._getValidationData(oldRow.key);\r\n var newValidationStatus = this._getValidationStatus(validationResult);\r\n var rowIsModified = JSON.stringify(newRow.modifiedValues) !== JSON.stringify(oldRow.modifiedValues);\r\n var validationStatusChanged = oldValidationStatus !== newValidationStatus && rowIsModified;\r\n var cellIsMarkedAsInvalid = $(null === cell || void 0 === cell ? void 0 : cell.cellElement).hasClass(this.addWidgetPrefix(INVALIDATE_CLASS));\r\n var hasValidationRules = null === (_b = null === cell || void 0 === cell ? void 0 : cell.column.validationRules) || void 0 === _b ? void 0 : _b.length;\r\n var rowEditStateChanged = oldRow.isEditing !== newRow.isEditing && hasValidationRules;\r\n var cellValidationStateChanged = validationStatusChanged || validationData.isValid && cellIsMarkedAsInvalid;\r\n if (rowEditStateChanged || cellValidationStateChanged) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n updateFreeSpaceRowHeight($table) {\r\n var $rowElements;\r\n var $freeSpaceRowElement;\r\n var $freeSpaceRowElements;\r\n var $element = this.element();\r\n var $tooltipContent = $element && $element.find(\".\".concat(this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS), \" .dx-overlay-content\"));\r\n this.callBase($table);\r\n if ($tooltipContent && $tooltipContent.length) {\r\n $rowElements = this._getRowElements();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n $freeSpaceRowElement = $freeSpaceRowElements.first();\r\n if ($freeSpaceRowElement && 1 === $rowElements.length && (!$freeSpaceRowElement.is(\":visible\") || getOuterHeight($tooltipContent) > getOuterHeight($freeSpaceRowElement))) {\r\n $freeSpaceRowElements.show();\r\n setHeight($freeSpaceRowElements, getOuterHeight($tooltipContent));\r\n return true\r\n }\r\n }\r\n return\r\n },\r\n _formItemPrepared(cellOptions, $container) {\r\n this.callBase.apply(this, arguments);\r\n deferUpdate(() => {\r\n var $editor = $container.find(\".dx-widget\").first();\r\n var isEditorDisposed = $editor.length && !$editor.children().length;\r\n if (!isEditorDisposed) {\r\n this.getController(\"validating\").createValidator(cellOptions, $editor)\r\n }\r\n })\r\n },\r\n _cellPrepared($cell, parameters) {\r\n if (!this.getController(\"editing\").isFormOrPopupEditMode()) {\r\n this.getController(\"validating\").createValidator(parameters, $cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _restoreErrorRow(contentTable) {\r\n var editingController = this.getController(\"editing\");\r\n editingController && editingController.hasChanges() && this._getRowElements(contentTable).each((_, item) => {\r\n var rowOptions = $(item).data(\"options\");\r\n if (rowOptions) {\r\n var change = editingController.getChangeByKey(rowOptions.key);\r\n change && editingController._showErrorRow(change)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/validating.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n validatingModule\r\n} from \"../../../grids/grid_core/validating/m_validating\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"validating\", validatingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar needTwoPagesLoading = that => that.option(\"scrolling.loadTwoPagesOnStart\") || that._controller.isVirtual() || that._controller.getViewportItemIndex() > 0;\r\nvar getBeginPageIndex = that => that._cache.length ? that._cache[0].pageIndex : -1;\r\nvar getEndPageIndex = that => that._cache.length ? that._cache[that._cache.length - 1].pageIndex : -1;\r\nvar fireChanged = (that, changed, args) => {\r\n that._isChangedFiring = true;\r\n changed(args);\r\n that._isChangedFiring = false\r\n};\r\nvar processDelayChanged = (that, changed, args) => {\r\n if (that._isDelayChanged) {\r\n that._isDelayChanged = false;\r\n fireChanged(that, changed, args);\r\n return true\r\n }\r\n};\r\nvar getViewportPageCount = that => {\r\n var pageSize = that._dataOptions.pageSize();\r\n var preventPreload = that.option(\"scrolling.preventPreload\");\r\n if (preventPreload) {\r\n return 0\r\n }\r\n var realViewportSize = that._controller.viewportSize();\r\n if (that._controller.isVirtualMode() && that.option(\"scrolling.removeInvisiblePages\")) {\r\n realViewportSize = 0;\r\n var viewportSize = that._controller.viewportSize() * that._controller.viewportItemSize();\r\n var offset = that._controller.getContentOffset();\r\n var position = that._controller.getViewportPosition();\r\n var virtualItemsCount = that._controller.virtualItemsCount();\r\n var totalItemsCount = that._dataOptions.totalItemsCount();\r\n for (var itemIndex = virtualItemsCount.begin; itemIndex < totalItemsCount; itemIndex++) {\r\n if (offset >= position + viewportSize) {\r\n break\r\n }\r\n var itemSize = that._controller.getItemSizes()[itemIndex] || that._controller.viewportItemSize();\r\n offset += itemSize;\r\n if (offset >= position) {\r\n realViewportSize++\r\n }\r\n }\r\n }\r\n return pageSize && realViewportSize > 0 ? Math.ceil(realViewportSize / pageSize) : 1\r\n};\r\nvar getPreloadPageCount = (that, previous) => {\r\n var preloadEnabled = that.option(\"scrolling.preloadEnabled\");\r\n var pageCount = getViewportPageCount(that);\r\n var isAppendMode = that._controller.isAppendMode();\r\n if (pageCount) {\r\n if (previous) {\r\n pageCount = preloadEnabled ? 1 : 0\r\n } else {\r\n if (preloadEnabled) {\r\n pageCount++\r\n }\r\n if (isAppendMode || !needTwoPagesLoading(that)) {\r\n pageCount--\r\n }\r\n }\r\n }\r\n return pageCount\r\n};\r\nvar getPageIndexForLoad = that => {\r\n var result = -1;\r\n var beginPageIndex = getBeginPageIndex(that);\r\n var dataOptions = that._dataOptions;\r\n if (beginPageIndex < 0) {\r\n result = that._pageIndex\r\n } else if (!that._cache[that._pageIndex - beginPageIndex]) {\r\n result = that._pageIndex\r\n } else if (beginPageIndex >= 0 && that._controller.viewportSize() >= 0) {\r\n if (beginPageIndex > 0) {\r\n var needToLoadPageBeforeLast = getEndPageIndex(that) + 1 === dataOptions.pageCount() && that._cache.length < getPreloadPageCount(that) + 1;\r\n var needToLoadPrevPage = needToLoadPageBeforeLast || that._pageIndex === beginPageIndex && getPreloadPageCount(that, true);\r\n if (needToLoadPrevPage) {\r\n result = beginPageIndex - 1\r\n }\r\n }\r\n if (result < 0) {\r\n var needToLoadNextPage = beginPageIndex + that._cache.length <= that._pageIndex + getPreloadPageCount(that);\r\n if (needToLoadNextPage) {\r\n result = beginPageIndex + that._cache.length\r\n }\r\n }\r\n }\r\n if (that._loadingPageIndexes[result]) {\r\n result = -1\r\n }\r\n return result\r\n};\r\nvar loadCore = (that, pageIndex) => {\r\n var dataOptions = that._dataOptions;\r\n if (pageIndex === that.pageIndex() || !dataOptions.isLoading() && pageIndex < dataOptions.pageCount() || !dataOptions.hasKnownLastPage() && pageIndex === dataOptions.pageCount()) {\r\n dataOptions.pageIndex(pageIndex);\r\n that._loadingPageIndexes[pageIndex] = true;\r\n return when(dataOptions.load()).always(() => {\r\n that._loadingPageIndexes[pageIndex] = false\r\n })\r\n }\r\n};\r\nvar processChanged = (that, changed, changeType, isDelayChanged, removeCacheItem) => {\r\n var dataOptions = that._dataOptions;\r\n var items = dataOptions.items().slice();\r\n var change = isObject(changeType) ? changeType : void 0;\r\n var isPrepend = \"prepend\" === changeType;\r\n var viewportItems = dataOptions.viewportItems();\r\n if (changeType && isString(changeType) && !that._isDelayChanged) {\r\n change = {\r\n changeType: changeType,\r\n items: items\r\n };\r\n if (removeCacheItem) {\r\n change.removeCount = removeCacheItem.itemsCount;\r\n if (change.removeCount && dataOptions.correctCount) {\r\n change.removeCount = dataOptions.correctCount(viewportItems, change.removeCount, isPrepend)\r\n }\r\n }\r\n }\r\n var removeItemCount = removeCacheItem ? removeCacheItem.itemsLength : 0;\r\n if (removeItemCount && dataOptions.correctCount) {\r\n removeItemCount = dataOptions.correctCount(viewportItems, removeItemCount, isPrepend)\r\n }\r\n if (\"append\" === changeType) {\r\n viewportItems.push.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(0, removeItemCount)\r\n }\r\n } else if (isPrepend) {\r\n viewportItems.unshift.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(-removeItemCount)\r\n }\r\n } else {\r\n that._dataOptions.viewportItems(items)\r\n }\r\n dataOptions.updateLoading();\r\n that._lastPageIndex = that.pageIndex();\r\n that._isDelayChanged = isDelayChanged;\r\n if (!isDelayChanged) {\r\n fireChanged(that, changed, change)\r\n }\r\n};\r\nexport class VirtualDataLoader {\r\n constructor(controller, dataOptions) {\r\n this._dataOptions = dataOptions;\r\n this._controller = controller;\r\n this._pageIndex = this._lastPageIndex = dataOptions.pageIndex();\r\n this._cache = [];\r\n this._loadingPageIndexes = {}\r\n }\r\n option() {\r\n return this._controller.option.apply(this._controller, arguments)\r\n }\r\n viewportItemIndexChanged(itemIndex) {\r\n var pageSize = this._dataOptions.pageSize();\r\n var pageCount = this._dataOptions.pageCount();\r\n var virtualMode = this._controller.isVirtualMode();\r\n var appendMode = this._controller.isAppendMode();\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var newPageIndex;\r\n if (pageSize && (virtualMode || appendMode) && totalItemsCount >= 0) {\r\n var viewportSize = this._controller.viewportSize();\r\n if (viewportSize && itemIndex + viewportSize >= totalItemsCount && !this._controller.isVirtual()) {\r\n if (this._dataOptions.hasKnownLastPage()) {\r\n newPageIndex = pageCount - 1;\r\n var lastPageSize = totalItemsCount % pageSize;\r\n if (newPageIndex > 0 && lastPageSize > 0 && lastPageSize < viewportSize) {\r\n newPageIndex--\r\n }\r\n } else {\r\n newPageIndex = pageCount\r\n }\r\n } else {\r\n newPageIndex = Math.floor(itemIndex / pageSize);\r\n var maxPageIndex = pageCount - 1;\r\n newPageIndex = Math.max(newPageIndex, 0);\r\n newPageIndex = Math.min(newPageIndex, maxPageIndex)\r\n }\r\n this.pageIndex(newPageIndex);\r\n return this.load()\r\n }\r\n }\r\n pageIndex(pageIndex) {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n if (void 0 !== pageIndex) {\r\n this._pageIndex = pageIndex\r\n }\r\n return this._pageIndex\r\n }\r\n return this._dataOptions.pageIndex(pageIndex)\r\n }\r\n beginPageIndex(defaultPageIndex) {\r\n var index = getBeginPageIndex(this);\r\n if (index < 0) {\r\n index = void 0 !== defaultPageIndex ? defaultPageIndex : this.pageIndex()\r\n }\r\n return index\r\n }\r\n endPageIndex() {\r\n var endPageIndex = getEndPageIndex(this);\r\n return endPageIndex > 0 ? endPageIndex : this._lastPageIndex\r\n }\r\n pageSize() {\r\n return this._dataOptions.pageSize()\r\n }\r\n load() {\r\n var dataOptions = this._dataOptions;\r\n var result;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var pageIndexForLoad = getPageIndexForLoad(this);\r\n if (pageIndexForLoad >= 0) {\r\n var loadResult = loadCore(this, pageIndexForLoad);\r\n if (loadResult) {\r\n result = new Deferred;\r\n loadResult.done(() => {\r\n var delayDeferred = this._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n dataOptions.updateLoading()\r\n }\r\n }\r\n } else {\r\n result = dataOptions.load()\r\n }\r\n if (!result && this._lastPageIndex !== this.pageIndex()) {\r\n this._dataOptions.onChanged({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n return result || (new Deferred).resolve()\r\n }\r\n loadIfNeed() {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if ((isVirtualMode || isAppendMode) && !this._dataOptions.isLoading() && (!this._isChangedFiring || this._controller.isVirtual())) {\r\n var position = this._controller.getViewportPosition();\r\n if (position > 0) {\r\n this._controller._setViewportPositionCore(position)\r\n } else {\r\n this.load()\r\n }\r\n }\r\n }\r\n handleDataChanged(callBase, e) {\r\n var dataOptions = this._dataOptions;\r\n var lastCacheLength = this._cache.length;\r\n var changeType;\r\n var removeInvisiblePages;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (e && e.changes) {\r\n fireChanged(this, callBase, e)\r\n } else if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex >= 0) {\r\n if (isVirtualMode && beginPageIndex + this._cache.length !== dataOptions.pageIndex() && beginPageIndex - 1 !== dataOptions.pageIndex()) {\r\n lastCacheLength = 0;\r\n this._cache = []\r\n }\r\n if (isAppendMode) {\r\n if (0 === dataOptions.pageIndex()) {\r\n this._cache = []\r\n } else if (dataOptions.pageIndex() < getEndPageIndex(this)) {\r\n fireChanged(this, callBase, {\r\n changeType: \"append\",\r\n items: []\r\n });\r\n return\r\n }\r\n }\r\n }\r\n var cacheItem = {\r\n pageIndex: dataOptions.pageIndex(),\r\n itemsLength: dataOptions.items(true).length,\r\n itemsCount: this.itemsCount(true)\r\n };\r\n if (this.option(\"scrolling.removeInvisiblePages\") && isVirtualMode) {\r\n removeInvisiblePages = this._cache.length > Math.max(getPreloadPageCount(this) + (this.option(\"scrolling.preloadEnabled\") ? 1 : 0), 2)\r\n } else {\r\n processDelayChanged(this, callBase, {\r\n isDelayed: true\r\n })\r\n }\r\n var removeCacheItem;\r\n if (beginPageIndex === dataOptions.pageIndex() + 1) {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.pop()\r\n }\r\n changeType = \"prepend\";\r\n this._cache.unshift(cacheItem)\r\n } else {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.shift()\r\n }\r\n changeType = \"append\";\r\n this._cache.push(cacheItem)\r\n }\r\n var isDelayChanged = isVirtualMode && 0 === lastCacheLength && needTwoPagesLoading(this);\r\n processChanged(this, callBase, this._cache.length > 1 ? changeType : void 0, isDelayChanged, removeCacheItem);\r\n this._delayDeferred = this.load().done(() => {\r\n if (processDelayChanged(this, callBase)) {\r\n this.load()\r\n }\r\n })\r\n } else {\r\n processChanged(this, callBase, e)\r\n }\r\n }\r\n getDelayDeferred() {\r\n return this._delayDeferred\r\n }\r\n itemsCount(isBase) {\r\n var count = 0;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n if (!isBase && isVirtualMode) {\r\n this._cache.forEach(cacheItem => {\r\n count += cacheItem.itemsCount\r\n })\r\n } else {\r\n count = this._dataOptions.itemsCount()\r\n }\r\n return count\r\n }\r\n virtualItemsCount() {\r\n var pageIndex = getBeginPageIndex(this);\r\n if (pageIndex < 0) {\r\n pageIndex = this._dataOptions.pageIndex()\r\n }\r\n var beginItemsCount = pageIndex * this._dataOptions.pageSize();\r\n var itemsCount = this._cache.length * this._dataOptions.pageSize();\r\n var endItemsCount = Math.max(0, this._dataOptions.totalItemsCount() - itemsCount - beginItemsCount);\r\n return {\r\n begin: beginItemsCount,\r\n end: endItemsCount\r\n }\r\n }\r\n reset() {\r\n this._loadingPageIndexes = {};\r\n this._cache = []\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../../animation/position\";\r\nimport Class from \"../../../../core/class\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n VirtualDataLoader\r\n} from \"../virtual_data_loader/m_virtual_data_loader\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar isVirtualMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL || that._isVirtual;\r\nvar isAppendMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && !that._isVirtual;\r\n\r\nfunction subscribeToExternalScrollers($element, scrollChangedHandler, $targetElement) {\r\n var $scrollElement;\r\n var scrollableArray = [];\r\n var scrollToArray = [];\r\n var disposeArray = [];\r\n $targetElement = $targetElement || $element;\r\n\r\n function getElementOffset(scrollable) {\r\n var $scrollableElement = scrollable.element ? scrollable.$element() : scrollable;\r\n var scrollableOffset = positionUtils.offset($scrollableElement);\r\n if (!scrollableOffset) {\r\n return $element.offset().top\r\n }\r\n return scrollable.scrollTop() - (scrollableOffset.top - $element.offset().top)\r\n }\r\n var widgetScrollStrategy = {\r\n on(scrollable, eventName, handler) {\r\n scrollable.on(\"scroll\", handler)\r\n },\r\n off(scrollable, eventName, handler) {\r\n scrollable.off(\"scroll\", handler)\r\n }\r\n };\r\n\r\n function subscribeToScrollEvents($scrollElement) {\r\n var isDocument = \"#document\" === $scrollElement.get(0).nodeName;\r\n var isElement = $scrollElement.get(0).nodeType === getWindow().Node.ELEMENT_NODE;\r\n var scrollable = $scrollElement.data(\"dxScrollable\");\r\n var eventsStrategy = widgetScrollStrategy;\r\n if (!scrollable) {\r\n scrollable = isDocument && $(getWindow()) || isElement && \"auto\" === $scrollElement.css(\"overflowY\") && $scrollElement;\r\n eventsStrategy = eventsEngine;\r\n if (!scrollable) {\r\n return\r\n }\r\n }\r\n var handler = function(scrollable) {\r\n return function() {\r\n var scrollTop = scrollable.scrollTop() - getElementOffset(scrollable);\r\n scrollTop = scrollTop > 0 ? scrollTop : 0;\r\n scrollChangedHandler(scrollTop)\r\n }\r\n }(scrollable);\r\n eventsStrategy.on(scrollable, \"scroll\", handler);\r\n scrollToArray.push(pos => {\r\n var topOffset = getElementOffset(scrollable);\r\n var scrollMethod = scrollable.scrollTo ? \"scrollTo\" : \"scrollTop\";\r\n if (pos - topOffset >= 0) {\r\n scrollable[scrollMethod](pos + topOffset)\r\n }\r\n });\r\n scrollableArray.push(scrollable);\r\n disposeArray.push(() => {\r\n eventsStrategy.off(scrollable, \"scroll\", handler)\r\n })\r\n }\r\n var getScrollElementParent = $element => {\r\n var _a;\r\n return $(null !== (_a = $element.get(0).parentNode) && void 0 !== _a ? _a : $element.get(0).host)\r\n };\r\n for ($scrollElement = $targetElement.parent(); $scrollElement.length; $scrollElement = getScrollElementParent($scrollElement)) {\r\n subscribeToScrollEvents($scrollElement)\r\n }\r\n return {\r\n scrollTo(pos) {\r\n each(scrollToArray, (_, scrollTo) => {\r\n scrollTo(pos)\r\n })\r\n },\r\n dispose() {\r\n each(disposeArray, (_, dispose) => {\r\n dispose()\r\n })\r\n }\r\n }\r\n}\r\nvar VirtualScrollController = Class.inherit(function() {\r\n var members = {\r\n ctor(component, dataOptions, isVirtual) {\r\n this._dataOptions = dataOptions;\r\n this.component = component;\r\n this._viewportSize = false === component.option(LEGACY_SCROLLING_MODE) ? 15 : 0;\r\n this._viewportItemSize = 20;\r\n this._viewportItemIndex = 0;\r\n this._position = 0;\r\n this._isScrollingBack = false;\r\n this._contentSize = 0;\r\n this._itemSizes = {};\r\n this._sizeRatio = 1;\r\n this._isVirtual = isVirtual;\r\n this.positionChanged = Callbacks();\r\n this._dataLoader = new VirtualDataLoader(this, this._dataOptions)\r\n },\r\n getItemSizes() {\r\n return this._itemSizes\r\n },\r\n option() {\r\n return this.component.option.apply(this.component, arguments)\r\n },\r\n isVirtual() {\r\n return this._isVirtual\r\n },\r\n virtualItemsCount() {\r\n if (isVirtualMode(this)) {\r\n var dataOptions = this._dataOptions;\r\n var totalItemsCount = dataOptions.totalItemsCount();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && -1 !== totalItemsCount) {\r\n var viewportParams = this.getViewportParams();\r\n var loadedOffset = dataOptions.loadedOffset();\r\n var loadedItemCount = dataOptions.loadedItemCount();\r\n var skip = Math.max(viewportParams.skip, loadedOffset);\r\n var take = Math.min(viewportParams.take, loadedItemCount);\r\n var endItemsCount = Math.max(totalItemsCount - (skip + take), 0);\r\n return {\r\n begin: skip,\r\n end: endItemsCount\r\n }\r\n }\r\n return this._dataLoader.virtualItemsCount.apply(this._dataLoader, arguments)\r\n }\r\n },\r\n getScrollingTimeout() {\r\n var _a;\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync)) {\r\n scrollingTimeout = Math.min(this.option(\"scrolling.timeout\") || 0, this._dataOptions.changingDuration());\r\n if (scrollingTimeout < this.option(\"scrolling.renderingThreshold\")) {\r\n scrollingTimeout = this.option(\"scrolling.minTimeout\") || 0\r\n }\r\n } else if (renderAsync) {\r\n scrollingTimeout = null !== (_a = this.option(\"scrolling.timeout\")) && void 0 !== _a ? _a : 0\r\n }\r\n return scrollingTimeout\r\n },\r\n setViewportPosition(position) {\r\n var result = new Deferred;\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n clearTimeout(this._scrollTimeoutID);\r\n if (scrollingTimeout > 0) {\r\n this._scrollTimeoutID = setTimeout(() => {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }, scrollingTimeout)\r\n } else {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }\r\n return result.promise()\r\n },\r\n getViewportPosition() {\r\n return this._position\r\n },\r\n getItemIndexByPosition(position, viewportItemIndex, height) {\r\n position = null !== position && void 0 !== position ? position : this._position;\r\n var defaultItemSize = this.getItemSize();\r\n var offset = 0;\r\n var itemOffset = 0;\r\n var itemOffsetsWithSize = Object.keys(this._itemSizes).concat(-1);\r\n for (var i = 0; i < itemOffsetsWithSize.length && offset < position; i++) {\r\n var itemOffsetWithSize = parseInt(itemOffsetsWithSize[i]);\r\n var itemOffsetDiff = (position - offset) / defaultItemSize;\r\n if (itemOffsetWithSize < 0 || itemOffset + itemOffsetDiff < itemOffsetWithSize) {\r\n itemOffset += itemOffsetDiff;\r\n if (this._sizeRatio < 1 && isDefined(viewportItemIndex)) {\r\n itemOffset = viewportItemIndex + height / this._viewportItemSize\r\n }\r\n break\r\n } else {\r\n itemOffsetDiff = itemOffsetWithSize - itemOffset;\r\n offset += itemOffsetDiff * defaultItemSize;\r\n itemOffset += itemOffsetDiff\r\n }\r\n var itemSize = this._itemSizes[itemOffsetWithSize];\r\n offset += itemSize;\r\n itemOffset += offset < position ? 1 : (position - offset + itemSize) / itemSize\r\n }\r\n return Math.round(50 * itemOffset) / 50\r\n },\r\n isScrollingBack() {\r\n return this._isScrollingBack\r\n },\r\n _setViewportPositionCore(position) {\r\n var prevPosition = this._position || 0;\r\n this._position = position;\r\n if (prevPosition !== this._position) {\r\n this._isScrollingBack = this._position < prevPosition\r\n }\r\n var itemIndex = this.getItemIndexByPosition();\r\n var result = this.setViewportItemIndex(itemIndex);\r\n this.positionChanged.fire();\r\n return result\r\n },\r\n setContentItemSizes(sizes) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n this._contentSize = sizes.reduce((a, b) => a + b, 0);\r\n if (virtualItemsCount) {\r\n sizes.forEach((size, index) => {\r\n this._itemSizes[virtualItemsCount.begin + index] = size\r\n });\r\n var virtualContentSize = (virtualItemsCount.begin + virtualItemsCount.end + this.itemsCount()) * this._viewportItemSize;\r\n var contentHeightLimit = gridCoreUtils.getContentHeightLimit(browser);\r\n if (virtualContentSize > contentHeightLimit) {\r\n this._sizeRatio = contentHeightLimit / virtualContentSize\r\n } else {\r\n this._sizeRatio = 1\r\n }\r\n }\r\n },\r\n getItemSize() {\r\n return this._viewportItemSize * this._sizeRatio\r\n },\r\n getItemOffset(itemIndex, isEnd) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n var itemCount = itemIndex;\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n var offset = 0;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n Object.keys(this._itemSizes).forEach(currentItemIndex => {\r\n if (!itemCount) {\r\n return\r\n }\r\n if (isEnd ? currentItemIndex >= totalItemsCount - itemIndex : currentItemIndex < itemIndex) {\r\n offset += this._itemSizes[currentItemIndex];\r\n itemCount--\r\n }\r\n });\r\n return Math.floor(offset + itemCount * this._viewportItemSize * this._sizeRatio)\r\n },\r\n getContentOffset(type) {\r\n var isEnd = \"end\" === type;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n return this.getItemOffset(isEnd ? virtualItemsCount.end : virtualItemsCount.begin, isEnd)\r\n },\r\n getVirtualContentSize() {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n return virtualItemsCount ? this.getContentOffset(\"begin\") + this.getContentOffset(\"end\") + this._contentSize : 0\r\n },\r\n getViewportItemIndex() {\r\n return this._viewportItemIndex\r\n },\r\n setViewportItemIndex(itemIndex) {\r\n this._viewportItemIndex = itemIndex;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n return this._dataLoader.viewportItemIndexChanged.apply(this._dataLoader, arguments)\r\n },\r\n viewportItemSize(size) {\r\n if (void 0 !== size) {\r\n this._viewportItemSize = size\r\n }\r\n return this._viewportItemSize\r\n },\r\n viewportSize(size) {\r\n if (void 0 !== size) {\r\n this._viewportSize = size\r\n }\r\n return this._viewportSize\r\n },\r\n viewportHeight(height, scrollTop) {\r\n var position = null !== scrollTop && void 0 !== scrollTop ? scrollTop : this._position;\r\n var begin = this.getItemIndexByPosition(position);\r\n var end = this.getItemIndexByPosition(position + height, begin, height);\r\n this.viewportSize(Math.ceil(end - begin));\r\n if (!isDefined(scrollTop) && this._viewportItemIndex !== begin) {\r\n this._setViewportPositionCore(position)\r\n }\r\n },\r\n reset(isRefresh) {\r\n this._dataLoader.reset();\r\n if (!isRefresh) {\r\n this._itemSizes = {}\r\n }\r\n },\r\n subscribeToWindowScrollEvents($element) {\r\n this._windowScroll = this._windowScroll || subscribeToExternalScrollers($element, scrollTop => {\r\n if (this.viewportItemSize()) {\r\n this.setViewportPosition(scrollTop)\r\n }\r\n })\r\n },\r\n dispose() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this._windowScroll && this._windowScroll.dispose();\r\n this._windowScroll = null\r\n },\r\n scrollTo(pos) {\r\n this._windowScroll && this._windowScroll.scrollTo(pos)\r\n },\r\n isVirtualMode() {\r\n return isVirtualMode(this)\r\n },\r\n isAppendMode() {\r\n return isAppendMode(this)\r\n },\r\n getViewportParams() {\r\n var _a;\r\n var virtualMode = this.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var hasKnownLastPage = this._dataOptions.hasKnownLastPage();\r\n var topIndex = hasKnownLastPage && this._viewportItemIndex > totalItemsCount ? totalItemsCount : this._viewportItemIndex;\r\n var bottomIndex = this._viewportSize + topIndex;\r\n var maxGap = this.option(\"scrolling.prerenderedRowChunkSize\") || 1;\r\n var isScrollingBack = this.isScrollingBack();\r\n var minGap = null !== (_a = this.option(\"scrolling.prerenderedRowCount\")) && void 0 !== _a ? _a : 1;\r\n var topMinGap = isScrollingBack ? minGap : 0;\r\n var bottomMinGap = isScrollingBack ? 0 : minGap;\r\n var skip = Math.floor(Math.max(0, topIndex - topMinGap) / maxGap) * maxGap;\r\n var take = Math.ceil((bottomIndex + bottomMinGap - skip) / maxGap) * maxGap;\r\n if (virtualMode) {\r\n var remainedItems = Math.max(0, totalItemsCount - skip);\r\n take = Math.min(take, remainedItems)\r\n }\r\n return {\r\n skip: skip,\r\n take: take\r\n }\r\n },\r\n itemsCount() {\r\n var result = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n result = this._dataLoader.itemsCount.apply(this._dataLoader, arguments)\r\n } else {\r\n result = this._dataOptions.itemsCount()\r\n }\r\n return result\r\n }\r\n };\r\n [\"pageIndex\", \"beginPageIndex\", \"endPageIndex\", \"pageSize\", \"load\", \"loadIfNeed\", \"handleDataChanged\", \"getDelayDeferred\"].forEach(name => {\r\n members[name] = function() {\r\n return this._dataLoader[name].apply(this._dataLoader, arguments)\r\n }\r\n });\r\n return members\r\n}());\r\nexport default {\r\n VirtualScrollController: VirtualScrollController\r\n};\r\nexport {\r\n subscribeToExternalScrollers,\r\n VirtualScrollController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport LoadIndicator from \"../../../../ui/load_indicator\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n subscribeToExternalScrollers,\r\n VirtualScrollController\r\n} from \"./m_virtual_scrolling_core\";\r\nvar BOTTOM_LOAD_PANEL_CLASS = \"bottom-load-panel\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar FREESPACE_CLASS = \"dx-freespace-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LOAD_TIMEOUT = 300;\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar VISIBLE_PAGE_INDEX = \"paging.pageIndex\";\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE\r\n};\r\nvar isVirtualPaging = function(that) {\r\n return isVirtualMode(that) || isAppendMode(that)\r\n};\r\nvar correctCount = function(items, count, fromEnd, isItemCountableFunc) {\r\n for (var i = 0; i < count + 1; i++) {\r\n var item = items[fromEnd ? items.length - 1 - i : i];\r\n if (item && !isItemCountableFunc(item, i === count, fromEnd)) {\r\n count++\r\n }\r\n }\r\n return count\r\n};\r\nvar isItemCountableByDataSource = function(item, dataSource) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && dataSource.isGroupItemCountable(item.data)\r\n};\r\nvar updateItemIndices = function(items) {\r\n items.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n return items\r\n};\r\nvar VirtualScrollingDataSourceAdapterExtender = function() {\r\n var updateLoading = function(that) {\r\n var beginPageIndex = that._virtualScrollController.beginPageIndex(-1);\r\n if (isVirtualMode(that)) {\r\n if (beginPageIndex < 0 || that.viewportSize() >= 0 && that.getViewportItemIndex() >= 0 && (beginPageIndex * that.pageSize() > that.getViewportItemIndex() || beginPageIndex * that.pageSize() + that.itemsCount() < that.getViewportItemIndex() + that.viewportSize()) && that._dataSource.isLoading()) {\r\n if (!that._isLoading) {\r\n that._isLoading = true;\r\n that.loadingChanged.fire(true)\r\n }\r\n } else if (that._isLoading) {\r\n that._isLoading = false;\r\n that.loadingChanged.fire(false)\r\n }\r\n }\r\n };\r\n var result = {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._items = [];\r\n this._totalCount = -1;\r\n this._isLoaded = true;\r\n this._loadPageCount = 1;\r\n this._virtualScrollController = new VirtualScrollController(this.component, this._getVirtualScrollDataOptions())\r\n },\r\n _getVirtualScrollDataOptions() {\r\n var that = this;\r\n return {\r\n pageSize: () => that.pageSize(),\r\n totalItemsCount: () => that.totalItemsCount(),\r\n hasKnownLastPage: () => that.hasKnownLastPage(),\r\n pageIndex: index => that._dataSource.pageIndex(index),\r\n isLoading: () => that._dataSource.isLoading() && !that.isCustomLoading(),\r\n pageCount: () => that.pageCount(),\r\n load: () => that._dataSource.load(),\r\n updateLoading() {\r\n updateLoading(that)\r\n },\r\n itemsCount: () => that.itemsCount(true),\r\n items: () => that._dataSource.items(),\r\n viewportItems(items) {\r\n if (items) {\r\n that._items = items\r\n }\r\n return that._items\r\n },\r\n onChanged(e) {\r\n that.changed.fire(e)\r\n },\r\n changingDuration() {\r\n if (that.isLoading()) {\r\n return LOAD_TIMEOUT\r\n }\r\n return that._renderTime || 0\r\n }\r\n }\r\n },\r\n _handleLoadingChanged(isLoading) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n if (!isVirtualMode(this) || this._isLoadingAll) {\r\n this._isLoading = isLoading;\r\n this.callBase.apply(this, arguments)\r\n }\r\n if (isLoading) {\r\n this._startLoadTime = new Date\r\n } else {\r\n this._startLoadTime = void 0\r\n }\r\n },\r\n _handleLoadError() {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._isLoading = false;\r\n this.loadingChanged.fire(false)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataChanged(e) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._items = this._dataSource.items().slice();\r\n this._totalCount = this._dataSourceTotalCount(true);\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n var callBase = this.callBase.bind(this);\r\n this._virtualScrollController.handleDataChanged(callBase, e)\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n if (!isDefined(renderAsync)) {\r\n renderAsync = this._renderTime >= this.option(\"scrolling.renderingThreshold\")\r\n }\r\n if ((isVirtualMode(this) || isAppendMode(this) && newMode) && !operationTypes.reload && (operationTypes.skip || newMode) && !renderAsync) {\r\n options.delay = void 0\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n items() {\r\n return this._items\r\n },\r\n _dataSourceTotalCount(isBase) {\r\n return false === this.option(LEGACY_SCROLLING_MODE) && isVirtualMode(this) && !isBase ? this._totalCount : this.callBase()\r\n },\r\n itemsCount(isBase) {\r\n if (isBase || false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return this.callBase()\r\n }\r\n return this._virtualScrollController.itemsCount()\r\n },\r\n load(loadOptions) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE) || loadOptions) {\r\n return this.callBase(loadOptions)\r\n }\r\n return this._virtualScrollController.load()\r\n },\r\n isLoading() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? this._dataSource.isLoading() : this._isLoading\r\n },\r\n isLoaded() {\r\n return this._dataSource.isLoaded() && this._isLoaded\r\n },\r\n resetPagesCache(isLiveUpdate) {\r\n if (!isLiveUpdate) {\r\n this._virtualScrollController.reset(true)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _changeRowExpandCore() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n this.resetPagesCache();\r\n updateLoading(this);\r\n return result\r\n },\r\n reload() {\r\n this._dataSource.pageIndex(this.pageIndex());\r\n var virtualScrollController = this._virtualScrollController;\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && virtualScrollController) {\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done(r => {\r\n var delayDeferred = virtualScrollController.getDelayDeferred();\r\n if (delayDeferred) {\r\n delayDeferred.done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(r)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n refresh(options, operationTypes) {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this._virtualScrollController.reset();\r\n dataSource.items().length = 0;\r\n this._isLoaded = false;\r\n updateLoading(this);\r\n this._isLoaded = true;\r\n if (isAppendMode(this)) {\r\n this.pageIndex(0);\r\n dataSource.pageIndex(0);\r\n storeLoadOptions.pageIndex = 0;\r\n options.pageIndex = 0;\r\n storeLoadOptions.skip = 0\r\n } else {\r\n dataSource.pageIndex(this.pageIndex());\r\n if (dataSource.paginate()) {\r\n options.pageIndex = this.pageIndex();\r\n storeLoadOptions.skip = this.pageIndex() * this.pageSize()\r\n }\r\n }\r\n } else if (isAppendMode(this) && storeLoadOptions.skip && this._totalCountCorrection < 0) {\r\n storeLoadOptions.skip += this._totalCountCorrection\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose() {\r\n this._virtualScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n },\r\n loadPageCount(count) {\r\n if (!isDefined(count)) {\r\n return this._loadPageCount\r\n }\r\n this._loadPageCount = count\r\n },\r\n _handleDataLoading(options) {\r\n var loadPageCount = this.loadPageCount();\r\n var pageSize = this.pageSize();\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var takeIsDefined = isDefined(storeLoadOptions.take);\r\n options.loadPageCount = loadPageCount;\r\n if (!options.isCustomLoading && newMode && takeIsDefined && loadPageCount > 1 && pageSize > 0) {\r\n storeLoadOptions.take = loadPageCount * pageSize\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _loadPageSize() {\r\n return this.callBase.apply(this, arguments) * this.loadPageCount()\r\n }\r\n };\r\n [\"beginPageIndex\", \"endPageIndex\", \"pageIndex\"].forEach(name => {\r\n result[name] = function() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = this._dataSource;\r\n return dataSource.pageIndex.apply(dataSource, arguments)\r\n }\r\n var virtualScrollController = this._virtualScrollController;\r\n return virtualScrollController[name].apply(virtualScrollController, arguments)\r\n }\r\n });\r\n [\"virtualItemsCount\", \"getContentOffset\", \"getVirtualContentSize\", \"setContentItemSizes\", \"setViewportPosition\", \"getViewportItemIndex\", \"setViewportItemIndex\", \"getItemIndexByPosition\", \"viewportSize\", \"viewportItemSize\", \"getItemSize\", \"getItemSizes\", \"loadIfNeed\"].forEach(name => {\r\n result[name] = function() {\r\n var virtualScrollController = this._virtualScrollController;\r\n return virtualScrollController[name].apply(virtualScrollController, arguments)\r\n }\r\n });\r\n return result\r\n}();\r\nvar VirtualScrollingRowsViewExtender = function() {\r\n var removeEmptyRows = function($emptyRows, className) {\r\n var tBodies = $emptyRows.toArray().map(row => $(row).parent(\".\".concat(className)).get(0)).filter(row => row);\r\n if (tBodies.length) {\r\n $emptyRows = $(tBodies)\r\n }\r\n var rowCount = className === FREESPACE_CLASS ? $emptyRows.length - 1 : $emptyRows.length;\r\n for (var i = 0; i < rowCount; i++) {\r\n $emptyRows.eq(i).remove()\r\n }\r\n };\r\n return {\r\n init() {\r\n var _a;\r\n var dataController = this.getController(\"data\");\r\n this.callBase();\r\n dataController.pageChanged.add(pageIndex => {\r\n var scrollTop = this._scrollTop;\r\n this.scrollToPage(null !== pageIndex && void 0 !== pageIndex ? pageIndex : dataController.pageIndex());\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && this._scrollTop === scrollTop) {\r\n dataController.updateViewport()\r\n }\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n !this._scrollTop && this._scrollToCurrentPageOnResize()\r\n });\r\n null === (_a = dataController.stateLoaded) || void 0 === _a ? void 0 : _a.add(() => {\r\n this._scrollToCurrentPageOnResize()\r\n });\r\n this._scrollToCurrentPageOnResize()\r\n },\r\n _scrollToCurrentPageOnResize() {\r\n var dataController = this.getController(\"data\");\r\n if (dataController.pageIndex() > 0) {\r\n var resizeHandler = () => {\r\n this.resizeCompleted.remove(resizeHandler);\r\n this.scrollToPage(dataController.pageIndex())\r\n };\r\n this.resizeCompleted.add(resizeHandler)\r\n }\r\n },\r\n scrollToPage(pageIndex) {\r\n var dataController = this._dataController;\r\n var pageSize = dataController ? dataController.pageSize() : 0;\r\n var scrollPosition;\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n var itemSize = dataController.getItemSize();\r\n var itemSizes = dataController.getItemSizes();\r\n var itemIndex = pageIndex * pageSize;\r\n scrollPosition = itemIndex * itemSize;\r\n for (var index in itemSizes) {\r\n if (parseInt(index) < itemIndex) {\r\n scrollPosition += itemSizes[index] - itemSize\r\n }\r\n }\r\n } else {\r\n scrollPosition = 0\r\n }\r\n this.scrollTo({\r\n y: scrollPosition,\r\n x: this._scrollLeft\r\n })\r\n },\r\n renderDelayedTemplates() {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateContentPosition(true)\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderCore(e) {\r\n var startRenderTime = new Date;\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataSource = this._dataController._dataSource;\r\n if (dataSource && e) {\r\n var itemCount = e.items ? e.items.length : 20;\r\n var viewportSize = this._dataController.viewportSize() || 20;\r\n if (gridCoreUtils.isVirtualRowRendering(this) && itemCount > 0 && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n dataSource._renderTime = (new Date - startRenderTime) * viewportSize / itemCount\r\n } else {\r\n dataSource._renderTime = new Date - startRenderTime\r\n }\r\n }\r\n return deferred\r\n },\r\n _getRowElements(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\".concat(VIRTUAL_ROW_CLASS))\r\n },\r\n _removeRowsElements(contentTable, removeCount, changeType) {\r\n var rowElements = this._getRowElements(contentTable).toArray();\r\n if (\"append\" === changeType) {\r\n rowElements = rowElements.slice(0, removeCount)\r\n } else {\r\n rowElements = rowElements.slice(-removeCount)\r\n }\r\n var errorHandlingController = this.getController(\"errorHandling\");\r\n rowElements.map(rowElement => {\r\n var $rowElement = $(rowElement);\r\n errorHandlingController && errorHandlingController.removeErrorRow($rowElement.next());\r\n $rowElement.remove()\r\n })\r\n },\r\n _updateContent(tableElement, change) {\r\n var $freeSpaceRowElements;\r\n var contentElement = this._findContentElement();\r\n var changeType = change && change.changeType;\r\n var d = Deferred();\r\n var contentTable = contentElement.children().first();\r\n if (\"append\" === changeType || \"prepend\" === changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n var $tBodies = this._getBodies(tableElement);\r\n if (1 === $tBodies.length) {\r\n this._getBodies(contentTable)[\"append\" === changeType ? \"append\" : \"prepend\"]($tBodies.children())\r\n } else {\r\n $tBodies[\"append\" === changeType ? \"appendTo\" : \"prependTo\"](contentTable)\r\n }\r\n tableElement.remove();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements(contentTable);\r\n removeEmptyRows($freeSpaceRowElements, FREESPACE_CLASS);\r\n if (change.removeCount) {\r\n this._removeRowsElements(contentTable, change.removeCount, changeType)\r\n }\r\n this._restoreErrorRow(contentTable);\r\n d.resolve()\r\n }).fail(d.reject)\r\n } else {\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (\"update\" === changeType) {\r\n this._restoreErrorRow(contentTable)\r\n }\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise().done(() => {\r\n this._updateBottomLoading()\r\n })\r\n },\r\n _addVirtualRow($table, isFixed, location, position) {\r\n if (!position) {\r\n return\r\n }\r\n var $virtualRow = this._createEmptyRow(VIRTUAL_ROW_CLASS, isFixed, position);\r\n $virtualRow = this._wrapRowIfNeed($table, $virtualRow);\r\n this._appendEmptyRow($table, $virtualRow, location)\r\n },\r\n _updateContentItemSizes() {\r\n var rowHeights = this._getRowHeights();\r\n var correctedRowHeights = this._correctRowHeights(rowHeights);\r\n this._dataController.setContentItemSizes(correctedRowHeights)\r\n },\r\n _updateViewportSize(viewportHeight, scrollTop) {\r\n if (!isDefined(viewportHeight)) {\r\n viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow())\r\n }\r\n this._dataController.viewportHeight(viewportHeight, scrollTop)\r\n },\r\n _getRowHeights() {\r\n var _a, _b;\r\n var isPopupEditMode = null === (_b = null === (_a = this.getController(\"editing\")) || void 0 === _a ? void 0 : _a.isPopupEditMode) || void 0 === _b ? void 0 : _b.call(_a);\r\n var rowElements = this._getRowElements(this._tableElement).toArray();\r\n if (isPopupEditMode) {\r\n rowElements = rowElements.filter(row => !$(row).hasClass(ROW_INSERTED))\r\n }\r\n return rowElements.map(row => getBoundingRect(row).height)\r\n },\r\n _correctRowHeights(rowHeights) {\r\n var dataController = this._dataController;\r\n var dataSource = dataController._dataSource;\r\n var correctedRowHeights = [];\r\n var visibleRows = dataController.getVisibleRows();\r\n var itemSize = 0;\r\n var firstCountableItem = true;\r\n var lastLoadIndex = -1;\r\n for (var i = 0; i < rowHeights.length; i++) {\r\n var currentItem = visibleRows[i];\r\n if (!isDefined(currentItem)) {\r\n continue\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n if (lastLoadIndex >= 0 && lastLoadIndex !== currentItem.loadIndex) {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n lastLoadIndex = currentItem.loadIndex\r\n } else if (isItemCountableByDataSource(currentItem, dataSource)) {\r\n if (firstCountableItem) {\r\n firstCountableItem = false\r\n } else {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n }\r\n itemSize += rowHeights[i]\r\n }\r\n itemSize > 0 && correctedRowHeights.push(itemSize);\r\n return correctedRowHeights\r\n },\r\n _updateContentPosition(isRender) {\r\n var dataController = this._dataController;\r\n var rowHeight = this._rowHeight || 20;\r\n dataController.viewportItemSize(rowHeight);\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (!isRender) {\r\n this._updateContentItemSizes()\r\n }\r\n var top = dataController.getContentOffset(\"begin\");\r\n var bottom = dataController.getContentOffset(\"end\");\r\n var $tables = this.getTableElements();\r\n var $virtualRows = $tables.children(\"tbody\").children(\".\".concat(VIRTUAL_ROW_CLASS));\r\n removeEmptyRows($virtualRows, VIRTUAL_ROW_CLASS);\r\n $tables.each((index, element) => {\r\n var isFixed = index > 0;\r\n var prevFixed = this._isFixedTableRendering;\r\n this._isFixedTableRendering = isFixed;\r\n this._addVirtualRow($(element), isFixed, \"top\", top);\r\n this._addVirtualRow($(element), isFixed, \"bottom\", bottom);\r\n this._isFixedTableRendering = prevFixed\r\n })\r\n }\r\n },\r\n _isTableLinesDisplaysCorrect(table) {\r\n var hasColumnLines = table.find(\".\".concat(COLUMN_LINES_CLASS)).length > 0;\r\n return hasColumnLines === this.option(\"showColumnLines\")\r\n },\r\n _isColumnElementsEqual($columns, $virtualColumns) {\r\n var result = $columns.length === $virtualColumns.length;\r\n if (result) {\r\n each($columns, (index, element) => {\r\n if (element.style.width !== $virtualColumns[index].style.width) {\r\n result = false;\r\n return result\r\n }\r\n return\r\n })\r\n }\r\n return result\r\n },\r\n _getCellClasses(column) {\r\n var classes = [];\r\n var {\r\n cssClass: cssClass\r\n } = column;\r\n var isExpandColumn = \"expand\" === column.command;\r\n cssClass && classes.push(cssClass);\r\n isExpandColumn && classes.push(this.addWidgetPrefix(GROUP_SPACE_CLASS));\r\n return classes\r\n },\r\n _findBottomLoadPanel($contentElement) {\r\n var $element = $contentElement || this.element();\r\n var $bottomLoadPanel = $element && $element.find(\".\".concat(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)));\r\n if ($bottomLoadPanel && $bottomLoadPanel.length) {\r\n return $bottomLoadPanel\r\n }\r\n },\r\n _updateBottomLoading() {\r\n var virtualMode = isVirtualMode(this);\r\n var appendMode = isAppendMode(this);\r\n var showBottomLoading = !this._dataController.hasKnownLastPage() && this._dataController.isLoaded() && (virtualMode || appendMode);\r\n var $contentElement = this._findContentElement();\r\n var bottomLoadPanelElement = this._findBottomLoadPanel($contentElement);\r\n if (showBottomLoading) {\r\n if (!bottomLoadPanelElement) {\r\n $(\"<div>\").addClass(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)).append(this._createComponent($(\"<div>\"), LoadIndicator).$element()).appendTo($contentElement)\r\n }\r\n } else if (bottomLoadPanelElement) {\r\n bottomLoadPanelElement.remove()\r\n }\r\n },\r\n _handleScroll(e) {\r\n var legacyScrollingMode = true === this.option(LEGACY_SCROLLING_MODE);\r\n var zeroTopPosition = 0 === e.scrollOffset.top;\r\n var isScrollTopChanged = this._scrollTop !== e.scrollOffset.top;\r\n var hasScrolled = isScrollTopChanged || e.forceUpdateScrollPosition;\r\n var isValidScrollTarget = this._hasHeight || !legacyScrollingMode && zeroTopPosition;\r\n if (hasScrolled && isValidScrollTarget && this._rowHeight) {\r\n this._scrollTop = e.scrollOffset.top;\r\n var isVirtualRowRendering = isVirtualMode(this) || \"standard\" !== this.option(\"scrolling.rowRenderingMode\");\r\n if (isVirtualRowRendering && false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateContentItemSizes();\r\n this._updateViewportSize(null, this._scrollTop)\r\n }\r\n this._dataController.setViewportPosition(e.scrollOffset.top)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _needUpdateRowHeight(itemsCount) {\r\n return this.callBase.apply(this, arguments) || itemsCount > 0 && isAppendMode(this) && !gridCoreUtils.isVirtualRowRendering(this)\r\n },\r\n _updateRowHeight() {\r\n this.callBase.apply(this, arguments);\r\n if (this._rowHeight) {\r\n this._updateContentPosition();\r\n var viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow());\r\n var dataController = this._dataController;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateViewportSize(viewportHeight);\r\n dataController.updateViewport()\r\n } else {\r\n dataController.viewportSize(Math.ceil(viewportHeight / this._rowHeight))\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (result) {\r\n this._updateContentPosition()\r\n }\r\n return result\r\n },\r\n setLoading(isLoading, messageText) {\r\n var dataController = this._dataController;\r\n var hasBottomLoadPanel = dataController.pageIndex() > 0 && dataController.isLoaded() && !!this._findBottomLoadPanel();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isLoading && dataController.isViewportChanging()) {\r\n return\r\n }\r\n if (hasBottomLoadPanel) {\r\n isLoading = false\r\n }\r\n this.callBase.call(this, isLoading, messageText)\r\n },\r\n throwHeightWarningIfNeed() {\r\n if (void 0 === this._hasHeight) {\r\n return\r\n }\r\n var needToThrow = !this._hasHeight && isVirtualPaging(this);\r\n if (needToThrow && !this._heightWarningIsThrown) {\r\n this._heightWarningIsThrown = true;\r\n errors.log(\"W1025\")\r\n }\r\n },\r\n _resizeCore() {\r\n var that = this;\r\n var $element = that.element();\r\n that.callBase();\r\n this.throwHeightWarningIfNeed();\r\n if (that.component.$element() && !that._windowScroll && isElementInDom($element)) {\r\n that._windowScroll = subscribeToExternalScrollers($element, scrollPos => {\r\n if (!that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(scrollPos)\r\n }\r\n }, that.component.$element());\r\n that.on(\"disposing\", () => {\r\n that._windowScroll.dispose()\r\n })\r\n }\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n that.loadIfNeed()\r\n }\r\n },\r\n loadIfNeed() {\r\n var _a;\r\n var dataController = this._dataController;\r\n null === (_a = null === dataController || void 0 === dataController ? void 0 : dataController.loadIfNeed) || void 0 === _a ? void 0 : _a.call(dataController)\r\n },\r\n _restoreErrorRow() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var errorHandling = this.getController(\"errorHandling\");\r\n null === errorHandling || void 0 === errorHandling ? void 0 : errorHandling.removeErrorRow()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n dispose() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this.callBase()\r\n }\r\n }\r\n}();\r\nexport var virtualScrollingModule = {\r\n defaultOptions: () => ({\r\n scrolling: {\r\n timeout: 300,\r\n updateTimeout: 300,\r\n minTimeout: 0,\r\n renderingThreshold: 100,\r\n removeInvisiblePages: true,\r\n rowPageSize: 5,\r\n prerenderedRowChunkSize: 1,\r\n mode: \"standard\",\r\n preloadEnabled: false,\r\n rowRenderingMode: \"standard\",\r\n loadTwoPagesOnStart: false,\r\n legacyMode: false,\r\n prerenderedRowCount: 1\r\n }\r\n }),\r\n extenders: {\r\n dataSourceAdapter: VirtualScrollingDataSourceAdapterExtender,\r\n controllers: {\r\n data: function() {\r\n var members = {\r\n _refreshDataSource() {\r\n var baseResult = this.callBase.apply(this, arguments) || (new Deferred).resolve().promise();\r\n baseResult.done(this.initVirtualRows.bind(this));\r\n return baseResult\r\n },\r\n _loadDataSource() {\r\n var _a;\r\n if (this._rowsScrollController && isVirtualPaging(this)) {\r\n var {\r\n loadPageCount: loadPageCount\r\n } = isDefined(this._loadViewportParams) ? this.getLoadPageParams() : {\r\n loadPageCount: void 0\r\n };\r\n loadPageCount >= 1 && (null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.loadPageCount(loadPageCount))\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getRowPageSize() {\r\n var rowPageSize = this.option(\"scrolling.rowPageSize\");\r\n var pageSize = this.pageSize();\r\n return pageSize && pageSize < rowPageSize ? pageSize : rowPageSize\r\n },\r\n reload() {\r\n var rowsScrollController = this._rowsScrollController || this._dataSource;\r\n var itemIndex = rowsScrollController && rowsScrollController.getItemIndexByPosition();\r\n var result = this.callBase.apply(this, arguments);\r\n return result && result.done(() => {\r\n var _a;\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var rowIndex = Math.floor(itemIndex) - rowIndexOffset;\r\n var {\r\n component: component\r\n } = this;\r\n var scrollable = component.getScrollable && component.getScrollable();\r\n var isSortingOperation = this.dataSource().operationTypes().sorting;\r\n if (scrollable && !isSortingOperation && rowIndex >= 0) {\r\n var rowElement = component.getRowElement(rowIndex);\r\n var $rowElement = rowElement && rowElement[0] && $(rowElement[0]);\r\n var top = $rowElement && $rowElement.position().top;\r\n var isChromeLatest = browser.chrome && Number(null !== (_a = browser.version) && void 0 !== _a ? _a : 0) >= 91;\r\n var allowedTopOffset = browser.mozilla || isChromeLatest ? 1 : 0;\r\n if (top > allowedTopOffset) {\r\n top = Math.round(top + getOuterHeight($rowElement) * (itemIndex % 1));\r\n scrollable.scrollTo({\r\n y: top\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n initVirtualRows() {\r\n var virtualRowsRendering = gridCoreUtils.isVirtualRowRendering(this);\r\n this._allItems = null;\r\n this._loadViewportParams = null;\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && !virtualRowsRendering || !virtualRowsRendering || false !== this.option(LEGACY_SCROLLING_MODE) && !this.option(\"scrolling.rowPageSize\")) {\r\n this._visibleItems = null;\r\n this._rowsScrollController = null;\r\n return\r\n }\r\n var pageIndex = !isVirtualMode(this) && this.pageIndex() >= this.pageCount() ? this.pageCount() - 1 : this.pageIndex();\r\n this._rowPageIndex = Math.ceil(pageIndex * this.pageSize() / this.getRowPageSize());\r\n this._visibleItems = false === this.option(LEGACY_SCROLLING_MODE) ? null : [];\r\n this._viewportChanging = false;\r\n this._needUpdateViewportAfterLoading = false;\r\n if (!this._rowsScrollController) {\r\n this._rowsScrollController = new VirtualScrollController(this.component, this._getRowsScrollDataOptions(), true);\r\n this._rowsScrollController.positionChanged.add(() => {\r\n var _a;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._viewportChanging = true;\r\n this.loadViewport();\r\n this._viewportChanging = false;\r\n return\r\n }\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.setViewportItemIndex(this._rowsScrollController.getViewportItemIndex())\r\n })\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateLoadViewportParams()\r\n }\r\n if (this.isLoaded() && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._rowsScrollController.load()\r\n }\r\n },\r\n isViewportChanging() {\r\n return this._viewportChanging\r\n },\r\n _getRowsScrollDataOptions() {\r\n var that = this;\r\n var isItemCountable = function(item) {\r\n return isItemCountableByDataSource(item, that._dataSource)\r\n };\r\n return {\r\n pageSize: () => that.getRowPageSize(),\r\n loadedOffset() {\r\n var _a;\r\n return isVirtualMode(that) && (null === (_a = that._dataSource) || void 0 === _a ? void 0 : _a.lastLoadOptions().skip) || 0\r\n },\r\n loadedItemCount: () => that._itemCount,\r\n totalItemsCount() {\r\n if (isVirtualPaging(that)) {\r\n return that.totalItemsCount()\r\n }\r\n return false === that.option(LEGACY_SCROLLING_MODE) ? that._itemCount : that._items.filter(isItemCountable).length\r\n },\r\n hasKnownLastPage: () => false === that.option(LEGACY_SCROLLING_MODE) ? that.hasKnownLastPage() : true,\r\n pageIndex(index) {\r\n if (void 0 !== index) {\r\n that._rowPageIndex = index\r\n }\r\n return that._rowPageIndex\r\n },\r\n isLoading: () => that.isLoading(),\r\n pageCount() {\r\n var pageCount = Math.ceil(this.totalItemsCount() / this.pageSize());\r\n return pageCount || 1\r\n },\r\n load() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowPageIndex = this.pageCount() - 1;\r\n that._rowsScrollController.pageIndex(that._rowPageIndex)\r\n }\r\n if (!this.items().length && this.totalItemsCount()) {\r\n return\r\n }\r\n that._rowsScrollController.handleDataChanged(change => {\r\n change = change || {};\r\n change.changeType = change.changeType || \"refresh\";\r\n change.items = change.items || that._visibleItems;\r\n that._visibleItems.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n that._fireChanged(change)\r\n })\r\n },\r\n updateLoading() {},\r\n itemsCount() {\r\n return this.items(true).length\r\n },\r\n correctCount: (items, count, fromEnd) => correctCount(items, count, fromEnd, (item, isNextAfterLast, fromEnd) => {\r\n if (item.isNewRow) {\r\n return isNextAfterLast && !fromEnd\r\n }\r\n if (isNextAfterLast && fromEnd) {\r\n return !item.isNewRow\r\n }\r\n return isItemCountable(item)\r\n }),\r\n items(countableOnly) {\r\n var result = that._items;\r\n if (that.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = that.dataSource();\r\n var virtualItemsCount = null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount();\r\n var begin = virtualItemsCount ? virtualItemsCount.begin : 0;\r\n var rowPageSize = that.getRowPageSize();\r\n var skip = that._rowPageIndex * rowPageSize - begin;\r\n var take = rowPageSize;\r\n if (skip < 0) {\r\n return []\r\n }\r\n if (skip) {\r\n skip = this.correctCount(result, skip);\r\n result = result.slice(skip)\r\n }\r\n if (take) {\r\n take = this.correctCount(result, take);\r\n result = result.slice(0, take)\r\n }\r\n }\r\n return countableOnly ? result.filter(isItemCountable) : result\r\n },\r\n viewportItems(items) {\r\n if (items && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n that._visibleItems = items\r\n }\r\n return that._visibleItems\r\n },\r\n onChanged() {},\r\n changingDuration() {\r\n var dataSource = that.dataSource();\r\n if ((null === dataSource || void 0 === dataSource ? void 0 : dataSource.isLoading()) && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n return LOAD_TIMEOUT\r\n }\r\n return (null === dataSource || void 0 === dataSource ? void 0 : dataSource._renderTime) || 0\r\n }\r\n }\r\n },\r\n _updateItemsCore(change) {\r\n var delta = this.getRowIndexDelta();\r\n this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (\"update\" === change.changeType && 0 === change.rowIndices.length && change.cancelEmptyChanges) {\r\n change.cancel = true\r\n }\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n var visibleItems = this._visibleItems;\r\n var isRefresh = \"refresh\" === change.changeType || change.isLiveUpdate;\r\n if (\"append\" === change.changeType && change.items && !change.items.length) {\r\n return\r\n }\r\n if (isRefresh || \"append\" === change.changeType || \"prepend\" === change.changeType) {\r\n change.cancel = true;\r\n isRefresh && rowsScrollController.reset(true);\r\n rowsScrollController.load()\r\n } else {\r\n if (\"update\" === change.changeType) {\r\n change.rowIndices.forEach((rowIndex, index) => {\r\n var changeType = change.changeTypes[index];\r\n var newItem = change.items[index];\r\n if (\"update\" === changeType) {\r\n visibleItems[rowIndex] = newItem\r\n } else if (\"insert\" === changeType) {\r\n visibleItems.splice(rowIndex, 0, newItem)\r\n } else if (\"remove\" === changeType) {\r\n visibleItems.splice(rowIndex, 1)\r\n }\r\n })\r\n } else {\r\n visibleItems.forEach((item, index) => {\r\n visibleItems[index] = this._items[index + delta] || visibleItems[index]\r\n });\r\n change.items = visibleItems\r\n }\r\n updateItemIndices(visibleItems)\r\n }\r\n }\r\n },\r\n _updateLoadViewportParams() {\r\n var viewportParams = this._rowsScrollController.getViewportParams();\r\n var pageSize = this.pageSize();\r\n if (viewportParams && !isVirtualPaging(this) && pageSize > 0) {\r\n var pageOffset = this.pageIndex() * pageSize;\r\n viewportParams.skip += pageOffset\r\n }\r\n this._loadViewportParams = viewportParams\r\n },\r\n _processItems() {\r\n var _a;\r\n var resultItems = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = this._dataSource;\r\n var currentIndex = null !== (_a = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().skip) && void 0 !== _a ? _a : 0;\r\n var prevCountable;\r\n var prevRowType;\r\n var isPrevRowNew;\r\n var wasCountableItem = false;\r\n var newRows = [];\r\n resultItems.forEach(item => {\r\n var {\r\n rowType: rowType\r\n } = item;\r\n var itemCountable = isItemCountableByDataSource(item, dataSource);\r\n var isNextGroupItem = \"group\" === rowType && (prevCountable || itemCountable || \"group\" !== prevRowType && currentIndex > 0);\r\n var isNextDataItem = \"data\" === rowType && itemCountable && (prevCountable || \"group\" !== prevRowType);\r\n if (!item.isNewRow && isDefined(prevCountable)) {\r\n var isPrevNewRowFirst = isPrevRowNew && !wasCountableItem;\r\n if ((isNextGroupItem || isNextDataItem) && !isPrevNewRowFirst) {\r\n currentIndex++\r\n }\r\n }\r\n if (isNextGroupItem || isNextDataItem) {\r\n wasCountableItem = true\r\n }\r\n if (item.isNewRow) {\r\n newRows.push(item)\r\n } else {\r\n newRows.forEach(it => {\r\n it.loadIndex = currentIndex\r\n });\r\n newRows = []\r\n }\r\n item.loadIndex = currentIndex;\r\n prevCountable = itemCountable;\r\n prevRowType = rowType;\r\n isPrevRowNew = item.isNewRow\r\n });\r\n newRows.forEach(it => {\r\n it.loadIndex = currentIndex\r\n })\r\n }\r\n return resultItems\r\n },\r\n _afterProcessItems(items) {\r\n this._itemCount = items.filter(item => isItemCountableByDataSource(item, this._dataSource)).length;\r\n if (isDefined(this._loadViewportParams)) {\r\n this._updateLoadViewportParams();\r\n var result = items;\r\n this._allItems = items;\r\n if (items.length) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage\r\n } = this.getLoadPageParams(true);\r\n var skip = items[0].loadIndex + skipForCurrentPage;\r\n var {\r\n take: take\r\n } = this._loadViewportParams;\r\n result = items.filter(it => {\r\n var isNewRowInEmptyData = it.isNewRow && it.loadIndex === skip && 0 === take;\r\n var isLoadIndexGreaterStart = it.loadIndex >= skip;\r\n var isLoadIndexLessEnd = it.loadIndex < skip + take || isNewRowInEmptyData;\r\n return isLoadIndexGreaterStart && isLoadIndexLessEnd\r\n })\r\n }\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _applyChange(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var {\r\n removeCount: removeCount\r\n } = change;\r\n if (removeCount) {\r\n var fromEnd = \"prepend\" === changeType;\r\n removeCount = correctCount(that._items, removeCount, fromEnd, (item, isNextAfterLast) => \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && (that._dataSource.isGroupItemCountable(item.data) || isNextAfterLast));\r\n change.removeCount = removeCount\r\n }\r\n switch (changeType) {\r\n case \"prepend\":\r\n that._items.unshift.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(-removeCount)\r\n }\r\n break;\r\n case \"append\":\r\n that._items.push.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(0, removeCount)\r\n }\r\n break;\r\n default:\r\n that.callBase(change)\r\n }\r\n },\r\n items(allItems) {\r\n return allItems ? this._allItems || this._items : this._visibleItems || this._items\r\n },\r\n getRowIndexDelta() {\r\n var delta = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n var visibleItems = this._visibleItems;\r\n if (visibleItems && visibleItems[0]) {\r\n delta = this._items.indexOf(visibleItems[0])\r\n }\r\n }\r\n return delta < 0 ? 0 : delta\r\n },\r\n getRowIndexOffset(byLoadedRows, needGroupOffset) {\r\n var _a, _b;\r\n var offset = 0;\r\n var dataSource = this.dataSource();\r\n var rowsScrollController = this._rowsScrollController;\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var virtualPaging = isVirtualPaging(this);\r\n if (rowsScrollController && !byLoadedRows) {\r\n if (newMode && isDefined(this._loadViewportParams)) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage,\r\n pageIndex: pageIndex\r\n } = this.getLoadPageParams(true);\r\n var items = this.items(true);\r\n offset = virtualPaging ? pageIndex * this.pageSize() : 0;\r\n if (items.length) {\r\n var firstLoadIndex = items[0].loadIndex;\r\n offset += items.filter(item => item.loadIndex < firstLoadIndex + skipForCurrentPage).length\r\n }\r\n } else {\r\n offset = rowsScrollController.beginPageIndex() * rowsScrollController.pageSize()\r\n }\r\n } else if (virtualPaging && newMode && dataSource) {\r\n var lastLoadOptions = dataSource.lastLoadOptions();\r\n if (needGroupOffset && (null === (_a = lastLoadOptions.skips) || void 0 === _a ? void 0 : _a.length)) {\r\n offset = lastLoadOptions.skips.reduce((res, skip) => res + skip, 0)\r\n } else {\r\n offset = null !== (_b = lastLoadOptions.skip) && void 0 !== _b ? _b : 0\r\n }\r\n } else if (isVirtualMode(this) && dataSource) {\r\n offset = dataSource.beginPageIndex() * dataSource.pageSize()\r\n }\r\n return offset\r\n },\r\n getDataIndex() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return this.getRowIndexOffset(true, true)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n viewportSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportSize.apply(dataSource, arguments)\r\n },\r\n viewportHeight(height, scrollTop) {\r\n var _a;\r\n null === (_a = this._rowsScrollController) || void 0 === _a ? void 0 : _a.viewportHeight(height, scrollTop)\r\n },\r\n viewportItemSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportItemSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportItemSize.apply(dataSource, arguments)\r\n },\r\n setViewportPosition() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n this._isPaging = false;\r\n if (rowsScrollController) {\r\n rowsScrollController.setViewportPosition.apply(rowsScrollController, arguments)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.setViewportPosition.apply(dataSource, arguments)\r\n }\r\n },\r\n setContentItemSizes(sizes) {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.setContentItemSizes(sizes);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.setContentItemSizes(sizes)\r\n },\r\n getPreloadedRowCount() {\r\n var preloadCount = this.option(\"scrolling.preloadedRowCount\");\r\n var preloadEnabled = this.option(\"scrolling.preloadEnabled\");\r\n if (isDefined(preloadCount)) {\r\n return preloadCount\r\n }\r\n var viewportSize = this.viewportSize();\r\n return preloadEnabled ? 2 * viewportSize : viewportSize\r\n },\r\n getLoadPageParams(byLoadedPage) {\r\n var _a, _b;\r\n var pageSize = this.pageSize();\r\n var viewportParams = this._loadViewportParams;\r\n var lastLoadOptions = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.lastLoadOptions();\r\n var loadedPageIndex = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.pageIndex) || 0;\r\n var loadedTake = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.take) || 0;\r\n var isScrollingBack = this._rowsScrollController.isScrollingBack();\r\n var topPreloadCount = isScrollingBack ? this.getPreloadedRowCount() : 0;\r\n var bottomPreloadCount = isScrollingBack ? 0 : this.getPreloadedRowCount();\r\n var totalCountCorrection = (null === (_b = this._dataSource) || void 0 === _b ? void 0 : _b.totalCountCorrection()) || 0;\r\n var skipWithPreload = Math.max(0, viewportParams.skip - topPreloadCount);\r\n var pageIndex = byLoadedPage ? loadedPageIndex : Math.floor(pageSize ? skipWithPreload / pageSize : 0);\r\n var pageOffset = pageIndex * pageSize;\r\n var skipForCurrentPage = viewportParams.skip - pageOffset;\r\n var loadingTake = viewportParams.take + skipForCurrentPage + bottomPreloadCount - totalCountCorrection;\r\n var take = byLoadedPage ? loadedTake : loadingTake;\r\n var loadPageCount = Math.ceil(pageSize ? take / pageSize : 0);\r\n return {\r\n pageIndex: pageIndex,\r\n loadPageCount: Math.max(1, loadPageCount),\r\n skipForCurrentPage: Math.max(0, skipForCurrentPage)\r\n }\r\n },\r\n _updateVisiblePageIndex(currentPageIndex) {\r\n if (!this._rowsScrollController) {\r\n return\r\n }\r\n if (isDefined(currentPageIndex)) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, currentPageIndex);\r\n this.pageChanged.fire();\r\n return\r\n }\r\n var viewPortItemIndex = this._rowsScrollController.getViewportItemIndex();\r\n var newPageIndex = Math.floor(viewPortItemIndex / this.pageSize());\r\n if (this.pageIndex() !== newPageIndex) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, newPageIndex);\r\n this.updateItems({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n },\r\n _getChangedLoadParams() {\r\n var loadedPageParams = this.getLoadPageParams(true);\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams();\r\n var pageIndexIsValid = this._pageIndexIsValid(pageIndex);\r\n var result = null;\r\n if (!this._isLoading && pageIndexIsValid && (pageIndex !== loadedPageParams.pageIndex || loadPageCount !== loadedPageParams.loadPageCount)) {\r\n result = {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n }\r\n }\r\n return result\r\n },\r\n _pageIndexIsValid(pageIndex) {\r\n var result = true;\r\n if (isAppendMode(this) && this.hasKnownLastPage() || isVirtualMode(this)) {\r\n result = pageIndex * this.pageSize() < this.totalItemsCount()\r\n }\r\n return result\r\n },\r\n _loadItems(checkLoading, viewportIsFilled) {\r\n var _a, _b;\r\n var virtualPaging = isVirtualPaging(this);\r\n var dataSourceAdapter = this._dataSource;\r\n var changedParams = this._getChangedLoadParams();\r\n var currentLoadPageCount = null !== (_a = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.loadPageCount()) && void 0 !== _a ? _a : 0;\r\n var lastRequiredItemCount = this.pageSize() * currentLoadPageCount;\r\n var currentPageIndex = null !== (_b = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.pageIndex()) && void 0 !== _b ? _b : 0;\r\n var pageIndexNotChanged = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) === currentPageIndex;\r\n var allLoadedInAppendMode = isAppendMode(this) && this.totalItemsCount() < lastRequiredItemCount;\r\n var isRepaintMode = \"repaint\" === this.option(\"editing.refreshMode\");\r\n var pageIndexIncreased = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) > currentPageIndex;\r\n var result = false;\r\n if (!dataSourceAdapter || virtualPaging && checkLoading && (isRepaintMode && viewportIsFilled || pageIndexIncreased || pageIndexNotChanged && allLoadedInAppendMode)) {\r\n return result\r\n }\r\n if (virtualPaging && this._isLoading) {\r\n this._needUpdateViewportAfterLoading = true\r\n }\r\n if (virtualPaging && changedParams) {\r\n result = true;\r\n dataSourceAdapter.pageIndex(changedParams.pageIndex);\r\n dataSourceAdapter.loadPageCount(changedParams.loadPageCount);\r\n this._repaintChangesOnly = true;\r\n this._needUpdateDimensions = true;\r\n var viewportChanging = this._viewportChanging;\r\n this.load().always(() => {\r\n this._repaintChangesOnly = void 0;\r\n this._needUpdateDimensions = void 0\r\n }).done(() => {\r\n var isLastPage = this.pageCount() > 0 && this.pageIndex() === this.pageCount() - 1;\r\n (viewportChanging || isLastPage) && this._updateVisiblePageIndex();\r\n if (this._needUpdateViewportAfterLoading) {\r\n this._needUpdateViewportAfterLoading = false;\r\n this.loadViewport({\r\n checkLoadedParamsOnly: true\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n loadViewport(params) {\r\n var _a, _b, _c;\r\n var {\r\n checkLoadedParamsOnly: checkLoadedParamsOnly,\r\n checkLoading: checkLoading,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n } = null !== params && void 0 !== params ? params : {};\r\n var virtualPaging = isVirtualPaging(this);\r\n if (virtualPaging || gridCoreUtils.isVirtualRowRendering(this)) {\r\n this._updateLoadViewportParams();\r\n var loadingItemsStarted = this._loadItems(checkLoading, !viewportIsNotFilled);\r\n var isCustomLoading = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isCustomLoading();\r\n var isLoading = checkLoading && !isCustomLoading && this._isLoading;\r\n var needToUpdateItems = !(loadingItemsStarted || isLoading || checkLoadedParamsOnly);\r\n if (needToUpdateItems) {\r\n var noPendingChangesInEditing = !(null === (_c = null === (_b = this.getController(\"editing\")) || void 0 === _b ? void 0 : _b.getChanges()) || void 0 === _c ? void 0 : _c.length);\r\n this.updateItems({\r\n repaintChangesOnly: true,\r\n needUpdateDimensions: true,\r\n useProcessedItemsCache: noPendingChangesInEditing,\r\n cancelEmptyChanges: true\r\n })\r\n }\r\n }\r\n },\r\n updateViewport() {\r\n var _a, _b;\r\n var viewportSize = this.viewportSize();\r\n var itemCount = this.items().length;\r\n var viewportIsNotFilled = viewportSize > itemCount;\r\n var currentTake = null !== (_b = null === (_a = this._loadViewportParams) || void 0 === _a ? void 0 : _a.take) && void 0 !== _b ? _b : 0;\r\n var rowsScrollController = this._rowsScrollController;\r\n var newTake = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.getViewportParams().take;\r\n (viewportIsNotFilled || currentTake < newTake) && !this._isPaging && itemCount && this.loadViewport({\r\n checkLoading: true,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n })\r\n },\r\n loadIfNeed() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.loadIfNeed();\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.loadIfNeed()\r\n },\r\n getItemSize() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSize.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSize.apply(dataSource, arguments)\r\n },\r\n getItemSizes() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSizes.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSizes.apply(dataSource, arguments)\r\n },\r\n getContentOffset() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getContentOffset.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getContentOffset.apply(dataSource, arguments)\r\n },\r\n refresh(options) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && options && options.load && isAppendMode(this)) {\r\n dataSource.resetCurrentTotalCount()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n },\r\n topItemIndex() {\r\n var _a;\r\n return null === (_a = this._loadViewportParams) || void 0 === _a ? void 0 : _a.skip\r\n },\r\n bottomItemIndex() {\r\n var viewportParams = this._loadViewportParams;\r\n return viewportParams && viewportParams.skip + viewportParams.take\r\n },\r\n virtualItemsCount() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.virtualItemsCount.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount.apply(dataSource, arguments)\r\n },\r\n pageIndex(pageIndex) {\r\n var _a;\r\n var virtualPaging = isVirtualPaging(this);\r\n var rowsScrollController = this._rowsScrollController;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && virtualPaging && rowsScrollController) {\r\n if (void 0 === pageIndex) {\r\n return null !== (_a = this.option(VISIBLE_PAGE_INDEX)) && void 0 !== _a ? _a : 0\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged(e) {\r\n this.callBase.apply(this, arguments);\r\n var {\r\n operationTypes: operationTypes\r\n } = e;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this) && operationTypes) {\r\n var {\r\n fullReload: fullReload,\r\n pageIndex: pageIndex\r\n } = operationTypes;\r\n if (e.isDataChanged && !fullReload && pageIndex) {\r\n this._updateVisiblePageIndex(this._dataSource.pageIndex())\r\n }\r\n }\r\n },\r\n _getPagingOptionValue(optionName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n result = this[optionName]()\r\n }\r\n return result\r\n },\r\n isEmpty() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? !this.items(true).length : this.callBase(this, arguments)\r\n },\r\n isLastPageLoaded() {\r\n var result = false;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams(true);\r\n var pageCount = this.pageCount();\r\n result = pageIndex + loadPageCount >= pageCount\r\n } else {\r\n result = this.callBase.apply(this, arguments)\r\n }\r\n return result\r\n },\r\n reset() {\r\n this._itemCount = 0;\r\n this._allItems = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyFilter() {\r\n var _a;\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.loadPageCount(1);\r\n return this.callBase.apply(this, arguments)\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"getVirtualContentSize\");\r\n gridCoreUtils.proxyMethod(members, \"setViewportItemIndex\");\r\n return members\r\n }(),\r\n resizing: {\r\n _updateMasterDataGridCore(masterDataGrid) {\r\n return when(this.callBase.apply(this, arguments)).done(masterDataGridUpdated => {\r\n var isNewVirtualMode = isVirtualMode(masterDataGrid) && false === masterDataGrid.option(LEGACY_SCROLLING_MODE);\r\n if (!masterDataGridUpdated && isNewVirtualMode) {\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n masterDataGrid.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n hasResizeTimeout() {\r\n return !!this._resizeTimeout\r\n },\r\n resize() {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var result;\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n clearTimeout(this._resizeTimeout);\r\n this._resizeTimeout = null;\r\n var diff = new Date - this._lastTime;\r\n var updateTimeout = this.option(\"scrolling.updateTimeout\");\r\n if (this._lastTime && diff < updateTimeout) {\r\n result = new Deferred;\r\n this._resizeTimeout = setTimeout(() => {\r\n this._resizeTimeout = null;\r\n callBase.apply(this).done(result.resolve).fail(result.reject);\r\n this._lastTime = new Date\r\n }, updateTimeout);\r\n this._lastTime = new Date\r\n } else {\r\n result = callBase.apply(this);\r\n if (this._dataController.isLoaded()) {\r\n this._lastTime = new Date\r\n }\r\n }\r\n } else {\r\n result = callBase.apply(this)\r\n }\r\n return result\r\n },\r\n dispose() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._resizeTimeout)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n virtualScrollingModule\r\n} from \"../../../grids/grid_core/virtual_scrolling/m_virtual_scrolling\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapter from \"../m_data_source_adapter\";\r\ngridCore.registerModule(\"virtualScrolling\", virtualScrollingModule);\r\ndataSourceAdapter.extend(virtualScrollingModule.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (esm/ui/overlay/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getInnerHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nexport var getElementMaxHeightByWindow = ($element, startLocation) => {\r\n var $window = $(getWindow());\r\n var {\r\n top: elementOffset\r\n } = $element.offset();\r\n var actualOffset;\r\n if (isNumeric(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = getInnerHeight($window) - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = getInnerHeight($window) - offsetTop - getOuterHeight($element);\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.submenu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n setWidth,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nclass Submenu extends ContextMenu {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: noop\r\n })\r\n }\r\n _initDataAdapter() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n super._initDataAdapter()\r\n }\r\n }\r\n _renderContentImpl() {\r\n this._renderContextMenuOverlay();\r\n super._renderContentImpl();\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n }\r\n _renderDelimiter() {\r\n this.$contentDelimiter = $(\"<div>\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n }\r\n _getOverlayOptions() {\r\n return extend(true, super._getOverlayOptions(), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this),\r\n position: {\r\n precise: true\r\n }\r\n })\r\n }\r\n _overlayPositionedActionHandler(arg) {\r\n this._showDelimiter(arg)\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _hoverStartHandler(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n super._hoverStartHandler(e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n }\r\n _drawSubmenu($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._drawSubmenu($rootItem);\r\n this._actions.onShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _hideSubmenu($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._hideSubmenu($rootItem);\r\n this._actions.onHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _showDelimiter(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of.find(\".dx-context-menu-container-border\");\r\n var position = {\r\n of: $submenu,\r\n precise: true\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = getWidth($rootItem);\r\n var rootHeight = getHeight($rootItem);\r\n var submenuWidth = getWidth($submenu);\r\n var submenuHeight = getHeight($submenu);\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n setWidth(this.$contentDelimiter, this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth : submenuWidth : 3);\r\n setHeight(this.$contentDelimiter, this._isMenuHorizontal() ? 3 : rootHeight < submenuHeight ? rootHeight : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"0 -2.5\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"0 -2.5\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n setHeight(this.$contentDelimiter, 5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"0 5\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"0 5\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-2.5 0\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-2.5 0\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"2.5 0\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"2.5 0\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n animationPosition.setup(this.$contentDelimiter, position)\r\n }\r\n _getContextMenuPosition() {\r\n return this.option(\"position\")\r\n }\r\n isOverlayVisible() {\r\n return this._overlay.option(\"visible\")\r\n }\r\n getOverlayContent() {\r\n return this._overlay.$content()\r\n }\r\n}\r\nexport default Submenu;\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport MenuBase from \"../context_menu/ui.menu_base\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Submenu from \"./ui.submenu\";\r\nimport Button from \"../button\";\r\nimport TreeView from \"../tree_view\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nclass Menu extends MenuBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _itemElements() {\r\n var rootMenuElements = super._itemElements();\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n }\r\n _submenuItemElements() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n }\r\n _getItemsNavigationOperation(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n }\r\n _getKeyboardNavigationAction(operation, argument) {\r\n var action = noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n }\r\n _clean() {\r\n super._clean();\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n }\r\n _isAdaptivityEnabled() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _updateItemsWidthCache() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsSize(\"width\", $menuItems, true)\r\n }\r\n _dimensionChanged() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = getOuterWidth(this.$element());\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n }\r\n _init() {\r\n super._init();\r\n this._submenus = []\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action)\r\n })\r\n }\r\n _initMarkup() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n super._initMarkup();\r\n this._addCustomCssClass(this.$element());\r\n this.setAria(\"role\", \"menubar\")\r\n }\r\n _render() {\r\n super._render();\r\n this._initAdaptivity()\r\n }\r\n _renderHamburgerButton() {\r\n this._hamburger = new Button($(\"<div>\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n }\r\n _toggleTreeView(state) {\r\n if (isPlainObject(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n if (state) {\r\n this._treeView.focus()\r\n }\r\n this._toggleHamburgerActiveState(state)\r\n }\r\n _toggleHamburgerActiveState(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n }\r\n _toggleAdaptiveMode(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n }\r\n _removeAdaptivity() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n }\r\n _treeviewItemClickHandler(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n }\r\n _getAdaptiveOverlayOptions() {\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(this.$element()),\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n hideOnParentScroll: true,\r\n onHidden: () => {\r\n this._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n hideOnOutsideClick: e => !$(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length,\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n }\r\n _getTreeViewOptions() {\r\n var menuOptions = {};\r\n each([\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"], (_, option) => {\r\n menuOptions[option] = this.option(option)\r\n });\r\n each([\"onItemContextMenu\", \"onSelectionChanged\", \"onItemRendered\"], (_, actionName) => {\r\n menuOptions[actionName] = e => {\r\n this._actions[actionName](e)\r\n }\r\n });\r\n return extend(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n }\r\n _initAdaptivity() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = $(\"<div>\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent($(\"<div>\"), TreeView, this._getTreeViewOptions());\r\n this._overlay = this._createComponent($(\"<div>\"), Overlay, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n }\r\n _getDelay(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return isObject(delay) ? delay[delayType] : delay\r\n }\r\n }\r\n _keyboardHandler(e) {\r\n return super._keyboardHandler(e, !!this._visibleSubmenu)\r\n }\r\n _renderContainer() {\r\n var $wrapper = $(\"<div>\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return super._renderContainer($wrapper)\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat(this._visibleSubmenu)\r\n }\r\n _createSubmenu(node, $rootItem) {\r\n var $submenuContainer = $(\"<div>\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var subMenu = this._createComponent($submenuContainer, Submenu, extend(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, subMenu);\r\n return subMenu\r\n }\r\n _getSubmenuOptions() {\r\n var $submenuTarget = $(\"<div>\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: e => {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n this.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n }\r\n _getShowFirstSubmenuMode() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n }\r\n _moveMainMenuFocus(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n }\r\n _nestedItemOnSelectionChangedHandler(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = Submenu.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n }\r\n _clearSelectionInSubmenus(item, targetSubmenu) {\r\n var cleanAllSubmenus = !arguments.length;\r\n each(this._submenus, (index, submenu) => {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(this._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(this._selectedItemClass());\r\n var selectedItemData = this._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n }\r\n _clearRootSelection() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n }\r\n _nestedItemOnItemClickHandler(e) {\r\n this._actions.onItemClick(e)\r\n }\r\n _nestedItemOnItemRenderedHandler(e) {\r\n this._actions.onItemRendered(e)\r\n }\r\n _attachSubmenuHandlers($rootItem, submenu) {\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = addNamespace(hoverEventEnd, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n each(submenus, (index, submenu) => {\r\n eventsEngine.off(submenu, submenuMouseLeaveName);\r\n eventsEngine.on(submenu, submenuMouseLeaveName, null, this._submenuMouseLeaveHandler.bind(this, $rootItem))\r\n })\r\n }\r\n _submenuOnShowingHandler($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _submenuOnShownHandler($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuOnHidingHandler($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = getPublicElement($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n }\r\n _submenuOnHiddenHandler($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuMouseLeaveHandler($rootItem, eventArgs) {\r\n var target = $(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideSubmenuAfterTimeout() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = $(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n }\r\n _getSubmenuByRootElement($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && Submenu.getInstance($submenu)\r\n }\r\n getSubmenuPosition($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem,\r\n precise: true\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n }\r\n _renderBorderElement($item) {\r\n $(\"<div>\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n }\r\n _itemPointerDownHandler(e) {\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n super._itemPointerDownHandler(e)\r\n }\r\n _hoverStartHandler(e) {\r\n var mouseMoveEventName = addNamespace(pointerEvents.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = isDefined(e.buttons) && 1 === e.buttons || !isDefined(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n eventsEngine.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n eventsEngine.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n }\r\n _hoverEndHandler(eventArg) {\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = $(eventArg.relatedTarget);\r\n super._hoverEndHandler(eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(() => {\r\n this._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideVisibleSubmenu() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n }\r\n _showSubmenu($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n this.focus();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n }\r\n _hideSubmenu(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n }\r\n _itemMouseMoveHandler(e) {\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = $(e.currentTarget);\r\n if (!isDefined(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(() => {\r\n var submenu = this._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n this._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n }\r\n _clearTimeouts() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n }\r\n _getSubmenuByElement($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = $(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled() && (args.name === args.fullName || \"items\" === args.name)) {\r\n this._treeView.option(args.fullName, args.value)\r\n }\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeSubmenusOption(name, value) {\r\n each(this._submenus, (index, submenu) => {\r\n submenu.option(name, value)\r\n })\r\n }\r\n selectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n unselectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n}\r\nregisterComponent(\"dxMenu\", Menu);\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Menu from \"./menu/ui.menu\";\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Editor from \"../../../../ui/editor/editor\";\r\nimport Menu from \"../../../../ui/menu\";\r\nimport Overlay from \"../../../../ui/overlay/ui.overlay\";\r\nimport {\r\n selectView\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar OPERATION_ICONS = {\r\n \"=\": \"filter-operation-equals\",\r\n \"<>\": \"filter-operation-not-equals\",\r\n \"<\": \"filter-operation-less\",\r\n \"<=\": \"filter-operation-less-equal\",\r\n \">\": \"filter-operation-greater\",\r\n \">=\": \"filter-operation-greater-equal\",\r\n default: \"filter-operation-default\",\r\n notcontains: \"filter-operation-not-contains\",\r\n contains: \"filter-operation-contains\",\r\n startswith: \"filter-operation-starts-with\",\r\n endswith: \"filter-operation-ends-with\",\r\n between: \"filter-operation-between\"\r\n};\r\nvar OPERATION_DESCRIPTORS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n between: \"between\"\r\n};\r\nvar FILTERING_TIMEOUT = 700;\r\nvar CORRECT_FILTER_RANGE_OVERLAY_WIDTH = 1;\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar FILTER_RANGE_OVERLAY_CLASS = \"filter-range-overlay\";\r\nvar FILTER_RANGE_START_CLASS = \"filter-range-start\";\r\nvar FILTER_RANGE_END_CLASS = \"filter-range-end\";\r\nvar MENU_CLASS = \"dx-menu\";\r\nvar EDITOR_WITH_MENU_CLASS = \"dx-editor-with-menu\";\r\nvar EDITOR_CONTAINER_CLASS = \"dx-editor-container\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar FILTER_MENU = \"dx-filter-menu\";\r\nvar APPLY_BUTTON_CLASS = \"dx-apply-button\";\r\nvar HIGHLIGHT_OUTLINE_CLASS = \"dx-highlight-outline\";\r\nvar FOCUSED_CLASS = \"dx-focused\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FILTER_RANGE_CONTENT_CLASS = \"dx-filter-range-content\";\r\nvar FILTER_MODIFIED_CLASS = \"dx-filter-modified\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar BETWEEN_OPERATION_DATA_TYPES = [\"date\", \"datetime\", \"number\"];\r\nvar ARIA_SEARCH_BOX = messageLocalization.format(\"dxDataGrid-ariaSearchBox\");\r\n\r\nfunction isOnClickApplyFilterMode(that) {\r\n return \"onClick\" === that.option(\"filterRow.applyFilter\")\r\n}\r\nvar getEditorInstance = function($editorContainer) {\r\n var $editor = $editorContainer && $editorContainer.children();\r\n var componentNames = $editor && $editor.data(\"dxComponents\");\r\n var editor = componentNames && componentNames.length && $editor.data(componentNames[0]);\r\n if (editor instanceof Editor) {\r\n return editor\r\n }\r\n return null\r\n};\r\nvar ColumnHeadersViewFilterRowExtender = function() {\r\n var getRangeTextByFilterValue = function(that, column) {\r\n var result = \"\";\r\n var rangeEnd = \"\";\r\n var filterValue = getColumnFilterValue(that, column);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"filterRow\");\r\n if (Array.isArray(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue[0], formatOptions);\r\n rangeEnd = gridCoreUtils.formatValue(filterValue[1], formatOptions);\r\n if (\"\" !== rangeEnd) {\r\n result += \" - \".concat(rangeEnd)\r\n }\r\n } else if (isDefined(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue, formatOptions)\r\n }\r\n return result\r\n };\r\n\r\n function getColumnFilterValue(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedFilterValue ? column.bufferedFilterValue : column.filterValue\r\n }\r\n }\r\n var getColumnSelectedFilterOperation = function(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedSelectedFilterOperation ? column.bufferedSelectedFilterOperation : column.selectedFilterOperation\r\n }\r\n };\r\n var getFilterValue = function(that, columnIndex, $editorContainer) {\r\n var column = that._columnsController.columnOption(columnIndex);\r\n var filterValue = getColumnFilterValue(that, column);\r\n var isFilterRange = $editorContainer.closest(\".\".concat(that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS))).length;\r\n var isRangeStart = $editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS));\r\n if (filterValue && Array.isArray(filterValue) && \"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if (isRangeStart) {\r\n return filterValue[0]\r\n }\r\n return filterValue[1]\r\n }\r\n return !isFilterRange && function(filterValue, column) {\r\n if (column && BETWEEN_OPERATION_DATA_TYPES.includes(column.dataType) && Array.isArray(filterValue)) {\r\n return false\r\n }\r\n return void 0 !== filterValue\r\n }(filterValue, column) ? filterValue : null\r\n };\r\n var updateFilterValue = function(that, options) {\r\n var value = \"\" === options.value ? null : options.value;\r\n var $editorContainer = options.container;\r\n var column = that._columnsController.columnOption(options.column.index);\r\n var filterValue = getFilterValue(that, column.index, $editorContainer);\r\n if (!isDefined(filterValue) && !isDefined(value)) {\r\n return\r\n }\r\n that._applyFilterViewController.setHighLight($editorContainer, filterValue !== value);\r\n var columnOptionName = isOnClickApplyFilterMode(that) ? \"bufferedFilterValue\" : \"filterValue\";\r\n var normalizedValue = function(that, filterValue, column, $editorContainer) {\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n var columnFilterValue = getColumnFilterValue(that, column);\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n return [filterValue, Array.isArray(columnFilterValue) ? columnFilterValue[1] : void 0]\r\n }\r\n return [Array.isArray(columnFilterValue) ? columnFilterValue[0] : columnFilterValue, filterValue]\r\n }\r\n return filterValue\r\n }(that, value, column, $editorContainer);\r\n var isBetween = \"between\" === getColumnSelectedFilterOperation(that, column);\r\n var notFireEvent = options.notFireEvent || isBetween && Array.isArray(normalizedValue) && normalizedValue.includes(void 0);\r\n that._columnsController.columnOption(column.index, columnOptionName, normalizedValue, notFireEvent)\r\n };\r\n return {\r\n _updateEditorValue(column, $editorContainer) {\r\n var editor = getEditorInstance($editorContainer);\r\n editor && editor.option(\"value\", getFilterValue(this, column.index, $editorContainer))\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var $cell;\r\n var $editorContainer;\r\n var $editorRangeElements;\r\n var $menu;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"filterValues\", \"filterType\"]) && void 0 !== e.columnIndex) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(e.columnIndex);\r\n var column = this._columnsController.columnOption(e.columnIndex);\r\n $cell = this._getCellElement(this.element().find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS))).index(), visibleIndex) || $();\r\n $editorContainer = $cell.find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n if (optionNames.filterValue || optionNames.bufferedFilterValue) {\r\n this._updateEditorValue(column, $editorContainer);\r\n var overlayInstance = $cell.find(\".\".concat(this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS))).data(\"dxOverlay\");\r\n if (overlayInstance) {\r\n $editorRangeElements = overlayInstance.$content().find(\".\".concat(EDITOR_CONTAINER_CLASS));\r\n this._updateEditorValue(column, $editorRangeElements.first());\r\n this._updateEditorValue(column, $editorRangeElements.last())\r\n }\r\n if (!overlayInstance || !overlayInstance.option(\"visible\")) {\r\n this._updateFilterRangeContent($cell, getRangeTextByFilterValue(this, column))\r\n }\r\n }\r\n if (optionNames.selectedFilterOperation || optionNames.bufferedSelectedFilterOperation) {\r\n if (visibleIndex >= 0 && column) {\r\n $menu = $cell.find(\".\".concat(MENU_CLASS));\r\n if ($menu.length) {\r\n this._updateFilterOperationChooser($menu, column, $editorContainer);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else if ($editorContainer.find(\".\".concat(FILTER_RANGE_CONTENT_CLASS)).length) {\r\n this._renderEditor($editorContainer, this._getEditorOptions($editorContainer, column));\r\n this._hideFilterRange()\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _renderCore() {\r\n this._filterRangeOverlayInstance = null;\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _resizeCore() {\r\n this.callBase.apply(this, arguments);\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.repaint()\r\n },\r\n isFilterRowVisible() {\r\n return this._isElementVisible(this.option(\"filterRow\"))\r\n },\r\n isVisible() {\r\n return this.callBase() || this.isFilterRowVisible()\r\n },\r\n init() {\r\n this.callBase();\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n _initFilterRangeOverlay($cell, column) {\r\n var that = this;\r\n var sharedData = {};\r\n var $editorContainer = $cell.find(\".dx-editor-container\");\r\n var filterRangeOverlayClass = that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS);\r\n var $overlay = $(\"<div>\").addClass(filterRangeOverlayClass).appendTo($cell);\r\n return that._createComponent($overlay, Overlay, {\r\n height: \"auto\",\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n hideOnOutsideClick: true,\r\n wrapperAttr: {\r\n class: filterRangeOverlayClass\r\n },\r\n animation: false,\r\n position: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: $editorContainer.length && $editorContainer || $cell,\r\n offset: \"0 -1\"\r\n },\r\n contentTemplate(contentElement) {\r\n var editorOptions;\r\n var $editor = $(\"<div>\").addClass(\"\".concat(EDITOR_CONTAINER_CLASS, \" \").concat(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))).appendTo(contentElement);\r\n column = that._columnsController.columnOption(column.index);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", e => {\r\n var $prevElement = $cell.find(\"[tabindex]\").not(e.target).first();\r\n if (\"tab\" === normalizeKeyName(e) && e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n if (!$prevElement.length) {\r\n $prevElement = $cell.prev().find(\"[tabindex]\").last()\r\n }\r\n eventsEngine.trigger($prevElement, \"focus\")\r\n }\r\n });\r\n $editor = $(\"<div>\").addClass(\"\".concat(EDITOR_CONTAINER_CLASS, \" \").concat(that.addWidgetPrefix(FILTER_RANGE_END_CLASS))).appendTo(contentElement);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", e => {\r\n if (\"tab\" === normalizeKeyName(e) && !e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n eventsEngine.trigger($cell.next().find(\"[tabindex]\").first(), \"focus\")\r\n }\r\n });\r\n return $(contentElement).addClass(that.getWidgetContainerClass())\r\n },\r\n onShown(e) {\r\n var $editor = e.component.$content().find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n eventsEngine.trigger($editor.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n onHidden() {\r\n column = that._columnsController.columnOption(column.index);\r\n $cell.find(\".\".concat(MENU_CLASS)).parent().addClass(EDITOR_WITH_MENU_CLASS);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column));\r\n that.component.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n _updateFilterRangeOverlay(options) {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.option(options)\r\n },\r\n _showFilterRange($cell, column) {\r\n var $overlay = $cell.children(\".\".concat(this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)));\r\n var overlayInstance = $overlay.length && $overlay.data(\"dxOverlay\");\r\n if (!overlayInstance && column) {\r\n overlayInstance = this._initFilterRangeOverlay($cell, column)\r\n }\r\n if (!overlayInstance.option(\"visible\")) {\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.hide();\r\n this._filterRangeOverlayInstance = overlayInstance;\r\n this._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.show()\r\n }\r\n },\r\n _hideFilterRange() {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.hide()\r\n },\r\n getFilterRangeOverlayInstance() {\r\n return this._filterRangeOverlayInstance\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"filter\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n eventsEngine.on($row, \"keydown\", event => selectView(\"filterRow\", this, event))\r\n }\r\n }\r\n return $row\r\n },\r\n _getRows() {\r\n var result = this.callBase();\r\n if (this.isFilterRowVisible()) {\r\n result.push({\r\n rowType: \"filter\"\r\n })\r\n }\r\n return result\r\n },\r\n _renderFilterCell(cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cell = $(cell);\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaFilterCell\"), $cell);\r\n $cell.addClass(EDITOR_CELL_CLASS);\r\n var $container = $(\"<div>\").appendTo($cell);\r\n var $editorContainer = $(\"<div>\").addClass(EDITOR_CONTAINER_CLASS).appendTo($container);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else {\r\n var editorOptions = this._getEditorOptions($editorContainer, column);\r\n this._renderEditor($editorContainer, editorOptions)\r\n }\r\n var {\r\n alignment: alignment\r\n } = column;\r\n if (alignment && \"center\" !== alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", column.alignment)\r\n }\r\n if (column.filterOperations && column.filterOperations.length) {\r\n this._renderFilterOperationChooser($container, column, $editorContainer)\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (\"filter\" === options.rowType) {\r\n if (column.command) {\r\n $cell.html(\" \")\r\n } else if (column.allowFiltering) {\r\n that.renderTemplate($cell, that._renderFilterCell.bind(that), options).done(() => {\r\n that._updateCell($cell, options)\r\n });\r\n return\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getEditorOptions($editorContainer, column) {\r\n var that = this;\r\n var accessibilityOptions = {\r\n editorOptions: {\r\n inputAttr: that._getFilterInputAccessibilityAttributes(column)\r\n }\r\n };\r\n var result = extend(accessibilityOptions, column, {\r\n value: getFilterValue(that, column.index, $editorContainer),\r\n parentType: \"filterRow\",\r\n showAllText: that.option(\"filterRow.showAllText\"),\r\n updateValueTimeout: \"onClick\" === that.option(\"filterRow.applyFilter\") ? 0 : FILTERING_TIMEOUT,\r\n width: null,\r\n setValue(value, notFireEvent) {\r\n updateFilterValue(that, {\r\n column: column,\r\n value: value,\r\n container: $editorContainer,\r\n notFireEvent: notFireEvent\r\n })\r\n }\r\n });\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n result.placeholder = that.option(\"filterRow.betweenStartText\")\r\n } else {\r\n result.placeholder = that.option(\"filterRow.betweenEndText\")\r\n }\r\n }\r\n return result\r\n },\r\n _getFilterInputAccessibilityAttributes(column) {\r\n var columnAriaLabel = messageLocalization.format(\"dxDataGrid-ariaFilterCell\");\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n return {\r\n \"aria-label\": columnAriaLabel,\r\n \"aria-describedby\": column.headerId\r\n }\r\n }\r\n return {\r\n \"aria-label\": columnAriaLabel\r\n }\r\n },\r\n _renderEditor($editorContainer, options) {\r\n $editorContainer.empty();\r\n var $element = $(\"<div>\").appendTo($editorContainer);\r\n var editorController = this.getController(\"editorFactory\");\r\n var dataSource = this.getController(\"data\").dataSource();\r\n var filterRowController = this.getController(\"applyFilter\");\r\n if (options.lookup && this.option(\"syncLookupFilterValues\")) {\r\n filterRowController.setCurrentColumnForFiltering(options);\r\n var filter = this.getController(\"data\").getCombinedFilter();\r\n filterRowController.setCurrentColumnForFiltering(null);\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(options, dataSource, filter);\r\n var lookupOptions = _extends(_extends({}, options), {\r\n lookup: _extends(_extends({}, options.lookup), {\r\n dataSource: lookupDataSource\r\n })\r\n });\r\n return editorController.createEditor($element, lookupOptions)\r\n }\r\n return editorController.createEditor($element, options)\r\n },\r\n _renderFilterRangeContent($cell, column) {\r\n var that = this;\r\n var $editorContainer = $cell.find(\".\".concat(EDITOR_CONTAINER_CLASS)).first();\r\n $editorContainer.empty();\r\n var $filterRangeContent = $(\"<div>\").addClass(FILTER_RANGE_CONTENT_CLASS).attr(\"tabindex\", this.option(\"tabIndex\"));\r\n eventsEngine.on($filterRangeContent, \"focusin\", () => {\r\n that._showFilterRange($cell, column)\r\n });\r\n $filterRangeContent.appendTo($editorContainer);\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n },\r\n _updateFilterRangeContent($cell, value) {\r\n var $filterRangeContent = $cell.find(\".\".concat(FILTER_RANGE_CONTENT_CLASS));\r\n if ($filterRangeContent.length) {\r\n if (\"\" === value) {\r\n $filterRangeContent.html(\" \")\r\n } else {\r\n $filterRangeContent.text(value)\r\n }\r\n }\r\n },\r\n _updateFilterOperationChooser($menu, column, $editorContainer) {\r\n var that = this;\r\n var isCellWasFocused;\r\n var restoreFocus = function() {\r\n var menu = Menu.getInstance($menu);\r\n menu && menu.option(\"focusedElement\", null);\r\n isCellWasFocused && that._focusEditor($editorContainer)\r\n };\r\n that._createComponent($menu, Menu, {\r\n integrationOptions: {},\r\n activeStateEnabled: false,\r\n selectionMode: \"single\",\r\n cssClass: \"\".concat(that.getWidgetContainerClass(), \" \").concat(CELL_FOCUS_DISABLED_CLASS, \" \").concat(FILTER_MENU),\r\n showFirstSubmenuMode: \"onHover\",\r\n hideSubmenuOnMouseLeave: true,\r\n items: [{\r\n disabled: !(column.filterOperations && column.filterOperations.length),\r\n icon: OPERATION_ICONS[getColumnSelectedFilterOperation(that, column) || \"default\"],\r\n selectable: false,\r\n items: that._getFilterOperationMenuItems(column)\r\n }],\r\n onItemRendered: _ref => {\r\n var {\r\n itemElement: itemElement\r\n } = _ref;\r\n this.setAria(\"label\", ARIA_SEARCH_BOX, $(itemElement))\r\n },\r\n onItemClick(properties) {\r\n var selectedFilterOperation = properties.itemData.name;\r\n var columnSelectedFilterOperation = getColumnSelectedFilterOperation(that, column);\r\n var notFocusEditor = false;\r\n var isOnClickMode = isOnClickApplyFilterMode(that);\r\n var options = {};\r\n if (properties.itemData.items || selectedFilterOperation && selectedFilterOperation === columnSelectedFilterOperation) {\r\n return\r\n }\r\n if (selectedFilterOperation) {\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = selectedFilterOperation;\r\n if (\"between\" === selectedFilterOperation || \"between\" === columnSelectedFilterOperation) {\r\n notFocusEditor = \"between\" === selectedFilterOperation;\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null\r\n }\r\n } else {\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null;\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = column.defaultSelectedFilterOperation || null\r\n }\r\n that._columnsController.columnOption(column.index, options);\r\n that._applyFilterViewController.setHighLight($editorContainer, true);\r\n if (!selectedFilterOperation) {\r\n var editor = getEditorInstance($editorContainer);\r\n if (editor && \"dxDateBox\" === editor.NAME && !editor.option(\"isValid\")) {\r\n editor.clear();\r\n editor.option(\"isValid\", true)\r\n }\r\n }\r\n if (!notFocusEditor) {\r\n that._focusEditor($editorContainer)\r\n } else {\r\n that._showFilterRange($editorContainer.closest(\".\".concat(EDITOR_CELL_CLASS)), column)\r\n }\r\n },\r\n onSubmenuShowing() {\r\n isCellWasFocused = that._isEditorFocused($editorContainer);\r\n that.getController(\"editorFactory\").loseFocus()\r\n },\r\n onSubmenuHiding() {\r\n eventsEngine.trigger($menu, \"blur\");\r\n restoreFocus()\r\n },\r\n onContentReady(e) {\r\n eventsEngine.on($menu, \"blur\", () => {\r\n var menu = e.component;\r\n menu._hideSubmenuAfterTimeout();\r\n restoreFocus()\r\n })\r\n },\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n })\r\n },\r\n _isEditorFocused: $container => $container.hasClass(FOCUSED_CLASS) || $container.parents(\".\".concat(FOCUSED_CLASS)).length,\r\n _focusEditor($container) {\r\n this.getController(\"editorFactory\").focus($container);\r\n eventsEngine.trigger($container.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n _renderFilterOperationChooser($container, column, $editorContainer) {\r\n var $menu;\r\n if (this.option(\"filterRow.showOperationChooser\")) {\r\n $container.addClass(EDITOR_WITH_MENU_CLASS);\r\n $menu = $(\"<div>\").prependTo($container);\r\n this._updateFilterOperationChooser($menu, column, $editorContainer)\r\n }\r\n },\r\n _getFilterOperationMenuItems(column) {\r\n var that = this;\r\n var result = [{}];\r\n var filterRowOptions = that.option(\"filterRow\");\r\n var operationDescriptions = filterRowOptions && filterRowOptions.operationDescriptions || {};\r\n if (column.filterOperations && column.filterOperations.length) {\r\n var availableFilterOperations = column.filterOperations.filter(value => isDefined(OPERATION_DESCRIPTORS[value]));\r\n result = map(availableFilterOperations, value => {\r\n var descriptionName = OPERATION_DESCRIPTORS[value];\r\n return {\r\n name: value,\r\n selected: (getColumnSelectedFilterOperation(that, column) || column.defaultFilterOperation) === value,\r\n text: operationDescriptions[descriptionName],\r\n icon: OPERATION_ICONS[value]\r\n }\r\n });\r\n result.push({\r\n name: null,\r\n text: filterRowOptions && filterRowOptions.resetOperationText,\r\n icon: OPERATION_ICONS.default\r\n })\r\n }\r\n return result\r\n },\r\n _handleDataChanged(e) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var dataSource = null === (_b = null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.dataSource) || void 0 === _b ? void 0 : _b.call(_a);\r\n var lastLoadOptions = null === (_c = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions) || void 0 === _c ? void 0 : _c.call(dataSource);\r\n this.callBase.apply(this, arguments);\r\n if ((null === (_d = e.operationTypes) || void 0 === _d ? void 0 : _d.filtering) || (null === (_e = e.operationTypes) || void 0 === _e ? void 0 : _e.fullReload)) {\r\n this.updateLookupDataSource((null === (_f = e.operationTypes) || void 0 === _f ? void 0 : _f.filtering) || (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.filter))\r\n }\r\n },\r\n updateLookupDataSource(filterChanged) {\r\n if (!this.option(\"syncLookupFilterValues\")) {\r\n return\r\n }\r\n if (!this.element()) {\r\n return\r\n }\r\n var columns = this._columnsController.getVisibleColumns();\r\n var dataSource = this._dataController.dataSource();\r\n var applyFilterViewController = this._applyFilterViewController;\r\n var rowIndex = this.element().find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS))).index();\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n columns.forEach((column, index) => {\r\n if (!column.lookup || column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return\r\n }\r\n var $cell = this._getCellElement(rowIndex, index);\r\n var editor = getEditorInstance(null === $cell || void 0 === $cell ? void 0 : $cell.find(\".dx-editor-container\"));\r\n if (editor) {\r\n applyFilterViewController.setCurrentColumnForFiltering(column);\r\n var filter = this._dataController.getCombinedFilter() || null;\r\n applyFilterViewController.setCurrentColumnForFiltering(null);\r\n var editorDataSource = editor.option(\"dataSource\");\r\n var shouldUpdateFilter = !filterChanged || !equalByValue(editorDataSource.__dataGridSourceFilter || null, filter);\r\n if (shouldUpdateFilter) {\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter);\r\n editor.option(\"dataSource\", lookupDataSource)\r\n }\r\n }\r\n })\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterRow\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"syncLookupFilterValues\":\r\n if (args.value) {\r\n this.updateLookupDataSource()\r\n } else {\r\n this.render()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n}();\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: () => false,\r\n _calculateAdditionalFilter() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var filterRowController = this.getController(\"applyFilter\");\r\n each(columns, (function() {\r\n var _a;\r\n var shouldSkip = (null === (_a = filterRowController.getCurrentColumnForFiltering()) || void 0 === _a ? void 0 : _a.index) === this.index;\r\n if (this.allowFiltering && this.calculateFilterExpression && isDefined(this.filterValue) && !shouldSkip) {\r\n var filter = this.createFilterExpression(this.filterValue, this.selectedFilterOperation || this.defaultFilterOperation, \"filterRow\");\r\n filters.push(filter)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nvar ApplyFilterViewController = modules.ViewController.inherit({\r\n _getHeaderPanel() {\r\n if (!this._headerPanel) {\r\n this._headerPanel = this.getView(\"headerPanel\")\r\n }\r\n return this._headerPanel\r\n },\r\n setHighLight($element, value) {\r\n if (isOnClickApplyFilterMode(this)) {\r\n $element && $element.toggleClass(HIGHLIGHT_OUTLINE_CLASS, value) && $element.closest(\".\".concat(EDITOR_CELL_CLASS)).toggleClass(FILTER_MODIFIED_CLASS, value);\r\n this._getHeaderPanel().enableApplyButton(value)\r\n }\r\n },\r\n applyFilter() {\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n columnsController.beginUpdate();\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (void 0 !== column.bufferedFilterValue) {\r\n columnsController.columnOption(i, \"filterValue\", column.bufferedFilterValue);\r\n column.bufferedFilterValue = void 0\r\n }\r\n if (void 0 !== column.bufferedSelectedFilterOperation) {\r\n columnsController.columnOption(i, \"selectedFilterOperation\", column.bufferedSelectedFilterOperation);\r\n column.bufferedSelectedFilterOperation = void 0\r\n }\r\n }\r\n columnsController.endUpdate();\r\n this.removeHighLights()\r\n },\r\n removeHighLights() {\r\n if (isOnClickApplyFilterMode(this)) {\r\n var columnHeadersViewElement = this.getView(\"columnHeadersView\").element();\r\n columnHeadersViewElement.find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS), \" .\").concat(HIGHLIGHT_OUTLINE_CLASS)).removeClass(HIGHLIGHT_OUTLINE_CLASS);\r\n columnHeadersViewElement.find(\".\".concat(this.addWidgetPrefix(FILTER_ROW_CLASS), \" .\").concat(FILTER_MODIFIED_CLASS)).removeClass(FILTER_MODIFIED_CLASS);\r\n this._getHeaderPanel().enableApplyButton(false)\r\n }\r\n },\r\n setCurrentColumnForFiltering(column) {\r\n this._currentColumn = column\r\n },\r\n getCurrentColumnForFiltering() {\r\n return this._currentColumn\r\n }\r\n});\r\nexport var filterRowModule = {\r\n defaultOptions: () => ({\r\n syncLookupFilterValues: true,\r\n filterRow: {\r\n visible: false,\r\n showOperationChooser: true,\r\n showAllText: messageLocalization.format(\"dxDataGrid-filterRowShowAllText\"),\r\n resetOperationText: messageLocalization.format(\"dxDataGrid-filterRowResetOperationText\"),\r\n applyFilter: \"auto\",\r\n applyFilterText: messageLocalization.format(\"dxDataGrid-applyFilterText\"),\r\n operationDescriptions: {\r\n equal: messageLocalization.format(\"dxDataGrid-filterRowOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxDataGrid-filterRowOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxDataGrid-filterRowOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxDataGrid-filterRowOperationContains\"),\r\n notContains: messageLocalization.format(\"dxDataGrid-filterRowOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationEndsWith\"),\r\n between: messageLocalization.format(\"dxDataGrid-filterRowOperationBetween\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n },\r\n betweenStartText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenStartText\"),\r\n betweenEndText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenEndText\")\r\n }\r\n }),\r\n controllers: {\r\n applyFilter: ApplyFilterViewController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender,\r\n columnsResizer: {\r\n _startResizing() {\r\n this.callBase.apply(this, arguments);\r\n if (this.isResizing()) {\r\n var overlayInstance = this._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n var cellIndex = overlayInstance.$element().closest(\"td\").index();\r\n if (cellIndex === this._targetPoint.columnIndex || cellIndex === this._targetPoint.columnIndex + 1) {\r\n overlayInstance.$content().hide()\r\n }\r\n }\r\n }\r\n },\r\n _endResizing() {\r\n var $cell;\r\n if (this.isResizing()) {\r\n var overlayInstance = this._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n $cell = overlayInstance.$element().closest(\"td\");\r\n this._columnHeadersView._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n overlayInstance.$content().show()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n editing: {\r\n updateFieldValue(options) {\r\n if (options.column.lookup) {\r\n this._needUpdateLookupDataSource = true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _afterSaveEditData(cancel) {\r\n var _a;\r\n if (this._needUpdateLookupDataSource && !cancel) {\r\n null === (_a = this.getView(\"columnHeadersView\")) || void 0 === _a ? void 0 : _a.updateLookupDataSource()\r\n }\r\n this._needUpdateLookupDataSource = false;\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _afterCancelEditData() {\r\n this._needUpdateLookupDataSource = false;\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterRowExtender,\r\n headerPanel: {\r\n _getToolbarItems() {\r\n var items = this.callBase();\r\n var filterItem = this._prepareFilterItem(items);\r\n return filterItem.concat(items)\r\n },\r\n _prepareFilterItem() {\r\n var that = this;\r\n var filterItem = [];\r\n if (that._isShowApplyFilterButton()) {\r\n var hintText = that.option(\"filterRow.applyFilterText\");\r\n var columns = that._columnsController.getColumns();\r\n var disabled = !columns.filter(column => void 0 !== column.bufferedFilterValue).length;\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"apply-filter\",\r\n disabled: disabled,\r\n onClick: function() {\r\n that._applyFilterViewController.applyFilter()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(APPLY_BUTTON_CLASS))\r\n }\r\n },\r\n showText: \"inMenu\",\r\n name: \"applyFilterButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 10\r\n };\r\n filterItem.push(toolbarItem)\r\n }\r\n return filterItem\r\n },\r\n _isShowApplyFilterButton() {\r\n var filterRowOptions = this.option(\"filterRow\");\r\n return filterRowOptions && filterRowOptions.visible && \"onClick\" === filterRowOptions.applyFilter\r\n },\r\n init() {\r\n this.callBase();\r\n this._dataController = this.getController(\"data\");\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n enableApplyButton(value) {\r\n this.setToolbarItemDisabled(\"applyFilterButton\", !value)\r\n },\r\n isVisible() {\r\n return this.callBase() || this._isShowApplyFilterButton()\r\n },\r\n optionChanged(args) {\r\n if (\"filterRow\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterRowModule\r\n} from \"../../../grids/grid_core/filter/m_filter_row\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterRow\", filterRowModule);\r\n","/**\r\n * DevExtreme (esm/ui/list/modules/search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../text_box\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../../../ui/list/modules/search\";\r\nimport \"../../../../ui/list/modules/selection\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport List from \"../../../../ui/list_light\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport TreeView from \"../../../../ui/tree_view\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar HEADER_FILTER_CLASS = \"dx-header-filter\";\r\nvar HEADER_FILTER_MENU_CLASS = \"dx-header-filter-menu\";\r\nvar DEFAULT_SEARCH_EXPRESSION = \"text\";\r\n\r\nfunction resetChildrenItemSelection(items) {\r\n items = items || [];\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].selected = false;\r\n resetChildrenItemSelection(items[i].items)\r\n }\r\n}\r\n\r\nfunction getSelectAllCheckBox(listComponent) {\r\n var selector = \"dxTreeView\" === listComponent.NAME ? \".dx-treeview-select-all-item\" : \".dx-list-select-all-checkbox\";\r\n return listComponent.$element().find(selector).dxCheckBox(\"instance\")\r\n}\r\n\r\nfunction updateListSelectAllState(e, filterValues) {\r\n if (e.component.option(\"searchValue\")) {\r\n return\r\n }\r\n var selectAllCheckBox = getSelectAllCheckBox(e.component);\r\n if (selectAllCheckBox && filterValues && filterValues.length) {\r\n selectAllCheckBox.option(\"value\", void 0)\r\n }\r\n}\r\nexport function updateHeaderFilterItemSelectionState(item, filterValuesMatch, isExcludeFilter) {\r\n if (filterValuesMatch ^ isExcludeFilter) {\r\n item.selected = true;\r\n if (isExcludeFilter && item.items) {\r\n for (var j = 0; j < item.items.length; j++) {\r\n if (!item.items[j].selected) {\r\n item.selected = void 0;\r\n break\r\n }\r\n }\r\n }\r\n } else if (isExcludeFilter || item.selected) {\r\n item.selected = false;\r\n resetChildrenItemSelection(item.items)\r\n }\r\n}\r\nexport var HeaderFilterView = modules.View.inherit({\r\n getPopupContainer() {\r\n return this._popupContainer\r\n },\r\n getListComponent() {\r\n return this._listComponent\r\n },\r\n applyHeaderFilter(options) {\r\n var list = this.getListComponent();\r\n var searchValue = list.option(\"searchValue\");\r\n var selectAllCheckBox = getSelectAllCheckBox(list);\r\n var isAllSelected = !searchValue && !options.isFilterBuilder && (null === selectAllCheckBox || void 0 === selectAllCheckBox ? void 0 : selectAllCheckBox.option(\"value\"));\r\n var filterValues = [];\r\n if (!isAllSelected) {\r\n if (\"tree\" === options.type) {\r\n if (options.filterType) {\r\n options.filterType = \"include\"\r\n }! function fillSelectedItemKeys(filterValues, items, isExclude) {\r\n each(items, (_, item) => {\r\n if (void 0 !== item.selected && !!item.selected ^ isExclude) {\r\n var node = list._getNode(item);\r\n var hasChildren = list._hasChildren(node);\r\n var hasChildrenWithSelection = hasChildren && item.items && item.items.some(item => item.selected);\r\n if (!searchValue || !hasChildrenWithSelection) {\r\n filterValues.push(item.value);\r\n return\r\n }\r\n }\r\n if (item.items && item.items.length) {\r\n fillSelectedItemKeys(filterValues, item.items, isExclude)\r\n }\r\n })\r\n }(filterValues, list.option(\"items\"), false);\r\n options.filterValues = filterValues\r\n }\r\n } else {\r\n if (\"tree\" === options.type) {\r\n options.filterType = \"exclude\"\r\n }\r\n if (Array.isArray(options.filterValues)) {\r\n options.filterValues = []\r\n }\r\n }\r\n if (options.filterValues && !options.filterValues.length) {\r\n options.filterValues = null\r\n }\r\n options.apply();\r\n this.hideHeaderFilterMenu()\r\n },\r\n showHeaderFilterMenu($columnElement, options) {\r\n if (options) {\r\n this._initializePopupContainer(options);\r\n var popupContainer = this.getPopupContainer();\r\n this.hideHeaderFilterMenu();\r\n this.updatePopup($columnElement, options);\r\n popupContainer.show()\r\n }\r\n },\r\n hideHeaderFilterMenu() {\r\n var headerFilterMenu = this.getPopupContainer();\r\n headerFilterMenu && headerFilterMenu.hide()\r\n },\r\n updatePopup($element, options) {\r\n var showColumnLines = this.option(\"showColumnLines\");\r\n var alignment = \"right\" === options.alignment ^ !showColumnLines ? \"left\" : \"right\";\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-headerFilterLabel\")\r\n });\r\n if (this._popupContainer) {\r\n this._cleanPopupContent();\r\n this._popupContainer.option(\"position\", {\r\n my: \"\".concat(alignment, \" top\"),\r\n at: \"\".concat(alignment, \" bottom\"),\r\n of: $element,\r\n collision: \"fit fit\"\r\n })\r\n }\r\n },\r\n _getSearchExpr(options, headerFilterOptions) {\r\n var {\r\n lookup: lookup\r\n } = options;\r\n var {\r\n useDefaultSearchExpr: useDefaultSearchExpr\r\n } = options;\r\n var headerFilterDataSource = headerFilterOptions.dataSource;\r\n var filterSearchExpr = headerFilterOptions.search.searchExpr;\r\n if (filterSearchExpr) {\r\n return filterSearchExpr\r\n }\r\n if (useDefaultSearchExpr || isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n return DEFAULT_SEARCH_EXPRESSION\r\n }\r\n if (lookup) {\r\n return lookup.displayExpr || \"this\"\r\n }\r\n if (options.dataSource) {\r\n var {\r\n group: group\r\n } = options.dataSource;\r\n if (Array.isArray(group) && group.length > 0) {\r\n return group[0].selector\r\n }\r\n if (isFunction(group) && !options.remoteFiltering) {\r\n return group\r\n }\r\n }\r\n return options.dataField || options.selector\r\n },\r\n _cleanPopupContent() {\r\n this._popupContainer && this._popupContainer.$content().empty()\r\n },\r\n _initializePopupContainer(options) {\r\n var that = this;\r\n var $element = that.element();\r\n var headerFilterOptions = this._normalizeHeaderFilterOptions(options);\r\n var {\r\n height: height,\r\n width: width\r\n } = headerFilterOptions;\r\n var dxPopupOptions = {\r\n width: width,\r\n height: height,\r\n visible: false,\r\n shading: false,\r\n showTitle: false,\r\n showCloseButton: false,\r\n hideOnParentScroll: false,\r\n dragEnabled: false,\r\n hideOnOutsideClick: true,\r\n wrapperAttr: {\r\n class: HEADER_FILTER_MENU_CLASS\r\n },\r\n focusStateEnabled: false,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.ok,\r\n onClick() {\r\n that.applyHeaderFilter(options)\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.cancel,\r\n onClick() {\r\n that.hideHeaderFilterMenu()\r\n }\r\n }\r\n }],\r\n resizeEnabled: true,\r\n onShowing(e) {\r\n e.component.$content().parent().addClass(\"dx-dropdowneditor-overlay\");\r\n that._initializeListContainer(options, headerFilterOptions);\r\n options.onShowing && options.onShowing(e)\r\n },\r\n onShown() {\r\n that.getListComponent().focus()\r\n },\r\n onHidden: options.onHidden,\r\n onInitialized(e) {\r\n var {\r\n component: component\r\n } = e;\r\n component.option(\"animation\", component._getDefaultOptions().animation)\r\n }\r\n };\r\n if (!isDefined(that._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions)\r\n } else {\r\n that._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _initializeListContainer(options, headerFilterOptions) {\r\n var that = this;\r\n var $content = that._popupContainer.$content();\r\n var needShowSelectAllCheckbox = !options.isFilterBuilder && headerFilterOptions.allowSelectAll;\r\n var widgetOptions = {\r\n searchEnabled: headerFilterOptions.search.enabled,\r\n searchTimeout: headerFilterOptions.search.timeout,\r\n searchEditorOptions: headerFilterOptions.search.editorOptions,\r\n searchMode: headerFilterOptions.search.mode || \"\",\r\n dataSource: options.dataSource,\r\n onContentReady() {\r\n that.renderCompleted.fire()\r\n },\r\n itemTemplate(data, _, element) {\r\n var $element = $(element);\r\n if (options.encodeHtml) {\r\n return $element.text(data.text)\r\n }\r\n return $element.html(data.text)\r\n }\r\n };\r\n\r\n function onOptionChanged(e) {\r\n if (\"searchValue\" === e.fullName && needShowSelectAllCheckbox && false !== that.option(\"headerFilter.hideSelectAllOnSearch\")) {\r\n if (\"tree\" === options.type) {\r\n e.component.option(\"showCheckBoxesMode\", e.value ? \"normal\" : \"selectAll\")\r\n } else {\r\n e.component.option(\"selectionMode\", e.value ? \"multiple\" : \"all\")\r\n }\r\n }\r\n }\r\n if (\"tree\" === options.type) {\r\n that._listComponent = that._createComponent($(\"<div>\").appendTo($content), TreeView, extend(widgetOptions, {\r\n showCheckBoxesMode: needShowSelectAllCheckbox ? \"selectAll\" : \"normal\",\r\n onOptionChanged: onOptionChanged,\r\n keyExpr: \"id\"\r\n }))\r\n } else {\r\n that._listComponent = that._createComponent($(\"<div>\").appendTo($content), List, extend(widgetOptions, {\r\n searchExpr: that._getSearchExpr(options, headerFilterOptions),\r\n pageLoadMode: \"scrollBottom\",\r\n showSelectionControls: true,\r\n selectionMode: needShowSelectAllCheckbox ? \"all\" : \"multiple\",\r\n onOptionChanged: onOptionChanged,\r\n onSelectionChanged(e) {\r\n var items = e.component.option(\"items\");\r\n var selectedItems = e.component.option(\"selectedItems\");\r\n if (!e.component._selectedItemsUpdating && !e.component.option(\"searchValue\") && !options.isFilterBuilder) {\r\n var filterValues = options.filterValues || [];\r\n var isExclude = \"exclude\" === options.filterType;\r\n if (0 === selectedItems.length && items.length && (filterValues.length <= 1 || isExclude && filterValues.length === items.length - 1)) {\r\n options.filterType = \"include\";\r\n options.filterValues = []\r\n } else if (selectedItems.length === items.length) {\r\n options.filterType = \"exclude\";\r\n options.filterValues = []\r\n }\r\n }\r\n each(items, (index, item) => {\r\n var selected = gridCoreUtils.getIndexByKey(item, selectedItems, null) >= 0;\r\n var oldSelected = !!item.selected;\r\n if (oldSelected !== selected) {\r\n item.selected = selected;\r\n options.filterValues = options.filterValues || [];\r\n var filterValueIndex = gridCoreUtils.getIndexByKey(item.value, options.filterValues, null);\r\n if (filterValueIndex >= 0) {\r\n options.filterValues.splice(filterValueIndex, 1)\r\n }\r\n var isExcludeFilterType = \"exclude\" === options.filterType;\r\n if (selected ^ isExcludeFilterType) {\r\n options.filterValues.push(item.value)\r\n }\r\n }\r\n });\r\n updateListSelectAllState(e, options.filterValues)\r\n },\r\n onContentReady(e) {\r\n var {\r\n component: component\r\n } = e;\r\n var items = component.option(\"items\");\r\n var selectedItems = [];\r\n each(items, (function() {\r\n if (this.selected) {\r\n selectedItems.push(this)\r\n }\r\n }));\r\n component._selectedItemsUpdating = true;\r\n component.option(\"selectedItems\", selectedItems);\r\n component._selectedItemsUpdating = false;\r\n updateListSelectAllState(e, options.filterValues)\r\n }\r\n }))\r\n }\r\n },\r\n _normalizeHeaderFilterOptions(options) {\r\n var generalHeaderFilter = this.option(\"headerFilter\") || {};\r\n var specificHeaderFilter = options.headerFilter || {};\r\n var generalDeprecated = {\r\n search: {\r\n enabled: generalHeaderFilter.allowSearch,\r\n timeout: generalHeaderFilter.searchTimeout\r\n }\r\n };\r\n var specificDeprecated = {\r\n search: {\r\n enabled: specificHeaderFilter.allowSearch,\r\n mode: specificHeaderFilter.searchMode,\r\n timeout: specificHeaderFilter.searchTimeout\r\n }\r\n };\r\n return extend(true, {}, generalHeaderFilter, generalDeprecated, specificHeaderFilter, specificDeprecated)\r\n },\r\n _renderCore() {\r\n this.element().addClass(HEADER_FILTER_MENU_CLASS)\r\n }\r\n});\r\nexport var allowHeaderFiltering = function(column) {\r\n return isDefined(column.allowHeaderFiltering) ? column.allowHeaderFiltering : column.allowFiltering\r\n};\r\nexport var headerFilterMixin = {\r\n _applyColumnState(options) {\r\n var $headerFilterIndicator;\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n if (\"headerFilter\" === options.name) {\r\n rootElement.find(\".\".concat(HEADER_FILTER_CLASS)).remove();\r\n if (allowHeaderFiltering(column)) {\r\n $headerFilterIndicator = this.callBase(options).toggleClass(\"dx-header-filter-empty\", this._isHeaderFilterEmpty(column));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n $headerFilterIndicator.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n var indicatorLabel = messageLocalization.format(\"dxDataGrid-headerFilterIndicatorLabel\", column.caption);\r\n $headerFilterIndicator.attr(\"aria-label\", indicatorLabel);\r\n $headerFilterIndicator.attr(\"aria-haspopup\", \"dialog\");\r\n $headerFilterIndicator.attr(\"role\", \"button\")\r\n }\r\n return $headerFilterIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _isHeaderFilterEmpty: column => !column.filterValues || !column.filterValues.length,\r\n _getIndicatorClassName(name) {\r\n if (\"headerFilter\" === name) {\r\n return HEADER_FILTER_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"headerFilter\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ($container.children().length && (!rtlEnabled && \"right\" === options.columnAlignment || rtlEnabled && \"left\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n optionChanged(args) {\r\n if (\"headerFilter\" === args.name) {\r\n var requireReady = \"columnHeadersView\" === this.name;\r\n this._invalidate(requireReady, requireReady);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_filter/m_header_filter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n restoreFocus,\r\n saveFocusedElementInfo\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n allowHeaderFiltering,\r\n headerFilterMixin,\r\n HeaderFilterView,\r\n updateHeaderFilterItemSelectionState\r\n} from \"./m_header_filter_core\";\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: value => dateLocalization.getMonthNames()[value - 1],\r\n quarter: value => dateLocalization.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n};\r\n\r\nfunction ungroupUTCDates(items, dateParts, dates) {\r\n dateParts = dateParts || [];\r\n dates = dates || [];\r\n items.forEach(item => {\r\n if (isDefined(item.key)) {\r\n var isMonthPart = 1 === dateParts.length;\r\n dateParts.push(isMonthPart ? item.key - 1 : item.key);\r\n if (item.items) {\r\n ungroupUTCDates(item.items, dateParts, dates)\r\n } else {\r\n var date = new Date(Date.UTC.apply(Date, dateParts));\r\n dates.push(date)\r\n }\r\n dateParts.pop()\r\n } else {\r\n dates.push(null)\r\n }\r\n });\r\n return dates\r\n}\r\n\r\nfunction convertDataFromUTCToLocal(data, column) {\r\n var dates = ungroupUTCDates(data);\r\n var query = dataQuery(dates);\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(_extends(_extends({}, column), {\r\n calculateCellValue: date => date\r\n }));\r\n return storeHelper.queryByOptions(query, {\r\n group: group\r\n }).toArray()\r\n}\r\n\r\nfunction isUTCFormat(format) {\r\n return \"Z\" === (null === format || void 0 === format ? void 0 : format.slice(-1)) || \"'Z'\" === (null === format || void 0 === format ? void 0 : format.slice(-3))\r\n}\r\nvar HeaderFilterController = modules.ViewController.inherit({\r\n init() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n },\r\n _updateSelectedState(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }\r\n updateHeaderFilterItemSelectionState(item, gridCoreUtils.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n },\r\n _normalizeGroupItem(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var {\r\n path: path\r\n } = options;\r\n var {\r\n valueSelector: valueSelector\r\n } = options;\r\n var {\r\n displaySelector: displaySelector\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!isObject(item)) {\r\n item = {}\r\n } else {\r\n item = extend({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n },\r\n getHeaderItemText(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = gridCoreUtils.formatValue(displayValue, function(value, column, currentLevel) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var result = gridCoreUtils.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (gridCoreUtils.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = gridCoreUtils.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = gridCoreUtils.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? \"\".concat(firstValueText, \" - \").concat(secondValueText) : \"\"\r\n }\r\n }\r\n }\r\n return result\r\n }(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n },\r\n _processGroupItems(groupItems, currentLevel, path, options) {\r\n var displaySelector;\r\n var valueSelector;\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n var {\r\n level: level\r\n } = options;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = compileGetter(lookup.displayExpr);\r\n valueSelector = compileGetter(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = this._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !isDefined(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n this._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n },\r\n getDataSource(column) {\r\n var _a;\r\n var dataSource = this._dataController.dataSource();\r\n var remoteGrouping = null === dataSource || void 0 === dataSource ? void 0 : dataSource.remoteOperations().grouping;\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(column, remoteGrouping);\r\n var headerFilterDataSource = null === (_a = column.headerFilter) || void 0 === _a ? void 0 : _a.dataSource;\r\n var headerFilterOptions = this.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: this.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if (isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n options.dataSource = normalizeDataSourceOptions(headerFilterDataSource)\r\n } else if (column.lookup) {\r\n isLookup = true;\r\n if (this.option(\"syncLookupFilterValues\")) {\r\n this._currentColumn = column;\r\n var filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter)\r\n } else {\r\n options.dataSource = gridCoreUtils.normalizeLookupDataSource(column.lookup)\r\n }\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n this._currentColumn = column;\r\n var _filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = {\r\n filter: _filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: options => {\r\n var d = new Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done(data => {\r\n var convertUTCDates = remoteGrouping && isUTCFormat(column.serializationFormat) && cutoffLevel > 3;\r\n if (convertUTCDates) {\r\n data = convertDataFromUTCToLocal(data, column)\r\n }\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n if (isFunction(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n var that = this;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n items = items.filter(item => null !== item[column.lookup.valueExpr]);\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n },\r\n getCurrentColumn() {\r\n return this._currentColumn\r\n },\r\n showHeaderFilterMenu(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = extend(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n },\r\n showHeaderFilterMenuBase(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (column) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var dataSource = that._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n var previousOnHidden = options.onHidden;\r\n extend(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing(e) {\r\n var dxResizableInstance = e.component.$overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", e => {\r\n var columnsController = that.getController(\"columns\");\r\n var headerFilterByColumn = columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n })\r\n },\r\n onHidden: () => {\r\n null === previousOnHidden || void 0 === previousOnHidden ? void 0 : previousOnHidden();\r\n restoreFocus(this)\r\n }\r\n });\r\n options.dataSource = that.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n that._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n },\r\n hideHeaderFilterMenu() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n});\r\nvar ColumnHeadersViewHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _renderCellContent($cell, options) {\r\n var $headerFilterIndicator;\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && allowHeaderFiltering(column) && this.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = this._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && this._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _subscribeToIndicatorEvent($indicator, column, indicatorName) {\r\n if (\"headerFilter\" === indicatorName) {\r\n eventsEngine.on($indicator, clickEventName, this.createAction(e => {\r\n e.event.stopPropagation();\r\n saveFocusedElementInfo($indicator, this);\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(column.index, false)\r\n }))\r\n }\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicator = this.callBase($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n },\r\n _updateHeaderFilterIndicators() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n },\r\n _needUpdateFilterIndicators: () => true,\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var isFilterRowAndHeaderFilterValuesChanged = gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterValue\"]);\r\n var isHeaderFilterValuesAndTypeChanged = gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterType\"]);\r\n var shouldUpdateFilterIndicators = (isFilterRowAndHeaderFilterValuesChanged || isHeaderFilterValuesAndTypeChanged) && this._needUpdateFilterIndicators();\r\n if (shouldUpdateFilterIndicators) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n if (!isHeaderFilterValuesAndTypeChanged) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HeaderPanelHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && allowHeaderFiltering(groupColumn) && that.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: getDefaultAlignment(that.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true,\r\n caption: groupColumn.caption\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && eventsEngine.on($headerFilterIndicator, clickEventName, that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(groupColumn.index, true)\r\n }))\r\n }\r\n return $item\r\n }\r\n});\r\nexport function invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: () => false,\r\n _calculateAdditionalFilter() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n each(columns, (_, column) => {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if (allowHeaderFiltering(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n each(column.filterValues, (_, filterValue) => {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !gridCoreUtils.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n });\r\n filterValues = gridCoreUtils.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n });\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nexport var headerFilterModule = {\r\n defaultOptions: () => ({\r\n syncLookupFilterValues: true,\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSelectAll: true,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n mode: \"contains\",\r\n editorOptions: {}\r\n },\r\n texts: {\r\n emptyValue: messageLocalization.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: messageLocalization.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: messageLocalization.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewHeaderFilterExtender,\r\n headerPanel: HeaderPanelHeaderFilterExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_filter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerFilterModule\r\n} from \"../../../grids/grid_core/header_filter/m_header_filter\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"headerFilter\", headerFilterModule);\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_between.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar FILTER_BUILDER_RANGE_CLASS = \"dx-filterbuilder-range\";\r\nvar FILTER_BUILDER_RANGE_START_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-start\");\r\nvar FILTER_BUILDER_RANGE_END_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-end\");\r\nvar FILTER_BUILDER_RANGE_SEPARATOR_CLASS = \"\".concat(FILTER_BUILDER_RANGE_CLASS, \"-separator\");\r\nvar SEPARATOR = \"\\u2013\";\r\n\r\nfunction editorTemplate(conditionInfo, container) {\r\n var $editorStart = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_START_CLASS);\r\n var $editorEnd = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_END_CLASS);\r\n var values = conditionInfo.value || [];\r\n var getStartValue = function(values) {\r\n return values && values.length > 0 ? values[0] : null\r\n };\r\n var getEndValue = function(values) {\r\n return values && 2 === values.length ? values[1] : null\r\n };\r\n container.append($editorStart);\r\n container.append($(\"<span>\").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));\r\n container.append($editorEnd);\r\n container.addClass(FILTER_BUILDER_RANGE_CLASS);\r\n this._editorFactory.createEditor.call(this, $editorStart, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getStartValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue(value) {\r\n values = [value, getEndValue(values)];\r\n conditionInfo.setValue(values)\r\n }\r\n }));\r\n this._editorFactory.createEditor.call(this, $editorEnd, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getEndValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue(value) {\r\n values = [getStartValue(values), value];\r\n conditionInfo.setValue(values)\r\n }\r\n }))\r\n}\r\nexport function getConfig(caption, context) {\r\n return {\r\n name: \"between\",\r\n caption: caption,\r\n icon: \"range\",\r\n valueSeparator: SEPARATOR,\r\n dataTypes: [\"number\", \"date\", \"datetime\"],\r\n editorTemplate: editorTemplate.bind(context),\r\n notForLookup: true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_filter_operations_dictionary.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nexport default {\r\n getIconByFilterOperation: filterOperation => OPERATION_ICONS[filterOperation],\r\n getNameByFilterOperation: filterOperation => OPERATION_NAME[filterOperation]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport filterUtils from \"../../ui/shared/filtering\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n getConfig\r\n} from \"./m_between\";\r\nimport filterOperationsDictionary from \"./m_filter_operations_dictionary\";\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar EMPTY_MENU_ICON = \"icon-none\";\r\nvar AND_GROUP_OPERATION = \"and\";\r\nvar EQUAL_OPERATION = \"=\";\r\nvar NOT_EQUAL_OPERATION = \"<>\";\r\nvar DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n boolean: [\"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n object: [\"isblank\", \"isnotblank\"]\r\n};\r\nvar DEFAULT_FORMAT = {\r\n date: \"shortDate\",\r\n datetime: \"shortDateShortTime\"\r\n};\r\nvar LOOKUP_OPERATIONS = [\"=\", \"<>\", \"isblank\", \"isnotblank\"];\r\nvar AVAILABLE_FIELD_PROPERTIES = [\"caption\", \"customizeText\", \"dataField\", \"dataType\", \"editorTemplate\", \"falseText\", \"editorOptions\", \"filterOperations\", \"format\", \"lookup\", \"trueText\", \"calculateFilterExpression\", \"name\"];\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-text\");\r\nvar FILTER_BUILDER_ITEM_TEXT_PART_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS, \"-part\");\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS, \"-separator\");\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS = \"\".concat(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS, \"-empty\");\r\n\r\nfunction getFormattedValueText(field, value) {\r\n var fieldFormat = field.format || DEFAULT_FORMAT[field.dataType];\r\n return formatHelper.format(value, fieldFormat)\r\n}\r\n\r\nfunction isNegationGroup(group) {\r\n return group && group.length > 1 && \"!\" === group[0] && !isCondition(group)\r\n}\r\nexport function getGroupCriteria(group) {\r\n return isNegationGroup(group) ? group[1] : group\r\n}\r\n\r\nfunction setGroupCriteria(group, criteria) {\r\n if (isNegationGroup(group)) {\r\n group[1] = criteria\r\n } else {\r\n group = criteria\r\n }\r\n return group\r\n}\r\n\r\nfunction convertGroupToNewStructure(group, value) {\r\n if (function(value) {\r\n return -1 !== value.indexOf(\"!\")\r\n }(value)) {\r\n if (!isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = group.slice(0);\r\n group.length = 0;\r\n group.push(\"!\", criteria)\r\n }(group)\r\n }\r\n } else if (isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = getGroupCriteria(group);\r\n group.length = 0;\r\n [].push.apply(group, criteria)\r\n }(group)\r\n }\r\n}\r\nexport function setGroupValue(group, value) {\r\n convertGroupToNewStructure(group, value);\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n value = function(value) {\r\n return -1 === value.indexOf(\"!\") ? value : value.substring(1)\r\n }(value);\r\n ! function(criteria, value) {\r\n for (i = 0; i < criteria.length; i++) {\r\n if (!Array.isArray(criteria[i])) {\r\n criteria[i] = value\r\n }\r\n }\r\n }(criteria, value);\r\n return group\r\n}\r\nexport function getGroupMenuItem(group, availableGroups) {\r\n var groupValue = getGroupValue(group);\r\n return availableGroups.filter(item => item.value === groupValue)[0]\r\n}\r\n\r\nfunction getCriteriaOperation(criteria) {\r\n if (isCondition(criteria)) {\r\n return AND_GROUP_OPERATION\r\n }\r\n var value = \"\";\r\n for (var i = 0; i < criteria.length; i++) {\r\n var item = criteria[i];\r\n if (!Array.isArray(item)) {\r\n if (value && value !== item) {\r\n throw new dataErrors.Error(\"E4019\")\r\n }\r\n if (\"!\" !== item) {\r\n value = item\r\n }\r\n }\r\n }\r\n return value\r\n}\r\nexport function getGroupValue(group) {\r\n var criteria = getGroupCriteria(group);\r\n var value = getCriteriaOperation(criteria);\r\n if (!value) {\r\n value = AND_GROUP_OPERATION\r\n }\r\n if (criteria !== group) {\r\n value = \"!\".concat(value)\r\n }\r\n return value\r\n}\r\n\r\nfunction getDefaultFilterOperations(field) {\r\n return field.lookup && LOOKUP_OPERATIONS || DATATYPE_OPERATIONS[field.dataType || DEFAULT_DATA_TYPE]\r\n}\r\n\r\nfunction containItems(entity) {\r\n return Array.isArray(entity) && entity.length\r\n}\r\nexport function getFilterOperations(field) {\r\n var result = containItems(field.filterOperations) ? field.filterOperations : getDefaultFilterOperations(field);\r\n return extend([], result)\r\n}\r\nexport function getCaptionByOperation(operation, filterOperationDescriptions) {\r\n var operationName = filterOperationsDictionary.getNameByFilterOperation(operation);\r\n return filterOperationDescriptions && filterOperationDescriptions[operationName] ? filterOperationDescriptions[operationName] : operationName\r\n}\r\nexport function getOperationFromAvailable(operation, availableOperations) {\r\n for (var i = 0; i < availableOperations.length; i++) {\r\n if (availableOperations[i].value === operation) {\r\n return availableOperations[i]\r\n }\r\n }\r\n throw new errors.Error(\"E1048\", operation)\r\n}\r\nexport function getCustomOperation(customOperations, name) {\r\n var filteredOperations = customOperations.filter(item => item.name === name);\r\n return filteredOperations.length ? filteredOperations[0] : null\r\n}\r\nexport function getAvailableOperations(field, filterOperationDescriptions, customOperations) {\r\n var filterOperations = getFilterOperations(field);\r\n var isLookupField = !!field.lookup;\r\n customOperations.forEach(customOperation => {\r\n if (!field.filterOperations && -1 === filterOperations.indexOf(customOperation.name)) {\r\n var dataTypes = customOperation && customOperation.dataTypes;\r\n var isOperationForbidden = isLookupField ? !!customOperation.notForLookup : false;\r\n if (!isOperationForbidden && dataTypes && dataTypes.indexOf(field.dataType || DEFAULT_DATA_TYPE) >= 0) {\r\n filterOperations.push(customOperation.name)\r\n }\r\n }\r\n });\r\n return filterOperations.map(operation => {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n return {\r\n icon: customOperation.icon || EMPTY_MENU_ICON,\r\n text: customOperation.caption || captionize(customOperation.name),\r\n value: customOperation.name,\r\n isCustom: true\r\n }\r\n }\r\n return {\r\n icon: filterOperationsDictionary.getIconByFilterOperation(operation) || EMPTY_MENU_ICON,\r\n text: getCaptionByOperation(operation, filterOperationDescriptions),\r\n value: operation\r\n }\r\n })\r\n}\r\nexport function getDefaultOperation(field) {\r\n return field.defaultFilterOperation || getFilterOperations(field)[0]\r\n}\r\nexport function createCondition(field, customOperations) {\r\n var condition = [field.dataField, \"\", \"\"];\r\n var filterOperation = getDefaultOperation(field);\r\n updateConditionByOperation(condition, filterOperation, customOperations);\r\n return condition\r\n}\r\nexport function removeItem(group, item) {\r\n var criteria = getGroupCriteria(group);\r\n var index = criteria.indexOf(item);\r\n criteria.splice(index, 1);\r\n if (1 !== criteria.length) {\r\n criteria.splice(index, 1)\r\n }\r\n return group\r\n}\r\nexport function createEmptyGroup(value) {\r\n var isNegation = isNegationGroupOperation(value);\r\n var groupOperation = isNegation ? getGroupOperationFromNegationOperation(value) : value;\r\n return isNegation ? [\"!\", [groupOperation]] : [groupOperation]\r\n}\r\nexport function isEmptyGroup(group) {\r\n var criteria = getGroupCriteria(group);\r\n if (isCondition(criteria)) {\r\n return false\r\n }\r\n var hasConditions = criteria.some(item => isCondition(item));\r\n return !hasConditions\r\n}\r\nexport function addItem(item, group) {\r\n var criteria = getGroupCriteria(group);\r\n var groupValue = getGroupValue(criteria);\r\n 1 === criteria.length ? criteria.unshift(item) : criteria.push(item, groupValue);\r\n return group\r\n}\r\nexport function getField(dataField, fields) {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].name === dataField) {\r\n return fields[i]\r\n }\r\n if (fields[i].dataField.toLowerCase() === dataField.toLowerCase()) {\r\n return fields[i]\r\n }\r\n }\r\n var extendedFields = getItems(fields, true).filter(item => item.dataField.toLowerCase() === dataField.toLowerCase());\r\n if (extendedFields.length > 0) {\r\n return extendedFields[0]\r\n }\r\n throw new errors.Error(\"E1047\", dataField)\r\n}\r\nexport function isGroup(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length < 2 || Array.isArray(criteria[0]) || Array.isArray(criteria[1])\r\n}\r\nexport function isCondition(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length > 1 && !Array.isArray(criteria[0]) && !Array.isArray(criteria[1])\r\n}\r\n\r\nfunction convertToInnerGroup(group, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n var groupOperation = getCriteriaOperation(group).toLowerCase() || defaultGroupOperation;\r\n var innerGroup = [];\r\n for (var i = 0; i < group.length; i++) {\r\n if (isGroup(group[i])) {\r\n innerGroup.push(convertToInnerStructure(group[i], customOperations, defaultGroupOperation));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n } else if (isCondition(group[i])) {\r\n innerGroup.push(convertToInnerCondition(group[i], customOperations));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n }\r\n if (0 === innerGroup.length) {\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n return innerGroup\r\n}\r\n\r\nfunction conditionHasCustomOperation(condition, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, condition[1]);\r\n return customOperation && customOperation.name === condition[1]\r\n}\r\n\r\nfunction convertToInnerCondition(condition, customOperations) {\r\n if (conditionHasCustomOperation(condition, customOperations)) {\r\n return condition\r\n }\r\n if (condition.length < 3) {\r\n condition[2] = condition[1];\r\n condition[1] = EQUAL_OPERATION\r\n }\r\n return condition\r\n}\r\n\r\nfunction isNegationGroupOperation(operation) {\r\n return -1 !== operation.indexOf(\"not\")\r\n}\r\n\r\nfunction getGroupOperationFromNegationOperation(operation) {\r\n return operation.substring(3).toLowerCase()\r\n}\r\n\r\nfunction appendGroupOperationToCriteria(criteria, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n return isNegation ? [\"!\", criteria, groupOperation] : [criteria, groupOperation]\r\n}\r\n\r\nfunction appendGroupOperationToGroup(group, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n group.push(groupOperation);\r\n var result = group;\r\n if (isNegation) {\r\n result = [\"!\", result]\r\n }\r\n return result\r\n}\r\nexport function convertToInnerStructure(value, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n if (!value) {\r\n return createEmptyGroup(defaultGroupOperation)\r\n }\r\n value = extend(true, [], value);\r\n if (isCondition(value)) {\r\n return appendGroupOperationToCriteria(convertToInnerCondition(value, customOperations), defaultGroupOperation)\r\n }\r\n if (isNegationGroup(value)) {\r\n return [\"!\", isCondition(value[1]) ? appendGroupOperationToCriteria(convertToInnerCondition(value[1], customOperations), defaultGroupOperation) : isNegationGroup(value[1]) ? appendGroupOperationToCriteria(convertToInnerStructure(value[1], customOperations), defaultGroupOperation) : convertToInnerGroup(value[1], customOperations, defaultGroupOperation)]\r\n }\r\n return convertToInnerGroup(value, customOperations, defaultGroupOperation)\r\n}\r\nexport function getNormalizedFields(fields) {\r\n return fields.reduce((result, field) => {\r\n if (isDefined(field.dataField)) {\r\n var normalizedField = {};\r\n for (var key in field) {\r\n if (field[key] && AVAILABLE_FIELD_PROPERTIES.includes(key)) {\r\n normalizedField[key] = field[key]\r\n }\r\n }\r\n normalizedField.defaultCalculateFilterExpression = filterUtils.defaultCalculateFilterExpression;\r\n if (!isDefined(normalizedField.dataType)) {\r\n normalizedField.dataType = DEFAULT_DATA_TYPE\r\n }\r\n if (!isDefined(normalizedField.trueText)) {\r\n normalizedField.trueText = messageLocalization.format(\"dxDataGrid-trueText\")\r\n }\r\n if (!isDefined(normalizedField.falseText)) {\r\n normalizedField.falseText = messageLocalization.format(\"dxDataGrid-falseText\")\r\n }\r\n result.push(normalizedField)\r\n }\r\n return result\r\n }, [])\r\n}\r\n\r\nfunction getConditionFilterExpression(condition, fields, customOperations, target) {\r\n var field = getField(condition[0], fields);\r\n var filterExpression = convertToInnerCondition(condition, customOperations);\r\n var customOperation = customOperations.length && getCustomOperation(customOperations, filterExpression[1]);\r\n if (customOperation && customOperation.calculateFilterExpression) {\r\n return customOperation.calculateFilterExpression.apply(customOperation, [filterExpression[2], field, fields])\r\n }\r\n if (field.createFilterExpression) {\r\n return field.createFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n if (field.calculateFilterExpression) {\r\n return field.calculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n return field.defaultCalculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n}\r\nexport function getFilterExpression(value, fields, customOperations, target) {\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isNegationGroup(value)) {\r\n var _filterExpression = getFilterExpression(value[1], fields, customOperations, target);\r\n return [\"!\", _filterExpression]\r\n }\r\n var criteria = getGroupCriteria(value);\r\n if (isCondition(criteria)) {\r\n return getConditionFilterExpression(criteria, fields, customOperations, target) || null\r\n }\r\n var result = [];\r\n var filterExpression;\r\n var groupValue = getGroupValue(criteria);\r\n for (var i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n filterExpression = getFilterExpression(criteria[i], fields, customOperations, target);\r\n if (filterExpression) {\r\n i && result.push(groupValue);\r\n result.push(filterExpression)\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n filterExpression = getConditionFilterExpression(criteria[i], fields, customOperations, target);\r\n if (filterExpression) {\r\n result.length && result.push(groupValue);\r\n result.push(filterExpression)\r\n }\r\n }\r\n }\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result.length ? result : null\r\n}\r\nexport function getNormalizedFilter(group) {\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n if (0 === criteria.length) {\r\n return null\r\n }\r\n var itemsForRemove = [];\r\n for (i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n var normalizedGroupValue = getNormalizedFilter(criteria[i]);\r\n if (normalizedGroupValue) {\r\n criteria[i] = normalizedGroupValue\r\n } else {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n if (!isValidCondition(criteria[i])) {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n }\r\n }\r\n for (i = 0; i < itemsForRemove.length; i++) {\r\n removeItem(criteria, itemsForRemove[i])\r\n }\r\n if (1 === criteria.length) {\r\n return null\r\n }\r\n criteria.splice(criteria.length - 1, 1);\r\n if (1 === criteria.length) {\r\n group = setGroupCriteria(group, criteria[0])\r\n }\r\n if (0 === group.length) {\r\n return null\r\n }\r\n return group\r\n}\r\nexport function getCurrentLookupValueText(field, value, handler) {\r\n if (\"\" === value) {\r\n handler(\"\");\r\n return\r\n }\r\n var {\r\n lookup: lookup\r\n } = field;\r\n if (lookup.items) {\r\n handler(lookup.calculateCellValue(value) || \"\")\r\n } else {\r\n var lookupDataSource = isFunction(lookup.dataSource) ? lookup.dataSource({}) : lookup.dataSource;\r\n var dataSource = new DataSource(lookupDataSource);\r\n dataSource.loadSingle(lookup.valueExpr, value).done(result => {\r\n var valueText = \"\";\r\n if (result) {\r\n valueText = lookup.displayExpr ? compileGetter(lookup.displayExpr)(result) : result\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText({\r\n value: value,\r\n valueText: valueText\r\n })\r\n }\r\n handler(valueText)\r\n }).fail(() => {\r\n handler(\"\")\r\n })\r\n }\r\n}\r\n\r\nfunction getPrimitiveValueText(field, value, customOperation, target, options) {\r\n var valueText;\r\n if (true === value) {\r\n valueText = field.trueText || messageLocalization.format(\"dxDataGrid-trueText\")\r\n } else if (false === value) {\r\n valueText = field.falseText || messageLocalization.format(\"dxDataGrid-falseText\")\r\n } else {\r\n valueText = getFormattedValueText(field, value)\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText.call(field, {\r\n value: value,\r\n valueText: valueText,\r\n target: target\r\n })\r\n }\r\n if (customOperation && customOperation.customizeText) {\r\n valueText = customOperation.customizeText.call(customOperation, {\r\n value: value,\r\n valueText: valueText,\r\n field: field,\r\n target: target\r\n }, options)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n var options = {\r\n values: value\r\n };\r\n return value.map(v => getPrimitiveValueText(field, v, customOperation, target, options))\r\n}\r\n\r\nfunction checkDefaultValue(value) {\r\n return \"\" === value || null === value\r\n}\r\nexport function getCurrentValueText(field, value, customOperation) {\r\n var target = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"filterBuilder\";\r\n if (checkDefaultValue(value)) {\r\n return \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n var result = new Deferred;\r\n when.apply(this, getArrayValueText(field, value, customOperation, target)).done((function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var text = args.some(item => !checkDefaultValue(item)) ? args.map(item => !checkDefaultValue(item) ? item : \"?\") : \"\";\r\n result.resolve(text)\r\n }));\r\n return result\r\n }\r\n return getPrimitiveValueText(field, value, customOperation, target)\r\n}\r\n\r\nfunction itemExists(plainItems, parentId) {\r\n return plainItems.some(item => item.dataField === parentId)\r\n}\r\n\r\nfunction pushItemAndCheckParent(originalItems, plainItems, item) {\r\n var {\r\n dataField: dataField\r\n } = item;\r\n if (hasParent(dataField)) {\r\n item.parentId = getParentIdFromItemDataField(dataField);\r\n if (!itemExists(plainItems, item.parentId) && !itemExists(originalItems, item.parentId)) {\r\n pushItemAndCheckParent(originalItems, plainItems, {\r\n id: item.parentId,\r\n dataType: \"object\",\r\n dataField: item.parentId,\r\n caption: generateCaptionByDataField(item.parentId, true),\r\n filterOperations: [\"isblank\", \"isnotblank\"],\r\n defaultCalculateFilterExpression: filterUtils.defaultCalculateFilterExpression\r\n })\r\n }\r\n }\r\n plainItems.push(item)\r\n}\r\n\r\nfunction generateCaptionByDataField(dataField, allowHierarchicalFields) {\r\n var caption = \"\";\r\n if (allowHierarchicalFields) {\r\n dataField = dataField.substring(dataField.lastIndexOf(\".\") + 1)\r\n } else if (hasParent(dataField)) {\r\n dataField.split(\".\").forEach((field, index, arr) => {\r\n caption += captionize(field);\r\n if (index !== arr.length - 1) {\r\n caption += \".\"\r\n }\r\n });\r\n return caption\r\n }\r\n return captionize(dataField)\r\n}\r\nexport function getItems(fields, allowHierarchicalFields) {\r\n var items = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n var item = extend(true, {\r\n caption: generateCaptionByDataField(fields[i].dataField, allowHierarchicalFields)\r\n }, fields[i]);\r\n item.id = item.name || item.dataField;\r\n if (allowHierarchicalFields) {\r\n pushItemAndCheckParent(fields, items, item)\r\n } else {\r\n items.push(item)\r\n }\r\n }\r\n return items\r\n}\r\n\r\nfunction hasParent(dataField) {\r\n return -1 !== dataField.lastIndexOf(\".\")\r\n}\r\n\r\nfunction getParentIdFromItemDataField(dataField) {\r\n return dataField.substring(0, dataField.lastIndexOf(\".\"))\r\n}\r\nexport function getCaptionWithParents(item, plainItems) {\r\n if (hasParent(item.dataField)) {\r\n var parentId = getParentIdFromItemDataField(item.dataField);\r\n for (var i = 0; i < plainItems.length; i++) {\r\n if (plainItems[i].dataField === parentId) {\r\n return \"\".concat(getCaptionWithParents(plainItems[i], plainItems), \".\").concat(item.caption)\r\n }\r\n }\r\n }\r\n return item.caption\r\n}\r\nexport function updateConditionByOperation(condition, operation, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n if (false === customOperation.hasValue) {\r\n condition[1] = operation;\r\n condition.length = 2\r\n } else {\r\n condition[1] = operation;\r\n condition[2] = \"\"\r\n }\r\n return condition\r\n }\r\n if (\"isblank\" === operation) {\r\n condition[1] = EQUAL_OPERATION;\r\n condition[2] = null\r\n } else if (\"isnotblank\" === operation) {\r\n condition[1] = NOT_EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n customOperation = getCustomOperation(customOperations, condition[1]);\r\n if (customOperation || 2 === condition.length || null === condition[2]) {\r\n condition[2] = \"\"\r\n }\r\n condition[1] = operation\r\n }\r\n return condition\r\n}\r\nexport function getOperationValue(condition) {\r\n var caption;\r\n if (null === condition[2]) {\r\n if (condition[1] === EQUAL_OPERATION) {\r\n caption = \"isblank\"\r\n } else {\r\n caption = \"isnotblank\"\r\n }\r\n } else {\r\n caption = condition[1]\r\n }\r\n return caption\r\n}\r\nexport function isValidCondition(condition) {\r\n return \"\" !== condition[2]\r\n}\r\nexport function getMergedOperations(customOperations, betweenCaption, context) {\r\n var result = extend(true, [], customOperations);\r\n var betweenIndex = -1;\r\n result.some((customOperation, index) => {\r\n if (\"between\" === customOperation.name) {\r\n betweenIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n if (-1 !== betweenIndex) {\r\n result[betweenIndex] = extend(getConfig(betweenCaption, context), result[betweenIndex])\r\n } else {\r\n result.unshift(getConfig(betweenCaption, context))\r\n }\r\n return result\r\n}\r\n\r\nfunction isMatchedCondition(filter, addedFilterDataField) {\r\n return filter[0] === addedFilterDataField\r\n}\r\nexport function removeFieldConditionsFromFilter(filter, dataField) {\r\n if (!filter || 0 === filter.length) {\r\n return null\r\n }\r\n if (isCondition(filter)) {\r\n var hasMatchedCondition = isMatchedCondition(filter, dataField);\r\n return !hasMatchedCondition ? filter : null\r\n }\r\n return syncConditionIntoGroup(filter, [dataField], false)\r\n}\r\n\r\nfunction syncConditionIntoGroup(filter, addedFilter, canPush) {\r\n var result = [];\r\n filter.forEach(item => {\r\n if (isCondition(item)) {\r\n if (isMatchedCondition(item, addedFilter[0])) {\r\n if (canPush) {\r\n result.push(addedFilter);\r\n canPush = false\r\n } else {\r\n result.splice(result.length - 1, 1)\r\n }\r\n } else {\r\n result.push(item)\r\n }\r\n } else {\r\n (result.length || isGroup(item)) && result.push(item)\r\n }\r\n });\r\n if (0 === result.length) {\r\n return null\r\n }\r\n if (canPush) {\r\n result.push(AND_GROUP_OPERATION);\r\n result.push(addedFilter)\r\n }\r\n return 1 === result.length ? result[0] : result\r\n}\r\nexport function syncFilters(filter, addedFilter) {\r\n if (null === filter || 0 === filter.length) {\r\n return addedFilter\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, addedFilter[0])) {\r\n return addedFilter\r\n }\r\n return [filter, AND_GROUP_OPERATION, addedFilter]\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return [addedFilter, \"and\", filter]\r\n }\r\n return syncConditionIntoGroup(filter, addedFilter, true)\r\n}\r\nexport function getMatchedConditions(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return []\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, dataField)) {\r\n return [filter]\r\n }\r\n return []\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return []\r\n }\r\n var result = filter.filter(item => isCondition(item) && isMatchedCondition(item, dataField));\r\n return result\r\n}\r\nexport function filterHasField(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return false\r\n }\r\n if (isCondition(filter)) {\r\n return filter[0] === dataField\r\n }\r\n return filter.some(item => (isCondition(item) || isGroup(item)) && filterHasField(item, dataField))\r\n}\r\nexport var renderValueText = function($container, value, customOperation) {\r\n if (Array.isArray(value)) {\r\n var lastItemIndex = value.length - 1;\r\n $container.empty();\r\n value.forEach((t, i) => {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_PART_CLASS).text(t).appendTo($container);\r\n if (i !== lastItemIndex) {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS).text(customOperation && customOperation.valueSeparator ? customOperation.valueSeparator : \"|\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS).appendTo($container)\r\n }\r\n })\r\n } else if (value) {\r\n $container.text(value)\r\n } else {\r\n $container.text(messageLocalization.format(\"dxFilterBuilder-enterValueText\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n getFilterExpression,\r\n isCondition,\r\n isGroup,\r\n renderValueText\r\n} from \"../../../filter_builder/m_utils\";\r\n\r\nfunction baseOperation(grid) {\r\n var getFullText = function(itemText, parentText) {\r\n return parentText ? \"\".concat(parentText, \"/\").concat(itemText) : itemText\r\n };\r\n var headerFilterController = grid && grid.getController(\"headerFilter\");\r\n return {\r\n dataTypes: [\"string\", \"date\", \"datetime\", \"number\", \"boolean\", \"object\"],\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var result = [];\r\n var lastIndex = filterValue.length - 1;\r\n filterValue && filterValue.forEach((value, index) => {\r\n if (isCondition(value) || isGroup(value)) {\r\n var filterExpression = getFilterExpression(value, fields, [], \"headerFilter\");\r\n result.push(filterExpression)\r\n } else {\r\n var _filterExpression = getFilterExpression([field.dataField, \"=\", value], fields, [], \"headerFilter\");\r\n result.push(_filterExpression)\r\n }\r\n index !== lastIndex && result.push(\"or\")\r\n });\r\n if (1 === result.length) {\r\n return result[0]\r\n }\r\n return result\r\n },\r\n editorTemplate(conditionInfo, container) {\r\n var div = $(\"<div>\").addClass(\"dx-filterbuilder-item-value-text\").appendTo(container);\r\n var column = extend(true, {}, grid.columnOption(conditionInfo.field.dataField));\r\n renderValueText(div, conditionInfo.text && conditionInfo.text.split(\"|\"));\r\n column.filterType = \"include\";\r\n column.filterValues = conditionInfo.value ? conditionInfo.value.slice() : [];\r\n headerFilterController.showHeaderFilterMenuBase({\r\n columnElement: div,\r\n column: column,\r\n apply() {\r\n value = this.filterValues, void conditionInfo.setValue(value);\r\n var value;\r\n headerFilterController.hideHeaderFilterMenu();\r\n conditionInfo.closeEditor()\r\n },\r\n onHidden() {\r\n conditionInfo.closeEditor()\r\n },\r\n isFilterBuilder: true\r\n });\r\n return container\r\n },\r\n customizeText: function(fieldInfo, options) {\r\n options = options || {};\r\n var {\r\n value: value\r\n } = fieldInfo;\r\n var column = grid.columnOption(fieldInfo.field.dataField);\r\n var headerFilter = column && column.headerFilter;\r\n var lookup = column && column.lookup;\r\n var values = options.values || [value];\r\n if (headerFilter && headerFilter.dataSource || lookup && lookup.dataSource) {\r\n var result = new Deferred;\r\n var itemsDeferred = options.items || new Deferred;\r\n if (!options.items) {\r\n column = extend({}, column, {\r\n filterType: \"include\",\r\n filterValues: values\r\n });\r\n var dataSourceOptions = headerFilterController.getDataSource(column);\r\n dataSourceOptions.paginate = false;\r\n var dataSource = new DataSource(dataSourceOptions);\r\n var key = dataSource.store().key();\r\n if (key) {\r\n var {\r\n values: _values\r\n } = options;\r\n if (_values && _values.length > 1) {\r\n var filter = _values.reduce((result, value) => {\r\n if (result.length) {\r\n result.push(\"or\")\r\n }\r\n result.push([key, \"=\", value]);\r\n return result\r\n }, []);\r\n dataSource.filter(filter)\r\n } else {\r\n dataSource.filter([key, \"=\", fieldInfo.value])\r\n }\r\n } else if (fieldInfo.field.calculateDisplayValue) {\r\n errors.log(\"W1017\")\r\n }\r\n options.items = itemsDeferred;\r\n dataSource.load().done(itemsDeferred.resolve)\r\n }\r\n itemsDeferred.done(items => {\r\n var index = values.indexOf(fieldInfo.value);\r\n result.resolve(function getSelectedItemsTexts(items, parentText) {\r\n var result = [];\r\n items.forEach(item => {\r\n if (item.items) {\r\n var selectedItemsTexts = getSelectedItemsTexts(item.items, getFullText(item.text, parentText));\r\n result = result.concat(selectedItemsTexts)\r\n }\r\n item.selected && result.push(getFullText(item.text, parentText))\r\n });\r\n return result\r\n }(items, null)[index])\r\n });\r\n return result\r\n }\r\n var text = headerFilterController.getHeaderItemText(value, column, 0, grid.option(\"headerFilter\"));\r\n return text\r\n }\r\n }\r\n}\r\nexport function anyOf(grid) {\r\n return extend(baseOperation(grid), {\r\n name: \"anyof\",\r\n icon: \"selectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationAnyOf\")\r\n })\r\n}\r\nexport function noneOf(grid) {\r\n var baseOp = baseOperation(grid);\r\n return extend({}, baseOp, {\r\n calculateFilterExpression(filterValue, field, fields) {\r\n var baseFilter = baseOp.calculateFilterExpression(filterValue, field, fields);\r\n if (!baseFilter || 0 === baseFilter.length) {\r\n return null\r\n }\r\n return \"!\" === baseFilter[0] ? baseFilter : [\"!\", baseFilter]\r\n },\r\n name: \"noneof\",\r\n icon: \"unselectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationNoneOf\")\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_sync.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n addItem,\r\n filterHasField,\r\n getDefaultOperation,\r\n getFilterExpression,\r\n getMatchedConditions,\r\n getNormalizedFilter,\r\n removeFieldConditionsFromFilter,\r\n syncFilters\r\n} from \"../../../filter_builder/m_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n anyOf,\r\n noneOf\r\n} from \"./m_filter_custom_operations\";\r\nvar FILTER_ROW_OPERATIONS = [\"=\", \"<>\", \"<\", \"<=\", \">\", \">=\", \"notcontains\", \"contains\", \"startswith\", \"endswith\", \"between\"];\r\nvar FILTER_TYPES_INCLUDE = \"include\";\r\nvar FILTER_TYPES_EXCLUDE = \"exclude\";\r\n\r\nfunction getColumnIdentifier(column) {\r\n return column.name || column.dataField\r\n}\r\n\r\nfunction checkForErrors(columns) {\r\n columns.forEach(column => {\r\n var identifier = getColumnIdentifier(column);\r\n if (!isDefined(identifier) && column.allowFiltering) {\r\n throw new errors.Error(\"E1049\", column.caption)\r\n }\r\n })\r\n}\r\nvar FilterSyncController = modules.Controller.inherit(function() {\r\n var getEmptyFilterValues = function() {\r\n return {\r\n filterType: FILTER_TYPES_INCLUDE,\r\n filterValues: void 0\r\n }\r\n };\r\n var canSyncHeaderFilterWithFilterRow = function(column) {\r\n var filterValues = column.filterValues || [];\r\n return !filterUtils.getGroupInterval(column) && !(column.headerFilter && column.headerFilter.dataSource) || 1 === filterValues.length && null === filterValues[0]\r\n };\r\n var getConditionFromFilterRow = function(column) {\r\n var value = column.filterValue;\r\n if (isDefined(value)) {\r\n var operation = column.selectedFilterOperation || column.defaultFilterOperation || getDefaultOperation(column);\r\n var filter = [getColumnIdentifier(column), operation, column.filterValue];\r\n return filter\r\n }\r\n return null\r\n };\r\n var getConditionFromHeaderFilter = function(column) {\r\n var selectedOperation;\r\n var value;\r\n var {\r\n filterValues: filterValues\r\n } = column;\r\n if (!filterValues) {\r\n return null\r\n }\r\n if (1 === filterValues.length && canSyncHeaderFilterWithFilterRow(column) && !Array.isArray(filterValues[0])) {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"<>\" : selectedOperation = \"=\";\r\n value = filterValues[0]\r\n } else {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"noneof\" : selectedOperation = \"anyof\";\r\n value = filterValues\r\n }\r\n return [getColumnIdentifier(column), selectedOperation, value]\r\n };\r\n var updateHeaderFilterCondition = function(columnsController, column, headerFilterCondition) {\r\n var headerFilter = function(headerFilterCondition, column) {\r\n if (!headerFilterCondition) {\r\n return getEmptyFilterValues()\r\n }\r\n var filterType;\r\n var selectedFilterOperation = headerFilterCondition[1];\r\n var value = headerFilterCondition[2];\r\n var hasArrayValue = Array.isArray(value);\r\n if (!hasArrayValue) {\r\n if (!canSyncHeaderFilterWithFilterRow(column)) {\r\n return getEmptyFilterValues()\r\n }\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"anyof\":\r\n case \"=\":\r\n filterType = FILTER_TYPES_INCLUDE;\r\n break;\r\n case \"noneof\":\r\n case \"<>\":\r\n filterType = FILTER_TYPES_EXCLUDE;\r\n break;\r\n default:\r\n return getEmptyFilterValues()\r\n }\r\n return {\r\n filterType: filterType,\r\n filterValues: hasArrayValue ? value : [value]\r\n }\r\n }(headerFilterCondition, column);\r\n columnsController.columnOption(getColumnIdentifier(column), headerFilter)\r\n };\r\n var updateFilterRowCondition = function(columnsController, column, condition) {\r\n var filterRowOptions;\r\n var selectedFilterOperation = null === condition || void 0 === condition ? void 0 : condition[1];\r\n var filterValue = null === condition || void 0 === condition ? void 0 : condition[2];\r\n var filterOperations = column.filterOperations || column.defaultFilterOperations;\r\n if ((!filterOperations || filterOperations.indexOf(selectedFilterOperation) >= 0 || selectedFilterOperation === column.defaultFilterOperation) && FILTER_ROW_OPERATIONS.includes(selectedFilterOperation) && null !== filterValue) {\r\n if (selectedFilterOperation === column.defaultFilterOperation && !isDefined(column.selectedFilterOperation)) {\r\n selectedFilterOperation = column.selectedFilterOperation\r\n }\r\n filterRowOptions = {\r\n filterValue: filterValue,\r\n selectedFilterOperation: selectedFilterOperation\r\n }\r\n } else {\r\n filterRowOptions = {\r\n filterValue: void 0,\r\n selectedFilterOperation: void 0\r\n }\r\n }\r\n columnsController.columnOption(getColumnIdentifier(column), filterRowOptions)\r\n };\r\n return {\r\n syncFilterValue() {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var columns = columnsController.getFilteringColumns();\r\n this._skipSyncColumnOptions = true;\r\n columns.forEach(column => {\r\n var filterConditions = getMatchedConditions(that.option(\"filterValue\"), getColumnIdentifier(column));\r\n if (1 === filterConditions.length) {\r\n var filterCondition = filterConditions[0];\r\n updateHeaderFilterCondition(columnsController, column, filterCondition);\r\n updateFilterRowCondition(columnsController, column, filterCondition)\r\n } else {\r\n isDefined(column.filterValues) && updateHeaderFilterCondition(columnsController, column, null);\r\n isDefined(column.filterValue) && updateFilterRowCondition(columnsController, column, null)\r\n }\r\n });\r\n this._skipSyncColumnOptions = false\r\n },\r\n _initSync() {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var dataController = this.getController(\"data\");\r\n var pageIndex = dataController.pageIndex();\r\n checkForErrors(columns);\r\n if (!this.option(\"filterValue\")) {\r\n var filteringColumns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.getFilterValueFromColumns(filteringColumns);\r\n this._silentOption(\"filterValue\", filterValue)\r\n }\r\n this.syncFilterValue();\r\n dataController.pageIndex(pageIndex)\r\n },\r\n init() {\r\n var dataController = this.getController(\"data\");\r\n if (dataController.isFilterSyncActive()) {\r\n if (this.getController(\"columns\").isAllDataTypesDefined()) {\r\n this._initSync()\r\n } else {\r\n dataController.dataSourceChanged.add(() => this._initSync())\r\n }\r\n }\r\n },\r\n _getSyncFilterRow(filterValue, column) {\r\n var filter = getConditionFromFilterRow(column);\r\n if (isDefined(filter)) {\r\n return syncFilters(filterValue, filter)\r\n }\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n },\r\n _getSyncHeaderFilter(filterValue, column) {\r\n var filter = getConditionFromHeaderFilter(column);\r\n if (filter) {\r\n return syncFilters(filterValue, filter)\r\n }\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n },\r\n getFilterValueFromColumns(columns) {\r\n if (!this.getController(\"data\").isFilterSyncActive()) {\r\n return null\r\n }\r\n var filterValue = [\"and\"];\r\n columns && columns.forEach(column => {\r\n var headerFilter = getConditionFromHeaderFilter(column);\r\n var filterRow = getConditionFromFilterRow(column);\r\n headerFilter && addItem(headerFilter, filterValue);\r\n filterRow && addItem(filterRow, filterValue)\r\n });\r\n return getNormalizedFilter(filterValue)\r\n },\r\n syncFilterRow(column) {\r\n this.option(\"filterValue\", this._getSyncFilterRow(this.option(\"filterValue\"), column))\r\n },\r\n syncHeaderFilter(column) {\r\n this.option(\"filterValue\", this._getSyncHeaderFilter(this.option(\"filterValue\"), column))\r\n },\r\n getCustomFilterOperations() {\r\n var filterBuilderCustomOperations = this.option(\"filterBuilder.customOperations\") || [];\r\n return [anyOf(this.component), noneOf(this.component)].concat(filterBuilderCustomOperations)\r\n },\r\n publicMethods: () => [\"getCustomFilterOperations\"]\r\n }\r\n}());\r\nvar DataControllerFilterSyncExtender = {\r\n isFilterSyncActive() {\r\n var filterSyncEnabledValue = this.option(\"filterSyncEnabled\");\r\n return \"auto\" === filterSyncEnabledValue ? this.option(\"filterPanel.visible\") : filterSyncEnabledValue\r\n },\r\n skipCalculateColumnFilters() {\r\n var filterSyncController = this.getController(\"filterSync\");\r\n return (isDefined(this.option(\"filterValue\")) || filterSyncController._skipSyncColumnOptions) && this.isFilterSyncActive()\r\n },\r\n _calculateAdditionalFilter() {\r\n if (false === this.option(\"filterPanel.filterEnabled\")) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.option(\"filterValue\");\r\n if (this.isFilterSyncActive()) {\r\n var currentColumnForHeaderFilter = this.getController(\"headerFilter\").getCurrentColumn();\r\n var currentColumnForFilterRow = this.getController(\"applyFilter\").getCurrentColumnForFiltering();\r\n var currentColumn = currentColumnForHeaderFilter || currentColumnForFilterRow;\r\n var needRemoveCurrentColumnFilter = currentColumnForHeaderFilter || isDefined(null === currentColumnForFilterRow || void 0 === currentColumnForFilterRow ? void 0 : currentColumnForFilterRow.filterValue);\r\n if (needRemoveCurrentColumnFilter && filterValue) {\r\n filterValue = removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(currentColumn))\r\n }\r\n }\r\n var customOperations = this.getController(\"filterSync\").getCustomFilterOperations();\r\n var calculatedFilterValue = getFilterExpression(filterValue, columns, customOperations, \"filterBuilder\");\r\n if (calculatedFilterValue) {\r\n filters.push(calculatedFilterValue)\r\n }\r\n return gridCoreUtils.combineFilters(filters)\r\n },\r\n _parseColumnPropertyName(fullName) {\r\n var matched = fullName.match(/.*\\.(.*)/);\r\n if (matched) {\r\n return matched[1]\r\n }\r\n return null\r\n },\r\n clearFilter(filterName) {\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n if (\"filterValue\" === filterName) {\r\n this.option(\"filterValue\", null)\r\n }\r\n this.callBase(filterName)\r\n } else {\r\n this.option(\"filterValue\", null);\r\n this.callBase()\r\n }\r\n this.component.endUpdate()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._applyFilter();\r\n this.isFilterSyncActive() && this.getController(\"filterSync\").syncFilterValue();\r\n args.handled = true;\r\n break;\r\n case \"filterSyncEnabled\":\r\n args.handled = true;\r\n break;\r\n case \"columns\":\r\n if (this.isFilterSyncActive()) {\r\n var column = this.getController(\"columns\").getColumnByPath(args.fullName);\r\n var filterSyncController = this.getController(\"filterSync\");\r\n if (column && !filterSyncController._skipSyncColumnOptions) {\r\n var propertyName = this._parseColumnPropertyName(args.fullName);\r\n filterSyncController._skipSyncColumnOptions = true;\r\n if (\"filterType\" === propertyName) {\r\n if (FILTER_TYPES_EXCLUDE === args.value || FILTER_TYPES_EXCLUDE === args.previousValue) {\r\n filterSyncController.syncHeaderFilter(column)\r\n }\r\n } else if (\"filterValues\" === propertyName) {\r\n filterSyncController.syncHeaderFilter(column)\r\n } else if ([\"filterValue\", \"selectedFilterOperation\"].includes(propertyName)) {\r\n filterSyncController.syncFilterRow(column, column.filterValue)\r\n }\r\n filterSyncController._skipSyncColumnOptions = false\r\n }\r\n }\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _applyFilter() {\r\n var filterSyncController = this.getController(\"filterSync\");\r\n if (filterSyncController._skipSyncColumnOptions) {\r\n return (new Deferred).resolve()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n};\r\nvar ColumnHeadersViewFilterSyncExtender = {\r\n _isHeaderFilterEmpty(column) {\r\n if (this.getController(\"data\").isFilterSyncActive()) {\r\n return !filterHasField(this.option(\"filterValue\"), getColumnIdentifier(column))\r\n }\r\n return this.callBase(column)\r\n },\r\n _needUpdateFilterIndicators() {\r\n return !this.getController(\"data\").isFilterSyncActive()\r\n },\r\n optionChanged(args) {\r\n if (\"filterValue\" === args.name) {\r\n this._updateHeaderFilterIndicators()\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nexport var filterSyncModule = {\r\n defaultOptions: () => ({\r\n filterValue: null,\r\n filterSyncEnabled: \"auto\"\r\n }),\r\n controllers: {\r\n filterSync: FilterSyncController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterSyncExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterSyncExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_sync.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterSyncModule\r\n} from \"../../../grids/grid_core/filter/m_filter_sync\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterSync\", filterSyncModule);\r\n","/**\r\n * DevExtreme (esm/__internal/filter_builder/m_filter_builder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../../ui/overlay/utils\";\r\nimport Popup from \"../../ui/popup\";\r\nimport EditorFactoryMixin from \"../../ui/shared/ui.editor_factory_mixin\";\r\nimport TreeView from \"../../ui/tree_view\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n addItem,\r\n convertToInnerStructure,\r\n createCondition,\r\n createEmptyGroup,\r\n getAvailableOperations,\r\n getCaptionWithParents,\r\n getCurrentLookupValueText,\r\n getCurrentValueText,\r\n getCustomOperation,\r\n getDefaultOperation,\r\n getField,\r\n getFilterExpression,\r\n getGroupCriteria,\r\n getGroupMenuItem,\r\n getGroupValue,\r\n getItems,\r\n getMergedOperations,\r\n getNormalizedFields,\r\n getNormalizedFilter,\r\n getOperationFromAvailable,\r\n getOperationValue,\r\n isCondition,\r\n isGroup,\r\n removeItem,\r\n renderValueText,\r\n setGroupValue,\r\n updateConditionByOperation\r\n} from \"./m_utils\";\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-group\");\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-item\");\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-content\");\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-operations\");\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_GROUP_CLASS, \"-operation\");\r\nvar FILTER_BUILDER_ACTION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-action\");\r\nvar FILTER_BUILDER_IMAGE_CLASS = \"\".concat(FILTER_BUILDER_ACTION_CLASS, \"-icon\");\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-text\");\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-field\");\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-operation\");\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-value\");\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-item-value-text\");\r\nvar FILTER_BUILDER_OVERLAY_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-overlay\");\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-operations\");\r\nvar FILTER_BUILDER_FIELDS_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-fields\");\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-add-condition\");\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = \"\".concat(FILTER_BUILDER_CLASS, \"-menu-custom-operation\");\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = Class.inherit(EditorFactoryMixin);\r\nclass FilterBuilder extends Widget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n getFilterExpression() {\r\n var fields = this._getNormalizedFields();\r\n var value = extend(true, [], this._model);\r\n return getFilterExpression(getNormalizedFilter(value), fields, this._customOperations, SOURCE)\r\n }\r\n _getNormalizedFields() {\r\n return getNormalizedFields(this.option(\"fields\"))\r\n }\r\n _updateFilter() {\r\n this._disableInvalidateForValue = true;\r\n var value = extend(true, [], this._model);\r\n var normalizedValue = getNormalizedFilter(value);\r\n var oldValue = getNormalizedFilter(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n }\r\n _init() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n super._init()\r\n }\r\n _initEditorFactory() {\r\n this._editorFactory = new EditorFactory\r\n }\r\n _initCustomOperations() {\r\n this._customOperations = getMergedOperations(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n }\r\n _getDefaultGroupOperation() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this.option(\"groupOperations\")) || void 0 === _a ? void 0 : _a[0]) && void 0 !== _b ? _b : OPERATORS.and\r\n }\r\n _getModel(value) {\r\n return convertToInnerStructure(value, this._customOperations, this._getDefaultGroupOperation())\r\n }\r\n _initModel() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n }\r\n _initActions() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach(action => {\r\n var actionConfig = extend({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n })\r\n }\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n super._initMarkup();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n }\r\n _createConditionElement(condition, parent) {\r\n return $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n }\r\n _createGroupElementByCriteria(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\".concat(FILTER_BUILDER_GROUP_CONTENT_CLASS));\r\n var groupCriteria = getGroupCriteria(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if (isGroup(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else if (isCondition(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n return $group\r\n }\r\n _createGroupElement(criteria, parent, groupLevel) {\r\n var $groupItem = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(() => {\r\n removeItem(parent, criteria);\r\n $group.remove();\r\n this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(() => {\r\n var newGroup = createEmptyGroup(this._getDefaultGroupOperation());\r\n addItem(newGroup, criteria);\r\n this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n this._updateFilter()\r\n }, () => {\r\n var field = this.option(\"fields\")[0];\r\n var newCondition = createCondition(field, this._customOperations);\r\n addItem(newCondition, criteria);\r\n this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n }\r\n _createButton(caption) {\r\n return $(\"<div>\").text(caption)\r\n }\r\n _createGroupOperationButton(criteria) {\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = getGroupMenuItem(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: e => {\r\n if (groupMenuItem !== e.itemData) {\r\n setGroupValue(criteria, e.itemData.value);\r\n $operationButton.text(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n }\r\n _createButtonWithMenu(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\".concat(ACTIVE_CLASS)).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n extend(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: (handler = options.menu.onItemClick, function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }),\r\n onHiding() {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: \"\".concat(position, \" top\"),\r\n at: \"\".concat(position, \" bottom\"),\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden() {\r\n removeMenu()\r\n },\r\n cssClass: \"\".concat(FILTER_BUILDER_OVERLAY_CLASS, \" \").concat(options.menu.cssClass),\r\n rtlEnabled: rtlEnabled\r\n });\r\n var handler;\r\n options.popup = {\r\n onShown(info) {\r\n var treeViewElement = $(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n eventsEngine.on(treeViewElement, \"keyup keydown\", e => {\r\n var keyName = normalizeKeyName(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n eventsEngine.trigger(options.menu.position.of, \"focus\")\r\n }\r\n });\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, () => {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n });\r\n return $button\r\n }\r\n _hasValueButton(condition) {\r\n var customOperation = getCustomOperation(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n }\r\n _createOperationButtonWithMenu(condition, field) {\r\n var that = this;\r\n var availableOperations = getAvailableOperations(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = getOperationFromAvailable(getOperationValue(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered(e) {\r\n e.itemData.isCustom && $(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: e => {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n updateConditionByOperation(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\".concat(FILTER_BUILDER_ITEM_VALUE_CLASS));\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.html(currentOperation.text);\r\n this._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n }\r\n _createOperationAndValueButtons(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n }\r\n _createFieldButtonWithMenu(fields, condition, field) {\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = getItems(fields, allowHierarchicalFields);\r\n var item = getField(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? getCaptionWithParents(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: e => {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n updateConditionByOperation(condition, getDefaultOperation(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\".concat(FILTER_BUILDER_ITEM_TEXT_CLASS)).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.html(caption);\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n }\r\n _createConditionItem(condition, parent) {\r\n var $item = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = getField(condition[0], fields);\r\n this._createRemoveButton(() => {\r\n removeItem(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n this._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n }\r\n _getGroupOperations(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [getGroupValue(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(operation => ({\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }))\r\n }\r\n _createRemoveButton(handler) {\r\n var $removeButton = $(\"<div>\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n }\r\n _createAddButton(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if (isDefined(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: messageLocalization.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: messageLocalization.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n }\r\n _createValueText(item, field, $container) {\r\n var that = this;\r\n var $text = $(\"<div>\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = getCustomOperation(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, result => {\r\n renderValueText($text, result)\r\n })\r\n } else {\r\n when(getCurrentValueText(field, value, customOperation)).done(result => {\r\n renderValueText($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, e => {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n });\r\n return $text\r\n }\r\n _updateConditionValue(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n }\r\n _addDocumentKeyUp($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = domAdapter.getDocument();\r\n var documentKeyUpHandler = e => {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n eventsEngine.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n eventsEngine.on(input, \"compositionstart\", () => {\r\n isComposing = true\r\n });\r\n eventsEngine.on(input, \"compositionend\", () => {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n eventsEngine.on(input, \"keydown\", event => {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n }\r\n _addDocumentClick($editor, closeEditorFunc) {\r\n var document = domAdapter.getDocument();\r\n var documentClickHandler = e => {\r\n if (!this._isFocusOnEditorParts($editor, e.target)) {\r\n eventsEngine.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n eventsEngine.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n }\r\n _isFocusOnEditorParts($editor, target) {\r\n var activeElement = target || domAdapter.getActiveElement();\r\n return $(activeElement).closest($editor.children()).length || $(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n }\r\n _removeEvents() {\r\n var document = domAdapter.getDocument();\r\n isDefined(this._documentKeyUpHandler) && eventsEngine.off(document, \"keyup\", this._documentKeyUpHandler);\r\n isDefined(this._documentClickHandler) && eventsEngine.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n }\r\n _dispose() {\r\n this._removeEvents();\r\n super._dispose()\r\n }\r\n _createValueEditorWithEvents(item, field, $container) {\r\n var value = item[2];\r\n var createValueText = () => {\r\n $container.empty();\r\n this._removeEvents();\r\n return this._createValueText(item, field, $container)\r\n };\r\n var closeEditor = () => {\r\n this._updateConditionValue(item, value, () => {\r\n createValueText()\r\n })\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: getOperationValue(item),\r\n setValue(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n eventsEngine.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (keyName === TAB_KEY) {\r\n if (this._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n this._updateConditionValue(item, value, () => {\r\n createValueText();\r\n if (e.shiftKey) {\r\n eventsEngine.trigger($container.prev(), \"focus\")\r\n }\r\n })\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n this._updateConditionValue(item, value, () => {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n })\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n }\r\n _createValueButton(item, field) {\r\n var $valueButton = $(\"<div>\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n }\r\n _createValueEditor($container, field, options) {\r\n var $editor = $(\"<div>\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = getCustomOperation(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: extend({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, extend({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n }\r\n _createPopupWithTreeView(options, $container) {\r\n var that = this;\r\n var $popup = $(\"<div>\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, Popup, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate(contentElement) {\r\n var $menuContainer = $(\"<div>\").appendTo(contentElement);\r\n that._createComponent($menuContainer, TreeView, options.menu);\r\n this.repaint()\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(options.menu.position.of),\r\n visible: true,\r\n focusStateEnabled: false,\r\n hideOnParentScroll: this.option(\"closePopupOnTargetScroll\"),\r\n hideOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false,\r\n _wrapperClassExternal: options.menu.cssClass\r\n })\r\n }\r\n _subscribeOnClickAndEnterKey($button, handler) {\r\n eventsEngine.on($button, \"dxclick\", handler);\r\n eventsEngine.on($button, \"keyup\", e => {\r\n if (normalizeKeyName(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n })\r\n }\r\n}\r\nregisterComponent(\"dxFilterBuilder\", FilterBuilder);\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport FilterBuilder from \"../__internal/filter_builder/m_filter_builder\";\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_builder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport FilterBuilder from \"../../../../ui/filter_builder\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport ScrollView from \"../../../../ui/scroll_view\";\r\nimport {\r\n restoreFocus\r\n} from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nvar FilterBuilderView = modules.View.inherit({\r\n _renderCore() {\r\n this._updatePopupOptions()\r\n },\r\n _updatePopupOptions() {\r\n if (this.option(\"filterBuilderPopup.visible\")) {\r\n this._initPopup()\r\n } else if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.hide()\r\n }\r\n },\r\n _disposePopup() {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.dispose();\r\n this._filterBuilderPopup = void 0\r\n }\r\n if (this._filterBuilder) {\r\n this._filterBuilder.dispose();\r\n this._filterBuilder = void 0\r\n }\r\n },\r\n _initPopup() {\r\n var that = this;\r\n that._disposePopup();\r\n that._filterBuilderPopup = that._createComponent(that.element(), Popup, extend({\r\n title: messageLocalization.format(\"dxDataGrid-filterBuilderPopupTitle\"),\r\n contentTemplate: $contentElement => that._getPopupContentTemplate($contentElement),\r\n onOptionChanged(args) {\r\n if (\"visible\" === args.name) {\r\n that.option(\"filterBuilderPopup.visible\", args.value)\r\n }\r\n },\r\n toolbarItems: that._getPopupToolbarItems()\r\n }, that.option(\"filterBuilderPopup\"), {\r\n onHidden() {\r\n restoreFocus(that);\r\n that._disposePopup()\r\n }\r\n }))\r\n },\r\n _getPopupContentTemplate(contentElement) {\r\n var $contentElement = $(contentElement);\r\n var $filterBuilderContainer = $(\"<div>\").appendTo($(contentElement));\r\n this._filterBuilder = this._createComponent($filterBuilderContainer, FilterBuilder, extend({\r\n value: this.option(\"filterValue\"),\r\n fields: this.getController(\"columns\").getFilteringColumns()\r\n }, this.option(\"filterBuilder\"), {\r\n customOperations: this.getController(\"filterSync\").getCustomFilterOperations()\r\n }));\r\n this._createComponent($contentElement, ScrollView, {\r\n direction: \"both\"\r\n })\r\n },\r\n _getPopupToolbarItems() {\r\n var that = this;\r\n return [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"OK\"),\r\n onClick() {\r\n var filter = that._filterBuilder.option(\"value\");\r\n that.option(\"filterValue\", filter);\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"Cancel\"),\r\n onClick() {\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }]\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterBuilder\":\r\n case \"filterBuilderPopup\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var filterBuilderModule = {\r\n defaultOptions: () => ({\r\n filterBuilder: {\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n },\r\n filterBuilderPopup: {}\r\n }),\r\n views: {\r\n filterBuilderView: FilterBuilderView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_builder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterBuilderModule\r\n} from \"../../../grids/grid_core/filter/m_filter_builder\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterBuilder\", filterBuilderModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/filter/m_filter_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport CheckBox from \"../../../../ui/check_box\";\r\nimport {\r\n getCaptionByOperation,\r\n getCurrentLookupValueText,\r\n getCurrentValueText,\r\n getCustomOperation,\r\n getField,\r\n getGroupValue,\r\n isCondition,\r\n isGroup\r\n} from \"../../../filter_builder/m_utils\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridUtils from \"../m_utils\";\r\nvar FILTER_PANEL_CLASS = \"filter-panel\";\r\nvar FILTER_PANEL_TEXT_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-text\");\r\nvar FILTER_PANEL_CHECKBOX_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-checkbox\");\r\nvar FILTER_PANEL_CLEAR_FILTER_CLASS = \"\".concat(FILTER_PANEL_CLASS, \"-clear-filter\");\r\nvar FILTER_PANEL_LEFT_CONTAINER = \"\".concat(FILTER_PANEL_CLASS, \"-left\");\r\nvar FILTER_PANEL_TARGET = \"filterPanel\";\r\nvar FilterPanelView = modules.View.inherit({\r\n isVisible() {\r\n return this.option(\"filterPanel.visible\") && this.getController(\"data\").dataSource()\r\n },\r\n init() {\r\n this.getController(\"data\").dataSourceChanged.add(() => this.render());\r\n this._columnsController = this.getController(\"columns\")\r\n },\r\n _renderCore() {\r\n var $element = this.element();\r\n $element.empty();\r\n var isColumnsDefined = !!this._columnsController.getColumns().length;\r\n if (!isColumnsDefined) {\r\n return\r\n }\r\n $element.addClass(this.addWidgetPrefix(FILTER_PANEL_CLASS));\r\n var $leftContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_LEFT_CONTAINER)).appendTo($element);\r\n this._renderFilterBuilderText($element, $leftContainer)\r\n },\r\n _renderFilterBuilderText($element, $leftContainer) {\r\n var $filterElement = this._getFilterElement();\r\n var $textElement = this._getTextElement();\r\n if (this.option(\"filterValue\") || this._filterValueBuffer) {\r\n var $checkElement = this._getCheckElement();\r\n var $removeButtonElement = this._getRemoveButtonElement();\r\n $leftContainer.append($checkElement).append($filterElement).append($textElement);\r\n $element.append($removeButtonElement);\r\n return\r\n }\r\n $leftContainer.append($filterElement).append($textElement)\r\n },\r\n _getCheckElement() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_CHECKBOX_CLASS));\r\n that._createComponent($element, CheckBox, {\r\n value: that.option(\"filterPanel.filterEnabled\"),\r\n onValueChanged(e) {\r\n that.option(\"filterPanel.filterEnabled\", e.value)\r\n }\r\n });\r\n $element.attr(\"title\", this.option(\"filterPanel.texts.filterEnabledHint\"));\r\n return $element\r\n },\r\n _getFilterElement() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(\"dx-icon-filter\");\r\n eventsEngine.on($element, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $element, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _getTextElement() {\r\n var that = this;\r\n var $textElement = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_TEXT_CLASS));\r\n var filterText;\r\n var filterValue = that.option(\"filterValue\");\r\n if (filterValue) {\r\n when(that.getFilterText(filterValue, that.getController(\"filterSync\").getCustomFilterOperations())).done(filterText => {\r\n var customizeText = that.option(\"filterPanel.customizeText\");\r\n if (customizeText) {\r\n var customText = customizeText({\r\n component: that.component,\r\n filterValue: filterValue,\r\n text: filterText\r\n });\r\n if (\"string\" === typeof customText) {\r\n filterText = customText\r\n }\r\n }\r\n $textElement.text(filterText)\r\n })\r\n } else {\r\n filterText = that.option(\"filterPanel.texts.createFilter\");\r\n $textElement.text(filterText)\r\n }\r\n eventsEngine.on($textElement, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $textElement, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($textElement);\r\n return $textElement\r\n },\r\n _showFilterBuilder() {\r\n this.option(\"filterBuilderPopup.visible\", true)\r\n },\r\n _getRemoveButtonElement() {\r\n var that = this;\r\n var clearFilterValue = () => that.option(\"filterValue\", null);\r\n var $element = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_CLEAR_FILTER_CLASS)).text(that.option(\"filterPanel.texts.clearFilter\"));\r\n eventsEngine.on($element, \"click\", clearFilterValue);\r\n registerKeyboardAction(\"filterPanel\", this, $element, void 0, clearFilterValue);\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _addTabIndexToElement($element) {\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n var tabindex = this.option(\"tabindex\") || 0;\r\n $element.attr(\"tabindex\", tabindex)\r\n }\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._invalidate();\r\n this.option(\"filterPanel.filterEnabled\", true);\r\n args.handled = true;\r\n break;\r\n case \"filterPanel\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getConditionText(fieldText, operationText, valueText) {\r\n var result = \"[\".concat(fieldText, \"] \").concat(operationText);\r\n if (isDefined(valueText)) {\r\n result += valueText\r\n }\r\n return result\r\n },\r\n _getValueMaskedText: value => Array.isArray(value) ? \"('\".concat(value.join(\"', '\"), \"')\") : \" '\".concat(value, \"'\"),\r\n _getValueText(field, customOperation, value) {\r\n var deferred = new Deferred;\r\n var hasCustomOperation = customOperation && customOperation.customizeText;\r\n if (isDefined(value) || hasCustomOperation) {\r\n if (!hasCustomOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n } else {\r\n var displayValue = Array.isArray(value) ? value : gridUtils.getDisplayValue(field, value, null);\r\n when(getCurrentValueText(field, displayValue, customOperation, FILTER_PANEL_TARGET)).done(data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n }\r\n } else {\r\n deferred.resolve(\"\")\r\n }\r\n return deferred.promise()\r\n },\r\n getConditionText(filterValue, options) {\r\n var that = this;\r\n var operation = filterValue[1];\r\n var deferred = new Deferred;\r\n var customOperation = getCustomOperation(options.customOperations, operation);\r\n var operationText;\r\n var field = getField(filterValue[0], options.columns);\r\n var fieldText = field.caption || \"\";\r\n var value = filterValue[2];\r\n if (customOperation) {\r\n operationText = customOperation.caption || captionize(customOperation.name)\r\n } else if (null === value) {\r\n operationText = getCaptionByOperation(\"=\" === operation ? \"isblank\" : \"isnotblank\", options.filterOperationDescriptions)\r\n } else {\r\n operationText = getCaptionByOperation(operation, options.filterOperationDescriptions)\r\n }\r\n this._getValueText(field, customOperation, value).done(valueText => {\r\n deferred.resolve(that._getConditionText(fieldText, operationText, valueText))\r\n });\r\n return deferred\r\n },\r\n getGroupText(filterValue, options, isInnerGroup) {\r\n var that = this;\r\n var result = new Deferred;\r\n var textParts = [];\r\n var groupValue = getGroupValue(filterValue);\r\n filterValue.forEach(item => {\r\n if (isCondition(item)) {\r\n textParts.push(that.getConditionText(item, options))\r\n } else if (isGroup(item)) {\r\n textParts.push(that.getGroupText(item, options, true))\r\n }\r\n });\r\n when.apply(this, textParts).done((function() {\r\n var text;\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (groupValue.startsWith(\"!\")) {\r\n var groupText = options.groupOperationDescriptions[\"not\".concat(groupValue.substring(1, 2).toUpperCase()).concat(groupValue.substring(2))].split(\" \");\r\n text = \"\".concat(groupText[0], \" \").concat(args[0])\r\n } else {\r\n text = args.join(\" \".concat(options.groupOperationDescriptions[groupValue], \" \"))\r\n }\r\n if (isInnerGroup) {\r\n text = \"(\".concat(text, \")\")\r\n }\r\n result.resolve(text)\r\n }));\r\n return result\r\n },\r\n getFilterText(filterValue, customOperations) {\r\n var options = {\r\n customOperations: customOperations,\r\n columns: this.getController(\"columns\").getFilteringColumns(),\r\n filterOperationDescriptions: this.option(\"filterBuilder.filterOperationDescriptions\"),\r\n groupOperationDescriptions: this.option(\"filterBuilder.groupOperationDescriptions\")\r\n };\r\n return isCondition(filterValue) ? this.getConditionText(filterValue, options) : this.getGroupText(filterValue, options)\r\n }\r\n});\r\nexport var filterPanelModule = {\r\n defaultOptions: () => ({\r\n filterPanel: {\r\n visible: false,\r\n filterEnabled: true,\r\n texts: {\r\n createFilter: messageLocalization.format(\"dxDataGrid-filterPanelCreateFilter\"),\r\n clearFilter: messageLocalization.format(\"dxDataGrid-filterPanelClearFilter\"),\r\n filterEnabledHint: messageLocalization.format(\"dxDataGrid-filterPanelFilterEnabledHint\")\r\n }\r\n }\r\n }),\r\n views: {\r\n filterPanelView: FilterPanelView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"filterPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/filter_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterPanelModule\r\n} from \"../../../grids/grid_core/filter/m_filter_panel\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterPanel\", filterPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/search/m_search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../../../core/utils/data\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n var _a;\r\n return !!(null !== (_a = column.allowSearch) && void 0 !== _a ? _a : column.allowFiltering)\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nvar dataController = base => class extends base {\r\n publicMethods() {\r\n return super.publicMethods().concat([\"searchByText\"])\r\n }\r\n _calculateAdditionalFilter() {\r\n var filter = super._calculateAdditionalFilter();\r\n var searchFilter = this.calculateSearchFilter(this.option(\"searchPanel.text\"));\r\n return gridCoreUtils.combineFilters([filter, searchFilter])\r\n }\r\n searchByText(text) {\r\n this.option(\"searchPanel.text\", text)\r\n }\r\n optionChanged(args) {\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n calculateSearchFilter(text) {\r\n var i;\r\n var column;\r\n var columns = this._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = this.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = compileGetter(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n dataQuery(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n if (0 === filters.length) {\r\n return [\"!\"]\r\n }\r\n return gridCoreUtils.combineFilters(filters, \"or\")\r\n }\r\n};\r\nvar headerPanel = Base => class extends Base {\r\n _getToolbarItems() {\r\n var items = super._getToolbarItems();\r\n return this._prepareSearchItem(items)\r\n }\r\n _prepareSearchItem(items) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var searchPanelOptions = this.option(\"searchPanel\");\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template(data, index, container) {\r\n var $search = $(\"<div>\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": messageLocalization.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n }\r\n getSearchTextEditor() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\".concat(that.addWidgetPrefix(SEARCH_PANEL_CLASS))).filter((function() {\r\n return $(this).closest(\".\".concat(that.addWidgetPrefix(HEADER_PANEL_CLASS))).is($element)\r\n }));\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n }\r\n isVisible() {\r\n var searchPanelOptions = this.option(\"searchPanel\");\r\n return super.isVisible() || !!(null === searchPanelOptions || void 0 === searchPanelOptions ? void 0 : searchPanelOptions.visible)\r\n }\r\n optionChanged(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n super.optionChanged(args)\r\n }\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n init() {\r\n super.init.apply(this, arguments);\r\n this._searchParams = [];\r\n this._dataController = this.getController(\"data\")\r\n }\r\n _getFormattedSearchText(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"search\");\r\n return gridCoreUtils.formatValue(value, formatOptions)\r\n }\r\n _getStringNormalizer() {\r\n var _a, _b, _c, _d;\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n var dataSource = null === (_b = null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.getDataSource) || void 0 === _b ? void 0 : _b.call(_a);\r\n var langParams = null === (_d = null === (_c = null === dataSource || void 0 === dataSource ? void 0 : dataSource.loadOptions) || void 0 === _c ? void 0 : _c.call(dataSource)) || void 0 === _d ? void 0 : _d.langParams;\r\n return str => toComparable(str, isCaseSensitive, langParams)\r\n }\r\n _findHighlightingTextNodes(column, cellElement, searchText) {\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n var resultTextNodes = [];\r\n if (!$parent.length) {\r\n $parent = $(\"<div>\").append(cellElement)\r\n } else if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n $items = (null === $items || void 0 === $items ? void 0 : $items.length) ? $items : $parent.find(\"*\");\r\n $items.each((_, element) => {\r\n var _a, _b;\r\n var $contents = $(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n var normalizedText = stringNormalizer(null !== (_b = null !== (_a = node.textContent) && void 0 !== _a ? _a : node.nodeValue) && void 0 !== _b ? _b : \"\");\r\n if (normalizedText.includes(normalizedSearchText)) {\r\n resultTextNodes.push(node)\r\n }\r\n }\r\n }\r\n });\r\n return resultTextNodes\r\n }\r\n _highlightSearchTextCore($textNode, searchText) {\r\n var $searchTextSpan = $(\"<span>\").addClass(this.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = $(domAdapter.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return this._highlightSearchTextCore($textNode, searchText)\r\n }\r\n }\r\n _highlightSearchText(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n textNodes.forEach(textNode => {\r\n if (isEquals) {\r\n if (stringNormalizer($(textNode).text()) === stringNormalizer(null !== searchText && void 0 !== searchText ? searchText : \"\")) {\r\n $(textNode).replaceWith($(\"<span>\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text($(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore($(textNode), searchText)\r\n }\r\n })\r\n }\r\n }\r\n _renderCore() {\r\n var deferred = super._renderCore.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option(\"dataRowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(() => {\r\n this._highlightSearchText(this.getTableElement())\r\n })\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n return deferred\r\n }\r\n _updateCell($cell, parameters) {\r\n var {\r\n column: column\r\n } = parameters;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(() => {\r\n this._searchParams.forEach(params => {\r\n this._highlightSearchText.apply(this, params)\r\n });\r\n this._searchParams = []\r\n })\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n super._updateCell($cell, parameters)\r\n }\r\n dispose() {\r\n clearTimeout(this._highlightTimer);\r\n super.dispose()\r\n }\r\n};\r\nexport var searchModule = {\r\n defaultOptions: () => ({\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: messageLocalization.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: dataController\r\n },\r\n views: {\r\n headerPanel: headerPanel,\r\n rowsView: rowsView\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n searchModule\r\n} from \"../../../grids/grid_core/search/m_search\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"search\", searchModule);\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/grid_pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Component from \"./common/component\";\r\nexport class GridPagerWrapper extends Component {\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"pageIndex\":\r\n var pageIndexChanged = this.option(\"pageIndexChanged\");\r\n if (pageIndexChanged) {\r\n pageIndexChanged(args.value)\r\n }\r\n break;\r\n case \"pageSize\":\r\n var pageSizeChanged = this.option(\"pageSizeChanged\");\r\n if (pageSizeChanged) {\r\n pageSizeChanged(args.value)\r\n }\r\n }\r\n super._optionChanged(args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/get_element_width.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(name, element) {\r\n var _getElementComputedSt;\r\n var computedStyle = null !== (_getElementComputedSt = getElementComputedStyle(element)) && void 0 !== _getElementComputedSt ? _getElementComputedSt : {};\r\n return toNumber(computedStyle[name])\r\n}\r\nexport function getElementContentWidth(element) {\r\n var padding = getElementStyle(\"paddingLeft\", element) + getElementStyle(\"paddingRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return width - padding\r\n}\r\nexport function getElementWidth(element) {\r\n var margin = getElementStyle(\"marginLeft\", element) + getElementStyle(\"marginRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return margin + width\r\n}\r\nexport function getElementMinWidth(element) {\r\n return getElementStyle(\"minWidth\", element)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/resizable_container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"contentTemplate\", \"pagerProps\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport {\r\n getElementWidth,\r\n getElementStyle,\r\n getElementContentWidth\r\n} from \"./utils/get_element_width\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n contentAttributes: contentAttributes,\r\n infoTextRef: infoTextRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSizesRef: pageSizesRef,\r\n pagesRef: pagesRef,\r\n parentRef: parentRef,\r\n props: {\r\n contentTemplate: Content\r\n }\r\n } = _ref;\r\n return Content(_extends({\r\n rootElementRef: parentRef,\r\n pageSizesRef: pageSizesRef,\r\n infoTextRef: infoTextRef,\r\n pagesRef: pagesRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode\r\n }, contentAttributes))\r\n};\r\nexport function calculateLargeDisplayMode(_ref2) {\r\n var {\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref2;\r\n return parentWidth - (pageSizesWidth + pagesWidth) > 0\r\n}\r\nexport function calculateInfoTextVisible(_ref3) {\r\n var {\r\n info: infoWidth,\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref3;\r\n var minimalWidth = pageSizesWidth + pagesWidth + infoWidth;\r\n return parentWidth - minimalWidth > 0\r\n}\r\n\r\nfunction getElementsWidth(_ref4) {\r\n var {\r\n info: info,\r\n pageSizes: pageSizes,\r\n pages: pages,\r\n parent: parent\r\n } = _ref4;\r\n var parentWidth = getElementContentWidth(parent);\r\n var pageSizesWidth = getElementWidth(pageSizes);\r\n var infoWidth = getElementWidth(info);\r\n var pagesHtmlWidth = getElementWidth(pages);\r\n return {\r\n parent: parentWidth,\r\n pageSizes: pageSizesWidth,\r\n info: infoWidth + getElementStyle(\"marginLeft\", info) + getElementStyle(\"marginRight\", info),\r\n pages: pagesHtmlWidth\r\n }\r\n}\r\nexport var ResizableContainerProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class ResizableContainer extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.parentRef = infernoCreateRef();\r\n this.pageSizesRef = infernoCreateRef();\r\n this.infoTextRef = infernoCreateRef();\r\n this.pagesRef = infernoCreateRef();\r\n this.actualIsLargeDisplayMode = true;\r\n this.actualInfoTextVisible = true;\r\n this.state = {\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n };\r\n this.subscribeToResize = this.subscribeToResize.bind(this);\r\n this.effectUpdateChildProps = this.effectUpdateChildProps.bind(this);\r\n this.updateAdaptivityProps = this.updateAdaptivityProps.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.subscribeToResize, [this.state.infoTextVisible, this.state.isLargeDisplayMode]), new InfernoEffect(this.effectUpdateChildProps, [this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.infoTextVisible, this.state.isLargeDisplayMode]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])\r\n }\r\n subscribeToResize() {\r\n var callback = () => {\r\n this.parentWidth > 0 && this.updateAdaptivityProps()\r\n };\r\n resizeCallbacks.add(callback);\r\n return () => {\r\n resizeCallbacks.remove(callback)\r\n }\r\n }\r\n effectUpdateChildProps() {\r\n if (this.parentWidth > 0) {\r\n this.updateAdaptivityProps()\r\n }\r\n }\r\n get contentAttributes() {\r\n var {\r\n className: className,\r\n displayMode: displayMode,\r\n gridCompatibility: gridCompatibility,\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n label: label,\r\n lightModeEnabled: lightModeEnabled,\r\n maxPagesCount: maxPagesCount,\r\n onKeyDown: onKeyDown,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pagesCountText: pagesCountText,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n rtlEnabled: rtlEnabled,\r\n showInfo: showInfo,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n } = this.props.pagerProps;\r\n return _extends({}, this.restAttributes, {\r\n pageSize: pageSize,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSizeChange: pageSizeChange,\r\n gridCompatibility: gridCompatibility,\r\n className: className,\r\n showInfo: showInfo,\r\n infoText: infoText,\r\n lightModeEnabled: lightModeEnabled,\r\n displayMode: displayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pagesCountText: pagesCountText,\r\n visible: visible,\r\n hasKnownLastPage: hasKnownLastPage,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n showPageSizes: showPageSizes,\r\n pageSizes: pageSizes,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount,\r\n onKeyDown: onKeyDown,\r\n label: label\r\n })\r\n }\r\n get parentWidth() {\r\n return this.parentRef.current ? getElementWidth(this.parentRef.current) : 0\r\n }\r\n updateAdaptivityProps() {\r\n var currentElementsWidth = getElementsWidth({\r\n parent: this.parentRef.current,\r\n pageSizes: this.pageSizesRef.current,\r\n info: this.infoTextRef.current,\r\n pages: this.pagesRef.current\r\n });\r\n if (this.actualInfoTextVisible !== this.state.infoTextVisible || this.actualIsLargeDisplayMode !== this.state.isLargeDisplayMode) {\r\n return\r\n }\r\n var isEmpty = !isDefined(this.elementsWidth);\r\n if (isEmpty) {\r\n this.elementsWidth = {}\r\n }\r\n if (isEmpty || this.state.isLargeDisplayMode) {\r\n this.elementsWidth.pageSizes = currentElementsWidth.pageSizes;\r\n this.elementsWidth.pages = currentElementsWidth.pages\r\n }\r\n if (isEmpty || this.state.infoTextVisible) {\r\n this.elementsWidth.info = currentElementsWidth.info\r\n }\r\n this.actualIsLargeDisplayMode = calculateLargeDisplayMode(_extends({\r\n parent: currentElementsWidth.parent\r\n }, {\r\n pageSizes: this.elementsWidth.pageSizes,\r\n pages: this.elementsWidth.pages\r\n }));\r\n this.actualInfoTextVisible = calculateInfoTextVisible(_extends({}, currentElementsWidth, {\r\n info: this.elementsWidth.info\r\n }));\r\n this.setState(__state_argument => ({\r\n infoTextVisible: this.actualInfoTextVisible\r\n }));\r\n this.setState(__state_argument => ({\r\n isLargeDisplayMode: this.actualIsLargeDisplayMode\r\n }))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n contentTemplate: getTemplate(props.contentTemplate)\r\n }),\r\n infoTextVisible: this.state.infoTextVisible,\r\n isLargeDisplayMode: this.state.isLargeDisplayMode,\r\n parentRef: this.parentRef,\r\n pageSizesRef: this.pageSizesRef,\r\n infoTextRef: this.infoTextRef,\r\n pagesRef: this.pagesRef,\r\n contentAttributes: this.contentAttributes,\r\n parentWidth: this.parentWidth,\r\n updateAdaptivityProps: this.updateAdaptivityProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nResizableContainer.defaultProps = ResizableContainerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/base_pager_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport messageLocalization from \"../../../../localization/message\";\r\nexport var BasePagerProps = {\r\n gridCompatibility: true,\r\n showInfo: false,\r\n displayMode: \"adaptive\",\r\n maxPagesCount: 10,\r\n pageCount: 10,\r\n visible: true,\r\n hasKnownLastPage: true,\r\n pagesNavigatorVisible: \"auto\",\r\n showPageSizes: true,\r\n pageSizes: Object.freeze([5, 10]),\r\n showNavigationButtons: false,\r\n totalCount: 0,\r\n get label() {\r\n return messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/pager_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n BasePagerProps\r\n} from \"./base_pager_props\";\r\nexport var PagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n defaultPageSize: 5,\r\n pageSizeChange: () => {},\r\n defaultPageIndex: 1,\r\n pageIndexChange: () => {}\r\n})));\r\nexport var InternalPagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n pageSize: 5,\r\n pageIndex: 1\r\n})));\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/info.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"infoText\", \"pageCount\", \"pageIndex\", \"rootElementRef\", \"totalCount\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nexport var PAGER_INFO_CLASS = \"dx-info\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n text: text\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_INFO_CLASS, text, 0, null, null, rootElementRef)\r\n};\r\nexport var InfoTextProps = {};\r\nvar InfoTextPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n }\r\n};\r\nexport class InfoText extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get infoText() {\r\n var _this$props$infoText;\r\n return (null !== (_this$props$infoText = this.props.infoText) && void 0 !== _this$props$infoText ? _this$props$infoText : \"\") || messageLocalization.getFormatter(\"dxPager-infoText\")()\r\n }\r\n get text() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n } = this.props;\r\n return format(this.infoText, (pageIndex + 1).toString(), pageCount.toString(), totalCount.toString())\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n infoText: this.infoText,\r\n text: this.text,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInfoText.defaultProps = InfoTextPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/keyboard_action_context.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var KeyboardActionContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/light_button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"label\", \"onClick\", \"selected\", \"tabIndex\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n subscribeToClickEvent\r\n} from \"../../../utils/subscribe_to_event\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n label: label,\r\n selected: selected,\r\n tabIndex: tabIndex\r\n },\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return createVNode(1, \"div\", className, children, 0, {\r\n tabIndex: tabIndex,\r\n role: \"button\",\r\n \"aria-label\": label,\r\n \"aria-current\": selected ? \"page\" : void 0\r\n }, null, widgetRef)\r\n};\r\nexport var LightButtonProps = {\r\n className: \"\",\r\n label: \"\",\r\n tabIndex: 0,\r\n selected: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class LightButton extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.subscribeToClick = this.subscribeToClick.bind(this)\r\n }\r\n get keyboardContext() {\r\n if (this.context[KeyboardActionContext.id]) {\r\n return this.context[KeyboardActionContext.id]\r\n }\r\n return KeyboardActionContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.keyboardEffect, [this.keyboardContext, this.props.onClick]), new InfernoEffect(this.subscribeToClick, [this.props.onClick])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.keyboardContext, this.props.onClick]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.onClick])\r\n }\r\n keyboardEffect() {\r\n return this.keyboardContext.registerKeyboardAction(this.widgetRef.current, this.props.onClick)\r\n }\r\n subscribeToClick() {\r\n return subscribeToClickEvent(this.widgetRef.current, this.props.onClick)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n keyboardContext: this.keyboardContext,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nLightButton.defaultProps = LightButtonProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/consts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PAGER_CLASS = \"dx-pager\";\r\nexport var LIGHT_MODE_CLASS = \"dx-light-mode\";\r\nexport var PAGER_PAGES_CLASS = \"dx-pages\";\r\nexport var PAGER_PAGE_INDEXES_CLASS = \"dx-page-indexes\";\r\nexport var PAGER_PAGE_CLASS = \"dx-page\";\r\nexport var PAGER_SELECTION_CLASS = \"dx-selection\";\r\nexport var PAGER_PAGE_SIZE_CLASS = \"dx-page-size\";\r\nexport var PAGER_PAGE_SIZES_CLASS = \"dx-page-sizes\";\r\nexport var PAGER_SELECTED_PAGE_SIZE_CLASS = \"\".concat(PAGER_PAGE_SIZE_CLASS, \" \").concat(PAGER_SELECTION_CLASS);\r\nexport var FIRST_CHILD_CLASS = \"dx-first-child\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"className\", \"index\", \"onClick\", \"selected\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PAGER_PAGE_CLASS,\r\n PAGER_SELECTION_CLASS\r\n} from \"../common/consts\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n className: className,\r\n label: label,\r\n props: {\r\n onClick: onClick,\r\n selected: selected\r\n },\r\n value: value\r\n } = _ref;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: onClick,\r\n selected: selected,\r\n children: value\r\n })\r\n};\r\nexport var PageProps = {\r\n index: 0,\r\n selected: false,\r\n className: PAGER_PAGE_CLASS\r\n};\r\nexport class Page extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get label() {\r\n return format(messageLocalization.getFormatter(\"dxPager-page\"), this.value)\r\n }\r\n get value() {\r\n return this.props.index + 1\r\n }\r\n get className() {\r\n var {\r\n selected: selected\r\n } = this.props;\r\n return combineClasses({\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_SELECTION_CLASS]: !!selected\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n label: this.label,\r\n value: this.value,\r\n className: this.className,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPage.defaultProps = PageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/large.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageIndexes\"],\r\n _excluded2 = [\"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nvar PAGER_PAGE_SEPARATOR_CLASS = \"dx-separator\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pages: pages\r\n } = _ref;\r\n var PagesMarkup = pages.map(_ref2 => {\r\n var {\r\n key: key,\r\n pageProps: pageProps\r\n } = _ref2;\r\n return pageProps ? createComponentVNode(2, Page, {\r\n index: pageProps.index,\r\n selected: pageProps.selected,\r\n onClick: pageProps.onClick\r\n }, key) : createVNode(1, \"div\", PAGER_PAGE_SEPARATOR_CLASS, \". . .\", 16, null, key)\r\n });\r\n return createFragment(PagesMarkup, 0)\r\n};\r\nvar PAGES_LIMITER = 4;\r\n\r\nfunction getDelimiterType(startIndex, slidingWindowSize, pageCount) {\r\n if (1 === startIndex) {\r\n return \"high\"\r\n }\r\n if (startIndex + slidingWindowSize === pageCount - 1) {\r\n return \"low\"\r\n }\r\n return \"both\"\r\n}\r\n\r\nfunction createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter) {\r\n var pageIndexes = [];\r\n var indexesForReuse = [];\r\n switch (delimiter) {\r\n case \"none\":\r\n pageIndexes = [...slidingWindowIndexes];\r\n break;\r\n case \"both\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1, -1);\r\n break;\r\n case \"high\":\r\n pageIndexes = [0, ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(0, -1);\r\n break;\r\n case \"low\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1)\r\n }\r\n return {\r\n slidingWindowIndexes: slidingWindowIndexes,\r\n indexesForReuse: indexesForReuse,\r\n pageIndexes: pageIndexes\r\n }\r\n}\r\n\r\nfunction createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter) {\r\n var slidingWindowIndexes = [];\r\n for (var i = 0; i < slidingWindowSize; i += 1) {\r\n slidingWindowIndexes.push(i + startIndex)\r\n }\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter)\r\n}\r\nvar PagesLargePropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n }\r\n};\r\nexport class PagesLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.canReuseSlidingWindow = this.canReuseSlidingWindow.bind(this);\r\n this.generatePageIndexes = this.generatePageIndexes.bind(this);\r\n this.isSlidingWindowMode = this.isSlidingWindowMode.bind(this);\r\n this.onPageClick = this.onPageClick.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n get slidingWindowState() {\r\n var slidingWindowState = this.slidingWindowStateHolder;\r\n if (!slidingWindowState) {\r\n return {\r\n indexesForReuse: [],\r\n slidingWindowIndexes: []\r\n }\r\n }\r\n return slidingWindowState\r\n }\r\n canReuseSlidingWindow(currentPageCount, pageIndex) {\r\n var {\r\n indexesForReuse: indexesForReuse\r\n } = this.slidingWindowState;\r\n var lastPageIsFartherThanWindow = indexesForReuse.slice(-1)[0] < currentPageCount - 1;\r\n var pageIndexExistInIndexes = indexesForReuse.includes(pageIndex);\r\n return lastPageIsFartherThanWindow && pageIndexExistInIndexes\r\n }\r\n generatePageIndexes() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var startIndex = 0;\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n if (pageIndex === slidingWindowIndexes[0]) {\r\n startIndex = pageIndex - 1\r\n } else if (pageIndex === slidingWindowIndexes[slidingWindowIndexes.length - 1]) {\r\n startIndex = pageIndex + 2 - PAGES_LIMITER\r\n } else if (pageIndex < PAGES_LIMITER) {\r\n startIndex = 1\r\n } else if (pageIndex >= pageCount - PAGES_LIMITER) {\r\n startIndex = pageCount - PAGES_LIMITER - 1\r\n } else {\r\n startIndex = pageIndex - 1\r\n }\r\n var slidingWindowSize = PAGES_LIMITER;\r\n var delimiter = getDelimiterType(startIndex, slidingWindowSize, pageCount);\r\n var _createPageIndexes = createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter),\r\n {\r\n pageIndexes: pageIndexes\r\n } = _createPageIndexes,\r\n slidingWindowState = _objectWithoutPropertiesLoose(_createPageIndexes, _excluded);\r\n this.slidingWindowStateHolder = slidingWindowState;\r\n return pageIndexes\r\n }\r\n isSlidingWindowMode() {\r\n var {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount\r\n } = this.props;\r\n return pageCount <= PAGES_LIMITER || pageCount <= maxPagesCount\r\n }\r\n onPageClick(pageIndex) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n get pageIndexes() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n if (this.isSlidingWindowMode()) {\r\n return createPageIndexes(0, pageCount, pageCount, \"none\").pageIndexes\r\n }\r\n if (this.canReuseSlidingWindow(pageCount, this.props.pageIndex)) {\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n var delimiter = getDelimiterType(slidingWindowIndexes[0], PAGES_LIMITER, pageCount);\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter).pageIndexes\r\n }\r\n return this.generatePageIndexes()\r\n }\r\n get pages() {\r\n var _this$config;\r\n var {\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var createPage = index => {\r\n var pagerProps = \"low\" === index || \"high\" === index ? null : {\r\n index: index,\r\n onClick: () => this.onPageClick(index),\r\n selected: pageIndex === index\r\n };\r\n return {\r\n key: index.toString(),\r\n pageProps: pagerProps\r\n }\r\n };\r\n var rtlPageIndexes = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? [...this.pageIndexes].reverse() : this.pageIndexes;\r\n return rtlPageIndexes.map(index => createPage(index))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexes: this.pageIndexes,\r\n pages: this.pages,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesLarge.defaultProps = PagesLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_state_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nexport var EditorStateProps = {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_label_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../../../ui/themes\";\r\nexport var EditorLabelProps = {\r\n label: \"\",\r\n get labelMode() {\r\n return isMaterial(current()) ? \"floating\" : \"static\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/number_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"invalidValueMessage\", \"isDirty\", \"isValid\", \"label\", \"labelMode\", \"max\", \"min\", \"mode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"showSpinButtons\", \"step\", \"tabIndex\", \"useLargeSpinButtons\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyNumberBox from \"../../../ui/number_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"./common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"./common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"./common/editor_label_props\";\r\nvar DEFAULT_VALUE = 0;\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyNumberBox,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var NumberBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n defaultValue: DEFAULT_VALUE,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var NumberBoxPropsType = {\r\n get defaultValue() {\r\n return NumberBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return NumberBoxProps.readOnly\r\n },\r\n get name() {\r\n return NumberBoxProps.name\r\n },\r\n get validationError() {\r\n return NumberBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return NumberBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return NumberBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return NumberBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return NumberBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return NumberBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return NumberBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return NumberBoxProps.inputAttr\r\n },\r\n get className() {\r\n return NumberBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return NumberBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return NumberBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return NumberBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class NumberBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nNumberBox.defaultProps = NumberBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/calculate_values_fitted_width.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var oneDigitWidth = 10;\r\nexport function calculateValuesFittedWidth(minWidth, values) {\r\n return minWidth + oneDigitWidth * Math.max(...values).toString().length\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/small.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"inputAttr\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n PAGER_INFO_CLASS\r\n} from \"../info\";\r\nimport {\r\n NumberBox\r\n} from \"../../editors/number_box\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nvar PAGER_INFO_TEXT_CLASS = \"\".concat(PAGER_INFO_CLASS, \" dx-info-text\");\r\nvar PAGER_PAGE_INDEX_CLASS = \"dx-page-index\";\r\nvar LIGHT_PAGES_CLASS = \"dx-light-pages\";\r\nvar PAGER_PAGES_COUNT_CLASS = \"dx-pages-count\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageIndexRef: pageIndexRef,\r\n pagesCountText: pagesCountText,\r\n props: {\r\n inputAttr: inputAttr,\r\n pageCount: pageCount\r\n },\r\n selectLastPageIndex: selectLastPageIndex,\r\n value: value,\r\n valueChange: valueChange,\r\n width: width\r\n } = _ref;\r\n return createVNode(1, \"div\", LIGHT_PAGES_CLASS, [createComponentVNode(2, NumberBox, {\r\n className: PAGER_PAGE_INDEX_CLASS,\r\n min: 1,\r\n max: Math.max(pageCount, value),\r\n width: width,\r\n value: value,\r\n valueChange: valueChange,\r\n inputAttr: inputAttr\r\n }), createVNode(1, \"span\", PAGER_INFO_TEXT_CLASS, pagesCountText, 0), createComponentVNode(2, Page, {\r\n className: PAGER_PAGES_COUNT_CLASS,\r\n selected: false,\r\n index: pageCount - 1,\r\n onClick: selectLastPageIndex\r\n })], 4, null, null, pageIndexRef)\r\n};\r\nexport var PagerSmallProps = {\r\n inputAttr: Object.freeze({\r\n \"aria-label\": messageLocalization.format(\"dxPager-ariaPageNumber\")\r\n })\r\n};\r\nvar PagerSmallPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get inputAttr() {\r\n return PagerSmallProps.inputAttr\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagesSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.pageIndexRef = infernoCreateRef();\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this);\r\n this.selectLastPageIndex = this.selectLastPageIndex.bind(this);\r\n this.valueChange = this.valueChange.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.state.minWidth])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.minWidth])\r\n }\r\n updateWidth() {\r\n var _this$pageIndexRef$cu;\r\n var el = null === (_this$pageIndexRef$cu = this.pageIndexRef.current) || void 0 === _this$pageIndexRef$cu ? void 0 : _this$pageIndexRef$cu.querySelector(\".\".concat(PAGER_PAGE_INDEX_CLASS));\r\n this.setState(__state_argument => ({\r\n minWidth: el && getElementMinWidth(el) || __state_argument.minWidth\r\n }))\r\n }\r\n get value() {\r\n return this.props.pageIndex + 1\r\n }\r\n get width() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n return calculateValuesFittedWidth(this.state.minWidth, [pageCount])\r\n }\r\n get pagesCountText() {\r\n var _this$props$pagesCoun;\r\n return (null !== (_this$props$pagesCoun = this.props.pagesCountText) && void 0 !== _this$props$pagesCoun ? _this$props$pagesCoun : \"\") || messageLocalization.getFormatter(\"dxPager-pagesCountText\")()\r\n }\r\n selectLastPageIndex() {\r\n this.props.pageIndexChange(this.props.pageCount - 1)\r\n }\r\n valueChange(value) {\r\n this.props.pageIndexChange(value - 1)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageIndexRef: this.pageIndexRef,\r\n value: this.value,\r\n width: this.width,\r\n pagesCountText: this.pagesCountText,\r\n selectLastPageIndex: this.selectLastPageIndex,\r\n valueChange: this.valueChange,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesSmall.defaultProps = PagerSmallPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page_index_selector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"hasKnownLastPage\", \"isLargeDisplayMode\", \"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\", \"showNavigationButtons\", \"totalCount\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PagesLarge\r\n} from \"./large\";\r\nimport {\r\n PagesSmall\r\n} from \"./small\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nvar PAGER_NAVIGATE_BUTTON = \"dx-navigate-button\";\r\nvar PAGER_PREV_BUTTON_CLASS = \"dx-prev-button\";\r\nvar PAGER_NEXT_BUTTON_CLASS = \"dx-next-button\";\r\nexport var PAGER_BUTTON_DISABLE_CLASS = \"dx-button-disable\";\r\nvar getNextButtonLabel = () => messageLocalization.getFormatter(\"dxPager-nextPage\")();\r\nvar getPrevButtonLabel = () => messageLocalization.getFormatter(\"dxPager-prevPage\")();\r\nvar classNames = {\r\n nextEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS),\r\n nextDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS)\r\n};\r\nvar reverseDirections = {\r\n next: \"prev\",\r\n prev: \"next\"\r\n};\r\nexport var viewFunction = _ref => {\r\n var {\r\n nextButtonProps: nextButtonProps,\r\n pageIndexChange: pageIndexChange,\r\n prevButtonProps: prevButtonProps,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pagesCountText: pagesCountText\r\n },\r\n renderNextButton: renderNextButton,\r\n renderPrevButton: renderPrevButton\r\n } = _ref;\r\n return createFragment([renderPrevButton && createComponentVNode(2, LightButton, {\r\n label: getPrevButtonLabel(),\r\n className: prevButtonProps.className,\r\n tabIndex: prevButtonProps.tabIndex,\r\n onClick: prevButtonProps.navigate\r\n }), isLargeDisplayMode && createComponentVNode(2, PagesLarge, {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PagesSmall, {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText\r\n }), renderNextButton && createComponentVNode(2, LightButton, {\r\n label: getNextButtonLabel(),\r\n className: nextButtonProps.className,\r\n tabIndex: nextButtonProps.tabIndex,\r\n onClick: nextButtonProps.navigate\r\n })], 0)\r\n};\r\n\r\nfunction getIncrement(direction) {\r\n return \"next\" === direction ? 1 : -1\r\n}\r\nexport var PageIndexSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageIndexSelectorPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get hasKnownLastPage() {\r\n return InternalPagerProps.hasKnownLastPage\r\n },\r\n get showNavigationButtons() {\r\n return InternalPagerProps.showNavigationButtons\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n },\r\n get isLargeDisplayMode() {\r\n return PageIndexSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nexport class PageIndexSelector extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.getButtonProps = this.getButtonProps.bind(this);\r\n this.canNavigateToPage = this.canNavigateToPage.bind(this);\r\n this.getNextPageIndex = this.getNextPageIndex.bind(this);\r\n this.canNavigateTo = this.canNavigateTo.bind(this);\r\n this.navigateToPage = this.navigateToPage.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n pageIndexChange(pageIndex) {\r\n if (this.canNavigateToPage(pageIndex)) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n }\r\n getButtonProps(direction) {\r\n var _this$config;\r\n var rtlAwareDirection = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? reverseDirections[direction] : direction;\r\n var canNavigate = this.canNavigateTo(rtlAwareDirection);\r\n var className = classNames[\"\".concat(direction).concat(canNavigate ? \"Enabled\" : \"Disabled\", \"Class\")];\r\n return {\r\n className: className,\r\n tabIndex: canNavigate ? 0 : -1,\r\n navigate: () => this.navigateToPage(rtlAwareDirection)\r\n }\r\n }\r\n canNavigateToPage(pageIndex) {\r\n if (!this.props.hasKnownLastPage) {\r\n return pageIndex >= 0\r\n }\r\n return pageIndex >= 0 && pageIndex <= this.props.pageCount - 1\r\n }\r\n getNextPageIndex(direction) {\r\n return this.props.pageIndex + getIncrement(direction)\r\n }\r\n canNavigateTo(direction) {\r\n return this.canNavigateToPage(this.getNextPageIndex(direction))\r\n }\r\n navigateToPage(direction) {\r\n this.pageIndexChange(this.getNextPageIndex(direction))\r\n }\r\n get renderPrevButton() {\r\n var {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n showNavigationButtons: showNavigationButtons\r\n } = this.props;\r\n return !isLargeDisplayMode || showNavigationButtons\r\n }\r\n get renderNextButton() {\r\n return this.renderPrevButton || !this.props.hasKnownLastPage\r\n }\r\n get prevButtonProps() {\r\n if (void 0 !== this.__getterCache.prevButtonProps) {\r\n return this.__getterCache.prevButtonProps\r\n }\r\n return this.__getterCache.prevButtonProps = (() => this.getButtonProps(\"prev\"))()\r\n }\r\n get nextButtonProps() {\r\n if (void 0 !== this.__getterCache.nextButtonProps) {\r\n return this.__getterCache.nextButtonProps\r\n }\r\n return this.__getterCache.nextButtonProps = (() => this.getButtonProps(\"next\"))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.context[ConfigContext.id] !== context[ConfigContext.id] || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.prevButtonProps = void 0\r\n }\r\n if (this.context[ConfigContext.id] !== context[ConfigContext.id] || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.nextButtonProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexChange: this.pageIndexChange,\r\n renderPrevButton: this.renderPrevButton,\r\n renderNextButton: this.renderNextButton,\r\n prevButtonProps: this.prevButtonProps,\r\n nextButtonProps: this.nextButtonProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageIndexSelector.defaultProps = PageIndexSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/drop_down_editors/select_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"dataSource\", \"defaultValue\", \"disabled\", \"displayExpr\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isDirty\", \"isValid\", \"label\", \"labelMode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"placeholder\", \"readOnly\", \"rtlEnabled\", \"searchEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"valueExpr\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacySelectBox from \"../../../../ui/select_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"../common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"../common/editor_label_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacySelectBox,\r\n componentProps: componentProps,\r\n templateNames: [\"dropDownButtonTemplate\", \"groupTemplate\", \"itemTemplate\"]\r\n }, restAttributes)))\r\n};\r\nexport var SelectBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n placeholder: \"\",\r\n hoverStateEnabled: true,\r\n searchEnabled: false,\r\n defaultValue: null,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var SelectBoxPropsType = {\r\n get placeholder() {\r\n return SelectBoxProps.placeholder\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get searchEnabled() {\r\n return SelectBoxProps.searchEnabled\r\n },\r\n get defaultValue() {\r\n return SelectBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return SelectBoxProps.readOnly\r\n },\r\n get name() {\r\n return SelectBoxProps.name\r\n },\r\n get validationError() {\r\n return SelectBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return SelectBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return SelectBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return SelectBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return SelectBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return SelectBoxProps.isValid\r\n },\r\n get isDirty() {\r\n return SelectBoxProps.isDirty\r\n },\r\n get inputAttr() {\r\n return SelectBoxProps.inputAttr\r\n },\r\n get className() {\r\n return SelectBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return SelectBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get tabIndex() {\r\n return SelectBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return SelectBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class SelectBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nSelectBox.defaultProps = SelectBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/small.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"inputAttr\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"parentRef\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n SelectBox\r\n} from \"../../editors/drop_down_editors/select_box\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n inputAttr: inputAttr,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n },\r\n width: width\r\n } = _ref;\r\n return createComponentVNode(2, SelectBox, {\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n dataSource: pageSizes,\r\n value: pageSize,\r\n valueChange: pageSizeChange,\r\n width: width,\r\n inputAttr: inputAttr\r\n })\r\n};\r\nexport var PageSizeSmallProps = {\r\n inputAttr: Object.freeze({\r\n \"aria-label\": messageLocalization.format(\"dxPager-ariaPageSize\")\r\n })\r\n};\r\nvar PageSizeSmallPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n },\r\n get inputAttr() {\r\n return PageSizeSmallProps.inputAttr\r\n }\r\n};\r\nexport class PageSizeSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.inputAttr])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.inputAttr])\r\n }\r\n updateWidth() {\r\n this.setState(__state_argument => ({\r\n minWidth: getElementMinWidth(this.props.parentRef.current) || __state_argument.minWidth\r\n }))\r\n }\r\n get width() {\r\n return calculateValuesFittedWidth(this.state.minWidth, this.props.pageSizes.map(p => p.value))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n width: this.width,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSmall.defaultProps = PageSizeSmallPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/large.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageSize\", \"pageSizeChange\", \"pageSizes\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n PAGER_SELECTED_PAGE_SIZE_CLASS,\r\n PAGER_PAGE_SIZE_CLASS,\r\n FIRST_CHILD_CLASS\r\n} from \"../common/consts\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageSizesText: pageSizesText\r\n } = _ref;\r\n return createFragment(pageSizesText.map(_ref2 => {\r\n var {\r\n className: className,\r\n click: click,\r\n label: label,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: click,\r\n children: text\r\n }, text)\r\n }), 0)\r\n};\r\nexport var PageSizeLargeProps = {};\r\nvar PageSizeLargePropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n }\r\n};\r\nexport class PageSizeLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.onPageSizeChange = this.onPageSizeChange.bind(this)\r\n }\r\n get pageSizesText() {\r\n if (void 0 !== this.__getterCache.pageSizesText) {\r\n return this.__getterCache.pageSizesText\r\n }\r\n return this.__getterCache.pageSizesText = (() => {\r\n var {\r\n pageSize: pageSize,\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map((_ref3, index) => {\r\n var {\r\n text: text,\r\n value: processedPageSize\r\n } = _ref3;\r\n var selected = processedPageSize === pageSize;\r\n var className = combineClasses({\r\n [selected ? PAGER_SELECTED_PAGE_SIZE_CLASS : PAGER_PAGE_SIZE_CLASS]: true,\r\n [FIRST_CHILD_CLASS]: 0 === index\r\n });\r\n return {\r\n className: className,\r\n click: this.onPageSizeChange(processedPageSize),\r\n label: format(messageLocalization.getFormatter(\"dxPager-pageSize\"), processedPageSize || messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")),\r\n text: text\r\n }\r\n })\r\n })()\r\n }\r\n onPageSizeChange(processedPageSize) {\r\n return () => {\r\n this.props.pageSizeChange(processedPageSize);\r\n return this.props.pageSize\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.pageSize !== nextProps.pageSize || this.props.pageSizes !== nextProps.pageSizes || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pageSizesText = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageSizesText: this.pageSizesText,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeLarge.defaultProps = PageSizeLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/selector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isLargeDisplayMode\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"rootElementRef\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n PageSizeSmall\r\n} from \"./small\";\r\nimport {\r\n PageSizeLarge\r\n} from \"./large\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n PAGER_PAGE_SIZES_CLASS\r\n} from \"../common/consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n htmlRef: htmlRef,\r\n normalizedPageSizes: normalizedPageSizes,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_PAGE_SIZES_CLASS, [isLargeDisplayMode && createComponentVNode(2, PageSizeLarge, {\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PageSizeSmall, {\r\n parentRef: htmlRef,\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n })], 0, null, null, htmlRef)\r\n};\r\n\r\nfunction getAllText() {\r\n return messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")()\r\n}\r\nvar PageSizeSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageSizeSelectorPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n },\r\n get pageSizes() {\r\n return InternalPagerProps.pageSizes\r\n },\r\n get isLargeDisplayMode() {\r\n return PageSizeSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PageSizeSelector extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.htmlRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.htmlRef.current\r\n }\r\n }\r\n get normalizedPageSizes() {\r\n if (void 0 !== this.__getterCache.normalizedPageSizes) {\r\n return this.__getterCache.normalizedPageSizes\r\n }\r\n return this.__getterCache.normalizedPageSizes = (() => {\r\n var {\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map(p => \"all\" === p || 0 === p ? {\r\n text: getAllText(),\r\n value: 0\r\n } : {\r\n text: String(p),\r\n value: p\r\n })\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.pageSizes !== nextProps.pageSizes) {\r\n this.__getterCache.normalizedPageSizes = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n htmlRef: this.htmlRef,\r\n normalizedPageSizes: this.normalizedPageSizes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSelector.defaultProps = PageSizeSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/content.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"infoTextRef\", \"infoTextVisible\", \"isLargeDisplayMode\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pageSizesRef\", \"pagesCountText\", \"pagesNavigatorVisible\", \"pagesRef\", \"rootElementRef\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n InfoText\r\n} from \"./info\";\r\nimport {\r\n PageIndexSelector\r\n} from \"./pages/page_index_selector\";\r\nimport {\r\n PageSizeSelector\r\n} from \"./page_size/selector\";\r\nimport {\r\n PAGER_PAGES_CLASS,\r\n PAGER_PAGE_INDEXES_CLASS,\r\n LIGHT_MODE_CLASS,\r\n PAGER_CLASS\r\n} from \"./common/consts\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n Widget\r\n} from \"../common/widget\";\r\nimport {\r\n registerKeyboardAction as _registerKeyboardAction\r\n} from \"../../../ui/shared/accessibility\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./common/keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n aria: aria,\r\n classes: classes,\r\n infoVisible: infoVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageIndexSelectorVisible: pageIndexSelectorVisible,\r\n pagesContainerVisibility: pagesContainerVisibility,\r\n pagesContainerVisible: pagesContainerVisible,\r\n props: {\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n infoTextRef: infoTextRef,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pageSizesRef: pageSizesRef,\r\n pagesCountText: pagesCountText,\r\n pagesRef: pagesRef,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n },\r\n restAttributes: restAttributes,\r\n widgetRootElementRef: widgetRootElementRef\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: widgetRootElementRef,\r\n rtlEnabled: rtlEnabled,\r\n classes: classes,\r\n visible: visible,\r\n aria: aria\r\n }, restAttributes, {\r\n children: [showPageSizes && createComponentVNode(2, PageSizeSelector, {\r\n rootElementRef: pageSizesRef,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n }), pagesContainerVisible && createVNode(1, \"div\", PAGER_PAGES_CLASS, [infoVisible && createComponentVNode(2, InfoText, {\r\n rootElementRef: infoTextRef,\r\n infoText: infoText,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n }), pageIndexSelectorVisible && createVNode(1, \"div\", PAGER_PAGE_INDEXES_CLASS, createComponentVNode(2, PageIndexSelector, {\r\n hasKnownLastPage: hasKnownLastPage,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount\r\n }), 2, null, null, pagesRef)], 0, {\r\n style: normalizeStyles({\r\n visibility: pagesContainerVisibility\r\n })\r\n })]\r\n })))\r\n};\r\nexport var PagerContentProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(InternalPagerProps), Object.getOwnPropertyDescriptors({\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n})));\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagerContent extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.createFakeInstance = this.createFakeInstance.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [KeyboardActionContext.id]: this.keyboardAction || KeyboardActionContext.defaultValue\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRootElementRef.current\r\n }\r\n }\r\n createFakeInstance() {\r\n return {\r\n option: () => false,\r\n element: () => this.widgetRootElementRef.current,\r\n _createActionByOption: () => e => {\r\n var _this$props$onKeyDown, _this$props;\r\n null === (_this$props$onKeyDown = (_this$props = this.props).onKeyDown) || void 0 === _this$props$onKeyDown ? void 0 : _this$props$onKeyDown.call(_this$props, e)\r\n }\r\n }\r\n }\r\n get keyboardAction() {\r\n if (void 0 !== this.__getterCache.keyboardAction) {\r\n return this.__getterCache.keyboardAction\r\n }\r\n return this.__getterCache.keyboardAction = (() => ({\r\n registerKeyboardAction: (element, action) => {\r\n var fakePagerInstance = this.createFakeInstance();\r\n return _registerKeyboardAction(\"pager\", fakePagerInstance, element, void 0, action)\r\n }\r\n }))()\r\n }\r\n get infoVisible() {\r\n var {\r\n infoTextVisible: infoTextVisible,\r\n showInfo: showInfo\r\n } = this.props;\r\n return showInfo && infoTextVisible\r\n }\r\n get pageIndexSelectorVisible() {\r\n return 0 !== this.props.pageSize\r\n }\r\n get normalizedDisplayMode() {\r\n var {\r\n displayMode: displayMode,\r\n lightModeEnabled: lightModeEnabled\r\n } = this.props;\r\n if (\"adaptive\" === displayMode && void 0 !== lightModeEnabled) {\r\n return lightModeEnabled ? \"compact\" : \"full\"\r\n }\r\n return displayMode\r\n }\r\n get pagesContainerVisible() {\r\n return !!this.props.pagesNavigatorVisible && this.props.pageCount > 0\r\n }\r\n get pagesContainerVisibility() {\r\n if (\"auto\" === this.props.pagesNavigatorVisible && 1 === this.props.pageCount && this.props.hasKnownLastPage) {\r\n return \"hidden\"\r\n }\r\n return\r\n }\r\n get isLargeDisplayMode() {\r\n var displayMode = this.normalizedDisplayMode;\r\n var result = false;\r\n if (\"adaptive\" === displayMode) {\r\n result = this.props.isLargeDisplayMode\r\n } else {\r\n result = \"full\" === displayMode\r\n }\r\n return result\r\n }\r\n get classes() {\r\n var classesMap = {\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_CLASS]: true,\r\n [LIGHT_MODE_CLASS]: !this.isLargeDisplayMode\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get aria() {\r\n return {\r\n role: \"navigation\",\r\n label: this.props.label\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props2 = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.onKeyDown !== nextProps.onKeyDown) {\r\n this.__getterCache.keyboardAction = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRootElementRef: this.widgetRootElementRef,\r\n keyboardAction: this.keyboardAction,\r\n infoVisible: this.infoVisible,\r\n pageIndexSelectorVisible: this.pageIndexSelectorVisible,\r\n pagesContainerVisible: this.pagesContainerVisible,\r\n pagesContainerVisibility: this.pagesContainerVisibility,\r\n isLargeDisplayMode: this.isLargeDisplayMode,\r\n classes: this.classes,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagerContent.defaultProps = PagerContentProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"defaultPageIndex\", \"defaultPageSize\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pagesCountText\", \"pagesNavigatorVisible\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ResizableContainer\r\n} from \"./resizable_container\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n PagerContent\r\n} from \"./content\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pagerProps: pagerProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, ResizableContainer, _extends({\r\n contentTemplate: PagerContent,\r\n pagerProps: pagerProps\r\n }, restAttributes)))\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nexport class Pager extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.__getterCache = {};\r\n this.state = {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.pageSizeChange = this.pageSizeChange.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n pageIndexChange(newPageIndex) {\r\n if (this.props.gridCompatibility) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageIndex + 1;\r\n return {\r\n pageIndex: __newValue\r\n }\r\n });\r\n this.props.pageIndexChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n _newValue = newPageIndex;\r\n return {\r\n pageIndex: _newValue\r\n }\r\n });\r\n this.props.pageIndexChange(_newValue)\r\n }\r\n }\r\n get pageIndex() {\r\n if (this.props.gridCompatibility) {\r\n return (void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex) - 1\r\n }\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }\r\n pageSizeChange(newPageSize) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageSize;\r\n return {\r\n pageSize: __newValue\r\n }\r\n });\r\n this.props.pageSizeChange(__newValue)\r\n }\r\n get className() {\r\n if (this.props.gridCompatibility) {\r\n return combineClasses({\r\n \"dx-datagrid-pager\": true,\r\n [\"\".concat(this.props.className)]: !!this.props.className\r\n })\r\n }\r\n return this.props.className\r\n }\r\n get pagerProps() {\r\n if (void 0 !== this.__getterCache.pagerProps) {\r\n return this.__getterCache.pagerProps\r\n }\r\n return this.__getterCache.pagerProps = (() => _extends({}, _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }), {\r\n className: this.className,\r\n pageIndex: this.pageIndex,\r\n pageIndexChange: pageIndex => this.pageIndexChange(pageIndex),\r\n pageSizeChange: pageSize => this.pageSizeChange(pageSize)\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize$ = _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize$, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props !== nextProps || this.props.gridCompatibility !== nextProps.gridCompatibility || this.props.className !== nextProps.className || this.state.pageIndex !== nextState.pageIndex || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pagerProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n pageIndexChange: this.pageIndexChange,\r\n pageIndex: this.pageIndex,\r\n pageSizeChange: this.pageSizeChange,\r\n className: this.className,\r\n pagerProps: this.pagerProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPager.defaultProps = PagerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n GridPagerWrapper\r\n} from \"../../component_wrapper/grid_pager\";\r\nimport {\r\n Pager as PagerComponent\r\n} from \"./pager\";\r\nexport default class Pager extends GridPagerWrapper {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"pageSize\", \"defaultPageSize\", \"pageSizeChange\"],\r\n [\"pageIndex\", \"defaultPageIndex\", \"pageIndexChange\"]\r\n ],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: [\"defaultPageSize\", \"pageSizeChange\", \"defaultPageIndex\", \"pageIndexChange\", \"gridCompatibility\", \"className\", \"showInfo\", \"infoText\", \"lightModeEnabled\", \"displayMode\", \"maxPagesCount\", \"pageCount\", \"pagesCountText\", \"visible\", \"hasKnownLastPage\", \"pagesNavigatorVisible\", \"showPageSizes\", \"pageSizes\", \"rtlEnabled\", \"showNavigationButtons\", \"totalCount\", \"label\", \"onKeyDown\", \"pageSize\", \"pageIndex\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return PagerComponent\r\n }\r\n}\r\nregisterComponent(\"dxPager\", Pager);\r\n","/**\r\n * DevExtreme (esm/ui/pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/pager/pager.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/pager/m_pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Pager from \"../../../../ui/pager\";\r\nimport modules from \"../m_modules\";\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nvar PagerView = modules.View.inherit({\r\n init() {\r\n var dataController = this.getController(\"data\");\r\n dataController.changed.add(e => {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = this._pager;\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n this.render()\r\n }\r\n } else if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType && \"updateFocusedRow\" !== e.changeType) {\r\n this._pager = null;\r\n this.render()\r\n }\r\n })\r\n },\r\n _renderCore() {\r\n var $element = this.element().addClass(this.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = this.option(\"pager\") || {};\r\n var dataController = this.getController(\"data\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n label: pagerOptions.label,\r\n pageSizes: this.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n dataController.pageIndex(pageIndex - 1)\r\n }\r\n },\r\n pageSizeChanged(pageSize) {\r\n dataController.pageSize(pageSize)\r\n },\r\n onKeyDown: e => keyboardController && keyboardController.executeAction(\"onKeyDown\", e),\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if (isDefined(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n if (this._pager) {\r\n this._pager.repaint();\r\n return\r\n }\r\n if (hasWindow()) {\r\n this._pager = this._createComponent($element, Pager, options)\r\n } else {\r\n $element.addClass(\"dx-pager\").html('<div class=\"dx-pages\"><div class=\"dx-page\"></div></div>')\r\n }\r\n },\r\n getPager() {\r\n return this._pager\r\n },\r\n getPageSizes() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!isDefined(this._pageSizes) || !this._pageSizes.includes(pageSize)) {\r\n this._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n this._pageSizes = allowedPageSizes\r\n } else if (allowedPageSizes && pageSize > 1) {\r\n this._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n return this._pageSizes\r\n },\r\n isVisible() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = this.option(\"scrolling\");\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n return pagerVisible\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = this.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n this._pageSizes = null\r\n }\r\n if (!isDataSource) {\r\n this._pager = null;\r\n this._invalidate();\r\n if (hasWindow() && isPager && this.component) {\r\n this.component.resize()\r\n }\r\n }\r\n }\r\n },\r\n dispose() {\r\n this._pager = null\r\n }\r\n});\r\nexport var pagerModule = {\r\n defaultOptions: () => ({\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\",\r\n label: messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n }),\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n pagerModule\r\n} from \"../../../grids/grid_core/pager/m_pager\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"pager\", pagerModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../../animation/fx\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getWidth,\r\n setHeight,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../../../../events/drag\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n eventData as getEventData,\r\n isTouchEvent\r\n} from \"../../../../events/utils/index\";\r\nimport swatchContainer from \"../../../../ui/widget/swatch_container\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nclass TrackerView extends modules.View {\r\n _renderCore() {\r\n var deferred = super._renderCore();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide();\r\n return deferred\r\n }\r\n _unsubscribeFromCallback() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n }\r\n _subscribeToCallback() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n setHeight($element, position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n }\r\n optionChanged(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n init() {\r\n super.init();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n }\r\n isVisible() {\r\n return allowResizing(this)\r\n }\r\n show() {\r\n this.element().show()\r\n }\r\n hide() {\r\n this.element() && this.element().hide()\r\n }\r\n setHeight(value) {\r\n setHeight(this.element(), value)\r\n }\r\n dispose() {\r\n this._unsubscribeFromCallback();\r\n super.dispose()\r\n }\r\n}\r\nclass SeparatorView extends modules.View {\r\n _renderSeparator() {}\r\n _renderCore(options) {\r\n var deferred = super._renderCore(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide();\r\n return deferred\r\n }\r\n show() {\r\n this._isShown = true\r\n }\r\n hide() {\r\n this._isShown = false\r\n }\r\n height(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n setHeight($element, value)\r\n } else {\r\n return getHeight($element)\r\n }\r\n }\r\n }\r\n width(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n setWidth($element, value)\r\n } else {\r\n return getWidth($element)\r\n }\r\n }\r\n }\r\n}\r\nclass ColumnsSeparatorView extends SeparatorView {\r\n _renderSeparator() {\r\n super._renderSeparator();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n }\r\n _subscribeToCallback() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n setHeight($element, position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n }\r\n _unsubscribeFromCallback() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n _init() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n }\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n }\r\n optionChanged(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n init() {\r\n super.init();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n }\r\n show() {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n if (this._isTransparent) {\r\n $element.removeClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n super.show()\r\n }\r\n hide(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n super.hide()\r\n }\r\n moveByX(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", null === outerX ? 0 : outerX - this._parentElement().offset().left)\r\n }\r\n }\r\n changeCursor(cursorName) {\r\n cursorName = isDefined(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n }\r\n dispose() {\r\n this._unsubscribeFromCallback();\r\n super.dispose()\r\n }\r\n}\r\nclass BlockSeparatorView extends SeparatorView {\r\n init() {\r\n var that = this;\r\n super.init();\r\n this.getController(\"data\").loadingChanged.add(isLoading => {\r\n if (!isLoading) {\r\n that.hide()\r\n }\r\n })\r\n }\r\n _renderSeparator() {\r\n super._renderSeparator();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n }\r\n hide() {\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\".concat(BLOCK_SEPARATOR_CLASS)).length) {\r\n $parent.prepend(this.element())\r\n }\r\n super.hide()\r\n }\r\n isVisible() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n }\r\n show(targetLocation) {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n this.element().css(\"display\", \"block\");\r\n break;\r\n case \"columnChooser\":\r\n ! function(toOptions) {\r\n fx.stop($element, true);\r\n fx.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n }({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n super.show()\r\n }\r\n}\r\nclass DraggingHeaderView extends modules.View {\r\n isDragging() {\r\n return this._isDragging\r\n }\r\n _getDraggingPanelByPos(pos) {\r\n var result;\r\n each(this._dragOptions.draggingPanels, (index, draggingPanel) => {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n return\r\n });\r\n return result\r\n }\r\n _renderCore() {\r\n this.element().addClass(\"\".concat(this.addWidgetPrefix(DRAGGING_HEADER_CLASS), \" \").concat(this.addWidgetPrefix(CELL_CONTENT_CLASS), \" \").concat(WIDGET_CLASS)).hide()\r\n }\r\n _resetTargetColumnOptions() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n }\r\n _getVisibleIndexObject(rowIndex, visibleIndex) {\r\n if (isDefined(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n }\r\n dispose() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\".concat(this.addWidgetPrefix(DRAGGING_HEADER_CLASS))).remove()\r\n }\r\n isVisible() {\r\n var columnsController = this.getController(\"columns\");\r\n var commonColumnSettings = columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n }\r\n init() {\r\n var that = this;\r\n super.init();\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this._isDragging = false;\r\n this.getController(\"data\").loadingChanged.add(isLoading => {\r\n var element = that.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n })\r\n }\r\n dragHeader(options) {\r\n var {\r\n columnElement: columnElement\r\n } = options;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n this._isDragging = true;\r\n this._dragOptions = options;\r\n this._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: this._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = domAdapter.getDocument();\r\n this._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n this._controller.drag(this._dropOptions);\r\n this.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || getHeight(columnElement)),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || getWidth(columnElement)),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(this.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n this.element().appendTo(swatchContainer.getSwatchContainer(columnElement))\r\n }\r\n moveHeader(args) {\r\n var e = args.event;\r\n var {\r\n that: that\r\n } = e.data;\r\n var eventData = getEventData(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n }\r\n dockHeader(eventData) {\r\n var targetDraggingPanel = this._getDraggingPanelByPos(eventData);\r\n var controller = this._controller;\r\n var params = this._dropOptions;\r\n var dragOptions = this._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var {\r\n sourceColumn: sourceColumn\r\n } = dragOptions;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns(extend({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && $(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = this._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n this._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n }\r\n dropHeader(args) {\r\n var e = args.event;\r\n var {\r\n that: that\r\n } = e.data;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n domAdapter.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n}\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nexport class ColumnsResizerViewController extends modules.ViewController {\r\n _isHeadersRowArea(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n }\r\n _isRtlParentStyle() {\r\n var _a;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_a = this._$parentContainer) || void 0 === _a ? void 0 : _a.parent().css(\"direction\"))\r\n }\r\n _pointCreated(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n }\r\n _getTargetPoint(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n }\r\n _moveSeparator(args) {\r\n var _a;\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = getEventData(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var isDragging = null === (_a = that._draggingHeaderView) || void 0 === _a ? void 0 : _a.isDragging();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + getWidth(that._$parentContainer))) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else if (!isDragging) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n }\r\n }\r\n _endResizing(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n }\r\n _getNextColumnIndex(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n }\r\n _setupResizingInfo(posX) {\r\n var currentColumnIndex = this._targetPoint.columnIndex;\r\n var nextColumnIndex = this._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = this._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = this._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n this._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? getBoundingRect(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? getBoundingRect(nextHeader[0]).width : 0\r\n }\r\n }\r\n _startResizing(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = getEventData(e);\r\n if (isTouchEvent(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this.getController(\"editorFactory\").loseFocus()\r\n }\r\n }\r\n _generatePointsByColumns() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = gridCoreUtils.getPointsByColumns(cells, point => that._pointCreated(point, cells.length, columns))\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n }\r\n _unsubscribeFromEvents() {\r\n this._moveSeparatorHandler && eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && eventsEngine.off(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n eventsEngine.off(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n }\r\n _subscribeToEvents() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n eventsEngine.on(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n eventsEngine.on(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n }\r\n _updateColumnsWidthIfNeeded(posX) {\r\n var deltaX;\r\n var needUpdate;\r\n var contentWidth = this._rowsView.contentWidth();\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n var nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n\r\n function isPercentWidth(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n columnsController.columnOption(column.index, \"width\", \"\".concat((columnWidth / contentWidth * 100).toFixed(3), \"%\"))\r\n } else {\r\n columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n var {\r\n cellWidth: cellWidth,\r\n nextCellWidth: nextCellWidth\r\n } = function(delta) {\r\n var nextMinWidth;\r\n var nextCellWidth;\r\n var needCorrectionNextCellWidth;\r\n var cellWidth = resizingInfo.currentColumnWidth + delta;\r\n var minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n var result = {};\r\n if (cellWidth >= minWidth) {\r\n result.cellWidth = cellWidth\r\n } else {\r\n result.cellWidth = minWidth;\r\n needCorrectionNextCellWidth = true\r\n }\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - delta;\r\n nextMinWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n if (nextCellWidth >= nextMinWidth) {\r\n if (needCorrectionNextCellWidth) {\r\n result.nextCellWidth = resizingInfo.nextColumnWidth - (delta + minWidth - cellWidth)\r\n } else {\r\n result.nextCellWidth = nextCellWidth\r\n }\r\n } else {\r\n result.nextCellWidth = nextMinWidth;\r\n result.cellWidth = resizingInfo.currentColumnWidth + (delta - nextMinWidth + nextCellWidth)\r\n }\r\n }\r\n return result\r\n }(deltaX);\r\n needUpdate = column.width !== cellWidth;\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = function(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(column => column.width);\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce((sum, column) => {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce((totalWidth, width) => totalWidth + width, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n }\r\n _subscribeToCallback(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n }\r\n _unsubscribeFromCallbacks() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n }\r\n _unsubscribes() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n }\r\n _init() {\r\n var that = this;\r\n var generatePointsByColumnsHandler = function() {\r\n if (!that._isResizing) {\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = function(offset) {\r\n if (that._scrollLeft !== offset.left) {\r\n that._scrollLeft = offset.left;\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._trackerView = that.getView(\"trackerView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._tablePositionController = that.getController(\"tablePosition\");\r\n that._$parentContainer = that.component.$element();\r\n that._draggingHeaderView = that.component.getView(\"draggingHeaderView\");\r\n that._subscribeToCallback(that._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnsSeparatorView.renderCompleted, () => {\r\n that._unsubscribeFromEvents();\r\n that._subscribeToEvents()\r\n });\r\n that._subscribeToCallback(that._rowsView.renderCompleted, () => {\r\n that._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n that._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n });\r\n var previousScrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n that._subscribeToCallback(that.getController(\"tablePosition\").positionChanged, e => {\r\n if (that._isResizing && !that._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n that.component.updateDimensions()\r\n } else {\r\n that._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n })\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n }\r\n isResizing() {\r\n return this._isResizing\r\n }\r\n init() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n }\r\n pointsByColumns(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n }\r\n dispose() {\r\n this._unsubscribes();\r\n super.dispose()\r\n }\r\n}\r\nclass TablePositionViewController extends modules.ViewController {\r\n constructor(component) {\r\n super(component);\r\n this.positionChanged = Callbacks()\r\n }\r\n update(top) {\r\n var params = {};\r\n var $element = this._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = isDefined(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = this._columnHeadersView ? this._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = this._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = this._rowsView ? this._rowsView.height() - scrollBarWidth : 0;\r\n var columnsResizerController = this.component.getController(\"columnsResizer\");\r\n var draggingHeaderView = this.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n this.positionChanged.fire(params)\r\n }\r\n init() {\r\n var that = this;\r\n super.init();\r\n that._columnHeadersView = this.getView(\"columnHeadersView\");\r\n that._rowsView = this.getView(\"rowsView\");\r\n that._pagerView = this.getView(\"pagerView\");\r\n that._rowsView.resizeCompleted.add(() => {\r\n if (that.option(\"allowColumnResizing\")) {\r\n var targetPoint = that.getController(\"columnsResizer\")._targetPoint;\r\n that.update(targetPoint ? targetPoint.y : null)\r\n }\r\n })\r\n }\r\n}\r\nexport class DraggingHeaderViewController extends modules.ViewController {\r\n _generatePointsByColumns(options) {\r\n var that = this;\r\n this.isCustomGroupColumnPosition = this.checkIsCustomGroupColumnPosition(options);\r\n var points = gridCoreUtils.getPointsByColumns(options.columnElements, point => that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn), options.isVerticalOrientation, options.startColumnIndex);\r\n return points\r\n }\r\n checkIsCustomGroupColumnPosition(options) {\r\n var wasOnlyCommandColumns = true;\r\n for (var i = 0; i < options.columns.length; i += 1) {\r\n var col = options.columns[i];\r\n if (\"expand\" === col.command && !wasOnlyCommandColumns) {\r\n return true\r\n }\r\n if (!col.command) {\r\n wasOnlyCommandColumns = false\r\n }\r\n }\r\n return false\r\n }\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var _a;\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n var isColumnAfterExpandColumn = \"expand\" === (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command);\r\n var isFirstExpandColumn = \"expand\" === (null === targetColumn || void 0 === targetColumn ? void 0 : targetColumn.command) && \"expand\" !== (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command);\r\n var sourceColumnReorderingDisabled = sourceColumn && !sourceColumn.allowReordering;\r\n var otherColumnsReorderingDisabled = !(null === targetColumn || void 0 === targetColumn ? void 0 : targetColumn.allowReordering) && !(null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.allowReordering);\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n if (sourceColumnReorderingDisabled) {\r\n return true\r\n }\r\n if (!isFirstExpandColumn) {\r\n return isColumnAfterExpandColumn || otherColumnsReorderingDisabled\r\n }\r\n if (this.isCustomGroupColumnPosition) {\r\n return false\r\n }\r\n while (\"expand\" === (null === (_a = columns[point.columnIndex]) || void 0 === _a ? void 0 : _a.command)) {\r\n point.columnIndex += 1\r\n }\r\n return false;\r\n default:\r\n return 0 === columns.length\r\n }\r\n }\r\n _subscribeToEvents(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (_, draggingPanel) => {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = $(columnElement);\r\n var column = columns[index];\r\n if (column && draggingPanel.allowDragging(column)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n eventsEngine.on($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE), that.createAction(args => {\r\n var e = args.event;\r\n var eventData = getEventData(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - $(e.currentTarget).offset().left,\r\n deltaY: eventData.y - $(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n }));\r\n eventsEngine.on($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n eventsEngine.on($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n each(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _unsubscribeFromEvents(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (_, draggingPanel) => {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n each(columnElements, (index, columnElement) => {\r\n var $columnElement = $(columnElement);\r\n eventsEngine.off($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n })\r\n }\r\n })\r\n }\r\n _getSeparator(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n }\r\n hideSeparators(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = void 0;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n }\r\n init() {\r\n var that = this;\r\n super.init();\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._draggingHeaderView = that.getView(\"draggingHeaderView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._blockSeparatorView = that.getView(\"blockSeparatorView\");\r\n that._headerPanelView = that.getView(\"headerPanel\");\r\n that._columnChooserView = that.getView(\"columnChooserView\");\r\n var subscribeToEvents = function() {\r\n if (that._draggingHeaderView) {\r\n var draggingPanels = [that._columnChooserView, that._columnHeadersView, that._headerPanelView];\r\n that._unsubscribeFromEvents(that._draggingHeaderView, draggingPanels);\r\n that._subscribeToEvents(that._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n that._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n that._headerPanelView && that._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n that._columnChooserView && that._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n }\r\n allowDrop(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n drag(parameters) {\r\n var {\r\n sourceIndex: sourceIndex\r\n } = parameters;\r\n var {\r\n sourceLocation: sourceLocation\r\n } = parameters;\r\n var {\r\n sourceColumnElement: sourceColumnElement\r\n } = parameters;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n }\r\n dock(parameters) {\r\n var that = this;\r\n var targetColumnIndex = isObject(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var {\r\n sourceLocation: sourceLocation\r\n } = parameters;\r\n var {\r\n targetLocation: targetLocation\r\n } = parameters;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n that._columnHeadersView.element().find(\".\".concat(HEADER_ROW_CLASS)).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n ! function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n }()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that.getController(\"tablePosition\").update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n }\r\n drop(parameters) {\r\n var {\r\n sourceColumnElement: sourceColumnElement\r\n } = parameters;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\".concat(HEADER_ROW_CLASS)).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n }\r\n dispose() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n}\r\nexport var columnsResizingReorderingModule = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _needUpdateRowHeight(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isResizing = columnsResizerController.isResizing();\r\n return this.callBase.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n }\r\n },\r\n controllers: {\r\n editorFactory: {\r\n renderFocusOverlay() {\r\n if (this.getController(\"columnsResizer\").isResizing()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnsResizingReorderingModule\r\n} from \"../../../grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering\";\r\nimport gridCore from \"../m_core\";\r\nexport var DraggingHeaderView = columnsResizingReorderingModule.views.draggingHeaderView;\r\nexport var DraggingHeaderViewController = columnsResizingReorderingModule.controllers.draggingHeader;\r\nexport var ColumnsSeparatorView = columnsResizingReorderingModule.views.columnsSeparatorView;\r\nexport var TablePositionViewController = columnsResizingReorderingModule.controllers.tablePosition;\r\nexport var ColumnsResizerViewController = columnsResizingReorderingModule.controllers.columnsResizer;\r\nexport var TrackerView = columnsResizingReorderingModule.views.trackerView;\r\ngridCore.registerModule(\"columnsResizingReordering\", columnsResizingReorderingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/utils/memoize.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nvar compareByReference = (args, lastArgs) => args.length === lastArgs.length && !Object.keys(args).some(key => args[key] !== lastArgs[key]);\r\nvar compareByValue = (args, lastArgs) => equalByValue(args, lastArgs, {\r\n maxDepth: 4\r\n});\r\nvar createCacheFunc = (firstArgs, firstResult, originFunc, compareFunc) => {\r\n var lastArgs = firstArgs;\r\n var lastResult = firstResult;\r\n return function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var argsEquals = compareFunc(args, lastArgs);\r\n if (argsEquals) {\r\n return lastResult\r\n }\r\n lastArgs = args;\r\n lastResult = originFunc(...lastArgs);\r\n return lastResult\r\n }\r\n};\r\nvar MEMOIZE_DEFAULT_OPTIONS = {\r\n compareType: \"reference\"\r\n};\r\nexport var memoize = function(func) {\r\n var {\r\n compareType: compareType\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : MEMOIZE_DEFAULT_OPTIONS;\r\n var cachedFunc = null;\r\n return function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n if (!cachedFunc) {\r\n var firstResult = func(...args);\r\n cachedFunc = createCacheFunc(args, firstResult, func, \"reference\" === compareType ? compareByReference : compareByValue);\r\n return firstResult\r\n }\r\n return cachedFunc(...args)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var ATTRIBUTES = {\r\n ariaColIndex: \"aria-colindex\",\r\n dragCell: \"dx-drag-cell\"\r\n};\r\nexport var ROWS_VIEW_CLASS = \"rowsview\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var GROUP_FOOTER_CLASS = \"group-footer\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var DATA_ROW_CLASS = \"dx-data-row\";\r\nexport var GROUP_ROW_CLASS = \"dx-group-row\";\r\nexport var HEADER_ROW_CLASS = \"dx-header-row\";\r\nexport var EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nexport var MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nexport var FREESPACE_ROW_CLASS = \"dx-freespace-row\";\r\nexport var VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nexport var MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nexport var COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nexport var COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nexport var COMMAND_CELL_SELECTOR = \"[class^=dx-command]\";\r\nexport var CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nexport var DATEBOX_WIDGET_NAME = \"dxDateBox\";\r\nexport var FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nexport var FOCUSED_CLASS = \"dx-focused\";\r\nexport var FAST_EDITING_DELETE_KEY = \"delete\";\r\nexport var INTERACTIVE_ELEMENTS_SELECTOR = '\\n input:not([type=\"hidden\"]):not([disabled]),\\n textarea:not([disabled]),\\n a:not([disabled]),\\n select:not([disabled]),\\n button:not([disabled]),\\n [tabindex]:not([disabled]),\\n .dx-checkbox:not([disabled],.dx-state-readonly)\\n';\r\nexport var NON_FOCUSABLE_ELEMENTS_SELECTOR = \"\".concat(INTERACTIVE_ELEMENTS_SELECTOR, \", .dx-dropdowneditor-icon\");\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var FOCUS_TYPE_ROW = \"row\";\r\nexport var FOCUS_TYPE_CELL = \"cell\";\r\nexport var COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nexport var FUNCTIONAL_KEYS = [\"shift\", \"control\", \"alt\"];\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n EDITOR_CELL_CLASS\r\n} from \"../editing/const\";\r\nimport {\r\n COMMAND_SELECT_CLASS,\r\n DATA_ROW_CLASS,\r\n FREESPACE_ROW_CLASS,\r\n GROUP_ROW_CLASS,\r\n HEADER_ROW_CLASS,\r\n MASTER_DETAIL_ROW_CLASS,\r\n VIRTUAL_ROW_CLASS\r\n} from \"./const\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nexport function isGroupRow($row) {\r\n return $row && $row.hasClass(GROUP_ROW_CLASS)\r\n}\r\nexport function isGroupFooterRow($row) {\r\n return $row && $row.hasClass(DATAGRID_GROUP_FOOTER_CLASS)\r\n}\r\nexport function isDetailRow($row) {\r\n return $row && $row.hasClass(MASTER_DETAIL_ROW_CLASS)\r\n}\r\nexport function isDataRow($row) {\r\n return $row && $row.hasClass(DATA_ROW_CLASS)\r\n}\r\nexport function isNotFocusedRow($row) {\r\n return !$row || $row.hasClass(FREESPACE_ROW_CLASS) || $row.hasClass(VIRTUAL_ROW_CLASS)\r\n}\r\nexport function isEditorCell(that, $cell) {\r\n return !that._isRowEditMode() && $cell && !$cell.hasClass(COMMAND_SELECT_CLASS) && $cell.hasClass(EDITOR_CELL_CLASS)\r\n}\r\nexport function isElementDefined($element) {\r\n return isDefined($element) && $element.length > 0\r\n}\r\nexport function isMobile() {\r\n return \"desktop\" !== devices.current().deviceType\r\n}\r\nexport function isCellInHeaderRow($cell) {\r\n return !!$cell.parent(\".\".concat(HEADER_ROW_CLASS)).length\r\n}\r\nexport function isFixedColumnIndexOffsetRequired(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return !(\"right\" === column.fixedPosition || isDefined(column.command) && !isDefined(column.fixedPosition))\r\n }\r\n return !(!isDefined(column.fixedPosition) || \"left\" === column.fixedPosition)\r\n}\r\nexport function shouldPreventScroll(that) {\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n return keyboardController._isVirtualScrolling() ? that.option(\"focusedRowIndex\") === keyboardController.getRowIndex() : false\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../../../events/short\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport {\r\n focused\r\n} from \"../../../../ui/widget/selectors\";\r\nimport {\r\n memoize\r\n} from \"../../../utils/memoize\";\r\nimport {\r\n EDIT_FORM_CLASS,\r\n EDIT_MODE_BATCH,\r\n EDIT_MODE_CELL,\r\n EDIT_MODE_FORM,\r\n EDIT_MODE_ROW,\r\n EDITOR_CELL_CLASS,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n ROW_CLASS\r\n} from \"../editing/const\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ADAPTIVE_COLUMN_NAME_CLASS,\r\n CELL_FOCUS_DISABLED_CLASS,\r\n COLUMN_HEADERS_VIEW,\r\n COMMAND_CELL_SELECTOR,\r\n COMMAND_EDIT_CLASS,\r\n COMMAND_EXPAND_CLASS,\r\n COMMAND_SELECT_CLASS,\r\n DATA_ROW_CLASS,\r\n DATEBOX_WIDGET_NAME,\r\n DROPDOWN_EDITOR_OVERLAY_CLASS,\r\n EDIT_FORM_ITEM_CLASS,\r\n FAST_EDITING_DELETE_KEY,\r\n FOCUS_STATE_CLASS,\r\n FOCUS_TYPE_CELL,\r\n FOCUS_TYPE_ROW,\r\n FOCUSED_CLASS,\r\n FREESPACE_ROW_CLASS,\r\n FUNCTIONAL_KEYS,\r\n INTERACTIVE_ELEMENTS_SELECTOR,\r\n MASTER_DETAIL_CELL_CLASS,\r\n NON_FOCUSABLE_ELEMENTS_SELECTOR,\r\n REVERT_BUTTON_CLASS,\r\n ROWS_VIEW_CLASS,\r\n WIDGET_CLASS\r\n} from \"./const\";\r\nimport {\r\n GridCoreKeyboardNavigationDom\r\n} from \"./dom\";\r\nimport {\r\n isCellInHeaderRow,\r\n isDataRow,\r\n isDetailRow,\r\n isEditorCell,\r\n isElementDefined,\r\n isFixedColumnIndexOffsetRequired,\r\n isGroupFooterRow,\r\n isGroupRow,\r\n isMobile,\r\n isNotFocusedRow,\r\n shouldPreventScroll\r\n} from \"./m_keyboard_navigation_utils\";\r\nimport {\r\n keyboardNavigationScrollableA11yExtender\r\n} from \"./scrollable_a11y\";\r\nexport class KeyboardNavigationController extends modules.ViewController {\r\n init() {\r\n var _a, _b;\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._editingController = this.getController(\"editing\");\r\n this._headerPanel = this.getView(\"headerPanel\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._editorFactory = this.getController(\"editorFactory\");\r\n this._focusController = this.getController(\"focus\");\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this._memoFireFocusedCellChanged = memoize(this._memoFireFocusedCellChanged.bind(this), {\r\n compareType: \"value\"\r\n });\r\n this._memoFireFocusedRowChanged = memoize(this._memoFireFocusedRowChanged.bind(this), {\r\n compareType: \"value\"\r\n });\r\n this.focusedHandlerWithContext = this.focusedHandlerWithContext || this.focusedHandler.bind(this);\r\n this.renderCompletedWithContext = this.renderCompletedWithContext || this.renderCompleted.bind(this);\r\n this.rowsViewFocusHandlerContext = this.rowsViewFocusHandlerContext || this.rowsViewFocusHandler.bind(this);\r\n this._updateFocusTimeout = null;\r\n this._fastEditingStarted = false;\r\n this._focusedCellPosition = {};\r\n this._canceledCellPosition = null;\r\n if (this.isKeyboardEnabled()) {\r\n accessibility.subscribeVisibilityChange();\r\n null === (_a = this._editorFactory) || void 0 === _a ? void 0 : _a.focused.add(this.focusedHandlerWithContext);\r\n this.createAction(\"onKeyDown\")\r\n } else {\r\n accessibility.unsubscribeVisibilityChange();\r\n null === (_b = this._editorFactory) || void 0 === _b ? void 0 : _b.focused.remove(this.focusedHandlerWithContext)\r\n }\r\n this.initViewHandlers();\r\n this.initDocumentHandlers()\r\n }\r\n focusedHandler($element) {\r\n this.setupFocusedView();\r\n if (this._isNeedScroll) {\r\n if ($element.is(\":visible\") && this._focusedView && this._focusedView.getScrollable) {\r\n this._focusedView._scrollToElement($element);\r\n this._isNeedScroll = false\r\n }\r\n }\r\n }\r\n rowsViewFocusHandler(event) {\r\n var _a;\r\n var $element = $(event.target);\r\n var isRelatedTargetInRowsView = $(event.relatedTarget).closest(this._rowsView.element()).length;\r\n var isLink = $element.is(\"a\");\r\n if (event.relatedTarget && isLink && !isRelatedTargetInRowsView && this._isEventInCurrentGrid(event)) {\r\n var $focusedCell = this._getFocusedCell();\r\n $focusedCell = !isElementDefined($focusedCell) ? this._rowsView.getCellElements(0).filter(\"[tabindex]\").eq(0) : $focusedCell;\r\n if (!$element.closest($focusedCell).length) {\r\n event.preventDefault();\r\n eventsEngine.trigger($focusedCell, \"focus\")\r\n }\r\n }\r\n var isCell = $element.is(\"td\");\r\n var needSetFocusPosition = (null !== (_a = this.option(\"focusedRowIndex\")) && void 0 !== _a ? _a : -1) < 0;\r\n if (isCell && needSetFocusPosition) {\r\n this._updateFocusedCellPosition($element)\r\n }\r\n }\r\n subscribeToRowsViewFocusEvent() {\r\n var _a;\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.on($rowsView, \"focusin\", this.rowsViewFocusHandlerContext)\r\n }\r\n unsubscribeFromRowsViewFocusEvent() {\r\n var _a;\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.off($rowsView, \"focusin\", this.rowsViewFocusHandlerContext)\r\n }\r\n renderCompleted(e) {\r\n var $rowsView = this._rowsView.element();\r\n var isFullUpdate = !e || \"refresh\" === e.changeType;\r\n var isFocusedViewCorrect = this._focusedView && this._focusedView.name === this._rowsView.name;\r\n var needUpdateFocus = false;\r\n var isAppend = e && (\"append\" === e.changeType || \"prepend\" === e.changeType);\r\n var root = $(domAdapter.getRootNode($rowsView.get && $rowsView.get(0)));\r\n var $focusedElement = root.find(\":focus\");\r\n var isFocusedElementCorrect = !$focusedElement.length || $focusedElement.closest($rowsView).length;\r\n this.unsubscribeFromRowsViewFocusEvent();\r\n this.subscribeToRowsViewFocusEvent();\r\n this.initPointerEventHandler();\r\n this.initKeyDownHandler();\r\n this._setRowsViewAttributes();\r\n if (isFocusedViewCorrect && isFocusedElementCorrect) {\r\n needUpdateFocus = this._isNeedFocus ? !isAppend : this._isHiddenFocus && isFullUpdate && !(null === e || void 0 === e ? void 0 : e.virtualColumnsScrolling);\r\n needUpdateFocus && this._updateFocus(true)\r\n }\r\n }\r\n initViewHandlers() {\r\n var _a, _b;\r\n this.unsubscribeFromRowsViewFocusEvent();\r\n this.unsubscribeFromPointerEvent();\r\n this.unsubscribeFromKeyDownEvent();\r\n null === (_b = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.renderCompleted) || void 0 === _b ? void 0 : _b.remove(this.renderCompletedWithContext);\r\n if (this.isKeyboardEnabled()) {\r\n this._rowsView.renderCompleted.add(this.renderCompletedWithContext)\r\n }\r\n }\r\n initDocumentHandlers() {\r\n var document = domAdapter.getDocument();\r\n this._documentClickHandler = this._documentClickHandler || this.createAction(e => {\r\n var $target = $(e.event.target);\r\n var isCurrentRowsViewClick = this._isEventInCurrentGrid(e.event) && $target.closest(\".\".concat(this.addWidgetPrefix(ROWS_VIEW_CLASS))).length;\r\n var isEditorOverlay = $target.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length;\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isColumnResizing = !!columnsResizerController && columnsResizerController.isResizing();\r\n if (!isCurrentRowsViewClick && !isEditorOverlay && !isColumnResizing) {\r\n var targetInsideFocusedView = this._focusedView ? $target.parents().filter(this._focusedView.element()).length > 0 : false;\r\n !targetInsideFocusedView && this._resetFocusedCell(true);\r\n this._resetFocusedView()\r\n }\r\n });\r\n eventsEngine.off(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n if (this.isKeyboardEnabled()) {\r\n eventsEngine.on(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler)\r\n }\r\n }\r\n _setRowsViewAttributes() {\r\n var $rowsView = this._getRowsViewElement();\r\n var isGridEmpty = !this._dataController.getVisibleRows().length;\r\n if (isGridEmpty) {\r\n this._applyTabIndexToElement($rowsView)\r\n }\r\n }\r\n unsubscribeFromPointerEvent() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var $rowsView = this._getRowsViewElement();\r\n this._pointerEventAction && eventsEngine.off($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), this._pointerEventAction)\r\n }\r\n subscribeToPointerEvent() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var $rowsView = this._getRowsViewElement();\r\n var clickSelector = \".\".concat(ROW_CLASS, \" > td, .\").concat(ROW_CLASS);\r\n eventsEngine.on($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), clickSelector, this._pointerEventAction)\r\n }\r\n initPointerEventHandler() {\r\n this._pointerEventAction = this._pointerEventAction || this.createAction(this._pointerEventHandler);\r\n this.unsubscribeFromPointerEvent();\r\n this.subscribeToPointerEvent()\r\n }\r\n unsubscribeFromKeyDownEvent() {\r\n keyboard.off(this._keyDownListener)\r\n }\r\n subscribeToKeyDownEvent() {\r\n var $rowsView = this._getRowsViewElement();\r\n this._keyDownListener = keyboard.on($rowsView, null, e => this._keyDownHandler(e))\r\n }\r\n initKeyDownHandler() {\r\n this._keyDownListener && this.unsubscribeFromKeyDownEvent();\r\n this.subscribeToKeyDownEvent()\r\n }\r\n dispose() {\r\n super.dispose();\r\n this._resetFocusedView();\r\n keyboard.off(this._keyDownListener);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n clearTimeout(this._updateFocusTimeout);\r\n accessibility.unsubscribeVisibilityChange()\r\n }\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"keyboardNavigation\":\r\n case \"useLegacyKeyboardNavigation\":\r\n this.init();\r\n args.handled = true;\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isRowFocusType() {\r\n return this.focusType === FOCUS_TYPE_ROW\r\n }\r\n isCellFocusType() {\r\n return this.focusType === FOCUS_TYPE_CELL\r\n }\r\n setRowFocusType() {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.focusType = FOCUS_TYPE_ROW\r\n }\r\n }\r\n setCellFocusType() {\r\n this.focusType = FOCUS_TYPE_CELL\r\n }\r\n _keyDownHandler(e) {\r\n var _a;\r\n var needStopPropagation = true;\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n var isHandled = this._processOnKeyDown(e);\r\n var isEditing = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isEditing();\r\n var {\r\n originalEvent: originalEvent\r\n } = e;\r\n if (originalEvent.isDefaultPrevented()) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n return\r\n }!FUNCTIONAL_KEYS.includes(e.keyName) && this._updateFocusedCellPositionByTarget(originalEvent.target);\r\n if (!isHandled) {\r\n switch (e.keyName) {\r\n case \"leftArrow\":\r\n case \"rightArrow\":\r\n this._leftRightKeysHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"upArrow\":\r\n case \"downArrow\":\r\n if (e.ctrl) {\r\n accessibility.selectView(\"rowsView\", this, originalEvent)\r\n } else {\r\n this._upDownKeysHandler(e, isEditing)\r\n }\r\n isHandled = true;\r\n break;\r\n case \"pageUp\":\r\n case \"pageDown\":\r\n this._pageUpDownKeyHandler(e);\r\n isHandled = true;\r\n break;\r\n case \"space\":\r\n isHandled = this._spaceKeyHandler(e, isEditing);\r\n break;\r\n case \"A\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlAKeyHandler(e, isEditing);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"tab\":\r\n this._tabKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"enter\":\r\n this._enterKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"escape\":\r\n isHandled = this._escapeKeyHandler(e, isEditing);\r\n break;\r\n case \"F\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlFKeyHandler(e);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"F2\":\r\n this._f2KeyHandler();\r\n isHandled = true;\r\n break;\r\n case \"del\":\r\n case \"backspace\":\r\n if (this._isFastEditingAllowed() && !this._isFastEditingStarted()) {\r\n isHandled = this._beginFastEditing(originalEvent, true)\r\n }\r\n }\r\n if (!isHandled && !this._beginFastEditing(originalEvent)) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n needStopPropagation = false\r\n }\r\n if (needStopPropagation) {\r\n originalEvent.stopPropagation()\r\n }\r\n }\r\n }\r\n _processOnKeyDown(eventArgs) {\r\n var {\r\n originalEvent: originalEvent\r\n } = eventArgs;\r\n var args = {\r\n handled: false,\r\n event: originalEvent\r\n };\r\n this.executeAction(\"onKeyDown\", args);\r\n eventArgs.ctrl = originalEvent.ctrlKey;\r\n eventArgs.alt = originalEvent.altKey;\r\n eventArgs.shift = originalEvent.shiftKey;\r\n return !!args.handled\r\n }\r\n _closeEditCell() {\r\n setTimeout(() => {\r\n this._editingController.closeEditCell()\r\n })\r\n }\r\n _leftRightKeysHandler(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $event = eventArgs.originalEvent;\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && isDataRow($row);\r\n if (allowNavigate) {\r\n this.setCellFocusType();\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(directionCode)\r\n }\r\n var $cell = this._getNextCell(directionCode);\r\n if (isElementDefined($cell)) {\r\n this._arrowKeysHandlerFocusCell($event, $cell, directionCode)\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n }\r\n _upDownKeysHandler(eventArgs, isEditing) {\r\n var _a, _b;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(visibleRowIndex);\r\n var $event = eventArgs.originalEvent;\r\n var isUpArrow = \"upArrow\" === eventArgs.keyName;\r\n var dataSource = this._dataController.dataSource();\r\n var isRowEditingInCurrentRow = null === (_b = null === (_a = this._editingController) || void 0 === _a ? void 0 : _a.isEditRowByIndex) || void 0 === _b ? void 0 : _b.call(_a, visibleRowIndex);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isRowEditingInCurrentRow || !isEditing || isEditingNavigationMode) && $row && !isDetailRow($row);\r\n if (allowNavigate) {\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (!this._navigateNextCell($event, eventArgs.keyName)) {\r\n if (this._isVirtualRowRender() && isUpArrow && dataSource && !dataSource.isLoading()) {\r\n var rowHeight = getOuterHeight($row);\r\n var rowIndex = this._focusedCellPosition.rowIndex - 1;\r\n this._scrollBy(0, -rowHeight, rowIndex, $event)\r\n }\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n }\r\n _pageUpDownKeyHandler(eventArgs) {\r\n var pageIndex = this._dataController.pageIndex();\r\n var pageCount = this._dataController.pageCount();\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var isPageUp = \"pageUp\" === eventArgs.keyName;\r\n var pageStep = isPageUp ? -1 : 1;\r\n var scrollable = this._rowsView.getScrollable();\r\n if (pagingEnabled && !this._isVirtualScrolling()) {\r\n if ((isPageUp ? pageIndex > 0 : pageIndex < pageCount - 1) && !this._isVirtualScrolling()) {\r\n this._dataController.pageIndex(pageIndex + pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else if (scrollable && getHeight(scrollable.container()) < getHeight(scrollable.$content())) {\r\n this._scrollBy(0, getHeight(scrollable.container()) * pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _spaceKeyHandler(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $target = $(eventArgs.originalEvent && eventArgs.originalEvent.target);\r\n if (this.option(\"selection\") && \"none\" !== this.option(\"selection\").mode && !isEditing) {\r\n var isFocusedRowElement = \"row\" === this._getElementType($target) && this.isRowFocusType() && isDataRow($target);\r\n var isFocusedSelectionCell = $target.hasClass(COMMAND_SELECT_CLASS);\r\n if (isFocusedSelectionCell && \"onClick\" === this.option(\"selection.showCheckBoxesMode\")) {\r\n this._selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (isFocusedRowElement || $target.parent().hasClass(DATA_ROW_CLASS) || $target.hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: eventArgs.shift,\r\n control: eventArgs.ctrl\r\n });\r\n eventArgs.originalEvent.preventDefault();\r\n return true\r\n }\r\n return false\r\n }\r\n return this._beginFastEditing(eventArgs.originalEvent)\r\n }\r\n _ctrlAKeyHandler(eventArgs, isEditing) {\r\n if (!isEditing && !eventArgs.alt && \"multiple\" === this.option(\"selection.mode\") && this.option(\"selection.allowSelectAll\")) {\r\n this._selectionController.selectAll();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _tabKeyHandler(eventArgs, isEditing) {\r\n var editingOptions = this.option(\"editing\");\r\n var direction = eventArgs.shift ? \"previous\" : \"next\";\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var focusedViewElement = this._focusedView && this._focusedView.element();\r\n if (this._handleTabKeyOnMasterDetailCell(eventTarget, direction)) {\r\n return\r\n }\r\n $(focusedViewElement).addClass(FOCUS_STATE_CLASS);\r\n if (editingOptions && eventTarget && !isOriginalHandlerRequired) {\r\n if ($(eventTarget).hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._resetFocusedCell()\r\n }\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(direction)\r\n }\r\n if (isEditing) {\r\n if (!this._editingCellTabHandler(eventArgs, direction)) {\r\n return\r\n }\r\n } else if (this._targetCellTabHandler(eventArgs, direction)) {\r\n isOriginalHandlerRequired = true\r\n }\r\n }\r\n if (isOriginalHandlerRequired) {\r\n this._editorFactory.loseFocus();\r\n if (this._editingController.isEditing() && !this._isRowEditMode()) {\r\n this._resetFocusedCell(true);\r\n this._resetFocusedView();\r\n this._closeEditCell()\r\n }\r\n } else {\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n _getMaxHorizontalOffset() {\r\n var scrollable = this.component.getScrollable();\r\n return scrollable ? scrollable.scrollWidth() - getWidth(this._rowsView.element()) : 0\r\n }\r\n _isColumnRendered(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var renderedVisibleColumns = this._columnsController.getVisibleColumns();\r\n var column = allVisibleColumns[columnIndex];\r\n var result = false;\r\n if (column) {\r\n result = renderedVisibleColumns.indexOf(column) >= 0\r\n }\r\n return result\r\n }\r\n _isFixedColumn(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var column = allVisibleColumns[columnIndex];\r\n return !!column && !!column.fixed\r\n }\r\n _isColumnVirtual(columnIndex) {\r\n var localColumnIndex = columnIndex - this._columnsController.getColumnIndexOffset();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var column = visibleColumns[localColumnIndex];\r\n return !!column && \"virtual\" === column.command\r\n }\r\n _processVirtualHorizontalPosition(direction) {\r\n var scrollable = this.component.getScrollable();\r\n var columnIndex = this.getColumnIndex();\r\n var nextColumnIndex;\r\n var horizontalScrollPosition = 0;\r\n var needToScroll = false;\r\n switch (direction) {\r\n case \"next\":\r\n case \"nextInRow\":\r\n var columnsCount = this._getVisibleColumnCount();\r\n nextColumnIndex = columnIndex + 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? this._getMaxHorizontalOffset() : 0;\r\n if (\"next\" === direction) {\r\n needToScroll = columnsCount === nextColumnIndex || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = columnsCount > nextColumnIndex && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n break;\r\n case \"previous\":\r\n case \"previousInRow\":\r\n nextColumnIndex = columnIndex - 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? 0 : this._getMaxHorizontalOffset();\r\n if (\"previous\" === direction) {\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var leftEdgePosition = nextColumnIndex < 0 && 0 === columnIndexOffset;\r\n needToScroll = leftEdgePosition || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = nextColumnIndex >= 0 && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n }\r\n if (needToScroll) {\r\n scrollable.scrollTo({\r\n left: horizontalScrollPosition\r\n })\r\n } else if (isDefined(nextColumnIndex) && isDefined(direction) && this._isColumnVirtual(nextColumnIndex)) {\r\n horizontalScrollPosition = this._getHorizontalScrollPositionOffset(direction);\r\n 0 !== horizontalScrollPosition && scrollable.scrollBy({\r\n left: horizontalScrollPosition,\r\n top: 0\r\n })\r\n }\r\n }\r\n _getHorizontalScrollPositionOffset(direction) {\r\n var positionOffset = 0;\r\n var $currentCell = this._getCell(this._focusedCellPosition);\r\n var currentCellWidth = $currentCell && getOuterWidth($currentCell);\r\n if (currentCellWidth > 0) {\r\n var rtlMultiplier = this.option(\"rtlEnabled\") ? -1 : 1;\r\n positionOffset = \"nextInRow\" === direction || \"next\" === direction ? currentCellWidth * rtlMultiplier : currentCellWidth * rtlMultiplier * -1\r\n }\r\n return positionOffset\r\n }\r\n _editingCellTabHandler(eventArgs, direction) {\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var isEditingAllowed;\r\n var $event = eventArgs.originalEvent;\r\n var elementType = this._getElementType(eventTarget);\r\n if ($cell.is(COMMAND_CELL_SELECTOR)) {\r\n return !this._targetCellTabHandler(eventArgs, direction)\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell || this._handleTabKeyOnMasterDetailCell($cell, direction)) {\r\n return false\r\n }\r\n var column = this._getColumnByCellElement($cell);\r\n var $row = $cell.parent();\r\n var rowIndex = this._getRowIndex($row);\r\n var row = this._dataController.items()[rowIndex];\r\n var editingController = this._editingController;\r\n if (column && column.allowEditing) {\r\n var _isDataRow = !row || \"data\" === row.rowType;\r\n isEditingAllowed = editingController.allowUpdating({\r\n row: row\r\n }) ? _isDataRow : row && row.isNewRow\r\n }\r\n if (!isEditingAllowed) {\r\n this._closeEditCell()\r\n }\r\n if (this._focusCell($cell, !nextCellInfo.isHighlighted)) {\r\n if (!this._isRowEditMode() && isEditingAllowed) {\r\n this._editFocusedCell()\r\n } else {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return true\r\n }\r\n _targetCellTabHandler(eventArgs, direction) {\r\n var $event = eventArgs.originalEvent;\r\n var eventTarget = $event.target;\r\n var elementType = this._getElementType(eventTarget);\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var $lastInteractiveElement = \"cell\" === elementType && this._getInteractiveElement($cell, !eventArgs.shift);\r\n var isOriginalHandlerRequired = false;\r\n if (!isEditorCell(this, $cell) && (null === $lastInteractiveElement || void 0 === $lastInteractiveElement ? void 0 : $lastInteractiveElement.length) && eventTarget !== $lastInteractiveElement.get(0)) {\r\n isOriginalHandlerRequired = true\r\n } else {\r\n if (void 0 === this._focusedCellPosition.rowIndex && $(eventTarget).hasClass(ROW_CLASS)) {\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n elementType = this._getElementType(eventTarget);\r\n if (this.isRowFocusType()) {\r\n this.setCellFocusType();\r\n if (\"row\" === elementType && isDataRow($(eventTarget))) {\r\n eventTarget = this.getFirstValidCellInRow($(eventTarget));\r\n elementType = this._getElementType(eventTarget)\r\n }\r\n }\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell) {\r\n return false\r\n }\r\n $cell = this._checkNewLineTransition($event, $cell);\r\n if (!$cell) {\r\n return false\r\n }\r\n this._focusCell($cell, !nextCellInfo.isHighlighted);\r\n if (!isEditorCell(this, $cell)) {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return isOriginalHandlerRequired\r\n }\r\n _getNextCellByTabKey($event, direction, elementType) {\r\n var $cell = this._getNextCell(direction, elementType);\r\n var args = $cell && this._fireFocusedCellChanging($event, $cell, true);\r\n if (!args || args.cancel) {\r\n return {}\r\n }\r\n if (args.$newCellElement) {\r\n $cell = args.$newCellElement\r\n }\r\n return {\r\n $cell: $cell,\r\n isHighlighted: args.isHighlighted\r\n }\r\n }\r\n _checkNewLineTransition($event, $cell) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = $cell.parent();\r\n if (rowIndex !== this._getRowIndex($row)) {\r\n var cellPosition = this._getCellPosition($cell);\r\n var args = this._fireFocusedRowChanging($event, $row);\r\n if (args.cancel) {\r\n return\r\n }\r\n if (args.rowIndexChanged && cellPosition) {\r\n this.setFocusedColumnIndex(cellPosition.columnIndex);\r\n $cell = this._getFocusedCell()\r\n }\r\n }\r\n return $cell\r\n }\r\n _enterKeyHandler(eventArgs, isEditing) {\r\n var _a;\r\n var rowIndex = this.getVisibleRowIndex();\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var $row = null === (_a = this._focusedView) || void 0 === _a ? void 0 : _a.getRow(rowIndex);\r\n var $cell = this._getFocusedCell();\r\n var needExpandGroupRow = this.option(\"grouping.allowCollapsing\") && isGroupRow($row);\r\n var needExpandMasterDetailRow = this.option(\"masterDetail.enabled\") && (null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(COMMAND_EXPAND_CLASS));\r\n var needExpandAdaptiveRow = null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(ADAPTIVE_COLUMN_NAME_CLASS);\r\n if (needExpandGroupRow || needExpandMasterDetailRow) {\r\n var item = this._dataController.items()[rowIndex];\r\n var isNotContinuation = (null === item || void 0 === item ? void 0 : item.data) && !item.data.isContinuation;\r\n if (isDefined(key) && isNotContinuation) {\r\n this._dataController.changeRowExpand(key)\r\n }\r\n } else if (needExpandAdaptiveRow) {\r\n this._adaptiveColumnsController.toggleExpandAdaptiveDetailRow(key);\r\n this._updateFocusedCellPosition($cell)\r\n } else if (!(null === $cell || void 0 === $cell ? void 0 : $cell.hasClass(COMMAND_EDIT_CLASS))) {\r\n this._processEnterKeyForDataCell(eventArgs, isEditing)\r\n }\r\n }\r\n _processEnterKeyForDataCell(eventArgs, isEditing) {\r\n var direction = this._getEnterKeyDirection(eventArgs);\r\n var allowEditingOnEnterKey = this._allowEditingOnEnterKey();\r\n if (isEditing || !allowEditingOnEnterKey && direction) {\r\n this._handleEnterKeyEditingCell(eventArgs.originalEvent);\r\n if (\"next\" === direction || \"previous\" === direction) {\r\n this._targetCellTabHandler(eventArgs, direction)\r\n } else if (\"upArrow\" === direction || \"downArrow\" === direction) {\r\n this._navigateNextCell(eventArgs.originalEvent, direction)\r\n }\r\n } else if (allowEditingOnEnterKey) {\r\n this._startEditing(eventArgs)\r\n }\r\n }\r\n _getEnterKeyDirection(eventArgs) {\r\n var enterKeyDirection = this.option(\"keyboardNavigation.enterKeyDirection\");\r\n var isShift = eventArgs.shift;\r\n if (\"column\" === enterKeyDirection) {\r\n return isShift ? \"upArrow\" : \"downArrow\"\r\n }\r\n if (\"row\" === enterKeyDirection) {\r\n return isShift ? \"previous\" : \"next\"\r\n }\r\n return\r\n }\r\n _handleEnterKeyEditingCell(event) {\r\n var {\r\n target: target\r\n } = event;\r\n var $cell = this._getCellElementFromTarget(target);\r\n var isRowEditMode = this._isRowEditMode();\r\n this._updateFocusedCellPosition($cell);\r\n if (isRowEditMode) {\r\n this._focusEditFormCell($cell);\r\n setTimeout(this._editingController.saveEditData.bind(this._editingController))\r\n } else {\r\n eventsEngine.trigger($(target), \"change\");\r\n this._closeEditCell();\r\n event.preventDefault()\r\n }\r\n }\r\n _escapeKeyHandler(eventArgs, isEditing) {\r\n var $cell = this._getCellElementFromTarget(eventArgs.originalEvent.target);\r\n if (isEditing) {\r\n this._updateFocusedCellPosition($cell);\r\n if (!this._isRowEditMode()) {\r\n if (\"cell\" === this._editingController.getEditMode()) {\r\n this._editingController.cancelEditData()\r\n } else {\r\n this._closeEditCell()\r\n }\r\n } else {\r\n this._focusEditFormCell($cell);\r\n this._editingController.cancelEditData();\r\n if (0 === this._dataController.items().length) {\r\n this._resetFocusedCell();\r\n this._editorFactory.loseFocus()\r\n }\r\n }\r\n eventArgs.originalEvent.preventDefault();\r\n return true\r\n }\r\n return false\r\n }\r\n _ctrlFKeyHandler(eventArgs) {\r\n if (this.option(\"searchPanel.visible\")) {\r\n var searchTextEditor = this._headerPanel.getSearchTextEditor();\r\n if (searchTextEditor) {\r\n searchTextEditor.focus();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n }\r\n _f2KeyHandler() {\r\n var isEditing = this._editingController.isEditing();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (!isEditing && isDataRow($row)) {\r\n this._startEditing()\r\n }\r\n }\r\n _navigateNextCell($event, keyCode) {\r\n var $cell = this._getNextCell(keyCode);\r\n var directionCode = this._getDirectionCodeByKey(keyCode);\r\n var isCellValid = $cell && this._isCellValid($cell);\r\n var result = isCellValid ? this._arrowKeysHandlerFocusCell($event, $cell, directionCode) : false;\r\n return result\r\n }\r\n _arrowKeysHandlerFocusCell($event, $nextCell, direction) {\r\n var isVerticalDirection = \"prevRow\" === direction || \"nextRow\" === direction;\r\n var args = this._fireFocusChangingEvents($event, $nextCell, isVerticalDirection, true);\r\n $nextCell = args.$newCellElement;\r\n if (!args.cancel && this._isCellValid($nextCell)) {\r\n this._focus($nextCell, !args.isHighlighted);\r\n return true\r\n }\r\n return false\r\n }\r\n _beginFastEditing(originalEvent, isDeleting) {\r\n if (!this._isFastEditingAllowed() || originalEvent.altKey || originalEvent.ctrlKey || this._editingController.isEditing()) {\r\n return false\r\n }\r\n if (isDeleting) {\r\n this._startEditing(originalEvent, FAST_EDITING_DELETE_KEY)\r\n } else {\r\n var {\r\n key: key\r\n } = originalEvent;\r\n var keyCode = originalEvent.keyCode || originalEvent.which;\r\n var fastEditingKey = key || keyCode && String.fromCharCode(keyCode);\r\n if (fastEditingKey && (1 === fastEditingKey.length || fastEditingKey === FAST_EDITING_DELETE_KEY)) {\r\n this._startEditing(originalEvent, fastEditingKey)\r\n }\r\n }\r\n return true\r\n }\r\n _pointerEventHandler(e) {\r\n var _a;\r\n var event = e.event || e;\r\n var $target = $(event.currentTarget);\r\n var focusedViewElement = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n var $parent = $target.parent();\r\n var isInteractiveElement = $(event.target).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isRevertButton = !!$(event.target).closest(\".\".concat(REVERT_BUTTON_CLASS)).length;\r\n var isExpandCommandCell = $target.hasClass(COMMAND_EXPAND_CLASS);\r\n if (!this._isEventInCurrentGrid(event)) {\r\n return\r\n }\r\n if (!isRevertButton && (this._isCellValid($target, !isInteractiveElement) || isExpandCommandCell)) {\r\n $target = this._isInsideEditForm($target) ? $(event.target) : $target;\r\n this._focusView();\r\n $(focusedViewElement).removeClass(FOCUS_STATE_CLASS);\r\n if ($parent.hasClass(FREESPACE_ROW_CLASS)) {\r\n this._updateFocusedCellPosition($target);\r\n this._applyTabIndexToElement(this._focusedView.element());\r\n this._focusedView.focus(true)\r\n } else if (!this._isMasterDetailCell($target)) {\r\n this._clickTargetCellHandler(event, $target)\r\n } else {\r\n this._updateFocusedCellPosition($target)\r\n }\r\n } else if ($target.is(\"td\")) {\r\n this._resetFocusedCell()\r\n }\r\n }\r\n _clickTargetCellHandler(event, $cell) {\r\n var column = this._getColumnByCellElement($cell);\r\n var isCellEditMode = this._isCellEditMode();\r\n this.setCellFocusType();\r\n var args = this._fireFocusChangingEvents(event, $cell, true);\r\n $cell = args.$newCellElement;\r\n if (!args.cancel) {\r\n if (args.resetFocusedRow) {\r\n this.getController(\"focus\")._resetFocusedRow();\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n $cell = this._getFocusedCell()\r\n }\r\n if (!args.isHighlighted && !isCellEditMode) {\r\n this.setRowFocusType()\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n if (this._allowRowUpdating() && isCellEditMode && column && column.allowEditing) {\r\n this._isNeedFocus = false;\r\n this._isHiddenFocus = false\r\n } else {\r\n $cell = this._getFocusedCell();\r\n var $target = event && $(event.target).closest(\"\".concat(NON_FOCUSABLE_ELEMENTS_SELECTOR, \", td\"));\r\n var skipFocusEvent = $target && $target.not($cell).is(NON_FOCUSABLE_ELEMENTS_SELECTOR);\r\n var isEditor = !!column && !column.command && $cell.hasClass(EDITOR_CELL_CLASS);\r\n var isDisabled = !isEditor && (!args.isHighlighted || skipFocusEvent);\r\n this._focus($cell, isDisabled, skipFocusEvent)\r\n }\r\n } else {\r\n this.setRowFocusType();\r\n this.setFocusedRowIndex(args.prevRowIndex);\r\n if (this._editingController.isEditing() && isCellEditMode) {\r\n this._closeEditCell()\r\n }\r\n }\r\n }\r\n _allowRowUpdating() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var row = this._dataController.items()[rowIndex];\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }, \"click\")\r\n }\r\n focus(element) {\r\n var activeElementSelector;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var isHighlighted = this._isCellElement($(element));\r\n if (!element) {\r\n activeElementSelector = \".dx-datagrid-rowsview .dx-row[tabindex]\";\r\n if (!focusedRowEnabled) {\r\n activeElementSelector += \", .dx-datagrid-rowsview .dx-row > td[tabindex]\"\r\n }\r\n element = this.component.$element().find(activeElementSelector).first()\r\n }\r\n element && this._focusElement($(element), isHighlighted)\r\n }\r\n getFocusedView() {\r\n return this._focusedView\r\n }\r\n setupFocusedView() {\r\n if (this.isKeyboardEnabled() && !isDefined(this._focusedView)) {\r\n this._focusView()\r\n }\r\n }\r\n _focusElement($element, isHighlighted) {\r\n var rowsViewElement = $(this._getRowsViewElement());\r\n var $focusedView = $element.closest(rowsViewElement);\r\n var isRowFocusType = this.isRowFocusType();\r\n var args = {};\r\n if (!$focusedView.length || this._isCellElement($element) && !this._isCellValid($element)) {\r\n return\r\n }\r\n this._focusView();\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n if (this._isCellElement($element) || isGroupRow($element)) {\r\n this.setCellFocusType();\r\n args = this._fireFocusChangingEvents(null, $element, true, isHighlighted);\r\n $element = args.$newCellElement;\r\n if (isRowFocusType && !args.isHighlighted) {\r\n this.setRowFocusType()\r\n }\r\n }\r\n if (!args.cancel) {\r\n this._focus($element, !args.isHighlighted);\r\n this._focusInteractiveElement($element)\r\n }\r\n }\r\n _getFocusedViewByElement($element) {\r\n var view = this.getFocusedView();\r\n var $view = view && $(view.element());\r\n return $element && 0 !== $element.closest($view).length\r\n }\r\n _focusView() {\r\n this._focusedView = this._rowsView\r\n }\r\n _resetFocusedView() {\r\n this.setRowFocusType();\r\n this._focusedView = null\r\n }\r\n _focusInteractiveElement($cell, isLast) {\r\n if (!$cell) {\r\n return\r\n }\r\n var $focusedElement = this._getInteractiveElement($cell, isLast);\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElement)\r\n }\r\n _focus($cell, disableFocus, skipFocusEvent) {\r\n var $row = $cell && !$cell.hasClass(ROW_CLASS) ? $cell.closest(\".\".concat(ROW_CLASS)) : $cell;\r\n if ($row && isNotFocusedRow($row)) {\r\n return\r\n }\r\n var focusedView = this._focusedView;\r\n var $focusViewElement = focusedView && focusedView.element();\r\n var $focusElement;\r\n this._isHiddenFocus = disableFocus;\r\n var isRowFocus = isGroupRow($row) || isGroupFooterRow($row) || this.isRowFocusType();\r\n if (isRowFocus) {\r\n $focusElement = $row;\r\n if (focusedView) {\r\n this.setFocusedRowIndex(this._getRowIndex($row))\r\n }\r\n } else if (this._isCellElement($cell)) {\r\n $focusElement = $cell;\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n if ($focusElement) {\r\n if ($focusViewElement) {\r\n $focusViewElement.find(\".dx-row[tabindex], .dx-row > td[tabindex]\").not($focusElement).removeClass(CELL_FOCUS_DISABLED_CLASS).removeClass(FOCUSED_CLASS).removeAttr(\"tabindex\")\r\n }\r\n eventsEngine.one($focusElement, \"blur\", e => {\r\n if (e.relatedTarget) {\r\n $focusElement.removeClass(CELL_FOCUS_DISABLED_CLASS).removeClass(FOCUSED_CLASS)\r\n }\r\n });\r\n if (!skipFocusEvent) {\r\n this._applyTabIndexToElement($focusElement);\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n if (disableFocus) {\r\n $focusElement.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (isRowFocus) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n } else {\r\n this._editorFactory.focus($focusElement)\r\n }\r\n }\r\n }\r\n _updateFocus(isRenderView) {\r\n this._updateFocusTimeout = setTimeout(() => {\r\n if (this._needFocusEditingCell()) {\r\n this._editingController._focusEditingCell();\r\n return\r\n }\r\n var $cell = this._getFocusedCell();\r\n var isEditing = this._editingController.isEditing();\r\n if (!this._isMasterDetailCell($cell) || this._isRowEditMode()) {\r\n if (this._hasSkipRow($cell.parent())) {\r\n var direction = this._focusedCellPosition && this._focusedCellPosition.rowIndex > 0 ? \"upArrow\" : \"downArrow\";\r\n $cell = this._getNextCell(direction)\r\n }\r\n if (isElementDefined($cell)) {\r\n if ($cell.is(\"td\") || $cell.hasClass(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS))) {\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n var $focusedElementInsideCell = $cell.find(\":focus\");\r\n var isFocusedElementDefined = isElementDefined($focusedElementInsideCell);\r\n var column = this._getColumnByCellElement($cell);\r\n if ((isRenderView || !isCommandCell) && this._editorFactory.focus()) {\r\n if (isCommandCell && isFocusedElementDefined) {\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElementInsideCell);\r\n return\r\n }!isFocusedElementDefined && this._focus($cell)\r\n } else if (!isFocusedElementDefined && (this._isNeedFocus || this._isHiddenFocus)) {\r\n this._focus($cell, this._isHiddenFocus)\r\n }\r\n if (isEditing && !(null === column || void 0 === column ? void 0 : column.showEditorAlways)) {\r\n this._focusInteractiveElement.bind(this)($cell)\r\n }\r\n } else {\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getColumnByCellElement($cell) {\r\n var cellIndex = this._rowsView.getCellIndex($cell);\r\n var columnIndex = cellIndex + this._columnsController.getColumnIndexOffset();\r\n return this._columnsController.getVisibleColumns(null, true)[columnIndex]\r\n }\r\n _needFocusEditingCell() {\r\n var isCellEditMode = this._editingController.getEditMode() === EDIT_MODE_CELL;\r\n var isBatchEditMode = this._editingController.getEditMode() === EDIT_MODE_BATCH;\r\n var cellEditModeHasChanges = isCellEditMode && this._editingController.hasChanges();\r\n var isNewRowBatchEditMode = isBatchEditMode && this._editingController.isNewRowInEditMode();\r\n var $cell = this._getFocusedCell();\r\n return (0 === $cell.children().length || $cell.find(FOCUSABLE_ELEMENT_SELECTOR).length > 0) && (cellEditModeHasChanges || isNewRowBatchEditMode)\r\n }\r\n _getFocusedCell() {\r\n return $(this._getCell(this._focusedCellPosition))\r\n }\r\n _updateFocusedCellPositionByTarget(target) {\r\n var _a;\r\n var elementType = this._getElementType(target);\r\n if (\"row\" === elementType && isDefined(null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.columnIndex)) {\r\n var $row = $(target);\r\n this._focusedView && isGroupRow($row) && this.setFocusedRowIndex(this._getRowIndex($row))\r\n } else {\r\n this._updateFocusedCellPosition(this._getCellElementFromTarget(target))\r\n }\r\n }\r\n _updateFocusedCellPosition($cell, direction) {\r\n var position = this._getCellPosition($cell, direction);\r\n if (position) {\r\n if (!$cell.length || position.rowIndex >= 0 && position.columnIndex >= 0) {\r\n this.setFocusedCellPosition(position.rowIndex, position.columnIndex)\r\n }\r\n }\r\n return position\r\n }\r\n _getFocusedColumnIndexOffset(columnIndex) {\r\n var offset = 0;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n if (column && column.fixed) {\r\n offset = this._getFixedColumnIndexOffset(column)\r\n } else if (columnIndex >= 0) {\r\n offset = this._columnsController.getColumnIndexOffset()\r\n }\r\n return offset\r\n }\r\n _getFixedColumnIndexOffset(column) {\r\n var offset = isFixedColumnIndexOffsetRequired(this, column) ? this._getVisibleColumnCount() - this._columnsController.getVisibleColumns().length : 0;\r\n return offset\r\n }\r\n _getCellPosition($cell, direction) {\r\n var columnIndex;\r\n var $row = isElementDefined($cell) && $cell.closest(\"tr\");\r\n if (isElementDefined($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n columnIndex = this._rowsView.getCellIndex($cell, rowIndex);\r\n columnIndex += this._getFocusedColumnIndexOffset(columnIndex);\r\n if (direction) {\r\n columnIndex = \"previous\" === direction ? columnIndex - 1 : columnIndex + 1;\r\n columnIndex = this._applyColumnIndexBoundaries(columnIndex)\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return\r\n }\r\n _focusCell($cell, isDisabled) {\r\n if (this._isCellValid($cell)) {\r\n this._focus($cell, isDisabled);\r\n return true\r\n }\r\n return\r\n }\r\n _focusEditFormCell($cell) {\r\n if ($cell.hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n this._editorFactory.focus($cell, true)\r\n }\r\n }\r\n _resetFocusedCell(preventScroll) {\r\n var _a;\r\n var $cell = this._getFocusedCell();\r\n isElementDefined($cell) && $cell.removeAttr(\"tabindex\");\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n this._focusedCellPosition = {};\r\n clearTimeout(this._updateFocusTimeout);\r\n null === (_a = this._focusedView) || void 0 === _a ? void 0 : _a.renderFocusState({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n restoreFocusableElement(rowIndex, $event) {\r\n var args;\r\n var $rowElement;\r\n var isUpArrow = isDefined(rowIndex);\r\n var $rowsViewElement = this._rowsView.element();\r\n var {\r\n columnIndex: columnIndex\r\n } = this._focusedCellPosition;\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n rowIndex = isUpArrow ? rowIndex : this._rowsView.getTopVisibleItemIndex() + rowIndexOffset;\r\n if (!isUpArrow) {\r\n this._editorFactory.loseFocus();\r\n this._applyTabIndexToElement($rowsViewElement);\r\n eventsEngine.trigger($rowsViewElement, \"focus\")\r\n } else {\r\n $rowElement = this._rowsView.getRow(rowIndex - rowIndexOffset);\r\n args = this._fireFocusedRowChanging($event, $rowElement);\r\n if (!args.cancel && args.rowIndexChanged) {\r\n rowIndex = args.newRowIndex\r\n }\r\n }\r\n if (!isUpArrow || !args.cancel) {\r\n this.setFocusedCellPosition(rowIndex, columnIndex)\r\n }\r\n isUpArrow && this._updateFocus()\r\n }\r\n _getNewPositionByCode(cellPosition, elementType, code) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var {\r\n rowIndex: rowIndex\r\n } = cellPosition;\r\n var visibleColumnsCount;\r\n if (void 0 === cellPosition.rowIndex && \"next\" === code) {\r\n return {\r\n columnIndex: 0,\r\n rowIndex: 0\r\n }\r\n }\r\n switch (code) {\r\n case \"nextInRow\":\r\n case \"next\":\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < visibleColumnsCount - 1 && \"row\" !== elementType && this._hasValidCellAfterPosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex++\r\n } else if (!this._isLastRow(rowIndex) && \"next\" === code) {\r\n columnIndex = 0;\r\n rowIndex++\r\n }\r\n break;\r\n case \"previousInRow\":\r\n case \"previous\":\r\n if (columnIndex > 0 && \"row\" !== elementType && this._hasValidCellBeforePosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex--\r\n } else if (rowIndex > 0 && \"previous\" === code) {\r\n rowIndex--;\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n break;\r\n case \"upArrow\":\r\n rowIndex = rowIndex > 0 ? rowIndex - 1 : rowIndex;\r\n break;\r\n case \"downArrow\":\r\n rowIndex = !this._isLastRow(rowIndex) ? rowIndex + 1 : rowIndex\r\n }\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n setFocusedCellPosition(rowIndex, columnIndex) {\r\n this.setFocusedRowIndex(rowIndex);\r\n this.setFocusedColumnIndex(columnIndex)\r\n }\r\n setFocusedRowIndex(rowIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n }\r\n setFocusedColumnIndex(columnIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n }\r\n getRowIndex() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.rowIndex : -1\r\n }\r\n getColumnIndex() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.columnIndex : -1\r\n }\r\n getVisibleRowIndex() {\r\n var _a;\r\n var rowIndex = null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.rowIndex;\r\n return !isDefined(rowIndex) || rowIndex < 0 ? -1 : rowIndex - this._dataController.getRowIndexOffset()\r\n }\r\n getVisibleColumnIndex() {\r\n var _a;\r\n var columnIndex = null === (_a = this._focusedCellPosition) || void 0 === _a ? void 0 : _a.columnIndex;\r\n return !isDefined(columnIndex) ? -1 : columnIndex - this._columnsController.getColumnIndexOffset()\r\n }\r\n _applyColumnIndexBoundaries(columnIndex) {\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n } else if (columnIndex >= visibleColumnsCount) {\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n return columnIndex\r\n }\r\n _isCellByPositionValid(cellPosition) {\r\n var $cell = $(this._getCell(cellPosition));\r\n return this._isCellValid($cell)\r\n }\r\n _isLastRow(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this._isVirtualRowRender()) {\r\n return rowIndex >= dataController.getMaxRowIndex()\r\n }\r\n var lastVisibleIndex = Math.max(...dataController.items().map((item, index) => false !== item.visible ? index : -1));\r\n return rowIndex === lastVisibleIndex\r\n }\r\n _isFirstValidCell(cellPosition) {\r\n var isFirstValidCell = false;\r\n if (0 === cellPosition.rowIndex && cellPosition.columnIndex >= 0) {\r\n isFirstValidCell = isFirstValidCell || !this._hasValidCellBeforePosition(cellPosition)\r\n }\r\n return isFirstValidCell\r\n }\r\n _hasValidCellBeforePosition(cellPosition) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var hasValidCells = false;\r\n while (columnIndex > 0 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: --columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n }\r\n _hasValidCellAfterPosition(cellPosition) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var hasValidCells = false;\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n while (columnIndex < visibleColumnCount - 1 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: ++columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n }\r\n _isLastValidCell(cellPosition) {\r\n var nextColumnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex + 1 : 0;\r\n var {\r\n rowIndex: rowIndex\r\n } = cellPosition;\r\n var checkingPosition = {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n };\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var row = visibleRows && visibleRows[rowIndex];\r\n var isLastRow = this._isLastRow(rowIndex);\r\n if (!isLastRow) {\r\n return false\r\n }\r\n var isFullRowFocus = \"group\" === (null === row || void 0 === row ? void 0 : row.rowType) || \"groupFooter\" === (null === row || void 0 === row ? void 0 : row.rowType);\r\n if (isFullRowFocus && cellPosition.columnIndex > 0) {\r\n return true\r\n }\r\n if (cellPosition.columnIndex === this._getVisibleColumnCount() - 1) {\r\n return true\r\n }\r\n if (this._isCellByPositionValid(checkingPosition)) {\r\n return false\r\n }\r\n return this._isLastValidCell(checkingPosition)\r\n }\r\n _isCellValid($cell, isClick) {\r\n if (isElementDefined($cell)) {\r\n var $row = $cell.parent();\r\n var columnIndex = this._rowsView.getCellIndex($cell) + this._columnsController.getColumnIndexOffset();\r\n var column = this._getColumnByCellElement($cell);\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n var editingController = this._editingController;\r\n var isMasterDetailRow = isDetailRow($row);\r\n var isShowWhenGrouped = column && column.showWhenGrouped;\r\n var isDataCell = column && !$cell.hasClass(COMMAND_EXPAND_CLASS) && isDataRow($row);\r\n var isDragCell = GridCoreKeyboardNavigationDom.isDragCell($cell);\r\n if (isDragCell) {\r\n return false\r\n }\r\n if (this._isMasterDetailCell($cell)) {\r\n return true\r\n }\r\n if (visibleColumnCount > columnIndex && (!isMasterDetailRow && column && (!isDefined(column.groupIndex) || isShowWhenGrouped && isDataCell) || parseInt($cell.attr(\"colspan\"), 10) > 1)) {\r\n var rowItems = this._dataController.items();\r\n var visibleRowIndex = this._rowsView.getRowIndex($row);\r\n var row = rowItems[visibleRowIndex];\r\n var isCellEditing = editingController && this._isCellEditMode() && editingController.isEditing();\r\n var isRowEditingInCurrentRow = editingController && editingController.isEditRow(visibleRowIndex);\r\n var isEditing = isRowEditingInCurrentRow || isCellEditing;\r\n if (column.command) {\r\n if (this._isLegacyNavigation()) {\r\n return !isEditing && \"expand\" === column.command\r\n }\r\n if (isCellEditing) {\r\n return false\r\n }\r\n if (isRowEditingInCurrentRow) {\r\n return \"select\" !== column.command\r\n }\r\n return !isEditing\r\n }\r\n if (isCellEditing && row && \"data\" !== row.rowType) {\r\n return false\r\n }\r\n return !isEditing || column.allowEditing || isClick\r\n }\r\n }\r\n }\r\n getFirstValidCellInRow($row, columnIndex) {\r\n var $cells = $row.find(\"> td\");\r\n var $cell;\r\n var $result;\r\n columnIndex = columnIndex || 0;\r\n for (var i = columnIndex; i < $cells.length; ++i) {\r\n $cell = $cells.eq(i);\r\n if (this._isCellValid($cell)) {\r\n $result = $cell;\r\n break\r\n }\r\n }\r\n return $result\r\n }\r\n _getNextCell(keyCode, elementType, cellPosition) {\r\n var focusedCellPosition = cellPosition || this._focusedCellPosition;\r\n var isRowFocusType = this.isRowFocusType();\r\n var includeCommandCells = isRowFocusType || [\"next\", \"previous\"].includes(keyCode);\r\n var $cell;\r\n var $row;\r\n if (this._focusedView && focusedCellPosition) {\r\n var newFocusedCellPosition = this._getNewPositionByCode(focusedCellPosition, elementType, keyCode);\r\n $cell = $(this._getCell(newFocusedCellPosition));\r\n var isLastCellOnDirection = \"previous\" === keyCode ? this._isFirstValidCell(newFocusedCellPosition) : this._isLastValidCell(newFocusedCellPosition);\r\n if (isElementDefined($cell) && !this._isCellValid($cell) && this._isCellInRow(newFocusedCellPosition, includeCommandCells) && !isLastCellOnDirection) {\r\n if (isRowFocusType) {\r\n $cell = this.getFirstValidCellInRow($cell.parent(), newFocusedCellPosition.columnIndex)\r\n } else {\r\n $cell = this._getNextCell(keyCode, \"cell\", newFocusedCellPosition)\r\n }\r\n }\r\n $row = isElementDefined($cell) && $cell.parent();\r\n if (this._hasSkipRow($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n if (!this._isLastRow(rowIndex)) {\r\n $cell = this._getNextCell(keyCode, \"row\", {\r\n columnIndex: focusedCellPosition.columnIndex,\r\n rowIndex: rowIndex\r\n })\r\n } else {\r\n return null\r\n }\r\n }\r\n return isElementDefined($cell) ? $cell : null\r\n }\r\n return null\r\n }\r\n _startEditing(eventArgs, fastEditingKey) {\r\n var focusedCellPosition = this._focusedCellPosition;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleColumnIndex = this.getVisibleColumnIndex();\r\n var row = this._dataController.items()[visibleRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (this._isAllowEditing(row, column)) {\r\n if (this._isRowEditMode()) {\r\n this._editingController.editRow(visibleRowIndex)\r\n } else if (focusedCellPosition) {\r\n this._startEditCell(eventArgs, fastEditingKey)\r\n }\r\n }\r\n }\r\n _isAllowEditing(row, column) {\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }) && column && column.allowEditing\r\n }\r\n _editFocusedCell() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var colIndex = this.getVisibleColumnIndex();\r\n return this._editingController.editCell(rowIndex, colIndex)\r\n }\r\n _startEditCell(eventArgs, fastEditingKey) {\r\n this._fastEditingStarted = isDefined(fastEditingKey);\r\n var editResult = this._editFocusedCell();\r\n var isEditResultDeferred = isDeferred(editResult);\r\n var isFastEditingStarted = this._isFastEditingStarted();\r\n if (!isFastEditingStarted || !isEditResultDeferred && !editResult) {\r\n return\r\n }\r\n var editorValue = isEditResultDeferred && fastEditingKey === FAST_EDITING_DELETE_KEY ? \"\" : fastEditingKey;\r\n var editResultDeferred = isEditResultDeferred ? editResult : Deferred().resolve();\r\n var waitTemplatesDeferred = this._rowsView.waitAsyncTemplates(true);\r\n when(editResultDeferred, waitTemplatesDeferred).done(() => {\r\n this._editingCellHandler(eventArgs, editorValue)\r\n })\r\n }\r\n _editingCellHandler(eventArgs, editorValue) {\r\n var _a, _b;\r\n var $input = this._getFocusedCell().find(INTERACTIVE_ELEMENTS_SELECTOR).eq(0);\r\n var $inputElement = $input.get(0);\r\n if (!$inputElement) {\r\n return\r\n }\r\n var keyDownEvent = createEvent(eventArgs, {\r\n type: \"keydown\",\r\n target: $inputElement\r\n });\r\n var keyPressEvent = createEvent(eventArgs, {\r\n type: \"keypress\",\r\n target: $inputElement\r\n });\r\n var inputEvent = createEvent(eventArgs, {\r\n type: \"input\",\r\n target: $inputElement\r\n });\r\n if (inputEvent.originalEvent) {\r\n inputEvent.originalEvent = createEvent(inputEvent.originalEvent, {\r\n data: editorValue\r\n })\r\n }\r\n null === (_b = (_a = $inputElement).select) || void 0 === _b ? void 0 : _b.call(_a);\r\n eventsEngine.trigger($input, keyDownEvent);\r\n if (!keyDownEvent.isDefaultPrevented()) {\r\n eventsEngine.trigger($input, keyPressEvent);\r\n if (!keyPressEvent.isDefaultPrevented()) {\r\n var timeout = browser.mozilla ? 25 : 0;\r\n setTimeout(() => {\r\n var inputValue = this._getKeyPressInputValue($input, editorValue);\r\n $input.val(inputValue);\r\n var $widgetContainer = $input.closest(\".\".concat(WIDGET_CLASS));\r\n eventsEngine.off($widgetContainer, \"focusout\");\r\n eventsEngine.one($widgetContainer, \"focusout\", () => {\r\n eventsEngine.trigger($input, \"change\")\r\n });\r\n eventsEngine.trigger($input, inputEvent)\r\n }, timeout)\r\n }\r\n }\r\n }\r\n _getKeyPressInputValue($input, editorValue) {\r\n var inputCurrentValue = $input.val();\r\n return \"-\" === editorValue && \"-0\" === inputCurrentValue ? \"-0\" : editorValue\r\n }\r\n _fireFocusChangingEvents($event, $cell, fireRowEvent, isHighlighted) {\r\n var _a;\r\n var args = {};\r\n var cellPosition = null !== (_a = this._getCellPosition($cell)) && void 0 !== _a ? _a : {};\r\n if (this.isCellFocusType()) {\r\n args = this._fireFocusedCellChanging($event, $cell, isHighlighted);\r\n if (!args.cancel) {\r\n cellPosition.columnIndex = args.newColumnIndex;\r\n cellPosition.rowIndex = args.newRowIndex;\r\n isHighlighted = args.isHighlighted;\r\n $cell = $(this._getCell(cellPosition))\r\n }\r\n }\r\n if (!args.cancel && fireRowEvent && $cell) {\r\n args = this._fireFocusedRowChanging($event, $cell.parent());\r\n if (!args.cancel) {\r\n cellPosition.rowIndex = args.newRowIndex;\r\n args.isHighlighted = isHighlighted\r\n }\r\n }\r\n args.$newCellElement = $(this._getCell(cellPosition));\r\n if (!args.$newCellElement.length) {\r\n args.$newCellElement = $cell\r\n }\r\n return args\r\n }\r\n _fireFocusedCellChanging($event, $cellElement, isHighlighted) {\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var cellPosition = this._getCellPosition($cellElement);\r\n var columnIndex = cellPosition ? cellPosition.columnIndex : -1;\r\n var rowIndex = cellPosition ? cellPosition.rowIndex : -1;\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var args = {\r\n cellElement: $cellElement,\r\n prevColumnIndex: prevColumnIndex,\r\n prevRowIndex: prevRowIndex,\r\n newColumnIndex: columnIndex,\r\n newRowIndex: rowIndex,\r\n rows: visibleRows,\r\n columns: visibleColumns,\r\n event: $event,\r\n isHighlighted: isHighlighted || false,\r\n cancel: false\r\n };\r\n this._canceledCellPosition = null;\r\n this.executeAction(\"onFocusedCellChanging\", args);\r\n if (args.newColumnIndex !== columnIndex || args.newRowIndex !== rowIndex) {\r\n args.$newCellElement = $(this._getCell({\r\n columnIndex: args.newColumnIndex,\r\n rowIndex: args.newRowIndex\r\n }))\r\n }\r\n if (args.cancel) {\r\n this._canceledCellPosition = {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return args\r\n }\r\n _fireFocusedCellChanged($cell) {\r\n var columnIndex = this._rowsView.getCellIndex($cell);\r\n var rowOptions = null === $cell || void 0 === $cell ? void 0 : $cell.parent().data(\"options\");\r\n var focusedRowKey = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.key;\r\n this._memoFireFocusedCellChanged(focusedRowKey, columnIndex)\r\n }\r\n _memoFireFocusedCellChanged(rowKey, columnIndex) {\r\n var $cell = this._getFocusedCell();\r\n var rowIndex = this._getRowIndex(null === $cell || void 0 === $cell ? void 0 : $cell.parent());\r\n var localRowIndex = Math.min(rowIndex - this._dataController.getRowIndexOffset(), this._dataController.items().length - 1);\r\n var isEditingCell = this._editingController.isEditCell(localRowIndex, columnIndex);\r\n if (isEditingCell) {\r\n return\r\n }\r\n var row = this._dataController.items()[localRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n this.executeAction(\"onFocusedCellChanged\", {\r\n cellElement: $cell ? getPublicElement($cell) : void 0,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n row: row,\r\n column: column\r\n })\r\n }\r\n _fireFocusedRowChanging(eventArgs, $newFocusedRow) {\r\n var newRowIndex = this._getRowIndex($newFocusedRow);\r\n var prevFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var loadingOperationTypes = this._dataController.loadingOperationTypes();\r\n var args = {\r\n rowElement: $newFocusedRow,\r\n prevRowIndex: prevFocusedRowIndex,\r\n newRowIndex: newRowIndex,\r\n event: eventArgs,\r\n rows: this._dataController.getVisibleRows(),\r\n cancel: false\r\n };\r\n var loadingOperations = loadingOperationTypes.sorting || loadingOperationTypes.grouping || loadingOperationTypes.filtering || loadingOperationTypes.paging;\r\n if (!this._dataController || this._dataController.isLoading() && loadingOperations) {\r\n args.cancel = true;\r\n return args\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.executeAction(\"onFocusedRowChanging\", args);\r\n if (!args.cancel && args.newRowIndex !== newRowIndex) {\r\n args.resetFocusedRow = args.newRowIndex < 0;\r\n if (!args.resetFocusedRow) {\r\n this.setFocusedRowIndex(args.newRowIndex)\r\n }\r\n args.rowIndexChanged = true\r\n }\r\n }\r\n return args\r\n }\r\n _fireFocusedRowChanged() {\r\n var _a;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var focusedRowIndex = null === (_a = this._focusController) || void 0 === _a ? void 0 : _a.getFocusedRowIndexByKey(focusedRowKey);\r\n if (!focusedRowEnabled || isDefined(focusedRowKey) && focusedRowIndex < 0) {\r\n return\r\n }\r\n this._memoFireFocusedRowChanged(focusedRowKey, focusedRowIndex)\r\n }\r\n _memoFireFocusedRowChanged(focusedRowKey, focusedRowIndex) {\r\n var localRowIndex = focusedRowIndex - this._dataController.getRowIndexOffset();\r\n this.executeAction(\"onFocusedRowChanged\", {\r\n rowElement: focusedRowIndex < 0 ? void 0 : this._rowsView.getRowElement(localRowIndex),\r\n rowIndex: focusedRowIndex,\r\n row: focusedRowIndex < 0 ? void 0 : this._dataController.getVisibleRows()[localRowIndex]\r\n })\r\n }\r\n _isEventInCurrentGrid(event) {\r\n return gridCoreUtils.isElementInCurrentGrid(this, $(event.target))\r\n }\r\n _isRowEditMode() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_ROW || editMode === EDIT_MODE_FORM\r\n }\r\n _isCellEditMode() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_CELL || editMode === EDIT_MODE_BATCH\r\n }\r\n _isFastEditingAllowed() {\r\n return this._isCellEditMode() && this.option(\"keyboardNavigation.editOnKeyPress\")\r\n }\r\n _getInteractiveElement($cell, isLast) {\r\n var $focusedElement = $cell.find(INTERACTIVE_ELEMENTS_SELECTOR).filter(\":visible\");\r\n return isLast ? $focusedElement.last() : $focusedElement.first()\r\n }\r\n _applyTabIndexToElement($element) {\r\n var _a;\r\n var tabIndex = null !== (_a = this.option(\"tabIndex\")) && void 0 !== _a ? _a : 0;\r\n $element.attr(\"tabindex\", tabIndex)\r\n }\r\n _getCell(cellPosition) {\r\n if (this._focusedView && cellPosition) {\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var column = this._columnsController.getVisibleColumns(null, true)[cellPosition.columnIndex];\r\n var columnIndexOffset = column && column.fixed ? this._getFixedColumnIndexOffset(column) : this._columnsController.getColumnIndexOffset();\r\n var rowIndex = cellPosition.rowIndex >= 0 ? cellPosition.rowIndex - rowIndexOffset : -1;\r\n var columnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex - columnIndexOffset : -1;\r\n return this._focusedView.getCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n }\r\n _getRowIndex($row) {\r\n var rowIndex = this._rowsView.getRowIndex($row);\r\n if (rowIndex >= 0) {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n return rowIndex\r\n }\r\n _hasSkipRow($row) {\r\n var row = $row && $row.get(0);\r\n return row && (\"none\" === row.style.display || isDetailRow($row) && !$row.hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS)))\r\n }\r\n _allowEditingOnEnterKey() {\r\n return \"startEdit\" === this.option(\"keyboardNavigation.enterKeyAction\")\r\n }\r\n _isLegacyNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n }\r\n _getDirectionCodeByKey(key) {\r\n var directionCode;\r\n switch (key) {\r\n case \"upArrow\":\r\n directionCode = \"prevRow\";\r\n break;\r\n case \"downArrow\":\r\n directionCode = \"nextRow\";\r\n break;\r\n case \"leftArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"nextInRow\" : \"previousInRow\";\r\n break;\r\n case \"rightArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"previousInRow\" : \"nextInRow\"\r\n }\r\n return directionCode\r\n }\r\n _isVirtualScrolling() {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n }\r\n _isVirtualRowRender() {\r\n return this._isVirtualScrolling() || gridCoreUtils.isVirtualRowRendering(this)\r\n }\r\n _isVirtualColumnRender() {\r\n return \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n }\r\n _scrollBy(left, top, rowIndex, $event) {\r\n var that = this;\r\n var scrollable = this._rowsView.getScrollable();\r\n if (that._focusedCellPosition) {\r\n scrollable.on(\"scroll\", (function scrollHandler() {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n setTimeout(that.restoreFocusableElement.bind(that, rowIndex, $event))\r\n }))\r\n }\r\n return scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n }\r\n _isInsideEditForm(element) {\r\n var $editForm = $(element).closest(\".\".concat(this.addWidgetPrefix(EDIT_FORM_CLASS)));\r\n return $editForm.length && this.elementIsInsideGrid($editForm)\r\n }\r\n _isMasterDetailCell(element) {\r\n var $masterDetailCell = $(element).closest(\".\".concat(MASTER_DETAIL_CELL_CLASS));\r\n return $masterDetailCell.length && this.elementIsInsideGrid($masterDetailCell)\r\n }\r\n _processNextCellInMasterDetail($nextCell, _$cell) {\r\n if (!this._isInsideEditForm($nextCell) && $nextCell) {\r\n this._applyTabIndexToElement($nextCell)\r\n }\r\n }\r\n _handleTabKeyOnMasterDetailCell(target, direction) {\r\n if (this._isMasterDetailCell(target)) {\r\n this._updateFocusedCellPosition($(target), direction);\r\n var $nextCell = this._getNextCell(direction, \"row\");\r\n this._processNextCellInMasterDetail($nextCell, $(target));\r\n return true\r\n }\r\n return false\r\n }\r\n _getElementType(target) {\r\n return $(target).is(\"tr\") ? \"row\" : \"cell\"\r\n }\r\n _isFastEditingStarted() {\r\n return this._isFastEditingAllowed() && this._fastEditingStarted\r\n }\r\n _getVisibleColumnCount() {\r\n return this._columnsController.getVisibleColumns(null, true).length\r\n }\r\n _isCellInRow(cellPosition, includeCommandCells) {\r\n var {\r\n columnIndex: columnIndex\r\n } = cellPosition;\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n return includeCommandCells ? columnIndex >= 0 && columnIndex <= visibleColumnsCount - 1 : columnIndex > 0 && columnIndex < visibleColumnsCount - 1\r\n }\r\n _isCellElement($element) {\r\n return $element.length && \"TD\" === $element[0].tagName\r\n }\r\n _getCellElementFromTarget(target) {\r\n var elementType = this._getElementType(target);\r\n var $targetElement = $(target);\r\n var $cell;\r\n if (\"cell\" === elementType) {\r\n $cell = $targetElement.closest(\".\".concat(ROW_CLASS, \" > td\"))\r\n } else {\r\n $cell = $targetElement.children().not(\".\".concat(COMMAND_EXPAND_CLASS)).first()\r\n }\r\n return $cell\r\n }\r\n _getRowsViewElement() {\r\n var _a;\r\n return null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element()\r\n }\r\n isKeyboardEnabled() {\r\n return this.option(\"keyboardNavigation.enabled\")\r\n }\r\n _processCanceledEditCellPosition(rowIndex, columnIndex) {\r\n if (this._canceledCellPosition) {\r\n var isCanceled = this._canceledCellPosition.rowIndex === rowIndex && this._canceledCellPosition.columnIndex === columnIndex;\r\n this._canceledCellPosition = null;\r\n return isCanceled\r\n }\r\n return\r\n }\r\n updateFocusedRowIndex() {\r\n var dataController = this._dataController;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleItems = dataController.items();\r\n var lastVisibleIndex = visibleItems.length ? visibleItems.length - 1 : -1;\r\n var rowIndexOffset = dataController.getRowIndexOffset();\r\n if (lastVisibleIndex >= 0 && visibleRowIndex > lastVisibleIndex) {\r\n this.setFocusedRowIndex(lastVisibleIndex + rowIndexOffset)\r\n }\r\n }\r\n}\r\nexport var keyboardNavigationModule = {\r\n defaultOptions: () => ({\r\n useLegacyKeyboardNavigation: false,\r\n keyboardNavigation: {\r\n enabled: true,\r\n enterKeyAction: \"startEdit\",\r\n enterKeyDirection: \"none\",\r\n editOnKeyPress: false\r\n }\r\n }),\r\n controllers: {\r\n keyboardNavigation: KeyboardNavigationController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init() {\r\n this.callBase();\r\n this._keyboardController = this.getController(\"keyboardNavigation\")\r\n },\r\n _rowClick(e) {\r\n var editRowIndex = this.getController(\"editing\").getEditRowIndex();\r\n var isKeyboardEnabled = this._keyboardController.isKeyboardEnabled();\r\n if (editRowIndex === e.rowIndex) {\r\n this._keyboardController.setCellFocusType()\r\n }\r\n var needTriggerPointerEventHandler = (isMobile() || !isKeyboardEnabled) && this.option(\"focusedRowEnabled\");\r\n if (needTriggerPointerEventHandler) {\r\n this._triggerPointerDownEventHandler(e, !isKeyboardEnabled)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _triggerPointerDownEventHandler(e, force) {\r\n var {\r\n originalEvent: originalEvent\r\n } = e.event;\r\n if (originalEvent) {\r\n var $cell = $(originalEvent.target);\r\n var columnIndex = this.getCellIndex($cell);\r\n var column = this.getController(\"columns\").getVisibleColumns()[columnIndex];\r\n var row = this.getController(\"data\").items()[e.rowIndex];\r\n if (this._keyboardController._isAllowEditing(row, column) || force) {\r\n var eventArgs = createEvent(originalEvent, {\r\n currentTarget: originalEvent.target\r\n });\r\n this._keyboardController._pointerEventHandler(eventArgs)\r\n }\r\n }\r\n },\r\n renderFocusState(params) {\r\n var {\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSizeChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var $rowsViewElement = this.element();\r\n if ($rowsViewElement && !focused($rowsViewElement)) {\r\n $rowsViewElement.attr(\"tabindex\", null)\r\n }\r\n pageSizeChanged && this._keyboardController.updateFocusedRowIndex();\r\n var rowIndex = this._keyboardController.getVisibleRowIndex();\r\n if (!isDefined(rowIndex) || rowIndex < 0) {\r\n rowIndex = 0\r\n }\r\n var cellElements = this.getCellElements(rowIndex);\r\n if (this._keyboardController.isKeyboardEnabled() && (null === cellElements || void 0 === cellElements ? void 0 : cellElements.length)) {\r\n this.updateFocusElementTabIndex(cellElements, preventScroll)\r\n }\r\n },\r\n updateFocusElementTabIndex(cellElements) {\r\n var $row = cellElements.eq(0).parent();\r\n if (isGroupRow($row)) {\r\n this._keyboardController._applyTabIndexToElement($row)\r\n } else {\r\n var columnIndex = this._keyboardController.getColumnIndex();\r\n if (!isDefined(columnIndex) || columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n this._updateFocusedCellTabIndex(cellElements, columnIndex)\r\n }\r\n },\r\n _updateFocusedCellTabIndex(cellElements, columnIndex) {\r\n var keyboardController = this._keyboardController;\r\n var cellElementsLength = cellElements ? cellElements.length : -1;\r\n var updateCellTabIndex = function($cell) {\r\n var isMasterDetailCell = keyboardController._isMasterDetailCell($cell);\r\n var isValidCell = keyboardController._isCellValid($cell);\r\n if (!isMasterDetailCell && isValidCell && keyboardController._isCellElement($cell)) {\r\n keyboardController._applyTabIndexToElement($cell);\r\n keyboardController.setCellFocusType();\r\n return true\r\n }\r\n return\r\n };\r\n var $cell = GridCoreKeyboardNavigationDom.getCellToFocus(cellElements, columnIndex);\r\n if ($cell.length) {\r\n updateCellTabIndex($cell)\r\n } else {\r\n if (cellElementsLength <= columnIndex) {\r\n columnIndex = cellElementsLength - 1\r\n }\r\n for (var i = columnIndex; i < cellElementsLength; ++i) {\r\n if (updateCellTabIndex($(cellElements[i]))) {\r\n break\r\n }\r\n }\r\n }\r\n },\r\n renderDelayedTemplates(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _renderFocusByChange(change) {\r\n var _a;\r\n var {\r\n operationTypes: operationTypes,\r\n repaintChangesOnly: repaintChangesOnly\r\n } = null !== change && void 0 !== change ? change : {};\r\n var {\r\n fullReload: fullReload,\r\n pageSize: pageSize\r\n } = null !== operationTypes && void 0 !== operationTypes ? operationTypes : {};\r\n var hasInsertsOrRemoves = !!(null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.find(changeType => \"insert\" === changeType || \"remove\" === changeType));\r\n if (!change || !repaintChangesOnly || fullReload || pageSize || hasInsertsOrRemoves) {\r\n var preventScroll = shouldPreventScroll(this);\r\n this.renderFocusState({\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSize\r\n })\r\n }\r\n },\r\n _renderCore(change) {\r\n var deferred = this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change);\r\n return deferred\r\n },\r\n _editCellPrepared($cell) {\r\n var _a;\r\n var editorInstance = this._getEditorInstance($cell);\r\n var isEditingNavigationMode = null === (_a = this._keyboardController) || void 0 === _a ? void 0 : _a._isFastEditingStarted();\r\n if (editorInstance && isEditingNavigationMode) {\r\n this._handleEditingNavigationMode(editorInstance)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleEditingNavigationMode(editorInstance) {\r\n [\"downArrow\", \"upArrow\"].forEach(keyName => {\r\n var originalKeyHandler = editorInstance._supportedKeys()[keyName];\r\n editorInstance.registerKeyHandler(keyName, e => {\r\n var isDropDownOpened = \"true\" === editorInstance._input().attr(\"aria-expanded\");\r\n if (isDropDownOpened) {\r\n return originalKeyHandler && originalKeyHandler.call(editorInstance, e)\r\n }\r\n })\r\n });\r\n editorInstance.registerKeyHandler(\"leftArrow\", noop);\r\n editorInstance.registerKeyHandler(\"rightArrow\", noop);\r\n var isDateBoxWithMask = editorInstance.NAME === DATEBOX_WIDGET_NAME && editorInstance.option(\"useMaskBehavior\");\r\n if (isDateBoxWithMask) {\r\n editorInstance.registerKeyHandler(\"enter\", noop)\r\n }\r\n },\r\n _getEditorInstance($cell) {\r\n var $editor = $cell.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: {\r\n editCell(rowIndex, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (keyboardController._processCanceledEditCellPosition(rowIndex, columnIndex)) {\r\n return false\r\n }\r\n var isCellEditing = this.callBase(rowIndex, columnIndex);\r\n if (isCellEditing) {\r\n keyboardController.setupFocusedView()\r\n }\r\n return isCellEditing\r\n },\r\n editRow(rowIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var visibleColumnIndex = keyboardController.getVisibleColumnIndex();\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (column && column.type || this.option(\"editing.mode\") === EDIT_MODE_FORM) {\r\n keyboardController._resetFocusedCell()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n addRow(parentKey) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n keyboardController.setupFocusedView();\r\n keyboardController.setCellFocusType();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getFocusedCellInRow(rowIndex) {\r\n var keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n var $cell = this.callBase(rowIndex);\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var focusedRowIndex = keyboardNavigationController._focusedCellPosition.rowIndex - rowIndexOffset;\r\n if (keyboardNavigationController.isKeyboardEnabled() && focusedRowIndex === rowIndex) {\r\n var $focusedCell = keyboardNavigationController._getFocusedCell();\r\n if (isElementDefined($focusedCell) && !$focusedCell.hasClass(COMMAND_EDIT_CLASS)) {\r\n $cell = $focusedCell\r\n }\r\n }\r\n return $cell\r\n },\r\n _processCanceledEditingCell() {\r\n this.closeEditCell().done(() => {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n keyboardNavigation._updateFocus()\r\n })\r\n },\r\n init() {\r\n this.callBase();\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\")\r\n },\r\n closeEditCell() {\r\n var keyboardNavigation = this._keyboardNavigationController;\r\n keyboardNavigation._fastEditingStarted = false;\r\n var result = this.callBase.apply(this, arguments);\r\n keyboardNavigation._updateFocus();\r\n return result\r\n },\r\n _delayedInputFocus() {\r\n this._keyboardNavigationController._isNeedScroll = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditingStart() {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n var cancel = this.callBase.apply(this, arguments);\r\n if (cancel && !keyboardNavigation._isNeedFocus) {\r\n var $cell = keyboardNavigation._getFocusedCell();\r\n keyboardNavigation._focus($cell, true)\r\n }\r\n return cancel\r\n }\r\n },\r\n data: {\r\n _correctRowIndices(getRowIndexCorrection) {\r\n var keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n var editorFactory = this.getController(\"editorFactory\");\r\n var focusedCellPosition = keyboardNavigationController._focusedCellPosition;\r\n this.callBase.apply(this, arguments);\r\n if (focusedCellPosition && focusedCellPosition.rowIndex >= 0) {\r\n var focusedRowIndexCorrection = getRowIndexCorrection(focusedCellPosition.rowIndex);\r\n if (focusedRowIndexCorrection) {\r\n focusedCellPosition.rowIndex += focusedRowIndexCorrection;\r\n editorFactory.refocus()\r\n }\r\n }\r\n },\r\n getMaxRowIndex() {\r\n var result = this.items().length - 1;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (virtualItemsCount) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n result += rowIndexOffset + virtualItemsCount.end\r\n }\r\n return result\r\n }\r\n },\r\n adaptiveColumns: {\r\n _showHiddenCellsInView(_ref) {\r\n var {\r\n viewName: viewName,\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n this.callBase.apply(this, arguments);\r\n viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && $cells.each((_, cellElement) => {\r\n var $cell = $(cellElement);\r\n isCellInHeaderRow($cell) && $cell.attr(\"tabindex\", 0)\r\n })\r\n },\r\n _hideVisibleCellInView(_ref2) {\r\n var {\r\n viewName: viewName,\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref2;\r\n this.callBase.apply(this, arguments);\r\n if (viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && isCellInHeaderRow($cell)) {\r\n $cell.removeAttr(\"tabindex\")\r\n }\r\n }\r\n },\r\n keyboardNavigation: keyboardNavigationScrollableA11yExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ATTRIBUTES\r\n} from \"./const\";\r\nvar isDragCell = $cell => void 0 !== $cell.attr(ATTRIBUTES.dragCell);\r\nvar getCellToFocus = ($cellElements, columnIndex) => $cellElements.filter(\"[\".concat(ATTRIBUTES.ariaColIndex, '=\"').concat(columnIndex + 1, '\"]:not([').concat(ATTRIBUTES.dragCell, \"])\")).first();\r\nexport var GridCoreKeyboardNavigationDom = {\r\n isDragCell: isDragCell,\r\n getCellToFocus: getCellToFocus\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/keyboard_navigation/scrollable_a11y.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nexport var keyboardNavigationScrollableA11yExtender = Base => class extends Base {\r\n init() {\r\n var _a;\r\n super.init();\r\n this.rowsViewFocusOutHandlerContext = null !== (_a = this.rowsViewFocusOutHandlerContext) && void 0 !== _a ? _a : this.rowsViewFocusOutHandler.bind(this)\r\n }\r\n subscribeToRowsViewFocusEvent() {\r\n var _a;\r\n super.subscribeToRowsViewFocusEvent();\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.on($rowsView, \"focusout\", this.rowsViewFocusOutHandlerContext)\r\n }\r\n unsubscribeFromRowsViewFocusEvent() {\r\n var _a;\r\n super.unsubscribeFromRowsViewFocusEvent();\r\n var $rowsView = null === (_a = this._rowsView) || void 0 === _a ? void 0 : _a.element();\r\n eventsEngine.off($rowsView, \"focusout\", this.rowsViewFocusOutHandlerContext)\r\n }\r\n rowsViewFocusHandler(event) {\r\n var $target = $(event.target);\r\n this.translateFocusIfNeed(event, $target);\r\n super.rowsViewFocusHandler(event)\r\n }\r\n rowsViewFocusOutHandler() {\r\n this.makeScrollableFocusableIfNeed()\r\n }\r\n translateFocusIfNeed(event, $target) {\r\n var needTranslateFocus = this.isScrollableNeedFocusable();\r\n var isFirstCellFixed = this._isFixedColumn(0);\r\n if (!needTranslateFocus || !isFirstCellFixed) {\r\n return\r\n }\r\n var $firstCell = this._rowsView.getCell({\r\n rowIndex: 0,\r\n columnIndex: 0\r\n });\r\n var firstCellHasTabIndex = !!$firstCell.attr(\"tabindex\");\r\n var notFixedCellIsTarget = $target.is(this._$firstNotFixedCell);\r\n if (firstCellHasTabIndex && notFixedCellIsTarget) {\r\n event.preventDefault();\r\n this._focus($firstCell)\r\n }\r\n }\r\n renderCompleted(e) {\r\n this._$firstNotFixedCell = this.getFirstNotFixedCell();\r\n this.makeScrollableFocusableIfNeed();\r\n super.renderCompleted(e)\r\n }\r\n _focus($cell, disableFocus, skipFocusEvent) {\r\n super._focus($cell, disableFocus, skipFocusEvent);\r\n this.makeScrollableFocusableIfNeed()\r\n }\r\n _tabKeyHandler(eventArgs, isEditing) {\r\n var _a;\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var isNeedFocusable = this.isScrollableNeedFocusable();\r\n if (isOriginalHandlerRequired && isNeedFocusable) {\r\n null === (_a = this._$firstNotFixedCell) || void 0 === _a ? void 0 : _a.removeAttr(\"tabIndex\")\r\n }\r\n super._tabKeyHandler(eventArgs, isEditing)\r\n }\r\n getFirstNotFixedCell() {\r\n var columns = this._columnsController.getVisibleColumns();\r\n var columnIndex = columns.findIndex(_ref => {\r\n var {\r\n fixed: fixed\r\n } = _ref;\r\n return !fixed\r\n });\r\n return -1 === columnIndex ? void 0 : this._rowsView._getCellElement(0, columnIndex)\r\n }\r\n isScrollableNeedFocusable() {\r\n var _a, _b;\r\n var hasScrollable = !!this._rowsView.getScrollable();\r\n var hasFixedTable = !!(null === (_a = this._rowsView._fixedTableElement) || void 0 === _a ? void 0 : _a.length);\r\n var isCellsRendered = !!(null === (_b = this._rowsView.getCellElements(0)) || void 0 === _b ? void 0 : _b.length);\r\n return hasScrollable && hasFixedTable && isCellsRendered\r\n }\r\n makeScrollableFocusableIfNeed() {\r\n var needFocusable = this.isScrollableNeedFocusable();\r\n if (!needFocusable || !this._$firstNotFixedCell) {\r\n return\r\n }\r\n this._applyTabIndexToElement(this._$firstNotFixedCell)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_aggregate_calculator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n errors\r\n} from \"../../../data/errors\";\r\nimport {\r\n aggregators\r\n} from \"../../../data/utils\";\r\n\r\nfunction depthFirstSearch(i, depth, root, callback) {\r\n var j = 0;\r\n if (i < depth) {\r\n for (; j < root.items.length; j++) {\r\n depthFirstSearch(i + 1, depth, root.items[j], callback)\r\n }\r\n }\r\n if (i === depth) {\r\n callback(root)\r\n }\r\n}\r\n\r\nfunction map(array, callback) {\r\n var i;\r\n if (\"map\" in array) {\r\n return array.map(callback)\r\n }\r\n var result = new Array(array.length);\r\n for (i in array) {\r\n result[i] = callback(array[i], i)\r\n }\r\n return result\r\n}\r\n\r\nfunction isEmpty(x) {\r\n return x !== x || \"\" === x || null === x || void 0 === x\r\n}\r\n\r\nfunction isCount(aggregator) {\r\n return aggregator === aggregators.count\r\n}\r\n\r\nfunction normalizeAggregate(aggregate) {\r\n var selector = compileGetter(aggregate.selector);\r\n var skipEmptyValues = \"skipEmptyValues\" in aggregate ? aggregate.skipEmptyValues : true;\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n if (\"string\" === typeof aggregator) {\r\n aggregator = aggregators[aggregator];\r\n if (!aggregator) {\r\n throw errors.Error(\"E4001\", aggregate.aggregator)\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n}\r\nexport default Class.inherit({\r\n ctor(options) {\r\n this._data = options.data;\r\n this._groupLevel = options.groupLevel || 0;\r\n this._totalAggregates = map(options.totalAggregates || [], normalizeAggregate);\r\n this._groupAggregates = map(options.groupAggregates || [], normalizeAggregate);\r\n this._totals = []\r\n },\r\n calculate() {\r\n if (this._totalAggregates.length) {\r\n this._calculateTotals(0, {\r\n items: this._data\r\n })\r\n }\r\n if (this._groupAggregates.length && this._groupLevel > 0) {\r\n this._calculateGroups({\r\n items: this._data\r\n })\r\n }\r\n },\r\n totalAggregates() {\r\n return this._totals\r\n },\r\n _aggregate(aggregates, data, container) {\r\n var length = data.items ? data.items.length : 0;\r\n for (var i = 0; i < aggregates.length; i++) {\r\n if (isCount(aggregates[i].aggregator)) {\r\n container[i] = (container[i] || 0) + length;\r\n continue\r\n }\r\n for (var j = 0; j < length; j++) {\r\n this._accumulate(i, aggregates[i], container, data.items[j])\r\n }\r\n }\r\n },\r\n _calculateTotals(level, data) {\r\n if (0 === level) {\r\n this._totals = this._seed(this._totalAggregates)\r\n }\r\n if (level === this._groupLevel) {\r\n this._aggregate(this._totalAggregates, data, this._totals)\r\n } else {\r\n for (var i = 0; i < data.items.length; i++) {\r\n this._calculateTotals(level + 1, data.items[i])\r\n }\r\n }\r\n if (0 === level) {\r\n this._totals = this._finalize(this._totalAggregates, this._totals)\r\n }\r\n },\r\n _calculateGroups(root) {\r\n var maxLevel = this._groupLevel;\r\n var currentLevel = maxLevel + 1;\r\n var seedFn = this._seed.bind(this, this._groupAggregates);\r\n var stepFn = this._aggregate.bind(this, this._groupAggregates);\r\n var finalizeFn = this._finalize.bind(this, this._groupAggregates);\r\n\r\n function aggregator(node) {\r\n node.aggregates = seedFn(currentLevel - 1);\r\n if (currentLevel === maxLevel) {\r\n stepFn(node, node.aggregates)\r\n } else {\r\n depthFirstSearch(currentLevel, maxLevel, node, innerNode => {\r\n stepFn(innerNode, node.aggregates)\r\n })\r\n }\r\n node.aggregates = finalizeFn(node.aggregates)\r\n }\r\n while (--currentLevel > 0) {\r\n depthFirstSearch(0, currentLevel, root, aggregator)\r\n }\r\n },\r\n _seed: (aggregates, groupIndex) => map(aggregates, aggregate => {\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n var seed = \"seed\" in aggregator ? isFunction(aggregator.seed) ? aggregator.seed(groupIndex) : aggregator.seed : NaN;\r\n return seed\r\n }),\r\n _accumulate(aggregateIndex, aggregate, results, item) {\r\n var value = aggregate.selector(item);\r\n var {\r\n aggregator: aggregator\r\n } = aggregate;\r\n var {\r\n skipEmptyValues: skipEmptyValues\r\n } = aggregate;\r\n if (skipEmptyValues && isEmpty(value)) {\r\n return\r\n }\r\n if (results[aggregateIndex] !== results[aggregateIndex]) {\r\n results[aggregateIndex] = value\r\n } else {\r\n results[aggregateIndex] = aggregator.step(results[aggregateIndex], value)\r\n }\r\n },\r\n _finalize: (aggregates, results) => map(aggregates, (aggregate, index) => {\r\n var fin = aggregate.aggregator.finalize;\r\n return fin ? fin(results[index]) : results[index]\r\n })\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n keyboardNavigationModule\r\n} from \"../../../grids/grid_core/keyboard_navigation/m_keyboard_navigation\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"keyboardNavigation\", keyboardNavigationModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/summary/m_summary.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../../../data/utils\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n ColumnsView\r\n} from \"../../../grids/grid_core/views/m_columns_view\";\r\nimport AggregateCalculator from \"../m_aggregate_calculator\";\r\nimport gridCore from \"../m_core\";\r\nimport dataSourceAdapter from \"../m_data_source_adapter\";\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_FOOTER_ROW_CLASS = \"dx-footer-row\";\r\nvar DATAGRID_CELL_DISABLED = \"dx-cell-focus-disabled\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nvar DATAGRID_TOTAL_FOOTER_ROW_TYPE = \"totalFooter\";\r\nexport var renderSummaryCell = function(cell, options) {\r\n var $cell = $(cell);\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n summaryItems: summaryItems\r\n } = options;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n var text = gridCore.getSummaryText(summaryItem, options.summaryTexts);\r\n $summaryItems.push($(\"<div>\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(text).attr(\"aria-label\", \"\".concat(column.caption, \" \").concat(text)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nexport var FooterView = ColumnsView.inherit({\r\n _getRows() {\r\n return this._dataController.footerItems()\r\n },\r\n _getCellOptions(options) {\r\n return extend(this.callBase(options), getSummaryCellOptions(this, options))\r\n },\r\n _renderCellContent($cell, options) {\r\n renderSummaryCell($cell, options);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderCore(change) {\r\n var needUpdateScrollLeft = false;\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"));\r\n needUpdateScrollLeft = true\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n needUpdateScrollLeft && this._updateScrollLeftPosition()\r\n }\r\n },\r\n _updateContent($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n return this.waitAsyncTemplates().done(() => {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n })\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _rowClick(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({}, e, item))\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e)\r\n }\r\n },\r\n _handleDataChanged(e) {\r\n var {\r\n changeType: changeType\r\n } = e;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n } else if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row.rowType === DATAGRID_TOTAL_FOOTER_ROW_TYPE) {\r\n $row.addClass(DATAGRID_FOOTER_ROW_CLASS);\r\n $row.addClass(DATAGRID_CELL_DISABLED);\r\n $row.attr(\"tabindex\", 0)\r\n }\r\n return $row\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n isVisible() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n});\r\nvar SummaryDataSourceAdapterExtender = {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._totalAggregates = [];\r\n this._summaryGetter = noop\r\n },\r\n summaryGetter(summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if (isFunction(summaryGetter)) {\r\n this._summaryGetter = summaryGetter\r\n }\r\n },\r\n summary(summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return summary\r\n }\r\n },\r\n totalAggregates() {\r\n return this._totalAggregates\r\n },\r\n isLastLevelGroupItemsPagingLocal() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = summary && summary.sortByGroups();\r\n return sortByGroupsInfo && sortByGroupsInfo.length\r\n },\r\n sortLastLevelGroupItems(items, groups, paths) {\r\n var groupedItems = storeHelper.multiLevelGroup(dataQuery(items), groups).toArray();\r\n var result = [];\r\n paths.forEach(path => {\r\n ! function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n }(groupedItems, groups.length, (itemsPath, items) => {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n};\r\nvar SummaryDataSourceAdapterClientExtender = function() {\r\n var calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(item => ({\r\n items: [item]\r\n }), groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n }(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(data => {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: () => data.aggregates,\r\n set: value => {\r\n data.aggregates = value\r\n }\r\n });\r\n return extend(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(data => removedData.indexOf(data) < 0)\r\n }(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new AggregateCalculator({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n };\r\n var sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = dataQuery(items);\r\n each(sorts, (function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n }));\r\n query.enumerate().done(sortedItems => {\r\n items = sortedItems\r\n })\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n each(items, (function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n }))\r\n }\r\n return items\r\n }(data, group, sortByGroups)\r\n }\r\n return data\r\n };\r\n return {\r\n _customizeRemoteOperations(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n this.callBase.apply(this, arguments);\r\n var cachedExtra = options.cachedData.extra;\r\n if (cachedExtra && cachedExtra.summary && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n },\r\n _handleDataLoadedCore(options) {\r\n var _a, _b;\r\n var groups = normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = this.summaryGetter()(remoteOperations);\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(this, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else if (!remoteOperations.paging && summary) {\r\n var operationTypes = options.operationTypes || {};\r\n var hasOperations = Object.keys(operationTypes).some(type => operationTypes[type]);\r\n if (!hasOperations || !(null === (_b = null === (_a = options.cachedData) || void 0 === _a ? void 0 : _a.extra) || void 0 === _b ? void 0 : _b.summary) || groups.length && summary.groupAggregates.length) {\r\n var totalAggregates = calculateAggregates(this, summary, options.data, groups.length);\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates;\r\n if (options.cachedData) {\r\n options.cachedData.extra = options.extra\r\n }\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._totalAggregates = options.extra && options.extra.summary || this._totalAggregates\r\n }\r\n this.callBase(options)\r\n }\r\n }\r\n}();\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterExtender);\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterClientExtender);\r\ngridCore.registerModule(\"summary\", {\r\n defaultOptions: () => ({\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: messageLocalization.format(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: messageLocalization.format(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: messageLocalization.format(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: messageLocalization.format(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: messageLocalization.format(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: messageLocalization.format(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: messageLocalization.format(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }),\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _isDataColumn: column => column && (!isDefined(column.groupIndex) || column.showWhenGrouped),\r\n _isGroupFooterVisible() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _processGroupItems(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = this.callBase.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _processGroupItem(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n each(options.visibleColumns, (function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n }));\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (summaryItem, column) => {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !isDefined(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n }\r\n return groupColumnIndex\r\n }, true)\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (summaryItem, column) => summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1)\r\n }\r\n return groupItem\r\n },\r\n _calculateSummaryCells(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex, isGroupRow) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n each(summaryItems, (summaryIndex, summaryItem) => {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if (isDefined(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = gridCore.getFormatByDataType(column && column.dataType)\r\n }\r\n summaryCellsByColumns[columnIndex].push(extend({}, summaryItem, {\r\n value: isString(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n });\r\n if (!isEmptyObject(summaryCellsByColumns)) {\r\n visibleColumns.forEach((column, visibleIndex) => {\r\n var prevColumn = visibleColumns[visibleIndex - 1];\r\n var columnIndex = isGroupRow && (\"expand\" === (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command) || \"expand\" === column.command) ? null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.index : column.index;\r\n summaryCells.push(summaryCellsByColumns[columnIndex] || [])\r\n })\r\n }\r\n return summaryCells\r\n },\r\n _getSummaryCells(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), (summaryItem, column) => that._isDataColumn(column) ? column.index : -1)\r\n },\r\n _updateItemsCore(change) {\r\n var summaryCells;\r\n var dataSource = this._dataSource;\r\n var footerItems = this._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = this.option(\"summary.totalItems\");\r\n this._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = this._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map((summaryCell, index) => {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n }).filter(index => index >= 0)\r\n }\r\n if (summaryCells.length) {\r\n this._footerItems.push({\r\n rowType: DATAGRID_TOTAL_FOOTER_ROW_TYPE,\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n this.callBase(change)\r\n },\r\n _prepareUnsavedDataSelector(selector) {\r\n if (recalculateWhileEditing(this)) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n },\r\n _prepareAggregateSelector(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return isDefined(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n },\r\n _getAggregates(summaryItems, remoteOperations) {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return map(summaryItems || [], summaryItem => {\r\n var column = columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : compileGetter(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var skipEmptyValues = isDefined(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n }\r\n var selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n errors.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n })\r\n },\r\n _addSortInfo(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var {\r\n groupIndex: groupIndex\r\n } = groupColumn;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if (isDefined(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n },\r\n _findSummaryItem(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n if (isDefined(name)) {\r\n each(summaryItems || [], (function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || function(summaryItem) {\r\n var {\r\n summaryType: summaryType\r\n } = summaryItem;\r\n var {\r\n column: column\r\n } = summaryItem;\r\n return summaryType && column && \"\".concat(summaryType, \"_\").concat(column)\r\n }(this) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n return summaryItemIndex\r\n },\r\n _getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }\r\n each(sortByGroupSummaryInfo || [], (function() {\r\n var {\r\n sortOrder: sortOrder\r\n } = this;\r\n var {\r\n groupColumn: groupColumn\r\n } = this;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if (isDefined(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n each(groupColumns, (groupIndex, groupColumn) => {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n })\r\n }\r\n }));\r\n return sortByGroups\r\n },\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = this.callBase(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter(currentRemoteOperations => that._getSummaryOptions(currentRemoteOperations || remoteOperations));\r\n return dataSourceAdapter\r\n },\r\n _getSummaryOptions(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n }\r\n }\r\n }\r\n return\r\n },\r\n publicMethods() {\r\n var methods = this.callBase();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n },\r\n getTotalSummaryValue(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n },\r\n optionChanged(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n },\r\n init() {\r\n this._footerItems = [];\r\n this.callBase()\r\n },\r\n footerItems() {\r\n return this._footerItems\r\n }\r\n },\r\n editing: {\r\n _refreshSummary() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n },\r\n _addChange(params) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n },\r\n _removeChange() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n },\r\n cancelEditData() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n },\r\n _renderCells($row, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: (columnIndex, options) => !isDefined(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length,\r\n _getAlignByColumnCellCount(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n },\r\n _renderGroupSummaryCells($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), extend({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n },\r\n _getSummaryCellIndex: columnIndex => columnIndex,\r\n _getCellTemplate(options) {\r\n if (!options.column.command && !isDefined(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n }\r\n return this.callBase(options)\r\n },\r\n _getCellOptions(options) {\r\n var parameters = this.callBase(options);\r\n if (options.row.summaryCells) {\r\n return extend(parameters, getSummaryCellOptions(this, options))\r\n }\r\n return parameters\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../../animation/translator\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../../../events/core/wheel\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n normalizeWidth\r\n} from \"../views/m_columns_view\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar FIRST_CELL_CLASS = \"dx-first-cell\";\r\nvar LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar HOVER_STATE_CLASS = \"dx-state-hover\";\r\nvar FIXED_COL_CLASS = \"dx-col-fixed\";\r\nvar FIXED_COLUMNS_CLASS = \"dx-fixed-columns\";\r\nvar POINTER_EVENTS_NONE_CLASS = \"dx-pointer-events-none\";\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar getTransparentColumnIndex = function(fixedColumns) {\r\n var transparentColumnIndex = -1;\r\n each(fixedColumns, (index, column) => {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n transparentColumnIndex = index;\r\n return false\r\n }\r\n return\r\n });\r\n return transparentColumnIndex\r\n};\r\nvar normalizeColumnWidths = function(fixedColumns, widths, fixedWidths) {\r\n var fixedColumnIndex = 0;\r\n if (fixedColumns && widths && fixedWidths) {\r\n for (var i = 0; i < fixedColumns.length; i++) {\r\n if (fixedColumns[i].command === COMMAND_TRANSPARENT) {\r\n fixedColumnIndex += fixedColumns[i].colspan\r\n } else {\r\n if (widths[fixedColumnIndex] < fixedWidths[i]) {\r\n widths[fixedColumnIndex] = fixedWidths[i]\r\n }\r\n fixedColumnIndex++\r\n }\r\n }\r\n }\r\n return widths\r\n};\r\nvar baseFixedColumns = {\r\n init() {\r\n this.callBase();\r\n this._isFixedTableRendering = false;\r\n this._isFixedColumns = false\r\n },\r\n _createCol(column) {\r\n return this.callBase(column).toggleClass(FIXED_COL_CLASS, !!(this._isFixedTableRendering && (column.fixed || column.command && column.command !== COMMAND_TRANSPARENT)))\r\n },\r\n _correctColumnIndicesForFixedColumns(fixedColumns, change) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColspan = fixedColumns[transparentColumnIndex].colspan;\r\n var columnIndices = change && change.columnIndices;\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices.map(columnIndices => {\r\n if (columnIndices) {\r\n return columnIndices.map(columnIndex => {\r\n if (columnIndex < transparentColumnIndex) {\r\n return columnIndex\r\n }\r\n if (columnIndex >= transparentColumnIndex + transparentColspan) {\r\n return columnIndex - transparentColspan + 1\r\n }\r\n return -1\r\n }).filter(columnIndex => columnIndex >= 0)\r\n }\r\n })\r\n }\r\n },\r\n _partialUpdateFixedTable(fixedColumns) {\r\n var fixedTableElement = this._fixedTableElement;\r\n var $rows = this._getRowElementsCore(fixedTableElement);\r\n var $colgroup = fixedTableElement.children(\"colgroup\");\r\n $colgroup.replaceWith(this._createColGroup(fixedColumns));\r\n for (var i = 0; i < $rows.length; i++) {\r\n this._partialUpdateFixedRow($($rows[i]), fixedColumns)\r\n }\r\n },\r\n _partialUpdateFixedRow($row, fixedColumns) {\r\n var _a;\r\n var cellElements = $row.get(0).childNodes;\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColumn = fixedColumns[transparentColumnIndex];\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var groupCellOptions;\r\n var colIndex = columnIndexOffset + 1;\r\n var {\r\n colspan: colspan\r\n } = transparentColumn;\r\n if ($row.hasClass(DETAIL_ROW_CLASS)) {\r\n cellElements[0].setAttribute(\"colspan\", null === (_a = this._columnsController.getVisibleColumns()) || void 0 === _a ? void 0 : _a.length);\r\n return\r\n }\r\n if ($row.hasClass(GROUP_ROW_CLASS)) {\r\n groupCellOptions = this._getGroupCellOptions({\r\n row: $row.data(\"options\"),\r\n columns: this._columnsController.getVisibleColumns()\r\n });\r\n colspan = groupCellOptions.colspan - Math.max(0, cellElements.length - (groupCellOptions.columnIndex + 2))\r\n }\r\n for (var j = 0; j < cellElements.length; j++) {\r\n var needUpdateColspan = groupCellOptions ? j === groupCellOptions.columnIndex + 1 : j === transparentColumnIndex;\r\n cellElements[j].setAttribute(\"aria-colindex\", colIndex);\r\n if (needUpdateColspan) {\r\n cellElements[j].setAttribute(\"colspan\", colspan);\r\n colIndex += colspan\r\n } else {\r\n colIndex++\r\n }\r\n }\r\n },\r\n _renderTable(options) {\r\n var _a;\r\n var $fixedTable;\r\n var fixedColumns = this.getFixedColumns();\r\n this._isFixedColumns = !!fixedColumns.length;\r\n var $table = this.callBase(options);\r\n if (this._isFixedColumns) {\r\n var change = null === options || void 0 === options ? void 0 : options.change;\r\n var $fixedDataRows = this._getRowElements(this._fixedTableElement);\r\n var needPartialUpdate = (null === change || void 0 === change ? void 0 : change.virtualColumnsScrolling) && $fixedDataRows.length === (null === (_a = null === change || void 0 === change ? void 0 : change.items) || void 0 === _a ? void 0 : _a.length);\r\n this._isFixedTableRendering = true;\r\n if (needPartialUpdate && true !== this.option(\"scrolling.legacyMode\")) {\r\n this._partialUpdateFixedTable(fixedColumns);\r\n this._isFixedTableRendering = false\r\n } else {\r\n var columnIndices = null === change || void 0 === change ? void 0 : change.columnIndices;\r\n this._correctColumnIndicesForFixedColumns(fixedColumns, change);\r\n $fixedTable = this._createTable(fixedColumns);\r\n this._renderRows($fixedTable, extend({}, options, {\r\n columns: fixedColumns\r\n }));\r\n this._updateContent($fixedTable, change, true);\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices\r\n }\r\n this._isFixedTableRendering = false\r\n }\r\n } else {\r\n this._fixedTableElement && this._fixedTableElement.parent().remove();\r\n this._fixedTableElement = null\r\n }\r\n return $table\r\n },\r\n _renderRow($table, options) {\r\n var fixedCorrection;\r\n var {\r\n cells: cells\r\n } = options.row;\r\n this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering && cells && cells.length) {\r\n fixedCorrection = 0;\r\n var fixedCells = options.row.cells || [];\r\n cells = cells.slice();\r\n options.row.cells = cells;\r\n for (var i = 0; i < fixedCells.length; i++) {\r\n if (fixedCells[i].column && fixedCells[i].column.command === COMMAND_TRANSPARENT) {\r\n fixedCorrection = (fixedCells[i].column.colspan || 1) - 1;\r\n continue\r\n }\r\n cells[i + fixedCorrection] = fixedCells[i]\r\n }\r\n }\r\n },\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var columnCommand = column && column.command;\r\n var {\r\n rowType: rowType\r\n } = options;\r\n var $cell = this.callBase.apply(this, arguments);\r\n var fixedColumns;\r\n var prevFixedColumn;\r\n var transparentColumnIndex;\r\n if (this._isFixedTableRendering || \"filter\" === rowType) {\r\n fixedColumns = this.getFixedColumns();\r\n transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n prevFixedColumn = fixedColumns[transparentColumnIndex - 1]\r\n }\r\n if (this._isFixedTableRendering) {\r\n if (columnCommand === COMMAND_TRANSPARENT) {\r\n $cell.addClass(POINTER_EVENTS_NONE_CLASS).toggleClass(FIRST_CELL_CLASS, 0 === transparentColumnIndex || prevFixedColumn && \"expand\" === prevFixedColumn.command).toggleClass(LAST_CELL_CLASS, fixedColumns.length && transparentColumnIndex === fixedColumns.length - 1);\r\n if (\"freeSpace\" !== rowType) {\r\n gridCoreUtils.setEmptyText($cell)\r\n }\r\n }\r\n } else if (\"filter\" === rowType) {\r\n $cell.toggleClass(FIRST_CELL_CLASS, options.columnIndex === transparentColumnIndex)\r\n }\r\n var isRowAltStyle = this.option(\"rowAlternationEnabled\") && options.isAltRow;\r\n var isSelectAllCell = \"multiple\" === this.option(\"selection.mode\") && 0 === options.columnIndex && \"header\" === options.rowType;\r\n if (browser.mozilla && options.column.fixed && \"group\" !== options.rowType && !isRowAltStyle && !isSelectAllCell) {\r\n $cell.addClass(FIXED_COL_CLASS)\r\n }\r\n return $cell\r\n },\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return isFixedTableRendering ? null === (_a = this._fixedTableElement) || void 0 === _a ? void 0 : _a.parent() : this.callBase.apply(this, arguments)\r\n },\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_FIXED_CLASS))\r\n }\r\n return $scrollContainer\r\n },\r\n _renderCellContent($cell, options) {\r\n var isEmptyCell;\r\n var {\r\n column: column\r\n } = options;\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var isGroupCell = \"group\" === options.rowType && isDefined(column.groupIndex);\r\n if (isFixedTableRendering && isGroupCell && !column.command && !column.groupCellTemplate) {\r\n $cell.css(\"pointerEvents\", \"none\")\r\n }\r\n if (!isFixedTableRendering && this._isFixedColumns) {\r\n isEmptyCell = column.fixed || column.command && false !== column.fixed;\r\n if (isGroupCell) {\r\n isEmptyCell = false;\r\n if (options.row.summaryCells && options.row.summaryCells.length) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n var alignByFixedColumnCellCount = this._getAlignByColumnCellCount ? this._getAlignByColumnCellCount(column.colspan, {\r\n columns: columns,\r\n row: options.row,\r\n isFixed: true\r\n }) : 0;\r\n if (alignByFixedColumnCellCount > 0) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this._columnsController.getFixedColumns());\r\n isEmptyCell = columns.length - alignByFixedColumnCellCount < transparentColumnIndex\r\n }\r\n }\r\n }\r\n if (isEmptyCell) {\r\n if (column.command && \"buttons\" !== column.type || \"group\" === options.rowType) {\r\n $cell.html(\" \").addClass(column.cssClass);\r\n return\r\n }\r\n $cell.addClass(\"dx-hidden-cell\")\r\n }\r\n }\r\n if (column.command !== COMMAND_TRANSPARENT) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getCellElementsCore(rowIndex) {\r\n var cellElements = this.callBase.apply(this, arguments);\r\n var isGroupRow = null === cellElements || void 0 === cellElements ? void 0 : cellElements.parent().hasClass(GROUP_ROW_CLASS);\r\n var headerRowIndex = \"columnHeadersView\" === this.name ? rowIndex : void 0;\r\n if (this._fixedTableElement && cellElements) {\r\n var fixedColumns = this.getFixedColumns(headerRowIndex);\r\n var fixedCellElements = this._getRowElements(this._fixedTableElement).eq(rowIndex).children(\"td\");\r\n each(fixedCellElements, (columnIndex, cell) => {\r\n if (isGroupRow) {\r\n if (cellElements[columnIndex] && \"hidden\" !== cell.style.visibility) {\r\n cellElements[columnIndex] = cell\r\n }\r\n } else {\r\n var fixedColumn = fixedColumns[columnIndex];\r\n if (fixedColumn) {\r\n if (fixedColumn.command === COMMAND_TRANSPARENT) {\r\n if (fixedCellElements.eq(columnIndex).hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n cellElements[columnIndex] = cell || cellElements[columnIndex]\r\n }\r\n } else {\r\n var fixedColumnIndex = this._columnsController.getVisibleIndexByColumn(fixedColumn, headerRowIndex);\r\n cellElements[fixedColumnIndex] = cell || cellElements[fixedColumnIndex]\r\n }\r\n }\r\n }\r\n })\r\n }\r\n return cellElements\r\n },\r\n getColumnWidths() {\r\n var result = this.callBase();\r\n var fixedColumns = this.getFixedColumns();\r\n var fixedWidths = this._fixedTableElement && result.length ? this.callBase(this._fixedTableElement) : void 0;\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n },\r\n getTableElement(isFixedTableRendering) {\r\n isFixedTableRendering = this._isFixedTableRendering || isFixedTableRendering;\r\n var tableElement = isFixedTableRendering ? this._fixedTableElement : this.callBase();\r\n return tableElement\r\n },\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n this._fixedTableElement = tableElement.addClass(POINTER_EVENTS_NONE_CLASS)\r\n } else {\r\n this.callBase(tableElement)\r\n }\r\n },\r\n getColumns(rowIndex) {\r\n var $tableElement = this.getTableElement();\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex, $tableElement)\r\n },\r\n getRowIndex($row) {\r\n var $fixedTable = this._fixedTableElement;\r\n if ($fixedTable && $fixedTable.find($row).length) {\r\n return this._getRowElements($fixedTable).index($row)\r\n }\r\n return this.callBase($row)\r\n },\r\n getTableElements() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n result = $([result.get(0), this._fixedTableElement.get(0)])\r\n }\r\n return result\r\n },\r\n getFixedColumns(rowIndex) {\r\n return this._columnsController.getFixedColumns(rowIndex)\r\n },\r\n getFixedColumnsOffset() {\r\n var offset = {\r\n left: 0,\r\n right: 0\r\n };\r\n var $transparentColumn;\r\n if (this._fixedTableElement) {\r\n $transparentColumn = this.getTransparentColumnElement();\r\n var positionTransparentColumn = $transparentColumn.position();\r\n offset = {\r\n left: positionTransparentColumn.left,\r\n right: getOuterWidth(this.element(), true) - (getOuterWidth($transparentColumn, true) + positionTransparentColumn.left)\r\n }\r\n }\r\n return offset\r\n },\r\n getTransparentColumnElement() {\r\n return this._fixedTableElement && this._fixedTableElement.find(\".\".concat(POINTER_EVENTS_NONE_CLASS)).first()\r\n },\r\n getFixedTableElement() {\r\n return this._fixedTableElement\r\n },\r\n isFixedColumns() {\r\n return this._isFixedColumns\r\n },\r\n _resizeCore() {\r\n this.callBase();\r\n this.synchronizeRows()\r\n },\r\n setColumnWidths(options) {\r\n var _a;\r\n var {\r\n widths: widths\r\n } = options;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var isColumnWidthsSynced = (null === widths || void 0 === widths ? void 0 : widths.length) && visibleColumns.some(column => isDefined(column.visibleWidth));\r\n var isColumnWidthChanged = null === (_a = options.optionNames) || void 0 === _a ? void 0 : _a.width;\r\n this.callBase(options);\r\n if (this._fixedTableElement) {\r\n var hasAutoWidth = null === widths || void 0 === widths ? void 0 : widths.some(width => \"auto\" === width || !isDefined(width));\r\n var needVisibleColumns = hasAutoWidth && (!isColumnWidthsSynced || !this.isScrollbarVisible(true));\r\n var columns = needVisibleColumns ? visibleColumns : this.getFixedColumns();\r\n this.setFixedTableColumnWidths(columns, widths)\r\n }\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var needSynchronizeRows = isColumnWidthsSynced || isColumnWidthChanged && wordWrapEnabled;\r\n if (needSynchronizeRows) {\r\n this.synchronizeRows()\r\n }\r\n },\r\n setFixedTableColumnWidths(columns, widths) {\r\n if (!this._fixedTableElement || !widths) {\r\n return\r\n }\r\n var $cols = this._fixedTableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n var columnIndex = 0;\r\n columns.forEach(column => {\r\n if (column.colspan) {\r\n columnIndex += column.colspan;\r\n return\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n columnIndex += 1\r\n })\r\n },\r\n _getClientHeight(element) {\r\n var boundingClientRectElement = element.getBoundingClientRect && getBoundingRect(element);\r\n return boundingClientRectElement && boundingClientRectElement.height ? boundingClientRectElement.height : element.clientHeight\r\n },\r\n synchronizeRows() {\r\n var rowHeights = [];\r\n var fixedRowHeights = [];\r\n var rowIndex;\r\n var $rowElements;\r\n var $fixedRowElements;\r\n var $contentElement;\r\n this.waitAsyncTemplates(true).done(() => {\r\n if (this._isFixedColumns && this._tableElement && this._fixedTableElement) {\r\n var heightTable = this._getClientHeight(this._tableElement.get(0));\r\n var heightFixedTable = this._getClientHeight(this._fixedTableElement.get(0));\r\n $rowElements = this._getRowElements(this._tableElement);\r\n $fixedRowElements = this._getRowElements(this._fixedTableElement);\r\n $contentElement = this._findContentElement();\r\n if (heightTable !== heightFixedTable) {\r\n $contentElement && $contentElement.css(\"height\", heightTable);\r\n $rowElements.css(\"height\", \"\");\r\n $fixedRowElements.css(\"height\", \"\");\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n rowHeights.push(this._getClientHeight($rowElements.get(rowIndex)));\r\n fixedRowHeights.push(this._getClientHeight($fixedRowElements.get(rowIndex)))\r\n }\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n var rowHeight = rowHeights[rowIndex];\r\n var fixedRowHeight = fixedRowHeights[rowIndex];\r\n if (rowHeight > fixedRowHeight) {\r\n $fixedRowElements.eq(rowIndex).css(\"height\", rowHeight)\r\n } else if (rowHeight < fixedRowHeight) {\r\n $rowElements.eq(rowIndex).css(\"height\", fixedRowHeight)\r\n }\r\n }\r\n $contentElement && $contentElement.css(\"height\", \"\")\r\n }\r\n }\r\n })\r\n },\r\n setScrollerSpacing(width) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this.callBase(width);\r\n this.element().children(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS))).css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n};\r\nvar ColumnHeadersViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _getRowVisibleColumns(rowIndex) {\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex)\r\n },\r\n getContextMenuItems(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var columnFixingOptions = this.option(\"columnFixing\");\r\n var items = this.callBase(options);\r\n if (options.row && \"header\" === options.row.rowType) {\r\n if (true === columnFixingOptions.enabled && column && column.allowFixing) {\r\n var onItemClick = params => {\r\n switch (params.itemData.value) {\r\n case \"none\":\r\n this._columnsController.columnOption(column.index, \"fixed\", false);\r\n break;\r\n case \"left\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"left\"\r\n });\r\n break;\r\n case \"right\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"right\"\r\n })\r\n }\r\n };\r\n items = items || [];\r\n items.push({\r\n text: columnFixingOptions.texts.fix,\r\n beginGroup: true,\r\n items: [{\r\n text: columnFixingOptions.texts.leftPosition,\r\n value: \"left\",\r\n disabled: column.fixed && (!column.fixedPosition || \"left\" === column.fixedPosition),\r\n onItemClick: onItemClick\r\n }, {\r\n text: columnFixingOptions.texts.rightPosition,\r\n value: \"right\",\r\n disabled: column.fixed && \"right\" === column.fixedPosition,\r\n onItemClick: onItemClick\r\n }]\r\n }, {\r\n text: columnFixingOptions.texts.unfix,\r\n value: \"none\",\r\n disabled: !column.fixed,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n getFixedColumnElements(rowIndex) {\r\n if (isDefined(rowIndex)) {\r\n return this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).children()\r\n }\r\n var columnElements = this.getColumnElements();\r\n var $transparentColumnElement = this.getTransparentColumnElement();\r\n if (columnElements && $transparentColumnElement && $transparentColumnElement.length) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this.getFixedColumns());\r\n columnElements.splice(transparentColumnIndex, $transparentColumnElement.get(0).colSpan, $transparentColumnElement.get(0))\r\n }\r\n return columnElements\r\n },\r\n getColumnWidths() {\r\n var fixedWidths;\r\n var result = this.callBase();\r\n var $fixedColumnElements = this.getFixedColumnElements();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement) {\r\n if ($fixedColumnElements && $fixedColumnElements.length) {\r\n fixedWidths = this._getWidths($fixedColumnElements)\r\n } else {\r\n fixedWidths = this.callBase(this._fixedTableElement)\r\n }\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n});\r\nvar RowsViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _detachHoverEvents() {\r\n var element = this.element();\r\n if (this._fixedTableElement && this._tableElement) {\r\n eventsEngine.off(element, \"mouseover mouseout\", \".dx-data-row\")\r\n }\r\n },\r\n _attachHoverEvents() {\r\n if (this._fixedTableElement && this._tableElement) {\r\n eventsEngine.on(this.element(), \"mouseover mouseout\", \".dx-data-row\", this.createAction(args => {\r\n var {\r\n event: event\r\n } = args;\r\n var rowIndex = this.getRowIndex($(event.target).closest(\".dx-row\"));\r\n var isHover = \"mouseover\" === event.type;\r\n if (rowIndex >= 0) {\r\n this._tableElement && this._getRowElements(this._tableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover);\r\n this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover)\r\n }\r\n }))\r\n }\r\n },\r\n _getScrollDelay() {\r\n var _a;\r\n var hasResizeTimeout = null === (_a = this.getController(\"resizing\")) || void 0 === _a ? void 0 : _a.hasResizeTimeout();\r\n if (hasResizeTimeout) {\r\n return this.option(\"scrolling.updateTimeout\")\r\n }\r\n return browser.mozilla ? 60 : 0\r\n },\r\n _findContentElement(isFixedTableRendering) {\r\n var $content;\r\n var scrollTop;\r\n var contentClass = this.addWidgetPrefix(CONTENT_CLASS);\r\n var element = this.element();\r\n isFixedTableRendering = this._isFixedTableRendering || isFixedTableRendering;\r\n if (element && isFixedTableRendering) {\r\n $content = element.children(\".\".concat(contentClass));\r\n var scrollable = this.getScrollable();\r\n if (!$content.length && scrollable) {\r\n $content = $(\"<div>\").addClass(contentClass);\r\n eventsEngine.on($content, \"scroll\", e => {\r\n var {\r\n target: target\r\n } = e;\r\n var scrollDelay = this._getScrollDelay();\r\n clearTimeout(this._fixedScrollTimeout);\r\n this._fixedScrollTimeout = setTimeout(() => {\r\n scrollTop = $(target).scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }, scrollDelay)\r\n });\r\n eventsEngine.on($content, wheelEventName, e => {\r\n var $nearestScrollable = $(e.target).closest(\".dx-scrollable\");\r\n var shouldScroll = false;\r\n if (scrollable && scrollable.$element().is($nearestScrollable)) {\r\n shouldScroll = true\r\n } else {\r\n var nearestScrollableInstance = $nearestScrollable.length && Scrollable.getInstance($nearestScrollable.get(0));\r\n var nearestScrollableHasVerticalScrollbar = nearestScrollableInstance && nearestScrollableInstance.scrollHeight() - nearestScrollableInstance.clientHeight() > 0;\r\n shouldScroll = nearestScrollableInstance && !nearestScrollableHasVerticalScrollbar\r\n }\r\n if (shouldScroll) {\r\n scrollTop = scrollable.scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop - e.delta\r\n });\r\n var scrollableTop = scrollable.scrollTop() + scrollable.clientHeight();\r\n var scrollableHeight = scrollable.scrollHeight() + this.getScrollbarWidth();\r\n var isPreventDefault = scrollable.scrollTop() > 0 && scrollableTop < scrollableHeight;\r\n if (isPreventDefault) {\r\n return false\r\n }\r\n }\r\n return\r\n });\r\n $content.appendTo(element)\r\n }\r\n return $content\r\n }\r\n return this.callBase()\r\n },\r\n _updateScrollable() {\r\n this.callBase();\r\n var scrollable = this.getScrollable();\r\n if (null === scrollable || void 0 === scrollable ? void 0 : scrollable._disposed) {\r\n return\r\n }\r\n var scrollTop = scrollable && scrollable.scrollOffset().top;\r\n this._updateFixedTablePosition(scrollTop)\r\n },\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n if (this._isFixedTableRendering || isFixedTableRendering) {\r\n return contentElement.empty().addClass(\"\".concat(this.addWidgetPrefix(CONTENT_CLASS), \" \").concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS))).append(tableElement)\r\n }\r\n return this.callBase(contentElement, tableElement)\r\n },\r\n _getGroupCellOptions(options) {\r\n if (this._isFixedTableRendering) {\r\n return this.callBase(extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n return this.callBase(options)\r\n },\r\n _renderGroupedCells($row, options) {\r\n return this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n },\r\n _renderGroupSummaryCells($row, options) {\r\n if (this._isFixedTableRendering) {\r\n this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n } else {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems(columnIndex, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var column = options.columns[columnIndex];\r\n if (options.isFixed) {\r\n return column.fixed && (result || \"right\" === column.fixedPosition)\r\n }\r\n return result && (!this._isFixedColumns || !column.fixed)\r\n },\r\n _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n var alignByFixedColumnCellCount;\r\n if (this._isFixedTableRendering) {\r\n options.isFixed = true;\r\n alignByFixedColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n options.isFixed = false;\r\n var startColumnIndex = options.columns.length - alignByFixedColumnCellCount;\r\n options = extend({}, options, {\r\n columns: this.getFixedColumns()\r\n });\r\n var transparentColumnIndex = getTransparentColumnIndex(options.columns);\r\n if (startColumnIndex < transparentColumnIndex) {\r\n alignByFixedColumnCellCount -= options.columns[transparentColumnIndex].colspan - 1 || 0;\r\n groupCellColSpan -= options.columns[transparentColumnIndex].colspan - 1 || 0\r\n } else if (alignByColumnCellCount > 0) {\r\n $groupCell.css(\"visibility\", \"hidden\")\r\n }\r\n alignByColumnCellCount = alignByFixedColumnCellCount\r\n }\r\n this.callBase($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _getSummaryCellIndex(columnIndex, columns) {\r\n if (this._isFixedTableRendering) {\r\n var transparentColumnIndex = getTransparentColumnIndex(columns);\r\n if (columnIndex > transparentColumnIndex) {\r\n columnIndex += columns[transparentColumnIndex].colspan - 1\r\n }\r\n return columnIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _renderCore(change) {\r\n this._detachHoverEvents();\r\n var deferred = this.callBase(change);\r\n var isFixedColumns = this._isFixedColumns;\r\n this.element().toggleClass(FIXED_COLUMNS_CLASS, isFixedColumns);\r\n if (this.option(\"hoverStateEnabled\") && isFixedColumns) {\r\n this._attachHoverEvents()\r\n }\r\n return deferred\r\n },\r\n setAriaOwns(headerTableId, footerTableId, isFixed) {\r\n var _a, _b;\r\n if (isFixed) {\r\n var contentFixedClass = this.addWidgetPrefix(CONTENT_FIXED_CLASS);\r\n var $contentFixedElement = null === (_a = this.element()) || void 0 === _a ? void 0 : _a.children(\".\".concat(contentFixedClass));\r\n var $fixedTableElement = this.getFixedTableElement();\r\n if ($contentFixedElement.length && (null === $fixedTableElement || void 0 === $fixedTableElement ? void 0 : $fixedTableElement.length)) {\r\n this.setAria(\"owns\", \"\".concat(null !== headerTableId && void 0 !== headerTableId ? headerTableId : \"\", \" \").concat(null !== (_b = $fixedTableElement.attr(\"id\")) && void 0 !== _b ? _b : \"\", \" \").concat(null !== footerTableId && void 0 !== footerTableId ? footerTableId : \"\").trim(), $contentFixedElement)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n setRowsOpacity(columnIndex, value) {\r\n this.callBase(columnIndex, value);\r\n var $rows = this._getRowElements(this._fixedTableElement);\r\n this._setRowsOpacityCore($rows, this.getFixedColumns(), columnIndex, value)\r\n },\r\n optionChanged(args) {\r\n this.callBase(args);\r\n if (\"hoverStateEnabled\" === args.name && this._isFixedColumns) {\r\n args.value ? this._attachHoverEvents() : this._detachHoverEvents()\r\n }\r\n },\r\n getCellIndex($cell) {\r\n var $fixedTable = this._fixedTableElement;\r\n var cellIndex = 0;\r\n if ($fixedTable && $cell.is(\"td\") && $cell.closest($fixedTable).length) {\r\n var columns = this.getFixedColumns();\r\n each(columns, (index, column) => {\r\n if (index === $cell[0].cellIndex) {\r\n return false\r\n }\r\n if (column.colspan) {\r\n cellIndex += column.colspan;\r\n return\r\n }\r\n cellIndex++;\r\n return\r\n });\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateFixedTablePosition(scrollTop, needFocus) {\r\n if (this._fixedTableElement && this._tableElement) {\r\n var $focusedElement;\r\n var editorFactory = this.getController(\"editorFactory\");\r\n this._fixedTableElement.parent().scrollTop(scrollTop);\r\n if (needFocus && editorFactory) {\r\n $focusedElement = editorFactory.focus();\r\n $focusedElement && editorFactory.focus($focusedElement)\r\n }\r\n }\r\n },\r\n setScrollerSpacing(vWidth, hWidth) {\r\n var styles = {\r\n marginBottom: 0\r\n };\r\n var $fixedContent = this.element().children(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if ($fixedContent.length && this._fixedTableElement) {\r\n $fixedContent.css(styles);\r\n this._fixedTableElement.css(styles);\r\n styles[this.option(\"rtlEnabled\") ? \"marginLeft\" : \"marginRight\"] = vWidth;\r\n styles.marginBottom = hWidth;\r\n var useNativeScrolling = this._scrollable && this._scrollable.option(\"useNative\");\r\n (useNativeScrolling ? $fixedContent : this._fixedTableElement).css(styles)\r\n }\r\n },\r\n _getElasticScrollTop(e) {\r\n var elasticScrollTop = 0;\r\n if (e.scrollOffset.top < 0) {\r\n elasticScrollTop = -e.scrollOffset.top\r\n } else if (e.reachedBottom) {\r\n var $scrollableContent = $(e.component.content());\r\n var $scrollableContainer = $(e.component.container());\r\n var maxScrollTop = Math.max($scrollableContent.get(0).clientHeight - $scrollableContainer.get(0).clientHeight, 0);\r\n elasticScrollTop = Math.min(maxScrollTop - e.scrollOffset.top, 0)\r\n }\r\n return Math.floor(elasticScrollTop)\r\n },\r\n _applyElasticScrolling(e) {\r\n if (this._fixedTableElement) {\r\n var elasticScrollTop = this._getElasticScrollTop(e);\r\n if (0 !== Math.ceil(elasticScrollTop)) {\r\n move(this._fixedTableElement, {\r\n top: elasticScrollTop\r\n })\r\n } else {\r\n this._fixedTableElement.css(\"transform\", \"\")\r\n }\r\n }\r\n },\r\n _handleScroll(e) {\r\n this._updateFixedTablePosition(e.scrollOffset.top, true);\r\n this._applyElasticScrolling(e);\r\n this.callBase(e)\r\n },\r\n _updateContentPosition(isRender) {\r\n this.callBase.apply(this, arguments);\r\n if (!isRender) {\r\n this._updateFixedTablePosition(this._scrollTop)\r\n }\r\n },\r\n _afterRowPrepared(e) {\r\n if (this._isFixedTableRendering) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _scrollToElement($element) {\r\n this.callBase($element, this.getFixedColumnsOffset())\r\n },\r\n dispose() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._fixedScrollTimeout)\r\n }\r\n});\r\nvar FooterViewFixedColumnsExtender = baseFixedColumns;\r\nexport var columnFixingModule = {\r\n defaultOptions: () => ({\r\n columnFixing: {\r\n enabled: false,\r\n texts: {\r\n fix: messageLocalization.format(\"dxDataGrid-columnFixingFix\"),\r\n unfix: messageLocalization.format(\"dxDataGrid-columnFixingUnfix\"),\r\n leftPosition: messageLocalization.format(\"dxDataGrid-columnFixingLeftPosition\"),\r\n rightPosition: messageLocalization.format(\"dxDataGrid-columnFixingRightPosition\")\r\n }\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFixedColumnsExtender,\r\n rowsView: RowsViewFixedColumnsExtender,\r\n footerView: FooterViewFixedColumnsExtender\r\n },\r\n controllers: {\r\n draggingHeader: {\r\n _generatePointsByColumns(options) {\r\n var visibleColumns = options.columns;\r\n var {\r\n targetDraggingPanel: targetDraggingPanel\r\n } = options;\r\n if (targetDraggingPanel && \"headers\" === targetDraggingPanel.getName() && targetDraggingPanel.isFixedColumns()) {\r\n if (options.sourceColumn.fixed) {\r\n if (!options.rowIndex) {\r\n options.columnElements = targetDraggingPanel.getFixedColumnElements(0)\r\n }\r\n options.columns = targetDraggingPanel.getFixedColumns(options.rowIndex);\r\n var pointsByColumns = this.callBase(options);\r\n ! function(columns, fixedColumns, pointsByColumns) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n each(pointsByColumns, (_, point) => {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n });\r\n return pointsByColumns\r\n }(visibleColumns, options.columns, pointsByColumns);\r\n return pointsByColumns\r\n }\r\n }\r\n return this.callBase(options)\r\n },\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var result = this.callBase.apply(this, arguments);\r\n var targetColumn = columns[point.columnIndex];\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if (!result && \"headers\" === location && $transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (sourceColumn && sourceColumn.fixed) {\r\n return \"right\" === sourceColumn.fixedPosition ? point.x < boundingRect.right : point.x > boundingRect.left\r\n }\r\n if (targetColumn && targetColumn.fixed && \"right\" !== targetColumn.fixedPosition) {\r\n return true\r\n }\r\n return point.x < boundingRect.left || point.x > boundingRect.right\r\n }\r\n return result\r\n }\r\n },\r\n columnsResizer: {\r\n _generatePointsByColumns() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var columns = columnsController && that._columnsController.getVisibleColumns();\r\n var fixedColumns = columnsController && that._columnsController.getFixedColumns();\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n var cells = that._columnHeadersView.getFixedColumnElements();\r\n that.callBase();\r\n if (cells && cells.length > 0) {\r\n that._pointsByFixedColumns = gridCoreUtils.getPointsByColumns(cells, point => {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n return that._pointCreated(point, columns.length, columns)\r\n })\r\n }\r\n },\r\n _getTargetPoint(pointsByColumns, currentX, deltaX) {\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if ($transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (currentX <= boundingRect.left || currentX >= boundingRect.right) {\r\n return this.callBase(this._pointsByFixedColumns, currentX, deltaX)\r\n }\r\n }\r\n return this.callBase(pointsByColumns, currentX, deltaX)\r\n }\r\n },\r\n resizing: {\r\n _setAriaOwns() {\r\n var _a, _b, _c;\r\n this.callBase.apply(this, arguments);\r\n var headerFixedTable = null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.getFixedTableElement();\r\n var footerFixedTable = null === (_b = this._footerView) || void 0 === _b ? void 0 : _b.getFixedTableElement();\r\n null === (_c = this._rowsView) || void 0 === _c ? void 0 : _c.setAriaOwns(null === headerFixedTable || void 0 === headerFixedTable ? void 0 : headerFixedTable.attr(\"id\"), null === footerFixedTable || void 0 === footerFixedTable ? void 0 : footerFixedTable.attr(\"id\"), true)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_fixing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnFixingModule\r\n} from \"../../../grids/grid_core/column_fixing/m_column_fixing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"columnFixing\", columnFixingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../../core/guid\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Form from \"../../../../ui/form\";\r\nimport {\r\n isMaterial\r\n} from \"../../../../ui/themes\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar ROWS_VIEW = \"rowsView\";\r\nvar FOOTER_VIEW = \"footerView\";\r\nvar COLUMN_VIEWS = [COLUMN_HEADERS_VIEW, ROWS_VIEW, FOOTER_VIEW];\r\nvar ADAPTIVE_NAMESPACE = \"dxDataGridAdaptivity\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar ADAPTIVE_ROW_TYPE = \"detailAdaptive\";\r\nvar FORM_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar FORM_ITEM_MODIFIED = \"dx-item-modified\";\r\nvar HIDDEN_COLUMN_CLASS = \"hidden-column\";\r\nvar ADAPTIVE_COLUMN_BUTTON_CLASS = \"adaptive-more\";\r\nvar ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nvar COMMAND_ADAPTIVE_HIDDEN_CLASS = \"dx-command-adaptive-hidden\";\r\nvar ADAPTIVE_DETAIL_ROW_CLASS = \"dx-adaptive-detail-row\";\r\nvar ADAPTIVE_ITEM_TEXT_CLASS = \"dx-adaptive-item-text\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar LAST_DATA_CELL_CLASS = \"dx-last-data-cell\";\r\nvar ADAPTIVE_COLUMN_NAME = \"adaptive\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar EXPAND_ARIA_NAME = \"dxDataGrid-ariaAdaptiveExpand\";\r\nvar COLLAPSE_ARIA_NAME = \"dxDataGrid-ariaAdaptiveCollapse\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\n\r\nfunction getColumnId(that, column) {\r\n return that._columnsController.getColumnId(column)\r\n}\r\n\r\nfunction getDataCellElements($row) {\r\n return $row.find(\"td:not(.dx-datagrid-hidden-column):not([class*='dx-command-'])\")\r\n}\r\n\r\nfunction adaptiveCellTemplate(container, options) {\r\n var $adaptiveColumnButton;\r\n var $container = $(container);\r\n var adaptiveColumnsController = options.component.getController(\"adaptiveColumns\");\r\n if (\"data\" === options.rowType) {\r\n $adaptiveColumnButton = $(\"<span>\").addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));\r\n eventsEngine.on($adaptiveColumnButton, addNamespace(clickEventName, ADAPTIVE_NAMESPACE), adaptiveColumnsController.createAction(() => {\r\n adaptiveColumnsController.toggleExpandAdaptiveDetailRow(options.key)\r\n }));\r\n $adaptiveColumnButton.appendTo($container)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n}\r\n\r\nfunction focusCellHandler(e) {\r\n var _a;\r\n var $nextCell = null === (_a = e.data) || void 0 === _a ? void 0 : _a.$nextCell;\r\n eventsEngine.off($nextCell, \"focus\", focusCellHandler);\r\n eventsEngine.trigger($nextCell, \"dxclick\")\r\n}\r\nclass AdaptiveColumnsController extends modules.ViewController {\r\n _isRowEditMode() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_ROW\r\n }\r\n _isItemModified(item, cellOptions) {\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n var rowIndex = this._dataController.getRowIndexByKey(cellOptions.key);\r\n var row = this._dataController.items()[rowIndex + 1];\r\n return row && row.modifiedValues && isDefined(row.modifiedValues[columnIndex])\r\n }\r\n _renderFormViewTemplate(item, cellOptions, $container) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = item;\r\n var focusAction = that.createAction(() => {\r\n if (that._editingController.isEditing()) {\r\n eventsEngine.trigger($container, clickEventName)\r\n }\r\n });\r\n var rowData = cellOptions.row.data;\r\n var value = column.calculateCellValue(rowData);\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, rowData, cellOptions.rowType);\r\n var text = gridCoreUtils.formatValue(displayValue, column);\r\n var isCellOrBatchEditMode = this._editingController.isCellOrBatchEditMode();\r\n var rowsView = that._rowsView;\r\n if (column.allowEditing && that.getController(\"keyboardNavigation\").isKeyboardEnabled()) {\r\n $container.attr(\"tabIndex\", that.option(\"tabIndex\"));\r\n if (isCellOrBatchEditMode) {\r\n eventsEngine.off($container, \"focus\", focusAction);\r\n eventsEngine.on($container, \"focus\", focusAction)\r\n }\r\n }\r\n if (column.cellTemplate) {\r\n var templateOptions = extend({}, cellOptions, {\r\n value: value,\r\n displayValue: displayValue,\r\n text: text,\r\n column: column\r\n });\r\n rowsView.renderTemplate($container, column.cellTemplate, templateOptions, isElementInDom($container)).done(() => {\r\n rowsView._cellPrepared($container, cellOptions)\r\n })\r\n } else {\r\n var container = $container.get(0);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n $container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n if (!isDefined(text) || \"\" === text) {\r\n $container.html(\" \")\r\n }\r\n if (!that._isRowEditMode()) {\r\n if (that._isItemModified(item, cellOptions)) {\r\n $container.addClass(FORM_ITEM_MODIFIED)\r\n }\r\n }\r\n rowsView._cellPrepared($container, cellOptions)\r\n }\r\n }\r\n _getTemplate(item, cellOptions, updateForm) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = item;\r\n var editingController = this.getController(\"editing\");\r\n return function(options, container) {\r\n var $container = $(container);\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n var templateOptions = extend({}, cellOptions);\r\n var renderFormTemplate = function() {\r\n var isItemEdited = that._isItemEdited(item);\r\n templateOptions.value = cellOptions.row.values[columnIndex];\r\n if (isItemEdited || column.showEditorAlways) {\r\n editingController.renderFormEditorTemplate(templateOptions, item, options, $container, !isItemEdited)\r\n } else {\r\n templateOptions.column = column;\r\n templateOptions.columnIndex = columnIndex;\r\n that._renderFormViewTemplate(item, templateOptions, $container)\r\n }\r\n };\r\n renderFormTemplate();\r\n if (templateOptions.watch) {\r\n var dispose = templateOptions.watch(() => ({\r\n isItemEdited: that._isItemEdited(item),\r\n value: cellOptions.row.values[columnIndex]\r\n }), () => {\r\n $container.contents().remove();\r\n $container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n renderFormTemplate()\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n }\r\n }\r\n }\r\n _isVisibleColumnsValid(visibleColumns) {\r\n if (visibleColumns < 2) {\r\n return false\r\n }\r\n if (visibleColumns.length - function() {\r\n var result = 0;\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var visibleColumn = visibleColumns[j];\r\n if (visibleColumn.command) {\r\n result++\r\n }\r\n }\r\n return result\r\n }() <= 1) {\r\n return false\r\n }\r\n return true\r\n }\r\n _calculatePercentWidths(widths, visibleColumns) {\r\n var that = this;\r\n var percentWidths = 0;\r\n visibleColumns.forEach((item, index) => {\r\n if (widths[index] !== HIDDEN_COLUMNS_WIDTH) {\r\n percentWidths += that._getItemPercentWidth(item)\r\n }\r\n });\r\n return percentWidths\r\n }\r\n _isPercentWidth(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n }\r\n _isColumnHidden(column) {\r\n return this._hiddenColumns.filter(hiddenColumn => hiddenColumn.index === column.index).length > 0\r\n }\r\n _getAverageColumnsWidth(containerWidth, columns, columnsCanFit) {\r\n var that = this;\r\n var fixedColumnsWidth = 0;\r\n var columnsWithoutFixedWidthCount = 0;\r\n columns.forEach(column => {\r\n if (!that._isColumnHidden(column)) {\r\n var {\r\n width: width\r\n } = column;\r\n if (isDefined(width) && !isNaN(parseFloat(width))) {\r\n fixedColumnsWidth += that._isPercentWidth(width) ? that._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columns.length,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: column.bestFitWidth,\r\n columnWidth: width,\r\n containerWidth: containerWidth\r\n }) : parseFloat(width)\r\n } else {\r\n columnsWithoutFixedWidthCount++\r\n }\r\n }\r\n });\r\n return (containerWidth - fixedColumnsWidth) / columnsWithoutFixedWidthCount\r\n }\r\n _calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n var columnsCount = contentColumns.length;\r\n var colWidth;\r\n if (widthOption && \"auto\" !== widthOption) {\r\n if (this._isPercentWidth(widthOption)) {\r\n colWidth = this._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columnsCount,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: bestFitWidth,\r\n columnWidth: widthOption,\r\n containerWidth: containerWidth\r\n })\r\n } else {\r\n return parseFloat(widthOption)\r\n }\r\n } else {\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n colWidth = columnAutoWidth || !!column.command ? bestFitWidth : this._getAverageColumnsWidth(containerWidth, contentColumns, columnsCanFit)\r\n }\r\n return colWidth\r\n }\r\n _calculatePercentWidth(options) {\r\n var columnFitted = options.visibleIndex < options.columnsCount - 1 && options.columnsCanFit;\r\n var partialWidth = options.containerWidth * parseFloat(options.columnWidth) / 100;\r\n var resultWidth = options.columnsCanFit && partialWidth < options.bestFitWidth ? options.bestFitWidth : partialWidth;\r\n return columnFitted ? options.containerWidth * parseFloat(options.columnWidth) / 100 : resultWidth\r\n }\r\n _getNotTruncatedColumnWidth(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (widthOption && \"auto\" !== widthOption && !this._isPercentWidth(widthOption)) {\r\n return parseFloat(widthOption)\r\n }\r\n var colWidth = this._calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit);\r\n return colWidth < bestFitWidth ? null : colWidth\r\n }\r\n _getItemPercentWidth(item) {\r\n var result = 0;\r\n if (item.width && this._isPercentWidth(item.width)) {\r\n result = parseFloat(item.width)\r\n }\r\n return result\r\n }\r\n _getCommandColumnsWidth() {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var colWidth = 0;\r\n each(columns, (index, column) => {\r\n if (column.index < 0 || column.command) {\r\n colWidth += that._columnsController.columnOption(getColumnId(that, column), \"bestFitWidth\") || 0\r\n }\r\n });\r\n return colWidth\r\n }\r\n _isItemEdited(item) {\r\n if (this.isFormOrPopupEditMode()) {\r\n return false\r\n }\r\n if (this._isRowEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n if (equalByValue(editRowKey, this._dataController.adaptiveExpandedKey())) {\r\n return true\r\n }\r\n } else {\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n return this._editingController.isEditCell(rowIndex, columnIndex)\r\n }\r\n }\r\n _getFormItemsByHiddenColumns(hiddenColumns) {\r\n var items = [];\r\n each(hiddenColumns, (_, column) => {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField,\r\n visibleIndex: column.visibleIndex\r\n })\r\n });\r\n return items\r\n }\r\n _getAdaptiveColumnVisibleIndex(visibleColumns) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n var column = visibleColumns[i];\r\n if (column.command === ADAPTIVE_COLUMN_NAME) {\r\n return i\r\n }\r\n }\r\n return\r\n }\r\n _hideAdaptiveColumn(resultWidths, visibleColumns) {\r\n var visibleIndex = this._getAdaptiveColumnVisibleIndex(visibleColumns);\r\n if (isDefined(visibleIndex)) {\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hideVisibleColumn({\r\n isCommandColumn: true,\r\n visibleIndex: visibleIndex\r\n })\r\n }\r\n }\r\n _showHiddenCellsInView(_ref) {\r\n var {\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n var cssClassNameToRemove = this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n if (isCommandColumn) {\r\n cssClassNameToRemove = COMMAND_ADAPTIVE_HIDDEN_CLASS;\r\n $cells.attr({\r\n tabIndex: 0,\r\n \"aria-hidden\": null\r\n }).removeClass(cssClassNameToRemove)\r\n } else {\r\n $cells.removeClass(cssClassNameToRemove)\r\n }\r\n }\r\n _showHiddenColumns() {\r\n for (var i = 0; i < COLUMN_VIEWS.length; i++) {\r\n var view = this.getView(COLUMN_VIEWS[i]);\r\n if (view && view.isVisible() && view.element()) {\r\n var viewName = view.name;\r\n var $hiddenCommandCells = view.element().find(\".\".concat(COMMAND_ADAPTIVE_HIDDEN_CLASS));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCommandCells,\r\n isCommandColumn: true\r\n });\r\n var $hiddenCells = view.element().find(\".\".concat(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCells\r\n })\r\n }\r\n }\r\n }\r\n _isCellValid($cell) {\r\n return $cell && $cell.length && !$cell.hasClass(MASTER_DETAIL_CELL_CLASS) && !$cell.hasClass(GROUP_CELL_CLASS)\r\n }\r\n _hideVisibleColumn(_ref2) {\r\n var {\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref2;\r\n var that = this;\r\n COLUMN_VIEWS.forEach(viewName => {\r\n var view = that.getView(viewName);\r\n view && that._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n })\r\n })\r\n }\r\n _hideVisibleColumnInView(_ref3) {\r\n var {\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref3;\r\n var viewName = view.name;\r\n var $cellElement;\r\n var column = this._columnsController.getVisibleColumns()[visibleIndex];\r\n var editFormRowIndex = this._editingController && this._editingController.getEditFormRowIndex();\r\n if (view && view.isVisible() && column) {\r\n var rowsCount = view.getRowsCount();\r\n var $rowElements = view._getRowElements();\r\n for (var rowIndex = 0; rowIndex < rowsCount; rowIndex++) {\r\n var cancelClassAdding = rowIndex === editFormRowIndex && viewName === ROWS_VIEW && \"popup\" !== this.option(\"editing.mode\");\r\n if (!cancelClassAdding) {\r\n var currentVisibleIndex = viewName === COLUMN_HEADERS_VIEW ? this._columnsController.getVisibleIndex(column.index, rowIndex) : visibleIndex;\r\n if (currentVisibleIndex >= 0) {\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n $cellElement = this._findCellElementInRow($rowElement, currentVisibleIndex);\r\n this._isCellValid($cellElement) && this._hideVisibleCellInView({\r\n viewName: viewName,\r\n isCommandColumn: isCommandColumn,\r\n $cell: $cellElement\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _findCellElementInRow($rowElement, visibleColumnIndex) {\r\n var $rowCells = $rowElement.children();\r\n var visibleIndex = visibleColumnIndex;\r\n var cellIsInsideGroup = false;\r\n if ($rowElement.hasClass(GROUP_ROW_CLASS)) {\r\n var $groupCell = $rowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n var colSpan = $groupCell.attr(\"colspan\");\r\n if ($groupCell.length && isDefined(colSpan)) {\r\n var groupCellLength = parseInt(colSpan);\r\n var endGroupIndex = $groupCell.index() + groupCellLength - 1;\r\n if (visibleColumnIndex > endGroupIndex) {\r\n visibleIndex = visibleColumnIndex - groupCellLength + 1\r\n } else {\r\n cellIsInsideGroup = true\r\n }\r\n }\r\n }\r\n var $cellElement = !cellIsInsideGroup ? $rowCells.eq(visibleIndex) : void 0;\r\n return $cellElement\r\n }\r\n _hideVisibleCellInView(_ref4) {\r\n var {\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref4;\r\n var cssClassNameToAdd = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cell.attr({\r\n tabIndex: -1,\r\n \"aria-hidden\": true\r\n }).addClass(cssClassNameToAdd)\r\n }\r\n _getEditMode() {\r\n return this._editingController.getEditMode()\r\n }\r\n isFormOrPopupEditMode() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP\r\n }\r\n hideRedundantColumns(resultWidths, visibleColumns, hiddenQueue) {\r\n this._hiddenColumns = [];\r\n if (this._isVisibleColumnsValid(visibleColumns) && hiddenQueue.length) {\r\n var totalWidth = 0;\r\n var $rootElement = this.component.$element();\r\n var rootElementWidth = getWidth($rootElement) - this._getCommandColumnsWidth();\r\n var getVisibleContentColumns = function() {\r\n return visibleColumns.filter(item => !item.command && 0 === this._hiddenColumns.filter(i => i.index === item.index).length)\r\n }.bind(this);\r\n var visibleContentColumns = getVisibleContentColumns();\r\n var contentColumnsCount = visibleContentColumns.length;\r\n var i;\r\n var hasHiddenColumns;\r\n var needHideColumn;\r\n do {\r\n needHideColumn = false;\r\n totalWidth = 0;\r\n var percentWidths = this._calculatePercentWidths(resultWidths, visibleColumns);\r\n var columnsCanFit = percentWidths < 100 && 0 !== percentWidths;\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n var visibleColumn = visibleColumns[i];\r\n var columnWidth = this._getNotTruncatedColumnWidth(visibleColumn, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n var columnId = getColumnId(this, visibleColumn);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var minWidth = this._columnsController.columnOption(columnId, \"minWidth\");\r\n var columnBestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (resultWidths[i] === HIDDEN_COLUMNS_WIDTH) {\r\n hasHiddenColumns = true;\r\n continue\r\n }\r\n if (!columnWidth && !visibleColumn.command && !visibleColumn.fixed) {\r\n needHideColumn = true;\r\n break\r\n }\r\n if (!widthOption || \"auto\" === widthOption) {\r\n columnWidth = Math.max(columnBestFitWidth || 0, minWidth || 0)\r\n }\r\n if (visibleColumn.command !== ADAPTIVE_COLUMN_NAME || hasHiddenColumns) {\r\n totalWidth += columnWidth\r\n }\r\n }\r\n needHideColumn = needHideColumn || totalWidth > getWidth($rootElement);\r\n if (needHideColumn) {\r\n var column = hiddenQueue.pop();\r\n var visibleIndex = this._columnsController.getVisibleIndex(column.index);\r\n rootElementWidth += this._calculateColumnWidth(column, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n this._hideVisibleColumn({\r\n visibleIndex: visibleIndex\r\n });\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hiddenColumns.push(column);\r\n visibleContentColumns = getVisibleContentColumns()\r\n }\r\n } while (needHideColumn && visibleContentColumns.length > 1 && hiddenQueue.length);\r\n if (contentColumnsCount === visibleContentColumns.length) {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n } else {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n }\r\n getAdaptiveDetailItems() {\r\n return this._$itemContents\r\n }\r\n getItemContentByColumnIndex(visibleColumnIndex) {\r\n var $itemContent;\r\n for (var i = 0; i < this._$itemContents.length; i++) {\r\n $itemContent = this._$itemContents.eq(i);\r\n var item = $itemContent.data(\"dx-form-item\");\r\n if (item && item.column && this._columnsController.getVisibleIndex(item.column.index) === visibleColumnIndex) {\r\n return $itemContent\r\n }\r\n }\r\n }\r\n toggleExpandAdaptiveDetailRow(key, alwaysExpanded) {\r\n if (!(this.isFormOrPopupEditMode() && this._editingController.isEditing())) {\r\n this.getController(\"data\").toggleExpandAdaptiveDetailRow(key, alwaysExpanded)\r\n }\r\n }\r\n createFormByHiddenColumns(container, options) {\r\n var that = this;\r\n var $container = $(container);\r\n var userFormOptions = {\r\n items: that._getFormItemsByHiddenColumns(that._hiddenColumns),\r\n formID: \"dx-\".concat(new Guid)\r\n };\r\n var defaultFormOptions = isMaterial() ? {\r\n colCount: 2\r\n } : {};\r\n this.executeAction(\"onAdaptiveDetailRowPreparing\", {\r\n formOptions: userFormOptions\r\n });\r\n that._$itemContents = null;\r\n that._form = that._createComponent($(\"<div>\").appendTo($container), Form, extend(defaultFormOptions, userFormOptions, {\r\n customizeItem(item) {\r\n var column = item.column || that._columnsController.columnOption(item.name || item.dataField);\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.column = column;\r\n item.template = that._getTemplate(item, options, that.updateForm.bind(that))\r\n }\r\n userFormOptions.customizeItem && userFormOptions.customizeItem.call(this, item)\r\n },\r\n onContentReady(e) {\r\n userFormOptions.onContentReady && userFormOptions.onContentReady.call(this, e);\r\n that._$itemContents = $container.find(\".\".concat(FORM_ITEM_CONTENT_CLASS))\r\n }\r\n }))\r\n }\r\n hasAdaptiveDetailRowExpanded() {\r\n return isDefined(this._dataController.adaptiveExpandedKey())\r\n }\r\n updateForm(hiddenColumns) {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n if (this._form && isDefined(this._form._contentReadyAction)) {\r\n if (hiddenColumns && hiddenColumns.length) {\r\n this._form.option(\"items\", this._getFormItemsByHiddenColumns(hiddenColumns))\r\n } else {\r\n this._form.repaint()\r\n }\r\n }\r\n }\r\n }\r\n updateHidingQueue(columns) {\r\n var hideableColumns = columns.filter(column => column.visible && !column.type && !column.fixed && !(isDefined(column.groupIndex) && column.groupIndex >= 0));\r\n var columnsHasHidingPriority;\r\n var i;\r\n this._hidingColumnsQueue = [];\r\n if (this.option(\"allowColumnResizing\") && \"widget\" === this.option(\"columnResizingMode\")) {\r\n return this._hidingColumnsQueue\r\n }\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n if (isDefined(hideableColumns[i].hidingPriority) && hideableColumns[i].hidingPriority >= 0) {\r\n columnsHasHidingPriority = true;\r\n this._hidingColumnsQueue[hideableColumns[i].hidingPriority] = hideableColumns[i]\r\n }\r\n }\r\n if (columnsHasHidingPriority) {\r\n this._hidingColumnsQueue.reverse()\r\n } else if (this.option(\"columnHidingEnabled\")) {\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(hideableColumns[i].index);\r\n this._hidingColumnsQueue[visibleIndex] = hideableColumns[i]\r\n }\r\n }\r\n this._hidingColumnsQueue = this._hidingColumnsQueue.filter(Object);\r\n return this._hidingColumnsQueue\r\n }\r\n getHiddenColumns() {\r\n return this._hiddenColumns\r\n }\r\n hasHiddenColumns() {\r\n return this._hiddenColumns.length > 0\r\n }\r\n getHidingColumnsQueue() {\r\n return this._hidingColumnsQueue\r\n }\r\n init() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController.addCommandColumn({\r\n type: ADAPTIVE_COLUMN_NAME,\r\n command: ADAPTIVE_COLUMN_NAME,\r\n visible: true,\r\n adaptiveHidden: true,\r\n cssClass: ADAPTIVE_COLUMN_NAME_CLASS,\r\n alignment: \"center\",\r\n width: \"auto\",\r\n cellTemplate: adaptiveCellTemplate,\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnsChanged.add(() => {\r\n var isAdaptiveVisible = !!that.updateHidingQueue(that._columnsController.getColumns()).length;\r\n that._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !isAdaptiveVisible, true)\r\n });\r\n that._editingController = that.getController(\"editing\");\r\n that._hidingColumnsQueue = [];\r\n that._hiddenColumns = [];\r\n that.createAction(\"onAdaptiveDetailRowPreparing\");\r\n super.init()\r\n }\r\n optionChanged(args) {\r\n if (\"columnHidingEnabled\" === args.name) {\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !args.value)\r\n }\r\n super.optionChanged(args)\r\n }\r\n publicMethods() {\r\n return [\"isAdaptiveDetailRowExpanded\", \"expandAdaptiveDetailRow\", \"collapseAdaptiveDetailRow\"]\r\n }\r\n isAdaptiveDetailRowExpanded(key) {\r\n var dataController = this._dataController;\r\n return dataController.adaptiveExpandedKey() && equalByValue(dataController.adaptiveExpandedKey(), key)\r\n }\r\n expandAdaptiveDetailRow(key) {\r\n if (!this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow(key)\r\n }\r\n }\r\n collapseAdaptiveDetailRow() {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow()\r\n }\r\n }\r\n updateCommandAdaptiveAriaLabel(key, label) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n var $row = $(this.component.getRowElement(rowIndex));\r\n this.setCommandAdaptiveAriaLabel($row, label)\r\n }\r\n setCommandAdaptiveAriaLabel($row, labelName) {\r\n var $adaptiveCommand = $row.find(\".dx-command-adaptive\");\r\n $adaptiveCommand.attr(\"aria-label\", messageLocalization.format(labelName))\r\n }\r\n}\r\nvar keyboardNavigation = Base => class extends Base {\r\n _isCellValid($cell, isClick) {\r\n return super._isCellValid($cell, isClick) && !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)) && !$cell.hasClass(COMMAND_ADAPTIVE_HIDDEN_CLASS)\r\n }\r\n _processNextCellInMasterDetail($nextCell, $cell) {\r\n super._processNextCellInMasterDetail($nextCell, $cell);\r\n var isCellOrBatchMode = this._editingController.isCellOrBatchEditMode();\r\n var isEditing = this._editingController.isEditing();\r\n if (isEditing && $nextCell && isCellOrBatchMode && !this._isInsideEditForm($nextCell)) {\r\n eventsEngine.off($nextCell, \"focus\", focusCellHandler);\r\n eventsEngine.on($nextCell, \"focus\", {\r\n $nextCell: $nextCell\r\n }, focusCellHandler);\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n _isCellElement($cell) {\r\n return super._isCellElement($cell) || $cell.hasClass(ADAPTIVE_ITEM_TEXT_CLASS)\r\n }\r\n init() {\r\n super.init();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n};\r\nvar rowsView = Base => class extends Base {\r\n _getCellTemplate(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.rowType === ADAPTIVE_ROW_TYPE && \"detail\" === column.command) {\r\n return function(container, options) {\r\n that._adaptiveColumnsController.createFormByHiddenColumns($(container), options)\r\n }\r\n }\r\n return super._getCellTemplate(options)\r\n }\r\n _createRow(row) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row && row.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.adaptiveExpandedKey()) {\r\n $row.addClass(ADAPTIVE_DETAIL_ROW_CLASS)\r\n }\r\n return $row\r\n }\r\n _renderCells($row, options) {\r\n super._renderCells($row, options);\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n var hidingColumnsQueueLength = adaptiveColumnsController.getHidingColumnsQueue().length;\r\n var hiddenColumnsLength = adaptiveColumnsController.getHiddenColumns().length;\r\n if (hidingColumnsQueueLength && !hiddenColumnsLength) {\r\n getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS)\r\n }\r\n if (\"data\" === options.row.rowType) {\r\n adaptiveColumnsController.setCommandAdaptiveAriaLabel($row, EXPAND_ARIA_NAME)\r\n }\r\n }\r\n _getColumnIndexByElementCore($element) {\r\n var $itemContent = $element.closest(\".\".concat(FORM_ITEM_CONTENT_CLASS));\r\n if ($itemContent.length && $itemContent.closest(this.component.$element()).length) {\r\n var formItem = $itemContent.length ? $itemContent.first().data(\"dx-form-item\") : null;\r\n return formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index)\r\n }\r\n return super._getColumnIndexByElementCore($element)\r\n }\r\n _cellPrepared($cell, options) {\r\n super._cellPrepared.apply(this, arguments);\r\n if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n $cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n }\r\n }\r\n getCell(cellPosition, rows) {\r\n var item = this._dataController.items()[null === cellPosition || void 0 === cellPosition ? void 0 : cellPosition.rowIndex];\r\n if ((null === item || void 0 === item ? void 0 : item.rowType) === ADAPTIVE_ROW_TYPE) {\r\n var $adaptiveDetailItems = this._adaptiveColumnsController.getAdaptiveDetailItems();\r\n return super.getCell(cellPosition, rows, $adaptiveDetailItems)\r\n }\r\n return super.getCell.apply(this, arguments)\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var item = this._dataController.items()[rowIndex];\r\n if (item && item.rowType === ADAPTIVE_ROW_TYPE) {\r\n return this._adaptiveColumnsController.getItemContentByColumnIndex(columnIdentifier)\r\n }\r\n return super._getCellElement.apply(this, arguments)\r\n }\r\n getContextMenuItems(options) {\r\n var _a;\r\n if (options.row && \"detailAdaptive\" === options.row.rowType) {\r\n var view = this.component.getView(\"columnHeadersView\");\r\n var formItem = $(options.targetElement).closest(\".dx-field-item-label\").next().data(\"dx-form-item\");\r\n options.column = formItem ? formItem.column : options.column;\r\n return view.getContextMenuItems && view.getContextMenuItems(options)\r\n }\r\n return null === (_a = super.getContextMenuItems) || void 0 === _a ? void 0 : _a.call(this, options)\r\n }\r\n isClickableElement($target) {\r\n var _a, _b;\r\n var isClickable = null !== (_b = null === (_a = super.isClickableElement) || void 0 === _a ? void 0 : _a.call(this, $target)) && void 0 !== _b ? _b : false;\r\n return isClickable || !!$target.closest(\".\".concat(ADAPTIVE_COLUMN_NAME_CLASS)).length\r\n }\r\n init() {\r\n super.init();\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\")\r\n }\r\n};\r\nvar exportExtender = Base => class extends Base {\r\n _updateColumnWidth(column, width) {\r\n super._updateColumnWidth(column, column.visibleWidth === HIDDEN_COLUMNS_WIDTH ? column.bestFitWidth : width)\r\n }\r\n};\r\nvar columnsResizer = Base => class extends Base {\r\n _pointCreated(point, cellsLength, columns) {\r\n var result = super._pointCreated(point, cellsLength, columns);\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumnIndex = this._getNextColumnIndex(point.columnIndex);\r\n var nextColumn = columns[nextColumnIndex] || {};\r\n var hasHiddenColumnsOnly = nextColumnIndex !== point.columnIndex + 1 && nextColumn.command;\r\n var hasAdaptiveHiddenWidth = currentColumn.visibleWidth === HIDDEN_COLUMNS_WIDTH || hasHiddenColumnsOnly;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n _getNextColumnIndex(currentColumnIndex) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var index = super._getNextColumnIndex(currentColumnIndex);\r\n while (visibleColumns[index] && visibleColumns[index].visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n index++\r\n }\r\n return index\r\n }\r\n};\r\nvar draggingHeader = Base => class extends Base {\r\n _pointCreated(point, columns, location, sourceColumn) {\r\n var result = super._pointCreated(point, columns, location, sourceColumn);\r\n var column = columns[point.columnIndex - 1] || {};\r\n var hasAdaptiveHiddenWidth = column.visibleWidth === HIDDEN_COLUMNS_WIDTH;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n};\r\nvar editing = Base => class extends Base {\r\n _isRowEditMode() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n }\r\n _getFormEditItemTemplate(cellOptions, column) {\r\n if (this.getEditMode() !== EDIT_MODE_ROW && \"detailAdaptive\" === cellOptions.rowType) {\r\n cellOptions.columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n return this.getColumnTemplate(cellOptions)\r\n }\r\n return super._getFormEditItemTemplate(cellOptions, column)\r\n }\r\n _closeEditItem($targetElement) {\r\n var $itemContents = $targetElement.closest(\".\".concat(FORM_ITEM_CONTENT_CLASS));\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var formItem = $itemContents.length ? $itemContents.first().data(\"dx-form-item\") : null;\r\n var columnIndex = formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index);\r\n if (!this.isEditCell(rowIndex, columnIndex)) {\r\n super._closeEditItem($targetElement)\r\n }\r\n }\r\n _beforeUpdateItems(rowIndices, rowIndex) {\r\n if (!this._adaptiveController.isFormOrPopupEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldExpandRowIndex = gridCoreUtils.getIndexByKey(this._dataController.adaptiveExpandedKey(), items);\r\n this._isForceRowAdaptiveExpand = !this._adaptiveController.hasAdaptiveDetailRowExpanded();\r\n if (oldExpandRowIndex >= 0) {\r\n rowIndices.push(oldExpandRowIndex + 1)\r\n }\r\n rowIndices.push(rowIndex + 1);\r\n this._dataController.adaptiveExpandedKey(item.key)\r\n }\r\n }\r\n _afterInsertRow(key) {\r\n super._afterInsertRow.apply(this, arguments);\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._adaptiveController.toggleExpandAdaptiveDetailRow(key, this.isRowEditMode());\r\n this._isForceRowAdaptiveExpand = true\r\n }\r\n }\r\n _collapseAdaptiveDetailRow() {\r\n if (this._isRowEditMode() && this._isForceRowAdaptiveExpand) {\r\n this._adaptiveController.collapseAdaptiveDetailRow();\r\n this._isForceRowAdaptiveExpand = false\r\n }\r\n }\r\n _cancelEditAdaptiveDetailRow() {\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._collapseAdaptiveDetailRow()\r\n }\r\n }\r\n _afterSaveEditData() {\r\n super._afterSaveEditData.apply(this, arguments);\r\n var deferred = new Deferred;\r\n if (this._isRowEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n when(this.getController(\"validating\").validate(true)).done(isValid => {\r\n if (isValid) {\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n deferred.resolve()\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }\r\n _beforeCancelEditData() {\r\n super._beforeCancelEditData();\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n _getRowIndicesForCascadeUpdating(row) {\r\n var rowIndices = super._getRowIndicesForCascadeUpdating.apply(this, arguments);\r\n if (this._adaptiveController.isAdaptiveDetailRowExpanded(row.key)) {\r\n rowIndices.push(row.rowType === ADAPTIVE_ROW_TYPE ? row.rowIndex - 1 : row.rowIndex + 1)\r\n }\r\n return rowIndices\r\n }\r\n _beforeCloseEditCellInBatchMode(rowIndices) {\r\n var expandedKey = this._dataController._adaptiveExpandedKey;\r\n if (expandedKey) {\r\n var rowIndex = gridCoreUtils.getIndexByKey(expandedKey, this._dataController.items());\r\n if (rowIndex > -1) {\r\n rowIndices.unshift(rowIndex)\r\n }\r\n }\r\n }\r\n editRow(rowIndex) {\r\n if (this._adaptiveController.isFormOrPopupEditMode()) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n return super.editRow(rowIndex)\r\n }\r\n deleteRow(rowIndex) {\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (this.getEditMode() === EDIT_MODE_BATCH && this._adaptiveController.isAdaptiveDetailRowExpanded(rowKey)) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n super.deleteRow(rowIndex)\r\n }\r\n init() {\r\n super.init();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n};\r\nvar data = Base => class extends Base {\r\n _processItems(items, change) {\r\n var {\r\n changeType: changeType\r\n } = change;\r\n items = super._processItems.apply(this, arguments);\r\n if (\"loadingAll\" === changeType || !isDefined(this._adaptiveExpandedKey)) {\r\n return items\r\n }\r\n var expandRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, items);\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n if (expandRowIndex >= 0) {\r\n var item = items[expandRowIndex];\r\n items.splice(expandRowIndex + 1, 0, {\r\n visible: true,\r\n rowType: ADAPTIVE_ROW_TYPE,\r\n key: item.key,\r\n data: item.data,\r\n node: item.node,\r\n modifiedValues: item.modifiedValues,\r\n isNewRow: item.isNewRow,\r\n values: item.values\r\n })\r\n } else if (\"refresh\" === changeType && !(newMode && change.repaintChangesOnly)) {\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n return items\r\n }\r\n _getRowIndicesForExpand(key) {\r\n var rowIndices = super._getRowIndicesForExpand.apply(this, arguments);\r\n if (this.getController(\"adaptiveColumns\").isAdaptiveDetailRowExpanded(key)) {\r\n var lastRowIndex = rowIndices[rowIndices.length - 1];\r\n rowIndices.push(lastRowIndex + 1)\r\n }\r\n return rowIndices\r\n }\r\n adaptiveExpandedKey(value) {\r\n if (isDefined(value)) {\r\n this._adaptiveExpandedKey = value\r\n } else {\r\n return this._adaptiveExpandedKey\r\n }\r\n }\r\n toggleExpandAdaptiveDetailRow(key, alwaysExpanded) {\r\n var oldExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, this._items);\r\n var newExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(key, this._items);\r\n if (oldExpandLoadedRowIndex >= 0 && oldExpandLoadedRowIndex === newExpandLoadedRowIndex && !alwaysExpanded) {\r\n key = void 0;\r\n newExpandLoadedRowIndex = -1\r\n }\r\n var oldKey = this._adaptiveExpandedKey;\r\n this._adaptiveExpandedKey = key;\r\n if (oldExpandLoadedRowIndex >= 0) {\r\n oldExpandLoadedRowIndex++\r\n }\r\n if (newExpandLoadedRowIndex >= 0) {\r\n newExpandLoadedRowIndex++\r\n }\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n this.updateItems({\r\n allowInvisibleRowIndices: true,\r\n changeType: \"update\",\r\n rowIndices: [oldExpandLoadedRowIndex - rowIndexDelta, newExpandLoadedRowIndex - rowIndexDelta]\r\n });\r\n var adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(key, COLLAPSE_ARIA_NAME);\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(oldKey, EXPAND_ARIA_NAME)\r\n }\r\n init() {\r\n super.init();\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n};\r\nvar editorFactory = Base => class extends Base {\r\n _needHideBorder($element) {\r\n return super._needHideBorder($element) || (null === $element || void 0 === $element ? void 0 : $element.hasClass(\"dx-field-item-content\")) && (null === $element || void 0 === $element ? void 0 : $element.find(\".dx-checkbox\").length)\r\n }\r\n _getFocusCellSelector() {\r\n return \"\".concat(super._getFocusCellSelector(), \", .dx-adaptive-detail-row .dx-field-item > .dx-field-item-content\")\r\n }\r\n _getRevertTooltipsSelector() {\r\n return \"\".concat(super._getRevertTooltipsSelector(), \", .dx-field-item-content .\").concat(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS))\r\n }\r\n};\r\nvar columns = Base => class extends Base {\r\n _isColumnVisible(column) {\r\n return super._isColumnVisible(column) && !column.adaptiveHidden\r\n }\r\n};\r\nexport var adaptivityModule = {\r\n defaultOptions: () => ({\r\n columnHidingEnabled: false,\r\n onAdaptiveDetailRowPreparing: null\r\n }),\r\n controllers: {\r\n adaptiveColumns: AdaptiveColumnsController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: rowsView\r\n },\r\n controllers: {\r\n export: exportExtender,\r\n columnsResizer: columnsResizer,\r\n draggingHeader: draggingHeader,\r\n editing: editing,\r\n resizing: {\r\n _needBestFit() {\r\n return this.callBase() || !!this._adaptiveColumnsController.getHidingColumnsQueue().length\r\n },\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var adaptiveController = this._adaptiveColumnsController;\r\n var oldHiddenColumns = adaptiveController.getHiddenColumns();\r\n var hidingColumnsQueue = adaptiveController.updateHidingQueue(this._columnsController.getColumns());\r\n adaptiveController.hideRedundantColumns(resultWidths, visibleColumns, hidingColumnsQueue);\r\n var hiddenColumns = adaptiveController.getHiddenColumns();\r\n if (adaptiveController.hasAdaptiveDetailRowExpanded()) {\r\n if (oldHiddenColumns.length !== hiddenColumns.length) {\r\n adaptiveController.updateForm(hiddenColumns)\r\n }\r\n }!hiddenColumns.length && adaptiveController.collapseAdaptiveDetailRow();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleBestFitMode(isBestFit) {\r\n isBestFit && this._adaptiveColumnsController._showHiddenColumns();\r\n this.callBase(isBestFit)\r\n },\r\n _needStretch() {\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n return this.callBase.apply(this, arguments) || adaptiveColumnsController.getHidingColumnsQueue().length || adaptiveColumnsController.hasHiddenColumns()\r\n },\r\n init() {\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this.callBase()\r\n },\r\n dispose() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._updateScrollableTimeoutID)\r\n }\r\n },\r\n data: data,\r\n editorFactory: editorFactory,\r\n columns: columns,\r\n keyboardNavigation: keyboardNavigation\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nexport function foreachColumnInfo(info, callback, rowIndex, offsets, columnCount, lastProcessedIndexes) {\r\n rowIndex = rowIndex || 0;\r\n offsets = offsets || [];\r\n lastProcessedIndexes = lastProcessedIndexes || [];\r\n offsets[rowIndex] = offsets[rowIndex] || 0;\r\n var row = info[rowIndex];\r\n var startIndex = lastProcessedIndexes[rowIndex] + 1 || 0;\r\n var processedColumnCount = 0;\r\n var colIndex;\r\n if (!row) {\r\n return\r\n }\r\n for (colIndex = startIndex; colIndex < row.length; colIndex++) {\r\n var cell = row[colIndex];\r\n var visibleIndex = colIndex + offsets[rowIndex];\r\n var colspan = cell.colspan || 1;\r\n foreachColumnInfo(info, callback, rowIndex + (cell.rowspan || 1), offsets, colspan, lastProcessedIndexes);\r\n offsets[rowIndex] += colspan - 1;\r\n processedColumnCount += colspan;\r\n if (cell.rowspan) {\r\n for (var i = rowIndex + 1; i < rowIndex + cell.rowspan; i++) {\r\n offsets[i] = offsets[i] || 0;\r\n offsets[i] += cell.colspan || 1\r\n }\r\n }\r\n if (false === callback(cell, visibleIndex, rowIndex, colIndex)) {\r\n break\r\n }\r\n if (void 0 !== columnCount && processedColumnCount >= columnCount) {\r\n break\r\n }\r\n }\r\n lastProcessedIndexes[rowIndex] = colIndex\r\n}\r\nexport function createColumnsInfo(info, startIndex, endIndex) {\r\n var newInfo = [];\r\n foreachColumnInfo(info, (columnInfo, visibleIndex, rowIndex) => {\r\n var cell = columnInfo;\r\n var colspan;\r\n var cellColspan = cell.colspan || 1;\r\n var isVisible = visibleIndex + cellColspan - 1 >= startIndex && visibleIndex < endIndex;\r\n newInfo[rowIndex] = newInfo[rowIndex] || [];\r\n if (isVisible) {\r\n if (visibleIndex < startIndex) {\r\n colspan = cellColspan - (startIndex - visibleIndex);\r\n visibleIndex = startIndex\r\n } else {\r\n colspan = cellColspan\r\n }\r\n if (visibleIndex + colspan > endIndex) {\r\n colspan = endIndex - visibleIndex\r\n }\r\n if (colspan !== cellColspan) {\r\n cell = extend({}, cell, {\r\n colspan: colspan\r\n })\r\n }\r\n newInfo[rowIndex].push(cell)\r\n } else if (visibleIndex > endIndex) {\r\n return false\r\n }\r\n return\r\n });\r\n for (var i = 0; i < newInfo.length; i++) {\r\n newInfo[i] = newInfo[i] || []\r\n }\r\n return newInfo\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/adaptivity.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adaptivityModule\r\n} from \"../../../grids/grid_core/adaptivity/m_adaptivity\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"adaptivity\", adaptivityModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n createColumnsInfo\r\n} from \"./m_virtual_columns_core\";\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar VirtualScrollingRowsViewExtender = {\r\n _resizeCore() {\r\n this.callBase.apply(this, arguments);\r\n this._columnsController.resize()\r\n },\r\n _handleScroll(e) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n left: left\r\n } = e.scrollOffset;\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"rtlEnabled\") && scrollable) {\r\n left = getWidth(scrollable.$content()) - getWidth(scrollable.$element()) - left\r\n }\r\n this._columnsController.setScrollPosition(left)\r\n },\r\n _renderCore(e) {\r\n var _a, _b;\r\n if (null === e || void 0 === e ? void 0 : e.virtualColumnsScrolling) {\r\n var $contentElement = this._findContentElement();\r\n var fixedColumns = null === (_a = this._columnsController) || void 0 === _a ? void 0 : _a.getFixedColumns();\r\n var useNativeScrolling = null === (_b = this._scrollable) || void 0 === _b ? void 0 : _b.option(\"useNative\");\r\n if (null === fixedColumns || void 0 === fixedColumns ? void 0 : fixedColumns.length) {\r\n $contentElement.css({\r\n minHeight: useNativeScrolling ? getHeight($contentElement) : gridCoreUtils.getContentHeightLimit(browser)\r\n });\r\n var resizeCompletedHandler = () => {\r\n this.resizeCompleted.remove(resizeCompletedHandler);\r\n $contentElement.css({\r\n minHeight: \"\"\r\n })\r\n };\r\n this.resizeCompleted.add(resizeCompletedHandler)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n};\r\nvar HeaderViewExtender = {\r\n _renderCore() {\r\n var deferred = this.callBase.apply(this, arguments);\r\n if (this._columnsController.isVirtualMode()) {\r\n this._updateScrollLeftPosition()\r\n }\r\n return deferred\r\n }\r\n};\r\nvar ColumnsControllerExtender = function() {\r\n var getWidths = function(columns) {\r\n return columns.map(column => column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH)\r\n };\r\n var members = {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._beginPageIndex = null;\r\n this._endPageIndex = null;\r\n this._position = 0;\r\n this._virtualVisibleColumns = {}\r\n },\r\n resetColumnsCache() {\r\n this.callBase();\r\n this._virtualVisibleColumns = {}\r\n },\r\n getBeginPageIndex(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n },\r\n getTotalWidth() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this.getController(\"resizing\")._lastWidth || getOuterWidth(this.component.$element())\r\n },\r\n getEndPageIndex(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n },\r\n getColumnPageSize() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n },\r\n _fireColumnsChanged() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n virtualColumnsScrolling: true,\r\n length: 2\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n },\r\n getScrollingTimeout() {\r\n var renderingThreshold = this.option(\"scrolling.columnRenderingThreshold\");\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync) && this._renderTime > renderingThreshold || renderAsync) {\r\n scrollingTimeout = this.option(\"scrolling.timeout\")\r\n }\r\n return scrollingTimeout\r\n },\r\n setScrollPosition(position) {\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n if (scrollingTimeout > 0) {\r\n clearTimeout(this._changedTimeout);\r\n this._changedTimeout = setTimeout(() => {\r\n this._setScrollPositionCore(position)\r\n }, scrollingTimeout)\r\n } else {\r\n this._setScrollPositionCore(position)\r\n }\r\n },\r\n isVirtualMode() {\r\n return hasWindow() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n resize() {\r\n this._setScrollPositionCore(this._position)\r\n },\r\n _setScrollPositionCore(position) {\r\n if (this.isVirtualMode()) {\r\n var beginPageIndex = this.getBeginPageIndex(position);\r\n var endPageIndex = this.getEndPageIndex(position);\r\n var needColumnsChanged = position < this._position ? this._beginPageIndex > beginPageIndex : this._endPageIndex < endPageIndex;\r\n this._position = position;\r\n if (needColumnsChanged) {\r\n this._beginPageIndex = beginPageIndex;\r\n this._endPageIndex = endPageIndex;\r\n this._fireColumnsChanged()\r\n }\r\n }\r\n },\r\n getFixedColumns(rowIndex, isBase) {\r\n var fixedColumns = this.callBase(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - this.callBase().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n },\r\n _compileVisibleColumns(rowIndex, isBase) {\r\n var _a;\r\n if (isBase || !this.isVirtualMode() || !this._shouldReturnVisibleColumns()) {\r\n return this.callBase(rowIndex)\r\n }\r\n if ((null === (_a = this._columns) || void 0 === _a ? void 0 : _a.length) && !isDefined(this._beginPageIndex) && !isDefined(this._endPageIndex)) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = \"\".concat(rowIndex, \"-\").concat(beginPageIndex, \"-\").concat(endPageIndex);\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = this.callBase();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce((a, b) => a + b, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce((a, b) => a + b, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i <= rowCount; i++) {\r\n columnsInfo.push(this.callBase(i))\r\n }\r\n beginFixedColumns = createColumnsInfo(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = createColumnsInfo(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = createColumnsInfo(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n },\r\n getColumnIndexOffset() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n },\r\n dispose() {\r\n clearTimeout(this._changedTimeout);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n return members\r\n}();\r\nexport var virtualColumnsModule = {\r\n defaultOptions: () => ({\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n columns: ColumnsControllerExtender\r\n },\r\n views: {\r\n columnHeadersView: HeaderViewExtender,\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n virtualColumnsModule\r\n} from \"../../../grids/grid_core/virtual_columns/m_virtual_columns\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"virtualColumns\", virtualColumnsModule);\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../core/renderer\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../core/templates/function_template\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport ButtonGroup from \"./button_group\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport List from \"./list_light\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../data/data_source/data_source\";\r\nimport ArrayStore from \"../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./drop_down_editor/utils\";\r\nimport messageLocalization from \"../localization/message\";\r\nvar DROP_DOWN_BUTTON_CLASS = \"dx-dropdownbutton\";\r\nvar DROP_DOWN_BUTTON_CONTENT = \"dx-dropdownbutton-content\";\r\nvar DROP_DOWN_BUTTON_ACTION_CLASS = \"dx-dropdownbutton-action\";\r\nvar DROP_DOWN_BUTTON_TOGGLE_CLASS = \"dx-dropdownbutton-toggle\";\r\nvar DROP_DOWN_BUTTON_HAS_ARROW_CLASS = \"dx-dropdownbutton-has-arrow\";\r\nvar DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = \"dx-dropdownbutton-popup-wrapper\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar DX_BUTTON_CLASS = \"dx-button\";\r\nvar DX_BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nvar DX_ICON_RIGHT_CLASS = \"dx-icon-right\";\r\nvar DropDownButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplate: \"item\",\r\n keyExpr: \"this\",\r\n displayExpr: void 0,\r\n selectedItem: null,\r\n selectedItemKey: null,\r\n stylingMode: \"outlined\",\r\n deferRendering: true,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n useSelectMode: false,\r\n splitButton: false,\r\n showArrowIcon: true,\r\n text: \"\",\r\n type: \"normal\",\r\n icon: void 0,\r\n onButtonClick: null,\r\n onSelectionChanged: null,\r\n onItemClick: null,\r\n opened: false,\r\n items: null,\r\n dataSource: null,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n dropDownOptions: {},\r\n dropDownContentTemplate: \"content\",\r\n wrapItemText: false,\r\n useItemTextAsTitle: true,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n buttonGroupOptions: {}\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction();\r\n this._createActionClickAction();\r\n this._createSelectionChangedAction();\r\n this._initDataSource();\r\n this._compileKeyGetter();\r\n this._compileDisplayGetter();\r\n this._itemsToDataSource(this.option(\"items\"));\r\n this._options.cache(\"buttonGroupOptions\", this.option(\"buttonGroupOptions\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(options => {\r\n var $popupContent = $(options.container);\r\n var $listContainer = $(\"<div>\").appendTo($popupContent);\r\n this._list = this._createComponent($listContainer, List, this._listOptions());\r\n this._list.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"tab\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"leftArrow\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"rightArrow\", this._escHandler.bind(this))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _itemsToDataSource: function(value) {\r\n if (!this._dataSource) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore({\r\n key: this._getKey(),\r\n data: value\r\n }),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _getKey: function() {\r\n var _this$_dataSource;\r\n var keyExpr = this.option(\"keyExpr\");\r\n var storeKey = null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.key();\r\n return isDefined(storeKey) && (!isDefined(keyExpr) || \"this\" === keyExpr) ? storeKey : keyExpr\r\n },\r\n _compileKeyGetter() {\r\n this._keyGetter = compileGetter(this._getKey())\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this.option(\"displayExpr\"))\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_BUTTON_CLASS);\r\n this._renderButtonGroup();\r\n this._updateArrowClass();\r\n if (isDefined(this.option(\"selectedItemKey\"))) {\r\n this._loadSelectedItem().done(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _renderFocusTarget: noop,\r\n _render() {\r\n if (!this.option(\"deferRendering\") || this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n this.callBase()\r\n },\r\n _renderContentImpl() {\r\n if (this._popup) {\r\n this._renderPopupContent()\r\n }\r\n return this.callBase()\r\n },\r\n _loadSelectedItem() {\r\n var _this$_loadSingleDefe;\r\n null === (_this$_loadSingleDefe = this._loadSingleDeferred) || void 0 === _this$_loadSingleDefe ? void 0 : _this$_loadSingleDefe.reject();\r\n var d = new Deferred;\r\n if (this._list && void 0 !== this._lastSelectedItemData) {\r\n var cachedResult = this.option(\"useSelectMode\") ? this._list.option(\"selectedItem\") : this._lastSelectedItemData;\r\n return d.resolve(cachedResult)\r\n }\r\n this._lastSelectedItemData = void 0;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(() => {\r\n d.resolve(null)\r\n });\r\n this._loadSingleDeferred = d;\r\n return d.promise()\r\n },\r\n _createActionClickAction() {\r\n this._actionClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _fireSelectionChangedAction(_ref) {\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = _ref;\r\n this._selectionChangedAction({\r\n item: value,\r\n previousItem: previousValue\r\n })\r\n },\r\n _fireItemClickAction(_ref2) {\r\n var {\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: itemData\r\n } = _ref2;\r\n return this._itemClickAction({\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: this._actionItem || itemData\r\n })\r\n },\r\n _actionButtonConfig() {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.option();\r\n return {\r\n text: text,\r\n icon: icon,\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_ACTION_CLASS\r\n }\r\n }\r\n },\r\n _getButtonGroupItems() {\r\n var {\r\n splitButton: splitButton,\r\n type: type\r\n } = this.option();\r\n var items = [];\r\n items.push(this._actionButtonConfig());\r\n if (splitButton) {\r\n items.push({\r\n icon: \"spindown\",\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_TOGGLE_CLASS\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _buttonGroupItemClick(_ref3) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = _ref3;\r\n var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;\r\n var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;\r\n if (isToggleButton) {\r\n this.toggle()\r\n } else if (isActionButton) {\r\n this._actionClickAction({\r\n event: event,\r\n selectedItem: this.option(\"selectedItem\")\r\n });\r\n if (!this.option(\"splitButton\")) {\r\n this.toggle()\r\n }\r\n }\r\n },\r\n _buttonGroupOptions() {\r\n var {\r\n splitButton: splitButton,\r\n showArrowIcon: showArrowIcon,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n var buttonTemplate = splitButton || !showArrowIcon ? \"content\" : (_ref4, buttonContent) => {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = _ref4;\r\n var $firstIcon = getImageContainer(icon);\r\n var $textContainer = text ? $(\"<span>\").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;\r\n var $secondIcon = getImageContainer(\"spindown\").addClass(DX_ICON_RIGHT_CLASS);\r\n $(buttonContent).append($firstIcon, $textContainer, $secondIcon)\r\n };\r\n return extend({\r\n items: this._getButtonGroupItems(),\r\n onItemClick: this._buttonGroupItemClick.bind(this),\r\n width: \"100%\",\r\n height: \"100%\",\r\n selectionMode: \"none\",\r\n onKeyboardHandled: e => this._keyboardHandler(e),\r\n buttonTemplate: buttonTemplate,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n }, this._options.cache(\"buttonGroupOptions\"))\r\n },\r\n _renderPopupContent() {\r\n var $content = this._popup.$content();\r\n var template = this._getTemplateByOption(\"dropDownContentTemplate\");\r\n $content.empty();\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $content);\r\n return template.render({\r\n container: getPublicElement($content),\r\n model: this.option(\"items\") || this._dataSource\r\n })\r\n },\r\n _popupOptions() {\r\n var horizontalAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n return extend({\r\n dragEnabled: false,\r\n focusStateEnabled: false,\r\n deferRendering: this.option(\"deferRendering\"),\r\n hideOnOutsideClick: e => {\r\n var $element = this.$element();\r\n var $buttonClicked = $(e.target).closest(\".\".concat(DROP_DOWN_BUTTON_CLASS));\r\n return !$buttonClicked.is($element)\r\n },\r\n showTitle: false,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n position: {\r\n of: this.$element(),\r\n collision: \"flipfit\",\r\n my: horizontalAlignment + \" top\",\r\n at: horizontalAlignment + \" bottom\"\r\n },\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY_CLASS\r\n }, this._options.cache(\"dropDownOptions\"), {\r\n visible: this.option(\"opened\")\r\n })\r\n },\r\n _listOptions() {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n var useSelectMode = this.option(\"useSelectMode\");\r\n return {\r\n selectionMode: useSelectMode ? \"single\" : \"none\",\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: () => this._fireContentReadyAction(),\r\n selectedItemKeys: isDefined(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n keyExpr: this._getKey(),\r\n noDataText: this.option(\"noDataText\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n onItemClick: e => {\r\n if (!this.option(\"useSelectMode\")) {\r\n this._lastSelectedItemData = e.itemData\r\n }\r\n this.option(\"selectedItemKey\", this._keyGetter(e.itemData));\r\n var actionResult = this._fireItemClickAction(e);\r\n if (false !== actionResult) {\r\n this.toggle(false);\r\n this._buttonGroup.focus()\r\n }\r\n }\r\n }\r\n },\r\n _upDownKeyHandler() {\r\n if (this._popup && this._popup.option(\"visible\") && this._list) {\r\n this._list.focus()\r\n } else {\r\n this.open()\r\n }\r\n return true\r\n },\r\n _escHandler() {\r\n this.close();\r\n this._buttonGroup.focus();\r\n return true\r\n },\r\n _tabHandler() {\r\n this.close();\r\n return true\r\n },\r\n _renderPopup() {\r\n var $popup = $(\"<div>\");\r\n this.$element().append($popup);\r\n this._popup = this._createComponent($popup, Popup, this._popupOptions());\r\n this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);\r\n this._popup.$wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);\r\n this._popup.on(\"hiding\", this._popupHidingHandler.bind(this));\r\n this._popup.on(\"showing\", this._popupShowingHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false);\r\n this._updateAriaAttributes(false)\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _popupShowingHandler() {\r\n this.option(\"opened\", true);\r\n this._updateAriaAttributes(true)\r\n },\r\n _setElementAria(value) {\r\n var elementAria = {\r\n owns: value ? this._popupContentId : void 0\r\n };\r\n this.setAria(elementAria, this.$element())\r\n },\r\n _setButtonsAria(value) {\r\n var commonButtonAria = {\r\n expanded: value,\r\n haspopup: \"listbox\"\r\n };\r\n var firstButtonAria = {};\r\n if (!this.option(\"text\")) {\r\n firstButtonAria.label = \"dropdownbutton\"\r\n }\r\n this._getButtons().each((index, $button) => {\r\n if (0 === index) {\r\n this.setAria(_extends({}, firstButtonAria, commonButtonAria), $($button))\r\n } else {\r\n this.setAria(commonButtonAria, $($button))\r\n }\r\n })\r\n },\r\n _updateAriaAttributes(value) {\r\n this._setElementAria(value);\r\n this._setButtonsAria(value)\r\n },\r\n _getButtons() {\r\n return this._buttonGroup.$element().find(\".\".concat(DX_BUTTON_CLASS))\r\n },\r\n _renderButtonGroup() {\r\n var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || $(\"<div>\");\r\n if (!this._buttonGroup) {\r\n this.$element().append($buttonGroup)\r\n }\r\n this._buttonGroup = this._createComponent($buttonGroup, ButtonGroup, this._buttonGroupOptions());\r\n this._buttonGroup.registerKeyHandler(\"downArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"tab\", this._tabHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"upArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._buttonGroup, \"buttonGroupOptions\");\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _updateArrowClass() {\r\n var hasArrow = this.option(\"splitButton\") || this.option(\"showArrowIcon\");\r\n this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow)\r\n },\r\n toggle(visible) {\r\n if (!this._popup) {\r\n this._renderPopup();\r\n this._renderContent()\r\n }\r\n return this._popup.toggle(visible)\r\n },\r\n open() {\r\n return this.toggle(true)\r\n },\r\n close() {\r\n return this.toggle(false)\r\n },\r\n _setListOption(name, value) {\r\n this._list && this._list.option(name, value)\r\n },\r\n _getDisplayValue(item) {\r\n var isPrimitiveItem = !isPlainObject(item);\r\n var displayValue = isPrimitiveItem ? item : this._displayGetter(item);\r\n return !isPlainObject(displayValue) ? String(ensureDefined(displayValue, \"\")) : \"\"\r\n },\r\n _updateActionButton(selectedItem) {\r\n if (this.option(\"useSelectMode\")) {\r\n this.option({\r\n text: this._getDisplayValue(selectedItem),\r\n icon: isPlainObject(selectedItem) ? selectedItem.icon : void 0\r\n })\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKey\", this._keyGetter(selectedItem))\r\n },\r\n _clean() {\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove()\r\n },\r\n _selectedItemKeyChanged(value) {\r\n this._setListOption(\"selectedItemKeys\", this.option(\"useSelectMode\") && isDefined(value) ? [value] : []);\r\n var previousItem = this.option(\"selectedItem\");\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._updateActionButton(selectedItem);\r\n if (this._displayGetter(previousItem) !== this._displayGetter(selectedItem)) {\r\n this._fireSelectionChangedAction({\r\n previousValue: previousItem,\r\n value: selectedItem\r\n })\r\n }\r\n })\r\n },\r\n _updateButtonGroup(name, value) {\r\n this._buttonGroup.option(name, value);\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _actionButtonOptionChanged(_ref5) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref5;\r\n var newConfig = {};\r\n newConfig[name] = value;\r\n this._updateButtonGroup(\"items[0]\", extend({}, this._actionButtonConfig(), newConfig));\r\n this._popup && this._popup.repaint()\r\n },\r\n _selectModeChanged(value) {\r\n if (value) {\r\n this._setListOption(\"selectionMode\", \"single\");\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItemKeys\", isDefined(selectedItemKey) ? [selectedItemKey] : []);\r\n this._selectedItemKeyChanged(this.option(\"selectedItemKey\"))\r\n } else {\r\n this._setListOption(\"selectionMode\", \"none\");\r\n this.option({\r\n selectedItemKey: void 0,\r\n selectedItem: void 0\r\n });\r\n this._actionButtonOptionChanged({\r\n text: this.option(\"text\")\r\n })\r\n }\r\n },\r\n _updateItemCollection(optionName) {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItem\", null);\r\n this._setWidgetOption(\"_list\", [optionName]);\r\n if (isDefined(selectedItemKey)) {\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._setListOption(\"selectedItemKeys\", [selectedItemKey]);\r\n this._setListOption(\"selectedItem\", selectedItem)\r\n }).fail(error => {\r\n this._setListOption(\"selectedItemKeys\", [])\r\n }).always(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _updateDataSource: function() {\r\n var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();\r\n this._dataSource = void 0;\r\n this._itemsToDataSource(items);\r\n this._updateKeyExpr()\r\n },\r\n _updateKeyExpr: function() {\r\n this._compileKeyGetter();\r\n this._setListOption(\"keyExpr\", this._getKey())\r\n },\r\n focus: function() {\r\n this._buttonGroup.focus()\r\n },\r\n _optionChanged(args) {\r\n var _this$_popup;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"useSelectMode\":\r\n this._selectModeChanged(value);\r\n break;\r\n case \"splitButton\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(name, value);\r\n this._updateActionButton(this.option(\"selectedItem\"));\r\n break;\r\n case \"keyExpr\":\r\n this._updateDataSource();\r\n break;\r\n case \"buttonGroupOptions\":\r\n this._innerWidgetOptionChanged(this._buttonGroup, args);\r\n break;\r\n case \"dropDownOptions\":\r\n if (\"dropDownOptions.visible\" === args.fullName) {\r\n break\r\n }\r\n if (void 0 !== args.value.visible) {\r\n delete args.value.visible\r\n }\r\n this._popupOptionChanged(args);\r\n this._innerWidgetOptionChanged(this._popup, args);\r\n break;\r\n case \"opened\":\r\n this.toggle(value);\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setListOption(name, value);\r\n this._updateButtonGroup(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._updateDataSource(this.option(\"items\"));\r\n this._updateItemCollection(name);\r\n break;\r\n case \"dataSource\":\r\n if (Array.isArray(value)) {\r\n this._updateDataSource(this.option(\"dataSource\"))\r\n } else {\r\n this._initDataSource();\r\n this._updateKeyExpr()\r\n }\r\n this._updateItemCollection(name);\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._actionButtonOptionChanged(args);\r\n break;\r\n case \"showArrowIcon\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n this._popup && this._popup.repaint();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"stylingMode\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n case \"type\":\r\n this._updateButtonGroup(\"items\", this._getButtonGroupItems());\r\n break;\r\n case \"itemTemplate\":\r\n case \"grouped\":\r\n case \"noDataText\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"dropDownContentTemplate\":\r\n this._renderContent();\r\n break;\r\n case \"selectedItemKey\":\r\n this._selectedItemKeyChanged(value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._createActionClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"deferRendering\":\r\n this.toggle(this.option(\"opened\"));\r\n break;\r\n case \"tabIndex\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownButton\", DropDownButton);\r\nexport default DropDownButton;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_export.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\n\r\nfunction prepareItems(items, emptyCell) {\r\n var defaultSetter = value => !value ? 1 : value;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce((sum, item) => sum + defaultSetter(item.colspan), 0);\r\n var getItem = (items => {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return () => {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = defaultSetter(item.colspan);\r\n item.rowspan = defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n })(items);\r\n var addItem = (rowIndex, cellIndex, item) => {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = (item => extend({}, item, emptyCell))(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n };\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n}\r\nexport {\r\n prepareItems\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/export/m_export.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../../ui/button\";\r\nimport \"../../../../ui/drop_down_button\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport List from \"../../../../ui/list_light\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n prepareItems\r\n} from \"../../../grids/grid_core/m_export\";\r\nimport dataGridCore from \"../m_core\";\r\nvar DATAGRID_EXPORT_MENU_CLASS = \"dx-datagrid-export-menu\";\r\nvar DATAGRID_EXPORT_BUTTON_CLASS = \"dx-datagrid-export-button\";\r\nvar DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME = \"exportButton\";\r\nvar DATAGRID_EXPORT_ICON = \"export\";\r\nvar DATAGRID_EXPORT_EXCEL_ICON = \"xlsxfile\";\r\nvar DATAGRID_EXPORT_SELECTED_ICON = \"exportselected\";\r\nvar DATAGRID_PDF_EXPORT_ICON = \"pdffile\";\r\nexport class DataProvider {\r\n constructor(exportController, initialColumnWidthsByColumnIndex, selectedRowsOnly) {\r\n this._exportController = exportController;\r\n this._initialColumnWidthsByColumnIndex = initialColumnWidthsByColumnIndex;\r\n this._selectedRowsOnly = selectedRowsOnly\r\n }\r\n _getGroupValue(item) {\r\n var {\r\n key: key,\r\n data: data,\r\n rowType: rowType,\r\n groupIndex: groupIndex,\r\n summaryCells: summaryCells\r\n } = item;\r\n var groupColumn = this._options.groupColumns[groupIndex];\r\n var value = dataGridCore.getDisplayValue(groupColumn, groupColumn.deserializeValue ? groupColumn.deserializeValue(key[groupIndex]) : key[groupIndex], data, rowType);\r\n var result = \"\".concat(groupColumn.caption, \": \").concat(dataGridCore.formatValue(value, groupColumn));\r\n if (summaryCells && summaryCells[0] && summaryCells[0].length) {\r\n result += \" \".concat(dataGridCore.getGroupRowSummaryText(summaryCells[0], this._options.summaryTexts))\r\n }\r\n return result\r\n }\r\n _correctCellIndex(cellIndex) {\r\n return cellIndex\r\n }\r\n _initOptions() {\r\n var exportController = this._exportController;\r\n var groupColumns = exportController._columnsController.getGroupColumns();\r\n this._options = {\r\n columns: exportController._getColumns(this._initialColumnWidthsByColumnIndex),\r\n groupColumns: groupColumns,\r\n items: this._selectedRowsOnly || exportController._selectionOnly ? exportController._getSelectedItems() : exportController._getAllItems(),\r\n isHeadersVisible: exportController.option(\"showColumnHeaders\"),\r\n summaryTexts: exportController.option(\"summary.texts\"),\r\n rtlEnabled: exportController.option(\"rtlEnabled\")\r\n }\r\n }\r\n getHeaderStyles() {\r\n return [{\r\n bold: true,\r\n alignment: \"center\"\r\n }, {\r\n bold: true,\r\n alignment: \"left\"\r\n }, {\r\n bold: true,\r\n alignment: \"right\"\r\n }]\r\n }\r\n getGroupRowStyle() {\r\n return {\r\n bold: true,\r\n alignment: getDefaultAlignment(this._options.rtlEnabled)\r\n }\r\n }\r\n getColumnStyles() {\r\n var columnStyles = [];\r\n this.getColumns().forEach(column => {\r\n columnStyles.push({\r\n alignment: column.alignment || \"left\",\r\n format: column.format,\r\n dataType: column.dataType\r\n })\r\n });\r\n return columnStyles\r\n }\r\n getStyles() {\r\n return [...this.getHeaderStyles(), ...this.getColumnStyles(), this.getGroupRowStyle()]\r\n }\r\n _getTotalCellStyleId(cellIndex) {\r\n var _a;\r\n var alignment = (null === (_a = this.getColumns()[cellIndex]) || void 0 === _a ? void 0 : _a.alignment) || \"right\";\r\n return this.getHeaderStyles().map(style => style.alignment).indexOf(alignment)\r\n }\r\n getStyleId(rowIndex, cellIndex) {\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return 0\r\n }\r\n if (this.isTotalCell(rowIndex - this.getHeaderRowCount(), cellIndex)) {\r\n return this._getTotalCellStyleId(cellIndex)\r\n }\r\n if (this.isGroupRow(rowIndex - this.getHeaderRowCount())) {\r\n return this.getHeaderStyles().length + this.getColumns().length\r\n }\r\n return cellIndex + this.getHeaderStyles().length\r\n }\r\n getColumns(getColumnsByAllRows) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n return getColumnsByAllRows ? columns : columns[columns.length - 1]\r\n }\r\n getColumnsWidths() {\r\n var columns = this.getColumns();\r\n return isDefined(columns) ? columns.map(c => c.width) : void 0\r\n }\r\n getRowsCount() {\r\n return this._options.items.length + this.getHeaderRowCount()\r\n }\r\n getHeaderRowCount() {\r\n if (this.isHeadersVisible()) {\r\n return this._options.columns.length - 1\r\n }\r\n return 0\r\n }\r\n isGroupRow(rowIndex) {\r\n return rowIndex < this._options.items.length && \"group\" === this._options.items[rowIndex].rowType\r\n }\r\n getGroupLevel(rowIndex) {\r\n var item = this._options.items[rowIndex - this.getHeaderRowCount()];\r\n var groupIndex = item && item.groupIndex;\r\n if (item && \"totalFooter\" === item.rowType) {\r\n return 0\r\n }\r\n return isDefined(groupIndex) ? groupIndex : this._options.groupColumns.length\r\n }\r\n getCellType(rowIndex, cellIndex) {\r\n var columns = this.getColumns();\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return \"string\"\r\n }\r\n rowIndex -= this.getHeaderRowCount();\r\n if (cellIndex < columns.length) {\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n var column = columns[cellIndex];\r\n if (item && \"data\" === item.rowType) {\r\n if (isFinite(item.values[this._correctCellIndex(cellIndex)]) && !isDefined(column.customizeText)) {\r\n return isDefined(column.lookup) ? column.lookup.dataType : column.dataType\r\n }\r\n }\r\n return \"string\"\r\n }\r\n }\r\n ready() {\r\n this._initOptions();\r\n var options = this._options;\r\n return when(options.items).done(items => {\r\n options.items = items\r\n }).fail(() => {\r\n options.items = []\r\n })\r\n }\r\n _convertFromGridGroupSummaryItems(gridGroupSummaryItems) {\r\n if (isDefined(gridGroupSummaryItems) && gridGroupSummaryItems.length > 0) {\r\n return gridGroupSummaryItems.map(item => ({\r\n value: item.value,\r\n name: item.name\r\n }))\r\n }\r\n }\r\n getCellData(rowIndex, cellIndex, isExcelJS) {\r\n var value;\r\n var column;\r\n var result = {\r\n cellSourceData: {},\r\n value: value\r\n };\r\n var columns = this.getColumns();\r\n var correctedCellIndex = this._correctCellIndex(cellIndex);\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n var columnsRow = this.getColumns(true)[rowIndex];\r\n column = columnsRow[cellIndex];\r\n result.cellSourceData.rowType = \"header\";\r\n result.cellSourceData.column = column && column.gridColumn;\r\n result.value = column && column.caption\r\n } else {\r\n rowIndex -= this.getHeaderRowCount();\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n if (item) {\r\n var itemValues = item.values;\r\n result.cellSourceData.rowType = item.rowType;\r\n result.cellSourceData.column = columns[cellIndex] && columns[cellIndex].gridColumn;\r\n switch (item.rowType) {\r\n case \"groupFooter\":\r\n case \"totalFooter\":\r\n if (correctedCellIndex < itemValues.length) {\r\n value = itemValues[correctedCellIndex];\r\n if (isDefined(value)) {\r\n result.cellSourceData.value = value.value;\r\n result.cellSourceData.totalSummaryItemName = value.name;\r\n result.value = dataGridCore.getSummaryText(value, this._options.summaryTexts)\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n case \"group\":\r\n result.cellSourceData.groupIndex = item.groupIndex;\r\n if (cellIndex < 1) {\r\n result.cellSourceData.column = this._options.groupColumns[item.groupIndex];\r\n result.cellSourceData.value = item.key[item.groupIndex];\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(item.summaryCells[0]);\r\n result.value = this._getGroupValue(item)\r\n } else {\r\n var summaryItems = item.values[correctedCellIndex];\r\n if (Array.isArray(summaryItems)) {\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(summaryItems);\r\n value = \"\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n value += (i > 0 ? isExcelJS ? \"\\n\" : \" \\n \" : \"\") + dataGridCore.getSummaryText(summaryItems[i], this._options.summaryTexts)\r\n }\r\n result.value = value\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n default:\r\n column = columns[cellIndex];\r\n if (column) {\r\n var _value = itemValues[correctedCellIndex];\r\n var displayValue = dataGridCore.getDisplayValue(column, _value, item.data, item.rowType);\r\n if (!isFinite(displayValue) || isDefined(column.customizeText)) {\r\n if (isExcelJS && isDefined(column.customizeText) && column.customizeText === this._exportController._columnsController.getCustomizeTextByDataType(\"boolean\")) {\r\n result.value = displayValue\r\n } else {\r\n result.value = dataGridCore.formatValue(displayValue, column)\r\n }\r\n } else {\r\n result.value = displayValue\r\n }\r\n result.cellSourceData.value = _value\r\n }\r\n result.cellSourceData.data = item.data\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n isHeadersVisible() {\r\n return this._options.isHeadersVisible\r\n }\r\n isTotalCell(rowIndex, cellIndex) {\r\n var {\r\n items: items\r\n } = this._options;\r\n var item = items[rowIndex];\r\n var correctCellIndex = this._correctCellIndex(cellIndex);\r\n var isSummaryAlignByColumn = item.summaryCells && item.summaryCells[correctCellIndex] && item.summaryCells[correctCellIndex].length > 0 && item.summaryCells[correctCellIndex][0].alignByColumn;\r\n return item && \"groupFooter\" === item.rowType || \"totalFooter\" === item.rowType || isSummaryAlignByColumn\r\n }\r\n getCellMerging(rowIndex, cellIndex) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n var column = columns[rowIndex] && columns[rowIndex][cellIndex];\r\n return column ? {\r\n colspan: (column.exportColspan || 1) - 1,\r\n rowspan: (column.rowspan || 1) - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n }\r\n getFrozenArea() {\r\n return {\r\n x: 0,\r\n y: this.getHeaderRowCount()\r\n }\r\n }\r\n}\r\nexport class ExportController extends dataGridCore.ViewController {\r\n _getEmptyCell() {\r\n return {\r\n caption: \"\",\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n _updateColumnWidth(column, width) {\r\n column.width = width\r\n }\r\n _getColumns(initialColumnWidthsByColumnIndex) {\r\n var result = [];\r\n var i;\r\n var columns;\r\n var columnsController = this._columnsController;\r\n var rowCount = columnsController.getRowCount();\r\n for (i = 0; i <= rowCount; i++) {\r\n var currentHeaderRow = [];\r\n columns = columnsController.getVisibleColumns(i, true);\r\n var columnWidthsByColumnIndex = void 0;\r\n if (i === rowCount) {\r\n if (this._updateLockCount) {\r\n columnWidthsByColumnIndex = initialColumnWidthsByColumnIndex\r\n } else {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n if (columnWidths && columnWidths.length) {\r\n columnWidthsByColumnIndex = {};\r\n for (var _i = 0; _i < columns.length; _i++) {\r\n columnWidthsByColumnIndex[columns[_i].index] = columnWidths[_i]\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = extend({}, columns[j], {\r\n dataType: \"datetime\" === columns[j].dataType ? \"date\" : columns[j].dataType,\r\n gridColumn: columns[j]\r\n });\r\n if (this._needColumnExporting(column)) {\r\n var currentColspan = this._calculateExportColspan(column);\r\n if (isDefined(currentColspan)) {\r\n column.exportColspan = currentColspan\r\n }\r\n if (columnWidthsByColumnIndex) {\r\n this._updateColumnWidth(column, columnWidthsByColumnIndex[column.index])\r\n }\r\n currentHeaderRow.push(column)\r\n }\r\n }\r\n result.push(currentHeaderRow)\r\n }\r\n columns = result[rowCount];\r\n result = prepareItems(result.slice(0, -1), this._getEmptyCell());\r\n result.push(columns);\r\n return result\r\n }\r\n _calculateExportColspan(column) {\r\n if (!column.isBand) {\r\n return\r\n }\r\n var childColumns = this._columnsController.getChildrenByBandColumn(column.index, true);\r\n if (!isDefined(childColumns)) {\r\n return\r\n }\r\n return childColumns.reduce((result, childColumn) => {\r\n if (this._needColumnExporting(childColumn)) {\r\n return result + (this._calculateExportColspan(childColumn) || 1)\r\n }\r\n return result\r\n }, 0)\r\n }\r\n _needColumnExporting(column) {\r\n return !column.command && (column.allowExporting || void 0 === column.allowExporting)\r\n }\r\n _getFooterSummaryItems(summaryCells, isTotal) {\r\n var result = [];\r\n var estimatedItemsCount = 1;\r\n var i = 0;\r\n do {\r\n var values = [];\r\n for (var j = 0; j < summaryCells.length; j++) {\r\n var summaryCell = summaryCells[j];\r\n var itemsLength = summaryCell.length;\r\n if (estimatedItemsCount < itemsLength) {\r\n estimatedItemsCount = itemsLength\r\n }\r\n values.push(summaryCell[i])\r\n }\r\n result.push({\r\n values: values,\r\n rowType: isTotal ? \"totalFooter\" : \"groupFooter\"\r\n })\r\n } while (i++ < estimatedItemsCount - 1);\r\n return result\r\n }\r\n _hasSummaryGroupFooters() {\r\n var groupItems = this.option(\"summary.groupItems\");\r\n if (isDefined(groupItems)) {\r\n for (var i = 0; i < groupItems.length; i++) {\r\n if (groupItems[i].showInGroupFooter) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n }\r\n _getItemsWithSummaryGroupFooters(sourceItems) {\r\n var result = [];\r\n var beforeGroupFooterItems = [];\r\n var groupFooterItems = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n if (\"groupFooter\" === item.rowType) {\r\n groupFooterItems = this._getFooterSummaryItems(item.summaryCells);\r\n result = result.concat(beforeGroupFooterItems, groupFooterItems);\r\n beforeGroupFooterItems = []\r\n } else {\r\n beforeGroupFooterItems.push(item)\r\n }\r\n }\r\n return result.length ? result : beforeGroupFooterItems\r\n }\r\n _updateGroupValuesWithSummaryByColumn(sourceItems) {\r\n var summaryValues = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n var {\r\n summaryCells: summaryCells\r\n } = item;\r\n if (\"group\" === item.rowType && summaryCells && summaryCells.length > 1) {\r\n var groupColumnCount = item.values.length;\r\n for (var j = 1; j < summaryCells.length; j++) {\r\n for (var k = 0; k < summaryCells[j].length; k++) {\r\n var summaryItem = summaryCells[j][k];\r\n if (summaryItem && summaryItem.alignByColumn) {\r\n if (!Array.isArray(summaryValues[j - groupColumnCount])) {\r\n summaryValues[j - groupColumnCount] = []\r\n }\r\n summaryValues[j - groupColumnCount].push(summaryItem)\r\n }\r\n }\r\n }\r\n if (summaryValues.length > 0) {\r\n item.values.push(...summaryValues);\r\n summaryValues = []\r\n }\r\n }\r\n }\r\n }\r\n _processUnExportedItems(items) {\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n var values;\r\n var summaryCells;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isCommand = false;\r\n values = [];\r\n summaryCells = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = columns[j];\r\n isCommand || (isCommand = [\"detailExpand\", \"buttons\"].includes(column.type));\r\n if (this._needColumnExporting(column)) {\r\n if (item.values) {\r\n if (\"group\" === item.rowType && !values.length) {\r\n values.push(item.key[item.groupIndex])\r\n } else {\r\n values.push(item.values[j])\r\n }\r\n }\r\n if (item.summaryCells) {\r\n if (\"group\" === item.rowType && !summaryCells.length) {\r\n var index = j - groupColumns.length + item.groupIndex;\r\n summaryCells.push(item.summaryCells[isCommand ? index : index + 1])\r\n } else {\r\n summaryCells.push(item.summaryCells[j])\r\n }\r\n }\r\n }\r\n }\r\n if (values.length) {\r\n item.values = values\r\n }\r\n if (summaryCells.length) {\r\n item.summaryCells = summaryCells\r\n }\r\n }\r\n }\r\n _getAllItems(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataController = this.getController(\"data\");\r\n var footerItems = dataController.footerItems();\r\n var totalItem = footerItems.length && footerItems[0];\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n var summaryCells;\r\n when(data).done(data => {\r\n dataController.loadAll(data, skipFilter).done((sourceItems, totalAggregates) => {\r\n that._updateGroupValuesWithSummaryByColumn(sourceItems);\r\n if (that._hasSummaryGroupFooters()) {\r\n sourceItems = that._getItemsWithSummaryGroupFooters(sourceItems)\r\n }\r\n summaryCells = totalItem && totalItem.summaryCells;\r\n if (isDefined(totalAggregates) && summaryTotalItems) {\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates)\r\n }\r\n var summaryItems = totalItem && that._getFooterSummaryItems(summaryCells, true);\r\n if (summaryItems) {\r\n sourceItems = sourceItems.concat(summaryItems)\r\n }\r\n that._processUnExportedItems(sourceItems);\r\n d.resolve(sourceItems)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n _getSummaryCells(summaryTotalItems, totalAggregates) {\r\n var dataController = this.getController(\"data\");\r\n var columnsController = dataController._columnsController;\r\n return dataController._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(null, true), (summaryItem, column) => dataController._isDataColumn(column) ? column.index : -1)\r\n }\r\n _getSelectedItems() {\r\n var selectionController = this.getController(\"selection\");\r\n if (this.needLoadItemsOnExportingSelectedItems()) {\r\n return this._getAllItems(selectionController.loadSelectedItemsWithFilter(), true)\r\n }\r\n return this._getAllItems(selectionController.getSelectedRowsData())\r\n }\r\n _getColumnWidths(headersView, rowsView) {\r\n return headersView && headersView.isVisible() ? headersView.getColumnWidths() : rowsView.getColumnWidths()\r\n }\r\n throwWarningIfNoOnExportingEvent() {\r\n var _a, _b;\r\n var hasOnExporting = null === (_b = (_a = this.component).hasActionSubscription) || void 0 === _b ? void 0 : _b.call(_a, \"onExporting\");\r\n if (this.option(\"export.enabled\") && !hasOnExporting) {\r\n errors.log(\"W1024\")\r\n }\r\n }\r\n init() {\r\n this.throwWarningIfNoOnExportingEvent();\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headersView = this.getView(\"columnHeadersView\");\r\n this.createAction(\"onExporting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n callbackNames() {\r\n return [\"selectionOnlyChanged\"]\r\n }\r\n getDataProvider(selectedRowsOnly) {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n var initialColumnWidthsByColumnIndex;\r\n if (columnWidths && columnWidths.length) {\r\n initialColumnWidthsByColumnIndex = {};\r\n var columnsLastRowVisibleColumns = this._columnsController.getVisibleColumns(this._columnsController.getRowCount(), true);\r\n for (var i = 0; i < columnsLastRowVisibleColumns.length; i++) {\r\n initialColumnWidthsByColumnIndex[columnsLastRowVisibleColumns[i].index] = columnWidths[i]\r\n }\r\n }\r\n return new DataProvider(this, initialColumnWidthsByColumnIndex, selectedRowsOnly)\r\n }\r\n exportTo(selectedRowsOnly, format) {\r\n this._selectionOnly = selectedRowsOnly;\r\n var onExporting = this.getAction(\"onExporting\");\r\n var eventArgs = {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n selectedRowsOnly: !!selectedRowsOnly,\r\n format: format,\r\n fileName: \"DataGrid\",\r\n cancel: false\r\n };\r\n isFunction(onExporting) && onExporting(eventArgs)\r\n }\r\n publicMethods() {\r\n return [\"getDataProvider\"]\r\n }\r\n selectionOnly(value) {\r\n if (isDefined(value)) {\r\n this._isSelectedRows = value;\r\n this.selectionOnlyChanged.fire()\r\n } else {\r\n return this._isSelectedRows\r\n }\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n if (\"export\" === args.name) {\r\n this.throwWarningIfNoOnExportingEvent()\r\n }\r\n }\r\n needLoadItemsOnExportingSelectedItems() {\r\n var _a;\r\n return null !== (_a = this.option(\"loadItemsOnExportingSelectedItems\")) && void 0 !== _a ? _a : this.getController(\"data\")._dataSource.remoteOperations().filtering\r\n }\r\n}\r\ndataGridCore.registerModule(\"export\", {\r\n defaultOptions: () => ({\r\n export: {\r\n enabled: false,\r\n fileName: \"DataGrid\",\r\n formats: [\"xlsx\"],\r\n allowExportSelectedData: false,\r\n texts: {\r\n exportTo: messageLocalization.format(\"dxDataGrid-exportTo\"),\r\n exportAll: messageLocalization.format(\"dxDataGrid-exportAll\"),\r\n exportSelectedRows: messageLocalization.format(\"dxDataGrid-exportSelectedRows\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n export: ExportController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n callbackNames() {\r\n var callbackList = this.callBase();\r\n return isDefined(callbackList) ? callbackList.push(\"editingButtonsUpdated\") : [\"editingButtonsUpdated\"]\r\n },\r\n _updateEditButtons() {\r\n this.callBase();\r\n this.editingButtonsUpdated.fire()\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems() {\r\n var items = this.callBase();\r\n var exportButton = this._getExportToolbarButton();\r\n if (exportButton) {\r\n items.push(exportButton);\r\n this._correctItemsPosition(items)\r\n }\r\n return items\r\n },\r\n _getExportToolbarButton() {\r\n var items = this._getExportToolbarItems();\r\n if (0 === items.length) {\r\n return null\r\n }\r\n var disabled = this._needDisableExportButton();\r\n var toolbarButtonOptions = {\r\n name: DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME,\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30,\r\n options: {\r\n items: items\r\n },\r\n disabled: disabled\r\n };\r\n if (1 === items.length) {\r\n var widgetOptions = _extends(_extends({}, items[0]), {\r\n hint: items[0].text,\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n }\r\n });\r\n toolbarButtonOptions.widget = \"dxButton\";\r\n toolbarButtonOptions.showText = \"inMenu\";\r\n toolbarButtonOptions.options = widgetOptions\r\n } else {\r\n var _widgetOptions = {\r\n icon: DATAGRID_EXPORT_ICON,\r\n displayExpr: \"text\",\r\n items: items,\r\n hint: this.option(\"export.texts.exportTo\"),\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n },\r\n dropDownOptions: {\r\n width: \"auto\",\r\n _wrapperClassExternal: DATAGRID_EXPORT_MENU_CLASS\r\n }\r\n };\r\n toolbarButtonOptions.options = _widgetOptions;\r\n toolbarButtonOptions.widget = \"dxDropDownButton\";\r\n toolbarButtonOptions.menuItemTemplate = (_data, _index, container) => {\r\n this._createComponent($(container), List, {\r\n items: items\r\n })\r\n }\r\n }\r\n return toolbarButtonOptions\r\n },\r\n _getExportToolbarItems() {\r\n var _a;\r\n var exportOptions = this.option(\"export\");\r\n var texts = this.option(\"export.texts\");\r\n var formats = null !== (_a = this.option(\"export.formats\")) && void 0 !== _a ? _a : [];\r\n if (!exportOptions.enabled) {\r\n return []\r\n }\r\n var items = [];\r\n formats.forEach(formatType => {\r\n var formatName = formatType.toUpperCase();\r\n var exportAllIcon = DATAGRID_EXPORT_ICON;\r\n var exportSelectedIcon = DATAGRID_EXPORT_SELECTED_ICON;\r\n if (\"xlsx\" === formatType) {\r\n formatName = \"Excel\";\r\n exportAllIcon = DATAGRID_EXPORT_EXCEL_ICON\r\n }\r\n if (\"pdf\" === formatType) {\r\n exportAllIcon = DATAGRID_PDF_EXPORT_ICON\r\n }\r\n items.push({\r\n text: format(texts.exportAll, formatName),\r\n icon: exportAllIcon,\r\n onClick: () => {\r\n this._exportController.exportTo(false, formatType)\r\n }\r\n });\r\n if (exportOptions.allowExportSelectedData) {\r\n items.push({\r\n text: format(texts.exportSelectedRows, formatName),\r\n icon: exportSelectedIcon,\r\n onClick: () => {\r\n this._exportController.exportTo(true, formatType)\r\n }\r\n })\r\n }\r\n });\r\n return items\r\n },\r\n _correctItemsPosition(items) {\r\n items.sort((itemA, itemB) => itemA.sortIndex - itemB.sortIndex)\r\n },\r\n _isExportButtonVisible() {\r\n return this.option(\"export.enabled\")\r\n },\r\n optionChanged(args) {\r\n this.callBase(args);\r\n if (\"export\" === args.name) {\r\n args.handled = true;\r\n this._invalidate()\r\n }\r\n },\r\n _needDisableExportButton() {\r\n var isDataColumnsInvisible = !this._columnsController.hasVisibleDataColumns();\r\n var hasUnsavedChanges = this._editingController.hasChanges();\r\n return isDataColumnsInvisible || hasUnsavedChanges\r\n },\r\n _columnOptionChanged(e) {\r\n this.callBase(e);\r\n var isColumnLocationChanged = dataGridCore.checkChanges(e.optionNames, [\"groupIndex\", \"visible\", \"all\"]);\r\n if (isColumnLocationChanged) {\r\n var disabled = this._needDisableExportButton();\r\n this.setToolbarItemDisabled(\"exportButton\", disabled)\r\n }\r\n },\r\n init() {\r\n this.callBase();\r\n this._exportController = this.getController(\"export\");\r\n this._editingController = this.getController(\"editing\");\r\n this._editingController.editingButtonsUpdated.add(() => {\r\n var disabled = this._needDisableExportButton();\r\n this.setToolbarItemDisabled(\"exportButton\", disabled)\r\n })\r\n },\r\n isVisible() {\r\n return this.callBase() || this._isExportButtonVisible()\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/focus/m_focus_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n isDate,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nvar getSortFilterValue = (sortInfo, rowData, _ref) => {\r\n var {\r\n isRemoteFiltering: isRemoteFiltering,\r\n dateSerializationFormat: dateSerializationFormat,\r\n getSelector: getSelector\r\n } = _ref;\r\n var {\r\n selector: selector\r\n } = sortInfo;\r\n var getter = isFunction(selector) ? selector : getSelector(selector);\r\n var rawValue = getter ? getter(rowData) : rowData[selector];\r\n var safeValue = isRemoteFiltering && isDate(rawValue) ? dateSerialization.serializeDate(rawValue, dateSerializationFormat) : rawValue;\r\n return {\r\n getter: getter,\r\n rawValue: rawValue,\r\n safeValue: safeValue\r\n }\r\n};\r\nexport var UiGridCoreFocusUtils = {\r\n getSortFilterValue: getSortFilterValue\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/focus/m_focus.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isBoolean,\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n isNewRowTempKey\r\n} from \"../editing/m_editing_utils\";\r\nimport core from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n UiGridCoreFocusUtils\r\n} from \"./m_focus_utils\";\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\".concat(ROW_FOCUSED_CLASS);\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FocusController = core.ViewController.inherit(function() {\r\n var members = {\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._keyboardController = this.getController(\"keyboardNavigation\");\r\n this.component._optionsByReference.focusedRowKey = true\r\n },\r\n optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"focusedRowIndex\":\r\n this._focusRowByIndex(value);\r\n this._keyboardController._fireFocusedRowChanged();\r\n args.handled = true;\r\n break;\r\n case \"focusedRowKey\":\r\n if (Array.isArray(value) && JSON.stringify(value) === JSON.stringify(previousValue)) {\r\n return\r\n }\r\n this._focusRowByKey(value);\r\n this._keyboardController._fireFocusedRowChanged();\r\n args.handled = true;\r\n break;\r\n case \"focusedColumnIndex\":\r\n case \"focusedRowEnabled\":\r\n case \"autoNavigateToFocusedRow\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isAutoNavigateToFocusedRow() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n },\r\n _focusRowByIndex(index, operationTypes) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index, operationTypes)\r\n }\r\n },\r\n _focusRowByIndexCore(index, operationTypes) {\r\n var dataController = this.getController(\"data\");\r\n var pageSize = dataController.pageSize();\r\n var setKeyByIndex = () => {\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = index - dataController.getRowIndexOffset(true);\r\n if (!operationTypes || operationTypes.paging && !operationTypes.filtering) {\r\n var lastItemIndex = dataController._getLastItemIndex();\r\n rowIndex = Math.min(rowIndex, lastItemIndex)\r\n }\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex, true);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n when(dataController.pageIndex(pageIndex), dataController.waitReady()).done(() => {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n },\r\n _isLocalRowIndex(index) {\r\n var dataController = this.getController(\"data\");\r\n var isVirtualScrolling = this.getController(\"keyboardNavigation\")._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n var virtualItems = dataController.virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = dataController.getVisibleRows().length + dataController.getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / dataController.pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n },\r\n _setFocusedRowKeyByIndex(index) {\r\n var dataController = this.getController(\"data\");\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n },\r\n _focusRowByKey(key) {\r\n if (!isDefined(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n },\r\n _resetFocusedRow() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = isDefined(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", null)\r\n }\r\n keyboardController.setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: null\r\n });\r\n keyboardController._fireFocusedRowChanged(void 0, -1)\r\n },\r\n _isValidFocusedRowIndex(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n },\r\n publicMethods: () => [\"navigateToRow\", \"isRowFocused\"],\r\n navigateToRow(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n return this._navigateToRow(key)\r\n },\r\n _navigateToRow(key, needFocusRow) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new Deferred;\r\n if (void 0 === key || !dataController.dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n dataController.getPageIndexByKey(key).done(pageIndex => {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === dataController.pageIndex()) {\r\n dataController.reload().done(() => {\r\n if (that.isRowFocused(key) && dataController.getRowIndexByKey(key) >= 0) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n }).fail(d.reject)\r\n } else {\r\n dataController.pageIndex(pageIndex).done(() => {\r\n that._navigateTo(key, d, needFocusRow)\r\n }).fail(d.reject)\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _navigateTo(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = gridCoreUtils.isVirtualRowRendering(this);\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n },\r\n _navigateToVisibleRow(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n this.getView(\"rowsView\").scrollToRowElement(key, deferred).done(() => {\r\n deferred.resolve(focusedRowIndex)\r\n })\r\n }\r\n },\r\n _navigateToVirtualRow(key, deferred, needFocusRow) {\r\n var dataController = this.getController(\"data\");\r\n var rowsScrollController = dataController._rowsScrollController;\r\n var rowIndex = gridCoreUtils.getIndexByKey(key, dataController.items(true));\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + dataController.getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n var triggerUpdateFocusedRow = () => {\r\n if (dataController.totalCount() && !dataController.items().length) {\r\n return\r\n }\r\n this.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n deferred.resolve(focusedRowIndex)\r\n }\r\n };\r\n this.component.on(\"contentReady\", triggerUpdateFocusedRow);\r\n this.getView(\"rowsView\").scrollTopPosition(offset)\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n },\r\n _triggerUpdateFocusedRow(key, deferred) {\r\n var dataController = this.getController(\"data\");\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n var d;\r\n if (this.option(\"focusedRowEnabled\")) {\r\n dataController.updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n d = this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n when(d).done(() => {\r\n this.getController(\"keyboardNavigation\").setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n })\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n },\r\n getFocusedRowIndexByKey(key) {\r\n var dataController = this.getController(\"data\");\r\n var loadedRowIndex = dataController.getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + dataController.getRowIndexOffset(true) : -1\r\n },\r\n _focusRowByKeyOrIndex() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var dataController = this.getController(\"data\");\r\n if (isDefined(focusedRowKey)) {\r\n var visibleRowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (keyboardController._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + dataController.getRowIndexOffset()\r\n }\r\n keyboardController.setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n this._focusRowByIndex()\r\n } else if (currentFocusedRowIndex < 0 && focusedRowIndex >= 0) {\r\n keyboardController.setFocusedRowIndex(focusedRowIndex)\r\n }\r\n })\r\n }\r\n } else if (currentFocusedRowIndex >= 0) {\r\n this.getController(\"focus\")._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n },\r\n isRowFocused(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if (isDefined(focusedRowKey)) {\r\n return equalByValue(key, this.option(\"focusedRowKey\"))\r\n }\r\n return\r\n },\r\n updateFocusedRow(_ref) {\r\n var {\r\n focusedRowKey: focusedRowKey\r\n } = _ref;\r\n var that = this;\r\n var focusedRowIndex = that._dataController.getRowIndexByKey(focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n var $mainRow;\r\n each(rowsView.getTableElements(), (index, element) => {\r\n var isMainTable = 0 === index;\r\n $tableElement = $(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n var $row = that._prepareFocusedRow({\r\n changedItem: that._dataController.getVisibleRows()[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex\r\n });\r\n if (isMainTable) {\r\n $mainRow = $row\r\n }\r\n });\r\n $mainRow && rowsView.scrollToElementVertically($mainRow)\r\n },\r\n _clearPreviousFocusedRow($tableElement, focusedRowIndex) {\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter((_, focusedRow) => {\r\n var $focusedRowTable = $(focusedRow).closest(\".\".concat(this.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n });\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = $(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _prepareFocusedRow(options) {\r\n var $row;\r\n var {\r\n changedItem: changedItem\r\n } = options;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var {\r\n focusedRowIndex: focusedRowIndex\r\n } = options;\r\n var {\r\n $tableElement: $tableElement\r\n } = options;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var rowsView = this.getView(\"rowsView\");\r\n $row = $(rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex)\r\n }\r\n return $row\r\n }\r\n };\r\n return members\r\n}());\r\nexport var focusModule = {\r\n defaultOptions: () => ({\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: null,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }),\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n init() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.callBase();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if (isDefined(rowIndex) && rowIndex >= 0) {\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n }\r\n if (isDefined(columnIndex) && columnIndex >= 0) {\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n }\r\n },\r\n setFocusedRowIndex(rowIndex) {\r\n this.callBase(rowIndex);\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n },\r\n setFocusedColumnIndex(columnIndex) {\r\n this.callBase(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n },\r\n _escapeKeyHandler(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n return this.callBase(eventArgs, isEditing)\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true);\r\n return true\r\n }\r\n return false\r\n },\r\n _updateFocusedCellPosition($cell, direction) {\r\n var position = this.callBase($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell)\r\n }\r\n }\r\n },\r\n editorFactory: {\r\n renderFocusOverlay($element, isHideBorder) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var editingController = this.getController(\"editing\");\r\n var $cell;\r\n if (!focusedRowEnabled || !(null === keyboardController || void 0 === keyboardController ? void 0 : keyboardController.isRowFocusType()) || editingController.isEditing()) {\r\n this.callBase($element, isHideBorder)\r\n } else if (focusedRowEnabled) {\r\n var isRowElement = \"row\" === keyboardController._getElementType($element);\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = keyboardController.getFirstValidCellInRow($element);\r\n keyboardController.focus($cell)\r\n }\r\n }\r\n }\r\n },\r\n columns: {\r\n getSortDataSourceParameters(_, sortByKey) {\r\n var result = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var dataSource = dataController._dataSource;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !remoteOperations[operationName]);\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this.getController(\"focus\").isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(key => !this.columnOption(key, \"sortOrder\"));\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(notSortedKey => result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n }))\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n data: {\r\n _applyChange(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged(e) {\r\n this.callBase(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this._updateFocusedRow(e)\r\n } else if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n } else if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n this._updateFocusedRow(e)\r\n }\r\n }\r\n },\r\n _updatePageIndexes() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n },\r\n isPagingByRendering() {\r\n return this._isPagingByRendering\r\n },\r\n _updateFocusedRow(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var focusController = this.getController(\"focus\");\r\n var {\r\n reload: reload,\r\n fullReload: fullReload,\r\n pageIndex: pageIndex,\r\n paging: paging\r\n } = operationTypes;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isVirtualScrolling = keyboardController._isVirtualScrolling();\r\n var pagingWithoutVirtualScrolling = paging && !isVirtualScrolling;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = focusController.isAutoNavigateToFocusedRow();\r\n var isReload = reload && false === pageIndex;\r\n if (isReload && !fullReload && isDefined(focusedRowKey)) {\r\n focusController._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (focusedRowIndex < 0) {\r\n focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n })\r\n } else if (pagingWithoutVirtualScrolling && isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var isValidFocusedRowIndex = focusedRowIndex >= 0;\r\n var isSameRowIndex = focusedRowIndex === rowIndexByKey;\r\n if (isValidFocusedRowIndex && (isSameRowIndex || !isValidRowIndexByKey)) {\r\n focusController._focusRowByIndex(focusedRowIndex, operationTypes)\r\n }\r\n } else if (pagingWithoutVirtualScrolling && !isAutoNavigate && this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n } else if (operationTypes.fullReload) {\r\n focusController._focusRowByKeyOrIndex()\r\n }\r\n },\r\n getPageIndexByKey(key) {\r\n var that = this;\r\n var d = new Deferred;\r\n that.getGlobalRowIndexByKey(key).done(globalIndex => {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getGlobalRowIndexByKey(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n },\r\n _calculateGlobalRowIndexByFlatData(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (Array.isArray(key) || isNewRowTempKey(key)) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done(data => {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done((_, extra) => {\r\n deferred.resolve(extra.totalCount)\r\n })\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n });\r\n return deferred.promise()\r\n },\r\n _concatWithCombinedFilter(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return gridCoreUtils.combineFilters([filter, combinedFilter, groupFilter])\r\n },\r\n _generateBooleanFilter(selector, value, sortInfo) {\r\n var {\r\n desc: desc\r\n } = sortInfo;\r\n switch (true) {\r\n case false === value && desc:\r\n return [selector, \"=\", true];\r\n case false === value && !desc:\r\n return [selector, \"=\", null];\r\n case true === value && !desc:\r\n case !isBoolean(value) && desc:\r\n return [selector, \"<>\", value];\r\n default:\r\n return\r\n }\r\n },\r\n _generateOperationFilterByKey(key, rowData, useGroup) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var isRemoteFiltering = that._dataSource.remoteOperations().filtering;\r\n var isRemoteSorting = that._dataSource.remoteOperations().sorting;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!isRemoteFiltering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!isRemoteFiltering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach(sortInfo => {\r\n var {\r\n selector: selector,\r\n desc: desc,\r\n compare: compare\r\n } = sortInfo;\r\n var {\r\n getter: getter,\r\n rawValue: rawValue,\r\n safeValue: safeValue\r\n } = UiGridCoreFocusUtils.getSortFilterValue(sortInfo, rowData, {\r\n isRemoteFiltering: isRemoteFiltering,\r\n dateSerializationFormat: dateSerializationFormat,\r\n getSelector: selector => that._columnsController.columnOption(selector, \"selector\")\r\n });\r\n filter = [\r\n [selector, \"=\", safeValue], \"and\", filter\r\n ];\r\n if (null === rawValue || isBoolean(rawValue)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, safeValue, desc);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = desc ? \">\" : \"<\";\r\n var sortFilter;\r\n if (compare && !isRemoteSorting) {\r\n sortFilter = data => {\r\n if (\"<\" === filterOperation) {\r\n return compare(rawValue, getter(data)) >= 1\r\n }\r\n return compare(rawValue, getter(data)) <= -1\r\n }\r\n } else {\r\n sortFilter = [selector, filterOperation, safeValue];\r\n if (!desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n })\r\n }\r\n return filter\r\n },\r\n _generateFilterByKey(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n },\r\n _getLastItemIndex() {\r\n return this.items(true).length - 1\r\n }\r\n },\r\n editing: {\r\n _deleteRowCore(rowIndex) {\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var rowKey = dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(() => {\r\n var rowIndex = dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = dataController.getVisibleRows();\r\n if (-1 === rowIndex && !visibleRows.length) {\r\n this.getController(\"focus\")._resetFocusedRow()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this.getController(\"focus\").isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n },\r\n _checkRowKeys(options) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n },\r\n _update(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getController(\"focus\").updateFocusedRow(change)\r\n }\r\n } else {\r\n this.callBase(change)\r\n }\r\n },\r\n updateFocusElementTabIndex($cellElements, preventScroll) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n this.callBase($cellElements)\r\n }\r\n },\r\n _setFocusedRowElementTabIndex(preventScroll) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var rowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n if (!isDefined(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = () => {\r\n this.scrollToElementVertically(this._findRowElementForTabIndex());\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this.getController(\"keyboardNavigation\").setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this.getController(\"focus\").isAutoNavigateToFocusedRow()) {\r\n var dataSource = dataController.dataSource();\r\n var operationTypes = dataSource && dataSource.operationTypes();\r\n if (operationTypes && !operationTypes.paging && !dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n },\r\n _findRowElementForTabIndex() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return $(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n },\r\n scrollToRowElement(key) {\r\n var rowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var $row = $(this.getRow(rowIndex));\r\n return this.scrollToElementVertically($row)\r\n },\r\n scrollToElementVertically($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable && $row.length) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n return this.scrollTopPosition(position)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n scrollTopPosition(scrollTop) {\r\n var d = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var currentScrollTop = scrollable.scrollTop();\r\n var scrollHandler = () => {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n d.resolve()\r\n };\r\n if (scrollTop !== currentScrollTop) {\r\n scrollable.on(\"scroll\", scrollHandler);\r\n this._dataController.resetFilterApplying();\r\n scrollable.scrollTo({\r\n top: scrollTop\r\n });\r\n return d.promise()\r\n }\r\n }\r\n return d.resolve()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/focus/m_focus.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n focusModule\r\n} from \"../../../grids/grid_core/focus/m_focus\";\r\nimport gridCore from \"../m_core\";\r\nimport {\r\n createGroupFilter\r\n} from \"../m_utils\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\ngridCore.registerModule(\"focus\", extend(true, {}, focusModule, {\r\n extenders: {\r\n controllers: {\r\n data: Base => class extends(Base.inherit(focusModule.extenders.controllers.data)) {\r\n changeRowExpand(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n if ((!isRowClick || !keyboardNavigation.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return super.changeRowExpand(path, isRowClick)\r\n }\r\n _isFocusedRowInsideGroup(path) {\r\n var columnsController = this.getController(\"columns\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var groups = columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = compileGetter(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _getGroupPath(groupItem, groupCount) {\r\n var groupPath = [];\r\n var items = [groupItem];\r\n while (items && items[0] && groupCount) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items;\r\n groupCount--\r\n }\r\n return groupPath\r\n }\r\n _expandGroupByPath(that, groupPath, level) {\r\n var d = new Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done(() => {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n _calculateGlobalRowIndexByGroupedData(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done(data => {\r\n if (!data || 0 === data.length || !isDefined(data[0].key) || -1 === data[0].key) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0], group.length);\r\n that._expandGroupByPath(that, groupPath, 0).done(() => {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n _calculateExpandedRowGlobalIndex(deferred, key, groupPath, group) {\r\n var groupFilter = createGroupFilter(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, (groupInfo, totalOffset) => {\r\n if (equalByValue(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n });\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done(dataOffset => {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n }).fail(deferred.reject)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/m_sortable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport Draggable from \"./m_draggable\";\r\nvar window = getWindow();\r\nvar SORTABLE = \"dxSortable\";\r\nvar PLACEHOLDER_CLASS = \"placeholder\";\r\nvar CLONE_CLASS = \"clone\";\r\nvar isElementVisible = itemElement => $(itemElement).is(\":visible\");\r\nvar animate = (element, config) => {\r\n var _a, _b;\r\n if (!element) {\r\n return\r\n }\r\n var left = (null === (_a = config.to) || void 0 === _a ? void 0 : _a.left) || 0;\r\n var top = (null === (_b = config.to) || void 0 === _b ? void 0 : _b.top) || 0;\r\n element.style.transform = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\r\n element.style.transition = fx.off ? \"\" : \"transform \".concat(config.duration, \"ms \").concat(config.easing)\r\n};\r\nvar stopAnimation = element => {\r\n if (!element) {\r\n return\r\n }\r\n element.style.transform = \"\";\r\n element.style.transition = \"\"\r\n};\r\n\r\nfunction getScrollableBoundary($scrollable) {\r\n var offset = $scrollable.offset();\r\n var {\r\n style: style\r\n } = $scrollable[0];\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var paddingRight = parseFloat(style.paddingRight) || 0;\r\n var paddingTop = parseFloat(style.paddingTop) || 0;\r\n var width = $scrollable[0].clientWidth - (paddingLeft + paddingRight);\r\n var height = getHeight($scrollable);\r\n var left = offset.left + paddingLeft;\r\n var top = offset.top + paddingTop;\r\n return {\r\n left: left,\r\n right: left + width,\r\n top: top,\r\n bottom: top + height\r\n }\r\n}\r\nvar Sortable = Draggable.inherit({\r\n _init() {\r\n this.callBase();\r\n this._sourceScrollHandler = this._handleSourceScroll.bind(this);\r\n this._sourceScrollableInfo = null\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n clone: true,\r\n filter: \"> *\",\r\n itemOrientation: \"vertical\",\r\n dropFeedbackMode: \"push\",\r\n allowDropInsideItem: false,\r\n allowReordering: true,\r\n moveItemOnDrop: false,\r\n onDragChange: null,\r\n onAdd: null,\r\n onRemove: null,\r\n onReorder: null,\r\n onPlaceholderPrepared: null,\r\n animation: {\r\n type: \"slide\",\r\n duration: 300,\r\n easing: \"ease\"\r\n },\r\n fromIndex: null,\r\n toIndex: null,\r\n dropInsideItem: false,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n offset: 0,\r\n autoUpdate: false,\r\n draggableElementSize: 0\r\n })\r\n },\r\n reset() {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null,\r\n fromIndex: null,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n draggableElementSize: 0\r\n });\r\n if (this._$placeholderElement) {\r\n this._$placeholderElement.remove()\r\n }\r\n this._$placeholderElement = null;\r\n if (!this._isIndicateMode() && this._$modifiedItem) {\r\n this._$modifiedItem.css(\"marginBottom\", this._modifiedItemMargin);\r\n this._$modifiedItem = null\r\n }\r\n },\r\n _getPrevVisibleItem: (items, index) => items.slice(0, index).reverse().filter(isElementVisible)[0],\r\n _dragStartHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (true === e.cancel) {\r\n return\r\n }\r\n var $sourceElement = this._getSourceElement();\r\n this._updateItemPoints();\r\n this._subscribeToSourceScroll(e);\r\n this.option(\"fromIndex\", this._getElementIndex($sourceElement));\r\n this.option(\"fromIndexOffset\", this.option(\"offset\"))\r\n },\r\n _subscribeToSourceScroll(e) {\r\n var $scrollable = this._getScrollable($(e.target));\r\n if ($scrollable) {\r\n this._sourceScrollableInfo = {\r\n element: $scrollable,\r\n scrollLeft: $scrollable.scrollLeft(),\r\n scrollTop: $scrollable.scrollTop()\r\n };\r\n eventsEngine.off($scrollable, \"scroll\", this._sourceScrollHandler);\r\n eventsEngine.on($scrollable, \"scroll\", this._sourceScrollHandler)\r\n }\r\n },\r\n _unsubscribeFromSourceScroll() {\r\n if (this._sourceScrollableInfo) {\r\n eventsEngine.off(this._sourceScrollableInfo.element, \"scroll\", this._sourceScrollHandler);\r\n this._sourceScrollableInfo = null\r\n }\r\n },\r\n _handleSourceScroll(e) {\r\n var sourceScrollableInfo = this._sourceScrollableInfo;\r\n if (sourceScrollableInfo) {\r\n [\"scrollLeft\", \"scrollTop\"].forEach(scrollProp => {\r\n if (e.target[scrollProp] !== sourceScrollableInfo[scrollProp]) {\r\n var scrollBy = e.target[scrollProp] - sourceScrollableInfo[scrollProp];\r\n this._correctItemPoints(scrollBy);\r\n this._movePlaceholder();\r\n sourceScrollableInfo[scrollProp] = e.target[scrollProp]\r\n }\r\n })\r\n }\r\n },\r\n _dragEnterHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (this === this._getSourceDraggable()) {\r\n return\r\n }\r\n this._subscribeToSourceScroll(e);\r\n this._updateItemPoints();\r\n this.option(\"fromIndex\", -1);\r\n if (!this._isIndicateMode()) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n var lastItemPoint = itemPoints[itemPoints.length - 1];\r\n if (lastItemPoint) {\r\n var $element = this.$element();\r\n var $sourceElement = this._getSourceElement();\r\n var isVertical = this._isVerticalOrientation();\r\n var sourceElementSize = isVertical ? getOuterHeight($sourceElement, true) : getOuterWidth($sourceElement, true);\r\n var scrollSize = $element.get(0)[isVertical ? \"scrollHeight\" : \"scrollWidth\"];\r\n var scrollPosition = $element.get(0)[isVertical ? \"scrollTop\" : \"scrollLeft\"];\r\n var positionProp = isVertical ? \"top\" : \"left\";\r\n var lastPointPosition = lastItemPoint[positionProp];\r\n var elementPosition = $element.offset()[positionProp];\r\n var freeSize = elementPosition + scrollSize - scrollPosition - lastPointPosition;\r\n if (freeSize < sourceElementSize) {\r\n if (isVertical) {\r\n var items = this._getItems();\r\n var $lastItem = $(this._getPrevVisibleItem(items));\r\n this._$modifiedItem = $lastItem;\r\n this._modifiedItemMargin = $lastItem.get(0).style.marginBottom;\r\n $lastItem.css(\"marginBottom\", sourceElementSize - freeSize);\r\n var $sortable = $lastItem.closest(\".dx-sortable\");\r\n var sortable = $sortable.data(\"dxScrollable\") || $sortable.data(\"dxScrollView\");\r\n sortable && sortable.update()\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _dragLeaveHandler() {\r\n this.callBase.apply(this, arguments);\r\n if (this !== this._getSourceDraggable()) {\r\n this._unsubscribeFromSourceScroll()\r\n }\r\n },\r\n dragEnter() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", -1)\r\n }\r\n },\r\n dragLeave() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", this.option(\"fromIndex\"))\r\n }\r\n },\r\n _allowDrop(event) {\r\n var targetDraggable = this._getTargetDraggable();\r\n var $targetDraggable = targetDraggable.$element();\r\n var $scrollable = this._getScrollable($targetDraggable);\r\n if ($scrollable) {\r\n var {\r\n left: left,\r\n right: right,\r\n top: top,\r\n bottom: bottom\r\n } = getScrollableBoundary($scrollable);\r\n var toIndex = this.option(\"toIndex\");\r\n var itemPoints = this.option(\"itemPoints\");\r\n var itemPoint = null === itemPoints || void 0 === itemPoints ? void 0 : itemPoints.filter(item => item.index === toIndex)[0];\r\n if (itemPoint && void 0 !== itemPoint.top) {\r\n var isVertical = this._isVerticalOrientation();\r\n if (isVertical) {\r\n return top <= Math.ceil(itemPoint.top) && Math.floor(itemPoint.top) <= bottom\r\n }\r\n return left <= Math.ceil(itemPoint.left) && Math.floor(itemPoint.left) <= right\r\n }\r\n }\r\n return true\r\n },\r\n dragEnd(sourceEvent) {\r\n this._unsubscribeFromSourceScroll();\r\n var $sourceElement = this._getSourceElement();\r\n var sourceDraggable = this._getSourceDraggable();\r\n var isSourceDraggable = sourceDraggable.NAME !== this.NAME;\r\n var toIndex = this.option(\"toIndex\");\r\n var {\r\n event: event\r\n } = sourceEvent;\r\n var allowDrop = this._allowDrop(event);\r\n if (null !== toIndex && toIndex >= 0 && allowDrop) {\r\n var cancelAdd;\r\n var cancelRemove;\r\n if (sourceDraggable !== this) {\r\n cancelAdd = this._fireAddEvent(event);\r\n if (!cancelAdd) {\r\n cancelRemove = this._fireRemoveEvent(event)\r\n }\r\n }\r\n if (isSourceDraggable) {\r\n resetPosition($sourceElement)\r\n }\r\n if (this.option(\"moveItemOnDrop\")) {\r\n !cancelAdd && this._moveItem($sourceElement, toIndex, cancelRemove)\r\n }\r\n if (sourceDraggable === this) {\r\n return this._fireReorderEvent(event)\r\n }\r\n }\r\n return Deferred().resolve()\r\n },\r\n dragMove(e) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (!itemPoints) {\r\n return\r\n }\r\n var isVertical = this._isVerticalOrientation();\r\n var axisName = isVertical ? \"top\" : \"left\";\r\n var cursorPosition = isVertical ? e.pageY : e.pageX;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var itemPoint;\r\n for (var i = itemPoints.length - 1; i >= 0; i--) {\r\n var centerPosition = itemPoints[i + 1] && (itemPoints[i][axisName] + itemPoints[i + 1][axisName]) / 2;\r\n if ((!isVertical && rtlEnabled ? cursorPosition > centerPosition : centerPosition > cursorPosition) || void 0 === centerPosition) {\r\n itemPoint = itemPoints[i]\r\n } else {\r\n break\r\n }\r\n }\r\n if (itemPoint) {\r\n this._updatePlaceholderPosition(e, itemPoint);\r\n if (this._verticalScrollHelper.isScrolling() && this._isIndicateMode()) {\r\n this._movePlaceholder()\r\n }\r\n }\r\n },\r\n _isIndicateMode() {\r\n return \"indicate\" === this.option(\"dropFeedbackMode\") || this.option(\"allowDropInsideItem\")\r\n },\r\n _createPlaceholder() {\r\n var $placeholderContainer;\r\n if (this._isIndicateMode()) {\r\n $placeholderContainer = $(\"<div>\").addClass(this._addWidgetPrefix(PLACEHOLDER_CLASS)).insertBefore(this._getSourceDraggable()._$dragElement)\r\n }\r\n this._$placeholderElement = $placeholderContainer;\r\n return $placeholderContainer\r\n },\r\n _getItems() {\r\n var itemsSelector = this._getItemsSelector();\r\n return this._$content().find(itemsSelector).not(\".\".concat(this._addWidgetPrefix(PLACEHOLDER_CLASS))).not(\".\".concat(this._addWidgetPrefix(CLONE_CLASS))).toArray()\r\n },\r\n _allowReordering() {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return sourceDraggable !== targetDraggable || this.option(\"allowReordering\")\r\n },\r\n _isValidPoint(visibleIndex, draggableVisibleIndex, dropInsideItem) {\r\n var allowDropInsideItem = this.option(\"allowDropInsideItem\");\r\n var allowReordering = dropInsideItem || this._allowReordering();\r\n if (!allowReordering && (0 !== visibleIndex || !allowDropInsideItem)) {\r\n return false\r\n }\r\n if (!this._isIndicateMode()) {\r\n return true\r\n }\r\n return -1 === draggableVisibleIndex || visibleIndex !== draggableVisibleIndex && (dropInsideItem || visibleIndex !== draggableVisibleIndex + 1)\r\n },\r\n _getItemPoints() {\r\n var result = [];\r\n var $item;\r\n var offset;\r\n var itemWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVertical = this._isVerticalOrientation();\r\n var itemElements = this._getItems();\r\n var visibleItemElements = itemElements.filter(isElementVisible);\r\n var visibleItemCount = visibleItemElements.length;\r\n var $draggableItem = this._getDraggableElement();\r\n var draggableVisibleIndex = visibleItemElements.indexOf($draggableItem.get(0));\r\n if (visibleItemCount) {\r\n for (var i = 0; i <= visibleItemCount; i++) {\r\n var needCorrectLeftPosition = !isVertical && rtlEnabled ^ i === visibleItemCount;\r\n var needCorrectTopPosition = isVertical && i === visibleItemCount;\r\n if (i < visibleItemCount) {\r\n $item = $(visibleItemElements[i]);\r\n offset = $item.offset();\r\n itemWidth = getOuterWidth($item)\r\n }\r\n result.push({\r\n dropInsideItem: false,\r\n left: offset.left + (needCorrectLeftPosition ? itemWidth : 0),\r\n top: offset.top + (needCorrectTopPosition ? result[i - 1].height : 0),\r\n index: i === visibleItemCount ? itemElements.length : itemElements.indexOf($item.get(0)),\r\n $item: $item,\r\n width: getOuterWidth($item),\r\n height: getOuterHeight($item),\r\n isValid: this._isValidPoint(i, draggableVisibleIndex)\r\n })\r\n }\r\n if (this.option(\"allowDropInsideItem\")) {\r\n var points = result;\r\n result = [];\r\n for (var _i = 0; _i < points.length; _i++) {\r\n result.push(points[_i]);\r\n if (points[_i + 1]) {\r\n result.push(extend({}, points[_i], {\r\n dropInsideItem: true,\r\n top: Math.floor((points[_i].top + points[_i + 1].top) / 2),\r\n left: Math.floor((points[_i].left + points[_i + 1].left) / 2),\r\n isValid: this._isValidPoint(_i, draggableVisibleIndex, true)\r\n }))\r\n }\r\n }\r\n }\r\n } else {\r\n result.push({\r\n dropInsideItem: false,\r\n index: 0,\r\n isValid: true\r\n })\r\n }\r\n return result\r\n },\r\n _updateItemPoints(forceUpdate) {\r\n if (forceUpdate || this.option(\"autoUpdate\") || !this.option(\"itemPoints\")) {\r\n this.option(\"itemPoints\", this._getItemPoints())\r\n }\r\n },\r\n _correctItemPoints(scrollBy) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (scrollBy && itemPoints && !this.option(\"autoUpdate\")) {\r\n var isVertical = this._isVerticalOrientation();\r\n var positionPropName = isVertical ? \"top\" : \"left\";\r\n itemPoints.forEach(itemPoint => {\r\n itemPoint[positionPropName] -= scrollBy\r\n })\r\n }\r\n },\r\n _getElementIndex($itemElement) {\r\n return this._getItems().indexOf($itemElement.get(0))\r\n },\r\n _getDragTemplateArgs($element) {\r\n var args = this.callBase.apply(this, arguments);\r\n args.model.fromIndex = this._getElementIndex($element);\r\n return args\r\n },\r\n _togglePlaceholder(value) {\r\n this._$placeholderElement && this._$placeholderElement.toggle(value)\r\n },\r\n _isVerticalOrientation() {\r\n return \"vertical\" === this.option(\"itemOrientation\")\r\n },\r\n _normalizeToIndex(toIndex, skipOffsetting) {\r\n var isAnotherDraggable = this._getSourceDraggable() !== this._getTargetDraggable();\r\n var fromIndex = this._getActualFromIndex();\r\n if (null === toIndex) {\r\n return fromIndex\r\n }\r\n return Math.max(isAnotherDraggable || fromIndex >= toIndex || skipOffsetting ? toIndex : toIndex - 1, 0)\r\n },\r\n _updatePlaceholderPosition(e, itemPoint) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var toIndex = this._normalizeToIndex(itemPoint.index, itemPoint.dropInsideItem);\r\n var eventArgs = extend(this._getEventArgs(e), {\r\n toIndex: toIndex,\r\n dropInsideItem: itemPoint.dropInsideItem\r\n });\r\n itemPoint.isValid && this._getAction(\"onDragChange\")(eventArgs);\r\n if (eventArgs.cancel || !itemPoint.isValid) {\r\n if (!itemPoint.isValid) {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null\r\n })\r\n }\r\n return\r\n }\r\n this.option({\r\n dropInsideItem: itemPoint.dropInsideItem,\r\n toIndex: itemPoint.index\r\n });\r\n this._getAction(\"onPlaceholderPrepared\")(extend(this._getEventArgs(e), {\r\n placeholderElement: getPublicElement(this._$placeholderElement),\r\n dragElement: getPublicElement(sourceDraggable._$dragElement)\r\n }));\r\n this._updateItemPoints()\r\n },\r\n _makeWidthCorrection($item, width) {\r\n this._$scrollable = this._getScrollable($item);\r\n if (this._$scrollable) {\r\n var scrollableWidth = getWidth(this._$scrollable);\r\n var overflowLeft = this._$scrollable.offset().left - $item.offset().left;\r\n var overflowRight = getOuterWidth($item) - overflowLeft - scrollableWidth;\r\n if (overflowLeft > 0) {\r\n width -= overflowLeft\r\n }\r\n if (overflowRight > 0) {\r\n width -= overflowRight\r\n }\r\n }\r\n return width\r\n },\r\n _updatePlaceholderSizes($placeholderElement, itemElement) {\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var $item = $(itemElement);\r\n var isVertical = this._isVerticalOrientation();\r\n var width = \"\";\r\n var height = \"\";\r\n $placeholderElement.toggleClass(this._addWidgetPrefix(\"placeholder-inside\"), dropInsideItem);\r\n if (isVertical || dropInsideItem) {\r\n width = getOuterWidth($item)\r\n }\r\n if (!isVertical || dropInsideItem) {\r\n height = getOuterHeight($item)\r\n }\r\n width = this._makeWidthCorrection($item, width);\r\n $placeholderElement.css({\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _moveItem($itemElement, index, cancelRemove) {\r\n var $prevTargetItemElement;\r\n var $itemElements = this._getItems();\r\n var $targetItemElement = $itemElements[index];\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (cancelRemove) {\r\n $itemElement = $itemElement.clone();\r\n sourceDraggable._toggleDragSourceClass(false, $itemElement)\r\n }\r\n if (!$targetItemElement) {\r\n $prevTargetItemElement = $itemElements[index - 1]\r\n }\r\n this._moveItemCore($itemElement, $targetItemElement, $prevTargetItemElement)\r\n },\r\n _moveItemCore($targetItem, item, prevItem) {\r\n if (!item && !prevItem) {\r\n $targetItem.appendTo(this.$element())\r\n } else if (prevItem) {\r\n $targetItem.insertAfter($(prevItem))\r\n } else {\r\n $targetItem.insertBefore($(item))\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: this._getElementIndex($itemElement)\r\n })\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n var dropInsideItem = targetDraggable.option(\"dropInsideItem\");\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: sourceDraggable.option(\"fromIndex\"),\r\n toIndex: this._normalizeToIndex(targetDraggable.option(\"toIndex\"), dropInsideItem),\r\n dropInsideItem: dropInsideItem\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragChange\":\r\n case \"onPlaceholderPrepared\":\r\n case \"onAdd\":\r\n case \"onRemove\":\r\n case \"onReorder\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"itemOrientation\":\r\n case \"allowDropInsideItem\":\r\n case \"moveItemOnDrop\":\r\n case \"dropFeedbackMode\":\r\n case \"itemPoints\":\r\n case \"animation\":\r\n case \"allowReordering\":\r\n case \"fromIndexOffset\":\r\n case \"offset\":\r\n case \"draggableElementSize\":\r\n case \"autoUpdate\":\r\n break;\r\n case \"fromIndex\":\r\n [false, true].forEach(isDragSource => {\r\n var fromIndex = isDragSource ? args.value : args.previousValue;\r\n if (null !== fromIndex) {\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n this._toggleDragSourceClass(isDragSource, $fromElement)\r\n }\r\n });\r\n break;\r\n case \"dropInsideItem\":\r\n this._optionChangedDropInsideItem(args);\r\n break;\r\n case \"toIndex\":\r\n this._optionChangedToIndex(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _optionChangedDropInsideItem() {\r\n if (this._isIndicateMode() && this._$placeholderElement) {\r\n this._movePlaceholder()\r\n }\r\n },\r\n _isPositionVisible(position) {\r\n var $element = this.$element();\r\n var scrollContainer;\r\n if (\"hidden\" !== $element.css(\"overflow\")) {\r\n scrollContainer = $element.get(0)\r\n } else {\r\n $element.parents().each((function() {\r\n if (\"visible\" !== $(this).css(\"overflow\")) {\r\n scrollContainer = this;\r\n return false\r\n }\r\n return\r\n }))\r\n }\r\n if (scrollContainer) {\r\n var clientRect = getBoundingRect(scrollContainer);\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var start = isVerticalOrientation ? \"top\" : \"left\";\r\n var end = isVerticalOrientation ? \"bottom\" : \"right\";\r\n var pageOffset = isVerticalOrientation ? window.pageYOffset : window.pageXOffset;\r\n if (position[start] < clientRect[start] + pageOffset || position[start] > clientRect[end] + pageOffset) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _optionChangedToIndex(args) {\r\n var toIndex = args.value;\r\n if (this._isIndicateMode()) {\r\n var showPlaceholder = null !== toIndex && toIndex >= 0;\r\n this._togglePlaceholder(showPlaceholder);\r\n if (showPlaceholder) {\r\n this._movePlaceholder()\r\n }\r\n } else {\r\n this._moveItems(args.previousValue, args.value, args.fullUpdate)\r\n }\r\n },\r\n update() {\r\n if (null === this.option(\"fromIndex\") && null === this.option(\"toIndex\")) {\r\n return\r\n }\r\n this._updateItemPoints(true);\r\n this._updateDragSourceClass();\r\n var toIndex = this.option(\"toIndex\");\r\n this._optionChangedToIndex({\r\n value: toIndex,\r\n fullUpdate: true\r\n })\r\n },\r\n _updateDragSourceClass() {\r\n var fromIndex = this._getActualFromIndex();\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n if ($fromElement.length) {\r\n this._$sourceElement = $fromElement;\r\n this._toggleDragSourceClass(true, $fromElement)\r\n }\r\n },\r\n _makeLeftCorrection(left) {\r\n var $scrollable = this._$scrollable;\r\n if ($scrollable && this._isVerticalOrientation()) {\r\n var overflowLeft = $scrollable.offset().left - left;\r\n if (overflowLeft > 0) {\r\n left += overflowLeft\r\n }\r\n }\r\n return left\r\n },\r\n _movePlaceholder() {\r\n var $placeholderElement = this._$placeholderElement || this._createPlaceholder();\r\n if (!$placeholderElement) {\r\n return\r\n }\r\n var items = this._getItems();\r\n var toIndex = this.option(\"toIndex\");\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var position = null;\r\n var itemElement = items[toIndex];\r\n if (itemElement) {\r\n var $itemElement = $(itemElement);\r\n position = $itemElement.offset();\r\n if (!isVerticalOrientation && rtlEnabled && !dropInsideItem) {\r\n position.left += getOuterWidth($itemElement, true)\r\n }\r\n } else {\r\n var prevVisibleItemElement = itemElement = this._getPrevVisibleItem(items, toIndex);\r\n if (prevVisibleItemElement) {\r\n position = $(prevVisibleItemElement).offset();\r\n if (isVerticalOrientation) {\r\n position.top += getOuterHeight(prevVisibleItemElement, true)\r\n } else if (!rtlEnabled) {\r\n position.left += getOuterWidth(prevVisibleItemElement, true)\r\n }\r\n }\r\n }\r\n this._updatePlaceholderSizes($placeholderElement, itemElement);\r\n if (position && !this._isPositionVisible(position)) {\r\n position = null\r\n }\r\n if (position) {\r\n var isLastVerticalPosition = isVerticalOrientation && toIndex === items.length;\r\n var outerPlaceholderHeight = getOuterHeight($placeholderElement);\r\n position.left = this._makeLeftCorrection(position.left);\r\n position.top = isLastVerticalPosition && position.top >= outerPlaceholderHeight ? position.top - outerPlaceholderHeight : position.top;\r\n this._move(position, $placeholderElement)\r\n }\r\n $placeholderElement.toggle(!!position)\r\n },\r\n _getPositions(items, elementSize, fromIndex, toIndex) {\r\n var positions = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var position = 0;\r\n if (null === toIndex || null === fromIndex) {\r\n positions.push(position);\r\n continue\r\n }\r\n if (-1 === fromIndex) {\r\n if (i >= toIndex) {\r\n position = elementSize\r\n }\r\n } else if (-1 === toIndex) {\r\n if (i > fromIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex < toIndex) {\r\n if (i > fromIndex && i < toIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex > toIndex) {\r\n if (i >= toIndex && i < fromIndex) {\r\n position = elementSize\r\n }\r\n }\r\n positions.push(position)\r\n }\r\n return positions\r\n },\r\n _getDraggableElementSize(isVerticalOrientation) {\r\n var $draggableItem = this._getDraggableElement();\r\n var size = this.option(\"draggableElementSize\");\r\n if (!size) {\r\n size = isVerticalOrientation ? (getOuterHeight($draggableItem) + getOuterHeight($draggableItem, true)) / 2 : (getOuterWidth($draggableItem) + getOuterWidth($draggableItem, true)) / 2;\r\n if (!this.option(\"autoUpdate\")) {\r\n this.option(\"draggableElementSize\", size)\r\n }\r\n }\r\n return size\r\n },\r\n _getActualFromIndex() {\r\n var {\r\n fromIndex: fromIndex,\r\n fromIndexOffset: fromIndexOffset,\r\n offset: offset\r\n } = this.option();\r\n return null == fromIndex ? null : fromIndex + fromIndexOffset - offset\r\n },\r\n _moveItems(prevToIndex, toIndex, fullUpdate) {\r\n var fromIndex = this._getActualFromIndex();\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var positionPropName = isVerticalOrientation ? \"top\" : \"left\";\r\n var elementSize = this._getDraggableElementSize(isVerticalOrientation);\r\n var items = this._getItems();\r\n var prevPositions = this._getPositions(items, elementSize, fromIndex, prevToIndex);\r\n var positions = this._getPositions(items, elementSize, fromIndex, toIndex);\r\n var animationConfig = this.option(\"animation\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n for (var i = 0; i < items.length; i++) {\r\n var itemElement = items[i];\r\n var prevPosition = prevPositions[i];\r\n var position = positions[i];\r\n if (null === toIndex || null === fromIndex) {\r\n stopAnimation(itemElement)\r\n } else if (prevPosition !== position || fullUpdate && position) {\r\n animate(itemElement, extend({}, animationConfig, {\r\n to: {\r\n [positionPropName]: !isVerticalOrientation && rtlEnabled ? -position : position\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n this.callBase.apply(this, arguments);\r\n if (!this._isIndicateMode()) {\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source-hidden\"), value)\r\n }\r\n },\r\n _dispose() {\r\n this.reset();\r\n this.callBase()\r\n },\r\n _fireAddEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onAdd\")(args);\r\n return args.cancel\r\n },\r\n _fireRemoveEvent(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var args = this._getEventArgs(sourceEvent);\r\n sourceDraggable._getAction(\"onRemove\")(args);\r\n return args.cancel\r\n },\r\n _fireReorderEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onReorder\")(args);\r\n return args.promise || Deferred().resolve()\r\n }\r\n});\r\nregisterComponent(SORTABLE, Sortable);\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/ui/sortable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Sortable from \"../__internal/m_sortable\";\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var ATTRIBUTES = {\r\n dragCell: \"dx-drag-cell\"\r\n};\r\nexport var CLASSES = {\r\n cellFocusDisabled: \"dx-cell-focus-disabled\",\r\n handleIcon: \"drag-icon\",\r\n commandDrag: \"dx-command-drag\",\r\n sortableWithoutHandle: \"dx-sortable-without-handle\",\r\n rowsView: \"rowsview\",\r\n dragView: \"dragview\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/../core/utils/extend\";\r\nimport {\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n getWidth,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport Sortable from \"../../../../ui/sortable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ATTRIBUTES,\r\n CLASSES\r\n} from \"./const\";\r\nimport {\r\n GridCoreRowDraggingDom\r\n} from \"./dom\";\r\nvar RowDraggingExtender = {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._updateHandleColumn()\r\n },\r\n _allowReordering() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n },\r\n _updateHandleColumn() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n null === columnsController || void 0 === columnsController ? void 0 : columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n elementAttr: [{\r\n name: ATTRIBUTES.dragCell,\r\n value: \"\"\r\n }],\r\n cssClass: CLASSES.commandDrag,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n null === columnsController || void 0 === columnsController ? void 0 : columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n },\r\n _renderContent() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = this.callBase.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var currentSortableName = isFixedTableRendering ? \"_sortableFixed\" : \"_sortable\";\r\n var anotherSortableName = isFixedTableRendering ? \"_sortable\" : \"_sortableFixed\";\r\n var togglePointerEventsStyle = toggle => {\r\n var _a;\r\n null === (_a = this._sortableFixed) || void 0 === _a ? void 0 : _a.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n var rowSelector = \".dx-row:not(.dx-freespace-row):not(.dx-virtual-row):not(.dx-header-row):not(.dx-footer-row)\";\r\n var filter = this.option(\"dataRowTemplate\") ? \"> table > tbody\".concat(rowSelector) : \"> table > tbody > \".concat(rowSelector);\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, Sortable, extend({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: filter,\r\n cursorOffset: options => {\r\n var {\r\n event: event\r\n } = options;\r\n var rowsViewOffset = $(this.element()).offset();\r\n return {\r\n x: event.pageX - rowsViewOffset.left\r\n }\r\n },\r\n onDraggableElementShown: e => {\r\n if (rowDragging.dragTemplate) {\r\n return\r\n }\r\n var $dragElement = $(e.dragElement);\r\n var gridInstance = $dragElement.children(\".dx-widget\").data(this.component.NAME);\r\n this._synchronizeScrollLeftPosition(gridInstance)\r\n },\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(CLASSES.commandDrag),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: e => {\r\n var _a, _b;\r\n null === (_a = this.getController(\"keyboardNavigation\")) || void 0 === _a ? void 0 : _a._resetFocusedCell();\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_b = rowDragging.onDragStart) || void 0 === _b ? void 0 : _b.call(rowDragging, e)\r\n },\r\n onDragEnter: () => {\r\n togglePointerEventsStyle(true)\r\n },\r\n onDragLeave: () => {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: e => {\r\n var _a;\r\n togglePointerEventsStyle(false);\r\n null === (_a = rowDragging.onDragEnd) || void 0 === _a ? void 0 : _a.call(rowDragging, e)\r\n },\r\n onAdd: e => {\r\n var _a;\r\n togglePointerEventsStyle(false);\r\n null === (_a = rowDragging.onAdd) || void 0 === _a ? void 0 : _a.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: rowDragging.dropFeedbackMode,\r\n onOptionChanged: e => {\r\n var hasFixedSortable = this._sortableFixed;\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(\"dx-scrollable-container\", isFixedTableRendering);\r\n $content.toggleClass(CLASSES.sortableWithoutHandle, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n },\r\n _renderCore(e) {\r\n this.callBase.apply(this, arguments);\r\n if (e && \"update\" === e.changeType && e.repaintChangesOnly && gridCoreUtils.isVirtualRowRendering(this)) {\r\n deferUpdate(() => {\r\n this._updateSortable()\r\n })\r\n }\r\n },\r\n _updateSortable() {\r\n var offset = this._dataController.getRowIndexOffset();\r\n var offsetDiff = offset - this._previousOffset;\r\n [this._sortable, this._sortableFixed].forEach(sortable => {\r\n var toIndex = null === sortable || void 0 === sortable ? void 0 : sortable.option(\"toIndex\");\r\n if (isDefined(toIndex) && isDefined(this._previousOffset)) {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"toIndex\", toIndex - offsetDiff)\r\n }\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n });\r\n this._previousOffset = offset\r\n },\r\n _resizeCore() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSortable()\r\n },\r\n _getDraggableGridOptions(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = $(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: \"never\"\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: null,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(column => ({\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n })),\r\n onRowPrepared: e => {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n $(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n },\r\n _synchronizeScrollLeftPosition(gridInstance) {\r\n var scrollable = null === gridInstance || void 0 === gridInstance ? void 0 : gridInstance.getScrollable();\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n },\r\n _getDraggableRowTemplate() {\r\n return options => {\r\n var $rootElement = this.component.$element();\r\n var $dataGridContainer = $(\"<div>\");\r\n setWidth($dataGridContainer, getWidth($rootElement));\r\n var items = this._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = this._getDraggableGridOptions(row);\r\n this._createComponent($dataGridContainer, this.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(this.addWidgetPrefix(CLASSES.rowsView), \")\")).hide();\r\n $dataGridContainer.addClass(this.addWidgetPrefix(CLASSES.dragView));\r\n return $dataGridContainer\r\n }\r\n },\r\n _getHandleTemplate() {\r\n return GridCoreRowDraggingDom.createHandleTemplateFunc(string => this.addWidgetPrefix(string))\r\n },\r\n optionChanged(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n};\r\nexport var rowDraggingModule = {\r\n defaultOptions: () => ({\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n rowsView: RowDraggingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/row_dragging/dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n CLASSES\r\n} from \"./const\";\r\nvar createHandleTemplateFunc = addWidgetPrefix => (container, options) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n $container.addClass(CLASSES.cellFocusDisabled);\r\n return $(\"<span>\").addClass(addWidgetPrefix(CLASSES.handleIcon))\r\n }\r\n gridCoreUtils.setEmptyText($container);\r\n return\r\n};\r\nexport var GridCoreRowDraggingDom = {\r\n createHandleTemplateFunc: createHandleTemplateFunc\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/row_dragging.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowDraggingModule\r\n} from \"../../../grids/grid_core/row_dragging/m_row_dragging\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"rowDragging\", rowDraggingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataGrid from \"./m_widget_base\";\r\nimport \"./module_not_extended/state_storing\";\r\nimport \"./module_not_extended/selection\";\r\nimport \"./module_not_extended/column_chooser\";\r\nimport \"./grouping/m_grouping\";\r\nimport \"./module_not_extended/master_detail\";\r\nimport \"./m_editing\";\r\nimport \"./module_not_extended/editing_row_based\";\r\nimport \"./module_not_extended/editing_form_based\";\r\nimport \"./module_not_extended/editing_cell_based\";\r\nimport \"./module_not_extended/validating\";\r\nimport \"./module_not_extended/virtual_scrolling\";\r\nimport \"./module_not_extended/filter_row\";\r\nimport \"./module_not_extended/header_filter\";\r\nimport \"./module_not_extended/filter_sync\";\r\nimport \"./module_not_extended/filter_builder\";\r\nimport \"./module_not_extended/filter_panel\";\r\nimport \"./module_not_extended/search\";\r\nimport \"./module_not_extended/pager\";\r\nimport \"./module_not_extended/columns_resizing_reordering\";\r\nimport \"./module_not_extended/keyboard_navigation\";\r\nimport \"./summary/m_summary\";\r\nimport \"./module_not_extended/column_fixing\";\r\nimport \"./module_not_extended/adaptivity\";\r\nimport \"./module_not_extended/virtual_columns\";\r\nimport \"./export/m_export\";\r\nimport \"./focus/m_focus\";\r\nimport \"./module_not_extended/row_dragging\";\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataGrid from \"../__internal/grids/data_grid/m_widget\";\r\nimport FilterBuilder from \"./filter_builder\";\r\nexport default DataGrid;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport 'devextreme/bundles/dx.all';\nimport DxDataGrid from 'devextreme/ui/data_grid';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiColumnComponent, DxiSortByGroupSummaryInfoComponent, DxoColumnChooserModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoSearchModule, DxoSelectionModule, DxoColumnFixingModule, DxoTextsModule, DxiColumnModule, DxiButtonModule, DxoHeaderFilterModule, DxoLookupModule, DxoFormatModule, DxoFormItemModule, DxoLabelModule, DxiValidationRuleModule, DxoEditingModule, DxiChangeModule, DxoFormModule, DxoColCountByScreenModule, DxiItemModule, DxoTabPanelOptionsModule, DxiTabModule, DxoButtonOptionsModule, DxoPopupModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxoExportModule, DxoFilterBuilderModule, DxiCustomOperationModule, DxiFieldModule, DxoFilterOperationDescriptionsModule, DxoGroupOperationDescriptionsModule, DxoFilterBuilderPopupModule, DxoFilterPanelModule, DxoFilterRowModule, DxoOperationDescriptionsModule, DxoGroupingModule, DxoGroupPanelModule, DxoKeyboardNavigationModule, DxoLoadPanelModule, DxoMasterDetailModule, DxoPagerModule, DxoPagingModule, DxoRemoteOperationsModule, DxoRowDraggingModule, DxoCursorOffsetModule, DxoScrollingModule, DxoSearchPanelModule, DxiSortByGroupSummaryInfoModule, DxoSortingModule, DxoStateStoringModule, DxoSummaryModule, DxiGroupItemModule, DxoValueFormatModule, DxiTotalItemModule, DxoToolbarModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxDataGrid]\r\n\r\n */\r\nclass DxDataGridComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'adaptiveDetailRowPreparing', emit: 'onAdaptiveDetailRowPreparing' },\r\n { subscribe: 'cellClick', emit: 'onCellClick' },\r\n { subscribe: 'cellDblClick', emit: 'onCellDblClick' },\r\n { subscribe: 'cellHoverChanged', emit: 'onCellHoverChanged' },\r\n { subscribe: 'cellPrepared', emit: 'onCellPrepared' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'dataErrorOccurred', emit: 'onDataErrorOccurred' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'editCanceled', emit: 'onEditCanceled' },\r\n { subscribe: 'editCanceling', emit: 'onEditCanceling' },\r\n { subscribe: 'editingStart', emit: 'onEditingStart' },\r\n { subscribe: 'editorPrepared', emit: 'onEditorPrepared' },\r\n { subscribe: 'editorPreparing', emit: 'onEditorPreparing' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'focusedCellChanged', emit: 'onFocusedCellChanged' },\r\n { subscribe: 'focusedCellChanging', emit: 'onFocusedCellChanging' },\r\n { subscribe: 'focusedRowChanged', emit: 'onFocusedRowChanged' },\r\n { subscribe: 'focusedRowChanging', emit: 'onFocusedRowChanging' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'initNewRow', emit: 'onInitNewRow' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'rowClick', emit: 'onRowClick' },\r\n { subscribe: 'rowCollapsed', emit: 'onRowCollapsed' },\r\n { subscribe: 'rowCollapsing', emit: 'onRowCollapsing' },\r\n { subscribe: 'rowDblClick', emit: 'onRowDblClick' },\r\n { subscribe: 'rowExpanded', emit: 'onRowExpanded' },\r\n { subscribe: 'rowExpanding', emit: 'onRowExpanding' },\r\n { subscribe: 'rowInserted', emit: 'onRowInserted' },\r\n { subscribe: 'rowInserting', emit: 'onRowInserting' },\r\n { subscribe: 'rowPrepared', emit: 'onRowPrepared' },\r\n { subscribe: 'rowRemoved', emit: 'onRowRemoved' },\r\n { subscribe: 'rowRemoving', emit: 'onRowRemoving' },\r\n { subscribe: 'rowUpdated', emit: 'onRowUpdated' },\r\n { subscribe: 'rowUpdating', emit: 'onRowUpdating' },\r\n { subscribe: 'rowValidating', emit: 'onRowValidating' },\r\n { subscribe: 'saved', emit: 'onSaved' },\r\n { subscribe: 'saving', emit: 'onSaving' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'toolbarPreparing', emit: 'onToolbarPreparing' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowColumnReorderingChange' },\r\n { emit: 'allowColumnResizingChange' },\r\n { emit: 'autoNavigateToFocusedRowChange' },\r\n { emit: 'cacheEnabledChange' },\r\n { emit: 'cellHintEnabledChange' },\r\n { emit: 'columnAutoWidthChange' },\r\n { emit: 'columnChooserChange' },\r\n { emit: 'columnFixingChange' },\r\n { emit: 'columnHidingEnabledChange' },\r\n { emit: 'columnMinWidthChange' },\r\n { emit: 'columnResizingModeChange' },\r\n { emit: 'columnsChange' },\r\n { emit: 'columnWidthChange' },\r\n { emit: 'customizeColumnsChange' },\r\n { emit: 'dataRowTemplateChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'errorRowEnabledChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'filterBuilderChange' },\r\n { emit: 'filterBuilderPopupChange' },\r\n { emit: 'filterPanelChange' },\r\n { emit: 'filterRowChange' },\r\n { emit: 'filterSyncEnabledChange' },\r\n { emit: 'filterValueChange' },\r\n { emit: 'focusedColumnIndexChange' },\r\n { emit: 'focusedRowEnabledChange' },\r\n { emit: 'focusedRowIndexChange' },\r\n { emit: 'focusedRowKeyChange' },\r\n { emit: 'groupingChange' },\r\n { emit: 'groupPanelChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'highlightChangesChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'keyboardNavigationChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'loadPanelChange' },\r\n { emit: 'masterDetailChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'pagerChange' },\r\n { emit: 'pagingChange' },\r\n { emit: 'remoteOperationsChange' },\r\n { emit: 'renderAsyncChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rowAlternationEnabledChange' },\r\n { emit: 'rowDraggingChange' },\r\n { emit: 'rowTemplateChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollingChange' },\r\n { emit: 'searchPanelChange' },\r\n { emit: 'selectedRowKeysChange' },\r\n { emit: 'selectionChange' },\r\n { emit: 'selectionFilterChange' },\r\n { emit: 'showBordersChange' },\r\n { emit: 'showColumnHeadersChange' },\r\n { emit: 'showColumnLinesChange' },\r\n { emit: 'showRowLinesChange' },\r\n { emit: 'sortByGroupSummaryInfoChange' },\r\n { emit: 'sortingChange' },\r\n { emit: 'stateStoringChange' },\r\n { emit: 'summaryChange' },\r\n { emit: 'syncLookupFilterValuesChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'twoWayBindingEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wordWrapEnabledChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.allowColumnReordering]\r\n \r\n */\r\n get allowColumnReordering() {\r\n return this._getOption('allowColumnReordering');\r\n }\r\n set allowColumnReordering(value) {\r\n this._setOption('allowColumnReordering', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.allowColumnResizing]\r\n \r\n */\r\n get allowColumnResizing() {\r\n return this._getOption('allowColumnResizing');\r\n }\r\n set allowColumnResizing(value) {\r\n this._setOption('allowColumnResizing', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.autoNavigateToFocusedRow]\r\n \r\n */\r\n get autoNavigateToFocusedRow() {\r\n return this._getOption('autoNavigateToFocusedRow');\r\n }\r\n set autoNavigateToFocusedRow(value) {\r\n this._setOption('autoNavigateToFocusedRow', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.cacheEnabled]\r\n \r\n */\r\n get cacheEnabled() {\r\n return this._getOption('cacheEnabled');\r\n }\r\n set cacheEnabled(value) {\r\n this._setOption('cacheEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.cellHintEnabled]\r\n \r\n */\r\n get cellHintEnabled() {\r\n return this._getOption('cellHintEnabled');\r\n }\r\n set cellHintEnabled(value) {\r\n this._setOption('cellHintEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnAutoWidth]\r\n \r\n */\r\n get columnAutoWidth() {\r\n return this._getOption('columnAutoWidth');\r\n }\r\n set columnAutoWidth(value) {\r\n this._setOption('columnAutoWidth', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnChooser]\r\n \r\n */\r\n get columnChooser() {\r\n return this._getOption('columnChooser');\r\n }\r\n set columnChooser(value) {\r\n this._setOption('columnChooser', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnFixing]\r\n \r\n */\r\n get columnFixing() {\r\n return this._getOption('columnFixing');\r\n }\r\n set columnFixing(value) {\r\n this._setOption('columnFixing', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnHidingEnabled]\r\n \r\n */\r\n get columnHidingEnabled() {\r\n return this._getOption('columnHidingEnabled');\r\n }\r\n set columnHidingEnabled(value) {\r\n this._setOption('columnHidingEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnMinWidth]\r\n \r\n */\r\n get columnMinWidth() {\r\n return this._getOption('columnMinWidth');\r\n }\r\n set columnMinWidth(value) {\r\n this._setOption('columnMinWidth', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnResizingMode]\r\n \r\n */\r\n get columnResizingMode() {\r\n return this._getOption('columnResizingMode');\r\n }\r\n set columnResizingMode(value) {\r\n this._setOption('columnResizingMode', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.columns]\r\n \r\n */\r\n get columns() {\r\n return this._getOption('columns');\r\n }\r\n set columns(value) {\r\n this._setOption('columns', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnWidth]\r\n \r\n */\r\n get columnWidth() {\r\n return this._getOption('columnWidth');\r\n }\r\n set columnWidth(value) {\r\n this._setOption('columnWidth', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.customizeColumns]\r\n \r\n */\r\n get customizeColumns() {\r\n return this._getOption('customizeColumns');\r\n }\r\n set customizeColumns(value) {\r\n this._setOption('customizeColumns', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.dataRowTemplate]\r\n \r\n */\r\n get dataRowTemplate() {\r\n return this._getOption('dataRowTemplate');\r\n }\r\n set dataRowTemplate(value) {\r\n this._setOption('dataRowTemplate', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.editing]\r\n \r\n */\r\n get editing() {\r\n return this._getOption('editing');\r\n }\r\n set editing(value) {\r\n this._setOption('editing', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.errorRowEnabled]\r\n \r\n */\r\n get errorRowEnabled() {\r\n return this._getOption('errorRowEnabled');\r\n }\r\n set errorRowEnabled(value) {\r\n this._setOption('errorRowEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterBuilder]\r\n \r\n */\r\n get filterBuilder() {\r\n return this._getOption('filterBuilder');\r\n }\r\n set filterBuilder(value) {\r\n this._setOption('filterBuilder', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterBuilderPopup]\r\n \r\n */\r\n get filterBuilderPopup() {\r\n return this._getOption('filterBuilderPopup');\r\n }\r\n set filterBuilderPopup(value) {\r\n this._setOption('filterBuilderPopup', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterPanel]\r\n \r\n */\r\n get filterPanel() {\r\n return this._getOption('filterPanel');\r\n }\r\n set filterPanel(value) {\r\n this._setOption('filterPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterRow]\r\n \r\n */\r\n get filterRow() {\r\n return this._getOption('filterRow');\r\n }\r\n set filterRow(value) {\r\n this._setOption('filterRow', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterSyncEnabled]\r\n \r\n */\r\n get filterSyncEnabled() {\r\n return this._getOption('filterSyncEnabled');\r\n }\r\n set filterSyncEnabled(value) {\r\n this._setOption('filterSyncEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterValue]\r\n \r\n */\r\n get filterValue() {\r\n return this._getOption('filterValue');\r\n }\r\n set filterValue(value) {\r\n this._setOption('filterValue', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedColumnIndex]\r\n \r\n */\r\n get focusedColumnIndex() {\r\n return this._getOption('focusedColumnIndex');\r\n }\r\n set focusedColumnIndex(value) {\r\n this._setOption('focusedColumnIndex', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowEnabled]\r\n \r\n */\r\n get focusedRowEnabled() {\r\n return this._getOption('focusedRowEnabled');\r\n }\r\n set focusedRowEnabled(value) {\r\n this._setOption('focusedRowEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowIndex]\r\n \r\n */\r\n get focusedRowIndex() {\r\n return this._getOption('focusedRowIndex');\r\n }\r\n set focusedRowIndex(value) {\r\n this._setOption('focusedRowIndex', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowKey]\r\n \r\n */\r\n get focusedRowKey() {\r\n return this._getOption('focusedRowKey');\r\n }\r\n set focusedRowKey(value) {\r\n this._setOption('focusedRowKey', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.grouping]\r\n \r\n */\r\n get grouping() {\r\n return this._getOption('grouping');\r\n }\r\n set grouping(value) {\r\n this._setOption('grouping', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.groupPanel]\r\n \r\n */\r\n get groupPanel() {\r\n return this._getOption('groupPanel');\r\n }\r\n set groupPanel(value) {\r\n this._setOption('groupPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.headerFilter]\r\n \r\n */\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.highlightChanges]\r\n \r\n */\r\n get highlightChanges() {\r\n return this._getOption('highlightChanges');\r\n }\r\n set highlightChanges(value) {\r\n this._setOption('highlightChanges', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.keyboardNavigation]\r\n \r\n */\r\n get keyboardNavigation() {\r\n return this._getOption('keyboardNavigation');\r\n }\r\n set keyboardNavigation(value) {\r\n this._setOption('keyboardNavigation', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.loadPanel]\r\n \r\n */\r\n get loadPanel() {\r\n return this._getOption('loadPanel');\r\n }\r\n set loadPanel(value) {\r\n this._setOption('loadPanel', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.masterDetail]\r\n \r\n */\r\n get masterDetail() {\r\n return this._getOption('masterDetail');\r\n }\r\n set masterDetail(value) {\r\n this._setOption('masterDetail', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.pager]\r\n \r\n */\r\n get pager() {\r\n return this._getOption('pager');\r\n }\r\n set pager(value) {\r\n this._setOption('pager', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.paging]\r\n \r\n */\r\n get paging() {\r\n return this._getOption('paging');\r\n }\r\n set paging(value) {\r\n this._setOption('paging', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.remoteOperations]\r\n \r\n */\r\n get remoteOperations() {\r\n return this._getOption('remoteOperations');\r\n }\r\n set remoteOperations(value) {\r\n this._setOption('remoteOperations', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.renderAsync]\r\n \r\n */\r\n get renderAsync() {\r\n return this._getOption('renderAsync');\r\n }\r\n set renderAsync(value) {\r\n this._setOption('renderAsync', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.rowAlternationEnabled]\r\n \r\n */\r\n get rowAlternationEnabled() {\r\n return this._getOption('rowAlternationEnabled');\r\n }\r\n set rowAlternationEnabled(value) {\r\n this._setOption('rowAlternationEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.rowDragging]\r\n \r\n */\r\n get rowDragging() {\r\n return this._getOption('rowDragging');\r\n }\r\n set rowDragging(value) {\r\n this._setOption('rowDragging', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.rowTemplate]\r\n \r\n * @deprecated [depNote:dxDataGridOptions.rowTemplate]\r\n \r\n */\r\n get rowTemplate() {\r\n return this._getOption('rowTemplate');\r\n }\r\n set rowTemplate(value) {\r\n this._setOption('rowTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.scrolling]\r\n \r\n */\r\n get scrolling() {\r\n return this._getOption('scrolling');\r\n }\r\n set scrolling(value) {\r\n this._setOption('scrolling', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.searchPanel]\r\n \r\n */\r\n get searchPanel() {\r\n return this._getOption('searchPanel');\r\n }\r\n set searchPanel(value) {\r\n this._setOption('searchPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.selectedRowKeys]\r\n \r\n */\r\n get selectedRowKeys() {\r\n return this._getOption('selectedRowKeys');\r\n }\r\n set selectedRowKeys(value) {\r\n this._setOption('selectedRowKeys', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.selection]\r\n \r\n */\r\n get selection() {\r\n return this._getOption('selection');\r\n }\r\n set selection(value) {\r\n this._setOption('selection', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.selectionFilter]\r\n \r\n */\r\n get selectionFilter() {\r\n return this._getOption('selectionFilter');\r\n }\r\n set selectionFilter(value) {\r\n this._setOption('selectionFilter', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showBorders]\r\n \r\n */\r\n get showBorders() {\r\n return this._getOption('showBorders');\r\n }\r\n set showBorders(value) {\r\n this._setOption('showBorders', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showColumnHeaders]\r\n \r\n */\r\n get showColumnHeaders() {\r\n return this._getOption('showColumnHeaders');\r\n }\r\n set showColumnHeaders(value) {\r\n this._setOption('showColumnHeaders', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showColumnLines]\r\n \r\n */\r\n get showColumnLines() {\r\n return this._getOption('showColumnLines');\r\n }\r\n set showColumnLines(value) {\r\n this._setOption('showColumnLines', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showRowLines]\r\n \r\n */\r\n get showRowLines() {\r\n return this._getOption('showRowLines');\r\n }\r\n set showRowLines(value) {\r\n this._setOption('showRowLines', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.sortByGroupSummaryInfo]\r\n \r\n */\r\n get sortByGroupSummaryInfo() {\r\n return this._getOption('sortByGroupSummaryInfo');\r\n }\r\n set sortByGroupSummaryInfo(value) {\r\n this._setOption('sortByGroupSummaryInfo', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.sorting]\r\n \r\n */\r\n get sorting() {\r\n return this._getOption('sorting');\r\n }\r\n set sorting(value) {\r\n this._setOption('sorting', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.stateStoring]\r\n \r\n */\r\n get stateStoring() {\r\n return this._getOption('stateStoring');\r\n }\r\n set stateStoring(value) {\r\n this._setOption('stateStoring', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.summary]\r\n \r\n */\r\n get summary() {\r\n return this._getOption('summary');\r\n }\r\n set summary(value) {\r\n this._setOption('summary', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.syncLookupFilterValues]\r\n \r\n */\r\n get syncLookupFilterValues() {\r\n return this._getOption('syncLookupFilterValues');\r\n }\r\n set syncLookupFilterValues(value) {\r\n this._setOption('syncLookupFilterValues', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxDataGridOptions.toolbar]\r\n \r\n */\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.twoWayBindingEnabled]\r\n \r\n */\r\n get twoWayBindingEnabled() {\r\n return this._getOption('twoWayBindingEnabled');\r\n }\r\n set twoWayBindingEnabled(value) {\r\n this._setOption('twoWayBindingEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.wordWrapEnabled]\r\n \r\n */\r\n get wordWrapEnabled() {\r\n return this._getOption('wordWrapEnabled');\r\n }\r\n set wordWrapEnabled(value) {\r\n this._setOption('wordWrapEnabled', value);\r\n }\r\n get columnsChildren() {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this.setChildren('columns', value);\r\n }\r\n get sortByGroupSummaryInfoChildren() {\r\n return this._getOption('sortByGroupSummaryInfo');\r\n }\r\n set sortByGroupSummaryInfoChildren(value) {\r\n this.setChildren('sortByGroupSummaryInfo', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDataGrid(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('columns', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('keyExpr', changes);\r\n this.setupChanges('selectedRowKeys', changes);\r\n this.setupChanges('sortByGroupSummaryInfo', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('columns');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('keyExpr');\r\n this._idh.doCheck('selectedRowKeys');\r\n this._idh.doCheck('sortByGroupSummaryInfo');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDataGridComponent.ɵfac = function DxDataGridComponent_Factory(t) { return new (t || DxDataGridComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDataGridComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDataGridComponent, selectors: [[\"dx-data-grid\"]], contentQueries: function DxDataGridComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiSortByGroupSummaryInfoComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sortByGroupSummaryInfoChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowColumnReordering: \"allowColumnReordering\", allowColumnResizing: \"allowColumnResizing\", autoNavigateToFocusedRow: \"autoNavigateToFocusedRow\", cacheEnabled: \"cacheEnabled\", cellHintEnabled: \"cellHintEnabled\", columnAutoWidth: \"columnAutoWidth\", columnChooser: \"columnChooser\", columnFixing: \"columnFixing\", columnHidingEnabled: \"columnHidingEnabled\", columnMinWidth: \"columnMinWidth\", columnResizingMode: \"columnResizingMode\", columns: \"columns\", columnWidth: \"columnWidth\", customizeColumns: \"customizeColumns\", dataRowTemplate: \"dataRowTemplate\", dataSource: \"dataSource\", dateSerializationFormat: \"dateSerializationFormat\", disabled: \"disabled\", editing: \"editing\", elementAttr: \"elementAttr\", errorRowEnabled: \"errorRowEnabled\", export: \"export\", filterBuilder: \"filterBuilder\", filterBuilderPopup: \"filterBuilderPopup\", filterPanel: \"filterPanel\", filterRow: \"filterRow\", filterSyncEnabled: \"filterSyncEnabled\", filterValue: \"filterValue\", focusedColumnIndex: \"focusedColumnIndex\", focusedRowEnabled: \"focusedRowEnabled\", focusedRowIndex: \"focusedRowIndex\", focusedRowKey: \"focusedRowKey\", grouping: \"grouping\", groupPanel: \"groupPanel\", headerFilter: \"headerFilter\", height: \"height\", highlightChanges: \"highlightChanges\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", keyboardNavigation: \"keyboardNavigation\", keyExpr: \"keyExpr\", loadPanel: \"loadPanel\", masterDetail: \"masterDetail\", noDataText: \"noDataText\", pager: \"pager\", paging: \"paging\", remoteOperations: \"remoteOperations\", renderAsync: \"renderAsync\", repaintChangesOnly: \"repaintChangesOnly\", rowAlternationEnabled: \"rowAlternationEnabled\", rowDragging: \"rowDragging\", rowTemplate: \"rowTemplate\", rtlEnabled: \"rtlEnabled\", scrolling: \"scrolling\", searchPanel: \"searchPanel\", selectedRowKeys: \"selectedRowKeys\", selection: \"selection\", selectionFilter: \"selectionFilter\", showBorders: \"showBorders\", showColumnHeaders: \"showColumnHeaders\", showColumnLines: \"showColumnLines\", showRowLines: \"showRowLines\", sortByGroupSummaryInfo: \"sortByGroupSummaryInfo\", sorting: \"sorting\", stateStoring: \"stateStoring\", summary: \"summary\", syncLookupFilterValues: \"syncLookupFilterValues\", tabIndex: \"tabIndex\", toolbar: \"toolbar\", twoWayBindingEnabled: \"twoWayBindingEnabled\", visible: \"visible\", width: \"width\", wordWrapEnabled: \"wordWrapEnabled\" }, outputs: { onAdaptiveDetailRowPreparing: \"onAdaptiveDetailRowPreparing\", onCellClick: \"onCellClick\", onCellDblClick: \"onCellDblClick\", onCellHoverChanged: \"onCellHoverChanged\", onCellPrepared: \"onCellPrepared\", onContentReady: \"onContentReady\", onContextMenuPreparing: \"onContextMenuPreparing\", onDataErrorOccurred: \"onDataErrorOccurred\", onDisposing: \"onDisposing\", onEditCanceled: \"onEditCanceled\", onEditCanceling: \"onEditCanceling\", onEditingStart: \"onEditingStart\", onEditorPrepared: \"onEditorPrepared\", onEditorPreparing: \"onEditorPreparing\", onExporting: \"onExporting\", onFocusedCellChanged: \"onFocusedCellChanged\", onFocusedCellChanging: \"onFocusedCellChanging\", onFocusedRowChanged: \"onFocusedRowChanged\", onFocusedRowChanging: \"onFocusedRowChanging\", onInitialized: \"onInitialized\", onInitNewRow: \"onInitNewRow\", onKeyDown: \"onKeyDown\", onOptionChanged: \"onOptionChanged\", onRowClick: \"onRowClick\", onRowCollapsed: \"onRowCollapsed\", onRowCollapsing: \"onRowCollapsing\", onRowDblClick: \"onRowDblClick\", onRowExpanded: \"onRowExpanded\", onRowExpanding: \"onRowExpanding\", onRowInserted: \"onRowInserted\", onRowInserting: \"onRowInserting\", onRowPrepared: \"onRowPrepared\", onRowRemoved: \"onRowRemoved\", onRowRemoving: \"onRowRemoving\", onRowUpdated: \"onRowUpdated\", onRowUpdating: \"onRowUpdating\", onRowValidating: \"onRowValidating\", onSaved: \"onSaved\", onSaving: \"onSaving\", onSelectionChanged: \"onSelectionChanged\", onToolbarPreparing: \"onToolbarPreparing\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowColumnReorderingChange: \"allowColumnReorderingChange\", allowColumnResizingChange: \"allowColumnResizingChange\", autoNavigateToFocusedRowChange: \"autoNavigateToFocusedRowChange\", cacheEnabledChange: \"cacheEnabledChange\", cellHintEnabledChange: \"cellHintEnabledChange\", columnAutoWidthChange: \"columnAutoWidthChange\", columnChooserChange: \"columnChooserChange\", columnFixingChange: \"columnFixingChange\", columnHidingEnabledChange: \"columnHidingEnabledChange\", columnMinWidthChange: \"columnMinWidthChange\", columnResizingModeChange: \"columnResizingModeChange\", columnsChange: \"columnsChange\", columnWidthChange: \"columnWidthChange\", customizeColumnsChange: \"customizeColumnsChange\", dataRowTemplateChange: \"dataRowTemplateChange\", dataSourceChange: \"dataSourceChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", disabledChange: \"disabledChange\", editingChange: \"editingChange\", elementAttrChange: \"elementAttrChange\", errorRowEnabledChange: \"errorRowEnabledChange\", exportChange: \"exportChange\", filterBuilderChange: \"filterBuilderChange\", filterBuilderPopupChange: \"filterBuilderPopupChange\", filterPanelChange: \"filterPanelChange\", filterRowChange: \"filterRowChange\", filterSyncEnabledChange: \"filterSyncEnabledChange\", filterValueChange: \"filterValueChange\", focusedColumnIndexChange: \"focusedColumnIndexChange\", focusedRowEnabledChange: \"focusedRowEnabledChange\", focusedRowIndexChange: \"focusedRowIndexChange\", focusedRowKeyChange: \"focusedRowKeyChange\", groupingChange: \"groupingChange\", groupPanelChange: \"groupPanelChange\", headerFilterChange: \"headerFilterChange\", heightChange: \"heightChange\", highlightChangesChange: \"highlightChangesChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", keyboardNavigationChange: \"keyboardNavigationChange\", keyExprChange: \"keyExprChange\", loadPanelChange: \"loadPanelChange\", masterDetailChange: \"masterDetailChange\", noDataTextChange: \"noDataTextChange\", pagerChange: \"pagerChange\", pagingChange: \"pagingChange\", remoteOperationsChange: \"remoteOperationsChange\", renderAsyncChange: \"renderAsyncChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rowAlternationEnabledChange: \"rowAlternationEnabledChange\", rowDraggingChange: \"rowDraggingChange\", rowTemplateChange: \"rowTemplateChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollingChange: \"scrollingChange\", searchPanelChange: \"searchPanelChange\", selectedRowKeysChange: \"selectedRowKeysChange\", selectionChange: \"selectionChange\", selectionFilterChange: \"selectionFilterChange\", showBordersChange: \"showBordersChange\", showColumnHeadersChange: \"showColumnHeadersChange\", showColumnLinesChange: \"showColumnLinesChange\", showRowLinesChange: \"showRowLinesChange\", sortByGroupSummaryInfoChange: \"sortByGroupSummaryInfoChange\", sortingChange: \"sortingChange\", stateStoringChange: \"stateStoringChange\", summaryChange: \"summaryChange\", syncLookupFilterValuesChange: \"syncLookupFilterValuesChange\", tabIndexChange: \"tabIndexChange\", toolbarChange: \"toolbarChange\", twoWayBindingEnabledChange: \"twoWayBindingEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wordWrapEnabledChange: \"wordWrapEnabledChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxDataGridComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDataGridComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-data-grid',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowColumnReordering: [{\r\n type: Input\r\n }], allowColumnResizing: [{\r\n type: Input\r\n }], autoNavigateToFocusedRow: [{\r\n type: Input\r\n }], cacheEnabled: [{\r\n type: Input\r\n }], cellHintEnabled: [{\r\n type: Input\r\n }], columnAutoWidth: [{\r\n type: Input\r\n }], columnChooser: [{\r\n type: Input\r\n }], columnFixing: [{\r\n type: Input\r\n }], columnHidingEnabled: [{\r\n type: Input\r\n }], columnMinWidth: [{\r\n type: Input\r\n }], columnResizingMode: [{\r\n type: Input\r\n }], columns: [{\r\n type: Input\r\n }], columnWidth: [{\r\n type: Input\r\n }], customizeColumns: [{\r\n type: Input\r\n }], dataRowTemplate: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], editing: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], errorRowEnabled: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], filterBuilder: [{\r\n type: Input\r\n }], filterBuilderPopup: [{\r\n type: Input\r\n }], filterPanel: [{\r\n type: Input\r\n }], filterRow: [{\r\n type: Input\r\n }], filterSyncEnabled: [{\r\n type: Input\r\n }], filterValue: [{\r\n type: Input\r\n }], focusedColumnIndex: [{\r\n type: Input\r\n }], focusedRowEnabled: [{\r\n type: Input\r\n }], focusedRowIndex: [{\r\n type: Input\r\n }], focusedRowKey: [{\r\n type: Input\r\n }], grouping: [{\r\n type: Input\r\n }], groupPanel: [{\r\n type: Input\r\n }], headerFilter: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], highlightChanges: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], keyboardNavigation: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], loadPanel: [{\r\n type: Input\r\n }], masterDetail: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], pager: [{\r\n type: Input\r\n }], paging: [{\r\n type: Input\r\n }], remoteOperations: [{\r\n type: Input\r\n }], renderAsync: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rowAlternationEnabled: [{\r\n type: Input\r\n }], rowDragging: [{\r\n type: Input\r\n }], rowTemplate: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrolling: [{\r\n type: Input\r\n }], searchPanel: [{\r\n type: Input\r\n }], selectedRowKeys: [{\r\n type: Input\r\n }], selection: [{\r\n type: Input\r\n }], selectionFilter: [{\r\n type: Input\r\n }], showBorders: [{\r\n type: Input\r\n }], showColumnHeaders: [{\r\n type: Input\r\n }], showColumnLines: [{\r\n type: Input\r\n }], showRowLines: [{\r\n type: Input\r\n }], sortByGroupSummaryInfo: [{\r\n type: Input\r\n }], sorting: [{\r\n type: Input\r\n }], stateStoring: [{\r\n type: Input\r\n }], summary: [{\r\n type: Input\r\n }], syncLookupFilterValues: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], twoWayBindingEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wordWrapEnabled: [{\r\n type: Input\r\n }], onAdaptiveDetailRowPreparing: [{\r\n type: Output\r\n }], onCellClick: [{\r\n type: Output\r\n }], onCellDblClick: [{\r\n type: Output\r\n }], onCellHoverChanged: [{\r\n type: Output\r\n }], onCellPrepared: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuPreparing: [{\r\n type: Output\r\n }], onDataErrorOccurred: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEditCanceled: [{\r\n type: Output\r\n }], onEditCanceling: [{\r\n type: Output\r\n }], onEditingStart: [{\r\n type: Output\r\n }], onEditorPrepared: [{\r\n type: Output\r\n }], onEditorPreparing: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFocusedCellChanged: [{\r\n type: Output\r\n }], onFocusedCellChanging: [{\r\n type: Output\r\n }], onFocusedRowChanged: [{\r\n type: Output\r\n }], onFocusedRowChanging: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInitNewRow: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onRowClick: [{\r\n type: Output\r\n }], onRowCollapsed: [{\r\n type: Output\r\n }], onRowCollapsing: [{\r\n type: Output\r\n }], onRowDblClick: [{\r\n type: Output\r\n }], onRowExpanded: [{\r\n type: Output\r\n }], onRowExpanding: [{\r\n type: Output\r\n }], onRowInserted: [{\r\n type: Output\r\n }], onRowInserting: [{\r\n type: Output\r\n }], onRowPrepared: [{\r\n type: Output\r\n }], onRowRemoved: [{\r\n type: Output\r\n }], onRowRemoving: [{\r\n type: Output\r\n }], onRowUpdated: [{\r\n type: Output\r\n }], onRowUpdating: [{\r\n type: Output\r\n }], onRowValidating: [{\r\n type: Output\r\n }], onSaved: [{\r\n type: Output\r\n }], onSaving: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onToolbarPreparing: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowColumnReorderingChange: [{\r\n type: Output\r\n }], allowColumnResizingChange: [{\r\n type: Output\r\n }], autoNavigateToFocusedRowChange: [{\r\n type: Output\r\n }], cacheEnabledChange: [{\r\n type: Output\r\n }], cellHintEnabledChange: [{\r\n type: Output\r\n }], columnAutoWidthChange: [{\r\n type: Output\r\n }], columnChooserChange: [{\r\n type: Output\r\n }], columnFixingChange: [{\r\n type: Output\r\n }], columnHidingEnabledChange: [{\r\n type: Output\r\n }], columnMinWidthChange: [{\r\n type: Output\r\n }], columnResizingModeChange: [{\r\n type: Output\r\n }], columnsChange: [{\r\n type: Output\r\n }], columnWidthChange: [{\r\n type: Output\r\n }], customizeColumnsChange: [{\r\n type: Output\r\n }], dataRowTemplateChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], editingChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], errorRowEnabledChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], filterBuilderChange: [{\r\n type: Output\r\n }], filterBuilderPopupChange: [{\r\n type: Output\r\n }], filterPanelChange: [{\r\n type: Output\r\n }], filterRowChange: [{\r\n type: Output\r\n }], filterSyncEnabledChange: [{\r\n type: Output\r\n }], filterValueChange: [{\r\n type: Output\r\n }], focusedColumnIndexChange: [{\r\n type: Output\r\n }], focusedRowEnabledChange: [{\r\n type: Output\r\n }], focusedRowIndexChange: [{\r\n type: Output\r\n }], focusedRowKeyChange: [{\r\n type: Output\r\n }], groupingChange: [{\r\n type: Output\r\n }], groupPanelChange: [{\r\n type: Output\r\n }], headerFilterChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], highlightChangesChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], keyboardNavigationChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], loadPanelChange: [{\r\n type: Output\r\n }], masterDetailChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], pagerChange: [{\r\n type: Output\r\n }], pagingChange: [{\r\n type: Output\r\n }], remoteOperationsChange: [{\r\n type: Output\r\n }], renderAsyncChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rowAlternationEnabledChange: [{\r\n type: Output\r\n }], rowDraggingChange: [{\r\n type: Output\r\n }], rowTemplateChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollingChange: [{\r\n type: Output\r\n }], searchPanelChange: [{\r\n type: Output\r\n }], selectedRowKeysChange: [{\r\n type: Output\r\n }], selectionChange: [{\r\n type: Output\r\n }], selectionFilterChange: [{\r\n type: Output\r\n }], showBordersChange: [{\r\n type: Output\r\n }], showColumnHeadersChange: [{\r\n type: Output\r\n }], showColumnLinesChange: [{\r\n type: Output\r\n }], showRowLinesChange: [{\r\n type: Output\r\n }], sortByGroupSummaryInfoChange: [{\r\n type: Output\r\n }], sortingChange: [{\r\n type: Output\r\n }], stateStoringChange: [{\r\n type: Output\r\n }], summaryChange: [{\r\n type: Output\r\n }], syncLookupFilterValuesChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], toolbarChange: [{\r\n type: Output\r\n }], twoWayBindingEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wordWrapEnabledChange: [{\r\n type: Output\r\n }], columnsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiColumnComponent]\r\n }], sortByGroupSummaryInfoChildren: [{\r\n type: ContentChildren,\r\n args: [DxiSortByGroupSummaryInfoComponent]\r\n }] }); })();\r\nclass DxDataGridModule {\r\n}\r\n/** @nocollapse */ DxDataGridModule.ɵfac = function DxDataGridModule_Factory(t) { return new (t || DxDataGridModule)(); };\r\n/** @nocollapse */ DxDataGridModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDataGridModule });\r\n/** @nocollapse */ DxDataGridModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDataGridModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDataGridComponent\r\n ],\r\n exports: [\r\n DxDataGridComponent,\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDataGridModule, { declarations: [DxDataGridComponent], imports: [DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDataGridComponent, DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoExportModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoGroupingModule,\r\n DxoGroupPanelModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoMasterDetailModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxiSortByGroupSummaryInfoModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoSummaryModule,\r\n DxiGroupItemModule,\r\n DxoValueFormatModule,\r\n DxiTotalItemModule,\r\n DxoToolbarModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDataGridComponent, DxDataGridModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxDateBox from 'devextreme/ui/date_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiButtonModule, DxoOptionsModule, DxoCalendarOptionsModule, DxoDisplayFormatModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxDateBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxDateBox]\r\n\r\n */\r\nclass DxDateBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'adaptivityEnabledChange' },\r\n { emit: 'applyButtonTextChange' },\r\n { emit: 'applyValueModeChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'calendarOptionsChange' },\r\n { emit: 'cancelButtonTextChange' },\r\n { emit: 'dateOutOfRangeMessageChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disabledDatesChange' },\r\n { emit: 'displayFormatChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'intervalChange' },\r\n { emit: 'invalidDateMessageChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'minChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'pickerTypeChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showAnalogClockChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'todayButtonTextChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'useMaskBehaviorChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.adaptivityEnabled]\r\n \r\n */\r\n get adaptivityEnabled() {\r\n return this._getOption('adaptivityEnabled');\r\n }\r\n set adaptivityEnabled(value) {\r\n this._setOption('adaptivityEnabled', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.applyButtonText]\r\n \r\n */\r\n get applyButtonText() {\r\n return this._getOption('applyButtonText');\r\n }\r\n set applyButtonText(value) {\r\n this._setOption('applyButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.applyValueMode]\r\n \r\n */\r\n get applyValueMode() {\r\n return this._getOption('applyValueMode');\r\n }\r\n set applyValueMode(value) {\r\n this._setOption('applyValueMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.calendarOptions]\r\n \r\n */\r\n get calendarOptions() {\r\n return this._getOption('calendarOptions');\r\n }\r\n set calendarOptions(value) {\r\n this._setOption('calendarOptions', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.cancelButtonText]\r\n \r\n */\r\n get cancelButtonText() {\r\n return this._getOption('cancelButtonText');\r\n }\r\n set cancelButtonText(value) {\r\n this._setOption('cancelButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.dateOutOfRangeMessage]\r\n \r\n */\r\n get dateOutOfRangeMessage() {\r\n return this._getOption('dateOutOfRangeMessage');\r\n }\r\n set dateOutOfRangeMessage(value) {\r\n this._setOption('dateOutOfRangeMessage', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.disabledDates]\r\n \r\n */\r\n get disabledDates() {\r\n return this._getOption('disabledDates');\r\n }\r\n set disabledDates(value) {\r\n this._setOption('disabledDates', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.displayFormat]\r\n \r\n */\r\n get displayFormat() {\r\n return this._getOption('displayFormat');\r\n }\r\n set displayFormat(value) {\r\n this._setOption('displayFormat', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.interval]\r\n \r\n */\r\n get interval() {\r\n return this._getOption('interval');\r\n }\r\n set interval(value) {\r\n this._setOption('interval', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.invalidDateMessage]\r\n \r\n */\r\n get invalidDateMessage() {\r\n return this._getOption('invalidDateMessage');\r\n }\r\n set invalidDateMessage(value) {\r\n this._setOption('invalidDateMessage', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.pickerType]\r\n \r\n */\r\n get pickerType() {\r\n return this._getOption('pickerType');\r\n }\r\n set pickerType(value) {\r\n this._setOption('pickerType', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.showAnalogClock]\r\n \r\n */\r\n get showAnalogClock() {\r\n return this._getOption('showAnalogClock');\r\n }\r\n set showAnalogClock(value) {\r\n this._setOption('showAnalogClock', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.todayButtonText]\r\n \r\n */\r\n get todayButtonText() {\r\n return this._getOption('todayButtonText');\r\n }\r\n set todayButtonText(value) {\r\n this._setOption('todayButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.useMaskBehavior]\r\n \r\n */\r\n get useMaskBehavior() {\r\n return this._getOption('useMaskBehavior');\r\n }\r\n set useMaskBehavior(value) {\r\n this._setOption('useMaskBehavior', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxDateBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDateBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('disabledDates', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('disabledDates');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDateBoxComponent.ɵfac = function DxDateBoxComponent_Factory(t) { return new (t || DxDateBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDateBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDateBoxComponent, selectors: [[\"dx-date-box\"]], contentQueries: function DxDateBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, hostBindings: function DxDateBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxDateBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxDateBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", adaptivityEnabled: \"adaptivityEnabled\", applyButtonText: \"applyButtonText\", applyValueMode: \"applyValueMode\", buttons: \"buttons\", calendarOptions: \"calendarOptions\", cancelButtonText: \"cancelButtonText\", dateOutOfRangeMessage: \"dateOutOfRangeMessage\", dateSerializationFormat: \"dateSerializationFormat\", deferRendering: \"deferRendering\", disabled: \"disabled\", disabledDates: \"disabledDates\", displayFormat: \"displayFormat\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", interval: \"interval\", invalidDateMessage: \"invalidDateMessage\", isDirty: \"isDirty\", isValid: \"isValid\", label: \"label\", labelMode: \"labelMode\", max: \"max\", maxLength: \"maxLength\", min: \"min\", name: \"name\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", pickerType: \"pickerType\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showAnalogClock: \"showAnalogClock\", showClearButton: \"showClearButton\", showDropDownButton: \"showDropDownButton\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", todayButtonText: \"todayButtonText\", type: \"type\", useMaskBehavior: \"useMaskBehavior\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", adaptivityEnabledChange: \"adaptivityEnabledChange\", applyButtonTextChange: \"applyButtonTextChange\", applyValueModeChange: \"applyValueModeChange\", buttonsChange: \"buttonsChange\", calendarOptionsChange: \"calendarOptionsChange\", cancelButtonTextChange: \"cancelButtonTextChange\", dateOutOfRangeMessageChange: \"dateOutOfRangeMessageChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", disabledDatesChange: \"disabledDatesChange\", displayFormatChange: \"displayFormatChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", intervalChange: \"intervalChange\", invalidDateMessageChange: \"invalidDateMessageChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxChange: \"maxChange\", maxLengthChange: \"maxLengthChange\", minChange: \"minChange\", nameChange: \"nameChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", pickerTypeChange: \"pickerTypeChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showAnalogClockChange: \"showAnalogClockChange\", showClearButtonChange: \"showClearButtonChange\", showDropDownButtonChange: \"showDropDownButtonChange\", spellcheckChange: \"spellcheckChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", todayButtonTextChange: \"todayButtonTextChange\", typeChange: \"typeChange\", useMaskBehaviorChange: \"useMaskBehaviorChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxDateBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDateBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-date-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], adaptivityEnabled: [{\r\n type: Input\r\n }], applyButtonText: [{\r\n type: Input\r\n }], applyValueMode: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], calendarOptions: [{\r\n type: Input\r\n }], cancelButtonText: [{\r\n type: Input\r\n }], dateOutOfRangeMessage: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disabledDates: [{\r\n type: Input\r\n }], displayFormat: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], interval: [{\r\n type: Input\r\n }], invalidDateMessage: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], pickerType: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showAnalogClock: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], todayButtonText: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], useMaskBehavior: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], adaptivityEnabledChange: [{\r\n type: Output\r\n }], applyButtonTextChange: [{\r\n type: Output\r\n }], applyValueModeChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], calendarOptionsChange: [{\r\n type: Output\r\n }], cancelButtonTextChange: [{\r\n type: Output\r\n }], dateOutOfRangeMessageChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disabledDatesChange: [{\r\n type: Output\r\n }], displayFormatChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], intervalChange: [{\r\n type: Output\r\n }], invalidDateMessageChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], pickerTypeChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showAnalogClockChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], todayButtonTextChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], useMaskBehaviorChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }] }); })();\r\nclass DxDateBoxModule {\r\n}\r\n/** @nocollapse */ DxDateBoxModule.ɵfac = function DxDateBoxModule_Factory(t) { return new (t || DxDateBoxModule)(); };\r\n/** @nocollapse */ DxDateBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDateBoxModule });\r\n/** @nocollapse */ DxDateBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDateBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDateBoxComponent\r\n ],\r\n exports: [\r\n DxDateBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDateBoxModule, { declarations: [DxDateBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDateBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDateBoxComponent, DxDateBoxModule };\n","/**\r\n * DevExtreme (esm/ui/date_range_box/ui.date_range.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nexport var getDeserializedDate = value => dateSerialization.deserializeDate(value);\r\nexport var isSameDates = (date1, date2) => {\r\n if (!date1 && !date2) {\r\n return true\r\n }\r\n return dateUtils.sameDate(getDeserializedDate(date1), getDeserializedDate(date2))\r\n};\r\nexport var isSameDateArrays = (value, previousValue) => {\r\n var [startDate, endDate] = value;\r\n var [previousStartDate, previousEndDate] = previousValue;\r\n return isSameDates(startDate, previousStartDate) && isSameDates(endDate, previousEndDate)\r\n};\r\nexport var sortDatesArray = value => {\r\n var [startDate, endDate] = value;\r\n if (startDate && endDate && getDeserializedDate(startDate) > getDeserializedDate(endDate)) {\r\n return [endDate, startDate]\r\n } else {\r\n return value\r\n }\r\n};\r\nexport var monthDifference = (date1, date2) => 12 * (date2.getFullYear() - date1.getFullYear()) - date1.getMonth() + date2.getMonth();\r\n","/**\r\n * DevExtreme (esm/ui/date_range_box/strategy/rangeCalendar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport CalendarStrategy from \"../../date_box/ui.date_box.strategy.calendar\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isSameDateArrays,\r\n getDeserializedDate,\r\n isSameDates\r\n} from \"../ui.date_range.utils\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nclass RangeCalendarStrategy extends CalendarStrategy {\r\n constructor(dateBox) {\r\n super();\r\n this.dateBox = dateBox;\r\n this.dateRangeBox = dateBox.option(\"_dateRangeBoxInstance\")\r\n }\r\n popupConfig(popupConfig) {\r\n return extend(true, super.popupConfig(popupConfig), {\r\n position: {\r\n of: this.dateRangeBox.$element()\r\n }\r\n })\r\n }\r\n popupShowingHandler() {\r\n var _this$_widget;\r\n null === (_this$_widget = this._widget) || void 0 === _this$_widget ? void 0 : _this$_widget._restoreViewsMinMaxOptions();\r\n this._dateSelectedCounter = 0\r\n }\r\n _getPopup() {\r\n return super._getPopup() || this.dateRangeBox.getStartDateBox()._popup\r\n }\r\n supportedKeys() {\r\n return _extends({}, super.supportedKeys(), {\r\n rightArrow: () => {\r\n if (this.dateRangeBox.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: () => {\r\n if (this.dateRangeBox.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: e => {\r\n if (this.dateRangeBox.option(\"opened\")) {\r\n var dateBoxValue = this.dateBox.dateOption(\"value\");\r\n this.dateBox._valueChangeEventHandler(e);\r\n var newDateBoxValue = this.dateBox.dateOption(\"value\");\r\n var dateBoxValueChanged = !isSameDates(dateBoxValue, newDateBoxValue);\r\n if (dateBoxValueChanged) {\r\n this.dateRangeBox.getStartDateBox()._strategy._widget.option(\"value\", this.dateRangeBox.option(\"value\"))\r\n } else {\r\n this.dateRangeBox.getStartDateBox()._strategy._widget._enterKeyHandler(e)\r\n }\r\n return false\r\n }\r\n },\r\n tab: e => {\r\n if (!this.getDateRangeBox().option(\"opened\")) {\r\n return\r\n }\r\n if (!this._getPopup().getFocusableElements().length) {\r\n if (!e.shiftKey && this.getDateRangeBox()._isEndDateActiveElement() || e.shiftKey && this.getDateRangeBox()._isStartDateActiveElement()) {\r\n this.dateRangeBox.close()\r\n }\r\n return\r\n }\r\n if (!e.shiftKey && this.getDateRangeBox()._isStartDateActiveElement() || e.shiftKey && this.getDateRangeBox()._isEndDateActiveElement()) {\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this.getDateRangeBox().getStartDateBox()._getLastPopupElement() : this.getDateRangeBox().getStartDateBox()._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _getWidgetOptions() {\r\n var {\r\n disabledDates: disabledDatesValue,\r\n value: value,\r\n multiView: multiView\r\n } = this.dateRangeBox.option();\r\n var disabledDates = isFunction(disabledDatesValue) ? this._injectComponent(disabledDatesValue) : null !== disabledDatesValue && void 0 !== disabledDatesValue ? disabledDatesValue : void 0;\r\n return extend(super._getWidgetOptions(), {\r\n disabledDates: disabledDates,\r\n value: value,\r\n selectionMode: \"range\",\r\n viewsCount: multiView ? 2 : 1,\r\n _allowChangeSelectionOrder: true,\r\n _currentSelection: this.getCurrentSelection()\r\n })\r\n }\r\n _refreshActiveDescendant(e) {\r\n this.dateRangeBox.setAria(\"activedescendant\", e.actionValue)\r\n }\r\n _injectComponent(func) {\r\n return params => func(extend(params, {\r\n component: this.dateRangeBox\r\n }))\r\n }\r\n getKeyboardListener() {\r\n return this.dateRangeBox.getStartDateBox() ? this.dateRangeBox.getStartDateBox()._strategy._widget : this._widget\r\n }\r\n getValue() {\r\n return this._widget.option(\"value\")\r\n }\r\n _updateValue() {\r\n var {\r\n value: value\r\n } = this.dateRangeBox.option();\r\n if (!this._widget) {\r\n return\r\n }\r\n this._shouldPreventFocusChange = true;\r\n this._widget.option(\"value\", value)\r\n }\r\n _isInstantlyMode() {\r\n return \"instantly\" === this.dateRangeBox.option(\"applyValueMode\")\r\n }\r\n _valueChangedHandler(_ref) {\r\n var {\r\n value: value,\r\n previousValue: previousValue,\r\n event: event\r\n } = _ref;\r\n if (isSameDateArrays(value, previousValue) && !this._widget._valueSelected) {\r\n this._shouldPreventFocusChange = false;\r\n return\r\n }\r\n this._widget._valueSelected = false;\r\n if (this._isInstantlyMode()) {\r\n if (!this.dateRangeBox.option(\"disableOutOfRangeSelection\")) {\r\n if (\"startDate\" === this._getCalendarCurrentSelection()) {\r\n this._dateSelectedCounter = 0\r\n } else {\r\n this._dateSelectedCounter = 1;\r\n if (!value[0]) {\r\n this._dateSelectedCounter = -1\r\n } else if (getDeserializedDate(value[0]) > getDeserializedDate(value[1])) {\r\n this.dateRangeBox.updateValue([value[0], null], event);\r\n return\r\n }\r\n }\r\n }\r\n this.dateRangeBox.updateValue(value, event);\r\n this._dateSelectedCounter += 1;\r\n if (2 === this._dateSelectedCounter) {\r\n this.getDateRangeBox().close();\r\n return\r\n }\r\n } else if (\"endDate\" === this._getCalendarCurrentSelection()) {\r\n if (value[0] && getDeserializedDate(value[0]) > getDeserializedDate(value[1])) {\r\n return\r\n }\r\n }\r\n if (!this._shouldPreventFocusChange) {\r\n this._moveFocusToNextInput()\r\n }\r\n this._shouldPreventFocusChange = false\r\n }\r\n _moveFocusToNextInput() {\r\n var targetDateBox = \"startDate\" === this._getCalendarCurrentSelection() ? this.getDateRangeBox().getEndDateBox() : this.getDateRangeBox().getStartDateBox();\r\n targetDateBox.focus();\r\n eventsEngine.trigger(targetDateBox.field(), \"dxclick\")\r\n }\r\n getCurrentSelection() {\r\n return this.dateRangeBox.option(\"_currentSelection\")\r\n }\r\n _getCalendarCurrentSelection() {\r\n return this._widget.option(\"_currentSelection\")\r\n }\r\n _closeDropDownByEnter() {\r\n if (\"startDate\" === this._getCalendarCurrentSelection()) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n dateBoxValue() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n _cellClickHandler() {}\r\n setActiveStartDateBox() {\r\n this.dateBox = this.dateRangeBox.getStartDateBox()\r\n }\r\n setActiveEndDateBox() {\r\n this.dateBox = this.dateRangeBox.getEndDateBox()\r\n }\r\n getDateRangeBox() {\r\n return this.dateRangeBox\r\n }\r\n}\r\nexport default RangeCalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_range_box/ui.multiselect_date_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport DateBox from \"../date_box/ui.date_box.mask\";\r\nimport RangeCalendarStrategy from \"./strategy/rangeCalendar\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDeserializedDate,\r\n monthDifference\r\n} from \"./ui.date_range.utils\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar START_DATEBOX_CLASS = \"dx-start-datebox\";\r\nclass MultiselectDateBox extends DateBox {\r\n _initStrategy() {\r\n this._strategy = new RangeCalendarStrategy(this)\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._renderInputClickEvent()\r\n }\r\n _renderInputClickEvent() {\r\n var clickEventName = addNamespace(\"dxclick\", this.NAME);\r\n eventsEngine.off(this._input(), clickEventName);\r\n eventsEngine.on(this._input(), clickEventName, e => {\r\n this._processValueChange(e)\r\n })\r\n }\r\n _applyButtonHandler(_ref) {\r\n var {\r\n event: event\r\n } = _ref;\r\n var value = this._strategy.getValue();\r\n this._strategy.dateRangeBox.updateValue(value, event);\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n }\r\n _openHandler(e) {\r\n if (this._strategy.dateRangeBox.option(\"opened\")) {\r\n return\r\n }\r\n super._openHandler(e)\r\n }\r\n _renderOpenedState() {\r\n var {\r\n opened: opened\r\n } = this.option();\r\n this._getDateRangeBox().option(\"opened\", opened);\r\n if (this._isStartDateBox()) {\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this._getDateRangeBox()._popupContentIdentifier(this._getControlsAria());\r\n this._setPopupOption(\"visible\", opened);\r\n this._getDateRangeBox()._setAriaAttributes()\r\n }\r\n }\r\n _getDateRangeBox() {\r\n return this._strategy.dateRangeBox\r\n }\r\n _isStartDateBox() {\r\n return this.$element().hasClass(START_DATEBOX_CLASS)\r\n }\r\n _renderPopup() {\r\n super._renderPopup();\r\n if (this._isStartDateBox()) {\r\n var dateRangeBox = this._strategy.dateRangeBox;\r\n dateRangeBox._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n }\r\n }\r\n _popupShownHandler() {\r\n var _this$_strategy$dateR;\r\n super._popupShownHandler();\r\n null === (_this$_strategy$dateR = this._strategy.dateRangeBox._validationMessage) || void 0 === _this$_strategy$dateR ? void 0 : _this$_strategy$dateR.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n }\r\n _popupHiddenHandler() {\r\n var _this$_strategy$dateR2;\r\n super._popupHiddenHandler();\r\n null === (_this$_strategy$dateR2 = this._strategy.dateRangeBox._validationMessage) || void 0 === _this$_strategy$dateR2 ? void 0 : _this$_strategy$dateR2.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n }\r\n _focusInHandler(e) {\r\n super._focusInHandler(e);\r\n this._processValueChange(e)\r\n }\r\n _popupTabHandler(e) {\r\n var $element = $(e.target);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement())) {\r\n this._strategy.dateRangeBox.getEndDateBox().focus();\r\n e.preventDefault()\r\n }\r\n if (!e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n this._strategy.dateRangeBox.getStartDateBox().focus();\r\n e.preventDefault()\r\n }\r\n }\r\n _processValueChange(e) {\r\n var {\r\n target: target\r\n } = e;\r\n var [startDateInput, endDateInput] = this._strategy.dateRangeBox.field();\r\n if ($(target).is(startDateInput)) {\r\n this._strategy.dateRangeBox.option(\"_currentSelection\", \"startDate\")\r\n }\r\n if ($(target).is(endDateInput)) {\r\n this._strategy.dateRangeBox.option(\"_currentSelection\", \"endDate\")\r\n }\r\n if (!this._strategy.dateRangeBox.getStartDateBox()._strategy._widget) {\r\n return\r\n }\r\n var calendar = this._strategy.dateRangeBox.getStartDateBox()._strategy._widget;\r\n var value = calendar.option(\"value\");\r\n var startDate = getDeserializedDate(value[0]);\r\n var endDate = getDeserializedDate(value[1]);\r\n if ($(target).is(startDateInput)) {\r\n if (startDate) {\r\n calendar._skipNavigate = true;\r\n calendar.option(\"currentDate\", startDate)\r\n }\r\n this._strategy.setActiveStartDateBox();\r\n calendar.option(\"_currentSelection\", \"startDate\");\r\n if (this._strategy.dateRangeBox.option(\"disableOutOfRangeSelection\")) {\r\n calendar._setViewsMaxOption(endDate)\r\n }\r\n }\r\n if ($(target).is(endDateInput)) {\r\n if (endDate) {\r\n if (startDate && monthDifference(startDate, endDate) > 1) {\r\n calendar.option(\"currentDate\", calendar._getDateByOffset(null, endDate));\r\n calendar.option(\"currentDate\", calendar._getDateByOffset(-1, endDate))\r\n }\r\n calendar._skipNavigate = true;\r\n calendar.option(\"currentDate\", endDate)\r\n }\r\n this._strategy.dateRangeBox.getStartDateBox()._strategy.setActiveEndDateBox();\r\n calendar.option(\"_currentSelection\", \"endDate\");\r\n if (this._strategy.dateRangeBox.option(\"disableOutOfRangeSelection\")) {\r\n calendar._setViewsMinOption(startDate)\r\n }\r\n }\r\n }\r\n _invalidate() {\r\n super._invalidate();\r\n this._refreshStrategy()\r\n }\r\n _updateInternalValidationState(isValid, validationMessage) {\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n message: validationMessage\r\n }\r\n })\r\n }\r\n _recallInternalValidation(value) {\r\n this._applyInternalValidation(value)\r\n }\r\n _isTargetOutOfComponent(target) {\r\n var $dateRangeBox = this._strategy.dateRangeBox.$element();\r\n var isTargetOutOfDateRangeBox = 0 === $(target).closest($dateRangeBox).length;\r\n return super._isTargetOutOfComponent(target) && isTargetOutOfDateRangeBox\r\n }\r\n _updateLabelWidth() {\r\n var $beforeButtonsContainer = this._strategy.dateRangeBox._$beforeButtonsContainer;\r\n var {\r\n labelMode: labelMode\r\n } = this.option();\r\n if (\"outside\" === labelMode && $beforeButtonsContainer && this._isStartDateBox()) {\r\n this._label._updateLabelTransform(getWidth($beforeButtonsContainer));\r\n return\r\n }\r\n super._updateLabelWidth()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"isValid\":\r\n var isValid = this._strategy.dateRangeBox.option(\"isValid\");\r\n if (this._skipIsValidOptionChange || isValid === args.value) {\r\n super._optionChanged(args);\r\n return\r\n }\r\n this._skipIsValidOptionChange = true;\r\n this.option({\r\n isValid: isValid\r\n });\r\n this._skipIsValidOptionChange = false;\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n close() {\r\n this._strategy.getDateRangeBox().getStartDateBox().option(\"opened\", false)\r\n }\r\n}\r\nexport default MultiselectDateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_range_box/ui.date_range_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport config from \"../../core/config\";\r\nimport devices from \"../../core/devices\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isFluent\r\n} from \"../themes\";\r\nimport Editor from \"../editor/editor\";\r\nimport MultiselectDateBox from \"./ui.multiselect_date_box\";\r\nimport TextEditorButtonCollection from \"../text_box/texteditor_button_collection/index\";\r\nimport DropDownButton from \"../drop_down_editor/ui.drop_down_button\";\r\nimport ClearButton from \"../text_box/ui.text_editor.clear\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isSameDates,\r\n isSameDateArrays,\r\n sortDatesArray,\r\n getDeserializedDate\r\n} from \"./ui.date_range.utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar DATERANGEBOX_CLASS = \"dx-daterangebox\";\r\nvar TEXTEDITOR_LABEL_STATIC_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_LABEL_OUTSIDE_CLASS = \"dx-texteditor-label-outside\";\r\nvar TEXTEDITOR_LABEL_FLOATING_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar START_DATEBOX_CLASS = \"dx-start-datebox\";\r\nvar END_DATEBOX_CLASS = \"dx-end-datebox\";\r\nvar DATERANGEBOX_SEPARATOR_CLASS = \"dx-daterangebox-separator\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_ACTIVE_CLASS = \"dx-dropdowneditor-active\";\r\nvar SEPARATOR_ICON_NAME = \"to\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\", \"EnterKey\"];\r\nclass DateRangeBox extends Editor {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n acceptCustomValue: true,\r\n activeStateEnabled: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n applyValueMode: \"instantly\",\r\n buttons: void 0,\r\n calendarOptions: {},\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n endDateOutOfRangeMessage: messageLocalization.format(\"dxDateRangeBox-endDateOutOfRangeMessage\"),\r\n dateSerializationFormat: void 0,\r\n deferRendering: true,\r\n disableOutOfRangeSelection: false,\r\n disabledDates: null,\r\n displayFormat: null,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n dropDownOptions: {},\r\n endDate: null,\r\n endDateInputAttr: {},\r\n endDateLabel: messageLocalization.format(\"dxDateRangeBox-endDateLabel\"),\r\n endDateName: \"\",\r\n endDatePlaceholder: \"\",\r\n endDateText: void 0,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n invalidStartDateMessage: messageLocalization.format(\"dxDateRangeBox-invalidStartDateMessage\"),\r\n invalidEndDateMessage: messageLocalization.format(\"dxDateRangeBox-invalidEndDateMessage\"),\r\n isValid: true,\r\n labelMode: \"static\",\r\n max: void 0,\r\n min: void 0,\r\n multiView: true,\r\n onChange: null,\r\n onClosed: null,\r\n onCopy: null,\r\n onCut: null,\r\n onEnterKey: null,\r\n onInput: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onOpened: null,\r\n onPaste: null,\r\n onValueChanged: null,\r\n openOnFieldClick: true,\r\n opened: false,\r\n pickerType: \"calendar\",\r\n readOnly: false,\r\n showClearButton: false,\r\n showDropDownButton: true,\r\n spellcheck: false,\r\n startDate: null,\r\n startDateInputAttr: {},\r\n startDateLabel: messageLocalization.format(\"dxDateRangeBox-startDateLabel\"),\r\n startDateName: \"\",\r\n startDateOutOfRangeMessage: messageLocalization.format(\"dxDateRangeBox-startDateOutOfRangeMessage\"),\r\n startDatePlaceholder: \"\",\r\n startDateText: void 0,\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n useHiddenSubmitElement: false,\r\n useMaskBehavior: false,\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"auto\",\r\n validationStatus: \"valid\",\r\n value: [null, null],\r\n valueChangeEvent: \"change\",\r\n _internalValidationErrors: [],\r\n _currentSelection: \"startDate\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n labelMode: \"floating\",\r\n stylingMode: config().editorStylingMode || \"filled\"\r\n }\r\n }, {\r\n device: function() {\r\n var themeName = current();\r\n return isFluent(themeName)\r\n },\r\n options: {\r\n labelMode: \"outside\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n multiView: false\r\n }\r\n }])\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n var {\r\n value: initialValue\r\n } = this.initialOption();\r\n var {\r\n value: value,\r\n startDate: startDate,\r\n endDate: endDate\r\n } = this.option();\r\n if (value[0] && value[1] && getDeserializedDate(value[0]) > getDeserializedDate(value[1])) {\r\n value = [value[1], value[0]]\r\n }\r\n if (startDate && endDate && getDeserializedDate(startDate) > getDeserializedDate(endDate)) {\r\n [startDate, endDate] = [endDate, startDate]\r\n }\r\n if (isSameDateArrays(initialValue, value)) {\r\n value = [startDate, endDate]\r\n } else {\r\n [startDate, endDate] = value\r\n }\r\n this.option({\r\n startDate: startDate,\r\n endDate: endDate,\r\n value: value\r\n })\r\n }\r\n _createOpenAction() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _raiseOpenAction() {\r\n if (!this._openAction) {\r\n this._createOpenAction()\r\n }\r\n this._openAction()\r\n }\r\n _createCloseAction() {\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _raiseCloseAction() {\r\n if (!this._closeAction) {\r\n this._createCloseAction()\r\n }\r\n this._closeAction()\r\n }\r\n _createEventAction(eventName) {\r\n this[\"_\".concat(camelize(eventName), \"Action\")] = this._createActionByOption(\"on\".concat(eventName), {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _raiseAction(eventName, event) {\r\n var action = this[\"_\".concat(camelize(eventName), \"Action\")];\r\n if (!action) {\r\n this._createEventAction(eventName)\r\n }\r\n this[\"_\".concat(camelize(eventName), \"Action\")]({\r\n event: event\r\n })\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n }))\r\n });\r\n this.callBase()\r\n }\r\n _getDefaultButtons() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }, {\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }]\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DATERANGEBOX_CLASS).addClass(TEXTEDITOR_CLASS).addClass(DROP_DOWN_EDITOR_CLASS);\r\n this._toggleDropDownEditorActiveClass();\r\n this._toggleEditorLabelClass();\r\n this._toggleReadOnlyState();\r\n this._renderStylingMode();\r\n this._renderEndDateBox();\r\n this._renderSeparator();\r\n this._renderStartDateBox();\r\n this._toggleEmptinessState();\r\n this._renderEmptinessEvent();\r\n this._renderButtonsContainer();\r\n super._initMarkup();\r\n this.$element().removeClass(INVALID_BADGE_CLASS)\r\n }\r\n _renderEmptinessEvent() {\r\n var eventName = addNamespace(\"input blur\", this.NAME);\r\n eventsEngine.off(this._focusTarget(), eventName);\r\n eventsEngine.on(this._focusTarget(), eventName, this._toggleEmptinessState.bind(this))\r\n }\r\n _toggleEmptinessState() {\r\n var isEmpty = this.getStartDateBox().$element().hasClass(TEXTEDITOR_EMPTY_INPUT_CLASS) && this.getEndDateBox().$element().hasClass(TEXTEDITOR_EMPTY_INPUT_CLASS);\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty)\r\n }\r\n _attachKeyboardEvents() {\r\n if (!this.option(\"readOnly\")) {\r\n super._attachKeyboardEvents()\r\n }\r\n }\r\n _toggleReadOnlyState() {\r\n var {\r\n readOnly: readOnly\r\n } = this.option();\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly)\r\n }\r\n _toggleDropDownEditorActiveClass() {\r\n var {\r\n opened: opened\r\n } = this.option();\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE_CLASS, opened)\r\n }\r\n _toggleEditorLabelClass() {\r\n var {\r\n startDateLabel: startDateLabel,\r\n endDateLabel: endDateLabel,\r\n labelMode: labelMode\r\n } = this.option();\r\n var isLabelVisible = (!!startDateLabel || !!endDateLabel) && \"hidden\" !== labelMode;\r\n this.$element().removeClass(TEXTEDITOR_LABEL_FLOATING_CLASS).removeClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS).removeClass(TEXTEDITOR_LABEL_STATIC_CLASS);\r\n if (isLabelVisible) {\r\n this.$element().addClass(\"floating\" === labelMode ? TEXTEDITOR_LABEL_FLOATING_CLASS : TEXTEDITOR_LABEL_STATIC_CLASS);\r\n if (\"outside\" === labelMode) {\r\n this.$element().addClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS)\r\n }\r\n }\r\n }\r\n _renderStartDateBox() {\r\n this._$startDateBox = $(\"<div>\").addClass(START_DATEBOX_CLASS).prependTo(this.$element());\r\n this._startDateBox = this._createComponent(this._$startDateBox, MultiselectDateBox, this._getStartDateBoxConfig());\r\n this._startDateBox.NAME = \"_StartDateBox\"\r\n }\r\n _renderEndDateBox() {\r\n this._$endDateBox = $(\"<div>\").addClass(END_DATEBOX_CLASS).appendTo(this.$element());\r\n this._endDateBox = this._createComponent(this._$endDateBox, MultiselectDateBox, this._getEndDateBoxConfig());\r\n this._endDateBox.NAME = \"_EndDateBox\"\r\n }\r\n _renderSeparator() {\r\n var $icon = getImageContainer(SEPARATOR_ICON_NAME);\r\n this._$separator = $(\"<div>\").addClass(DATERANGEBOX_SEPARATOR_CLASS).prependTo(this.$element());\r\n this._renderPreventBlurOnSeparatorClick();\r\n $icon.appendTo(this._$separator)\r\n }\r\n _renderPreventBlurOnSeparatorClick() {\r\n var eventName = addNamespace(\"mousedown\", this.NAME);\r\n eventsEngine.off(this._$separator, eventName);\r\n eventsEngine.on(this._$separator, eventName, e => {\r\n if (!this._hasActiveElement()) {\r\n this.focus()\r\n }\r\n e.preventDefault()\r\n })\r\n }\r\n _renderButtonsContainer() {\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n var {\r\n buttons: buttons\r\n } = this.option();\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this.$element());\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this.$element())\r\n }\r\n _updateButtons(names) {\r\n this._buttonCollection.updateButtons(names)\r\n }\r\n _openHandler() {\r\n this._toggleOpenState()\r\n }\r\n _shouldCallOpenHandler() {\r\n return true\r\n }\r\n _toggleOpenState() {\r\n var {\r\n opened: opened\r\n } = this.option();\r\n if (!opened) {\r\n this.getStartDateBox()._focusInput()\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n this.option(\"opened\", !this.option(\"opened\"))\r\n }\r\n }\r\n _clearValueHandler(e) {\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this.clear();\r\n !this._isStartDateActiveElement() && this.focus();\r\n eventsEngine.trigger($(this.startDateField()), \"input\")\r\n }\r\n _isClearButtonVisible() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n }\r\n _focusInHandler(event) {\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n super._focusInHandler(event)\r\n }\r\n _focusOutHandler(event) {\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n super._focusOutHandler(event)\r\n }\r\n _shouldSkipFocusEvent(event) {\r\n var {\r\n target: target,\r\n relatedTarget: relatedTarget\r\n } = event;\r\n return $(target).is(this.startDateField()) && $(relatedTarget).is(this.endDateField()) || $(target).is(this.endDateField()) && $(relatedTarget).is(this.startDateField())\r\n }\r\n _getPickerType() {\r\n var {\r\n pickerType: pickerType\r\n } = this.option();\r\n return [\"calendar\", \"native\"].includes(pickerType) ? pickerType : \"calendar\"\r\n }\r\n _getRestErrors(allErrors, partialErrors) {\r\n return allErrors.filter(error => !partialErrors.some(prevError => error.message === prevError.message))\r\n }\r\n _syncValidationErrors(optionName, newPartialErrors, previousPartialErrors) {\r\n newPartialErrors || (newPartialErrors = []);\r\n previousPartialErrors || (previousPartialErrors = []);\r\n var allErrors = this.option(optionName) || [];\r\n var otherErrors = this._getRestErrors(allErrors, previousPartialErrors);\r\n this.option(optionName, [...otherErrors, ...newPartialErrors])\r\n }\r\n _getDateBoxConfig() {\r\n var options = this.option();\r\n var dateBoxConfig = {\r\n acceptCustomValue: options.acceptCustomValue,\r\n activeStateEnabled: options.activeStateEnabled,\r\n applyValueMode: options.applyValueMode,\r\n dateOutOfRangeMessage: options.dateOutOfRangeMessage,\r\n dateSerializationFormat: options.dateSerializationFormat,\r\n deferRendering: options.deferRendering,\r\n disabled: options.disabled,\r\n displayFormat: options.displayFormat,\r\n focusStateEnabled: options.focusStateEnabled,\r\n isValid: options.isValid,\r\n tabIndex: options.tabIndex,\r\n height: options.height,\r\n hoverStateEnabled: options.hoverStateEnabled,\r\n labelMode: options.labelMode,\r\n max: options.max,\r\n min: options.min,\r\n openOnFieldClick: options.openOnFieldClick,\r\n pickerType: this._getPickerType(),\r\n readOnly: options.readOnly,\r\n rtlEnabled: options.rtlEnabled,\r\n spellcheck: options.spellcheck,\r\n stylingMode: options.stylingMode,\r\n type: \"date\",\r\n useMaskBehavior: options.useMaskBehavior,\r\n validationMessageMode: options.validationMessageMode,\r\n validationMessagePosition: options.validationMessagePosition,\r\n valueChangeEvent: options.valueChangeEvent,\r\n onKeyDown: options.onKeyDown,\r\n onKeyUp: options.onKeyUp,\r\n onChange: options.onChange,\r\n onInput: options.onInput,\r\n onCut: options.onCut,\r\n onCopy: options.onCopy,\r\n onPaste: options.onPaste,\r\n onEnterKey: options.onEnterKey,\r\n _dateRangeBoxInstance: this,\r\n _showValidationMessage: false\r\n };\r\n each(EVENTS_LIST, (_, eventName) => {\r\n var optionName = \"on\".concat(eventName);\r\n if (this.hasActionSubscription(optionName)) {\r\n dateBoxConfig[optionName] = e => {\r\n this._raiseAction(eventName, e.event)\r\n }\r\n }\r\n });\r\n return dateBoxConfig\r\n }\r\n _hideOnOutsideClickHandler(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n }\r\n _getStartDateBoxConfig() {\r\n var _options$dropDownOpti;\r\n var options = this.option();\r\n return _extends({}, this._getDateBoxConfig(), {\r\n applyButtonText: options.applyButtonText,\r\n calendarOptions: options.calendarOptions,\r\n cancelButtonText: options.cancelButtonText,\r\n dateOutOfRangeMessage: options.startDateOutOfRangeMessage,\r\n deferRendering: options.deferRendering,\r\n disabledDates: null === (_options$dropDownOpti = options.dropDownOptions) || void 0 === _options$dropDownOpti ? void 0 : _options$dropDownOpti.disabledDates,\r\n dropDownOptions: _extends({\r\n showTitle: false,\r\n title: \"\",\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n hideOnParentScroll: false,\r\n preventScrollEvents: false\r\n }, options.dropDownOptions),\r\n invalidDateMessage: options.invalidStartDateMessage,\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n event: event\r\n } = _ref2;\r\n var newValue = [value, this.option(\"value\")[1]];\r\n this.updateValue(newValue, event)\r\n },\r\n opened: options.opened,\r\n onOpened: () => {\r\n this._raiseOpenAction()\r\n },\r\n onClosed: () => {\r\n this._raiseCloseAction()\r\n },\r\n onOptionChanged: args => {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n if (\"text\" === name) {\r\n this.option(\"startDateText\", value)\r\n }\r\n if (\"validationErrors\" === name) {\r\n this._syncValidationErrors(\"_internalValidationErrors\", value, previousValue)\r\n }\r\n },\r\n todayButtonText: options.todayButtonText,\r\n showClearButton: false,\r\n showDropDownButton: false,\r\n value: this.option(\"value\")[0],\r\n label: options.startDateLabel,\r\n placeholder: options.startDatePlaceholder,\r\n inputAttr: options.startDateInputAttr,\r\n name: options.startDateName,\r\n _showValidationIcon: false\r\n })\r\n }\r\n _getEndDateBoxConfig() {\r\n var options = this.option();\r\n return _extends({}, this._getDateBoxConfig(), {\r\n invalidDateMessage: options.invalidEndDateMessage,\r\n dateOutOfRangeMessage: options.endDateOutOfRangeMessage,\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value,\r\n event: event\r\n } = _ref3;\r\n var newValue = [this.option(\"value\")[0], value];\r\n this.updateValue(newValue, event)\r\n },\r\n onOptionChanged: args => {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n if (\"text\" === name) {\r\n this.option(\"endDateText\", value)\r\n }\r\n if (\"validationErrors\" === name) {\r\n this._syncValidationErrors(\"_internalValidationErrors\", value, previousValue)\r\n }\r\n },\r\n opened: options.opened,\r\n showClearButton: false,\r\n showDropDownButton: false,\r\n value: this.option(\"value\")[1],\r\n label: options.endDateLabel,\r\n placeholder: options.endDatePlaceholder,\r\n deferRendering: true,\r\n inputAttr: options.endDateInputAttr,\r\n name: options.endDateName\r\n })\r\n }\r\n _getValidationMessagePosition() {\r\n var {\r\n validationMessagePosition: validationMessagePosition\r\n } = this.option();\r\n if (\"auto\" === validationMessagePosition) {\r\n return this.option(\"opened\") ? \"top\" : \"bottom\"\r\n }\r\n return validationMessagePosition\r\n }\r\n _getSerializedDates(_ref4) {\r\n var [startDate, endDate] = _ref4;\r\n return [this.getStartDateBox()._serializeDate(getDeserializedDate(startDate)), this.getStartDateBox()._serializeDate(getDeserializedDate(endDate))]\r\n }\r\n updateValue(newValue, event) {\r\n if (!isSameDateArrays(newValue, this.option(\"value\"))) {\r\n if (event) {\r\n this._saveValueChangeEvent(event)\r\n }\r\n this.option(\"value\", this._getSerializedDates(newValue))\r\n }\r\n }\r\n _updateDateBoxesValue(newValue) {\r\n var startDateBox = this.getStartDateBox();\r\n var endDateBox = this.getEndDateBox();\r\n var [newStartDate, newEndDate] = newValue;\r\n var oldStartDate = startDateBox.option(\"value\");\r\n var oldEndDate = endDateBox.option(\"value\");\r\n if (!isSameDates(newStartDate, oldStartDate)) {\r\n startDateBox.option(\"value\", newStartDate)\r\n }\r\n if (!isSameDates(newEndDate, oldEndDate)) {\r\n endDateBox.option(\"value\", newEndDate)\r\n }\r\n }\r\n _renderAccessKey() {\r\n var $startDateInput = $(this.field()[0]);\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $startDateInput.attr(\"accesskey\", accessKey)\r\n }\r\n _focusTarget() {\r\n return this.$element().find(\".\".concat(TEXTEDITOR_INPUT_CLASS))\r\n }\r\n _focusEventTarget() {\r\n return this.element()\r\n }\r\n _focusClassTarget() {\r\n return this.$element()\r\n }\r\n _toggleFocusClass(isFocused, $element) {\r\n super._toggleFocusClass(isFocused, this._focusClassTarget($element))\r\n }\r\n _hasActiveElement() {\r\n return this._isStartDateActiveElement() || this._isEndDateActiveElement()\r\n }\r\n _isStartDateActiveElement() {\r\n return this._isActiveElement(this.startDateField())\r\n }\r\n _isEndDateActiveElement() {\r\n return this._isActiveElement(this.endDateField())\r\n }\r\n _isActiveElement(input) {\r\n return $(input).is(domAdapter.getActiveElement(input))\r\n }\r\n _popupContentIdentifier(identifier) {\r\n if (identifier) {\r\n this._popupContentId = identifier\r\n }\r\n return this._popupContentId\r\n }\r\n _setAriaAttributes() {\r\n var {\r\n opened: opened\r\n } = this.option();\r\n var arias = {\r\n expanded: opened,\r\n controls: this._popupContentIdentifier()\r\n };\r\n var ariaOwns = opened ? this._popupContentIdentifier() : void 0;\r\n this.setAria(arias);\r\n this.setAria(\"owns\", ariaOwns, this.$element())\r\n }\r\n _cleanButtonContainers() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null\r\n }\r\n _applyCustomValidation(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: value\r\n })\r\n }\r\n _clean() {\r\n var _this$_$startDateBox, _this$_$endDateBox, _this$_$separator;\r\n this._cleanButtonContainers();\r\n null === (_this$_$startDateBox = this._$startDateBox) || void 0 === _this$_$startDateBox ? void 0 : _this$_$startDateBox.remove();\r\n null === (_this$_$endDateBox = this._$endDateBox) || void 0 === _this$_$endDateBox ? void 0 : _this$_$endDateBox.remove();\r\n null === (_this$_$separator = this._$separator) || void 0 === _this$_$separator ? void 0 : _this$_$separator.remove();\r\n super._clean()\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"acceptCustomValue\":\r\n case \"dateSerializationFormat\":\r\n case \"displayFormat\":\r\n case \"max\":\r\n case \"min\":\r\n case \"openOnFieldClick\":\r\n case \"spellcheck\":\r\n case \"useMaskBehavior\":\r\n case \"valueChangeEvent\":\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n break;\r\n case \"rtlEnabled\":\r\n super._optionChanged(args);\r\n break;\r\n case \"labelMode\":\r\n this._toggleEditorLabelClass();\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n break;\r\n case \"applyButtonText\":\r\n case \"applyValueMode\":\r\n case \"cancelButtonText\":\r\n case \"deferRendering\":\r\n case \"disabledDates\":\r\n case \"todayButtonText\":\r\n this.getStartDateBox().option(name, value);\r\n break;\r\n case \"opened\":\r\n this._toggleDropDownEditorActiveClass();\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox()._setOptionWithoutOptionChange(name, value);\r\n break;\r\n case \"buttons\":\r\n this._cleanButtonContainers();\r\n this._renderButtonsContainer();\r\n break;\r\n case \"calendarOptions\":\r\n case \"dropDownOptions\":\r\n this.getStartDateBox().option(fullName, value);\r\n break;\r\n case \"pickerType\":\r\n var pickerType = this._getPickerType();\r\n this.getStartDateBox().option(name, pickerType);\r\n this.getEndDateBox().option(name, pickerType);\r\n break;\r\n case \"dateOutOfRangeMessage\":\r\n break;\r\n case \"height\":\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"endDate\":\r\n this.updateValue([this.option(\"value\")[0], value]);\r\n break;\r\n case \"startDateLabel\":\r\n this._toggleEditorLabelClass();\r\n this.getStartDateBox().option(\"label\", value);\r\n break;\r\n case \"endDateLabel\":\r\n this._toggleEditorLabelClass();\r\n this.getEndDateBox().option(\"label\", value);\r\n break;\r\n case \"startDatePlaceholder\":\r\n this.getStartDateBox().option(\"placeholder\", value);\r\n break;\r\n case \"endDatePlaceholder\":\r\n this.getEndDateBox().option(\"placeholder\", value);\r\n break;\r\n case \"startDateInputAttr\":\r\n this.getStartDateBox().option(\"inputAttr\", value);\r\n break;\r\n case \"startDateName\":\r\n this.getStartDateBox().option(\"name\", value);\r\n break;\r\n case \"endDateInputAttr\":\r\n this.getEndDateBox().option(\"inputAttr\", value);\r\n break;\r\n case \"endDateName\":\r\n this.getEndDateBox().option(\"name\", value);\r\n break;\r\n case \"multiView\":\r\n this.getStartDateBox().option(\"calendarOptions.viewsCount\", value ? 2 : 1);\r\n break;\r\n case \"tabIndex\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n super._optionChanged(args);\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"onOpened\":\r\n this._createOpenAction();\r\n break;\r\n case \"onClosed\":\r\n this._createCloseAction();\r\n break;\r\n case \"onKeyDown\":\r\n case \"onKeyUp\":\r\n case \"onChange\":\r\n case \"onInput\":\r\n case \"onCut\":\r\n case \"onCopy\":\r\n case \"onPaste\":\r\n case \"onEnterKey\":\r\n this._createEventAction(name.replace(\"on\", \"\"));\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n super._optionChanged(args);\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n break;\r\n case \"disableOutOfRangeSelection\":\r\n break;\r\n case \"startDate\":\r\n this.updateValue([value, this.option(\"value\")[1]]);\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n break;\r\n case \"startDateText\":\r\n case \"endDateText\":\r\n case \"useHiddenSubmitElement\":\r\n break;\r\n case \"invalidStartDateMessage\":\r\n this.getStartDateBox().option(\"invalidDateMessage\", value);\r\n break;\r\n case \"invalidEndDateMessage\":\r\n this.getEndDateBox().option(\"invalidDateMessage\", value);\r\n break;\r\n case \"startDateOutOfRangeMessage\":\r\n this.getStartDateBox().option(\"dateOutOfRangeMessage\", value);\r\n break;\r\n case \"endDateOutOfRangeMessage\":\r\n this.getEndDateBox().option(\"dateOutOfRangeMessage\", value);\r\n break;\r\n case \"validationMessagePosition\":\r\n this.getStartDateBox().option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"_internalValidationErrors\":\r\n this._syncValidationErrors(\"validationErrors\", value, previousValue);\r\n var validationErrors = this.option(\"validationErrors\");\r\n this.option(\"isValid\", !(null !== validationErrors && void 0 !== validationErrors && validationErrors.length));\r\n break;\r\n case \"isValid\":\r\n this.getStartDateBox().option(name, value);\r\n this.getEndDateBox().option(name, value);\r\n var isValid = value && !this.option(\"_internalValidationErrors\").length;\r\n if (this._shouldSkipIsValidChange || isValid === value) {\r\n super._optionChanged(args);\r\n return\r\n }\r\n this._shouldSkipIsValidChange = true;\r\n this.option(\"isValid\", isValid);\r\n this._shouldSkipIsValidChange = false;\r\n break;\r\n case \"validationErrors\":\r\n var internalValidationErrors = this.option(\"_internalValidationErrors\") || [];\r\n var allErrors = value || [];\r\n var externalErrors = this._getRestErrors(allErrors, internalValidationErrors);\r\n var errors = [...externalErrors, ...internalValidationErrors];\r\n var newValue = errors.length ? errors : null;\r\n this._options.silent(\"validationErrors\", newValue);\r\n super._optionChanged(_extends({}, args, {\r\n value: newValue\r\n }));\r\n break;\r\n case \"value\":\r\n var _newValue = sortDatesArray(value);\r\n if (!isSameDateArrays(_newValue, previousValue)) {\r\n var isDirty = !isSameDateArrays(_newValue, this._initialValue);\r\n this.option(\"isDirty\", isDirty);\r\n this._setOptionWithoutOptionChange(\"value\", _newValue);\r\n this._setOptionWithoutOptionChange(\"startDate\", _newValue[0]);\r\n this._setOptionWithoutOptionChange(\"endDate\", _newValue[1]);\r\n this._applyCustomValidation(_newValue);\r\n this._updateDateBoxesValue(_newValue);\r\n this.getStartDateBox()._strategy.renderValue();\r\n this._toggleEmptinessState();\r\n this._raiseValueChangeAction(_newValue, previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"_currentSelection\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n getStartDateBox() {\r\n return this._startDateBox\r\n }\r\n getEndDateBox() {\r\n return this._endDateBox\r\n }\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n }\r\n open() {\r\n this.option(\"opened\", true)\r\n }\r\n close() {\r\n this.option(\"opened\", false)\r\n }\r\n content() {\r\n return this.getStartDateBox().content()\r\n }\r\n field() {\r\n return [this.startDateField(), this.endDateField()]\r\n }\r\n startDateField() {\r\n return this.getStartDateBox().field()\r\n }\r\n endDateField() {\r\n return this.getEndDateBox().field()\r\n }\r\n focus() {\r\n this.getStartDateBox().focus()\r\n }\r\n reset() {\r\n super.reset();\r\n var startDateBox = this.getStartDateBox();\r\n var endDateBox = this.getEndDateBox();\r\n startDateBox.reset();\r\n endDateBox.reset();\r\n startDateBox._updateInternalValidationState(true);\r\n endDateBox._updateInternalValidationState(true)\r\n }\r\n clear() {\r\n super.clear();\r\n this.getEndDateBox().clear();\r\n this.getStartDateBox().clear()\r\n }\r\n}\r\nregisterComponent(\"dxDateRangeBox\", DateRangeBox);\r\nexport default DateRangeBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_range_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateRangeBox from \"./date_range_box/ui.date_range_box\";\r\nexport default DateRangeBox;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxDateRangeBox from 'devextreme/ui/date_range_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiButtonModule, DxoOptionsModule, DxoCalendarOptionsModule, DxoDisplayFormatModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxDateRangeBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxDateRangeBox]\r\n\r\n */\r\nclass DxDateRangeBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'applyButtonTextChange' },\r\n { emit: 'applyValueModeChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'calendarOptionsChange' },\r\n { emit: 'cancelButtonTextChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disableOutOfRangeSelectionChange' },\r\n { emit: 'displayFormatChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endDateChange' },\r\n { emit: 'endDateInputAttrChange' },\r\n { emit: 'endDateLabelChange' },\r\n { emit: 'endDateNameChange' },\r\n { emit: 'endDateOutOfRangeMessageChange' },\r\n { emit: 'endDatePlaceholderChange' },\r\n { emit: 'endDateTextChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'invalidEndDateMessageChange' },\r\n { emit: 'invalidStartDateMessageChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'minChange' },\r\n { emit: 'multiViewChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'startDateChange' },\r\n { emit: 'startDateInputAttrChange' },\r\n { emit: 'startDateLabelChange' },\r\n { emit: 'startDateNameChange' },\r\n { emit: 'startDateOutOfRangeMessageChange' },\r\n { emit: 'startDatePlaceholderChange' },\r\n { emit: 'startDateTextChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'todayButtonTextChange' },\r\n { emit: 'useMaskBehaviorChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.applyButtonText]\r\n \r\n */\r\n get applyButtonText() {\r\n return this._getOption('applyButtonText');\r\n }\r\n set applyButtonText(value) {\r\n this._setOption('applyButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.applyValueMode]\r\n \r\n */\r\n get applyValueMode() {\r\n return this._getOption('applyValueMode');\r\n }\r\n set applyValueMode(value) {\r\n this._setOption('applyValueMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.calendarOptions]\r\n \r\n */\r\n get calendarOptions() {\r\n return this._getOption('calendarOptions');\r\n }\r\n set calendarOptions(value) {\r\n this._setOption('calendarOptions', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.cancelButtonText]\r\n \r\n */\r\n get cancelButtonText() {\r\n return this._getOption('cancelButtonText');\r\n }\r\n set cancelButtonText(value) {\r\n this._setOption('cancelButtonText', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.disableOutOfRangeSelection]\r\n \r\n */\r\n get disableOutOfRangeSelection() {\r\n return this._getOption('disableOutOfRangeSelection');\r\n }\r\n set disableOutOfRangeSelection(value) {\r\n this._setOption('disableOutOfRangeSelection', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.displayFormat]\r\n \r\n */\r\n get displayFormat() {\r\n return this._getOption('displayFormat');\r\n }\r\n set displayFormat(value) {\r\n this._setOption('displayFormat', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDate]\r\n \r\n */\r\n get endDate() {\r\n return this._getOption('endDate');\r\n }\r\n set endDate(value) {\r\n this._setOption('endDate', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDateInputAttr]\r\n \r\n */\r\n get endDateInputAttr() {\r\n return this._getOption('endDateInputAttr');\r\n }\r\n set endDateInputAttr(value) {\r\n this._setOption('endDateInputAttr', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDateLabel]\r\n \r\n */\r\n get endDateLabel() {\r\n return this._getOption('endDateLabel');\r\n }\r\n set endDateLabel(value) {\r\n this._setOption('endDateLabel', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDateName]\r\n \r\n */\r\n get endDateName() {\r\n return this._getOption('endDateName');\r\n }\r\n set endDateName(value) {\r\n this._setOption('endDateName', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDateOutOfRangeMessage]\r\n \r\n */\r\n get endDateOutOfRangeMessage() {\r\n return this._getOption('endDateOutOfRangeMessage');\r\n }\r\n set endDateOutOfRangeMessage(value) {\r\n this._setOption('endDateOutOfRangeMessage', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDatePlaceholder]\r\n \r\n */\r\n get endDatePlaceholder() {\r\n return this._getOption('endDatePlaceholder');\r\n }\r\n set endDatePlaceholder(value) {\r\n this._setOption('endDatePlaceholder', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.endDateText]\r\n \r\n */\r\n get endDateText() {\r\n return this._getOption('endDateText');\r\n }\r\n set endDateText(value) {\r\n this._setOption('endDateText', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.invalidEndDateMessage]\r\n \r\n */\r\n get invalidEndDateMessage() {\r\n return this._getOption('invalidEndDateMessage');\r\n }\r\n set invalidEndDateMessage(value) {\r\n this._setOption('invalidEndDateMessage', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.invalidStartDateMessage]\r\n \r\n */\r\n get invalidStartDateMessage() {\r\n return this._getOption('invalidStartDateMessage');\r\n }\r\n set invalidStartDateMessage(value) {\r\n this._setOption('invalidStartDateMessage', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.multiView]\r\n \r\n */\r\n get multiView() {\r\n return this._getOption('multiView');\r\n }\r\n set multiView(value) {\r\n this._setOption('multiView', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDate]\r\n \r\n */\r\n get startDate() {\r\n return this._getOption('startDate');\r\n }\r\n set startDate(value) {\r\n this._setOption('startDate', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDateInputAttr]\r\n \r\n */\r\n get startDateInputAttr() {\r\n return this._getOption('startDateInputAttr');\r\n }\r\n set startDateInputAttr(value) {\r\n this._setOption('startDateInputAttr', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDateLabel]\r\n \r\n */\r\n get startDateLabel() {\r\n return this._getOption('startDateLabel');\r\n }\r\n set startDateLabel(value) {\r\n this._setOption('startDateLabel', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDateName]\r\n \r\n */\r\n get startDateName() {\r\n return this._getOption('startDateName');\r\n }\r\n set startDateName(value) {\r\n this._setOption('startDateName', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDateOutOfRangeMessage]\r\n \r\n */\r\n get startDateOutOfRangeMessage() {\r\n return this._getOption('startDateOutOfRangeMessage');\r\n }\r\n set startDateOutOfRangeMessage(value) {\r\n this._setOption('startDateOutOfRangeMessage', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDatePlaceholder]\r\n \r\n */\r\n get startDatePlaceholder() {\r\n return this._getOption('startDatePlaceholder');\r\n }\r\n set startDatePlaceholder(value) {\r\n this._setOption('startDatePlaceholder', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.startDateText]\r\n \r\n */\r\n get startDateText() {\r\n return this._getOption('startDateText');\r\n }\r\n set startDateText(value) {\r\n this._setOption('startDateText', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.todayButtonText]\r\n \r\n */\r\n get todayButtonText() {\r\n return this._getOption('todayButtonText');\r\n }\r\n set todayButtonText(value) {\r\n this._setOption('todayButtonText', value);\r\n }\r\n /**\r\n * [descr:DateBoxBaseOptions.useMaskBehavior]\r\n \r\n */\r\n get useMaskBehavior() {\r\n return this._getOption('useMaskBehavior');\r\n }\r\n set useMaskBehavior(value) {\r\n this._setOption('useMaskBehavior', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxDateRangeBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDateRangeBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('validationErrors', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('validationErrors');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDateRangeBoxComponent.ɵfac = function DxDateRangeBoxComponent_Factory(t) { return new (t || DxDateRangeBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDateRangeBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDateRangeBoxComponent, selectors: [[\"dx-date-range-box\"]], contentQueries: function DxDateRangeBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, hostBindings: function DxDateRangeBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxDateRangeBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxDateRangeBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", applyButtonText: \"applyButtonText\", applyValueMode: \"applyValueMode\", buttons: \"buttons\", calendarOptions: \"calendarOptions\", cancelButtonText: \"cancelButtonText\", dateSerializationFormat: \"dateSerializationFormat\", deferRendering: \"deferRendering\", disabled: \"disabled\", disableOutOfRangeSelection: \"disableOutOfRangeSelection\", displayFormat: \"displayFormat\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", endDate: \"endDate\", endDateInputAttr: \"endDateInputAttr\", endDateLabel: \"endDateLabel\", endDateName: \"endDateName\", endDateOutOfRangeMessage: \"endDateOutOfRangeMessage\", endDatePlaceholder: \"endDatePlaceholder\", endDateText: \"endDateText\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", invalidEndDateMessage: \"invalidEndDateMessage\", invalidStartDateMessage: \"invalidStartDateMessage\", isDirty: \"isDirty\", isValid: \"isValid\", labelMode: \"labelMode\", max: \"max\", min: \"min\", multiView: \"multiView\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showDropDownButton: \"showDropDownButton\", spellcheck: \"spellcheck\", startDate: \"startDate\", startDateInputAttr: \"startDateInputAttr\", startDateLabel: \"startDateLabel\", startDateName: \"startDateName\", startDateOutOfRangeMessage: \"startDateOutOfRangeMessage\", startDatePlaceholder: \"startDatePlaceholder\", startDateText: \"startDateText\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", todayButtonText: \"todayButtonText\", useMaskBehavior: \"useMaskBehavior\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", applyButtonTextChange: \"applyButtonTextChange\", applyValueModeChange: \"applyValueModeChange\", buttonsChange: \"buttonsChange\", calendarOptionsChange: \"calendarOptionsChange\", cancelButtonTextChange: \"cancelButtonTextChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", disableOutOfRangeSelectionChange: \"disableOutOfRangeSelectionChange\", displayFormatChange: \"displayFormatChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", endDateChange: \"endDateChange\", endDateInputAttrChange: \"endDateInputAttrChange\", endDateLabelChange: \"endDateLabelChange\", endDateNameChange: \"endDateNameChange\", endDateOutOfRangeMessageChange: \"endDateOutOfRangeMessageChange\", endDatePlaceholderChange: \"endDatePlaceholderChange\", endDateTextChange: \"endDateTextChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", invalidEndDateMessageChange: \"invalidEndDateMessageChange\", invalidStartDateMessageChange: \"invalidStartDateMessageChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelModeChange: \"labelModeChange\", maxChange: \"maxChange\", minChange: \"minChange\", multiViewChange: \"multiViewChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showClearButtonChange: \"showClearButtonChange\", showDropDownButtonChange: \"showDropDownButtonChange\", spellcheckChange: \"spellcheckChange\", startDateChange: \"startDateChange\", startDateInputAttrChange: \"startDateInputAttrChange\", startDateLabelChange: \"startDateLabelChange\", startDateNameChange: \"startDateNameChange\", startDateOutOfRangeMessageChange: \"startDateOutOfRangeMessageChange\", startDatePlaceholderChange: \"startDatePlaceholderChange\", startDateTextChange: \"startDateTextChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", todayButtonTextChange: \"todayButtonTextChange\", useMaskBehaviorChange: \"useMaskBehaviorChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxDateRangeBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDateRangeBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-date-range-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], applyButtonText: [{\r\n type: Input\r\n }], applyValueMode: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], calendarOptions: [{\r\n type: Input\r\n }], cancelButtonText: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disableOutOfRangeSelection: [{\r\n type: Input\r\n }], displayFormat: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], endDate: [{\r\n type: Input\r\n }], endDateInputAttr: [{\r\n type: Input\r\n }], endDateLabel: [{\r\n type: Input\r\n }], endDateName: [{\r\n type: Input\r\n }], endDateOutOfRangeMessage: [{\r\n type: Input\r\n }], endDatePlaceholder: [{\r\n type: Input\r\n }], endDateText: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], invalidEndDateMessage: [{\r\n type: Input\r\n }], invalidStartDateMessage: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], multiView: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], startDate: [{\r\n type: Input\r\n }], startDateInputAttr: [{\r\n type: Input\r\n }], startDateLabel: [{\r\n type: Input\r\n }], startDateName: [{\r\n type: Input\r\n }], startDateOutOfRangeMessage: [{\r\n type: Input\r\n }], startDatePlaceholder: [{\r\n type: Input\r\n }], startDateText: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], todayButtonText: [{\r\n type: Input\r\n }], useMaskBehavior: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], applyButtonTextChange: [{\r\n type: Output\r\n }], applyValueModeChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], calendarOptionsChange: [{\r\n type: Output\r\n }], cancelButtonTextChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disableOutOfRangeSelectionChange: [{\r\n type: Output\r\n }], displayFormatChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endDateChange: [{\r\n type: Output\r\n }], endDateInputAttrChange: [{\r\n type: Output\r\n }], endDateLabelChange: [{\r\n type: Output\r\n }], endDateNameChange: [{\r\n type: Output\r\n }], endDateOutOfRangeMessageChange: [{\r\n type: Output\r\n }], endDatePlaceholderChange: [{\r\n type: Output\r\n }], endDateTextChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], invalidEndDateMessageChange: [{\r\n type: Output\r\n }], invalidStartDateMessageChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], multiViewChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], startDateChange: [{\r\n type: Output\r\n }], startDateInputAttrChange: [{\r\n type: Output\r\n }], startDateLabelChange: [{\r\n type: Output\r\n }], startDateNameChange: [{\r\n type: Output\r\n }], startDateOutOfRangeMessageChange: [{\r\n type: Output\r\n }], startDatePlaceholderChange: [{\r\n type: Output\r\n }], startDateTextChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], todayButtonTextChange: [{\r\n type: Output\r\n }], useMaskBehaviorChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }] }); })();\r\nclass DxDateRangeBoxModule {\r\n}\r\n/** @nocollapse */ DxDateRangeBoxModule.ɵfac = function DxDateRangeBoxModule_Factory(t) { return new (t || DxDateRangeBoxModule)(); };\r\n/** @nocollapse */ DxDateRangeBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDateRangeBoxModule });\r\n/** @nocollapse */ DxDateRangeBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDateRangeBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDateRangeBoxComponent\r\n ],\r\n exports: [\r\n DxDateRangeBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDateRangeBoxModule, { declarations: [DxDateRangeBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDateRangeBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoCalendarOptionsModule,\r\n DxoDisplayFormatModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDateRangeBoxComponent, DxDateRangeBoxModule };\n","/**\r\n * DevExtreme (esm/animation/presets/presets.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n Component\r\n} from \"../../core/component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../fx\";\r\nvar directionPostfixes = {\r\n forward: \" dx-forward\",\r\n backward: \" dx-backward\",\r\n none: \" dx-no-direction\",\r\n undefined: \" dx-no-direction\"\r\n};\r\nvar optionPrefix = \"preset_\";\r\nvar AnimationPresetCollection = Component.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._registeredPresets = [];\r\n this.resetToDefaults()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n defaultAnimationDuration: 400,\r\n defaultAnimationDelay: 0,\r\n defaultStaggerAnimationDuration: 300,\r\n defaultStaggerAnimationDelay: 40,\r\n defaultStaggerAnimationStartDelay: 500\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return _device.phone\r\n },\r\n options: {\r\n defaultStaggerAnimationDuration: 350,\r\n defaultStaggerAnimationDelay: 50,\r\n defaultStaggerAnimationStartDelay: 0\r\n }\r\n }, {\r\n device: function() {\r\n return devices.current().android || devices.real.android\r\n },\r\n options: {\r\n defaultAnimationDelay: 100\r\n }\r\n }])\r\n },\r\n _getPresetOptionName: function(animationName) {\r\n return optionPrefix + animationName\r\n },\r\n _createAndroidSlideAnimationConfig: function(throughOpacity, widthMultiplier) {\r\n var that = this;\r\n var createBaseConfig = function(configModifier) {\r\n return {\r\n type: \"slide\",\r\n delay: void 0 === configModifier.delay ? that.option(\"defaultAnimationDelay\") : configModifier.delay,\r\n duration: void 0 === configModifier.duration ? that.option(\"defaultAnimationDuration\") : configModifier.duration\r\n }\r\n };\r\n return {\r\n enter: function($element, configModifier) {\r\n var width = getWidth($element.parent()) * widthMultiplier;\r\n var direction = configModifier.direction;\r\n var config = createBaseConfig(configModifier);\r\n config.to = {\r\n left: 0,\r\n opacity: 1\r\n };\r\n if (\"forward\" === direction) {\r\n config.from = {\r\n left: width,\r\n opacity: throughOpacity\r\n }\r\n } else if (\"backward\" === direction) {\r\n config.from = {\r\n left: -width,\r\n opacity: throughOpacity\r\n }\r\n } else {\r\n config.from = {\r\n left: 0,\r\n opacity: 0\r\n }\r\n }\r\n return fx.createAnimation($element, config)\r\n },\r\n leave: function($element, configModifier) {\r\n var width = getWidth($element.parent()) * widthMultiplier;\r\n var direction = configModifier.direction;\r\n var config = createBaseConfig(configModifier);\r\n config.from = {\r\n left: 0,\r\n opacity: 1\r\n };\r\n if (\"forward\" === direction) {\r\n config.to = {\r\n left: -width,\r\n opacity: throughOpacity\r\n }\r\n } else if (\"backward\" === direction) {\r\n config.to = {\r\n left: width,\r\n opacity: throughOpacity\r\n }\r\n } else {\r\n config.to = {\r\n left: 0,\r\n opacity: 0\r\n }\r\n }\r\n return fx.createAnimation($element, config)\r\n }\r\n }\r\n },\r\n _createOpenDoorConfig: function() {\r\n var that = this;\r\n var createBaseConfig = function(configModifier) {\r\n return {\r\n type: \"css\",\r\n extraCssClasses: \"dx-opendoor-animation\",\r\n delay: void 0 === configModifier.delay ? that.option(\"defaultAnimationDelay\") : configModifier.delay,\r\n duration: void 0 === configModifier.duration ? that.option(\"defaultAnimationDuration\") : configModifier.duration\r\n }\r\n };\r\n return {\r\n enter: function($element, configModifier) {\r\n var direction = configModifier.direction;\r\n var config = createBaseConfig(configModifier);\r\n config.delay = \"none\" === direction ? config.delay : config.duration;\r\n config.from = \"dx-enter dx-opendoor-animation\" + directionPostfixes[direction];\r\n config.to = \"dx-enter-active\";\r\n return fx.createAnimation($element, config)\r\n },\r\n leave: function($element, configModifier) {\r\n var direction = configModifier.direction;\r\n var config = createBaseConfig(configModifier);\r\n config.from = \"dx-leave dx-opendoor-animation\" + directionPostfixes[direction];\r\n config.to = \"dx-leave-active\";\r\n return fx.createAnimation($element, config)\r\n }\r\n }\r\n },\r\n _createWinPopConfig: function() {\r\n var that = this;\r\n var baseConfig = {\r\n type: \"css\",\r\n extraCssClasses: \"dx-win-pop-animation\",\r\n duration: that.option(\"defaultAnimationDuration\")\r\n };\r\n return {\r\n enter: function($element, configModifier) {\r\n var config = baseConfig;\r\n var direction = configModifier.direction;\r\n config.delay = \"none\" === direction ? that.option(\"defaultAnimationDelay\") : that.option(\"defaultAnimationDuration\") / 2;\r\n config.from = \"dx-enter dx-win-pop-animation\" + directionPostfixes[direction];\r\n config.to = \"dx-enter-active\";\r\n return fx.createAnimation($element, config)\r\n },\r\n leave: function($element, configModifier) {\r\n var config = baseConfig;\r\n var direction = configModifier.direction;\r\n config.delay = that.option(\"defaultAnimationDelay\");\r\n config.from = \"dx-leave dx-win-pop-animation\" + directionPostfixes[direction];\r\n config.to = \"dx-leave-active\";\r\n return fx.createAnimation($element, config)\r\n }\r\n }\r\n },\r\n resetToDefaults: function() {\r\n this.clear();\r\n this.registerDefaultPresets();\r\n this.applyChanges()\r\n },\r\n clear: function(name) {\r\n var that = this;\r\n var newRegisteredPresets = [];\r\n each(this._registeredPresets, (function(index, preset) {\r\n if (!name || name === preset.name) {\r\n that.option(that._getPresetOptionName(preset.name), void 0)\r\n } else {\r\n newRegisteredPresets.push(preset)\r\n }\r\n }));\r\n this._registeredPresets = newRegisteredPresets;\r\n this.applyChanges()\r\n },\r\n registerPreset: function(name, config) {\r\n this._registeredPresets.push({\r\n name: name,\r\n config: config\r\n })\r\n },\r\n applyChanges: function() {\r\n var that = this;\r\n var customRules = [];\r\n each(this._registeredPresets, (function(index, preset) {\r\n var rule = {\r\n device: preset.config.device,\r\n options: {}\r\n };\r\n rule.options[that._getPresetOptionName(preset.name)] = preset.config.animation;\r\n customRules.push(rule)\r\n }));\r\n this._setOptionsByDevice(customRules)\r\n },\r\n getPreset: function(name) {\r\n var result = name;\r\n while (\"string\" === typeof result) {\r\n result = this.option(this._getPresetOptionName(result))\r\n }\r\n return result\r\n },\r\n registerDefaultPresets: function() {\r\n this.registerPreset(\"pop\", {\r\n animation: {\r\n extraCssClasses: \"dx-android-pop-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"openDoor\", {\r\n animation: this._createOpenDoorConfig()\r\n });\r\n this.registerPreset(\"win-pop\", {\r\n animation: this._createWinPopConfig()\r\n });\r\n this.registerPreset(\"fade\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"slide\", {\r\n device: function() {\r\n return devices.current().android || devices.real.android\r\n },\r\n animation: this._createAndroidSlideAnimationConfig(1, 1)\r\n });\r\n this.registerPreset(\"slide\", {\r\n device: function() {\r\n return !devices.current().android && !devices.real.android\r\n },\r\n animation: {\r\n extraCssClasses: \"dx-slide-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"ios7-slide\", {\r\n animation: {\r\n extraCssClasses: \"dx-ios7-slide-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"overflow\", {\r\n animation: {\r\n extraCssClasses: \"dx-overflow-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"ios7-toolbar\", {\r\n device: function() {\r\n return !devices.current().android && !devices.real.android\r\n },\r\n animation: {\r\n extraCssClasses: \"dx-ios7-toolbar-animation\",\r\n delay: this.option(\"defaultAnimationDelay\"),\r\n duration: this.option(\"defaultAnimationDuration\")\r\n }\r\n });\r\n this.registerPreset(\"ios7-toolbar\", {\r\n device: function() {\r\n return devices.current().android || devices.real.android\r\n },\r\n animation: this._createAndroidSlideAnimationConfig(0, .4)\r\n });\r\n this.registerPreset(\"stagger-fade\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-slide\", {\r\n animation: {\r\n extraCssClasses: \"dx-slide-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-fade-slide\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-slide-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-drop\", {\r\n animation: {\r\n extraCssClasses: \"dx-drop-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-fade-drop\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-drop-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-fade-rise\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-rise-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-3d-drop\", {\r\n animation: {\r\n extraCssClasses: \"dx-3d-drop-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n });\r\n this.registerPreset(\"stagger-fade-zoom\", {\r\n animation: {\r\n extraCssClasses: \"dx-fade-zoom-animation\",\r\n staggerDelay: this.option(\"defaultStaggerAnimationDelay\"),\r\n duration: this.option(\"defaultStaggerAnimationDuration\"),\r\n delay: this.option(\"defaultStaggerAnimationStartDelay\")\r\n }\r\n })\r\n }\r\n});\r\nvar animationPresets = new AnimationPresetCollection;\r\nexport {\r\n animationPresets as presets, AnimationPresetCollection as PresetCollection\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/transition_executor/transition_executor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport fx from \"../fx\";\r\nimport {\r\n presets\r\n} from \"../presets/presets\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar directionPostfixes = {\r\n forward: \" dx-forward\",\r\n backward: \" dx-backward\",\r\n none: \" dx-no-direction\",\r\n undefined: \" dx-no-direction\"\r\n};\r\nvar DX_ANIMATING_CLASS = \"dx-animating\";\r\nexport var TransitionExecutor = Class.inherit({\r\n ctor: function() {\r\n this._accumulatedDelays = {\r\n enter: 0,\r\n leave: 0\r\n };\r\n this._animations = [];\r\n this.reset()\r\n },\r\n _createAnimations: function($elements, initialConfig, configModifier, type) {\r\n $elements = $($elements);\r\n var that = this;\r\n var result = [];\r\n configModifier = configModifier || {};\r\n var animationConfig = this._prepareElementAnimationConfig(initialConfig, configModifier, type);\r\n if (animationConfig) {\r\n $elements.each((function() {\r\n var animation = that._createAnimation($(this), animationConfig, configModifier);\r\n if (animation) {\r\n animation.element.addClass(DX_ANIMATING_CLASS);\r\n animation.setup();\r\n result.push(animation)\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n _prepareElementAnimationConfig: function(config, configModifier, type) {\r\n var result;\r\n if (\"string\" === typeof config) {\r\n var presetName = config;\r\n config = presets.getPreset(presetName)\r\n }\r\n if (!config) {\r\n result = void 0\r\n } else if (isFunction(config[type])) {\r\n result = config[type]\r\n } else {\r\n result = extend({\r\n skipElementInitialStyles: true,\r\n cleanupWhen: this._completePromise\r\n }, config, configModifier);\r\n if (!result.type || \"css\" === result.type) {\r\n var cssClass = \"dx-\" + type;\r\n var extraCssClasses = (result.extraCssClasses ? \" \" + result.extraCssClasses : \"\") + directionPostfixes[result.direction];\r\n result.type = \"css\";\r\n result.from = (result.from || cssClass) + extraCssClasses;\r\n result.to = result.to || cssClass + \"-active\"\r\n }\r\n result.staggerDelay = result.staggerDelay || 0;\r\n result.delay = result.delay || 0;\r\n if (result.staggerDelay) {\r\n result.delay += this._accumulatedDelays[type];\r\n this._accumulatedDelays[type] += result.staggerDelay\r\n }\r\n }\r\n return result\r\n },\r\n _createAnimation: function($element, animationConfig, configModifier) {\r\n var result;\r\n if (isPlainObject(animationConfig)) {\r\n result = fx.createAnimation($element, animationConfig)\r\n } else if (isFunction(animationConfig)) {\r\n result = animationConfig($element, configModifier)\r\n }\r\n return result\r\n },\r\n _startAnimations: function() {\r\n var animations = this._animations;\r\n for (var i = 0; i < animations.length; i++) {\r\n animations[i].start()\r\n }\r\n },\r\n _stopAnimations: function(jumpToEnd) {\r\n var animations = this._animations;\r\n for (var i = 0; i < animations.length; i++) {\r\n animations[i].stop(jumpToEnd)\r\n }\r\n },\r\n _clearAnimations: function() {\r\n var animations = this._animations;\r\n for (var i = 0; i < animations.length; i++) {\r\n animations[i].element.removeClass(DX_ANIMATING_CLASS)\r\n }\r\n this._animations.length = 0\r\n },\r\n reset: function() {\r\n this._accumulatedDelays.enter = 0;\r\n this._accumulatedDelays.leave = 0;\r\n this._clearAnimations();\r\n this._completeDeferred = new Deferred;\r\n this._completePromise = this._completeDeferred.promise()\r\n },\r\n enter: function($elements, animationConfig, configModifier) {\r\n var animations = this._createAnimations($elements, animationConfig, configModifier, \"enter\");\r\n this._animations.push.apply(this._animations, animations)\r\n },\r\n leave: function($elements, animationConfig, configModifier) {\r\n var animations = this._createAnimations($elements, animationConfig, configModifier, \"leave\");\r\n this._animations.push.apply(this._animations, animations)\r\n },\r\n start: function() {\r\n var that = this;\r\n var result;\r\n if (!this._animations.length) {\r\n that.reset();\r\n result = (new Deferred).resolve().promise()\r\n } else {\r\n var animationDeferreds = map(this._animations, (function(animation) {\r\n var result = new Deferred;\r\n animation.deferred.always((function() {\r\n result.resolve()\r\n }));\r\n return result.promise()\r\n }));\r\n result = when.apply($, animationDeferreds).always((function() {\r\n that._completeDeferred.resolve();\r\n that.reset()\r\n }));\r\n executeAsync((function() {\r\n that._startAnimations()\r\n }))\r\n }\r\n return result\r\n },\r\n stop: function(jumpToEnd) {\r\n this._stopAnimations(jumpToEnd)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/defer_rendering.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TransitionExecutor\r\n} from \"../animation/transition_executor/transition_executor\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop,\r\n executeAsync\r\n} from \"../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../events/visibility_change\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nvar window = getWindow();\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DEFER_RENDERING_CLASS = \"dx-deferrendering\";\r\nvar PENDING_RENDERING_CLASS = \"dx-pending-rendering\";\r\nvar PENDING_RENDERING_MANUAL_CLASS = \"dx-pending-rendering-manual\";\r\nvar PENDING_RENDERING_ACTIVE_CLASS = \"dx-pending-rendering-active\";\r\nvar VISIBLE_WHILE_PENDING_RENDERING_CLASS = \"dx-visible-while-pending-rendering\";\r\nvar INVISIBLE_WHILE_PENDING_RENDERING_CLASS = \"dx-invisible-while-pending-rendering\";\r\nvar LOADINDICATOR_CONTAINER_CLASS = \"dx-loadindicator-container\";\r\nvar DEFER_RENDERING_LOADINDICATOR_CONTAINER_CLASS = \"dx-deferrendering-loadindicator-container\";\r\nvar DEFER_DEFER_RENDERING_LOAD_INDICATOR = \"dx-deferrendering-load-indicator\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar ACTIONS = [\"onRendered\", \"onShown\"];\r\nvar DeferRendering = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n showLoadIndicator: false,\r\n renderWhen: void 0,\r\n animation: void 0,\r\n staggerItemSelector: void 0,\r\n onRendered: null,\r\n onShown: null\r\n })\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _init: function() {\r\n this.transitionExecutor = new TransitionExecutor;\r\n this._initElement();\r\n this._initRender();\r\n this._$initialContent = this.$element().clone().contents();\r\n this._initActions();\r\n this.callBase()\r\n },\r\n _initElement: function() {\r\n this.$element().addClass(DEFER_RENDERING_CLASS)\r\n },\r\n _initRender: function() {\r\n var that = this;\r\n var $element = this.$element();\r\n var renderWhen = this.option(\"renderWhen\");\r\n var doRender = () => that._renderDeferredContent();\r\n if (isPromise(renderWhen)) {\r\n fromPromise(renderWhen).done(doRender)\r\n } else {\r\n $element.data(\"dx-render-delegate\", doRender);\r\n if (void 0 === renderWhen) {\r\n $element.addClass(PENDING_RENDERING_MANUAL_CLASS)\r\n }\r\n }\r\n },\r\n _initActions: function() {\r\n this._actions = {};\r\n each(ACTIONS, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n if (!this._initContent) {\r\n this._initContent = this._renderContent;\r\n this._renderContent = () => {}\r\n }\r\n this._initContent()\r\n },\r\n _renderContentImpl: function() {\r\n this.$element().removeClass(WIDGET_CLASS);\r\n this.$element().append(this._$initialContent);\r\n this._setLoadingState()\r\n },\r\n _renderDeferredContent: function() {\r\n var that = this;\r\n var $element = this.$element();\r\n var result = new Deferred;\r\n $element.removeClass(PENDING_RENDERING_MANUAL_CLASS);\r\n $element.addClass(PENDING_RENDERING_ACTIVE_CLASS);\r\n this._abortRenderTask();\r\n this._renderTask = executeAsync(() => {\r\n that._renderImpl().done(() => {\r\n var shownArgs = {\r\n element: $element\r\n };\r\n that._actions.onShown([shownArgs]);\r\n result.resolve(shownArgs)\r\n }).fail((function() {\r\n result.rejectWith(result, arguments)\r\n }))\r\n });\r\n return result.promise()\r\n },\r\n _isElementInViewport: function(element) {\r\n var rect = getBoundingRect(element);\r\n return rect.bottom >= 0 && rect.right >= 0 && rect.top <= (window.innerHeight || domAdapter.getDocumentElement().clientHeight) && rect.left <= (window.innerWidth || domAdapter.getDocumentElement().clientWidth)\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var $element = this.$element();\r\n var animation = hasWindow() && this.option(\"animation\");\r\n var staggerItemSelector = this.option(\"staggerItemSelector\");\r\n var animatePromise;\r\n that.transitionExecutor.stop();\r\n if (animation) {\r\n if (staggerItemSelector) {\r\n $element.find(staggerItemSelector).each((function() {\r\n if (that._isElementInViewport(this)) {\r\n that.transitionExecutor.enter($(this), animation)\r\n }\r\n }))\r\n } else {\r\n that.transitionExecutor.enter($element, animation)\r\n }\r\n animatePromise = that.transitionExecutor.start()\r\n } else {\r\n animatePromise = (new Deferred).resolve().promise()\r\n }\r\n return animatePromise\r\n },\r\n _renderImpl: function() {\r\n var $element = this.$element();\r\n var renderedArgs = {\r\n element: $element\r\n };\r\n var contentTemplate = this._getTemplate(this._templateManager.anonymousTemplateName);\r\n if (contentTemplate) {\r\n contentTemplate.render({\r\n container: $element.empty(),\r\n noModel: true\r\n })\r\n }\r\n this._setRenderedState($element);\r\n eventsEngine.trigger($element, \"dxcontentrendered\");\r\n this._actions.onRendered([renderedArgs]);\r\n this._isRendered = true;\r\n return this._animate()\r\n },\r\n _setLoadingState: function() {\r\n var $element = this.$element();\r\n var hasCustomLoadIndicator = !!$element.find(\".\" + VISIBLE_WHILE_PENDING_RENDERING_CLASS).length;\r\n $element.addClass(PENDING_RENDERING_CLASS);\r\n if (!hasCustomLoadIndicator) {\r\n $element.children().addClass(INVISIBLE_WHILE_PENDING_RENDERING_CLASS)\r\n }\r\n if (this.option(\"showLoadIndicator\")) {\r\n this._showLoadIndicator($element)\r\n }\r\n },\r\n _showLoadIndicator: function($container) {\r\n this._$loadIndicator = new LoadIndicator($(\"<div>\"), {\r\n visible: true\r\n }).$element().addClass(DEFER_DEFER_RENDERING_LOAD_INDICATOR);\r\n $(\"<div>\").addClass(LOADINDICATOR_CONTAINER_CLASS).addClass(DEFER_RENDERING_LOADINDICATOR_CONTAINER_CLASS).append(this._$loadIndicator).appendTo($container)\r\n },\r\n _setRenderedState: function() {\r\n var $element = this.$element();\r\n if (this._$loadIndicator) {\r\n this._$loadIndicator.remove()\r\n }\r\n $element.removeClass(PENDING_RENDERING_CLASS);\r\n $element.removeClass(PENDING_RENDERING_ACTIVE_CLASS);\r\n triggerShownEvent($element.children())\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"renderWhen\":\r\n if (false === previousValue && true === value) {\r\n this._renderOrAnimate()\r\n } else if (true === previousValue && false === value) {\r\n this.transitionExecutor.stop();\r\n this._setLoadingState()\r\n }\r\n break;\r\n case \"showLoadIndicator\":\r\n case \"onRendered\":\r\n case \"onShown\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderOrAnimate: function() {\r\n var result;\r\n if (this._isRendered) {\r\n this._setRenderedState();\r\n result = this._animate()\r\n } else {\r\n result = this._renderDeferredContent()\r\n }\r\n return result\r\n },\r\n renderContent: function() {\r\n return this._renderOrAnimate()\r\n },\r\n _abortRenderTask: function() {\r\n if (this._renderTask) {\r\n this._renderTask.abort();\r\n this._renderTask = void 0\r\n }\r\n },\r\n _dispose: function() {\r\n this.transitionExecutor.stop(true);\r\n this._abortRenderTask();\r\n this._actions = void 0;\r\n this._$initialContent = void 0;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxDeferRendering\", DeferRendering);\r\nexport default DeferRendering;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxDeferRendering from 'devextreme/ui/defer_rendering';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxDeferRendering]\r\n\r\n */\r\nclass DxDeferRenderingComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'rendered', emit: 'onRendered' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'renderWhenChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showLoadIndicatorChange' },\r\n { emit: 'staggerItemSelectorChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDeferRenderingOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDeferRenderingOptions.renderWhen]\r\n \r\n */\r\n get renderWhen() {\r\n return this._getOption('renderWhen');\r\n }\r\n set renderWhen(value) {\r\n this._setOption('renderWhen', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDeferRenderingOptions.showLoadIndicator]\r\n \r\n */\r\n get showLoadIndicator() {\r\n return this._getOption('showLoadIndicator');\r\n }\r\n set showLoadIndicator(value) {\r\n this._setOption('showLoadIndicator', value);\r\n }\r\n /**\r\n * [descr:dxDeferRenderingOptions.staggerItemSelector]\r\n \r\n */\r\n get staggerItemSelector() {\r\n return this._getOption('staggerItemSelector');\r\n }\r\n set staggerItemSelector(value) {\r\n this._setOption('staggerItemSelector', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDeferRendering(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxDeferRenderingComponent.ɵfac = function DxDeferRenderingComponent_Factory(t) { return new (t || DxDeferRenderingComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDeferRenderingComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDeferRenderingComponent, selectors: [[\"dx-defer-rendering\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animation: \"animation\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", renderWhen: \"renderWhen\", rtlEnabled: \"rtlEnabled\", showLoadIndicator: \"showLoadIndicator\", staggerItemSelector: \"staggerItemSelector\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onRendered: \"onRendered\", onShown: \"onShown\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationChange: \"animationChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", renderWhenChange: \"renderWhenChange\", rtlEnabledChange: \"rtlEnabledChange\", showLoadIndicatorChange: \"showLoadIndicatorChange\", staggerItemSelectorChange: \"staggerItemSelectorChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxDeferRenderingComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDeferRenderingComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-defer-rendering',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], renderWhen: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showLoadIndicator: [{\r\n type: Input\r\n }], staggerItemSelector: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onRendered: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], renderWhenChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showLoadIndicatorChange: [{\r\n type: Output\r\n }], staggerItemSelectorChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxDeferRenderingModule {\r\n}\r\n/** @nocollapse */ DxDeferRenderingModule.ɵfac = function DxDeferRenderingModule_Factory(t) { return new (t || DxDeferRenderingModule)(); };\r\n/** @nocollapse */ DxDeferRenderingModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDeferRenderingModule });\r\n/** @nocollapse */ DxDeferRenderingModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDeferRenderingModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDeferRenderingComponent\r\n ],\r\n exports: [\r\n DxDeferRenderingComponent,\r\n DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDeferRenderingModule, { declarations: [DxDeferRenderingComponent], imports: [DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDeferRenderingComponent, DxoAnimationModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDeferRenderingComponent, DxDeferRenderingModule };\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.importer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Errors from \"../widget/ui.errors\";\r\nimport DiagramDefault, * as Diagram from \"devexpress-diagram\";\r\nexport function getDiagram() {\r\n if (!DiagramDefault) {\r\n throw Errors.Error(\"E1041\", \"devexpress-diagram\")\r\n }\r\n return Diagram\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.bar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nclass DiagramBar {\r\n constructor(owner) {\r\n var {\r\n EventDispatcher: EventDispatcher\r\n } = getDiagram();\r\n this.onChanged = new EventDispatcher;\r\n this._owner = owner\r\n }\r\n raiseBarCommandExecuted(key, parameter) {\r\n this.onChanged.raise(\"notifyBarCommandExecuted\", parseInt(key), parameter)\r\n }\r\n getCommandKeys() {\r\n throw \"Not Implemented\"\r\n }\r\n setItemValue(key, value) {}\r\n setItemEnabled(key, enabled) {}\r\n setItemVisible(key, enabled) {}\r\n setEnabled(enabled) {}\r\n setItemSubItems(key, items) {}\r\n isVisible() {\r\n return true\r\n }\r\n _getKeys(items) {\r\n var keys = items.reduce((commands, item) => {\r\n if (void 0 !== item.command) {\r\n commands.push(item.command)\r\n }\r\n if (item.items) {\r\n commands = commands.concat(this._getKeys(item.items))\r\n }\r\n return commands\r\n }, []);\r\n return keys\r\n }\r\n}\r\nexport default DiagramBar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, \"dxDiagramPanel\");\r\nvar PREVENT_REFOCUS_SELECTOR = \".dx-textbox\";\r\nclass DiagramPanel extends Widget {\r\n _init() {\r\n super._init();\r\n this._createOnPointerUpAction()\r\n }\r\n _render() {\r\n super._render();\r\n this._attachPointerUpEvent()\r\n }\r\n _getPointerUpElements() {\r\n return [this.$element()]\r\n }\r\n _attachPointerUpEvent() {\r\n var elements = this._getPointerUpElements();\r\n elements.forEach(element => {\r\n eventsEngine.off(element, POINTERUP_EVENT_NAME);\r\n eventsEngine.on(element, POINTERUP_EVENT_NAME, e => {\r\n if (!$(e.target).closest(PREVENT_REFOCUS_SELECTOR).length) {\r\n this._onPointerUpAction()\r\n }\r\n })\r\n })\r\n }\r\n _createOnPointerUpAction() {\r\n this._onPointerUpAction = this._createActionByOption(\"onPointerUp\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onPointerUp\":\r\n this._createOnPointerUpAction();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default DiagramPanel;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.menu_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nvar DIAGRAM_CONTEXT_MENU_CLASS = \"dx-diagram-contextmenu\";\r\nvar DiagramMenuHelper = {\r\n getContextMenuItemTemplate(contextMenu, itemData, itemIndex, itemElement) {\r\n var $itemElement = $(itemElement);\r\n $itemElement.empty();\r\n var itemKey = void 0 !== itemData.rootCommand ? itemData.rootCommand : -1;\r\n if (itemData.icon && !itemData.checked) {\r\n var $iconElement = getImageContainer(itemData.icon);\r\n $itemElement.append($iconElement)\r\n } else if (contextMenu._menuHasCheckedItems && true === contextMenu._menuHasCheckedItems[itemKey]) {\r\n var $checkElement = getImageContainer(\"check\");\r\n $checkElement.css(\"visibility\", !itemData.checked ? \"hidden\" : \"visible\");\r\n $itemElement.append($checkElement)\r\n }\r\n $itemElement.append('<span class=\"dx-menu-item-text\">' + itemData.text + \"</span>\");\r\n if (Array.isArray(itemData.items) && itemData.items.length > 0) {\r\n $itemElement.append('<span class=\"dx-menu-item-popout-container\"><div class=\"dx-menu-item-popout\"></div></span>')\r\n }\r\n },\r\n getContextMenuCssClass: () => DIAGRAM_CONTEXT_MENU_CLASS,\r\n onContextMenuItemClick(widget, itemData, actionHandler) {\r\n if ((void 0 !== itemData.command || void 0 !== itemData.name) && (!Array.isArray(itemData.items) || !itemData.items.length)) {\r\n var parameter = DiagramMenuHelper.getItemCommandParameter(widget, itemData);\r\n actionHandler.call(this, itemData.command, itemData.name, parameter)\r\n } else if (void 0 !== itemData.rootCommand && void 0 !== itemData.value) {\r\n var _parameter = DiagramMenuHelper.getItemCommandParameter(widget, itemData, itemData.value);\r\n actionHandler.call(this, itemData.rootCommand, void 0, _parameter)\r\n }\r\n },\r\n getItemValue: item => \"object\" === typeof item.value ? JSON.stringify(item.value) : item.value,\r\n getItemOptionText(contextMenu, indexPath) {\r\n if (contextMenu) {\r\n indexPath = indexPath.slice();\r\n var parentItemOptionText = this._getParentItemOptionText(indexPath);\r\n if (contextMenu._originalItemsInfo && contextMenu._originalItemsInfo[parentItemOptionText]) {\r\n indexPath[indexPath.length - 1] += contextMenu._originalItemsInfo[parentItemOptionText].indexPathCorrection\r\n }\r\n }\r\n return this._getItemOptionTextCore(indexPath)\r\n },\r\n _getParentItemOptionText(indexPath) {\r\n var parentIndexPath = indexPath.slice(0, indexPath.length - 1);\r\n return this._getItemOptionTextCore(parentIndexPath)\r\n },\r\n _getItemOptionTextCore: indexPath => indexPath.reduce((r, i) => r + \"items[\".concat(i, \"].\"), \"\"),\r\n getItemCommandParameter(widget, item, value) {\r\n if (item.getParameter) {\r\n return item.getParameter(widget)\r\n }\r\n return value\r\n },\r\n updateContextMenuItems(contextMenu, itemOptionText, rootCommandKey, items) {\r\n if (!contextMenu._originalItemsInfo) {\r\n contextMenu._originalItemsInfo = {}\r\n }\r\n if (!contextMenu._originalItemsInfo[itemOptionText]) {\r\n contextMenu._originalItemsInfo[itemOptionText] = {\r\n items: contextMenu.option(itemOptionText + \"items\") || []\r\n }\r\n }\r\n items = items.map(item => ({\r\n value: this.getItemValue(item),\r\n text: item.text,\r\n checked: item.checked,\r\n widget: contextMenu,\r\n rootCommand: rootCommandKey\r\n }));\r\n var originalItems = contextMenu._originalItemsInfo[itemOptionText].items;\r\n contextMenu.option(itemOptionText + \"items\", items.concat(originalItems));\r\n if (contextMenu._originalItemsInfo[itemOptionText] && originalItems.length) {\r\n contextMenu._originalItemsInfo[itemOptionText].indexPathCorrection = items.length\r\n }\r\n },\r\n updateContextMenuItemVisible(contextMenu, itemOptionText, visible) {\r\n contextMenu.option(itemOptionText + \"visible\", visible)\r\n },\r\n updateContextMenuItemValue(contextMenu, itemOptionText, rootCommandKey, value) {\r\n var items = contextMenu.option(itemOptionText + \"items\");\r\n if (\"boolean\" === typeof value && (!items || !items.length)) {\r\n this._setContextMenuHasCheckedItems(contextMenu, -1);\r\n contextMenu.option(itemOptionText + \"checked\", value)\r\n } else if (void 0 !== value) {\r\n this._setContextMenuHasCheckedItems(contextMenu, rootCommandKey);\r\n if (Array.isArray(items)) {\r\n items.forEach((item, index) => {\r\n item.checked = item.value === value\r\n })\r\n }\r\n }\r\n },\r\n _setContextMenuHasCheckedItems(contextMenu, key) {\r\n if (!contextMenu._menuHasCheckedItems) {\r\n contextMenu._menuHasCheckedItems = {}\r\n }\r\n contextMenu._menuHasCheckedItems[key] = true\r\n }\r\n};\r\nexport default DiagramMenuHelper;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Toolbar from \"../toolbar\";\r\nimport ContextMenu from \"../context_menu\";\r\nimport DiagramBar from \"./diagram.bar\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport DiagramPanel from \"./ui.diagram.panel\";\r\nimport DiagramMenuHelper from \"./ui.diagram.menu_helper\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport \"../select_box\";\r\nimport \"../color_box\";\r\nimport \"../check_box\";\r\nvar ACTIVE_FORMAT_CLASS = \"dx-format-active\";\r\nvar DIAGRAM_TOOLBAR_CLASS = \"dx-diagram-toolbar\";\r\nvar DIAGRAM_TOOLBAR_SEPARATOR_CLASS = \"dx-diagram-toolbar-separator\";\r\nvar DIAGRAM_TOOLBAR_MENU_SEPARATOR_CLASS = \"dx-diagram-toolbar-menu-separator\";\r\nvar DIAGRAM_MOBILE_TOOLBAR_COLOR_BOX_OPENED_CLASS = \"dx-diagram-mobile-toolbar-color-box-opened\";\r\nclass DiagramToolbar extends DiagramPanel {\r\n _init() {\r\n this._commands = [];\r\n this._itemHelpers = {};\r\n this._commandContextMenus = {};\r\n this._contextMenuList = [];\r\n this._valueConverters = {};\r\n this.bar = new DiagramToolbarBar(this);\r\n this._createOnInternalCommand();\r\n this._createOnCustomCommand();\r\n this._createOnSubMenuVisibilityChangingAction();\r\n super._init()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var isServerSide = !hasWindow();\r\n if (!this.option(\"skipAdjustSize\") && !isServerSide) {\r\n setWidth(this.$element(), \"\")\r\n }\r\n this._commands = this._getCommands();\r\n this._itemHelpers = {};\r\n this._commandContextMenus = {};\r\n this._contextMenuList = [];\r\n var $toolbar = this._createMainElement();\r\n this._renderToolbar($toolbar);\r\n if (!this.option(\"skipAdjustSize\") && !isServerSide) {\r\n var $toolbarContent = this.$element().find(\".dx-toolbar-before\");\r\n setWidth(this.$element(), getWidth($toolbarContent))\r\n }\r\n }\r\n _createMainElement() {\r\n return $(\"<div>\").addClass(DIAGRAM_TOOLBAR_CLASS).appendTo(this._$element)\r\n }\r\n _getCommands() {\r\n return this.option(\"commands\") || []\r\n }\r\n _renderToolbar($toolbar) {\r\n var beforeCommands = this._commands.filter(command => -1 === [\"after\", \"center\"].indexOf(command.location));\r\n var centerCommands = this._commands.filter(command => \"center\" === command.location);\r\n var afterCommands = this._commands.filter(command => \"after\" === command.location);\r\n var dataSource = [].concat(this._prepareToolbarItems(beforeCommands, \"before\", this._executeCommand)).concat(this._prepareToolbarItems(centerCommands, \"center\", this._executeCommand)).concat(this._prepareToolbarItems(afterCommands, \"after\", this._executeCommand));\r\n this._toolbarInstance = this._createComponent($toolbar, Toolbar, {\r\n dataSource: dataSource\r\n })\r\n }\r\n _prepareToolbarItems(items, location, actionHandler) {\r\n return items.map(item => extend(true, {\r\n location: location,\r\n locateInMenu: this.option(\"locateInMenu\")\r\n }, this._createItem(item, location, actionHandler), this._createItemOptions(item), this._createItemActionOptions(item, actionHandler)))\r\n }\r\n _createItem(item, location, actionHandler) {\r\n if (item.getCommandValue || item.getEditorValue || item.getEditorDisplayValue) {\r\n this._valueConverters[item.command] = {\r\n getCommandValue: item.getCommandValue,\r\n getEditorValue: item.getEditorValue,\r\n getEditorDisplayValue: item.getEditorDisplayValue\r\n }\r\n }\r\n if (\"separator\" === item.widget) {\r\n return {\r\n template: (data, index, element) => {\r\n $(element).addClass(DIAGRAM_TOOLBAR_SEPARATOR_CLASS)\r\n },\r\n menuItemTemplate: (data, index, element) => {\r\n $(element).addClass(DIAGRAM_TOOLBAR_MENU_SEPARATOR_CLASS)\r\n }\r\n }\r\n }\r\n return {\r\n widget: item.widget || \"dxButton\",\r\n cssClass: item.cssClass,\r\n options: {\r\n stylingMode: this.option(\"buttonStylingMode\"),\r\n type: this.option(\"buttonType\"),\r\n text: item.text,\r\n hint: item.hint,\r\n icon: item.icon || item.iconUnchecked || item.iconChecked,\r\n iconChecked: item.iconChecked,\r\n iconUnchecked: item.iconUnchecked,\r\n onInitialized: e => this._onItemInitialized(e.component, item),\r\n onContentReady: e => this._onItemContentReady(e.component, item, actionHandler)\r\n }\r\n }\r\n }\r\n _createItemOptions(_ref) {\r\n var {\r\n widget: widget,\r\n command: command,\r\n items: items,\r\n valueExpr: valueExpr,\r\n displayExpr: displayExpr,\r\n showText: showText,\r\n hint: hint,\r\n icon: icon\r\n } = _ref;\r\n if (\"dxSelectBox\" === widget) {\r\n return this._createSelectBoxItemOptions(command, hint, items, valueExpr, displayExpr)\r\n } else if (\"dxTextBox\" === widget) {\r\n return this._createTextBoxItemOptions(command, hint)\r\n } else if (\"dxColorBox\" === widget) {\r\n return this._createColorBoxItemOptions(command, hint, icon)\r\n } else if (!widget || \"dxButton\" === widget) {\r\n return {\r\n showText: showText || \"inMenu\"\r\n }\r\n }\r\n }\r\n _createSelectBoxItemOptions(command, hint, items, valueExpr, displayExpr) {\r\n var options = this._createTextEditorItemOptions(hint);\r\n options = extend(true, options, {\r\n options: {\r\n dataSource: items,\r\n displayExpr: displayExpr || \"text\",\r\n valueExpr: valueExpr || \"value\"\r\n }\r\n });\r\n var isSelectButton = items && items.every(i => void 0 !== i.icon);\r\n if (isSelectButton) {\r\n options = extend(true, options, {\r\n options: {\r\n fieldTemplate: (data, container) => {\r\n $(\"<i>\").addClass(data && data.icon || \"dx-diagram-i-selectbox-null-icon dx-diagram-i\").appendTo(container);\r\n $(\"<div>\").dxTextBox({\r\n readOnly: true,\r\n stylingMode: \"outlined\"\r\n }).appendTo(container)\r\n },\r\n itemTemplate: (data, index, container) => {\r\n $(container).attr(\"title\", data.hint);\r\n return '<i class=\"'.concat(data.icon, '\"></i>')\r\n }\r\n }\r\n })\r\n }\r\n return options\r\n }\r\n _createTextBoxItemOptions(command, hint) {\r\n var options = this._createTextEditorItemOptions(hint);\r\n options = extend(true, options, {\r\n options: {\r\n readOnly: true,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n buttons: [{\r\n name: \"dropDown\",\r\n location: \"after\",\r\n options: {\r\n icon: \"spindown\",\r\n disabled: false,\r\n stylingMode: \"text\",\r\n onClick: e => {\r\n var contextMenu = this._commandContextMenus[command];\r\n if (contextMenu) {\r\n this._toggleContextMenu(contextMenu)\r\n }\r\n }\r\n }\r\n }]\r\n }\r\n });\r\n return options\r\n }\r\n _createColorBoxItemOptions(command, hint, icon) {\r\n var options = this._createTextEditorItemOptions(hint);\r\n if (icon) {\r\n options = extend(true, options, {\r\n options: {\r\n openOnFieldClick: true,\r\n fieldTemplate: (data, container) => {\r\n $(\"<i>\").addClass(icon).css(\"borderBottomColor\", data).appendTo(container);\r\n $(\"<div>\").dxTextBox({\r\n readOnly: true,\r\n stylingMode: \"outlined\"\r\n }).appendTo(container)\r\n }\r\n }\r\n })\r\n }\r\n options = extend(true, options, {\r\n options: {\r\n onOpened: () => {\r\n if (this.option(\"isMobileView\")) {\r\n $(\"body\").addClass(DIAGRAM_MOBILE_TOOLBAR_COLOR_BOX_OPENED_CLASS)\r\n }\r\n },\r\n onClosed: () => {\r\n $(\"body\").removeClass(DIAGRAM_MOBILE_TOOLBAR_COLOR_BOX_OPENED_CLASS)\r\n }\r\n }\r\n });\r\n return options\r\n }\r\n _createTextEditorItemOptions(hint) {\r\n return {\r\n options: {\r\n stylingMode: this.option(\"editorStylingMode\"),\r\n hint: hint\r\n }\r\n }\r\n }\r\n _createItemActionOptions(item, handler) {\r\n switch (item.widget) {\r\n case \"dxSelectBox\":\r\n case \"dxColorBox\":\r\n case \"dxCheckBox\":\r\n return {\r\n options: {\r\n onValueChanged: e => {\r\n var parameter = DiagramMenuHelper.getItemCommandParameter(this, item, e.component.option(\"value\"));\r\n handler.call(this, item.command, item.name, parameter)\r\n }\r\n }\r\n };\r\n case \"dxTextBox\":\r\n return {};\r\n default:\r\n return {\r\n options: {\r\n onClick: e => {\r\n if (!item.items) {\r\n var parameter = DiagramMenuHelper.getItemCommandParameter(this, item);\r\n handler.call(this, item.command, item.name, parameter)\r\n } else {\r\n var contextMenu = e.component._contextMenu;\r\n if (contextMenu) {\r\n this._toggleContextMenu(contextMenu)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _toggleContextMenu(contextMenu) {\r\n this._contextMenuList.forEach(cm => {\r\n if (contextMenu !== cm) {\r\n cm.hide()\r\n }\r\n });\r\n contextMenu.toggle()\r\n }\r\n _onItemInitialized(widget, item) {\r\n this._addItemHelper(item.command, new DiagramToolbarItemHelper(widget))\r\n }\r\n _onItemContentReady(widget, item, actionHandler) {\r\n if ((\"dxButton\" === widget.NAME || \"dxTextBox\" === widget.NAME) && item.items) {\r\n var isTouchMode = this._isTouchMode();\r\n var $menuContainer = $(\"<div>\").appendTo(this.$element());\r\n widget._contextMenu = this._createComponent($menuContainer, ContextMenu, {\r\n items: item.items,\r\n target: widget.$element(),\r\n cssClass: DiagramMenuHelper.getContextMenuCssClass(),\r\n showEvent: \"\",\r\n hideOnOutsideClick: e => !isTouchMode && 0 === $(e.target).closest(widget._contextMenu._dropDownButtonElement).length,\r\n focusStateEnabled: false,\r\n position: {\r\n at: \"left bottom\"\r\n },\r\n itemTemplate: function(itemData, itemIndex, itemElement) {\r\n DiagramMenuHelper.getContextMenuItemTemplate(this, itemData, itemIndex, itemElement)\r\n },\r\n onItemClick: _ref2 => {\r\n var {\r\n component: component,\r\n itemData: itemData\r\n } = _ref2;\r\n DiagramMenuHelper.onContextMenuItemClick(this, itemData, actionHandler.bind(this));\r\n if (!itemData.items || !itemData.items.length) {\r\n component.hide()\r\n }\r\n },\r\n onShowing: e => {\r\n if (this._showingSubMenu) {\r\n return\r\n }\r\n this._showingSubMenu = e.component;\r\n this._onSubMenuVisibilityChangingAction({\r\n visible: true,\r\n component: this\r\n });\r\n e.component.option(\"items\", e.component.option(\"items\"));\r\n delete this._showingSubMenu\r\n },\r\n onInitialized: _ref3 => {\r\n var {\r\n component: component\r\n } = _ref3;\r\n return this._onContextMenuInitialized(component, item, widget)\r\n },\r\n onDisposing: _ref4 => {\r\n var {\r\n component: component\r\n } = _ref4;\r\n return this._onContextMenuDisposing(component, item)\r\n }\r\n });\r\n if (!isTouchMode) {\r\n widget._contextMenu._dropDownButtonElement = widget.$element();\r\n if (\"dxTextBox\" === widget.NAME) {\r\n widget._contextMenu._dropDownButtonElement = widget.getButton(\"dropDown\").element()\r\n }\r\n }\r\n }\r\n }\r\n _isTouchMode() {\r\n var {\r\n Browser: Browser\r\n } = getDiagram();\r\n return Browser.TouchUI\r\n }\r\n _onContextMenuInitialized(widget, item, rootWidget) {\r\n this._contextMenuList.push(widget);\r\n if (item.command) {\r\n this._commandContextMenus[item.command] = widget\r\n }\r\n this._addContextMenuHelper(item, widget, [], rootWidget)\r\n }\r\n _addItemHelper(command, helper) {\r\n if (void 0 !== command) {\r\n if (this._itemHelpers[command]) {\r\n throw new Error(\"Toolbar cannot contain duplicated commands.\")\r\n }\r\n this._itemHelpers[command] = helper\r\n }\r\n }\r\n _addContextMenuHelper(item, widget, indexPath, rootWidget) {\r\n if (item.items) {\r\n item.items.forEach((subItem, index) => {\r\n var itemIndexPath = indexPath.concat(index);\r\n this._addItemHelper(subItem.command, new DiagramToolbarSubItemHelper(widget, itemIndexPath, subItem.command, rootWidget));\r\n this._addContextMenuHelper(subItem, widget, itemIndexPath, rootWidget)\r\n })\r\n }\r\n }\r\n _onContextMenuDisposing(widget, item) {\r\n this._contextMenuList.splice(this._contextMenuList.indexOf(widget), 1);\r\n delete this._commandContextMenus[item.command]\r\n }\r\n _executeCommand(command, name, value) {\r\n if (this._updateLocked) {\r\n return\r\n }\r\n if (\"number\" === typeof command) {\r\n var valueConverter = this._valueConverters[command];\r\n if (valueConverter && valueConverter.getCommandValue) {\r\n value = valueConverter.getCommandValue(value)\r\n }\r\n this.bar.raiseBarCommandExecuted(command, value)\r\n } else if (\"string\" === typeof command) {\r\n this._onInternalCommandAction({\r\n command: command\r\n })\r\n }\r\n if (void 0 !== name) {\r\n this._onCustomCommandAction({\r\n name: name\r\n })\r\n }\r\n }\r\n _createOnInternalCommand() {\r\n this._onInternalCommandAction = this._createActionByOption(\"onInternalCommand\")\r\n }\r\n _createOnCustomCommand() {\r\n this._onCustomCommandAction = this._createActionByOption(\"onCustomCommand\")\r\n }\r\n _setItemEnabled(command, enabled) {\r\n if (command in this._itemHelpers) {\r\n var helper = this._itemHelpers[command];\r\n if (helper.canUpdate(this._showingSubMenu)) {\r\n helper.setEnabled(enabled)\r\n }\r\n }\r\n }\r\n _setEnabled(enabled) {\r\n this._toolbarInstance.option(\"disabled\", !enabled);\r\n this._contextMenuList.forEach(contextMenu => {\r\n contextMenu.option(\"disabled\", !enabled)\r\n })\r\n }\r\n _setItemValue(command, value) {\r\n try {\r\n this._updateLocked = true;\r\n if (command in this._itemHelpers) {\r\n var helper = this._itemHelpers[command];\r\n if (helper.canUpdate(this._showingSubMenu)) {\r\n var valueConverter = this._valueConverters[command];\r\n if (valueConverter && valueConverter.getEditorValue) {\r\n value = valueConverter.getEditorValue(value)\r\n }\r\n var displayValue;\r\n if (valueConverter && valueConverter.getEditorDisplayValue) {\r\n displayValue = valueConverter.getEditorDisplayValue(value)\r\n }\r\n var contextMenu = this._commandContextMenus[command];\r\n helper.setValue(value, displayValue, contextMenu, contextMenu && command)\r\n }\r\n }\r\n } finally {\r\n this._updateLocked = false\r\n }\r\n }\r\n _setItemSubItems(command, items) {\r\n this._updateLocked = true;\r\n if (command in this._itemHelpers) {\r\n var helper = this._itemHelpers[command];\r\n if (helper.canUpdate(this._showingSubMenu)) {\r\n var contextMenu = this._commandContextMenus[command];\r\n helper.setItems(items, contextMenu, contextMenu && command)\r\n }\r\n }\r\n this._updateLocked = false\r\n }\r\n _createOnSubMenuVisibilityChangingAction() {\r\n this._onSubMenuVisibilityChangingAction = this._createActionByOption(\"onSubMenuVisibilityChanging\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"isMobileView\":\r\n $(\"body\").removeClass(DIAGRAM_MOBILE_TOOLBAR_COLOR_BOX_OPENED_CLASS);\r\n this._invalidate();\r\n break;\r\n case \"onSubMenuVisibilityChanging\":\r\n this._createOnSubMenuVisibilityChangingAction();\r\n break;\r\n case \"onInternalCommand\":\r\n this._createOnInternalCommand();\r\n break;\r\n case \"onCustomCommand\":\r\n this._createOnCustomCommand();\r\n break;\r\n case \"container\":\r\n case \"commands\":\r\n this._invalidate();\r\n break;\r\n case \"export\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n isMobileView: false,\r\n export: {\r\n fileName: \"Diagram\"\r\n },\r\n locateInMenu: \"auto\",\r\n buttonStylingMode: \"text\",\r\n buttonType: \"normal\",\r\n editorStylingMode: \"filled\",\r\n skipAdjustSize: false\r\n })\r\n }\r\n setCommandChecked(command, checked) {\r\n this._setItemValue(command, checked)\r\n }\r\n setCommandEnabled(command, enabled) {\r\n this._setItemEnabled(command, enabled)\r\n }\r\n}\r\nclass DiagramToolbarBar extends DiagramBar {\r\n getCommandKeys() {\r\n return this._getKeys(this._owner._commands)\r\n }\r\n setItemValue(key, value) {\r\n this._owner._setItemValue(key, value)\r\n }\r\n setItemEnabled(key, enabled) {\r\n this._owner._setItemEnabled(key, enabled)\r\n }\r\n setEnabled(enabled) {\r\n this._owner._setEnabled(enabled)\r\n }\r\n setItemSubItems(key, items) {\r\n this._owner._setItemSubItems(key, items)\r\n }\r\n}\r\nclass DiagramToolbarItemHelper {\r\n constructor(widget) {\r\n this._widget = widget\r\n }\r\n canUpdate(showingSubMenu) {\r\n return void 0 === showingSubMenu\r\n }\r\n setEnabled(enabled) {\r\n this._widget.option(\"disabled\", !enabled)\r\n }\r\n setValue(value, displayValue, contextMenu, rootCommandKey) {\r\n if (\"value\" in this._widget.option()) {\r\n this._updateEditorValue(value, displayValue)\r\n } else if (void 0 !== value) {\r\n this._updateButtonValue(value)\r\n }\r\n if (contextMenu) {\r\n this._updateContextMenuItemValue(contextMenu, \"\", rootCommandKey, value)\r\n }\r\n }\r\n setItems(items, contextMenu, rootCommandKey) {\r\n if (contextMenu) {\r\n this._updateContextMenuItems(contextMenu, \"\", rootCommandKey, items)\r\n } else {\r\n this._updateEditorItems(items)\r\n }\r\n }\r\n _updateContextMenuItems(contextMenu, itemOptionText, rootCommandKey, items) {\r\n DiagramMenuHelper.updateContextMenuItems(contextMenu, itemOptionText, rootCommandKey, items)\r\n }\r\n _updateEditorItems(items) {\r\n if (\"items\" in this._widget.option()) {\r\n this._widget.option(\"items\", items.map(item => ({\r\n value: DiagramMenuHelper.getItemValue(item),\r\n text: item.text\r\n })))\r\n }\r\n }\r\n _updateEditorValue(value, displayValue) {\r\n this._widget.option(\"value\", value);\r\n if (!this._widget.option(\"selectedItem\") && displayValue) {\r\n this._widget.option(\"value\", displayValue)\r\n }\r\n }\r\n _updateButtonValue(value) {\r\n if (this._widget.option(\"iconChecked\") && this._widget.option(\"iconUnchecked\")) {\r\n this._widget.option(\"icon\", value ? this._widget.option(\"iconChecked\") : this._widget.option(\"iconUnchecked\"))\r\n } else {\r\n this._widget.$element().toggleClass(ACTIVE_FORMAT_CLASS, value)\r\n }\r\n }\r\n _updateContextMenuItemValue(contextMenu, itemOptionText, rootCommandKey, value) {\r\n DiagramMenuHelper.updateContextMenuItemValue(contextMenu, itemOptionText, rootCommandKey, value)\r\n }\r\n}\r\nclass DiagramToolbarSubItemHelper extends DiagramToolbarItemHelper {\r\n constructor(widget, indexPath, rootCommandKey, rootWidget) {\r\n super(widget);\r\n this._indexPath = indexPath;\r\n this._rootCommandKey = rootCommandKey;\r\n this._rootWidget = rootWidget\r\n }\r\n canUpdate(showingSubMenu) {\r\n return super.canUpdate(showingSubMenu) || showingSubMenu === this._widget\r\n }\r\n setEnabled(enabled) {\r\n this._widget.option(this._getItemOptionText() + \"disabled\", !enabled);\r\n var rootEnabled = this._hasEnabledCommandItems(this._widget.option(\"items\"));\r\n this._rootWidget.option(\"disabled\", !rootEnabled)\r\n }\r\n _hasEnabledCommandItems(items) {\r\n if (items) {\r\n return items.some(item => void 0 !== item.command && !item.disabled || this._hasEnabledCommandItems(item.items))\r\n }\r\n return false\r\n }\r\n setValue(value) {\r\n this._updateContextMenuItemValue(this._widget, this._getItemOptionText(), this._rootCommandKey, value)\r\n }\r\n setItems(items) {\r\n this._updateContextMenuItems(this._widget, this._getItemOptionText(), this._rootCommandKey, items)\r\n }\r\n _getItemOptionText() {\r\n return DiagramMenuHelper.getItemOptionText(this._widget, this._indexPath)\r\n }\r\n}\r\nexport default DiagramToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.commands_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport {\r\n fileSaver\r\n} from \"../../exporter/file_saver\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar SEPARATOR = \"separator\";\r\nvar SEPARATOR_COMMAND = {\r\n widget: SEPARATOR\r\n};\r\nvar CSS_CLASSES = {\r\n SMALL_EDITOR_ITEM: \"dx-diagram-sm-edit-item\",\r\n MEDIUM_EDITOR_ITEM: \"dx-diagram-md-edit-item\",\r\n LARGE_EDITOR_ITEM: \"dx-diagram-lg-edit-item\",\r\n IMAGE_DROPDOWN_ITEM: \"dx-diagram-image-dropdown-item\",\r\n COLOR_EDITOR_ITEM: \"dx-diagram-color-edit-item\",\r\n LARGE_ICON_ITEM: \"dx-diagram-lg-icon-item\"\r\n};\r\nvar DiagramCommandsManager = {\r\n SHOW_TOOLBOX_COMMAND_NAME: \"toolbox\",\r\n SHOW_PROPERTIES_PANEL_COMMAND_NAME: \"propertiesPanel\",\r\n getAllCommands: function() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n return this._allCommands || (this._allCommands = {\r\n separator: SEPARATOR_COMMAND,\r\n exportSvg: {\r\n command: DiagramCommand.ExportSvg,\r\n text: messageLocalization.format(\"dxDiagram-commandExportToSvg\"),\r\n getParameter: widget => dataURI => this._exportTo(widget, dataURI, \"SVG\", \"image/svg+xml\")\r\n },\r\n exportPng: {\r\n command: DiagramCommand.ExportPng,\r\n text: messageLocalization.format(\"dxDiagram-commandExportToPng\"),\r\n getParameter: widget => dataURI => this._exportTo(widget, dataURI, \"PNG\", \"image/png\")\r\n },\r\n exportJpg: {\r\n command: DiagramCommand.ExportJpg,\r\n text: messageLocalization.format(\"dxDiagram-commandExportToJpg\"),\r\n getParameter: widget => dataURI => this._exportTo(widget, dataURI, \"JPEG\", \"image/jpeg\")\r\n },\r\n undo: {\r\n command: DiagramCommand.Undo,\r\n hint: messageLocalization.format(\"dxDiagram-commandUndo\"),\r\n text: messageLocalization.format(\"dxDiagram-commandUndo\"),\r\n icon: \"undo\",\r\n menuIcon: \"undo\"\r\n },\r\n redo: {\r\n command: DiagramCommand.Redo,\r\n hint: messageLocalization.format(\"dxDiagram-commandRedo\"),\r\n text: messageLocalization.format(\"dxDiagram-commandRedo\"),\r\n icon: \"redo\",\r\n menuIcon: \"redo\"\r\n },\r\n cut: {\r\n command: DiagramCommand.Cut,\r\n hint: messageLocalization.format(\"dxDiagram-commandCut\"),\r\n text: messageLocalization.format(\"dxDiagram-commandCut\"),\r\n icon: \"cut\",\r\n menuIcon: \"cut\"\r\n },\r\n copy: {\r\n command: DiagramCommand.Copy,\r\n hint: messageLocalization.format(\"dxDiagram-commandCopy\"),\r\n text: messageLocalization.format(\"dxDiagram-commandCopy\"),\r\n icon: \"copy\",\r\n menuIcon: \"copy\"\r\n },\r\n paste: {\r\n command: DiagramCommand.PasteInPosition,\r\n hint: messageLocalization.format(\"dxDiagram-commandPaste\"),\r\n text: messageLocalization.format(\"dxDiagram-commandPaste\"),\r\n icon: \"paste\",\r\n menuIcon: \"paste\"\r\n },\r\n selectAll: {\r\n command: DiagramCommand.SelectAll,\r\n hint: messageLocalization.format(\"dxDiagram-commandSelectAll\"),\r\n text: messageLocalization.format(\"dxDiagram-commandSelectAll\"),\r\n icon: \"dx-diagram-i-button-select-all dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-select-all dx-diagram-i\"\r\n },\r\n delete: {\r\n command: DiagramCommand.Delete,\r\n hint: messageLocalization.format(\"dxDiagram-commandDelete\"),\r\n text: messageLocalization.format(\"dxDiagram-commandDelete\"),\r\n icon: \"remove\",\r\n menuIcon: \"remove\"\r\n },\r\n fontName: {\r\n command: DiagramCommand.FontName,\r\n hint: messageLocalization.format(\"dxDiagram-commandFontName\"),\r\n text: messageLocalization.format(\"dxDiagram-commandFontName\"),\r\n widget: \"dxSelectBox\",\r\n items: [\"Arial\", \"Arial Black\", \"Helvetica\", \"Times New Roman\", \"Courier New\", \"Courier\", \"Verdana\", \"Georgia\", \"Comic Sans MS\", \"Trebuchet MS\"].map(item => ({\r\n text: item,\r\n value: item\r\n })),\r\n cssClass: CSS_CLASSES.MEDIUM_EDITOR_ITEM\r\n },\r\n fontSize: {\r\n command: DiagramCommand.FontSize,\r\n hint: messageLocalization.format(\"dxDiagram-commandFontSize\"),\r\n text: messageLocalization.format(\"dxDiagram-commandFontSize\"),\r\n widget: \"dxSelectBox\",\r\n items: [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72].map(item => ({\r\n text: item + \"pt\",\r\n value: item + \"pt\"\r\n })),\r\n cssClass: CSS_CLASSES.SMALL_EDITOR_ITEM\r\n },\r\n bold: {\r\n command: DiagramCommand.Bold,\r\n hint: messageLocalization.format(\"dxDiagram-commandBold\"),\r\n text: messageLocalization.format(\"dxDiagram-commandBold\"),\r\n icon: \"bold\",\r\n menuIcon: \"bold\"\r\n },\r\n italic: {\r\n command: DiagramCommand.Italic,\r\n hint: messageLocalization.format(\"dxDiagram-commandItalic\"),\r\n text: messageLocalization.format(\"dxDiagram-commandItalic\"),\r\n icon: \"italic\",\r\n menuIcon: \"italic\"\r\n },\r\n underline: {\r\n command: DiagramCommand.Underline,\r\n hint: messageLocalization.format(\"dxDiagram-commandUnderline\"),\r\n text: messageLocalization.format(\"dxDiagram-commandUnderline\"),\r\n icon: \"underline\",\r\n menuIcon: \"underline\"\r\n },\r\n fontColor: {\r\n command: DiagramCommand.FontColor,\r\n text: messageLocalization.format(\"dxDiagram-commandTextColor\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandTextColor\"),\r\n widget: \"dxColorBox\",\r\n icon: \"dx-icon dx-icon-color\",\r\n menuIcon: \"dx-icon dx-icon-color\",\r\n cssClass: CSS_CLASSES.COLOR_EDITOR_ITEM\r\n },\r\n lineColor: {\r\n command: DiagramCommand.StrokeColor,\r\n text: messageLocalization.format(\"dxDiagram-commandLineColor\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLineColor\"),\r\n widget: \"dxColorBox\",\r\n icon: \"dx-icon dx-icon-background\",\r\n menuIcon: \"dx-icon dx-icon-background\",\r\n cssClass: CSS_CLASSES.COLOR_EDITOR_ITEM\r\n },\r\n lineWidth: {\r\n command: DiagramCommand.StrokeWidth,\r\n text: messageLocalization.format(\"dxDiagram-commandLineWidth\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLineWidth\"),\r\n widget: \"dxSelectBox\",\r\n items: [1, 2, 3, 4, 5, 6, 7, 8].map(item => ({\r\n text: item + \"px\",\r\n value: item.toString()\r\n })),\r\n cssClass: CSS_CLASSES.SMALL_EDITOR_ITEM\r\n },\r\n lineStyle: {\r\n command: DiagramCommand.StrokeStyle,\r\n text: messageLocalization.format(\"dxDiagram-commandLineStyle\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLineStyle\"),\r\n widget: \"dxSelectBox\",\r\n items: [{\r\n value: \"\",\r\n menuIcon: \"dx-diagram-i-line-solid dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandLineStyleSolid\")\r\n }, {\r\n value: \"2,2\",\r\n menuIcon: \"dx-diagram-i-line-dotted dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandLineStyleDotted\")\r\n }, {\r\n value: \"6,2\",\r\n menuIcon: \"dx-diagram-i-line-dashed dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandLineStyleDashed\")\r\n }],\r\n cssClass: CSS_CLASSES.IMAGE_DROPDOWN_ITEM\r\n },\r\n fillColor: {\r\n command: DiagramCommand.FillColor,\r\n text: messageLocalization.format(\"dxDiagram-commandFillColor\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandFillColor\"),\r\n widget: \"dxColorBox\",\r\n icon: \"dx-diagram-i dx-diagram-i-button-fill\",\r\n menuIcon: \"dx-diagram-i dx-diagram-i-menu-fill\",\r\n cssClass: CSS_CLASSES.COLOR_EDITOR_ITEM\r\n },\r\n textAlignLeft: {\r\n command: DiagramCommand.TextLeftAlign,\r\n hint: messageLocalization.format(\"dxDiagram-commandAlignLeft\"),\r\n text: messageLocalization.format(\"dxDiagram-commandAlignLeft\"),\r\n icon: \"alignleft\",\r\n menuIcon: \"alignleft\"\r\n },\r\n textAlignCenter: {\r\n command: DiagramCommand.TextCenterAlign,\r\n hint: messageLocalization.format(\"dxDiagram-commandAlignCenter\"),\r\n text: messageLocalization.format(\"dxDiagram-commandAlignCenter\"),\r\n icon: \"aligncenter\",\r\n menuIcon: \"aligncenter\"\r\n },\r\n textAlignRight: {\r\n command: DiagramCommand.TextRightAlign,\r\n hint: messageLocalization.format(\"dxDiagram-commandAlignRight\"),\r\n text: messageLocalization.format(\"dxDiagram-commandAlignRight\"),\r\n icon: \"alignright\",\r\n menuIcon: \"alignright\"\r\n },\r\n lock: {\r\n command: DiagramCommand.Lock,\r\n hint: messageLocalization.format(\"dxDiagram-commandLock\"),\r\n text: messageLocalization.format(\"dxDiagram-commandLock\"),\r\n icon: \"dx-diagram-i-button-lock dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-lock dx-diagram-i\"\r\n },\r\n unlock: {\r\n command: DiagramCommand.Unlock,\r\n hint: messageLocalization.format(\"dxDiagram-commandUnlock\"),\r\n text: messageLocalization.format(\"dxDiagram-commandUnlock\"),\r\n icon: \"dx-diagram-i-button-unlock dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-unlock dx-diagram-i\"\r\n },\r\n bringToFront: {\r\n command: DiagramCommand.BringToFront,\r\n hint: messageLocalization.format(\"dxDiagram-commandBringToFront\"),\r\n text: messageLocalization.format(\"dxDiagram-commandBringToFront\"),\r\n icon: \"dx-diagram-i-button-bring-to-front dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-bring-to-front dx-diagram-i\"\r\n },\r\n sendToBack: {\r\n command: DiagramCommand.SendToBack,\r\n hint: messageLocalization.format(\"dxDiagram-commandSendToBack\"),\r\n text: messageLocalization.format(\"dxDiagram-commandSendToBack\"),\r\n icon: \"dx-diagram-i-button-send-to-back dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-send-to-back dx-diagram-i\"\r\n },\r\n insertShapeImage: {\r\n command: DiagramCommand.InsertShapeImage,\r\n text: messageLocalization.format(\"dxDiagram-commandInsertShapeImage\"),\r\n icon: \"dx-diagram-i-button-image-insert dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-image-insert dx-diagram-i\"\r\n },\r\n editShapeImage: {\r\n command: DiagramCommand.EditShapeImage,\r\n text: messageLocalization.format(\"dxDiagram-commandEditShapeImage\"),\r\n icon: \"dx-diagram-i-button-image-edit dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-image-edit dx-diagram-i\"\r\n },\r\n deleteShapeImage: {\r\n command: DiagramCommand.DeleteShapeImage,\r\n text: messageLocalization.format(\"dxDiagram-commandDeleteShapeImage\"),\r\n icon: \"dx-diagram-i-button-image-delete dx-diagram-i\",\r\n menuIcon: \"dx-diagram-i-menu-image-delete dx-diagram-i\"\r\n },\r\n connectorLineType: {\r\n command: DiagramCommand.ConnectorLineOption,\r\n widget: \"dxSelectBox\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineType\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineType\"),\r\n items: [{\r\n value: 0,\r\n menuIcon: \"dx-diagram-i-connector-straight dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineStraight\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineStraight\")\r\n }, {\r\n value: 1,\r\n menuIcon: \"dx-diagram-i-connector-orthogonal dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineOrthogonal\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineOrthogonal\")\r\n }],\r\n cssClass: CSS_CLASSES.IMAGE_DROPDOWN_ITEM\r\n },\r\n connectorLineStart: {\r\n command: DiagramCommand.ConnectorStartLineEnding,\r\n widget: \"dxSelectBox\",\r\n items: [{\r\n value: 0,\r\n menuIcon: \"dx-diagram-i-connector-begin-none dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineNone\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineNone\")\r\n }, {\r\n value: 1,\r\n menuIcon: \"dx-diagram-i-connector-begin-arrow dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }, {\r\n value: 2,\r\n menuIcon: \"dx-diagram-i-connector-begin-outlined-triangle dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }, {\r\n value: 3,\r\n menuIcon: \"dx-diagram-i-connector-begin-filled-triangle dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }],\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineStart\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineStart\"),\r\n cssClass: CSS_CLASSES.IMAGE_DROPDOWN_ITEM\r\n },\r\n connectorLineEnd: {\r\n command: DiagramCommand.ConnectorEndLineEnding,\r\n widget: \"dxSelectBox\",\r\n items: [{\r\n value: 0,\r\n menuIcon: \"dx-diagram-i-connector-end-none dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineNone\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineNone\")\r\n }, {\r\n value: 1,\r\n menuIcon: \"dx-diagram-i-connector-end-arrow dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }, {\r\n value: 2,\r\n menuIcon: \"dx-diagram-i-connector-end-outlined-triangle dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }, {\r\n value: 3,\r\n menuIcon: \"dx-diagram-i-connector-end-filled-triangle dx-diagram-i\",\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineArrow\")\r\n }],\r\n hint: messageLocalization.format(\"dxDiagram-commandConnectorLineEnd\"),\r\n text: messageLocalization.format(\"dxDiagram-commandConnectorLineEnd\"),\r\n cssClass: CSS_CLASSES.IMAGE_DROPDOWN_ITEM\r\n },\r\n layoutTreeTopToBottom: {\r\n command: DiagramCommand.AutoLayoutTreeVertical,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutTopToBottom\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutTopToBottom\"),\r\n icon: \"dx-diagram-i-button-layout-tree-tb dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutTreeBottomToTop: {\r\n command: DiagramCommand.AutoLayoutTreeVerticalBottomToTop,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutBottomToTop\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutBottomToTop\"),\r\n icon: \"dx-diagram-i-button-layout-tree-bt dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutTreeLeftToRight: {\r\n command: DiagramCommand.AutoLayoutTreeHorizontal,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutLeftToRight\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutLeftToRight\"),\r\n icon: \"dx-diagram-i-button-layout-tree-lr dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutTreeRightToLeft: {\r\n command: DiagramCommand.AutoLayoutTreeHorizontalRightToLeft,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutRightToLeft\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutRightToLeft\"),\r\n icon: \"dx-diagram-i-button-layout-tree-rl dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutLayeredTopToBottom: {\r\n command: DiagramCommand.AutoLayoutLayeredVertical,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutTopToBottom\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutTopToBottom\"),\r\n icon: \"dx-diagram-i-button-layout-layered-tb dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutLayeredBottomToTop: {\r\n command: DiagramCommand.AutoLayoutLayeredVerticalBottomToTop,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutBottomToTop\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutBottomToTop\"),\r\n icon: \"dx-diagram-i-button-layout-layered-bt dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutLayeredLeftToRight: {\r\n command: DiagramCommand.AutoLayoutLayeredHorizontal,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutLeftToRight\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutLeftToRight\"),\r\n icon: \"dx-diagram-i-button-layout-layered-lr dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n layoutLayeredRightToLeft: {\r\n command: DiagramCommand.AutoLayoutLayeredHorizontalRightToLeft,\r\n text: messageLocalization.format(\"dxDiagram-commandLayoutRightToLeft\"),\r\n hint: messageLocalization.format(\"dxDiagram-commandLayoutRightToLeft\"),\r\n icon: \"dx-diagram-i-button-layout-layered-rl dx-diagram-i\",\r\n cssClass: CSS_CLASSES.LARGE_ICON_ITEM\r\n },\r\n fullScreen: {\r\n command: DiagramCommand.Fullscreen,\r\n hint: messageLocalization.format(\"dxDiagram-commandFullscreen\"),\r\n text: messageLocalization.format(\"dxDiagram-commandFullscreen\"),\r\n icon: \"dx-diagram-i dx-diagram-i-button-fullscreen\",\r\n menuIcon: \"dx-diagram-i dx-diagram-i-menu-fullscreen\",\r\n cssClass: CSS_CLASSES.COLOR_EDITOR_ITEM\r\n },\r\n units: {\r\n command: DiagramCommand.ViewUnits,\r\n hint: messageLocalization.format(\"dxDiagram-commandUnits\"),\r\n text: messageLocalization.format(\"dxDiagram-commandUnits\"),\r\n widget: \"dxSelectBox\"\r\n },\r\n simpleView: {\r\n command: DiagramCommand.ToggleSimpleView,\r\n hint: messageLocalization.format(\"dxDiagram-commandSimpleView\"),\r\n text: messageLocalization.format(\"dxDiagram-commandSimpleView\"),\r\n widget: \"dxCheckBox\"\r\n },\r\n showGrid: {\r\n command: DiagramCommand.ShowGrid,\r\n hint: messageLocalization.format(\"dxDiagram-commandShowGrid\"),\r\n text: messageLocalization.format(\"dxDiagram-commandShowGrid\"),\r\n widget: \"dxCheckBox\"\r\n },\r\n snapToGrid: {\r\n command: DiagramCommand.SnapToGrid,\r\n hint: messageLocalization.format(\"dxDiagram-commandSnapToGrid\"),\r\n text: messageLocalization.format(\"dxDiagram-commandSnapToGrid\"),\r\n widget: \"dxCheckBox\"\r\n },\r\n gridSize: {\r\n command: DiagramCommand.GridSize,\r\n hint: messageLocalization.format(\"dxDiagram-commandGridSize\"),\r\n text: messageLocalization.format(\"dxDiagram-commandGridSize\"),\r\n widget: \"dxSelectBox\"\r\n },\r\n pageSize: {\r\n command: DiagramCommand.PageSize,\r\n hint: messageLocalization.format(\"dxDiagram-commandPageSize\"),\r\n text: messageLocalization.format(\"dxDiagram-commandPageSize\"),\r\n widget: \"dxSelectBox\",\r\n cssClass: CSS_CLASSES.LARGE_EDITOR_ITEM,\r\n getCommandValue: v => JSON.parse(v),\r\n getEditorValue: v => JSON.stringify(v)\r\n },\r\n pageOrientation: {\r\n command: DiagramCommand.PageLandscape,\r\n hint: messageLocalization.format(\"dxDiagram-commandPageOrientation\"),\r\n text: messageLocalization.format(\"dxDiagram-commandPageOrientation\"),\r\n widget: \"dxSelectBox\",\r\n items: [{\r\n value: true,\r\n text: messageLocalization.format(\"dxDiagram-commandPageOrientationLandscape\")\r\n }, {\r\n value: false,\r\n text: messageLocalization.format(\"dxDiagram-commandPageOrientationPortrait\")\r\n }],\r\n cssClass: CSS_CLASSES.MEDIUM_EDITOR_ITEM\r\n },\r\n pageColor: {\r\n command: DiagramCommand.PageColor,\r\n hint: messageLocalization.format(\"dxDiagram-commandPageColor\"),\r\n text: messageLocalization.format(\"dxDiagram-commandPageColor\"),\r\n widget: \"dxColorBox\",\r\n icon: \"dx-diagram-i dx-diagram-i-button-fill\",\r\n menuIcon: \"dx-diagram-i dx-diagram-i-menu-fill\",\r\n cssClass: CSS_CLASSES.COLOR_EDITOR_ITEM\r\n },\r\n zoomLevel: {\r\n command: DiagramCommand.ZoomLevel,\r\n hint: messageLocalization.format(\"dxDiagram-commandZoomLevel\"),\r\n text: messageLocalization.format(\"dxDiagram-commandZoomLevel\"),\r\n widget: \"dxTextBox\",\r\n items: [SEPARATOR_COMMAND, {\r\n command: DiagramCommand.FitToScreen,\r\n hint: messageLocalization.format(\"dxDiagram-commandFitToContent\"),\r\n text: messageLocalization.format(\"dxDiagram-commandFitToContent\")\r\n }, {\r\n command: DiagramCommand.FitToWidth,\r\n hint: messageLocalization.format(\"dxDiagram-commandFitToWidth\"),\r\n text: messageLocalization.format(\"dxDiagram-commandFitToWidth\")\r\n }, SEPARATOR_COMMAND, {\r\n command: DiagramCommand.AutoZoomToContent,\r\n hint: messageLocalization.format(\"dxDiagram-commandAutoZoomByContent\"),\r\n text: messageLocalization.format(\"dxDiagram-commandAutoZoomByContent\")\r\n }, {\r\n command: DiagramCommand.AutoZoomToWidth,\r\n hint: messageLocalization.format(\"dxDiagram-commandAutoZoomByWidth\"),\r\n text: messageLocalization.format(\"dxDiagram-commandAutoZoomByWidth\")\r\n }],\r\n getEditorDisplayValue: v => Math.round(100 * v) + \"%\",\r\n cssClass: CSS_CLASSES.SMALL_EDITOR_ITEM\r\n },\r\n toolbox: {\r\n command: this.SHOW_TOOLBOX_COMMAND_NAME,\r\n iconChecked: \"dx-diagram-i dx-diagram-i-button-toolbox-close\",\r\n iconUnchecked: \"dx-diagram-i dx-diagram-i-button-toolbox-open\",\r\n hint: messageLocalization.format(\"dxDiagram-uiShowToolbox\"),\r\n text: messageLocalization.format(\"dxDiagram-uiShowToolbox\")\r\n },\r\n propertiesPanel: {\r\n command: this.SHOW_PROPERTIES_PANEL_COMMAND_NAME,\r\n iconChecked: \"close\",\r\n iconUnchecked: \"dx-diagram-i dx-diagram-i-button-properties-panel-open\",\r\n hint: messageLocalization.format(\"dxDiagram-uiProperties\"),\r\n text: messageLocalization.format(\"dxDiagram-uiProperties\")\r\n }\r\n })\r\n },\r\n getMainToolbarCommands: function(commands, excludeCommands) {\r\n var allCommands = this.getAllCommands();\r\n var mainToolbarCommands = commands ? this._getPreparedCommands(allCommands, commands) : this._getDefaultMainToolbarCommands(allCommands);\r\n return this._prepareToolbarCommands(mainToolbarCommands, excludeCommands)\r\n },\r\n _getDefaultMainToolbarCommands: function(allCommands) {\r\n return this._defaultMainToolbarCommands || (this._defaultMainToolbarCommands = [allCommands.undo, allCommands.redo, allCommands.separator, allCommands.fontName, allCommands.fontSize, allCommands.bold, allCommands.italic, allCommands.underline, allCommands.separator, allCommands.lineWidth, allCommands.lineStyle, allCommands.separator, allCommands.fontColor, allCommands.lineColor, allCommands.fillColor, allCommands.separator, allCommands.textAlignLeft, allCommands.textAlignCenter, allCommands.textAlignRight, allCommands.separator, allCommands.connectorLineType, allCommands.connectorLineStart, allCommands.connectorLineEnd, allCommands.separator, {\r\n text: messageLocalization.format(\"dxDiagram-uiLayout\"),\r\n showText: \"always\",\r\n items: [{\r\n text: messageLocalization.format(\"dxDiagram-uiLayoutTree\"),\r\n items: [allCommands.layoutTreeTopToBottom, allCommands.layoutTreeBottomToTop, allCommands.layoutTreeLeftToRight, allCommands.layoutTreeRightToLeft]\r\n }, {\r\n text: messageLocalization.format(\"dxDiagram-uiLayoutLayered\"),\r\n items: [allCommands.layoutLayeredTopToBottom, allCommands.layoutLayeredBottomToTop, allCommands.layoutLayeredLeftToRight, allCommands.layoutLayeredRightToLeft]\r\n }]\r\n }])\r\n },\r\n getHistoryToolbarCommands: function(commands, excludeCommands) {\r\n var allCommands = this.getAllCommands();\r\n var historyToolbarCommands = commands ? this._getPreparedCommands(allCommands, commands) : this._getDefaultHistoryToolbarCommands(allCommands);\r\n return this._prepareToolbarCommands(historyToolbarCommands, excludeCommands)\r\n },\r\n _getDefaultHistoryToolbarCommands: function(allCommands) {\r\n return this._defaultHistoryToolbarCommands || (this._defaultHistoryToolbarCommands = [allCommands.undo, allCommands.redo, allCommands.separator, allCommands.toolbox])\r\n },\r\n getViewToolbarCommands: function(commands, excludeCommands) {\r\n var allCommands = this.getAllCommands();\r\n var viewToolbarCommands = commands ? this._getPreparedCommands(allCommands, commands) : this._getDefaultViewToolbarCommands(allCommands);\r\n return this._prepareToolbarCommands(viewToolbarCommands, excludeCommands)\r\n },\r\n _getDefaultViewToolbarCommands: function(allCommands) {\r\n return this._defaultViewToolbarCommands || (this._defaultViewToolbarCommands = [allCommands.zoomLevel, allCommands.separator, allCommands.fullScreen, allCommands.separator, {\r\n widget: \"dxButton\",\r\n icon: \"export\",\r\n text: messageLocalization.format(\"dxDiagram-uiExport\"),\r\n hint: messageLocalization.format(\"dxDiagram-uiExport\"),\r\n items: [allCommands.exportSvg, allCommands.exportPng, allCommands.exportJpg]\r\n }, {\r\n icon: \"preferences\",\r\n hint: messageLocalization.format(\"dxDiagram-uiSettings\"),\r\n text: messageLocalization.format(\"dxDiagram-uiSettings\"),\r\n items: [allCommands.units, allCommands.separator, allCommands.showGrid, allCommands.snapToGrid, allCommands.gridSize, allCommands.separator, allCommands.simpleView, allCommands.toolbox]\r\n }])\r\n },\r\n getPropertiesToolbarCommands: function(commands, excludeCommands) {\r\n var allCommands = this.getAllCommands();\r\n var propertiesCommands = commands ? this._getPreparedCommands(allCommands, commands) : this._getDefaultPropertiesToolbarCommands(allCommands);\r\n return this._prepareToolbarCommands(propertiesCommands, excludeCommands)\r\n },\r\n _getDefaultPropertiesToolbarCommands: function(allCommands) {\r\n return this._defaultPropertiesToolbarCommands || (this._defaultPropertiesToolbarCommands = [allCommands.propertiesPanel])\r\n },\r\n _getDefaultPropertyPanelCommandGroups: function() {\r\n return this._defaultPropertyPanelCommandGroups || (this._defaultPropertyPanelCommandGroups = [{\r\n title: messageLocalization.format(\"dxDiagram-uiStyle\"),\r\n groups: [{\r\n title: messageLocalization.format(\"dxDiagram-uiText\"),\r\n commands: [\"fontName\", \"fontSize\", \"bold\", \"italic\", \"underline\", \"textAlignLeft\", \"textAlignCenter\", \"textAlignRight\", \"fontColor\"]\r\n }, {\r\n title: messageLocalization.format(\"dxDiagram-uiObject\"),\r\n commands: [\"lineStyle\", \"lineWidth\", \"lineColor\", \"fillColor\"]\r\n }, {\r\n title: messageLocalization.format(\"dxDiagram-uiConnector\"),\r\n commands: [\"connectorLineType\", \"connectorLineStart\", \"connectorLineEnd\"]\r\n }]\r\n }, {\r\n title: messageLocalization.format(\"dxDiagram-uiLayout\"),\r\n groups: [{\r\n title: messageLocalization.format(\"dxDiagram-uiLayoutLayered\"),\r\n commands: [\"layoutLayeredTopToBottom\", \"layoutLayeredBottomToTop\", \"layoutLayeredLeftToRight\", \"layoutLayeredRightToLeft\"]\r\n }, {\r\n title: messageLocalization.format(\"dxDiagram-uiLayoutTree\"),\r\n commands: [\"layoutTreeTopToBottom\", \"layoutTreeBottomToTop\", \"layoutTreeLeftToRight\", \"layoutTreeRightToLeft\"]\r\n }]\r\n }, {\r\n title: messageLocalization.format(\"dxDiagram-uiDiagram\"),\r\n groups: [{\r\n title: messageLocalization.format(\"dxDiagram-uiPage\"),\r\n commands: [\"pageSize\", \"pageOrientation\", \"pageColor\"]\r\n }]\r\n }])\r\n },\r\n _preparePropertyPanelGroups: function(groups) {\r\n var allCommands = this.getAllCommands();\r\n var result = [];\r\n groups.forEach(g => {\r\n var commands = g.commands;\r\n if (commands) {\r\n commands = this._getPreparedCommands(allCommands, commands);\r\n commands = this._prepareToolbarCommands(commands)\r\n }\r\n var subGroups;\r\n if (g.groups) {\r\n subGroups = [];\r\n g.groups.forEach(sg => {\r\n var subCommands = sg.commands;\r\n if (subCommands) {\r\n subCommands = this._getPreparedCommands(allCommands, subCommands);\r\n subCommands = this._prepareToolbarCommands(subCommands)\r\n }\r\n subGroups.push({\r\n title: sg.title,\r\n commands: subCommands\r\n })\r\n })\r\n }\r\n result.push({\r\n title: g.title,\r\n commands: commands,\r\n groups: subGroups\r\n })\r\n });\r\n return result\r\n },\r\n getPropertyPanelCommandTabs: function(commandGroups) {\r\n commandGroups = commandGroups || this._getDefaultPropertyPanelCommandGroups();\r\n return this._preparePropertyPanelGroups(commandGroups)\r\n },\r\n getContextMenuCommands: function(commands) {\r\n var allCommands = this.getAllCommands();\r\n var contextMenuCommands = commands ? this._getPreparedCommands(allCommands, commands) : this._getDefaultContextMenuCommands(allCommands);\r\n return this._prepareContextMenuCommands(contextMenuCommands)\r\n },\r\n _getDefaultContextMenuCommands: function(allCommands) {\r\n return this._defaultContextMenuCommands || (this._defaultContextMenuCommands = [allCommands.cut, allCommands.copy, allCommands.paste, allCommands.delete, allCommands.separator, allCommands.selectAll, allCommands.separator, allCommands.bringToFront, allCommands.sendToBack, allCommands.separator, allCommands.lock, allCommands.unlock, allCommands.separator, allCommands.insertShapeImage, allCommands.editShapeImage, allCommands.deleteShapeImage])\r\n },\r\n _getPreparedCommands(allCommands, commands) {\r\n return commands.map(c => {\r\n if (c.widget && c.widget === SEPARATOR) {\r\n var command = {\r\n command: c,\r\n location: c.location\r\n };\r\n return command\r\n } else if (allCommands[c]) {\r\n return allCommands[c]\r\n } else if (c.text || c.icon || c.name) {\r\n var internalCommand = c.name && allCommands[c.name];\r\n var _command = {\r\n command: internalCommand && internalCommand.command,\r\n name: c.name,\r\n location: c.location,\r\n text: c.text || internalCommand && internalCommand.text,\r\n hint: c.text || internalCommand && internalCommand.hint,\r\n icon: c.icon || internalCommand && internalCommand.icon,\r\n menuIcon: c.icon || internalCommand && internalCommand.menuIcon,\r\n widget: internalCommand && internalCommand.widget,\r\n cssClass: internalCommand && internalCommand.cssClass,\r\n getParameter: internalCommand && internalCommand.getParameter,\r\n getCommandValue: internalCommand && internalCommand.getCommandValue,\r\n getEditorValue: internalCommand && internalCommand.getEditorValue,\r\n getEditorDisplayValue: internalCommand && internalCommand.getEditorDisplayValue,\r\n iconChecked: internalCommand && internalCommand.iconChecked,\r\n iconUnchecked: internalCommand && internalCommand.iconUnchecked\r\n };\r\n if (Array.isArray(c.items)) {\r\n _command.items = this._getPreparedCommands(allCommands, c.items)\r\n } else {\r\n _command.items = internalCommand && internalCommand.items\r\n }\r\n return _command\r\n }\r\n }).filter(c => c)\r\n },\r\n _prepareContextMenuCommands(commands, excludeCommands, rootCommand) {\r\n var beginGroup = false;\r\n return commands.map(c => {\r\n if (!this._isValidCommand(c, excludeCommands)) {\r\n return\r\n }\r\n if (c.widget && c.widget === SEPARATOR) {\r\n beginGroup = true\r\n } else {\r\n var command = this._cloneCommand(c, excludeCommands);\r\n command.icon = command.menuIcon;\r\n command.beginGroup = beginGroup;\r\n command.rootCommand = !command.command ? rootCommand && rootCommand.command : void 0;\r\n beginGroup = false;\r\n return command\r\n }\r\n }).filter(c => c)\r\n },\r\n _prepareToolbarCommands(commands, excludeCommands) {\r\n return commands.map(c => {\r\n if (this._isValidCommand(c, excludeCommands)) {\r\n return this._cloneCommand(c, excludeCommands)\r\n }\r\n }).filter(c => c).filter((c, index, arr) => {\r\n if (c.widget === SEPARATOR && index === arr.length - 1) {\r\n return false\r\n }\r\n return c\r\n })\r\n },\r\n _cloneCommand(c, excludeCommands) {\r\n var command = extend({}, c);\r\n if (Array.isArray(c.items)) {\r\n command.items = this._prepareContextMenuCommands(c.items, excludeCommands, command)\r\n }\r\n return command\r\n },\r\n _isValidCommand(c, excludeCommands) {\r\n excludeCommands = excludeCommands || [];\r\n return -1 === excludeCommands.indexOf(c.command)\r\n },\r\n _exportTo(widget, dataURI, format, mimeString) {\r\n var window = getWindow();\r\n if (window && window.atob && isFunction(window.Blob)) {\r\n var blob = this._getBlobByDataURI(window, dataURI, mimeString);\r\n var options = widget.option(\"export\");\r\n fileSaver.saveAs(options.fileName || \"foo\", format, blob)\r\n }\r\n },\r\n _getBlobByDataURI(window, dataURI, mimeString) {\r\n var byteString = window.atob(dataURI.split(\",\")[1]);\r\n var ia = new Uint8Array(byteString.length);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i)\r\n }\r\n return new window.Blob([ia.buffer], {\r\n type: mimeString\r\n })\r\n }\r\n};\r\nexport default DiagramCommandsManager;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.main_toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DiagramToolbar from \"./ui.diagram.toolbar\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nclass DiagramMainToolbar extends DiagramToolbar {\r\n _getCommands() {\r\n return DiagramCommandsManager.getMainToolbarCommands(this.option(\"commands\"), this.option(\"excludeCommands\"))\r\n }\r\n}\r\nexport default DiagramMainToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.history_toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DiagramToolbar from \"./ui.diagram.toolbar\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nclass DiagramHistoryToolbar extends DiagramToolbar {\r\n _getCommands() {\r\n return DiagramCommandsManager.getHistoryToolbarCommands(this.option(\"commands\"), this._getExcludeCommands())\r\n }\r\n _getExcludeCommands() {\r\n var commands = [].concat(this.option(\"excludeCommands\"));\r\n if (!this.option(\"isMobileView\")) {\r\n commands.push(DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME)\r\n }\r\n return commands\r\n }\r\n}\r\nexport default DiagramHistoryToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.view_toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DiagramToolbar from \"./ui.diagram.toolbar\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nclass DiagramViewToolbar extends DiagramToolbar {\r\n _getCommands() {\r\n return DiagramCommandsManager.getViewToolbarCommands(this.option(\"commands\"), this.option(\"excludeCommands\"))\r\n }\r\n}\r\nexport default DiagramViewToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.properties_toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DiagramToolbar from \"./ui.diagram.toolbar\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nclass DiagramPropertiesToolbar extends DiagramToolbar {\r\n _getCommands() {\r\n return DiagramCommandsManager.getPropertiesToolbarCommands()\r\n }\r\n}\r\nexport default DiagramPropertiesToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ContextMenu from \"../context_menu\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nimport DiagramMenuHelper from \"./ui.diagram.menu_helper\";\r\nimport DiagramBar from \"./diagram.bar\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nvar DIAGRAM_TOUCHBAR_CLASS = \"dx-diagram-touchbar\";\r\nvar DIAGRAM_TOUCHBAR_OVERLAY_CLASS = \"dx-diagram-touchbar-overlay\";\r\nvar DIAGRAM_TOUCHBAR_TARGET_CLASS = \"dx-diagram-touchbar-target\";\r\nvar DIAGRAM_TOUCHBAR_MIN_UNWRAPPED_WIDTH = 800;\r\nvar DIAGRAM_TOUCHBAR_Y_OFFSET = 32;\r\nclass DiagramContextMenuWrapper extends Widget {\r\n _init() {\r\n super._init();\r\n this._createOnVisibilityChangingAction();\r\n this._createOnInternalCommand();\r\n this._createOnCustomCommand();\r\n this._createOnItemClickAction();\r\n this._tempState = void 0;\r\n this._commands = [];\r\n this._commandToIndexMap = {};\r\n this.bar = new DiagramContextMenuBar(this)\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._commands = this._getCommands();\r\n this._commandToIndexMap = {};\r\n this._fillCommandToIndexMap(this._commands, []);\r\n this._$contextMenuTargetElement = $(\"<div>\").addClass(DIAGRAM_TOUCHBAR_TARGET_CLASS).appendTo(this.$element());\r\n var $contextMenu = $(\"<div>\").appendTo(this.$element());\r\n this._contextMenuInstance = this._createComponent($contextMenu, DiagramContextMenu, {\r\n isTouchBarMode: this._isTouchBarMode(),\r\n cssClass: this._isTouchBarMode() ? DIAGRAM_TOUCHBAR_CLASS : DiagramMenuHelper.getContextMenuCssClass(),\r\n hideOnOutsideClick: false,\r\n showEvent: \"\",\r\n focusStateEnabled: false,\r\n items: this._commands,\r\n position: this._isTouchBarMode() ? {\r\n my: {\r\n x: \"center\",\r\n y: \"bottom\"\r\n },\r\n at: {\r\n x: \"center\",\r\n y: \"top\"\r\n },\r\n of: this._$contextMenuTargetElement\r\n } : {},\r\n itemTemplate: function(itemData, itemIndex, itemElement) {\r\n DiagramMenuHelper.getContextMenuItemTemplate(this, itemData, itemIndex, itemElement)\r\n },\r\n onItemClick: _ref => {\r\n var {\r\n itemData: itemData\r\n } = _ref;\r\n return this._onItemClick(itemData)\r\n },\r\n onShowing: e => {\r\n if (true === this._inOnShowing) {\r\n return\r\n }\r\n this._inOnShowing = true;\r\n this._onVisibilityChangingAction({\r\n visible: true,\r\n component: this\r\n });\r\n e.component.option(\"items\", e.component.option(\"items\"));\r\n delete this._inOnShowing\r\n }\r\n })\r\n }\r\n _show(x, y, selection) {\r\n this._contextMenuInstance.hide();\r\n if (this._isTouchBarMode()) {\r\n this._$contextMenuTargetElement.show();\r\n if (!selection) {\r\n selection = {\r\n x: x,\r\n y: y,\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n var widthCorrection = selection.width > DIAGRAM_TOUCHBAR_MIN_UNWRAPPED_WIDTH ? 0 : (DIAGRAM_TOUCHBAR_MIN_UNWRAPPED_WIDTH - selection.width) / 2;\r\n this._$contextMenuTargetElement.css({\r\n left: selection.x - widthCorrection,\r\n top: selection.y - DIAGRAM_TOUCHBAR_Y_OFFSET,\r\n width: selection.width + 2 * widthCorrection,\r\n height: selection.height + 2 * DIAGRAM_TOUCHBAR_Y_OFFSET\r\n });\r\n this._contextMenuInstance.show()\r\n } else {\r\n this._contextMenuInstance.option(\"position\", {\r\n offset: x + \" \" + y\r\n });\r\n this._contextMenuInstance.show()\r\n }\r\n }\r\n _hide() {\r\n this._$contextMenuTargetElement.hide();\r\n this._contextMenuInstance.hide()\r\n }\r\n _isTouchBarMode() {\r\n var {\r\n Browser: Browser\r\n } = getDiagram();\r\n return Browser.TouchUI\r\n }\r\n _onItemClick(itemData) {\r\n var processed = false;\r\n if (this._onItemClickAction) {\r\n processed = this._onItemClickAction(itemData)\r\n }\r\n if (!processed) {\r\n DiagramMenuHelper.onContextMenuItemClick(this, itemData, this._executeCommand.bind(this));\r\n this._contextMenuInstance.hide()\r\n }\r\n }\r\n _executeCommand(command, name, value) {\r\n if (\"number\" === typeof command) {\r\n this.bar.raiseBarCommandExecuted(command, value)\r\n } else if (\"string\" === typeof command) {\r\n this._onInternalCommandAction({\r\n command: command\r\n })\r\n }\r\n if (void 0 !== name) {\r\n this._onCustomCommandAction({\r\n name: name\r\n })\r\n }\r\n }\r\n _createOnInternalCommand() {\r\n this._onInternalCommandAction = this._createActionByOption(\"onInternalCommand\")\r\n }\r\n _createOnCustomCommand() {\r\n this._onCustomCommandAction = this._createActionByOption(\"onCustomCommand\")\r\n }\r\n _getCommands() {\r\n return DiagramCommandsManager.getContextMenuCommands(this.option(\"commands\"))\r\n }\r\n _fillCommandToIndexMap(commands, indexPath) {\r\n commands.forEach((command, index) => {\r\n var commandIndexPath = indexPath.concat([index]);\r\n if (void 0 !== command.command) {\r\n this._commandToIndexMap[command.command] = commandIndexPath\r\n }\r\n if (Array.isArray(command.items)) {\r\n this._fillCommandToIndexMap(command.items, commandIndexPath)\r\n }\r\n })\r\n }\r\n _setItemEnabled(key, enabled) {\r\n this._setItemVisible(key, enabled)\r\n }\r\n _setItemVisible(key, visible) {\r\n var itemOptionText = DiagramMenuHelper.getItemOptionText(this._contextMenuInstance, this._commandToIndexMap[key]);\r\n DiagramMenuHelper.updateContextMenuItemVisible(this._contextMenuInstance, itemOptionText, visible)\r\n }\r\n _setItemValue(key, value) {\r\n var itemOptionText = DiagramMenuHelper.getItemOptionText(this._contextMenuInstance, this._commandToIndexMap[key]);\r\n DiagramMenuHelper.updateContextMenuItemValue(this._contextMenuInstance, itemOptionText, key, value)\r\n }\r\n _setItemSubItems(key, items) {\r\n var itemOptionText = DiagramMenuHelper.getItemOptionText(this._contextMenuInstance, this._commandToIndexMap[key]);\r\n DiagramMenuHelper.updateContextMenuItems(this._contextMenuInstance, itemOptionText, key, items)\r\n }\r\n _setEnabled(enabled) {\r\n this._contextMenuInstance.option(\"disabled\", !enabled)\r\n }\r\n isVisible() {\r\n return this._inOnShowing\r\n }\r\n _createOnVisibilityChangingAction() {\r\n this._onVisibilityChangingAction = this._createActionByOption(\"onVisibilityChanging\")\r\n }\r\n _createOnItemClickAction() {\r\n this._onItemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onVisibilityChanging\":\r\n this._createOnVisibilityChangingAction();\r\n break;\r\n case \"onInternalCommand\":\r\n this._createOnInternalCommand();\r\n break;\r\n case \"onCustomCommand\":\r\n this._createOnCustomCommand();\r\n break;\r\n case \"onItemClick\":\r\n this._createOnItemClickAction();\r\n break;\r\n case \"commands\":\r\n this._invalidate();\r\n break;\r\n case \"export\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nclass DiagramContextMenu extends ContextMenu {\r\n _renderContextMenuOverlay() {\r\n super._renderContextMenuOverlay();\r\n if (this._overlay && this.option(\"isTouchBarMode\")) {\r\n this._overlay && this._overlay.option(\"onShown\", () => {\r\n var $content = $(this._overlay.$content());\r\n $content.parent().addClass(DIAGRAM_TOUCHBAR_OVERLAY_CLASS)\r\n })\r\n }\r\n }\r\n}\r\nclass DiagramContextMenuBar extends DiagramBar {\r\n constructor(owner) {\r\n super(owner)\r\n }\r\n getCommandKeys() {\r\n return this._getKeys(this._owner._commands)\r\n }\r\n setItemValue(key, value) {\r\n this._owner._setItemValue(key, value)\r\n }\r\n setItemEnabled(key, enabled) {\r\n this._owner._setItemEnabled(key, enabled)\r\n }\r\n setItemVisible(key, visible) {\r\n this._owner._setItemVisible(key, visible)\r\n }\r\n setItemSubItems(key, items) {\r\n this._owner._setItemSubItems(key, items)\r\n }\r\n setEnabled(enabled) {\r\n this._owner._setEnabled(enabled)\r\n }\r\n isVisible() {\r\n return this._owner.isVisible()\r\n }\r\n}\r\nexport default {\r\n DiagramContextMenuWrapper: DiagramContextMenuWrapper,\r\n DiagramContextMenu: DiagramContextMenu\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.context_toolbox.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Popover from \"../popover/ui.popover\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar DIAGRAM_CONTEXT_TOOLBOX_TARGET_CLASS = \"dx-diagram-context-toolbox-target\";\r\nvar DIAGRAM_CONTEXT_TOOLBOX_CLASS = \"dx-diagram-context-toolbox\";\r\nvar DIAGRAM_TOUCH_CONTEXT_TOOLBOX_CLASS = \"dx-diagram-touch-context-toolbox\";\r\nvar DIAGRAM_CONTEXT_TOOLBOX_CONTENT_CLASS = \"dx-diagram-context-toolbox-content\";\r\nvar DIAGRAM_CONTEXT_TOOLBOX_MINHEIGHT = 150;\r\nclass DiagramContextToolbox extends Widget {\r\n _init() {\r\n super._init();\r\n this._onShownAction = this._createActionByOption(\"onShown\");\r\n var window = getWindow();\r\n this._popoverPositionData = [{\r\n my: {\r\n x: \"center\",\r\n y: \"top\"\r\n },\r\n at: {\r\n x: \"center\",\r\n y: \"bottom\"\r\n },\r\n offset: {\r\n x: 0,\r\n y: 5\r\n },\r\n calcMaxHeight: rect => Math.max(DIAGRAM_CONTEXT_TOOLBOX_MINHEIGHT, window.innerHeight - rect.bottom - 6)\r\n }, {\r\n my: {\r\n x: \"right\",\r\n y: \"center\"\r\n },\r\n at: {\r\n x: \"left\",\r\n y: \"center\"\r\n },\r\n offset: {\r\n x: -5,\r\n y: 0\r\n },\r\n calcMaxHeight: rect => Math.max(DIAGRAM_CONTEXT_TOOLBOX_MINHEIGHT, 2 * Math.min(rect.top, window.innerHeight - rect.bottom) - 2)\r\n }, {\r\n my: {\r\n x: \"center\",\r\n y: \"bottom\"\r\n },\r\n at: {\r\n x: \"center\",\r\n y: \"top\"\r\n },\r\n offset: {\r\n x: 0,\r\n y: -5\r\n },\r\n calcMaxHeight: rect => Math.max(DIAGRAM_CONTEXT_TOOLBOX_MINHEIGHT, rect.top - 6)\r\n }, {\r\n my: {\r\n x: \"left\",\r\n y: \"center\"\r\n },\r\n at: {\r\n x: \"right\",\r\n y: \"center\"\r\n },\r\n offset: {\r\n x: 5,\r\n y: 0\r\n },\r\n calcMaxHeight: rect => Math.max(DIAGRAM_CONTEXT_TOOLBOX_MINHEIGHT, 2 * Math.min(rect.top, window.innerHeight - rect.bottom) - 2)\r\n }]\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._$popoverTargetElement = $(\"<div>\").addClass(DIAGRAM_CONTEXT_TOOLBOX_TARGET_CLASS).appendTo(this.$element());\r\n var $popoverElement = $(\"<div>\").addClass(DIAGRAM_CONTEXT_TOOLBOX_CLASS).appendTo(this.$element());\r\n if (this._isTouchMode()) {\r\n $popoverElement.addClass(DIAGRAM_TOUCH_CONTEXT_TOOLBOX_CLASS)\r\n }\r\n this._popoverInstance = this._createComponent($popoverElement, Popover, {\r\n hideOnOutsideClick: false,\r\n container: this.$element()\r\n })\r\n }\r\n _isTouchMode() {\r\n var {\r\n Browser: Browser\r\n } = getDiagram();\r\n return Browser.TouchUI\r\n }\r\n _show(x, y, side, category, callback) {\r\n this._popoverInstance.hide();\r\n this._$popoverTargetElement.css({\r\n left: x + this._popoverPositionData[side].offset.x,\r\n top: y + this._popoverPositionData[side].offset.y\r\n }).show();\r\n var window = getWindow();\r\n var targetDiv = this._$popoverTargetElement.get(0);\r\n this._$popoverTargetElement.css({\r\n left: targetDiv.offsetLeft - (targetDiv.getBoundingClientRect().left + window.scrollX - targetDiv.offsetLeft),\r\n top: targetDiv.offsetTop - (targetDiv.getBoundingClientRect().top + window.scrollY - targetDiv.offsetTop)\r\n });\r\n var posRect = targetDiv.getBoundingClientRect();\r\n this._popoverInstance.option({\r\n maxHeight: this._popoverPositionData[side].calcMaxHeight(posRect),\r\n width: void 0 !== this.option(\"toolboxWidth\") ? this.option(\"toolboxWidth\") : void 0,\r\n position: {\r\n my: this._popoverPositionData[side].my,\r\n at: this._popoverPositionData[side].at,\r\n of: this._$popoverTargetElement\r\n },\r\n contentTemplate: () => $(\"<div>\").append($(\"<div>\").addClass(DIAGRAM_CONTEXT_TOOLBOX_CONTENT_CLASS)).dxScrollView({\r\n width: \"100%\",\r\n height: \"100%\"\r\n }),\r\n onContentReady: () => {\r\n var $element = this.$element().find(\".\" + DIAGRAM_CONTEXT_TOOLBOX_CONTENT_CLASS);\r\n this._onShownAction({\r\n category: category,\r\n callback: callback,\r\n $element: $element,\r\n hide: () => this._popoverInstance.hide()\r\n })\r\n }\r\n });\r\n this._popoverInstance.show()\r\n }\r\n _hide() {\r\n this._$popoverTargetElement.hide();\r\n this._popoverInstance.hide()\r\n }\r\n}\r\nexport default DiagramContextToolbox;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.dialogs.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nclass DiagramDialog extends Widget {\r\n _init() {\r\n super._init();\r\n this._command = void 0;\r\n this._isShown = false;\r\n this._createOnGetContentOption();\r\n this._createOnHiddenOption()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._command = this.option(\"command\");\r\n this._$popupElement = $(\"<div>\").appendTo(this.$element());\r\n this._popup = this._createComponent(this._$popupElement, Popup, {\r\n title: this.option(\"title\"),\r\n maxWidth: this.option(\"maxWidth\"),\r\n height: this.option(\"height\"),\r\n toolbarItems: this.option(\"toolbarItems\"),\r\n onHidden: this._onHiddenAction\r\n })\r\n }\r\n _clean() {\r\n delete this._popup;\r\n this._$popupElement && this._$popupElement.remove()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n title: \"\",\r\n maxWidth: 500,\r\n height: \"auto\",\r\n toolbarItems: this._getToolbarItems()\r\n })\r\n }\r\n _getToolbarItems() {\r\n return [this._getOkToolbarItem(), this._getCancelToolbarItem()]\r\n }\r\n _getOkToolbarItem() {\r\n return {\r\n widget: \"dxButton\",\r\n location: \"after\",\r\n toolbar: \"bottom\",\r\n options: {\r\n text: messageLocalization.format(\"dxDiagram-dialogButtonOK\"),\r\n onClick: function() {\r\n this._command.execute(this._commandParameter);\r\n this._hide()\r\n }.bind(this)\r\n }\r\n }\r\n }\r\n _getCancelToolbarItem() {\r\n return {\r\n widget: \"dxButton\",\r\n location: \"after\",\r\n toolbar: \"bottom\",\r\n options: {\r\n text: messageLocalization.format(\"dxDiagram-dialogButtonCancel\"),\r\n onClick: this._hide.bind(this)\r\n }\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"title\":\r\n case \"maxWidth\":\r\n case \"height\":\r\n case \"toolbarItems\":\r\n this._popup.option(args.name, args.value);\r\n break;\r\n case \"command\":\r\n this._command = args.value;\r\n break;\r\n case \"onGetContent\":\r\n this._createOnGetContentOption();\r\n break;\r\n case \"onHidden\":\r\n this._createOnHiddenOption();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _createOnGetContentOption() {\r\n this._onGetContentAction = this._createActionByOption(\"onGetContent\")\r\n }\r\n _createOnHiddenOption() {\r\n this._onHiddenAction = this._createActionByOption(\"onHidden\")\r\n }\r\n _hide() {\r\n this._popup.hide();\r\n this._isShown = false\r\n }\r\n _show() {\r\n this._popup.$content().empty().append(this._onGetContentAction());\r\n this._popup.show();\r\n this._isShown = true\r\n }\r\n isVisible() {\r\n return this._isShown\r\n }\r\n}\r\nexport default DiagramDialog;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var CLASSES = {\r\n scrollBarMeasureElement: \"dx-pivotgrid-scrollbar-measure-element\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/m_widget_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport coreAjaxUtils from \"../../../core/utils/ajax\";\r\nimport callOnce from \"../../../core/utils/call_once\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport ArrayStore from \"../../../data/array_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport formatHelper from \"../../../format_helper\";\r\nimport localizationDate from \"../../../localization/date\";\r\nimport {\r\n CLASSES\r\n} from \"./const\";\r\nvar setFieldProperty = function(field, property, value, isInitialization) {\r\n var initProperties = field._initProperties = field._initProperties || {};\r\n var initValue = isInitialization ? value : field[property];\r\n var needInitProperty = !Object.prototype.hasOwnProperty.call(initProperties, property) || isInitialization;\r\n if (needInitProperty && \"_initProperties\" !== property) {\r\n initProperties[property] = initValue\r\n }\r\n field[property] = value\r\n};\r\n\r\nfunction sendRequest(options) {\r\n return coreAjaxUtils.sendRequest(options)\r\n}\r\nvar foreachTreeAsyncDate = new Date;\r\n\r\nfunction createForeachTreeFunc(isAsync) {\r\n return function foreachTreeFunc(items, callback, parentAtFirst, members, index, isChildrenProcessing) {\r\n members = members || [];\r\n items = items || [];\r\n var i;\r\n var deferred;\r\n index = index || 0;\r\n\r\n function createForeachTreeAsyncHandler(deferred, i, isChildrenProcessing) {\r\n when(foreachTreeFunc(items, callback, parentAtFirst, members, i, isChildrenProcessing)).done(deferred.resolve)\r\n }\r\n for (i = index; i < items.length; i += 1) {\r\n if (isAsync && i > index && i % 1e4 === 0 && new Date - foreachTreeAsyncDate >= 300) {\r\n foreachTreeAsyncDate = new Date;\r\n deferred = new Deferred;\r\n createForeachTreeAsyncHandler(deferred, i, false);\r\n return deferred\r\n }\r\n var item = items[i];\r\n if (!isChildrenProcessing) {\r\n members.unshift(item);\r\n if (parentAtFirst && false === callback(members, i)) {\r\n return\r\n }\r\n if (item.children) {\r\n var childrenDeferred = foreachTreeFunc(item.children, callback, parentAtFirst, members);\r\n if (isAsync && childrenDeferred) {\r\n deferred = new Deferred;\r\n childrenDeferred.done(createForeachTreeAsyncHandler(deferred, i, true));\r\n return deferred\r\n }\r\n }\r\n }\r\n isChildrenProcessing = false;\r\n if (!parentAtFirst && false === callback(members, i)) {\r\n return\r\n }\r\n members.shift();\r\n if (items[i] !== item) {\r\n i -= 1\r\n }\r\n }\r\n return\r\n }\r\n}\r\nvar foreachTree = createForeachTreeFunc(false);\r\nvar foreachTreeAsync = createForeachTreeFunc(true);\r\n\r\nfunction findField(fields, id) {\r\n if (fields && isDefined(id)) {\r\n for (var i = 0; i < fields.length; i += 1) {\r\n var field = fields[i];\r\n if (field.name === id || field.caption === id || field.dataField === id || field.index === id) {\r\n return i\r\n }\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nfunction formatValue(value, options) {\r\n var valueText = value === value && formatHelper.format(value, options.format);\r\n var formatObject = {\r\n value: value,\r\n valueText: valueText || \"\"\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n}\r\n\r\nfunction getCompareFunction(valueSelector) {\r\n return function(a, b) {\r\n var result = 0;\r\n var valueA = valueSelector(a);\r\n var valueB = valueSelector(b);\r\n var aIsDefined = isDefined(valueA);\r\n var bIsDefined = isDefined(valueB);\r\n if (aIsDefined && bIsDefined) {\r\n if (valueA > valueB) {\r\n result = 1\r\n } else if (valueA < valueB) {\r\n result = -1\r\n }\r\n }\r\n if (aIsDefined && !bIsDefined) {\r\n result = 1\r\n }\r\n if (!aIsDefined && bIsDefined) {\r\n result = -1\r\n }\r\n return result\r\n }\r\n}\r\n\r\nfunction createPath(items) {\r\n var result = [];\r\n for (var i = items.length - 1; i >= 0; i -= 1) {\r\n result.push(items[i].key || items[i].value)\r\n }\r\n return result\r\n}\r\n\r\nfunction foreachDataLevel(data, callback, index, childrenField) {\r\n index = index || 0;\r\n childrenField = childrenField || \"children\";\r\n if (data.length) {\r\n callback(data, index)\r\n }\r\n for (var i = 0; i < data.length; i += 1) {\r\n var item = data[i];\r\n if (item[childrenField] && item[childrenField].length) {\r\n foreachDataLevel(item[childrenField], callback, index + 1, childrenField)\r\n }\r\n }\r\n}\r\n\r\nfunction mergeArraysByMaxValue(values1, values2) {\r\n var result = [];\r\n for (var i = 0; i < values1.length; i += 1) {\r\n result.push(Math.max(values1[i] || 0, values2[i] || 0))\r\n }\r\n return result\r\n}\r\n\r\nfunction getExpandedLevel(options, axisName) {\r\n var dimensions = options[axisName];\r\n var expandLevel = 0;\r\n var expandedPaths = (\"columns\" === axisName ? options.columnExpandedPaths : options.rowExpandedPaths) || [];\r\n if (options.headerName === axisName) {\r\n expandLevel = options.path.length\r\n } else if (options.headerName && options.headerName !== axisName && options.oppositePath) {\r\n expandLevel = options.oppositePath.length\r\n } else {\r\n each(expandedPaths, (_, path) => {\r\n expandLevel = Math.max(expandLevel, path.length)\r\n })\r\n }\r\n while (dimensions[expandLevel + 1] && dimensions[expandLevel].expanded) {\r\n expandLevel += 1\r\n }\r\n return expandLevel\r\n}\r\n\r\nfunction createGroupFields(item) {\r\n return map([\"year\", \"quarter\", \"month\"], (value, index) => extend({}, item, {\r\n groupInterval: value,\r\n groupIndex: index\r\n }))\r\n}\r\n\r\nfunction parseFields(dataSource, fieldsList, path, fieldsDataType) {\r\n var result = [];\r\n Object.keys(fieldsList || []).forEach(field => {\r\n if (field && field.startsWith(\"__\")) {\r\n return\r\n }\r\n var dataIndex = 1;\r\n var currentPath = path.length ? \"\".concat(path, \".\").concat(field) : field;\r\n var dataType = fieldsDataType[currentPath];\r\n var getter = compileGetter(currentPath);\r\n var value = fieldsList[field];\r\n var items;\r\n while (!isDefined(value) && dataSource[dataIndex]) {\r\n value = getter(dataSource[dataIndex]);\r\n dataIndex += 1\r\n }\r\n if (!dataType && isDefined(value)) {\r\n dataType = type(value)\r\n }\r\n items = [{\r\n dataField: currentPath,\r\n dataType: dataType,\r\n groupName: \"date\" === dataType ? field : void 0,\r\n groupInterval: void 0,\r\n displayFolder: path\r\n }];\r\n if (\"date\" === dataType) {\r\n items = items.concat(createGroupFields(items[0]))\r\n } else if (\"object\" === dataType) {\r\n items = parseFields(dataSource, value, currentPath, fieldsDataType)\r\n }\r\n result.push.apply(result, items)\r\n });\r\n return result\r\n}\r\n\r\nfunction discoverObjectFields(items, fields) {\r\n var fieldsDataType = getFieldsDataType(fields);\r\n return parseFields(items, items[0], \"\", fieldsDataType)\r\n}\r\n\r\nfunction getFieldsDataType(fields) {\r\n var result = {};\r\n each(fields, (_, field) => {\r\n result[field.dataField] = result[field.dataField] || field.dataType\r\n });\r\n return result\r\n}\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: value => localizationDate.getMonthNames()[value - 1],\r\n quarter: value => localizationDate.format(new Date(2e3, 3 * value - 1), \"quarter\"),\r\n dayOfWeek: value => localizationDate.getDayNames()[value]\r\n};\r\n\r\nfunction setDefaultFieldValueFormatting(field) {\r\n if (\"date\" === field.dataType) {\r\n if (!field.format) {\r\n setFieldProperty(field, \"format\", DATE_INTERVAL_FORMATS[field.groupInterval])\r\n }\r\n } else if (\"number\" === field.dataType) {\r\n var groupInterval = isNumeric(field.groupInterval) && field.groupInterval > 0 && field.groupInterval;\r\n if (groupInterval && !field.customizeText) {\r\n setFieldProperty(field, \"customizeText\", formatObject => {\r\n var secondValue = formatObject.value + groupInterval;\r\n var secondValueText = formatHelper.format(secondValue, field.format);\r\n return formatObject.valueText && secondValueText ? \"\".concat(formatObject.valueText, \" - \").concat(secondValueText) : \"\"\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction getFiltersByPath(fields, path) {\r\n var result = [];\r\n path = path || [];\r\n for (var i = 0; i < path.length; i += 1) {\r\n result.push(extend({}, fields[i], {\r\n groupIndex: null,\r\n groupName: null,\r\n filterType: \"include\",\r\n filterValues: [path[i]]\r\n }))\r\n }\r\n return result\r\n}\r\nvar storeDrillDownMixin = {\r\n createDrillDownDataSource(descriptions, params) {\r\n var items = this.getDrillDownItems(descriptions, params);\r\n\r\n function createCustomStoreMethod(methodName) {\r\n return function(options) {\r\n var d;\r\n if (void 0) {\r\n d = (void 0)[methodName](options)\r\n } else {\r\n d = new Deferred;\r\n when(items).done(data => {\r\n var arrayStore = new ArrayStore(data);\r\n arrayStore[methodName](options).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject)\r\n }\r\n return d\r\n }\r\n }\r\n var dataSource = new DataSource({\r\n load: createCustomStoreMethod(\"load\"),\r\n totalCount: createCustomStoreMethod(\"totalCount\"),\r\n key: this.key()\r\n });\r\n return dataSource\r\n }\r\n};\r\n\r\nfunction capitalizeFirstLetter(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1)\r\n}\r\nvar getScrollbarWidth = containerElement => containerElement.offsetWidth - containerElement.clientWidth;\r\nvar calculateScrollbarWidth = callOnce(() => {\r\n var document = domAdapter.getDocument();\r\n document.body.insertAdjacentHTML(\"beforeend\", '<div class=\"'.concat(CLASSES.scrollBarMeasureElement, '\"></div>'));\r\n var scrollbar = document.body.lastElementChild;\r\n var scrollbarWidth = getScrollbarWidth(scrollbar);\r\n if (scrollbar) {\r\n document.body.removeChild(scrollbar)\r\n }\r\n return scrollbarWidth\r\n});\r\nexport default {\r\n setFieldProperty: setFieldProperty,\r\n sendRequest: sendRequest,\r\n foreachTree: foreachTree,\r\n foreachTreeAsync: foreachTreeAsync,\r\n findField: findField,\r\n formatValue: formatValue,\r\n getCompareFunction: getCompareFunction,\r\n createPath: createPath,\r\n foreachDataLevel: foreachDataLevel,\r\n mergeArraysByMaxValue: mergeArraysByMaxValue,\r\n getExpandedLevel: getExpandedLevel,\r\n discoverObjectFields: discoverObjectFields,\r\n getFieldsDataType: getFieldsDataType,\r\n setDefaultFieldValueFormatting: setDefaultFieldValueFormatting,\r\n getFiltersByPath: getFiltersByPath,\r\n storeDrillDownMixin: storeDrillDownMixin,\r\n capitalizeFirstLetter: capitalizeFirstLetter,\r\n getScrollbarWidth: getScrollbarWidth,\r\n calculateScrollbarWidth: calculateScrollbarWidth\r\n};\r\nexport {\r\n calculateScrollbarWidth,\r\n capitalizeFirstLetter,\r\n createPath,\r\n discoverObjectFields,\r\n findField,\r\n foreachDataLevel,\r\n foreachTree,\r\n foreachTreeAsync,\r\n formatValue,\r\n getCompareFunction,\r\n getExpandedLevel,\r\n getFieldsDataType,\r\n getFiltersByPath,\r\n getScrollbarWidth,\r\n mergeArraysByMaxValue,\r\n sendRequest,\r\n setDefaultFieldValueFormatting,\r\n setFieldProperty,\r\n storeDrillDownMixin\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.scroll_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n calculateScrollbarWidth\r\n} from \"../../__internal/grids/pivot_grid/m_widget_utils\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nclass DiagramScrollView extends Widget {\r\n _init() {\r\n super._init();\r\n var {\r\n EventDispatcher: EventDispatcher\r\n } = getDiagram();\r\n this.onScroll = new EventDispatcher;\r\n this._createOnCreateDiagramAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $scrollViewWrapper = $(\"<div>\").appendTo(this.$element());\r\n var options = {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n scrollByContent: false,\r\n onScroll: _ref => {\r\n var {\r\n scrollOffset: scrollOffset\r\n } = _ref;\r\n this._raiseOnScroll(scrollOffset.left, scrollOffset.top)\r\n }\r\n };\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n if (void 0 !== useNativeScrolling) {\r\n options.useNative = useNativeScrolling\r\n }\r\n this._scrollView = this._createComponent($scrollViewWrapper, ScrollView, options);\r\n this._onCreateDiagramAction({\r\n $parent: $(this._scrollView.content()),\r\n scrollView: this\r\n })\r\n }\r\n setScroll(left, top) {\r\n this._scrollView.scrollTo({\r\n left: left,\r\n top: top\r\n });\r\n this._raiseOnScrollWithoutPoint()\r\n }\r\n offsetScroll(left, top) {\r\n this._scrollView.scrollBy({\r\n left: left,\r\n top: top\r\n });\r\n this._raiseOnScrollWithoutPoint()\r\n }\r\n getSize() {\r\n var {\r\n Size: Size\r\n } = getDiagram();\r\n var $element = this._scrollView.$element();\r\n return new Size(Math.floor(getWidth($element)), Math.floor(getHeight($element)))\r\n }\r\n getScrollContainer() {\r\n return this._scrollView.$element()[0]\r\n }\r\n getScrollBarWidth() {\r\n return this.option(\"useNativeScrolling\") ? calculateScrollbarWidth() : 0\r\n }\r\n detachEvents() {}\r\n _raiseOnScroll(left, top) {\r\n var {\r\n Point: Point\r\n } = getDiagram();\r\n this.onScroll.raise(\"notifyScrollChanged\", () => new Point(left, top))\r\n }\r\n _raiseOnScrollWithoutPoint() {\r\n var {\r\n Point: Point\r\n } = getDiagram();\r\n this.onScroll.raise(\"notifyScrollChanged\", () => new Point(this._scrollView.scrollLeft(), this._scrollView.scrollTop()))\r\n }\r\n _createOnCreateDiagramAction() {\r\n this._onCreateDiagramAction = this._createActionByOption(\"onCreateDiagram\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onCreateDiagram\":\r\n this._createOnCreateDiagramAction();\r\n break;\r\n case \"useNativeScrolling\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default DiagramScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.toolbox_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DiagramToolboxManager = {\r\n getDefaultGroups() {\r\n return this._groups || (this._groups = {\r\n general: {\r\n category: \"general\",\r\n title: messageLocalization.format(\"dxDiagram-categoryGeneral\")\r\n },\r\n flowchart: {\r\n category: \"flowchart\",\r\n title: messageLocalization.format(\"dxDiagram-categoryFlowchart\")\r\n },\r\n orgChart: {\r\n category: \"orgChart\",\r\n title: messageLocalization.format(\"dxDiagram-categoryOrgChart\")\r\n },\r\n containers: {\r\n category: \"containers\",\r\n title: messageLocalization.format(\"dxDiagram-categoryContainers\")\r\n },\r\n custom: {\r\n category: \"custom\",\r\n title: messageLocalization.format(\"dxDiagram-categoryCustom\")\r\n }\r\n })\r\n },\r\n getGroups: function(groups) {\r\n var defaultGroups = this.getDefaultGroups();\r\n if (groups) {\r\n return groups.map((function(g) {\r\n if (\"string\" === typeof g) {\r\n return {\r\n category: g,\r\n title: defaultGroups[g] && defaultGroups[g].title || g\r\n }\r\n }\r\n return g\r\n })).filter((function(g) {\r\n return g\r\n }))\r\n }\r\n return [defaultGroups.general, defaultGroups.flowchart, defaultGroups.orgChart, defaultGroups.containers]\r\n }\r\n};\r\nexport default DiagramToolboxManager;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popover from \"../popover/ui.popover\";\r\nvar TOOLTIP_CLASS = \"dx-tooltip\";\r\nvar TOOLTIP_WRAPPER_CLASS = \"dx-tooltip-wrapper\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nvar Tooltip = Popover.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n enableBodyScroll: true,\r\n showTitle: false,\r\n title: null,\r\n titleTemplate: null,\r\n onTitleRendered: null,\r\n bottomTemplate: null,\r\n preventScrollEvents: false,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _render: function() {\r\n this.$element().addClass(TOOLTIP_CLASS);\r\n this.$wrapper().addClass(TOOLTIP_WRAPPER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContent: function() {\r\n this.callBase();\r\n this._toggleAriaAttributes()\r\n },\r\n _toggleAriaDescription: function(showing) {\r\n var $target = $(this.option(\"target\"));\r\n var label = showing ? this._contentId : void 0;\r\n if (!isWindow($target.get(0))) {\r\n this.setAria(\"describedby\", label, $target)\r\n }\r\n },\r\n _toggleAriaAttributes: function() {\r\n this._contentId = \"dx-\".concat(new Guid);\r\n this.$overlayContent().attr({\r\n id: this._contentId\r\n });\r\n this._toggleAriaDescription(true)\r\n }\r\n});\r\nregisterComponent(\"dxTooltip\", Tooltip);\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"./tooltip/tooltip\";\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.floating_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport DiagramPanel from \"./ui.diagram.panel\";\r\nvar DIAGRAM_MOBILE_POPUP_CLASS = \"dx-diagram-mobile-popup\";\r\nclass DiagramFloatingPanel extends DiagramPanel {\r\n _init() {\r\n super._init();\r\n this._createOnVisibilityChangingAction();\r\n this._createOnVisibilityChangedAction()\r\n }\r\n isVisible() {\r\n return this.option(\"isVisible\")\r\n }\r\n isMobileView() {\r\n return this.option(\"isMobileView\")\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $parent = this.$element();\r\n var $popupElement = $(\"<div>\").addClass(this._getPopupClass()).addClass(this.isMobileView() && DIAGRAM_MOBILE_POPUP_CLASS).appendTo($parent);\r\n this._popup = this._createComponent($popupElement, Popup, this._getPopupOptions());\r\n this._updatePopupVisible()\r\n }\r\n show() {\r\n this.option(\"isVisible\", true)\r\n }\r\n hide() {\r\n this.option(\"isVisible\", false)\r\n }\r\n toggle() {\r\n this.option(\"isVisible\", !this.isVisible())\r\n }\r\n repaint() {\r\n this._popup.repaint()\r\n }\r\n _getPopupContent() {\r\n return this._popup.content()\r\n }\r\n _getPopupTitle() {\r\n var $content = $(this._getPopupContent());\r\n return $content.parent().find(\".dx-popup-title\")\r\n }\r\n _getPointerUpElements() {\r\n return [this._getPopupContent(), this._getPopupTitle()]\r\n }\r\n _getVerticalPaddingsAndBorders() {\r\n var $content = $(this._getPopupContent());\r\n return getOuterHeight($content) - getHeight($content)\r\n }\r\n _getHorizontalPaddingsAndBorders() {\r\n var $content = $(this._getPopupContent());\r\n return getOuterWidth($content) - getWidth($content)\r\n }\r\n _getPopupClass() {\r\n return \"\"\r\n }\r\n _getPopupWidth() {\r\n return this.option(\"width\") || \"auto\"\r\n }\r\n _getPopupMaxWidth() {\r\n return this.option(\"maxWidth\")\r\n }\r\n _getPopupMinWidth() {\r\n return this.option(\"minWidth\")\r\n }\r\n _getPopupHeight() {\r\n return this.option(\"height\") || \"auto\"\r\n }\r\n _getPopupMaxHeight() {\r\n return this.option(\"maxHeight\")\r\n }\r\n _getPopupMinHeight() {\r\n return this.option(\"minHeight\")\r\n }\r\n _getPopupPosition() {\r\n return {}\r\n }\r\n _getPopupContainer() {\r\n return this.option(\"container\")\r\n }\r\n _getPopupSlideAnimationObject(properties) {\r\n return extend({\r\n type: \"slide\",\r\n start: () => {\r\n $(\"body\").css(\"overflow\", \"hidden\")\r\n },\r\n complete: () => {\r\n $(\"body\").css(\"overflow\", \"\")\r\n }\r\n }, properties)\r\n }\r\n _getPopupAnimation() {\r\n return {\r\n hide: {\r\n type: \"fadeOut\"\r\n },\r\n show: {\r\n type: \"fadeIn\"\r\n }\r\n }\r\n }\r\n _getPopupOptions() {\r\n var that = this;\r\n return {\r\n animation: hasWindow() ? this._getPopupAnimation() : null,\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n container: this._getPopupContainer(),\r\n width: this._getPopupWidth(),\r\n height: this._getPopupHeight(),\r\n maxWidth: this._getPopupMaxWidth(),\r\n maxHeight: this._getPopupMaxHeight(),\r\n minWidth: this._getPopupMinWidth(),\r\n minHeight: this._getPopupMinHeight(),\r\n position: this._getPopupPosition(),\r\n showCloseButton: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n onContentReady: function() {\r\n that._renderPopupContent(that._popup.content())\r\n },\r\n onShowing: () => {\r\n this._onVisibilityChangingAction({\r\n visible: true,\r\n component: this\r\n })\r\n },\r\n onShown: () => {\r\n this.option(\"isVisible\", true);\r\n this._onVisibilityChangedAction({\r\n visible: true,\r\n component: this\r\n })\r\n },\r\n onHiding: () => {\r\n this._onVisibilityChangingAction({\r\n visible: false,\r\n component: this\r\n })\r\n },\r\n onHidden: () => {\r\n this.option(\"isVisible\", false);\r\n this._onVisibilityChangedAction({\r\n visible: false,\r\n component: this\r\n })\r\n }\r\n }\r\n }\r\n _renderPopupContent($parent) {}\r\n _updatePopupVisible() {\r\n this._popup.option(\"visible\", this.isVisible())\r\n }\r\n _createOnVisibilityChangingAction() {\r\n this._onVisibilityChangingAction = this._createActionByOption(\"onVisibilityChanging\")\r\n }\r\n _createOnVisibilityChangedAction() {\r\n this._onVisibilityChangedAction = this._createActionByOption(\"onVisibilityChanged\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onVisibilityChanging\":\r\n this._createOnVisibilityChangingAction();\r\n break;\r\n case \"onVisibilityChanged\":\r\n this._createOnVisibilityChangedAction();\r\n break;\r\n case \"container\":\r\n this._popup.option(\"container\", this._getPopupContainer());\r\n break;\r\n case \"width\":\r\n this._popup.option(\"width\", this._getPopupWidth());\r\n break;\r\n case \"height\":\r\n this._popup.option(\"height\", this._getPopupHeight());\r\n break;\r\n case \"maxWidth\":\r\n this._popup.option(\"maxWidth\", this._getPopupMaxWidth());\r\n break;\r\n case \"maxHeight\":\r\n this._popup.option(\"maxHeight\", this._getPopupMaxHeight());\r\n break;\r\n case \"minWidth\":\r\n this._popup.option(\"minWidth\", this._getPopupMinWidth());\r\n break;\r\n case \"minHeight\":\r\n this._popup.option(\"minHeight\", this._getPopupMinHeight());\r\n break;\r\n case \"isMobileView\":\r\n this._invalidate();\r\n break;\r\n case \"isVisible\":\r\n this._updatePopupVisible();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n isVisible: true,\r\n isMobileView: false,\r\n offsetX: 0,\r\n offsetY: 0\r\n })\r\n }\r\n}\r\nexport default DiagramFloatingPanel;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.toolbox.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n setHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport TextBox from \"../text_box\";\r\nimport Accordion from \"../accordion\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport Tooltip from \"../tooltip\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport DiagramFloatingPanel from \"./ui.diagram.floating_panel\";\r\nvar DIAGRAM_TOOLBOX_MIN_HEIGHT = 130;\r\nvar DIAGRAM_TOOLBOX_POPUP_CLASS = \"dx-diagram-toolbox-popup\";\r\nvar DIAGRAM_TOOLBOX_PANEL_CLASS = \"dx-diagram-toolbox-panel\";\r\nvar DIAGRAM_TOOLBOX_INPUT_CONTAINER_CLASS = \"dx-diagram-toolbox-input-container\";\r\nvar DIAGRAM_TOOLBOX_INPUT_CLASS = \"dx-diagram-toolbox-input\";\r\nvar DIAGRAM_TOOLTIP_DATATOGGLE = \"shape-toolbox-tooltip\";\r\nvar DIAGRAM_TOOLBOX_START_DRAG_CLASS = \".dxdi-tb-start-drag-flag\";\r\nclass DiagramToolbox extends DiagramFloatingPanel {\r\n _init() {\r\n super._init();\r\n this._toolboxes = [];\r\n this._filterText = \"\";\r\n this._createOnShapeCategoryRenderedAction();\r\n this._createOnFilterChangedAction()\r\n }\r\n _getPopupClass() {\r\n return DIAGRAM_TOOLBOX_POPUP_CLASS\r\n }\r\n _getPopupHeight() {\r\n return this.isMobileView() ? \"100%\" : super._getPopupHeight()\r\n }\r\n _getPopupMaxHeight() {\r\n return this.isMobileView() ? \"100%\" : super._getPopupMaxHeight()\r\n }\r\n _getPopupMinHeight() {\r\n return DIAGRAM_TOOLBOX_MIN_HEIGHT\r\n }\r\n _getPopupPosition() {\r\n var $parent = this.option(\"offsetParent\");\r\n var position = {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: $parent\r\n };\r\n if (!this.isMobileView()) {\r\n return extend(position, {\r\n offset: this.option(\"offsetX\") + \" \" + this.option(\"offsetY\")\r\n })\r\n }\r\n return position\r\n }\r\n _getPopupAnimation() {\r\n var $parent = this.option(\"offsetParent\");\r\n if (this.isMobileView()) {\r\n return {\r\n hide: this._getPopupSlideAnimationObject({\r\n direction: \"left\",\r\n from: {\r\n position: {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: $parent\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"right top\",\r\n at: \"left top\",\r\n of: $parent\r\n }\r\n }\r\n }),\r\n show: this._getPopupSlideAnimationObject({\r\n direction: \"right\",\r\n from: {\r\n position: {\r\n my: \"right top\",\r\n at: \"left top\",\r\n of: $parent\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: $parent\r\n }\r\n }\r\n })\r\n }\r\n }\r\n return super._getPopupAnimation()\r\n }\r\n _getPopupOptions() {\r\n var options = super._getPopupOptions();\r\n if (!this.isMobileView()) {\r\n return extend(options, {\r\n showTitle: true,\r\n toolbarItems: [{\r\n widget: \"dxButton\",\r\n location: \"center\",\r\n options: {\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n icon: \"diagram-toolbox-drag\",\r\n stylingMode: \"outlined\",\r\n type: \"normal\"\r\n }\r\n }]\r\n })\r\n }\r\n return options\r\n }\r\n _renderPopupContent($parent) {\r\n var panelHeight = \"100%\";\r\n if (this.option(\"showSearch\")) {\r\n var $inputContainer = $(\"<div>\").addClass(DIAGRAM_TOOLBOX_INPUT_CONTAINER_CLASS).appendTo($parent);\r\n this._updateElementWidth($inputContainer);\r\n this._renderSearchInput($inputContainer);\r\n if (hasWindow()) {\r\n panelHeight = \"calc(100% - \" + getHeight(this._searchInput.$element()) + \"px)\"\r\n }\r\n }\r\n var $panel = $(\"<div>\").addClass(DIAGRAM_TOOLBOX_PANEL_CLASS).appendTo($parent);\r\n setHeight($panel, panelHeight);\r\n this._updateElementWidth($panel);\r\n this._renderScrollView($panel)\r\n }\r\n _updateElementWidth($element) {\r\n if (void 0 !== this.option(\"toolboxWidth\")) {\r\n $element.css(\"width\", this.option(\"toolboxWidth\"))\r\n }\r\n }\r\n updateMaxHeight() {\r\n if (this.isMobileView()) {\r\n return\r\n }\r\n var maxHeight = 6;\r\n if (this._popup) {\r\n var $title = this._getPopupTitle();\r\n maxHeight += getOuterHeight($title)\r\n }\r\n if (this._accordion) {\r\n maxHeight += getOuterHeight(this._accordion.$element())\r\n }\r\n if (this._searchInput) {\r\n maxHeight += getOuterHeight(this._searchInput.$element())\r\n }\r\n this.option(\"maxHeight\", maxHeight)\r\n }\r\n _renderSearchInput($parent) {\r\n var $input = $(\"<div>\").addClass(DIAGRAM_TOOLBOX_INPUT_CLASS).appendTo($parent);\r\n this._searchInput = this._createComponent($input, TextBox, {\r\n stylingMode: \"outlined\",\r\n placeholder: messageLocalization.format(\"dxDiagram-uiSearch\"),\r\n onValueChanged: data => {\r\n this._onInputChanged(data.value)\r\n },\r\n valueChangeEvent: \"keyup\",\r\n buttons: [{\r\n name: \"search\",\r\n location: \"after\",\r\n options: {\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n icon: \"search\",\r\n stylingMode: \"outlined\",\r\n type: \"normal\",\r\n onClick: () => {\r\n this._searchInput.focus()\r\n }\r\n }\r\n }]\r\n })\r\n }\r\n _renderScrollView($parent) {\r\n var $scrollViewWrapper = $(\"<div>\").appendTo($parent);\r\n this._scrollView = this._createComponent($scrollViewWrapper, ScrollView);\r\n var _moveIsAllowed = this._scrollView._moveIsAllowed.bind(this._scrollView);\r\n this._scrollView._moveIsAllowed = e => {\r\n for (var i = 0; i < this._toolboxes.length; i++) {\r\n var $element = this._toolboxes[i];\r\n if ($($element).children(DIAGRAM_TOOLBOX_START_DRAG_CLASS).length) {\r\n return false\r\n }\r\n }\r\n return _moveIsAllowed(e)\r\n };\r\n var $accordion = $(\"<div>\").appendTo(this._scrollView.content());\r\n this._updateElementWidth($accordion);\r\n this._renderAccordion($accordion)\r\n }\r\n _getAccordionDataSource() {\r\n var result = [];\r\n var toolboxGroups = this.option(\"toolboxGroups\");\r\n for (var i = 0; i < toolboxGroups.length; i++) {\r\n var category = toolboxGroups[i].category;\r\n var title = toolboxGroups[i].title;\r\n var groupObj = {\r\n category: category,\r\n title: title || category,\r\n expanded: toolboxGroups[i].expanded,\r\n displayMode: toolboxGroups[i].displayMode,\r\n shapes: toolboxGroups[i].shapes,\r\n onTemplate: (widget, $element, data) => {\r\n var $toolboxElement = $($element);\r\n this._onShapeCategoryRenderedAction({\r\n category: data.category,\r\n displayMode: data.displayMode,\r\n dataToggle: DIAGRAM_TOOLTIP_DATATOGGLE,\r\n shapes: data.shapes,\r\n $element: $toolboxElement\r\n });\r\n this._toolboxes.push($toolboxElement);\r\n if (\"\" !== this._filterText) {\r\n this._onFilterChangedAction({\r\n text: this._filterText,\r\n filteringToolboxes: this._toolboxes.length - 1\r\n })\r\n }\r\n this._createTooltips($toolboxElement)\r\n }\r\n };\r\n result.push(groupObj)\r\n }\r\n return result\r\n }\r\n _createTooltips($toolboxElement) {\r\n if (this._isTouchMode()) {\r\n return\r\n }\r\n var targets = $toolboxElement.find('[data-toggle=\"' + DIAGRAM_TOOLTIP_DATATOGGLE + '\"]');\r\n var $container = this.$element();\r\n targets.each((index, element) => {\r\n var $target = $(element);\r\n var title = $target.attr(\"title\");\r\n if (title) {\r\n var $tooltip = $(\"<div>\").text(title).appendTo($container);\r\n this._createComponent($tooltip, Tooltip, {\r\n target: $target.get(0),\r\n showEvent: \"mouseenter\",\r\n hideEvent: \"mouseleave\",\r\n position: \"top\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n delay: 500\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n delay: 100\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _isTouchMode() {\r\n var {\r\n Browser: Browser\r\n } = getDiagram();\r\n return Browser.TouchUI\r\n }\r\n _renderAccordion($container) {\r\n this._accordion = this._createComponent($container, Accordion, {\r\n multiple: true,\r\n animationDuration: 0,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n collapsible: true,\r\n displayExpr: \"title\",\r\n dataSource: this._getAccordionDataSource(),\r\n disabled: this.option(\"disabled\"),\r\n itemTemplate: (data, index, $element) => {\r\n data.onTemplate(this, $element, data)\r\n },\r\n onSelectionChanged: e => {\r\n this._updateScrollAnimateSubscription(e.component)\r\n },\r\n onContentReady: e => {\r\n e.component.option(\"selectedItems\", []);\r\n var items = e.component.option(\"dataSource\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (false === items[i].expanded) {\r\n e.component.collapseItem(i)\r\n } else if (true === items[i].expanded) {\r\n e.component.expandItem(i)\r\n }\r\n }\r\n if (items.length && void 0 === items[0].expanded) {\r\n e.component.expandItem(0)\r\n }\r\n this._updateScrollAnimateSubscription(e.component)\r\n }\r\n })\r\n }\r\n _updateScrollAnimateSubscription(component) {\r\n component._deferredAnimate = new Deferred;\r\n component._deferredAnimate.done(() => {\r\n this.updateMaxHeight();\r\n this._scrollView.update();\r\n this._updateScrollAnimateSubscription(component)\r\n })\r\n }\r\n _onInputChanged(text) {\r\n this._filterText = text;\r\n this._onFilterChangedAction({\r\n text: this._filterText,\r\n filteringToolboxes: this._toolboxes.map(($element, index) => index)\r\n });\r\n this.updateTooltips();\r\n this.updateMaxHeight();\r\n this._scrollView.update()\r\n }\r\n updateFilter() {\r\n this._onInputChanged(this._filterText)\r\n }\r\n updateTooltips() {\r\n this._toolboxes.forEach($element => {\r\n var $tooltipContainer = $($element);\r\n this._createTooltips($tooltipContainer)\r\n })\r\n }\r\n _createOnShapeCategoryRenderedAction() {\r\n this._onShapeCategoryRenderedAction = this._createActionByOption(\"onShapeCategoryRendered\")\r\n }\r\n _createOnFilterChangedAction() {\r\n this._onFilterChangedAction = this._createActionByOption(\"onFilterChanged\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onShapeCategoryRendered\":\r\n this._createOnShapeCategoryRenderedAction();\r\n break;\r\n case \"onFilterChanged\":\r\n this._createOnFilterChangedAction();\r\n break;\r\n case \"showSearch\":\r\n case \"toolboxWidth\":\r\n this._invalidate();\r\n break;\r\n case \"toolboxGroups\":\r\n this._accordion.option(\"dataSource\", this._getAccordionDataSource());\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default DiagramToolbox;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.properties_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport TabPanel from \"../tab_panel\";\r\nimport DiagramFloatingPanel from \"./ui.diagram.floating_panel\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nvar DIAGRAM_PROPERTIES_POPUP_WIDTH = 420;\r\nvar DIAGRAM_PROPERTIES_POPUP_HEIGHT = 340;\r\nvar DIAGRAM_PROPERTIES_POPUP_CLASS = \"dx-diagram-properties-popup\";\r\nvar DIAGRAM_PROPERTIES_POPUP_NOTABS_CLASS = \"dx-diagram-properties-popup-notabs\";\r\nvar DIAGRAM_PROPERTIES_PANEL_CLASS = \"dx-diagram-properties-panel\";\r\nvar DIAGRAM_PROPERTIES_PANEL_GROUP_TITLE_CLASS = \"dx-diagram-properties-panel-group-title\";\r\nvar DIAGRAM_PROPERTIES_PANEL_GROUP_TOOLBAR_CLASS = \"dx-diagram-properties-panel-group-toolbar\";\r\nclass DiagramPropertiesPanel extends DiagramFloatingPanel {\r\n _init() {\r\n super._init();\r\n this._commandTabs = DiagramCommandsManager.getPropertyPanelCommandTabs(this.option(\"propertyTabs\"));\r\n this._createOnCreateToolbar();\r\n this._createOnSelectedGroupChanged()\r\n }\r\n _initMarkup() {\r\n this._toolbars = [];\r\n this._selectedToolbar = void 0;\r\n super._initMarkup()\r\n }\r\n _getPopupClass() {\r\n var className = DIAGRAM_PROPERTIES_POPUP_CLASS;\r\n if (!this._hasTabPanel()) {\r\n className += \" \" + DIAGRAM_PROPERTIES_POPUP_NOTABS_CLASS\r\n }\r\n return className\r\n }\r\n _getPopupWidth() {\r\n return this.isMobileView() ? \"100%\" : DIAGRAM_PROPERTIES_POPUP_WIDTH\r\n }\r\n _getPopupHeight() {\r\n return DIAGRAM_PROPERTIES_POPUP_HEIGHT\r\n }\r\n _getPopupPosition() {\r\n var $parent = this.option(\"offsetParent\");\r\n if (this.isMobileView()) {\r\n return {\r\n my: \"left bottom\",\r\n at: \"left bottom\",\r\n of: $parent\r\n }\r\n }\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: $parent,\r\n offset: \"-\" + this.option(\"offsetX\") + \" -\" + this.option(\"offsetY\")\r\n }\r\n }\r\n _getPopupAnimation() {\r\n var $parent = this.option(\"offsetParent\");\r\n if (this.isMobileView()) {\r\n return {\r\n hide: this._getPopupSlideAnimationObject({\r\n direction: \"bottom\",\r\n from: {\r\n position: {\r\n my: \"left bottom\",\r\n at: \"left bottom\",\r\n of: $parent\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n of: $parent\r\n }\r\n }\r\n }),\r\n show: this._getPopupSlideAnimationObject({\r\n direction: \"top\",\r\n from: {\r\n position: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n of: $parent\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"left bottom\",\r\n at: \"left bottom\",\r\n of: $parent\r\n }\r\n }\r\n })\r\n }\r\n }\r\n return super._getPopupAnimation()\r\n }\r\n _getPopupOptions() {\r\n return extend(super._getPopupOptions(), {\r\n showTitle: this.isMobileView(),\r\n showCloseButton: this.isMobileView()\r\n })\r\n }\r\n _renderPopupContent($parent) {\r\n if (!this._commandTabs.length) {\r\n return\r\n }\r\n var $panel = $(\"<div>\").addClass(DIAGRAM_PROPERTIES_PANEL_CLASS).appendTo($parent);\r\n if (this._hasTabPanel()) {\r\n this._renderTabPanel($panel)\r\n } else {\r\n this._renderTabContent($panel, this._commandTabs[0], 0, true)\r\n }\r\n }\r\n _hasTabPanel() {\r\n return this._commandTabs.length > 1\r\n }\r\n _renderTabPanel($parent) {\r\n var $tabPanel = $(\"<div>\").appendTo($parent);\r\n this._tabPanel = this._createComponent($tabPanel, TabPanel, {\r\n focusStateEnabled: false,\r\n dataSource: this._commandTabs,\r\n itemTemplate: (data, index, $element) => {\r\n this._renderTabContent($element, data, index)\r\n },\r\n onSelectionChanged: e => {\r\n this._onSelectedGroupChangedAction();\r\n this._onPointerUpAction()\r\n },\r\n onContentReady: e => {\r\n this._popup.option(\"height\", getHeight(e.component.$element()) + this._getVerticalPaddingsAndBorders());\r\n if (this._firstScrollView) {\r\n this._scrollViewHeight = getOuterHeight(this._firstScrollView.$element());\r\n this._firstScrollView.option(\"height\", this._scrollViewHeight)\r\n }\r\n }\r\n })\r\n }\r\n _renderTabContent($parent, tab, index, isSingleTab) {\r\n var $scrollViewWrapper = $(\"<div>\").appendTo($parent);\r\n var scrollView = this._createComponent($scrollViewWrapper, ScrollView, {\r\n height: this._scrollViewHeight\r\n });\r\n this._renderTabInnerContent(scrollView.content(), tab, index);\r\n if (isSingleTab) {\r\n this._popup.option(\"height\", getHeight(scrollView.$element()) + this._getVerticalPaddingsAndBorders())\r\n } else {\r\n this._firstScrollView = this._firstScrollView || scrollView\r\n }\r\n }\r\n _renderTabInnerContent($parent, group, index) {\r\n if (group.groups) {\r\n group.groups.forEach((sg, si) => {\r\n this._renderTabGroupContent($parent, index, sg.title, sg.commands)\r\n })\r\n } else if (group.commands) {\r\n this._renderTabGroupContent($parent, index, void 0, group.commands)\r\n }\r\n }\r\n _renderTabGroupContent($parent, index, title, commands) {\r\n if (title) {\r\n $(\"<div>\").addClass(DIAGRAM_PROPERTIES_PANEL_GROUP_TITLE_CLASS).appendTo($parent).text(title)\r\n }\r\n var $toolbar = $(\"<div>\").addClass(DIAGRAM_PROPERTIES_PANEL_GROUP_TOOLBAR_CLASS).appendTo($parent);\r\n var args = {\r\n $parent: $toolbar,\r\n commands: commands\r\n };\r\n this._onCreateToolbarAction(args);\r\n if (!this._toolbars[index]) {\r\n this._toolbars[index] = []\r\n }\r\n this._toolbars[index].push(args.toolbar);\r\n this._selectedToolbar = args.toolbar\r\n }\r\n getActiveToolbars() {\r\n var index = this._tabPanel ? this._tabPanel.option(\"selectedIndex\") : 0;\r\n return this._toolbars[index]\r\n }\r\n _createOnCreateToolbar() {\r\n this._onCreateToolbarAction = this._createActionByOption(\"onCreateToolbar\")\r\n }\r\n _createOnSelectedGroupChanged() {\r\n this._onSelectedGroupChangedAction = this._createActionByOption(\"onSelectedGroupChanged\")\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onCreateToolbar\":\r\n this._createOnCreateToolbar();\r\n break;\r\n case \"onSelectedGroupChanged\":\r\n this._createOnSelectedGroupChanged();\r\n break;\r\n case \"propertyTabs\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default DiagramPropertiesPanel;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.options_update.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DiagramBar from \"./diagram.bar\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nclass DiagramOptionsUpdateBar extends DiagramBar {\r\n constructor(owner) {\r\n super(owner);\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this.commandOptions = {};\r\n this.commandOptions[DiagramCommand.Fullscreen] = \"fullScreen\";\r\n this.commandOptions[DiagramCommand.ZoomLevel] = function(value) {\r\n if (\"object\" === typeof this._getOption(\"zoomLevel\")) {\r\n this._setOption(\"zoomLevel.value\", value)\r\n } else {\r\n this._setOption(\"zoomLevel\", value)\r\n }\r\n };\r\n this.commandOptions[DiagramCommand.SwitchAutoZoom] = function(value) {\r\n var {\r\n AutoZoomMode: AutoZoomMode\r\n } = getDiagram();\r\n switch (value) {\r\n case AutoZoomMode.FitContent:\r\n this._setOption(\"autoZoomMode\", \"fitContent\");\r\n break;\r\n case AutoZoomMode.FitToWidth:\r\n this._setOption(\"autoZoomMode\", \"fitWidth\");\r\n break;\r\n case AutoZoomMode.Disabled:\r\n this._setOption(\"autoZoomMode\", \"disabled\")\r\n }\r\n };\r\n this.commandOptions[DiagramCommand.ToggleSimpleView] = \"simpleView\";\r\n this.commandOptions[DiagramCommand.ShowGrid] = \"showGrid\";\r\n this.commandOptions[DiagramCommand.SnapToGrid] = \"snapToGrid\";\r\n this.commandOptions[DiagramCommand.GridSize] = function(value) {\r\n if (\"object\" === typeof this._getOption(\"gridSize\")) {\r\n this._setOption(\"gridSize.value\", value)\r\n } else {\r\n this._setOption(\"gridSize\", value)\r\n }\r\n };\r\n this.commandOptions[DiagramCommand.ViewUnits] = \"viewUnits\";\r\n this.commandOptions[DiagramCommand.PageSize] = function(value) {\r\n var pageSize = this._getOption(\"pageSize\");\r\n if (void 0 === pageSize || pageSize.width !== value.width || pageSize.height !== value.height) {\r\n this._setOption(\"pageSize\", value)\r\n }\r\n };\r\n this.commandOptions[DiagramCommand.PageLandscape] = function(value) {\r\n this._setOption(\"pageOrientation\", value ? \"landscape\" : \"portrait\")\r\n };\r\n this.commandOptions[DiagramCommand.ViewUnits] = function(value) {\r\n var {\r\n DiagramUnit: DiagramUnit\r\n } = getDiagram();\r\n switch (value) {\r\n case DiagramUnit.In:\r\n this._setOption(\"viewUnits\", \"in\");\r\n break;\r\n case DiagramUnit.Cm:\r\n this._setOption(\"viewUnits\", \"cm\");\r\n break;\r\n case DiagramUnit.Px:\r\n this._setOption(\"viewUnits\", \"px\")\r\n }\r\n };\r\n this.commandOptions[DiagramCommand.PageColor] = \"pageColor\";\r\n this._updateLock = 0\r\n }\r\n getCommandKeys() {\r\n return Object.keys(this.commandOptions).map((function(key) {\r\n return parseInt(key)\r\n }))\r\n }\r\n setItemValue(key, value) {\r\n if (this.isUpdateLocked()) {\r\n return\r\n }\r\n this.beginUpdate();\r\n try {\r\n if (\"function\" === typeof this.commandOptions[key]) {\r\n this.commandOptions[key].call(this, value)\r\n } else {\r\n this._setOption(this.commandOptions[key], value)\r\n }\r\n } finally {\r\n this.endUpdate()\r\n }\r\n }\r\n beginUpdate() {\r\n this._updateLock++\r\n }\r\n endUpdate() {\r\n this._updateLock--\r\n }\r\n isUpdateLocked() {\r\n return this._updateLock > 0\r\n }\r\n _getOption(name) {\r\n return this._owner.option(name)\r\n }\r\n _setOption(name, value) {\r\n this._owner.option(name, value)\r\n }\r\n}\r\nexport default DiagramOptionsUpdateBar;\r\n","/**\r\n * DevExtreme (esm/ui/track_bar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Editor from \"./editor/editor\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport fx from \"../animation/fx\";\r\nvar TRACKBAR_CLASS = \"dx-trackbar\";\r\nvar TRACKBAR_CONTAINER_CLASS = \"dx-trackbar-container\";\r\nvar TRACKBAR_RANGE_CLASS = \"dx-trackbar-range\";\r\nvar TRACKBAR_WRAPPER_CLASS = \"dx-trackbar-wrapper\";\r\nvar TrackBar = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n min: 0,\r\n max: 100,\r\n value: 0\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TRACKBAR_CLASS);\r\n this._renderWrapper();\r\n this._renderContainer();\r\n this._renderRange();\r\n this._renderValue();\r\n this._setRangeStyles();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setRangeStyles(this._rangeStylesConfig())\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(TRACKBAR_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderContainer: function() {\r\n this._$bar = $(\"<div>\").addClass(TRACKBAR_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _renderRange: function() {\r\n this._$range = $(\"<div>\").addClass(TRACKBAR_RANGE_CLASS).appendTo(this._$bar)\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (min > max) {\r\n return\r\n }\r\n if (val < min) {\r\n this.option(\"value\", min);\r\n this._currentRatio = 0;\r\n return\r\n }\r\n if (val > max) {\r\n this.option(\"value\", max);\r\n this._currentRatio = 1;\r\n return\r\n }\r\n var ratio = min === max ? 0 : (val - min) / (max - min);\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n width: 100 * ratio + \"%\"\r\n });\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: max,\r\n valuenow: val\r\n });\r\n this._currentRatio = ratio\r\n },\r\n _rangeStylesConfig: function() {\r\n return {\r\n width: 100 * this._currentRatio + \"%\"\r\n }\r\n },\r\n _setRangeStyles: function(options) {\r\n fx.stop(this._$range);\r\n if (!options) {\r\n this._$range.css({\r\n width: 0\r\n });\r\n return\r\n }\r\n if (this._needPreventAnimation || !hasWindow()) {\r\n return\r\n }\r\n fx.animate(this._$range, {\r\n type: \"custom\",\r\n duration: 100,\r\n to: options\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"max\":\r\n case \"min\":\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$range);\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxTrackBar\", TrackBar);\r\nexport default TrackBar;\r\n","/**\r\n * DevExtreme (esm/ui/progress_bar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport TrackBar from \"./track_bar\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nvar PROGRESSBAR_CLASS = \"dx-progressbar\";\r\nvar PROGRESSBAR_CONTAINER_CLASS = \"dx-progressbar-container\";\r\nvar PROGRESSBAR_RANGE_CONTAINER_CLASS = \"dx-progressbar-range-container\";\r\nvar PROGRESSBAR_RANGE_CLASS = \"dx-progressbar-range\";\r\nvar PROGRESSBAR_WRAPPER_CLASS = \"dx-progressbar-wrapper\";\r\nvar PROGRESSBAR_STATUS_CLASS = \"dx-progressbar-status\";\r\nvar PROGRESSBAR_INDETERMINATE_SEGMENT_CONTAINER = \"dx-progressbar-animating-container\";\r\nvar PROGRESSBAR_INDETERMINATE_SEGMENT = \"dx-progressbar-animating-segment\";\r\nvar ProgressBar = TrackBar.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n statusFormat: function(ratio) {\r\n return \"Progress: \" + Math.round(100 * ratio) + \"%\"\r\n },\r\n showStatus: true,\r\n onComplete: null,\r\n activeStateEnabled: false,\r\n statusPosition: \"bottom left\",\r\n _animatingSegmentCount: 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"android\" === _device.platform\r\n },\r\n options: {\r\n _animatingSegmentCount: 2\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderStatus();\r\n this._createCompleteAction();\r\n this.callBase();\r\n this.$element().addClass(PROGRESSBAR_CLASS);\r\n this._$wrapper.addClass(PROGRESSBAR_WRAPPER_CLASS);\r\n this._$bar.addClass(PROGRESSBAR_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"progressbar\");\r\n $(\"<div>\").addClass(PROGRESSBAR_RANGE_CONTAINER_CLASS).appendTo(this._$wrapper).append(this._$bar);\r\n this._$range.addClass(PROGRESSBAR_RANGE_CLASS);\r\n this._toggleStatus(this.option(\"showStatus\"))\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _createCompleteAction: function() {\r\n this._completeAction = this._createActionByOption(\"onComplete\")\r\n },\r\n _renderStatus: function() {\r\n this._$status = $(\"<div>\").addClass(PROGRESSBAR_STATUS_CLASS)\r\n },\r\n _renderIndeterminateState: function() {\r\n this._$segmentContainer = $(\"<div>\").addClass(PROGRESSBAR_INDETERMINATE_SEGMENT_CONTAINER);\r\n var segments = this.option(\"_animatingSegmentCount\");\r\n for (var i = 0; i < segments; i++) {\r\n $(\"<div>\").addClass(PROGRESSBAR_INDETERMINATE_SEGMENT).addClass(PROGRESSBAR_INDETERMINATE_SEGMENT + \"-\" + (i + 1)).appendTo(this._$segmentContainer)\r\n }\r\n this._$segmentContainer.appendTo(this._$wrapper)\r\n },\r\n _toggleStatus: function(value) {\r\n var splitPosition = this.option(\"statusPosition\").split(\" \");\r\n if (value) {\r\n if (\"top\" === splitPosition[0] || \"left\" === splitPosition[0]) {\r\n this._$status.prependTo(this._$wrapper)\r\n } else {\r\n this._$status.appendTo(this._$wrapper)\r\n }\r\n } else {\r\n this._$status.detach()\r\n }\r\n this._togglePositionClass()\r\n },\r\n _togglePositionClass: function() {\r\n var position = this.option(\"statusPosition\");\r\n var splitPosition = position.split(\" \");\r\n this._$wrapper.removeClass(\"dx-position-top-left dx-position-top-right dx-position-bottom-left dx-position-bottom-right dx-position-left dx-position-right\");\r\n var positionClass = \"dx-position-\" + splitPosition[0];\r\n if (splitPosition[1]) {\r\n positionClass += \"-\" + splitPosition[1]\r\n }\r\n this._$wrapper.addClass(positionClass)\r\n },\r\n _toggleIndeterminateState: function(value) {\r\n if (value) {\r\n this._renderIndeterminateState();\r\n this._$bar.toggle(false)\r\n } else {\r\n this._$bar.toggle(true);\r\n this._$segmentContainer.remove();\r\n delete this._$segmentContainer\r\n }\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var max = this.option(\"max\");\r\n if (!val && 0 !== val) {\r\n this._toggleIndeterminateState(true);\r\n return\r\n }\r\n if (this._$segmentContainer) {\r\n this._toggleIndeterminateState(false)\r\n }\r\n if (val === max) {\r\n this._completeAction()\r\n }\r\n this.callBase();\r\n this._setStatus()\r\n },\r\n _setStatus: function() {\r\n var format = this.option(\"statusFormat\");\r\n if (isFunction(format)) {\r\n format = format.bind(this)\r\n } else {\r\n format = function(value) {\r\n return value\r\n }\r\n }\r\n var statusText = format(this._currentRatio, this.option(\"value\"));\r\n this._$status.text(statusText)\r\n },\r\n _dispose: function() {\r\n this._$status.remove();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"statusFormat\":\r\n this._setStatus();\r\n break;\r\n case \"showStatus\":\r\n this._toggleStatus(args.value);\r\n break;\r\n case \"statusPosition\":\r\n this._toggleStatus(this.option(\"showStatus\"));\r\n break;\r\n case \"onComplete\":\r\n this._createCompleteAction();\r\n break;\r\n case \"_animatingSegmentCount\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxProgressBar\", ProgressBar);\r\nexport default ProgressBar;\r\n","/**\r\n * DevExtreme (esm/ui/file_uploader.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOffset,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport ajax from \"../core/utils/ajax\";\r\nimport Editor from \"./editor/editor\";\r\nimport Button from \"./button\";\r\nimport ProgressBar from \"./progress_bar\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n isFluent,\r\n isMaterial\r\n} from \"./themes\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nvar window = getWindow();\r\nvar FILEUPLOADER_CLASS = \"dx-fileuploader\";\r\nvar FILEUPLOADER_EMPTY_CLASS = \"dx-fileuploader-empty\";\r\nvar FILEUPLOADER_SHOW_FILE_LIST_CLASS = \"dx-fileuploader-show-file-list\";\r\nvar FILEUPLOADER_DRAGOVER_CLASS = \"dx-fileuploader-dragover\";\r\nvar FILEUPLOADER_WRAPPER_CLASS = \"dx-fileuploader-wrapper\";\r\nvar FILEUPLOADER_CONTAINER_CLASS = \"dx-fileuploader-container\";\r\nvar FILEUPLOADER_CONTENT_CLASS = \"dx-fileuploader-content\";\r\nvar FILEUPLOADER_INPUT_WRAPPER_CLASS = \"dx-fileuploader-input-wrapper\";\r\nvar FILEUPLOADER_INPUT_CONTAINER_CLASS = \"dx-fileuploader-input-container\";\r\nvar FILEUPLOADER_INPUT_LABEL_CLASS = \"dx-fileuploader-input-label\";\r\nvar FILEUPLOADER_INPUT_CLASS = \"dx-fileuploader-input\";\r\nvar FILEUPLOADER_FILES_CONTAINER_CLASS = \"dx-fileuploader-files-container\";\r\nvar FILEUPLOADER_FILE_CONTAINER_CLASS = \"dx-fileuploader-file-container\";\r\nvar FILEUPLOADER_FILE_INFO_CLASS = \"dx-fileuploader-file-info\";\r\nvar FILEUPLOADER_FILE_STATUS_MESSAGE_CLASS = \"dx-fileuploader-file-status-message\";\r\nvar FILEUPLOADER_FILE_CLASS = \"dx-fileuploader-file\";\r\nvar FILEUPLOADER_FILE_NAME_CLASS = \"dx-fileuploader-file-name\";\r\nvar FILEUPLOADER_FILE_SIZE_CLASS = \"dx-fileuploader-file-size\";\r\nvar FILEUPLOADER_BUTTON_CLASS = \"dx-fileuploader-button\";\r\nvar FILEUPLOADER_BUTTON_CONTAINER_CLASS = \"dx-fileuploader-button-container\";\r\nvar FILEUPLOADER_CANCEL_BUTTON_CLASS = \"dx-fileuploader-cancel-button\";\r\nvar FILEUPLOADER_UPLOAD_BUTTON_CLASS = \"dx-fileuploader-upload-button\";\r\nvar FILEUPLOADER_INVALID_CLASS = \"dx-fileuploader-invalid\";\r\nvar FILEUPLOADER_AFTER_LOAD_DELAY = 400;\r\nvar FILEUPLOADER_CHUNK_META_DATA_NAME = \"chunkMetadata\";\r\nvar DRAG_EVENT_DELTA = 1;\r\nvar renderFileUploaderInput = () => $(\"<input>\").attr(\"type\", \"file\");\r\nvar isFormDataSupported = () => !!window.FormData;\r\nclass FileUploader extends Editor {\r\n _supportedKeys() {\r\n var click = e => {\r\n e.preventDefault();\r\n var $selectButton = this._selectButton.$element();\r\n eventsEngine.trigger($selectButton, clickEventName)\r\n };\r\n return extend(super._supportedKeys(), {\r\n space: click,\r\n enter: click\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n value: true\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n chunkSize: 0,\r\n value: [],\r\n selectButtonText: messageLocalization.format(\"dxFileUploader-selectFile\"),\r\n uploadButtonText: messageLocalization.format(\"dxFileUploader-upload\"),\r\n labelText: messageLocalization.format(\"dxFileUploader-dropFile\"),\r\n name: \"files[]\",\r\n multiple: false,\r\n accept: \"\",\r\n uploadUrl: \"/\",\r\n allowCanceling: true,\r\n showFileList: true,\r\n progress: 0,\r\n dialogTrigger: void 0,\r\n dropZone: void 0,\r\n readyToUploadMessage: messageLocalization.format(\"dxFileUploader-readyToUpload\"),\r\n uploadedMessage: messageLocalization.format(\"dxFileUploader-uploaded\"),\r\n uploadFailedMessage: messageLocalization.format(\"dxFileUploader-uploadFailedMessage\"),\r\n uploadAbortedMessage: messageLocalization.format(\"dxFileUploader-uploadAbortedMessage\"),\r\n uploadMode: \"instantly\",\r\n uploadMethod: \"POST\",\r\n uploadHeaders: {},\r\n uploadCustomData: {},\r\n onBeforeSend: null,\r\n onUploadStarted: null,\r\n onUploaded: null,\r\n onFilesUploaded: null,\r\n onProgress: null,\r\n onUploadError: null,\r\n onUploadAborted: null,\r\n onDropZoneEnter: null,\r\n onDropZoneLeave: null,\r\n allowedFileExtensions: [],\r\n maxFileSize: 0,\r\n minFileSize: 0,\r\n inputAttr: {},\r\n invalidFileExtensionMessage: messageLocalization.format(\"dxFileUploader-invalidFileExtension\"),\r\n invalidMaxFileSizeMessage: messageLocalization.format(\"dxFileUploader-invalidMaxFileSize\"),\r\n invalidMinFileSizeMessage: messageLocalization.format(\"dxFileUploader-invalidMinFileSize\"),\r\n extendSelection: true,\r\n validationMessageMode: \"always\",\r\n uploadFile: null,\r\n uploadChunk: null,\r\n abortUpload: null,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n hoverStateEnabled: true,\r\n useNativeInputClick: false,\r\n useDragOver: true,\r\n nativeDropSupported: true,\r\n _uploadButtonType: \"normal\",\r\n _buttonStylingMode: \"contained\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: [{\r\n platform: \"android\"\r\n }],\r\n options: {\r\n validationMessageOffset: {\r\n v: 0\r\n }\r\n }\r\n }, {\r\n device: () => \"desktop\" !== devices.real().deviceType,\r\n options: {\r\n useDragOver: false\r\n }\r\n }, {\r\n device: () => !isFormDataSupported(),\r\n options: {\r\n uploadMode: \"useForm\"\r\n }\r\n }, {\r\n device: () => \"desktop\" !== devices.real().deviceType,\r\n options: {\r\n nativeDropSupported: false\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n _uploadButtonType: \"default\"\r\n }\r\n }, {\r\n device: () => isFluent(),\r\n options: {\r\n _buttonStylingMode: \"text\"\r\n }\r\n }])\r\n }\r\n _initOptions(options) {\r\n var isLabelTextDefined = \"labelText\" in options;\r\n super._initOptions(options);\r\n if (!isLabelTextDefined && !this._shouldDragOverBeRendered()) {\r\n this.option(\"labelText\", \"\")\r\n }\r\n }\r\n _init() {\r\n super._init();\r\n this._initFileInput();\r\n this._initLabel();\r\n this._setUploadStrategy();\r\n this._createFiles();\r\n this._createBeforeSendAction();\r\n this._createUploadStartedAction();\r\n this._createUploadedAction();\r\n this._createFilesUploadedAction();\r\n this._createProgressAction();\r\n this._createUploadErrorAction();\r\n this._createUploadAbortedAction();\r\n this._createDropZoneEnterAction();\r\n this._createDropZoneLeaveAction()\r\n }\r\n _setUploadStrategy() {\r\n var strategy = null;\r\n if (this.option(\"chunkSize\") > 0) {\r\n var uploadChunk = this.option(\"uploadChunk\");\r\n strategy = uploadChunk && isFunction(uploadChunk) ? new CustomChunksFileUploadStrategy(this) : new DefaultChunksFileUploadStrategy(this)\r\n } else {\r\n var uploadFile = this.option(\"uploadFile\");\r\n strategy = uploadFile && isFunction(uploadFile) ? new CustomWholeFileUploadStrategy(this) : new DefaultWholeFileUploadStrategy(this)\r\n }\r\n this._uploadStrategy = strategy\r\n }\r\n _initFileInput() {\r\n this._isCustomClickEvent = false;\r\n if (!this._$fileInput) {\r\n this._$fileInput = renderFileUploaderInput();\r\n eventsEngine.on(this._$fileInput, \"change\", this._inputChangeHandler.bind(this));\r\n eventsEngine.on(this._$fileInput, \"click\", e => {\r\n e.stopPropagation();\r\n this._resetInputValue();\r\n return this.option(\"useNativeInputClick\") || this._isCustomClickEvent\r\n })\r\n }\r\n this._$fileInput.prop({\r\n multiple: this.option(\"multiple\"),\r\n accept: this.option(\"accept\"),\r\n title: this.option(\"hint\") || null,\r\n tabIndex: -1\r\n })\r\n }\r\n _inputChangeHandler() {\r\n if (this._doPreventInputChange) {\r\n return\r\n }\r\n var fileName = this._$fileInput.val().replace(/^.*\\\\/, \"\");\r\n var files = this._$fileInput.prop(\"files\");\r\n if (files && !files.length && \"useForm\" !== this.option(\"uploadMode\")) {\r\n return\r\n }\r\n var value = files ? this._getFiles(files) : [{\r\n name: fileName\r\n }];\r\n this._changeValue(value);\r\n if (\"instantly\" === this.option(\"uploadMode\")) {\r\n this._uploadFiles()\r\n }\r\n }\r\n _shouldFileListBeExtended() {\r\n return \"useForm\" !== this.option(\"uploadMode\") && this.option(\"extendSelection\") && this.option(\"multiple\")\r\n }\r\n _changeValue(value) {\r\n var files = this._shouldFileListBeExtended() ? this.option(\"value\").slice() : [];\r\n this.option(\"value\", files.concat(value))\r\n }\r\n _getFiles(fileList) {\r\n var values = [];\r\n each(fileList, (_, value) => values.push(value));\r\n return values\r\n }\r\n _getFile(fileData) {\r\n var targetFileValue = isNumeric(fileData) ? this.option(\"value\")[fileData] : fileData;\r\n return this._files.filter(file => file.value === targetFileValue)[0]\r\n }\r\n _initLabel() {\r\n if (!this._$inputLabel) {\r\n this._$inputLabel = $(\"<div>\")\r\n }\r\n this._updateInputLabelText()\r\n }\r\n _updateInputLabelText() {\r\n var correctedValue = this._isInteractionDisabled() ? \"\" : this.option(\"labelText\");\r\n this._$inputLabel.text(correctedValue)\r\n }\r\n _focusTarget() {\r\n return this.$element().find(\".\" + FILEUPLOADER_BUTTON_CLASS)\r\n }\r\n _getSubmitElement() {\r\n return this._$fileInput\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.$element().addClass(FILEUPLOADER_CLASS);\r\n this._renderWrapper();\r\n this._renderInputWrapper();\r\n this._renderSelectButton();\r\n this._renderInputContainer();\r\n this._renderUploadButton();\r\n this._preventRecreatingFiles = true;\r\n this._activeDropZone = null\r\n }\r\n _render() {\r\n this._preventRecreatingFiles = false;\r\n this._attachDragEventHandlers(this._$inputWrapper);\r\n this._attachDragEventHandlers(this.option(\"dropZone\"));\r\n this._renderFiles();\r\n super._render()\r\n }\r\n _createFileProgressBar(file) {\r\n file.progressBar = this._createProgressBar(file.value.size);\r\n file.progressBar.$element().appendTo(file.$file);\r\n this._initStatusMessage(file);\r\n this._ensureCancelButtonInitialized(file)\r\n }\r\n _setStatusMessage(file, message) {\r\n setTimeout(() => {\r\n if (this.option(\"showFileList\")) {\r\n if (file.$statusMessage) {\r\n file.$statusMessage.text(message);\r\n file.$statusMessage.css(\"display\", \"\");\r\n file.progressBar.$element().remove()\r\n }\r\n }\r\n }, FILEUPLOADER_AFTER_LOAD_DELAY)\r\n }\r\n _getUploadAbortedStatusMessage() {\r\n return \"instantly\" === this.option(\"uploadMode\") ? this.option(\"uploadAbortedMessage\") : this.option(\"readyToUploadMessage\")\r\n }\r\n _createFiles() {\r\n var value = this.option(\"value\");\r\n if (this._files && (0 === value.length || !this._shouldFileListBeExtended())) {\r\n this._preventFilesUploading(this._files);\r\n this._files = null\r\n }\r\n if (!this._files) {\r\n this._files = []\r\n }\r\n each(value.slice(this._files.length), (_, value) => {\r\n var file = this._createFile(value);\r\n this._validateFile(file);\r\n this._files.push(file)\r\n })\r\n }\r\n _preventFilesUploading(files) {\r\n files.forEach(file => this._uploadStrategy.abortUpload(file))\r\n }\r\n _validateFile(file) {\r\n file.isValidFileExtension = this._validateFileExtension(file);\r\n file.isValidMinSize = this._validateMinFileSize(file);\r\n file.isValidMaxSize = this._validateMaxFileSize(file)\r\n }\r\n _validateFileExtension(file) {\r\n var allowedExtensions = this.option(\"allowedFileExtensions\");\r\n var accept = this.option(\"accept\");\r\n var allowedTypes = this._getAllowedFileTypes(accept);\r\n var fileExtension = file.value.name.substring(file.value.name.lastIndexOf(\".\")).toLowerCase();\r\n if (0 !== accept.length && !this._isFileTypeAllowed(file.value, allowedTypes)) {\r\n return false\r\n }\r\n if (0 === allowedExtensions.length) {\r\n return true\r\n }\r\n for (var i = 0; i < allowedExtensions.length; i++) {\r\n if (fileExtension === allowedExtensions[i].toLowerCase()) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _validateMaxFileSize(file) {\r\n var fileSize = file.value.size;\r\n var maxFileSize = this.option(\"maxFileSize\");\r\n return maxFileSize > 0 ? fileSize <= maxFileSize : true\r\n }\r\n _validateMinFileSize(file) {\r\n var fileSize = file.value.size;\r\n var minFileSize = this.option(\"minFileSize\");\r\n return minFileSize > 0 ? fileSize >= minFileSize : true\r\n }\r\n _createBeforeSendAction() {\r\n this._beforeSendAction = this._createActionByOption(\"onBeforeSend\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createUploadStartedAction() {\r\n this._uploadStartedAction = this._createActionByOption(\"onUploadStarted\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createUploadedAction() {\r\n this._uploadedAction = this._createActionByOption(\"onUploaded\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createFilesUploadedAction() {\r\n this._filesUploadedAction = this._createActionByOption(\"onFilesUploaded\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createProgressAction() {\r\n this._progressAction = this._createActionByOption(\"onProgress\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createUploadAbortedAction() {\r\n this._uploadAbortedAction = this._createActionByOption(\"onUploadAborted\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createUploadErrorAction() {\r\n this._uploadErrorAction = this._createActionByOption(\"onUploadError\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _createDropZoneEnterAction() {\r\n this._dropZoneEnterAction = this._createActionByOption(\"onDropZoneEnter\")\r\n }\r\n _createDropZoneLeaveAction() {\r\n this._dropZoneLeaveAction = this._createActionByOption(\"onDropZoneLeave\")\r\n }\r\n _createFile(value) {\r\n return {\r\n value: value,\r\n loadedSize: 0,\r\n onProgress: Callbacks(),\r\n onAbort: Callbacks(),\r\n onLoad: Callbacks(),\r\n onError: Callbacks(),\r\n onLoadStart: Callbacks(),\r\n isValidFileExtension: true,\r\n isValidMaxSize: true,\r\n isValidMinSize: true,\r\n isValid() {\r\n return this.isValidFileExtension && this.isValidMaxSize && this.isValidMinSize\r\n },\r\n isInitialized: false\r\n }\r\n }\r\n _resetFileState(file) {\r\n file.isAborted = false;\r\n file.uploadStarted = false;\r\n file.isStartLoad = false;\r\n file.loadedSize = 0;\r\n file.chunksData = void 0;\r\n file.request = void 0\r\n }\r\n _renderFiles() {\r\n var _this$_validationMess;\r\n var value = this.option(\"value\");\r\n if (!this._$filesContainer) {\r\n this._$filesContainer = $(\"<div>\").addClass(FILEUPLOADER_FILES_CONTAINER_CLASS).appendTo(this._$content)\r\n } else if (!this._shouldFileListBeExtended() || 0 === value.length) {\r\n this._$filesContainer.empty()\r\n }\r\n var showFileList = this.option(\"showFileList\");\r\n if (showFileList) {\r\n each(this._files, (_, file) => {\r\n if (!file.$file) {\r\n this._renderFile(file)\r\n }\r\n })\r\n }\r\n this.$element().toggleClass(FILEUPLOADER_SHOW_FILE_LIST_CLASS, showFileList);\r\n this._toggleFileUploaderEmptyClassName();\r\n this._updateFileNameMaxWidth();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.repaint()\r\n }\r\n _renderFile(file) {\r\n var value = file.value;\r\n var $fileContainer = $(\"<div>\").addClass(FILEUPLOADER_FILE_CONTAINER_CLASS).appendTo(this._$filesContainer);\r\n this._renderFileButtons(file, $fileContainer);\r\n file.$file = $(\"<div>\").addClass(FILEUPLOADER_FILE_CLASS).appendTo($fileContainer);\r\n var $fileInfo = $(\"<div>\").addClass(FILEUPLOADER_FILE_INFO_CLASS).appendTo(file.$file);\r\n file.$statusMessage = $(\"<div>\").addClass(FILEUPLOADER_FILE_STATUS_MESSAGE_CLASS).appendTo(file.$file);\r\n $(\"<div>\").addClass(FILEUPLOADER_FILE_NAME_CLASS).text(value.name).appendTo($fileInfo);\r\n if (isDefined(value.size)) {\r\n $(\"<div>\").addClass(FILEUPLOADER_FILE_SIZE_CLASS).text(this._getFileSize(value.size)).appendTo($fileInfo)\r\n }\r\n if (file.isValid()) {\r\n file.$statusMessage.text(this.option(\"readyToUploadMessage\"))\r\n } else {\r\n if (!file.isValidFileExtension) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidFileExtensionMessage\"))\r\n }\r\n if (!file.isValidMaxSize) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidMaxFileSizeMessage\"))\r\n }\r\n if (!file.isValidMinSize) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidMinFileSizeMessage\"))\r\n }\r\n $fileContainer.addClass(FILEUPLOADER_INVALID_CLASS)\r\n }\r\n }\r\n _createValidationElement(key) {\r\n return $(\"<span>\").text(this.option(key))\r\n }\r\n _updateFileNameMaxWidth() {\r\n var cancelButtonsCount = this.option(\"allowCanceling\") && \"useForm\" !== this.option(\"uploadMode\") ? 1 : 0;\r\n var uploadButtonsCount = \"useButtons\" === this.option(\"uploadMode\") ? 1 : 0;\r\n var filesContainerWidth = getWidth(this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_CONTAINER_CLASS).first()) || getWidth(this._$filesContainer);\r\n var $buttonContainer = this._$filesContainer.find(\".\" + FILEUPLOADER_BUTTON_CONTAINER_CLASS).eq(0);\r\n var buttonsWidth = getWidth($buttonContainer) * (cancelButtonsCount + uploadButtonsCount);\r\n var $fileSize = this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_SIZE_CLASS).eq(0);\r\n var prevFileSize = $fileSize.text();\r\n $fileSize.text(\"1000 Mb\");\r\n var fileSizeWidth = getWidth($fileSize);\r\n $fileSize.text(prevFileSize);\r\n this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_NAME_CLASS).css(\"maxWidth\", filesContainerWidth - buttonsWidth - fileSizeWidth)\r\n }\r\n _renderFileButtons(file, $container) {\r\n var $cancelButton = this._getCancelButton(file);\r\n $cancelButton && $container.append($cancelButton);\r\n var $uploadButton = this._getUploadButton(file);\r\n $uploadButton && $container.append($uploadButton)\r\n }\r\n _getCancelButton(file) {\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return null\r\n }\r\n var {\r\n allowCanceling: allowCanceling,\r\n readOnly: readOnly,\r\n hoverStateEnabled: hoverStateEnabled,\r\n _buttonStylingMode: _buttonStylingMode\r\n } = this.option();\r\n file.cancelButton = this._createComponent($(\"<div>\").addClass(FILEUPLOADER_BUTTON_CLASS + \" \" + FILEUPLOADER_CANCEL_BUTTON_CLASS), Button, {\r\n onClick: () => this._removeFile(file),\r\n icon: \"close\",\r\n visible: allowCanceling,\r\n disabled: readOnly,\r\n integrationOptions: {},\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: _buttonStylingMode\r\n });\r\n return $(\"<div>\").addClass(FILEUPLOADER_BUTTON_CONTAINER_CLASS).append(file.cancelButton.$element())\r\n }\r\n _getUploadButton(file) {\r\n if (!file.isValid() || \"useButtons\" !== this.option(\"uploadMode\")) {\r\n return null\r\n }\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n _buttonStylingMode: _buttonStylingMode\r\n } = this.option();\r\n file.uploadButton = this._createComponent($(\"<div>\").addClass(FILEUPLOADER_BUTTON_CLASS + \" \" + FILEUPLOADER_UPLOAD_BUTTON_CLASS), Button, {\r\n onClick: () => this._uploadFile(file),\r\n icon: \"upload\",\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: _buttonStylingMode\r\n });\r\n file.onLoadStart.add(() => file.uploadButton.option({\r\n visible: false,\r\n disabled: true\r\n }));\r\n file.onAbort.add(() => file.uploadButton.option({\r\n visible: true,\r\n disabled: false\r\n }));\r\n return $(\"<div>\").addClass(FILEUPLOADER_BUTTON_CONTAINER_CLASS).append(file.uploadButton.$element())\r\n }\r\n _removeFile(file) {\r\n var _file$$file;\r\n null === (_file$$file = file.$file) || void 0 === _file$$file ? void 0 : _file$$file.parent().remove();\r\n this._files.splice(this._files.indexOf(file), 1);\r\n var value = this.option(\"value\").slice();\r\n value.splice(value.indexOf(file.value), 1);\r\n this._preventRecreatingFiles = true;\r\n this.option(\"value\", value);\r\n this._preventRecreatingFiles = false;\r\n this._toggleFileUploaderEmptyClassName();\r\n this._resetInputValue(true)\r\n }\r\n removeFile(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\") || !isDefined(fileData)) {\r\n return\r\n }\r\n var file = this._getFile(fileData);\r\n if (file) {\r\n if (file.uploadStarted) {\r\n this._preventFilesUploading([file])\r\n }\r\n this._removeFile(file)\r\n }\r\n }\r\n _toggleFileUploaderEmptyClassName() {\r\n this.$element().toggleClass(FILEUPLOADER_EMPTY_CLASS, !this._files.length || this._hasInvalidFile(this._files))\r\n }\r\n _hasInvalidFile(files) {\r\n for (var i = 0; i < files.length; i++) {\r\n if (!files[i].isValid()) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _getFileSize(size) {\r\n var i = 0;\r\n var labels = [messageLocalization.format(\"dxFileUploader-bytes\"), messageLocalization.format(\"dxFileUploader-kb\"), messageLocalization.format(\"dxFileUploader-Mb\"), messageLocalization.format(\"dxFileUploader-Gb\")];\r\n var count = labels.length - 1;\r\n while (i < count && size >= 1024) {\r\n size /= 1024;\r\n i++\r\n }\r\n return Math.round(size) + \" \" + labels[i]\r\n }\r\n _renderSelectButton() {\r\n var $button = $(\"<div>\").addClass(FILEUPLOADER_BUTTON_CLASS).appendTo(this._$inputWrapper);\r\n this._selectButton = this._createComponent($button, Button, {\r\n text: this.option(\"selectButtonText\"),\r\n focusStateEnabled: false,\r\n integrationOptions: {},\r\n disabled: this.option(\"readOnly\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\")\r\n });\r\n this._selectFileDialogHandler = this._selectButtonClickHandler.bind(this);\r\n if (\"desktop\" === devices.real().deviceType) {\r\n this._selectButton.option(\"onClick\", this._selectFileDialogHandler)\r\n } else {\r\n this._attachSelectFileDialogHandler(this._selectButton.$element())\r\n }\r\n this._attachSelectFileDialogHandler(this.option(\"dialogTrigger\"))\r\n }\r\n _selectButtonClickHandler() {\r\n if (this.option(\"useNativeInputClick\")) {\r\n return\r\n }\r\n if (this._isInteractionDisabled()) {\r\n return false\r\n }\r\n this._isCustomClickEvent = true;\r\n eventsEngine.trigger(this._$fileInput, \"click\");\r\n this._isCustomClickEvent = false\r\n }\r\n _attachSelectFileDialogHandler(target) {\r\n if (!isDefined(target)) {\r\n return\r\n }\r\n this._detachSelectFileDialogHandler(target);\r\n eventsEngine.on($(target), \"click\", this._selectFileDialogHandler)\r\n }\r\n _detachSelectFileDialogHandler(target) {\r\n if (!isDefined(target)) {\r\n return\r\n }\r\n eventsEngine.off($(target), \"click\", this._selectFileDialogHandler)\r\n }\r\n _renderUploadButton() {\r\n if (\"useButtons\" !== this.option(\"uploadMode\")) {\r\n return\r\n }\r\n var $uploadButton = $(\"<div>\").addClass(FILEUPLOADER_BUTTON_CLASS).addClass(FILEUPLOADER_UPLOAD_BUTTON_CLASS).appendTo(this._$content);\r\n this._uploadButton = this._createComponent($uploadButton, Button, {\r\n text: this.option(\"uploadButtonText\"),\r\n onClick: this._uploadButtonClickHandler.bind(this),\r\n type: this.option(\"_uploadButtonType\"),\r\n integrationOptions: {},\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\")\r\n })\r\n }\r\n _uploadButtonClickHandler() {\r\n this._uploadFiles()\r\n }\r\n _shouldDragOverBeRendered() {\r\n return !this.option(\"readOnly\") && (\"useForm\" !== this.option(\"uploadMode\") || this.option(\"nativeDropSupported\"))\r\n }\r\n _isInteractionDisabled() {\r\n return this.option(\"readOnly\") || this.option(\"disabled\")\r\n }\r\n _renderInputContainer() {\r\n this._$inputContainer = $(\"<div>\").addClass(FILEUPLOADER_INPUT_CONTAINER_CLASS).appendTo(this._$inputWrapper);\r\n this._$fileInput.addClass(FILEUPLOADER_INPUT_CLASS);\r\n this._renderInput();\r\n var labelId = \"dx-fileuploader-input-label-\".concat(new Guid);\r\n this._$inputLabel.attr(\"id\", labelId).addClass(FILEUPLOADER_INPUT_LABEL_CLASS).appendTo(this._$inputContainer);\r\n this.setAria(\"labelledby\", labelId, this._$fileInput)\r\n }\r\n _renderInput() {\r\n if (this.option(\"useNativeInputClick\")) {\r\n this._selectButton.option(\"template\", this._selectButtonInputTemplate.bind(this))\r\n } else {\r\n this._$fileInput.appendTo(this._$inputContainer);\r\n this._selectButton.option(\"template\", \"content\")\r\n }\r\n this._applyInputAttributes(this.option(\"inputAttr\"))\r\n }\r\n _selectButtonInputTemplate(data, content) {\r\n var $content = $(content);\r\n var $text = $(\"<span>\").addClass(\"dx-button-text\").text(data.text);\r\n $content.append($text).append(this._$fileInput);\r\n return $content\r\n }\r\n _renderInputWrapper() {\r\n this._$inputWrapper = $(\"<div>\").addClass(FILEUPLOADER_INPUT_WRAPPER_CLASS).appendTo(this._$content)\r\n }\r\n _detachDragEventHandlers(target) {\r\n if (!isDefined(target)) {\r\n return\r\n }\r\n eventsEngine.off($(target), addNamespace(\"\", this.NAME))\r\n }\r\n _attachDragEventHandlers(target) {\r\n var isCustomTarget = target !== this._$inputWrapper;\r\n if (!isDefined(target) || !this._shouldDragOverBeRendered()) {\r\n return\r\n }\r\n this._detachDragEventHandlers(target);\r\n target = $(target);\r\n eventsEngine.on(target, addNamespace(\"dragenter\", this.NAME), this._dragEnterHandler.bind(this, isCustomTarget));\r\n eventsEngine.on(target, addNamespace(\"dragover\", this.NAME), this._dragOverHandler.bind(this, isCustomTarget));\r\n eventsEngine.on(target, addNamespace(\"dragleave\", this.NAME), this._dragLeaveHandler.bind(this, isCustomTarget));\r\n eventsEngine.on(target, addNamespace(\"drop\", this.NAME), this._dropHandler.bind(this, isCustomTarget))\r\n }\r\n _applyInputAttributes(customAttributes) {\r\n this._$fileInput.attr(customAttributes)\r\n }\r\n _useInputForDrop() {\r\n return this.option(\"nativeDropSupported\") && \"useForm\" === this.option(\"uploadMode\")\r\n }\r\n _getDropZoneElement(isCustomTarget, e) {\r\n var targetList = isCustomTarget ? Array.from($(this.option(\"dropZone\"))) : [this._$inputWrapper];\r\n targetList = targetList.map(element => $(element).get(0));\r\n return targetList[targetList.indexOf(e.currentTarget)]\r\n }\r\n _dragEnterHandler(isCustomTarget, e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n var dropZoneElement = this._getDropZoneElement(isCustomTarget, e);\r\n if (isDefined(dropZoneElement) && this._shouldRaiseDragOver(e, dropZoneElement)) {\r\n this._activeDropZone = dropZoneElement;\r\n this._tryToggleDropZoneActive(true, isCustomTarget, e)\r\n }\r\n }\r\n _shouldRaiseDragOver(e, dropZoneElement) {\r\n return null === this._activeDropZone && this.isMouseOverElement(e, dropZoneElement, false) && e.originalEvent.dataTransfer.types.find(item => \"Files\" === item)\r\n }\r\n _dragOverHandler(isCustomTarget, e) {\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n e.originalEvent.dataTransfer.dropEffect = \"copy\";\r\n if (!isCustomTarget) {\r\n var dropZoneElement = this._getDropZoneElement(false, e);\r\n if (this._shouldRaiseDragOver(e, dropZoneElement)) {\r\n this._dragEnterHandler(false, e)\r\n }\r\n if (this._shouldRaiseDragLeave(e, false)) {\r\n this._dragLeaveHandler(false, e)\r\n }\r\n }\r\n }\r\n _dragLeaveHandler(isCustomTarget, e) {\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n if (this._shouldRaiseDragLeave(e, isCustomTarget)) {\r\n this._tryToggleDropZoneActive(false, isCustomTarget, e);\r\n this._activeDropZone = null\r\n }\r\n }\r\n _shouldRaiseDragLeave(e, isCustomTarget) {\r\n return null !== this._activeDropZone && !this.isMouseOverElement(e, this._activeDropZone, !isCustomTarget, -DRAG_EVENT_DELTA)\r\n }\r\n _tryToggleDropZoneActive(active, isCustom, event) {\r\n var classAction = active ? \"addClass\" : \"removeClass\";\r\n var mouseAction = active ? \"_dropZoneEnterAction\" : \"_dropZoneLeaveAction\";\r\n this[mouseAction]({\r\n event: event,\r\n dropZoneElement: this._activeDropZone\r\n });\r\n if (!isCustom) {\r\n this.$element()[classAction](FILEUPLOADER_DRAGOVER_CLASS)\r\n }\r\n }\r\n _dropHandler(isCustomTarget, e) {\r\n this._activeDropZone = null;\r\n if (!isCustomTarget) {\r\n this.$element().removeClass(FILEUPLOADER_DRAGOVER_CLASS)\r\n }\r\n if (this._useInputForDrop() || isCustomTarget && this._isInteractionDisabled()) {\r\n return\r\n }\r\n e.preventDefault();\r\n var fileList = e.originalEvent.dataTransfer.files;\r\n var files = this._getFiles(fileList);\r\n if (!this.option(\"multiple\") && files.length > 1 || 0 === files.length) {\r\n return\r\n }\r\n this._changeValue(files);\r\n if (\"instantly\" === this.option(\"uploadMode\")) {\r\n this._uploadFiles()\r\n }\r\n }\r\n _areAllFilesLoaded() {\r\n return this._files.every(file => !file.isValid() || file._isError || file._isLoaded || file.isAborted)\r\n }\r\n _handleAllFilesUploaded() {\r\n this._recalculateProgress();\r\n if (this._areAllFilesLoaded()) {\r\n this._filesUploadedAction()\r\n }\r\n }\r\n _getAllowedFileTypes(acceptSting) {\r\n if (!acceptSting.length) {\r\n return []\r\n }\r\n return acceptSting.split(\",\").map(item => item.trim())\r\n }\r\n _isFileTypeAllowed(file, allowedTypes) {\r\n for (var i = 0, n = allowedTypes.length; i < n; i++) {\r\n var allowedType = allowedTypes[i];\r\n if (\".\" === allowedType[0]) {\r\n allowedType = allowedType.replace(\".\", \"\\\\.\");\r\n if (file.name.match(new RegExp(allowedType + \"$\", \"i\"))) {\r\n return true\r\n }\r\n } else {\r\n allowedType = allowedType.replace(new RegExp(\"\\\\*\", \"g\"), \"\");\r\n if (file.type.match(new RegExp(allowedType, \"i\"))) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n }\r\n _renderWrapper() {\r\n var $wrapper = $(\"<div>\").addClass(FILEUPLOADER_WRAPPER_CLASS).appendTo(this.$element());\r\n var $container = $(\"<div>\").addClass(FILEUPLOADER_CONTAINER_CLASS).appendTo($wrapper);\r\n this._$content = $(\"<div>\").addClass(FILEUPLOADER_CONTENT_CLASS).appendTo($container)\r\n }\r\n _clean() {\r\n this._$fileInput.detach();\r\n delete this._$filesContainer;\r\n this._detachSelectFileDialogHandler(this.option(\"dialogTrigger\"));\r\n this._detachDragEventHandlers(this.option(\"dropZone\"));\r\n if (this._files) {\r\n this._files.forEach(file => {\r\n file.$file = null;\r\n file.$statusMessage = null\r\n })\r\n }\r\n super._clean()\r\n }\r\n abortUpload(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return\r\n }\r\n if (isDefined(fileData)) {\r\n var file = this._getFile(fileData);\r\n if (file) {\r\n this._preventFilesUploading([file])\r\n }\r\n } else {\r\n this._preventFilesUploading(this._files)\r\n }\r\n }\r\n upload(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return\r\n }\r\n if (isDefined(fileData)) {\r\n var file = this._getFile(fileData);\r\n if (file && isFormDataSupported()) {\r\n this._uploadFile(file)\r\n }\r\n } else {\r\n this._uploadFiles()\r\n }\r\n }\r\n _uploadFiles() {\r\n if (isFormDataSupported()) {\r\n each(this._files, (_, file) => this._uploadFile(file))\r\n }\r\n }\r\n _uploadFile(file) {\r\n this._uploadStrategy.upload(file)\r\n }\r\n _updateProgressBar(file, loadedFileData) {\r\n file.progressBar && file.progressBar.option({\r\n value: loadedFileData.loaded,\r\n showStatus: true\r\n });\r\n this._progressAction({\r\n file: file.value,\r\n segmentSize: loadedFileData.currentSegmentSize,\r\n bytesLoaded: loadedFileData.loaded,\r\n bytesTotal: loadedFileData.total,\r\n event: loadedFileData.event,\r\n request: file.request\r\n })\r\n }\r\n _updateTotalProgress(totalFilesSize, totalLoadedFilesSize) {\r\n var progress = 0;\r\n if (isDefined(totalFilesSize)) {\r\n if (this._files.length > 0 && this._areAllFilesLoaded() && 0 === totalFilesSize && 0 === totalLoadedFilesSize) {\r\n progress = this._getProgressValue(1)\r\n } else if (totalFilesSize) {\r\n progress = this._getProgressValue(totalLoadedFilesSize / totalFilesSize)\r\n }\r\n }\r\n this.option(\"progress\", progress);\r\n this._setLoadedSize(totalLoadedFilesSize)\r\n }\r\n _getProgressValue(ratio) {\r\n return Math.floor(100 * ratio)\r\n }\r\n _initStatusMessage(file) {\r\n file.$statusMessage.css(\"display\", \"none\")\r\n }\r\n _ensureCancelButtonInitialized(file) {\r\n if (file.isInitialized) {\r\n return\r\n }\r\n file.cancelButton.option(\"onClick\", () => {\r\n this._preventFilesUploading([file]);\r\n this._removeFile(file)\r\n });\r\n var hideCancelButton = () => {\r\n setTimeout(() => {\r\n file.cancelButton.option({\r\n visible: false\r\n })\r\n }, FILEUPLOADER_AFTER_LOAD_DELAY)\r\n };\r\n file.onLoad.add(hideCancelButton);\r\n file.onError.add(hideCancelButton)\r\n }\r\n _createProgressBar(fileSize) {\r\n return this._createComponent($(\"<div>\"), ProgressBar, {\r\n value: void 0,\r\n min: 0,\r\n max: fileSize,\r\n statusFormat: ratio => this._getProgressValue(ratio) + \"%\",\r\n showStatus: false,\r\n statusPosition: \"right\"\r\n })\r\n }\r\n _getTotalFilesSize() {\r\n if (!this._totalFilesSize) {\r\n this._totalFilesSize = 0;\r\n each(this._files, (_, file) => {\r\n this._totalFilesSize += file.value.size\r\n })\r\n }\r\n return this._totalFilesSize\r\n }\r\n _getTotalLoadedFilesSize() {\r\n if (!this._totalLoadedFilesSize) {\r\n this._totalLoadedFilesSize = 0;\r\n each(this._files, (_, file) => {\r\n this._totalLoadedFilesSize += file.loadedSize\r\n })\r\n }\r\n return this._totalLoadedFilesSize\r\n }\r\n _setLoadedSize(value) {\r\n this._totalLoadedFilesSize = value\r\n }\r\n _recalculateProgress() {\r\n this._totalFilesSize = 0;\r\n this._totalLoadedFilesSize = 0;\r\n this._updateTotalProgress(this._getTotalFilesSize(), this._getTotalLoadedFilesSize())\r\n }\r\n isMouseOverElement(mouseEvent, element, correctPseudoElements) {\r\n var dragEventDelta = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : DRAG_EVENT_DELTA;\r\n if (!element) {\r\n return false\r\n }\r\n var beforeHeight = correctPseudoElements ? parseFloat(window.getComputedStyle(element, \":before\").height) : 0;\r\n var afterHeight = correctPseudoElements ? parseFloat(window.getComputedStyle(element, \":after\").height) : 0;\r\n var x = getOffset(element).left;\r\n var y = getOffset(element).top + beforeHeight;\r\n var w = element.offsetWidth;\r\n var h = element.offsetHeight - beforeHeight - afterHeight;\r\n var eventX = this._getEventX(mouseEvent);\r\n var eventY = this._getEventY(mouseEvent);\r\n return eventX + dragEventDelta >= x && eventX - dragEventDelta < x + w && eventY + dragEventDelta >= y && eventY - dragEventDelta < y + h\r\n }\r\n _getEventX(e) {\r\n return isTouchEvent(e) ? this._getTouchEventX(e) : e.clientX + this._getDocumentScrollLeft()\r\n }\r\n _getEventY(e) {\r\n return isTouchEvent(e) ? this._getTouchEventY(e) : e.clientY + this._getDocumentScrollTop()\r\n }\r\n _getTouchEventX(e) {\r\n var touchPoint = null;\r\n if (e.changedTouches.length > 0) {\r\n touchPoint = e.changedTouches\r\n } else if (e.targetTouches.length > 0) {\r\n touchPoint = e.targetTouches\r\n }\r\n return touchPoint ? touchPoint[0].pageX : 0\r\n }\r\n _getTouchEventY(e) {\r\n var touchPoint = null;\r\n if (e.changedTouches.length > 0) {\r\n touchPoint = e.changedTouches\r\n } else if (e.targetTouches.length > 0) {\r\n touchPoint = e.targetTouches\r\n }\r\n return touchPoint ? touchPoint[0].pageY : 0\r\n }\r\n _getDocumentScrollTop() {\r\n var document = domAdapter.getDocument();\r\n return document.documentElement.scrollTop || document.body.scrollTop\r\n }\r\n _getDocumentScrollLeft() {\r\n var document = domAdapter.getDocument();\r\n return document.documentElement.scrollLeft || document.body.scrollLeft\r\n }\r\n _updateReadOnlyState() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._selectButton.option(\"disabled\", readOnly);\r\n this._files.forEach(file => {\r\n var _file$cancelButton;\r\n return null === (_file$cancelButton = file.cancelButton) || void 0 === _file$cancelButton ? void 0 : _file$cancelButton.option(\"disabled\", readOnly)\r\n });\r\n this._updateInputLabelText();\r\n this._attachDragEventHandlers(this._$inputWrapper)\r\n }\r\n _updateHoverState() {\r\n var _this$_selectButton, _this$_uploadButton;\r\n var value = this.option(\"hoverStateEnabled\");\r\n null === (_this$_selectButton = this._selectButton) || void 0 === _this$_selectButton ? void 0 : _this$_selectButton.option(\"hoverStateEnabled\", value);\r\n null === (_this$_uploadButton = this._uploadButton) || void 0 === _this$_uploadButton ? void 0 : _this$_uploadButton.option(\"hoverStateEnabled\", value);\r\n this._files.forEach(file => {\r\n var _file$uploadButton, _file$cancelButton2;\r\n null === (_file$uploadButton = file.uploadButton) || void 0 === _file$uploadButton ? void 0 : _file$uploadButton.option(\"hoverStateEnabled\", value);\r\n null === (_file$cancelButton2 = file.cancelButton) || void 0 === _file$cancelButton2 ? void 0 : _file$cancelButton2.option(\"hoverStateEnabled\", value)\r\n })\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"height\":\r\n case \"width\":\r\n this._updateFileNameMaxWidth();\r\n super._optionChanged(args);\r\n break;\r\n case \"value\":\r\n !value.length && this._$fileInput.val(\"\");\r\n if (!this._preventRecreatingFiles) {\r\n this._createFiles();\r\n this._renderFiles()\r\n }\r\n this._recalculateProgress();\r\n super._optionChanged(args);\r\n break;\r\n case \"name\":\r\n this._initFileInput();\r\n super._optionChanged(args);\r\n break;\r\n case \"accept\":\r\n this._initFileInput();\r\n break;\r\n case \"multiple\":\r\n this._initFileInput();\r\n if (!args.value) {\r\n this.clear()\r\n }\r\n break;\r\n case \"readOnly\":\r\n this._updateReadOnlyState();\r\n super._optionChanged(args);\r\n break;\r\n case \"disabled\":\r\n this._updateInputLabelText();\r\n super._optionChanged(args);\r\n break;\r\n case \"selectButtonText\":\r\n this._selectButton.option(\"text\", value);\r\n break;\r\n case \"uploadButtonText\":\r\n this._uploadButton && this._uploadButton.option(\"text\", value);\r\n break;\r\n case \"_uploadButtonType\":\r\n this._uploadButton && this._uploadButton.option(\"type\", value);\r\n break;\r\n case \"_buttonStylingMode\":\r\n this._files.forEach(file => {\r\n var _file$uploadButton2, _file$cancelButton3;\r\n null === (_file$uploadButton2 = file.uploadButton) || void 0 === _file$uploadButton2 ? void 0 : _file$uploadButton2.option(\"stylingMode\", value);\r\n null === (_file$cancelButton3 = file.cancelButton) || void 0 === _file$cancelButton3 ? void 0 : _file$cancelButton3.option(\"stylingMode\", value)\r\n });\r\n break;\r\n case \"dialogTrigger\":\r\n this._detachSelectFileDialogHandler(previousValue);\r\n this._attachSelectFileDialogHandler(value);\r\n break;\r\n case \"dropZone\":\r\n this._detachDragEventHandlers(previousValue);\r\n this._attachDragEventHandlers(value);\r\n break;\r\n case \"maxFileSize\":\r\n case \"minFileSize\":\r\n case \"allowedFileExtensions\":\r\n case \"invalidFileExtensionMessage\":\r\n case \"invalidMaxFileSizeMessage\":\r\n case \"invalidMinFileSizeMessage\":\r\n case \"readyToUploadMessage\":\r\n case \"uploadedMessage\":\r\n case \"uploadFailedMessage\":\r\n case \"uploadAbortedMessage\":\r\n this._invalidate();\r\n break;\r\n case \"labelText\":\r\n this._updateInputLabelText();\r\n break;\r\n case \"showFileList\":\r\n if (!this._preventRecreatingFiles) {\r\n this._renderFiles()\r\n }\r\n break;\r\n case \"uploadFile\":\r\n case \"uploadChunk\":\r\n case \"chunkSize\":\r\n this._setUploadStrategy();\r\n break;\r\n case \"abortUpload\":\r\n case \"uploadUrl\":\r\n case \"progress\":\r\n case \"uploadMethod\":\r\n case \"uploadHeaders\":\r\n case \"uploadCustomData\":\r\n case \"extendSelection\":\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._updateHoverState();\r\n super._optionChanged(args);\r\n break;\r\n case \"allowCanceling\":\r\n case \"uploadMode\":\r\n this.clear();\r\n this._invalidate();\r\n break;\r\n case \"onBeforeSend\":\r\n this._createBeforeSendAction();\r\n break;\r\n case \"onUploadStarted\":\r\n this._createUploadStartedAction();\r\n break;\r\n case \"onUploaded\":\r\n this._createUploadedAction();\r\n break;\r\n case \"onFilesUploaded\":\r\n this._createFilesUploadedAction();\r\n break;\r\n case \"onProgress\":\r\n this._createProgressAction();\r\n break;\r\n case \"onUploadError\":\r\n this._createUploadErrorAction();\r\n break;\r\n case \"onUploadAborted\":\r\n this._createUploadAbortedAction();\r\n break;\r\n case \"onDropZoneEnter\":\r\n this._createDropZoneEnterAction();\r\n break;\r\n case \"onDropZoneLeave\":\r\n this._createDropZoneLeaveAction();\r\n break;\r\n case \"useNativeInputClick\":\r\n this._renderInput();\r\n break;\r\n case \"useDragOver\":\r\n this._attachDragEventHandlers(this._$inputWrapper);\r\n break;\r\n case \"nativeDropSupported\":\r\n this._invalidate();\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this.option(name));\r\n break;\r\n case \"hint\":\r\n this._initFileInput();\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _resetInputValue(force) {\r\n if (\"useForm\" === this.option(\"uploadMode\") && !force) {\r\n return\r\n }\r\n this._doPreventInputChange = true;\r\n this._$fileInput.val(\"\");\r\n this._doPreventInputChange = false\r\n }\r\n clear() {\r\n this.option(\"value\", [])\r\n }\r\n}\r\nclass FileBlobReader {\r\n constructor(file, chunkSize) {\r\n this.file = file;\r\n this.chunkSize = chunkSize;\r\n this.index = 0\r\n }\r\n read() {\r\n if (!this.file) {\r\n return null\r\n }\r\n var result = this.createBlobResult(this.file, this.index, this.chunkSize);\r\n if (result.isCompleted) {\r\n this.file = null\r\n }\r\n this.index++;\r\n return result\r\n }\r\n createBlobResult(file, index, chunkSize) {\r\n var currentPosition = index * chunkSize;\r\n return {\r\n blob: this.sliceFile(file, currentPosition, chunkSize),\r\n index: index,\r\n isCompleted: currentPosition + chunkSize >= file.size\r\n }\r\n }\r\n sliceFile(file, startPos, length) {\r\n if (file.slice) {\r\n return file.slice(startPos, startPos + length)\r\n }\r\n if (file.webkitSlice) {\r\n return file.webkitSlice(startPos, startPos + length)\r\n }\r\n return null\r\n }\r\n}\r\nclass FileUploadStrategyBase {\r\n constructor(fileUploader) {\r\n this.fileUploader = fileUploader\r\n }\r\n upload(file) {\r\n if (file.isInitialized && file.isAborted) {\r\n this.fileUploader._resetFileState(file)\r\n }\r\n if (file.isValid() && !file.uploadStarted) {\r\n this._prepareFileBeforeUpload(file);\r\n this._uploadCore(file)\r\n }\r\n }\r\n abortUpload(file) {\r\n if (file._isError || file._isLoaded || file.isAborted || !file.uploadStarted) {\r\n return\r\n }\r\n file.isAborted = true;\r\n file.request && file.request.abort();\r\n if (this._isCustomCallback(\"abortUpload\")) {\r\n var abortUpload = this.fileUploader.option(\"abortUpload\");\r\n var arg = this._createUploadArgument(file);\r\n var deferred = null;\r\n try {\r\n var result = abortUpload(file.value, arg);\r\n deferred = fromPromise(result)\r\n } catch (error) {\r\n deferred = (new Deferred).reject(error).promise()\r\n }\r\n deferred.done(() => file.onAbort.fire()).fail(error => this._handleFileError(file, error))\r\n }\r\n }\r\n _beforeSend(xhr, file) {\r\n var arg = this._createUploadArgument(file);\r\n this.fileUploader._beforeSendAction({\r\n request: xhr,\r\n file: file.value,\r\n uploadInfo: arg\r\n });\r\n file.request = xhr\r\n }\r\n _createUploadArgument(file) {}\r\n _uploadCore(file) {}\r\n _isCustomCallback(name) {\r\n var callback = this.fileUploader.option(name);\r\n return callback && isFunction(callback)\r\n }\r\n _handleProgress(file, e) {\r\n if (file._isError) {\r\n return\r\n }\r\n file._isProgressStarted = true;\r\n this._handleProgressCore(file, e)\r\n }\r\n _handleProgressCore(file, e) {}\r\n _handleFileError(file, error) {\r\n file._isError = true;\r\n file.onError.fire(error)\r\n }\r\n _prepareFileBeforeUpload(file) {\r\n if (file.$file) {\r\n var _file$progressBar;\r\n null === (_file$progressBar = file.progressBar) || void 0 === _file$progressBar ? void 0 : _file$progressBar.dispose();\r\n this.fileUploader._createFileProgressBar(file)\r\n }\r\n if (file.isInitialized) {\r\n return\r\n }\r\n file.onLoadStart.add(this._onUploadStarted.bind(this, file));\r\n file.onLoad.add(this._onLoadedHandler.bind(this, file));\r\n file.onError.add(this._onErrorHandler.bind(this, file));\r\n file.onAbort.add(this._onAbortHandler.bind(this, file));\r\n file.onProgress.add(this._onProgressHandler.bind(this, file));\r\n file.isInitialized = true\r\n }\r\n _shouldHandleError(file, e) {\r\n return (this._isStatusError(e.status) || !file._isProgressStarted) && !file.isAborted\r\n }\r\n _isStatusError(status) {\r\n return 400 <= status && status < 500 || 500 <= status && status < 600\r\n }\r\n _onUploadStarted(file, e) {\r\n file.uploadStarted = true;\r\n this.fileUploader._uploadStartedAction({\r\n file: file.value,\r\n event: e,\r\n request: file.request\r\n })\r\n }\r\n _onAbortHandler(file, e) {\r\n var args = {\r\n file: file.value,\r\n event: e,\r\n request: file.request,\r\n message: this.fileUploader._getUploadAbortedStatusMessage()\r\n };\r\n this.fileUploader._uploadAbortedAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n }\r\n _onErrorHandler(file, error) {\r\n var args = {\r\n file: file.value,\r\n event: void 0,\r\n request: file.request,\r\n error: error,\r\n message: this.fileUploader.option(\"uploadFailedMessage\")\r\n };\r\n this.fileUploader._uploadErrorAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n }\r\n _onLoadedHandler(file, e) {\r\n var args = {\r\n file: file.value,\r\n event: e,\r\n request: file.request,\r\n message: this.fileUploader.option(\"uploadedMessage\")\r\n };\r\n file._isLoaded = true;\r\n this.fileUploader._uploadedAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n }\r\n _onProgressHandler(file, e) {\r\n if (file) {\r\n var totalFilesSize = this.fileUploader._getTotalFilesSize();\r\n var totalLoadedFilesSize = this.fileUploader._getTotalLoadedFilesSize();\r\n var loadedSize = Math.min(e.loaded, file.value.size);\r\n var segmentSize = loadedSize - file.loadedSize;\r\n file.loadedSize = loadedSize;\r\n this.fileUploader._updateTotalProgress(totalFilesSize, totalLoadedFilesSize + segmentSize);\r\n this.fileUploader._updateProgressBar(file, this._getLoadedData(loadedSize, e.total, segmentSize, e))\r\n }\r\n }\r\n _getLoadedData(loaded, total, currentSegmentSize, event) {\r\n return {\r\n loaded: loaded,\r\n total: total,\r\n currentSegmentSize: currentSegmentSize\r\n }\r\n }\r\n _extendFormData(formData) {\r\n var formDataEntries = this.fileUploader.option(\"uploadCustomData\");\r\n for (var entryName in formDataEntries) {\r\n if (Object.prototype.hasOwnProperty.call(formDataEntries, entryName) && isDefined(formDataEntries[entryName])) {\r\n formData.append(entryName, formDataEntries[entryName])\r\n }\r\n }\r\n }\r\n}\r\nclass ChunksFileUploadStrategyBase extends FileUploadStrategyBase {\r\n constructor(fileUploader) {\r\n super(fileUploader);\r\n this.chunkSize = this.fileUploader.option(\"chunkSize\")\r\n }\r\n _uploadCore(file) {\r\n var realFile = file.value;\r\n var chunksData = {\r\n name: realFile.name,\r\n loadedBytes: 0,\r\n type: realFile.type,\r\n blobReader: new FileBlobReader(realFile, this.chunkSize),\r\n guid: new Guid,\r\n fileSize: realFile.size,\r\n count: this._getFileChunksCount(realFile),\r\n customData: {}\r\n };\r\n file.chunksData = chunksData;\r\n this._sendChunk(file, chunksData)\r\n }\r\n _getFileChunksCount(jsFile) {\r\n return 0 === jsFile.size ? 1 : Math.ceil(jsFile.size / this.chunkSize)\r\n }\r\n _sendChunk(file, chunksData) {\r\n var chunk = chunksData.blobReader.read();\r\n chunksData.currentChunk = chunk;\r\n if (chunk) {\r\n this._sendChunkCore(file, chunksData, chunk).done(() => {\r\n if (file.isAborted) {\r\n return\r\n }\r\n chunksData.loadedBytes += chunk.blob.size;\r\n file.onProgress.fire({\r\n loaded: chunksData.loadedBytes,\r\n total: file.value.size\r\n });\r\n if (chunk.isCompleted) {\r\n file.onLoad.fire()\r\n }\r\n setTimeout(() => this._sendChunk(file, chunksData))\r\n }).fail(error => {\r\n if (this._shouldHandleError(file, error)) {\r\n this._handleFileError(file, error)\r\n }\r\n })\r\n }\r\n }\r\n _sendChunkCore(file, chunksData, chunk) {}\r\n _tryRaiseStartLoad(file) {\r\n if (!file.isStartLoad) {\r\n file.isStartLoad = true;\r\n file.onLoadStart.fire()\r\n }\r\n }\r\n _getEvent(e) {\r\n return null\r\n }\r\n _createUploadArgument(file) {\r\n return this._createChunksInfo(file.chunksData)\r\n }\r\n _createChunksInfo(chunksData) {\r\n return {\r\n bytesUploaded: chunksData.loadedBytes,\r\n chunkCount: chunksData.count,\r\n customData: chunksData.customData,\r\n chunkBlob: chunksData.currentChunk.blob,\r\n chunkIndex: chunksData.currentChunk.index\r\n }\r\n }\r\n}\r\nclass DefaultChunksFileUploadStrategy extends ChunksFileUploadStrategyBase {\r\n _sendChunkCore(file, chunksData, chunk) {\r\n return ajax.sendRequest({\r\n url: this.fileUploader.option(\"uploadUrl\"),\r\n method: this.fileUploader.option(\"uploadMethod\"),\r\n headers: this.fileUploader.option(\"uploadHeaders\"),\r\n beforeSend: xhr => this._beforeSend(xhr, file),\r\n upload: {\r\n onprogress: e => this._handleProgress(file, e),\r\n onloadstart: () => this._tryRaiseStartLoad(file),\r\n onabort: () => file.onAbort.fire()\r\n },\r\n data: this._createFormData({\r\n fileName: chunksData.name,\r\n blobName: this.fileUploader.option(\"name\"),\r\n blob: chunk.blob,\r\n index: chunk.index,\r\n count: chunksData.count,\r\n type: chunksData.type,\r\n guid: chunksData.guid,\r\n size: chunksData.fileSize\r\n })\r\n })\r\n }\r\n _createFormData(options) {\r\n var formData = new window.FormData;\r\n formData.append(options.blobName, options.blob);\r\n formData.append(FILEUPLOADER_CHUNK_META_DATA_NAME, JSON.stringify({\r\n FileName: options.fileName,\r\n Index: options.index,\r\n TotalCount: options.count,\r\n FileSize: options.size,\r\n FileType: options.type,\r\n FileGuid: options.guid\r\n }));\r\n this._extendFormData(formData);\r\n return formData\r\n }\r\n}\r\nclass CustomChunksFileUploadStrategy extends ChunksFileUploadStrategyBase {\r\n _sendChunkCore(file, chunksData) {\r\n this._tryRaiseStartLoad(file);\r\n var chunksInfo = this._createChunksInfo(chunksData);\r\n var uploadChunk = this.fileUploader.option(\"uploadChunk\");\r\n try {\r\n var result = uploadChunk(file.value, chunksInfo);\r\n return fromPromise(result)\r\n } catch (error) {\r\n return (new Deferred).reject(error).promise()\r\n }\r\n }\r\n _shouldHandleError(file, error) {\r\n return true\r\n }\r\n}\r\nclass WholeFileUploadStrategyBase extends FileUploadStrategyBase {\r\n _uploadCore(file) {\r\n file.loadedSize = 0;\r\n this._uploadFile(file).done(() => {\r\n if (!file.isAborted) {\r\n file.onLoad.fire()\r\n }\r\n }).fail(error => {\r\n if (this._shouldHandleError(file, error)) {\r\n this._handleFileError(file, error)\r\n }\r\n })\r\n }\r\n _uploadFile(file) {}\r\n _handleProgressCore(file, e) {\r\n file.onProgress.fire(e)\r\n }\r\n _getLoadedData(loaded, total, segmentSize, event) {\r\n var result = super._getLoadedData(loaded, total, segmentSize, event);\r\n result.event = event;\r\n return result\r\n }\r\n}\r\nclass DefaultWholeFileUploadStrategy extends WholeFileUploadStrategyBase {\r\n _uploadFile(file) {\r\n return ajax.sendRequest({\r\n url: this.fileUploader.option(\"uploadUrl\"),\r\n method: this.fileUploader.option(\"uploadMethod\"),\r\n headers: this.fileUploader.option(\"uploadHeaders\"),\r\n beforeSend: xhr => this._beforeSend(xhr, file),\r\n upload: {\r\n onprogress: e => this._handleProgress(file, e),\r\n onloadstart: () => file.onLoadStart.fire(),\r\n onabort: () => file.onAbort.fire()\r\n },\r\n data: this._createFormData(this.fileUploader.option(\"name\"), file.value)\r\n })\r\n }\r\n _createFormData(fieldName, fieldValue) {\r\n var formData = new window.FormData;\r\n formData.append(fieldName, fieldValue, fieldValue.name);\r\n this._extendFormData(formData);\r\n return formData\r\n }\r\n}\r\nclass CustomWholeFileUploadStrategy extends WholeFileUploadStrategyBase {\r\n _uploadFile(file) {\r\n file.onLoadStart.fire();\r\n var uploadFile = this.fileUploader.option(\"uploadFile\");\r\n try {\r\n var result = uploadFile(file.value, loadedBytes => {\r\n var arg = {\r\n loaded: loadedBytes,\r\n total: file.value.size\r\n };\r\n this._handleProgress(file, arg)\r\n });\r\n return fromPromise(result)\r\n } catch (error) {\r\n return (new Deferred).reject(error).promise()\r\n }\r\n }\r\n _shouldHandleError(file, e) {\r\n return true\r\n }\r\n}\r\nregisterComponent(\"dxFileUploader\", FileUploader);\r\nexport default FileUploader;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.dialog_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport FileUploader from \"../file_uploader\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar DiagramDialogManager = {\r\n getConfigurations: function() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n return this.dialogList || (this.dialogList = [{\r\n command: DiagramCommand.InsertShapeImage,\r\n title: messageLocalization.format(\"dxDiagram-dialogInsertShapeImageTitle\"),\r\n onGetContent: this.getChangeImageDialogContent\r\n }, {\r\n command: DiagramCommand.EditShapeImage,\r\n title: messageLocalization.format(\"dxDiagram-dialogEditShapeImageTitle\"),\r\n onGetContent: this.getChangeImageDialogContent\r\n }])\r\n },\r\n getChangeImageDialogContent: function(args) {\r\n var $uploader = $(\"<div>\");\r\n args.component._createComponent($uploader, FileUploader, {\r\n selectButtonText: messageLocalization.format(\"dxDiagram-dialogEditShapeImageSelectButton\"),\r\n accept: \"image/*\",\r\n uploadMode: \"useForm\",\r\n onValueChanged: function(e) {\r\n var window = getWindow();\r\n var reader = new window.FileReader;\r\n reader.onload = function(e) {\r\n args.component._commandParameter = e.target.result\r\n };\r\n reader.readAsDataURL(e.value[0])\r\n }\r\n });\r\n return $uploader\r\n },\r\n getDialogParameters(command) {\r\n var commandIndex = this.getConfigurations().map(c => c.command).indexOf(command);\r\n if (commandIndex >= 0) {\r\n return this.getConfigurations()[commandIndex]\r\n } else {\r\n return null\r\n }\r\n }\r\n};\r\nexport default DiagramDialogManager;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.items_option.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Component\r\n} from \"../../core/component\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nvar ItemsOptionBase = Component.inherit({}).include(DataHelperMixin);\r\nclass ItemsOption extends ItemsOptionBase {\r\n constructor(diagramWidget) {\r\n super();\r\n this._diagramWidget = diagramWidget;\r\n this._resetCache()\r\n }\r\n _dataSourceChangedHandler(newItems, e) {\r\n this._resetCache();\r\n this._items = newItems.map(item => extend(true, {}, item));\r\n this._dataSourceItems = newItems.slice();\r\n if (e && e.changes) {\r\n var internalChanges = e.changes.filter(change => change.internalChange);\r\n var externalChanges = e.changes.filter(change => !change.internalChange);\r\n if (internalChanges.length) {\r\n this._reloadContentByChanges(internalChanges, false)\r\n }\r\n if (externalChanges.length) {\r\n this._reloadContentByChanges(externalChanges, true)\r\n }\r\n } else {\r\n this._diagramWidget._onDataSourceChanged()\r\n }\r\n }\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this._diagramWidget._showLoadingIndicator()\r\n } else {\r\n this._diagramWidget._hideLoadingIndicator()\r\n }\r\n }\r\n _prepareData(dataObj) {\r\n for (var key in dataObj) {\r\n if (!Object.prototype.hasOwnProperty.call(dataObj, key)) {\r\n continue\r\n }\r\n if (void 0 === dataObj[key]) {\r\n dataObj[key] = null\r\n }\r\n }\r\n return dataObj\r\n }\r\n insert(data, callback, errorCallback) {\r\n this._resetCache();\r\n var store = this._getStore();\r\n store.insert(this._prepareData(data)).done((data, key) => {\r\n store.push([{\r\n type: \"insert\",\r\n key: key,\r\n data: data,\r\n internalChange: true\r\n }]);\r\n if (callback) {\r\n callback(data)\r\n }\r\n this._resetCache()\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n this._resetCache()\r\n })\r\n }\r\n update(key, data, callback, errorCallback) {\r\n var store = this._getStore();\r\n var storeKey = this._getStoreKey(store, key, data);\r\n store.update(storeKey, this._prepareData(data)).done((data, key) => {\r\n store.push([{\r\n type: \"update\",\r\n key: key,\r\n data: data,\r\n internalChange: true\r\n }]);\r\n if (callback) {\r\n callback(key, data)\r\n }\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n })\r\n }\r\n remove(key, data, callback, errorCallback) {\r\n this._resetCache();\r\n var store = this._getStore();\r\n var storeKey = this._getStoreKey(store, key, data);\r\n store.remove(storeKey).done(key => {\r\n store.push([{\r\n type: \"remove\",\r\n key: key,\r\n internalChange: true\r\n }]);\r\n if (callback) {\r\n callback(key)\r\n }\r\n this._resetCache()\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n this._resetCache()\r\n })\r\n }\r\n findItem(itemKey) {\r\n if (!this._items) {\r\n return null\r\n }\r\n return this._getItemByKey(itemKey)\r\n }\r\n getItems() {\r\n return this._items\r\n }\r\n hasItems() {\r\n return !!this._items\r\n }\r\n _reloadContentByChanges(changes, isExternalChanges) {\r\n changes = changes.map(change => extend(change, {\r\n internalKey: this._getInternalKey(change.key)\r\n }));\r\n this._diagramWidget._reloadContentByChanges(changes, isExternalChanges)\r\n }\r\n _getItemByKey(key) {\r\n this._ensureCache();\r\n var cache = this._cache;\r\n var index = this._getIndexByKey(key);\r\n return cache.items[index]\r\n }\r\n _getIndexByKey(key) {\r\n this._ensureCache();\r\n var cache = this._cache;\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = cache.keys.length; i < length; i++) {\r\n if (cache.keys[i] === key) {\r\n return i\r\n }\r\n }\r\n } else {\r\n var keySet = cache.keySet || cache.keys.reduce((accumulator, key, index) => {\r\n accumulator[key] = index;\r\n return accumulator\r\n }, {});\r\n if (!cache.keySet) {\r\n cache.keySet = keySet\r\n }\r\n return keySet[key]\r\n }\r\n return -1\r\n }\r\n _ensureCache() {\r\n var cache = this._cache;\r\n if (!cache.keys) {\r\n cache.keys = [];\r\n cache.items = [];\r\n this._fillCache(cache, this._items)\r\n }\r\n }\r\n _fillCache(cache, items) {\r\n if (!items || !items.length) {\r\n return\r\n }\r\n var keyExpr = this._getKeyExpr();\r\n if (keyExpr) {\r\n items.forEach(item => {\r\n cache.keys.push(keyExpr(item));\r\n cache.items.push(item)\r\n })\r\n }\r\n var itemsExpr = this._getItemsExpr();\r\n if (itemsExpr) {\r\n items.forEach(item => this._fillCache(cache, itemsExpr(item)))\r\n }\r\n var containerChildrenExpr = this._getContainerChildrenExpr();\r\n if (containerChildrenExpr) {\r\n items.forEach(item => this._fillCache(cache, containerChildrenExpr(item)))\r\n }\r\n }\r\n _getKeyExpr() {\r\n throw \"Not Implemented\"\r\n }\r\n _getItemsExpr() {}\r\n _getContainerChildrenExpr() {}\r\n _initDataSource() {\r\n super._initDataSource();\r\n this._dataSource && this._dataSource.paginate(false)\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _getStore() {\r\n return this._dataSource && this._dataSource.store()\r\n }\r\n _getStoreKey(store, internalKey, data) {\r\n var storeKey = store.keyOf(data);\r\n if (storeKey === data) {\r\n var keyExpr = this._getKeyExpr();\r\n this._dataSourceItems.forEach(item => {\r\n if (keyExpr(item) === internalKey) {\r\n storeKey = item\r\n }\r\n })\r\n }\r\n return storeKey\r\n }\r\n _getInternalKey(storeKey) {\r\n if (\"object\" === typeof storeKey) {\r\n var keyExpr = this._getKeyExpr();\r\n return keyExpr(storeKey)\r\n }\r\n return storeKey\r\n }\r\n _resetCache() {\r\n this._cache = {}\r\n }\r\n}\r\nexport default ItemsOption;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.nodes_option.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemsOption from \"./diagram.items_option\";\r\nclass NodesOption extends ItemsOption {\r\n _getKeyExpr() {\r\n return this._diagramWidget._createOptionGetter(\"nodes.keyExpr\")\r\n }\r\n _getItemsExpr() {\r\n return this._diagramWidget._createOptionGetter(\"nodes.itemsExpr\")\r\n }\r\n _getContainerChildrenExpr() {\r\n return this._diagramWidget._createOptionGetter(\"nodes.containerChildrenExpr\")\r\n }\r\n}\r\nexport default NodesOption;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/diagram.edges_option.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemsOption from \"./diagram.items_option\";\r\nclass EdgesOption extends ItemsOption {\r\n _getKeyExpr() {\r\n return this._diagramWidget._createOptionGetter(\"edges.keyExpr\")\r\n }\r\n}\r\nexport default EdgesOption;\r\n","/**\r\n * DevExtreme (esm/ui/diagram/ui.diagram.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileSetter,\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n getDiagram\r\n} from \"./diagram.importer\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport DiagramToolbar from \"./ui.diagram.toolbar\";\r\nimport DiagramMainToolbar from \"./ui.diagram.main_toolbar\";\r\nimport DiagramHistoryToolbar from \"./ui.diagram.history_toolbar\";\r\nimport DiagramViewToolbar from \"./ui.diagram.view_toolbar\";\r\nimport DiagramPropertiesToolbar from \"./ui.diagram.properties_toolbar\";\r\nimport diagramContextMenuModule from \"./ui.diagram.context_menu\";\r\nimport DiagramContextToolbox from \"./ui.diagram.context_toolbox\";\r\nimport DiagramDialog from \"./ui.diagram.dialogs\";\r\nimport DiagramScrollView from \"./ui.diagram.scroll_view\";\r\nimport DiagramToolboxManager from \"./diagram.toolbox_manager\";\r\nimport DiagramToolbox from \"./ui.diagram.toolbox\";\r\nimport DiagramPropertiesPanel from \"./ui.diagram.properties_panel\";\r\nimport DiagramOptionsUpdateBar from \"./diagram.options_update\";\r\nimport DiagramDialogManager from \"./ui.diagram.dialog_manager\";\r\nimport DiagramCommandsManager from \"./diagram.commands_manager\";\r\nimport NodesOption from \"./diagram.nodes_option\";\r\nimport EdgesOption from \"./diagram.edges_option\";\r\nvar DIAGRAM_CLASS = \"dx-diagram\";\r\nvar DIAGRAM_FULLSCREEN_CLASS = \"dx-diagram-fullscreen\";\r\nvar DIAGRAM_TOOLBAR_WRAPPER_CLASS = DIAGRAM_CLASS + \"-toolbar-wrapper\";\r\nvar DIAGRAM_CONTENT_WRAPPER_CLASS = DIAGRAM_CLASS + \"-content-wrapper\";\r\nvar DIAGRAM_CONTENT_CLASS = DIAGRAM_CLASS + \"-content\";\r\nvar DIAGRAM_SCROLL_VIEW_CLASS = DIAGRAM_CLASS + \"-scroll-view\";\r\nvar DIAGRAM_FLOATING_TOOLBAR_CONTAINER_CLASS = DIAGRAM_CLASS + \"-floating-toolbar-container\";\r\nvar DIAGRAM_PROPERTIES_PANEL_TOOLBAR_CONTAINER_CLASS = DIAGRAM_CLASS + \"-properties-panel-toolbar-container\";\r\nvar DIAGRAM_LOADING_INDICATOR_CLASS = DIAGRAM_CLASS + \"-loading-indicator\";\r\nvar DIAGRAM_FLOATING_PANEL_OFFSET = 12;\r\nvar DIAGRAM_DEFAULT_UNIT = \"in\";\r\nvar DIAGRAM_DEFAULT_ZOOMLEVEL = 1;\r\nvar DIAGRAM_DEFAULT_AUTOZOOM_MODE = \"disabled\";\r\nvar DIAGRAM_DEFAULT_PAGE_ORIENTATION = \"portrait\";\r\nvar DIAGRAM_DEFAULT_PAGE_COLOR = \"#ffffff\";\r\nvar DIAGRAM_MAX_MOBILE_WINDOW_WIDTH = 576;\r\nvar DIAGRAM_TOOLBOX_SHAPE_SPACING = 12;\r\nvar DIAGRAM_TOOLBOX_SHAPES_PER_ROW = 3;\r\nvar DIAGRAM_CONTEXT_TOOLBOX_SHAPE_SPACING = 12;\r\nvar DIAGRAM_CONTEXT_TOOLBOX_SHAPES_PER_ROW = 4;\r\nvar DIAGRAM_CONTEXT_TOOLBOX_DEFAULT_WIDTH = 152;\r\nvar DIAGRAM_NAMESPACE = \"dxDiagramEvent\";\r\nvar FULLSCREEN_CHANGE_EVENT_NAME = addNamespace(\"fullscreenchange\", DIAGRAM_NAMESPACE);\r\nvar IE_FULLSCREEN_CHANGE_EVENT_NAME = addNamespace(\"msfullscreenchange\", DIAGRAM_NAMESPACE);\r\nvar WEBKIT_FULLSCREEN_CHANGE_EVENT_NAME = addNamespace(\"webkitfullscreenchange\", DIAGRAM_NAMESPACE);\r\nvar MOZ_FULLSCREEN_CHANGE_EVENT_NAME = addNamespace(\"mozfullscreenchange\", DIAGRAM_NAMESPACE);\r\nclass Diagram extends Widget {\r\n _init() {\r\n this._updateDiagramLockCount = 0;\r\n this.toggleFullscreenLock = 0;\r\n this._toolbars = [];\r\n super._init();\r\n this._initDiagram();\r\n this._createCustomCommand()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._toolbars = [];\r\n delete this._isMobileScreenSize;\r\n var isServerSide = !hasWindow();\r\n this.$element().addClass(DIAGRAM_CLASS);\r\n delete this._mainToolbar;\r\n if (this.option(\"mainToolbar.visible\")) {\r\n this._renderMainToolbar()\r\n }\r\n var $contentWrapper = $(\"<div>\").addClass(DIAGRAM_CONTENT_WRAPPER_CLASS).appendTo(this.$element());\r\n delete this._historyToolbar;\r\n delete this._historyToolbarResizeCallback;\r\n if (this._isHistoryToolbarVisible()) {\r\n this._renderHistoryToolbar($contentWrapper)\r\n }\r\n delete this._propertiesToolbar;\r\n delete this._propertiesToolbarResizeCallback;\r\n if (this._isPropertiesPanelEnabled()) {\r\n this._renderPropertiesToolbar($contentWrapper)\r\n }\r\n delete this._viewToolbar;\r\n delete this._viewToolbarResizeCallback;\r\n if (this.option(\"viewToolbar.visible\")) {\r\n this._renderViewToolbar($contentWrapper)\r\n }\r\n delete this._toolbox;\r\n delete this._toolboxResizeCallback;\r\n if (this._isToolboxEnabled()) {\r\n this._renderToolbox($contentWrapper)\r\n }\r\n delete this._propertiesPanel;\r\n delete this._propertiesPanelResizeCallback;\r\n if (this._isPropertiesPanelEnabled()) {\r\n this._renderPropertiesPanel($contentWrapper)\r\n }\r\n this._$content = $(\"<div>\").addClass(DIAGRAM_CONTENT_CLASS).appendTo($contentWrapper);\r\n delete this._contextMenu;\r\n this._diagramInstance.settings.contextMenuEnabled = this.option(\"contextMenu.enabled\");\r\n if (this._diagramInstance.settings.contextMenuEnabled) {\r\n this._renderContextMenu($contentWrapper)\r\n }\r\n delete this._contextToolbox;\r\n if (this.option(\"contextToolbox.enabled\")) {\r\n this._renderContextToolbox($contentWrapper)\r\n }\r\n this._renderDialog($contentWrapper);\r\n if (!isServerSide) {\r\n var $scrollViewWrapper = $(\"<div>\").addClass(DIAGRAM_SCROLL_VIEW_CLASS).appendTo(this._$content);\r\n this._createComponent($scrollViewWrapper, DiagramScrollView, {\r\n useNativeScrolling: this.option(\"useNativeScrolling\"),\r\n onCreateDiagram: e => {\r\n this._diagramInstance.createDocument(e.$parent[0], e.scrollView, $contentWrapper[0])\r\n }\r\n })\r\n }\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_PROPERTIES_PANEL_COMMAND_NAME, this._isPropertiesPanelVisible());\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME, this._isToolboxVisible());\r\n this._createOptionsUpdateBar()\r\n }\r\n _dimensionChanged() {\r\n this._isMobileScreenSize = void 0;\r\n this._processDiagramResize()\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._bindDiagramData();\r\n this.repaint()\r\n }\r\n }\r\n _processDiagramResize() {\r\n this._diagramInstance.onDimensionChanged();\r\n if (this._historyToolbarResizeCallback) {\r\n this._historyToolbarResizeCallback.call(this)\r\n }\r\n if (this._propertiesToolbarResizeCallback) {\r\n this._propertiesToolbarResizeCallback.call(this)\r\n }\r\n if (this._propertiesPanelResizeCallback) {\r\n this._propertiesPanelResizeCallback.call(this)\r\n }\r\n if (this._viewToolbarResizeCallback) {\r\n this._viewToolbarResizeCallback.call(this)\r\n }\r\n if (this._toolboxResizeCallback) {\r\n this._toolboxResizeCallback.call(this)\r\n }\r\n }\r\n isMobileScreenSize() {\r\n if (void 0 === this._isMobileScreenSize) {\r\n this._isMobileScreenSize = hasWindow() && getOuterWidth(this.$element()) < DIAGRAM_MAX_MOBILE_WINDOW_WIDTH\r\n }\r\n return this._isMobileScreenSize\r\n }\r\n _captureFocus() {\r\n if (this._diagramInstance) {\r\n this._diagramInstance.captureFocus()\r\n }\r\n }\r\n _captureFocusOnTimeout() {\r\n this._captureFocusTimeout = setTimeout(() => {\r\n this._captureFocus();\r\n delete this._captureFocusTimeout\r\n }, 100)\r\n }\r\n _killCaptureFocusTimeout() {\r\n if (this._captureFocusTimeout) {\r\n clearTimeout(this._captureFocusTimeout);\r\n delete this._captureFocusTimeout\r\n }\r\n }\r\n notifyBarCommandExecuted() {\r\n this._captureFocusOnTimeout()\r\n }\r\n _registerToolbar(component) {\r\n this._registerBar(component);\r\n this._toolbars.push(component)\r\n }\r\n _registerBar(component) {\r\n component.bar.onChanged.add(this);\r\n this._diagramInstance.registerBar(component.bar)\r\n }\r\n _getExcludeCommands() {\r\n var excludeCommands = [];\r\n if (!this._isToolboxEnabled()) {\r\n excludeCommands.push(DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME)\r\n }\r\n if (!this._isPropertiesPanelEnabled()) {\r\n excludeCommands.push(DiagramCommandsManager.SHOW_PROPERTIES_PANEL_COMMAND_NAME)\r\n }\r\n return excludeCommands\r\n }\r\n _getToolbarBaseOptions() {\r\n return {\r\n onContentReady: _ref => {\r\n var {\r\n component: component\r\n } = _ref;\r\n return this._registerToolbar(component)\r\n },\r\n onSubMenuVisibilityChanging: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n return this._diagramInstance.updateBarItemsState(component.bar)\r\n },\r\n onPointerUp: this._onPanelPointerUp.bind(this),\r\n export: this.option(\"export\"),\r\n excludeCommands: this._getExcludeCommands(),\r\n onInternalCommand: this._onInternalCommand.bind(this),\r\n onCustomCommand: this._onCustomCommand.bind(this),\r\n isMobileView: this.isMobileScreenSize()\r\n }\r\n }\r\n _onInternalCommand(e) {\r\n switch (e.command) {\r\n case DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME:\r\n if (this._toolbox) {\r\n this._toolbox.toggle()\r\n }\r\n break;\r\n case DiagramCommandsManager.SHOW_PROPERTIES_PANEL_COMMAND_NAME:\r\n if (this._propertiesPanel) {\r\n this._propertiesPanel.toggle()\r\n }\r\n }\r\n }\r\n _onCustomCommand(e) {\r\n this._customCommandAction({\r\n name: e.name\r\n })\r\n }\r\n _renderMainToolbar() {\r\n var $toolbarWrapper = $(\"<div>\").addClass(DIAGRAM_TOOLBAR_WRAPPER_CLASS).appendTo(this.$element());\r\n this._mainToolbar = this._createComponent($toolbarWrapper, DiagramMainToolbar, extend(this._getToolbarBaseOptions(), {\r\n commands: this.option(\"mainToolbar.commands\"),\r\n skipAdjustSize: true\r\n }))\r\n }\r\n _isHistoryToolbarVisible() {\r\n return this.option(\"historyToolbar.visible\") && !this.isReadOnlyMode()\r\n }\r\n _renderHistoryToolbar($parent) {\r\n var $container = $(\"<div>\").addClass(DIAGRAM_FLOATING_TOOLBAR_CONTAINER_CLASS).appendTo($parent);\r\n this._historyToolbar = this._createComponent($container, DiagramHistoryToolbar, extend(this._getToolbarBaseOptions(), {\r\n commands: this.option(\"historyToolbar.commands\"),\r\n locateInMenu: \"never\"\r\n }));\r\n this._updateHistoryToolbarPosition();\r\n this._historyToolbarResizeCallback = () => {\r\n this._historyToolbar.option(\"isMobileView\", this.isMobileScreenSize())\r\n }\r\n }\r\n _updateHistoryToolbarPosition() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n positionUtils.setup(this._historyToolbar.$element(), {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: this._historyToolbar.$element().parent(),\r\n offset: DIAGRAM_FLOATING_PANEL_OFFSET + \" \" + DIAGRAM_FLOATING_PANEL_OFFSET\r\n })\r\n }\r\n _isToolboxEnabled() {\r\n return \"disabled\" !== this.option(\"toolbox.visibility\") && !this.isReadOnlyMode()\r\n }\r\n _isToolboxVisible() {\r\n return \"visible\" === this.option(\"toolbox.visibility\") || \"auto\" === this.option(\"toolbox.visibility\") && !this.isMobileScreenSize()\r\n }\r\n _renderToolbox($parent) {\r\n var isServerSide = !hasWindow();\r\n var $toolBox = $(\"<div>\").appendTo($parent);\r\n var bounds = this._getToolboxBounds($parent, isServerSide);\r\n this._toolbox = this._createComponent($toolBox, DiagramToolbox, {\r\n isMobileView: this.isMobileScreenSize(),\r\n isVisible: this._isToolboxVisible(),\r\n container: this.$element(),\r\n height: bounds.height,\r\n offsetParent: $parent,\r\n offsetX: bounds.offsetX,\r\n offsetY: bounds.offsetY,\r\n showSearch: this.option(\"toolbox.showSearch\"),\r\n toolboxGroups: this._getToolboxGroups(),\r\n toolboxWidth: this.option(\"toolbox.width\"),\r\n onShapeCategoryRendered: e => {\r\n if (isServerSide) {\r\n return\r\n }\r\n this._diagramInstance.createToolbox(e.$element[0], \"texts\" === e.displayMode, e.shapes || e.category, {\r\n shapeIconSpacing: DIAGRAM_TOOLBOX_SHAPE_SPACING,\r\n shapeIconCountInRow: this.option(\"toolbox.shapeIconsPerRow\"),\r\n shapeIconAttributes: {\r\n \"data-toggle\": e.dataToggle\r\n }\r\n })\r\n },\r\n onFilterChanged: e => {\r\n if (isServerSide) {\r\n return\r\n }\r\n this._diagramInstance.applyToolboxFilter(e.text, e.filteringToolboxes)\r\n },\r\n onVisibilityChanging: e => {\r\n if (isServerSide) {\r\n return\r\n }\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME, e.visible);\r\n if (this._propertiesPanel) {\r\n if (e.visible && this.isMobileScreenSize()) {\r\n this._propertiesPanel.hide()\r\n }\r\n }\r\n if (this._historyToolbar) {\r\n if (e.visible && this.isMobileScreenSize()) {\r\n this._historyToolbarZIndex = zIndexPool.create(Overlay.baseZIndex());\r\n this._historyToolbar.$element().css(\"zIndex\", this._historyToolbarZIndex);\r\n this._historyToolbar.$element().css(\"boxShadow\", \"none\")\r\n }\r\n }\r\n if (this._viewToolbar) {\r\n this._viewToolbar.$element().css(\"opacity\", e.visible && this.isMobileScreenSize() ? \"0\" : \"1\");\r\n this._viewToolbar.$element().css(\"pointerEvents\", e.visible && this.isMobileScreenSize() ? \"none\" : \"\")\r\n }\r\n },\r\n onVisibilityChanged: e => {\r\n if (!e.visible && !this._textInputStarted) {\r\n this._captureFocus()\r\n }\r\n if (!isServerSide) {\r\n if (this._historyToolbar) {\r\n if (!e.visible && this.isMobileScreenSize() && this._historyToolbarZIndex) {\r\n zIndexPool.remove(this._historyToolbarZIndex);\r\n this._historyToolbar.$element().css(\"zIndex\", \"\");\r\n this._historyToolbar.$element().css(\"boxShadow\", \"\");\r\n this._historyToolbarZIndex = void 0\r\n }\r\n }\r\n }\r\n },\r\n onPointerUp: this._onPanelPointerUp.bind(this)\r\n });\r\n this._toolbox._popup.option(\"propagateOutsideClick\", !this.option(\"fullScreen\"));\r\n this._toolboxResizeCallback = () => {\r\n var bounds = this._getToolboxBounds($parent, isServerSide);\r\n this._toolbox.option(\"height\", bounds.height);\r\n var prevIsMobileView = this._toolbox.option(\"isMobileView\");\r\n if (prevIsMobileView !== this.isMobileScreenSize()) {\r\n this._toolbox.option({\r\n isMobileView: this.isMobileScreenSize(),\r\n isVisible: this._isToolboxVisible()\r\n });\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_TOOLBOX_COMMAND_NAME, this._isToolboxVisible())\r\n }\r\n this._toolbox.updateMaxHeight()\r\n }\r\n }\r\n _getToolboxBounds($parent, isServerSide) {\r\n var result = {\r\n offsetX: DIAGRAM_FLOATING_PANEL_OFFSET,\r\n offsetY: DIAGRAM_FLOATING_PANEL_OFFSET,\r\n height: !isServerSide ? getHeight($parent) - 2 * DIAGRAM_FLOATING_PANEL_OFFSET : 0\r\n };\r\n if (this._historyToolbar && !isServerSide) {\r\n result.offsetY += getOuterHeight(this._historyToolbar.$element()) + DIAGRAM_FLOATING_PANEL_OFFSET;\r\n result.height -= getOuterHeight(this._historyToolbar.$element()) + DIAGRAM_FLOATING_PANEL_OFFSET\r\n }\r\n if (this._viewToolbar && !isServerSide) {\r\n result.height -= getOuterHeight(this._viewToolbar.$element()) + this._getViewToolbarYOffset(isServerSide)\r\n }\r\n return result\r\n }\r\n _renderViewToolbar($parent) {\r\n var isServerSide = !hasWindow();\r\n var $container = $(\"<div>\").addClass(DIAGRAM_FLOATING_TOOLBAR_CONTAINER_CLASS).appendTo($parent);\r\n this._viewToolbar = this._createComponent($container, DiagramViewToolbar, extend(this._getToolbarBaseOptions(), {\r\n commands: this.option(\"viewToolbar.commands\"),\r\n locateInMenu: \"never\"\r\n }));\r\n this._updateViewToolbarPosition($container, $parent, isServerSide);\r\n this._viewToolbarResizeCallback = () => {\r\n this._updateViewToolbarPosition($container, $parent, isServerSide)\r\n }\r\n }\r\n _getViewToolbarYOffset(isServerSide) {\r\n if (isServerSide) {\r\n return\r\n }\r\n var result = DIAGRAM_FLOATING_PANEL_OFFSET;\r\n if (this._viewToolbar && this._propertiesToolbar) {\r\n result += (getOuterHeight(this._propertiesToolbar.$element()) - getOuterHeight(this._viewToolbar.$element())) / 2\r\n }\r\n return result\r\n }\r\n _updateViewToolbarPosition($container, $parent, isServerSide) {\r\n if (isServerSide) {\r\n return\r\n }\r\n positionUtils.setup($container, {\r\n my: \"left bottom\",\r\n at: \"left bottom\",\r\n of: $parent,\r\n offset: DIAGRAM_FLOATING_PANEL_OFFSET + \" -\" + this._getViewToolbarYOffset(isServerSide)\r\n })\r\n }\r\n _isPropertiesPanelEnabled() {\r\n return \"disabled\" !== this.option(\"propertiesPanel.visibility\") && !this.isReadOnlyMode()\r\n }\r\n _isPropertiesPanelVisible() {\r\n return \"visible\" === this.option(\"propertiesPanel.visibility\")\r\n }\r\n _renderPropertiesToolbar($parent) {\r\n var isServerSide = !hasWindow();\r\n var $container = $(\"<div>\").addClass(DIAGRAM_FLOATING_TOOLBAR_CONTAINER_CLASS).addClass(DIAGRAM_PROPERTIES_PANEL_TOOLBAR_CONTAINER_CLASS).appendTo($parent);\r\n this._propertiesToolbar = this._createComponent($container, DiagramPropertiesToolbar, extend(this._getToolbarBaseOptions(), {\r\n buttonStylingMode: \"contained\",\r\n buttonType: \"default\",\r\n locateInMenu: \"never\"\r\n }));\r\n this._updatePropertiesToolbarPosition($container, $parent, isServerSide);\r\n this._propertiesToolbarResizeCallback = () => {\r\n this._updatePropertiesToolbarPosition($container, $parent, isServerSide)\r\n }\r\n }\r\n _updatePropertiesToolbarPosition($container, $parent, isServerSide) {\r\n if (isServerSide) {\r\n return\r\n }\r\n positionUtils.setup($container, {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: $parent,\r\n offset: \"-\" + DIAGRAM_FLOATING_PANEL_OFFSET + \" -\" + DIAGRAM_FLOATING_PANEL_OFFSET\r\n })\r\n }\r\n _renderPropertiesPanel($parent) {\r\n var isServerSide = !hasWindow();\r\n var $propertiesPanel = $(\"<div>\").appendTo($parent);\r\n var offsetX = DIAGRAM_FLOATING_PANEL_OFFSET;\r\n var offsetY = 2 * DIAGRAM_FLOATING_PANEL_OFFSET + (!isServerSide ? getOuterHeight(this._propertiesToolbar.$element()) : 0);\r\n this._propertiesPanel = this._createComponent($propertiesPanel, DiagramPropertiesPanel, {\r\n isMobileView: this.isMobileScreenSize(),\r\n isVisible: this._isPropertiesPanelVisible(),\r\n container: this.$element(),\r\n offsetParent: $parent,\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n propertyTabs: this.option(\"propertiesPanel.tabs\"),\r\n onCreateToolbar: e => {\r\n e.toolbar = this._createComponent(e.$parent, DiagramToolbar, extend(this._getToolbarBaseOptions(), {\r\n commands: e.commands,\r\n locateInMenu: \"never\",\r\n editorStylingMode: \"outlined\"\r\n }))\r\n },\r\n onVisibilityChanging: e => {\r\n if (isServerSide) {\r\n return\r\n }\r\n this._updatePropertiesPanelGroupBars(e.component);\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_PROPERTIES_PANEL_COMMAND_NAME, e.visible);\r\n if (this._toolbox) {\r\n if (e.visible && this.isMobileScreenSize()) {\r\n this._toolbox.hide()\r\n }\r\n }\r\n },\r\n onVisibilityChanged: e => {\r\n if (!e.visible && !this._textInputStarted) {\r\n this._captureFocus()\r\n }\r\n },\r\n onSelectedGroupChanged: _ref3 => {\r\n var {\r\n component: component\r\n } = _ref3;\r\n return this._updatePropertiesPanelGroupBars(component)\r\n },\r\n onPointerUp: this._onPanelPointerUp.bind(this)\r\n });\r\n this._propertiesPanelResizeCallback = () => {\r\n var prevIsMobileView = this._propertiesPanel.option(\"isMobileView\");\r\n if (prevIsMobileView !== this.isMobileScreenSize()) {\r\n this._propertiesPanel.option({\r\n isMobileView: this.isMobileScreenSize(),\r\n isVisible: this._isPropertiesPanelVisible()\r\n });\r\n this._setCustomCommandChecked(DiagramCommandsManager.SHOW_PROPERTIES_PANEL_COMMAND_NAME, this._isPropertiesPanelVisible())\r\n }\r\n }\r\n }\r\n _updatePropertiesPanelGroupBars(component) {\r\n component.getActiveToolbars().forEach(toolbar => {\r\n this._diagramInstance.updateBarItemsState(toolbar.bar)\r\n })\r\n }\r\n _onPanelPointerUp() {\r\n this._captureFocusOnTimeout()\r\n }\r\n _renderContextMenu($parent) {\r\n var $contextMenu = $(\"<div>\").appendTo($parent);\r\n this._contextMenu = this._createComponent($contextMenu, diagramContextMenuModule.DiagramContextMenuWrapper, {\r\n commands: this.option(\"contextMenu.commands\"),\r\n onContentReady: _ref4 => {\r\n var {\r\n component: component\r\n } = _ref4;\r\n return this._registerBar(component)\r\n },\r\n onVisibilityChanging: _ref5 => {\r\n var {\r\n component: component\r\n } = _ref5;\r\n return this._diagramInstance.updateBarItemsState(component.bar)\r\n },\r\n onItemClick: itemData => this._onBeforeCommandExecuted(itemData.command),\r\n export: this.option(\"export\"),\r\n excludeCommands: this._getExcludeCommands(),\r\n onInternalCommand: this._onInternalCommand.bind(this),\r\n onCustomCommand: this._onCustomCommand.bind(this)\r\n })\r\n }\r\n _renderContextToolbox($parent) {\r\n var isServerSide = !hasWindow();\r\n var category = this.option(\"contextToolbox.category\");\r\n var displayMode = this.option(\"contextToolbox.displayMode\");\r\n var shapes = this.option(\"contextToolbox.shapes\");\r\n var $contextToolbox = $(\"<div>\").appendTo($parent);\r\n this._contextToolbox = this._createComponent($contextToolbox, DiagramContextToolbox, {\r\n toolboxWidth: this.option(\"contextToolbox.width\"),\r\n onShown: e => {\r\n if (isServerSide) {\r\n return\r\n }\r\n var $toolboxContainer = $(e.$element);\r\n var isTextGroup = \"texts\" === displayMode;\r\n if (!shapes && !category && !isTextGroup) {\r\n var group = this._getToolboxGroups().filter((function(g) {\r\n return g.category === e.category\r\n }))[0];\r\n if (group) {\r\n isTextGroup = \"texts\" === group.displayMode\r\n }\r\n }\r\n this._diagramInstance.createContextToolbox($toolboxContainer[0], isTextGroup, shapes || category || e.category, {\r\n shapeIconSpacing: DIAGRAM_CONTEXT_TOOLBOX_SHAPE_SPACING,\r\n shapeIconCountInRow: this.option(\"contextToolbox.shapeIconsPerRow\")\r\n }, shapeType => {\r\n e.callback(shapeType);\r\n this._captureFocus();\r\n e.hide()\r\n })\r\n }\r\n })\r\n }\r\n _setCustomCommandChecked(command, checked) {\r\n this._toolbars.forEach(tb => {\r\n tb.setCommandChecked(command, checked)\r\n })\r\n }\r\n _onBeforeCommandExecuted(command) {\r\n var dialogParameters = DiagramDialogManager.getDialogParameters(command);\r\n if (dialogParameters) {\r\n this._showDialog(dialogParameters)\r\n }\r\n return !!dialogParameters\r\n }\r\n _renderDialog($parent) {\r\n var $dialogElement = $(\"<div>\").appendTo($parent);\r\n this._dialogInstance = this._createComponent($dialogElement, DiagramDialog, {})\r\n }\r\n _showDialog(dialogParameters) {\r\n if (this._dialogInstance) {\r\n this._dialogInstance.option(\"onGetContent\", dialogParameters.onGetContent);\r\n this._dialogInstance.option(\"onHidden\", function() {\r\n this._captureFocus()\r\n }.bind(this));\r\n this._dialogInstance.option(\"command\", this._diagramInstance.getCommand(dialogParameters.command));\r\n this._dialogInstance.option(\"title\", dialogParameters.title);\r\n this._dialogInstance._show()\r\n }\r\n }\r\n _showLoadingIndicator() {\r\n this._loadingIndicator = $(\"<div>\").addClass(DIAGRAM_LOADING_INDICATOR_CLASS);\r\n this._createComponent(this._loadingIndicator, LoadIndicator, {});\r\n var $parent = this._$content || this.$element();\r\n $parent.append(this._loadingIndicator)\r\n }\r\n _hideLoadingIndicator() {\r\n if (!this._loadingIndicator) {\r\n return\r\n }\r\n this._loadingIndicator.remove();\r\n this._loadingIndicator = null\r\n }\r\n _initDiagram() {\r\n var {\r\n DiagramControl: DiagramControl\r\n } = getDiagram();\r\n this._diagramInstance = new DiagramControl;\r\n this._diagramInstance.onChanged = this._raiseDataChangeAction.bind(this);\r\n this._diagramInstance.onEdgeInserted = this._raiseEdgeInsertedAction.bind(this);\r\n this._diagramInstance.onEdgeUpdated = this._raiseEdgeUpdatedAction.bind(this);\r\n this._diagramInstance.onEdgeRemoved = this._raiseEdgeRemovedAction.bind(this);\r\n this._diagramInstance.onNodeInserted = this._raiseNodeInsertedAction.bind(this);\r\n this._diagramInstance.onNodeUpdated = this._raiseNodeUpdatedAction.bind(this);\r\n this._diagramInstance.onNodeRemoved = this._raiseNodeRemovedAction.bind(this);\r\n this._diagramInstance.onToolboxDragStart = this._raiseToolboxDragStart.bind(this);\r\n this._diagramInstance.onToolboxDragEnd = this._raiseToolboxDragEnd.bind(this);\r\n this._diagramInstance.onTextInputStart = this._raiseTextInputStart.bind(this);\r\n this._diagramInstance.onTextInputEnd = this._raiseTextInputEnd.bind(this);\r\n this._diagramInstance.onToggleFullscreen = this._onToggleFullScreen.bind(this);\r\n this._diagramInstance.onShowContextMenu = this._onShowContextMenu.bind(this);\r\n this._diagramInstance.onHideContextMenu = this._onHideContextMenu.bind(this);\r\n this._diagramInstance.onShowContextToolbox = this._onShowContextToolbox.bind(this);\r\n this._diagramInstance.onHideContextToolbox = this._onHideContextToolbox.bind(this);\r\n this._diagramInstance.onNativeAction.add({\r\n notifyItemClick: this._raiseItemClickAction.bind(this),\r\n notifyItemDblClick: this._raiseItemDblClickAction.bind(this),\r\n notifySelectionChanged: this._raiseSelectionChanged.bind(this)\r\n });\r\n this._diagramInstance.onRequestOperation = this._raiseRequestEditOperation.bind(this);\r\n this._updateEventSubscriptionMethods();\r\n this._updateDefaultItemProperties();\r\n this._updateEditingSettings();\r\n this._updateShapeTexts();\r\n this._updateUnitItems();\r\n this._updateFormatUnitsMethod();\r\n if (this.option(\"units\") !== DIAGRAM_DEFAULT_UNIT) {\r\n this._updateUnitsState()\r\n }\r\n if (this.isReadOnlyMode()) {\r\n this._updateReadOnlyState()\r\n }\r\n if (this.option(\"pageSize\")) {\r\n if (this.option(\"pageSize.items\")) {\r\n this._updatePageSizeItemsState()\r\n }\r\n if (this.option(\"pageSize.width\") && this.option(\"pageSize.height\")) {\r\n this._updatePageSizeState()\r\n }\r\n }\r\n if (this.option(\"pageOrientation\") !== DIAGRAM_DEFAULT_PAGE_ORIENTATION) {\r\n this._updatePageOrientationState()\r\n }\r\n if (this.option(\"pageColor\") !== DIAGRAM_DEFAULT_PAGE_COLOR) {\r\n this._updatePageColorState()\r\n }\r\n if (this.option(\"viewUnits\") !== DIAGRAM_DEFAULT_UNIT) {\r\n this._updateViewUnitsState()\r\n }\r\n if (!this.option(\"showGrid\")) {\r\n this._updateShowGridState()\r\n }\r\n if (!this.option(\"snapToGrid\")) {\r\n this._updateSnapToGridState()\r\n }\r\n if (this.option(\"gridSize\")) {\r\n this._updateGridSizeState()\r\n }\r\n if (this.option(\"zoomLevel\") !== DIAGRAM_DEFAULT_ZOOMLEVEL) {\r\n this._updateZoomLevelState()\r\n }\r\n if (this.option(\"simpleView\")) {\r\n this._updateSimpleViewState()\r\n }\r\n if (this.option(\"autoZoomMode\") !== DIAGRAM_DEFAULT_AUTOZOOM_MODE) {\r\n this._updateAutoZoomState()\r\n }\r\n if (this.option(\"fullScreen\")) {\r\n var window = getWindow();\r\n if (window && window.self !== window.top) {\r\n this.option(\"fullScreen\", false)\r\n } else {\r\n this._updateFullscreenState()\r\n }\r\n }\r\n this._createOptionsUpdateBar();\r\n if (hasWindow()) {\r\n this._diagramInstance.initMeasurer(this.$element()[0])\r\n }\r\n this._updateCustomShapes(this._getCustomShapes());\r\n this._refreshDataSources()\r\n }\r\n _createOptionsUpdateBar() {\r\n if (!this.optionsUpdateBar) {\r\n this.optionsUpdateBar = new DiagramOptionsUpdateBar(this);\r\n this._diagramInstance.registerBar(this.optionsUpdateBar)\r\n }\r\n }\r\n _deleteOptionsUpdateBar() {\r\n delete this.optionsUpdateBar\r\n }\r\n _clean() {\r\n if (this._diagramInstance) {\r\n this._diagramInstance.cleanMarkup(element => {\r\n $(element).empty()\r\n });\r\n this._deleteOptionsUpdateBar()\r\n }\r\n super._clean()\r\n }\r\n _dispose() {\r\n this._killCaptureFocusTimeout();\r\n super._dispose();\r\n if (this._diagramInstance) {\r\n this._diagramInstance.dispose();\r\n this._diagramInstance = void 0\r\n }\r\n }\r\n _executeDiagramCommand(command, parameter) {\r\n this._diagramInstance.getCommand(command).execute(parameter)\r\n }\r\n getNodeDataSource() {\r\n return this._nodesOption && this._nodesOption.getDataSource()\r\n }\r\n getEdgeDataSource() {\r\n return this._edgesOption && this._edgesOption.getDataSource()\r\n }\r\n _refreshDataSources() {\r\n this._beginUpdateDiagram();\r\n this._refreshNodesDataSource();\r\n this._refreshEdgesDataSource();\r\n this._endUpdateDiagram()\r\n }\r\n _refreshNodesDataSource() {\r\n if (this._nodesOption) {\r\n this._nodesOption._disposeDataSource();\r\n delete this._nodesOption\r\n }\r\n if (this.option(\"nodes.dataSource\")) {\r\n this._nodesOption = new NodesOption(this);\r\n this._nodesOption.option(\"dataSource\", this.option(\"nodes.dataSource\"));\r\n this._nodesOption._refreshDataSource()\r\n }\r\n }\r\n _refreshEdgesDataSource() {\r\n if (this._edgesOption) {\r\n this._edgesOption._disposeDataSource();\r\n delete this._edgesOption\r\n }\r\n if (this.option(\"edges.dataSource\")) {\r\n this._edgesOption = new EdgesOption(this);\r\n this._edgesOption.option(\"dataSource\", this.option(\"edges.dataSource\"));\r\n this._edgesOption._refreshDataSource()\r\n }\r\n }\r\n _getDiagramData() {\r\n var value;\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.Export, (function(data) {\r\n value = data\r\n }));\r\n return value\r\n }\r\n _setDiagramData(data, keepExistingItems) {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.Import, {\r\n data: data,\r\n keepExistingItems: keepExistingItems\r\n })\r\n }\r\n isReadOnlyMode() {\r\n return this.option(\"readOnly\") || this.option(\"disabled\")\r\n }\r\n _onDataSourceChanged() {\r\n this._bindDiagramData()\r\n }\r\n _getChangesKeys(changes) {\r\n return changes.map(change => {\r\n if (isDefined(change.internalKey)) {\r\n return change.internalKey\r\n } else if (isDefined(change.key)) {\r\n return change.key\r\n } else {\r\n return null\r\n }\r\n }).filter(key => isDefined(key))\r\n }\r\n _createOptionGetter(optionName) {\r\n var expr = this.option(optionName);\r\n return expr && compileGetter(expr)\r\n }\r\n _onRequestUpdateLayout(changes) {\r\n if (!this._requestLayoutUpdateAction) {\r\n this._createRequestLayoutUpdateAction()\r\n }\r\n var eventArgs = {\r\n changes: changes,\r\n allowed: false\r\n };\r\n this._requestLayoutUpdateAction(eventArgs);\r\n return eventArgs.allowed\r\n }\r\n _createOptionSetter(optionName) {\r\n var expr = this.option(optionName);\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n return expr && compileSetter(expr)\r\n }\r\n _bindDiagramData() {\r\n if (this._updateDiagramLockCount || !this._isBindingMode()) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand,\r\n ConnectorLineOption: ConnectorLineOption,\r\n ConnectorLineEnding: ConnectorLineEnding\r\n } = getDiagram();\r\n var lineOptionGetter;\r\n var lineOptionSetter;\r\n var startLineEndingGetter;\r\n var startLineEndingSetter;\r\n var endLineEndingGetter;\r\n var endLineEndingSetter;\r\n var containerChildrenGetter;\r\n var containerChildrenSetter;\r\n var data = {\r\n nodeDataSource: this._nodesOption && this._nodesOption.getItems(),\r\n edgeDataSource: this._edgesOption && this._edgesOption.getItems(),\r\n nodeDataImporter: {\r\n getKey: this._createOptionGetter(\"nodes.keyExpr\"),\r\n setKey: this._createOptionSetter(\"nodes.keyExpr\"),\r\n getCustomData: this._createOptionGetter(\"nodes.customDataExpr\"),\r\n setCustomData: this._createOptionSetter(\"nodes.customDataExpr\"),\r\n getLocked: this._createOptionGetter(\"nodes.lockedExpr\"),\r\n setLocked: this._createOptionSetter(\"nodes.lockedExpr\"),\r\n getStyle: this._createOptionGetter(\"nodes.styleExpr\"),\r\n setStyle: this._createOptionSetter(\"nodes.styleExpr\"),\r\n getStyleText: this._createOptionGetter(\"nodes.textStyleExpr\"),\r\n setStyleText: this._createOptionSetter(\"nodes.textStyleExpr\"),\r\n getZIndex: this._createOptionGetter(\"nodes.zIndexExpr\"),\r\n setZIndex: this._createOptionSetter(\"nodes.zIndexExpr\"),\r\n getType: this._createOptionGetter(\"nodes.typeExpr\"),\r\n setType: this._createOptionSetter(\"nodes.typeExpr\"),\r\n getText: this._createOptionGetter(\"nodes.textExpr\"),\r\n setText: this._createOptionSetter(\"nodes.textExpr\"),\r\n getImage: this._createOptionGetter(\"nodes.imageUrlExpr\"),\r\n setImage: this._createOptionSetter(\"nodes.imageUrlExpr\"),\r\n getLeft: this._createOptionGetter(\"nodes.leftExpr\"),\r\n setLeft: this._createOptionSetter(\"nodes.leftExpr\"),\r\n getTop: this._createOptionGetter(\"nodes.topExpr\"),\r\n setTop: this._createOptionSetter(\"nodes.topExpr\"),\r\n getWidth: this._createOptionGetter(\"nodes.widthExpr\"),\r\n setWidth: this._createOptionSetter(\"nodes.widthExpr\"),\r\n getHeight: this._createOptionGetter(\"nodes.heightExpr\"),\r\n setHeight: this._createOptionSetter(\"nodes.heightExpr\"),\r\n getParentKey: this._createOptionGetter(\"nodes.parentKeyExpr\"),\r\n setParentKey: this._createOptionSetter(\"nodes.parentKeyExpr\"),\r\n getItems: this._createOptionGetter(\"nodes.itemsExpr\"),\r\n setItems: this._createOptionSetter(\"nodes.itemsExpr\"),\r\n getChildren: containerChildrenGetter = this._createOptionGetter(\"nodes.containerChildrenExpr\"),\r\n setChildren: containerChildrenSetter = this._createOptionSetter(\"nodes.containerChildrenExpr\"),\r\n getContainerKey: !containerChildrenGetter && !containerChildrenSetter && this._createOptionGetter(\"nodes.containerKeyExpr\"),\r\n setContainerKey: !containerChildrenGetter && !containerChildrenSetter && this._createOptionSetter(\"nodes.containerKeyExpr\")\r\n },\r\n edgeDataImporter: {\r\n getKey: this._createOptionGetter(\"edges.keyExpr\"),\r\n setKey: this._createOptionSetter(\"edges.keyExpr\"),\r\n getCustomData: this._createOptionGetter(\"edges.customDataExpr\"),\r\n setCustomData: this._createOptionSetter(\"edges.customDataExpr\"),\r\n getLocked: this._createOptionGetter(\"edges.lockedExpr\"),\r\n setLocked: this._createOptionSetter(\"edges.lockedExpr\"),\r\n getStyle: this._createOptionGetter(\"edges.styleExpr\"),\r\n setStyle: this._createOptionSetter(\"edges.styleExpr\"),\r\n getStyleText: this._createOptionGetter(\"edges.textStyleExpr\"),\r\n setStyleText: this._createOptionSetter(\"edges.textStyleExpr\"),\r\n getZIndex: this._createOptionGetter(\"edges.zIndexExpr\"),\r\n setZIndex: this._createOptionSetter(\"edges.zIndexExpr\"),\r\n getFrom: this._createOptionGetter(\"edges.fromExpr\"),\r\n setFrom: this._createOptionSetter(\"edges.fromExpr\"),\r\n getFromPointIndex: this._createOptionGetter(\"edges.fromPointIndexExpr\"),\r\n setFromPointIndex: this._createOptionSetter(\"edges.fromPointIndexExpr\"),\r\n getTo: this._createOptionGetter(\"edges.toExpr\"),\r\n setTo: this._createOptionSetter(\"edges.toExpr\"),\r\n getToPointIndex: this._createOptionGetter(\"edges.toPointIndexExpr\"),\r\n setToPointIndex: this._createOptionSetter(\"edges.toPointIndexExpr\"),\r\n getPoints: this._createOptionGetter(\"edges.pointsExpr\"),\r\n setPoints: this._createOptionSetter(\"edges.pointsExpr\"),\r\n getText: this._createOptionGetter(\"edges.textExpr\"),\r\n setText: this._createOptionSetter(\"edges.textExpr\"),\r\n getLineOption: (lineOptionGetter = this._createOptionGetter(\"edges.lineTypeExpr\")) && function(obj) {\r\n var lineType = lineOptionGetter(obj);\r\n return this._getConnectorLineOption(lineType)\r\n }.bind(this),\r\n setLineOption: (lineOptionSetter = this._createOptionSetter(\"edges.lineTypeExpr\")) && function(obj, value) {\r\n switch (value) {\r\n case ConnectorLineOption.Straight:\r\n value = \"straight\";\r\n break;\r\n case ConnectorLineOption.Orthogonal:\r\n value = \"orthogonal\"\r\n }\r\n lineOptionSetter(obj, value)\r\n }.bind(this),\r\n getStartLineEnding: (startLineEndingGetter = this._createOptionGetter(\"edges.fromLineEndExpr\")) && function(obj) {\r\n var lineEnd = startLineEndingGetter(obj);\r\n return this._getConnectorLineEnding(lineEnd)\r\n }.bind(this),\r\n setStartLineEnding: (startLineEndingSetter = this._createOptionSetter(\"edges.fromLineEndExpr\")) && function(obj, value) {\r\n switch (value) {\r\n case ConnectorLineEnding.Arrow:\r\n value = \"arrow\";\r\n break;\r\n case ConnectorLineEnding.OutlinedTriangle:\r\n value = \"outlinedTriangle\";\r\n break;\r\n case ConnectorLineEnding.FilledTriangle:\r\n value = \"filledTriangle\";\r\n break;\r\n case ConnectorLineEnding.None:\r\n value = \"none\"\r\n }\r\n startLineEndingSetter(obj, value)\r\n }.bind(this),\r\n getEndLineEnding: (endLineEndingGetter = this._createOptionGetter(\"edges.toLineEndExpr\")) && function(obj) {\r\n var lineEnd = endLineEndingGetter(obj);\r\n return this._getConnectorLineEnding(lineEnd)\r\n }.bind(this),\r\n setEndLineEnding: (endLineEndingSetter = this._createOptionSetter(\"edges.toLineEndExpr\")) && function(obj, value) {\r\n switch (value) {\r\n case ConnectorLineEnding.Arrow:\r\n value = \"arrow\";\r\n break;\r\n case ConnectorLineEnding.OutlinedTriangle:\r\n value = \"outlinedTriangle\";\r\n break;\r\n case ConnectorLineEnding.FilledTriangle:\r\n value = \"filledTriangle\";\r\n break;\r\n case ConnectorLineEnding.None:\r\n value = \"none\"\r\n }\r\n endLineEndingSetter(obj, value)\r\n }.bind(this)\r\n },\r\n layoutParameters: this._getDataBindingLayoutParameters()\r\n };\r\n if (data.nodeDataSource) {\r\n this._executeDiagramCommand(DiagramCommand.BindDocument, data)\r\n }\r\n }\r\n _reloadContentByChanges(changes, isExternalChanges) {\r\n var keys = this._getChangesKeys(changes);\r\n var applyLayout = this._onRequestUpdateLayout(changes);\r\n this._reloadContent(keys, applyLayout, isExternalChanges)\r\n }\r\n _reloadContent(itemKeys, applyLayout, isExternalChanges) {\r\n this._diagramInstance.reloadContent(itemKeys, () => {\r\n var nodeDataSource;\r\n var edgeDataSource;\r\n if (this._nodesOption && isExternalChanges) {\r\n nodeDataSource = this._nodesOption.getItems()\r\n }\r\n if (this._edgesOption && isExternalChanges) {\r\n edgeDataSource = this._edgesOption.getItems()\r\n }\r\n return {\r\n nodeDataSource: nodeDataSource,\r\n edgeDataSource: edgeDataSource\r\n }\r\n }, applyLayout && this._getDataBindingLayoutParameters(), isExternalChanges)\r\n }\r\n _getConnectorLineOption(lineType) {\r\n var {\r\n ConnectorLineOption: ConnectorLineOption\r\n } = getDiagram();\r\n switch (lineType) {\r\n case \"straight\":\r\n return ConnectorLineOption.Straight;\r\n default:\r\n return ConnectorLineOption.Orthogonal\r\n }\r\n }\r\n _getConnectorLineEnding(lineEnd) {\r\n var {\r\n ConnectorLineEnding: ConnectorLineEnding\r\n } = getDiagram();\r\n switch (lineEnd) {\r\n case \"arrow\":\r\n return ConnectorLineEnding.Arrow;\r\n case \"outlinedTriangle\":\r\n return ConnectorLineEnding.OutlinedTriangle;\r\n case \"filledTriangle\":\r\n return ConnectorLineEnding.FilledTriangle;\r\n default:\r\n return ConnectorLineEnding.None\r\n }\r\n }\r\n _getDataBindingLayoutParameters() {\r\n var {\r\n DataLayoutType: DataLayoutType,\r\n DataLayoutOrientation: DataLayoutOrientation\r\n } = getDiagram();\r\n var layoutParametersOption = this.option(\"nodes.autoLayout\") || \"off\";\r\n var layoutType = layoutParametersOption.type || layoutParametersOption;\r\n var parameters = {};\r\n if (\"off\" !== layoutType && (\"auto\" !== layoutType || !this._hasNodePositionExprs())) {\r\n switch (layoutType) {\r\n case \"tree\":\r\n parameters.type = DataLayoutType.Tree;\r\n break;\r\n default:\r\n parameters.type = DataLayoutType.Sugiyama\r\n }\r\n switch (layoutParametersOption.orientation) {\r\n case \"vertical\":\r\n parameters.orientation = DataLayoutOrientation.Vertical;\r\n break;\r\n case \"horizontal\":\r\n parameters.orientation = DataLayoutOrientation.Horizontal\r\n }\r\n if (this.option(\"edges.fromPointIndexExpr\") || this.option(\"edges.toPointIndexExpr\")) {\r\n parameters.skipPointIndices = true\r\n }\r\n }\r\n parameters.autoSizeEnabled = !!this.option(\"nodes.autoSizeEnabled\");\r\n return parameters\r\n }\r\n _hasNodePositionExprs() {\r\n return this.option(\"nodes.topExpr\") && this.option(\"nodes.leftExpr\")\r\n }\r\n _getAutoZoomValue(option) {\r\n var {\r\n AutoZoomMode: AutoZoomMode\r\n } = getDiagram();\r\n switch (option) {\r\n case \"fitContent\":\r\n return AutoZoomMode.FitContent;\r\n case \"fitWidth\":\r\n return AutoZoomMode.FitToWidth;\r\n default:\r\n return AutoZoomMode.Disabled\r\n }\r\n }\r\n _isBindingMode() {\r\n return this._nodesOption && this._nodesOption.hasItems() || this._edgesOption && this._edgesOption.hasItems()\r\n }\r\n _beginUpdateDiagram() {\r\n this._updateDiagramLockCount++\r\n }\r\n _endUpdateDiagram() {\r\n this._updateDiagramLockCount = Math.max(this._updateDiagramLockCount - 1, 0);\r\n if (!this._updateDiagramLockCount) {\r\n this._bindDiagramData()\r\n }\r\n }\r\n _getCustomShapes() {\r\n return this.option(\"customShapes\") || []\r\n }\r\n _getToolboxGroups() {\r\n return DiagramToolboxManager.getGroups(this.option(\"toolbox.groups\"))\r\n }\r\n _updateAllCustomShapes() {\r\n this._diagramInstance.removeAllCustomShapes();\r\n this._updateCustomShapes(this._getCustomShapes())\r\n }\r\n _updateCustomShapes(customShapes, prevCustomShapes) {\r\n if (Array.isArray(prevCustomShapes)) {\r\n this._diagramInstance.removeCustomShapes(prevCustomShapes.map(s => s.type))\r\n }\r\n if (Array.isArray(customShapes)) {\r\n this._diagramInstance.addCustomShapes(customShapes.map(s => {\r\n var templateOption = s.template || this.option(\"customShapeTemplate\");\r\n var template = templateOption && this._getTemplate(templateOption);\r\n var toolboxTemplateOption = s.toolboxTemplate || this.option(\"customShapeToolboxTemplate\");\r\n var toolboxTemplate = toolboxTemplateOption && this._getTemplate(toolboxTemplateOption);\r\n return {\r\n category: s.category,\r\n type: s.type,\r\n baseType: s.baseType,\r\n title: s.title,\r\n svgUrl: s.backgroundImageUrl,\r\n svgToolboxUrl: s.backgroundImageToolboxUrl,\r\n svgLeft: s.backgroundImageLeft,\r\n svgTop: s.backgroundImageTop,\r\n svgWidth: s.backgroundImageWidth,\r\n svgHeight: s.backgroundImageHeight,\r\n defaultWidth: s.defaultWidth,\r\n defaultHeight: s.defaultHeight,\r\n toolboxWidthToHeightRatio: s.toolboxWidthToHeightRatio,\r\n minWidth: s.minWidth,\r\n minHeight: s.minHeight,\r\n maxWidth: s.maxWidth,\r\n maxHeight: s.maxHeight,\r\n allowResize: s.allowResize,\r\n defaultText: s.defaultText,\r\n allowEditText: s.allowEditText,\r\n textLeft: s.textLeft,\r\n textTop: s.textTop,\r\n textWidth: s.textWidth,\r\n textHeight: s.textHeight,\r\n defaultImageUrl: s.defaultImageUrl,\r\n allowEditImage: s.allowEditImage,\r\n imageLeft: s.imageLeft,\r\n imageTop: s.imageTop,\r\n imageWidth: s.imageWidth,\r\n imageHeight: s.imageHeight,\r\n connectionPoints: s.connectionPoints && s.connectionPoints.map(pt => ({\r\n x: pt.x,\r\n y: pt.y\r\n })),\r\n createTemplate: template && ((container, item) => {\r\n template.render({\r\n model: this._nativeItemToDiagramItem(item),\r\n container: getPublicElement($(container))\r\n })\r\n }),\r\n createToolboxTemplate: toolboxTemplate && ((container, item) => {\r\n toolboxTemplate.render({\r\n model: this._nativeItemToDiagramItem(item),\r\n container: getPublicElement($(container))\r\n })\r\n }),\r\n destroyTemplate: template && (container => {\r\n $(container).empty()\r\n }),\r\n templateLeft: s.templateLeft,\r\n templateTop: s.templateTop,\r\n templateWidth: s.templateWidth,\r\n templateHeight: s.templateHeight,\r\n keepRatioOnAutoSize: s.keepRatioOnAutoSize\r\n }\r\n }))\r\n }\r\n }\r\n _getViewport() {\r\n var $viewPort = this.$element().closest(\".dx-viewport\");\r\n return $viewPort.length ? $viewPort : $(\"body\")\r\n }\r\n _onToggleFullScreen(fullScreen) {\r\n if (this.toggleFullscreenLock > 0) {\r\n return\r\n }\r\n this._changeNativeFullscreen(fullScreen);\r\n if (fullScreen) {\r\n this._prevParent = this.$element().parent();\r\n this._prevFullScreenZIndex = this.$element().css(\"zIndex\");\r\n this._fullScreenZIndex = zIndexPool.create(Overlay.baseZIndex());\r\n this.$element().css(\"zIndex\", this._fullScreenZIndex);\r\n this.$element().appendTo(this._getViewport())\r\n } else {\r\n this.$element().appendTo(this._prevParent);\r\n if (this._fullScreenZIndex) {\r\n zIndexPool.remove(this._fullScreenZIndex);\r\n this.$element().css(\"zIndex\", this._prevFullScreenZIndex)\r\n }\r\n }\r\n this.$element().toggleClass(DIAGRAM_FULLSCREEN_CLASS, fullScreen);\r\n this._processDiagramResize();\r\n if (this._toolbox) {\r\n this._toolbox.repaint();\r\n this._toolbox._popup.option(\"propagateOutsideClick\", !fullScreen)\r\n }\r\n if (this._propertiesPanel) {\r\n this._propertiesPanel.repaint()\r\n }\r\n if (this._historyToolbar) {\r\n this._updateHistoryToolbarPosition()\r\n }\r\n }\r\n _changeNativeFullscreen(setModeOn) {\r\n var window = getWindow();\r\n if (window.self === window.top || setModeOn === this._inNativeFullscreen()) {\r\n return\r\n }\r\n if (setModeOn) {\r\n this._subscribeFullscreenNativeChanged()\r\n } else {\r\n this._unsubscribeFullscreenNativeChanged()\r\n }\r\n this._setNativeFullscreen(setModeOn)\r\n }\r\n _setNativeFullscreen(on) {\r\n var window = getWindow();\r\n var document = window.self.document;\r\n var body = window.self.document.body;\r\n if (on) {\r\n if (body.requestFullscreen) {\r\n body.requestFullscreen()\r\n } else if (body.mozRequestFullscreen) {\r\n body.mozRequestFullscreen()\r\n } else if (body.webkitRequestFullscreen) {\r\n body.webkitRequestFullscreen()\r\n } else if (body.msRequestFullscreen) {\r\n body.msRequestFullscreen()\r\n }\r\n } else if (document.exitFullscreen) {\r\n document.exitFullscreen()\r\n } else if (document.mozCancelFullscreen) {\r\n document.mozCancelFullscreen()\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen()\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen()\r\n }\r\n }\r\n _inNativeFullscreen() {\r\n var document = getWindow().document;\r\n var fullscreenElement = document.fullscreenElement || document.msFullscreenElement || document.webkitFullscreenElement;\r\n var isInFullscreen = fullscreenElement === document.body || document.webkitIsFullscreen;\r\n return !!isInFullscreen\r\n }\r\n _subscribeFullscreenNativeChanged() {\r\n var document = getWindow().document;\r\n var handler = this._onNativeFullscreenChangeHandler.bind(this);\r\n eventsEngine.on(document, FULLSCREEN_CHANGE_EVENT_NAME, handler);\r\n eventsEngine.on(document, IE_FULLSCREEN_CHANGE_EVENT_NAME, handler);\r\n eventsEngine.on(document, WEBKIT_FULLSCREEN_CHANGE_EVENT_NAME, handler);\r\n eventsEngine.on(document, MOZ_FULLSCREEN_CHANGE_EVENT_NAME, handler)\r\n }\r\n _unsubscribeFullscreenNativeChanged() {\r\n var document = getWindow().document;\r\n eventsEngine.off(document, FULLSCREEN_CHANGE_EVENT_NAME);\r\n eventsEngine.off(document, IE_FULLSCREEN_CHANGE_EVENT_NAME);\r\n eventsEngine.off(document, WEBKIT_FULLSCREEN_CHANGE_EVENT_NAME);\r\n eventsEngine.off(document, MOZ_FULLSCREEN_CHANGE_EVENT_NAME)\r\n }\r\n _onNativeFullscreenChangeHandler() {\r\n if (!this._inNativeFullscreen()) {\r\n this._unsubscribeFullscreenNativeChanged();\r\n this.option(\"fullScreen\", false)\r\n }\r\n }\r\n _executeDiagramFullscreenCommand(fullscreen) {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this.toggleFullscreenLock++;\r\n this._executeDiagramCommand(DiagramCommand.Fullscreen, fullscreen);\r\n this.toggleFullscreenLock--\r\n }\r\n _onShowContextMenu(x, y, selection) {\r\n if (this._contextMenu) {\r\n this._contextMenu._show(x, y, selection)\r\n }\r\n }\r\n _onHideContextMenu() {\r\n if (this._contextMenu) {\r\n this._contextMenu._hide()\r\n }\r\n }\r\n _onShowContextToolbox(x, y, side, category, callback) {\r\n if (this._contextToolbox) {\r\n this._contextToolbox._show(x, y, side, category, callback)\r\n }\r\n }\r\n _onHideContextToolbox() {\r\n if (this._contextToolbox) {\r\n this._contextToolbox._hide()\r\n }\r\n }\r\n _getDiagramUnitValue(value) {\r\n var {\r\n DiagramUnit: DiagramUnit\r\n } = getDiagram();\r\n switch (value) {\r\n case \"in\":\r\n return DiagramUnit.In;\r\n case \"cm\":\r\n return DiagramUnit.Cm;\r\n case \"px\":\r\n return DiagramUnit.Px;\r\n default:\r\n return DiagramUnit.In\r\n }\r\n }\r\n _updateReadOnlyState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n var readOnly = this.isReadOnlyMode();\r\n this._executeDiagramCommand(DiagramCommand.ToggleReadOnly, readOnly)\r\n }\r\n _updateZoomLevelState() {\r\n if (this.option(\"zoomLevel.items\")) {\r\n this._updateZoomLevelItemsState();\r\n var zoomLevel = this.option(\"zoomLevel.value\");\r\n if (!zoomLevel) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.ZoomLevel, zoomLevel)\r\n } else {\r\n var _zoomLevel = this.option(\"zoomLevel.value\") || this.option(\"zoomLevel\");\r\n if (!_zoomLevel) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: _DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(_DiagramCommand.ZoomLevel, _zoomLevel)\r\n }\r\n }\r\n _updateZoomLevelItemsState() {\r\n var zoomLevelItems = this.option(\"zoomLevel.items\");\r\n if (!Array.isArray(zoomLevelItems)) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.ZoomLevelItems, zoomLevelItems)\r\n }\r\n _updateAutoZoomState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.SwitchAutoZoom, this._getAutoZoomValue(this.option(\"autoZoomMode\")))\r\n }\r\n _updateSimpleViewState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.ToggleSimpleView, this.option(\"simpleView\"))\r\n }\r\n _updateFullscreenState() {\r\n var fullscreen = this.option(\"fullScreen\");\r\n this._executeDiagramFullscreenCommand(fullscreen);\r\n this._onToggleFullScreen(fullscreen)\r\n }\r\n _updateShowGridState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.ShowGrid, this.option(\"showGrid\"))\r\n }\r\n _updateSnapToGridState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.SnapToGrid, this.option(\"snapToGrid\"))\r\n }\r\n _updateGridSizeState() {\r\n if (this.option(\"gridSize.items\")) {\r\n this._updateGridSizeItemsState();\r\n var gridSize = this.option(\"gridSize.value\");\r\n if (!gridSize) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.GridSize, gridSize)\r\n } else {\r\n var _gridSize = this.option(\"gridSize.value\") || this.option(\"gridSize\");\r\n if (!_gridSize) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: _DiagramCommand2\r\n } = getDiagram();\r\n this._executeDiagramCommand(_DiagramCommand2.GridSize, _gridSize)\r\n }\r\n }\r\n _updateGridSizeItemsState() {\r\n var gridSizeItems = this.option(\"gridSize.items\");\r\n if (!Array.isArray(gridSizeItems)) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.GridSizeItems, gridSizeItems)\r\n }\r\n _updateUnitItems() {\r\n var {\r\n DiagramLocalizationService: DiagramLocalizationService\r\n } = getDiagram();\r\n var items = this._getUnitItems();\r\n if (this._unitItems !== items) {\r\n this._unitItems = items;\r\n DiagramLocalizationService.unitItems = items\r\n }\r\n }\r\n _getUnitItems() {\r\n var {\r\n DiagramUnit: DiagramUnit\r\n } = getDiagram();\r\n var items = {};\r\n items[DiagramUnit.In] = messageLocalization.format(\"dxDiagram-unitIn\");\r\n items[DiagramUnit.Cm] = messageLocalization.format(\"dxDiagram-unitCm\");\r\n items[DiagramUnit.Px] = messageLocalization.format(\"dxDiagram-unitPx\");\r\n return items\r\n }\r\n _updateFormatUnitsMethod() {\r\n var {\r\n DiagramLocalizationService: DiagramLocalizationService\r\n } = getDiagram();\r\n DiagramLocalizationService.formatUnit = function(value) {\r\n return numberLocalization.format(value)\r\n }\r\n }\r\n _updateViewUnitsState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.ViewUnits, this._getDiagramUnitValue(this.option(\"viewUnits\")))\r\n }\r\n _updateUnitsState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.Units, this._getDiagramUnitValue(this.option(\"units\")))\r\n }\r\n _updatePageSizeState() {\r\n var pageSize = this.option(\"pageSize\");\r\n if (!pageSize || !pageSize.width || !pageSize.height) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.PageSize, pageSize)\r\n }\r\n _updatePageSizeItemsState() {\r\n var pageSizeItems = this.option(\"pageSize.items\");\r\n if (!Array.isArray(pageSizeItems)) {\r\n return\r\n }\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.PageSizeItems, pageSizeItems)\r\n }\r\n _updatePageOrientationState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.PageLandscape, \"landscape\" === this.option(\"pageOrientation\"))\r\n }\r\n _updatePageColorState() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.PageColor, this.option(\"pageColor\"))\r\n }\r\n _updateShapeTexts() {\r\n var {\r\n DiagramLocalizationService: DiagramLocalizationService\r\n } = getDiagram();\r\n var texts = this._getShapeTexts();\r\n if (this._shapeTexts !== texts) {\r\n this._shapeTexts = texts;\r\n DiagramLocalizationService.shapeTexts = texts\r\n }\r\n }\r\n _getShapeTexts() {\r\n var {\r\n ShapeTypes: ShapeTypes\r\n } = getDiagram();\r\n var texts = {};\r\n texts[ShapeTypes.Text] = messageLocalization.format(\"dxDiagram-shapeText\");\r\n texts[ShapeTypes.Rectangle] = messageLocalization.format(\"dxDiagram-shapeRectangle\");\r\n texts[ShapeTypes.Ellipse] = messageLocalization.format(\"dxDiagram-shapeEllipse\");\r\n texts[ShapeTypes.Cross] = messageLocalization.format(\"dxDiagram-shapeCross\");\r\n texts[ShapeTypes.Triangle] = messageLocalization.format(\"dxDiagram-shapeTriangle\");\r\n texts[ShapeTypes.Diamond] = messageLocalization.format(\"dxDiagram-shapeDiamond\");\r\n texts[ShapeTypes.Heart] = messageLocalization.format(\"dxDiagram-shapeHeart\");\r\n texts[ShapeTypes.Pentagon] = messageLocalization.format(\"dxDiagram-shapePentagon\");\r\n texts[ShapeTypes.Hexagon] = messageLocalization.format(\"dxDiagram-shapeHexagon\");\r\n texts[ShapeTypes.Octagon] = messageLocalization.format(\"dxDiagram-shapeOctagon\");\r\n texts[ShapeTypes.Star] = messageLocalization.format(\"dxDiagram-shapeStar\");\r\n texts[ShapeTypes.ArrowLeft] = messageLocalization.format(\"dxDiagram-shapeArrowLeft\");\r\n texts[ShapeTypes.ArrowUp] = messageLocalization.format(\"dxDiagram-shapeArrowUp\");\r\n texts[ShapeTypes.ArrowRight] = messageLocalization.format(\"dxDiagram-shapeArrowRight\");\r\n texts[ShapeTypes.ArrowDown] = messageLocalization.format(\"dxDiagram-shapeArrowDown\");\r\n texts[ShapeTypes.ArrowUpDown] = messageLocalization.format(\"dxDiagram-shapeArrowUpDown\");\r\n texts[ShapeTypes.ArrowLeftRight] = messageLocalization.format(\"dxDiagram-shapeArrowLeftRight\");\r\n texts[ShapeTypes.Process] = messageLocalization.format(\"dxDiagram-shapeProcess\");\r\n texts[ShapeTypes.Decision] = messageLocalization.format(\"dxDiagram-shapeDecision\");\r\n texts[ShapeTypes.Terminator] = messageLocalization.format(\"dxDiagram-shapeTerminator\");\r\n texts[ShapeTypes.PredefinedProcess] = messageLocalization.format(\"dxDiagram-shapePredefinedProcess\");\r\n texts[ShapeTypes.Document] = messageLocalization.format(\"dxDiagram-shapeDocument\");\r\n texts[ShapeTypes.MultipleDocuments] = messageLocalization.format(\"dxDiagram-shapeMultipleDocuments\");\r\n texts[ShapeTypes.ManualInput] = messageLocalization.format(\"dxDiagram-shapeManualInput\");\r\n texts[ShapeTypes.Preparation] = messageLocalization.format(\"dxDiagram-shapePreparation\");\r\n texts[ShapeTypes.Data] = messageLocalization.format(\"dxDiagram-shapeData\");\r\n texts[ShapeTypes.Database] = messageLocalization.format(\"dxDiagram-shapeDatabase\");\r\n texts[ShapeTypes.HardDisk] = messageLocalization.format(\"dxDiagram-shapeHardDisk\");\r\n texts[ShapeTypes.InternalStorage] = messageLocalization.format(\"dxDiagram-shapeInternalStorage\");\r\n texts[ShapeTypes.PaperTape] = messageLocalization.format(\"dxDiagram-shapePaperTape\");\r\n texts[ShapeTypes.ManualOperation] = messageLocalization.format(\"dxDiagram-shapeManualOperation\");\r\n texts[ShapeTypes.Delay] = messageLocalization.format(\"dxDiagram-shapeDelay\");\r\n texts[ShapeTypes.StoredData] = messageLocalization.format(\"dxDiagram-shapeStoredData\");\r\n texts[ShapeTypes.Display] = messageLocalization.format(\"dxDiagram-shapeDisplay\");\r\n texts[ShapeTypes.Merge] = messageLocalization.format(\"dxDiagram-shapeMerge\");\r\n texts[ShapeTypes.Connector] = messageLocalization.format(\"dxDiagram-shapeConnector\");\r\n texts[ShapeTypes.Or] = messageLocalization.format(\"dxDiagram-shapeOr\");\r\n texts[ShapeTypes.SummingJunction] = messageLocalization.format(\"dxDiagram-shapeSummingJunction\");\r\n texts[ShapeTypes.Container] = messageLocalization.format(\"dxDiagram-shapeContainerDefaultText\");\r\n texts[ShapeTypes.VerticalContainer] = messageLocalization.format(\"dxDiagram-shapeVerticalContainer\");\r\n texts[ShapeTypes.HorizontalContainer] = messageLocalization.format(\"dxDiagram-shapeHorizontalContainer\");\r\n texts[ShapeTypes.Card] = messageLocalization.format(\"dxDiagram-shapeCardDefaultText\");\r\n texts[ShapeTypes.CardWithImageOnLeft] = messageLocalization.format(\"dxDiagram-shapeCardWithImageOnLeft\");\r\n texts[ShapeTypes.CardWithImageOnTop] = messageLocalization.format(\"dxDiagram-shapeCardWithImageOnTop\");\r\n texts[ShapeTypes.CardWithImageOnRight] = messageLocalization.format(\"dxDiagram-shapeCardWithImageOnRight\");\r\n return texts\r\n }\r\n _updateEventSubscriptionMethods() {\r\n var {\r\n RenderHelper: RenderHelper\r\n } = getDiagram();\r\n RenderHelper.addEventListener = (element, eventName, handler) => {\r\n eventsEngine.on(element, eventName, handler)\r\n };\r\n RenderHelper.removeEventListener = (element, eventName, handler) => {\r\n eventsEngine.off(element, eventName, handler)\r\n }\r\n }\r\n _updateDefaultItemProperties() {\r\n if (this.option(\"defaultItemProperties.style\")) {\r\n this._diagramInstance.setInitialStyleProperties(this.option(\"defaultItemProperties.style\"))\r\n }\r\n if (this.option(\"defaultItemProperties.textStyle\")) {\r\n this._diagramInstance.setInitialTextStyleProperties(this.option(\"defaultItemProperties.textStyle\"))\r\n }\r\n this._diagramInstance.setInitialConnectorProperties({\r\n lineOption: this._getConnectorLineOption(this.option(\"defaultItemProperties.connectorLineType\")),\r\n startLineEnding: this._getConnectorLineEnding(this.option(\"defaultItemProperties.connectorLineStart\")),\r\n endLineEnding: this._getConnectorLineEnding(this.option(\"defaultItemProperties.connectorLineEnd\"))\r\n });\r\n this._diagramInstance.applyShapeSizeSettings({\r\n shapeMinWidth: this.option(\"defaultItemProperties.shapeMinWidth\"),\r\n shapeMaxWidth: this.option(\"defaultItemProperties.shapeMaxWidth\"),\r\n shapeMinHeight: this.option(\"defaultItemProperties.shapeMinHeight\"),\r\n shapeMaxHeight: this.option(\"defaultItemProperties.shapeMaxHeight\")\r\n })\r\n }\r\n _updateEditingSettings() {\r\n this._diagramInstance.applyOperationSettings({\r\n addShape: this.option(\"editing.allowAddShape\"),\r\n addShapeFromToolbox: this.option(\"editing.allowAddShape\"),\r\n deleteShape: this.option(\"editing.allowDeleteShape\"),\r\n deleteConnector: this.option(\"editing.allowDeleteConnector\"),\r\n changeConnection: this.option(\"editing.allowChangeConnection\"),\r\n changeConnectorPoints: this.option(\"editing.allowChangeConnectorPoints\"),\r\n changeShapeText: this.option(\"editing.allowChangeShapeText\"),\r\n changeConnectorText: this.option(\"editing.allowChangeConnectorText\"),\r\n resizeShape: this.option(\"editing.allowResizeShape\"),\r\n moveShape: this.option(\"editing.allowMoveShape\")\r\n })\r\n }\r\n fitToContent() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.FitToScreen)\r\n }\r\n fitToWidth() {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n this._executeDiagramCommand(DiagramCommand.FitToWidth)\r\n }\r\n focus() {\r\n this._captureFocus()\r\n }\r\n export () {\r\n return this._getDiagramData()\r\n }\r\n exportTo(format, callback) {\r\n var command = this._getDiagramExportToCommand(format);\r\n this._executeDiagramCommand(command, callback)\r\n }\r\n _getDiagramExportToCommand(format) {\r\n var {\r\n DiagramCommand: DiagramCommand\r\n } = getDiagram();\r\n switch (format) {\r\n case \"png\":\r\n return DiagramCommand.ExportPng;\r\n case \"jpg\":\r\n return DiagramCommand.ExportJpg;\r\n default:\r\n return DiagramCommand.ExportSvg\r\n }\r\n }\r\n import(data, updateExistingItemsOnly) {\r\n this._setDiagramData(data, updateExistingItemsOnly);\r\n this._raiseDataChangeAction()\r\n }\r\n updateToolbox() {\r\n this._diagramInstance && this._diagramInstance.refreshToolbox();\r\n if (this._toolbox) {\r\n this._toolbox.updateTooltips();\r\n this._toolbox.updateFilter();\r\n this._toolbox.updateMaxHeight()\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n readOnly: false,\r\n zoomLevel: DIAGRAM_DEFAULT_ZOOMLEVEL,\r\n simpleView: false,\r\n autoZoomMode: DIAGRAM_DEFAULT_AUTOZOOM_MODE,\r\n fullScreen: false,\r\n showGrid: true,\r\n snapToGrid: true,\r\n units: DIAGRAM_DEFAULT_UNIT,\r\n viewUnits: DIAGRAM_DEFAULT_UNIT,\r\n pageOrientation: DIAGRAM_DEFAULT_PAGE_ORIENTATION,\r\n pageColor: DIAGRAM_DEFAULT_PAGE_COLOR,\r\n hasChanges: false,\r\n nodes: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n customDataExpr: void 0,\r\n lockedExpr: void 0,\r\n styleExpr: void 0,\r\n textStyleExpr: void 0,\r\n zIndexExpr: void 0,\r\n typeExpr: \"type\",\r\n textExpr: \"text\",\r\n imageUrlExpr: void 0,\r\n parentKeyExpr: void 0,\r\n itemsExpr: void 0,\r\n leftExpr: void 0,\r\n topExpr: void 0,\r\n widthExpr: void 0,\r\n heightExpr: void 0,\r\n containerKeyExpr: \"containerKey\",\r\n containerChildrenExpr: void 0,\r\n autoLayout: \"auto\",\r\n autoSizeEnabled: true\r\n },\r\n edges: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n customDataExpr: void 0,\r\n lockedExpr: void 0,\r\n styleExpr: void 0,\r\n textStyleExpr: void 0,\r\n zIndexExpr: void 0,\r\n fromExpr: \"from\",\r\n fromPointIndexExpr: void 0,\r\n toExpr: \"to\",\r\n toPointIndexExpr: void 0,\r\n pointsExpr: void 0,\r\n textExpr: void 0,\r\n lineTypeExpr: void 0,\r\n fromLineEndExpr: void 0,\r\n toLineEndExpr: void 0\r\n },\r\n customShapes: [],\r\n toolbox: {\r\n visibility: \"auto\",\r\n shapeIconsPerRow: DIAGRAM_TOOLBOX_SHAPES_PER_ROW,\r\n showSearch: true\r\n },\r\n mainToolbar: {\r\n visible: false\r\n },\r\n historyToolbar: {\r\n visible: true\r\n },\r\n viewToolbar: {\r\n visible: true\r\n },\r\n contextMenu: {\r\n enabled: true\r\n },\r\n contextToolbox: {\r\n enabled: true,\r\n shapeIconsPerRow: DIAGRAM_CONTEXT_TOOLBOX_SHAPES_PER_ROW,\r\n width: DIAGRAM_CONTEXT_TOOLBOX_DEFAULT_WIDTH\r\n },\r\n propertiesPanel: {\r\n visibility: \"auto\"\r\n },\r\n defaultItemProperties: {\r\n connectorLineType: \"orthogonal\",\r\n connectorLineStart: \"none\",\r\n connectorLineEnd: \"arrow\"\r\n },\r\n editing: {\r\n allowAddShape: true,\r\n allowDeleteShape: true,\r\n allowDeleteConnector: true,\r\n allowChangeConnection: true,\r\n allowChangeConnectorPoints: true,\r\n allowChangeShapeText: true,\r\n allowChangeConnectorText: true,\r\n allowResizeShape: true,\r\n allowMoveShape: true\r\n },\r\n export: {\r\n fileName: \"Diagram\"\r\n },\r\n onItemClick: null,\r\n onItemDblClick: null,\r\n onSelectionChanged: null,\r\n onRequestEditOperation: null,\r\n onRequestLayoutUpdate: null\r\n })\r\n }\r\n _raiseDataChangeAction() {\r\n if (this._initialized) {\r\n this.option(\"hasChanges\", true)\r\n }\r\n }\r\n _raiseEdgeInsertedAction(data, callback, errorCallback) {\r\n if (this._edgesOption) {\r\n this._edgesOption.insert(data, callback, errorCallback)\r\n }\r\n }\r\n _raiseEdgeUpdatedAction(key, data, callback, errorCallback) {\r\n if (this._edgesOption) {\r\n this._edgesOption.update(key, data, callback, errorCallback)\r\n }\r\n }\r\n _raiseEdgeRemovedAction(key, data, callback, errorCallback) {\r\n if (this._edgesOption) {\r\n this._edgesOption.remove(key, data, callback, errorCallback)\r\n }\r\n }\r\n _raiseNodeInsertedAction(data, callback, errorCallback) {\r\n if (this._nodesOption) {\r\n this._nodesOption.insert(data, callback, errorCallback)\r\n }\r\n }\r\n _raiseNodeUpdatedAction(key, data, callback, errorCallback) {\r\n if (this._nodesOption) {\r\n this._nodesOption.update(key, data, callback, errorCallback)\r\n }\r\n }\r\n _raiseNodeRemovedAction(key, data, callback, errorCallback) {\r\n if (this._nodesOption) {\r\n this._nodesOption.remove(key, data, callback, errorCallback)\r\n }\r\n }\r\n _raiseToolboxDragStart() {\r\n if (this._toolbox && this.isMobileScreenSize()) {\r\n this._toolbox.hide();\r\n this._toolboxDragHidden = true\r\n }\r\n }\r\n _raiseToolboxDragEnd() {\r\n if (this._toolbox && this._toolboxDragHidden) {\r\n this._toolbox.show();\r\n delete this._toolboxDragHidden\r\n }\r\n }\r\n _raiseTextInputStart() {\r\n this._textInputStarted = true;\r\n if (this._propertiesPanel) {\r\n if (this.isMobileScreenSize() && this._propertiesPanel.isVisible()) {\r\n this._propertiesPanel.hide();\r\n this._propertiesPanelTextInputHidden = true\r\n }\r\n }\r\n if (this._toolbox) {\r\n if (this.isMobileScreenSize() && this._toolbox.isVisible()) {\r\n this._toolbox.hide();\r\n this._toolboxTextInputHidden = true\r\n }\r\n }\r\n }\r\n _raiseTextInputEnd() {\r\n if (this._propertiesPanel) {\r\n if (this._propertiesPanelTextInputHidden) {\r\n this._propertiesPanel.show();\r\n delete this._propertiesPanelTextInputHidden\r\n }\r\n }\r\n if (this._toolbox) {\r\n if (this._toolboxTextInputHidden) {\r\n this._toolbox.show();\r\n delete this._toolboxTextInputHidden\r\n }\r\n }\r\n this._textInputStarted = false\r\n }\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _createItemDblClickAction() {\r\n this._itemDblClickAction = this._createActionByOption(\"onItemDblClick\")\r\n }\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n }\r\n _createRequestEditOperationAction() {\r\n this._requestEditOperationAction = this._createActionByOption(\"onRequestEditOperation\")\r\n }\r\n _createRequestLayoutUpdateAction() {\r\n this._requestLayoutUpdateAction = this._createActionByOption(\"onRequestLayoutUpdate\")\r\n }\r\n _createCustomCommand() {\r\n this._customCommandAction = this._createActionByOption(\"onCustomCommand\")\r\n }\r\n _raiseItemClickAction(nativeItem) {\r\n if (!this._itemClickAction) {\r\n this._createItemClickAction()\r\n }\r\n this._itemClickAction({\r\n item: this._nativeItemToDiagramItem(nativeItem)\r\n })\r\n }\r\n _raiseItemDblClickAction(nativeItem) {\r\n if (!this._itemDblClickAction) {\r\n this._createItemDblClickAction()\r\n }\r\n this._itemDblClickAction({\r\n item: this._nativeItemToDiagramItem(nativeItem)\r\n })\r\n }\r\n _raiseSelectionChanged(nativeItems) {\r\n if (!this._selectionChangedAction) {\r\n this._createSelectionChangedAction()\r\n }\r\n this._selectionChangedAction({\r\n items: nativeItems.map(this._nativeItemToDiagramItem.bind(this))\r\n })\r\n }\r\n _raiseRequestEditOperation(operation, args) {\r\n if (!this._requestEditOperationAction) {\r\n this._createRequestEditOperationAction()\r\n }\r\n var eventArgs = this._getRequestEditOperationEventArgs(operation, args);\r\n this._requestEditOperationAction(eventArgs);\r\n args.allowed = eventArgs.allowed\r\n }\r\n _getModelOperation(operation) {\r\n var {\r\n DiagramModelOperation: DiagramModelOperation\r\n } = getDiagram();\r\n switch (operation) {\r\n case DiagramModelOperation.AddShape:\r\n return \"addShape\";\r\n case DiagramModelOperation.AddShapeFromToolbox:\r\n return \"addShapeFromToolbox\";\r\n case DiagramModelOperation.DeleteShape:\r\n return \"deleteShape\";\r\n case DiagramModelOperation.DeleteConnector:\r\n return \"deleteConnector\";\r\n case DiagramModelOperation.ChangeConnection:\r\n return \"changeConnection\";\r\n case DiagramModelOperation.ChangeConnectorPoints:\r\n return \"changeConnectorPoints\";\r\n case DiagramModelOperation.BeforeChangeShapeText:\r\n return \"beforeChangeShapeText\";\r\n case DiagramModelOperation.ChangeShapeText:\r\n return \"changeShapeText\";\r\n case DiagramModelOperation.BeforeChangeConnectorText:\r\n return \"beforeChangeConnectorText\";\r\n case DiagramModelOperation.ChangeConnectorText:\r\n return \"changeConnectorText\";\r\n case DiagramModelOperation.ResizeShape:\r\n return \"resizeShape\";\r\n case DiagramModelOperation.MoveShape:\r\n return \"moveShape\"\r\n }\r\n }\r\n _getRequestEditOperationEventArgs(operation, args) {\r\n var {\r\n DiagramModelOperation: DiagramModelOperation,\r\n ConnectorPosition: ConnectorPosition\r\n } = getDiagram();\r\n var eventArgs = {\r\n operation: this._getModelOperation(operation),\r\n allowed: args.allowed,\r\n updateUI: args.updateUI,\r\n reason: args.updateUI ? \"checkUIElementAvailability\" : \"modelModification\"\r\n };\r\n switch (operation) {\r\n case DiagramModelOperation.AddShape:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape),\r\n position: args.position && {\r\n x: args.position.x,\r\n y: args.position.y\r\n }\r\n };\r\n break;\r\n case DiagramModelOperation.AddShapeFromToolbox:\r\n eventArgs.args = {\r\n shapeType: args.shapeType\r\n };\r\n break;\r\n case DiagramModelOperation.DeleteShape:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape)\r\n };\r\n break;\r\n case DiagramModelOperation.DeleteConnector:\r\n eventArgs.args = {\r\n connector: args.connector && this._nativeItemToDiagramItem(args.connector)\r\n };\r\n break;\r\n case DiagramModelOperation.ChangeConnection:\r\n eventArgs.args = {\r\n newShape: args.shape && this._nativeItemToDiagramItem(args.shape),\r\n oldShape: args.oldShape && this._nativeItemToDiagramItem(args.oldShape),\r\n connector: args.connector && this._nativeItemToDiagramItem(args.connector),\r\n connectionPointIndex: args.connectionPointIndex,\r\n connectorPosition: args.position === ConnectorPosition.Begin ? \"start\" : \"end\"\r\n };\r\n break;\r\n case DiagramModelOperation.ChangeConnectorPoints:\r\n eventArgs.args = {\r\n connector: args.connector && this._nativeItemToDiagramItem(args.connector),\r\n newPoints: args.points && args.points.map(pt => ({\r\n x: pt.x,\r\n y: pt.y\r\n })),\r\n oldPoints: args.oldPoints && args.oldPoints.map(pt => ({\r\n x: pt.x,\r\n y: pt.y\r\n }))\r\n };\r\n break;\r\n case DiagramModelOperation.BeforeChangeShapeText:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape)\r\n };\r\n break;\r\n case DiagramModelOperation.ChangeShapeText:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape),\r\n text: args.text\r\n };\r\n break;\r\n case DiagramModelOperation.BeforeChangeConnectorText:\r\n eventArgs.args = {\r\n connector: args.connector && this._nativeItemToDiagramItem(args.connector),\r\n index: args.index\r\n };\r\n break;\r\n case DiagramModelOperation.ChangeConnectorText:\r\n eventArgs.args = {\r\n connector: args.connector && this._nativeItemToDiagramItem(args.connector),\r\n index: args.index,\r\n text: args.text\r\n };\r\n break;\r\n case DiagramModelOperation.ResizeShape:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape),\r\n newSize: args.size && {\r\n width: args.size.width,\r\n height: args.size.height\r\n },\r\n oldSize: args.oldSize && {\r\n width: args.oldSize.width,\r\n height: args.oldSize.height\r\n }\r\n };\r\n break;\r\n case DiagramModelOperation.MoveShape:\r\n eventArgs.args = {\r\n shape: args.shape && this._nativeItemToDiagramItem(args.shape),\r\n newPosition: args.position && {\r\n x: args.position.x,\r\n y: args.position.y\r\n },\r\n oldPosition: args.oldPosition && {\r\n x: args.oldPosition.x,\r\n y: args.oldPosition.y\r\n }\r\n }\r\n }\r\n return eventArgs\r\n }\r\n _nativeItemToDiagramItem(nativeItem) {\r\n var {\r\n NativeShape: NativeShape\r\n } = getDiagram();\r\n var createMethod = nativeItem instanceof NativeShape ? this._nativeShapeToDiagramShape.bind(this) : this._nativeConnectorToDiagramConnector.bind(this);\r\n return extend({\r\n id: nativeItem.id,\r\n key: nativeItem.key,\r\n dataItem: void 0\r\n }, createMethod(nativeItem))\r\n }\r\n _nativeShapeToDiagramShape(nativeShape) {\r\n return {\r\n dataItem: this._nodesOption && this._nodesOption.findItem(nativeShape.key),\r\n itemType: \"shape\",\r\n text: nativeShape.text,\r\n type: nativeShape.type,\r\n position: {\r\n x: nativeShape.position.x,\r\n y: nativeShape.position.y\r\n },\r\n size: {\r\n width: nativeShape.size.width,\r\n height: nativeShape.size.height\r\n },\r\n attachedConnectorIds: nativeShape.attachedConnectorIds,\r\n containerId: nativeShape.containerId,\r\n containerChildItemIds: nativeShape.containerChildItemIds,\r\n containerExpanded: nativeShape.containerExpanded\r\n }\r\n }\r\n _nativeConnectorToDiagramConnector(nativeConnector) {\r\n return {\r\n dataItem: this._edgesOption && this._edgesOption.findItem(nativeConnector.key),\r\n itemType: \"connector\",\r\n texts: nativeConnector.texts,\r\n fromKey: nativeConnector.fromKey,\r\n toKey: nativeConnector.toKey,\r\n fromId: nativeConnector.fromId,\r\n fromPointIndex: nativeConnector.fromPointIndex,\r\n toId: nativeConnector.toId,\r\n toPointIndex: nativeConnector.toPointIndex,\r\n points: nativeConnector.points.map(pt => ({\r\n x: pt.x,\r\n y: pt.y\r\n }))\r\n }\r\n }\r\n getItemByKey(key) {\r\n var nativeItem = this._diagramInstance && this._diagramInstance.getNativeItemByDataKey(key);\r\n return nativeItem && this._nativeItemToDiagramItem(nativeItem)\r\n }\r\n getItemById(id) {\r\n var nativeItem = this._diagramInstance && this._diagramInstance.getNativeItemByKey(id);\r\n return nativeItem && this._nativeItemToDiagramItem(nativeItem)\r\n }\r\n getItems() {\r\n return this._diagramInstance.getNativeItems().map(nativeItem => nativeItem && this._nativeItemToDiagramItem(nativeItem))\r\n }\r\n getSelectedItems() {\r\n return this._diagramInstance.getNativeSelectedItems().map(nativeItem => nativeItem && this._nativeItemToDiagramItem(nativeItem))\r\n }\r\n setSelectedItems(items) {\r\n return this._diagramInstance.setSelectedItems(items.map(item => item.id))\r\n }\r\n scrollToItem(item) {\r\n return this._diagramInstance.scrollToItems([item.id])\r\n }\r\n _invalidateContextMenuCommands() {\r\n if (this._contextMenu) {\r\n this._contextMenu.option({\r\n commands: this.option(\"contextMenu.commands\")\r\n })\r\n }\r\n }\r\n _invalidateMainToolbarCommands() {\r\n if (this._mainToolbar) {\r\n this._mainToolbar.option({\r\n commands: this.option(\"mainToolbar.commands\")\r\n })\r\n }\r\n }\r\n _invalidateHistoryToolbarCommands() {\r\n if (this._historyToolbar) {\r\n this._historyToolbar.option({\r\n commands: this.option(\"historyToolbar.commands\")\r\n })\r\n }\r\n }\r\n _invalidateViewToolbarCommands() {\r\n if (this._viewToolbar) {\r\n this._viewToolbar.option({\r\n commands: this.option(\"viewToolbar.commands\")\r\n })\r\n }\r\n }\r\n _invalidateToolboxGroups() {\r\n if (this._toolbox) {\r\n this._toolbox.option({\r\n toolboxGroups: this._getToolboxGroups()\r\n })\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (!this.optionsUpdateBar || this.optionsUpdateBar.isUpdateLocked()) {\r\n return\r\n }\r\n this.optionsUpdateBar.beginUpdate();\r\n try {\r\n this._optionChangedCore(args)\r\n } finally {\r\n this.optionsUpdateBar.endUpdate()\r\n }\r\n }\r\n _optionChangedCore(args) {\r\n switch (args.name) {\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateReadOnlyState();\r\n this._invalidate();\r\n break;\r\n case \"zoomLevel\":\r\n if (\"zoomLevel\" === args.fullName || \"zoomLevel.items\" === args.fullName || \"zoomLevel.value\" === args.fullName) {\r\n this._updateZoomLevelState()\r\n }\r\n break;\r\n case \"autoZoomMode\":\r\n this._updateAutoZoomState();\r\n break;\r\n case \"simpleView\":\r\n this._updateSimpleViewState();\r\n break;\r\n case \"useNativeScrolling\":\r\n this._invalidate();\r\n break;\r\n case \"fullScreen\":\r\n this._updateFullscreenState();\r\n break;\r\n case \"showGrid\":\r\n this._updateShowGridState();\r\n break;\r\n case \"snapToGrid\":\r\n this._updateSnapToGridState();\r\n break;\r\n case \"gridSize\":\r\n if (\"gridSize\" === args.fullName || \"gridSize.items\" === args.fullName || \"gridSize.value\" === args.fullName) {\r\n this._updateGridSizeState()\r\n }\r\n break;\r\n case \"viewUnits\":\r\n this._updateViewUnitsState();\r\n break;\r\n case \"units\":\r\n this._updateUnitsState();\r\n break;\r\n case \"pageSize\":\r\n if (\"pageSize\" === args.fullName || \"pageSize.items\" === args.fullName) {\r\n this._updatePageSizeItemsState()\r\n }\r\n if (\"pageSize\" === args.fullName || \"pageSize.width\" === args.fullName || \"pageSize.height\" === args.fullName) {\r\n this._updatePageSizeState()\r\n }\r\n break;\r\n case \"pageOrientation\":\r\n this._updatePageOrientationState();\r\n break;\r\n case \"pageColor\":\r\n this._updatePageColorState();\r\n break;\r\n case \"nodes\":\r\n if (0 === args.fullName.indexOf(\"nodes.autoLayout\")) {\r\n this._refreshDataSources()\r\n } else {\r\n this._refreshNodesDataSource()\r\n }\r\n break;\r\n case \"edges\":\r\n this._refreshEdgesDataSource();\r\n break;\r\n case \"customShapes\":\r\n if (args.fullName !== args.name) {\r\n this._updateAllCustomShapes()\r\n } else {\r\n this._updateCustomShapes(args.value, args.previousValue)\r\n }\r\n this._invalidate();\r\n break;\r\n case \"contextMenu\":\r\n if (\"contextMenu.commands\" === args.fullName) {\r\n this._invalidateContextMenuCommands()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"contextToolbox\":\r\n case \"propertiesPanel\":\r\n this._invalidate();\r\n break;\r\n case \"toolbox\":\r\n if (\"toolbox.groups\" === args.fullName) {\r\n this._invalidateToolboxGroups()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"mainToolbar\":\r\n if (\"mainToolbar.commands\" === args.fullName) {\r\n this._invalidateMainToolbarCommands()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"historyToolbar\":\r\n if (\"historyToolbar.commands\" === args.fullName) {\r\n this._invalidateHistoryToolbarCommands()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"viewToolbar\":\r\n if (\"viewToolbar.commands\" === args.fullName) {\r\n this._invalidateViewToolbarCommands()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onItemDblClick\":\r\n this._createItemDblClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"onRequestEditOperation\":\r\n this._createRequestEditOperationAction();\r\n break;\r\n case \"onRequestLayoutUpdate\":\r\n this._createRequestLayoutUpdateAction();\r\n break;\r\n case \"onCustomCommand\":\r\n this._createCustomCommand();\r\n break;\r\n case \"defaultItemProperties\":\r\n this._updateDefaultItemProperties();\r\n break;\r\n case \"editing\":\r\n this._updateEditingSettings();\r\n break;\r\n case \"export\":\r\n this._toolbars.forEach(toolbar => {\r\n toolbar.option(\"export\", this.option(\"export\"))\r\n });\r\n if (this._contextMenu) {\r\n this._contextMenu.option(\"export\", this.option(\"export\"))\r\n }\r\n break;\r\n case \"hasChanges\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxDiagram\", Diagram);\r\nexport default Diagram;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxDiagram from 'devextreme/ui/diagram';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiCustomShapeComponent, DxoContextMenuModule, DxiCommandModule, DxiItemModule, DxoContextToolboxModule, DxiCustomShapeModule, DxiConnectionPointModule, DxoDefaultItemPropertiesModule, DxoEdgesModule, DxoEditingModule, DxoExportModule, DxoGridSizeModule, DxoHistoryToolbarModule, DxoMainToolbarModule, DxoNodesModule, DxoAutoLayoutModule, DxoPageSizeModule, DxoPropertiesPanelModule, DxiTabModule, DxiGroupModule, DxoToolboxModule, DxoViewToolbarModule, DxoZoomLevelModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxDiagram]\r\n\r\n */\r\nclass DxDiagramComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'customCommand', emit: 'onCustomCommand' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemDblClick', emit: 'onItemDblClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'requestEditOperation', emit: 'onRequestEditOperation' },\r\n { subscribe: 'requestLayoutUpdate', emit: 'onRequestLayoutUpdate' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'autoZoomModeChange' },\r\n { emit: 'contextMenuChange' },\r\n { emit: 'contextToolboxChange' },\r\n { emit: 'customShapesChange' },\r\n { emit: 'customShapeTemplateChange' },\r\n { emit: 'customShapeToolboxTemplateChange' },\r\n { emit: 'defaultItemPropertiesChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'edgesChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'fullScreenChange' },\r\n { emit: 'gridSizeChange' },\r\n { emit: 'hasChangesChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'historyToolbarChange' },\r\n { emit: 'mainToolbarChange' },\r\n { emit: 'nodesChange' },\r\n { emit: 'pageColorChange' },\r\n { emit: 'pageOrientationChange' },\r\n { emit: 'pageSizeChange' },\r\n { emit: 'propertiesPanelChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showGridChange' },\r\n { emit: 'simpleViewChange' },\r\n { emit: 'snapToGridChange' },\r\n { emit: 'toolboxChange' },\r\n { emit: 'unitsChange' },\r\n { emit: 'useNativeScrollingChange' },\r\n { emit: 'viewToolbarChange' },\r\n { emit: 'viewUnitsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'zoomLevelChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.autoZoomMode]\r\n \r\n */\r\n get autoZoomMode() {\r\n return this._getOption('autoZoomMode');\r\n }\r\n set autoZoomMode(value) {\r\n this._setOption('autoZoomMode', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.contextMenu]\r\n \r\n */\r\n get contextMenu() {\r\n return this._getOption('contextMenu');\r\n }\r\n set contextMenu(value) {\r\n this._setOption('contextMenu', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.contextToolbox]\r\n \r\n */\r\n get contextToolbox() {\r\n return this._getOption('contextToolbox');\r\n }\r\n set contextToolbox(value) {\r\n this._setOption('contextToolbox', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.customShapes]\r\n \r\n */\r\n get customShapes() {\r\n return this._getOption('customShapes');\r\n }\r\n set customShapes(value) {\r\n this._setOption('customShapes', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.customShapeTemplate]\r\n \r\n */\r\n get customShapeTemplate() {\r\n return this._getOption('customShapeTemplate');\r\n }\r\n set customShapeTemplate(value) {\r\n this._setOption('customShapeTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.customShapeToolboxTemplate]\r\n \r\n */\r\n get customShapeToolboxTemplate() {\r\n return this._getOption('customShapeToolboxTemplate');\r\n }\r\n set customShapeToolboxTemplate(value) {\r\n this._setOption('customShapeToolboxTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.defaultItemProperties]\r\n \r\n */\r\n get defaultItemProperties() {\r\n return this._getOption('defaultItemProperties');\r\n }\r\n set defaultItemProperties(value) {\r\n this._setOption('defaultItemProperties', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.edges]\r\n \r\n */\r\n get edges() {\r\n return this._getOption('edges');\r\n }\r\n set edges(value) {\r\n this._setOption('edges', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.editing]\r\n \r\n */\r\n get editing() {\r\n return this._getOption('editing');\r\n }\r\n set editing(value) {\r\n this._setOption('editing', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.fullScreen]\r\n \r\n */\r\n get fullScreen() {\r\n return this._getOption('fullScreen');\r\n }\r\n set fullScreen(value) {\r\n this._setOption('fullScreen', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.gridSize]\r\n \r\n */\r\n get gridSize() {\r\n return this._getOption('gridSize');\r\n }\r\n set gridSize(value) {\r\n this._setOption('gridSize', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.hasChanges]\r\n \r\n */\r\n get hasChanges() {\r\n return this._getOption('hasChanges');\r\n }\r\n set hasChanges(value) {\r\n this._setOption('hasChanges', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.historyToolbar]\r\n \r\n */\r\n get historyToolbar() {\r\n return this._getOption('historyToolbar');\r\n }\r\n set historyToolbar(value) {\r\n this._setOption('historyToolbar', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.mainToolbar]\r\n \r\n */\r\n get mainToolbar() {\r\n return this._getOption('mainToolbar');\r\n }\r\n set mainToolbar(value) {\r\n this._setOption('mainToolbar', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.nodes]\r\n \r\n */\r\n get nodes() {\r\n return this._getOption('nodes');\r\n }\r\n set nodes(value) {\r\n this._setOption('nodes', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.pageColor]\r\n \r\n */\r\n get pageColor() {\r\n return this._getOption('pageColor');\r\n }\r\n set pageColor(value) {\r\n this._setOption('pageColor', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.pageOrientation]\r\n \r\n */\r\n get pageOrientation() {\r\n return this._getOption('pageOrientation');\r\n }\r\n set pageOrientation(value) {\r\n this._setOption('pageOrientation', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.pageSize]\r\n \r\n */\r\n get pageSize() {\r\n return this._getOption('pageSize');\r\n }\r\n set pageSize(value) {\r\n this._setOption('pageSize', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.propertiesPanel]\r\n \r\n */\r\n get propertiesPanel() {\r\n return this._getOption('propertiesPanel');\r\n }\r\n set propertiesPanel(value) {\r\n this._setOption('propertiesPanel', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.showGrid]\r\n \r\n */\r\n get showGrid() {\r\n return this._getOption('showGrid');\r\n }\r\n set showGrid(value) {\r\n this._setOption('showGrid', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.simpleView]\r\n \r\n */\r\n get simpleView() {\r\n return this._getOption('simpleView');\r\n }\r\n set simpleView(value) {\r\n this._setOption('simpleView', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.snapToGrid]\r\n \r\n */\r\n get snapToGrid() {\r\n return this._getOption('snapToGrid');\r\n }\r\n set snapToGrid(value) {\r\n this._setOption('snapToGrid', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.toolbox]\r\n \r\n */\r\n get toolbox() {\r\n return this._getOption('toolbox');\r\n }\r\n set toolbox(value) {\r\n this._setOption('toolbox', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.units]\r\n \r\n */\r\n get units() {\r\n return this._getOption('units');\r\n }\r\n set units(value) {\r\n this._setOption('units', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.useNativeScrolling]\r\n \r\n */\r\n get useNativeScrolling() {\r\n return this._getOption('useNativeScrolling');\r\n }\r\n set useNativeScrolling(value) {\r\n this._setOption('useNativeScrolling', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.viewToolbar]\r\n \r\n */\r\n get viewToolbar() {\r\n return this._getOption('viewToolbar');\r\n }\r\n set viewToolbar(value) {\r\n this._setOption('viewToolbar', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.viewUnits]\r\n \r\n */\r\n get viewUnits() {\r\n return this._getOption('viewUnits');\r\n }\r\n set viewUnits(value) {\r\n this._setOption('viewUnits', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDiagramOptions.zoomLevel]\r\n \r\n */\r\n get zoomLevel() {\r\n return this._getOption('zoomLevel');\r\n }\r\n set zoomLevel(value) {\r\n this._setOption('zoomLevel', value);\r\n }\r\n get customShapesChildren() {\r\n return this._getOption('customShapes');\r\n }\r\n set customShapesChildren(value) {\r\n this.setChildren('customShapes', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDiagram(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('customShapes', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('customShapes');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDiagramComponent.ɵfac = function DxDiagramComponent_Factory(t) { return new (t || DxDiagramComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDiagramComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDiagramComponent, selectors: [[\"dx-diagram\"]], contentQueries: function DxDiagramComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCustomShapeComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customShapesChildren = _t);\r\n } }, inputs: { autoZoomMode: \"autoZoomMode\", contextMenu: \"contextMenu\", contextToolbox: \"contextToolbox\", customShapes: \"customShapes\", customShapeTemplate: \"customShapeTemplate\", customShapeToolboxTemplate: \"customShapeToolboxTemplate\", defaultItemProperties: \"defaultItemProperties\", disabled: \"disabled\", edges: \"edges\", editing: \"editing\", elementAttr: \"elementAttr\", export: \"export\", fullScreen: \"fullScreen\", gridSize: \"gridSize\", hasChanges: \"hasChanges\", height: \"height\", historyToolbar: \"historyToolbar\", mainToolbar: \"mainToolbar\", nodes: \"nodes\", pageColor: \"pageColor\", pageOrientation: \"pageOrientation\", pageSize: \"pageSize\", propertiesPanel: \"propertiesPanel\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showGrid: \"showGrid\", simpleView: \"simpleView\", snapToGrid: \"snapToGrid\", toolbox: \"toolbox\", units: \"units\", useNativeScrolling: \"useNativeScrolling\", viewToolbar: \"viewToolbar\", viewUnits: \"viewUnits\", visible: \"visible\", width: \"width\", zoomLevel: \"zoomLevel\" }, outputs: { onContentReady: \"onContentReady\", onCustomCommand: \"onCustomCommand\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemDblClick: \"onItemDblClick\", onOptionChanged: \"onOptionChanged\", onRequestEditOperation: \"onRequestEditOperation\", onRequestLayoutUpdate: \"onRequestLayoutUpdate\", onSelectionChanged: \"onSelectionChanged\", autoZoomModeChange: \"autoZoomModeChange\", contextMenuChange: \"contextMenuChange\", contextToolboxChange: \"contextToolboxChange\", customShapesChange: \"customShapesChange\", customShapeTemplateChange: \"customShapeTemplateChange\", customShapeToolboxTemplateChange: \"customShapeToolboxTemplateChange\", defaultItemPropertiesChange: \"defaultItemPropertiesChange\", disabledChange: \"disabledChange\", edgesChange: \"edgesChange\", editingChange: \"editingChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", fullScreenChange: \"fullScreenChange\", gridSizeChange: \"gridSizeChange\", hasChangesChange: \"hasChangesChange\", heightChange: \"heightChange\", historyToolbarChange: \"historyToolbarChange\", mainToolbarChange: \"mainToolbarChange\", nodesChange: \"nodesChange\", pageColorChange: \"pageColorChange\", pageOrientationChange: \"pageOrientationChange\", pageSizeChange: \"pageSizeChange\", propertiesPanelChange: \"propertiesPanelChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showGridChange: \"showGridChange\", simpleViewChange: \"simpleViewChange\", snapToGridChange: \"snapToGridChange\", toolboxChange: \"toolboxChange\", unitsChange: \"unitsChange\", useNativeScrollingChange: \"useNativeScrollingChange\", viewToolbarChange: \"viewToolbarChange\", viewUnitsChange: \"viewUnitsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", zoomLevelChange: \"zoomLevelChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxDiagramComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDiagramComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-diagram',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { autoZoomMode: [{\r\n type: Input\r\n }], contextMenu: [{\r\n type: Input\r\n }], contextToolbox: [{\r\n type: Input\r\n }], customShapes: [{\r\n type: Input\r\n }], customShapeTemplate: [{\r\n type: Input\r\n }], customShapeToolboxTemplate: [{\r\n type: Input\r\n }], defaultItemProperties: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], edges: [{\r\n type: Input\r\n }], editing: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], fullScreen: [{\r\n type: Input\r\n }], gridSize: [{\r\n type: Input\r\n }], hasChanges: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], historyToolbar: [{\r\n type: Input\r\n }], mainToolbar: [{\r\n type: Input\r\n }], nodes: [{\r\n type: Input\r\n }], pageColor: [{\r\n type: Input\r\n }], pageOrientation: [{\r\n type: Input\r\n }], pageSize: [{\r\n type: Input\r\n }], propertiesPanel: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showGrid: [{\r\n type: Input\r\n }], simpleView: [{\r\n type: Input\r\n }], snapToGrid: [{\r\n type: Input\r\n }], toolbox: [{\r\n type: Input\r\n }], units: [{\r\n type: Input\r\n }], useNativeScrolling: [{\r\n type: Input\r\n }], viewToolbar: [{\r\n type: Input\r\n }], viewUnits: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], zoomLevel: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCustomCommand: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemDblClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onRequestEditOperation: [{\r\n type: Output\r\n }], onRequestLayoutUpdate: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], autoZoomModeChange: [{\r\n type: Output\r\n }], contextMenuChange: [{\r\n type: Output\r\n }], contextToolboxChange: [{\r\n type: Output\r\n }], customShapesChange: [{\r\n type: Output\r\n }], customShapeTemplateChange: [{\r\n type: Output\r\n }], customShapeToolboxTemplateChange: [{\r\n type: Output\r\n }], defaultItemPropertiesChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], edgesChange: [{\r\n type: Output\r\n }], editingChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], fullScreenChange: [{\r\n type: Output\r\n }], gridSizeChange: [{\r\n type: Output\r\n }], hasChangesChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], historyToolbarChange: [{\r\n type: Output\r\n }], mainToolbarChange: [{\r\n type: Output\r\n }], nodesChange: [{\r\n type: Output\r\n }], pageColorChange: [{\r\n type: Output\r\n }], pageOrientationChange: [{\r\n type: Output\r\n }], pageSizeChange: [{\r\n type: Output\r\n }], propertiesPanelChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showGridChange: [{\r\n type: Output\r\n }], simpleViewChange: [{\r\n type: Output\r\n }], snapToGridChange: [{\r\n type: Output\r\n }], toolboxChange: [{\r\n type: Output\r\n }], unitsChange: [{\r\n type: Output\r\n }], useNativeScrollingChange: [{\r\n type: Output\r\n }], viewToolbarChange: [{\r\n type: Output\r\n }], viewUnitsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], zoomLevelChange: [{\r\n type: Output\r\n }], customShapesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiCustomShapeComponent]\r\n }] }); })();\r\nclass DxDiagramModule {\r\n}\r\n/** @nocollapse */ DxDiagramModule.ɵfac = function DxDiagramModule_Factory(t) { return new (t || DxDiagramModule)(); };\r\n/** @nocollapse */ DxDiagramModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDiagramModule });\r\n/** @nocollapse */ DxDiagramModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDiagramModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDiagramComponent\r\n ],\r\n exports: [\r\n DxDiagramComponent,\r\n DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDiagramModule, { declarations: [DxDiagramComponent], imports: [DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDiagramComponent, DxoContextMenuModule,\r\n DxiCommandModule,\r\n DxiItemModule,\r\n DxoContextToolboxModule,\r\n DxiCustomShapeModule,\r\n DxiConnectionPointModule,\r\n DxoDefaultItemPropertiesModule,\r\n DxoEdgesModule,\r\n DxoEditingModule,\r\n DxoExportModule,\r\n DxoGridSizeModule,\r\n DxoHistoryToolbarModule,\r\n DxoMainToolbarModule,\r\n DxoNodesModule,\r\n DxoAutoLayoutModule,\r\n DxoPageSizeModule,\r\n DxoPropertiesPanelModule,\r\n DxiTabModule,\r\n DxiGroupModule,\r\n DxoToolboxModule,\r\n DxoViewToolbarModule,\r\n DxoZoomLevelModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDiagramComponent, DxDiagramModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxDraggable from 'devextreme/ui/draggable';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoCursorOffsetModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxDraggable]\r\n\r\n */\r\nclass DxDraggableComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'dragEnd', emit: 'onDragEnd' },\r\n { subscribe: 'dragMove', emit: 'onDragMove' },\r\n { subscribe: 'dragStart', emit: 'onDragStart' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'autoScrollChange' },\r\n { emit: 'boundaryChange' },\r\n { emit: 'cloneChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'cursorOffsetChange' },\r\n { emit: 'dataChange' },\r\n { emit: 'dragDirectionChange' },\r\n { emit: 'dragTemplateChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'groupChange' },\r\n { emit: 'handleChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollSensitivityChange' },\r\n { emit: 'scrollSpeedChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.autoScroll]\r\n \r\n */\r\n get autoScroll() {\r\n return this._getOption('autoScroll');\r\n }\r\n set autoScroll(value) {\r\n this._setOption('autoScroll', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.boundary]\r\n \r\n */\r\n get boundary() {\r\n return this._getOption('boundary');\r\n }\r\n set boundary(value) {\r\n this._setOption('boundary', value);\r\n }\r\n /**\r\n * [descr:dxDraggableOptions.clone]\r\n \r\n */\r\n get clone() {\r\n return this._getOption('clone');\r\n }\r\n set clone(value) {\r\n this._setOption('clone', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.cursorOffset]\r\n \r\n */\r\n get cursorOffset() {\r\n return this._getOption('cursorOffset');\r\n }\r\n set cursorOffset(value) {\r\n this._setOption('cursorOffset', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.data]\r\n \r\n */\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.dragDirection]\r\n \r\n */\r\n get dragDirection() {\r\n return this._getOption('dragDirection');\r\n }\r\n set dragDirection(value) {\r\n this._setOption('dragDirection', value);\r\n }\r\n /**\r\n * [descr:dxDraggableOptions.dragTemplate]\r\n \r\n */\r\n get dragTemplate() {\r\n return this._getOption('dragTemplate');\r\n }\r\n set dragTemplate(value) {\r\n this._setOption('dragTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.group]\r\n \r\n */\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.handle]\r\n \r\n */\r\n get handle() {\r\n return this._getOption('handle');\r\n }\r\n set handle(value) {\r\n this._setOption('handle', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.scrollSensitivity]\r\n \r\n */\r\n get scrollSensitivity() {\r\n return this._getOption('scrollSensitivity');\r\n }\r\n set scrollSensitivity(value) {\r\n this._setOption('scrollSensitivity', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.scrollSpeed]\r\n \r\n */\r\n get scrollSpeed() {\r\n return this._getOption('scrollSpeed');\r\n }\r\n set scrollSpeed(value) {\r\n this._setOption('scrollSpeed', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDraggable(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxDraggableComponent.ɵfac = function DxDraggableComponent_Factory(t) { return new (t || DxDraggableComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDraggableComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDraggableComponent, selectors: [[\"dx-draggable\"]], inputs: { autoScroll: \"autoScroll\", boundary: \"boundary\", clone: \"clone\", container: \"container\", cursorOffset: \"cursorOffset\", data: \"data\", dragDirection: \"dragDirection\", dragTemplate: \"dragTemplate\", elementAttr: \"elementAttr\", group: \"group\", handle: \"handle\", height: \"height\", rtlEnabled: \"rtlEnabled\", scrollSensitivity: \"scrollSensitivity\", scrollSpeed: \"scrollSpeed\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onDragEnd: \"onDragEnd\", onDragMove: \"onDragMove\", onDragStart: \"onDragStart\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", autoScrollChange: \"autoScrollChange\", boundaryChange: \"boundaryChange\", cloneChange: \"cloneChange\", containerChange: \"containerChange\", cursorOffsetChange: \"cursorOffsetChange\", dataChange: \"dataChange\", dragDirectionChange: \"dragDirectionChange\", dragTemplateChange: \"dragTemplateChange\", elementAttrChange: \"elementAttrChange\", groupChange: \"groupChange\", handleChange: \"handleChange\", heightChange: \"heightChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollSensitivityChange: \"scrollSensitivityChange\", scrollSpeedChange: \"scrollSpeedChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxDraggableComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDraggableComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-draggable',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { autoScroll: [{\r\n type: Input\r\n }], boundary: [{\r\n type: Input\r\n }], clone: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], cursorOffset: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], dragDirection: [{\r\n type: Input\r\n }], dragTemplate: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], handle: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollSensitivity: [{\r\n type: Input\r\n }], scrollSpeed: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDragEnd: [{\r\n type: Output\r\n }], onDragMove: [{\r\n type: Output\r\n }], onDragStart: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], autoScrollChange: [{\r\n type: Output\r\n }], boundaryChange: [{\r\n type: Output\r\n }], cloneChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], cursorOffsetChange: [{\r\n type: Output\r\n }], dataChange: [{\r\n type: Output\r\n }], dragDirectionChange: [{\r\n type: Output\r\n }], dragTemplateChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], groupChange: [{\r\n type: Output\r\n }], handleChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollSensitivityChange: [{\r\n type: Output\r\n }], scrollSpeedChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxDraggableModule {\r\n}\r\n/** @nocollapse */ DxDraggableModule.ɵfac = function DxDraggableModule_Factory(t) { return new (t || DxDraggableModule)(); };\r\n/** @nocollapse */ DxDraggableModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDraggableModule });\r\n/** @nocollapse */ DxDraggableModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoCursorOffsetModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDraggableModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDraggableComponent\r\n ],\r\n exports: [\r\n DxDraggableComponent,\r\n DxoCursorOffsetModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDraggableModule, { declarations: [DxDraggableComponent], imports: [DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDraggableComponent, DxoCursorOffsetModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDraggableComponent, DxDraggableModule };\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.animation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nexport var animation = {\r\n moveTo(config) {\r\n var $element = config.$element;\r\n var position = config.position;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n var animationType;\r\n switch (direction) {\r\n case \"right\":\r\n toConfig.transform = \"translate(\" + position + \"px, 0px)\";\r\n animationType = \"custom\";\r\n break;\r\n case \"left\":\r\n toConfig.left = position;\r\n animationType = \"slide\";\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n toConfig.top = position;\r\n animationType = \"slide\"\r\n }\r\n fx.animate($element, {\r\n type: animationType,\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n margin(config) {\r\n var $element = config.$element;\r\n var margin = config.margin;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n toConfig[\"margin\" + camelize(direction, true)] = margin;\r\n fx.animate($element, {\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n fade($element, config, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"fade\",\r\n to: config.to,\r\n from: config.from,\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n size(config) {\r\n var $element = config.$element;\r\n var size = config.size;\r\n var direction = config.direction || \"left\";\r\n var marginTop = config.marginTop || 0;\r\n var duration = config.duration;\r\n var toConfig = {};\r\n if (\"right\" === direction || \"left\" === direction) {\r\n toConfig.width = size\r\n } else {\r\n toConfig.height = size\r\n }\r\n if (\"bottom\" === direction) {\r\n toConfig.marginTop = marginTop\r\n }\r\n fx.animate($element, {\r\n to: toConfig,\r\n duration: duration,\r\n complete: config.complete\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setWidth,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nclass DrawerStrategy {\r\n constructor(drawer) {\r\n this._drawer = drawer\r\n }\r\n getDrawerInstance() {\r\n return this._drawer\r\n }\r\n renderPanelContent(whenPanelContentRendered) {\r\n var drawer = this.getDrawerInstance();\r\n var template = drawer._getTemplate(drawer.option(\"template\"));\r\n if (template) {\r\n template.render({\r\n container: drawer.content(),\r\n onRendered: () => {\r\n whenPanelContentRendered.resolve()\r\n }\r\n })\r\n }\r\n }\r\n renderPosition(changePositionUsingFxAnimation, animationDuration) {\r\n var whenPositionAnimationCompleted = new Deferred;\r\n var whenShaderAnimationCompleted = new Deferred;\r\n var drawer = this.getDrawerInstance();\r\n if (changePositionUsingFxAnimation) {\r\n when.apply($, [whenPositionAnimationCompleted, whenShaderAnimationCompleted]).done(() => {\r\n drawer._animationCompleteHandler()\r\n })\r\n }\r\n this._internalRenderPosition(changePositionUsingFxAnimation, whenPositionAnimationCompleted);\r\n if (!changePositionUsingFxAnimation) {\r\n drawer.resizeViewContent()\r\n }\r\n this.renderShaderVisibility(changePositionUsingFxAnimation, animationDuration, whenShaderAnimationCompleted)\r\n }\r\n _getPanelOffset(isDrawerOpened) {\r\n var drawer = this.getDrawerInstance();\r\n var size = drawer.isHorizontalDirection() ? drawer.getRealPanelWidth() : drawer.getRealPanelHeight();\r\n if (isDrawerOpened) {\r\n return -(size - drawer.getMaxSize())\r\n } else {\r\n return -(size - drawer.getMinSize())\r\n }\r\n }\r\n _getPanelSize(isDrawerOpened) {\r\n return isDrawerOpened ? this.getDrawerInstance().getMaxSize() : this.getDrawerInstance().getMinSize()\r\n }\r\n renderShaderVisibility(changePositionUsingFxAnimation, duration, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var isShaderVisible = drawer.option(\"opened\");\r\n var fadeConfig = isShaderVisible ? {\r\n from: 0,\r\n to: 1\r\n } : {\r\n from: 1,\r\n to: 0\r\n };\r\n if (changePositionUsingFxAnimation) {\r\n animation.fade($(drawer._$shader), fadeConfig, duration, () => {\r\n this._drawer._toggleShaderVisibility(isShaderVisible);\r\n whenAnimationCompleted.resolve()\r\n })\r\n } else {\r\n drawer._toggleShaderVisibility(isShaderVisible);\r\n drawer._$shader.css(\"opacity\", fadeConfig.to)\r\n }\r\n }\r\n getPanelContent() {\r\n return $(this.getDrawerInstance().content())\r\n }\r\n setPanelSize(calcFromRealPanelSize) {\r\n this.refreshPanelElementSize(calcFromRealPanelSize)\r\n }\r\n refreshPanelElementSize(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n if (drawer.isHorizontalDirection()) {\r\n setWidth($(drawer.content()), calcFromRealPanelSize ? drawer.getRealPanelWidth() : panelSize)\r\n } else {\r\n setHeight($(drawer.content()), calcFromRealPanelSize ? drawer.getRealPanelHeight() : panelSize)\r\n }\r\n }\r\n isViewContentFirst() {\r\n return false\r\n }\r\n onPanelContentRendered() {}\r\n}\r\nexport default DrawerStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.push.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nclass PushStrategy extends DrawerStrategy {\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var openedPanelSize = this._getPanelSize(true);\r\n var contentPosition = this._getPanelSize(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n $(drawer.content()).css(drawer.isHorizontalDirection() ? \"width\" : \"height\", openedPanelSize);\r\n if (drawer.getMinSize()) {\r\n var paddingCssPropertyName = \"padding\";\r\n switch (drawer.calcTargetPosition()) {\r\n case \"left\":\r\n paddingCssPropertyName += \"Right\";\r\n break;\r\n case \"right\":\r\n paddingCssPropertyName += \"Left\";\r\n break;\r\n case \"top\":\r\n paddingCssPropertyName += \"Bottom\";\r\n break;\r\n case \"bottom\":\r\n paddingCssPropertyName += \"Top\"\r\n }\r\n $(drawer.viewContent()).css(paddingCssPropertyName, drawer.getMinSize())\r\n }\r\n if (changePositionUsingFxAnimation) {\r\n animation.moveTo({\r\n $element: $(drawer.viewContent()),\r\n position: contentPosition,\r\n direction: drawer.calcTargetPosition(),\r\n duration: drawer.option(\"animationDuration\"),\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n }\r\n })\r\n } else if (drawer.isHorizontalDirection()) {\r\n move($(drawer.viewContent()), {\r\n left: contentPosition\r\n })\r\n } else {\r\n move($(drawer.viewContent()), {\r\n top: contentPosition\r\n })\r\n }\r\n }\r\n onPanelContentRendered() {\r\n $(this.getDrawerInstance().viewContent()).addClass(\"dx-theme-background-color\")\r\n }\r\n}\r\nexport default PushStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.shrink.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nclass ShrinkStrategy extends DrawerStrategy {\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var direction = drawer.calcTargetPosition();\r\n var $panel = $(drawer.content());\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\"));\r\n var revealMode = drawer.option(\"revealMode\");\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n animation.margin({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n margin: panelOffset\r\n })\r\n } else if (\"expand\" === revealMode) {\r\n animation.size({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n size: panelSize\r\n })\r\n }\r\n } else if (\"slide\" === revealMode) {\r\n $panel.css(\"margin\" + camelize(direction, true), panelOffset)\r\n } else if (\"expand\" === revealMode) {\r\n $panel.css(drawer.isHorizontalDirection() ? \"width\" : \"height\", panelSize)\r\n }\r\n }\r\n isViewContentFirst(position, isRtl) {\r\n return (isRtl ? \"left\" === position : \"right\" === position) || \"bottom\" === position\r\n }\r\n}\r\nexport default ShrinkStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.overlap.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nclass OverlapStrategy extends DrawerStrategy {\r\n renderPanelContent(whenPanelContentRendered) {\r\n delete this._initialPosition;\r\n var drawer = this.getDrawerInstance();\r\n var {\r\n opened: opened,\r\n minSize: minSize\r\n } = drawer.option();\r\n drawer._overlay = drawer._createComponent(drawer.content(), Overlay, {\r\n shading: false,\r\n container: drawer.content(),\r\n visualContainer: drawer.getOverlayTarget(),\r\n position: this._getOverlayPosition(),\r\n width: opened ? \"auto\" : minSize || 0,\r\n height: \"100%\",\r\n templatesRenderAsynchronously: drawer.option(\"templatesRenderAsynchronously\"),\r\n animation: {\r\n show: {\r\n duration: 0\r\n }\r\n },\r\n onPositioned: function(e) {\r\n this._fixOverlayPosition(e.component.$content())\r\n }.bind(this),\r\n contentTemplate: drawer.option(\"template\"),\r\n onContentReady: args => {\r\n whenPanelContentRendered.resolve();\r\n this._processOverlayZIndex(args.component.content())\r\n },\r\n visible: true,\r\n propagateOutsideClick: true\r\n })\r\n }\r\n _fixOverlayPosition($overlayContent) {\r\n var position = ensureDefined(this._initialPosition, {\r\n left: 0,\r\n top: 0\r\n });\r\n move($overlayContent, position);\r\n if (\"right\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"left\", \"auto\")\r\n }\r\n if (\"bottom\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"top\", \"auto\");\r\n $overlayContent.css(\"bottom\", \"0px\")\r\n }\r\n }\r\n _getOverlayPosition() {\r\n var drawer = this.getDrawerInstance();\r\n var panelPosition = drawer.calcTargetPosition();\r\n var result = {};\r\n switch (panelPosition) {\r\n case \"left\":\r\n result = {\r\n my: \"top left\",\r\n at: \"top left\"\r\n };\r\n break;\r\n case \"right\":\r\n result = {\r\n my: drawer.option(\"rtlEnabled\") ? \"top left\" : \"top right\",\r\n at: \"top right\"\r\n };\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n result = {\r\n my: panelPosition,\r\n at: panelPosition\r\n }\r\n }\r\n result.of = drawer.getOverlayTarget();\r\n return result\r\n }\r\n refreshPanelElementSize(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var overlay = drawer.getOverlay();\r\n if (drawer.isHorizontalDirection()) {\r\n overlay.option(\"height\", \"100%\");\r\n overlay.option(\"width\", calcFromRealPanelSize ? drawer.getRealPanelWidth() : this._getPanelSize(drawer.option(\"opened\")))\r\n } else {\r\n overlay.option(\"width\", getWidth(drawer.getOverlayTarget()));\r\n overlay.option(\"height\", calcFromRealPanelSize ? drawer.getRealPanelHeight() : this._getPanelSize(drawer.option(\"opened\")))\r\n }\r\n }\r\n onPanelContentRendered() {\r\n this._updateViewContentStyles()\r\n }\r\n _updateViewContentStyles() {\r\n var drawer = this.getDrawerInstance();\r\n $(drawer.viewContent()).css(\"padding\" + camelize(drawer.calcTargetPosition(), true), drawer.option(\"minSize\"));\r\n $(drawer.viewContent()).css(\"transform\", \"inherit\")\r\n }\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var $panel = $(drawer.content());\r\n var $panelOverlayContent = drawer.getOverlay().$content();\r\n var revealMode = drawer.option(\"revealMode\");\r\n var targetPanelPosition = drawer.calcTargetPosition();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n var marginTop = drawer.getRealPanelHeight() - panelSize;\r\n this._updateViewContentStyles();\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n animation.moveTo({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panel,\r\n position: panelOffset\r\n })\r\n } else if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n move($panelOverlayContent, this._initialPosition);\r\n animation.size({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panelOverlayContent,\r\n size: panelSize,\r\n marginTop: marginTop\r\n })\r\n }\r\n } else if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n move($panel, this._initialPosition)\r\n } else if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n move($panelOverlayContent, this._initialPosition);\r\n if (drawer.isHorizontalDirection()) {\r\n $($panelOverlayContent).css(\"width\", panelSize)\r\n } else {\r\n $($panelOverlayContent).css(\"height\", panelSize);\r\n if (\"bottom\" === targetPanelPosition) {\r\n $($panelOverlayContent).css(\"marginTop\", marginTop)\r\n }\r\n }\r\n }\r\n }\r\n getPanelContent() {\r\n return $(this.getDrawerInstance().getOverlay().content())\r\n }\r\n _processOverlayZIndex($element) {\r\n var styles = $($element).get(0).style;\r\n var zIndex = styles.zIndex || 1;\r\n this.getDrawerInstance().setZIndex(zIndex)\r\n }\r\n isViewContentFirst(position) {\r\n return \"right\" === position || \"bottom\" === position\r\n }\r\n}\r\nexport default OverlapStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport PushStrategy from \"./ui.drawer.rendering.strategy.push\";\r\nimport ShrinkStrategy from \"./ui.drawer.rendering.strategy.shrink\";\r\nimport OverlapStrategy from \"./ui.drawer.rendering.strategy.overlap\";\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport {\r\n name as CLICK_EVENT_NAME\r\n} from \"../../events/click\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nvar DRAWER_CLASS = \"dx-drawer\";\r\nvar DRAWER_WRAPPER_CLASS = \"dx-drawer-wrapper\";\r\nvar DRAWER_PANEL_CONTENT_CLASS = \"dx-drawer-panel-content\";\r\nvar DRAWER_VIEW_CONTENT_CLASS = \"dx-drawer-content\";\r\nvar DRAWER_SHADER_CLASS = \"dx-drawer-shader\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar OPENED_STATE_CLASS = \"dx-drawer-opened\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar PANEL_TEMPLATE_NAME = \"panel\";\r\nvar Drawer = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n position: \"left\",\r\n opened: false,\r\n minSize: null,\r\n maxSize: null,\r\n shading: false,\r\n template: PANEL_TEMPLATE_NAME,\r\n openedStateMode: \"shrink\",\r\n revealMode: \"slide\",\r\n animationEnabled: true,\r\n animationDuration: 400,\r\n closeOnOutsideClick: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initStrategy();\r\n this.$element().addClass(DRAWER_CLASS);\r\n this._whenAnimationCompleted = void 0;\r\n this._whenPanelContentRendered = void 0;\r\n this._whenPanelContentRefreshed = void 0;\r\n this._$wrapper = $(\"<div>\").addClass(DRAWER_WRAPPER_CLASS);\r\n this._$viewContentWrapper = $(\"<div>\").addClass(DRAWER_VIEW_CONTENT_CLASS);\r\n this._$wrapper.append(this._$viewContentWrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _initStrategy() {\r\n switch (this.option(\"openedStateMode\")) {\r\n case \"push\":\r\n this._strategy = new PushStrategy(this);\r\n break;\r\n case \"shrink\":\r\n this._strategy = new ShrinkStrategy(this);\r\n break;\r\n case \"overlap\":\r\n this._strategy = new OverlapStrategy(this);\r\n break;\r\n default:\r\n this._strategy = new PushStrategy(this)\r\n }\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates() {\r\n var defaultTemplates = {};\r\n defaultTemplates[PANEL_TEMPLATE_NAME] = new EmptyTemplate;\r\n defaultTemplates[ANONYMOUS_TEMPLATE_NAME] = new EmptyTemplate;\r\n this._templateManager.addDefaultTemplates(defaultTemplates);\r\n this.callBase()\r\n },\r\n _viewContentWrapperClickHandler(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if (isFunction(closeOnOutsideClick)) {\r\n closeOnOutsideClick = closeOnOutsideClick(e)\r\n }\r\n if (closeOnOutsideClick && this.option(\"opened\")) {\r\n this.stopAnimations();\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._toggleOpenedStateClass(this.option(\"opened\"));\r\n this._renderPanelContentWrapper();\r\n this._refreshOpenedStateModeClass();\r\n this._refreshRevealModeClass();\r\n this._renderShader();\r\n this._refreshPositionClass();\r\n this._whenPanelContentRendered = new Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRendered);\r\n this._strategy.onPanelContentRendered();\r\n this._renderViewContent();\r\n eventsEngine.off(this._$viewContentWrapper, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$viewContentWrapper, CLICK_EVENT_NAME, this._viewContentWrapperClickHandler.bind(this));\r\n this._refreshWrapperChildrenOrder()\r\n },\r\n _render() {\r\n this._initMinMaxSize();\r\n this.callBase();\r\n this._whenPanelContentRendered.always(() => {\r\n this._initMinMaxSize();\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\") || !this.isHorizontalDirection());\r\n this._renderPosition(this.option(\"opened\"), true);\r\n this._removePanelManualPosition()\r\n })\r\n },\r\n _removePanelManualPosition() {\r\n if (this._$panelContentWrapper.attr(\"manualposition\")) {\r\n this._$panelContentWrapper.removeAttr(\"manualPosition\");\r\n this._$panelContentWrapper.css({\r\n position: \"\",\r\n top: \"\",\r\n left: \"\",\r\n right: \"\",\r\n bottom: \"\"\r\n })\r\n }\r\n },\r\n _renderPanelContentWrapper() {\r\n this._$panelContentWrapper = $(\"<div>\").addClass(DRAWER_PANEL_CONTENT_CLASS);\r\n var position = this.calcTargetPosition();\r\n if (\"push\" === this.option(\"openedStateMode\") && [\"top\", \"bottom\"].indexOf(position) > -1) {\r\n this._$panelContentWrapper.addClass(DRAWER_PANEL_CONTENT_CLASS + \"-push-top-or-bottom\")\r\n }\r\n if (\"overlap\" !== this.option(\"openedStateMode\") && !this.option(\"opened\") && !this.option(\"minSize\")) {\r\n this._$panelContentWrapper.attr(\"manualposition\", true);\r\n this._$panelContentWrapper.css({\r\n position: \"absolute\",\r\n top: \"-10000px\",\r\n left: \"-10000px\",\r\n right: \"auto\",\r\n bottom: \"auto\"\r\n })\r\n }\r\n this._$wrapper.append(this._$panelContentWrapper)\r\n },\r\n _refreshOpenedStateModeClass(prevOpenedStateMode) {\r\n if (prevOpenedStateMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevOpenedStateMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"openedStateMode\"))\r\n },\r\n _refreshPositionClass(prevPosition) {\r\n if (prevPosition) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevPosition)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.calcTargetPosition())\r\n },\r\n _refreshWrapperChildrenOrder() {\r\n var position = this.calcTargetPosition();\r\n if (this._strategy.isViewContentFirst(position, this.option(\"rtlEnabled\"))) {\r\n this._$wrapper.prepend(this._$viewContentWrapper)\r\n } else {\r\n this._$wrapper.prepend(this._$panelContentWrapper)\r\n }\r\n },\r\n _refreshRevealModeClass(prevRevealMode) {\r\n if (prevRevealMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevRevealMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"revealMode\"))\r\n },\r\n _renderViewContent() {\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n if (contentTemplate) {\r\n var $viewTemplate = contentTemplate.render({\r\n container: this.viewContent(),\r\n noModel: true,\r\n transclude: this._templateManager.anonymousTemplateName === contentTemplateOption\r\n });\r\n if ($viewTemplate.hasClass(\"ng-scope\")) {\r\n $(this._$viewContentWrapper).children().not(\".\".concat(DRAWER_SHADER_CLASS)).replaceWith($viewTemplate)\r\n }\r\n }\r\n },\r\n _renderShader() {\r\n this._$shader = this._$shader || $(\"<div>\").addClass(DRAWER_SHADER_CLASS);\r\n this._$shader.appendTo(this.viewContent());\r\n this._toggleShaderVisibility(this.option(\"opened\"))\r\n },\r\n _initSize() {\r\n this._initMinMaxSize()\r\n },\r\n _initMinMaxSize() {\r\n var realPanelSize = this.isHorizontalDirection() ? this.getRealPanelWidth() : this.getRealPanelHeight();\r\n this._maxSize = this.option(\"maxSize\") || realPanelSize;\r\n this._minSize = this.option(\"minSize\") || 0\r\n },\r\n calcTargetPosition() {\r\n var position = this.option(\"position\");\r\n var rtl = this.option(\"rtlEnabled\");\r\n var result = position;\r\n if (\"before\" === position) {\r\n result = rtl ? \"right\" : \"left\"\r\n } else if (\"after\" === position) {\r\n result = rtl ? \"left\" : \"right\"\r\n }\r\n return result\r\n },\r\n getOverlayTarget() {\r\n return this._$wrapper\r\n },\r\n getOverlay() {\r\n return this._overlay\r\n },\r\n getMaxSize() {\r\n return this._maxSize\r\n },\r\n getMinSize() {\r\n return this._minSize\r\n },\r\n getRealPanelWidth() {\r\n if (hasWindow()) {\r\n if (isDefined(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return getBoundingRect(this._getPanelTemplateElement()).width\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n getRealPanelHeight() {\r\n if (hasWindow()) {\r\n if (isDefined(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return getBoundingRect(this._getPanelTemplateElement()).height\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n _getPanelTemplateElement() {\r\n var $panelContent = this._strategy.getPanelContent();\r\n var $result = $panelContent;\r\n if ($panelContent.children().length) {\r\n $result = $panelContent.children().eq(0);\r\n if ($panelContent.hasClass(\"dx-overlay-content\") && $result.hasClass(\"dx-template-wrapper\") && $result.children().length) {\r\n $result = $result.children().eq(0)\r\n }\r\n }\r\n return $result.get(0)\r\n },\r\n getElementHeight($element) {\r\n var $children = $element.children();\r\n return $children.length ? getBoundingRect($children.eq(0).get(0)).height : getBoundingRect($element.get(0)).height\r\n },\r\n isHorizontalDirection() {\r\n var position = this.calcTargetPosition();\r\n return \"left\" === position || \"right\" === position\r\n },\r\n stopAnimations(jumpToEnd) {\r\n fx.stop(this._$shader, jumpToEnd);\r\n fx.stop($(this.content()), jumpToEnd);\r\n fx.stop($(this.viewContent()), jumpToEnd);\r\n var overlay = this.getOverlay();\r\n if (overlay) {\r\n fx.stop($(overlay.$content()), jumpToEnd)\r\n }\r\n },\r\n setZIndex(zIndex) {\r\n this._$shader.css(\"zIndex\", zIndex - 1);\r\n this._$panelContentWrapper.css(\"zIndex\", zIndex)\r\n },\r\n resizeContent() {\r\n this.resizeViewContent\r\n },\r\n resizeViewContent() {\r\n triggerResizeEvent(this.viewContent())\r\n },\r\n _isInvertedPosition() {\r\n var position = this.calcTargetPosition();\r\n return \"right\" === position || \"bottom\" === position\r\n },\r\n _renderPosition(isDrawerOpened, disableAnimation, jumpToEnd) {\r\n this.stopAnimations(jumpToEnd);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n $(this.viewContent()).css(\"paddingLeft\", 0);\r\n $(this.viewContent()).css(\"paddingRight\", 0);\r\n $(this.viewContent()).css(\"paddingTop\", 0);\r\n $(this.viewContent()).css(\"paddingBottom\", 0);\r\n var animationEnabled = this.option(\"animationEnabled\");\r\n if (true === disableAnimation) {\r\n animationEnabled = false\r\n }\r\n if (isDrawerOpened) {\r\n this._toggleShaderVisibility(isDrawerOpened)\r\n }\r\n this._strategy.renderPosition(animationEnabled, this.option(\"animationDuration\"))\r\n },\r\n _animationCompleteHandler() {\r\n this.resizeViewContent();\r\n if (this._whenAnimationCompleted) {\r\n this._whenAnimationCompleted.resolve()\r\n }\r\n },\r\n _getPositionCorrection() {\r\n return this._isInvertedPosition() ? -1 : 1\r\n },\r\n _dispose() {\r\n animation.complete($(this.viewContent()));\r\n this.callBase()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._initMinMaxSize();\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\"));\r\n this._renderPosition(this.option(\"opened\"), true)\r\n },\r\n _toggleShaderVisibility(visible) {\r\n if (this.option(\"shading\")) {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._$shader.css(\"visibility\", visible ? \"visible\" : \"hidden\")\r\n } else {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, true)\r\n }\r\n },\r\n _toggleOpenedStateClass(opened) {\r\n this.$element().toggleClass(OPENED_STATE_CLASS, opened)\r\n },\r\n _refreshPanel() {\r\n $(this.viewContent()).css(\"left\", 0);\r\n $(this.viewContent()).css(\"transform\", \"translate(0px, 0px)\");\r\n $(this.viewContent()).removeClass(\"dx-theme-background-color\");\r\n this._removePanelContentWrapper();\r\n this._removeOverlay();\r\n this._renderPanelContentWrapper();\r\n this._refreshWrapperChildrenOrder();\r\n this._whenPanelContentRefreshed = new Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRefreshed);\r\n this._strategy.onPanelContentRendered();\r\n if (hasWindow()) {\r\n this._whenPanelContentRefreshed.always(() => {\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\"));\r\n this._renderPosition(this.option(\"opened\"), true, true);\r\n this._removePanelManualPosition()\r\n })\r\n }\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._removePanelContentWrapper();\r\n this._removeOverlay()\r\n },\r\n _removePanelContentWrapper() {\r\n if (this._$panelContentWrapper) {\r\n this._$panelContentWrapper.remove()\r\n }\r\n },\r\n _removeOverlay() {\r\n if (this._overlay) {\r\n this._overlay.dispose();\r\n delete this._overlay;\r\n delete this._$panelContentWrapper\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"opened\":\r\n this._renderPosition(this.option(\"opened\"));\r\n this._toggleOpenedStateClass(args.value);\r\n break;\r\n case \"position\":\r\n this._refreshPositionClass(args.previousValue);\r\n this._refreshWrapperChildrenOrder();\r\n this._invalidate();\r\n break;\r\n case \"contentTemplate\":\r\n case \"template\":\r\n this._invalidate();\r\n break;\r\n case \"openedStateMode\":\r\n this._initStrategy();\r\n this._refreshOpenedStateModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"minSize\":\r\n case \"maxSize\":\r\n this._initMinMaxSize();\r\n this._renderPosition(this.option(\"opened\"), true);\r\n break;\r\n case \"revealMode\":\r\n this._refreshRevealModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"shading\":\r\n this._toggleShaderVisibility(this.option(\"opened\"));\r\n break;\r\n case \"animationEnabled\":\r\n case \"animationDuration\":\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content() {\r\n return getPublicElement(this._$panelContentWrapper)\r\n },\r\n viewContent() {\r\n return getPublicElement(this._$viewContentWrapper)\r\n },\r\n show() {\r\n return this.toggle(true)\r\n },\r\n hide() {\r\n return this.toggle(false)\r\n },\r\n toggle(opened) {\r\n var targetOpened = void 0 === opened ? !this.option(\"opened\") : opened;\r\n this._whenAnimationCompleted = new Deferred;\r\n this.option(\"opened\", targetOpened);\r\n return this._whenAnimationCompleted.promise()\r\n }\r\n});\r\nregisterComponent(\"dxDrawer\", Drawer);\r\nexport default Drawer;\r\n","/**\r\n * DevExtreme (esm/ui/drawer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Drawer from \"./drawer/ui.drawer\";\r\nexport default Drawer;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxDrawer from 'devextreme/ui/drawer';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxDrawer]\r\n\r\n */\r\nclass DxDrawerComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationDurationChange' },\r\n { emit: 'animationEnabledChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxSizeChange' },\r\n { emit: 'minSizeChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openedStateModeChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'revealModeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'templateChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.animationDuration]\r\n \r\n */\r\n get animationDuration() {\r\n return this._getOption('animationDuration');\r\n }\r\n set animationDuration(value) {\r\n this._setOption('animationDuration', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.animationEnabled]\r\n \r\n */\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.maxSize]\r\n \r\n */\r\n get maxSize() {\r\n return this._getOption('maxSize');\r\n }\r\n set maxSize(value) {\r\n this._setOption('maxSize', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.minSize]\r\n \r\n */\r\n get minSize() {\r\n return this._getOption('minSize');\r\n }\r\n set minSize(value) {\r\n this._setOption('minSize', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.openedStateMode]\r\n \r\n */\r\n get openedStateMode() {\r\n return this._getOption('openedStateMode');\r\n }\r\n set openedStateMode(value) {\r\n this._setOption('openedStateMode', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.revealMode]\r\n \r\n */\r\n get revealMode() {\r\n return this._getOption('revealMode');\r\n }\r\n set revealMode(value) {\r\n this._setOption('revealMode', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxDrawerOptions.template]\r\n \r\n */\r\n get template() {\r\n return this._getOption('template');\r\n }\r\n set template(value) {\r\n this._setOption('template', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDrawer(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxDrawerComponent.ɵfac = function DxDrawerComponent_Factory(t) { return new (t || DxDrawerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDrawerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDrawerComponent, selectors: [[\"dx-drawer\"]], inputs: { activeStateEnabled: \"activeStateEnabled\", animationDuration: \"animationDuration\", animationEnabled: \"animationEnabled\", closeOnOutsideClick: \"closeOnOutsideClick\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxSize: \"maxSize\", minSize: \"minSize\", opened: \"opened\", openedStateMode: \"openedStateMode\", position: \"position\", revealMode: \"revealMode\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", template: \"template\", visible: \"visible\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", activeStateEnabledChange: \"activeStateEnabledChange\", animationDurationChange: \"animationDurationChange\", animationEnabledChange: \"animationEnabledChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxSizeChange: \"maxSizeChange\", minSizeChange: \"minSizeChange\", openedChange: \"openedChange\", openedStateModeChange: \"openedStateModeChange\", positionChange: \"positionChange\", revealModeChange: \"revealModeChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", templateChange: \"templateChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxDrawerComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDrawerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-drawer',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { activeStateEnabled: [{\r\n type: Input\r\n }], animationDuration: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxSize: [{\r\n type: Input\r\n }], minSize: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openedStateMode: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], revealMode: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], template: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationDurationChange: [{\r\n type: Output\r\n }], animationEnabledChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxSizeChange: [{\r\n type: Output\r\n }], minSizeChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openedStateModeChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], revealModeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], templateChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxDrawerModule {\r\n}\r\n/** @nocollapse */ DxDrawerModule.ɵfac = function DxDrawerModule_Factory(t) { return new (t || DxDrawerModule)(); };\r\n/** @nocollapse */ DxDrawerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDrawerModule });\r\n/** @nocollapse */ DxDrawerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDrawerModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDrawerComponent\r\n ],\r\n exports: [\r\n DxDrawerComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDrawerModule, { declarations: [DxDrawerComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDrawerComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDrawerComponent, DxDrawerModule };\n","/**\r\n * DevExtreme (esm/ui/drop_down_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DropDownEditor from \"./drop_down_editor/ui.drop_down_editor\";\r\nimport DataExpressionMixin from \"./editor/ui.data_expression\";\r\nimport {\r\n noop,\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n tabbable\r\n} from \"./widget/selectors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../ui/overlay/utils\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nvar getActiveElement = domAdapter.getActiveElement;\r\nvar DROP_DOWN_BOX_CLASS = \"dx-dropdownbox\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar realDevice = devices.real();\r\nvar DropDownBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n var $tabbableElements = this._getTabbableElements();\r\n var $focusableElement = e.shiftKey ? $tabbableElements.last() : $tabbableElements.first();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _getTabbableElements: function() {\r\n return this._getElements().filter(tabbable)\r\n },\r\n _getElements: function() {\r\n return $(this.content()).find(\"*\")\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n acceptCustomValue: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n openOnFieldClick: true,\r\n displayValueFormatter: function(value) {\r\n return Array.isArray(value) ? value.join(\", \") : value\r\n },\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._initDataExpressions();\r\n this.$element().addClass(DROP_DOWN_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _sortValuesByKeysOrder(orderedKeys, values) {\r\n var sortedValues = values.sort((a, b) => orderedKeys.indexOf(a.itemKey) - orderedKeys.indexOf(b.itemKey));\r\n return sortedValues.map(x => x.itemDisplayValue)\r\n },\r\n _renderInputValue: function() {\r\n this._rejectValueLoading();\r\n var values = [];\r\n if (!this._dataSource) {\r\n this.callBase(values);\r\n return (new Deferred).resolve()\r\n }\r\n var currentValue = this._getCurrentValue();\r\n var keys = null !== currentValue && void 0 !== currentValue ? currentValue : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n var itemLoadDeferreds = map(keys, key => {\r\n var deferred = new Deferred;\r\n this._loadItem(key).always(item => {\r\n var displayValue = this._displayGetter(item);\r\n if (isDefined(displayValue)) {\r\n values.push({\r\n itemKey: key,\r\n itemDisplayValue: displayValue\r\n })\r\n } else if (this.option(\"acceptCustomValue\")) {\r\n values.push({\r\n itemKey: key,\r\n itemDisplayValue: key\r\n })\r\n }\r\n deferred.resolve()\r\n });\r\n return deferred\r\n });\r\n var callBase = this.callBase.bind(this);\r\n return when.apply(this, itemLoadDeferreds).always(() => {\r\n var orderedValues = this._sortValuesByKeysOrder(keys, values);\r\n this.option(\"displayValue\", orderedValues);\r\n callBase(values.length && orderedValues)\r\n })\r\n },\r\n _loadItem: function(value) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var selectedItem = grep(this.option(\"items\") || [], function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0];\r\n if (void 0 !== selectedItem) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n this._loadValue(value).done((function(item) {\r\n deferred.resolve(item)\r\n })).fail((function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n if (that.option(\"acceptCustomValue\")) {\r\n deferred.resolve(value)\r\n } else {\r\n deferred.reject()\r\n }\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _popupTabHandler: function(e) {\r\n if (\"tab\" !== normalizeKeyName(e)) {\r\n return\r\n }\r\n var $firstTabbable = this._getTabbableElements().first().get(0);\r\n var $lastTabbable = this._getTabbableElements().last().get(0);\r\n var $target = e.target;\r\n var moveBackward = !!($target === $firstTabbable && e.shiftKey);\r\n var moveForward = !!($target === $lastTabbable && !e.shiftKey);\r\n if (moveBackward || moveForward) {\r\n this.close();\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n if (moveBackward) {\r\n e.preventDefault()\r\n }\r\n }\r\n },\r\n _renderPopupContent: function() {\r\n if (this.option(\"contentTemplate\") === ANONYMOUS_TEMPLATE_NAME) {\r\n return\r\n }\r\n var contentTemplate = this._getTemplateByOption(\"contentTemplate\");\r\n if (!(contentTemplate && this.option(\"contentTemplate\"))) {\r\n return\r\n }\r\n var $popupContent = this._popup.$content();\r\n var templateData = {\r\n value: this._fieldRenderData(),\r\n component: this\r\n };\r\n $popupContent.empty();\r\n contentTemplate.render({\r\n container: getPublicElement($popupContent),\r\n model: templateData\r\n })\r\n },\r\n _canShowVirtualKeyboard: function() {\r\n return realDevice.mac\r\n },\r\n _isNestedElementActive: function() {\r\n var activeElement = getActiveElement();\r\n return activeElement && this._popup.$content().get(0).contains(activeElement)\r\n },\r\n _shouldHideOnParentScroll: function() {\r\n return \"desktop\" === realDevice.deviceType && this._canShowVirtualKeyboard() && this._isNestedElementActive()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._popupPosition = void 0\r\n },\r\n _popupPositionedHandler: function(e) {\r\n this.callBase(e);\r\n this._popupPosition = e.position\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this.callBase(isRtlEnabled);\r\n return {\r\n my: my,\r\n at: at,\r\n offset: {\r\n v: -1\r\n },\r\n collision: \"flipfit\"\r\n }\r\n },\r\n _popupConfig: function() {\r\n var {\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n return extend(this.callBase(), {\r\n tabIndex: -1,\r\n dragEnabled: false,\r\n focusStateEnabled: focusStateEnabled,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n hideOnParentScroll: this._shouldHideOnParentScroll.bind(this),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: function() {\r\n var _this$_popupPosition;\r\n var popupLocation = null === (_this$_popupPosition = this._popupPosition) || void 0 === _this$_popupPosition ? void 0 : _this$_popupPosition.v.location;\r\n return getElementMaxHeightByWindow(this.$element(), popupLocation)\r\n }.bind(this)\r\n })\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n var $firstElement = this._getTabbableElements().first();\r\n eventsEngine.trigger($firstElement, \"focus\")\r\n },\r\n _setCollectionWidgetOption: noop,\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._renderInputValue();\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n break;\r\n case \"contentTemplate\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin);\r\nregisterComponent(\"dxDropDownBox\", DropDownBox);\r\nexport default DropDownBox;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxDropDownBox from 'devextreme/ui/drop_down_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiItemComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxDropDownBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxDropDownBox]\r\n\r\n */\r\nclass DxDropDownBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'contentTemplateChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'displayValueFormatterChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldTemplateChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.contentTemplate]\r\n \r\n */\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.displayValueFormatter]\r\n \r\n */\r\n get displayValueFormatter() {\r\n return this._getOption('displayValueFormatter');\r\n }\r\n set displayValueFormatter(value) {\r\n this._setOption('displayValueFormatter', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.fieldTemplate]\r\n \r\n */\r\n get fieldTemplate() {\r\n return this._getOption('fieldTemplate');\r\n }\r\n set fieldTemplate(value) {\r\n this._setOption('fieldTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxDropDownBoxOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDropDownBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDropDownBoxComponent.ɵfac = function DxDropDownBoxComponent_Factory(t) { return new (t || DxDropDownBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDropDownBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDropDownBoxComponent, selectors: [[\"dx-drop-down-box\"]], contentQueries: function DxDropDownBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxDropDownBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxDropDownBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxDropDownBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", contentTemplate: \"contentTemplate\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayExpr: \"displayExpr\", displayValueFormatter: \"displayValueFormatter\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", fieldTemplate: \"fieldTemplate\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", label: \"label\", labelMode: \"labelMode\", maxLength: \"maxLength\", name: \"name\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showDropDownButton: \"showDropDownButton\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonsChange: \"buttonsChange\", contentTemplateChange: \"contentTemplateChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", displayValueFormatterChange: \"displayValueFormatterChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", fieldTemplateChange: \"fieldTemplateChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxLengthChange: \"maxLengthChange\", nameChange: \"nameChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showClearButtonChange: \"showClearButtonChange\", showDropDownButtonChange: \"showDropDownButtonChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxDropDownBoxComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDropDownBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-drop-down-box',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], displayValueFormatter: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fieldTemplate: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], contentTemplateChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], displayValueFormatterChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldTemplateChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxDropDownBoxModule {\r\n}\r\n/** @nocollapse */ DxDropDownBoxModule.ɵfac = function DxDropDownBoxModule_Factory(t) { return new (t || DxDropDownBoxModule)(); };\r\n/** @nocollapse */ DxDropDownBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDropDownBoxModule });\r\n/** @nocollapse */ DxDropDownBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDropDownBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDropDownBoxComponent\r\n ],\r\n exports: [\r\n DxDropDownBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDropDownBoxModule, { declarations: [DxDropDownBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDropDownBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDropDownBoxComponent, DxDropDownBoxModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxDropDownButton from 'devextreme/ui/drop_down_button';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxDropDownButton]\r\n\r\n */\r\nclass DxDropDownButtonComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'buttonClick', emit: 'onButtonClick' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'dropDownContentTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'selectedItemKeyChange' },\r\n { emit: 'showArrowIconChange' },\r\n { emit: 'splitButtonChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'useItemTextAsTitleChange' },\r\n { emit: 'useSelectModeChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapItemTextChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.dropDownContentTemplate]\r\n \r\n */\r\n get dropDownContentTemplate() {\r\n return this._getOption('dropDownContentTemplate');\r\n }\r\n set dropDownContentTemplate(value) {\r\n this._setOption('dropDownContentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.icon]\r\n \r\n */\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.selectedItemKey]\r\n \r\n */\r\n get selectedItemKey() {\r\n return this._getOption('selectedItemKey');\r\n }\r\n set selectedItemKey(value) {\r\n this._setOption('selectedItemKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.showArrowIcon]\r\n \r\n */\r\n get showArrowIcon() {\r\n return this._getOption('showArrowIcon');\r\n }\r\n set showArrowIcon(value) {\r\n this._setOption('showArrowIcon', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.splitButton]\r\n \r\n */\r\n get splitButton() {\r\n return this._getOption('splitButton');\r\n }\r\n set splitButton(value) {\r\n this._setOption('splitButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.useItemTextAsTitle]\r\n \r\n */\r\n get useItemTextAsTitle() {\r\n return this._getOption('useItemTextAsTitle');\r\n }\r\n set useItemTextAsTitle(value) {\r\n this._setOption('useItemTextAsTitle', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.useSelectMode]\r\n \r\n */\r\n get useSelectMode() {\r\n return this._getOption('useSelectMode');\r\n }\r\n set useSelectMode(value) {\r\n this._setOption('useSelectMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDropDownButtonOptions.wrapItemText]\r\n \r\n */\r\n get wrapItemText() {\r\n return this._getOption('wrapItemText');\r\n }\r\n set wrapItemText(value) {\r\n this._setOption('wrapItemText', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxDropDownButton(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxDropDownButtonComponent.ɵfac = function DxDropDownButtonComponent_Factory(t) { return new (t || DxDropDownButtonComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxDropDownButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDropDownButtonComponent, selectors: [[\"dx-drop-down-button\"]], contentQueries: function DxDropDownButtonComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayExpr: \"displayExpr\", dropDownContentTemplate: \"dropDownContentTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", icon: \"icon\", items: \"items\", itemTemplate: \"itemTemplate\", keyExpr: \"keyExpr\", noDataText: \"noDataText\", opened: \"opened\", rtlEnabled: \"rtlEnabled\", selectedItem: \"selectedItem\", selectedItemKey: \"selectedItemKey\", showArrowIcon: \"showArrowIcon\", splitButton: \"splitButton\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", type: \"type\", useItemTextAsTitle: \"useItemTextAsTitle\", useSelectMode: \"useSelectMode\", visible: \"visible\", width: \"width\", wrapItemText: \"wrapItemText\" }, outputs: { onButtonClick: \"onButtonClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", dropDownContentTemplateChange: \"dropDownContentTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconChange: \"iconChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", keyExprChange: \"keyExprChange\", noDataTextChange: \"noDataTextChange\", openedChange: \"openedChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedItemChange: \"selectedItemChange\", selectedItemKeyChange: \"selectedItemKeyChange\", showArrowIconChange: \"showArrowIconChange\", splitButtonChange: \"splitButtonChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", typeChange: \"typeChange\", useItemTextAsTitleChange: \"useItemTextAsTitleChange\", useSelectModeChange: \"useSelectModeChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapItemTextChange: \"wrapItemTextChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxDropDownButtonComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDropDownButtonComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-drop-down-button',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], dropDownContentTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], icon: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], selectedItemKey: [{\r\n type: Input\r\n }], showArrowIcon: [{\r\n type: Input\r\n }], splitButton: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], useItemTextAsTitle: [{\r\n type: Input\r\n }], useSelectMode: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapItemText: [{\r\n type: Input\r\n }], onButtonClick: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], dropDownContentTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], selectedItemKeyChange: [{\r\n type: Output\r\n }], showArrowIconChange: [{\r\n type: Output\r\n }], splitButtonChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], useItemTextAsTitleChange: [{\r\n type: Output\r\n }], useSelectModeChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapItemTextChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxDropDownButtonModule {\r\n}\r\n/** @nocollapse */ DxDropDownButtonModule.ɵfac = function DxDropDownButtonModule_Factory(t) { return new (t || DxDropDownButtonModule)(); };\r\n/** @nocollapse */ DxDropDownButtonModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDropDownButtonModule });\r\n/** @nocollapse */ DxDropDownButtonModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxDropDownButtonModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxDropDownButtonComponent\r\n ],\r\n exports: [\r\n DxDropDownButtonComponent,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDropDownButtonModule, { declarations: [DxDropDownButtonComponent], imports: [DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxDropDownButtonComponent, DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxDropDownButtonComponent, DxDropDownButtonModule };\n","/**\r\n * DevExtreme (esm/ui/toast/ui.toast.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterialBased\r\n} from \"../themes\";\r\nvar ready = readyCallbacks.add;\r\nvar TOAST_CLASS = \"dx-toast\";\r\nvar TOAST_CLASS_PREFIX = TOAST_CLASS + \"-\";\r\nvar TOAST_WRAPPER_CLASS = TOAST_CLASS_PREFIX + \"wrapper\";\r\nvar TOAST_CONTENT_CLASS = TOAST_CLASS_PREFIX + \"content\";\r\nvar TOAST_MESSAGE_CLASS = TOAST_CLASS_PREFIX + \"message\";\r\nvar TOAST_ICON_CLASS = TOAST_CLASS_PREFIX + \"icon\";\r\nvar WIDGET_NAME = \"dxToast\";\r\nvar toastTypes = [\"info\", \"warning\", \"error\", \"success\"];\r\nvar TOAST_STACK = [];\r\nvar FIRST_Z_INDEX_OFFSET = 8e3;\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n bottom: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: null,\r\n offset: \"0 -20\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n right: {\r\n my: \"center right\",\r\n at: \"center right\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n left: {\r\n my: \"center left\",\r\n at: \"center left\",\r\n of: null,\r\n offset: \"0 0\"\r\n }\r\n};\r\nvar DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nvar DEFAULT_MARGIN = 20;\r\nready((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, (function(e) {\r\n for (var i = TOAST_STACK.length - 1; i >= 0; i--) {\r\n if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n }))\r\n}));\r\nvar Toast = Overlay.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: \"\",\r\n type: \"info\",\r\n displayTime: 2e3,\r\n position: \"bottom center\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n shading: false,\r\n height: \"auto\",\r\n hideTopOverlayHandler: null,\r\n preventScrollEvents: false,\r\n closeOnSwipe: true,\r\n closeOnClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var tabletAndMobileCommonOptions = {\r\n displayTime: isMaterialBased() ? 4e3 : 2e3,\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 200,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 200,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n };\r\n return this.callBase().concat([{\r\n device: device => \"phone\" === device.deviceType,\r\n options: _extends({\r\n width: \"calc(100vw - \".concat(2 * DEFAULT_MARGIN, \"px)\")\r\n }, tabletAndMobileCommonOptions)\r\n }, {\r\n device: device => \"tablet\" === device.deviceType,\r\n options: _extends({\r\n width: \"auto\",\r\n maxWidth: \"80vw\"\r\n }, tabletAndMobileCommonOptions)\r\n }, {\r\n device: device => isMaterialBased() && \"desktop\" === device.deviceType,\r\n options: {\r\n minWidth: 344,\r\n maxWidth: 568,\r\n displayTime: 4e3\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._posStringToObject()\r\n },\r\n _renderContentImpl: function() {\r\n this._message = $(\"<div>\").addClass(TOAST_MESSAGE_CLASS).text(this.option(\"message\")).appendTo(this.$content());\r\n this.setAria(\"role\", \"alert\", this._message);\r\n if (toastTypes.includes(this.option(\"type\").toLowerCase())) {\r\n this.$content().prepend($(\"<div>\").addClass(TOAST_ICON_CLASS))\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(TOAST_CLASS);\r\n this.$wrapper().addClass(TOAST_WRAPPER_CLASS);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(this.option(\"type\")).toLowerCase());\r\n this.$content().addClass(TOAST_CONTENT_CLASS);\r\n this._toggleCloseEvents(\"Swipe\");\r\n this._toggleCloseEvents(\"Click\")\r\n },\r\n _toggleCloseEvents: function(event) {\r\n var dxEvent = \"dx\" + event.toLowerCase();\r\n eventsEngine.off(this.$content(), dxEvent);\r\n this.option(\"closeOn\" + event) && eventsEngine.on(this.$content(), dxEvent, this.hide.bind(this))\r\n },\r\n _posStringToObject: function() {\r\n if (!isString(this.option(\"position\"))) {\r\n return\r\n }\r\n var verticalPosition = this.option(\"position\").split(\" \")[0];\r\n var horizontalPosition = this.option(\"position\").split(\" \")[1];\r\n this.option(\"position\", extend({\r\n boundaryOffset: DEFAULT_BOUNDARY_OFFSET\r\n }, POSITION_ALIASES[verticalPosition]));\r\n switch (horizontalPosition) {\r\n case \"center\":\r\n case \"left\":\r\n case \"right\":\r\n this.option(\"position\").at += \" \" + horizontalPosition;\r\n this.option(\"position\").my += \" \" + horizontalPosition\r\n }\r\n },\r\n _show: function() {\r\n return this.callBase.apply(this, arguments).always(function() {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = setTimeout(this.hide.bind(this), this.option(\"displayTime\"))\r\n }.bind(this))\r\n },\r\n _overlayStack: function() {\r\n return TOAST_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return this.callBase() + FIRST_Z_INDEX_OFFSET\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._hideTimeout);\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"type\":\r\n this.$content().removeClass(TOAST_CLASS_PREFIX + args.previousValue);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(args.value).toLowerCase());\r\n break;\r\n case \"message\":\r\n if (this._message) {\r\n this._message.text(args.value)\r\n }\r\n break;\r\n case \"closeOnSwipe\":\r\n this._toggleCloseEvents(\"Swipe\");\r\n break;\r\n case \"closeOnClick\":\r\n this._toggleCloseEvents(\"Click\");\r\n break;\r\n case \"displayTime\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(WIDGET_NAME, Toast);\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/toast.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toast from \"./toast/ui.toast\";\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/notify.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport Toast from \"./toast\";\r\nvar window = getWindow();\r\nvar $notify = null;\r\nvar $containers = {};\r\n\r\nfunction notify(message, typeOrStack, displayTime) {\r\n var options = isPlainObject(message) ? message : {\r\n message: message\r\n };\r\n var stack = isPlainObject(typeOrStack) ? typeOrStack : void 0;\r\n var type = isPlainObject(typeOrStack) ? void 0 : typeOrStack;\r\n var {\r\n onHidden: userOnHidden\r\n } = options;\r\n if (null !== stack && void 0 !== stack && stack.position) {\r\n var {\r\n position: position\r\n } = stack;\r\n var direction = stack.direction || getDefaultDirection(position);\r\n var containerKey = isString(position) ? position : \"\".concat(position.top, \"-\").concat(position.left, \"-\").concat(position.bottom, \"-\").concat(position.right);\r\n var {\r\n onShowing: userOnShowing\r\n } = options;\r\n var $container = getStackContainer(containerKey);\r\n setContainerClasses($container, direction);\r\n extend(options, {\r\n container: $container,\r\n _skipContentPositioning: true,\r\n onShowing: function(args) {\r\n setContainerStyles($container, direction, position);\r\n null === userOnShowing || void 0 === userOnShowing ? void 0 : userOnShowing(args)\r\n }\r\n })\r\n }\r\n extend(options, {\r\n type: type,\r\n displayTime: displayTime,\r\n onHidden: function(args) {\r\n $(args.element).remove();\r\n null === userOnHidden || void 0 === userOnHidden ? void 0 : userOnHidden(args)\r\n }\r\n });\r\n $notify = $(\"<div>\").appendTo(viewPort());\r\n new Toast($notify, options).show()\r\n}\r\nvar getDefaultDirection = position => isString(position) && position.includes(\"top\") ? \"down-push\" : \"up-push\";\r\nvar createStackContainer = key => {\r\n var $container = $(\"<div>\").appendTo(viewPort());\r\n $containers[key] = $container;\r\n return $container\r\n};\r\nvar getStackContainer = key => {\r\n var $container = $containers[key];\r\n return $container ? $container : createStackContainer(key)\r\n};\r\nvar setContainerClasses = (container, direction) => {\r\n var containerClasses = \"dx-toast-stack dx-toast-stack-\".concat(direction, \"-direction\");\r\n container.removeAttr(\"class\").addClass(containerClasses)\r\n};\r\nvar setContainerStyles = (container, direction, position) => {\r\n var {\r\n offsetWidth: toastWidth,\r\n offsetHeight: toastHeight\r\n } = container.children().first().get(0);\r\n var dimensions = {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: window.innerHeight,\r\n windowWidth: window.innerWidth\r\n };\r\n var coordinates = isString(position) ? getCoordinatesByAlias(position, dimensions) : position;\r\n var styles = getPositionStylesByCoordinates(direction, coordinates, dimensions);\r\n container.css(styles)\r\n};\r\nvar getCoordinatesByAlias = (alias, _ref) => {\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = _ref;\r\n switch (alias) {\r\n case \"top left\":\r\n return {\r\n top: 10, left: 10\r\n };\r\n case \"top right\":\r\n return {\r\n top: 10, right: 10\r\n };\r\n case \"bottom left\":\r\n return {\r\n bottom: 10, left: 10\r\n };\r\n case \"bottom right\":\r\n return {\r\n bottom: 10, right: 10\r\n };\r\n case \"top center\":\r\n return {\r\n top: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"left center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: 10\r\n };\r\n case \"right center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), right: 10\r\n };\r\n case \"center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"bottom center\":\r\n default:\r\n return {\r\n bottom: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n }\r\n }\r\n};\r\nvar getPositionStylesByCoordinates = (direction, coordinates, dimensions) => {\r\n var _coordinates$bottom, _coordinates$left, _coordinates$right, _coordinates$top, _coordinates$left2, _coordinates$right2, _coordinates$right3, _coordinates$top2, _coordinates$bottom2, _coordinates$left3, _coordinates$top3, _coordinates$bottom3;\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = dimensions;\r\n switch (direction.replace(/-push|-stack/g, \"\")) {\r\n case \"up\":\r\n return {\r\n bottom: null !== (_coordinates$bottom = coordinates.bottom) && void 0 !== _coordinates$bottom ? _coordinates$bottom : windowHeight - toastHeight - coordinates.top, top: \"\", left: null !== (_coordinates$left = coordinates.left) && void 0 !== _coordinates$left ? _coordinates$left : \"\", right: null !== (_coordinates$right = coordinates.right) && void 0 !== _coordinates$right ? _coordinates$right : \"\"\r\n };\r\n case \"down\":\r\n return {\r\n top: null !== (_coordinates$top = coordinates.top) && void 0 !== _coordinates$top ? _coordinates$top : windowHeight - toastHeight - coordinates.bottom, bottom: \"\", left: null !== (_coordinates$left2 = coordinates.left) && void 0 !== _coordinates$left2 ? _coordinates$left2 : \"\", right: null !== (_coordinates$right2 = coordinates.right) && void 0 !== _coordinates$right2 ? _coordinates$right2 : \"\"\r\n };\r\n case \"left\":\r\n return {\r\n right: null !== (_coordinates$right3 = coordinates.right) && void 0 !== _coordinates$right3 ? _coordinates$right3 : windowWidth - toastWidth - coordinates.left, left: \"\", top: null !== (_coordinates$top2 = coordinates.top) && void 0 !== _coordinates$top2 ? _coordinates$top2 : \"\", bottom: null !== (_coordinates$bottom2 = coordinates.bottom) && void 0 !== _coordinates$bottom2 ? _coordinates$bottom2 : \"\"\r\n };\r\n case \"right\":\r\n return {\r\n left: null !== (_coordinates$left3 = coordinates.left) && void 0 !== _coordinates$left3 ? _coordinates$left3 : windowWidth - toastWidth - coordinates.right, right: \"\", top: null !== (_coordinates$top3 = coordinates.top) && void 0 !== _coordinates$top3 ? _coordinates$top3 : \"\", bottom: null !== (_coordinates$bottom3 = coordinates.bottom) && void 0 !== _coordinates$bottom3 ? _coordinates$bottom3 : \"\"\r\n }\r\n }\r\n};\r\nexport default notify;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.common.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport var whenSome = function(arg, onSuccess, onError) {\r\n onSuccess = onSuccess || noop;\r\n onError = onError || noop;\r\n if (!Array.isArray(arg)) {\r\n arg = [arg]\r\n }\r\n var deferreds = arg.map((item, index) => when(item).then(result => {\r\n isFunction(onSuccess) && onSuccess({\r\n item: item,\r\n index: index,\r\n result: result\r\n });\r\n return result\r\n }, error => {\r\n if (!error) {\r\n error = {}\r\n }\r\n error.index = index;\r\n isFunction(onError) && onError(error);\r\n return (new Deferred).resolve().promise()\r\n }));\r\n return when.apply(null, deferreds)\r\n};\r\nexport var getDisplayFileSize = function(byteSize) {\r\n var sizesTitles = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n var index = 0;\r\n var displaySize = byteSize;\r\n while (displaySize >= 1024 && index <= sizesTitles.length - 1) {\r\n displaySize /= 1024;\r\n index++\r\n }\r\n displaySize = Math.round(10 * displaySize) / 10;\r\n return \"\".concat(displaySize, \" \").concat(sizesTitles[index])\r\n};\r\nexport var extendAttributes = function(targetObject, sourceObject, objectKeysArray) {\r\n objectKeysArray.forEach(objectKey => {\r\n extend(true, targetObject, isDefined(sourceObject[objectKey]) ? {\r\n [objectKey]: sourceObject[objectKey]\r\n } : {})\r\n });\r\n return targetObject\r\n};\r\nexport var findItemsByKeys = (itemInfos, keys) => {\r\n var itemMap = {};\r\n keys.forEach(key => {\r\n itemMap[key] = null\r\n });\r\n itemInfos.forEach(itemInfo => {\r\n var key = itemInfo.fileItem.key;\r\n if (Object.prototype.hasOwnProperty.call(itemMap, key)) {\r\n itemMap[key] = itemInfo\r\n }\r\n });\r\n var result = [];\r\n keys.forEach(key => {\r\n var itemInfo = itemMap[key];\r\n if (itemInfo) {\r\n result.push(itemInfo)\r\n }\r\n });\r\n return result\r\n};\r\nexport var getMapFromObject = function(object) {\r\n var keys = Object.keys(object);\r\n var values = [];\r\n keys.forEach(key => values.push(object[key]));\r\n return {\r\n keys: keys,\r\n values: values\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/file_management/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nexport var PATH_SEPARATOR = \"/\";\r\nexport var getFileExtension = path => {\r\n var index = path.lastIndexOf(\".\");\r\n return -1 !== index ? path.substr(index) : \"\"\r\n};\r\nexport var getName = path => {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return -1 !== index ? path.substr(index + PATH_SEPARATOR.length) : path\r\n};\r\nexport var getParentPath = path => {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return -1 !== index ? path.substr(0, index) : \"\"\r\n};\r\nexport var getPathParts = (path, includeFullPath) => {\r\n if (!path || \"/\" === path) {\r\n return []\r\n }\r\n var result = [];\r\n var pathPart = \"\";\r\n for (var i = 0; i < path.length; i++) {\r\n var char = path.charAt(i);\r\n if (char === PATH_SEPARATOR) {\r\n var nextChar = path.charAt(i + 1);\r\n if (nextChar !== PATH_SEPARATOR) {\r\n if (pathPart) {\r\n result.push(pathPart);\r\n pathPart = \"\"\r\n }\r\n char = nextChar\r\n }\r\n i++\r\n }\r\n pathPart += char\r\n }\r\n if (pathPart) {\r\n result.push(pathPart)\r\n }\r\n if (includeFullPath) {\r\n for (var _i = 0; _i < result.length; _i++) {\r\n result[_i] = pathCombine(0 === _i ? \"\" : result[_i - 1], getEscapedFileName(result[_i]))\r\n }\r\n }\r\n return result\r\n};\r\nexport var getEscapedFileName = function(fileName) {\r\n return fileName.replace(/\\/{1,1}/g, \"//\")\r\n};\r\nexport var pathCombine = function() {\r\n var result = \"\";\r\n each(arguments, (_, arg) => {\r\n if (arg) {\r\n if (result) {\r\n result += PATH_SEPARATOR\r\n }\r\n result += arg\r\n }\r\n });\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/file_management/file_system_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n pathCombine,\r\n getFileExtension,\r\n getPathParts,\r\n getName,\r\n getEscapedFileName,\r\n PATH_SEPARATOR\r\n} from \"./utils\";\r\nclass FileSystemItem {\r\n constructor() {\r\n var ctor = isString(arguments[0]) ? this._publicCtor : this._internalCtor;\r\n ctor.apply(this, arguments)\r\n }\r\n _internalCtor(pathInfo, name, isDirectory, key) {\r\n this.name = name || \"\";\r\n this.pathInfo = pathInfo && [...pathInfo] || [];\r\n this.parentPath = this._getPathByPathInfo(this.pathInfo);\r\n this.relativeName = pathCombine(this.parentPath, name);\r\n this.key = key || this._getPathByPathInfo(this.getFullPathInfo(), true);\r\n this.path = pathCombine(this.parentPath, name);\r\n this.pathKeys = this.pathInfo.map(_ref => {\r\n var {\r\n key: key\r\n } = _ref;\r\n return key\r\n });\r\n if (!this.isRoot()) {\r\n this.pathKeys.push(this.key)\r\n }\r\n this._initialize(isDirectory)\r\n }\r\n _publicCtor(path, isDirectory, pathKeys) {\r\n this.path = path || \"\";\r\n this.pathKeys = pathKeys || [];\r\n var pathInfo = [];\r\n var parts = getPathParts(path, true);\r\n for (var i = 0; i < parts.length - 1; i++) {\r\n var part = parts[i];\r\n var pathInfoPart = {\r\n key: this.pathKeys[i] || part,\r\n name: getName(part)\r\n };\r\n pathInfo.push(pathInfoPart)\r\n }\r\n this.pathInfo = pathInfo;\r\n this.relativeName = path;\r\n this.name = getName(path);\r\n this.key = this.pathKeys.length ? this.pathKeys[this.pathKeys.length - 1] : path;\r\n this.parentPath = parts.length > 1 ? parts[parts.length - 2] : \"\";\r\n this._initialize(isDirectory)\r\n }\r\n _initialize(isDirectory) {\r\n this.isDirectory = !!isDirectory;\r\n this.size = 0;\r\n this.dateModified = new Date;\r\n this.thumbnail = \"\";\r\n this.tooltipText = \"\"\r\n }\r\n getFullPathInfo() {\r\n var pathInfo = [...this.pathInfo];\r\n if (!this.isRoot()) {\r\n pathInfo.push({\r\n key: this.key,\r\n name: this.name\r\n })\r\n }\r\n return pathInfo\r\n }\r\n isRoot() {\r\n return \"\" === this.path\r\n }\r\n getFileExtension() {\r\n return this.isDirectory ? \"\" : getFileExtension(this.name)\r\n }\r\n equals(item) {\r\n return item && this.key === item.key\r\n }\r\n createClone() {\r\n var result = new FileSystemItem(this.pathInfo, this.name, this.isDirectory, this.key);\r\n result.key = this.key;\r\n result.size = this.size;\r\n result.dateModified = this.dateModified;\r\n result.thumbnail = this.thumbnail;\r\n result.tooltipText = this.tooltipText;\r\n result.hasSubDirectories = this.hasSubDirectories;\r\n result.dataItem = this.dataItem;\r\n return result\r\n }\r\n _getPathByPathInfo(pathInfo, escape) {\r\n return pathInfo.map(info => escape ? getEscapedFileName(info.name) : info.name).join(PATH_SEPARATOR)\r\n }\r\n}\r\nexport default FileSystemItem;\r\n","/**\r\n * DevExtreme (esm/file_management/provider_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport dateSerialization from \"../core/utils/date_serialization\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport FileSystemItem from \"./file_system_item\";\r\nvar DEFAULT_FILE_UPLOAD_CHUNK_SIZE = 2e5;\r\nclass FileSystemProviderBase {\r\n constructor(options) {\r\n options = ensureDefined(options, {});\r\n this._keyGetter = compileGetter(this._getKeyExpr(options));\r\n this._nameGetter = compileGetter(this._getNameExpr(options));\r\n this._isDirGetter = compileGetter(this._getIsDirExpr(options));\r\n this._sizeGetter = compileGetter(this._getSizeExpr(options));\r\n this._dateModifiedGetter = compileGetter(this._getDateModifiedExpr(options));\r\n this._thumbnailGetter = compileGetter(options.thumbnailExpr || \"thumbnail\")\r\n }\r\n getItems(parentDirectory) {\r\n return []\r\n }\r\n renameItem(item, name) {}\r\n createDirectory(parentDirectory, name) {}\r\n deleteItems(items) {}\r\n moveItems(items, destinationDirectory) {}\r\n copyItems(items, destinationDirectory) {}\r\n uploadFileChunk(fileData, chunksInfo, destinationDirectory) {}\r\n abortFileUpload(fileData, chunksInfo, destinationDirectory) {}\r\n downloadItems(items) {}\r\n getItemsContent(items) {}\r\n getFileUploadChunkSize() {\r\n return DEFAULT_FILE_UPLOAD_CHUNK_SIZE\r\n }\r\n _convertDataObjectsToFileItems(entries, pathInfo) {\r\n var result = [];\r\n each(entries, (_, entry) => {\r\n var fileItem = this._createFileItem(entry, pathInfo);\r\n result.push(fileItem)\r\n });\r\n return result\r\n }\r\n _createFileItem(dataObj, pathInfo) {\r\n var key = this._keyGetter(dataObj);\r\n var fileItem = new FileSystemItem(pathInfo, this._nameGetter(dataObj), !!this._isDirGetter(dataObj), key);\r\n fileItem.size = this._sizeGetter(dataObj);\r\n if (void 0 === fileItem.size) {\r\n fileItem.size = 0\r\n }\r\n fileItem.dateModified = dateSerialization.deserializeDate(this._dateModifiedGetter(dataObj));\r\n if (void 0 === fileItem.dateModified) {\r\n fileItem.dateModified = new Date\r\n }\r\n if (fileItem.isDirectory) {\r\n fileItem.hasSubDirectories = this._hasSubDirs(dataObj)\r\n }\r\n if (!key) {\r\n fileItem.key = fileItem.relativeName\r\n }\r\n fileItem.thumbnail = this._thumbnailGetter(dataObj) || \"\";\r\n fileItem.dataItem = dataObj;\r\n return fileItem\r\n }\r\n _hasSubDirs(dataObj) {\r\n return true\r\n }\r\n _getKeyExpr(options) {\r\n return options.keyExpr || this._defaultKeyExpr\r\n }\r\n _defaultKeyExpr(fileItem) {\r\n if (2 === arguments.length) {\r\n fileItem.__KEY__ = arguments[1];\r\n return\r\n }\r\n return Object.prototype.hasOwnProperty.call(fileItem, \"__KEY__\") ? fileItem.__KEY__ : null\r\n }\r\n _getNameExpr(options) {\r\n return options.nameExpr || \"name\"\r\n }\r\n _getIsDirExpr(options) {\r\n return options.isDirectoryExpr || \"isDirectory\"\r\n }\r\n _getSizeExpr(options) {\r\n return options.sizeExpr || \"size\"\r\n }\r\n _getDateModifiedExpr(options) {\r\n return options.dateModifiedExpr || \"dateModified\"\r\n }\r\n _executeActionAsDeferred(action, keepResult) {\r\n var deferred = new Deferred;\r\n try {\r\n var result = action();\r\n if (isPromise(result)) {\r\n fromPromise(result).done(userResult => deferred.resolve(keepResult && userResult || void 0)).fail(error => deferred.reject(error))\r\n } else {\r\n deferred.resolve(keepResult && result || void 0)\r\n }\r\n } catch (error) {\r\n return deferred.reject(error)\r\n }\r\n return deferred.promise()\r\n }\r\n}\r\nexport default FileSystemProviderBase;\r\n","/**\r\n * DevExtreme (esm/file_management/error.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nclass FileSystemError {\r\n constructor(errorCode, fileSystemItem, errorText) {\r\n this.errorCode = errorCode;\r\n this.fileSystemItem = fileSystemItem;\r\n this.errorText = errorText\r\n }\r\n}\r\nexport default FileSystemError;\r\n","/**\r\n * DevExtreme (esm/file_management/error_codes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ErrorCode = {\r\n NoAccess: 0,\r\n FileExists: 1,\r\n FileNotFound: 2,\r\n DirectoryExists: 3,\r\n DirectoryNotFound: 4,\r\n WrongFileExtension: 5,\r\n MaxFileSizeExceeded: 6,\r\n InvalidSymbols: 7,\r\n Other: 32767\r\n};\r\nexport default ErrorCode;\r\n","/**\r\n * DevExtreme (esm/file_management/object_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../core/utils/data\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n errors\r\n} from \"../data/errors\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n fileSaver\r\n} from \"../exporter/file_saver\";\r\nimport Errors from \"../ui/widget/ui.errors\";\r\nimport JSZip from \"jszip\";\r\nimport FileSystemProviderBase from \"./provider_base\";\r\nimport FileSystemError from \"./error\";\r\nimport ErrorCode from \"./error_codes\";\r\nimport {\r\n pathCombine\r\n} from \"./utils\";\r\nvar window = getWindow();\r\nclass ObjectFileSystemProvider extends FileSystemProviderBase {\r\n constructor(options) {\r\n options = ensureDefined(options, {});\r\n super(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n var itemsExpr = options.itemsExpr || \"items\";\r\n this._subFileItemsGetter = compileGetter(itemsExpr);\r\n this._subFileItemsSetter = this._getSetter(itemsExpr);\r\n var contentExpr = options.contentExpr || \"content\";\r\n this._contentGetter = compileGetter(contentExpr);\r\n this._contentSetter = this._getSetter(contentExpr);\r\n var nameExpr = this._getNameExpr(options);\r\n this._nameSetter = this._getSetter(nameExpr);\r\n var isDirExpr = this._getIsDirExpr(options);\r\n this._getIsDirSetter = this._getSetter(isDirExpr);\r\n var keyExpr = this._getKeyExpr(options);\r\n this._keySetter = this._getSetter(keyExpr);\r\n var sizeExpr = this._getSizeExpr(options);\r\n this._sizeSetter = this._getSetter(sizeExpr);\r\n var dateModifiedExpr = this._getDateModifiedExpr(options);\r\n this._dateModifiedSetter = this._getSetter(dateModifiedExpr);\r\n this._data = initialArray || []\r\n }\r\n getItems(parentDir) {\r\n return this._executeActionAsDeferred(() => this._getItems(parentDir), true)\r\n }\r\n renameItem(item, name) {\r\n return this._executeActionAsDeferred(() => this._renameItemCore(item, name))\r\n }\r\n _renameItemCore(item, name) {\r\n if (!item) {\r\n return\r\n }\r\n var dataItem = this._findDataObject(item);\r\n this._nameSetter(dataItem, name);\r\n item.name = name;\r\n item.key = this._ensureDataObjectKey(dataItem)\r\n }\r\n createDirectory(parentDir, name) {\r\n return this._executeActionAsDeferred(() => {\r\n this._validateDirectoryExists(parentDir);\r\n this._createDataObject(parentDir, name, true)\r\n })\r\n }\r\n deleteItems(items) {\r\n return items.map(item => this._executeActionAsDeferred(() => this._deleteItem(item)))\r\n }\r\n moveItems(items, destinationDir) {\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(item => this._executeActionAsDeferred(() => {\r\n this._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = this._findDataObject(item);\r\n this._deleteItem(item);\r\n array.push(dataItem)\r\n }));\r\n return deferreds\r\n }\r\n copyItems(items, destinationDir) {\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(item => this._executeActionAsDeferred(() => {\r\n this._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = this._findDataObject(item);\r\n var copiedItem = this._createCopy(dataItem);\r\n array.push(copiedItem)\r\n }));\r\n return deferreds\r\n }\r\n uploadFileChunk(fileData, chunksInfo, destinationDirectory) {\r\n if (chunksInfo.chunkIndex > 0) {\r\n return chunksInfo.customData.deferred\r\n }\r\n this._validateDirectoryExists(destinationDirectory);\r\n var deferred = chunksInfo.customData.deferred = new Deferred;\r\n var reader = this._createFileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = () => {\r\n var content = reader.result.split(\",\")[1];\r\n var dataObj = this._createDataObject(destinationDirectory, fileData.name, false);\r\n this._sizeSetter(dataObj, fileData.size);\r\n this._dateModifiedSetter(dataObj, fileData.lastModifiedDate);\r\n this._contentSetter(dataObj, content);\r\n deferred.resolve()\r\n };\r\n reader.onerror = error => deferred.reject(error);\r\n return deferred\r\n }\r\n downloadItems(items) {\r\n if (1 === items.length) {\r\n this._downloadSingleFile(items[0])\r\n } else {\r\n this._downloadMultipleFiles(items)\r\n }\r\n }\r\n _downloadSingleFile(file) {\r\n var content = this._getFileContent(file);\r\n var byteString = window.atob(content);\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var array = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n array[i] = byteString.charCodeAt(i)\r\n }\r\n var blob = new window.Blob([arrayBuffer], {\r\n type: \"application/octet-stream\"\r\n });\r\n fileSaver.saveAs(file.name, null, blob)\r\n }\r\n _downloadMultipleFiles(files) {\r\n var jsZip = getJSZip();\r\n var zip = new jsZip;\r\n files.forEach(file => zip.file(file.name, this._getFileContent(file), {\r\n base64: true\r\n }));\r\n var options = {\r\n type: \"blob\",\r\n compression: \"DEFLATE\",\r\n mimeType: \"application/zip\"\r\n };\r\n var deferred = new Deferred;\r\n if (zip.generateAsync) {\r\n zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(zip.generate(options))\r\n }\r\n deferred.done(blob => fileSaver.saveAs(\"files.zip\", null, blob))\r\n }\r\n _getFileContent(file) {\r\n var dataItem = this._findDataObject(file);\r\n return this._contentGetter(dataItem) || \"\"\r\n }\r\n _validateDirectoryExists(directoryInfo) {\r\n if (!this._isFileItemExists(directoryInfo) || this._isDirGetter(directoryInfo.fileItem)) {\r\n throw new FileSystemError(ErrorCode.DirectoryNotFound, directoryInfo)\r\n }\r\n }\r\n _checkAbilityToMoveOrCopyItem(item, destinationDir) {\r\n var dataItem = this._findDataObject(item);\r\n var itemKey = this._getKeyFromDataObject(dataItem, item.parentPath);\r\n var pathInfo = destinationDir.getFullPathInfo();\r\n var currentPath = \"\";\r\n pathInfo.forEach(info => {\r\n currentPath = pathCombine(currentPath, info.name);\r\n var pathKey = this._getDataObjectKey(info.key, currentPath);\r\n if (pathKey === itemKey) {\r\n throw new FileSystemError(ErrorCode.Other, item)\r\n }\r\n })\r\n }\r\n _createDataObject(parentDir, name, isDirectory) {\r\n var dataObj = {};\r\n this._nameSetter(dataObj, name);\r\n this._getIsDirSetter(dataObj, isDirectory);\r\n this._keySetter(dataObj, String(new Guid));\r\n var parentDataItem = this._findDataObject(parentDir);\r\n var array = this._getDirectoryDataItems(parentDataItem);\r\n array.push(dataObj);\r\n return dataObj\r\n }\r\n _createCopy(dataObj) {\r\n var copyObj = {};\r\n this._nameSetter(copyObj, this._nameGetter(dataObj));\r\n this._getIsDirSetter(copyObj, this._isDirGetter(dataObj));\r\n var items = this._subFileItemsGetter(dataObj);\r\n if (Array.isArray(items)) {\r\n var itemsCopy = [];\r\n items.forEach(childItem => {\r\n var childCopy = this._createCopy(childItem);\r\n itemsCopy.push(childCopy)\r\n });\r\n this._subFileItemsSetter(copyObj, itemsCopy)\r\n }\r\n return copyObj\r\n }\r\n _deleteItem(fileItem) {\r\n var dataItem = this._findDataObject(fileItem);\r\n var parentDirDataObj = this._findFileItemObj(fileItem.pathInfo);\r\n var array = this._getDirectoryDataItems(parentDirDataObj);\r\n var index = array.indexOf(dataItem);\r\n array.splice(index, 1)\r\n }\r\n _getDirectoryDataItems(directoryDataObj) {\r\n if (!directoryDataObj) {\r\n return this._data\r\n }\r\n var dataItems = this._subFileItemsGetter(directoryDataObj);\r\n if (!Array.isArray(dataItems)) {\r\n dataItems = [];\r\n this._subFileItemsSetter(directoryDataObj, dataItems)\r\n }\r\n return dataItems\r\n }\r\n _getItems(parentDir) {\r\n this._validateDirectoryExists(parentDir);\r\n var pathInfo = parentDir.getFullPathInfo();\r\n var parentDirKey = pathInfo && pathInfo.length > 0 ? pathInfo[pathInfo.length - 1].key : null;\r\n var dirFileObjects = this._data;\r\n if (parentDirKey) {\r\n var directoryEntry = this._findFileItemObj(pathInfo);\r\n dirFileObjects = directoryEntry && this._subFileItemsGetter(directoryEntry) || []\r\n }\r\n this._ensureKeysForDuplicateNameItems(dirFileObjects);\r\n return this._convertDataObjectsToFileItems(dirFileObjects, pathInfo)\r\n }\r\n _ensureKeysForDuplicateNameItems(dataObjects) {\r\n var names = {};\r\n dataObjects.forEach(obj => {\r\n var name = this._nameGetter(obj);\r\n if (names[name]) {\r\n this._ensureDataObjectKey(obj)\r\n } else {\r\n names[name] = true\r\n }\r\n })\r\n }\r\n _findDataObject(item) {\r\n if (item.isRoot()) {\r\n return null\r\n }\r\n var result = this._findFileItemObj(item.getFullPathInfo());\r\n if (!result) {\r\n var errorCode = item.isDirectory ? ErrorCode.DirectoryNotFound : ErrorCode.FileNotFound;\r\n throw new FileSystemError(errorCode, item)\r\n }\r\n return result\r\n }\r\n _findFileItemObj(pathInfo) {\r\n var _this = this;\r\n if (!Array.isArray(pathInfo)) {\r\n pathInfo = []\r\n }\r\n var currentPath = \"\";\r\n var fileItemObj = null;\r\n var fileItemObjects = this._data;\r\n var _loop = function(i) {\r\n fileItemObj = fileItemObjects.find(item => {\r\n var hasCorrectFileItemType = _this._isDirGetter(item) || i === pathInfo.length - 1;\r\n return _this._getKeyFromDataObject(item, currentPath) === pathInfo[i].key && _this._nameGetter(item) === pathInfo[i].name && hasCorrectFileItemType\r\n });\r\n if (fileItemObj) {\r\n currentPath = pathCombine(currentPath, _this._nameGetter(fileItemObj));\r\n fileItemObjects = _this._subFileItemsGetter(fileItemObj)\r\n }\r\n };\r\n for (var i = 0; i < pathInfo.length && (0 === i || fileItemObj); i++) {\r\n _loop(i)\r\n }\r\n return fileItemObj\r\n }\r\n _getKeyFromDataObject(dataObj, defaultKeyPrefix) {\r\n var key = this._keyGetter(dataObj);\r\n var relativeName = pathCombine(defaultKeyPrefix, this._nameGetter(dataObj));\r\n return this._getDataObjectKey(key, relativeName)\r\n }\r\n _getDataObjectKey(key, relativeName) {\r\n return key ? key : relativeName\r\n }\r\n _ensureDataObjectKey(dataObj) {\r\n var key = this._keyGetter(dataObj);\r\n if (!key) {\r\n key = String(new Guid);\r\n this._keySetter(dataObj, key)\r\n }\r\n return key\r\n }\r\n _hasSubDirs(dataObj) {\r\n var subItems = ensureDefined(this._subFileItemsGetter(dataObj), []);\r\n if (!Array.isArray(subItems)) {\r\n return true\r\n }\r\n for (var i = 0; i < subItems.length; i++) {\r\n if (true === this._isDirGetter(subItems[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _getSetter(expr) {\r\n return isFunction(expr) ? expr : compileSetter(expr)\r\n }\r\n _isFileItemExists(fileItem) {\r\n return fileItem.isDirectory && fileItem.isRoot() || !!this._findFileItemObj(fileItem.getFullPathInfo())\r\n }\r\n _createFileReader() {\r\n return new window.FileReader\r\n }\r\n}\r\n\r\nfunction getJSZip() {\r\n if (!JSZip) {\r\n throw Errors.Error(\"E1041\", \"JSZip\")\r\n }\r\n return JSZip\r\n}\r\nexport default ObjectFileSystemProvider;\r\n","/**\r\n * DevExtreme (esm/file_management/remote_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport ajax from \"../core/utils/ajax\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport FileSystemProviderBase from \"./provider_base\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar window = getWindow();\r\nvar FILE_CHUNK_BLOB_NAME = \"chunk\";\r\nvar FILE_SYSTEM_COMMNAD = {\r\n GET_DIR_CONTENTS: \"GetDirContents\",\r\n CREATE_DIR: \"CreateDir\",\r\n RENAME: \"Rename\",\r\n MOVE: \"Move\",\r\n COPY: \"Copy\",\r\n REMOVE: \"Remove\",\r\n UPLOAD_CHUNK: \"UploadChunk\",\r\n ABORT_UPLOAD: \"AbortUpload\",\r\n DOWLOAD: \"Download\"\r\n};\r\nvar REQUEST_METHOD = {\r\n GET: \"GET\",\r\n POST: \"POST\"\r\n};\r\nclass RemoteFileSystemProvider extends FileSystemProviderBase {\r\n constructor(options) {\r\n options = ensureDefined(options, {});\r\n super(options);\r\n this._endpointUrl = options.endpointUrl;\r\n this._beforeAjaxSend = options.beforeAjaxSend;\r\n this._beforeSubmit = options.beforeSubmit;\r\n this._requestHeaders = options.requestHeaders;\r\n this._hasSubDirsGetter = compileGetter(options.hasSubDirectoriesExpr || \"hasSubDirectories\")\r\n }\r\n getItems(parentDir) {\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._executeRequest(FILE_SYSTEM_COMMNAD.GET_DIR_CONTENTS, {\r\n pathInfo: pathInfo\r\n }).then(result => this._convertDataObjectsToFileItems(result.result, pathInfo))\r\n }\r\n renameItem(item, name) {\r\n return this._executeRequest(FILE_SYSTEM_COMMNAD.RENAME, {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory,\r\n name: name\r\n })\r\n }\r\n createDirectory(parentDir, name) {\r\n return this._executeRequest(FILE_SYSTEM_COMMNAD.CREATE_DIR, {\r\n pathInfo: parentDir.getFullPathInfo(),\r\n name: name\r\n })\r\n }\r\n deleteItems(items) {\r\n return items.map(item => this._executeRequest(FILE_SYSTEM_COMMNAD.REMOVE, {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory\r\n }))\r\n }\r\n moveItems(items, destinationDirectory) {\r\n return items.map(item => this._executeRequest(FILE_SYSTEM_COMMNAD.MOVE, {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationDirectory.getFullPathInfo()\r\n }))\r\n }\r\n copyItems(items, destinationFolder) {\r\n return items.map(item => this._executeRequest(FILE_SYSTEM_COMMNAD.COPY, {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationFolder.getFullPathInfo()\r\n }))\r\n }\r\n uploadFileChunk(fileData, chunksInfo, destinationDirectory) {\r\n if (0 === chunksInfo.chunkIndex) {\r\n chunksInfo.customData.uploadId = new Guid\r\n }\r\n var args = {\r\n destinationPathInfo: destinationDirectory.getFullPathInfo(),\r\n chunkMetadata: JSON.stringify({\r\n UploadId: chunksInfo.customData.uploadId,\r\n FileName: fileData.name,\r\n Index: chunksInfo.chunkIndex,\r\n TotalCount: chunksInfo.chunkCount,\r\n FileSize: fileData.size\r\n })\r\n };\r\n var ajaxSettings = {\r\n url: this._endpointUrl,\r\n headers: this._requestHeaders || {},\r\n method: REQUEST_METHOD.POST,\r\n dataType: \"json\",\r\n data: {\r\n [FILE_CHUNK_BLOB_NAME]: chunksInfo.chunkBlob,\r\n arguments: JSON.stringify(args),\r\n command: FILE_SYSTEM_COMMNAD.UPLOAD_CHUNK\r\n },\r\n upload: {\r\n onprogress: noop,\r\n onloadstart: noop,\r\n onabort: noop\r\n },\r\n xhrFields: {},\r\n cache: false\r\n };\r\n var deferred = new Deferred;\r\n this._beforeSendInternal(ajaxSettings);\r\n ajax.sendRequest(ajaxSettings).done(result => {\r\n !result.success && deferred.reject(result) || deferred.resolve()\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n abortFileUpload(fileData, chunksInfo, destinationDirectory) {\r\n return this._executeRequest(FILE_SYSTEM_COMMNAD.ABORT_UPLOAD, {\r\n uploadId: chunksInfo.customData.uploadId\r\n })\r\n }\r\n downloadItems(items) {\r\n var args = this._getDownloadArgs(items);\r\n var $form = $(\"<form>\").css({\r\n display: \"none\"\r\n }).attr({\r\n method: REQUEST_METHOD.POST,\r\n action: args.url\r\n });\r\n var formDataEntries = {\r\n command: args.command,\r\n arguments: args.arguments\r\n };\r\n this._beforeSubmitInternal(formDataEntries);\r\n this._appendFormDataInputsToForm(formDataEntries, $form);\r\n $form.appendTo(\"body\");\r\n eventsEngine.trigger($form, \"submit\");\r\n setTimeout(() => $form.remove())\r\n }\r\n getItemsContent(items) {\r\n var args = this._getDownloadArgs(items);\r\n var ajaxSettings = {\r\n url: args.url,\r\n headers: this._requestHeaders || {},\r\n method: REQUEST_METHOD.POST,\r\n responseType: \"arraybuffer\",\r\n data: {\r\n command: args.command,\r\n arguments: args.arguments\r\n },\r\n upload: {\r\n onprogress: noop,\r\n onloadstart: noop,\r\n onabort: noop\r\n },\r\n xhrFields: {},\r\n cache: false\r\n };\r\n this._beforeSendInternal(ajaxSettings);\r\n return ajax.sendRequest(ajaxSettings)\r\n }\r\n _getDownloadArgs(items) {\r\n var pathInfoList = items.map(item => item.getFullPathInfo());\r\n var args = {\r\n pathInfoList: pathInfoList\r\n };\r\n var argsStr = JSON.stringify(args);\r\n return {\r\n url: this._endpointUrl,\r\n arguments: argsStr,\r\n command: FILE_SYSTEM_COMMNAD.DOWLOAD\r\n }\r\n }\r\n _getItemsIds(items) {\r\n return items.map(it => it.relativeName)\r\n }\r\n _executeRequest(command, args) {\r\n var method = command === FILE_SYSTEM_COMMNAD.GET_DIR_CONTENTS ? REQUEST_METHOD.GET : REQUEST_METHOD.POST;\r\n var deferred = new Deferred;\r\n var ajaxSettings = {\r\n url: this._getEndpointUrl(command, args),\r\n headers: this._requestHeaders || {},\r\n method: method,\r\n dataType: \"json\",\r\n data: {},\r\n xhrFields: {},\r\n cache: false\r\n };\r\n this._beforeSendInternal(ajaxSettings);\r\n ajax.sendRequest(ajaxSettings).then(result => {\r\n !result.success && deferred.reject(result) || deferred.resolve(result)\r\n }, e => deferred.reject(e));\r\n return deferred.promise()\r\n }\r\n _beforeSubmitInternal(formDataEntries) {\r\n if (isFunction(this._beforeSubmit)) {\r\n this._beforeSubmit({\r\n formData: formDataEntries\r\n })\r\n }\r\n }\r\n _beforeSendInternal(ajaxSettings) {\r\n if (isFunction(this._beforeAjaxSend)) {\r\n var ajaxArguments = {\r\n headers: ajaxSettings.headers,\r\n formData: ajaxSettings.data,\r\n xhrFields: ajaxSettings.xhrFields\r\n };\r\n this._beforeAjaxSend(ajaxArguments);\r\n ajaxSettings.headers = ajaxArguments.headers;\r\n ajaxSettings.data = ajaxArguments.formData;\r\n ajaxSettings.xhrFields = ajaxArguments.xhrFields\r\n }\r\n if (isEmptyObject(ajaxSettings.data)) {\r\n delete ajaxSettings.data\r\n } else if (ajaxSettings.responseType || ajaxSettings.upload) {\r\n ajaxSettings.data = this._createFormData(ajaxSettings.data)\r\n }\r\n }\r\n _createFormData(formDataEntries) {\r\n var formData = new window.FormData;\r\n for (var entryName in formDataEntries) {\r\n if (Object.prototype.hasOwnProperty.call(formDataEntries, entryName) && isDefined(formDataEntries[entryName])) {\r\n formData.append(entryName, formDataEntries[entryName])\r\n }\r\n }\r\n return formData\r\n }\r\n _appendFormDataInputsToForm(formDataEntries, formElement) {\r\n for (var entryName in formDataEntries) {\r\n if (Object.prototype.hasOwnProperty.call(formDataEntries, entryName) && isDefined(formDataEntries[entryName])) {\r\n $(\"<input>\").attr({\r\n type: \"hidden\",\r\n name: entryName,\r\n value: formDataEntries[entryName]\r\n }).appendTo(formElement)\r\n }\r\n }\r\n }\r\n _getEndpointUrl(command, args) {\r\n var queryString = this._getQueryString({\r\n command: command,\r\n arguments: JSON.stringify(args)\r\n });\r\n var separator = this._endpointUrl && this._endpointUrl.indexOf(\"?\") > 0 ? \"&\" : \"?\";\r\n return this._endpointUrl + separator + queryString\r\n }\r\n _getQueryString(params) {\r\n var pairs = [];\r\n var keys = Object.keys(params);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var value = params[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n this._processQueryStringArrayParam(key, value, pairs)\r\n } else {\r\n var pair = this._getQueryStringPair(key, value);\r\n pairs.push(pair)\r\n }\r\n }\r\n return pairs.join(\"&\")\r\n }\r\n _processQueryStringArrayParam(key, array, pairs) {\r\n each(array, (_, item) => {\r\n var pair = this._getQueryStringPair(key, item);\r\n pairs.push(pair)\r\n })\r\n }\r\n _getQueryStringPair(key, value) {\r\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value)\r\n }\r\n _hasSubDirs(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n }\r\n _getKeyExpr(options) {\r\n return options.keyExpr || \"key\"\r\n }\r\n}\r\nexport default RemoteFileSystemProvider;\r\n","/**\r\n * DevExtreme (esm/file_management/custom_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport FileSystemProviderBase from \"./provider_base\";\r\nclass CustomFileSystemProvider extends FileSystemProviderBase {\r\n constructor(options) {\r\n options = ensureDefined(options, {});\r\n super(options);\r\n this._hasSubDirsGetter = compileGetter(options.hasSubDirectoriesExpr || \"hasSubDirectories\");\r\n this._getItemsFunction = this._ensureFunction(options.getItems, () => []);\r\n this._renameItemFunction = this._ensureFunction(options.renameItem);\r\n this._createDirectoryFunction = this._ensureFunction(options.createDirectory);\r\n this._deleteItemFunction = this._ensureFunction(options.deleteItem);\r\n this._moveItemFunction = this._ensureFunction(options.moveItem);\r\n this._copyItemFunction = this._ensureFunction(options.copyItem);\r\n this._uploadFileChunkFunction = this._ensureFunction(options.uploadFileChunk);\r\n this._abortFileUploadFunction = this._ensureFunction(options.abortFileUpload);\r\n this._downloadItemsFunction = this._ensureFunction(options.downloadItems);\r\n this._getItemsContentFunction = this._ensureFunction(options.getItemsContent)\r\n }\r\n getItems(parentDir) {\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._executeActionAsDeferred(() => this._getItemsFunction(parentDir), true).then(dataItems => this._convertDataObjectsToFileItems(dataItems, pathInfo))\r\n }\r\n renameItem(item, name) {\r\n return this._executeActionAsDeferred(() => this._renameItemFunction(item, name))\r\n }\r\n createDirectory(parentDir, name) {\r\n return this._executeActionAsDeferred(() => this._createDirectoryFunction(parentDir, name))\r\n }\r\n deleteItems(items) {\r\n return items.map(item => this._executeActionAsDeferred(() => this._deleteItemFunction(item)))\r\n }\r\n moveItems(items, destinationDirectory) {\r\n return items.map(item => this._executeActionAsDeferred(() => this._moveItemFunction(item, destinationDirectory)))\r\n }\r\n copyItems(items, destinationFolder) {\r\n return items.map(item => this._executeActionAsDeferred(() => this._copyItemFunction(item, destinationFolder)))\r\n }\r\n uploadFileChunk(fileData, chunksInfo, destinationDirectory) {\r\n return this._executeActionAsDeferred(() => this._uploadFileChunkFunction(fileData, chunksInfo, destinationDirectory))\r\n }\r\n abortFileUpload(fileData, chunksInfo, destinationDirectory) {\r\n return this._executeActionAsDeferred(() => this._abortFileUploadFunction(fileData, chunksInfo, destinationDirectory))\r\n }\r\n downloadItems(items) {\r\n return this._executeActionAsDeferred(() => this._downloadItemsFunction(items))\r\n }\r\n getItemsContent(items) {\r\n return this._executeActionAsDeferred(() => this._getItemsContentFunction(items))\r\n }\r\n _hasSubDirs(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n }\r\n _getKeyExpr(options) {\r\n return options.keyExpr || \"key\"\r\n }\r\n _ensureFunction(functionObject, defaultFunction) {\r\n defaultFunction = defaultFunction || noop;\r\n return isFunction(functionObject) ? functionObject : defaultFunction\r\n }\r\n}\r\nexport default CustomFileSystemProvider;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/file_items_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport FileSystemProviderBase from \"../../file_management/provider_base\";\r\nimport FileSystemItem from \"../../file_management/file_system_item\";\r\nimport ObjectFileSystemProvider from \"../../file_management/object_provider\";\r\nimport RemoteFileSystemProvider from \"../../file_management/remote_provider\";\r\nimport CustomFileSystemProvider from \"../../file_management/custom_provider\";\r\nimport FileSystemError from \"../../file_management/error\";\r\nimport ErrorCode from \"../../file_management/error_codes\";\r\nimport {\r\n pathCombine,\r\n getEscapedFileName,\r\n getPathParts,\r\n getFileExtension\r\n} from \"../../file_management/utils\";\r\nimport {\r\n whenSome\r\n} from \"./ui.file_manager.common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isPromise\r\n} from \"../../core/utils/type\";\r\nimport Guid from \"../../core/guid\";\r\nvar DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME = \"Files\";\r\nexport var OPERATIONS = {\r\n NAVIGATION: \"navigation\",\r\n REFRESH: \"refresh\"\r\n};\r\nexport class FileItemsController {\r\n constructor(options) {\r\n options = options || {};\r\n this._options = extend({}, options);\r\n this._isInitialized = false;\r\n this._dataLoading = false;\r\n this._dataLoadingDeferred = null;\r\n this._rootDirectoryInfo = this._createRootDirectoryInfo(options.rootText);\r\n this._currentDirectoryInfo = this._rootDirectoryInfo;\r\n this._defaultIconMap = this._createDefaultIconMap();\r\n this.startSingleLoad();\r\n this._setSecurityController();\r\n this._setProvider(options.fileProvider);\r\n this._initialize()\r\n }\r\n _initialize() {\r\n var result = this._options.currentPathKeys && this._options.currentPathKeys.length ? this.setCurrentPathByKeys(this._options.currentPathKeys) : this.setCurrentPath(this._options.currentPath);\r\n var completeInitialization = () => {\r\n this._isInitialized = true;\r\n this._raiseInitialized()\r\n };\r\n if (result) {\r\n when(result).always(completeInitialization)\r\n } else {\r\n completeInitialization()\r\n }\r\n }\r\n _setSecurityController() {\r\n this._securityController = new FileSecurityController({\r\n allowedFileExtensions: this._options.allowedFileExtensions,\r\n maxFileSize: this._options.uploadMaxFileSize\r\n });\r\n this._resetState()\r\n }\r\n setAllowedFileExtensions(allowedFileExtensions) {\r\n if (isDefined(allowedFileExtensions)) {\r\n this._options.allowedFileExtensions = allowedFileExtensions\r\n }\r\n this._setSecurityController();\r\n this.refresh()\r\n }\r\n setUploadOptions(_ref) {\r\n var {\r\n maxFileSize: maxFileSize,\r\n chunkSize: chunkSize\r\n } = _ref;\r\n if (isDefined(chunkSize)) {\r\n this._options.uploadChunkSize = chunkSize\r\n }\r\n if (isDefined(maxFileSize)) {\r\n this._options.uploadMaxFileSize = maxFileSize;\r\n this._setSecurityController();\r\n this.refresh()\r\n }\r\n }\r\n _setProvider(fileProvider) {\r\n this._fileProvider = this._createFileProvider(fileProvider);\r\n this._resetState()\r\n }\r\n updateProvider(fileProvider, currentPathKeys) {\r\n if (!isDefined(currentPathKeys)) {\r\n return this._updateProviderOnly(fileProvider)\r\n }\r\n return when(this._getDirectoryByPathParts(this._rootDirectoryInfo, currentPathKeys, true)).then(newDirectory => {\r\n if (newDirectory !== this._rootDirectoryInfo) {\r\n this._resetCurrentDirectory()\r\n }\r\n this._setProvider(fileProvider)\r\n }).then(() => this.setCurrentPathByKeys(currentPathKeys))\r\n }\r\n _updateProviderOnly(fileProvider) {\r\n this._resetCurrentDirectory();\r\n this._setProvider(fileProvider);\r\n return when(this.refresh())\r\n }\r\n _createFileProvider(fileProvider) {\r\n if (!fileProvider) {\r\n fileProvider = []\r\n }\r\n if (Array.isArray(fileProvider)) {\r\n return new ObjectFileSystemProvider({\r\n data: fileProvider\r\n })\r\n }\r\n if (fileProvider instanceof FileSystemProviderBase) {\r\n return fileProvider\r\n }\r\n switch (fileProvider.type) {\r\n case \"remote\":\r\n return new RemoteFileSystemProvider(fileProvider);\r\n case \"custom\":\r\n return new CustomFileSystemProvider(fileProvider)\r\n }\r\n return new ObjectFileSystemProvider(fileProvider)\r\n }\r\n setCurrentPath(path) {\r\n var pathParts = getPathParts(path);\r\n var rawPath = pathCombine(...pathParts);\r\n if (this.getCurrentDirectory().fileItem.relativeName === rawPath) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n return this._setCurrentDirectoryByPathParts(pathParts)\r\n }\r\n setCurrentPathByKeys(pathKeys) {\r\n if (equalByValue(this.getCurrentDirectory().fileItem.pathKeys, pathKeys)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n return this._setCurrentDirectoryByPathParts(pathKeys, true)\r\n }\r\n getCurrentPath() {\r\n var currentPath = \"\";\r\n var directory = this.getCurrentDirectory();\r\n while (directory && !directory.fileItem.isRoot()) {\r\n var escapedName = getEscapedFileName(directory.fileItem.name);\r\n currentPath = pathCombine(escapedName, currentPath);\r\n directory = directory.parentDirectory\r\n }\r\n return currentPath\r\n }\r\n getCurrentPathKeys() {\r\n return this.getCurrentDirectory().fileItem.pathKeys\r\n }\r\n getCurrentDirectory() {\r\n return this._currentDirectoryInfo\r\n }\r\n setCurrentDirectory(directoryInfo, checkActuality) {\r\n if (!directoryInfo) {\r\n return\r\n }\r\n if (checkActuality) {\r\n directoryInfo = this._getActualDirectoryInfo(directoryInfo)\r\n }\r\n if (this._currentDirectoryInfo && this._currentDirectoryInfo === directoryInfo) {\r\n this._raisePathPotentiallyChanged();\r\n return\r\n }\r\n var requireRaiseSelectedDirectory = this._currentDirectoryInfo.fileItem.key !== directoryInfo.fileItem.key;\r\n this._currentDirectoryInfo = directoryInfo;\r\n if (requireRaiseSelectedDirectory && this._isInitialized) {\r\n if (!this._dataLoading) {\r\n this._raiseDataLoading(OPERATIONS.NAVIGATION)\r\n }\r\n this._raiseSelectedDirectoryChanged(directoryInfo)\r\n }\r\n }\r\n _resetCurrentDirectory() {\r\n this._currentDirectoryInfo = this._rootDirectoryInfo\r\n }\r\n getCurrentItems(onlyFiles) {\r\n return this._dataLoadingDeferred ? this._dataLoadingDeferred.then(() => this._getCurrentItemsInternal(onlyFiles)) : this._getCurrentItemsInternal(onlyFiles)\r\n }\r\n _getCurrentItemsInternal(onlyFiles) {\r\n var currentDirectory = this.getCurrentDirectory();\r\n var getItemsPromise = this.getDirectoryContents(currentDirectory);\r\n return getItemsPromise.then(items => {\r\n var separatedItems = this._separateItemsByType(items);\r\n currentDirectory.fileItem.hasSubDirectories = !!separatedItems.folders.length;\r\n return onlyFiles ? separatedItems.files : items\r\n })\r\n }\r\n getDirectories(parentDirectoryInfo, skipNavigationOnError) {\r\n return this.getDirectoryContents(parentDirectoryInfo, skipNavigationOnError).then(itemInfos => itemInfos.filter(info => info.fileItem.isDirectory))\r\n }\r\n _separateItemsByType(itemInfos) {\r\n var folders = [];\r\n var files = [];\r\n itemInfos.forEach(info => info.fileItem.isDirectory ? folders.push(info) : files.push(info));\r\n return {\r\n folders: folders,\r\n files: files\r\n }\r\n }\r\n getDirectoryContents(parentDirectoryInfo, skipNavigationOnError) {\r\n if (!parentDirectoryInfo) {\r\n return (new Deferred).resolve([this._rootDirectoryInfo]).promise()\r\n }\r\n if (parentDirectoryInfo.itemsLoaded) {\r\n return (new Deferred).resolve(parentDirectoryInfo.items).promise()\r\n }\r\n if (this._singleOperationLockId && parentDirectoryInfo.itemsSingleLoadErrorId === this._singleOperationLockId) {\r\n this._changeDirectoryOnError(parentDirectoryInfo, skipNavigationOnError, true);\r\n return (new Deferred).reject().promise()\r\n }\r\n var dirKey = parentDirectoryInfo.getInternalKey();\r\n var loadItemsDeferred = this._loadedItems[dirKey];\r\n if (loadItemsDeferred) {\r\n return loadItemsDeferred\r\n }\r\n loadItemsDeferred = this._getFileItems(parentDirectoryInfo, skipNavigationOnError).then(fileItems => {\r\n fileItems = fileItems || [];\r\n parentDirectoryInfo.items = fileItems.map(fileItem => fileItem.isDirectory && this._createDirectoryInfo(fileItem, parentDirectoryInfo) || this._createFileInfo(fileItem, parentDirectoryInfo));\r\n parentDirectoryInfo.itemsLoaded = true;\r\n return parentDirectoryInfo.items\r\n }, () => {\r\n if (this._singleOperationLockId && parentDirectoryInfo.itemsSingleLoadErrorId !== this._singleOperationLockId) {\r\n parentDirectoryInfo.itemsSingleLoadErrorId = this._singleOperationLockId\r\n }\r\n return []\r\n });\r\n this._loadedItems[dirKey] = loadItemsDeferred;\r\n loadItemsDeferred.always(() => {\r\n delete this._loadedItems[dirKey]\r\n });\r\n return loadItemsDeferred\r\n }\r\n _getFileItems(parentDirectoryInfo, skipNavigationOnError) {\r\n var loadItemsDeferred = null;\r\n try {\r\n loadItemsDeferred = this._fileProvider.getItems(parentDirectoryInfo.fileItem)\r\n } catch (error) {\r\n return this._handleItemLoadError(parentDirectoryInfo, error, skipNavigationOnError)\r\n }\r\n return when(loadItemsDeferred).then(fileItems => this._securityController.getAllowedItems(fileItems), errorInfo => this._handleItemLoadError(parentDirectoryInfo, errorInfo, skipNavigationOnError))\r\n }\r\n createDirectory(parentDirectoryInfo, name) {\r\n var parentDirItem = parentDirectoryInfo.fileItem;\r\n var tempDirInfo = this._createDirInfoByName(name, parentDirectoryInfo);\r\n var actionInfo = this._createEditActionInfo(\"create\", tempDirInfo, parentDirectoryInfo);\r\n return this._processEditAction(actionInfo, args => {\r\n args.parentDirectory = parentDirItem;\r\n args.name = name;\r\n this._editingEvents.onDirectoryCreating(args)\r\n }, () => this._fileProvider.createDirectory(parentDirItem, name).done(info => {\r\n if (!parentDirItem.isRoot()) {\r\n parentDirItem.hasSubDirectories = true\r\n }\r\n return info\r\n }), () => {\r\n var args = {\r\n parentDirectory: parentDirItem,\r\n name: name\r\n };\r\n this._editingEvents.onDirectoryCreated(args)\r\n }, () => this._resetDirectoryState(parentDirectoryInfo, true))\r\n }\r\n renameItem(fileItemInfo, name) {\r\n var sourceItem = fileItemInfo.fileItem.createClone();\r\n var actionInfo = this._createEditActionInfo(\"rename\", fileItemInfo, fileItemInfo.parentDirectory, {\r\n itemNewName: name\r\n });\r\n return this._processEditAction(actionInfo, (args, itemInfo) => {\r\n if (!itemInfo.fileItem.isDirectory) {\r\n this._securityController.validateExtension(name)\r\n }\r\n args.item = sourceItem;\r\n args.newName = name;\r\n this._editingEvents.onItemRenaming(args)\r\n }, item => this._fileProvider.renameItem(item, name), () => {\r\n var args = {\r\n sourceItem: sourceItem,\r\n itemName: name\r\n };\r\n this._editingEvents.onItemRenamed(args)\r\n }, () => {\r\n var parentDirectory = this._getActualDirectoryInfo(fileItemInfo.parentDirectory);\r\n this._resetDirectoryState(parentDirectory);\r\n this.setCurrentDirectory(parentDirectory)\r\n })\r\n }\r\n moveItems(itemInfos, destinationDirectory) {\r\n var actionInfo = this._createEditActionInfo(\"move\", itemInfos, destinationDirectory);\r\n return this._processEditAction(actionInfo, (args, itemInfo) => {\r\n args.item = itemInfo.fileItem;\r\n args.destinationDirectory = destinationDirectory.fileItem;\r\n this._editingEvents.onItemMoving(args)\r\n }, item => this._fileProvider.moveItems([item], destinationDirectory.fileItem), itemInfo => {\r\n var args = {\r\n sourceItem: itemInfo.fileItem,\r\n parentDirectory: destinationDirectory.fileItem,\r\n itemName: itemInfo.fileItem.name,\r\n itemPath: pathCombine(destinationDirectory.fileItem.path, itemInfo.fileItem.name)\r\n };\r\n this._editingEvents.onItemMoved(args)\r\n }, needChangeCurrentDirectory => {\r\n itemInfos.forEach(itemInfo => this._resetDirectoryState(itemInfo.parentDirectory, true));\r\n if (needChangeCurrentDirectory) {\r\n this._resetDirectoryState(destinationDirectory);\r\n this.setCurrentPathByKeys(destinationDirectory.fileItem.pathKeys);\r\n destinationDirectory.expanded = true\r\n }\r\n })\r\n }\r\n copyItems(itemInfos, destinationDirectory) {\r\n var actionInfo = this._createEditActionInfo(\"copy\", itemInfos, destinationDirectory);\r\n return this._processEditAction(actionInfo, (args, itemInfo) => {\r\n args.item = itemInfo.fileItem;\r\n args.destinationDirectory = destinationDirectory.fileItem;\r\n this._editingEvents.onItemCopying(args)\r\n }, item => this._fileProvider.copyItems([item], destinationDirectory.fileItem), itemInfo => {\r\n var args = {\r\n sourceItem: itemInfo.fileItem,\r\n parentDirectory: destinationDirectory.fileItem,\r\n itemName: itemInfo.fileItem.name,\r\n itemPath: pathCombine(destinationDirectory.fileItem.path, itemInfo.fileItem.name)\r\n };\r\n this._editingEvents.onItemCopied(args)\r\n }, needChangeCurrentDirectory => {\r\n if (needChangeCurrentDirectory) {\r\n destinationDirectory = this._getActualDirectoryInfo(destinationDirectory);\r\n this._resetDirectoryState(destinationDirectory);\r\n this.setCurrentDirectory(destinationDirectory);\r\n destinationDirectory.expanded = true\r\n }\r\n })\r\n }\r\n deleteItems(itemInfos) {\r\n var directory = itemInfos.length > 0 ? itemInfos[0].parentDirectory : null;\r\n var actionInfo = this._createEditActionInfo(\"delete\", itemInfos, directory);\r\n return this._processEditAction(actionInfo, (args, itemInfo) => {\r\n args.item = itemInfo.fileItem;\r\n this._editingEvents.onItemDeleting(args)\r\n }, item => this._fileProvider.deleteItems([item]), itemInfo => this._editingEvents.onItemDeleted({\r\n item: itemInfo.fileItem\r\n }), () => {\r\n itemInfos.forEach(itemInfo => {\r\n var parentDir = this._getActualDirectoryInfo(itemInfo.parentDirectory);\r\n this._resetDirectoryState(parentDir);\r\n this.setCurrentDirectory(parentDir)\r\n })\r\n })\r\n }\r\n processUploadSession(sessionInfo, uploadDirectoryInfo) {\r\n var itemInfos = this._getItemInfosForUploaderFiles(sessionInfo.files, uploadDirectoryInfo);\r\n var actionInfo = this._createEditActionInfo(\"upload\", itemInfos, uploadDirectoryInfo, {\r\n sessionInfo: sessionInfo\r\n });\r\n return this._processEditAction(actionInfo, () => {}, (_, index) => sessionInfo.deferreds[index], () => {}, () => this._resetDirectoryState(uploadDirectoryInfo, true))\r\n }\r\n uploadFileChunk(fileData, chunksInfo, destinationDirectory) {\r\n var startDeferred = null;\r\n if (0 === chunksInfo.chunkIndex) {\r\n this._securityController.validateMaxFileSize(fileData.size);\r\n this._securityController.validateExtension(fileData.name);\r\n startDeferred = this._processBeforeItemEditAction(args => {\r\n args.fileData = fileData;\r\n args.destinationDirectory = destinationDirectory;\r\n this._editingEvents.onFileUploading(args)\r\n })\r\n } else {\r\n startDeferred = (new Deferred).resolve().promise()\r\n }\r\n var result = startDeferred.then(() => this._fileProvider.uploadFileChunk(fileData, chunksInfo, destinationDirectory));\r\n if (chunksInfo.chunkIndex === chunksInfo.chunkCount - 1) {\r\n result = result.done(() => {\r\n var args = {\r\n fileData: fileData,\r\n parentDirectory: destinationDirectory\r\n };\r\n this._editingEvents.onFileUploaded(args)\r\n })\r\n }\r\n return result\r\n }\r\n abortFileUpload(fileData, chunksInfo, destinationDirectory) {\r\n return when(this._fileProvider.abortFileUpload(fileData, chunksInfo, destinationDirectory))\r\n }\r\n getFileUploadChunkSize() {\r\n var chunkSize = this._options.uploadChunkSize;\r\n if (chunkSize && chunkSize > 0) {\r\n return chunkSize\r\n }\r\n return this._fileProvider.getFileUploadChunkSize()\r\n }\r\n downloadItems(itemInfos) {\r\n var deferreds = itemInfos.map(itemInfo => this._processBeforeItemEditAction(args => {\r\n args.item = itemInfo.fileItem;\r\n this._editingEvents.onItemDownloading(args)\r\n }, itemInfo));\r\n return when(...deferreds).then(() => {\r\n var items = itemInfos.map(i => i.fileItem);\r\n return when(this._getItemActionResult(this._fileProvider.downloadItems(items))).then(() => {}, errorInfo => {\r\n this._raiseDownloadItemsError(itemInfos, itemInfos[0].parentDirectory, errorInfo)\r\n })\r\n }, errorInfo => {\r\n this._raiseDownloadItemsError(itemInfos, itemInfos[0].parentDirectory, errorInfo)\r\n })\r\n }\r\n getItemContent(itemInfos) {\r\n var items = itemInfos.map(i => i.fileItem);\r\n return when(this._fileProvider.getItemsContent(items))\r\n }\r\n _handleItemLoadError(parentDirectoryInfo, errorInfo, skipNavigationOnError) {\r\n parentDirectoryInfo = this._getActualDirectoryInfo(parentDirectoryInfo);\r\n this._raiseGetItemsError(parentDirectoryInfo, errorInfo);\r\n this._changeDirectoryOnError(parentDirectoryInfo, skipNavigationOnError);\r\n return (new Deferred).reject().promise()\r\n }\r\n _raiseGetItemsError(parentDirectoryInfo, errorInfo) {\r\n var actionInfo = this._createEditActionInfo(\"getItems\", parentDirectoryInfo, parentDirectoryInfo);\r\n this._raiseEditActionStarting(actionInfo);\r\n this._raiseEditActionResultAcquired(actionInfo);\r\n this._raiseEditActionError(actionInfo, {\r\n errorCode: errorInfo.errorCode,\r\n errorText: errorInfo.errorText,\r\n fileItem: parentDirectoryInfo.fileItem,\r\n index: 0\r\n })\r\n }\r\n _raiseDownloadItemsError(targetFileInfos, directory, errorInfo) {\r\n var actionInfo = this._createEditActionInfo(\"download\", targetFileInfos, directory);\r\n var itemsLength = targetFileInfos.length;\r\n actionInfo.singleRequest = 1 === itemsLength;\r\n this._raiseEditActionStarting(actionInfo);\r\n this._raiseEditActionResultAcquired(actionInfo);\r\n for (var index = 0; index < itemsLength - 1; index++) {\r\n this._raiseEditActionItemError(actionInfo, {\r\n errorCode: errorInfo.errorCode,\r\n errorText: errorInfo.errorText,\r\n fileItem: targetFileInfos[index].fileItem,\r\n index: index\r\n })\r\n }\r\n this._raiseEditActionError(actionInfo, {\r\n errorCode: errorInfo.errorCode,\r\n errorText: errorInfo.errorText,\r\n fileItem: targetFileInfos[itemsLength - 1].fileItem,\r\n index: itemsLength - 1\r\n })\r\n }\r\n _changeDirectoryOnError(dirInfo, skipNavigationOnError, isActualDirectoryRequired) {\r\n if (isActualDirectoryRequired) {\r\n dirInfo = this._getActualDirectoryInfo(dirInfo)\r\n }\r\n this._resetDirectoryState(dirInfo);\r\n dirInfo.expanded = false;\r\n if (!skipNavigationOnError) {\r\n this.setCurrentDirectory(dirInfo.parentDirectory)\r\n }\r\n }\r\n _getItemActionResult(actionResult) {\r\n return Array.isArray(actionResult) ? actionResult[0] : actionResult\r\n }\r\n _processEditAction(actionInfo, beforeAction, action, afterAction, completeAction) {\r\n var isAnyOperationSuccessful = false;\r\n this._raiseEditActionStarting(actionInfo);\r\n var actionResult = actionInfo.itemInfos.map((itemInfo, itemIndex) => this._processBeforeItemEditAction(beforeAction, itemInfo).then(() => {\r\n var itemActionResult = this._getItemActionResult(action(itemInfo.fileItem, itemIndex));\r\n return itemActionResult.done(() => afterAction(itemInfo))\r\n }));\r\n actionInfo.singleRequest = 1 === actionResult.length;\r\n this._raiseEditActionResultAcquired(actionInfo);\r\n return whenSome(actionResult, info => {\r\n isAnyOperationSuccessful = true;\r\n this._raiseCompleteEditActionItem(actionInfo, info)\r\n }, errorInfo => this._raiseEditActionItemError(actionInfo, errorInfo)).then(() => {\r\n completeAction(isAnyOperationSuccessful);\r\n this._raiseCompleteEditAction(actionInfo)\r\n })\r\n }\r\n _createEditActionInfo(name, targetItemInfos, directory, customData) {\r\n targetItemInfos = Array.isArray(targetItemInfos) ? targetItemInfos : [targetItemInfos];\r\n customData = customData || {};\r\n var items = targetItemInfos.map(itemInfo => itemInfo.fileItem);\r\n return {\r\n name: name,\r\n itemInfos: targetItemInfos,\r\n items: items,\r\n directory: directory,\r\n customData: customData,\r\n singleRequest: true\r\n }\r\n }\r\n _processBeforeItemEditAction(action, itemInfo) {\r\n var deferred = new Deferred;\r\n var args = this._createBeforeActionArgs();\r\n try {\r\n action(args, itemInfo)\r\n } catch (errorInfo) {\r\n return deferred.reject(errorInfo).promise()\r\n }\r\n if (!args.cancel) {\r\n deferred.resolve()\r\n } else if (true === args.cancel) {\r\n return deferred.reject({\r\n errorText: args.errorText,\r\n errorCode: args.errorCode\r\n })\r\n } else if (isPromise(args.cancel)) {\r\n when(args.cancel).then(res => {\r\n if (true === res) {\r\n deferred.reject()\r\n } else if (isObject(res) && true === res.cancel) {\r\n deferred.reject({\r\n errorText: res.errorText,\r\n errorCode: res.errorCode\r\n })\r\n }\r\n deferred.resolve()\r\n }, deferred.resolve)\r\n }\r\n return deferred.promise()\r\n }\r\n _createBeforeActionArgs() {\r\n return {\r\n errorCode: void 0,\r\n errorText: \"\",\r\n cancel: false\r\n }\r\n }\r\n _getItemInfosForUploaderFiles(files, parentDirectoryInfo) {\r\n var pathInfo = this._getPathInfo(parentDirectoryInfo);\r\n var result = [];\r\n for (var i = 0; i < files.length; i++) {\r\n var file = files[i];\r\n var item = new FileSystemItem(pathInfo, file.name, false);\r\n var itemInfo = this._createFileInfo(item, parentDirectoryInfo);\r\n result.push(itemInfo)\r\n }\r\n return result\r\n }\r\n refresh() {\r\n if (this._lockRefresh) {\r\n return this._refreshDeferred\r\n }\r\n this._lockRefresh = true;\r\n return this._executeDataLoad(() => this._refreshDeferred = this._refreshInternal(), OPERATIONS.REFRESH)\r\n }\r\n startSingleLoad() {\r\n this._singleOperationLockId = (new Guid).toString()\r\n }\r\n endSingleLoad() {\r\n delete this._singleOperationLockId\r\n }\r\n _refreshInternal() {\r\n var cachedRootInfo = {\r\n items: this._rootDirectoryInfo.items\r\n };\r\n var selectedKeyParts = this._getDirectoryPathKeyParts(this.getCurrentDirectory());\r\n this._resetDirectoryState(this._rootDirectoryInfo);\r\n return this._loadItemsRecursive(this._rootDirectoryInfo, cachedRootInfo).then(() => {\r\n var dirInfo = this._findDirectoryByPathKeyParts(selectedKeyParts);\r\n this.setCurrentDirectory(dirInfo);\r\n delete this._lockRefresh\r\n })\r\n }\r\n _loadItemsRecursive(directoryInfo, cachedDirectoryInfo) {\r\n var _this = this;\r\n return this.getDirectories(directoryInfo).then(dirInfos => {\r\n var itemDeferreds = [];\r\n var _loop = function(i) {\r\n var cachedItem = cachedDirectoryInfo.items.find(cache => dirInfos[i].fileItem.key === cache.fileItem.key);\r\n if (!cachedItem) {\r\n return 1\r\n }\r\n dirInfos[i].expanded = cachedItem.expanded;\r\n if (dirInfos[i].expanded) {\r\n itemDeferreds.push(_this._loadItemsRecursive(dirInfos[i], cachedItem))\r\n }\r\n };\r\n for (var i = 0; i < dirInfos.length; i++) {\r\n if (_loop(i)) {\r\n continue\r\n }\r\n }\r\n return whenSome(itemDeferreds)\r\n }, () => null)\r\n }\r\n _setCurrentDirectoryByPathParts(pathParts, useKeys) {\r\n return this._executeDataLoad(() => this._setCurrentDirectoryByPathPartsInternal(pathParts, useKeys), OPERATIONS.NAVIGATION)\r\n }\r\n _setCurrentDirectoryByPathPartsInternal(pathParts, useKeys) {\r\n return this._getDirectoryByPathParts(this._rootDirectoryInfo, pathParts, useKeys).then(directoryInfo => {\r\n for (var info = directoryInfo.parentDirectory; info; info = info.parentDirectory) {\r\n info.expanded = true\r\n }\r\n this.setCurrentDirectory(directoryInfo)\r\n }, () => {\r\n this._raisePathPotentiallyChanged()\r\n })\r\n }\r\n _executeDataLoad(action, operation) {\r\n if (this._dataLoadingDeferred) {\r\n return this._dataLoadingDeferred.then(() => this._executeDataLoad(action, operation))\r\n }\r\n this._dataLoading = true;\r\n this._dataLoadingDeferred = new Deferred;\r\n if (this._isInitialized) {\r\n this._raiseDataLoading(operation)\r\n }\r\n return action().always(() => {\r\n var tempDeferred = this._dataLoadingDeferred;\r\n this._dataLoadingDeferred = null;\r\n this._dataLoading = false;\r\n tempDeferred.resolve()\r\n })\r\n }\r\n _getDirectoryByPathParts(parentDirectoryInfo, pathParts, useKeys) {\r\n if (pathParts.length < 1) {\r\n return (new Deferred).resolve(parentDirectoryInfo).promise()\r\n }\r\n var fieldName = useKeys ? \"key\" : \"name\";\r\n return this.getDirectories(parentDirectoryInfo).then(dirInfos => {\r\n var subDirInfo = dirInfos.find(d => d.fileItem[fieldName] === pathParts[0]);\r\n if (!subDirInfo) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var restPathParts = [...pathParts].splice(1);\r\n return this._getDirectoryByPathParts(subDirInfo, restPathParts, useKeys)\r\n })\r\n }\r\n _getDirectoryPathKeyParts(directoryInfo) {\r\n var pathParts = [];\r\n while (directoryInfo && directoryInfo.parentDirectory) {\r\n pathParts.unshift(directoryInfo.fileItem.key);\r\n directoryInfo = directoryInfo.parentDirectory\r\n }\r\n return pathParts\r\n }\r\n _findDirectoryByPathKeyParts(keyParts) {\r\n var selectedDirInfo = this._rootDirectoryInfo;\r\n if (0 === keyParts.length) {\r\n return selectedDirInfo\r\n }\r\n var i = 0;\r\n var newSelectedDir = selectedDirInfo;\r\n while (newSelectedDir && i < keyParts.length) {\r\n newSelectedDir = selectedDirInfo.items.find(info => info.fileItem.key === keyParts[i]);\r\n if (newSelectedDir) {\r\n selectedDirInfo = newSelectedDir\r\n }\r\n i++\r\n }\r\n return selectedDirInfo\r\n }\r\n _getActualDirectoryInfo(directoryInfo) {\r\n var keys = this._getDirectoryPathKeyParts(directoryInfo);\r\n return this._findDirectoryByPathKeyParts(keys)\r\n }\r\n _createDirInfoByName(name, parentDirectoryInfo) {\r\n var dirPathInfo = this._getPathInfo(parentDirectoryInfo);\r\n var fileItem = new FileSystemItem(dirPathInfo, name, true);\r\n return this._createDirectoryInfo(fileItem, parentDirectoryInfo)\r\n }\r\n _createDirectoryInfo(fileItem, parentDirectoryInfo) {\r\n return extend(this._createFileInfo(fileItem, parentDirectoryInfo), {\r\n icon: \"folder\",\r\n expanded: fileItem.isRoot(),\r\n items: []\r\n })\r\n }\r\n _createFileInfo(fileItem, parentDirectoryInfo) {\r\n return {\r\n fileItem: fileItem,\r\n parentDirectory: parentDirectoryInfo,\r\n icon: this._getFileItemDefaultIcon(fileItem),\r\n getInternalKey() {\r\n return \"FIK_\".concat(this.fileItem.key)\r\n },\r\n getDisplayName() {\r\n return this.displayName || this.fileItem.name\r\n }\r\n }\r\n }\r\n _resetDirectoryState(directoryInfo, isActualDirectoryRequired) {\r\n if (isActualDirectoryRequired) {\r\n directoryInfo = this._getActualDirectoryInfo(directoryInfo)\r\n }\r\n directoryInfo.itemsLoaded = false;\r\n directoryInfo.items = []\r\n }\r\n _getFileItemDefaultIcon(fileItem) {\r\n if (fileItem.isDirectory) {\r\n return \"folder\"\r\n }\r\n var extension = fileItem.getFileExtension();\r\n var icon = this._defaultIconMap[extension];\r\n return icon || \"doc\"\r\n }\r\n _createDefaultIconMap() {\r\n var result = {\r\n \".txt\": \"txtfile\",\r\n \".rtf\": \"rtffile\",\r\n \".doc\": \"docfile\",\r\n \".docx\": \"docxfile\",\r\n \".xls\": \"xlsfile\",\r\n \".xlsx\": \"xlsxfile\",\r\n \".ppt\": \"pptfile\",\r\n \".pptx\": \"pptxfile\",\r\n \".pdf\": \"pdffile\"\r\n };\r\n [\".png\", \".gif\", \".jpg\", \".jpeg\", \".ico\", \".bmp\"].forEach(extension => {\r\n result[extension] = \"image\"\r\n });\r\n return result\r\n }\r\n _createRootDirectoryInfo(text) {\r\n var rootDirectory = new FileSystemItem(null, \"\", true);\r\n var result = this._createDirectoryInfo(rootDirectory, null);\r\n result.displayName = text || DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME;\r\n return result\r\n }\r\n setRootText(rootText) {\r\n this._rootDirectoryInfo.displayName = rootText || DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME\r\n }\r\n _raiseInitialized() {\r\n this._tryCallAction(\"onInitialized\", {\r\n controller: this\r\n })\r\n }\r\n _raiseDataLoading(operation) {\r\n this._tryCallAction(\"onDataLoading\", {\r\n operation: operation\r\n })\r\n }\r\n _raiseSelectedDirectoryChanged(directoryInfo) {\r\n this._tryCallAction(\"onSelectedDirectoryChanged\", {\r\n selectedDirectoryInfo: directoryInfo\r\n })\r\n }\r\n _raiseEditActionStarting(actionInfo) {\r\n this._tryCallAction(\"onEditActionStarting\", actionInfo)\r\n }\r\n _raiseEditActionResultAcquired(actionInfo) {\r\n this._tryCallAction(\"onEditActionResultAcquired\", actionInfo)\r\n }\r\n _raiseEditActionError(actionInfo, errorInfo) {\r\n this._tryCallAction(\"onEditActionError\", actionInfo, errorInfo)\r\n }\r\n _raiseEditActionItemError(actionInfo, errorInfo) {\r\n this._tryCallAction(\"onEditActionItemError\", actionInfo, errorInfo)\r\n }\r\n _raiseCompleteEditActionItem(actionInfo, info) {\r\n this._tryCallAction(\"onCompleteEditActionItem\", actionInfo, info)\r\n }\r\n _raiseCompleteEditAction(actionInfo) {\r\n this._tryCallAction(\"onCompleteEditAction\", actionInfo)\r\n }\r\n _raisePathPotentiallyChanged() {\r\n this._tryCallAction(\"onPathPotentiallyChanged\")\r\n }\r\n _tryCallAction(actionName) {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n if (this._isInitialized && this._options[actionName]) {\r\n this._options[actionName](...args)\r\n }\r\n }\r\n _resetState() {\r\n this._selectedDirectory = null;\r\n this._rootDirectoryInfo.items = [];\r\n this._rootDirectoryInfo.itemsLoaded = false;\r\n this._loadedItems = {}\r\n }\r\n _getPathInfo(directoryInfo) {\r\n var pathInfo = [];\r\n for (var dirInfo = directoryInfo; dirInfo && !dirInfo.fileItem.isRoot(); dirInfo = dirInfo.parentDirectory) {\r\n pathInfo.unshift({\r\n key: dirInfo.fileItem.key,\r\n name: dirInfo.fileItem.name\r\n })\r\n }\r\n return pathInfo\r\n }\r\n on(eventName, eventHandler) {\r\n var finalEventName = \"on\".concat(eventName);\r\n this._options[finalEventName] = eventHandler\r\n }\r\n get _editingEvents() {\r\n return this._options.editingEvents\r\n }\r\n}\r\nclass FileSecurityController {\r\n constructor(options) {\r\n this._options = extend({\r\n allowedFileExtensions: [],\r\n maxFileSize: 0\r\n }, options);\r\n this._extensionsMap = {};\r\n this._allowedFileExtensions.forEach(extension => {\r\n this._extensionsMap[extension.toUpperCase()] = true\r\n })\r\n }\r\n getAllowedItems(items) {\r\n if (0 === this._allowedFileExtensions.length) {\r\n return items\r\n }\r\n return items.filter(item => item.isDirectory || this._isValidExtension(item.name))\r\n }\r\n validateExtension(name) {\r\n if (!this._isValidExtension(name)) {\r\n throw new FileSystemError(ErrorCode.WrongFileExtension, null)\r\n }\r\n }\r\n validateMaxFileSize(size) {\r\n if (this._maxFileSize && size > this._maxFileSize) {\r\n throw new FileSystemError(ErrorCode.MaxFileSizeExceeded, null)\r\n }\r\n }\r\n _isValidExtension(name) {\r\n if (0 === this._allowedFileExtensions.length) {\r\n return true\r\n }\r\n var extension = getFileExtension(name).toUpperCase();\r\n return this._extensionsMap[extension]\r\n }\r\n get _allowedFileExtensions() {\r\n return this._options.allowedFileExtensions\r\n }\r\n get _maxFileSize() {\r\n return this._options.maxFileSize\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.command_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nexport var defaultPermissions = {\r\n create: false,\r\n copy: false,\r\n move: false,\r\n delete: false,\r\n rename: false,\r\n upload: false,\r\n download: false\r\n};\r\nexport class FileManagerCommandManager {\r\n constructor(permissions) {\r\n this._actions = {};\r\n this._permissions = permissions || {};\r\n this._initCommands()\r\n }\r\n _initCommands() {\r\n this._commands = [{\r\n name: \"create\",\r\n text: messageLocalization.format(\"dxFileManager-commandCreate\"),\r\n icon: \"newfolder\",\r\n enabled: this._permissions.create,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"rename\",\r\n text: messageLocalization.format(\"dxFileManager-commandRename\"),\r\n icon: \"rename\",\r\n enabled: this._permissions.rename,\r\n isSingleFileItemCommand: true\r\n }, {\r\n name: \"move\",\r\n text: messageLocalization.format(\"dxFileManager-commandMove\"),\r\n icon: \"movetofolder\",\r\n enabled: this._permissions.move\r\n }, {\r\n name: \"copy\",\r\n text: messageLocalization.format(\"dxFileManager-commandCopy\"),\r\n icon: \"copy\",\r\n enabled: this._permissions.copy\r\n }, {\r\n name: \"delete\",\r\n text: messageLocalization.format(\"dxFileManager-commandDelete\"),\r\n icon: \"trash\",\r\n enabled: this._permissions.delete\r\n }, {\r\n name: \"download\",\r\n text: messageLocalization.format(\"dxFileManager-commandDownload\"),\r\n icon: \"download\",\r\n enabled: this._permissions.download\r\n }, {\r\n name: \"upload\",\r\n text: messageLocalization.format(\"dxFileManager-commandUpload\"),\r\n icon: \"upload\",\r\n enabled: this._permissions.upload,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"refresh\",\r\n text: messageLocalization.format(\"dxFileManager-commandRefresh\"),\r\n icon: \"dx-filemanager-i dx-filemanager-i-refresh\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"thumbnails\",\r\n text: messageLocalization.format(\"dxFileManager-commandThumbnails\"),\r\n icon: \"mediumiconslayout\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"details\",\r\n text: messageLocalization.format(\"dxFileManager-commandDetails\"),\r\n icon: \"detailslayout\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"clearSelection\",\r\n text: messageLocalization.format(\"dxFileManager-commandClearSelection\"),\r\n icon: \"remove\",\r\n enabled: true\r\n }, {\r\n name: \"showNavPane\",\r\n hint: messageLocalization.format(\"dxFileManager-commandShowNavPane\"),\r\n icon: \"menu\",\r\n enabled: false,\r\n noFileItemRequired: true\r\n }];\r\n this._commandMap = {};\r\n this._commands.forEach(command => {\r\n this._commandMap[command.name] = command\r\n })\r\n }\r\n registerActions(actions) {\r\n this._actions = extend(this._actions, actions)\r\n }\r\n executeCommand(command, arg) {\r\n var commandName = isString(command) ? command : command.name;\r\n var action = this._actions[commandName];\r\n if (action) {\r\n return action(arg)\r\n }\r\n }\r\n updatePermissions(permissions) {\r\n var resultPermissions = extend({}, defaultPermissions, permissions);\r\n this._permissions = resultPermissions;\r\n each(this._permissions, permission => {\r\n this._commandMap[permission].enabled = this._permissions[permission]\r\n })\r\n }\r\n setCommandEnabled(commandName, enabled) {\r\n var command = this.getCommandByName(commandName);\r\n if (command) {\r\n command.enabled = enabled\r\n }\r\n }\r\n getCommandByName(name) {\r\n return this._commandMap[name]\r\n }\r\n isCommandAvailable(commandName, itemInfos) {\r\n var command = this.getCommandByName(commandName);\r\n if (!command || !command.enabled) {\r\n return false\r\n }\r\n if (command.noFileItemRequired) {\r\n return true\r\n }\r\n var itemsLength = itemInfos && itemInfos.length || 0;\r\n if (0 === itemsLength || itemInfos.some(item => item.fileItem.isRoot() || item.fileItem.isParentFolder)) {\r\n return false\r\n }\r\n if (\"download\" === commandName) {\r\n return itemInfos.every(itemInfo => !itemInfo.fileItem.isDirectory)\r\n }\r\n return !command.isSingleFileItemCommand || 1 === itemsLength\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ContextMenu from \"../context_menu/ui.context_menu\";\r\nimport {\r\n extendAttributes\r\n} from \"./ui.file_manager.common\";\r\nvar FILEMANAGER_CONTEXT_MEMU_CLASS = \"dx-filemanager-context-menu\";\r\nvar DEFAULT_CONTEXT_MENU_ITEMS = {\r\n create: {},\r\n upload: {},\r\n download: {},\r\n rename: {},\r\n move: {},\r\n copy: {},\r\n delete: {},\r\n refresh: {\r\n beginGroup: true\r\n }\r\n};\r\nvar DEFAULT_ITEM_ALLOWED_PROPERTIES = [\"beginGroup\", \"closeMenuOnClick\", \"disabled\", \"icon\", \"selectable\", \"selected\", \"text\", \"visible\"];\r\nclass FileManagerContextMenu extends Widget {\r\n _initMarkup() {\r\n this._initActions();\r\n this._isVisible = false;\r\n var $menu = $(\"<div>\").appendTo(this.$element());\r\n this._contextMenu = this._createComponent($menu, ContextMenu, {\r\n cssClass: FILEMANAGER_CONTEXT_MEMU_CLASS,\r\n showEvent: \"\",\r\n onItemClick: args => this._onContextMenuItemClick(args.itemData.name, args),\r\n onShowing: e => this._onContextMenuShowing(e),\r\n onShown: () => this._onContextMenuShown(),\r\n onHidden: () => this._onContextMenuHidden()\r\n });\r\n super._initMarkup()\r\n }\r\n showAt(fileItems, element, event, target) {\r\n var {\r\n itemData: itemData,\r\n itemElement: itemElement,\r\n isActionButton: isActionButton = false\r\n } = target;\r\n if (this._isVisible) {\r\n this._onContextMenuHidden()\r\n }\r\n this._menuShowingContext = {\r\n targetElement: itemElement,\r\n itemData: itemData,\r\n fileItems: fileItems,\r\n event: event,\r\n isActionButton: isActionButton\r\n };\r\n var position = {\r\n of: element,\r\n at: \"top left\",\r\n my: \"top left\",\r\n offset: \"\"\r\n };\r\n if (event) {\r\n position.offset = event.offsetX + \" \" + event.offsetY\r\n } else {\r\n position.my = \"left top\";\r\n position.at = \"left bottom\";\r\n position.boundaryOffset = \"1\"\r\n }\r\n this._contextMenu.option({\r\n target: element,\r\n position: position\r\n });\r\n this._contextMenu.show()\r\n }\r\n createContextMenuItems(fileItems, contextMenuItems, targetFileItem) {\r\n this._targetFileItems = fileItems;\r\n this._targetFileItem = isDefined(targetFileItem) ? targetFileItem : null === fileItems || void 0 === fileItems ? void 0 : fileItems[0];\r\n var result = [];\r\n var itemArray = contextMenuItems || this.option(\"items\");\r\n itemArray.forEach(srcItem => {\r\n var commandName = isString(srcItem) ? srcItem : srcItem.name;\r\n var item = this._configureItemByCommandName(commandName, srcItem, fileItems, this._targetFileItem);\r\n if (this._isContextMenuItemAvailable(item, fileItems)) {\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _isContextMenuItemAvailable(menuItem, fileItems) {\r\n if (!this._isDefaultItem(menuItem.name) || !menuItem._autoHide) {\r\n return ensureDefined(menuItem.visible, true)\r\n }\r\n if (this._isIsolatedCreationItemCommand(menuItem.name) && fileItems && fileItems.length) {\r\n return false\r\n }\r\n return this._commandManager.isCommandAvailable(menuItem.name, fileItems)\r\n }\r\n _isIsolatedCreationItemCommand(commandName) {\r\n return (\"create\" === commandName || \"upload\" === commandName) && this.option(\"isolateCreationItemCommands\")\r\n }\r\n _isDefaultItem(commandName) {\r\n return !!DEFAULT_CONTEXT_MENU_ITEMS[commandName]\r\n }\r\n _configureItemByCommandName(commandName, item, fileItems, targetFileItem) {\r\n if (!this._isDefaultItem(commandName)) {\r\n var res = extend(true, {}, item);\r\n res.originalItemData = item;\r\n this._addItemClickHandler(commandName, res);\r\n if (Array.isArray(item.items)) {\r\n res.items = this.createContextMenuItems(fileItems, item.items, targetFileItem)\r\n }\r\n return res\r\n }\r\n var result = this._createMenuItemByCommandName(commandName);\r\n var defaultConfig = DEFAULT_CONTEXT_MENU_ITEMS[commandName];\r\n extend(result, defaultConfig);\r\n result.originalItemData = item;\r\n extendAttributes(result, item, DEFAULT_ITEM_ALLOWED_PROPERTIES);\r\n if (!isDefined(result.visible)) {\r\n result._autoHide = true\r\n }\r\n if (commandName && !result.name) {\r\n extend(result, {\r\n name: commandName\r\n })\r\n }\r\n return result\r\n }\r\n _createMenuItemByCommandName(commandName) {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = this._commandManager.getCommandByName(commandName);\r\n var menuItem = {\r\n name: commandName,\r\n text: text,\r\n icon: icon\r\n };\r\n this._addItemClickHandler(commandName, menuItem);\r\n return menuItem\r\n }\r\n _addItemClickHandler(commandName, contextMenuItem) {\r\n contextMenuItem.onItemClick = args => this._onContextMenuItemClick(commandName, args)\r\n }\r\n _onContextMenuItemClick(commandName, args) {\r\n var _this$_targetFileItem;\r\n var changedArgs = extend(true, {}, args);\r\n changedArgs.itemData = args.itemData.originalItemData;\r\n changedArgs.fileSystemItem = null === (_this$_targetFileItem = this._targetFileItem) || void 0 === _this$_targetFileItem ? void 0 : _this$_targetFileItem.fileItem;\r\n changedArgs.viewArea = this.option(\"viewArea\");\r\n this._actions.onItemClick(changedArgs);\r\n if (this._isDefaultItem(commandName)) {\r\n var targetFileItems = this._isIsolatedCreationItemCommand(commandName) ? null : this._targetFileItems;\r\n this._commandManager.executeCommand(commandName, targetFileItems)\r\n }\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onContextMenuHidden: this._createActionByOption(\"onContextMenuHidden\"),\r\n onContextMenuShowing: this._createActionByOption(\"onContextMenuShowing\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\")\r\n }\r\n }\r\n _onContextMenuShowing(e) {\r\n if (this._isVisible) {\r\n this._onContextMenuHidden(true)\r\n }\r\n e = extend(e, this._menuShowingContext, {\r\n options: this.option(),\r\n cancel: false\r\n });\r\n this._actions.onContextMenuShowing(e);\r\n if (!e.cancel) {\r\n var items = this.createContextMenuItems(this._menuShowingContext.fileItems, null, this._menuShowingContext.fileSystemItem);\r\n this._contextMenu.option(\"dataSource\", items)\r\n }\r\n }\r\n tryUpdateVisibleContextMenu() {\r\n if (this._isVisible) {\r\n var items = this.createContextMenuItems(this._targetFileItems);\r\n this._contextMenu.option(\"dataSource\", items)\r\n }\r\n }\r\n _onContextMenuShown() {\r\n this._isVisible = true\r\n }\r\n _onContextMenuHidden(preserveContext) {\r\n this._isVisible = false;\r\n if (!preserveContext) {\r\n this._menuShowingContext = {}\r\n }\r\n this._contextMenu.option(\"visible\", false);\r\n this._raiseContextMenuHidden()\r\n }\r\n _raiseContextMenuHidden() {\r\n this._actions.onContextMenuHidden()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n commandManager: null,\r\n onContextMenuHidden: null,\r\n onItemClick: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"commandManager\":\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this.tryUpdateVisibleContextMenu();\r\n break;\r\n case \"onItemClick\":\r\n case \"onContextMenuShowing\":\r\n case \"onContextMenuHidden\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n get _commandManager() {\r\n return this.option(\"commandManager\")\r\n }\r\n}\r\nexport default FileManagerContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.file_actions_button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar FILE_MANAGER_FILE_ACTIONS_BUTTON = \"dx-filemanager-file-actions-button\";\r\nvar FILE_MANAGER_FILE_ACTIONS_BUTTON_ACTIVATED = \"dx-filemanager-file-actions-button-activated\";\r\nvar ACTIVE_STATE_CLASS = \"dx-state-active\";\r\nclass FileManagerFileActionsButton extends Widget {\r\n _initMarkup() {\r\n this._createClickAction();\r\n var $button = $(\"<div>\");\r\n this.$element().append($button).addClass(FILE_MANAGER_FILE_ACTIONS_BUTTON);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n stylingMode: \"text\",\r\n onClick: e => this._raiseClick(e)\r\n });\r\n super._initMarkup()\r\n }\r\n _createClickAction() {\r\n this._clickAction = this._createActionByOption(\"onClick\")\r\n }\r\n _raiseClick(e) {\r\n this._clickAction(e)\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n cssClass: \"\",\r\n onClick: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"cssClass\":\r\n this.repaint();\r\n break;\r\n case \"onClick\":\r\n this._createClickAction();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n setActive(active) {\r\n this.$element().toggleClass(FILE_MANAGER_FILE_ACTIONS_BUTTON_ACTIVATED, active);\r\n setTimeout(() => this._button.$element().toggleClass(ACTIVE_STATE_CLASS, active))\r\n }\r\n}\r\nexport default FileManagerFileActionsButton;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.files_tree_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport TreeViewSearch from \"../tree_view/ui.tree_view.search\";\r\nimport FileManagerFileActionsButton from \"./ui.file_manager.file_actions_button\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nvar FILE_MANAGER_DIRS_TREE_CLASS = \"dx-filemanager-dirs-tree\";\r\nvar FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS = \"dx-filemanager-focused-item\";\r\nvar FILE_MANAGER_DIRS_TREE_ITEM_TEXT_CLASS = \"dx-filemanager-dirs-tree-item-text\";\r\nvar TREE_VIEW_ITEM_CLASS = \"dx-treeview-item\";\r\nclass FileManagerFilesTreeView extends Widget {\r\n _initMarkup() {\r\n this._initActions();\r\n this._getCurrentDirectory = this.option(\"getCurrentDirectory\");\r\n this._createFileActionsButton = noop;\r\n this._storeExpandedState = this.option(\"storeExpandedState\") || false;\r\n var $treeView = $(\"<div>\").addClass(FILE_MANAGER_DIRS_TREE_CLASS).appendTo(this.$element());\r\n var treeViewOptions = {\r\n dataStructure: \"plain\",\r\n rootValue: \"\",\r\n createChildren: this._onFilesTreeViewCreateSubDirectories.bind(this),\r\n itemTemplate: this._createFilesTreeViewItemTemplate.bind(this),\r\n keyExpr: \"getInternalKey\",\r\n parentIdExpr: \"parentDirectory.getInternalKey\",\r\n displayExpr: itemInfo => itemInfo.getDisplayName(),\r\n hasItemsExpr: \"fileItem.hasSubDirectories\",\r\n onItemClick: e => this._actions.onDirectoryClick(e),\r\n onItemExpanded: e => this._onFilesTreeViewItemExpanded(e),\r\n onItemCollapsed: e => this._onFilesTreeViewItemCollapsed(e),\r\n onItemRendered: e => this._onFilesTreeViewItemRendered(e),\r\n onContentReady: () => this._actions.onFilesTreeViewContentReady()\r\n };\r\n if (this._contextMenu) {\r\n this._contextMenu.option(\"onContextMenuHidden\", () => this._onContextMenuHidden());\r\n treeViewOptions.onItemContextMenu = e => this._onFilesTreeViewItemContextMenu(e);\r\n this._createFileActionsButton = (element, options) => this._createComponent(element, FileManagerFileActionsButton, options)\r\n }\r\n this._filesTreeView = this._createComponent($treeView, TreeViewSearch, treeViewOptions)\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onDirectoryClick: this._createActionByOption(\"onDirectoryClick\"),\r\n onFilesTreeViewContentReady: this._createActionByOption(\"onFilesTreeViewContentReady\")\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n var that = this;\r\n setTimeout(() => {\r\n that._updateFocusedElement()\r\n })\r\n }\r\n _onFilesTreeViewCreateSubDirectories(rootItem) {\r\n var getDirectories = this.option(\"getDirectories\");\r\n var directoryInfo = rootItem && rootItem.itemData || null;\r\n return getDirectories && getDirectories(directoryInfo, true)\r\n }\r\n _onFilesTreeViewItemRendered(_ref) {\r\n var {\r\n itemData: itemData\r\n } = _ref;\r\n var currentDirectory = this._getCurrentDirectory();\r\n if (currentDirectory && currentDirectory.fileItem.equals(itemData.fileItem)) {\r\n this._updateFocusedElement();\r\n this._restoreScrollTopPosition()\r\n }\r\n }\r\n _onFilesTreeViewItemExpanded(_ref2) {\r\n var {\r\n itemData: itemData\r\n } = _ref2;\r\n if (this._storeExpandedState) {\r\n itemData.expanded = true\r\n }\r\n }\r\n _onFilesTreeViewItemCollapsed(_ref3) {\r\n var {\r\n itemData: itemData\r\n } = _ref3;\r\n if (this._storeExpandedState) {\r\n itemData.expanded = false\r\n }\r\n }\r\n _createFilesTreeViewItemTemplate(itemData, itemIndex, itemElement) {\r\n var $itemElement = $(itemElement);\r\n var $itemWrapper = $itemElement.closest(this._filesTreeViewItemSelector);\r\n $itemWrapper.data(\"item\", itemData);\r\n var $image = getImageContainer(itemData.icon);\r\n var $text = $(\"<span>\").text(itemData.getDisplayName()).addClass(FILE_MANAGER_DIRS_TREE_ITEM_TEXT_CLASS);\r\n var $button = $(\"<div>\");\r\n $itemElement.append($image, $text, $button);\r\n this._createFileActionsButton($button, {\r\n onClick: e => this._onFileItemActionButtonClick(e)\r\n })\r\n }\r\n _onFilesTreeViewItemContextMenu(_ref4) {\r\n var {\r\n itemElement: itemElement,\r\n event: event\r\n } = _ref4;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n var itemData = $(itemElement).data(\"item\");\r\n this._contextMenu.showAt([itemData], itemElement, event, {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n })\r\n }\r\n _onFileItemActionButtonClick(_ref5) {\r\n var {\r\n component: component,\r\n element: element,\r\n event: event\r\n } = _ref5;\r\n event.stopPropagation();\r\n var itemElement = component.$element().closest(this._filesTreeViewItemSelector);\r\n var itemData = itemElement.data(\"item\");\r\n var target = {\r\n itemData: itemData,\r\n itemElement: itemElement,\r\n isActionButton: true\r\n };\r\n this._contextMenu.showAt([itemData], element, event, target);\r\n this._activeFileActionsButton = component;\r\n this._activeFileActionsButton.setActive(true)\r\n }\r\n _onContextMenuHidden() {\r\n if (this._activeFileActionsButton) {\r\n this._activeFileActionsButton.setActive(false)\r\n }\r\n }\r\n toggleNodeDisabledState(key, state) {\r\n var node = this._getNodeByKey(key);\r\n if (!node) {\r\n return\r\n }\r\n var items = this._filesTreeView.option(\"items\");\r\n var itemIndex = items.map(item => item.getInternalKey()).indexOf(node.getInternalKey());\r\n if (-1 !== itemIndex) {\r\n this._filesTreeView.option(\"items[\".concat(itemIndex, \"].disabled\"), state)\r\n }\r\n }\r\n _saveScrollTopPosition() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n this._scrollTopPosition = this._filesTreeView.getScrollable().scrollTop()\r\n }\r\n _restoreScrollTopPosition() {\r\n if (!hasWindow() || !isNumeric(this._scrollTopPosition)) {\r\n return\r\n }\r\n setTimeout(() => this._filesTreeView.getScrollable().scrollTo(this._scrollTopPosition))\r\n }\r\n _updateFocusedElement() {\r\n var directoryInfo = this._getCurrentDirectory();\r\n var $element = this._getItemElementByKey(null === directoryInfo || void 0 === directoryInfo ? void 0 : directoryInfo.getInternalKey());\r\n if (this._$focusedElement) {\r\n this._$focusedElement.toggleClass(FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS, false)\r\n }\r\n this._$focusedElement = $element || $();\r\n this._$focusedElement.toggleClass(FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS, true)\r\n }\r\n _getNodeByKey(key) {\r\n var _this$_filesTreeView;\r\n return null === (_this$_filesTreeView = this._filesTreeView) || void 0 === _this$_filesTreeView ? void 0 : _this$_filesTreeView._getNode(key)\r\n }\r\n _getPublicNode(key) {\r\n var _this$_filesTreeView2;\r\n var nodesQueue = [...null === (_this$_filesTreeView2 = this._filesTreeView) || void 0 === _this$_filesTreeView2 ? void 0 : _this$_filesTreeView2.getNodes()];\r\n while (nodesQueue.length) {\r\n var node = nodesQueue.shift();\r\n if (node.itemData.getInternalKey() === key) {\r\n return node\r\n } else if (node.children.length) {\r\n nodesQueue.push(...node.children)\r\n }\r\n }\r\n return\r\n }\r\n _getItemElementByKey(key) {\r\n var node = this._getNodeByKey(key);\r\n if (node) {\r\n var $node = this._filesTreeView._getNodeElement(node);\r\n if ($node) {\r\n return $node.children(this._filesTreeViewItemSelector)\r\n }\r\n }\r\n return null\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n storeExpandedState: false,\r\n initialFolder: null,\r\n contextMenu: null,\r\n getItems: null,\r\n getCurrentDirectory: null,\r\n onDirectoryClick: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"storeExpandedState\":\r\n this._storeExpandedState = this.option(name);\r\n break;\r\n case \"getItems\":\r\n case \"rootFolderDisplayName\":\r\n case \"initialFolder\":\r\n case \"contextMenu\":\r\n this.repaint();\r\n break;\r\n case \"getCurrentDirectory\":\r\n this.getCurrentDirectory = this.option(name);\r\n break;\r\n case \"onDirectoryClick\":\r\n case \"onFilesTreeViewContentReady\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n get _filesTreeViewItemSelector() {\r\n return \".\".concat(TREE_VIEW_ITEM_CLASS)\r\n }\r\n get _contextMenu() {\r\n return this.option(\"contextMenu\")\r\n }\r\n toggleDirectoryExpandedState(directoryInfo, state) {\r\n var deferred = new Deferred;\r\n var treeViewNode = this._getPublicNode(null === directoryInfo || void 0 === directoryInfo ? void 0 : directoryInfo.getInternalKey());\r\n if (!treeViewNode) {\r\n return deferred.reject().promise()\r\n }\r\n if (treeViewNode.expanded === state || treeViewNode.itemsLoaded && !treeViewNode.itemData.fileItem.hasSubDirectories) {\r\n return deferred.resolve().promise()\r\n }\r\n var action = state ? \"expandItem\" : \"collapseItem\";\r\n return this._filesTreeView[action](directoryInfo.getInternalKey())\r\n }\r\n refresh() {\r\n this._$focusedElement = null;\r\n this._saveScrollTopPosition();\r\n this._filesTreeView.option(\"dataSource\", [])\r\n }\r\n updateCurrentDirectory() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._updateFocusedElement();\r\n this._storeExpandedState && this._updateExpandedStateToCurrentDirectory()\r\n }\r\n _updateExpandedStateToCurrentDirectory() {\r\n return this.toggleDirectoryExpandedStateRecursive(this._getCurrentDirectory().parentDirectory, true)\r\n }\r\n toggleDirectoryExpandedStateRecursive(directoryInfo, state) {\r\n var dirLine = [];\r\n for (var dirInfo = directoryInfo; dirInfo; dirInfo = dirInfo.parentDirectory) {\r\n dirLine.unshift(dirInfo)\r\n }\r\n return this.toggleDirectoryLineExpandedState(dirLine, state)\r\n }\r\n toggleDirectoryLineExpandedState(dirLine, state) {\r\n if (!dirLine.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n return this.toggleDirectoryExpandedState(dirLine.shift(), state).then(() => this.toggleDirectoryLineExpandedState(dirLine, state))\r\n }\r\n}\r\nexport default FileManagerFilesTreeView;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataGrid from \"../../__internal/grids/data_grid/m_widget\";\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.item_list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n name as dblClickName\r\n} from \"../../events/double_click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport devices from \"../../core/devices\";\r\nimport CustomStore from \"../../data/custom_store\";\r\nimport Widget from \"../widget/ui.widget\";\r\nvar FILE_MANAGER_FILES_VIEW_CLASS = \"dx-filemanager-files-view\";\r\nvar FILE_MANAGER_ITEM_LIST_ITEM_OPEN_EVENT_NAMESPACE = \"dxFileManager_open\";\r\nclass FileManagerItemListBase extends Widget {\r\n _init() {\r\n this._initActions();\r\n this._lockFocusedItemProcessing = false;\r\n this._focusedItemKey = this.option(\"focusedItemKey\");\r\n super._init()\r\n }\r\n _initMarkup() {\r\n this._needResetScrollPosition = false;\r\n this.$element().addClass(FILE_MANAGER_FILES_VIEW_CLASS);\r\n var dblClickEventName = addNamespace(dblClickName, FILE_MANAGER_ITEM_LIST_ITEM_OPEN_EVENT_NAMESPACE);\r\n eventsEngine.on(this.$element(), dblClickEventName, this._getItemSelector(), this._onItemDblClick.bind(this));\r\n super._initMarkup()\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onError: this._createActionByOption(\"onError\"),\r\n onSelectionChanged: this._createActionByOption(\"onSelectionChanged\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\"),\r\n onSelectedItemOpened: this._createActionByOption(\"onSelectedItemOpened\"),\r\n onContextMenuShowing: this._createActionByOption(\"onContextMenuShowing\"),\r\n onItemListDataLoaded: this._createActionByOption(\"onItemListDataLoaded\")\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n selectionMode: \"single\",\r\n selectedItemKeys: [],\r\n focusedItemKey: void 0,\r\n contextMenu: null,\r\n getItems: null,\r\n getItemThumbnail: null,\r\n onError: null,\r\n onSelectionChanged: null,\r\n onFocusedItemChanged: null,\r\n onSelectedItemOpened: null,\r\n onContextMenuShowing: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"selectionMode\":\r\n case \"contextMenu\":\r\n case \"getItems\":\r\n case \"getItemThumbnail\":\r\n this.repaint();\r\n break;\r\n case \"selectedItemKeys\":\r\n this._setSelectedItemKeys(args.value);\r\n break;\r\n case \"focusedItemKey\":\r\n if (!this._lockFocusedItemProcessing) {\r\n this._setFocusedItemKey(args.value)\r\n }\r\n break;\r\n case \"onError\":\r\n case \"onSelectedItemOpened\":\r\n case \"onSelectionChanged\":\r\n case \"onFocusedItemChanged\":\r\n case \"onContextMenuShowing\":\r\n case \"onItemListDataLoaded\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getItems() {\r\n return this._getItemsInternal().done(itemInfos => {\r\n this._itemCount = itemInfos.length;\r\n if (0 === this._itemCount) {\r\n this._resetFocus()\r\n }\r\n var parentDirectoryItem = this._findParentDirectoryItem(itemInfos);\r\n this._hasParentDirectoryItem = !!parentDirectoryItem;\r\n this._parentDirectoryItemKey = parentDirectoryItem ? parentDirectoryItem.fileItem.key : null\r\n }).always(() => {\r\n this._onDataLoaded()\r\n })\r\n }\r\n _getItemsInternal() {\r\n var itemsGetter = this.option(\"getItems\");\r\n var itemsResult = itemsGetter ? itemsGetter() : [];\r\n return when(itemsResult)\r\n }\r\n _raiseOnError(error) {\r\n this._actions.onError({\r\n error: error\r\n })\r\n }\r\n _raiseSelectionChanged(args) {\r\n this._actions.onSelectionChanged(args)\r\n }\r\n _raiseFocusedItemChanged(args) {\r\n this._actions.onFocusedItemChanged(args)\r\n }\r\n _raiseSelectedItemOpened(fileItemInfo) {\r\n this._actions.onSelectedItemOpened({\r\n fileItemInfo: fileItemInfo\r\n })\r\n }\r\n _raiseContextMenuShowing(e) {\r\n this._actions.onContextMenuShowing(e)\r\n }\r\n _raiseItemListDataLoaded() {\r\n this._actions.onItemListDataLoaded()\r\n }\r\n _onDataLoaded() {\r\n var _this$_refreshDeferre;\r\n this._raiseItemListDataLoaded();\r\n null === (_this$_refreshDeferre = this._refreshDeferred) || void 0 === _this$_refreshDeferre ? void 0 : _this$_refreshDeferre.resolve()\r\n }\r\n _onContentReady() {\r\n if (this._needResetScrollPosition) {\r\n this._resetScrollTopPosition();\r\n this._needResetScrollPosition = false\r\n }\r\n }\r\n _tryRaiseSelectionChanged(_ref) {\r\n var {\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n } = _ref;\r\n var parentDirectoryItem = this._findParentDirectoryItem(this.getSelectedItems());\r\n if (parentDirectoryItem) {\r\n this._deselectItem(parentDirectoryItem)\r\n }\r\n var raiseEvent = !this._hasParentDirectoryItem;\r\n raiseEvent = raiseEvent || this._hasValidKeys(currentSelectedItemKeys) || this._hasValidKeys(currentDeselectedItemKeys);\r\n if (raiseEvent) {\r\n selectedItemInfos = this._filterOutItemByPredicate(selectedItemInfos, item => item.fileItem.key === this._parentDirectoryItemKey);\r\n selectedItems = this._filterOutParentDirectory(selectedItems);\r\n selectedItemKeys = this._filterOutParentDirectoryKey(selectedItemKeys, true);\r\n currentSelectedItemKeys = this._filterOutParentDirectoryKey(currentSelectedItemKeys, true);\r\n currentDeselectedItemKeys = this._filterOutParentDirectoryKey(currentDeselectedItemKeys, true);\r\n this._raiseSelectionChanged({\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n })\r\n }\r\n }\r\n _onFocusedItemChanged(args) {\r\n if (this._focusedItemKey === args.itemKey) {\r\n return\r\n }\r\n this._focusedItemKey = args.itemKey;\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", args.itemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._raiseFocusedItemChanged(args)\r\n }\r\n _resetFocus() {}\r\n _resetScrollTopPosition() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n setTimeout(() => {\r\n var _this$_getScrollable;\r\n return null === (_this$_getScrollable = this._getScrollable()) || void 0 === _this$_getScrollable ? void 0 : _this$_getScrollable.scrollTo(0)\r\n })\r\n }\r\n _getScrollable() {}\r\n _getItemThumbnail(fileInfo) {\r\n var itemThumbnailGetter = this.option(\"getItemThumbnail\");\r\n return itemThumbnailGetter ? itemThumbnailGetter(fileInfo) : {\r\n thumbnail: \"\"\r\n }\r\n }\r\n _getItemThumbnailContainer(fileInfo) {\r\n var {\r\n thumbnail: thumbnail,\r\n cssClass: cssClass\r\n } = this._getItemThumbnail(fileInfo);\r\n var $itemThumbnail = getImageContainer(thumbnail).addClass(this._getItemThumbnailCssClass());\r\n if (cssClass) {\r\n $itemThumbnail.addClass(cssClass)\r\n }\r\n return $itemThumbnail\r\n }\r\n _getItemThumbnailCssClass() {\r\n return \"\"\r\n }\r\n _getItemSelector() {}\r\n _onItemDblClick(e) {}\r\n _isDesktop() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _showContextMenu(items, element, event, target) {\r\n this._contextMenu.showAt(items, element, event, target)\r\n }\r\n get _contextMenu() {\r\n return this.option(\"contextMenu\")\r\n }\r\n _findParentDirectoryItem(itemInfos) {\r\n for (var i = 0; i < itemInfos.length; i++) {\r\n var itemInfo = itemInfos[i];\r\n if (this._isParentDirectoryItem(itemInfo)) {\r\n return itemInfo\r\n }\r\n }\r\n return null\r\n }\r\n _getFileItemsForContextMenu(fileItem) {\r\n var result = this.getSelectedItems();\r\n if (this._isParentDirectoryItem(fileItem)) {\r\n result.push(fileItem)\r\n }\r\n return result\r\n }\r\n _isParentDirectoryItem(itemInfo) {\r\n return itemInfo.fileItem.isParentFolder\r\n }\r\n _hasValidKeys(keys) {\r\n return keys.length > 1 || 1 === keys.length && keys[0] !== this._parentDirectoryItemKey\r\n }\r\n _filterOutParentDirectory(array, createNewArray) {\r\n return this._filterOutItemByPredicate(array, item => item.key === this._parentDirectoryItemKey, createNewArray)\r\n }\r\n _filterOutParentDirectoryKey(array, createNewArray) {\r\n return this._filterOutItemByPredicate(array, key => key === this._parentDirectoryItemKey, createNewArray)\r\n }\r\n _filterOutItemByPredicate(array, predicate, createNewArray) {\r\n var result = array;\r\n var index = -1;\r\n for (var i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n index = i;\r\n break\r\n }\r\n }\r\n if (-1 !== index) {\r\n if (createNewArray) {\r\n result = [...array]\r\n }\r\n result.splice(index, 1)\r\n }\r\n return result\r\n }\r\n _isMultipleSelectionMode() {\r\n return \"multiple\" === this.option(\"selectionMode\")\r\n }\r\n _deselectItem(item) {}\r\n _setSelectedItemKeys(itemKeys) {}\r\n _setFocusedItemKey(itemKey) {}\r\n _createDataSource() {\r\n return {\r\n store: new CustomStore({\r\n key: \"fileItem.key\",\r\n load: this._getItems.bind(this)\r\n })\r\n }\r\n }\r\n getSelectedItems() {}\r\n clearSelection() {}\r\n selectItem() {}\r\n refresh(options, operation) {}\r\n}\r\nexport default FileManagerItemListBase;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.item_list.details.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n extendAttributes,\r\n getDisplayFileSize\r\n} from \"./ui.file_manager.common\";\r\nimport {\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport DataGrid from \"../data_grid/ui.data_grid\";\r\nimport FileManagerItemListBase from \"./ui.file_manager.item_list\";\r\nimport FileManagerFileActionsButton from \"./ui.file_manager.file_actions_button\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n OPERATIONS\r\n} from \"./file_items_controller\";\r\nvar FILE_MANAGER_DETAILS_ITEM_LIST_CLASS = \"dx-filemanager-details\";\r\nvar FILE_MANAGER_DETAILS_ITEM_THUMBNAIL_CLASS = \"dx-filemanager-details-item-thumbnail\";\r\nvar FILE_MANAGER_DETAILS_ITEM_NAME_CLASS = \"dx-filemanager-details-item-name\";\r\nvar FILE_MANAGER_DETAILS_ITEM_NAME_WRAPPER_CLASS = \"dx-filemanager-details-item-name-wrapper\";\r\nvar FILE_MANAGER_DETAILS_ITEM_IS_DIRECTORY_CLASS = \"dx-filemanager-details-item-is-directory\";\r\nvar FILE_MANAGER_PARENT_DIRECTORY_ITEM = \"dx-filemanager-parent-directory-item\";\r\nvar DATA_GRID_DATA_ROW_CLASS = \"dx-data-row\";\r\nvar DEFAULT_COLUMN_CONFIGS = {\r\n thumbnail: {\r\n caption: \"\",\r\n calculateSortValue: \"isDirectory\",\r\n width: 36,\r\n alignment: \"center\",\r\n cssClass: FILE_MANAGER_DETAILS_ITEM_IS_DIRECTORY_CLASS\r\n },\r\n name: {\r\n caption: messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionName\")\r\n },\r\n dateModified: {\r\n caption: messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionDateModified\"),\r\n width: 110,\r\n hidingPriority: 1\r\n },\r\n size: {\r\n caption: messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionFileSize\"),\r\n width: 90,\r\n alignment: \"right\",\r\n hidingPriority: 0\r\n },\r\n isParentFolder: {\r\n caption: \"isParentFolder\",\r\n visible: false,\r\n sortIndex: 0,\r\n sortOrder: \"asc\"\r\n }\r\n};\r\nclass FileManagerDetailsItemList extends FileManagerItemListBase {\r\n _initMarkup() {\r\n this._itemCount = 0;\r\n this._focusedItem = null;\r\n this._hasParentDirectoryItem = false;\r\n this._parentDirectoryItemKey = null;\r\n this._selectAllCheckBox = null;\r\n this._selectAllCheckBoxUpdating = false;\r\n this.$element().addClass(FILE_MANAGER_DETAILS_ITEM_LIST_CLASS);\r\n this._createFilesView();\r\n this._contextMenu.option(\"onContextMenuHidden\", () => this._onContextMenuHidden());\r\n super._initMarkup()\r\n }\r\n _createFilesView() {\r\n var $filesView = $(\"<div>\").appendTo(this.$element());\r\n var selectionMode = this._isMultipleSelectionMode() ? \"multiple\" : \"none\";\r\n this._filesView = this._createComponent($filesView, DataGrid, {\r\n dataSource: this._createDataSource(),\r\n hoverStateEnabled: true,\r\n selection: {\r\n mode: selectionMode,\r\n showCheckBoxesMode: this._isDesktop() ? \"onClick\" : \"none\"\r\n },\r\n selectedRowKeys: this.option(\"selectedItemKeys\"),\r\n focusedRowKey: this.option(\"focusedItemKey\"),\r\n focusedRowEnabled: true,\r\n allowColumnResizing: true,\r\n scrolling: {\r\n mode: \"virtual\"\r\n },\r\n sorting: {\r\n mode: \"single\",\r\n showSortIndexes: false\r\n },\r\n loadPanel: {\r\n shading: true\r\n },\r\n showColumnLines: false,\r\n showRowLines: false,\r\n columnHidingEnabled: false,\r\n columns: this._createColumns(),\r\n onEditorPreparing: this._onEditorPreparing.bind(this),\r\n onRowPrepared: this._onRowPrepared.bind(this),\r\n onContextMenuPreparing: this._onContextMenuPreparing.bind(this),\r\n onSelectionChanged: this._onFilesViewSelectionChanged.bind(this),\r\n onFocusedRowChanged: this._onFilesViewFocusedRowChanged.bind(this),\r\n onOptionChanged: this._onFilesViewOptionChanged.bind(this),\r\n onContentReady: this._onContentReady.bind(this)\r\n })\r\n }\r\n _createColumns() {\r\n var columns = this.option(\"detailColumns\");\r\n columns = columns.slice(0);\r\n columns = columns.map(column => {\r\n var extendedItem = column;\r\n if (isString(column)) {\r\n extendedItem = {\r\n dataField: column\r\n }\r\n }\r\n return this._getPreparedColumn(extendedItem)\r\n });\r\n var customizeDetailColumns = this.option(\"customizeDetailColumns\");\r\n if (isFunction(customizeDetailColumns)) {\r\n columns = customizeDetailColumns(columns)\r\n }\r\n columns.push(this._getPreparedColumn({\r\n dataField: \"isParentFolder\"\r\n }));\r\n columns.forEach(column => this._updateColumnDataField(column));\r\n return columns\r\n }\r\n _getPreparedColumn(columnOptions) {\r\n var result = {};\r\n var resultCssClass = \"\";\r\n if (this._isDefaultColumn(columnOptions.dataField)) {\r\n var defaultConfig = extend(true, {}, DEFAULT_COLUMN_CONFIGS[columnOptions.dataField]);\r\n resultCssClass = defaultConfig.cssClass || \"\";\r\n switch (columnOptions.dataField) {\r\n case \"thumbnail\":\r\n defaultConfig.cellTemplate = this._createThumbnailColumnCell.bind(this);\r\n defaultConfig.calculateSortValue = \"fileItem.\".concat(defaultConfig.calculateSortValue);\r\n break;\r\n case \"name\":\r\n defaultConfig.cellTemplate = this._createNameColumnCell.bind(this);\r\n defaultConfig.caption = messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionName\");\r\n break;\r\n case \"size\":\r\n defaultConfig.calculateCellValue = this._calculateSizeColumnCellValue.bind(this);\r\n defaultConfig.caption = messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionFileSize\");\r\n defaultConfig.calculateSortValue = rowData => rowData.fileItem.isDirectory ? -1 : rowData.fileItem.size;\r\n break;\r\n case \"dateModified\":\r\n defaultConfig.caption = messageLocalization.format(\"dxFileManager-listDetailsColumnCaptionDateModified\")\r\n }\r\n extend(true, result, defaultConfig)\r\n }\r\n extendAttributes(result, columnOptions, [\"alignment\", \"caption\", \"dataField\", \"dataType\", \"hidingPriority\", \"sortIndex\", \"sortOrder\", \"visible\", \"visibleIndex\", \"width\"]);\r\n if (columnOptions.cssClass) {\r\n resultCssClass = \"\".concat(resultCssClass, \" \").concat(columnOptions.cssClass)\r\n }\r\n if (resultCssClass) {\r\n result.cssClass = resultCssClass\r\n }\r\n return result\r\n }\r\n _updateColumnDataField(column) {\r\n var dataItemSuffix = this._isDefaultColumn(column.dataField) ? \"\" : \"dataItem.\";\r\n column.dataField = \"fileItem.\" + dataItemSuffix + column.dataField;\r\n return column\r\n }\r\n _isDefaultColumn(columnDataField) {\r\n return !!DEFAULT_COLUMN_CONFIGS[columnDataField]\r\n }\r\n _onFileItemActionButtonClick(_ref) {\r\n var {\r\n component: component,\r\n element: element,\r\n event: event\r\n } = _ref;\r\n event.stopPropagation();\r\n var $row = component.$element().closest(this._getItemSelector());\r\n var fileItemInfo = $row.data(\"item\");\r\n this._selectItem(fileItemInfo);\r\n var target = {\r\n itemData: fileItemInfo,\r\n itemElement: $row,\r\n isActionButton: true\r\n };\r\n var items = this._getFileItemsForContextMenu(fileItemInfo);\r\n this._showContextMenu(items, element, event, target);\r\n this._activeFileActionsButton = component;\r\n this._activeFileActionsButton.setActive(true)\r\n }\r\n _onContextMenuHidden() {\r\n if (this._activeFileActionsButton) {\r\n this._activeFileActionsButton.setActive(false)\r\n }\r\n }\r\n _getItemThumbnailCssClass() {\r\n return FILE_MANAGER_DETAILS_ITEM_THUMBNAIL_CLASS\r\n }\r\n _getItemSelector() {\r\n return \".\".concat(DATA_GRID_DATA_ROW_CLASS)\r\n }\r\n _onItemDblClick(e) {\r\n var $row = $(e.currentTarget);\r\n var fileItemInfo = $row.data(\"item\");\r\n this._raiseSelectedItemOpened(fileItemInfo)\r\n }\r\n _isAllItemsSelected() {\r\n var selectableItemsCount = this._hasParentDirectoryItem ? this._itemCount - 1 : this._itemCount;\r\n var selectedRowKeys = this._filesView.option(\"selectedRowKeys\");\r\n if (!selectedRowKeys.length) {\r\n return false\r\n }\r\n return selectedRowKeys.length >= selectableItemsCount ? true : void 0\r\n }\r\n _onEditorPreparing(_ref2) {\r\n var {\r\n component: component,\r\n command: command,\r\n row: row,\r\n parentType: parentType,\r\n editorOptions: editorOptions\r\n } = _ref2;\r\n if (!this._filesView) {\r\n this._filesView = component\r\n }\r\n if (\"select\" === command && row) {\r\n if (this._isParentDirectoryItem(row.data)) {\r\n editorOptions.disabled = true\r\n }\r\n } else if (\"headerRow\" === parentType) {\r\n editorOptions.onInitialized = _ref3 => {\r\n var {\r\n component: component\r\n } = _ref3;\r\n this._selectAllCheckBox = component\r\n };\r\n editorOptions.value = this._isAllItemsSelected();\r\n editorOptions.onValueChanged = args => this._onSelectAllCheckBoxValueChanged(args)\r\n }\r\n }\r\n _onSelectAllCheckBoxValueChanged(_ref4) {\r\n var {\r\n event: event,\r\n previousValue: previousValue,\r\n value: value\r\n } = _ref4;\r\n if (!event) {\r\n if (previousValue && !this._selectAllCheckBoxUpdating && this._selectAllCheckBox) {\r\n this._selectAllCheckBox.option(\"value\", previousValue)\r\n }\r\n return\r\n }\r\n if (this._isAllItemsSelected() === value) {\r\n return\r\n }\r\n if (value) {\r\n this._filesView.selectAll()\r\n } else {\r\n this._filesView.deselectAll()\r\n }\r\n event.preventDefault()\r\n }\r\n _onRowPrepared(_ref5) {\r\n var {\r\n rowType: rowType,\r\n rowElement: rowElement,\r\n data: data\r\n } = _ref5;\r\n if (\"data\" === rowType) {\r\n var $row = $(rowElement);\r\n $row.data(\"item\", data);\r\n if (this._isParentDirectoryItem(data)) {\r\n $row.addClass(FILE_MANAGER_PARENT_DIRECTORY_ITEM)\r\n }\r\n }\r\n }\r\n _onContextMenuPreparing(e) {\r\n if (!this._isDesktop()) {\r\n return\r\n }\r\n var fileItems = null;\r\n var item = {};\r\n if (e.row && \"data\" === e.row.rowType) {\r\n item = e.row.data;\r\n this._selectItem(item);\r\n fileItems = this._getFileItemsForContextMenu(item)\r\n }\r\n var eventArgs = extend({}, {\r\n targetElement: \"content\" === e.target && isDefined(e.row) ? this._filesView.getRowElement(e.rowIndex) : void 0,\r\n itemData: item,\r\n options: this._contextMenu.option(),\r\n event: e.event,\r\n isActionButton: false,\r\n cancel: false\r\n });\r\n this._raiseContextMenuShowing(eventArgs);\r\n e.items = eventArgs.cancel ? [] : this._contextMenu.createContextMenuItems(fileItems, null, item)\r\n }\r\n _onFilesViewSelectionChanged(_ref6) {\r\n var {\r\n component: component,\r\n selectedRowsData: selectedRowsData,\r\n selectedRowKeys: selectedRowKeys,\r\n currentSelectedRowKeys: currentSelectedRowKeys,\r\n currentDeselectedRowKeys: currentDeselectedRowKeys\r\n } = _ref6;\r\n this._filesView = this._filesView || component;\r\n if (this._selectAllCheckBox) {\r\n this._selectAllCheckBoxUpdating = true;\r\n this._selectAllCheckBox.option(\"value\", this._isAllItemsSelected());\r\n this._selectAllCheckBoxUpdating = false\r\n }\r\n var selectedItems = selectedRowsData.map(itemInfo => itemInfo.fileItem);\r\n this._tryRaiseSelectionChanged({\r\n selectedItemInfos: selectedRowsData,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedRowKeys,\r\n currentSelectedItemKeys: currentSelectedRowKeys,\r\n currentDeselectedItemKeys: currentDeselectedRowKeys\r\n })\r\n }\r\n _onFilesViewFocusedRowChanged(e) {\r\n var _e$row2;\r\n if (!this._isMultipleSelectionMode()) {\r\n var _e$row;\r\n this._selectItemSingleSelection(null === (_e$row = e.row) || void 0 === _e$row ? void 0 : _e$row.data)\r\n }\r\n var fileSystemItem = (null === (_e$row2 = e.row) || void 0 === _e$row2 ? void 0 : _e$row2.data.fileItem) || null;\r\n this._onFocusedItemChanged({\r\n item: fileSystemItem,\r\n itemKey: null === fileSystemItem || void 0 === fileSystemItem ? void 0 : fileSystemItem.key,\r\n itemElement: e.rowElement\r\n })\r\n }\r\n _onFilesViewOptionChanged(_ref7) {\r\n var {\r\n fullName: fullName\r\n } = _ref7;\r\n if (fullName.indexOf(\"sortOrder\") > -1) {\r\n this._filesView.columnOption(\"isParentFolder\", {\r\n sortOrder: \"asc\",\r\n sortIndex: 0\r\n })\r\n }\r\n }\r\n _resetFocus() {\r\n this._setFocusedItemKey(void 0)\r\n }\r\n _createThumbnailColumnCell(container, cellInfo) {\r\n this._getItemThumbnailContainer(cellInfo.data).appendTo(container)\r\n }\r\n _createNameColumnCell(container, cellInfo) {\r\n var $button = $(\"<div>\");\r\n var $name = $(\"<span>\").text(cellInfo.data.fileItem.name).addClass(FILE_MANAGER_DETAILS_ITEM_NAME_CLASS);\r\n var $wrapper = $(\"<div>\").append($name, $button).addClass(FILE_MANAGER_DETAILS_ITEM_NAME_WRAPPER_CLASS);\r\n $(container).append($wrapper);\r\n this._createComponent($button, FileManagerFileActionsButton, {\r\n onClick: e => this._onFileItemActionButtonClick(e)\r\n })\r\n }\r\n _calculateSizeColumnCellValue(rowData) {\r\n return rowData.fileItem.isDirectory ? \"\" : getDisplayFileSize(rowData.fileItem.size)\r\n }\r\n _selectItem(fileItemInfo) {\r\n var selectItemFunc = this._isMultipleSelectionMode() ? this._selectItemMultipleSelection : this._selectItemSingleSelection;\r\n selectItemFunc.call(this, fileItemInfo)\r\n }\r\n _deselectItem(item) {\r\n this._filesView.deselectRows([item.fileItem.key])\r\n }\r\n _selectItemSingleSelection(fileItemInfo) {\r\n if (!this._focusedItem || !fileItemInfo || this._focusedItem.fileItem.key !== fileItemInfo.fileItem.key) {\r\n var oldFocusedItem = this._focusedItem;\r\n this._focusedItem = fileItemInfo;\r\n var deselectedKeys = [];\r\n if (oldFocusedItem) {\r\n deselectedKeys.push(oldFocusedItem.fileItem.key)\r\n }\r\n var selectedItems = [];\r\n var selectedKeys = [];\r\n if (fileItemInfo && !this._isParentDirectoryItem(fileItemInfo)) {\r\n selectedItems.push(fileItemInfo.fileItem);\r\n selectedKeys.push(fileItemInfo.fileItem.key)\r\n }\r\n this._raiseSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedKeys,\r\n currentSelectedItemKeys: [...selectedKeys],\r\n currentDeselectedItemKeys: deselectedKeys\r\n })\r\n }\r\n }\r\n _selectItemMultipleSelection(_ref8) {\r\n var {\r\n fileItem: fileItem\r\n } = _ref8;\r\n if (!this._filesView.isRowSelected(fileItem.key)) {\r\n var selectionController = this._filesView.getController(\"selection\");\r\n var preserve = selectionController.isSelectionWithCheckboxes();\r\n this._filesView.selectRows([fileItem.key], preserve)\r\n }\r\n }\r\n _setSelectedItemKeys(itemKeys) {\r\n this._filesView.option(\"selectedRowKeys\", itemKeys)\r\n }\r\n _setFocusedItemKey(itemKey) {\r\n var _this$_filesView;\r\n null === (_this$_filesView = this._filesView) || void 0 === _this$_filesView ? void 0 : _this$_filesView.option(\"focusedRowKey\", itemKey)\r\n }\r\n clearSelection() {\r\n if (this._isMultipleSelectionMode()) {\r\n this._filesView.clearSelection()\r\n } else {\r\n this._filesView.option(\"focusedRowIndex\", -1)\r\n }\r\n }\r\n refresh(options, operation) {\r\n var actualOptions = {\r\n dataSource: this._createDataSource()\r\n };\r\n if (options && Object.prototype.hasOwnProperty.call(options, \"focusedItemKey\")) {\r\n if (isDefined(options.focusedItemKey)) {\r\n actualOptions.focusedRowKey = options.focusedItemKey\r\n } else {\r\n actualOptions.focusedRowIndex = -1\r\n }\r\n }\r\n var hasNoScrollTarget = !isDefined(actualOptions.focusedRowKey) && -1 === actualOptions.focusedRowIndex;\r\n if (hasNoScrollTarget && operation === OPERATIONS.NAVIGATION) {\r\n actualOptions.paging = {\r\n pageIndex: 0\r\n };\r\n this._needResetScrollPosition = true\r\n }\r\n this._filesView.option(actualOptions);\r\n this._refreshDeferred = new Deferred;\r\n return this._refreshDeferred.promise()\r\n }\r\n _getScrollable() {\r\n return this._filesView.getScrollable()\r\n }\r\n getSelectedItems() {\r\n if (this._isMultipleSelectionMode()) {\r\n return this._filesView.getSelectedRowsData()\r\n }\r\n return this._focusedItem && !this._isParentDirectoryItem(this._focusedItem) ? [this._focusedItem] : []\r\n }\r\n}\r\nexport default FileManagerDetailsItemList;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport Selection from \"../selection/selection\";\r\nvar FILE_MANAGER_THUMBNAILS_VIEW_PORT_CLASS = \"dx-filemanager-thumbnails-view-port\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_LIST_CONTAINER_CLASS = \"dx-filemanager-thumbnails-container\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_CLASS = \"dx-filemanager-thumbnails-item\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_NAME_CLASS = \"dx-filemanager-thumbnails-item-name\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_SPACER_CLASS = \"dx-filemanager-thumbnails-item-spacer\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_DATA_KEY = \"dxFileManagerItemData\";\r\nvar FILE_MANAGER_THUMBNAILS_LIST_BOX_NAMESPACE = \"dxFileManagerThumbnailsListBox\";\r\nvar FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME = addNamespace(holdEvent.name, FILE_MANAGER_THUMBNAILS_LIST_BOX_NAMESPACE);\r\nclass FileManagerThumbnailListBox extends CollectionWidget {\r\n _initMarkup() {\r\n this._initActions();\r\n this._lockFocusedItemProcessing = false;\r\n this.$element().addClass(FILE_MANAGER_THUMBNAILS_VIEW_PORT_CLASS);\r\n this._renderScrollView();\r\n this._renderItemsContainer();\r\n this._createScrollViewControl();\r\n super._initMarkup();\r\n this.onFocusedItemChanged = this._onFocusedItemChanged.bind(this);\r\n this._layoutUtils = new ListBoxLayoutUtils(this._scrollView, this.$element(), this._$itemContainer, this.itemElements().first());\r\n this._syncFocusedItemKey()\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onItemEnterKeyPressed: this._createActionByOption(\"onItemEnterKeyPressed\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\")\r\n }\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n this._itemThumbnailTemplate = this.option(\"itemThumbnailTemplate\");\r\n this._getTooltipText = this.option(\"getTooltipText\");\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data, itemModel) {\r\n var $itemElement = this._getDefaultItemTemplate(itemModel, $container);\r\n $container.append($itemElement)\r\n }.bind(this), [\"fileItem\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n }\r\n _createScrollViewControl() {\r\n if (!this._scrollView) {\r\n this._scrollView = this._createComponent(this._$scrollView, ScrollView, {\r\n scrollByContent: true,\r\n scrollByThumb: true,\r\n useKeyboard: false,\r\n showScrollbar: \"onHover\"\r\n })\r\n }\r\n }\r\n _renderScrollView() {\r\n if (!this._$scrollView) {\r\n this._$scrollView = $(\"<div>\").appendTo(this.$element())\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollView\r\n }\r\n _renderItemsContainer() {\r\n if (!this._$itemContainer) {\r\n this._$itemContainer = $(\"<div>\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_LIST_CONTAINER_CLASS).appendTo(this._$scrollView)\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers()\r\n }\r\n _clean() {\r\n this._detachEventHandlers();\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n upArrow(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processArrowKeys(-1, false, e)\r\n },\r\n downArrow(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processArrowKeys(1, false, e)\r\n },\r\n home(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processHomeEndKeys(0, true, e)\r\n },\r\n end(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processHomeEndKeys(this._getItemsLength() - 1, true, e)\r\n },\r\n pageUp(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processPageChange(true, e)\r\n },\r\n pageDown(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processPageChange(false, e)\r\n },\r\n enter(e) {\r\n this._beforeKeyProcessing(e);\r\n this._actions.onItemEnterKeyPressed(this._getFocusedItem())\r\n },\r\n A(e) {\r\n this._beforeKeyProcessing(e);\r\n if (isCommandKeyPressed(e)) {\r\n this.selectAll()\r\n }\r\n }\r\n })\r\n }\r\n _beforeKeyProcessing(e) {\r\n e.preventDefault();\r\n this._layoutUtils.reset()\r\n }\r\n _processArrowKeys(offset, horizontal, eventArgs) {\r\n var item = this._getFocusedItem();\r\n if (item) {\r\n if (!horizontal) {\r\n var layout = this._layoutUtils.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n offset *= layout.itemPerRowCount\r\n }\r\n var newItemIndex = this._getIndexByItem(item) + offset;\r\n this._focusItemByIndex(newItemIndex, true, eventArgs)\r\n }\r\n }\r\n _processHomeEndKeys(index, scrollToItem, eventArgs) {\r\n this._focusItemByIndex(index, scrollToItem, eventArgs)\r\n }\r\n _processPageChange(pageUp, eventArgs) {\r\n var item = this._getFocusedItem();\r\n if (!item) {\r\n return\r\n }\r\n var layout = this._layoutUtils.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n var itemLayout = this._layoutUtils.createItemLayoutModel(this._getIndexByItem(item));\r\n var rowOffset = pageUp ? layout.rowPerPageRate : -layout.rowPerPageRate;\r\n var newRowRate = itemLayout.itemRowIndex - rowOffset;\r\n var roundFunc = pageUp ? Math.ceil : Math.floor;\r\n var newRowIndex = roundFunc(newRowRate);\r\n var newItemIndex = newRowIndex * layout.itemPerRowCount + itemLayout.itemColumnIndex;\r\n if (newItemIndex < 0) {\r\n newItemIndex = 0\r\n } else if (newItemIndex >= this._getItemsLength()) {\r\n newItemIndex = this._getItemsLength() - 1\r\n }\r\n this._focusItemByIndex(newItemIndex, true, eventArgs)\r\n }\r\n _processLongTap(e) {\r\n var $targetItem = this._closestItemElement($(e.target));\r\n var itemIndex = this._getIndexByItemElement($targetItem);\r\n this._selection.changeItemSelection(itemIndex, {\r\n control: true\r\n })\r\n }\r\n _attachEventHandlers() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n eventsEngine.on(this._itemContainer(), FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME, \".\".concat(this._itemContentClass()), e => {\r\n this._processLongTap(e);\r\n e.stopPropagation()\r\n })\r\n }\r\n eventsEngine.on(this._itemContainer(), \"mousedown selectstart\", e => {\r\n if (e.shiftKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._itemContainer(), FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME);\r\n eventsEngine.off(this._itemContainer(), \"mousedown selectstart\")\r\n }\r\n _itemContainer() {\r\n return this._$itemContainer\r\n }\r\n _itemClass() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_DATA_KEY\r\n }\r\n _getDefaultItemTemplate(fileItemInfo, $itemElement) {\r\n $itemElement.attr(\"title\", this._getTooltipText(fileItemInfo));\r\n var $itemThumbnail = this._itemThumbnailTemplate(fileItemInfo);\r\n var $itemSpacer = $(\"<div>\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_SPACER_CLASS);\r\n var $itemName = $(\"<div>\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_NAME_CLASS).text(fileItemInfo.fileItem.name);\r\n $itemElement.append($itemThumbnail, $itemSpacer, $itemName)\r\n }\r\n _itemSelectHandler(e) {\r\n var options = {};\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n if (!this._isPreserveSelectionMode) {\r\n this._isPreserveSelectionMode = isCommandKeyPressed(e) || e.shiftKey\r\n }\r\n options = {\r\n control: this._isPreserveSelectionMode,\r\n shift: e.shiftKey\r\n }\r\n }\r\n var index = this._getIndexByItemElement(e.currentTarget);\r\n this._selection.changeItemSelection(index, options)\r\n }\r\n _initSelectionModule() {\r\n super._initSelectionModule();\r\n var options = extend(this._selection.options, {\r\n selectedKeys: this.option(\"selectedItemKeys\"),\r\n onSelectionChanged: args => {\r\n this.option(\"selectedItems\", this._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n this._updateSelectedItems(args)\r\n }\r\n });\r\n this._selection = new Selection(options)\r\n }\r\n _updateSelectedItems(args) {\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (this._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n if (!this._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n this._editStrategy.beginCache();\r\n for (var i = 0; i < removedItemKeys.length; i++) {\r\n normalizedIndex = this._getIndexByKey(removedItemKeys[i]);\r\n removedSelection.push(normalizedIndex);\r\n this._removeSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < addedItemKeys.length; _i++) {\r\n normalizedIndex = this._getIndexByKey(addedItemKeys[_i]);\r\n addedSelection.push(normalizedIndex);\r\n this._addSelection(normalizedIndex)\r\n }\r\n this._editStrategy.endCache();\r\n this._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done(() => this._fireSelectionChangeEvent(args))\r\n }\r\n }\r\n _fireSelectionChangeEvent(args) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })(args)\r\n }\r\n _updateSelection(addedSelection, removedSelection) {\r\n var selectedItemsCount = this.getSelectedItems().length;\r\n if (0 === selectedItemsCount) {\r\n this._isPreserveSelectionMode = false\r\n }\r\n }\r\n _normalizeSelectedItems() {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n _focusOutHandler() {}\r\n _getItems() {\r\n return this.option(\"items\") || []\r\n }\r\n _getItemsLength() {\r\n return this._getItems().length\r\n }\r\n _getIndexByItemElement(itemElement) {\r\n return this._editStrategy.getNormalizedIndex(itemElement)\r\n }\r\n _getItemByIndex(index) {\r\n return this._getItems()[index]\r\n }\r\n _getFocusedItem() {\r\n return this.getItemByItemElement(this.option(\"focusedElement\"))\r\n }\r\n _focusItem(item, scrollToItem) {\r\n this.option(\"focusedElement\", this.getItemElementByItem(item));\r\n if (scrollToItem) {\r\n this._layoutUtils.scrollToItem(this._getIndexByItem(item))\r\n }\r\n }\r\n _focusItemByIndex(index, scrollToItem, eventArgs) {\r\n if (index >= 0 && index < this._getItemsLength()) {\r\n var item = this._getItemByIndex(index);\r\n this._focusItem(item, scrollToItem, eventArgs)\r\n }\r\n }\r\n _syncFocusedItemKey() {\r\n if (!this._syncFocusedItemKeyDeferred) {\r\n this._syncFocusedItemKeyDeferred = new Deferred\r\n }\r\n var deferred = this._syncFocusedItemKeyDeferred;\r\n if (this._dataSource && this._dataSource.isLoading()) {\r\n return deferred.promise()\r\n }\r\n var focusedItemKey = this.option(\"focusedItemKey\");\r\n if (isDefined(focusedItemKey)) {\r\n var items = this.option(\"items\");\r\n var focusedItem = items.find(item => this.keyOf(item) === focusedItemKey);\r\n if (focusedItem) {\r\n this._focusItem(focusedItem, true);\r\n deferred.resolve()\r\n } else {\r\n this.option(\"focusedItemKey\", void 0);\r\n deferred.reject()\r\n }\r\n } else {\r\n deferred.resolve()\r\n }\r\n this._syncFocusedItemKeyDeferred = null;\r\n return deferred.promise()\r\n }\r\n _onFocusedItemChanged() {\r\n var focusedItem = this._getFocusedItem();\r\n var newFocusedItemKey = this.keyOf(focusedItem);\r\n var oldFocusedItemKey = this.option(\"focusedItemKey\");\r\n if (newFocusedItemKey !== oldFocusedItemKey) {\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", newFocusedItemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._raiseFocusedItemChanged(focusedItem)\r\n }\r\n }\r\n _raiseFocusedItemChanged(focusedItem) {\r\n var args = {\r\n item: focusedItem,\r\n itemElement: this.option(\"focusedElement\")\r\n };\r\n this._actions.onFocusedItemChanged(args)\r\n }\r\n _changeItemSelection(item, select) {\r\n if (this.isItemSelected(item) === select) {\r\n return\r\n }\r\n var itemElement = this.getItemElementByItem(item);\r\n var index = this._getIndexByItemElement(itemElement);\r\n this._selection.changeItemSelection(index, {\r\n control: this._isPreserveSelectionMode\r\n })\r\n }\r\n _chooseSelectOption() {\r\n return \"selectedItemKeys\"\r\n }\r\n getSelectedItems() {\r\n return this._selection.getSelectedItems()\r\n }\r\n getItemElementByItem(item) {\r\n return this._editStrategy.getItemElement(item)\r\n }\r\n getItemByItemElement(itemElement) {\r\n return this._getItemByIndex(this._getIndexByItemElement(itemElement))\r\n }\r\n selectAll() {\r\n if (\"multiple\" !== this.option(\"selectionMode\")) {\r\n return\r\n }\r\n this._selection.selectAll();\r\n this._isPreserveSelectionMode = true\r\n }\r\n selectItem(item) {\r\n this._changeItemSelection(item, true)\r\n }\r\n deselectItem(item) {\r\n this._changeItemSelection(item, false)\r\n }\r\n clearSelection() {\r\n this._selection.deselectAll()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n if (this._layoutUtils) {\r\n this._layoutUtils.updateItems(this.itemElements().first())\r\n }\r\n super._optionChanged(args);\r\n break;\r\n case \"focusedItemKey\":\r\n if (this._lockFocusedItemProcessing) {\r\n break\r\n }\r\n if (isDefined(args.value)) {\r\n this._syncFocusedItemKey().done(() => {\r\n var focusedItem = this._getFocusedItem();\r\n this._raiseFocusedItemChanged(focusedItem)\r\n })\r\n } else {\r\n this.option(\"focusedElement\", null);\r\n this._raiseFocusedItemChanged(null)\r\n }\r\n break;\r\n case \"onItemEnterKeyPressed\":\r\n case \"onFocusedItemChanged\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nclass ListBoxLayoutUtils {\r\n constructor(scrollView, $viewPort, $itemContainer, $item) {\r\n this._layoutModel = null;\r\n this._scrollView = scrollView;\r\n this._$viewPort = $viewPort;\r\n this._$itemContainer = $itemContainer;\r\n this._$item = $item\r\n }\r\n updateItems($item) {\r\n this._$item = $item\r\n }\r\n reset() {\r\n this._layoutModel = null\r\n }\r\n getLayoutModel() {\r\n if (!this._layoutModel) {\r\n this._layoutModel = this._createLayoutModel()\r\n }\r\n return this._layoutModel\r\n }\r\n _createLayoutModel() {\r\n if (!this._$item) {\r\n return null\r\n }\r\n var itemWidth = getOuterWidth(this._$item, true);\r\n if (0 === itemWidth) {\r\n return null\r\n }\r\n var itemHeight = getOuterHeight(this._$item, true);\r\n var viewPortWidth = getInnerWidth(this._$itemContainer);\r\n var viewPortHeight = getInnerHeight(this._$viewPort);\r\n var viewPortScrollTop = this._scrollView.scrollTop();\r\n var viewPortScrollBottom = viewPortScrollTop + viewPortHeight;\r\n var itemPerRowCount = Math.floor(viewPortWidth / itemWidth);\r\n var rowPerPageRate = viewPortHeight / itemHeight;\r\n return {\r\n itemWidth: itemWidth,\r\n itemHeight: itemHeight,\r\n viewPortWidth: viewPortWidth,\r\n viewPortHeight: viewPortHeight,\r\n viewPortScrollTop: viewPortScrollTop,\r\n viewPortScrollBottom: viewPortScrollBottom,\r\n itemPerRowCount: itemPerRowCount,\r\n rowPerPageRate: rowPerPageRate\r\n }\r\n }\r\n createItemLayoutModel(index) {\r\n var layout = this.getLayoutModel();\r\n if (!layout) {\r\n return null\r\n }\r\n var itemRowIndex = Math.floor(index / layout.itemPerRowCount);\r\n var itemColumnIndex = index % layout.itemPerRowCount;\r\n var itemTop = itemRowIndex * layout.itemHeight;\r\n var itemBottom = itemTop + layout.itemHeight;\r\n return {\r\n itemRowIndex: itemRowIndex,\r\n itemColumnIndex: itemColumnIndex,\r\n itemTop: itemTop,\r\n itemBottom: itemBottom\r\n }\r\n }\r\n scrollToItem(index) {\r\n var layout = this.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n var itemRowIndex = Math.floor(index / layout.itemPerRowCount);\r\n var itemTop = itemRowIndex * layout.itemHeight;\r\n var itemBottom = itemTop + layout.itemHeight;\r\n var newScrollTop = layout.viewPortScrollTop;\r\n if (itemTop < layout.viewPortScrollTop) {\r\n newScrollTop = itemTop\r\n } else if (itemBottom > layout.viewPortScrollBottom) {\r\n newScrollTop = itemBottom - layout.viewPortHeight\r\n }\r\n this._scrollView.scrollTo(newScrollTop)\r\n }\r\n}\r\nexport default FileManagerThumbnailListBox;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.item_list.thumbnails.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n getDisplayFileSize\r\n} from \"./ui.file_manager.common\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport FileManagerThumbnailListBox from \"./ui.file_manager.items_list.thumbnails.list_box\";\r\nimport FileManagerItemListBase from \"./ui.file_manager.item_list\";\r\nimport {\r\n OPERATIONS\r\n} from \"./file_items_controller\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_LIST_CLASS = \"dx-filemanager-thumbnails\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_CLASS = \"dx-filemanager-thumbnails-item\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_THUMBNAIL_CLASS = \"dx-filemanager-thumbnails-item-thumbnail\";\r\nvar FILE_MANAGER_THUMBNAILS_EVENT_NAMESPACE = \"dxFileManager_thumbnails\";\r\nclass FileManagerThumbnailsItemList extends FileManagerItemListBase {\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.$element().addClass(FILE_MANAGER_THUMBNAILS_ITEM_LIST_CLASS);\r\n var contextMenuEvent = addNamespace(contextMenuEventName, FILE_MANAGER_THUMBNAILS_EVENT_NAMESPACE);\r\n eventsEngine.on(this.$element(), contextMenuEvent, this._onContextMenu.bind(this));\r\n this._createItemList()\r\n }\r\n _createItemList() {\r\n var selectionMode = this._isMultipleSelectionMode() ? \"multiple\" : \"single\";\r\n var $itemListContainer = $(\"<div>\").appendTo(this.$element());\r\n this._itemList = this._createComponent($itemListContainer, FileManagerThumbnailListBox, {\r\n dataSource: this._createDataSource(),\r\n selectionMode: selectionMode,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusedItemKey: this.option(\"focusedItemKey\"),\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n loopItemFocus: false,\r\n focusStateEnabled: true,\r\n onItemEnterKeyPressed: this._tryOpen.bind(this),\r\n itemThumbnailTemplate: this._getItemThumbnailContainer.bind(this),\r\n getTooltipText: this._getTooltipText.bind(this),\r\n onSelectionChanged: this._onItemListSelectionChanged.bind(this),\r\n onFocusedItemChanged: this._onItemListFocusedItemChanged.bind(this),\r\n onContentReady: this._onContentReady.bind(this)\r\n })\r\n }\r\n _onContextMenu(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!this._isDesktop()) {\r\n return\r\n }\r\n var items = null;\r\n var targetItemElement = $(e.target).closest(this._getItemSelector());\r\n var targetItem = null;\r\n if (targetItemElement.length > 0) {\r\n targetItem = this._itemList.getItemByItemElement(targetItemElement);\r\n this._itemList.selectItem(targetItem);\r\n items = this._getFileItemsForContextMenu(targetItem)\r\n }\r\n var target = {\r\n itemData: targetItem,\r\n itemElement: targetItemElement.length ? targetItemElement : void 0\r\n };\r\n this._showContextMenu(items, e.target, e, target)\r\n }\r\n _getItemThumbnailCssClass() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_THUMBNAIL_CLASS\r\n }\r\n _getItemSelector() {\r\n return \".\".concat(FILE_MANAGER_THUMBNAILS_ITEM_CLASS)\r\n }\r\n _getTooltipText(fileItemInfo) {\r\n var item = fileItemInfo.fileItem;\r\n if (item.tooltipText) {\r\n return item.tooltipText\r\n }\r\n var text = \"\".concat(item.name, \"\\r\\n\");\r\n if (!item.isDirectory) {\r\n text += \"\".concat(messageLocalization.format(\"dxFileManager-listThumbnailsTooltipTextSize\"), \": \").concat(getDisplayFileSize(item.size), \"\\r\\n\")\r\n }\r\n text += \"\".concat(messageLocalization.format(\"dxFileManager-listThumbnailsTooltipTextDateModified\"), \": \").concat(item.dateModified);\r\n return text\r\n }\r\n _onItemDblClick(e) {\r\n var $item = $(e.currentTarget);\r\n var item = this._itemList.getItemByItemElement($item);\r\n this._tryOpen(item)\r\n }\r\n _tryOpen(item) {\r\n if (item) {\r\n this._raiseSelectedItemOpened(item)\r\n }\r\n }\r\n _getItemsInternal() {\r\n return super._getItemsInternal().then(items => {\r\n var deferred = new Deferred;\r\n setTimeout(() => deferred.resolve(items));\r\n return deferred.promise()\r\n })\r\n }\r\n _disableDragging() {\r\n return false\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n focusStateEnabled: true\r\n })\r\n }\r\n _onItemListSelectionChanged(_ref) {\r\n var {\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys\r\n } = _ref;\r\n var selectedItemInfos = this.getSelectedItems();\r\n var selectedItems = selectedItemInfos.map(itemInfo => itemInfo.fileItem);\r\n var selectedItemKeys = selectedItems.map(item => item.key);\r\n this._tryRaiseSelectionChanged({\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: addedItemKeys,\r\n currentDeselectedItemKeys: removedItemKeys\r\n })\r\n }\r\n _onItemListFocusedItemChanged(_ref2) {\r\n var {\r\n item: item,\r\n itemElement: itemElement\r\n } = _ref2;\r\n if (!this._isMultipleSelectionMode()) {\r\n this._selectItemSingleSelection(item)\r\n }\r\n var fileSystemItem = (null === item || void 0 === item ? void 0 : item.fileItem) || null;\r\n this._onFocusedItemChanged({\r\n item: fileSystemItem,\r\n itemKey: null === fileSystemItem || void 0 === fileSystemItem ? void 0 : fileSystemItem.key,\r\n itemElement: itemElement || void 0\r\n })\r\n }\r\n _getScrollable() {\r\n return this._itemList.getScrollable()\r\n }\r\n _setSelectedItemKeys(itemKeys) {\r\n this._itemList.option(\"selectedItemKeys\", itemKeys)\r\n }\r\n _setFocusedItemKey(itemKey) {\r\n this._itemList.option(\"focusedItemKey\", itemKey)\r\n }\r\n refresh(options, operation) {\r\n var actualOptions = {\r\n dataSource: this._createDataSource()\r\n };\r\n if (options && Object.prototype.hasOwnProperty.call(options, \"focusedItemKey\")) {\r\n actualOptions.focusedItemKey = options.focusedItemKey\r\n }\r\n if (options && Object.prototype.hasOwnProperty.call(options, \"selectedItemKeys\")) {\r\n actualOptions.selectedItemKeys = options.selectedItemKeys\r\n }\r\n if (!isDefined(actualOptions.focusedItemKey) && operation === OPERATIONS.NAVIGATION) {\r\n this._needResetScrollPosition = true\r\n }\r\n this._itemList.option(actualOptions);\r\n this._refreshDeferred = new Deferred;\r\n return this._refreshDeferred.promise()\r\n }\r\n _deselectItem(item) {\r\n var itemElement = this._itemList.getItemElementByItem(item);\r\n this._itemList.unselectItem(itemElement)\r\n }\r\n _selectItemSingleSelection(item) {\r\n if (item) {\r\n this._itemList.selectItem(item)\r\n } else {\r\n this._itemList.clearSelection()\r\n }\r\n }\r\n clearSelection() {\r\n this._itemList.clearSelection()\r\n }\r\n getSelectedItems() {\r\n return this._itemList.getSelectedItems()\r\n }\r\n}\r\nexport default FileManagerThumbnailsItemList;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n extendAttributes\r\n} from \"./ui.file_manager.common\";\r\nimport {\r\n isCompact,\r\n isFluent,\r\n isMaterial\r\n} from \"../themes\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Toolbar from \"../toolbar\";\r\nimport \"../drop_down_button\";\r\nvar FILE_MANAGER_TOOLBAR_CLASS = \"dx-filemanager-toolbar\";\r\nvar FILE_MANAGER_GENERAL_TOOLBAR_CLASS = \"dx-filemanager-general-toolbar\";\r\nvar FILE_MANAGER_FILE_TOOLBAR_CLASS = \"dx-filemanager-file-toolbar\";\r\nvar FILE_MANAGER_TOOLBAR_SEPARATOR_ITEM_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-separator-item\";\r\nvar FILE_MANAGER_TOOLBAR_VIEWMODE_ITEM_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-viewmode-item\";\r\nvar FILE_MANAGER_TOOLBAR_HAS_LARGE_ICON_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-has-large-icon\";\r\nvar FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS = \"dx-filemanager-view-switcher-popup\";\r\nvar DEFAULT_ITEM_CONFIGS = {\r\n showNavPane: {\r\n location: \"before\"\r\n },\r\n create: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n upload: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n refresh: {\r\n location: \"after\",\r\n showText: \"inMenu\",\r\n cssClass: FILE_MANAGER_TOOLBAR_HAS_LARGE_ICON_CLASS,\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n switchView: {\r\n location: \"after\"\r\n },\r\n download: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n move: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n copy: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n rename: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n delete: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\"\r\n }\r\n },\r\n clearSelection: {\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n compactMode: {\r\n showText: \"inMenu\"\r\n }\r\n },\r\n separator: {\r\n location: \"before\"\r\n }\r\n};\r\nvar DEFAULT_ITEM_ALLOWED_PROPERTIES = [\"visible\", \"location\", \"locateInMenu\", \"disabled\", \"showText\"];\r\nvar DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES = [\"accessKey\", \"elementAttr\", \"height\", \"hint\", \"icon\", \"stylingMode\", \"tabIndex\", \"text\", \"width\"];\r\nvar ALWAYS_VISIBLE_TOOLBAR_ITEMS = [\"separator\", \"switchView\"];\r\nvar REFRESH_ICON_MAP = {\r\n default: \"dx-filemanager-i dx-filemanager-i-refresh\",\r\n progress: \"dx-filemanager-i dx-filemanager-i-progress\",\r\n success: \"dx-filemanager-i dx-filemanager-i-done\",\r\n error: \"dx-filemanager-i dx-filemanager-i-danger\"\r\n};\r\nvar REFRESH_ITEM_PROGRESS_MESSAGE_DELAY = 500;\r\nclass FileManagerToolbar extends Widget {\r\n _init() {\r\n super._init();\r\n this._generalToolbarVisible = true;\r\n this._refreshItemState = {\r\n message: \"\",\r\n status: \"default\"\r\n }\r\n }\r\n _initMarkup() {\r\n this._createItemClickedAction();\r\n this._$viewSwitcherPopup = $(\"<div>\").addClass(FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS);\r\n this._generalToolbar = this._createToolbar(this.option(\"generalItems\"), !this._generalToolbarVisible);\r\n this._fileToolbar = this._createToolbar(this.option(\"fileItems\"), this._generalToolbarVisible);\r\n this._$viewSwitcherPopup.appendTo(this.$element());\r\n this.$element().addClass(FILE_MANAGER_TOOLBAR_CLASS + \" \" + FILE_MANAGER_GENERAL_TOOLBAR_CLASS)\r\n }\r\n _render() {\r\n super._render();\r\n var toolbar = this._getVisibleToolbar();\r\n this._checkCompactMode(toolbar)\r\n }\r\n _clean() {\r\n delete this._commandManager;\r\n delete this._itemClickedAction;\r\n delete this._$viewSwitcherPopup;\r\n delete this._generalToolbar;\r\n delete this._fileToolbar;\r\n super._clean()\r\n }\r\n _dimensionChanged(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n var toolbar = this._getVisibleToolbar();\r\n this._checkCompactMode(toolbar)\r\n }\r\n }\r\n _getVisibleToolbar() {\r\n return this._generalToolbarVisible ? this._generalToolbar : this._fileToolbar\r\n }\r\n _createToolbar(items, hidden) {\r\n var toolbarItems = this._getPreparedItems(items);\r\n var $toolbar = $(\"<div>\").appendTo(this.$element());\r\n var result = this._createComponent($toolbar, Toolbar, {\r\n items: toolbarItems,\r\n visible: !hidden,\r\n onItemClick: args => this._raiseItemClicked(args)\r\n });\r\n result.compactMode = false;\r\n return result\r\n }\r\n _getPreparedItems(items) {\r\n items = items.map(item => {\r\n var extendedItem = item;\r\n if (isString(item)) {\r\n extendedItem = {\r\n name: item\r\n }\r\n }\r\n var commandName = extendedItem.name;\r\n var preparedItem = this._configureItemByCommandName(commandName, extendedItem);\r\n preparedItem.originalItemData = item;\r\n if (\"separator\" !== commandName) {\r\n this._setItemVisibleAvailable(preparedItem)\r\n }\r\n return preparedItem\r\n });\r\n this._updateSeparatorsVisibility(items);\r\n return items\r\n }\r\n _updateSeparatorsVisibility(items, toolbar) {\r\n var hasModifications = false;\r\n var menuItems = this._getMenuItems(toolbar);\r\n var hasItemsBefore = {\r\n before: false,\r\n center: false,\r\n after: false\r\n };\r\n var itemGroups = {\r\n before: this._getItemsInGroup(items, menuItems, \"before\"),\r\n center: this._getItemsInGroup(items, menuItems, \"center\"),\r\n after: this._getItemsInGroup(items, menuItems, \"after\")\r\n };\r\n items.forEach((item, i) => {\r\n var itemLocation = item.location;\r\n if (\"separator\" === item.name) {\r\n var isSeparatorVisible = hasItemsBefore[itemLocation] && this._groupHasItemsAfter(itemGroups[itemLocation]);\r\n if (item.visible !== isSeparatorVisible) {\r\n hasModifications = true;\r\n item.visible = isSeparatorVisible\r\n }\r\n hasItemsBefore[itemLocation] = false\r\n } else {\r\n if (!this._isItemInMenu(menuItems, item)) {\r\n hasItemsBefore[itemLocation] = hasItemsBefore[itemLocation] || item.visible\r\n }\r\n itemGroups[itemLocation].shift()\r\n }\r\n });\r\n if (toolbar && hasModifications) {\r\n toolbar.repaint()\r\n }\r\n return hasModifications\r\n }\r\n _getMenuItems(toolbar) {\r\n var result = toolbar ? toolbar._getMenuItems() : [];\r\n return result.map(menuItem => menuItem.originalItemData)\r\n }\r\n _isItemInMenu(menuItems, item) {\r\n return !!menuItems.length && \"never\" !== ensureDefined(item.locateInMenu, \"never\") && -1 !== menuItems.indexOf(item.originalItemData)\r\n }\r\n _getItemsInGroup(items, menuItems, groupName) {\r\n return items.filter(item => item.location === groupName && !this._isItemInMenu(menuItems, item))\r\n }\r\n _groupHasItemsAfter(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (\"separator\" !== items[i].name && items[i].visible) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _configureItemByCommandName(commandName, item) {\r\n var _result$options;\r\n var result = {};\r\n var command = this._commandManager.getCommandByName(commandName);\r\n if (command) {\r\n result = this._createCommandItem(command)\r\n }\r\n switch (commandName) {\r\n case \"separator\":\r\n result = this._createSeparatorItem();\r\n break;\r\n case \"switchView\":\r\n result = this._createViewModeItem()\r\n }\r\n if (this._isDefaultItem(commandName)) {\r\n var defaultConfig = DEFAULT_ITEM_CONFIGS[commandName];\r\n extend(true, result, defaultConfig);\r\n var resultCssClass = result.cssClass || \"\";\r\n extendAttributes(result, item, DEFAULT_ITEM_ALLOWED_PROPERTIES);\r\n if (isDefined(item.options)) {\r\n extendAttributes(result.options, item.options, DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES)\r\n }\r\n extendAttributes(result.options, item, [\"text\", \"icon\"]);\r\n if (item.cssClass) {\r\n resultCssClass = \"\".concat(resultCssClass, \" \").concat(item.cssClass)\r\n }\r\n if (resultCssClass) {\r\n result.cssClass = resultCssClass\r\n }\r\n if (!isDefined(item.visible)) {\r\n result._autoHide = true\r\n }\r\n if (\"dxButton\" === result.widget) {\r\n if (\"inMenu\" === result.showText && !isDefined(result.options.hint)) {\r\n result.options.hint = result.options.text\r\n }\r\n if (result.compactMode && !isDefined(result.options.hint)) {\r\n this._configureHintForCompactMode(result)\r\n }\r\n }\r\n } else {\r\n extend(true, result, item);\r\n if (!result.widget) {\r\n result.widget = \"dxButton\"\r\n }\r\n if (\"dxButton\" === result.widget && !result.compactMode && !result.showText && result.options && result.options.icon && result.options.text) {\r\n result.compactMode = {\r\n showText: \"inMenu\"\r\n }\r\n }\r\n }\r\n if (commandName && !result.name) {\r\n extend(result, {\r\n name: commandName\r\n })\r\n }\r\n result.location = ensureDefined(result.location, \"before\");\r\n if (!isDefined(null === (_result$options = result.options) || void 0 === _result$options ? void 0 : _result$options.stylingMode)) {\r\n if (\"dxButton\" === result.widget) {\r\n extend(true, result, {\r\n options: {\r\n stylingMode: \"text\"\r\n }\r\n })\r\n }\r\n if (\"dxSelectBox\" === result.widget) {\r\n extend(true, result, {\r\n options: {\r\n stylingMode: \"filled\"\r\n }\r\n })\r\n }\r\n }\r\n return result\r\n }\r\n _isDefaultItem(commandName) {\r\n return !!DEFAULT_ITEM_CONFIGS[commandName]\r\n }\r\n _createCommandItem(command) {\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n text: command.text,\r\n hint: command.hint,\r\n commandText: command.text,\r\n icon: command.icon,\r\n stylingMode: \"text\",\r\n onClick: e => this._executeCommand(command)\r\n }\r\n }\r\n }\r\n _createSeparatorItem() {\r\n return {\r\n template: (data, index, element) => {\r\n $(element).addClass(FILE_MANAGER_TOOLBAR_SEPARATOR_ITEM_CLASS)\r\n }\r\n }\r\n }\r\n _createViewModeItem() {\r\n var commandItems = [\"details\", \"thumbnails\"].map(name => {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = this._commandManager.getCommandByName(name);\r\n return {\r\n name: name,\r\n text: text,\r\n icon: icon\r\n }\r\n });\r\n var selectedIndex = \"thumbnails\" === this.option(\"itemViewMode\") ? 1 : 0;\r\n var dropDownOptions = {\r\n container: this._$viewSwitcherPopup\r\n };\r\n if (isMaterial()) {\r\n dropDownOptions.width = isCompact() ? 28 : 36\r\n } else if (isFluent()) {\r\n dropDownOptions.width = isCompact() ? 34 : 40\r\n }\r\n return {\r\n cssClass: FILE_MANAGER_TOOLBAR_VIEWMODE_ITEM_CLASS,\r\n widget: \"dxDropDownButton\",\r\n options: {\r\n items: commandItems,\r\n keyExpr: \"name\",\r\n selectedItemKey: this.option(\"itemViewMode\"),\r\n displayExpr: \" \",\r\n hint: commandItems[selectedIndex].text,\r\n stylingMode: \"text\",\r\n showArrowIcon: false,\r\n useSelectMode: true,\r\n dropDownOptions: dropDownOptions,\r\n onItemClick: e => this._executeCommand(e.itemData.name)\r\n }\r\n }\r\n }\r\n _configureHintForCompactMode(item) {\r\n item.options.hint = \"\";\r\n item.compactMode.options = item.compactMode.options || {};\r\n item.compactMode.options.hint = item.options.text\r\n }\r\n _checkCompactMode(toolbar) {\r\n if (toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, false)\r\n }\r\n var useCompactMode = this._toolbarHasItemsOverflow(toolbar);\r\n if (toolbar.compactMode !== useCompactMode) {\r\n if (!toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, useCompactMode)\r\n }\r\n toolbar.compactMode = useCompactMode\r\n } else if (toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, true)\r\n }\r\n }\r\n _toolbarHasItemsOverflow(toolbar) {\r\n var toolbarWidth = getWidth(toolbar.$element());\r\n var itemsWidth = toolbar._getItemsWidth();\r\n return toolbarWidth < itemsWidth\r\n }\r\n _toggleCompactMode(toolbar, useCompactMode) {\r\n var hasModifications = false;\r\n var items = toolbar.option(\"items\");\r\n items.forEach(item => {\r\n if (item.compactMode) {\r\n var optionsSource = null;\r\n if (useCompactMode) {\r\n item.saved = this._getCompactModeOptions(item, item._available);\r\n optionsSource = item.compactMode\r\n } else {\r\n optionsSource = item.saved\r\n }\r\n var options = this._getCompactModeOptions(optionsSource, item._available);\r\n extend(true, item, options);\r\n hasModifications = true\r\n }\r\n });\r\n hasModifications = this._updateSeparatorsVisibility(items) || hasModifications;\r\n if (hasModifications) {\r\n toolbar.repaint()\r\n }\r\n this._updateSeparatorsVisibility(items, toolbar)\r\n }\r\n _getCompactModeOptions(_ref, available) {\r\n var {\r\n showText: showText,\r\n locateInMenu: locateInMenu,\r\n options: options\r\n } = _ref;\r\n return {\r\n visible: available,\r\n showText: ensureDefined(showText, \"always\"),\r\n locateInMenu: ensureDefined(locateInMenu, \"never\"),\r\n options: {\r\n hint: null === options || void 0 === options ? void 0 : options.hint\r\n }\r\n }\r\n }\r\n _ensureAvailableCommandsVisible(toolbar) {\r\n var hasModifications = false;\r\n var items = toolbar.option(\"items\");\r\n items.forEach(item => {\r\n if (\"separator\" !== item.name) {\r\n var itemVisible = item._available;\r\n this._setItemVisibleAvailable(item);\r\n if (item._available !== itemVisible) {\r\n hasModifications = true\r\n }\r\n }\r\n });\r\n hasModifications = this._updateSeparatorsVisibility(items) || hasModifications;\r\n if (hasModifications) {\r\n toolbar.repaint()\r\n }\r\n this._updateSeparatorsVisibility(items, toolbar)\r\n }\r\n _setItemVisibleAvailable(item) {\r\n var _item$originalItemDat;\r\n var originalVisible = null === (_item$originalItemDat = item.originalItemData) || void 0 === _item$originalItemDat ? void 0 : _item$originalItemDat.visible;\r\n item._available = this._isToolbarItemAvailable(item);\r\n item.visible = isDefined(originalVisible) ? originalVisible : item._available\r\n }\r\n _fileToolbarHasEffectiveItems() {\r\n var items = this._fileToolbar.option(\"items\");\r\n return items.some(item => this._isFileToolbarItemAvailable(item))\r\n }\r\n _executeCommand(command) {\r\n this._commandManager.executeCommand(command)\r\n }\r\n _isToolbarItemAvailable(toolbarItem) {\r\n if (!this._isDefaultItem(toolbarItem.name) || !toolbarItem._autoHide) {\r\n return ensureDefined(toolbarItem.visible, true)\r\n }\r\n if (\"refresh\" === toolbarItem.name) {\r\n return this._generalToolbarVisible || !!this._isRefreshVisibleInFileToolbar\r\n }\r\n if (ALWAYS_VISIBLE_TOOLBAR_ITEMS.indexOf(toolbarItem.name) > -1) {\r\n return true\r\n }\r\n return this._isCommandAvailable(toolbarItem.name)\r\n }\r\n _isFileToolbarItemAvailable(_ref2) {\r\n var {\r\n name: name,\r\n visible: visible\r\n } = _ref2;\r\n return !this._isDefaultItem(name) && ensureDefined(visible, true) || \"clearSelection\" !== name && \"refresh\" !== name && this._isCommandAvailable(name)\r\n }\r\n _isCommandAvailable(name) {\r\n return this._commandManager.isCommandAvailable(name, this.option(\"contextItems\"))\r\n }\r\n _updateItemInToolbar(toolbar, commandName, options) {\r\n toolbar.beginUpdate();\r\n var items = toolbar.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.name === commandName) {\r\n toolbar.option(\"items[\".concat(i, \"]\"), options);\r\n break\r\n }\r\n }\r\n toolbar.endUpdate()\r\n }\r\n _raiseItemClicked(args) {\r\n var changedArgs = extend(true, {}, args);\r\n changedArgs.itemData = args.itemData.originalItemData;\r\n this._itemClickedAction(changedArgs)\r\n }\r\n _createItemClickedAction() {\r\n this._itemClickedAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n commandManager: null,\r\n generalItems: [],\r\n fileItems: [],\r\n contextItems: [],\r\n itemViewMode: \"details\",\r\n onItemClick: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"commandManager\":\r\n case \"itemViewMode\":\r\n case \"generalItems\":\r\n case \"fileItems\":\r\n this.repaint();\r\n break;\r\n case \"contextItems\":\r\n this._update();\r\n break;\r\n case \"onItemClick\":\r\n this._itemClickedAction = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n updateItemPermissions() {\r\n this.repaint();\r\n this._restoreRefreshItemState()\r\n }\r\n _restoreRefreshItemState() {\r\n this.updateRefreshItem(this._refreshItemState.message, this._refreshItemState.status)\r\n }\r\n updateRefreshItem(message, status) {\r\n var generalToolbarOptions = null;\r\n var text = messageLocalization.format(\"dxFileManager-commandRefresh\");\r\n var showText = \"inMenu\";\r\n this._isRefreshVisibleInFileToolbar = false;\r\n this._refreshItemState = {\r\n message: message,\r\n status: status\r\n };\r\n if (\"default\" === status) {\r\n generalToolbarOptions = {\r\n options: {\r\n icon: REFRESH_ICON_MAP.default\r\n }\r\n }\r\n } else {\r\n generalToolbarOptions = {\r\n options: {\r\n icon: REFRESH_ICON_MAP[status]\r\n }\r\n };\r\n this._isRefreshVisibleInFileToolbar = true;\r\n text = message;\r\n showText = \"always\"\r\n }\r\n var fileToolbarOptions = extend({}, generalToolbarOptions, {\r\n visible: this._isRefreshVisibleInFileToolbar\r\n });\r\n this._applyRefreshItemOptions(generalToolbarOptions, fileToolbarOptions);\r\n this._refreshItemTextTimeout = this._updateRefreshItemText(\"progress\" === status, text, showText)\r\n }\r\n _updateRefreshItemText(isDeferredUpdate, text, showText) {\r\n var options = {\r\n showText: showText,\r\n options: {\r\n text: text\r\n }\r\n };\r\n if (isDeferredUpdate) {\r\n return setTimeout(() => {\r\n this._applyRefreshItemOptions(options);\r\n this._refreshItemTextTimeout = void 0\r\n }, REFRESH_ITEM_PROGRESS_MESSAGE_DELAY)\r\n } else {\r\n if (this._refreshItemTextTimeout) {\r\n clearTimeout(this._refreshItemTextTimeout)\r\n }\r\n this._applyRefreshItemOptions(options);\r\n return\r\n }\r\n }\r\n _applyRefreshItemOptions(generalToolbarOptions, fileToolbarOptions) {\r\n if (!fileToolbarOptions) {\r\n fileToolbarOptions = extend({}, generalToolbarOptions)\r\n }\r\n this._updateItemInToolbar(this._generalToolbar, \"refresh\", generalToolbarOptions);\r\n this._updateItemInToolbar(this._fileToolbar, \"refresh\", fileToolbarOptions)\r\n }\r\n _update() {\r\n var showGeneralToolbar = 0 === this.option(\"contextItems\").length || !this._fileToolbarHasEffectiveItems();\r\n if (this._generalToolbarVisible !== showGeneralToolbar) {\r\n this._generalToolbar.option(\"visible\", showGeneralToolbar);\r\n this._fileToolbar.option(\"visible\", !showGeneralToolbar);\r\n this._generalToolbarVisible = showGeneralToolbar;\r\n this.$element().toggleClass(FILE_MANAGER_GENERAL_TOOLBAR_CLASS, showGeneralToolbar);\r\n this.$element().toggleClass(FILE_MANAGER_FILE_TOOLBAR_CLASS, !showGeneralToolbar)\r\n }\r\n var toolbar = this._getVisibleToolbar();\r\n this._ensureAvailableCommandsVisible(toolbar);\r\n this._checkCompactMode(toolbar)\r\n }\r\n get _commandManager() {\r\n return this.option(\"commandManager\")\r\n }\r\n}\r\nexport default FileManagerToolbar;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.notification.progress_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ProgressBar from \"../progress_bar\";\r\nimport Button from \"../button\";\r\nimport ScrollView from \"../scroll_view\";\r\nvar FILE_MANAGER_PROGRESS_PANEL_CLASS = \"dx-filemanager-progress-panel\";\r\nvar FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-container\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-title\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-title-text\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-close-button\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-infos-container\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-separator\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-info\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-common\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-info-with-details\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-details\");\r\nvar FILE_MANAGER_PROGRESS_BOX_CLASS = \"dx-filemanager-progress-box\";\r\nvar FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-error\");\r\nvar FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-without-close-button\");\r\nvar FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-image\");\r\nvar FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-wrapper\");\r\nvar FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-common\");\r\nvar FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-progress-bar\");\r\nvar FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-close-button\");\r\nvar DX_CARD_CLASS = \"dx-card\";\r\nclass FileManagerProgressPanel extends Widget {\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n this._operationCount = 0;\r\n this.$element().addClass(FILE_MANAGER_PROGRESS_PANEL_CLASS);\r\n var $scrollView = $(\"<div>\").appendTo(this.$element());\r\n var $container = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS).appendTo($scrollView);\r\n this._scrollView = this._createComponent($scrollView, ScrollView, {\r\n scrollByContent: true,\r\n scrollByThumb: true,\r\n showScrollbar: \"onScroll\"\r\n });\r\n var $title = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS).appendTo($container);\r\n $(\"<div>\").text(messageLocalization.format(\"dxFileManager-notificationProgressPanelTitle\")).addClass(FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS).appendTo($title);\r\n var $closeButton = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS).appendTo($title);\r\n this._createComponent($closeButton, Button, {\r\n icon: \"close\",\r\n stylingMode: \"text\",\r\n onClick: () => this._raisePanelClosed()\r\n });\r\n this._$infosContainer = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS).appendTo($container);\r\n this._renderEmptyListText()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onOperationClosed: null,\r\n onOperationCanceled: null,\r\n onOperationItemCanceled: null,\r\n onPanelClosed: null\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onOperationClosed: this._createActionByOption(\"onOperationClosed\"),\r\n onOperationCanceled: this._createActionByOption(\"onOperationCanceled\"),\r\n onOperationItemCanceled: this._createActionByOption(\"onOperationItemCanceled\"),\r\n onPanelClosed: this._createActionByOption(\"onPanelClosed\")\r\n }\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"test\":\r\n break;\r\n case \"onOperationClosed\":\r\n case \"onOperationCanceled\":\r\n case \"onOperationItemCanceled\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n addOperation(commonText, showCloseButtonAlways, allowProgressAutoUpdate) {\r\n if (this._operationCount) {\r\n $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS).prependTo(this._$infosContainer)\r\n } else {\r\n this._$infosContainer.empty()\r\n }\r\n this._operationCount++;\r\n var info = {\r\n customCloseHandling: showCloseButtonAlways,\r\n allowProgressAutoUpdate: ensureDefined(allowProgressAutoUpdate, true)\r\n };\r\n var $info = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS).prependTo(this._$infosContainer);\r\n info.$info = $info;\r\n var $common = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS).appendTo($info);\r\n info.common = this._createProgressBox($common, {\r\n commonText: commonText,\r\n showCloseButton: true,\r\n showCloseButtonAlways: showCloseButtonAlways,\r\n onCloseButtonClick: () => this._closeOperation(info)\r\n });\r\n return info\r\n }\r\n addOperationDetails(info, details, showCloseButton) {\r\n info.$info.addClass(FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS);\r\n var $details = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS).appendTo(info.$info);\r\n info.details = details.map((itemInfo, index) => {\r\n itemInfo.info = info;\r\n return this._createDetailsItem($details, itemInfo, index, false, showCloseButton)\r\n })\r\n }\r\n _createDetailsItem($container, item, itemIndex, skipProgressBox, showCloseButton) {\r\n var $detailsItem = $(\"<div>\").appendTo($container);\r\n if (-1 !== itemIndex) {\r\n $detailsItem.addClass(DX_CARD_CLASS)\r\n }\r\n return this._createProgressBox($detailsItem, {\r\n commonText: item.commonText,\r\n imageUrl: item.imageUrl,\r\n skipProgressBox: skipProgressBox,\r\n showCloseButton: showCloseButton,\r\n showCloseButtonAlways: showCloseButton,\r\n onCloseButtonClick: () => this._cancelOperationItem(item, itemIndex)\r\n })\r\n }\r\n completeOperationItem(operationInfo, itemIndex, commonProgress) {\r\n if (operationInfo.allowProgressAutoUpdate) {\r\n this.updateOperationItemProgress(operationInfo, itemIndex, 100, commonProgress)\r\n }\r\n this._setCloseButtonVisible(operationInfo.details[itemIndex], false)\r\n }\r\n updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress) {\r\n this.updateOperationCommonProgress(operationInfo, commonProgress);\r\n if (operationInfo.details) {\r\n var detailsItem = operationInfo.details[itemIndex];\r\n detailsItem.progressBar.option(\"value\", itemProgress)\r\n }\r\n }\r\n updateOperationCommonProgress(operationInfo, commonProgress) {\r\n var _operationInfo$common;\r\n null === (_operationInfo$common = operationInfo.common.progressBar) || void 0 === _operationInfo$common ? void 0 : _operationInfo$common.option(\"value\", commonProgress)\r\n }\r\n completeOperation(info, commonText, isError, statusText) {\r\n info.completed = true;\r\n info.common.$commonText.text(commonText);\r\n if (isError) {\r\n this._removeProgressBar(info.common)\r\n } else if (info.allowProgressAutoUpdate) {\r\n this.updateOperationCommonProgress(info, 100)\r\n }\r\n if (statusText) {\r\n this._setProgressBarText(info.common, statusText)\r\n }\r\n this._setCloseButtonVisible(info.common, true)\r\n }\r\n completeSingleOperationWithError(info, errorText) {\r\n var _info$details;\r\n var detailsItem = null === (_info$details = info.details) || void 0 === _info$details ? void 0 : _info$details[0];\r\n info.completed = true;\r\n this._renderOperationError(detailsItem || info.common, errorText);\r\n this._setCloseButtonVisible(info.common, true);\r\n if (detailsItem) {\r\n this._setCloseButtonVisible(detailsItem, false)\r\n }\r\n }\r\n addOperationDetailsError(info, index, errorText) {\r\n var detailsItem = info.details[index];\r\n this._renderOperationError(detailsItem, errorText);\r\n this._setCloseButtonVisible(detailsItem, false)\r\n }\r\n _renderError($container, $target, errorText) {\r\n $(\"<div>\").text(errorText).addClass(FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS).appendTo($container)\r\n }\r\n _renderEmptyListText() {\r\n this._$infosContainer.text(messageLocalization.format(\"dxFileManager-notificationProgressPanelEmptyListText\"))\r\n }\r\n _renderOperationError(info, errorText) {\r\n this._removeProgressBar(info);\r\n this._renderError(info.$wrapper, info.$commonText, errorText)\r\n }\r\n _removeProgressBar(progressBox) {\r\n if (progressBox.progressBar) {\r\n progressBox.progressBar.dispose();\r\n progressBox.progressBar.$element().remove();\r\n progressBox.progressBar = null\r\n }\r\n }\r\n _createProgressBox($container, options) {\r\n $container.addClass(FILE_MANAGER_PROGRESS_BOX_CLASS);\r\n if (!options.showCloseButtonAlways) {\r\n $container.addClass(FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS)\r\n }\r\n if (options.imageUrl) {\r\n getImageContainer(options.imageUrl).addClass(FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS).appendTo($container)\r\n }\r\n var $wrapper = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS).appendTo($container);\r\n var $commonText = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS).text(options.commonText).appendTo($wrapper);\r\n var progressBar = null;\r\n if (!options.skipProgressBox) {\r\n var $progressBar = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS).appendTo($wrapper);\r\n progressBar = this._createComponent($progressBar, ProgressBar, {\r\n min: 0,\r\n max: 100,\r\n width: \"100%\",\r\n validationMessageMode: \"always\",\r\n statusFormat: (ratio, value) => this._getStatusString(ratio, value)\r\n })\r\n }\r\n var closeButton = null;\r\n if (options.showCloseButton) {\r\n var $button = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS).appendTo($container);\r\n closeButton = this._createComponent($button, Button, {\r\n icon: \"dx-filemanager-i dx-filemanager-i-cancel\",\r\n stylingMode: \"text\",\r\n visible: options.showCloseButtonAlways,\r\n onClick: options.onCloseButtonClick\r\n })\r\n }\r\n return {\r\n $commonText: $commonText,\r\n progressBar: progressBar,\r\n $element: $container,\r\n $wrapper: $wrapper,\r\n closeButton: closeButton\r\n }\r\n }\r\n _setCloseButtonVisible(progressBox, visible) {\r\n if (progressBox.closeButton) {\r\n progressBox.$element.toggleClass(FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS, !visible);\r\n progressBox.closeButton.option(\"visible\", visible)\r\n }\r\n }\r\n _setProgressBarText(progressBox, text) {\r\n progressBox.progressBar.option(\"statusFormat\", () => text)\r\n }\r\n _closeOperation(info) {\r\n if (info.customCloseHandling && !info.completed) {\r\n this._raiseOperationCanceled(info);\r\n this._setCloseButtonVisible(info.common, false);\r\n info.details.forEach(item => this._displayClosedOperationItem(item))\r\n } else {\r\n this._raiseOperationClosed(info);\r\n info.$info.next(\".\".concat(FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS)).remove();\r\n info.$info.remove();\r\n this._operationCount--;\r\n if (!this._operationCount) {\r\n this._renderEmptyListText()\r\n }\r\n }\r\n }\r\n _cancelOperationItem(item, itemIndex) {\r\n this._raiseOperationItemCanceled(item, itemIndex);\r\n var itemInfo = item.info.details[itemIndex];\r\n this._displayClosedOperationItem(itemInfo)\r\n }\r\n _displayClosedOperationItem(itemInfo) {\r\n this._setProgressBarText(itemInfo, messageLocalization.format(\"dxFileManager-notificationProgressPanelOperationCanceled\"));\r\n this._setCloseButtonVisible(itemInfo, false)\r\n }\r\n _getStatusString(ratio, value) {\r\n return 1 === ratio ? messageLocalization.format(\"Done\") : Math.round(100 * ratio) + \"%\"\r\n }\r\n _raiseOperationClosed(info) {\r\n this._actions.onOperationClosed({\r\n info: info\r\n })\r\n }\r\n _raiseOperationCanceled(info) {\r\n this._actions.onOperationCanceled({\r\n info: info\r\n })\r\n }\r\n _raiseOperationItemCanceled(item, itemIndex) {\r\n this._actions.onOperationItemCanceled({\r\n item: item,\r\n itemIndex: itemIndex\r\n })\r\n }\r\n _raisePanelClosed() {\r\n this._actions.onPanelClosed()\r\n }\r\n}\r\nexport default FileManagerProgressPanel;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.notification_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport FileManagerProgressPanel from \"./ui.file_manager.notification.progress_panel\";\r\nvar FILE_MANAGER_PROGRESS_BOX_CLASS = \"dx-filemanager-progress-box\";\r\nvar FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-error\");\r\nvar FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-image\");\r\nvar FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-wrapper\");\r\nvar FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-common\");\r\nvar MANAGER_ID_NAME = \"__operationInfoManager\";\r\nvar ACTION_PROGRESS_STATUS = {\r\n default: \"default\",\r\n progress: \"progress\",\r\n error: \"error\",\r\n success: \"success\"\r\n};\r\nclass NotificationManagerBase {\r\n constructor(_ref) {\r\n var {\r\n onActionProgressStatusChanged: onActionProgressStatusChanged,\r\n isActual: isActual\r\n } = _ref;\r\n this._id = (new Guid).toString();\r\n this._isActual = isActual || false;\r\n this._actionProgressStatus = ACTION_PROGRESS_STATUS.default;\r\n this._raiseActionProgress = onActionProgressStatusChanged\r\n }\r\n getId() {\r\n return this._id\r\n }\r\n isActual() {\r\n return this._isActual\r\n }\r\n createErrorDetailsProgressBox($container, item, errorText) {\r\n var detailsItem = this._createDetailsItem($container, item);\r\n this.renderError(detailsItem.$wrapper, errorText)\r\n }\r\n renderError($container, errorText) {\r\n $(\"<div>\").text(errorText).addClass(FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS).appendTo($container)\r\n }\r\n isActionProgressStatusDefault() {\r\n return this._actionProgressStatus === ACTION_PROGRESS_STATUS.default\r\n }\r\n _createDetailsItem($container, item) {\r\n var $detailsItem = $(\"<div>\").appendTo($container);\r\n return this._createProgressBox($detailsItem, {\r\n commonText: item.commonText,\r\n imageUrl: item.imageUrl\r\n })\r\n }\r\n _createProgressBox($container, options) {\r\n $container.addClass(FILE_MANAGER_PROGRESS_BOX_CLASS);\r\n if (options.imageUrl) {\r\n getImageContainer(options.imageUrl).addClass(FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS).appendTo($container)\r\n }\r\n var $wrapper = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS).appendTo($container);\r\n var $commonText = $(\"<div>\").addClass(FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS).text(options.commonText).appendTo($wrapper);\r\n return {\r\n $commonText: $commonText,\r\n $element: $container,\r\n $wrapper: $wrapper\r\n }\r\n }\r\n}\r\nclass NotificationManagerStub extends NotificationManagerBase {\r\n addOperation() {\r\n return {\r\n [MANAGER_ID_NAME]: this._id\r\n }\r\n }\r\n addOperationDetails() {}\r\n updateOperationItemProgress() {}\r\n completeOperationItem() {}\r\n finishOperation() {}\r\n completeOperation() {}\r\n completeSingleOperationWithError() {}\r\n addOperationDetailsError() {}\r\n handleDimensionChanged() {\r\n return false\r\n }\r\n ensureProgressPanelCreated() {}\r\n tryHideActionProgress() {\r\n this._updateActionProgress(\"\", ACTION_PROGRESS_STATUS.default)\r\n }\r\n updateActionProgressStatus() {\r\n this._updateActionProgress(\"\", ACTION_PROGRESS_STATUS.default)\r\n }\r\n _updateActionProgress(message, status) {\r\n if (status !== ACTION_PROGRESS_STATUS.default && status !== ACTION_PROGRESS_STATUS.progress) {\r\n return\r\n }\r\n this._actionProgressStatus = status;\r\n this._raiseActionProgress(message, status)\r\n }\r\n hasNoOperations() {\r\n return true\r\n }\r\n get _operationInProgressCount() {\r\n return 0\r\n }\r\n set _operationInProgressCount(value) {}\r\n get _failedOperationCount() {\r\n return 0\r\n }\r\n set _failedOperationCount(value) {}\r\n}\r\nclass NotificationManager extends NotificationManagerBase {\r\n constructor(options) {\r\n super(options);\r\n this._failedOperationCount = 0;\r\n this._operationInProgressCount = 0\r\n }\r\n addOperation(processingMessage, allowCancel, allowProgressAutoUpdate) {\r\n this._operationInProgressCount++;\r\n var operationInfo = this._progressPanel.addOperation(processingMessage, allowCancel, allowProgressAutoUpdate);\r\n operationInfo[MANAGER_ID_NAME] = this._id;\r\n this._updateActionProgress(processingMessage, ACTION_PROGRESS_STATUS.progress);\r\n return operationInfo\r\n }\r\n addOperationDetails(operationInfo, details, showCloseButton) {\r\n this._progressPanel.addOperationDetails(operationInfo, details, showCloseButton)\r\n }\r\n updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress) {\r\n this._progressPanel.updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress)\r\n }\r\n completeOperationItem(operationInfo, itemIndex, commonProgress) {\r\n this._progressPanel.completeOperationItem(operationInfo, itemIndex, commonProgress)\r\n }\r\n finishOperation(operationInfo, commonProgress) {\r\n this._progressPanel.updateOperationCommonProgress(operationInfo, commonProgress)\r\n }\r\n completeOperation(operationInfo, commonText, isError, statusText) {\r\n this._operationInProgressCount--;\r\n if (isError) {\r\n this._failedOperationCount++\r\n }\r\n this._progressPanel.completeOperation(operationInfo, commonText, isError, statusText)\r\n }\r\n completeSingleOperationWithError(operationInfo, errorInfo) {\r\n this._progressPanel.completeSingleOperationWithError(operationInfo, errorInfo.detailErrorText);\r\n this._notifyError(errorInfo)\r\n }\r\n addOperationDetailsError(operationInfo, errorInfo) {\r\n this._progressPanel.addOperationDetailsError(operationInfo, errorInfo.itemIndex, errorInfo.detailErrorText);\r\n this._notifyError(errorInfo)\r\n }\r\n handleDimensionChanged() {\r\n if (this._progressPanel) {\r\n this._progressPanel.$element().detach()\r\n }\r\n return true\r\n }\r\n ensureProgressPanelCreated(container, options) {\r\n if (!this._progressPanel) {\r\n var $progressPanelElement = $(\"<div>\").appendTo(container);\r\n var ProgressPanelClass = this._getProgressPanelComponent();\r\n this._progressPanel = new ProgressPanelClass($progressPanelElement, extend({}, options, {\r\n onOperationClosed: _ref2 => {\r\n var {\r\n info: info\r\n } = _ref2;\r\n return this._onProgressPanelOperationClosed(info)\r\n }\r\n }))\r\n } else {\r\n this._progressPanel.$element().appendTo(container)\r\n }\r\n }\r\n _getProgressPanelComponent() {\r\n return FileManagerProgressPanel\r\n }\r\n _onProgressPanelOperationClosed(operationInfo) {\r\n if (operationInfo.hasError) {\r\n this._failedOperationCount--;\r\n this.tryHideActionProgress()\r\n }\r\n }\r\n tryHideActionProgress() {\r\n if (this.hasNoOperations()) {\r\n this._updateActionProgress(\"\", ACTION_PROGRESS_STATUS.default)\r\n }\r\n }\r\n updateActionProgressStatus(operationInfo) {\r\n if (operationInfo) {\r\n var status = 0 === this._failedOperationCount ? ACTION_PROGRESS_STATUS.success : ACTION_PROGRESS_STATUS.error;\r\n this._updateActionProgress(\"\", status)\r\n }\r\n }\r\n _notifyError(errorInfo) {\r\n var status = this.hasNoOperations() ? ACTION_PROGRESS_STATUS.default : ACTION_PROGRESS_STATUS.error;\r\n this._updateActionProgress(errorInfo.commonErrorText, status)\r\n }\r\n _updateActionProgress(message, status) {\r\n this._actionProgressStatus = status;\r\n this._raiseActionProgress(message, status)\r\n }\r\n hasNoOperations() {\r\n return 0 === this._operationInProgressCount && 0 === this._failedOperationCount\r\n }\r\n get _operationInProgressCount() {\r\n return this._operationInProgressCountInternal\r\n }\r\n set _operationInProgressCount(value) {\r\n this._operationInProgressCountInternal = value\r\n }\r\n get _failedOperationCount() {\r\n return this._failedOperationCountInternal\r\n }\r\n set _failedOperationCount(value) {\r\n this._failedOperationCountInternal = value\r\n }\r\n}\r\nexport {\r\n NotificationManager,\r\n NotificationManagerStub,\r\n MANAGER_ID_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.notification.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport Drawer from \"../drawer/ui.drawer\";\r\nimport {\r\n NotificationManager,\r\n NotificationManagerStub,\r\n MANAGER_ID_NAME\r\n} from \"./ui.file_manager.notification_manager\";\r\nvar window = getWindow();\r\nvar ADAPTIVE_STATE_SCREEN_WIDTH = 1e3;\r\nvar FILE_MANAGER_NOTIFICATION_CLASS = \"dx-filemanager-notification\";\r\nvar FILE_MANAGER_NOTIFICATION_DRAWER_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-drawer\");\r\nvar FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_DRAWER_CLASS, \"-panel\");\r\nvar FILE_MANAGER_NOTIFICATION_POPUP_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-popup\");\r\nvar FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-popup-error\");\r\nvar FILE_MANAGER_NOTIFICATION_COMMON_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-common\");\r\nvar FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-separator\");\r\nvar FILE_MANAGER_NOTIFICATION_DETAILS_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-details\");\r\nvar FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-common-no-item\");\r\nexport default class FileManagerNotificationControl extends Widget {\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n this._managerMap = {};\r\n this._notificationManagerStubId = null;\r\n this._setNotificationManager();\r\n var $progressPanelContainer = this.option(\"progressPanelContainer\");\r\n var $progressDrawer = $(\"<div>\").addClass(FILE_MANAGER_NOTIFICATION_DRAWER_CLASS).appendTo($progressPanelContainer);\r\n $(\"<div>\").addClass(FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS).appendTo($progressDrawer);\r\n var drawerOptions = extend({\r\n opened: false,\r\n position: \"right\",\r\n template: container => this._ensureProgressPanelCreated(container)\r\n }, this._getProgressDrawerAdaptiveOptions());\r\n this._progressDrawer = this._createComponent($progressDrawer, Drawer, drawerOptions);\r\n var $drawerContent = $progressDrawer.find(\".\".concat(FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS)).first();\r\n var contentRenderer = this.option(\"contentTemplate\");\r\n if (isFunction(contentRenderer)) {\r\n contentRenderer($drawerContent, this)\r\n }\r\n }\r\n _setNotificationManager(options) {\r\n options = extend({\r\n onActionProgressStatusChanged: this._raiseActionProgress.bind(this)\r\n }, options);\r\n if (!this._notificationManagerStubId) {\r\n var stubManager = new NotificationManagerStub(options);\r\n this._notificationManagerStubId = stubManager.getId();\r\n this._managerMap[this._notificationManagerStubId] = stubManager\r\n }\r\n if (!this._isProgressDrawerDisabled()) {\r\n var notificationManagerComponent = this._getProgressManagerComponent();\r\n options.isActual = true;\r\n var defaultManager = new notificationManagerComponent(options);\r\n this._managerMap[defaultManager.getId()] = defaultManager\r\n }\r\n }\r\n _getNotificationManager(operationInfo) {\r\n var actualManagerId = (null === operationInfo || void 0 === operationInfo ? void 0 : operationInfo[MANAGER_ID_NAME]) || this._getActualNotificationManagerId();\r\n return this._managerMap[actualManagerId] || this._managerMap[this._notificationManagerStubId]\r\n }\r\n _clearManagerMap() {\r\n var stubManager = this._managerMap[this._notificationManagerStubId];\r\n delete this._managerMap;\r\n this._managerMap = {\r\n [this._notificationManagerStubId]: stubManager\r\n }\r\n }\r\n _getActualNotificationManagerId() {\r\n return Object.keys(this._managerMap).filter(managerId => this._managerMap[managerId].isActual())[0]\r\n }\r\n tryShowProgressPanel() {\r\n var promise = new Deferred;\r\n var notificationManager = this._getNotificationManager();\r\n if (notificationManager.isActionProgressStatusDefault() || this._isProgressDrawerOpened() || this._isProgressDrawerDisabled()) {\r\n return promise.resolve().promise()\r\n }\r\n setTimeout(() => {\r\n this._progressDrawer.show().done(promise.resolve);\r\n this._hidePopup();\r\n notificationManager.tryHideActionProgress()\r\n });\r\n return promise.promise()\r\n }\r\n addOperation(processingMessage, allowCancel, allowProgressAutoUpdate) {\r\n var notificationManager = this._getNotificationManager();\r\n return notificationManager.addOperation(processingMessage, allowCancel, allowProgressAutoUpdate)\r\n }\r\n addOperationDetails(operationInfo, details, showCloseButton) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.addOperationDetails(operationInfo, details, showCloseButton)\r\n }\r\n updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress)\r\n }\r\n completeOperationItem(operationInfo, itemIndex, commonProgress) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.completeOperationItem(operationInfo, itemIndex, commonProgress)\r\n }\r\n finishOperation(operationInfo, commonProgress) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.finishOperation(operationInfo, commonProgress)\r\n }\r\n completeOperation(operationInfo, commonText, isError, statusText) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n if (!isError) {\r\n this._showPopup(commonText)\r\n }\r\n notificationManager.completeOperation(operationInfo, commonText, isError, statusText);\r\n if (!this._isProgressDrawerOpened() || !notificationManager.hasNoOperations()) {\r\n notificationManager.updateActionProgressStatus(operationInfo)\r\n } else {\r\n notificationManager.tryHideActionProgress()\r\n }\r\n }\r\n completeSingleOperationWithError(operationInfo, errorInfo) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.completeSingleOperationWithError(operationInfo, errorInfo);\r\n this._showPopupError(errorInfo)\r\n }\r\n addOperationDetailsError(operationInfo, errorInfo) {\r\n var notificationManager = this._getNotificationManager(operationInfo);\r\n notificationManager.addOperationDetailsError(operationInfo, errorInfo);\r\n this._showPopupError(errorInfo)\r\n }\r\n _hideProgressPanel() {\r\n setTimeout(() => this._progressDrawer.hide())\r\n }\r\n _isSmallScreen() {\r\n if (!hasWindow()) {\r\n return false\r\n }\r\n return getWidth(window) <= ADAPTIVE_STATE_SCREEN_WIDTH\r\n }\r\n _dimensionChanged(dimension) {\r\n if (!(dimension && \"height\" === dimension)) {\r\n this._checkAdaptiveState()\r\n }\r\n }\r\n _checkAdaptiveState() {\r\n var oldState = this._isInAdaptiveState;\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n if (oldState !== this._isInAdaptiveState && this._progressDrawer) {\r\n var notificationManager = this._getNotificationManager();\r\n if (notificationManager.handleDimensionChanged()) {\r\n var options = this._getProgressDrawerAdaptiveOptions();\r\n this._progressDrawer.option(options)\r\n }\r\n }\r\n }\r\n _getProgressDrawerAdaptiveOptions() {\r\n if (this._isInAdaptiveState) {\r\n return {\r\n openedStateMode: \"overlap\",\r\n shading: true,\r\n hideOnOutsideClick: true\r\n }\r\n } else {\r\n return {\r\n openedStateMode: \"shrink\",\r\n shading: false,\r\n hideOnOutsideClick: false\r\n }\r\n }\r\n }\r\n _ensureProgressPanelCreated(container) {\r\n var notificationManager = this._getNotificationManager();\r\n notificationManager.ensureProgressPanelCreated(container, {\r\n onOperationCanceled: _ref => {\r\n var {\r\n info: info\r\n } = _ref;\r\n return this._raiseOperationCanceled(info)\r\n },\r\n onOperationItemCanceled: _ref2 => {\r\n var {\r\n item: item,\r\n itemIndex: itemIndex\r\n } = _ref2;\r\n return this._raiseOperationItemCanceled(item, itemIndex)\r\n },\r\n onPanelClosed: () => this._hideProgressPanel()\r\n })\r\n }\r\n _getProgressManagerComponent() {\r\n return NotificationManager\r\n }\r\n _isProgressDrawerDisabled() {\r\n return !this.option(\"showProgressPanel\")\r\n }\r\n _isProgressDrawerOpened() {\r\n return this._progressDrawer.option(\"opened\")\r\n }\r\n _hidePopup(forceHide) {\r\n if (!this.option(\"showNotificationPopup\") && !forceHide) {\r\n return\r\n }\r\n this._getNotificationPopup().hide()\r\n }\r\n _showPopup(content, errorMode) {\r\n if (this._isProgressDrawerOpened() || !this.option(\"showNotificationPopup\")) {\r\n return\r\n }\r\n this._getNotificationPopup().$wrapper().toggleClass(FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS, !!errorMode);\r\n this._getNotificationPopup().option(\"contentTemplate\", content);\r\n if (!this._getNotificationPopup().option(\"visible\")) {\r\n this._getNotificationPopup().show()\r\n }\r\n }\r\n _showPopupError(errorInfo) {\r\n if (!this.option(\"showNotificationPopup\")) {\r\n return\r\n }\r\n var notificationManager = this._getNotificationManager();\r\n var $content = $(\"<div>\");\r\n var $message = $(\"<div>\").addClass(FILE_MANAGER_NOTIFICATION_COMMON_CLASS).text(errorInfo.commonErrorText);\r\n var $separator = $(\"<div>\").addClass(FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS);\r\n $(\"<div>\").appendTo($separator);\r\n var $details = $(\"<div>\").addClass(FILE_MANAGER_NOTIFICATION_DETAILS_CLASS);\r\n if (errorInfo.item) {\r\n notificationManager.createErrorDetailsProgressBox($details, errorInfo.item, errorInfo.detailErrorText)\r\n } else {\r\n $message.addClass(FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS);\r\n notificationManager.renderError($details, errorInfo.detailErrorText)\r\n }\r\n $content.append($message, $separator, $details);\r\n this._showPopup($content, true)\r\n }\r\n _getNotificationPopup() {\r\n if (!this._notificationPopup) {\r\n var $popup = $(\"<div>\").appendTo(this.$element());\r\n this._notificationPopup = this._createComponent($popup, Popup, {\r\n container: this.$element(),\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false,\r\n dragEnabled: false,\r\n shading: false,\r\n visible: false,\r\n hideOnOutsideClick: true,\r\n animation: {\r\n duration: 0\r\n },\r\n position: {\r\n my: \"right top\",\r\n at: \"right top\",\r\n of: this.option(\"positionTarget\"),\r\n offset: \"-10 -5\"\r\n },\r\n _wrapperClassExternal: FILE_MANAGER_NOTIFICATION_POPUP_CLASS\r\n })\r\n }\r\n return this._notificationPopup\r\n }\r\n _raiseActionProgress(message, status) {\r\n this._actions.onActionProgress({\r\n message: message,\r\n status: status\r\n })\r\n }\r\n _raiseOperationCanceled(info) {\r\n this._actions.onOperationCanceled({\r\n info: info\r\n })\r\n }\r\n _raiseOperationItemCanceled(item, index) {\r\n this._actions.onOperationItemCanceled({\r\n item: item,\r\n itemIndex: index\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onActionProgress: this._createActionByOption(\"onActionProgress\"),\r\n onOperationCanceled: this._createActionByOption(\"onOperationCanceled\"),\r\n onOperationItemCanceled: this._createActionByOption(\"onOperationItemCanceled\")\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n progressPanelContainer: null,\r\n contentTemplate: null,\r\n onActionProgress: null,\r\n onOperationCanceled: null,\r\n onOperationItemCanceled: null,\r\n showProgressPanel: true,\r\n showNotificationPopup: true\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"progressPanelContainer\":\r\n case \"contentTemplate\":\r\n break;\r\n case \"showProgressPanel\":\r\n this._setNotificationManager();\r\n this._getNotificationManager().updateActionProgressStatus();\r\n if (!args.value) {\r\n this._hideProgressPanel();\r\n this._clearManagerMap()\r\n }\r\n this._progressDrawer.repaint();\r\n break;\r\n case \"showNotificationPopup\":\r\n if (!args.value) {\r\n this._hidePopup(true)\r\n }\r\n break;\r\n case \"onActionProgress\":\r\n case \"onOperationCanceled\":\r\n case \"onOperationItemCanceled\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.dialog.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Popup from \"../popup/ui.popup\";\r\nvar FILE_MANAGER_DIALOG_CONTENT = \"dx-filemanager-dialog\";\r\nvar FILE_MANAGER_DIALOG_POPUP = \"dx-filemanager-dialog-popup\";\r\nclass FileManagerDialogBase extends Widget {\r\n _initMarkup() {\r\n var _options$popupCssClas;\r\n super._initMarkup();\r\n this._createOnClosedAction();\r\n var options = this._getDialogOptions();\r\n var $popup = $(\"<div>\").appendTo(this.$element());\r\n var popupOptions = {\r\n showTitle: true,\r\n title: options.title,\r\n visible: false,\r\n hideOnOutsideClick: true,\r\n contentTemplate: this._createContentTemplate.bind(this),\r\n toolbarItems: [{\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n options: {\r\n text: options.buttonText,\r\n onClick: this._applyDialogChanges.bind(this)\r\n }\r\n }, {\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n options: {\r\n text: messageLocalization.format(\"dxFileManager-dialogButtonCancel\"),\r\n onClick: this._closeDialog.bind(this)\r\n }\r\n }],\r\n onInitialized: _ref => {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.registerKeyHandler(\"enter\", this._applyDialogChanges.bind(this))\r\n },\r\n onHiding: this._onPopupHiding.bind(this),\r\n onShown: this._onPopupShown.bind(this),\r\n _wrapperClassExternal: \"\".concat(FILE_MANAGER_DIALOG_POPUP, \" \").concat(null !== (_options$popupCssClas = options.popupCssClass) && void 0 !== _options$popupCssClas ? _options$popupCssClas : \"\")\r\n };\r\n if (isDefined(options.height)) {\r\n popupOptions.height = options.height\r\n }\r\n if (isDefined(options.maxHeight)) {\r\n popupOptions.maxHeight = options.maxHeight\r\n }\r\n this._popup = this._createComponent($popup, Popup, popupOptions)\r\n }\r\n show() {\r\n this._dialogResult = null;\r\n this._popup.show()\r\n }\r\n _getDialogOptions() {\r\n return {\r\n title: \"Title\",\r\n buttonText: \"ButtonText\",\r\n contentCssClass: \"\",\r\n popupCssClass: \"\"\r\n }\r\n }\r\n _createContentTemplate(element) {\r\n this._$contentElement = $(\"<div>\").appendTo(element).addClass(FILE_MANAGER_DIALOG_CONTENT);\r\n var cssClass = this._getDialogOptions().contentCssClass;\r\n if (cssClass) {\r\n this._$contentElement.addClass(cssClass)\r\n }\r\n }\r\n _getDialogResult() {\r\n return null\r\n }\r\n _applyDialogChanges() {\r\n var result = this._getDialogResult();\r\n if (result) {\r\n this._dialogResult = result;\r\n this._closeDialog()\r\n }\r\n }\r\n _closeDialog() {\r\n this._popup.hide()\r\n }\r\n _onPopupHiding() {\r\n this._onClosedAction({\r\n dialogResult: this._dialogResult\r\n })\r\n }\r\n _onPopupShown() {}\r\n _createOnClosedAction() {\r\n this._onClosedAction = this._createActionByOption(\"onClosed\")\r\n }\r\n _setTitle(newTitle) {\r\n this._popup.option(\"title\", newTitle)\r\n }\r\n _setApplyButtonOptions(options) {\r\n this._popup.option(\"toolbarItems[0].options\", options)\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onClosed: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onClosed\":\r\n this._createOnPathChangedAction();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default FileManagerDialogBase;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.dialog.name_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TextBox from \"../text_box\";\r\nimport FileManagerDialogBase from \"./ui.file_manager.dialog\";\r\nvar FILE_MANAGER_DIALOG_NAME_EDITOR = \"dx-filemanager-dialog-name-editor\";\r\nvar FILE_MANAGER_DIALOG_NAME_EDITOR_POPUP = \"dx-filemanager-dialog-name-editor-popup\";\r\nclass FileManagerNameEditorDialog extends FileManagerDialogBase {\r\n show(name) {\r\n name = name || \"\";\r\n if (this._nameTextBox) {\r\n this._nameTextBox.option(\"value\", name)\r\n } else {\r\n this._initialNameValue = name\r\n }\r\n super.show()\r\n }\r\n _onPopupShown() {\r\n if (!this._nameTextBox) {\r\n return\r\n }\r\n var $textBoxInput = this._nameTextBox._input();\r\n $textBoxInput.length && $textBoxInput[0].select();\r\n this._nameTextBox.focus()\r\n }\r\n _getDialogOptions() {\r\n return extend(super._getDialogOptions(), {\r\n title: this.option(\"title\"),\r\n buttonText: this.option(\"buttonText\"),\r\n contentCssClass: FILE_MANAGER_DIALOG_NAME_EDITOR,\r\n popupCssClass: FILE_MANAGER_DIALOG_NAME_EDITOR_POPUP\r\n })\r\n }\r\n _createContentTemplate(element) {\r\n super._createContentTemplate(element);\r\n this._nameTextBox = this._createComponent($(\"<div>\"), TextBox, {\r\n value: this._initialNameValue,\r\n onEnterKey: () => this._hasCompositionJustEnded && this._applyDialogChanges(),\r\n onKeyDown: e => this._checkCompositionEnded(e)\r\n });\r\n this._$contentElement.append(this._nameTextBox.$element())\r\n }\r\n _checkCompositionEnded(_ref) {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._hasCompositionJustEnded = 229 !== event.which\r\n }\r\n _getDialogResult() {\r\n var nameValue = this._nameTextBox.option(\"value\");\r\n return nameValue ? {\r\n name: nameValue\r\n } : null\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n title: \"\",\r\n buttonText: \"\"\r\n })\r\n }\r\n}\r\nexport default FileManagerNameEditorDialog;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.dialog.folder_chooser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n getMapFromObject\r\n} from \"./ui.file_manager.common\";\r\nimport FileManagerDialogBase from \"./ui.file_manager.dialog\";\r\nimport FileManagerFilesTreeView from \"./ui.file_manager.files_tree_view\";\r\nvar FILE_MANAGER_DIALOG_FOLDER_CHOOSER = \"dx-filemanager-dialog-folder-chooser\";\r\nvar FILE_MANAGER_DIALOG_FOLDER_CHOOSER_POPUP = \"dx-filemanager-dialog-folder-chooser-popup\";\r\nclass FileManagerFolderChooserDialog extends FileManagerDialogBase {\r\n show() {\r\n var _this$_filesTreeView;\r\n this._setSelectedDirInfo(null);\r\n null === (_this$_filesTreeView = this._filesTreeView) || void 0 === _this$_filesTreeView ? void 0 : _this$_filesTreeView.refresh();\r\n super.show()\r\n }\r\n switchToCopyDialog(targetItemInfos) {\r\n this._targetItemInfos = targetItemInfos;\r\n this._setTitle(messageLocalization.format(\"dxFileManager-dialogDirectoryChooserCopyTitle\"));\r\n this._setApplyButtonOptions({\r\n text: messageLocalization.format(\"dxFileManager-dialogDirectoryChooserCopyButtonText\"),\r\n disabled: true\r\n })\r\n }\r\n switchToMoveDialog(targetItemInfos) {\r\n this._targetItemInfos = targetItemInfos;\r\n this._setTitle(messageLocalization.format(\"dxFileManager-dialogDirectoryChooserMoveTitle\"));\r\n this._setApplyButtonOptions({\r\n text: messageLocalization.format(\"dxFileManager-dialogDirectoryChooserMoveButtonText\"),\r\n disabled: true\r\n })\r\n }\r\n _getDialogOptions() {\r\n return extend(super._getDialogOptions(), {\r\n contentCssClass: FILE_MANAGER_DIALOG_FOLDER_CHOOSER,\r\n popupCssClass: FILE_MANAGER_DIALOG_FOLDER_CHOOSER_POPUP\r\n })\r\n }\r\n _createContentTemplate(element) {\r\n super._createContentTemplate(element);\r\n this._filesTreeView = this._createComponent($(\"<div>\"), FileManagerFilesTreeView, {\r\n getDirectories: this.option(\"getDirectories\"),\r\n getCurrentDirectory: () => this._getDialogSelectedDirectory(),\r\n onDirectoryClick: e => this._onFilesTreeViewDirectoryClick(e),\r\n onFilesTreeViewContentReady: () => this._toggleUnavailableLocationsDisabled(true)\r\n });\r\n this._$contentElement.append(this._filesTreeView.$element())\r\n }\r\n _getDialogResult() {\r\n var result = this._getDialogSelectedDirectory();\r\n return result ? {\r\n folder: result\r\n } : result\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n getItems: null\r\n })\r\n }\r\n _getDialogSelectedDirectory() {\r\n return this._selectedDirectoryInfo\r\n }\r\n _onFilesTreeViewDirectoryClick(_ref) {\r\n var {\r\n itemData: itemData\r\n } = _ref;\r\n this._setSelectedDirInfo(itemData);\r\n this._filesTreeView.updateCurrentDirectory()\r\n }\r\n _setSelectedDirInfo(dirInfo) {\r\n this._selectedDirectoryInfo = dirInfo;\r\n this._setApplyButtonOptions({\r\n disabled: !dirInfo\r\n })\r\n }\r\n _onPopupShown() {\r\n this._toggleUnavailableLocationsDisabled(true);\r\n super._onPopupShown()\r\n }\r\n _onPopupHiding() {\r\n this._toggleUnavailableLocationsDisabled(false);\r\n super._onPopupHiding()\r\n }\r\n _toggleUnavailableLocationsDisabled(isDisabled) {\r\n if (!this._filesTreeView) {\r\n return\r\n }\r\n var locations = this._getLocationsToProcess(isDisabled);\r\n this._filesTreeView.toggleDirectoryExpandedStateRecursive(locations.locationsToExpand[0], isDisabled).then(() => this._filesTreeView.toggleDirectoryLineExpandedState(locations.locationsToCollapse, !isDisabled).then(() => locations.locationKeysToDisable.forEach(key => this._filesTreeView.toggleNodeDisabledState(key, isDisabled))))\r\n }\r\n _getLocationsToProcess(isDisabled) {\r\n var expandLocations = {};\r\n var collapseLocations = {};\r\n this._targetItemInfos.forEach(itemInfo => {\r\n if (itemInfo.parentDirectory) {\r\n expandLocations[itemInfo.parentDirectory.getInternalKey()] = itemInfo.parentDirectory\r\n }\r\n if (itemInfo.fileItem.isDirectory) {\r\n collapseLocations[itemInfo.getInternalKey()] = itemInfo\r\n }\r\n });\r\n var expandMap = getMapFromObject(expandLocations);\r\n var collapseMap = getMapFromObject(collapseLocations);\r\n return {\r\n locationsToExpand: isDisabled ? expandMap.values : [],\r\n locationsToCollapse: isDisabled ? collapseMap.values : [],\r\n locationKeysToDisable: expandMap.keys.concat(...collapseMap.keys)\r\n }\r\n }\r\n}\r\nexport default FileManagerFolderChooserDialog;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.dialog.delete_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport FileManagerDialogBase from \"./ui.file_manager.dialog\";\r\nvar FILE_MANAGER_DIALOG_DELETE_ITEM = \"dx-filemanager-dialog-delete-item\";\r\nvar FILE_MANAGER_DIALOG_DELETE_ITEM_POPUP = \"dx-filemanager-dialog-delete-item-popup\";\r\nclass FileManagerDeleteItemDialog extends FileManagerDialogBase {\r\n show(_ref) {\r\n var {\r\n itemName: itemName,\r\n itemCount: itemCount\r\n } = _ref;\r\n var text = 1 === itemCount ? messageLocalization.format(\"dxFileManager-dialogDeleteItemSingleItemConfirmation\", itemName) : messageLocalization.format(\"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\", itemCount);\r\n if (this._$text) {\r\n this._$text.text(text)\r\n } else {\r\n this._initialText = text\r\n }\r\n super.show()\r\n }\r\n _getDialogOptions() {\r\n return extend(super._getDialogOptions(), {\r\n title: messageLocalization.format(\"dxFileManager-dialogDeleteItemTitle\"),\r\n buttonText: messageLocalization.format(\"dxFileManager-dialogDeleteItemButtonText\"),\r\n contentCssClass: FILE_MANAGER_DIALOG_DELETE_ITEM,\r\n popupCssClass: FILE_MANAGER_DIALOG_DELETE_ITEM_POPUP,\r\n height: \"auto\",\r\n maxHeight: \"80vh\"\r\n })\r\n }\r\n _createContentTemplate(element) {\r\n super._createContentTemplate(element);\r\n this._$text = $(\"<div>\").text(this._initialText).appendTo(this._$contentElement);\r\n this._createComponent(this._$contentElement, ScrollView, {\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n _getDialogResult() {\r\n return {}\r\n }\r\n}\r\nexport default FileManagerDeleteItemDialog;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.file_uploader.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getInnerHeight,\r\n setHeight,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport FileUploader from \"../file_uploader\";\r\nimport {\r\n whenSome\r\n} from \"./ui.file_manager.common\";\r\nvar FILE_MANAGER_FILE_UPLOADER_CLASS = \"dx-filemanager-fileuploader\";\r\nvar FILE_MANAGER_FILE_UPLOADER_DROPZONE_PLACEHOLER_CLASS = \"dx-filemanager-fileuploader-dropzone-placeholder\";\r\nclass FileManagerFileUploader extends Widget {\r\n _initMarkup() {\r\n this._initActions();\r\n this.$element().addClass(FILE_MANAGER_FILE_UPLOADER_CLASS);\r\n this._uploaderInfos = [];\r\n this._createInternalFileUploader();\r\n this._createDropZonePlaceholder();\r\n this._setDropZonePlaceholderVisible(false);\r\n super._initMarkup()\r\n }\r\n _createInternalFileUploader() {\r\n var chunkSize = this._getController().chunkSize;\r\n var $fileUploader = $(\"<div>\").appendTo(this.$element());\r\n var fileUploader = this._createComponent($fileUploader, FileUploader, {\r\n name: \"file\",\r\n multiple: true,\r\n showFileList: false,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n labelText: \"\",\r\n readyToUploadMessage: \"\",\r\n accept: \"*\",\r\n chunkSize: chunkSize,\r\n dropZone: this.option(\"dropZone\"),\r\n onValueChanged: e => this._onFileUploaderValueChanged(e),\r\n onProgress: e => this._onFileUploaderProgress(e),\r\n onUploaded: e => this._onFileUploaderUploaded(e),\r\n onFilesUploaded: e => this._onFileUploaderAllFilesUploaded(e),\r\n onUploadAborted: e => this._onFileUploaderUploadAborted(e),\r\n onUploadError: e => this._onFileUploaderUploadError(e),\r\n onDropZoneEnter: () => this._setDropZonePlaceholderVisible(true),\r\n onDropZoneLeave: () => this._setDropZonePlaceholderVisible(false)\r\n });\r\n fileUploader.option({\r\n uploadChunk: (file, chunksData) => this._fileUploaderUploadChunk(fileUploader, file, chunksData),\r\n abortUpload: (file, chunksData) => this._fileUploaderAbortUpload(fileUploader, file, chunksData)\r\n });\r\n fileUploader._shouldRaiseDragLeaveBase = fileUploader._shouldRaiseDragLeave;\r\n fileUploader._shouldRaiseDragLeave = e => this._shouldRaiseDragLeave(e, fileUploader);\r\n var uploaderInfo = {\r\n fileUploader: fileUploader\r\n };\r\n this._uploaderInfos.push(uploaderInfo)\r\n }\r\n tryUpload() {\r\n var info = this._findAndUpdateAvailableUploaderInfo();\r\n if (info) {\r\n info.fileUploader._selectButtonClickHandler()\r\n }\r\n }\r\n cancelUpload(sessionId) {\r\n this._cancelUpload(sessionId)\r\n }\r\n cancelFileUpload(sessionId, fileIndex) {\r\n this._cancelUpload(sessionId, fileIndex)\r\n }\r\n _cancelUpload(sessionId, fileIndex) {\r\n var {\r\n fileUploader: fileUploader\r\n } = this._findUploaderInfoBySessionId(sessionId);\r\n fileUploader.abortUpload(fileIndex)\r\n }\r\n _fileUploaderUploadChunk(fileUploader, file, chunksInfo) {\r\n var {\r\n session: session,\r\n fileIndex: fileIndex\r\n } = this._findSessionByFile(fileUploader, file);\r\n var controller = session.controller;\r\n chunksInfo.fileIndex = fileIndex;\r\n return controller.uploadFileChunk(file, chunksInfo)\r\n }\r\n _fileUploaderAbortUpload(fileUploader, file, chunksInfo) {\r\n var {\r\n session: session,\r\n fileIndex: fileIndex\r\n } = this._findSessionByFile(fileUploader, file);\r\n var controller = session.controller;\r\n chunksInfo.fileIndex = fileIndex;\r\n return controller.abortFileUpload(file, chunksInfo)\r\n }\r\n _onFileUploaderValueChanged(_ref) {\r\n var {\r\n component: component,\r\n value: value\r\n } = _ref;\r\n if (0 === value.length) {\r\n return\r\n }\r\n var files = value.slice();\r\n var uploaderInfo = this._findUploaderInfo(component);\r\n this._uploadFiles(uploaderInfo, files);\r\n setTimeout(() => {\r\n if (!this._findAndUpdateAvailableUploaderInfo()) {\r\n this._createInternalFileUploader()\r\n }\r\n })\r\n }\r\n _onFileUploaderProgress(_ref2) {\r\n var {\r\n component: component,\r\n file: file,\r\n bytesLoaded: bytesLoaded,\r\n bytesTotal: bytesTotal\r\n } = _ref2;\r\n var {\r\n session: session,\r\n fileIndex: fileIndex\r\n } = this._findSessionByFile(component, file);\r\n var fileValue = 0 !== bytesTotal ? bytesLoaded / bytesTotal : 1;\r\n var commonValue = component.option(\"progress\") / 100;\r\n var args = {\r\n sessionId: session.id,\r\n fileIndex: fileIndex,\r\n commonValue: commonValue,\r\n fileValue: fileValue\r\n };\r\n this._raiseUploadProgress(args)\r\n }\r\n _onFileUploaderAllFilesUploaded(_ref3) {\r\n var {\r\n component: component\r\n } = _ref3;\r\n var {\r\n session: session\r\n } = this._findSessionByFile(component, component._files[0].value);\r\n this._raiseUploadFinished({\r\n sessionId: session.id,\r\n commonValue: component.option(\"progress\") / 100\r\n })\r\n }\r\n _onFileUploaderUploaded(_ref4) {\r\n var {\r\n component: component,\r\n file: file\r\n } = _ref4;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.resolve()\r\n }\r\n _onFileUploaderUploadAborted(_ref5) {\r\n var {\r\n component: component,\r\n file: file\r\n } = _ref5;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.resolve({\r\n canceled: true\r\n })\r\n }\r\n _onFileUploaderUploadError(_ref6) {\r\n var {\r\n component: component,\r\n file: file,\r\n error: error\r\n } = _ref6;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.reject(error)\r\n }\r\n _createDropZonePlaceholder() {\r\n this._$dropZonePlaceholder = $(\"<div>\").addClass(FILE_MANAGER_FILE_UPLOADER_DROPZONE_PLACEHOLER_CLASS).appendTo(this.option(\"dropZonePlaceholderContainer\"))\r\n }\r\n _adjustDropZonePlaceholder() {\r\n var $dropZoneTarget = this.option(\"dropZone\");\r\n if (!hasWindow() || 0 === $dropZoneTarget.length) {\r\n return\r\n }\r\n var placeholderBorderTopWidth = parseFloat(this._$dropZonePlaceholder.css(\"borderTopWidth\"));\r\n var placeholderBorderLeftWidth = parseFloat(this._$dropZonePlaceholder.css(\"borderLeftWidth\"));\r\n var $placeholderContainer = this.option(\"dropZonePlaceholderContainer\");\r\n var containerBorderBottomWidth = parseFloat($placeholderContainer.css(\"borderBottomWidth\"));\r\n var containerBorderLeftWidth = parseFloat($placeholderContainer.css(\"borderLeftWidth\"));\r\n var containerHeight = getInnerHeight($placeholderContainer);\r\n var containerOffset = $placeholderContainer.offset();\r\n var dropZoneOffset = $dropZoneTarget.offset();\r\n this._$dropZonePlaceholder.css({\r\n top: dropZoneOffset.top - containerOffset.top - containerHeight - containerBorderBottomWidth,\r\n left: dropZoneOffset.left - containerOffset.left - containerBorderLeftWidth\r\n });\r\n setHeight(this._$dropZonePlaceholder, $dropZoneTarget.get(0).offsetHeight - 2 * placeholderBorderTopWidth);\r\n setWidth(this._$dropZonePlaceholder, $dropZoneTarget.get(0).offsetWidth - 2 * placeholderBorderLeftWidth)\r\n }\r\n _setDropZonePlaceholderVisible(visible) {\r\n if (visible) {\r\n this._adjustDropZonePlaceholder();\r\n this._$dropZonePlaceholder.css(\"display\", \"\")\r\n } else {\r\n this._$dropZonePlaceholder.css(\"display\", \"none\")\r\n }\r\n }\r\n _shouldRaiseDragLeave(e, uploaderInstance) {\r\n return uploaderInstance.isMouseOverElement(e, this.option(\"splitterElement\")) || uploaderInstance._shouldRaiseDragLeaveBase(e, true)\r\n }\r\n _uploadFiles(uploaderInfo, files) {\r\n this._setDropZonePlaceholderVisible(false);\r\n var sessionId = (new Guid).toString();\r\n var controller = this._getController();\r\n var deferreds = files.map(() => new Deferred);\r\n var session = {\r\n id: sessionId,\r\n controller: controller,\r\n files: files,\r\n deferreds: deferreds\r\n };\r\n uploaderInfo.session = session;\r\n var sessionInfo = {\r\n sessionId: sessionId,\r\n deferreds: deferreds,\r\n files: files\r\n };\r\n this._raiseUploadSessionStarted(sessionInfo);\r\n return whenSome(deferreds).always(() => setTimeout(() => {\r\n uploaderInfo.fileUploader.clear();\r\n uploaderInfo.session = null\r\n }))\r\n }\r\n _getDeferredForFile(fileUploader, file) {\r\n var {\r\n session: session,\r\n fileIndex: fileIndex\r\n } = this._findSessionByFile(fileUploader, file);\r\n return session.deferreds[fileIndex]\r\n }\r\n _findSessionByFile(fileUploader, file) {\r\n var uploaderInfo = this._findUploaderInfo(fileUploader);\r\n var session = uploaderInfo.session;\r\n var fileIndex = session.files.indexOf(file);\r\n return {\r\n session: session,\r\n fileIndex: fileIndex\r\n }\r\n }\r\n _findUploaderInfoBySessionId(sessionId) {\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var uploaderInfo = this._uploaderInfos[i];\r\n var session = uploaderInfo.session;\r\n if (session && session.id === sessionId) {\r\n return uploaderInfo\r\n }\r\n }\r\n return null\r\n }\r\n _findAndUpdateAvailableUploaderInfo() {\r\n var _info;\r\n var info = null;\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var currentInfo = this._uploaderInfos[i];\r\n currentInfo.fileUploader.option(\"dropZone\", \"\");\r\n if (!info && !currentInfo.session) {\r\n info = currentInfo\r\n }\r\n }\r\n null === (_info = info) || void 0 === _info ? void 0 : _info.fileUploader.option(\"dropZone\", this.option(\"dropZone\"));\r\n return info\r\n }\r\n _findUploaderInfo(fileUploader) {\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var info = this._uploaderInfos[i];\r\n if (info.fileUploader === fileUploader) {\r\n return info\r\n }\r\n }\r\n return null\r\n }\r\n _getController() {\r\n var controllerGetter = this.option(\"getController\");\r\n return controllerGetter()\r\n }\r\n _raiseUploadSessionStarted(sessionInfo) {\r\n this._actions.onUploadSessionStarted({\r\n sessionInfo: sessionInfo\r\n })\r\n }\r\n _raiseUploadProgress(args) {\r\n this._actions.onUploadProgress(args)\r\n }\r\n _raiseUploadFinished(args) {\r\n this._actions.onUploadFinished(args)\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onUploadSessionStarted: this._createActionByOption(\"onUploadSessionStarted\"),\r\n onUploadProgress: this._createActionByOption(\"onUploadProgress\"),\r\n onUploadFinished: this._createActionByOption(\"onUploadFinished\")\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n getController: null,\r\n onUploadSessionStarted: null,\r\n onUploadProgress: null,\r\n onUploadFinished: null,\r\n splitterElement: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"getController\":\r\n this.repaint();\r\n break;\r\n case \"onUploadSessionStarted\":\r\n case \"onUploadProgress\":\r\n case \"onUploadFinished\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"dropZone\":\r\n this._findAndUpdateAvailableUploaderInfo();\r\n this._adjustDropZonePlaceholder();\r\n break;\r\n case \"dropZonePlaceholderContainer\":\r\n this._$dropZonePlaceholder.detach();\r\n this._$dropZonePlaceholder.appendTo(args.value);\r\n break;\r\n case \"splitterElement\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default FileManagerFileUploader;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.editing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport FileManagerDialogManager from \"./ui.file_manager.dialog_manager\";\r\nimport FileManagerFileUploader from \"./ui.file_manager.file_uploader\";\r\nimport {\r\n ErrorCode,\r\n FileManagerMessages\r\n} from \"./ui.file_manager.messages\";\r\nclass FileManagerEditingControl extends Widget {\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n this._controller = this.option(\"controller\");\r\n this._controller.on(\"EditActionStarting\", this._onEditActionStarting.bind(this));\r\n this._controller.on(\"EditActionResultAcquired\", this._onEditActionResultAcquired.bind(this));\r\n this._controller.on(\"EditActionItemError\", this._onEditActionItemError.bind(this));\r\n this._controller.on(\"EditActionError\", this._onEditActionError.bind(this));\r\n this._controller.on(\"CompleteEditActionItem\", this._onCompleteEditActionItem.bind(this));\r\n this._controller.on(\"CompleteEditAction\", this._onCompleteEditAction.bind(this));\r\n this._model = this.option(\"model\");\r\n this._uploadOperationInfoMap = {};\r\n this._dialogManager = new FileManagerDialogManager(this.$element(), {\r\n chooseDirectoryDialog: {\r\n provider: this._controller._fileProvider,\r\n getDirectories: this._controller.getDirectories.bind(this._controller),\r\n getCurrentDirectory: this._controller.getCurrentDirectory.bind(this._controller)\r\n },\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n onDialogClosed: this._onDialogClosed.bind(this)\r\n });\r\n this._fileUploader = this._createFileUploader();\r\n var notificationControl = this.option(\"notificationControl\");\r\n if (notificationControl) {\r\n this._initNotificationControl(notificationControl)\r\n }\r\n this._createMetadataMap()\r\n }\r\n _initNotificationControl(notificationControl) {\r\n this._notificationControl = notificationControl;\r\n this._notificationControl.option({\r\n onOperationCanceled: _ref => {\r\n var {\r\n info: info\r\n } = _ref;\r\n return this._onCancelUploadSession(info)\r\n },\r\n onOperationItemCanceled: _ref2 => {\r\n var {\r\n item: item,\r\n itemIndex: itemIndex\r\n } = _ref2;\r\n return this._onCancelFileUpload(item, itemIndex)\r\n }\r\n })\r\n }\r\n _getFileUploaderComponent() {\r\n return FileManagerFileUploader\r\n }\r\n _createFileUploader() {\r\n var $fileUploader = $(\"<div>\").appendTo(this.$element());\r\n return this._createComponent($fileUploader, this._getFileUploaderComponent(), {\r\n getController: this._getFileUploaderController.bind(this),\r\n dropZonePlaceholderContainer: this.option(\"uploadDropZonePlaceholderContainer\"),\r\n onUploadSessionStarted: e => this._onUploadSessionStarted(e),\r\n onUploadProgress: e => this._onUploadProgress(e),\r\n onUploadFinished: e => this._onUploadFinished(e)\r\n })\r\n }\r\n setUploaderDropZone($element) {\r\n this._fileUploader.option(\"dropZone\", $element)\r\n }\r\n setUploaderSplitterElement(element) {\r\n this._fileUploader.option(\"splitterElement\", element)\r\n }\r\n _getFileUploaderController() {\r\n var uploadDirectory = this.uploadDirectoryInfo.fileItem;\r\n return {\r\n chunkSize: this._controller.getFileUploadChunkSize(),\r\n uploadFileChunk: (fileData, chunksInfo) => this._controller.uploadFileChunk(fileData, chunksInfo, uploadDirectory),\r\n abortFileUpload: (fileData, chunksInfo) => this._controller.abortFileUpload(fileData, chunksInfo, uploadDirectory)\r\n }\r\n }\r\n _createMetadataMap() {\r\n this._metadataMap = {\r\n create: {\r\n action: arg => this._tryCreate(arg),\r\n affectsAllItems: true,\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingCreateSingleItemProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingCreateSingleItemSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingCreateSingleItemErrorMessage\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-editingCreateCommonErrorMessage\")\r\n },\r\n rename: {\r\n action: arg => this._tryRename(arg),\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingRenameSingleItemProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingRenameSingleItemSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingRenameSingleItemErrorMessage\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-editingRenameCommonErrorMessage\")\r\n },\r\n delete: {\r\n action: arg => this._tryDelete(arg),\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingDeleteSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: messageLocalization.format(\"dxFileManager-editingDeleteMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingDeleteSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: messageLocalization.format(\"dxFileManager-editingDeleteMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingDeleteSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: messageLocalization.format(\"dxFileManager-editingDeleteMultipleItemsErrorMessage\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-editingDeleteCommonErrorMessage\")\r\n },\r\n move: {\r\n action: arg => this._tryMove(arg),\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingMoveSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: messageLocalization.format(\"dxFileManager-editingMoveMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingMoveSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: messageLocalization.format(\"dxFileManager-editingMoveMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingMoveSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: messageLocalization.format(\"dxFileManager-editingMoveMultipleItemsErrorMessage\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-editingMoveCommonErrorMessage\")\r\n },\r\n copy: {\r\n action: arg => this._tryCopy(arg),\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingCopySingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: messageLocalization.format(\"dxFileManager-editingCopyMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingCopySingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: messageLocalization.format(\"dxFileManager-editingCopyMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingCopySingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: messageLocalization.format(\"dxFileManager-editingCopyMultipleItemsErrorMessage\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-editingCopyCommonErrorMessage\")\r\n },\r\n upload: {\r\n action: arg => this._tryUpload(arg),\r\n allowCancel: true,\r\n allowItemProgress: true,\r\n singleItemProcessingMessage: messageLocalization.format(\"dxFileManager-editingUploadSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: messageLocalization.format(\"dxFileManager-editingUploadMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: messageLocalization.format(\"dxFileManager-editingUploadSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: messageLocalization.format(\"dxFileManager-editingUploadMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingUploadSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: messageLocalization.format(\"dxFileManager-editingUploadMultipleItemsErrorMessage\"),\r\n canceledMessage: messageLocalization.format(\"dxFileManager-editingUploadCanceledMessage\")\r\n },\r\n download: {\r\n action: arg => this._download(arg),\r\n singleItemProcessingMessage: \"\",\r\n multipleItemsProcessingMessage: \"\",\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-editingDownloadSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: messageLocalization.format(\"dxFileManager-editingDownloadMultipleItemsErrorMessage\")\r\n },\r\n getItemContent: {\r\n action: arg => this._getItemContent(arg)\r\n },\r\n getItems: {\r\n singleItemProcessingMessage: \"\",\r\n singleItemErrorMessage: messageLocalization.format(\"dxFileManager-errorDirectoryOpenFailed\"),\r\n commonErrorMessage: messageLocalization.format(\"dxFileManager-errorDirectoryOpenFailed\")\r\n }\r\n }\r\n }\r\n getCommandActions() {\r\n var result = {};\r\n each(this._metadataMap, name => {\r\n if (Object.prototype.hasOwnProperty.call(this._metadataMap, name)) {\r\n result[name] = arg => this._executeAction(name, arg)\r\n }\r\n });\r\n return result\r\n }\r\n _executeAction(actionName, arg) {\r\n var actionMetadata = this._metadataMap[actionName];\r\n return actionMetadata ? actionMetadata.action(arg) : null\r\n }\r\n _onCancelUploadSession(info) {\r\n this._fileUploader.cancelUpload(info.uploadSessionId)\r\n }\r\n _onCancelFileUpload(item, itemIndex) {\r\n this._fileUploader.cancelFileUpload(item.info.uploadSessionId, itemIndex)\r\n }\r\n _onUploadProgress(_ref3) {\r\n var {\r\n sessionId: sessionId,\r\n fileIndex: fileIndex,\r\n commonValue: commonValue,\r\n fileValue: fileValue\r\n } = _ref3;\r\n var {\r\n operationInfo: operationInfo\r\n } = this._uploadOperationInfoMap[sessionId];\r\n this._notificationControl.updateOperationItemProgress(operationInfo, fileIndex, 100 * fileValue, 100 * commonValue)\r\n }\r\n _onUploadFinished(_ref4) {\r\n var {\r\n sessionId: sessionId,\r\n commonValue: commonValue\r\n } = _ref4;\r\n var {\r\n operationInfo: operationInfo\r\n } = this._uploadOperationInfoMap[sessionId];\r\n this._notificationControl.finishOperation(operationInfo, 100 * commonValue);\r\n this._scheduleUploadSessionDisposal(sessionId, \"uploader\")\r\n }\r\n _onUploadSessionStarted(_ref5) {\r\n var {\r\n sessionInfo: sessionInfo\r\n } = _ref5;\r\n this._controller.processUploadSession(sessionInfo, this.uploadDirectoryInfo)\r\n }\r\n _onEditActionStarting(actionInfo) {\r\n var actionMetadata = this._metadataMap[actionInfo.name];\r\n var context = new FileManagerActionContext(actionMetadata, actionInfo.itemInfos, actionInfo.directory);\r\n var operationInfo = this._notificationControl.addOperation(context.processingMessage, actionMetadata.allowCancel, !actionMetadata.allowItemProgress);\r\n extend(actionInfo.customData, {\r\n context: context,\r\n operationInfo: operationInfo\r\n });\r\n switch (actionInfo.name) {\r\n case \"upload\":\r\n var sessionId = actionInfo.customData.sessionInfo.sessionId;\r\n operationInfo.uploadSessionId = sessionId;\r\n this._uploadOperationInfoMap[sessionId] = {\r\n operationInfo: operationInfo\r\n };\r\n break;\r\n case \"rename\":\r\n actionInfo.customData.context.itemNewName = actionInfo.customData.itemNewName\r\n }\r\n }\r\n _onEditActionResultAcquired(actionInfo) {\r\n var {\r\n context: context,\r\n operationInfo: operationInfo\r\n } = actionInfo.customData;\r\n context.singleRequest = actionInfo.singleRequest;\r\n var details = context.itemInfos.map(itemInfo => this._getItemProgressDisplayInfo(itemInfo));\r\n this._notificationControl.addOperationDetails(operationInfo, details, context.actionMetadata.allowCancel)\r\n }\r\n _onEditActionError(actionInfo, errorInfo) {\r\n var {\r\n context: context,\r\n operationInfo: operationInfo\r\n } = actionInfo.customData;\r\n context.singleRequest = actionInfo.singleRequest;\r\n this._handleActionError(operationInfo, context, errorInfo);\r\n this._completeAction(operationInfo, context)\r\n }\r\n _onEditActionItemError(actionInfo, errorInfo) {\r\n var {\r\n context: context,\r\n operationInfo: operationInfo\r\n } = actionInfo.customData;\r\n this._handleActionError(operationInfo, context, errorInfo)\r\n }\r\n _onCompleteEditActionItem(actionInfo, info) {\r\n var {\r\n context: context,\r\n operationInfo: operationInfo\r\n } = actionInfo.customData;\r\n if (!info.result || !info.result.canceled) {\r\n context.completeOperationItem(info.index);\r\n this._notificationControl.completeOperationItem(operationInfo, info.index, context.commonProgress)\r\n }\r\n }\r\n _onCompleteEditAction(actionInfo) {\r\n var {\r\n context: context,\r\n operationInfo: operationInfo\r\n } = actionInfo.customData;\r\n this._completeAction(operationInfo, context);\r\n if (\"upload\" === actionInfo.name) {\r\n this._scheduleUploadSessionDisposal(actionInfo.customData.sessionInfo.sessionId, \"controller\")\r\n }\r\n }\r\n _scheduleUploadSessionDisposal(sessionId, requester) {\r\n if (isDefined(this._uploadOperationInfoMap[sessionId].requester) && this._uploadOperationInfoMap[sessionId].requester !== requester) {\r\n delete this._uploadOperationInfoMap[sessionId]\r\n } else {\r\n this._uploadOperationInfoMap[sessionId].requester = requester\r\n }\r\n }\r\n _tryCreate(parentDirectories) {\r\n var parentDirectoryInfo = parentDirectories && parentDirectories[0] || this._getCurrentDirectory();\r\n var newDirName = messageLocalization.format(\"dxFileManager-newDirectoryName\");\r\n return this._showDialog(this._dialogManager.getCreateItemDialog(), newDirName).then(_ref6 => {\r\n var {\r\n name: name\r\n } = _ref6;\r\n return this._controller.createDirectory(parentDirectoryInfo, name)\r\n })\r\n }\r\n _tryRename(itemInfos) {\r\n var itemInfo = itemInfos && itemInfos[0] || this._model.getMultipleSelectedItems()[0];\r\n if (!itemInfo) {\r\n return (new Deferred).reject().promise()\r\n }\r\n return this._showDialog(this._dialogManager.getRenameItemDialog(), itemInfo.fileItem.name).then(_ref7 => {\r\n var {\r\n name: name\r\n } = _ref7;\r\n return this._controller.renameItem(itemInfo, name)\r\n })\r\n }\r\n _tryDelete(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n if (0 === itemInfos.length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var itemName = itemInfos[0].fileItem.name;\r\n var itemCount = itemInfos.length;\r\n return this._showDialog(this._dialogManager.getDeleteItemDialog(), {\r\n itemName: itemName,\r\n itemCount: itemCount\r\n }).then(() => this._controller.deleteItems(itemInfos))\r\n }\r\n _tryMove(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n if (0 === itemInfos.length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n return this._showDialog(this._dialogManager.getMoveDialog(itemInfos)).then(_ref8 => {\r\n var {\r\n folder: folder\r\n } = _ref8;\r\n return this._controller.moveItems(itemInfos, folder)\r\n })\r\n }\r\n _tryCopy(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n if (0 === itemInfos.length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n return this._showDialog(this._dialogManager.getCopyDialog(itemInfos)).then(_ref9 => {\r\n var {\r\n folder: folder\r\n } = _ref9;\r\n return this._controller.copyItems(itemInfos, folder)\r\n })\r\n }\r\n _tryUpload(destinationFolder) {\r\n this._uploadDirectoryInfo = null === destinationFolder || void 0 === destinationFolder ? void 0 : destinationFolder[0];\r\n this._fileUploader.tryUpload()\r\n }\r\n _download(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n if (0 === itemInfos.length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n return this._controller.downloadItems(itemInfos)\r\n }\r\n _getItemContent(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n return this._controller.getItemContent(itemInfos)\r\n }\r\n _completeAction(operationInfo, context) {\r\n this._notificationControl.completeOperation(operationInfo, context.completionMessage, !context.success, context.statusText);\r\n if (context.hasModifiedItems()) {\r\n this._raiseOnSuccess(context.onlyFiles)\r\n }\r\n }\r\n _handleActionError(operationInfo, context, errorInfo) {\r\n operationInfo.hasError = true;\r\n if (context.singleRequest) {\r\n this._handleSingleRequestActionError(operationInfo, context, errorInfo)\r\n } else {\r\n this._handleMultipleRequestActionError(operationInfo, context, errorInfo)\r\n }\r\n }\r\n _handleSingleRequestActionError(operationInfo, context, errorInfo) {\r\n var itemInfo = context.getItemForSingleRequestError();\r\n var itemName = context.getItemName(errorInfo.errorCode);\r\n var errorText = this._getErrorText(errorInfo, itemInfo, itemName);\r\n context.processSingleRequestError(errorText);\r\n var operationErrorInfo = this._getOperationErrorInfo(context);\r\n this._notificationControl.completeSingleOperationWithError(operationInfo, operationErrorInfo);\r\n if (context.multipleItems) {\r\n this._raiseOnSuccess(context.onlyFiles)\r\n }\r\n }\r\n _handleMultipleRequestActionError(operationInfo, context, errorInfo) {\r\n var itemInfo = context.getItemForMultipleRequestError(errorInfo.index);\r\n var itemName = context.getItemName(errorInfo.errorCode, errorInfo.index);\r\n var errorText = this._getErrorText(errorInfo, itemInfo, itemName);\r\n context.processMultipleRequestError(errorInfo.index, errorText);\r\n var operationErrorInfo = this._getOperationErrorInfo(context);\r\n this._notificationControl.addOperationDetailsError(operationInfo, operationErrorInfo)\r\n }\r\n _getOperationErrorInfo(context) {\r\n var detailError = context.errorState.currentDetailError;\r\n return {\r\n commonErrorText: context.errorState.commonErrorText,\r\n item: detailError.itemInfo ? this._getItemProgressDisplayInfo(detailError.itemInfo) : null,\r\n itemIndex: detailError.itemIndex,\r\n detailErrorText: detailError.errorText\r\n }\r\n }\r\n _getErrorText(errorInfo, itemInfo, itemName) {\r\n var errorText = errorInfo.errorText || FileManagerMessages.get(errorInfo.errorCode, itemName);\r\n var errorArgs = {\r\n fileSystemItem: null === itemInfo || void 0 === itemInfo ? void 0 : itemInfo.fileItem,\r\n errorCode: errorInfo.errorCode,\r\n errorText: errorText\r\n };\r\n this._raiseOnError(errorArgs);\r\n return errorArgs.errorText\r\n }\r\n _getItemProgressDisplayInfo(itemInfo) {\r\n return {\r\n commonText: itemInfo.fileItem.name,\r\n imageUrl: this._getItemThumbnail(itemInfo)\r\n }\r\n }\r\n _showDialog(dialog, dialogArgument) {\r\n this._dialogDeferred = new Deferred;\r\n dialog.show(dialogArgument);\r\n return this._dialogDeferred.promise()\r\n }\r\n _onDialogClosed(e) {\r\n var result = e.dialogResult;\r\n if (result) {\r\n this._dialogDeferred.resolve(result)\r\n } else {\r\n this._dialogDeferred.reject()\r\n }\r\n }\r\n updateDialogRtl(value) {\r\n this._dialogManager.updateDialogRtl(value)\r\n }\r\n _getItemThumbnail(item) {\r\n var itemThumbnailGetter = this.option(\"getItemThumbnail\");\r\n if (!itemThumbnailGetter) {\r\n return null\r\n }\r\n var info = itemThumbnailGetter(item);\r\n return info ? info.thumbnail : null\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onSuccess: this._createActionByOption(\"onSuccess\"),\r\n onError: this._createActionByOption(\"onError\")\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n model: {\r\n getMultipleSelectedItems: null\r\n },\r\n notificationControl: null,\r\n getItemThumbnail: null,\r\n onSuccess: null,\r\n onError: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"model\":\r\n this.repaint();\r\n break;\r\n case \"notificationControl\":\r\n this._initNotificationControl(args.value);\r\n break;\r\n case \"getItemThumbnail\":\r\n break;\r\n case \"uploadDropZonePlaceholderContainer\":\r\n this._fileUploader.option(\"dropZonePlaceholderContainer\", args.value);\r\n break;\r\n case \"onSuccess\":\r\n case \"onError\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _raiseOnSuccess(updatedOnlyFiles) {\r\n this._actions.onSuccess({\r\n updatedOnlyFiles: updatedOnlyFiles\r\n })\r\n }\r\n _raiseOnError(args) {\r\n this._actions.onError(args)\r\n }\r\n _getCurrentDirectory() {\r\n return this._controller.getCurrentDirectory()\r\n }\r\n get uploadDirectoryInfo() {\r\n return this._uploadDirectoryInfo || this._getCurrentDirectory()\r\n }\r\n}\r\nclass FileManagerActionContext {\r\n constructor(actionMetadata, itemInfos, directoryInfo) {\r\n this._actionMetadata = actionMetadata;\r\n this._itemInfos = itemInfos;\r\n this._onlyFiles = !this._actionMetadata.affectsAllItems && this._itemInfos.every(info => !info.fileItem.isDirectory);\r\n this._items = this._itemInfos.map(itemInfo => itemInfo.fileItem);\r\n this._multipleItems = this._items.length > 1;\r\n this._location = directoryInfo.getDisplayName();\r\n this._singleRequest = true;\r\n this._completedItems = [];\r\n this._commonProgress = 0;\r\n this._errorState = {\r\n failedCount: 0\r\n };\r\n this._itemNewName = \"\"\r\n }\r\n completeOperationItem(itemIndex) {\r\n if (this._singleRequest) {\r\n this._completedItems = [...this._items]\r\n } else {\r\n var item = this._items[itemIndex];\r\n this._completedItems.push(item)\r\n }\r\n if (!this._actionMetadata.allowItemProgress) {\r\n this._commonProgress = this._completedItems.length / this._items.length * 100\r\n }\r\n }\r\n processSingleRequestError(errorText) {\r\n this._errorState.failedCount = 1;\r\n this._errorState.commonErrorText = this._multipleItems ? this._actionMetadata.commonErrorMessage : this._actionMetadata.singleItemErrorMessage;\r\n var itemIndex = this._multipleItems ? -1 : 1;\r\n var itemInfo = this.getItemForSingleRequestError();\r\n this._setCurrentDetailError(itemIndex, itemInfo, errorText)\r\n }\r\n processMultipleRequestError(itemIndex, errorText) {\r\n this._errorState.failedCount++;\r\n this._errorState.commonErrorText = this._errorState.failedCount > 1 ? format(this._actionMetadata.multipleItemsErrorMessage, this._errorState.failedCount) : this._actionMetadata.singleItemErrorMessage;\r\n var itemInfo = this.getItemForMultipleRequestError(itemIndex);\r\n this._setCurrentDetailError(itemIndex, itemInfo, errorText)\r\n }\r\n hasModifiedItems() {\r\n return this._hasCompletedItems() || this._singleRequest && !this.success && this._multipleItems\r\n }\r\n getItemForSingleRequestError() {\r\n return this._multipleItems ? null : this._itemInfos[0]\r\n }\r\n getItemForMultipleRequestError(itemIndex) {\r\n return this._itemInfos[itemIndex]\r\n }\r\n getItemName(errorCode, itemIndex) {\r\n var itemInfo = this.singleRequest ? this.getItemForSingleRequestError() : this.getItemForMultipleRequestError(itemIndex);\r\n var result = null === itemInfo || void 0 === itemInfo ? void 0 : itemInfo.fileItem.name;\r\n if (this.itemNewName && this._isItemExistsErrorCode(errorCode)) {\r\n result = this.itemNewName\r\n }\r\n return result\r\n }\r\n _isItemExistsErrorCode(errorCode) {\r\n return errorCode === ErrorCode.DirectoryExists || errorCode === ErrorCode.FileExists\r\n }\r\n _setCurrentDetailError(itemIndex, itemInfo, errorText) {\r\n this._errorState.currentDetailError = {\r\n itemIndex: itemIndex,\r\n itemInfo: itemInfo,\r\n errorText: errorText\r\n }\r\n }\r\n _hasCompletedItems() {\r\n return this._completedItems.length > 0\r\n }\r\n get actionMetadata() {\r\n return this._actionMetadata\r\n }\r\n get itemInfos() {\r\n return this._itemInfos\r\n }\r\n get itemNewName() {\r\n return this._itemNewName\r\n }\r\n set itemNewName(value) {\r\n this._itemNewName = value\r\n }\r\n get errorState() {\r\n return this._errorState\r\n }\r\n get singleRequest() {\r\n return this._singleRequest\r\n }\r\n set singleRequest(value) {\r\n this._singleRequest = value\r\n }\r\n get multipleItems() {\r\n return this._multipleItems\r\n }\r\n get onlyFiles() {\r\n return this._onlyFiles\r\n }\r\n get processingMessage() {\r\n return this._multipleItems ? format(this._actionMetadata.multipleItemsProcessingMessage, this._items.length, this._location) : format(this._actionMetadata.singleItemProcessingMessage, this._location)\r\n }\r\n get successMessage() {\r\n if (this._hasCompletedItems()) {\r\n return this._multipleItems ? format(this._actionMetadata.multipleItemsSuccessMessage, this._completedItems.length, this._location) : format(this._actionMetadata.singleItemSuccessMessage, this._location)\r\n } else {\r\n return this._multipleItems ? format(this._actionMetadata.multipleItemsErrorMessage, this._items.length) : this._actionMetadata.singleItemErrorMessage\r\n }\r\n }\r\n get completionMessage() {\r\n return this.success ? this.successMessage : this.errorState.commonErrorText\r\n }\r\n get statusText() {\r\n return this.success && !this._hasCompletedItems() ? this._actionMetadata.canceledMessage : void 0\r\n }\r\n get commonProgress() {\r\n return this._commonProgress\r\n }\r\n get success() {\r\n return !this._errorState.failedCount\r\n }\r\n}\r\nexport default FileManagerEditingControl;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.dialog_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport FileManagerNameEditorDialog from \"./ui.file_manager.dialog.name_editor\";\r\nimport FileManagerFolderChooserDialog from \"./ui.file_manager.dialog.folder_chooser\";\r\nimport FileManagerDeleteItemDialog from \"./ui.file_manager.dialog.delete_item\";\r\nclass FileManagerDialogManager {\r\n constructor($element, options) {\r\n this._$element = $element;\r\n this._options = options;\r\n var baseDialogOptions = {\r\n onClosed: this._options.onDialogClosed,\r\n rtlEnabled: this._options.rtlEnabled\r\n };\r\n var $chooseFolderDialog = $(\"<div>\").appendTo(this._$element);\r\n this._chooseDirectoryDialog = new FileManagerFolderChooserDialog($chooseFolderDialog, extend(baseDialogOptions, this._options.chooseDirectoryDialog));\r\n var $renameDialog = $(\"<div>\").appendTo(this._$element);\r\n this._renameItemDialog = new FileManagerNameEditorDialog($renameDialog, extend(baseDialogOptions, {\r\n title: messageLocalization.format(\"dxFileManager-dialogRenameItemTitle\"),\r\n buttonText: messageLocalization.format(\"dxFileManager-dialogRenameItemButtonText\")\r\n }));\r\n var $createDialog = $(\"<div>\").appendTo(this._$element);\r\n this._createItemDialog = new FileManagerNameEditorDialog($createDialog, extend(baseDialogOptions, {\r\n title: messageLocalization.format(\"dxFileManager-dialogCreateDirectoryTitle\"),\r\n buttonText: messageLocalization.format(\"dxFileManager-dialogCreateDirectoryButtonText\")\r\n }));\r\n var $deleteItemDialog = $(\"<div>\").appendTo(this._$element);\r\n this._deleteItemDialog = new FileManagerDeleteItemDialog($deleteItemDialog, baseDialogOptions)\r\n }\r\n getCopyDialog(targetItemInfos) {\r\n this._chooseDirectoryDialog.switchToCopyDialog(targetItemInfos);\r\n return this._chooseDirectoryDialog\r\n }\r\n getMoveDialog(targetItemInfos) {\r\n this._chooseDirectoryDialog.switchToMoveDialog(targetItemInfos);\r\n return this._chooseDirectoryDialog\r\n }\r\n getRenameItemDialog() {\r\n return this._renameItemDialog\r\n }\r\n getCreateItemDialog() {\r\n return this._createItemDialog\r\n }\r\n getDeleteItemDialog() {\r\n return this._deleteItemDialog\r\n }\r\n updateDialogRtl(value) {\r\n [this._chooseDirectoryDialog, this._renameItemDialog, this._createItemDialog, this._deleteItemDialog].forEach(dialog => {\r\n dialog.option(\"rtlEnabled\", value)\r\n })\r\n }\r\n}\r\nexport default FileManagerDialogManager;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.messages.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ErrorCode from \"../../file_management/error_codes\";\r\nexport var FileManagerMessages = {\r\n get: (errorCode, args) => {\r\n switch (errorCode) {\r\n case ErrorCode.NoAccess:\r\n return messageLocalization.format(\"dxFileManager-errorNoAccess\");\r\n case ErrorCode.FileExists:\r\n return messageLocalization.format(\"dxFileManager-errorFileExistsFormat\", args);\r\n case ErrorCode.FileNotFound:\r\n return messageLocalization.format(\"dxFileManager-errorFileNotFoundFormat\", args);\r\n case ErrorCode.DirectoryExists:\r\n return messageLocalization.format(\"dxFileManager-errorDirectoryExistsFormat\", args);\r\n case ErrorCode.DirectoryNotFound:\r\n return messageLocalization.format(\"dxFileManager-errorDirectoryNotFoundFormat\", args);\r\n case ErrorCode.WrongFileExtension:\r\n return messageLocalization.format(\"dxFileManager-errorWrongFileExtension\");\r\n case ErrorCode.MaxFileSizeExceeded:\r\n return messageLocalization.format(\"dxFileManager-errorMaxFileSizeExceeded\");\r\n case ErrorCode.InvalidSymbols:\r\n return messageLocalization.format(\"dxFileManager-errorInvalidSymbols\")\r\n }\r\n return messageLocalization.format(\"dxFileManager-errorDefault\")\r\n }\r\n};\r\nexport {\r\n ErrorCode\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.breadcrumbs.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Menu from \"../menu/ui.menu\";\r\nvar FILE_MANAGER_BREADCRUMBS_CLASS = \"dx-filemanager-breadcrumbs\";\r\nvar FILE_MANAGER_BREADCRUMBS_PARENT_FOLDER_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-parent-folder-item\";\r\nvar FILE_MANAGER_BREADCRUMBS_SEPARATOR_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-separator-item\";\r\nvar FILE_MANAGER_BREADCRUMBS_PATH_SEPARATOR_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-path-separator-item\";\r\nclass FileManagerBreadcrumbs extends Widget {\r\n _init() {\r\n super._init();\r\n this._currentDirectory = null\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n if (this._currentDirectory) {\r\n this._renderMenu()\r\n }\r\n this.$element().addClass(FILE_MANAGER_BREADCRUMBS_CLASS)\r\n }\r\n setCurrentDirectory(directory) {\r\n if (!this._areDirsEqual(this._currentDirectory, directory)) {\r\n this._currentDirectory = directory;\r\n this.repaint()\r\n }\r\n }\r\n _renderMenu() {\r\n var $menu = $(\"<div>\").appendTo(this.$element());\r\n this._menu = this._createComponent($menu, Menu, {\r\n dataSource: this._getMenuItems(),\r\n onItemClick: this._onItemClick.bind(this),\r\n onItemRendered: this._onItemRendered.bind(this)\r\n })\r\n }\r\n _getMenuItems() {\r\n var dirLine = this._getParentDirsLine();\r\n var result = [{\r\n icon: \"arrowup\",\r\n directory: this._currentDirectory.parentDirectory,\r\n isPathItem: true,\r\n cssClass: FILE_MANAGER_BREADCRUMBS_PARENT_FOLDER_ITEM_CLASS\r\n }, {\r\n text: \"\\xa0\",\r\n cssClass: FILE_MANAGER_BREADCRUMBS_SEPARATOR_ITEM_CLASS\r\n }];\r\n dirLine.forEach((dir, index) => {\r\n result.push({\r\n text: dir.getDisplayName(),\r\n directory: dir,\r\n isPathItem: true\r\n });\r\n if (index !== dirLine.length - 1) {\r\n result.push({\r\n icon: \"spinnext\",\r\n cssClass: FILE_MANAGER_BREADCRUMBS_PATH_SEPARATOR_ITEM_CLASS\r\n })\r\n }\r\n });\r\n return result\r\n }\r\n _onItemClick(_ref) {\r\n var {\r\n itemData: itemData\r\n } = _ref;\r\n if (!itemData.isPathItem) {\r\n return\r\n }\r\n var newDir = itemData.directory;\r\n if (!this._areDirsEqual(newDir, this._currentDirectory)) {\r\n this._raiseCurrentDirectoryChanged(newDir)\r\n }\r\n }\r\n _onItemRendered(_ref2) {\r\n var {\r\n itemElement: itemElement,\r\n itemData: itemData\r\n } = _ref2;\r\n if (itemData.cssClass) {\r\n $(itemElement).addClass(itemData.cssClass)\r\n }\r\n }\r\n _getParentDirsLine() {\r\n var currentDirectory = this._currentDirectory;\r\n var result = [];\r\n while (currentDirectory) {\r\n result.unshift(currentDirectory);\r\n currentDirectory = currentDirectory.parentDirectory\r\n }\r\n return result\r\n }\r\n _areDirsEqual(dir1, dir2) {\r\n return dir1 && dir2 && dir1 === dir2 && dir1.fileItem.key === dir2.fileItem.key\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onCurrentDirectoryChanging: this._createActionByOption(\"onCurrentDirectoryChanging\")\r\n }\r\n }\r\n _raiseCurrentDirectoryChanged(currentDirectory) {\r\n this._actions.onCurrentDirectoryChanging({\r\n currentDirectory: currentDirectory\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n rootFolderDisplayName: \"Files\",\r\n onCurrentDirectoryChanging: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"rootFolderDisplayName\":\r\n this.repaint();\r\n break;\r\n case \"onCurrentDirectoryChanging\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default FileManagerBreadcrumbs;\r\n","/**\r\n * DevExtreme (esm/ui/splitter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport Guid from \"../core/guid\";\r\nvar window = getWindow();\r\nvar SPLITTER_CLASS = \"dx-splitter\";\r\nvar SPLITTER_WRAPPER_CLASS = \"\".concat(SPLITTER_CLASS, \"-wrapper\");\r\nvar SPLITTER_INACTIVE_CLASS = \"\".concat(SPLITTER_CLASS, \"-inactive\");\r\nvar SPLITTER_BORDER_CLASS = \"\".concat(SPLITTER_CLASS, \"-border\");\r\nvar SPLITTER_INITIAL_STATE_CLASS = \"\".concat(SPLITTER_CLASS, \"-initial\");\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar SPLITTER_MODULE_NAMESPACE = \"dxSplitterResizing\";\r\nexport default class SplitterControl extends Widget {\r\n _init() {\r\n super._init();\r\n var eventGuid = (new Guid).toString();\r\n this.SPLITTER_POINTER_DOWN_EVENT_NAME = addNamespace(pointerEvents.down, SPLITTER_MODULE_NAMESPACE + eventGuid);\r\n this.SPLITTER_POINTER_MOVE_EVENT_NAME = addNamespace(pointerEvents.move, SPLITTER_MODULE_NAMESPACE + eventGuid);\r\n this.SPLITTER_POINTER_UP_EVENT_NAME = addNamespace(pointerEvents.up, SPLITTER_MODULE_NAMESPACE + eventGuid)\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n this._$container = this.option(\"container\");\r\n this._$leftElement = this.option(\"leftElement\");\r\n this._$rightElement = this.option(\"rightElement\");\r\n this.$element().addClass(SPLITTER_WRAPPER_CLASS).addClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._$splitterBorder = $(\"<div>\").addClass(SPLITTER_BORDER_CLASS).appendTo(this.$element());\r\n this._$splitter = $(\"<div>\").addClass(SPLITTER_CLASS).addClass(SPLITTER_INACTIVE_CLASS).appendTo(this._$splitterBorder)\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onApplyPanelSize: this._createActionByOption(\"onApplyPanelSize\"),\r\n onActiveStateChanged: this._createActionByOption(\"onActiveStateChanged\")\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers()\r\n }\r\n _clean() {\r\n this._detachEventHandlers();\r\n super._clean()\r\n }\r\n _attachEventHandlers() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(this._$splitterBorder, this.SPLITTER_POINTER_DOWN_EVENT_NAME, this._onMouseDownHandler.bind(this));\r\n eventsEngine.on(document, this.SPLITTER_POINTER_MOVE_EVENT_NAME, this._onMouseMoveHandler.bind(this));\r\n eventsEngine.on(document, this.SPLITTER_POINTER_UP_EVENT_NAME, this._onMouseUpHandler.bind(this))\r\n }\r\n _detachEventHandlers() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(this._$splitterBorder, this.SPLITTER_POINTER_DOWN_EVENT_NAME);\r\n eventsEngine.off(document, this.SPLITTER_POINTER_MOVE_EVENT_NAME);\r\n eventsEngine.off(document, this.SPLITTER_POINTER_UP_EVENT_NAME)\r\n }\r\n _dimensionChanged(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n this._containerWidth = this._$container.get(0).clientWidth;\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true,\r\n usePercentagePanelsWidth: true\r\n })\r\n }\r\n }\r\n _onMouseDownHandler(e) {\r\n e.preventDefault();\r\n this._offsetX = e.pageX - this._$splitterBorder.offset().left <= this._getSplitterBorderWidth() ? e.pageX - this._$splitterBorder.offset().left : 0;\r\n this._containerWidth = this._$container.get(0).clientWidth;\r\n this.$element().removeClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._toggleActive(true);\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true\r\n })\r\n }\r\n _onMouseMoveHandler(e) {\r\n if (!this._isSplitterActive) {\r\n return\r\n }\r\n this._setSplitterPositionLeft({\r\n splitterPositionLeft: this._getNewSplitterPositionLeft(e),\r\n needUpdatePanels: true\r\n })\r\n }\r\n _onMouseUpHandler() {\r\n if (!this._isSplitterActive) {\r\n return\r\n }\r\n this._leftPanelPercentageWidth = null;\r\n this._toggleActive(false);\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true,\r\n usePercentagePanelsWidth: true\r\n })\r\n }\r\n _getNewSplitterPositionLeft(e) {\r\n var newSplitterPositionLeft = e.pageX - this._getContainerLeftOffset() - this._offsetX;\r\n newSplitterPositionLeft = Math.max(0 - this._getSplitterOffset(), newSplitterPositionLeft);\r\n newSplitterPositionLeft = Math.min(this._containerWidth - this._getSplitterOffset() - this._getSplitterWidth(), newSplitterPositionLeft);\r\n return newSplitterPositionLeft\r\n }\r\n _getContainerLeftOffset() {\r\n var offsetLeft = this._$container.offset().left;\r\n if (window) {\r\n var style = window.getComputedStyle(this._$container.get(0));\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var borderLeft = parseFloat(style.borderLeftWidth) || 0;\r\n offsetLeft += paddingLeft + borderLeft\r\n }\r\n return offsetLeft\r\n }\r\n _getSplitterOffset() {\r\n return (this._getSplitterBorderWidth() - this._getSplitterWidth()) / 2\r\n }\r\n _getSplitterWidth() {\r\n return this._$splitter.get(0).clientWidth\r\n }\r\n _getSplitterBorderWidth() {\r\n return this._$splitterBorder.get(0).clientWidth\r\n }\r\n _getLeftPanelWidth() {\r\n return this._$leftElement.get(0).clientWidth\r\n }\r\n getSplitterBorderElement() {\r\n return this._$splitterBorder\r\n }\r\n _toggleActive(isActive) {\r\n this.$element().toggleClass(SPLITTER_INACTIVE_CLASS, !isActive);\r\n this._$splitter.toggleClass(SPLITTER_INACTIVE_CLASS, !isActive);\r\n this._isSplitterActive = isActive;\r\n this._actions.onActiveStateChanged({\r\n isActive: isActive\r\n })\r\n }\r\n toggleDisabled(isDisabled) {\r\n this.$element().toggleClass(STATE_DISABLED_CLASS, isDisabled);\r\n this._$splitter.toggleClass(STATE_DISABLED_CLASS, isDisabled)\r\n }\r\n isSplitterMoved() {\r\n return !this.$element().hasClass(SPLITTER_INITIAL_STATE_CLASS)\r\n }\r\n disableSplitterCalculation(value) {\r\n this._isSplitterCalculationDisabled = value\r\n }\r\n _setSplitterPositionLeft() {\r\n var {\r\n splitterPositionLeft: splitterPositionLeft = null,\r\n needUpdatePanels: needUpdatePanels = false,\r\n usePercentagePanelsWidth: usePercentagePanelsWidth = false\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n splitterPositionLeft = splitterPositionLeft || this._getLeftPanelWidth() - this._getSplitterOffset();\r\n var leftPanelWidth = splitterPositionLeft + this._getSplitterOffset();\r\n var rightPanelWidth = this._containerWidth - leftPanelWidth;\r\n if (!this._isSplitterCalculationDisabled) {\r\n this.$element().css(\"left\", splitterPositionLeft)\r\n }\r\n this._leftPanelPercentageWidth = this._leftPanelPercentageWidth || this._convertToPercentage(leftPanelWidth);\r\n var rightPanelPercentageWidth = this._convertToPercentage(this._containerWidth - this._convertToPixels(this._leftPanelPercentageWidth));\r\n if (!needUpdatePanels) {\r\n return\r\n }\r\n this._actions.onApplyPanelSize({\r\n leftPanelWidth: usePercentagePanelsWidth ? \"\".concat(this._leftPanelPercentageWidth, \"%\") : leftPanelWidth,\r\n rightPanelWidth: usePercentagePanelsWidth ? \"\".concat(rightPanelPercentageWidth, \"%\") : rightPanelWidth\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"initialLeftPanelWidth\":\r\n this._leftPanelPercentageWidth = this._convertToPercentage(args.value);\r\n this._dimensionChanged();\r\n break;\r\n case \"leftElement\":\r\n this.repaint();\r\n break;\r\n case \"onActiveStateChanged\":\r\n case \"onApplyPanelSize\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _convertToPercentage(pixelWidth) {\r\n return pixelWidth / this._$container.get(0).clientWidth * 100\r\n }\r\n _convertToPixels(percentageWidth) {\r\n return percentageWidth / 100 * this._$container.get(0).clientWidth\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.adaptivity.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Drawer from \"../drawer/ui.drawer\";\r\nimport SplitterControl from \"../splitter\";\r\nvar window = getWindow();\r\nvar ADAPTIVE_STATE_SCREEN_WIDTH = 573;\r\nvar FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS = \"dx-filemanager-adaptivity-drawer-panel\";\r\nvar DRAWER_PANEL_CONTENT_INITIAL = \"dx-drawer-panel-content-initial\";\r\nvar DRAWER_PANEL_CONTENT_ADAPTIVE = \"dx-drawer-panel-content-adaptive\";\r\nclass FileManagerAdaptivityControl extends Widget {\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._initActions();\r\n this._isInAdaptiveState = false;\r\n var $drawer = $(\"<div>\").appendTo(this.$element());\r\n $(\"<div>\").addClass(FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS).appendTo($drawer);\r\n this._drawer = this._createComponent($drawer, Drawer);\r\n this._drawer.option({\r\n opened: true,\r\n template: this._createDrawerTemplate.bind(this)\r\n });\r\n $(this._drawer.content()).addClass(DRAWER_PANEL_CONTENT_INITIAL);\r\n var $drawerContent = $drawer.find(\".\".concat(FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS)).first();\r\n var contentRenderer = this.option(\"contentTemplate\");\r\n if (isFunction(contentRenderer)) {\r\n contentRenderer($drawerContent)\r\n }\r\n this._updateDrawerMaxSize()\r\n }\r\n _createDrawerTemplate(container) {\r\n this.option(\"drawerTemplate\")(container);\r\n this._splitter = this._createComponent(\"<div>\", SplitterControl, {\r\n container: this.$element(),\r\n leftElement: $(this._drawer.content()),\r\n rightElement: $(this._drawer.viewContent()),\r\n onApplyPanelSize: this._onApplyPanelSize.bind(this),\r\n onActiveStateChanged: this._onActiveStateChanged.bind(this)\r\n });\r\n this._splitter.$element().appendTo(container);\r\n this._splitter.disableSplitterCalculation(true)\r\n }\r\n _render() {\r\n super._render();\r\n this._checkAdaptiveState()\r\n }\r\n _onApplyPanelSize(e) {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!this._splitter.isSplitterMoved()) {\r\n this._setDrawerWidth(\"\");\r\n return\r\n }\r\n $(this._drawer.content()).removeClass(DRAWER_PANEL_CONTENT_INITIAL);\r\n this._setDrawerWidth(e.leftPanelWidth)\r\n }\r\n _onActiveStateChanged(_ref) {\r\n var {\r\n isActive: isActive\r\n } = _ref;\r\n this._splitter.disableSplitterCalculation(!isActive);\r\n !isActive && this._splitter.$element().css(\"left\", \"auto\")\r\n }\r\n _setDrawerWidth(width) {\r\n $(this._drawer.content()).css(\"width\", width);\r\n this._updateDrawerMaxSize();\r\n this._drawer.resizeViewContent()\r\n }\r\n _updateDrawerMaxSize() {\r\n this._drawer.option(\"maxSize\", this._drawer.getRealPanelWidth())\r\n }\r\n _dimensionChanged(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n this._checkAdaptiveState()\r\n }\r\n }\r\n _checkAdaptiveState() {\r\n var oldState = this._isInAdaptiveState;\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n if (oldState !== this._isInAdaptiveState) {\r\n this.toggleDrawer(!this._isInAdaptiveState, true);\r\n $(this._drawer.content()).toggleClass(DRAWER_PANEL_CONTENT_ADAPTIVE, this._isInAdaptiveState);\r\n this._raiseAdaptiveStateChanged(this._isInAdaptiveState)\r\n }\r\n if (this._isInAdaptiveState && this._isDrawerOpened()) {\r\n this._updateDrawerMaxSize()\r\n }\r\n }\r\n _isSmallScreen() {\r\n return getWidth(window) <= ADAPTIVE_STATE_SCREEN_WIDTH\r\n }\r\n _isDrawerOpened() {\r\n return this._drawer.option(\"opened\")\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onAdaptiveStateChanged: this._createActionByOption(\"onAdaptiveStateChanged\")\r\n }\r\n }\r\n _raiseAdaptiveStateChanged(enabled) {\r\n this._actions.onAdaptiveStateChanged({\r\n enabled: enabled\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n drawerTemplate: null,\r\n contentTemplate: null,\r\n onAdaptiveStateChanged: null\r\n })\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"drawerTemplate\":\r\n case \"contentTemplate\":\r\n this.repaint();\r\n break;\r\n case \"onAdaptiveStateChanged\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n isInAdaptiveState() {\r\n return this._isInAdaptiveState\r\n }\r\n toggleDrawer(showing, skipAnimation) {\r\n this._updateDrawerMaxSize();\r\n this._drawer.option(\"animationEnabled\", !skipAnimation);\r\n this._drawer.toggle(showing);\r\n var isSplitterActive = this._isDrawerOpened() && !this.isInAdaptiveState();\r\n this._splitter.toggleDisabled(!isSplitterActive)\r\n }\r\n getSplitterElement() {\r\n return this._splitter.getSplitterBorderElement().get(0)\r\n }\r\n}\r\nexport default FileManagerAdaptivityControl;\r\n","/**\r\n * DevExtreme (esm/ui/file_manager/ui.file_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n ensureDefined,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport notify from \"../notify\";\r\nimport {\r\n findItemsByKeys,\r\n extendAttributes\r\n} from \"./ui.file_manager.common\";\r\nimport {\r\n FileItemsController,\r\n OPERATIONS\r\n} from \"./file_items_controller\";\r\nimport {\r\n defaultPermissions,\r\n FileManagerCommandManager\r\n} from \"./ui.file_manager.command_manager\";\r\nimport FileManagerContextMenu from \"./ui.file_manager.context_menu\";\r\nimport FileManagerFilesTreeView from \"./ui.file_manager.files_tree_view\";\r\nimport FileManagerDetailsItemList from \"./ui.file_manager.item_list.details\";\r\nimport FileManagerThumbnailsItemList from \"./ui.file_manager.item_list.thumbnails\";\r\nimport FileManagerToolbar from \"./ui.file_manager.toolbar\";\r\nimport FileManagerNotificationControl from \"./ui.file_manager.notification\";\r\nimport FileManagerEditingControl from \"./ui.file_manager.editing\";\r\nimport FileManagerBreadcrumbs from \"./ui.file_manager.breadcrumbs\";\r\nimport FileManagerAdaptivityControl from \"./ui.file_manager.adaptivity\";\r\nimport {\r\n normalizeOptions\r\n} from \"../../core/options/utils\";\r\nimport {\r\n equals\r\n} from \"../../core/utils/comparator\";\r\nvar FILE_MANAGER_CLASS = \"dx-filemanager\";\r\nvar FILE_MANAGER_WRAPPER_CLASS = FILE_MANAGER_CLASS + \"-wrapper\";\r\nvar FILE_MANAGER_CONTAINER_CLASS = FILE_MANAGER_CLASS + \"-container\";\r\nvar FILE_MANAGER_DIRS_PANEL_CLASS = FILE_MANAGER_CLASS + \"-dirs-panel\";\r\nvar FILE_MANAGER_EDITING_CONTAINER_CLASS = FILE_MANAGER_CLASS + \"-editing-container\";\r\nvar FILE_MANAGER_ITEMS_PANEL_CLASS = FILE_MANAGER_CLASS + \"-items-panel\";\r\nvar FILE_MANAGER_ITEM_CUSTOM_THUMBNAIL_CLASS = FILE_MANAGER_CLASS + \"-item-custom-thumbnail\";\r\nvar PARENT_DIRECTORY_KEY_PREFIX = \"[*DXPDK*]$40F96F03-FBD8-43DF-91BE-F55F4B8BA871$\";\r\nvar VIEW_AREAS = {\r\n folders: \"navPane\",\r\n items: \"itemView\"\r\n};\r\nclass FileManager extends Widget {\r\n _initTemplates() {}\r\n _init() {\r\n super._init();\r\n this._initActions();\r\n this._providerUpdateDeferred = null;\r\n this._lockCurrentPathProcessing = false;\r\n this._wasRendered = false;\r\n this._controller = new FileItemsController({\r\n currentPath: this.option(\"currentPath\"),\r\n currentPathKeys: this.option(\"currentPathKeys\"),\r\n rootText: this.option(\"rootFolderName\"),\r\n fileProvider: this.option(\"fileSystemProvider\"),\r\n allowedFileExtensions: this.option(\"allowedFileExtensions\"),\r\n uploadMaxFileSize: this.option(\"upload\").maxFileSize,\r\n uploadChunkSize: this.option(\"upload\").chunkSize,\r\n onInitialized: this._onControllerInitialized.bind(this),\r\n onDataLoading: this._onDataLoading.bind(this),\r\n onSelectedDirectoryChanged: this._onSelectedDirectoryChanged.bind(this),\r\n onPathPotentiallyChanged: this._checkPathActuality.bind(this),\r\n editingEvents: this._actions.editing\r\n })\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._firstItemViewLoad = true;\r\n this._lockSelectionProcessing = false;\r\n this._lockFocusedItemProcessing = false;\r\n this._itemKeyToFocus = void 0;\r\n this._loadedWidgets = [];\r\n this._commandManager = new FileManagerCommandManager(this.option(\"permissions\"));\r\n this.$element().addClass(FILE_MANAGER_CLASS);\r\n if (this._wasRendered) {\r\n this._prepareToLoad()\r\n } else {\r\n this._wasRendered = true\r\n }\r\n this._createNotificationControl();\r\n this._initCommandManager()\r\n }\r\n _createNotificationControl() {\r\n var $notificationControl = $(\"<div>\").addClass(\"dx-filemanager-notification-container\").appendTo(this.$element());\r\n this._notificationControl = this._createComponent($notificationControl, FileManagerNotificationControl, {\r\n progressPanelContainer: this.$element(),\r\n contentTemplate: (container, notificationControl) => this._createWrapper(container, notificationControl),\r\n onActionProgress: e => this._onActionProgress(e),\r\n positionTarget: \".\".concat(FILE_MANAGER_CONTAINER_CLASS),\r\n showProgressPanel: this.option(\"notifications.showPanel\"),\r\n showNotificationPopup: this.option(\"notifications.showPopup\")\r\n })\r\n }\r\n _createWrapper(container, notificationControl) {\r\n this._$wrapper = $(\"<div>\").addClass(FILE_MANAGER_WRAPPER_CLASS).appendTo(container);\r\n this._createEditing(notificationControl);\r\n var $toolbar = $(\"<div>\").appendTo(this._$wrapper);\r\n this._toolbar = this._createComponent($toolbar, FileManagerToolbar, {\r\n commandManager: this._commandManager,\r\n generalItems: this.option(\"toolbar.items\"),\r\n fileItems: this.option(\"toolbar.fileSelectionItems\"),\r\n itemViewMode: this.option(\"itemView\").mode,\r\n onItemClick: args => this._actions.onToolbarItemClick(args)\r\n });\r\n this._createAdaptivityControl()\r\n }\r\n _createAdaptivityControl() {\r\n var $container = $(\"<div>\").addClass(FILE_MANAGER_CONTAINER_CLASS).appendTo(this._$wrapper);\r\n this._adaptivityControl = this._createComponent($container, FileManagerAdaptivityControl, {\r\n drawerTemplate: container => this._createFilesTreeView(container),\r\n contentTemplate: container => this._createItemsPanel(container),\r\n onAdaptiveStateChanged: e => this._onAdaptiveStateChanged(e)\r\n });\r\n this._editing.setUploaderSplitterElement(this._adaptivityControl.getSplitterElement())\r\n }\r\n _createEditing(notificationControl) {\r\n var $editingContainer = $(\"<div>\").addClass(FILE_MANAGER_EDITING_CONTAINER_CLASS).appendTo(this.$element());\r\n this._editing = this._createComponent($editingContainer, FileManagerEditingControl, {\r\n controller: this._controller,\r\n model: {\r\n getMultipleSelectedItems: this._getSelectedItemInfos.bind(this)\r\n },\r\n getItemThumbnail: this._getItemThumbnailInfo.bind(this),\r\n notificationControl: notificationControl,\r\n uploadDropZonePlaceholderContainer: this.$element(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n onSuccess: _ref => {\r\n var {\r\n updatedOnlyFiles: updatedOnlyFiles\r\n } = _ref;\r\n return this._redrawComponent(updatedOnlyFiles)\r\n },\r\n onError: e => this._onEditingError(e)\r\n })\r\n }\r\n _createItemsPanel($container) {\r\n this._$itemsPanel = $(\"<div>\").addClass(FILE_MANAGER_ITEMS_PANEL_CLASS).appendTo($container);\r\n this._createBreadcrumbs(this._$itemsPanel);\r\n this._createItemView(this._$itemsPanel);\r\n this._updateUploadDropZone()\r\n }\r\n _updateUploadDropZone() {\r\n var dropZone = this._commandManager.isCommandAvailable(\"upload\") ? this._$itemsPanel : $();\r\n this._editing.setUploaderDropZone(dropZone)\r\n }\r\n _createFilesTreeView(container) {\r\n this._filesTreeViewContextMenu = this._createContextMenu(false, VIEW_AREAS.folders);\r\n var $filesTreeView = $(\"<div>\").addClass(FILE_MANAGER_DIRS_PANEL_CLASS).appendTo(container);\r\n this._filesTreeView = this._createComponent($filesTreeView, FileManagerFilesTreeView, {\r\n storeExpandedState: true,\r\n contextMenu: this._filesTreeViewContextMenu,\r\n getDirectories: this.getDirectories.bind(this),\r\n getCurrentDirectory: this._getCurrentDirectory.bind(this),\r\n onDirectoryClick: _ref2 => {\r\n var {\r\n itemData: itemData\r\n } = _ref2;\r\n return this._setCurrentDirectory(itemData)\r\n },\r\n onItemListDataLoaded: () => this._tryEndLoading(VIEW_AREAS.folders)\r\n });\r\n this._filesTreeView.updateCurrentDirectory()\r\n }\r\n _createItemView($container, viewMode) {\r\n this._itemViewContextMenu = this._createContextMenu(true, VIEW_AREAS.items);\r\n var itemViewOptions = this.option(\"itemView\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusedItemKey: this.option(\"focusedItemKey\"),\r\n contextMenu: this._itemViewContextMenu,\r\n getItems: this._getItemViewItems.bind(this),\r\n onError: _ref3 => {\r\n var {\r\n error: error\r\n } = _ref3;\r\n return this._showError(error)\r\n },\r\n onSelectionChanged: this._onItemViewSelectionChanged.bind(this),\r\n onFocusedItemChanged: this._onItemViewFocusedItemChanged.bind(this),\r\n onSelectedItemOpened: this._onSelectedItemOpened.bind(this),\r\n onContextMenuShowing: e => this._onContextMenuShowing(VIEW_AREAS.items, e),\r\n onItemListItemsLoaded: () => this._tryEndLoading(VIEW_AREAS.items),\r\n getItemThumbnail: this._getItemThumbnailInfo.bind(this),\r\n customizeDetailColumns: this.option(\"customizeDetailColumns\"),\r\n detailColumns: this.option(\"itemView.details.columns\")\r\n };\r\n var $itemView = $(\"<div>\").appendTo($container);\r\n viewMode = viewMode || itemViewOptions.mode;\r\n var widgetClass = \"thumbnails\" === viewMode ? FileManagerThumbnailsItemList : FileManagerDetailsItemList;\r\n this._itemView = this._createComponent($itemView, widgetClass, options)\r\n }\r\n _createBreadcrumbs($container) {\r\n var $breadcrumbs = $(\"<div>\").appendTo($container);\r\n this._breadcrumbs = this._createComponent($breadcrumbs, FileManagerBreadcrumbs, {\r\n rootFolderDisplayName: this.option(\"rootFolderName\"),\r\n onCurrentDirectoryChanging: _ref4 => {\r\n var {\r\n currentDirectory: currentDirectory\r\n } = _ref4;\r\n return this._setCurrentDirectory(currentDirectory, true)\r\n }\r\n });\r\n this._breadcrumbs.setCurrentDirectory(this._getCurrentDirectory())\r\n }\r\n _createContextMenu(isolateCreationItemCommands, viewArea) {\r\n var $contextMenu = $(\"<div>\").appendTo(this._$wrapper);\r\n return this._createComponent($contextMenu, FileManagerContextMenu, {\r\n commandManager: this._commandManager,\r\n items: this.option(\"contextMenu.items\"),\r\n onItemClick: args => this._actions.onContextMenuItemClick(args),\r\n onContextMenuShowing: e => this._onContextMenuShowing(viewArea, e),\r\n isolateCreationItemCommands: isolateCreationItemCommands,\r\n viewArea: viewArea\r\n })\r\n }\r\n _initCommandManager() {\r\n var actions = extend(this._editing.getCommandActions(), {\r\n refresh: () => this._refreshAndShowProgress(),\r\n thumbnails: () => this.option(\"itemView.mode\", \"thumbnails\"),\r\n details: () => this.option(\"itemView.mode\", \"details\"),\r\n clearSelection: () => this._clearSelection(),\r\n showNavPane: () => this._adaptivityControl.toggleDrawer()\r\n });\r\n this._commandManager.registerActions(actions)\r\n }\r\n _onItemViewSelectionChanged(_ref5) {\r\n var {\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n } = _ref5;\r\n this._lockSelectionProcessing = true;\r\n this.option(\"selectedItemKeys\", selectedItemKeys);\r\n this._lockSelectionProcessing = false;\r\n this._actions.onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n });\r\n this._updateToolbar(selectedItemInfos)\r\n }\r\n _onItemViewFocusedItemChanged(e) {\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", e.itemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._actions.onFocusedItemChanged({\r\n item: e.item,\r\n itemElement: e.itemElement\r\n })\r\n }\r\n _onAdaptiveStateChanged(_ref6) {\r\n var {\r\n enabled: enabled\r\n } = _ref6;\r\n this._commandManager.setCommandEnabled(\"showNavPane\", enabled);\r\n this._updateToolbar()\r\n }\r\n _onActionProgress(_ref7) {\r\n var {\r\n message: message,\r\n status: status\r\n } = _ref7;\r\n this._toolbar.updateRefreshItem(message, status);\r\n this._updateToolbar()\r\n }\r\n _onEditingError(e) {\r\n var args = extendAttributes({}, e, [\"errorCode\", \"errorText\", \"fileSystemItem\"]);\r\n this._actions.onErrorOccurred(args);\r\n e.errorText = args.errorText\r\n }\r\n _refreshAndShowProgress() {\r\n this._prepareToLoad();\r\n return when(this._notificationControl.tryShowProgressPanel(), this._controller.refresh()).then(() => this._filesTreeView.refresh())\r\n }\r\n _isAllWidgetsLoaded() {\r\n return 2 === this._loadedWidgets.length && -1 !== this._loadedWidgets.indexOf(VIEW_AREAS.folders) && -1 !== this._loadedWidgets.indexOf(VIEW_AREAS.items)\r\n }\r\n _tryEndLoading(area) {\r\n this._loadedWidgets.push(area);\r\n if (this._isAllWidgetsLoaded()) {\r\n this._controller.endSingleLoad()\r\n }\r\n }\r\n _prepareToLoad() {\r\n this._loadedWidgets = [];\r\n this._controller.startSingleLoad()\r\n }\r\n _updateToolbar(selectedItems) {\r\n var items = selectedItems || this._getSelectedItemInfos();\r\n this._toolbar.option(\"contextItems\", ensureDefined(items, []))\r\n }\r\n _switchView(viewMode) {\r\n this._disposeWidget(this._itemView.option(\"contextMenu\"));\r\n this._disposeWidget(this._itemView);\r\n this._createItemView(this._$itemsPanel, viewMode);\r\n this._toolbar.option({\r\n itemViewMode: viewMode\r\n })\r\n }\r\n _disposeWidget(widget) {\r\n widget.dispose();\r\n widget.$element().remove()\r\n }\r\n _clearSelection() {\r\n this._itemView.clearSelection()\r\n }\r\n _showError(message) {\r\n this._showNotification(message, false)\r\n }\r\n _showNotification(message, isSuccess) {\r\n notify({\r\n message: message,\r\n width: 450\r\n }, isSuccess ? \"success\" : \"error\", 5e3)\r\n }\r\n _redrawComponent(onlyFileItemsView) {\r\n this._itemView.refresh().then(() => !onlyFileItemsView && this._filesTreeView.refresh())\r\n }\r\n _getItemViewItems() {\r\n var showFolders = this.option(\"itemView\").showFolders;\r\n var result = this._controller.getCurrentItems(!showFolders);\r\n this._updateToolbarWithSelectionOnFirstLoad(result);\r\n if (this.option(\"itemView.showParentFolder\")) {\r\n result = when(result).then(items => this._getPreparedItemViewItems(items))\r\n }\r\n return result\r\n }\r\n _updateToolbarWithSelectionOnFirstLoad(itemsResult) {\r\n if (!this._firstItemViewLoad) {\r\n return\r\n }\r\n this._firstItemViewLoad = false;\r\n var selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (selectedItemKeys.length > 0) {\r\n when(itemsResult).done(items => {\r\n var selectedItems = findItemsByKeys(items, selectedItemKeys);\r\n if (selectedItems.length > 0) {\r\n this._updateToolbar(selectedItems)\r\n }\r\n })\r\n }\r\n }\r\n _getPreparedItemViewItems(items) {\r\n var selectedDir = this._getCurrentDirectory();\r\n if (selectedDir.fileItem.isRoot()) {\r\n return items\r\n }\r\n var parentDirItem = selectedDir.fileItem.createClone();\r\n parentDirItem.isParentFolder = true;\r\n parentDirItem.name = \"..\";\r\n parentDirItem.relativeName = \"..\";\r\n parentDirItem.key = \"\".concat(PARENT_DIRECTORY_KEY_PREFIX).concat(selectedDir.fileItem.key);\r\n var itemsCopy = [...items];\r\n itemsCopy.unshift({\r\n fileItem: parentDirItem,\r\n icon: \"parentfolder\"\r\n });\r\n return itemsCopy\r\n }\r\n _onContextMenuShowing(viewArea, e) {\r\n var _e$itemData;\r\n var eventArgs = extendAttributes({}, e, [\"targetElement\", \"cancel\", \"event\"]);\r\n eventArgs = extend(eventArgs, {\r\n viewArea: viewArea,\r\n fileSystemItem: null === (_e$itemData = e.itemData) || void 0 === _e$itemData ? void 0 : _e$itemData.fileItem,\r\n _isActionButton: e.isActionButton\r\n });\r\n this._actions.onContextMenuShowing(eventArgs);\r\n e.cancel = ensureDefined(eventArgs.cancel, false)\r\n }\r\n _getItemThumbnailInfo(fileInfo) {\r\n var func = this.option(\"customizeThumbnail\");\r\n var thumbnail = isFunction(func) ? func(fileInfo.fileItem) : fileInfo.fileItem.thumbnail;\r\n if (thumbnail) {\r\n return {\r\n thumbnail: thumbnail,\r\n cssClass: FILE_MANAGER_ITEM_CUSTOM_THUMBNAIL_CLASS\r\n }\r\n }\r\n return {\r\n thumbnail: fileInfo.icon\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n fileSystemProvider: null,\r\n currentPath: \"\",\r\n currentPathKeys: [],\r\n rootFolderName: messageLocalization.format(\"dxFileManager-rootDirectoryName\"),\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: [],\r\n focusedItemKey: void 0,\r\n toolbar: {\r\n items: [\"showNavPane\", \"create\", \"upload\", \"switchView\", {\r\n name: \"separator\",\r\n location: \"after\"\r\n }, \"refresh\"],\r\n fileSelectionItems: [\"download\", \"separator\", \"move\", \"copy\", \"rename\", \"separator\", \"delete\", \"clearSelection\", {\r\n name: \"separator\",\r\n location: \"after\"\r\n }, \"refresh\"]\r\n },\r\n contextMenu: {\r\n items: [\"create\", \"upload\", \"rename\", \"move\", \"copy\", \"delete\", \"refresh\", \"download\"]\r\n },\r\n itemView: {\r\n details: {\r\n columns: [\"thumbnail\", \"name\", \"dateModified\", \"size\"]\r\n },\r\n mode: \"details\",\r\n showFolders: true,\r\n showParentFolder: true\r\n },\r\n customizeThumbnail: null,\r\n customizeDetailColumns: null,\r\n onContextMenuItemClick: null,\r\n onContextMenuShowing: null,\r\n onCurrentDirectoryChanged: null,\r\n onSelectedFileOpened: null,\r\n onSelectionChanged: null,\r\n onFocusedItemChanged: null,\r\n onToolbarItemClick: null,\r\n onErrorOccurred: null,\r\n onDirectoryCreating: null,\r\n onDirectoryCreated: null,\r\n onItemRenaming: null,\r\n onItemRenamed: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null,\r\n onItemCopying: null,\r\n onItemCopied: null,\r\n onItemMoving: null,\r\n onItemMoved: null,\r\n onFileUploading: null,\r\n onFileUploaded: null,\r\n onItemDownloading: null,\r\n allowedFileExtensions: [],\r\n upload: {\r\n maxFileSize: 0,\r\n chunkSize: 2e5\r\n },\r\n permissions: extend({}, defaultPermissions),\r\n notifications: {\r\n showPanel: true,\r\n showPopup: true\r\n }\r\n })\r\n }\r\n option(options, value) {\r\n var optionsToCheck = normalizeOptions(options, value);\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n var isOptionDefined = name => isDefined(optionsToCheck[name]);\r\n var isOptionValueDiffers = name => {\r\n if (!isOptionDefined(name)) {\r\n return false\r\n }\r\n var previousValue = this.option(name);\r\n var value = optionsToCheck[name];\r\n return !equals(previousValue, value)\r\n };\r\n if (!isGetter && isOptionDefined(\"fileSystemProvider\")) {\r\n this._providerUpdateDeferred = new Deferred;\r\n if (isOptionValueDiffers(\"currentPath\") || isOptionValueDiffers(\"currentPathKeys\")) {\r\n this._lockCurrentPathProcessing = true\r\n }\r\n }\r\n return super.option(...arguments)\r\n }\r\n _optionChanged(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"currentPath\":\r\n var updateFunc = () => {\r\n this._lockCurrentPathProcessing = false;\r\n return this._controller.setCurrentPath(args.value)\r\n };\r\n this._lockCurrentPathProcessing = true;\r\n this._providerUpdateDeferred ? this._providerUpdateDeferred.then(updateFunc) : updateFunc();\r\n break;\r\n case \"currentPathKeys\":\r\n var _updateFunc = () => {\r\n this._lockCurrentPathProcessing = false;\r\n return this._controller.setCurrentPathByKeys(args.value)\r\n };\r\n this._lockCurrentPathProcessing = true;\r\n this._providerUpdateDeferred ? this._providerUpdateDeferred.then(_updateFunc) : _updateFunc();\r\n break;\r\n case \"selectedItemKeys\":\r\n if (!this._lockSelectionProcessing && this._itemView) {\r\n this._itemView.option(\"selectedItemKeys\", args.value)\r\n }\r\n break;\r\n case \"focusedItemKey\":\r\n if (!this._lockFocusedItemProcessing && this._itemView) {\r\n this._itemView.option(\"focusedItemKey\", args.value)\r\n }\r\n break;\r\n case \"rootFolderName\":\r\n this._controller.setRootText(args.value);\r\n this._invalidate();\r\n break;\r\n case \"fileSystemProvider\":\r\n if (!this._lockCurrentPathProcessing) {\r\n this._providerUpdateDeferred = new Deferred\r\n }\r\n var pathKeys = this._lockCurrentPathProcessing ? void 0 : this.option(\"currentPathKeys\");\r\n this._controller.updateProvider(args.value, pathKeys).then(() => this._providerUpdateDeferred.resolve()).always(() => {\r\n this._providerUpdateDeferred = null;\r\n this.repaint()\r\n });\r\n break;\r\n case \"allowedFileExtensions\":\r\n this._controller.setAllowedFileExtensions(args.value);\r\n this._invalidate();\r\n break;\r\n case \"upload\":\r\n this._controller.setUploadOptions(this.option(\"upload\"));\r\n this._invalidate();\r\n break;\r\n case \"permissions\":\r\n this._commandManager.updatePermissions(this.option(\"permissions\"));\r\n this._filesTreeViewContextMenu.tryUpdateVisibleContextMenu();\r\n this._itemViewContextMenu.tryUpdateVisibleContextMenu();\r\n this._toolbar.updateItemPermissions();\r\n this._updateUploadDropZone();\r\n break;\r\n case \"selectionMode\":\r\n case \"customizeThumbnail\":\r\n case \"customizeDetailColumns\":\r\n this._invalidate();\r\n break;\r\n case \"itemView\":\r\n if (\"itemView.mode\" === args.fullName) {\r\n this._switchView(args.value)\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"toolbar\":\r\n var toolbarOptions = {};\r\n if (\"toolbar\" === args.fullName) {\r\n if (args.value.items) {\r\n toolbarOptions.generalItems = args.value.items\r\n }\r\n if (args.value.fileSelectionItems) {\r\n toolbarOptions.fileItems = args.value.fileSelectionItems\r\n }\r\n }\r\n if (0 === args.fullName.indexOf(\"toolbar.items\")) {\r\n toolbarOptions.generalItems = this.option(\"toolbar.items\")\r\n }\r\n if (0 === args.fullName.indexOf(\"toolbar.fileSelectionItems\")) {\r\n toolbarOptions.fileItems = this.option(\"toolbar.fileSelectionItems\")\r\n }\r\n this._toolbar.option(toolbarOptions);\r\n break;\r\n case \"contextMenu\":\r\n if (\"contextMenu\" === args.fullName && args.value.items || 0 === args.fullName.indexOf(\"contextMenu.items\")) {\r\n var contextMenuItems = this.option(\"contextMenu.items\");\r\n this._filesTreeViewContextMenu.option(\"items\", contextMenuItems);\r\n this._itemViewContextMenu.option(\"items\", contextMenuItems)\r\n }\r\n break;\r\n case \"notifications\":\r\n this._notificationControl.option(\"showProgressPanel\", this.option(\"notifications.showPanel\"));\r\n this._notificationControl.option(\"showNotificationPopup\", this.option(\"notifications.showPopup\"));\r\n break;\r\n case \"onContextMenuItemClick\":\r\n case \"onContextMenuShowing\":\r\n case \"onCurrentDirectoryChanged\":\r\n case \"onSelectedFileOpened\":\r\n case \"onSelectionChanged\":\r\n case \"onFocusedItemChanged\":\r\n case \"onToolbarItemClick\":\r\n case \"onErrorOccurred\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"onDirectoryCreating\":\r\n case \"onDirectoryCreated\":\r\n case \"onItemRenaming\":\r\n case \"onItemRenamed\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemCopying\":\r\n case \"onItemCopied\":\r\n case \"onItemMoving\":\r\n case \"onItemMoved\":\r\n case \"onFileUploading\":\r\n case \"onFileUploaded\":\r\n case \"onItemDownloading\":\r\n this._actions.editing[name] = this._createActionByOption(name);\r\n break;\r\n case \"rtlEnabled\":\r\n this._editing.updateDialogRtl(args.value);\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onContextMenuItemClick: this._createActionByOption(\"onContextMenuItemClick\"),\r\n onContextMenuShowing: this._createActionByOption(\"onContextMenuShowing\"),\r\n onCurrentDirectoryChanged: this._createActionByOption(\"onCurrentDirectoryChanged\"),\r\n onSelectedFileOpened: this._createActionByOption(\"onSelectedFileOpened\"),\r\n onSelectionChanged: this._createActionByOption(\"onSelectionChanged\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\"),\r\n onToolbarItemClick: this._createActionByOption(\"onToolbarItemClick\"),\r\n onErrorOccurred: this._createActionByOption(\"onErrorOccurred\"),\r\n editing: {\r\n onDirectoryCreating: this._createActionByOption(\"onDirectoryCreating\"),\r\n onDirectoryCreated: this._createActionByOption(\"onDirectoryCreated\"),\r\n onItemRenaming: this._createActionByOption(\"onItemRenaming\"),\r\n onItemRenamed: this._createActionByOption(\"onItemRenamed\"),\r\n onItemDeleting: this._createActionByOption(\"onItemDeleting\"),\r\n onItemDeleted: this._createActionByOption(\"onItemDeleted\"),\r\n onItemCopying: this._createActionByOption(\"onItemCopying\"),\r\n onItemCopied: this._createActionByOption(\"onItemCopied\"),\r\n onItemMoving: this._createActionByOption(\"onItemMoving\"),\r\n onItemMoved: this._createActionByOption(\"onItemMoved\"),\r\n onFileUploading: this._createActionByOption(\"onFileUploading\"),\r\n onFileUploaded: this._createActionByOption(\"onFileUploaded\"),\r\n onItemDownloading: this._createActionByOption(\"onItemDownloading\")\r\n }\r\n }\r\n }\r\n executeCommand(commandName) {\r\n return this._commandManager.executeCommand(commandName)\r\n }\r\n _setCurrentDirectory(directoryInfo, checkActuality) {\r\n this._controller.setCurrentDirectory(directoryInfo, checkActuality)\r\n }\r\n _getCurrentDirectory() {\r\n return this._controller.getCurrentDirectory()\r\n }\r\n _onControllerInitialized(_ref8) {\r\n var {\r\n controller: controller\r\n } = _ref8;\r\n this._controller = this._controller || controller;\r\n this._syncToCurrentDirectory()\r\n }\r\n _onDataLoading(_ref9) {\r\n var {\r\n operation: operation\r\n } = _ref9;\r\n var options = null;\r\n if (operation === OPERATIONS.NAVIGATION) {\r\n options = {\r\n focusedItemKey: this._itemKeyToFocus,\r\n selectedItemKeys: this.option(\"selectedItemKeys\")\r\n };\r\n this._itemKeyToFocus = void 0\r\n }\r\n this._itemView.refresh(options, operation)\r\n }\r\n _onSelectedDirectoryChanged() {\r\n var currentDirectory = this._getCurrentDirectory();\r\n this._syncToCurrentDirectory();\r\n this._actions.onCurrentDirectoryChanged({\r\n directory: currentDirectory.fileItem\r\n })\r\n }\r\n _syncToCurrentDirectory() {\r\n var currentDirectory = this._getCurrentDirectory();\r\n if (this._filesTreeView) {\r\n this._filesTreeView.updateCurrentDirectory()\r\n }\r\n if (this._breadcrumbs) {\r\n this._breadcrumbs.setCurrentDirectory(currentDirectory)\r\n }\r\n this._checkPathActuality()\r\n }\r\n _checkPathActuality() {\r\n if (this._lockCurrentPathProcessing) {\r\n return\r\n }\r\n var currentPath = this._controller.getCurrentPath();\r\n var currentPathKeys = this._controller.getCurrentPathKeys();\r\n var options = {};\r\n if (this.option(\"currentPath\") !== currentPath) {\r\n options.currentPath = currentPath\r\n }\r\n if (!equalByValue(this.option(\"currentPathKeys\"), currentPathKeys)) {\r\n options.currentPathKeys = currentPathKeys\r\n }\r\n if (!isEmptyObject(options)) {\r\n this.option(options)\r\n }\r\n }\r\n getDirectories(parentDirectoryInfo, skipNavigationOnError) {\r\n return this._controller.getDirectories(parentDirectoryInfo, skipNavigationOnError)\r\n }\r\n _getSelectedItemInfos() {\r\n return this._itemView ? this._itemView.getSelectedItems() : []\r\n }\r\n refresh() {\r\n return this.executeCommand(\"refresh\")\r\n }\r\n getCurrentDirectory() {\r\n var directoryInfo = this._getCurrentDirectory();\r\n return directoryInfo && directoryInfo.fileItem || null\r\n }\r\n getSelectedItems() {\r\n return this._getSelectedItemInfos().map(itemInfo => itemInfo.fileItem)\r\n }\r\n _onSelectedItemOpened(_ref10) {\r\n var {\r\n fileItemInfo: fileItemInfo\r\n } = _ref10;\r\n var fileItem = fileItemInfo.fileItem;\r\n if (!fileItem.isDirectory) {\r\n this._actions.onSelectedFileOpened({\r\n file: fileItem\r\n });\r\n return\r\n }\r\n if (fileItem.isParentFolder) {\r\n this._itemKeyToFocus = this._getCurrentDirectory().fileItem.key\r\n }\r\n var newCurrentDirectory = fileItem.isParentFolder ? this._getCurrentDirectory().parentDirectory : fileItemInfo;\r\n this._setCurrentDirectory(newCurrentDirectory);\r\n if (newCurrentDirectory) {\r\n this._filesTreeView.toggleDirectoryExpandedState(newCurrentDirectory.parentDirectory, true)\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxFileManager\", FileManager);\r\nexport default FileManager;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxFileManager from 'devextreme/ui/file_manager';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoContextMenuModule, DxiItemModule, DxoItemViewModule, DxoDetailsModule, DxiColumnModule, DxoNotificationsModule, DxoPermissionsModule, DxoToolbarModule, DxiFileSelectionItemModule, DxoUploadModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxFileManager]\r\n\r\n */\r\nclass DxFileManagerComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuItemClick', emit: 'onContextMenuItemClick' },\r\n { subscribe: 'contextMenuShowing', emit: 'onContextMenuShowing' },\r\n { subscribe: 'currentDirectoryChanged', emit: 'onCurrentDirectoryChanged' },\r\n { subscribe: 'directoryCreated', emit: 'onDirectoryCreated' },\r\n { subscribe: 'directoryCreating', emit: 'onDirectoryCreating' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'errorOccurred', emit: 'onErrorOccurred' },\r\n { subscribe: 'fileUploaded', emit: 'onFileUploaded' },\r\n { subscribe: 'fileUploading', emit: 'onFileUploading' },\r\n { subscribe: 'focusedItemChanged', emit: 'onFocusedItemChanged' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemCopied', emit: 'onItemCopied' },\r\n { subscribe: 'itemCopying', emit: 'onItemCopying' },\r\n { subscribe: 'itemDeleted', emit: 'onItemDeleted' },\r\n { subscribe: 'itemDeleting', emit: 'onItemDeleting' },\r\n { subscribe: 'itemDownloading', emit: 'onItemDownloading' },\r\n { subscribe: 'itemMoved', emit: 'onItemMoved' },\r\n { subscribe: 'itemMoving', emit: 'onItemMoving' },\r\n { subscribe: 'itemRenamed', emit: 'onItemRenamed' },\r\n { subscribe: 'itemRenaming', emit: 'onItemRenaming' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectedFileOpened', emit: 'onSelectedFileOpened' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'toolbarItemClick', emit: 'onToolbarItemClick' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowedFileExtensionsChange' },\r\n { emit: 'contextMenuChange' },\r\n { emit: 'currentPathChange' },\r\n { emit: 'currentPathKeysChange' },\r\n { emit: 'customizeDetailColumnsChange' },\r\n { emit: 'customizeThumbnailChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fileSystemProviderChange' },\r\n { emit: 'focusedItemKeyChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemViewChange' },\r\n { emit: 'notificationsChange' },\r\n { emit: 'permissionsChange' },\r\n { emit: 'rootFolderNameChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedItemKeysChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'uploadChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.allowedFileExtensions]\r\n \r\n */\r\n get allowedFileExtensions() {\r\n return this._getOption('allowedFileExtensions');\r\n }\r\n set allowedFileExtensions(value) {\r\n this._setOption('allowedFileExtensions', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.contextMenu]\r\n \r\n */\r\n get contextMenu() {\r\n return this._getOption('contextMenu');\r\n }\r\n set contextMenu(value) {\r\n this._setOption('contextMenu', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.currentPath]\r\n \r\n */\r\n get currentPath() {\r\n return this._getOption('currentPath');\r\n }\r\n set currentPath(value) {\r\n this._setOption('currentPath', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.currentPathKeys]\r\n \r\n */\r\n get currentPathKeys() {\r\n return this._getOption('currentPathKeys');\r\n }\r\n set currentPathKeys(value) {\r\n this._setOption('currentPathKeys', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.customizeDetailColumns]\r\n \r\n */\r\n get customizeDetailColumns() {\r\n return this._getOption('customizeDetailColumns');\r\n }\r\n set customizeDetailColumns(value) {\r\n this._setOption('customizeDetailColumns', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.customizeThumbnail]\r\n \r\n */\r\n get customizeThumbnail() {\r\n return this._getOption('customizeThumbnail');\r\n }\r\n set customizeThumbnail(value) {\r\n this._setOption('customizeThumbnail', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.fileSystemProvider]\r\n \r\n */\r\n get fileSystemProvider() {\r\n return this._getOption('fileSystemProvider');\r\n }\r\n set fileSystemProvider(value) {\r\n this._setOption('fileSystemProvider', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.focusedItemKey]\r\n \r\n */\r\n get focusedItemKey() {\r\n return this._getOption('focusedItemKey');\r\n }\r\n set focusedItemKey(value) {\r\n this._setOption('focusedItemKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.itemView]\r\n \r\n */\r\n get itemView() {\r\n return this._getOption('itemView');\r\n }\r\n set itemView(value) {\r\n this._setOption('itemView', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.notifications]\r\n \r\n */\r\n get notifications() {\r\n return this._getOption('notifications');\r\n }\r\n set notifications(value) {\r\n this._setOption('notifications', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.permissions]\r\n \r\n */\r\n get permissions() {\r\n return this._getOption('permissions');\r\n }\r\n set permissions(value) {\r\n this._setOption('permissions', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.rootFolderName]\r\n \r\n */\r\n get rootFolderName() {\r\n return this._getOption('rootFolderName');\r\n }\r\n set rootFolderName(value) {\r\n this._setOption('rootFolderName', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.selectedItemKeys]\r\n \r\n */\r\n get selectedItemKeys() {\r\n return this._getOption('selectedItemKeys');\r\n }\r\n set selectedItemKeys(value) {\r\n this._setOption('selectedItemKeys', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.toolbar]\r\n \r\n */\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n /**\r\n * [descr:dxFileManagerOptions.upload]\r\n \r\n */\r\n get upload() {\r\n return this._getOption('upload');\r\n }\r\n set upload(value) {\r\n this._setOption('upload', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxFileManager(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('allowedFileExtensions', changes);\r\n this.setupChanges('currentPathKeys', changes);\r\n this.setupChanges('selectedItemKeys', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('allowedFileExtensions');\r\n this._idh.doCheck('currentPathKeys');\r\n this._idh.doCheck('selectedItemKeys');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxFileManagerComponent.ɵfac = function DxFileManagerComponent_Factory(t) { return new (t || DxFileManagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxFileManagerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxFileManagerComponent, selectors: [[\"dx-file-manager\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowedFileExtensions: \"allowedFileExtensions\", contextMenu: \"contextMenu\", currentPath: \"currentPath\", currentPathKeys: \"currentPathKeys\", customizeDetailColumns: \"customizeDetailColumns\", customizeThumbnail: \"customizeThumbnail\", disabled: \"disabled\", elementAttr: \"elementAttr\", fileSystemProvider: \"fileSystemProvider\", focusedItemKey: \"focusedItemKey\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemView: \"itemView\", notifications: \"notifications\", permissions: \"permissions\", rootFolderName: \"rootFolderName\", rtlEnabled: \"rtlEnabled\", selectedItemKeys: \"selectedItemKeys\", selectionMode: \"selectionMode\", tabIndex: \"tabIndex\", toolbar: \"toolbar\", upload: \"upload\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onContextMenuItemClick: \"onContextMenuItemClick\", onContextMenuShowing: \"onContextMenuShowing\", onCurrentDirectoryChanged: \"onCurrentDirectoryChanged\", onDirectoryCreated: \"onDirectoryCreated\", onDirectoryCreating: \"onDirectoryCreating\", onDisposing: \"onDisposing\", onErrorOccurred: \"onErrorOccurred\", onFileUploaded: \"onFileUploaded\", onFileUploading: \"onFileUploading\", onFocusedItemChanged: \"onFocusedItemChanged\", onInitialized: \"onInitialized\", onItemCopied: \"onItemCopied\", onItemCopying: \"onItemCopying\", onItemDeleted: \"onItemDeleted\", onItemDeleting: \"onItemDeleting\", onItemDownloading: \"onItemDownloading\", onItemMoved: \"onItemMoved\", onItemMoving: \"onItemMoving\", onItemRenamed: \"onItemRenamed\", onItemRenaming: \"onItemRenaming\", onOptionChanged: \"onOptionChanged\", onSelectedFileOpened: \"onSelectedFileOpened\", onSelectionChanged: \"onSelectionChanged\", onToolbarItemClick: \"onToolbarItemClick\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowedFileExtensionsChange: \"allowedFileExtensionsChange\", contextMenuChange: \"contextMenuChange\", currentPathChange: \"currentPathChange\", currentPathKeysChange: \"currentPathKeysChange\", customizeDetailColumnsChange: \"customizeDetailColumnsChange\", customizeThumbnailChange: \"customizeThumbnailChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", fileSystemProviderChange: \"fileSystemProviderChange\", focusedItemKeyChange: \"focusedItemKeyChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemViewChange: \"itemViewChange\", notificationsChange: \"notificationsChange\", permissionsChange: \"permissionsChange\", rootFolderNameChange: \"rootFolderNameChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedItemKeysChange: \"selectedItemKeysChange\", selectionModeChange: \"selectionModeChange\", tabIndexChange: \"tabIndexChange\", toolbarChange: \"toolbarChange\", uploadChange: \"uploadChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxFileManagerComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFileManagerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-file-manager',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowedFileExtensions: [{\r\n type: Input\r\n }], contextMenu: [{\r\n type: Input\r\n }], currentPath: [{\r\n type: Input\r\n }], currentPathKeys: [{\r\n type: Input\r\n }], customizeDetailColumns: [{\r\n type: Input\r\n }], customizeThumbnail: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fileSystemProvider: [{\r\n type: Input\r\n }], focusedItemKey: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemView: [{\r\n type: Input\r\n }], notifications: [{\r\n type: Input\r\n }], permissions: [{\r\n type: Input\r\n }], rootFolderName: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedItemKeys: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], upload: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuItemClick: [{\r\n type: Output\r\n }], onContextMenuShowing: [{\r\n type: Output\r\n }], onCurrentDirectoryChanged: [{\r\n type: Output\r\n }], onDirectoryCreated: [{\r\n type: Output\r\n }], onDirectoryCreating: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onErrorOccurred: [{\r\n type: Output\r\n }], onFileUploaded: [{\r\n type: Output\r\n }], onFileUploading: [{\r\n type: Output\r\n }], onFocusedItemChanged: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemCopied: [{\r\n type: Output\r\n }], onItemCopying: [{\r\n type: Output\r\n }], onItemDeleted: [{\r\n type: Output\r\n }], onItemDeleting: [{\r\n type: Output\r\n }], onItemDownloading: [{\r\n type: Output\r\n }], onItemMoved: [{\r\n type: Output\r\n }], onItemMoving: [{\r\n type: Output\r\n }], onItemRenamed: [{\r\n type: Output\r\n }], onItemRenaming: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectedFileOpened: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onToolbarItemClick: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowedFileExtensionsChange: [{\r\n type: Output\r\n }], contextMenuChange: [{\r\n type: Output\r\n }], currentPathChange: [{\r\n type: Output\r\n }], currentPathKeysChange: [{\r\n type: Output\r\n }], customizeDetailColumnsChange: [{\r\n type: Output\r\n }], customizeThumbnailChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fileSystemProviderChange: [{\r\n type: Output\r\n }], focusedItemKeyChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemViewChange: [{\r\n type: Output\r\n }], notificationsChange: [{\r\n type: Output\r\n }], permissionsChange: [{\r\n type: Output\r\n }], rootFolderNameChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedItemKeysChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], toolbarChange: [{\r\n type: Output\r\n }], uploadChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxFileManagerModule {\r\n}\r\n/** @nocollapse */ DxFileManagerModule.ɵfac = function DxFileManagerModule_Factory(t) { return new (t || DxFileManagerModule)(); };\r\n/** @nocollapse */ DxFileManagerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxFileManagerModule });\r\n/** @nocollapse */ DxFileManagerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFileManagerModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxFileManagerComponent\r\n ],\r\n exports: [\r\n DxFileManagerComponent,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxFileManagerModule, { declarations: [DxFileManagerComponent], imports: [DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxFileManagerComponent, DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoItemViewModule,\r\n DxoDetailsModule,\r\n DxiColumnModule,\r\n DxoNotificationsModule,\r\n DxoPermissionsModule,\r\n DxoToolbarModule,\r\n DxiFileSelectionItemModule,\r\n DxoUploadModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxFileManagerComponent, DxFileManagerModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxFileUploader from 'devextreme/ui/file_uploader';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxFileUploaderComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxFileUploader]\r\n\r\n */\r\nclass DxFileUploaderComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'beforeSend', emit: 'onBeforeSend' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'dropZoneEnter', emit: 'onDropZoneEnter' },\r\n { subscribe: 'dropZoneLeave', emit: 'onDropZoneLeave' },\r\n { subscribe: 'filesUploaded', emit: 'onFilesUploaded' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'progress', emit: 'onProgress' },\r\n { subscribe: 'uploadAborted', emit: 'onUploadAborted' },\r\n { subscribe: 'uploaded', emit: 'onUploaded' },\r\n { subscribe: 'uploadError', emit: 'onUploadError' },\r\n { subscribe: 'uploadStarted', emit: 'onUploadStarted' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'abortUploadChange' },\r\n { emit: 'acceptChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowCancelingChange' },\r\n { emit: 'allowedFileExtensionsChange' },\r\n { emit: 'chunkSizeChange' },\r\n { emit: 'dialogTriggerChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'dropZoneChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'invalidFileExtensionMessageChange' },\r\n { emit: 'invalidMaxFileSizeMessageChange' },\r\n { emit: 'invalidMinFileSizeMessageChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelTextChange' },\r\n { emit: 'maxFileSizeChange' },\r\n { emit: 'minFileSizeChange' },\r\n { emit: 'multipleChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'progressChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'readyToUploadMessageChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectButtonTextChange' },\r\n { emit: 'showFileListChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'uploadAbortedMessageChange' },\r\n { emit: 'uploadButtonTextChange' },\r\n { emit: 'uploadChunkChange' },\r\n { emit: 'uploadCustomDataChange' },\r\n { emit: 'uploadedMessageChange' },\r\n { emit: 'uploadFailedMessageChange' },\r\n { emit: 'uploadFileChange' },\r\n { emit: 'uploadHeadersChange' },\r\n { emit: 'uploadMethodChange' },\r\n { emit: 'uploadModeChange' },\r\n { emit: 'uploadUrlChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.abortUpload]\r\n \r\n */\r\n get abortUpload() {\r\n return this._getOption('abortUpload');\r\n }\r\n set abortUpload(value) {\r\n this._setOption('abortUpload', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.accept]\r\n \r\n */\r\n get accept() {\r\n return this._getOption('accept');\r\n }\r\n set accept(value) {\r\n this._setOption('accept', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.allowCanceling]\r\n \r\n */\r\n get allowCanceling() {\r\n return this._getOption('allowCanceling');\r\n }\r\n set allowCanceling(value) {\r\n this._setOption('allowCanceling', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.allowedFileExtensions]\r\n \r\n */\r\n get allowedFileExtensions() {\r\n return this._getOption('allowedFileExtensions');\r\n }\r\n set allowedFileExtensions(value) {\r\n this._setOption('allowedFileExtensions', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.chunkSize]\r\n \r\n */\r\n get chunkSize() {\r\n return this._getOption('chunkSize');\r\n }\r\n set chunkSize(value) {\r\n this._setOption('chunkSize', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.dialogTrigger]\r\n \r\n */\r\n get dialogTrigger() {\r\n return this._getOption('dialogTrigger');\r\n }\r\n set dialogTrigger(value) {\r\n this._setOption('dialogTrigger', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.dropZone]\r\n \r\n */\r\n get dropZone() {\r\n return this._getOption('dropZone');\r\n }\r\n set dropZone(value) {\r\n this._setOption('dropZone', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.invalidFileExtensionMessage]\r\n \r\n */\r\n get invalidFileExtensionMessage() {\r\n return this._getOption('invalidFileExtensionMessage');\r\n }\r\n set invalidFileExtensionMessage(value) {\r\n this._setOption('invalidFileExtensionMessage', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.invalidMaxFileSizeMessage]\r\n \r\n */\r\n get invalidMaxFileSizeMessage() {\r\n return this._getOption('invalidMaxFileSizeMessage');\r\n }\r\n set invalidMaxFileSizeMessage(value) {\r\n this._setOption('invalidMaxFileSizeMessage', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.invalidMinFileSizeMessage]\r\n \r\n */\r\n get invalidMinFileSizeMessage() {\r\n return this._getOption('invalidMinFileSizeMessage');\r\n }\r\n set invalidMinFileSizeMessage(value) {\r\n this._setOption('invalidMinFileSizeMessage', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.labelText]\r\n \r\n */\r\n get labelText() {\r\n return this._getOption('labelText');\r\n }\r\n set labelText(value) {\r\n this._setOption('labelText', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.maxFileSize]\r\n \r\n */\r\n get maxFileSize() {\r\n return this._getOption('maxFileSize');\r\n }\r\n set maxFileSize(value) {\r\n this._setOption('maxFileSize', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.minFileSize]\r\n \r\n */\r\n get minFileSize() {\r\n return this._getOption('minFileSize');\r\n }\r\n set minFileSize(value) {\r\n this._setOption('minFileSize', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.multiple]\r\n \r\n */\r\n get multiple() {\r\n return this._getOption('multiple');\r\n }\r\n set multiple(value) {\r\n this._setOption('multiple', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.progress]\r\n \r\n */\r\n get progress() {\r\n return this._getOption('progress');\r\n }\r\n set progress(value) {\r\n this._setOption('progress', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.readyToUploadMessage]\r\n \r\n */\r\n get readyToUploadMessage() {\r\n return this._getOption('readyToUploadMessage');\r\n }\r\n set readyToUploadMessage(value) {\r\n this._setOption('readyToUploadMessage', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.selectButtonText]\r\n \r\n */\r\n get selectButtonText() {\r\n return this._getOption('selectButtonText');\r\n }\r\n set selectButtonText(value) {\r\n this._setOption('selectButtonText', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.showFileList]\r\n \r\n */\r\n get showFileList() {\r\n return this._getOption('showFileList');\r\n }\r\n set showFileList(value) {\r\n this._setOption('showFileList', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadAbortedMessage]\r\n \r\n */\r\n get uploadAbortedMessage() {\r\n return this._getOption('uploadAbortedMessage');\r\n }\r\n set uploadAbortedMessage(value) {\r\n this._setOption('uploadAbortedMessage', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadButtonText]\r\n \r\n */\r\n get uploadButtonText() {\r\n return this._getOption('uploadButtonText');\r\n }\r\n set uploadButtonText(value) {\r\n this._setOption('uploadButtonText', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadChunk]\r\n \r\n */\r\n get uploadChunk() {\r\n return this._getOption('uploadChunk');\r\n }\r\n set uploadChunk(value) {\r\n this._setOption('uploadChunk', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadCustomData]\r\n \r\n */\r\n get uploadCustomData() {\r\n return this._getOption('uploadCustomData');\r\n }\r\n set uploadCustomData(value) {\r\n this._setOption('uploadCustomData', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadedMessage]\r\n \r\n */\r\n get uploadedMessage() {\r\n return this._getOption('uploadedMessage');\r\n }\r\n set uploadedMessage(value) {\r\n this._setOption('uploadedMessage', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadFailedMessage]\r\n \r\n */\r\n get uploadFailedMessage() {\r\n return this._getOption('uploadFailedMessage');\r\n }\r\n set uploadFailedMessage(value) {\r\n this._setOption('uploadFailedMessage', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadFile]\r\n \r\n */\r\n get uploadFile() {\r\n return this._getOption('uploadFile');\r\n }\r\n set uploadFile(value) {\r\n this._setOption('uploadFile', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadHeaders]\r\n \r\n */\r\n get uploadHeaders() {\r\n return this._getOption('uploadHeaders');\r\n }\r\n set uploadHeaders(value) {\r\n this._setOption('uploadHeaders', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadMethod]\r\n \r\n */\r\n get uploadMethod() {\r\n return this._getOption('uploadMethod');\r\n }\r\n set uploadMethod(value) {\r\n this._setOption('uploadMethod', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadMode]\r\n \r\n */\r\n get uploadMode() {\r\n return this._getOption('uploadMode');\r\n }\r\n set uploadMode(value) {\r\n this._setOption('uploadMode', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.uploadUrl]\r\n \r\n */\r\n get uploadUrl() {\r\n return this._getOption('uploadUrl');\r\n }\r\n set uploadUrl(value) {\r\n this._setOption('uploadUrl', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxFileUploaderOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxFileUploader(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('allowedFileExtensions', changes);\r\n this.setupChanges('validationErrors', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('allowedFileExtensions');\r\n this._idh.doCheck('validationErrors');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxFileUploaderComponent.ɵfac = function DxFileUploaderComponent_Factory(t) { return new (t || DxFileUploaderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxFileUploaderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxFileUploaderComponent, selectors: [[\"dx-file-uploader\"]], hostBindings: function DxFileUploaderComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxFileUploaderComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxFileUploaderComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { abortUpload: \"abortUpload\", accept: \"accept\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowCanceling: \"allowCanceling\", allowedFileExtensions: \"allowedFileExtensions\", chunkSize: \"chunkSize\", dialogTrigger: \"dialogTrigger\", disabled: \"disabled\", dropZone: \"dropZone\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", invalidFileExtensionMessage: \"invalidFileExtensionMessage\", invalidMaxFileSizeMessage: \"invalidMaxFileSizeMessage\", invalidMinFileSizeMessage: \"invalidMinFileSizeMessage\", isDirty: \"isDirty\", isValid: \"isValid\", labelText: \"labelText\", maxFileSize: \"maxFileSize\", minFileSize: \"minFileSize\", multiple: \"multiple\", name: \"name\", progress: \"progress\", readOnly: \"readOnly\", readyToUploadMessage: \"readyToUploadMessage\", rtlEnabled: \"rtlEnabled\", selectButtonText: \"selectButtonText\", showFileList: \"showFileList\", tabIndex: \"tabIndex\", uploadAbortedMessage: \"uploadAbortedMessage\", uploadButtonText: \"uploadButtonText\", uploadChunk: \"uploadChunk\", uploadCustomData: \"uploadCustomData\", uploadedMessage: \"uploadedMessage\", uploadFailedMessage: \"uploadFailedMessage\", uploadFile: \"uploadFile\", uploadHeaders: \"uploadHeaders\", uploadMethod: \"uploadMethod\", uploadMode: \"uploadMode\", uploadUrl: \"uploadUrl\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onBeforeSend: \"onBeforeSend\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onDropZoneEnter: \"onDropZoneEnter\", onDropZoneLeave: \"onDropZoneLeave\", onFilesUploaded: \"onFilesUploaded\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onProgress: \"onProgress\", onUploadAborted: \"onUploadAborted\", onUploaded: \"onUploaded\", onUploadError: \"onUploadError\", onUploadStarted: \"onUploadStarted\", onValueChanged: \"onValueChanged\", abortUploadChange: \"abortUploadChange\", acceptChange: \"acceptChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowCancelingChange: \"allowCancelingChange\", allowedFileExtensionsChange: \"allowedFileExtensionsChange\", chunkSizeChange: \"chunkSizeChange\", dialogTriggerChange: \"dialogTriggerChange\", disabledChange: \"disabledChange\", dropZoneChange: \"dropZoneChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", invalidFileExtensionMessageChange: \"invalidFileExtensionMessageChange\", invalidMaxFileSizeMessageChange: \"invalidMaxFileSizeMessageChange\", invalidMinFileSizeMessageChange: \"invalidMinFileSizeMessageChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelTextChange: \"labelTextChange\", maxFileSizeChange: \"maxFileSizeChange\", minFileSizeChange: \"minFileSizeChange\", multipleChange: \"multipleChange\", nameChange: \"nameChange\", progressChange: \"progressChange\", readOnlyChange: \"readOnlyChange\", readyToUploadMessageChange: \"readyToUploadMessageChange\", rtlEnabledChange: \"rtlEnabledChange\", selectButtonTextChange: \"selectButtonTextChange\", showFileListChange: \"showFileListChange\", tabIndexChange: \"tabIndexChange\", uploadAbortedMessageChange: \"uploadAbortedMessageChange\", uploadButtonTextChange: \"uploadButtonTextChange\", uploadChunkChange: \"uploadChunkChange\", uploadCustomDataChange: \"uploadCustomDataChange\", uploadedMessageChange: \"uploadedMessageChange\", uploadFailedMessageChange: \"uploadFailedMessageChange\", uploadFileChange: \"uploadFileChange\", uploadHeadersChange: \"uploadHeadersChange\", uploadMethodChange: \"uploadMethodChange\", uploadModeChange: \"uploadModeChange\", uploadUrlChange: \"uploadUrlChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxFileUploaderComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFileUploaderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-file-uploader',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { abortUpload: [{\r\n type: Input\r\n }], accept: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowCanceling: [{\r\n type: Input\r\n }], allowedFileExtensions: [{\r\n type: Input\r\n }], chunkSize: [{\r\n type: Input\r\n }], dialogTrigger: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], dropZone: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], invalidFileExtensionMessage: [{\r\n type: Input\r\n }], invalidMaxFileSizeMessage: [{\r\n type: Input\r\n }], invalidMinFileSizeMessage: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], labelText: [{\r\n type: Input\r\n }], maxFileSize: [{\r\n type: Input\r\n }], minFileSize: [{\r\n type: Input\r\n }], multiple: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], progress: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], readyToUploadMessage: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectButtonText: [{\r\n type: Input\r\n }], showFileList: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], uploadAbortedMessage: [{\r\n type: Input\r\n }], uploadButtonText: [{\r\n type: Input\r\n }], uploadChunk: [{\r\n type: Input\r\n }], uploadCustomData: [{\r\n type: Input\r\n }], uploadedMessage: [{\r\n type: Input\r\n }], uploadFailedMessage: [{\r\n type: Input\r\n }], uploadFile: [{\r\n type: Input\r\n }], uploadHeaders: [{\r\n type: Input\r\n }], uploadMethod: [{\r\n type: Input\r\n }], uploadMode: [{\r\n type: Input\r\n }], uploadUrl: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onBeforeSend: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDropZoneEnter: [{\r\n type: Output\r\n }], onDropZoneLeave: [{\r\n type: Output\r\n }], onFilesUploaded: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onProgress: [{\r\n type: Output\r\n }], onUploadAborted: [{\r\n type: Output\r\n }], onUploaded: [{\r\n type: Output\r\n }], onUploadError: [{\r\n type: Output\r\n }], onUploadStarted: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], abortUploadChange: [{\r\n type: Output\r\n }], acceptChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowCancelingChange: [{\r\n type: Output\r\n }], allowedFileExtensionsChange: [{\r\n type: Output\r\n }], chunkSizeChange: [{\r\n type: Output\r\n }], dialogTriggerChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], dropZoneChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], invalidFileExtensionMessageChange: [{\r\n type: Output\r\n }], invalidMaxFileSizeMessageChange: [{\r\n type: Output\r\n }], invalidMinFileSizeMessageChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelTextChange: [{\r\n type: Output\r\n }], maxFileSizeChange: [{\r\n type: Output\r\n }], minFileSizeChange: [{\r\n type: Output\r\n }], multipleChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], progressChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], readyToUploadMessageChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectButtonTextChange: [{\r\n type: Output\r\n }], showFileListChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], uploadAbortedMessageChange: [{\r\n type: Output\r\n }], uploadButtonTextChange: [{\r\n type: Output\r\n }], uploadChunkChange: [{\r\n type: Output\r\n }], uploadCustomDataChange: [{\r\n type: Output\r\n }], uploadedMessageChange: [{\r\n type: Output\r\n }], uploadFailedMessageChange: [{\r\n type: Output\r\n }], uploadFileChange: [{\r\n type: Output\r\n }], uploadHeadersChange: [{\r\n type: Output\r\n }], uploadMethodChange: [{\r\n type: Output\r\n }], uploadModeChange: [{\r\n type: Output\r\n }], uploadUrlChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxFileUploaderModule {\r\n}\r\n/** @nocollapse */ DxFileUploaderModule.ɵfac = function DxFileUploaderModule_Factory(t) { return new (t || DxFileUploaderModule)(); };\r\n/** @nocollapse */ DxFileUploaderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxFileUploaderModule });\r\n/** @nocollapse */ DxFileUploaderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFileUploaderModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxFileUploaderComponent\r\n ],\r\n exports: [\r\n DxFileUploaderComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxFileUploaderModule, { declarations: [DxFileUploaderComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxFileUploaderComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxFileUploaderComponent, DxFileUploaderModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxFilterBuilder from 'devextreme/ui/filter_builder';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiCustomOperationComponent, DxiFieldComponent, DxiCustomOperationModule, DxiFieldModule, DxoFormatModule, DxoLookupModule, DxoFilterOperationDescriptionsModule, DxoGroupOperationDescriptionsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxFilterBuilderComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxFilterBuilder]\r\n\r\n */\r\nclass DxFilterBuilderComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'editorPrepared', emit: 'onEditorPrepared' },\r\n { subscribe: 'editorPreparing', emit: 'onEditorPreparing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowHierarchicalFieldsChange' },\r\n { emit: 'customOperationsChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldsChange' },\r\n { emit: 'filterOperationDescriptionsChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupOperationDescriptionsChange' },\r\n { emit: 'groupOperationsChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxGroupLevelChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.allowHierarchicalFields]\r\n \r\n */\r\n get allowHierarchicalFields() {\r\n return this._getOption('allowHierarchicalFields');\r\n }\r\n set allowHierarchicalFields(value) {\r\n this._setOption('allowHierarchicalFields', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.customOperations]\r\n \r\n */\r\n get customOperations() {\r\n return this._getOption('customOperations');\r\n }\r\n set customOperations(value) {\r\n this._setOption('customOperations', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.fields]\r\n \r\n */\r\n get fields() {\r\n return this._getOption('fields');\r\n }\r\n set fields(value) {\r\n this._setOption('fields', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.filterOperationDescriptions]\r\n \r\n */\r\n get filterOperationDescriptions() {\r\n return this._getOption('filterOperationDescriptions');\r\n }\r\n set filterOperationDescriptions(value) {\r\n this._setOption('filterOperationDescriptions', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.groupOperationDescriptions]\r\n \r\n */\r\n get groupOperationDescriptions() {\r\n return this._getOption('groupOperationDescriptions');\r\n }\r\n set groupOperationDescriptions(value) {\r\n this._setOption('groupOperationDescriptions', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.groupOperations]\r\n \r\n */\r\n get groupOperations() {\r\n return this._getOption('groupOperations');\r\n }\r\n set groupOperations(value) {\r\n this._setOption('groupOperations', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.maxGroupLevel]\r\n \r\n */\r\n get maxGroupLevel() {\r\n return this._getOption('maxGroupLevel');\r\n }\r\n set maxGroupLevel(value) {\r\n this._setOption('maxGroupLevel', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxFilterBuilderOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get customOperationsChildren() {\r\n return this._getOption('customOperations');\r\n }\r\n set customOperationsChildren(value) {\r\n this.setChildren('customOperations', value);\r\n }\r\n get fieldsChildren() {\r\n return this._getOption('fields');\r\n }\r\n set fieldsChildren(value) {\r\n this.setChildren('fields', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxFilterBuilder(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('customOperations', changes);\r\n this.setupChanges('fields', changes);\r\n this.setupChanges('groupOperations', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('customOperations');\r\n this._idh.doCheck('fields');\r\n this._idh.doCheck('groupOperations');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxFilterBuilderComponent.ɵfac = function DxFilterBuilderComponent_Factory(t) { return new (t || DxFilterBuilderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxFilterBuilderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxFilterBuilderComponent, selectors: [[\"dx-filter-builder\"]], contentQueries: function DxFilterBuilderComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCustomOperationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiFieldComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customOperationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldsChildren = _t);\r\n } }, hostBindings: function DxFilterBuilderComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxFilterBuilderComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxFilterBuilderComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowHierarchicalFields: \"allowHierarchicalFields\", customOperations: \"customOperations\", disabled: \"disabled\", elementAttr: \"elementAttr\", fields: \"fields\", filterOperationDescriptions: \"filterOperationDescriptions\", focusStateEnabled: \"focusStateEnabled\", groupOperationDescriptions: \"groupOperationDescriptions\", groupOperations: \"groupOperations\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxGroupLevel: \"maxGroupLevel\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onEditorPrepared: \"onEditorPrepared\", onEditorPreparing: \"onEditorPreparing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowHierarchicalFieldsChange: \"allowHierarchicalFieldsChange\", customOperationsChange: \"customOperationsChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", fieldsChange: \"fieldsChange\", filterOperationDescriptionsChange: \"filterOperationDescriptionsChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupOperationDescriptionsChange: \"groupOperationDescriptionsChange\", groupOperationsChange: \"groupOperationsChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxGroupLevelChange: \"maxGroupLevelChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxFilterBuilderComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFilterBuilderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-filter-builder',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowHierarchicalFields: [{\r\n type: Input\r\n }], customOperations: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fields: [{\r\n type: Input\r\n }], filterOperationDescriptions: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], groupOperationDescriptions: [{\r\n type: Input\r\n }], groupOperations: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxGroupLevel: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEditorPrepared: [{\r\n type: Output\r\n }], onEditorPreparing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowHierarchicalFieldsChange: [{\r\n type: Output\r\n }], customOperationsChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldsChange: [{\r\n type: Output\r\n }], filterOperationDescriptionsChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupOperationDescriptionsChange: [{\r\n type: Output\r\n }], groupOperationsChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxGroupLevelChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], customOperationsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiCustomOperationComponent]\r\n }], fieldsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiFieldComponent]\r\n }] }); })();\r\nclass DxFilterBuilderModule {\r\n}\r\n/** @nocollapse */ DxFilterBuilderModule.ɵfac = function DxFilterBuilderModule_Factory(t) { return new (t || DxFilterBuilderModule)(); };\r\n/** @nocollapse */ DxFilterBuilderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxFilterBuilderModule });\r\n/** @nocollapse */ DxFilterBuilderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFilterBuilderModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxFilterBuilderComponent\r\n ],\r\n exports: [\r\n DxFilterBuilderComponent,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxFilterBuilderModule, { declarations: [DxFilterBuilderComponent], imports: [DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxFilterBuilderComponent, DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoLookupModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxFilterBuilderComponent, DxFilterBuilderModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxForm from 'devextreme/ui/form';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxoColCountByScreenModule, DxiItemModule, DxoLabelModule, DxiValidationRuleModule, DxoTabPanelOptionsModule, DxiTabModule, DxoButtonOptionsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxForm]\r\n\r\n */\r\nclass DxFormComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'editorEnterKey', emit: 'onEditorEnterKey' },\r\n { subscribe: 'fieldDataChanged', emit: 'onFieldDataChanged' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'alignItemLabelsChange' },\r\n { emit: 'alignItemLabelsInAllGroupsChange' },\r\n { emit: 'colCountChange' },\r\n { emit: 'colCountByScreenChange' },\r\n { emit: 'customizeItemChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'formDataChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'labelLocationChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'minColWidthChange' },\r\n { emit: 'optionalMarkChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'requiredMarkChange' },\r\n { emit: 'requiredMessageChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'screenByWidthChange' },\r\n { emit: 'scrollingEnabledChange' },\r\n { emit: 'showColonAfterLabelChange' },\r\n { emit: 'showOptionalMarkChange' },\r\n { emit: 'showRequiredMarkChange' },\r\n { emit: 'showValidationSummaryChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'validationGroupChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.alignItemLabels]\r\n \r\n */\r\n get alignItemLabels() {\r\n return this._getOption('alignItemLabels');\r\n }\r\n set alignItemLabels(value) {\r\n this._setOption('alignItemLabels', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.alignItemLabelsInAllGroups]\r\n \r\n */\r\n get alignItemLabelsInAllGroups() {\r\n return this._getOption('alignItemLabelsInAllGroups');\r\n }\r\n set alignItemLabelsInAllGroups(value) {\r\n this._setOption('alignItemLabelsInAllGroups', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.colCount]\r\n \r\n */\r\n get colCount() {\r\n return this._getOption('colCount');\r\n }\r\n set colCount(value) {\r\n this._setOption('colCount', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.colCountByScreen]\r\n \r\n */\r\n get colCountByScreen() {\r\n return this._getOption('colCountByScreen');\r\n }\r\n set colCountByScreen(value) {\r\n this._setOption('colCountByScreen', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.customizeItem]\r\n \r\n */\r\n get customizeItem() {\r\n return this._getOption('customizeItem');\r\n }\r\n set customizeItem(value) {\r\n this._setOption('customizeItem', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.formData]\r\n \r\n */\r\n get formData() {\r\n return this._getOption('formData');\r\n }\r\n set formData(value) {\r\n this._setOption('formData', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.labelLocation]\r\n \r\n */\r\n get labelLocation() {\r\n return this._getOption('labelLocation');\r\n }\r\n set labelLocation(value) {\r\n this._setOption('labelLocation', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.minColWidth]\r\n \r\n */\r\n get minColWidth() {\r\n return this._getOption('minColWidth');\r\n }\r\n set minColWidth(value) {\r\n this._setOption('minColWidth', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.optionalMark]\r\n \r\n */\r\n get optionalMark() {\r\n return this._getOption('optionalMark');\r\n }\r\n set optionalMark(value) {\r\n this._setOption('optionalMark', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.requiredMark]\r\n \r\n */\r\n get requiredMark() {\r\n return this._getOption('requiredMark');\r\n }\r\n set requiredMark(value) {\r\n this._setOption('requiredMark', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.requiredMessage]\r\n \r\n */\r\n get requiredMessage() {\r\n return this._getOption('requiredMessage');\r\n }\r\n set requiredMessage(value) {\r\n this._setOption('requiredMessage', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.screenByWidth]\r\n \r\n */\r\n get screenByWidth() {\r\n return this._getOption('screenByWidth');\r\n }\r\n set screenByWidth(value) {\r\n this._setOption('screenByWidth', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.scrollingEnabled]\r\n \r\n */\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.showColonAfterLabel]\r\n \r\n */\r\n get showColonAfterLabel() {\r\n return this._getOption('showColonAfterLabel');\r\n }\r\n set showColonAfterLabel(value) {\r\n this._setOption('showColonAfterLabel', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.showOptionalMark]\r\n \r\n */\r\n get showOptionalMark() {\r\n return this._getOption('showOptionalMark');\r\n }\r\n set showOptionalMark(value) {\r\n this._setOption('showOptionalMark', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.showRequiredMark]\r\n \r\n */\r\n get showRequiredMark() {\r\n return this._getOption('showRequiredMark');\r\n }\r\n set showRequiredMark(value) {\r\n this._setOption('showRequiredMark', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.showValidationSummary]\r\n \r\n */\r\n get showValidationSummary() {\r\n return this._getOption('showValidationSummary');\r\n }\r\n set showValidationSummary(value) {\r\n this._setOption('showValidationSummary', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxFormOptions.validationGroup]\r\n \r\n */\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxForm(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxFormComponent.ɵfac = function DxFormComponent_Factory(t) { return new (t || DxFormComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxFormComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxFormComponent, selectors: [[\"dx-form\"]], contentQueries: function DxFormComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", alignItemLabels: \"alignItemLabels\", alignItemLabelsInAllGroups: \"alignItemLabelsInAllGroups\", colCount: \"colCount\", colCountByScreen: \"colCountByScreen\", customizeItem: \"customizeItem\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", formData: \"formData\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", items: \"items\", labelLocation: \"labelLocation\", labelMode: \"labelMode\", minColWidth: \"minColWidth\", optionalMark: \"optionalMark\", readOnly: \"readOnly\", requiredMark: \"requiredMark\", requiredMessage: \"requiredMessage\", rtlEnabled: \"rtlEnabled\", screenByWidth: \"screenByWidth\", scrollingEnabled: \"scrollingEnabled\", showColonAfterLabel: \"showColonAfterLabel\", showOptionalMark: \"showOptionalMark\", showRequiredMark: \"showRequiredMark\", showValidationSummary: \"showValidationSummary\", tabIndex: \"tabIndex\", validationGroup: \"validationGroup\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onEditorEnterKey: \"onEditorEnterKey\", onFieldDataChanged: \"onFieldDataChanged\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", alignItemLabelsChange: \"alignItemLabelsChange\", alignItemLabelsInAllGroupsChange: \"alignItemLabelsInAllGroupsChange\", colCountChange: \"colCountChange\", colCountByScreenChange: \"colCountByScreenChange\", customizeItemChange: \"customizeItemChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", formDataChange: \"formDataChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", itemsChange: \"itemsChange\", labelLocationChange: \"labelLocationChange\", labelModeChange: \"labelModeChange\", minColWidthChange: \"minColWidthChange\", optionalMarkChange: \"optionalMarkChange\", readOnlyChange: \"readOnlyChange\", requiredMarkChange: \"requiredMarkChange\", requiredMessageChange: \"requiredMessageChange\", rtlEnabledChange: \"rtlEnabledChange\", screenByWidthChange: \"screenByWidthChange\", scrollingEnabledChange: \"scrollingEnabledChange\", showColonAfterLabelChange: \"showColonAfterLabelChange\", showOptionalMarkChange: \"showOptionalMarkChange\", showRequiredMarkChange: \"showRequiredMarkChange\", showValidationSummaryChange: \"showValidationSummaryChange\", tabIndexChange: \"tabIndexChange\", validationGroupChange: \"validationGroupChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxFormComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFormComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-form',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], alignItemLabels: [{\r\n type: Input\r\n }], alignItemLabelsInAllGroups: [{\r\n type: Input\r\n }], colCount: [{\r\n type: Input\r\n }], colCountByScreen: [{\r\n type: Input\r\n }], customizeItem: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], formData: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], labelLocation: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], minColWidth: [{\r\n type: Input\r\n }], optionalMark: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], requiredMark: [{\r\n type: Input\r\n }], requiredMessage: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], screenByWidth: [{\r\n type: Input\r\n }], scrollingEnabled: [{\r\n type: Input\r\n }], showColonAfterLabel: [{\r\n type: Input\r\n }], showOptionalMark: [{\r\n type: Input\r\n }], showRequiredMark: [{\r\n type: Input\r\n }], showValidationSummary: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], validationGroup: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEditorEnterKey: [{\r\n type: Output\r\n }], onFieldDataChanged: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], alignItemLabelsChange: [{\r\n type: Output\r\n }], alignItemLabelsInAllGroupsChange: [{\r\n type: Output\r\n }], colCountChange: [{\r\n type: Output\r\n }], colCountByScreenChange: [{\r\n type: Output\r\n }], customizeItemChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], formDataChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], labelLocationChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], minColWidthChange: [{\r\n type: Output\r\n }], optionalMarkChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], requiredMarkChange: [{\r\n type: Output\r\n }], requiredMessageChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], screenByWidthChange: [{\r\n type: Output\r\n }], scrollingEnabledChange: [{\r\n type: Output\r\n }], showColonAfterLabelChange: [{\r\n type: Output\r\n }], showOptionalMarkChange: [{\r\n type: Output\r\n }], showRequiredMarkChange: [{\r\n type: Output\r\n }], showValidationSummaryChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], validationGroupChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxFormModule {\r\n}\r\n/** @nocollapse */ DxFormModule.ɵfac = function DxFormModule_Factory(t) { return new (t || DxFormModule)(); };\r\n/** @nocollapse */ DxFormModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxFormModule });\r\n/** @nocollapse */ DxFormModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFormModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxFormComponent\r\n ],\r\n exports: [\r\n DxFormComponent,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxFormModule, { declarations: [DxFormComponent], imports: [DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxFormComponent, DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxFormComponent, DxFormModule };\n","/**\r\n * DevExtreme (esm/viz/funnel/tiling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar algorithms = {};\r\nvar defaultAlgorithm;\r\nexport function getAlgorithm(name) {\r\n return algorithms[_normalizeEnum(name)] || defaultAlgorithm\r\n}\r\nexport function addAlgorithm(name, callback, setDefault) {\r\n algorithms[name] = callback;\r\n if (setDefault) {\r\n defaultAlgorithm = algorithms[name]\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/funnel/tiling.funnel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar CENTER = .5;\r\nexport default {\r\n getFigures: function(data) {\r\n var height = 1 / data.length;\r\n return data.map((function(value, index, array) {\r\n var nextValue = array[index + 1] ? array[index + 1] : array[index];\r\n return [CENTER - value / 2, height * index, CENTER + value / 2, height * index, CENTER + nextValue / 2, height * (index + 1), CENTER - nextValue / 2, height * (index + 1)]\r\n }))\r\n },\r\n normalizeValues: function(items) {\r\n var max = items.reduce((function(max, item) {\r\n return Math.max(item.value, max)\r\n }), items[0] && items[0].value || 0);\r\n return items.map((function(item) {\r\n return item.value / max\r\n }))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/funnel/item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar states = [\"normal\", \"hover\", \"selection\", \"selection\"];\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\n\r\nfunction parseStyles(color, style, baseStyle) {\r\n var border = style.border;\r\n var baseBorder = baseStyle.border;\r\n var borderVisible = isDefined(border.visible) ? border.visible : baseBorder.visible;\r\n var borderWidth = isDefined(border.width) ? border.width : baseBorder.width;\r\n return {\r\n fill: color,\r\n hatching: style.hatching,\r\n stroke: border.color || baseBorder.color,\r\n \"stroke-width\": borderVisible ? borderWidth : 0\r\n }\r\n}\r\n\r\nfunction Item(widget, options) {\r\n var data = options.data;\r\n this.code = 0;\r\n this.widget = widget;\r\n this.figure = options.figure;\r\n this.argument = data.argument;\r\n this.value = data.value;\r\n this.data = data.dataItem;\r\n this.percent = options.percent;\r\n this.id = options.id;\r\n this.color = options.color;\r\n this.states = {\r\n normal: parseStyles(options.color, options.itemOptions, options.itemOptions),\r\n hover: parseStyles(options.color, options.itemOptions.hoverStyle, options.itemOptions),\r\n selection: parseStyles(options.color, options.itemOptions.selectionStyle, options.itemOptions)\r\n }\r\n}\r\nItem.prototype = {\r\n getState: function() {\r\n return states[this.code]\r\n },\r\n getNormalStyle: function() {\r\n return this.states.normal\r\n },\r\n setHover: function() {\r\n this.hover(true)\r\n },\r\n hover: function(state) {\r\n if (!this.widget._getOption(\"hoverEnabled\", true) || state === this.isHovered()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n state && this.widget.clearHover();\r\n this.setState(1, state);\r\n this.widget._eventTrigger(\"hoverChanged\", {\r\n item: this\r\n });\r\n this.widget._resume()\r\n },\r\n setState: function(code, state) {\r\n if (state) {\r\n this.code |= code\r\n } else {\r\n this.code &= ~code\r\n }\r\n this.widget._applyTilesAppearance()\r\n },\r\n select: function(state) {\r\n var mode = this.widget._getOption(\"selectionMode\", true);\r\n if (\"none\" === mode || state === this.isSelected()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n if (state && \"multiple\" !== mode) {\r\n this.widget.clearSelection()\r\n }\r\n this.setState(2, state);\r\n this.widget._eventTrigger(\"selectionChanged\", {\r\n item: this\r\n });\r\n this.widget._resume()\r\n },\r\n showTooltip: function(coords) {\r\n this.widget._showTooltip(this.id, coords)\r\n },\r\n getColor: function() {\r\n return this.color\r\n },\r\n isHovered: function() {\r\n return !!(1 & this.code)\r\n },\r\n isSelected: function() {\r\n return !!(2 & this.code)\r\n }\r\n};\r\nexport default Item;\r\n","/**\r\n * DevExtreme (esm/viz/funnel/funnel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addAlgorithm,\r\n getAlgorithm\r\n} from \"./tiling\";\r\nimport dynamicSlope from \"./tiling.funnel\";\r\nimport dynamicHeight from \"./tiling.pyramid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport baseWidget from \"../../__internal/viz/core/m_base_widget\";\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\nimport Item from \"./item\";\r\nvar NODES_CREATE_CHANGE = \"NODES_CREATE\";\r\naddAlgorithm(\"dynamicslope\", dynamicSlope, true);\r\naddAlgorithm(\"dynamicheight\", dynamicHeight);\r\n\r\nfunction invertFigure(figure) {\r\n return figure.map((function(coord, index) {\r\n return index % 2 ? 1 - coord : coord\r\n }))\r\n}\r\n\r\nfunction getLegendItemState(itemState) {\r\n return {\r\n fill: itemState.fill,\r\n hatching: itemState.hatching\r\n }\r\n}\r\nvar dxFunnel = baseWidget.inherit({\r\n _rootClass: \"dxf-funnel\",\r\n _rootClassPrefix: \"dxf\",\r\n _proxyData: [],\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\",\r\n neckWidth: NODES_CREATE_CHANGE,\r\n neckHeight: NODES_CREATE_CHANGE,\r\n inverted: NODES_CREATE_CHANGE,\r\n algorithm: NODES_CREATE_CHANGE,\r\n item: NODES_CREATE_CHANGE,\r\n valueField: NODES_CREATE_CHANGE,\r\n argumentField: NODES_CREATE_CHANGE,\r\n colorField: NODES_CREATE_CHANGE,\r\n palette: NODES_CREATE_CHANGE,\r\n paletteExtensionMode: NODES_CREATE_CHANGE,\r\n sortData: NODES_CREATE_CHANGE\r\n },\r\n _themeDependentChanges: [NODES_CREATE_CHANGE],\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _themeSection: \"funnel\",\r\n _fontFields: [\"legend.title.font\", \"legend.title.subtitle.font\", \"legend.font\"],\r\n _optionChangesOrder: [\"DATA_SOURCE\"],\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _initCore: function() {\r\n this._group = this._renderer.g().append(this._renderer.root);\r\n this._items = []\r\n },\r\n _eventsMap: {\r\n onHoverChanged: {\r\n name: \"hoverChanged\"\r\n },\r\n onSelectionChanged: {\r\n name: \"selectionChanged\"\r\n }\r\n },\r\n _disposeCore: noop,\r\n _applySize: function(rect) {\r\n this._rect = rect.slice();\r\n this._change([\"TILING\"]);\r\n return this._rect\r\n },\r\n _getAlignmentRect: function() {\r\n return this._rect\r\n },\r\n _change_TILING: function() {\r\n var that = this;\r\n var items = that._items;\r\n var rect = that._rect;\r\n var convertCoord = function(coord, index) {\r\n var offset = index % 2;\r\n return rect[0 + offset] + (rect[2 + offset] - rect[0 + offset]) * coord\r\n };\r\n this._group.clear();\r\n items.forEach((function(item, index) {\r\n var coords = item.figure.map(convertCoord);\r\n var element = that._renderer.path([], \"area\").attr({\r\n points: coords\r\n }).append(that._group);\r\n item.coords = coords;\r\n item.element = element\r\n }));\r\n this._requestChange([\"TILES\"])\r\n },\r\n _customChangesOrder: [NODES_CREATE_CHANGE, \"LAYOUT\", \"TILING\", \"TILES\", \"DRAWN\"],\r\n _dataSourceChangedHandler: function() {\r\n this._requestChange([NODES_CREATE_CHANGE])\r\n },\r\n _change_DRAWN: function() {\r\n this._drawn()\r\n },\r\n _change_DATA_SOURCE: function() {\r\n this._change([\"DRAWN\"]);\r\n this._updateDataSource()\r\n },\r\n _change_NODES_CREATE: function() {\r\n this._buildNodes()\r\n },\r\n _change_TILES: function() {\r\n this._applyTilesAppearance()\r\n },\r\n _suspend: function() {\r\n if (!this._applyingChanges) {\r\n this._suspendChanges()\r\n }\r\n },\r\n _resume: function() {\r\n if (!this._applyingChanges) {\r\n this._resumeChanges()\r\n }\r\n },\r\n _applyTilesAppearance: function() {\r\n this._items.forEach((function(item) {\r\n var state = item.getState();\r\n item.element.smartAttr(item.states[state])\r\n }))\r\n },\r\n _hitTestTargets: function(x, y) {\r\n var that = this;\r\n var data;\r\n this._proxyData.some((function(callback) {\r\n data = callback.call(that, x, y);\r\n if (data) {\r\n return true\r\n }\r\n }));\r\n return data\r\n },\r\n clearHover: function() {\r\n this._suspend();\r\n this._items.forEach((function(item) {\r\n item.isHovered() && item.hover(false)\r\n }));\r\n this._resume()\r\n },\r\n clearSelection: function() {\r\n this._suspend();\r\n this._items.forEach((function(item) {\r\n item.isSelected() && item.select(false)\r\n }));\r\n this._resume()\r\n },\r\n _getData: function() {\r\n var data = this._dataSourceItems() || [];\r\n var valueField = this._getOption(\"valueField\", true);\r\n var argumentField = this._getOption(\"argumentField\", true);\r\n var colorField = this._getOption(\"colorField\", true);\r\n var processedData = data.reduce((function(d, item) {\r\n var value = Number(item[valueField]);\r\n if (value >= 0) {\r\n d[0].push({\r\n value: value,\r\n color: item[colorField],\r\n argument: item[argumentField],\r\n dataItem: item\r\n });\r\n d[1] += value\r\n }\r\n return d\r\n }), [\r\n [], 0\r\n ]);\r\n var items = processedData[0];\r\n if (data.length > 0 && 0 === items.length) {\r\n this._incidentOccurred(\"E2005\", valueField)\r\n }\r\n if (!processedData[1]) {\r\n return []\r\n }\r\n if (this._getOption(\"sortData\", true)) {\r\n items.sort((function(a, b) {\r\n return b.value - a.value\r\n }))\r\n }\r\n return items\r\n },\r\n _buildNodes: function() {\r\n var that = this;\r\n var data = that._getData();\r\n var algorithm = getAlgorithm(that._getOption(\"algorithm\", true));\r\n var percents = algorithm.normalizeValues(data);\r\n var itemOptions = that._getOption(\"item\");\r\n var figures = algorithm.getFigures(percents, that._getOption(\"neckWidth\", true), that._getOption(\"neckHeight\", true));\r\n var palette = that._themeManager.createPalette(that._getOption(\"palette\", true), {\r\n useHighlight: true,\r\n extensionMode: that._getOption(\"paletteExtensionMode\", true),\r\n count: figures.length\r\n });\r\n that._items = figures.map((function(figure, index) {\r\n var curData = data[index];\r\n var node = new Item(that, {\r\n figure: figure,\r\n data: curData,\r\n percent: percents[index],\r\n id: index,\r\n color: curData.color || palette.getNextColor(),\r\n itemOptions: itemOptions\r\n });\r\n return node\r\n }));\r\n if (that._getOption(\"inverted\", true)) {\r\n that._items.forEach((function(item) {\r\n item.figure = invertFigure(item.figure)\r\n }))\r\n }\r\n that._renderer.initDefsElements();\r\n that._change([\"TILING\", \"DRAWN\"])\r\n },\r\n _showTooltip: noop,\r\n hideTooltip: noop,\r\n getAllItems: function() {\r\n return this._items.slice()\r\n },\r\n _getLegendData() {\r\n return this._items.map(item => {\r\n var states = item.states;\r\n return {\r\n id: item.id,\r\n visible: true,\r\n text: item.argument,\r\n item: item,\r\n states: {\r\n normal: getLegendItemState(states.normal),\r\n hover: getLegendItemState(states.hover),\r\n selection: getLegendItemState(states.selection)\r\n }\r\n }\r\n })\r\n },\r\n _getMinSize: function() {\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n return [adaptiveLayout.width, adaptiveLayout.height]\r\n }\r\n});\r\ncomponentRegistrator(\"dxFunnel\", dxFunnel);\r\nexport default dxFunnel;\r\nimport {\r\n plugin\r\n} from \"../core/data_source\";\r\ndxFunnel.addPlugin(plugin);\r\n","/**\r\n * DevExtreme (esm/viz/funnel/tiling.pyramid.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar CENTER = .5;\r\nvar LEFTCORNER = 0;\r\nvar RIGHTCORNER = 1;\r\nexport default {\r\n getFigures: function(data, neckWidth, neckHeight) {\r\n var height = 0;\r\n var y = 0;\r\n var x = 0;\r\n var offsetX = 0;\r\n var halfNeckWidth = neckWidth / 2;\r\n var offsetFromCorner = CENTER - halfNeckWidth;\r\n var funnelHeight = 1 - neckHeight;\r\n var neckLeftCorner = CENTER - halfNeckWidth;\r\n var neckRightCorner = CENTER + halfNeckWidth;\r\n return data.map((function(value) {\r\n x = offsetX;\r\n y = height;\r\n height += value;\r\n offsetX = offsetFromCorner * height / funnelHeight;\r\n if (y <= funnelHeight && height <= funnelHeight) {\r\n return [x, y, RIGHTCORNER - x, y, RIGHTCORNER - offsetX, height, LEFTCORNER + offsetX, height]\r\n } else if (y <= funnelHeight && height > funnelHeight) {\r\n return [x, y, RIGHTCORNER - x, y, neckRightCorner, funnelHeight, neckRightCorner, height, neckLeftCorner, height, neckLeftCorner, funnelHeight]\r\n } else {\r\n return [neckLeftCorner, y, neckRightCorner, y, neckRightCorner, height, neckLeftCorner, height]\r\n }\r\n }))\r\n },\r\n normalizeValues: function(items) {\r\n var sum = items.reduce((function(sum, item) {\r\n return sum + item.value\r\n }), 0);\r\n return items.map((function(item) {\r\n return item.value / sum\r\n }))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/funnel/label.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Label\r\n} from \"../series/points/label\";\r\nimport {\r\n normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar OUTSIDE_POSITION = \"outside\";\r\nvar INSIDE_POSITION = \"inside\";\r\nvar OUTSIDE_LABEL_INDENT = 5;\r\nvar COLUMNS_LABEL_INDENT = 20;\r\nvar CONNECTOR_INDENT = 4;\r\nvar PREVENT_EMPTY_PIXEL_OFFSET = 1;\r\n\r\nfunction getLabelIndent(pos) {\r\n pos = normalizeEnum(pos);\r\n if (pos === OUTSIDE_POSITION) {\r\n return OUTSIDE_LABEL_INDENT\r\n } else if (pos === INSIDE_POSITION) {\r\n return 0\r\n }\r\n return COLUMNS_LABEL_INDENT\r\n}\r\n\r\nfunction isOutsidePosition(pos) {\r\n pos = normalizeEnum(pos);\r\n return pos === OUTSIDE_POSITION || pos !== INSIDE_POSITION\r\n}\r\n\r\nfunction correctYForInverted(y, bBox, inverted) {\r\n return inverted ? y - bBox.height : y\r\n}\r\n\r\nfunction getOutsideRightLabelPosition(coords, bBox, options, inverted) {\r\n return {\r\n x: coords[2] + options.horizontalOffset + OUTSIDE_LABEL_INDENT,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n}\r\n\r\nfunction getOutsideLeftLabelPosition(coords, bBox, options, inverted) {\r\n return {\r\n x: coords[0] - bBox.width - options.horizontalOffset - OUTSIDE_LABEL_INDENT,\r\n y: correctYForInverted(coords[1] + options.verticalOffset, bBox, inverted)\r\n }\r\n}\r\n\r\nfunction getInsideLabelPosition(coords, bBox, options) {\r\n var width = coords[2] - coords[0];\r\n var height = coords[7] - coords[1];\r\n return {\r\n x: coords[0] + width / 2 + options.horizontalOffset - bBox.width / 2,\r\n y: coords[1] + options.verticalOffset + height / 2 - bBox.height / 2\r\n }\r\n}\r\n\r\nfunction getColumnLabelRightPosition(labelRect, rect, textAlignment) {\r\n return function(coords, bBox, options, inverted) {\r\n return {\r\n x: \"left\" === textAlignment ? rect[2] + options.horizontalOffset + COLUMNS_LABEL_INDENT : labelRect[2] - bBox.width,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n }\r\n}\r\n\r\nfunction getColumnLabelLeftPosition(labelRect, rect, textAlignment) {\r\n return function(coords, bBox, options, inverted) {\r\n return {\r\n x: \"left\" === textAlignment ? labelRect[0] : rect[0] - bBox.width - options.horizontalOffset - COLUMNS_LABEL_INDENT,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n }\r\n}\r\n\r\nfunction getConnectorStrategy(options, inverted) {\r\n var isLeftPos = \"left\" === options.horizontalAlignment;\r\n var connectorIndent = isLeftPos ? CONNECTOR_INDENT : -CONNECTOR_INDENT;\r\n var verticalCorrection = inverted ? -PREVENT_EMPTY_PIXEL_OFFSET : 0;\r\n\r\n function getFigureCenter(figure) {\r\n return isLeftPos ? [figure[0] + PREVENT_EMPTY_PIXEL_OFFSET, figure[1] + verticalCorrection] : [figure[2] - PREVENT_EMPTY_PIXEL_OFFSET, figure[3] + verticalCorrection]\r\n }\r\n return {\r\n isLabelInside: function() {\r\n return !isOutsidePosition(options.position)\r\n },\r\n getFigureCenter: getFigureCenter,\r\n prepareLabelPoints: function(bBox) {\r\n var x = bBox.x + connectorIndent;\r\n var y = bBox.y;\r\n var x1 = x + bBox.width;\r\n return [...Array(bBox.height + 1)].map((_, i) => [x, y + i]).concat([...Array(bBox.height + 1)].map((_, i) => [x1, y + i]))\r\n },\r\n isHorizontal: function() {\r\n return true\r\n },\r\n findFigurePoint: function(figure) {\r\n return getFigureCenter(figure)\r\n },\r\n adjustPoints: function(points) {\r\n return points.map(Math.round)\r\n }\r\n }\r\n}\r\n\r\nfunction getLabelOptions(labelOptions, defaultColor, defaultTextAlignment) {\r\n var opt = labelOptions || {};\r\n var labelFont = extend({}, opt.font) || {};\r\n var labelBorder = opt.border || {};\r\n var labelConnector = opt.connector || {};\r\n var backgroundAttr = {\r\n fill: opt.backgroundColor || defaultColor,\r\n \"stroke-width\": labelBorder.visible ? labelBorder.width || 0 : 0,\r\n stroke: labelBorder.visible && labelBorder.width ? labelBorder.color : \"none\",\r\n dashStyle: labelBorder.dashStyle\r\n };\r\n var connectorAttr = {\r\n stroke: labelConnector.visible && labelConnector.width ? labelConnector.color || defaultColor : \"none\",\r\n \"stroke-width\": labelConnector.visible ? labelConnector.width || 0 : 0,\r\n opacity: labelConnector.opacity\r\n };\r\n labelFont.color = \"none\" === opt.backgroundColor && \"#ffffff\" === normalizeEnum(labelFont.color) && \"inside\" !== opt.position ? defaultColor : labelFont.color;\r\n return {\r\n format: opt.format,\r\n textAlignment: opt.textAlignment || (isOutsidePosition(opt.position) ? defaultTextAlignment : \"center\"),\r\n customizeText: opt.customizeText,\r\n attributes: {\r\n font: labelFont\r\n },\r\n visible: 0 !== labelFont.size ? opt.visible : false,\r\n showForZeroValues: opt.showForZeroValues,\r\n horizontalOffset: opt.horizontalOffset,\r\n verticalOffset: opt.verticalOffset,\r\n background: backgroundAttr,\r\n connector: connectorAttr,\r\n wordWrap: labelOptions.wordWrap,\r\n textOverflow: labelOptions.textOverflow\r\n }\r\n}\r\n\r\nfunction correctLabelPosition(pos, bBox, rect) {\r\n if (pos.x < rect[0]) {\r\n pos.x = rect[0]\r\n }\r\n if (pos.x + bBox.width > rect[2]) {\r\n pos.x = rect[2] - bBox.width\r\n }\r\n if (pos.y < rect[1]) {\r\n pos.y = rect[1]\r\n }\r\n if (pos.y + bBox.height > rect[3]) {\r\n pos.y = rect[3] - bBox.height\r\n }\r\n return pos\r\n}\r\n\r\nfunction removeEmptySpace(labels, requiredSpace, startPoint) {\r\n labels.reduce((requiredSpace, label, index, labels) => {\r\n var prevLabel = labels[index + 1];\r\n if (requiredSpace > 0) {\r\n var bBox = label.getBoundingRect();\r\n var point = prevLabel ? prevLabel.getBoundingRect().y + prevLabel.getBoundingRect().height : startPoint;\r\n var emptySpace = bBox.y - point;\r\n var shift = Math.min(emptySpace, requiredSpace);\r\n labels.slice(0, index + 1).forEach(label => {\r\n var bBox = label.getBoundingRect();\r\n label.shift(bBox.x, bBox.y - shift)\r\n });\r\n requiredSpace -= shift\r\n }\r\n return requiredSpace\r\n }, requiredSpace)\r\n}\r\nexport var plugin = {\r\n name: \"lables\",\r\n init: noop,\r\n dispose: noop,\r\n extenders: {\r\n _initCore: function() {\r\n this._labelsGroup = this._renderer.g().attr({\r\n class: this._rootClassPrefix + \"-labels\"\r\n }).append(this._renderer.root);\r\n this._labels = []\r\n },\r\n _applySize: function() {\r\n var options = this._getOption(\"label\");\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n var rect = this._rect;\r\n var labelWidth = 0;\r\n var width = rect[2] - rect[0];\r\n this._labelRect = rect.slice();\r\n if (!this._labels.length || !isOutsidePosition(options.position)) {\r\n if (normalizeEnum(\"none\" !== this._getOption(\"resolveLabelOverlapping\", true))) {\r\n this._labels.forEach(l => !l.isVisible() && l.draw(true))\r\n }\r\n return\r\n }\r\n var groupWidth = this._labels.map((function(label) {\r\n label.resetEllipsis();\r\n return label.getBoundingRect().width\r\n })).reduce((function(max, width) {\r\n return Math.max(max, width)\r\n }), 0);\r\n labelWidth = groupWidth + options.horizontalOffset + getLabelIndent(options.position);\r\n if (!adaptiveLayout.keepLabels && width - labelWidth < adaptiveLayout.width) {\r\n this._labels.forEach((function(label) {\r\n label.draw(false)\r\n }));\r\n return\r\n } else {\r\n if (width - labelWidth < adaptiveLayout.width) {\r\n labelWidth = width - adaptiveLayout.width;\r\n labelWidth = labelWidth > 0 ? labelWidth : 0\r\n }\r\n this._labels.forEach((function(label) {\r\n label.draw(true)\r\n }))\r\n }\r\n if (\"left\" === options.horizontalAlignment) {\r\n rect[0] += labelWidth\r\n } else {\r\n rect[2] -= labelWidth\r\n }\r\n },\r\n _buildNodes: function() {\r\n this._createLabels()\r\n },\r\n _change_TILING: function() {\r\n var that = this;\r\n var options = that._getOption(\"label\");\r\n var getCoords = getInsideLabelPosition;\r\n var inverted = that._getOption(\"inverted\", true);\r\n var textAlignment;\r\n if (isOutsidePosition(options.position)) {\r\n if (normalizeEnum(options.position) === OUTSIDE_POSITION) {\r\n getCoords = \"left\" === options.horizontalAlignment ? getOutsideLeftLabelPosition : getOutsideRightLabelPosition\r\n } else {\r\n textAlignment = this._defaultLabelTextAlignment();\r\n getCoords = \"left\" === options.horizontalAlignment ? getColumnLabelLeftPosition(this._labelRect, this._rect, textAlignment) : getColumnLabelRightPosition(this._labelRect, this._rect, textAlignment)\r\n }\r\n }\r\n that._labels.forEach((function(label, index) {\r\n var item = that._items[index];\r\n var borderWidth = item.getNormalStyle()[\"stroke-width\"];\r\n var halfBorderWidth = inverted ? borderWidth / 2 : -borderWidth / 2;\r\n var coords = halfBorderWidth ? item.coords.map((function(coord, index) {\r\n if (1 === index || 3 === index) {\r\n return coord - halfBorderWidth\r\n } else if (2 === index) {\r\n return coord - borderWidth\r\n } else if (0 === index) {\r\n return coord + borderWidth\r\n }\r\n return coord\r\n })) : item.coords;\r\n if (!options.showForZeroValues && 0 === item.value) {\r\n label.draw(false);\r\n return\r\n }\r\n if (isOutsidePosition(options.position)) {\r\n that._correctLabelWidth(label, item.coords, options)\r\n }\r\n var bBox = label.getBoundingRect();\r\n var pos = correctLabelPosition(getCoords(coords, bBox, options, inverted), bBox, that._labelRect);\r\n label.setFigureToDrawConnector(coords);\r\n label.shift(pos.x, pos.y)\r\n }));\r\n that._resolveLabelOverlapping()\r\n }\r\n },\r\n members: {\r\n _resolveLabelOverlapping() {\r\n var that = this;\r\n var resolveLabelOverlapping = normalizeEnum(that._getOption(\"resolveLabelOverlapping\", true));\r\n var labels = this._getOption(\"inverted\", true) ? that._labels.slice().reverse() : that._labels;\r\n if (\"hide\" === resolveLabelOverlapping) {\r\n labels.reduce((height, label) => {\r\n if (label.getBoundingRect().y < height) {\r\n label.hide()\r\n } else {\r\n height = label.getBoundingRect().y + label.getBoundingRect().height\r\n }\r\n return height\r\n }, 0)\r\n } else if (\"shift\" === resolveLabelOverlapping) {\r\n var maxHeight = this._labelRect[3];\r\n labels.filter(label => label.isVisible()).reduce((_ref, label, index, labels) => {\r\n var [height, emptySpace] = _ref;\r\n var bBox = label.getBoundingRect();\r\n var y = bBox.y;\r\n if (bBox.y < height) {\r\n label.shift(bBox.x, height);\r\n y = height\r\n }\r\n if (y - height > 0) {\r\n emptySpace += y - height\r\n }\r\n if (y + bBox.height > maxHeight) {\r\n if (emptySpace && emptySpace > y + bBox.height - maxHeight) {\r\n removeEmptySpace(labels.slice(0, index).reverse(), y + bBox.height - maxHeight, that._labelRect[1]);\r\n emptySpace -= y + bBox.height - maxHeight;\r\n label.shift(bBox.x, y - (y + bBox.height - maxHeight));\r\n height = y - (y + bBox.height - maxHeight) + bBox.height\r\n } else {\r\n label.hide()\r\n }\r\n } else {\r\n height = y + bBox.height\r\n }\r\n return [height, emptySpace]\r\n }, [this._labelRect[1], 0])\r\n }\r\n },\r\n _defaultLabelTextAlignment: function() {\r\n return this._getOption(\"rtlEnabled\", true) ? \"right\" : \"left\"\r\n },\r\n _correctLabelWidth: function(label, item, options) {\r\n var isLeftPos = \"left\" === options.horizontalAlignment;\r\n var minX = isLeftPos ? this._labelRect[0] : item[2];\r\n var maxX = isLeftPos ? item[0] : this._labelRect[2];\r\n var maxWidth = maxX - minX;\r\n if (label.getBoundingRect().width > maxWidth) {\r\n label.fit(maxWidth)\r\n }\r\n },\r\n _createLabels: function() {\r\n var that = this;\r\n var labelOptions = that._getOption(\"label\");\r\n var connectorStrategy = getConnectorStrategy(labelOptions, that._getOption(\"inverted\", true));\r\n this._labelsGroup.clear();\r\n if (!labelOptions.visible) {\r\n return\r\n }\r\n this._labels = that._items.map((function(item) {\r\n var label = new Label({\r\n renderer: that._renderer,\r\n labelsGroup: that._labelsGroup,\r\n strategy: connectorStrategy\r\n });\r\n label.setOptions(getLabelOptions(labelOptions, item.color, that._defaultLabelTextAlignment()));\r\n label.setData({\r\n item: item,\r\n value: item.value,\r\n percent: item.percent\r\n });\r\n label.draw(true);\r\n return label\r\n }));\r\n if (this._labels.length && isOutsidePosition(labelOptions.position)) {\r\n this._requestChange([\"LAYOUT\"])\r\n }\r\n }\r\n },\r\n customize: function(constructor) {\r\n constructor.prototype._proxyData.push((function(x, y) {\r\n var that = this;\r\n var data;\r\n that._labels.forEach((function(label, index) {\r\n var rect = label.getBoundingRect();\r\n if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) {\r\n var pos = isOutsidePosition(that._getOption(\"label\").position) ? \"outside\" : \"inside\";\r\n data = {\r\n id: index,\r\n type: pos + \"-label\"\r\n };\r\n return true\r\n }\r\n }));\r\n return data\r\n }));\r\n [\"label\", \"resolveLabelOverlapping\"].forEach(optionName => {\r\n constructor.addChange({\r\n code: optionName.toUpperCase(),\r\n handler: function() {\r\n this._createLabels();\r\n this._requestChange([\"LAYOUT\"])\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: optionName\r\n })\r\n })\r\n },\r\n fontFields: [\"label.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData as _eventData\r\n} from \"../../events/utils/index\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointer from \"../../events/pointer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar downPointerEventName = pointer.down;\r\nvar movePointerEventName = pointer.move;\r\nexport function Tracker(parameters) {\r\n this._initHandlers(parameters)\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n _initHandlers: function(parameters) {\r\n var document = domAdapter.getDocument();\r\n parameters.getCoords = function(e) {\r\n var data = _eventData(e);\r\n var offset = parameters.widget._renderer.getRootOffset();\r\n return [data.x - offset.left, data.y - offset.top]\r\n };\r\n parameters.root.on(clickEventName, clickHandler);\r\n parameters.root.on(downPointerEventName, downHandler);\r\n eventsEngine.on(document, downPointerEventName, downHandler);\r\n eventsEngine.on(document, movePointerEventName, moveHandler);\r\n this._disposeHandlers = function() {\r\n parameters.root.off(clickEventName, clickHandler);\r\n parameters.root.off(downPointerEventName, downHandler);\r\n eventsEngine.off(document, downPointerEventName, downHandler);\r\n eventsEngine.off(document, movePointerEventName, moveHandler)\r\n };\r\n\r\n function clickHandler(e) {\r\n processClick(e, parameters)\r\n }\r\n var isRootDown = false;\r\n\r\n function downHandler(e) {\r\n if (isRootDown) {\r\n isRootDown = false\r\n } else {\r\n if (void 0 !== parameters.getData(e)) {\r\n isRootDown = true\r\n }\r\n moveHandler(e)\r\n }\r\n }\r\n\r\n function moveHandler(e) {\r\n processHover(e, parameters);\r\n parameters.widget._getOption(\"tooltip\").enabled && processTooltip(e, parameters)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeHandlers()\r\n }\r\n};\r\n\r\nfunction processClick(e, params) {\r\n var id = params.getData(e);\r\n if (id >= 0) {\r\n params.click({\r\n node: params.getNode(id),\r\n coords: params.getCoords(e),\r\n event: e\r\n })\r\n }\r\n}\r\n\r\nfunction processHover(e, params) {\r\n var id = params.getData(e);\r\n if (id >= 0) {\r\n params.getNode(id).setHover()\r\n } else {\r\n params.widget.clearHover()\r\n }\r\n}\r\n\r\nfunction processTooltip(e, params) {\r\n var id = params.getData(e, true);\r\n var coords;\r\n if (id >= 0) {\r\n coords = _eventData(e);\r\n params.getNode(id).showTooltip([coords.x, coords.y])\r\n } else {\r\n params.widget.hideTooltip()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/funnel/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Funnel from \"./funnel\";\r\nimport {\r\n Tracker\r\n} from \"../components/tracker\";\r\nvar DATA_KEY_BASE = \"__funnel_data_\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar dataKeyModifier = 0;\r\nvar proto = Funnel.prototype;\r\nproto._eventsMap.onItemClick = {\r\n name: \"itemClick\"\r\n};\r\nproto._eventsMap.onLegendClick = {\r\n name: \"legendClick\"\r\n};\r\nvar getDataKey = function() {\r\n return DATA_KEY_BASE + dataKeyModifier++\r\n};\r\nexport var plugin = {\r\n name: \"tracker\",\r\n init: function() {\r\n var that = this;\r\n var dataKey = getDataKey();\r\n var getProxyData = function(e) {\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = Math.floor(e.pageX - rootOffset.left);\r\n var y = Math.floor(e.pageY - rootOffset.top);\r\n return that._hitTestTargets(x, y)\r\n };\r\n that._tracker = new Tracker({\r\n widget: that,\r\n root: that._renderer.root,\r\n getData: function(e, tooltipData) {\r\n var target = e.target;\r\n var data = target[dataKey];\r\n if (isDefined(data)) {\r\n return data\r\n }\r\n var proxyData = getProxyData(e);\r\n if (tooltipData && proxyData && \"inside-label\" !== proxyData.type) {\r\n return\r\n }\r\n return proxyData && proxyData.id\r\n },\r\n getNode: function(index) {\r\n return that._items[index]\r\n },\r\n click: function(e) {\r\n var proxyData = getProxyData(e.event);\r\n var dataType = proxyData && proxyData.type;\r\n var event = \"legend\" === dataType ? \"legendClick\" : \"itemClick\";\r\n that._eventTrigger(event, {\r\n item: e.node,\r\n event: e.event\r\n })\r\n }\r\n });\r\n this._dataKey = dataKey\r\n },\r\n dispose: function() {\r\n this._tracker.dispose()\r\n },\r\n extenders: {\r\n _change_TILING: function() {\r\n var dataKey = this._dataKey;\r\n this._items.forEach((function(item, index) {\r\n item.element.data(dataKey, index)\r\n }))\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/funnel/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n plugin as pluginTooltip\r\n} from \"../core/tooltip\";\r\n\r\nfunction getCoords(coords, figureCoords, renderer) {\r\n var offset = renderer.getRootOffset();\r\n return coords || figureCoords && [(figureCoords[0] + figureCoords[2]) / 2 + offset.left, (figureCoords[1] + figureCoords[5]) / 2 + offset.top] || [-1e3, -1e3]\r\n}\r\nexport var plugin = {\r\n name: \"funnel-tooltip\",\r\n init: noop,\r\n dispose: noop,\r\n extenders: {\r\n _buildNodes: function() {\r\n this.hideTooltip()\r\n },\r\n _change_TILING: function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._moveTooltip(this._items[this._tooltipIndex])\r\n }\r\n }\r\n },\r\n members: {\r\n hideTooltip: function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltipIndex = -1;\r\n this._tooltip.hide()\r\n }\r\n },\r\n _moveTooltip: function(item, coords) {\r\n var xy = getCoords(coords, item.coords, this._renderer);\r\n this._tooltip.move(xy[0], xy[1], 0)\r\n },\r\n _showTooltip: function(index, coords) {\r\n var that = this;\r\n var tooltip = that._tooltip;\r\n var item = that._items[index];\r\n if (that._tooltipIndex === index) {\r\n that._moveTooltip(item, coords);\r\n return\r\n }\r\n var callback = result => {\r\n if (void 0 === result) {\r\n return\r\n }\r\n if (!result) {\r\n tooltip.hide()\r\n }\r\n that._tooltipIndex = result ? index : -1\r\n };\r\n var xy = getCoords(coords, item.coords, this._renderer);\r\n callback(tooltip.show({\r\n value: item.value,\r\n valueText: tooltip.formatValue(item.value),\r\n percentText: tooltip.formatValue(item.percent, \"percent\"),\r\n percent: item.percent,\r\n item: item\r\n }, {\r\n x: xy[0],\r\n y: xy[1],\r\n offset: 0\r\n }, {\r\n item: item\r\n }, void 0, callback))\r\n }\r\n },\r\n customize: function(constructor) {\r\n constructor.addPlugin(pluginTooltip)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/funnel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxFunnel from \"./funnel/funnel\";\r\nimport {\r\n plugin as pluginLabel\r\n} from \"./funnel/label\";\r\nimport {\r\n plugin as pluginExport\r\n} from \"./core/export\";\r\nimport {\r\n plugin as pluginTitle\r\n} from \"./core/title\";\r\nimport {\r\n plugin as pluginLegend\r\n} from \"./components/legend\";\r\nimport {\r\n plugin as pluginTracker\r\n} from \"./funnel/tracker\";\r\nimport {\r\n plugin as pluginTooltip\r\n} from \"./funnel/tooltip\";\r\nimport {\r\n plugin as pluginLoadingIndicator\r\n} from \"./core/loading_indicator\";\r\ndxFunnel.addPlugin(pluginLabel);\r\ndxFunnel.addPlugin(pluginExport);\r\ndxFunnel.addPlugin(pluginTitle);\r\ndxFunnel.addPlugin(pluginLegend);\r\ndxFunnel.addPlugin(pluginTracker);\r\ndxFunnel.addPlugin(pluginTooltip);\r\ndxFunnel.addPlugin(pluginLoadingIndicator);\r\nexport default dxFunnel;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxFunnel from 'devextreme/viz/funnel';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAdaptiveLayoutModule, DxoExportModule, DxoItemModule, DxoBorderModule, DxoHoverStyleModule, DxoHatchingModule, DxoSelectionStyleModule, DxoLabelModule, DxoConnectorModule, DxoFontModule, DxoFormatModule, DxoLegendModule, DxoMarginModule, DxoTitleModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxoSizeModule, DxoTooltipModule, DxoShadowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxFunnel]\r\n\r\n */\r\nclass DxFunnelComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'hoverChanged', emit: 'onHoverChanged' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'legendClick', emit: 'onLegendClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'adaptiveLayoutChange' },\r\n { emit: 'algorithmChange' },\r\n { emit: 'argumentFieldChange' },\r\n { emit: 'colorFieldChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'hoverEnabledChange' },\r\n { emit: 'invertedChange' },\r\n { emit: 'itemChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'legendChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'neckHeightChange' },\r\n { emit: 'neckWidthChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'resolveLabelOverlappingChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'sortDataChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueFieldChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.adaptiveLayout]\r\n \r\n */\r\n get adaptiveLayout() {\r\n return this._getOption('adaptiveLayout');\r\n }\r\n set adaptiveLayout(value) {\r\n this._setOption('adaptiveLayout', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.algorithm]\r\n \r\n */\r\n get algorithm() {\r\n return this._getOption('algorithm');\r\n }\r\n set algorithm(value) {\r\n this._setOption('algorithm', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.argumentField]\r\n \r\n */\r\n get argumentField() {\r\n return this._getOption('argumentField');\r\n }\r\n set argumentField(value) {\r\n this._setOption('argumentField', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.colorField]\r\n \r\n */\r\n get colorField() {\r\n return this._getOption('colorField');\r\n }\r\n set colorField(value) {\r\n this._setOption('colorField', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.hoverEnabled]\r\n \r\n */\r\n get hoverEnabled() {\r\n return this._getOption('hoverEnabled');\r\n }\r\n set hoverEnabled(value) {\r\n this._setOption('hoverEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.inverted]\r\n \r\n */\r\n get inverted() {\r\n return this._getOption('inverted');\r\n }\r\n set inverted(value) {\r\n this._setOption('inverted', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.item]\r\n \r\n */\r\n get item() {\r\n return this._getOption('item');\r\n }\r\n set item(value) {\r\n this._setOption('item', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.legend]\r\n \r\n */\r\n get legend() {\r\n return this._getOption('legend');\r\n }\r\n set legend(value) {\r\n this._setOption('legend', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.neckHeight]\r\n \r\n */\r\n get neckHeight() {\r\n return this._getOption('neckHeight');\r\n }\r\n set neckHeight(value) {\r\n this._setOption('neckHeight', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.neckWidth]\r\n \r\n */\r\n get neckWidth() {\r\n return this._getOption('neckWidth');\r\n }\r\n set neckWidth(value) {\r\n this._setOption('neckWidth', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.resolveLabelOverlapping]\r\n \r\n */\r\n get resolveLabelOverlapping() {\r\n return this._getOption('resolveLabelOverlapping');\r\n }\r\n set resolveLabelOverlapping(value) {\r\n this._setOption('resolveLabelOverlapping', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.sortData]\r\n \r\n */\r\n get sortData() {\r\n return this._getOption('sortData');\r\n }\r\n set sortData(value) {\r\n this._setOption('sortData', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxFunnelOptions.valueField]\r\n \r\n */\r\n get valueField() {\r\n return this._getOption('valueField');\r\n }\r\n set valueField(value) {\r\n this._setOption('valueField', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxFunnel(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('palette', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('palette');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxFunnelComponent.ɵfac = function DxFunnelComponent_Factory(t) { return new (t || DxFunnelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxFunnelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxFunnelComponent, selectors: [[\"dx-funnel\"]], inputs: { adaptiveLayout: \"adaptiveLayout\", algorithm: \"algorithm\", argumentField: \"argumentField\", colorField: \"colorField\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", hoverEnabled: \"hoverEnabled\", inverted: \"inverted\", item: \"item\", label: \"label\", legend: \"legend\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", neckHeight: \"neckHeight\", neckWidth: \"neckWidth\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", pathModified: \"pathModified\", redrawOnResize: \"redrawOnResize\", resolveLabelOverlapping: \"resolveLabelOverlapping\", rtlEnabled: \"rtlEnabled\", selectionMode: \"selectionMode\", size: \"size\", sortData: \"sortData\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", valueField: \"valueField\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onHoverChanged: \"onHoverChanged\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onLegendClick: \"onLegendClick\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", adaptiveLayoutChange: \"adaptiveLayoutChange\", algorithmChange: \"algorithmChange\", argumentFieldChange: \"argumentFieldChange\", colorFieldChange: \"colorFieldChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", hoverEnabledChange: \"hoverEnabledChange\", invertedChange: \"invertedChange\", itemChange: \"itemChange\", labelChange: \"labelChange\", legendChange: \"legendChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", neckHeightChange: \"neckHeightChange\", neckWidthChange: \"neckWidthChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", pathModifiedChange: \"pathModifiedChange\", redrawOnResizeChange: \"redrawOnResizeChange\", resolveLabelOverlappingChange: \"resolveLabelOverlappingChange\", rtlEnabledChange: \"rtlEnabledChange\", selectionModeChange: \"selectionModeChange\", sizeChange: \"sizeChange\", sortDataChange: \"sortDataChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valueFieldChange: \"valueFieldChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxFunnelComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFunnelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-funnel',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adaptiveLayout: [{\r\n type: Input\r\n }], algorithm: [{\r\n type: Input\r\n }], argumentField: [{\r\n type: Input\r\n }], colorField: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], hoverEnabled: [{\r\n type: Input\r\n }], inverted: [{\r\n type: Input\r\n }], item: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], legend: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], neckHeight: [{\r\n type: Input\r\n }], neckWidth: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], resolveLabelOverlapping: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], sortData: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], valueField: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onHoverChanged: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onLegendClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], adaptiveLayoutChange: [{\r\n type: Output\r\n }], algorithmChange: [{\r\n type: Output\r\n }], argumentFieldChange: [{\r\n type: Output\r\n }], colorFieldChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], hoverEnabledChange: [{\r\n type: Output\r\n }], invertedChange: [{\r\n type: Output\r\n }], itemChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], legendChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], neckHeightChange: [{\r\n type: Output\r\n }], neckWidthChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], resolveLabelOverlappingChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], sortDataChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueFieldChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxFunnelModule {\r\n}\r\n/** @nocollapse */ DxFunnelModule.ɵfac = function DxFunnelModule_Factory(t) { return new (t || DxFunnelModule)(); };\r\n/** @nocollapse */ DxFunnelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxFunnelModule });\r\n/** @nocollapse */ DxFunnelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxFunnelModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxFunnelComponent\r\n ],\r\n exports: [\r\n DxFunnelComponent,\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxFunnelModule, { declarations: [DxFunnelComponent], imports: [DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxFunnelComponent, DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoItemModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoSelectionStyleModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoShadowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxFunnelComponent, DxFunnelModule };\n","/**\r\n * DevExtreme (esm/ui/gallery.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n setOuterWidth,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport {\r\n move\r\n} from \"../animation/translator\";\r\nimport devices from \"../core/devices\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport messageLocalization from \"../localization/message\";\r\nvar GALLERY_CLASS = \"dx-gallery\";\r\nvar GALLERY_INDICATOR_VISIBLE_CLASS = \"dx-gallery-indicator-visible\";\r\nvar GALLERY_WRAPPER_CLASS = GALLERY_CLASS + \"-wrapper\";\r\nvar GALLERY_LOOP_CLASS = \"dx-gallery-loop\";\r\nvar GALLERY_ITEM_CONTAINER_CLASS = GALLERY_CLASS + \"-container\";\r\nvar GALLERY_ACTIVE_CLASS = GALLERY_CLASS + \"-active\";\r\nvar GALLERY_ITEM_CLASS = GALLERY_CLASS + \"-item\";\r\nvar GALLERY_INVISIBLE_ITEM_CLASS = GALLERY_CLASS + \"-item-invisible\";\r\nvar GALLERY_LOOP_ITEM_CLASS = GALLERY_ITEM_CLASS + \"-loop\";\r\nvar GALLERY_ITEM_SELECTOR = \".\" + GALLERY_ITEM_CLASS;\r\nvar GALLERY_ITEM_SELECTED_CLASS = GALLERY_ITEM_CLASS + \"-selected\";\r\nvar GALLERY_INDICATOR_CLASS = GALLERY_CLASS + \"-indicator\";\r\nvar GALLERY_INDICATOR_ITEM_CLASS = GALLERY_INDICATOR_CLASS + \"-item\";\r\nvar GALLERY_INDICATOR_ITEM_SELECTOR = \".\" + GALLERY_INDICATOR_ITEM_CLASS;\r\nvar GALLERY_INDICATOR_ITEM_SELECTED_CLASS = GALLERY_INDICATOR_ITEM_CLASS + \"-selected\";\r\nvar ITEM_CONTENT_SELECTOR = \".dx-item-content\";\r\nvar GALLERY_IMAGE_CLASS = \"dx-gallery-item-image\";\r\nvar GALLERY_ITEM_DATA_KEY = \"dxGalleryItemData\";\r\nvar MAX_CALC_ERROR = 1;\r\nvar GalleryNavButton = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"next\",\r\n onClick: null,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var that = this;\r\n var $element = this.$element();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n $element.addClass(GALLERY_CLASS + \"-nav-button-\" + this.option(\"direction\"));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, (function(e) {\r\n that._createActionByOption(\"onClick\")({\r\n event: e\r\n })\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onClick\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar Gallery = CollectionWidget.inherit({\r\n _activeStateUnit: GALLERY_ITEM_SELECTOR,\r\n _wasAnyItemTemplateRendered: false,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n animationDuration: 400,\r\n animationEnabled: true,\r\n loop: false,\r\n swipeEnabled: true,\r\n indicatorEnabled: true,\r\n showIndicator: true,\r\n selectedIndex: 0,\r\n slideshowDelay: 0,\r\n showNavButtons: false,\r\n wrapAround: false,\r\n initialItemWidth: void 0,\r\n stretchImages: false,\r\n _itemAttributes: {\r\n role: \"option\",\r\n \"aria-label\": messageLocalization.format(\"dxGallery-itemName\")\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.option(\"loopItemFocus\", this.option(\"loop\"))\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n var $img = $(\"<img>\").addClass(GALLERY_IMAGE_CLASS);\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n $img.attr({\r\n src: data.imageSrc,\r\n alt: data.imageAlt\r\n }).appendTo($container)\r\n } else {\r\n $img.attr(\"src\", String(data)).appendTo($container)\r\n }\r\n }.bind(this), [\"imageSrc\", \"imageAlt\", \"text\", \"html\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _itemClass: function() {\r\n return GALLERY_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return GALLERY_ITEM_DATA_KEY\r\n },\r\n _actualItemWidth: function() {\r\n var isWrapAround = this.option(\"wrapAround\");\r\n if (this.option(\"stretchImages\")) {\r\n var itemPerPage = isWrapAround ? this._itemsPerPage() + 1 : this._itemsPerPage();\r\n return 1 / itemPerPage\r\n }\r\n if (isWrapAround) {\r\n return this._itemPercentWidth() * this._itemsPerPage() / (this._itemsPerPage() + 1)\r\n }\r\n return this._itemPercentWidth()\r\n },\r\n _itemPercentWidth: function() {\r\n var percentWidth;\r\n var elementWidth = getOuterWidth(this.$element());\r\n var initialItemWidth = this.option(\"initialItemWidth\");\r\n if (initialItemWidth && initialItemWidth <= elementWidth) {\r\n percentWidth = initialItemWidth / elementWidth\r\n } else {\r\n percentWidth = 1\r\n }\r\n return percentWidth\r\n },\r\n _itemsPerPage: function() {\r\n var itemsPerPage = hasWindow() ? Math.floor(1 / this._itemPercentWidth()) : 1;\r\n return Math.min(itemsPerPage, this._itemsCount())\r\n },\r\n _pagesCount: function() {\r\n return Math.ceil(this._itemsCount() / this._itemsPerPage())\r\n },\r\n _itemsCount: function() {\r\n return (this.option(\"items\") || []).length\r\n },\r\n _offsetDirection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _initMarkup: function() {\r\n this._renderWrapper();\r\n this._renderItemsContainer();\r\n this.$element().addClass(GALLERY_CLASS);\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, this.option(\"loop\"));\r\n this.callBase();\r\n var useListBoxRole = this._itemsCount() > 0;\r\n var ariaAttrs = {\r\n role: useListBoxRole ? \"listbox\" : void 0,\r\n label: \"gallery\"\r\n };\r\n this.setAria(ariaAttrs)\r\n },\r\n _render: function() {\r\n this._renderDragHandler();\r\n this._renderContainerPosition();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderNavButtons();\r\n this._renderIndicator();\r\n this._renderSelectedItem();\r\n this._renderItemVisibility();\r\n this._renderUserInteraction();\r\n this._setupSlideShow();\r\n this._reviseDimensions();\r\n this.callBase()\r\n },\r\n _dimensionChanged: function() {\r\n var selectedIndex = this.option(\"selectedIndex\") || 0;\r\n this._stopItemAnimations();\r\n this._clearCacheWidth();\r\n this._cloneDuplicateItems();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderIndicator();\r\n this._renderContainerPosition(this._calculateIndexOffset(selectedIndex), true);\r\n this._renderItemVisibility()\r\n },\r\n _renderDragHandler: function() {\r\n var eventName = addNamespace(\"dragstart\", this.NAME);\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, \"img\", (function() {\r\n return false\r\n }))\r\n },\r\n _renderWrapper: function() {\r\n if (this._$wrapper) {\r\n return\r\n }\r\n this._$wrapper = $(\"<div>\").addClass(GALLERY_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderItems: function(items) {\r\n if (!hasWindow()) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n items = items.length > selectedIndex ? items.slice(selectedIndex, selectedIndex + 1) : items.slice(0, 1)\r\n }\r\n this.callBase(items);\r\n this._loadNextPageIfNeeded()\r\n },\r\n _onItemTemplateRendered() {\r\n return () => {\r\n if (!this._wasAnyItemTemplateRendered) {\r\n this._wasAnyItemTemplateRendered = true;\r\n triggerResizeEvent(this.$element())\r\n }\r\n }\r\n },\r\n _renderItemsContainer: function() {\r\n if (this._$container) {\r\n return\r\n }\r\n this._$container = $(\"<div>\").addClass(GALLERY_ITEM_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _cloneDuplicateItems: function() {\r\n if (!this.option(\"loop\")) {\r\n return\r\n }\r\n var items = this.option(\"items\") || [];\r\n var itemsCount = items.length;\r\n var lastItemIndex = itemsCount - 1;\r\n var i;\r\n if (!itemsCount) {\r\n return\r\n }\r\n this._getLoopedItems().remove();\r\n var duplicateCount = Math.min(this._itemsPerPage(), itemsCount);\r\n var $items = this._getRealItems();\r\n var $container = this._itemContainer();\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[i], $container)\r\n }\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[lastItemIndex - i], $container)\r\n }\r\n },\r\n _cloneItemForDuplicate: function(item, $container) {\r\n if (item) {\r\n var $clonedItem = $(item).clone(false).addClass(GALLERY_LOOP_ITEM_CLASS).removeAttr(\"id\").css(\"margin\", 0).appendTo($container);\r\n this.setAria({\r\n hidden: true\r\n }, $clonedItem)\r\n }\r\n },\r\n _getRealItems: function() {\r\n var selector = \".\" + GALLERY_ITEM_CLASS + \":not(.\" + GALLERY_LOOP_ITEM_CLASS + \")\";\r\n return this.$element().find(selector)\r\n },\r\n _getLoopedItems: function() {\r\n return this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderItemSizes: function(startIndex) {\r\n var $items = this._itemElements();\r\n var itemWidth = this._actualItemWidth();\r\n if (void 0 !== startIndex) {\r\n $items = $items.slice(startIndex)\r\n }\r\n $items.each((function(index) {\r\n setOuterWidth($($items[index]), 100 * itemWidth + \"%\")\r\n }))\r\n },\r\n _renderItemPositions: function() {\r\n var itemWidth = this._actualItemWidth();\r\n var itemsCount = this._itemsCount();\r\n var itemsPerPage = this._itemsPerPage();\r\n var loopItemsCount = this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS).length;\r\n var lastItemDuplicateIndex = itemsCount + loopItemsCount - 1;\r\n var offsetRatio = this.option(\"wrapAround\") ? .5 : 0;\r\n var freeSpace = this._itemFreeSpace();\r\n var isGapBetweenImages = !!freeSpace;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var side = rtlEnabled ? \"Right\" : \"Left\";\r\n this._itemElements().each((function(index) {\r\n var realIndex = index;\r\n var isLoopItem = $(this).hasClass(GALLERY_LOOP_ITEM_CLASS);\r\n if (index > itemsCount + itemsPerPage - 1) {\r\n realIndex = lastItemDuplicateIndex - realIndex - itemsPerPage\r\n }\r\n if (!isLoopItem && 0 !== realIndex) {\r\n if (isGapBetweenImages) {\r\n $(this).css(\"margin\" + side, 100 * freeSpace + \"%\")\r\n }\r\n return\r\n }\r\n var itemPosition = itemWidth * (realIndex + offsetRatio) + freeSpace * (realIndex + 1 - offsetRatio);\r\n var property = isLoopItem ? side.toLowerCase() : \"margin\" + side;\r\n $(this).css(property, 100 * itemPosition + \"%\")\r\n }));\r\n this._relocateItems(selectedIndex, selectedIndex, true)\r\n },\r\n _itemFreeSpace: function() {\r\n var itemsPerPage = this._itemsPerPage();\r\n if (this.option(\"wrapAround\")) {\r\n itemsPerPage += 1\r\n }\r\n return (1 - this._actualItemWidth() * itemsPerPage) / (itemsPerPage + 1)\r\n },\r\n _renderContainerPosition: function(offset, hideItems, animate) {\r\n this._releaseInvisibleItems();\r\n offset = offset || 0;\r\n var that = this;\r\n var itemWidth = this._actualItemWidth();\r\n var targetIndex = offset;\r\n var targetPosition = this._offsetDirection() * targetIndex * (itemWidth + this._itemFreeSpace());\r\n var positionReady;\r\n if (isDefined(this._animationOverride)) {\r\n animate = this._animationOverride;\r\n delete this._animationOverride\r\n }\r\n if (animate) {\r\n that._startSwipe();\r\n positionReady = that._animate(targetPosition).done(that._endSwipe.bind(that))\r\n } else {\r\n move(this._$container, {\r\n left: targetPosition * this._elementWidth(),\r\n top: 0\r\n });\r\n positionReady = (new Deferred).resolveWith(that)\r\n }\r\n positionReady.done((function() {\r\n this._deferredAnimate && that._deferredAnimate.resolveWith(that);\r\n hideItems && this._renderItemVisibility()\r\n }));\r\n return positionReady.promise()\r\n },\r\n _startSwipe: function() {\r\n this.$element().addClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _endSwipe: function() {\r\n this.$element().removeClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _animate: function(targetPosition, extraConfig) {\r\n var that = this;\r\n var $container = this._$container;\r\n var animationComplete = new Deferred;\r\n fx.animate(this._$container, extend({\r\n type: \"slide\",\r\n to: {\r\n left: targetPosition * this._elementWidth()\r\n },\r\n duration: that.option(\"animationDuration\"),\r\n complete: function() {\r\n if (that._needMoveContainerForward()) {\r\n move($container, {\r\n left: 0,\r\n top: 0\r\n })\r\n }\r\n if (that._needMoveContainerBack()) {\r\n move($container, {\r\n left: that._maxContainerOffset() * that._elementWidth(),\r\n top: 0\r\n })\r\n }\r\n animationComplete.resolveWith(that)\r\n }\r\n }, extraConfig || {}));\r\n return animationComplete\r\n },\r\n _needMoveContainerForward: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = -this._maxItemWidth() * this._elementWidth() * this._itemsCount();\r\n return expectedPosition <= actualPosition + MAX_CALC_ERROR\r\n },\r\n _needMoveContainerBack: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = this._actualItemWidth() * this._elementWidth();\r\n return expectedPosition >= actualPosition - MAX_CALC_ERROR\r\n },\r\n _maxContainerOffset: function() {\r\n return -this._maxItemWidth() * (this._itemsCount() - this._itemsPerPage()) * this._offsetDirection()\r\n },\r\n _maxItemWidth: function() {\r\n return this._actualItemWidth() + this._itemFreeSpace()\r\n },\r\n _reviseDimensions: function() {\r\n var $firstItem = this._itemElements().first().find(ITEM_CONTENT_SELECTOR);\r\n if (!$firstItem || $firstItem.is(\":hidden\")) {\r\n return\r\n }\r\n if (!this.option(\"height\")) {\r\n this.option(\"height\", getOuterHeight($firstItem))\r\n }\r\n if (!this.option(\"width\")) {\r\n this.option(\"width\", getOuterWidth($firstItem))\r\n }\r\n this._dimensionChanged()\r\n },\r\n _renderIndicator: function() {\r\n var {\r\n showIndicator: showIndicator\r\n } = this.option();\r\n this._cleanIndicators();\r\n this.$element().toggleClass(GALLERY_INDICATOR_VISIBLE_CLASS, showIndicator);\r\n if (!showIndicator) {\r\n return\r\n }\r\n var indicator = this._$indicator = $(\"<div>\").addClass(GALLERY_INDICATOR_CLASS).appendTo(this._$wrapper);\r\n var isIndicatorEnabled = this.option(\"indicatorEnabled\");\r\n for (var i = 0; i < this._pagesCount(); i++) {\r\n var $indicatorItem = $(\"<div>\").addClass(GALLERY_INDICATOR_ITEM_CLASS).appendTo(indicator);\r\n if (isIndicatorEnabled) {\r\n this._attachIndicatorClickHandler($indicatorItem, i)\r\n }\r\n }\r\n this._renderSelectedPageIndicator()\r\n },\r\n _attachIndicatorClickHandler: function($element, index) {\r\n eventsEngine.on($element, addNamespace(clickEventName, this.NAME), function(event) {\r\n this._indicatorSelectHandler(event, index)\r\n }.bind(this))\r\n },\r\n _detachIndicatorClickHandler: function($element) {\r\n eventsEngine.off($element, addNamespace(clickEventName, this.NAME))\r\n },\r\n _toggleIndicatorInteraction: function(clickEnabled) {\r\n var _this$_$indicator;\r\n var $indicatorItems = (null === (_this$_$indicator = this._$indicator) || void 0 === _this$_$indicator ? void 0 : _this$_$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR)) || [];\r\n if ($indicatorItems.length) {\r\n $indicatorItems.each(function(index, element) {\r\n clickEnabled ? this._attachIndicatorClickHandler($(element), index) : this._detachIndicatorClickHandler($(element))\r\n }.bind(this))\r\n }\r\n },\r\n _cleanIndicators: function() {\r\n if (this._$indicator) {\r\n this._$indicator.remove()\r\n }\r\n },\r\n _renderSelectedItem: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n this._itemElements().removeClass(GALLERY_ITEM_SELECTED_CLASS).eq(selectedIndex).addClass(GALLERY_ITEM_SELECTED_CLASS)\r\n },\r\n _renderItemVisibility: function() {\r\n if (this.option(\"initialItemWidth\") || this.option(\"wrapAround\")) {\r\n this._releaseInvisibleItems();\r\n return\r\n }\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n this._itemElements().each((index, item) => {\r\n if (selectedIndex !== index) {\r\n $(item).find(ITEM_CONTENT_SELECTOR).addClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n }\r\n })\r\n },\r\n _releaseInvisibleItems: function() {\r\n this._itemElements().find(ITEM_CONTENT_SELECTOR).removeClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n },\r\n _renderSelectedPageIndicator: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var itemIndex = this.option(\"selectedIndex\");\r\n var lastIndex = this._pagesCount() - 1;\r\n var pageIndex = Math.ceil(itemIndex / this._itemsPerPage());\r\n pageIndex = Math.min(lastIndex, pageIndex);\r\n this._$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR).removeClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS).eq(pageIndex).addClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS)\r\n },\r\n _renderUserInteraction: function() {\r\n var rootElement = this.$element();\r\n var swipeEnabled = this.option(\"swipeEnabled\") && this._itemsCount() > 1;\r\n this._createComponent(rootElement, Swipeable, {\r\n disabled: this.option(\"disabled\") || !swipeEnabled,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._elementWidth.bind(this)\r\n })\r\n },\r\n _indicatorSelectHandler: function(e, indicatorIndex) {\r\n if (!this.option(\"indicatorEnabled\")) {\r\n return\r\n }\r\n var itemIndex = this._fitPaginatedIndex(indicatorIndex * this._itemsPerPage());\r\n this._needLongMove = true;\r\n this.option(\"selectedIndex\", itemIndex);\r\n this._loadNextPageIfNeeded(itemIndex)\r\n },\r\n _renderNavButtons: function() {\r\n var that = this;\r\n if (!that.option(\"showNavButtons\")) {\r\n that._cleanNavButtons();\r\n return\r\n }\r\n that._prevNavButton = $(\"<div>\").appendTo(this._$wrapper);\r\n that._createComponent(that._prevNavButton, GalleryNavButton, {\r\n direction: \"prev\",\r\n onClick: function() {\r\n that._prevPage()\r\n }\r\n });\r\n that._nextNavButton = $(\"<div>\").appendTo(this._$wrapper);\r\n that._createComponent(that._nextNavButton, GalleryNavButton, {\r\n direction: \"next\",\r\n onClick: function() {\r\n that._nextPage()\r\n }\r\n });\r\n this._renderNavButtonsVisibility()\r\n },\r\n _prevPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") - visiblePageSize;\r\n if (newSelectedIndex === -visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex))\r\n }\r\n },\r\n _nextPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") + visiblePageSize;\r\n if (newSelectedIndex === visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex)).done(this._loadNextPageIfNeeded)\r\n }\r\n },\r\n _loadNextPageIfNeeded: function(selectedIndex) {\r\n selectedIndex = void 0 === selectedIndex ? this.option(\"selectedIndex\") : selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate() && this._shouldLoadNextPage(selectedIndex) && !this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage().done(function() {\r\n this._renderIndicator();\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility();\r\n this._renderItemSizes(selectedIndex)\r\n }.bind(this))\r\n }\r\n },\r\n _shouldLoadNextPage: function(selectedIndex) {\r\n var visiblePageSize = this._itemsPerPage();\r\n return selectedIndex + 2 * visiblePageSize > this.option(\"items\").length\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _fitPaginatedIndex: function(itemIndex) {\r\n var itemsPerPage = this._itemsPerPage();\r\n var restItemsCount = itemIndex < 0 ? itemsPerPage + itemIndex : this._itemsCount() - itemIndex;\r\n if (itemIndex > this._itemsCount() - 1) {\r\n itemIndex = 0;\r\n this._goToGhostItem = true\r\n } else if (restItemsCount < itemsPerPage && restItemsCount > 0) {\r\n if (itemIndex > 0) {\r\n itemIndex -= itemsPerPage - restItemsCount\r\n } else {\r\n itemIndex += itemsPerPage - restItemsCount\r\n }\r\n }\r\n return itemIndex\r\n },\r\n _cleanNavButtons: function() {\r\n if (this._prevNavButton) {\r\n this._prevNavButton.remove();\r\n delete this._prevNavButton\r\n }\r\n if (this._nextNavButton) {\r\n this._nextNavButton.remove();\r\n delete this._nextNavButton\r\n }\r\n },\r\n _renderNavButtonsVisibility: function() {\r\n if (!this.option(\"showNavButtons\") || !this._prevNavButton || !this._nextNavButton) {\r\n return\r\n }\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var itemsCount = this._itemsCount();\r\n this._prevNavButton.show();\r\n this._nextNavButton.show();\r\n if (0 === itemsCount) {\r\n this._prevNavButton.hide();\r\n this._nextNavButton.hide()\r\n }\r\n if (loop) {\r\n return\r\n }\r\n var nextHidden = selectedIndex === itemsCount - this._itemsPerPage();\r\n var prevHidden = itemsCount < 2 || 0 === selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate()) {\r\n nextHidden = nextHidden && this._isLastPage()\r\n } else {\r\n nextHidden = nextHidden || itemsCount < 2\r\n }\r\n if (prevHidden) {\r\n this._prevNavButton.hide()\r\n }\r\n if (nextHidden) {\r\n this._nextNavButton.hide()\r\n }\r\n },\r\n _setupSlideShow: function() {\r\n var that = this;\r\n var slideshowDelay = that.option(\"slideshowDelay\");\r\n clearTimeout(that._slideshowTimer);\r\n if (!slideshowDelay) {\r\n return\r\n }\r\n that._slideshowTimer = setTimeout((function() {\r\n if (that._userInteraction) {\r\n that._setupSlideShow();\r\n return\r\n }\r\n that.nextItem(true).done(that._setupSlideShow)\r\n }), slideshowDelay)\r\n },\r\n _elementWidth: function() {\r\n if (!this._cacheElementWidth) {\r\n this._cacheElementWidth = getWidth(this.$element())\r\n }\r\n return this._cacheElementWidth\r\n },\r\n _clearCacheWidth: function() {\r\n delete this._cacheElementWidth\r\n },\r\n _swipeStartHandler: function(e) {\r\n this._releaseInvisibleItems();\r\n this._clearCacheWidth();\r\n this._elementWidth();\r\n var itemsCount = this._itemsCount();\r\n if (!itemsCount) {\r\n e.event.cancel = true;\r\n return\r\n }\r\n this._stopItemAnimations();\r\n this._startSwipe();\r\n this._userInteraction = true;\r\n if (!this.option(\"loop\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var startOffset = itemsCount - selectedIndex - this._itemsPerPage();\r\n var endOffset = selectedIndex;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset\r\n }\r\n },\r\n _stopItemAnimations: function() {\r\n fx.stop(this._$container, true)\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var wrapAroundRatio = this.option(\"wrapAround\") ? 1 : 0;\r\n var offset = this._offsetDirection() * e.event.offset * (this._itemsPerPage() + wrapAroundRatio) - this.option(\"selectedIndex\");\r\n if (offset < 0) {\r\n this._loadNextPageIfNeeded(Math.ceil(Math.abs(offset)))\r\n }\r\n this._renderContainerPosition(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset * this._offsetDirection() * this._itemsPerPage();\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._fitIndex(selectedIndex - targetOffset);\r\n var paginatedIndex = this._fitPaginatedIndex(newIndex);\r\n if (Math.abs(targetOffset) < this._itemsPerPage()) {\r\n this._relocateItems(selectedIndex);\r\n return\r\n }\r\n if (this._itemsPerPage() === this._itemsCount()) {\r\n if (targetOffset > 0) {\r\n this._relocateItems(-targetOffset)\r\n } else {\r\n this._relocateItems(0)\r\n }\r\n return\r\n }\r\n this.option(\"selectedIndex\", paginatedIndex)\r\n },\r\n _setFocusOnSelect: function() {\r\n this._userInteraction = true;\r\n var selectedItem = this._getRealItems().filter(\".\" + GALLERY_ITEM_SELECTED_CLASS);\r\n this.option(\"focusedElement\", getPublicElement(selectedItem));\r\n this._userInteraction = false\r\n },\r\n _flipIndex: function(index) {\r\n var itemsCount = this._itemsCount();\r\n index %= itemsCount;\r\n if (index > (itemsCount + 1) / 2) {\r\n index -= itemsCount\r\n }\r\n if (index < -(itemsCount - 1) / 2) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _fitIndex: function(index) {\r\n if (!this.option(\"loop\")) {\r\n return index\r\n }\r\n var itemsCount = this._itemsCount();\r\n if (index >= itemsCount || index < 0) {\r\n this._goToGhostItem = true\r\n }\r\n if (index >= itemsCount) {\r\n index = itemsCount - index\r\n }\r\n index %= itemsCount;\r\n if (index < 0) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._cleanIndicators();\r\n this._cleanNavButtons()\r\n },\r\n _dispose: function() {\r\n this._wasAnyItemTemplateRendered = null;\r\n clearTimeout(this._slideshowTimer);\r\n this.callBase()\r\n },\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n this._stopItemAnimations();\r\n this._renderNavButtonsVisibility();\r\n this._renderSelectedItem();\r\n this._relocateItems(addedSelection[0], removedSelection[0]);\r\n this._renderSelectedPageIndicator()\r\n },\r\n _relocateItems: function(newIndex, prevIndex, withoutAnimation) {\r\n if (void 0 === prevIndex) {\r\n prevIndex = newIndex\r\n }\r\n var indexOffset = this._calculateIndexOffset(newIndex, prevIndex);\r\n this._renderContainerPosition(indexOffset, true, this.option(\"animationEnabled\") && !withoutAnimation).done((function() {\r\n this._setFocusOnSelect();\r\n this._userInteraction = false;\r\n this._setupSlideShow()\r\n }))\r\n },\r\n _focusInHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _selectFocusedItem: noop,\r\n _moveFocus: function() {\r\n this._stopItemAnimations();\r\n this.callBase.apply(this, arguments);\r\n var index = this.itemElements().index($(this.option(\"focusedElement\")));\r\n this.goToItem(index, this.option(\"animationEnabled\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._reviseDimensions()\r\n }\r\n },\r\n _calculateIndexOffset: function(newIndex, lastIndex) {\r\n if (void 0 === lastIndex) {\r\n lastIndex = newIndex\r\n }\r\n var indexOffset = lastIndex - newIndex;\r\n if (this.option(\"loop\") && !this._needLongMove && this._goToGhostItem) {\r\n if (this._isItemOnFirstPage(newIndex) && this._isItemOnLastPage(lastIndex)) {\r\n indexOffset = -this._itemsPerPage()\r\n } else if (this._isItemOnLastPage(newIndex) && this._isItemOnFirstPage(lastIndex)) {\r\n indexOffset = this._itemsPerPage()\r\n }\r\n this._goToGhostItem = false\r\n }\r\n this._needLongMove = false;\r\n indexOffset -= lastIndex;\r\n return indexOffset\r\n },\r\n _isItemOnLastPage: function(itemIndex) {\r\n return itemIndex >= this._itemsCount() - this._itemsPerPage()\r\n },\r\n _isItemOnFirstPage: function(itemIndex) {\r\n return itemIndex <= this._itemsPerPage()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"initialItemWidth\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"animationDuration\":\r\n this._renderNavButtonsVisibility();\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"loop\":\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, args.value);\r\n this.option(\"loopItemFocus\", args.value);\r\n if (hasWindow()) {\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility()\r\n }\r\n break;\r\n case \"showIndicator\":\r\n this._renderIndicator();\r\n break;\r\n case \"showNavButtons\":\r\n this._renderNavButtons();\r\n break;\r\n case \"slideshowDelay\":\r\n this._setupSlideShow();\r\n break;\r\n case \"wrapAround\":\r\n case \"stretchImages\":\r\n if (hasWindow()) {\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderItemVisibility()\r\n }\r\n break;\r\n case \"swipeEnabled\":\r\n this._renderUserInteraction();\r\n break;\r\n case \"indicatorEnabled\":\r\n this._toggleIndicatorInteraction(args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n goToItem: function(itemIndex, animation) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var itemsCount = this._itemsCount();\r\n if (void 0 !== animation) {\r\n this._animationOverride = animation\r\n }\r\n itemIndex = this._fitIndex(itemIndex);\r\n this._deferredAnimate = new Deferred;\r\n if (itemIndex > itemsCount - 1 || itemIndex < 0 || selectedIndex === itemIndex) {\r\n return this._deferredAnimate.resolveWith(this).promise()\r\n }\r\n this.option(\"selectedIndex\", itemIndex);\r\n return this._deferredAnimate.promise()\r\n },\r\n prevItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") - 1, animation)\r\n },\r\n nextItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") + 1, animation)\r\n }\r\n});\r\nregisterComponent(\"dxGallery\", Gallery);\r\nexport default Gallery;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxGallery from 'devextreme/ui/gallery';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxGallery]\r\n\r\n */\r\nclass DxGalleryComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'animationDurationChange' },\r\n { emit: 'animationEnabledChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'indicatorEnabledChange' },\r\n { emit: 'initialItemWidthChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'loopChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'showIndicatorChange' },\r\n { emit: 'showNavButtonsChange' },\r\n { emit: 'slideshowDelayChange' },\r\n { emit: 'stretchImagesChange' },\r\n { emit: 'swipeEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapAroundChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.animationDuration]\r\n \r\n */\r\n get animationDuration() {\r\n return this._getOption('animationDuration');\r\n }\r\n set animationDuration(value) {\r\n this._setOption('animationDuration', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.animationEnabled]\r\n \r\n */\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.indicatorEnabled]\r\n \r\n */\r\n get indicatorEnabled() {\r\n return this._getOption('indicatorEnabled');\r\n }\r\n set indicatorEnabled(value) {\r\n this._setOption('indicatorEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.initialItemWidth]\r\n \r\n */\r\n get initialItemWidth() {\r\n return this._getOption('initialItemWidth');\r\n }\r\n set initialItemWidth(value) {\r\n this._setOption('initialItemWidth', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.loop]\r\n \r\n */\r\n get loop() {\r\n return this._getOption('loop');\r\n }\r\n set loop(value) {\r\n this._setOption('loop', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.selectedIndex]\r\n \r\n */\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.showIndicator]\r\n \r\n */\r\n get showIndicator() {\r\n return this._getOption('showIndicator');\r\n }\r\n set showIndicator(value) {\r\n this._setOption('showIndicator', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.showNavButtons]\r\n \r\n */\r\n get showNavButtons() {\r\n return this._getOption('showNavButtons');\r\n }\r\n set showNavButtons(value) {\r\n this._setOption('showNavButtons', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.slideshowDelay]\r\n \r\n */\r\n get slideshowDelay() {\r\n return this._getOption('slideshowDelay');\r\n }\r\n set slideshowDelay(value) {\r\n this._setOption('slideshowDelay', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.stretchImages]\r\n \r\n */\r\n get stretchImages() {\r\n return this._getOption('stretchImages');\r\n }\r\n set stretchImages(value) {\r\n this._setOption('stretchImages', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.swipeEnabled]\r\n \r\n */\r\n get swipeEnabled() {\r\n return this._getOption('swipeEnabled');\r\n }\r\n set swipeEnabled(value) {\r\n this._setOption('swipeEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxGalleryOptions.wrapAround]\r\n \r\n */\r\n get wrapAround() {\r\n return this._getOption('wrapAround');\r\n }\r\n set wrapAround(value) {\r\n this._setOption('wrapAround', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxGallery(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxGalleryComponent.ɵfac = function DxGalleryComponent_Factory(t) { return new (t || DxGalleryComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxGalleryComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxGalleryComponent, selectors: [[\"dx-gallery\"]], contentQueries: function DxGalleryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", animationDuration: \"animationDuration\", animationEnabled: \"animationEnabled\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", indicatorEnabled: \"indicatorEnabled\", initialItemWidth: \"initialItemWidth\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", loop: \"loop\", noDataText: \"noDataText\", rtlEnabled: \"rtlEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", showIndicator: \"showIndicator\", showNavButtons: \"showNavButtons\", slideshowDelay: \"slideshowDelay\", stretchImages: \"stretchImages\", swipeEnabled: \"swipeEnabled\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\", wrapAround: \"wrapAround\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", animationDurationChange: \"animationDurationChange\", animationEnabledChange: \"animationEnabledChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", indicatorEnabledChange: \"indicatorEnabledChange\", initialItemWidthChange: \"initialItemWidthChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", loopChange: \"loopChange\", noDataTextChange: \"noDataTextChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\", showIndicatorChange: \"showIndicatorChange\", showNavButtonsChange: \"showNavButtonsChange\", slideshowDelayChange: \"slideshowDelayChange\", stretchImagesChange: \"stretchImagesChange\", swipeEnabledChange: \"swipeEnabledChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapAroundChange: \"wrapAroundChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxGalleryComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxGalleryComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-gallery',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], animationDuration: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], indicatorEnabled: [{\r\n type: Input\r\n }], initialItemWidth: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], loop: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedIndex: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], showIndicator: [{\r\n type: Input\r\n }], showNavButtons: [{\r\n type: Input\r\n }], slideshowDelay: [{\r\n type: Input\r\n }], stretchImages: [{\r\n type: Input\r\n }], swipeEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapAround: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], animationDurationChange: [{\r\n type: Output\r\n }], animationEnabledChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], indicatorEnabledChange: [{\r\n type: Output\r\n }], initialItemWidthChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], loopChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], showIndicatorChange: [{\r\n type: Output\r\n }], showNavButtonsChange: [{\r\n type: Output\r\n }], slideshowDelayChange: [{\r\n type: Output\r\n }], stretchImagesChange: [{\r\n type: Output\r\n }], swipeEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapAroundChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxGalleryModule {\r\n}\r\n/** @nocollapse */ DxGalleryModule.ɵfac = function DxGalleryModule_Factory(t) { return new (t || DxGalleryModule)(); };\r\n/** @nocollapse */ DxGalleryModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxGalleryModule });\r\n/** @nocollapse */ DxGalleryModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxGalleryModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxGalleryComponent\r\n ],\r\n exports: [\r\n DxGalleryComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxGalleryModule, { declarations: [DxGalleryComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxGalleryComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxGalleryComponent, DxGalleryModule };\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.model_changes_listener.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_DEPENDENCIES = \"dependencies\";\r\nvar GANTT_RESOURCES = \"resources\";\r\nvar GANTT_RESOURCE_ASSIGNMENTS = \"resourceAssignments\";\r\nexport var ModelChangesListener = {\r\n create: gantt => ({\r\n NotifyTaskCreated: (task, callback, errorCallback) => {\r\n gantt._onRecordInserted(GANTT_TASKS, task, callback)\r\n },\r\n NotifyTaskRemoved: (taskId, errorCallback, task) => {\r\n gantt._onRecordRemoved(GANTT_TASKS, taskId, task)\r\n },\r\n NotifyTaskUpdated: (taskId, newValues, errorCallback) => {\r\n gantt._onRecordUpdated(GANTT_TASKS, taskId, newValues)\r\n },\r\n NotifyParentTaskUpdated: (task, errorCallback) => {\r\n gantt._onParentTaskUpdated(task)\r\n },\r\n NotifyDependencyInserted: (dependency, callback, errorCallback) => {\r\n gantt._onRecordInserted(GANTT_DEPENDENCIES, dependency, callback)\r\n },\r\n NotifyDependencyRemoved: (dependencyId, errorCallback, dependency) => {\r\n gantt._onRecordRemoved(GANTT_DEPENDENCIES, dependencyId, dependency)\r\n },\r\n NotifyResourceCreated: (resource, callback, errorCallback) => {\r\n gantt._onRecordInserted(GANTT_RESOURCES, resource, callback)\r\n },\r\n NotifyResourceRemoved: (resourceId, errorCallback, resource) => {\r\n gantt._onRecordRemoved(GANTT_RESOURCES, resourceId, resource)\r\n },\r\n NotifyResourceAssigned: (assignment, callback, errorCallback) => {\r\n gantt._onRecordInserted(GANTT_RESOURCE_ASSIGNMENTS, assignment, callback)\r\n },\r\n NotifyResourceUnassigned: (assignmentId, errorCallback, assignment) => {\r\n gantt._onRecordRemoved(GANTT_RESOURCE_ASSIGNMENTS, assignmentId, assignment)\r\n },\r\n NotifyParentDataRecalculated: data => {\r\n gantt._onParentTasksRecalculated(data)\r\n },\r\n NotifyTaskCreating: args => {\r\n gantt._actionsManager.raiseInsertingAction(GANTT_TASKS, args)\r\n },\r\n NotifyTaskRemoving: args => {\r\n gantt._actionsManager.raiseDeletingAction(GANTT_TASKS, args)\r\n },\r\n NotifyTaskUpdating: args => {\r\n gantt._actionsManager.raiseUpdatingAction(GANTT_TASKS, args)\r\n },\r\n NotifyTaskMoving: args => {\r\n gantt._actionsManager.raiseUpdatingAction(GANTT_TASKS, args, gantt._actionsManager.getTaskMovingAction())\r\n },\r\n NotifyTaskEditDialogShowing: args => {\r\n gantt._actionsManager.raiseTaskEditDialogShowingAction(args)\r\n },\r\n NotifyResourceManagerDialogShowing: args => {\r\n gantt._actionsManager.raiseResourceManagerDialogShowingAction(args)\r\n },\r\n NotifyDependencyInserting: args => {\r\n gantt._actionsManager.raiseInsertingAction(GANTT_DEPENDENCIES, args)\r\n },\r\n NotifyDependencyRemoving: args => {\r\n gantt._actionsManager.raiseDeletingAction(GANTT_DEPENDENCIES, args)\r\n },\r\n NotifyResourceCreating: args => {\r\n gantt._actionsManager.raiseInsertingAction(GANTT_RESOURCES, args)\r\n },\r\n NotifyResourceRemoving: args => {\r\n gantt._actionsManager.raiseDeletingAction(GANTT_RESOURCES, args)\r\n },\r\n NotifyResourceAssigning: args => {\r\n gantt._actionsManager.raiseInsertingAction(GANTT_RESOURCE_ASSIGNMENTS, args)\r\n },\r\n NotifyResourceUnassigning: args => {\r\n gantt._actionsManager.raiseDeletingAction(GANTT_RESOURCE_ASSIGNMENTS, args)\r\n },\r\n NotifyScaleCellPrepared: args => {\r\n gantt._actionsManager.raiseScaleCellPreparedAction(args)\r\n },\r\n NotifyGanttViewUpdated: () => {\r\n gantt._onGanttViewCoreUpdated()\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.data.option.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Component\r\n} from \"../../core/component\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nclass DataOption extends Component {\r\n constructor(optionName, getLoadPanel, dataSourceChangedCallback) {\r\n super();\r\n this._optionName = optionName;\r\n this._getLoadPanel = getLoadPanel;\r\n this._dataSourceChangedCallback = dataSourceChangedCallback\r\n }\r\n insert(data, callback, errorCallback) {\r\n this._showLoadPanel();\r\n this._getStore().insert(data).done(response => {\r\n if (callback) {\r\n callback(response)\r\n }\r\n this._hideLoadPanel()\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n this._hideLoadPanel()\r\n })\r\n }\r\n update(key, data, callback, errorCallback) {\r\n this._showLoadPanel();\r\n this._getStore().update(key, data).done((data, key) => {\r\n if (callback) {\r\n callback(data, key)\r\n }\r\n this._hideLoadPanel()\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n this._hideLoadPanel()\r\n })\r\n }\r\n remove(key, callback, errorCallback) {\r\n this._showLoadPanel();\r\n this._getStore().remove(key).done(key => {\r\n if (callback) {\r\n callback(key)\r\n }\r\n this._hideLoadPanel()\r\n }).fail(error => {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n this._hideLoadPanel()\r\n })\r\n }\r\n _dataSourceChangedHandler(newItems, e) {\r\n this._dataSourceChangedCallback(this._optionName, newItems)\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this._showLoadPanel()\r\n } else {\r\n this._hideLoadPanel()\r\n }\r\n }\r\n _showLoadPanel() {\r\n var _this$_getLoadPanel;\r\n null === (_this$_getLoadPanel = this._getLoadPanel()) || void 0 === _this$_getLoadPanel ? void 0 : _this$_getLoadPanel.show()\r\n }\r\n _hideLoadPanel() {\r\n var _this$_getLoadPanel2;\r\n null === (_this$_getLoadPanel2 = this._getLoadPanel()) || void 0 === _this$_getLoadPanel2 ? void 0 : _this$_getLoadPanel2.hide()\r\n }\r\n _getStore() {\r\n return this._dataSource.store()\r\n }\r\n _getItems() {\r\n return this._getStore()._array || this._dataSource.items()\r\n }\r\n _reloadDataSource() {\r\n return this._dataSource.load()\r\n }\r\n dispose() {\r\n this._disposeDataSource()\r\n }\r\n _optionChanged(args) {\r\n args.name\r\n }\r\n}\r\nDataOption.include(DataHelperMixin);\r\nexport default DataOption;\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.actions.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar Actions = {\r\n onContextMenuPreparing: \"onContextMenuPreparing\",\r\n onCustomCommand: \"onCustomCommand\",\r\n onDependencyDeleted: \"onDependencyDeleted\",\r\n onDependencyDeleting: \"onDependencyDeleting\",\r\n onDependencyInserted: \"onDependencyInserted\",\r\n onDependencyInserting: \"onDependencyInserting\",\r\n onResourceAssigned: \"onResourceAssigned\",\r\n onResourceAssigning: \"onResourceAssigning\",\r\n onResourceDeleted: \"onResourceDeleted\",\r\n onResourceDeleting: \"onResourceDeleting\",\r\n onResourceInserted: \"onResourceInserted\",\r\n onResourceInserting: \"onResourceInserting\",\r\n onResourceManagerDialogShowing: \"onResourceManagerDialogShowing\",\r\n onResourceUnassigned: \"onResourceUnassigned\",\r\n onResourceUnassigning: \"onResourceUnassigning\",\r\n onSelectionChanged: \"onSelectionChanged\",\r\n onTaskClick: \"onTaskClick\",\r\n onTaskDblClick: \"onTaskDblClick\",\r\n onTaskDeleted: \"onTaskDeleted\",\r\n onTaskDeleting: \"onTaskDeleting\",\r\n onTaskEditDialogShowing: \"onTaskEditDialogShowing\",\r\n onTaskInserted: \"onTaskInserted\",\r\n onTaskInserting: \"onTaskInserting\",\r\n onTaskMoving: \"onTaskMoving\",\r\n onTaskUpdated: \"onTaskUpdated\",\r\n onTaskUpdating: \"onTaskUpdating\",\r\n onScaleCellPrepared: \"onScaleCellPrepared\"\r\n};\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_DEPENDENCIES = \"dependencies\";\r\nvar GANTT_RESOURCES = \"resources\";\r\nvar GANTT_RESOURCE_ASSIGNMENTS = \"resourceAssignments\";\r\nvar GANTT_NEW_TASK_CACHE_KEY = \"gantt_new_task_key\";\r\nexport class GanttActionsManager {\r\n constructor(gantt) {\r\n this._gantt = gantt;\r\n this._mappingHelper = gantt._mappingHelper;\r\n this._customFieldsManager = gantt._customFieldsManager\r\n }\r\n _createActionByOption(optionName) {\r\n return this._gantt._createActionByOption(optionName)\r\n }\r\n _getTaskData(key) {\r\n return this._gantt.getTaskData(key)\r\n }\r\n _convertCoreToMappedData(optionName, coreData) {\r\n return this._mappingHelper.convertCoreToMappedData(optionName, coreData)\r\n }\r\n _convertMappedToCoreData(optionName, mappedData) {\r\n return this._mappingHelper.convertMappedToCoreData(optionName, mappedData)\r\n }\r\n _convertMappedToCoreFields(optionName, fields) {\r\n return this._mappingHelper.convertMappedToCoreFields(optionName, fields)\r\n }\r\n _convertCoreToMappedFields(optionName, fields) {\r\n return this._mappingHelper.convertCoreToMappedFields(optionName, fields)\r\n }\r\n _saveCustomFieldsDataToCache(key, data) {\r\n var forceUpdateOnKeyExpire = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var isCustomFieldsUpdateOnly = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n this._customFieldsManager.saveCustomFieldsDataToCache(key, data, forceUpdateOnKeyExpire, isCustomFieldsUpdateOnly)\r\n }\r\n createTaskDblClickAction() {\r\n this._taskDblClickAction = this._createActionByOption(Actions.onTaskDblClick)\r\n }\r\n taskDblClickAction(args) {\r\n if (!this._taskDblClickAction) {\r\n this.createTaskDblClickAction()\r\n }\r\n this._taskDblClickAction(args)\r\n }\r\n raiseTaskDblClickAction(key, event) {\r\n var args = {\r\n cancel: false,\r\n data: this._getTaskData(key),\r\n event: event,\r\n key: key\r\n };\r\n this.taskDblClickAction(args);\r\n return !args.cancel\r\n }\r\n createTaskClickAction() {\r\n this._taskClickAction = this._createActionByOption(Actions.onTaskClick)\r\n }\r\n taskClickAction(args) {\r\n if (!this._taskClickAction) {\r\n this.createTaskClickAction()\r\n }\r\n this._taskClickAction(args)\r\n }\r\n raiseTaskClickAction(key, event) {\r\n var args = {\r\n key: key,\r\n event: event,\r\n data: this._getTaskData(key)\r\n };\r\n this.taskClickAction(args)\r\n }\r\n createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(Actions.onSelectionChanged)\r\n }\r\n selectionChangedAction(args) {\r\n if (!this._selectionChangedAction) {\r\n this.createSelectionChangedAction()\r\n }\r\n this._selectionChangedAction(args)\r\n }\r\n raiseSelectionChangedAction(selectedRowKey) {\r\n this.selectionChangedAction({\r\n selectedRowKey: selectedRowKey\r\n })\r\n }\r\n createCustomCommandAction() {\r\n this._customCommandAction = this._createActionByOption(Actions.onCustomCommand)\r\n }\r\n customCommandAction(args) {\r\n if (!this._customCommandAction) {\r\n this.createCustomCommandAction()\r\n }\r\n this._customCommandAction(args)\r\n }\r\n raiseCustomCommand(commandName) {\r\n this.customCommandAction({\r\n name: commandName\r\n })\r\n }\r\n createContextMenuPreparingAction() {\r\n this._contextMenuPreparingAction = this._createActionByOption(Actions.onContextMenuPreparing)\r\n }\r\n contextMenuPreparingAction(args) {\r\n if (!this._contextMenuPreparingAction) {\r\n this.createContextMenuPreparingAction()\r\n }\r\n this._contextMenuPreparingAction(args)\r\n }\r\n raiseContextMenuPreparing(options) {\r\n this.contextMenuPreparingAction(options)\r\n }\r\n _getInsertingAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskInsertingAction();\r\n case GANTT_DEPENDENCIES:\r\n return this._getDependencyInsertingAction();\r\n case GANTT_RESOURCES:\r\n return this._getResourceInsertingAction();\r\n case GANTT_RESOURCE_ASSIGNMENTS:\r\n return this._getResourceAssigningAction()\r\n }\r\n return () => {}\r\n }\r\n raiseInsertingAction(optionName, coreArgs) {\r\n var action = this._getInsertingAction(optionName);\r\n if (action) {\r\n var args = {\r\n cancel: false,\r\n values: this._convertCoreToMappedData(optionName, coreArgs.values)\r\n };\r\n action(args);\r\n coreArgs.cancel = args.cancel;\r\n extend(coreArgs.values, this._convertMappedToCoreData(optionName, args.values));\r\n if (optionName === GANTT_TASKS) {\r\n this._saveCustomFieldsDataToCache(GANTT_NEW_TASK_CACHE_KEY, args.values)\r\n }\r\n }\r\n }\r\n createTaskInsertingAction() {\r\n this._taskInsertingAction = this._createActionByOption(Actions.onTaskInserting)\r\n }\r\n taskInsertingAction(args) {\r\n var action = this._getTaskInsertingAction();\r\n action(args)\r\n }\r\n _getTaskInsertingAction() {\r\n if (!this._taskInsertingAction) {\r\n this.createTaskInsertingAction()\r\n }\r\n return this._taskInsertingAction\r\n }\r\n createDependencyInsertingAction() {\r\n this._dependencyInsertingAction = this._createActionByOption(Actions.onDependencyInserting)\r\n }\r\n dependencyInsertingAction(args) {\r\n var action = this._getDependencyInsertingAction();\r\n action(args)\r\n }\r\n _getDependencyInsertingAction() {\r\n if (!this._dependencyInsertingAction) {\r\n this.createDependencyInsertingAction()\r\n }\r\n return this._dependencyInsertingAction\r\n }\r\n createResourceInsertingAction() {\r\n this._resourceInsertingAction = this._createActionByOption(Actions.onResourceInserting)\r\n }\r\n resourceInsertingAction(args) {\r\n var action = this._getResourceInsertingAction();\r\n action(args)\r\n }\r\n _getResourceInsertingAction() {\r\n if (!this._resourceInsertingAction) {\r\n this.createResourceInsertingAction()\r\n }\r\n return this._resourceInsertingAction\r\n }\r\n createResourceAssigningAction() {\r\n this._resourceAssigningAction = this._createActionByOption(Actions.onResourceAssigning)\r\n }\r\n resourceAssigningAction(args) {\r\n var action = this._getResourceAssigningAction();\r\n action(args)\r\n }\r\n _getResourceAssigningAction() {\r\n if (!this._resourceAssigningAction) {\r\n this.createResourceAssigningAction()\r\n }\r\n return this._resourceAssigningAction\r\n }\r\n _getInsertedAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskInsertedAction();\r\n case GANTT_DEPENDENCIES:\r\n return this._getDependencyInsertedAction();\r\n case GANTT_RESOURCES:\r\n return this._getResourceInsertedAction();\r\n case GANTT_RESOURCE_ASSIGNMENTS:\r\n return this._getResourceAssignedAction()\r\n }\r\n return () => {}\r\n }\r\n raiseInsertedAction(optionName, data, key) {\r\n var action = this._getInsertedAction(optionName);\r\n if (action) {\r\n var args = {\r\n values: data,\r\n key: key\r\n };\r\n action(args)\r\n }\r\n }\r\n createTaskInsertedAction() {\r\n this._taskInsertedAction = this._createActionByOption(Actions.onTaskInserted)\r\n }\r\n taskInsertedAction(args) {\r\n var action = this._getTaskInsertedAction();\r\n action(args)\r\n }\r\n _getTaskInsertedAction() {\r\n if (!this._taskInsertedAction) {\r\n this.createTaskInsertedAction()\r\n }\r\n return this._taskInsertedAction\r\n }\r\n createDependencyInsertedAction() {\r\n this._dependencyInsertedAction = this._createActionByOption(Actions.onDependencyInserted)\r\n }\r\n dependencyInsertedAction(args) {\r\n var action = this._getDependencyInsertedAction();\r\n action(args)\r\n }\r\n _getDependencyInsertedAction() {\r\n if (!this._dependencyInsertedAction) {\r\n this.createDependencyInsertedAction()\r\n }\r\n return this._dependencyInsertedAction\r\n }\r\n createResourceInsertedAction() {\r\n this._resourceInsertedAction = this._createActionByOption(Actions.onResourceInserted)\r\n }\r\n resourceInsertedAction(args) {\r\n var action = this._getResourceInsertedAction();\r\n action(args)\r\n }\r\n _getResourceInsertedAction() {\r\n if (!this._resourceInsertedAction) {\r\n this.createResourceInsertedAction()\r\n }\r\n return this._resourceInsertedAction\r\n }\r\n createResourceAssignedAction() {\r\n this._resourceAssignedAction = this._createActionByOption(Actions.onResourceAssigned)\r\n }\r\n resourceAssignedAction(args) {\r\n var action = this._getResourceAssignedAction();\r\n action(args)\r\n }\r\n _getResourceAssignedAction() {\r\n if (!this._resourceAssignedAction) {\r\n this.createResourceAssignedAction()\r\n }\r\n return this._resourceAssignedAction\r\n }\r\n _getDeletingAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskDeletingAction();\r\n case GANTT_DEPENDENCIES:\r\n return this._getDependencyDeletingAction();\r\n case GANTT_RESOURCES:\r\n return this._getResourceDeletingAction();\r\n case GANTT_RESOURCE_ASSIGNMENTS:\r\n return this._getResourceUnassigningAction()\r\n }\r\n return () => {}\r\n }\r\n raiseDeletingAction(optionName, coreArgs) {\r\n var action = this._getDeletingAction(optionName);\r\n if (action) {\r\n var args = {\r\n cancel: false,\r\n key: coreArgs.key,\r\n values: this._convertCoreToMappedData(optionName, coreArgs.values)\r\n };\r\n action(args);\r\n coreArgs.cancel = args.cancel\r\n }\r\n }\r\n createTaskDeletingAction() {\r\n this._taskDeletingAction = this._createActionByOption(Actions.onTaskDeleting)\r\n }\r\n taskDeletingAction(args) {\r\n var action = this._getTaskDeletingAction();\r\n action(args)\r\n }\r\n _getTaskDeletingAction() {\r\n if (!this._taskDeletingAction) {\r\n this.createTaskDeletingAction()\r\n }\r\n return this._taskDeletingAction\r\n }\r\n createDependencyDeletingAction() {\r\n this._dependencyDeletingAction = this._createActionByOption(Actions.onDependencyDeleting)\r\n }\r\n dependencyDeletingAction(args) {\r\n var action = this._getDependencyDeletingAction();\r\n action(args)\r\n }\r\n _getDependencyDeletingAction() {\r\n if (!this._dependencyDeletingAction) {\r\n this.createDependencyDeletingAction()\r\n }\r\n return this._dependencyDeletingAction\r\n }\r\n createResourceDeletingAction() {\r\n this._resourceDeletingAction = this._createActionByOption(Actions.onResourceDeleting)\r\n }\r\n resourceDeletingAction(args) {\r\n var action = this._getResourceDeletingAction();\r\n action(args)\r\n }\r\n _getResourceDeletingAction() {\r\n if (!this._resourceDeletingAction) {\r\n this.createResourceDeletingAction()\r\n }\r\n return this._resourceDeletingAction\r\n }\r\n createResourceUnassigningAction() {\r\n this._resourceUnassigningAction = this._createActionByOption(Actions.onResourceUnassigning)\r\n }\r\n resourceUnassigningAction(args) {\r\n var action = this._getResourceUnassigningAction();\r\n action(args)\r\n }\r\n _getResourceUnassigningAction() {\r\n if (!this._resourceUnassigningAction) {\r\n this.createResourceUnassigningAction()\r\n }\r\n return this._resourceUnassigningAction\r\n }\r\n _getDeletedAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskDeletedAction();\r\n case GANTT_DEPENDENCIES:\r\n return this._getDependencyDeletedAction();\r\n case GANTT_RESOURCES:\r\n return this._getResourceDeletedAction();\r\n case GANTT_RESOURCE_ASSIGNMENTS:\r\n return this._getResourceUnassignedAction()\r\n }\r\n return () => {}\r\n }\r\n raiseDeletedAction(optionName, key, data) {\r\n var action = this._getDeletedAction(optionName);\r\n if (action) {\r\n var args = {\r\n key: key,\r\n values: data\r\n };\r\n action(args)\r\n }\r\n }\r\n createTaskDeletedAction() {\r\n this._taskDeletedAction = this._createActionByOption(Actions.onTaskDeleted)\r\n }\r\n taskDeletedAction(args) {\r\n var action = this._getTaskDeletedAction();\r\n action(args)\r\n }\r\n _getTaskDeletedAction() {\r\n if (!this._taskDeletedAction) {\r\n this.createTaskDeletedAction()\r\n }\r\n return this._taskDeletedAction\r\n }\r\n createDependencyDeletedAction() {\r\n this._dependencyDeletedAction = this._createActionByOption(Actions.onDependencyDeleted)\r\n }\r\n dependencyDeletedAction(args) {\r\n var action = this._getDependencyDeletedAction();\r\n action(args)\r\n }\r\n _getDependencyDeletedAction() {\r\n if (!this._dependencyDeletedAction) {\r\n this.createDependencyDeletedAction()\r\n }\r\n return this._dependencyDeletedAction\r\n }\r\n createResourceDeletedAction() {\r\n this._resourceDeletedAction = this._createActionByOption(Actions.onResourceDeleted)\r\n }\r\n resourceDeletedAction(args) {\r\n var action = this._getResourceDeletedAction();\r\n action(args)\r\n }\r\n _getResourceDeletedAction() {\r\n if (!this._resourceDeletedAction) {\r\n this.createResourceDeletedAction()\r\n }\r\n return this._resourceDeletedAction\r\n }\r\n createResourceUnassignedAction() {\r\n this._resourceUnassignedAction = this._createActionByOption(Actions.onResourceUnassigned)\r\n }\r\n resourceUnassignedAction(args) {\r\n var action = this._getResourceUnassignedAction();\r\n action(args)\r\n }\r\n _getResourceUnassignedAction() {\r\n if (!this._resourceUnassignedAction) {\r\n this.createResourceUnassignedAction()\r\n }\r\n return this._resourceUnassignedAction\r\n }\r\n _getUpdatingAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskUpdatingAction()\r\n }\r\n return () => {}\r\n }\r\n raiseUpdatingAction(optionName, coreArgs, action) {\r\n action = action || this._getUpdatingAction(optionName);\r\n if (action) {\r\n var isTaskUpdating = optionName === GANTT_TASKS;\r\n var args = {\r\n cancel: false,\r\n key: coreArgs.key,\r\n newValues: this._convertCoreToMappedData(optionName, coreArgs.newValues),\r\n values: isTaskUpdating ? this._getTaskData(coreArgs.key) : this._convertCoreToMappedData(optionName, coreArgs.values)\r\n };\r\n if (isTaskUpdating && this._customFieldsManager.cache.hasData(args.key)) {\r\n this._customFieldsManager.addCustomFieldsDataFromCache(args.key, args.newValues)\r\n }\r\n action(args);\r\n coreArgs.cancel = args.cancel;\r\n extend(coreArgs.newValues, this._convertMappedToCoreData(optionName, args.newValues));\r\n if (isTaskUpdating) {\r\n if (args.cancel) {\r\n this._customFieldsManager.resetCustomFieldsDataCache(args.key)\r\n } else {\r\n var forceUpdateOnKeyExpire = !Object.keys(coreArgs.newValues).length;\r\n this._saveCustomFieldsDataToCache(args.key, args.newValues, forceUpdateOnKeyExpire)\r\n }\r\n }\r\n }\r\n }\r\n createTaskUpdatingAction() {\r\n this._taskUpdatingAction = this._createActionByOption(Actions.onTaskUpdating)\r\n }\r\n taskUpdatingAction(args) {\r\n var action = this._getTaskUpdatingAction();\r\n action(args)\r\n }\r\n _getTaskUpdatingAction() {\r\n if (!this._taskUpdatingAction) {\r\n this.createTaskUpdatingAction()\r\n }\r\n return this._taskUpdatingAction\r\n }\r\n _getUpdatedAction(optionName) {\r\n switch (optionName) {\r\n case GANTT_TASKS:\r\n return this._getTaskUpdatedAction()\r\n }\r\n return () => {}\r\n }\r\n raiseUpdatedAction(optionName, data, key) {\r\n var action = this._getUpdatedAction(optionName);\r\n if (action) {\r\n var args = {\r\n values: data,\r\n key: key\r\n };\r\n action(args)\r\n }\r\n }\r\n createTaskUpdatedAction() {\r\n this._taskUpdatedAction = this._createActionByOption(Actions.onTaskUpdated)\r\n }\r\n taskUpdatedAction(args) {\r\n var action = this._getTaskUpdatedAction();\r\n action(args)\r\n }\r\n _getTaskUpdatedAction() {\r\n if (!this._taskUpdatedAction) {\r\n this.createTaskUpdatedAction()\r\n }\r\n return this._taskUpdatedAction\r\n }\r\n createTaskEditDialogShowingAction() {\r\n this._taskEditDialogShowingAction = this._createActionByOption(Actions.onTaskEditDialogShowing)\r\n }\r\n taskEditDialogShowingAction(args) {\r\n var action = this._getTaskEditDialogShowingAction();\r\n action(args)\r\n }\r\n _getTaskEditDialogShowingAction() {\r\n if (!this._taskEditDialogShowingAction) {\r\n this.createTaskEditDialogShowingAction()\r\n }\r\n return this._taskEditDialogShowingAction\r\n }\r\n raiseTaskEditDialogShowingAction(coreArgs) {\r\n var action = this._getTaskEditDialogShowingAction();\r\n if (action) {\r\n var args = {\r\n cancel: false,\r\n key: coreArgs.key,\r\n values: this._convertCoreToMappedData(GANTT_TASKS, coreArgs.values),\r\n readOnlyFields: this._convertCoreToMappedFields(GANTT_TASKS, coreArgs.readOnlyFields),\r\n hiddenFields: this._convertCoreToMappedFields(GANTT_TASKS, coreArgs.hiddenFields)\r\n };\r\n action(args);\r\n coreArgs.cancel = args.cancel;\r\n extend(coreArgs.values, this._convertMappedToCoreData(GANTT_TASKS, args.values));\r\n coreArgs.readOnlyFields = this._convertMappedToCoreFields(GANTT_TASKS, args.readOnlyFields);\r\n coreArgs.hiddenFields = this._convertMappedToCoreFields(GANTT_TASKS, args.hiddenFields)\r\n }\r\n }\r\n createResourceManagerDialogShowingAction() {\r\n this._resourceManagerDialogShowingAction = this._createActionByOption(Actions.onResourceManagerDialogShowing)\r\n }\r\n resourceManagerDialogShowingAction(args) {\r\n var action = this._getResourceManagerDialogShowingAction();\r\n action(args)\r\n }\r\n _getResourceManagerDialogShowingAction() {\r\n if (!this._resourceManagerDialogShowingAction) {\r\n this.createResourceManagerDialogShowingAction()\r\n }\r\n return this._resourceManagerDialogShowingAction\r\n }\r\n raiseResourceManagerDialogShowingAction(coreArgs) {\r\n var action = this._getResourceManagerDialogShowingAction();\r\n if (action) {\r\n var mappedResources = coreArgs.values.resources.items.map(r => this._convertMappedToCoreData(GANTT_RESOURCES, r));\r\n var args = {\r\n cancel: false,\r\n values: mappedResources\r\n };\r\n action(args);\r\n coreArgs.cancel = args.cancel\r\n }\r\n }\r\n createTaskMovingAction() {\r\n this._taskMovingAction = this._createActionByOption(Actions.onTaskMoving)\r\n }\r\n taskMovingAction(args) {\r\n var action = this.getTaskMovingAction();\r\n action(args)\r\n }\r\n getTaskMovingAction() {\r\n if (!this._taskMovingAction) {\r\n this.createTaskMovingAction()\r\n }\r\n return this._taskMovingAction\r\n }\r\n getScaleCellPreparedAction() {\r\n if (!this._scaleCellPreparedAction) {\r\n this.createScaleCellPreparedAction()\r\n }\r\n return this._scaleCellPreparedAction\r\n }\r\n createScaleCellPreparedAction() {\r\n this._scaleCellPreparedAction = this._createActionByOption(Actions.onScaleCellPrepared)\r\n }\r\n raiseScaleCellPreparedAction(data) {\r\n var action = this.getScaleCellPreparedAction();\r\n if (action) {\r\n var args = {\r\n scaleIndex: data.scaleIndex,\r\n scaleType: this._getScaleType(data.scaleType),\r\n scaleElement: getPublicElement($(data.scaleElement)),\r\n separatorElement: getPublicElement($(data.separatorElement)),\r\n startDate: new Date(data.start),\r\n endDate: new Date(data.end)\r\n };\r\n action(args)\r\n }\r\n }\r\n _getScaleType(viewType) {\r\n switch (viewType) {\r\n case 0:\r\n return \"minutes\";\r\n case 1:\r\n return \"hours\";\r\n case 2:\r\n return \"sixHours\";\r\n case 3:\r\n return \"days\";\r\n case 4:\r\n return \"weeks\";\r\n case 5:\r\n return \"months\";\r\n case 6:\r\n return \"quarters\";\r\n case 7:\r\n return \"years\";\r\n case 8:\r\n return \"fiveYears\";\r\n default:\r\n return\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.cache.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extendFromObject\r\n} from \"../../core/utils/extend\";\r\nexport class GanttDataCache {\r\n constructor() {\r\n this._cache = {};\r\n this._timers = {}\r\n }\r\n saveData(key, data, keyExpireCallback) {\r\n if (data) {\r\n this._clearTimer(key);\r\n var storage = this._getCache(key, true);\r\n extendFromObject(storage, data, true);\r\n if (keyExpireCallback) {\r\n this._setExpireTimer(key, keyExpireCallback)\r\n }\r\n }\r\n }\r\n pullDataFromCache(key, target) {\r\n var data = this._getCache(key);\r\n if (data) {\r\n extendFromObject(target, data)\r\n }\r\n this._onKeyExpired(key)\r\n }\r\n hasData(key) {\r\n return !!this._cache[key]\r\n }\r\n resetCache(key) {\r\n this._onKeyExpired(key)\r\n }\r\n _getCache(key, forceCreate) {\r\n if (!this._cache[key] && forceCreate) {\r\n this._cache[key] = {}\r\n }\r\n return this._cache[key]\r\n }\r\n _setExpireTimer(key, callback) {\r\n this._timers[key] = setTimeout(() => {\r\n callback(key, this._getCache(key));\r\n this._onKeyExpired(key)\r\n }, 200)\r\n }\r\n _onKeyExpired(key) {\r\n this._clearCache(key);\r\n this._clearTimer(key)\r\n }\r\n _clearCache(key) {\r\n delete this._cache[key]\r\n }\r\n _clearTimer(key) {\r\n var timers = this._timers;\r\n if (timers && timers[key]) {\r\n clearTimeout(timers[key]);\r\n delete timers[key]\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nexport var GanttHelper = {\r\n prepareMapHandler: getters => data => Object.keys(getters).reduce((previous, key) => {\r\n var resultKey = \"key\" === key ? \"id\" : key;\r\n previous[resultKey] = getters[key](data);\r\n return previous\r\n }, {}),\r\n prepareSetterMapHandler: setters => data => Object.keys(setters).reduce((previous, key) => {\r\n var resultKey = \"key\" === key ? \"id\" : key;\r\n setters[key](previous, data[resultKey]);\r\n return previous\r\n }, {}),\r\n compileGettersByOption(optionValue) {\r\n var getters = {};\r\n for (var field in optionValue) {\r\n var exprMatches = field.match(/(\\w*)Expr/);\r\n if (exprMatches) {\r\n getters[exprMatches[1]] = compileGetter(optionValue[exprMatches[0]])\r\n }\r\n }\r\n return getters\r\n },\r\n compileSettersByOption(optionValue) {\r\n var setters = {};\r\n for (var field in optionValue) {\r\n var exprMatches = field.match(/(\\w*)Expr/);\r\n if (exprMatches && !isFunction(optionValue[exprMatches[0]])) {\r\n setters[exprMatches[1]] = compileSetter(optionValue[exprMatches[0]])\r\n }\r\n }\r\n return setters\r\n },\r\n compileFuncSettersByOption(optionValue) {\r\n var setters = {};\r\n for (var field in optionValue) {\r\n var exprMatches = field.match(/(\\w*)Expr/);\r\n if (exprMatches && isFunction(optionValue[exprMatches[0]])) {\r\n setters[exprMatches[1]] = optionValue[exprMatches[0]]\r\n }\r\n }\r\n return setters\r\n },\r\n getStoreObject(option, modelObject) {\r\n var setters = GanttHelper.compileSettersByOption(option);\r\n return Object.keys(setters).reduce((previous, key) => {\r\n if (\"key\" !== key) {\r\n setters[key](previous, modelObject[key])\r\n }\r\n return previous\r\n }, {})\r\n },\r\n getInvertedData(data, keyGetter) {\r\n var inverted = {};\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n var dataItem = data[i];\r\n var key = keyGetter(dataItem);\r\n inverted[key] = dataItem\r\n }\r\n }\r\n return inverted\r\n },\r\n getArrayFromOneElement: element => void 0 === element || null === element ? [] : [element],\r\n getSelectionMode: allowSelection => allowSelection ? \"single\" : \"none\",\r\n convertTreeToList(node, array) {\r\n if (null !== node && void 0 !== node && node.data && null !== node && void 0 !== node && node.visible) {\r\n array.push(node.data)\r\n }\r\n for (var i = 0; i < (null === (_node$children = node.children) || void 0 === _node$children ? void 0 : _node$children.length); i++) {\r\n var _node$children;\r\n var child = node.children[i];\r\n GanttHelper.convertTreeToList(child, array)\r\n }\r\n },\r\n getAllParentNodesKeys(node, array) {\r\n var _node$parent;\r\n if (null !== node && void 0 !== node && node.data) {\r\n array.push(node.key)\r\n }\r\n if (null !== node && void 0 !== node && null !== (_node$parent = node.parent) && void 0 !== _node$parent && _node$parent.data) {\r\n GanttHelper.getAllParentNodesKeys(node.parent, array)\r\n }\r\n },\r\n getDefaultOptions: () => ({\r\n tasks: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n parentIdExpr: \"parentId\",\r\n startExpr: \"start\",\r\n endExpr: \"end\",\r\n progressExpr: \"progress\",\r\n titleExpr: \"title\",\r\n colorExpr: \"color\"\r\n },\r\n dependencies: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n predecessorIdExpr: \"predecessorId\",\r\n successorIdExpr: \"successorId\",\r\n typeExpr: \"type\"\r\n },\r\n resources: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n textExpr: \"text\",\r\n colorExpr: \"color\"\r\n },\r\n resourceAssignments: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n taskIdExpr: \"taskId\",\r\n resourceIdExpr: \"resourceId\"\r\n },\r\n columns: void 0,\r\n taskListWidth: 300,\r\n showResources: true,\r\n showDependencies: true,\r\n taskTitlePosition: \"inside\",\r\n firstDayOfWeek: void 0,\r\n selectedRowKey: void 0,\r\n onSelectionChanged: null,\r\n onTaskClick: null,\r\n onTaskDblClick: null,\r\n onTaskInserting: null,\r\n onTaskInserted: null,\r\n onTaskDeleting: null,\r\n onTaskDeleted: null,\r\n onTaskUpdating: null,\r\n onTaskUpdated: null,\r\n onTaskMoving: null,\r\n onTaskEditDialogShowing: null,\r\n onDependencyInserting: null,\r\n onDependencyInserted: null,\r\n onDependencyDeleting: null,\r\n onDependencyDeleted: null,\r\n onResourceInserting: null,\r\n onResourceInserted: null,\r\n onResourceDeleting: null,\r\n onResourceDeleted: null,\r\n onResourceAssigning: null,\r\n onResourceAssigned: null,\r\n onResourceUnassigning: null,\r\n onResourceUnassigned: null,\r\n onCustomCommand: null,\r\n onContextMenuPreparing: null,\r\n allowSelection: true,\r\n showRowLines: true,\r\n stripLines: void 0,\r\n scaleType: \"auto\",\r\n scaleTypeRange: {\r\n min: \"minutes\",\r\n max: \"years\"\r\n },\r\n editing: {\r\n enabled: false,\r\n allowTaskAdding: true,\r\n allowTaskDeleting: true,\r\n allowTaskUpdating: true,\r\n allowDependencyAdding: true,\r\n allowDependencyDeleting: true,\r\n allowResourceAdding: true,\r\n allowResourceDeleting: true,\r\n allowResourceUpdating: true,\r\n allowTaskResourceUpdating: true\r\n },\r\n validation: {\r\n validateDependencies: false,\r\n autoUpdateParentTasks: false,\r\n enablePredecessorGap: false\r\n },\r\n toolbar: null,\r\n contextMenu: {\r\n enabled: true,\r\n items: void 0\r\n },\r\n taskTooltipContentTemplate: null,\r\n taskProgressTooltipContentTemplate: null,\r\n taskTimeTooltipContentTemplate: null,\r\n taskContentTemplate: null,\r\n rootValue: 0,\r\n sorting: {\r\n ascendingText: messageLocalization.format(\"dxGantt-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxGantt-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxGantt-sortingClearText\"),\r\n mode: \"single\",\r\n showSortIndexes: false\r\n },\r\n filterRow: void 0,\r\n headerFilter: void 0,\r\n rtlEnabled: false\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.custom_fields.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n GanttDataCache\r\n} from \"./ui.gantt.cache\";\r\nimport {\r\n GanttHelper\r\n} from \"./ui.gantt.helper\";\r\nvar GANTT_TASKS = \"tasks\";\r\nexport class GanttCustomFieldsManager {\r\n constructor(gantt) {\r\n this._gantt = gantt;\r\n this._mappingHelper = gantt._mappingHelper;\r\n this.cache = new GanttDataCache\r\n }\r\n _getTaskCustomFields() {\r\n var columns = this._gantt.option(\"columns\");\r\n var columnFields = columns && columns.map(c => c.dataField);\r\n var mappedFields = this._mappingHelper.getTaskMappedFieldNames();\r\n return columnFields ? columnFields.filter(f => mappedFields.indexOf(f) < 0) : []\r\n }\r\n _getCustomFieldsData(data) {\r\n return this._getTaskCustomFields().reduce((previous, field) => {\r\n if (data && void 0 !== data[field]) {\r\n previous[field] = data[field]\r\n }\r\n return previous\r\n }, {})\r\n }\r\n addCustomFieldsData(key, data) {\r\n if (data) {\r\n var modelData = this._gantt._tasksOption && this._gantt._tasksOption._getItems();\r\n var keyGetter = compileGetter(this._gantt.option(\"\".concat(GANTT_TASKS, \".keyExpr\")));\r\n var modelItem = modelData && modelData.filter(obj => keyGetter(obj) === key)[0];\r\n var customFields = this._getTaskCustomFields();\r\n if (modelItem) {\r\n for (var i = 0; i < customFields.length; i++) {\r\n var field = customFields[i];\r\n if (Object.prototype.hasOwnProperty.call(modelItem, field)) {\r\n data[field] = modelItem[field]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n appendCustomFields(data) {\r\n var modelData = this._gantt._tasksOption && this._gantt._tasksOption._getItems();\r\n var keyGetter = this._gantt._getTaskKeyGetter();\r\n var invertedData = GanttHelper.getInvertedData(modelData, keyGetter);\r\n return data.reduce((previous, item) => {\r\n var key = keyGetter(item);\r\n var modelItem = invertedData[key];\r\n if (!modelItem) {\r\n previous.push(item)\r\n } else {\r\n var updatedItem = {};\r\n for (var field in modelItem) {\r\n updatedItem[field] = Object.prototype.hasOwnProperty.call(item, field) ? item[field] : modelItem[field]\r\n }\r\n previous.push(updatedItem)\r\n }\r\n return previous\r\n }, [])\r\n }\r\n addCustomFieldsDataFromCache(key, data) {\r\n this.cache.pullDataFromCache(key, data)\r\n }\r\n saveCustomFieldsDataToCache(key, data) {\r\n var forceUpdateOnKeyExpire = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var isCustomFieldsUpdateOnly = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n var customFieldsData = this._getCustomFieldsData(data);\r\n if (Object.keys(customFieldsData).length > 0) {\r\n this.cache.saveData(key, customFieldsData, forceUpdateOnKeyExpire ? (key, data) => {\r\n var dataOption = this._gantt[\"_\".concat(GANTT_TASKS, \"Option\")];\r\n if (dataOption && data) {\r\n dataOption.update(key, data, (data, key) => {\r\n var updatedCustomFields = {};\r\n this.addCustomFieldsData(key, updatedCustomFields);\r\n dataOption._reloadDataSource().done(data => {\r\n this._gantt._ganttTreeList.updateDataSource(null !== data && void 0 !== data ? data : dataOption._dataSource, false, isCustomFieldsUpdateOnly)\r\n });\r\n var selectedRowKey = this._gantt.option(\"selectedRowKey\");\r\n this._gantt._ganttView._selectTask(selectedRowKey);\r\n this._gantt._actionsManager.raiseUpdatedAction(GANTT_TASKS, updatedCustomFields, key)\r\n })\r\n }\r\n } : null)\r\n }\r\n }\r\n resetCustomFieldsDataCache(key) {\r\n this.cache.resetCache(key)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.scroll.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nvar allowScroll = function(container, delta, shiftKey) {\r\n var $container = $(container);\r\n var scrollTopPos = shiftKey ? $container.scrollLeft() : $container.scrollTop();\r\n var prop = shiftKey ? \"Width\" : \"Height\";\r\n var scrollSize = $container.prop(\"scroll\".concat(prop));\r\n var clientSize = $container.prop(\"client\".concat(prop));\r\n var scrollBottomPos = scrollSize - clientSize - scrollTopPos | 0;\r\n if (0 === scrollTopPos && 0 === scrollBottomPos) {\r\n return false\r\n }\r\n var isScrollFromTop = 0 === scrollTopPos && delta >= 0;\r\n var isScrollFromBottom = 0 === scrollBottomPos && delta <= 0;\r\n var isScrollFromMiddle = scrollTopPos > 0 && scrollBottomPos > 0;\r\n if (isScrollFromTop || isScrollFromBottom || isScrollFromMiddle) {\r\n return true\r\n }\r\n};\r\nvar prepareScrollData = function(container, validateTarget) {\r\n var $container = $(container);\r\n return {\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && (eventTarget = e.target, validateTarget ? $(eventTarget).is(container) : true)) {\r\n if (allowScroll($container, -e.delta, e.shiftKey)) {\r\n e._needSkipEvent = true;\r\n return true\r\n }\r\n return false\r\n }\r\n var eventTarget\r\n }\r\n }\r\n};\r\nexport {\r\n allowScroll,\r\n prepareScrollData\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/tag_box.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nimport {\r\n SelectionFilterCreator as FilterCreator\r\n} from \"../core/utils/selection_filter\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n removeDuplicates,\r\n getIntersection\r\n} from \"../core/utils/array\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEvent\r\n} from \"../events/click\";\r\nimport caret from \"./text_box/utils.caret\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../data/data_source/utils\";\r\nimport Guid from \"../core/guid\";\r\nimport SelectBox from \"./select_box\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n allowScroll\r\n} from \"./text_box/utils.scroll\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar TAGBOX_TAG_DATA_KEY = \"dxTagData\";\r\nvar TAGBOX_CLASS = \"dx-tagbox\";\r\nvar TAGBOX_TAG_CONTAINER_CLASS = \"dx-tag-container\";\r\nvar TAGBOX_TAG_CLASS = \"dx-tag\";\r\nvar TAGBOX_MULTI_TAG_CLASS = \"dx-tagbox-multi-tag\";\r\nvar TAGBOX_CUSTOM_TAG_CLASS = \"dx-tag-custom\";\r\nvar TAGBOX_TAG_REMOVE_BUTTON_CLASS = \"dx-tag-remove-button\";\r\nvar TAGBOX_ONLY_SELECT_CLASS = \"dx-tagbox-only-select\";\r\nvar TAGBOX_SINGLE_LINE_CLASS = \"dx-tagbox-single-line\";\r\nvar TAGBOX_POPUP_WRAPPER_CLASS = \"dx-tagbox-popup-wrapper\";\r\nvar TAGBOX_TAG_CONTENT_CLASS = \"dx-tag-content\";\r\nvar TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS = \"dx-tagbox-default-template\";\r\nvar TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS = \"dx-tagbox-custom-template\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER = -.3;\r\nvar TagBox = SelectBox.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n var sendToList = options => this._list._keyboardHandler(options);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n return extend({}, parent, {\r\n backspace: function(e) {\r\n if (!this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag || this._tagElements().last();\r\n if (this._$focusedTag) {\r\n this._moveTagFocus(\"prev\", true)\r\n }\r\n if (0 === $tagToDelete.length) {\r\n return\r\n }\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n upArrow: (e, opts) => e.altKey || !this._list ? parent.upArrow.call(this, e) : sendToList(opts),\r\n downArrow: (e, opts) => e.altKey || !this._list ? parent.downArrow.call(this, e) : sendToList(opts),\r\n del: function(e) {\r\n if (!this._$focusedTag || !this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag;\r\n this._moveTagFocus(\"next\", true);\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n enter: function(e, options) {\r\n var isListItemFocused = this._list && null !== this._list.option(\"focusedElement\");\r\n var isCustomItem = this.option(\"acceptCustomValue\") && !isListItemFocused;\r\n if (isCustomItem) {\r\n e.preventDefault();\r\n \"\" !== this._searchValue() && this._customItemAddedHandler(e);\r\n return\r\n }\r\n if (this.option(\"opened\")) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n space: function(e, options) {\r\n var isOpened = this.option(\"opened\");\r\n var isInputActive = this._shouldRenderSearchEvent();\r\n if (isOpened && !isInputActive) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n leftArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"next\" : \"prev\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n },\r\n rightArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && !rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"prev\" : \"next\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _isEmpty: function() {\r\n return 0 === this._getValue().length\r\n },\r\n _updateTagsContainer: function($element) {\r\n this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS)\r\n },\r\n _allowSelectItemByTab: function() {\r\n return false\r\n },\r\n _isCaretAtTheStart: function() {\r\n var position = caret(this._input());\r\n return 0 === position.start && 0 === position.end\r\n },\r\n _updateInputAriaActiveDescendant(id) {\r\n this.setAria(\"activedescendant\", id, this._input())\r\n },\r\n _moveTagFocus: function(direction, clearOnBoundary) {\r\n if (!this._$focusedTag) {\r\n var tagElements = this._tagElements();\r\n this._$focusedTag = \"next\" === direction ? tagElements.first() : tagElements.last();\r\n this._toggleFocusClass(true, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant(this._$focusedTag.attr(\"id\"));\r\n return\r\n }\r\n var $nextFocusedTag = this._$focusedTag[direction](\".\".concat(TAGBOX_TAG_CLASS));\r\n if ($nextFocusedTag.length > 0) {\r\n this._replaceFocusedTag($nextFocusedTag);\r\n this._updateInputAriaActiveDescendant($nextFocusedTag.attr(\"id\"))\r\n } else if (clearOnBoundary || \"next\" === direction && this._isEditable()) {\r\n this._clearTagFocus();\r\n this._updateInputAriaActiveDescendant()\r\n }\r\n },\r\n _replaceFocusedTag: function($nextFocusedTag) {\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._$focusedTag = $nextFocusedTag;\r\n this._toggleFocusClass(true, this._$focusedTag)\r\n },\r\n _clearTagFocus: function() {\r\n if (!this._$focusedTag) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant();\r\n delete this._$focusedTag\r\n },\r\n _focusClassTarget: function($element) {\r\n if ($element && $element.length && $element[0] !== this._focusTarget()[0]) {\r\n return $element\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelContainer: function() {\r\n return this._$tagsContainer\r\n },\r\n _getFieldElement() {\r\n return this._input()\r\n },\r\n _scrollContainer: function(direction) {\r\n if (this.option(\"multiline\") || !hasWindow()) {\r\n return\r\n }\r\n if (!this._$tagsContainer) {\r\n return\r\n }\r\n var scrollPosition = this._getScrollPosition(direction);\r\n this._$tagsContainer.scrollLeft(scrollPosition)\r\n },\r\n _getScrollPosition: function(direction) {\r\n if (\"start\" === direction || \"end\" === direction) {\r\n return this._getBorderPosition(direction)\r\n }\r\n return this._$focusedTag ? this._getFocusedTagPosition(direction) : this._getBorderPosition(\"end\")\r\n },\r\n _getBorderPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"end\" === direction ^ rtlEnabled;\r\n var scrollSign = rtlEnabled ? -1 : 1;\r\n return isScrollLeft ^ !rtlEnabled ? 0 : scrollSign * (this._$tagsContainer.get(0).scrollWidth - getOuterWidth(this._$tagsContainer))\r\n },\r\n _getFocusedTagPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"next\" === direction ^ rtlEnabled;\r\n var {\r\n left: scrollOffset\r\n } = this._$focusedTag.position();\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n if (isScrollLeft) {\r\n scrollOffset += getOuterWidth(this._$focusedTag, true) - getOuterWidth(this._$tagsContainer)\r\n }\r\n if (isScrollLeft ^ scrollOffset < 0) {\r\n scrollLeft += scrollOffset\r\n }\r\n return scrollLeft\r\n },\r\n _setNextValue: noop,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: [],\r\n showDropDownButton: false,\r\n maxFilterQueryLength: 1500,\r\n tagTemplate: \"tag\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n hideSelectedItems: false,\r\n selectedItems: [],\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n maxDisplayedTags: void 0,\r\n showMultiTagOnly: true,\r\n onMultiTagPreparing: null,\r\n multiline: true,\r\n useSubmitBehavior: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._selectedItems = [];\r\n this._initSelectAllValueChangedAction()\r\n },\r\n _initActions: function() {\r\n this.callBase();\r\n this._initMultiTagPreparingAction()\r\n },\r\n _initMultiTagPreparingAction: function() {\r\n this._multiTagPreparingAction = this._createActionByOption(\"onMultiTagPreparing\", {\r\n beforeExecute: function(e) {\r\n this._multiTagPreparingHandler(e.args[0])\r\n }.bind(this),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _multiTagPreparingHandler: function(args) {\r\n var {\r\n length: selectedCount\r\n } = this._getValue();\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-moreSelected\")(selectedCount - this.option(\"maxDisplayedTags\") + 1)\r\n } else {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-selected\")(selectedCount)\r\n }\r\n },\r\n _initDynamicTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n tag: new BindableTemplate(($container, data) => {\r\n var _data$text;\r\n var $tagContent = $(\"<div>\").addClass(TAGBOX_TAG_CONTENT_CLASS);\r\n $(\"<span>\").text(null !== (_data$text = data.text) && void 0 !== _data$text ? _data$text : data).appendTo($tagContent);\r\n $(\"<div>\").addClass(TAGBOX_TAG_REMOVE_BUTTON_CLASS).appendTo($tagContent);\r\n $container.append($tagContent)\r\n }, [\"text\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter\r\n })\r\n })\r\n },\r\n _toggleSubmitElement: function(enabled) {\r\n if (enabled) {\r\n this._renderSubmitElement();\r\n this._setSubmitValue()\r\n } else {\r\n this._$submitElement && this._$submitElement.remove();\r\n delete this._$submitElement\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n this._$submitElement = $(\"<select>\").attr({\r\n multiple: \"multiple\",\r\n \"aria-label\": \"Selected items\"\r\n }).css(\"display\", \"none\").appendTo(this.$element())\r\n },\r\n _setSubmitValue: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var $options = [];\r\n for (var i = 0, n = value.length; i < n; i++) {\r\n var useDisplayText = this._shouldUseDisplayValue(value[i]);\r\n $options.push($(\"<option>\").val(useDisplayText ? this._displayGetter(value[i]) : value[i]).attr(\"selected\", \"selected\"))\r\n }\r\n this._getSubmitElement().empty().append($options)\r\n },\r\n _initMarkup: function() {\r\n this._tagElementsCache = $();\r\n var isSingleLineMode = !this.option(\"multiline\");\r\n this.$element().addClass(TAGBOX_CLASS).toggleClass(TAGBOX_ONLY_SELECT_CLASS, !(this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\"))).toggleClass(TAGBOX_SINGLE_LINE_CLASS, isSingleLineMode);\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"tagbox\"\r\n }, this.$element());\r\n this._initTagTemplate();\r\n this.callBase()\r\n },\r\n _getNewLabelId(actualId, newId, shouldRemove) {\r\n if (!actualId) {\r\n return newId\r\n }\r\n if (shouldRemove) {\r\n if (actualId === newId) {\r\n return\r\n }\r\n return actualId.split(\" \").filter(id => id !== newId).join(\" \")\r\n }\r\n return \"\".concat(actualId, \" \").concat(newId)\r\n },\r\n _updateElementAria(id, shouldRemove) {\r\n var shouldClearLabel = !id;\r\n if (shouldClearLabel) {\r\n this.setAria(\"labelledby\", void 0, this.$element());\r\n return\r\n }\r\n var labelId = this.$element().attr(\"aria-labelledby\");\r\n var newLabelId = this._getNewLabelId(labelId, id, shouldRemove);\r\n this.setAria(\"labelledby\", newLabelId, this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderTagRemoveAction();\r\n this._renderSingleLineScroll();\r\n this._scrollContainer(\"start\")\r\n },\r\n _initTagTemplate: function() {\r\n this._tagTemplate = this._getTemplateByOption(\"tagTemplate\")\r\n },\r\n _renderField: function() {\r\n var isDefaultFieldTemplate = !isDefined(this.option(\"fieldTemplate\"));\r\n this.$element().toggleClass(TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS, isDefaultFieldTemplate).toggleClass(TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS, !isDefaultFieldTemplate);\r\n this.callBase()\r\n },\r\n _renderTagRemoveAction: function() {\r\n var tagRemoveAction = this._createAction(this._removeTagHandler.bind(this));\r\n var eventName = addNamespace(clickEvent, \"dxTagBoxTagRemove\");\r\n eventsEngine.off(this._$tagsContainer, eventName);\r\n eventsEngine.on(this._$tagsContainer, eventName, \".\".concat(TAGBOX_TAG_REMOVE_BUTTON_CLASS), event => {\r\n tagRemoveAction({\r\n event: event\r\n })\r\n })\r\n },\r\n _renderSingleLineScroll: function() {\r\n var mouseWheelEvent = addNamespace(\"dxmousewheel\", this.NAME);\r\n var $element = this.$element();\r\n var isMultiline = this.option(\"multiline\");\r\n eventsEngine.off($element, mouseWheelEvent);\r\n if (\"desktop\" !== devices.real().deviceType) {\r\n this._$tagsContainer && this._$tagsContainer.css(\"overflowX\", isMultiline ? \"\" : \"auto\");\r\n return\r\n }\r\n if (isMultiline) {\r\n return\r\n }\r\n eventsEngine.on($element, mouseWheelEvent, this._tagContainerMouseWheelHandler.bind(this))\r\n },\r\n _tagContainerMouseWheelHandler: function(e) {\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n var delta = e.delta * TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER;\r\n if (!isCommandKeyPressed(e) && allowScroll(this._$tagsContainer, delta, true)) {\r\n this._$tagsContainer.scrollLeft(scrollLeft + delta);\r\n return false\r\n }\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n var input = this._input();\r\n var namespace = addNamespace(\"keydown\", this.NAME);\r\n eventsEngine.on(input, namespace, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (!this._isControlKey(keyName) && this._isEditable()) {\r\n this._clearTagFocus()\r\n }\r\n })\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + TAGBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderPreventBlurOnInputClick()\r\n },\r\n _renderPreventBlurOnInputClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxTagBox\");\r\n eventsEngine.off(this._inputWrapper(), eventName);\r\n eventsEngine.on(this._inputWrapper(), eventName, e => {\r\n if (e.target !== this._input()[0] && this._isFocused()) {\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _renderInputValueImpl: function() {\r\n return this._renderMultiSelect()\r\n },\r\n _loadInputValue: function() {\r\n return when()\r\n },\r\n _clearTextValue: function() {\r\n this._input().val(\"\");\r\n this._toggleEmptinessEventHandler();\r\n this.option(\"text\", \"\")\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this.callBase(e)\r\n },\r\n _renderInputValue: function() {\r\n this.option(\"displayValue\", this._searchValue());\r\n return this.callBase()\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (!saveEditingValue) {\r\n this._clearTextValue()\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._clearTagFocus();\r\n this._scrollContainer(\"start\")\r\n }\r\n this.callBase(e)\r\n },\r\n _initSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangeAction = this._createActionByOption(\"onSelectAllValueChanged\")\r\n },\r\n _renderList: function() {\r\n this.callBase();\r\n this._setListDataSourceFilter()\r\n },\r\n _canListHaveFocus: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\")\r\n },\r\n _listConfig: function() {\r\n var selectionMode = this.option(\"showSelectionControls\") ? \"all\" : \"multiple\";\r\n return extend(this.callBase(), {\r\n maxFilterLengthInRequest: this.option(\"maxFilterQueryLength\"),\r\n selectionMode: selectionMode,\r\n selectAllText: this.option(\"selectAllText\"),\r\n onSelectAllValueChanged: _ref => {\r\n var {\r\n value: value\r\n } = _ref;\r\n this._selectAllValueChangeAction({\r\n value: value\r\n })\r\n },\r\n selectAllMode: this.option(\"selectAllMode\"),\r\n selectedItems: this._selectedItems,\r\n onFocusedItemChanged: null\r\n })\r\n },\r\n _renderMultiSelect: function() {\r\n var d = new Deferred;\r\n this._updateTagsContainer(this._$textEditorInputContainer);\r\n this._renderInputSize();\r\n this._renderTags().done(() => {\r\n this._popup && this._popup.refreshPosition();\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _listItemClickHandler: function(e) {\r\n !this.option(\"showSelectionControls\") && this._clearTextValue();\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n this.callBase(e);\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _shouldClearFilter: function() {\r\n var shouldClearFilter = this.callBase();\r\n var showSelectionControls = this.option(\"showSelectionControls\");\r\n return !showSelectionControls && shouldClearFilter\r\n },\r\n _renderInputSize: function() {\r\n var $input = this._input();\r\n var value = $input.val();\r\n var isEmptyInput = isString(value) && value;\r\n var width = \"\";\r\n var size = \"\";\r\n var canTypeText = this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\");\r\n if (isEmptyInput && canTypeText) {\r\n var $calculationElement = createTextElementHiddenCopy($input, value, {\r\n includePaddings: true\r\n });\r\n $calculationElement.insertAfter($input);\r\n width = getOuterWidth($calculationElement) + 5;\r\n $calculationElement.remove()\r\n } else if (!value) {\r\n size = 1\r\n }\r\n $input.css(\"width\", width);\r\n $input.attr(\"size\", size)\r\n },\r\n _renderInputSubstitution: function() {\r\n this.callBase();\r\n this._updateWidgetHeight()\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || []\r\n },\r\n _multiTagRequired: function() {\r\n var values = this._getValue();\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n return isDefined(maxDisplayedTags) && values.length > maxDisplayedTags\r\n },\r\n _renderMultiTag: function($input) {\r\n var $tag = $(\"<div>\").addClass(TAGBOX_TAG_CLASS).addClass(TAGBOX_MULTI_TAG_CLASS);\r\n var args = {\r\n multiTagElement: getPublicElement($tag),\r\n selectedItems: this.option(\"selectedItems\")\r\n };\r\n this._multiTagPreparingAction(args);\r\n if (args.cancel) {\r\n return false\r\n }\r\n $tag.data(TAGBOX_TAG_DATA_KEY, args.text);\r\n $tag.insertBefore($input);\r\n this._tagTemplate.render({\r\n model: args.text,\r\n container: getPublicElement($tag)\r\n });\r\n return $tag\r\n },\r\n _getFilter: function(creator) {\r\n var dataSourceFilter = this._dataController.filter();\r\n var filterExpr = creator.getCombinedFilter(this.option(\"valueExpr\"), dataSourceFilter);\r\n var filterQueryLength = encodeURI(JSON.stringify(filterExpr)).length;\r\n var maxFilterQueryLength = this.option(\"maxFilterQueryLength\");\r\n if (filterQueryLength <= maxFilterQueryLength) {\r\n return filterExpr\r\n }\r\n errors.log(\"W1019\", maxFilterQueryLength)\r\n },\r\n _getFilteredItems: function(values) {\r\n var _this$_loadFilteredIt, _this$_list;\r\n null === (_this$_loadFilteredIt = this._loadFilteredItemsPromise) || void 0 === _this$_loadFilteredIt ? void 0 : _this$_loadFilteredIt.reject();\r\n var creator = new FilterCreator(values);\r\n var listSelectedItems = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.option(\"selectedItems\");\r\n var isListItemsLoaded = !!listSelectedItems && this._list._dataController.isLoaded();\r\n var selectedItems = listSelectedItems || this.option(\"selectedItems\");\r\n var clientFilterFunction = creator.getLocalFilter(this._valueGetter);\r\n var filteredItems = selectedItems.filter(clientFilterFunction);\r\n var selectedItemsAlreadyLoaded = filteredItems.length === values.length;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n if ((!this._isDataSourceChanged || isListItemsLoaded) && selectedItemsAlreadyLoaded) {\r\n return d.resolve(filteredItems).promise()\r\n } else {\r\n var {\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n } = dataController.loadOptions();\r\n var filter = this._getFilter(creator);\r\n dataController.loadFromStore({\r\n filter: filter,\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n }).done((data, extra) => {\r\n this._isDataSourceChanged = false;\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n var {\r\n data: items\r\n } = normalizeLoadResult(data, extra);\r\n var mappedItems = dataController.applyMapFunction(items);\r\n d.resolve(mappedItems.filter(clientFilterFunction))\r\n }).fail(d.reject);\r\n this._loadFilteredItemsPromise = d;\r\n return d.promise()\r\n }\r\n },\r\n _createTagsData: function(values, filteredItems) {\r\n var items = [];\r\n var cache = {};\r\n var isValueExprSpecified = \"this\" === this._valueGetterExpr();\r\n var filteredValues = {};\r\n filteredItems.forEach(filteredItem => {\r\n var filteredItemValue = isValueExprSpecified ? JSON.stringify(filteredItem) : this._valueGetter(filteredItem);\r\n filteredValues[filteredItemValue] = filteredItem\r\n });\r\n var loadItemPromises = [];\r\n values.forEach((value, index) => {\r\n var currentItem = filteredValues[isValueExprSpecified ? JSON.stringify(value) : value];\r\n if (isValueExprSpecified && !isDefined(currentItem)) {\r\n loadItemPromises.push(this._loadItem(value, cache).always(item => {\r\n var newItem = this._createTagData(item, value);\r\n items.splice(index, 0, newItem)\r\n }))\r\n } else {\r\n var newItem = this._createTagData(currentItem, value);\r\n items.splice(index, 0, newItem)\r\n }\r\n });\r\n var d = new Deferred;\r\n when.apply(this, loadItemPromises).always((function() {\r\n d.resolve(items)\r\n }));\r\n return d.promise()\r\n },\r\n _createTagData: function(item, value) {\r\n if (isDefined(item)) {\r\n this._selectedItems.push(item);\r\n return item\r\n } else {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var customItem = this._valueGetter(selectedItem) === value ? selectedItem : value;\r\n return customItem\r\n }\r\n },\r\n _isGroupedData: function() {\r\n return this.option(\"grouped\") && !this._dataController.group()\r\n },\r\n _getItemsByValues: function(values) {\r\n var resultItems = [];\r\n values.forEach(function(value) {\r\n var item = this._getItemFromPlain(value);\r\n if (isDefined(item)) {\r\n resultItems.push(item)\r\n }\r\n }.bind(this));\r\n return resultItems\r\n },\r\n _getFilteredGroupedItems: function(values) {\r\n var selectedItems = new Deferred;\r\n if (this._filteredGroupedItemsLoadPromise) {\r\n this._dataController.cancel(this._filteredGroupedItemsLoadPromise.operationId)\r\n }\r\n if (!this._dataController.items().length) {\r\n this._filteredGroupedItemsLoadPromise = this._dataController.load().done(() => {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }).fail(() => {\r\n selectedItems.resolve([])\r\n }).always(() => {\r\n this._filteredGroupedItemsLoadPromise = void 0\r\n })\r\n } else {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }\r\n return selectedItems.promise()\r\n },\r\n _loadTagsData: function() {\r\n var values = this._getValue();\r\n var tagData = new Deferred;\r\n this._selectedItems = [];\r\n var filteredItemsPromise = this._isGroupedData() ? this._getFilteredGroupedItems(values) : this._getFilteredItems(values);\r\n filteredItemsPromise.done(filteredItems => {\r\n var items = this._createTagsData(values, filteredItems);\r\n items.always((function(data) {\r\n tagData.resolve(data)\r\n }))\r\n }).fail(tagData.reject.bind(this));\r\n return tagData.promise()\r\n },\r\n _renderTags: function() {\r\n var d = new Deferred;\r\n var isPlainDataUsed = false;\r\n if (this._shouldGetItemsFromPlain(this._valuesToUpdate)) {\r\n this._selectedItems = this._getItemsFromPlain(this._valuesToUpdate);\r\n if (this._selectedItems.length === this._valuesToUpdate.length) {\r\n this._renderTagsImpl(this._selectedItems);\r\n isPlainDataUsed = true;\r\n d.resolve()\r\n }\r\n }\r\n if (!isPlainDataUsed) {\r\n this._loadTagsData().done(items => {\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n this._renderTagsImpl(items);\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _renderTagsImpl: function(items) {\r\n this._renderTagsCore(items);\r\n this._renderEmptyState();\r\n if (!this._preserveFocusedTag) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _shouldGetItemsFromPlain: function(values) {\r\n return values && this._dataController.isLoaded() && values.length <= this._getPlainItems().length\r\n },\r\n _getItemsFromPlain: function(values) {\r\n var selectedItems = this._getSelectedItemsFromList(values);\r\n var needFilterPlainItems = 0 === selectedItems.length && values.length > 0 || selectedItems.length < values.length;\r\n if (needFilterPlainItems) {\r\n var plainItems = this._getPlainItems();\r\n selectedItems = this._filterSelectedItems(plainItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _getSelectedItemsFromList: function(values) {\r\n var _this$_list2;\r\n var listSelectedItems = null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"selectedItems\");\r\n var selectedItems = [];\r\n if (values.length === (null === listSelectedItems || void 0 === listSelectedItems ? void 0 : listSelectedItems.length)) {\r\n selectedItems = this._filterSelectedItems(listSelectedItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _filterSelectedItems: function(plainItems, values) {\r\n var selectedItems = plainItems.filter(dataItem => {\r\n var currentValue;\r\n for (var i = 0; i < values.length; i++) {\r\n currentValue = values[i];\r\n if (isObject(currentValue)) {\r\n if (this._isValueEquals(dataItem, currentValue)) {\r\n return true\r\n }\r\n } else if (this._isValueEquals(this._valueGetter(dataItem), currentValue)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }, this);\r\n return selectedItems\r\n },\r\n _integrateInput: function() {\r\n this._isInputReady.resolve();\r\n this.callBase();\r\n var tagsContainer = this.$element().find(\".\".concat(TEXTEDITOR_INPUT_CONTAINER_CLASS));\r\n this._updateTagsContainer(tagsContainer);\r\n this._renderTagRemoveAction()\r\n },\r\n _renderTagsCore: function(items) {\r\n var _this$_isInputReady;\r\n null === (_this$_isInputReady = this._isInputReady) || void 0 === _this$_isInputReady ? void 0 : _this$_isInputReady.reject();\r\n this._isInputReady = new Deferred;\r\n this._renderField();\r\n this.option(\"selectedItems\", this._selectedItems.slice());\r\n this._cleanTags();\r\n if (this._input().length > 0) {\r\n this._isInputReady.resolve()\r\n }\r\n when(this._isInputReady).done(() => {\r\n this._renderTagsElements(items)\r\n })\r\n },\r\n _renderTagsElements(items) {\r\n var $multiTag = this._multiTagRequired() && this._renderMultiTag(this._input());\r\n var showMultiTagOnly = this.option(\"showMultiTagOnly\");\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n items.forEach((item, index) => {\r\n if ($multiTag && showMultiTagOnly || $multiTag && !showMultiTagOnly && index - maxDisplayedTags >= -1) {\r\n return false\r\n }\r\n this._renderTag(item, $multiTag || this._input())\r\n });\r\n if (this._isFocused()) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this._refreshTagElements()\r\n },\r\n _cleanTags: function() {\r\n if (this._multiTagRequired()) {\r\n this._tagElements().remove()\r\n } else {\r\n var $tags = this._tagElements();\r\n var values = this._getValue();\r\n each($tags, (function(_, tag) {\r\n var $tag = $(tag);\r\n var tagData = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n if (!(null !== values && void 0 !== values && values.includes(tagData))) {\r\n $tag.remove()\r\n }\r\n }))\r\n }\r\n this._updateElementAria()\r\n },\r\n _renderEmptyState: function() {\r\n var isEmpty = !(this._getValue().length || this._selectedItems.length || this._searchValue());\r\n this._toggleEmptiness(isEmpty);\r\n this._renderDisplayText()\r\n },\r\n _renderDisplayText: function() {\r\n this._renderInputSize()\r\n },\r\n _refreshTagElements: function() {\r\n this._tagElementsCache = this.$element().find(\".\".concat(TAGBOX_TAG_CLASS))\r\n },\r\n _tagElements: function() {\r\n return this._tagElementsCache\r\n },\r\n _applyTagTemplate: function(item, $tag) {\r\n this._tagTemplate.render({\r\n model: item,\r\n container: getPublicElement($tag)\r\n })\r\n },\r\n _renderTag: function(item, $input) {\r\n var value = this._valueGetter(item);\r\n if (!isDefined(value)) {\r\n return\r\n }\r\n var $tag = this._getTag(value);\r\n var displayValue = this._displayGetter(item);\r\n var itemModel = this._getItemModel(item, displayValue);\r\n if ($tag) {\r\n if (isDefined(displayValue)) {\r\n $tag.empty();\r\n this._applyTagTemplate(itemModel, $tag)\r\n }\r\n $tag.removeClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._updateElementAria($tag.attr(\"id\"))\r\n } else {\r\n var tagId = \"dx-\".concat(new Guid);\r\n $tag = this._createTag(value, $input, tagId);\r\n if (isDefined(item)) {\r\n this._applyTagTemplate(itemModel, $tag)\r\n } else {\r\n $tag.addClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._applyTagTemplate(value, $tag)\r\n }\r\n this._updateElementAria(tagId)\r\n }\r\n },\r\n _getItemModel: function(item, displayValue) {\r\n if (isObject(item) && isDefined(displayValue)) {\r\n return item\r\n } else {\r\n return ensureDefined(displayValue, \"\")\r\n }\r\n },\r\n _getTag: function(value) {\r\n var $tags = this._tagElements();\r\n var tagsLength = $tags.length;\r\n var result = false;\r\n for (var i = 0; i < tagsLength; i++) {\r\n var $tag = $tags[i];\r\n var tagData = elementData($tag, TAGBOX_TAG_DATA_KEY);\r\n if (value === tagData || equalByValue(value, tagData)) {\r\n result = $($tag);\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _createTag: function(value, $input, tagId) {\r\n return $(\"<div>\").attr(\"id\", tagId).addClass(TAGBOX_TAG_CLASS).data(TAGBOX_TAG_DATA_KEY, value).insertBefore($input)\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n this._toggleEmptiness(!this._getValue().length && !this._searchValue().length)\r\n },\r\n _customItemAddedHandler: function(e) {\r\n this.callBase(e);\r\n this._clearTextValue()\r\n },\r\n _removeTagHandler: function(args) {\r\n var e = args.event;\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n var $tag = $(e.target).closest(\".\".concat(TAGBOX_TAG_CLASS));\r\n this._removeTagElement($tag)\r\n },\r\n _removeTagElement: function($tag) {\r\n if ($tag.hasClass(TAGBOX_MULTI_TAG_CLASS)) {\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n this.option(\"value\", this._getValue().slice(0, this.option(\"maxDisplayedTags\")))\r\n } else {\r\n this.clear()\r\n }\r\n return\r\n }\r\n var itemValue = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n var itemId = $tag.attr(\"id\");\r\n this._removeTagWithUpdate(itemValue);\r\n this._updateElementAria(itemId, true);\r\n this._refreshTagElements()\r\n },\r\n _updateField: noop,\r\n _removeTagWithUpdate: function(itemValue) {\r\n var value = this._getValue().slice();\r\n this._removeTag(value, itemValue);\r\n this.option(\"value\", value);\r\n this.option(\"selectedItem\", null);\r\n if (0 === value.length) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _getCurrentValue: function() {\r\n return this._lastValue()\r\n },\r\n _selectionChangeHandler: function(e) {\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var value = this._getValue().slice();\r\n each(e.removedItems || [], (_, removedItem) => {\r\n this._removeTag(value, this._valueGetter(removedItem))\r\n });\r\n each(e.addedItems || [], (_, addedItem) => {\r\n this._addTag(value, this._valueGetter(addedItem))\r\n });\r\n this._updateWidgetHeight();\r\n if (!equalByValue(this._list.option(\"selectedItemKeys\"), this.option(\"value\"))) {\r\n var listSelectionChangeEvent = this._list._getSelectionChangeEvent();\r\n listSelectionChangeEvent && this._saveValueChangeEvent(listSelectionChangeEvent);\r\n this.option(\"value\", value)\r\n }\r\n this._list._saveSelectionChangeEvent(void 0)\r\n },\r\n _removeTag: function(value, item) {\r\n var index = this._valueIndex(item, value);\r\n if (index >= 0) {\r\n value.splice(index, 1)\r\n }\r\n },\r\n _addTag: function(value, item) {\r\n var index = this._valueIndex(item);\r\n if (index < 0) {\r\n value.push(item)\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n return this._selectedItems.slice()\r\n },\r\n _completeSelection: function(value) {\r\n if (!this.option(\"showSelectionControls\")) {\r\n this._setValue(value)\r\n }\r\n },\r\n _setValue: function(value) {\r\n if (null === value) {\r\n return\r\n }\r\n var useButtons = \"useButtons\" === this.option(\"applyValueMode\");\r\n var valueIndex = this._valueIndex(value);\r\n var values = (useButtons ? this._list.option(\"selectedItemKeys\") : this._getValue()).slice();\r\n if (valueIndex >= 0) {\r\n values.splice(valueIndex, 1)\r\n } else {\r\n values.push(value)\r\n }\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n this._list.option(\"selectedItemKeys\", values)\r\n } else {\r\n this.option(\"value\", values)\r\n }\r\n },\r\n _isSelectedValue: function(value, cache) {\r\n return this._valueIndex(value, null, cache) > -1\r\n },\r\n _valueIndex: function(value, values, cache) {\r\n var result = -1;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.indexByValues) {\r\n cache.indexByValues = {};\r\n values = values || this._getValue();\r\n values.forEach((function(value, index) {\r\n cache.indexByValues[value] = index\r\n }))\r\n }\r\n if (value in cache.indexByValues) {\r\n return cache.indexByValues[value]\r\n }\r\n }\r\n values = values || this._getValue();\r\n each(values, (index, selectedValue) => {\r\n if (this._isValueEquals(value, selectedValue)) {\r\n result = index;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _lastValue: function() {\r\n var values = this._getValue();\r\n var lastValue = values[values.length - 1];\r\n return null !== lastValue && void 0 !== lastValue ? lastValue : null\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\")\r\n },\r\n _searchHandler: function(e) {\r\n if (this.option(\"searchEnabled\") && !!e && !this._isTagRemoved) {\r\n this.callBase(arguments);\r\n this._setListDataSourceFilter()\r\n }\r\n this._updateWidgetHeight();\r\n delete this._isTagRemoved\r\n },\r\n _updateWidgetHeight: function() {\r\n var element = this.$element();\r\n var originalHeight = getHeight(element);\r\n this._renderInputSize();\r\n var currentHeight = getHeight(element);\r\n if (this._popup && this.option(\"opened\") && this._isEditable() && currentHeight !== originalHeight) {\r\n this._popup.repaint()\r\n }\r\n },\r\n _refreshSelected: function() {\r\n var _this$_list3;\r\n (null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.getDataSource()) && this._list.option(\"selectedItems\", this._selectedItems)\r\n },\r\n _resetListDataSourceFilter: function() {\r\n var dataController = this._dataController;\r\n delete this._userFilter;\r\n dataController.filter(null);\r\n dataController.reload()\r\n },\r\n _setListDataSourceFilter: function() {\r\n if (!this.option(\"hideSelectedItems\") || !this._list) {\r\n return\r\n }\r\n var dataController = this._dataController;\r\n var valueGetterExpr = this._valueGetterExpr();\r\n if (isString(valueGetterExpr) && \"this\" !== valueGetterExpr) {\r\n var filter = this._dataSourceFilterExpr();\r\n if (void 0 === this._userFilter) {\r\n this._userFilter = dataController.filter() || null\r\n }\r\n this._userFilter && filter.push(this._userFilter);\r\n filter.length ? dataController.filter(filter) : dataController.filter(null)\r\n } else {\r\n dataController.filter(this._dataSourceFilterFunction.bind(this))\r\n }\r\n dataController.load()\r\n },\r\n _dataSourceFilterExpr: function() {\r\n var filter = [];\r\n this._getValue().forEach(value => filter.push([\"!\", [this._valueGetterExpr(), value]]));\r\n return filter\r\n },\r\n _dataSourceFilterFunction: function(itemData) {\r\n var itemValue = this._valueGetter(itemData);\r\n var result = true;\r\n each(this._getValue(), (index, value) => {\r\n if (this._isValueEquals(value, itemValue)) {\r\n result = false;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._isDataSourceChanged = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyButtonHandler: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n this.option(\"value\", this._getSortedListValues());\r\n this._clearTextValue();\r\n this.callBase();\r\n this._cancelSearchIfNeed()\r\n },\r\n _getSortedListValues: function() {\r\n var listValues = this._getListValues();\r\n var currentValue = this.option(\"value\") || [];\r\n var existedItems = listValues.length ? getIntersection(currentValue, listValues) : [];\r\n var newItems = existedItems.length ? removeDuplicates(listValues, currentValue) : listValues;\r\n return existedItems.concat(newItems)\r\n },\r\n _getListValues: function() {\r\n if (!this._list) {\r\n return []\r\n }\r\n return this._getPlainItems(this._list.option(\"selectedItems\")).map(item => this._valueGetter(item))\r\n },\r\n _setListDataSource: function() {\r\n var currentValue = this._getValue();\r\n this.callBase();\r\n if (currentValue !== this.option(\"value\")) {\r\n this.option(\"value\", currentValue)\r\n }\r\n this._refreshSelected()\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (\"useButtons\" === this.option(\"applyValueMode\") && !this.option(\"opened\")) {\r\n this._refreshSelected()\r\n }\r\n },\r\n clear: function() {\r\n this._restoreInputText();\r\n var defaultValue = this._getDefaultOptions().value;\r\n var currentValue = this.option(\"value\");\r\n if (defaultValue && 0 === defaultValue.length && currentValue && defaultValue.length === currentValue.length) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._defaultTagTemplate;\r\n delete this._valuesToUpdate;\r\n delete this._tagTemplate\r\n },\r\n _getSelectedItemsDifference(newItems, previousItems) {\r\n if (!newItems.length) {\r\n return {\r\n addedItems: [],\r\n removedItems: previousItems.slice()\r\n }\r\n }\r\n if (!previousItems.length) {\r\n return {\r\n addedItems: newItems.slice(),\r\n removedItems: []\r\n }\r\n }\r\n var previousItemsValuesMap = previousItems.reduce((map, item) => {\r\n var value = this._valueGetter(item);\r\n map[value] = item;\r\n return map\r\n }, {});\r\n var addedItems = [];\r\n newItems.forEach(item => {\r\n var value = this._valueGetter(item);\r\n if (!previousItemsValuesMap[value]) {\r\n addedItems.push(item)\r\n }\r\n delete previousItemsValuesMap[value]\r\n });\r\n return {\r\n addedItems: addedItems,\r\n removedItems: Object.values(previousItemsValuesMap)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"onSelectAllValueChanged\":\r\n this._initSelectAllValueChangedAction();\r\n break;\r\n case \"onMultiTagPreparing\":\r\n this._initMultiTagPreparingAction();\r\n this._renderTags();\r\n break;\r\n case \"hideSelectedItems\":\r\n if (value) {\r\n this._setListDataSourceFilter()\r\n } else {\r\n this._resetListDataSourceFilter()\r\n }\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._toggleSubmitElement(value);\r\n break;\r\n case \"displayExpr\":\r\n this.callBase(args);\r\n this._initTemplates();\r\n this._invalidate();\r\n break;\r\n case \"tagTemplate\":\r\n this._initTagTemplate();\r\n this._invalidate();\r\n break;\r\n case \"selectAllText\":\r\n this._setListOption(\"selectAllText\", this.option(\"selectAllText\"));\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this.callBase(args);\r\n !value && this._refreshEvents();\r\n break;\r\n case \"value\":\r\n this._valuesToUpdate = value;\r\n this.callBase(args);\r\n this._valuesToUpdate = void 0;\r\n this._setListDataSourceFilter();\r\n break;\r\n case \"maxDisplayedTags\":\r\n case \"showMultiTagOnly\":\r\n this._renderTags();\r\n break;\r\n case \"selectAllMode\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"selectedItems\":\r\n this._selectionChangedAction(this._getSelectedItemsDifference(value, previousValue));\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TAGBOX_SINGLE_LINE_CLASS, !value);\r\n this._renderSingleLineScroll();\r\n break;\r\n case \"maxFilterQueryLength\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getActualSearchValue: function() {\r\n return this.callBase() || this._searchValue()\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n this._clearFilter()\r\n }\r\n});\r\nregisterComponent(\"dxTagBox\", TagBox);\r\nexport default TagBox;\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_group.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n deferRender\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_GROUP_HORIZONTAL_CLASS = \"dx-radiogroup-horizontal\";\r\nvar RADIO_GROUP_VERTICAL_CLASS = \"dx-radiogroup-vertical\";\r\nvar RADIO_VALUE_CONTAINER_CLASS = \"dx-radio-value-container\";\r\nvar RADIO_GROUP_CLASS = \"dx-radiogroup\";\r\nvar RADIO_FEEDBACK_HIDE_TIMEOUT = 100;\r\nclass RadioCollection extends CollectionWidget {\r\n _focusTarget() {\r\n return this.$element().parent()\r\n }\r\n _nullValueSelectionSupported() {\r\n return true\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n _itemAttributes: {\r\n role: \"radio\"\r\n }\r\n })\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n deferRender(() => {\r\n this.itemElements().addClass(RADIO_BUTTON_CLASS)\r\n })\r\n }\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n }\r\n _postprocessRenderItem(args) {\r\n var {\r\n itemData: {\r\n html: html\r\n },\r\n itemElement: itemElement\r\n } = args;\r\n if (!html) {\r\n var $radio = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo($radio);\r\n var $radioContainer = $(\"<div>\").append($radio).addClass(RADIO_VALUE_CONTAINER_CLASS);\r\n $(itemElement).prepend($radioContainer)\r\n }\r\n super._postprocessRenderItem(args)\r\n }\r\n _processSelectableItem($itemElement, isSelected) {\r\n super._processSelectableItem($itemElement, isSelected);\r\n $itemElement.toggleClass(RADIO_BUTTON_CHECKED_CLASS, isSelected).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).first().toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, isSelected);\r\n this.setAria(\"checked\", isSelected, $itemElement)\r\n }\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n }\r\n _supportedKeys() {\r\n var parent = super._supportedKeys();\r\n return extend({}, parent, {\r\n enter: function(e) {\r\n e.preventDefault();\r\n return parent.enter.apply(this, arguments)\r\n },\r\n space: function(e) {\r\n e.preventDefault();\r\n return parent.space.apply(this, arguments)\r\n }\r\n })\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _setAriaSelectionAttribute() {}\r\n}\r\nclass RadioGroup extends Editor {\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _defaultOptionsRules() {\r\n var defaultOptionsRules = super._defaultOptionsRules();\r\n return defaultOptionsRules.concat([{\r\n device: {\r\n tablet: true\r\n },\r\n options: {\r\n layout: \"horizontal\"\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n }\r\n _fireContentReadyAction(force) {\r\n force && super._fireContentReadyAction()\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n layout: \"vertical\"\r\n }))\r\n }\r\n _getItemValue(item) {\r\n return this._valueGetter ? this._valueGetter(item) : item.text\r\n }\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n }\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(RADIO_BUTTON_CLASS);\r\n this._feedbackHideTimeout = RADIO_FEEDBACK_HIDE_TIMEOUT;\r\n this._initDataExpressions()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(RADIO_GROUP_CLASS);\r\n this._renderSubmitElement();\r\n this.setAria(\"role\", \"radiogroup\");\r\n this._renderRadios();\r\n this._renderLayout();\r\n super._initMarkup()\r\n }\r\n _itemClickHandler(_ref) {\r\n var {\r\n itemElement: itemElement,\r\n event: event,\r\n itemData: itemData\r\n } = _ref;\r\n if (this.itemElements().is(itemElement)) {\r\n var newValue = this._getItemValue(itemData);\r\n if (newValue !== this.option(\"value\")) {\r\n this._saveValueChangeEvent(event);\r\n this.option(\"value\", newValue)\r\n }\r\n }\r\n }\r\n _getSelectedItemKeys() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"value\");\r\n var isNullSelectable = \"this\" !== this.option(\"valueExpr\");\r\n var shouldSelectValue = isNullSelectable && null === value || isDefined(value);\r\n return shouldSelectValue ? [value] : []\r\n }\r\n _setSelection(currentValue) {\r\n var value = this._unwrappedValue(currentValue);\r\n this._setCollectionWidgetOption(\"selectedItemKeys\", this._getSelectedItemKeys(value))\r\n }\r\n _renderValidationState() {\r\n var _this$_validationMess;\r\n super._renderValidationState();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$content().attr(\"role\", \"alert\")\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n this._dataExpressionOptionChanged(args);\r\n switch (name) {\r\n case \"dataSource\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"accessKey\":\r\n case \"tabIndex\":\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"disabled\":\r\n super._optionChanged(args);\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"valueExpr\":\r\n this._setCollectionWidgetOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"value\":\r\n this._setSelection(value);\r\n this._setSubmitValue(value);\r\n super._optionChanged(args);\r\n break;\r\n case \"items\":\r\n this._setSelection(this.option(\"value\"));\r\n break;\r\n case \"itemTemplate\":\r\n case \"displayExpr\":\r\n break;\r\n case \"layout\":\r\n this._renderLayout();\r\n this._updateItemsSize();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._updateItemsSize()\r\n }\r\n _renderLayout() {\r\n var layout = this.option(\"layout\");\r\n var $element = this.$element();\r\n $element.toggleClass(RADIO_GROUP_VERTICAL_CLASS, \"vertical\" === layout);\r\n $element.toggleClass(RADIO_GROUP_HORIZONTAL_CLASS, \"horizontal\" === layout)\r\n }\r\n _renderRadios() {\r\n this._areRadiosCreated = new Deferred;\r\n var $radios = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._createComponent($radios, RadioCollection, {\r\n onInitialized: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n this._radios = component\r\n },\r\n onContentReady: e => {\r\n this._fireContentReadyAction(true)\r\n },\r\n onItemClick: this._itemClickHandler.bind(this),\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n dataSource: this._dataSource,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n noDataText: \"\",\r\n scrollingEnabled: false,\r\n selectByClick: false,\r\n selectionMode: \"single\",\r\n selectedItemKeys: this._getSelectedItemKeys(),\r\n tabIndex: tabIndex\r\n });\r\n this._areRadiosCreated.resolve()\r\n }\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue()\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n value: true\r\n })\r\n }\r\n _setSubmitValue(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var submitValue = \"this\" === this.option(\"valueExpr\") ? this._displayGetter(value) : value;\r\n this._$submitElement.val(submitValue)\r\n }\r\n _setCollectionWidgetOption() {\r\n this._areRadiosCreated.done(this._setWidgetOption.bind(this, \"_radios\", arguments))\r\n }\r\n _updateItemsSize() {\r\n if (\"horizontal\" === this.option(\"layout\")) {\r\n this.itemElements().css(\"height\", \"auto\")\r\n } else {\r\n var itemsCount = this.option(\"items\").length;\r\n this.itemElements().css(\"height\", 100 / itemsCount + \"%\")\r\n }\r\n }\r\n focus() {\r\n var _this$_radios;\r\n null === (_this$_radios = this._radios) || void 0 === _this$_radios ? void 0 : _this$_radios.focus()\r\n }\r\n itemElements() {\r\n var _this$_radios2;\r\n return null === (_this$_radios2 = this._radios) || void 0 === _this$_radios2 ? void 0 : _this$_radios2.itemElements()\r\n }\r\n}\r\nRadioGroup.include(DataExpressionMixin);\r\nregisterComponent(\"dxRadioGroup\", RadioGroup);\r\nexport default RadioGroup;\r\n","/**\r\n * DevExtreme (esm/ui/radio_group.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RadioGroup from \"./radio_group/radio_group\";\r\nexport default RadioGroup;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_menu_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar EditDecoratorMenuHelperMixin = {\r\n _menuEnabled: function() {\r\n return !!this._menuItems().length\r\n },\r\n _menuItems: function() {\r\n return this._list.option(\"menuItems\")\r\n },\r\n _deleteEnabled: function() {\r\n return this._list.option(\"allowItemDeleting\")\r\n },\r\n _fireMenuAction: function($itemElement, action) {\r\n this._list._itemEventHandlerByHandler($itemElement, action, {}, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n};\r\nexport default EditDecoratorMenuHelperMixin;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.context.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar CONTEXTMENU_CLASS = \"dx-list-context-menu\";\r\nvar CONTEXTMENU_MENUCONTENT_CLASS = \"dx-list-context-menucontent\";\r\nregisterDecorator(\"menu\", \"context\", EditDecorator.inherit({\r\n _init: function() {\r\n var $menu = $(\"<div>\").addClass(CONTEXTMENU_CLASS);\r\n this._list.$element().append($menu);\r\n this._menu = this._renderOverlay($menu)\r\n },\r\n _renderOverlay: function($element) {\r\n return this._list._createComponent($element, Overlay, {\r\n shading: false,\r\n deferRendering: true,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: function(e) {\r\n return !$(e.target).closest(\".\" + CONTEXTMENU_CLASS).length\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n height: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n height: function() {\r\n return getOuterHeight(this._$menuList)\r\n }.bind(this),\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 0,\r\n from: {\r\n opacity: 1\r\n },\r\n to: {\r\n opacity: 0\r\n }\r\n }\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n height: function() {\r\n return this._$menuList ? getOuterHeight(this._$menuList) : 0\r\n }.bind(this),\r\n width: function() {\r\n return getOuterWidth(this._list.$element())\r\n }.bind(this),\r\n onContentReady: this._renderMenuContent.bind(this)\r\n })\r\n },\r\n _renderMenuContent: function(e) {\r\n var $overlayContent = e.component.$content();\r\n var items = this._menuItems().slice();\r\n if (this._deleteEnabled()) {\r\n items.push({\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n action: this._deleteItem.bind(this)\r\n })\r\n }\r\n this._$menuList = $(\"<div>\");\r\n this._list._createComponent(this._$menuList, ListBase, {\r\n items: items,\r\n onItemClick: this._menuItemClickHandler.bind(this),\r\n height: \"auto\",\r\n integrationOptions: {}\r\n });\r\n $overlayContent.addClass(CONTEXTMENU_MENUCONTENT_CLASS);\r\n $overlayContent.append(this._$menuList)\r\n },\r\n _menuItemClickHandler: function(args) {\r\n this._menu.hide();\r\n this._fireMenuAction(this._$itemWithMenu, args.itemData.action)\r\n },\r\n _deleteItem: function() {\r\n this._list.deleteItem(this._$itemWithMenu)\r\n },\r\n handleContextMenu: function($itemElement) {\r\n this._$itemWithMenu = $itemElement;\r\n this._menu.option({\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: $itemElement,\r\n collision: \"flip\"\r\n }\r\n });\r\n this._menu.show();\r\n return true\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar abstract = EditDecorator.abstract;\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar POINTER_DOWN_EVENT_NAME = addNamespace(pointerEvents.down, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar LIST_ITEM_CONTENT_CLASS = \"dx-list-item-content\";\r\nvar SWITCHABLE_DELETE_READY_CLASS = \"dx-list-switchable-delete-ready\";\r\nvar SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-shield-positioning\";\r\nvar SWITCHABLE_DELETE_TOP_SHIELD_CLASS = \"dx-list-switchable-delete-top-shield\";\r\nvar SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS = \"dx-list-switchable-delete-bottom-shield\";\r\nvar SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-item-shield-positioning\";\r\nvar SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS = \"dx-list-switchable-delete-item-content-shield\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SwitchableEditDecorator = EditDecorator.inherit({\r\n _init: function() {\r\n this._$topShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_TOP_SHIELD_CLASS);\r\n this._$bottomShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS);\r\n this._$itemContentShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS);\r\n eventsEngine.on(this._$topShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n eventsEngine.on(this._$bottomShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n this._list.$element().append(this._$topShield.toggle(false)).append(this._$bottomShield.toggle(false))\r\n },\r\n handleClick: function() {\r\n return this._cancelDeleteReadyItem()\r\n },\r\n _cancelDeleteReadyItem: function() {\r\n if (!this._$readyToDeleteItem) {\r\n return false\r\n }\r\n this._cancelDelete(this._$readyToDeleteItem);\r\n return true\r\n },\r\n _cancelDelete: function($itemElement) {\r\n this._toggleDeleteReady($itemElement, false)\r\n },\r\n _toggleDeleteReady: function($itemElement, readyToDelete) {\r\n if (void 0 === readyToDelete) {\r\n readyToDelete = !this._isReadyToDelete($itemElement)\r\n }\r\n this._toggleShields($itemElement, readyToDelete);\r\n this._toggleScrolling(readyToDelete);\r\n this._cacheReadyToDeleteItem($itemElement, readyToDelete);\r\n this._animateToggleDelete($itemElement, readyToDelete)\r\n },\r\n _isReadyToDelete: function($itemElement) {\r\n return $itemElement.hasClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _toggleShields: function($itemElement, enabled) {\r\n this._list.$element().toggleClass(SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS, enabled);\r\n this._$topShield.toggle(enabled);\r\n this._$bottomShield.toggle(enabled);\r\n if (enabled) {\r\n this._updateShieldsHeight($itemElement)\r\n }\r\n this._toggleContentShield($itemElement, enabled)\r\n },\r\n _updateShieldsHeight: function($itemElement) {\r\n var $list = this._list.$element();\r\n var listTopOffset = $list.offset().top;\r\n var listHeight = getOuterHeight($list);\r\n var itemTopOffset = $itemElement.offset().top;\r\n var itemHeight = getOuterHeight($itemElement);\r\n var dirtyTopShieldHeight = itemTopOffset - listTopOffset;\r\n var dirtyBottomShieldHeight = listHeight - itemHeight - dirtyTopShieldHeight;\r\n setHeight(this._$topShield, Math.max(dirtyTopShieldHeight, 0));\r\n setHeight(this._$bottomShield, Math.max(dirtyBottomShieldHeight, 0))\r\n },\r\n _toggleContentShield: function($itemElement, enabled) {\r\n if (enabled) {\r\n $itemElement.find(\".\" + LIST_ITEM_CONTENT_CLASS).first().append(this._$itemContentShield)\r\n } else {\r\n this._$itemContentShield.detach()\r\n }\r\n },\r\n _toggleScrolling: function(readyToDelete) {\r\n var scrollView = this._list.$element().dxScrollView(\"instance\");\r\n if (readyToDelete) {\r\n scrollView.on(\"start\", this._cancelScrolling)\r\n } else {\r\n scrollView.off(\"start\", this._cancelScrolling)\r\n }\r\n },\r\n _cancelScrolling: function(args) {\r\n args.event.cancel = true\r\n },\r\n _cacheReadyToDeleteItem: function($itemElement, cache) {\r\n if (cache) {\r\n this._$readyToDeleteItem = $itemElement\r\n } else {\r\n delete this._$readyToDeleteItem\r\n }\r\n },\r\n _animateToggleDelete: function($itemElement, readyToDelete) {\r\n if (readyToDelete) {\r\n this._enablePositioning($itemElement);\r\n this._prepareDeleteReady($itemElement);\r\n this._animatePrepareDeleteReady($itemElement);\r\n eventsEngine.off($itemElement, pointerEvents.up)\r\n } else {\r\n this._forgetDeleteReady($itemElement);\r\n this._animateForgetDeleteReady($itemElement).done(this._disablePositioning.bind(this, $itemElement))\r\n }\r\n },\r\n _enablePositioning: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.on($itemElement, ACTIVE_EVENT_NAME, noop);\r\n eventsEngine.one($itemElement, pointerEvents.up, this._disablePositioning.bind(this, $itemElement))\r\n },\r\n _disablePositioning: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.off($itemElement, ACTIVE_EVENT_NAME)\r\n },\r\n _prepareDeleteReady: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _forgetDeleteReady: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _animatePrepareDeleteReady: abstract,\r\n _animateForgetDeleteReady: abstract,\r\n _getDeleteButtonContainer: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n return $itemElement.children(\".\" + SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS)\r\n },\r\n _deleteItem: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n this._getDeleteButtonContainer($itemElement).detach();\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement).always(this._cancelDelete.bind(this, $itemElement))\r\n },\r\n _isRtlEnabled: function() {\r\n return this._list.option(\"rtlEnabled\")\r\n },\r\n dispose: function() {\r\n if (this._$topShield) {\r\n this._$topShield.remove()\r\n }\r\n if (this._$bottomShield) {\r\n this._$bottomShield.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nexport default SwitchableEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.button.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport fx from \"../../animation/fx\";\r\nimport Button from \"../button\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nimport {\r\n isMaterialBased\r\n} from \"../themes\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS = \"dx-list-switchable-delete-button-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS = \"dx-list-switchable-delete-button-inner-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_CLASS = \"dx-list-switchable-delete-button\";\r\nvar SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION = 200;\r\nvar SwitchableButtonEditDecorator = SwitchableEditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $buttonContainer = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS);\r\n var $buttonWrapper = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS);\r\n var $buttonInnerWrapper = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS);\r\n var $button = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n type: \"danger\",\r\n stylingMode: isMaterialBased() ? \"text\" : \"contained\",\r\n onClick: function(e) {\r\n this._deleteItem();\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $buttonContainer.append($buttonWrapper);\r\n $buttonWrapper.append($buttonInnerWrapper);\r\n $buttonInnerWrapper.append($button);\r\n this._$buttonContainer = $buttonContainer\r\n },\r\n _enablePositioning: function($itemElement) {\r\n this.callBase.apply(this, arguments);\r\n fx.stop(this._$buttonContainer, true);\r\n this._$buttonContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = getWidth(this._list.$element());\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth : -buttonWidth;\r\n var toValue = rtl ? listWidth - buttonWidth : 0;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _animateForgetDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = getWidth(this._list.$element());\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth - buttonWidth : 0;\r\n var toValue = rtl ? listWidth : -buttonWidth;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _buttonWidth: function() {\r\n if (!this._buttonContainerWidth) {\r\n this._buttonContainerWidth = getOuterWidth(this._$buttonContainer)\r\n }\r\n return this._buttonContainerWidth\r\n },\r\n dispose: function() {\r\n if (this._$buttonContainer) {\r\n this._$buttonContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nvar TOGGLE_DELETE_SWITCH_CONTAINER_CLASS = \"dx-list-toggle-delete-switch-container\";\r\nvar TOGGLE_DELETE_SWITCH_CLASS = \"dx-list-toggle-delete-switch\";\r\nregisterDecorator(\"delete\", \"toggle\", SwitchableButtonEditDecorator.inherit({\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $toggle = $(\"<div>\").addClass(TOGGLE_DELETE_SWITCH_CLASS);\r\n this._list._createComponent($toggle, Button, {\r\n icon: \"toggle-delete\",\r\n onClick: function(e) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement);\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(TOGGLE_DELETE_SWITCH_CONTAINER_CLASS);\r\n $container.append($toggle)\r\n }\r\n}));\r\nregisterDecorator(\"delete\", \"slideButton\", SwitchableButtonEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _swipeEndHandler: function($itemElement, args) {\r\n if (0 !== args.targetOffset) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement)\r\n }\r\n return true\r\n }\r\n}));\r\nexport default SwitchableButtonEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.slide.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n isMaterialBased\r\n} from \"../themes\";\r\nimport ActionSheet from \"../action_sheet\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar SLIDE_MENU_CLASS = \"dx-list-slide-menu\";\r\nvar SLIDE_MENU_WRAPPER_CLASS = \"dx-list-slide-menu-wrapper\";\r\nvar SLIDE_MENU_CONTENT_CLASS = \"dx-list-slide-menu-content\";\r\nvar SLIDE_MENU_BUTTONS_CONTAINER_CLASS = \"dx-list-slide-menu-buttons-container\";\r\nvar SLIDE_MENU_BUTTONS_CLASS = \"dx-list-slide-menu-buttons\";\r\nvar SLIDE_MENU_BUTTON_CLASS = \"dx-list-slide-menu-button\";\r\nvar SLIDE_MENU_BUTTON_MENU_CLASS = \"dx-list-slide-menu-button-menu\";\r\nvar SLIDE_MENU_BUTTON_DELETE_CLASS = \"dx-list-slide-menu-button-delete\";\r\nvar SLIDE_MENU_ANIMATION_DURATION = 400;\r\nvar SLIDE_MENU_ANIMATION_EASING = \"cubic-bezier(0.075, 0.82, 0.165, 1)\";\r\nregisterDecorator(\"menu\", \"slide\", SwitchableEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer = $(\"<div>\").addClass(SLIDE_MENU_BUTTONS_CONTAINER_CLASS);\r\n eventsEngine.on(this._$buttonsContainer, ACTIVE_EVENT_NAME, noop);\r\n this._$buttons = $(\"<div>\").addClass(SLIDE_MENU_BUTTONS_CLASS).appendTo(this._$buttonsContainer);\r\n this._renderMenu();\r\n this._renderDeleteButton()\r\n },\r\n _renderMenu: function() {\r\n if (!this._menuEnabled()) {\r\n return\r\n }\r\n var menuItems = this._menuItems();\r\n if (1 === menuItems.length) {\r\n var menuItem = menuItems[0];\r\n this._renderMenuButton(menuItem.text, function(e) {\r\n e.stopPropagation();\r\n this._fireAction(menuItem)\r\n }.bind(this))\r\n } else {\r\n var $menu = $(\"<div>\").addClass(SLIDE_MENU_CLASS);\r\n this._menu = this._list._createComponent($menu, ActionSheet, {\r\n showTitle: false,\r\n items: menuItems,\r\n onItemClick: function(args) {\r\n this._fireAction(args.itemData)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $menu.appendTo(this._list.$element());\r\n var $menuButton = this._renderMenuButton(messageLocalization.format(\"dxListEditDecorator-more\"), function(e) {\r\n e.stopPropagation();\r\n this._menu.show()\r\n }.bind(this));\r\n this._menu.option(\"target\", $menuButton)\r\n }\r\n },\r\n _renderMenuButton: function(text, action) {\r\n var $menuButton = $(\"<div>\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_MENU_CLASS).text(text);\r\n this._$buttons.append($menuButton);\r\n eventsEngine.on($menuButton, CLICK_EVENT_NAME, action);\r\n return $menuButton\r\n },\r\n _renderDeleteButton: function() {\r\n if (!this._deleteEnabled()) {\r\n return\r\n }\r\n var $deleteButton = $(\"<div>\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_DELETE_CLASS).text(isMaterialBased() ? \"\" : messageLocalization.format(\"dxListEditDecorator-delete\"));\r\n eventsEngine.on($deleteButton, CLICK_EVENT_NAME, function(e) {\r\n e.stopPropagation();\r\n this._deleteItem()\r\n }.bind(this));\r\n this._$buttons.append($deleteButton)\r\n },\r\n _fireAction: function(menuItem) {\r\n this._fireMenuAction($(this._cachedNode), menuItem.action);\r\n this._cancelDeleteReadyItem()\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n $itemElement.addClass(SLIDE_MENU_WRAPPER_CLASS);\r\n var $slideMenuContent = $(\"<div>\").addClass(SLIDE_MENU_CONTENT_CLASS);\r\n $itemElement.wrapInner($slideMenuContent)\r\n },\r\n _getDeleteButtonContainer: function() {\r\n return this._$buttonsContainer\r\n },\r\n handleClick: function(_, e) {\r\n if ($(e.target).closest(\".\" + SLIDE_MENU_CONTENT_CLASS).length) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._enablePositioning($itemElement);\r\n this._cacheItemData($itemElement);\r\n this._setPositions(this._getPositions(0))\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var isItemReadyToDelete = this._isReadyToDelete($itemElement);\r\n var moveJustStarted = this._getCurrentPositions().content === this._getStartPositions().content;\r\n if (moveJustStarted && !isItemReadyToDelete && args.offset * signCorrection > 0) {\r\n args.cancel = true;\r\n return\r\n }\r\n var offset = this._cachedItemWidth * args.offset;\r\n var startOffset = isItemReadyToDelete ? -this._cachedButtonWidth * signCorrection : 0;\r\n var correctedOffset = (offset + startOffset) * signCorrection;\r\n var percent = correctedOffset < 0 ? Math.abs((offset + startOffset) / this._cachedButtonWidth) : 0;\r\n this._setPositions(this._getPositions(percent));\r\n return true\r\n },\r\n _getStartPositions: function() {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n return {\r\n content: 0,\r\n buttonsContainer: rtl ? -this._cachedButtonWidth : this._cachedItemWidth,\r\n buttons: -this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getPositions: function(percent) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var startPositions = this._getStartPositions();\r\n return {\r\n content: startPositions.content - percent * this._cachedButtonWidth * signCorrection,\r\n buttonsContainer: startPositions.buttonsContainer - Math.min(percent, 1) * this._cachedButtonWidth * signCorrection,\r\n buttons: startPositions.buttons + Math.min(percent, 1) * this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getCurrentPositions: function() {\r\n return {\r\n content: locate(this._$cachedContent).left,\r\n buttonsContainer: locate(this._$buttonsContainer).left,\r\n buttons: locate(this._$buttons).left\r\n }\r\n },\r\n _setPositions: function(positions) {\r\n move(this._$cachedContent, {\r\n left: positions.content\r\n });\r\n move(this._$buttonsContainer, {\r\n left: positions.buttonsContainer\r\n });\r\n move(this._$buttons, {\r\n left: positions.buttons\r\n })\r\n },\r\n _cacheItemData: function($itemElement) {\r\n if ($itemElement[0] === this._cachedNode) {\r\n return\r\n }\r\n this._$cachedContent = $itemElement.find(\".\" + SLIDE_MENU_CONTENT_CLASS);\r\n this._cachedItemWidth = getOuterWidth($itemElement);\r\n this._cachedButtonWidth = this._cachedButtonWidth || getOuterWidth(this._$buttons);\r\n setWidth(this._$buttonsContainer, this._cachedButtonWidth);\r\n if (this._$cachedContent.length) {\r\n this._cachedNode = $itemElement[0]\r\n }\r\n },\r\n _minButtonContainerLeftOffset: function() {\r\n return this._cachedItemWidth - this._cachedButtonWidth\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n this._cacheItemData($itemElement);\r\n var signCorrection = this._isRtlEnabled() ? 1 : -1;\r\n var offset = this._cachedItemWidth * args.offset;\r\n var endedAtReadyToDelete = !this._isReadyToDelete($itemElement) && offset * signCorrection > .2 * this._cachedButtonWidth;\r\n var readyToDelete = args.targetOffset === signCorrection && endedAtReadyToDelete;\r\n this._toggleDeleteReady($itemElement, readyToDelete);\r\n return true\r\n },\r\n _enablePositioning: function($itemElement) {\r\n fx.stop(this._$cachedContent, true);\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n return this._animateToPositions(this._getPositions(1))\r\n },\r\n _animateForgetDeleteReady: function($itemElement) {\r\n this._cacheItemData($itemElement);\r\n return this._animateToPositions(this._getPositions(0))\r\n },\r\n _animateToPositions: function(positions) {\r\n var that = this;\r\n var currentPosition = this._getCurrentPositions();\r\n var durationTimePart = Math.min(Math.abs(currentPosition.content - positions.content) / this._cachedButtonWidth, 1);\r\n return fx.animate(this._$cachedContent, {\r\n from: currentPosition,\r\n to: positions,\r\n easing: SLIDE_MENU_ANIMATION_EASING,\r\n duration: SLIDE_MENU_ANIMATION_DURATION * durationTimePart,\r\n strategy: \"frame\",\r\n draw: function(positions) {\r\n that._setPositions(positions)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n if (this._$buttonsContainer) {\r\n this._$buttonsContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.static.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Button from \"../button\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar STATIC_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-static-delete-button-container\";\r\nvar STATIC_DELETE_BUTTON_CLASS = \"dx-list-static-delete-button\";\r\nregisterDecorator(\"delete\", \"static\", EditDecorator.inherit({\r\n afterBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $button = $(\"<div>\").addClass(STATIC_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n icon: \"remove\",\r\n onClick: function(args) {\r\n args.event.stopPropagation();\r\n this._deleteItem($itemElement)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(STATIC_DELETE_BUTTON_CONTAINER_CLASS).append($button)\r\n },\r\n _deleteItem: function($itemElement) {\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.swipe.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nregisterDecorator(\"delete\", \"swipe\", EditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _renderItemPosition: function($itemElement, offset, animate) {\r\n var deferred = new Deferred;\r\n var itemOffset = offset * this._itemElementWidth;\r\n if (animate) {\r\n fx.animate($itemElement, {\r\n to: {\r\n left: itemOffset\r\n },\r\n type: \"slide\",\r\n complete: function() {\r\n deferred.resolve($itemElement, offset)\r\n }\r\n })\r\n } else {\r\n move($itemElement, {\r\n left: itemOffset\r\n });\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._itemElementWidth = getWidth($itemElement);\r\n return true\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n this._renderItemPosition($itemElement, args.offset);\r\n return true\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n var offset = args.targetOffset;\r\n this._renderItemPosition($itemElement, offset, true).done(function($itemElement, offset) {\r\n if (Math.abs(offset)) {\r\n this._list.deleteItem($itemElement).fail(function() {\r\n this._renderItemPosition($itemElement, 0, true)\r\n }.bind(this))\r\n }\r\n }.bind(this));\r\n return true\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.dialogs.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"../popup/ui.popup\";\r\nimport Form from \"../form\";\r\nimport \"../tag_box\";\r\nimport \"../radio_group\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../list_light\";\r\nimport \"../list/modules/deleting\";\r\nexport class GanttDialog {\r\n constructor(owner, $element) {\r\n this._popupInstance = owner._createComponent($element, Popup);\r\n this.infoMap = {\r\n TaskEdit: TaskEditDialogInfo,\r\n Resources: ResourcesEditDialogInfo,\r\n Confirmation: ConfirmDialogInfo,\r\n ConstraintViolation: ConstraintViolationDialogInfo\r\n }\r\n }\r\n _apply() {\r\n if (this._dialogInfo.isValidated()) {\r\n var result = this._dialogInfo.getResult();\r\n this._callback(result);\r\n this.hide()\r\n }\r\n }\r\n show(name, parameters, callback, afterClosing, editingOptions) {\r\n this._callback = callback;\r\n this._afterClosing = afterClosing;\r\n if (!this.infoMap[name]) {\r\n return\r\n }\r\n var isRefresh = this._popupInstance._isVisible() && this._dialogInfo && this._dialogInfo instanceof this.infoMap[name];\r\n this._dialogInfo = new this.infoMap[name](parameters, this._apply.bind(this), this.hide.bind(this), editingOptions);\r\n this._popupInstance.option({\r\n showTitle: !!this._dialogInfo.getTitle(),\r\n title: this._dialogInfo.getTitle(),\r\n toolbarItems: this._dialogInfo.getToolbarItems(),\r\n maxWidth: this._dialogInfo.getMaxWidth(),\r\n height: this._dialogInfo.getHeight(),\r\n contentTemplate: this._dialogInfo.getContentTemplate()\r\n });\r\n if (this._afterClosing) {\r\n this._popupInstance.option(\"onHidden\", this._afterClosing)\r\n }\r\n if (!isRefresh) {\r\n this._popupInstance.show()\r\n }\r\n }\r\n hide() {\r\n this._popupInstance.hide();\r\n if (this._afterClosing) {\r\n this._afterClosing()\r\n }\r\n }\r\n}\r\nclass DialogInfoBase {\r\n constructor(parameters, applyAction, hideAction, editingOptions) {\r\n this._parameters = parameters;\r\n this._applyAction = applyAction;\r\n this._hideAction = hideAction;\r\n this._editingOptions = editingOptions\r\n }\r\n _getFormItems() {\r\n return {}\r\n }\r\n _getFormCssClass() {\r\n return \"\"\r\n }\r\n _getFormData() {\r\n return this._parameters\r\n }\r\n _updateParameters() {}\r\n _getOkToolbarItem() {\r\n return this._getToolbarItem(\"OK\", this._applyAction)\r\n }\r\n _getCancelToolbarItem() {\r\n return this._getToolbarItem(\"Cancel\", this._hideAction)\r\n }\r\n _getYesToolbarItem() {\r\n return this._getToolbarItem(\"Yes\", this._applyAction)\r\n }\r\n _getNoToolbarItem() {\r\n return this._getToolbarItem(\"No\", this._hideAction)\r\n }\r\n _getToolbarItem(localizationText, action) {\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n options: {\r\n text: messageLocalization.format(localizationText),\r\n onClick: action\r\n }\r\n }\r\n }\r\n getTitle() {\r\n return \"\"\r\n }\r\n getToolbarItems() {\r\n return this._editingOptions.enabled ? [this._getOkToolbarItem(), this._getCancelToolbarItem()] : [this._getCancelToolbarItem()]\r\n }\r\n getMaxWidth() {\r\n return 400\r\n }\r\n getHeight() {\r\n return \"auto\"\r\n }\r\n getContentTemplate() {\r\n return content => {\r\n this._form = new Form(content, {\r\n formData: this._getFormData(),\r\n items: this._getFormItems(),\r\n elementAttr: {\r\n class: this._getFormCssClass()\r\n },\r\n rtlEnabled: false\r\n });\r\n return content\r\n }\r\n }\r\n getResult() {\r\n var formData = this.getFormData();\r\n this._updateParameters(formData);\r\n return this._parameters\r\n }\r\n getFormData() {\r\n var formData = this._form && this._form.option(\"formData\");\r\n return formData\r\n }\r\n isValidated() {\r\n return true\r\n }\r\n}\r\nclass TaskEditDialogInfo extends DialogInfoBase {\r\n getTitle() {\r\n return messageLocalization.format(\"dxGantt-dialogTaskDetailsTitle\")\r\n }\r\n _getFormItems() {\r\n var readOnly = !this._editingOptions.enabled || !this._editingOptions.allowTaskUpdating;\r\n var readOnlyRange = readOnly || !this._parameters.enableRangeEdit;\r\n return [{\r\n dataField: \"title\",\r\n editorType: \"dxTextBox\",\r\n label: {\r\n text: messageLocalization.format(\"dxGantt-dialogTitle\")\r\n },\r\n editorOptions: {\r\n readOnly: readOnly || this._isReadOnlyField(\"title\")\r\n },\r\n visible: !this._isHiddenField(\"title\")\r\n }, {\r\n dataField: \"start\",\r\n editorType: \"dxDateBox\",\r\n label: {\r\n text: messageLocalization.format(\"dxGantt-dialogStartTitle\")\r\n },\r\n editorOptions: {\r\n type: \"datetime\",\r\n width: \"100%\",\r\n readOnly: readOnlyRange || this._isReadOnlyField(\"start\")\r\n },\r\n visible: !this._isHiddenField(\"start\"),\r\n validationRules: [{\r\n type: \"required\",\r\n message: messageLocalization.format(\"validation-required-formatted\", messageLocalization.format(\"dxGantt-dialogStartTitle\"))\r\n }, {\r\n type: \"custom\",\r\n validationCallback: e => {\r\n if (this._parameters.isValidationRequired) {\r\n var correctDateRange = this._parameters.getCorrectDateRange(this._parameters.id, e.value, this._parameters.end);\r\n if (correctDateRange.start.getTime() !== e.value.getTime()) {\r\n e.rule.message = this._getValidationMessage(true, correctDateRange.start);\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n }]\r\n }, {\r\n dataField: \"end\",\r\n editorType: \"dxDateBox\",\r\n label: {\r\n text: messageLocalization.format(\"dxGantt-dialogEndTitle\")\r\n },\r\n editorOptions: {\r\n type: \"datetime\",\r\n width: \"100%\",\r\n readOnly: readOnlyRange || this._isReadOnlyField(\"end\")\r\n },\r\n visible: !this._isHiddenField(\"end\"),\r\n validationRules: [{\r\n type: \"required\",\r\n message: messageLocalization.format(\"validation-required-formatted\", messageLocalization.format(\"dxGantt-dialogEndTitle\"))\r\n }, {\r\n type: \"custom\",\r\n validationCallback: e => {\r\n if (this._parameters.isValidationRequired) {\r\n var correctDateRange = this._parameters.getCorrectDateRange(this._parameters.id, this._parameters.start, e.value);\r\n if (correctDateRange.end.getTime() !== e.value.getTime()) {\r\n e.rule.message = this._getValidationMessage(false, correctDateRange.end);\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n }]\r\n }, {\r\n dataField: \"progress\",\r\n editorType: \"dxNumberBox\",\r\n label: {\r\n text: messageLocalization.format(\"dxGantt-dialogProgressTitle\")\r\n },\r\n editorOptions: {\r\n showSpinButtons: true,\r\n min: 0,\r\n max: 1,\r\n format: \"#0%\",\r\n step: .01,\r\n readOnly: readOnlyRange || this._isReadOnlyField(\"progress\")\r\n },\r\n visible: !this._isHiddenField(\"progress\")\r\n }, {\r\n dataField: \"assigned.items\",\r\n editorType: \"dxTagBox\",\r\n label: {\r\n text: messageLocalization.format(\"dxGantt-dialogResourcesTitle\")\r\n },\r\n editorOptions: {\r\n readOnly: readOnly || !this._editingOptions.allowTaskResourceUpdating,\r\n dataSource: this._parameters.resources.items,\r\n displayExpr: \"text\",\r\n buttons: [{\r\n name: \"editResources\",\r\n location: \"after\",\r\n options: {\r\n disabled: !this._editingOptions.allowResourceAdding && !this._editingOptions.allowResourceDeleting,\r\n text: \"...\",\r\n hint: messageLocalization.format(\"dxGantt-dialogEditResourceListHint\"),\r\n onClick: () => {\r\n this._parameters.showResourcesDialogCommand.execute(() => {\r\n this._parameters.showTaskEditDialogCommand.execute()\r\n })\r\n }\r\n }\r\n }]\r\n }\r\n }]\r\n }\r\n _getValidationMessage(isStartDependencies, correctDate) {\r\n if (isStartDependencies) {\r\n return messageLocalization.format(\"dxGantt-dialogStartDateValidation\", this._getFormattedDateText(correctDate))\r\n }\r\n return messageLocalization.format(\"dxGantt-dialogEndDateValidation\", this._getFormattedDateText(correctDate))\r\n }\r\n _getFormattedDateText(date) {\r\n return date ? dateLocalization.format(date, \"shortDateShortTime\") : \"\"\r\n }\r\n _isReadOnlyField(field) {\r\n return this._parameters.readOnlyFields.indexOf(field) > -1\r\n }\r\n _isHiddenField(field) {\r\n return this._parameters.hiddenFields.indexOf(field) > -1\r\n }\r\n _getFormData() {\r\n var data = {};\r\n for (var field in this._parameters) {\r\n data[field] = \"progress\" === field ? this._parameters[field] / 100 : this._parameters[field]\r\n }\r\n return data\r\n }\r\n _updateParameters(formData) {\r\n this._parameters.title = formData.title;\r\n this._parameters.start = formData.start;\r\n this._parameters.end = formData.end;\r\n this._parameters.progress = 100 * formData.progress;\r\n this._parameters.assigned = formData.assigned\r\n }\r\n isValidated() {\r\n var _this$_form;\r\n var validationResult = null === (_this$_form = this._form) || void 0 === _this$_form ? void 0 : _this$_form.validate();\r\n return null === validationResult || void 0 === validationResult ? void 0 : validationResult.isValid\r\n }\r\n}\r\nclass ResourcesEditDialogInfo extends DialogInfoBase {\r\n getTitle() {\r\n return messageLocalization.format(\"dxGantt-dialogResourceManagerTitle\")\r\n }\r\n _getFormItems() {\r\n return [{\r\n label: {\r\n visible: false\r\n },\r\n dataField: \"resources.items\",\r\n editorType: \"dxList\",\r\n editorOptions: {\r\n allowItemDeleting: this._editingOptions.enabled && this._editingOptions.allowResourceDeleting,\r\n itemDeleteMode: \"static\",\r\n selectionMode: \"none\",\r\n items: this._parameters.resources.items,\r\n height: 250,\r\n noDataText: messageLocalization.format(\"dxGantt-dialogEditNoResources\"),\r\n onInitialized: e => {\r\n this.list = e.component\r\n },\r\n onItemDeleted: e => {\r\n this._parameters.resources.remove(e.itemData)\r\n }\r\n }\r\n }, {\r\n label: {\r\n visible: false\r\n },\r\n editorType: \"dxTextBox\",\r\n editorOptions: {\r\n readOnly: !this._editingOptions.enabled || !this._editingOptions.allowResourceAdding,\r\n onInitialized: e => {\r\n this.textBox = e.component\r\n },\r\n onInput: e => {\r\n var addButton = e.component.getButton(\"addResource\");\r\n var resourceName = e.component.option(\"text\");\r\n addButton.option(\"disabled\", 0 === resourceName.length)\r\n },\r\n buttons: [{\r\n name: \"addResource\",\r\n location: \"after\",\r\n options: {\r\n text: messageLocalization.format(\"dxGantt-dialogButtonAdd\"),\r\n disabled: true,\r\n onClick: e => {\r\n var newItem = this._parameters.resources.createItem();\r\n newItem.text = this.textBox.option(\"text\");\r\n this._parameters.resources.add(newItem);\r\n this.list.option(\"items\", this._parameters.resources.items);\r\n this.list.scrollToItem(newItem);\r\n this.textBox.clear();\r\n e.component.option(\"disabled\", true)\r\n }\r\n }\r\n }]\r\n }\r\n }]\r\n }\r\n}\r\nclass ConfirmDialogInfo extends DialogInfoBase {\r\n getContentTemplate() {\r\n return content => this._getConfirmMessage()\r\n }\r\n _getConfirmMessage() {\r\n switch (this._parameters.type) {\r\n case 0:\r\n return messageLocalization.format(\"dxGantt-dialogTaskDeleteConfirmation\");\r\n case 1:\r\n return messageLocalization.format(\"dxGantt-dialogDependencyDeleteConfirmation\");\r\n case 2:\r\n return messageLocalization.format(\"dxGantt-dialogResourcesDeleteConfirmation\", this._parameters.message);\r\n default:\r\n return \"\"\r\n }\r\n }\r\n getToolbarItems() {\r\n return [this._getYesToolbarItem(), this._getNoToolbarItem()]\r\n }\r\n}\r\nclass ConstraintViolationDialogInfo extends DialogInfoBase {\r\n _getFormItems() {\r\n var hasCriticalErrors = this._parameters.hasCriticalErrors;\r\n var severalErrors = this._parameters.errorsCount > 1;\r\n var items = [];\r\n var deleteMessage = severalErrors ? \"dxGantt-dialogDeleteDependenciesMessage\" : \"dxGantt-dialogDeleteDependencyMessage\";\r\n var moveMessage = severalErrors ? \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\" : \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\";\r\n var titleMessage;\r\n if (hasCriticalErrors) {\r\n titleMessage = severalErrors ? \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\" : \"dxGantt-dialogConstraintCriticalViolationMessage\"\r\n } else {\r\n titleMessage = severalErrors ? \"dxGantt-dialogConstraintViolationSeveralTasksMessage\" : \"dxGantt-dialogConstraintViolationMessage\"\r\n }\r\n items.push({\r\n text: messageLocalization.format(\"dxGantt-dialogCancelOperationMessage\"),\r\n value: 0\r\n });\r\n items.push({\r\n text: messageLocalization.format(deleteMessage),\r\n value: 1\r\n });\r\n if (!hasCriticalErrors) {\r\n items.push({\r\n text: messageLocalization.format(moveMessage),\r\n value: 2\r\n })\r\n }\r\n return [{\r\n template: messageLocalization.format(titleMessage)\r\n }, {\r\n cssClass: \"dx-cv-dialog-row\",\r\n dataField: \"option\",\r\n label: {\r\n visible: false\r\n },\r\n editorType: \"dxRadioGroup\",\r\n editorOptions: {\r\n items: items,\r\n valueExpr: \"value\",\r\n value: 0\r\n }\r\n }]\r\n }\r\n _getFormCssClass() {\r\n return \"dx-cv-dialog\"\r\n }\r\n _updateParameters(formData) {\r\n this._parameters.option = formData.option\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCoreUtils from \"../../__internal/grids/grid_core/m_utils\";\r\nexport default gridCoreUtils;\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.export_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar window = getWindow();\r\nvar TREELIST_EMPTY_SPACE = \"dx-treelist-empty-space\";\r\nvar TREELIST_TABLE = \"dx-treelist-table\";\r\nexport class GanttExportHelper {\r\n constructor(gantt) {\r\n this._gantt = gantt;\r\n this._treeList = gantt._treeList;\r\n this._cache = {}\r\n }\r\n reset() {\r\n this._cache = {}\r\n }\r\n getTreeListTableStyle() {\r\n var table = this._getTreeListTable();\r\n var style = window.getComputedStyle(table);\r\n return {\r\n color: style.color,\r\n backgroundColor: style.backgroundColor,\r\n fontSize: style.fontSize,\r\n fontFamily: style.fontFamily,\r\n fontWeight: style.fontWeight,\r\n fontStyle: style.fontStyle,\r\n textAlign: \"left\",\r\n verticalAlign: \"middle\"\r\n }\r\n }\r\n getTreeListColCount() {\r\n var headerView = this._getHeaderView();\r\n var widths = headerView.getColumnWidths().filter(w => w > 0);\r\n return widths.length\r\n }\r\n getTreeListHeaderInfo(colIndex) {\r\n var element = this._getHeaderElement(colIndex);\r\n if (!element) {\r\n return null\r\n }\r\n var style = window.getComputedStyle(element);\r\n var styleForExport = {\r\n color: style.color,\r\n padding: style.padding,\r\n paddingLeft: style.paddingLeft,\r\n paddingTop: style.paddingTop,\r\n paddingRight: style.paddingRight,\r\n paddingBottom: style.paddingBottom,\r\n verticalAlign: style.verticalAlign,\r\n width: this._getColumnWidth(colIndex)\r\n };\r\n return {\r\n content: element.textContent,\r\n styles: styleForExport\r\n }\r\n }\r\n getTreeListCellInfo(key, colIndex) {\r\n var _cell$textContent;\r\n var node = this._treeList.getNodeByKey(key);\r\n var visibleRowIndex = this._treeList.getRowIndexByKey(key);\r\n var cell = visibleRowIndex > -1 ? this._getDataCell(visibleRowIndex, colIndex) : null;\r\n var style = cell ? window.getComputedStyle(cell) : this._getColumnCellStyle(colIndex);\r\n var styleForExport = {\r\n color: style.color,\r\n padding: style.padding,\r\n paddingLeft: style.paddingLeft,\r\n paddingTop: style.paddingTop,\r\n paddingRight: style.paddingRight,\r\n paddingBottom: style.paddingBottom,\r\n width: this._getColumnWidth(colIndex)\r\n };\r\n if (0 === colIndex) {\r\n styleForExport.extraLeftPadding = this._getEmptySpaceWidth(node.level)\r\n }\r\n return {\r\n content: null !== (_cell$textContent = null === cell || void 0 === cell ? void 0 : cell.textContent) && void 0 !== _cell$textContent ? _cell$textContent : this._getDisplayText(key, colIndex),\r\n styles: styleForExport\r\n }\r\n }\r\n getTreeListEmptyDataCellInfo() {\r\n return {\r\n content: this._treeList.option(\"noDataText\")\r\n }\r\n }\r\n _ensureColumnWidthCache(colIndex) {\r\n var _this$_cache, _this$_cache$_columnW;\r\n null !== (_this$_cache$_columnW = (_this$_cache = this._cache)[\"columnWidths\"]) && void 0 !== _this$_cache$_columnW ? _this$_cache$_columnW : _this$_cache.columnWidths = {};\r\n if (!this._cache.columnWidths[colIndex]) {\r\n var _header$clientWidth;\r\n var header = this._getHeaderElement(colIndex);\r\n this._cache.columnWidths[colIndex] = null !== (_header$clientWidth = null === header || void 0 === header ? void 0 : header.clientWidth) && void 0 !== _header$clientWidth ? _header$clientWidth : 0\r\n }\r\n }\r\n _getColumnWidth(colIndex) {\r\n this._ensureColumnWidthCache(colIndex);\r\n var widths = this._cache.columnWidths;\r\n return widths && widths[colIndex]\r\n }\r\n _getEmptySpaceWidth(level) {\r\n if (!this._cache.emptyWidth) {\r\n var _this$_cache2, _this$_cache2$_emptyW, _element$offsetWidth;\r\n var element = this._getTreeListElement(TREELIST_EMPTY_SPACE);\r\n null !== (_this$_cache2$_emptyW = (_this$_cache2 = this._cache)[\"emptyWidth\"]) && void 0 !== _this$_cache2$_emptyW ? _this$_cache2$_emptyW : _this$_cache2.emptyWidth = null !== (_element$offsetWidth = element.offsetWidth) && void 0 !== _element$offsetWidth ? _element$offsetWidth : 0\r\n }\r\n return this._cache.emptyWidth * (level + 1)\r\n }\r\n _getColumnCellStyle(colIndex) {\r\n this._ensureColumnCellStyleCache(colIndex);\r\n return this._cache.columnStyles[colIndex]\r\n }\r\n _ensureColumnCellStyleCache(colIndex) {\r\n var _this$_cache3, _this$_cache3$_column;\r\n null !== (_this$_cache3$_column = (_this$_cache3 = this._cache)[\"columnStyles\"]) && void 0 !== _this$_cache3$_column ? _this$_cache3$_column : _this$_cache3.columnStyles = {};\r\n if (!this._cache.columnStyles[colIndex]) {\r\n var cell = this._getDataCell(0, colIndex);\r\n this._cache.columnStyles[colIndex] = window.getComputedStyle(cell)\r\n }\r\n }\r\n _getTask(key) {\r\n this._ensureTaskCache(key);\r\n return this._cache.tasks[key]\r\n }\r\n _ensureTaskCache(key) {\r\n var _this$_cache4, _this$_cache4$_tasks, _this$_cache$tasks, _this$_cache$tasks$ke;\r\n null !== (_this$_cache4$_tasks = (_this$_cache4 = this._cache)[\"tasks\"]) && void 0 !== _this$_cache4$_tasks ? _this$_cache4$_tasks : _this$_cache4.tasks = {};\r\n null !== (_this$_cache$tasks$ke = (_this$_cache$tasks = this._cache.tasks)[key]) && void 0 !== _this$_cache$tasks$ke ? _this$_cache$tasks$ke : _this$_cache$tasks[key] = this._gantt._findTaskByKey(key)\r\n }\r\n _getTreeListTable() {\r\n return this._getTreeListElement(TREELIST_TABLE)\r\n }\r\n _getTreeListElement(className) {\r\n return this._treeList._$element.find(\".\" + className).get(0)\r\n }\r\n _getDataCell(rowIndex, colIndex) {\r\n var treeList = this._treeList;\r\n var cellElement = treeList.getCellElement(rowIndex, colIndex);\r\n return cellElement && cellElement.length ? cellElement[0] : cellElement\r\n }\r\n _getHeaderElement(index) {\r\n return this._getHeaderView().getHeaderElement(index).get(0)\r\n }\r\n _getHeaderView() {\r\n return this._treeList._views.columnHeadersView\r\n }\r\n _getDisplayText(key, colIndex) {\r\n var task = this._getTask(key);\r\n return task && this._getGridDisplayText(colIndex, task)\r\n }\r\n _getGridDisplayText(colIndex, data) {\r\n var columns = this._treeList.getController(\"columns\").getColumns();\r\n var column = columns[colIndex];\r\n var field = null === column || void 0 === column ? void 0 : column.dataField;\r\n var format = null === column || void 0 === column ? void 0 : column.format;\r\n var value = gridCoreUtils.getDisplayValue(column, data[field], data, \"data\");\r\n if (isDefined(format)) {\r\n if (\"date\" === (null === column || void 0 === column ? void 0 : column.dataType) || \"datetime\" === (null === column || void 0 === column ? void 0 : column.dataType)) {\r\n var date = isDate(value) ? value : new Date(value);\r\n return dateLocalization.format(date, format)\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, format)\r\n }\r\n }\r\n return \"string\" === typeof value ? value : null === value || void 0 === value ? void 0 : value.toString()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.mapping_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_MAPPED_FIELD_REGEX = /(\\w*)Expr/;\r\nexport class GanttMappingHelper {\r\n constructor(gantt) {\r\n this._gantt = gantt\r\n }\r\n _getMappedFieldName(optionName, coreField) {\r\n var coreFieldName = coreField;\r\n if (\"id\" === coreField) {\r\n coreFieldName = \"key\"\r\n }\r\n return this._gantt.option(\"\".concat(optionName, \".\").concat(coreFieldName, \"Expr\"))\r\n }\r\n getTaskMappedFieldNames() {\r\n var mappedFields = [];\r\n var mappedFieldsData = this._gantt.option(GANTT_TASKS);\r\n for (var field in mappedFieldsData) {\r\n var exprMatches = field.match(GANTT_MAPPED_FIELD_REGEX);\r\n var mappedFieldName = exprMatches && mappedFieldsData[exprMatches[0]];\r\n if (mappedFieldName) {\r\n mappedFields.push(mappedFieldName)\r\n }\r\n }\r\n return mappedFields\r\n }\r\n convertCoreToMappedData(optionName, coreData) {\r\n return Object.keys(coreData).reduce((previous, f) => {\r\n var mappedField = this._getMappedFieldName(optionName, f);\r\n if (mappedField && !isFunction(mappedField)) {\r\n var setter = compileSetter(mappedField);\r\n setter(previous, coreData[f])\r\n }\r\n return previous\r\n }, {})\r\n }\r\n convertMappedToCoreData(optionName, mappedData) {\r\n var coreData = {};\r\n if (mappedData) {\r\n var mappedFields = this._gantt.option(optionName);\r\n for (var field in mappedFields) {\r\n var exprMatches = field.match(GANTT_MAPPED_FIELD_REGEX);\r\n var mappedFieldName = exprMatches && mappedFields[exprMatches[0]];\r\n if (mappedFieldName && void 0 !== mappedData[mappedFieldName]) {\r\n var getter = compileGetter(mappedFieldName);\r\n var coreFieldName = exprMatches[1];\r\n coreData[coreFieldName] = getter(mappedData)\r\n }\r\n }\r\n }\r\n return coreData\r\n }\r\n convertCoreToMappedFields(optionName, fields) {\r\n return fields.reduce((previous, f) => {\r\n var mappedField = this._getMappedFieldName(optionName, f);\r\n if (mappedField) {\r\n previous.push(mappedField)\r\n }\r\n return previous\r\n }, [])\r\n }\r\n convertMappedToCoreFields(optionName, fields) {\r\n var coreFields = [];\r\n var mappedFields = this._gantt.option(optionName);\r\n for (var field in mappedFields) {\r\n var exprMatches = field.match(GANTT_MAPPED_FIELD_REGEX);\r\n var mappedFieldName = exprMatches && mappedFields[exprMatches[0]];\r\n if (mappedFieldName && fields.indexOf(mappedFieldName) > -1) {\r\n var coreFieldName = exprMatches[1];\r\n coreFields.push(coreFieldName)\r\n }\r\n }\r\n return coreFields\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.size_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n setHeight,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nexport class GanttSizeHelper {\r\n constructor(gantt) {\r\n this._gantt = gantt\r\n }\r\n _setTreeListDimension(dimension, value) {\r\n var _this$_gantt$_ganttTr;\r\n var setter = \"width\" === dimension ? setWidth : setHeight;\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n setter(this._gantt._$treeListWrapper, value);\r\n null === (_this$_gantt$_ganttTr = this._gantt._ganttTreeList) || void 0 === _this$_gantt$_ganttTr ? void 0 : _this$_gantt$_ganttTr.setOption(dimension, getter(this._gantt._$treeListWrapper))\r\n }\r\n _setGanttViewDimension(dimension, value) {\r\n var setter = \"width\" === dimension ? setWidth : setHeight;\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n setter(this._gantt._$ganttView, value);\r\n this._gantt._setGanttViewOption(dimension, getter(this._gantt._$ganttView))\r\n }\r\n _getPanelsWidthByOption() {\r\n var _leftPanelWidth$index, _leftPanelWidth$index2;\r\n var ganttWidth = getWidth(this._gantt._$element);\r\n var leftPanelWidth = this._gantt.option(\"taskListWidth\");\r\n var rightPanelWidth;\r\n if (!isNaN(leftPanelWidth)) {\r\n rightPanelWidth = ganttWidth - parseInt(leftPanelWidth)\r\n } else if ((null === (_leftPanelWidth$index = leftPanelWidth.indexOf) || void 0 === _leftPanelWidth$index ? void 0 : _leftPanelWidth$index.call(leftPanelWidth, \"px\")) > 0) {\r\n rightPanelWidth = ganttWidth - parseInt(leftPanelWidth.replace(\"px\", \"\")) + \"px\"\r\n } else if ((null === (_leftPanelWidth$index2 = leftPanelWidth.indexOf) || void 0 === _leftPanelWidth$index2 ? void 0 : _leftPanelWidth$index2.call(leftPanelWidth, \"%\")) > 0) {\r\n rightPanelWidth = 100 - parseInt(leftPanelWidth.replace(\"%\", \"\")) + \"%\"\r\n }\r\n return {\r\n leftPanelWidth: leftPanelWidth,\r\n rightPanelWidth: rightPanelWidth\r\n }\r\n }\r\n onAdjustControl() {\r\n var elementHeight = getHeight(this._gantt._$element);\r\n this.updateGanttWidth();\r\n this.setGanttHeight(elementHeight)\r\n }\r\n onApplyPanelSize(e) {\r\n this.setInnerElementsWidth(e);\r\n this.updateGanttRowHeights()\r\n }\r\n updateGanttRowHeights() {\r\n var rowHeight = this._gantt._ganttTreeList.getRowHeight();\r\n if (this._gantt._getGanttViewOption(\"rowHeight\") !== rowHeight) {\r\n var _this$_gantt$_ganttVi;\r\n this._gantt._setGanttViewOption(\"rowHeight\", rowHeight);\r\n null === (_this$_gantt$_ganttVi = this._gantt._ganttView) || void 0 === _this$_gantt$_ganttVi ? void 0 : _this$_gantt$_ganttVi._ganttViewCore.updateRowHeights(rowHeight)\r\n }\r\n }\r\n adjustHeight() {\r\n if (!this._gantt._hasHeight) {\r\n this._gantt._setGanttViewOption(\"height\", 0);\r\n this._gantt._setGanttViewOption(\"height\", this._gantt._ganttTreeList.getOffsetHeight())\r\n }\r\n }\r\n setInnerElementsWidth(widths) {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var takeWithFromOption = !widths;\r\n if (takeWithFromOption) {\r\n widths = this._getPanelsWidthByOption();\r\n this._setTreeListDimension(\"width\", 0);\r\n this._setGanttViewDimension(\"width\", 0)\r\n }\r\n this._setTreeListDimension(\"width\", widths.leftPanelWidth);\r\n this._setGanttViewDimension(\"width\", widths.rightPanelWidth);\r\n if (takeWithFromOption) {\r\n this._gantt._splitter._setSplitterPositionLeft()\r\n }\r\n }\r\n updateGanttWidth() {\r\n this._gantt._splitter._dimensionChanged()\r\n }\r\n setGanttHeight(height) {\r\n var _this$_gantt$_ganttVi2;\r\n var toolbarHeightOffset = this._gantt._$toolbarWrapper.get(0).offsetHeight;\r\n var mainWrapperHeight = height - toolbarHeightOffset;\r\n this._setTreeListDimension(\"height\", mainWrapperHeight);\r\n this._setGanttViewDimension(\"height\", mainWrapperHeight);\r\n null === (_this$_gantt$_ganttVi2 = this._gantt._ganttView) || void 0 === _this$_gantt$_ganttVi2 ? void 0 : _this$_gantt$_ganttVi2._ganttViewCore.resetAndUpdate()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.templates.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nexport class GanttTemplatesManager {\r\n constructor(gantt) {\r\n this._gantt = gantt\r\n }\r\n getTaskTooltipContentTemplateFunc(taskTooltipContentTemplateOption) {\r\n var template = taskTooltipContentTemplateOption && this._gantt._getTemplate(taskTooltipContentTemplateOption);\r\n var createTemplateFunction = template && ((container, item, callback) => {\r\n template.render({\r\n model: this._gantt.getTaskDataByCoreData(item),\r\n container: getPublicElement($(container)),\r\n onRendered: () => {\r\n callback()\r\n }\r\n });\r\n return true\r\n });\r\n return createTemplateFunction\r\n }\r\n getTaskProgressTooltipContentTemplateFunc(taskTooltipContentTemplateOption) {\r\n var template = taskTooltipContentTemplateOption && this._gantt._getTemplate(taskTooltipContentTemplateOption);\r\n var createTemplateFunction = template && ((container, item, callback) => {\r\n template.render({\r\n model: item,\r\n container: getPublicElement($(container)),\r\n onRendered: () => {\r\n callback()\r\n }\r\n });\r\n return true\r\n });\r\n return createTemplateFunction\r\n }\r\n getTaskTimeTooltipContentTemplateFunc(taskTooltipContentTemplateOption) {\r\n var template = taskTooltipContentTemplateOption && this._gantt._getTemplate(taskTooltipContentTemplateOption);\r\n var createTemplateFunction = template && ((container, item, callback) => {\r\n template.render({\r\n model: item,\r\n container: getPublicElement($(container)),\r\n onRendered: () => {\r\n callback()\r\n }\r\n });\r\n return true\r\n });\r\n return createTemplateFunction\r\n }\r\n getTaskContentTemplateFunc(taskContentTemplateOption) {\r\n var template = taskContentTemplateOption && this._gantt._getTemplate(taskContentTemplateOption);\r\n var createTemplateFunction = template && ((container, item, callback, index) => {\r\n item.taskData = this._gantt.getTaskDataByCoreData(item.taskData);\r\n template.render({\r\n model: item,\r\n container: getPublicElement($(container)),\r\n onRendered: () => {\r\n callback(container, index)\r\n }\r\n });\r\n return true\r\n });\r\n return createTemplateFunction\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.bars.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport ToolbarMenu from \"../toolbar\";\r\nimport ContextMenu from \"../context_menu\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar TOOLBAR_SEPARATOR_CLASS = \"dx-gantt-toolbar-separator\";\r\nvar COMMANDS = {\r\n createTask: 0,\r\n createSubTask: 1,\r\n removeTask: 2,\r\n removeDependency: 3,\r\n taskInformation: 4,\r\n taskAddContextItem: 5,\r\n undo: 6,\r\n redo: 7,\r\n zoomIn: 8,\r\n zoomOut: 9,\r\n fullScreen: 10,\r\n collapseAll: 11,\r\n expandAll: 12,\r\n resourceManager: 13,\r\n toggleResources: 14,\r\n toggleDependencies: 15\r\n};\r\nclass Bar {\r\n constructor(element, owner) {\r\n this._element = element;\r\n this._owner = owner;\r\n this._items = [];\r\n this._createControl()\r\n }\r\n createItems(items) {\r\n this._cache = null;\r\n this._items = this._createItemsCore(items);\r\n this._menu.option(\"items\", this._items)\r\n }\r\n _createItemsCore(items) {\r\n return items.map(item => {\r\n var result;\r\n if (\"string\" === typeof item) {\r\n result = this._createItemByText(item)\r\n } else {\r\n result = item.name ? extend(this._createItemByText(item.name), item) : extend(this._getDefaultItemOptions(), item)\r\n }\r\n if (item.items) {\r\n result.items = this._createItemsCore(item.items)\r\n }\r\n return result\r\n })\r\n }\r\n _createItemByText(text) {\r\n switch (text.toLowerCase()) {\r\n case \"separator\":\r\n return this._createSeparator();\r\n case \"undo\":\r\n return this._createDefaultItem(COMMANDS.undo, messageLocalization.format(\"dxGantt-undo\"), this._getIcon(\"undo\"));\r\n case \"redo\":\r\n return this._createDefaultItem(COMMANDS.redo, messageLocalization.format(\"dxGantt-redo\"), this._getIcon(\"redo\"));\r\n case \"expandall\":\r\n return this._createDefaultItem(COMMANDS.expandAll, messageLocalization.format(\"dxGantt-expandAll\"), this._getIcon(\"expand\"));\r\n case \"collapseall\":\r\n return this._createDefaultItem(COMMANDS.collapseAll, messageLocalization.format(\"dxGantt-collapseAll\"), this._getIcon(\"collapse\"));\r\n case \"addtask\":\r\n return this._createDefaultItem(COMMANDS.createTask, messageLocalization.format(\"dxGantt-addNewTask\"), this._getIcon(\"add\"));\r\n case \"addsubtask\":\r\n return this._createDefaultItem(COMMANDS.createSubTask, messageLocalization.format(\"dxGantt-contextMenuNewSubtask\"), this._getIcon(\"add-sub-task\"));\r\n case \"deletetask\":\r\n return this._createDefaultItem(COMMANDS.removeTask, messageLocalization.format(\"dxGantt-deleteSelectedTask\"), this._getIcon(\"delete\"));\r\n case \"deletedependency\":\r\n return this._createDefaultItem(COMMANDS.removeDependency, messageLocalization.format(\"dxGantt-contextMenuDeleteDependency\"), this._getIcon(\"delete-dependency\"));\r\n case \"zoomin\":\r\n return this._createDefaultItem(COMMANDS.zoomIn, messageLocalization.format(\"dxGantt-zoomIn\"), this._getIcon(\"zoom-in\"));\r\n case \"zoomout\":\r\n return this._createDefaultItem(COMMANDS.zoomOut, messageLocalization.format(\"dxGantt-zoomOut\"), this._getIcon(\"zoom-out\"));\r\n case \"fullscreen\":\r\n return this._createDefaultItem(COMMANDS.fullScreen, messageLocalization.format(\"dxGantt-fullScreen\"), this._getIcon(\"full-screen\"));\r\n case \"taskdetails\":\r\n return this._createDefaultItem(COMMANDS.taskInformation, messageLocalization.format(\"dxGantt-dialogTaskDetailsTitle\") + \"...\", this._getIcon(\"task-details\"));\r\n case \"resourcemanager\":\r\n return this._createDefaultItem(COMMANDS.resourceManager, messageLocalization.format(\"dxGantt-dialogResourceManagerTitle\"), this._getIcon(\"resource-manager\"));\r\n case \"showresources\":\r\n return this._createDefaultItem(COMMANDS.toggleResources, messageLocalization.format(\"dxGantt-showResources\"), this._getIcon(\"toggle-resources\"));\r\n case \"showdependencies\":\r\n return this._createDefaultItem(COMMANDS.toggleDependencies, messageLocalization.format(\"dxGantt-showDependencies\"), this._getIcon(\"toggle-dependencies\"));\r\n default:\r\n return extend(this._getDefaultItemOptions(), {\r\n options: {\r\n text: text\r\n }\r\n })\r\n }\r\n }\r\n _getDefaultItemOptions() {\r\n return {}\r\n }\r\n _getItemsCache() {\r\n if (!this._cache) {\r\n this._cache = {};\r\n this._fillCache(this._items)\r\n }\r\n return this._cache\r\n }\r\n _fillCache(items) {\r\n items.forEach(item => {\r\n var key = item.commandId;\r\n if (void 0 !== key) {\r\n if (!this._cache[key]) {\r\n this._cache[key] = []\r\n }\r\n this._cache[key].push(item)\r\n }\r\n if (item.items) {\r\n this._fillCache(item.items)\r\n }\r\n })\r\n }\r\n _getIcon(name) {\r\n return \"dx-gantt-i dx-gantt-i-\" + name\r\n }\r\n getCommandKeys() {\r\n var itemsCache = this._getItemsCache();\r\n var result = [];\r\n for (var itemKey in itemsCache) {\r\n result.push(parseInt(itemKey))\r\n }\r\n return result\r\n }\r\n setItemEnabled(key, enabled) {\r\n var itemsCache = this._getItemsCache();\r\n itemsCache[key].forEach(item => {\r\n item.disabled = !enabled\r\n })\r\n }\r\n setItemVisible(key, visible) {\r\n var itemsCache = this._getItemsCache();\r\n itemsCache[key].forEach(item => {\r\n item.visible = visible\r\n })\r\n }\r\n setItemValue(_key, _value) {}\r\n setEnabled(enabled) {\r\n this._menu.option(\"disabled\", !enabled)\r\n }\r\n updateItemsList() {}\r\n isVisible() {\r\n return true\r\n }\r\n isContextMenu() {\r\n return false\r\n }\r\n completeUpdate() {}\r\n}\r\nexport class GanttToolbar extends Bar {\r\n _createControl() {\r\n this._menu = this._owner._createComponent(this._element, ToolbarMenu, {\r\n onItemClick: e => {\r\n var commandId = e.itemData.commandId;\r\n if (void 0 !== commandId) {\r\n this._executeCommand(e.itemData.commandId)\r\n }\r\n }\r\n })\r\n }\r\n _executeCommand(commandId) {\r\n switch (commandId) {\r\n case COMMANDS.toggleResources:\r\n this._owner.option(\"showResources\", !this._owner.option(\"showResources\"));\r\n break;\r\n case COMMANDS.toggleDependencies:\r\n this._owner.option(\"showDependencies\", !this._owner.option(\"showDependencies\"));\r\n break;\r\n default:\r\n this._owner._executeCoreCommand(commandId)\r\n }\r\n }\r\n _createDefaultItem(commandId, hint, icon) {\r\n return {\r\n commandId: commandId,\r\n disabled: true,\r\n widget: \"dxButton\",\r\n location: \"before\",\r\n options: {\r\n icon: icon,\r\n stylingMode: \"text\",\r\n hint: hint\r\n }\r\n }\r\n }\r\n _createSeparator() {\r\n return {\r\n location: \"before\",\r\n template: (_data, _index, element) => {\r\n $(element).addClass(TOOLBAR_SEPARATOR_CLASS)\r\n }\r\n }\r\n }\r\n _getDefaultItemOptions() {\r\n return {\r\n location: \"before\",\r\n widget: \"dxButton\"\r\n }\r\n }\r\n completeUpdate() {\r\n this._menu.option(\"items\", this._items)\r\n }\r\n}\r\nexport class GanttContextMenuBar extends Bar {\r\n _createControl() {\r\n this._menu = this._owner._createComponent(this._element, ContextMenu, {\r\n showEvent: void 0,\r\n onItemClick: e => {\r\n if (void 0 !== e.itemData.commandId) {\r\n this._owner._executeCoreCommand(e.itemData.commandId)\r\n } else if (void 0 !== e.itemData.name) {\r\n this._owner._actionsManager.raiseCustomCommand(e.itemData.name)\r\n }\r\n }\r\n })\r\n }\r\n createItems(items) {\r\n if (!items || 0 === items.length) {\r\n items = this._getDefaultItems()\r\n }\r\n super.createItems(items)\r\n }\r\n _getDefaultItems() {\r\n return [{\r\n text: messageLocalization.format(\"dxGantt-dialogButtonAdd\"),\r\n commandId: COMMANDS.taskAddContextItem,\r\n icon: this._getIcon(\"add\"),\r\n items: [{\r\n text: messageLocalization.format(\"dxGantt-contextMenuNewTask\"),\r\n commandId: COMMANDS.createTask,\r\n icon: this._getIcon(\"add-task\")\r\n }, {\r\n text: messageLocalization.format(\"dxGantt-contextMenuNewSubtask\"),\r\n commandId: COMMANDS.createSubTask,\r\n icon: this._getIcon(\"add-sub-task\")\r\n }]\r\n }, {\r\n text: messageLocalization.format(\"dxGantt-dialogTaskDetailsTitle\") + \"...\",\r\n commandId: COMMANDS.taskInformation,\r\n icon: this._getIcon(\"task-details\")\r\n }, {\r\n text: messageLocalization.format(\"dxGantt-contextMenuDeleteTask\"),\r\n commandId: COMMANDS.removeTask,\r\n icon: this._getIcon(\"delete\")\r\n }, {\r\n text: messageLocalization.format(\"dxGantt-contextMenuDeleteDependency\"),\r\n commandId: COMMANDS.removeDependency,\r\n icon: this._getIcon(\"delete-dependency\")\r\n }]\r\n }\r\n _createDefaultItem(commandId, text, icon) {\r\n return {\r\n commandId: commandId,\r\n text: text,\r\n icon: icon\r\n }\r\n }\r\n show(point, items) {\r\n this._menu.option(\"items\", items || this._items);\r\n this._menu.option(\"position.offset\", {\r\n x: point.x,\r\n y: point.y\r\n });\r\n this._menu.option(\"position.collision\", \"fit\");\r\n this._menu.show()\r\n }\r\n hide() {\r\n this._menu.hide()\r\n }\r\n isContextMenu() {\r\n return true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport modules from \"../../grids/grid_core/m_modules\";\r\nexport default extend({}, modules, {\r\n modules: [],\r\n foreachNodes(nodes, callBack, ignoreHasChildren) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (false !== callBack(nodes[i]) && (ignoreHasChildren || nodes[i].hasChildren) && nodes[i].children.length) {\r\n this.foreachNodes(nodes[i].children, callBack, ignoreHasChildren)\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/column_headers.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_columns_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport treeListCore from \"./m_core\";\r\nexport var ColumnsController = columnsControllerModule.controllers.columns.inherit({\r\n _getFirstItems(dataSourceAdapter) {\r\n return this.callBase(dataSourceAdapter).map(node => node.data)\r\n },\r\n getFirstDataColumnIndex() {\r\n var visibleColumns = this.getVisibleColumns();\r\n var visibleColumnsLength = visibleColumns.length;\r\n var firstDataColumnIndex = 0;\r\n for (var i = 0; i <= visibleColumnsLength - 1; i++) {\r\n if (!isDefined(visibleColumns[i].command)) {\r\n firstDataColumnIndex = visibleColumns[i].index;\r\n break\r\n }\r\n }\r\n return firstDataColumnIndex\r\n }\r\n});\r\ntreeListCore.registerModule(\"columns\", {\r\n defaultOptions: columnsControllerModule.defaultOptions,\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../../../data/array_utils\";\r\nimport query from \"../../../../data/query\";\r\nimport storeHelper from \"../../../../data/store_helper\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport DataSourceAdapter from \"../../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nimport gridCoreUtils from \"../../../grids/grid_core/m_utils\";\r\nimport treeListCore from \"../m_core\";\r\nvar {\r\n queryByOptions: queryByOptions\r\n} = storeHelper;\r\nvar DEFAULT_KEY_EXPRESSION = \"id\";\r\nvar isFullBranchFilterMode = that => \"fullBranch\" === that.option(\"filterMode\");\r\nvar DataSourceAdapterTreeList = DataSourceAdapter.inherit(function() {\r\n var applySorting = (data, sort) => queryByOptions(query(data), {\r\n sort: sort\r\n }).toArray();\r\n return {\r\n _createKeyGetter() {\r\n var keyExpr = this.getKeyExpr();\r\n return compileGetter(keyExpr)\r\n },\r\n _createKeySetter() {\r\n var keyExpr = this.getKeyExpr();\r\n if (isFunction(keyExpr)) {\r\n return keyExpr\r\n }\r\n return compileSetter(keyExpr)\r\n },\r\n createParentIdGetter() {\r\n return compileGetter(this.option(\"parentIdExpr\"))\r\n },\r\n createParentIdSetter() {\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n if (isFunction(parentIdExpr)) {\r\n return parentIdExpr\r\n }\r\n return compileSetter(parentIdExpr)\r\n },\r\n _createItemsGetter() {\r\n return compileGetter(this.option(\"itemsExpr\"))\r\n },\r\n _createHasItemsGetter() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n return hasItemsExpr && compileGetter(hasItemsExpr)\r\n },\r\n _createHasItemsSetter() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n if (isFunction(hasItemsExpr)) {\r\n return hasItemsExpr\r\n }\r\n return hasItemsExpr && compileSetter(hasItemsExpr)\r\n },\r\n _updateIndexByKeyObject(items) {\r\n var that = this;\r\n that._indexByKey = {};\r\n each(items, (index, item) => {\r\n that._indexByKey[item.key] = index\r\n })\r\n },\r\n _calculateHasItems(node, options) {\r\n var {\r\n parentIds: parentIds\r\n } = options.storeLoadOptions;\r\n var hasItems;\r\n var isFullBranch = isFullBranchFilterMode(this);\r\n if (this._hasItemsGetter && (parentIds || !options.storeLoadOptions.filter || isFullBranch)) {\r\n hasItems = this._hasItemsGetter(node.data)\r\n }\r\n if (void 0 === hasItems) {\r\n if (!this._isChildrenLoaded[node.key] && options.remoteOperations.filtering && (parentIds || isFullBranch)) {\r\n hasItems = true\r\n } else if (options.loadOptions.filter && !options.remoteOperations.filtering && isFullBranch) {\r\n hasItems = node.children.length\r\n } else {\r\n hasItems = node.hasChildren\r\n }\r\n }\r\n return !!hasItems\r\n },\r\n _fillVisibleItemsByNodes(nodes, options, result) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (nodes[i].visible) {\r\n result.push(nodes[i])\r\n }\r\n if ((this.isRowExpanded(nodes[i].key, options) || !nodes[i].visible) && nodes[i].hasChildren && nodes[i].children.length) {\r\n this._fillVisibleItemsByNodes(nodes[i].children, options, result)\r\n }\r\n }\r\n },\r\n _convertItemToNode(item, rootValue, nodeByKey) {\r\n var key = this._keyGetter(item);\r\n var parentId = this._parentIdGetter(item);\r\n parentId = isDefined(parentId) ? parentId : rootValue;\r\n var parentNode = nodeByKey[parentId] = nodeByKey[parentId] || {\r\n key: parentId,\r\n children: []\r\n };\r\n var node = nodeByKey[key] = nodeByKey[key] || {\r\n key: key,\r\n children: []\r\n };\r\n node.data = item;\r\n node.parent = parentNode;\r\n return node\r\n },\r\n _createNodesByItems(items, visibleItems) {\r\n var rootValue = this.option(\"rootValue\");\r\n var visibleByKey = {};\r\n var nodeByKey = this._nodeByKey = {};\r\n var i;\r\n if (visibleItems) {\r\n for (i = 0; i < visibleItems.length; i++) {\r\n visibleByKey[this._keyGetter(visibleItems[i])] = true\r\n }\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var node = this._convertItemToNode(items[i], rootValue, nodeByKey);\r\n if (void 0 === node.key) {\r\n return\r\n }\r\n node.visible = !visibleItems || !!visibleByKey[node.key];\r\n if (node.parent) {\r\n node.parent.children.push(node)\r\n }\r\n }\r\n var rootNode = nodeByKey[rootValue] || {\r\n key: rootValue,\r\n children: []\r\n };\r\n rootNode.level = -1;\r\n return rootNode\r\n },\r\n _convertDataToPlainStructure(data, parentId, result) {\r\n var key;\r\n if (this._itemsGetter && !data.isConverted) {\r\n result = result || [];\r\n for (var i = 0; i < data.length; i++) {\r\n var item = createObjectWithChanges(data[i]);\r\n key = this._keyGetter(item);\r\n if (void 0 === key) {\r\n key = result.length + 1;\r\n this._keySetter(item, key)\r\n }\r\n this._parentIdSetter(item, void 0 === parentId ? this.option(\"rootValue\") : parentId);\r\n result.push(item);\r\n var childItems = this._itemsGetter(item);\r\n if (childItems && childItems.length) {\r\n this._convertDataToPlainStructure(childItems, key, result);\r\n var itemsExpr = this.option(\"itemsExpr\");\r\n if (!isFunction(itemsExpr)) {\r\n delete item[itemsExpr]\r\n }\r\n }\r\n }\r\n result.isConverted = true;\r\n return result\r\n }\r\n return data\r\n },\r\n _createIdFilter(field, keys) {\r\n var parentIdFilters = [];\r\n for (var i = 0; i < keys.length; i++) {\r\n parentIdFilters.push([field, \"=\", keys[i]])\r\n }\r\n return gridCoreUtils.combineFilters(parentIdFilters, \"or\")\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n this.callBase.apply(this, arguments);\r\n options.remoteOperations.paging = false;\r\n var expandVisibleNodes = false;\r\n if (this.option(\"autoExpandAll\")) {\r\n options.remoteOperations.sorting = false;\r\n options.remoteOperations.filtering = false;\r\n if ((!this._lastLoadOptions || operationTypes.filtering && !options.storeLoadOptions.filter) && !options.isCustomLoading) {\r\n expandVisibleNodes = true\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._isReload = this._isReload || operationTypes.reload;\r\n if (!options.cachedStoreData) {\r\n this._isChildrenLoaded = {};\r\n if (this._isReload) {\r\n this._nodeByKey = {}\r\n }\r\n }\r\n if (this.option(\"expandNodesOnFiltering\") && (operationTypes.filtering || this._isReload && options.storeLoadOptions.filter)) {\r\n if (options.storeLoadOptions.filter) {\r\n expandVisibleNodes = true\r\n } else {\r\n options.collapseVisibleNodes = true\r\n }\r\n }\r\n }\r\n options.expandVisibleNodes = expandVisibleNodes\r\n },\r\n _getParentIdsToLoad(parentIds) {\r\n var parentIdsToLoad = [];\r\n for (var i = 0; i < parentIds.length; i++) {\r\n var node = this.getNodeByKey(parentIds[i]);\r\n if (!node || node.hasChildren && !node.children.length) {\r\n parentIdsToLoad.push(parentIds[i])\r\n }\r\n }\r\n return parentIdsToLoad\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var rootValue = this.option(\"rootValue\");\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n var {\r\n parentIds: parentIds\r\n } = options.storeLoadOptions;\r\n if (parentIds) {\r\n options.isCustomLoading = false\r\n }\r\n this.callBase.apply(this, arguments);\r\n if (options.remoteOperations.filtering && !options.isCustomLoading) {\r\n if (isFullBranchFilterMode(this) && options.cachedStoreData || !options.storeLoadOptions.filter) {\r\n var expandedRowKeys = options.collapseVisibleNodes ? [] : this.option(\"expandedRowKeys\");\r\n parentIds = [rootValue].concat(expandedRowKeys).concat(parentIds || []);\r\n var parentIdsToLoad = options.data ? this._getParentIdsToLoad(parentIds) : parentIds;\r\n if (parentIdsToLoad.length) {\r\n options.cachedPagingData = void 0;\r\n options.data = void 0;\r\n options.mergeStoreLoadData = true;\r\n options.delay = this.option(\"loadingTimeout\")\r\n }\r\n options.storeLoadOptions.parentIds = parentIdsToLoad;\r\n options.storeLoadOptions.filter = this._createIdFilter(parentIdExpr, parentIdsToLoad)\r\n }\r\n }\r\n },\r\n _generateInfoToLoad(data, needChildren) {\r\n var key;\r\n var keyMap = {};\r\n var resultKeyMap = {};\r\n var resultKeys = [];\r\n var rootValue = this.option(\"rootValue\");\r\n var i;\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? this._parentIdGetter(data[i]) : this._keyGetter(data[i]);\r\n keyMap[key] = true\r\n }\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? this._keyGetter(data[i]) : this._parentIdGetter(data[i]);\r\n var needToLoad = needChildren ? this.isRowExpanded(key) : key !== rootValue;\r\n if (!keyMap[key] && !resultKeyMap[key] && needToLoad) {\r\n resultKeyMap[key] = true;\r\n resultKeys.push(key)\r\n }\r\n }\r\n return {\r\n keyMap: resultKeyMap,\r\n keys: resultKeys\r\n }\r\n },\r\n _loadParentsOrChildren(data, options, needChildren) {\r\n var _a, _b, _c;\r\n var filter;\r\n var needLocalFiltering;\r\n var {\r\n keys: keys,\r\n keyMap: keyMap\r\n } = this._generateInfoToLoad(data, needChildren);\r\n var d = new Deferred;\r\n var isRemoteFiltering = options.remoteOperations.filtering;\r\n var maxFilterLengthInRequest = this.option(\"maxFilterLengthInRequest\");\r\n var sort = null !== (_b = null === (_a = options.storeLoadOptions) || void 0 === _a ? void 0 : _a.sort) && void 0 !== _b ? _b : null === (_c = options.loadOptions) || void 0 === _c ? void 0 : _c.sort;\r\n var loadOptions = isRemoteFiltering ? options.storeLoadOptions : options.loadOptions;\r\n var concatLoadedData = loadedData => {\r\n if (isRemoteFiltering) {\r\n this._cachedStoreData = applySorting(this._cachedStoreData.concat(loadedData), sort)\r\n }\r\n return applySorting(data.concat(loadedData), sort)\r\n };\r\n if (!keys.length) {\r\n return d.resolve(data)\r\n }\r\n var cachedNodes = keys.map(id => this.getNodeByKey(id)).filter(node => node && node.data);\r\n if (cachedNodes.length === keys.length) {\r\n if (needChildren) {\r\n cachedNodes = cachedNodes.reduce((result, node) => result.concat(node.children), [])\r\n }\r\n if (cachedNodes.length) {\r\n return this._loadParentsOrChildren(concatLoadedData(cachedNodes.map(node => node.data)), options, needChildren)\r\n }\r\n }\r\n var keyExpr = needChildren ? this.option(\"parentIdExpr\") : this.getKeyExpr();\r\n filter = this._createIdFilter(keyExpr, keys);\r\n var filterLength = encodeURI(JSON.stringify(filter)).length;\r\n if (filterLength > maxFilterLengthInRequest) {\r\n filter = itemData => keyMap[needChildren ? this._parentIdGetter(itemData) : this._keyGetter(itemData)];\r\n needLocalFiltering = isRemoteFiltering\r\n }\r\n loadOptions = extend({}, loadOptions, {\r\n filter: !needLocalFiltering ? filter : null\r\n });\r\n var store = options.fullData ? new ArrayStore(options.fullData) : this._dataSource.store();\r\n this.loadFromStore(loadOptions, store).done(loadedData => {\r\n if (loadedData.length) {\r\n if (needLocalFiltering) {\r\n loadedData = query(loadedData).filter(filter).toArray()\r\n }\r\n this._loadParentsOrChildren(concatLoadedData(loadedData), options, needChildren).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(data)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n },\r\n _loadParents(data, options) {\r\n return this._loadParentsOrChildren(data, options)\r\n },\r\n _loadChildrenIfNeed(data, options) {\r\n if (isFullBranchFilterMode(this)) {\r\n return this._loadParentsOrChildren(data, options, true)\r\n }\r\n return when(data)\r\n },\r\n _updateHasItemsMap(options) {\r\n var {\r\n parentIds: parentIds\r\n } = options.storeLoadOptions;\r\n if (parentIds) {\r\n for (var i = 0; i < parentIds.length; i++) {\r\n this._isChildrenLoaded[parentIds[i]] = true\r\n }\r\n }\r\n },\r\n _getKeyInfo: () => ({\r\n key: () => \"key\",\r\n keyOf: data => data.key\r\n }),\r\n _processChanges(changes) {\r\n var processedChanges = [];\r\n changes.forEach(change => {\r\n if (\"insert\" === change.type) {\r\n processedChanges = processedChanges.concat(this._applyInsert(change))\r\n } else if (\"remove\" === change.type) {\r\n processedChanges = processedChanges.concat(this._applyRemove(change))\r\n } else if (\"update\" === change.type) {\r\n processedChanges.push({\r\n type: change.type,\r\n key: change.key,\r\n data: {\r\n data: change.data\r\n }\r\n })\r\n }\r\n });\r\n return processedChanges\r\n },\r\n _handleChanging(e) {\r\n this.callBase.apply(this, arguments);\r\n e.postProcessChanges = changes => {\r\n var changesToProcess = changes.filter(item => \"update\" === item.type);\r\n return this._processChanges(changesToProcess)\r\n }\r\n },\r\n _applyBatch(changes) {\r\n var processedChanges = this._processChanges(changes);\r\n this.callBase(processedChanges)\r\n },\r\n _setHasItems(node, value) {\r\n var hasItemsSetter = this._hasItemsSetter;\r\n node.hasChildren = value;\r\n if (hasItemsSetter && node.data) {\r\n hasItemsSetter(node.data, value)\r\n }\r\n },\r\n _applyInsert(change) {\r\n var baseChanges = [];\r\n var parentId = this.parentKeyOf(change.data);\r\n var parentNode = this.getNodeByKey(parentId);\r\n if (parentNode) {\r\n var rootValue = this.option(\"rootValue\");\r\n var node = this._convertItemToNode(change.data, rootValue, this._nodeByKey);\r\n node.hasChildren = false;\r\n node.level = parentNode.level + 1;\r\n node.visible = true;\r\n parentNode.children.push(node);\r\n this._isChildrenLoaded[node.key] = true;\r\n this._setHasItems(parentNode, true);\r\n if ((!parentNode.parent || this.isRowExpanded(parentNode.key)) && void 0 !== change.index) {\r\n var index = this.items().indexOf(parentNode) + 1;\r\n index += change.index >= 0 ? Math.min(change.index, parentNode.children.length) : parentNode.children.length;\r\n baseChanges.push({\r\n type: change.type,\r\n data: node,\r\n index: index\r\n })\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _needToCopyDataObject: () => false,\r\n _applyRemove(change) {\r\n var baseChanges = [];\r\n var node = this.getNodeByKey(change.key);\r\n var parentNode = node && node.parent;\r\n if (parentNode) {\r\n var index = parentNode.children.indexOf(node);\r\n if (index >= 0) {\r\n parentNode.children.splice(index, 1);\r\n if (!parentNode.children.length) {\r\n this._setHasItems(parentNode, false)\r\n }\r\n baseChanges.push(change);\r\n baseChanges = baseChanges.concat(this.getChildNodeKeys(change.key).map(key => ({\r\n type: change.type,\r\n key: key\r\n })))\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _handleDataLoaded(options) {\r\n var data = options.data = this._convertDataToPlainStructure(options.data);\r\n if (!options.remoteOperations.filtering && options.loadOptions.filter) {\r\n options.fullData = queryByOptions(query(options.data), {\r\n sort: options.loadOptions && options.loadOptions.sort\r\n }).toArray()\r\n }\r\n this._updateHasItemsMap(options);\r\n this.callBase(options);\r\n if (data.isConverted && this._cachedStoreData) {\r\n this._cachedStoreData.isConverted = true\r\n }\r\n },\r\n _fillNodes(nodes, options, expandedRowKeys, level) {\r\n var isFullBranch = isFullBranchFilterMode(this);\r\n level = level || 0;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var node = nodes[i];\r\n var needToExpand = false;\r\n this._fillNodes(nodes[i].children, options, expandedRowKeys, level + 1);\r\n node.level = level;\r\n node.hasChildren = this._calculateHasItems(node, options);\r\n if (node.visible && node.hasChildren) {\r\n if (isFullBranch) {\r\n if (node.children.filter(node => node.visible).length) {\r\n needToExpand = true\r\n } else if (node.children.length) {\r\n treeListCore.foreachNodes(node.children, node => {\r\n node.visible = true\r\n })\r\n }\r\n } else {\r\n needToExpand = true\r\n }\r\n if (options.expandVisibleNodes && needToExpand) {\r\n expandedRowKeys.push(node.key)\r\n }\r\n }\r\n if (node.visible || node.hasChildren) {\r\n node.parent.hasChildren = true\r\n }\r\n }\r\n },\r\n _processTreeStructure(options, visibleItems) {\r\n var {\r\n data: data\r\n } = options;\r\n var {\r\n parentIds: parentIds\r\n } = options.storeLoadOptions;\r\n var expandedRowKeys = [];\r\n if (parentIds && parentIds.length || this._isReload) {\r\n if (options.fullData && options.fullData.length > options.data.length) {\r\n data = options.fullData;\r\n visibleItems = visibleItems || options.data\r\n }\r\n this._rootNode = this._createNodesByItems(data, visibleItems);\r\n if (!this._rootNode) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1046\", this.getKeyExpr()));\r\n return\r\n }\r\n this._fillNodes(this._rootNode.children, options, expandedRowKeys);\r\n this._isNodesInitializing = true;\r\n if (options.collapseVisibleNodes || expandedRowKeys.length) {\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n }\r\n this._isReload = false;\r\n this.executeAction(\"onNodesInitialized\", {\r\n root: this._rootNode\r\n });\r\n this._isNodesInitializing = false\r\n }\r\n var resultData = [];\r\n this._fillVisibleItemsByNodes(this._rootNode.children, options, resultData);\r\n options.data = resultData;\r\n this._totalItemsCount = resultData.length\r\n },\r\n _handleDataLoadedCore(options) {\r\n var that = this;\r\n var {\r\n data: data\r\n } = options;\r\n var {\r\n callBase: callBase\r\n } = that;\r\n var filter = options.storeLoadOptions.filter || options.loadOptions.filter;\r\n var filterMode = that.option(\"filterMode\");\r\n var visibleItems;\r\n var {\r\n parentIds: parentIds\r\n } = options.storeLoadOptions;\r\n var needLoadParents = filter && (!parentIds || !parentIds.length) && \"standard\" !== filterMode;\r\n if (!options.isCustomLoading) {\r\n if (needLoadParents) {\r\n var d = options.data = new Deferred;\r\n if (\"matchOnly\" === filterMode) {\r\n visibleItems = data\r\n }\r\n return that._loadParents(data, options).done(data => {\r\n that._loadChildrenIfNeed(data, options).done(data => {\r\n options.data = data;\r\n that._processTreeStructure(options, visibleItems);\r\n callBase.call(that, options);\r\n d.resolve(options.data)\r\n })\r\n }).fail(d.reject)\r\n }\r\n that._processTreeStructure(options)\r\n }\r\n that.callBase(options)\r\n },\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n var reshapeOnPush = this._dataSource._reshapeOnPush;\r\n var isNeedReshape = reshapeOnPush && !!changes.length;\r\n if (isNeedReshape) {\r\n this._isReload = true\r\n }\r\n changes.forEach(change => {\r\n var _a;\r\n null !== (_a = change.index) && void 0 !== _a ? _a : change.index = -1\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n init(dataSource, remoteOperations) {\r\n this.callBase.apply(this, arguments);\r\n var dataStructure = this.option(\"dataStructure\");\r\n this._keyGetter = this._createKeyGetter();\r\n this._parentIdGetter = this.createParentIdGetter();\r\n this._hasItemsGetter = this._createHasItemsGetter();\r\n this._hasItemsSetter = this._createHasItemsSetter();\r\n if (\"tree\" === dataStructure) {\r\n this._itemsGetter = this._createItemsGetter();\r\n this._keySetter = this._createKeySetter();\r\n this._parentIdSetter = this.createParentIdSetter()\r\n }\r\n this._nodeByKey = {};\r\n this._isChildrenLoaded = {};\r\n this._totalItemsCount = 0;\r\n this.createAction(\"onNodesInitialized\")\r\n },\r\n getKeyExpr() {\r\n var store = this.store();\r\n var key = store && store.key();\r\n var keyExpr = this.option(\"keyExpr\");\r\n if (isDefined(key) && isDefined(keyExpr)) {\r\n if (!equalByValue(key, keyExpr)) {\r\n throw errors.Error(\"E1044\")\r\n }\r\n }\r\n return key || keyExpr || DEFAULT_KEY_EXPRESSION\r\n },\r\n keyOf(data) {\r\n return this._keyGetter && this._keyGetter(data)\r\n },\r\n parentKeyOf(data) {\r\n return this._parentIdGetter && this._parentIdGetter(data)\r\n },\r\n getRootNode() {\r\n return this._rootNode\r\n },\r\n totalItemsCount() {\r\n return this._totalItemsCount + this._totalCountCorrection\r\n },\r\n isRowExpanded(key, cache) {\r\n if (cache) {\r\n var {\r\n isExpandedByKey: isExpandedByKey\r\n } = cache;\r\n if (!isExpandedByKey) {\r\n isExpandedByKey = cache.isExpandedByKey = {};\r\n this.option(\"expandedRowKeys\").forEach(key => {\r\n isExpandedByKey[key] = true\r\n })\r\n }\r\n return !!isExpandedByKey[key]\r\n }\r\n var indexExpandedNodeKey = gridCoreUtils.getIndexByKey(key, this.option(\"expandedRowKeys\"), null);\r\n return indexExpandedNodeKey >= 0\r\n },\r\n _changeRowExpandCore(key) {\r\n var expandedRowKeys = this.option(\"expandedRowKeys\").slice();\r\n var indexExpandedNodeKey = gridCoreUtils.getIndexByKey(key, expandedRowKeys, null);\r\n if (indexExpandedNodeKey < 0) {\r\n expandedRowKeys.push(key)\r\n } else {\r\n expandedRowKeys.splice(indexExpandedNodeKey, 1)\r\n }\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n },\r\n changeRowExpand(key) {\r\n this._changeRowExpandCore(key);\r\n return this._isNodesInitializing ? (new Deferred).resolve() : this.load()\r\n },\r\n getNodeByKey(key) {\r\n if (this._nodeByKey) {\r\n return this._nodeByKey[key]\r\n }\r\n },\r\n getNodeLeafKeys() {\r\n var that = this;\r\n var result = [];\r\n var keys = that._rootNode ? [that._rootNode.key] : [];\r\n keys.forEach(key => {\r\n var node = that.getNodeByKey(key);\r\n node && treeListCore.foreachNodes([node], childNode => {\r\n !childNode.children.length && result.push(childNode.key)\r\n })\r\n });\r\n return result\r\n },\r\n getChildNodeKeys(parentKey) {\r\n var node = this.getNodeByKey(parentKey);\r\n var childrenKeys = [];\r\n node && treeListCore.foreachNodes(node.children, childNode => {\r\n childrenKeys.push(childNode.key)\r\n });\r\n return childrenKeys\r\n },\r\n loadDescendants(keys, childrenOnly) {\r\n var that = this;\r\n var d = new Deferred;\r\n var remoteOperations = that.remoteOperations();\r\n if (isDefined(keys)) {\r\n keys = Array.isArray(keys) ? keys : [keys]\r\n } else {\r\n keys = that.getNodeLeafKeys()\r\n }\r\n if (!remoteOperations.filtering || !keys.length) {\r\n return d.resolve()\r\n }\r\n var loadOptions = that._dataSource._createStoreLoadOptions();\r\n loadOptions.parentIds = keys;\r\n that.load(loadOptions).done(() => {\r\n if (!childrenOnly) {\r\n var childKeys = function(that, keys) {\r\n var childKeys = [];\r\n keys.forEach(key => {\r\n var node = that.getNodeByKey(key);\r\n node && node.children.forEach(child => {\r\n childKeys.push(child.key)\r\n })\r\n });\r\n return childKeys\r\n }(that, keys);\r\n if (childKeys.length) {\r\n that.loadDescendants(childKeys, childrenOnly).done(d.resolve).fail(d.reject);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n forEachNode() {\r\n var nodes = [];\r\n var callback;\r\n if (1 === arguments.length) {\r\n callback = arguments[0];\r\n var rootNode = this.getRootNode();\r\n nodes = rootNode && rootNode.children || []\r\n } else if (2 === arguments.length) {\r\n callback = arguments[1];\r\n nodes = arguments[0];\r\n nodes = Array.isArray(nodes) ? nodes : [nodes]\r\n }\r\n treeListCore.foreachNodes(nodes, callback)\r\n }\r\n }\r\n}());\r\nexport default {\r\n extend(extender) {\r\n DataSourceAdapterTreeList = DataSourceAdapterTreeList.inherit(extender)\r\n },\r\n create: component => new DataSourceAdapterTreeList(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/data_controller/m_data_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n dataControllerModule\r\n} from \"../../../grids/grid_core/data_controller/m_data_controller\";\r\nimport dataSourceAdapterProvider from \"../data_source_adapter/m_data_source_adapter\";\r\nimport treeListCore from \"../m_core\";\r\nexport var DataController = dataControllerModule.controllers.data.inherit({\r\n _getDataSourceAdapter: () => dataSourceAdapterProvider,\r\n _getNodeLevel(node) {\r\n var level = -1;\r\n while (node.parent) {\r\n if (node.visible) {\r\n level++\r\n }\r\n node = node.parent\r\n }\r\n return level\r\n },\r\n _generateDataItem(node, options) {\r\n return {\r\n rowType: \"data\",\r\n node: node,\r\n key: node.key,\r\n data: node.data,\r\n isExpanded: this.isRowExpanded(node.key, options),\r\n level: this._getNodeLevel(node)\r\n }\r\n },\r\n _loadOnOptionChange() {\r\n this._dataSource.load()\r\n },\r\n _isItemEquals(item1, item2) {\r\n if (item1.isSelected !== item2.isSelected) {\r\n return false\r\n }\r\n if (item1.node && item2.node && item1.node.hasChildren !== item2.node.hasChildren) {\r\n return false\r\n }\r\n if (item1.level !== item2.level || item1.isExpanded !== item2.isExpanded) {\r\n return false\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var firstDataColumnIndex = this._columnsController.getFirstDataColumnIndex();\r\n if (columnIndex === firstDataColumnIndex && oldRow.isSelected !== newRow.isSelected) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n init() {\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\");\r\n this.callBase.apply(this, arguments)\r\n },\r\n keyOf(data) {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.keyOf(data)\r\n }\r\n },\r\n key() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.getKeyExpr()\r\n }\r\n },\r\n publicMethods() {\r\n return this.callBase().concat([\"expandRow\", \"collapseRow\", \"isRowExpanded\", \"getRootNode\", \"getNodeByKey\", \"loadDescendants\", \"forEachNode\"])\r\n },\r\n changeRowExpand(key) {\r\n if (this._dataSource) {\r\n var args = {\r\n key: key\r\n };\r\n var isExpanded = this.isRowExpanded(key);\r\n this.executeAction(isExpanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return this._dataSource.changeRowExpand(key).done(() => {\r\n this.executeAction(isExpanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n isRowExpanded(key, cache) {\r\n return this._dataSource && this._dataSource.isRowExpanded(key, cache)\r\n },\r\n expandRow(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n getRootNode() {\r\n return this._dataSource && this._dataSource.getRootNode()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"rootValue\":\r\n case \"parentIdExpr\":\r\n case \"itemsExpr\":\r\n case \"filterMode\":\r\n case \"expandNodesOnFiltering\":\r\n case \"autoExpandAll\":\r\n case \"hasItemsExpr\":\r\n case \"dataStructure\":\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource();\r\n args.handled = true;\r\n break;\r\n case \"expandedRowKeys\":\r\n case \"onNodesInitialized\":\r\n if (this._dataSource && !this._dataSource._isNodesInitializing && !equalByValue(args.value, args.previousValue)) {\r\n this._loadOnOptionChange()\r\n }\r\n args.handled = true;\r\n break;\r\n case \"maxFilterLengthInRequest\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getNodeByKey(key) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getNodeByKey(key)\r\n },\r\n getChildNodeKeys(parentKey) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getChildNodeKeys(parentKey)\r\n },\r\n loadDescendants(keys, childrenOnly) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.loadDescendants(keys, childrenOnly)\r\n },\r\n forEachNode() {\r\n this._dataSource.forEachNode.apply(this, arguments)\r\n }\r\n});\r\ntreeListCore.registerModule(\"data\", {\r\n defaultOptions: () => extend({}, dataControllerModule.defaultOptions(), {\r\n itemsExpr: \"items\",\r\n parentIdExpr: \"parentId\",\r\n rootValue: 0,\r\n dataStructure: \"plain\",\r\n expandedRowKeys: [],\r\n filterMode: \"withAncestors\",\r\n expandNodesOnFiltering: true,\r\n autoExpandAll: false,\r\n onNodesInitialized: null,\r\n maxFilterLengthInRequest: 1500,\r\n paging: {\r\n enabled: false\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/sorting.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/rows/m_rows.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport treeListCore from \"../m_core\";\r\nvar TREELIST_TEXT_CONTENT = \"dx-treelist-text-content\";\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar TREELIST_CELL_EXPANDABLE_CLASS = \"dx-treelist-cell-expandable\";\r\nvar TREELIST_EMPTY_SPACE = \"dx-treelist-empty-space\";\r\nvar TREELIST_EXPANDED_CLASS = \"dx-treelist-expanded\";\r\nvar TREELIST_COLLAPSED_CLASS = \"dx-treelist-collapsed\";\r\nexport var RowsView = rowsModule.views.rowsView.inherit(function() {\r\n var createIcon = function(hasIcon, isExpanded) {\r\n var $iconElement = $(\"<div>\").addClass(TREELIST_EMPTY_SPACE);\r\n if (hasIcon) {\r\n $iconElement.toggleClass(TREELIST_EXPANDED_CLASS, isExpanded).toggleClass(TREELIST_COLLAPSED_CLASS, !isExpanded).append($(\"<span>\"))\r\n }\r\n return $iconElement\r\n };\r\n return {\r\n _renderIconContainer($container, options) {\r\n var $iconContainer = $(\"<div>\").addClass(TREELIST_EXPAND_ICON_CONTAINER_CLASS).appendTo($container);\r\n if (options.watch) {\r\n var dispose = options.watch(() => [options.row.level, options.row.isExpanded, options.row.node.hasChildren], () => {\r\n $iconContainer.empty();\r\n this._renderIcons($iconContainer, options)\r\n });\r\n eventsEngine.on($iconContainer, removeEvent, dispose)\r\n }\r\n $container.addClass(TREELIST_CELL_EXPANDABLE_CLASS);\r\n return this._renderIcons($iconContainer, options)\r\n },\r\n _renderIcons($iconContainer, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n level: level\r\n } = row;\r\n for (var i = 0; i <= level; i++) {\r\n $iconContainer.append(createIcon(i === level && row.node.hasChildren, row.isExpanded))\r\n }\r\n return $iconContainer\r\n },\r\n _renderCellCommandContent(container, model) {\r\n this._renderIconContainer(container, model);\r\n return true\r\n },\r\n _processTemplate(template, options) {\r\n var _a;\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && (null === (_a = options.column) || void 0 === _a ? void 0 : _a.index) === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render(options) {\r\n var $container = options.container;\r\n if (that._renderCellCommandContent($container, options.model)) {\r\n options.container = function($container) {\r\n return $(\"<div>\").addClass(TREELIST_TEXT_CONTENT).appendTo($container)\r\n }($container)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _updateCell($cell, options) {\r\n $cell = $cell.hasClass(TREELIST_TEXT_CONTENT) ? $cell.parent() : $cell;\r\n this.callBase($cell, options)\r\n },\r\n _rowClick(e) {\r\n var dataController = this._dataController;\r\n var $targetElement = $(e.event.target);\r\n var isExpandIcon = this.isExpandIcon($targetElement);\r\n var item = dataController && dataController.items()[e.rowIndex];\r\n if (isExpandIcon && item) {\r\n dataController.changeRowExpand(item.key)\r\n }\r\n this.callBase(e)\r\n },\r\n _createRow(row) {\r\n var node = row && row.node;\r\n var $rowElement = this.callBase.apply(this, arguments);\r\n if (node) {\r\n this.setAria(\"level\", row.level + 1, $rowElement);\r\n if (node.hasChildren) {\r\n this.setAria(\"expanded\", row.isExpanded, $rowElement)\r\n }\r\n }\r\n return $rowElement\r\n },\r\n _getGridRoleName: () => \"treegrid\",\r\n isExpandIcon: $targetElement => !!$targetElement.closest(\".\".concat(TREELIST_EXPANDED_CLASS, \", .\").concat(TREELIST_COLLAPSED_CLASS)).length,\r\n setAriaExpandedAttribute($row, row) {\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n}());\r\ntreeListCore.registerModule(\"rows\", {\r\n defaultOptions: rowsModule.defaultOptions,\r\n views: {\r\n rowsView: RowsView\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/context_menu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/error_handling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_grid_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n gridViewModule\r\n} from \"../../grids/grid_core/views/m_grid_view\";\r\nimport treeListCore from \"./m_core\";\r\nvar ResizingController = gridViewModule.controllers.resizing.inherit({\r\n _getWidgetAriaLabel: () => \"dxTreeList-ariaTreeList\",\r\n _toggleBestFitMode(isBestFit) {\r\n this.callBase(isBestFit);\r\n var $rowsTable = this._rowsView.getTableElement();\r\n $rowsTable.find(\".dx-treelist-cell-expandable\").toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n});\r\ntreeListCore.registerModule(\"gridView\", {\r\n defaultOptions: gridViewModule.defaultOptions,\r\n controllers: _extends(_extends({}, gridViewModule.controllers), {\r\n resizing: ResizingController\r\n }),\r\n views: gridViewModule.views\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/header_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_widget_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./data_controller/m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./rows/m_rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./m_grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport treeListCore from \"./m_core\";\r\nvar {\r\n callModuleItemsMethod: callModuleItemsMethod\r\n} = treeListCore;\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar TREELIST_CLASS = \"dx-treelist\";\r\ntreeListCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"editing\", \"grouping\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar TreeList = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(treeListCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => isMaterialBased(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n if (!this.option(\"_disableDeprecationWarnings\")) {\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this)\r\n }\r\n treeListCore.processModules(this, treeListCore);\r\n callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.$element().addClass(TREELIST_CLASS);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _dispose() {\r\n this.callBase();\r\n callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.callBase();\r\n if (isDefined(element)) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n }\r\n});\r\nTreeList.registerModule = treeListCore.registerModule.bind(treeListCore);\r\nregisterComponent(\"dxTreeList\", TreeList);\r\nexport default TreeList;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_state_storing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n stateStoringModule\r\n} from \"../../grids/grid_core/state_storing/m_state_storing\";\r\nimport treeListCore from \"./m_core\";\r\nvar origApplyState = stateStoringModule.extenders.controllers.stateStoring.applyState;\r\ntreeListCore.registerModule(\"stateStoring\", extend(true, {}, stateStoringModule, {\r\n extenders: {\r\n controllers: {\r\n stateStoring: {\r\n applyState(state) {\r\n origApplyState.apply(this, arguments);\r\n this.option(\"expandedRowKeys\", state.expandedRowKeys ? state.expandedRowKeys.slice() : [])\r\n }\r\n },\r\n data: {\r\n getUserState() {\r\n var state = this.callBase.apply(this, arguments);\r\n if (!this.option(\"autoExpandAll\")) {\r\n state.expandedRowKeys = this.option(\"expandedRowKeys\")\r\n }\r\n return state\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/column_chooser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnChooserModule\r\n} from \"../../../grids/grid_core/column_chooser/m_column_chooser\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_master_detail.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n masterDetailModule\r\n} from \"../../grids/grid_core/master_detail/m_master_detail\";\r\nimport treeListCore from \"./m_core\";\r\ntreeListCore.registerModule(\"masterDetail\", extend(true, {}, masterDetailModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n isRowExpanded() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processItems() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processDataItem() {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/editor_factory.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editorFactoryModule\r\n} from \"../../../grids/grid_core/editor_factory/m_editor_factory\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/editing/m_editing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../module_not_extended/editor_factory\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n editingModule\r\n} from \"../../../grids/grid_core/editing/m_editing\";\r\nimport gridCoreUtils from \"../../../grids/grid_core/m_utils\";\r\nimport treeListCore from \"../m_core\";\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EditingController = editingModule.controllers.editing.inherit({\r\n _generateNewItem(key) {\r\n var item = this.callBase(key);\r\n item.data = {\r\n key: key\r\n };\r\n item.children = [];\r\n item.level = 0;\r\n item.parentKey = this.option(\"rootValue\");\r\n return item\r\n },\r\n _isProcessedItem: () => true,\r\n _setInsertAfterOrBeforeKey(change, parentKey) {\r\n if (void 0 !== parentKey && parentKey !== this.option(\"rootValue\")) {\r\n change.insertAfterKey = parentKey\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getLoadedRowIndex(items, change) {\r\n var dataController = this.getController(\"data\");\r\n var dataSourceAdapter = dataController.dataSource();\r\n var parentKey = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.parentKeyOf(change.data);\r\n if (void 0 !== parentKey && parentKey !== this.option(\"rootValue\")) {\r\n var rowIndex = gridCoreUtils.getIndexByKey(parentKey, items);\r\n if (rowIndex >= 0 && this._dataController.isRowExpanded(parentKey)) {\r\n return rowIndex + 1\r\n }\r\n return -1\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n return result || editingOptions.allowAdding\r\n },\r\n _isDefaultButtonVisible(button, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var {\r\n row: row\r\n } = options;\r\n if (\"add\" === button.name) {\r\n return this.allowAdding(options) && row.rowIndex !== this._getVisibleEditRowIndex() && !(row.removed || row.isNewRow)\r\n }\r\n return result\r\n },\r\n _getEditingButtons(options) {\r\n var buttons = this.callBase.apply(this, arguments);\r\n if (!options.column.buttons) {\r\n buttons.unshift(this._getButtonConfig(\"add\", options))\r\n }\r\n return buttons\r\n },\r\n _beforeSaveEditData(change) {\r\n var dataController = this._dataController;\r\n var result = this.callBase.apply(this, arguments);\r\n if (change && change.type !== DATA_EDIT_DATA_INSERT_TYPE) {\r\n var store = null === dataController || void 0 === dataController ? void 0 : dataController.store();\r\n var key = null === store || void 0 === store ? void 0 : store.key();\r\n if (!isDefined(key)) {\r\n throw errors.Error(\"E1045\")\r\n }\r\n }\r\n return result\r\n },\r\n addRowByRowIndex(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return this.addRow(row ? row.key : void 0)\r\n },\r\n addRow(key) {\r\n if (void 0 === key) {\r\n key = this.option(\"rootValue\")\r\n }\r\n return this.callBase.call(this, key)\r\n },\r\n _addRowCore(data, parentKey, oldEditRowIndex) {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var rootValue = this.option(\"rootValue\");\r\n var dataController = this.getController(\"data\");\r\n var dataSourceAdapter = dataController.dataSource();\r\n var parentKeyGetter = dataSourceAdapter.createParentIdGetter();\r\n parentKey = parentKeyGetter(data);\r\n if (void 0 !== parentKey && parentKey !== rootValue && !dataController.isRowExpanded(parentKey)) {\r\n var deferred = new Deferred;\r\n dataController.expandRow(parentKey).done(() => {\r\n setTimeout(() => {\r\n callBase.call(this, data, parentKey, oldEditRowIndex).done(deferred.resolve).fail(deferred.reject)\r\n })\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n return callBase.call(this, data, parentKey, oldEditRowIndex)\r\n },\r\n _initNewRow(options, parentKey) {\r\n var dataController = this.getController(\"data\");\r\n var dataSourceAdapter = dataController.dataSource();\r\n var parentIdSetter = dataSourceAdapter.createParentIdSetter();\r\n parentIdSetter(options.data, parentKey);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowAdding(options) {\r\n return this._allowEditAction(\"allowAdding\", options)\r\n },\r\n _needToCloseEditableCell($targetElement) {\r\n return this.callBase.apply(this, arguments) || $targetElement.closest(\".\".concat(TREELIST_EXPAND_ICON_CONTAINER_CLASS)).length && this.isEditing()\r\n },\r\n getButtonLocalizationNames() {\r\n var names = this.callBase.apply(this);\r\n names.add = \"dxTreeList-editingAddRowToNode\";\r\n return names\r\n }\r\n});\r\nvar originalRowClick = editingModule.extenders.views.rowsView._rowClick;\r\nvar originalRowDblClick = editingModule.extenders.views.rowsView._rowDblClick;\r\nvar validateClick = function(e) {\r\n var $targetElement = $(e.event.target);\r\n var originalClickHandler = \"dxdblclick\" === e.event.type ? originalRowDblClick : originalRowClick;\r\n if ($targetElement.closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n return false\r\n }\r\n return !needToCallOriginalClickHandler.call(this, e, originalClickHandler)\r\n};\r\n\r\nfunction needToCallOriginalClickHandler(e, originalClickHandler) {\r\n var $targetElement = $(e.event.target);\r\n if (!$targetElement.closest(\".\".concat(TREELIST_EXPAND_ICON_CONTAINER_CLASS)).length) {\r\n originalClickHandler.call(this, e);\r\n return true\r\n }\r\n return false\r\n}\r\nvar RowsViewExtender = extend({}, editingModule.extenders.views.rowsView, {\r\n _renderCellCommandContent($container, options) {\r\n var editingController = this._editingController;\r\n var isEditRow = options.row && editingController.isEditRow(options.row.rowIndex);\r\n var isEditing = options.isEditing || isEditRow;\r\n if (!isEditing) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _rowClick(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n});\r\ntreeListCore.registerModule(\"editing\", {\r\n defaultOptions: () => extend(true, editingModule.defaultOptions(), {\r\n editing: {\r\n texts: {\r\n addRowToNode: messageLocalization.format(\"dxTreeList-editingAddRowToNode\")\r\n }\r\n }\r\n }),\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: extend(true, {}, editingModule.extenders.controllers, {\r\n data: {\r\n changeRowExpand() {\r\n this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }),\r\n views: {\r\n rowsView: RowsViewExtender,\r\n headerPanel: editingModule.extenders.views.headerPanel\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/editing_row_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingRowBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_row_based\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/editing_form_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingFormBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_form_based\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"editingFormBased\", editingFormBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/editing_cell_based.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n editingCellBasedModule\r\n} from \"../../../grids/grid_core/editing/m_editing_cell_based\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"editingCellBased\", editingCellBasedModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_validating.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n validatingModule\r\n} from \"../../grids/grid_core/validating/m_validating\";\r\nimport treeListCore from \"./m_core\";\r\nvar EditingControllerExtender = extend({}, validatingModule.extenders.controllers.editing);\r\ndelete EditingControllerExtender.processItems;\r\ndelete EditingControllerExtender.processDataItem;\r\ntreeListCore.registerModule(\"validating\", {\r\n defaultOptions: validatingModule.defaultOptions,\r\n controllers: validatingModule.controllers,\r\n extenders: {\r\n controllers: {\r\n editing: EditingControllerExtender,\r\n editorFactory: validatingModule.extenders.controllers.editorFactory\r\n },\r\n views: validatingModule.extenders.views\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_virtual_scrolling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n virtualScrollingModule\r\n} from \"../../grids/grid_core/virtual_scrolling/m_virtual_scrolling\";\r\nimport dataSourceAdapter from \"./data_source_adapter/m_data_source_adapter\";\r\nimport gridCore from \"./m_core\";\r\nvar oldDefaultOptions = virtualScrollingModule.defaultOptions;\r\nvar originalDataControllerExtender = virtualScrollingModule.extenders.controllers.data;\r\nvar originalDataSourceAdapterExtender = virtualScrollingModule.extenders.dataSourceAdapter;\r\nvirtualScrollingModule.extenders.controllers.data = extend({}, originalDataControllerExtender, {\r\n _loadOnOptionChange() {\r\n var virtualScrollController = this._dataSource && this._dataSource._virtualScrollController;\r\n virtualScrollController && virtualScrollController.reset();\r\n this.callBase()\r\n }\r\n});\r\nvirtualScrollingModule.extenders.dataSourceAdapter = extend({}, originalDataSourceAdapterExtender, {\r\n changeRowExpand() {\r\n return this.callBase.apply(this, arguments).done(() => {\r\n var viewportItemIndex = this.getViewportItemIndex();\r\n viewportItemIndex >= 0 && this.setViewportItemIndex(viewportItemIndex)\r\n })\r\n }\r\n});\r\ngridCore.registerModule(\"virtualScrolling\", extend({}, virtualScrollingModule, {\r\n defaultOptions: () => extend(true, oldDefaultOptions(), {\r\n scrolling: {\r\n mode: \"virtual\"\r\n }\r\n })\r\n}));\r\ndataSourceAdapter.extend(virtualScrollingModule.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/filter_row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterRowModule\r\n} from \"../../../grids/grid_core/filter/m_filter_row\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterRow\", filterRowModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/header_filter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerFilterModule\r\n} from \"../../../grids/grid_core/header_filter/m_header_filter\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"headerFilter\", headerFilterModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/filter_sync.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterSyncModule\r\n} from \"../../../grids/grid_core/filter/m_filter_sync\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"filterSync\", filterSyncModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/filter_builder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterBuilderModule\r\n} from \"../../../grids/grid_core/filter/m_filter_builder\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterBuilder\", filterBuilderModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/filter_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n filterPanelModule\r\n} from \"../../../grids/grid_core/filter/m_filter_panel\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"filterPanel\", filterPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/pager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n pagerModule\r\n} from \"../../../grids/grid_core/pager/m_pager\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"pager\", pagerModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/columns_resizing_reordering.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnsResizingReorderingModule\r\n} from \"../../../grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"columnsResizingReordering\", columnsResizingReorderingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/column_fixing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnFixingModule\r\n} from \"../../../grids/grid_core/column_fixing/m_column_fixing\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"columnFixing\", columnFixingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/adaptivity.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adaptivityModule\r\n} from \"../../../grids/grid_core/adaptivity/m_adaptivity\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"adaptivity\", adaptivityModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/selection/m_selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport treeListCore from \"../m_core\";\r\nvar TREELIST_SELECT_ALL_CLASS = \"dx-treelist-select-all\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar originalRowClick = selectionModule.extenders.views.rowsView._rowClick;\r\nvar originalHandleDataChanged = selectionModule.extenders.controllers.data._handleDataChanged;\r\nvar nodeExists = function(array, currentKey) {\r\n return !!array.filter(key => key === currentKey).length\r\n};\r\ntreeListCore.registerModule(\"selection\", extend(true, {}, selectionModule, {\r\n defaultOptions: () => extend(true, selectionModule.defaultOptions(), {\r\n selection: {\r\n showCheckBoxesMode: \"always\",\r\n recursive: false\r\n }\r\n }),\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _handleDataChanged(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection && (!e || \"updateSelectionState\" !== e.changeType)) {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: this.option(\"selectedRowKeys\")\r\n })\r\n }\r\n originalHandleDataChanged.apply(this, arguments)\r\n },\r\n loadDescendants() {\r\n var that = this;\r\n var d = that.callBase.apply(that, arguments);\r\n var selectionController = that.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection) {\r\n d.done(() => {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: that.option(\"selectedRowKeys\")\r\n })\r\n })\r\n }\r\n return d\r\n }\r\n },\r\n selection: {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n this._selectionStateByKey = {}\r\n },\r\n _getSelectionConfig() {\r\n var config = this.callBase.apply(this, arguments);\r\n var {\r\n plainItems: plainItems\r\n } = config;\r\n config.plainItems = cached => {\r\n var result;\r\n if (cached) {\r\n result = this._dataController.getCachedStoreData()\r\n }\r\n result || (result = plainItems.apply(this, arguments).map(item => item.data));\r\n return result || []\r\n };\r\n config.isItemSelected = item => {\r\n var key = this._dataController.keyOf(item);\r\n return this.isRowSelected(key)\r\n };\r\n config.isSelectableItem = item => !!item;\r\n config.getItemData = item => item;\r\n config.allowLoadByRange = () => false;\r\n return config\r\n },\r\n renderSelectCheckBoxContainer($container, model) {\r\n var rowsView = this.component.getView(\"rowsView\");\r\n $container.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n var $checkbox = rowsView._renderSelectCheckBox($container, {\r\n value: model.row.isSelected,\r\n row: model.row,\r\n column: model.column\r\n });\r\n rowsView._attachCheckBoxClickEvent($checkbox)\r\n },\r\n _updateSelectColumn: noop,\r\n _getSelectAllNodeKeys() {\r\n var {\r\n component: component\r\n } = this;\r\n var root = component.getRootNode();\r\n var cache = {};\r\n var keys = [];\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n root && treeListCore.foreachNodes(root.children, node => {\r\n if (void 0 !== node.key && (node.visible || isRecursiveSelection)) {\r\n keys.push(node.key)\r\n }\r\n if (!node.visible) {\r\n return true\r\n }\r\n return isRecursiveSelection ? false : component.isRowExpanded(node.key, cache)\r\n });\r\n return keys\r\n },\r\n isSelectAll() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (0 === selectedRowKeys.length) {\r\n return false\r\n }\r\n var {\r\n component: component\r\n } = this;\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n var hasIndeterminateState = false;\r\n var selectedVisibleKeys = visibleKeys.filter(key => {\r\n var isRowSelected = component.isRowSelected(key, isRecursiveSelection);\r\n if (void 0 === isRowSelected) {\r\n hasIndeterminateState = true\r\n }\r\n return isRowSelected\r\n });\r\n if (!selectedVisibleKeys.length) {\r\n return hasIndeterminateState ? void 0 : false\r\n }\r\n if (selectedVisibleKeys.length === visibleKeys.length) {\r\n return true\r\n }\r\n return\r\n },\r\n selectAll() {\r\n var visibleKeys = this._getSelectAllNodeKeys().filter(key => !this.isRowSelected(key));\r\n this.focusedItemIndex(-1);\r\n return this.selectRows(visibleKeys, true)\r\n },\r\n deselectAll() {\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n this.focusedItemIndex(-1);\r\n return this.deselectRows(visibleKeys)\r\n },\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n var that = this;\r\n var selectedRowKeys = that.option(\"selectedRowKeys\");\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n var normalizedArgs = isRecursiveSelection && that._normalizeSelectionArgs({\r\n keys: isDefined(value) ? value : []\r\n }, preserve, !isDeselect);\r\n if (normalizedArgs && !equalByValue(normalizedArgs.selectedRowKeys, selectedRowKeys)) {\r\n that._isSelectionNormalizing = true;\r\n return this.callBase(normalizedArgs.selectedRowKeys, false, false, false).always(() => {\r\n that._isSelectionNormalizing = false\r\n }).done(items => {\r\n normalizedArgs.selectedRowsData = items;\r\n that._fireSelectionChanged(normalizedArgs)\r\n })\r\n }\r\n return this.callBase(value, preserve, isDeselect, isSelectAll)\r\n },\r\n changeItemSelection(itemIndex, keyboardKeys) {\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n var callBase = this.callBase.bind(this);\r\n if (isRecursiveSelection && !keyboardKeys.shift) {\r\n var key = this._dataController.getKeyByRowIndex(itemIndex);\r\n return this.selectedItemKeys(key, true, this.isRowSelected(key)).done(() => {\r\n this.isRowSelected(key) && callBase(itemIndex, keyboardKeys, true)\r\n })\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateParentSelectionState(node, isSelected) {\r\n var that = this;\r\n var state = isSelected;\r\n var parentNode = node.parent;\r\n if (parentNode) {\r\n if (parentNode.children.length > 1) {\r\n if (false === isSelected) {\r\n var hasSelectedState = parentNode.children.some(childNode => that._selectionStateByKey[childNode.key]);\r\n state = hasSelectedState ? void 0 : false\r\n } else if (true === isSelected) {\r\n var hasNonSelectedState = parentNode.children.some(childNode => !that._selectionStateByKey[childNode.key]);\r\n state = hasNonSelectedState ? void 0 : true\r\n }\r\n }\r\n this._selectionStateByKey[parentNode.key] = state;\r\n if (parentNode.parent && parentNode.parent.level >= 0) {\r\n this._updateParentSelectionState(parentNode, state)\r\n }\r\n }\r\n },\r\n _updateChildrenSelectionState(node, isSelected) {\r\n var that = this;\r\n var {\r\n children: children\r\n } = node;\r\n children && children.forEach(childNode => {\r\n that._selectionStateByKey[childNode.key] = isSelected;\r\n if (childNode.children.length > 0) {\r\n that._updateChildrenSelectionState(childNode, isSelected)\r\n }\r\n })\r\n },\r\n _updateSelectionStateCore(keys, isSelected) {\r\n var dataController = this._dataController;\r\n for (var i = 0; i < keys.length; i++) {\r\n this._selectionStateByKey[keys[i]] = isSelected;\r\n var node = dataController.getNodeByKey(keys[i]);\r\n if (node) {\r\n this._updateParentSelectionState(node, isSelected);\r\n this._updateChildrenSelectionState(node, isSelected)\r\n }\r\n }\r\n },\r\n _getSelectedParentKeys(key, selectedItemKeys, useCash) {\r\n var selectedParentNode;\r\n var node = this._dataController.getNodeByKey(key);\r\n var parentNode = node && node.parent;\r\n var result = [];\r\n while (parentNode && parentNode.level >= 0) {\r\n result.unshift(parentNode.key);\r\n var isSelected = useCash ? !nodeExists(selectedItemKeys, parentNode.key) && this.isRowSelected(parentNode.key) : selectedItemKeys.indexOf(parentNode.key) >= 0;\r\n if (isSelected) {\r\n selectedParentNode = parentNode;\r\n result = this._getSelectedParentKeys(selectedParentNode.key, selectedItemKeys, useCash).concat(result);\r\n break\r\n } else if (useCash) {\r\n break\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n return selectedParentNode && result || []\r\n },\r\n _getSelectedChildKeys(key, keysToIgnore) {\r\n var childKeys = [];\r\n var node = this._dataController.getNodeByKey(key);\r\n node && treeListCore.foreachNodes(node.children, childNode => {\r\n var ignoreKeyIndex = keysToIgnore.indexOf(childNode.key);\r\n if (ignoreKeyIndex < 0) {\r\n childKeys.push(childNode.key)\r\n }\r\n return ignoreKeyIndex > 0 || ignoreKeyIndex < 0 && void 0 === this._selectionStateByKey[childNode.key]\r\n });\r\n return childKeys\r\n },\r\n _normalizeParentKeys(key, args) {\r\n var keysToIgnore = [key];\r\n var parentNodeKeys = this._getSelectedParentKeys(key, args.selectedRowKeys);\r\n if (parentNodeKeys.length) {\r\n keysToIgnore = keysToIgnore.concat(parentNodeKeys);\r\n keysToIgnore.forEach(key => {\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n });\r\n var childKeys = this._getSelectedChildKeys(parentNodeKeys[0], keysToIgnore);\r\n args.selectedRowKeys = args.selectedRowKeys.concat(childKeys)\r\n }\r\n },\r\n _normalizeChildrenKeys(key, args) {\r\n var node = this._dataController.getNodeByKey(key);\r\n node && node.children.forEach(childNode => {\r\n var index = args.selectedRowKeys.indexOf(childNode.key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n this._normalizeChildrenKeys(childNode.key, args)\r\n })\r\n },\r\n _normalizeSelectedRowKeysCore(keys, args, preserve, isSelect) {\r\n var that = this;\r\n keys.forEach(key => {\r\n if (preserve && that.isRowSelected(key) === isSelect) {\r\n return\r\n }\r\n that._normalizeChildrenKeys(key, args);\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (isSelect) {\r\n if (index < 0) {\r\n args.selectedRowKeys.push(key)\r\n }\r\n args.currentSelectedRowKeys.push(key)\r\n } else {\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n args.currentDeselectedRowKeys.push(key);\r\n that._normalizeParentKeys(key, args)\r\n }\r\n })\r\n },\r\n _normalizeSelectionArgs(args, preserve, isSelect) {\r\n var result;\r\n var keys = Array.isArray(args.keys) ? args.keys : [args.keys];\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (keys.length) {\r\n result = {\r\n currentSelectedRowKeys: [],\r\n currentDeselectedRowKeys: [],\r\n selectedRowKeys: preserve ? selectedRowKeys.slice(0) : []\r\n };\r\n this._normalizeSelectedRowKeysCore(keys, result, preserve, isSelect)\r\n }\r\n return result\r\n },\r\n _updateSelectedItems(args) {\r\n this.updateSelectionState(args);\r\n this.callBase(args)\r\n },\r\n _fireSelectionChanged() {\r\n if (!this._isSelectionNormalizing) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isModeLeavesOnly: mode => \"leavesOnly\" === mode,\r\n _removeDuplicatedKeys(keys) {\r\n var result = [];\r\n var processedKeys = {};\r\n keys.forEach(key => {\r\n if (!processedKeys[key]) {\r\n processedKeys[key] = true;\r\n result.push(key)\r\n }\r\n });\r\n return result\r\n },\r\n _getAllChildKeys(key) {\r\n var childKeys = [];\r\n var node = this._dataController.getNodeByKey(key);\r\n node && treeListCore.foreachNodes(node.children, childNode => {\r\n childKeys.push(childNode.key)\r\n }, true);\r\n return childKeys\r\n },\r\n _getAllSelectedRowKeys(keys) {\r\n var result = [];\r\n keys.forEach(key => {\r\n var parentKeys = this._getSelectedParentKeys(key, [], true);\r\n var childKeys = this._getAllChildKeys(key);\r\n result.push.apply(result, parentKeys.concat([key], childKeys))\r\n });\r\n result = this._removeDuplicatedKeys(result);\r\n return result\r\n },\r\n _getParentSelectedRowKeys(keys) {\r\n var that = this;\r\n var result = [];\r\n keys.forEach(key => {\r\n var parentKeys = that._getSelectedParentKeys(key, keys);\r\n !parentKeys.length && result.push(key)\r\n });\r\n return result\r\n },\r\n _getLeafSelectedRowKeys(keys) {\r\n var result = [];\r\n var dataController = this._dataController;\r\n keys.forEach(key => {\r\n var node = dataController.getNodeByKey(key);\r\n node && !node.hasChildren && result.push(key)\r\n });\r\n return result\r\n },\r\n isRecursiveSelection() {\r\n var selectionMode = this.option(\"selection.mode\");\r\n var isRecursive = this.option(\"selection.recursive\");\r\n return \"multiple\" === selectionMode && isRecursive\r\n },\r\n updateSelectionState(options) {\r\n var removedItemKeys = options.removedItemKeys || [];\r\n var selectedItemKeys = options.selectedItemKeys || [];\r\n if (this.isRecursiveSelection()) {\r\n this._updateSelectionStateCore(removedItemKeys, false);\r\n this._updateSelectionStateCore(selectedItemKeys, true)\r\n }\r\n },\r\n isRowSelected(key, isRecursiveSelection) {\r\n var result = this.callBase.apply(this, arguments);\r\n isRecursiveSelection = null !== isRecursiveSelection && void 0 !== isRecursiveSelection ? isRecursiveSelection : this.isRecursiveSelection();\r\n if (!result && isRecursiveSelection) {\r\n if (key in this._selectionStateByKey) {\r\n return this._selectionStateByKey[key]\r\n }\r\n return false\r\n }\r\n return result\r\n },\r\n getSelectedRowKeys(mode) {\r\n if (!this._dataController) {\r\n return []\r\n }\r\n var selectedRowKeys = this.callBase.apply(this, arguments);\r\n if (mode) {\r\n if (this.isRecursiveSelection()) {\r\n selectedRowKeys = this._getAllSelectedRowKeys(selectedRowKeys)\r\n }\r\n if (\"all\" !== mode) {\r\n if (\"excludeRecursive\" === mode) {\r\n selectedRowKeys = this._getParentSelectedRowKeys(selectedRowKeys)\r\n } else if (this._isModeLeavesOnly(mode)) {\r\n selectedRowKeys = this._getLeafSelectedRowKeys(selectedRowKeys)\r\n }\r\n }\r\n }\r\n return selectedRowKeys\r\n },\r\n getSelectedRowsData(mode) {\r\n var dataController = this._dataController;\r\n var selectedKeys = this.getSelectedRowKeys(mode) || [];\r\n var selectedRowsData = [];\r\n selectedKeys.forEach(key => {\r\n var node = dataController.getNodeByKey(key);\r\n node && selectedRowsData.push(node.data)\r\n });\r\n return selectedRowsData\r\n },\r\n refresh() {\r\n this._selectionStateByKey = {};\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template, options);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && \"header\" === options.rowType && options.column.index === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render(options) {\r\n if (\"multiple\" === that.option(\"selection.mode\")) {\r\n that.renderSelectAll(options.container, options.model)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n renderSelectAll($cell, options) {\r\n $cell.addClass(TREELIST_SELECT_ALL_CLASS);\r\n this._renderSelectAllCheckBox($cell)\r\n },\r\n _isSortableElement($target) {\r\n return this.callBase($target) && !$target.closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length\r\n }\r\n },\r\n rowsView: {\r\n _renderIcons($iconContainer, options) {\r\n this.callBase.apply(this, arguments);\r\n if (!options.row.isNewRow && \"multiple\" === this.option(\"selection.mode\")) {\r\n this.getController(\"selection\").renderSelectCheckBoxContainer($iconContainer, options)\r\n }\r\n return $iconContainer\r\n },\r\n _rowClick(e) {\r\n var $targetElement = $(e.event.target);\r\n if (this.isExpandIcon($targetElement)) {\r\n this.callBase.apply(this, arguments)\r\n } else {\r\n originalRowClick.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/search.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n searchModule\r\n} from \"../../../grids/grid_core/search/m_search\";\r\nimport core from \"../m_core\";\r\ncore.registerModule(\"search\", searchModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_keyboard_navigation.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n keyboardNavigationModule\r\n} from \"../../grids/grid_core/keyboard_navigation/m_keyboard_navigation\";\r\nimport core from \"./m_core\";\r\ncore.registerModule(\"keyboardNavigation\", extend(true, {}, keyboardNavigationModule, {\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n _leftRightKeysHandler(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var dataController = this._dataController;\r\n if (eventArgs.ctrl) {\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n if (\"nextInRow\" === directionCode) {\r\n dataController.expandRow(key)\r\n } else {\r\n dataController.collapseRow(key)\r\n }\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/virtual_columns.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n virtualColumnsModule\r\n} from \"../../../grids/grid_core/virtual_columns/m_virtual_columns\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"virtualColumns\", virtualColumnsModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_focus.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n focusModule\r\n} from \"../../grids/grid_core/focus/m_focus\";\r\nimport core from \"./m_core\";\r\n\r\nfunction findIndex(items, callback) {\r\n var result = -1;\r\n items.forEach((node, index) => {\r\n if (callback(node)) {\r\n result = index\r\n }\r\n });\r\n return result\r\n}\r\ncore.registerModule(\"focus\", extend(true, {}, focusModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand(key) {\r\n if (this.option(\"focusedRowEnabled\") && this.isRowExpanded(key)) {\r\n if (this._isFocusedRowInside(key)) {\r\n this.option(\"focusedRowKey\", key)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInside(parentKey) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var parent = focusedRow && focusedRow.node.parent;\r\n while (parent) {\r\n if (parent.key === parentKey) {\r\n return true\r\n }\r\n parent = parent.parent\r\n }\r\n return false\r\n },\r\n getParentKey(key) {\r\n var dataSource = this._dataSource;\r\n var node = this.getNodeByKey(key);\r\n var d = new Deferred;\r\n if (node) {\r\n d.resolve(node.parent ? node.parent.key : void 0)\r\n } else {\r\n dataSource.load({\r\n filter: [dataSource.getKeyExpr(), \"=\", key]\r\n }).done(items => {\r\n var parentData = items[0];\r\n if (parentData) {\r\n d.resolve(dataSource.parentKeyOf(parentData))\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n expandAscendants(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n that.getParentKey(key).done(parentKey => {\r\n if (dataSource && void 0 !== parentKey && parentKey !== that.option(\"rootValue\")) {\r\n dataSource._isNodesInitializing = true;\r\n that.expandRow(parentKey);\r\n dataSource._isNodesInitializing = false;\r\n that.expandAscendants(parentKey).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getPageIndexByKey(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n that.expandAscendants(key).done(() => {\r\n dataSource.load({\r\n parentIds: []\r\n }).done(nodes => {\r\n var offset = findIndex(nodes, node => that.keyOf(node.data) === key);\r\n var pageIndex = -1;\r\n if (offset >= 0) {\r\n pageIndex = Math.floor(offset / that.pageSize())\r\n }\r\n d.resolve(pageIndex)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/module_not_extended/row_dragging.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowDraggingModule\r\n} from \"../../../grids/grid_core/row_dragging/m_row_dragging\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"rowDragging\", rowDraggingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/tree_list/m_widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeList from \"./m_widget_base\";\r\nimport \"./m_state_storing\";\r\nimport \"./module_not_extended/column_chooser\";\r\nimport \"./m_master_detail\";\r\nimport \"./editing/m_editing\";\r\nimport \"./module_not_extended/editing_row_based\";\r\nimport \"./module_not_extended/editing_form_based\";\r\nimport \"./module_not_extended/editing_cell_based\";\r\nimport \"./m_validating\";\r\nimport \"./m_virtual_scrolling\";\r\nimport \"./module_not_extended/filter_row\";\r\nimport \"./module_not_extended/header_filter\";\r\nimport \"./module_not_extended/filter_sync\";\r\nimport \"./module_not_extended/filter_builder\";\r\nimport \"./module_not_extended/filter_panel\";\r\nimport \"./module_not_extended/pager\";\r\nimport \"./module_not_extended/columns_resizing_reordering\";\r\nimport \"./module_not_extended/column_fixing\";\r\nimport \"./module_not_extended/adaptivity\";\r\nimport \"./selection/m_selection\";\r\nimport \"./module_not_extended/search\";\r\nimport \"./m_keyboard_navigation\";\r\nimport \"./module_not_extended/virtual_columns\";\r\nimport \"./m_focus\";\r\nimport \"./module_not_extended/row_dragging\";\r\nexport default TreeList;\r\n","/**\r\n * DevExtreme (esm/ui/tree_list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeList from \"../__internal/grids/tree_list/m_widget\";\r\nimport \"./tree_list/ui.tree_list.base\";\r\nexport default TreeList;\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.treelist.nodes_state.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class GanttTreeListNodeState {\r\n constructor(treeListNode) {\r\n var _treeListNode$parent;\r\n this.collapsed = false;\r\n this.key = treeListNode.key;\r\n this.children = treeListNode.children.map(node => node.key);\r\n this.parentKey = null === (_treeListNode$parent = treeListNode.parent) || void 0 === _treeListNode$parent ? void 0 : _treeListNode$parent.key\r\n }\r\n hasChildren() {\r\n return this.children.length > 0\r\n }\r\n removeChild(state) {\r\n var index = this.children.indexOf(state.key);\r\n if (index > -1) {\r\n this.children = this.children.splice(index, 1)\r\n }\r\n }\r\n equal(state) {\r\n if (!state || state.key !== this.key || state.parentKey !== this.parentKey) {\r\n return false\r\n }\r\n if (this.children.length !== state.children.length || this.children.some((value, index) => value !== state.children[index])) {\r\n return false\r\n }\r\n return true\r\n }\r\n}\r\nexport class GanttTreeListNodesState {\r\n constructor() {\r\n this._resetHash()\r\n }\r\n clear() {\r\n this._resetHash()\r\n }\r\n applyNodes(nodes, rootValue) {\r\n if (this._rootValue !== rootValue) {\r\n this._resetHash();\r\n this._rootValue = rootValue\r\n }\r\n this._removeNonExistentNodes(nodes.map(node => node.key));\r\n nodes.forEach(node => this._applyNode(node));\r\n this._validateHash()\r\n }\r\n saveExpandedState(expandedKeys) {\r\n this._hasCollapsed = false;\r\n this._forEachState(state => {\r\n if (state.hasChildren() && !expandedKeys.includes(state.key)) {\r\n state.collapsed = true;\r\n this._hasCollapsed = true\r\n }\r\n })\r\n }\r\n getExpandedKeys() {\r\n if (this._hasCollapsed) {\r\n var keys = [];\r\n this._forEachState(state => {\r\n if (state.hasChildren() && !state.collapsed) {\r\n keys.push(state.key)\r\n }\r\n });\r\n return keys\r\n }\r\n return null\r\n }\r\n _resetHash() {\r\n this._nodeHash = {};\r\n this._hasCollapsed = false\r\n }\r\n _getNodeState(key) {\r\n return this._nodeHash[key]\r\n }\r\n _removeNonExistentNodes(existingKeys) {\r\n if (existingKeys) {\r\n this._forEachState(state => {\r\n if (!existingKeys.includes(state.key)) {\r\n this._removeStateWithChildren(state)\r\n }\r\n })\r\n }\r\n }\r\n _removeStateWithChildren(key) {\r\n var state = this._getNodeState(key);\r\n if (state) {\r\n state.children.forEach(child => this._removeStateWithChildren(child));\r\n var parent = this._getNodeState(state.parentKey);\r\n if (parent) {\r\n parent.removeChild(state)\r\n }\r\n delete this._nodeHash[key]\r\n }\r\n }\r\n _applyNode(node) {\r\n var nodeState = new GanttTreeListNodeState(node);\r\n var oldState = this._getNodeState(node.key);\r\n if (!(null !== oldState && void 0 !== oldState && oldState.equal(nodeState))) {\r\n this._nodeHash[node.key] = nodeState;\r\n this._expandTreelineToNode(node.key)\r\n }\r\n }\r\n _expandTreelineToNode(key) {\r\n var state = this._getNodeState(key);\r\n var parent = this._getNodeState(null === state || void 0 === state ? void 0 : state.parentKey);\r\n while (parent) {\r\n parent.collapsed = false;\r\n parent = this._getNodeState(parent.parentKey)\r\n }\r\n }\r\n _validateHash() {\r\n Object.keys(this._nodeHash).forEach(key => {\r\n var state = this._getNodeState(key);\r\n var parentKey = null === state || void 0 === state ? void 0 : state.parentKey;\r\n if (parentKey !== this._rootValue && !this._getNodeState(parentKey)) {\r\n this._removeStateWithChildren(key)\r\n }\r\n })\r\n }\r\n _forEachState(callback) {\r\n Object.keys(this._nodeHash).forEach(key => {\r\n var state = this._nodeHash[key];\r\n if (state) {\r\n callback(state)\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.treelist.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport dxTreeList from \"../tree_list\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n GanttHelper\r\n} from \"./ui.gantt.helper\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n GanttTreeListNodesState\r\n} from \"./ui.gantt.treelist.nodes_state\";\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_COLLAPSABLE_ROW = \"dx-gantt-collapsable-row\";\r\nvar GANTT_DEFAULT_ROW_HEIGHT = 34;\r\nvar GANTT_SCROLL_ACTIVATION_LEVEL = 1;\r\nexport class GanttTreeList {\r\n constructor(gantt) {\r\n this._gantt = gantt;\r\n this._$treeList = this._gantt._$treeList\r\n }\r\n getTreeList() {\r\n var {\r\n keyExpr: keyExpr,\r\n parentIdExpr: parentIdExpr\r\n } = this._gantt.option(GANTT_TASKS);\r\n this._treeList = this._gantt._createComponent(this._$treeList, dxTreeList, {\r\n dataSource: this.createDataSource(this._gantt._tasksRaw, keyExpr),\r\n keyExpr: keyExpr,\r\n filterSyncEnabled: true,\r\n parentIdExpr: parentIdExpr,\r\n columns: this.getColumns(),\r\n columnResizingMode: \"nextColumn\",\r\n height: this._getHeight(),\r\n width: this._gantt.option(\"taskListWidth\"),\r\n selection: {\r\n mode: GanttHelper.getSelectionMode(this._gantt.option(\"allowSelection\"))\r\n },\r\n selectedRowKeys: GanttHelper.getArrayFromOneElement(this._gantt.option(\"selectedRowKey\")),\r\n sorting: this._gantt.option(\"sorting\"),\r\n filterRow: this._gantt.option(\"filterRow\"),\r\n headerFilter: this._gantt.option(\"headerFilter\"),\r\n scrolling: {\r\n showScrollbar: \"onHover\",\r\n mode: \"virtual\"\r\n },\r\n allowColumnResizing: true,\r\n autoExpandAll: true,\r\n showRowLines: this._gantt.option(\"showRowLines\"),\r\n rootValue: this._gantt.option(\"rootValue\"),\r\n onContentReady: e => {\r\n this._onContentReady(e)\r\n },\r\n onSelectionChanged: e => {\r\n this._onSelectionChanged(e)\r\n },\r\n onRowCollapsed: e => {\r\n this._onRowCollapsed(e)\r\n },\r\n onRowExpanded: e => {\r\n this._onRowExpanded(e)\r\n },\r\n onRowPrepared: e => {\r\n this._onRowPrepared(e)\r\n },\r\n onContextMenuPreparing: e => {\r\n this._onContextMenuPreparing(e)\r\n },\r\n onRowClick: e => {\r\n this.onRowClick(e)\r\n },\r\n onRowDblClick: e => {\r\n this.onRowDblClick(e)\r\n },\r\n onNodesInitialized: e => {\r\n this._onNodesInitialized(e)\r\n },\r\n _disableDeprecationWarnings: true\r\n });\r\n return this._treeList\r\n }\r\n onAfterTreeListCreate() {\r\n if (this._postponedGanttInitRequired) {\r\n this._initGanttOnContentReady({\r\n component: this._treeList\r\n });\r\n delete this._postponedGanttInitRequired\r\n }\r\n }\r\n _onContentReady(e) {\r\n var hasTreeList = !!this._treeList;\r\n if (hasTreeList) {\r\n this._initGanttOnContentReady(e)\r\n } else {\r\n this._postponedGanttInitRequired = true\r\n }\r\n this._gantt._onTreeListContentReady(e)\r\n }\r\n _initGanttOnContentReady(e) {\r\n if (e.component.getDataSource()) {\r\n this._gantt._initGanttView();\r\n this._initScrollSync(e.component)\r\n }\r\n this._gantt._sortAndFilter();\r\n this._gantt._sizeHelper.updateGanttRowHeights()\r\n }\r\n _onSelectionChanged(e) {\r\n var selectedRowKey = e.currentSelectedRowKeys[0];\r\n this._gantt._setGanttViewOption(\"selectedRowKey\", selectedRowKey);\r\n this._gantt._setOptionWithoutOptionChange(\"selectedRowKey\", selectedRowKey);\r\n this._gantt._actionsManager.raiseSelectionChangedAction(selectedRowKey)\r\n }\r\n _onRowCollapsed(e) {\r\n this._gantt._onTreeListRowExpandChanged(e, false)\r\n }\r\n _onRowExpanded(e) {\r\n this._gantt._onTreeListRowExpandChanged(e, true)\r\n }\r\n _onRowPrepared(e) {\r\n if (\"data\" === e.rowType && e.node.children.length > 0) {\r\n $(e.rowElement).addClass(GANTT_COLLAPSABLE_ROW)\r\n }\r\n }\r\n _onContextMenuPreparing(e) {\r\n var _e$row, _e$row2;\r\n if (\"header\" === e.target) {\r\n return\r\n }\r\n if (\"data\" === (null === (_e$row = e.row) || void 0 === _e$row ? void 0 : _e$row.rowType)) {\r\n this.setOption(\"selectedRowKeys\", [e.row.data[this._gantt.option(\"tasks.keyExpr\")]])\r\n }\r\n e.items = [];\r\n var info = {\r\n cancel: false,\r\n event: e.event,\r\n type: \"task\",\r\n key: null === (_e$row2 = e.row) || void 0 === _e$row2 ? void 0 : _e$row2.key,\r\n position: {\r\n x: e.event.pageX,\r\n y: e.event.pageY\r\n }\r\n };\r\n this._gantt._showPopupMenu(info)\r\n }\r\n _getHeight() {\r\n if (getHeight(this._$treeList)) {\r\n return getHeight(this._$treeList)\r\n }\r\n this._gantt._hasHeight = isDefined(this._gantt.option(\"height\")) && \"\" !== this._gantt.option(\"height\");\r\n return this._gantt._hasHeight ? \"100%\" : \"\"\r\n }\r\n _initScrollSync(treeList) {\r\n var treeListScrollable = treeList.getScrollable();\r\n if (treeListScrollable) {\r\n treeListScrollable.off(\"scroll\");\r\n treeListScrollable.on(\"scroll\", e => {\r\n this._onScroll(e)\r\n })\r\n }\r\n }\r\n _onScroll(treeListScrollView) {\r\n var ganttViewTaskAreaContainer = this._gantt._ganttView.getTaskAreaContainer();\r\n if (ganttViewTaskAreaContainer.scrollTop !== treeListScrollView.component.scrollTop()) {\r\n ganttViewTaskAreaContainer.scrollTop = treeListScrollView.component.scrollTop()\r\n }\r\n }\r\n _correctRowsViewRowHeight(height) {\r\n var view = this._treeList._views && this._treeList._views.rowsView;\r\n if ((null === view || void 0 === view ? void 0 : view._rowHeight) !== height) {\r\n view._rowHeight = height\r\n }\r\n }\r\n _skipUpdateTreeListDataSource() {\r\n return this._gantt.option(\"validation.autoUpdateParentTasks\")\r\n }\r\n selectRows(keys) {\r\n this.setOption(\"selectedRowKeys\", keys)\r\n }\r\n scrollBy(scrollTop) {\r\n var treeListScrollable = this._treeList.getScrollable();\r\n if (treeListScrollable) {\r\n var diff = scrollTop - treeListScrollable.scrollTop();\r\n if (Math.abs(diff) >= GANTT_SCROLL_ACTIVATION_LEVEL) {\r\n treeListScrollable.scrollBy({\r\n left: 0,\r\n top: diff\r\n })\r\n }\r\n }\r\n }\r\n updateDataSource(data) {\r\n var forceUpdate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var forceCustomData = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n if (!this._skipUpdateTreeListDataSource() || forceUpdate) {\r\n this.setDataSource(data)\r\n } else if (forceCustomData) {\r\n var _data = this._treeList.option(\"dataSource\");\r\n this._gantt._onParentTasksRecalculated(_data)\r\n }\r\n }\r\n setDataSource(data) {\r\n this.setOption(\"dataSource\", this.createDataSource(data))\r\n }\r\n createDataSource(data, key) {\r\n return data && new DataSource({\r\n store: new ArrayStore({\r\n data: data,\r\n key: key || this.getOption(\"keyExpr\")\r\n })\r\n })\r\n }\r\n onRowClick(e) {\r\n this._gantt._actionsManager.raiseTaskClickAction(e.key, e.event)\r\n }\r\n onRowDblClick(e) {\r\n if (this._gantt._actionsManager.raiseTaskDblClickAction(e.key, e.event)) {\r\n this._gantt._ganttView._ganttViewCore.showTaskEditDialog()\r\n }\r\n }\r\n saveExpandedKeys() {\r\n var treeList = this._treeList;\r\n var visibleRowCount = null === treeList || void 0 === treeList ? void 0 : treeList.getVisibleRows().length;\r\n if (visibleRowCount > 0) {\r\n var nodes = this.getAllNodes();\r\n var keys = this.getOption(\"expandedRowKeys\");\r\n var hasExpandedRows = keys && nodes.length !== visibleRowCount;\r\n if (hasExpandedRows) {\r\n var state = this.getNodesState();\r\n state.applyNodes(nodes, this.getOption(\"rootValue\"));\r\n state.saveExpandedState(keys)\r\n }\r\n }\r\n }\r\n _onNodesInitialized(e) {\r\n var state = this.getNodesState();\r\n var savedKeys = state.getExpandedKeys();\r\n var nodes = this.getAllNodes();\r\n state.applyNodes(nodes, this.getOption(\"rootValue\"));\r\n var expandedKeys = state.getExpandedKeys();\r\n if (expandedKeys) {\r\n this.setOption(\"expandedRowKeys\", expandedKeys)\r\n }\r\n if (this.isExpandedStateChanged(savedKeys, expandedKeys)) {\r\n var expandedState = nodes.reduce((previous, node) => {\r\n previous[node.key] = expandedKeys ? expandedKeys.includes(node.key) : true;\r\n return previous\r\n }, {});\r\n this._gantt._ganttView.applyTasksExpandedState(expandedState)\r\n }\r\n state.clear()\r\n }\r\n getNodesState() {\r\n if (!this._nodeState) {\r\n this._nodeState = new GanttTreeListNodesState\r\n }\r\n return this._nodeState\r\n }\r\n getAllNodes() {\r\n var _this$_treeList, _this$_treeList$getDa, _this$_treeList2;\r\n var store = null === (_this$_treeList = this._treeList) || void 0 === _this$_treeList ? void 0 : null === (_this$_treeList$getDa = _this$_treeList.getDataSource()) || void 0 === _this$_treeList$getDa ? void 0 : _this$_treeList$getDa.store();\r\n if (!store || !(null !== (_this$_treeList2 = this._treeList) && void 0 !== _this$_treeList2 && _this$_treeList2.getNodeByKey)) {\r\n return []\r\n }\r\n var keyGetter = compileGetter(store.key());\r\n return store._array.map(item => this._treeList.getNodeByKey(keyGetter(item))).filter(item => !!item)\r\n }\r\n isExpandedStateChanged(keys1, keys2) {\r\n if (null === keys1 && null === keys2) {\r\n return false\r\n }\r\n if ((null === keys1 || void 0 === keys1 ? void 0 : keys1.length) !== (null === keys2 || void 0 === keys2 ? void 0 : keys2.length)) {\r\n return true\r\n }\r\n return keys1.some((key, index) => key !== keys2[index])\r\n }\r\n getOffsetHeight() {\r\n return this._gantt._treeList._$element.get(0).offsetHeight\r\n }\r\n getRowHeight() {\r\n var $row = this._treeList._$element.find(\".dx-data-row\");\r\n var height = $row.length ? getBoundingRect($row.last().get(0)).height : GANTT_DEFAULT_ROW_HEIGHT;\r\n if (!height) {\r\n height = GANTT_DEFAULT_ROW_HEIGHT\r\n }\r\n this._correctRowsViewRowHeight(height);\r\n return height\r\n }\r\n getHeaderHeight() {\r\n return getBoundingRect(this._treeList._$element.find(\".dx-treelist-headers\").get(0)).height\r\n }\r\n getColumns() {\r\n var columns = this._gantt.option(\"columns\");\r\n if (columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n var isKeyColumn = column.dataField === this._gantt.option(\"\".concat(GANTT_TASKS, \".keyExpr\")) || column.dataField === this._gantt.option(\"\".concat(GANTT_TASKS, \".parentIdExpr\"));\r\n if (isKeyColumn && !column.dataType) {\r\n column.dataType = \"object\"\r\n }\r\n }\r\n }\r\n return columns\r\n }\r\n getSievedItems() {\r\n var rootNode = this._treeList.getRootNode();\r\n if (!rootNode) {\r\n return\r\n }\r\n var resultArray = [];\r\n GanttHelper.convertTreeToList(rootNode, resultArray);\r\n var getters = GanttHelper.compileGettersByOption(this._gantt.option(GANTT_TASKS));\r\n var validatedData = this._gantt._validateSourceData(GANTT_TASKS, resultArray);\r\n var mappedData = validatedData.map(GanttHelper.prepareMapHandler(getters));\r\n return mappedData\r\n }\r\n setOption(optionName, value) {\r\n this._treeList && this._treeList.option(optionName, value)\r\n }\r\n getOption(optionName) {\r\n var _this$_treeList3;\r\n return null === (_this$_treeList3 = this._treeList) || void 0 === _this$_treeList3 ? void 0 : _this$_treeList3.option(optionName)\r\n }\r\n onTaskInserted(insertedId, parentId) {\r\n if (isDefined(parentId)) {\r\n var expandedRowKeys = this.getOption(\"expandedRowKeys\");\r\n if (-1 === expandedRowKeys.indexOf(parentId)) {\r\n expandedRowKeys.push(parentId);\r\n this.setOption(\"expandedRowKeys\", expandedRowKeys)\r\n }\r\n }\r\n this.selectRows(GanttHelper.getArrayFromOneElement(insertedId));\r\n this.setOption(\"focusedRowKey\", insertedId)\r\n }\r\n getDataSource() {\r\n var _this$_treeList4;\r\n return null === (_this$_treeList4 = this._treeList) || void 0 === _this$_treeList4 ? void 0 : _this$_treeList4.getDataSource()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.task.area.container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxScrollView from \"../scroll_view\";\r\nexport class TaskAreaContainer {\r\n constructor(element, ganttViewWidget) {\r\n this._element = element;\r\n this._scrollView = ganttViewWidget._createComponent(this._element, dxScrollView, {\r\n scrollByContent: false,\r\n scrollByThumb: true,\r\n showScrollbar: \"onHover\",\r\n direction: \"both\",\r\n onScroll: () => {\r\n ganttViewWidget.updateView()\r\n }\r\n })\r\n }\r\n get scrollTop() {\r\n return this._scrollView.scrollTop()\r\n }\r\n set scrollTop(value) {\r\n var diff = value - this._scrollView.scrollTop();\r\n if (0 !== diff) {\r\n this._scrollView.scrollBy({\r\n left: 0,\r\n top: diff\r\n })\r\n }\r\n }\r\n get scrollLeft() {\r\n return this._scrollView.scrollLeft()\r\n }\r\n set scrollLeft(value) {\r\n var diff = value - this._scrollView.scrollLeft();\r\n if (0 !== diff) {\r\n this._scrollView.scrollBy({\r\n left: diff,\r\n top: 0\r\n })\r\n }\r\n }\r\n get scrollWidth() {\r\n return this._scrollView.scrollWidth()\r\n }\r\n get scrollHeight() {\r\n return this._scrollView.scrollHeight()\r\n }\r\n get isExternal() {\r\n return true\r\n }\r\n getWidth() {\r\n return this._element.offsetWidth\r\n }\r\n getHeight() {\r\n return this._element.offsetHeight\r\n }\r\n getElement() {\r\n return this._element\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n getGanttViewCore\r\n} from \"./gantt_importer\";\r\nimport {\r\n TaskAreaContainer\r\n} from \"./ui.gantt.task.area.container\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport coreLocalization from \"../../localization/core\";\r\nexport class GanttView extends Widget {\r\n _init() {\r\n super._init();\r\n this._onSelectionChanged = this._createActionByOption(\"onSelectionChanged\");\r\n this._onViewTypeChanged = this._createActionByOption(\"onViewTypeChanged\");\r\n this._onScroll = this._createActionByOption(\"onScroll\");\r\n this._onDialogShowing = this._createActionByOption(\"onDialogShowing\");\r\n this._onPopupMenuShowing = this._createActionByOption(\"onPopupMenuShowing\");\r\n this._onPopupMenuHiding = this._createActionByOption(\"onPopupMenuHiding\");\r\n this._expandAll = this._createActionByOption(\"onExpandAll\");\r\n this._collapseAll = this._createActionByOption(\"onCollapseAll\");\r\n this._taskClick = this._createActionByOption(\"onTaskClick\");\r\n this._taskDblClick = this._createActionByOption(\"onTaskDblClick\");\r\n this._onAdjustControl = this._createActionByOption(\"onAdjustControl\")\r\n }\r\n _initMarkup() {\r\n var GanttView = getGanttViewCore();\r\n this._ganttViewCore = new GanttView(this.$element().get(0), this, {\r\n showResources: this.option(\"showResources\"),\r\n showDependencies: this.option(\"showDependencies\"),\r\n taskTitlePosition: this._getTaskTitlePosition(this.option(\"taskTitlePosition\")),\r\n firstDayOfWeek: this._getFirstDayOfWeek(this.option(\"firstDayOfWeek\")),\r\n allowSelectTask: this.option(\"allowSelection\"),\r\n startDateRange: this.option(\"startDateRange\"),\r\n endDateRange: this.option(\"endDateRange\"),\r\n editing: this._parseEditingSettings(this.option(\"editing\")),\r\n validation: this.option(\"validation\"),\r\n stripLines: {\r\n stripLines: this.option(\"stripLines\")\r\n },\r\n areHorizontalBordersEnabled: this.option(\"showRowLines\"),\r\n areAlternateRowsEnabled: false,\r\n viewType: this._getViewTypeByScaleType(this.option(\"scaleType\")),\r\n viewTypeRange: this._parseViewTypeRangeSettings(this.option(\"scaleTypeRange\")),\r\n cultureInfo: this._getCultureInfo(),\r\n taskTooltipContentTemplate: this.option(\"taskTooltipContentTemplate\"),\r\n taskProgressTooltipContentTemplate: this.option(\"taskProgressTooltipContentTemplate\"),\r\n taskTimeTooltipContentTemplate: this.option(\"taskTimeTooltipContentTemplate\"),\r\n taskContentTemplate: this.option(\"taskContentTemplate\"),\r\n sieve: this.option(\"sieve\")\r\n });\r\n this._selectTask(this.option(\"selectedRowKey\"));\r\n this.updateBarItemsState()\r\n }\r\n _getFirstDayOfWeek(value) {\r\n return isDefined(value) ? value : dateLocalization.firstDayOfWeekIndex()\r\n }\r\n getTaskAreaContainer() {\r\n return this._ganttViewCore.getTaskAreaContainer()\r\n }\r\n getBarManager() {\r\n return this._ganttViewCore.barManager\r\n }\r\n executeCoreCommand(id) {\r\n var command = this._ganttViewCore.getCommandByKey(id);\r\n if (command) {\r\n command.execute()\r\n }\r\n }\r\n changeTaskExpanded(id, value) {\r\n this._ganttViewCore.changeTaskExpanded(id, value)\r\n }\r\n updateView() {\r\n var _this$_ganttViewCore;\r\n null === (_this$_ganttViewCore = this._ganttViewCore) || void 0 === _this$_ganttViewCore ? void 0 : _this$_ganttViewCore.updateView()\r\n }\r\n updateBarItemsState() {\r\n this._ganttViewCore.barManager.updateItemsState([])\r\n }\r\n setWidth(value) {\r\n this._ganttViewCore.setWidth(value)\r\n }\r\n _onDimensionChanged() {\r\n this._ganttViewCore.onBrowserWindowResize()\r\n }\r\n _selectTask(id) {\r\n this._ganttViewCore.selectTaskById(id)\r\n }\r\n _update(keepExpandState) {\r\n var _this$_ganttViewCore2;\r\n null === (_this$_ganttViewCore2 = this._ganttViewCore) || void 0 === _this$_ganttViewCore2 ? void 0 : _this$_ganttViewCore2.updateWithDataReload(keepExpandState)\r\n }\r\n _getCultureInfo() {\r\n return {\r\n monthNames: dateLocalization.getMonthNames(\"wide\"),\r\n dayNames: dateLocalization.getDayNames(\"wide\"),\r\n abbrMonthNames: dateLocalization.getMonthNames(\"abbreviated\"),\r\n abbrDayNames: dateLocalization.getDayNames(\"abbreviated\"),\r\n quarterNames: this._getQuarterNames(),\r\n amText: this._getAmText(),\r\n pmText: this._getPmText(),\r\n start: messageLocalization.format(\"dxGantt-dialogStartTitle\"),\r\n end: messageLocalization.format(\"dxGantt-dialogEndTitle\"),\r\n progress: messageLocalization.format(\"dxGantt-dialogProgressTitle\")\r\n }\r\n }\r\n _getAmText() {\r\n return this._hasAmPM() ? dateLocalization.getPeriodNames()[0] : \"\"\r\n }\r\n _getPmText() {\r\n return this._hasAmPM() ? dateLocalization.getPeriodNames()[1] : \"\"\r\n }\r\n _hasAmPM() {\r\n var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));\r\n var dateString = date.toLocaleTimeString(coreLocalization.locale());\r\n return dateString.match(/am|pm/i) || date.toString().match(/am|pm/i)\r\n }\r\n _getQuarterNames() {\r\n var quarterFormat = messageLocalization.format(\"dxGantt-quarter\");\r\n if (!quarterFormat) {\r\n return dateLocalization.getQuarterNames()\r\n }\r\n return [format(quarterFormat, 1), format(quarterFormat, 2), format(quarterFormat, 3), format(quarterFormat, 4)]\r\n }\r\n _getTaskTitlePosition(value) {\r\n switch (value) {\r\n case \"outside\":\r\n return 1;\r\n case \"none\":\r\n return 2;\r\n default:\r\n return 0\r\n }\r\n }\r\n _getViewTypeByScaleType(scaleType) {\r\n switch (scaleType) {\r\n case \"minutes\":\r\n return 0;\r\n case \"hours\":\r\n return 1;\r\n case \"sixHours\":\r\n return 2;\r\n case \"days\":\r\n return 3;\r\n case \"weeks\":\r\n return 4;\r\n case \"months\":\r\n return 5;\r\n case \"quarters\":\r\n return 6;\r\n case \"years\":\r\n return 7;\r\n default:\r\n return\r\n }\r\n }\r\n _parseEditingSettings(value) {\r\n return {\r\n enabled: value.enabled,\r\n allowDependencyDelete: value.allowDependencyDeleting,\r\n allowDependencyInsert: value.allowDependencyAdding,\r\n allowTaskDelete: value.allowTaskDeleting,\r\n allowTaskInsert: value.allowTaskAdding,\r\n allowTaskUpdate: value.allowTaskUpdating,\r\n allowResourceDelete: value.allowResourceDeleting,\r\n allowResourceInsert: value.allowResourceAdding,\r\n allowResourceUpdate: value.allowResourceUpdating,\r\n allowTaskResourceUpdate: value.allowTaskResourceUpdating\r\n }\r\n }\r\n _parseViewTypeRangeSettings(value) {\r\n return {\r\n min: this._getViewTypeByScaleType(value.min),\r\n max: this._getViewTypeByScaleType(value.max)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n super._optionChanged(args);\r\n this._ganttViewCore.setWidth(args.value);\r\n break;\r\n case \"height\":\r\n this._ganttViewCore.setHeight(args.value);\r\n break;\r\n case \"tasks\":\r\n case \"dependencies\":\r\n case \"resources\":\r\n case \"resourceAssignments\":\r\n this._sieveOptions = void 0;\r\n this._update(true);\r\n break;\r\n case \"showResources\":\r\n this._ganttViewCore.setShowResources(args.value);\r\n break;\r\n case \"showDependencies\":\r\n this._ganttViewCore.setShowDependencies(args.value);\r\n break;\r\n case \"taskTitlePosition\":\r\n this._ganttViewCore.setTaskTitlePosition(this._getTaskTitlePosition(args.value));\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._ganttViewCore.setFirstDayOfWeek(this._getFirstDayOfWeek(args.value));\r\n break;\r\n case \"startDateRange\":\r\n this._ganttViewCore.setStartDateRange(args.value);\r\n break;\r\n case \"endDateRange\":\r\n this._ganttViewCore.setEndDateRange(args.value);\r\n break;\r\n case \"allowSelection\":\r\n this._ganttViewCore.setAllowSelection(args.value);\r\n break;\r\n case \"selectedRowKey\":\r\n this._selectTask(args.value);\r\n break;\r\n case \"editing\":\r\n this._ganttViewCore.setEditingSettings(this._parseEditingSettings(args.value));\r\n break;\r\n case \"validation\":\r\n this._ganttViewCore.setValidationSettings(args.value);\r\n this._update(true);\r\n break;\r\n case \"showRowLines\":\r\n this._ganttViewCore.setRowLinesVisible(args.value);\r\n break;\r\n case \"scaleType\":\r\n this._ganttViewCore.setViewType(this._getViewTypeByScaleType(args.value));\r\n break;\r\n case \"scaleTypeRange\":\r\n this._ganttViewCore.setViewTypeRange(this._getViewTypeByScaleType(args.value.min), this._getViewTypeByScaleType(args.value.max));\r\n break;\r\n case \"stripLines\":\r\n this._ganttViewCore.setStripLines({\r\n stripLines: args.value\r\n });\r\n break;\r\n case \"taskTooltipContentTemplate\":\r\n this._ganttViewCore.setTaskTooltipContentTemplate(args.value);\r\n break;\r\n case \"taskProgressTooltipContentTemplate\":\r\n this._ganttViewCore.setTaskProgressTooltipContentTemplate(args.value);\r\n break;\r\n case \"taskTimeTooltipContentTemplate\":\r\n this._ganttViewCore.setTaskTimeTooltipContentTemplate(args.value);\r\n break;\r\n case \"taskContentTemplate\":\r\n this._ganttViewCore.setTaskContentTemplate(args.value);\r\n break;\r\n case \"sieve\":\r\n this._sortAndFilter(args.value);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n get bars() {\r\n return this.option(\"bars\")\r\n }\r\n getRowHeight() {\r\n return this.option(\"rowHeight\")\r\n }\r\n getHeaderHeight() {\r\n return this.option(\"headerHeight\")\r\n }\r\n getGanttTasksData() {\r\n var tasks = this.option(\"tasks\");\r\n var sieveOptions = this.getSieveOptions();\r\n if (null !== sieveOptions && void 0 !== sieveOptions && sieveOptions.sievedItems && null !== sieveOptions && void 0 !== sieveOptions && sieveOptions.sieveColumn) {\r\n return sieveOptions.sievedItems\r\n }\r\n return tasks\r\n }\r\n _sortAndFilter(args) {\r\n this._sieveOptions = args;\r\n this._update(!(null !== args && void 0 !== args && args.expandTasks));\r\n var selectedRowKey = this.option(\"selectedRowKey\");\r\n this._selectTask(selectedRowKey)\r\n }\r\n getSieveOptions() {\r\n return this._sieveOptions\r\n }\r\n getGanttDependenciesData() {\r\n return this.option(\"dependencies\")\r\n }\r\n getGanttResourcesData() {\r\n return this.option(\"resources\")\r\n }\r\n getGanttResourceAssignmentsData() {\r\n return this.option(\"resourceAssignments\")\r\n }\r\n getGanttWorkTimeRules() {\r\n return null\r\n }\r\n getExternalTaskAreaContainer(element) {\r\n if (!this._taskAreaContainer) {\r\n this._taskAreaContainer = new TaskAreaContainer(element, this)\r\n }\r\n return this._taskAreaContainer\r\n }\r\n prepareExternalTaskAreaContainer(element, info) {\r\n if (null !== info && void 0 !== info && info.height) {\r\n this._taskAreaContainer._scrollView.option(\"height\", info.height)\r\n }\r\n }\r\n changeGanttTaskSelection(id, selected) {\r\n this._onSelectionChanged({\r\n id: id,\r\n selected: selected\r\n })\r\n }\r\n onGanttScroll(scrollTop) {\r\n this._onScroll({\r\n scrollTop: scrollTop\r\n })\r\n }\r\n showDialog(name, parameters, callback, afterClosing) {\r\n this._onDialogShowing({\r\n name: name,\r\n parameters: parameters,\r\n callback: callback,\r\n afterClosing: afterClosing\r\n })\r\n }\r\n getModelChangesListener() {\r\n return this.option(\"modelChangesListener\")\r\n }\r\n getExportInfo() {\r\n return this.option(\"exportInfo\")\r\n }\r\n showPopupMenu(info) {\r\n this._onPopupMenuShowing(info)\r\n }\r\n hidePopupMenu(info) {\r\n this._onPopupMenuHiding(info)\r\n }\r\n getMainElement() {\r\n return this.option(\"mainElement\").get(0)\r\n }\r\n adjustControl() {\r\n this._onAdjustControl()\r\n }\r\n getRequireFirstLoadParentAutoCalc() {\r\n return this.option(\"validation.autoUpdateParentTasks\")\r\n }\r\n collapseAll() {\r\n this._collapseAll()\r\n }\r\n expandAll() {\r\n this._expandAll()\r\n }\r\n onTaskClick(key, event) {\r\n this._taskClick({\r\n key: key,\r\n event: event\r\n });\r\n return true\r\n }\r\n onTaskDblClick(key, event) {\r\n return this._taskDblClick({\r\n key: key,\r\n event: event\r\n })\r\n }\r\n onGanttViewContextMenu(event, key, type) {\r\n return true\r\n }\r\n getFormattedDateText(date) {\r\n var result = \"\";\r\n if (date) {\r\n var datePart = dateLocalization.format(date, \"shortDate\");\r\n var timeFormat = this._hasAmPM() ? \"hh:mm a\" : \"HH:mm\";\r\n var timePart = dateLocalization.format(date, timeFormat);\r\n result = datePart + \" \" + timePart\r\n }\r\n return result\r\n }\r\n destroyTemplate(container) {\r\n $(container).empty()\r\n }\r\n onTaskAreaSizeChanged(info) {\r\n var scrollView = this._taskAreaContainer._scrollView;\r\n if (isDefined(null === info || void 0 === info ? void 0 : info.height)) {\r\n var direction = (null === info || void 0 === info ? void 0 : info.height) > this._taskAreaContainer.getHeight() ? \"both\" : \"horizontal\";\r\n scrollView.option(\"direction\", direction)\r\n }\r\n }\r\n updateGanttViewType(type) {\r\n this._onViewTypeChanged({\r\n type: type\r\n })\r\n }\r\n getTreeListTableStyle() {\r\n return this.callExportHelperMethod(\"getTreeListTableStyle\")\r\n }\r\n getTreeListColCount() {\r\n return this.callExportHelperMethod(\"getTreeListColCount\")\r\n }\r\n getTreeListHeaderInfo(colIndex) {\r\n return this.callExportHelperMethod(\"getTreeListHeaderInfo\", colIndex)\r\n }\r\n getTreeListCellInfo(rowIndex, colIndex, key) {\r\n return this.callExportHelperMethod(\"getTreeListCellInfo\", key, colIndex)\r\n }\r\n getTreeListEmptyDataCellInfo() {\r\n return this.callExportHelperMethod(\"getTreeListEmptyDataCellInfo\")\r\n }\r\n callExportHelperMethod(methodName) {\r\n var helper = this.option(\"exportHelper\");\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key]\r\n }\r\n return helper[methodName](...args)\r\n }\r\n applyTasksExpandedState(state) {\r\n var _this$_ganttViewCore3;\r\n null === (_this$_ganttViewCore3 = this._ganttViewCore) || void 0 === _this$_ganttViewCore3 ? void 0 : _this$_ganttViewCore3.applyTasksExpandedState(state)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/gantt_importer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Errors from \"../widget/ui.errors\";\r\nimport Gantt from \"devexpress-gantt\";\r\nexport function getGanttViewCore() {\r\n if (!Gantt) {\r\n throw Errors.Error(\"E1041\", \"devexpress-gantt\")\r\n }\r\n return Gantt\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.data_changes_processing_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class GanttDataChangesProcessingHelper {\r\n constructor() {\r\n this._waitingForGanttViewReady = false;\r\n this._waitingForTreeListReady = false;\r\n this._completionActions = []\r\n }\r\n onGanttViewReady() {\r\n this._stopWaitForGanttViewReady();\r\n this.executeActionsIfPossible()\r\n }\r\n onTreeListReady() {\r\n this._stopWaitForTreeListReady();\r\n this.executeActionsIfPossible()\r\n }\r\n addCompletionAction(action, waitGanttViewReady, waitTreeListReady) {\r\n if (action) {\r\n if (waitGanttViewReady) {\r\n this._startWaitForGanttViewReady()\r\n }\r\n if (waitTreeListReady) {\r\n this._startWaitForTreeListReady()\r\n }\r\n this._completionActions.push(action)\r\n }\r\n }\r\n executeActionsIfPossible() {\r\n if (this._canExecuteActions()) {\r\n this._completionActions.forEach(act => act());\r\n this._completionActions = []\r\n }\r\n }\r\n _startWaitForGanttViewReady() {\r\n this._waitingForGanttViewReady = true\r\n }\r\n _stopWaitForGanttViewReady() {\r\n this._waitingForGanttViewReady = false\r\n }\r\n _startWaitForTreeListReady() {\r\n this._waitingForTreeListReady = true\r\n }\r\n _stopWaitForTreeListReady() {\r\n this._waitingForTreeListReady = false\r\n }\r\n _canExecuteActions() {\r\n return !(this._waitingForGanttViewReady || this._waitingForTreeListReady)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/gantt/ui.gantt.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n ModelChangesListener\r\n} from \"./ui.gantt.model_changes_listener\";\r\nimport DataOption from \"./ui.gantt.data.option\";\r\nimport LoadPanel from \"../load_panel\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport SplitterControl from \"../splitter\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n GanttActionsManager\r\n} from \"./ui.gantt.actions\";\r\nimport {\r\n GanttCustomFieldsManager\r\n} from \"./ui.gantt.custom_fields\";\r\nimport {\r\n GanttDialog\r\n} from \"./ui.gantt.dialogs\";\r\nimport {\r\n GanttExportHelper\r\n} from \"./ui.gantt.export_helper\";\r\nimport {\r\n GanttHelper\r\n} from \"./ui.gantt.helper\";\r\nimport {\r\n GanttMappingHelper\r\n} from \"./ui.gantt.mapping_helper\";\r\nimport {\r\n GanttSizeHelper\r\n} from \"./ui.gantt.size_helper\";\r\nimport {\r\n GanttTemplatesManager\r\n} from \"./ui.gantt.templates\";\r\nimport {\r\n GanttToolbar,\r\n GanttContextMenuBar\r\n} from \"./ui.gantt.bars\";\r\nimport {\r\n GanttTreeList\r\n} from \"./ui.gantt.treelist\";\r\nimport {\r\n GanttView\r\n} from \"./ui.gantt.view\";\r\nimport {\r\n GanttDataChangesProcessingHelper\r\n} from \"./ui.gantt.data_changes_processing_helper\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nvar window = getWindow();\r\nvar GANTT_CLASS = \"dx-gantt\";\r\nvar GANTT_VIEW_CLASS = \"dx-gantt-view\";\r\nvar GANTT_TREE_LIST_WRAPPER = \"dx-gantt-treelist-wrapper\";\r\nvar GANTT_TOOLBAR_WRAPPER = \"dx-gantt-toolbar-wrapper\";\r\nvar GANTT_MAIN_WRAPPER = \"dx-gantt-main-wrapper\";\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_DEPENDENCIES = \"dependencies\";\r\nvar GANTT_RESOURCES = \"resources\";\r\nvar GANTT_RESOURCE_ASSIGNMENTS = \"resourceAssignments\";\r\nvar GANTT_NEW_TASK_CACHE_KEY = \"gantt_new_task_key\";\r\nclass Gantt extends Widget {\r\n _init() {\r\n super._init();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n this._initGantt();\r\n this._isGanttRendered = false;\r\n this._initHelpers()\r\n }\r\n _initGantt() {\r\n this._refreshDataSources()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.$element().addClass(GANTT_CLASS);\r\n this._$toolbarWrapper = $(\"<div>\").addClass(GANTT_TOOLBAR_WRAPPER).appendTo(this.$element());\r\n this._$toolbar = $(\"<div>\").appendTo(this._$toolbarWrapper);\r\n this._$mainWrapper = $(\"<div>\").addClass(GANTT_MAIN_WRAPPER).appendTo(this.$element());\r\n this._$treeListWrapper = $(\"<div>\").addClass(GANTT_TREE_LIST_WRAPPER).appendTo(this._$mainWrapper);\r\n this._$treeList = $(\"<div>\").appendTo(this._$treeListWrapper);\r\n this._$splitter = $(\"<div>\").appendTo(this._$mainWrapper);\r\n this._$ganttView = $(\"<div>\").addClass(GANTT_VIEW_CLASS).appendTo(this._$mainWrapper);\r\n this._$dialog = $(\"<div>\").appendTo(this.$element());\r\n this._$loadPanel = $(\"<div>\").appendTo(this.$element());\r\n this._$contextMenu = $(\"<div>\").appendTo(this.$element())\r\n }\r\n _clean() {\r\n var _this$_ganttView;\r\n null === (_this$_ganttView = this._ganttView) || void 0 === _this$_ganttView ? void 0 : _this$_ganttView._ganttViewCore.cleanMarkup();\r\n delete this._ganttView;\r\n delete this._dialogInstance;\r\n delete this._loadPanel;\r\n delete this._exportHelper;\r\n super._clean()\r\n }\r\n _refresh() {\r\n this._isGanttRendered = false;\r\n this._contentReadyRaised = false;\r\n super._refresh()\r\n }\r\n _fireContentReadyAction() {\r\n if (!this._contentReadyRaised) {\r\n super._fireContentReadyAction()\r\n }\r\n this._contentReadyRaised = true\r\n }\r\n _dimensionChanged() {\r\n var _this$_ganttView2;\r\n null === (_this$_ganttView2 = this._ganttView) || void 0 === _this$_ganttView2 ? void 0 : _this$_ganttView2._onDimensionChanged()\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._refreshGantt()\r\n }\r\n }\r\n _refreshGantt() {\r\n this._refreshDataSources();\r\n this._refresh()\r\n }\r\n _refreshDataSources() {\r\n this._refreshDataSource(GANTT_TASKS);\r\n this._refreshDataSource(GANTT_DEPENDENCIES);\r\n this._refreshDataSource(GANTT_RESOURCES);\r\n this._refreshDataSource(GANTT_RESOURCE_ASSIGNMENTS)\r\n }\r\n _renderContent() {\r\n this._isMainElementVisible = this.$element().is(\":visible\");\r\n if (this._isMainElementVisible && !this._isGanttRendered) {\r\n this._isGanttRendered = true;\r\n this._renderBars();\r\n this._renderTreeList();\r\n this._renderSplitter()\r\n }\r\n }\r\n _renderTreeList() {\r\n this._ganttTreeList = new GanttTreeList(this);\r\n this._treeList = this._ganttTreeList.getTreeList();\r\n this._ganttTreeList.onAfterTreeListCreate()\r\n }\r\n _renderSplitter() {\r\n this._splitter = this._createComponent(this._$splitter, SplitterControl, {\r\n container: this.$element(),\r\n leftElement: this._$treeListWrapper,\r\n rightElement: this._$ganttView,\r\n onApplyPanelSize: e => {\r\n this._sizeHelper.onApplyPanelSize(e)\r\n }\r\n });\r\n this._splitter.option(\"initialLeftPanelWidth\", this.option(\"taskListWidth\"))\r\n }\r\n _renderBars() {\r\n this._bars = [];\r\n this._toolbar = new GanttToolbar(this._$toolbar, this);\r\n this._updateToolbarContent();\r\n this._bars.push(this._toolbar);\r\n this._contextMenuBar = new GanttContextMenuBar(this._$contextMenu, this);\r\n this._updateContextMenu();\r\n this._bars.push(this._contextMenuBar)\r\n }\r\n _initHelpers() {\r\n this._mappingHelper = new GanttMappingHelper(this);\r\n this._customFieldsManager = new GanttCustomFieldsManager(this);\r\n this._actionsManager = new GanttActionsManager(this);\r\n this._ganttTemplatesManager = new GanttTemplatesManager(this);\r\n this._sizeHelper = new GanttSizeHelper(this);\r\n this._dataProcessingHelper = new GanttDataChangesProcessingHelper\r\n }\r\n _initGanttView() {\r\n if (this._ganttView) {\r\n return\r\n }\r\n this._ganttView = this._createComponent(this._$ganttView, GanttView, {\r\n width: \"100%\",\r\n height: this._ganttTreeList.getOffsetHeight(),\r\n rowHeight: this._ganttTreeList.getRowHeight(),\r\n headerHeight: this._ganttTreeList.getHeaderHeight(),\r\n tasks: this._tasks,\r\n dependencies: this._dependencies,\r\n resources: this._resources,\r\n resourceAssignments: this._resourceAssignments,\r\n allowSelection: this.option(\"allowSelection\"),\r\n selectedRowKey: this.option(\"selectedRowKey\"),\r\n showResources: this.option(\"showResources\"),\r\n showDependencies: this.option(\"showDependencies\"),\r\n startDateRange: this.option(\"startDateRange\"),\r\n endDateRange: this.option(\"endDateRange\"),\r\n taskTitlePosition: this.option(\"taskTitlePosition\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n showRowLines: this.option(\"showRowLines\"),\r\n scaleType: this.option(\"scaleType\"),\r\n scaleTypeRange: this.option(\"scaleTypeRange\"),\r\n editing: this.option(\"editing\"),\r\n validation: this.option(\"validation\"),\r\n stripLines: this.option(\"stripLines\"),\r\n bars: this._bars,\r\n mainElement: this.$element(),\r\n onSelectionChanged: e => {\r\n this._ganttTreeList.selectRows(GanttHelper.getArrayFromOneElement(e.id))\r\n },\r\n onViewTypeChanged: e => {\r\n this._onViewTypeChanged(e.type)\r\n },\r\n onScroll: e => {\r\n this._ganttTreeList.scrollBy(e.scrollTop)\r\n },\r\n onDialogShowing: this._showDialog.bind(this),\r\n onPopupMenuShowing: this._showPopupMenu.bind(this),\r\n onPopupMenuHiding: this._hidePopupMenu.bind(this),\r\n onExpandAll: this._expandAll.bind(this),\r\n onCollapseAll: this._collapseAll.bind(this),\r\n modelChangesListener: ModelChangesListener.create(this),\r\n exportHelper: this._getExportHelper(),\r\n taskTooltipContentTemplate: this._ganttTemplatesManager.getTaskTooltipContentTemplateFunc(this.option(\"taskTooltipContentTemplate\")),\r\n taskProgressTooltipContentTemplate: this._ganttTemplatesManager.getTaskProgressTooltipContentTemplateFunc(this.option(\"taskProgressTooltipContentTemplate\")),\r\n taskTimeTooltipContentTemplate: this._ganttTemplatesManager.getTaskTimeTooltipContentTemplateFunc(this.option(\"taskTimeTooltipContentTemplate\")),\r\n taskContentTemplate: this._ganttTemplatesManager.getTaskContentTemplateFunc(this.option(\"taskContentTemplate\")),\r\n onTaskClick: e => {\r\n this._ganttTreeList.onRowClick(e)\r\n },\r\n onTaskDblClick: e => {\r\n this._ganttTreeList.onRowDblClick(e)\r\n },\r\n onAdjustControl: () => {\r\n this._sizeHelper.onAdjustControl()\r\n },\r\n onContentReady: this._onGanttViewContentReady.bind(this)\r\n })\r\n }\r\n _onGanttViewContentReady(e) {\r\n if (!this._isParentAutoUpdateMode()) {\r\n this._fireContentReadyAction()\r\n }\r\n }\r\n _isParentAutoUpdateMode() {\r\n return this.option(\"validation.autoUpdateParentTasks\")\r\n }\r\n _onTreeListContentReady(e) {\r\n if (this._isParentAutoUpdateMode() && this._treeListParentRecalculatedDataUpdating) {\r\n this._fireContentReadyAction()\r\n }\r\n delete this._treeListParentRecalculatedDataUpdating;\r\n this._dataProcessingHelper.onTreeListReady()\r\n }\r\n _onViewTypeChanged(type) {\r\n this.option(\"scaleType\", this._actionsManager._getScaleType(type))\r\n }\r\n _refreshDataSource(name) {\r\n var dataOption = this[\"_\".concat(name, \"Option\")];\r\n if (dataOption) {\r\n dataOption.dispose();\r\n delete this[\"_\".concat(name, \"Option\")];\r\n delete this[\"_\".concat(name)]\r\n }\r\n dataOption = new DataOption(name, this._getLoadPanel.bind(this), (name, data) => {\r\n this._dataSourceChanged(name, data)\r\n });\r\n dataOption.option(\"dataSource\", this._getSpecificDataSourceOption(name));\r\n dataOption._refreshDataSource();\r\n this[\"_\".concat(name, \"Option\")] = dataOption\r\n }\r\n _getSpecificDataSourceOption(name) {\r\n var dataSource = this.option(\"\".concat(name, \".dataSource\"));\r\n if (!dataSource || Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: null !== dataSource && void 0 !== dataSource ? dataSource : [],\r\n key: this.option(\"\".concat(name, \".keyExpr\"))\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _dataSourceChanged(dataSourceName, data) {\r\n var getters = GanttHelper.compileGettersByOption(this.option(dataSourceName));\r\n var validatedData = this._validateSourceData(dataSourceName, data);\r\n var mappedData = validatedData.map(GanttHelper.prepareMapHandler(getters));\r\n this[\"_\".concat(dataSourceName)] = mappedData;\r\n this._setGanttViewOption(dataSourceName, mappedData);\r\n if (dataSourceName === GANTT_TASKS) {\r\n var _this$_ganttTreeList, _this$_ganttTreeList2, _this$_ganttTreeList3;\r\n this._tasksRaw = validatedData;\r\n var forceUpdate = !(null !== (_this$_ganttTreeList = this._ganttTreeList) && void 0 !== _this$_ganttTreeList && _this$_ganttTreeList.getDataSource()) && !this._ganttView;\r\n null === (_this$_ganttTreeList2 = this._ganttTreeList) || void 0 === _this$_ganttTreeList2 ? void 0 : _this$_ganttTreeList2.saveExpandedKeys();\r\n null === (_this$_ganttTreeList3 = this._ganttTreeList) || void 0 === _this$_ganttTreeList3 ? void 0 : _this$_ganttTreeList3.updateDataSource(validatedData, forceUpdate)\r\n }\r\n }\r\n _validateSourceData(dataSourceName, data) {\r\n return data && dataSourceName === GANTT_TASKS ? this._validateTaskData(data) : data\r\n }\r\n _validateTaskData(data) {\r\n var _this$option;\r\n var keyGetter = compileGetter(this.option(\"\".concat(GANTT_TASKS, \".keyExpr\")));\r\n var parentIdGetter = compileGetter(this.option(\"\".concat(GANTT_TASKS, \".parentIdExpr\")));\r\n var rootValue = null !== (_this$option = this.option(\"rootValue\")) && void 0 !== _this$option ? _this$option : \"dx_dxt_gantt_default_root_value\";\r\n var validationTree = {};\r\n for (var i = 0; i < data.length; i++) {\r\n var item = data[i];\r\n if (item) {\r\n var _validationTree$key;\r\n var key = keyGetter(item);\r\n var isRootTask = key === rootValue;\r\n var treeItem = null !== (_validationTree$key = validationTree[key]) && void 0 !== _validationTree$key ? _validationTree$key : validationTree[key] = {\r\n key: key,\r\n children: []\r\n };\r\n if (!isRootTask) {\r\n var _parentIdGetter, _validationTree$paren;\r\n var parentId = null !== (_parentIdGetter = parentIdGetter(item)) && void 0 !== _parentIdGetter ? _parentIdGetter : rootValue;\r\n var parentTreeItem = null !== (_validationTree$paren = validationTree[parentId]) && void 0 !== _validationTree$paren ? _validationTree$paren : validationTree[parentId] = {\r\n key: parentId,\r\n children: []\r\n };\r\n parentTreeItem.children.push(treeItem);\r\n treeItem.parent = parentTreeItem\r\n }\r\n }\r\n }\r\n var validKeys = [rootValue];\r\n this._appendChildKeys(validationTree[rootValue], validKeys);\r\n return data.filter(item => validKeys.indexOf(keyGetter(item)) > -1)\r\n }\r\n _appendChildKeys(treeItem, keys) {\r\n var children = null === treeItem || void 0 === treeItem ? void 0 : treeItem.children;\r\n for (var i = 0; i < (null === children || void 0 === children ? void 0 : children.length); i++) {\r\n var child = children[i];\r\n keys.push(child.key);\r\n this._appendChildKeys(child, keys)\r\n }\r\n }\r\n _onRecordInserted(optionName, record, callback) {\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n if (dataOption) {\r\n var data = GanttHelper.getStoreObject(this.option(optionName), record);\r\n var isTaskInsert = optionName === GANTT_TASKS;\r\n if (isTaskInsert) {\r\n this._customFieldsManager.addCustomFieldsDataFromCache(GANTT_NEW_TASK_CACHE_KEY, data)\r\n }\r\n dataOption.insert(data, response => {\r\n var keyGetter = compileGetter(this.option(\"\".concat(optionName, \".keyExpr\")));\r\n var insertedId = keyGetter(response);\r\n callback(insertedId);\r\n this._executeFuncSetters(optionName, record, insertedId);\r\n this._dataProcessingHelper.addCompletionAction(() => {\r\n this._actionsManager.raiseInsertedAction(optionName, data, insertedId)\r\n }, true, isTaskInsert);\r\n this._ganttTreeList.saveExpandedKeys();\r\n dataOption._reloadDataSource().done(data => {\r\n if (isTaskInsert) {\r\n this._ganttTreeList.onTaskInserted(insertedId, record.parentId)\r\n }\r\n })\r\n })\r\n }\r\n }\r\n _onRecordUpdated(optionName, key, values) {\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n var isTaskUpdated = optionName === GANTT_TASKS;\r\n if (dataOption) {\r\n var data = this._mappingHelper.convertCoreToMappedData(optionName, values);\r\n var hasCustomFieldsData = isTaskUpdated && this._customFieldsManager.cache.hasData(key);\r\n if (hasCustomFieldsData) {\r\n this._customFieldsManager.addCustomFieldsDataFromCache(key, data)\r\n }\r\n dataOption.update(key, data, () => {\r\n this._executeFuncSetters(optionName, values, key);\r\n this._ganttTreeList.saveExpandedKeys();\r\n this._dataProcessingHelper.addCompletionAction(() => {\r\n this._actionsManager.raiseUpdatedAction(optionName, data, key)\r\n }, true, isTaskUpdated);\r\n dataOption._reloadDataSource()\r\n })\r\n }\r\n }\r\n _onRecordRemoved(optionName, key, data) {\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n if (dataOption) {\r\n dataOption.remove(key, () => {\r\n this._ganttTreeList.saveExpandedKeys();\r\n this._dataProcessingHelper.addCompletionAction(() => {\r\n this._actionsManager.raiseDeletedAction(optionName, key, this._mappingHelper.convertCoreToMappedData(optionName, data))\r\n }, true, optionName === GANTT_TASKS);\r\n dataOption._reloadDataSource()\r\n })\r\n }\r\n }\r\n _onParentTaskUpdated(data) {\r\n var mappedData = this.getTaskDataByCoreData(data);\r\n this._actionsManager.raiseUpdatedAction(GANTT_TASKS, mappedData, data.id)\r\n }\r\n _onParentTasksRecalculated(data) {\r\n if (!this.isSieving) {\r\n var setters = GanttHelper.compileSettersByOption(this.option(GANTT_TASKS));\r\n var treeDataSource = this._customFieldsManager.appendCustomFields(data.map(GanttHelper.prepareSetterMapHandler(setters)));\r\n setTimeout(() => {\r\n var _this$_ganttTreeList4;\r\n this._treeListParentRecalculatedDataUpdating = true;\r\n null === (_this$_ganttTreeList4 = this._ganttTreeList) || void 0 === _this$_ganttTreeList4 ? void 0 : _this$_ganttTreeList4.setDataSource(treeDataSource)\r\n })\r\n }\r\n this.isSieving = false\r\n }\r\n _onGanttViewCoreUpdated() {\r\n this._dataProcessingHelper.onGanttViewReady()\r\n }\r\n _executeFuncSetters(optionName, coreData, key) {\r\n var funcSetters = GanttHelper.compileFuncSettersByOption(this.option(optionName));\r\n var keysToUpdate = Object.keys(funcSetters).filter(k => isDefined(coreData[k]));\r\n if (keysToUpdate.length > 0) {\r\n var dataObject = this._getDataSourceItem(optionName, key);\r\n keysToUpdate.forEach(k => {\r\n var setter = funcSetters[k];\r\n setter(dataObject, coreData[k])\r\n })\r\n }\r\n }\r\n _sortAndFilter() {\r\n var _this$_savedSortFilte, _this$_savedSortFilte2, _this$_savedSortFilte3;\r\n var treeList = this._treeList;\r\n var columns = treeList.getVisibleColumns();\r\n var sortedColumns = columns.filter(c => c.sortIndex > -1);\r\n var sortedState = sortedColumns.map(c => ({\r\n sortIndex: c.sortIndex,\r\n sortOrder: c.sortOrder\r\n }));\r\n var sortedStateChanged = !this._compareSortedState(null === (_this$_savedSortFilte = this._savedSortFilterState) || void 0 === _this$_savedSortFilte ? void 0 : _this$_savedSortFilte.sort, sortedState);\r\n var filterValue = treeList.option(\"filterValue\");\r\n var filterChanged = treeList.option(\"expandNodesOnFiltering\") && filterValue !== (null === (_this$_savedSortFilte2 = this._savedSortFilterState) || void 0 === _this$_savedSortFilte2 ? void 0 : _this$_savedSortFilte2.filter);\r\n var sieveColumn = sortedColumns[0] || columns.filter(c => {\r\n var _c$filterValues;\r\n return isDefined(c.filterValue) || (null === (_c$filterValues = c.filterValues) || void 0 === _c$filterValues ? void 0 : _c$filterValues.length)\r\n })[0];\r\n var isClearSieving = (null === (_this$_savedSortFilte3 = this._savedSortFilterState) || void 0 === _this$_savedSortFilte3 ? void 0 : _this$_savedSortFilte3.sieveColumn) && !sieveColumn;\r\n if (sieveColumn || isClearSieving) {\r\n var sieveOptions = sieveColumn && {\r\n sievedItems: this._ganttTreeList.getSievedItems(),\r\n sieveColumn: sieveColumn,\r\n expandTasks: filterChanged || filterValue && sortedStateChanged\r\n };\r\n this.isSieving = !isClearSieving;\r\n this._setGanttViewOption(\"sieve\", sieveOptions)\r\n }\r\n this._savedSortFilterState = {\r\n sort: sortedState,\r\n filter: filterValue,\r\n sieveColumn: sieveColumn\r\n }\r\n }\r\n _compareSortedState(state1, state2) {\r\n if (!state1 || !state2 || state1.length !== state2.length) {\r\n return false\r\n }\r\n return state1.every((c, i) => c.sortIndex === state2[i].sortIndex && c.sortOrder === state2[i].sortOrder)\r\n }\r\n _getToolbarItems() {\r\n var items = this.option(\"toolbar.items\");\r\n return items ? items : []\r\n }\r\n _updateToolbarContent() {\r\n var items = this._getToolbarItems();\r\n if (items.length) {\r\n this._$toolbarWrapper.show()\r\n } else {\r\n this._$toolbarWrapper.hide()\r\n }\r\n this._toolbar && this._toolbar.createItems(items);\r\n this._updateBarItemsState()\r\n }\r\n _updateContextMenu() {\r\n var contextMenuOptions = this.option(\"contextMenu\");\r\n if (contextMenuOptions.enabled && this._contextMenuBar) {\r\n this._contextMenuBar.createItems(contextMenuOptions.items);\r\n this._updateBarItemsState()\r\n }\r\n }\r\n _updateBarItemsState() {\r\n this._ganttView && this._ganttView.updateBarItemsState()\r\n }\r\n _showDialog(e) {\r\n if (!this._dialogInstance) {\r\n this._dialogInstance = new GanttDialog(this, this._$dialog)\r\n }\r\n this._dialogInstance.show(e.name, e.parameters, e.callback, e.afterClosing, this.option(\"editing\"))\r\n }\r\n _showPopupMenu(info) {\r\n if (this.option(\"contextMenu.enabled\")) {\r\n this._ganttView.getBarManager().updateContextMenu();\r\n var args = {\r\n cancel: false,\r\n event: info.event,\r\n targetType: info.type,\r\n targetKey: info.key,\r\n items: extend(true, [], this._contextMenuBar._items),\r\n data: \"task\" === info.type ? this.getTaskData(info.key) : this.getDependencyData(info.key)\r\n };\r\n this._actionsManager.raiseContextMenuPreparing(args);\r\n if (!args.cancel) {\r\n this._contextMenuBar.show(info.position, args.items)\r\n }\r\n }\r\n }\r\n _hidePopupMenu() {\r\n this._contextMenuBar.hide()\r\n }\r\n _getLoadPanel() {\r\n if (!this._loadPanel) {\r\n this._loadPanel = this._createComponent(this._$loadPanel, LoadPanel, {\r\n position: {\r\n of: this.$element()\r\n }\r\n })\r\n }\r\n return this._loadPanel\r\n }\r\n _getTaskKeyGetter() {\r\n return this._getDataSourceItemKeyGetter(GANTT_TASKS)\r\n }\r\n _findTaskByKey(key) {\r\n return this._getDataSourceItem(GANTT_TASKS, key)\r\n }\r\n _getDataSourceItem(dataOptionName, key) {\r\n var dataOption = this[\"_\".concat(dataOptionName, \"Option\")];\r\n var keyGetter = this._getDataSourceItemKeyGetter(dataOptionName);\r\n var items = null === dataOption || void 0 === dataOption ? void 0 : dataOption._getItems();\r\n return items.find(t => keyGetter(t) === key)\r\n }\r\n _getDataSourceItemKeyGetter(dataOptionName) {\r\n return compileGetter(this.option(\"\".concat(dataOptionName, \".keyExpr\")))\r\n }\r\n _setGanttViewOption(optionName, value) {\r\n this._ganttView && this._ganttView.option(optionName, value)\r\n }\r\n _getGanttViewOption(optionName, value) {\r\n var _this$_ganttView3;\r\n return null === (_this$_ganttView3 = this._ganttView) || void 0 === _this$_ganttView3 ? void 0 : _this$_ganttView3.option(optionName)\r\n }\r\n _getExportHelper() {\r\n var _this$_exportHelper;\r\n null !== (_this$_exportHelper = this._exportHelper) && void 0 !== _this$_exportHelper ? _this$_exportHelper : this._exportHelper = new GanttExportHelper(this);\r\n return this._exportHelper\r\n }\r\n _executeCoreCommand(id) {\r\n this._ganttView.executeCoreCommand(id)\r\n }\r\n _expandAll() {\r\n this._changeExpandAll(true)\r\n }\r\n _collapseAll() {\r\n this._changeExpandAll(false)\r\n }\r\n _onTreeListRowExpandChanged(e, expanded) {\r\n if (!this._lockRowExpandEvent) {\r\n this._ganttView.changeTaskExpanded(e.key, expanded);\r\n this._sizeHelper.adjustHeight()\r\n }\r\n }\r\n _changeExpandAll(expanded, level, rowKey) {\r\n var _promise;\r\n var allExpandableNodes = [];\r\n var nodesToExpand = [];\r\n this._treeList.forEachNode(node => {\r\n var _node$children;\r\n if (null !== (_node$children = node.children) && void 0 !== _node$children && _node$children.length) {\r\n allExpandableNodes.push(node)\r\n }\r\n });\r\n if (rowKey) {\r\n var node = this._treeList.getNodeByKey(rowKey);\r\n GanttHelper.getAllParentNodesKeys(node, nodesToExpand)\r\n }\r\n var promise;\r\n this._lockRowExpandEvent = allExpandableNodes.length > 0;\r\n var state = allExpandableNodes.reduce((previous, node, index) => {\r\n if (rowKey) {\r\n expanded = nodesToExpand.includes(node.key)\r\n } else if (level) {\r\n expanded = node.level < level\r\n }\r\n previous[node.key] = expanded;\r\n var action = expanded ? this._treeList.expandRow : this._treeList.collapseRow;\r\n var isLast = index === allExpandableNodes.length - 1;\r\n if (isLast) {\r\n promise = action(node.key)\r\n } else {\r\n action(node.key)\r\n }\r\n return previous\r\n }, {});\r\n null === (_promise = promise) || void 0 === _promise ? void 0 : _promise.then(() => {\r\n this._ganttView.applyTasksExpandedState(state);\r\n this._sizeHelper.adjustHeight();\r\n delete this._lockRowExpandEvent\r\n })\r\n }\r\n getTaskResources(key) {\r\n if (!isDefined(key)) {\r\n return null\r\n }\r\n var coreData = this._ganttView._ganttViewCore.getTaskResources(key);\r\n return coreData.map(r => this._mappingHelper.convertCoreToMappedData(GANTT_RESOURCES, r))\r\n }\r\n getVisibleTaskKeys() {\r\n return this._ganttView._ganttViewCore.getVisibleTaskKeys()\r\n }\r\n getVisibleDependencyKeys() {\r\n return this._ganttView._ganttViewCore.getVisibleDependencyKeys()\r\n }\r\n getVisibleResourceKeys() {\r\n return this._ganttView._ganttViewCore.getVisibleResourceKeys()\r\n }\r\n getVisibleResourceAssignmentKeys() {\r\n return this._ganttView._ganttViewCore.getVisibleResourceAssignmentKeys()\r\n }\r\n getTaskData(key) {\r\n if (!isDefined(key)) {\r\n return null\r\n }\r\n var coreData = this._ganttView._ganttViewCore.getTaskData(key);\r\n var mappedData = this.getTaskDataByCoreData(coreData);\r\n return mappedData\r\n }\r\n getTaskDataByCoreData(coreData) {\r\n var mappedData = coreData ? this._mappingHelper.convertCoreToMappedData(GANTT_TASKS, coreData) : null;\r\n this._customFieldsManager.addCustomFieldsData(coreData.id, mappedData);\r\n return mappedData\r\n }\r\n insertTask(data) {\r\n this._customFieldsManager.saveCustomFieldsDataToCache(GANTT_NEW_TASK_CACHE_KEY, data);\r\n this._ganttView._ganttViewCore.insertTask(this._mappingHelper.convertMappedToCoreData(GANTT_TASKS, data))\r\n }\r\n deleteTask(key) {\r\n this._ganttView._ganttViewCore.deleteTask(key)\r\n }\r\n updateTask(key, data) {\r\n var coreTaskData = this._mappingHelper.convertMappedToCoreData(GANTT_TASKS, data);\r\n var isCustomFieldsUpdateOnly = !Object.keys(coreTaskData).length;\r\n this._customFieldsManager.saveCustomFieldsDataToCache(key, data, true, isCustomFieldsUpdateOnly);\r\n if (isCustomFieldsUpdateOnly) {\r\n var customFieldsData = this._customFieldsManager._getCustomFieldsData(data);\r\n if (Object.keys(customFieldsData).length > 0) {\r\n this._actionsManager.raiseUpdatingAction(GANTT_TASKS, {\r\n cancel: false,\r\n key: key,\r\n newValues: {}\r\n })\r\n }\r\n } else {\r\n this._ganttView._ganttViewCore.updateTask(key, coreTaskData)\r\n }\r\n }\r\n getDependencyData(key) {\r\n if (!isDefined(key)) {\r\n return null\r\n }\r\n var coreData = this._ganttView._ganttViewCore.getDependencyData(key);\r\n return coreData ? this._mappingHelper.convertCoreToMappedData(GANTT_DEPENDENCIES, coreData) : null\r\n }\r\n insertDependency(data) {\r\n this._ganttView._ganttViewCore.insertDependency(this._mappingHelper.convertMappedToCoreData(GANTT_DEPENDENCIES, data))\r\n }\r\n deleteDependency(key) {\r\n this._ganttView._ganttViewCore.deleteDependency(key)\r\n }\r\n getResourceData(key) {\r\n var coreData = this._ganttView._ganttViewCore.getResourceData(key);\r\n return coreData ? this._mappingHelper.convertCoreToMappedData(GANTT_RESOURCES, coreData) : null\r\n }\r\n deleteResource(key) {\r\n this._ganttView._ganttViewCore.deleteResource(key)\r\n }\r\n insertResource(data, taskKeys) {\r\n this._ganttView._ganttViewCore.insertResource(this._mappingHelper.convertMappedToCoreData(GANTT_RESOURCES, data), taskKeys)\r\n }\r\n getResourceAssignmentData(key) {\r\n var coreData = this._ganttView._ganttViewCore.getResourceAssignmentData(key);\r\n return coreData ? this._mappingHelper.convertCoreToMappedData(GANTT_RESOURCE_ASSIGNMENTS, coreData) : null\r\n }\r\n assignResourceToTask(resourceKey, taskKey) {\r\n this._ganttView._ganttViewCore.assignResourceToTask(resourceKey, taskKey)\r\n }\r\n unassignResourceFromTask(resourceKey, taskKey) {\r\n this._ganttView._ganttViewCore.unassignResourceFromTask(resourceKey, taskKey)\r\n }\r\n unassignAllResourcesFromTask(taskKey) {\r\n this._ganttView._ganttViewCore.unassignAllResourcesFromTask(taskKey)\r\n }\r\n updateDimensions() {\r\n this._sizeHelper.onAdjustControl()\r\n }\r\n scrollToDate(date) {\r\n this._ganttView._ganttViewCore.scrollToDate(date)\r\n }\r\n showResourceManagerDialog() {\r\n this._ganttView._ganttViewCore.showResourcesDialog()\r\n }\r\n showTaskDetailsDialog(taskKey) {\r\n this._ganttView._ganttViewCore.showTaskDetailsDialog(taskKey)\r\n }\r\n exportToPdf(options) {\r\n return this._exportToPdf(options)\r\n }\r\n _exportToPdf(options) {\r\n var _fullOptions$pdfDocum, _fullOptions$docCreat, _window$jspdf$jsPDF, _window$jspdf, _fullOptions$format;\r\n this._exportHelper.reset();\r\n var fullOptions = extend({}, options);\r\n if (fullOptions.createDocumentMethod) {\r\n fullOptions.docCreateMethod = fullOptions.createDocumentMethod\r\n }\r\n null !== (_fullOptions$pdfDocum = fullOptions.pdfDocument) && void 0 !== _fullOptions$pdfDocum ? _fullOptions$pdfDocum : fullOptions.pdfDocument = fullOptions.jsPDFDocument;\r\n null !== (_fullOptions$docCreat = fullOptions.docCreateMethod) && void 0 !== _fullOptions$docCreat ? _fullOptions$docCreat : fullOptions.docCreateMethod = null !== (_window$jspdf$jsPDF = null === (_window$jspdf = window.jspdf) || void 0 === _window$jspdf ? void 0 : _window$jspdf.jsPDF) && void 0 !== _window$jspdf$jsPDF ? _window$jspdf$jsPDF : window.jsPDF;\r\n null !== (_fullOptions$format = fullOptions.format) && void 0 !== _fullOptions$format ? _fullOptions$format : fullOptions.format = \"a4\";\r\n return new Promise(resolve => {\r\n var _this$_ganttView4;\r\n var doc = null === (_this$_ganttView4 = this._ganttView) || void 0 === _this$_ganttView4 ? void 0 : _this$_ganttView4._ganttViewCore.exportToPdf(fullOptions);\r\n resolve(doc)\r\n })\r\n }\r\n refresh() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this._refreshGantt();\r\n resolve()\r\n } catch (e) {\r\n reject(e.message)\r\n }\r\n })\r\n }\r\n expandAll() {\r\n this._expandAll()\r\n }\r\n collapseAll() {\r\n this._collapseAll()\r\n }\r\n expandAllToLevel(level) {\r\n this._changeExpandAll(false, level)\r\n }\r\n expandToTask(key) {\r\n var _node$parent;\r\n var node = this._treeList.getNodeByKey(key);\r\n this._changeExpandAll(false, 0, null === node || void 0 === node ? void 0 : null === (_node$parent = node.parent) || void 0 === _node$parent ? void 0 : _node$parent.key)\r\n }\r\n collapseTask(key) {\r\n this._treeList.collapseRow(key)\r\n }\r\n expandTask(key) {\r\n this._treeList.expandRow(key)\r\n }\r\n showResources(value) {\r\n this.option(\"showResources\", value)\r\n }\r\n showDependencies(value) {\r\n this.option(\"showDependencies\", value)\r\n }\r\n zoomIn() {\r\n this._ganttView._ganttViewCore.zoomIn()\r\n }\r\n zoomOut() {\r\n this._ganttView._ganttViewCore.zoomOut()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), GanttHelper.getDefaultOptions())\r\n }\r\n _optionChanged(args) {\r\n var _this$_ganttTreeList5, _this$_sizeHelper, _this$_ganttTreeList6, _this$_actionsManager, _this$_actionsManager2, _this$_actionsManager3, _this$_actionsManager4, _this$_actionsManager5, _this$_actionsManager6, _this$_actionsManager7, _this$_actionsManager8, _this$_actionsManager9, _this$_actionsManager10, _this$_actionsManager11, _this$_actionsManager12, _this$_actionsManager13, _this$_actionsManager14, _this$_actionsManager15, _this$_actionsManager16, _this$_actionsManager17, _this$_actionsManager18, _this$_actionsManager19, _this$_actionsManager20, _this$_actionsManager21, _this$_actionsManager22, _this$_actionsManager23, _this$_actionsManager24, _this$_actionsManager25, _this$_actionsManager26, _this$_actionsManager27, _this$_ganttTreeList7, _this$_ganttTreeList8, _this$_ganttTemplates, _this$_ganttTemplates2, _this$_ganttTemplates3, _this$_ganttTemplates4, _this$_ganttTreeList9, _this$_sizeHelper2, _this$_sizeHelper3, _this$_ganttTreeList10, _this$_ganttTreeList11, _this$_ganttTreeList12;\r\n switch (args.name) {\r\n case \"tasks\":\r\n this._refreshDataSource(GANTT_TASKS);\r\n break;\r\n case \"dependencies\":\r\n this._refreshDataSource(GANTT_DEPENDENCIES);\r\n break;\r\n case \"resources\":\r\n this._refreshDataSource(GANTT_RESOURCES);\r\n break;\r\n case \"resourceAssignments\":\r\n this._refreshDataSource(GANTT_RESOURCE_ASSIGNMENTS);\r\n break;\r\n case \"columns\":\r\n null === (_this$_ganttTreeList5 = this._ganttTreeList) || void 0 === _this$_ganttTreeList5 ? void 0 : _this$_ganttTreeList5.setOption(\"columns\", this._ganttTreeList.getColumns());\r\n break;\r\n case \"taskListWidth\":\r\n null === (_this$_sizeHelper = this._sizeHelper) || void 0 === _this$_sizeHelper ? void 0 : _this$_sizeHelper.setInnerElementsWidth();\r\n break;\r\n case \"showResources\":\r\n this._setGanttViewOption(\"showResources\", args.value);\r\n break;\r\n case \"showDependencies\":\r\n this._setGanttViewOption(\"showDependencies\", args.value);\r\n break;\r\n case \"taskTitlePosition\":\r\n this._setGanttViewOption(\"taskTitlePosition\", args.value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._setGanttViewOption(\"firstDayOfWeek\", args.value);\r\n break;\r\n case \"startDateRange\":\r\n this._setGanttViewOption(\"startDateRange\", args.value);\r\n break;\r\n case \"endDateRange\":\r\n this._setGanttViewOption(\"endDateRange\", args.value);\r\n break;\r\n case \"selectedRowKey\":\r\n null === (_this$_ganttTreeList6 = this._ganttTreeList) || void 0 === _this$_ganttTreeList6 ? void 0 : _this$_ganttTreeList6.selectRows(GanttHelper.getArrayFromOneElement(args.value));\r\n break;\r\n case \"onSelectionChanged\":\r\n null === (_this$_actionsManager = this._actionsManager) || void 0 === _this$_actionsManager ? void 0 : _this$_actionsManager.createSelectionChangedAction();\r\n break;\r\n case \"onTaskClick\":\r\n null === (_this$_actionsManager2 = this._actionsManager) || void 0 === _this$_actionsManager2 ? void 0 : _this$_actionsManager2.createTaskClickAction();\r\n break;\r\n case \"onTaskDblClick\":\r\n null === (_this$_actionsManager3 = this._actionsManager) || void 0 === _this$_actionsManager3 ? void 0 : _this$_actionsManager3.createTaskDblClickAction();\r\n break;\r\n case \"onTaskInserting\":\r\n null === (_this$_actionsManager4 = this._actionsManager) || void 0 === _this$_actionsManager4 ? void 0 : _this$_actionsManager4.createTaskInsertingAction();\r\n break;\r\n case \"onTaskInserted\":\r\n null === (_this$_actionsManager5 = this._actionsManager) || void 0 === _this$_actionsManager5 ? void 0 : _this$_actionsManager5.createTaskInsertedAction();\r\n break;\r\n case \"onTaskDeleting\":\r\n null === (_this$_actionsManager6 = this._actionsManager) || void 0 === _this$_actionsManager6 ? void 0 : _this$_actionsManager6.createTaskDeletingAction();\r\n break;\r\n case \"onTaskDeleted\":\r\n null === (_this$_actionsManager7 = this._actionsManager) || void 0 === _this$_actionsManager7 ? void 0 : _this$_actionsManager7.createTaskDeletedAction();\r\n break;\r\n case \"onTaskUpdating\":\r\n null === (_this$_actionsManager8 = this._actionsManager) || void 0 === _this$_actionsManager8 ? void 0 : _this$_actionsManager8.createTaskUpdatingAction();\r\n break;\r\n case \"onTaskUpdated\":\r\n null === (_this$_actionsManager9 = this._actionsManager) || void 0 === _this$_actionsManager9 ? void 0 : _this$_actionsManager9.createTaskUpdatedAction();\r\n break;\r\n case \"onTaskMoving\":\r\n null === (_this$_actionsManager10 = this._actionsManager) || void 0 === _this$_actionsManager10 ? void 0 : _this$_actionsManager10.createTaskMovingAction();\r\n break;\r\n case \"onTaskEditDialogShowing\":\r\n null === (_this$_actionsManager11 = this._actionsManager) || void 0 === _this$_actionsManager11 ? void 0 : _this$_actionsManager11.createTaskEditDialogShowingAction();\r\n break;\r\n case \"onResourceManagerDialogShowing\":\r\n null === (_this$_actionsManager12 = this._actionsManager) || void 0 === _this$_actionsManager12 ? void 0 : _this$_actionsManager12.createResourceManagerDialogShowingAction();\r\n break;\r\n case \"onDependencyInserting\":\r\n null === (_this$_actionsManager13 = this._actionsManager) || void 0 === _this$_actionsManager13 ? void 0 : _this$_actionsManager13.createDependencyInsertingAction();\r\n break;\r\n case \"onDependencyInserted\":\r\n null === (_this$_actionsManager14 = this._actionsManager) || void 0 === _this$_actionsManager14 ? void 0 : _this$_actionsManager14.createDependencyInsertedAction();\r\n break;\r\n case \"onDependencyDeleting\":\r\n null === (_this$_actionsManager15 = this._actionsManager) || void 0 === _this$_actionsManager15 ? void 0 : _this$_actionsManager15.createDependencyDeletingAction();\r\n break;\r\n case \"onDependencyDeleted\":\r\n null === (_this$_actionsManager16 = this._actionsManager) || void 0 === _this$_actionsManager16 ? void 0 : _this$_actionsManager16.createDependencyDeletedAction();\r\n break;\r\n case \"onResourceInserting\":\r\n null === (_this$_actionsManager17 = this._actionsManager) || void 0 === _this$_actionsManager17 ? void 0 : _this$_actionsManager17.createResourceInsertingAction();\r\n break;\r\n case \"onResourceInserted\":\r\n null === (_this$_actionsManager18 = this._actionsManager) || void 0 === _this$_actionsManager18 ? void 0 : _this$_actionsManager18.createResourceInsertedAction();\r\n break;\r\n case \"onResourceDeleting\":\r\n null === (_this$_actionsManager19 = this._actionsManager) || void 0 === _this$_actionsManager19 ? void 0 : _this$_actionsManager19.createResourceDeletingAction();\r\n break;\r\n case \"onResourceDeleted\":\r\n null === (_this$_actionsManager20 = this._actionsManager) || void 0 === _this$_actionsManager20 ? void 0 : _this$_actionsManager20.createResourceDeletedAction();\r\n break;\r\n case \"onResourceAssigning\":\r\n null === (_this$_actionsManager21 = this._actionsManager) || void 0 === _this$_actionsManager21 ? void 0 : _this$_actionsManager21.createResourceAssigningAction();\r\n break;\r\n case \"onResourceAssigned\":\r\n null === (_this$_actionsManager22 = this._actionsManager) || void 0 === _this$_actionsManager22 ? void 0 : _this$_actionsManager22.createResourceAssignedAction();\r\n break;\r\n case \"onResourceUnassigning\":\r\n null === (_this$_actionsManager23 = this._actionsManager) || void 0 === _this$_actionsManager23 ? void 0 : _this$_actionsManager23.createResourceUnassigningAction();\r\n break;\r\n case \"onResourceUnassigned\":\r\n null === (_this$_actionsManager24 = this._actionsManager) || void 0 === _this$_actionsManager24 ? void 0 : _this$_actionsManager24.createResourceUnassignedAction();\r\n break;\r\n case \"onCustomCommand\":\r\n null === (_this$_actionsManager25 = this._actionsManager) || void 0 === _this$_actionsManager25 ? void 0 : _this$_actionsManager25.createCustomCommandAction();\r\n break;\r\n case \"onContextMenuPreparing\":\r\n null === (_this$_actionsManager26 = this._actionsManager) || void 0 === _this$_actionsManager26 ? void 0 : _this$_actionsManager26.createContextMenuPreparingAction();\r\n break;\r\n case \"onScaleCellPrepared\":\r\n null === (_this$_actionsManager27 = this._actionsManager) || void 0 === _this$_actionsManager27 ? void 0 : _this$_actionsManager27.createScaleCellPreparedAction();\r\n break;\r\n case \"allowSelection\":\r\n null === (_this$_ganttTreeList7 = this._ganttTreeList) || void 0 === _this$_ganttTreeList7 ? void 0 : _this$_ganttTreeList7.setOption(\"selection.mode\", GanttHelper.getSelectionMode(args.value));\r\n this._setGanttViewOption(\"allowSelection\", args.value);\r\n break;\r\n case \"showRowLines\":\r\n null === (_this$_ganttTreeList8 = this._ganttTreeList) || void 0 === _this$_ganttTreeList8 ? void 0 : _this$_ganttTreeList8.setOption(\"showRowLines\", args.value);\r\n this._setGanttViewOption(\"showRowLines\", args.value);\r\n break;\r\n case \"stripLines\":\r\n this._setGanttViewOption(\"stripLines\", args.value);\r\n break;\r\n case \"scaleType\":\r\n this._setGanttViewOption(\"scaleType\", args.value);\r\n break;\r\n case \"scaleTypeRange\":\r\n this._setGanttViewOption(\"scaleTypeRange\", this.option(args.name));\r\n break;\r\n case \"editing\":\r\n this._setGanttViewOption(\"editing\", this.option(args.name));\r\n break;\r\n case \"validation\":\r\n this._setGanttViewOption(\"validation\", this.option(args.name));\r\n break;\r\n case \"toolbar\":\r\n this._updateToolbarContent();\r\n break;\r\n case \"contextMenu\":\r\n this._updateContextMenu();\r\n break;\r\n case \"taskTooltipContentTemplate\":\r\n this._setGanttViewOption(\"taskTooltipContentTemplate\", null === (_this$_ganttTemplates = this._ganttTemplatesManager) || void 0 === _this$_ganttTemplates ? void 0 : _this$_ganttTemplates.getTaskTooltipContentTemplateFunc(args.value));\r\n break;\r\n case \"taskProgressTooltipContentTemplate\":\r\n this._setGanttViewOption(\"taskProgressTooltipContentTemplate\", null === (_this$_ganttTemplates2 = this._ganttTemplatesManager) || void 0 === _this$_ganttTemplates2 ? void 0 : _this$_ganttTemplates2.getTaskProgressTooltipContentTemplateFunc(args.value));\r\n break;\r\n case \"taskTimeTooltipContentTemplate\":\r\n this._setGanttViewOption(\"taskTimeTooltipContentTemplate\", null === (_this$_ganttTemplates3 = this._ganttTemplatesManager) || void 0 === _this$_ganttTemplates3 ? void 0 : _this$_ganttTemplates3.getTaskTimeTooltipContentTemplateFunc(args.value));\r\n break;\r\n case \"taskContentTemplate\":\r\n this._setGanttViewOption(\"taskContentTemplate\", null === (_this$_ganttTemplates4 = this._ganttTemplatesManager) || void 0 === _this$_ganttTemplates4 ? void 0 : _this$_ganttTemplates4.getTaskContentTemplateFunc(args.value));\r\n break;\r\n case \"rootValue\":\r\n null === (_this$_ganttTreeList9 = this._ganttTreeList) || void 0 === _this$_ganttTreeList9 ? void 0 : _this$_ganttTreeList9.setOption(\"rootValue\", args.value);\r\n break;\r\n case \"width\":\r\n super._optionChanged(args);\r\n null === (_this$_sizeHelper2 = this._sizeHelper) || void 0 === _this$_sizeHelper2 ? void 0 : _this$_sizeHelper2.updateGanttWidth();\r\n break;\r\n case \"height\":\r\n super._optionChanged(args);\r\n null === (_this$_sizeHelper3 = this._sizeHelper) || void 0 === _this$_sizeHelper3 ? void 0 : _this$_sizeHelper3.setGanttHeight(getHeight(this._$element));\r\n break;\r\n case \"sorting\":\r\n null === (_this$_ganttTreeList10 = this._ganttTreeList) || void 0 === _this$_ganttTreeList10 ? void 0 : _this$_ganttTreeList10.setOption(\"sorting\", this.option(args.name));\r\n break;\r\n case \"filterRow\":\r\n null === (_this$_ganttTreeList11 = this._ganttTreeList) || void 0 === _this$_ganttTreeList11 ? void 0 : _this$_ganttTreeList11.setOption(\"filterRow\", this.option(args.name));\r\n break;\r\n case \"headerFilter\":\r\n null === (_this$_ganttTreeList12 = this._ganttTreeList) || void 0 === _this$_ganttTreeList12 ? void 0 : _this$_ganttTreeList12.setOption(\"headerFilter\", this.option(args.name));\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxGantt\", Gantt);\r\nexport default Gantt;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxGantt from 'devextreme/ui/gantt';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiColumnComponent, DxiStripLineComponent, DxiColumnModule, DxoFormatModule, DxoHeaderFilterModule, DxoSearchModule, DxoContextMenuModule, DxiItemModule, DxoDependenciesModule, DxoEditingModule, DxoFilterRowModule, DxoOperationDescriptionsModule, DxoTextsModule, DxoResourceAssignmentsModule, DxoResourcesModule, DxoScaleTypeRangeModule, DxoSortingModule, DxiStripLineModule, DxoTasksModule, DxoToolbarModule, DxoValidationModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxGantt]\r\n\r\n */\r\nclass DxGanttComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'customCommand', emit: 'onCustomCommand' },\r\n { subscribe: 'dependencyDeleted', emit: 'onDependencyDeleted' },\r\n { subscribe: 'dependencyDeleting', emit: 'onDependencyDeleting' },\r\n { subscribe: 'dependencyInserted', emit: 'onDependencyInserted' },\r\n { subscribe: 'dependencyInserting', emit: 'onDependencyInserting' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'resourceAssigned', emit: 'onResourceAssigned' },\r\n { subscribe: 'resourceAssigning', emit: 'onResourceAssigning' },\r\n { subscribe: 'resourceDeleted', emit: 'onResourceDeleted' },\r\n { subscribe: 'resourceDeleting', emit: 'onResourceDeleting' },\r\n { subscribe: 'resourceInserted', emit: 'onResourceInserted' },\r\n { subscribe: 'resourceInserting', emit: 'onResourceInserting' },\r\n { subscribe: 'resourceManagerDialogShowing', emit: 'onResourceManagerDialogShowing' },\r\n { subscribe: 'resourceUnassigned', emit: 'onResourceUnassigned' },\r\n { subscribe: 'resourceUnassigning', emit: 'onResourceUnassigning' },\r\n { subscribe: 'scaleCellPrepared', emit: 'onScaleCellPrepared' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'taskClick', emit: 'onTaskClick' },\r\n { subscribe: 'taskDblClick', emit: 'onTaskDblClick' },\r\n { subscribe: 'taskDeleted', emit: 'onTaskDeleted' },\r\n { subscribe: 'taskDeleting', emit: 'onTaskDeleting' },\r\n { subscribe: 'taskEditDialogShowing', emit: 'onTaskEditDialogShowing' },\r\n { subscribe: 'taskInserted', emit: 'onTaskInserted' },\r\n { subscribe: 'taskInserting', emit: 'onTaskInserting' },\r\n { subscribe: 'taskMoving', emit: 'onTaskMoving' },\r\n { subscribe: 'taskUpdated', emit: 'onTaskUpdated' },\r\n { subscribe: 'taskUpdating', emit: 'onTaskUpdating' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowSelectionChange' },\r\n { emit: 'columnsChange' },\r\n { emit: 'contextMenuChange' },\r\n { emit: 'dependenciesChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endDateRangeChange' },\r\n { emit: 'filterRowChange' },\r\n { emit: 'firstDayOfWeekChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'resourceAssignmentsChange' },\r\n { emit: 'resourcesChange' },\r\n { emit: 'rootValueChange' },\r\n { emit: 'scaleTypeChange' },\r\n { emit: 'scaleTypeRangeChange' },\r\n { emit: 'selectedRowKeyChange' },\r\n { emit: 'showDependenciesChange' },\r\n { emit: 'showResourcesChange' },\r\n { emit: 'showRowLinesChange' },\r\n { emit: 'sortingChange' },\r\n { emit: 'startDateRangeChange' },\r\n { emit: 'stripLinesChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'taskContentTemplateChange' },\r\n { emit: 'taskListWidthChange' },\r\n { emit: 'taskProgressTooltipContentTemplateChange' },\r\n { emit: 'tasksChange' },\r\n { emit: 'taskTimeTooltipContentTemplateChange' },\r\n { emit: 'taskTitlePositionChange' },\r\n { emit: 'taskTooltipContentTemplateChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'validationChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.allowSelection]\r\n \r\n */\r\n get allowSelection() {\r\n return this._getOption('allowSelection');\r\n }\r\n set allowSelection(value) {\r\n this._setOption('allowSelection', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.columns]\r\n \r\n */\r\n get columns() {\r\n return this._getOption('columns');\r\n }\r\n set columns(value) {\r\n this._setOption('columns', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.contextMenu]\r\n \r\n */\r\n get contextMenu() {\r\n return this._getOption('contextMenu');\r\n }\r\n set contextMenu(value) {\r\n this._setOption('contextMenu', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.dependencies]\r\n \r\n */\r\n get dependencies() {\r\n return this._getOption('dependencies');\r\n }\r\n set dependencies(value) {\r\n this._setOption('dependencies', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.editing]\r\n \r\n */\r\n get editing() {\r\n return this._getOption('editing');\r\n }\r\n set editing(value) {\r\n this._setOption('editing', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.endDateRange]\r\n \r\n */\r\n get endDateRange() {\r\n return this._getOption('endDateRange');\r\n }\r\n set endDateRange(value) {\r\n this._setOption('endDateRange', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.filterRow]\r\n \r\n */\r\n get filterRow() {\r\n return this._getOption('filterRow');\r\n }\r\n set filterRow(value) {\r\n this._setOption('filterRow', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.firstDayOfWeek]\r\n \r\n */\r\n get firstDayOfWeek() {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.headerFilter]\r\n \r\n */\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.resourceAssignments]\r\n \r\n */\r\n get resourceAssignments() {\r\n return this._getOption('resourceAssignments');\r\n }\r\n set resourceAssignments(value) {\r\n this._setOption('resourceAssignments', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.resources]\r\n \r\n */\r\n get resources() {\r\n return this._getOption('resources');\r\n }\r\n set resources(value) {\r\n this._setOption('resources', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.rootValue]\r\n \r\n */\r\n get rootValue() {\r\n return this._getOption('rootValue');\r\n }\r\n set rootValue(value) {\r\n this._setOption('rootValue', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.scaleType]\r\n \r\n */\r\n get scaleType() {\r\n return this._getOption('scaleType');\r\n }\r\n set scaleType(value) {\r\n this._setOption('scaleType', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.scaleTypeRange]\r\n \r\n */\r\n get scaleTypeRange() {\r\n return this._getOption('scaleTypeRange');\r\n }\r\n set scaleTypeRange(value) {\r\n this._setOption('scaleTypeRange', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.selectedRowKey]\r\n \r\n */\r\n get selectedRowKey() {\r\n return this._getOption('selectedRowKey');\r\n }\r\n set selectedRowKey(value) {\r\n this._setOption('selectedRowKey', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.showDependencies]\r\n \r\n */\r\n get showDependencies() {\r\n return this._getOption('showDependencies');\r\n }\r\n set showDependencies(value) {\r\n this._setOption('showDependencies', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.showResources]\r\n \r\n */\r\n get showResources() {\r\n return this._getOption('showResources');\r\n }\r\n set showResources(value) {\r\n this._setOption('showResources', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.showRowLines]\r\n \r\n */\r\n get showRowLines() {\r\n return this._getOption('showRowLines');\r\n }\r\n set showRowLines(value) {\r\n this._setOption('showRowLines', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.sorting]\r\n \r\n */\r\n get sorting() {\r\n return this._getOption('sorting');\r\n }\r\n set sorting(value) {\r\n this._setOption('sorting', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.startDateRange]\r\n \r\n */\r\n get startDateRange() {\r\n return this._getOption('startDateRange');\r\n }\r\n set startDateRange(value) {\r\n this._setOption('startDateRange', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.stripLines]\r\n \r\n */\r\n get stripLines() {\r\n return this._getOption('stripLines');\r\n }\r\n set stripLines(value) {\r\n this._setOption('stripLines', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskContentTemplate]\r\n \r\n */\r\n get taskContentTemplate() {\r\n return this._getOption('taskContentTemplate');\r\n }\r\n set taskContentTemplate(value) {\r\n this._setOption('taskContentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskListWidth]\r\n \r\n */\r\n get taskListWidth() {\r\n return this._getOption('taskListWidth');\r\n }\r\n set taskListWidth(value) {\r\n this._setOption('taskListWidth', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskProgressTooltipContentTemplate]\r\n \r\n */\r\n get taskProgressTooltipContentTemplate() {\r\n return this._getOption('taskProgressTooltipContentTemplate');\r\n }\r\n set taskProgressTooltipContentTemplate(value) {\r\n this._setOption('taskProgressTooltipContentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.tasks]\r\n \r\n */\r\n get tasks() {\r\n return this._getOption('tasks');\r\n }\r\n set tasks(value) {\r\n this._setOption('tasks', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskTimeTooltipContentTemplate]\r\n \r\n */\r\n get taskTimeTooltipContentTemplate() {\r\n return this._getOption('taskTimeTooltipContentTemplate');\r\n }\r\n set taskTimeTooltipContentTemplate(value) {\r\n this._setOption('taskTimeTooltipContentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskTitlePosition]\r\n \r\n */\r\n get taskTitlePosition() {\r\n return this._getOption('taskTitlePosition');\r\n }\r\n set taskTitlePosition(value) {\r\n this._setOption('taskTitlePosition', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.taskTooltipContentTemplate]\r\n \r\n */\r\n get taskTooltipContentTemplate() {\r\n return this._getOption('taskTooltipContentTemplate');\r\n }\r\n set taskTooltipContentTemplate(value) {\r\n this._setOption('taskTooltipContentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.toolbar]\r\n \r\n */\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n /**\r\n * [descr:dxGanttOptions.validation]\r\n \r\n */\r\n get validation() {\r\n return this._getOption('validation');\r\n }\r\n set validation(value) {\r\n this._setOption('validation', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get columnsChildren() {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this.setChildren('columns', value);\r\n }\r\n get stripLinesChildren() {\r\n return this._getOption('stripLines');\r\n }\r\n set stripLinesChildren(value) {\r\n this.setChildren('stripLines', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxGantt(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('columns', changes);\r\n this.setupChanges('stripLines', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('columns');\r\n this._idh.doCheck('stripLines');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxGanttComponent.ɵfac = function DxGanttComponent_Factory(t) { return new (t || DxGanttComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxGanttComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxGanttComponent, selectors: [[\"dx-gantt\"]], contentQueries: function DxGanttComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiStripLineComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stripLinesChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowSelection: \"allowSelection\", columns: \"columns\", contextMenu: \"contextMenu\", dependencies: \"dependencies\", disabled: \"disabled\", editing: \"editing\", elementAttr: \"elementAttr\", endDateRange: \"endDateRange\", filterRow: \"filterRow\", firstDayOfWeek: \"firstDayOfWeek\", focusStateEnabled: \"focusStateEnabled\", headerFilter: \"headerFilter\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", resourceAssignments: \"resourceAssignments\", resources: \"resources\", rootValue: \"rootValue\", scaleType: \"scaleType\", scaleTypeRange: \"scaleTypeRange\", selectedRowKey: \"selectedRowKey\", showDependencies: \"showDependencies\", showResources: \"showResources\", showRowLines: \"showRowLines\", sorting: \"sorting\", startDateRange: \"startDateRange\", stripLines: \"stripLines\", tabIndex: \"tabIndex\", taskContentTemplate: \"taskContentTemplate\", taskListWidth: \"taskListWidth\", taskProgressTooltipContentTemplate: \"taskProgressTooltipContentTemplate\", tasks: \"tasks\", taskTimeTooltipContentTemplate: \"taskTimeTooltipContentTemplate\", taskTitlePosition: \"taskTitlePosition\", taskTooltipContentTemplate: \"taskTooltipContentTemplate\", toolbar: \"toolbar\", validation: \"validation\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onContextMenuPreparing: \"onContextMenuPreparing\", onCustomCommand: \"onCustomCommand\", onDependencyDeleted: \"onDependencyDeleted\", onDependencyDeleting: \"onDependencyDeleting\", onDependencyInserted: \"onDependencyInserted\", onDependencyInserting: \"onDependencyInserting\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResourceAssigned: \"onResourceAssigned\", onResourceAssigning: \"onResourceAssigning\", onResourceDeleted: \"onResourceDeleted\", onResourceDeleting: \"onResourceDeleting\", onResourceInserted: \"onResourceInserted\", onResourceInserting: \"onResourceInserting\", onResourceManagerDialogShowing: \"onResourceManagerDialogShowing\", onResourceUnassigned: \"onResourceUnassigned\", onResourceUnassigning: \"onResourceUnassigning\", onScaleCellPrepared: \"onScaleCellPrepared\", onSelectionChanged: \"onSelectionChanged\", onTaskClick: \"onTaskClick\", onTaskDblClick: \"onTaskDblClick\", onTaskDeleted: \"onTaskDeleted\", onTaskDeleting: \"onTaskDeleting\", onTaskEditDialogShowing: \"onTaskEditDialogShowing\", onTaskInserted: \"onTaskInserted\", onTaskInserting: \"onTaskInserting\", onTaskMoving: \"onTaskMoving\", onTaskUpdated: \"onTaskUpdated\", onTaskUpdating: \"onTaskUpdating\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowSelectionChange: \"allowSelectionChange\", columnsChange: \"columnsChange\", contextMenuChange: \"contextMenuChange\", dependenciesChange: \"dependenciesChange\", disabledChange: \"disabledChange\", editingChange: \"editingChange\", elementAttrChange: \"elementAttrChange\", endDateRangeChange: \"endDateRangeChange\", filterRowChange: \"filterRowChange\", firstDayOfWeekChange: \"firstDayOfWeekChange\", focusStateEnabledChange: \"focusStateEnabledChange\", headerFilterChange: \"headerFilterChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", resourceAssignmentsChange: \"resourceAssignmentsChange\", resourcesChange: \"resourcesChange\", rootValueChange: \"rootValueChange\", scaleTypeChange: \"scaleTypeChange\", scaleTypeRangeChange: \"scaleTypeRangeChange\", selectedRowKeyChange: \"selectedRowKeyChange\", showDependenciesChange: \"showDependenciesChange\", showResourcesChange: \"showResourcesChange\", showRowLinesChange: \"showRowLinesChange\", sortingChange: \"sortingChange\", startDateRangeChange: \"startDateRangeChange\", stripLinesChange: \"stripLinesChange\", tabIndexChange: \"tabIndexChange\", taskContentTemplateChange: \"taskContentTemplateChange\", taskListWidthChange: \"taskListWidthChange\", taskProgressTooltipContentTemplateChange: \"taskProgressTooltipContentTemplateChange\", tasksChange: \"tasksChange\", taskTimeTooltipContentTemplateChange: \"taskTimeTooltipContentTemplateChange\", taskTitlePositionChange: \"taskTitlePositionChange\", taskTooltipContentTemplateChange: \"taskTooltipContentTemplateChange\", toolbarChange: \"toolbarChange\", validationChange: \"validationChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxGanttComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxGanttComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-gantt',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowSelection: [{\r\n type: Input\r\n }], columns: [{\r\n type: Input\r\n }], contextMenu: [{\r\n type: Input\r\n }], dependencies: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], editing: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], endDateRange: [{\r\n type: Input\r\n }], filterRow: [{\r\n type: Input\r\n }], firstDayOfWeek: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], headerFilter: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], resourceAssignments: [{\r\n type: Input\r\n }], resources: [{\r\n type: Input\r\n }], rootValue: [{\r\n type: Input\r\n }], scaleType: [{\r\n type: Input\r\n }], scaleTypeRange: [{\r\n type: Input\r\n }], selectedRowKey: [{\r\n type: Input\r\n }], showDependencies: [{\r\n type: Input\r\n }], showResources: [{\r\n type: Input\r\n }], showRowLines: [{\r\n type: Input\r\n }], sorting: [{\r\n type: Input\r\n }], startDateRange: [{\r\n type: Input\r\n }], stripLines: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], taskContentTemplate: [{\r\n type: Input\r\n }], taskListWidth: [{\r\n type: Input\r\n }], taskProgressTooltipContentTemplate: [{\r\n type: Input\r\n }], tasks: [{\r\n type: Input\r\n }], taskTimeTooltipContentTemplate: [{\r\n type: Input\r\n }], taskTitlePosition: [{\r\n type: Input\r\n }], taskTooltipContentTemplate: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], validation: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuPreparing: [{\r\n type: Output\r\n }], onCustomCommand: [{\r\n type: Output\r\n }], onDependencyDeleted: [{\r\n type: Output\r\n }], onDependencyDeleting: [{\r\n type: Output\r\n }], onDependencyInserted: [{\r\n type: Output\r\n }], onDependencyInserting: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onResourceAssigned: [{\r\n type: Output\r\n }], onResourceAssigning: [{\r\n type: Output\r\n }], onResourceDeleted: [{\r\n type: Output\r\n }], onResourceDeleting: [{\r\n type: Output\r\n }], onResourceInserted: [{\r\n type: Output\r\n }], onResourceInserting: [{\r\n type: Output\r\n }], onResourceManagerDialogShowing: [{\r\n type: Output\r\n }], onResourceUnassigned: [{\r\n type: Output\r\n }], onResourceUnassigning: [{\r\n type: Output\r\n }], onScaleCellPrepared: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onTaskClick: [{\r\n type: Output\r\n }], onTaskDblClick: [{\r\n type: Output\r\n }], onTaskDeleted: [{\r\n type: Output\r\n }], onTaskDeleting: [{\r\n type: Output\r\n }], onTaskEditDialogShowing: [{\r\n type: Output\r\n }], onTaskInserted: [{\r\n type: Output\r\n }], onTaskInserting: [{\r\n type: Output\r\n }], onTaskMoving: [{\r\n type: Output\r\n }], onTaskUpdated: [{\r\n type: Output\r\n }], onTaskUpdating: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowSelectionChange: [{\r\n type: Output\r\n }], columnsChange: [{\r\n type: Output\r\n }], contextMenuChange: [{\r\n type: Output\r\n }], dependenciesChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], editingChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endDateRangeChange: [{\r\n type: Output\r\n }], filterRowChange: [{\r\n type: Output\r\n }], firstDayOfWeekChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], headerFilterChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], resourceAssignmentsChange: [{\r\n type: Output\r\n }], resourcesChange: [{\r\n type: Output\r\n }], rootValueChange: [{\r\n type: Output\r\n }], scaleTypeChange: [{\r\n type: Output\r\n }], scaleTypeRangeChange: [{\r\n type: Output\r\n }], selectedRowKeyChange: [{\r\n type: Output\r\n }], showDependenciesChange: [{\r\n type: Output\r\n }], showResourcesChange: [{\r\n type: Output\r\n }], showRowLinesChange: [{\r\n type: Output\r\n }], sortingChange: [{\r\n type: Output\r\n }], startDateRangeChange: [{\r\n type: Output\r\n }], stripLinesChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], taskContentTemplateChange: [{\r\n type: Output\r\n }], taskListWidthChange: [{\r\n type: Output\r\n }], taskProgressTooltipContentTemplateChange: [{\r\n type: Output\r\n }], tasksChange: [{\r\n type: Output\r\n }], taskTimeTooltipContentTemplateChange: [{\r\n type: Output\r\n }], taskTitlePositionChange: [{\r\n type: Output\r\n }], taskTooltipContentTemplateChange: [{\r\n type: Output\r\n }], toolbarChange: [{\r\n type: Output\r\n }], validationChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], columnsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiColumnComponent]\r\n }], stripLinesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiStripLineComponent]\r\n }] }); })();\r\nclass DxGanttModule {\r\n}\r\n/** @nocollapse */ DxGanttModule.ɵfac = function DxGanttModule_Factory(t) { return new (t || DxGanttModule)(); };\r\n/** @nocollapse */ DxGanttModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxGanttModule });\r\n/** @nocollapse */ DxGanttModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxGanttModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxGanttComponent\r\n ],\r\n exports: [\r\n DxGanttComponent,\r\n DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxGanttModule, { declarations: [DxGanttComponent], imports: [DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxGanttComponent, DxiColumnModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoContextMenuModule,\r\n DxiItemModule,\r\n DxoDependenciesModule,\r\n DxoEditingModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoTextsModule,\r\n DxoResourceAssignmentsModule,\r\n DxoResourcesModule,\r\n DxoScaleTypeRangeModule,\r\n DxoSortingModule,\r\n DxiStripLineModule,\r\n DxoTasksModule,\r\n DxoToolbarModule,\r\n DxoValidationModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxGanttComponent, DxGanttModule };\n","/**\r\n * DevExtreme (esm/ui/html_editor/themes/base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nvar BaseTheme;\r\nif (Quill) {\r\n var Theme = Quill.import(\"core/theme\");\r\n BaseTheme = class extends Theme {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.quill.root.classList.add(\"dx-htmleditor-content\");\r\n this.quill.root.setAttribute(\"role\", \"textbox\");\r\n this.quill.root.setAttribute(\"aria-label\", \"Editor content\")\r\n }\r\n }\r\n} else {\r\n BaseTheme = {}\r\n}\r\nexport default BaseTheme;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/quill_importer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Errors from \"../widget/ui.errors\";\r\nimport Quill from \"devextreme-quill\";\r\nexport function getQuill() {\r\n if (!Quill) {\r\n throw Errors.Error(\"E1041\", \"Quill\")\r\n }\r\n return Quill\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/image.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport {\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nvar ExtImage = {};\r\nif (Quill) {\r\n var Image = Quill.import(\"formats/image\");\r\n ExtImage = class extends Image {\r\n static create(data) {\r\n var SRC = data && data.src || data;\r\n var node = super.create(SRC);\r\n if (isObject(data)) {\r\n var setAttribute = (attr, value) => {\r\n data[attr] && node.setAttribute(attr, value)\r\n };\r\n setAttribute(\"alt\", data.alt);\r\n setAttribute(\"width\", data.width);\r\n setAttribute(\"height\", data.height)\r\n }\r\n return node\r\n }\r\n static formats(domNode) {\r\n var formats = super.formats(domNode);\r\n formats.imageSrc = domNode.getAttribute(\"src\");\r\n return formats\r\n }\r\n formats() {\r\n var formats = super.formats();\r\n var floatValue = this.domNode.style.float;\r\n if (floatValue) {\r\n formats.float = floatValue\r\n }\r\n return formats\r\n }\r\n format(name, value) {\r\n if (\"float\" === name) {\r\n this.domNode.style[name] = value\r\n } else {\r\n super.format(name, value)\r\n }\r\n }\r\n static value(domNode) {\r\n return {\r\n src: domNode.getAttribute(\"src\"),\r\n width: domNode.getAttribute(\"width\"),\r\n height: domNode.getAttribute(\"height\"),\r\n alt: domNode.getAttribute(\"alt\")\r\n }\r\n }\r\n };\r\n ExtImage.blotName = \"extendedImage\"\r\n}\r\nexport default ExtImage;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/link.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport {\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nvar ExtLink = {};\r\nif (Quill) {\r\n var Link = Quill.import(\"formats/link\");\r\n ExtLink = class ExtLink extends Link {\r\n static create(data) {\r\n var _data$href;\r\n var HREF = null !== (_data$href = null === data || void 0 === data ? void 0 : data.href) && void 0 !== _data$href ? _data$href : data;\r\n var node = super.create(HREF);\r\n if (isObject(data)) {\r\n if (data.text) {\r\n node.innerText = data.text\r\n }\r\n if (!data.target) {\r\n node.removeAttribute(\"target\")\r\n }\r\n }\r\n return node\r\n }\r\n static formats(domNode) {\r\n return {\r\n href: domNode.getAttribute(\"href\"),\r\n target: domNode.getAttribute(\"target\")\r\n }\r\n }\r\n formats() {\r\n var formats = super.formats();\r\n var {\r\n href: href,\r\n target: target\r\n } = ExtLink.formats(this.domNode);\r\n formats.link = href;\r\n formats.target = target;\r\n return formats\r\n }\r\n format(name, value) {\r\n if (\"link\" === name && isObject(value)) {\r\n if (value.text) {\r\n this.domNode.innerText = value.text\r\n }\r\n if (value.target) {\r\n this.domNode.setAttribute(\"target\", \"_blank\")\r\n } else {\r\n this.domNode.removeAttribute(\"target\")\r\n }\r\n this.domNode.setAttribute(\"href\", value.href)\r\n } else {\r\n super.format(name, value)\r\n }\r\n }\r\n static value(domNode) {\r\n return {\r\n href: domNode.getAttribute(\"href\"),\r\n text: domNode.innerText,\r\n target: !!domNode.getAttribute(\"target\")\r\n }\r\n }\r\n }\r\n}\r\nexport default ExtLink;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/font.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nvar FontStyle = {};\r\nif (Quill) {\r\n FontStyle = Quill.import(\"attributors/style/font\");\r\n FontStyle.whitelist = null\r\n}\r\nexport default FontStyle;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/size.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nvar SizeStyle = {};\r\nif (Quill) {\r\n SizeStyle = Quill.import(\"attributors/style/size\");\r\n SizeStyle.whitelist = null\r\n}\r\nexport default SizeStyle;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/align.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nvar AlignStyle = {};\r\nif (Quill) {\r\n AlignStyle = Quill.import(\"attributors/style/align\");\r\n AlignStyle.whitelist.push(\"left\")\r\n}\r\nexport default AlignStyle;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport EmptyModule from \"./empty\";\r\nimport {\r\n isObject,\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar BaseModule = EmptyModule;\r\nif (Quill) {\r\n var BaseQuillModule = Quill.import(\"core/module\");\r\n BaseModule = class extends BaseQuillModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.editorInstance = options.editorInstance\r\n }\r\n saveValueChangeEvent(event) {\r\n this.editorInstance._saveValueChangeEvent(event)\r\n }\r\n addCleanCallback(callback) {\r\n this.editorInstance.addCleanCallback(callback)\r\n }\r\n handleOptionChangeValue(changes) {\r\n if (isObject(changes)) {\r\n Object.entries(changes).forEach(_ref => {\r\n var [name, value] = _ref;\r\n return this.option(name, value)\r\n })\r\n } else if (!isDefined(changes)) {\r\n null === this || void 0 === this ? void 0 : this.clean()\r\n }\r\n }\r\n }\r\n}\r\nexport default BaseModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/empty.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default class EmptyModule {}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/widget_collector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nexport default class WidgetCollector {\r\n constructor() {\r\n this._collection = []\r\n }\r\n clear() {\r\n this._collection = []\r\n }\r\n add(name, instance) {\r\n this._collection.push({\r\n name: name,\r\n instance: instance\r\n })\r\n }\r\n remove(name) {\r\n this._collection = this._collection.filter(item => item.name !== name)\r\n }\r\n getByName(widgetName) {\r\n var widget = null;\r\n each(this._collection, (index, _ref) => {\r\n var {\r\n name: name,\r\n instance: instance\r\n } = _ref;\r\n if (name === widgetName) {\r\n widget = instance;\r\n return false\r\n }\r\n });\r\n return widget\r\n }\r\n each(handler) {\r\n this._collection.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n instance: instance\r\n } = _ref2;\r\n return instance && handler(name, instance)\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/utils/table_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nvar TABLE_FORMATS = [\"table\", \"tableHeaderCell\"];\r\nvar TABLE_OPERATIONS = [\"insertTable\", \"insertHeaderRow\", \"insertRowAbove\", \"insertRowBelow\", \"insertColumnLeft\", \"insertColumnRight\", \"deleteColumn\", \"deleteRow\", \"deleteTable\", \"cellProperties\", \"tableProperties\"];\r\n\r\nfunction getTableFormats(quill) {\r\n var tableModule = quill.getModule(\"table\");\r\n return null !== tableModule && void 0 !== tableModule && tableModule.tableFormats ? tableModule.tableFormats() : TABLE_FORMATS\r\n}\r\n\r\nfunction hasEmbedContent(module, selection) {\r\n return !!selection && module.quill.getText(selection).length < selection.length\r\n}\r\n\r\nfunction unfixTableWidth($table, _ref) {\r\n var {\r\n tableBlot: tableBlot,\r\n quill: quill\r\n } = _ref;\r\n var formatBlot = null !== tableBlot && void 0 !== tableBlot ? tableBlot : quill.scroll.find($table.get(0));\r\n formatBlot.format(\"tableWidth\", \"initial\")\r\n}\r\n\r\nfunction getColumnElements($table) {\r\n var index = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return $table.find(\"tr\").eq(index).find(\"th, td\")\r\n}\r\n\r\nfunction getAutoSizedElements($table) {\r\n var direction = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"horizontal\";\r\n var result = [];\r\n var isHorizontal = \"horizontal\" === direction;\r\n var $lineElements = isHorizontal ? getColumnElements($table) : getRowElements($table);\r\n $lineElements.each((index, element) => {\r\n var $element = $(element);\r\n if (\"\" === $element.get(0).style[isHorizontal ? \"width\" : \"height\"]) {\r\n result.push($element)\r\n }\r\n });\r\n return result\r\n}\r\n\r\nfunction setLineElementsFormat(module, _ref2) {\r\n var {\r\n elements: elements,\r\n property: property,\r\n value: value\r\n } = _ref2;\r\n var tableBlotNames = module.quill.getModule(\"table\").tableBlots;\r\n var fullPropertyName = \"cell\".concat(camelize(property, true));\r\n each(elements, (i, element) => {\r\n var _formatBlot;\r\n var formatBlot = module.quill.scroll.find(element);\r\n if (!tableBlotNames.includes(formatBlot.statics.blotName)) {\r\n var descendBlot = formatBlot.descendant(blot => tableBlotNames.includes(blot.statics.blotName));\r\n formatBlot = descendBlot ? descendBlot[0] : null\r\n }\r\n null === (_formatBlot = formatBlot) || void 0 === _formatBlot ? void 0 : _formatBlot.format(fullPropertyName, value + \"px\")\r\n })\r\n}\r\n\r\nfunction getLineElements($table, index) {\r\n var direction = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"horizontal\";\r\n return \"horizontal\" === direction ? getRowElements($table, index) : getColumnElements($table, index)\r\n}\r\n\r\nfunction getRowElements($table) {\r\n var index = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return $table.find(\"th:nth-child(\".concat(1 + index, \"), td:nth-child(\").concat(1 + index, \")\"))\r\n}\r\n\r\nfunction getTableOperationHandler(quill, operationName) {\r\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\r\n rest[_key - 2] = arguments[_key]\r\n }\r\n return () => {\r\n var table = quill.getModule(\"table\");\r\n if (!table) {\r\n return\r\n }\r\n quill.focus();\r\n return table[operationName](...rest)\r\n }\r\n}\r\nexport {\r\n TABLE_OPERATIONS,\r\n getTableFormats,\r\n getTableOperationHandler,\r\n unfixTableWidth,\r\n getColumnElements,\r\n getAutoSizedElements,\r\n setLineElementsFormat,\r\n getLineElements,\r\n getRowElements,\r\n hasEmbedContent\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/utils/image_uploader_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"imageSrc\", \"src\"];\r\nimport $ from \"../../../core/renderer\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n map\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isFluent\r\n} from \"../../themes\";\r\nvar isMobile = \"phone\" === devices.current().deviceType;\r\nvar DIALOG_IMAGE_CAPTION = \"dxHtmlEditor-dialogImageCaption\";\r\nvar DIALOG_UPDATE_IMAGE_CAPTION = \"dxHtmlEditor-dialogUpdateImageCaption\";\r\nvar DIALOG_IMAGE_FIELD_URL = \"dxHtmlEditor-dialogImageUrlField\";\r\nvar DIALOG_IMAGE_FIELD_ALT = \"dxHtmlEditor-dialogImageAltField\";\r\nvar DIALOG_IMAGE_FIELD_WIDTH = \"dxHtmlEditor-dialogImageWidthField\";\r\nvar DIALOG_IMAGE_FIELD_HEIGHT = \"dxHtmlEditor-dialogImageHeightField\";\r\nvar DIALOG_IMAGE_ADD_BUTTON = \"dxHtmlEditor-dialogImageAddButton\";\r\nvar DIALOG_IMAGE_UPDATE_BUTTON = \"dxHtmlEditor-dialogImageUpdateButton\";\r\nvar DIALOG_IMAGE_SPECIFY_URL = \"dxHtmlEditor-dialogImageSpecifyUrl\";\r\nvar DIALOG_IMAGE_SELECT_FILE = \"dxHtmlEditor-dialogImageSelectFile\";\r\nvar DIALOG_IMAGE_KEEP_ASPECT_RATIO = \"dxHtmlEditor-dialogImageKeepAspectRatio\";\r\nvar DIALOG_IMAGE_ENCODE_TO_BASE64 = \"dxHtmlEditor-dialogImageEncodeToBase64\";\r\nvar DIALOG_IMAGE_POPUP_CLASS = \"dx-htmleditor-add-image-popup\";\r\nvar DIALOG_IMAGE_POPUP_WITH_TABS_CLASS = \"dx-htmleditor-add-image-popup-with-tabs\";\r\nvar DIALOG_IMAGE_FIX_RATIO_CONTAINER = \"dx-fix-ratio-container\";\r\nvar FORM_DIALOG_CLASS = \"dx-formdialog\";\r\nvar USER_ACTION = \"user\";\r\nvar SILENT_ACTION = \"silent\";\r\nvar FILE_UPLOADER_NAME = \"dx-htmleditor-image\";\r\nimport ButtonGroup from \"../../button_group\";\r\nimport FileUploader from \"../../file_uploader\";\r\nimport TextBox from \"../../text_box\";\r\nexport class ImageUploader {\r\n constructor(module, config) {\r\n this.module = module;\r\n this.config = null !== config && void 0 !== config ? config : {};\r\n this.quill = this.module.quill;\r\n this.editorInstance = this.module.editorInstance\r\n }\r\n render() {\r\n if (this.editorInstance._formDialog) {\r\n this.editorInstance._formDialog.beforeAddButtonAction = () => this.getCurrentTab().upload()\r\n }\r\n this.tabPanelIndex = 0;\r\n this.formData = this.getFormData();\r\n this.isUpdating = this.isImageUpdating();\r\n this.tabsModel = this.createTabsModel(this.config.tabs);\r\n this.tabs = this.createTabs(this.formData);\r\n var formConfig = this.getFormConfig();\r\n this.updatePopupConfig();\r\n this.updateAddButtonState();\r\n this.editorInstance.showFormDialog(formConfig).done((formData, event) => {\r\n this.tabs[this.getActiveTabIndex()].strategy.pasteImage(formData, event)\r\n }).always(() => {\r\n this.resetDialogPopupOptions();\r\n this.quill.focus()\r\n })\r\n }\r\n getCurrentTab() {\r\n return this.tabs[this.tabPanelIndex]\r\n }\r\n updateAddButtonState() {\r\n var isDisabled = this.getCurrentTab().isDisableButton();\r\n this.setAddButtonDisabled(isDisabled)\r\n }\r\n setAddButtonDisabled(value) {\r\n this.editorInstance.formDialogOption({\r\n \"toolbarItems[0].options.disabled\": value\r\n })\r\n }\r\n getActiveTabIndex() {\r\n return this.isUpdating ? 0 : this.tabPanelIndex\r\n }\r\n getFormData() {\r\n return this.getUpdateDialogFormData(this.quill.getFormat())\r\n }\r\n getUpdateDialogFormData(formData) {\r\n var {\r\n imageSrc: imageSrc,\r\n src: src\r\n } = formData, props = _objectWithoutPropertiesLoose(formData, _excluded);\r\n return _extends({\r\n src: null !== imageSrc && void 0 !== imageSrc ? imageSrc : src\r\n }, props)\r\n }\r\n createUrlTab(formData) {\r\n return new UrlTab(this.module, {\r\n config: this.config,\r\n formData: formData,\r\n isUpdating: this.isUpdating\r\n }, () => this.updateAddButtonState())\r\n }\r\n createFileTab() {\r\n return new FileTab(this.module, {\r\n config: this.config\r\n }, () => this.updateAddButtonState())\r\n }\r\n createTabsModel() {\r\n var model = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n if (0 === model.length || this.isUpdating) {\r\n return [\"url\"]\r\n }\r\n return model.map(tab => \"object\" === typeof tab ? tab.name : tab)\r\n }\r\n createTabs(formData) {\r\n return this.tabsModel.map(tabName => {\r\n var isUrlTab = \"url\" === tabName;\r\n return isUrlTab ? this.createUrlTab(formData) : this.createFileTab()\r\n })\r\n }\r\n isImageUpdating() {\r\n var _this$module$quill$ge;\r\n return Object.prototype.hasOwnProperty.call(null !== (_this$module$quill$ge = this.module.quill.getFormat()) && void 0 !== _this$module$quill$ge ? _this$module$quill$ge : {}, \"imageSrc\")\r\n }\r\n updatePopupConfig() {\r\n var wrapperClasses = \"\".concat(DIALOG_IMAGE_POPUP_CLASS, \" \").concat(FORM_DIALOG_CLASS);\r\n if (this.useTabbedItems()) {\r\n wrapperClasses += \" \".concat(DIALOG_IMAGE_POPUP_WITH_TABS_CLASS)\r\n }\r\n var titleKey = this.isUpdating ? DIALOG_UPDATE_IMAGE_CAPTION : DIALOG_IMAGE_CAPTION;\r\n var addButtonTextKey = this.isUpdating ? DIALOG_IMAGE_UPDATE_BUTTON : DIALOG_IMAGE_ADD_BUTTON;\r\n this.editorInstance.formDialogOption({\r\n title: localizationMessage.format(titleKey),\r\n \"toolbarItems[0].options.text\": localizationMessage.format(addButtonTextKey),\r\n wrapperAttr: {\r\n class: wrapperClasses\r\n }\r\n })\r\n }\r\n resetDialogPopupOptions() {\r\n this.editorInstance.formDialogOption({\r\n \"toolbarItems[0].options.text\": localizationMessage.format(\"OK\"),\r\n \"toolbarItems[0].options.visible\": true,\r\n \"toolbarItems[0].options.disabled\": false,\r\n wrapperAttr: {\r\n class: FORM_DIALOG_CLASS\r\n }\r\n })\r\n }\r\n useTabbedItems() {\r\n return this.tabsModel.length > 1\r\n }\r\n getFormWidth() {\r\n return isMobile ? \"100%\" : 493\r\n }\r\n getFormConfig() {\r\n return {\r\n formData: this.formData,\r\n width: this.getFormWidth(),\r\n labelLocation: \"top\",\r\n colCount: this.useTabbedItems() ? 1 : 11,\r\n items: this.getItemsConfig()\r\n }\r\n }\r\n getItemsConfig() {\r\n if (this.useTabbedItems()) {\r\n var tabsConfig = map(this.tabs, tabController => ({\r\n title: tabController.getTabName(),\r\n colCount: 11,\r\n items: tabController.getItemsConfig()\r\n }));\r\n return [{\r\n itemType: \"tabbed\",\r\n tabPanelOptions: {\r\n onSelectionChanged: e => {\r\n this.tabPanelIndex = e.component.option(\"selectedIndex\");\r\n this.updateAddButtonState()\r\n }\r\n },\r\n tabs: tabsConfig\r\n }]\r\n }\r\n return this.tabs[0].getItemsConfig()\r\n }\r\n}\r\nclass BaseTab {\r\n constructor(module, _ref, onFileSelected) {\r\n var {\r\n config: config,\r\n formData: formData,\r\n isUpdating: isUpdating\r\n } = _ref;\r\n this.module = module;\r\n this.config = config;\r\n this.formData = formData;\r\n this.isUpdating = isUpdating;\r\n this.onFileSelected = onFileSelected;\r\n this.strategy = this.createStrategy()\r\n }\r\n getItemsConfig() {\r\n return this.strategy.getItemsConfig()\r\n }\r\n createStrategy() {\r\n return this.isUpdating ? new UpdateUrlStrategy(this.module, this.config, this.formData) : new AddUrlStrategy(this.module, this.config, this.onFileSelected)\r\n }\r\n isDisableButton() {\r\n return false\r\n }\r\n upload() {\r\n return this.strategy.upload()\r\n }\r\n}\r\nclass UrlTab extends BaseTab {\r\n getTabName() {\r\n return localizationMessage.format(DIALOG_IMAGE_SPECIFY_URL)\r\n }\r\n}\r\nclass FileTab extends BaseTab {\r\n getTabName() {\r\n return localizationMessage.format(DIALOG_IMAGE_SELECT_FILE)\r\n }\r\n createStrategy() {\r\n return new FileStrategy(this.module, this.config, this.onFileSelected)\r\n }\r\n isDisableButton() {\r\n return !this.strategy.isValid()\r\n }\r\n}\r\nclass BaseStrategy {\r\n constructor(module, config) {\r\n this.module = module;\r\n this.config = config;\r\n this.editorInstance = module.editorInstance;\r\n this.quill = module.quill;\r\n this.selection = this.getQuillSelection()\r\n }\r\n getQuillSelection() {\r\n var selection = this.quill.getSelection();\r\n return null !== selection && void 0 !== selection ? selection : {\r\n index: this.quill.getLength(),\r\n length: 0\r\n }\r\n }\r\n pasteImage() {}\r\n isValid() {\r\n return true\r\n }\r\n upload() {}\r\n}\r\nclass AddUrlStrategy extends BaseStrategy {\r\n constructor(module, config, onFileSelected) {\r\n super(module, config, onFileSelected);\r\n this.shouldKeepAspectRatio = true\r\n }\r\n pasteImage(formData, event) {\r\n this.module.saveValueChangeEvent(event);\r\n urlUpload(this.quill, this.selection.index, formData)\r\n }\r\n keepAspectRatio(data, _ref2) {\r\n var {\r\n dependentEditor: dependentEditor,\r\n e: e\r\n } = _ref2;\r\n var newValue = parseInt(e.value);\r\n var previousValue = parseInt(e.previousValue);\r\n var previousDependentEditorValue = parseInt(dependentEditor.option(\"value\"));\r\n data.component.updateData(data.dataField, newValue);\r\n if (this.shouldKeepAspectRatio && previousDependentEditorValue && previousValue && !this.preventRecalculating) {\r\n this.preventRecalculating = true;\r\n dependentEditor.option(\"value\", Math.round(newValue * previousDependentEditorValue / parseInt(previousValue)).toString())\r\n }\r\n this.preventRecalculating = false\r\n }\r\n createKeepAspectRatioEditor($container, data, dependentEditorDataField) {\r\n return this.editorInstance._createComponent($container, TextBox, extend(true, data.editorOptions, {\r\n value: data.component.option(\"formData\")[data.dataField],\r\n onEnterKey: data.component.option(\"onEditorEnterKey\").bind(this.editorInstance._formDialog, data),\r\n onValueChanged: e => {\r\n this.keepAspectRatio(data, {\r\n dependentEditor: this[dependentEditorDataField + \"Editor\"],\r\n e: e\r\n })\r\n }\r\n }))\r\n }\r\n upload() {\r\n var result = this.editorInstance._formDialog._form.validate();\r\n return result.isValid\r\n }\r\n getItemsConfig() {\r\n var stylingMode = isFluent() ? \"text\" : \"outlined\";\r\n return [{\r\n dataField: \"src\",\r\n colSpan: 11,\r\n label: {\r\n text: localizationMessage.format(DIALOG_IMAGE_FIELD_URL)\r\n },\r\n validationRules: [{\r\n type: \"required\"\r\n }, {\r\n type: \"stringLength\",\r\n min: 1\r\n }]\r\n }, {\r\n dataField: \"width\",\r\n colSpan: 6,\r\n label: {\r\n text: localizationMessage.format(DIALOG_IMAGE_FIELD_WIDTH)\r\n },\r\n template: data => {\r\n var $content = $(\"<div>\").addClass(DIALOG_IMAGE_FIX_RATIO_CONTAINER);\r\n var $widthEditor = $(\"<div>\").appendTo($content);\r\n this.widthEditor = this.createKeepAspectRatioEditor($widthEditor, data, \"height\");\r\n var $ratioEditor = $(\"<div>\").appendTo($content);\r\n this.editorInstance._createComponent($ratioEditor, ButtonGroup, {\r\n items: [{\r\n icon: \"imgarlock\",\r\n value: \"keepRatio\"\r\n }],\r\n hint: localizationMessage.format(DIALOG_IMAGE_KEEP_ASPECT_RATIO),\r\n focusStateEnabled: false,\r\n keyExpr: \"value\",\r\n stylingMode: stylingMode,\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: [\"keepRatio\"],\r\n onSelectionChanged: e => {\r\n this.shouldKeepAspectRatio = !!e.component.option(\"selectedItems\").length\r\n }\r\n });\r\n return $content\r\n }\r\n }, {\r\n dataField: \"height\",\r\n colSpan: 5,\r\n label: {\r\n text: localizationMessage.format(DIALOG_IMAGE_FIELD_HEIGHT)\r\n },\r\n template: data => {\r\n var $content = $(\"<div>\");\r\n this.heightEditor = this.createKeepAspectRatioEditor($content, data, \"width\");\r\n return $content\r\n }\r\n }, {\r\n dataField: \"alt\",\r\n colSpan: 11,\r\n label: {\r\n text: localizationMessage.format(DIALOG_IMAGE_FIELD_ALT)\r\n }\r\n }]\r\n }\r\n}\r\nclass UpdateUrlStrategy extends AddUrlStrategy {\r\n constructor(module, config, formData, onFileSelected) {\r\n super(module, config, onFileSelected);\r\n this.formData = formData;\r\n this.modifyFormData()\r\n }\r\n modifyFormData() {\r\n var {\r\n imageSrc: imageSrc\r\n } = this.quill.getFormat(this.selection.index - 1, 1);\r\n if (!imageSrc || 0 === this.selection.index) {\r\n this.selection = {\r\n index: this.selection.index + 1,\r\n length: 0\r\n };\r\n this.quill.setSelection(this.selection.index, this.selection.length, SILENT_ACTION)\r\n }\r\n var imgElement = this.quill.getLeaf(this.selection.index)[0].domNode;\r\n if (imgElement) {\r\n var _this$formData$width, _this$formData$height;\r\n this.formData.width = null !== (_this$formData$width = this.formData.width) && void 0 !== _this$formData$width ? _this$formData$width : getWidth($(imgElement));\r\n this.formData.height = null !== (_this$formData$height = this.formData.height) && void 0 !== _this$formData$height ? _this$formData$height : getHeight($(imgElement))\r\n }\r\n }\r\n pasteImage(formData, event) {\r\n this.quill.deleteText(this.embedFormatIndex(), 1, SILENT_ACTION);\r\n this.selection.index -= 1;\r\n super.pasteImage(formData, event)\r\n }\r\n embedFormatIndex() {\r\n var _this$selection;\r\n var selection = null !== (_this$selection = this.selection) && void 0 !== _this$selection ? _this$selection : this.quill.getSelection();\r\n if (selection) {\r\n if (selection.length) {\r\n return selection.index\r\n } else {\r\n return selection.index - 1\r\n }\r\n } else {\r\n return this.quill.getLength()\r\n }\r\n }\r\n}\r\nclass FileStrategy extends BaseStrategy {\r\n constructor(module, config, onFileSelected) {\r\n super(module, config, onFileSelected);\r\n this.useBase64 = !isDefined(this.config.fileUploadMode) || \"base64\" === this.config.fileUploadMode;\r\n this.isValidInternal = false;\r\n this.onFileSelected = onFileSelected;\r\n this.data = null\r\n }\r\n upload() {\r\n if (this.useBase64) {\r\n this.base64Upload(this.data)\r\n } else if (this.data.value.length) {\r\n this.data.component.upload()\r\n }\r\n return true\r\n }\r\n isValid() {\r\n return this.isValidInternal\r\n }\r\n onUploaded(data) {\r\n serverUpload(this.config.uploadDirectory, data.file.name, this.quill, this.selection.index)\r\n }\r\n base64Upload(data) {\r\n this.quill.getModule(\"uploader\").upload(this.selection, data.value, true)\r\n }\r\n pasteImage(formData, event) {\r\n if (this.useBase64) {\r\n super.pasteImage(formData, event)\r\n }\r\n }\r\n isBase64Editable() {\r\n return \"both\" === this.config.fileUploadMode\r\n }\r\n validate(e) {\r\n var fileUploader = e.component;\r\n this.isValidInternal = !fileUploader._files.some(file => !file.isValid());\r\n if (0 === fileUploader._files.length) {\r\n this.isValidInternal = false\r\n }\r\n }\r\n getFileUploaderOptions() {\r\n var fileUploaderOptions = {\r\n uploadUrl: this.config.uploadUrl,\r\n onValueChanged: data => {\r\n this.validate(data);\r\n this.data = data;\r\n this.onFileSelected()\r\n },\r\n onUploaded: e => this.onUploaded(e)\r\n };\r\n return extend({}, getFileUploaderBaseOptions(), fileUploaderOptions, this.config.fileUploaderOptions)\r\n }\r\n getItemsConfig() {\r\n return [{\r\n itemType: \"simple\",\r\n dataField: \"files\",\r\n colSpan: 11,\r\n label: {\r\n visible: false\r\n },\r\n template: () => {\r\n var $content = $(\"<div>\");\r\n this.module.editorInstance._createComponent($content, FileUploader, this.getFileUploaderOptions());\r\n return $content\r\n }\r\n }, {\r\n itemType: \"simple\",\r\n colSpan: 11,\r\n label: {\r\n visible: false\r\n },\r\n editorType: \"dxCheckBox\",\r\n editorOptions: {\r\n value: this.useBase64,\r\n visible: this.isBase64Editable(),\r\n text: localizationMessage.format(DIALOG_IMAGE_ENCODE_TO_BASE64),\r\n onValueChanged: e => {\r\n if (this.isBase64Editable()) {\r\n this.useBase64 = e.value\r\n }\r\n }\r\n }\r\n }]\r\n }\r\n}\r\nexport function correctSlashesInUrl(url) {\r\n return \"/\" !== url[url.length - 1] ? url + \"/\" : url\r\n}\r\nexport function getFileUploaderBaseOptions() {\r\n return {\r\n value: [],\r\n name: FILE_UPLOADER_NAME,\r\n accept: \"image/*\",\r\n uploadMode: \"useButtons\"\r\n }\r\n}\r\nexport function urlUpload(quill, index, attributes) {\r\n quill.insertEmbed(index, \"extendedImage\", attributes, USER_ACTION);\r\n quill.setSelection(index + 1, 0, USER_ACTION)\r\n}\r\nexport function serverUpload(url, fileName, quill, pasteIndex) {\r\n if (url) {\r\n var imageUrl = correctSlashesInUrl(url) + fileName;\r\n urlUpload(quill, pasteIndex, {\r\n src: imageUrl\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/utils/toolbar_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n getTableOperationHandler,\r\n hasEmbedContent,\r\n unfixTableWidth,\r\n getColumnElements,\r\n getAutoSizedElements,\r\n setLineElementsFormat,\r\n getLineElements,\r\n getRowElements\r\n} from \"./table_helper\";\r\nimport {\r\n isDefined,\r\n isBoolean\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport Form from \"../../form\";\r\nimport ButtonGroup from \"../../button_group\";\r\nimport ColorBox from \"../../color_box\";\r\nimport ScrollView from \"../../scroll_view\";\r\nimport {\r\n getOuterHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n ImageUploader\r\n} from \"./image_uploader_helper\";\r\nimport {\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n getQuill\r\n} from \"../quill_importer\";\r\nvar MIN_HEIGHT = 400;\r\nvar BORDER_STYLES = [\"none\", \"hidden\", \"dotted\", \"dashed\", \"solid\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\"];\r\nvar BORDER_STYLES_TRANSLATED = BORDER_STYLES.map(style => ({\r\n id: style,\r\n value: localizationMessage.format(\"dxHtmlEditor-borderStyle\".concat(camelize(style, true)))\r\n}));\r\nvar USER_ACTION = \"user\";\r\nvar SILENT_ACTION = \"silent\";\r\nvar DIALOG_COLOR_CAPTION = \"dxHtmlEditor-dialogColorCaption\";\r\nvar DIALOG_BACKGROUND_CAPTION = \"dxHtmlEditor-dialogBackgroundCaption\";\r\nvar DIALOG_LINK_CAPTION = \"dxHtmlEditor-dialogLinkCaption\";\r\nvar DIALOG_TABLE_CAPTION = \"dxHtmlEditor-dialogInsertTableCaption\";\r\nvar DIALOG_LINK_FIELD_URL = \"dxHtmlEditor-dialogLinkUrlField\";\r\nvar DIALOG_LINK_FIELD_TEXT = \"dxHtmlEditor-dialogLinkTextField\";\r\nvar DIALOG_LINK_FIELD_TARGET = \"dxHtmlEditor-dialogLinkTargetField\";\r\nvar DIALOG_LINK_FIELD_TARGET_CLASS = \"dx-formdialog-field-target\";\r\nvar DIALOG_TABLE_FIELD_COLUMNS = \"dxHtmlEditor-dialogInsertTableRowsField\";\r\nvar DIALOG_TABLE_FIELD_ROWS = \"dxHtmlEditor-dialogInsertTableColumnsField\";\r\nvar ICON_MAP = {\r\n insertHeaderRow: \"header\",\r\n clear: \"clearformat\"\r\n};\r\n\r\nfunction getFormatHandlers(module) {\r\n return {\r\n clear: _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n var range = module.quill.getSelection();\r\n if (range) {\r\n var _getToolbarModule;\r\n module.saveValueChangeEvent(event);\r\n module.quill.removeFormat(range);\r\n null === (_getToolbarModule = getToolbarModule(module)) || void 0 === _getToolbarModule ? void 0 : _getToolbarModule.updateFormatWidgets()\r\n }\r\n },\r\n link: prepareLinkHandler(module),\r\n image: prepareImageHandler(module, module.editorInstance.option(\"imageUpload\")),\r\n color: prepareColorClickHandler(module, \"color\"),\r\n background: prepareColorClickHandler(module, \"background\"),\r\n orderedList: prepareShortcutHandler(module, \"list\", \"ordered\"),\r\n bulletList: prepareShortcutHandler(module, \"list\", \"bullet\"),\r\n alignLeft: prepareShortcutHandler(module, \"align\", \"left\"),\r\n alignCenter: prepareShortcutHandler(module, \"align\", \"center\"),\r\n alignRight: prepareShortcutHandler(module, \"align\", \"right\"),\r\n alignJustify: prepareShortcutHandler(module, \"align\", \"justify\"),\r\n codeBlock: getDefaultClickHandler(module, \"code-block\"),\r\n undo: _ref2 => {\r\n var {\r\n event: event\r\n } = _ref2;\r\n module.saveValueChangeEvent(event);\r\n module.quill.history.undo()\r\n },\r\n redo: _ref3 => {\r\n var {\r\n event: event\r\n } = _ref3;\r\n module.saveValueChangeEvent(event);\r\n module.quill.history.redo()\r\n },\r\n increaseIndent: _ref4 => {\r\n var {\r\n event: event\r\n } = _ref4;\r\n applyFormat(module, [\"indent\", \"+1\", USER_ACTION], event)\r\n },\r\n decreaseIndent: _ref5 => {\r\n var {\r\n event: event\r\n } = _ref5;\r\n applyFormat(module, [\"indent\", \"-1\", USER_ACTION], event)\r\n },\r\n superscript: prepareShortcutHandler(module, \"script\", \"super\"),\r\n subscript: prepareShortcutHandler(module, \"script\", \"sub\"),\r\n insertTable: prepareInsertTableHandler(module),\r\n insertHeaderRow: getTableOperationHandler(module.quill, \"insertHeaderRow\"),\r\n insertRowAbove: getTableOperationHandler(module.quill, \"insertRowAbove\"),\r\n insertRowBelow: getTableOperationHandler(module.quill, \"insertRowBelow\"),\r\n insertColumnLeft: getTableOperationHandler(module.quill, \"insertColumnLeft\"),\r\n insertColumnRight: getTableOperationHandler(module.quill, \"insertColumnRight\"),\r\n deleteColumn: getTableOperationHandler(module.quill, \"deleteColumn\"),\r\n deleteRow: getTableOperationHandler(module.quill, \"deleteRow\"),\r\n deleteTable: getTableOperationHandler(module.quill, \"deleteTable\"),\r\n cellProperties: prepareShowFormProperties(module, \"cell\"),\r\n tableProperties: prepareShowFormProperties(module, \"table\")\r\n }\r\n}\r\n\r\nfunction resetFormDialogOptions(editorInstance, _ref6) {\r\n var {\r\n contentTemplate: contentTemplate,\r\n title: title,\r\n minHeight: minHeight,\r\n minWidth: minWidth,\r\n maxWidth: maxWidth\r\n } = _ref6;\r\n editorInstance.formDialogOption({\r\n contentTemplate: contentTemplate,\r\n title: title,\r\n minHeight: null !== minHeight && void 0 !== minHeight ? minHeight : 0,\r\n minWidth: null !== minWidth && void 0 !== minWidth ? minWidth : 0,\r\n maxWidth: null !== maxWidth && void 0 !== maxWidth ? maxWidth : \"none\"\r\n })\r\n}\r\n\r\nfunction prepareShowFormProperties(module, type) {\r\n return $element => {\r\n var _$element, _module$quill$getModu;\r\n if (!(null !== (_$element = $element) && void 0 !== _$element && _$element.length)) {\r\n $element = $(getTargetTableNode(module, type))\r\n }\r\n var [tableBlot, rowBlot] = null !== (_module$quill$getModu = module.quill.getModule(\"table\").getTable()) && void 0 !== _module$quill$getModu ? _module$quill$getModu : [];\r\n var formats = module.quill.getFormat(module.editorInstance.getSelection(true));\r\n var tablePropertiesFormConfig = getFormConfigConstructor(type)(module, {\r\n $element: $element,\r\n formats: formats,\r\n tableBlot: tableBlot,\r\n rowBlot: rowBlot\r\n });\r\n var {\r\n contentTemplate: contentTemplate,\r\n title: title,\r\n minHeight: minHeight,\r\n minWidth: minWidth,\r\n maxWidth: maxWidth\r\n } = module.editorInstance._formDialog._popup.option();\r\n var savedOptions = {\r\n contentTemplate: contentTemplate,\r\n title: title,\r\n minHeight: minHeight,\r\n minWidth: minWidth,\r\n maxWidth: maxWidth\r\n };\r\n var formInstance;\r\n module.editorInstance.formDialogOption({\r\n contentTemplate: container => {\r\n var $content = $(\"<div>\").appendTo(container);\r\n var $form = $(\"<div>\").appendTo($content);\r\n module.editorInstance._createComponent($form, Form, tablePropertiesFormConfig.formOptions);\r\n module.editorInstance._createComponent($content, ScrollView, {});\r\n formInstance = $form.dxForm(\"instance\");\r\n return $content\r\n },\r\n title: localizationMessage.format(\"dxHtmlEditor-\".concat(type, \"Properties\")),\r\n minHeight: MIN_HEIGHT,\r\n minWidth: Math.min(800, .9 * getWidth(getWindow()) - 1),\r\n maxWidth: .9 * getWidth(getWindow())\r\n });\r\n var promise = module.editorInstance.showFormDialog();\r\n promise.done((formData, event) => {\r\n module.saveValueChangeEvent(event);\r\n tablePropertiesFormConfig.applyHandler(formInstance);\r\n resetFormDialogOptions(module.editorInstance, savedOptions)\r\n });\r\n promise.fail(() => {\r\n module.quill.focus();\r\n resetFormDialogOptions(module.editorInstance, savedOptions)\r\n })\r\n }\r\n}\r\n\r\nfunction applyFormat(module, formatArgs, event) {\r\n module.saveValueChangeEvent(event);\r\n module.quill.format(...formatArgs)\r\n}\r\n\r\nfunction getTargetTableNode(module, partName) {\r\n var currentSelectionParts = module.quill.getModule(\"table\").getTable();\r\n return \"table\" === partName ? currentSelectionParts[0].domNode : currentSelectionParts[2].domNode\r\n}\r\n\r\nfunction getLinkRange(module, range) {\r\n var Quill = getQuill();\r\n var LinkBlot = Quill.import(\"formats/link\");\r\n var link;\r\n var linkOffset;\r\n [link, linkOffset] = module.quill.scroll.descendant(LinkBlot, range.index);\r\n if (!link && 0 === range.length) {\r\n [link, linkOffset] = module.quill.scroll.descendant(LinkBlot, range.index - 1);\r\n if (link) {\r\n linkOffset += 1\r\n }\r\n }\r\n var result = !link ? null : {\r\n index: range.index - linkOffset,\r\n length: link.length()\r\n };\r\n return result\r\n}\r\n\r\nfunction getColorFromFormat(value) {\r\n return Array.isArray(value) ? value[0] : value\r\n}\r\n\r\nfunction prepareLinkHandler(module) {\r\n return () => {\r\n var _selection;\r\n module.quill.focus();\r\n var selection = module.quill.getSelection();\r\n var formats = selection ? module.quill.getFormat() : {};\r\n var isCursorAtLink = void 0 !== formats.link && 0 === (null === (_selection = selection) || void 0 === _selection ? void 0 : _selection.length);\r\n var href = formats.link || \"\";\r\n if (isCursorAtLink) {\r\n var linkRange = getLinkRange(module, selection);\r\n if (linkRange) {\r\n selection = linkRange\r\n } else {\r\n href = \"\"\r\n }\r\n }\r\n var selectionHasEmbedContent = hasEmbedContent(module, selection);\r\n var formData = {\r\n href: href,\r\n text: selection && !selectionHasEmbedContent ? module.quill.getText(selection) : \"\",\r\n target: Object.prototype.hasOwnProperty.call(formats, \"target\") ? !!formats.target : true\r\n };\r\n module.editorInstance.formDialogOption(\"title\", localizationMessage.format(DIALOG_LINK_CAPTION));\r\n var promise = module.editorInstance.showFormDialog({\r\n formData: formData,\r\n items: getLinkFormItems(selectionHasEmbedContent)\r\n });\r\n promise.done((formData, event) => {\r\n if (selection && !selectionHasEmbedContent) {\r\n var text = formData.text || formData.href;\r\n var {\r\n index: index,\r\n length: length\r\n } = selection;\r\n formData.text = void 0;\r\n module.saveValueChangeEvent(event);\r\n length && module.quill.deleteText(index, length, SILENT_ACTION);\r\n module.quill.insertText(index, text, \"link\", formData, USER_ACTION);\r\n module.quill.setSelection(index + text.length, 0, USER_ACTION)\r\n } else {\r\n formData.text = !selection && !formData.text ? formData.href : formData.text;\r\n applyFormat(module, [\"link\", formData, USER_ACTION], event)\r\n }\r\n });\r\n promise.fail(() => {\r\n module.quill.focus()\r\n })\r\n }\r\n}\r\n\r\nfunction prepareImageHandler(module, imageUploadOption) {\r\n var imageUploader = new ImageUploader(module, imageUploadOption);\r\n return () => {\r\n imageUploader.render()\r\n }\r\n}\r\n\r\nfunction getLinkFormItems(selectionHasEmbedContent) {\r\n return [{\r\n dataField: \"href\",\r\n label: {\r\n text: localizationMessage.format(DIALOG_LINK_FIELD_URL)\r\n }\r\n }, {\r\n dataField: \"text\",\r\n label: {\r\n text: localizationMessage.format(DIALOG_LINK_FIELD_TEXT)\r\n },\r\n visible: !selectionHasEmbedContent\r\n }, {\r\n dataField: \"target\",\r\n editorType: \"dxCheckBox\",\r\n editorOptions: {\r\n text: localizationMessage.format(DIALOG_LINK_FIELD_TARGET)\r\n },\r\n cssClass: DIALOG_LINK_FIELD_TARGET_CLASS,\r\n label: {\r\n visible: false\r\n }\r\n }]\r\n}\r\n\r\nfunction prepareColorClickHandler(module, name) {\r\n return () => {\r\n var formData = module.quill.getFormat();\r\n var caption = \"color\" === name ? DIALOG_COLOR_CAPTION : DIALOG_BACKGROUND_CAPTION;\r\n module.editorInstance.formDialogOption(\"title\", localizationMessage.format(caption));\r\n var promise = module.editorInstance.showFormDialog({\r\n formData: formData,\r\n items: [{\r\n dataField: name,\r\n editorType: \"dxColorView\",\r\n editorOptions: {\r\n focusStateEnabled: false\r\n },\r\n label: {\r\n visible: false\r\n }\r\n }]\r\n });\r\n promise.done((formData, event) => {\r\n applyFormat(module, [name, formData[name], USER_ACTION], event)\r\n });\r\n promise.fail(() => {\r\n module.quill.focus()\r\n })\r\n }\r\n}\r\n\r\nfunction prepareShortcutHandler(module, name, shortcutValue) {\r\n return _ref7 => {\r\n var _getToolbarModule2;\r\n var {\r\n event: event\r\n } = _ref7;\r\n var formats = module.quill.getFormat();\r\n var value = formats[name] === shortcutValue ? false : shortcutValue;\r\n applyFormat(module, [name, value, USER_ACTION], event);\r\n null === (_getToolbarModule2 = getToolbarModule(module)) || void 0 === _getToolbarModule2 ? void 0 : _getToolbarModule2.updateFormatWidgets(true)\r\n }\r\n}\r\n\r\nfunction getToolbarModule(module) {\r\n return module._updateFormatWidget ? module : module.quill.getModule(\"toolbar\")\r\n}\r\n\r\nfunction getDefaultClickHandler(module, name) {\r\n return _ref8 => {\r\n var _getToolbarModule3;\r\n var {\r\n event: event\r\n } = _ref8;\r\n var formats = module.quill.getFormat();\r\n var value = formats[name];\r\n var newValue = !(isBoolean(value) ? value : isDefined(value));\r\n applyFormat(module, [name, newValue, USER_ACTION], event);\r\n null === (_getToolbarModule3 = getToolbarModule(module)) || void 0 === _getToolbarModule3 ? void 0 : _getToolbarModule3._updateFormatWidget(name, newValue, formats)\r\n }\r\n}\r\n\r\nfunction insertTableFormItems() {\r\n return [{\r\n dataField: \"columns\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n min: 1\r\n },\r\n label: {\r\n text: localizationMessage.format(DIALOG_TABLE_FIELD_COLUMNS)\r\n }\r\n }, {\r\n dataField: \"rows\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n min: 1\r\n },\r\n label: {\r\n text: localizationMessage.format(DIALOG_TABLE_FIELD_ROWS)\r\n }\r\n }]\r\n}\r\n\r\nfunction prepareInsertTableHandler(module) {\r\n return () => {\r\n var formats = module.quill.getFormat();\r\n var isTableFocused = module._tableFormats.some(format => Object.prototype.hasOwnProperty.call(formats, format));\r\n if (isTableFocused) {\r\n module.quill.focus();\r\n return\r\n }\r\n module.editorInstance.formDialogOption(\"title\", localizationMessage.format(DIALOG_TABLE_CAPTION));\r\n var promise = module.editorInstance.showFormDialog({\r\n formData: {\r\n rows: 1,\r\n columns: 1\r\n },\r\n items: insertTableFormItems()\r\n });\r\n promise.done((formData, event) => {\r\n module.quill.focus();\r\n var table = module.quill.getModule(\"table\");\r\n if (table) {\r\n module.saveValueChangeEvent(event);\r\n var {\r\n columns: columns,\r\n rows: rows\r\n } = formData;\r\n table.insertTable(columns, rows)\r\n }\r\n }).always(() => {\r\n module.quill.focus()\r\n })\r\n }\r\n}\r\n\r\nfunction getTablePropertiesFormConfig(module, _ref9) {\r\n var {\r\n $element: $element,\r\n formats: formats,\r\n tableBlot: tableBlot\r\n } = _ref9;\r\n var window = getWindow();\r\n var alignmentEditorInstance;\r\n var borderColorEditorInstance;\r\n var backgroundColorEditorInstance;\r\n var $table = $element;\r\n var editorInstance = module.editorInstance;\r\n var startTableWidth = parseInt(formats.tableWidth) || getOuterWidth($table);\r\n var tableStyles = window.getComputedStyle($table.get(0));\r\n var startTextAlign = \"start\" === tableStyles.textAlign ? \"left\" : tableStyles.textAlign;\r\n var formOptions = {\r\n colCount: 2,\r\n formData: {\r\n width: startTableWidth,\r\n height: isDefined(formats.tableHeight) ? parseInt(formats.tableHeight) : getOuterHeight($table),\r\n backgroundColor: formats.tableBackgroundColor || tableStyles.backgroundColor,\r\n borderStyle: formats.tableBorderStyle || tableStyles.borderTopStyle,\r\n borderColor: formats.tableBorderColor || tableStyles.borderTopColor,\r\n borderWidth: parseInt(isDefined(formats.tableBorderWidth) ? formats.tableBorderWidth : tableStyles.borderTopWidth),\r\n alignment: formats.tableAlign || startTextAlign\r\n },\r\n items: [{\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-border\"),\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n colCount: 2,\r\n items: [{\r\n dataField: \"borderStyle\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-style\")\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n items: BORDER_STYLES_TRANSLATED,\r\n valueExpr: \"id\",\r\n displayExpr: \"value\",\r\n placeholder: \"Select style\"\r\n }\r\n }, {\r\n dataField: \"borderWidth\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderWidth\")\r\n },\r\n editorOptions: {\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n itemType: \"simple\",\r\n dataField: \"borderColor\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderColor\")\r\n },\r\n colSpan: 2,\r\n template: e => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ColorBox, {\r\n editAlphaChannel: true,\r\n value: e.component.option(\"formData\").borderColor,\r\n onInitialized: e => {\r\n borderColorEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-dimensions\"),\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n colCount: 2,\r\n items: [{\r\n dataField: \"width\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-width\")\r\n },\r\n editorOptions: {\r\n min: 0,\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n dataField: \"height\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-height\")\r\n },\r\n editorOptions: {\r\n min: 0,\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-tableBackground\"),\r\n items: [{\r\n itemType: \"simple\",\r\n dataField: \"backgroundColor\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderColor\")\r\n },\r\n template: e => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ColorBox, {\r\n editAlphaChannel: true,\r\n value: e.component.option(\"formData\").backgroundColor,\r\n onInitialized: e => {\r\n backgroundColorEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-alignment\"),\r\n items: [{\r\n itemType: \"simple\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-horizontal\")\r\n },\r\n template: () => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ButtonGroup, {\r\n items: [{\r\n value: \"left\",\r\n icon: \"alignleft\"\r\n }, {\r\n value: \"center\",\r\n icon: \"aligncenter\"\r\n }, {\r\n value: \"right\",\r\n icon: \"alignright\"\r\n }, {\r\n value: \"justify\",\r\n icon: \"alignjustify\"\r\n }],\r\n keyExpr: \"value\",\r\n selectedItemKeys: [startTextAlign],\r\n onInitialized: e => {\r\n alignmentEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }],\r\n showColonAfterLabel: true,\r\n labelLocation: \"top\",\r\n minColWidth: 400\r\n };\r\n return {\r\n formOptions: formOptions,\r\n applyHandler: formInstance => {\r\n var formData = formInstance.option(\"formData\");\r\n var newWidth = formData.width === startTableWidth ? void 0 : formData.width;\r\n var newHeight = formData.height;\r\n applyTableDimensionChanges(module, {\r\n $table: $table,\r\n newHeight: newHeight,\r\n newWidth: newWidth,\r\n tableBlot: tableBlot\r\n });\r\n module.editorInstance.format(\"tableBorderStyle\", formData.borderStyle);\r\n module.editorInstance.format(\"tableBorderWidth\", formData.borderWidth + \"px\");\r\n module.editorInstance.format(\"tableBorderColor\", borderColorEditorInstance.option(\"value\"));\r\n module.editorInstance.format(\"tableBackgroundColor\", backgroundColorEditorInstance.option(\"value\"));\r\n module.editorInstance.format(\"tableTextAlign\", alignmentEditorInstance.option(\"selectedItemKeys\")[0])\r\n }\r\n }\r\n}\r\n\r\nfunction getCellPropertiesFormConfig(module, _ref10) {\r\n var {\r\n $element: $element,\r\n formats: formats,\r\n tableBlot: tableBlot,\r\n rowBlot: rowBlot\r\n } = _ref10;\r\n var window = getWindow();\r\n var alignmentEditorInstance;\r\n var verticalAlignmentEditorInstance;\r\n var borderColorEditorInstance;\r\n var backgroundColorEditorInstance;\r\n var $cell = $element;\r\n var startCellWidth = isDefined(formats.cellWidth) ? parseInt(formats.cellWidth) : getOuterWidth($cell);\r\n var editorInstance = module.editorInstance;\r\n var cellStyles = window.getComputedStyle($cell.get(0));\r\n var startTextAlign = \"start\" === cellStyles.textAlign ? \"left\" : cellStyles.textAlign;\r\n var formOptions = {\r\n colCount: 2,\r\n formData: {\r\n width: startCellWidth,\r\n height: isDefined(formats.cellHeight) ? parseInt(formats.cellHeight) : getOuterHeight($cell),\r\n backgroundColor: getColorFromFormat(formats.cellBackgroundColor) || cellStyles.backgroundColor,\r\n borderStyle: formats.cellBorderStyle || cellStyles.borderTopStyle,\r\n borderColor: getColorFromFormat(formats.cellBorderColor) || cellStyles.borderTopColor,\r\n borderWidth: parseInt(isDefined(formats.cellBorderWidth) ? formats.cellBorderWidth : cellStyles.borderTopWidth),\r\n alignment: formats.cellTextAlign || startTextAlign,\r\n verticalAlignment: formats.cellVerticalAlign || cellStyles.verticalAlign,\r\n verticalPadding: parseInt(isDefined(formats.cellPaddingTop) ? formats.cellPaddingTop : cellStyles.paddingTop),\r\n horizontalPadding: parseInt(isDefined(formats.cellPaddingLeft) ? formats.cellPaddingLeft : cellStyles.paddingLeft)\r\n },\r\n items: [{\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-border\"),\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n colCount: 2,\r\n items: [{\r\n dataField: \"borderStyle\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-style\")\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n items: BORDER_STYLES_TRANSLATED,\r\n valueExpr: \"id\",\r\n displayExpr: \"value\"\r\n }\r\n }, {\r\n dataField: \"borderWidth\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderWidth\")\r\n },\r\n editorOptions: {\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n itemType: \"simple\",\r\n dataField: \"borderColor\",\r\n colSpan: 2,\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderColor\")\r\n },\r\n template: e => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ColorBox, {\r\n editAlphaChannel: true,\r\n value: e.component.option(\"formData\").borderColor,\r\n onInitialized: e => {\r\n borderColorEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-dimensions\"),\r\n colCount: 2,\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n items: [{\r\n dataField: \"width\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-width\")\r\n },\r\n editorOptions: {\r\n min: 0,\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n dataField: \"height\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-height\")\r\n },\r\n editorOptions: {\r\n min: 0,\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n dataField: \"verticalPadding\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-paddingVertical\")\r\n },\r\n editorOptions: {\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }, {\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-paddingHorizontal\")\r\n },\r\n dataField: \"horizontalPadding\",\r\n editorOptions: {\r\n placeholder: localizationMessage.format(\"dxHtmlEditor-pixels\")\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-tableBackground\"),\r\n items: [{\r\n itemType: \"simple\",\r\n dataField: \"backgroundColor\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-borderColor\")\r\n },\r\n template: e => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ColorBox, {\r\n editAlphaChannel: true,\r\n value: e.component.option(\"formData\").backgroundColor,\r\n onInitialized: e => {\r\n backgroundColorEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }, {\r\n itemType: \"group\",\r\n caption: localizationMessage.format(\"dxHtmlEditor-alignment\"),\r\n colCount: 2,\r\n items: [{\r\n itemType: \"simple\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-horizontal\")\r\n },\r\n template: () => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ButtonGroup, {\r\n items: [{\r\n value: \"left\",\r\n icon: \"alignleft\"\r\n }, {\r\n value: \"center\",\r\n icon: \"aligncenter\"\r\n }, {\r\n value: \"right\",\r\n icon: \"alignright\"\r\n }, {\r\n value: \"justify\",\r\n icon: \"alignjustify\"\r\n }],\r\n keyExpr: \"value\",\r\n selectedItemKeys: [startTextAlign],\r\n onInitialized: e => {\r\n alignmentEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }, {\r\n itemType: \"simple\",\r\n label: {\r\n text: localizationMessage.format(\"dxHtmlEditor-vertical\")\r\n },\r\n template: () => {\r\n var $content = $(\"<div>\");\r\n editorInstance._createComponent($content, ButtonGroup, {\r\n items: [{\r\n value: \"top\",\r\n icon: \"verticalaligntop\"\r\n }, {\r\n value: \"middle\",\r\n icon: \"verticalaligncenter\"\r\n }, {\r\n value: \"bottom\",\r\n icon: \"verticalalignbottom\"\r\n }],\r\n keyExpr: \"value\",\r\n selectedItemKeys: [cellStyles.verticalAlign],\r\n onInitialized: e => {\r\n verticalAlignmentEditorInstance = e.component\r\n }\r\n });\r\n return $content\r\n }\r\n }]\r\n }],\r\n showColonAfterLabel: true,\r\n labelLocation: \"top\",\r\n minColWidth: 400\r\n };\r\n return {\r\n formOptions: formOptions,\r\n applyHandler: formInstance => {\r\n var formData = formInstance.option(\"formData\");\r\n var newWidth = formData.width === parseInt(startCellWidth) ? void 0 : formData.width;\r\n var newHeight = formData.height;\r\n applyCellDimensionChanges(module, {\r\n $cell: $cell,\r\n newHeight: newHeight,\r\n newWidth: newWidth,\r\n tableBlot: tableBlot,\r\n rowBlot: rowBlot\r\n });\r\n module.editorInstance.format(\"cellBorderWidth\", formData.borderWidth + \"px\");\r\n module.editorInstance.format(\"cellBorderColor\", borderColorEditorInstance.option(\"value\"));\r\n module.editorInstance.format(\"cellBorderStyle\", formData.borderStyle);\r\n module.editorInstance.format(\"cellBackgroundColor\", backgroundColorEditorInstance.option(\"value\"));\r\n module.editorInstance.format(\"cellTextAlign\", alignmentEditorInstance.option(\"selectedItemKeys\")[0]);\r\n module.editorInstance.format(\"cellVerticalAlign\", verticalAlignmentEditorInstance.option(\"selectedItemKeys\")[0]);\r\n module.editorInstance.format(\"cellPaddingLeft\", formData.horizontalPadding + \"px\");\r\n module.editorInstance.format(\"cellPaddingRight\", formData.horizontalPadding + \"px\");\r\n module.editorInstance.format(\"cellPaddingTop\", formData.verticalPadding + \"px\");\r\n module.editorInstance.format(\"cellPaddingBottom\", formData.verticalPadding + \"px\")\r\n }\r\n }\r\n}\r\n\r\nfunction getFormConfigConstructor(type) {\r\n return \"cell\" === type ? getCellPropertiesFormConfig : getTablePropertiesFormConfig\r\n}\r\n\r\nfunction applyTableDimensionChanges(module, _ref11) {\r\n var {\r\n $table: $table,\r\n newHeight: newHeight,\r\n newWidth: newWidth,\r\n tableBlot: tableBlot\r\n } = _ref11;\r\n if (isDefined(newWidth)) {\r\n var autoWidthColumns = getAutoSizedElements($table);\r\n if (autoWidthColumns.length > 0) {\r\n module.editorInstance.format(\"tableWidth\", newWidth + \"px\")\r\n } else {\r\n var $columns = getColumnElements($table);\r\n var oldTableWidth = getOuterWidth($table);\r\n unfixTableWidth($table, {\r\n tableBlot: tableBlot\r\n });\r\n each($columns, (i, element) => {\r\n var $element = $(element);\r\n var newElementWidth = newWidth / oldTableWidth * getOuterWidth($element);\r\n var $lineElements = getLineElements($table, $element.index(), \"horizontal\");\r\n setLineElementsFormat(module, {\r\n elements: $lineElements,\r\n property: \"width\",\r\n value: newElementWidth\r\n })\r\n })\r\n }\r\n }\r\n var autoHeightRows = getAutoSizedElements($table, \"vertical\");\r\n if ((null === autoHeightRows || void 0 === autoHeightRows ? void 0 : autoHeightRows.length) > 0) {\r\n tableBlot.format(\"tableHeight\", newHeight + \"px\")\r\n } else {\r\n var $rows = getRowElements($table);\r\n var oldTableHeight = getOuterHeight($table);\r\n each($rows, (i, element) => {\r\n var $element = $(element);\r\n var newElementHeight = newHeight / oldTableHeight * getOuterHeight($element);\r\n var $lineElements = getLineElements($table, i, \"vertical\");\r\n setLineElementsFormat(module, {\r\n elements: $lineElements,\r\n property: \"height\",\r\n value: newElementHeight\r\n })\r\n })\r\n }\r\n}\r\n\r\nfunction applyCellDimensionChanges(module, _ref12) {\r\n var {\r\n $cell: $cell,\r\n newHeight: newHeight,\r\n newWidth: newWidth,\r\n tableBlot: tableBlot,\r\n rowBlot: rowBlot\r\n } = _ref12;\r\n var $table = $($cell.closest(\"table\"));\r\n if (isDefined(newWidth)) {\r\n var index = $($cell).index();\r\n var $verticalCells = getLineElements($table, index);\r\n var widthDiff = newWidth - getOuterWidth($cell);\r\n var tableWidth = getOuterWidth($table);\r\n if (newWidth > tableWidth) {\r\n unfixTableWidth($table, {\r\n tableBlot: tableBlot\r\n })\r\n }\r\n setLineElementsFormat(module, {\r\n elements: $verticalCells,\r\n property: \"width\",\r\n value: newWidth\r\n });\r\n var $nextColumnCell = $cell.next();\r\n var shouldUpdateNearestColumnWidth = 0 === getAutoSizedElements($table).length;\r\n if (shouldUpdateNearestColumnWidth) {\r\n unfixTableWidth($table, {\r\n tableBlot: tableBlot\r\n });\r\n if (1 === $nextColumnCell.length) {\r\n $verticalCells = getLineElements($table, index + 1);\r\n var nextColumnWidth = getOuterWidth($verticalCells.eq(0)) - widthDiff;\r\n setLineElementsFormat(module, {\r\n elements: $verticalCells,\r\n property: \"width\",\r\n value: Math.max(nextColumnWidth, 0)\r\n })\r\n } else {\r\n var $prevColumnCell = $cell.prev();\r\n if (1 === $prevColumnCell.length) {\r\n $verticalCells = getLineElements($table, index - 1);\r\n var prevColumnWidth = getOuterWidth($verticalCells.eq(0)) - widthDiff;\r\n setLineElementsFormat(module, {\r\n elements: $verticalCells,\r\n property: \"width\",\r\n value: Math.max(prevColumnWidth, 0)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n rowBlot.children.forEach(rowCell => {\r\n rowCell.format(\"cellHeight\", newHeight + \"px\")\r\n });\r\n var autoHeightRows = getAutoSizedElements($table, \"vertical\");\r\n if (0 === autoHeightRows.length) {\r\n $table.css(\"height\", \"auto\")\r\n }\r\n}\r\nexport {\r\n getFormatHandlers,\r\n getDefaultClickHandler,\r\n ICON_MAP,\r\n applyFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/toolbar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport $ from \"../../../core/renderer\";\r\nimport BaseModule from \"./base\";\r\nimport Toolbar from \"../../toolbar\";\r\nimport \"../../select_box\";\r\nimport \"../../color_box/color_view\";\r\nimport \"../../number_box\";\r\nimport errors from \"../../widget/ui.errors\";\r\nimport WidgetCollector from \"./widget_collector\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isObject,\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n titleize,\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n getTableFormats,\r\n TABLE_OPERATIONS\r\n} from \"../utils/table_helper\";\r\nimport {\r\n getFormatHandlers,\r\n getDefaultClickHandler,\r\n ICON_MAP,\r\n applyFormat\r\n} from \"../utils/toolbar_helper\";\r\nvar ToolbarModule = BaseModule;\r\nif (Quill) {\r\n var TOOLBAR_WRAPPER_CLASS = \"dx-htmleditor-toolbar-wrapper\";\r\n var TOOLBAR_CLASS = \"dx-htmleditor-toolbar\";\r\n var TOOLBAR_FORMAT_WIDGET_CLASS = \"dx-htmleditor-toolbar-format\";\r\n var TOOLBAR_SEPARATOR_CLASS = \"dx-htmleditor-toolbar-separator\";\r\n var TOOLBAR_MENU_SEPARATOR_CLASS = \"dx-htmleditor-toolbar-menu-separator\";\r\n var ACTIVE_FORMAT_CLASS = \"dx-format-active\";\r\n var SELECTED_STATE_CLASS = \"dx-state-selected\";\r\n var ICON_CLASS = \"dx-icon\";\r\n var SELECTION_CHANGE_EVENT = \"selection-change\";\r\n var USER_ACTION = \"user\";\r\n var SILENT_ACTION = \"silent\";\r\n var FORMAT_HOTKEYS = {\r\n 66: \"bold\",\r\n 73: \"italic\",\r\n 85: \"underline\"\r\n };\r\n var KEY_CODES = {\r\n b: 66,\r\n i: 73,\r\n u: 85\r\n };\r\n var localize = name => localizationMessage.format(\"dxHtmlEditor-\".concat(camelize(name)));\r\n var localizeValue = (value, name) => {\r\n if (\"header\" === name) {\r\n var isHeaderValue = isDefined(value) && false !== value;\r\n return isHeaderValue ? \"\".concat(localize(\"heading\"), \" \").concat(value) : localize(\"normalText\")\r\n }\r\n return localize(value) || value\r\n };\r\n ToolbarModule = class extends BaseModule {\r\n constructor(quill, options) {\r\n var _this;\r\n super(quill, options);\r\n _this = this;\r\n this._toolbarWidgets = new WidgetCollector;\r\n this._formatHandlers = getFormatHandlers(this);\r\n this._tableFormats = getTableFormats(quill);\r\n if (isDefined(options.items)) {\r\n this._addCallbacks();\r\n this._renderToolbar();\r\n var toolbarMenu = this.toolbarInstance._layoutStrategy._menu;\r\n if (toolbarMenu) {\r\n var _renderPopup = toolbarMenu._renderPopup;\r\n toolbarMenu._renderPopup = function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n _renderPopup.apply(toolbarMenu, ...args);\r\n toolbarMenu._popup.on(\"showing\", () => {\r\n _this._updateToolbar(true)\r\n })\r\n }\r\n }\r\n this.quill.on(\"editor-change\", (eventName, newValue, oldValue, eventSource) => {\r\n var isSilentMode = eventSource === SILENT_ACTION && isEmptyObject(this.quill.getFormat());\r\n if (!isSilentMode) {\r\n var isSelectionChanged = eventName === SELECTION_CHANGE_EVENT;\r\n this._updateToolbar(isSelectionChanged)\r\n }\r\n })\r\n }\r\n }\r\n _addCallbacks() {\r\n this.addCleanCallback(this.clean.bind(this));\r\n this.editorInstance.addContentInitializedCallback(this.updateHistoryWidgets.bind(this))\r\n }\r\n _updateToolbar(isSelectionChanged) {\r\n this.updateFormatWidgets(isSelectionChanged);\r\n this.updateHistoryWidgets();\r\n this.updateTableWidgets()\r\n }\r\n _updateFormatWidget(name, isApplied, formats) {\r\n var widget = this._toolbarWidgets.getByName(name);\r\n if (!widget) {\r\n return\r\n }\r\n if (isApplied) {\r\n this._markActiveFormatWidget(name, widget, formats)\r\n } else {\r\n this._resetFormatWidget(name, widget);\r\n if (Object.prototype.hasOwnProperty.call(name)) {\r\n delete formats[name]\r\n }\r\n }\r\n this._toggleClearFormatting(isApplied || !isEmptyObject(formats))\r\n }\r\n _renderToolbar() {\r\n var container = this.options.container || this._getContainer();\r\n this._$toolbar = $(\"<div>\").addClass(TOOLBAR_CLASS).appendTo(container);\r\n this._$toolbarContainer = $(container).addClass(TOOLBAR_WRAPPER_CLASS);\r\n eventsEngine.on(this._$toolbarContainer, addNamespace(\"mousedown\", this.editorInstance.NAME), e => {\r\n e.target.focus();\r\n e.preventDefault()\r\n });\r\n this._subscribeFormatHotKeys();\r\n this.toolbarInstance = this.editorInstance._createComponent(this._$toolbar, Toolbar, this.toolbarConfig);\r\n this.editorInstance.on(\"optionChanged\", _ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n if (\"readOnly\" === name || \"disabled\" === name) {\r\n this.toolbarInstance.option(\"disabled\", this.isInteractionDisabled)\r\n }\r\n })\r\n }\r\n get toolbarConfig() {\r\n return {\r\n dataSource: this._prepareToolbarItems(),\r\n disabled: this.isInteractionDisabled,\r\n menuContainer: this._$toolbarContainer,\r\n multiline: this.isMultilineMode()\r\n }\r\n }\r\n get isInteractionDisabled() {\r\n return this.editorInstance.option(\"readOnly\") || this.editorInstance.option(\"disabled\")\r\n }\r\n isMultilineMode() {\r\n var _this$options$multili;\r\n return null !== (_this$options$multili = this.options.multiline) && void 0 !== _this$options$multili ? _this$options$multili : true\r\n }\r\n clean() {\r\n this._toolbarWidgets.clear();\r\n if (this._$toolbarContainer) {\r\n this._$toolbarContainer.empty().removeClass(TOOLBAR_WRAPPER_CLASS)\r\n }\r\n }\r\n repaint() {\r\n this.toolbarInstance && this.toolbarInstance.repaint()\r\n }\r\n _getContainer() {\r\n var $container = $(\"<div>\");\r\n this.editorInstance.$element().prepend($container);\r\n return $container\r\n }\r\n _detectRenamedOptions(item) {\r\n if (isObject(item)) {\r\n each([{\r\n newName: \"name\",\r\n oldName: \"formatName\"\r\n }, {\r\n newName: \"acceptedValues\",\r\n oldName: \"formatValues\"\r\n }], (index, optionName) => {\r\n if (Object.prototype.hasOwnProperty.call(item, optionName.oldName)) {\r\n errors.log(\"W1016\", optionName.oldName, optionName.newName)\r\n }\r\n })\r\n }\r\n }\r\n _subscribeFormatHotKeys() {\r\n this.quill.keyboard.addBinding({\r\n which: KEY_CODES.b,\r\n shortKey: true\r\n }, this._handleFormatHotKey.bind(this));\r\n this.quill.keyboard.addBinding({\r\n which: KEY_CODES.i,\r\n shortKey: true\r\n }, this._handleFormatHotKey.bind(this));\r\n this.quill.keyboard.addBinding({\r\n which: KEY_CODES.u,\r\n shortKey: true\r\n }, this._handleFormatHotKey.bind(this))\r\n }\r\n _handleFormatHotKey(range, context, _ref2) {\r\n var {\r\n which: which\r\n } = _ref2;\r\n var formatName = FORMAT_HOTKEYS[which];\r\n this._updateButtonState(formatName)\r\n }\r\n _updateButtonState(formatName) {\r\n var formatWidget = this._toolbarWidgets.getByName(formatName);\r\n var currentFormat = this.quill.getFormat();\r\n var formatValue = currentFormat[formatName];\r\n if (formatValue) {\r\n this._markActiveFormatWidget(formatName, formatWidget, currentFormat)\r\n } else {\r\n this._resetFormatWidget(formatName, formatWidget)\r\n }\r\n }\r\n _prepareToolbarItems() {\r\n var resultItems = [];\r\n each(this.options.items, (index, item) => {\r\n var newItem;\r\n this._detectRenamedOptions(item);\r\n if (isObject(item)) {\r\n newItem = this._handleObjectItem(item)\r\n } else if (isString(item)) {\r\n var buttonItemConfig = this._prepareButtonItemConfig(item);\r\n newItem = this._getToolbarItem(buttonItemConfig)\r\n }\r\n if (newItem) {\r\n resultItems.push(newItem)\r\n }\r\n });\r\n return resultItems\r\n }\r\n _handleObjectItem(item) {\r\n if (item.name && item.acceptedValues && this._isAcceptableItem(item.widget, \"dxSelectBox\")) {\r\n var selectItemConfig = this._prepareSelectItemConfig(item);\r\n return this._getToolbarItem(selectItemConfig)\r\n } else if (item.name && this._isAcceptableItem(item.widget, \"dxButton\")) {\r\n var defaultButtonItemConfig = this._prepareButtonItemConfig(item.name);\r\n var buttonItemConfig = extend(true, defaultButtonItemConfig, item);\r\n return this._getToolbarItem(buttonItemConfig)\r\n } else {\r\n return this._getToolbarItem(item)\r\n }\r\n }\r\n _isAcceptableItem(widget, acceptableWidgetName) {\r\n return !widget || widget === acceptableWidgetName\r\n }\r\n _prepareButtonItemConfig(name) {\r\n var _ICON_MAP$name;\r\n var iconName = null !== (_ICON_MAP$name = ICON_MAP[name]) && void 0 !== _ICON_MAP$name ? _ICON_MAP$name : name;\r\n var buttonText = titleize(name);\r\n return {\r\n widget: \"dxButton\",\r\n name: name,\r\n options: {\r\n hint: localize(buttonText),\r\n text: localize(buttonText),\r\n icon: iconName.toLowerCase(),\r\n onClick: this._formatHandlers[name] || getDefaultClickHandler(this, name),\r\n stylingMode: \"text\"\r\n },\r\n showText: \"inMenu\"\r\n }\r\n }\r\n _prepareSelectItemConfig(item) {\r\n var {\r\n name: name,\r\n acceptedValues: acceptedValues\r\n } = item;\r\n return extend(true, {\r\n widget: \"dxSelectBox\",\r\n name: name,\r\n options: {\r\n stylingMode: \"filled\",\r\n dataSource: acceptedValues,\r\n displayExpr: value => localizeValue(value, name),\r\n placeholder: localize(name),\r\n onValueChanged: e => {\r\n if (!this._isReset) {\r\n this._hideAdaptiveMenu();\r\n applyFormat(this, [name, e.value, USER_ACTION], e.event);\r\n this._setValueSilent(e.component, e.value)\r\n }\r\n }\r\n }\r\n }, item)\r\n }\r\n _hideAdaptiveMenu() {\r\n if (this.toolbarInstance.option(\"overflowMenuVisible\")) {\r\n this.toolbarInstance.option(\"overflowMenuVisible\", false)\r\n }\r\n }\r\n _getToolbarItem(item) {\r\n var baseItem = {\r\n options: {\r\n onInitialized: e => {\r\n if (item.name) {\r\n e.component.$element().addClass(TOOLBAR_FORMAT_WIDGET_CLASS);\r\n e.component.$element().toggleClass(\"dx-\".concat(item.name.toLowerCase(), \"-format\"), !!item.name);\r\n this._toolbarWidgets.add(item.name, e.component)\r\n }\r\n },\r\n onDisposing: () => {\r\n this._toolbarWidgets.remove(item.name)\r\n }\r\n }\r\n };\r\n return extend(true, {\r\n location: \"before\",\r\n locateInMenu: \"auto\"\r\n }, this._getDefaultConfig(item.name), item, baseItem)\r\n }\r\n _getDefaultItemsConfig() {\r\n return {\r\n clear: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n undo: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n redo: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n insertRowAbove: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n insertRowBelow: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n insertHeaderRow: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n insertColumnLeft: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n insertColumnRight: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n deleteRow: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n deleteColumn: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n deleteTable: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n cellProperties: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n tableProperties: {\r\n options: {\r\n disabled: true\r\n }\r\n },\r\n separator: {\r\n template: (data, index, element) => {\r\n $(element).addClass(TOOLBAR_SEPARATOR_CLASS)\r\n },\r\n menuItemTemplate: (data, index, element) => {\r\n $(element).addClass(TOOLBAR_MENU_SEPARATOR_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n _getDefaultConfig(name) {\r\n return this._getDefaultItemsConfig()[name]\r\n }\r\n updateHistoryWidgets() {\r\n var historyModule = this.quill.history;\r\n if (!historyModule) {\r\n return\r\n }\r\n var {\r\n undo: undoOps,\r\n redo: redoOps\r\n } = historyModule.stack;\r\n this._updateManipulationWidget(this._toolbarWidgets.getByName(\"undo\"), Boolean(undoOps.length));\r\n this._updateManipulationWidget(this._toolbarWidgets.getByName(\"redo\"), Boolean(redoOps.length))\r\n }\r\n updateTableWidgets() {\r\n var table = this.quill.getModule(\"table\");\r\n if (!table) {\r\n return\r\n }\r\n var selection = this.quill.getSelection();\r\n var formats = selection && this.quill.getFormat(selection) || {};\r\n var isTableOperationsEnabled = this._tableFormats.some(format => Boolean(formats[format]));\r\n TABLE_OPERATIONS.forEach(operationName => {\r\n var isInsertTable = \"insertTable\" === operationName;\r\n var widget = this._toolbarWidgets.getByName(operationName);\r\n this._updateManipulationWidget(widget, isInsertTable ? !isTableOperationsEnabled : isTableOperationsEnabled)\r\n })\r\n }\r\n _updateManipulationWidget(widget, isOperationEnabled) {\r\n if (!widget) {\r\n return\r\n }\r\n widget.option(\"disabled\", !isOperationEnabled)\r\n }\r\n updateFormatWidgets(isResetRequired) {\r\n var selection = this.quill.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n var formats = this.quill.getFormat(selection);\r\n var hasFormats = !isEmptyObject(formats);\r\n if (!hasFormats || isResetRequired) {\r\n this._resetFormatWidgets()\r\n }\r\n for (var formatName in formats) {\r\n var widgetName = this._getFormatWidgetName(formatName, formats);\r\n var formatWidget = this._toolbarWidgets.getByName(widgetName) || this._toolbarWidgets.getByName(formatName);\r\n if (!formatWidget) {\r\n continue\r\n }\r\n this._markActiveFormatWidget(formatName, formatWidget, formats)\r\n }\r\n this._toggleClearFormatting(hasFormats || selection.length > 1)\r\n }\r\n _markActiveFormatWidget(name, widget, formats) {\r\n if (this._isColorFormat(name)) {\r\n this._updateColorWidget(name, formats[name])\r\n }\r\n if (\"value\" in widget.option()) {\r\n this._setValueSilent(widget, formats[name])\r\n } else {\r\n widget.$element().addClass(ACTIVE_FORMAT_CLASS);\r\n widget.$element().addClass(SELECTED_STATE_CLASS)\r\n }\r\n }\r\n _toggleClearFormatting(hasFormats) {\r\n var clearWidget = this._toolbarWidgets.getByName(\"clear\");\r\n if (clearWidget) {\r\n clearWidget.option(\"disabled\", !hasFormats)\r\n }\r\n }\r\n _isColorFormat(name) {\r\n return \"color\" === name || \"background\" === name\r\n }\r\n _updateColorWidget(name, color) {\r\n var formatWidget = this._toolbarWidgets.getByName(name);\r\n if (!formatWidget) {\r\n return\r\n }\r\n formatWidget.$element().find(\".\".concat(ICON_CLASS)).css(\"borderBottomColor\", color || \"transparent\")\r\n }\r\n _getFormatWidgetName(name, formats) {\r\n var widgetName;\r\n switch (name) {\r\n case \"align\":\r\n widgetName = name + titleize(formats[name]);\r\n break;\r\n case \"list\":\r\n widgetName = formats[name] + titleize(name);\r\n break;\r\n case \"code-block\":\r\n widgetName = \"codeBlock\";\r\n break;\r\n case \"script\":\r\n widgetName = formats[name] + name;\r\n break;\r\n case \"imageSrc\":\r\n widgetName = \"image\";\r\n break;\r\n default:\r\n widgetName = name\r\n }\r\n return widgetName\r\n }\r\n _setValueSilent(widget, value) {\r\n this._isReset = true;\r\n widget.option(\"value\", value);\r\n this._isReset = false\r\n }\r\n _resetFormatWidgets() {\r\n this._toolbarWidgets.each((name, widget) => {\r\n this._resetFormatWidget(name, widget)\r\n })\r\n }\r\n _resetFormatWidget(name, widget) {\r\n widget.$element().removeClass(ACTIVE_FORMAT_CLASS);\r\n widget.$element().removeClass(SELECTED_STATE_CLASS);\r\n if (this._isColorFormat(name)) {\r\n this._updateColorWidget(name)\r\n }\r\n if (\"clear\" === name) {\r\n widget.option(\"disabled\", true)\r\n }\r\n if (\"dxSelectBox\" === widget.NAME) {\r\n this._setValueSilent(widget, null)\r\n }\r\n }\r\n addClickHandler(name, handler) {\r\n this._formatHandlers[name] = handler;\r\n var formatWidget = this._toolbarWidgets.getByName(name);\r\n if (formatWidget && \"dxButton\" === formatWidget.NAME) {\r\n formatWidget.option(\"onClick\", handler)\r\n }\r\n }\r\n }\r\n}\r\nexport default ToolbarModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/dropImage.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport BaseModule from \"./base\";\r\nvar DropImageModule = BaseModule;\r\nif (Quill) {\r\n DropImageModule = class extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n var widgetName = this.editorInstance.NAME;\r\n eventsEngine.on(this.quill.root, addNamespace(\"drop\", widgetName), this._dropHandler.bind(this));\r\n eventsEngine.on(this.quill.root, addNamespace(\"paste\", widgetName), this._pasteHandler.bind(this))\r\n }\r\n _dropHandler(e) {\r\n var _dataTransfer$files;\r\n var dataTransfer = e.originalEvent.dataTransfer;\r\n var hasFiles = null === dataTransfer || void 0 === dataTransfer ? void 0 : null === (_dataTransfer$files = dataTransfer.files) || void 0 === _dataTransfer$files ? void 0 : _dataTransfer$files.length;\r\n this.saveValueChangeEvent(e);\r\n e.preventDefault();\r\n if (hasFiles) {\r\n this._getImage(dataTransfer.files, this._addImage.bind(this))\r\n }\r\n }\r\n _pasteHandler(e) {\r\n var _clipboardData$items;\r\n var {\r\n clipboardData: clipboardData\r\n } = e.originalEvent;\r\n this.saveValueChangeEvent(e);\r\n if (!clipboardData) {\r\n return\r\n }\r\n var hasDataItems = null === (_clipboardData$items = clipboardData.items) || void 0 === _clipboardData$items ? void 0 : _clipboardData$items.length;\r\n var isHtmlData = clipboardData.getData(\"text/html\");\r\n if (!isHtmlData && hasDataItems) {\r\n this._getImage(clipboardData.items, imageData => {\r\n if (browser.mozilla) {\r\n return\r\n }\r\n this._addImage(imageData)\r\n })\r\n }\r\n }\r\n _isImage(file) {\r\n return !!file.type.match(/^image\\/(a?png|bmp|gif|p?jpe?g|svg|vnd\\.microsoft\\.icon|webp)/i)\r\n }\r\n _getImage(files, callback) {\r\n var window = getWindow();\r\n each(files, (index, file) => {\r\n if (!this._isImage(file)) {\r\n return\r\n }\r\n var reader = new window.FileReader;\r\n reader.onload = _ref => {\r\n var {\r\n target: target\r\n } = _ref;\r\n callback(target.result)\r\n };\r\n var readableFile = file.getAsFile ? file.getAsFile() : file;\r\n if (readableFile instanceof window.Blob) {\r\n reader.readAsDataURL(readableFile)\r\n }\r\n })\r\n }\r\n _addImage(data) {\r\n var selection = this.quill.getSelection();\r\n var pasteIndex = selection ? selection.index : this.quill.getLength();\r\n this.quill.insertEmbed(pasteIndex, \"extendedImage\", data, \"user\")\r\n }\r\n }\r\n}\r\nexport default DropImageModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/popup.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport Quill from \"devextreme-quill\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport BaseModule from \"./base\";\r\nimport Popup from \"../../popup\";\r\nimport List from \"../../list_light\";\r\nvar MODULE_NAMESPACE = \"dxHtmlEditorPopupModule\";\r\nvar ListPopupModule = BaseModule;\r\nif (Quill) {\r\n var SUGGESTION_LIST_CLASS = \"dx-suggestion-list\";\r\n var SUGGESTION_LIST_WRAPPER_CLASS = \"dx-suggestion-list-wrapper\";\r\n var MIN_HEIGHT = 100;\r\n ListPopupModule = class extends BaseModule {\r\n _getDefaultOptions() {\r\n return {\r\n dataSource: null\r\n }\r\n }\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.options = extend({}, this._getDefaultOptions(), options);\r\n this._popup = this.renderPopup();\r\n this._popup.$wrapper().addClass(SUGGESTION_LIST_WRAPPER_CLASS);\r\n this._renderPreventFocusOut()\r\n }\r\n renderList($container, options) {\r\n var $list = $(\"<div>\").addClass(SUGGESTION_LIST_CLASS).appendTo($container);\r\n this._list = this.options.editorInstance._createComponent($list, List, options)\r\n }\r\n renderPopup() {\r\n var editorInstance = this.options.editorInstance;\r\n var $container = $(\"<div>\").appendTo(editorInstance.$element());\r\n var popupConfig = this._getPopupConfig();\r\n return editorInstance._createComponent($container, Popup, popupConfig)\r\n }\r\n _getPopupConfig() {\r\n return {\r\n contentTemplate: contentElem => {\r\n var listConfig = this._getListConfig(this.options);\r\n this.renderList($(contentElem), listConfig)\r\n },\r\n deferRendering: false,\r\n onShown: () => {\r\n this._list.focus()\r\n },\r\n onHidden: () => {\r\n this._list.unselectAll();\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n fullScreen: false,\r\n maxHeight: this.maxHeight\r\n }\r\n }\r\n _getListConfig(options) {\r\n return {\r\n dataSource: options.dataSource,\r\n onSelectionChanged: this.selectionChangedHandler.bind(this),\r\n selectionMode: \"single\",\r\n pageLoadMode: \"scrollBottom\"\r\n }\r\n }\r\n get maxHeight() {\r\n var window = getWindow();\r\n var windowHeight = window && getHeight(window) || 0;\r\n return Math.max(MIN_HEIGHT, .5 * windowHeight)\r\n }\r\n selectionChangedHandler(e) {\r\n if (this._popup.option(\"visible\")) {\r\n this._popup.hide();\r\n this.insertEmbedContent(e)\r\n }\r\n }\r\n _renderPreventFocusOut() {\r\n var eventName = addNamespace(\"mousedown\", MODULE_NAMESPACE);\r\n eventsEngine.on(this._popup.$wrapper(), eventName, e => {\r\n e.preventDefault()\r\n })\r\n }\r\n insertEmbedContent(selectionChangedEvent) {}\r\n showPopup() {\r\n this._popup && this._popup.show()\r\n }\r\n savePosition(position) {\r\n this.caretPosition = position\r\n }\r\n getPosition() {\r\n return this.caretPosition\r\n }\r\n }\r\n}\r\nexport default ListPopupModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/variable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar Variable = {};\r\nif (Quill) {\r\n var Embed = Quill.import(\"blots/embed\");\r\n var VARIABLE_CLASS = \"dx-variable\";\r\n Variable = class extends Embed {\r\n static create(data) {\r\n var node = super.create();\r\n var startEscapeChar;\r\n var endEscapeChar;\r\n var text = data.value;\r\n if (Array.isArray(data.escapeChar)) {\r\n startEscapeChar = ensureDefined(data.escapeChar[0], \"\");\r\n endEscapeChar = ensureDefined(data.escapeChar[1], \"\")\r\n } else {\r\n startEscapeChar = endEscapeChar = data.escapeChar\r\n }\r\n node.innerText = startEscapeChar + text + endEscapeChar;\r\n node.dataset.varStartEscChar = startEscapeChar;\r\n node.dataset.varEndEscChar = endEscapeChar;\r\n node.dataset.varValue = data.value;\r\n return node\r\n }\r\n static value(node) {\r\n return extend({}, {\r\n value: node.dataset.varValue,\r\n escapeChar: [node.dataset.varStartEscChar || \"\", node.dataset.varEndEscChar || \"\"]\r\n })\r\n }\r\n };\r\n Variable.blotName = \"variable\";\r\n Variable.tagName = \"span\";\r\n Variable.className = VARIABLE_CLASS\r\n}\r\nexport default Variable;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/variables.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport PopupModule from \"./popup\";\r\nimport BaseModule from \"./base\";\r\nimport Variable from \"../formats/variable\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar VariableModule = BaseModule;\r\nif (Quill) {\r\n var VARIABLE_FORMAT_CLASS = \"dx-variable-format\";\r\n var ACTIVE_FORMAT_CLASS = \"dx-format-active\";\r\n var SELECTED_STATE_CLASS = \"dx-state-selected\";\r\n Quill.register({\r\n \"formats/variable\": Variable\r\n }, true);\r\n VariableModule = class extends PopupModule {\r\n _getDefaultOptions() {\r\n var baseConfig = super._getDefaultOptions();\r\n return extend(baseConfig, {\r\n escapeChar: \"\"\r\n })\r\n }\r\n constructor(quill, options) {\r\n super(quill, options);\r\n var toolbar = quill.getModule(\"toolbar\");\r\n if (toolbar) {\r\n toolbar.addClickHandler(\"variable\", this.showPopup.bind(this))\r\n }\r\n quill.keyboard.addBinding({\r\n key: \"P\",\r\n altKey: true\r\n }, this.showPopup.bind(this));\r\n this._popup.on(\"shown\", e => {\r\n var $ofElement = $(e.component.option(\"position\").of);\r\n if ($ofElement.hasClass(VARIABLE_FORMAT_CLASS)) {\r\n $ofElement.addClass(ACTIVE_FORMAT_CLASS);\r\n $ofElement.addClass(SELECTED_STATE_CLASS)\r\n }\r\n })\r\n }\r\n showPopup(event) {\r\n var selection = this.quill.getSelection(true);\r\n var position = selection ? selection.index : this.quill.getLength();\r\n this.savePosition(position);\r\n this._resetPopupPosition(event, position);\r\n super.showPopup()\r\n }\r\n _resetPopupPosition(event, position) {\r\n if (event && event.element) {\r\n this._popup.option(\"position\", {\r\n of: event.element,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit\"\r\n })\r\n } else {\r\n var mentionBounds = this.quill.getBounds(position);\r\n var rootRect = getBoundingRect(this.quill.root);\r\n this._popup.option(\"position\", {\r\n of: this.quill.root,\r\n offset: {\r\n h: mentionBounds.left,\r\n v: mentionBounds.bottom - rootRect.height\r\n },\r\n my: \"top center\",\r\n at: \"bottom left\",\r\n collision: \"fit flip\"\r\n })\r\n }\r\n }\r\n insertEmbedContent(selectionChangedEvent) {\r\n var caretPosition = this.getPosition();\r\n var selectedItem = selectionChangedEvent.component.option(\"selectedItem\");\r\n var variableData = extend({}, {\r\n value: selectedItem,\r\n escapeChar: this.options.escapeChar\r\n });\r\n setTimeout(function() {\r\n this.quill.insertEmbed(caretPosition, \"variable\", variableData);\r\n this.quill.setSelection(caretPosition + 1)\r\n }.bind(this))\r\n }\r\n }\r\n}\r\nexport default VariableModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/resizing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as ClickEvent\r\n} from \"../../../events/click\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport devices from \"../../../core/devices\";\r\nimport Resizable from \"../../resizable\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport Quill from \"devextreme-quill\";\r\nimport BaseModule from \"./base\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nvar DX_RESIZE_FRAME_CLASS = \"dx-resize-frame\";\r\nvar DX_TOUCH_DEVICE_CLASS = \"dx-touch-device\";\r\nvar MODULE_NAMESPACE = \"dxHtmlResizingModule\";\r\nvar KEYDOWN_EVENT = addNamespace(\"keydown\", MODULE_NAMESPACE);\r\nvar SCROLL_EVENT = addNamespace(\"scroll\", MODULE_NAMESPACE);\r\nvar MOUSEDOWN_EVENT = addNamespace(\"mousedown\", MODULE_NAMESPACE);\r\nvar FRAME_PADDING = 1;\r\nexport default class ResizingModule extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.allowedTargets = options.allowedTargets || [\"image\"];\r\n this.enabled = !!options.enabled;\r\n this._hideFrameWithContext = this.hideFrame.bind(this);\r\n this._framePositionChangedHandler = this._prepareFramePositionChangedHandler();\r\n if (this.enabled) {\r\n this._attachEvents();\r\n this._createResizeFrame()\r\n }\r\n }\r\n _attachEvents() {\r\n eventsEngine.on(this.quill.root, addNamespace(ClickEvent, MODULE_NAMESPACE), this._clickHandler.bind(this));\r\n eventsEngine.on(this.quill.root, SCROLL_EVENT, this._framePositionChangedHandler);\r\n this.editorInstance.on(\"focusOut\", this._hideFrameWithContext);\r\n this.quill.on(\"text-change\", this._framePositionChangedHandler)\r\n }\r\n _detachEvents() {\r\n eventsEngine.off(this.quill.root, MODULE_NAMESPACE);\r\n this.editorInstance.off(\"focusOut\", this._hideFrameWithContext);\r\n this.quill.off(\"text-change\", this._framePositionChangedHandler)\r\n }\r\n _clickHandler(e) {\r\n if (this._isAllowedTarget(e.target)) {\r\n if (this._$target === e.target) {\r\n return\r\n }\r\n this._$target = e.target;\r\n var $target = $(this._$target);\r\n var minWidth = Math.max(getOuterWidth($target) - getWidth($target), this.resizable.option(\"minWidth\"));\r\n var minHeight = Math.max(getOuterHeight($target) - getHeight($target), this.resizable.option(\"minHeight\"));\r\n this.resizable.option({\r\n minWidth: minWidth,\r\n minHeight: minHeight\r\n });\r\n this.updateFramePosition();\r\n this.showFrame();\r\n this._adjustSelection()\r\n } else if (this._$target) {\r\n this.hideFrame()\r\n }\r\n }\r\n _prepareFramePositionChangedHandler(e) {\r\n return () => {\r\n if (this._$target) {\r\n this.updateFramePosition()\r\n }\r\n }\r\n }\r\n _adjustSelection() {\r\n if (!this.quill.getSelection()) {\r\n this.quill.setSelection(0, 0)\r\n }\r\n }\r\n _isAllowedTarget(targetElement) {\r\n return this._isImage(targetElement)\r\n }\r\n _isImage(targetElement) {\r\n return -1 !== this.allowedTargets.indexOf(\"image\") && \"IMG\" === targetElement.tagName.toUpperCase()\r\n }\r\n showFrame() {\r\n this._$resizeFrame.show();\r\n eventsEngine.on(this.quill.root, KEYDOWN_EVENT, this._handleFrameKeyDown.bind(this))\r\n }\r\n _handleFrameKeyDown(e) {\r\n var keyName = normalizeKeyName(e);\r\n if (\"del\" === keyName || \"backspace\" === keyName) {\r\n this._deleteImage()\r\n }\r\n this.hideFrame()\r\n }\r\n hideFrame() {\r\n this._$target = null;\r\n this._$resizeFrame.hide();\r\n eventsEngine.off(this.quill.root, KEYDOWN_EVENT)\r\n }\r\n updateFramePosition() {\r\n var {\r\n height: height,\r\n width: width,\r\n top: targetTop,\r\n left: targetLeft\r\n } = getBoundingRect(this._$target);\r\n var {\r\n top: containerTop,\r\n left: containerLeft\r\n } = getBoundingRect(this.quill.root);\r\n var borderWidth = this._getBorderWidth();\r\n this._$resizeFrame.css({\r\n height: height,\r\n width: width,\r\n padding: FRAME_PADDING,\r\n top: targetTop - containerTop - borderWidth - FRAME_PADDING,\r\n left: targetLeft - containerLeft - borderWidth - FRAME_PADDING\r\n });\r\n move(this._$resizeFrame, {\r\n left: 0,\r\n top: 0\r\n })\r\n }\r\n _getBorderWidth() {\r\n return parseInt(this._$resizeFrame.css(\"borderTopWidth\"))\r\n }\r\n _createResizeFrame() {\r\n if (this._$resizeFrame) {\r\n return\r\n }\r\n var {\r\n deviceType: deviceType\r\n } = devices.current();\r\n this._$resizeFrame = $(\"<div>\").addClass(DX_RESIZE_FRAME_CLASS).toggleClass(DX_TOUCH_DEVICE_CLASS, \"desktop\" !== deviceType).appendTo(this.editorInstance._getQuillContainer()).hide();\r\n eventsEngine.on(this._$resizeFrame, MOUSEDOWN_EVENT, e => {\r\n e.preventDefault()\r\n });\r\n this.resizable = this.editorInstance._createComponent(this._$resizeFrame, Resizable, {\r\n onResize: e => {\r\n if (!this._$target) {\r\n return\r\n }\r\n $(this._$target).attr({\r\n height: e.height,\r\n width: e.width\r\n });\r\n this.updateFramePosition()\r\n }\r\n })\r\n }\r\n _deleteImage() {\r\n if (this._isAllowedTarget(this._$target)) {\r\n var _Quill$find;\r\n null === (_Quill$find = Quill.find(this._$target)) || void 0 === _Quill$find ? void 0 : _Quill$find.deleteAt(0)\r\n }\r\n }\r\n option(option, value) {\r\n if (\"mediaResizing\" === option) {\r\n this.handleOptionChangeValue(value);\r\n return\r\n }\r\n if (\"enabled\" === option) {\r\n this.enabled = value;\r\n value ? this._attachEvents() : this._detachEvents()\r\n } else if (\"allowedTargets\" === option && Array.isArray(value)) {\r\n this.allowedTargets = value\r\n }\r\n }\r\n clean() {\r\n this._detachEvents();\r\n this._$resizeFrame.remove();\r\n this._$resizeFrame = void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/tableResizing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport _windowResizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport BaseModule from \"./base\";\r\nimport Draggable from \"../../draggable\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n setLineElementsFormat,\r\n getLineElements,\r\n getAutoSizedElements,\r\n getColumnElements,\r\n unfixTableWidth\r\n} from \"../utils/table_helper\";\r\nvar DX_COLUMN_RESIZE_FRAME_CLASS = \"dx-table-resize-frame\";\r\nvar DX_COLUMN_RESIZER_CLASS = \"dx-htmleditor-column-resizer\";\r\nvar DX_ROW_RESIZER_CLASS = \"dx-htmleditor-row-resizer\";\r\nvar DEFAULTS = {\r\n minColumnWidth: 40,\r\n minRowHeight: 24\r\n};\r\nvar DRAGGABLE_ELEMENT_OFFSET = 2;\r\nvar ROUGH_OFFSET = 3;\r\nvar MODULE_NAMESPACE = \"dxHtmlTableResizingModule\";\r\nvar POINTERDOWN_EVENT = addNamespace(\"dxpointerdown\", MODULE_NAMESPACE);\r\nvar SCROLL_EVENT = addNamespace(\"scroll\", MODULE_NAMESPACE);\r\nexport default class TableResizingModule extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.enabled = !!options.enabled;\r\n this._tableResizeFrames = [];\r\n this._minColumnWidth = this._minSizeLimit(\"minColumnWidth\", options.minColumnWidth);\r\n this._minRowHeight = this._minSizeLimit(\"minRowHeight\", options.minRowHeight);\r\n this._quillContainer = this.editorInstance._getQuillContainer();\r\n this._tableData = [];\r\n if (this.enabled) {\r\n this._applyResizing()\r\n }\r\n }\r\n _applyResizing(forcedStart) {\r\n if (forcedStart) {\r\n this._applyResizingImpl()\r\n } else {\r\n this.editorInstance.addContentInitializedCallback(this._applyResizingImpl.bind(this))\r\n }\r\n this.addCleanCallback(this.clean.bind(this));\r\n this._resizeHandlerWithContext = _windowResizeCallbacks.add(this._resizeHandler.bind(this))\r\n }\r\n _minSizeLimit(propertyName, newValue) {\r\n return isDefined(newValue) ? Math.max(newValue, 0) : DEFAULTS[propertyName]\r\n }\r\n _applyResizingImpl() {\r\n var $tables = this._findTables();\r\n if ($tables.length) {\r\n this._fixTablesWidths($tables);\r\n this._createResizeFrames($tables);\r\n this._updateFramesPositions();\r\n this._updateFramesSeparators()\r\n }\r\n this._attachEvents()\r\n }\r\n _attachEvents() {\r\n eventsEngine.on(this.editorInstance._getContent(), SCROLL_EVENT, this._updateFramesPositions.bind(this));\r\n this.quill.on(\"text-change\", this._getQuillTextChangeHandler())\r\n }\r\n _detachEvents() {\r\n eventsEngine.off(this.editorInstance._getContent(), MODULE_NAMESPACE);\r\n this.quill.off(\"text-change\", this._quillTextChangeHandler)\r\n }\r\n _getQuillTextChangeHandler(delta, oldContent, source) {\r\n return (delta, oldContent, source) => {\r\n if (this._isTableChanging()) {\r\n var $tables = this._findTables();\r\n this._removeResizeFrames();\r\n if (\"api\" === source) {\r\n this._fixTablesWidths($tables)\r\n }\r\n this._updateTablesColumnsWidth($tables);\r\n this._createResizeFrames($tables);\r\n this._updateFramesPositions();\r\n this._updateFramesSeparators()\r\n } else {\r\n this._updateFramesPositions();\r\n if (!this._isDragging) {\r\n this._updateFramesSeparators()\r\n }\r\n }\r\n }\r\n }\r\n _getFrameForTable($table) {\r\n var _this$_framesForTable;\r\n return null === (_this$_framesForTable = this._framesForTables) || void 0 === _this$_framesForTable ? void 0 : _this$_framesForTable.get($table.get(0))\r\n }\r\n _resizeHandler() {\r\n this._windowResizeTimeout = setTimeout(() => {\r\n var $tables = this._findTables();\r\n each($tables, (index, table) => {\r\n var $table = $(table);\r\n var frame = this._tableResizeFrames[index];\r\n var actualTableWidth = getOuterWidth($table);\r\n var lastTableWidth = this._tableLastWidth(frame);\r\n if (Math.abs(actualTableWidth - lastTableWidth) > 1) {\r\n this._tableLastWidth(frame, actualTableWidth);\r\n this._updateColumnsWidth($table, index)\r\n }\r\n });\r\n this._updateFramesPositions();\r\n this._updateFramesSeparators()\r\n })\r\n }\r\n _findTables() {\r\n return $(this._quillContainer).find(\"table\")\r\n }\r\n _getWidthStyleValue($element) {\r\n var styleValue = $element[0].style.width;\r\n return \"\" !== styleValue ? parseInt(styleValue) : void 0\r\n }\r\n _tableLastWidth(frame, newValue) {\r\n if (isDefined(newValue)) {\r\n frame.lastWidth = newValue\r\n } else {\r\n return null === frame || void 0 === frame ? void 0 : frame.lastWidth\r\n }\r\n }\r\n _fixTablesWidths($tables) {\r\n each($tables, (index, table) => {\r\n var $table = $(table);\r\n var $columnElements = this._getTableDeterminantElements($table, \"horizontal\");\r\n if (!this._tableResizeFrames[index]) {\r\n this._tableResizeFrames[index] = {\r\n lastWidth: void 0\r\n }\r\n }\r\n var frame = this._getFrameForTable($table);\r\n if (!frame) {\r\n this._tableResizeFrames.push({\r\n $table: $table\r\n })\r\n }\r\n if (0 === getAutoSizedElements($table).length) {\r\n var _this$_tableLastWidth;\r\n var {\r\n columnsSum: columnsSum\r\n } = this._getColumnElementsSum($columnElements);\r\n unfixTableWidth($table, {\r\n quill: this.quill\r\n });\r\n var tableWidth = null !== (_this$_tableLastWidth = this._tableLastWidth(frame)) && void 0 !== _this$_tableLastWidth ? _this$_tableLastWidth : getOuterWidth($table);\r\n if (frame) {\r\n this._tableLastWidth(frame, Math.max(columnsSum, tableWidth))\r\n }\r\n }\r\n })\r\n }\r\n _createResizeFrames($tables) {\r\n this._framesForTables = new Map;\r\n $tables.each((index, table) => {\r\n var _this$_tableResizeFra;\r\n var $table = $(table);\r\n var $lastTable = null === (_this$_tableResizeFra = this._tableResizeFrames[index]) || void 0 === _this$_tableResizeFra ? void 0 : _this$_tableResizeFra.$table;\r\n var $tableLastWidth = this._tableResizeFrames[index].lastWidth;\r\n this._tableResizeFrames[index] = {\r\n $frame: this._createTableResizeFrame(table),\r\n $table: $table,\r\n index: index,\r\n lastWidth: $lastTable && table === $lastTable.get(0) ? $tableLastWidth : void 0,\r\n columnsCount: this._getTableDeterminantElements($table, \"horizontal\").length,\r\n rowsCount: this._getTableDeterminantElements($table, \"vertical\").length\r\n };\r\n this._framesForTables.set(table, this._tableResizeFrames[index])\r\n });\r\n this._tableResizeFrames.length = $tables.length\r\n }\r\n _isTableChanging() {\r\n var $tables = this._findTables();\r\n var result = false;\r\n if ($tables.length !== this._tableResizeFrames.length) {\r\n result = true\r\n } else {\r\n each($tables, (index, table) => {\r\n var $table = $(table);\r\n var frame = this._tableResizeFrames[index];\r\n var isColumnsCountChanged = (null === frame || void 0 === frame ? void 0 : frame.columnsCount) !== this._getTableDeterminantElements($table, \"horizontal\").length;\r\n var isRowCountChanged = (null === frame || void 0 === frame ? void 0 : frame.rowsCount) !== this._getTableDeterminantElements($table, \"vertical\").length;\r\n if (isColumnsCountChanged || isRowCountChanged) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n _removeResizeFrames(clearArray) {\r\n var _this$_framesForTable2;\r\n each(this._tableResizeFrames, (index, resizeFrame) => {\r\n if (resizeFrame.$frame) {\r\n var _resizeFrame$$frame;\r\n var resizerElementsSelector = \".\".concat(DX_COLUMN_RESIZER_CLASS, \", .\").concat(DX_ROW_RESIZER_CLASS);\r\n this._detachSeparatorEvents(null === (_resizeFrame$$frame = resizeFrame.$frame) || void 0 === _resizeFrame$$frame ? void 0 : _resizeFrame$$frame.find(resizerElementsSelector));\r\n resizeFrame.$frame.remove()\r\n }\r\n });\r\n null === (_this$_framesForTable2 = this._framesForTables) || void 0 === _this$_framesForTable2 ? void 0 : _this$_framesForTable2.clear();\r\n if (clearArray) {\r\n this._tableResizeFrames = []\r\n }\r\n }\r\n _detachSeparatorEvents($lineSeparators) {\r\n $lineSeparators.each((i, $lineSeparator) => {\r\n eventsEngine.off($lineSeparator, POINTERDOWN_EVENT)\r\n })\r\n }\r\n _createTableResizeFrame() {\r\n return $(\"<div>\").addClass(DX_COLUMN_RESIZE_FRAME_CLASS).appendTo(this._quillContainer)\r\n }\r\n _updateFramesPositions() {\r\n each(this._tableResizeFrames, (index, tableResizeFrame) => {\r\n this._updateFramePosition(tableResizeFrame.$table, tableResizeFrame.$frame)\r\n })\r\n }\r\n _updateFramePosition($table, $frame) {\r\n var {\r\n height: height,\r\n width: width,\r\n top: targetTop,\r\n left: targetLeft\r\n } = getBoundingRect($table.get(0));\r\n var {\r\n top: containerTop,\r\n left: containerLeft\r\n } = getBoundingRect(this.quill.root);\r\n $frame.css({\r\n height: height,\r\n width: width,\r\n top: targetTop - containerTop,\r\n left: targetLeft - containerLeft\r\n });\r\n move($frame, {\r\n left: 0,\r\n top: 0\r\n })\r\n }\r\n _updateFramesSeparators(direction) {\r\n each(this._tableResizeFrames, (index, frame) => {\r\n if (direction) {\r\n this._updateFrameSeparators(frame, direction)\r\n } else {\r\n this._updateFrameSeparators(frame, \"vertical\");\r\n this._updateFrameSeparators(frame, \"horizontal\")\r\n }\r\n })\r\n }\r\n _isDraggable($element) {\r\n return $element.hasClass(\"dx-draggable\") && $element.is(\":visible\")\r\n }\r\n _removeDraggable($currentLineSeparator, lineResizerClass) {\r\n if (this._isDraggable($currentLineSeparator)) {\r\n var draggable = $($currentLineSeparator).dxDraggable(\"instance\");\r\n draggable.dispose();\r\n $($currentLineSeparator).addClass(lineResizerClass)\r\n }\r\n }\r\n _getDirectionInfo(direction) {\r\n if (\"vertical\" === direction) {\r\n return {\r\n lineResizerClass: DX_ROW_RESIZER_CLASS,\r\n sizeFunction: x => getOuterHeight(x),\r\n positionCoordinate: \"top\",\r\n positionStyleProperty: \"height\",\r\n positionCoordinateName: \"y\"\r\n }\r\n } else {\r\n return {\r\n lineResizerClass: DX_COLUMN_RESIZER_CLASS,\r\n sizeFunction: x => getOuterWidth(x),\r\n positionCoordinate: this.editorInstance.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n positionStyleProperty: \"width\",\r\n positionCoordinateName: \"x\"\r\n }\r\n }\r\n }\r\n _getSize($element, directionInfo) {\r\n return directionInfo.sizeFunction($element)\r\n }\r\n _updateFrameSeparators(frame, direction) {\r\n var $determinantElements = this._getTableDeterminantElements(frame.$table, direction);\r\n var determinantElementsCount = $determinantElements.length;\r\n var determinantElementsSeparatorsCount = determinantElementsCount - 1;\r\n var directionInfo = this._getDirectionInfo(direction);\r\n var lineSeparators = frame.$frame.find(\".\".concat(directionInfo.lineResizerClass));\r\n var styleOptions = {\r\n transform: \"none\"\r\n };\r\n var currentPosition = 0;\r\n for (var i = 0; i <= determinantElementsSeparatorsCount; i++) {\r\n currentPosition += this._getSize($determinantElements.eq(i), directionInfo);\r\n if (!isDefined(lineSeparators[i])) {\r\n lineSeparators[i] = $(\"<div>\").addClass(directionInfo.lineResizerClass).appendTo(frame.$frame).get(0)\r\n }\r\n var $currentLineSeparator = $(lineSeparators[i]);\r\n this._removeDraggable($currentLineSeparator, directionInfo.lineResizerClass);\r\n styleOptions[directionInfo.positionCoordinate] = currentPosition - DRAGGABLE_ELEMENT_OFFSET;\r\n $($currentLineSeparator).css(styleOptions);\r\n var attachSeparatorData = {\r\n lineSeparator: lineSeparators[i],\r\n index: i,\r\n $determinantElements: $determinantElements,\r\n frame: frame,\r\n direction: direction\r\n };\r\n this._attachColumnSeparatorEvents(attachSeparatorData)\r\n }\r\n }\r\n _getTableDeterminantElements($table, direction) {\r\n if (\"vertical\" === direction) {\r\n return $table.find(\"th:first-child, td:first-child\")\r\n } else {\r\n return getColumnElements($table)\r\n }\r\n }\r\n _attachColumnSeparatorEvents(options) {\r\n eventsEngine.on(options.lineSeparator, POINTERDOWN_EVENT, () => {\r\n this._createDraggableElement(options)\r\n })\r\n }\r\n _dragStartHandler(_ref) {\r\n var {\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame,\r\n direction: direction,\r\n lineSeparator: lineSeparator\r\n } = _ref;\r\n var directionInfo = this._getDirectionInfo(direction);\r\n this._isDragging = true;\r\n this._fixColumnsWidth(frame.$table);\r\n this._startLineSize = parseInt(this._getSize($($determinantElements[index]), directionInfo));\r\n this._startTableWidth = getOuterWidth(frame.$table);\r\n this._startLineSeparatorPosition = parseInt($(lineSeparator).css(directionInfo.positionCoordinate));\r\n this._nextLineSize = 0;\r\n if ($determinantElements[index + 1]) {\r\n this._nextLineSize = parseInt(this._getSize($($determinantElements[index + 1]), directionInfo))\r\n } else if (\"horizontal\" === direction) {\r\n unfixTableWidth(frame.$table, {\r\n quill: this.quill\r\n })\r\n }\r\n }\r\n _shouldRevertOffset(direction) {\r\n return \"horizontal\" === direction && this.editorInstance.option(\"rtlEnabled\")\r\n }\r\n _isNextColumnWidthEnough(nextColumnNewSize, $nextColumnElement, eventOffset) {\r\n if (!this._nextLineSize) {\r\n return true\r\n } else if (nextColumnNewSize >= this._minColumnWidth) {\r\n var isWidthIncreased = this._nextColumnOffsetLimit ? eventOffset < this._nextColumnOffsetLimit : eventOffset < 0;\r\n var isWidthLimited = Math.abs(this._getWidthStyleValue($nextColumnElement) - getOuterWidth($nextColumnElement)) > ROUGH_OFFSET;\r\n return isWidthIncreased || !isWidthLimited\r\n }\r\n return false\r\n }\r\n _shouldSetNextColumnWidth(nextColumnNewSize) {\r\n return this._nextLineSize && nextColumnNewSize > 0\r\n }\r\n _horizontalDragHandler(_ref2) {\r\n var {\r\n currentLineNewSize: currentLineNewSize,\r\n directionInfo: directionInfo,\r\n eventOffset: eventOffset,\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame\r\n } = _ref2;\r\n var nextColumnNewSize = this._nextLineSize && this._nextLineSize - eventOffset;\r\n var isCurrentColumnWidthEnough = currentLineNewSize >= this._minColumnWidth;\r\n var $lineElements = getLineElements(frame.$table, index);\r\n var $nextLineElements = getLineElements(frame.$table, index + 1);\r\n var realWidthDiff = getOuterWidth($lineElements.eq(0)) - currentLineNewSize;\r\n if (isCurrentColumnWidthEnough) {\r\n if (this._isNextColumnWidthEnough(nextColumnNewSize, $determinantElements.eq(index + 1), eventOffset)) {\r\n setLineElementsFormat(this, {\r\n elements: $lineElements,\r\n property: directionInfo.positionStyleProperty,\r\n value: currentLineNewSize\r\n });\r\n if (this._shouldSetNextColumnWidth(nextColumnNewSize)) {\r\n setLineElementsFormat(this, {\r\n elements: $nextLineElements,\r\n property: directionInfo.positionStyleProperty,\r\n value: nextColumnNewSize\r\n })\r\n }\r\n var isTableWidthChanged = Math.abs(this._startTableWidth - getOuterWidth(frame.$table)) < ROUGH_OFFSET;\r\n var shouldRevertNewValue = Math.abs(realWidthDiff) > ROUGH_OFFSET || !this._nextLineSize && isTableWidthChanged;\r\n if (shouldRevertNewValue) {\r\n setLineElementsFormat(this, {\r\n elements: $lineElements,\r\n property: directionInfo.positionStyleProperty,\r\n value: getOuterWidth($lineElements.eq(0))\r\n });\r\n nextColumnNewSize += currentLineNewSize - getOuterWidth($lineElements.eq(0));\r\n if (this._shouldSetNextColumnWidth(nextColumnNewSize)) {\r\n setLineElementsFormat(this, {\r\n elements: $nextLineElements,\r\n property: directionInfo.positionStyleProperty,\r\n value: nextColumnNewSize\r\n })\r\n }\r\n }\r\n } else {\r\n this._nextColumnOffsetLimit = this._nextColumnOffsetLimit || eventOffset\r\n }\r\n }\r\n this._$highlightedElement.css(directionInfo.positionCoordinate, this._startLineSeparatorPosition + eventOffset + realWidthDiff + \"px\")\r\n }\r\n _verticalDragHandler(_ref3) {\r\n var {\r\n currentLineNewSize: currentLineNewSize,\r\n directionInfo: directionInfo,\r\n eventOffset: eventOffset,\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame\r\n } = _ref3;\r\n var newHeight = Math.max(currentLineNewSize, this._minRowHeight);\r\n var $lineElements = getLineElements(frame.$table, index, \"vertical\");\r\n setLineElementsFormat(this, {\r\n elements: $lineElements,\r\n property: directionInfo.positionStyleProperty,\r\n value: newHeight\r\n });\r\n var rowHeightDiff = getOuterHeight($determinantElements.eq(index)) - currentLineNewSize;\r\n this._$highlightedElement.css(directionInfo.positionCoordinate, this._startLineSeparatorPosition + eventOffset + rowHeightDiff + \"px\")\r\n }\r\n _dragMoveHandler(event, _ref4) {\r\n var {\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame,\r\n direction: direction\r\n } = _ref4;\r\n var directionInfo = this._getDirectionInfo(direction);\r\n var eventOffset = event.offset[directionInfo.positionCoordinateName];\r\n this.editorInstance._saveValueChangeEvent(event);\r\n if (this._shouldRevertOffset(direction)) {\r\n eventOffset = -eventOffset\r\n }\r\n var currentLineNewSize = this._startLineSize + eventOffset;\r\n if (\"horizontal\" === direction) {\r\n this._horizontalDragHandler({\r\n currentLineNewSize: currentLineNewSize,\r\n directionInfo: directionInfo,\r\n eventOffset: eventOffset,\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame\r\n })\r\n } else {\r\n this._verticalDragHandler({\r\n currentLineNewSize: currentLineNewSize,\r\n directionInfo: directionInfo,\r\n eventOffset: eventOffset,\r\n $determinantElements: $determinantElements,\r\n index: index,\r\n frame: frame\r\n })\r\n }\r\n this._updateFramePosition(frame.$table, frame.$frame)\r\n }\r\n _dragEndHandler(options) {\r\n var _this$_$highlightedEl;\r\n null === (_this$_$highlightedEl = this._$highlightedElement) || void 0 === _this$_$highlightedEl ? void 0 : _this$_$highlightedEl.remove();\r\n this._isDragging = void 0;\r\n this._nextColumnOffsetLimit = void 0;\r\n this._tableLastWidth(options.frame, getOuterWidth(options.frame.$table));\r\n this._updateFramesPositions();\r\n this._updateFramesSeparators()\r\n }\r\n _isLastColumnResizing(_ref5) {\r\n var {\r\n $determinantElements: $determinantElements,\r\n index: index\r\n } = _ref5;\r\n return !isDefined($determinantElements[index + 1])\r\n }\r\n _getBoundaryConfig(options) {\r\n var result = {};\r\n if (\"vertical\" === options.direction) {\r\n result.boundary = options.frame.$table;\r\n result.boundOffset = {\r\n bottom: hasWindow() ? -getHeight(getWindow()) : -getOuterHeight(this._quillContainer),\r\n top: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n } else if (!this._isLastColumnResizing(options)) {\r\n result.boundary = options.frame.$table\r\n } else {\r\n var $content = this.editorInstance._getContent();\r\n result.boundary = $content;\r\n result.boundOffset = {\r\n bottom: 0,\r\n top: 0,\r\n left: $content.css(\"paddingLeft\"),\r\n right: $content.css(\"paddingRight\")\r\n }\r\n }\r\n return result\r\n }\r\n _createDraggableElement(options) {\r\n var _this$_$highlightedEl2;\r\n var boundaryConfig = this._getBoundaryConfig(options);\r\n var directionClass = \"vertical\" === options.direction ? \"dx-htmleditor-highlighted-row\" : \"dx-htmleditor-highlighted-column\";\r\n null === (_this$_$highlightedEl2 = this._$highlightedElement) || void 0 === _this$_$highlightedEl2 ? void 0 : _this$_$highlightedEl2.remove();\r\n this._$highlightedElement = $(\"<div>\").addClass(\"\".concat(directionClass)).insertAfter($(options.lineSeparator));\r\n var config = {\r\n contentTemplate: null,\r\n allowMoveByClick: false,\r\n dragDirection: options.direction,\r\n onDragMove: _ref6 => {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref6;\r\n this._dragMoveHandler(event, options)\r\n },\r\n onDragStart: () => {\r\n this._dragStartHandler(options)\r\n },\r\n onDragEnd: () => {\r\n this._dragEndHandler(options)\r\n }\r\n };\r\n extend(config, boundaryConfig);\r\n this._currentDraggableElement = this.editorInstance._createComponent(options.lineSeparator, Draggable, config)\r\n }\r\n _fixColumnsWidth($table) {\r\n var determinantElements = this._getTableDeterminantElements($table);\r\n each(determinantElements, (index, element) => {\r\n var columnWidth = getOuterWidth(element);\r\n var $lineElements = getLineElements($table, index);\r\n setLineElementsFormat(this, {\r\n elements: $lineElements,\r\n property: \"width\",\r\n value: Math.max(columnWidth, this._minColumnWidth)\r\n })\r\n })\r\n }\r\n _getColumnElementsSum(columnElements) {\r\n var columnsWidths = [];\r\n var columnsSum = 0;\r\n each(columnElements, (index, element) => {\r\n var $element = $(element);\r\n var columnWidth = this._getWidthStyleValue($element) || getOuterWidth($element);\r\n columnsWidths[index] = Math.max(columnWidth, this._minColumnWidth);\r\n columnsSum += columnsWidths[index]\r\n });\r\n return {\r\n columnsWidths: columnsWidths,\r\n columnsSum: columnsSum\r\n }\r\n }\r\n _setColumnsRatioWidth(columnElements, ratio, columnsWidths, $table) {\r\n each(columnElements, index => {\r\n var $lineElements = getLineElements($table, index);\r\n var resultWidth;\r\n if (ratio > 0) {\r\n resultWidth = this._minColumnWidth + Math.round((columnsWidths[index] - this._minColumnWidth) * ratio)\r\n } else {\r\n resultWidth = this._minColumnWidth\r\n }\r\n setLineElementsFormat(this, {\r\n elements: $lineElements,\r\n property: \"width\",\r\n value: resultWidth\r\n })\r\n })\r\n }\r\n _updateColumnsWidth($table, frameIndex) {\r\n var determinantElements = this._getTableDeterminantElements($table);\r\n var frame = this._tableResizeFrames[frameIndex];\r\n if (!frame) {\r\n this._tableResizeFrames[frameIndex] = {}\r\n }\r\n frame = this._tableResizeFrames[frameIndex];\r\n var tableWidth = this._tableLastWidth(frame) || getOuterWidth($table);\r\n var ratio;\r\n var {\r\n columnsWidths: columnsWidths,\r\n columnsSum: columnsSum\r\n } = this._getColumnElementsSum(determinantElements);\r\n var minWidthForColumns = determinantElements.length * this._minColumnWidth;\r\n if (columnsSum > minWidthForColumns) {\r\n ratio = (tableWidth - minWidthForColumns) / (columnsSum - minWidthForColumns)\r\n } else {\r\n ratio = -1\r\n }\r\n this._tableLastWidth(frame, ratio > 0 ? tableWidth : minWidthForColumns);\r\n this._setColumnsRatioWidth(determinantElements, ratio, columnsWidths, $table)\r\n }\r\n _updateTablesColumnsWidth($tables) {\r\n each($tables, (index, table) => {\r\n this._updateColumnsWidth($(table), index)\r\n })\r\n }\r\n option(option, value) {\r\n if (\"tableResizing\" === option) {\r\n this.handleOptionChangeValue(value);\r\n return\r\n }\r\n if (\"enabled\" === option) {\r\n this.enabled = value;\r\n value ? this._applyResizing(true) : this.clean()\r\n } else if ([\"minColumnWidth\", \"minRowHeight\"].includes(option)) {\r\n this[\"_\".concat(option)] = this._minSizeLimit(option, value)\r\n }\r\n }\r\n clean() {\r\n this._removeResizeFrames(true);\r\n this._detachEvents();\r\n _windowResizeCallbacks.remove(this._resizeHandlerWithContext);\r\n clearTimeout(this._windowResizeTimeout);\r\n this._resizeHandlerWithContext = void 0;\r\n this._isDragging = void 0;\r\n this._startTableWidth = void 0;\r\n clearTimeout(this._attachResizerTimeout)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/tableContextMenu.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport $ from \"../../../core/renderer\";\r\nimport BaseModule from \"./base\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport ContextMenu from \"../../context_menu\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n getTableFormats\r\n} from \"../utils/table_helper\";\r\nimport {\r\n getFormatHandlers,\r\n getDefaultClickHandler,\r\n ICON_MAP\r\n} from \"../utils/toolbar_helper\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n titleize,\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar MODULE_NAMESPACE = \"dxHtmlEditorTableContextMenu\";\r\nvar CONTEXT_MENU_EVENT = addNamespace(\"dxcontextmenu\", MODULE_NAMESPACE);\r\nvar TableContextMenuModule = BaseModule;\r\nvar localize = name => localizationMessage.format(\"dxHtmlEditor-\".concat(camelize(name)));\r\nif (Quill) {\r\n TableContextMenuModule = class extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.enabled = !!options.enabled;\r\n this._quillContainer = this.editorInstance._getQuillContainer();\r\n this.addCleanCallback(this.prepareCleanCallback());\r\n this._formatHandlers = getFormatHandlers(this);\r\n this._tableFormats = getTableFormats(quill);\r\n if (this.enabled) {\r\n this._enableContextMenu(options.items)\r\n }\r\n }\r\n _enableContextMenu(items) {\r\n var _this$_contextMenu;\r\n null === (_this$_contextMenu = this._contextMenu) || void 0 === _this$_contextMenu ? void 0 : _this$_contextMenu.dispose();\r\n this._contextMenu = this._createContextMenu(items);\r\n this._attachEvents()\r\n }\r\n _attachEvents() {\r\n eventsEngine.on(this.editorInstance._getContent(), CONTEXT_MENU_EVENT, this._prepareContextMenuHandler())\r\n }\r\n _detachEvents() {\r\n eventsEngine.off(this.editorInstance._getContent(), CONTEXT_MENU_EVENT)\r\n }\r\n _createContextMenu(items) {\r\n var $container = $(\"<div>\").appendTo(this.editorInstance.$element());\r\n var menuConfig = this._getMenuConfig(items);\r\n return this.editorInstance._createComponent($container, ContextMenu, menuConfig)\r\n }\r\n showPropertiesForm() {\r\n var type = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"cell\";\r\n var $element = $(this._targetElement).closest(\"cell\" === type ? \"th, td\" : \"table\");\r\n this._contextMenu.hide();\r\n this._formatHandlers[\"\".concat(type, \"Properties\")]($element);\r\n this._targetElement = null\r\n }\r\n _isAcceptableItem(widget, acceptableWidgetName) {\r\n return !widget || widget === acceptableWidgetName\r\n }\r\n _handleObjectItem(item) {\r\n if (item.name && this._isAcceptableItem(item.widget, \"dxButton\")) {\r\n var defaultButtonItemConfig = this._prepareMenuItemConfig(item.name);\r\n var buttonItemConfig = extend(true, defaultButtonItemConfig, item);\r\n return buttonItemConfig\r\n } else if (item.items) {\r\n item.items = this._prepareMenuItems(item.items);\r\n return item\r\n } else {\r\n return item\r\n }\r\n }\r\n _prepareMenuItemConfig(name) {\r\n var _ICON_MAP$name, _this$_formatHandlers;\r\n var iconName = null !== (_ICON_MAP$name = ICON_MAP[name]) && void 0 !== _ICON_MAP$name ? _ICON_MAP$name : name;\r\n var buttonText = titleize(name);\r\n return {\r\n text: localize(buttonText),\r\n icon: iconName.toLowerCase(),\r\n onClick: null !== (_this$_formatHandlers = this._formatHandlers[name]) && void 0 !== _this$_formatHandlers ? _this$_formatHandlers : getDefaultClickHandler(this, name)\r\n }\r\n }\r\n _prepareMenuItems(items) {\r\n var resultItems = [];\r\n each(items, (_, item) => {\r\n var newItem;\r\n if (isObject(item)) {\r\n newItem = this._handleObjectItem(item)\r\n } else if (isString(item)) {\r\n newItem = this._prepareMenuItemConfig(item)\r\n }\r\n if (newItem) {\r\n resultItems.push(newItem)\r\n }\r\n });\r\n return resultItems\r\n }\r\n _getMenuConfig(items) {\r\n var defaultItems = [{\r\n text: localize(\"insert\"),\r\n items: [\"insertHeaderRow\", \"insertRowAbove\", \"insertRowBelow\", extend(this._prepareMenuItemConfig(\"insertColumnLeft\"), {\r\n beginGroup: true\r\n }), \"insertColumnRight\"]\r\n }, {\r\n text: localize(\"delete\"),\r\n items: [\"deleteColumn\", \"deleteRow\", \"deleteTable\"]\r\n }, extend(this._prepareMenuItemConfig(\"cellProperties\"), {\r\n onClick: e => {\r\n this.showPropertiesForm(\"cell\")\r\n }\r\n }), extend(this._prepareMenuItemConfig(\"tableProperties\"), {\r\n onClick: e => {\r\n this.showPropertiesForm(\"table\")\r\n }\r\n })];\r\n var customItems = this._prepareMenuItems(null !== items && void 0 !== items && items.length ? items : defaultItems);\r\n return {\r\n target: this._quillContainer,\r\n showEvent: null,\r\n hideOnParentScroll: false,\r\n items: customItems\r\n }\r\n }\r\n _prepareContextMenuHandler() {\r\n return event => {\r\n if (this._isTableTarget(event.target)) {\r\n this._targetElement = event.target;\r\n this._setContextMenuPosition(event);\r\n this._contextMenu.show();\r\n event.preventDefault()\r\n }\r\n }\r\n }\r\n _setContextMenuPosition(event) {\r\n var startPosition = this._quillContainer.get(0).getBoundingClientRect();\r\n this._contextMenu.option({\r\n position: {\r\n my: \"left top\",\r\n at: \"left top\",\r\n collision: \"fit fit\",\r\n offset: {\r\n x: event.clientX - startPosition.left,\r\n y: event.clientY - startPosition.top\r\n }\r\n }\r\n })\r\n }\r\n _isTableTarget(targetElement) {\r\n return !!$(targetElement).closest(\".dx-htmleditor-content td, .dx-htmleditor-content th\").length\r\n }\r\n clean() {\r\n this._detachEvents()\r\n }\r\n option(option, value) {\r\n if (\"tableContextMenu\" === option) {\r\n this.handleOptionChangeValue(value);\r\n return\r\n }\r\n if (\"enabled\" === option) {\r\n this.enabled = value;\r\n value ? this._enableContextMenu() : this.clean()\r\n } else if (\"items\" === option) {\r\n var _this$_contextMenu2;\r\n null === (_this$_contextMenu2 = this._contextMenu) || void 0 === _this$_contextMenu2 ? void 0 : _this$_contextMenu2.dispose();\r\n this._contextMenu = this._createContextMenu(value)\r\n }\r\n }\r\n prepareCleanCallback() {\r\n return () => {\r\n this.clean()\r\n }\r\n }\r\n }\r\n}\r\nexport default TableContextMenuModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/imageUpload.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport BaseModule from \"./base\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n serverUpload,\r\n getFileUploaderBaseOptions\r\n} from \"../utils/image_uploader_helper\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport FileUploader from \"../../file_uploader\";\r\nvar MODULE_NAMESPACE = \"dxHtmlEditorImageUpload\";\r\nvar HIDDEN_FILE_UPLOADER_CLASS = \"dx-htmleditor-hidden-content\";\r\nvar ImageUploadModule = BaseModule;\r\nif (Quill) {\r\n ImageUploadModule = class extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.options = options;\r\n this._quillContainer = this.editorInstance._getQuillContainer();\r\n this.addCleanCallback(this.prepareCleanCallback());\r\n this._handleServerUpload()\r\n }\r\n _handleServerUpload() {\r\n var useServerUpload = isDefined(this.options.fileUploadMode) && \"base64\" !== this.options.fileUploadMode;\r\n useServerUpload ? this._enableDragAndDropUploading() : this._disableDragAndDropUploading()\r\n }\r\n _getUploaderModule() {\r\n if (!this._uploaderModule) {\r\n this._uploaderModule = this.quill.getModule(\"uploader\")\r\n }\r\n return this._uploaderModule\r\n }\r\n _disableDragAndDropUploading() {\r\n var _this$_fileUploader;\r\n this._getUploaderModule().preventImageUploading(false);\r\n this._detachEvents();\r\n null === (_this$_fileUploader = this._fileUploader) || void 0 === _this$_fileUploader ? void 0 : _this$_fileUploader.dispose()\r\n }\r\n _enableDragAndDropUploading() {\r\n this._initFileUploader();\r\n this._getUploaderModule().preventImageUploading(true);\r\n this._attachEvents()\r\n }\r\n _initFileUploader() {\r\n var $container = $(\"<div>\").addClass(HIDDEN_FILE_UPLOADER_CLASS).appendTo(this._quillContainer);\r\n var fileUploaderOptions = extend({}, getFileUploaderBaseOptions(), {\r\n uploadUrl: this.options.uploadUrl,\r\n onUploaded: this._onUploaded.bind(this)\r\n }, this.options.fileUploaderOptions);\r\n this._fileUploader = this.editorInstance._createComponent($container, FileUploader, fileUploaderOptions);\r\n return $container\r\n }\r\n _onUploaded(data) {\r\n var _this$quill$getSelect;\r\n var {\r\n index: pasteIndex\r\n } = null !== (_this$quill$getSelect = this.quill.getSelection()) && void 0 !== _this$quill$getSelect ? _this$quill$getSelect : {\r\n index: this.quill.getLength()\r\n };\r\n serverUpload(this.options.uploadDirectory, data.file.name, this.quill, pasteIndex)\r\n }\r\n _attachEvents() {\r\n eventsEngine.on(this.quill.root, addNamespace(\"drop\", MODULE_NAMESPACE), this._dropHandler.bind(this));\r\n eventsEngine.on(this.quill.root, addNamespace(\"paste\", MODULE_NAMESPACE), this._pasteHandler.bind(this))\r\n }\r\n _detachEvents() {\r\n eventsEngine.off(this.quill.root, MODULE_NAMESPACE)\r\n }\r\n _dropHandler(e) {\r\n this._handleInsertImages(e, \"dataTransfer\")\r\n }\r\n _pasteHandler(e) {\r\n this._handleInsertImages(e, \"clipboardData\")\r\n }\r\n _handleInsertImages(e, filesField) {\r\n this.saveValueChangeEvent(e);\r\n var files = Array.from(e.originalEvent[filesField].files || []);\r\n var uploads = files;\r\n if (uploads.length) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._fileUploader.option(\"value\", uploads);\r\n this._fileUploader.upload()\r\n }\r\n }\r\n clean() {\r\n this._disableDragAndDropUploading()\r\n }\r\n prepareCleanCallback() {\r\n return () => {\r\n this.clean()\r\n }\r\n }\r\n option(option, value) {\r\n switch (option) {\r\n case \"imageUpload\":\r\n this.handleOptionChangeValue(value);\r\n break;\r\n case \"fileUploadMode\":\r\n this.options.fileUploadMode = value;\r\n this._handleServerUpload();\r\n break;\r\n case \"fileUploaderOptions\":\r\n this._fileUploader.option(value)\r\n }\r\n }\r\n }\r\n}\r\nexport default ImageUploadModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/imageCursor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport BaseModule from \"./base\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar MODULE_NAMESPACE = \"dxHtmlEditorImageCursor\";\r\nvar clickEvent = addNamespace(\"dxclick\", MODULE_NAMESPACE);\r\nvar ImageCursorModule = BaseModule;\r\nif (Quill) {\r\n ImageCursorModule = class extends BaseModule {\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this.addCleanCallback(this.clean.bind(this));\r\n this._attachEvents()\r\n }\r\n _attachEvents() {\r\n eventsEngine.on(this.quill.root, clickEvent, this._clickHandler.bind(this))\r\n }\r\n _detachEvents() {\r\n eventsEngine.off(this.quill.root, clickEvent)\r\n }\r\n _clickHandler(e) {\r\n if (this._isAllowedTarget(e.target)) {\r\n this._adjustSelection(e)\r\n }\r\n }\r\n _isAllowedTarget(targetElement) {\r\n return this._isImage(targetElement)\r\n }\r\n _isImage(targetElement) {\r\n return \"IMG\" === targetElement.tagName.toUpperCase()\r\n }\r\n _adjustSelection(e) {\r\n var blot = this.quill.scroll.find(e.target);\r\n if (blot) {\r\n var index = blot.offset(this.quill.scroll);\r\n this.quill.setSelection(index + 1, 0)\r\n } else {\r\n this.quill.setSelection(0, 0)\r\n }\r\n }\r\n clean() {\r\n this._detachEvents()\r\n }\r\n }\r\n}\r\nexport default ImageCursorModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/utils/templates_storage.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../../core/utils/type\";\r\nexport default class TemplatesStorage {\r\n constructor() {\r\n this._storage = {}\r\n }\r\n set(_ref, value) {\r\n var _this$_storage, _this$_storage$editor;\r\n var {\r\n editorKey: editorKey,\r\n marker: marker\r\n } = _ref;\r\n null !== (_this$_storage$editor = (_this$_storage = this._storage)[editorKey]) && void 0 !== _this$_storage$editor ? _this$_storage$editor : _this$_storage[editorKey] = {};\r\n this._storage[editorKey][marker] = value\r\n }\r\n get(_ref2) {\r\n var _Object$values$at, _this$_storage$editor2;\r\n var {\r\n editorKey: editorKey,\r\n marker: marker\r\n } = _ref2;\r\n var isQuillFormatCall = !isDefined(editorKey);\r\n return isQuillFormatCall ? null === (_Object$values$at = Object.values(this._storage).at(-1)) || void 0 === _Object$values$at ? void 0 : _Object$values$at[marker] : null === (_this$_storage$editor2 = this._storage[editorKey]) || void 0 === _this$_storage$editor2 ? void 0 : _this$_storage$editor2[marker]\r\n }\r\n delete(_ref3) {\r\n var {\r\n editorKey: editorKey,\r\n marker: marker\r\n } = _ref3;\r\n if (!this._storage[editorKey]) {\r\n return\r\n }\r\n delete this._storage[editorKey][marker];\r\n if (isEmptyObject(this._storage[editorKey])) {\r\n delete this._storage[editorKey]\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/formats/mention.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Quill from \"devextreme-quill\";\r\nimport $ from \"../../../core/renderer\";\r\nimport TemplatesStorage from \"../utils/templates_storage\";\r\nvar Mention = {};\r\nif (Quill) {\r\n var Embed = Quill.import(\"blots/embed\");\r\n var MENTION_CLASS = \"dx-mention\";\r\n Mention = class Mention extends Embed {\r\n constructor(scroll, node) {\r\n super(scroll, node);\r\n this.renderContent(this.contentNode, Mention.value(node))\r\n }\r\n static create(data) {\r\n var node = super.create();\r\n node.setAttribute(\"spellcheck\", false);\r\n node.dataset.marker = data.marker;\r\n node.dataset.mentionValue = data.value;\r\n node.dataset.id = data.id;\r\n return node\r\n }\r\n static value(node) {\r\n return {\r\n marker: node.dataset.marker,\r\n id: node.dataset.id,\r\n value: node.dataset.mentionValue\r\n }\r\n }\r\n renderContent(node, data) {\r\n var template = Mention._templatesStorage.get({\r\n editorKey: data.keyInTemplateStorage,\r\n marker: data.marker\r\n });\r\n if (template) {\r\n template.render({\r\n model: data,\r\n container: node\r\n })\r\n } else {\r\n this.baseContentRender(node, data)\r\n }\r\n }\r\n baseContentRender(node, data) {\r\n var $marker = $(\"<span>\").text(data.marker);\r\n $(node).append($marker).append(data.value)\r\n }\r\n static addTemplate(data, template) {\r\n this._templatesStorage.set(data, template)\r\n }\r\n static removeTemplate(data) {\r\n this._templatesStorage.delete(data)\r\n }\r\n };\r\n Mention.blotName = \"mention\";\r\n Mention.tagName = \"span\";\r\n Mention.className = MENTION_CLASS;\r\n Mention._templatesStorage = new TemplatesStorage\r\n}\r\nexport default Mention;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/modules/mentions.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport Quill from \"devextreme-quill\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport BaseModule from \"./base\";\r\nimport PopupModule from \"./popup\";\r\nimport Mention from \"../formats/mention\";\r\nvar MentionModule = BaseModule;\r\nif (Quill) {\r\n var USER_ACTION = \"user\";\r\n var DEFAULT_MARKER = \"@\";\r\n var KEYS = {\r\n ARROW_UP: \"upArrow\",\r\n ARROW_DOWN: \"downArrow\",\r\n ARROW_LEFT: \"leftArrow\",\r\n ARROW_RIGHT: \"rightArrow\",\r\n ENTER: \"enter\",\r\n ESCAPE: \"escape\",\r\n SPACE: \"space\",\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\"\r\n };\r\n var NAVIGATION_KEYS = [KEYS.ARROW_LEFT, KEYS.ARROW_RIGHT, KEYS.PAGE_UP, KEYS.PAGE_DOWN, KEYS.END, KEYS.HOME];\r\n var ALLOWED_PREFIX_CHARS = [\" \", \"\\n\"];\r\n var DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\n Quill.register({\r\n \"formats/mention\": Mention\r\n }, true);\r\n MentionModule = class extends PopupModule {\r\n _getDefaultOptions() {\r\n var baseConfig = super._getDefaultOptions();\r\n return extend(baseConfig, {\r\n itemTemplate: \"item\",\r\n valueExpr: \"this\",\r\n displayExpr: \"this\",\r\n template: null,\r\n searchExpr: null,\r\n searchTimeout: 500,\r\n minSearchLength: 0\r\n })\r\n }\r\n constructor(quill, options) {\r\n super(quill, options);\r\n this._mentions = {};\r\n options.mentions.forEach(item => {\r\n var marker = item.marker;\r\n if (!marker) {\r\n item.marker = marker = DEFAULT_MARKER\r\n }\r\n var template = item.template;\r\n if (template) {\r\n var preparedTemplate = this.editorInstance._getTemplate(template);\r\n preparedTemplate && Mention.addTemplate({\r\n marker: marker,\r\n editorKey: this.editorInstance.getMentionKeyInTemplateStorage()\r\n }, preparedTemplate)\r\n }\r\n this._mentions[marker] = extend({}, this._getDefaultOptions(), item)\r\n });\r\n this._attachKeyboardHandlers();\r\n this.addCleanCallback(this.clean.bind(this));\r\n this.quill.on(\"text-change\", this.onTextChange.bind(this))\r\n }\r\n _attachKeyboardHandlers() {\r\n this.quill.keyboard.addBinding({\r\n key: KEYS.ARROW_UP\r\n }, this._moveToItem.bind(this, \"prev\"));\r\n this.quill.keyboard.addBinding({\r\n key: KEYS.ARROW_DOWN\r\n }, this._moveToItem.bind(this, \"next\"));\r\n this.quill.keyboard.addBinding({\r\n key: [KEYS.ENTER, KEYS.SPACE]\r\n }, this._selectItemHandler.bind(this));\r\n var enterBindings = this.quill.keyboard.bindings[KEYS.ENTER];\r\n enterBindings.unshift(enterBindings.pop());\r\n this.quill.keyboard.addBinding({\r\n key: KEYS.ESCAPE\r\n }, this._escapeKeyHandler.bind(this));\r\n this.quill.keyboard.addBinding({\r\n key: [KEYS.ARROW_LEFT, KEYS.ARROW_RIGHT],\r\n shiftKey: true\r\n }, this._ignoreKeyHandler.bind(this));\r\n this.quill.keyboard.addBinding({\r\n key: NAVIGATION_KEYS\r\n }, this._ignoreKeyHandler.bind(this))\r\n }\r\n _moveToItem(direction) {\r\n var dataSource = this._list.getDataSource();\r\n if (this._isMentionActive && !dataSource.isLoading()) {\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n var defaultItemPosition = \"next\" === direction ? \"first\" : \"last\";\r\n var $nextItem = $focusedItem[direction]();\r\n $nextItem = $nextItem.length ? $nextItem : this._activeListItems[defaultItemPosition]();\r\n this._list.option(\"focusedElement\", getPublicElement($nextItem));\r\n this._list.scrollToItem($nextItem)\r\n }\r\n return !this._isMentionActive\r\n }\r\n _ignoreKeyHandler() {\r\n return !this._isMentionActive\r\n }\r\n _fitIntoRange(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n }\r\n _selectItemHandler() {\r\n if (this._isMentionActive) {\r\n this._list.option(\"items\").length ? this._list.selectItem(this._list.option(\"focusedElement\")) : this._popup.hide()\r\n }\r\n return !this._isMentionActive\r\n }\r\n _escapeKeyHandler() {\r\n if (this._isMentionActive) {\r\n this._popup.hide()\r\n }\r\n return !this._isMentionActive\r\n }\r\n renderList($container, options) {\r\n this.compileGetters(this.options);\r\n super.renderList($container, options)\r\n }\r\n compileGetters(_ref) {\r\n var {\r\n displayExpr: displayExpr,\r\n valueExpr: valueExpr\r\n } = _ref;\r\n this._valueGetter = compileGetter(displayExpr);\r\n this._idGetter = compileGetter(valueExpr)\r\n }\r\n _getListConfig(options) {\r\n var baseConfig = super._getListConfig(options);\r\n return extend(baseConfig, {\r\n itemTemplate: this.options.itemTemplate,\r\n onContentReady: () => {\r\n if (this._hasSearch) {\r\n this._popup.repaint();\r\n this._focusFirstElement();\r\n this._hasSearch = false\r\n }\r\n }\r\n })\r\n }\r\n insertEmbedContent() {\r\n var markerLength = this._activeMentionConfig.marker.length;\r\n var textLength = markerLength + this._searchValue.length;\r\n var caretPosition = this.getPosition();\r\n var selectedItem = this._list.option(\"selectedItem\");\r\n var value = {\r\n value: this._valueGetter(selectedItem),\r\n id: this._idGetter(selectedItem),\r\n marker: this._activeMentionConfig.marker,\r\n keyInTemplateStorage: this.editorInstance.getMentionKeyInTemplateStorage()\r\n };\r\n var Delta = Quill.import(\"delta\");\r\n var startIndex = Math.max(0, caretPosition - markerLength);\r\n var newDelta = (new Delta).retain(startIndex).delete(textLength).insert({\r\n mention: value\r\n }).insert(\" \");\r\n this.quill.updateContents(newDelta);\r\n this.quill.setSelection(startIndex + 2)\r\n }\r\n _getLastInsertOperation(ops) {\r\n var lastOperation = ops[ops.length - 1];\r\n var isLastOperationInsert = \"insert\" in lastOperation;\r\n if (isLastOperationInsert) {\r\n return lastOperation\r\n }\r\n var isLastOperationDelete = \"delete\" in lastOperation;\r\n if (isLastOperationDelete && ops.length >= 2) {\r\n var penultOperation = ops[ops.length - 2];\r\n var isPenultOperationInsert = \"insert\" in penultOperation;\r\n var isSelectionReplacing = isLastOperationDelete && isPenultOperationInsert;\r\n if (isSelectionReplacing) {\r\n return penultOperation\r\n }\r\n }\r\n return null\r\n }\r\n onTextChange(newDelta, oldDelta, source) {\r\n if (source === USER_ACTION) {\r\n var lastOperation = newDelta.ops[newDelta.ops.length - 1];\r\n if (this._isMentionActive && this._isPopupVisible) {\r\n this._processSearchValue(lastOperation) && this._filterList(this._searchValue)\r\n } else {\r\n var {\r\n ops: ops\r\n } = newDelta;\r\n var lastInsertOperation = this._getLastInsertOperation(ops);\r\n if (lastInsertOperation) {\r\n this.checkMentionRequest(lastInsertOperation, ops)\r\n }\r\n }\r\n }\r\n }\r\n get _isPopupVisible() {\r\n var _this$_popup;\r\n return null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"visible\")\r\n }\r\n _processSearchValue(operation) {\r\n var isInsertOperation = \"insert\" in operation;\r\n if (isInsertOperation) {\r\n this._searchValue += operation.insert\r\n } else if (!this._searchValue.length || operation.delete > 1) {\r\n this._popup.hide();\r\n return false\r\n } else {\r\n this._searchValue = this._searchValue.slice(0, -1)\r\n }\r\n return true\r\n }\r\n checkMentionRequest(_ref2, ops) {\r\n var {\r\n insert: insert\r\n } = _ref2;\r\n var caret = this.quill.getSelection();\r\n if (!insert || !isString(insert) || !caret || this._isMarkerPartOfText(ops[0].retain)) {\r\n return\r\n }\r\n this._activeMentionConfig = this._mentions[insert];\r\n if (this._activeMentionConfig) {\r\n this._updateList(this._activeMentionConfig);\r\n var isOnNewLine = caret.index && \"\\n\" === this._getCharByIndex(caret.index - 1);\r\n this.savePosition(caret.index + isOnNewLine);\r\n this._popup.option(\"position\", this._popupPosition);\r\n this._searchValue = \"\";\r\n this._popup.show()\r\n }\r\n }\r\n _isMarkerPartOfText(retain) {\r\n if (!retain || -1 !== ALLOWED_PREFIX_CHARS.indexOf(this._getCharByIndex(retain - 1))) {\r\n return false\r\n }\r\n return true\r\n }\r\n _getCharByIndex(index) {\r\n return this.quill.getContents(index, 1).ops[0].insert\r\n }\r\n _updateList(_ref3) {\r\n var {\r\n dataSource: dataSource,\r\n displayExpr: displayExpr,\r\n valueExpr: valueExpr,\r\n itemTemplate: itemTemplate,\r\n searchExpr: searchExpr\r\n } = _ref3;\r\n this.compileGetters({\r\n displayExpr: displayExpr,\r\n valueExpr: valueExpr\r\n });\r\n this._list.unselectAll();\r\n this._list.option({\r\n dataSource: dataSource,\r\n displayExpr: displayExpr,\r\n itemTemplate: itemTemplate,\r\n searchExpr: searchExpr\r\n })\r\n }\r\n _filterList(searchValue) {\r\n if (!this._isMinSearchLengthExceeded(searchValue)) {\r\n this._resetFilter();\r\n return\r\n }\r\n var searchTimeout = this._activeMentionConfig.searchTimeout;\r\n if (searchTimeout) {\r\n clearTimeout(this._searchTimer);\r\n this._searchTimer = setTimeout(() => {\r\n this._search(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._search(searchValue)\r\n }\r\n }\r\n _isMinSearchLengthExceeded(searchValue) {\r\n return searchValue.length >= this._activeMentionConfig.minSearchLength\r\n }\r\n _resetFilter() {\r\n clearTimeout(this._searchTimer);\r\n this._search(null)\r\n }\r\n _search(searchValue) {\r\n this._hasSearch = true;\r\n this._list.option(\"searchValue\", searchValue)\r\n }\r\n _focusFirstElement() {\r\n if (!this._list) {\r\n return\r\n }\r\n var $firstItem = this._activeListItems.first();\r\n this._list.option(\"focusedElement\", getPublicElement($firstItem));\r\n this._list.scrollToItem($firstItem)\r\n }\r\n get _popupPosition() {\r\n var position = this.getPosition();\r\n var {\r\n left: mentionLeft,\r\n top: mentionTop,\r\n height: mentionHeight\r\n } = this.quill.getBounds(position ? position - 1 : position);\r\n var {\r\n left: leftOffset,\r\n top: topOffset\r\n } = $(this.quill.root).offset();\r\n var positionEvent = eventsEngine.Event(\"positionEvent\", {\r\n pageX: leftOffset + mentionLeft,\r\n pageY: topOffset + mentionTop\r\n });\r\n return {\r\n of: positionEvent,\r\n offset: {\r\n v: mentionHeight\r\n },\r\n my: \"top left\",\r\n at: \"top left\",\r\n collision: {\r\n y: \"flip\",\r\n x: \"flipfit\"\r\n }\r\n }\r\n }\r\n _getPopupConfig() {\r\n return extend(super._getPopupConfig(), {\r\n hideOnParentScroll: false,\r\n onShown: () => {\r\n this._isMentionActive = true;\r\n this._hasSearch = false;\r\n this._focusFirstElement()\r\n },\r\n onHidden: () => {\r\n this._list.unselectAll();\r\n this._list.option(\"focusedElement\", null);\r\n this._isMentionActive = false;\r\n this._search(null)\r\n },\r\n focusStateEnabled: false\r\n })\r\n }\r\n get _activeListItems() {\r\n return this._list.itemElements().filter(\":not(.\".concat(DISABLED_STATE_CLASS, \")\"))\r\n }\r\n clean() {\r\n Object.keys(this._mentions).forEach(marker => {\r\n if (this._mentions[marker].template) {\r\n Mention.removeTemplate({\r\n marker: marker,\r\n editorKey: this.editorInstance.getMentionKeyInTemplateStorage()\r\n })\r\n }\r\n })\r\n }\r\n }\r\n}\r\nexport default MentionModule;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/quill_registrator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getQuill\r\n} from \"./quill_importer\";\r\nimport BaseTheme from \"./themes/base\";\r\nimport Image from \"./formats/image\";\r\nimport Link from \"./formats/link\";\r\nimport FontStyle from \"./formats/font\";\r\nimport SizeStyle from \"./formats/size\";\r\nimport AlignStyle from \"./formats/align\";\r\nimport Toolbar from \"./modules/toolbar\";\r\nimport DropImage from \"./modules/dropImage\";\r\nimport Variables from \"./modules/variables\";\r\nimport Resizing from \"./modules/resizing\";\r\nimport TableResizing from \"./modules/tableResizing\";\r\nimport TableContextMenu from \"./modules/tableContextMenu\";\r\nimport ImageUpload from \"./modules/imageUpload\";\r\nimport ImageCursor from \"./modules/imageCursor\";\r\nimport MentionsModule from \"./modules/mentions\";\r\nclass QuillRegistrator {\r\n constructor() {\r\n if (QuillRegistrator.initialized) {\r\n return\r\n }\r\n var quill = this.getQuill();\r\n var DirectionStyle = quill.import(\"attributors/style/direction\");\r\n quill.register({\r\n \"formats/align\": AlignStyle,\r\n \"formats/direction\": DirectionStyle,\r\n \"formats/font\": FontStyle,\r\n \"formats/size\": SizeStyle,\r\n \"formats/extendedImage\": Image,\r\n \"formats/link\": Link,\r\n \"modules/toolbar\": Toolbar,\r\n \"modules/dropImage\": DropImage,\r\n \"modules/variables\": Variables,\r\n \"modules/resizing\": Resizing,\r\n \"modules/tableResizing\": TableResizing,\r\n \"modules/tableContextMenu\": TableContextMenu,\r\n \"modules/imageUpload\": ImageUpload,\r\n \"modules/imageCursor\": ImageCursor,\r\n \"modules/mentions\": MentionsModule,\r\n \"themes/basic\": BaseTheme\r\n }, true);\r\n this._customModules = [];\r\n QuillRegistrator._initialized = true\r\n }\r\n createEditor(container, config) {\r\n var quill = this.getQuill();\r\n return new quill(container, config)\r\n }\r\n registerModules(modulesConfig) {\r\n var isModule = RegExp(\"modules/*\");\r\n var quill = this.getQuill();\r\n var isRegisteredModule = modulePath => !!quill.imports[modulePath];\r\n for (var modulePath in modulesConfig) {\r\n if (isModule.test(modulePath) && !isRegisteredModule(modulePath)) {\r\n this._customModules.push(modulePath.slice(8))\r\n }\r\n }\r\n quill.register(modulesConfig, true)\r\n }\r\n getRegisteredModuleNames() {\r\n return this._customModules\r\n }\r\n getQuill() {\r\n return getQuill()\r\n }\r\n}\r\nexport default QuillRegistrator;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/converterController.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nclass ConverterController {\r\n constructor() {\r\n this._converters = {}\r\n }\r\n addConverter(name, converter) {\r\n this._converters[name] = converter\r\n }\r\n getConverter(name) {\r\n return this._converters[name]\r\n }\r\n}\r\nvar controller = new ConverterController;\r\nexport default controller;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/matchers/wordLists.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction getListType(matches) {\r\n var prefix = matches[1];\r\n return prefix.match(/\\S+\\./) ? \"ordered\" : \"bullet\"\r\n}\r\n\r\nfunction getIndent(node) {\r\n var style = node.getAttribute(\"style\");\r\n if (style) {\r\n var level = style.replace(/\\n+/g, \"\").match(/level(\\d+)/);\r\n return level ? level[1] - 1 : 0\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction removeNewLineChar(operations) {\r\n var newLineOperation = operations[operations.length - 1];\r\n newLineOperation.insert = newLineOperation.insert.trim()\r\n}\r\nvar getMatcher = quill => {\r\n var Delta = quill.import(\"delta\");\r\n return (node, delta) => {\r\n var ops = delta.ops.slice();\r\n var insertOperation = ops[0];\r\n insertOperation.insert = insertOperation.insert.replace(/^\\s+/, \"\");\r\n var listDecoratorMatches = insertOperation.insert.match(/^(\\S+)\\s+/);\r\n var indent = listDecoratorMatches && getIndent(node);\r\n if (!listDecoratorMatches || false === indent) {\r\n return delta\r\n }\r\n insertOperation.insert = insertOperation.insert.substring(listDecoratorMatches[0].length, insertOperation.insert.length);\r\n removeNewLineChar(ops);\r\n ops.push({\r\n insert: \"\\n\",\r\n attributes: {\r\n list: getListType(listDecoratorMatches),\r\n indent: indent\r\n }\r\n });\r\n return new Delta(ops)\r\n }\r\n};\r\nexport default getMatcher;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/converters/delta.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ConverterController from \"../converterController\";\r\nclass DeltaConverter {\r\n setQuillInstance(quillInstance) {\r\n this.quillInstance = quillInstance\r\n }\r\n toHtml() {\r\n if (!this.quillInstance) {\r\n return\r\n }\r\n return this._isQuillEmpty() ? \"\" : this.quillInstance.getSemanticHTML(0, this.quillInstance.getLength() + 1)\r\n }\r\n _isQuillEmpty() {\r\n var delta = this.quillInstance.getContents();\r\n return 1 === delta.length() && this._isDeltaEmpty(delta)\r\n }\r\n _isDeltaEmpty(delta) {\r\n return delta.reduce((__, _ref) => {\r\n var {\r\n insert: insert\r\n } = _ref;\r\n return -1 !== insert.indexOf(\"\\n\")\r\n })\r\n }\r\n}\r\nConverterController.addConverter(\"delta\", DeltaConverter);\r\nexport default DeltaConverter;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/ui/formDialog.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Popup from \"../../popup\";\r\nimport Form from \"../../form\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../themes\";\r\nvar DIALOG_CLASS = \"dx-formdialog\";\r\nvar FORM_CLASS = \"dx-formdialog-form\";\r\nvar getApplyButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"contained\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nvar getCancelButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"outlined\",\r\n type: \"normal\"\r\n }\r\n }\r\n return {}\r\n};\r\nclass FormDialog {\r\n constructor(editorInstance, popupConfig) {\r\n this._editorInstance = editorInstance;\r\n this._popupUserConfig = popupConfig;\r\n this._renderPopup();\r\n this._attachOptionChangedHandler()\r\n }\r\n _renderPopup() {\r\n var editorInstance = this._editorInstance;\r\n var $container = $(\"<div>\").addClass(DIALOG_CLASS).appendTo(editorInstance.$element());\r\n var popupConfig = this._getPopupConfig();\r\n return editorInstance._createComponent($container, Popup, popupConfig)\r\n }\r\n _attachOptionChangedHandler() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.on(\"optionChanged\", _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"title\" === name) {\r\n this._updateFormLabel(value)\r\n }\r\n })\r\n }\r\n _escKeyHandler() {\r\n this._popup.hide()\r\n }\r\n _addEscapeHandler(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escKeyHandler.bind(this))\r\n }\r\n _isSmallScreen() {\r\n var screenFactor = hasWindow() ? getCurrentScreenFactor() : null;\r\n return \"phone\" === devices.real().deviceType || \"xs\" === screenFactor\r\n }\r\n _getPopupConfig() {\r\n return extend({\r\n onInitialized: e => {\r\n this._popup = e.component;\r\n this._popup.on(\"hiding\", () => this.onHiding());\r\n this._popup.on(\"shown\", () => {\r\n this._form.focus()\r\n })\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n fullScreen: this._isSmallScreen(),\r\n contentTemplate: contentElem => {\r\n var $formContainer = $(\"<div>\").appendTo(contentElem);\r\n this._renderForm($formContainer, {\r\n onEditorEnterKey: e => this.callAddButtonAction(e.event),\r\n customizeItem: item => {\r\n if (\"simple\" === item.itemType) {\r\n item.editorOptions = extend(true, {}, item.editorOptions, {\r\n onInitialized: this._addEscapeHandler.bind(this)\r\n })\r\n }\r\n }\r\n })\r\n },\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: _extends({\r\n onInitialized: this._addEscapeHandler.bind(this),\r\n text: localizationMessage.format(\"OK\"),\r\n onClick: e => this.callAddButtonAction(e.event)\r\n }, getApplyButtonConfig())\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: _extends({\r\n onInitialized: this._addEscapeHandler.bind(this),\r\n text: localizationMessage.format(\"Cancel\"),\r\n onClick: () => {\r\n this._popup.hide()\r\n }\r\n }, getCancelButtonConfig())\r\n }],\r\n _wrapperClassExternal: DIALOG_CLASS\r\n }, this._popupUserConfig)\r\n }\r\n onHiding() {\r\n this.beforeAddButtonAction = void 0;\r\n this.deferred.reject()\r\n }\r\n callAddButtonAction(event) {\r\n if (this.beforeAddButtonAction && !this.beforeAddButtonAction()) {\r\n return\r\n }\r\n this.hide(this._form.option(\"formData\"), event)\r\n }\r\n _renderForm($container, options) {\r\n $container.addClass(FORM_CLASS);\r\n this._form = this._editorInstance._createComponent($container, Form, options);\r\n this._updateFormLabel()\r\n }\r\n _updateFormLabel(text) {\r\n var _this$_form;\r\n var label = null !== text && void 0 !== text ? text : this.popupOption(\"title\");\r\n null === (_this$_form = this._form) || void 0 === _this$_form ? void 0 : _this$_form.$element().attr(\"aria-label\", label)\r\n }\r\n _getDefaultFormOptions() {\r\n return {\r\n colCount: 1,\r\n width: \"auto\",\r\n labelLocation: isMaterialBased() ? \"top\" : \"left\"\r\n }\r\n }\r\n formOption(optionName, optionValue) {\r\n return this._form.option.apply(this._form, arguments)\r\n }\r\n show(formUserConfig) {\r\n if (this._popup.option(\"visible\")) {\r\n return\r\n }\r\n this.deferred = new Deferred;\r\n var formConfig = extend(this._getDefaultFormOptions(), formUserConfig);\r\n this._form.option(formConfig);\r\n this._popup.show();\r\n return this.deferred.promise()\r\n }\r\n hide(formData, event) {\r\n this.deferred.resolve(formData, event);\r\n this._popup.hide()\r\n }\r\n popupOption(optionName, optionValue) {\r\n return this._popup.option.apply(this._popup, arguments)\r\n }\r\n}\r\nexport default FormDialog;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor/ui.html_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n executeAsync,\r\n noop,\r\n ensureDefined,\r\n deferRender\r\n} from \"../../core/utils/common\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport Editor from \"../editor/editor\";\r\nimport Errors from \"../widget/ui.errors\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n Event as dxEvent\r\n} from \"../../events/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n prepareScrollData\r\n} from \"../text_box/utils.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport devices from \"../../core/devices\";\r\nimport QuillRegistrator from \"./quill_registrator\";\r\nimport \"./converters/delta\";\r\nimport ConverterController from \"./converterController\";\r\nimport getWordMatcher from \"./matchers/wordLists\";\r\nimport FormDialog from \"./ui/formDialog\";\r\nimport config from \"../../core/config\";\r\nvar HTML_EDITOR_CLASS = \"dx-htmleditor\";\r\nvar QUILL_CONTAINER_CLASS = \"dx-quill-container\";\r\nvar QUILL_CLIPBOARD_CLASS = \"ql-clipboard\";\r\nvar HTML_EDITOR_SUBMIT_ELEMENT_CLASS = \"dx-htmleditor-submit-element\";\r\nvar HTML_EDITOR_CONTENT_CLASS = \"dx-htmleditor-content\";\r\nvar MARKDOWN_VALUE_TYPE = \"markdown\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"htmlContent\";\r\nvar isIos = \"ios\" === devices.current().platform;\r\nvar editorsCount = 0;\r\nvar HtmlEditor = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: true,\r\n valueType: \"html\",\r\n placeholder: \"\",\r\n toolbar: null,\r\n variables: null,\r\n mediaResizing: null,\r\n tableResizing: null,\r\n mentions: null,\r\n customizeModules: null,\r\n tableContextMenu: null,\r\n allowSoftLineBreak: false,\r\n formDialogOptions: null,\r\n imageUpload: null,\r\n stylingMode: config().editorStylingMode || \"outlined\"\r\n })\r\n },\r\n _init: function() {\r\n this._mentionKeyInTemplateStorage = editorsCount++;\r\n this.callBase();\r\n this._cleanCallback = Callbacks();\r\n this._contentInitializedCallback = Callbacks()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n [ANONYMOUS_TEMPLATE_NAME]: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _focusTarget: function() {\r\n return this._getContent()\r\n },\r\n _getContent: function() {\r\n return this.$element().find(\".\".concat(HTML_EDITOR_CONTENT_CLASS))\r\n },\r\n _focusInHandler: function(_ref) {\r\n var {\r\n relatedTarget: relatedTarget\r\n } = _ref;\r\n if (this._shouldSkipFocusEvent(relatedTarget)) {\r\n return\r\n }\r\n this._toggleFocusClass(true, this.$element());\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(_ref2) {\r\n var {\r\n relatedTarget: relatedTarget\r\n } = _ref2;\r\n if (this._shouldSkipFocusEvent(relatedTarget)) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this.$element());\r\n this.callBase.apply(this, arguments)\r\n },\r\n _shouldSkipFocusEvent: function(relatedTarget) {\r\n return $(relatedTarget).hasClass(QUILL_CLIPBOARD_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this._$htmlContainer = $(\"<div>\").addClass(QUILL_CONTAINER_CLASS);\r\n this.$element().attr(\"role\", \"application\").addClass(HTML_EDITOR_CLASS).wrapInner(this._$htmlContainer);\r\n this._renderStylingMode();\r\n var template = this._getTemplate(ANONYMOUS_TEMPLATE_NAME);\r\n this._$templateResult = template && template.render({\r\n container: getPublicElement(this._$htmlContainer),\r\n noModel: true,\r\n transclude: true\r\n });\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this._updateContainerMarkup()\r\n },\r\n _renderValidationState() {\r\n var $content = this._getContent();\r\n if (1 === $content.length) {\r\n this.callBase()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<textarea>\").addClass(HTML_EDITOR_SUBMIT_ELEMENT_CLASS).attr(\"hidden\", true).appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(value)\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _createNoScriptFrame: function() {\r\n return $(\"<iframe>\").css(\"display\", \"none\").attr({\r\n srcdoc: \"\",\r\n id: \"xss-frame\",\r\n sandbox: \"allow-same-origin\"\r\n })\r\n },\r\n _removeXSSVulnerableHtml: function(value) {\r\n var $frame = this._createNoScriptFrame().appendTo(\"body\");\r\n var frame = $frame.get(0);\r\n var frameWindow = frame.contentWindow;\r\n var frameDocument = frameWindow.document;\r\n var frameDocumentBody = frameDocument.body;\r\n frameDocumentBody.innerHTML = value;\r\n var removeInlineHandlers = element => {\r\n if (element.attributes) {\r\n for (var i = 0; i < element.attributes.length; i++) {\r\n var name = element.attributes[i].name;\r\n if (name.startsWith(\"on\")) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n if (element.childNodes) {\r\n for (var _i = 0; _i < element.childNodes.length; _i++) {\r\n removeInlineHandlers(element.childNodes[_i])\r\n }\r\n }\r\n };\r\n removeInlineHandlers(frameDocumentBody);\r\n frameDocumentBody.querySelectorAll(\"script\").forEach(scriptNode => {\r\n scriptNode.remove()\r\n });\r\n var sanitizedHtml = frameDocumentBody.innerHTML;\r\n $frame.remove();\r\n return sanitizedHtml\r\n },\r\n _updateContainerMarkup: function() {\r\n var markup = this.option(\"value\");\r\n if (this._isMarkdownValue()) {\r\n this._prepareMarkdownConverter();\r\n markup = this._markdownConverter.toHtml(markup)\r\n }\r\n if (markup) {\r\n var sanitizedMarkup = this._removeXSSVulnerableHtml(markup);\r\n this._$htmlContainer.html(sanitizedMarkup)\r\n }\r\n },\r\n _prepareMarkdownConverter: function() {\r\n var MarkdownConverter = ConverterController.getConverter(\"markdown\");\r\n if (MarkdownConverter) {\r\n this._markdownConverter = new MarkdownConverter\r\n } else {\r\n throw Errors.Error(\"E1051\", \"markdown\")\r\n }\r\n },\r\n _render: function() {\r\n this._prepareConverters();\r\n this.callBase()\r\n },\r\n _prepareQuillRegistrator: function() {\r\n if (!this._quillRegistrator) {\r\n this._quillRegistrator = new QuillRegistrator\r\n }\r\n },\r\n _getRegistrator: function() {\r\n this._prepareQuillRegistrator();\r\n return this._quillRegistrator\r\n },\r\n _prepareConverters: function() {\r\n if (!this._deltaConverter) {\r\n var DeltaConverter = ConverterController.getConverter(\"delta\");\r\n if (DeltaConverter) {\r\n this._deltaConverter = new DeltaConverter\r\n }\r\n }\r\n if (this.option(\"valueType\") === MARKDOWN_VALUE_TYPE && !this._markdownConverter) {\r\n this._prepareMarkdownConverter()\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n this._contentRenderedDeferred = new Deferred;\r\n var renderContentPromise = this._contentRenderedDeferred.promise();\r\n this.callBase();\r\n this._renderHtmlEditor();\r\n this._renderFormDialog();\r\n this._addKeyPressHandler();\r\n return renderContentPromise\r\n },\r\n _pointerMoveHandler: function(e) {\r\n if (isIos) {\r\n e.stopPropagation()\r\n }\r\n },\r\n _attachFocusEvents: function() {\r\n deferRender(this.callBase.bind(this))\r\n },\r\n _addKeyPressHandler: function() {\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n eventsEngine.on(this._$htmlContainer, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _keyDownHandler: function(e) {\r\n this._saveValueChangeEvent(e)\r\n },\r\n _renderHtmlEditor: function() {\r\n var customizeModules = this.option(\"customizeModules\");\r\n var modulesConfig = this._getModulesConfig();\r\n if (isFunction(customizeModules)) {\r\n customizeModules(modulesConfig)\r\n }\r\n this._quillInstance = this._getRegistrator().createEditor(this._$htmlContainer[0], {\r\n placeholder: this.option(\"placeholder\"),\r\n readOnly: this.option(\"readOnly\") || this.option(\"disabled\"),\r\n modules: modulesConfig,\r\n theme: \"basic\"\r\n });\r\n this._renderValidationState();\r\n this._deltaConverter.setQuillInstance(this._quillInstance);\r\n this._textChangeHandlerWithContext = this._textChangeHandler.bind(this);\r\n this._quillInstance.on(\"text-change\", this._textChangeHandlerWithContext);\r\n this._renderScrollHandler();\r\n if (this._hasTranscludedContent()) {\r\n this._updateContentTask = executeAsync(() => {\r\n this._applyTranscludedContent()\r\n })\r\n } else {\r\n this._finalizeContentRendering()\r\n }\r\n },\r\n _renderScrollHandler: function() {\r\n var $scrollContainer = this._getContent();\r\n var initScrollData = prepareScrollData($scrollContainer);\r\n eventsEngine.on($scrollContainer, addNamespace(scrollEvents.init, this.NAME), initScrollData, noop);\r\n eventsEngine.on($scrollContainer, addNamespace(pointerEvents.move, this.NAME), this._pointerMoveHandler.bind(this))\r\n },\r\n _applyTranscludedContent: function() {\r\n var valueOption = this.option(\"value\");\r\n if (!isDefined(valueOption)) {\r\n var html = this._deltaConverter.toHtml();\r\n var newDelta = this._quillInstance.clipboard.convert({\r\n html: html\r\n });\r\n if (newDelta.ops.length) {\r\n this._quillInstance.setContents(newDelta);\r\n return\r\n }\r\n }\r\n this._finalizeContentRendering()\r\n },\r\n _hasTranscludedContent: function() {\r\n return this._$templateResult && this._$templateResult.length\r\n },\r\n _getModulesConfig: function() {\r\n var quill = this._getRegistrator().getQuill();\r\n var wordListMatcher = getWordMatcher(quill);\r\n var modulesConfig = extend({}, {\r\n table: true,\r\n toolbar: this._getModuleConfigByOption(\"toolbar\"),\r\n variables: this._getModuleConfigByOption(\"variables\"),\r\n resizing: this._getModuleConfigByOption(\"mediaResizing\"),\r\n tableResizing: this._getModuleConfigByOption(\"tableResizing\"),\r\n tableContextMenu: this._getModuleConfigByOption(\"tableContextMenu\"),\r\n imageUpload: this._getModuleConfigByOption(\"imageUpload\"),\r\n imageCursor: this._getBaseModuleConfig(),\r\n mentions: this._getModuleConfigByOption(\"mentions\"),\r\n uploader: {\r\n onDrop: e => this._saveValueChangeEvent(dxEvent(e)),\r\n imageBlot: \"extendedImage\"\r\n },\r\n keyboard: {\r\n onKeydown: e => this._saveValueChangeEvent(dxEvent(e))\r\n },\r\n clipboard: {\r\n onPaste: e => this._saveValueChangeEvent(dxEvent(e)),\r\n onCut: e => this._saveValueChangeEvent(dxEvent(e)),\r\n matchers: [\r\n [\"p.MsoListParagraphCxSpFirst\", wordListMatcher],\r\n [\"p.MsoListParagraphCxSpMiddle\", wordListMatcher],\r\n [\"p.MsoListParagraphCxSpLast\", wordListMatcher]\r\n ]\r\n },\r\n multiline: Boolean(this.option(\"allowSoftLineBreak\"))\r\n }, this._getCustomModules());\r\n return modulesConfig\r\n },\r\n _getModuleConfigByOption: function(userOptionName) {\r\n var optionValue = this.option(userOptionName);\r\n var config = {};\r\n if (!isDefined(optionValue)) {\r\n return\r\n }\r\n if (Array.isArray(optionValue)) {\r\n config[userOptionName] = optionValue\r\n } else {\r\n config = optionValue\r\n }\r\n return extend(this._getBaseModuleConfig(), config)\r\n },\r\n _getBaseModuleConfig: function() {\r\n return {\r\n editorInstance: this\r\n }\r\n },\r\n _getCustomModules: function() {\r\n var modules = {};\r\n var moduleNames = this._getRegistrator().getRegisteredModuleNames();\r\n moduleNames.forEach(modulePath => {\r\n modules[modulePath] = this._getBaseModuleConfig()\r\n });\r\n return modules\r\n },\r\n _textChangeHandler: function(newDelta, oldDelta, source) {\r\n var htmlMarkup = this._deltaConverter.toHtml();\r\n var convertedValue = this._isMarkdownValue() ? this._updateValueByType(MARKDOWN_VALUE_TYPE, htmlMarkup) : htmlMarkup;\r\n var currentValue = this.option(\"value\");\r\n if (currentValue !== convertedValue && !this._isNullValueConverted(currentValue, convertedValue)) {\r\n this._isEditorUpdating = true;\r\n this.option(\"value\", convertedValue)\r\n }\r\n this._finalizeContentRendering()\r\n },\r\n _isNullValueConverted: function(currentValue, convertedValue) {\r\n return null === currentValue && \"\" === convertedValue\r\n },\r\n _finalizeContentRendering: function() {\r\n if (this._contentRenderedDeferred) {\r\n this.clearHistory();\r\n this._contentInitializedCallback.fire();\r\n this._contentRenderedDeferred.resolve();\r\n this._contentRenderedDeferred = void 0\r\n }\r\n },\r\n _updateValueByType: function(valueType, value) {\r\n var converter = this._markdownConverter;\r\n if (!isDefined(converter)) {\r\n return\r\n }\r\n var currentValue = ensureDefined(value, this.option(\"value\"));\r\n return valueType === MARKDOWN_VALUE_TYPE ? converter.toMarkdown(currentValue) : converter.toHtml(currentValue)\r\n },\r\n _isMarkdownValue: function() {\r\n return this.option(\"valueType\") === MARKDOWN_VALUE_TYPE\r\n },\r\n _resetEnabledState: function() {\r\n if (this._quillInstance) {\r\n var isEnabled = !(this.option(\"readOnly\") || this.option(\"disabled\"));\r\n this._quillInstance.enable(isEnabled)\r\n }\r\n },\r\n _renderFormDialog: function() {\r\n var userOptions = extend(true, {\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: true\r\n }, this.option(\"formDialogOptions\"));\r\n this._formDialog = new FormDialog(this, userOptions)\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-htmleditor-\"\r\n },\r\n _getQuillContainer: function() {\r\n return this._$htmlContainer\r\n },\r\n _prepareModuleOptions(args) {\r\n var _args$fullName;\r\n var optionData = null === (_args$fullName = args.fullName) || void 0 === _args$fullName ? void 0 : _args$fullName.split(\".\");\r\n var value = args.value;\r\n var optionName = optionData.length >= 2 ? optionData[1] : args.name;\r\n if (3 === optionData.length) {\r\n value = {\r\n [optionData[2]]: value\r\n }\r\n }\r\n return [optionName, value]\r\n },\r\n _moduleOptionChanged: function(moduleName, args) {\r\n var moduleInstance = this.getModule(moduleName);\r\n var shouldPassOptionsToModule = Boolean(moduleInstance);\r\n if (shouldPassOptionsToModule) {\r\n moduleInstance.option(...this._prepareModuleOptions(args))\r\n } else {\r\n this._invalidate()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n if (this._quillInstance) {\r\n if (this._isEditorUpdating) {\r\n this._isEditorUpdating = false\r\n } else {\r\n var updatedValue = this._isMarkdownValue() ? this._updateValueByType(\"HTML\", args.value) : args.value;\r\n this._suppressValueChangeAction();\r\n this._updateHtmlContent(updatedValue);\r\n this._resumeValueChangeAction()\r\n }\r\n } else {\r\n this._$htmlContainer.html(args.value)\r\n }\r\n var value = this.option(\"value\");\r\n if (value !== args.previousValue) {\r\n this._setSubmitValue(value);\r\n this.callBase(_extends({}, args, {\r\n value: value\r\n }))\r\n }\r\n break;\r\n case \"placeholder\":\r\n case \"variables\":\r\n case \"toolbar\":\r\n case \"mentions\":\r\n case \"customizeModules\":\r\n case \"allowSoftLineBreak\":\r\n this._invalidate();\r\n break;\r\n case \"tableResizing\":\r\n this._moduleOptionChanged(\"tableResizing\", args);\r\n break;\r\n case \"valueType\":\r\n this._prepareConverters();\r\n var newValue = this._updateValueByType(args.value);\r\n if (\"html\" === args.value && this._quillInstance) {\r\n this._updateHtmlContent(newValue)\r\n } else {\r\n this.option(\"value\", newValue)\r\n }\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._resetEnabledState();\r\n break;\r\n case \"formDialogOptions\":\r\n this._renderFormDialog();\r\n break;\r\n case \"tableContextMenu\":\r\n this._moduleOptionChanged(\"tableContextMenu\", args);\r\n break;\r\n case \"mediaResizing\":\r\n if (!args.previousValue || !args.value) {\r\n this._invalidate()\r\n } else {\r\n this.getModule(\"resizing\").option(args.name, args.value)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._repaintToolbar();\r\n break;\r\n case \"imageUpload\":\r\n this._moduleOptionChanged(\"imageUpload\", args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _repaintToolbar: function() {\r\n this._applyToolbarMethod(\"repaint\")\r\n },\r\n _updateHtmlContent: function(html) {\r\n var newDelta = this._quillInstance.clipboard.convert({\r\n html: html\r\n });\r\n this._quillInstance.setContents(newDelta)\r\n },\r\n _clean: function() {\r\n if (this._quillInstance) {\r\n eventsEngine.off(this._getContent(), \".\".concat(this.NAME));\r\n this._quillInstance.off(\"text-change\", this._textChangeHandlerWithContext);\r\n this._cleanCallback.fire()\r\n }\r\n this._abortUpdateContentTask();\r\n this._cleanCallback.empty();\r\n this._contentInitializedCallback.empty();\r\n this.callBase()\r\n },\r\n _abortUpdateContentTask: function() {\r\n if (this._updateContentTask) {\r\n this._updateContentTask.abort();\r\n this._updateContentTask = void 0\r\n }\r\n },\r\n _applyQuillMethod(methodName, args) {\r\n if (this._quillInstance) {\r\n return this._quillInstance[methodName].apply(this._quillInstance, args)\r\n }\r\n },\r\n _applyQuillHistoryMethod(methodName) {\r\n if (this._quillInstance && this._quillInstance.history) {\r\n this._quillInstance.history[methodName]()\r\n }\r\n },\r\n _applyToolbarMethod(methodName) {\r\n var _this$getModule;\r\n null === (_this$getModule = this.getModule(\"toolbar\")) || void 0 === _this$getModule ? void 0 : _this$getModule[methodName]()\r\n },\r\n addCleanCallback(callback) {\r\n this._cleanCallback.add(callback)\r\n },\r\n addContentInitializedCallback(callback) {\r\n this._contentInitializedCallback.add(callback)\r\n },\r\n register: function(components) {\r\n this._getRegistrator().registerModules(components);\r\n if (this._quillInstance) {\r\n this.repaint()\r\n }\r\n },\r\n get: function(modulePath) {\r\n return this._getRegistrator().getQuill().import(modulePath)\r\n },\r\n getModule: function(moduleName) {\r\n return this._applyQuillMethod(\"getModule\", arguments)\r\n },\r\n getQuillInstance: function() {\r\n return this._quillInstance\r\n },\r\n getSelection: function(focus) {\r\n return this._applyQuillMethod(\"getSelection\", arguments)\r\n },\r\n setSelection: function(index, length) {\r\n this._applyQuillMethod(\"setSelection\", arguments)\r\n },\r\n getText: function(index, length) {\r\n return this._applyQuillMethod(\"getText\", arguments)\r\n },\r\n format: function(formatName, formatValue) {\r\n this._applyQuillMethod(\"format\", arguments)\r\n },\r\n formatText: function(index, length, formatName, formatValue) {\r\n this._applyQuillMethod(\"formatText\", arguments)\r\n },\r\n formatLine: function(index, length, formatName, formatValue) {\r\n this._applyQuillMethod(\"formatLine\", arguments)\r\n },\r\n getFormat: function(index, length) {\r\n return this._applyQuillMethod(\"getFormat\", arguments)\r\n },\r\n removeFormat: function(index, length) {\r\n return this._applyQuillMethod(\"removeFormat\", arguments)\r\n },\r\n clearHistory: function() {\r\n this._applyQuillHistoryMethod(\"clear\");\r\n this._applyToolbarMethod(\"updateHistoryWidgets\")\r\n },\r\n undo: function() {\r\n this._applyQuillHistoryMethod(\"undo\")\r\n },\r\n redo: function() {\r\n this._applyQuillHistoryMethod(\"redo\")\r\n },\r\n getLength: function() {\r\n return this._applyQuillMethod(\"getLength\")\r\n },\r\n getBounds: function(index, length) {\r\n return this._applyQuillMethod(\"getBounds\", arguments)\r\n },\r\n delete: function(index, length) {\r\n this._applyQuillMethod(\"deleteText\", arguments)\r\n },\r\n insertText: function(index, text, formats) {\r\n this._applyQuillMethod(\"insertText\", arguments)\r\n },\r\n insertEmbed: function(index, type, config) {\r\n this._applyQuillMethod(\"insertEmbed\", arguments)\r\n },\r\n showFormDialog: function(formConfig) {\r\n return this._formDialog.show(formConfig)\r\n },\r\n formDialogOption: function(optionName, optionValue) {\r\n return this._formDialog.popupOption.apply(this._formDialog, arguments)\r\n },\r\n focus: function() {\r\n this.callBase();\r\n this._applyQuillMethod(\"focus\")\r\n },\r\n blur: function() {\r\n this._applyQuillMethod(\"blur\")\r\n },\r\n getMentionKeyInTemplateStorage() {\r\n return this._mentionKeyInTemplateStorage\r\n }\r\n});\r\nregisterComponent(\"dxHtmlEditor\", HtmlEditor);\r\nexport default HtmlEditor;\r\n","/**\r\n * DevExtreme (esm/ui/html_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport HtmlEditor from \"./html_editor/ui.html_editor\";\r\nexport default HtmlEditor;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxHtmlEditor from 'devextreme/ui/html_editor';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiMentionComponent, DxoImageUploadModule, DxoFileUploaderOptionsModule, DxiTabModule, DxoMediaResizingModule, DxiMentionModule, DxoTableContextMenuModule, DxiItemModule, DxoTableResizingModule, DxoToolbarModule, DxoVariablesModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxHtmlEditorComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxHtmlEditor]\r\n\r\n */\r\nclass DxHtmlEditorComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowSoftLineBreakChange' },\r\n { emit: 'customizeModulesChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'imageUploadChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'mediaResizingChange' },\r\n { emit: 'mentionsChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'tableContextMenuChange' },\r\n { emit: 'tableResizingChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueTypeChange' },\r\n { emit: 'variablesChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.allowSoftLineBreak]\r\n \r\n */\r\n get allowSoftLineBreak() {\r\n return this._getOption('allowSoftLineBreak');\r\n }\r\n set allowSoftLineBreak(value) {\r\n this._setOption('allowSoftLineBreak', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.customizeModules]\r\n \r\n */\r\n get customizeModules() {\r\n return this._getOption('customizeModules');\r\n }\r\n set customizeModules(value) {\r\n this._setOption('customizeModules', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.imageUpload]\r\n \r\n */\r\n get imageUpload() {\r\n return this._getOption('imageUpload');\r\n }\r\n set imageUpload(value) {\r\n this._setOption('imageUpload', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.mediaResizing]\r\n \r\n */\r\n get mediaResizing() {\r\n return this._getOption('mediaResizing');\r\n }\r\n set mediaResizing(value) {\r\n this._setOption('mediaResizing', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.mentions]\r\n \r\n */\r\n get mentions() {\r\n return this._getOption('mentions');\r\n }\r\n set mentions(value) {\r\n this._setOption('mentions', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.tableContextMenu]\r\n \r\n */\r\n get tableContextMenu() {\r\n return this._getOption('tableContextMenu');\r\n }\r\n set tableContextMenu(value) {\r\n this._setOption('tableContextMenu', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.tableResizing]\r\n \r\n */\r\n get tableResizing() {\r\n return this._getOption('tableResizing');\r\n }\r\n set tableResizing(value) {\r\n this._setOption('tableResizing', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.toolbar]\r\n \r\n */\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.valueType]\r\n \r\n */\r\n get valueType() {\r\n return this._getOption('valueType');\r\n }\r\n set valueType(value) {\r\n this._setOption('valueType', value);\r\n }\r\n /**\r\n * [descr:dxHtmlEditorOptions.variables]\r\n \r\n */\r\n get variables() {\r\n return this._getOption('variables');\r\n }\r\n set variables(value) {\r\n this._setOption('variables', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get mentionsChildren() {\r\n return this._getOption('mentions');\r\n }\r\n set mentionsChildren(value) {\r\n this.setChildren('mentions', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxHtmlEditor(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('mentions', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('mentions');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxHtmlEditorComponent.ɵfac = function DxHtmlEditorComponent_Factory(t) { return new (t || DxHtmlEditorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxHtmlEditorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxHtmlEditorComponent, selectors: [[\"dx-html-editor\"]], contentQueries: function DxHtmlEditorComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiMentionComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.mentionsChildren = _t);\r\n } }, hostBindings: function DxHtmlEditorComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxHtmlEditorComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxHtmlEditorComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowSoftLineBreak: \"allowSoftLineBreak\", customizeModules: \"customizeModules\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", imageUpload: \"imageUpload\", isDirty: \"isDirty\", isValid: \"isValid\", mediaResizing: \"mediaResizing\", mentions: \"mentions\", name: \"name\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", tableContextMenu: \"tableContextMenu\", tableResizing: \"tableResizing\", toolbar: \"toolbar\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueType: \"valueType\", variables: \"variables\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowSoftLineBreakChange: \"allowSoftLineBreakChange\", customizeModulesChange: \"customizeModulesChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", imageUploadChange: \"imageUploadChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", mediaResizingChange: \"mediaResizingChange\", mentionsChange: \"mentionsChange\", nameChange: \"nameChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", tableContextMenuChange: \"tableContextMenuChange\", tableResizingChange: \"tableResizingChange\", toolbarChange: \"toolbarChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueTypeChange: \"valueTypeChange\", variablesChange: \"variablesChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxHtmlEditorComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxHtmlEditorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-html-editor',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowSoftLineBreak: [{\r\n type: Input\r\n }], customizeModules: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], imageUpload: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], mediaResizing: [{\r\n type: Input\r\n }], mentions: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], tableContextMenu: [{\r\n type: Input\r\n }], tableResizing: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueType: [{\r\n type: Input\r\n }], variables: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowSoftLineBreakChange: [{\r\n type: Output\r\n }], customizeModulesChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], imageUploadChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], mediaResizingChange: [{\r\n type: Output\r\n }], mentionsChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], tableContextMenuChange: [{\r\n type: Output\r\n }], tableResizingChange: [{\r\n type: Output\r\n }], toolbarChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueTypeChange: [{\r\n type: Output\r\n }], variablesChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], mentionsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiMentionComponent]\r\n }] }); })();\r\nclass DxHtmlEditorModule {\r\n}\r\n/** @nocollapse */ DxHtmlEditorModule.ɵfac = function DxHtmlEditorModule_Factory(t) { return new (t || DxHtmlEditorModule)(); };\r\n/** @nocollapse */ DxHtmlEditorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxHtmlEditorModule });\r\n/** @nocollapse */ DxHtmlEditorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxHtmlEditorModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxHtmlEditorComponent\r\n ],\r\n exports: [\r\n DxHtmlEditorComponent,\r\n DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxHtmlEditorModule, { declarations: [DxHtmlEditorComponent], imports: [DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxHtmlEditorComponent, DxoImageUploadModule,\r\n DxoFileUploaderOptionsModule,\r\n DxiTabModule,\r\n DxoMediaResizingModule,\r\n DxiMentionModule,\r\n DxoTableContextMenuModule,\r\n DxiItemModule,\r\n DxoTableResizingModule,\r\n DxoToolbarModule,\r\n DxoVariablesModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxHtmlEditorComponent, DxHtmlEditorModule };\n","/**\r\n * DevExtreme (esm/viz/gauges/linear_indicators.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n BaseIndicator,\r\n BaseTextCloudMarker,\r\n BaseRangeBar\r\n} from \"./base_indicators\";\r\nvar _Number = Number;\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar SimpleIndicator = BaseIndicator.inherit({\r\n _move: function() {\r\n var delta = this._actualPosition - this._zeroPosition;\r\n this._rootElement.move(this.vertical ? 0 : delta, this.vertical ? delta : 0);\r\n this._trackerElement && this._trackerElement.move(this.vertical ? 0 : delta, this.vertical ? delta : 0)\r\n },\r\n _isEnabled: function() {\r\n this.vertical = this._options.vertical;\r\n return this._options.length > 0 && this._options.width > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var width = options.width / 2;\r\n var length = options.length / 2;\r\n var p = this._zeroPosition;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n if (this.vertical) {\r\n x1 = options.x - length;\r\n x2 = options.x + length;\r\n y1 = p + width;\r\n y2 = p - width\r\n } else {\r\n x1 = p - width;\r\n x2 = p + width;\r\n y1 = options.y + length;\r\n y2 = options.y - length\r\n }\r\n return {\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n }\r\n },\r\n _render: function() {\r\n this._zeroPosition = this._translator.getCodomainStart()\r\n },\r\n _clear: function() {\r\n delete this._element\r\n },\r\n measure: function(layout) {\r\n var p = this.vertical ? layout.x : layout.y;\r\n return {\r\n min: p - this._options.length / 2,\r\n max: p + this._options.length / 2\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var p = this._actualPosition;\r\n var parameters = {\r\n x: p,\r\n y: p,\r\n value: this._currentValue,\r\n color: options.color,\r\n offset: options.width / 2\r\n };\r\n this.vertical ? parameters.x = options.x : parameters.y = options.y;\r\n return parameters\r\n }\r\n});\r\nvar rectangle = SimpleIndicator.inherit({\r\n _render: function() {\r\n var options = this._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n this.callBase();\r\n var p = this._zeroPosition;\r\n if (this.vertical) {\r\n x1 = options.x - options.length / 2;\r\n x2 = options.x + options.length / 2;\r\n y1 = p + options.width / 2;\r\n y2 = p - options.width / 2\r\n } else {\r\n x1 = p - options.width / 2;\r\n x2 = p + options.width / 2;\r\n y1 = options.y + options.length / 2;\r\n y2 = options.y - options.length / 2\r\n }\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._element.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n })\r\n }\r\n});\r\nvar rhombus = SimpleIndicator.inherit({\r\n _render: function() {\r\n var options = this._options;\r\n var x;\r\n var y;\r\n var dx;\r\n var dy;\r\n this.callBase();\r\n if (this.vertical) {\r\n x = options.x;\r\n y = this._zeroPosition;\r\n dx = options.length / 2 || 0;\r\n dy = options.width / 2 || 0\r\n } else {\r\n x = this._zeroPosition;\r\n y = options.y;\r\n dx = options.width / 2 || 0;\r\n dy = options.length / 2 || 0\r\n }\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._element.attr({\r\n points: [x - dx, y, x, y - dy, x + dx, y, x, y + dy]\r\n })\r\n }\r\n});\r\nvar circle = SimpleIndicator.inherit({\r\n _render: function() {\r\n var options = this._options;\r\n var x;\r\n var y;\r\n this.callBase();\r\n if (this.vertical) {\r\n x = options.x;\r\n y = this._zeroPosition\r\n } else {\r\n x = this._zeroPosition;\r\n y = options.y\r\n }\r\n var r = options.length / 2 || 0;\r\n this._element = this._element || this._renderer.circle().append(this._rootElement);\r\n this._element.attr({\r\n cx: x,\r\n cy: y,\r\n r: r\r\n })\r\n }\r\n});\r\nvar triangleMarker = SimpleIndicator.inherit({\r\n _isEnabled: function() {\r\n this.vertical = this._options.vertical;\r\n this._inverted = this.vertical ? \"right\" === _normalizeEnum(this._options.horizontalOrientation) : \"bottom\" === _normalizeEnum(this._options.verticalOrientation);\r\n return this._options.length > 0 && this._options.width > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _render: function() {\r\n var options = this._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var settings = {\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n this.callBase();\r\n if (this.vertical) {\r\n x1 = options.x;\r\n y1 = this._zeroPosition;\r\n x2 = x1 + _Number(this._inverted ? options.length : -options.length);\r\n settings.points = [x1, y1, x2, y1 - options.width / 2, x2, y1 + options.width / 2]\r\n } else {\r\n y1 = options.y;\r\n x1 = this._zeroPosition;\r\n y2 = y1 + _Number(this._inverted ? options.length : -options.length);\r\n settings.points = [x1, y1, x1 - options.width / 2, y2, x1 + options.width / 2, y2]\r\n }\r\n if (options.space > 0) {\r\n settings[\"stroke-width\"] = Math.min(options.space, options.width / 4) || 0;\r\n settings.stroke = settings[\"stroke-width\"] > 0 ? options.containerBackgroundColor || \"none\" : \"none\"\r\n }\r\n this._element = this._element || this._renderer.path([], \"area\").append(this._rootElement);\r\n this._element.attr(settings).sharp()\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var width = options.width / 2;\r\n var length = _Number(options.length);\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var result;\r\n width > 10 || (width = 10);\r\n length > 20 || (length = 20);\r\n if (this.vertical) {\r\n x1 = options.x;\r\n x2 = x1 + (this._inverted ? length : -length);\r\n y1 = this._zeroPosition + width;\r\n y2 = this._zeroPosition - width;\r\n result = [x1, y1, x2, y1, x2, y2, x1, y2]\r\n } else {\r\n y1 = options.y;\r\n y2 = y1 + (this._inverted ? length : -length);\r\n x1 = this._zeroPosition - width;\r\n x2 = this._zeroPosition + width;\r\n result = [x1, y1, x1, y2, x2, y2, x2, y1]\r\n }\r\n return {\r\n points: result\r\n }\r\n },\r\n measure: function(layout) {\r\n var length = _Number(this._options.length);\r\n var minBound;\r\n var maxBound;\r\n if (this.vertical) {\r\n minBound = maxBound = layout.x;\r\n if (this._inverted) {\r\n maxBound = minBound + length\r\n } else {\r\n minBound = maxBound - length\r\n }\r\n } else {\r\n minBound = maxBound = layout.y;\r\n if (this._inverted) {\r\n maxBound = minBound + length\r\n } else {\r\n minBound = maxBound - length\r\n }\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var s = (this._inverted ? options.length : -options.length) / 2;\r\n var parameters = this.callBase();\r\n this.vertical ? parameters.x += s : parameters.y += s;\r\n parameters.offset = options.length / 2;\r\n return parameters\r\n }\r\n});\r\nvar textCloud = BaseTextCloudMarker.inherit({\r\n _isEnabled: function() {\r\n this.vertical = this._options.vertical;\r\n this._inverted = this.vertical ? \"right\" === _normalizeEnum(this._options.horizontalOrientation) : \"bottom\" === _normalizeEnum(this._options.verticalOrientation);\r\n return true\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _getTextCloudOptions: function() {\r\n var x = this._actualPosition;\r\n var y = this._actualPosition;\r\n var type;\r\n if (this.vertical) {\r\n x = this._options.x;\r\n type = this._inverted ? \"top-left\" : \"top-right\"\r\n } else {\r\n y = this._options.y;\r\n type = this._inverted ? \"right-top\" : \"right-bottom\"\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n type: type\r\n }\r\n },\r\n measure: function(layout) {\r\n var minBound;\r\n var maxBound;\r\n var arrowLength = _Number(this._options.arrowLength) || 0;\r\n this._measureText();\r\n if (this.vertical) {\r\n if (this._inverted) {\r\n minBound = layout.x;\r\n maxBound = layout.x + arrowLength + this._textFullWidth\r\n } else {\r\n minBound = layout.x - arrowLength - this._textFullWidth;\r\n maxBound = layout.x\r\n }\r\n } else if (this._inverted) {\r\n minBound = layout.y;\r\n maxBound = layout.y + arrowLength + this._textFullHeight\r\n } else {\r\n minBound = layout.y - arrowLength - this._textFullHeight;\r\n maxBound = layout.y\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound,\r\n indent: 0\r\n }\r\n },\r\n _correctCloudType(type, _ref, _ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref2;\r\n if (\"right-top\" === type || \"right-bottom\" === type) {\r\n if (x - width < this._translator.getCodomainStart()) {\r\n type = \"left-\".concat(type.split(\"-\")[1])\r\n }\r\n } else if (\"top-left\" === type || \"top-right\" === type) {\r\n if (y + height > this._translator.getCodomainStart()) {\r\n type = \"bottom-\".concat(type.split(\"-\")[1])\r\n }\r\n }\r\n return type\r\n }\r\n});\r\nvar rangeBar = BaseRangeBar.inherit({\r\n _isEnabled: function() {\r\n this.vertical = this._options.vertical;\r\n this._inverted = this.vertical ? \"right\" === _normalizeEnum(this._options.horizontalOrientation) : \"bottom\" === _normalizeEnum(this._options.verticalOrientation);\r\n return this._options.size > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _createBarItem: function() {\r\n return this._renderer.path([], \"area\").append(this._rootElement)\r\n },\r\n _createTracker: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _setBarSides: function() {\r\n var options = this._options;\r\n var size = _Number(options.size);\r\n var minSide;\r\n var maxSide;\r\n if (this.vertical) {\r\n if (this._inverted) {\r\n minSide = options.x;\r\n maxSide = options.x + size\r\n } else {\r\n minSide = options.x - size;\r\n maxSide = options.x\r\n }\r\n } else if (this._inverted) {\r\n minSide = options.y;\r\n maxSide = options.y + size\r\n } else {\r\n minSide = options.y - size;\r\n maxSide = options.y\r\n }\r\n this._minSide = minSide;\r\n this._maxSide = maxSide;\r\n this._minBound = minSide;\r\n this._maxBound = maxSide\r\n },\r\n _getSpace: function() {\r\n var options = this._options;\r\n return options.space > 0 ? _Number(options.space) : 0\r\n },\r\n _isTextVisible: function() {\r\n var textOptions = this._options.text || {};\r\n return textOptions.indent > 0 || textOptions.indent < 0\r\n },\r\n _getTextAlign: function() {\r\n return this.vertical ? this._options.text.indent > 0 ? \"left\" : \"right\" : \"center\"\r\n },\r\n _setTextItemsSides: function() {\r\n var indent = _Number(this._options.text.indent);\r\n if (indent > 0) {\r\n this._lineStart = this._maxSide;\r\n this._lineEnd = this._maxSide + indent;\r\n this._textPosition = this._lineEnd + (this.vertical ? 2 : this._textHeight / 2);\r\n this._maxBound = this._textPosition + (this.vertical ? this._textWidth : this._textHeight / 2)\r\n } else if (indent < 0) {\r\n this._lineStart = this._minSide;\r\n this._lineEnd = this._minSide + indent;\r\n this._textPosition = this._lineEnd - (this.vertical ? 2 : this._textHeight / 2);\r\n this._minBound = this._textPosition - (this.vertical ? this._textWidth : this._textHeight / 2)\r\n }\r\n },\r\n _getPositions: function() {\r\n var startPosition = this._startPosition;\r\n var endPosition = this._endPosition;\r\n var space = this._space;\r\n var basePosition = this._basePosition;\r\n var actualPosition = this._actualPosition;\r\n var mainPosition1;\r\n var mainPosition2;\r\n var backPosition1;\r\n var backPosition2;\r\n if (startPosition < endPosition) {\r\n if (basePosition < actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n backPosition1 = mainPosition1 - space;\r\n backPosition2 = mainPosition2 + space\r\n } else {\r\n if (basePosition > actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n backPosition1 = mainPosition1 + space;\r\n backPosition2 = mainPosition2 - space\r\n }\r\n return {\r\n start: startPosition,\r\n end: endPosition,\r\n main1: mainPosition1,\r\n main2: mainPosition2,\r\n back1: backPosition1,\r\n back2: backPosition2\r\n }\r\n },\r\n _buildItemSettings: function(from, to) {\r\n var side1 = this._minSide;\r\n var side2 = this._maxSide;\r\n var points = this.vertical ? [side1, from, side1, to, side2, to, side2, from] : [from, side1, from, side2, to, side2, to, side1];\r\n return {\r\n points: points\r\n }\r\n },\r\n _updateTextPosition: function() {\r\n this._text.attr(this.vertical ? {\r\n x: this._textPosition,\r\n y: this._actualPosition + this._textVerticalOffset\r\n } : {\r\n x: this._actualPosition,\r\n y: this._textPosition + this._textVerticalOffset\r\n })\r\n },\r\n _updateLinePosition: function() {\r\n var actualPosition = this._actualPosition;\r\n var side1;\r\n var side2;\r\n var points;\r\n if (this.vertical) {\r\n if (this._basePosition >= actualPosition) {\r\n side1 = actualPosition;\r\n side2 = actualPosition + 2\r\n } else {\r\n side1 = actualPosition - 2;\r\n side2 = actualPosition\r\n }\r\n points = [this._lineStart, side1, this._lineStart, side2, this._lineEnd, side2, this._lineEnd, side1]\r\n } else {\r\n if (this._basePosition <= actualPosition) {\r\n side1 = actualPosition - 2;\r\n side2 = actualPosition\r\n } else {\r\n side1 = actualPosition;\r\n side2 = actualPosition + 2\r\n }\r\n points = [side1, this._lineStart, side1, this._lineEnd, side2, this._lineEnd, side2, this._lineStart]\r\n }\r\n this._line.attr({\r\n points: points\r\n }).sharp()\r\n },\r\n _getTooltipPosition: function() {\r\n var crossCenter = (this._minSide + this._maxSide) / 2;\r\n var alongCenter = (this._basePosition + this._actualPosition) / 2;\r\n return this.vertical ? {\r\n x: crossCenter,\r\n y: alongCenter\r\n } : {\r\n x: alongCenter,\r\n y: crossCenter\r\n }\r\n },\r\n measure: function(layout) {\r\n var size = _Number(this._options.size);\r\n var textIndent = _Number(this._options.text.indent);\r\n var minBound;\r\n var maxBound;\r\n var indent;\r\n this._measureText();\r\n if (this.vertical) {\r\n minBound = maxBound = layout.x;\r\n if (this._inverted) {\r\n maxBound += size\r\n } else {\r\n minBound -= size\r\n }\r\n if (this._hasText) {\r\n indent = this._textHeight / 2;\r\n if (textIndent > 0) {\r\n maxBound += textIndent + this._textWidth\r\n }\r\n if (textIndent < 0) {\r\n minBound += textIndent - this._textWidth\r\n }\r\n }\r\n } else {\r\n minBound = maxBound = layout.y;\r\n if (this._inverted) {\r\n maxBound += size\r\n } else {\r\n minBound -= size\r\n }\r\n if (this._hasText) {\r\n indent = this._textWidth / 2;\r\n if (textIndent > 0) {\r\n maxBound += textIndent + this._textHeight\r\n }\r\n if (textIndent < 0) {\r\n minBound += textIndent - this._textHeight\r\n }\r\n }\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound,\r\n indent: indent\r\n }\r\n }\r\n});\r\nexport {\r\n rangeBar as _default, rectangle, rhombus, circle, triangleMarker as trianglemarker, textCloud as textcloud, rangeBar as rangebar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/gauges/linear_range_container.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseRangeContainer from \"./base_range_container\";\r\nvar _Number = Number;\r\nvar _max = Math.max;\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar LinearRangeContainer = BaseRangeContainer.inherit({\r\n _processOptions: function() {\r\n this.vertical = this._options.vertical;\r\n this._inner = this._outer = 0;\r\n if (this.vertical) {\r\n switch (_normalizeEnum(this._options.horizontalOrientation)) {\r\n case \"left\":\r\n this._inner = 1;\r\n break;\r\n case \"center\":\r\n this._inner = this._outer = .5;\r\n break;\r\n default:\r\n this._outer = 1\r\n }\r\n } else {\r\n switch (_normalizeEnum(this._options.verticalOrientation)) {\r\n case \"top\":\r\n this._inner = 1;\r\n break;\r\n case \"center\":\r\n this._inner = this._outer = .5;\r\n break;\r\n default:\r\n this._outer = 1\r\n }\r\n }\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _createRange: function(range, layout) {\r\n var inner = this._inner;\r\n var outer = this._outer;\r\n var startPosition = this._translator.translate(range.start);\r\n var endPosition = this._translator.translate(range.end);\r\n var points;\r\n var x = layout.x;\r\n var y = layout.y;\r\n var startWidth = range.startWidth;\r\n var endWidth = range.endWidth;\r\n if (this.vertical) {\r\n points = [x - startWidth * inner, startPosition, x - endWidth * inner, endPosition, x + endWidth * outer, endPosition, x + startWidth * outer, startPosition]\r\n } else {\r\n points = [startPosition, y + startWidth * outer, startPosition, y - startWidth * inner, endPosition, y - endWidth * inner, endPosition, y + endWidth * outer]\r\n }\r\n return this._renderer.path(points, \"area\")\r\n },\r\n measure: function(layout) {\r\n var result = {};\r\n var width;\r\n result.min = result.max = layout[this.vertical ? \"x\" : \"y\"];\r\n width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n result.min -= this._inner * width;\r\n result.max += this._outer * width;\r\n return result\r\n }\r\n});\r\nexport default LinearRangeContainer;\r\n","/**\r\n * DevExtreme (esm/viz/gauges/linear_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nvar _max = Math.max;\r\nvar _min = Math.min;\r\nvar _round = Math.round;\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n BaseGauge\r\n} from \"./base_gauge\";\r\nimport {\r\n dxGauge,\r\n createIndicatorCreator\r\n} from \"./common\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport * as linearIndicators from \"./linear_indicators\";\r\nimport LinearRangeContainer from \"./linear_range_container\";\r\nvar dxLinearGauge = dxGauge.inherit({\r\n _rootClass: \"dxg-linear-gauge\",\r\n _factoryMethods: {\r\n rangeContainer: \"createLinearRangeContainer\",\r\n indicator: \"createLinearIndicator\"\r\n },\r\n _gridSpacingFactor: 25,\r\n _scaleTypes: {\r\n type: \"xyAxes\",\r\n drawingType: \"linear\"\r\n },\r\n _getTicksOrientation: function(scaleOptions) {\r\n return scaleOptions.isHorizontal ? scaleOptions.verticalOrientation : scaleOptions.horizontalOrientation\r\n },\r\n _getThemeManagerOptions() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.subTheme = \"_linear\";\r\n return options\r\n },\r\n _getInvertedState() {\r\n return !this._area.vertical && this.option(\"rtlEnabled\")\r\n },\r\n _prepareScaleSettings: function() {\r\n var scaleOptions = this.callBase();\r\n scaleOptions.inverted = this._getInvertedState();\r\n return scaleOptions\r\n },\r\n _updateScaleTickIndent: function(scaleOptions) {\r\n var indentFromTick = scaleOptions.label.indentFromTick;\r\n var length = scaleOptions.tick.length;\r\n var textParams = this._scale.measureLabels(extend({}, this._canvas));\r\n var verticalTextCorrection = scaleOptions.isHorizontal ? textParams.height + textParams.y : 0;\r\n var isIndentPositive = indentFromTick > 0;\r\n var orientation;\r\n var textCorrection;\r\n var tickCorrection;\r\n if (scaleOptions.isHorizontal) {\r\n orientation = isIndentPositive ? {\r\n center: .5,\r\n top: 0,\r\n bottom: 1\r\n } : {\r\n center: .5,\r\n top: 1,\r\n bottom: 0\r\n };\r\n tickCorrection = length * orientation[scaleOptions.verticalOrientation];\r\n textCorrection = textParams.y\r\n } else {\r\n orientation = isIndentPositive ? {\r\n center: .5,\r\n left: 0,\r\n right: 1\r\n } : {\r\n center: .5,\r\n left: 1,\r\n right: 0\r\n };\r\n tickCorrection = length * orientation[scaleOptions.horizontalOrientation];\r\n textCorrection = -textParams.width\r\n }\r\n scaleOptions.label.indentFromAxis = -indentFromTick + (isIndentPositive ? -tickCorrection + textCorrection : tickCorrection - verticalTextCorrection);\r\n this._scale.updateOptions(scaleOptions)\r\n },\r\n _shiftScale: function(layout, scaleOptions) {\r\n var canvas = extend({}, this._canvas);\r\n var isHorizontal = scaleOptions.isHorizontal;\r\n var scale = this._scale;\r\n canvas[isHorizontal ? \"left\" : \"top\"] = this._area[isHorizontal ? \"startCoord\" : \"endCoord\"];\r\n canvas[isHorizontal ? \"right\" : \"bottom\"] = canvas[isHorizontal ? \"width\" : \"height\"] - this._area[isHorizontal ? \"endCoord\" : \"startCoord\"];\r\n scale.draw(canvas);\r\n scale.shift({\r\n left: -layout.x,\r\n top: -layout.y\r\n })\r\n },\r\n _setupCodomain: function() {\r\n var geometry = this.option(\"geometry\") || {};\r\n var vertical = \"vertical\" === _normalizeEnum(geometry.orientation);\r\n this._area = {\r\n vertical: vertical,\r\n x: 0,\r\n y: 0,\r\n startCoord: -100,\r\n endCoord: 100\r\n };\r\n this._rangeContainer.vertical = vertical;\r\n this._translator.setInverted(this._getInvertedState());\r\n this._translator.setCodomain(-100, 100)\r\n },\r\n _getScaleLayoutValue: function() {\r\n return this._area[this._area.vertical ? \"x\" : \"y\"]\r\n },\r\n _getTicksCoefficients: function(options) {\r\n var coefs = {\r\n inner: 0,\r\n outer: 1\r\n };\r\n if (this._area.vertical) {\r\n if (\"left\" === options.horizontalOrientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else if (\"center\" === options.horizontalOrientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n } else if (\"top\" === options.verticalOrientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else if (\"center\" === options.verticalOrientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n return coefs\r\n },\r\n _correctScaleIndents: function(result, indentFromTick, textParams) {\r\n var vertical = this._area.vertical;\r\n if (indentFromTick >= 0) {\r\n result.max += indentFromTick + textParams[vertical ? \"width\" : \"height\"]\r\n } else {\r\n result.min -= -indentFromTick + textParams[vertical ? \"width\" : \"height\"]\r\n }\r\n result.indent = textParams[vertical ? \"height\" : \"width\"] / 2\r\n },\r\n _measureMainElements: function(elements, scaleMeasurement) {\r\n var x = this._area.x;\r\n var y = this._area.y;\r\n var minBound = 1e3;\r\n var maxBound = 0;\r\n var indent = 0;\r\n var scale = this._scale;\r\n _each(elements.concat(scale), (function(_, element) {\r\n var bounds = element.measure ? element.measure({\r\n x: x + element.getOffset(),\r\n y: y + element.getOffset()\r\n }) : scaleMeasurement;\r\n void 0 !== bounds.max && (maxBound = _max(maxBound, bounds.max));\r\n void 0 !== bounds.min && (minBound = _min(minBound, bounds.min));\r\n bounds.indent > 0 && (indent = _max(indent, bounds.indent))\r\n }));\r\n return {\r\n minBound: minBound,\r\n maxBound: maxBound,\r\n indent: indent\r\n }\r\n },\r\n _applyMainLayout: function(elements, scaleMeasurement) {\r\n var measurements = this._measureMainElements(elements, scaleMeasurement);\r\n var area = this._area;\r\n var rect;\r\n var offset;\r\n if (area.vertical) {\r\n rect = selectRectBySizes(this._innerRect, {\r\n width: measurements.maxBound - measurements.minBound\r\n });\r\n offset = (rect.left + rect.right) / 2 - (measurements.minBound + measurements.maxBound) / 2;\r\n area.startCoord = rect.bottom - measurements.indent;\r\n area.endCoord = rect.top + measurements.indent;\r\n area.x = _round(area.x + offset)\r\n } else {\r\n rect = selectRectBySizes(this._innerRect, {\r\n height: measurements.maxBound - measurements.minBound\r\n });\r\n offset = (rect.top + rect.bottom) / 2 - (measurements.minBound + measurements.maxBound) / 2;\r\n area.startCoord = rect.left + measurements.indent;\r\n area.endCoord = rect.right - measurements.indent;\r\n area.y = _round(area.y + offset)\r\n }\r\n this._translator.setCodomain(area.startCoord, area.endCoord);\r\n this._innerRect = rect\r\n },\r\n _getElementLayout: function(offset) {\r\n return {\r\n x: _round(this._area.x + offset),\r\n y: _round(this._area.y + offset)\r\n }\r\n },\r\n _getApproximateScreenRange: function() {\r\n var area = this._area;\r\n var s = area.vertical ? this._canvas.height : this._canvas.width;\r\n s > area.totalSize && (s = area.totalSize);\r\n s *= .8;\r\n return s\r\n },\r\n _getDefaultSize: function() {\r\n var geometry = this.option(\"geometry\") || {};\r\n if (\"vertical\" === geometry.orientation) {\r\n return {\r\n width: 100,\r\n height: 300\r\n }\r\n } else {\r\n return {\r\n width: 300,\r\n height: 100\r\n }\r\n }\r\n },\r\n _factory: clone(BaseGauge.prototype._factory)\r\n});\r\n\r\nfunction selectRectBySizes(srcRect, sizes, margins) {\r\n var rect = extend({}, srcRect);\r\n var step;\r\n margins = margins || {};\r\n if (sizes) {\r\n rect.left += margins.left || 0;\r\n rect.right -= margins.right || 0;\r\n rect.top += margins.top || 0;\r\n rect.bottom -= margins.bottom || 0;\r\n if (sizes.width > 0) {\r\n step = (rect.right - rect.left - sizes.width) / 2;\r\n if (step > 0) {\r\n rect.left += step;\r\n rect.right -= step\r\n }\r\n }\r\n if (sizes.height > 0) {\r\n step = (rect.bottom - rect.top - sizes.height) / 2;\r\n if (step > 0) {\r\n rect.top += step;\r\n rect.bottom -= step\r\n }\r\n }\r\n }\r\n return rect\r\n}\r\nvar indicators = dxLinearGauge.prototype._factory.indicators = {};\r\ndxLinearGauge.prototype._factory.createIndicator = createIndicatorCreator(indicators);\r\nindicators._default = linearIndicators._default;\r\nindicators.rectangle = linearIndicators.rectangle;\r\nindicators.rhombus = linearIndicators.rhombus;\r\nindicators.circle = linearIndicators.circle;\r\nindicators.trianglemarker = linearIndicators.trianglemarker;\r\nindicators.textcloud = linearIndicators.textcloud;\r\nindicators.rangebar = linearIndicators.rangebar;\r\ndxLinearGauge.prototype._factory.RangeContainer = LinearRangeContainer;\r\nregisterComponent(\"dxLinearGauge\", dxLinearGauge);\r\nexport default dxLinearGauge;\r\n","/**\r\n * DevExtreme (esm/viz/linear_gauge.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport LinearGauge from \"./gauges/linear_gauge\";\r\nexport default LinearGauge;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxLinearGauge from 'devextreme/viz/linear_gauge';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoExportModule, DxoGeometryModule, DxoLoadingIndicatorModule, DxoFontModule, DxoMarginModule, DxoRangeContainerModule, DxoBackgroundColorModule, DxiRangeModule, DxoColorModule, DxoWidthModule, DxoScaleModule, DxoLabelModule, DxoFormatModule, DxoMinorTickModule, DxoTickModule, DxoSizeModule, DxoSubvalueIndicatorModule, DxoTextModule, DxoTitleModule, DxoSubtitleModule, DxoTooltipModule, DxoBorderModule, DxoShadowModule, DxoValueIndicatorModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxLinearGauge]\r\n\r\n */\r\nclass DxLinearGaugeComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'animationChange' },\r\n { emit: 'containerBackgroundColorChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'geometryChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'rangeContainerChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scaleChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'subvalueIndicatorChange' },\r\n { emit: 'subvaluesChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueIndicatorChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.containerBackgroundColor]\r\n \r\n */\r\n get containerBackgroundColor() {\r\n return this._getOption('containerBackgroundColor');\r\n }\r\n set containerBackgroundColor(value) {\r\n this._setOption('containerBackgroundColor', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxLinearGaugeOptions.geometry]\r\n \r\n */\r\n get geometry() {\r\n return this._getOption('geometry');\r\n }\r\n set geometry(value) {\r\n this._setOption('geometry', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:dxLinearGaugeOptions.rangeContainer]\r\n \r\n */\r\n get rangeContainer() {\r\n return this._getOption('rangeContainer');\r\n }\r\n set rangeContainer(value) {\r\n this._setOption('rangeContainer', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLinearGaugeOptions.scale]\r\n \r\n */\r\n get scale() {\r\n return this._getOption('scale');\r\n }\r\n set scale(value) {\r\n this._setOption('scale', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxLinearGaugeOptions.subvalueIndicator]\r\n \r\n */\r\n get subvalueIndicator() {\r\n return this._getOption('subvalueIndicator');\r\n }\r\n set subvalueIndicator(value) {\r\n this._setOption('subvalueIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.subvalues]\r\n \r\n */\r\n get subvalues() {\r\n return this._getOption('subvalues');\r\n }\r\n set subvalues(value) {\r\n this._setOption('subvalues', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:BaseGaugeOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxLinearGaugeOptions.valueIndicator]\r\n \r\n */\r\n get valueIndicator() {\r\n return this._getOption('valueIndicator');\r\n }\r\n set valueIndicator(value) {\r\n this._setOption('valueIndicator', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxLinearGauge(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('subvalues', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('subvalues');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxLinearGaugeComponent.ɵfac = function DxLinearGaugeComponent_Factory(t) { return new (t || DxLinearGaugeComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxLinearGaugeComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxLinearGaugeComponent, selectors: [[\"dx-linear-gauge\"]], inputs: { animation: \"animation\", containerBackgroundColor: \"containerBackgroundColor\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", geometry: \"geometry\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", pathModified: \"pathModified\", rangeContainer: \"rangeContainer\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", scale: \"scale\", size: \"size\", subvalueIndicator: \"subvalueIndicator\", subvalues: \"subvalues\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", value: \"value\", valueIndicator: \"valueIndicator\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", animationChange: \"animationChange\", containerBackgroundColorChange: \"containerBackgroundColorChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", geometryChange: \"geometryChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", pathModifiedChange: \"pathModifiedChange\", rangeContainerChange: \"rangeContainerChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", scaleChange: \"scaleChange\", sizeChange: \"sizeChange\", subvalueIndicatorChange: \"subvalueIndicatorChange\", subvaluesChange: \"subvaluesChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valueChange: \"valueChange\", valueIndicatorChange: \"valueIndicatorChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxLinearGaugeComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLinearGaugeComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-linear-gauge',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], containerBackgroundColor: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], geometry: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], rangeContainer: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scale: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], subvalueIndicator: [{\r\n type: Input\r\n }], subvalues: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueIndicator: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], containerBackgroundColorChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], geometryChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], rangeContainerChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scaleChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], subvalueIndicatorChange: [{\r\n type: Output\r\n }], subvaluesChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueIndicatorChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxLinearGaugeModule {\r\n}\r\n/** @nocollapse */ DxLinearGaugeModule.ɵfac = function DxLinearGaugeModule_Factory(t) { return new (t || DxLinearGaugeModule)(); };\r\n/** @nocollapse */ DxLinearGaugeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxLinearGaugeModule });\r\n/** @nocollapse */ DxLinearGaugeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLinearGaugeModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxLinearGaugeComponent\r\n ],\r\n exports: [\r\n DxLinearGaugeComponent,\r\n DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxLinearGaugeModule, { declarations: [DxLinearGaugeComponent], imports: [DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxLinearGaugeComponent, DxoAnimationModule,\r\n DxoExportModule,\r\n DxoGeometryModule,\r\n DxoLoadingIndicatorModule,\r\n DxoFontModule,\r\n DxoMarginModule,\r\n DxoRangeContainerModule,\r\n DxoBackgroundColorModule,\r\n DxiRangeModule,\r\n DxoColorModule,\r\n DxoWidthModule,\r\n DxoScaleModule,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoMinorTickModule,\r\n DxoTickModule,\r\n DxoSizeModule,\r\n DxoSubvalueIndicatorModule,\r\n DxoTextModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoShadowModule,\r\n DxoValueIndicatorModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxLinearGaugeComponent, DxLinearGaugeModule };\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.reorder.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isMouseEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Sortable from \"../sortable\";\r\nvar REORDER_HANDLE_CONTAINER_CLASS = \"dx-list-reorder-handle-container\";\r\nvar REORDER_HANDLE_CLASS = \"dx-list-reorder-handle\";\r\nvar REORDERING_ITEM_GHOST_CLASS = \"dx-list-item-ghost-reordering\";\r\nvar STATE_HOVER_CLASS = \"dx-state-hover\";\r\nregisterDecorator(\"reorder\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n var list = this._list;\r\n this._groupedEnabled = this._list.option(\"grouped\");\r\n this._lockedDrag = false;\r\n var filter = this._groupedEnabled ? \"> .dx-list-items > .dx-list-group > .dx-list-group-body > .dx-list-item\" : \"> .dx-list-items > .dx-list-item\";\r\n this._sortable = list._createComponent(list._scrollView.content(), Sortable, extend({\r\n component: list,\r\n contentTemplate: null,\r\n allowReordering: false,\r\n filter: filter,\r\n container: list.$element(),\r\n dragDirection: list.option(\"itemDragging.group\") ? \"both\" : \"vertical\",\r\n handle: \".\".concat(REORDER_HANDLE_CLASS),\r\n dragTemplate: this._dragTemplate,\r\n onDragStart: this._dragStartHandler.bind(this),\r\n onDragChange: this._dragChangeHandler.bind(this),\r\n onReorder: this._reorderHandler.bind(this)\r\n }, list.option(\"itemDragging\")))\r\n },\r\n afterRender: function() {\r\n this._sortable.update()\r\n },\r\n _dragTemplate: function(e) {\r\n var result = $(e.itemElement).clone().addClass(REORDERING_ITEM_GHOST_CLASS).addClass(STATE_HOVER_CLASS);\r\n setWidth(result, getWidth(e.itemElement));\r\n return result\r\n },\r\n _dragStartHandler: function(e) {\r\n if (this._lockedDrag) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _dragChangeHandler: function(e) {\r\n if (this._groupedEnabled && !this._sameParent(e.fromIndex, e.toIndex)) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _sameParent: function(fromIndex, toIndex) {\r\n var $dragging = this._list.getItemElementByFlatIndex(fromIndex);\r\n var $over = this._list.getItemElementByFlatIndex(toIndex);\r\n return $over.parent().get(0) === $dragging.parent().get(0)\r\n },\r\n _reorderHandler: function(e) {\r\n var $targetElement = this._list.getItemElementByFlatIndex(e.toIndex);\r\n this._list.reorderItem($(e.itemElement), $targetElement)\r\n },\r\n afterBag: function(config) {\r\n var $handle = $(\"<div>\").addClass(REORDER_HANDLE_CLASS);\r\n eventsEngine.on($handle, \"dxpointerdown\", e => {\r\n this._lockedDrag = !isMouseEvent(e)\r\n });\r\n eventsEngine.on($handle, \"dxhold\", {\r\n timeout: 30\r\n }, e => {\r\n e.cancel = true;\r\n this._lockedDrag = false\r\n });\r\n config.$container.addClass(REORDER_HANDLE_CONTAINER_CLASS).append($handle)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport List from \"./list_light\";\r\nimport \"./list/modules/selection\";\r\nimport \"./list/modules/deleting\";\r\nimport \"./list/modules/dragging\";\r\nimport \"./list/modules/context\";\r\nimport \"./list/modules/search\";\r\nexport default List;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxList from 'devextreme/ui/list';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiMenuItemComponent, DxoItemDraggingModule, DxoCursorOffsetModule, DxiItemModule, DxiMenuItemModule, DxoSearchEditorOptionsModule, DxiButtonModule, DxoOptionsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxList]\r\n\r\n */\r\nclass DxListComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'groupRendered', emit: 'onGroupRendered' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemDeleted', emit: 'onItemDeleted' },\r\n { subscribe: 'itemDeleting', emit: 'onItemDeleting' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'itemReordered', emit: 'onItemReordered' },\r\n { subscribe: 'itemSwipe', emit: 'onItemSwipe' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pageLoading', emit: 'onPageLoading' },\r\n { subscribe: 'pullRefresh', emit: 'onPullRefresh' },\r\n { subscribe: 'scroll', emit: 'onScroll' },\r\n { subscribe: 'selectAllValueChanged', emit: 'onSelectAllValueChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowItemDeletingChange' },\r\n { emit: 'bounceEnabledChange' },\r\n { emit: 'collapsibleGroupsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupedChange' },\r\n { emit: 'groupTemplateChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'indicateLoadingChange' },\r\n { emit: 'itemDeleteModeChange' },\r\n { emit: 'itemDraggingChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'menuItemsChange' },\r\n { emit: 'menuModeChange' },\r\n { emit: 'nextButtonTextChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'pageLoadingTextChange' },\r\n { emit: 'pageLoadModeChange' },\r\n { emit: 'pulledDownTextChange' },\r\n { emit: 'pullingDownTextChange' },\r\n { emit: 'pullRefreshEnabledChange' },\r\n { emit: 'refreshingTextChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollByContentChange' },\r\n { emit: 'scrollByThumbChange' },\r\n { emit: 'scrollingEnabledChange' },\r\n { emit: 'searchEditorOptionsChange' },\r\n { emit: 'searchEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'searchValueChange' },\r\n { emit: 'selectAllModeChange' },\r\n { emit: 'selectAllTextChange' },\r\n { emit: 'selectByClickChange' },\r\n { emit: 'selectedItemKeysChange' },\r\n { emit: 'selectedItemsChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'showScrollbarChange' },\r\n { emit: 'showSelectionControlsChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'useNativeScrollingChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.allowItemDeleting]\r\n \r\n */\r\n get allowItemDeleting() {\r\n return this._getOption('allowItemDeleting');\r\n }\r\n set allowItemDeleting(value) {\r\n this._setOption('allowItemDeleting', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.bounceEnabled]\r\n \r\n */\r\n get bounceEnabled() {\r\n return this._getOption('bounceEnabled');\r\n }\r\n set bounceEnabled(value) {\r\n this._setOption('bounceEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.collapsibleGroups]\r\n \r\n */\r\n get collapsibleGroups() {\r\n return this._getOption('collapsibleGroups');\r\n }\r\n set collapsibleGroups(value) {\r\n this._setOption('collapsibleGroups', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.grouped]\r\n \r\n */\r\n get grouped() {\r\n return this._getOption('grouped');\r\n }\r\n set grouped(value) {\r\n this._setOption('grouped', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.groupTemplate]\r\n \r\n */\r\n get groupTemplate() {\r\n return this._getOption('groupTemplate');\r\n }\r\n set groupTemplate(value) {\r\n this._setOption('groupTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.indicateLoading]\r\n \r\n */\r\n get indicateLoading() {\r\n return this._getOption('indicateLoading');\r\n }\r\n set indicateLoading(value) {\r\n this._setOption('indicateLoading', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.itemDeleteMode]\r\n \r\n */\r\n get itemDeleteMode() {\r\n return this._getOption('itemDeleteMode');\r\n }\r\n set itemDeleteMode(value) {\r\n this._setOption('itemDeleteMode', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.itemDragging]\r\n \r\n */\r\n get itemDragging() {\r\n return this._getOption('itemDragging');\r\n }\r\n set itemDragging(value) {\r\n this._setOption('itemDragging', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.menuItems]\r\n \r\n */\r\n get menuItems() {\r\n return this._getOption('menuItems');\r\n }\r\n set menuItems(value) {\r\n this._setOption('menuItems', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.menuMode]\r\n \r\n */\r\n get menuMode() {\r\n return this._getOption('menuMode');\r\n }\r\n set menuMode(value) {\r\n this._setOption('menuMode', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.nextButtonText]\r\n \r\n */\r\n get nextButtonText() {\r\n return this._getOption('nextButtonText');\r\n }\r\n set nextButtonText(value) {\r\n this._setOption('nextButtonText', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.pageLoadingText]\r\n \r\n */\r\n get pageLoadingText() {\r\n return this._getOption('pageLoadingText');\r\n }\r\n set pageLoadingText(value) {\r\n this._setOption('pageLoadingText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.pageLoadMode]\r\n \r\n */\r\n get pageLoadMode() {\r\n return this._getOption('pageLoadMode');\r\n }\r\n set pageLoadMode(value) {\r\n this._setOption('pageLoadMode', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.pulledDownText]\r\n \r\n */\r\n get pulledDownText() {\r\n return this._getOption('pulledDownText');\r\n }\r\n set pulledDownText(value) {\r\n this._setOption('pulledDownText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.pullingDownText]\r\n \r\n */\r\n get pullingDownText() {\r\n return this._getOption('pullingDownText');\r\n }\r\n set pullingDownText(value) {\r\n this._setOption('pullingDownText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.pullRefreshEnabled]\r\n \r\n */\r\n get pullRefreshEnabled() {\r\n return this._getOption('pullRefreshEnabled');\r\n }\r\n set pullRefreshEnabled(value) {\r\n this._setOption('pullRefreshEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.refreshingText]\r\n \r\n */\r\n get refreshingText() {\r\n return this._getOption('refreshingText');\r\n }\r\n set refreshingText(value) {\r\n this._setOption('refreshingText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.scrollByContent]\r\n \r\n */\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.scrollByThumb]\r\n \r\n */\r\n get scrollByThumb() {\r\n return this._getOption('scrollByThumb');\r\n }\r\n set scrollByThumb(value) {\r\n this._setOption('scrollByThumb', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.scrollingEnabled]\r\n \r\n */\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchEditorOptions]\r\n \r\n */\r\n get searchEditorOptions() {\r\n return this._getOption('searchEditorOptions');\r\n }\r\n set searchEditorOptions(value) {\r\n this._setOption('searchEditorOptions', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchEnabled]\r\n \r\n */\r\n get searchEnabled() {\r\n return this._getOption('searchEnabled');\r\n }\r\n set searchEnabled(value) {\r\n this._setOption('searchEnabled', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchValue]\r\n \r\n */\r\n get searchValue() {\r\n return this._getOption('searchValue');\r\n }\r\n set searchValue(value) {\r\n this._setOption('searchValue', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.selectAllMode]\r\n \r\n */\r\n get selectAllMode() {\r\n return this._getOption('selectAllMode');\r\n }\r\n set selectAllMode(value) {\r\n this._setOption('selectAllMode', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.selectAllText]\r\n \r\n */\r\n get selectAllText() {\r\n return this._getOption('selectAllText');\r\n }\r\n set selectAllText(value) {\r\n this._setOption('selectAllText', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.selectByClick]\r\n \r\n */\r\n get selectByClick() {\r\n return this._getOption('selectByClick');\r\n }\r\n set selectByClick(value) {\r\n this._setOption('selectByClick', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItemKeys]\r\n \r\n */\r\n get selectedItemKeys() {\r\n return this._getOption('selectedItemKeys');\r\n }\r\n set selectedItemKeys(value) {\r\n this._setOption('selectedItemKeys', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItems]\r\n \r\n */\r\n get selectedItems() {\r\n return this._getOption('selectedItems');\r\n }\r\n set selectedItems(value) {\r\n this._setOption('selectedItems', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.showScrollbar]\r\n \r\n */\r\n get showScrollbar() {\r\n return this._getOption('showScrollbar');\r\n }\r\n set showScrollbar(value) {\r\n this._setOption('showScrollbar', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.showSelectionControls]\r\n \r\n */\r\n get showSelectionControls() {\r\n return this._getOption('showSelectionControls');\r\n }\r\n set showSelectionControls(value) {\r\n this._setOption('showSelectionControls', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxListOptions.useNativeScrolling]\r\n \r\n */\r\n get useNativeScrolling() {\r\n return this._getOption('useNativeScrolling');\r\n }\r\n set useNativeScrolling(value) {\r\n this._setOption('useNativeScrolling', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n get menuItemsChildren() {\r\n return this._getOption('menuItems');\r\n }\r\n set menuItemsChildren(value) {\r\n this.setChildren('menuItems', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxList(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('menuItems', changes);\r\n this.setupChanges('searchExpr', changes);\r\n this.setupChanges('selectedItemKeys', changes);\r\n this.setupChanges('selectedItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('menuItems');\r\n this._idh.doCheck('searchExpr');\r\n this._idh.doCheck('selectedItemKeys');\r\n this._idh.doCheck('selectedItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxListComponent.ɵfac = function DxListComponent_Factory(t) { return new (t || DxListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxListComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxListComponent, selectors: [[\"dx-list\"]], contentQueries: function DxListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiMenuItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuItemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowItemDeleting: \"allowItemDeleting\", bounceEnabled: \"bounceEnabled\", collapsibleGroups: \"collapsibleGroups\", dataSource: \"dataSource\", disabled: \"disabled\", displayExpr: \"displayExpr\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", grouped: \"grouped\", groupTemplate: \"groupTemplate\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", indicateLoading: \"indicateLoading\", itemDeleteMode: \"itemDeleteMode\", itemDragging: \"itemDragging\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", keyExpr: \"keyExpr\", menuItems: \"menuItems\", menuMode: \"menuMode\", nextButtonText: \"nextButtonText\", noDataText: \"noDataText\", pageLoadingText: \"pageLoadingText\", pageLoadMode: \"pageLoadMode\", pulledDownText: \"pulledDownText\", pullingDownText: \"pullingDownText\", pullRefreshEnabled: \"pullRefreshEnabled\", refreshingText: \"refreshingText\", repaintChangesOnly: \"repaintChangesOnly\", rtlEnabled: \"rtlEnabled\", scrollByContent: \"scrollByContent\", scrollByThumb: \"scrollByThumb\", scrollingEnabled: \"scrollingEnabled\", searchEditorOptions: \"searchEditorOptions\", searchEnabled: \"searchEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchTimeout: \"searchTimeout\", searchValue: \"searchValue\", selectAllMode: \"selectAllMode\", selectAllText: \"selectAllText\", selectByClick: \"selectByClick\", selectedItemKeys: \"selectedItemKeys\", selectedItems: \"selectedItems\", selectionMode: \"selectionMode\", showScrollbar: \"showScrollbar\", showSelectionControls: \"showSelectionControls\", tabIndex: \"tabIndex\", useNativeScrolling: \"useNativeScrolling\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onGroupRendered: \"onGroupRendered\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemDeleted: \"onItemDeleted\", onItemDeleting: \"onItemDeleting\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onItemReordered: \"onItemReordered\", onItemSwipe: \"onItemSwipe\", onOptionChanged: \"onOptionChanged\", onPageLoading: \"onPageLoading\", onPullRefresh: \"onPullRefresh\", onScroll: \"onScroll\", onSelectAllValueChanged: \"onSelectAllValueChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowItemDeletingChange: \"allowItemDeletingChange\", bounceEnabledChange: \"bounceEnabledChange\", collapsibleGroupsChange: \"collapsibleGroupsChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupedChange: \"groupedChange\", groupTemplateChange: \"groupTemplateChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", indicateLoadingChange: \"indicateLoadingChange\", itemDeleteModeChange: \"itemDeleteModeChange\", itemDraggingChange: \"itemDraggingChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", keyExprChange: \"keyExprChange\", menuItemsChange: \"menuItemsChange\", menuModeChange: \"menuModeChange\", nextButtonTextChange: \"nextButtonTextChange\", noDataTextChange: \"noDataTextChange\", pageLoadingTextChange: \"pageLoadingTextChange\", pageLoadModeChange: \"pageLoadModeChange\", pulledDownTextChange: \"pulledDownTextChange\", pullingDownTextChange: \"pullingDownTextChange\", pullRefreshEnabledChange: \"pullRefreshEnabledChange\", refreshingTextChange: \"refreshingTextChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollByContentChange: \"scrollByContentChange\", scrollByThumbChange: \"scrollByThumbChange\", scrollingEnabledChange: \"scrollingEnabledChange\", searchEditorOptionsChange: \"searchEditorOptionsChange\", searchEnabledChange: \"searchEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchTimeoutChange: \"searchTimeoutChange\", searchValueChange: \"searchValueChange\", selectAllModeChange: \"selectAllModeChange\", selectAllTextChange: \"selectAllTextChange\", selectByClickChange: \"selectByClickChange\", selectedItemKeysChange: \"selectedItemKeysChange\", selectedItemsChange: \"selectedItemsChange\", selectionModeChange: \"selectionModeChange\", showScrollbarChange: \"showScrollbarChange\", showSelectionControlsChange: \"showSelectionControlsChange\", tabIndexChange: \"tabIndexChange\", useNativeScrollingChange: \"useNativeScrollingChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxListComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxListComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-list',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowItemDeleting: [{\r\n type: Input\r\n }], bounceEnabled: [{\r\n type: Input\r\n }], collapsibleGroups: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], grouped: [{\r\n type: Input\r\n }], groupTemplate: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], indicateLoading: [{\r\n type: Input\r\n }], itemDeleteMode: [{\r\n type: Input\r\n }], itemDragging: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], menuItems: [{\r\n type: Input\r\n }], menuMode: [{\r\n type: Input\r\n }], nextButtonText: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], pageLoadingText: [{\r\n type: Input\r\n }], pageLoadMode: [{\r\n type: Input\r\n }], pulledDownText: [{\r\n type: Input\r\n }], pullingDownText: [{\r\n type: Input\r\n }], pullRefreshEnabled: [{\r\n type: Input\r\n }], refreshingText: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollByContent: [{\r\n type: Input\r\n }], scrollByThumb: [{\r\n type: Input\r\n }], scrollingEnabled: [{\r\n type: Input\r\n }], searchEditorOptions: [{\r\n type: Input\r\n }], searchEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], searchValue: [{\r\n type: Input\r\n }], selectAllMode: [{\r\n type: Input\r\n }], selectAllText: [{\r\n type: Input\r\n }], selectByClick: [{\r\n type: Input\r\n }], selectedItemKeys: [{\r\n type: Input\r\n }], selectedItems: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], showScrollbar: [{\r\n type: Input\r\n }], showSelectionControls: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], useNativeScrolling: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onGroupRendered: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemDeleted: [{\r\n type: Output\r\n }], onItemDeleting: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onItemReordered: [{\r\n type: Output\r\n }], onItemSwipe: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPageLoading: [{\r\n type: Output\r\n }], onPullRefresh: [{\r\n type: Output\r\n }], onScroll: [{\r\n type: Output\r\n }], onSelectAllValueChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowItemDeletingChange: [{\r\n type: Output\r\n }], bounceEnabledChange: [{\r\n type: Output\r\n }], collapsibleGroupsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupedChange: [{\r\n type: Output\r\n }], groupTemplateChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], indicateLoadingChange: [{\r\n type: Output\r\n }], itemDeleteModeChange: [{\r\n type: Output\r\n }], itemDraggingChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], menuItemsChange: [{\r\n type: Output\r\n }], menuModeChange: [{\r\n type: Output\r\n }], nextButtonTextChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], pageLoadingTextChange: [{\r\n type: Output\r\n }], pageLoadModeChange: [{\r\n type: Output\r\n }], pulledDownTextChange: [{\r\n type: Output\r\n }], pullingDownTextChange: [{\r\n type: Output\r\n }], pullRefreshEnabledChange: [{\r\n type: Output\r\n }], refreshingTextChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollByContentChange: [{\r\n type: Output\r\n }], scrollByThumbChange: [{\r\n type: Output\r\n }], scrollingEnabledChange: [{\r\n type: Output\r\n }], searchEditorOptionsChange: [{\r\n type: Output\r\n }], searchEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], searchValueChange: [{\r\n type: Output\r\n }], selectAllModeChange: [{\r\n type: Output\r\n }], selectAllTextChange: [{\r\n type: Output\r\n }], selectByClickChange: [{\r\n type: Output\r\n }], selectedItemKeysChange: [{\r\n type: Output\r\n }], selectedItemsChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], showScrollbarChange: [{\r\n type: Output\r\n }], showSelectionControlsChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], useNativeScrollingChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }], menuItemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiMenuItemComponent]\r\n }] }); })();\r\nclass DxListModule {\r\n}\r\n/** @nocollapse */ DxListModule.ɵfac = function DxListModule_Factory(t) { return new (t || DxListModule)(); };\r\n/** @nocollapse */ DxListModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxListModule });\r\n/** @nocollapse */ DxListModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxListModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxListComponent\r\n ],\r\n exports: [\r\n DxListComponent,\r\n DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxListModule, { declarations: [DxListComponent], imports: [DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxListComponent, DxoItemDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxiItemModule,\r\n DxiMenuItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxListComponent, DxListModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxLoadIndicator from 'devextreme/ui/load_indicator';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxLoadIndicator]\r\n\r\n */\r\nclass DxLoadIndicatorComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'indicatorSrcChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxLoadIndicatorOptions.indicatorSrc]\r\n \r\n */\r\n get indicatorSrc() {\r\n return this._getOption('indicatorSrc');\r\n }\r\n set indicatorSrc(value) {\r\n this._setOption('indicatorSrc', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxLoadIndicator(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxLoadIndicatorComponent.ɵfac = function DxLoadIndicatorComponent_Factory(t) { return new (t || DxLoadIndicatorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxLoadIndicatorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxLoadIndicatorComponent, selectors: [[\"dx-load-indicator\"]], inputs: { elementAttr: \"elementAttr\", height: \"height\", hint: \"hint\", indicatorSrc: \"indicatorSrc\", rtlEnabled: \"rtlEnabled\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", indicatorSrcChange: \"indicatorSrcChange\", rtlEnabledChange: \"rtlEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxLoadIndicatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLoadIndicatorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-load-indicator',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], indicatorSrc: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], indicatorSrcChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxLoadIndicatorModule {\r\n}\r\n/** @nocollapse */ DxLoadIndicatorModule.ɵfac = function DxLoadIndicatorModule_Factory(t) { return new (t || DxLoadIndicatorModule)(); };\r\n/** @nocollapse */ DxLoadIndicatorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxLoadIndicatorModule });\r\n/** @nocollapse */ DxLoadIndicatorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLoadIndicatorModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxLoadIndicatorComponent\r\n ],\r\n exports: [\r\n DxLoadIndicatorComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxLoadIndicatorModule, { declarations: [DxLoadIndicatorComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxLoadIndicatorComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxLoadIndicatorComponent, DxLoadIndicatorModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxLoadPanel from 'devextreme/ui/load_panel';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxLoadPanel]\r\n\r\n */\r\nclass DxLoadPanelComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'copyRootClassesToWrapperChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'delayChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hideOnParentScrollChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'indicatorSrcChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'messageChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'shadingColorChange' },\r\n { emit: 'showIndicatorChange' },\r\n { emit: 'showPaneChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapperAttrChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n */\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.delay]\r\n \r\n */\r\n get delay() {\r\n return this._getOption('delay');\r\n }\r\n set delay(value) {\r\n this._setOption('delay', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.elementAttr]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.hideOnParentScroll]\r\n \r\n */\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.indicatorSrc]\r\n \r\n */\r\n get indicatorSrc() {\r\n return this._getOption('indicatorSrc');\r\n }\r\n set indicatorSrc(value) {\r\n this._setOption('indicatorSrc', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.message]\r\n \r\n */\r\n get message() {\r\n return this._getOption('message');\r\n }\r\n set message(value) {\r\n this._setOption('message', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.shadingColor]\r\n \r\n */\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.showIndicator]\r\n \r\n */\r\n get showIndicator() {\r\n return this._getOption('showIndicator');\r\n }\r\n set showIndicator(value) {\r\n this._setOption('showIndicator', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.showPane]\r\n \r\n */\r\n get showPane() {\r\n return this._getOption('showPane');\r\n }\r\n set showPane(value) {\r\n this._setOption('showPane', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxLoadPanelOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.wrapperAttr]\r\n \r\n */\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxLoadPanel(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxLoadPanelComponent.ɵfac = function DxLoadPanelComponent_Factory(t) { return new (t || DxLoadPanelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxLoadPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxLoadPanelComponent, selectors: [[\"dx-load-panel\"]], inputs: { animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", delay: \"delay\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", indicatorSrc: \"indicatorSrc\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", message: \"message\", minHeight: \"minHeight\", minWidth: \"minWidth\", position: \"position\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showIndicator: \"showIndicator\", showPane: \"showPane\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onShowing: \"onShowing\", onShown: \"onShown\", animationChange: \"animationChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", containerChange: \"containerChange\", copyRootClassesToWrapperChange: \"copyRootClassesToWrapperChange\", deferRenderingChange: \"deferRenderingChange\", delayChange: \"delayChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hideOnParentScrollChange: \"hideOnParentScrollChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", indicatorSrcChange: \"indicatorSrcChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", messageChange: \"messageChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", positionChange: \"positionChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", shadingColorChange: \"shadingColorChange\", showIndicatorChange: \"showIndicatorChange\", showPaneChange: \"showPaneChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapperAttrChange: \"wrapperAttrChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxLoadPanelComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLoadPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-load-panel',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], copyRootClassesToWrapper: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], delay: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hideOnParentScroll: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], indicatorSrc: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], message: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], showIndicator: [{\r\n type: Input\r\n }], showPane: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapperAttr: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], copyRootClassesToWrapperChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], delayChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hideOnParentScrollChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], indicatorSrcChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], messageChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], shadingColorChange: [{\r\n type: Output\r\n }], showIndicatorChange: [{\r\n type: Output\r\n }], showPaneChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapperAttrChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxLoadPanelModule {\r\n}\r\n/** @nocollapse */ DxLoadPanelModule.ɵfac = function DxLoadPanelModule_Factory(t) { return new (t || DxLoadPanelModule)(); };\r\n/** @nocollapse */ DxLoadPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxLoadPanelModule });\r\n/** @nocollapse */ DxLoadPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLoadPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxLoadPanelComponent\r\n ],\r\n exports: [\r\n DxLoadPanelComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxLoadPanelModule, { declarations: [DxLoadPanelComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxLoadPanelComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxLoadPanelComponent, DxLoadPanelModule };\n","/**\r\n * DevExtreme (esm/ui/lookup.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n nativeScrolling\r\n} from \"../core/utils/support\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getFieldName\r\n} from \"../core/options/utils\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"./themes\";\r\nimport Popover from \"./popover/ui.popover\";\r\nimport TextBox from \"./text_box\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../animation/translator\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n getElementWidth\r\n} from \"./drop_down_editor/utils\";\r\nvar LOOKUP_CLASS = \"dx-lookup\";\r\nvar LOOKUP_SEARCH_CLASS = \"dx-lookup-search\";\r\nvar LOOKUP_SEARCH_WRAPPER_CLASS = \"dx-lookup-search-wrapper\";\r\nvar LOOKUP_FIELD_CLASS = \"dx-lookup-field\";\r\nvar LOOKUP_ARROW_CLASS = \"dx-lookup-arrow\";\r\nvar LOOKUP_FIELD_WRAPPER_CLASS = \"dx-lookup-field-wrapper\";\r\nvar LOOKUP_POPUP_CLASS = \"dx-lookup-popup\";\r\nvar LOOKUP_POPUP_WRAPPER_CLASS = \"dx-lookup-popup-wrapper\";\r\nvar LOOKUP_POPUP_SEARCH_CLASS = \"dx-lookup-popup-search\";\r\nvar LOOKUP_POPOVER_MODE = \"dx-lookup-popover-mode\";\r\nvar LOOKUP_EMPTY_CLASS = \"dx-lookup-empty\";\r\nvar LOOKUP_POPOVER_FLIP_VERTICAL_CLASS = \"dx-popover-flipped-vertical\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_EMPTY_CLASS = \"dx-texteditor-empty\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar GROUP_LIST_HEADER_CLASS = \"dx-list-group-header\";\r\nvar MATERIAL_LOOKUP_LIST_ITEMS_COUNT = 5;\r\nvar MATERIAL_LOOKUP_LIST_PADDING = 8;\r\nvar WINDOW_RATIO = .8;\r\nvar Lookup = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._validatedOpening()\r\n },\r\n enter: function() {\r\n this._validatedOpening()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n var getSize = side => {\r\n var size;\r\n if (\"phone\" === devices.real().deviceType && window.visualViewport) {\r\n size = window.visualViewport[side]\r\n } else {\r\n size = \"width\" === side ? getWidth(window) : getHeight(window)\r\n }\r\n return size * WINDOW_RATIO\r\n };\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n searchPlaceholder: messageLocalization.format(\"Search\"),\r\n searchEnabled: true,\r\n searchStartEvent: \"input change keyup\",\r\n cleanSearchOnOpening: true,\r\n showCancelButton: true,\r\n showClearButton: false,\r\n clearButtonText: messageLocalization.format(\"Clear\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n pullRefreshEnabled: false,\r\n useNativeScrolling: true,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n usePopover: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: false,\r\n focusStateEnabled: false,\r\n dropDownOptions: {\r\n showTitle: true,\r\n width: function() {\r\n return getSize(\"width\")\r\n },\r\n height: function() {\r\n return getSize(\"height\")\r\n },\r\n shading: true,\r\n hideOnOutsideClick: false,\r\n position: void 0,\r\n animation: {},\r\n title: \"\",\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n fullScreen: false\r\n },\r\n dropDownCentered: false,\r\n _scrollToSelectedItemEnabled: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.1\",\r\n alias: \"searchStartEvent\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n usePopover: true,\r\n dropDownOptions: {\r\n height: \"auto\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n dropDownOptions: {\r\n fullScreen: true\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n tablet: true\r\n },\r\n options: {\r\n dropDownOptions: {\r\n width: function() {\r\n return .4 * Math.min(getWidth(window), getHeight(window))\r\n },\r\n height: \"auto\"\r\n },\r\n usePopover: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n usePopover: false,\r\n searchEnabled: false,\r\n showCancelButton: false,\r\n dropDownCentered: true,\r\n _scrollToSelectedItemEnabled: true,\r\n dropDownOptions: {\r\n hideOnOutsideClick: true,\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: function() {\r\n return this._getPopupHeight()\r\n }.bind(this),\r\n showTitle: false,\r\n shading: false\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions() {\r\n this.callBase();\r\n this._initScrollAction();\r\n this._initPageLoadingAction();\r\n this._initPullRefreshAction()\r\n },\r\n _initPageLoadingAction: function() {\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _initPullRefreshAction: function() {\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\")\r\n },\r\n _initScrollAction: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction(e)\r\n },\r\n _pullRefreshHandler: function(e) {\r\n this._pullRefreshAction(e)\r\n },\r\n _pageLoadingHandler: function(e) {\r\n this._pageLoadingAction(e)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n group: new ChildDefaultTemplate(\"group\"),\r\n title: new ChildDefaultTemplate(\"title\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(LOOKUP_CLASS).toggleClass(LOOKUP_POPOVER_MODE, this.option(\"usePopover\"));\r\n this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + LOOKUP_FIELD_WRAPPER_CLASS)\r\n },\r\n _dataSourceOptions: function() {\r\n return extend(this.callBase(), {\r\n paginate: true\r\n })\r\n },\r\n _fireContentReadyAction: noop,\r\n _popupWrapperClass: function() {\r\n return \"\"\r\n },\r\n _renderInput: function() {\r\n this._$field = $(\"<div>\").addClass(LOOKUP_FIELD_CLASS);\r\n this._applyInputAttributes(this.option(\"inputAttr\"));\r\n var $arrow = $(\"<div>\").addClass(LOOKUP_ARROW_CLASS);\r\n this._$fieldWrapper = $(\"<div>\").addClass(LOOKUP_FIELD_WRAPPER_CLASS).append(this._$field).append($arrow).appendTo(this.$element())\r\n },\r\n _applyInputAttributes(attributes) {\r\n this._$field.attr(attributes)\r\n },\r\n _getInputContainer() {\r\n return this._$fieldWrapper\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (fieldTemplate && this.option(\"fieldTemplate\")) {\r\n this._renderFieldTemplate(fieldTemplate);\r\n return\r\n }\r\n var displayValue = this.option(\"displayValue\");\r\n this._updateField(displayValue);\r\n var isFieldEmpty = !this.option(\"selectedItem\");\r\n this.$element().toggleClass(LOOKUP_EMPTY_CLASS, isFieldEmpty).toggleClass(TEXTEDITOR_EMPTY_CLASS, isFieldEmpty)\r\n },\r\n _getLabelContainer: function() {\r\n return this._$field\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._input().length) {\r\n this.callBase(text)\r\n } else {\r\n this._updateField(text)\r\n }\r\n },\r\n _updateField: function(text) {\r\n text = isDefined(text) && String(text);\r\n this._$field.empty();\r\n if (text) {\r\n this._$field.text(text)\r\n } else {\r\n var $placeholder = $(\"<div>\").attr({\r\n \"data-dx_placeholder\": this.option(\"placeholder\")\r\n });\r\n this._$field.append($placeholder);\r\n $placeholder.addClass(\"dx-placeholder\")\r\n }\r\n },\r\n _renderFieldTemplate: function(template) {\r\n this._$field.empty();\r\n var data = this._fieldRenderData();\r\n template.render({\r\n model: data,\r\n container: getPublicElement(this._$field)\r\n })\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"selectedItem\")\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"cleanSearchOnOpening\")) {\r\n if (this.option(\"searchEnabled\") && this._searchBox.option(\"value\")) {\r\n this._searchBox.option(\"value\", \"\");\r\n this._searchCanceled()\r\n }\r\n this._list && this._list.option(\"focusedElement\", null)\r\n }\r\n if (this.option(\"dropDownOptions.fullScreen\") && this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this._popup.option(\"position\").of = $(window)\r\n }\r\n },\r\n _popupShownHandler: function() {\r\n var scrollToSelectedItemEnabled = this.option(\"_scrollToSelectedItemEnabled\");\r\n var fullScreen = this.option(\"dropDownOptions.fullScreen\");\r\n if (!fullScreen && scrollToSelectedItemEnabled) {\r\n this._setPopupPosition()\r\n }\r\n this.callBase()\r\n },\r\n _scrollToSelectedItem: function() {\r\n var selectedIndex = this._list.option(\"selectedIndex\");\r\n var listItems = this._list.option(\"items\");\r\n var itemsCount = listItems.length;\r\n if (0 !== itemsCount) {\r\n if (this._list.option(\"grouped\")) {\r\n this._list.scrollToItem({\r\n group: itemsCount - 1,\r\n item: listItems[itemsCount - 1].items.length - 1\r\n })\r\n } else {\r\n this._list.scrollToItem(itemsCount - 1)\r\n }\r\n this._list.scrollToItem(selectedIndex)\r\n }\r\n },\r\n _getDifferenceOffsets: function(selectedListItem) {\r\n return selectedListItem.offset().top - $(this.element()).offset().top\r\n },\r\n _isCenteringEnabled: (index, count) => 1 < index && index < count - 2,\r\n _getPopupOffset: function() {\r\n var listItemsCount = this._listItemElements().length;\r\n if (0 === listItemsCount) {\r\n return\r\n }\r\n var selectedListItem = $(this._list.element()).find(\".\" + LIST_ITEM_SELECTED_CLASS);\r\n var selectedIndex = this._listItemElements().index(selectedListItem);\r\n var differenceOfHeights = (getHeight(selectedListItem) - getHeight(this.element())) / 2;\r\n var lookupOffset = $(this._list.element()).offset().top;\r\n var dropDownHeightOption = this.option(\"dropDownOptions.height\");\r\n var popupHeight = \"function\" === typeof dropDownHeightOption ? dropDownHeightOption() : dropDownHeightOption;\r\n var windowHeight = getHeight(window);\r\n var offsetTop = 0;\r\n if (-1 !== selectedIndex) {\r\n if (this._isCenteringEnabled(selectedIndex, listItemsCount)) {\r\n this._scrollToSelectedItem();\r\n var scrollOffsetTop = (popupHeight - getHeight(selectedListItem)) / 2 - this._getDifferenceOffsets(selectedListItem);\r\n this._list.scrollTo(this._list.scrollTop() + MATERIAL_LOOKUP_LIST_PADDING / 2 - scrollOffsetTop);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem);\r\n if (lookupOffset < offsetTop && selectedIndex !== listItemsCount - 3) {\r\n this._list.scrollTo(this._list.scrollTop() + this._getDifferenceOffsets(selectedListItem) / 2);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n }\r\n } else if (selectedIndex <= 1) {\r\n this._list.scrollTo(0);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n } else if (selectedIndex >= listItemsCount - 2) {\r\n this._scrollToSelectedItem();\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n }\r\n if (lookupOffset < offsetTop) {\r\n this._scrollToSelectedItem();\r\n offsetTop = differenceOfHeights + MATERIAL_LOOKUP_LIST_PADDING\r\n }\r\n }\r\n var offsetBottom = popupHeight - offsetTop - getHeight(this.element());\r\n if (windowHeight - lookupOffset < offsetBottom) {\r\n this._list.scrollTo(this._list.scrollTop() + differenceOfHeights - offsetBottom);\r\n offsetTop = popupHeight - getHeight(this.element()) - MATERIAL_LOOKUP_LIST_PADDING\r\n }\r\n return offsetTop\r\n },\r\n _setPopupPosition: function() {\r\n if (!this.option(\"dropDownCentered\")) {\r\n return\r\n }\r\n var flipped = this._popup.$wrapper().hasClass(LOOKUP_POPOVER_FLIP_VERTICAL_CLASS);\r\n if (flipped) {\r\n return\r\n }\r\n var popupContentParent = $(this._popup.$content()).parent();\r\n var popupOffset = this._getPopupOffset();\r\n var position = locate(popupContentParent);\r\n move(popupContentParent, {\r\n top: position.top - popupOffset\r\n })\r\n },\r\n _listItemGroupedElements: function() {\r\n var groups = this._list._getItemsContainer().children();\r\n var items = [];\r\n groups.each((_, group) => {\r\n items.push($(group).find(\".\" + GROUP_LIST_HEADER_CLASS)[0]);\r\n var groupedItems = $(group).find(\".\" + LIST_ITEM_CLASS);\r\n groupedItems.each((_, item) => {\r\n items.push(item)\r\n })\r\n });\r\n return $(items)\r\n },\r\n _calculateListHeight: function(grouped) {\r\n var listItems = grouped ? this._listItemGroupedElements() : this._listItemElements();\r\n var selectedListItem = $(\".\" + LIST_ITEM_SELECTED_CLASS);\r\n var selectedIndex = listItems.index(selectedListItem);\r\n var listHeight = 0;\r\n var requireListItems = [];\r\n if (0 === listItems.length) {\r\n listHeight += MATERIAL_LOOKUP_LIST_PADDING\r\n } else if (listItems.length < MATERIAL_LOOKUP_LIST_ITEMS_COUNT) {\r\n listItems.each((_, item) => {\r\n listHeight += getOuterHeight(item)\r\n })\r\n } else {\r\n if (selectedIndex <= 1) {\r\n requireListItems = listItems.slice(0, MATERIAL_LOOKUP_LIST_ITEMS_COUNT)\r\n } else if (this._isCenteringEnabled(selectedIndex, listItems.length)) {\r\n requireListItems = listItems.slice(selectedIndex - 2, selectedIndex + 3)\r\n } else {\r\n requireListItems = listItems.slice(listItems.length - MATERIAL_LOOKUP_LIST_ITEMS_COUNT, listItems.length)\r\n }\r\n requireListItems.each((_, item) => {\r\n listHeight += getOuterHeight(item)\r\n })\r\n }\r\n return listHeight + (grouped ? MATERIAL_LOOKUP_LIST_PADDING : 2 * MATERIAL_LOOKUP_LIST_PADDING)\r\n },\r\n _getPopupHeight: function() {\r\n var _this$_list;\r\n if (null !== (_this$_list = this._list) && void 0 !== _this$_list && _this$_list.itemElements().length) {\r\n return this._calculateListHeight(this.option(\"grouped\")) + (this._$searchWrapper ? getOuterHeight(this._$searchWrapper) : 0) + (this._popup._$bottom ? getOuterHeight(this._popup._$bottom) : 0) + (this._popup._$title ? getOuterHeight(this._popup._$title) : 0)\r\n } else {\r\n return \"auto\"\r\n }\r\n },\r\n _popupTabHandler: noop,\r\n _renderPopup: function() {\r\n if (this.option(\"usePopover\") && !this.option(\"dropDownOptions.fullScreen\")) {\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this.callBase()\r\n } else {\r\n this._renderPopover();\r\n this._attachPopupKeyHandler()\r\n }\r\n } else {\r\n this.callBase()\r\n }\r\n this._$popup.addClass(LOOKUP_POPUP_CLASS);\r\n this._popup.$wrapper().addClass(LOOKUP_POPUP_WRAPPER_CLASS)\r\n },\r\n _renderPopover: function() {\r\n this._popup = this._createComponent(this._$popup, Popover, extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"), {\r\n showEvent: null,\r\n hideEvent: null,\r\n target: this.$element(),\r\n fullScreen: false,\r\n shading: false,\r\n hideOnParentScroll: true,\r\n _fixWrapperPosition: false,\r\n width: this._isInitialOptionValue(\"dropDownOptions.width\") ? function() {\r\n return getOuterWidth(this.$element())\r\n }.bind(this) : this._popupConfig().width\r\n }));\r\n this._popup.$overlayContent().attr(\"role\", \"dialog\");\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this._popup._$arrow.remove()\r\n }\r\n this._setPopupContentId(this._popup.$content());\r\n this._contentReadyHandler()\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n resetPosition($(this._popup.content()).parent())\r\n }\r\n },\r\n _preventFocusOnPopup: noop,\r\n _popupConfig: function() {\r\n var result = extend(this.callBase(), {\r\n toolbarItems: this._getPopupToolbarItems(),\r\n hideOnParentScroll: false,\r\n onPositioned: null,\r\n maxHeight: \"100vh\",\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n title: this.option(\"dropDownOptions.title\"),\r\n titleTemplate: this._getTemplateByOption(\"dropDownOptions.titleTemplate\"),\r\n onTitleRendered: this.option(\"dropDownOptions.onTitleRendered\"),\r\n fullScreen: this.option(\"dropDownOptions.fullScreen\"),\r\n shading: this.option(\"dropDownOptions.shading\"),\r\n hideOnOutsideClick: this.option(\"dropDownOptions.hideOnOutsideClick\") || this.option(\"dropDownOptions.closeOnOutsideClick\")\r\n });\r\n delete result.animation;\r\n delete result.position;\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n result.position = this.option(\"dropDownCentered\") ? {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: this.element()\r\n } : {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n of: this.element()\r\n };\r\n result.hideOnParentScroll = true\r\n }\r\n each([\"position\", \"animation\", \"width\", \"height\"], (_, optionName) => {\r\n var popupOptionValue = this.option(\"dropDownOptions.\".concat(optionName));\r\n if (void 0 !== popupOptionValue) {\r\n result[optionName] = popupOptionValue\r\n }\r\n });\r\n return result\r\n },\r\n _getPopupToolbarItems: function() {\r\n var buttonsConfig = \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : [];\r\n var cancelButton = this._getCancelButtonConfig();\r\n if (cancelButton) {\r\n buttonsConfig.push(cancelButton)\r\n }\r\n var clearButton = this._getClearButtonConfig();\r\n if (clearButton) {\r\n buttonsConfig.push(clearButton)\r\n }\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n return [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\")\r\n }\r\n }]\r\n },\r\n _getCancelButtonConfig: function() {\r\n return this.option(\"showCancelButton\") ? {\r\n shortcut: \"cancel\",\r\n onClick: this._cancelButtonHandler.bind(this),\r\n options: {\r\n text: this.option(\"cancelButtonText\")\r\n }\r\n } : null\r\n },\r\n _getClearButtonConfig: function() {\r\n return this.option(\"showClearButton\") ? {\r\n shortcut: \"clear\",\r\n onClick: this._resetValue.bind(this),\r\n options: {\r\n text: this.option(\"clearButtonText\")\r\n }\r\n } : null\r\n },\r\n _applyButtonHandler: function(args) {\r\n if (args) {\r\n this._saveValueChangeEvent(args.event)\r\n }\r\n this.option(\"value\", this._valueGetter(this._currentSelectedItem()));\r\n this.callBase()\r\n },\r\n _cancelButtonHandler: function() {\r\n this._refreshSelected();\r\n this.callBase()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"opened\")) {\r\n this._updateListDimensions()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this.option(\"usePopover\") && !this.option(\"dropDownOptions.width\")) {\r\n this.option(\"dropDownOptions.width\", getWidth(this.$element()))\r\n }\r\n this._updateListDimensions()\r\n },\r\n _input: function() {\r\n return this._$searchBox || this.callBase()\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderSearch()\r\n },\r\n _renderValueChangeEvent: noop,\r\n _renderSearch: function() {\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n this._toggleSearchClass(isSearchEnabled);\r\n if (isSearchEnabled) {\r\n var $searchWrapper = this._$searchWrapper = $(\"<div>\").addClass(LOOKUP_SEARCH_WRAPPER_CLASS);\r\n var $searchBox = this._$searchBox = $(\"<div>\").addClass(LOOKUP_SEARCH_CLASS).appendTo($searchWrapper);\r\n var currentDevice = devices.current();\r\n var searchMode = currentDevice.android ? \"text\" : \"search\";\r\n var isKeyboardListeningEnabled = false;\r\n var textBoxOptions = {\r\n mode: searchMode,\r\n showClearButton: true,\r\n valueChangeEvent: this.option(\"searchStartEvent\"),\r\n inputAttr: {\r\n \"aria-label\": \"Search\"\r\n },\r\n onDisposing: () => isKeyboardListeningEnabled = false,\r\n onFocusIn: () => isKeyboardListeningEnabled = true,\r\n onFocusOut: () => isKeyboardListeningEnabled = false,\r\n onKeyboardHandled: opts => isKeyboardListeningEnabled && this._list._keyboardHandler(opts),\r\n onValueChanged: e => this._searchHandler(e)\r\n };\r\n this._searchBox = this._createComponent($searchBox, TextBox, textBoxOptions);\r\n this._registerSearchKeyHandlers();\r\n $searchWrapper.insertBefore(this._$list);\r\n this._setSearchPlaceholder()\r\n }\r\n },\r\n _updateActiveDescendant() {\r\n this.callBase();\r\n if (!this._$searchBox) {\r\n return\r\n }\r\n var $input = this._$searchBox.find(\"input\");\r\n this.callBase($input)\r\n },\r\n _removeSearch: function() {\r\n this._$searchWrapper && this._$searchWrapper.remove();\r\n delete this._$searchWrapper;\r\n this._$searchBox && this._$searchBox.remove();\r\n delete this._$searchBox;\r\n delete this._searchBox\r\n },\r\n _selectListItemHandler: function(e) {\r\n var $itemElement = $(this._list.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.target = $itemElement.get(0);\r\n this._saveValueChangeEvent(e);\r\n this._selectListItem(e.itemData, $itemElement)\r\n },\r\n _registerSearchKeyHandlers: function() {\r\n this._searchBox.registerKeyHandler(\"enter\", this._selectListItemHandler.bind(this));\r\n this._searchBox.registerKeyHandler(\"space\", this._selectListItemHandler.bind(this));\r\n this._searchBox.registerKeyHandler(\"end\", noop);\r\n this._searchBox.registerKeyHandler(\"home\", noop)\r\n },\r\n _toggleSearchClass: function(isSearchEnabled) {\r\n if (this._popup) {\r\n this._popup.$wrapper().toggleClass(LOOKUP_POPUP_SEARCH_CLASS, isSearchEnabled)\r\n }\r\n },\r\n _setSearchPlaceholder: function() {\r\n if (!this._$searchBox) {\r\n return\r\n }\r\n var minSearchLength = this.option(\"minSearchLength\");\r\n var placeholder = this.option(\"searchPlaceholder\");\r\n if (minSearchLength && placeholder === messageLocalization.format(\"Search\")) {\r\n placeholder = messageLocalization.getFormatter(\"dxLookup-searchPlaceholder\")(minSearchLength)\r\n }\r\n this._searchBox.option(\"placeholder\", placeholder)\r\n },\r\n _setAriaTargetForList: noop,\r\n _listConfig: function() {\r\n return extend(this.callBase(), {\r\n tabIndex: 0,\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this._getTemplateByOption(\"groupTemplate\"),\r\n pullRefreshEnabled: this.option(\"pullRefreshEnabled\"),\r\n useNativeScrolling: this.option(\"useNativeScrolling\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n pageLoadingText: this.option(\"pageLoadingText\"),\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullRefresh: this._pullRefreshHandler.bind(this),\r\n onPageLoading: this._pageLoadingHandler.bind(this),\r\n pageLoadMode: this.option(\"pageLoadMode\"),\r\n nextButtonText: this.option(\"nextButtonText\"),\r\n indicateLoading: this.option(\"searchEnabled\"),\r\n onSelectionChanged: this._getSelectionChangedHandler()\r\n })\r\n },\r\n _getSelectionChangedHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase(...arguments);\r\n this._refreshSelected()\r\n },\r\n _runWithoutCloseOnScroll: function(callback) {\r\n var {\r\n _scrollToSelectedItemEnabled: _scrollToSelectedItemEnabled\r\n } = this.option();\r\n var hideOnParentScroll = this._popup.option(\"hideOnParentScroll\");\r\n if (!_scrollToSelectedItemEnabled) {\r\n callback()\r\n } else {\r\n this._popup.option(\"hideOnParentScroll\", false);\r\n callback();\r\n this._hideOnParentScrollTimer = setTimeout(() => {\r\n this._popup.option(\"hideOnParentScroll\", hideOnParentScroll)\r\n })\r\n }\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._runWithoutCloseOnScroll(() => {\r\n if (this.option(\"searchEnabled\")) {\r\n this._searchBox.focus()\r\n } else {\r\n this._list.focus()\r\n }\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$field\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._$field\r\n },\r\n _listItemClickHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this._selectListItem(e.itemData, e.event.currentTarget)\r\n },\r\n _selectListItem: function(itemData, target) {\r\n this._list.selectItem(target);\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this._applyButtonHandler()\r\n }\r\n },\r\n _currentSelectedItem: function() {\r\n return this.option(\"grouped\") ? this._list.option(\"selectedItems[0]\").items[0] : this._list.option(\"selectedItems[0]\")\r\n },\r\n _resetValue: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this.option(\"value\", null);\r\n this.option(\"opened\", false)\r\n },\r\n _searchValue: function() {\r\n return this.option(\"searchEnabled\") && this._searchBox ? this._searchBox.option(\"value\") : \"\"\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(() => {\r\n this._refreshSelected()\r\n })\r\n },\r\n _renderPlaceholder: function() {\r\n if (0 === this.$element().find(\".\" + TEXTEDITOR_INPUT_CLASS).length) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _clean: function() {\r\n this._$fieldWrapper.remove();\r\n clearTimeout(this._hideOnParentScrollTimer);\r\n this._hideOnParentScrollTimer = null;\r\n this._$searchBox = null;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_searchBox;\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(...arguments);\r\n this._renderField();\r\n break;\r\n case \"searchEnabled\":\r\n if (this._popup) {\r\n this._removeSearch();\r\n this._renderSearch()\r\n }\r\n break;\r\n case \"searchPlaceholder\":\r\n this._setSearchPlaceholder();\r\n break;\r\n case \"minSearchLength\":\r\n this._setSearchPlaceholder();\r\n this.callBase(...arguments);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(value);\r\n break;\r\n case \"usePopover\":\r\n case \"placeholder\":\r\n this._invalidate();\r\n break;\r\n case \"clearButtonText\":\r\n case \"showClearButton\":\r\n case \"showCancelButton\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"applyValueMode\":\r\n this.callBase(...arguments);\r\n break;\r\n case \"onPageLoading\":\r\n this._initPageLoadingAction();\r\n break;\r\n case \"onPullRefresh\":\r\n this._initPullRefreshAction();\r\n break;\r\n case \"pullRefreshEnabled\":\r\n case \"useNativeScrolling\":\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"nextButtonText\":\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n this._setListOption(name);\r\n break;\r\n case \"searchStartEvent\":\r\n null === (_this$_searchBox = this._searchBox) || void 0 === _this$_searchBox ? void 0 : _this$_searchBox.option(\"valueChangeEvent\", value);\r\n break;\r\n case \"onScroll\":\r\n this._initScrollAction();\r\n break;\r\n case \"pageLoadMode\":\r\n this._setListOption(\"pageLoadMode\", this.option(\"pageLoadMode\"));\r\n break;\r\n case \"cleanSearchOnOpening\":\r\n case \"_scrollToSelectedItemEnabled\":\r\n break;\r\n case \"dropDownOptions\":\r\n switch (fullName) {\r\n case \"dropDownOptions.width\":\r\n case \"dropDownOptions.height\":\r\n this._popupOptionChanged({\r\n name: name,\r\n fullName: fullName,\r\n value: \"auto\" === value ? this.initialOption(\"dropDownOptions\")[getFieldName(fullName)] : value\r\n });\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n default:\r\n this.callBase(...arguments)\r\n }\r\n break;\r\n case \"dropDownCentered\":\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this.option(\"dropDownOptions.position\", void 0);\r\n this._renderPopup()\r\n }\r\n break;\r\n default:\r\n this.callBase(...arguments)\r\n }\r\n },\r\n focus: function() {\r\n this.option(\"opened\") ? this._setFocusPolicy() : eventsEngine.trigger(this._focusTarget(), \"focus\")\r\n },\r\n field: function() {\r\n return this._$field\r\n }\r\n});\r\nregisterComponent(\"dxLookup\", Lookup);\r\nexport default Lookup;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxLookup from 'devextreme/ui/lookup';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxoHideEventModule, DxoShowEventModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxLookupComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxLookup]\r\n\r\n */\r\nclass DxLookupComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pageLoading', emit: 'onPageLoading' },\r\n { subscribe: 'pullRefresh', emit: 'onPullRefresh' },\r\n { subscribe: 'scroll', emit: 'onScroll' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'applyButtonTextChange' },\r\n { emit: 'applyValueModeChange' },\r\n { emit: 'cancelButtonTextChange' },\r\n { emit: 'cleanSearchOnOpeningChange' },\r\n { emit: 'clearButtonTextChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'displayValueChange' },\r\n { emit: 'dropDownCenteredChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldTemplateChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'fullScreenChange' },\r\n { emit: 'groupedChange' },\r\n { emit: 'groupTemplateChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'minSearchLengthChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'nextButtonTextChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'pageLoadingTextChange' },\r\n { emit: 'pageLoadModeChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'pulledDownTextChange' },\r\n { emit: 'pullingDownTextChange' },\r\n { emit: 'pullRefreshEnabledChange' },\r\n { emit: 'refreshingTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'searchEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchPlaceholderChange' },\r\n { emit: 'searchStartEventChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'showCancelButtonChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDataBeforeSearchChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useItemTextAsTitleChange' },\r\n { emit: 'useNativeScrollingChange' },\r\n { emit: 'usePopoverChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapItemTextChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.applyButtonText]\r\n \r\n */\r\n get applyButtonText() {\r\n return this._getOption('applyButtonText');\r\n }\r\n set applyButtonText(value) {\r\n this._setOption('applyButtonText', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.applyValueMode]\r\n \r\n */\r\n get applyValueMode() {\r\n return this._getOption('applyValueMode');\r\n }\r\n set applyValueMode(value) {\r\n this._setOption('applyValueMode', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.cancelButtonText]\r\n \r\n */\r\n get cancelButtonText() {\r\n return this._getOption('cancelButtonText');\r\n }\r\n set cancelButtonText(value) {\r\n this._setOption('cancelButtonText', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.cleanSearchOnOpening]\r\n \r\n */\r\n get cleanSearchOnOpening() {\r\n return this._getOption('cleanSearchOnOpening');\r\n }\r\n set cleanSearchOnOpening(value) {\r\n this._setOption('cleanSearchOnOpening', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.clearButtonText]\r\n \r\n */\r\n get clearButtonText() {\r\n return this._getOption('clearButtonText');\r\n }\r\n set clearButtonText(value) {\r\n this._setOption('clearButtonText', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.displayValue]\r\n \r\n */\r\n get displayValue() {\r\n return this._getOption('displayValue');\r\n }\r\n set displayValue(value) {\r\n this._setOption('displayValue', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.dropDownCentered]\r\n \r\n */\r\n get dropDownCentered() {\r\n return this._getOption('dropDownCentered');\r\n }\r\n set dropDownCentered(value) {\r\n this._setOption('dropDownCentered', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.fieldTemplate]\r\n \r\n */\r\n get fieldTemplate() {\r\n return this._getOption('fieldTemplate');\r\n }\r\n set fieldTemplate(value) {\r\n this._setOption('fieldTemplate', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.fullScreen]\r\n \r\n * @deprecated [depNote:dxLookupOptions.fullScreen]\r\n \r\n */\r\n get fullScreen() {\r\n return this._getOption('fullScreen');\r\n }\r\n set fullScreen(value) {\r\n this._setOption('fullScreen', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.grouped]\r\n \r\n */\r\n get grouped() {\r\n return this._getOption('grouped');\r\n }\r\n set grouped(value) {\r\n this._setOption('grouped', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.groupTemplate]\r\n \r\n */\r\n get groupTemplate() {\r\n return this._getOption('groupTemplate');\r\n }\r\n set groupTemplate(value) {\r\n this._setOption('groupTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.minSearchLength]\r\n \r\n */\r\n get minSearchLength() {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.nextButtonText]\r\n \r\n */\r\n get nextButtonText() {\r\n return this._getOption('nextButtonText');\r\n }\r\n set nextButtonText(value) {\r\n this._setOption('nextButtonText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.pageLoadingText]\r\n \r\n */\r\n get pageLoadingText() {\r\n return this._getOption('pageLoadingText');\r\n }\r\n set pageLoadingText(value) {\r\n this._setOption('pageLoadingText', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.pageLoadMode]\r\n \r\n */\r\n get pageLoadMode() {\r\n return this._getOption('pageLoadMode');\r\n }\r\n set pageLoadMode(value) {\r\n this._setOption('pageLoadMode', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.pulledDownText]\r\n \r\n */\r\n get pulledDownText() {\r\n return this._getOption('pulledDownText');\r\n }\r\n set pulledDownText(value) {\r\n this._setOption('pulledDownText', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.pullingDownText]\r\n \r\n */\r\n get pullingDownText() {\r\n return this._getOption('pullingDownText');\r\n }\r\n set pullingDownText(value) {\r\n this._setOption('pullingDownText', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.pullRefreshEnabled]\r\n \r\n */\r\n get pullRefreshEnabled() {\r\n return this._getOption('pullRefreshEnabled');\r\n }\r\n set pullRefreshEnabled(value) {\r\n this._setOption('pullRefreshEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.refreshingText]\r\n \r\n */\r\n get refreshingText() {\r\n return this._getOption('refreshingText');\r\n }\r\n set refreshingText(value) {\r\n this._setOption('refreshingText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.searchEnabled]\r\n \r\n */\r\n get searchEnabled() {\r\n return this._getOption('searchEnabled');\r\n }\r\n set searchEnabled(value) {\r\n this._setOption('searchEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.searchPlaceholder]\r\n \r\n */\r\n get searchPlaceholder() {\r\n return this._getOption('searchPlaceholder');\r\n }\r\n set searchPlaceholder(value) {\r\n this._setOption('searchPlaceholder', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.searchStartEvent]\r\n \r\n */\r\n get searchStartEvent() {\r\n return this._getOption('searchStartEvent');\r\n }\r\n set searchStartEvent(value) {\r\n this._setOption('searchStartEvent', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.showCancelButton]\r\n \r\n */\r\n get showCancelButton() {\r\n return this._getOption('showCancelButton');\r\n }\r\n set showCancelButton(value) {\r\n this._setOption('showCancelButton', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.showDataBeforeSearch]\r\n \r\n */\r\n get showDataBeforeSearch() {\r\n return this._getOption('showDataBeforeSearch');\r\n }\r\n set showDataBeforeSearch(value) {\r\n this._setOption('showDataBeforeSearch', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.useItemTextAsTitle]\r\n \r\n */\r\n get useItemTextAsTitle() {\r\n return this._getOption('useItemTextAsTitle');\r\n }\r\n set useItemTextAsTitle(value) {\r\n this._setOption('useItemTextAsTitle', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.useNativeScrolling]\r\n \r\n */\r\n get useNativeScrolling() {\r\n return this._getOption('useNativeScrolling');\r\n }\r\n set useNativeScrolling(value) {\r\n this._setOption('useNativeScrolling', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.usePopover]\r\n \r\n */\r\n get usePopover() {\r\n return this._getOption('usePopover');\r\n }\r\n set usePopover(value) {\r\n this._setOption('usePopover', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxLookupOptions.valueChangeEvent]\r\n \r\n * @deprecated [depNote:dxLookupOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.wrapItemText]\r\n \r\n */\r\n get wrapItemText() {\r\n return this._getOption('wrapItemText');\r\n }\r\n set wrapItemText(value) {\r\n this._setOption('wrapItemText', value);\r\n }\r\n change(_) { }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxLookup(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('searchExpr', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('searchExpr');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxLookupComponent.ɵfac = function DxLookupComponent_Factory(t) { return new (t || DxLookupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxLookupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxLookupComponent, selectors: [[\"dx-lookup\"]], contentQueries: function DxLookupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxLookupComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxLookupComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxLookupComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", applyButtonText: \"applyButtonText\", applyValueMode: \"applyValueMode\", cancelButtonText: \"cancelButtonText\", cleanSearchOnOpening: \"cleanSearchOnOpening\", clearButtonText: \"clearButtonText\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayExpr: \"displayExpr\", displayValue: \"displayValue\", dropDownCentered: \"dropDownCentered\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", fieldTemplate: \"fieldTemplate\", focusStateEnabled: \"focusStateEnabled\", fullScreen: \"fullScreen\", grouped: \"grouped\", groupTemplate: \"groupTemplate\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", itemTemplate: \"itemTemplate\", label: \"label\", labelMode: \"labelMode\", minSearchLength: \"minSearchLength\", name: \"name\", nextButtonText: \"nextButtonText\", noDataText: \"noDataText\", opened: \"opened\", pageLoadingText: \"pageLoadingText\", pageLoadMode: \"pageLoadMode\", placeholder: \"placeholder\", pulledDownText: \"pulledDownText\", pullingDownText: \"pullingDownText\", pullRefreshEnabled: \"pullRefreshEnabled\", refreshingText: \"refreshingText\", rtlEnabled: \"rtlEnabled\", searchEnabled: \"searchEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchPlaceholder: \"searchPlaceholder\", searchStartEvent: \"searchStartEvent\", searchTimeout: \"searchTimeout\", selectedItem: \"selectedItem\", showCancelButton: \"showCancelButton\", showClearButton: \"showClearButton\", showDataBeforeSearch: \"showDataBeforeSearch\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useItemTextAsTitle: \"useItemTextAsTitle\", useNativeScrolling: \"useNativeScrolling\", usePopover: \"usePopover\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\", wrapItemText: \"wrapItemText\" }, outputs: { onClosed: \"onClosed\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPageLoading: \"onPageLoading\", onPullRefresh: \"onPullRefresh\", onScroll: \"onScroll\", onSelectionChanged: \"onSelectionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", applyButtonTextChange: \"applyButtonTextChange\", applyValueModeChange: \"applyValueModeChange\", cancelButtonTextChange: \"cancelButtonTextChange\", cleanSearchOnOpeningChange: \"cleanSearchOnOpeningChange\", clearButtonTextChange: \"clearButtonTextChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", displayValueChange: \"displayValueChange\", dropDownCenteredChange: \"dropDownCenteredChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", fieldTemplateChange: \"fieldTemplateChange\", focusStateEnabledChange: \"focusStateEnabledChange\", fullScreenChange: \"fullScreenChange\", groupedChange: \"groupedChange\", groupTemplateChange: \"groupTemplateChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", minSearchLengthChange: \"minSearchLengthChange\", nameChange: \"nameChange\", nextButtonTextChange: \"nextButtonTextChange\", noDataTextChange: \"noDataTextChange\", openedChange: \"openedChange\", pageLoadingTextChange: \"pageLoadingTextChange\", pageLoadModeChange: \"pageLoadModeChange\", placeholderChange: \"placeholderChange\", pulledDownTextChange: \"pulledDownTextChange\", pullingDownTextChange: \"pullingDownTextChange\", pullRefreshEnabledChange: \"pullRefreshEnabledChange\", refreshingTextChange: \"refreshingTextChange\", rtlEnabledChange: \"rtlEnabledChange\", searchEnabledChange: \"searchEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchPlaceholderChange: \"searchPlaceholderChange\", searchStartEventChange: \"searchStartEventChange\", searchTimeoutChange: \"searchTimeoutChange\", selectedItemChange: \"selectedItemChange\", showCancelButtonChange: \"showCancelButtonChange\", showClearButtonChange: \"showClearButtonChange\", showDataBeforeSearchChange: \"showDataBeforeSearchChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", useItemTextAsTitleChange: \"useItemTextAsTitleChange\", useNativeScrollingChange: \"useNativeScrollingChange\", usePopoverChange: \"usePopoverChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapItemTextChange: \"wrapItemTextChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxLookupComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLookupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-lookup',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], applyButtonText: [{\r\n type: Input\r\n }], applyValueMode: [{\r\n type: Input\r\n }], cancelButtonText: [{\r\n type: Input\r\n }], cleanSearchOnOpening: [{\r\n type: Input\r\n }], clearButtonText: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], displayValue: [{\r\n type: Input\r\n }], dropDownCentered: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fieldTemplate: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], fullScreen: [{\r\n type: Input\r\n }], grouped: [{\r\n type: Input\r\n }], groupTemplate: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], minSearchLength: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], nextButtonText: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], pageLoadingText: [{\r\n type: Input\r\n }], pageLoadMode: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], pulledDownText: [{\r\n type: Input\r\n }], pullingDownText: [{\r\n type: Input\r\n }], pullRefreshEnabled: [{\r\n type: Input\r\n }], refreshingText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], searchEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchPlaceholder: [{\r\n type: Input\r\n }], searchStartEvent: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], showCancelButton: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDataBeforeSearch: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useItemTextAsTitle: [{\r\n type: Input\r\n }], useNativeScrolling: [{\r\n type: Input\r\n }], usePopover: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapItemText: [{\r\n type: Input\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPageLoading: [{\r\n type: Output\r\n }], onPullRefresh: [{\r\n type: Output\r\n }], onScroll: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], applyButtonTextChange: [{\r\n type: Output\r\n }], applyValueModeChange: [{\r\n type: Output\r\n }], cancelButtonTextChange: [{\r\n type: Output\r\n }], cleanSearchOnOpeningChange: [{\r\n type: Output\r\n }], clearButtonTextChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], displayValueChange: [{\r\n type: Output\r\n }], dropDownCenteredChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldTemplateChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], fullScreenChange: [{\r\n type: Output\r\n }], groupedChange: [{\r\n type: Output\r\n }], groupTemplateChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], minSearchLengthChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], nextButtonTextChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], pageLoadingTextChange: [{\r\n type: Output\r\n }], pageLoadModeChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], pulledDownTextChange: [{\r\n type: Output\r\n }], pullingDownTextChange: [{\r\n type: Output\r\n }], pullRefreshEnabledChange: [{\r\n type: Output\r\n }], refreshingTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], searchEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchPlaceholderChange: [{\r\n type: Output\r\n }], searchStartEventChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], showCancelButtonChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDataBeforeSearchChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useItemTextAsTitleChange: [{\r\n type: Output\r\n }], useNativeScrollingChange: [{\r\n type: Output\r\n }], usePopoverChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapItemTextChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxLookupModule {\r\n}\r\n/** @nocollapse */ DxLookupModule.ɵfac = function DxLookupModule_Factory(t) { return new (t || DxLookupModule)(); };\r\n/** @nocollapse */ DxLookupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxLookupModule });\r\n/** @nocollapse */ DxLookupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxLookupModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxLookupComponent\r\n ],\r\n exports: [\r\n DxLookupComponent,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxLookupModule, { declarations: [DxLookupComponent], imports: [DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxLookupComponent, DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxLookupComponent, DxLookupModule };\n","/**\r\n * DevExtreme (esm/ui/map/provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar abstract = Class.abstract;\r\nvar Provider = Class.inherit({\r\n _defaultRouteWeight: function() {\r\n return 5\r\n },\r\n _defaultRouteOpacity: function() {\r\n return .5\r\n },\r\n _defaultRouteColor: function() {\r\n return \"#0000FF\"\r\n },\r\n ctor: function(map, $container) {\r\n this._mapWidget = map;\r\n this._$container = $container\r\n },\r\n render: function(markerOptions, routeOptions) {\r\n return this._renderImpl().then(function() {\r\n return Promise.all([this._applyFunctionIfNeeded(\"addMarkers\", markerOptions), this._applyFunctionIfNeeded(\"addRoutes\", routeOptions)]).then((function() {\r\n return true\r\n }))\r\n }.bind(this))\r\n },\r\n _renderImpl: abstract,\r\n updateDimensions: abstract,\r\n updateMapType: abstract,\r\n updateBounds: abstract,\r\n updateCenter: abstract,\r\n updateZoom: abstract,\r\n updateControls: abstract,\r\n updateMarkers: function(markerOptionsToRemove, markerOptionsToAdd) {\r\n return new Promise(function(resolve) {\r\n return this._applyFunctionIfNeeded(\"removeMarkers\", markerOptionsToRemove).then(function(removeValue) {\r\n this._applyFunctionIfNeeded(\"addMarkers\", markerOptionsToAdd).then((function(addValue) {\r\n resolve(addValue ? addValue : removeValue)\r\n }))\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n addMarkers: abstract,\r\n removeMarkers: abstract,\r\n adjustViewport: abstract,\r\n updateRoutes: function(routeOptionsToRemove, routeOptionsToAdd) {\r\n return new Promise(function(resolve) {\r\n return this._applyFunctionIfNeeded(\"removeRoutes\", routeOptionsToRemove).then(function(removeValue) {\r\n this._applyFunctionIfNeeded(\"addRoutes\", routeOptionsToAdd).then((function(addValue) {\r\n resolve(addValue ? addValue : removeValue)\r\n }))\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n addRoutes: abstract,\r\n removeRoutes: abstract,\r\n clean: abstract,\r\n map: function() {\r\n return this._map\r\n },\r\n isEventsCanceled: function() {\r\n return false\r\n },\r\n _option: function(name, value) {\r\n if (void 0 === value) {\r\n return this._mapWidget.option(name)\r\n }\r\n this._mapWidget.setOptionSilent(name, value)\r\n },\r\n _keyOption: function(providerName) {\r\n var key = this._option(\"apiKey\");\r\n return void 0 === key[providerName] ? key : key[providerName]\r\n },\r\n _parseTooltipOptions: function(option) {\r\n return {\r\n text: option.text || option,\r\n visible: option.isShown || false\r\n }\r\n },\r\n _getLatLng: function(location) {\r\n if (\"string\" === typeof location) {\r\n var coords = map(location.split(\",\"), (function(item) {\r\n return item.trim()\r\n }));\r\n var numericRegex = /^[-+]?[0-9]*\\.?[0-9]*$/;\r\n if (2 === coords.length && coords[0].match(numericRegex) && coords[1].match(numericRegex)) {\r\n return {\r\n lat: parseFloat(coords[0]),\r\n lng: parseFloat(coords[1])\r\n }\r\n }\r\n } else if (Array.isArray(location) && 2 === location.length) {\r\n return {\r\n lat: location[0],\r\n lng: location[1]\r\n }\r\n } else if (isPlainObject(location) && isNumeric(location.lat) && isNumeric(location.lng)) {\r\n return location\r\n }\r\n return null\r\n },\r\n _areBoundsSet: function() {\r\n return this._option(\"bounds.northEast\") && this._option(\"bounds.southWest\")\r\n },\r\n _addEventNamespace: function(name) {\r\n return addNamespace(name, this._mapWidget.NAME)\r\n },\r\n _applyFunctionIfNeeded: function(fnName, array) {\r\n if (!array.length) {\r\n return Promise.resolve()\r\n }\r\n return this[fnName](array)\r\n },\r\n _fireAction: function(name, actionArguments) {\r\n this._mapWidget._createActionByOption(name)(actionArguments)\r\n },\r\n _fireClickAction: function(actionArguments) {\r\n this._fireAction(\"onClick\", actionArguments)\r\n },\r\n _fireMarkerAddedAction: function(actionArguments) {\r\n this._fireAction(\"onMarkerAdded\", actionArguments)\r\n },\r\n _fireMarkerRemovedAction: function(actionArguments) {\r\n this._fireAction(\"onMarkerRemoved\", actionArguments)\r\n },\r\n _fireRouteAddedAction: function(actionArguments) {\r\n this._fireAction(\"onRouteAdded\", actionArguments)\r\n },\r\n _fireRouteRemovedAction: function(actionArguments) {\r\n this._fireAction(\"onRouteRemoved\", actionArguments)\r\n }\r\n});\r\nexport default Provider;\r\n","/**\r\n * DevExtreme (esm/ui/map/provider.google_static.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Provider from \"./provider\";\r\nimport Color from \"../../color\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar GOOGLE_STATIC_URL = \"https://maps.google.com/maps/api/staticmap?\";\r\nvar GoogleStaticProvider = Provider.inherit({\r\n _locationToString: function(location) {\r\n var latLng = this._getLatLng(location);\r\n return latLng ? latLng.lat + \",\" + latLng.lng : location.toString().replace(/ /g, \"+\")\r\n },\r\n _renderImpl: function() {\r\n return this._updateMap()\r\n },\r\n updateDimensions: function() {\r\n return this._updateMap()\r\n },\r\n updateMapType: function() {\r\n return this._updateMap()\r\n },\r\n updateBounds: function() {\r\n return Promise.resolve()\r\n },\r\n updateCenter: function() {\r\n return this._updateMap()\r\n },\r\n updateZoom: function() {\r\n return this._updateMap()\r\n },\r\n updateControls: function() {\r\n return Promise.resolve()\r\n },\r\n addMarkers: function(options) {\r\n var that = this;\r\n return this._updateMap().then((function(result) {\r\n each(options, (function(_, options) {\r\n that._fireMarkerAddedAction({\r\n options: options\r\n })\r\n }));\r\n return result\r\n }))\r\n },\r\n removeMarkers: function(options) {\r\n var that = this;\r\n return this._updateMap().then((function(result) {\r\n each(options, (function(_, options) {\r\n that._fireMarkerRemovedAction({\r\n options: options\r\n })\r\n }));\r\n return result\r\n }))\r\n },\r\n adjustViewport: function() {\r\n return Promise.resolve()\r\n },\r\n addRoutes: function(options) {\r\n var that = this;\r\n return this._updateMap().then((function(result) {\r\n each(options, (function(_, options) {\r\n that._fireRouteAddedAction({\r\n options: options\r\n })\r\n }));\r\n return result\r\n }))\r\n },\r\n removeRoutes: function(options) {\r\n var that = this;\r\n return this._updateMap().then((function(result) {\r\n each(options, (function(_, options) {\r\n that._fireRouteRemovedAction({\r\n options: options\r\n })\r\n }));\r\n return result\r\n }))\r\n },\r\n clean: function() {\r\n this._$container.css(\"backgroundImage\", \"none\");\r\n eventsEngine.off(this._$container, this._addEventNamespace(clickEventName));\r\n return Promise.resolve()\r\n },\r\n mapRendered: function() {\r\n return true\r\n },\r\n _updateMap: function() {\r\n var key = this._keyOption(\"googleStatic\");\r\n var $container = this._$container;\r\n var requestOptions = [\"sensor=false\", \"size=\" + Math.round(getWidth($container)) + \"x\" + Math.round(getHeight($container)), \"maptype=\" + this._option(\"type\"), \"center=\" + this._locationToString(this._option(\"center\")), \"zoom=\" + this._option(\"zoom\"), this._markersSubstring()];\r\n requestOptions.push.apply(requestOptions, this._routeSubstrings());\r\n if (key) {\r\n requestOptions.push(\"key=\" + key)\r\n }\r\n var request = GOOGLE_STATIC_URL + requestOptions.join(\"&\");\r\n this._$container.css(\"background\", 'url(\"' + request + '\") no-repeat 0 0');\r\n this._attachClickEvent();\r\n return Promise.resolve(true)\r\n },\r\n _markersSubstring: function() {\r\n var that = this;\r\n var markers = [];\r\n var markerIcon = this._option(\"markerIconSrc\");\r\n if (markerIcon) {\r\n markers.push(\"icon:\" + markerIcon)\r\n }\r\n each(this._option(\"markers\"), (function(_, marker) {\r\n markers.push(that._locationToString(marker.location))\r\n }));\r\n return \"markers=\" + markers.join(\"|\")\r\n },\r\n _routeSubstrings: function() {\r\n var that = this;\r\n var routes = [];\r\n each(this._option(\"routes\"), (function(_, route) {\r\n var color = new Color(route.color || that._defaultRouteColor()).toHex().replace(\"#\", \"0x\");\r\n var opacity = Math.round(255 * (route.opacity || that._defaultRouteOpacity())).toString(16);\r\n var width = route.weight || that._defaultRouteWeight();\r\n var locations = [];\r\n each(route.locations, (function(_, routePoint) {\r\n locations.push(that._locationToString(routePoint))\r\n }));\r\n routes.push(\"path=color:\" + color + opacity + \"|weight:\" + width + \"|\" + locations.join(\"|\"))\r\n }));\r\n return routes\r\n },\r\n _attachClickEvent: function() {\r\n var that = this;\r\n var eventName = this._addEventNamespace(clickEventName);\r\n eventsEngine.off(this._$container, eventName);\r\n eventsEngine.on(this._$container, eventName, (function(e) {\r\n that._fireClickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n});\r\nexport default GoogleStaticProvider;\r\n","/**\r\n * DevExtreme (esm/ui/map/provider.dynamic.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport Provider from \"./provider\";\r\nvar abstract = Provider.abstract;\r\nvar DynamicProvider = Provider.inherit({\r\n _geocodeLocation: function(location) {\r\n return new Promise(function(resolve) {\r\n var cache = this._geocodedLocations;\r\n var cachedLocation = cache[location];\r\n if (cachedLocation) {\r\n resolve(cachedLocation)\r\n } else {\r\n this._geocodeLocationImpl(location).then((function(geocodedLocation) {\r\n cache[location] = geocodedLocation;\r\n resolve(geocodedLocation)\r\n }))\r\n }\r\n }.bind(this))\r\n },\r\n _renderImpl: function() {\r\n return this._load().then(function() {\r\n return this._init()\r\n }.bind(this)).then(function() {\r\n return Promise.all([this.updateMapType(), this._areBoundsSet() ? this.updateBounds() : this.updateCenter()])\r\n }.bind(this)).then(function() {\r\n this._attachHandlers();\r\n return new Promise((function(resolve) {\r\n var timeout = setTimeout((function() {\r\n clearTimeout(timeout);\r\n resolve()\r\n }))\r\n }))\r\n }.bind(this))\r\n },\r\n _load: function() {\r\n if (!this._mapsLoader) {\r\n this._mapsLoader = this._loadImpl()\r\n }\r\n this._markers = [];\r\n this._routes = [];\r\n return this._mapsLoader\r\n },\r\n _loadImpl: abstract,\r\n _init: abstract,\r\n _attachHandlers: abstract,\r\n addMarkers: function(options) {\r\n return Promise.all(map(options, function(options) {\r\n return this._addMarker(options)\r\n }.bind(this))).then(function(markerObjects) {\r\n this._fitBounds();\r\n return [false, map(markerObjects, (function(markerObject) {\r\n return markerObject.marker\r\n }))]\r\n }.bind(this))\r\n },\r\n _addMarker: function(options) {\r\n return this._renderMarker(options).then(function(markerObject) {\r\n this._markers.push(extend({\r\n options: options\r\n }, markerObject));\r\n this._fireMarkerAddedAction({\r\n options: options,\r\n originalMarker: markerObject.marker\r\n });\r\n return markerObject\r\n }.bind(this))\r\n },\r\n _renderMarker: abstract,\r\n removeMarkers: function(markersOptionsToRemove) {\r\n var that = this;\r\n each(markersOptionsToRemove, (function(_, markerOptionToRemove) {\r\n that._removeMarker(markerOptionToRemove)\r\n }));\r\n return Promise.resolve()\r\n },\r\n _removeMarker: function(markersOptionToRemove) {\r\n var that = this;\r\n each(this._markers, (function(markerIndex, markerObject) {\r\n if (markerObject.options !== markersOptionToRemove) {\r\n return true\r\n }\r\n that._destroyMarker(markerObject);\r\n that._markers.splice(markerIndex, 1);\r\n that._fireMarkerRemovedAction({\r\n options: markerObject.options\r\n });\r\n return false\r\n }))\r\n },\r\n _destroyMarker: abstract,\r\n _clearMarkers: function() {\r\n while (this._markers.length > 0) {\r\n this._removeMarker(this._markers[0].options)\r\n }\r\n },\r\n addRoutes: function(options) {\r\n return Promise.all(map(options, function(options) {\r\n return this._addRoute(options)\r\n }.bind(this))).then(function(routeObjects) {\r\n this._fitBounds();\r\n return [false, map(routeObjects, (function(routeObject) {\r\n return routeObject.instance\r\n }))]\r\n }.bind(this))\r\n },\r\n _addRoute: function(options) {\r\n return this._renderRoute(options).then(function(routeObject) {\r\n this._routes.push(extend({\r\n options: options\r\n }, routeObject));\r\n this._fireRouteAddedAction({\r\n options: options,\r\n originalRoute: routeObject.instance\r\n });\r\n return routeObject\r\n }.bind(this))\r\n },\r\n _renderRoute: abstract,\r\n removeRoutes: function(options) {\r\n var that = this;\r\n each(options, (function(routeIndex, options) {\r\n that._removeRoute(options)\r\n }));\r\n return Promise.resolve()\r\n },\r\n _removeRoute: function(options) {\r\n var that = this;\r\n each(this._routes, (function(routeIndex, routeObject) {\r\n if (routeObject.options !== options) {\r\n return true\r\n }\r\n that._destroyRoute(routeObject);\r\n that._routes.splice(routeIndex, 1);\r\n that._fireRouteRemovedAction({\r\n options: options\r\n });\r\n return false\r\n }))\r\n },\r\n _destroyRoute: abstract,\r\n _clearRoutes: function() {\r\n while (this._routes.length > 0) {\r\n this._removeRoute(this._routes[0].options)\r\n }\r\n },\r\n adjustViewport: function() {\r\n return this._fitBounds()\r\n },\r\n isEventsCanceled: function() {\r\n return true\r\n },\r\n _fitBounds: abstract,\r\n _updateBounds: function() {\r\n var that = this;\r\n this._clearBounds();\r\n if (!this._option(\"autoAdjust\")) {\r\n return\r\n }\r\n each(this._markers, (function(_, markerObject) {\r\n that._extendBounds(markerObject.location)\r\n }));\r\n each(this._routes, (function(_, routeObject) {\r\n routeObject.northEast && that._extendBounds(routeObject.northEast);\r\n routeObject.southWest && that._extendBounds(routeObject.southWest)\r\n }))\r\n },\r\n _clearBounds: function() {\r\n this._bounds = null\r\n },\r\n _extendBounds: abstract\r\n});\r\nexport default DynamicProvider;\r\n","/**\r\n * DevExtreme (esm/ui/map/provider.dynamic.google.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport DynamicProvider from \"./provider.dynamic\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport Color from \"../../color\";\r\nimport ajax from \"../../core/utils/ajax\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar GOOGLE_MAP_READY = \"_googleScriptReady\";\r\nvar GOOGLE_URL = \"https://maps.googleapis.com/maps/api/js?callback=\" + GOOGLE_MAP_READY;\r\nvar INFO_WINDOW_CLASS = \"gm-style-iw\";\r\nvar CustomMarker;\r\nvar initCustomMarkerClass = function() {\r\n CustomMarker = function(options) {\r\n this._position = options.position;\r\n this._offset = options.offset;\r\n this._$overlayContainer = $(\"<div>\").css({\r\n position: \"absolute\",\r\n display: \"none\",\r\n cursor: \"pointer\"\r\n }).append(options.html);\r\n this.setMap(options.map)\r\n };\r\n CustomMarker.prototype = new google.maps.OverlayView;\r\n CustomMarker.prototype.onAdd = function() {\r\n var $pane = $(this.getPanes().overlayMouseTarget);\r\n $pane.append(this._$overlayContainer);\r\n this._clickListener = google.maps.event.addDomListener(this._$overlayContainer.get(0), \"click\", function(e) {\r\n google.maps.event.trigger(this, \"click\");\r\n e.preventDefault()\r\n }.bind(this));\r\n this.draw()\r\n };\r\n CustomMarker.prototype.onRemove = function() {\r\n google.maps.event.removeListener(this._clickListener);\r\n this._$overlayContainer.remove()\r\n };\r\n CustomMarker.prototype.draw = function() {\r\n var position = this.getProjection().fromLatLngToDivPixel(this._position);\r\n this._$overlayContainer.css({\r\n left: position.x + this._offset.left,\r\n top: position.y + this._offset.top,\r\n display: \"block\"\r\n })\r\n }\r\n};\r\nvar googleMapsLoaded = function() {\r\n return window.google && window.google.maps\r\n};\r\nvar googleMapsLoader;\r\nvar GoogleProvider = DynamicProvider.inherit({\r\n _mapType: function(type) {\r\n var mapTypes = {\r\n hybrid: google.maps.MapTypeId.HYBRID,\r\n roadmap: google.maps.MapTypeId.ROADMAP,\r\n satellite: google.maps.MapTypeId.SATELLITE\r\n };\r\n return mapTypes[type] || mapTypes.hybrid\r\n },\r\n _movementMode: function(type) {\r\n var movementTypes = {\r\n driving: google.maps.TravelMode.DRIVING,\r\n walking: google.maps.TravelMode.WALKING\r\n };\r\n return movementTypes[type] || movementTypes.driving\r\n },\r\n _resolveLocation: function(location) {\r\n return new Promise(function(resolve) {\r\n var latLng = this._getLatLng(location);\r\n if (latLng) {\r\n resolve(new google.maps.LatLng(latLng.lat, latLng.lng))\r\n } else {\r\n this._geocodeLocation(location).then((function(geocodedLocation) {\r\n resolve(geocodedLocation)\r\n }))\r\n }\r\n }.bind(this))\r\n },\r\n _geocodedLocations: {},\r\n _geocodeLocationImpl: function(location) {\r\n return new Promise((function(resolve) {\r\n if (!isDefined(location)) {\r\n resolve(new google.maps.LatLng(0, 0));\r\n return\r\n }\r\n var geocoder = new google.maps.Geocoder;\r\n geocoder.geocode({\r\n address: location\r\n }, (function(results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n resolve(results[0].geometry.location)\r\n } else {\r\n errors.log(\"W1006\", status);\r\n resolve(new google.maps.LatLng(0, 0))\r\n }\r\n }))\r\n }))\r\n },\r\n _normalizeLocation: function(location) {\r\n return {\r\n lat: location.lat(),\r\n lng: location.lng()\r\n }\r\n },\r\n _normalizeLocationRect: function(locationRect) {\r\n return {\r\n northEast: this._normalizeLocation(locationRect.getNorthEast()),\r\n southWest: this._normalizeLocation(locationRect.getSouthWest())\r\n }\r\n },\r\n _loadImpl: function() {\r\n return new Promise(function(resolve) {\r\n if (googleMapsLoaded()) {\r\n resolve()\r\n } else {\r\n if (!googleMapsLoader) {\r\n googleMapsLoader = this._loadMapScript()\r\n }\r\n googleMapsLoader.then(function() {\r\n if (googleMapsLoaded()) {\r\n resolve();\r\n return\r\n }\r\n this._loadMapScript().then(resolve)\r\n }.bind(this))\r\n }\r\n }.bind(this)).then((function() {\r\n initCustomMarkerClass()\r\n }))\r\n },\r\n _loadMapScript: function() {\r\n return new Promise(function(resolve) {\r\n var key = this._keyOption(\"google\");\r\n window[GOOGLE_MAP_READY] = resolve;\r\n ajax.sendRequest({\r\n url: GOOGLE_URL + (key ? \"&key=\" + key : \"\"),\r\n dataType: \"script\"\r\n })\r\n }.bind(this)).then((function() {\r\n try {\r\n delete window[GOOGLE_MAP_READY]\r\n } catch (e) {\r\n window[GOOGLE_MAP_READY] = void 0\r\n }\r\n }))\r\n },\r\n _init: function() {\r\n return new Promise(function(resolve) {\r\n this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n var showDefaultUI = this._option(\"controls\");\r\n this._map = new google.maps.Map(this._$container[0], {\r\n zoom: this._option(\"zoom\"),\r\n center: center,\r\n disableDefaultUI: !showDefaultUI\r\n });\r\n var listener = google.maps.event.addListener(this._map, \"idle\", (function() {\r\n resolve(listener)\r\n }))\r\n }.bind(this))\r\n }.bind(this)).then((function(listener) {\r\n google.maps.event.removeListener(listener)\r\n }))\r\n },\r\n _attachHandlers: function() {\r\n this._boundsChangeListener = google.maps.event.addListener(this._map, \"bounds_changed\", this._boundsChangeHandler.bind(this));\r\n this._clickListener = google.maps.event.addListener(this._map, \"click\", this._clickActionHandler.bind(this))\r\n },\r\n _boundsChangeHandler: function() {\r\n var bounds = this._map.getBounds();\r\n this._option(\"bounds\", this._normalizeLocationRect(bounds));\r\n var center = this._map.getCenter();\r\n this._option(\"center\", this._normalizeLocation(center));\r\n if (!this._preventZoomChangeEvent) {\r\n this._option(\"zoom\", this._map.getZoom())\r\n }\r\n },\r\n _clickActionHandler: function(e) {\r\n this._fireClickAction({\r\n location: this._normalizeLocation(e.latLng)\r\n })\r\n },\r\n updateDimensions: function() {\r\n var center = this._option(\"center\");\r\n google.maps.event.trigger(this._map, \"resize\");\r\n this._option(\"center\", center);\r\n return this.updateCenter()\r\n },\r\n updateMapType: function() {\r\n this._map.setMapTypeId(this._mapType(this._option(\"type\")));\r\n return Promise.resolve()\r\n },\r\n updateBounds: function() {\r\n return Promise.all([this._resolveLocation(this._option(\"bounds.northEast\")), this._resolveLocation(this._option(\"bounds.southWest\"))]).then(function(result) {\r\n var bounds = new google.maps.LatLngBounds;\r\n bounds.extend(result[0]);\r\n bounds.extend(result[1]);\r\n this._map.fitBounds(bounds)\r\n }.bind(this))\r\n },\r\n updateCenter: function() {\r\n return this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n this._map.setCenter(center);\r\n this._option(\"center\", this._normalizeLocation(center))\r\n }.bind(this))\r\n },\r\n updateZoom: function() {\r\n this._map.setZoom(this._option(\"zoom\"));\r\n return Promise.resolve()\r\n },\r\n updateControls: function() {\r\n var showDefaultUI = this._option(\"controls\");\r\n this._map.setOptions({\r\n disableDefaultUI: !showDefaultUI\r\n });\r\n return Promise.resolve()\r\n },\r\n isEventsCanceled: function(e) {\r\n var gestureHandling = this._map && this._map.get(\"gestureHandling\");\r\n var isInfoWindowContent = $(e.target).closest(\".\".concat(INFO_WINDOW_CLASS)).length > 0;\r\n if (isInfoWindowContent || \"desktop\" !== devices.real().deviceType && \"cooperative\" === gestureHandling) {\r\n return false\r\n }\r\n return this.callBase()\r\n },\r\n _renderMarker: function(options) {\r\n return this._resolveLocation(options.location).then(function(location) {\r\n var marker;\r\n if (options.html) {\r\n marker = new CustomMarker({\r\n map: this._map,\r\n position: location,\r\n html: options.html,\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, options.htmlOffset)\r\n })\r\n } else {\r\n marker = new google.maps.Marker({\r\n position: location,\r\n map: this._map,\r\n icon: options.iconSrc || this._option(\"markerIconSrc\")\r\n })\r\n }\r\n var infoWindow = this._renderTooltip(marker, options.tooltip);\r\n var listener;\r\n if (options.onClick || options.tooltip) {\r\n var markerClickAction = this._mapWidget._createAction(options.onClick || noop);\r\n var markerNormalizedLocation = this._normalizeLocation(location);\r\n listener = google.maps.event.addListener(marker, \"click\", function() {\r\n markerClickAction({\r\n location: markerNormalizedLocation\r\n });\r\n if (infoWindow) {\r\n infoWindow.open(this._map, marker)\r\n }\r\n }.bind(this))\r\n }\r\n return {\r\n location: location,\r\n marker: marker,\r\n listener: listener\r\n }\r\n }.bind(this))\r\n },\r\n _renderTooltip: function(marker, options) {\r\n if (!options) {\r\n return\r\n }\r\n options = this._parseTooltipOptions(options);\r\n var infoWindow = new google.maps.InfoWindow({\r\n content: options.text\r\n });\r\n if (options.visible) {\r\n infoWindow.open(this._map, marker)\r\n }\r\n return infoWindow\r\n },\r\n _destroyMarker: function(marker) {\r\n marker.marker.setMap(null);\r\n if (marker.listener) {\r\n google.maps.event.removeListener(marker.listener)\r\n }\r\n },\r\n _renderRoute: function(options) {\r\n return Promise.all(map(options.locations, function(point) {\r\n return this._resolveLocation(point)\r\n }.bind(this))).then(function(locations) {\r\n return new Promise(function(resolve) {\r\n var origin = locations.shift();\r\n var destination = locations.pop();\r\n var waypoints = map(locations, (function(location) {\r\n return {\r\n location: location,\r\n stopover: true\r\n }\r\n }));\r\n var request = {\r\n origin: origin,\r\n destination: destination,\r\n waypoints: waypoints,\r\n optimizeWaypoints: true,\r\n travelMode: this._movementMode(options.mode)\r\n };\r\n (new google.maps.DirectionsService).route(request, function(response, status) {\r\n if (status === google.maps.DirectionsStatus.OK) {\r\n var color = new Color(options.color || this._defaultRouteColor()).toHex();\r\n var directionOptions = {\r\n directions: response,\r\n map: this._map,\r\n suppressMarkers: true,\r\n preserveViewport: true,\r\n polylineOptions: {\r\n strokeWeight: options.weight || this._defaultRouteWeight(),\r\n strokeOpacity: options.opacity || this._defaultRouteOpacity(),\r\n strokeColor: color\r\n }\r\n };\r\n var route = new google.maps.DirectionsRenderer(directionOptions);\r\n var bounds = response.routes[0].bounds;\r\n resolve({\r\n instance: route,\r\n northEast: bounds.getNorthEast(),\r\n southWest: bounds.getSouthWest()\r\n })\r\n } else {\r\n errors.log(\"W1006\", status);\r\n resolve({\r\n instance: new google.maps.DirectionsRenderer({})\r\n })\r\n }\r\n }.bind(this))\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _destroyRoute: function(routeObject) {\r\n routeObject.instance.setMap(null)\r\n },\r\n _fitBounds: function() {\r\n this._updateBounds();\r\n if (this._bounds && this._option(\"autoAdjust\")) {\r\n var zoomBeforeFitting = this._map.getZoom();\r\n this._preventZoomChangeEvent = true;\r\n this._map.fitBounds(this._bounds);\r\n this._boundsChangeHandler();\r\n var zoomAfterFitting = this._map.getZoom();\r\n if (zoomBeforeFitting < zoomAfterFitting) {\r\n this._map.setZoom(zoomBeforeFitting)\r\n } else {\r\n this._option(\"zoom\", zoomAfterFitting)\r\n }\r\n delete this._preventZoomChangeEvent\r\n }\r\n return Promise.resolve()\r\n },\r\n _extendBounds: function(location) {\r\n if (this._bounds) {\r\n this._bounds.extend(location)\r\n } else {\r\n this._bounds = new google.maps.LatLngBounds;\r\n this._bounds.extend(location)\r\n }\r\n },\r\n clean: function() {\r\n if (this._map) {\r\n google.maps.event.removeListener(this._boundsChangeListener);\r\n google.maps.event.removeListener(this._clickListener);\r\n this._clearMarkers();\r\n this._clearRoutes();\r\n delete this._map;\r\n this._$container.empty()\r\n }\r\n return Promise.resolve()\r\n }\r\n});\r\nexport default GoogleProvider;\r\n","/**\r\n * DevExtreme (esm/ui/map/provider.dynamic.bing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n map,\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DynamicProvider from \"./provider.dynamic\";\r\nimport Color from \"../../color\";\r\nimport ajax from \"../../core/utils/ajax\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar BING_MAP_READY = \"_bingScriptReady\";\r\nvar BING_URL_V8 = \"https://www.bing.com/api/maps/mapcontrol?callback=\" + BING_MAP_READY;\r\nvar INFOBOX_V_OFFSET_V8 = 13;\r\nvar MIN_LOCATION_RECT_LENGTH = 1e-16;\r\nvar msMapsLoaded = function() {\r\n return window.Microsoft && window.Microsoft.Maps\r\n};\r\nvar msMapsLoader;\r\nvar BingProvider = DynamicProvider.inherit({\r\n _mapType: function(type) {\r\n var mapTypes = {\r\n roadmap: Microsoft.Maps.MapTypeId.road,\r\n hybrid: Microsoft.Maps.MapTypeId.aerial,\r\n satellite: Microsoft.Maps.MapTypeId.aerial\r\n };\r\n return mapTypes[type] || mapTypes.road\r\n },\r\n _movementMode: function(type) {\r\n var movementTypes = {\r\n driving: Microsoft.Maps.Directions.RouteMode.driving,\r\n walking: Microsoft.Maps.Directions.RouteMode.walking\r\n };\r\n return movementTypes[type] || movementTypes.driving\r\n },\r\n _resolveLocation: function(location) {\r\n return new Promise(function(resolve) {\r\n var latLng = this._getLatLng(location);\r\n if (latLng) {\r\n resolve(new Microsoft.Maps.Location(latLng.lat, latLng.lng))\r\n } else {\r\n this._geocodeLocation(location).then((function(geocodedLocation) {\r\n resolve(geocodedLocation)\r\n }))\r\n }\r\n }.bind(this))\r\n },\r\n _geocodedLocations: {},\r\n _geocodeLocationImpl: function(location) {\r\n return new Promise(function(resolve) {\r\n if (!isDefined(location)) {\r\n resolve(new Microsoft.Maps.Location(0, 0));\r\n return\r\n }\r\n var searchManager = new Microsoft.Maps.Search.SearchManager(this._map);\r\n var searchRequest = {\r\n where: location,\r\n count: 1,\r\n callback: function(searchResponse) {\r\n var result = searchResponse.results[0];\r\n if (result) {\r\n var boundsBox = searchResponse.results[0].location;\r\n resolve(new Microsoft.Maps.Location(boundsBox.latitude, boundsBox.longitude))\r\n } else {\r\n resolve(new Microsoft.Maps.Location(0, 0))\r\n }\r\n }\r\n };\r\n searchManager.geocode(searchRequest)\r\n }.bind(this))\r\n },\r\n _normalizeLocation: function(location) {\r\n return {\r\n lat: location.latitude,\r\n lng: location.longitude\r\n }\r\n },\r\n _normalizeLocationRect: function(locationRect) {\r\n var northWest = this._normalizeLocation(locationRect.getNorthwest());\r\n var southEast = this._normalizeLocation(locationRect.getSoutheast());\r\n return {\r\n northEast: {\r\n lat: northWest.lat,\r\n lng: southEast.lng\r\n },\r\n southWest: {\r\n lat: southEast.lat,\r\n lng: northWest.lng\r\n }\r\n }\r\n },\r\n _loadImpl: function() {\r\n return new Promise(function(resolve) {\r\n if (msMapsLoaded()) {\r\n resolve()\r\n } else {\r\n if (!msMapsLoader) {\r\n msMapsLoader = this._loadMapScript()\r\n }\r\n msMapsLoader.then(function() {\r\n if (msMapsLoaded()) {\r\n resolve();\r\n return\r\n }\r\n this._loadMapScript().then(resolve)\r\n }.bind(this))\r\n }\r\n }.bind(this)).then((function() {\r\n return Promise.all([new Promise((function(resolve) {\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.Search\", {\r\n callback: resolve\r\n })\r\n })), new Promise((function(resolve) {\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.Directions\", {\r\n callback: resolve\r\n })\r\n }))])\r\n }))\r\n },\r\n _loadMapScript: function() {\r\n return new Promise((function(resolve) {\r\n window[BING_MAP_READY] = resolve;\r\n ajax.sendRequest({\r\n url: BING_URL_V8,\r\n dataType: \"script\"\r\n })\r\n })).then((function() {\r\n try {\r\n delete window[BING_MAP_READY]\r\n } catch (e) {\r\n window[BING_MAP_READY] = void 0\r\n }\r\n }))\r\n },\r\n _init: function() {\r\n this._createMap();\r\n return Promise.resolve()\r\n },\r\n _createMap: function() {\r\n var controls = this._option(\"controls\");\r\n this._map = new Microsoft.Maps.Map(this._$container[0], {\r\n credentials: this._keyOption(\"bing\"),\r\n zoom: this._option(\"zoom\"),\r\n showDashboard: controls,\r\n showMapTypeSelector: controls,\r\n showScalebar: controls\r\n })\r\n },\r\n _attachHandlers: function() {\r\n this._providerViewChangeHandler = Microsoft.Maps.Events.addHandler(this._map, \"viewchange\", this._viewChangeHandler.bind(this));\r\n this._providerClickHandler = Microsoft.Maps.Events.addHandler(this._map, \"click\", this._clickActionHandler.bind(this))\r\n },\r\n _viewChangeHandler: function() {\r\n var bounds = this._map.getBounds();\r\n this._option(\"bounds\", this._normalizeLocationRect(bounds));\r\n var center = this._map.getCenter();\r\n this._option(\"center\", this._normalizeLocation(center));\r\n if (!this._preventZoomChangeEvent) {\r\n this._option(\"zoom\", this._map.getZoom())\r\n }\r\n },\r\n _clickActionHandler: function(e) {\r\n if (\"map\" === e.targetType) {\r\n this._fireClickAction({\r\n location: this._normalizeLocation(e.location)\r\n })\r\n }\r\n },\r\n updateDimensions: function() {\r\n var $container = this._$container;\r\n this._map.setOptions({\r\n width: getWidth($container),\r\n height: getHeight($container)\r\n });\r\n return Promise.resolve()\r\n },\r\n updateMapType: function() {\r\n var type = this._option(\"type\");\r\n var labelOverlay = Microsoft.Maps.LabelOverlay;\r\n this._map.setView({\r\n animate: false,\r\n mapTypeId: this._mapType(type),\r\n labelOverlay: \"satellite\" === type ? labelOverlay.hidden : labelOverlay.visible\r\n });\r\n return Promise.resolve()\r\n },\r\n updateBounds: function() {\r\n return Promise.all([this._resolveLocation(this._option(\"bounds.northEast\")), this._resolveLocation(this._option(\"bounds.southWest\"))]).then(function(result) {\r\n var bounds = new Microsoft.Maps.LocationRect.fromLocations(result[0], result[1]);\r\n this._map.setView({\r\n animate: false,\r\n bounds: bounds\r\n })\r\n }.bind(this))\r\n },\r\n updateCenter: function() {\r\n return this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n this._map.setView({\r\n animate: false,\r\n center: center\r\n })\r\n }.bind(this))\r\n },\r\n updateZoom: function() {\r\n this._map.setView({\r\n animate: false,\r\n zoom: this._option(\"zoom\")\r\n });\r\n return Promise.resolve()\r\n },\r\n updateControls: function() {\r\n this.clean();\r\n return this.render.apply(this, arguments)\r\n },\r\n _renderMarker: function(options) {\r\n return this._resolveLocation(options.location).then(function(location) {\r\n var pushpinOptions = {\r\n icon: options.iconSrc || this._option(\"markerIconSrc\")\r\n };\r\n if (options.html) {\r\n extend(pushpinOptions, {\r\n htmlContent: options.html,\r\n width: null,\r\n height: null\r\n });\r\n var htmlOffset = options.htmlOffset;\r\n if (htmlOffset) {\r\n pushpinOptions.anchor = new Microsoft.Maps.Point(-htmlOffset.left, -htmlOffset.top)\r\n }\r\n }\r\n var pushpin = new Microsoft.Maps.Pushpin(location, pushpinOptions);\r\n this._map.entities.push(pushpin);\r\n var infobox = this._renderTooltip(location, options.tooltip);\r\n var handler;\r\n if (options.onClick || options.tooltip) {\r\n var markerClickAction = this._mapWidget._createAction(options.onClick || noop);\r\n var markerNormalizedLocation = this._normalizeLocation(location);\r\n handler = Microsoft.Maps.Events.addHandler(pushpin, \"click\", (function() {\r\n markerClickAction({\r\n location: markerNormalizedLocation\r\n });\r\n if (infobox) {\r\n infobox.setOptions({\r\n visible: true\r\n })\r\n }\r\n }))\r\n }\r\n return {\r\n location: location,\r\n marker: pushpin,\r\n infobox: infobox,\r\n handler: handler\r\n }\r\n }.bind(this))\r\n },\r\n _renderTooltip: function(location, options) {\r\n if (!options) {\r\n return\r\n }\r\n options = this._parseTooltipOptions(options);\r\n var infobox = new Microsoft.Maps.Infobox(location, {\r\n description: options.text,\r\n offset: new Microsoft.Maps.Point(0, INFOBOX_V_OFFSET_V8),\r\n visible: options.visible\r\n });\r\n infobox.setMap(this._map);\r\n return infobox\r\n },\r\n _destroyMarker: function(marker) {\r\n this._map.entities.remove(marker.marker);\r\n if (marker.infobox) {\r\n marker.infobox.setMap(null)\r\n }\r\n if (marker.handler) {\r\n Microsoft.Maps.Events.removeHandler(marker.handler)\r\n }\r\n },\r\n _renderRoute: function(options) {\r\n return Promise.all(map(options.locations, function(point) {\r\n return this._resolveLocation(point)\r\n }.bind(this))).then(function(locations) {\r\n return new Promise(function(resolve) {\r\n var direction = new Microsoft.Maps.Directions.DirectionsManager(this._map);\r\n var color = new Color(options.color || this._defaultRouteColor()).toHex();\r\n var routeColor = new Microsoft.Maps.Color.fromHex(color);\r\n routeColor.a = 255 * (options.opacity || this._defaultRouteOpacity());\r\n direction.setRenderOptions({\r\n autoUpdateMapView: false,\r\n displayRouteSelector: false,\r\n waypointPushpinOptions: {\r\n visible: false\r\n },\r\n drivingPolylineOptions: {\r\n strokeColor: routeColor,\r\n strokeThickness: options.weight || this._defaultRouteWeight()\r\n },\r\n walkingPolylineOptions: {\r\n strokeColor: routeColor,\r\n strokeThickness: options.weight || this._defaultRouteWeight()\r\n }\r\n });\r\n direction.setRequestOptions({\r\n routeMode: this._movementMode(options.mode),\r\n routeDraggable: false\r\n });\r\n each(locations, (function(_, location) {\r\n var waypoint = new Microsoft.Maps.Directions.Waypoint({\r\n location: location\r\n });\r\n direction.addWaypoint(waypoint)\r\n }));\r\n var directionHandlers = [];\r\n directionHandlers.push(Microsoft.Maps.Events.addHandler(direction, \"directionsUpdated\", (function(args) {\r\n while (directionHandlers.length) {\r\n Microsoft.Maps.Events.removeHandler(directionHandlers.pop())\r\n }\r\n var routeSummary = args.routeSummary[0];\r\n resolve({\r\n instance: direction,\r\n northEast: routeSummary.northEast,\r\n southWest: routeSummary.southWest\r\n })\r\n })));\r\n directionHandlers.push(Microsoft.Maps.Events.addHandler(direction, \"directionsError\", (function(args) {\r\n while (directionHandlers.length) {\r\n Microsoft.Maps.Events.removeHandler(directionHandlers.pop())\r\n }\r\n var status = \"RouteResponseCode: \" + args.responseCode + \" - \" + args.message;\r\n errors.log(\"W1006\", status);\r\n resolve({\r\n instance: direction\r\n })\r\n })));\r\n direction.calculateDirections()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _destroyRoute: function(routeObject) {\r\n routeObject.instance.dispose()\r\n },\r\n _fitBounds: function() {\r\n this._updateBounds();\r\n if (this._bounds && this._option(\"autoAdjust\")) {\r\n var zoomBeforeFitting = this._map.getZoom();\r\n this._preventZoomChangeEvent = true;\r\n var bounds = this._bounds.clone();\r\n bounds.height = 1.1 * bounds.height;\r\n bounds.width = 1.1 * bounds.width;\r\n this._map.setView({\r\n animate: false,\r\n bounds: bounds,\r\n zoom: zoomBeforeFitting\r\n });\r\n var zoomAfterFitting = this._map.getZoom();\r\n if (zoomBeforeFitting < zoomAfterFitting) {\r\n this._map.setView({\r\n animate: false,\r\n zoom: zoomBeforeFitting\r\n })\r\n } else {\r\n this._option(\"zoom\", zoomAfterFitting)\r\n }\r\n delete this._preventZoomChangeEvent\r\n }\r\n return Promise.resolve()\r\n },\r\n _extendBounds: function(location) {\r\n if (this._bounds) {\r\n this._bounds = new Microsoft.Maps.LocationRect.fromLocations(this._bounds.getNorthwest(), this._bounds.getSoutheast(), location)\r\n } else {\r\n this._bounds = new Microsoft.Maps.LocationRect(location, MIN_LOCATION_RECT_LENGTH, MIN_LOCATION_RECT_LENGTH)\r\n }\r\n },\r\n clean: function() {\r\n if (this._map) {\r\n Microsoft.Maps.Events.removeHandler(this._providerViewChangeHandler);\r\n Microsoft.Maps.Events.removeHandler(this._providerClickHandler);\r\n this._clearMarkers();\r\n this._clearRoutes();\r\n this._map.dispose()\r\n }\r\n return Promise.resolve()\r\n }\r\n});\r\nexport default BingProvider;\r\n","/**\r\n * DevExtreme (esm/ui/map.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport devices from \"../core/devices\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n titleize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n wrapToArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport googleStatic from \"./map/provider.google_static\";\r\nimport google from \"./map/provider.dynamic.google\";\r\nimport bing from \"./map/provider.dynamic.bing\";\r\nvar PROVIDERS = {\r\n googleStatic: googleStatic,\r\n google: google,\r\n bing: bing\r\n};\r\nvar MAP_CLASS = \"dx-map\";\r\nvar MAP_CONTAINER_CLASS = \"dx-map-container\";\r\nvar MAP_SHIELD_CLASS = \"dx-map-shield\";\r\nvar Map = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n bounds: {\r\n northEast: null,\r\n southWest: null\r\n },\r\n center: {\r\n lat: 0,\r\n lng: 0\r\n },\r\n zoom: 1,\r\n width: 300,\r\n height: 300,\r\n type: \"roadmap\",\r\n provider: \"google\",\r\n autoAdjust: true,\r\n markers: [],\r\n markerIconSrc: null,\r\n onMarkerAdded: null,\r\n onMarkerRemoved: null,\r\n routes: [],\r\n onRouteAdded: null,\r\n onRouteRemoved: null,\r\n apiKey: {\r\n bing: \"\",\r\n google: \"\",\r\n googleStatic: \"\"\r\n },\r\n controls: false,\r\n onReady: null,\r\n onUpdated: null,\r\n onClick: null\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _renderFocusTarget: noop,\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(MAP_CLASS);\r\n this._lastAsyncAction = Promise.resolve();\r\n this._checkOption(\"provider\");\r\n this._checkOption(\"markers\");\r\n this._checkOption(\"routes\");\r\n this._initContainer();\r\n this._grabEvents();\r\n this._rendered = {}\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _checkOption: function(option) {\r\n var value = this.option(option);\r\n if (\"markers\" === option && !Array.isArray(value)) {\r\n throw errors.Error(\"E1022\")\r\n }\r\n if (\"routes\" === option && !Array.isArray(value)) {\r\n throw errors.Error(\"E1023\")\r\n }\r\n },\r\n _initContainer: function() {\r\n this._$container = $(\"<div>\").addClass(MAP_CONTAINER_CLASS);\r\n this.$element().append(this._$container)\r\n },\r\n _grabEvents: function() {\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n eventsEngine.on(this.$element(), eventName, this._cancelEvent.bind(this))\r\n },\r\n _cancelEvent: function(e) {\r\n var cancelByProvider = this._provider && this._provider.isEventsCanceled(e) && !this.option(\"disabled\");\r\n if (cancelByProvider) {\r\n e.stopPropagation()\r\n }\r\n },\r\n _saveRendered: function(option) {\r\n var value = this.option(option);\r\n this._rendered[option] = value.slice()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderShield();\r\n this._saveRendered(\"markers\");\r\n this._saveRendered(\"routes\");\r\n this._provider = new(PROVIDERS[this.option(\"provider\")])(this, this._$container);\r\n this._queueAsyncAction(\"render\", this._rendered.markers, this._rendered.routes)\r\n },\r\n _renderShield: function() {\r\n var $shield;\r\n if (this.option(\"disabled\")) {\r\n $shield = $(\"<div>\").addClass(MAP_SHIELD_CLASS);\r\n this.$element().append($shield)\r\n } else {\r\n $shield = this.$element().find(\".\" + MAP_SHIELD_CLASS);\r\n $shield.remove()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._provider) {\r\n this._provider.clean()\r\n }\r\n this._provider = null;\r\n this._lastAsyncAction = Promise.resolve();\r\n this.setOptionSilent(\"bounds\", {\r\n northEast: null,\r\n southWest: null\r\n });\r\n delete this._suppressAsyncAction\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var changeBag = this._optionChangeBag;\r\n this._optionChangeBag = null;\r\n switch (name) {\r\n case \"disabled\":\r\n this._renderShield();\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"provider\":\r\n this._suppressAsyncAction = true;\r\n this._invalidate();\r\n break;\r\n case \"apiKey\":\r\n errors.log(\"W1001\");\r\n break;\r\n case \"bounds\":\r\n this._queueAsyncAction(\"updateBounds\");\r\n break;\r\n case \"center\":\r\n this._queueAsyncAction(\"updateCenter\");\r\n break;\r\n case \"zoom\":\r\n this._queueAsyncAction(\"updateZoom\");\r\n break;\r\n case \"type\":\r\n this._queueAsyncAction(\"updateMapType\");\r\n break;\r\n case \"controls\":\r\n this._queueAsyncAction(\"updateControls\", this._rendered.markers, this._rendered.routes);\r\n break;\r\n case \"autoAdjust\":\r\n this._queueAsyncAction(\"adjustViewport\");\r\n break;\r\n case \"markers\":\r\n case \"routes\":\r\n this._checkOption(name);\r\n var prevValue = this._rendered[name];\r\n this._saveRendered(name);\r\n this._queueAsyncAction(\"update\" + titleize(name), changeBag ? changeBag.removed : prevValue, changeBag ? changeBag.added : this._rendered[name]).then((function(result) {\r\n if (changeBag) {\r\n changeBag.resolve(result)\r\n }\r\n }));\r\n break;\r\n case \"markerIconSrc\":\r\n this._queueAsyncAction(\"updateMarkers\", this._rendered.markers, this._rendered.markers);\r\n break;\r\n case \"onReady\":\r\n case \"onUpdated\":\r\n case \"onMarkerAdded\":\r\n case \"onMarkerRemoved\":\r\n case \"onRouteAdded\":\r\n case \"onRouteRemoved\":\r\n case \"onClick\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._queueAsyncAction(\"updateDimensions\")\r\n },\r\n _queueAsyncAction: function(name) {\r\n var options = [].slice.call(arguments).slice(1);\r\n var isActionSuppressed = this._suppressAsyncAction;\r\n this._lastAsyncAction = this._lastAsyncAction.then(function() {\r\n if (!this._provider || isActionSuppressed) {\r\n return Promise.resolve()\r\n }\r\n return this._provider[name].apply(this._provider, options).then(function(result) {\r\n result = wrapToArray(result);\r\n var mapRefreshed = result[0];\r\n if (mapRefreshed && !this._disposed) {\r\n this._triggerReadyAction()\r\n }\r\n return result[1]\r\n }.bind(this))\r\n }.bind(this));\r\n return this._lastAsyncAction\r\n },\r\n _triggerReadyAction: function() {\r\n this._createActionByOption(\"onReady\")({\r\n originalMap: this._provider.map()\r\n })\r\n },\r\n _triggerUpdateAction: function() {\r\n this._createActionByOption(\"onUpdated\")()\r\n },\r\n setOptionSilent: function(name, value) {\r\n this._setOptionWithoutOptionChange(name, value)\r\n },\r\n addMarker: function(marker) {\r\n return this._addFunction(\"markers\", marker)\r\n },\r\n removeMarker: function(marker) {\r\n return this._removeFunction(\"markers\", marker)\r\n },\r\n addRoute: function(route) {\r\n return this._addFunction(\"routes\", route)\r\n },\r\n removeRoute: function(route) {\r\n return this._removeFunction(\"routes\", route)\r\n },\r\n _addFunction: function(optionName, addingValue) {\r\n var optionValue = this.option(optionName);\r\n var addingValues = wrapToArray(addingValue);\r\n optionValue.push.apply(optionValue, addingValues);\r\n return this._partialArrayOptionChange(optionName, optionValue, addingValues, [])\r\n },\r\n _removeFunction: function(optionName, removingValue) {\r\n var optionValue = this.option(optionName);\r\n var removingValues = wrapToArray(removingValue);\r\n each(removingValues, (function(removingIndex, removingValue) {\r\n var index = isNumeric(removingValue) ? removingValue : null === optionValue || void 0 === optionValue ? void 0 : optionValue.indexOf(removingValue);\r\n if (-1 !== index) {\r\n var removing = optionValue.splice(index, 1)[0];\r\n removingValues.splice(removingIndex, 1, removing)\r\n } else {\r\n throw errors.log(\"E1021\", titleize(optionName.substring(0, optionName.length - 1)), removingValue)\r\n }\r\n }));\r\n return this._partialArrayOptionChange(optionName, optionValue, [], removingValues)\r\n },\r\n _partialArrayOptionChange: function(optionName, optionValue, addingValues, removingValues) {\r\n return fromPromise(new Promise(function(resolve) {\r\n this._optionChangeBag = {\r\n resolve: resolve,\r\n added: addingValues,\r\n removed: removingValues\r\n };\r\n this.option(optionName, optionValue)\r\n }.bind(this)).then((function(result) {\r\n return result && 1 === result.length ? result[0] : result\r\n })), this)\r\n }\r\n});\r\nregisterComponent(\"dxMap\", Map);\r\nexport default Map;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxMap from 'devextreme/ui/map';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiCenterComponent, DxiMarkerComponent, DxiRouteComponent, DxoApiKeyModule, DxiCenterModule, DxiMarkerModule, DxiLocationModule, DxoTooltipModule, DxiRouteModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxMap]\r\n\r\n */\r\nclass DxMapComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'click', emit: 'onClick' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'markerAdded', emit: 'onMarkerAdded' },\r\n { subscribe: 'markerRemoved', emit: 'onMarkerRemoved' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'ready', emit: 'onReady' },\r\n { subscribe: 'routeAdded', emit: 'onRouteAdded' },\r\n { subscribe: 'routeRemoved', emit: 'onRouteRemoved' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'apiKeyChange' },\r\n { emit: 'autoAdjustChange' },\r\n { emit: 'centerChange' },\r\n { emit: 'controlsChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'markerIconSrcChange' },\r\n { emit: 'markersChange' },\r\n { emit: 'providerChange' },\r\n { emit: 'routesChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'zoomChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.apiKey]\r\n \r\n */\r\n get apiKey() {\r\n return this._getOption('apiKey');\r\n }\r\n set apiKey(value) {\r\n this._setOption('apiKey', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.autoAdjust]\r\n \r\n */\r\n get autoAdjust() {\r\n return this._getOption('autoAdjust');\r\n }\r\n set autoAdjust(value) {\r\n this._setOption('autoAdjust', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.center]\r\n \r\n */\r\n get center() {\r\n return this._getOption('center');\r\n }\r\n set center(value) {\r\n this._setOption('center', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.controls]\r\n \r\n */\r\n get controls() {\r\n return this._getOption('controls');\r\n }\r\n set controls(value) {\r\n this._setOption('controls', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.markerIconSrc]\r\n \r\n */\r\n get markerIconSrc() {\r\n return this._getOption('markerIconSrc');\r\n }\r\n set markerIconSrc(value) {\r\n this._setOption('markerIconSrc', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.markers]\r\n \r\n */\r\n get markers() {\r\n return this._getOption('markers');\r\n }\r\n set markers(value) {\r\n this._setOption('markers', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.provider]\r\n \r\n */\r\n get provider() {\r\n return this._getOption('provider');\r\n }\r\n set provider(value) {\r\n this._setOption('provider', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.routes]\r\n \r\n */\r\n get routes() {\r\n return this._getOption('routes');\r\n }\r\n set routes(value) {\r\n this._setOption('routes', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxMapOptions.zoom]\r\n \r\n */\r\n get zoom() {\r\n return this._getOption('zoom');\r\n }\r\n set zoom(value) {\r\n this._setOption('zoom', value);\r\n }\r\n get centerChildren() {\r\n return this._getOption('center');\r\n }\r\n set centerChildren(value) {\r\n this.setChildren('center', value);\r\n }\r\n get markersChildren() {\r\n return this._getOption('markers');\r\n }\r\n set markersChildren(value) {\r\n this.setChildren('markers', value);\r\n }\r\n get routesChildren() {\r\n return this._getOption('routes');\r\n }\r\n set routesChildren(value) {\r\n this.setChildren('routes', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxMap(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('center', changes);\r\n this.setupChanges('markers', changes);\r\n this.setupChanges('routes', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('center');\r\n this._idh.doCheck('markers');\r\n this._idh.doCheck('routes');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxMapComponent.ɵfac = function DxMapComponent_Factory(t) { return new (t || DxMapComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxMapComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxMapComponent, selectors: [[\"dx-map\"]], contentQueries: function DxMapComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiCenterComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiMarkerComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiRouteComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.centerChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.markersChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.routesChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", apiKey: \"apiKey\", autoAdjust: \"autoAdjust\", center: \"center\", controls: \"controls\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", markerIconSrc: \"markerIconSrc\", markers: \"markers\", provider: \"provider\", routes: \"routes\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", type: \"type\", visible: \"visible\", width: \"width\", zoom: \"zoom\" }, outputs: { onClick: \"onClick\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onMarkerAdded: \"onMarkerAdded\", onMarkerRemoved: \"onMarkerRemoved\", onOptionChanged: \"onOptionChanged\", onReady: \"onReady\", onRouteAdded: \"onRouteAdded\", onRouteRemoved: \"onRouteRemoved\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", apiKeyChange: \"apiKeyChange\", autoAdjustChange: \"autoAdjustChange\", centerChange: \"centerChange\", controlsChange: \"controlsChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", markerIconSrcChange: \"markerIconSrcChange\", markersChange: \"markersChange\", providerChange: \"providerChange\", routesChange: \"routesChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", typeChange: \"typeChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", zoomChange: \"zoomChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxMapComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMapComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-map',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], apiKey: [{\r\n type: Input\r\n }], autoAdjust: [{\r\n type: Input\r\n }], center: [{\r\n type: Input\r\n }], controls: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], markerIconSrc: [{\r\n type: Input\r\n }], markers: [{\r\n type: Input\r\n }], provider: [{\r\n type: Input\r\n }], routes: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], zoom: [{\r\n type: Input\r\n }], onClick: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onMarkerAdded: [{\r\n type: Output\r\n }], onMarkerRemoved: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onReady: [{\r\n type: Output\r\n }], onRouteAdded: [{\r\n type: Output\r\n }], onRouteRemoved: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], apiKeyChange: [{\r\n type: Output\r\n }], autoAdjustChange: [{\r\n type: Output\r\n }], centerChange: [{\r\n type: Output\r\n }], controlsChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], markerIconSrcChange: [{\r\n type: Output\r\n }], markersChange: [{\r\n type: Output\r\n }], providerChange: [{\r\n type: Output\r\n }], routesChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], zoomChange: [{\r\n type: Output\r\n }], centerChildren: [{\r\n type: ContentChildren,\r\n args: [DxiCenterComponent]\r\n }], markersChildren: [{\r\n type: ContentChildren,\r\n args: [DxiMarkerComponent]\r\n }], routesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiRouteComponent]\r\n }] }); })();\r\nclass DxMapModule {\r\n}\r\n/** @nocollapse */ DxMapModule.ɵfac = function DxMapModule_Factory(t) { return new (t || DxMapModule)(); };\r\n/** @nocollapse */ DxMapModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxMapModule });\r\n/** @nocollapse */ DxMapModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMapModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxMapComponent\r\n ],\r\n exports: [\r\n DxMapComponent,\r\n DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxMapModule, { declarations: [DxMapComponent], imports: [DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxMapComponent, DxoApiKeyModule,\r\n DxiCenterModule,\r\n DxiMarkerModule,\r\n DxiLocationModule,\r\n DxoTooltipModule,\r\n DxiRouteModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxMapComponent, DxMapModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxMenu from 'devextreme/ui/menu';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiItemModule, DxoShowFirstSubmenuModeModule, DxoDelayModule, DxoShowSubmenuModeModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxMenu]\r\n\r\n */\r\nclass DxMenuComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'submenuHidden', emit: 'onSubmenuHidden' },\r\n { subscribe: 'submenuHiding', emit: 'onSubmenuHiding' },\r\n { subscribe: 'submenuShowing', emit: 'onSubmenuShowing' },\r\n { subscribe: 'submenuShown', emit: 'onSubmenuShown' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'adaptivityEnabledChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'cssClassChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disabledExprChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideSubmenuOnMouseLeaveChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemsExprChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'orientationChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectByClickChange' },\r\n { emit: 'selectedExprChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'showFirstSubmenuModeChange' },\r\n { emit: 'showSubmenuModeChange' },\r\n { emit: 'submenuDirectionChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.adaptivityEnabled]\r\n \r\n */\r\n get adaptivityEnabled() {\r\n return this._getOption('adaptivityEnabled');\r\n }\r\n set adaptivityEnabled(value) {\r\n this._setOption('adaptivityEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.cssClass]\r\n \r\n */\r\n get cssClass() {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value) {\r\n this._setOption('cssClass', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.disabledExpr]\r\n \r\n */\r\n get disabledExpr() {\r\n return this._getOption('disabledExpr');\r\n }\r\n set disabledExpr(value) {\r\n this._setOption('disabledExpr', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.hideSubmenuOnMouseLeave]\r\n \r\n */\r\n get hideSubmenuOnMouseLeave() {\r\n return this._getOption('hideSubmenuOnMouseLeave');\r\n }\r\n set hideSubmenuOnMouseLeave(value) {\r\n this._setOption('hideSubmenuOnMouseLeave', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.itemsExpr]\r\n \r\n */\r\n get itemsExpr() {\r\n return this._getOption('itemsExpr');\r\n }\r\n set itemsExpr(value) {\r\n this._setOption('itemsExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.orientation]\r\n \r\n */\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.selectByClick]\r\n \r\n */\r\n get selectByClick() {\r\n return this._getOption('selectByClick');\r\n }\r\n set selectByClick(value) {\r\n this._setOption('selectByClick', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.selectedExpr]\r\n \r\n */\r\n get selectedExpr() {\r\n return this._getOption('selectedExpr');\r\n }\r\n set selectedExpr(value) {\r\n this._setOption('selectedExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.showFirstSubmenuMode]\r\n \r\n */\r\n get showFirstSubmenuMode() {\r\n return this._getOption('showFirstSubmenuMode');\r\n }\r\n set showFirstSubmenuMode(value) {\r\n this._setOption('showFirstSubmenuMode', value);\r\n }\r\n /**\r\n * [descr:dxMenuBaseOptions.showSubmenuMode]\r\n \r\n */\r\n get showSubmenuMode() {\r\n return this._getOption('showSubmenuMode');\r\n }\r\n set showSubmenuMode(value) {\r\n this._setOption('showSubmenuMode', value);\r\n }\r\n /**\r\n * [descr:dxMenuOptions.submenuDirection]\r\n \r\n */\r\n get submenuDirection() {\r\n return this._getOption('submenuDirection');\r\n }\r\n set submenuDirection(value) {\r\n this._setOption('submenuDirection', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxMenu(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxMenuComponent.ɵfac = function DxMenuComponent_Factory(t) { return new (t || DxMenuComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxMenuComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxMenuComponent, selectors: [[\"dx-menu\"]], contentQueries: function DxMenuComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", adaptivityEnabled: \"adaptivityEnabled\", animation: \"animation\", cssClass: \"cssClass\", dataSource: \"dataSource\", disabled: \"disabled\", disabledExpr: \"disabledExpr\", displayExpr: \"displayExpr\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hideSubmenuOnMouseLeave: \"hideSubmenuOnMouseLeave\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", items: \"items\", itemsExpr: \"itemsExpr\", itemTemplate: \"itemTemplate\", orientation: \"orientation\", rtlEnabled: \"rtlEnabled\", selectByClick: \"selectByClick\", selectedExpr: \"selectedExpr\", selectedItem: \"selectedItem\", selectionMode: \"selectionMode\", showFirstSubmenuMode: \"showFirstSubmenuMode\", showSubmenuMode: \"showSubmenuMode\", submenuDirection: \"submenuDirection\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", onSubmenuHidden: \"onSubmenuHidden\", onSubmenuHiding: \"onSubmenuHiding\", onSubmenuShowing: \"onSubmenuShowing\", onSubmenuShown: \"onSubmenuShown\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", adaptivityEnabledChange: \"adaptivityEnabledChange\", animationChange: \"animationChange\", cssClassChange: \"cssClassChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", disabledExprChange: \"disabledExprChange\", displayExprChange: \"displayExprChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hideSubmenuOnMouseLeaveChange: \"hideSubmenuOnMouseLeaveChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemsChange: \"itemsChange\", itemsExprChange: \"itemsExprChange\", itemTemplateChange: \"itemTemplateChange\", orientationChange: \"orientationChange\", rtlEnabledChange: \"rtlEnabledChange\", selectByClickChange: \"selectByClickChange\", selectedExprChange: \"selectedExprChange\", selectedItemChange: \"selectedItemChange\", selectionModeChange: \"selectionModeChange\", showFirstSubmenuModeChange: \"showFirstSubmenuModeChange\", showSubmenuModeChange: \"showSubmenuModeChange\", submenuDirectionChange: \"submenuDirectionChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxMenuComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMenuComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-menu',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], adaptivityEnabled: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], cssClass: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disabledExpr: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideSubmenuOnMouseLeave: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemsExpr: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectByClick: [{\r\n type: Input\r\n }], selectedExpr: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], showFirstSubmenuMode: [{\r\n type: Input\r\n }], showSubmenuMode: [{\r\n type: Input\r\n }], submenuDirection: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onSubmenuHidden: [{\r\n type: Output\r\n }], onSubmenuHiding: [{\r\n type: Output\r\n }], onSubmenuShowing: [{\r\n type: Output\r\n }], onSubmenuShown: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], adaptivityEnabledChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], cssClassChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disabledExprChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideSubmenuOnMouseLeaveChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemsExprChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], orientationChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectByClickChange: [{\r\n type: Output\r\n }], selectedExprChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], showFirstSubmenuModeChange: [{\r\n type: Output\r\n }], showSubmenuModeChange: [{\r\n type: Output\r\n }], submenuDirectionChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxMenuModule {\r\n}\r\n/** @nocollapse */ DxMenuModule.ɵfac = function DxMenuModule_Factory(t) { return new (t || DxMenuModule)(); };\r\n/** @nocollapse */ DxMenuModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxMenuModule });\r\n/** @nocollapse */ DxMenuModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMenuModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxMenuComponent\r\n ],\r\n exports: [\r\n DxMenuComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxMenuModule, { declarations: [DxMenuComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxMenuComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiItemModule,\r\n DxoShowFirstSubmenuModeModule,\r\n DxoDelayModule,\r\n DxoShowSubmenuModeModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxMenuComponent, DxMenuModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxMultiView from 'devextreme/ui/multi_view';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxMultiView]\r\n\r\n */\r\nclass DxMultiViewComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationEnabledChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'loopChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'swipeEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.animationEnabled]\r\n \r\n */\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.loop]\r\n \r\n */\r\n get loop() {\r\n return this._getOption('loop');\r\n }\r\n set loop(value) {\r\n this._setOption('loop', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.selectedIndex]\r\n \r\n */\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.swipeEnabled]\r\n \r\n */\r\n get swipeEnabled() {\r\n return this._getOption('swipeEnabled');\r\n }\r\n set swipeEnabled(value) {\r\n this._setOption('swipeEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxMultiView(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxMultiViewComponent.ɵfac = function DxMultiViewComponent_Factory(t) { return new (t || DxMultiViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxMultiViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxMultiViewComponent, selectors: [[\"dx-multi-view\"]], contentQueries: function DxMultiViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animationEnabled: \"animationEnabled\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", loop: \"loop\", noDataText: \"noDataText\", rtlEnabled: \"rtlEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", swipeEnabled: \"swipeEnabled\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationEnabledChange: \"animationEnabledChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", loopChange: \"loopChange\", noDataTextChange: \"noDataTextChange\", rtlEnabledChange: \"rtlEnabledChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\", swipeEnabledChange: \"swipeEnabledChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxMultiViewComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMultiViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-multi-view',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], loop: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectedIndex: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], swipeEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationEnabledChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], loopChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], swipeEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxMultiViewModule {\r\n}\r\n/** @nocollapse */ DxMultiViewModule.ɵfac = function DxMultiViewModule_Factory(t) { return new (t || DxMultiViewModule)(); };\r\n/** @nocollapse */ DxMultiViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxMultiViewModule });\r\n/** @nocollapse */ DxMultiViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxMultiViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxMultiViewComponent\r\n ],\r\n exports: [\r\n DxMultiViewComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxMultiViewModule, { declarations: [DxMultiViewComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxMultiViewComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxMultiViewComponent, DxMultiViewModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxNumberBox from 'devextreme/ui/number_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiButtonModule, DxoOptionsModule, DxoFormatModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxNumberBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxNumberBox]\r\n\r\n */\r\nclass DxNumberBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'formatChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'invalidValueMessageChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'minChange' },\r\n { emit: 'modeChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showSpinButtonsChange' },\r\n { emit: 'stepChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useLargeSpinButtonsChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.format]\r\n \r\n */\r\n get format() {\r\n return this._getOption('format');\r\n }\r\n set format(value) {\r\n this._setOption('format', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.invalidValueMessage]\r\n \r\n */\r\n get invalidValueMessage() {\r\n return this._getOption('invalidValueMessage');\r\n }\r\n set invalidValueMessage(value) {\r\n this._setOption('invalidValueMessage', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.mode]\r\n \r\n */\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.showSpinButtons]\r\n \r\n */\r\n get showSpinButtons() {\r\n return this._getOption('showSpinButtons');\r\n }\r\n set showSpinButtons(value) {\r\n this._setOption('showSpinButtons', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.step]\r\n \r\n */\r\n get step() {\r\n return this._getOption('step');\r\n }\r\n set step(value) {\r\n this._setOption('step', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.useLargeSpinButtons]\r\n \r\n */\r\n get useLargeSpinButtons() {\r\n return this._getOption('useLargeSpinButtons');\r\n }\r\n set useLargeSpinButtons(value) {\r\n this._setOption('useLargeSpinButtons', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxNumberBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxNumberBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxNumberBoxComponent.ɵfac = function DxNumberBoxComponent_Factory(t) { return new (t || DxNumberBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxNumberBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxNumberBoxComponent, selectors: [[\"dx-number-box\"]], contentQueries: function DxNumberBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, hostBindings: function DxNumberBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxNumberBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxNumberBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", format: \"format\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", invalidValueMessage: \"invalidValueMessage\", isDirty: \"isDirty\", isValid: \"isValid\", label: \"label\", labelMode: \"labelMode\", max: \"max\", min: \"min\", mode: \"mode\", name: \"name\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showSpinButtons: \"showSpinButtons\", step: \"step\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useLargeSpinButtons: \"useLargeSpinButtons\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonsChange: \"buttonsChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", formatChange: \"formatChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", invalidValueMessageChange: \"invalidValueMessageChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxChange: \"maxChange\", minChange: \"minChange\", modeChange: \"modeChange\", nameChange: \"nameChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showClearButtonChange: \"showClearButtonChange\", showSpinButtonsChange: \"showSpinButtonsChange\", stepChange: \"stepChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", useLargeSpinButtonsChange: \"useLargeSpinButtonsChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxNumberBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxNumberBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-number-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], format: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], invalidValueMessage: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showSpinButtons: [{\r\n type: Input\r\n }], step: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useLargeSpinButtons: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], formatChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], invalidValueMessageChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], modeChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showSpinButtonsChange: [{\r\n type: Output\r\n }], stepChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useLargeSpinButtonsChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }] }); })();\r\nclass DxNumberBoxModule {\r\n}\r\n/** @nocollapse */ DxNumberBoxModule.ɵfac = function DxNumberBoxModule_Factory(t) { return new (t || DxNumberBoxModule)(); };\r\n/** @nocollapse */ DxNumberBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxNumberBoxModule });\r\n/** @nocollapse */ DxNumberBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxNumberBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxNumberBoxComponent\r\n ],\r\n exports: [\r\n DxNumberBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxNumberBoxModule, { declarations: [DxNumberBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxNumberBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoFormatModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxNumberBoxComponent, DxNumberBoxModule };\n","/**\r\n * DevExtreme (esm/__internal/viz/m_pie_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport consts from \"../../viz/components/consts\";\r\nimport {\r\n plugins as annotationsPlugins\r\n} from \"../../viz/core/annotations\";\r\nimport {\r\n plugins as centerTemplatePlugins\r\n} from \"../../viz/core/center_template\";\r\nimport {\r\n getVerticallyShiftedAngularCoords as _getVerticallyShiftedAngularCoords,\r\n normalizeAngle\r\n} from \"../../viz/core/utils\";\r\nimport {\r\n Range\r\n} from \"../../viz/translators/range\";\r\nimport {\r\n Translator1D\r\n} from \"../../viz/translators/translator1d\";\r\nimport {\r\n BaseChart,\r\n overlapping\r\n} from \"./chart_components/m_base_chart\";\r\nvar {\r\n states: states\r\n} = consts;\r\nvar seriesSpacing = consts.pieSeriesSpacing;\r\nvar OPTIONS_FOR_REFRESH_SERIES = [\"startAngle\", \"innerRadius\", \"segmentsDirection\", \"type\"];\r\nvar NORMAL_STATE = states.normalMark;\r\nvar HOVER_STATE = states.hoverMark;\r\nvar SELECTED_STATE = states.selectedMark;\r\nvar MAX_RESOLVE_ITERATION_COUNT = 5;\r\nvar LEGEND_ACTIONS = [states.resetItem, states.applyHover, states.applySelected, states.applySelected];\r\n\r\nfunction shiftInColumnFunction(box, length) {\r\n return {\r\n x: box.x,\r\n y: box.y - length\r\n }\r\n}\r\n\r\nfunction dividePoints(series, points) {\r\n return series.getVisiblePoints().reduce((r, point) => {\r\n var angle = normalizeAngle(point.middleAngle);\r\n (angle <= 90 || angle >= 270 ? r.right : r.left).push(point);\r\n return r\r\n }, points || {\r\n left: [],\r\n right: []\r\n })\r\n}\r\n\r\nfunction resolveOverlappedLabels(points, shiftCallback, inverseDirection, canvas) {\r\n var overlapped;\r\n if (inverseDirection) {\r\n points.left.reverse();\r\n points.right.reverse()\r\n }\r\n overlapped = overlapping.resolveLabelOverlappingInOneDirection(points.left, canvas, false, false, shiftCallback);\r\n return overlapping.resolveLabelOverlappingInOneDirection(points.right, canvas, false, false, shiftCallback) || overlapped\r\n}\r\n\r\nfunction getLegendItemAction(points) {\r\n var state = NORMAL_STATE;\r\n points.forEach(point => {\r\n var _a;\r\n var seriesOptions = null === (_a = point.series) || void 0 === _a ? void 0 : _a.getOptions();\r\n var pointState = point.fullState;\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.hoverMode)) {\r\n pointState &= ~HOVER_STATE\r\n }\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.selectionMode)) {\r\n pointState &= ~SELECTED_STATE\r\n }\r\n state |= pointState\r\n });\r\n return LEGEND_ACTIONS[state]\r\n}\r\n\r\nfunction correctPercentValue(value) {\r\n if (isNumeric(value)) {\r\n if (value > 1) {\r\n value = 1\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n } else {\r\n value = void 0\r\n }\r\n return value\r\n}\r\nvar pieSizeEqualizer = function() {\r\n function removeFromList(list, item) {\r\n return list.filter(li => li !== item)\r\n }\r\n var pies = [];\r\n var timers = {};\r\n return {\r\n queue(pie) {\r\n var group = pie.getSizeGroup();\r\n pies = (list = pies, item = pie, removeFromList(list, item).concat(item));\r\n var list, item;\r\n clearTimeout(timers[group]);\r\n timers[group] = setTimeout(() => {\r\n ! function(group, allPies) {\r\n var pies = allPies.filter(p => p._isVisible() && p.getSizeGroup() === group);\r\n var minRadius = Math.min.apply(null, pies.map(p => p.getSizeGroupLayout().radius));\r\n var minPie = pies.filter(p => p.getSizeGroupLayout().radius === minRadius);\r\n pies.forEach(p => p.render({\r\n force: true,\r\n sizeGroupLayout: minPie.length ? minPie[0].getSizeGroupLayout() : {}\r\n }))\r\n }(group, pies)\r\n })\r\n },\r\n remove(pie) {\r\n pies = removeFromList(pies, pie);\r\n if (!pies.length) {\r\n timers = {}\r\n }\r\n }\r\n }\r\n}();\r\nvar dxPieChart = BaseChart.inherit({\r\n _themeSection: \"pie\",\r\n _layoutManagerOptions() {\r\n return _extend(true, {}, this.callBase(), {\r\n piePercentage: correctPercentValue(this._themeManager.getOptions(\"diameter\")),\r\n minPiePercentage: correctPercentValue(this._themeManager.getOptions(\"minDiameter\"))\r\n })\r\n },\r\n _optionChangesMap: {\r\n diameter: \"REINIT\",\r\n minDiameter: \"REINIT\",\r\n sizeGroup: \"REINIT\"\r\n },\r\n _disposeCore() {\r\n pieSizeEqualizer.remove(this);\r\n this.callBase()\r\n },\r\n _groupSeries() {\r\n var _a;\r\n var {\r\n series: series\r\n } = this;\r\n this._groupsData = {\r\n groups: [{\r\n series: series,\r\n valueOptions: {\r\n valueType: \"numeric\"\r\n }\r\n }],\r\n argumentOptions: null === (_a = series[0]) || void 0 === _a ? void 0 : _a.getOptions()\r\n }\r\n },\r\n getArgumentAxis: () => null,\r\n _getValueAxis() {\r\n var translator = (new Translator1D).setCodomain(360, 0);\r\n return {\r\n getTranslator: () => translator,\r\n setBusinessRange(range) {\r\n translator.setDomain(range.min, range.max)\r\n }\r\n }\r\n },\r\n _populateBusinessRange() {\r\n this.series.map(series => {\r\n var range = new Range;\r\n range.addRange(series.getRangeData().val);\r\n series.getValueAxis().setBusinessRange(range);\r\n return range\r\n })\r\n },\r\n _specialProcessSeries() {\r\n _each(this.series, (_, singleSeries) => {\r\n singleSeries.arrangePoints()\r\n })\r\n },\r\n _checkPaneName: () => true,\r\n _processSingleSeries(singleSeries) {\r\n this.callBase(singleSeries);\r\n singleSeries.arrangePoints()\r\n },\r\n _handleSeriesDataUpdated() {\r\n var maxPointCount = 0;\r\n this.series.forEach(s => {\r\n maxPointCount = Math.max(s.getPointsCount(), maxPointCount)\r\n });\r\n this.series.forEach(s => {\r\n s.setMaxPointsCount(maxPointCount)\r\n });\r\n this.callBase()\r\n },\r\n _getLegendOptions(item) {\r\n var legendItem = this.callBase(item);\r\n var {\r\n legendData: legendData\r\n } = legendItem;\r\n legendData.argument = item.argument;\r\n legendData.argumentIndex = item.argumentIndex;\r\n legendData.points = [item];\r\n return legendItem\r\n },\r\n _getLegendTargets() {\r\n var itemsByArgument = {};\r\n (this.series || []).forEach(series => {\r\n series.getPoints().forEach(point => {\r\n var argument = point.argument.valueOf();\r\n var index = series.getPointsByArg(argument).indexOf(point);\r\n var key = argument.valueOf().toString() + index;\r\n itemsByArgument[key] = itemsByArgument[key] || [];\r\n var argumentCount = itemsByArgument[key].push(point);\r\n point.index = itemsByArgument[key][argumentCount - 2] ? itemsByArgument[key][argumentCount - 2].index : Object.keys(itemsByArgument).length - 1;\r\n point.argumentIndex = index\r\n })\r\n });\r\n var items = [];\r\n _each(itemsByArgument, (_, points) => {\r\n points.forEach((point, index) => {\r\n if (0 === index) {\r\n items.push(this._getLegendOptions(point));\r\n return\r\n }\r\n var item = items[items.length - 1];\r\n item.legendData.points.push(point);\r\n if (!item.visible) {\r\n item.visible = point.isVisible()\r\n }\r\n })\r\n });\r\n return items\r\n },\r\n _getLayoutTargets() {\r\n return [{\r\n canvas: this._canvas\r\n }]\r\n },\r\n _getLayoutSeries(series, drawOptions) {\r\n var layout;\r\n var canvas = this._canvas;\r\n var drawnLabels = false;\r\n layout = this.layoutManager.applyPieChartSeriesLayout(canvas, series, true);\r\n series.forEach(singleSeries => {\r\n singleSeries.correctPosition(layout, canvas);\r\n drawnLabels = singleSeries.drawLabelsWOPoints() || drawnLabels\r\n });\r\n if (drawnLabels) {\r\n layout = this.layoutManager.applyPieChartSeriesLayout(canvas, series, drawOptions.hideLayoutLabels)\r\n }\r\n series.forEach(singleSeries => {\r\n singleSeries.hideLabels()\r\n });\r\n this._sizeGroupLayout = {\r\n x: layout.centerX,\r\n y: layout.centerY,\r\n radius: layout.radiusOuter,\r\n drawOptions: drawOptions\r\n };\r\n return layout\r\n },\r\n _getLayoutSeriesForEqualPies(series, sizeGroupLayout) {\r\n var canvas = this._canvas;\r\n var layout = this.layoutManager.applyEqualPieChartLayout(series, sizeGroupLayout);\r\n series.forEach(s => {\r\n s.correctPosition(layout, canvas);\r\n s.drawLabelsWOPoints()\r\n });\r\n this.layoutManager.correctPieLabelRadius(series, layout, canvas);\r\n return layout\r\n },\r\n _updateSeriesDimensions(drawOptions) {\r\n var visibleSeries = this._getVisibleSeries();\r\n var lengthVisibleSeries = visibleSeries.length;\r\n var innerRad;\r\n var delta;\r\n var layout;\r\n var {\r\n sizeGroupLayout: sizeGroupLayout\r\n } = drawOptions;\r\n if (lengthVisibleSeries) {\r\n layout = sizeGroupLayout ? this._getLayoutSeriesForEqualPies(visibleSeries, sizeGroupLayout) : this._getLayoutSeries(visibleSeries, drawOptions);\r\n delta = (layout.radiusOuter - layout.radiusInner - seriesSpacing * (lengthVisibleSeries - 1)) / lengthVisibleSeries;\r\n innerRad = layout.radiusInner;\r\n this._setGeometry(layout);\r\n visibleSeries.forEach(singleSeries => {\r\n singleSeries.correctRadius({\r\n radiusInner: innerRad,\r\n radiusOuter: innerRad + delta\r\n });\r\n innerRad += delta + seriesSpacing\r\n })\r\n }\r\n },\r\n _renderSeries(drawOptions, isRotated, isLegendInside) {\r\n this._calculateSeriesLayout(drawOptions, isRotated);\r\n if (!drawOptions.sizeGroupLayout && this.getSizeGroup()) {\r\n pieSizeEqualizer.queue(this);\r\n this._clearCanvas();\r\n return\r\n }\r\n this._renderSeriesElements(drawOptions, isLegendInside)\r\n },\r\n _getCenter() {\r\n return this._center\r\n },\r\n getInnerRadius() {\r\n return this._innerRadius\r\n },\r\n _getLegendCallBack() {\r\n var legend = this._legend;\r\n var items = this._getLegendTargets().map(i => i.legendData);\r\n return target => {\r\n items.forEach(data => {\r\n var points = [];\r\n var callback = legend.getActionCallback({\r\n index: data.id\r\n });\r\n this.series.forEach(series => {\r\n var seriesPoints = series.getPointsByKeys(data.argument, data.argumentIndex);\r\n points.push.apply(points, seriesPoints)\r\n });\r\n if (target && target.argument === data.argument && target.argumentIndex === data.argumentIndex) {\r\n points.push(target)\r\n }\r\n callback(getLegendItemAction(points))\r\n })\r\n }\r\n },\r\n _locateLabels(resolveLabelOverlapping) {\r\n var iterationCount = 0;\r\n var labelsWereOverlapped;\r\n var wordWrapApplied;\r\n do {\r\n wordWrapApplied = this._adjustSeriesLabels(\"shift\" === resolveLabelOverlapping);\r\n labelsWereOverlapped = this._resolveLabelOverlapping(resolveLabelOverlapping)\r\n } while ((labelsWereOverlapped || wordWrapApplied) && ++iterationCount < MAX_RESOLVE_ITERATION_COUNT)\r\n },\r\n _adjustSeriesLabels(moveLabelsFromCenter) {\r\n return this.series.reduce((r, s) => s.adjustLabels(moveLabelsFromCenter) || r, false)\r\n },\r\n _applyExtraSettings: _noop,\r\n _resolveLabelOverlappingShift() {\r\n var inverseDirection = \"anticlockwise\" === this.option(\"segmentsDirection\");\r\n var seriesByPosition = this.series.reduce((r, s) => {\r\n (r[s.getOptions().label.position] || r.outside).push(s);\r\n return r\r\n }, {\r\n inside: [],\r\n columns: [],\r\n outside: []\r\n });\r\n var labelsOverlapped = false;\r\n if (seriesByPosition.inside.length > 0) {\r\n var pointsToResolve = seriesByPosition.inside.reduce((r, singleSeries) => {\r\n var visiblePoints = singleSeries.getVisiblePoints();\r\n return visiblePoints.reduce((r, point) => {\r\n r.left.push(point);\r\n return r\r\n }, r)\r\n }, {\r\n left: [],\r\n right: []\r\n });\r\n labelsOverlapped = resolveOverlappedLabels(pointsToResolve, shiftInColumnFunction, inverseDirection, this._canvas) || labelsOverlapped\r\n }\r\n labelsOverlapped = seriesByPosition.columns.reduce((r, singleSeries) => resolveOverlappedLabels(dividePoints(singleSeries), shiftInColumnFunction, inverseDirection, this._canvas) || r, labelsOverlapped);\r\n if (seriesByPosition.outside.length > 0) {\r\n labelsOverlapped = resolveOverlappedLabels(seriesByPosition.outside.reduce((r, singleSeries) => dividePoints(singleSeries, r), null), (box, length) => _getVerticallyShiftedAngularCoords(box, -length, this._center), inverseDirection, this._canvas) || labelsOverlapped\r\n }\r\n return labelsOverlapped\r\n },\r\n _setGeometry(_ref) {\r\n var {\r\n centerX: x,\r\n centerY: y,\r\n radiusInner: radiusInner\r\n } = _ref;\r\n this._center = {\r\n x: x,\r\n y: y\r\n };\r\n this._innerRadius = radiusInner\r\n },\r\n _disposeSeries() {\r\n this.callBase.apply(this, arguments);\r\n this._abstractSeries = null\r\n },\r\n _legendDataField: \"point\",\r\n _legendItemTextField: \"argument\",\r\n _applyPointMarkersAutoHiding: _noop,\r\n _renderTrackers: _noop,\r\n _trackerType: \"PieTracker\",\r\n _createScrollBar: _noop,\r\n _updateAxesLayout: _noop,\r\n _applyClipRects: _noop,\r\n _appendAdditionalSeriesGroups: _noop,\r\n _prepareToRender: _noop,\r\n _isLegendInside: _noop,\r\n _renderAxes: _noop,\r\n _shrinkAxes: _noop,\r\n _isRotated: _noop,\r\n _seriesPopulatedHandlerCore: _noop,\r\n _reinitAxes: _noop,\r\n _correctAxes: _noop,\r\n _getExtraOptions() {\r\n return {\r\n startAngle: this.option(\"startAngle\"),\r\n innerRadius: this.option(\"innerRadius\"),\r\n segmentsDirection: this.option(\"segmentsDirection\"),\r\n type: this.option(\"type\")\r\n }\r\n },\r\n getSizeGroup() {\r\n return this._themeManager.getOptions(\"sizeGroup\")\r\n },\r\n getSizeGroupLayout() {\r\n return this._sizeGroupLayout || {}\r\n }\r\n});\r\n_each(OPTIONS_FOR_REFRESH_SERIES, (_, name) => {\r\n dxPieChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_DATA_INIT\"\r\n});\r\ndxPieChart.addPlugin(centerTemplatePlugins.pieChart);\r\ndxPieChart.addPlugin(annotationsPlugins.core);\r\ndxPieChart.addPlugin(annotationsPlugins.pieChart);\r\nregisterComponent(\"dxPieChart\", dxPieChart);\r\nexport default dxPieChart;\r\n","/**\r\n * DevExtreme (esm/viz/pie_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport PieChart from \"../__internal/viz/m_pie_chart\";\r\nexport default PieChart;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxPieChart from 'devextreme/viz/pie_chart';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiAnnotationComponent, DxiSeriesComponent, DxoAdaptiveLayoutModule, DxoAnimationModule, DxiAnnotationModule, DxoBorderModule, DxoFontModule, DxoImageModule, DxoShadowModule, DxoCommonAnnotationSettingsModule, DxoCommonSeriesSettingsModule, DxoColorModule, DxoHoverStyleModule, DxoHatchingModule, DxoLabelModule, DxoArgumentFormatModule, DxoConnectorModule, DxoFormatModule, DxoSelectionStyleModule, DxoSmallValuesGroupingModule, DxoExportModule, DxoLegendModule, DxoMarginModule, DxoTitleModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxiSeriesModule, DxoSeriesTemplateModule, DxoSizeModule, DxoTooltipModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxPieChart]\r\n\r\n */\r\nclass DxPieChartComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'done', emit: 'onDone' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'legendClick', emit: 'onLegendClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pointClick', emit: 'onPointClick' },\r\n { subscribe: 'pointHoverChanged', emit: 'onPointHoverChanged' },\r\n { subscribe: 'pointSelectionChanged', emit: 'onPointSelectionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'adaptiveLayoutChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'annotationsChange' },\r\n { emit: 'centerTemplateChange' },\r\n { emit: 'commonAnnotationSettingsChange' },\r\n { emit: 'commonSeriesSettingsChange' },\r\n { emit: 'customizeAnnotationChange' },\r\n { emit: 'customizeLabelChange' },\r\n { emit: 'customizePointChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'diameterChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'innerRadiusChange' },\r\n { emit: 'legendChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'minDiameterChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'pointSelectionModeChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'resolveLabelOverlappingChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'segmentsDirectionChange' },\r\n { emit: 'seriesChange' },\r\n { emit: 'seriesTemplateChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'sizeGroupChange' },\r\n { emit: 'startAngleChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'typeChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.adaptiveLayout]\r\n \r\n */\r\n get adaptiveLayout() {\r\n return this._getOption('adaptiveLayout');\r\n }\r\n set adaptiveLayout(value) {\r\n this._setOption('adaptiveLayout', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.annotations]\r\n \r\n */\r\n get annotations() {\r\n return this._getOption('annotations');\r\n }\r\n set annotations(value) {\r\n this._setOption('annotations', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.centerTemplate]\r\n \r\n */\r\n get centerTemplate() {\r\n return this._getOption('centerTemplate');\r\n }\r\n set centerTemplate(value) {\r\n this._setOption('centerTemplate', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.commonAnnotationSettings]\r\n \r\n */\r\n get commonAnnotationSettings() {\r\n return this._getOption('commonAnnotationSettings');\r\n }\r\n set commonAnnotationSettings(value) {\r\n this._setOption('commonAnnotationSettings', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.commonSeriesSettings]\r\n \r\n */\r\n get commonSeriesSettings() {\r\n return this._getOption('commonSeriesSettings');\r\n }\r\n set commonSeriesSettings(value) {\r\n this._setOption('commonSeriesSettings', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.customizeAnnotation]\r\n \r\n */\r\n get customizeAnnotation() {\r\n return this._getOption('customizeAnnotation');\r\n }\r\n set customizeAnnotation(value) {\r\n this._setOption('customizeAnnotation', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizeLabel]\r\n \r\n */\r\n get customizeLabel() {\r\n return this._getOption('customizeLabel');\r\n }\r\n set customizeLabel(value) {\r\n this._setOption('customizeLabel', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizePoint]\r\n \r\n */\r\n get customizePoint() {\r\n return this._getOption('customizePoint');\r\n }\r\n set customizePoint(value) {\r\n this._setOption('customizePoint', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.diameter]\r\n \r\n */\r\n get diameter() {\r\n return this._getOption('diameter');\r\n }\r\n set diameter(value) {\r\n this._setOption('diameter', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.innerRadius]\r\n \r\n */\r\n get innerRadius() {\r\n return this._getOption('innerRadius');\r\n }\r\n set innerRadius(value) {\r\n this._setOption('innerRadius', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.legend]\r\n \r\n */\r\n get legend() {\r\n return this._getOption('legend');\r\n }\r\n set legend(value) {\r\n this._setOption('legend', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.minDiameter]\r\n \r\n */\r\n get minDiameter() {\r\n return this._getOption('minDiameter');\r\n }\r\n set minDiameter(value) {\r\n this._setOption('minDiameter', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.pointSelectionMode]\r\n \r\n */\r\n get pointSelectionMode() {\r\n return this._getOption('pointSelectionMode');\r\n }\r\n set pointSelectionMode(value) {\r\n this._setOption('pointSelectionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.resolveLabelOverlapping]\r\n \r\n */\r\n get resolveLabelOverlapping() {\r\n return this._getOption('resolveLabelOverlapping');\r\n }\r\n set resolveLabelOverlapping(value) {\r\n this._setOption('resolveLabelOverlapping', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.segmentsDirection]\r\n \r\n */\r\n get segmentsDirection() {\r\n return this._getOption('segmentsDirection');\r\n }\r\n set segmentsDirection(value) {\r\n this._setOption('segmentsDirection', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.series]\r\n \r\n */\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.seriesTemplate]\r\n \r\n */\r\n get seriesTemplate() {\r\n return this._getOption('seriesTemplate');\r\n }\r\n set seriesTemplate(value) {\r\n this._setOption('seriesTemplate', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.sizeGroup]\r\n \r\n */\r\n get sizeGroup() {\r\n return this._getOption('sizeGroup');\r\n }\r\n set sizeGroup(value) {\r\n this._setOption('sizeGroup', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.startAngle]\r\n \r\n */\r\n get startAngle() {\r\n return this._getOption('startAngle');\r\n }\r\n set startAngle(value) {\r\n this._setOption('startAngle', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxPieChartOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n get annotationsChildren() {\r\n return this._getOption('annotations');\r\n }\r\n set annotationsChildren(value) {\r\n this.setChildren('annotations', value);\r\n }\r\n get seriesChildren() {\r\n return this._getOption('series');\r\n }\r\n set seriesChildren(value) {\r\n this.setChildren('series', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPieChart(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('annotations', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('palette', changes);\r\n this.setupChanges('series', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('annotations');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('palette');\r\n this._idh.doCheck('series');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPieChartComponent.ɵfac = function DxPieChartComponent_Factory(t) { return new (t || DxPieChartComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPieChartComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPieChartComponent, selectors: [[\"dx-pie-chart\"]], contentQueries: function DxPieChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiAnnotationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiSeriesComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.annotationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesChildren = _t);\r\n } }, inputs: { adaptiveLayout: \"adaptiveLayout\", animation: \"animation\", annotations: \"annotations\", centerTemplate: \"centerTemplate\", commonAnnotationSettings: \"commonAnnotationSettings\", commonSeriesSettings: \"commonSeriesSettings\", customizeAnnotation: \"customizeAnnotation\", customizeLabel: \"customizeLabel\", customizePoint: \"customizePoint\", dataSource: \"dataSource\", diameter: \"diameter\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", innerRadius: \"innerRadius\", legend: \"legend\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", minDiameter: \"minDiameter\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", pathModified: \"pathModified\", pointSelectionMode: \"pointSelectionMode\", redrawOnResize: \"redrawOnResize\", resolveLabelOverlapping: \"resolveLabelOverlapping\", rtlEnabled: \"rtlEnabled\", segmentsDirection: \"segmentsDirection\", series: \"series\", seriesTemplate: \"seriesTemplate\", size: \"size\", sizeGroup: \"sizeGroup\", startAngle: \"startAngle\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", type: \"type\" }, outputs: { onDisposing: \"onDisposing\", onDone: \"onDone\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onLegendClick: \"onLegendClick\", onOptionChanged: \"onOptionChanged\", onPointClick: \"onPointClick\", onPointHoverChanged: \"onPointHoverChanged\", onPointSelectionChanged: \"onPointSelectionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", adaptiveLayoutChange: \"adaptiveLayoutChange\", animationChange: \"animationChange\", annotationsChange: \"annotationsChange\", centerTemplateChange: \"centerTemplateChange\", commonAnnotationSettingsChange: \"commonAnnotationSettingsChange\", commonSeriesSettingsChange: \"commonSeriesSettingsChange\", customizeAnnotationChange: \"customizeAnnotationChange\", customizeLabelChange: \"customizeLabelChange\", customizePointChange: \"customizePointChange\", dataSourceChange: \"dataSourceChange\", diameterChange: \"diameterChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", innerRadiusChange: \"innerRadiusChange\", legendChange: \"legendChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", minDiameterChange: \"minDiameterChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", pathModifiedChange: \"pathModifiedChange\", pointSelectionModeChange: \"pointSelectionModeChange\", redrawOnResizeChange: \"redrawOnResizeChange\", resolveLabelOverlappingChange: \"resolveLabelOverlappingChange\", rtlEnabledChange: \"rtlEnabledChange\", segmentsDirectionChange: \"segmentsDirectionChange\", seriesChange: \"seriesChange\", seriesTemplateChange: \"seriesTemplateChange\", sizeChange: \"sizeChange\", sizeGroupChange: \"sizeGroupChange\", startAngleChange: \"startAngleChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", typeChange: \"typeChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxPieChartComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPieChartComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-pie-chart',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adaptiveLayout: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], annotations: [{\r\n type: Input\r\n }], centerTemplate: [{\r\n type: Input\r\n }], commonAnnotationSettings: [{\r\n type: Input\r\n }], commonSeriesSettings: [{\r\n type: Input\r\n }], customizeAnnotation: [{\r\n type: Input\r\n }], customizeLabel: [{\r\n type: Input\r\n }], customizePoint: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], diameter: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], innerRadius: [{\r\n type: Input\r\n }], legend: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], minDiameter: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], pointSelectionMode: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], resolveLabelOverlapping: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], segmentsDirection: [{\r\n type: Input\r\n }], series: [{\r\n type: Input\r\n }], seriesTemplate: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], sizeGroup: [{\r\n type: Input\r\n }], startAngle: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDone: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onLegendClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPointClick: [{\r\n type: Output\r\n }], onPointHoverChanged: [{\r\n type: Output\r\n }], onPointSelectionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], adaptiveLayoutChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], annotationsChange: [{\r\n type: Output\r\n }], centerTemplateChange: [{\r\n type: Output\r\n }], commonAnnotationSettingsChange: [{\r\n type: Output\r\n }], commonSeriesSettingsChange: [{\r\n type: Output\r\n }], customizeAnnotationChange: [{\r\n type: Output\r\n }], customizeLabelChange: [{\r\n type: Output\r\n }], customizePointChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], diameterChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], innerRadiusChange: [{\r\n type: Output\r\n }], legendChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], minDiameterChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], pointSelectionModeChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], resolveLabelOverlappingChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], segmentsDirectionChange: [{\r\n type: Output\r\n }], seriesChange: [{\r\n type: Output\r\n }], seriesTemplateChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], sizeGroupChange: [{\r\n type: Output\r\n }], startAngleChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], annotationsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiAnnotationComponent]\r\n }], seriesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiSeriesComponent]\r\n }] }); })();\r\nclass DxPieChartModule {\r\n}\r\n/** @nocollapse */ DxPieChartModule.ɵfac = function DxPieChartModule_Factory(t) { return new (t || DxPieChartModule)(); };\r\n/** @nocollapse */ DxPieChartModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPieChartModule });\r\n/** @nocollapse */ DxPieChartModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPieChartModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPieChartComponent\r\n ],\r\n exports: [\r\n DxPieChartComponent,\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPieChartModule, { declarations: [DxPieChartComponent], imports: [DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPieChartComponent, DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoColorModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoArgumentFormatModule,\r\n DxoConnectorModule,\r\n DxoFormatModule,\r\n DxoSelectionStyleModule,\r\n DxoSmallValuesGroupingModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPieChartComponent, DxPieChartModule };\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/chart_integration/m_chart_integration.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n createPath,\r\n foreachTree,\r\n formatValue\r\n} from \"../m_widget_utils\";\r\nvar FORMAT_DICTIONARY = {\r\n number: \"numeric\",\r\n date: \"datetime\"\r\n};\r\nvar UNBIND_KEY = \"dxPivotGridUnbinding\";\r\n\r\nfunction getFormattedValue(path, fields) {\r\n var value = [];\r\n var lastFieldIndex = fields.length - 1;\r\n each(path, (i, item) => {\r\n value.push(item.text || formatValue(item.value, fields[lastFieldIndex - i]))\r\n });\r\n return value.reverse()\r\n}\r\n\r\nfunction getExpandedLevel(node) {\r\n var level = 0;\r\n foreachTree(node, members => {\r\n level = Math.max(level, members.length - 1)\r\n });\r\n return level\r\n}\r\n\r\nfunction processDataCell(processCellArgs, processCell) {\r\n var {\r\n chartDataItem: chartDataItem\r\n } = processCellArgs;\r\n var processedCell = processCell && processCell(processCellArgs);\r\n if (processedCell) {\r\n chartDataItem = extend({}, chartDataItem, processedCell.chartDataItem);\r\n processedCell = extend({}, processCellArgs, processedCell, {\r\n chartDataItem: chartDataItem\r\n });\r\n return processedCell\r\n }\r\n return processCellArgs\r\n}\r\n\r\nfunction createChartDataSource(pivotGridDataSource, mapOptions, axisDictionary) {\r\n var data = pivotGridDataSource.getData();\r\n var dataSource = [];\r\n var dataFields = pivotGridDataSource.getAreaFields(\"data\");\r\n var rowFields = pivotGridDataSource.getAreaFields(\"row\");\r\n var columnFields = pivotGridDataSource.getAreaFields(\"column\");\r\n var columnElements = [{\r\n index: data.grandTotalColumnIndex,\r\n children: data.columns\r\n }];\r\n var rowElements = [{\r\n index: data.grandTotalRowIndex,\r\n children: data.rows\r\n }];\r\n var rowLevel = getExpandedLevel(rowElements);\r\n var columnLevel = getExpandedLevel(columnElements);\r\n var measureIndex;\r\n var dataField;\r\n var rowMemberIndex;\r\n var rowVisibility;\r\n var rowPathFormatted;\r\n var rowPath;\r\n var columnMemberIndex;\r\n var columnVisibility;\r\n var columnPath;\r\n var columnPathFormatted;\r\n\r\n function createDataItem() {\r\n var dataCell = (data.values[rowMemberIndex] || [])[columnMemberIndex] || [];\r\n var value = dataCell[measureIndex];\r\n var axis;\r\n var processCellArgs = {\r\n rowPath: rowPath,\r\n maxRowLevel: rowLevel,\r\n rowPathFormatted: rowPathFormatted,\r\n rowFields: rowFields,\r\n columnPathFormatted: columnPathFormatted,\r\n maxColumnLevel: columnLevel,\r\n columnPath: columnPath,\r\n columnFields: columnFields,\r\n dataFields: dataFields,\r\n dataIndex: measureIndex,\r\n dataValues: dataCell,\r\n visible: columnVisibility && rowVisibility\r\n };\r\n var seriesName = (mapOptions.inverted ? columnPathFormatted : rowPathFormatted).join(\" - \");\r\n var argument = (mapOptions.inverted ? rowPathFormatted : columnPathFormatted).join(\"/\");\r\n if (dataFields.length > 1) {\r\n if (\"args\" === mapOptions.putDataFieldsInto || \"both\" === mapOptions.putDataFieldsInto) {\r\n argument += \" | \".concat(dataField.caption)\r\n }\r\n if (\"args\" !== mapOptions.putDataFieldsInto) {\r\n seriesName += \" | \".concat(dataField.caption);\r\n if (\"singleAxis\" !== mapOptions.dataFieldsDisplayMode) {\r\n axis = dataField.caption\r\n }\r\n }\r\n }\r\n processCellArgs.chartDataItem = {\r\n val: void 0 === value ? null : value,\r\n series: seriesName,\r\n arg: argument\r\n };\r\n processCellArgs = processDataCell(processCellArgs, mapOptions.processCell);\r\n if (processCellArgs.visible) {\r\n axisDictionary[processCellArgs.chartDataItem.series] = axisDictionary[processCellArgs.chartDataItem.series] || axis;\r\n dataSource.push(processCellArgs.chartDataItem)\r\n }\r\n }\r\n\r\n function foreachRowColumn(callBack) {\r\n foreachTree(rowElements, rowMembers => {\r\n rowMemberIndex = rowMembers[0].index;\r\n rowMembers = rowMembers.slice(0, rowMembers.length - 1);\r\n rowVisibility = rowLevel === rowMembers.length;\r\n rowPath = createPath(rowMembers);\r\n rowPathFormatted = getFormattedValue(rowMembers, rowFields);\r\n if (0 === rowPath.length) {\r\n rowPathFormatted = [mapOptions.grandTotalText]\r\n }\r\n foreachTree(columnElements, columnMembers => {\r\n columnMemberIndex = columnMembers[0].index;\r\n columnMembers = columnMembers.slice(0, columnMembers.length - 1);\r\n columnVisibility = columnLevel === columnMembers.length;\r\n columnPath = createPath(columnMembers);\r\n columnPathFormatted = getFormattedValue(columnMembers, columnFields);\r\n if (0 === columnPath.length) {\r\n columnPathFormatted = [mapOptions.grandTotalText]\r\n }\r\n callBack()\r\n })\r\n })\r\n }\r\n\r\n function foreachDataField(callback) {\r\n each(dataFields, (index, field) => {\r\n dataField = field;\r\n measureIndex = index;\r\n callback()\r\n })\r\n }\r\n if (false === mapOptions.alternateDataFields) {\r\n foreachDataField(() => {\r\n foreachRowColumn(createDataItem)\r\n })\r\n } else {\r\n foreachRowColumn(() => {\r\n foreachDataField(createDataItem)\r\n })\r\n }\r\n return dataSource\r\n}\r\n\r\nfunction createValueAxisOptions(dataSource, options) {\r\n var dataFields = dataSource.getAreaFields(\"data\");\r\n if (\"args\" !== options.putDataFieldsInto && \"singleAxis\" !== options.dataFieldsDisplayMode || 1 === dataFields.length) {\r\n var valueAxisSettings = [];\r\n each(dataFields, (_, dataField) => {\r\n var valueAxisOptions = {\r\n name: dataField.caption,\r\n title: dataField.caption,\r\n valueType: FORMAT_DICTIONARY[dataField.dataType] || dataField.dataType,\r\n label: {\r\n format: dataField.format\r\n }\r\n };\r\n if (dataField.customizeText) {\r\n valueAxisOptions.label.customizeText = function(formatObject) {\r\n return dataField.customizeText.call(dataField, formatObject)\r\n }\r\n }\r\n if (\"splitPanes\" === options.dataFieldsDisplayMode) {\r\n valueAxisOptions.pane = dataField.caption\r\n }\r\n valueAxisSettings.push(valueAxisOptions)\r\n });\r\n return valueAxisSettings\r\n }\r\n return [{}]\r\n}\r\n\r\nfunction createPanesOptions(dataSource, options) {\r\n var panes = [];\r\n var dataFields = dataSource.getAreaFields(\"data\");\r\n if (dataFields.length > 1 && \"splitPanes\" === options.dataFieldsDisplayMode && \"args\" !== options.putDataFieldsInto) {\r\n each(dataFields, (_, dataField) => {\r\n panes.push({\r\n name: dataField.caption\r\n })\r\n })\r\n }\r\n if (!panes.length) {\r\n panes.push({})\r\n }\r\n return panes\r\n}\r\n\r\nfunction createChartOptions(dataSource, options) {\r\n var {\r\n customizeSeries: customizeSeries\r\n } = options;\r\n var {\r\n customizeChart: customizeChart\r\n } = options;\r\n var chartOptions = {\r\n valueAxis: createValueAxisOptions(dataSource, options),\r\n panes: createPanesOptions(dataSource, options)\r\n };\r\n var axisDictionary = {};\r\n if (customizeChart) {\r\n chartOptions = extend(true, {}, chartOptions, customizeChart(chartOptions))\r\n }\r\n chartOptions.dataSource = createChartDataSource(dataSource, options, axisDictionary);\r\n chartOptions.seriesTemplate = {\r\n nameField: \"series\",\r\n customizeSeries(seriesName) {\r\n var seriesOptions = {};\r\n if (\"splitPanes\" === options.dataFieldsDisplayMode) {\r\n seriesOptions.pane = axisDictionary[seriesName]\r\n } else if (\"singleAxis\" !== options.dataFieldsDisplayMode) {\r\n seriesOptions.axis = axisDictionary[seriesName]\r\n }\r\n if (customizeSeries) {\r\n seriesOptions = extend(seriesOptions, customizeSeries(seriesName, seriesOptions))\r\n }\r\n return seriesOptions\r\n }\r\n };\r\n return chartOptions\r\n}\r\n\r\nfunction getChartInstance(chartElement) {\r\n if (!chartElement) {\r\n return false\r\n }\r\n if (chartElement.NAME) {\r\n return \"dxChart\" === chartElement.NAME && chartElement\r\n }\r\n var element = $(chartElement);\r\n return element.data(\"dxChart\") && element.dxChart(\"instance\")\r\n}\r\n\r\nfunction removeBinding(chart) {\r\n var unbind = chart.$element().data(UNBIND_KEY);\r\n unbind && unbind()\r\n}\r\nvar ChartIntegrationMixin = {\r\n bindChart(chart, integrationOptions) {\r\n integrationOptions = extend({}, integrationOptions);\r\n var that = this;\r\n var updateChart = function() {\r\n integrationOptions.grandTotalText = that.option(\"texts.grandTotal\");\r\n var chartOptions = createChartOptions(that.getDataSource(), integrationOptions);\r\n chart.option(chartOptions)\r\n };\r\n chart = getChartInstance(chart);\r\n if (!chart) {\r\n return null\r\n }\r\n removeBinding(chart);\r\n that.on(\"changed\", updateChart);\r\n updateChart();\r\n var disposeBinding = function() {\r\n chart.$element().removeData(UNBIND_KEY);\r\n that.off(\"changed\", updateChart)\r\n };\r\n chart.on(\"disposing\", disposeBinding);\r\n this.on(\"disposing\", disposeBinding);\r\n chart.$element().data(UNBIND_KEY, disposeBinding);\r\n return disposeBinding\r\n }\r\n};\r\nexport default {\r\n ChartIntegrationMixin: ChartIntegrationMixin\r\n};\r\nexport {\r\n ChartIntegrationMixin\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/scroll/getMemoizeScrollTo.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getMemoizeScrollTo(getScrollableInstance) {\r\n var instance = getScrollableInstance();\r\n var lastParams = {};\r\n return function(params) {\r\n var force = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var normalizedParams = {\r\n top: void 0 !== params.top ? Math.ceil(params.top) : void 0,\r\n left: void 0 !== params.left ? Math.ceil(params.left) : void 0\r\n };\r\n var isSameParams = normalizedParams.top === lastParams.top && normalizedParams.left === lastParams.left;\r\n if (!force && isSameParams) {\r\n return\r\n }\r\n lastParams = normalizedParams;\r\n instance.scrollTo(params)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/area_item/m_area_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../../../core/class\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setStyle\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getMemoizeScrollTo\r\n} from \"../../../../renovation/ui/common/utils/scroll/getMemoizeScrollTo\";\r\nvar PIVOTGRID_EXPAND_CLASS = \"dx-expand\";\r\nvar getRealElementWidth = function(element) {\r\n var width = 0;\r\n var {\r\n offsetWidth: offsetWidth\r\n } = element;\r\n if (element.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(element);\r\n width = clientRect.width;\r\n if (!width) {\r\n width = clientRect.right - clientRect.left\r\n }\r\n if (width <= offsetWidth - 1) {\r\n width = offsetWidth\r\n }\r\n }\r\n return width > 0 ? width : offsetWidth\r\n};\r\n\r\nfunction getFakeTableOffset(scrollPos, elementOffset, tableSize, viewPortSize) {\r\n var offset = 0;\r\n var halfTableCount = 0;\r\n var halfTableSize = tableSize / 2;\r\n if (scrollPos + viewPortSize - (elementOffset + tableSize) > 1) {\r\n if (scrollPos >= elementOffset + tableSize + halfTableSize) {\r\n halfTableCount = parseInt((scrollPos - (elementOffset + tableSize)) / halfTableSize, 10)\r\n }\r\n offset = elementOffset + tableSize + halfTableSize * halfTableCount\r\n } else if (scrollPos < elementOffset) {\r\n if (scrollPos <= elementOffset - halfTableSize) {\r\n halfTableCount = parseInt((scrollPos - (elementOffset - halfTableSize)) / halfTableSize, 10)\r\n }\r\n offset = elementOffset - (tableSize - halfTableSize * halfTableCount)\r\n } else {\r\n offset = elementOffset\r\n }\r\n return offset\r\n}\r\nvar AreaItem = Class.inherit({\r\n ctor(component) {\r\n this.component = component\r\n },\r\n option() {\r\n return this.component.option.apply(this.component, arguments)\r\n },\r\n _getRowElement(index) {\r\n if (this._tableElement && this._tableElement.length > 0) {\r\n return this._tableElement[0].rows[index]\r\n }\r\n return null\r\n },\r\n _createGroupElement: () => $(\"<div>\"),\r\n _createTableElement: () => $(\"<table>\"),\r\n _getCellText(cell, encodeHtml) {\r\n var cellText = cell.isWhiteSpace ? \" \" : cell.text || \" \";\r\n if (encodeHtml && (-1 !== cellText.indexOf(\"<\") || -1 !== cellText.indexOf(\">\"))) {\r\n cellText = $(\"<div>\").text(cellText).html()\r\n }\r\n return cellText\r\n },\r\n _getRowClassNames() {},\r\n _applyCustomStyles(options) {\r\n if (options.cell.width) {\r\n options.cssArray.push(\"min-width:\".concat(options.cell.width, \"px\"))\r\n }\r\n if (options.cell.sorted) {\r\n options.classArray.push(\"dx-pivotgrid-sorted\")\r\n }\r\n },\r\n _getMainElementMarkup: () => domAdapter.createElement(\"tbody\"),\r\n _getCloseMainElementMarkup: () => \"</tbody>\",\r\n _renderTableContent(tableElement, data) {\r\n var rowsCount = data.length;\r\n var row;\r\n var cell;\r\n var i;\r\n var j;\r\n var cellText;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var encodeHtml = this.option(\"encodeHtml\");\r\n var rowClassNames;\r\n tableElement.data(\"area\", this._getAreaName());\r\n tableElement.data(\"data\", data);\r\n tableElement.css(\"width\", \"\");\r\n var tbody = this._getMainElementMarkup();\r\n for (i = 0; i < rowsCount; i += 1) {\r\n row = data[i];\r\n rowClassNames = [];\r\n var tr = domAdapter.createElement(\"tr\");\r\n for (j = 0; j < row.length; j += 1) {\r\n cell = row[j];\r\n this._getRowClassNames(i, cell, rowClassNames);\r\n var td = domAdapter.createElement(\"td\");\r\n if (cell) {\r\n cell.rowspan && td.setAttribute(\"rowspan\", cell.rowspan || 1);\r\n cell.colspan && td.setAttribute(\"colspan\", cell.colspan || 1);\r\n var styleOptions = {\r\n cellElement: void 0,\r\n cell: cell,\r\n cellsCount: row.length,\r\n cellIndex: j,\r\n rowElement: void 0,\r\n rowIndex: i,\r\n rowsCount: rowsCount,\r\n rtlEnabled: rtlEnabled,\r\n classArray: [],\r\n cssArray: []\r\n };\r\n this._applyCustomStyles(styleOptions);\r\n if (styleOptions.cssArray.length) {\r\n setStyle(td, styleOptions.cssArray.join(\";\"))\r\n }\r\n if (styleOptions.classArray.length) {\r\n td.setAttribute(\"class\", styleOptions.classArray.join(\" \"))\r\n }\r\n if (isDefined(cell.expanded)) {\r\n var div = domAdapter.createElement(\"div\");\r\n div.classList.add(\"dx-expand-icon-container\");\r\n var _span = domAdapter.createElement(\"span\");\r\n _span.classList.add(PIVOTGRID_EXPAND_CLASS);\r\n div.appendChild(_span);\r\n td.appendChild(div)\r\n }\r\n cellText = this._getCellText(cell, encodeHtml)\r\n } else {\r\n cellText = \"\"\r\n }\r\n var span = domAdapter.createElement(\"span\");\r\n if (isDefined(cell.wordWrapEnabled)) {\r\n span.style.whiteSpace = cell.wordWrapEnabled ? \"normal\" : \"nowrap\"\r\n }\r\n span.innerHTML = cellText;\r\n td.appendChild(span);\r\n if (cell.sorted) {\r\n var _span2 = domAdapter.createElement(\"span\");\r\n _span2.classList.add(\"dx-icon-sorted\");\r\n td.appendChild(_span2)\r\n }\r\n tr.appendChild(td)\r\n }\r\n if (rowClassNames.length) {\r\n tr.setAttribute(\"class\", rowClassNames.join(\" \"))\r\n }\r\n tbody.appendChild(tr)\r\n }\r\n tableElement.append(tbody);\r\n this._triggerOnCellPrepared(tableElement, data)\r\n },\r\n _triggerOnCellPrepared(tableElement, data) {\r\n var rowElements = tableElement.find(\"tr\");\r\n var areaName = this._getAreaName();\r\n var onCellPrepared = this.option(\"onCellPrepared\");\r\n var hasEvent = this.component._eventsStrategy.hasEvent(\"cellPrepared\");\r\n var rowElement;\r\n var $cellElement;\r\n var onCellPreparedArgs;\r\n var defaultActionArgs = this.component._defaultActionArgs();\r\n var row;\r\n var cell;\r\n var rowIndex;\r\n var columnIndex;\r\n if (onCellPrepared || hasEvent) {\r\n for (rowIndex = 0; rowIndex < data.length; rowIndex += 1) {\r\n row = data[rowIndex];\r\n rowElement = rowElements.eq(rowIndex);\r\n for (columnIndex = 0; columnIndex < row.length; columnIndex += 1) {\r\n cell = row[columnIndex];\r\n $cellElement = rowElement.children().eq(columnIndex);\r\n onCellPreparedArgs = {\r\n area: areaName,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n cellElement: getPublicElement($cellElement),\r\n cell: cell\r\n };\r\n if (hasEvent) {\r\n this.component._trigger(\"onCellPrepared\", onCellPreparedArgs)\r\n } else {\r\n onCellPrepared(extend(onCellPreparedArgs, defaultActionArgs))\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRowHeight(index) {\r\n var row = this._getRowElement(index);\r\n var height = 0;\r\n var {\r\n offsetHeight: offsetHeight\r\n } = row;\r\n if (row && row.lastChild) {\r\n if (row.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(row);\r\n height = clientRect.height;\r\n if (height <= offsetHeight - 1) {\r\n height = offsetHeight\r\n }\r\n }\r\n return height > 0 ? height : offsetHeight\r\n }\r\n return 0\r\n },\r\n _setRowHeight(index, value) {\r\n var row = this._getRowElement(index);\r\n if (row) {\r\n row.style.height = \"\".concat(value, \"px\")\r\n }\r\n },\r\n getRowsLength() {\r\n if (this._tableElement && this._tableElement.length > 0) {\r\n return this._tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n getRowsHeight() {\r\n var result = [];\r\n var rowsLength = this.getRowsLength();\r\n for (var i = 0; i < rowsLength; i += 1) {\r\n result.push(this._getRowHeight(i))\r\n }\r\n return result\r\n },\r\n setRowsHeight(values) {\r\n var totalHeight = 0;\r\n var valuesLength = values.length;\r\n for (var i = 0; i < valuesLength; i += 1) {\r\n totalHeight += values[i];\r\n this._setRowHeight(i, values[i])\r\n }\r\n this._tableHeight = totalHeight;\r\n this._tableElement[0].style.height = \"\".concat(totalHeight, \"px\")\r\n },\r\n getColumnsWidth() {\r\n var rowsLength = this.getRowsLength();\r\n var rowIndex;\r\n var row;\r\n var i;\r\n var columnIndex;\r\n var processedCells = [];\r\n var result = [];\r\n var fillCells = function(cells, rowIndex, columnIndex, rowSpan, colSpan) {\r\n var rowOffset;\r\n var columnOffset;\r\n for (rowOffset = 0; rowOffset < rowSpan; rowOffset += 1) {\r\n for (columnOffset = 0; columnOffset < colSpan; columnOffset += 1) {\r\n cells[rowIndex + rowOffset] = cells[rowIndex + rowOffset] || [];\r\n cells[rowIndex + rowOffset][columnIndex + columnOffset] = true\r\n }\r\n }\r\n };\r\n if (rowsLength) {\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex += 1) {\r\n processedCells[rowIndex] = processedCells[rowIndex] || [];\r\n row = this._getRowElement(rowIndex);\r\n for (i = 0; i < row.cells.length; i += 1) {\r\n for (columnIndex = 0; processedCells[rowIndex][columnIndex]; columnIndex += 1) {}\r\n fillCells(processedCells, rowIndex, columnIndex, row.cells[i].rowSpan, row.cells[i].colSpan);\r\n if (1 === row.cells[i].colSpan) {\r\n result[columnIndex] = result[columnIndex] || getRealElementWidth(row.cells[i])\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n setColumnsWidth(values) {\r\n var i;\r\n var tableElement = this._tableElement[0];\r\n this._colgroupElement.html(\"\");\r\n var columnsCount = this.getColumnsCount();\r\n var columnWidth = [];\r\n for (i = 0; i < columnsCount; i += 1) {\r\n columnWidth.push(values[i] || 0)\r\n }\r\n for (i = columnsCount; i < values.length && values; i += 1) {\r\n columnWidth[columnsCount - 1] += values[i]\r\n }\r\n for (i = 0; i < columnsCount; i += 1) {\r\n var col = domAdapter.createElement(\"col\");\r\n col.style.width = \"\".concat(columnWidth[i], \"px\");\r\n this._colgroupElement.append(col)\r\n }\r\n this._tableWidth = columnWidth.reduce((sum, width) => sum + width, 0);\r\n tableElement.style.width = \"\".concat(this._tableWidth, \"px\");\r\n tableElement.style.tableLayout = \"fixed\"\r\n },\r\n resetColumnsWidth() {\r\n setWidth(this._colgroupElement.find(\"col\"), \"auto\");\r\n this._tableElement.css({\r\n width: \"\",\r\n tableLayout: \"\"\r\n })\r\n },\r\n setGroupWidth(value) {\r\n this._getScrollable().option(\"width\", value)\r\n },\r\n setGroupHeight(value) {\r\n this._getScrollable().option(\"height\", value)\r\n },\r\n getGroupHeight() {\r\n return this._getGroupElementSize(\"height\")\r\n },\r\n getGroupWidth() {\r\n return this._getGroupElementSize(\"width\")\r\n },\r\n _getGroupElementSize(dimension) {\r\n var size = this.groupElement()[0].style[dimension];\r\n if (size.indexOf(\"px\") > 0) {\r\n return parseFloat(size)\r\n }\r\n return null\r\n },\r\n groupElement() {\r\n return this._groupElement\r\n },\r\n tableElement() {\r\n return this._tableElement\r\n },\r\n element() {\r\n return this._rootElement\r\n },\r\n headElement() {\r\n return this._tableElement.find(\"thead\")\r\n },\r\n _setTableCss(styles) {\r\n if (this.option(\"rtlEnabled\")) {\r\n styles.right = styles.left;\r\n delete styles.left\r\n }\r\n this.tableElement().css(styles)\r\n },\r\n setVirtualContentParams(params) {\r\n this._virtualContent.css({\r\n width: params.width,\r\n height: params.height\r\n });\r\n var scrollable = this._getScrollable();\r\n if (null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated()) {\r\n this._getScrollable().option(\"classes\", \"dx-virtual-mode\")\r\n } else {\r\n this.groupElement().addClass(\"dx-virtual-mode\")\r\n }\r\n },\r\n disableVirtualMode() {\r\n var scrollable = this._getScrollable();\r\n if (null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated()) {\r\n this._getScrollable().option(\"classes\", \"\")\r\n } else {\r\n this.groupElement().removeClass(\"dx-virtual-mode\")\r\n }\r\n },\r\n _renderVirtualContent() {\r\n if (!this._virtualContent && \"virtual\" === this.option(\"scrolling.mode\")) {\r\n this._virtualContent = $(\"<div>\").addClass(\"dx-virtual-content\").insertBefore(this._tableElement)\r\n }\r\n },\r\n reset() {\r\n var tableElement = this._tableElement[0];\r\n this._fakeTable && this._fakeTable.detach();\r\n this._fakeTable = null;\r\n this.disableVirtualMode();\r\n this.setGroupWidth(\"100%\");\r\n this.setGroupHeight(\"auto\");\r\n this.resetColumnsWidth();\r\n if (tableElement) {\r\n for (var i = 0; i < tableElement.rows.length; i += 1) {\r\n tableElement.rows[i].style.height = \"\"\r\n }\r\n tableElement.style.height = \"\";\r\n tableElement.style.width = \"100%\"\r\n }\r\n },\r\n _updateFakeTableVisibility() {\r\n var tableElement = this.tableElement()[0];\r\n var horizontalOffsetName = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var fakeTableElement = this._fakeTable[0];\r\n if (tableElement.style.top === fakeTableElement.style.top && fakeTableElement.style[horizontalOffsetName] === tableElement.style[horizontalOffsetName]) {\r\n this._fakeTable.addClass(\"dx-hidden\")\r\n } else {\r\n this._fakeTable.removeClass(\"dx-hidden\")\r\n }\r\n },\r\n _moveFakeTableHorizontally(scrollPos) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var offsetStyleName = rtlEnabled ? \"right\" : \"left\";\r\n var tableElementOffset = parseFloat(this.tableElement()[0].style[offsetStyleName]);\r\n var offset = getFakeTableOffset(scrollPos, tableElementOffset, this._tableWidth, this.getGroupWidth());\r\n if (parseFloat(this._fakeTable[0].style[offsetStyleName]) !== offset) {\r\n this._fakeTable[0].style[offsetStyleName] = \"\".concat(offset, \"px\")\r\n }\r\n },\r\n _moveFakeTableTop(scrollPos) {\r\n var tableElementOffsetTop = parseFloat(this.tableElement()[0].style.top);\r\n var offsetTop = getFakeTableOffset(scrollPos, tableElementOffsetTop, this._tableHeight, this.getGroupHeight());\r\n if (parseFloat(this._fakeTable[0].style.top) !== offsetTop) {\r\n this._fakeTable[0].style.top = \"\".concat(offsetTop, \"px\")\r\n }\r\n },\r\n _moveFakeTable() {\r\n this._updateFakeTableVisibility()\r\n },\r\n _createFakeTable() {\r\n if (!this._fakeTable) {\r\n this._fakeTable = this.tableElement().clone().addClass(\"dx-pivot-grid-fake-table\").appendTo(this._virtualContent)\r\n }\r\n },\r\n render(rootElement, data) {\r\n if (this._tableElement) {\r\n try {\r\n this._tableElement[0].innerHTML = \"\"\r\n } catch (e) {\r\n this._tableElement.empty()\r\n }\r\n this._tableElement.removeAttr(\"style\")\r\n } else {\r\n this._groupElement = this._createGroupElement();\r\n this._tableElement = this._createTableElement();\r\n this._tableElement.appendTo(this._groupElement);\r\n this._groupElement.appendTo(rootElement);\r\n this._rootElement = rootElement\r\n }\r\n this._colgroupElement = $(\"<colgroup>\").appendTo(this._tableElement);\r\n this._renderTableContent(this._tableElement, data);\r\n this._renderVirtualContent()\r\n },\r\n _getScrollable() {\r\n return this.groupElement().data(\"dxScrollable\")\r\n },\r\n _getMemoizeScrollTo() {\r\n var _a;\r\n this._memoizeScrollTo = null !== (_a = this._memoizeScrollTo) && void 0 !== _a ? _a : getMemoizeScrollTo(() => this._getScrollable());\r\n return this._memoizeScrollTo\r\n },\r\n _getMaxLeftOffset(scrollable) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n return containerElement.scrollWidth - containerElement.clientWidth\r\n },\r\n on(eventName, handler) {\r\n var that = this;\r\n var scrollable = that._getScrollable();\r\n if (scrollable) {\r\n scrollable.on(eventName, e => {\r\n if (that.option(\"rtlEnabled\") && isDefined(e.scrollOffset.left)) {\r\n e.scrollOffset.left = that._getMaxLeftOffset(scrollable) - e.scrollOffset.left\r\n }\r\n handler(e)\r\n })\r\n }\r\n return this\r\n },\r\n off(eventName) {\r\n var scrollable = this._getScrollable();\r\n if (scrollable) {\r\n scrollable.off(eventName)\r\n }\r\n return this\r\n },\r\n scrollTo(pos) {\r\n var force = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var scrollable = this._getScrollable();\r\n if (!scrollable) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var areaName = this._getAreaName();\r\n var scrollablePos = _extends(_extends({}, pos), {\r\n left: rtlEnabled && (\"column\" === areaName || \"data\" === areaName) ? this._getMaxLeftOffset(scrollable) - pos.left : pos.left\r\n });\r\n var memoizeScrollTo = this._getMemoizeScrollTo();\r\n memoizeScrollTo(scrollablePos, force);\r\n if (this._virtualContent) {\r\n this._createFakeTable();\r\n this._moveFakeTable(pos)\r\n }\r\n },\r\n updateScrollable() {\r\n var scrollable = this._getScrollable();\r\n if (scrollable) {\r\n return scrollable.update()\r\n }\r\n return\r\n },\r\n getColumnsCount() {\r\n var columnCount = 0;\r\n var row = this._getRowElement(0);\r\n var cells;\r\n if (row) {\r\n cells = row.cells;\r\n for (var i = 0, len = cells.length; i < len; ++i) {\r\n columnCount += cells[i].colSpan\r\n }\r\n }\r\n return columnCount\r\n },\r\n getData() {\r\n var tableElement = this._tableElement;\r\n return tableElement ? tableElement.data(\"data\") : []\r\n }\r\n});\r\nexport default {\r\n AreaItem: AreaItem,\r\n getRealElementWidth: getRealElementWidth\r\n};\r\nexport {\r\n AreaItem,\r\n getRealElementWidth\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/data_area/m_data_area.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n AreaItem\r\n} from \"../area_item/m_area_item\";\r\nimport {\r\n calculateScrollbarWidth\r\n} from \"../m_widget_utils\";\r\nvar PIVOTGRID_AREA_CLASS = \"dx-pivotgrid-area\";\r\nvar PIVOTGRID_AREA_DATA_CLASS = \"dx-pivotgrid-area-data\";\r\nvar PIVOTGRID_TOTAL_CLASS = \"dx-total\";\r\nvar PIVOTGRID_GRAND_TOTAL_CLASS = \"dx-grandtotal\";\r\nvar PIVOTGRID_ROW_TOTAL_CLASS = \"dx-row-total\";\r\nvar DataArea = AreaItem.inherit({\r\n _getAreaName: () => \"data\",\r\n _createGroupElement: () => $(\"<div>\").addClass(PIVOTGRID_AREA_CLASS).addClass(PIVOTGRID_AREA_DATA_CLASS).css(\"borderTopWidth\", 0),\r\n _applyCustomStyles(options) {\r\n var {\r\n cell: cell\r\n } = options;\r\n var {\r\n classArray: classArray\r\n } = options;\r\n if (\"T\" === cell.rowType || \"T\" === cell.columnType) {\r\n classArray.push(PIVOTGRID_TOTAL_CLASS)\r\n }\r\n if (\"GT\" === cell.rowType || \"GT\" === cell.columnType) {\r\n classArray.push(PIVOTGRID_GRAND_TOTAL_CLASS)\r\n }\r\n if (\"T\" === cell.rowType || \"GT\" === cell.rowType) {\r\n classArray.push(PIVOTGRID_ROW_TOTAL_CLASS)\r\n }\r\n if (options.rowIndex === options.rowsCount - 1) {\r\n options.cssArray.push(\"border-bottom: 0px\")\r\n }\r\n this.callBase(options)\r\n },\r\n _moveFakeTable(scrollPos) {\r\n this._moveFakeTableHorizontally(scrollPos.x);\r\n this._moveFakeTableTop(scrollPos.y);\r\n this.callBase()\r\n },\r\n renderScrollable() {\r\n this._groupElement.dxScrollable({\r\n useNative: this.getUseNativeValue(),\r\n useSimulatedScrollbar: false,\r\n rtlEnabled: this.component.option(\"rtlEnabled\"),\r\n bounceEnabled: false,\r\n updateManually: true\r\n })\r\n },\r\n getUseNativeValue() {\r\n var {\r\n useNative: useNative\r\n } = this.component.option(\"scrolling\");\r\n return \"auto\" === useNative ? !!nativeScrolling : !!useNative\r\n },\r\n getScrollbarWidth() {\r\n return this.getUseNativeValue() ? calculateScrollbarWidth() : 0\r\n },\r\n updateScrollableOptions(_ref) {\r\n var {\r\n direction: direction,\r\n rtlEnabled: rtlEnabled\r\n } = _ref;\r\n var scrollable = this._getScrollable();\r\n scrollable.option(\"useNative\", this.getUseNativeValue());\r\n scrollable.option({\r\n direction: direction,\r\n rtlEnabled: rtlEnabled\r\n })\r\n },\r\n getScrollableDirection(horizontal, vertical) {\r\n if (horizontal && !vertical) {\r\n return \"horizontal\"\r\n }\r\n if (!horizontal && vertical) {\r\n return \"vertical\"\r\n }\r\n return \"both\"\r\n },\r\n reset() {\r\n this.callBase();\r\n if (this._virtualContent) {\r\n this._virtualContent.parent().css(\"height\", \"auto\")\r\n }\r\n },\r\n setVirtualContentParams(params) {\r\n this.callBase(params);\r\n this._virtualContent.parent().css(\"height\", params.height);\r\n this._setTableCss({\r\n top: params.top,\r\n left: params.left\r\n })\r\n }\r\n});\r\nexport default {\r\n DataArea: DataArea\r\n};\r\nexport {\r\n DataArea\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/local_store/m_local_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport dataQuery from \"../../../../data/query\";\r\nimport {\r\n aggregators\r\n} from \"../../../../data/utils\";\r\nimport {\r\n discoverObjectFields,\r\n getFiltersByPath,\r\n setDefaultFieldValueFormatting,\r\n setFieldProperty,\r\n storeDrillDownMixin\r\n} from \"../m_widget_utils\";\r\nvar PATH_DELIMETER = \"/./\";\r\nvar LocalStore = Class.inherit(function() {\r\n var DATE_INTERVAL_SELECTORS = {\r\n year: date => date && date.getFullYear(),\r\n quarter: date => date && Math.floor(date.getMonth() / 3) + 1,\r\n month: date => date && date.getMonth() + 1,\r\n day: date => date && date.getDate(),\r\n dayOfWeek: date => date && date.getDay()\r\n };\r\n\r\n function getDataSelector(dataField) {\r\n return -1 !== dataField.indexOf(\".\") ? compileGetter(dataField) : function(data) {\r\n return data[dataField]\r\n }\r\n }\r\n\r\n function getDateValue(dataSelector) {\r\n return function(data) {\r\n var value = dataSelector(data);\r\n if (value && !(value instanceof Date)) {\r\n value = dateSerialization.deserializeDate(value)\r\n }\r\n return value\r\n }\r\n }\r\n\r\n function prepareFields(fields) {\r\n each(fields || [], (_, field) => {\r\n var fieldSelector;\r\n var intervalSelector;\r\n var {\r\n dataField: dataField\r\n } = field;\r\n var groupInterval;\r\n var {\r\n levels: levels\r\n } = field;\r\n var dataSelector;\r\n if (!field.selector) {\r\n if (!dataField) {\r\n dataSelector = function(data) {\r\n return data\r\n }\r\n } else {\r\n dataSelector = getDataSelector(dataField)\r\n }\r\n if (levels) {\r\n prepareFields(levels)\r\n }\r\n if (\"date\" === field.dataType) {\r\n intervalSelector = DATE_INTERVAL_SELECTORS[field.groupInterval];\r\n var valueSelector = getDateValue(dataSelector);\r\n fieldSelector = function(data) {\r\n var value = valueSelector(data);\r\n return intervalSelector ? intervalSelector(value) : value\r\n }\r\n } else if (\"number\" === field.dataType) {\r\n groupInterval = isNumeric(field.groupInterval) && field.groupInterval > 0 && field.groupInterval;\r\n fieldSelector = function(data) {\r\n var value = dataSelector(data);\r\n if (isString(value)) {\r\n value = Number(value)\r\n }\r\n return groupInterval ? Math.floor(value / groupInterval) * groupInterval : value\r\n }\r\n } else {\r\n fieldSelector = dataSelector\r\n }\r\n setDefaultFieldValueFormatting(field);\r\n setFieldProperty(field, \"selector\", fieldSelector)\r\n }\r\n })\r\n }\r\n\r\n function generateHierarchyItems(data, loadOptions, headers, headerName) {\r\n var result = [0];\r\n var expandIndex = loadOptions.headerName === headerName ? loadOptions.path.length : 0;\r\n var expandedPaths = \"rows\" === headerName ? loadOptions.rowExpandedPaths : loadOptions.columnExpandedPaths;\r\n var options = {\r\n data: data,\r\n childrenHash: headers[\"\".concat(headerName, \"Hash\")],\r\n dimensions: loadOptions[headerName],\r\n expandedPathsHash: loadOptions.headerName !== headerName && expandedPaths && expandedPaths.hash\r\n };\r\n ! function fillHierarchyItemIndexesCore(indexes, options, children, expandIndex, pathHash) {\r\n var dimension = options.dimensions[expandIndex];\r\n var {\r\n expandedPathsHash: expandedPathsHash\r\n } = options;\r\n var dimensionValue;\r\n var hierarchyItem;\r\n if (dimension) {\r\n dimensionValue = dimension.selector(options.data);\r\n pathHash = void 0 !== pathHash ? pathHash + PATH_DELIMETER + dimensionValue : \"\".concat(dimensionValue);\r\n hierarchyItem = function(value, hierarchyItems, pathHash, childrenHash) {\r\n var hierarchyItem = childrenHash[pathHash];\r\n if (!hierarchyItem) {\r\n hierarchyItem = {\r\n value: value,\r\n index: childrenHash.length++\r\n };\r\n childrenHash[pathHash] = hierarchyItem;\r\n hierarchyItems.push(hierarchyItem)\r\n }\r\n return hierarchyItem\r\n }(dimensionValue, children, pathHash, options.childrenHash);\r\n indexes.push(hierarchyItem.index);\r\n if (expandedPathsHash && expandedPathsHash[pathHash] || dimension.expanded) {\r\n if (!hierarchyItem.children) {\r\n hierarchyItem.children = []\r\n }\r\n fillHierarchyItemIndexesCore(indexes, options, hierarchyItem.children, expandIndex + 1, pathHash)\r\n }\r\n }\r\n }(result, options, headers[headerName], expandIndex);\r\n return result\r\n }\r\n\r\n function generateAggregationCells(data, cells, headers, options) {\r\n var cellSet = [];\r\n var x;\r\n var y;\r\n var rowIndex;\r\n var columnIndex;\r\n var rowIndexes = generateHierarchyItems(data, options, headers, \"rows\");\r\n var columnIndexes = generateHierarchyItems(data, options, headers, \"columns\");\r\n for (y = 0; y < rowIndexes.length; y += 1) {\r\n rowIndex = rowIndexes[y];\r\n cells[rowIndex] = cells[rowIndex] || [];\r\n for (x = 0; x < columnIndexes.length; x += 1) {\r\n columnIndex = columnIndexes[x];\r\n cellSet.push(cells[rowIndex][columnIndex] = cells[rowIndex][columnIndex] || [])\r\n }\r\n }\r\n return cellSet\r\n }\r\n\r\n function fillHashExpandedPath(expandedPaths) {\r\n if (expandedPaths) {\r\n var hash = expandedPaths.hash = {};\r\n expandedPaths.forEach(path => {\r\n var pathValue = path.map(value => \"\".concat(value)).join(PATH_DELIMETER);\r\n hash[pathValue] = true\r\n })\r\n }\r\n }\r\n\r\n function prepareLoadOption(options) {\r\n options.rows = options.rows || [];\r\n options.columns = options.columns || [];\r\n options.filters = options.filters || [];\r\n fillHashExpandedPath(options.columnExpandedPaths);\r\n fillHashExpandedPath(options.rowExpandedPaths);\r\n prepareFields(options.columns);\r\n prepareFields(options.rows);\r\n prepareFields(options.values);\r\n prepareFields(options.filters)\r\n }\r\n\r\n function getAggregator(field) {\r\n if (\"custom\" === field.summaryType) {\r\n field.calculateCustomSummary = field.calculateCustomSummary || noop;\r\n return {\r\n seed() {\r\n var options = {\r\n summaryProcess: \"start\",\r\n totalValue: void 0\r\n };\r\n field.calculateCustomSummary(options);\r\n return options\r\n },\r\n step(options, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.value = value;\r\n field.calculateCustomSummary(options);\r\n return options\r\n },\r\n finalize(options) {\r\n options.summaryProcess = \"finalize\";\r\n delete options.value;\r\n field.calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return aggregators[field.summaryType] || aggregators.count\r\n }\r\n\r\n function aggregationStep(measures, aggregationCells, data) {\r\n for (var aggregatorIndex = 0; aggregatorIndex < measures.length; aggregatorIndex += 1) {\r\n var cellField = measures[aggregatorIndex];\r\n var cellValue = cellField.selector(data);\r\n var aggregator = getAggregator(cellField);\r\n var isAggregatorSeedFunction = \"function\" === typeof aggregator.seed;\r\n for (var cellSetIndex = 0; cellSetIndex < aggregationCells.length; cellSetIndex += 1) {\r\n var cell = aggregationCells[cellSetIndex];\r\n if (cell.length <= aggregatorIndex) {\r\n cell[aggregatorIndex] = isAggregatorSeedFunction ? aggregator.seed() : aggregator.seed\r\n }\r\n if (void 0 === cell[aggregatorIndex]) {\r\n cell[aggregatorIndex] = cellValue\r\n } else if (isDefined(cellValue)) {\r\n cell[aggregatorIndex] = aggregator.step(cell[aggregatorIndex], cellValue)\r\n }\r\n }\r\n }\r\n }\r\n\r\n function areValuesEqual(filterValue, fieldValue) {\r\n var valueOfFilter = filterValue && filterValue.valueOf();\r\n var valueOfField = fieldValue && fieldValue.valueOf();\r\n if (Array.isArray(filterValue)) {\r\n fieldValue = fieldValue || [];\r\n for (var i = 0; i < filterValue.length; i += 1) {\r\n valueOfFilter = filterValue[i] && filterValue[i].valueOf();\r\n valueOfField = fieldValue[i] && fieldValue[i].valueOf();\r\n if (valueOfFilter !== valueOfField) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return valueOfFilter === valueOfField\r\n }\r\n\r\n function createDimensionFilters(dimension) {\r\n var filters = [];\r\n each(dimension, (_, field) => {\r\n var filterValues = field.filterValues || [];\r\n var {\r\n groupName: groupName\r\n } = field;\r\n if (groupName && isNumeric(field.groupIndex)) {\r\n return\r\n }\r\n filterValues.length && filters.push((function(dataItem) {\r\n var value = field.levels ? function(levels, data) {\r\n var value = [];\r\n each(levels, (_, field) => {\r\n value.push(field.selector(data))\r\n });\r\n return value\r\n }(field.levels, dataItem) : field.selector(dataItem);\r\n var result = false;\r\n for (var i = 0; i < filterValues.length; i += 1) {\r\n if (areValuesEqual(filterValues[i], value)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return \"exclude\" === field.filterType ? !result : result\r\n }))\r\n });\r\n return filters\r\n }\r\n\r\n function createFilter(options) {\r\n var filters = createDimensionFilters(options.rows).concat(createDimensionFilters(options.columns)).concat(createDimensionFilters(options.filters));\r\n var expandedDimensions = options[options.headerName];\r\n var {\r\n path: path\r\n } = options;\r\n if (expandedDimensions) {\r\n filters.push(dataItem => {\r\n var expandValue;\r\n for (var i = 0; i < path.length; i += 1) {\r\n expandValue = expandedDimensions[i].selector(dataItem);\r\n if (toComparable(expandValue, true) !== toComparable(path[i], true)) {\r\n return false\r\n }\r\n }\r\n return true\r\n })\r\n }\r\n return function(dataItem) {\r\n for (var i = 0; i < filters.length; i += 1) {\r\n if (!filters[i](dataItem)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n }\r\n\r\n function loadCore(items, options, notifyProgress) {\r\n var headers = {\r\n columns: [],\r\n rows: [],\r\n columnsHash: {\r\n length: 1\r\n },\r\n rowsHash: {\r\n length: 1\r\n }\r\n };\r\n var values = [];\r\n var aggregationCells;\r\n var data;\r\n var d = new Deferred;\r\n var i = 0;\r\n var filter = createFilter(options);\r\n ! function processData() {\r\n var t = new Date;\r\n var startIndex = i;\r\n for (; i < items.length; i += 1) {\r\n if (i > startIndex && i % 1e4 === 0) {\r\n if (new Date - t >= 300) {\r\n notifyProgress(i / items.length);\r\n setTimeout(processData, 0);\r\n return\r\n }\r\n }\r\n data = items[i];\r\n if (filter(data)) {\r\n aggregationCells = generateAggregationCells(data, values, headers, options);\r\n aggregationStep(options.values, aggregationCells, data)\r\n }\r\n }\r\n measures = options.values, cells = values, void each(measures, (aggregatorIndex, cellField) => {\r\n var aggregator = getAggregator(cellField);\r\n if (aggregator.finalize) {\r\n each(cells, (_, row) => {\r\n each(row, (_, cell) => {\r\n if (cell && void 0 !== cell[aggregatorIndex]) {\r\n cell[aggregatorIndex] = aggregator.finalize(cell[aggregatorIndex])\r\n }\r\n })\r\n })\r\n }\r\n });\r\n var measures, cells;\r\n notifyProgress(1);\r\n d.resolve({\r\n rows: headers.rows,\r\n columns: headers.columns,\r\n values: values,\r\n grandTotalRowIndex: 0,\r\n grandTotalColumnIndex: 0\r\n })\r\n }();\r\n return d\r\n }\r\n\r\n function filterDataSource(dataSource, fieldSelectors) {\r\n var filter = dataSource.filter();\r\n if (dataSource.store() instanceof CustomStore && filter) {\r\n filter = processFilter(filter, fieldSelectors);\r\n return dataQuery(dataSource.items()).filter(filter).toArray()\r\n }\r\n return dataSource.items()\r\n }\r\n\r\n function loadDataSource(dataSource, fieldSelectors, reload) {\r\n var d = new Deferred;\r\n var customizeStoreLoadOptionsHandler = function(options) {\r\n if (dataSource.store() instanceof ArrayStore) {\r\n options.storeLoadOptions.filter = processFilter(options.storeLoadOptions.filter, fieldSelectors)\r\n }\r\n };\r\n dataSource.on(\"customizeStoreLoadOptions\", customizeStoreLoadOptionsHandler);\r\n if (!dataSource.isLoaded() || reload) {\r\n var loadDeferred = reload ? dataSource.load() : dataSource.reload();\r\n when(loadDeferred).done(() => {\r\n loadDataSource(dataSource, fieldSelectors).done(() => {\r\n d.resolve(filterDataSource(dataSource, fieldSelectors))\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n } else {\r\n d.resolve(filterDataSource(dataSource, fieldSelectors))\r\n }\r\n return d.always(() => {\r\n dataSource.off(\"customizeStoreLoadOptions\", customizeStoreLoadOptionsHandler)\r\n })\r\n }\r\n\r\n function fillSelectorsByFields(selectors, fields) {\r\n fields.forEach(field => {\r\n if (field.dataField && \"date\" === field.dataType) {\r\n var valueSelector = getDateValue(getDataSelector(field.dataField));\r\n selectors[field.dataField] = function(data) {\r\n return valueSelector(data)\r\n }\r\n }\r\n })\r\n }\r\n\r\n function getFieldSelectors(options) {\r\n var selectors = {};\r\n if (Array.isArray(options)) {\r\n fillSelectorsByFields(selectors, options)\r\n } else if (options) {\r\n [\"rows\", \"columns\", \"filters\"].forEach(area => {\r\n options[area] && fillSelectorsByFields(selectors, options[area])\r\n })\r\n }\r\n return selectors\r\n }\r\n\r\n function processFilter(filter, fieldSelectors) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = filter.slice(0);\r\n if (isString(filter[0]) && (filter[1] instanceof Date || filter[2] instanceof Date)) {\r\n filter[0] = fieldSelectors[filter[0]]\r\n }\r\n for (var i = 0; i < filter.length; i += 1) {\r\n filter[i] = processFilter(filter[i], fieldSelectors)\r\n }\r\n return filter\r\n }\r\n return {\r\n ctor(options) {\r\n this._progressChanged = options.onProgressChanged || noop;\r\n this._dataSource = new DataSource(options);\r\n this._dataSource.paginate(false)\r\n },\r\n getFields(fields) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n loadDataSource(dataSource, getFieldSelectors(fields)).done(data => {\r\n d.resolve(discoverObjectFields(data, fields))\r\n }).fail(d.reject);\r\n return d\r\n },\r\n key() {\r\n return this._dataSource.key()\r\n },\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n prepareLoadOption(options);\r\n loadDataSource(dataSource, getFieldSelectors(options), options.reload).done(data => {\r\n when(loadCore(data, options, that._progressChanged)).done(d.resolve)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n filter() {\r\n var dataSource = this._dataSource;\r\n return dataSource.filter.apply(dataSource, arguments)\r\n },\r\n supportPaging: () => false,\r\n getDrillDownItems(loadOptions, params) {\r\n loadOptions = loadOptions || {};\r\n params = params || {};\r\n prepareLoadOption(loadOptions);\r\n var drillDownItems = [];\r\n var items = this._dataSource.items();\r\n var item;\r\n var {\r\n maxRowCount: maxRowCount\r\n } = params;\r\n var {\r\n customColumns: customColumns\r\n } = params;\r\n var filter = createFilter(loadOptions);\r\n var pathFilter = createFilter({\r\n rows: getFiltersByPath(loadOptions.rows, params.rowPath),\r\n columns: getFiltersByPath(loadOptions.columns, params.columnPath),\r\n filters: []\r\n });\r\n for (var i = 0; i < items.length; i += 1) {\r\n if (pathFilter(items[i]) && filter(items[i])) {\r\n if (customColumns) {\r\n item = {};\r\n for (var j = 0; j < customColumns.length; j += 1) {\r\n item[customColumns[j]] = items[i][customColumns[j]]\r\n }\r\n } else {\r\n item = items[i]\r\n }\r\n drillDownItems.push(item)\r\n }\r\n if (maxRowCount > 0 && drillDownItems.length === maxRowCount) {\r\n break\r\n }\r\n }\r\n return drillDownItems\r\n }\r\n }\r\n}()).include(storeDrillDownMixin);\r\nexport default {\r\n LocalStore: LocalStore\r\n};\r\nexport {\r\n LocalStore\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/remote_store/m_remote_store_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar forEachGroup = function forEachGroup(data, callback, level) {\r\n data = data || [];\r\n level = level || 0;\r\n for (var i = 0; i < data.length; i += 1) {\r\n var group = data[i];\r\n callback(group, level);\r\n if (group && group.items && group.items.length) {\r\n forEachGroup(group.items, callback, level + 1)\r\n }\r\n }\r\n};\r\nexport default {\r\n forEachGroup: forEachGroup\r\n};\r\nexport {\r\n forEachGroup\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/remote_store/m_remote_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../../../data/data_source/utils\";\r\nimport pivotGridUtils, {\r\n capitalizeFirstLetter,\r\n getExpandedLevel,\r\n getFiltersByPath,\r\n setDefaultFieldValueFormatting\r\n} from \"../m_widget_utils\";\r\nimport {\r\n forEachGroup\r\n} from \"./m_remote_store_utils\";\r\n\r\nfunction createGroupingOptions(dimensionOptions, useSortOrder) {\r\n var groupingOptions = [];\r\n each(dimensionOptions, (index, dimensionOption) => {\r\n groupingOptions.push({\r\n selector: dimensionOption.dataField,\r\n groupInterval: dimensionOption.groupInterval,\r\n desc: useSortOrder && \"desc\" === dimensionOption.sortOrder,\r\n isExpanded: index < dimensionOptions.length - 1\r\n })\r\n });\r\n return groupingOptions\r\n}\r\n\r\nfunction getFieldFilterSelector(field) {\r\n var selector = field.dataField;\r\n var {\r\n groupInterval: groupInterval\r\n } = field;\r\n if (\"date\" === field.dataType && \"string\" === typeof groupInterval) {\r\n if (\"quarter\" === groupInterval.toLowerCase()) {\r\n groupInterval = \"Month\"\r\n }\r\n selector = \"\".concat(selector, \".\").concat(capitalizeFirstLetter(groupInterval))\r\n }\r\n return selector\r\n}\r\n\r\nfunction getIntervalFilterExpression(selector, numericInterval, numericValue, isExcludedFilterType) {\r\n var startFilterValue = [selector, isExcludedFilterType ? \"<\" : \">=\", numericValue];\r\n var endFilterValue = [selector, isExcludedFilterType ? \">=\" : \"<\", numericValue + numericInterval];\r\n return [startFilterValue, isExcludedFilterType ? \"or\" : \"and\", endFilterValue]\r\n}\r\n\r\nfunction getFilterExpressionForFilterValue(field, filterValue) {\r\n var selector = getFieldFilterSelector(field);\r\n var isExcludedFilterType = \"exclude\" === field.filterType;\r\n var expression = [selector, isExcludedFilterType ? \"<>\" : \"=\", filterValue];\r\n if (isDefined(field.groupInterval)) {\r\n if (\"string\" === typeof field.groupInterval && \"quarter\" === field.groupInterval.toLowerCase()) {\r\n expression = getIntervalFilterExpression(selector, 3, 3 * (filterValue - 1) + 1, isExcludedFilterType)\r\n } else if (\"number\" === typeof field.groupInterval && \"date\" !== field.dataType) {\r\n expression = getIntervalFilterExpression(selector, field.groupInterval, filterValue, isExcludedFilterType)\r\n }\r\n }\r\n return expression\r\n}\r\n\r\nfunction createFieldFilterExpressions(field, operation) {\r\n var fieldFilterExpressions = [];\r\n if (field.searchValue) {\r\n return [field.dataField, \"contains\", field.searchValue]\r\n }\r\n if (\"exclude\" === field.filterType) {\r\n operation = operation || \"and\"\r\n } else {\r\n operation = operation || \"or\"\r\n }\r\n each(field.filterValues, (index, filterValue) => {\r\n var currentExpression = [];\r\n if (Array.isArray(filterValue)) {\r\n var parseLevelsRecursive = field.levels && field.levels.length;\r\n if (parseLevelsRecursive) {\r\n currentExpression = createFieldFilterExpressions({\r\n filterValues: filterValue,\r\n filterType: field.filterType,\r\n levels: field.levels\r\n }, \"and\")\r\n }\r\n } else {\r\n var currentField = field.levels ? field.levels[index] : field;\r\n currentExpression = getFilterExpressionForFilterValue(currentField, filterValue)\r\n }\r\n if (!currentExpression.length) {\r\n return\r\n }\r\n if (fieldFilterExpressions.length) {\r\n fieldFilterExpressions.push(operation)\r\n }\r\n fieldFilterExpressions.push(currentExpression)\r\n });\r\n return fieldFilterExpressions\r\n}\r\n\r\nfunction createFilterExpressions(fields) {\r\n var filterExpressions = [];\r\n each(fields, (_, field) => {\r\n var fieldExpressions = createFieldFilterExpressions(field);\r\n if (!fieldExpressions.length) {\r\n return []\r\n }\r\n if (filterExpressions.length) {\r\n filterExpressions.push(\"and\")\r\n }\r\n filterExpressions.push(fieldExpressions);\r\n return\r\n });\r\n if (1 === filterExpressions.length) {\r\n filterExpressions = filterExpressions[0]\r\n }\r\n return filterExpressions\r\n}\r\n\r\nfunction mergeFilters(filter1, filter2) {\r\n var mergedFilter;\r\n var notEmpty = function(filter) {\r\n return filter && filter.length\r\n };\r\n if (notEmpty(filter1) && notEmpty(filter2)) {\r\n mergedFilter = [filter1, \"and\", filter2]\r\n } else {\r\n mergedFilter = notEmpty(filter1) ? filter1 : filter2\r\n }\r\n return mergedFilter\r\n}\r\n\r\nfunction createLoadOptions(options, externalFilterExpr, hasRows) {\r\n var filterExpressions = createFilterExpressions(options.filters);\r\n var groupingOptions = createGroupingOptions(options.rows, options.rowTake).concat(createGroupingOptions(options.columns, options.columnTake));\r\n var loadOptions = {\r\n groupSummary: [],\r\n totalSummary: [],\r\n group: groupingOptions.length ? groupingOptions : void 0,\r\n take: groupingOptions.length ? void 0 : 1\r\n };\r\n if (options.rows.length && options.rowTake) {\r\n loadOptions.skip = options.rowSkip;\r\n loadOptions.take = options.rowTake;\r\n loadOptions.requireGroupCount = true\r\n } else if (options.columns.length && options.columnTake && !hasRows) {\r\n loadOptions.skip = options.columnSkip;\r\n loadOptions.take = options.columnTake;\r\n loadOptions.requireGroupCount = true\r\n }\r\n if (externalFilterExpr) {\r\n filterExpressions = mergeFilters(filterExpressions, externalFilterExpr)\r\n }\r\n if (filterExpressions.length) {\r\n loadOptions.filter = filterExpressions\r\n }\r\n each(options.values, (_, value) => {\r\n var summaryOption = {\r\n selector: value.dataField,\r\n summaryType: value.summaryType || \"count\"\r\n };\r\n loadOptions.groupSummary.push(summaryOption);\r\n options.includeTotalSummary && loadOptions.totalSummary.push(summaryOption)\r\n });\r\n return loadOptions\r\n}\r\n\r\nfunction setValue(valuesArray, value, rowIndex, columnIndex, dataIndex) {\r\n valuesArray[rowIndex] = valuesArray[rowIndex] || [];\r\n valuesArray[rowIndex][columnIndex] = valuesArray[rowIndex][columnIndex] || [];\r\n if (!isDefined(valuesArray[rowIndex][columnIndex][dataIndex])) {\r\n valuesArray[rowIndex][columnIndex][dataIndex] = value\r\n }\r\n}\r\n\r\nfunction parseValue(value, field) {\r\n if (field && \"number\" === field.dataType && isString(value)) {\r\n return Number(value)\r\n }\r\n if (field && \"date\" === field.dataType && !field.groupInterval && !(value instanceof Date)) {\r\n return dateSerialization.deserializeDate(value)\r\n }\r\n return value\r\n}\r\n\r\nfunction parseResult(data, total, descriptions, result) {\r\n var rowPath = [];\r\n var columnPath = [];\r\n var {\r\n rowHash: rowHash\r\n } = result;\r\n var {\r\n columnHash: columnHash\r\n } = result;\r\n if (total && total.summary) {\r\n each(total.summary, (index, summary) => {\r\n setValue(result.values, summary, result.grandTotalRowIndex, result.grandTotalColumnIndex, index)\r\n })\r\n }\r\n if (total && total.groupCount >= 0) {\r\n var skip = descriptions.rows.length ? descriptions.rowSkip : descriptions.columnSkip;\r\n data = [...Array(skip)].concat(data);\r\n data.length = total.groupCount\r\n }\r\n\r\n function getItem(dataItem, dimensionName, path, level, field) {\r\n var dimensionHash = result[\"\".concat(dimensionName, \"Hash\")];\r\n var parentItem;\r\n var parentItemChildren;\r\n var item;\r\n var pathValue = path.slice(0, level + 1).join(\"/\");\r\n var parentPathValue;\r\n if (void 0 !== dimensionHash[pathValue]) {\r\n item = dimensionHash[pathValue]\r\n } else {\r\n item = {\r\n value: parseValue(dataItem.key, field),\r\n index: result[\"\".concat(dimensionName, \"Index\")]++,\r\n displayText: dataItem.displayText\r\n };\r\n parentPathValue = path.slice(0, level).join(\"/\");\r\n if (level > 0 && void 0 !== dimensionHash[parentPathValue]) {\r\n parentItem = dimensionHash[parentPathValue];\r\n parentItemChildren = parentItem.children = parentItem.children || []\r\n } else {\r\n parentItemChildren = result[\"\".concat(dimensionName, \"s\")]\r\n }\r\n parentItemChildren.push(item);\r\n dimensionHash[pathValue] = item\r\n }\r\n return item\r\n }\r\n forEachGroup(data, (item, level) => {\r\n var rowLevel = level >= descriptions.rows.length ? descriptions.rows.length : level;\r\n var columnLevel = level >= descriptions.rows.length ? level - descriptions.rows.length : 0;\r\n var columnItem;\r\n var rowItem;\r\n if (level >= descriptions.rows.length && columnLevel >= descriptions.columns.length) {\r\n return\r\n }\r\n if (level < descriptions.rows.length) {\r\n columnPath = []\r\n }\r\n if (level >= descriptions.rows.length) {\r\n if (item) {\r\n columnPath[columnLevel] = \"\".concat(item.key);\r\n columnItem = getItem(item, \"column\", columnPath, columnLevel, descriptions.columns[columnLevel]);\r\n rowItem = rowHash[rowPath.slice(0, rowLevel + 1).join(\"/\")]\r\n } else {\r\n result.columns.push({})\r\n }\r\n } else if (item) {\r\n rowPath[rowLevel] = \"\".concat(item.key);\r\n rowItem = getItem(item, \"row\", rowPath, rowLevel, descriptions.rows[rowLevel]);\r\n columnItem = columnHash[columnPath.slice(0, columnLevel + 1).join(\"/\")]\r\n } else {\r\n result.rows.push({})\r\n }\r\n var currentRowIndex = rowItem && rowItem.index || result.grandTotalRowIndex;\r\n var currentColumnIndex = columnItem && columnItem.index || result.grandTotalColumnIndex;\r\n each(item && item.summary || [], (i, summary) => {\r\n setValue(result.values, summary, currentRowIndex, currentColumnIndex, i)\r\n })\r\n });\r\n return result\r\n}\r\n\r\nfunction getFiltersForDimension(fields) {\r\n return (fields || []).filter(f => f.filterValues && f.filterValues.length || f.searchValue)\r\n}\r\n\r\nfunction getExpandedIndex(options, axis) {\r\n if (options.headerName) {\r\n if (axis === options.headerName) {\r\n return options.path.length\r\n }\r\n if (options.oppositePath) {\r\n return options.oppositePath.length\r\n }\r\n }\r\n return 0\r\n}\r\n\r\nfunction getFiltersForExpandedDimension(options) {\r\n return getFiltersByPath(options[options.headerName], options.path).concat(getFiltersByPath(options[\"rows\" === options.headerName ? \"columns\" : \"rows\"], options.oppositePath || []))\r\n}\r\n\r\nfunction getExpandedPathSliceFilter(options, dimensionName, level, firstCollapsedFieldIndex) {\r\n var result = [];\r\n var startSliceIndex = level > firstCollapsedFieldIndex ? 0 : firstCollapsedFieldIndex;\r\n var fields = options.headerName !== dimensionName ? options[dimensionName].slice(startSliceIndex, level) : [];\r\n var paths = \"rows\" === dimensionName ? options.rowExpandedPaths : options.columnExpandedPaths;\r\n each(fields, (index, field) => {\r\n var filterValues = [];\r\n each(paths, (_, path) => {\r\n path = path.slice(startSliceIndex, level);\r\n if (index < path.length) {\r\n var filterValue = path[index];\r\n if (!filterValues.includes(filterValue)) {\r\n filterValues.push(filterValue)\r\n }\r\n }\r\n });\r\n if (filterValues.length) {\r\n result.push(extend({}, field, {\r\n filterType: \"include\",\r\n filterValues: filterValues\r\n }))\r\n }\r\n });\r\n return result\r\n}\r\n\r\nfunction getGrandTotalRequest(options, dimensionName, expandedIndex, expandedLevel, commonFilters, firstCollapsedFieldIndex) {\r\n var expandedPaths = (\"columns\" === dimensionName ? options.columnExpandedPaths : options.rowExpandedPaths) || [];\r\n var oppositeDimensionName = \"columns\" === dimensionName ? \"rows\" : \"columns\";\r\n var fields = options[dimensionName];\r\n var result = [];\r\n var newOptions;\r\n if (expandedPaths.length) {\r\n for (var i = expandedIndex; i < expandedLevel + 1; i += 1) {\r\n newOptions = {\r\n filters: commonFilters.concat(getExpandedPathSliceFilter(options, dimensionName, i, firstCollapsedFieldIndex))\r\n };\r\n newOptions[dimensionName] = fields.slice(expandedIndex, i + 1);\r\n newOptions[oppositeDimensionName] = [];\r\n result.push(extend({}, options, newOptions))\r\n }\r\n } else {\r\n newOptions = {\r\n filters: commonFilters\r\n };\r\n newOptions[dimensionName] = fields.slice(expandedIndex, expandedLevel + 1);\r\n newOptions[oppositeDimensionName] = [];\r\n result.push(extend({}, options, newOptions))\r\n }\r\n result[0].includeTotalSummary = true;\r\n return result\r\n}\r\n\r\nfunction getFirstCollapsedIndex(fields) {\r\n var firstCollapsedIndex = 0;\r\n each(fields, (index, field) => {\r\n if (!field.expanded) {\r\n firstCollapsedIndex = index;\r\n return false\r\n }\r\n return\r\n });\r\n return firstCollapsedIndex\r\n}\r\n\r\nfunction getRequestsData(options) {\r\n var rowExpandedLevel = getExpandedLevel(options, \"rows\");\r\n var columnExpandedLevel = getExpandedLevel(options, \"columns\");\r\n var filters = options.filters || [];\r\n var columnExpandedIndex = getExpandedIndex(options, \"columns\");\r\n var firstCollapsedColumnIndex = getFirstCollapsedIndex(options.columns);\r\n var firstCollapsedRowIndex = getFirstCollapsedIndex(options.rows);\r\n var rowExpandedIndex = getExpandedIndex(options, \"rows\");\r\n var data = [];\r\n filters = filters.concat(getFiltersForDimension(options.rows)).concat(getFiltersForDimension(options.columns)).concat(getFiltersForExpandedDimension(options));\r\n var columnTotalsOptions = getGrandTotalRequest(options, \"columns\", columnExpandedIndex, columnExpandedLevel, filters, firstCollapsedColumnIndex);\r\n if (options.rows.length && options.columns.length) {\r\n if (\"rows\" !== options.headerName) {\r\n data = data.concat(columnTotalsOptions)\r\n }\r\n for (var i = rowExpandedIndex; i < rowExpandedLevel + 1; i += 1) {\r\n var rows = options.rows.slice(rowExpandedIndex, i + 1);\r\n var rowFilterByExpandedPaths = getExpandedPathSliceFilter(options, \"rows\", i, firstCollapsedRowIndex);\r\n for (var j = columnExpandedIndex; j < columnExpandedLevel + 1; j += 1) {\r\n var preparedOptions = extend({}, options, {\r\n columns: options.columns.slice(columnExpandedIndex, j + 1),\r\n rows: rows,\r\n filters: filters.concat(getExpandedPathSliceFilter(options, \"columns\", j, firstCollapsedColumnIndex)).concat(rowFilterByExpandedPaths)\r\n });\r\n data.push(preparedOptions)\r\n }\r\n }\r\n } else {\r\n data = options.columns.length ? columnTotalsOptions : getGrandTotalRequest(options, \"rows\", rowExpandedIndex, rowExpandedLevel, filters, firstCollapsedRowIndex)\r\n }\r\n return data\r\n}\r\n\r\nfunction prepareFields(fields) {\r\n each(fields || [], (_, field) => {\r\n var {\r\n levels: levels\r\n } = field;\r\n if (levels) {\r\n prepareFields(levels)\r\n }\r\n setDefaultFieldValueFormatting(field)\r\n })\r\n}\r\nvar RemoteStore = Class.inherit({\r\n ctor(options) {\r\n this._dataSource = new DataSource(options);\r\n this._store = this._dataSource.store()\r\n },\r\n getFields(fields) {\r\n var d = new Deferred;\r\n this._store.load({\r\n skip: 0,\r\n take: 20\r\n }).done(data => {\r\n var normalizedArguments = normalizeLoadResult(data);\r\n d.resolve(pivotGridUtils.discoverObjectFields(normalizedArguments.data, fields))\r\n }).fail(d.reject);\r\n return d\r\n },\r\n key() {\r\n return this._store.key()\r\n },\r\n load(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n var result = {\r\n rows: [],\r\n columns: [],\r\n values: [],\r\n grandTotalRowIndex: 0,\r\n grandTotalColumnIndex: 0,\r\n rowHash: {},\r\n columnHash: {},\r\n rowIndex: 1,\r\n columnIndex: 1\r\n };\r\n var requestsData = getRequestsData(options);\r\n var deferreds = [];\r\n prepareFields(options.rows);\r\n prepareFields(options.columns);\r\n prepareFields(options.filters);\r\n each(requestsData, (_, dataItem) => {\r\n deferreds.push(that._store.load(createLoadOptions(dataItem, that.filter(), options.rows.length)))\r\n });\r\n when.apply(null, deferreds).done((function() {\r\n var args = deferreds.length > 1 ? arguments : [arguments];\r\n each(args, (index, argument) => {\r\n var normalizedArguments = normalizeLoadResult(argument[0], argument[1]);\r\n parseResult(normalizedArguments.data, normalizedArguments.extra, requestsData[index], result)\r\n });\r\n d.resolve({\r\n rows: result.rows,\r\n columns: result.columns,\r\n values: result.values,\r\n grandTotalRowIndex: result.grandTotalRowIndex,\r\n grandTotalColumnIndex: result.grandTotalColumnIndex\r\n })\r\n })).fail(d.reject);\r\n return d\r\n },\r\n filter() {\r\n return this._dataSource.filter.apply(this._dataSource, arguments)\r\n },\r\n supportPaging: () => false,\r\n createDrillDownDataSource(loadOptions, params) {\r\n loadOptions = loadOptions || {};\r\n params = params || {};\r\n var store = this._store;\r\n var filters = getFiltersByPath(loadOptions.rows, params.rowPath).concat(getFiltersByPath(loadOptions.columns, params.columnPath)).concat(getFiltersForDimension(loadOptions.rows)).concat(loadOptions.filters || []).concat(getFiltersForDimension(loadOptions.columns));\r\n var filterExp = createFilterExpressions(filters);\r\n return new DataSource({\r\n load: loadOptions => store.load(extend({}, loadOptions, {\r\n filter: mergeFilters(filterExp, loadOptions.filter),\r\n select: params.customColumns\r\n }))\r\n })\r\n }\r\n});\r\nexport default {\r\n RemoteStore: RemoteStore\r\n};\r\nexport {\r\n RemoteStore\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/summary_display_modes/m_summary_display_modes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport pivotGridUtils, {\r\n findField,\r\n foreachTree\r\n} from \"../m_widget_utils\";\r\nvar COLUMN = \"column\";\r\nvar ROW = \"row\";\r\nvar NULL = null;\r\nvar calculatePercentValue = function(value, totalValue) {\r\n var result = value / totalValue;\r\n if (!isDefined(value) || isNaN(result)) {\r\n result = NULL\r\n }\r\n return result\r\n};\r\nvar percentOfGrandTotal = function(e, dimension) {\r\n return calculatePercentValue(e.value(), e.grandTotal(dimension).value())\r\n};\r\nvar percentOfParent = function(e, dimension) {\r\n var parent = e.parent(dimension);\r\n var parentValue = parent ? parent.value() : e.value();\r\n return calculatePercentValue(e.value(), parentValue)\r\n};\r\nvar createAbsoluteVariationExp = function(allowCrossGroup) {\r\n return function(e) {\r\n var prevCell = e.prev(COLUMN, allowCrossGroup);\r\n var prevValue = prevCell && prevCell.value();\r\n if (isDefined(prevValue) && isDefined(e.value())) {\r\n return e.value() - prevValue\r\n }\r\n return NULL\r\n }\r\n};\r\nvar createPercentVariationExp = function(allowCrossGroup) {\r\n var absoluteExp = createAbsoluteVariationExp(allowCrossGroup);\r\n return function(e) {\r\n var absVar = absoluteExp(e);\r\n var prevCell = e.prev(COLUMN, allowCrossGroup);\r\n var prevValue = prevCell && prevCell.value();\r\n return absVar !== NULL && prevValue ? absVar / prevValue : NULL\r\n }\r\n};\r\nvar summaryDictionary = {\r\n percentOfColumnTotal: e => percentOfParent(e, ROW),\r\n percentOfRowTotal: e => percentOfParent(e, COLUMN),\r\n percentOfColumnGrandTotal: e => percentOfGrandTotal(e, ROW),\r\n percentOfRowGrandTotal: e => percentOfGrandTotal(e, COLUMN),\r\n percentOfGrandTotal: e => percentOfGrandTotal(e)\r\n};\r\nvar getPrevCellCrossGroup = function getPrevCellCrossGroup(cell, direction) {\r\n if (!cell || !cell.parent(direction)) {\r\n return\r\n }\r\n var prevCell = cell.prev(direction);\r\n if (!prevCell) {\r\n prevCell = getPrevCellCrossGroup(cell.parent(direction), direction)\r\n }\r\n return prevCell\r\n};\r\nvar createRunningTotalExpr = function(field) {\r\n if (!field.runningTotal) {\r\n return\r\n }\r\n var direction = field.runningTotal === COLUMN ? ROW : COLUMN;\r\n return function(e) {\r\n var prevCell = field.allowCrossGroupCalculation ? getPrevCellCrossGroup(e, direction) : e.prev(direction, false);\r\n var value = e.value(true);\r\n var prevValue = prevCell && prevCell.value(true);\r\n if (isDefined(prevValue) && isDefined(value)) {\r\n value = prevValue + value\r\n } else if (isDefined(prevValue)) {\r\n value = prevValue\r\n }\r\n return value\r\n }\r\n};\r\n\r\nfunction createCache() {\r\n return {\r\n fields: {},\r\n positions: {}\r\n }\r\n}\r\n\r\nfunction getFieldPos(descriptions, field, cache) {\r\n var fieldParams = {\r\n index: -1\r\n };\r\n if (!isObject(field)) {\r\n if (cache.fields[field]) {\r\n field = cache[field]\r\n } else {\r\n var allFields = descriptions.columns.concat(descriptions.rows).concat(descriptions.values);\r\n var fieldIndex = findField(allFields, field);\r\n field = cache[field] = allFields[fieldIndex]\r\n }\r\n }\r\n if (field) {\r\n var area = field.area || \"data\";\r\n fieldParams = cache.positions[field.index] = cache.positions[field.index] || {\r\n area: area,\r\n index: descriptions[\"data\" === area ? \"values\" : \"\".concat(area, \"s\")].indexOf(field)\r\n }\r\n }\r\n return fieldParams\r\n}\r\n\r\nfunction getPathFieldName(dimension) {\r\n return dimension === ROW ? \"_rowPath\" : \"_columnPath\"\r\n}\r\nvar SummaryCell = function(columnPath, rowPath, data, descriptions, fieldIndex, fieldsCache) {\r\n this._columnPath = columnPath;\r\n this._rowPath = rowPath;\r\n this._fieldIndex = fieldIndex;\r\n this._fieldsCache = fieldsCache || createCache();\r\n this._data = data;\r\n this._descriptions = descriptions;\r\n var cell = data.values && data.values[rowPath[0].index] && data.values[rowPath[0].index][columnPath[0].index];\r\n if (cell) {\r\n cell.originalCell = cell.originalCell || cell.slice();\r\n cell.postProcessedFlags = cell.postProcessedFlags || [];\r\n this._cell = cell\r\n }\r\n};\r\nSummaryCell.prototype = extend(SummaryCell.prototype, {\r\n _getPath(dimension) {\r\n return this[getPathFieldName(dimension)]\r\n },\r\n _getDimension(dimension) {\r\n dimension = dimension === ROW ? \"rows\" : \"columns\";\r\n return this._descriptions[dimension]\r\n },\r\n _createCell(config) {\r\n return new SummaryCell(config._columnPath || this._columnPath, config._rowPath || this._rowPath, this._data, this._descriptions, this._fieldIndex)\r\n },\r\n parent(direction) {\r\n var path = this._getPath(direction).slice();\r\n var config = {};\r\n path.shift();\r\n if (path.length) {\r\n config[getPathFieldName(direction)] = path;\r\n return this._createCell(config)\r\n }\r\n return NULL\r\n },\r\n children(direction) {\r\n var path = this._getPath(direction).slice();\r\n var item = path[0];\r\n var result = [];\r\n var cellConfig = {};\r\n if (item.children) {\r\n for (var i = 0; i < item.children.length; i += 1) {\r\n cellConfig[getPathFieldName(direction)] = [item.children[i]].concat(path.slice());\r\n result.push(this._createCell(cellConfig))\r\n }\r\n }\r\n return result\r\n },\r\n grandTotal(direction) {\r\n var config = {};\r\n var rowPath = this._rowPath;\r\n var columnPath = this._columnPath;\r\n var dimensionPath = this._getPath(direction);\r\n var pathFieldName = getPathFieldName(direction);\r\n if (!direction) {\r\n config._rowPath = [rowPath[rowPath.length - 1]];\r\n config._columnPath = [columnPath[columnPath.length - 1]]\r\n } else {\r\n config[pathFieldName] = [dimensionPath[dimensionPath.length - 1]]\r\n }\r\n return this._createCell(config)\r\n },\r\n next(direction, allowCrossGroup) {\r\n var currentPath = this._getPath(direction);\r\n var item = currentPath[0];\r\n var parent = this.parent(direction);\r\n var siblings;\r\n if (parent) {\r\n var index = currentPath[1].children.indexOf(item);\r\n siblings = parent.children(direction);\r\n if (siblings[index + 1]) {\r\n return siblings[index + 1]\r\n }\r\n }\r\n if (allowCrossGroup && parent) {\r\n do {\r\n parent = parent.next(direction, allowCrossGroup);\r\n siblings = parent ? parent.children(direction) : []\r\n } while (parent && !siblings.length);\r\n return siblings[0] || NULL\r\n }\r\n return NULL\r\n },\r\n prev(direction, allowCrossGroup) {\r\n var currentPath = this._getPath(direction);\r\n var item = currentPath[0];\r\n var parent = this.parent(direction);\r\n var siblings;\r\n if (parent) {\r\n var index = currentPath[1].children.indexOf(item);\r\n siblings = parent.children(direction);\r\n if (siblings[index - 1]) {\r\n return siblings[index - 1]\r\n }\r\n }\r\n if (allowCrossGroup && parent) {\r\n do {\r\n parent = parent.prev(direction, allowCrossGroup);\r\n siblings = parent ? parent.children(direction) : []\r\n } while (parent && !siblings.length);\r\n return siblings[siblings.length - 1] || NULL\r\n }\r\n return NULL\r\n },\r\n cell() {\r\n return this._cell\r\n },\r\n field(area) {\r\n if (\"data\" === area) {\r\n return this._descriptions.values[this._fieldIndex]\r\n }\r\n var path = this._getPath(area);\r\n var descriptions = this._getDimension(area);\r\n var field = descriptions[path.length - 2];\r\n return field || NULL\r\n },\r\n child(direction, fieldValue) {\r\n var childLevelField;\r\n var children = this.children(direction);\r\n for (var i = 0; i < children.length; i += 1) {\r\n childLevelField = childLevelField || children[i].field(direction);\r\n if (children[i].value(childLevelField) === fieldValue) {\r\n return children[i]\r\n }\r\n }\r\n return NULL\r\n },\r\n slice(field, value) {\r\n var config = {};\r\n var fieldPos = getFieldPos(this._descriptions, field, this._fieldsCache);\r\n var {\r\n area: area\r\n } = fieldPos;\r\n var fieldIndex = fieldPos.index;\r\n var sliceCell = NULL;\r\n if (area === ROW || area === COLUMN) {\r\n var path = this._getPath(area).slice();\r\n var level = -1 !== fieldIndex && path.length - 2 - fieldIndex;\r\n if (path[level]) {\r\n [][path.length - 1] = path[path.length - 1];\r\n for (var i = level; i >= 0; i -= 1) {\r\n if (path[i + 1]) {\r\n var childItems = path[i + 1].children || [];\r\n var currentValue = i === level ? value : path[i].value;\r\n path[i] = void 0;\r\n for (var childIndex = 0; childIndex < childItems.length; childIndex += 1) {\r\n if (childItems[childIndex].value === currentValue) {\r\n path[i] = childItems[childIndex];\r\n break\r\n }\r\n }\r\n }\r\n if (void 0 === path[i]) {\r\n return sliceCell\r\n }\r\n }\r\n config[getPathFieldName(area)] = path;\r\n sliceCell = this._createCell(config)\r\n }\r\n }\r\n return sliceCell\r\n },\r\n value(arg1, arg2) {\r\n var cell = this._cell;\r\n var fieldIndex = this._fieldIndex;\r\n var fistArgIsBoolean = true === arg1 || false === arg1;\r\n var field = !fistArgIsBoolean ? arg1 : NULL;\r\n var needCalculatedValue = fistArgIsBoolean && arg1 || arg2;\r\n if (isDefined(field)) {\r\n var fieldPos = getFieldPos(this._descriptions, field, this._fieldsCache);\r\n fieldIndex = fieldPos.index;\r\n if (\"data\" !== fieldPos.area) {\r\n var path = this._getPath(fieldPos.area);\r\n var level = -1 !== fieldIndex && path.length - 2 - fieldIndex;\r\n return path[level] && path[level].value\r\n }\r\n }\r\n if (cell && cell.originalCell) {\r\n return needCalculatedValue ? cell[fieldIndex] : cell.originalCell[fieldIndex]\r\n }\r\n return NULL\r\n },\r\n isPostProcessed(field) {\r\n var fieldIndex = this._fieldIndex;\r\n if (isDefined(field)) {\r\n var fieldPos = getFieldPos(this._descriptions, field, this._fieldsCache);\r\n fieldIndex = fieldPos.index;\r\n if (\"data\" !== fieldPos.area) {\r\n return false\r\n }\r\n }\r\n return !!(this._cell && this._cell.postProcessedFlags[fieldIndex])\r\n }\r\n});\r\n\r\nfunction getExpression(field) {\r\n var {\r\n summaryDisplayMode: summaryDisplayMode\r\n } = field;\r\n var crossGroupCalculation = field.allowCrossGroupCalculation;\r\n var expression = NULL;\r\n if (isFunction(field.calculateSummaryValue)) {\r\n expression = field.calculateSummaryValue\r\n } else if (summaryDisplayMode) {\r\n if (\"absoluteVariation\" === summaryDisplayMode) {\r\n expression = createAbsoluteVariationExp(crossGroupCalculation)\r\n } else if (\"percentVariation\" === summaryDisplayMode) {\r\n expression = createPercentVariationExp(crossGroupCalculation)\r\n } else {\r\n expression = summaryDictionary[summaryDisplayMode]\r\n }\r\n if (expression && !field.format && -1 !== summaryDisplayMode.indexOf(\"percent\")) {\r\n pivotGridUtils.setFieldProperty(field, \"format\", \"percent\")\r\n }\r\n }\r\n return expression\r\n}\r\n\r\nfunction processDataCell(data, rowIndex, columnIndex, isRunningTotalCalculation) {\r\n var values = data.values[rowIndex][columnIndex] = data.values[rowIndex][columnIndex] || [];\r\n var {\r\n originalCell: originalCell\r\n } = values;\r\n if (!originalCell) {\r\n return\r\n }\r\n if (values.allowResetting || !isRunningTotalCalculation) {\r\n data.values[rowIndex][columnIndex] = originalCell.slice()\r\n }\r\n data.values[rowIndex][columnIndex].allowResetting = isRunningTotalCalculation\r\n}\r\n\r\nfunction applyDisplaySummaryMode(descriptions, data) {\r\n var expressions = [];\r\n var columnElements = [{\r\n index: data.grandTotalColumnIndex,\r\n children: data.columns\r\n }];\r\n var rowElements = [{\r\n index: data.grandTotalRowIndex,\r\n children: data.rows\r\n }];\r\n var valueFields = descriptions.values;\r\n var fieldsCache = createCache();\r\n data.values = data.values || [];\r\n foreachTree(columnElements, columnPath => {\r\n columnPath[0].isEmpty = []\r\n }, false);\r\n foreachTree(rowElements, rowPath => {\r\n var rowItem = rowPath[0];\r\n rowItem.isEmpty = [];\r\n data.values[rowItem.index] = data.values[rowItem.index] || [];\r\n foreachTree(columnElements, columnPath => {\r\n var columnItem = columnPath[0];\r\n var isEmptyCell;\r\n processDataCell(data, rowItem.index, columnItem.index, false);\r\n for (var i = 0; i < valueFields.length; i += 1) {\r\n var field = valueFields[i];\r\n var expression = expressions[i] = void 0 === expressions[i] ? getExpression(field) : expressions[i];\r\n isEmptyCell = false;\r\n if (expression) {\r\n var expressionArg = new SummaryCell(columnPath, rowPath, data, descriptions, i, fieldsCache);\r\n var cell = expressionArg.cell();\r\n var value = cell[i] = expression(expressionArg);\r\n cell.postProcessedFlags[i] = true;\r\n isEmptyCell = null === value || void 0 === value\r\n }\r\n if (void 0 === columnItem.isEmpty[i]) {\r\n columnItem.isEmpty[i] = true\r\n }\r\n if (void 0 === rowItem.isEmpty[i]) {\r\n rowItem.isEmpty[i] = true\r\n }\r\n if (!isEmptyCell) {\r\n rowItem.isEmpty[i] = columnItem.isEmpty[i] = false\r\n }\r\n }\r\n }, false)\r\n }, false);\r\n data.isEmptyGrandTotalRow = rowElements[0].isEmpty;\r\n data.isEmptyGrandTotalColumn = columnElements[0].isEmpty\r\n}\r\n\r\nfunction applyRunningTotal(descriptions, data) {\r\n var expressions = [];\r\n var columnElements = [{\r\n index: data.grandTotalColumnIndex,\r\n children: data.columns\r\n }];\r\n var rowElements = [{\r\n index: data.grandTotalRowIndex,\r\n children: data.rows\r\n }];\r\n var valueFields = descriptions.values;\r\n var fieldsCache = createCache();\r\n data.values = data.values || [];\r\n foreachTree(rowElements, rowPath => {\r\n var rowItem = rowPath[0];\r\n data.values[rowItem.index] = data.values[rowItem.index] || [];\r\n foreachTree(columnElements, columnPath => {\r\n var columnItem = columnPath[0];\r\n processDataCell(data, rowItem.index, columnItem.index, true);\r\n for (var i = 0; i < valueFields.length; i += 1) {\r\n var field = valueFields[i];\r\n var expression = expressions[i] = void 0 === expressions[i] ? createRunningTotalExpr(field) : expressions[i];\r\n if (expression) {\r\n var expressionArg = new SummaryCell(columnPath, rowPath, data, descriptions, i, fieldsCache);\r\n var cell = expressionArg.cell();\r\n cell[i] = expression(expressionArg);\r\n cell.postProcessedFlags[i] = true\r\n }\r\n }\r\n }, false)\r\n }, false)\r\n}\r\n\r\nfunction createMockSummaryCell(descriptions, fields, indices) {\r\n var summaryCell = new SummaryCell([], [], {}, descriptions, 0);\r\n summaryCell.value = function(fieldId) {\r\n if (isDefined(fieldId)) {\r\n var index = findField(fields, fieldId);\r\n var field = fields[index];\r\n if (!indices[index] && field && !isDefined(field.area)) {\r\n descriptions.values.push(field);\r\n indices[index] = true\r\n }\r\n }\r\n };\r\n summaryCell.grandTotal = function() {\r\n return this\r\n };\r\n summaryCell.children = function() {\r\n return []\r\n };\r\n return summaryCell\r\n}\r\nexport default {\r\n Cell: SummaryCell,\r\n summaryDictionary: summaryDictionary,\r\n getExpression: getExpression,\r\n applyRunningTotal: applyRunningTotal,\r\n createMockSummaryCell: createMockSummaryCell,\r\n applyDisplaySummaryMode: applyDisplaySummaryMode\r\n};\r\nexport {\r\n applyDisplaySummaryMode,\r\n applyRunningTotal,\r\n SummaryCell as Cell,\r\n createMockSummaryCell,\r\n getExpression,\r\n summaryDictionary\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/xmla_store/m_xmla_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n format as stringFormat\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n errors\r\n} from \"../../../../data/errors\";\r\nimport {\r\n getLanguageId\r\n} from \"../../../../localization/language_codes\";\r\nimport pivotGridUtils, {\r\n foreachTree,\r\n getExpandedLevel,\r\n storeDrillDownMixin\r\n} from \"../m_widget_utils\";\r\nvar window = getWindow();\r\nvar XmlaStore = Class.inherit(function() {\r\n var discover = '<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\"><Body><Discover xmlns=\"urn:schemas-microsoft-com:xml-analysis\"><RequestType>{2}</RequestType><Restrictions><RestrictionList><CATALOG_NAME>{0}</CATALOG_NAME><CUBE_NAME>{1}</CUBE_NAME></RestrictionList></Restrictions><Properties><PropertyList><Catalog>{0}</Catalog>{3}</PropertyList></Properties></Discover></Body></Envelope>';\r\n var mdx = \"SELECT {2} FROM {0} {1} CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS\";\r\n\r\n function execXMLA(requestOptions, data) {\r\n var deferred = new Deferred;\r\n var {\r\n beforeSend: beforeSend\r\n } = requestOptions;\r\n var ajaxSettings = {\r\n url: requestOptions.url,\r\n dataType: \"text\",\r\n data: data,\r\n headers: {\r\n \"Content-Type\": \"text/xml\"\r\n },\r\n xhrFields: {},\r\n method: \"POST\"\r\n };\r\n if (isFunction(beforeSend)) {\r\n beforeSend(ajaxSettings)\r\n }\r\n pivotGridUtils.sendRequest(ajaxSettings).fail((function() {\r\n deferred.reject(arguments)\r\n })).done(text => {\r\n var parser = new window.DOMParser;\r\n var xml;\r\n try {\r\n try {\r\n xml = parser.parseFromString(text, \"text/xml\")\r\n } catch (e) {\r\n xml = void 0\r\n }\r\n if (!xml || xml.getElementsByTagName(\"parsererror\").length || 0 === xml.childNodes.length) {\r\n throw new errors.Error(\"E4023\", text)\r\n }\r\n } catch (e) {\r\n deferred.reject({\r\n statusText: e.message,\r\n stack: e.stack,\r\n responseText: text\r\n })\r\n }\r\n deferred.resolve(xml)\r\n });\r\n return deferred\r\n }\r\n\r\n function getLocaleIdProperty() {\r\n var languageId = getLanguageId();\r\n if (void 0 !== languageId) {\r\n return stringFormat(\"<LocaleIdentifier>{0}</LocaleIdentifier>\", languageId)\r\n }\r\n return \"\"\r\n }\r\n\r\n function getAllMember(dimension) {\r\n return \"\".concat(dimension.hierarchyName || dimension.dataField, \".[All]\")\r\n }\r\n\r\n function getAllMembers(field) {\r\n var result = \"\".concat(field.dataField, \".allMembers\");\r\n var {\r\n searchValue: searchValue\r\n } = field;\r\n if (searchValue) {\r\n searchValue = searchValue.replace(/'/g, \"''\");\r\n result = \"Filter(\".concat(result, \", instr(\").concat(field.dataField, \".currentmember.member_caption,'\").concat(searchValue, \"') > 0)\")\r\n }\r\n return result\r\n }\r\n\r\n function crossJoinElements(elements) {\r\n var elementsString = elements.join(\",\");\r\n return elements.length > 1 ? stringFormat(\"CrossJoin({0})\", elementsString) : elementsString\r\n }\r\n\r\n function generateCrossJoin(path, expandLevel, expandAllCount, expandIndex, slicePath, options, axisName, take) {\r\n var crossJoinArgs = [];\r\n var dimensions = options[axisName];\r\n var fields = [];\r\n var arg;\r\n var prevDimension;\r\n var member;\r\n for (var i = expandIndex; i <= expandLevel; i += 1) {\r\n var field = dimensions[i];\r\n var {\r\n dataField: dataField\r\n } = field;\r\n var prevHierarchyName = dimensions[i - 1] && dimensions[i - 1].hierarchyName;\r\n var {\r\n hierarchyName: hierarchyName\r\n } = field;\r\n var isLastDimensionInGroup = !hierarchyName || !dimensions[i + 1] || dimensions[i + 1].hierarchyName !== hierarchyName;\r\n var expandAllIndex = path.length + expandAllCount + expandIndex;\r\n arg = null;\r\n fields.push(field);\r\n if (i < path.length) {\r\n if (isLastDimensionInGroup) {\r\n arg = \"(\".concat(dataField, \".\").concat(preparePathValue(path[i], dataField), \")\")\r\n }\r\n } else if (i <= expandAllIndex) {\r\n if (0 === i && 0 === expandAllCount) {\r\n var allMember = getAllMember(dimensions[expandIndex]);\r\n if (!hierarchyName) {\r\n arg = getAllMembers(dimensions[expandIndex])\r\n } else {\r\n arg = \"\".concat(allMember, \",\").concat(dimensions[expandIndex].dataField)\r\n }\r\n } else if (hierarchyName) {\r\n member = preparePathValue(slicePath[slicePath.length - 1]);\r\n if (isLastDimensionInGroup || i === expandAllIndex) {\r\n if (prevHierarchyName === hierarchyName) {\r\n if (slicePath.length) {\r\n prevDimension = dimensions[slicePath.length - 1]\r\n }\r\n if (!prevDimension || prevDimension.hierarchyName !== hierarchyName) {\r\n prevDimension = dimensions[i - 1];\r\n member = \"\"\r\n }\r\n arg = (level = prevDimension.dataField, levelMember = member, nextLevel = dataField, memberExpression = void 0, memberExpression = levelMember || level, \"Descendants({\".concat(memberExpression, \"}, \").concat(nextLevel, \", SELF_AND_BEFORE)\"))\r\n } else {\r\n arg = getAllMembers(field)\r\n }\r\n }\r\n } else {\r\n arg = getAllMembers(field)\r\n }\r\n } else {\r\n var isFirstDimensionInGroup = !hierarchyName || prevHierarchyName !== hierarchyName;\r\n if (isFirstDimensionInGroup) {\r\n arg = \"(\".concat(getAllMember(field), \")\")\r\n }\r\n }\r\n if (arg) {\r\n arg = stringFormat(\"{{0}}\", arg);\r\n if (take) {\r\n var sortBy = (field.hierarchyName || field.dataField) + (\"displayText\" === field.sortBy ? \".MEMBER_CAPTION\" : \".MEMBER_VALUE\");\r\n arg = stringFormat(\"Order({0}, {1}, {2})\", arg, sortBy, \"desc\" === field.sortOrder ? \"DESC\" : \"ASC\")\r\n }\r\n crossJoinArgs.push(arg)\r\n }\r\n }\r\n var level, levelMember, nextLevel, memberExpression;\r\n return crossJoinElements(crossJoinArgs)\r\n }\r\n\r\n function fillCrossJoins(crossJoins, path, expandLevel, expandIndex, slicePath, options, axisName, cellsString, take, totalsOnly) {\r\n var expandAllCount = -1;\r\n var dimensions = options[axisName];\r\n var dimensionIndex;\r\n do {\r\n expandAllCount += 1;\r\n dimensionIndex = path.length + expandAllCount + expandIndex;\r\n var crossJoin = generateCrossJoin(path, expandLevel, expandAllCount, expandIndex, slicePath, options, axisName, take);\r\n if (!take && !totalsOnly) {\r\n crossJoin = stringFormat(\"NonEmpty({0}, {1})\", crossJoin, cellsString)\r\n }\r\n crossJoins.push(crossJoin)\r\n } while (dimensions[dimensionIndex] && dimensions[dimensionIndex + 1] && dimensions[dimensionIndex].expanded)\r\n }\r\n\r\n function declare(expression, withArray, name, type) {\r\n name = name || \"[DX_Set_\".concat(withArray.length, \"]\");\r\n type = type || \"set\";\r\n withArray.push(stringFormat(\"{0} {1} as {2}\", type, name, expression));\r\n return name\r\n }\r\n\r\n function generateAxisMdx(options, axisName, cells, withArray, parseOptions) {\r\n var dimensions = options[axisName];\r\n var crossJoins = [];\r\n var path = [];\r\n var expandedPaths = [];\r\n var expandIndex = 0;\r\n var expandLevel = 0;\r\n var result = [];\r\n var cellsString = stringFormat(\"{{0}}\", cells.join(\",\"));\r\n if (dimensions && dimensions.length) {\r\n if (options.headerName === axisName) {\r\n path = options.path;\r\n expandIndex = path.length\r\n } else if (options.headerName && options.oppositePath) {\r\n path = options.oppositePath;\r\n expandIndex = path.length\r\n } else {\r\n expandedPaths = (\"columns\" === axisName ? options.columnExpandedPaths : options.rowExpandedPaths) || expandedPaths\r\n }\r\n expandLevel = getExpandedLevel(options, axisName);\r\n fillCrossJoins(crossJoins, [], expandLevel, expandIndex, path, options, axisName, cellsString, \"rows\" === axisName ? options.rowTake : options.columnTake, options.totalsOnly);\r\n each(expandedPaths, (_, expandedPath) => {\r\n fillCrossJoins(crossJoins, expandedPath, expandLevel, expandIndex, expandedPath, options, axisName, cellsString)\r\n });\r\n for (var i = expandLevel; i >= path.length; i -= 1) {\r\n if (dimensions[i].hierarchyName) {\r\n parseOptions.visibleLevels[dimensions[i].hierarchyName] = parseOptions.visibleLevels[dimensions[i].hierarchyName] || [];\r\n parseOptions.visibleLevels[dimensions[i].hierarchyName].push(dimensions[i].dataField)\r\n }\r\n }\r\n }\r\n if (crossJoins.length) {\r\n var expression = (elements = crossJoins, elementsString = elements.join(\",\"), elements.length > 1 ? \"Union(\".concat(elementsString, \")\") : elementsString);\r\n if (\"rows\" === axisName && options.rowTake) {\r\n expression = stringFormat(\"Subset({0}, {1}, {2})\", expression, options.rowSkip > 0 ? options.rowSkip + 1 : 0, options.rowSkip > 0 ? options.rowTake : options.rowTake + 1)\r\n }\r\n if (\"columns\" === axisName && options.columnTake) {\r\n expression = stringFormat(\"Subset({0}, {1}, {2})\", expression, options.columnSkip > 0 ? options.columnSkip + 1 : 0, options.columnSkip > 0 ? options.columnTake : options.columnTake + 1)\r\n }\r\n var axisSet = \"[DX_\".concat(axisName, \"]\");\r\n result.push(declare(expression, withArray, axisSet));\r\n if (options.totalsOnly) {\r\n result.push(declare(\"COUNT(\".concat(axisSet, \")\"), withArray, \"[DX_\".concat(axisName, \"_count]\"), \"member\"))\r\n }\r\n }\r\n var elements, elementsString;\r\n if (\"columns\" === axisName && cells.length && !options.skipValues) {\r\n result.push(cellsString)\r\n }\r\n return stringFormat(\"{0} DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME, MEMBER_VALUE ON {1}\", crossJoinElements(result), axisName)\r\n }\r\n\r\n function generateAxisFieldsFilter(fields) {\r\n var filterMembers = [];\r\n each(fields, (_, field) => {\r\n var {\r\n dataField: dataField\r\n } = field;\r\n var filterExpression = [];\r\n var filterValues = field.filterValues || [];\r\n var filterStringExpression;\r\n if (field.hierarchyName && isNumeric(field.groupIndex)) {\r\n return\r\n }\r\n each(filterValues, (_, filterValue) => {\r\n var filterMdx = \"\".concat(dataField, \".\").concat(preparePathValue(Array.isArray(filterValue) ? filterValue[filterValue.length - 1] : filterValue, dataField));\r\n if (\"exclude\" === field.filterType) {\r\n filterExpression.push(\"\".concat(filterMdx, \".parent\"));\r\n filterMdx = \"Descendants(\".concat(filterMdx, \")\")\r\n }\r\n filterExpression.push(filterMdx)\r\n });\r\n if (filterValues.length) {\r\n filterStringExpression = stringFormat(\"{{0}}\", filterExpression.join(\",\"));\r\n if (\"exclude\" === field.filterType) {\r\n filterStringExpression = \"Except(\".concat(getAllMembers(field), \",\").concat(filterStringExpression, \")\")\r\n }\r\n filterMembers.push(filterStringExpression)\r\n }\r\n });\r\n return filterMembers.length ? crossJoinElements(filterMembers) : \"\"\r\n }\r\n\r\n function generateFrom(columnsFilter, rowsFilter, filter, cubeName) {\r\n var from = \"[\".concat(cubeName, \"]\");\r\n each([columnsFilter, rowsFilter, filter], (_, filter) => {\r\n if (filter) {\r\n from = stringFormat(\"(SELECT {0} FROM {1})\", \"\".concat(filter, \"on 0\"), from)\r\n }\r\n });\r\n return from\r\n }\r\n\r\n function generateMdxCore(axisStrings, withArray, columns, rows, filters, slice, cubeName) {\r\n var options = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : {};\r\n var mdxString = \"\";\r\n var withString = \"\".concat(withArray.length ? \"with \".concat(withArray.join(\" \")) : \"\", \" \");\r\n if (axisStrings.length) {\r\n var select;\r\n if (options.totalsOnly) {\r\n var countMembers = [];\r\n if (rows.length) {\r\n countMembers.push(\"[DX_rows_count]\")\r\n }\r\n if (columns.length) {\r\n countMembers.push(\"[DX_columns_count]\")\r\n }\r\n select = \"{\".concat(countMembers.join(\",\"), \"} on columns\")\r\n } else {\r\n select = axisStrings.join(\",\")\r\n }\r\n mdxString = withString + stringFormat(mdx, generateFrom(generateAxisFieldsFilter(columns), generateAxisFieldsFilter(rows), generateAxisFieldsFilter(filters || []), cubeName), slice.length ? stringFormat(\"WHERE ({0})\", slice.join(\",\")) : \"\", select)\r\n }\r\n return mdxString\r\n }\r\n\r\n function prepareDataFields(withArray, valueFields) {\r\n return map(valueFields, cell => {\r\n if (isString(cell.expression)) {\r\n declare(cell.expression, withArray, cell.dataField, \"member\")\r\n }\r\n return cell.dataField\r\n })\r\n }\r\n\r\n function addSlices(slices, options, headerName, path) {\r\n each(path, (index, value) => {\r\n var dimension = options[headerName][index];\r\n if (!dimension.hierarchyName || dimension.hierarchyName !== options[headerName][index + 1].hierarchyName) {\r\n slices.push(\"\".concat(dimension.dataField, \".\").concat(preparePathValue(value, dimension.dataField)))\r\n }\r\n })\r\n }\r\n\r\n function generateMDX(options, cubeName, parseOptions) {\r\n var columns = options.columns || [];\r\n var rows = options.rows || [];\r\n var values = options.values && options.values.length ? options.values : [{\r\n dataField: \"[Measures]\"\r\n }];\r\n var slice = [];\r\n var withArray = [];\r\n var axisStrings = [];\r\n var dataFields = prepareDataFields(withArray, values);\r\n parseOptions.measureCount = options.skipValues ? 1 : values.length;\r\n parseOptions.visibleLevels = {};\r\n if (options.headerName && options.path) {\r\n addSlices(slice, options, options.headerName, options.path)\r\n }\r\n if (options.headerName && options.oppositePath) {\r\n addSlices(slice, options, \"rows\" === options.headerName ? \"columns\" : \"rows\", options.oppositePath)\r\n }\r\n if (columns.length || dataFields.length) {\r\n axisStrings.push(generateAxisMdx(options, \"columns\", dataFields, withArray, parseOptions))\r\n }\r\n if (rows.length) {\r\n axisStrings.push(generateAxisMdx(options, \"rows\", dataFields, withArray, parseOptions))\r\n }\r\n return generateMdxCore(axisStrings, withArray, columns, rows, options.filters, slice, cubeName, options)\r\n }\r\n\r\n function createDrillDownAxisSlice(slice, fields, path) {\r\n each(path, (index, value) => {\r\n var field = fields[index];\r\n if (field.hierarchyName && (fields[index + 1] || {}).hierarchyName === field.hierarchyName) {\r\n return\r\n }\r\n slice.push(\"\".concat(field.dataField, \".\").concat(preparePathValue(value, field.dataField)))\r\n })\r\n }\r\n\r\n function getNumber(str) {\r\n return parseInt(str, 10)\r\n }\r\n\r\n function getFirstChildText(node, childTagName) {\r\n return getNodeText(function(node, tagName) {\r\n return (node.getElementsByTagName(tagName) || [])[0]\r\n }(node, childTagName))\r\n }\r\n\r\n function getNodeText(node) {\r\n return node && (node.textContent || node.text || node.innerHTML) || \"\"\r\n }\r\n\r\n function parseCells(xml, axes, measureCount) {\r\n var cells = [];\r\n var cell = [];\r\n var index = 0;\r\n var cellsOriginal = [];\r\n var cellElements = xml.getElementsByTagName(\"Cell\");\r\n var errorDictionary = {};\r\n for (var i = 0; i < cellElements.length; i += 1) {\r\n var xmlCell = cellElements[i];\r\n var valueElement = xmlCell.getElementsByTagName(\"Value\")[0];\r\n var errorElements = valueElement && valueElement.getElementsByTagName(\"Error\") || [];\r\n var text = 0 === errorElements.length ? getNodeText(valueElement) : \"#N/A\";\r\n var value = parseFloat(text);\r\n var _isNumeric = text - value + 1 > 0;\r\n var cellOrdinal = getNumber(xmlCell.getAttribute(\"CellOrdinal\"));\r\n if (errorElements.length) {\r\n errorDictionary[getNodeText(errorElements[0].getElementsByTagName(\"ErrorCode\")[0])] = getNodeText(errorElements[0].getElementsByTagName(\"Description\")[0])\r\n }\r\n cellsOriginal[cellOrdinal] = {\r\n value: _isNumeric ? value : text || null\r\n }\r\n }\r\n each(axes[1], () => {\r\n var row = [];\r\n cells.push(row);\r\n each(axes[0], () => {\r\n var measureIndex = index % measureCount;\r\n if (0 === measureIndex) {\r\n cell = [];\r\n row.push(cell)\r\n }\r\n cell.push(cellsOriginal[index] ? cellsOriginal[index].value : null);\r\n index += 1\r\n })\r\n });\r\n Object.keys(errorDictionary).forEach(key => {\r\n errors.log(\"W4002\", errorDictionary[key])\r\n });\r\n return cells\r\n }\r\n\r\n function preparePathValue(pathValue, dataField) {\r\n if (pathValue) {\r\n pathValue = isString(pathValue) && pathValue.includes(\"&\") ? pathValue : \"[\".concat(pathValue, \"]\");\r\n if (dataField && 0 === pathValue.indexOf(\"\".concat(dataField, \".\"))) {\r\n pathValue = pathValue.slice(dataField.length + 1, pathValue.length)\r\n }\r\n }\r\n return pathValue\r\n }\r\n\r\n function getItem(hash, name, member, index) {\r\n var item = hash[name];\r\n if (!item) {\r\n item = {};\r\n hash[name] = item\r\n }\r\n if (!isDefined(item.value) && member) {\r\n item.text = member.caption;\r\n item.value = member.value;\r\n item.key = name || \"\";\r\n item.levelName = member.levelName;\r\n item.hierarchyName = member.hierarchyName;\r\n item.parentName = member.parentName;\r\n item.index = index;\r\n item.level = member.level\r\n }\r\n return item\r\n }\r\n\r\n function getVisibleChildren(item, visibleLevels) {\r\n var result = [];\r\n var children = item.children && (item.children.length ? item.children : Object.keys(item.children.grandTotalHash || {}).reduce((result, name) => result.concat(item.children.grandTotalHash[name].children), []));\r\n var firstChild = children && children[0];\r\n if (firstChild && (visibleLevels[firstChild.hierarchyName] && visibleLevels[firstChild.hierarchyName].includes(firstChild.levelName) || !visibleLevels[firstChild.hierarchyName] || 0 === firstChild.level)) {\r\n var newChildren = children.filter(child => child.hierarchyName === firstChild.hierarchyName);\r\n newChildren.grandTotalHash = children.grandTotalHash;\r\n return newChildren\r\n }\r\n if (firstChild) {\r\n for (var i = 0; i < children.length; i += 1) {\r\n if (children[i].hierarchyName === firstChild.hierarchyName) {\r\n result.push.apply(result, getVisibleChildren(children[i], visibleLevels))\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n\r\n function fillDataSourceAxes(dataSourceAxis, axisTuples, measureCount, visibleLevels) {\r\n var result = [];\r\n each(axisTuples, (tupleIndex, members) => {\r\n var parentItem = {\r\n children: result\r\n };\r\n var dataIndex = isDefined(measureCount) ? Math.floor(tupleIndex / measureCount) : tupleIndex;\r\n each(members, (_, member) => {\r\n parentItem = function(dataIndex, member, parentItem) {\r\n var children = parentItem.children = parentItem.children || [];\r\n var hash = children.hash = children.hash || {};\r\n var grandTotalHash = children.grandTotalHash = children.grandTotalHash || {};\r\n if (member.parentName) {\r\n parentItem = getItem(hash, member.parentName);\r\n children = parentItem.children = parentItem.children || []\r\n }\r\n var currentItem = getItem(hash, member.name, member, dataIndex);\r\n if (member.hasValue && !currentItem.added) {\r\n currentItem.index = dataIndex;\r\n currentItem.added = true;\r\n children.push(currentItem)\r\n }\r\n if ((!parentItem.value || !parentItem.parentName) && member.parentName) {\r\n grandTotalHash[member.parentName] = parentItem\r\n } else if (grandTotalHash[parentItem.name]) {\r\n delete grandTotalHash[member.parentName]\r\n }\r\n return currentItem\r\n }(dataIndex, member, parentItem)\r\n })\r\n });\r\n var parentItem = {\r\n children: result\r\n };\r\n parentItem.children = getVisibleChildren(parentItem, visibleLevels);\r\n var grandTotalIndex = function(parentItem, visibleLevels) {\r\n var grandTotalIndex;\r\n if (1 === parentItem.children.length && \"\" === parentItem.children[0].parentName) {\r\n grandTotalIndex = parentItem.children[0].index;\r\n var {\r\n grandTotalHash: grandTotalHash\r\n } = parentItem.children;\r\n parentItem.children = parentItem.children[0].children || [];\r\n parentItem.children.grandTotalHash = grandTotalHash;\r\n parentItem.children = getVisibleChildren(parentItem, visibleLevels)\r\n } else if (0 === parentItem.children.length) {\r\n grandTotalIndex = 0\r\n }\r\n return grandTotalIndex\r\n }(parentItem, visibleLevels);\r\n foreachTree(parentItem.children, items => {\r\n var item = items[0];\r\n var children = getVisibleChildren(item, visibleLevels);\r\n if (children.length) {\r\n item.children = children\r\n } else {\r\n delete item.children\r\n }\r\n delete item.levelName;\r\n delete item.hierarchyName;\r\n delete item.added;\r\n delete item.parentName;\r\n delete item.level\r\n }, true);\r\n each(parentItem.children || [], (_, e) => {\r\n dataSourceAxis.push(e)\r\n });\r\n return grandTotalIndex\r\n }\r\n\r\n function checkError(xml) {\r\n var faultElementNS = xml.getElementsByTagName(\"soap:Fault\");\r\n var faultElement = xml.getElementsByTagName(\"Fault\");\r\n var errorElement = $([].slice.call(faultElement.length ? faultElement : faultElementNS)).find(\"Error\");\r\n if (errorElement.length) {\r\n var description = errorElement.attr(\"Description\");\r\n var error = new errors.Error(\"E4000\", description);\r\n errors.log(\"E4000\", description);\r\n return error\r\n }\r\n return null\r\n }\r\n\r\n function parseResult(xml, parseOptions) {\r\n var dataSource = {\r\n columns: [],\r\n rows: []\r\n };\r\n var {\r\n measureCount: measureCount\r\n } = parseOptions;\r\n var axes = function(xml, skipValues) {\r\n var axes = [];\r\n each(xml.getElementsByTagName(\"Axis\"), (_, axisElement) => {\r\n var name = axisElement.getAttribute(\"name\");\r\n var axis = [];\r\n var index = 0;\r\n if (0 === name.indexOf(\"Axis\") && isNumeric(getNumber(name.substr(4)))) {\r\n axes.push(axis);\r\n each(axisElement.getElementsByTagName(\"Tuple\"), (_, tupleElement) => {\r\n var tupleMembers = tupleElement.childNodes;\r\n var levelSum = 0;\r\n var members = [];\r\n var membersCount = skipValues ? tupleMembers.length : tupleMembers.length - 1;\r\n var isAxisWithMeasure = 1 === axes.length;\r\n if (isAxisWithMeasure) {\r\n membersCount -= 1\r\n }\r\n axis.push(members);\r\n for (var i = membersCount; i >= 0; i -= 1) {\r\n var tuple = tupleMembers[i];\r\n var level = getNumber(getFirstChildText(tuple, \"LNum\"));\r\n members[i] = {\r\n caption: getFirstChildText(tuple, \"Caption\"),\r\n value: (valueText = getFirstChildText(tuple, \"MEMBER_VALUE\"), isNumeric(valueText) ? parseFloat(valueText) : valueText),\r\n level: level,\r\n index: index++,\r\n hasValue: !levelSum && (!!level || 0 === i),\r\n name: getFirstChildText(tuple, \"UName\"),\r\n hierarchyName: tupleMembers[i].getAttribute(\"Hierarchy\"),\r\n parentName: getFirstChildText(tuple, \"PARENT_UNIQUE_NAME\"),\r\n levelName: getFirstChildText(tuple, \"LName\")\r\n };\r\n levelSum += level\r\n }\r\n var valueText\r\n })\r\n }\r\n });\r\n while (axes.length < 2) {\r\n axes.push([\r\n [{\r\n level: 0\r\n }]\r\n ])\r\n }\r\n return axes\r\n }(xml, parseOptions.skipValues);\r\n dataSource.grandTotalColumnIndex = fillDataSourceAxes(dataSource.columns, axes[0], measureCount, parseOptions.visibleLevels);\r\n dataSource.grandTotalRowIndex = fillDataSourceAxes(dataSource.rows, axes[1], void 0, parseOptions.visibleLevels);\r\n dataSource.values = parseCells(xml, axes, measureCount);\r\n return dataSource\r\n }\r\n\r\n function parseDiscoverRowSet(xml, schema, dimensions, translatedDisplayFolders) {\r\n var result = [];\r\n var isMeasure = \"MEASURE\" === schema;\r\n var displayFolderField = isMeasure ? \"MEASUREGROUP_NAME\" : \"\".concat(schema, \"_DISPLAY_FOLDER\");\r\n each(xml.getElementsByTagName(\"row\"), (_, row) => {\r\n var hierarchyName = \"LEVEL\" === schema ? getFirstChildText(row, \"HIERARCHY_UNIQUE_NAME\") : void 0;\r\n var levelNumber = getFirstChildText(row, \"LEVEL_NUMBER\");\r\n var displayFolder = getFirstChildText(row, displayFolderField);\r\n if (isMeasure) {\r\n displayFolder = translatedDisplayFolders[displayFolder] || displayFolder\r\n }\r\n if ((\"0\" !== levelNumber || \"true\" !== getFirstChildText(row, \"\".concat(schema, \"_IS_VISIBLE\"))) && \"2\" !== getFirstChildText(row, \"DIMENSION_TYPE\")) {\r\n var dimension = isMeasure ? \"DX_MEASURES\" : getFirstChildText(row, \"DIMENSION_UNIQUE_NAME\");\r\n var dataField = getFirstChildText(row, \"\".concat(schema, \"_UNIQUE_NAME\"));\r\n result.push({\r\n dimension: dimensions.names[dimension] || dimension,\r\n groupIndex: levelNumber ? getNumber(levelNumber) - 1 : void 0,\r\n dataField: dataField,\r\n caption: getFirstChildText(row, \"\".concat(schema, \"_CAPTION\")),\r\n hierarchyName: hierarchyName,\r\n groupName: hierarchyName,\r\n displayFolder: displayFolder,\r\n isMeasure: isMeasure,\r\n isDefault: !!dimensions.defaultHierarchies[dataField]\r\n })\r\n }\r\n });\r\n return result\r\n }\r\n\r\n function parseStringWithUnicodeSymbols(str) {\r\n str = str.replace(/_x(....)_/g, (_, group1) => String.fromCharCode(parseInt(group1, 16)));\r\n var stringArray = str.match(/\\[.+?\\]/gi);\r\n if (stringArray && stringArray.length) {\r\n str = stringArray[stringArray.length - 1]\r\n }\r\n return str.replace(/\\[/gi, \"\").replace(/\\]/gi, \"\").replace(/\\$/gi, \"\").replace(/\\./gi, \" \")\r\n }\r\n\r\n function sendQuery(storeOptions, mdxString) {\r\n mdxString = $(\"<div>\").text(mdxString).html();\r\n return execXMLA(storeOptions, stringFormat('<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\"><Body><Execute xmlns=\"urn:schemas-microsoft-com:xml-analysis\"><Command><Statement>{0}</Statement></Command><Properties><PropertyList><Catalog>{1}</Catalog><ShowHiddenCubes>True</ShowHiddenCubes><SspropInitAppName>Microsoft SQL Server Management Studio</SspropInitAppName><Timeout>3600</Timeout>{2}</PropertyList></Properties></Execute></Body></Envelope>', mdxString, storeOptions.catalog, getLocaleIdProperty()))\r\n }\r\n return {\r\n ctor(options) {\r\n this._options = options\r\n },\r\n getFields() {\r\n var options = this._options;\r\n var {\r\n catalog: catalog\r\n } = options;\r\n var {\r\n cube: cube\r\n } = options;\r\n var localeIdProperty = getLocaleIdProperty();\r\n var dimensionsRequest = execXMLA(options, stringFormat(discover, catalog, cube, \"MDSCHEMA_DIMENSIONS\", localeIdProperty));\r\n var measuresRequest = execXMLA(options, stringFormat(discover, catalog, cube, \"MDSCHEMA_MEASURES\", localeIdProperty));\r\n var hierarchiesRequest = execXMLA(options, stringFormat(discover, catalog, cube, \"MDSCHEMA_HIERARCHIES\", localeIdProperty));\r\n var levelsRequest = execXMLA(options, stringFormat(discover, catalog, cube, \"MDSCHEMA_LEVELS\", localeIdProperty));\r\n var result = new Deferred;\r\n when(dimensionsRequest, measuresRequest, hierarchiesRequest, levelsRequest).then((dimensionsResponse, measuresResponse, hierarchiesResponse, levelsResponse) => {\r\n execXMLA(options, stringFormat(discover, catalog, cube, \"MDSCHEMA_MEASUREGROUPS\", localeIdProperty)).done(measureGroupsResponse => {\r\n var dimensions = function(xml) {\r\n var result = {\r\n names: {},\r\n defaultHierarchies: {}\r\n };\r\n each($(xml).find(\"row\"), (function() {\r\n var $row = $(this);\r\n var type = $row.children(\"DIMENSION_TYPE\").text();\r\n var dimensionName = \"2\" === type ? \"DX_MEASURES\" : $row.children(\"DIMENSION_UNIQUE_NAME\").text();\r\n result.names[dimensionName] = $row.children(\"DIMENSION_CAPTION\").text();\r\n result.defaultHierarchies[$row.children(\"DEFAULT_HIERARCHY\").text()] = true\r\n }));\r\n return result\r\n }(dimensionsResponse);\r\n var hierarchies = parseDiscoverRowSet(hierarchiesResponse, \"HIERARCHY\", dimensions);\r\n var levels = parseDiscoverRowSet(levelsResponse, \"LEVEL\", dimensions);\r\n var measureGroups = function(xml) {\r\n var measureGroups = {};\r\n each(xml.getElementsByTagName(\"row\"), (_, row) => {\r\n measureGroups[getFirstChildText(row, \"MEASUREGROUP_NAME\")] = getFirstChildText(row, \"MEASUREGROUP_CAPTION\")\r\n });\r\n return measureGroups\r\n }(measureGroupsResponse);\r\n var fields = parseDiscoverRowSet(measuresResponse, \"MEASURE\", dimensions, measureGroups).concat(hierarchies);\r\n var levelsByHierarchy = {};\r\n each(levels, (_, level) => {\r\n levelsByHierarchy[level.hierarchyName] = levelsByHierarchy[level.hierarchyName] || [];\r\n levelsByHierarchy[level.hierarchyName].push(level)\r\n });\r\n each(hierarchies, (_, hierarchy) => {\r\n if (levelsByHierarchy[hierarchy.dataField] && levelsByHierarchy[hierarchy.dataField].length > 1) {\r\n hierarchy.groupName = hierarchy.hierarchyName = hierarchy.dataField;\r\n fields.push.apply(fields, levelsByHierarchy[hierarchy.hierarchyName])\r\n }\r\n });\r\n result.resolve(fields)\r\n }).fail(result.reject)\r\n }).fail(result.reject);\r\n return result\r\n },\r\n load(options) {\r\n var result = new Deferred;\r\n var storeOptions = this._options;\r\n var parseOptions = {\r\n skipValues: options.skipValues\r\n };\r\n var mdxString = generateMDX(options, storeOptions.cube, parseOptions);\r\n var rowCountMdx;\r\n if (options.rowSkip || options.rowTake || options.columnTake || options.columnSkip) {\r\n rowCountMdx = generateMDX(extend({}, options, {\r\n totalsOnly: true,\r\n rowSkip: null,\r\n rowTake: null,\r\n columnSkip: null,\r\n columnTake: null\r\n }), storeOptions.cube, {})\r\n }\r\n var load = () => {\r\n if (mdxString) {\r\n when(sendQuery(storeOptions, mdxString), rowCountMdx && sendQuery(storeOptions, rowCountMdx)).done((executeXml, rowCountXml) => {\r\n var error = checkError(executeXml) || rowCountXml && checkError(rowCountXml);\r\n if (!error) {\r\n var response = parseResult(executeXml, parseOptions);\r\n if (rowCountXml) {\r\n ! function(data, options, totalCountXml) {\r\n var axes = [];\r\n var columnOptions = options.columns || [];\r\n var rowOptions = options.rows || [];\r\n if (columnOptions.length) {\r\n axes.push({})\r\n }\r\n if (rowOptions.length) {\r\n axes.push({})\r\n }\r\n var cells = parseCells(totalCountXml, [\r\n [{}],\r\n [{}, {}]\r\n ], 1);\r\n if (!columnOptions.length && rowOptions.length) {\r\n data.rowCount = Math.max(cells[0][0][0] - 1, 0)\r\n }\r\n if (!rowOptions.length && columnOptions.length) {\r\n data.columnCount = Math.max(cells[0][0][0] - 1, 0)\r\n }\r\n if (rowOptions.length && columnOptions.length) {\r\n data.rowCount = Math.max(cells[0][0][0] - 1, 0);\r\n data.columnCount = Math.max(cells[1][0][0] - 1, 0)\r\n }\r\n if (void 0 !== data.rowCount && options.rowTake) {\r\n data.rows = [...Array(options.rowSkip)].concat(data.rows);\r\n data.rows.length = data.rowCount;\r\n for (var i = 0; i < data.rows.length; i += 1) {\r\n data.rows[i] = data.rows[i] || {}\r\n }\r\n }\r\n if (void 0 !== data.columnCount && options.columnTake) {\r\n data.columns = [...Array(options.columnSkip)].concat(data.columns);\r\n data.columns.length = data.columnCount;\r\n for (var _i = 0; _i < data.columns.length; _i += 1) {\r\n data.columns[_i] = data.columns[_i] || {}\r\n }\r\n }\r\n }(response, options, rowCountXml)\r\n }\r\n result.resolve(response)\r\n } else {\r\n result.reject(error)\r\n }\r\n }).fail(result.reject)\r\n } else {\r\n result.resolve({\r\n columns: [],\r\n rows: [],\r\n values: [],\r\n grandTotalColumnIndex: 0,\r\n grandTotalRowIndex: 0\r\n })\r\n }\r\n };\r\n if (options.delay) {\r\n setTimeout(load, options.delay)\r\n } else {\r\n load()\r\n }\r\n return result\r\n },\r\n supportPaging: () => true,\r\n getDrillDownItems(options, params) {\r\n var result = new Deferred;\r\n var storeOptions = this._options;\r\n var mdxString = function(options, cubeName, params) {\r\n var columns = options.columns || [];\r\n var rows = options.rows || [];\r\n var values = options.values && options.values.length ? options.values : [{\r\n dataField: \"[Measures]\"\r\n }];\r\n var slice = [];\r\n var withArray = [];\r\n var axisStrings = [];\r\n var dataFields = prepareDataFields(withArray, values);\r\n var {\r\n maxRowCount: maxRowCount\r\n } = params;\r\n var customColumns = params.customColumns || [];\r\n var customColumnsString = customColumns.length > 0 ? \" return \".concat(customColumns.join(\",\")) : \"\";\r\n createDrillDownAxisSlice(slice, columns, params.columnPath || []);\r\n createDrillDownAxisSlice(slice, rows, params.rowPath || []);\r\n if (columns.length || dataFields.length) {\r\n axisStrings.push([\"\".concat(dataFields[params.dataIndex] || dataFields[0], \" on 0\")])\r\n }\r\n var coreMDX = generateMdxCore(axisStrings, withArray, columns, rows, options.filters, slice, cubeName);\r\n return coreMDX ? \"drillthrough\".concat(maxRowCount > 0 ? \" maxrows \".concat(maxRowCount) : \"\").concat(coreMDX).concat(customColumnsString) : coreMDX\r\n }(options, storeOptions.cube, params);\r\n if (mdxString) {\r\n when(sendQuery(storeOptions, mdxString)).done(executeXml => {\r\n var error = checkError(executeXml);\r\n if (!error) {\r\n result.resolve(function(xml) {\r\n var rows = xml.getElementsByTagName(\"row\");\r\n var result = [];\r\n var columnNames = {};\r\n for (var i = 0; i < rows.length; i += 1) {\r\n var children = rows[i].childNodes;\r\n var item = {};\r\n for (var j = 0; j < children.length; j += 1) {\r\n var {\r\n tagName: tagName\r\n } = children[j];\r\n var name = columnNames[tagName] = columnNames[tagName] || parseStringWithUnicodeSymbols(tagName);\r\n item[name] = getNodeText(children[j])\r\n }\r\n result.push(item)\r\n }\r\n return result\r\n }(executeXml))\r\n } else {\r\n result.reject(error)\r\n }\r\n }).fail(result.reject)\r\n } else {\r\n result.resolve([])\r\n }\r\n return result\r\n },\r\n key: noop,\r\n filter: noop\r\n }\r\n}()).include(storeDrillDownMixin);\r\nexport default {\r\n XmlaStore: XmlaStore\r\n};\r\nexport {\r\n XmlaStore\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/data_source/m_data_source_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n createPath,\r\n findField,\r\n foreachDataLevel,\r\n foreachTree,\r\n getCompareFunction\r\n} from \"../m_widget_utils\";\r\n\r\nfunction sort(loadOptions, dataSource, getAscOrder) {\r\n sortDimension(dataSource, loadOptions, \"rows\", getAscOrder);\r\n sortDimension(dataSource, loadOptions, \"columns\", getAscOrder)\r\n}\r\n\r\nfunction sortDimension(dataSource, loadOptions, dimensionName, getAscOrder) {\r\n var fields = loadOptions[dimensionName] || [];\r\n var baseIndex = loadOptions.headerName === dimensionName ? loadOptions.path.length : 0;\r\n var sortingMethodByLevel = [];\r\n foreachDataLevel(dataSource[dimensionName], (item, index) => {\r\n var field = fields[index] || {};\r\n var sortingMethod = sortingMethodByLevel[index] = sortingMethodByLevel[index] || getSortingMethod(field, dataSource, loadOptions, dimensionName, getAscOrder);\r\n item.sort(sortingMethod)\r\n }, baseIndex)\r\n}\r\n\r\nfunction getSortingMethod(field, dataSource, loadOptions, dimensionName, getAscOrder) {\r\n var sortOrder = getAscOrder ? \"asc\" : field.sortOrder;\r\n var sortBy = getMemberForSortBy(field.sortBy, getAscOrder);\r\n var defaultCompare = field.sortingMethod ? function(a, b) {\r\n return field.sortingMethod(a, b)\r\n } : getCompareFunction(item => item[sortBy]);\r\n var summaryValueSelector = !getAscOrder && getFieldSummaryValueSelector(field, dataSource, loadOptions, dimensionName);\r\n var summaryCompare = summaryValueSelector && getCompareFunction(summaryValueSelector);\r\n return function(a, b) {\r\n var result = summaryCompare && summaryCompare(a, b) || defaultCompare(a, b);\r\n return \"desc\" === sortOrder ? -result : result\r\n }\r\n}\r\n\r\nfunction getFieldSummaryValueSelector(field, dataSource, loadOptions, dimensionName) {\r\n var {\r\n values: values\r\n } = dataSource;\r\n var sortBySummaryFieldIndex = findField(loadOptions.values, field.sortBySummaryField);\r\n var areRows = \"rows\" === dimensionName;\r\n var sortByDimension = areRows ? dataSource.columns : dataSource.rows;\r\n var grandTotalIndex = areRows ? dataSource.grandTotalRowIndex : dataSource.grandTotalColumnIndex;\r\n var sortBySummaryPath = field.sortBySummaryPath || [];\r\n var sliceIndex = sortBySummaryPath.length ? getSliceIndex(sortByDimension, sortBySummaryPath) : grandTotalIndex;\r\n if (values && values.length && sortBySummaryFieldIndex >= 0 && isDefined(sliceIndex)) {\r\n return function(field) {\r\n var rowIndex = areRows ? field.index : sliceIndex;\r\n var columnIndex = areRows ? sliceIndex : field.index;\r\n var value = ((values[rowIndex] || [\r\n []\r\n ])[columnIndex] || [])[sortBySummaryFieldIndex];\r\n return isDefined(value) ? value : null\r\n }\r\n }\r\n return\r\n}\r\n\r\nfunction getMemberForSortBy(sortBy, getAscOrder) {\r\n var member = \"text\";\r\n if (\"none\" === sortBy) {\r\n member = \"index\"\r\n } else if (getAscOrder || \"displayText\" !== sortBy) {\r\n member = \"value\"\r\n }\r\n return member\r\n}\r\n\r\nfunction getSliceIndex(items, path) {\r\n var index = null;\r\n var pathValue = (path || []).join(\".\");\r\n if (pathValue.length) {\r\n foreachTree(items, items => {\r\n var item = items[0];\r\n var itemPath = createPath(items).join(\".\");\r\n var textPath = map(items, item => item.text).reverse().join(\".\");\r\n if (pathValue === itemPath || item.key && textPath === pathValue) {\r\n index = items[0].index;\r\n return false\r\n }\r\n return\r\n })\r\n }\r\n return index\r\n}\r\nexport default {\r\n sort: sort\r\n};\r\nexport {\r\n sort\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/data_source/m_data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../../../core/events_strategy\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n executeAsync\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport {\r\n LocalStore\r\n} from \"../local_store/m_local_store\";\r\nimport {\r\n createPath,\r\n findField,\r\n foreachTree,\r\n foreachTreeAsync,\r\n formatValue,\r\n getFieldsDataType,\r\n setFieldProperty\r\n} from \"../m_widget_utils\";\r\nimport {\r\n RemoteStore\r\n} from \"../remote_store/m_remote_store\";\r\nimport summaryUtils from \"../summary_display_modes/m_summary_display_modes\";\r\nimport xmlaStore from \"../xmla_store/m_xmla_store\";\r\nimport {\r\n sort\r\n} from \"./m_data_source_utils\";\r\nvar DESCRIPTION_NAME_BY_AREA = {\r\n row: \"rows\",\r\n column: \"columns\",\r\n data: \"values\",\r\n filter: \"filters\"\r\n};\r\nvar STATE_PROPERTIES = [\"area\", \"areaIndex\", \"sortOrder\", \"filterType\", \"filterValues\", \"sortBy\", \"sortBySummaryField\", \"sortBySummaryPath\", \"expanded\", \"summaryType\", \"summaryDisplayMode\"];\r\nvar CALCULATED_PROPERTIES = [\"format\", \"selector\", \"customizeText\", \"caption\"];\r\nvar ALL_CALCULATED_PROPERTIES = CALCULATED_PROPERTIES.concat([\"allowSorting\", \"allowSortingBySummary\", \"allowFiltering\", \"allowExpandAll\"]);\r\n\r\nfunction createCaption(field) {\r\n var caption = field.dataField || field.groupName || \"\";\r\n var summaryType = (field.summaryType || \"\").toLowerCase();\r\n if (isString(field.groupInterval)) {\r\n caption += \"_\".concat(field.groupInterval)\r\n }\r\n if (summaryType && \"custom\" !== summaryType) {\r\n summaryType = summaryType.replace(/^./, summaryType[0].toUpperCase());\r\n if (caption.length) {\r\n summaryType = \" (\".concat(summaryType, \")\")\r\n }\r\n } else {\r\n summaryType = \"\"\r\n }\r\n return titleize(caption) + summaryType\r\n}\r\n\r\nfunction resetFieldState(field, properties) {\r\n var initialProperties = field._initProperties || {};\r\n each(properties, (_, prop) => {\r\n if (Object.prototype.hasOwnProperty.call(initialProperties, prop)) {\r\n field[prop] = initialProperties[prop]\r\n }\r\n })\r\n}\r\n\r\nfunction updateCalculatedFieldProperties(field, calculatedProperties) {\r\n resetFieldState(field, calculatedProperties);\r\n if (!isDefined(field.caption)) {\r\n setFieldProperty(field, \"caption\", createCaption(field))\r\n }\r\n}\r\n\r\nfunction areExpressionsUsed(dataFields) {\r\n return dataFields.some(field => field.summaryDisplayMode || field.calculateSummaryValue)\r\n}\r\n\r\nfunction isRunningTotalUsed(dataFields) {\r\n return dataFields.some(field => !!field.runningTotal)\r\n}\r\n\r\nfunction isDataExists(data) {\r\n return data.rows.length || data.columns.length || data.values.length\r\n}\r\nvar PivotGridDataSource = Class.inherit(function() {\r\n var findHeaderItem = function(headerItems, path) {\r\n if (headerItems._cacheByPath) {\r\n return headerItems._cacheByPath[path.join(\".\")] || null\r\n }\r\n return\r\n };\r\n var getHeaderItemsLastIndex = function getHeaderItemsLastIndex(headerItems, grandTotalIndex) {\r\n var i;\r\n var lastIndex = -1;\r\n var headerItem;\r\n if (headerItems) {\r\n for (i = 0; i < headerItems.length; i += 1) {\r\n headerItem = headerItems[i];\r\n if (void 0 !== headerItem.index) {\r\n lastIndex = Math.max(lastIndex, headerItem.index)\r\n }\r\n if (headerItem.children) {\r\n lastIndex = Math.max(lastIndex, getHeaderItemsLastIndex(headerItem.children))\r\n } else if (headerItem.collapsedChildren) {\r\n lastIndex = Math.max(lastIndex, getHeaderItemsLastIndex(headerItem.collapsedChildren))\r\n }\r\n }\r\n }\r\n if (isDefined(grandTotalIndex)) {\r\n lastIndex = Math.max(lastIndex, grandTotalIndex)\r\n }\r\n return lastIndex\r\n };\r\n var updateHeaderItemChildren = function(headerItems, headerItem, children, grandTotalIndex) {\r\n var applyingHeaderItemsCount = getHeaderItemsLastIndex(children) + 1;\r\n var emptyIndex = getHeaderItemsLastIndex(headerItems, grandTotalIndex) + 1;\r\n var index;\r\n var applyingItemIndexesToCurrent = [];\r\n var needIndexUpdate = false;\r\n var d = new Deferred;\r\n if (headerItem.children && headerItem.children.length === children.length) {\r\n for (var i = 0; i < children.length; i += 1) {\r\n var child = children[i];\r\n if (void 0 !== child.index) {\r\n if (void 0 === headerItem.children[i].index) {\r\n child.index = applyingItemIndexesToCurrent[child.index] = emptyIndex++;\r\n headerItem.children[i] = child\r\n } else {\r\n applyingItemIndexesToCurrent[child.index] = headerItem.children[i].index\r\n }\r\n }\r\n }\r\n } else {\r\n needIndexUpdate = true;\r\n for (index = 0; index < applyingHeaderItemsCount; index += 1) {\r\n applyingItemIndexesToCurrent[index] = emptyIndex++\r\n }\r\n headerItem.children = children\r\n }\r\n when(foreachTreeAsync(headerItem.children, items => {\r\n if (needIndexUpdate) {\r\n items[0].index = applyingItemIndexesToCurrent[items[0].index]\r\n }\r\n })).done(() => {\r\n d.resolve(applyingItemIndexesToCurrent)\r\n });\r\n return d\r\n };\r\n var updateHeaderItems = function(headerItems, newHeaderItems, grandTotalIndex) {\r\n var d = new Deferred;\r\n var emptyIndex = grandTotalIndex >= 0 && getHeaderItemsLastIndex(headerItems, grandTotalIndex) + 1;\r\n var applyingItemIndexesToCurrent = [];\r\n when(foreachTreeAsync(headerItems, items => {\r\n delete items[0].collapsedChildren\r\n })).done(() => {\r\n when(foreachTreeAsync(newHeaderItems, (newItems, index) => {\r\n var newItem = newItems[0];\r\n if (newItem.index >= 0) {\r\n var headerItem = findHeaderItem(headerItems, createPath(newItems));\r\n if (headerItem && headerItem.index >= 0) {\r\n applyingItemIndexesToCurrent[newItem.index] = headerItem.index\r\n } else if (emptyIndex) {\r\n var path = createPath(newItems.slice(1));\r\n headerItem = findHeaderItem(headerItems, path);\r\n var parentItems = path.length ? headerItem && headerItem.children : headerItems;\r\n if (parentItems) {\r\n parentItems[index] = newItem;\r\n newItem.index = applyingItemIndexesToCurrent[newItem.index] = emptyIndex++\r\n }\r\n }\r\n }\r\n })).done(() => {\r\n d.resolve(applyingItemIndexesToCurrent)\r\n })\r\n });\r\n return d\r\n };\r\n var updateDataSourceCells = function(dataSource, newDataSourceCells, newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent) {\r\n var newRowIndex;\r\n var newColumnIndex;\r\n var newRowCells;\r\n var newCell;\r\n var rowIndex;\r\n var columnIndex;\r\n var dataSourceCells = dataSource.values;\r\n if (newDataSourceCells) {\r\n for (newRowIndex = 0; newRowIndex < newDataSourceCells.length; newRowIndex += 1) {\r\n newRowCells = newDataSourceCells[newRowIndex];\r\n rowIndex = newRowItemIndexesToCurrent[newRowIndex];\r\n if (!isDefined(rowIndex)) {\r\n rowIndex = dataSource.grandTotalRowIndex\r\n }\r\n if (newRowCells && isDefined(rowIndex)) {\r\n if (!dataSourceCells[rowIndex]) {\r\n dataSourceCells[rowIndex] = []\r\n }\r\n for (newColumnIndex = 0; newColumnIndex < newRowCells.length; newColumnIndex += 1) {\r\n newCell = newRowCells[newColumnIndex];\r\n columnIndex = newColumnItemIndexesToCurrent[newColumnIndex];\r\n if (!isDefined(columnIndex)) {\r\n columnIndex = dataSource.grandTotalColumnIndex\r\n }\r\n if (isDefined(newCell) && isDefined(columnIndex)) {\r\n dataSourceCells[rowIndex][columnIndex] = newCell\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function createLocalOrRemoteStore(dataSourceOptions, notifyProgress) {\r\n var StoreConstructor = dataSourceOptions.remoteOperations || dataSourceOptions.paginate ? RemoteStore : LocalStore;\r\n return new StoreConstructor(extend(normalizeDataSourceOptions(dataSourceOptions), {\r\n onChanged: null,\r\n onLoadingChanged: null,\r\n onProgressChanged: notifyProgress\r\n }))\r\n }\r\n\r\n function getExpandedPaths(dataSource, loadOptions, dimensionName, prevLoadOptions) {\r\n var result = [];\r\n var fields = loadOptions && loadOptions[dimensionName] || [];\r\n var prevFields = prevLoadOptions && prevLoadOptions[dimensionName] || [];\r\n foreachTree(dataSource[dimensionName], items => {\r\n var item = items[0];\r\n var path = createPath(items);\r\n if (item.children && fields[path.length - 1] && !fields[path.length - 1].expanded) {\r\n if (path.length < fields.length && (!prevLoadOptions || function(fields, prevFields, count) {\r\n for (var i = 0; i < count; i += 1) {\r\n if (!fields[i] || !prevFields[i] || fields[i].index !== prevFields[i].index) {\r\n return false\r\n }\r\n }\r\n return true\r\n }(fields, prevFields, path.length))) {\r\n result.push(path.slice())\r\n }\r\n }\r\n }, true);\r\n return result\r\n }\r\n\r\n function setFieldProperties(field, srcField, skipInitPropertySave, properties) {\r\n if (srcField) {\r\n each(properties, (_, name) => {\r\n if (skipInitPropertySave) {\r\n field[name] = srcField[name]\r\n } else {\r\n if ((\"summaryType\" === name || \"summaryDisplayMode\" === name) && void 0 === srcField[name]) {\r\n return\r\n }\r\n setFieldProperty(field, name, srcField[name])\r\n }\r\n })\r\n } else {\r\n resetFieldState(field, properties)\r\n }\r\n return field\r\n }\r\n\r\n function getFieldsState(fields, properties) {\r\n var result = [];\r\n each(fields, (_, field) => {\r\n result.push(setFieldProperties({\r\n dataField: field.dataField,\r\n name: field.name\r\n }, field, true, properties))\r\n });\r\n return result\r\n }\r\n\r\n function getFieldStateId(field) {\r\n if (field.name) {\r\n return field.name\r\n }\r\n return \"\".concat(field.dataField)\r\n }\r\n\r\n function getFieldsById(fields, id) {\r\n var result = [];\r\n each(fields || [], (_, field) => {\r\n if (getFieldStateId(field) === id) {\r\n result.push(field)\r\n }\r\n });\r\n return result\r\n }\r\n\r\n function setFieldsState(stateFields, fields) {\r\n stateFields = stateFields || [];\r\n var fieldsById = {};\r\n var id;\r\n each(fields, (_, field) => {\r\n id = getFieldStateId(field);\r\n if (!fieldsById[id]) {\r\n fieldsById[id] = getFieldsById(fields, getFieldStateId(field))\r\n }\r\n });\r\n each(fieldsById, (id, fields) => {\r\n ! function(stateFields, fields) {\r\n stateFields = stateFields || [];\r\n each(fields, (index, field) => {\r\n setFieldProperties(field, stateFields[index], false, STATE_PROPERTIES);\r\n updateCalculatedFieldProperties(field, CALCULATED_PROPERTIES)\r\n });\r\n return fields\r\n }(getFieldsById(stateFields, id), fields)\r\n });\r\n return fields\r\n }\r\n\r\n function sortFieldsByAreaIndex(fields) {\r\n fields.sort((field1, field2) => field1.areaIndex - field2.areaIndex || field1.groupIndex - field2.groupIndex)\r\n }\r\n\r\n function getFieldId(field, retrieveFieldsOptionValue) {\r\n var groupName = field.groupName || \"\";\r\n return (field.dataField || groupName) + (field.groupInterval ? groupName + field.groupInterval : \"NOGROUP\") + (retrieveFieldsOptionValue ? \"\" : groupName)\r\n }\r\n\r\n function mergeFields(fields, storeFields, retrieveFieldsOptionValue) {\r\n var result = [];\r\n var fieldsDictionary = {};\r\n var removedFields = {};\r\n var dataTypes = getFieldsDataType(fields);\r\n if (storeFields) {\r\n each(storeFields, (_, field) => {\r\n fieldsDictionary[getFieldId(field, retrieveFieldsOptionValue)] = field\r\n });\r\n each(fields, (_, field) => {\r\n var fieldKey = getFieldId(field, retrieveFieldsOptionValue);\r\n var storeField = fieldsDictionary[fieldKey] || removedFields[fieldKey];\r\n var mergedField;\r\n if (storeField) {\r\n if (storeField._initProperties) {\r\n resetFieldState(storeField, ALL_CALCULATED_PROPERTIES)\r\n }\r\n mergedField = extend({}, storeField, field, {\r\n _initProperties: null\r\n })\r\n } else {\r\n fieldsDictionary[fieldKey] = mergedField = field\r\n }\r\n if (!mergedField.dataType && dataTypes[field.dataField]) {\r\n mergedField.dataType = dataTypes[field.dataField]\r\n }\r\n delete fieldsDictionary[fieldKey];\r\n removedFields[fieldKey] = storeField;\r\n result.push(mergedField)\r\n });\r\n if (retrieveFieldsOptionValue) {\r\n each(fieldsDictionary, (_, field) => {\r\n result.push(field)\r\n })\r\n }\r\n } else {\r\n result = fields\r\n }\r\n result.push.apply(result, []);\r\n ! function(fields) {\r\n fields.forEach(field => {\r\n if (field.groupName && field.groupInterval && void 0 === field.groupIndex) {\r\n var maxGroupIndex = fields.filter(f => f.groupName === field.groupName && isNumeric(f.groupIndex)).map(f => f.groupIndex).reduce((prev, current) => Math.max(prev, current), -1);\r\n field.groupIndex = maxGroupIndex + 1\r\n }\r\n })\r\n }(result);\r\n return result\r\n }\r\n\r\n function getFields(that) {\r\n var result = new Deferred;\r\n var store = that._store;\r\n var storeFields = store && store.getFields(that._fields);\r\n var mergedFields;\r\n when(storeFields).done(storeFields => {\r\n that._storeFields = storeFields;\r\n mergedFields = mergeFields(that._fields, storeFields, that._retrieveFields);\r\n result.resolve(mergedFields)\r\n }).fail(result.reject);\r\n return result\r\n }\r\n\r\n function formatHeaderItems(data, loadOptions, headerName) {\r\n return foreachTreeAsync(data[headerName], items => {\r\n var item = items[0];\r\n item.text = item.text || formatValue(item.value, loadOptions[headerName][createPath(items).length - 1])\r\n })\r\n }\r\n\r\n function formatHeaders(loadOptions, data) {\r\n return when(formatHeaderItems(data, loadOptions, \"columns\"), formatHeaderItems(data, loadOptions, \"rows\"))\r\n }\r\n\r\n function updateCache(headerItems) {\r\n var d = new Deferred;\r\n var cacheByPath = {};\r\n when(foreachTreeAsync(headerItems, items => {\r\n var path = createPath(items).join(\".\");\r\n cacheByPath[path] = items[0]\r\n })).done(d.resolve);\r\n headerItems._cacheByPath = cacheByPath;\r\n return d\r\n }\r\n\r\n function getAreaFields(fields, area) {\r\n var areaFields = [];\r\n each(fields, (function() {\r\n if (function(field, area) {\r\n var canAddFieldInArea = \"data\" === area || false !== field.visible;\r\n return field.area === area && !isDefined(field.groupIndex) && canAddFieldInArea\r\n }(this, area)) {\r\n areaFields.push(this)\r\n }\r\n }));\r\n return areaFields\r\n }\r\n return {\r\n ctor(options) {\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n var that = this;\r\n var store = function(dataSourceOptions, notifyProgress) {\r\n var store;\r\n var storeOptions;\r\n if (isPlainObject(dataSourceOptions) && dataSourceOptions.load) {\r\n store = createLocalOrRemoteStore(dataSourceOptions, notifyProgress)\r\n } else {\r\n if (dataSourceOptions && !dataSourceOptions.store) {\r\n dataSourceOptions = {\r\n store: dataSourceOptions\r\n }\r\n }\r\n storeOptions = dataSourceOptions.store;\r\n if (\"xmla\" === storeOptions.type) {\r\n store = new xmlaStore.XmlaStore(storeOptions)\r\n } else if (isPlainObject(storeOptions) && storeOptions.type || storeOptions instanceof Store || Array.isArray(storeOptions)) {\r\n store = createLocalOrRemoteStore(dataSourceOptions, notifyProgress)\r\n } else if (storeOptions instanceof Class) {\r\n store = storeOptions\r\n }\r\n }\r\n return store\r\n }(options, progress => {\r\n that._eventsStrategy.fireEvent(\"progressChanged\", [progress])\r\n });\r\n that._store = store;\r\n that._paginate = !!options.paginate;\r\n that._pageSize = options.pageSize || 40;\r\n that._data = {\r\n rows: [],\r\n columns: [],\r\n values: []\r\n };\r\n that._loadingCount = 0;\r\n that._isFieldsModified = false;\r\n each([\"changed\", \"loadError\", \"loadingChanged\", \"progressChanged\", \"fieldsPrepared\", \"expandValueChanging\"], (_, eventName) => {\r\n var optionName = \"on\".concat(eventName[0].toUpperCase()).concat(eventName.slice(1));\r\n if (Object.prototype.hasOwnProperty.call(options, optionName)) {\r\n this.on(eventName, options[optionName])\r\n }\r\n });\r\n that._retrieveFields = isDefined(options.retrieveFields) ? options.retrieveFields : true;\r\n that._fields = options.fields || [];\r\n that._descriptions = options.descriptions ? extend(that._createDescriptions(), options.descriptions) : void 0;\r\n if (!store) {\r\n extend(true, that._data, options.store || options)\r\n }\r\n },\r\n getData() {\r\n return this._data\r\n },\r\n getAreaFields(area, collectGroups) {\r\n var areaFields = [];\r\n var descriptions;\r\n if (collectGroups || \"data\" === area) {\r\n areaFields = getAreaFields(this._fields, area);\r\n sortFieldsByAreaIndex(areaFields)\r\n } else {\r\n descriptions = this._descriptions || {};\r\n areaFields = descriptions[DESCRIPTION_NAME_BY_AREA[area]] || []\r\n }\r\n return areaFields\r\n },\r\n fields(fields) {\r\n if (fields) {\r\n this._fields = mergeFields(fields, this._storeFields, this._retrieveFields);\r\n this._fieldsPrepared(this._fields)\r\n }\r\n return this._fields\r\n },\r\n field(id, options) {\r\n var fields = this._fields;\r\n var field = fields && fields[isNumeric(id) ? id : findField(fields, id)];\r\n var levels;\r\n if (field && options) {\r\n each(options, (optionName, optionValue) => {\r\n var isInitialization = !STATE_PROPERTIES.includes(optionName);\r\n setFieldProperty(field, optionName, optionValue, isInitialization);\r\n if (\"sortOrder\" === optionName) {\r\n levels = field.levels || [];\r\n for (var i = 0; i < levels.length; i += 1) {\r\n levels[i][optionName] = optionValue\r\n }\r\n }\r\n });\r\n updateCalculatedFieldProperties(field, CALCULATED_PROPERTIES);\r\n this._descriptions = this._createDescriptions(field);\r\n this._isFieldsModified = true;\r\n this._eventsStrategy.fireEvent(\"fieldChanged\", [field])\r\n }\r\n return field\r\n },\r\n getFieldValues(index, applyFilters, options) {\r\n var that = this;\r\n var field = this._fields && this._fields[index];\r\n var store = this.store();\r\n var loadFields = [];\r\n var loadOptions = {\r\n columns: loadFields,\r\n rows: [],\r\n values: this.getAreaFields(\"data\"),\r\n filters: applyFilters ? this._fields.filter(f => f !== field && f.area && f.filterValues && f.filterValues.length) : [],\r\n skipValues: true\r\n };\r\n var searchValue;\r\n var d = new Deferred;\r\n if (options) {\r\n searchValue = options.searchValue;\r\n loadOptions.columnSkip = options.skip;\r\n loadOptions.columnTake = options.take\r\n }\r\n if (field && store) {\r\n each(field.levels || [field], (function() {\r\n loadFields.push(extend({}, this, {\r\n expanded: true,\r\n filterValues: null,\r\n sortOrder: \"asc\",\r\n sortBySummaryField: null,\r\n searchValue: searchValue\r\n }))\r\n }));\r\n store.load(loadOptions).done(data => {\r\n if (loadOptions.columnSkip) {\r\n data.columns = data.columns.slice(loadOptions.columnSkip)\r\n }\r\n if (loadOptions.columnTake) {\r\n data.columns = data.columns.slice(0, loadOptions.columnTake)\r\n }\r\n formatHeaders(loadOptions, data);\r\n if (!loadOptions.columnTake) {\r\n that._sort(loadOptions, data)\r\n }\r\n d.resolve(data.columns)\r\n }).fail(d)\r\n } else {\r\n d.reject()\r\n }\r\n return d\r\n },\r\n reload() {\r\n return this.load({\r\n reload: true\r\n })\r\n },\r\n filter() {\r\n var store = this._store;\r\n return store.filter.apply(store, arguments)\r\n },\r\n load: function(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n options = options || {};\r\n that.beginLoading();\r\n d.fail(e => {\r\n that._eventsStrategy.fireEvent(\"loadError\", [e])\r\n }).always(() => {\r\n that.endLoading()\r\n });\r\n\r\n function loadTask() {\r\n that._delayedLoadTask = void 0;\r\n if (!that._descriptions) {\r\n when(getFields(that)).done(fields => {\r\n that._fieldsPrepared(fields);\r\n that._loadCore(options, d)\r\n }).fail(d.reject).fail(that._loadErrorHandler)\r\n } else {\r\n that._loadCore(options, d)\r\n }\r\n }\r\n if (that.store()) {\r\n that._delayedLoadTask = executeAsync(loadTask)\r\n } else {\r\n loadTask()\r\n }\r\n return d\r\n },\r\n createDrillDownDataSource(params) {\r\n return this._store.createDrillDownDataSource(this._descriptions, params)\r\n },\r\n _createDescriptions(currentField) {\r\n var fields = this.fields();\r\n var descriptions = {\r\n rows: [],\r\n columns: [],\r\n values: [],\r\n filters: []\r\n };\r\n each([\"row\", \"column\", \"data\", \"filter\"], (_, areaName) => {\r\n normalizeIndexes(getAreaFields(fields, areaName), \"areaIndex\", currentField)\r\n });\r\n each(fields || [], (_, field) => {\r\n var descriptionName = DESCRIPTION_NAME_BY_AREA[field.area];\r\n var dimension = descriptions[descriptionName];\r\n var {\r\n groupName: groupName\r\n } = field;\r\n if (groupName && !isNumeric(field.groupIndex)) {\r\n field.levels = function(fields, groupingField) {\r\n return fields.filter(field => field.groupName === groupingField.groupName && isNumeric(field.groupIndex) && false !== field.visible).map(field => extend(field, {\r\n areaIndex: groupingField.areaIndex,\r\n area: groupingField.area,\r\n expanded: isDefined(field.expanded) ? field.expanded : groupingField.expanded,\r\n dataField: field.dataField || groupingField.dataField,\r\n dataType: field.dataType || groupingField.dataType,\r\n sortBy: field.sortBy || groupingField.sortBy,\r\n sortOrder: field.sortOrder || groupingField.sortOrder,\r\n sortBySummaryField: field.sortBySummaryField || groupingField.sortBySummaryField,\r\n sortBySummaryPath: field.sortBySummaryPath || groupingField.sortBySummaryPath,\r\n visible: field.visible || groupingField.visible,\r\n showTotals: isDefined(field.showTotals) ? field.showTotals : groupingField.showTotals,\r\n showGrandTotals: isDefined(field.showGrandTotals) ? field.showGrandTotals : groupingField.showGrandTotals\r\n })).sort((a, b) => a.groupIndex - b.groupIndex)\r\n }(fields, field)\r\n }\r\n if (!dimension || groupName && isNumeric(field.groupIndex) || false === field.visible && \"data\" !== field.area && \"filter\" !== field.area) {\r\n return\r\n }\r\n if (field.levels && dimension !== descriptions.filters && dimension !== descriptions.values) {\r\n dimension.push.apply(dimension, field.levels);\r\n if (field.filterValues && field.filterValues.length) {\r\n descriptions.filters.push(field)\r\n }\r\n } else {\r\n dimension.push(field)\r\n }\r\n });\r\n each(descriptions, (_, fields) => {\r\n sortFieldsByAreaIndex(fields)\r\n });\r\n var indices = {};\r\n each(descriptions.values, (_, field) => {\r\n var expression = field.calculateSummaryValue;\r\n if (isFunction(expression)) {\r\n var summaryCell = summaryUtils.createMockSummaryCell(descriptions, fields, indices);\r\n expression(summaryCell)\r\n }\r\n });\r\n return descriptions\r\n },\r\n _fieldsPrepared(fields) {\r\n this._fields = fields;\r\n each(fields, (index, field) => {\r\n field.index = index;\r\n updateCalculatedFieldProperties(field, ALL_CALCULATED_PROPERTIES)\r\n });\r\n var currentFieldState = getFieldsState(fields, [\"caption\"]);\r\n this._eventsStrategy.fireEvent(\"fieldsPrepared\", [fields]);\r\n for (var i = 0; i < fields.length; i += 1) {\r\n if (fields[i].caption !== currentFieldState[i].caption) {\r\n setFieldProperty(fields[i], \"caption\", fields[i].caption, true)\r\n }\r\n }\r\n this._descriptions = this._createDescriptions()\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n state(state, skipLoading) {\r\n var that = this;\r\n if (arguments.length) {\r\n state = extend({\r\n rowExpandedPaths: [],\r\n columnExpandedPaths: []\r\n }, state);\r\n if (!that._descriptions) {\r\n that.beginLoading();\r\n when(getFields(that)).done(fields => {\r\n that._fields = setFieldsState(state.fields, fields);\r\n that._fieldsPrepared(fields);\r\n !skipLoading && that.load(state)\r\n }).always(() => {\r\n that.endLoading()\r\n })\r\n } else {\r\n that._fields = setFieldsState(state.fields, that._fields);\r\n that._descriptions = that._createDescriptions();\r\n !skipLoading && that.load(state)\r\n }\r\n return\r\n }\r\n return {\r\n fields: getFieldsState(that._fields, STATE_PROPERTIES),\r\n columnExpandedPaths: getExpandedPaths(that._data, that._descriptions, \"columns\", that._lastLoadOptions),\r\n rowExpandedPaths: getExpandedPaths(that._data, that._descriptions, \"rows\", that._lastLoadOptions)\r\n }\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _hasPagingValues(options, area, oppositeIndex) {\r\n var takeField = \"\".concat(area, \"Take\");\r\n var skipField = \"\".concat(area, \"Skip\");\r\n var {\r\n values: values\r\n } = this._data;\r\n var items = this._data[\"\".concat(area, \"s\")];\r\n var oppositeArea = \"row\" === area ? \"column\" : \"row\";\r\n var indices = [];\r\n if (options.path && options.area === area) {\r\n var headerItem = findHeaderItem(items, options.path);\r\n items = headerItem && headerItem.children;\r\n if (!items) {\r\n return false\r\n }\r\n }\r\n if (options.oppositePath && options.area === oppositeArea) {\r\n var _headerItem = findHeaderItem(items, options.oppositePath);\r\n items = _headerItem && _headerItem.children;\r\n if (!items) {\r\n return false\r\n }\r\n }\r\n for (var i = options[skipField]; i < options[skipField] + options[takeField]; i += 1) {\r\n if (items[i]) {\r\n indices.push(items[i].index)\r\n }\r\n }\r\n return indices.every(index => {\r\n if (void 0 !== index) {\r\n if (\"row\" === area) {\r\n return (values[index] || [])[oppositeIndex]\r\n }\r\n return (values[oppositeIndex] || [])[index]\r\n }\r\n return\r\n })\r\n },\r\n _processPagingCacheByArea(options, pageSize, area) {\r\n var takeField = \"\".concat(area, \"Take\");\r\n var skipField = \"\".concat(area, \"Skip\");\r\n var items = this._data[\"\".concat(area, \"s\")];\r\n var oppositeArea = \"row\" === area ? \"column\" : \"row\";\r\n var item;\r\n if (options[takeField]) {\r\n if (options.path && options.area === area) {\r\n var headerItem = findHeaderItem(items, options.path);\r\n items = headerItem && headerItem.children || []\r\n }\r\n if (options.oppositePath && options.area === oppositeArea) {\r\n var _headerItem2 = findHeaderItem(items, options.oppositePath);\r\n items = _headerItem2 && _headerItem2.children || []\r\n }\r\n do {\r\n item = items[options[skipField]];\r\n if (item && void 0 !== item.index) {\r\n if (this._hasPagingValues(options, oppositeArea, item.index)) {\r\n options[skipField]++;\r\n options[takeField]--\r\n } else {\r\n break\r\n }\r\n }\r\n } while (item && void 0 !== item.index && options[takeField]);\r\n if (options[takeField]) {\r\n var start = Math.floor(options[skipField] / pageSize) * pageSize;\r\n var end = Math.ceil((options[skipField] + options[takeField]) / pageSize) * pageSize;\r\n options[skipField] = start;\r\n options[takeField] = end - start\r\n }\r\n }\r\n },\r\n _processPagingCache(storeLoadOptions) {\r\n var pageSize = this._pageSize;\r\n if (pageSize < 0) {\r\n return\r\n }\r\n for (var i = 0; i < storeLoadOptions.length; i += 1) {\r\n this._processPagingCacheByArea(storeLoadOptions[i], pageSize, \"row\");\r\n this._processPagingCacheByArea(storeLoadOptions[i], pageSize, \"column\")\r\n }\r\n },\r\n _loadCore(options, deferred) {\r\n var that = this;\r\n var store = this._store;\r\n var descriptions = this._descriptions;\r\n var reload = options.reload || this.paginate() && that._isFieldsModified;\r\n var paginate = this.paginate();\r\n var headerName = DESCRIPTION_NAME_BY_AREA[options.area];\r\n options = options || {};\r\n if (store) {\r\n extend(options, descriptions);\r\n options.columnExpandedPaths = options.columnExpandedPaths || getExpandedPaths(this._data, options, \"columns\", that._lastLoadOptions);\r\n options.rowExpandedPaths = options.rowExpandedPaths || getExpandedPaths(this._data, options, \"rows\", that._lastLoadOptions);\r\n if (paginate) {\r\n options.pageSize = this._pageSize\r\n }\r\n if (headerName) {\r\n options.headerName = headerName\r\n }\r\n that.beginLoading();\r\n deferred.always(() => {\r\n that.endLoading()\r\n });\r\n var storeLoadOptions = [options];\r\n that._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [storeLoadOptions, reload]);\r\n if (!reload) {\r\n that._processPagingCache(storeLoadOptions)\r\n }\r\n storeLoadOptions = storeLoadOptions.filter(options => !(options.rows.length && 0 === options.rowTake) && !(options.columns.length && 0 === options.columnTake));\r\n if (!storeLoadOptions.length) {\r\n that._update(deferred);\r\n return\r\n }\r\n var results = storeLoadOptions.map(options => store.load(options));\r\n when.apply(null, results).done((function() {\r\n var results = arguments;\r\n for (var i = 0; i < results.length; i += 1) {\r\n var _options = storeLoadOptions[i];\r\n var data = results[i];\r\n var isLast = i === results.length - 1;\r\n if (_options.path) {\r\n that.applyPartialDataSource(_options.area, _options.path, data, isLast ? deferred : false, _options.oppositePath)\r\n } else if (paginate && !reload && isDataExists(that._data)) {\r\n that.mergePartialDataSource(data, isLast ? deferred : false)\r\n } else {\r\n extend(that._data, data);\r\n that._lastLoadOptions = _options;\r\n that._update(isLast ? deferred : false)\r\n }\r\n }\r\n })).fail(deferred.reject)\r\n } else {\r\n that._update(deferred)\r\n }\r\n },\r\n _sort(descriptions, data, getAscOrder) {\r\n var store = this._store;\r\n if (store && !this._paginate) {\r\n sort(descriptions, data, getAscOrder)\r\n }\r\n },\r\n sortLocal() {\r\n this._sort(this._descriptions, this._data);\r\n this._eventsStrategy.fireEvent(\"changed\")\r\n },\r\n paginate() {\r\n return this._paginate && this._store && this._store.supportPaging()\r\n },\r\n isEmpty() {\r\n var dataFields = this.getAreaFields(\"data\").filter(f => false !== f.visible);\r\n var data = this.getData();\r\n return !dataFields.length || !data.values.length\r\n },\r\n _update(deferred) {\r\n var that = this;\r\n var descriptions = that._descriptions;\r\n var loadedData = that._data;\r\n var dataFields = descriptions.values;\r\n var expressionsUsed = areExpressionsUsed(dataFields);\r\n when(formatHeaders(descriptions, loadedData), updateCache(loadedData.rows), updateCache(loadedData.columns)).done(() => {\r\n if (expressionsUsed) {\r\n that._sort(descriptions, loadedData, expressionsUsed);\r\n !that.isEmpty() && summaryUtils.applyDisplaySummaryMode(descriptions, loadedData)\r\n }\r\n that._sort(descriptions, loadedData);\r\n !that.isEmpty() && isRunningTotalUsed(dataFields) && summaryUtils.applyRunningTotal(descriptions, loadedData);\r\n that._data = loadedData;\r\n false !== deferred && when(deferred).done(() => {\r\n that._isFieldsModified = false;\r\n that._eventsStrategy.fireEvent(\"changed\");\r\n if (isDefined(that._data.grandTotalRowIndex)) {\r\n loadedData.grandTotalRowIndex = that._data.grandTotalRowIndex\r\n }\r\n if (isDefined(that._data.grandTotalColumnIndex)) {\r\n loadedData.grandTotalColumnIndex = that._data.grandTotalColumnIndex\r\n }\r\n });\r\n deferred && deferred.resolve(that._data)\r\n });\r\n return deferred\r\n },\r\n store() {\r\n return this._store\r\n },\r\n collapseHeaderItem(area, path) {\r\n var headerItems = \"column\" === area ? this._data.columns : this._data.rows;\r\n var headerItem = findHeaderItem(headerItems, path);\r\n var field = this.getAreaFields(area)[path.length - 1];\r\n if (headerItem && headerItem.children) {\r\n this._eventsStrategy.fireEvent(\"expandValueChanging\", [{\r\n area: area,\r\n path: path,\r\n expanded: false\r\n }]);\r\n if (field) {\r\n field.expanded = false\r\n }\r\n headerItem.collapsedChildren = headerItem.children;\r\n delete headerItem.children;\r\n this._update();\r\n if (this.paginate()) {\r\n this.load()\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n collapseAll(id) {\r\n var dataChanged = false;\r\n var field = this.field(id) || {};\r\n var areaOffsets = [this.getAreaFields(field.area).indexOf(field)];\r\n field.expanded = false;\r\n if (field && field.levels) {\r\n areaOffsets = [];\r\n field.levels.forEach(f => {\r\n areaOffsets.push(this.getAreaFields(field.area).indexOf(f));\r\n f.expanded = false\r\n })\r\n }\r\n foreachTree(this._data[\"\".concat(field.area, \"s\")], items => {\r\n var item = items[0];\r\n var path = createPath(items);\r\n if (item && item.children && areaOffsets.includes(path.length - 1)) {\r\n item.collapsedChildren = item.children;\r\n delete item.children;\r\n dataChanged = true\r\n }\r\n }, true);\r\n dataChanged && this._update()\r\n },\r\n expandAll(id) {\r\n var field = this.field(id);\r\n if (field && field.area) {\r\n field.expanded = true;\r\n if (field && field.levels) {\r\n field.levels.forEach(f => {\r\n f.expanded = true\r\n })\r\n }\r\n this.load()\r\n }\r\n },\r\n expandHeaderItem(area, path) {\r\n var headerItems = \"column\" === area ? this._data.columns : this._data.rows;\r\n var headerItem = findHeaderItem(headerItems, path);\r\n if (headerItem && !headerItem.children) {\r\n var hasCache = !!headerItem.collapsedChildren;\r\n var options = {\r\n area: area,\r\n path: path,\r\n expanded: true,\r\n needExpandData: !hasCache\r\n };\r\n this._eventsStrategy.fireEvent(\"expandValueChanging\", [options]);\r\n if (hasCache) {\r\n headerItem.children = headerItem.collapsedChildren;\r\n delete headerItem.collapsedChildren;\r\n this._update()\r\n } else if (this.store()) {\r\n this.load(options)\r\n }\r\n return hasCache\r\n }\r\n return false\r\n },\r\n mergePartialDataSource(dataSource, deferred) {\r\n var that = this;\r\n var loadedData = that._data;\r\n var newRowItemIndexesToCurrent;\r\n var newColumnItemIndexesToCurrent;\r\n if (dataSource && dataSource.values) {\r\n dataSource.rows = dataSource.rows || [];\r\n dataSource.columns = dataSource.columns || [];\r\n newRowItemIndexesToCurrent = updateHeaderItems(loadedData.rows, dataSource.rows, loadedData.grandTotalColumnIndex);\r\n newColumnItemIndexesToCurrent = updateHeaderItems(loadedData.columns, dataSource.columns, loadedData.grandTotalColumnIndex);\r\n when(newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent).done((newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent) => {\r\n if (newRowItemIndexesToCurrent.length || newColumnItemIndexesToCurrent.length) {\r\n updateDataSourceCells(loadedData, dataSource.values, newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent)\r\n }\r\n that._update(deferred)\r\n })\r\n }\r\n },\r\n applyPartialDataSource(area, path, dataSource, deferred, oppositePath) {\r\n var that = this;\r\n var loadedData = that._data;\r\n var headerItems = \"column\" === area ? loadedData.columns : loadedData.rows;\r\n var headerItem;\r\n var oppositeHeaderItems = \"column\" === area ? loadedData.rows : loadedData.columns;\r\n var oppositeHeaderItem;\r\n var newRowItemIndexesToCurrent;\r\n var newColumnItemIndexesToCurrent;\r\n if (dataSource && dataSource.values) {\r\n dataSource.rows = dataSource.rows || [];\r\n dataSource.columns = dataSource.columns || [];\r\n headerItem = findHeaderItem(headerItems, path);\r\n oppositeHeaderItem = oppositePath && findHeaderItem(oppositeHeaderItems, oppositePath);\r\n if (headerItem) {\r\n if (\"column\" === area) {\r\n newColumnItemIndexesToCurrent = updateHeaderItemChildren(headerItems, headerItem, dataSource.columns, loadedData.grandTotalColumnIndex);\r\n if (oppositeHeaderItem) {\r\n newRowItemIndexesToCurrent = updateHeaderItemChildren(oppositeHeaderItems, oppositeHeaderItem, dataSource.rows, loadedData.grandTotalRowIndex)\r\n } else {\r\n newRowItemIndexesToCurrent = updateHeaderItems(loadedData.rows, dataSource.rows, loadedData.grandTotalRowIndex)\r\n }\r\n } else {\r\n newRowItemIndexesToCurrent = updateHeaderItemChildren(headerItems, headerItem, dataSource.rows, loadedData.grandTotalRowIndex);\r\n if (oppositeHeaderItem) {\r\n newColumnItemIndexesToCurrent = updateHeaderItemChildren(oppositeHeaderItems, oppositeHeaderItem, dataSource.columns, loadedData.grandTotalColumnIndex)\r\n } else {\r\n newColumnItemIndexesToCurrent = updateHeaderItems(loadedData.columns, dataSource.columns, loadedData.grandTotalColumnIndex)\r\n }\r\n }\r\n when(newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent).done((newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent) => {\r\n if (\"row\" === area && newRowItemIndexesToCurrent.length || \"column\" === area && newColumnItemIndexesToCurrent.length) {\r\n updateDataSourceCells(loadedData, dataSource.values, newRowItemIndexesToCurrent, newColumnItemIndexesToCurrent)\r\n }\r\n that._update(deferred)\r\n })\r\n }\r\n }\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n dispose() {\r\n var delayedLoadTask = this._delayedLoadTask;\r\n this._eventsStrategy.dispose();\r\n if (delayedLoadTask) {\r\n delayedLoadTask.abort()\r\n }\r\n this._isDisposed = true\r\n },\r\n isDisposed() {\r\n return !!this._isDisposed\r\n }\r\n }\r\n}());\r\nexport default {\r\n PivotGridDataSource: PivotGridDataSource\r\n};\r\nexport {\r\n PivotGridDataSource\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/data_controller/m_data_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../../core/class\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport stateStoring from \"../../../grids/grid_core/state_storing/m_state_storing_core\";\r\nimport {\r\n createColumnsInfo,\r\n foreachColumnInfo\r\n} from \"../../../grids/grid_core/virtual_columns/m_virtual_columns_core\";\r\nimport VirtualScrollControllerModule from \"../../../grids/grid_core/virtual_scrolling/m_virtual_scrolling_core\";\r\nimport {\r\n PivotGridDataSource\r\n} from \"../data_source/m_data_source\";\r\nimport {\r\n createPath,\r\n findField,\r\n foreachTree,\r\n foreachTreeAsync,\r\n formatValue\r\n} from \"../m_widget_utils\";\r\nvar math = Math;\r\nvar GRAND_TOTAL_TYPE = \"GT\";\r\nvar TOTAL_TYPE = \"T\";\r\nvar DATA_TYPE = \"D\";\r\nvar NOT_AVAILABLE = \"#N/A\";\r\nvar CHANGING_DURATION_IF_PAGINATE = 300;\r\nvar proxyMethod = function(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n};\r\nvar DataController = Class.inherit(function() {\r\n function formatCellValue(value, dataField, errorText) {\r\n return value === NOT_AVAILABLE ? errorText : formatValue(value, dataField)\r\n }\r\n var createHeaderInfo = function() {\r\n var addInfoItem = function(info, options) {\r\n var breadth = options.lastIndex - options.index || 1;\r\n var itemInfo = function(headerItem, breadth, isHorizontal, isTree) {\r\n var infoItem = {\r\n type: headerItem.type,\r\n text: headerItem.text\r\n };\r\n if (headerItem.path) {\r\n infoItem.path = headerItem.path\r\n }\r\n if (headerItem.width) {\r\n infoItem.width = headerItem.width\r\n }\r\n if (isDefined(headerItem.wordWrapEnabled)) {\r\n infoItem.wordWrapEnabled = headerItem.wordWrapEnabled\r\n }\r\n if (headerItem.isLast) {\r\n infoItem.isLast = true\r\n }\r\n if (headerItem.sorted) {\r\n infoItem.sorted = true\r\n }\r\n if (headerItem.isMetric) {\r\n infoItem.dataIndex = headerItem.dataIndex\r\n }\r\n if (isDefined(headerItem.expanded)) {\r\n infoItem.expanded = headerItem.expanded\r\n }\r\n if (breadth > 1) {\r\n infoItem[isHorizontal ? \"colspan\" : \"rowspan\"] = breadth\r\n }\r\n if (headerItem.depthSize && headerItem.depthSize > 1) {\r\n infoItem[isHorizontal ? \"rowspan\" : \"colspan\"] = headerItem.depthSize\r\n }\r\n if (headerItem.index >= 0) {\r\n infoItem.dataSourceIndex = headerItem.index\r\n }\r\n if (isTree && headerItem.children && headerItem.children.length && !headerItem.children[0].isMetric) {\r\n infoItem.width = null;\r\n infoItem.isWhiteSpace = true\r\n }\r\n return infoItem\r\n }(options.headerItem, breadth, options.isHorizontal, options.isTree);\r\n ! function(info, infoItem, itemIndex, depthIndex, isHorizontal) {\r\n var index = isHorizontal ? depthIndex : itemIndex;\r\n while (!info[index]) {\r\n info.push([])\r\n }\r\n if (isHorizontal) {\r\n info[index].push(infoItem)\r\n } else {\r\n info[index].unshift(infoItem)\r\n }\r\n }(info, itemInfo, options.index, options.depth, options.isHorizontal);\r\n if (!options.headerItem.children || 0 === options.headerItem.children.length) {\r\n return options.lastIndex + 1\r\n }\r\n return options.lastIndex\r\n };\r\n var getViewHeaderItems = function(headerItems, headerDescriptions, cellDescriptions, depthSize, options) {\r\n var cellDescriptionsCount = cellDescriptions.length;\r\n var viewHeaderItems = function(headerItems, headerDescriptions) {\r\n var headerDescriptionsCount = headerDescriptions && headerDescriptions.length || 0;\r\n var childrenStack = [];\r\n var d = new Deferred;\r\n var headerItem;\r\n when(foreachTreeAsync(headerItems, (items, index) => {\r\n var item = items[0];\r\n var path = createPath(items);\r\n headerItem = createHeaderItem(childrenStack, path.length, index);\r\n headerItem.type = DATA_TYPE;\r\n headerItem.value = item.value;\r\n headerItem.path = path;\r\n headerItem.text = item.text;\r\n headerItem.index = item.index;\r\n headerItem.displayText = item.displayText;\r\n headerItem.key = item.key;\r\n headerItem.isEmpty = item.isEmpty;\r\n if (path.length < headerDescriptionsCount && (!item.children || 0 !== item.children.length)) {\r\n headerItem.expanded = !!item.children\r\n }\r\n })).done(() => {\r\n d.resolve(createHeaderItem(childrenStack, 0, 0).children || [])\r\n });\r\n return d\r\n }(headerItems, headerDescriptions);\r\n var {\r\n dataFields: dataFields\r\n } = options;\r\n var d = new Deferred;\r\n when(viewHeaderItems).done(viewHeaderItems => {\r\n options.notifyProgress(.5);\r\n if (options.showGrandTotals) {\r\n viewHeaderItems[!options.showTotalsPrior ? \"push\" : \"unshift\"]({\r\n type: GRAND_TOTAL_TYPE,\r\n isEmpty: options.isEmptyGrandTotal\r\n })\r\n }\r\n var hideTotals = false === options.showTotals || dataFields.length > 0 && dataFields.length === options.hiddenTotals.length;\r\n var hideData = dataFields.length > 0 && options.hiddenValues.length === dataFields.length;\r\n if (hideData && hideTotals) {\r\n depthSize = 1\r\n }\r\n if (!hideTotals || \"tree\" === options.layout) {\r\n ! function(headerItems, headerDescriptions, showTotalsPrior, isTree) {\r\n showTotalsPrior = showTotalsPrior || isTree;\r\n foreachTree(headerItems, (items, index) => {\r\n var item = items[0];\r\n var parentChildren = (items[1] ? items[1].children : headerItems) || [];\r\n var dataField = headerDescriptions[items.length - 1];\r\n if (item.type === DATA_TYPE && item.expanded && (false !== dataField.showTotals || isTree)) {\r\n -1 !== index && parentChildren.splice(showTotalsPrior ? index : index + 1, 0, extend({}, item, {\r\n children: null,\r\n type: TOTAL_TYPE,\r\n expanded: showTotalsPrior ? true : null,\r\n isAdditionalTotal: true\r\n }));\r\n if (showTotalsPrior) {\r\n item.expanded = null\r\n }\r\n }\r\n })\r\n }(viewHeaderItems, headerDescriptions, options.showTotalsPrior, \"tree\" === options.layout)\r\n }\r\n when(foreachTreeAsync(viewHeaderItems, items => {\r\n var item = items[0];\r\n if (!item.children || 0 === item.children.length) {\r\n item.depthSize = depthSize - items.length + 1\r\n }\r\n })).done(() => {\r\n if (cellDescriptionsCount > 1) {\r\n ! function(headerItems, cellDescriptions, options) {\r\n foreachTree(headerItems, items => {\r\n var item = items[0];\r\n var i;\r\n if (!item.children || 0 === item.children.length) {\r\n item.children = [];\r\n for (i = 0; i < cellDescriptions.length; i += 1) {\r\n var isGrandTotal = item.type === GRAND_TOTAL_TYPE;\r\n var isTotal = item.type === TOTAL_TYPE;\r\n var isValue = item.type === DATA_TYPE;\r\n var columnIsHidden = false === cellDescriptions[i].visible || isGrandTotal && options.hiddenGrandTotals.includes(i) || isTotal && options.hiddenTotals.includes(i) || isValue && options.hiddenValues.includes(i);\r\n if (columnIsHidden) {\r\n continue\r\n }\r\n item.children.push({\r\n caption: cellDescriptions[i].caption,\r\n path: item.path,\r\n type: item.type,\r\n value: i,\r\n index: item.index,\r\n dataIndex: i,\r\n isMetric: true,\r\n isEmpty: item.isEmpty && item.isEmpty[i]\r\n })\r\n }\r\n }\r\n })\r\n }(viewHeaderItems, cellDescriptions, options)\r\n }!options.showEmpty && function(headerItems) {\r\n foreachTree([{\r\n children: headerItems\r\n }], (items, index) => {\r\n var item = items[0];\r\n var parentChildren = (items[1] ? items[1].children : headerItems) || [];\r\n var {\r\n isEmpty: isEmpty\r\n } = item;\r\n if (isEmpty && isEmpty.length) {\r\n isEmpty = item.isEmpty.filter(isEmpty => isEmpty).length === isEmpty.length\r\n }\r\n if (item && !item.children && isEmpty) {\r\n parentChildren.splice(index, 1);\r\n ! function removeEmptyParent(items, index) {\r\n var parent = items[index + 1];\r\n if (!items[index].children.length && parent && parent.children) {\r\n parent.children.splice(parent.children.indexOf(items[index]), 1);\r\n removeEmptyParent(items, index + 1)\r\n }\r\n }(items, 1)\r\n }\r\n })\r\n }(viewHeaderItems);\r\n options.notifyProgress(.75);\r\n when(foreachTreeAsync(viewHeaderItems, items => {\r\n var item = items[0];\r\n var {\r\n isMetric: isMetric\r\n } = item;\r\n var field = headerDescriptions[items.length - 1] || {};\r\n if (item.type === DATA_TYPE && !isMetric) {\r\n item.width = field.width\r\n }\r\n if (hideData && item.type === DATA_TYPE) {\r\n var parentChildren = (items[1] ? items[1].children : viewHeaderItems) || [];\r\n parentChildren.splice(parentChildren.indexOf(item), 1);\r\n return\r\n }\r\n if (isMetric) {\r\n item.wordWrapEnabled = cellDescriptions[item.dataIndex].wordWrapEnabled\r\n } else {\r\n item.wordWrapEnabled = field.wordWrapEnabled\r\n }\r\n item.isLast = !item.children || !item.children.length;\r\n if (item.isLast) {\r\n each(options.sortBySummaryPaths, (_, sortBySummaryPath) => {\r\n if (!isDefined(item.dataIndex)) {\r\n sortBySummaryPath = sortBySummaryPath.slice(0);\r\n sortBySummaryPath.pop()\r\n }\r\n if (function(items, sortBySummaryPath) {\r\n var path;\r\n var item = items[0];\r\n var stringValuesUsed = isString(sortBySummaryPath[0]);\r\n var headerItem = item.dataIndex >= 0 ? items[1] : item;\r\n if (stringValuesUsed && -1 !== sortBySummaryPath[0].indexOf(\"&[\") && headerItem.key || !headerItem.key) {\r\n path = createPath(items)\r\n } else {\r\n path = map(items, item => item.dataIndex >= 0 ? item.value : item.text).reverse()\r\n }\r\n if (item.type === GRAND_TOTAL_TYPE) {\r\n path = path.slice(1)\r\n }\r\n return path.join(\"/\") === sortBySummaryPath.join(\"/\")\r\n }(items, sortBySummaryPath)) {\r\n item.sorted = true;\r\n return false\r\n }\r\n return\r\n })\r\n }\r\n item.text = function(item, description, options) {\r\n var {\r\n text: text\r\n } = item;\r\n if (isDefined(item.displayText)) {\r\n text = item.displayText\r\n } else if (isDefined(item.caption)) {\r\n text = item.caption\r\n } else if (item.type === GRAND_TOTAL_TYPE) {\r\n text = options.texts.grandTotal\r\n }\r\n if (item.isAdditionalTotal) {\r\n text = format(options.texts.total || \"\", text)\r\n }\r\n return text\r\n }(item, 0, options)\r\n })).done(() => {\r\n if (!viewHeaderItems.length) {\r\n viewHeaderItems.push({})\r\n }\r\n options.notifyProgress(1);\r\n d.resolve(viewHeaderItems)\r\n })\r\n })\r\n });\r\n return d\r\n };\r\n\r\n function createHeaderItem(childrenStack, depth, index) {\r\n var parent = childrenStack[depth] = childrenStack[depth] || [];\r\n var node = parent[index] = {};\r\n if (childrenStack[depth + 1]) {\r\n node.children = childrenStack[depth + 1];\r\n for (var i = depth + 1; i < childrenStack.length; i += 1) {\r\n childrenStack[i] = void 0\r\n }\r\n childrenStack.length = depth + 1\r\n }\r\n return node\r\n }\r\n return function(headerItems, headerDescriptions, cellDescriptions, isHorizontal, options) {\r\n var info = [];\r\n var depthSize = function(headerItems) {\r\n var depth = 0;\r\n foreachTree(headerItems, items => {\r\n depth = math.max(depth, items.length)\r\n });\r\n return depth\r\n }(headerItems) || 1;\r\n var d = new Deferred;\r\n getViewHeaderItems(headerItems, headerDescriptions, cellDescriptions, depthSize, options).done(viewHeaderItems => {\r\n ! function(info, viewHeaderItems, depthSize, isHorizontal, isTree) {\r\n var lastIndex = 0;\r\n var index;\r\n var depth;\r\n var indexesByDepth = [0];\r\n foreachTree(viewHeaderItems, items => {\r\n var headerItem = items[0];\r\n depth = headerItem.isMetric ? depthSize : items.length - 1;\r\n while (indexesByDepth.length - 1 < depth) {\r\n indexesByDepth.push(indexesByDepth[indexesByDepth.length - 1])\r\n }\r\n index = indexesByDepth[depth] || 0;\r\n lastIndex = addInfoItem(info, {\r\n headerItem: headerItem,\r\n index: index,\r\n lastIndex: lastIndex,\r\n depth: depth,\r\n isHorizontal: isHorizontal,\r\n isTree: isTree\r\n });\r\n indexesByDepth.length = depth;\r\n indexesByDepth.push(lastIndex)\r\n })\r\n }(info, viewHeaderItems, depthSize, isHorizontal, \"tree\" === options.layout);\r\n options.notifyProgress(1);\r\n d.resolve(info)\r\n });\r\n return d\r\n }\r\n }();\r\n\r\n function createSortPaths(headerFields, dataFields) {\r\n var sortBySummaryPaths = [];\r\n each(headerFields, (_, headerField) => {\r\n var fieldIndex = findField(dataFields, headerField.sortBySummaryField);\r\n if (fieldIndex >= 0) {\r\n sortBySummaryPaths.push((headerField.sortBySummaryPath || []).concat([fieldIndex]))\r\n }\r\n });\r\n return sortBySummaryPaths\r\n }\r\n\r\n function foreachRowInfo(rowsInfo, callback) {\r\n var columnOffset = 0;\r\n var columnOffsetResetIndexes = [];\r\n for (var i = 0; i < rowsInfo.length; i += 1) {\r\n for (var j = 0; j < rowsInfo[i].length; j += 1) {\r\n var rowSpanOffset = (rowsInfo[i][j].rowspan || 1) - 1;\r\n var visibleIndex = i + rowSpanOffset;\r\n if (columnOffsetResetIndexes[i]) {\r\n columnOffset -= columnOffsetResetIndexes[i];\r\n columnOffsetResetIndexes[i] = 0\r\n }\r\n if (false === callback(rowsInfo[i][j], visibleIndex, i, j, columnOffset)) {\r\n break\r\n }\r\n columnOffsetResetIndexes[i + (rowsInfo[i][j].rowspan || 1)] = (columnOffsetResetIndexes[i + (rowsInfo[i][j].rowspan || 1)] || 0) + 1;\r\n columnOffset += 1\r\n }\r\n }\r\n }\r\n\r\n function getHeaderIndexedItems(headerItems, options) {\r\n var visibleIndex = 0;\r\n var indexedItems = [];\r\n foreachTree(headerItems, items => {\r\n var headerItem = items[0];\r\n var path = createPath(items);\r\n if (headerItem.children && false === options.showTotals) {\r\n return\r\n }\r\n var indexedItem = extend(true, {}, headerItem, {\r\n visibleIndex: visibleIndex += 1,\r\n path: path\r\n });\r\n if (isDefined(indexedItem.index)) {\r\n indexedItems[indexedItem.index] = indexedItem\r\n } else {\r\n indexedItems.push(indexedItem)\r\n }\r\n });\r\n return indexedItems\r\n }\r\n\r\n function createScrollController(dataController, component, dataAdapter) {\r\n return new VirtualScrollControllerModule.VirtualScrollController(component, extend({\r\n hasKnownLastPage: () => true,\r\n pageCount() {\r\n return math.ceil(this.totalItemsCount() / this.pageSize())\r\n },\r\n updateLoading() {},\r\n itemsCount() {\r\n if (this.pageIndex() < this.pageCount() - 1) {\r\n return this.pageSize()\r\n }\r\n return this.totalItemsCount() % this.pageSize()\r\n },\r\n items: () => [],\r\n viewportItems: () => [],\r\n onChanged() {},\r\n isLoading: () => dataController.isLoading(),\r\n changingDuration() {\r\n var dataSource = dataController._dataSource;\r\n if (dataSource.paginate()) {\r\n return CHANGING_DURATION_IF_PAGINATE\r\n }\r\n return dataController._changingDuration || 0\r\n }\r\n }, dataAdapter))\r\n }\r\n var members = {\r\n ctor(options) {\r\n var that = this;\r\n var virtualScrollControllerChanged = that._fireChanged.bind(that);\r\n options = that._options = options || {};\r\n that.dataSourceChanged = Callbacks();\r\n that._dataSource = that._createDataSource(options);\r\n if (options.component && \"virtual\" === options.component.option(\"scrolling.mode\")) {\r\n that._rowsScrollController = createScrollController(that, options.component, {\r\n totalItemsCount: () => that.totalRowCount(),\r\n pageIndex: index => that.rowPageIndex(index),\r\n pageSize: () => that.rowPageSize(),\r\n load() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowsScrollController.pageIndex(this.pageCount() - 1)\r\n }\r\n return that._rowsScrollController.handleDataChanged((function() {\r\n if (that._dataSource.paginate()) {\r\n that._dataSource.load()\r\n } else {\r\n virtualScrollControllerChanged.apply(this, arguments)\r\n }\r\n }))\r\n }\r\n });\r\n that._columnsScrollController = createScrollController(that, options.component, {\r\n totalItemsCount: () => that.totalColumnCount(),\r\n pageIndex: index => that.columnPageIndex(index),\r\n pageSize: () => that.columnPageSize(),\r\n load() {\r\n if (that._columnsScrollController.pageIndex() >= this.pageCount()) {\r\n that._columnsScrollController.pageIndex(this.pageCount() - 1)\r\n }\r\n return that._columnsScrollController.handleDataChanged((function() {\r\n if (that._dataSource.paginate()) {\r\n that._dataSource.load()\r\n } else {\r\n virtualScrollControllerChanged.apply(this, arguments)\r\n }\r\n }))\r\n }\r\n })\r\n }\r\n that._stateStoringController = new stateStoring.StateStoringController(options.component).init();\r\n that._columnsInfo = [];\r\n that._rowsInfo = [];\r\n that._cellsInfo = [];\r\n that.expandValueChanging = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.progressChanged = Callbacks();\r\n that.scrollChanged = Callbacks();\r\n that.load();\r\n that._update();\r\n that.changed = Callbacks()\r\n },\r\n _fireChanged() {\r\n var startChanging = new Date;\r\n this.changed && !this._lockChanged && this.changed.fire();\r\n this._changingDuration = new Date - startChanging\r\n },\r\n _correctSkipsTakes(rowIndex, rowSkip, rowSpan, levels, skips, takes) {\r\n var endIndex = rowSpan ? rowIndex + rowSpan - 1 : rowIndex;\r\n skips[levels.length] = skips[levels.length] || 0;\r\n takes[levels.length] = takes[levels.length] || 0;\r\n if (endIndex < rowSkip) {\r\n skips[levels.length] += 1\r\n } else {\r\n takes[levels.length] += 1\r\n }\r\n },\r\n _calculatePagingForRowExpandedPaths(options, skips, takes, rowExpandedSkips, rowExpandedTakes) {\r\n var rows = this._rowsInfo;\r\n var rowCount = Math.min(options.rowSkip + options.rowTake, rows.length);\r\n var {\r\n rowExpandedPaths: rowExpandedPaths\r\n } = options;\r\n var levels = [];\r\n var expandedPathIndexes = {};\r\n var i;\r\n var j;\r\n var path;\r\n rowExpandedPaths.forEach((path, index) => {\r\n expandedPathIndexes[path] = index\r\n });\r\n for (i = 0; i < rowCount; i += 1) {\r\n takes.length = skips.length = levels.length + 1;\r\n for (j = 0; j < rows[i].length; j += 1) {\r\n var cell = rows[i][j];\r\n if (\"D\" === cell.type) {\r\n this._correctSkipsTakes(i, options.rowSkip, cell.rowspan, levels, skips, takes);\r\n path = cell.path || path;\r\n var expandIndex = path && path.length > 1 ? expandedPathIndexes[path.slice(0, -1)] : -1;\r\n if (expandIndex >= 0) {\r\n rowExpandedSkips[expandIndex] = skips[levels.length] || 0;\r\n rowExpandedTakes[expandIndex] = takes[levels.length] || 0\r\n }\r\n if (cell.rowspan) {\r\n levels.push(cell.rowspan)\r\n }\r\n }\r\n }\r\n levels = levels.map(level => level - 1).filter(level => level > 0)\r\n }\r\n },\r\n _calculatePagingForColumnExpandedPaths(options, skips, takes, expandedSkips, expandedTakes) {\r\n var skipByPath = {};\r\n var takeByPath = {};\r\n foreachColumnInfo(this._columnsInfo, (columnInfo, columnIndex) => {\r\n if (\"D\" === columnInfo.type && columnInfo.path && void 0 === columnInfo.dataIndex) {\r\n var colspan = columnInfo.colspan || 1;\r\n var path = columnInfo.path.slice(0, -1).toString();\r\n skipByPath[path] = skipByPath[path] || 0;\r\n takeByPath[path] = takeByPath[path] || 0;\r\n if (columnIndex + colspan <= options.columnSkip) {\r\n skipByPath[path] += 1\r\n } else if (columnIndex < options.columnSkip + options.columnTake) {\r\n takeByPath[path] += 1\r\n }\r\n }\r\n });\r\n skips[0] = skipByPath[\"\"];\r\n takes[0] = takeByPath[\"\"];\r\n options.columnExpandedPaths.forEach((path, index) => {\r\n var skip = skipByPath[path];\r\n var take = takeByPath[path];\r\n if (void 0 !== skip) {\r\n expandedSkips[index] = skip\r\n }\r\n if (void 0 !== take) {\r\n expandedTakes[index] = take\r\n }\r\n })\r\n },\r\n _processPagingForExpandedPaths(options, area, storeLoadOptions, reload) {\r\n var expandedPaths = options[\"\".concat(area, \"ExpandedPaths\")];\r\n var expandedSkips = expandedPaths.map(() => 0);\r\n var expandedTakes = expandedPaths.map(() => reload ? options.pageSize : 0);\r\n var skips = [];\r\n var takes = [];\r\n if (!reload) {\r\n if (\"row\" === area) {\r\n this._calculatePagingForRowExpandedPaths(options, skips, takes, expandedSkips, expandedTakes)\r\n } else {\r\n this._calculatePagingForColumnExpandedPaths(options, skips, takes, expandedSkips, expandedTakes)\r\n }\r\n }\r\n this._savePagingForExpandedPaths(options, area, storeLoadOptions, skips[0], takes[0], expandedSkips, expandedTakes)\r\n },\r\n _savePagingForExpandedPaths(options, area, storeLoadOptions, skip, take, expandedSkips, expandedTakes) {\r\n var expandedPaths = options[\"\".concat(area, \"ExpandedPaths\")];\r\n options[\"\".concat(area, \"ExpandedPaths\")] = [];\r\n options[\"\".concat(area, \"Skip\")] = void 0 !== skip ? skip : options[\"\".concat(area, \"Skip\")];\r\n options[\"\".concat(area, \"Take\")] = void 0 !== take ? take : options[\"\".concat(area, \"Take\")];\r\n for (var i = 0; i < expandedPaths.length; i += 1) {\r\n if (expandedTakes[i]) {\r\n var isOppositeArea = options.area && options.area !== area;\r\n storeLoadOptions.push(extend({\r\n area: area,\r\n headerName: \"\".concat(area, \"s\")\r\n }, options, {\r\n [\"\".concat(area, \"Skip\")]: expandedSkips[i],\r\n [\"\".concat(area, \"Take\")]: expandedTakes[i],\r\n [isOppositeArea ? \"oppositePath\" : \"path\"]: expandedPaths[i]\r\n }))\r\n }\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(storeLoadOptions, reload) {\r\n var options = storeLoadOptions[0];\r\n var rowsScrollController = this._rowsScrollController;\r\n if (this._dataSource.paginate() && rowsScrollController) {\r\n var rowPageSize = rowsScrollController.pageSize();\r\n if (\"rows\" === options.headerName) {\r\n options.rowSkip = 0;\r\n options.rowTake = rowPageSize;\r\n options.rowExpandedPaths = []\r\n } else {\r\n options.rowSkip = rowsScrollController.beginPageIndex() * rowPageSize;\r\n options.rowTake = (rowsScrollController.endPageIndex() - rowsScrollController.beginPageIndex() + 1) * rowPageSize;\r\n this._processPagingForExpandedPaths(options, \"row\", storeLoadOptions, reload)\r\n }\r\n }\r\n var columnsScrollController = this._columnsScrollController;\r\n if (this._dataSource.paginate() && columnsScrollController) {\r\n var columnPageSize = columnsScrollController.pageSize();\r\n storeLoadOptions.forEach(options => {\r\n if (\"columns\" === options.headerName) {\r\n options.columnSkip = 0;\r\n options.columnTake = columnPageSize;\r\n options.columnExpandedPaths = []\r\n } else {\r\n options.columnSkip = columnsScrollController.beginPageIndex() * columnPageSize;\r\n options.columnTake = (columnsScrollController.endPageIndex() - columnsScrollController.beginPageIndex() + 1) * columnPageSize;\r\n this._processPagingForExpandedPaths(options, \"column\", storeLoadOptions, reload)\r\n }\r\n })\r\n }\r\n },\r\n load() {\r\n var that = this;\r\n var stateStoringController = this._stateStoringController;\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n stateStoringController.load().always(state => {\r\n if (state) {\r\n that._dataSource.state(state)\r\n } else {\r\n that._dataSource.load()\r\n }\r\n })\r\n } else {\r\n that._dataSource.load()\r\n }\r\n },\r\n calculateVirtualContentParams(contentParams) {\r\n var rowsScrollController = this._rowsScrollController;\r\n var columnsScrollController = this._columnsScrollController;\r\n if (rowsScrollController && columnsScrollController) {\r\n rowsScrollController.viewportItemSize(contentParams.virtualRowHeight);\r\n rowsScrollController.viewportSize(contentParams.viewportHeight / rowsScrollController.viewportItemSize());\r\n rowsScrollController.setContentItemSizes(contentParams.itemHeights);\r\n columnsScrollController.viewportItemSize(contentParams.virtualColumnWidth);\r\n columnsScrollController.viewportSize(contentParams.viewportWidth / columnsScrollController.viewportItemSize());\r\n columnsScrollController.setContentItemSizes(contentParams.itemWidths);\r\n deferUpdate(() => {\r\n columnsScrollController.loadIfNeed();\r\n rowsScrollController.loadIfNeed()\r\n });\r\n this.scrollChanged.fire({\r\n left: columnsScrollController.getViewportPosition(),\r\n top: rowsScrollController.getViewportPosition()\r\n });\r\n return {\r\n contentTop: rowsScrollController.getContentOffset(),\r\n contentLeft: columnsScrollController.getContentOffset(),\r\n width: columnsScrollController.getVirtualContentSize(),\r\n height: rowsScrollController.getVirtualContentSize()\r\n }\r\n }\r\n return\r\n },\r\n setViewportPosition(left, top) {\r\n this._rowsScrollController.setViewportPosition(top || 0);\r\n this._columnsScrollController.setViewportPosition(left || 0)\r\n },\r\n subscribeToWindowScrollEvents($element) {\r\n var _a;\r\n null === (_a = this._rowsScrollController) || void 0 === _a ? void 0 : _a.subscribeToWindowScrollEvents($element)\r\n },\r\n updateWindowScrollPosition(position) {\r\n var _a;\r\n null === (_a = this._rowsScrollController) || void 0 === _a ? void 0 : _a.scrollTo(position)\r\n },\r\n updateViewOptions(options) {\r\n extend(this._options, options);\r\n this._update()\r\n },\r\n _handleExpandValueChanging(e) {\r\n this.expandValueChanging.fire(e)\r\n },\r\n _handleLoadingChanged(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleProgressChanged(progress) {\r\n this.progressChanged.fire(progress)\r\n },\r\n _handleFieldsPrepared(e) {\r\n this._options.onFieldsPrepared && this._options.onFieldsPrepared(e)\r\n },\r\n _createDataSource(options) {\r\n var that = this;\r\n var dataSourceOptions = options.dataSource;\r\n var dataSource;\r\n that._isSharedDataSource = dataSourceOptions instanceof PivotGridDataSource;\r\n if (that._isSharedDataSource) {\r\n dataSource = dataSourceOptions\r\n } else {\r\n dataSource = new PivotGridDataSource(dataSourceOptions)\r\n }\r\n that._expandValueChangingHandler = that._handleExpandValueChanging.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._fieldsPreparedHandler = that._handleFieldsPrepared.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changedHandler = function() {\r\n that._update();\r\n that.dataSourceChanged.fire()\r\n };\r\n that._progressChangedHandler = function(progress) {\r\n that._handleProgressChanged(.8 * progress)\r\n };\r\n dataSource.on(\"changed\", that._changedHandler);\r\n dataSource.on(\"expandValueChanging\", that._expandValueChangingHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"progressChanged\", that._progressChangedHandler);\r\n dataSource.on(\"fieldsPrepared\", that._fieldsPreparedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n return dataSource\r\n },\r\n getDataSource() {\r\n return this._dataSource\r\n },\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n },\r\n beginLoading() {\r\n this._dataSource.beginLoading()\r\n },\r\n endLoading() {\r\n this._dataSource.endLoading()\r\n },\r\n _update() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var options = that._options;\r\n var columnFields = dataSource.getAreaFields(\"column\");\r\n var rowFields = dataSource.getAreaFields(\"row\");\r\n var dataFields = dataSource.getAreaFields(\"data\");\r\n var dataFieldsForRows = \"row\" === options.dataFieldArea ? dataFields : [];\r\n var dataFieldsForColumns = \"row\" !== options.dataFieldArea ? dataFields : [];\r\n var data = dataSource.getData();\r\n var hiddenTotals = function(dataFields) {\r\n var result = [];\r\n each(dataFields, (index, field) => {\r\n if (false === field.showTotals) {\r\n result.push(index)\r\n }\r\n });\r\n return result\r\n }(dataFields);\r\n var hiddenValues = function(dataFields) {\r\n var result = [];\r\n dataFields.forEach((field, index) => {\r\n if (void 0 === field.showValues && false === field.showTotals || false === field.showValues) {\r\n result.push(index)\r\n }\r\n });\r\n return result\r\n }(dataFields);\r\n var hiddenGrandTotals = function(dataFields, columnFields) {\r\n var result = [];\r\n each(dataFields, (index, field) => {\r\n if (false === field.showGrandTotals) {\r\n result.push(index)\r\n }\r\n });\r\n if (0 === columnFields.length && result.length === dataFields.length) {\r\n result = []\r\n }\r\n return result\r\n }(dataFields, columnFields);\r\n var grandTotalsAreHiddenForNotAllDataFields = dataFields.length > 0 ? hiddenGrandTotals.length !== dataFields.length : true;\r\n var rowOptions = {\r\n isEmptyGrandTotal: data.isEmptyGrandTotalRow,\r\n texts: options.texts || {},\r\n hiddenTotals: hiddenTotals,\r\n hiddenValues: hiddenValues,\r\n hiddenGrandTotals: [],\r\n showTotals: options.showRowTotals,\r\n showGrandTotals: false !== options.showRowGrandTotals && grandTotalsAreHiddenForNotAllDataFields,\r\n sortBySummaryPaths: createSortPaths(columnFields, dataFields),\r\n showTotalsPrior: \"rows\" === options.showTotalsPrior || \"both\" === options.showTotalsPrior,\r\n showEmpty: !options.hideEmptySummaryCells,\r\n layout: options.rowHeaderLayout,\r\n fields: rowFields,\r\n dataFields: dataFields,\r\n progress: 0\r\n };\r\n var columnOptions = {\r\n isEmptyGrandTotal: data.isEmptyGrandTotalColumn,\r\n texts: options.texts || {},\r\n hiddenTotals: hiddenTotals,\r\n hiddenValues: hiddenValues,\r\n hiddenGrandTotals: hiddenGrandTotals,\r\n showTotals: options.showColumnTotals,\r\n showTotalsPrior: \"columns\" === options.showTotalsPrior || \"both\" === options.showTotalsPrior,\r\n showGrandTotals: false !== options.showColumnGrandTotals && grandTotalsAreHiddenForNotAllDataFields,\r\n sortBySummaryPaths: createSortPaths(rowFields, dataFields),\r\n showEmpty: !options.hideEmptySummaryCells,\r\n fields: columnFields,\r\n dataFields: dataFields,\r\n progress: 0\r\n };\r\n var notifyProgress = function(progress) {\r\n this.progress = progress;\r\n that._handleProgressChanged(.8 + .1 * rowOptions.progress + .1 * columnOptions.progress)\r\n };\r\n rowOptions.notifyProgress = notifyProgress;\r\n columnOptions.notifyProgress = notifyProgress;\r\n if (!isDefined(data.grandTotalRowIndex)) {\r\n data.grandTotalRowIndex = getHeaderIndexedItems(data.rows, rowOptions).length\r\n }\r\n if (!isDefined(data.grandTotalColumnIndex)) {\r\n data.grandTotalColumnIndex = getHeaderIndexedItems(data.columns, columnOptions).length\r\n }\r\n dataSource._changeLoadingCount(1);\r\n when(createHeaderInfo(data.columns, columnFields, dataFieldsForColumns, true, columnOptions), createHeaderInfo(data.rows, rowFields, dataFieldsForRows, false, rowOptions)).always(() => {\r\n dataSource._changeLoadingCount(-1)\r\n }).done((columnsInfo, rowsInfo) => {\r\n that._columnsInfo = columnsInfo;\r\n that._rowsInfo = rowsInfo;\r\n if (that._rowsScrollController && that._columnsScrollController && that.changed && !that._dataSource.paginate()) {\r\n that._rowsScrollController.reset(true);\r\n that._columnsScrollController.reset(true);\r\n that._lockChanged = true;\r\n that._rowsScrollController.load();\r\n that._columnsScrollController.load();\r\n that._lockChanged = false\r\n }\r\n }).done(() => {\r\n that._fireChanged();\r\n if (that._stateStoringController.isEnabled() && !that._dataSource.isLoading()) {\r\n that._stateStoringController.state(that._dataSource.state());\r\n that._stateStoringController.save()\r\n }\r\n })\r\n },\r\n getRowsInfo(getAllData) {\r\n var rowsInfo = this._rowsInfo;\r\n var scrollController = this._rowsScrollController;\r\n var rowspan;\r\n if (scrollController && !getAllData) {\r\n var startIndex = scrollController.beginPageIndex() * this.rowPageSize();\r\n var endIndex = scrollController.endPageIndex() * this.rowPageSize() + this.rowPageSize();\r\n var newRowsInfo = [];\r\n var maxDepth = 1;\r\n foreachRowInfo(rowsInfo, (rowInfo, visibleIndex, rowIndex, _, columnIndex) => {\r\n var isVisible = visibleIndex >= startIndex && rowIndex < endIndex;\r\n var index = rowIndex < startIndex ? 0 : rowIndex - startIndex;\r\n var cell = rowInfo;\r\n if (isVisible) {\r\n newRowsInfo[index] = newRowsInfo[index] || [];\r\n rowspan = rowIndex < startIndex ? rowInfo.rowspan - (startIndex - rowIndex) || 1 : rowInfo.rowspan;\r\n if (startIndex + index + rowspan > endIndex) {\r\n rowspan = endIndex - (index + startIndex) || 1\r\n }\r\n if (rowspan !== rowInfo.rowspan) {\r\n cell = extend({}, cell, {\r\n rowspan: rowspan\r\n })\r\n }\r\n newRowsInfo[index].push(cell);\r\n maxDepth = math.max(maxDepth, columnIndex + 1)\r\n } else {\r\n return false\r\n }\r\n return\r\n });\r\n foreachRowInfo(newRowsInfo, (rowInfo, visibleIndex, rowIndex, columnIndex, realColumnIndex) => {\r\n var colspan = rowInfo.colspan || 1;\r\n if (realColumnIndex + colspan > maxDepth) {\r\n newRowsInfo[rowIndex][columnIndex] = extend({}, rowInfo, {\r\n colspan: maxDepth - realColumnIndex || 1\r\n })\r\n }\r\n });\r\n return newRowsInfo\r\n }\r\n return rowsInfo\r\n },\r\n getColumnsInfo(getAllData) {\r\n var info = this._columnsInfo;\r\n var scrollController = this._columnsScrollController;\r\n if (scrollController && !getAllData) {\r\n var startIndex = scrollController.beginPageIndex() * this.columnPageSize();\r\n var endIndex = scrollController.endPageIndex() * this.columnPageSize() + this.columnPageSize();\r\n info = createColumnsInfo(info, startIndex, endIndex)\r\n }\r\n return info\r\n },\r\n totalRowCount() {\r\n return this._rowsInfo.length\r\n },\r\n rowPageIndex(index) {\r\n if (void 0 !== index) {\r\n this._rowPageIndex = index\r\n }\r\n return this._rowPageIndex || 0\r\n },\r\n totalColumnCount() {\r\n var count = 0;\r\n if (this._columnsInfo && this._columnsInfo.length) {\r\n for (var i = 0; i < this._columnsInfo[0].length; i += 1) {\r\n count += this._columnsInfo[0][i].colspan || 1\r\n }\r\n }\r\n return count\r\n },\r\n rowPageSize(size) {\r\n if (void 0 !== size) {\r\n this._rowPageSize = size\r\n }\r\n return this._rowPageSize || 20\r\n },\r\n columnPageSize(size) {\r\n if (void 0 !== size) {\r\n this._columnPageSize = size\r\n }\r\n return this._columnPageSize || 20\r\n },\r\n columnPageIndex(index) {\r\n if (void 0 !== index) {\r\n this._columnPageIndex = index\r\n }\r\n return this._columnPageIndex || 0\r\n },\r\n getCellsInfo(getAllData) {\r\n var rowsInfo = this.getRowsInfo(getAllData);\r\n var columnsInfo = this.getColumnsInfo(getAllData);\r\n var data = this._dataSource.getData();\r\n var texts = this._options.texts || {};\r\n return function(rowsInfo, columnsInfo, data, dataFields, dataFieldArea, errorText) {\r\n var info = [];\r\n var dataFieldAreaInRows = \"row\" === dataFieldArea;\r\n var dataSourceCells = data.values;\r\n dataSourceCells.length && foreachRowInfo(rowsInfo, (rowInfo, rowIndex) => {\r\n var row = info[rowIndex] = [];\r\n var dataRow = dataSourceCells[rowInfo.dataSourceIndex >= 0 ? rowInfo.dataSourceIndex : data.grandTotalRowIndex] || [];\r\n rowInfo.isLast && foreachColumnInfo(columnsInfo, (columnInfo, columnIndex) => {\r\n var dataIndex = (dataFieldAreaInRows ? rowInfo.dataIndex : columnInfo.dataIndex) || 0;\r\n var dataField = dataFields[dataIndex];\r\n if (columnInfo.isLast && dataField && false !== dataField.visible) {\r\n var cell = dataRow[columnInfo.dataSourceIndex >= 0 ? columnInfo.dataSourceIndex : data.grandTotalColumnIndex];\r\n if (!Array.isArray(cell)) {\r\n cell = [cell]\r\n }\r\n var cellValue = cell[dataIndex];\r\n row[columnIndex] = {\r\n text: formatCellValue(cellValue, dataField, errorText),\r\n value: cellValue,\r\n format: dataField.format,\r\n dataType: dataField.dataType,\r\n columnType: columnInfo.type,\r\n rowType: rowInfo.type,\r\n rowPath: rowInfo.path || [],\r\n columnPath: columnInfo.path || [],\r\n dataIndex: dataIndex\r\n };\r\n if (dataField.width) {\r\n row[columnIndex].width = dataField.width\r\n }\r\n }\r\n })\r\n });\r\n return info\r\n }(rowsInfo, columnsInfo, data, this._dataSource.getAreaFields(\"data\"), this._options.dataFieldArea, texts.dataNotAvailable)\r\n },\r\n dispose() {\r\n if (this._isSharedDataSource) {\r\n this._dataSource.off(\"changed\", this._changedHandler);\r\n this._dataSource.off(\"expandValueChanging\", this._expandValueChangingHandler);\r\n this._dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n this._dataSource.off(\"progressChanged\", this._progressChangedHandler);\r\n this._dataSource.off(\"fieldsPrepared\", this._fieldsPreparedHandler);\r\n this._dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n this._columnsScrollController && this._columnsScrollController.dispose();\r\n this._rowsScrollController && this._rowsScrollController.dispose();\r\n this._stateStoringController.dispose();\r\n this.expandValueChanging.empty();\r\n this.changed.empty();\r\n this.loadingChanged.empty();\r\n this.progressChanged.empty();\r\n this.scrollChanged.empty();\r\n this.dataSourceChanged.empty()\r\n }\r\n };\r\n proxyMethod(members, \"applyPartialDataSource\");\r\n proxyMethod(members, \"collapseHeaderItem\");\r\n proxyMethod(members, \"expandHeaderItem\");\r\n proxyMethod(members, \"getData\");\r\n proxyMethod(members, \"isEmpty\");\r\n return members\r\n}());\r\nvar DataController__internals = {\r\n NO_DATA_AVAILABLE_TEXT: NOT_AVAILABLE\r\n};\r\nexport default {\r\n DataController: DataController,\r\n DataController__internals: DataController__internals\r\n};\r\nexport {\r\n DataController,\r\n DataController__internals\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/export/m_export.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../../../core/class\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport formatHelper from \"../../../../format_helper\";\r\nimport localizationNumber from \"../../../../localization/number\";\r\nimport {\r\n prepareItems\r\n} from \"../../../grids/grid_core/m_export\";\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar DEFAUL_COLUMN_WIDTH = 100;\r\nvar ExportController = {\r\n exportTo() {\r\n var onExporting = this._createActionByOption(\"onExporting\");\r\n var eventArgs = {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n fileName: \"PivotGrid\",\r\n cancel: false\r\n };\r\n isFunction(onExporting) && onExporting(eventArgs)\r\n },\r\n _getLength(items) {\r\n var i;\r\n var itemCount = items[0].length;\r\n var cellCount = 0;\r\n for (i = 0; i < itemCount; i += 1) {\r\n cellCount += items[0][i].colspan || 1\r\n }\r\n return cellCount\r\n },\r\n _correctCellsInfoItemLengths(cellsInfo, expectedLength) {\r\n for (var i = 0; i < cellsInfo.length; i += 1) {\r\n while (cellsInfo[i].length < expectedLength) {\r\n cellsInfo[i].push({})\r\n }\r\n }\r\n return cellsInfo\r\n },\r\n _calculateCellInfoItemLength(columnsRow) {\r\n var result = 0;\r\n for (var columnIndex = 0; columnIndex < columnsRow.length; columnIndex += 1) {\r\n result += isDefined(columnsRow[columnIndex].colspan) ? columnsRow[columnIndex].colspan : 1\r\n }\r\n return result\r\n },\r\n _getEmptyCell: () => ({\r\n text: \"\",\r\n value: void 0,\r\n colspan: 1,\r\n rowspan: 1\r\n }),\r\n _getAllItems(columnsInfo, rowsInfoItems, cellsInfo) {\r\n var cellIndex;\r\n var rowIndex;\r\n var correctedCellsInfo = cellsInfo;\r\n var rowsLength = this._getLength(rowsInfoItems);\r\n var headerRowsCount = columnsInfo.length;\r\n if (columnsInfo.length > 0 && columnsInfo[0].length > 0 && cellsInfo.length > 0 && 0 === cellsInfo[0].length) {\r\n var cellInfoItemLength = this._calculateCellInfoItemLength(columnsInfo[0]);\r\n if (cellInfoItemLength > 0) {\r\n correctedCellsInfo = this._correctCellsInfoItemLengths(cellsInfo, cellInfoItemLength)\r\n }\r\n }\r\n if (0 === correctedCellsInfo.length) {\r\n var rowsCount = rowsInfoItems.length;\r\n var collapsedColumnCount = columnsInfo.map(headerRowWithColumns => headerRowWithColumns.filter(row => !row.expanded).length).reduce((result, collapsedCount) => result + collapsedCount, 0);\r\n for (var rowIdx = 0; rowIdx < rowsCount; rowIdx += 1) {\r\n correctedCellsInfo[rowIdx] = [];\r\n for (var colIdx = 0; colIdx < collapsedColumnCount; colIdx += 1) {\r\n correctedCellsInfo[rowIdx][colIdx] = this._getEmptyCell()\r\n }\r\n }\r\n }\r\n var sourceItems = columnsInfo.concat(correctedCellsInfo);\r\n for (rowIndex = 0; rowIndex < rowsInfoItems.length; rowIndex += 1) {\r\n for (cellIndex = rowsInfoItems[rowIndex].length - 1; cellIndex >= 0; cellIndex -= 1) {\r\n if (!isDefined(sourceItems[rowIndex + headerRowsCount])) {\r\n sourceItems[rowIndex + headerRowsCount] = []\r\n }\r\n sourceItems[rowIndex + headerRowsCount].splice(0, 0, extend({}, rowsInfoItems[rowIndex][cellIndex]))\r\n }\r\n }\r\n sourceItems[0].splice(0, 0, extend({}, this._getEmptyCell(), {\r\n alignment: getDefaultAlignment(this._options.rtlEnabled),\r\n colspan: rowsLength,\r\n rowspan: headerRowsCount\r\n }));\r\n return prepareItems(sourceItems, this._getEmptyCell())\r\n },\r\n getDataProvider() {\r\n return new DataProvider(this)\r\n }\r\n};\r\nvar DataProvider = Class.inherit({\r\n ctor(exportController) {\r\n this._exportController = exportController\r\n },\r\n ready() {\r\n this._initOptions();\r\n var options = this._options;\r\n return when(options.items).done(items => {\r\n var headerSize = items[0][0].rowspan;\r\n var columns = items[headerSize - 1];\r\n each(columns, (_, column) => {\r\n column.width = DEFAUL_COLUMN_WIDTH\r\n });\r\n options.columns = columns;\r\n options.items = items\r\n })\r\n },\r\n _initOptions() {\r\n var exportController = this._exportController;\r\n var dataController = exportController._dataController;\r\n var items = new Deferred;\r\n dataController.beginLoading();\r\n setTimeout(() => {\r\n var columnsInfo = extend(true, [], dataController.getColumnsInfo(true));\r\n var rowsInfoItems = extend(true, [], dataController.getRowsInfo(true));\r\n var cellsInfo = dataController.getCellsInfo(true);\r\n items.resolve(exportController._getAllItems(columnsInfo, rowsInfoItems, cellsInfo));\r\n dataController.endLoading()\r\n });\r\n this._options = {\r\n items: items,\r\n rtlEnabled: exportController.option(\"rtlEnabled\"),\r\n dataFields: exportController.getDataSource().getAreaFields(\"data\"),\r\n rowsArea: exportController._rowsArea,\r\n columnsArea: exportController._columnsArea\r\n }\r\n },\r\n getColumns() {\r\n return this._options.columns\r\n },\r\n getColumnsWidths() {\r\n var colsArea = this._options.columnsArea;\r\n var {\r\n rowsArea: rowsArea\r\n } = this._options;\r\n var {\r\n columns: columns\r\n } = this._options;\r\n var useDefaultWidth = !hasWindow() || \"virtual\" === colsArea.option(\"scrolling.mode\") || colsArea.element().is(\":hidden\");\r\n return useDefaultWidth ? columns.map(() => DEFAUL_COLUMN_WIDTH) : rowsArea.getColumnsWidth().concat(colsArea.getColumnsWidth())\r\n },\r\n getRowsCount() {\r\n return this._options.items.length\r\n },\r\n getGroupLevel: () => 0,\r\n getCellMerging(rowIndex, cellIndex) {\r\n var {\r\n items: items\r\n } = this._options;\r\n var item = items[rowIndex] && items[rowIndex][cellIndex];\r\n return item ? {\r\n colspan: item.colspan - 1,\r\n rowspan: item.rowspan - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n },\r\n getFrozenArea() {\r\n return {\r\n x: this.getRowAreaColCount(),\r\n y: this.getColumnAreaRowCount()\r\n }\r\n },\r\n getCellType(rowIndex, cellIndex) {\r\n var style = this.getStyles()[this.getStyleId(rowIndex, cellIndex)];\r\n return style && style.dataType || \"string\"\r\n },\r\n getCellData(rowIndex, cellIndex, isExcelJS) {\r\n var result = {};\r\n var {\r\n items: items\r\n } = this._options;\r\n var item = items[rowIndex] && items[rowIndex][cellIndex] || {};\r\n if (isExcelJS) {\r\n result.cellSourceData = item;\r\n var areaName = this._tryGetAreaName(item, rowIndex, cellIndex);\r\n if (areaName) {\r\n result.cellSourceData.area = areaName\r\n }\r\n result.cellSourceData.rowIndex = rowIndex;\r\n result.cellSourceData.columnIndex = cellIndex\r\n }\r\n if (\"string\" === this.getCellType(rowIndex, cellIndex)) {\r\n result.value = item.text\r\n } else {\r\n result.value = item.value\r\n }\r\n if (result.cellSourceData && result.cellSourceData.isWhiteSpace) {\r\n result.value = \"\"\r\n }\r\n return result\r\n },\r\n _tryGetAreaName(item, rowIndex, cellIndex) {\r\n if (this.isColumnAreaCell(rowIndex, cellIndex)) {\r\n return \"column\"\r\n }\r\n if (this.isRowAreaCell(rowIndex, cellIndex)) {\r\n return \"row\"\r\n }\r\n if (isDefined(item.dataIndex)) {\r\n return \"data\"\r\n }\r\n return\r\n },\r\n isRowAreaCell(rowIndex, cellIndex) {\r\n return rowIndex >= this.getColumnAreaRowCount() && cellIndex < this.getRowAreaColCount()\r\n },\r\n isColumnAreaCell(rowIndex, cellIndex) {\r\n return cellIndex >= this.getRowAreaColCount() && rowIndex < this.getColumnAreaRowCount()\r\n },\r\n getColumnAreaRowCount() {\r\n return this._options.items[0][0].rowspan\r\n },\r\n getRowAreaColCount() {\r\n return this._options.items[0][0].colspan\r\n },\r\n getHeaderStyles() {\r\n return [{\r\n alignment: \"center\",\r\n dataType: \"string\"\r\n }, {\r\n alignment: getDefaultAlignment(this._options.rtlEnabled),\r\n dataType: \"string\"\r\n }]\r\n },\r\n getDataFieldStyles() {\r\n var {\r\n dataFields: dataFields\r\n } = this._options;\r\n var dataItemStyle = {\r\n alignment: this._options.rtlEnabled ? \"left\" : \"right\"\r\n };\r\n var dataFieldStyles = [];\r\n if (dataFields.length) {\r\n dataFields.forEach(dataField => {\r\n dataFieldStyles.push(_extends(_extends({}, dataItemStyle), {\r\n format: dataField.format,\r\n dataType: this.getCellDataType(dataField)\r\n }))\r\n });\r\n return dataFieldStyles\r\n }\r\n return [dataItemStyle]\r\n },\r\n getStyles() {\r\n if (this._styles) {\r\n return this._styles\r\n }\r\n this._styles = [...this.getHeaderStyles(), ...this.getDataFieldStyles()];\r\n return this._styles\r\n },\r\n getCellDataType(field) {\r\n if (field && field.customizeText) {\r\n return \"string\"\r\n }\r\n if (field.dataType) {\r\n return field.dataType\r\n }\r\n if (field.format) {\r\n if (1 === localizationNumber.parse(formatHelper.format(1, field.format))) {\r\n return \"number\"\r\n }\r\n if (formatHelper.format(new Date, field.format)) {\r\n return \"date\"\r\n }\r\n }\r\n return DEFAULT_DATA_TYPE\r\n },\r\n getStyleId(rowIndex, cellIndex) {\r\n var {\r\n items: items\r\n } = this._options;\r\n var item = items[rowIndex] && items[rowIndex][cellIndex] || {};\r\n if (0 === cellIndex && 0 === rowIndex || this.isColumnAreaCell(rowIndex, cellIndex)) {\r\n return 0\r\n }\r\n if (this.isRowAreaCell(rowIndex, cellIndex)) {\r\n return 1\r\n }\r\n return this.getHeaderStyles().length + (item.dataIndex || 0)\r\n }\r\n});\r\nvar PivotGridExport = {\r\n DEFAUL_COLUMN_WIDTH: DEFAUL_COLUMN_WIDTH\r\n};\r\nexport default {\r\n ExportController: ExportController,\r\n PivotGridExport: PivotGridExport,\r\n DataProvider: DataProvider\r\n};\r\nexport {\r\n DataProvider,\r\n ExportController,\r\n PivotGridExport\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/field_chooser/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var ATTRIBUTES = {\r\n treeViewItem: \"tree-view-item\",\r\n allowScrolling: \"allow-scrolling\",\r\n itemGroup: \"item-group\"\r\n};\r\nexport var CLASSES = {\r\n area: {\r\n self: \"dx-area\",\r\n box: \"dx-area-box\",\r\n caption: \"dx-area-caption\",\r\n icon: \"dx-area-icon\",\r\n field: \"dx-area-field\",\r\n fieldContainer: \"dx-area-field-container\",\r\n fieldContent: \"dx-area-field-content\",\r\n fieldList: \"dx-area-fields\",\r\n fieldListHeader: \"dx-area-fields-header\"\r\n },\r\n pivotGrid: {\r\n dragAction: \"dx-pivotgrid-drag-action\",\r\n fieldsContainer: \"dx-pivotgrid-fields-container\"\r\n },\r\n fieldChooser: {\r\n self: \"dx-pivotgridfieldchooser\",\r\n container: \"dx-pivotgridfieldchooser-container\",\r\n contextMenu: \"dx-pivotgridfieldchooser-context-menu\"\r\n },\r\n layout: {\r\n zero: \"dx-layout-0\",\r\n second: \"dx-layout-2\"\r\n },\r\n treeView: {\r\n self: \"dx-treeview\",\r\n borderVisible: \"dx-treeview-border-visible\"\r\n },\r\n scrollable: {\r\n self: \"dx-scrollable\"\r\n },\r\n allFields: \"dx-all-fields\",\r\n col: \"dx-col\",\r\n headerFilter: \"dx-header-filter\",\r\n row: \"dx-row\",\r\n widget: \"dx-widget\"\r\n};\r\nexport var ICONS = {\r\n all: \"smalliconslayout\",\r\n column: \"columnfield\",\r\n row: \"rowfield\",\r\n filter: \"filter\",\r\n data: \"formula\",\r\n measure: \"formula\",\r\n hierarchy: \"hierarchy\",\r\n dimension: \"detailslayout\"\r\n};\r\nexport var SORTABLE_CONST = {\r\n targets: {\r\n drag: \"drag\"\r\n }\r\n};\r\nexport var SORT_ORDER = {\r\n descending: \"desc\",\r\n ascending: \"asc\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/sortable/m_sortable.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../../core/dom_component\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth,\r\n setHeight,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n drop as dragEventDrop,\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../../../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../../../events/utils/index\";\r\nimport swatchContainer from \"../../../../ui/widget/swatch_container\";\r\nvar {\r\n getSwatchContainer: getSwatchContainer\r\n} = swatchContainer;\r\nvar SORTABLE_NAMESPACE = \"dxSortable\";\r\nvar SORTABLE_CLASS = \"dx-sortable-old\";\r\nvar SCROLL_STEP = 2;\r\nvar START_SCROLL_OFFSET = 20;\r\nvar SCROLL_TIMEOUT = 10;\r\n\r\nfunction elementHasPoint(element, x, y) {\r\n var $item = $(element);\r\n var offset = $item.offset();\r\n if (x >= offset.left && x <= offset.left + getOuterWidth($item, true)) {\r\n if (y >= offset.top && y <= offset.top + getOuterHeight($item, true)) {\r\n return true\r\n }\r\n }\r\n return\r\n}\r\n\r\nfunction checkHorizontalPosition(position, itemOffset, rtl) {\r\n if (isDefined(itemOffset.posHorizontal)) {\r\n return rtl ? position > itemOffset.posHorizontal : position < itemOffset.posHorizontal\r\n }\r\n return true\r\n}\r\n\r\nfunction getIndex($items, $item) {\r\n var index = -1;\r\n var itemElement = $item.get(0);\r\n each($items, (elementIndex, element) => {\r\n var $element = $(element);\r\n if (!($element.attr(\"item-group\") && $element.attr(\"item-group\") === $items.eq(elementIndex - 1).attr(\"item-group\"))) {\r\n index += 1\r\n }\r\n if (element === itemElement) {\r\n return false\r\n }\r\n return\r\n });\r\n return index === $items.length ? -1 : index\r\n}\r\n\r\nfunction getTargetGroup(e, $groups) {\r\n var result;\r\n each($groups, (function() {\r\n if (elementHasPoint(this, e.pageX, e.pageY)) {\r\n result = $(this)\r\n }\r\n }));\r\n return result\r\n}\r\n\r\nfunction getItemsOffset($elements, isVertical, $itemsContainer) {\r\n var result = [];\r\n var $item = [];\r\n for (var i = 0; i < $elements.length; i += $item.length) {\r\n $item = $elements.eq(i);\r\n if ($item.attr(\"item-group\")) {\r\n $item = $itemsContainer.find(\"[item-group='\".concat($item.attr(\"item-group\"), \"']\"))\r\n }\r\n if ($item.is(\":visible\")) {\r\n var offset = {\r\n item: $item,\r\n index: result.length,\r\n posVertical: isVertical ? ($item.last().offset().top + $item.offset().top + getOuterHeight($item.last(), true)) / 2 : getOuterHeight($item.last(), true) + $item.last().offset().top,\r\n posHorizontal: isVertical ? void 0 : (getOuterWidth($item.last(), true) + $item.last().offset().left + $item.offset().left) / 2\r\n };\r\n result.push(offset)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getScrollWrapper(scrollable) {\r\n var timeout;\r\n var scrollTop = scrollable.scrollTop();\r\n var $element = scrollable.$element();\r\n var {\r\n top: top\r\n } = $element.offset();\r\n var height = getHeight($element);\r\n var delta = 0;\r\n\r\n function onScroll(e) {\r\n scrollTop = e.scrollOffset.top\r\n }\r\n scrollable.on(\"scroll\", onScroll);\r\n\r\n function move() {\r\n stop();\r\n scrollable.scrollTo(scrollTop += delta);\r\n timeout = setTimeout(move, SCROLL_TIMEOUT)\r\n }\r\n\r\n function stop() {\r\n clearTimeout(timeout)\r\n }\r\n return {\r\n moveIfNeed: function(event) {\r\n if (event.pageY <= top + START_SCROLL_OFFSET) {\r\n delta = -SCROLL_STEP\r\n } else if (event.pageY >= top + height - START_SCROLL_OFFSET) {\r\n delta = SCROLL_STEP\r\n } else {\r\n delta = 0;\r\n stop();\r\n return\r\n }\r\n move()\r\n },\r\n element: () => $element,\r\n dispose() {\r\n stop();\r\n scrollable.off(\"scroll\", onScroll)\r\n }\r\n }\r\n}\r\nvar Sortable = DOMComponent.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onChanged: null,\r\n onDragging: null,\r\n itemRender: null,\r\n groupSelector: null,\r\n itemSelector: \".dx-sort-item\",\r\n itemContainerSelector: \".dx-sortable-old\",\r\n sourceClass: \"dx-drag-source\",\r\n dragClass: \"dx-drag\",\r\n targetClass: \"dx-drag-target\",\r\n direction: \"vertical\",\r\n allowDragging: true,\r\n groupFilter: null,\r\n useIndicator: false\r\n })\r\n },\r\n _renderItem($sourceItem, target) {\r\n var itemRender = this.option(\"itemRender\");\r\n var $item;\r\n if (itemRender) {\r\n $item = itemRender($sourceItem, target)\r\n } else {\r\n $item = $sourceItem.clone();\r\n $item.css({\r\n width: getWidth($sourceItem),\r\n height: getHeight($sourceItem)\r\n })\r\n }\r\n return $item\r\n },\r\n _renderIndicator($item, isVertical, $targetGroup, isLast) {\r\n var height = getOuterHeight($item, true);\r\n var width = getOuterWidth($item, true);\r\n var top = $item.offset().top - $targetGroup.offset().top;\r\n var left = $item.offset().left - $targetGroup.offset().left;\r\n this._indicator.css({\r\n position: \"absolute\",\r\n top: isLast && isVertical ? top + height : top,\r\n left: isLast && !isVertical ? left + width : left\r\n }).toggleClass(\"dx-position-indicator-horizontal\", !isVertical).toggleClass(\"dx-position-indicator-vertical\", !!isVertical).toggleClass(\"dx-position-indicator-last\", !!isLast).appendTo($targetGroup);\r\n setHeight(this._indicator, \"\");\r\n setWidth(this._indicator, \"\");\r\n if (isVertical) {\r\n setWidth(this._indicator, width)\r\n } else {\r\n setHeight(this._indicator, height)\r\n }\r\n },\r\n _renderDraggable($sourceItem) {\r\n this._$draggable && this._$draggable.remove();\r\n this._$draggable = this._renderItem($sourceItem, \"drag\").addClass(this.option(\"dragClass\")).appendTo(getSwatchContainer($sourceItem)).css({\r\n zIndex: 1e6,\r\n position: \"absolute\"\r\n })\r\n },\r\n _detachEventHandlers() {\r\n var dragEventsString = [dragEventMove, dragEventStart, dragEventEnd, dragEventEnter, dragEventLeave, dragEventDrop].join(\" \");\r\n eventsEngine.off(this._getEventListener(), addNamespace(dragEventsString, SORTABLE_NAMESPACE), void 0)\r\n },\r\n _getItemOffset(isVertical, itemsOffset, e) {\r\n for (var i = 0; i < itemsOffset.length; i += 1) {\r\n var shouldInsert = void 0;\r\n var sameLine = e.pageY < itemsOffset[i].posVertical;\r\n if (isVertical) {\r\n shouldInsert = sameLine\r\n } else if (sameLine) {\r\n shouldInsert = checkHorizontalPosition(e.pageX, itemsOffset[i], this.option(\"rtlEnabled\"));\r\n if (!shouldInsert && itemsOffset[i + 1] && itemsOffset[i + 1].posVertical > itemsOffset[i].posVertical) {\r\n shouldInsert = true\r\n }\r\n }\r\n if (shouldInsert) {\r\n return itemsOffset[i]\r\n }\r\n }\r\n return\r\n },\r\n _getEventListener() {\r\n var groupSelector = this.option(\"groupSelector\");\r\n var element = this.$element();\r\n return groupSelector ? element.find(groupSelector) : element\r\n },\r\n _attachEventHandlers() {\r\n var that = this;\r\n var itemSelector = that.option(\"itemSelector\");\r\n var itemContainerSelector = that.option(\"itemContainerSelector\");\r\n var groupSelector = that.option(\"groupSelector\");\r\n var sourceClass = that.option(\"sourceClass\");\r\n var targetClass = that.option(\"targetClass\");\r\n var onDragging = that.option(\"onDragging\");\r\n var groupFilter = that.option(\"groupFilter\");\r\n var $sourceItem;\r\n var sourceIndex;\r\n var $targetItem;\r\n var $targetGroup;\r\n var startPositions;\r\n var sourceGroup;\r\n var element = that.$element();\r\n var $groups;\r\n var scrollWrapper = null;\r\n var targetIndex = -1;\r\n var disposeScrollWrapper = function() {\r\n null === scrollWrapper || void 0 === scrollWrapper ? void 0 : scrollWrapper.dispose();\r\n scrollWrapper = null\r\n };\r\n that._detachEventHandlers();\r\n if (that.option(\"allowDragging\")) {\r\n var $eventListener = that._getEventListener();\r\n eventsEngine.on($eventListener, addNamespace(dragEventStart, SORTABLE_NAMESPACE), itemSelector, e => {\r\n $sourceItem = $(e.currentTarget);\r\n var $sourceGroup = $sourceItem.closest(groupSelector);\r\n sourceGroup = $sourceGroup.attr(\"group\");\r\n sourceIndex = getIndex((groupSelector ? $sourceGroup : element).find(itemSelector), $sourceItem);\r\n if ($sourceItem.attr(\"item-group\")) {\r\n $sourceItem = $sourceGroup.find(\"[item-group='\".concat($sourceItem.attr(\"item-group\"), \"']\"))\r\n }\r\n that._renderDraggable($sourceItem);\r\n $targetItem = that._renderItem($sourceItem, \"target\").addClass(targetClass);\r\n $sourceItem.addClass(sourceClass);\r\n ! function() {\r\n startPositions = [];\r\n each($sourceItem, (_, item) => {\r\n startPositions.push($(item).offset())\r\n })\r\n }();\r\n $groups = function() {\r\n var root = domAdapter.getRootNode(that.$element().get(0));\r\n if (!groupSelector) {\r\n return element\r\n }\r\n return groupFilter ? $(root).find(groupSelector).filter(groupFilter) : element.find(groupSelector)\r\n }();\r\n that._indicator = $(\"<div>\").addClass(\"dx-position-indicator\")\r\n });\r\n eventsEngine.on($eventListener, addNamespace(dragEventMove, SORTABLE_NAMESPACE), e => {\r\n var $item;\r\n var $lastItem;\r\n var $prevItem;\r\n if (!$sourceItem) {\r\n return\r\n }\r\n targetIndex = -1;\r\n that._indicator.detach();\r\n each(that._$draggable, (index, draggableElement) => {\r\n $(draggableElement).css({\r\n top: startPositions[index].top + e.offset.y,\r\n left: startPositions[index].left + e.offset.x\r\n })\r\n });\r\n $targetGroup && $targetGroup.removeClass(targetClass);\r\n $targetGroup = getTargetGroup(e, $groups);\r\n $targetGroup && function() {\r\n var draggingArgs = {\r\n sourceGroup: sourceGroup,\r\n sourceIndex: sourceIndex,\r\n sourceElement: $sourceItem,\r\n targetGroup: $targetGroup.attr(\"group\"),\r\n targetIndex: $targetGroup.find(itemSelector).index($targetItem)\r\n };\r\n onDragging && onDragging(draggingArgs);\r\n if (draggingArgs.cancel) {\r\n $targetGroup = void 0\r\n }\r\n }();\r\n if ($targetGroup && scrollWrapper && $targetGroup.get(0) !== scrollWrapper.element().get(0)) {\r\n disposeScrollWrapper()\r\n }\r\n scrollWrapper && scrollWrapper.moveIfNeed(e);\r\n if (!$targetGroup) {\r\n $targetItem.detach();\r\n return\r\n }\r\n if (!scrollWrapper && $targetGroup.attr(\"allow-scrolling\")) {\r\n scrollWrapper = getScrollWrapper($targetGroup.dxScrollable(\"instance\"))\r\n }\r\n $targetGroup.addClass(targetClass);\r\n var $itemContainer = $targetGroup.find(itemContainerSelector);\r\n var $items = $itemContainer.find(itemSelector);\r\n var targetSortable = $targetGroup.closest(\".\".concat(SORTABLE_CLASS)).data(\"dxSortableOld\");\r\n var useIndicator = targetSortable.option(\"useIndicator\");\r\n var isVertical = \"vertical\" === (targetSortable || that).option(\"direction\");\r\n var itemsOffset = getItemsOffset($items, isVertical, $itemContainer);\r\n var itemOffset = that._getItemOffset(isVertical, itemsOffset, e);\r\n if (itemOffset) {\r\n $item = itemOffset.item;\r\n $prevItem = itemsOffset[itemOffset.index - 1] && itemsOffset[itemOffset.index - 1].item;\r\n if ($item.hasClass(sourceClass) || $prevItem && $prevItem.hasClass(sourceClass) && $prevItem.is(\":visible\")) {\r\n $targetItem.detach();\r\n return\r\n }\r\n targetIndex = itemOffset.index;\r\n if (!useIndicator) {\r\n $targetItem.insertBefore($item);\r\n return\r\n }\r\n var isAnotherGroup = $targetGroup.attr(\"group\") !== sourceGroup;\r\n var isSameIndex = targetIndex === sourceIndex;\r\n var isNextIndex = targetIndex === sourceIndex + 1;\r\n if (isAnotherGroup) {\r\n that._renderIndicator($item, isVertical, $targetGroup, that.option(\"rtlEnabled\") && !isVertical);\r\n return\r\n }\r\n if (!isSameIndex && !isNextIndex) {\r\n that._renderIndicator($item, isVertical, $targetGroup, that.option(\"rtlEnabled\") && !isVertical)\r\n }\r\n } else {\r\n $lastItem = $items.last();\r\n if ($lastItem.is(\":visible\") && $lastItem.hasClass(sourceClass)) {\r\n return\r\n }\r\n if ($itemContainer.length) {\r\n targetIndex = itemsOffset.length ? itemsOffset[itemsOffset.length - 1].index + 1 : 0\r\n }\r\n if (useIndicator) {\r\n $items.length && that._renderIndicator($lastItem, isVertical, $targetGroup, !that.option(\"rtlEnabled\") || isVertical)\r\n } else {\r\n $targetItem.appendTo($itemContainer)\r\n }\r\n }\r\n });\r\n eventsEngine.on($eventListener, addNamespace(dragEventEnd, SORTABLE_NAMESPACE), () => {\r\n disposeScrollWrapper();\r\n if (!$sourceItem) {\r\n return\r\n }\r\n var onChanged = that.option(\"onChanged\");\r\n var changedArgs = {\r\n sourceIndex: sourceIndex,\r\n sourceElement: $sourceItem,\r\n sourceGroup: sourceGroup,\r\n targetIndex: targetIndex,\r\n removeSourceElement: true,\r\n removeTargetElement: false,\r\n removeSourceClass: true\r\n };\r\n if ($targetGroup) {\r\n $targetGroup.removeClass(targetClass);\r\n changedArgs.targetGroup = $targetGroup.attr(\"group\");\r\n if (sourceGroup !== changedArgs.targetGroup || targetIndex > -1) {\r\n onChanged && onChanged(changedArgs);\r\n changedArgs.removeSourceElement && $sourceItem.remove()\r\n }\r\n }\r\n that._indicator.detach();\r\n changedArgs.removeSourceClass && $sourceItem.removeClass(sourceClass);\r\n $sourceItem = null;\r\n that._$draggable.remove();\r\n that._$draggable = null;\r\n changedArgs.removeTargetElement && $targetItem.remove();\r\n $targetItem.removeClass(targetClass);\r\n $targetItem = null\r\n })\r\n }\r\n },\r\n _init() {\r\n this.callBase();\r\n this._attachEventHandlers()\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(SORTABLE_CLASS)\r\n },\r\n _dispose() {\r\n this.callBase.apply(this, arguments);\r\n this._$draggable && this._$draggable.detach();\r\n this._indicator && this._indicator.detach()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDragging\":\r\n case \"onChanged\":\r\n case \"itemRender\":\r\n case \"groupSelector\":\r\n case \"itemSelector\":\r\n case \"itemContainerSelector\":\r\n case \"sourceClass\":\r\n case \"targetClass\":\r\n case \"dragClass\":\r\n case \"allowDragging\":\r\n case \"groupFilter\":\r\n case \"useIndicator\":\r\n this._attachEventHandlers();\r\n break;\r\n case \"direction\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: () => false\r\n});\r\nregisterComponent(\"dxSortableOld\", Sortable);\r\nexport default {\r\n Sortable: Sortable\r\n};\r\nexport {\r\n Sortable\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/field_chooser/dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n ATTRIBUTES,\r\n CLASSES,\r\n SORTABLE_CONST\r\n} from \"./const\";\r\n\r\nfunction getTreeViewItem($sourceItem) {\r\n return $sourceItem.clone().addClass(CLASSES.area.box).css(\"width\", parseFloat(getOuterWidth($sourceItem)))\r\n}\r\n\r\nfunction getAreaBoxItemArray($sourceItem, target) {\r\n var $itemArray = $sourceItem.clone();\r\n if (target === SORTABLE_CONST.targets.drag) {\r\n $sourceItem.each((idx, sourceItem) => {\r\n var width = parseFloat(getOuterWidth(sourceItem));\r\n $itemArray.eq(idx).css(\"width\", width);\r\n return true\r\n })\r\n }\r\n return $itemArray\r\n}\r\n\r\nfunction getDefaultItem($sourceItem) {\r\n return $(\"<div>\").addClass(CLASSES.area.field).addClass(CLASSES.area.box).text($sourceItem.text())\r\n}\r\n\r\nfunction getItemArray($sourceItem, target) {\r\n var isAreaBox = $sourceItem.hasClass(CLASSES.area.box);\r\n var isTreeList = $sourceItem.attr(ATTRIBUTES.treeViewItem);\r\n if (isAreaBox) {\r\n return getAreaBoxItemArray($sourceItem, target)\r\n }\r\n if (isTreeList) {\r\n return getTreeViewItem($sourceItem)\r\n }\r\n return getDefaultItem($sourceItem)\r\n}\r\n\r\nfunction wrapItemsInFieldsContainer($itemArray) {\r\n var $wrappedTmpContainer = $(\"<div>\");\r\n $itemArray.each((_, item) => {\r\n var $wrappedItem = $(\"<div>\").addClass(CLASSES.pivotGrid.fieldsContainer).addClass(CLASSES.widget).append($(item));\r\n $wrappedTmpContainer.append($wrappedItem);\r\n return true\r\n });\r\n return $wrappedTmpContainer.children()\r\n}\r\nexport function dragAndDropItemRender($sourceItem, target) {\r\n var $itemArray = getItemArray($sourceItem, target);\r\n if (target === SORTABLE_CONST.targets.drag) {\r\n return wrapItemsInFieldsContainer($itemArray)\r\n }\r\n return $itemArray\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/field_chooser/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n SORT_ORDER\r\n} from \"./const\";\r\nexport var reverseSortOrder = sortOrder => sortOrder === SORT_ORDER.descending ? SORT_ORDER.ascending : SORT_ORDER.descending;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/field_chooser/m_field_chooser_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport localizationMessage from \"../../../../localization/message\";\r\nimport Widget from \"../../../../ui/widget/ui.widget\";\r\nimport columnStateMixin from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport {\r\n headerFilterMixin,\r\n HeaderFilterView as HeaderFilterViewBase,\r\n updateHeaderFilterItemSelectionState\r\n} from \"../../../grids/grid_core/header_filter/m_header_filter_core\";\r\nimport gridCoreUtils from \"../../../grids/grid_core/m_utils\";\r\nimport sortingMixin from \"../../../grids/grid_core/sorting/m_sorting_mixin\";\r\nimport {\r\n createPath,\r\n foreachTree\r\n} from \"../m_widget_utils\";\r\nimport SortableModule from \"../sortable/m_sortable\";\r\nimport {\r\n ATTRIBUTES,\r\n CLASSES\r\n} from \"./const\";\r\nimport {\r\n dragAndDropItemRender\r\n} from \"./dom\";\r\nimport {\r\n reverseSortOrder\r\n} from \"./utils\";\r\nvar {\r\n Sortable: Sortable\r\n} = SortableModule;\r\nvar DIV = \"<div>\";\r\nvar HeaderFilterView = HeaderFilterViewBase.inherit({\r\n _getSearchExpr(options, headerFilterOptions) {\r\n options.useDefaultSearchExpr = true;\r\n return this.callBase(options, headerFilterOptions)\r\n }\r\n});\r\nvar processItems = function(groupItems, field) {\r\n var filterValues = [];\r\n var isTree = !!field.groupName;\r\n var isExcludeFilterType = \"exclude\" === field.filterType;\r\n if (field.filterValues) {\r\n each(field.filterValues, (_, filterValue) => {\r\n filterValues.push(Array.isArray(filterValue) ? filterValue.join(\"/\") : filterValue && filterValue.valueOf())\r\n })\r\n }\r\n foreachTree(groupItems, items => {\r\n var item = items[0];\r\n var path = createPath(items);\r\n var preparedFilterValueByText = isTree ? map(items, item => item.text).reverse().join(\"/\") : item.text;\r\n item.value = isTree ? path.slice(0) : item.key || item.value;\r\n var preparedFilterValue = isTree ? path.join(\"/\") : item.value && item.value.valueOf();\r\n if (item.children) {\r\n item.items = item.children;\r\n item.children = null\r\n }\r\n updateHeaderFilterItemSelectionState(item, item.key && filterValues.includes(preparedFilterValueByText) || filterValues.includes(preparedFilterValue), isExcludeFilterType)\r\n })\r\n};\r\n\r\nfunction getMainGroupField(dataSource, sourceField) {\r\n var field = sourceField;\r\n if (isDefined(sourceField.groupIndex)) {\r\n field = dataSource.getAreaFields(sourceField.area, true)[sourceField.areaIndex]\r\n }\r\n return field\r\n}\r\n\r\nfunction getStringState(state) {\r\n state = state || {};\r\n return JSON.stringify([state.fields, state.columnExpandedPaths, state.rowExpandedPaths])\r\n}\r\nvar FieldChooserBase = Widget.inherit(columnStateMixin).inherit(sortingMixin).inherit(headerFilterMixin).inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n allowFieldDragging: true,\r\n applyChangesMode: \"instantly\",\r\n state: null,\r\n headerFilter: {\r\n width: 252,\r\n height: 325,\r\n allowSelectAll: true,\r\n showRelevantValues: false,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n editorOptions: {},\r\n mode: \"contains\"\r\n },\r\n texts: {\r\n emptyValue: localizationMessage.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: localizationMessage.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: localizationMessage.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n },\r\n remoteSort: false\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._headerFilterView = new HeaderFilterView(this);\r\n this._refreshDataSource();\r\n this.subscribeToEvents();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this)\r\n },\r\n _refreshDataSource() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && dataSource.fields && dataSource.load) {\r\n this._dataSource = dataSource\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n break;\r\n case \"applyChangesMode\":\r\n case \"remoteSort\":\r\n break;\r\n case \"state\":\r\n if (this._skipStateChange || !this._dataSource) {\r\n break\r\n }\r\n if (\"instantly\" === this.option(\"applyChangesMode\") && getStringState(this._dataSource.state()) !== getStringState(args.value)) {\r\n this._dataSource.state(args.value)\r\n } else {\r\n this._clean(true);\r\n this._renderComponent()\r\n }\r\n break;\r\n case \"headerFilter\":\r\n case \"allowFieldDragging\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n renderField(field, showColumnLines) {\r\n var $fieldContent = $(DIV).addClass(CLASSES.area.fieldContent).text(field.caption || field.dataField);\r\n var $fieldElement = $(DIV).addClass(CLASSES.area.field).addClass(CLASSES.area.box).data(\"field\", field).append($fieldContent);\r\n var mainGroupField = getMainGroupField(this._dataSource, field);\r\n if (\"data\" !== field.area) {\r\n if (field.allowSorting) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $fieldElement,\r\n column: {\r\n alignment: this.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n sortOrder: \"desc\" === field.sortOrder ? \"desc\" : \"asc\",\r\n allowSorting: field.allowSorting\r\n },\r\n showColumnLines: showColumnLines\r\n })\r\n }\r\n this._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $fieldElement,\r\n column: {\r\n alignment: this.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n filterValues: mainGroupField.filterValues,\r\n allowFiltering: mainGroupField.allowFiltering && !field.groupIndex,\r\n allowSorting: field.allowSorting\r\n },\r\n showColumnLines: showColumnLines\r\n })\r\n }\r\n if (field.groupName) {\r\n $fieldElement.attr(ATTRIBUTES.itemGroup, field.groupName)\r\n }\r\n return $fieldElement\r\n },\r\n _clean() {},\r\n _render() {\r\n this.callBase();\r\n this._headerFilterView.render(this.$element())\r\n },\r\n renderSortable() {\r\n var that = this;\r\n that._createComponent(that.$element(), Sortable, extend({\r\n allowDragging: that.option(\"allowFieldDragging\"),\r\n itemSelector: \".\".concat(CLASSES.area.field),\r\n itemContainerSelector: \".\".concat(CLASSES.area.fieldContainer),\r\n groupSelector: \".\".concat(CLASSES.area.fieldList),\r\n groupFilter() {\r\n var dataSource = that._dataSource;\r\n var $sortable = $(this).closest(\".dx-sortable-old\");\r\n var pivotGrid = $sortable.data(\"dxPivotGrid\");\r\n var pivotGridFieldChooser = $sortable.data(\"dxPivotGridFieldChooser\");\r\n if (pivotGrid) {\r\n return pivotGrid.getDataSource() === dataSource\r\n }\r\n if (pivotGridFieldChooser) {\r\n return pivotGridFieldChooser.option(\"dataSource\") === dataSource\r\n }\r\n return false\r\n },\r\n itemRender: dragAndDropItemRender,\r\n onDragging(e) {\r\n var field = e.sourceElement.data(\"field\");\r\n var {\r\n targetGroup: targetGroup\r\n } = e;\r\n e.cancel = false;\r\n if (true === field.isMeasure) {\r\n if (\"column\" === targetGroup || \"row\" === targetGroup || \"filter\" === targetGroup) {\r\n e.cancel = true\r\n }\r\n } else if (false === field.isMeasure && \"data\" === targetGroup) {\r\n e.cancel = true\r\n }\r\n },\r\n useIndicator: true,\r\n onChanged(e) {\r\n var field = e.sourceElement.data(\"field\");\r\n e.removeSourceElement = !!e.sourceGroup;\r\n that._adjustSortableOnChangedArgs(e);\r\n if (field) {\r\n var {\r\n targetIndex: targetIndex\r\n } = e;\r\n var mainGroupField;\r\n var invisibleFieldsIndexOffset = 0;\r\n that._processDemandState(dataSource => {\r\n var fields = dataSource.getAreaFields(field.area, true);\r\n mainGroupField = getMainGroupField(dataSource, field);\r\n var visibleFields = fields.filter(f => false !== f.visible);\r\n var fieldBeforeTarget = visibleFields[targetIndex - 1];\r\n if (fieldBeforeTarget) {\r\n invisibleFieldsIndexOffset = fields.filter(f => false === f.visible && f.areaIndex <= fieldBeforeTarget.areaIndex).length\r\n }\r\n });\r\n that._applyChanges([mainGroupField], {\r\n area: e.targetGroup,\r\n areaIndex: targetIndex + invisibleFieldsIndexOffset\r\n })\r\n }\r\n }\r\n }, that._getSortableOptions()))\r\n },\r\n _processDemandState(func) {\r\n var isInstantlyMode = \"instantly\" === this.option(\"applyChangesMode\");\r\n var dataSource = this._dataSource;\r\n if (isInstantlyMode) {\r\n func(dataSource, isInstantlyMode)\r\n } else {\r\n var currentState = dataSource.state();\r\n var pivotGridState = this.option(\"state\");\r\n if (pivotGridState) {\r\n dataSource.state(pivotGridState, true)\r\n }\r\n func(dataSource, isInstantlyMode);\r\n dataSource.state(currentState, true)\r\n }\r\n },\r\n _applyChanges(fields, props) {\r\n var that = this;\r\n that._processDemandState((dataSource, isInstantlyMode) => {\r\n fields.forEach(_ref => {\r\n var {\r\n index: index\r\n } = _ref;\r\n dataSource.field(index, props)\r\n });\r\n if (isInstantlyMode) {\r\n dataSource.load()\r\n } else {\r\n that._changedHandler()\r\n }\r\n })\r\n },\r\n _applyLocalSortChanges(fieldIdx, sortOrder) {\r\n this._processDemandState(dataSource => {\r\n dataSource.field(fieldIdx, {\r\n sortOrder: sortOrder\r\n });\r\n dataSource.sortLocal()\r\n })\r\n },\r\n _adjustSortableOnChangedArgs(e) {\r\n e.removeSourceElement = false;\r\n e.removeTargetElement = true;\r\n e.removeSourceClass = false\r\n },\r\n _getSortableOptions: () => ({\r\n direction: \"auto\"\r\n }),\r\n subscribeToEvents(element) {\r\n var that = this;\r\n var func = function(e) {\r\n var field = $(e.currentTarget).data(\"field\");\r\n var mainGroupField = extend(true, {}, getMainGroupField(that._dataSource, field));\r\n var isHeaderFilter = $(e.target).hasClass(CLASSES.headerFilter);\r\n var dataSource = that._dataSource;\r\n var type = mainGroupField.groupName ? \"tree\" : \"list\";\r\n var paginate = dataSource.paginate() && \"list\" === type;\r\n if (isHeaderFilter) {\r\n that._headerFilterView.showHeaderFilterMenu($(e.currentTarget), extend(mainGroupField, {\r\n type: type,\r\n encodeHtml: that.option(\"encodeHtml\"),\r\n dataSource: {\r\n useDefaultSearch: !paginate,\r\n load(options) {\r\n var {\r\n userData: userData\r\n } = options;\r\n if (userData.store) {\r\n return userData.store.load(options)\r\n }\r\n var d = new Deferred;\r\n dataSource.getFieldValues(mainGroupField.index, that.option(\"headerFilter.showRelevantValues\"), paginate ? options : void 0).done(data => {\r\n var emptyValue = that.option(\"headerFilter.texts.emptyValue\");\r\n data.forEach(element => {\r\n if (!element.text) {\r\n element.text = emptyValue\r\n }\r\n });\r\n if (paginate) {\r\n d.resolve(data)\r\n } else {\r\n userData.store = new ArrayStore(data);\r\n userData.store.load(options).done(d.resolve).fail(d.reject)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n },\r\n postProcess(data) {\r\n processItems(data, mainGroupField);\r\n return data\r\n }\r\n },\r\n apply() {\r\n that._applyChanges([mainGroupField], {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n }))\r\n } else if (field.allowSorting && \"data\" !== field.area) {\r\n var isRemoteSort = that.option(\"remoteSort\");\r\n var sortOrder = reverseSortOrder(field.sortOrder);\r\n if (isRemoteSort) {\r\n that._applyChanges([field], {\r\n sortOrder: sortOrder\r\n })\r\n } else {\r\n that._applyLocalSortChanges(field.index, sortOrder)\r\n }\r\n }\r\n };\r\n if (element) {\r\n eventsEngine.on(element, clickEventName, \".\".concat(CLASSES.area.field, \".\").concat(CLASSES.area.box), func);\r\n return\r\n }\r\n eventsEngine.on(that.$element(), clickEventName, \".\".concat(CLASSES.area.field, \".\").concat(CLASSES.area.box), func)\r\n },\r\n _initTemplates: noop,\r\n addWidgetPrefix: className => \"dx-pivotgrid-\".concat(className)\r\n});\r\nregisterComponent(\"dxPivotGridFieldChooserBase\", FieldChooserBase);\r\nexport default {\r\n FieldChooserBase: FieldChooserBase\r\n};\r\nexport {\r\n FieldChooserBase\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/field_chooser/m_field_chooser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../data_source/m_data_source\";\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n hasWindow as hasWindowFn\r\n} from \"../../../../core/utils/window\";\r\nimport localizationMessage from \"../../../../localization/message\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport TreeView from \"../../../../ui/tree_view\";\r\nimport {\r\n foreachDataLevel,\r\n getCompareFunction\r\n} from \"../m_widget_utils\";\r\nimport {\r\n ATTRIBUTES,\r\n CLASSES,\r\n ICONS\r\n} from \"./const\";\r\nimport {\r\n FieldChooserBase\r\n} from \"./m_field_chooser_base\";\r\nvar DIV = \"<div>\";\r\nvar hasWindow = hasWindowFn();\r\n\r\nfunction getDimensionFields(item, fields) {\r\n var result = [];\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i += 1) {\r\n result.push.apply(result, getDimensionFields(item.items[i], fields))\r\n }\r\n } else if (isDefined(item.index)) {\r\n result.push(fields[item.index])\r\n }\r\n return result\r\n}\r\n\r\nfunction getFirstItem(item, condition) {\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i += 1) {\r\n var childrenItem = getFirstItem(item.items[i], condition);\r\n if (childrenItem) {\r\n return childrenItem\r\n }\r\n }\r\n }\r\n if (condition(item)) {\r\n return item\r\n }\r\n return\r\n}\r\nvar compareOrder = [function(a, b) {\r\n var aValue = -!!a.isMeasure;\r\n var bValue = +!!b.isMeasure;\r\n return aValue + bValue\r\n}, function(a, b) {\r\n var aValue = -!!(a.items && a.items.length);\r\n var bValue = +!!(b.items && b.items.length);\r\n return aValue + bValue\r\n}, function(a, b) {\r\n var aValue = +!!(false === a.isMeasure && a.field && a.field.levels && a.field.levels.length);\r\n var bValue = -!!(false === b.isMeasure && b.field && b.field.levels && b.field.levels.length);\r\n return aValue + bValue\r\n}, getCompareFunction(item => item.text)];\r\n\r\nfunction compareItems(a, b) {\r\n var result = 0;\r\n var i = 0;\r\n while (!result && compareOrder[i]) {\r\n result = compareOrder[i++](a, b)\r\n }\r\n return result\r\n}\r\n\r\nfunction getScrollable(container) {\r\n return container.find(\".\".concat(CLASSES.scrollable.self)).dxScrollable(\"instance\")\r\n}\r\nvar FieldChooser = FieldChooserBase.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n height: 400,\r\n layout: 0,\r\n dataSource: null,\r\n encodeHtml: true,\r\n onContextMenuPreparing: null,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n texts: {\r\n columnFields: localizationMessage.format(\"dxPivotGrid-columnFields\"),\r\n rowFields: localizationMessage.format(\"dxPivotGrid-rowFields\"),\r\n dataFields: localizationMessage.format(\"dxPivotGrid-dataFields\"),\r\n filterFields: localizationMessage.format(\"dxPivotGrid-filterFields\"),\r\n allFields: localizationMessage.format(\"dxPivotGrid-allFields\")\r\n }\r\n })\r\n },\r\n _refreshDataSource() {\r\n var that = this;\r\n that._expandedPaths = [];\r\n that._changedHandler = that._changedHandler || function() {\r\n each(that._dataChangedHandlers, (_, func) => {\r\n func()\r\n });\r\n that._fireContentReadyAction();\r\n that._skipStateChange = true;\r\n that.option(\"state\", that._dataSource.state());\r\n that._skipStateChange = false\r\n };\r\n that._disposeDataSource();\r\n that.callBase();\r\n that._dataSource && that._dataSource.on(\"changed\", that._changedHandler)\r\n },\r\n _disposeDataSource() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.off(\"changed\", this._changedHandler);\r\n this._dataSource = void 0\r\n }\r\n },\r\n _dispose() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _init() {\r\n this.callBase();\r\n this._refreshDataSource();\r\n this._dataChangedHandlers = [];\r\n this._initActions()\r\n },\r\n _initActions() {\r\n this._actions = {\r\n onContextMenuPreparing: this._createActionByOption(\"onContextMenuPreparing\")\r\n }\r\n },\r\n _trigger(eventName, eventArg) {\r\n this._actions[eventName](eventArg)\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n dataSource: true\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._invalidate();\r\n break;\r\n case \"layout\":\r\n case \"texts\":\r\n case \"allowSearch\":\r\n case \"searchTimeout\":\r\n case \"encodeHtml\":\r\n this._invalidate();\r\n break;\r\n case \"onContextMenuPreparing\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean(skipStateSetting) {\r\n !skipStateSetting && this._dataSource && this.option(\"state\", this._dataSource.state());\r\n this.$element().children(\".\".concat(CLASSES.fieldChooser.container)).remove()\r\n },\r\n _renderLayout0($container) {\r\n $container.addClass(CLASSES.layout.zero);\r\n var $row1 = $(DIV).addClass(CLASSES.row).appendTo($container);\r\n var $row2 = $(DIV).addClass(CLASSES.row).appendTo($container);\r\n var $col1 = $(DIV).addClass(CLASSES.col).appendTo($row1);\r\n var $col2 = $(DIV).addClass(CLASSES.col).appendTo($row1);\r\n var $col3 = $(DIV).addClass(CLASSES.col).appendTo($row2);\r\n var $col4 = $(DIV).addClass(CLASSES.col).appendTo($row2);\r\n this._renderArea($col1, \"all\");\r\n this._renderArea($col2, \"row\");\r\n this._renderArea($col2, \"column\");\r\n this._renderArea($col3, \"filter\");\r\n this._renderArea($col4, \"data\")\r\n },\r\n _renderLayout1($container) {\r\n var $col1 = $(DIV).addClass(CLASSES.col).appendTo($container);\r\n var $col2 = $(DIV).addClass(CLASSES.col).appendTo($container);\r\n this._renderArea($col1, \"all\");\r\n this._renderArea($col2, \"filter\");\r\n this._renderArea($col2, \"row\");\r\n this._renderArea($col2, \"column\");\r\n this._renderArea($col2, \"data\")\r\n },\r\n _renderLayout2($container) {\r\n $container.addClass(CLASSES.layout.second);\r\n var $row1 = $(DIV).addClass(CLASSES.row).appendTo($container);\r\n this._renderArea($row1, \"all\");\r\n var $row2 = $(DIV).addClass(CLASSES.row).appendTo($container);\r\n var $col1 = $(DIV).addClass(CLASSES.col).appendTo($row2);\r\n var $col2 = $(DIV).addClass(CLASSES.col).appendTo($row2);\r\n this._renderArea($col1, \"filter\");\r\n this._renderArea($col1, \"row\");\r\n this._renderArea($col2, \"column\");\r\n this._renderArea($col2, \"data\")\r\n },\r\n _initMarkup() {\r\n var $element = this.$element();\r\n var $container = $(DIV).addClass(CLASSES.fieldChooser.container).appendTo($element);\r\n var layout = this.option(\"layout\");\r\n this.callBase();\r\n $element.addClass(CLASSES.fieldChooser.self).addClass(CLASSES.pivotGrid.fieldsContainer);\r\n this._dataChangedHandlers = [];\r\n var dataSource = this._dataSource;\r\n var currentState = \"instantly\" !== this.option(\"applyChangesMode\") && dataSource && dataSource.state();\r\n currentState && this.option(\"state\") && dataSource.state(this.option(\"state\"), true);\r\n if (0 === layout) {\r\n this._renderLayout0($container)\r\n } else if (1 === layout) {\r\n this._renderLayout1($container)\r\n } else {\r\n this._renderLayout2($container)\r\n }\r\n currentState && dataSource.state(currentState, true)\r\n },\r\n _renderContentImpl() {\r\n this.callBase();\r\n this.renderSortable();\r\n this._renderContextMenu();\r\n this.updateDimensions()\r\n },\r\n _fireContentReadyAction() {\r\n if (!this._dataSource || !this._dataSource.isLoading()) {\r\n this.callBase()\r\n }\r\n },\r\n _getContextMenuArgs(dxEvent) {\r\n var targetFieldElement = $(dxEvent.target).closest(\".\".concat(CLASSES.area.field));\r\n var targetGroupElement = $(dxEvent.target).closest(\".\".concat(CLASSES.area.fieldList));\r\n var field;\r\n var area;\r\n if (targetFieldElement.length) {\r\n var fieldCopy = targetFieldElement.data(\"field\");\r\n if (fieldCopy) {\r\n field = this.getDataSource().field(fieldCopy.index) || fieldCopy\r\n }\r\n }\r\n if (targetGroupElement.length) {\r\n area = targetGroupElement.attr(\"group\")\r\n }\r\n return {\r\n event: dxEvent,\r\n field: field,\r\n area: area,\r\n items: []\r\n }\r\n },\r\n _renderContextMenu() {\r\n var that = this;\r\n var $container = that.$element();\r\n if (that._contextMenu) {\r\n that._contextMenu.$element().remove()\r\n }\r\n that._contextMenu = that._createComponent($(DIV).appendTo($container), ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n if (!event) {\r\n return\r\n }\r\n var args = that._getContextMenuArgs(event);\r\n that._trigger(\"onContextMenuPreparing\", args);\r\n if (args.items && args.items.length) {\r\n actionArgs.component.option(\"items\", args.items)\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n target: $container,\r\n onItemClick(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: CLASSES.fieldChooser.contextMenu\r\n })\r\n },\r\n _createTreeItems(fields, groupFieldNames, path) {\r\n var that = this;\r\n var isMeasure;\r\n var resultItems = [];\r\n var groupedItems = [];\r\n var groupFieldName = groupFieldNames[0];\r\n var fieldsByGroup = {};\r\n if (!groupFieldName) {\r\n each(fields, (_, field) => {\r\n var icon;\r\n if (true === field.isMeasure) {\r\n icon = ICONS.measure\r\n }\r\n if (false === field.isMeasure) {\r\n icon = field.groupName ? ICONS.hierarchy : ICONS.dimension\r\n }\r\n resultItems.push({\r\n index: field.index,\r\n field: field,\r\n key: field.dataField,\r\n selected: isDefined(field.area),\r\n text: field.caption || field.dataField,\r\n icon: icon,\r\n isMeasure: field.isMeasure,\r\n isDefault: field.isDefault\r\n })\r\n })\r\n } else {\r\n each(fields, (_, field) => {\r\n var groupName = field[groupFieldName] || \"\";\r\n fieldsByGroup[groupName] = fieldsByGroup[groupName] || [];\r\n fieldsByGroup[groupName].push(field);\r\n if (void 0 === isMeasure) {\r\n isMeasure = true\r\n }\r\n isMeasure = isMeasure && true === field.isMeasure\r\n });\r\n each(fieldsByGroup, (groupName, fields) => {\r\n var currentPath = path ? \"\".concat(path, \".\").concat(groupName) : groupName;\r\n var items = that._createTreeItems(fields, groupFieldNames.slice(1), currentPath);\r\n if (groupName) {\r\n groupedItems.push({\r\n key: groupName,\r\n text: groupName,\r\n path: currentPath,\r\n isMeasure: items.isMeasure,\r\n expanded: that._expandedPaths.includes(currentPath),\r\n items: items\r\n })\r\n } else {\r\n resultItems = items\r\n }\r\n });\r\n resultItems = groupedItems.concat(resultItems);\r\n resultItems.isMeasure = isMeasure\r\n }\r\n return resultItems\r\n },\r\n _createFieldsDataSource(dataSource) {\r\n var fields = dataSource && dataSource.fields() || [];\r\n fields = fields.filter(field => false !== field.visible && !isDefined(field.groupIndex));\r\n var treeItems = this._createTreeItems(fields, [\"dimension\", \"displayFolder\"]);\r\n foreachDataLevel(treeItems, items => {\r\n items.sort(compareItems)\r\n }, 0, \"items\");\r\n return treeItems\r\n },\r\n _renderFieldsTreeView(container) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var treeView = that._createComponent(container, TreeView, {\r\n dataSource: that._createFieldsDataSource(dataSource),\r\n showCheckBoxesMode: \"normal\",\r\n expandNodesRecursive: false,\r\n searchEnabled: that.option(\"allowSearch\"),\r\n searchTimeout: that.option(\"searchTimeout\"),\r\n useNativeScrolling: false,\r\n itemTemplate(itemData, itemIndex, itemElement) {\r\n var _a;\r\n var $item = $(\"<div>\").toggleClass(CLASSES.area.field, !itemData.items).attr(ATTRIBUTES.treeViewItem, true).data(\"field\", itemData.field).appendTo(itemElement);\r\n if (itemData.icon) {\r\n null === (_a = getImageContainer(itemData.icon)) || void 0 === _a ? void 0 : _a.appendTo($item)\r\n }\r\n $(\"<span>\").text(itemData.text).appendTo($item)\r\n },\r\n onItemCollapsed(e) {\r\n var index = that._expandedPaths.indexOf(e.itemData.path);\r\n if (index >= 0) {\r\n that._expandedPaths.splice(index, 1)\r\n }\r\n },\r\n onItemExpanded(e) {\r\n var index = that._expandedPaths.indexOf(e.itemData.path);\r\n if (index < 0) {\r\n that._expandedPaths.push(e.itemData.path)\r\n }\r\n },\r\n onItemSelectionChanged(e) {\r\n var data = e.itemData;\r\n var field;\r\n var fields;\r\n var needSelectDefaultItem = true;\r\n var area;\r\n if (data.items) {\r\n if (data.selected) {\r\n treeView.unselectItem(data);\r\n return\r\n }\r\n that._processDemandState(() => {\r\n fields = getDimensionFields(data, dataSource.fields());\r\n for (var i = 0; i < fields.length; i += 1) {\r\n if (fields[i].area) {\r\n needSelectDefaultItem = false;\r\n break\r\n }\r\n }\r\n });\r\n if (needSelectDefaultItem) {\r\n var item = getFirstItem(data, item => item.isDefault) || getFirstItem(data, item => isDefined(item.index));\r\n item && treeView.selectItem(item);\r\n return\r\n }\r\n } else {\r\n field = dataSource.fields()[data.index];\r\n if (data.selected) {\r\n area = field.isMeasure ? \"data\" : \"column\"\r\n }\r\n if (field) {\r\n fields = [field]\r\n }\r\n }\r\n that._applyChanges(fields, {\r\n area: area,\r\n areaIndex: void 0\r\n })\r\n }\r\n });\r\n that._dataChangedHandlers.push((function() {\r\n var scrollable = getScrollable(container);\r\n var scrollTop = scrollable ? scrollable.scrollTop() : 0;\r\n treeView.option({\r\n dataSource: that._createFieldsDataSource(dataSource)\r\n });\r\n scrollable = getScrollable(container);\r\n if (scrollable) {\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n });\r\n scrollable.update()\r\n }\r\n }))\r\n },\r\n _renderAreaFields($container, area) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var fields = dataSource ? extend(true, [], dataSource.getAreaFields(area, true)) : [];\r\n $container.empty();\r\n each(fields, (_, field) => {\r\n if (false !== field.visible) {\r\n that.renderField(field, true).appendTo($container)\r\n }\r\n })\r\n },\r\n _renderArea(container, area) {\r\n var that = this;\r\n var $areaContainer = $(DIV).addClass(CLASSES.area.self).appendTo(container);\r\n var $fieldsHeaderContainer = $(DIV).addClass(CLASSES.area.fieldListHeader).appendTo($areaContainer);\r\n var caption = that.option(\"texts.\".concat(area, \"Fields\"));\r\n var $fieldsContent;\r\n var render;\r\n $(\"<span>\").addClass(CLASSES.area.icon).addClass(\"dx-icon-\".concat(ICONS[area])).appendTo($fieldsHeaderContainer);\r\n $(\"<span>\").html(\" \").appendTo($fieldsHeaderContainer);\r\n $(\"<span>\").addClass(CLASSES.area.caption).text(caption).appendTo($fieldsHeaderContainer);\r\n var $fieldsContainer = $(DIV).addClass(CLASSES.area.fieldList).addClass(CLASSES.pivotGrid.dragAction).appendTo($areaContainer);\r\n if (\"all\" !== area) {\r\n $fieldsContainer.attr(\"group\", area).attr(ATTRIBUTES.allowScrolling, true);\r\n $fieldsContent = $(DIV).addClass(CLASSES.area.fieldContainer).appendTo($fieldsContainer);\r\n render = function() {\r\n that._renderAreaFields($fieldsContent, area)\r\n };\r\n that._dataChangedHandlers.push(render);\r\n render();\r\n $fieldsContainer.dxScrollable({\r\n useNative: false\r\n })\r\n } else {\r\n $areaContainer.addClass(CLASSES.allFields);\r\n $fieldsContainer.addClass(CLASSES.treeView.borderVisible);\r\n that._renderFieldsTreeView($fieldsContainer)\r\n }\r\n },\r\n _getSortableOptions: () => ({}),\r\n _adjustSortableOnChangedArgs() {},\r\n resetTreeView() {\r\n var treeView = this.$element().find(\".\".concat(CLASSES.treeView.self)).dxTreeView(\"instance\");\r\n if (treeView) {\r\n treeView.option(\"searchValue\", \"\");\r\n treeView.collapseAll()\r\n }\r\n },\r\n applyChanges() {\r\n var state = this.option(\"state\");\r\n if (isDefined(state)) {\r\n this._dataSource.state(state)\r\n }\r\n },\r\n cancelChanges() {\r\n var dataSource = this._dataSource;\r\n if (!dataSource.isLoading()) {\r\n this.option(\"state\", dataSource.state());\r\n return true\r\n }\r\n return false\r\n },\r\n getDataSource() {\r\n return this._dataSource\r\n },\r\n updateDimensions() {\r\n var $scrollableElements = this.$element().find(\".\".concat(CLASSES.area.self, \" .\").concat(CLASSES.scrollable.self));\r\n $scrollableElements.dxScrollable(\"update\")\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible && hasWindow) {\r\n this.updateDimensions()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxPivotGridFieldChooser\", FieldChooser);\r\nexport default {\r\n FieldChooser: FieldChooser\r\n};\r\nexport {\r\n FieldChooser\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/fields_area/m_fields_area.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../field_chooser/m_field_chooser_base\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n setHeight,\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport Button from \"../../../../ui/button\";\r\nimport Popup from \"../../../../ui/popup/ui.popup\";\r\nimport {\r\n AreaItem\r\n} from \"../area_item/m_area_item\";\r\nimport {\r\n capitalizeFirstLetter\r\n} from \"../m_widget_utils\";\r\nvar DIV = \"<div>\";\r\nvar AREA_DRAG_CLASS = \"dx-pivotgrid-drag-action\";\r\n\r\nfunction renderGroupConnector(field, nextField, prevField, $container) {\r\n if (prevField && prevField.groupName && prevField.groupName === field.groupName) {\r\n $(DIV).addClass(\"dx-group-connector\").addClass(\"dx-group-connector-prev\").appendTo($container)\r\n }\r\n if (nextField && nextField.groupName && nextField.groupName === field.groupName) {\r\n $(DIV).addClass(\"dx-group-connector\").addClass(\"dx-group-connector-next\").appendTo($container)\r\n }\r\n}\r\nvar FieldsArea = AreaItem.inherit({\r\n ctor(component, area) {\r\n this.callBase(component);\r\n this._area = area\r\n },\r\n _getAreaName: () => \"fields\",\r\n _createGroupElement() {\r\n return $(DIV).addClass(\"dx-pivotgrid-fields-area\").addClass(\"dx-area-fields\").addClass(AREA_DRAG_CLASS).attr(\"group\", this._area)\r\n },\r\n isVisible() {\r\n return !!this.option(\"fieldPanel.visible\") && this.option(\"fieldPanel.show\".concat(capitalizeFirstLetter(this._area), \"Fields\"))\r\n },\r\n _renderButton(element) {\r\n var that = this;\r\n var container = $(\"<td>\").appendTo($(\"<tr>\").appendTo(element));\r\n var button = that.component._createComponent($(DIV).appendTo(container), Button, {\r\n text: \"Fields\",\r\n icon: \"menu\",\r\n width: \"auto\",\r\n onClick() {\r\n var popup = that.tableElement().find(\".dx-fields-area-popup\").dxPopup(\"instance\");\r\n if (!popup.option(\"visible\")) {\r\n popup.show()\r\n }\r\n }\r\n });\r\n button.$element().addClass(\"dx-pivotgrid-fields-area-hamburger\")\r\n },\r\n _getPopupOptions: (row, button) => ({\r\n contentTemplate: () => $(\"<table>\").addClass(\"dx-area-field-container\").append($(\"<thead>\").addClass(\"dx-pivotgrid-fields-area-head\").append(row)),\r\n height: \"auto\",\r\n width: \"auto\",\r\n position: {\r\n at: \"left\",\r\n my: \"left\",\r\n of: button\r\n },\r\n dragEnabled: false,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200\r\n }\r\n },\r\n shading: false,\r\n showTitle: false,\r\n hideOnOutsideClick: true,\r\n container: button.parent()\r\n }),\r\n _renderPopup(tableElement, row) {\r\n var button = tableElement.find(\".dx-button\");\r\n var popupOptions = this._getPopupOptions(row, button);\r\n var FieldChooserBase = this.component.$element().dxPivotGridFieldChooserBase(\"instance\");\r\n if (this._rowPopup) {\r\n this._rowPopup.$element().remove()\r\n }\r\n this._rowPopup = this.component._createComponent($(DIV).appendTo(tableElement), Popup, popupOptions);\r\n this._rowPopup.$element().addClass(\"dx-fields-area-popup\");\r\n this._rowPopup.content().addClass(\"dx-pivotgrid-fields-container\");\r\n this._rowPopup.content().parent().attr(\"group\", \"row\");\r\n FieldChooserBase.subscribeToEvents(this._rowPopup.content());\r\n FieldChooserBase.renderSortable(this._rowPopup.content())\r\n },\r\n _shouldCreateButton: () => false,\r\n _renderTableContent(tableElement, data) {\r\n var that = this;\r\n var groupElement = this.groupElement();\r\n var isVisible = this.isVisible();\r\n var fieldChooserBase = that.component.$element().dxPivotGridFieldChooserBase(\"instance\");\r\n var head = $(\"<thead>\").addClass(\"dx-pivotgrid-fields-area-head\").appendTo(tableElement);\r\n var area = that._area;\r\n var row = $(\"<tr>\");\r\n groupElement.toggleClass(\"dx-hidden\", !isVisible);\r\n tableElement.addClass(\"dx-area-field-container\");\r\n if (!isVisible) {\r\n return\r\n }\r\n each(data, (index, field) => {\r\n if (field.area === area && false !== field.visible) {\r\n var td = $(\"<td>\").append(fieldChooserBase.renderField(field, \"row\" === field.area));\r\n var indicators = td.find(\".dx-column-indicators\");\r\n if (indicators.length && that._shouldCreateButton()) {\r\n indicators.insertAfter(indicators.next())\r\n }\r\n td.appendTo(row);\r\n renderGroupConnector(field, data[index + 1], data[index - 1], td)\r\n }\r\n });\r\n if (!row.children().length) {\r\n $(\"<td>\").append($(DIV).addClass(\"dx-empty-area-text\").text(this.option(\"fieldPanel.texts.\".concat(area, \"FieldArea\")))).appendTo(row)\r\n }\r\n if (that._shouldCreateButton()) {\r\n that._renderButton(head);\r\n that._renderPopup(tableElement, row)\r\n } else {\r\n head.append(row)\r\n }\r\n },\r\n setGroupWidth(value) {\r\n setWidth(this.groupElement(), value)\r\n },\r\n setGroupHeight(value) {\r\n setHeight(this.groupElement(), value)\r\n },\r\n reset() {\r\n this.callBase();\r\n this.groupElement().css(\"marginTop\", 0)\r\n },\r\n _renderVirtualContent: noop\r\n});\r\nexport default {\r\n FieldsArea: FieldsArea\r\n};\r\nexport {\r\n FieldsArea\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/headers_area/m_headers_area.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n setHeight,\r\n setWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport {\r\n AreaItem\r\n} from \"../area_item/m_area_item\";\r\nvar PIVOTGRID_AREA_CLASS = \"dx-pivotgrid-area\";\r\nvar PIVOTGRID_AREA_COLUMN_CLASS = \"dx-pivotgrid-horizontal-headers\";\r\nvar PIVOTGRID_AREA_ROW_CLASS = \"dx-pivotgrid-vertical-headers\";\r\nvar PIVOTGRID_TOTAL_CLASS = \"dx-total\";\r\nvar PIVOTGRID_GRAND_TOTAL_CLASS = \"dx-grandtotal\";\r\nvar PIVOTGRID_ROW_TOTAL_CLASS = \"dx-row-total\";\r\nvar PIVOTGRID_EXPANDED_CLASS = \"dx-pivotgrid-expanded\";\r\nvar PIVOTGRID_COLLAPSED_CLASS = \"dx-pivotgrid-collapsed\";\r\nvar PIVOTGRID_LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar PIVOTGRID_VERTICAL_SCROLL_CLASS = \"dx-vertical-scroll\";\r\nvar PIVOTGRID_EXPAND_BORDER = \"dx-expand-border\";\r\nvar isRenovatedScrollable = !!Scrollable.IS_RENOVATED_WIDGET;\r\n\r\nfunction getCellPath(tableElement, cell) {\r\n if (cell) {\r\n var {\r\n data: data\r\n } = tableElement.data();\r\n var {\r\n rowIndex: rowIndex\r\n } = cell.parentNode;\r\n var {\r\n cellIndex: cellIndex\r\n } = cell;\r\n return data[rowIndex] && data[rowIndex][cellIndex] && data[rowIndex][cellIndex].path\r\n }\r\n return\r\n}\r\nvar HorizontalHeadersArea = AreaItem.inherit({\r\n ctor(component) {\r\n this.callBase(component);\r\n this._scrollBarWidth = 0\r\n },\r\n _getAreaName: () => \"column\",\r\n _getAreaClassName: () => PIVOTGRID_AREA_COLUMN_CLASS,\r\n _createGroupElement() {\r\n return $(\"<div>\").addClass(this._getAreaClassName()).addClass(PIVOTGRID_AREA_CLASS)\r\n },\r\n _applyCustomStyles(options) {\r\n var {\r\n cssArray: cssArray\r\n } = options;\r\n var {\r\n cell: cell\r\n } = options;\r\n var {\r\n rowsCount: rowsCount\r\n } = options;\r\n var {\r\n classArray: classArray\r\n } = options;\r\n if (options.cellIndex === options.cellsCount - 1) {\r\n cssArray.push(\"\".concat(options.rtlEnabled ? \"border-left:\" : \"border-right:\", \"0px\"))\r\n }\r\n if (cell.rowspan === rowsCount - options.rowIndex || options.rowIndex + 1 === rowsCount) {\r\n cssArray.push(\"border-bottom-width:0px\")\r\n }\r\n if (\"T\" === cell.type || \"GT\" === cell.type) {\r\n classArray.push(PIVOTGRID_ROW_TOTAL_CLASS)\r\n }\r\n if (\"T\" === options.cell.type) {\r\n classArray.push(PIVOTGRID_TOTAL_CLASS)\r\n }\r\n if (\"GT\" === options.cell.type) {\r\n classArray.push(PIVOTGRID_GRAND_TOTAL_CLASS)\r\n }\r\n if (isDefined(cell.expanded)) {\r\n classArray.push(cell.expanded ? PIVOTGRID_EXPANDED_CLASS : PIVOTGRID_COLLAPSED_CLASS)\r\n }\r\n this.callBase(options)\r\n },\r\n _getMainElementMarkup() {\r\n var thead = domAdapter.createElement(\"thead\");\r\n thead.setAttribute(\"class\", this._getAreaClassName());\r\n return thead\r\n },\r\n _getCloseMainElementMarkup: () => \"</thead>\",\r\n setVirtualContentParams(params) {\r\n this.callBase(params);\r\n this._setTableCss({\r\n left: params.left,\r\n top: 0\r\n });\r\n this._virtualContentWidth = params.width\r\n },\r\n hasScroll() {\r\n var tableWidth = this._virtualContent ? this._virtualContentWidth : this._tableWidth;\r\n var groupWidth = this.getGroupWidth();\r\n if (groupWidth && tableWidth) {\r\n return tableWidth - groupWidth >= 1\r\n }\r\n return false\r\n },\r\n renderScrollable() {\r\n this._groupElement.dxScrollable({\r\n useNative: false,\r\n useSimulatedScrollbar: false,\r\n showScrollbar: \"never\",\r\n bounceEnabled: false,\r\n direction: \"horizontal\",\r\n rtlEnabled: isRenovatedScrollable ? this.component.option(\"rtlEnabled\") : false,\r\n updateManually: true\r\n })\r\n },\r\n updateScrollableOptions(_ref) {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = _ref;\r\n var scrollable = this._getScrollable();\r\n isRenovatedScrollable && scrollable.option({\r\n rtlEnabled: rtlEnabled\r\n })\r\n },\r\n processScrollBarSpacing(scrollBarWidth) {\r\n var groupAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var groupWidth = this.getGroupWidth();\r\n if (groupWidth) {\r\n this.setGroupWidth(groupWidth - scrollBarWidth)\r\n }\r\n if (this._scrollBarWidth) {\r\n this._groupElement.next().remove()\r\n }\r\n this._groupElement.toggleClass(PIVOTGRID_VERTICAL_SCROLL_CLASS, scrollBarWidth > 0);\r\n setWidth(this._groupElement.css(\"float\", groupAlignment), this.getGroupHeight());\r\n this._scrollBarWidth = scrollBarWidth\r\n },\r\n getScrollPath(offset) {\r\n var tableElement = this.tableElement();\r\n var cell;\r\n offset -= parseInt(tableElement[0].style.left, 10) || 0;\r\n each(tableElement.find(\"td\"), (_, td) => {\r\n if (1 === td.colSpan && td.offsetLeft <= offset && td.offsetWidth + td.offsetLeft > offset) {\r\n cell = td;\r\n return false\r\n }\r\n return\r\n });\r\n return getCellPath(tableElement, cell)\r\n },\r\n _moveFakeTable(scrollPos) {\r\n this._moveFakeTableHorizontally(scrollPos);\r\n this.callBase()\r\n }\r\n});\r\nvar VerticalHeadersArea = HorizontalHeadersArea.inherit({\r\n _getAreaClassName: () => PIVOTGRID_AREA_ROW_CLASS,\r\n _applyCustomStyles(options) {\r\n this.callBase(options);\r\n if (options.cellIndex === options.cellsCount - 1) {\r\n options.classArray.push(PIVOTGRID_LAST_CELL_CLASS)\r\n }\r\n if (options.rowIndex === options.rowsCount - 1) {\r\n options.cssArray.push(\"border-bottom: 0px\")\r\n }\r\n if (options.cell.isWhiteSpace) {\r\n options.classArray.push(\"dx-white-space-column\")\r\n }\r\n },\r\n _getAreaName: () => \"row\",\r\n setVirtualContentParams(params) {\r\n this.callBase(params);\r\n this._setTableCss({\r\n top: params.top,\r\n left: 0\r\n });\r\n this._virtualContentHeight = params.height\r\n },\r\n hasScroll() {\r\n var tableHeight = this._virtualContent ? this._virtualContentHeight : this._tableHeight;\r\n var groupHeight = this.getGroupHeight();\r\n if (groupHeight && tableHeight) {\r\n return tableHeight - groupHeight >= 1\r\n }\r\n return false\r\n },\r\n renderScrollable() {\r\n this._groupElement.dxScrollable({\r\n useNative: false,\r\n useSimulatedScrollbar: false,\r\n showScrollbar: \"never\",\r\n bounceEnabled: false,\r\n direction: \"vertical\",\r\n updateManually: true\r\n })\r\n },\r\n processScrollBarSpacing(scrollBarWidth) {\r\n var groupHeight = this.getGroupHeight();\r\n if (groupHeight) {\r\n this.setGroupHeight(groupHeight - scrollBarWidth)\r\n }\r\n if (this._scrollBarWidth) {\r\n this._groupElement.next().remove()\r\n }\r\n if (scrollBarWidth) {\r\n var $div = $(\"<div>\");\r\n setWidth($div, \"100%\");\r\n setHeight($div, scrollBarWidth - 1);\r\n this._groupElement.after($div)\r\n }\r\n this._scrollBarWidth = scrollBarWidth\r\n },\r\n getScrollPath(offset) {\r\n var tableElement = this.tableElement();\r\n var cell;\r\n offset -= parseInt(tableElement[0].style.top, 10) || 0;\r\n each(tableElement.find(\"tr\"), (_, tr) => {\r\n var td = tr.childNodes[tr.childNodes.length - 1];\r\n if (td && 1 === td.rowSpan && td.offsetTop <= offset && td.offsetHeight + td.offsetTop > offset) {\r\n cell = td;\r\n return false\r\n }\r\n return\r\n });\r\n return getCellPath(tableElement, cell)\r\n },\r\n _moveFakeTable(scrollPos) {\r\n this._moveFakeTableTop(scrollPos);\r\n this.callBase()\r\n },\r\n _getRowClassNames(rowIndex, cell, rowClassNames) {\r\n if (0 !== rowIndex & cell.expanded && !rowClassNames.includes(PIVOTGRID_EXPAND_BORDER)) {\r\n rowClassNames.push(PIVOTGRID_EXPAND_BORDER)\r\n }\r\n },\r\n _getMainElementMarkup() {\r\n var tbody = domAdapter.createElement(\"tbody\");\r\n tbody.classList.add(this._getAreaClassName());\r\n return tbody\r\n },\r\n _getCloseMainElementMarkup: () => \"</tbody>\",\r\n updateColspans(columnCount) {\r\n var {\r\n rows: rows\r\n } = this.tableElement()[0];\r\n var columnOffset = 0;\r\n var columnOffsetResetIndexes = [];\r\n if (this.getColumnsCount() - columnCount > 0) {\r\n return\r\n }\r\n for (var i = 0; i < rows.length; i += 1) {\r\n for (var j = 0; j < rows[i].cells.length; j += 1) {\r\n var cell = rows[i].cells[j];\r\n var {\r\n rowSpan: rowSpan\r\n } = cell;\r\n if (columnOffsetResetIndexes[i]) {\r\n columnOffset -= columnOffsetResetIndexes[i];\r\n columnOffsetResetIndexes[i] = 0\r\n }\r\n var diff = columnCount - (columnOffset + cell.colSpan);\r\n if (j === rows[i].cells.length - 1 && diff > 0) {\r\n cell.colSpan += diff\r\n }\r\n columnOffsetResetIndexes[i + rowSpan] = (columnOffsetResetIndexes[i + rowSpan] || 0) + cell.colSpan;\r\n columnOffset += cell.colSpan\r\n }\r\n }\r\n }\r\n});\r\nexport default {\r\n HorizontalHeadersArea: HorizontalHeadersArea,\r\n VerticalHeadersArea: VerticalHeadersArea\r\n};\r\nexport {\r\n HorizontalHeadersArea,\r\n VerticalHeadersArea\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/pivot_grid/m_widget.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRender,\r\n deferUpdate,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth,\r\n setHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n format as formatString\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport ContextMenu from \"../../../ui/context_menu\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport {\r\n ChartIntegrationMixin\r\n} from \"./chart_integration/m_chart_integration\";\r\nimport DataAreaImport from \"./data_area/m_data_area\";\r\nimport DataControllerImport from \"./data_controller/m_data_controller\";\r\nimport {\r\n ExportController\r\n} from \"./export/m_export\";\r\nimport {\r\n FieldChooser\r\n} from \"./field_chooser/m_field_chooser\";\r\nimport {\r\n FieldChooserBase\r\n} from \"./field_chooser/m_field_chooser_base\";\r\nimport {\r\n FieldsArea\r\n} from \"./fields_area/m_fields_area\";\r\nimport HeadersArea from \"./headers_area/m_headers_area\";\r\nimport {\r\n findField,\r\n mergeArraysByMaxValue,\r\n setFieldProperty\r\n} from \"./m_widget_utils\";\r\nvar window = getWindow();\r\nvar DATA_AREA_CELL_CLASS = \"dx-area-data-cell\";\r\nvar ROW_AREA_CELL_CLASS = \"dx-area-row-cell\";\r\nvar COLUMN_AREA_CELL_CLASS = \"dx-area-column-cell\";\r\nvar DESCRIPTION_AREA_CELL_CLASS = \"dx-area-description-cell\";\r\nvar BORDERS_CLASS = \"dx-pivotgrid-border\";\r\nvar PIVOTGRID_CLASS = \"dx-pivotgrid\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar BOTTOM_ROW_CLASS = \"dx-bottom-row\";\r\nvar BOTTOM_BORDER_CLASS = \"dx-bottom-border\";\r\nvar FIELDS_CONTAINER_CLASS = \"dx-pivotgrid-fields-container\";\r\nvar FIELDS_CLASS = \"dx-area-fields\";\r\nvar FIELD_CHOOSER_POPUP_CLASS = \"dx-fieldchooser-popup\";\r\nvar INCOMPRESSIBLE_FIELDS_CLASS = \"dx-incompressible-fields\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TR = \"<tr>\";\r\nvar TD = \"<td>\";\r\nvar DIV = \"<div>\";\r\nvar TEST_HEIGHT = 66666;\r\nvar FIELD_CALCULATED_OPTIONS = [\"allowSorting\", \"allowSortingBySummary\", \"allowFiltering\", \"allowExpandAll\"];\r\n\r\nfunction getArraySum(array) {\r\n var sum = 0;\r\n each(array, (_, value) => {\r\n sum += value || 0\r\n });\r\n return sum\r\n}\r\n\r\nfunction adjustSizeArray(sizeArray, space) {\r\n var delta = space / sizeArray.length;\r\n for (var i = 0; i < sizeArray.length; i += 1) {\r\n sizeArray[i] -= delta\r\n }\r\n}\r\n\r\nfunction unsubscribeScrollEvents(area) {\r\n area.off(\"scroll\").off(\"stop\")\r\n}\r\n\r\nfunction subscribeToScrollEvent(area, handler) {\r\n unsubscribeScrollEvents(area);\r\n area.on(\"scroll\", handler).on(\"stop\", handler)\r\n}\r\n\r\nfunction getCommonBorderWidth(elements, direction) {\r\n var borderStyleNames = \"width\" === direction ? [\"borderLeftWidth\", \"borderRightWidth\"] : [\"borderTopWidth\", \"borderBottomWidth\"];\r\n var width = 0;\r\n each(elements, (_, elem) => {\r\n var computedStyle = window.getComputedStyle(elem.get(0));\r\n borderStyleNames.forEach(borderStyleName => {\r\n width += parseFloat(computedStyle[borderStyleName]) || 0\r\n })\r\n });\r\n return width\r\n}\r\n\r\nfunction clickedOnFieldsArea($targetElement) {\r\n return $targetElement.closest(\".\".concat(FIELDS_CLASS)).length || $targetElement.find(\".\".concat(FIELDS_CLASS)).length\r\n}\r\nvar PivotGrid = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n scrolling: {\r\n timeout: 300,\r\n renderingThreshold: 150,\r\n minTimeout: 10,\r\n mode: \"standard\",\r\n useNative: \"auto\",\r\n removeInvisiblePages: true,\r\n virtualRowHeight: 50,\r\n virtualColumnWidth: 100,\r\n loadTwoPagesOnStart: true\r\n },\r\n encodeHtml: true,\r\n dataSource: null,\r\n activeStateEnabled: false,\r\n fieldChooser: {\r\n minWidth: 250,\r\n minHeight: 250,\r\n enabled: true,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n layout: 0,\r\n title: localizationMessage.format(\"dxPivotGrid-fieldChooserTitle\"),\r\n width: 600,\r\n height: 600,\r\n applyChangesMode: \"instantly\"\r\n },\r\n onContextMenuPreparing: null,\r\n allowSorting: false,\r\n allowSortingBySummary: false,\r\n allowFiltering: false,\r\n allowExpandAll: false,\r\n wordWrapEnabled: true,\r\n fieldPanel: {\r\n showColumnFields: true,\r\n showFilterFields: true,\r\n showDataFields: true,\r\n showRowFields: true,\r\n allowFieldDragging: true,\r\n visible: false,\r\n texts: {\r\n columnFieldArea: localizationMessage.format(\"dxPivotGrid-columnFieldArea\"),\r\n rowFieldArea: localizationMessage.format(\"dxPivotGrid-rowFieldArea\"),\r\n filterFieldArea: localizationMessage.format(\"dxPivotGrid-filterFieldArea\"),\r\n dataFieldArea: localizationMessage.format(\"dxPivotGrid-dataFieldArea\")\r\n }\r\n },\r\n dataFieldArea: \"column\",\r\n export: {\r\n enabled: false,\r\n fileName: \"PivotGrid\"\r\n },\r\n showRowTotals: true,\r\n showRowGrandTotals: true,\r\n showColumnTotals: true,\r\n showColumnGrandTotals: true,\r\n hideEmptySummaryCells: true,\r\n showTotalsPrior: \"none\",\r\n rowHeaderLayout: \"standard\",\r\n loadPanel: {\r\n enabled: true,\r\n text: localizationMessage.format(\"Loading\"),\r\n width: 200,\r\n height: 70,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n texts: {\r\n grandTotal: localizationMessage.format(\"dxPivotGrid-grandTotal\"),\r\n total: localizationMessage.getFormatter(\"dxPivotGrid-total\"),\r\n noData: localizationMessage.format(\"dxDataGrid-noDataText\"),\r\n showFieldChooser: localizationMessage.format(\"dxPivotGrid-showFieldChooser\"),\r\n expandAll: localizationMessage.format(\"dxPivotGrid-expandAll\"),\r\n collapseAll: localizationMessage.format(\"dxPivotGrid-collapseAll\"),\r\n sortColumnBySummary: localizationMessage.getFormatter(\"dxPivotGrid-sortColumnBySummary\"),\r\n sortRowBySummary: localizationMessage.getFormatter(\"dxPivotGrid-sortRowBySummary\"),\r\n removeAllSorting: localizationMessage.format(\"dxPivotGrid-removeAllSorting\"),\r\n exportToExcel: localizationMessage.format(\"dxDataGrid-exportToExcel\"),\r\n dataNotAvailable: localizationMessage.format(\"dxPivotGrid-dataNotAvailable\")\r\n },\r\n onCellClick: null,\r\n onCellPrepared: null,\r\n showBorders: false,\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n },\r\n onExpandValueChanging: null,\r\n renderCellCountLimit: 2e4,\r\n onExporting: null,\r\n headerFilter: {\r\n width: 252,\r\n height: 325,\r\n allowSelectAll: true,\r\n showRelevantValues: false,\r\n search: {\r\n enabled: false,\r\n timeout: 500,\r\n editorOptions: {},\r\n mode: \"contains\"\r\n },\r\n texts: {\r\n emptyValue: localizationMessage.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: localizationMessage.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: localizationMessage.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n })\r\n },\r\n _updateCalculatedOptions(fields) {\r\n var that = this;\r\n each(fields, (_, field) => {\r\n each(FIELD_CALCULATED_OPTIONS, (_, optionName) => {\r\n var isCalculated = field._initProperties && optionName in field._initProperties && void 0 === field._initProperties[optionName];\r\n var needUpdate = void 0 === field[optionName] || isCalculated;\r\n if (needUpdate) {\r\n setFieldProperty(field, optionName, that.option(optionName))\r\n }\r\n })\r\n })\r\n },\r\n _getDataControllerOptions() {\r\n var that = this;\r\n return {\r\n component: that,\r\n dataSource: that.option(\"dataSource\"),\r\n texts: that.option(\"texts\"),\r\n showRowTotals: that.option(\"showRowTotals\"),\r\n showRowGrandTotals: that.option(\"showRowGrandTotals\"),\r\n showColumnTotals: that.option(\"showColumnTotals\"),\r\n showTotalsPrior: that.option(\"showTotalsPrior\"),\r\n showColumnGrandTotals: that.option(\"showColumnGrandTotals\"),\r\n dataFieldArea: that.option(\"dataFieldArea\"),\r\n rowHeaderLayout: that.option(\"rowHeaderLayout\"),\r\n hideEmptySummaryCells: that.option(\"hideEmptySummaryCells\"),\r\n onFieldsPrepared(fields) {\r\n that._updateCalculatedOptions(fields)\r\n }\r\n }\r\n },\r\n _initDataController() {\r\n var that = this;\r\n that._dataController && that._dataController.dispose();\r\n that._dataController = new DataControllerImport.DataController(that._getDataControllerOptions());\r\n if (hasWindow()) {\r\n that._dataController.changed.add(() => {\r\n that._render()\r\n })\r\n }\r\n that._dataController.scrollChanged.add(options => {\r\n that._scrollLeft = options.left;\r\n that._scrollTop = options.top\r\n });\r\n that._dataController.loadingChanged.add(() => {\r\n that._updateLoading()\r\n });\r\n that._dataController.progressChanged.add(that._updateLoading.bind(that));\r\n that._dataController.dataSourceChanged.add(() => {\r\n that._trigger(\"onChanged\")\r\n });\r\n var expandValueChanging = that.option(\"onExpandValueChanging\");\r\n if (expandValueChanging) {\r\n that._dataController.expandValueChanging.add(e => {\r\n expandValueChanging(e)\r\n })\r\n }\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initDataController();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n this._scrollLeft = this._scrollTop = null;\r\n this._initActions()\r\n },\r\n _initActions() {\r\n this._actions = {\r\n onChanged: this._createActionByOption(\"onChanged\"),\r\n onContextMenuPreparing: this._createActionByOption(\"onContextMenuPreparing\"),\r\n onCellClick: this._createActionByOption(\"onCellClick\"),\r\n onExporting: this._createActionByOption(\"onExporting\"),\r\n onCellPrepared: this._createActionByOption(\"onCellPrepared\")\r\n }\r\n },\r\n _trigger(eventName, eventArg) {\r\n this._actions[eventName](eventArg)\r\n },\r\n _optionChanged(args) {\r\n if (FIELD_CALCULATED_OPTIONS.includes(args.name)) {\r\n var fields = this.getDataSource().fields();\r\n this._updateCalculatedOptions(fields)\r\n }\r\n switch (args.name) {\r\n case \"dataSource\":\r\n case \"allowSorting\":\r\n case \"allowFiltering\":\r\n case \"allowExpandAll\":\r\n case \"allowSortingBySummary\":\r\n case \"scrolling\":\r\n case \"stateStoring\":\r\n this._initDataController();\r\n this._fieldChooserPopup.hide();\r\n this._renderFieldChooser();\r\n this._invalidate();\r\n break;\r\n case \"texts\":\r\n case \"showTotalsPrior\":\r\n case \"showRowTotals\":\r\n case \"showRowGrandTotals\":\r\n case \"showColumnTotals\":\r\n case \"showColumnGrandTotals\":\r\n case \"hideEmptySummaryCells\":\r\n case \"dataFieldArea\":\r\n this._dataController.updateViewOptions(this._getDataControllerOptions());\r\n break;\r\n case \"useNativeScrolling\":\r\n case \"encodeHtml\":\r\n case \"renderCellCountLimit\":\r\n break;\r\n case \"rtlEnabled\":\r\n this.callBase(args);\r\n this._renderFieldChooser();\r\n this._renderContextMenu();\r\n hasWindow() && this._renderLoadPanel(this._dataArea.groupElement(), this.$element());\r\n this._invalidate();\r\n break;\r\n case \"export\":\r\n this._renderDescriptionArea();\r\n break;\r\n case \"onExpandValueChanging\":\r\n break;\r\n case \"onCellClick\":\r\n case \"onContextMenuPreparing\":\r\n case \"onExporting\":\r\n case \"onExported\":\r\n case \"onFileSaving\":\r\n case \"onCellPrepared\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n case \"fieldChooser\":\r\n this._renderFieldChooser();\r\n this._renderDescriptionArea();\r\n break;\r\n case \"loadPanel\":\r\n if (hasWindow()) {\r\n if (\"loadPanel.enabled\" === args.fullName) {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._renderLoadPanel(this._dataArea.groupElement(), this.$element())\r\n } else {\r\n this._renderLoadPanel(this._dataArea.groupElement(), this.$element());\r\n this._invalidate()\r\n }\r\n }\r\n break;\r\n case \"fieldPanel\":\r\n this._renderDescriptionArea();\r\n this._invalidate();\r\n break;\r\n case \"headerFilter\":\r\n this._renderFieldChooser();\r\n this._invalidate();\r\n break;\r\n case \"showBorders\":\r\n this._tableElement().toggleClass(BORDERS_CLASS, !!args.value);\r\n this.updateDimensions();\r\n break;\r\n case \"wordWrapEnabled\":\r\n this._tableElement().toggleClass(\"dx-word-wrap\", !!args.value);\r\n this.updateDimensions();\r\n break;\r\n case \"rowHeaderLayout\":\r\n this._tableElement().find(\".\".concat(ROW_AREA_CELL_CLASS)).toggleClass(\"dx-area-tree-view\", \"tree\" === args.value);\r\n this._dataController.updateViewOptions(this._getDataControllerOptions());\r\n break;\r\n case \"height\":\r\n case \"width\":\r\n this._hasHeight = null;\r\n this.callBase(args);\r\n this.resize();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateScrollPosition(columnsArea, rowsArea, dataArea) {\r\n var force = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n var scrollTop;\r\n var scrollLeft;\r\n var scrolled = this._scrollTop || this._scrollLeft;\r\n if (this._scrollUpdating) {\r\n return\r\n }\r\n this._scrollUpdating = true;\r\n if (rowsArea && !rowsArea.hasScroll() && this._hasHeight) {\r\n this._scrollTop = null\r\n }\r\n if (columnsArea && !columnsArea.hasScroll()) {\r\n this._scrollLeft = null\r\n }\r\n if (null !== this._scrollTop || null !== this._scrollLeft || scrolled || this.option(\"rtlEnabled\")) {\r\n scrollTop = this._scrollTop || 0;\r\n scrollLeft = this._scrollLeft || 0;\r\n dataArea.scrollTo({\r\n left: scrollLeft,\r\n top: scrollTop\r\n }, force);\r\n columnsArea.scrollTo({\r\n left: scrollLeft\r\n }, force);\r\n rowsArea.scrollTo({\r\n top: scrollTop\r\n }, force);\r\n this._dataController.updateWindowScrollPosition(this._scrollTop)\r\n }\r\n this._scrollUpdating = false\r\n },\r\n _subscribeToEvents(columnsArea, rowsArea, dataArea) {\r\n var that = this;\r\n each([columnsArea, rowsArea, dataArea], (_, area) => {\r\n subscribeToScrollEvent(area, e => function(e, area) {\r\n var {\r\n scrollOffset: scrollOffset\r\n } = e;\r\n var scrollable = area._getScrollable();\r\n var leftOffset = \"vertical\" !== scrollable.option(\"direction\") ? scrollOffset.left : that._scrollLeft;\r\n var topOffset = \"horizontal\" !== scrollable.option(\"direction\") && that._hasHeight ? scrollOffset.top : that._scrollTop;\r\n if ((that._scrollLeft || 0) !== (leftOffset || 0) || (that._scrollTop || 0) !== (topOffset || 0)) {\r\n that._scrollLeft = leftOffset;\r\n that._scrollTop = topOffset;\r\n that._updateScrollPosition(columnsArea, rowsArea, dataArea);\r\n if (\"virtual\" === that.option(\"scrolling.mode\")) {\r\n that._dataController.setViewportPosition(that._scrollLeft, that._scrollTop)\r\n }\r\n }\r\n }(e, area))\r\n });\r\n !that._hasHeight && that._dataController.subscribeToWindowScrollEvents(dataArea.groupElement())\r\n },\r\n _clean: noop,\r\n _needDelayResizing(cellsInfo) {\r\n var cellsCount = cellsInfo.length * (cellsInfo.length ? cellsInfo[0].length : 0);\r\n return cellsCount > this.option(\"renderCellCountLimit\")\r\n },\r\n _renderFieldChooser() {\r\n var _a;\r\n var that = this;\r\n var container = that._pivotGridContainer;\r\n var fieldChooserOptions = that.option(\"fieldChooser\") || {};\r\n var toolbarItems = \"onDemand\" === fieldChooserOptions.applyChangesMode ? [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: localizationMessage.format(\"OK\"),\r\n onClick() {\r\n that._fieldChooserPopup.$content().dxPivotGridFieldChooser(\"applyChanges\");\r\n that._fieldChooserPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: localizationMessage.format(\"Cancel\"),\r\n onClick() {\r\n that._fieldChooserPopup.hide()\r\n }\r\n }\r\n }] : [];\r\n var fieldChooserComponentOptions = {\r\n layout: fieldChooserOptions.layout,\r\n texts: fieldChooserOptions.texts || {},\r\n dataSource: that.getDataSource(),\r\n allowSearch: fieldChooserOptions.allowSearch,\r\n searchTimeout: fieldChooserOptions.searchTimeout,\r\n width: void 0,\r\n height: void 0,\r\n headerFilter: that.option(\"headerFilter\"),\r\n encodeHtml: null !== (_a = that.option(\"fieldChooser.encodeHtml\")) && void 0 !== _a ? _a : that.option(\"encodeHtml\"),\r\n applyChangesMode: fieldChooserOptions.applyChangesMode,\r\n onContextMenuPreparing(e) {\r\n that._trigger(\"onContextMenuPreparing\", e)\r\n }\r\n };\r\n var popupOptions = {\r\n shading: false,\r\n title: fieldChooserOptions.title,\r\n width: fieldChooserOptions.width,\r\n height: fieldChooserOptions.height,\r\n showCloseButton: true,\r\n resizeEnabled: true,\r\n minWidth: fieldChooserOptions.minWidth,\r\n minHeight: fieldChooserOptions.minHeight,\r\n toolbarItems: toolbarItems,\r\n onResize(e) {\r\n e.component.$content().dxPivotGridFieldChooser(\"updateDimensions\")\r\n },\r\n onShown(e) {\r\n that._createComponent(e.component.content(), FieldChooser, fieldChooserComponentOptions)\r\n },\r\n onHidden(e) {\r\n var fieldChooser = e.component.$content().dxPivotGridFieldChooser(\"instance\");\r\n fieldChooser.resetTreeView();\r\n fieldChooser.cancelChanges()\r\n }\r\n };\r\n if (that._fieldChooserPopup) {\r\n that._fieldChooserPopup.option(popupOptions);\r\n that._fieldChooserPopup.$content().dxPivotGridFieldChooser(fieldChooserComponentOptions)\r\n } else {\r\n that._fieldChooserPopup = that._createComponent($(DIV).addClass(FIELD_CHOOSER_POPUP_CLASS).appendTo(container), Popup, popupOptions)\r\n }\r\n },\r\n _renderContextMenu() {\r\n var that = this;\r\n var $container = that._pivotGridContainer;\r\n if (that._contextMenu) {\r\n that._contextMenu.$element().remove()\r\n }\r\n that._contextMenu = that._createComponent($(DIV).appendTo($container), ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n actionArgs.cancel = true;\r\n if (!event) {\r\n return\r\n }\r\n var targetElement = event.target.cellIndex >= 0 ? event.target : $(event.target).closest(\"td\").get(0);\r\n if (!targetElement) {\r\n return\r\n }\r\n var args = that._createEventArgs(targetElement, event);\r\n var items = that._getContextMenuItems(args);\r\n if (items) {\r\n actionArgs.component.option(\"items\", items);\r\n actionArgs.cancel = false\r\n }\r\n },\r\n onItemClick(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: PIVOTGRID_CLASS,\r\n target: that.$element()\r\n })\r\n },\r\n _getContextMenuItems(e) {\r\n var that = this;\r\n var items = [];\r\n var texts = that.option(\"texts\");\r\n if (\"row\" === e.area || \"column\" === e.area) {\r\n var areaFields = e[\"\".concat(e.area, \"Fields\")];\r\n var oppositeAreaFields = e[\"column\" === e.area ? \"rowFields\" : \"columnFields\"];\r\n var field = e.cell.path && areaFields[e.cell.path.length - 1];\r\n var dataSource = that.getDataSource();\r\n if (field && field.allowExpandAll && e.cell.path.length < e[\"\".concat(e.area, \"Fields\")].length && !dataSource.paginate()) {\r\n items.push({\r\n beginGroup: true,\r\n icon: \"none\",\r\n text: texts.expandAll,\r\n onItemClick() {\r\n dataSource.expandAll(field.index)\r\n }\r\n });\r\n items.push({\r\n text: texts.collapseAll,\r\n icon: \"none\",\r\n onItemClick() {\r\n dataSource.collapseAll(field.index)\r\n }\r\n })\r\n }\r\n if (e.cell.isLast && !dataSource.paginate()) {\r\n var sortingBySummaryItemCount = 0;\r\n each(oppositeAreaFields, (_, field) => {\r\n if (!field.allowSortingBySummary) {\r\n return\r\n }\r\n each(e.dataFields, (dataIndex, dataField) => {\r\n if (isDefined(e.cell.dataIndex) && e.cell.dataIndex !== dataIndex) {\r\n return\r\n }\r\n var showDataFieldCaption = !isDefined(e.cell.dataIndex) && e.dataFields.length > 1;\r\n var textFormat = \"column\" === e.area ? texts.sortColumnBySummary : texts.sortRowBySummary;\r\n var checked = findField(e.dataFields, field.sortBySummaryField) === dataIndex && (e.cell.path || []).join(\"/\") === (field.sortBySummaryPath || []).join(\"/\");\r\n var text = formatString(textFormat, showDataFieldCaption ? \"\".concat(field.caption, \" - \").concat(dataField.caption) : field.caption);\r\n items.push({\r\n beginGroup: 0 === sortingBySummaryItemCount,\r\n icon: checked ? \"desc\" === field.sortOrder ? \"sortdowntext\" : \"sortuptext\" : \"none\",\r\n text: text,\r\n onItemClick() {\r\n dataSource.field(field.index, {\r\n sortBySummaryField: dataField.name || dataField.caption || dataField.dataField,\r\n sortBySummaryPath: e.cell.path,\r\n sortOrder: \"desc\" === field.sortOrder ? \"asc\" : \"desc\"\r\n });\r\n dataSource.load()\r\n }\r\n });\r\n sortingBySummaryItemCount += 1\r\n })\r\n });\r\n each(oppositeAreaFields, (_, field) => {\r\n if (!field.allowSortingBySummary || !isDefined(field.sortBySummaryField)) {\r\n return\r\n }\r\n items.push({\r\n beginGroup: 0 === sortingBySummaryItemCount,\r\n icon: \"none\",\r\n text: texts.removeAllSorting,\r\n onItemClick() {\r\n each(oppositeAreaFields, (_, field) => {\r\n dataSource.field(field.index, {\r\n sortBySummaryField: void 0,\r\n sortBySummaryPath: void 0,\r\n sortOrder: void 0\r\n })\r\n });\r\n dataSource.load()\r\n }\r\n });\r\n return false\r\n })\r\n }\r\n }\r\n if (that.option(\"fieldChooser.enabled\")) {\r\n items.push({\r\n beginGroup: true,\r\n icon: \"columnchooser\",\r\n text: texts.showFieldChooser,\r\n onItemClick() {\r\n that._fieldChooserPopup.show()\r\n }\r\n })\r\n }\r\n if (that.option(\"export.enabled\")) {\r\n items.push({\r\n beginGroup: true,\r\n icon: \"xlsxfile\",\r\n text: texts.exportToExcel,\r\n onItemClick() {\r\n that.exportTo()\r\n }\r\n })\r\n }\r\n e.items = items;\r\n that._trigger(\"onContextMenuPreparing\", e);\r\n items = e.items;\r\n if (items && items.length) {\r\n return items\r\n }\r\n return\r\n },\r\n _createEventArgs(targetElement, dxEvent) {\r\n var dataSource = this.getDataSource();\r\n var args = {\r\n rowFields: dataSource.getAreaFields(\"row\"),\r\n columnFields: dataSource.getAreaFields(\"column\"),\r\n dataFields: dataSource.getAreaFields(\"data\"),\r\n event: dxEvent\r\n };\r\n if (clickedOnFieldsArea($(targetElement))) {\r\n return extend(this._createFieldArgs(targetElement), args)\r\n }\r\n return extend(this._createCellArgs(targetElement), args)\r\n },\r\n _createFieldArgs(targetElement) {\r\n var field = $(targetElement).children().data(\"field\");\r\n var args = {\r\n field: field\r\n };\r\n return isDefined(field) ? args : {}\r\n },\r\n _createCellArgs(cellElement) {\r\n var $cellElement = $(cellElement);\r\n var columnIndex = cellElement.cellIndex;\r\n var {\r\n rowIndex: rowIndex\r\n } = cellElement.parentElement;\r\n var $table = $cellElement.closest(\"table\");\r\n var data = $table.data(\"data\");\r\n var cell = data && data[rowIndex] && data[rowIndex][columnIndex];\r\n var args = {\r\n area: $table.data(\"area\"),\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n cellElement: getPublicElement($cellElement),\r\n cell: cell\r\n };\r\n return args\r\n },\r\n _handleCellClick(e) {\r\n var that = this;\r\n var args = that._createEventArgs(e.currentTarget, e);\r\n var {\r\n cell: cell\r\n } = args;\r\n if (!cell || !args.area && (args.rowIndex || args.columnIndex)) {\r\n return\r\n }\r\n that._trigger(\"onCellClick\", args);\r\n cell && !args.cancel && isDefined(cell.expanded) && setTimeout(() => {\r\n that._dataController[cell.expanded ? \"collapseHeaderItem\" : \"expandHeaderItem\"](args.area, cell.path)\r\n })\r\n },\r\n _getNoDataText() {\r\n return this.option(\"texts.noData\")\r\n },\r\n _renderNoDataText: gridCoreUtils.renderNoDataText,\r\n _renderLoadPanel: gridCoreUtils.renderLoadPanel,\r\n _updateLoading(progress) {\r\n var that = this;\r\n var isLoading = that._dataController.isLoading();\r\n if (!that._loadPanel) {\r\n return\r\n }\r\n var loadPanelVisible = that._loadPanel.option(\"visible\");\r\n if (!loadPanelVisible) {\r\n that._startLoadingTime = new Date\r\n }\r\n if (isLoading) {\r\n if (progress) {\r\n if (new Date - that._startLoadingTime >= 1e3) {\r\n that._loadPanel.option(\"message\", \"\".concat(Math.floor(100 * progress), \"%\"))\r\n }\r\n } else {\r\n that._loadPanel.option(\"message\", that.option(\"loadPanel.text\"))\r\n }\r\n }\r\n clearTimeout(that._hideLoadingTimeoutID);\r\n if (loadPanelVisible && !isLoading) {\r\n that._hideLoadingTimeoutID = setTimeout(() => {\r\n that._loadPanel.option(\"visible\", false);\r\n that.$element().removeClass(OVERFLOW_HIDDEN_CLASS)\r\n })\r\n } else {\r\n var visibilityOptions = {\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition(that._dataArea.groupElement())\r\n }\r\n that._loadPanel.option(visibilityOptions);\r\n that.$element().toggleClass(OVERFLOW_HIDDEN_CLASS, !isLoading)\r\n }\r\n },\r\n _renderDescriptionArea() {\r\n var $element = this.$element();\r\n var $descriptionCell = $element.find(\".\".concat(DESCRIPTION_AREA_CELL_CLASS));\r\n var $toolbarContainer = $(DIV).addClass(\"dx-pivotgrid-toolbar\");\r\n var fieldPanel = this.option(\"fieldPanel\");\r\n var $filterHeader = $element.find(\".dx-filter-header\");\r\n var $columnHeader = $element.find(\".dx-column-header\");\r\n var $targetContainer;\r\n if (fieldPanel.visible && fieldPanel.showFilterFields) {\r\n $targetContainer = $filterHeader\r\n } else if (fieldPanel.visible && (fieldPanel.showDataFields || fieldPanel.showColumnFields)) {\r\n $targetContainer = $columnHeader\r\n } else {\r\n $targetContainer = $descriptionCell\r\n }\r\n $columnHeader.toggleClass(BOTTOM_BORDER_CLASS, !!(fieldPanel.visible && (fieldPanel.showDataFields || fieldPanel.showColumnFields)));\r\n $filterHeader.toggleClass(BOTTOM_BORDER_CLASS, !!(fieldPanel.visible && fieldPanel.showFilterFields));\r\n $descriptionCell.toggleClass(\"dx-pivotgrid-background\", fieldPanel.visible && (fieldPanel.showDataFields || fieldPanel.showColumnFields || fieldPanel.showRowFields));\r\n this.$element().find(\".dx-pivotgrid-toolbar\").remove();\r\n $toolbarContainer.prependTo($targetContainer);\r\n var stylingMode = isFluent(current()) ? \"text\" : \"contained\";\r\n if (this.option(\"fieldChooser.enabled\")) {\r\n var $buttonElement = $(DIV).appendTo($toolbarContainer).addClass(\"dx-pivotgrid-field-chooser-button\");\r\n var buttonOptions = {\r\n icon: \"columnchooser\",\r\n hint: this.option(\"texts.showFieldChooser\"),\r\n stylingMode: stylingMode,\r\n onClick: () => {\r\n this.getFieldChooserPopup().show()\r\n }\r\n };\r\n this._createComponent($buttonElement, Button, buttonOptions)\r\n }\r\n if (this.option(\"export.enabled\")) {\r\n var _$buttonElement = $(DIV).appendTo($toolbarContainer).addClass(\"dx-pivotgrid-export-button\");\r\n var _buttonOptions = {\r\n icon: \"xlsxfile\",\r\n hint: this.option(\"texts.exportToExcel\"),\r\n stylingMode: stylingMode,\r\n onClick: () => {\r\n this.exportTo()\r\n }\r\n };\r\n this._createComponent(_$buttonElement, Button, _buttonOptions)\r\n }\r\n },\r\n _detectHasContainerHeight() {\r\n var element = this.$element();\r\n if (isDefined(this._hasHeight)) {\r\n var height = this.option(\"height\") || this.$element().get(0).style.height;\r\n if (height && this._hasHeight ^ \"auto\" !== height) {\r\n this._hasHeight = null\r\n }\r\n }\r\n if (isDefined(this._hasHeight) || element.is(\":hidden\")) {\r\n return\r\n }\r\n this._pivotGridContainer.addClass(\"dx-hidden\");\r\n var testElement = $(DIV);\r\n setHeight(testElement, TEST_HEIGHT);\r\n element.append(testElement);\r\n this._hasHeight = getHeight(element) !== TEST_HEIGHT;\r\n this._pivotGridContainer.removeClass(\"dx-hidden\");\r\n testElement.remove()\r\n },\r\n _renderHeaders(rowHeaderContainer, columnHeaderContainer, filterHeaderContainer, dataHeaderContainer) {\r\n var dataSource = this.getDataSource();\r\n this._rowFields = this._rowFields || new FieldsArea(this, \"row\");\r\n this._rowFields.render(rowHeaderContainer, dataSource.getAreaFields(\"row\"));\r\n this._columnFields = this._columnFields || new FieldsArea(this, \"column\");\r\n this._columnFields.render(columnHeaderContainer, dataSource.getAreaFields(\"column\"));\r\n this._filterFields = this._filterFields || new FieldsArea(this, \"filter\");\r\n this._filterFields.render(filterHeaderContainer, dataSource.getAreaFields(\"filter\"));\r\n this._dataFields = this._dataFields || new FieldsArea(this, \"data\");\r\n this._dataFields.render(dataHeaderContainer, dataSource.getAreaFields(\"data\"));\r\n this.$element().dxPivotGridFieldChooserBase(\"instance\").renderSortable()\r\n },\r\n _createTableElement() {\r\n var $table = $(\"<table>\").css({\r\n width: \"100%\"\r\n }).toggleClass(BORDERS_CLASS, !!this.option(\"showBorders\")).toggleClass(\"dx-word-wrap\", !!this.option(\"wordWrapEnabled\"));\r\n eventsEngine.on($table, addNamespace(clickEventName, \"dxPivotGrid\"), \"td\", this._handleCellClick.bind(this));\r\n return $table\r\n },\r\n _renderDataArea(dataAreaElement) {\r\n var dataArea = this._dataArea || new DataAreaImport.DataArea(this);\r\n this._dataArea = dataArea;\r\n dataArea.render(dataAreaElement, this._dataController.getCellsInfo());\r\n return dataArea\r\n },\r\n _renderRowsArea(rowsAreaElement) {\r\n var rowsArea = this._rowsArea || new HeadersArea.VerticalHeadersArea(this);\r\n this._rowsArea = rowsArea;\r\n rowsArea.render(rowsAreaElement, this._dataController.getRowsInfo());\r\n return rowsArea\r\n },\r\n _renderColumnsArea(columnsAreaElement) {\r\n var columnsArea = this._columnsArea || new HeadersArea.HorizontalHeadersArea(this);\r\n this._columnsArea = columnsArea;\r\n columnsArea.render(columnsAreaElement, this._dataController.getColumnsInfo());\r\n return columnsArea\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.$element().addClass(PIVOTGRID_CLASS)\r\n },\r\n _renderContentImpl() {\r\n var columnsAreaElement;\r\n var rowsAreaElement;\r\n var dataAreaElement;\r\n var tableElement;\r\n var isFirstDrawing = !this._pivotGridContainer;\r\n var rowHeaderContainer;\r\n var columnHeaderContainer;\r\n var filterHeaderContainer;\r\n var dataHeaderContainer;\r\n tableElement = !isFirstDrawing && this._tableElement();\r\n if (!tableElement) {\r\n this.$element().addClass(ROW_LINES_CLASS).addClass(FIELDS_CONTAINER_CLASS);\r\n this._pivotGridContainer = $(DIV).addClass(\"dx-pivotgrid-container\");\r\n this._renderFieldChooser();\r\n this._renderContextMenu();\r\n columnsAreaElement = $(TD).addClass(COLUMN_AREA_CELL_CLASS);\r\n rowsAreaElement = $(TD).addClass(ROW_AREA_CELL_CLASS);\r\n dataAreaElement = $(TD).addClass(DATA_AREA_CELL_CLASS);\r\n tableElement = this._createTableElement();\r\n dataHeaderContainer = $(TD).addClass(\"dx-data-header\");\r\n filterHeaderContainer = $(\"<td>\").attr(\"colspan\", \"2\").addClass(\"dx-filter-header\");\r\n columnHeaderContainer = $(TD).addClass(\"dx-column-header\");\r\n rowHeaderContainer = $(TD).addClass(DESCRIPTION_AREA_CELL_CLASS);\r\n $(TR).append(filterHeaderContainer).appendTo(tableElement);\r\n $(TR).append(dataHeaderContainer).append(columnHeaderContainer).appendTo(tableElement);\r\n $(TR).append(rowHeaderContainer).append(columnsAreaElement).appendTo(tableElement);\r\n $(TR).addClass(BOTTOM_ROW_CLASS).append(rowsAreaElement).append(dataAreaElement).appendTo(tableElement);\r\n this._pivotGridContainer.append(tableElement);\r\n this.$element().append(this._pivotGridContainer);\r\n if (\"tree\" === this.option(\"rowHeaderLayout\")) {\r\n rowsAreaElement.addClass(\"dx-area-tree-view\")\r\n }\r\n }\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS);\r\n this._createComponent(this.$element(), FieldChooserBase, {\r\n dataSource: this.getDataSource(),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n allowFieldDragging: this.option(\"fieldPanel.allowFieldDragging\"),\r\n headerFilter: this.option(\"headerFilter\"),\r\n visible: this.option(\"visible\"),\r\n remoteSort: \"virtual\" === this.option(\"scrolling.mode\")\r\n });\r\n var dataArea = this._renderDataArea(dataAreaElement);\r\n var rowsArea = this._renderRowsArea(rowsAreaElement);\r\n var columnsArea = this._renderColumnsArea(columnsAreaElement);\r\n dataArea.tableElement().prepend(columnsArea.headElement());\r\n if (isFirstDrawing) {\r\n this._renderLoadPanel(dataArea.groupElement().parent(), this.$element());\r\n this._renderDescriptionArea();\r\n rowsArea.renderScrollable();\r\n columnsArea.renderScrollable();\r\n dataArea.renderScrollable()\r\n } [dataArea, rowsArea, columnsArea].forEach(area => {\r\n unsubscribeScrollEvents(area)\r\n });\r\n this._renderHeaders(rowHeaderContainer, columnHeaderContainer, filterHeaderContainer, dataHeaderContainer);\r\n this._update(isFirstDrawing)\r\n },\r\n _update(isFirstDrawing) {\r\n var that = this;\r\n var updateHandler = function() {\r\n that.updateDimensions()\r\n };\r\n if (that._needDelayResizing(that._dataArea.getData()) && isFirstDrawing) {\r\n setTimeout(updateHandler)\r\n } else {\r\n updateHandler()\r\n }\r\n },\r\n _fireContentReadyAction() {\r\n if (!this._dataController.isLoading()) {\r\n this.callBase()\r\n }\r\n },\r\n getScrollPath(area) {\r\n if (\"column\" === area) {\r\n return this._columnsArea.getScrollPath(this._scrollLeft)\r\n }\r\n return this._rowsArea.getScrollPath(this._scrollTop)\r\n },\r\n getDataSource() {\r\n return this._dataController.getDataSource()\r\n },\r\n getFieldChooserPopup() {\r\n return this._fieldChooserPopup\r\n },\r\n hasScroll(area) {\r\n return \"column\" === area ? this._columnsArea.hasScroll() : this._rowsArea.hasScroll()\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _dispose() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this.callBase.apply(this, arguments);\r\n if (this._dataController) {\r\n this._dataController.dispose()\r\n }\r\n },\r\n _tableElement() {\r\n return this.$element().find(\"table\").first()\r\n },\r\n addWidgetPrefix: className => \"dx-pivotgrid-\".concat(className),\r\n resize() {\r\n this.updateDimensions()\r\n },\r\n isReady() {\r\n return this.callBase() && !this._dataController.isLoading()\r\n },\r\n updateDimensions() {\r\n var that = this;\r\n var groupWidth;\r\n var tableElement = that._tableElement();\r\n var bordersWidth;\r\n var totalWidth = 0;\r\n var totalHeight = 0;\r\n var rowsAreaWidth = 0;\r\n var hasRowsScroll;\r\n var hasColumnsScroll;\r\n var dataAreaCell = tableElement.find(\".\".concat(DATA_AREA_CELL_CLASS));\r\n var rowAreaCell = tableElement.find(\".\".concat(ROW_AREA_CELL_CLASS));\r\n var columnAreaCell = tableElement.find(\".\".concat(COLUMN_AREA_CELL_CLASS));\r\n var descriptionCell = tableElement.find(\".\".concat(DESCRIPTION_AREA_CELL_CLASS));\r\n var filterHeaderCell = tableElement.find(\".dx-filter-header\");\r\n var columnHeaderCell = tableElement.find(\".dx-column-header\");\r\n var rowFieldsHeader = that._rowFields;\r\n var d = new Deferred;\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var needSynchronizeFieldPanel = rowFieldsHeader.isVisible() && \"tree\" !== that.option(\"rowHeaderLayout\");\r\n that._detectHasContainerHeight();\r\n if (!that._dataArea.headElement().length) {\r\n that._dataArea.tableElement().prepend(that._columnsArea.headElement())\r\n }\r\n if (needSynchronizeFieldPanel) {\r\n that._rowsArea.updateColspans(rowFieldsHeader.getColumnsCount());\r\n that._rowsArea.tableElement().prepend(rowFieldsHeader.headElement())\r\n }\r\n tableElement.addClass(INCOMPRESSIBLE_FIELDS_CLASS);\r\n that._dataArea.reset();\r\n that._rowsArea.reset();\r\n that._columnsArea.reset();\r\n rowFieldsHeader.reset();\r\n var calculateHasScroll = (areaSize, totalSize) => totalSize - areaSize >= 1;\r\n var calculateGroupHeight = (dataAreaHeight, totalHeight, hasRowsScroll, hasColumnsScroll, scrollBarWidth) => hasRowsScroll ? dataAreaHeight : totalHeight + (hasColumnsScroll ? scrollBarWidth : 0);\r\n deferUpdate(() => {\r\n var rowHeights = that._rowsArea.getRowsHeight();\r\n var descriptionCellHeight = getOuterHeight(descriptionCell[0], true) + (needSynchronizeFieldPanel ? rowHeights[0] : 0);\r\n var filterAreaHeight = 0;\r\n var dataAreaHeight = 0;\r\n if (that._hasHeight) {\r\n filterAreaHeight = getHeight(filterHeaderCell);\r\n var $dataHeader = tableElement.find(\".dx-data-header\");\r\n var dataHeaderHeight = getHeight($dataHeader);\r\n bordersWidth = getCommonBorderWidth([columnAreaCell, dataAreaCell, tableElement, columnHeaderCell, filterHeaderCell], \"height\");\r\n dataAreaHeight = getHeight(that.$element()) - filterAreaHeight - dataHeaderHeight - (Math.max(getHeight(that._dataArea.headElement()), getHeight(columnAreaCell), descriptionCellHeight) + bordersWidth)\r\n }\r\n var scrollBarWidth = that._dataArea.getScrollbarWidth();\r\n var hasVerticalScrollbar = calculateHasScroll(dataAreaHeight, getHeight(that._dataArea.tableElement()));\r\n that._dataArea.tableElement().css({\r\n width: that._hasHeight && hasVerticalScrollbar && scrollBarWidth ? \"calc(100% - \".concat(scrollBarWidth, \"px)\") : \"100%\"\r\n });\r\n var resultWidths = that._dataArea.getColumnsWidth();\r\n var rowsAreaHeights = needSynchronizeFieldPanel ? rowHeights.slice(1) : rowHeights;\r\n var dataAreaHeights = that._dataArea.getRowsHeight();\r\n var columnsAreaRowCount = that._dataController.getColumnsInfo().length;\r\n var resultHeights = mergeArraysByMaxValue(rowsAreaHeights, dataAreaHeights.slice(columnsAreaRowCount));\r\n var columnsAreaRowHeights = dataAreaHeights.slice(0, columnsAreaRowCount);\r\n var columnsAreaHeight = getArraySum(columnsAreaRowHeights);\r\n var rowsAreaColumnWidths = that._rowsArea.getColumnsWidth();\r\n totalWidth = getWidth(that._dataArea.tableElement());\r\n totalHeight = getArraySum(resultHeights);\r\n if (!totalWidth || !totalHeight) {\r\n d.resolve();\r\n return\r\n }\r\n rowsAreaWidth = getArraySum(rowsAreaColumnWidths);\r\n var elementWidth = getWidth(that.$element());\r\n bordersWidth = getCommonBorderWidth([rowAreaCell, dataAreaCell, tableElement], \"width\");\r\n groupWidth = elementWidth - rowsAreaWidth - bordersWidth;\r\n groupWidth = groupWidth > 0 ? groupWidth : totalWidth;\r\n var diff = totalWidth - groupWidth;\r\n var needAdjustWidthOnZoom = diff >= 0 && diff <= 2;\r\n if (needAdjustWidthOnZoom) {\r\n adjustSizeArray(resultWidths, diff);\r\n totalWidth = groupWidth\r\n }\r\n hasRowsScroll = that._hasHeight && calculateHasScroll(dataAreaHeight, totalHeight);\r\n hasColumnsScroll = calculateHasScroll(groupWidth, totalWidth);\r\n var groupHeight = calculateGroupHeight(dataAreaHeight, totalHeight, hasRowsScroll, hasColumnsScroll, scrollBarWidth);\r\n deferRender(() => {\r\n that._columnsArea.tableElement().append(that._dataArea.headElement());\r\n rowFieldsHeader.tableElement().append(that._rowsArea.headElement());\r\n if (descriptionCellHeight > columnsAreaHeight) {\r\n adjustSizeArray(columnsAreaRowHeights, columnsAreaHeight - descriptionCellHeight);\r\n that._columnsArea.setRowsHeight(columnsAreaRowHeights)\r\n }\r\n tableElement.removeClass(INCOMPRESSIBLE_FIELDS_CLASS);\r\n columnHeaderCell.children().css(\"maxWidth\", groupWidth);\r\n that._columnsArea.setGroupWidth(groupWidth);\r\n that._columnsArea.processScrollBarSpacing(hasRowsScroll ? scrollBarWidth : 0);\r\n that._columnsArea.setColumnsWidth(resultWidths);\r\n that._rowsArea.setGroupHeight(that._hasHeight ? groupHeight : \"auto\");\r\n that._rowsArea.processScrollBarSpacing(hasColumnsScroll ? scrollBarWidth : 0);\r\n that._rowsArea.setColumnsWidth(rowsAreaColumnWidths);\r\n that._rowsArea.setRowsHeight(resultHeights);\r\n that._dataArea.setColumnsWidth(resultWidths);\r\n that._dataArea.setRowsHeight(resultHeights);\r\n that._dataArea.setGroupWidth(groupWidth);\r\n that._dataArea.setGroupHeight(that._hasHeight ? groupHeight : \"auto\");\r\n needSynchronizeFieldPanel && rowFieldsHeader.setColumnsWidth(rowsAreaColumnWidths);\r\n dataAreaCell.toggleClass(BOTTOM_BORDER_CLASS, !hasRowsScroll);\r\n rowAreaCell.toggleClass(BOTTOM_BORDER_CLASS, !hasRowsScroll);\r\n if (!that._hasHeight && elementWidth !== getWidth(that.$element())) {\r\n var _diff = elementWidth - getWidth(that.$element());\r\n if (!hasColumnsScroll) {\r\n adjustSizeArray(resultWidths, _diff);\r\n that._columnsArea.setColumnsWidth(resultWidths);\r\n that._dataArea.setColumnsWidth(resultWidths)\r\n }\r\n that._dataArea.setGroupWidth(groupWidth - _diff);\r\n that._columnsArea.setGroupWidth(groupWidth - _diff)\r\n }\r\n if (that._hasHeight && that._filterFields.isVisible() && getHeight(filterHeaderCell) !== filterAreaHeight) {\r\n var _diff2 = getHeight(filterHeaderCell) - filterAreaHeight;\r\n if (_diff2 > 0) {\r\n hasRowsScroll = calculateHasScroll(dataAreaHeight - _diff2, totalHeight);\r\n var _groupHeight = calculateGroupHeight(dataAreaHeight - _diff2, totalHeight, hasRowsScroll, hasColumnsScroll, scrollBarWidth);\r\n that._dataArea.setGroupHeight(_groupHeight);\r\n that._rowsArea.setGroupHeight(_groupHeight)\r\n }\r\n }\r\n var scrollingOptions = that.option(\"scrolling\");\r\n if (\"virtual\" === scrollingOptions.mode) {\r\n that._setVirtualContentParams(scrollingOptions, resultWidths, resultHeights, groupWidth, groupHeight, that._hasHeight, rowsAreaWidth)\r\n }\r\n var updateScrollableResults = [];\r\n that._dataArea.updateScrollableOptions({\r\n direction: that._dataArea.getScrollableDirection(hasColumnsScroll, hasRowsScroll),\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n });\r\n that._columnsArea.updateScrollableOptions({\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n });\r\n each([that._columnsArea, that._rowsArea, that._dataArea], (_, area) => {\r\n updateScrollableResults.push(area && area.updateScrollable())\r\n });\r\n that._updateLoading();\r\n that._renderNoDataText(dataAreaCell);\r\n when.apply($, updateScrollableResults).done(() => {\r\n that._updateScrollPosition(that._columnsArea, that._rowsArea, that._dataArea, true);\r\n that._subscribeToEvents(that._columnsArea, that._rowsArea, that._dataArea);\r\n d.resolve()\r\n })\r\n })\r\n });\r\n return d\r\n },\r\n _setVirtualContentParams(scrollingOptions, resultWidths, resultHeights, groupWidth, groupHeight, hasHeight, rowsAreaWidth) {\r\n var virtualContentParams = this._dataController.calculateVirtualContentParams({\r\n virtualRowHeight: scrollingOptions.virtualRowHeight,\r\n virtualColumnWidth: scrollingOptions.virtualColumnWidth,\r\n itemWidths: resultWidths,\r\n itemHeights: resultHeights,\r\n rowCount: resultHeights.length,\r\n columnCount: resultWidths.length,\r\n viewportWidth: groupWidth,\r\n viewportHeight: hasHeight ? groupHeight : getOuterHeight(window)\r\n });\r\n this._dataArea.setVirtualContentParams({\r\n top: virtualContentParams.contentTop,\r\n left: virtualContentParams.contentLeft,\r\n width: virtualContentParams.width,\r\n height: virtualContentParams.height\r\n });\r\n this._rowsArea.setVirtualContentParams({\r\n top: virtualContentParams.contentTop,\r\n width: rowsAreaWidth,\r\n height: virtualContentParams.height\r\n });\r\n this._columnsArea.setVirtualContentParams({\r\n left: virtualContentParams.contentLeft,\r\n width: virtualContentParams.width,\r\n height: getHeight(this._columnsArea.groupElement())\r\n })\r\n },\r\n applyPartialDataSource(area, path, dataSource) {\r\n this._dataController.applyPartialDataSource(area, path, dataSource)\r\n }\r\n}).inherit(ExportController).include(ChartIntegrationMixin);\r\nregisterComponent(\"dxPivotGrid\", PivotGrid);\r\nexport default {\r\n PivotGrid: PivotGrid\r\n};\r\nexport {\r\n PivotGrid\r\n};\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxPivotGrid from 'devextreme/ui/pivot_grid';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoDataSourceModule, DxiFieldModule, DxoFormatModule, DxoHeaderFilterModule, DxoStoreModule, DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxPivotGrid]\r\n\r\n */\r\nclass DxPivotGridComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'cellClick', emit: 'onCellClick' },\r\n { subscribe: 'cellPrepared', emit: 'onCellPrepared' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'allowExpandAllChange' },\r\n { emit: 'allowFilteringChange' },\r\n { emit: 'allowSortingChange' },\r\n { emit: 'allowSortingBySummaryChange' },\r\n { emit: 'dataFieldAreaChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'encodeHtmlChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'fieldChooserChange' },\r\n { emit: 'fieldPanelChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideEmptySummaryCellsChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'loadPanelChange' },\r\n { emit: 'rowHeaderLayoutChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollingChange' },\r\n { emit: 'showBordersChange' },\r\n { emit: 'showColumnGrandTotalsChange' },\r\n { emit: 'showColumnTotalsChange' },\r\n { emit: 'showRowGrandTotalsChange' },\r\n { emit: 'showRowTotalsChange' },\r\n { emit: 'showTotalsPriorChange' },\r\n { emit: 'stateStoringChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wordWrapEnabledChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.allowExpandAll]\r\n \r\n */\r\n get allowExpandAll() {\r\n return this._getOption('allowExpandAll');\r\n }\r\n set allowExpandAll(value) {\r\n this._setOption('allowExpandAll', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.allowFiltering]\r\n \r\n */\r\n get allowFiltering() {\r\n return this._getOption('allowFiltering');\r\n }\r\n set allowFiltering(value) {\r\n this._setOption('allowFiltering', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.allowSorting]\r\n \r\n */\r\n get allowSorting() {\r\n return this._getOption('allowSorting');\r\n }\r\n set allowSorting(value) {\r\n this._setOption('allowSorting', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.allowSortingBySummary]\r\n \r\n */\r\n get allowSortingBySummary() {\r\n return this._getOption('allowSortingBySummary');\r\n }\r\n set allowSortingBySummary(value) {\r\n this._setOption('allowSortingBySummary', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.dataFieldArea]\r\n \r\n */\r\n get dataFieldArea() {\r\n return this._getOption('dataFieldArea');\r\n }\r\n set dataFieldArea(value) {\r\n this._setOption('dataFieldArea', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.encodeHtml]\r\n \r\n */\r\n get encodeHtml() {\r\n return this._getOption('encodeHtml');\r\n }\r\n set encodeHtml(value) {\r\n this._setOption('encodeHtml', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.fieldChooser]\r\n \r\n */\r\n get fieldChooser() {\r\n return this._getOption('fieldChooser');\r\n }\r\n set fieldChooser(value) {\r\n this._setOption('fieldChooser', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.fieldPanel]\r\n \r\n */\r\n get fieldPanel() {\r\n return this._getOption('fieldPanel');\r\n }\r\n set fieldPanel(value) {\r\n this._setOption('fieldPanel', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.headerFilter]\r\n \r\n */\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.hideEmptySummaryCells]\r\n \r\n */\r\n get hideEmptySummaryCells() {\r\n return this._getOption('hideEmptySummaryCells');\r\n }\r\n set hideEmptySummaryCells(value) {\r\n this._setOption('hideEmptySummaryCells', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.loadPanel]\r\n \r\n */\r\n get loadPanel() {\r\n return this._getOption('loadPanel');\r\n }\r\n set loadPanel(value) {\r\n this._setOption('loadPanel', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.rowHeaderLayout]\r\n \r\n */\r\n get rowHeaderLayout() {\r\n return this._getOption('rowHeaderLayout');\r\n }\r\n set rowHeaderLayout(value) {\r\n this._setOption('rowHeaderLayout', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.scrolling]\r\n \r\n */\r\n get scrolling() {\r\n return this._getOption('scrolling');\r\n }\r\n set scrolling(value) {\r\n this._setOption('scrolling', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showBorders]\r\n \r\n */\r\n get showBorders() {\r\n return this._getOption('showBorders');\r\n }\r\n set showBorders(value) {\r\n this._setOption('showBorders', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showColumnGrandTotals]\r\n \r\n */\r\n get showColumnGrandTotals() {\r\n return this._getOption('showColumnGrandTotals');\r\n }\r\n set showColumnGrandTotals(value) {\r\n this._setOption('showColumnGrandTotals', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showColumnTotals]\r\n \r\n */\r\n get showColumnTotals() {\r\n return this._getOption('showColumnTotals');\r\n }\r\n set showColumnTotals(value) {\r\n this._setOption('showColumnTotals', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showRowGrandTotals]\r\n \r\n */\r\n get showRowGrandTotals() {\r\n return this._getOption('showRowGrandTotals');\r\n }\r\n set showRowGrandTotals(value) {\r\n this._setOption('showRowGrandTotals', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showRowTotals]\r\n \r\n */\r\n get showRowTotals() {\r\n return this._getOption('showRowTotals');\r\n }\r\n set showRowTotals(value) {\r\n this._setOption('showRowTotals', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.showTotalsPrior]\r\n \r\n */\r\n get showTotalsPrior() {\r\n return this._getOption('showTotalsPrior');\r\n }\r\n set showTotalsPrior(value) {\r\n this._setOption('showTotalsPrior', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.stateStoring]\r\n \r\n */\r\n get stateStoring() {\r\n return this._getOption('stateStoring');\r\n }\r\n set stateStoring(value) {\r\n this._setOption('stateStoring', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.texts]\r\n \r\n */\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridOptions.wordWrapEnabled]\r\n \r\n */\r\n get wordWrapEnabled() {\r\n return this._getOption('wordWrapEnabled');\r\n }\r\n set wordWrapEnabled(value) {\r\n this._setOption('wordWrapEnabled', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPivotGrid(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPivotGridComponent.ɵfac = function DxPivotGridComponent_Factory(t) { return new (t || DxPivotGridComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPivotGridComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPivotGridComponent, selectors: [[\"dx-pivot-grid\"]], inputs: { allowExpandAll: \"allowExpandAll\", allowFiltering: \"allowFiltering\", allowSorting: \"allowSorting\", allowSortingBySummary: \"allowSortingBySummary\", dataFieldArea: \"dataFieldArea\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", encodeHtml: \"encodeHtml\", export: \"export\", fieldChooser: \"fieldChooser\", fieldPanel: \"fieldPanel\", headerFilter: \"headerFilter\", height: \"height\", hideEmptySummaryCells: \"hideEmptySummaryCells\", hint: \"hint\", loadPanel: \"loadPanel\", rowHeaderLayout: \"rowHeaderLayout\", rtlEnabled: \"rtlEnabled\", scrolling: \"scrolling\", showBorders: \"showBorders\", showColumnGrandTotals: \"showColumnGrandTotals\", showColumnTotals: \"showColumnTotals\", showRowGrandTotals: \"showRowGrandTotals\", showRowTotals: \"showRowTotals\", showTotalsPrior: \"showTotalsPrior\", stateStoring: \"stateStoring\", tabIndex: \"tabIndex\", texts: \"texts\", visible: \"visible\", width: \"width\", wordWrapEnabled: \"wordWrapEnabled\" }, outputs: { onCellClick: \"onCellClick\", onCellPrepared: \"onCellPrepared\", onContentReady: \"onContentReady\", onContextMenuPreparing: \"onContextMenuPreparing\", onDisposing: \"onDisposing\", onExporting: \"onExporting\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", allowExpandAllChange: \"allowExpandAllChange\", allowFilteringChange: \"allowFilteringChange\", allowSortingChange: \"allowSortingChange\", allowSortingBySummaryChange: \"allowSortingBySummaryChange\", dataFieldAreaChange: \"dataFieldAreaChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", encodeHtmlChange: \"encodeHtmlChange\", exportChange: \"exportChange\", fieldChooserChange: \"fieldChooserChange\", fieldPanelChange: \"fieldPanelChange\", headerFilterChange: \"headerFilterChange\", heightChange: \"heightChange\", hideEmptySummaryCellsChange: \"hideEmptySummaryCellsChange\", hintChange: \"hintChange\", loadPanelChange: \"loadPanelChange\", rowHeaderLayoutChange: \"rowHeaderLayoutChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollingChange: \"scrollingChange\", showBordersChange: \"showBordersChange\", showColumnGrandTotalsChange: \"showColumnGrandTotalsChange\", showColumnTotalsChange: \"showColumnTotalsChange\", showRowGrandTotalsChange: \"showRowGrandTotalsChange\", showRowTotalsChange: \"showRowTotalsChange\", showTotalsPriorChange: \"showTotalsPriorChange\", stateStoringChange: \"stateStoringChange\", tabIndexChange: \"tabIndexChange\", textsChange: \"textsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wordWrapEnabledChange: \"wordWrapEnabledChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxPivotGridComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPivotGridComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-pivot-grid',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { allowExpandAll: [{\r\n type: Input\r\n }], allowFiltering: [{\r\n type: Input\r\n }], allowSorting: [{\r\n type: Input\r\n }], allowSortingBySummary: [{\r\n type: Input\r\n }], dataFieldArea: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], encodeHtml: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], fieldChooser: [{\r\n type: Input\r\n }], fieldPanel: [{\r\n type: Input\r\n }], headerFilter: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideEmptySummaryCells: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], loadPanel: [{\r\n type: Input\r\n }], rowHeaderLayout: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrolling: [{\r\n type: Input\r\n }], showBorders: [{\r\n type: Input\r\n }], showColumnGrandTotals: [{\r\n type: Input\r\n }], showColumnTotals: [{\r\n type: Input\r\n }], showRowGrandTotals: [{\r\n type: Input\r\n }], showRowTotals: [{\r\n type: Input\r\n }], showTotalsPrior: [{\r\n type: Input\r\n }], stateStoring: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wordWrapEnabled: [{\r\n type: Input\r\n }], onCellClick: [{\r\n type: Output\r\n }], onCellPrepared: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuPreparing: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], allowExpandAllChange: [{\r\n type: Output\r\n }], allowFilteringChange: [{\r\n type: Output\r\n }], allowSortingChange: [{\r\n type: Output\r\n }], allowSortingBySummaryChange: [{\r\n type: Output\r\n }], dataFieldAreaChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], encodeHtmlChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], fieldChooserChange: [{\r\n type: Output\r\n }], fieldPanelChange: [{\r\n type: Output\r\n }], headerFilterChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideEmptySummaryCellsChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], loadPanelChange: [{\r\n type: Output\r\n }], rowHeaderLayoutChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollingChange: [{\r\n type: Output\r\n }], showBordersChange: [{\r\n type: Output\r\n }], showColumnGrandTotalsChange: [{\r\n type: Output\r\n }], showColumnTotalsChange: [{\r\n type: Output\r\n }], showRowGrandTotalsChange: [{\r\n type: Output\r\n }], showRowTotalsChange: [{\r\n type: Output\r\n }], showTotalsPriorChange: [{\r\n type: Output\r\n }], stateStoringChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wordWrapEnabledChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxPivotGridModule {\r\n}\r\n/** @nocollapse */ DxPivotGridModule.ɵfac = function DxPivotGridModule_Factory(t) { return new (t || DxPivotGridModule)(); };\r\n/** @nocollapse */ DxPivotGridModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPivotGridModule });\r\n/** @nocollapse */ DxPivotGridModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPivotGridModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPivotGridComponent\r\n ],\r\n exports: [\r\n DxPivotGridComponent,\r\n DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPivotGridModule, { declarations: [DxPivotGridComponent], imports: [DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPivotGridComponent, DxoDataSourceModule,\r\n DxiFieldModule,\r\n DxoFormatModule,\r\n DxoHeaderFilterModule,\r\n DxoStoreModule,\r\n DxoExportModule,\r\n DxoFieldChooserModule,\r\n DxoTextsModule,\r\n DxoFieldPanelModule,\r\n DxoSearchModule,\r\n DxoLoadPanelModule,\r\n DxoScrollingModule,\r\n DxoStateStoringModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPivotGridComponent, DxPivotGridModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport 'devextreme/ui/pivot_grid/data_source';\nimport DxPivotGridFieldChooser from 'devextreme/ui/pivot_grid_field_chooser';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoHeaderFilterModule, DxoSearchModule, DxoTextsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxPivotGridFieldChooser]\r\n\r\n */\r\nclass DxPivotGridFieldChooserComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowSearchChange' },\r\n { emit: 'applyChangesModeChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'encodeHtmlChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'layoutChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'stateChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.allowSearch]\r\n \r\n */\r\n get allowSearch() {\r\n return this._getOption('allowSearch');\r\n }\r\n set allowSearch(value) {\r\n this._setOption('allowSearch', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.applyChangesMode]\r\n \r\n */\r\n get applyChangesMode() {\r\n return this._getOption('applyChangesMode');\r\n }\r\n set applyChangesMode(value) {\r\n this._setOption('applyChangesMode', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.encodeHtml]\r\n \r\n */\r\n get encodeHtml() {\r\n return this._getOption('encodeHtml');\r\n }\r\n set encodeHtml(value) {\r\n this._setOption('encodeHtml', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.headerFilter]\r\n \r\n */\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.layout]\r\n \r\n */\r\n get layout() {\r\n return this._getOption('layout');\r\n }\r\n set layout(value) {\r\n this._setOption('layout', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.state]\r\n \r\n */\r\n get state() {\r\n return this._getOption('state');\r\n }\r\n set state(value) {\r\n this._setOption('state', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxPivotGridFieldChooserOptions.texts]\r\n \r\n */\r\n get texts() {\r\n return this._getOption('texts');\r\n }\r\n set texts(value) {\r\n this._setOption('texts', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPivotGridFieldChooser(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPivotGridFieldChooserComponent.ɵfac = function DxPivotGridFieldChooserComponent_Factory(t) { return new (t || DxPivotGridFieldChooserComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPivotGridFieldChooserComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPivotGridFieldChooserComponent, selectors: [[\"dx-pivot-grid-field-chooser\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowSearch: \"allowSearch\", applyChangesMode: \"applyChangesMode\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", encodeHtml: \"encodeHtml\", focusStateEnabled: \"focusStateEnabled\", headerFilter: \"headerFilter\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", layout: \"layout\", rtlEnabled: \"rtlEnabled\", searchTimeout: \"searchTimeout\", state: \"state\", tabIndex: \"tabIndex\", texts: \"texts\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onContextMenuPreparing: \"onContextMenuPreparing\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowSearchChange: \"allowSearchChange\", applyChangesModeChange: \"applyChangesModeChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", encodeHtmlChange: \"encodeHtmlChange\", focusStateEnabledChange: \"focusStateEnabledChange\", headerFilterChange: \"headerFilterChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", layoutChange: \"layoutChange\", rtlEnabledChange: \"rtlEnabledChange\", searchTimeoutChange: \"searchTimeoutChange\", stateChange: \"stateChange\", tabIndexChange: \"tabIndexChange\", textsChange: \"textsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxPivotGridFieldChooserComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPivotGridFieldChooserComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-pivot-grid-field-chooser',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowSearch: [{\r\n type: Input\r\n }], applyChangesMode: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], encodeHtml: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], headerFilter: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], layout: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], state: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], texts: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuPreparing: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowSearchChange: [{\r\n type: Output\r\n }], applyChangesModeChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], encodeHtmlChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], headerFilterChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], layoutChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], stateChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxPivotGridFieldChooserModule {\r\n}\r\n/** @nocollapse */ DxPivotGridFieldChooserModule.ɵfac = function DxPivotGridFieldChooserModule_Factory(t) { return new (t || DxPivotGridFieldChooserModule)(); };\r\n/** @nocollapse */ DxPivotGridFieldChooserModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPivotGridFieldChooserModule });\r\n/** @nocollapse */ DxPivotGridFieldChooserModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPivotGridFieldChooserModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPivotGridFieldChooserComponent\r\n ],\r\n exports: [\r\n DxPivotGridFieldChooserComponent,\r\n DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPivotGridFieldChooserModule, { declarations: [DxPivotGridFieldChooserComponent], imports: [DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPivotGridFieldChooserComponent, DxoHeaderFilterModule,\r\n DxoSearchModule,\r\n DxoTextsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPivotGridFieldChooserComponent, DxPivotGridFieldChooserModule };\n","/**\r\n * DevExtreme (esm/__internal/viz/m_polar_chart.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n plugins\r\n} from \"../../viz/core/annotations\";\r\nimport {\r\n convertPolarToXY,\r\n normalizeAngle\r\n} from \"../../viz/core/utils\";\r\nimport {\r\n AdvancedChart\r\n} from \"./chart_components/m_advanced_chart\";\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar DOUBLE_PI_ANGLE = 360;\r\nvar dxPolarChart = AdvancedChart.inherit({\r\n _themeSection: \"polar\",\r\n _createPanes() {\r\n this.callBase();\r\n return [{\r\n name: DEFAULT_PANE_NAME\r\n }]\r\n },\r\n _checkPaneName: () => true,\r\n _getAxisRenderingOptions(typeSelector) {\r\n var isArgumentAxis = \"argumentAxis\" === typeSelector;\r\n var type = isArgumentAxis ? \"circular\" : \"linear\";\r\n var useSpiderWeb = this.option(\"useSpiderWeb\");\r\n if (useSpiderWeb) {\r\n type += \"Spider\"\r\n }\r\n return {\r\n axisType: \"polarAxes\",\r\n drawingType: type\r\n }\r\n },\r\n _executeAppendBeforeSeries(append) {\r\n append()\r\n },\r\n _prepareAxisOptions(typeSelector, axisOptions) {\r\n var isArgumentAxis = \"argumentAxis\" === typeSelector;\r\n var themeManager = this._themeManager;\r\n var axisUserOptions = this.option(\"argumentAxis\");\r\n var argumentAxisOptions = themeManager.getOptions(\"argumentAxis\", axisUserOptions) || {};\r\n var startAngle = isFinite(argumentAxisOptions.startAngle) ? normalizeAngle(argumentAxisOptions.startAngle) : 0;\r\n return {\r\n type: this.option(\"useSpiderWeb\") && isArgumentAxis ? \"discrete\" : axisOptions.type,\r\n isHorizontal: true,\r\n showCustomBoundaryTicks: isArgumentAxis,\r\n startAngle: startAngle,\r\n endAngle: startAngle + 360\r\n }\r\n },\r\n _optionChangesMap: {\r\n useSpiderWeb: \"USE_SPIDER_WEB\"\r\n },\r\n _change_USE_SPIDER_WEB() {\r\n this._disposeAxes();\r\n this._requestChange([\"AXES_AND_PANES\"])\r\n },\r\n _getExtraOptions() {\r\n return {\r\n spiderWidget: this.option(\"useSpiderWeb\")\r\n }\r\n },\r\n _prepareToRender() {\r\n this._appendAxesGroups();\r\n return {}\r\n },\r\n _calcCanvas() {\r\n var canvas = extend({}, this._canvas);\r\n var argumentAxis = this.getArgumentAxis();\r\n var margins = argumentAxis.getMargins();\r\n Object.keys(margins).forEach(margin => {\r\n canvas[margin] = canvas[\"original\".concat(margin[0].toUpperCase()).concat(margin.slice(1))] + margins[margin]\r\n });\r\n return canvas\r\n },\r\n _renderAxes() {\r\n var valueAxis = this._getValueAxis();\r\n var argumentAxis = this.getArgumentAxis();\r\n argumentAxis.draw(this._canvas);\r\n valueAxis.setSpiderTicks(argumentAxis.getSpiderTicks());\r\n var canvas = this._calcCanvas();\r\n argumentAxis.updateSize(canvas);\r\n valueAxis.draw(canvas);\r\n return canvas\r\n },\r\n _getValueAxis() {\r\n return this._valueAxes[0]\r\n },\r\n _shrinkAxes(sizeStorage) {\r\n var valueAxis = this._getValueAxis();\r\n var argumentAxis = this.getArgumentAxis();\r\n if (sizeStorage && (sizeStorage.width || sizeStorage.height)) {\r\n argumentAxis.hideOuterElements();\r\n var canvas = this._calcCanvas();\r\n argumentAxis.updateSize(canvas);\r\n valueAxis.updateSize(canvas)\r\n }\r\n },\r\n checkForMoreSpaceForPanesCanvas() {\r\n return this.layoutManager.needMoreSpaceForPanesCanvas([{\r\n canvas: this.getArgumentAxis().getCanvas()\r\n }], this._isRotated())\r\n },\r\n _getLayoutTargets() {\r\n return [{\r\n canvas: this._canvas\r\n }]\r\n },\r\n _getSeriesForPane() {\r\n return this.series\r\n },\r\n _applyClipRects() {\r\n var canvasClipRectID = this._getCanvasClipRectID();\r\n this._createClipPathForPane();\r\n this.getArgumentAxis().applyClipRects(this._getElementsClipRectID(), canvasClipRectID);\r\n this._getValueAxis().applyClipRects(this._getElementsClipRectID(), canvasClipRectID)\r\n },\r\n _createClipPathForPane() {\r\n var valueAxis = this._getValueAxis();\r\n var center = valueAxis.getCenter();\r\n var radius = valueAxis.getRadius();\r\n var panesClipRects = this._panesClipRects;\r\n center = {\r\n x: Math.round(center.x),\r\n y: Math.round(center.y)\r\n };\r\n this._createClipCircle(panesClipRects.fixed, center.x, center.y, radius);\r\n this._createClipCircle(panesClipRects.base, center.x, center.y, radius);\r\n if (this.series.some(s => s.areErrorBarsVisible())) {\r\n this._createClipCircle(panesClipRects.wide, center.x, center.y, radius)\r\n } else {\r\n panesClipRects.wide[0] = null\r\n }\r\n },\r\n _createClipCircle(clipArray, left, top, radius) {\r\n var clipCircle = clipArray[0];\r\n if (!clipCircle) {\r\n clipCircle = this._renderer.clipCircle(left, top, radius);\r\n clipArray[0] = clipCircle\r\n } else {\r\n clipCircle.attr({\r\n cx: left,\r\n cy: top,\r\n r: radius\r\n })\r\n }\r\n },\r\n _applyExtraSettings(series) {\r\n var wideClipRect = this._panesClipRects.wide[0];\r\n series.setClippingParams(this._panesClipRects.base[0].id, wideClipRect && wideClipRect.id, false, false)\r\n },\r\n getActualAngle(angle) {\r\n return this.getArgumentAxis().getOptions().inverted ? DOUBLE_PI_ANGLE - angle : angle\r\n },\r\n getXYFromPolar(angle, radius, argument, value) {\r\n var layoutInfo = {\r\n angle: void 0,\r\n radius: void 0,\r\n x: void 0,\r\n y: void 0\r\n };\r\n if (!isDefined(angle) && !isDefined(radius) && !isDefined(argument) && !isDefined(value)) {\r\n return layoutInfo\r\n }\r\n var argAxis = this.getArgumentAxis();\r\n var startAngle = argAxis.getAngles()[0];\r\n var argAngle;\r\n var translatedRadius;\r\n if (isDefined(argument)) {\r\n argAngle = argAxis.getTranslator().translate(argument)\r\n } else if (isFinite(angle)) {\r\n argAngle = this.getActualAngle(angle)\r\n } else if (!isDefined(angle)) {\r\n argAngle = 0\r\n }\r\n if (isDefined(value)) {\r\n translatedRadius = this.getValueAxis().getTranslator().translate(value)\r\n } else if (isFinite(radius)) {\r\n translatedRadius = radius\r\n } else if (!isDefined(radius)) {\r\n translatedRadius = argAxis.getRadius()\r\n }\r\n if (isDefined(argAngle) && isDefined(translatedRadius)) {\r\n var coords = convertPolarToXY(argAxis.getCenter(), startAngle, argAngle, translatedRadius);\r\n extend(layoutInfo, coords, {\r\n angle: argAxis.getTranslatedAngle(argAngle),\r\n radius: translatedRadius\r\n })\r\n }\r\n return layoutInfo\r\n },\r\n _applyPointMarkersAutoHiding: noop,\r\n _createScrollBar: noop,\r\n _isRotated: noop,\r\n _getCrosshairOptions: noop,\r\n _isLegendInside: noop\r\n});\r\ndxPolarChart.addPlugin(plugins.core);\r\ndxPolarChart.addPlugin(plugins.polarChart);\r\nregisterComponent(\"dxPolarChart\", dxPolarChart);\r\nexport default dxPolarChart;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxPolarChart from 'devextreme/viz/polar_chart';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiAnnotationComponent, DxiSeriesComponent, DxoAdaptiveLayoutModule, DxoAnimationModule, DxiAnnotationModule, DxoBorderModule, DxoFontModule, DxoImageModule, DxoShadowModule, DxoArgumentAxisModule, DxiConstantLineModule, DxoLabelModule, DxoConstantLineStyleModule, DxoGridModule, DxoFormatModule, DxoMinorGridModule, DxoMinorTickModule, DxoMinorTickIntervalModule, DxiStripModule, DxoStripStyleModule, DxoTickModule, DxoTickIntervalModule, DxoCommonAnnotationSettingsModule, DxoCommonAxisSettingsModule, DxoCommonSeriesSettingsModule, DxoAreaModule, DxoHoverStyleModule, DxoHatchingModule, DxoConnectorModule, DxoPointModule, DxoSelectionStyleModule, DxoValueErrorBarModule, DxoBarModule, DxoColorModule, DxoArgumentFormatModule, DxoLineModule, DxoScatterModule, DxoStackedbarModule, DxoDataPrepareSettingsModule, DxoExportModule, DxoLegendModule, DxoMarginModule, DxoTitleModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxiSeriesModule, DxoSeriesTemplateModule, DxoSizeModule, DxoTooltipModule, DxoValueAxisModule, DxoMinVisualRangeLengthModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxPolarChart]\r\n\r\n */\r\nclass DxPolarChartComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'argumentAxisClick', emit: 'onArgumentAxisClick' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'done', emit: 'onDone' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'legendClick', emit: 'onLegendClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pointClick', emit: 'onPointClick' },\r\n { subscribe: 'pointHoverChanged', emit: 'onPointHoverChanged' },\r\n { subscribe: 'pointSelectionChanged', emit: 'onPointSelectionChanged' },\r\n { subscribe: 'seriesClick', emit: 'onSeriesClick' },\r\n { subscribe: 'seriesHoverChanged', emit: 'onSeriesHoverChanged' },\r\n { subscribe: 'seriesSelectionChanged', emit: 'onSeriesSelectionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { subscribe: 'zoomEnd', emit: 'onZoomEnd' },\r\n { subscribe: 'zoomStart', emit: 'onZoomStart' },\r\n { emit: 'adaptiveLayoutChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'annotationsChange' },\r\n { emit: 'argumentAxisChange' },\r\n { emit: 'barGroupPaddingChange' },\r\n { emit: 'barGroupWidthChange' },\r\n { emit: 'commonAnnotationSettingsChange' },\r\n { emit: 'commonAxisSettingsChange' },\r\n { emit: 'commonSeriesSettingsChange' },\r\n { emit: 'containerBackgroundColorChange' },\r\n { emit: 'customizeAnnotationChange' },\r\n { emit: 'customizeLabelChange' },\r\n { emit: 'customizePointChange' },\r\n { emit: 'dataPrepareSettingsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'legendChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'negativesAsZeroesChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'pointSelectionModeChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'resolveLabelOverlappingChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'seriesChange' },\r\n { emit: 'seriesSelectionModeChange' },\r\n { emit: 'seriesTemplateChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'useSpiderWebChange' },\r\n { emit: 'valueAxisChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.adaptiveLayout]\r\n \r\n */\r\n get adaptiveLayout() {\r\n return this._getOption('adaptiveLayout');\r\n }\r\n set adaptiveLayout(value) {\r\n this._setOption('adaptiveLayout', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.annotations]\r\n \r\n */\r\n get annotations() {\r\n return this._getOption('annotations');\r\n }\r\n set annotations(value) {\r\n this._setOption('annotations', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.argumentAxis]\r\n \r\n */\r\n get argumentAxis() {\r\n return this._getOption('argumentAxis');\r\n }\r\n set argumentAxis(value) {\r\n this._setOption('argumentAxis', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.barGroupPadding]\r\n \r\n */\r\n get barGroupPadding() {\r\n return this._getOption('barGroupPadding');\r\n }\r\n set barGroupPadding(value) {\r\n this._setOption('barGroupPadding', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.barGroupWidth]\r\n \r\n */\r\n get barGroupWidth() {\r\n return this._getOption('barGroupWidth');\r\n }\r\n set barGroupWidth(value) {\r\n this._setOption('barGroupWidth', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.commonAnnotationSettings]\r\n \r\n */\r\n get commonAnnotationSettings() {\r\n return this._getOption('commonAnnotationSettings');\r\n }\r\n set commonAnnotationSettings(value) {\r\n this._setOption('commonAnnotationSettings', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.commonAxisSettings]\r\n \r\n */\r\n get commonAxisSettings() {\r\n return this._getOption('commonAxisSettings');\r\n }\r\n set commonAxisSettings(value) {\r\n this._setOption('commonAxisSettings', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.commonSeriesSettings]\r\n \r\n */\r\n get commonSeriesSettings() {\r\n return this._getOption('commonSeriesSettings');\r\n }\r\n set commonSeriesSettings(value) {\r\n this._setOption('commonSeriesSettings', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.containerBackgroundColor]\r\n \r\n */\r\n get containerBackgroundColor() {\r\n return this._getOption('containerBackgroundColor');\r\n }\r\n set containerBackgroundColor(value) {\r\n this._setOption('containerBackgroundColor', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.customizeAnnotation]\r\n \r\n */\r\n get customizeAnnotation() {\r\n return this._getOption('customizeAnnotation');\r\n }\r\n set customizeAnnotation(value) {\r\n this._setOption('customizeAnnotation', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizeLabel]\r\n \r\n */\r\n get customizeLabel() {\r\n return this._getOption('customizeLabel');\r\n }\r\n set customizeLabel(value) {\r\n this._setOption('customizeLabel', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.customizePoint]\r\n \r\n */\r\n get customizePoint() {\r\n return this._getOption('customizePoint');\r\n }\r\n set customizePoint(value) {\r\n this._setOption('customizePoint', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.dataPrepareSettings]\r\n \r\n */\r\n get dataPrepareSettings() {\r\n return this._getOption('dataPrepareSettings');\r\n }\r\n set dataPrepareSettings(value) {\r\n this._setOption('dataPrepareSettings', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.legend]\r\n \r\n */\r\n get legend() {\r\n return this._getOption('legend');\r\n }\r\n set legend(value) {\r\n this._setOption('legend', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.negativesAsZeroes]\r\n \r\n */\r\n get negativesAsZeroes() {\r\n return this._getOption('negativesAsZeroes');\r\n }\r\n set negativesAsZeroes(value) {\r\n this._setOption('negativesAsZeroes', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseChartOptions.pointSelectionMode]\r\n \r\n */\r\n get pointSelectionMode() {\r\n return this._getOption('pointSelectionMode');\r\n }\r\n set pointSelectionMode(value) {\r\n this._setOption('pointSelectionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.resolveLabelOverlapping]\r\n \r\n */\r\n get resolveLabelOverlapping() {\r\n return this._getOption('resolveLabelOverlapping');\r\n }\r\n set resolveLabelOverlapping(value) {\r\n this._setOption('resolveLabelOverlapping', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.series]\r\n \r\n */\r\n get series() {\r\n return this._getOption('series');\r\n }\r\n set series(value) {\r\n this._setOption('series', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.seriesSelectionMode]\r\n \r\n */\r\n get seriesSelectionMode() {\r\n return this._getOption('seriesSelectionMode');\r\n }\r\n set seriesSelectionMode(value) {\r\n this._setOption('seriesSelectionMode', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.seriesTemplate]\r\n \r\n */\r\n get seriesTemplate() {\r\n return this._getOption('seriesTemplate');\r\n }\r\n set seriesTemplate(value) {\r\n this._setOption('seriesTemplate', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.useSpiderWeb]\r\n \r\n */\r\n get useSpiderWeb() {\r\n return this._getOption('useSpiderWeb');\r\n }\r\n set useSpiderWeb(value) {\r\n this._setOption('useSpiderWeb', value);\r\n }\r\n /**\r\n * [descr:dxPolarChartOptions.valueAxis]\r\n \r\n */\r\n get valueAxis() {\r\n return this._getOption('valueAxis');\r\n }\r\n set valueAxis(value) {\r\n this._setOption('valueAxis', value);\r\n }\r\n get annotationsChildren() {\r\n return this._getOption('annotations');\r\n }\r\n set annotationsChildren(value) {\r\n this.setChildren('annotations', value);\r\n }\r\n get seriesChildren() {\r\n return this._getOption('series');\r\n }\r\n set seriesChildren(value) {\r\n this.setChildren('series', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPolarChart(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('annotations', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('palette', changes);\r\n this.setupChanges('series', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('annotations');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('palette');\r\n this._idh.doCheck('series');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPolarChartComponent.ɵfac = function DxPolarChartComponent_Factory(t) { return new (t || DxPolarChartComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPolarChartComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPolarChartComponent, selectors: [[\"dx-polar-chart\"]], contentQueries: function DxPolarChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiAnnotationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiSeriesComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.annotationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesChildren = _t);\r\n } }, inputs: { adaptiveLayout: \"adaptiveLayout\", animation: \"animation\", annotations: \"annotations\", argumentAxis: \"argumentAxis\", barGroupPadding: \"barGroupPadding\", barGroupWidth: \"barGroupWidth\", commonAnnotationSettings: \"commonAnnotationSettings\", commonAxisSettings: \"commonAxisSettings\", commonSeriesSettings: \"commonSeriesSettings\", containerBackgroundColor: \"containerBackgroundColor\", customizeAnnotation: \"customizeAnnotation\", customizeLabel: \"customizeLabel\", customizePoint: \"customizePoint\", dataPrepareSettings: \"dataPrepareSettings\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", legend: \"legend\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", negativesAsZeroes: \"negativesAsZeroes\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", pathModified: \"pathModified\", pointSelectionMode: \"pointSelectionMode\", redrawOnResize: \"redrawOnResize\", resolveLabelOverlapping: \"resolveLabelOverlapping\", rtlEnabled: \"rtlEnabled\", series: \"series\", seriesSelectionMode: \"seriesSelectionMode\", seriesTemplate: \"seriesTemplate\", size: \"size\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", useSpiderWeb: \"useSpiderWeb\", valueAxis: \"valueAxis\" }, outputs: { onArgumentAxisClick: \"onArgumentAxisClick\", onDisposing: \"onDisposing\", onDone: \"onDone\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onLegendClick: \"onLegendClick\", onOptionChanged: \"onOptionChanged\", onPointClick: \"onPointClick\", onPointHoverChanged: \"onPointHoverChanged\", onPointSelectionChanged: \"onPointSelectionChanged\", onSeriesClick: \"onSeriesClick\", onSeriesHoverChanged: \"onSeriesHoverChanged\", onSeriesSelectionChanged: \"onSeriesSelectionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", onZoomEnd: \"onZoomEnd\", onZoomStart: \"onZoomStart\", adaptiveLayoutChange: \"adaptiveLayoutChange\", animationChange: \"animationChange\", annotationsChange: \"annotationsChange\", argumentAxisChange: \"argumentAxisChange\", barGroupPaddingChange: \"barGroupPaddingChange\", barGroupWidthChange: \"barGroupWidthChange\", commonAnnotationSettingsChange: \"commonAnnotationSettingsChange\", commonAxisSettingsChange: \"commonAxisSettingsChange\", commonSeriesSettingsChange: \"commonSeriesSettingsChange\", containerBackgroundColorChange: \"containerBackgroundColorChange\", customizeAnnotationChange: \"customizeAnnotationChange\", customizeLabelChange: \"customizeLabelChange\", customizePointChange: \"customizePointChange\", dataPrepareSettingsChange: \"dataPrepareSettingsChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", legendChange: \"legendChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", negativesAsZeroesChange: \"negativesAsZeroesChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", pathModifiedChange: \"pathModifiedChange\", pointSelectionModeChange: \"pointSelectionModeChange\", redrawOnResizeChange: \"redrawOnResizeChange\", resolveLabelOverlappingChange: \"resolveLabelOverlappingChange\", rtlEnabledChange: \"rtlEnabledChange\", seriesChange: \"seriesChange\", seriesSelectionModeChange: \"seriesSelectionModeChange\", seriesTemplateChange: \"seriesTemplateChange\", sizeChange: \"sizeChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", useSpiderWebChange: \"useSpiderWebChange\", valueAxisChange: \"valueAxisChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxPolarChartComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPolarChartComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-polar-chart',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adaptiveLayout: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], annotations: [{\r\n type: Input\r\n }], argumentAxis: [{\r\n type: Input\r\n }], barGroupPadding: [{\r\n type: Input\r\n }], barGroupWidth: [{\r\n type: Input\r\n }], commonAnnotationSettings: [{\r\n type: Input\r\n }], commonAxisSettings: [{\r\n type: Input\r\n }], commonSeriesSettings: [{\r\n type: Input\r\n }], containerBackgroundColor: [{\r\n type: Input\r\n }], customizeAnnotation: [{\r\n type: Input\r\n }], customizeLabel: [{\r\n type: Input\r\n }], customizePoint: [{\r\n type: Input\r\n }], dataPrepareSettings: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], legend: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], negativesAsZeroes: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], pointSelectionMode: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], resolveLabelOverlapping: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], series: [{\r\n type: Input\r\n }], seriesSelectionMode: [{\r\n type: Input\r\n }], seriesTemplate: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], useSpiderWeb: [{\r\n type: Input\r\n }], valueAxis: [{\r\n type: Input\r\n }], onArgumentAxisClick: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDone: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onLegendClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPointClick: [{\r\n type: Output\r\n }], onPointHoverChanged: [{\r\n type: Output\r\n }], onPointSelectionChanged: [{\r\n type: Output\r\n }], onSeriesClick: [{\r\n type: Output\r\n }], onSeriesHoverChanged: [{\r\n type: Output\r\n }], onSeriesSelectionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], onZoomEnd: [{\r\n type: Output\r\n }], onZoomStart: [{\r\n type: Output\r\n }], adaptiveLayoutChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], annotationsChange: [{\r\n type: Output\r\n }], argumentAxisChange: [{\r\n type: Output\r\n }], barGroupPaddingChange: [{\r\n type: Output\r\n }], barGroupWidthChange: [{\r\n type: Output\r\n }], commonAnnotationSettingsChange: [{\r\n type: Output\r\n }], commonAxisSettingsChange: [{\r\n type: Output\r\n }], commonSeriesSettingsChange: [{\r\n type: Output\r\n }], containerBackgroundColorChange: [{\r\n type: Output\r\n }], customizeAnnotationChange: [{\r\n type: Output\r\n }], customizeLabelChange: [{\r\n type: Output\r\n }], customizePointChange: [{\r\n type: Output\r\n }], dataPrepareSettingsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], legendChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], negativesAsZeroesChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], pointSelectionModeChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], resolveLabelOverlappingChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], seriesChange: [{\r\n type: Output\r\n }], seriesSelectionModeChange: [{\r\n type: Output\r\n }], seriesTemplateChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], useSpiderWebChange: [{\r\n type: Output\r\n }], valueAxisChange: [{\r\n type: Output\r\n }], annotationsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiAnnotationComponent]\r\n }], seriesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiSeriesComponent]\r\n }] }); })();\r\nclass DxPolarChartModule {\r\n}\r\n/** @nocollapse */ DxPolarChartModule.ɵfac = function DxPolarChartModule_Factory(t) { return new (t || DxPolarChartModule)(); };\r\n/** @nocollapse */ DxPolarChartModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPolarChartModule });\r\n/** @nocollapse */ DxPolarChartModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPolarChartModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPolarChartComponent\r\n ],\r\n exports: [\r\n DxPolarChartComponent,\r\n DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPolarChartModule, { declarations: [DxPolarChartComponent], imports: [DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPolarChartComponent, DxoAdaptiveLayoutModule,\r\n DxoAnimationModule,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoArgumentAxisModule,\r\n DxiConstantLineModule,\r\n DxoLabelModule,\r\n DxoConstantLineStyleModule,\r\n DxoGridModule,\r\n DxoFormatModule,\r\n DxoMinorGridModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxiStripModule,\r\n DxoStripStyleModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoCommonAxisSettingsModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAreaModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoSelectionStyleModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoColorModule,\r\n DxoArgumentFormatModule,\r\n DxoLineModule,\r\n DxoScatterModule,\r\n DxoStackedbarModule,\r\n DxoDataPrepareSettingsModule,\r\n DxoExportModule,\r\n DxoLegendModule,\r\n DxoMarginModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoValueAxisModule,\r\n DxoMinVisualRangeLengthModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPolarChartComponent, DxPolarChartModule };\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.full.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popover from \"../popover/ui.popover\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default class PopoverFull extends Popover {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n preventScrollEvents: false\r\n })\r\n }\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopoverFull.defaultOptions = function(rule) {\r\n Popover.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopover\", PopoverFull);\r\n","/**\r\n * DevExtreme (esm/ui/popover.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popover from \"./popover/ui.popover.full\";\r\nexport default Popover;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxPopover from 'devextreme/ui/popover';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiToolbarItemComponent, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxoHideEventModule, DxoShowEventModule, DxiToolbarItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxPopover]\r\n\r\n */\r\nclass DxPopoverComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { subscribe: 'titleRendered', emit: 'onTitleRendered' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'contentTemplateChange' },\r\n { emit: 'copyRootClassesToWrapperChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'enableBodyScrollChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideEventChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hideOnParentScrollChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'shadingColorChange' },\r\n { emit: 'showCloseButtonChange' },\r\n { emit: 'showEventChange' },\r\n { emit: 'showTitleChange' },\r\n { emit: 'targetChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'titleTemplateChange' },\r\n { emit: 'toolbarItemsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapperAttrChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxPopoverOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.contentTemplate]\r\n \r\n */\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n */\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.elementAttr]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.enableBodyScroll]\r\n \r\n */\r\n get enableBodyScroll() {\r\n return this._getOption('enableBodyScroll');\r\n }\r\n set enableBodyScroll(value) {\r\n this._setOption('enableBodyScroll', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideEvent]\r\n \r\n */\r\n get hideEvent() {\r\n return this._getOption('hideEvent');\r\n }\r\n set hideEvent(value) {\r\n this._setOption('hideEvent', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideOnParentScroll]\r\n \r\n */\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shadingColor]\r\n \r\n */\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.showCloseButton]\r\n \r\n */\r\n get showCloseButton() {\r\n return this._getOption('showCloseButton');\r\n }\r\n set showCloseButton(value) {\r\n this._setOption('showCloseButton', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.showEvent]\r\n \r\n */\r\n get showEvent() {\r\n return this._getOption('showEvent');\r\n }\r\n set showEvent(value) {\r\n this._setOption('showEvent', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.showTitle]\r\n \r\n */\r\n get showTitle() {\r\n return this._getOption('showTitle');\r\n }\r\n set showTitle(value) {\r\n this._setOption('showTitle', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.target]\r\n \r\n */\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.titleTemplate]\r\n \r\n */\r\n get titleTemplate() {\r\n return this._getOption('titleTemplate');\r\n }\r\n set titleTemplate(value) {\r\n this._setOption('titleTemplate', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.toolbarItems]\r\n \r\n */\r\n get toolbarItems() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItems(value) {\r\n this._setOption('toolbarItems', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.wrapperAttr]\r\n \r\n */\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n get toolbarItemsChildren() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItemsChildren(value) {\r\n this.setChildren('toolbarItems', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPopover(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('toolbarItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('toolbarItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPopoverComponent.ɵfac = function DxPopoverComponent_Factory(t) { return new (t || DxPopoverComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPopoverComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPopoverComponent, selectors: [[\"dx-popover\"]], contentQueries: function DxPopoverComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t);\r\n } }, inputs: { animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", enableBodyScroll: \"enableBodyScroll\", height: \"height\", hideEvent: \"hideEvent\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", position: \"position\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showCloseButton: \"showCloseButton\", showEvent: \"showEvent\", showTitle: \"showTitle\", target: \"target\", title: \"title\", titleTemplate: \"titleTemplate\", toolbarItems: \"toolbarItems\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onShowing: \"onShowing\", onShown: \"onShown\", onTitleRendered: \"onTitleRendered\", animationChange: \"animationChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", containerChange: \"containerChange\", contentTemplateChange: \"contentTemplateChange\", copyRootClassesToWrapperChange: \"copyRootClassesToWrapperChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", enableBodyScrollChange: \"enableBodyScrollChange\", heightChange: \"heightChange\", hideEventChange: \"hideEventChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hideOnParentScrollChange: \"hideOnParentScrollChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", positionChange: \"positionChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", shadingColorChange: \"shadingColorChange\", showCloseButtonChange: \"showCloseButtonChange\", showEventChange: \"showEventChange\", showTitleChange: \"showTitleChange\", targetChange: \"targetChange\", titleChange: \"titleChange\", titleTemplateChange: \"titleTemplateChange\", toolbarItemsChange: \"toolbarItemsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapperAttrChange: \"wrapperAttrChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxPopoverComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPopoverComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-popover',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], copyRootClassesToWrapper: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], enableBodyScroll: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideEvent: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hideOnParentScroll: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], showCloseButton: [{\r\n type: Input\r\n }], showEvent: [{\r\n type: Input\r\n }], showTitle: [{\r\n type: Input\r\n }], target: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], titleTemplate: [{\r\n type: Input\r\n }], toolbarItems: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapperAttr: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], onTitleRendered: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], contentTemplateChange: [{\r\n type: Output\r\n }], copyRootClassesToWrapperChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], enableBodyScrollChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideEventChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hideOnParentScrollChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], shadingColorChange: [{\r\n type: Output\r\n }], showCloseButtonChange: [{\r\n type: Output\r\n }], showEventChange: [{\r\n type: Output\r\n }], showTitleChange: [{\r\n type: Output\r\n }], targetChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], titleTemplateChange: [{\r\n type: Output\r\n }], toolbarItemsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapperAttrChange: [{\r\n type: Output\r\n }], toolbarItemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiToolbarItemComponent]\r\n }] }); })();\r\nclass DxPopoverModule {\r\n}\r\n/** @nocollapse */ DxPopoverModule.ɵfac = function DxPopoverModule_Factory(t) { return new (t || DxPopoverModule)(); };\r\n/** @nocollapse */ DxPopoverModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPopoverModule });\r\n/** @nocollapse */ DxPopoverModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPopoverModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPopoverComponent\r\n ],\r\n exports: [\r\n DxPopoverComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPopoverModule, { declarations: [DxPopoverComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPopoverComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPopoverComponent, DxPopoverModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxPopup from 'devextreme/ui/popup';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiToolbarItemComponent, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxPopup]\r\n\r\n */\r\nclass DxPopupComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'resize', emit: 'onResize' },\r\n { subscribe: 'resizeEnd', emit: 'onResizeEnd' },\r\n { subscribe: 'resizeStart', emit: 'onResizeStart' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { subscribe: 'titleRendered', emit: 'onTitleRendered' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'contentTemplateChange' },\r\n { emit: 'copyRootClassesToWrapperChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'dragAndResizeAreaChange' },\r\n { emit: 'dragEnabledChange' },\r\n { emit: 'dragOutsideBoundaryChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'enableBodyScrollChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'fullScreenChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hideOnParentScrollChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'resizeEnabledChange' },\r\n { emit: 'restorePositionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'shadingColorChange' },\r\n { emit: 'showCloseButtonChange' },\r\n { emit: 'showTitleChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'titleTemplateChange' },\r\n { emit: 'toolbarItemsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapperAttrChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.contentTemplate]\r\n \r\n */\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n */\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.dragAndResizeArea]\r\n \r\n */\r\n get dragAndResizeArea() {\r\n return this._getOption('dragAndResizeArea');\r\n }\r\n set dragAndResizeArea(value) {\r\n this._setOption('dragAndResizeArea', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.dragEnabled]\r\n \r\n */\r\n get dragEnabled() {\r\n return this._getOption('dragEnabled');\r\n }\r\n set dragEnabled(value) {\r\n this._setOption('dragEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.dragOutsideBoundary]\r\n \r\n */\r\n get dragOutsideBoundary() {\r\n return this._getOption('dragOutsideBoundary');\r\n }\r\n set dragOutsideBoundary(value) {\r\n this._setOption('dragOutsideBoundary', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.elementAttr]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.enableBodyScroll]\r\n \r\n */\r\n get enableBodyScroll() {\r\n return this._getOption('enableBodyScroll');\r\n }\r\n set enableBodyScroll(value) {\r\n this._setOption('enableBodyScroll', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.fullScreen]\r\n \r\n */\r\n get fullScreen() {\r\n return this._getOption('fullScreen');\r\n }\r\n set fullScreen(value) {\r\n this._setOption('fullScreen', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.hideOnParentScroll]\r\n \r\n */\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.resizeEnabled]\r\n \r\n */\r\n get resizeEnabled() {\r\n return this._getOption('resizeEnabled');\r\n }\r\n set resizeEnabled(value) {\r\n this._setOption('resizeEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.restorePosition]\r\n \r\n */\r\n get restorePosition() {\r\n return this._getOption('restorePosition');\r\n }\r\n set restorePosition(value) {\r\n this._setOption('restorePosition', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shadingColor]\r\n \r\n */\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.showCloseButton]\r\n \r\n */\r\n get showCloseButton() {\r\n return this._getOption('showCloseButton');\r\n }\r\n set showCloseButton(value) {\r\n this._setOption('showCloseButton', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.showTitle]\r\n \r\n */\r\n get showTitle() {\r\n return this._getOption('showTitle');\r\n }\r\n set showTitle(value) {\r\n this._setOption('showTitle', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.titleTemplate]\r\n \r\n */\r\n get titleTemplate() {\r\n return this._getOption('titleTemplate');\r\n }\r\n set titleTemplate(value) {\r\n this._setOption('titleTemplate', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.toolbarItems]\r\n \r\n */\r\n get toolbarItems() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItems(value) {\r\n this._setOption('toolbarItems', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.wrapperAttr]\r\n \r\n */\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n get toolbarItemsChildren() {\r\n return this._getOption('toolbarItems');\r\n }\r\n set toolbarItemsChildren(value) {\r\n this.setChildren('toolbarItems', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxPopup(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('toolbarItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('toolbarItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxPopupComponent.ɵfac = function DxPopupComponent_Factory(t) { return new (t || DxPopupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxPopupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxPopupComponent, selectors: [[\"dx-popup\"]], contentQueries: function DxPopupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", dragAndResizeArea: \"dragAndResizeArea\", dragEnabled: \"dragEnabled\", dragOutsideBoundary: \"dragOutsideBoundary\", elementAttr: \"elementAttr\", enableBodyScroll: \"enableBodyScroll\", focusStateEnabled: \"focusStateEnabled\", fullScreen: \"fullScreen\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", position: \"position\", resizeEnabled: \"resizeEnabled\", restorePosition: \"restorePosition\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showCloseButton: \"showCloseButton\", showTitle: \"showTitle\", tabIndex: \"tabIndex\", title: \"title\", titleTemplate: \"titleTemplate\", toolbarItems: \"toolbarItems\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResize: \"onResize\", onResizeEnd: \"onResizeEnd\", onResizeStart: \"onResizeStart\", onShowing: \"onShowing\", onShown: \"onShown\", onTitleRendered: \"onTitleRendered\", accessKeyChange: \"accessKeyChange\", animationChange: \"animationChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", containerChange: \"containerChange\", contentTemplateChange: \"contentTemplateChange\", copyRootClassesToWrapperChange: \"copyRootClassesToWrapperChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", dragAndResizeAreaChange: \"dragAndResizeAreaChange\", dragEnabledChange: \"dragEnabledChange\", dragOutsideBoundaryChange: \"dragOutsideBoundaryChange\", elementAttrChange: \"elementAttrChange\", enableBodyScrollChange: \"enableBodyScrollChange\", focusStateEnabledChange: \"focusStateEnabledChange\", fullScreenChange: \"fullScreenChange\", heightChange: \"heightChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hideOnParentScrollChange: \"hideOnParentScrollChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", positionChange: \"positionChange\", resizeEnabledChange: \"resizeEnabledChange\", restorePositionChange: \"restorePositionChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", shadingColorChange: \"shadingColorChange\", showCloseButtonChange: \"showCloseButtonChange\", showTitleChange: \"showTitleChange\", tabIndexChange: \"tabIndexChange\", titleChange: \"titleChange\", titleTemplateChange: \"titleTemplateChange\", toolbarItemsChange: \"toolbarItemsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapperAttrChange: \"wrapperAttrChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxPopupComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPopupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-popup',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], copyRootClassesToWrapper: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], dragAndResizeArea: [{\r\n type: Input\r\n }], dragEnabled: [{\r\n type: Input\r\n }], dragOutsideBoundary: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], enableBodyScroll: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], fullScreen: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hideOnParentScroll: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], resizeEnabled: [{\r\n type: Input\r\n }], restorePosition: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], showCloseButton: [{\r\n type: Input\r\n }], showTitle: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], titleTemplate: [{\r\n type: Input\r\n }], toolbarItems: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapperAttr: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onResize: [{\r\n type: Output\r\n }], onResizeEnd: [{\r\n type: Output\r\n }], onResizeStart: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], onTitleRendered: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], contentTemplateChange: [{\r\n type: Output\r\n }], copyRootClassesToWrapperChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], dragAndResizeAreaChange: [{\r\n type: Output\r\n }], dragEnabledChange: [{\r\n type: Output\r\n }], dragOutsideBoundaryChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], enableBodyScrollChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], fullScreenChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hideOnParentScrollChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], resizeEnabledChange: [{\r\n type: Output\r\n }], restorePositionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], shadingColorChange: [{\r\n type: Output\r\n }], showCloseButtonChange: [{\r\n type: Output\r\n }], showTitleChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], titleTemplateChange: [{\r\n type: Output\r\n }], toolbarItemsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapperAttrChange: [{\r\n type: Output\r\n }], toolbarItemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiToolbarItemComponent]\r\n }] }); })();\r\nclass DxPopupModule {\r\n}\r\n/** @nocollapse */ DxPopupModule.ɵfac = function DxPopupModule_Factory(t) { return new (t || DxPopupModule)(); };\r\n/** @nocollapse */ DxPopupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxPopupModule });\r\n/** @nocollapse */ DxPopupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxPopupModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxPopupComponent\r\n ],\r\n exports: [\r\n DxPopupComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxPopupModule, { declarations: [DxPopupComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxPopupComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxPopupComponent, DxPopupModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxProgressBar from 'devextreme/ui/progress_bar';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxProgressBarComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxProgressBar]\r\n\r\n */\r\nclass DxProgressBarComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'complete', emit: 'onComplete' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'minChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showStatusChange' },\r\n { emit: 'statusFormatChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxProgressBarOptions.showStatus]\r\n \r\n */\r\n get showStatus() {\r\n return this._getOption('showStatus');\r\n }\r\n set showStatus(value) {\r\n this._setOption('showStatus', value);\r\n }\r\n /**\r\n * [descr:dxProgressBarOptions.statusFormat]\r\n \r\n */\r\n get statusFormat() {\r\n return this._getOption('statusFormat');\r\n }\r\n set statusFormat(value) {\r\n this._setOption('statusFormat', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxProgressBarOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxProgressBar(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxProgressBarComponent.ɵfac = function DxProgressBarComponent_Factory(t) { return new (t || DxProgressBarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxProgressBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxProgressBarComponent, selectors: [[\"dx-progress-bar\"]], hostBindings: function DxProgressBarComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxProgressBarComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxProgressBarComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", max: \"max\", min: \"min\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showStatus: \"showStatus\", statusFormat: \"statusFormat\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onComplete: \"onComplete\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", maxChange: \"maxChange\", minChange: \"minChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showStatusChange: \"showStatusChange\", statusFormatChange: \"statusFormatChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxProgressBarComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxProgressBarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-progress-bar',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showStatus: [{\r\n type: Input\r\n }], statusFormat: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onComplete: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showStatusChange: [{\r\n type: Output\r\n }], statusFormatChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxProgressBarModule {\r\n}\r\n/** @nocollapse */ DxProgressBarModule.ɵfac = function DxProgressBarModule_Factory(t) { return new (t || DxProgressBarModule)(); };\r\n/** @nocollapse */ DxProgressBarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxProgressBarModule });\r\n/** @nocollapse */ DxProgressBarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxProgressBarModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxProgressBarComponent\r\n ],\r\n exports: [\r\n DxProgressBarComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxProgressBarModule, { declarations: [DxProgressBarComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxProgressBarComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxProgressBarComponent, DxProgressBarModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxRadioGroup from 'devextreme/ui/radio_group';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxRadioGroupComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxRadioGroup]\r\n\r\n */\r\nclass DxRadioGroupComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'layoutChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.layout]\r\n \r\n */\r\n get layout() {\r\n return this._getOption('layout');\r\n }\r\n set layout(value) {\r\n this._setOption('layout', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxRadioGroupOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxRadioGroup(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxRadioGroupComponent.ɵfac = function DxRadioGroupComponent_Factory(t) { return new (t || DxRadioGroupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxRadioGroupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxRadioGroupComponent, selectors: [[\"dx-radio-group\"]], contentQueries: function DxRadioGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxRadioGroupComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxRadioGroupComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxRadioGroupComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", dataSource: \"dataSource\", disabled: \"disabled\", displayExpr: \"displayExpr\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", itemTemplate: \"itemTemplate\", layout: \"layout\", name: \"name\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", layoutChange: \"layoutChange\", nameChange: \"nameChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxRadioGroupComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRadioGroupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-radio-group',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], layout: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], layoutChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxRadioGroupModule {\r\n}\r\n/** @nocollapse */ DxRadioGroupModule.ɵfac = function DxRadioGroupModule_Factory(t) { return new (t || DxRadioGroupModule)(); };\r\n/** @nocollapse */ DxRadioGroupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxRadioGroupModule });\r\n/** @nocollapse */ DxRadioGroupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRadioGroupModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxRadioGroupComponent\r\n ],\r\n exports: [\r\n DxRadioGroupComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxRadioGroupModule, { declarations: [DxRadioGroupComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxRadioGroupComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxRadioGroupComponent, DxRadioGroupModule };\n","/**\r\n * DevExtreme (esm/viz/range_selector/common.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n smartFormatter as _format\r\n} from \"../axes/smart_formatter\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nexport var HEIGHT_COMPACT_MODE = 24;\r\nvar POINTER_SIZE = 4;\r\nvar EMPTY_SLIDER_MARKER_TEXT = \". . .\";\r\nexport var utils = {\r\n trackerSettings: {\r\n fill: \"grey\",\r\n stroke: \"grey\",\r\n opacity: 1e-4\r\n },\r\n animationSettings: {\r\n duration: 250\r\n }\r\n};\r\nexport var consts = {\r\n emptySliderMarkerText: EMPTY_SLIDER_MARKER_TEXT,\r\n pointerSize: POINTER_SIZE\r\n};\r\nexport var formatValue = function(value, formatOptions, tickIntervalsInfo, valueType, type, logarithmBase) {\r\n var formatObject = {\r\n value: value,\r\n valueText: _format(value, {\r\n labelOptions: formatOptions,\r\n ticks: tickIntervalsInfo ? tickIntervalsInfo.ticks : [],\r\n tickInterval: tickIntervalsInfo ? tickIntervalsInfo.tickInterval : void 0,\r\n dataType: valueType,\r\n type: type,\r\n logarithmBase: logarithmBase\r\n })\r\n };\r\n return String(isFunction(formatOptions.customizeText) ? formatOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText)\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/slider_marker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n consts\r\n} from \"./common\";\r\nvar POINTER_SIZE = consts.pointerSize;\r\nvar SLIDER_MARKER_UPDATE_DELAY = 75;\r\n\r\nfunction SliderMarker(renderer, root, isLeftPointer) {\r\n this._isLeftPointer = isLeftPointer;\r\n this._isOverlapped = false;\r\n this._group = renderer.g().attr({\r\n class: \"slider-marker\"\r\n }).append(root);\r\n this._area = renderer.path(null, \"area\").append(this._group);\r\n this._label = renderer.text().attr({\r\n align: \"left\"\r\n }).append(this._group);\r\n this._tracker = renderer.rect().attr({\r\n class: \"slider-marker-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"pointer\"\r\n }).append(this._group);\r\n this._border = renderer.rect(0, 0, 1, 0)\r\n}\r\nSliderMarker.prototype = {\r\n constructor: SliderMarker,\r\n _getRectSize: function(textSize) {\r\n return {\r\n width: Math.round(2 * this._paddingLeftRight + textSize.width),\r\n height: Math.round(2 * this._paddingTopBottom + textSize.height)\r\n }\r\n },\r\n _getTextSize: function() {\r\n var textSize = this._label.getBBox();\r\n if (!this._textHeight && isFinite(textSize.height)) {\r\n this._textHeight = textSize.height\r\n }\r\n return {\r\n width: textSize.width,\r\n height: this._textHeight,\r\n y: textSize.y\r\n }\r\n },\r\n _getAreaPointsInfo: function(textSize) {\r\n var rectSize = this._getRectSize(textSize);\r\n var rectWidth = rectSize.width;\r\n var rectHeight = rectSize.height;\r\n var rectLeftBorder = -rectWidth;\r\n var rectRightBorder = 0;\r\n var pointerRightPoint = POINTER_SIZE;\r\n var pointerCenterPoint = 0;\r\n var pointerLeftPoint = -POINTER_SIZE;\r\n var position = this._position;\r\n var isLeft = this._isLeftPointer;\r\n var correctCloudBorders = function() {\r\n rectLeftBorder++;\r\n rectRightBorder++;\r\n pointerRightPoint++;\r\n pointerCenterPoint++;\r\n pointerLeftPoint++\r\n };\r\n var checkPointerBorders = function() {\r\n if (pointerRightPoint > rectRightBorder) {\r\n pointerRightPoint = rectRightBorder\r\n } else if (pointerLeftPoint < rectLeftBorder) {\r\n pointerLeftPoint = rectLeftBorder\r\n }\r\n isLeft && correctCloudBorders()\r\n };\r\n var borderPosition = position;\r\n if (isLeft) {\r\n if (position > this._range[1] - rectWidth) {\r\n rectRightBorder = -position + this._range[1];\r\n rectLeftBorder = rectRightBorder - rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectLeftBorder\r\n } else {\r\n rectLeftBorder = pointerLeftPoint = 0;\r\n rectRightBorder = rectWidth\r\n }\r\n } else if (position - this._range[0] < rectWidth) {\r\n rectLeftBorder = -(position - this._range[0]);\r\n rectRightBorder = rectLeftBorder + rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectRightBorder\r\n } else {\r\n pointerRightPoint = 0;\r\n correctCloudBorders()\r\n }\r\n this._borderPosition = borderPosition;\r\n return {\r\n offset: rectLeftBorder,\r\n isCut: (!isLeft || pointerCenterPoint !== pointerLeftPoint) && (isLeft || pointerCenterPoint !== pointerRightPoint),\r\n points: [rectLeftBorder, 0, rectRightBorder, 0, rectRightBorder, rectHeight, pointerRightPoint, rectHeight, pointerCenterPoint, rectHeight + POINTER_SIZE, pointerLeftPoint, rectHeight, rectLeftBorder, rectHeight]\r\n }\r\n },\r\n _update: function() {\r\n var that = this;\r\n var textSize;\r\n clearTimeout(that._timeout);\r\n that._label.attr({\r\n text: that._text || \"\"\r\n });\r\n var currentTextSize = that._getTextSize();\r\n var rectSize = that._getRectSize(currentTextSize);\r\n textSize = that._textSize || currentTextSize;\r\n textSize = that._textSize = currentTextSize.width > textSize.width || currentTextSize.height > textSize.height ? currentTextSize : textSize;\r\n that._timeout = setTimeout((function() {\r\n updateSliderMarker(currentTextSize, rectSize);\r\n that._textSize = currentTextSize\r\n }), SLIDER_MARKER_UPDATE_DELAY);\r\n\r\n function updateSliderMarker(size, rectSize) {\r\n rectSize = rectSize || that._getRectSize(size);\r\n that._group.attr({\r\n translateY: -(rectSize.height + POINTER_SIZE)\r\n });\r\n var pointsData = that._getAreaPointsInfo(size);\r\n var points = pointsData.points;\r\n var offset = pointsData.offset;\r\n that._area.attr({\r\n points: points\r\n });\r\n that._border.attr({\r\n x: that._isLeftPointer ? points[0] - 1 : points[2],\r\n height: pointsData.isCut ? rectSize.height : rectSize.height + POINTER_SIZE\r\n });\r\n that._tracker.attr({\r\n translateX: offset,\r\n width: rectSize.width,\r\n height: rectSize.height + POINTER_SIZE\r\n });\r\n that._label.attr({\r\n translateX: that._paddingLeftRight + offset,\r\n translateY: rectSize.height / 2 - (size.y + size.height / 2)\r\n })\r\n }\r\n updateSliderMarker(textSize)\r\n },\r\n setText: function(value) {\r\n this._text = value\r\n },\r\n setPosition: function(position) {\r\n this._position = position;\r\n this._update()\r\n },\r\n applyOptions: function(options, screenRange) {\r\n this._range = screenRange;\r\n this._paddingLeftRight = options.paddingLeftRight;\r\n this._paddingTopBottom = options.paddingTopBottom;\r\n this._textHeight = null;\r\n this._colors = [options.invalidRangeColor, options.color];\r\n this._area.attr({\r\n fill: options.color\r\n });\r\n this._border.attr({\r\n fill: options.borderColor\r\n });\r\n this._label.css(patchFontOptions(options.font));\r\n this._update()\r\n },\r\n getTracker: function() {\r\n return this._tracker\r\n },\r\n setValid: function(isValid) {\r\n this._area.attr({\r\n fill: this._colors[Number(isValid)]\r\n })\r\n },\r\n setColor: function(color) {\r\n this._area.attr({\r\n fill: color\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._timeout)\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n if (this._isOverlapped !== isOverlapped) {\r\n if (isOverlapped) {\r\n this._border.append(this._group)\r\n } else {\r\n this._isOverlapped && this._border.remove()\r\n }\r\n this._isOverlapped = isOverlapped\r\n }\r\n },\r\n getBorderPosition: function() {\r\n return this._borderPosition\r\n }\r\n};\r\nexport default SliderMarker;\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/slider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n utils,\r\n formatValue\r\n} from \"./common\";\r\nvar animationSettings = utils.animationSettings;\r\nimport SliderMarker from \"./slider_marker\";\r\nimport {\r\n touchEvents,\r\n pointerEvents\r\n} from \"../../core/utils/support\";\r\nvar SPLITTER_WIDTH = 8;\r\nvar TOUCH_SPLITTER_WIDTH = 20;\r\n\r\nfunction getSliderTrackerWidth(sliderHandleWidth) {\r\n return touchEvents || pointerEvents ? TOUCH_SPLITTER_WIDTH : SPLITTER_WIDTH < sliderHandleWidth ? sliderHandleWidth : SPLITTER_WIDTH\r\n}\r\n\r\nfunction Slider(params, index) {\r\n this._translator = params.translator;\r\n this._sliderGroup = params.renderer.g().attr({\r\n class: \"slider\"\r\n }).append(params.root);\r\n this._line = params.renderer.path(null, \"line\").append(this._sliderGroup);\r\n this._marker = new SliderMarker(params.renderer, this._sliderGroup, 1 === index);\r\n this._tracker = params.renderer.rect().attr({\r\n class: \"slider-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"w-resize\"\r\n }).append(params.trackersGroup)\r\n}\r\nSlider.prototype = {\r\n constructor: Slider,\r\n cancelAnimation: function() {\r\n this._sliderGroup.stopAnimation();\r\n this._tracker.stopAnimation()\r\n },\r\n applyPosition: function(isAnimated) {\r\n var slider = this._sliderGroup;\r\n var tracker = this._tracker;\r\n var attrs = {\r\n translateX: this._position\r\n };\r\n this._marker.setPosition(this._position);\r\n if (isAnimated) {\r\n slider.animate(attrs, animationSettings);\r\n tracker.animate(attrs, animationSettings)\r\n } else {\r\n slider.attr(attrs);\r\n tracker.attr(attrs)\r\n }\r\n },\r\n _setValid: function(isValid) {\r\n this._marker.setValid(isValid);\r\n this._line.attr({\r\n stroke: this._colors[Number(isValid)]\r\n })\r\n },\r\n _setText: function(text) {\r\n this._marker.setText(text)\r\n },\r\n update: function(verticalRange, sliderHandleOptions, sliderMarkerOptions) {\r\n this._formatOptions = {\r\n format: sliderMarkerOptions.format,\r\n customizeText: sliderMarkerOptions.customizeText\r\n };\r\n this._marker.applyOptions(sliderMarkerOptions, this._translator.getScreenRange());\r\n this._colors = [sliderMarkerOptions.invalidRangeColor, sliderHandleOptions.color];\r\n this._sliderGroup.attr({\r\n translateY: verticalRange[0]\r\n });\r\n this._line.attr({\r\n \"stroke-width\": sliderHandleOptions.width,\r\n stroke: sliderHandleOptions.color,\r\n \"stroke-opacity\": sliderHandleOptions.opacity,\r\n sharp: \"h\",\r\n points: [0, 0, 0, verticalRange[1] - verticalRange[0]]\r\n });\r\n var trackerWidth = getSliderTrackerWidth(sliderHandleOptions.width);\r\n this._tracker.attr({\r\n x: -trackerWidth / 2,\r\n y: 0,\r\n width: trackerWidth,\r\n height: verticalRange[1] - verticalRange[0],\r\n translateY: verticalRange[0]\r\n })\r\n },\r\n toForeground: function() {\r\n this._sliderGroup.toForeground()\r\n },\r\n getSliderTracker: function() {\r\n return this._tracker\r\n },\r\n getPosition: function() {\r\n return this._position\r\n },\r\n setDisplayValue: function(value) {\r\n this._value = value;\r\n this._setText(formatValue(value, this._formatOptions))\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n this._marker.setOverlapped(isOverlapped)\r\n },\r\n getValue: function() {\r\n return this._value\r\n },\r\n on: function(event, handler) {\r\n this._tracker.on(event, handler);\r\n this._marker.getTracker().on(event, handler)\r\n },\r\n getCloudBorder: function() {\r\n return this._marker.getBorderPosition()\r\n },\r\n dispose: function() {\r\n this._marker.dispose()\r\n }\r\n};\r\nexport default Slider;\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/sliders_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n utils,\r\n consts\r\n} from \"./common\";\r\nimport Slider from \"./slider\";\r\nimport {\r\n normalizeEnum as _normalizeEnum,\r\n rangesAreEqual,\r\n adjustVisualRange\r\n} from \"../core/utils\";\r\nimport {\r\n isNumeric,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar animationSettings = utils.animationSettings;\r\nvar emptySliderMarkerText = consts.emptySliderMarkerText;\r\n\r\nfunction buildRectPoints(left, top, right, bottom) {\r\n return [left, top, right, top, right, bottom, left, bottom]\r\n}\r\n\r\nfunction isLess(a, b) {\r\n return a < b\r\n}\r\n\r\nfunction isGreater(a, b) {\r\n return a > b\r\n}\r\n\r\nfunction selectClosestValue(target, values) {\r\n var start = 0;\r\n var end = values ? values.length - 1 : 0;\r\n var middle;\r\n var val = target;\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n val = values[middle];\r\n if (val === target) {\r\n return target\r\n } else if (target < val) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n if (values) {\r\n val = values[target - values[start] <= values[end] - target ? start : end]\r\n }\r\n return val\r\n}\r\n\r\nfunction dummyProcessSelectionChanged() {\r\n this._lastSelectedRange = this.getSelectedRange();\r\n delete this._processSelectionChanged\r\n}\r\n\r\nfunction suppressSetSelectedRange(controller) {\r\n controller.setSelectedRange = noop;\r\n if (controller._processSelectionChanged === dummyProcessSelectionChanged) {\r\n controller._processSelectionChanged()\r\n }\r\n}\r\n\r\nfunction restoreSetSelectedRange(controller) {\r\n delete controller.setSelectedRange\r\n}\r\nexport function SlidersController(params) {\r\n var sliderParams = {\r\n renderer: params.renderer,\r\n root: params.root,\r\n trackersGroup: params.trackersGroup,\r\n translator: params.translator\r\n };\r\n this._params = params;\r\n this._areaTracker = params.renderer.path(null, \"area\").attr({\r\n class: \"area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n this._selectedAreaTracker = params.renderer.path(null, \"area\").attr({\r\n class: \"selected-area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n this._shutter = params.renderer.path(null, \"area\").append(params.root);\r\n this._sliders = [new Slider(sliderParams, 0), new Slider(sliderParams, 1)];\r\n this._processSelectionChanged = dummyProcessSelectionChanged\r\n}\r\nSlidersController.prototype = {\r\n constructor: SlidersController,\r\n dispose: function() {\r\n this._sliders[0].dispose();\r\n this._sliders[1].dispose()\r\n },\r\n getTrackerTargets: function() {\r\n return {\r\n area: this._areaTracker,\r\n selectedArea: this._selectedAreaTracker,\r\n sliders: this._sliders\r\n }\r\n },\r\n _processSelectionChanged: function(e) {\r\n var selectedRange = this.getSelectedRange();\r\n if (!rangesAreEqual(selectedRange, this._lastSelectedRange)) {\r\n this._params.updateSelectedRange(selectedRange, this._lastSelectedRange, e);\r\n this._lastSelectedRange = selectedRange\r\n }\r\n },\r\n update: function(verticalRange, behavior, isCompactMode, sliderHandleOptions, sliderMarkerOptions, shutterOptions, rangeBounds, fullTicks, selectedRangeColor) {\r\n var screenRange = this._params.translator.getScreenRange();\r\n this._verticalRange = verticalRange;\r\n this._minRange = rangeBounds.minRange;\r\n this._maxRange = rangeBounds.maxRange;\r\n this._animationEnabled = behavior.animationEnabled && this._params.renderer.animationEnabled();\r\n this._allowSlidersSwap = behavior.allowSlidersSwap;\r\n this._sliders[0].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n this._sliders[1].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n this._sliders[0]._position = this._sliders[1]._position = screenRange[0];\r\n this._values = !this._params.translator.isValueProlonged && behavior.snapToTicks ? fullTicks : null;\r\n this._areaTracker.attr({\r\n points: buildRectPoints(screenRange[0], verticalRange[0], screenRange[1], verticalRange[1])\r\n });\r\n this._isCompactMode = isCompactMode;\r\n this._shutterOffset = sliderHandleOptions.width / 2;\r\n this._updateSelectedView(shutterOptions, selectedRangeColor);\r\n this._isOnMoving = \"onhandlemove\" === _normalizeEnum(behavior.valueChangeMode) || \"onmoving\" === _normalizeEnum(behavior.callValueChanged);\r\n this._updateSelectedRange();\r\n this._applyTotalPosition(false)\r\n },\r\n _updateSelectedView: function(shutterOptions, selectedRangeColor) {\r\n var settings = {\r\n fill: null,\r\n \"fill-opacity\": null,\r\n stroke: null,\r\n \"stroke-width\": null\r\n };\r\n if (this._isCompactMode) {\r\n settings.stroke = selectedRangeColor;\r\n settings[\"stroke-width\"] = 3;\r\n settings.sharp = \"v\"\r\n } else {\r\n settings.fill = shutterOptions.color;\r\n settings[\"fill-opacity\"] = shutterOptions.opacity\r\n }\r\n this._shutter.attr(settings)\r\n },\r\n _updateSelectedRange: function() {\r\n var sliders = this._sliders;\r\n sliders[0].cancelAnimation();\r\n sliders[1].cancelAnimation();\r\n this._shutter.stopAnimation();\r\n if (this._params.translator.getBusinessRange().isEmpty()) {\r\n sliders[0]._setText(emptySliderMarkerText);\r\n sliders[1]._setText(emptySliderMarkerText);\r\n sliders[0]._value = sliders[1]._value = void 0;\r\n sliders[0]._position = this._params.translator.getScreenRange()[0];\r\n sliders[1]._position = this._params.translator.getScreenRange()[1];\r\n this._applyTotalPosition(false);\r\n suppressSetSelectedRange(this)\r\n } else {\r\n restoreSetSelectedRange(this)\r\n }\r\n },\r\n _applyTotalPosition: function(isAnimated) {\r\n var sliders = this._sliders;\r\n isAnimated = this._animationEnabled && isAnimated;\r\n sliders[0].applyPosition(isAnimated);\r\n sliders[1].applyPosition(isAnimated);\r\n var areOverlapped = sliders[0].getCloudBorder() > sliders[1].getCloudBorder();\r\n sliders[0].setOverlapped(areOverlapped);\r\n sliders[1].setOverlapped(areOverlapped);\r\n this._applyAreaTrackersPosition();\r\n this._applySelectedRangePosition(isAnimated)\r\n },\r\n _applyAreaTrackersPosition: function() {\r\n var position1 = this._sliders[0].getPosition();\r\n var position2 = this._sliders[1].getPosition();\r\n this._selectedAreaTracker.attr({\r\n points: buildRectPoints(position1, this._verticalRange[0], position2, this._verticalRange[1])\r\n }).css({\r\n cursor: Math.abs(this._params.translator.getScreenRange()[1] - this._params.translator.getScreenRange()[0] - position2 + position1) < .001 ? \"default\" : \"pointer\"\r\n })\r\n },\r\n _applySelectedRangePosition: function(isAnimated) {\r\n var verticalRange = this._verticalRange;\r\n var pos1 = this._sliders[0].getPosition();\r\n var pos2 = this._sliders[1].getPosition();\r\n var screenRange;\r\n var points;\r\n if (this._isCompactMode) {\r\n points = [pos1 + Math.ceil(this._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2, pos2 - Math.floor(this._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2]\r\n } else {\r\n screenRange = this._params.axis.getVisibleArea();\r\n points = [buildRectPoints(screenRange[0], verticalRange[0], Math.max(pos1 - Math.floor(this._shutterOffset), screenRange[0]), verticalRange[1]), buildRectPoints(screenRange[1], verticalRange[0], Math.min(pos2 + Math.ceil(this._shutterOffset), screenRange[1]), verticalRange[1])]\r\n }\r\n if (isAnimated) {\r\n this._shutter.animate({\r\n points: points\r\n }, animationSettings)\r\n } else {\r\n this._shutter.attr({\r\n points: points\r\n })\r\n }\r\n },\r\n getSelectedRange: function() {\r\n return {\r\n startValue: this._sliders[0].getValue(),\r\n endValue: this._sliders[1].getValue()\r\n }\r\n },\r\n setSelectedRange: function(visualRange, e) {\r\n visualRange = visualRange || {};\r\n var translator = this._params.translator;\r\n var businessRange = translator.getBusinessRange();\r\n var compare = \"discrete\" === businessRange.axisType ? function(a, b) {\r\n return a < b\r\n } : function(a, b) {\r\n return a <= b\r\n };\r\n var {\r\n startValue: startValue,\r\n endValue: endValue\r\n } = adjustVisualRange({\r\n dataType: businessRange.dataType,\r\n axisType: businessRange.axisType,\r\n base: businessRange.base\r\n }, {\r\n startValue: translator.isValid(visualRange.startValue) ? translator.getCorrectValue(visualRange.startValue, 1) : void 0,\r\n endValue: translator.isValid(visualRange.endValue) ? translator.getCorrectValue(visualRange.endValue, -1) : void 0,\r\n length: visualRange.length\r\n }, {\r\n min: businessRange.minVisible,\r\n max: businessRange.maxVisible,\r\n categories: businessRange.categories\r\n });\r\n startValue = isNumeric(startValue) ? adjust(startValue) : startValue;\r\n endValue = isNumeric(endValue) ? adjust(endValue) : endValue;\r\n var values = compare(translator.to(startValue, -1), translator.to(endValue, 1)) ? [startValue, endValue] : [endValue, startValue];\r\n this._sliders[0].setDisplayValue(values[0]);\r\n this._sliders[1].setDisplayValue(values[1]);\r\n this._sliders[0]._position = translator.to(values[0], -1);\r\n this._sliders[1]._position = translator.to(values[1], 1);\r\n this._applyTotalPosition(true);\r\n this._processSelectionChanged(e)\r\n },\r\n beginSelectedAreaMoving: function(initialPosition) {\r\n var that = this;\r\n var sliders = that._sliders;\r\n var offset = (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - initialPosition;\r\n var currentPosition = initialPosition;\r\n move.complete = function(e) {\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n if (position !== currentPosition && position > currentPosition === position > (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - offset) {\r\n that._moveSelectedArea(position + offset, false, e)\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _dockSelectedArea: function(e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n sliders[0]._position = translator.to(sliders[0].getValue(), -1);\r\n sliders[1]._position = translator.to(sliders[1].getValue(), 1);\r\n this._applyTotalPosition(true);\r\n this._processSelectionChanged(e)\r\n },\r\n moveSelectedArea: function(screenPosition, e) {\r\n this._moveSelectedArea(screenPosition, true, e);\r\n this._dockSelectedArea(e)\r\n },\r\n _moveSelectedArea: function(screenPosition, isAnimated, e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var interval = sliders[1].getPosition() - sliders[0].getPosition();\r\n var startPosition = screenPosition - interval / 2;\r\n var endPosition = screenPosition + interval / 2;\r\n if (startPosition < translator.getScreenRange()[0]) {\r\n startPosition = translator.getScreenRange()[0];\r\n endPosition = startPosition + interval\r\n }\r\n if (endPosition > translator.getScreenRange()[1]) {\r\n endPosition = translator.getScreenRange()[1];\r\n startPosition = endPosition - interval\r\n }\r\n var startValue = selectClosestValue(translator.from(startPosition, -1), this._values);\r\n sliders[0].setDisplayValue(startValue);\r\n sliders[1].setDisplayValue(selectClosestValue(translator.from(translator.to(startValue, -1) + interval, 1), this._values));\r\n sliders[0]._position = startPosition;\r\n sliders[1]._position = endPosition;\r\n this._applyTotalPosition(isAnimated);\r\n if (this._isOnMoving) {\r\n this._processSelectionChanged(e)\r\n }\r\n },\r\n placeSliderAndBeginMoving: function(firstPosition, secondPosition, e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var index = firstPosition < secondPosition ? 0 : 1;\r\n var dir = index > 0 ? 1 : -1;\r\n var compare = index > 0 ? isGreater : isLess;\r\n var antiCompare = index > 0 ? isLess : isGreater;\r\n var thresholdPosition;\r\n var positions = [];\r\n var values = [];\r\n values[index] = translator.from(firstPosition, dir);\r\n values[1 - index] = translator.from(secondPosition, -dir);\r\n positions[1 - index] = secondPosition;\r\n if (translator.isValueProlonged) {\r\n if (compare(firstPosition, translator.to(values[index], dir))) {\r\n values[index] = translator.from(firstPosition, -dir)\r\n }\r\n if (compare(secondPosition, translator.to(values[index], -dir))) {\r\n values[1 - index] = values[index]\r\n }\r\n }\r\n if (this._minRange) {\r\n thresholdPosition = translator.to(translator.add(selectClosestValue(values[index], this._values), this._minRange, -dir), -dir);\r\n if (compare(secondPosition, thresholdPosition)) {\r\n values[1 - index] = translator.add(values[index], this._minRange, -dir)\r\n }\r\n thresholdPosition = translator.to(translator.add(translator.getRange()[1 - index], this._minRange, dir), -dir);\r\n if (antiCompare(firstPosition, thresholdPosition)) {\r\n values[1 - index] = translator.getRange()[1 - index];\r\n values[index] = translator.add(values[1 - index], this._minRange, dir);\r\n positions[1 - index] = firstPosition\r\n }\r\n }\r\n values[0] = selectClosestValue(values[0], this._values);\r\n values[1] = selectClosestValue(values[1], this._values);\r\n positions[index] = translator.to(values[index], dir);\r\n sliders[0].setDisplayValue(values[0]);\r\n sliders[1].setDisplayValue(values[1]);\r\n sliders[0]._position = positions[0];\r\n sliders[1]._position = positions[1];\r\n this._applyTotalPosition(true);\r\n if (this._isOnMoving) {\r\n this._processSelectionChanged(e)\r\n }\r\n var handler = this.beginSliderMoving(1 - index, secondPosition);\r\n sliders[1 - index]._sliderGroup.stopAnimation();\r\n this._shutter.stopAnimation();\r\n handler(secondPosition);\r\n return handler\r\n },\r\n beginSliderMoving: function(initialIndex, initialPosition) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var minPosition = translator.getScreenRange()[0];\r\n var maxPosition = translator.getScreenRange()[1];\r\n var index = initialIndex;\r\n var staticPosition = sliders[1 - index].getPosition();\r\n var currentPosition = initialPosition;\r\n var dir = index > 0 ? 1 : -1;\r\n var compareMin = index > 0 ? isLess : isGreater;\r\n var compareMax = index > 0 ? isGreater : isLess;\r\n var moveOffset = sliders[index].getPosition() - initialPosition;\r\n var swapOffset = compareMin(sliders[index].getPosition(), initialPosition) ? -moveOffset : moveOffset;\r\n move.complete = function(e) {\r\n sliders[index]._setValid(true);\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n var isValid;\r\n var temp;\r\n var pos;\r\n var slider;\r\n var value;\r\n if (position !== currentPosition) {\r\n if (compareMin(position + swapOffset, staticPosition)) {\r\n isValid = that._allowSlidersSwap;\r\n if (isValid && !translator.isValueProlonged && that._minRange) {\r\n isValid = translator.isValid(translator.add(sliders[1 - index].getValue(), that._minRange, -dir))\r\n }\r\n if (isValid) {\r\n that._changeMovingSlider(index);\r\n index = 1 - index;\r\n dir = -dir;\r\n temp = compareMin;\r\n compareMin = compareMax;\r\n compareMax = temp;\r\n moveOffset = -dir * Math.abs(moveOffset);\r\n swapOffset = -moveOffset\r\n }\r\n }\r\n if (compareMax(position + moveOffset, staticPosition)) {\r\n slider = sliders[index];\r\n value = sliders[1 - index].getValue();\r\n pos = Math.max(Math.min(position + moveOffset, maxPosition), minPosition);\r\n isValid = translator.isValueProlonged ? !compareMin(pos, translator.to(value, dir)) : true;\r\n var invalidStateValue;\r\n if (isValid && that._minRange) {\r\n isValid = !compareMin(pos, translator.to(translator.add(value, that._minRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._minRange, dir)\r\n }\r\n }\r\n if (isValid && that._maxRange) {\r\n isValid = !compareMax(pos, translator.to(translator.add(value, that._maxRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._maxRange, dir)\r\n }\r\n }\r\n slider._setValid(isValid);\r\n slider.setDisplayValue(isValid ? selectClosestValue(translator.from(pos, dir), that._values) : isDefined(invalidStateValue) ? invalidStateValue : slider.getValue());\r\n slider._position = pos;\r\n that._applyTotalPosition(false);\r\n slider.toForeground();\r\n if (that._isOnMoving) {\r\n that._processSelectionChanged(e)\r\n }\r\n }\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _changeMovingSlider: function(index) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var position = sliders[1 - index].getPosition();\r\n var dir = index > 0 ? 1 : -1;\r\n var newValue;\r\n sliders[index].setDisplayValue(selectClosestValue(translator.from(position, dir), this._values));\r\n newValue = translator.from(position, -dir);\r\n if (translator.isValueProlonged) {\r\n newValue = translator.from(position, dir)\r\n } else if (this._minRange) {\r\n newValue = translator.add(newValue, this._minRange, -dir)\r\n }\r\n sliders[1 - index].setDisplayValue(selectClosestValue(newValue, this._values));\r\n sliders[index]._setValid(true);\r\n sliders[index]._marker._update();\r\n sliders[0]._position = sliders[1]._position = position\r\n },\r\n foregroundSlider: function(index) {\r\n this._sliders[index].toForeground()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n pointerEvents as msPointerEnabled\r\n} from \"../../core/utils/support\";\r\nvar MIN_MANUAL_SELECTING_WIDTH = 10;\r\nvar window = getWindow();\r\n\r\nfunction isLeftButtonPressed(event) {\r\n var e = event || window.event;\r\n var originalEvent = e.originalEvent;\r\n var touches = e.touches;\r\n var pointerType = originalEvent ? originalEvent.pointerType : false;\r\n var eventTouches = originalEvent ? originalEvent.touches : false;\r\n var isMSPointerLeftClick = originalEvent && void 0 !== pointerType && (pointerType === (originalEvent.MSPOINTER_TYPE_TOUCH || \"touch\") || pointerType === (originalEvent.MSPOINTER_TYPE_MOUSE || \"mouse\") && 1 === originalEvent.buttons);\r\n var isTouches = touches && touches.length > 0 || eventTouches && eventTouches.length > 0;\r\n return 1 === e.which || isMSPointerLeftClick || isTouches\r\n}\r\n\r\nfunction isMultiTouches(event) {\r\n var originalEvent = event.originalEvent;\r\n var touches = event.touches;\r\n var eventTouches = originalEvent && originalEvent.touches;\r\n return touches && touches.length > 1 || eventTouches && eventTouches.length > 1 || null\r\n}\r\n\r\nfunction preventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction stopPropagationAndPreventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction isTouchEventArgs(e) {\r\n return e && e.type && 0 === e.type.indexOf(\"touch\")\r\n}\r\n\r\nfunction getEventPageX(event) {\r\n var originalEvent = event.originalEvent;\r\n var result = 0;\r\n if (event.pageX) {\r\n result = event.pageX\r\n } else if (originalEvent && originalEvent.pageX) {\r\n result = originalEvent.pageX\r\n }\r\n if (originalEvent && originalEvent.touches) {\r\n if (originalEvent.touches.length > 0) {\r\n result = originalEvent.touches[0].pageX\r\n } else if (originalEvent.changedTouches.length > 0) {\r\n result = originalEvent.changedTouches[0].pageX\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction initializeAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var initialPosition;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n var position;\r\n var offset;\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n offset = getRootOffsetLeft();\r\n if (movingHandler) {\r\n movingHandler(position - offset, e)\r\n } else if (state.manualRangeSelectionEnabled && Math.abs(initialPosition - position) >= MIN_MANUAL_SELECTING_WIDTH) {\r\n movingHandler = controller.placeSliderAndBeginMoving(initialPosition - offset, position - offset, e)\r\n }\r\n }\r\n },\r\n [pointerEvents.up](e) {\r\n var position;\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n if (!movingHandler && state.moveSelectedRangeByClick && Math.abs(initialPosition - position) < MIN_MANUAL_SELECTING_WIDTH) {\r\n controller.moveSelectedArea(position - getRootOffsetLeft(), e)\r\n }\r\n cancel(e)\r\n }\r\n }\r\n };\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n if (movingHandler) {\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n }\r\n area.on(pointerEvents.down, (function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n initialPosition = getEventPageX(e)\r\n }));\r\n return docEvents\r\n}\r\n\r\nfunction initializeSelectedAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n },\r\n [pointerEvents.up]: cancel\r\n };\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n area.on(pointerEvents.down, (function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSelectedAreaMoving(getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n }));\r\n return docEvents\r\n}\r\n\r\nfunction initializeSliderEvents(controller, sliders, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n },\r\n [pointerEvents.up]: cancel\r\n };\r\n each(sliders, (function(i, slider) {\r\n slider.on({\r\n [pointerEvents.down](e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSliderMoving(i, getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n },\r\n [pointerEvents.move]() {\r\n if (!movingHandler) {\r\n controller.foregroundSlider(i)\r\n }\r\n }\r\n })\r\n }));\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n return docEvents\r\n}\r\nexport function Tracker(params) {\r\n var state = this._state = {};\r\n var targets = params.controller.getTrackerTargets();\r\n if (msPointerEnabled) {\r\n params.renderer.root.css({\r\n msTouchAction: \"pinch-zoom\"\r\n })\r\n }\r\n this._docEvents = [initializeSelectedAreaEvents(params.controller, targets.selectedArea, state, getRootOffsetLeft), initializeAreaEvents(params.controller, targets.area, state, getRootOffsetLeft), initializeSliderEvents(params.controller, targets.sliders, state, getRootOffsetLeft)];\r\n each(this._docEvents, (function(_, events) {\r\n eventsEngine.on(domAdapter.getDocument(), events)\r\n }));\r\n\r\n function getRootOffsetLeft() {\r\n return params.renderer.getRootOffset().left\r\n }\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n dispose: function() {\r\n each(this._docEvents, (function(_, events) {\r\n eventsEngine.off(domAdapter.getDocument(), events)\r\n }))\r\n },\r\n update: function(enabled, behavior) {\r\n var state = this._state;\r\n state.enabled = enabled;\r\n state.moveSelectedRangeByClick = behavior.moveSelectedRangeByClick;\r\n state.manualRangeSelectionEnabled = behavior.manualRangeSelectionEnabled\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/range_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction drawSeriesView(root, seriesDataSource, canvas, isAnimationEnabled) {\r\n var seriesList = seriesDataSource.getSeries();\r\n if (!seriesList.length) {\r\n return\r\n }\r\n var valueAxis = seriesList[0].getValueAxis();\r\n valueAxis.updateCanvas({\r\n top: canvas.top,\r\n bottom: 0,\r\n height: canvas.height + canvas.top\r\n });\r\n seriesDataSource.adjustSeriesDimensions();\r\n var valueRange = seriesDataSource.getBoundRange().val;\r\n valueRange.sortCategories(valueAxis.getCategoriesSorter());\r\n valueAxis.setBusinessRange(valueRange);\r\n seriesList.forEach(series => {\r\n series._extGroups.seriesGroup = series._extGroups.labelsGroup = root;\r\n series.draw(isAnimationEnabled)\r\n })\r\n}\r\n\r\nfunction merge(a, b) {\r\n return void 0 !== a ? a : b\r\n}\r\nexport function RangeView(params) {\r\n this._params = params;\r\n this._clipRect = params.renderer.clipRect();\r\n params.root.attr({\r\n \"clip-path\": this._clipRect.id\r\n })\r\n}\r\nRangeView.prototype = {\r\n constructor: RangeView,\r\n update: function(backgroundOption, backgroundTheme, canvas, isCompactMode, isAnimationEnabled, seriesDataSource) {\r\n var renderer = this._params.renderer;\r\n var root = this._params.root;\r\n var canvasWidth = canvas.width - canvas.left;\r\n var seriesGroup;\r\n backgroundOption = backgroundOption || {};\r\n root.clear();\r\n this._clipRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvasWidth,\r\n height: canvas.height\r\n });\r\n if (!isCompactMode) {\r\n if (merge(backgroundOption.visible, backgroundTheme.visible)) {\r\n if (backgroundOption.color) {\r\n renderer.rect(canvas.left, canvas.top, canvasWidth + 1, canvas.height).attr({\r\n fill: merge(backgroundOption.color, backgroundTheme.color),\r\n class: \"dx-range-selector-background\"\r\n }).append(root)\r\n }\r\n if (backgroundOption.image && backgroundOption.image.url) {\r\n renderer.image(canvas.left, canvas.top, canvasWidth + 1, canvas.height, backgroundOption.image.url, merge(backgroundOption.image.location, backgroundTheme.image.location)).append(root)\r\n }\r\n }\r\n if (seriesDataSource && seriesDataSource.isShowChart()) {\r\n seriesGroup = renderer.g().attr({\r\n class: \"dxrs-series-group\"\r\n }).append(root);\r\n drawSeriesView(seriesGroup, seriesDataSource, canvas, isAnimationEnabled)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/series_data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Series\r\n} from \"../series/base_series\";\r\nimport {\r\n SeriesFamily\r\n} from \"../core/series_family\";\r\nimport {\r\n isNumeric,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n mergeMarginOptions,\r\n processSeriesTemplate\r\n} from \"../core/utils\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n validateData\r\n} from \"../components/data_validator\";\r\nimport {\r\n ThemeManager as ChartThemeManager\r\n} from \"../components/chart_theme_manager\";\r\nvar createThemeManager = function(chartOptions) {\r\n return new ChartThemeManager({\r\n options: chartOptions,\r\n themeSection: \"rangeSelector.chart\",\r\n fontFields: [\"commonSeriesSettings.label.font\"]\r\n })\r\n};\r\nvar processSeriesFamilies = function(series, minBubbleSize, maxBubbleSize, barOptions, negativesAsZeroes) {\r\n var families = [];\r\n var types = [];\r\n each(series, (function(i, item) {\r\n if (!types.includes(item.type)) {\r\n types.push(item.type)\r\n }\r\n }));\r\n each(types, (function(_, type) {\r\n var family = new SeriesFamily({\r\n type: type,\r\n minBubbleSize: minBubbleSize,\r\n maxBubbleSize: maxBubbleSize,\r\n barGroupPadding: barOptions.barGroupPadding,\r\n barGroupWidth: barOptions.barGroupWidth,\r\n negativesAsZeroes: negativesAsZeroes\r\n });\r\n family.add(series);\r\n family.adjustSeriesValues();\r\n families.push(family)\r\n }));\r\n return families\r\n};\r\nexport var SeriesDataSource = function(options) {\r\n var themeManager = this._themeManager = createThemeManager(options.chart);\r\n themeManager.setTheme(options.chart.theme);\r\n var topIndent = themeManager.getOptions(\"topIndent\");\r\n var bottomIndent = themeManager.getOptions(\"bottomIndent\");\r\n this._indent = {\r\n top: topIndent >= 0 && topIndent < 1 ? topIndent : 0,\r\n bottom: bottomIndent >= 0 && bottomIndent < 1 ? bottomIndent : 0\r\n };\r\n this._valueAxis = themeManager.getOptions(\"valueAxisRangeSelector\") || {};\r\n this._hideChart = false;\r\n this._series = this._calculateSeries(options);\r\n this._seriesFamilies = []\r\n};\r\nSeriesDataSource.prototype = {\r\n constructor: SeriesDataSource,\r\n _calculateSeries: function(options) {\r\n var series = [];\r\n var particularSeriesOptions;\r\n var seriesTheme;\r\n var data = options.dataSource || [];\r\n var parsedData;\r\n var chartThemeManager = this._themeManager;\r\n var seriesTemplate = chartThemeManager.getOptions(\"seriesTemplate\");\r\n var allSeriesOptions = seriesTemplate ? processSeriesTemplate(seriesTemplate, data) : options.chart.series;\r\n var dataSourceField;\r\n var valueAxis = this._valueAxis;\r\n var i;\r\n var newSeries;\r\n var groupsData;\r\n if (options.dataSource && !allSeriesOptions) {\r\n dataSourceField = options.dataSourceField || \"arg\";\r\n allSeriesOptions = {\r\n argumentField: dataSourceField,\r\n valueField: dataSourceField\r\n };\r\n this._hideChart = true\r\n }\r\n allSeriesOptions = Array.isArray(allSeriesOptions) ? allSeriesOptions : allSeriesOptions ? [allSeriesOptions] : [];\r\n for (i = 0; i < allSeriesOptions.length; i++) {\r\n particularSeriesOptions = extend(true, {}, allSeriesOptions[i]);\r\n particularSeriesOptions.rotated = false;\r\n seriesTheme = chartThemeManager.getOptions(\"series\", particularSeriesOptions, allSeriesOptions.length);\r\n seriesTheme.argumentField = seriesTheme.argumentField || options.dataSourceField;\r\n if (!seriesTheme.name) {\r\n seriesTheme.name = \"Series \" + (i + 1).toString()\r\n }\r\n if (data && data.length > 0) {\r\n newSeries = new Series({\r\n renderer: options.renderer,\r\n argumentAxis: options.argumentAxis,\r\n valueAxis: options.valueAxis,\r\n incidentOccurred: options.incidentOccurred\r\n }, seriesTheme);\r\n series.push(newSeries)\r\n }\r\n }\r\n if (series.length) {\r\n groupsData = {\r\n groups: [{\r\n series: series,\r\n valueAxis: options.valueAxis,\r\n valueOptions: {\r\n type: valueAxis.type,\r\n valueType: dataSourceField ? options.valueType : valueAxis.valueType\r\n }\r\n }],\r\n argumentOptions: {\r\n categories: options.categories,\r\n argumentType: options.valueType,\r\n type: options.axisType\r\n }\r\n };\r\n parsedData = validateData(data, groupsData, options.incidentOccurred, chartThemeManager.getOptions(\"dataPrepareSettings\"));\r\n this.argCategories = groupsData.categories;\r\n for (i = 0; i < series.length; i++) {\r\n series[i].updateData(parsedData[series[i].getArgumentField()])\r\n }\r\n }\r\n return series\r\n },\r\n createPoints() {\r\n if (0 === this._series.length) {\r\n return\r\n }\r\n var series = this._series;\r\n var viewport = new Range;\r\n var axis = series[0].getArgumentAxis();\r\n var themeManager = this._themeManager;\r\n var negativesAsZeroes = themeManager.getOptions(\"negativesAsZeroes\");\r\n var negativesAsZeros = themeManager.getOptions(\"negativesAsZeros\");\r\n series.forEach((function(s) {\r\n viewport.addRange(s.getArgumentRange())\r\n }));\r\n axis.getTranslator().updateBusinessRange(viewport);\r\n series.forEach((function(s) {\r\n s.createPoints()\r\n }));\r\n this._seriesFamilies = processSeriesFamilies(series, themeManager.getOptions(\"minBubbleSize\"), themeManager.getOptions(\"maxBubbleSize\"), {\r\n barGroupPadding: themeManager.getOptions(\"barGroupPadding\"),\r\n barGroupWidth: themeManager.getOptions(\"barGroupWidth\")\r\n }, isDefined(negativesAsZeroes) ? negativesAsZeroes : negativesAsZeros)\r\n },\r\n adjustSeriesDimensions: function() {\r\n each(this._seriesFamilies, (function(_, family) {\r\n family.adjustSeriesDimensions()\r\n }))\r\n },\r\n getBoundRange: function() {\r\n var rangeData;\r\n var valueAxis = this._valueAxis;\r\n var valRange = new Range({\r\n min: valueAxis.min,\r\n minVisible: valueAxis.min,\r\n max: valueAxis.max,\r\n maxVisible: valueAxis.max,\r\n axisType: valueAxis.type,\r\n base: valueAxis.logarithmBase\r\n });\r\n var argRange = new Range({});\r\n var rangeYSize;\r\n var rangeVisibleSizeY;\r\n var minIndent;\r\n var maxIndent;\r\n each(this._series, (function(_, series) {\r\n rangeData = series.getRangeData();\r\n valRange.addRange(rangeData.val);\r\n argRange.addRange(rangeData.arg)\r\n }));\r\n if (!valRange.isEmpty() && !argRange.isEmpty()) {\r\n minIndent = valueAxis.inverted ? this._indent.top : this._indent.bottom;\r\n maxIndent = valueAxis.inverted ? this._indent.bottom : this._indent.top;\r\n rangeYSize = valRange.max - valRange.min;\r\n rangeVisibleSizeY = (isNumeric(valRange.maxVisible) ? valRange.maxVisible : valRange.max) - (isNumeric(valRange.minVisible) ? valRange.minVisible : valRange.min);\r\n if (isDate(valRange.min)) {\r\n valRange.min = new Date(valRange.min.valueOf() - rangeYSize * minIndent)\r\n } else {\r\n valRange.min -= rangeYSize * minIndent\r\n }\r\n if (isDate(valRange.max)) {\r\n valRange.max = new Date(valRange.max.valueOf() + rangeYSize * maxIndent)\r\n } else {\r\n valRange.max += rangeYSize * maxIndent\r\n }\r\n if (isNumeric(rangeVisibleSizeY)) {\r\n valRange.maxVisible = valRange.maxVisible ? valRange.maxVisible + rangeVisibleSizeY * maxIndent : void 0;\r\n valRange.minVisible = valRange.minVisible ? valRange.minVisible - rangeVisibleSizeY * minIndent : void 0\r\n }\r\n valRange.invert = valueAxis.inverted\r\n }\r\n return {\r\n arg: argRange,\r\n val: valRange\r\n }\r\n },\r\n getMarginOptions: function(canvas) {\r\n var bubbleSize = Math.min(canvas.width, canvas.height) * this._themeManager.getOptions(\"maxBubbleSize\");\r\n return this._series.reduce((function(marginOptions, series) {\r\n var seriesOptions = series.getMarginOptions();\r\n if (true === seriesOptions.processBubbleSize) {\r\n seriesOptions.size = bubbleSize\r\n }\r\n return mergeMarginOptions(marginOptions, seriesOptions)\r\n }), {})\r\n },\r\n getSeries: function() {\r\n return this._series\r\n },\r\n isEmpty: function() {\r\n return 0 === this.getSeries().length\r\n },\r\n isShowChart: function() {\r\n return !this._hideChart\r\n },\r\n getCalculatedValueType: function() {\r\n var series = this._series[0];\r\n return null === series || void 0 === series ? void 0 : series.argumentType\r\n },\r\n getThemeManager: function() {\r\n return this._themeManager\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/range_selector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDefined as _isDefined,\r\n isNumeric as _isNumber,\r\n isDate as _isDate,\r\n type as _type,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n patchFontOptions,\r\n normalizeEnum as _normalizeEnum,\r\n getVizRangeObject as parseValue,\r\n convertVisualRangeObject,\r\n getCategoriesInfo,\r\n getLog,\r\n rangesAreEqual\r\n} from \"../core/utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n Axis\r\n} from \"../axes/base_axis\";\r\nimport {\r\n correctValueType,\r\n getParser\r\n} from \"../components/parse_utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n consts,\r\n formatValue,\r\n HEIGHT_COMPACT_MODE\r\n} from \"./common\";\r\nimport {\r\n SlidersController\r\n} from \"./sliders_controller\";\r\nimport {\r\n Tracker\r\n} from \"./tracker\";\r\nimport {\r\n RangeView\r\n} from \"./range_view\";\r\nimport {\r\n SeriesDataSource\r\n} from \"./series_data_source\";\r\nimport {\r\n tickGenerator\r\n} from \"../axes/tick_generator\";\r\nimport constants from \"../axes/axes_constants\";\r\nimport baseWidgetModule from \"../../__internal/viz/core/m_base_widget\";\r\nvar _max = Math.max;\r\nvar _ceil = Math.ceil;\r\nvar _floor = Math.floor;\r\nvar START_VALUE = \"startValue\";\r\nvar END_VALUE = \"endValue\";\r\nvar DATETIME = \"datetime\";\r\nvar VALUE = \"value\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar STRING = \"string\";\r\nvar VALUE_CHANGED = VALUE + \"Changed\";\r\nvar CONTAINER_BACKGROUND_COLOR = \"containerBackgroundColor\";\r\nvar SLIDER_MARKER = \"sliderMarker\";\r\nvar OPTION_BACKGROUND = \"background\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar KEEP = \"keep\";\r\nvar SHIFT = \"shift\";\r\nvar RESET = \"reset\";\r\nvar INVISIBLE_POS = -1e3;\r\nvar SEMIDISCRETE_GRID_SPACING_FACTOR = 50;\r\nvar DEFAULT_AXIS_DIVISION_FACTOR = 30;\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 15;\r\nvar logarithmBase = 10;\r\n\r\nfunction calculateMarkerHeight(renderer, value, sliderMarkerOptions) {\r\n var formattedText = void 0 === value ? consts.emptySliderMarkerText : formatValue(value, sliderMarkerOptions);\r\n var textBBox = getTextBBox(renderer, formattedText, sliderMarkerOptions.font);\r\n return _ceil(textBBox.height) + 2 * sliderMarkerOptions.paddingTopBottom + consts.pointerSize\r\n}\r\n\r\nfunction calculateScaleLabelHalfWidth(renderer, value, scaleOptions, tickIntervalsInfo) {\r\n var formattedText = formatValue(value, scaleOptions.label, tickIntervalsInfo, scaleOptions.valueType, scaleOptions.type, scaleOptions.logarithmBase);\r\n var textBBox = getTextBBox(renderer, formattedText, scaleOptions.label.font);\r\n return _ceil(textBBox.width / 2)\r\n}\r\n\r\nfunction calculateIndents(renderer, scale, sliderMarkerOptions, indentOptions, tickIntervalsInfo) {\r\n var leftMarkerHeight;\r\n var leftScaleLabelWidth = 0;\r\n var rightScaleLabelWidth = 0;\r\n var rightMarkerHeight;\r\n var placeholderWidthLeft;\r\n var placeholderWidthRight;\r\n var placeholderHeight;\r\n var ticks = \"semidiscrete\" === scale.type ? scale.customTicks : tickIntervalsInfo.ticks;\r\n var startTickValue;\r\n var endTickValue;\r\n indentOptions = indentOptions || {};\r\n placeholderWidthLeft = indentOptions.left;\r\n placeholderWidthRight = indentOptions.right;\r\n placeholderHeight = sliderMarkerOptions.placeholderHeight;\r\n if (sliderMarkerOptions.visible) {\r\n leftMarkerHeight = calculateMarkerHeight(renderer, scale.startValue, sliderMarkerOptions);\r\n rightMarkerHeight = calculateMarkerHeight(renderer, scale.endValue, sliderMarkerOptions);\r\n if (void 0 === placeholderHeight) {\r\n placeholderHeight = _max(leftMarkerHeight, rightMarkerHeight)\r\n }\r\n }\r\n if (scale.label.visible) {\r\n startTickValue = _isDefined(scale.startValue) ? ticks[0] : void 0;\r\n endTickValue = _isDefined(scale.endValue) ? ticks[ticks.length - 1] : void 0;\r\n leftScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, startTickValue, scale, tickIntervalsInfo);\r\n rightScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, endTickValue, scale, tickIntervalsInfo)\r\n }\r\n placeholderWidthLeft = void 0 !== placeholderWidthLeft ? placeholderWidthLeft : leftScaleLabelWidth;\r\n placeholderWidthRight = (void 0 !== placeholderWidthRight ? placeholderWidthRight : rightScaleLabelWidth) || 1;\r\n return {\r\n left: placeholderWidthLeft,\r\n right: placeholderWidthRight,\r\n top: placeholderHeight || 0,\r\n bottom: 0\r\n }\r\n}\r\n\r\nfunction calculateValueType(firstValue, secondValue) {\r\n var typeFirstValue = _type(firstValue);\r\n var typeSecondValue = _type(secondValue);\r\n var validType = function(type) {\r\n return typeFirstValue === type || typeSecondValue === type\r\n };\r\n return validType(\"date\") ? DATETIME : validType(\"number\") ? \"numeric\" : validType(STRING) ? STRING : \"\"\r\n}\r\n\r\nfunction showScaleMarkers(scaleOptions) {\r\n return scaleOptions.valueType === DATETIME && scaleOptions.marker.visible\r\n}\r\n\r\nfunction updateTranslatorRangeInterval(translatorRange, scaleOptions) {\r\n var intervalX = scaleOptions.minorTickInterval || scaleOptions.tickInterval;\r\n if (\"datetime\" === scaleOptions.valueType) {\r\n intervalX = dateUtils.dateToMilliseconds(intervalX)\r\n }\r\n translatorRange.addRange({\r\n interval: intervalX\r\n })\r\n}\r\n\r\nfunction checkLogarithmicOptions(options, defaultLogarithmBase, incidentOccurred) {\r\n if (!options) {\r\n return\r\n }\r\n var logarithmBase = options.logarithmBase;\r\n if (options.type === LOGARITHMIC && logarithmBase <= 0 || logarithmBase && !_isNumber(logarithmBase)) {\r\n options.logarithmBase = defaultLogarithmBase;\r\n incidentOccurred(\"E2104\")\r\n } else if (options.type !== LOGARITHMIC) {\r\n options.logarithmBase = void 0\r\n }\r\n}\r\n\r\nfunction calculateScaleAreaHeight(renderer, scaleOptions, visibleMarkers, tickIntervalsInfo) {\r\n var labelScaleOptions = scaleOptions.label;\r\n var markerScaleOptions = scaleOptions.marker;\r\n var placeholderHeight = scaleOptions.placeholderHeight;\r\n var ticks = \"semidiscrete\" === scaleOptions.type ? scaleOptions.customTicks : tickIntervalsInfo.ticks;\r\n var text = formatValue(ticks[0], labelScaleOptions);\r\n if (placeholderHeight) {\r\n return placeholderHeight\r\n } else {\r\n return (labelScaleOptions.visible ? labelScaleOptions.topIndent + getTextBBox(renderer, text, labelScaleOptions.font).height : 0) + (visibleMarkers ? markerScaleOptions.topIndent + markerScaleOptions.separatorHeight : 0)\r\n }\r\n}\r\n\r\nfunction getMinorTickIntervalUnit(tickInterval, minorTickInterval, withCorrection) {\r\n var interval = dateUtils.getDateUnitInterval(minorTickInterval);\r\n var majorUnit = dateUtils.getDateUnitInterval(tickInterval);\r\n var idx = dateUtils.dateUnitIntervals.indexOf(interval);\r\n if (withCorrection && interval === majorUnit && idx > 0) {\r\n interval = dateUtils.dateUnitIntervals[idx - 1]\r\n }\r\n return interval\r\n}\r\n\r\nfunction getNextTickInterval(tickInterval, minorTickInterval, isDateType) {\r\n if (!tickInterval) {\r\n tickInterval = minorTickInterval\r\n } else if (isDateType) {\r\n tickInterval = dateUtils.getNextDateUnit(tickInterval)\r\n } else {\r\n tickInterval += minorTickInterval\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta) {\r\n var minorTickInterval = scaleOptions.minorTickInterval;\r\n var tickInterval = scaleOptions.tickInterval;\r\n var interval;\r\n var isDateType = \"datetime\" === scaleOptions.valueType;\r\n var gridSpacingFactor = scaleOptions.axisDivisionFactor || {};\r\n var tickCountByInterval;\r\n var tickCountByScreen;\r\n if (!tickInterval) {\r\n do {\r\n interval = getNextTickInterval(tickInterval, minorTickInterval, isDateType);\r\n if (tickInterval !== interval) {\r\n tickInterval = interval\r\n } else {\r\n break\r\n }\r\n if (isDateType) {\r\n interval = dateUtils.dateToMilliseconds(tickInterval)\r\n }\r\n tickCountByInterval = _ceil((max - min) / interval);\r\n tickCountByScreen = _floor(screenDelta / (gridSpacingFactor[tickInterval] || SEMIDISCRETE_GRID_SPACING_FACTOR)) || 1\r\n } while (interval && tickCountByInterval > tickCountByScreen)\r\n }\r\n return {\r\n tickInterval: tickInterval,\r\n minorTickInterval: minorTickInterval,\r\n bounds: {\r\n minVisible: min,\r\n maxVisible: max\r\n },\r\n ticks: []\r\n }\r\n}\r\n\r\nfunction updateTickIntervals(scaleOptions, screenDelta, incidentOccurred, range) {\r\n var result;\r\n var min = _isDefined(range.minVisible) ? range.minVisible : range.min;\r\n var max = _isDefined(range.maxVisible) ? range.maxVisible : range.max;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var ticksInfo;\r\n var length;\r\n var bounds = {};\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n result = calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta)\r\n } else {\r\n ticksInfo = tickGenerator({\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType,\r\n logBase: scaleOptions.logarithmBase,\r\n allowNegatives: true,\r\n linearThreshold: Math.abs(scaleOptions.linearThreshold || 0),\r\n axisDivisionFactor: scaleOptions.axisDivisionFactor,\r\n minorAxisDivisionFactor: scaleOptions.minorAxisDivisionFactor,\r\n calculateMinors: true,\r\n allowDecimals: scaleOptions.allowDecimals,\r\n endOnTick: scaleOptions.endOnTick,\r\n incidentOccurred: incidentOccurred,\r\n rangeIsEmpty: range.isEmpty()\r\n })({\r\n min: min,\r\n max: max,\r\n categories: _isDefined(categoriesInfo) ? categoriesInfo.categories : []\r\n }, screenDelta, scaleOptions.tickInterval, scaleOptions.forceUserTickInterval, void 0, scaleOptions.minorTickInterval, scaleOptions.minorTickCount);\r\n length = ticksInfo.ticks.length;\r\n bounds.minVisible = ticksInfo.ticks[0] < min ? ticksInfo.ticks[0] : min;\r\n bounds.maxVisible = ticksInfo.ticks[length - 1] > max ? ticksInfo.ticks[length - 1] : max;\r\n result = {\r\n tickInterval: ticksInfo.tickInterval,\r\n minorTickInterval: 0 === scaleOptions.minorTickInterval ? 0 : ticksInfo.minorTickInterval,\r\n bounds: bounds,\r\n ticks: ticksInfo.ticks\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getFirstDayOfWeek(options) {\r\n var _options$workWeek;\r\n return null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0]\r\n}\r\n\r\nfunction calculateTranslatorRange(seriesDataSource, scaleOptions) {\r\n var minValue;\r\n var maxValue;\r\n var inverted = false;\r\n var startValue = scaleOptions.startValue;\r\n var endValue = scaleOptions.endValue;\r\n var categories;\r\n var categoriesInfo;\r\n var translatorRange = seriesDataSource ? seriesDataSource.getBoundRange().arg : new Range;\r\n var rangeForCategories;\r\n var isDate = \"datetime\" === scaleOptions.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(scaleOptions);\r\n var minRange = scaleOptions.minRange;\r\n if (scaleOptions.type === DISCRETE) {\r\n rangeForCategories = new Range({\r\n minVisible: startValue,\r\n maxVisible: endValue\r\n });\r\n rangeForCategories.addRange(translatorRange);\r\n translatorRange = rangeForCategories;\r\n categories = seriesDataSource ? seriesDataSource.argCategories : scaleOptions.categories || startValue && endValue && [startValue, endValue];\r\n categories = categories || [];\r\n scaleOptions._categoriesInfo = categoriesInfo = getCategoriesInfo(categories, startValue, endValue)\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n startValue = scaleOptions.startValue = correctValueByInterval(scaleOptions.startValue, isDate, minRange, firstDayOfWeek);\r\n endValue = scaleOptions.endValue = correctValueByInterval(scaleOptions.endValue, isDate, minRange, firstDayOfWeek);\r\n translatorRange.minVisible = correctValueByInterval(translatorRange.minVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.maxVisible = correctValueByInterval(translatorRange.maxVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.min = correctValueByInterval(translatorRange.min, isDate, minRange, firstDayOfWeek);\r\n translatorRange.max = correctValueByInterval(translatorRange.max, isDate, minRange, firstDayOfWeek)\r\n }\r\n if (_isDefined(startValue) && _isDefined(endValue)) {\r\n inverted = categoriesInfo ? categoriesInfo.inverted : startValue > endValue;\r\n minValue = categoriesInfo ? categoriesInfo.start : inverted ? endValue : startValue;\r\n maxValue = categoriesInfo ? categoriesInfo.end : inverted ? startValue : endValue\r\n } else if (_isDefined(startValue) || _isDefined(endValue)) {\r\n minValue = startValue;\r\n maxValue = endValue\r\n } else if (categoriesInfo) {\r\n minValue = categoriesInfo.start;\r\n maxValue = categoriesInfo.end\r\n }\r\n translatorRange.addRange({\r\n invert: inverted,\r\n min: minValue,\r\n max: maxValue,\r\n minVisible: minValue,\r\n maxVisible: maxValue,\r\n dataType: scaleOptions.valueType\r\n });\r\n translatorRange.addRange({\r\n categories: !seriesDataSource ? categories : void 0,\r\n base: scaleOptions.logarithmBase,\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType\r\n });\r\n seriesDataSource && translatorRange.sortCategories(categories);\r\n return translatorRange\r\n}\r\n\r\nfunction startEndNotDefined(start, end) {\r\n return !_isDefined(start) || !_isDefined(end)\r\n}\r\n\r\nfunction getTextBBox(renderer, text, fontOptions) {\r\n var textElement = renderer.text(text, INVISIBLE_POS, INVISIBLE_POS).css(patchFontOptions(fontOptions)).append(renderer.root);\r\n var textBBox = textElement.getBBox();\r\n textElement.remove();\r\n return textBBox\r\n}\r\n\r\nfunction getDateMarkerVisibilityChecker(screenDelta) {\r\n return function(isDateScale, isMarkerVisible, min, max, tickInterval) {\r\n if (isMarkerVisible && isDateScale) {\r\n if (!_isDefined(tickInterval) || tickInterval.years || tickInterval.months >= 6 || screenDelta / SEMIDISCRETE_GRID_SPACING_FACTOR < _ceil((max - min) / dateUtils.dateToMilliseconds(\"year\")) + 1) {\r\n isMarkerVisible = false\r\n }\r\n }\r\n return isMarkerVisible\r\n }\r\n}\r\n\r\nfunction updateScaleOptions(scaleOptions, seriesDataSource, translatorRange, tickIntervalsInfo, checkDateMarkerVisibility) {\r\n var bounds;\r\n var isEmptyInterval;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var intervals;\r\n var isDateTime = scaleOptions.valueType === DATETIME;\r\n if (seriesDataSource && !seriesDataSource.isEmpty() && !translatorRange.isEmpty()) {\r\n bounds = tickIntervalsInfo.bounds;\r\n translatorRange.addRange(bounds);\r\n scaleOptions.startValue = translatorRange.invert ? bounds.maxVisible : bounds.minVisible;\r\n scaleOptions.endValue = translatorRange.invert ? bounds.minVisible : bounds.maxVisible\r\n }\r\n scaleOptions.marker.visible = checkDateMarkerVisibility(isDateTime && -1 === scaleOptions.type.indexOf(DISCRETE), scaleOptions.marker.visible, scaleOptions.startValue, scaleOptions.endValue, tickIntervalsInfo.tickInterval);\r\n if (categoriesInfo) {\r\n scaleOptions.startValue = categoriesInfo.start;\r\n scaleOptions.endValue = categoriesInfo.end\r\n }\r\n if (-1 === scaleOptions.type.indexOf(DISCRETE)) {\r\n isEmptyInterval = _isDate(scaleOptions.startValue) && _isDate(scaleOptions.endValue) && scaleOptions.startValue.getTime() === scaleOptions.endValue.getTime() || scaleOptions.startValue === scaleOptions.endValue\r\n }\r\n scaleOptions.isEmpty = startEndNotDefined(scaleOptions.startValue, scaleOptions.endValue) || isEmptyInterval;\r\n if (scaleOptions.isEmpty) {\r\n scaleOptions.startValue = scaleOptions.endValue = void 0\r\n } else {\r\n scaleOptions.minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n scaleOptions.tickInterval = tickIntervalsInfo.tickInterval;\r\n if (isDateTime && (!_isDefined(scaleOptions.label.format) || scaleOptions.type === SEMIDISCRETE && scaleOptions.minorTickInterval !== scaleOptions.tickInterval)) {\r\n if (scaleOptions.type === DISCRETE) {\r\n scaleOptions.label.format = formatHelper.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n } else if (!scaleOptions.marker.visible) {\r\n scaleOptions.label.format = formatHelper.getDateFormatByTickInterval(scaleOptions.startValue, scaleOptions.endValue, scaleOptions.tickInterval)\r\n } else {\r\n scaleOptions.label.format = dateUtils.getDateFormatByTickInterval(scaleOptions.tickInterval)\r\n }\r\n }\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n intervals = getIntervalCustomTicks(scaleOptions);\r\n scaleOptions.customMinorTicks = intervals.altIntervals;\r\n scaleOptions.customTicks = intervals.intervals;\r\n scaleOptions.customBoundTicks = [scaleOptions.customTicks[0]]\r\n }\r\n}\r\n\r\nfunction prepareScaleOptions(scaleOption, calculatedValueType, incidentOccurred, containerColor) {\r\n var parsedValue = 0;\r\n var valueType = correctValueType(_normalizeEnum(scaleOption.valueType));\r\n var validateStartEndValues = function(field, parser) {\r\n var messageToIncidentOccurred = field === START_VALUE ? \"start\" : \"end\";\r\n if (_isDefined(scaleOption[field])) {\r\n parsedValue = parser(scaleOption[field]);\r\n if (_isDefined(parsedValue)) {\r\n scaleOption[field] = parsedValue\r\n } else {\r\n scaleOption[field] = void 0;\r\n incidentOccurred(\"E2202\", [messageToIncidentOccurred])\r\n }\r\n }\r\n };\r\n valueType = calculatedValueType || valueType;\r\n if (!valueType) {\r\n valueType = calculateValueType(scaleOption.startValue, scaleOption.endValue) || \"numeric\"\r\n }\r\n if (valueType === STRING || scaleOption.categories) {\r\n scaleOption.type = DISCRETE;\r\n valueType = STRING\r\n }\r\n scaleOption.containerColor = containerColor;\r\n scaleOption.valueType = valueType;\r\n scaleOption.dataType = valueType;\r\n var parser = getParser(valueType);\r\n validateStartEndValues(START_VALUE, parser);\r\n validateStartEndValues(END_VALUE, parser);\r\n checkLogarithmicOptions(scaleOption, logarithmBase, incidentOccurred);\r\n if (!scaleOption.type) {\r\n scaleOption.type = \"continuous\"\r\n }\r\n scaleOption.parser = parser;\r\n if (scaleOption.type === SEMIDISCRETE) {\r\n scaleOption.minorTick.visible = false;\r\n scaleOption.minorTickInterval = scaleOption.minRange;\r\n scaleOption.marker.visible = false;\r\n scaleOption.maxRange = void 0\r\n }\r\n scaleOption.forceUserTickInterval |= _isDefined(scaleOption.tickInterval) && !_isDefined(scaleOption.axisDivisionFactor);\r\n scaleOption.axisDivisionFactor = _isDefined(scaleOption.axisDivisionFactor) ? scaleOption.axisDivisionFactor : DEFAULT_AXIS_DIVISION_FACTOR;\r\n scaleOption.minorAxisDivisionFactor = _isDefined(scaleOption.minorAxisDivisionFactor) ? scaleOption.minorAxisDivisionFactor : DEFAULT_MINOR_AXIS_DIVISION_FACTOR;\r\n return scaleOption\r\n}\r\n\r\nfunction correctValueByInterval(value, isDate, interval, firstDayOfWeek) {\r\n if (_isDefined(value)) {\r\n value = isDate ? dateUtils.correctDateWithUnitBeginning(new Date(value), interval, null, firstDayOfWeek) : adjust(_floor(adjust(value / interval)) * interval)\r\n }\r\n return value\r\n}\r\n\r\nfunction getIntervalCustomTicks(options) {\r\n var min = options.startValue;\r\n var max = options.endValue;\r\n var isDate = \"datetime\" === options.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(options);\r\n var tickInterval = options.tickInterval;\r\n var res = {\r\n intervals: []\r\n };\r\n if (!_isDefined(min) || !_isDefined(max)) {\r\n return res\r\n }\r\n res.intervals = dateUtils.getSequenceByInterval(min, max, options.minorTickInterval);\r\n if (tickInterval !== options.minorTickInterval) {\r\n res.altIntervals = res.intervals;\r\n min = correctValueByInterval(min, isDate, tickInterval, firstDayOfWeek);\r\n max = correctValueByInterval(max, isDate, tickInterval, firstDayOfWeek);\r\n res.intervals = dateUtils.getSequenceByInterval(min, max, tickInterval);\r\n res.intervals[0] = res.altIntervals[0]\r\n }\r\n return res\r\n}\r\n\r\nfunction getPrecisionForSlider(startValue, endValue, screenDelta) {\r\n var d = Math.abs(endValue - startValue) / screenDelta;\r\n var tail = d - _floor(d);\r\n return tail > 0 ? _ceil(Math.abs(adjust(getLog(tail, 10)))) : 0\r\n}\r\nvar dxRangeSelector = baseWidgetModule.inherit({\r\n _toggleParentsScrollSubscription() {},\r\n _eventsMap: {\r\n onValueChanged: {\r\n name: VALUE_CHANGED\r\n }\r\n },\r\n _rootClassPrefix: \"dxrs\",\r\n _rootClass: \"dxrs-range-selector\",\r\n _dataIsReady: function() {\r\n return this._dataIsLoaded()\r\n },\r\n _initialChanges: [\"DATA_SOURCE\", \"VALUE\"],\r\n _themeDependentChanges: [\"MOSTLY_TOTAL\"],\r\n _themeSection: \"rangeSelector\",\r\n _fontFields: [\"scale.label.font\", \"sliderMarker.font\"],\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n \"behavior.callValueChanged\": {\r\n since: \"23.1\",\r\n message: 'Use the \"behavior.valueChangeMode\" property instead'\r\n },\r\n \"scale.aggregateByCategory\": {\r\n since: \"23.1\",\r\n message: \"Use the aggregation.enabled property\"\r\n }\r\n })\r\n },\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var root = renderer.root;\r\n root.css({\r\n \"touch-action\": \"pan-y\"\r\n });\r\n that._clipRect = renderer.clipRect();\r\n var rangeViewGroup = renderer.g().attr({\r\n class: \"dxrs-view\"\r\n }).append(root);\r\n var slidersGroup = renderer.g().attr({\r\n class: \"dxrs-slidersContainer\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleGroup = renderer.g().attr({\r\n class: \"dxrs-scale\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var labelsAxesGroup = renderer.g().attr({\r\n class: \"dxrs-scale-elements\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleBreaksGroup = renderer.g().attr({\r\n class: \"dxrs-scale-breaks\"\r\n }).append(root);\r\n var trackersGroup = renderer.g().attr({\r\n class: \"dxrs-trackers\"\r\n }).append(root);\r\n that._axis = new AxisWrapper({\r\n renderer: renderer,\r\n root: scaleGroup,\r\n scaleBreaksGroup: scaleBreaksGroup,\r\n labelsAxesGroup: labelsAxesGroup,\r\n updateSelectedRange: function(range, e) {\r\n that.setValue(convertVisualRangeObject(range), e)\r\n },\r\n incidentOccurred: that._incidentOccurred\r\n });\r\n that._rangeView = new RangeView({\r\n renderer: renderer,\r\n root: rangeViewGroup,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._slidersController = new SlidersController({\r\n renderer: renderer,\r\n root: slidersGroup,\r\n trackersGroup: trackersGroup,\r\n updateSelectedRange: function(range, lastSelectedRange, e) {\r\n if (!that._rangeOption) {\r\n that.option(VALUE, convertVisualRangeObject(range, isPlainObject(that._options.silent(VALUE))))\r\n }\r\n that._eventTrigger(VALUE_CHANGED, {\r\n value: convertVisualRangeObject(range),\r\n previousValue: convertVisualRangeObject(lastSelectedRange),\r\n event: e\r\n })\r\n },\r\n axis: that._axis,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._tracker = new Tracker({\r\n renderer: renderer,\r\n controller: that._slidersController\r\n })\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 160\r\n }\r\n },\r\n _disposeCore: function() {\r\n this._axis.dispose();\r\n this._slidersController.dispose();\r\n this._tracker.dispose()\r\n },\r\n _applySize: function(rect) {\r\n this._clientRect = rect.slice();\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _optionChangesMap: {\r\n scale: \"SCALE\",\r\n value: \"VALUE\",\r\n dataSource: \"DATA_SOURCE\"\r\n },\r\n _optionChangesOrder: [\"SCALE\", \"DATA_SOURCE\"],\r\n _change_SCALE: function() {\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _setValueByDataSource() {\r\n var options = this._options.silent();\r\n var axis = this._axis;\r\n if (options.dataSource) {\r\n var selectedRangeUpdateMode = this.option(\"selectedRangeUpdateMode\");\r\n var value = this.getValue();\r\n var valueIsReady = _isDefined(value[0]) && _isDefined(value[1]);\r\n if (_isDefined(selectedRangeUpdateMode)) {\r\n selectedRangeUpdateMode = _normalizeEnum(selectedRangeUpdateMode);\r\n this.__skipAnimation = true\r\n } else if (valueIsReady && !this._dataSourceIsAsync) {\r\n selectedRangeUpdateMode = RESET\r\n }\r\n if (\"auto\" === selectedRangeUpdateMode && valueIsReady) {\r\n var rangesInfo = axis.allScaleSelected(value);\r\n if (rangesInfo.startValue && rangesInfo.endValue) {\r\n selectedRangeUpdateMode = RESET\r\n } else if (rangesInfo.endValue) {\r\n selectedRangeUpdateMode = SHIFT\r\n } else {\r\n selectedRangeUpdateMode = KEEP\r\n }\r\n }\r\n if (selectedRangeUpdateMode === RESET) {\r\n options[VALUE] = null\r\n } else if (selectedRangeUpdateMode === SHIFT && valueIsReady) {\r\n var _value = this.getValue();\r\n this.__skipAnimation = true;\r\n options[VALUE] = {\r\n length: axis.getVisualRangeLength({\r\n minVisible: _value[0],\r\n maxVisible: _value[1]\r\n })\r\n }\r\n } else if (selectedRangeUpdateMode === KEEP) {\r\n this.__skipAnimation = true\r\n }\r\n }\r\n this._dataSourceIsAsync = void 0\r\n },\r\n _change_DATA_SOURCE: function() {\r\n if (this._options.silent(\"dataSource\")) {\r\n this._updateDataSource()\r\n }\r\n },\r\n _customChangesOrder: [\"MOSTLY_TOTAL\", \"VALUE\", \"SLIDER_SELECTION\"],\r\n _change_MOSTLY_TOTAL: function() {\r\n this._applyMostlyTotalChange()\r\n },\r\n _change_SLIDER_SELECTION: function() {\r\n var value = this._options.silent(VALUE);\r\n this._slidersController.setSelectedRange(value && parseValue(value))\r\n },\r\n _change_VALUE: function() {\r\n var option = this._rangeOption;\r\n this._dataSourceIsAsync = !this._dataIsReady();\r\n if (option) {\r\n this._options.silent(VALUE, option);\r\n this.setValue(option)\r\n }\r\n },\r\n _validateRange: function(start, end) {\r\n var ensureValueInvalid = value => _isDefined(value) && !this._axis.getTranslator().isValid(value);\r\n if (this._dataIsReady() && (ensureValueInvalid(start) || ensureValueInvalid(end))) {\r\n this._incidentOccurred(\"E2203\")\r\n }\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n var value = that._options.silent(VALUE);\r\n if (that._changes.has(\"VALUE\") && value) {\r\n that._rangeOption = value\r\n }\r\n that.callBase.apply(that, arguments);\r\n that._rangeOption = null;\r\n that.__isResizing = that.__skipAnimation = false\r\n },\r\n _applyMostlyTotalChange: function() {\r\n var renderer = this._renderer;\r\n var rect = this._clientRect;\r\n var currentAnimationEnabled;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n if (this.__isResizing || this.__skipAnimation) {\r\n currentAnimationEnabled = renderer.animationEnabled();\r\n renderer.updateAnimationOptions({\r\n enabled: false\r\n })\r\n }\r\n this._clipRect.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n this._axis.getTranslator().update(new Range, canvas, {\r\n isHorizontal: true\r\n });\r\n this._updateContent({\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n if (this.__isResizing || this.__skipAnimation) {\r\n renderer.updateAnimationOptions({\r\n enabled: currentAnimationEnabled\r\n })\r\n }\r\n this._drawn()\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._setValueByDataSource();\r\n this._requestChange([\"MOSTLY_TOTAL\"])\r\n },\r\n _completeSeriesDataSourceCreation(scaleOptions, seriesDataSource) {\r\n var rect = this._clientRect;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n this._axis.updateOptions(extend({}, scaleOptions, {\r\n isHorizontal: true,\r\n label: {}\r\n }));\r\n seriesDataSource.isShowChart() && this._axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas));\r\n this._axis.updateCanvas(canvas);\r\n seriesDataSource.createPoints()\r\n },\r\n _updateContent: function(canvas) {\r\n var chartOptions = this.option(\"chart\");\r\n var seriesDataSource = this._createSeriesDataSource(chartOptions);\r\n var isCompactMode = !(seriesDataSource && seriesDataSource.isShowChart() || this.option(\"background.image.url\"));\r\n var scaleOptions = prepareScaleOptions(this._getOption(\"scale\"), seriesDataSource && seriesDataSource.getCalculatedValueType(), this._incidentOccurred, this._getOption(\"containerBackgroundColor\", true));\r\n seriesDataSource && this._completeSeriesDataSourceCreation(scaleOptions, seriesDataSource);\r\n var argTranslatorRange = calculateTranslatorRange(seriesDataSource, scaleOptions);\r\n var tickIntervalsInfo = updateTickIntervals(scaleOptions, canvas.width, this._incidentOccurred, argTranslatorRange);\r\n var chartThemeManager = seriesDataSource && seriesDataSource.isShowChart() && seriesDataSource.getThemeManager();\r\n if (chartThemeManager) {\r\n checkLogarithmicOptions(chartOptions && chartOptions.valueAxis, chartThemeManager.getOptions(\"valueAxis\").logarithmBase, this._incidentOccurred)\r\n }\r\n updateScaleOptions(scaleOptions, seriesDataSource, argTranslatorRange, tickIntervalsInfo, getDateMarkerVisibilityChecker(canvas.width));\r\n updateTranslatorRangeInterval(argTranslatorRange, scaleOptions);\r\n var sliderMarkerOptions = this._prepareSliderMarkersOptions(scaleOptions, canvas.width, tickIntervalsInfo, argTranslatorRange);\r\n var indents = calculateIndents(this._renderer, scaleOptions, sliderMarkerOptions, this.option(\"indent\"), tickIntervalsInfo);\r\n var rangeContainerCanvas = {\r\n left: canvas.left + indents.left,\r\n top: canvas.top + indents.top,\r\n width: canvas.left + indents.left + _max(canvas.width - indents.left - indents.right, 1),\r\n height: _max(!isCompactMode ? canvas.height - indents.top - indents.bottom - calculateScaleAreaHeight(this._renderer, scaleOptions, showScaleMarkers(scaleOptions), tickIntervalsInfo) : HEIGHT_COMPACT_MODE, 0),\r\n right: 0,\r\n bottom: 0\r\n };\r\n this._axis.update(scaleOptions, isCompactMode, rangeContainerCanvas, argTranslatorRange, seriesDataSource);\r\n scaleOptions.minorTickInterval = scaleOptions.isEmpty ? 0 : scaleOptions.minorTickInterval;\r\n this._updateElements(scaleOptions, sliderMarkerOptions, isCompactMode, rangeContainerCanvas, seriesDataSource);\r\n if (chartThemeManager) {\r\n chartThemeManager.dispose()\r\n }\r\n },\r\n _updateElements: function(scaleOptions, sliderMarkerOptions, isCompactMode, canvas, seriesDataSource) {\r\n var behavior = this._getOption(\"behavior\");\r\n var shutterOptions = this._getOption(\"shutter\");\r\n var isNotSemiDiscrete = scaleOptions.type !== SEMIDISCRETE;\r\n shutterOptions.color = shutterOptions.color || this._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n this._rangeView.update(this.option(\"background\"), this._themeManager.theme(\"background\"), canvas, isCompactMode, behavior.animationEnabled && this._renderer.animationEnabled(), seriesDataSource);\r\n this._isUpdating = true;\r\n this._slidersController.update([canvas.top, canvas.top + canvas.height], behavior, isCompactMode, this._getOption(\"sliderHandle\"), sliderMarkerOptions, shutterOptions, {\r\n minRange: isNotSemiDiscrete ? this.option(\"scale.minRange\") : void 0,\r\n maxRange: isNotSemiDiscrete ? this.option(\"scale.maxRange\") : void 0\r\n }, this._axis.getFullTicks(), this._getOption(\"selectedRangeColor\", true));\r\n this._requestChange([\"SLIDER_SELECTION\"]);\r\n this._isUpdating = false;\r\n this._tracker.update(!this._axis.getTranslator().getBusinessRange().isEmpty(), behavior)\r\n },\r\n _createSeriesDataSource: function(chartOptions) {\r\n var seriesDataSource;\r\n var dataSource = this._dataSourceItems();\r\n var scaleOptions = this._getOption(\"scale\");\r\n var valueType = scaleOptions.valueType || calculateValueType(scaleOptions.startValue, scaleOptions.endValue);\r\n var valueAxis = new Axis({\r\n renderer: this._renderer,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n });\r\n valueAxis.updateOptions({\r\n isHorizontal: false,\r\n label: {},\r\n categoriesSortingMethod: this._getOption(\"chart\").valueAxis.categoriesSortingMethod\r\n });\r\n if (dataSource || chartOptions && chartOptions.series) {\r\n chartOptions = extend({}, chartOptions, {\r\n theme: this.option(\"theme\")\r\n });\r\n seriesDataSource = new SeriesDataSource({\r\n renderer: this._renderer,\r\n dataSource: dataSource,\r\n valueType: _normalizeEnum(valueType),\r\n axisType: scaleOptions.type,\r\n chart: chartOptions,\r\n dataSourceField: this.option(\"dataSourceField\"),\r\n incidentOccurred: this._incidentOccurred,\r\n categories: scaleOptions.categories,\r\n argumentAxis: this._axis,\r\n valueAxis: valueAxis\r\n })\r\n }\r\n return seriesDataSource\r\n },\r\n _prepareSliderMarkersOptions: function(scaleOptions, screenDelta, tickIntervalsInfo, argRange) {\r\n var minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n var tickInterval = tickIntervalsInfo.tickInterval;\r\n var interval = tickInterval;\r\n var endValue = scaleOptions.endValue;\r\n var startValue = scaleOptions.startValue;\r\n var sliderMarkerOptions = this._getOption(SLIDER_MARKER);\r\n var doNotSnap = !this._getOption(\"behavior\").snapToTicks;\r\n var isTypeDiscrete = scaleOptions.type === DISCRETE;\r\n var isValueTypeDatetime = scaleOptions.valueType === DATETIME;\r\n sliderMarkerOptions.borderColor = this._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n if (!sliderMarkerOptions.format && !argRange.isEmpty()) {\r\n if (doNotSnap && _isNumber(scaleOptions.startValue)) {\r\n sliderMarkerOptions.format = {\r\n type: \"fixedPoint\",\r\n precision: getPrecisionForSlider(startValue, endValue, screenDelta)\r\n }\r\n }\r\n if (isValueTypeDatetime && !isTypeDiscrete) {\r\n if (_isDefined(minorTickInterval) && 0 !== minorTickInterval) {\r\n interval = getMinorTickIntervalUnit(tickInterval, minorTickInterval, doNotSnap)\r\n }\r\n if (!scaleOptions.marker.visible) {\r\n if (_isDefined(startValue) && _isDefined(endValue)) {\r\n sliderMarkerOptions.format = formatHelper.getDateFormatByTickInterval(startValue, endValue, interval)\r\n }\r\n } else {\r\n sliderMarkerOptions.format = dateUtils.getDateFormatByTickInterval(interval)\r\n }\r\n }\r\n if (isValueTypeDatetime && isTypeDiscrete && tickIntervalsInfo.ticks.length) {\r\n sliderMarkerOptions.format = formatHelper.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n }\r\n }\r\n return sliderMarkerOptions\r\n },\r\n getValue: function() {\r\n return convertVisualRangeObject(this._slidersController.getSelectedRange())\r\n },\r\n setValue: function(value, e) {\r\n var visualRange = parseValue(value);\r\n if (!this._isUpdating && value) {\r\n this._validateRange(visualRange.startValue, visualRange.endValue);\r\n !rangesAreEqual(visualRange, this._slidersController.getSelectedRange()) && this._slidersController.setSelectedRange(visualRange, e)\r\n }\r\n },\r\n _setContentSize: function() {\r\n this.__isResizing = 2 === this._changes.count();\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\neach([\"selectedRangeColor\", \"containerBackgroundColor\", \"sliderMarker\", \"sliderHandle\", \"shutter\", OPTION_BACKGROUND, \"behavior\", \"chart\", \"indent\"], (function(_, name) {\r\n dxRangeSelector.prototype._optionChangesMap[name] = \"MOSTLY_TOTAL\"\r\n}));\r\n\r\nfunction prepareAxisOptions(scaleOptions, isCompactMode, height, axisPosition) {\r\n scaleOptions.marker.label.font = scaleOptions.label.font;\r\n scaleOptions.color = scaleOptions.marker.color = scaleOptions.tick.color;\r\n scaleOptions.opacity = scaleOptions.marker.opacity = scaleOptions.tick.opacity;\r\n scaleOptions.width = scaleOptions.marker.width = scaleOptions.tick.width;\r\n scaleOptions.placeholderSize = (scaleOptions.placeholderHeight || 0) + axisPosition;\r\n scaleOptions.argumentType = scaleOptions.valueType;\r\n scaleOptions.visible = isCompactMode;\r\n scaleOptions.isHorizontal = true;\r\n scaleOptions.calculateMinors = true;\r\n scaleOptions.semiDiscreteInterval = scaleOptions.minRange;\r\n if (!isCompactMode) {\r\n scaleOptions.minorTick.length = scaleOptions.tick.length = height\r\n }\r\n scaleOptions.label.indentFromAxis = scaleOptions.label.topIndent + axisPosition;\r\n return scaleOptions\r\n}\r\n\r\nfunction createDateMarkersEvent(scaleOptions, markerTrackers, setSelectedRange) {\r\n each(markerTrackers, (function(_, value) {\r\n value.on(\"dxpointerdown\", onPointerDown)\r\n }));\r\n\r\n function onPointerDown(e) {\r\n var range = e.target.range;\r\n var minRange = scaleOptions.minRange ? dateUtils.addInterval(range.startValue, scaleOptions.minRange) : void 0;\r\n var maxRange = scaleOptions.maxRange ? dateUtils.addInterval(range.startValue, scaleOptions.maxRange) : void 0;\r\n if (!(minRange && minRange > range.endValue || maxRange && maxRange < range.endValue)) {\r\n setSelectedRange(range, e)\r\n }\r\n }\r\n}\r\n\r\nfunction getSharpDirection() {\r\n return 1\r\n}\r\n\r\nfunction getTickStartPositionShift(length) {\r\n return length % 2 === 1 ? -_floor(length / 2) : -length / 2\r\n}\r\n\r\nfunction checkShiftedLabels(majorTicks, boxes, minSpacing, alignment) {\r\n function checkLabelsOverlapping(nearestLabelsIndexes) {\r\n if (2 === nearestLabelsIndexes.length && constants.areLabelsOverlap(boxes[nearestLabelsIndexes[0]], boxes[nearestLabelsIndexes[1]], minSpacing, alignment)) {\r\n majorTicks[nearestLabelsIndexes[0]].removeLabel()\r\n }\r\n }\r\n\r\n function getTwoVisibleLabels(startIndex) {\r\n var labels = [];\r\n for (var i = startIndex; labels.length < 2 && i < majorTicks.length; i++) {\r\n majorTicks[i].label && labels.push(i)\r\n }\r\n return labels\r\n }\r\n if (majorTicks.length < 3) {\r\n return\r\n }\r\n checkLabelsOverlapping(getTwoVisibleLabels(0));\r\n checkLabelsOverlapping(getTwoVisibleLabels(majorTicks.length - 2).reverse())\r\n}\r\n\r\nfunction AxisWrapper(params) {\r\n this._axis = new Axis({\r\n renderer: params.renderer,\r\n axesContainerGroup: params.root,\r\n scaleBreaksGroup: params.scaleBreaksGroup,\r\n labelsAxesGroup: params.labelsAxesGroup,\r\n incidentOccurred: params.incidentOccurred,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\",\r\n widgetClass: \"dxrs\",\r\n axisClass: \"range-selector\",\r\n isArgumentAxis: true,\r\n getTemplate() {}\r\n });\r\n this._updateSelectedRangeCallback = params.updateSelectedRange;\r\n this._axis.getAxisSharpDirection = this._axis.getSharpDirectionByCoords = getSharpDirection;\r\n this._axis.getTickStartPositionShift = getTickStartPositionShift;\r\n this._axis._checkShiftedLabels = checkShiftedLabels\r\n}\r\nAxisWrapper.prototype = {\r\n constructor: AxisWrapper,\r\n update: function(options, isCompactMode, canvas, businessRange, seriesDataSource) {\r\n var axis = this._axis;\r\n axis.updateOptions(prepareAxisOptions(options, isCompactMode, canvas.height, canvas.height / 2 - _ceil(options.width / 2)));\r\n axis.validate();\r\n axis.setBusinessRange(businessRange, true);\r\n if (void 0 !== seriesDataSource && seriesDataSource.isShowChart()) {\r\n axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas))\r\n }\r\n axis.draw(canvas);\r\n axis.shift({\r\n left: 0,\r\n bottom: -canvas.height / 2 + canvas.top\r\n });\r\n if (axis.getMarkerTrackers()) {\r\n createDateMarkersEvent(options, axis.getMarkerTrackers(), this._updateSelectedRangeCallback)\r\n }\r\n axis.drawScaleBreaks({\r\n start: canvas.top,\r\n end: canvas.top + canvas.height\r\n })\r\n },\r\n visualRange: function() {},\r\n getViewport: function() {\r\n return {}\r\n },\r\n allScaleSelected(value) {\r\n var {\r\n startValue: startValue,\r\n endValue: endValue\r\n } = this._axis.visualRange();\r\n return {\r\n startValue: value[0].valueOf() === startValue.valueOf(),\r\n endValue: value[1].valueOf() === endValue.valueOf()\r\n }\r\n },\r\n getOptions() {\r\n return this._axis.getOptions() || {}\r\n }\r\n};\r\neach(Axis.prototype, field => {\r\n if (\"constructor\" !== field && \"_\" !== field[0] && isFunction(Axis.prototype[field]) && !(field in AxisWrapper.prototype)) {\r\n AxisWrapper.prototype[field] = function() {\r\n var axis = this._axis;\r\n return axis[field].apply(axis, arguments)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRangeSelector\", dxRangeSelector);\r\nexport default dxRangeSelector;\r\nimport {\r\n plugin as exportPlugin\r\n} from \"../core/export\";\r\nimport {\r\n plugin as titlePlugin\r\n} from \"../core/title\";\r\nimport {\r\n plugin as LoadingIndicatorPlugin\r\n} from \"../core/loading_indicator\";\r\nimport {\r\n plugin as dataSourcePlugin\r\n} from \"../core/data_source\";\r\ndxRangeSelector.addPlugin(exportPlugin);\r\ndxRangeSelector.addPlugin(titlePlugin);\r\ndxRangeSelector.addPlugin(LoadingIndicatorPlugin);\r\ndxRangeSelector.addPlugin(dataSourcePlugin);\r\n","/**\r\n * DevExtreme (esm/viz/range_selector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RangeSelector from \"./range_selector/range_selector\";\r\nexport default RangeSelector;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxRangeSelector from 'devextreme/viz/range_selector';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoBackgroundModule, DxoImageModule, DxoBehaviorModule, DxoChartModule, DxoCommonSeriesSettingsModule, DxoAggregationModule, DxoAreaModule, DxoBorderModule, DxoHoverStyleModule, DxoHatchingModule, DxoLabelModule, DxoConnectorModule, DxoPointModule, DxoHeightModule, DxoUrlModule, DxoWidthModule, DxoSelectionStyleModule, DxoReductionModule, DxoValueErrorBarModule, DxoBarModule, DxoBubbleModule, DxoCandlestickModule, DxoColorModule, DxoFullstackedareaModule, DxoFullstackedbarModule, DxoFullstackedlineModule, DxoFullstackedsplineModule, DxoFullstackedsplineareaModule, DxoArgumentFormatModule, DxoFontModule, DxoFormatModule, DxoLineModule, DxoRangeareaModule, DxoRangebarModule, DxoScatterModule, DxoSplineModule, DxoSplineareaModule, DxoStackedareaModule, DxoStackedbarModule, DxoStackedlineModule, DxoStackedsplineModule, DxoStackedsplineareaModule, DxoStepareaModule, DxoSteplineModule, DxoStockModule, DxoDataPrepareSettingsModule, DxiSeriesModule, DxoSeriesTemplateModule, DxoValueAxisModule, DxoExportModule, DxoIndentModule, DxoLoadingIndicatorModule, DxoMarginModule, DxoScaleModule, DxoAggregationIntervalModule, DxiBreakModule, DxoBreakStyleModule, DxoMarkerModule, DxoMaxRangeModule, DxoMinorTickModule, DxoMinorTickIntervalModule, DxoMinRangeModule, DxoTickModule, DxoTickIntervalModule, DxoShutterModule, DxoSizeModule, DxoSliderHandleModule, DxoSliderMarkerModule, DxoTitleModule, DxoSubtitleModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxRangeSelectorComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxRangeSelector]\r\n\r\n */\r\nclass DxRangeSelectorComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'backgroundChange' },\r\n { emit: 'behaviorChange' },\r\n { emit: 'chartChange' },\r\n { emit: 'containerBackgroundColorChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'dataSourceFieldChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'indentChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scaleChange' },\r\n { emit: 'selectedRangeColorChange' },\r\n { emit: 'selectedRangeUpdateModeChange' },\r\n { emit: 'shutterChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'sliderHandleChange' },\r\n { emit: 'sliderMarkerChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.background]\r\n \r\n */\r\n get background() {\r\n return this._getOption('background');\r\n }\r\n set background(value) {\r\n this._setOption('background', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.behavior]\r\n \r\n */\r\n get behavior() {\r\n return this._getOption('behavior');\r\n }\r\n set behavior(value) {\r\n this._setOption('behavior', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.chart]\r\n \r\n */\r\n get chart() {\r\n return this._getOption('chart');\r\n }\r\n set chart(value) {\r\n this._setOption('chart', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.containerBackgroundColor]\r\n \r\n */\r\n get containerBackgroundColor() {\r\n return this._getOption('containerBackgroundColor');\r\n }\r\n set containerBackgroundColor(value) {\r\n this._setOption('containerBackgroundColor', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.dataSourceField]\r\n \r\n */\r\n get dataSourceField() {\r\n return this._getOption('dataSourceField');\r\n }\r\n set dataSourceField(value) {\r\n this._setOption('dataSourceField', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.indent]\r\n \r\n */\r\n get indent() {\r\n return this._getOption('indent');\r\n }\r\n set indent(value) {\r\n this._setOption('indent', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.scale]\r\n \r\n */\r\n get scale() {\r\n return this._getOption('scale');\r\n }\r\n set scale(value) {\r\n this._setOption('scale', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.selectedRangeColor]\r\n \r\n */\r\n get selectedRangeColor() {\r\n return this._getOption('selectedRangeColor');\r\n }\r\n set selectedRangeColor(value) {\r\n this._setOption('selectedRangeColor', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.selectedRangeUpdateMode]\r\n \r\n */\r\n get selectedRangeUpdateMode() {\r\n return this._getOption('selectedRangeUpdateMode');\r\n }\r\n set selectedRangeUpdateMode(value) {\r\n this._setOption('selectedRangeUpdateMode', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.shutter]\r\n \r\n */\r\n get shutter() {\r\n return this._getOption('shutter');\r\n }\r\n set shutter(value) {\r\n this._setOption('shutter', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.sliderHandle]\r\n \r\n */\r\n get sliderHandle() {\r\n return this._getOption('sliderHandle');\r\n }\r\n set sliderHandle(value) {\r\n this._setOption('sliderHandle', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.sliderMarker]\r\n \r\n */\r\n get sliderMarker() {\r\n return this._getOption('sliderMarker');\r\n }\r\n set sliderMarker(value) {\r\n this._setOption('sliderMarker', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxRangeSelectorOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxRangeSelector(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxRangeSelectorComponent.ɵfac = function DxRangeSelectorComponent_Factory(t) { return new (t || DxRangeSelectorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxRangeSelectorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxRangeSelectorComponent, selectors: [[\"dx-range-selector\"]], hostBindings: function DxRangeSelectorComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxRangeSelectorComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxRangeSelectorComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { background: \"background\", behavior: \"behavior\", chart: \"chart\", containerBackgroundColor: \"containerBackgroundColor\", dataSource: \"dataSource\", dataSourceField: \"dataSourceField\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", indent: \"indent\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", pathModified: \"pathModified\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", scale: \"scale\", selectedRangeColor: \"selectedRangeColor\", selectedRangeUpdateMode: \"selectedRangeUpdateMode\", shutter: \"shutter\", size: \"size\", sliderHandle: \"sliderHandle\", sliderMarker: \"sliderMarker\", theme: \"theme\", title: \"title\", value: \"value\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", backgroundChange: \"backgroundChange\", behaviorChange: \"behaviorChange\", chartChange: \"chartChange\", containerBackgroundColorChange: \"containerBackgroundColorChange\", dataSourceChange: \"dataSourceChange\", dataSourceFieldChange: \"dataSourceFieldChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", indentChange: \"indentChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", pathModifiedChange: \"pathModifiedChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", scaleChange: \"scaleChange\", selectedRangeColorChange: \"selectedRangeColorChange\", selectedRangeUpdateModeChange: \"selectedRangeUpdateModeChange\", shutterChange: \"shutterChange\", sizeChange: \"sizeChange\", sliderHandleChange: \"sliderHandleChange\", sliderMarkerChange: \"sliderMarkerChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", valueChange: \"valueChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxRangeSelectorComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRangeSelectorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-range-selector',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { background: [{\r\n type: Input\r\n }], behavior: [{\r\n type: Input\r\n }], chart: [{\r\n type: Input\r\n }], containerBackgroundColor: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], dataSourceField: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], indent: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scale: [{\r\n type: Input\r\n }], selectedRangeColor: [{\r\n type: Input\r\n }], selectedRangeUpdateMode: [{\r\n type: Input\r\n }], shutter: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], sliderHandle: [{\r\n type: Input\r\n }], sliderMarker: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], backgroundChange: [{\r\n type: Output\r\n }], behaviorChange: [{\r\n type: Output\r\n }], chartChange: [{\r\n type: Output\r\n }], containerBackgroundColorChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], dataSourceFieldChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], indentChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scaleChange: [{\r\n type: Output\r\n }], selectedRangeColorChange: [{\r\n type: Output\r\n }], selectedRangeUpdateModeChange: [{\r\n type: Output\r\n }], shutterChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], sliderHandleChange: [{\r\n type: Output\r\n }], sliderMarkerChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxRangeSelectorModule {\r\n}\r\n/** @nocollapse */ DxRangeSelectorModule.ɵfac = function DxRangeSelectorModule_Factory(t) { return new (t || DxRangeSelectorModule)(); };\r\n/** @nocollapse */ DxRangeSelectorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxRangeSelectorModule });\r\n/** @nocollapse */ DxRangeSelectorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRangeSelectorModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxRangeSelectorComponent\r\n ],\r\n exports: [\r\n DxRangeSelectorComponent,\r\n DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxRangeSelectorModule, { declarations: [DxRangeSelectorComponent], imports: [DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxRangeSelectorComponent, DxoBackgroundModule,\r\n DxoImageModule,\r\n DxoBehaviorModule,\r\n DxoChartModule,\r\n DxoCommonSeriesSettingsModule,\r\n DxoAggregationModule,\r\n DxoAreaModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLabelModule,\r\n DxoConnectorModule,\r\n DxoPointModule,\r\n DxoHeightModule,\r\n DxoUrlModule,\r\n DxoWidthModule,\r\n DxoSelectionStyleModule,\r\n DxoReductionModule,\r\n DxoValueErrorBarModule,\r\n DxoBarModule,\r\n DxoBubbleModule,\r\n DxoCandlestickModule,\r\n DxoColorModule,\r\n DxoFullstackedareaModule,\r\n DxoFullstackedbarModule,\r\n DxoFullstackedlineModule,\r\n DxoFullstackedsplineModule,\r\n DxoFullstackedsplineareaModule,\r\n DxoArgumentFormatModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoLineModule,\r\n DxoRangeareaModule,\r\n DxoRangebarModule,\r\n DxoScatterModule,\r\n DxoSplineModule,\r\n DxoSplineareaModule,\r\n DxoStackedareaModule,\r\n DxoStackedbarModule,\r\n DxoStackedlineModule,\r\n DxoStackedsplineModule,\r\n DxoStackedsplineareaModule,\r\n DxoStepareaModule,\r\n DxoSteplineModule,\r\n DxoStockModule,\r\n DxoDataPrepareSettingsModule,\r\n DxiSeriesModule,\r\n DxoSeriesTemplateModule,\r\n DxoValueAxisModule,\r\n DxoExportModule,\r\n DxoIndentModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoScaleModule,\r\n DxoAggregationIntervalModule,\r\n DxiBreakModule,\r\n DxoBreakStyleModule,\r\n DxoMarkerModule,\r\n DxoMaxRangeModule,\r\n DxoMinorTickModule,\r\n DxoMinorTickIntervalModule,\r\n DxoMinRangeModule,\r\n DxoTickModule,\r\n DxoTickIntervalModule,\r\n DxoShutterModule,\r\n DxoSizeModule,\r\n DxoSliderHandleModule,\r\n DxoSliderMarkerModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxRangeSelectorComponent, DxRangeSelectorModule };\n","/**\r\n * DevExtreme (esm/ui/slider/slider_tooltip_position_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n PopoverPositionController\r\n} from \"../popover/popover_position_controller\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nvar SLIDER_TOOLTIP_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit none\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit none\"\r\n }\r\n};\r\nvar SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 2,\r\n v: 1\r\n};\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nclass SliderTooltipPositionController extends PopoverPositionController {\r\n _normalizePosition(positionProp) {\r\n var $sliderHandle = this._props.target;\r\n var sliderClass = \".\".concat(SLIDER_CLASS);\r\n var $slider = null === $sliderHandle || void 0 === $sliderHandle ? void 0 : $sliderHandle.closest(sliderClass);\r\n var defaultPositionConfig = {\r\n of: $sliderHandle,\r\n boundaryOffset: SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET,\r\n boundary: null === $slider || void 0 === $slider ? void 0 : $slider.get(0)\r\n };\r\n var resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp));\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _renderContentInitialPosition() {\r\n super._renderContentInitialPosition();\r\n this._fitIntoSlider()\r\n }\r\n _fitIntoSlider() {\r\n var {\r\n collisionSide: collisionSide,\r\n oversize: oversize\r\n } = positionUtils.calculate(this._$content, this._position).h;\r\n var left = this._visualPosition.left;\r\n var isLeftSide = \"left\" === collisionSide;\r\n var offset = (isLeftSide ? 1 : -1) * oversize;\r\n move(this._$content, {\r\n left: left + offset\r\n });\r\n this._updateVisualPositionValue()\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, SLIDER_TOOLTIP_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n SliderTooltipPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"../tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n SliderTooltipPositionController\r\n} from \"./slider_tooltip_position_controller\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar SLIDER_TOOLTIP_VISIBILITY_CLASS = \"dx-slider-tooltip-visible-on-hover\";\r\nvar SliderTooltip = Tooltip.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n visible: false,\r\n position: \"top\",\r\n hideOnOutsideClick: false,\r\n hideTopOverlayHandler: null,\r\n hideOnParentScroll: false,\r\n animation: null,\r\n arrowPosition: null,\r\n templatesRenderAsynchronously: false,\r\n _fixWrapperPosition: false,\r\n useResizeObserver: false,\r\n showMode: \"onHover\",\r\n format: value => value,\r\n value: 0\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._attachToMarkup(this.option(\"visible\"));\r\n this._toggleShowModeClass()\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._renderContentText()\r\n },\r\n _toggleAriaAttributes() {},\r\n _renderContentText() {\r\n var {\r\n value: value,\r\n format: format\r\n } = this.option();\r\n var formattedText = numberLocalization.format(null !== value && void 0 !== value ? value : 0, format);\r\n this.$content().text(formattedText);\r\n this._renderPosition()\r\n },\r\n _toggleShowModeClass() {\r\n var isHoverMode = \"onHover\" === this.option(\"showMode\");\r\n var $sliderHandle = this.option(\"target\");\r\n $sliderHandle.toggleClass(SLIDER_TOOLTIP_VISIBILITY_CLASS, isHoverMode)\r\n },\r\n _initPositionController() {\r\n this._positionController = new SliderTooltipPositionController(this._getPositionControllerConfig())\r\n },\r\n _attachToMarkup(enabled) {\r\n var $sliderHandle = this.option(\"target\");\r\n enabled ? this.$element().appendTo($sliderHandle) : this.$element().detach()\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"visible\":\r\n this._attachToMarkup(value);\r\n this.callBase(args);\r\n break;\r\n case \"showMode\":\r\n this._toggleShowModeClass();\r\n break;\r\n case \"format\":\r\n case \"value\":\r\n this._renderContentText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updatePosition() {\r\n this._renderPosition()\r\n }\r\n});\r\nexport default SliderTooltip;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_handle.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport SliderTooltip from \"./ui.slider_tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SLIDER_HANDLE_CLASS = \"dx-slider-handle\";\r\nvar SliderHandle = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: false,\r\n value: 0,\r\n tooltip: {\r\n enabled: false,\r\n format: value => value,\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n }\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SLIDER_HANDLE_CLASS);\r\n this.setAria({\r\n role: \"slider\",\r\n valuenow: this.option(\"value\"),\r\n label: \"Slider\"\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderTooltip()\r\n },\r\n _renderTooltip: function() {\r\n var {\r\n tooltip: tooltip,\r\n value: value\r\n } = this.option();\r\n var {\r\n position: position,\r\n format: format,\r\n enabled: enabled,\r\n showMode: showMode\r\n } = tooltip;\r\n var $sliderTooltip = $(\"<div>\");\r\n this._sliderTooltip = this._createComponent($sliderTooltip, SliderTooltip, {\r\n target: this.$element(),\r\n container: $sliderTooltip,\r\n position: position,\r\n visible: enabled,\r\n showMode: showMode,\r\n format: format,\r\n value: value\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._sliderTooltip = null\r\n },\r\n _updateTooltipOptions(args) {\r\n var _this$_sliderTooltip;\r\n var tooltipOptions = Widget.getOptionsFromContainer(args);\r\n this._setWidgetOption(\"_sliderTooltip\", [tooltipOptions]);\r\n null === (_this$_sliderTooltip = this._sliderTooltip) || void 0 === _this$_sliderTooltip ? void 0 : _this$_sliderTooltip.option(\"visible\", tooltipOptions.enabled)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n var _this$_sliderTooltip2;\r\n null === (_this$_sliderTooltip2 = this._sliderTooltip) || void 0 === _this$_sliderTooltip2 ? void 0 : _this$_sliderTooltip2.option(\"value\", value);\r\n this.setAria(\"valuenow\", value);\r\n break;\r\n case \"tooltip\":\r\n this._updateTooltipOptions(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updateTooltipPosition: function() {\r\n var _this$_sliderTooltip3;\r\n null === (_this$_sliderTooltip3 = this._sliderTooltip) || void 0 === _this$_sliderTooltip3 ? void 0 : _this$_sliderTooltip3.updatePosition()\r\n },\r\n repaint: function() {\r\n var _this$_sliderTooltip4;\r\n null === (_this$_sliderTooltip4 = this._sliderTooltip) || void 0 === _this$_sliderTooltip4 ? void 0 : _this$_sliderTooltip4.repaint()\r\n }\r\n});\r\nexport default SliderHandle;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n applyServerDecimalSeparator\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name as clickName\r\n} from \"../../events/click\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent,\r\n isTouchEvent,\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport TrackBar from \"../track_bar\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport SliderHandle from \"./ui.slider_handle\";\r\nimport {\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision\r\n} from \"../../core/utils/math\";\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nvar SLIDER_WRAPPER_CLASS = \"dx-slider-wrapper\";\r\nvar SLIDER_HANDLE_SELECTOR = \".dx-slider-handle\";\r\nvar SLIDER_BAR_CLASS = \"dx-slider-bar\";\r\nvar SLIDER_RANGE_CLASS = \"dx-slider-range\";\r\nvar SLIDER_RANGE_VISIBLE_CLASS = \"dx-slider-range-visible\";\r\nvar SLIDER_LABEL_CLASS = \"dx-slider-label\";\r\nvar SLIDER_LABEL_POSITION_CLASS_PREFIX = \"dx-slider-label-position-\";\r\nvar SLIDER_TOOLTIP_POSITION_CLASS_PREFIX = \"dx-slider-tooltip-position-\";\r\nvar INVALID_MESSAGE_VISIBLE_CLASS = \"dx-invalid-message-visible\";\r\nvar SLIDER_VALIDATION_NAMESPACE = \"Validation\";\r\nvar Slider = TrackBar.inherit({\r\n _activeStateUnit: SLIDER_HANDLE_SELECTOR,\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var roundedValue = (offset, isLeftDirection) => {\r\n offset = this._valueStep(offset);\r\n var step = this.option(\"step\");\r\n var value = this.option(\"value\");\r\n var currentPosition = value - this.option(\"min\");\r\n var remainder = getRemainderByDivision(currentPosition, step, this._getValueExponentLength());\r\n var result = isLeftDirection ? value - offset + (remainder ? step - remainder : 0) : value + offset - remainder;\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (result < min) {\r\n result = min\r\n } else if (result > max) {\r\n result = max\r\n }\r\n return this._roundToExponentLength(result)\r\n };\r\n var moveHandleRight = offset => {\r\n this.option(\"value\", roundedValue(offset, isRTL))\r\n };\r\n var moveHandleLeft = offset => {\r\n this.option(\"value\", roundedValue(offset, !isRTL))\r\n };\r\n return extend(this.callBase(), {\r\n leftArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\"))\r\n },\r\n rightArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\"))\r\n },\r\n pageUp: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n pageDown: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n home: function(e) {\r\n this._processKeyboardEvent(e);\r\n var min = this.option(\"min\");\r\n this.option(\"value\", min)\r\n },\r\n end: function(e) {\r\n this._processKeyboardEvent(e);\r\n var max = this.option(\"max\");\r\n this.option(\"value\", max)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 50,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n step: 1,\r\n showRange: true,\r\n tooltip: {\r\n enabled: false,\r\n format: function(value) {\r\n return value\r\n },\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n },\r\n label: {\r\n visible: false,\r\n position: \"bottom\",\r\n format: function(value) {\r\n return value\r\n }\r\n },\r\n keyStep: 1,\r\n useInkRipple: false,\r\n validationMessageOffset: isMaterial() ? {\r\n h: 18,\r\n v: 0\r\n } : {\r\n h: 7,\r\n v: 4\r\n },\r\n focusStateEnabled: true,\r\n valueChangeMode: \"onHandleMove\"\r\n })\r\n },\r\n _toggleValidationMessage: function(visible) {\r\n if (!this.option(\"isValid\")) {\r\n this.$element().toggleClass(INVALID_MESSAGE_VISIBLE_CLASS, visible)\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n var themeName = currentTheme();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SLIDER_CLASS);\r\n this._renderSubmitElement();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._renderLabels();\r\n this._renderStartHandler();\r\n this._renderAriaMinAndMax()\r\n },\r\n _attachFocusEvents: function() {\r\n this.callBase();\r\n var namespace = this.NAME + SLIDER_VALIDATION_NAMESPACE;\r\n var focusInEvent = addNamespace(\"focusin\", namespace);\r\n var focusOutEvent = addNamespace(\"focusout\", namespace);\r\n var $focusTarget = this._focusTarget();\r\n eventsEngine.on($focusTarget, focusInEvent, this._toggleValidationMessage.bind(this, true));\r\n eventsEngine.on($focusTarget, focusOutEvent, this._toggleValidationMessage.bind(this, false))\r\n },\r\n _detachFocusEvents: function() {\r\n this.callBase();\r\n var $focusTarget = this._focusTarget();\r\n this._toggleValidationMessage(false);\r\n eventsEngine.off($focusTarget, this.NAME + SLIDER_VALIDATION_NAMESPACE)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._repaintHandle()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render({\r\n waveSizeCoefficient: .7,\r\n isCentered: true,\r\n wavesNumber: 2,\r\n useHoldAnimation: false\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.repaint()\r\n },\r\n _renderWrapper: function() {\r\n this.callBase();\r\n this._$wrapper.addClass(SLIDER_WRAPPER_CLASS);\r\n this._createComponent(this._$wrapper, Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n immediateTimeout: 0,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._itemWidthFunc.bind(this)\r\n })\r\n },\r\n _renderContainer: function() {\r\n this.callBase();\r\n this._$bar.addClass(SLIDER_BAR_CLASS)\r\n },\r\n _renderRange: function() {\r\n this.callBase();\r\n this._$range.addClass(SLIDER_RANGE_CLASS);\r\n this._renderHandle();\r\n this._renderRangeVisibility()\r\n },\r\n _renderRangeVisibility: function() {\r\n this._$range.toggleClass(SLIDER_RANGE_VISIBLE_CLASS, Boolean(this.option(\"showRange\")))\r\n },\r\n _renderHandle: function() {\r\n this._$handle = this._renderHandleImpl(this.option(\"value\"), this._$handle)\r\n },\r\n _renderHandleImpl: function(value, $element) {\r\n var $handle = $element || $(\"<div>\").appendTo(this._$range);\r\n var tooltip = this.option(\"tooltip\");\r\n this.$element().toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"bottom\", tooltip.enabled && \"bottom\" === tooltip.position).toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"top\", tooltip.enabled && \"top\" === tooltip.position);\r\n this._createComponent($handle, SliderHandle, {\r\n value: value,\r\n tooltip: tooltip\r\n });\r\n return $handle\r\n },\r\n _renderAriaMinAndMax: function() {\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: this.option(\"max\")\r\n }, this._$handle)\r\n },\r\n _toggleActiveState: function($element, value) {\r\n this.callBase($element, value);\r\n this._renderInkWave($element, null, !!value, 1)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (this._disposed) {\r\n return\r\n }\r\n var $focusTarget = $($element || this._focusTarget());\r\n this._renderInkWave($focusTarget, null, isFocused, 0)\r\n },\r\n _renderLabels: function() {\r\n this.$element().removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"bottom\").removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"top\");\r\n if (this.option(\"label.visible\")) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var position = this.option(\"label.position\");\r\n var labelFormat = this.option(\"label.format\");\r\n if (!this._$minLabel) {\r\n this._$minLabel = $(\"<div>\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$minLabel.text(numberLocalization.format(min, labelFormat));\r\n if (!this._$maxLabel) {\r\n this._$maxLabel = $(\"<div>\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$maxLabel.text(numberLocalization.format(max, labelFormat));\r\n this.$element().addClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + position)\r\n } else {\r\n if (this._$minLabel) {\r\n this._$minLabel.remove();\r\n delete this._$minLabel\r\n }\r\n if (this._$maxLabel) {\r\n this._$maxLabel.remove();\r\n delete this._$maxLabel\r\n }\r\n }\r\n },\r\n _renderStartHandler: function() {\r\n var pointerDownEventName = addNamespace(pointerEvents.down, this.NAME);\r\n var clickEventName = addNamespace(clickName, this.NAME);\r\n var startAction = this._createAction(this._startHandler.bind(this));\r\n var $element = this.$element();\r\n eventsEngine.off($element, pointerDownEventName);\r\n eventsEngine.on($element, pointerDownEventName, e => {\r\n if (isMouseEvent(e)) {\r\n startAction({\r\n event: e\r\n })\r\n }\r\n });\r\n eventsEngine.off($element, clickEventName);\r\n eventsEngine.on($element, clickEventName, e => {\r\n var $handle = this._activeHandle();\r\n if ($handle) {\r\n eventsEngine.trigger($handle, \"focusin\");\r\n eventsEngine.trigger($handle, \"focus\")\r\n }\r\n startAction({\r\n event: e\r\n });\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue());\r\n this._actualValue = void 0\r\n }\r\n })\r\n },\r\n _itemWidthFunc: function() {\r\n return this._itemWidthRatio\r\n },\r\n _swipeStartHandler: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (isTouchEvent(e.event)) {\r\n this._createAction(this._startHandler.bind(this))({\r\n event: e.event\r\n })\r\n }\r\n this._feedbackDeferred = new Deferred;\r\n lock(this._feedbackDeferred);\r\n this._toggleActiveState(this._activeHandle(), this.option(\"activeStateEnabled\"));\r\n this._startOffset = this._currentRatio;\r\n var startOffset = this._startOffset * this._swipePixelRatio();\r\n var endOffset = (1 - this._startOffset) * this._swipePixelRatio();\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset;\r\n this._itemWidthRatio = getWidth(this.$element()) / this._swipePixelRatio();\r\n this._needPreventAnimation = true\r\n },\r\n _swipeEndHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._feedbackDeferred.resolve();\r\n this._toggleActiveState(this._activeHandle(), false);\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var ratio = this._startOffset + offsetDirection * e.event.targetOffset / this._swipePixelRatio();\r\n delete this._needPreventAnimation;\r\n this._saveValueChangeEvent(e.event);\r\n this._changeValueOnSwipe(ratio);\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue())\r\n }\r\n this._actualValue = void 0;\r\n delete this._startOffset;\r\n this._renderValue()\r\n },\r\n _activeHandle: function() {\r\n return this._$handle\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e.event);\r\n this._updateHandlePosition(e)\r\n },\r\n _updateHandlePosition: function(e) {\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var newRatio = Math.min(this._startOffset + offsetDirection * e.event.offset / this._swipePixelRatio(), 1);\r\n setWidth(this._$range, 100 * newRatio + \"%\");\r\n SliderHandle.getInstance(this._activeHandle()).fitTooltipPosition;\r\n this._changeValueOnSwipe(newRatio)\r\n },\r\n _swipePixelRatio: function() {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n return (max - min) / step\r\n },\r\n _valueStep: function(step) {\r\n if (!step || isNaN(step)) {\r\n step = 1\r\n }\r\n return step\r\n },\r\n _getValueExponentLength: function() {\r\n var {\r\n step: step,\r\n min: min\r\n } = this.option();\r\n return Math.max(getExponentLength(step), getExponentLength(min))\r\n },\r\n _roundToExponentLength: function(value) {\r\n var valueExponentLength = this._getValueExponentLength();\r\n return roundFloatPart(value, valueExponentLength)\r\n },\r\n _changeValueOnSwipe: function(ratio) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n var newChange = ratio * (max - min);\r\n var newValue = min + newChange;\r\n if (step < 0) {\r\n return\r\n }\r\n if (newValue === max || newValue === min) {\r\n this._setValueOnSwipe(newValue)\r\n } else {\r\n var stepCount = Math.round((newValue - min) / step);\r\n newValue = this._roundToExponentLength(stepCount * step + min);\r\n this._setValueOnSwipe(Math.max(Math.min(newValue, max), min))\r\n }\r\n },\r\n _setValueOnSwipe: function(value) {\r\n this._actualValue = value;\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n } else {\r\n this.option(\"value\", value);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n },\r\n _getActualValue: function() {\r\n var _this$_actualValue;\r\n return null !== (_this$_actualValue = this._actualValue) && void 0 !== _this$_actualValue ? _this$_actualValue : this.option(\"value\")\r\n },\r\n _isSingleValuePossible: function() {\r\n var {\r\n min: min,\r\n max: max\r\n } = this.option();\r\n return min === max\r\n },\r\n _startHandler: function(args) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n var e = args.event;\r\n this._currentRatio = (eventData(e).x - this._$bar.offset().left) / getWidth(this._$bar);\r\n if (this.option(\"rtlEnabled\")) {\r\n this._currentRatio = 1 - this._currentRatio\r\n }\r\n this._saveValueChangeEvent(e);\r\n this._changeValueOnSwipe(this._currentRatio)\r\n },\r\n _renderValue: function() {\r\n this.callBase();\r\n var value = this._getActualValue();\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value));\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n },\r\n _setRangeStyles: function(options) {\r\n options && this._$range.css(options)\r\n },\r\n _callHandlerMethod: function(name, args) {\r\n SliderHandle.getInstance(this._$handle)[name](args)\r\n },\r\n _repaintHandle: function() {\r\n this._callHandlerMethod(\"repaint\")\r\n },\r\n _fitTooltip: function() {\r\n this._callHandlerMethod(\"updateTooltipPosition\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"visible\":\r\n this.callBase(args);\r\n this._renderHandle();\r\n this._repaintHandle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderValue();\r\n this.callBase(args);\r\n this._renderLabels();\r\n this._renderAriaMinAndMax();\r\n this._fitTooltip();\r\n break;\r\n case \"step\":\r\n this._renderValue();\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"showRange\":\r\n this._renderRangeVisibility();\r\n break;\r\n case \"tooltip\":\r\n this._renderHandle();\r\n break;\r\n case \"label\":\r\n this._renderLabels();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"valueChangeMode\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _refresh: function() {\r\n this._toggleRTLDirection(this.option(\"rtlEnabled\"));\r\n this._renderDimensions();\r\n this._renderValue();\r\n this._renderHandle();\r\n this._repaintHandle()\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n delete this._actualValue;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxSlider\", Slider);\r\nexport default Slider;\r\n","/**\r\n * DevExtreme (esm/ui/slider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Slider from \"./slider/ui.slider\";\r\nexport default Slider;\r\n","/**\r\n * DevExtreme (esm/ui/range_slider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport Slider from \"./slider\";\r\nimport SliderHandle from \"./slider/ui.slider_handle\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n applyServerDecimalSeparator\r\n} from \"../core/utils/common\";\r\nimport {\r\n eventData\r\n} from \"../events/utils/index\";\r\nimport messageLocalization from \"../localization/message\";\r\nvar RANGE_SLIDER_CLASS = \"dx-rangeslider\";\r\nvar RANGE_SLIDER_START_HANDLE_CLASS = RANGE_SLIDER_CLASS + \"-start-handle\";\r\nvar RANGE_SLIDER_END_HANDLE_CLASS = RANGE_SLIDER_CLASS + \"-end-handle\";\r\nvar RangeSlider = Slider.inherit({\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var that = this;\r\n var _changeHandle = function(e, capturedHandle) {\r\n if (that.option(\"start\") === that.option(\"end\")) {\r\n that._capturedHandle = capturedHandle;\r\n e.target = that._capturedHandle;\r\n eventsEngine.trigger(that._capturedHandle, \"focus\")\r\n }\r\n };\r\n var _setHandleValue = function(e, step, sign) {\r\n var isStart = $(e.target).hasClass(RANGE_SLIDER_START_HANDLE_CLASS);\r\n var valueOption = isStart ? \"start\" : \"end\";\r\n var val = that.option(valueOption);\r\n step = that._valueStep(step);\r\n val += sign * (isRTL ? -step : step);\r\n that.option(valueOption, val)\r\n };\r\n var moveHandleRight = function(e, step) {\r\n _changeHandle(e, isRTL ? that._$handleStart : that._$handleEnd);\r\n _setHandleValue(e, step, 1)\r\n };\r\n var moveHandleLeft = function(e, step) {\r\n _changeHandle(e, isRTL ? that._$handleEnd : that._$handleStart);\r\n _setHandleValue(e, step, -1)\r\n };\r\n return extend(this.callBase(), {\r\n leftArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(e, this.option(\"step\"))\r\n },\r\n rightArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(e, this.option(\"step\"))\r\n },\r\n pageUp: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(e, this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n pageDown: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(e, this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n home: function(e) {\r\n this._processKeyboardEvent(e);\r\n var isStart = $(e.target).hasClass(RANGE_SLIDER_START_HANDLE_CLASS);\r\n var valueOption = isStart ? \"start\" : \"end\";\r\n var startOption = isStart ? \"min\" : \"start\";\r\n var val = this.option(startOption);\r\n this.option(valueOption, val)\r\n },\r\n end: function(e) {\r\n this._processKeyboardEvent(e);\r\n var isStart = $(e.target).hasClass(RANGE_SLIDER_START_HANDLE_CLASS);\r\n var valueOption = isStart ? \"start\" : \"end\";\r\n var endOption = isStart ? \"end\" : \"max\";\r\n var val = this.option(endOption);\r\n this.option(valueOption, val)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n start: 40,\r\n end: 60,\r\n value: [40, 60],\r\n startName: \"\",\r\n endName: \"\"\r\n })\r\n },\r\n _renderSubmitElement: function() {\r\n var $element = this.$element();\r\n this._$submitStartElement = $(\"<input>\").attr(\"type\", \"hidden\").attr(\"name\", this.option(\"startName\")).appendTo($element);\r\n this._$submitEndElement = $(\"<input>\").attr(\"type\", \"hidden\").attr(\"name\", this.option(\"endName\")).appendTo($element)\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n var initialValue = this.initialOption(\"value\");\r\n var value = this.option(\"value\");\r\n if (value[0] === initialValue[0] && value[1] === initialValue[1]) {\r\n this.option(\"value\", [this.option(\"start\"), this.option(\"end\")])\r\n } else {\r\n this.option({\r\n start: value[0],\r\n end: value[1]\r\n })\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(RANGE_SLIDER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContentImpl: function() {\r\n this._callHandlerMethod(\"repaint\");\r\n this.callBase()\r\n },\r\n _renderHandle: function() {\r\n this._$handleStart = this._renderHandleImpl(this.option(\"start\"), this._$handleStart).addClass(RANGE_SLIDER_START_HANDLE_CLASS);\r\n this._$handleEnd = this._renderHandleImpl(this.option(\"end\"), this._$handleEnd).addClass(RANGE_SLIDER_END_HANDLE_CLASS);\r\n this._updateHandleAriaLabels()\r\n },\r\n _startHandler: function(args) {\r\n var e = args.event;\r\n var $range = this._$range;\r\n var rangeWidth = getWidth($range);\r\n var eventOffsetX = eventData(e).x - this._$bar.offset().left;\r\n var startHandleX = $range.position().left;\r\n var endHandleX = $range.position().left + rangeWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var startHandleIsClosest = (rtlEnabled ? -1 : 1) * ((startHandleX + endHandleX) / 2 - eventOffsetX) > 0;\r\n this._capturedHandle = startHandleIsClosest ? this._$handleStart : this._$handleEnd;\r\n this.callBase(args)\r\n },\r\n _updateHandleAriaLabels: function() {\r\n this.setAria(\"label\", messageLocalization.getFormatter(\"dxRangeSlider-ariaFrom\")(this.option(\"dxRangeSlider-ariaFrom\")), this._$handleStart);\r\n this.setAria(\"label\", messageLocalization.getFormatter(\"dxRangeSlider-ariaTill\")(this.option(\"dxRangeSlider-ariaTill\")), this._$handleEnd)\r\n },\r\n _activeHandle: function() {\r\n return this._capturedHandle\r\n },\r\n _updateHandlePosition: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var offsetDirection = rtlEnabled ? -1 : 1;\r\n var max = this.option(\"max\");\r\n var min = this.option(\"min\");\r\n var newRatio = this._startOffset + offsetDirection * e.event.offset / this._swipePixelRatio();\r\n newRatio = newRatio.toPrecision(12);\r\n var newValue = newRatio * (max - min) + min;\r\n this._updateSelectedRangePosition(newRatio, newRatio);\r\n SliderHandle.getInstance(this._activeHandle()).fitTooltipPosition;\r\n this._changeValueOnSwipe(newRatio);\r\n var [startValue, endValue] = this._getActualValue();\r\n var $nextHandle;\r\n if (startValue === endValue) {\r\n if (newValue < startValue) {\r\n $nextHandle = this._$handleStart\r\n } else {\r\n $nextHandle = this._$handleEnd\r\n }\r\n eventsEngine.trigger($nextHandle, \"focus\");\r\n if ($nextHandle && $nextHandle !== this._capturedHandle) {\r\n this._updateSelectedRangePosition((startValue - min) / (max - min), (endValue - min) / (max - min));\r\n this._toggleActiveState(this._activeHandle(), false);\r\n this._toggleActiveState($nextHandle, true);\r\n this._capturedHandle = $nextHandle\r\n }\r\n this._updateSelectedRangePosition(newRatio, newRatio);\r\n this._changeValueOnSwipe(newRatio)\r\n }\r\n },\r\n _updateSelectedRangePosition: function(leftRatio, rightRatio) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var moveRight = this._capturedHandle === this._$handleStart && rtlEnabled || this._capturedHandle === this._$handleEnd && !rtlEnabled;\r\n var prop = moveRight ? \"right\" : \"left\";\r\n if (rtlEnabled ^ moveRight) {\r\n this._$range.css(prop, 100 - 100 * rightRatio + \"%\")\r\n } else {\r\n this._$range.css(prop, 100 * leftRatio + \"%\")\r\n }\r\n },\r\n _setValueOnSwipe: function(value) {\r\n var option = this._capturedHandle === this._$handleStart ? \"start\" : \"end\";\r\n var [start, end] = this._getActualValue();\r\n var max = this.option(\"max\");\r\n var min = this.option(\"min\");\r\n start = Math.min(Math.max(start, min), max);\r\n end = Math.min(Math.max(end, min), max);\r\n if (\"start\" === option) {\r\n start = value > end ? end : value\r\n } else {\r\n end = value < start ? start : value\r\n }\r\n if (\"onHandleMove\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", [start, end])\r\n } else {\r\n this._actualValue = [start, end];\r\n this._renderValue()\r\n }\r\n },\r\n _renderValue: function() {\r\n var [valStart, valEnd] = this._getActualValue();\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n valStart = Math.max(min, Math.min(valStart, max));\r\n valEnd = Math.max(valStart, Math.min(valEnd, max));\r\n if (\"onHandleMove\" === this.option(\"valueChangeMode\")) {\r\n this._setOptionWithoutOptionChange(\"start\", valStart);\r\n this._setOptionWithoutOptionChange(\"end\", valEnd);\r\n this._setOptionWithoutOptionChange(\"value\", [valStart, valEnd])\r\n }\r\n this._$submitStartElement.val(applyServerDecimalSeparator(valStart));\r\n this._$submitEndElement.val(applyServerDecimalSeparator(valEnd));\r\n var ratio1 = max === min ? 0 : (valStart - min) / (max - min);\r\n var ratio2 = max === min ? 0 : (valEnd - min) / (max - min);\r\n var startOffset = parseFloat((100 * ratio1).toPrecision(12)) + \"%\";\r\n var endOffset = parseFloat((100 * (1 - ratio2)).toPrecision(12)) + \"%\";\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n right: rtlEnabled ? startOffset : endOffset,\r\n left: rtlEnabled ? endOffset : startOffset\r\n });\r\n SliderHandle.getInstance(this._$handleStart).option(\"value\", valStart);\r\n SliderHandle.getInstance(this._$handleEnd).option(\"value\", valEnd)\r\n },\r\n _callHandlerMethod: function(name, args) {\r\n SliderHandle.getInstance(this._$handleStart)[name](args);\r\n SliderHandle.getInstance(this._$handleEnd)[name](args)\r\n },\r\n _setValueOption: function() {\r\n var start = this.option(\"start\");\r\n var end = this.option(\"end\");\r\n this.option(\"value\", [start, end])\r\n },\r\n _rangesAreEqual: (firstRange, secondRange) => firstRange[0] === secondRange[0] && firstRange[1] === secondRange[1],\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n if (this._rangesAreEqual(args.value, args.previousValue)) {\r\n break\r\n }\r\n this._setOptionWithoutOptionChange(\"start\", args.value[0]);\r\n this._setOptionWithoutOptionChange(\"end\", args.value[1]);\r\n this._renderValue();\r\n var start = this.option(\"start\");\r\n var end = this.option(\"end\");\r\n var isDirty = !this._rangesAreEqual(this._initialValue, args.value);\r\n this.option(\"isDirty\", isDirty);\r\n this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n start: start,\r\n end: end,\r\n value: [start, end],\r\n event: this._valueChangeEventInstance,\r\n previousValue: args.previousValue\r\n });\r\n this.validationRequest.fire({\r\n value: [start, end],\r\n editor: this\r\n });\r\n this._saveValueChangeEvent(void 0);\r\n break;\r\n case \"start\":\r\n case \"end\":\r\n this._setValueOption();\r\n break;\r\n case \"startName\":\r\n this._$submitStartElement.attr(\"name\", args.value);\r\n break;\r\n case \"endName\":\r\n this._$submitEndElement.attr(\"name\", args.value);\r\n break;\r\n case \"name\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRangeSlider\", RangeSlider);\r\nexport default RangeSlider;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxRangeSlider from 'devextreme/ui/range_slider';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoLabelModule, DxoFormatModule, DxoTooltipModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxRangeSliderComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxRangeSlider]\r\n\r\n */\r\nclass DxRangeSliderComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endChange' },\r\n { emit: 'endNameChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'keyStepChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'minChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showRangeChange' },\r\n { emit: 'startChange' },\r\n { emit: 'startNameChange' },\r\n { emit: 'stepChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeModeChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxRangeSliderOptions.end]\r\n \r\n */\r\n get end() {\r\n return this._getOption('end');\r\n }\r\n set end(value) {\r\n this._setOption('end', value);\r\n }\r\n /**\r\n * [descr:dxRangeSliderOptions.endName]\r\n \r\n */\r\n get endName() {\r\n return this._getOption('endName');\r\n }\r\n set endName(value) {\r\n this._setOption('endName', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.keyStep]\r\n \r\n */\r\n get keyStep() {\r\n return this._getOption('keyStep');\r\n }\r\n set keyStep(value) {\r\n this._setOption('keyStep', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.showRange]\r\n \r\n */\r\n get showRange() {\r\n return this._getOption('showRange');\r\n }\r\n set showRange(value) {\r\n this._setOption('showRange', value);\r\n }\r\n /**\r\n * [descr:dxRangeSliderOptions.start]\r\n \r\n */\r\n get start() {\r\n return this._getOption('start');\r\n }\r\n set start(value) {\r\n this._setOption('start', value);\r\n }\r\n /**\r\n * [descr:dxRangeSliderOptions.startName]\r\n \r\n */\r\n get startName() {\r\n return this._getOption('startName');\r\n }\r\n set startName(value) {\r\n this._setOption('startName', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.step]\r\n \r\n */\r\n get step() {\r\n return this._getOption('step');\r\n }\r\n set step(value) {\r\n this._setOption('step', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxRangeSliderOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.valueChangeMode]\r\n \r\n */\r\n get valueChangeMode() {\r\n return this._getOption('valueChangeMode');\r\n }\r\n set valueChangeMode(value) {\r\n this._setOption('valueChangeMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxRangeSlider(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxRangeSliderComponent.ɵfac = function DxRangeSliderComponent_Factory(t) { return new (t || DxRangeSliderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxRangeSliderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxRangeSliderComponent, selectors: [[\"dx-range-slider\"]], hostBindings: function DxRangeSliderComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxRangeSliderComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxRangeSliderComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", end: \"end\", endName: \"endName\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", keyStep: \"keyStep\", label: \"label\", max: \"max\", min: \"min\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showRange: \"showRange\", start: \"start\", startName: \"startName\", step: \"step\", tabIndex: \"tabIndex\", tooltip: \"tooltip\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeMode: \"valueChangeMode\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", endChange: \"endChange\", endNameChange: \"endNameChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", keyStepChange: \"keyStepChange\", labelChange: \"labelChange\", maxChange: \"maxChange\", minChange: \"minChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showRangeChange: \"showRangeChange\", startChange: \"startChange\", startNameChange: \"startNameChange\", stepChange: \"stepChange\", tabIndexChange: \"tabIndexChange\", tooltipChange: \"tooltipChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeModeChange: \"valueChangeModeChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxRangeSliderComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRangeSliderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-range-slider',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], end: [{\r\n type: Input\r\n }], endName: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], keyStep: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showRange: [{\r\n type: Input\r\n }], start: [{\r\n type: Input\r\n }], startName: [{\r\n type: Input\r\n }], step: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeMode: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endChange: [{\r\n type: Output\r\n }], endNameChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], keyStepChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showRangeChange: [{\r\n type: Output\r\n }], startChange: [{\r\n type: Output\r\n }], startNameChange: [{\r\n type: Output\r\n }], stepChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeModeChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxRangeSliderModule {\r\n}\r\n/** @nocollapse */ DxRangeSliderModule.ɵfac = function DxRangeSliderModule_Factory(t) { return new (t || DxRangeSliderModule)(); };\r\n/** @nocollapse */ DxRangeSliderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxRangeSliderModule });\r\n/** @nocollapse */ DxRangeSliderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRangeSliderModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxRangeSliderComponent\r\n ],\r\n exports: [\r\n DxRangeSliderComponent,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxRangeSliderModule, { declarations: [DxRangeSliderComponent], imports: [DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxRangeSliderComponent, DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxRangeSliderComponent, DxRangeSliderModule };\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/timeZoneCalculator/types.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PathTimeZoneConversion;\r\n! function(PathTimeZoneConversion) {\r\n PathTimeZoneConversion.fromSourceToAppointment = \"toAppointment\";\r\n PathTimeZoneConversion.fromAppointmentToSource = \"fromAppointment\";\r\n PathTimeZoneConversion.fromSourceToGrid = \"toGrid\";\r\n PathTimeZoneConversion.fromGridToSource = \"fromGrid\"\r\n}(PathTimeZoneConversion || (PathTimeZoneConversion = {}));\r\n","// =============================================================================\n// Weekday\n// =============================================================================\nexport var ALL_WEEKDAYS = [\n 'MO',\n 'TU',\n 'WE',\n 'TH',\n 'FR',\n 'SA',\n 'SU',\n];\nvar Weekday = /** @class */ (function () {\n function Weekday(weekday, n) {\n if (n === 0)\n throw new Error(\"Can't create weekday with n == 0\");\n this.weekday = weekday;\n this.n = n;\n }\n Weekday.fromStr = function (str) {\n return new Weekday(ALL_WEEKDAYS.indexOf(str));\n };\n // __call__ - Cannot call the object directly, do it through\n // e.g. RRule.TH.nth(-1) instead,\n Weekday.prototype.nth = function (n) {\n return this.n === n ? this : new Weekday(this.weekday, n);\n };\n // __eq__\n Weekday.prototype.equals = function (other) {\n return this.weekday === other.weekday && this.n === other.n;\n };\n // __repr__\n Weekday.prototype.toString = function () {\n var s = ALL_WEEKDAYS[this.weekday];\n if (this.n)\n s = (this.n > 0 ? '+' : '') + String(this.n) + s;\n return s;\n };\n Weekday.prototype.getJsWeekday = function () {\n return this.weekday === 6 ? 0 : this.weekday + 1;\n };\n return Weekday;\n}());\nexport { Weekday };\n","// =============================================================================\n// Helper functions\n// =============================================================================\nimport { ALL_WEEKDAYS } from './weekday';\nexport var isPresent = function (value) {\n return value !== null && value !== undefined;\n};\nexport var isNumber = function (value) {\n return typeof value === 'number';\n};\nexport var isWeekdayStr = function (value) {\n return typeof value === 'string' && ALL_WEEKDAYS.includes(value);\n};\nexport var isArray = Array.isArray;\n/**\n * Simplified version of python's range()\n */\nexport var range = function (start, end) {\n if (end === void 0) { end = start; }\n if (arguments.length === 1) {\n end = start;\n start = 0;\n }\n var rang = [];\n for (var i = start; i < end; i++)\n rang.push(i);\n return rang;\n};\nexport var clone = function (array) {\n return [].concat(array);\n};\nexport var repeat = function (value, times) {\n var i = 0;\n var array = [];\n if (isArray(value)) {\n for (; i < times; i++)\n array[i] = [].concat(value);\n }\n else {\n for (; i < times; i++)\n array[i] = value;\n }\n return array;\n};\nexport var toArray = function (item) {\n if (isArray(item)) {\n return item;\n }\n return [item];\n};\nexport function padStart(item, targetLength, padString) {\n if (padString === void 0) { padString = ' '; }\n var str = String(item);\n targetLength = targetLength >> 0;\n if (str.length > targetLength) {\n return String(str);\n }\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += repeat(padString, targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + String(str);\n}\n/**\n * Python like split\n */\nexport var split = function (str, sep, num) {\n var splits = str.split(sep);\n return num\n ? splits.slice(0, num).concat([splits.slice(num).join(sep)])\n : splits;\n};\n/**\n * closure/goog/math/math.js:modulo\n * Copyright 2006 The Closure Library Authors.\n * The % operator in JavaScript returns the remainder of a / b, but differs from\n * some other languages in that the result will have the same sign as the\n * dividend. For example, -1 % 8 == -1, whereas in some other languages\n * (such as Python) the result would be 7. This function emulates the more\n * correct modulo behavior, which is useful for certain applications such as\n * calculating an offset index in a circular list.\n *\n * @param {number} a The dividend.\n * @param {number} b The divisor.\n * @return {number} a % b where the result is between 0 and b (either 0 <= x < b\n * or b < x <= 0, depending on the sign of b).\n */\nexport var pymod = function (a, b) {\n var r = a % b;\n // If r and b differ in sign, add b to wrap the result to the correct sign.\n return r * b < 0 ? r + b : r;\n};\n/**\n * @see: <http://docs.python.org/library/functions.html#divmod>\n */\nexport var divmod = function (a, b) {\n return { div: Math.floor(a / b), mod: pymod(a, b) };\n};\nexport var empty = function (obj) {\n return !isPresent(obj) || obj.length === 0;\n};\n/**\n * Python-like boolean\n *\n * @return {Boolean} value of an object/primitive, taking into account\n * the fact that in Python an empty list's/tuple's\n * boolean value is False, whereas in JS it's true\n */\nexport var notEmpty = function (obj) {\n return !empty(obj);\n};\n/**\n * Return true if a value is in an array\n */\nexport var includes = function (arr, val) {\n return notEmpty(arr) && arr.indexOf(val) !== -1;\n};\n","import { padStart } from './helpers';\nexport var datetime = function (y, m, d, h, i, s) {\n if (h === void 0) { h = 0; }\n if (i === void 0) { i = 0; }\n if (s === void 0) { s = 0; }\n return new Date(Date.UTC(y, m - 1, d, h, i, s));\n};\n/**\n * General date-related utilities.\n * Also handles several incompatibilities between JavaScript and Python\n *\n */\nexport var MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n/**\n * Number of milliseconds of one day\n */\nexport var ONE_DAY = 1000 * 60 * 60 * 24;\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.MAXYEAR>\n */\nexport var MAXYEAR = 9999;\n/**\n * Python uses 1-Jan-1 as the base for calculating ordinals but we don't\n * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER,\n * therefore we use 1-Jan-1970 instead\n */\nexport var ORDINAL_BASE = datetime(1970, 1, 1);\n/**\n * Python: MO-SU: 0 - 6\n * JS: SU-SAT 0 - 6\n */\nexport var PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5];\n/**\n * py_date.timetuple()[7]\n */\nexport var getYearDay = function (date) {\n var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n return (Math.ceil((dateNoTime.valueOf() - new Date(date.getUTCFullYear(), 0, 1).valueOf()) /\n ONE_DAY) + 1);\n};\nexport var isLeapYear = function (year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n};\nexport var isDate = function (value) {\n return value instanceof Date;\n};\nexport var isValidDate = function (value) {\n return isDate(value) && !isNaN(value.getTime());\n};\n/**\n * @return {Number} the date's timezone offset in ms\n */\nexport var tzOffset = function (date) {\n return date.getTimezoneOffset() * 60 * 1000;\n};\n/**\n * @see: <http://www.mcfedries.com/JavaScript/DaysBetween.asp>\n */\nexport var daysBetween = function (date1, date2) {\n // The number of milliseconds in one day\n // Convert both dates to milliseconds\n var date1ms = date1.getTime();\n var date2ms = date2.getTime();\n // Calculate the difference in milliseconds\n var differencems = date1ms - date2ms;\n // Convert back to days and return\n return Math.round(differencems / ONE_DAY);\n};\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.date.toordinal>\n */\nexport var toOrdinal = function (date) {\n return daysBetween(date, ORDINAL_BASE);\n};\n/**\n * @see - <http://docs.python.org/library/datetime.html#datetime.date.fromordinal>\n */\nexport var fromOrdinal = function (ordinal) {\n return new Date(ORDINAL_BASE.getTime() + ordinal * ONE_DAY);\n};\nexport var getMonthDays = function (date) {\n var month = date.getUTCMonth();\n return month === 1 && isLeapYear(date.getUTCFullYear())\n ? 29\n : MONTH_DAYS[month];\n};\n/**\n * @return {Number} python-like weekday\n */\nexport var getWeekday = function (date) {\n return PY_WEEKDAYS[date.getUTCDay()];\n};\n/**\n * @see: <http://docs.python.org/library/calendar.html#calendar.monthrange>\n */\nexport var monthRange = function (year, month) {\n var date = datetime(year, month + 1, 1);\n return [getWeekday(date), getMonthDays(date)];\n};\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.datetime.combine>\n */\nexport var combine = function (date, time) {\n time = time || date;\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds()));\n};\nexport var clone = function (date) {\n var dolly = new Date(date.getTime());\n return dolly;\n};\nexport var cloneDates = function (dates) {\n var clones = [];\n for (var i = 0; i < dates.length; i++) {\n clones.push(clone(dates[i]));\n }\n return clones;\n};\n/**\n * Sorts an array of Date or Time objects\n */\nexport var sort = function (dates) {\n dates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n};\nexport var timeToUntilString = function (time, utc) {\n if (utc === void 0) { utc = true; }\n var date = new Date(time);\n return [\n padStart(date.getUTCFullYear().toString(), 4, '0'),\n padStart(date.getUTCMonth() + 1, 2, '0'),\n padStart(date.getUTCDate(), 2, '0'),\n 'T',\n padStart(date.getUTCHours(), 2, '0'),\n padStart(date.getUTCMinutes(), 2, '0'),\n padStart(date.getUTCSeconds(), 2, '0'),\n utc ? 'Z' : '',\n ].join('');\n};\nexport var untilStringToDate = function (until) {\n var re = /^(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2})Z?)?$/;\n var bits = re.exec(until);\n if (!bits)\n throw new Error(\"Invalid UNTIL value: \".concat(until));\n return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0));\n};\nvar dateTZtoISO8601 = function (date, timeZone) {\n // date format for sv-SE is almost ISO8601\n var dateStr = date.toLocaleString('sv-SE', { timeZone: timeZone });\n // '2023-02-07 10:41:36'\n return dateStr.replace(' ', 'T') + 'Z';\n};\nexport var dateInTimeZone = function (date, timeZone) {\n var localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n // Date constructor can only reliably parse dates in ISO8601 format\n var dateInLocalTZ = new Date(dateTZtoISO8601(date, localTimeZone));\n var dateInTargetTZ = new Date(dateTZtoISO8601(date, timeZone !== null && timeZone !== void 0 ? timeZone : 'UTC'));\n var tzOffset = dateInTargetTZ.getTime() - dateInLocalTZ.getTime();\n return new Date(date.getTime() - tzOffset);\n};\n","/**\n * This class helps us to emulate python's generators, sorta.\n */\nvar IterResult = /** @class */ (function () {\n function IterResult(method, args) {\n this.minDate = null;\n this.maxDate = null;\n this._result = [];\n this.total = 0;\n this.method = method;\n this.args = args;\n if (method === 'between') {\n this.maxDate = args.inc\n ? args.before\n : new Date(args.before.getTime() - 1);\n this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1);\n }\n else if (method === 'before') {\n this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1);\n }\n else if (method === 'after') {\n this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1);\n }\n }\n /**\n * Possibly adds a date into the result.\n *\n * @param {Date} date - the date isn't necessarly added to the result\n * list (if it is too late/too early)\n * @return {Boolean} true if it makes sense to continue the iteration\n * false if we're done.\n */\n IterResult.prototype.accept = function (date) {\n ++this.total;\n var tooEarly = this.minDate && date < this.minDate;\n var tooLate = this.maxDate && date > this.maxDate;\n if (this.method === 'between') {\n if (tooEarly)\n return true;\n if (tooLate)\n return false;\n }\n else if (this.method === 'before') {\n if (tooLate)\n return false;\n }\n else if (this.method === 'after') {\n if (tooEarly)\n return true;\n this.add(date);\n return false;\n }\n return this.add(date);\n };\n /**\n *\n * @param {Date} date that is part of the result.\n * @return {Boolean} whether we are interested in more values.\n */\n IterResult.prototype.add = function (date) {\n this._result.push(date);\n return true;\n };\n /**\n * 'before' and 'after' return only one date, whereas 'all'\n * and 'between' an array.\n *\n * @return {Date,Array?}\n */\n IterResult.prototype.getValue = function () {\n var res = this._result;\n switch (this.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n case 'after':\n default:\n return (res.length ? res[res.length - 1] : null);\n }\n };\n IterResult.prototype.clone = function () {\n return new IterResult(this.method, this.args);\n };\n return IterResult;\n}());\nexport default IterResult;\n","import { __extends } from \"tslib\";\nimport IterResult from './iterresult';\n/**\n * IterResult subclass that calls a callback function on each add,\n * and stops iterating when the callback returns false.\n */\nvar CallbackIterResult = /** @class */ (function (_super) {\n __extends(CallbackIterResult, _super);\n function CallbackIterResult(method, args, iterator) {\n var _this = _super.call(this, method, args) || this;\n _this.iterator = iterator;\n return _this;\n }\n CallbackIterResult.prototype.add = function (date) {\n if (this.iterator(date, this._result.length)) {\n this._result.push(date);\n return true;\n }\n return false;\n };\n return CallbackIterResult;\n}(IterResult));\nexport default CallbackIterResult;\n","// =============================================================================\n// i18n\n// =============================================================================\nvar ENGLISH = {\n dayNames: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ],\n monthNames: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n tokens: {\n SKIP: /^[ \\r\\n\\t]+|^\\.$/,\n number: /^[1-9][0-9]*/,\n numberAsText: /^(one|two|three)/i,\n every: /^every/i,\n 'day(s)': /^days?/i,\n 'weekday(s)': /^weekdays?/i,\n 'week(s)': /^weeks?/i,\n 'hour(s)': /^hours?/i,\n 'minute(s)': /^minutes?/i,\n 'month(s)': /^months?/i,\n 'year(s)': /^years?/i,\n on: /^(on|in)/i,\n at: /^(at)/i,\n the: /^the/i,\n first: /^first/i,\n second: /^second/i,\n third: /^third/i,\n nth: /^([1-9][0-9]*)(\\.|th|nd|rd|st)/i,\n last: /^last/i,\n for: /^for/i,\n 'time(s)': /^times?/i,\n until: /^(un)?til/i,\n monday: /^mo(n(day)?)?/i,\n tuesday: /^tu(e(s(day)?)?)?/i,\n wednesday: /^we(d(n(esday)?)?)?/i,\n thursday: /^th(u(r(sday)?)?)?/i,\n friday: /^fr(i(day)?)?/i,\n saturday: /^sa(t(urday)?)?/i,\n sunday: /^su(n(day)?)?/i,\n january: /^jan(uary)?/i,\n february: /^feb(ruary)?/i,\n march: /^mar(ch)?/i,\n april: /^apr(il)?/i,\n may: /^may/i,\n june: /^june?/i,\n july: /^july?/i,\n august: /^aug(ust)?/i,\n september: /^sep(t(ember)?)?/i,\n october: /^oct(ober)?/i,\n november: /^nov(ember)?/i,\n december: /^dec(ember)?/i,\n comma: /^(,\\s*|(and|or)\\s*)+/i,\n },\n};\nexport default ENGLISH;\n","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\nimport { isArray, isNumber, isPresent } from '../helpers';\n// =============================================================================\n// Helper functions\n// =============================================================================\n/**\n * Return true if a value is in an array\n */\nvar contains = function (arr, val) {\n return arr.indexOf(val) !== -1;\n};\nvar defaultGetText = function (id) { return id.toString(); };\nvar defaultDateFormatter = function (year, month, day) { return \"\".concat(month, \" \").concat(day, \", \").concat(year); };\n/**\n *\n * @param {RRule} rrule\n * Optional:\n * @param {Function} gettext function\n * @param {Object} language definition\n * @constructor\n */\nvar ToText = /** @class */ (function () {\n function ToText(rrule, gettext, language, dateFormatter) {\n if (gettext === void 0) { gettext = defaultGetText; }\n if (language === void 0) { language = ENGLISH; }\n if (dateFormatter === void 0) { dateFormatter = defaultDateFormatter; }\n this.text = [];\n this.language = language || ENGLISH;\n this.gettext = gettext;\n this.dateFormatter = dateFormatter;\n this.rrule = rrule;\n this.options = rrule.options;\n this.origOptions = rrule.origOptions;\n if (this.origOptions.bymonthday) {\n var bymonthday = [].concat(this.options.bymonthday);\n var bynmonthday = [].concat(this.options.bynmonthday);\n bymonthday.sort(function (a, b) { return a - b; });\n bynmonthday.sort(function (a, b) { return b - a; });\n // 1, 2, 3, .., -5, -4, -3, ..\n this.bymonthday = bymonthday.concat(bynmonthday);\n if (!this.bymonthday.length)\n this.bymonthday = null;\n }\n if (isPresent(this.origOptions.byweekday)) {\n var byweekday = !isArray(this.origOptions.byweekday)\n ? [this.origOptions.byweekday]\n : this.origOptions.byweekday;\n var days = String(byweekday);\n this.byweekday = {\n allWeeks: byweekday.filter(function (weekday) {\n return !weekday.n;\n }),\n someWeeks: byweekday.filter(function (weekday) {\n return Boolean(weekday.n);\n }),\n isWeekdays: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') === -1 &&\n days.indexOf('SU') === -1,\n isEveryDay: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') !== -1 &&\n days.indexOf('SU') !== -1,\n };\n var sortWeekDays = function (a, b) {\n return a.weekday - b.weekday;\n };\n this.byweekday.allWeeks.sort(sortWeekDays);\n this.byweekday.someWeeks.sort(sortWeekDays);\n if (!this.byweekday.allWeeks.length)\n this.byweekday.allWeeks = null;\n if (!this.byweekday.someWeeks.length)\n this.byweekday.someWeeks = null;\n }\n else {\n this.byweekday = null;\n }\n }\n /**\n * Test whether the rrule can be fully converted to text.\n *\n * @param {RRule} rrule\n * @return {Boolean}\n */\n ToText.isFullyConvertible = function (rrule) {\n var canConvert = true;\n if (!(rrule.options.freq in ToText.IMPLEMENTED))\n return false;\n if (rrule.origOptions.until && rrule.origOptions.count)\n return false;\n for (var key in rrule.origOptions) {\n if (contains(['dtstart', 'tzid', 'wkst', 'freq'], key))\n return true;\n if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key))\n return false;\n }\n return canConvert;\n };\n ToText.prototype.isFullyConvertible = function () {\n return ToText.isFullyConvertible(this.rrule);\n };\n /**\n * Perform the conversion. Only some of the frequencies are supported.\n * If some of the rrule's options aren't supported, they'll\n * be omitted from the output an \"(~ approximate)\" will be appended.\n *\n * @return {*}\n */\n ToText.prototype.toString = function () {\n var gettext = this.gettext;\n if (!(this.options.freq in ToText.IMPLEMENTED)) {\n return gettext('RRule error: Unable to fully convert this rrule to text');\n }\n this.text = [gettext('every')];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[RRule.FREQUENCIES[this.options.freq]]();\n if (this.options.until) {\n this.add(gettext('until'));\n var until = this.options.until;\n this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate()));\n }\n else if (this.options.count) {\n this.add(gettext('for'))\n .add(this.options.count.toString())\n .add(this.plural(this.options.count) ? gettext('times') : gettext('time'));\n }\n if (!this.isFullyConvertible())\n this.add(gettext('(~ approximate)'));\n return this.text.join('');\n };\n ToText.prototype.HOURLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval) ? gettext('hours') : gettext('hour'));\n };\n ToText.prototype.MINUTELY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval)\n ? gettext('minutes')\n : gettext('minute'));\n };\n ToText.prototype.DAILY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n else if (this.origOptions.byhour) {\n this._byhour();\n }\n };\n ToText.prototype.WEEKLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext('weeks') : gettext('week'));\n }\n if (this.byweekday && this.byweekday.isWeekdays) {\n if (this.options.interval === 1) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n }\n else if (this.byweekday && this.byweekday.isEveryDay) {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n else {\n if (this.options.interval === 1)\n this.add(gettext('week'));\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.origOptions.byhour) {\n this._byhour();\n }\n }\n };\n ToText.prototype.MONTHLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(gettext('months'));\n if (this.plural(this.options.interval))\n this.add(gettext('in'));\n }\n else {\n // this.add(gettext('MONTH'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval)\n ? gettext('months')\n : gettext('month'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n };\n ToText.prototype.YEARLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n this.add(gettext('years'));\n }\n else {\n // this.add(gettext('YEAR'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.options.byyearday) {\n this.add(gettext('on the'))\n .add(this.list(this.options.byyearday, this.nth, gettext('and')))\n .add(gettext('day'));\n }\n if (this.options.byweekno) {\n this.add(gettext('in'))\n .add(this.plural(this.options.byweekno.length)\n ? gettext('weeks')\n : gettext('week'))\n .add(this.list(this.options.byweekno, undefined, gettext('and')));\n }\n };\n ToText.prototype._bymonthday = function () {\n var gettext = this.gettext;\n if (this.byweekday && this.byweekday.allWeeks) {\n this.add(gettext('on'))\n .add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext('or')))\n .add(gettext('the'))\n .add(this.list(this.bymonthday, this.nth, gettext('or')));\n }\n else {\n this.add(gettext('on the')).add(this.list(this.bymonthday, this.nth, gettext('and')));\n }\n // this.add(gettext('DAY'))\n };\n ToText.prototype._byweekday = function () {\n var gettext = this.gettext;\n if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(this.list(this.byweekday.allWeeks, this.weekdaytext));\n }\n if (this.byweekday.someWeeks) {\n if (this.byweekday.allWeeks)\n this.add(gettext('and'));\n this.add(gettext('on the')).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext('and')));\n }\n };\n ToText.prototype._byhour = function () {\n var gettext = this.gettext;\n this.add(gettext('at')).add(this.list(this.origOptions.byhour, undefined, gettext('and')));\n };\n ToText.prototype._bymonth = function () {\n this.add(this.list(this.options.bymonth, this.monthtext, this.gettext('and')));\n };\n ToText.prototype.nth = function (n) {\n n = parseInt(n.toString(), 10);\n var nth;\n var gettext = this.gettext;\n if (n === -1)\n return gettext('last');\n var npos = Math.abs(n);\n switch (npos) {\n case 1:\n case 21:\n case 31:\n nth = npos + gettext('st');\n break;\n case 2:\n case 22:\n nth = npos + gettext('nd');\n break;\n case 3:\n case 23:\n nth = npos + gettext('rd');\n break;\n default:\n nth = npos + gettext('th');\n }\n return n < 0 ? nth + ' ' + gettext('last') : nth;\n };\n ToText.prototype.monthtext = function (m) {\n return this.language.monthNames[m - 1];\n };\n ToText.prototype.weekdaytext = function (wday) {\n var weekday = isNumber(wday) ? (wday + 1) % 7 : wday.getJsWeekday();\n return ((wday.n ? this.nth(wday.n) + ' ' : '') +\n this.language.dayNames[weekday]);\n };\n ToText.prototype.plural = function (n) {\n return n % 100 !== 1;\n };\n ToText.prototype.add = function (s) {\n this.text.push(' ');\n this.text.push(s);\n return this;\n };\n ToText.prototype.list = function (arr, callback, finalDelim, delim) {\n var _this = this;\n if (delim === void 0) { delim = ','; }\n if (!isArray(arr)) {\n arr = [arr];\n }\n var delimJoin = function (array, delimiter, finalDelimiter) {\n var list = '';\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n if (i === array.length - 1) {\n list += ' ' + finalDelimiter + ' ';\n }\n else {\n list += delimiter + ' ';\n }\n }\n list += array[i];\n }\n return list;\n };\n callback =\n callback ||\n function (o) {\n return o.toString();\n };\n var realCallback = function (arg) {\n return callback && callback.call(_this, arg);\n };\n if (finalDelim) {\n return delimJoin(arr.map(realCallback), delim, finalDelim);\n }\n else {\n return arr.map(realCallback).join(delim + ' ');\n }\n };\n return ToText;\n}());\nexport default ToText;\n","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\n// =============================================================================\n// Parser\n// =============================================================================\nvar Parser = /** @class */ (function () {\n function Parser(rules) {\n this.done = true;\n this.rules = rules;\n }\n Parser.prototype.start = function (text) {\n this.text = text;\n this.done = false;\n return this.nextSymbol();\n };\n Parser.prototype.isDone = function () {\n return this.done && this.symbol === null;\n };\n Parser.prototype.nextSymbol = function () {\n var best;\n var bestSymbol;\n this.symbol = null;\n this.value = null;\n do {\n if (this.done)\n return false;\n var rule = void 0;\n best = null;\n for (var name_1 in this.rules) {\n rule = this.rules[name_1];\n var match = rule.exec(this.text);\n if (match) {\n if (best === null || match[0].length > best[0].length) {\n best = match;\n bestSymbol = name_1;\n }\n }\n }\n if (best != null) {\n this.text = this.text.substr(best[0].length);\n if (this.text === '')\n this.done = true;\n }\n if (best == null) {\n this.done = true;\n this.symbol = null;\n this.value = null;\n return;\n }\n } while (bestSymbol === 'SKIP');\n this.symbol = bestSymbol;\n this.value = best;\n return true;\n };\n Parser.prototype.accept = function (name) {\n if (this.symbol === name) {\n if (this.value) {\n var v = this.value;\n this.nextSymbol();\n return v;\n }\n this.nextSymbol();\n return true;\n }\n return false;\n };\n Parser.prototype.acceptNumber = function () {\n return this.accept('number');\n };\n Parser.prototype.expect = function (name) {\n if (this.accept(name))\n return true;\n throw new Error('expected ' + name + ' but found ' + this.symbol);\n };\n return Parser;\n}());\nexport default function parseText(text, language) {\n if (language === void 0) { language = ENGLISH; }\n var options = {};\n var ttr = new Parser(language.tokens);\n if (!ttr.start(text))\n return null;\n S();\n return options;\n function S() {\n // every [n]\n ttr.expect('every');\n var n = ttr.acceptNumber();\n if (n)\n options.interval = parseInt(n[0], 10);\n if (ttr.isDone())\n throw new Error('Unexpected end');\n switch (ttr.symbol) {\n case 'day(s)':\n options.freq = RRule.DAILY;\n if (ttr.nextSymbol()) {\n AT();\n F();\n }\n break;\n // FIXME Note: every 2 weekdays != every two weeks on weekdays.\n // DAILY on weekdays is not a valid rule\n case 'weekday(s)':\n options.freq = RRule.WEEKLY;\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n ttr.nextSymbol();\n AT();\n F();\n break;\n case 'week(s)':\n options.freq = RRule.WEEKLY;\n if (ttr.nextSymbol()) {\n ON();\n AT();\n F();\n }\n break;\n case 'hour(s)':\n options.freq = RRule.HOURLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'minute(s)':\n options.freq = RRule.MINUTELY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'month(s)':\n options.freq = RRule.MONTHLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'year(s)':\n options.freq = RRule.YEARLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n options.freq = RRule.WEEKLY;\n var key = ttr.symbol\n .substr(0, 2)\n .toUpperCase();\n options.byweekday = [RRule[key]];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var wkd = decodeWKD();\n if (!wkd) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday');\n }\n options.byweekday.push(RRule[wkd]);\n ttr.nextSymbol();\n }\n AT();\n MDAYs();\n F();\n break;\n case 'january':\n case 'february':\n case 'march':\n case 'april':\n case 'may':\n case 'june':\n case 'july':\n case 'august':\n case 'september':\n case 'october':\n case 'november':\n case 'december':\n options.freq = RRule.YEARLY;\n options.bymonth = [decodeM()];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var m = decodeM();\n if (!m) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected month');\n }\n options.bymonth.push(m);\n ttr.nextSymbol();\n }\n ON();\n F();\n break;\n default:\n throw new Error('Unknown symbol');\n }\n }\n function ON() {\n var on = ttr.accept('on');\n var the = ttr.accept('the');\n if (!(on || the))\n return;\n do {\n var nth = decodeNTH();\n var wkd = decodeWKD();\n var m = decodeM();\n // nth <weekday> | <weekday>\n if (nth) {\n // ttr.nextSymbol()\n if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd].nth(nth));\n }\n else {\n if (!options.bymonthday)\n options.bymonthday = [];\n options.bymonthday.push(nth);\n ttr.accept('day(s)');\n }\n // <weekday>\n }\n else if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd]);\n }\n else if (ttr.symbol === 'weekday(s)') {\n ttr.nextSymbol();\n if (!options.byweekday) {\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n }\n }\n else if (ttr.symbol === 'week(s)') {\n ttr.nextSymbol();\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected week number');\n }\n options.byweekno = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.byweekno.push(parseInt(n[0], 10));\n }\n }\n else if (m) {\n ttr.nextSymbol();\n if (!options.bymonth)\n options.bymonth = [];\n options.bymonth.push(m);\n }\n else {\n return;\n }\n } while (ttr.accept('comma') || ttr.accept('the') || ttr.accept('on'));\n }\n function AT() {\n var at = ttr.accept('at');\n if (!at)\n return;\n do {\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected hour');\n }\n options.byhour = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected hour');\n }\n options.byhour.push(parseInt(n[0], 10));\n }\n } while (ttr.accept('comma') || ttr.accept('at'));\n }\n function decodeM() {\n switch (ttr.symbol) {\n case 'january':\n return 1;\n case 'february':\n return 2;\n case 'march':\n return 3;\n case 'april':\n return 4;\n case 'may':\n return 5;\n case 'june':\n return 6;\n case 'july':\n return 7;\n case 'august':\n return 8;\n case 'september':\n return 9;\n case 'october':\n return 10;\n case 'november':\n return 11;\n case 'december':\n return 12;\n default:\n return false;\n }\n }\n function decodeWKD() {\n switch (ttr.symbol) {\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n return ttr.symbol.substr(0, 2).toUpperCase();\n default:\n return false;\n }\n }\n function decodeNTH() {\n switch (ttr.symbol) {\n case 'last':\n ttr.nextSymbol();\n return -1;\n case 'first':\n ttr.nextSymbol();\n return 1;\n case 'second':\n ttr.nextSymbol();\n return ttr.accept('last') ? -2 : 2;\n case 'third':\n ttr.nextSymbol();\n return ttr.accept('last') ? -3 : 3;\n case 'nth':\n var v = parseInt(ttr.value[1], 10);\n if (v < -366 || v > 366)\n throw new Error('Nth out of range: ' + v);\n ttr.nextSymbol();\n return ttr.accept('last') ? -v : v;\n default:\n return false;\n }\n }\n function MDAYs() {\n ttr.accept('on');\n ttr.accept('the');\n var nth = decodeNTH();\n if (!nth)\n return;\n options.bymonthday = [nth];\n ttr.nextSymbol();\n while (ttr.accept('comma')) {\n nth = decodeNTH();\n if (!nth) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.bymonthday.push(nth);\n ttr.nextSymbol();\n }\n }\n function F() {\n if (ttr.symbol === 'until') {\n var date = Date.parse(ttr.text);\n if (!date)\n throw new Error('Cannot parse until date:' + ttr.text);\n options.until = new Date(date);\n }\n else if (ttr.accept('for')) {\n options.count = parseInt(ttr.value[0], 10);\n ttr.expect('number');\n // ttr.expect('times')\n }\n }\n}\n","export var Frequency;\n(function (Frequency) {\n Frequency[Frequency[\"YEARLY\"] = 0] = \"YEARLY\";\n Frequency[Frequency[\"MONTHLY\"] = 1] = \"MONTHLY\";\n Frequency[Frequency[\"WEEKLY\"] = 2] = \"WEEKLY\";\n Frequency[Frequency[\"DAILY\"] = 3] = \"DAILY\";\n Frequency[Frequency[\"HOURLY\"] = 4] = \"HOURLY\";\n Frequency[Frequency[\"MINUTELY\"] = 5] = \"MINUTELY\";\n Frequency[Frequency[\"SECONDLY\"] = 6] = \"SECONDLY\";\n})(Frequency || (Frequency = {}));\nexport function freqIsDailyOrGreater(freq) {\n return freq < Frequency.HOURLY;\n}\n","import ToText from './totext';\nimport parseText from './parsetext';\nimport { RRule } from '../rrule';\nimport { Frequency } from '../types';\nimport ENGLISH from './i18n';\n/* !\n * rrule.js - Library for working with recurrence rules for calendar dates.\n * https://github.com/jakubroztocil/rrule\n *\n * Copyright 2010, Jakub Roztocil and Lars Schoning\n * Licenced under the BSD licence.\n * https://github.com/jakubroztocil/rrule/blob/master/LICENCE\n *\n */\n/**\n *\n * Implementation of RRule.fromText() and RRule::toText().\n *\n *\n * On the client side, this file needs to be included\n * when those functions are used.\n *\n */\n// =============================================================================\n// fromText\n// =============================================================================\n/**\n * Will be able to convert some of the below described rules from\n * text format to a rule object.\n *\n *\n * RULES\n *\n * Every ([n])\n * day(s)\n * | [weekday], ..., (and) [weekday]\n * | weekday(s)\n * | week(s)\n * | month(s)\n * | [month], ..., (and) [month]\n * | year(s)\n *\n *\n * Plus 0, 1, or multiple of these:\n *\n * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday]\n *\n * on [weekday], ..., (and) [weekday]\n *\n * on the [monthday], [monthday], ... (and) [monthday] (day of the month)\n *\n * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year)\n *\n *\n * Plus 0 or 1 of these:\n *\n * for [n] time(s)\n *\n * until [date]\n *\n * Plus (.)\n *\n *\n * Definitely no supported for parsing:\n *\n * (for year):\n * in week(s) [n], ..., (and) [n]\n *\n * on the [yearday], ..., (and) [n] day of the year\n * on day [yearday], ..., (and) [n]\n *\n *\n * NON-TERMINALS\n *\n * [n]: 1, 2 ..., one, two, three ..\n * [month]: January, February, March, April, May, ... December\n * [weekday]: Monday, ... Sunday\n * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ...\n * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, ..\n * [date]:\n * - [month] (0-31(,) ([year])),\n * - (the) 0-31.(1-12.([year])),\n * - (the) 0-31/(1-12/([year])),\n * - [weekday]\n *\n * [year]: 0000, 0001, ... 01, 02, ..\n *\n * Definitely not supported for parsing:\n *\n * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, ..\n *\n * @param {String} text\n * @return {Object, Boolean} the rule, or null.\n */\nvar fromText = function (text, language) {\n if (language === void 0) { language = ENGLISH; }\n return new RRule(parseText(text, language) || undefined);\n};\nvar common = [\n 'count',\n 'until',\n 'interval',\n 'byweekday',\n 'bymonthday',\n 'bymonth',\n];\nToText.IMPLEMENTED = [];\nToText.IMPLEMENTED[Frequency.HOURLY] = common;\nToText.IMPLEMENTED[Frequency.MINUTELY] = common;\nToText.IMPLEMENTED[Frequency.DAILY] = ['byhour'].concat(common);\nToText.IMPLEMENTED[Frequency.WEEKLY] = common;\nToText.IMPLEMENTED[Frequency.MONTHLY] = common;\nToText.IMPLEMENTED[Frequency.YEARLY] = ['byweekno', 'byyearday'].concat(common);\n// =============================================================================\n// Export\n// =============================================================================\nvar toText = function (rrule, gettext, language, dateFormatter) {\n return new ToText(rrule, gettext, language, dateFormatter).toString();\n};\nvar isFullyConvertible = ToText.isFullyConvertible;\nexport { fromText, parseText, isFullyConvertible, toText };\n","import { __extends } from \"tslib\";\nimport { Frequency } from './types';\nimport { pymod, divmod, empty, includes } from './helpers';\nimport { getWeekday, MAXYEAR, monthRange } from './dateutil';\nvar Time = /** @class */ (function () {\n function Time(hour, minute, second, millisecond) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond || 0;\n }\n Time.prototype.getHours = function () {\n return this.hour;\n };\n Time.prototype.getMinutes = function () {\n return this.minute;\n };\n Time.prototype.getSeconds = function () {\n return this.second;\n };\n Time.prototype.getMilliseconds = function () {\n return this.millisecond;\n };\n Time.prototype.getTime = function () {\n return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 +\n this.millisecond);\n };\n return Time;\n}());\nexport { Time };\nvar DateTime = /** @class */ (function (_super) {\n __extends(DateTime, _super);\n function DateTime(year, month, day, hour, minute, second, millisecond) {\n var _this = _super.call(this, hour, minute, second, millisecond) || this;\n _this.year = year;\n _this.month = month;\n _this.day = day;\n return _this;\n }\n DateTime.fromDate = function (date) {\n return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000);\n };\n DateTime.prototype.getWeekday = function () {\n return getWeekday(new Date(this.getTime()));\n };\n DateTime.prototype.getTime = function () {\n return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime();\n };\n DateTime.prototype.getDay = function () {\n return this.day;\n };\n DateTime.prototype.getMonth = function () {\n return this.month;\n };\n DateTime.prototype.getYear = function () {\n return this.year;\n };\n DateTime.prototype.addYears = function (years) {\n this.year += years;\n };\n DateTime.prototype.addMonths = function (months) {\n this.month += months;\n if (this.month > 12) {\n var yearDiv = Math.floor(this.month / 12);\n var monthMod = pymod(this.month, 12);\n this.month = monthMod;\n this.year += yearDiv;\n if (this.month === 0) {\n this.month = 12;\n --this.year;\n }\n }\n };\n DateTime.prototype.addWeekly = function (days, wkst) {\n if (wkst > this.getWeekday()) {\n this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7;\n }\n else {\n this.day += -(this.getWeekday() - wkst) + days * 7;\n }\n this.fixDay();\n };\n DateTime.prototype.addDaily = function (days) {\n this.day += days;\n this.fixDay();\n };\n DateTime.prototype.addHours = function (hours, filtered, byhour) {\n if (filtered) {\n // Jump to one iteration before next day\n this.hour += Math.floor((23 - this.hour) / hours) * hours;\n }\n for (;;) {\n this.hour += hours;\n var _a = divmod(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod;\n if (dayDiv) {\n this.hour = hourMod;\n this.addDaily(dayDiv);\n }\n if (empty(byhour) || includes(byhour, this.hour))\n break;\n }\n };\n DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) {\n if (filtered) {\n // Jump to one iteration before next day\n this.minute +=\n Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes;\n }\n for (;;) {\n this.minute += minutes;\n var _a = divmod(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod;\n if (hourDiv) {\n this.minute = minuteMod;\n this.addHours(hourDiv, false, byhour);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute))) {\n break;\n }\n }\n };\n DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) {\n if (filtered) {\n // Jump to one iteration before next day\n this.second +=\n Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) /\n seconds) * seconds;\n }\n for (;;) {\n this.second += seconds;\n var _a = divmod(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod;\n if (minuteDiv) {\n this.second = secondMod;\n this.addMinutes(minuteDiv, false, byhour, byminute);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute)) &&\n (empty(bysecond) || includes(bysecond, this.second))) {\n break;\n }\n }\n };\n DateTime.prototype.fixDay = function () {\n if (this.day <= 28) {\n return;\n }\n var daysinmonth = monthRange(this.year, this.month - 1)[1];\n if (this.day <= daysinmonth) {\n return;\n }\n while (this.day > daysinmonth) {\n this.day -= daysinmonth;\n ++this.month;\n if (this.month === 13) {\n this.month = 1;\n ++this.year;\n if (this.year > MAXYEAR) {\n return;\n }\n }\n daysinmonth = monthRange(this.year, this.month - 1)[1];\n }\n };\n DateTime.prototype.add = function (options, filtered) {\n var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n switch (freq) {\n case Frequency.YEARLY:\n return this.addYears(interval);\n case Frequency.MONTHLY:\n return this.addMonths(interval);\n case Frequency.WEEKLY:\n return this.addWeekly(interval, wkst);\n case Frequency.DAILY:\n return this.addDaily(interval);\n case Frequency.HOURLY:\n return this.addHours(interval, filtered, byhour);\n case Frequency.MINUTELY:\n return this.addMinutes(interval, filtered, byhour, byminute);\n case Frequency.SECONDLY:\n return this.addSeconds(interval, filtered, byhour, byminute, bysecond);\n }\n };\n return DateTime;\n}(Time));\nexport { DateTime };\n","import { __assign } from \"tslib\";\nimport { freqIsDailyOrGreater } from './types';\nimport { includes, notEmpty, isPresent, isNumber, isArray, isWeekdayStr, } from './helpers';\nimport { RRule, defaultKeys, DEFAULT_OPTIONS } from './rrule';\nimport { getWeekday, isDate, isValidDate } from './dateutil';\nimport { Weekday } from './weekday';\nimport { Time } from './datetime';\nexport function initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n // Shallow copy for options and origOptions and check for invalid\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!includes(defaultKeys, key))\n invalid.push(key);\n if (isDate(options[key]) && !isValidDate(options[key])) {\n invalid.push(key);\n }\n }\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign({}, options);\n}\nexport function parseOptions(options) {\n var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options));\n if (isPresent(opts.byeaster))\n opts.freq = RRule.YEARLY;\n if (!(isPresent(opts.freq) && RRule.FREQUENCIES[opts.freq])) {\n throw new Error(\"Invalid frequency: \".concat(opts.freq, \" \").concat(options.freq));\n }\n if (!opts.dtstart)\n opts.dtstart = new Date(new Date().setMilliseconds(0));\n if (!isPresent(opts.wkst)) {\n opts.wkst = RRule.MO.weekday;\n }\n else if (isNumber(opts.wkst)) {\n // cool, just keep it like that\n }\n else {\n opts.wkst = opts.wkst.weekday;\n }\n if (isPresent(opts.bysetpos)) {\n if (isNumber(opts.bysetpos))\n opts.bysetpos = [opts.bysetpos];\n for (var i = 0; i < opts.bysetpos.length; i++) {\n var v = opts.bysetpos[i];\n if (v === 0 || !(v >= -366 && v <= 366)) {\n throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1');\n }\n }\n }\n if (!(Boolean(opts.byweekno) ||\n notEmpty(opts.byweekno) ||\n notEmpty(opts.byyearday) ||\n Boolean(opts.bymonthday) ||\n notEmpty(opts.bymonthday) ||\n isPresent(opts.byweekday) ||\n isPresent(opts.byeaster))) {\n switch (opts.freq) {\n case RRule.YEARLY:\n if (!opts.bymonth)\n opts.bymonth = opts.dtstart.getUTCMonth() + 1;\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.MONTHLY:\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.WEEKLY:\n opts.byweekday = [getWeekday(opts.dtstart)];\n break;\n }\n }\n // bymonth\n if (isPresent(opts.bymonth) && !isArray(opts.bymonth)) {\n opts.bymonth = [opts.bymonth];\n }\n // byyearday\n if (isPresent(opts.byyearday) &&\n !isArray(opts.byyearday) &&\n isNumber(opts.byyearday)) {\n opts.byyearday = [opts.byyearday];\n }\n // bymonthday\n if (!isPresent(opts.bymonthday)) {\n opts.bymonthday = [];\n opts.bynmonthday = [];\n }\n else if (isArray(opts.bymonthday)) {\n var bymonthday = [];\n var bynmonthday = [];\n for (var i = 0; i < opts.bymonthday.length; i++) {\n var v = opts.bymonthday[i];\n if (v > 0) {\n bymonthday.push(v);\n }\n else if (v < 0) {\n bynmonthday.push(v);\n }\n }\n opts.bymonthday = bymonthday;\n opts.bynmonthday = bynmonthday;\n }\n else if (opts.bymonthday < 0) {\n opts.bynmonthday = [opts.bymonthday];\n opts.bymonthday = [];\n }\n else {\n opts.bynmonthday = [];\n opts.bymonthday = [opts.bymonthday];\n }\n // byweekno\n if (isPresent(opts.byweekno) && !isArray(opts.byweekno)) {\n opts.byweekno = [opts.byweekno];\n }\n // byweekday / bynweekday\n if (!isPresent(opts.byweekday)) {\n opts.bynweekday = null;\n }\n else if (isNumber(opts.byweekday)) {\n opts.byweekday = [opts.byweekday];\n opts.bynweekday = null;\n }\n else if (isWeekdayStr(opts.byweekday)) {\n opts.byweekday = [Weekday.fromStr(opts.byweekday).weekday];\n opts.bynweekday = null;\n }\n else if (opts.byweekday instanceof Weekday) {\n if (!opts.byweekday.n || opts.freq > RRule.MONTHLY) {\n opts.byweekday = [opts.byweekday.weekday];\n opts.bynweekday = null;\n }\n else {\n opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]];\n opts.byweekday = null;\n }\n }\n else {\n var byweekday = [];\n var bynweekday = [];\n for (var i = 0; i < opts.byweekday.length; i++) {\n var wday = opts.byweekday[i];\n if (isNumber(wday)) {\n byweekday.push(wday);\n continue;\n }\n else if (isWeekdayStr(wday)) {\n byweekday.push(Weekday.fromStr(wday).weekday);\n continue;\n }\n if (!wday.n || opts.freq > RRule.MONTHLY) {\n byweekday.push(wday.weekday);\n }\n else {\n bynweekday.push([wday.weekday, wday.n]);\n }\n }\n opts.byweekday = notEmpty(byweekday) ? byweekday : null;\n opts.bynweekday = notEmpty(bynweekday) ? bynweekday : null;\n }\n // byhour\n if (!isPresent(opts.byhour)) {\n opts.byhour = opts.freq < RRule.HOURLY ? [opts.dtstart.getUTCHours()] : null;\n }\n else if (isNumber(opts.byhour)) {\n opts.byhour = [opts.byhour];\n }\n // byminute\n if (!isPresent(opts.byminute)) {\n opts.byminute =\n opts.freq < RRule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null;\n }\n else if (isNumber(opts.byminute)) {\n opts.byminute = [opts.byminute];\n }\n // bysecond\n if (!isPresent(opts.bysecond)) {\n opts.bysecond =\n opts.freq < RRule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null;\n }\n else if (isNumber(opts.bysecond)) {\n opts.bysecond = [opts.bysecond];\n }\n return { parsedOptions: opts };\n}\nexport function buildTimeset(opts) {\n var millisecondModulo = opts.dtstart.getTime() % 1000;\n if (!freqIsDailyOrGreater(opts.freq)) {\n return [];\n }\n var timeset = [];\n opts.byhour.forEach(function (hour) {\n opts.byminute.forEach(function (minute) {\n opts.bysecond.forEach(function (second) {\n timeset.push(new Time(hour, minute, second, millisecondModulo));\n });\n });\n });\n return timeset;\n}\n","import { __assign } from \"tslib\";\nimport { Frequency } from './types';\nimport { Weekday } from './weekday';\nimport { untilStringToDate } from './dateutil';\nimport { Days } from './rrule';\nexport function parseString(rfcString) {\n var options = rfcString\n .split('\\n')\n .map(parseLine)\n .filter(function (x) { return x !== null; });\n return __assign(__assign({}, options[0]), options[1]);\n}\nexport function parseDtstart(line) {\n var options = {};\n var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\\s]+)/i.exec(line);\n if (!dtstartWithZone) {\n return options;\n }\n var tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2];\n if (tzid) {\n options.tzid = tzid;\n }\n options.dtstart = untilStringToDate(dtstart);\n return options;\n}\nfunction parseLine(rfcString) {\n rfcString = rfcString.replace(/^\\s+|\\s+$/, '');\n if (!rfcString.length)\n return null;\n var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase());\n if (!header) {\n return parseRrule(rfcString);\n }\n var key = header[1];\n switch (key.toUpperCase()) {\n case 'RRULE':\n case 'EXRULE':\n return parseRrule(rfcString);\n case 'DTSTART':\n return parseDtstart(rfcString);\n default:\n throw new Error(\"Unsupported RFC prop \".concat(key, \" in \").concat(rfcString));\n }\n}\nfunction parseRrule(line) {\n var strippedLine = line.replace(/^RRULE:/i, '');\n var options = parseDtstart(strippedLine);\n var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';');\n attrs.forEach(function (attr) {\n var _a = attr.split('='), key = _a[0], value = _a[1];\n switch (key.toUpperCase()) {\n case 'FREQ':\n options.freq = Frequency[value.toUpperCase()];\n break;\n case 'WKST':\n options.wkst = Days[value.toUpperCase()];\n break;\n case 'COUNT':\n case 'INTERVAL':\n case 'BYSETPOS':\n case 'BYMONTH':\n case 'BYMONTHDAY':\n case 'BYYEARDAY':\n case 'BYWEEKNO':\n case 'BYHOUR':\n case 'BYMINUTE':\n case 'BYSECOND':\n var num = parseNumber(value);\n var optionKey = key.toLowerCase();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n options[optionKey] = num;\n break;\n case 'BYWEEKDAY':\n case 'BYDAY':\n options.byweekday = parseWeekday(value);\n break;\n case 'DTSTART':\n case 'TZID':\n // for backwards compatibility\n var dtstart = parseDtstart(line);\n options.tzid = dtstart.tzid;\n options.dtstart = dtstart.dtstart;\n break;\n case 'UNTIL':\n options.until = untilStringToDate(value);\n break;\n case 'BYEASTER':\n options.byeaster = Number(value);\n break;\n default:\n throw new Error(\"Unknown RRULE property '\" + key + \"'\");\n }\n });\n return options;\n}\nfunction parseNumber(value) {\n if (value.indexOf(',') !== -1) {\n var values = value.split(',');\n return values.map(parseIndividualNumber);\n }\n return parseIndividualNumber(value);\n}\nfunction parseIndividualNumber(value) {\n if (/^[+-]?\\d+$/.test(value)) {\n return Number(value);\n }\n return value;\n}\nfunction parseWeekday(value) {\n var days = value.split(',');\n return days.map(function (day) {\n if (day.length === 2) {\n // MO, TU, ...\n return Days[day]; // wday instanceof Weekday\n }\n // -1MO, +3FR, 1SO, 13TU ...\n var parts = day.match(/^([+-]?\\d{1,2})([A-Z]{2})$/);\n if (!parts || parts.length < 3) {\n throw new SyntaxError(\"Invalid weekday string: \".concat(day));\n }\n var n = Number(parts[1]);\n var wdaypart = parts[2];\n var wday = Days[wdaypart].weekday;\n return new Weekday(wday, n);\n });\n}\n","import { dateInTimeZone, timeToUntilString } from './dateutil';\nvar DateWithZone = /** @class */ (function () {\n function DateWithZone(date, tzid) {\n if (isNaN(date.getTime())) {\n throw new RangeError('Invalid date passed to DateWithZone');\n }\n this.date = date;\n this.tzid = tzid;\n }\n Object.defineProperty(DateWithZone.prototype, \"isUTC\", {\n get: function () {\n return !this.tzid || this.tzid.toUpperCase() === 'UTC';\n },\n enumerable: false,\n configurable: true\n });\n DateWithZone.prototype.toString = function () {\n var datestr = timeToUntilString(this.date.getTime(), this.isUTC);\n if (!this.isUTC) {\n return \";TZID=\".concat(this.tzid, \":\").concat(datestr);\n }\n return \":\".concat(datestr);\n };\n DateWithZone.prototype.getTime = function () {\n return this.date.getTime();\n };\n DateWithZone.prototype.rezonedDate = function () {\n if (this.isUTC) {\n return this.date;\n }\n return dateInTimeZone(this.date, this.tzid);\n };\n return DateWithZone;\n}());\nexport { DateWithZone };\n","import { RRule, DEFAULT_OPTIONS } from './rrule';\nimport { includes, isPresent, isArray, isNumber, toArray } from './helpers';\nimport { Weekday } from './weekday';\nimport { timeToUntilString } from './dateutil';\nimport { DateWithZone } from './datewithzone';\nexport function optionsToString(options) {\n var rrule = [];\n var dtstart = '';\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] === 'tzid')\n continue;\n if (!includes(defaultKeys, keys[i]))\n continue;\n var key = keys[i].toUpperCase();\n var value = options[keys[i]];\n var outValue = '';\n if (!isPresent(value) || (isArray(value) && !value.length))\n continue;\n switch (key) {\n case 'FREQ':\n outValue = RRule.FREQUENCIES[options.freq];\n break;\n case 'WKST':\n if (isNumber(value)) {\n outValue = new Weekday(value).toString();\n }\n else {\n outValue = value.toString();\n }\n break;\n case 'BYWEEKDAY':\n /*\n NOTE: BYWEEKDAY is a special case.\n RRule() deconstructs the rule.options.byweekday array\n into an array of Weekday arguments.\n On the other hand, rule.origOptions is an array of Weekdays.\n We need to handle both cases here.\n It might be worth change RRule to keep the Weekdays.\n \n Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC)\n \n */\n key = 'BYDAY';\n outValue = toArray(value)\n .map(function (wday) {\n if (wday instanceof Weekday) {\n return wday;\n }\n if (isArray(wday)) {\n return new Weekday(wday[0], wday[1]);\n }\n return new Weekday(wday);\n })\n .toString();\n break;\n case 'DTSTART':\n dtstart = buildDtstart(value, options.tzid);\n break;\n case 'UNTIL':\n outValue = timeToUntilString(value, !options.tzid);\n break;\n default:\n if (isArray(value)) {\n var strValues = [];\n for (var j = 0; j < value.length; j++) {\n strValues[j] = String(value[j]);\n }\n outValue = strValues.toString();\n }\n else {\n outValue = String(value);\n }\n }\n if (outValue) {\n rrule.push([key, outValue]);\n }\n }\n var rules = rrule\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value.toString());\n })\n .join(';');\n var ruleString = '';\n if (rules !== '') {\n ruleString = \"RRULE:\".concat(rules);\n }\n return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\\n');\n}\nfunction buildDtstart(dtstart, tzid) {\n if (!dtstart) {\n return '';\n }\n return 'DTSTART' + new DateWithZone(new Date(dtstart), tzid).toString();\n}\n","import IterResult from './iterresult';\nimport { clone, cloneDates } from './dateutil';\nimport { isArray } from './helpers';\nfunction argsMatch(left, right) {\n if (Array.isArray(left)) {\n if (!Array.isArray(right))\n return false;\n if (left.length !== right.length)\n return false;\n return left.every(function (date, i) { return date.getTime() === right[i].getTime(); });\n }\n if (left instanceof Date) {\n return right instanceof Date && left.getTime() === right.getTime();\n }\n return left === right;\n}\nvar Cache = /** @class */ (function () {\n function Cache() {\n this.all = false;\n this.before = [];\n this.after = [];\n this.between = [];\n }\n /**\n * @param {String} what - all/before/after/between\n * @param {Array,Date} value - an array of dates, one date, or null\n * @param {Object?} args - _iter arguments\n */\n Cache.prototype._cacheAdd = function (what, value, args) {\n if (value) {\n value = value instanceof Date ? clone(value) : cloneDates(value);\n }\n if (what === 'all') {\n this.all = value;\n }\n else {\n args._value = value;\n this[what].push(args);\n }\n };\n /**\n * @return false - not in the cache\n * @return null - cached, but zero occurrences (before/after)\n * @return Date - cached (before/after)\n * @return [] - cached, but zero occurrences (all/between)\n * @return [Date1, DateN] - cached (all/between)\n */\n Cache.prototype._cacheGet = function (what, args) {\n var cached = false;\n var argsKeys = args ? Object.keys(args) : [];\n var findCacheDiff = function (item) {\n for (var i = 0; i < argsKeys.length; i++) {\n var key = argsKeys[i];\n if (!argsMatch(args[key], item[key])) {\n return true;\n }\n }\n return false;\n };\n var cachedObject = this[what];\n if (what === 'all') {\n cached = this.all;\n }\n else if (isArray(cachedObject)) {\n // Let's see whether we've already called the\n // 'what' method with the same 'args'\n for (var i = 0; i < cachedObject.length; i++) {\n var item = cachedObject[i];\n if (argsKeys.length && findCacheDiff(item))\n continue;\n cached = item._value;\n break;\n }\n }\n if (!cached && this.all) {\n // Not in the cache, but we already know all the occurrences,\n // so we can find the correct dates from the cached ones.\n var iterResult = new IterResult(what, args);\n for (var i = 0; i < this.all.length; i++) {\n if (!iterResult.accept(this.all[i]))\n break;\n }\n cached = iterResult.getValue();\n this._cacheAdd(what, cached, args);\n }\n return isArray(cached)\n ? cloneDates(cached)\n : cached instanceof Date\n ? clone(cached)\n : cached;\n };\n return Cache;\n}());\nexport { Cache };\n","import { __spreadArray } from \"tslib\";\nimport { range, repeat } from './helpers';\n// =============================================================================\n// Date masks\n// =============================================================================\n// Every mask is 7 days longer to handle cross-year weekly periods.\nvar M365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 28), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 29), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M28 = range(1, 29);\nvar M29 = range(1, 30);\nvar M30 = range(1, 31);\nvar M31 = range(1, 32);\nvar MDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M29, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar MDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M28, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar NM28 = range(-28, 0);\nvar NM29 = range(-29, 0);\nvar NM30 = range(-30, 0);\nvar NM31 = range(-31, 0);\nvar NMDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM29, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar NMDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM28, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\nvar M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\nvar WDAYMASK = (function () {\n var wdaymask = [];\n for (var i = 0; i < 55; i++)\n wdaymask = wdaymask.concat(range(7));\n return wdaymask;\n})();\nexport { WDAYMASK, M365MASK, M365RANGE, M366MASK, M366RANGE, MDAY365MASK, MDAY366MASK, NMDAY365MASK, NMDAY366MASK, };\n","import { notEmpty, repeat, range, isPresent } from '../helpers';\nimport { Frequency } from '../types';\nimport { rebuildYear } from './yearinfo';\nimport { rebuildMonth } from './monthinfo';\nimport { easter } from './easter';\nimport { Time } from '../datetime';\nimport { datetime, sort, toOrdinal } from '../dateutil';\n// =============================================================================\n// Iterinfo\n// =============================================================================\nvar Iterinfo = /** @class */ (function () {\n // eslint-disable-next-line no-empty-function\n function Iterinfo(options) {\n this.options = options;\n }\n Iterinfo.prototype.rebuild = function (year, month) {\n var options = this.options;\n if (year !== this.lastyear) {\n this.yearinfo = rebuildYear(year, options);\n }\n if (notEmpty(options.bynweekday) &&\n (month !== this.lastmonth || year !== this.lastyear)) {\n var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask;\n this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options);\n }\n if (isPresent(options.byeaster)) {\n this.eastermask = easter(year, options.byeaster);\n }\n };\n Object.defineProperty(Iterinfo.prototype, \"lastyear\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastyear : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"lastmonth\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastmonth : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearlen\", {\n get: function () {\n return this.yearinfo.yearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearordinal\", {\n get: function () {\n return this.yearinfo.yearordinal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mrange\", {\n get: function () {\n return this.yearinfo.mrange;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wdaymask\", {\n get: function () {\n return this.yearinfo.wdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mmask\", {\n get: function () {\n return this.yearinfo.mmask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wnomask\", {\n get: function () {\n return this.yearinfo.wnomask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nwdaymask\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.nwdaymask : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nextyearlen\", {\n get: function () {\n return this.yearinfo.nextyearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mdaymask\", {\n get: function () {\n return this.yearinfo.mdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nmdaymask\", {\n get: function () {\n return this.yearinfo.nmdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Iterinfo.prototype.ydayset = function () {\n return [range(this.yearlen), 0, this.yearlen];\n };\n Iterinfo.prototype.mdayset = function (_, month) {\n var start = this.mrange[month - 1];\n var end = this.mrange[month];\n var set = repeat(null, this.yearlen);\n for (var i = start; i < end; i++)\n set[i] = i;\n return [set, start, end];\n };\n Iterinfo.prototype.wdayset = function (year, month, day) {\n // We need to handle cross-year weeks here.\n var set = repeat(null, this.yearlen + 7);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n var start = i;\n for (var j = 0; j < 7; j++) {\n set[i] = i;\n ++i;\n if (this.wdaymask[i] === this.options.wkst)\n break;\n }\n return [set, start, i];\n };\n Iterinfo.prototype.ddayset = function (year, month, day) {\n var set = repeat(null, this.yearlen);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n set[i] = i;\n return [set, i, i + 1];\n };\n Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) {\n var _this = this;\n var set = [];\n this.options.byminute.forEach(function (minute) {\n set = set.concat(_this.mtimeset(hour, minute, second, millisecond));\n });\n sort(set);\n return set;\n };\n Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) {\n var set = this.options.bysecond.map(function (second) { return new Time(hour, minute, second, millisecond); });\n sort(set);\n return set;\n };\n Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) {\n return [new Time(hour, minute, second, millisecond)];\n };\n Iterinfo.prototype.getdayset = function (freq) {\n switch (freq) {\n case Frequency.YEARLY:\n return this.ydayset.bind(this);\n case Frequency.MONTHLY:\n return this.mdayset.bind(this);\n case Frequency.WEEKLY:\n return this.wdayset.bind(this);\n case Frequency.DAILY:\n return this.ddayset.bind(this);\n default:\n return this.ddayset.bind(this);\n }\n };\n Iterinfo.prototype.gettimeset = function (freq) {\n switch (freq) {\n case Frequency.HOURLY:\n return this.htimeset.bind(this);\n case Frequency.MINUTELY:\n return this.mtimeset.bind(this);\n case Frequency.SECONDLY:\n return this.stimeset.bind(this);\n }\n };\n return Iterinfo;\n}());\nexport default Iterinfo;\n","import { __assign } from \"tslib\";\nimport { datetime, getWeekday, isLeapYear, toOrdinal } from '../dateutil';\nimport { empty, repeat, pymod, includes } from '../helpers';\nimport { M365MASK, MDAY365MASK, NMDAY365MASK, WDAYMASK, M365RANGE, M366MASK, MDAY366MASK, NMDAY366MASK, M366RANGE, } from '../masks';\nexport function rebuildYear(year, options) {\n var firstyday = datetime(year, 1, 1);\n var yearlen = isLeapYear(year) ? 366 : 365;\n var nextyearlen = isLeapYear(year + 1) ? 366 : 365;\n var yearordinal = toOrdinal(firstyday);\n var yearweekday = getWeekday(firstyday);\n var result = __assign(__assign({ yearlen: yearlen, nextyearlen: nextyearlen, yearordinal: yearordinal, yearweekday: yearweekday }, baseYearMasks(year)), { wnomask: null });\n if (empty(options.byweekno)) {\n return result;\n }\n result.wnomask = repeat(0, yearlen + 7);\n var firstwkst;\n var wyearlen;\n var no1wkst = (firstwkst = pymod(7 - yearweekday + options.wkst, 7));\n if (no1wkst >= 4) {\n no1wkst = 0;\n // Number of days in the year, plus the days we got\n // from last year.\n wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7);\n }\n else {\n // Number of days in the year, minus the days we\n // left in last year.\n wyearlen = yearlen - no1wkst;\n }\n var div = Math.floor(wyearlen / 7);\n var mod = pymod(wyearlen, 7);\n var numweeks = Math.floor(div + mod / 4);\n for (var j = 0; j < options.byweekno.length; j++) {\n var n = options.byweekno[j];\n if (n < 0) {\n n += numweeks + 1;\n }\n if (!(n > 0 && n <= numweeks)) {\n continue;\n }\n var i = void 0;\n if (n > 1) {\n i = no1wkst + (n - 1) * 7;\n if (no1wkst !== firstwkst) {\n i -= 7 - firstwkst;\n }\n }\n else {\n i = no1wkst;\n }\n for (var k = 0; k < 7; k++) {\n result.wnomask[i] = 1;\n i++;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n if (includes(options.byweekno, 1)) {\n // Check week number 1 of next year as well\n // orig-TODO : Check -numweeks for next year.\n var i = no1wkst + numweeks * 7;\n if (no1wkst !== firstwkst)\n i -= 7 - firstwkst;\n if (i < yearlen) {\n // If week starts in next year, we\n // don't care about it.\n for (var j = 0; j < 7; j++) {\n result.wnomask[i] = 1;\n i += 1;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n }\n if (no1wkst) {\n // Check last week number of last year as\n // well. If no1wkst is 0, either the year\n // started on week start, or week number 1\n // got days from last year, so there are no\n // days from last year's last week number in\n // this year.\n var lnumweeks = void 0;\n if (!includes(options.byweekno, -1)) {\n var lyearweekday = getWeekday(datetime(year - 1, 1, 1));\n var lno1wkst = pymod(7 - lyearweekday.valueOf() + options.wkst, 7);\n var lyearlen = isLeapYear(year - 1) ? 366 : 365;\n var weekst = void 0;\n if (lno1wkst >= 4) {\n lno1wkst = 0;\n weekst = lyearlen + pymod(lyearweekday - options.wkst, 7);\n }\n else {\n weekst = yearlen - no1wkst;\n }\n lnumweeks = Math.floor(52 + pymod(weekst, 7) / 4);\n }\n else {\n lnumweeks = -1;\n }\n if (includes(options.byweekno, lnumweeks)) {\n for (var i = 0; i < no1wkst; i++)\n result.wnomask[i] = 1;\n }\n }\n return result;\n}\nfunction baseYearMasks(year) {\n var yearlen = isLeapYear(year) ? 366 : 365;\n var firstyday = datetime(year, 1, 1);\n var wday = getWeekday(firstyday);\n if (yearlen === 365) {\n return {\n mmask: M365MASK,\n mdaymask: MDAY365MASK,\n nmdaymask: NMDAY365MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M365RANGE,\n };\n }\n return {\n mmask: M366MASK,\n mdaymask: MDAY366MASK,\n nmdaymask: NMDAY366MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M366RANGE,\n };\n}\n","import { RRule } from '../rrule';\nimport { empty, repeat, pymod } from '../helpers';\nexport function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {\n var result = {\n lastyear: year,\n lastmonth: month,\n nwdaymask: [],\n };\n var ranges = [];\n if (options.freq === RRule.YEARLY) {\n if (empty(options.bymonth)) {\n ranges = [[0, yearlen]];\n }\n else {\n for (var j = 0; j < options.bymonth.length; j++) {\n month = options.bymonth[j];\n ranges.push(mrange.slice(month - 1, month + 1));\n }\n }\n }\n else if (options.freq === RRule.MONTHLY) {\n ranges = [mrange.slice(month - 1, month + 1)];\n }\n if (empty(ranges)) {\n return result;\n }\n // Weekly frequency won't get here, so we may not\n // care about cross-year weekly periods.\n result.nwdaymask = repeat(0, yearlen);\n for (var j = 0; j < ranges.length; j++) {\n var rang = ranges[j];\n var first = rang[0];\n var last = rang[1] - 1;\n for (var k = 0; k < options.bynweekday.length; k++) {\n var i = void 0;\n var _a = options.bynweekday[k], wday = _a[0], n = _a[1];\n if (n < 0) {\n i = last + (n + 1) * 7;\n i -= pymod(wdaymask[i] - wday, 7);\n }\n else {\n i = first + (n - 1) * 7;\n i += pymod(7 - wdaymask[i] + wday, 7);\n }\n if (first <= i && i <= last)\n result.nwdaymask[i] = 1;\n }\n }\n return result;\n}\n","export function easter(y, offset) {\n if (offset === void 0) { offset = 0; }\n var a = y % 19;\n var b = Math.floor(y / 100);\n var c = y % 100;\n var d = Math.floor(b / 4);\n var e = b % 4;\n var f = Math.floor((b + 8) / 25);\n var g = Math.floor((b - f + 1) / 3);\n var h = Math.floor(19 * a + b - d - g + 15) % 30;\n var i = Math.floor(c / 4);\n var k = c % 4;\n var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7;\n var m = Math.floor((a + 11 * h + 22 * l) / 451);\n var month = Math.floor((h + l - 7 * m + 114) / 31);\n var day = ((h + l - 7 * m + 114) % 31) + 1;\n var date = Date.UTC(y, month - 1, day + offset);\n var yearStart = Date.UTC(y, 0, 1);\n return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))];\n}\n","import { combine, fromOrdinal, sort } from '../dateutil';\nimport { pymod, isPresent, includes } from '../helpers';\nexport function buildPoslist(bysetpos, timeset, start, end, ii, dayset) {\n var poslist = [];\n for (var j = 0; j < bysetpos.length; j++) {\n var daypos = void 0;\n var timepos = void 0;\n var pos = bysetpos[j];\n if (pos < 0) {\n daypos = Math.floor(pos / timeset.length);\n timepos = pymod(pos, timeset.length);\n }\n else {\n daypos = Math.floor((pos - 1) / timeset.length);\n timepos = pymod(pos - 1, timeset.length);\n }\n var tmp = [];\n for (var k = start; k < end; k++) {\n var val = dayset[k];\n if (!isPresent(val))\n continue;\n tmp.push(val);\n }\n var i = void 0;\n if (daypos < 0) {\n i = tmp.slice(daypos)[0];\n }\n else {\n i = tmp[daypos];\n }\n var time = timeset[timepos];\n var date = fromOrdinal(ii.yearordinal + i);\n var res = combine(date, time);\n // XXX: can this ever be in the array?\n // - compare the actual date instead?\n if (!includes(poslist, res))\n poslist.push(res);\n }\n sort(poslist);\n return poslist;\n}\n","import { freqIsDailyOrGreater } from '../types';\nimport { combine, fromOrdinal, MAXYEAR } from '../dateutil';\nimport Iterinfo from '../iterinfo/index';\nimport { RRule } from '../rrule';\nimport { buildTimeset } from '../parseoptions';\nimport { notEmpty, includes, isPresent } from '../helpers';\nimport { DateWithZone } from '../datewithzone';\nimport { buildPoslist } from './poslist';\nimport { DateTime } from '../datetime';\nexport function iter(iterResult, options) {\n var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos;\n var count = options.count;\n if (count === 0 || interval === 0) {\n return emitResult(iterResult);\n }\n var counterDate = DateTime.fromDate(dtstart);\n var ii = new Iterinfo(options);\n ii.rebuild(counterDate.year, counterDate.month);\n var timeset = makeTimeset(ii, counterDate, options);\n for (;;) {\n var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2];\n var filtered = removeFilteredDays(dayset, start, end, ii, options);\n if (notEmpty(bysetpos)) {\n var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset);\n for (var j = 0; j < poslist.length; j++) {\n var res = poslist[j];\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n else {\n for (var j = start; j < end; j++) {\n var currentDay = dayset[j];\n if (!isPresent(currentDay)) {\n continue;\n }\n var date = fromOrdinal(ii.yearordinal + currentDay);\n for (var k = 0; k < timeset.length; k++) {\n var time = timeset[k];\n var res = combine(date, time);\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n }\n if (options.interval === 0) {\n return emitResult(iterResult);\n }\n // Handle frequency and interval\n counterDate.add(options, filtered);\n if (counterDate.year > MAXYEAR) {\n return emitResult(iterResult);\n }\n if (!freqIsDailyOrGreater(freq)) {\n timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0);\n }\n ii.rebuild(counterDate.year, counterDate.month);\n }\n}\nfunction isFiltered(ii, currentDay, options) {\n var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday;\n return ((notEmpty(bymonth) && !includes(bymonth, ii.mmask[currentDay])) ||\n (notEmpty(byweekno) && !ii.wnomask[currentDay]) ||\n (notEmpty(byweekday) && !includes(byweekday, ii.wdaymask[currentDay])) ||\n (notEmpty(ii.nwdaymask) && !ii.nwdaymask[currentDay]) ||\n (byeaster !== null && !includes(ii.eastermask, currentDay)) ||\n ((notEmpty(bymonthday) || notEmpty(bynmonthday)) &&\n !includes(bymonthday, ii.mdaymask[currentDay]) &&\n !includes(bynmonthday, ii.nmdaymask[currentDay])) ||\n (notEmpty(byyearday) &&\n ((currentDay < ii.yearlen &&\n !includes(byyearday, currentDay + 1) &&\n !includes(byyearday, -ii.yearlen + currentDay)) ||\n (currentDay >= ii.yearlen &&\n !includes(byyearday, currentDay + 1 - ii.yearlen) &&\n !includes(byyearday, -ii.nextyearlen + currentDay - ii.yearlen)))));\n}\nfunction rezoneIfNeeded(date, options) {\n return new DateWithZone(date, options.tzid).rezonedDate();\n}\nfunction emitResult(iterResult) {\n return iterResult.getValue();\n}\nfunction removeFilteredDays(dayset, start, end, ii, options) {\n var filtered = false;\n for (var dayCounter = start; dayCounter < end; dayCounter++) {\n var currentDay = dayset[dayCounter];\n filtered = isFiltered(ii, currentDay, options);\n if (filtered)\n dayset[currentDay] = null;\n }\n return filtered;\n}\nfunction makeTimeset(ii, counterDate, options) {\n var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n if (freqIsDailyOrGreater(freq)) {\n return buildTimeset(options);\n }\n if ((freq >= RRule.HOURLY &&\n notEmpty(byhour) &&\n !includes(byhour, counterDate.hour)) ||\n (freq >= RRule.MINUTELY &&\n notEmpty(byminute) &&\n !includes(byminute, counterDate.minute)) ||\n (freq >= RRule.SECONDLY &&\n notEmpty(bysecond) &&\n !includes(bysecond, counterDate.second))) {\n return [];\n }\n return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond);\n}\n","import { isValidDate } from './dateutil';\nimport IterResult from './iterresult';\nimport CallbackIterResult from './callbackiterresult';\nimport { fromText, parseText, toText, isFullyConvertible } from './nlp/index';\nimport { Frequency, } from './types';\nimport { parseOptions, initializeOptions } from './parseoptions';\nimport { parseString } from './parsestring';\nimport { optionsToString } from './optionstostring';\nimport { Cache } from './cache';\nimport { Weekday } from './weekday';\nimport { iter } from './iter/index';\n// =============================================================================\n// RRule\n// =============================================================================\nexport var Days = {\n MO: new Weekday(0),\n TU: new Weekday(1),\n WE: new Weekday(2),\n TH: new Weekday(3),\n FR: new Weekday(4),\n SA: new Weekday(5),\n SU: new Weekday(6),\n};\nexport var DEFAULT_OPTIONS = {\n freq: Frequency.YEARLY,\n dtstart: null,\n interval: 1,\n wkst: Days.MO,\n count: null,\n until: null,\n tzid: null,\n bysetpos: null,\n bymonth: null,\n bymonthday: null,\n bynmonthday: null,\n byyearday: null,\n byweekno: null,\n byweekday: null,\n bynweekday: null,\n byhour: null,\n byminute: null,\n bysecond: null,\n byeaster: null,\n};\nexport var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n/**\n *\n * @param {Options?} options - see <http://labix.org/python-dateutil/#head-cf004ee9a75592797e076752b2a889c10f445418>\n * - The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ...\n * @constructor\n */\nvar RRule = /** @class */ (function () {\n function RRule(options, noCache) {\n if (options === void 0) { options = {}; }\n if (noCache === void 0) { noCache = false; }\n // RFC string\n this._cache = noCache ? null : new Cache();\n // used by toString()\n this.origOptions = initializeOptions(options);\n var parsedOptions = parseOptions(options).parsedOptions;\n this.options = parsedOptions;\n }\n RRule.parseText = function (text, language) {\n return parseText(text, language);\n };\n RRule.fromText = function (text, language) {\n return fromText(text, language);\n };\n RRule.fromString = function (str) {\n return new RRule(RRule.parseString(str) || undefined);\n };\n RRule.prototype._iter = function (iterResult) {\n return iter(iterResult, this.options);\n };\n RRule.prototype._cacheGet = function (what, args) {\n if (!this._cache)\n return false;\n return this._cache._cacheGet(what, args);\n };\n RRule.prototype._cacheAdd = function (what, value, args) {\n if (!this._cache)\n return;\n return this._cache._cacheAdd(what, value, args);\n };\n /**\n * @param {Function} iterator - optional function that will be called\n * on each date that is added. It can return false\n * to stop the iteration.\n * @return Array containing all recurrences.\n */\n RRule.prototype.all = function (iterator) {\n if (iterator) {\n return this._iter(new CallbackIterResult('all', {}, iterator));\n }\n var result = this._cacheGet('all');\n if (result === false) {\n result = this._iter(new IterResult('all', {}));\n this._cacheAdd('all', result);\n }\n return result;\n };\n /**\n * Returns all the occurrences of the rrule between after and before.\n * The inc keyword defines what happens if after and/or before are\n * themselves occurrences. With inc == True, they will be included in the\n * list, if they are found in the recurrence set.\n *\n * @return Array\n */\n RRule.prototype.between = function (after, before, inc, iterator) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(after) || !isValidDate(before)) {\n throw new Error('Invalid date passed in to RRule.between');\n }\n var args = {\n before: before,\n after: after,\n inc: inc,\n };\n if (iterator) {\n return this._iter(new CallbackIterResult('between', args, iterator));\n }\n var result = this._cacheGet('between', args);\n if (result === false) {\n result = this._iter(new IterResult('between', args));\n this._cacheAdd('between', result, args);\n }\n return result;\n };\n /**\n * Returns the last recurrence before the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.before = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.before');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('before', args);\n if (result === false) {\n result = this._iter(new IterResult('before', args));\n this._cacheAdd('before', result, args);\n }\n return result;\n };\n /**\n * Returns the first recurrence after the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.after = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.after');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('after', args);\n if (result === false) {\n result = this._iter(new IterResult('after', args));\n this._cacheAdd('after', result, args);\n }\n return result;\n };\n /**\n * Returns the number of recurrences in this set. It will have go trough\n * the whole recurrence, if this hasn't been done before.\n */\n RRule.prototype.count = function () {\n return this.all().length;\n };\n /**\n * Converts the rrule into its string representation\n *\n * @see <http://www.ietf.org/rfc/rfc2445.txt>\n * @return String\n */\n RRule.prototype.toString = function () {\n return optionsToString(this.origOptions);\n };\n /**\n * Will convert all rules described in nlp:ToText\n * to text.\n */\n RRule.prototype.toText = function (gettext, language, dateFormatter) {\n return toText(this, gettext, language, dateFormatter);\n };\n RRule.prototype.isFullyConvertibleToText = function () {\n return isFullyConvertible(this);\n };\n /**\n * @return a RRule instance with the same freq and options\n * as this one (cache is not cloned)\n */\n RRule.prototype.clone = function () {\n return new RRule(this.origOptions);\n };\n // RRule class 'constants'\n RRule.FREQUENCIES = [\n 'YEARLY',\n 'MONTHLY',\n 'WEEKLY',\n 'DAILY',\n 'HOURLY',\n 'MINUTELY',\n 'SECONDLY',\n ];\n RRule.YEARLY = Frequency.YEARLY;\n RRule.MONTHLY = Frequency.MONTHLY;\n RRule.WEEKLY = Frequency.WEEKLY;\n RRule.DAILY = Frequency.DAILY;\n RRule.HOURLY = Frequency.HOURLY;\n RRule.MINUTELY = Frequency.MINUTELY;\n RRule.SECONDLY = Frequency.SECONDLY;\n RRule.MO = Days.MO;\n RRule.TU = Days.TU;\n RRule.WE = Days.WE;\n RRule.TH = Days.TH;\n RRule.FR = Days.FR;\n RRule.SA = Days.SA;\n RRule.SU = Days.SU;\n RRule.parseString = parseString;\n RRule.optionsToString = optionsToString;\n return RRule;\n}());\nexport { RRule };\n","import { __assign } from \"tslib\";\nimport { RRule } from './rrule';\nimport { RRuleSet } from './rruleset';\nimport { untilStringToDate } from './dateutil';\nimport { includes, split } from './helpers';\nimport { parseString, parseDtstart } from './parsestring';\n/**\n * RRuleStr\n * To parse a set of rrule strings\n */\nvar DEFAULT_OPTIONS = {\n dtstart: null,\n cache: false,\n unfold: false,\n forceset: false,\n compatible: false,\n tzid: null,\n};\nexport function parseInput(s, options) {\n var rrulevals = [];\n var rdatevals = [];\n var exrulevals = [];\n var exdatevals = [];\n var parsedDtstart = parseDtstart(s);\n var dtstart = parsedDtstart.dtstart;\n var tzid = parsedDtstart.tzid;\n var lines = splitIntoLines(s, options.unfold);\n lines.forEach(function (line) {\n var _a;\n if (!line)\n return;\n var _b = breakDownLine(line), name = _b.name, parms = _b.parms, value = _b.value;\n switch (name.toUpperCase()) {\n case 'RRULE':\n if (parms.length) {\n throw new Error(\"unsupported RRULE parm: \".concat(parms.join(',')));\n }\n rrulevals.push(parseString(line));\n break;\n case 'RDATE':\n var _c = (_a = /RDATE(?:;TZID=([^:=]+))?/i.exec(line)) !== null && _a !== void 0 ? _a : [], rdateTzid = _c[1];\n if (rdateTzid && !tzid) {\n tzid = rdateTzid;\n }\n rdatevals = rdatevals.concat(parseRDate(value, parms));\n break;\n case 'EXRULE':\n if (parms.length) {\n throw new Error(\"unsupported EXRULE parm: \".concat(parms.join(',')));\n }\n exrulevals.push(parseString(value));\n break;\n case 'EXDATE':\n exdatevals = exdatevals.concat(parseRDate(value, parms));\n break;\n case 'DTSTART':\n break;\n default:\n throw new Error('unsupported property: ' + name);\n }\n });\n return {\n dtstart: dtstart,\n tzid: tzid,\n rrulevals: rrulevals,\n rdatevals: rdatevals,\n exrulevals: exrulevals,\n exdatevals: exdatevals,\n };\n}\nfunction buildRule(s, options) {\n var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid;\n var noCache = options.cache === false;\n if (options.compatible) {\n options.forceset = true;\n options.unfold = true;\n }\n if (options.forceset ||\n rrulevals.length > 1 ||\n rdatevals.length ||\n exrulevals.length ||\n exdatevals.length) {\n var rset_1 = new RRuleSet(noCache);\n rset_1.dtstart(dtstart);\n rset_1.tzid(tzid || undefined);\n rrulevals.forEach(function (val) {\n rset_1.rrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n rdatevals.forEach(function (date) {\n rset_1.rdate(date);\n });\n exrulevals.forEach(function (val) {\n rset_1.exrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n exdatevals.forEach(function (date) {\n rset_1.exdate(date);\n });\n if (options.compatible && options.dtstart)\n rset_1.rdate(dtstart);\n return rset_1;\n }\n var val = rrulevals[0] || {};\n return new RRule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache);\n}\nexport function rrulestr(s, options) {\n if (options === void 0) { options = {}; }\n return buildRule(s, initializeOptions(options));\n}\nfunction groomRruleOptions(val, dtstart, tzid) {\n return __assign(__assign({}, val), { dtstart: dtstart, tzid: tzid });\n}\nfunction initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n keys.forEach(function (key) {\n if (!includes(defaultKeys, key))\n invalid.push(key);\n });\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign(__assign({}, DEFAULT_OPTIONS), options);\n}\nfunction extractName(line) {\n if (line.indexOf(':') === -1) {\n return {\n name: 'RRULE',\n value: line,\n };\n }\n var _a = split(line, ':', 1), name = _a[0], value = _a[1];\n return {\n name: name,\n value: value,\n };\n}\nfunction breakDownLine(line) {\n var _a = extractName(line), name = _a.name, value = _a.value;\n var parms = name.split(';');\n if (!parms)\n throw new Error('empty property name');\n return {\n name: parms[0].toUpperCase(),\n parms: parms.slice(1),\n value: value,\n };\n}\nfunction splitIntoLines(s, unfold) {\n if (unfold === void 0) { unfold = false; }\n s = s && s.trim();\n if (!s)\n throw new Error('Invalid empty string');\n // More info about 'unfold' option\n // Go head to http://www.ietf.org/rfc/rfc2445.txt\n if (!unfold) {\n return s.split(/\\s/);\n }\n var lines = s.split('\\n');\n var i = 0;\n while (i < lines.length) {\n // TODO\n var line = (lines[i] = lines[i].replace(/\\s+$/g, ''));\n if (!line) {\n lines.splice(i, 1);\n }\n else if (i > 0 && line[0] === ' ') {\n lines[i - 1] += line.slice(1);\n lines.splice(i, 1);\n }\n else {\n i += 1;\n }\n }\n return lines;\n}\nfunction validateDateParm(parms) {\n parms.forEach(function (parm) {\n if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) {\n throw new Error('unsupported RDATE/EXDATE parm: ' + parm);\n }\n });\n}\nfunction parseRDate(rdateval, parms) {\n validateDateParm(parms);\n return rdateval.split(',').map(function (datestr) { return untilStringToDate(datestr); });\n}\n","import { __extends } from \"tslib\";\nimport { RRule } from './rrule';\nimport { sort, timeToUntilString } from './dateutil';\nimport { includes } from './helpers';\nimport { iterSet } from './iterset';\nimport { rrulestr } from './rrulestr';\nimport { optionsToString } from './optionstostring';\nfunction createGetterSetter(fieldName) {\n var _this = this;\n return function (field) {\n if (field !== undefined) {\n _this[\"_\".concat(fieldName)] = field;\n }\n if (_this[\"_\".concat(fieldName)] !== undefined) {\n return _this[\"_\".concat(fieldName)];\n }\n for (var i = 0; i < _this._rrule.length; i++) {\n var field_1 = _this._rrule[i].origOptions[fieldName];\n if (field_1) {\n return field_1;\n }\n }\n };\n}\nvar RRuleSet = /** @class */ (function (_super) {\n __extends(RRuleSet, _super);\n /**\n *\n * @param {Boolean?} noCache\n * The same stratagy as RRule on cache, default to false\n * @constructor\n */\n function RRuleSet(noCache) {\n if (noCache === void 0) { noCache = false; }\n var _this = _super.call(this, {}, noCache) || this;\n _this.dtstart = createGetterSetter.apply(_this, ['dtstart']);\n _this.tzid = createGetterSetter.apply(_this, ['tzid']);\n _this._rrule = [];\n _this._rdate = [];\n _this._exrule = [];\n _this._exdate = [];\n return _this;\n }\n RRuleSet.prototype._iter = function (iterResult) {\n return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid());\n };\n /**\n * Adds an RRule to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.rrule = function (rrule) {\n _addRule(rrule, this._rrule);\n };\n /**\n * Adds an EXRULE to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.exrule = function (rrule) {\n _addRule(rrule, this._exrule);\n };\n /**\n * Adds an RDate to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.rdate = function (date) {\n _addDate(date, this._rdate);\n };\n /**\n * Adds an EXDATE to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.exdate = function (date) {\n _addDate(date, this._exdate);\n };\n /**\n * Get list of included rrules in this recurrence set.\n *\n * @return List of rrules\n */\n RRuleSet.prototype.rrules = function () {\n return this._rrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of excluded rrules in this recurrence set.\n *\n * @return List of exrules\n */\n RRuleSet.prototype.exrules = function () {\n return this._exrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of rdates\n */\n RRuleSet.prototype.rdates = function () {\n return this._rdate.map(function (e) { return new Date(e.getTime()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of exdates\n */\n RRuleSet.prototype.exdates = function () {\n return this._exdate.map(function (e) { return new Date(e.getTime()); });\n };\n RRuleSet.prototype.valueOf = function () {\n var result = [];\n if (!this._rrule.length && this._dtstart) {\n result = result.concat(optionsToString({ dtstart: this._dtstart }));\n }\n this._rrule.forEach(function (rrule) {\n result = result.concat(rrule.toString().split('\\n'));\n });\n this._exrule.forEach(function (exrule) {\n result = result.concat(exrule\n .toString()\n .split('\\n')\n .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); })\n .filter(function (line) { return !/^DTSTART/.test(line); }));\n });\n if (this._rdate.length) {\n result.push(rdatesToString('RDATE', this._rdate, this.tzid()));\n }\n if (this._exdate.length) {\n result.push(rdatesToString('EXDATE', this._exdate, this.tzid()));\n }\n return result;\n };\n /**\n * to generate recurrence field such as:\n * DTSTART:19970902T010000Z\n * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU\n * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH\n */\n RRuleSet.prototype.toString = function () {\n return this.valueOf().join('\\n');\n };\n /**\n * Create a new RRuleSet Object completely base on current instance\n */\n RRuleSet.prototype.clone = function () {\n var rrs = new RRuleSet(!!this._cache);\n this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); });\n this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); });\n this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); });\n this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); });\n return rrs;\n };\n return RRuleSet;\n}(RRule));\nexport { RRuleSet };\nfunction _addRule(rrule, collection) {\n if (!(rrule instanceof RRule)) {\n throw new TypeError(String(rrule) + ' is not RRule instance');\n }\n if (!includes(collection.map(String), String(rrule))) {\n collection.push(rrule);\n }\n}\nfunction _addDate(date, collection) {\n if (!(date instanceof Date)) {\n throw new TypeError(String(date) + ' is not Date instance');\n }\n if (!includes(collection.map(Number), Number(date))) {\n collection.push(date);\n sort(collection);\n }\n}\nfunction rdatesToString(param, rdates, tzid) {\n var isUTC = !tzid || tzid.toUpperCase() === 'UTC';\n var header = isUTC ? \"\".concat(param, \":\") : \"\".concat(param, \";TZID=\").concat(tzid, \":\");\n var dateString = rdates\n .map(function (rdate) { return timeToUntilString(rdate.valueOf(), isUTC); })\n .join(',');\n return \"\".concat(header).concat(dateString);\n}\n","import { DateWithZone } from './datewithzone';\nimport { iter } from './iter';\nimport { sort } from './dateutil';\nexport function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) {\n var _exdateHash = {};\n var _accept = iterResult.accept;\n function evalExdate(after, before) {\n _exrule.forEach(function (rrule) {\n rrule.between(after, before, true).forEach(function (date) {\n _exdateHash[Number(date)] = true;\n });\n });\n }\n _exdate.forEach(function (date) {\n var zonedDate = new DateWithZone(date, tzid).rezonedDate();\n _exdateHash[Number(zonedDate)] = true;\n });\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (isNaN(dt))\n return _accept.call(this, date);\n if (!_exdateHash[dt]) {\n evalExdate(new Date(dt - 1), new Date(dt + 1));\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n }\n return true;\n };\n if (iterResult.method === 'between') {\n evalExdate(iterResult.args.after, iterResult.args.before);\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n return true;\n };\n }\n for (var i = 0; i < _rdate.length; i++) {\n var zonedDate = new DateWithZone(_rdate[i], tzid).rezonedDate();\n if (!iterResult.accept(new Date(zonedDate.getTime())))\n break;\n }\n _rrule.forEach(function (rrule) {\n iter(iterResult, rrule.options);\n });\n var res = iterResult._result;\n sort(res);\n switch (iterResult.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n return ((res.length && res[res.length - 1]) || null);\n case 'after':\n default:\n return ((res.length && res[0]) || null);\n }\n}\n","/**\r\n * DevExtreme (esm/__internal/core/utils/date.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar addOffsets = (date, offsets) => {\r\n var newDateMs = offsets.reduce((result, offset) => result + offset, date.getTime());\r\n return new Date(newDateMs)\r\n};\r\nexport var dateUtilsTs = {\r\n addOffsets: addOffsets\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_date_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass DateAdapterCore {\r\n constructor(source) {\r\n this._source = new Date(source.getTime ? source.getTime() : source)\r\n }\r\n get source() {\r\n return this._source\r\n }\r\n result() {\r\n return this._source\r\n }\r\n getTimezoneOffset() {\r\n var format = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var value = this._source.getTimezoneOffset();\r\n if (\"minute\" === format) {\r\n return value * toMs(\"minute\")\r\n }\r\n return value\r\n }\r\n getTime() {\r\n return this._source.getTime()\r\n }\r\n setTime(value) {\r\n this._source.setTime(value);\r\n return this\r\n }\r\n addTime(value) {\r\n this._source.setTime(this._source.getTime() + value);\r\n return this\r\n }\r\n setMinutes(value) {\r\n this._source.setMinutes(value);\r\n return this\r\n }\r\n addMinutes(value) {\r\n this._source.setMinutes(this._source.getMinutes() + value);\r\n return this\r\n }\r\n subtractMinutes(value) {\r\n this._source.setMinutes(this._source.getMinutes() - value);\r\n return this\r\n }\r\n}\r\nvar DateAdapter = date => new DateAdapterCore(date);\r\nexport default DateAdapter;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/timezones/m_utils_timezones_data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../core/errors\";\r\nimport {\r\n sign\r\n} from \"../../../core/utils/math\";\r\nimport query from \"../../../data/query\";\r\nimport tzData from \"./timezones_data\";\r\nvar getConvertedUntils = value => value.split(\"|\").map(until => {\r\n if (\"Infinity\" === until) {\r\n return null\r\n }\r\n return 1e3 * parseInt(until, 36)\r\n});\r\nvar parseTimezone = timeZoneConfig => {\r\n var {\r\n offsets: offsets\r\n } = timeZoneConfig;\r\n var {\r\n offsetIndices: offsetIndices\r\n } = timeZoneConfig;\r\n var {\r\n untils: untils\r\n } = timeZoneConfig;\r\n var offsetList = offsets.split(\"|\").map(value => parseInt(value));\r\n var offsetIndexList = offsetIndices.split(\"\").map(value => parseInt(value));\r\n var dateList = getConvertedUntils(untils).map((accumulator = 0, value => accumulator += value));\r\n var accumulator;\r\n return {\r\n offsetList: offsetList,\r\n offsetIndexList: offsetIndexList,\r\n dateList: dateList\r\n }\r\n};\r\nclass TimeZoneCache {\r\n constructor() {\r\n this.map = new Map\r\n }\r\n tryGet(id) {\r\n if (!this.map.get(id)) {\r\n var config = timeZoneDataUtils.getTimezoneById(id);\r\n if (!config) {\r\n return false\r\n }\r\n var timeZoneInfo = parseTimezone(config);\r\n this.map.set(id, timeZoneInfo)\r\n }\r\n return this.map.get(id)\r\n }\r\n}\r\nvar tzCache = new TimeZoneCache;\r\nvar timeZoneDataUtils = {\r\n _tzCache: tzCache,\r\n _timeZones: tzData.zones,\r\n getDisplayedTimeZones(timestamp) {\r\n var timeZones = this._timeZones.map(timezone => {\r\n var timeZoneInfo = parseTimezone(timezone);\r\n var offset = this.getUtcOffset(timeZoneInfo, timestamp);\r\n var title = \"(GMT \".concat(this.formatOffset(offset), \") \").concat(this.formatId(timezone.id));\r\n return {\r\n offset: offset,\r\n title: title,\r\n id: timezone.id\r\n }\r\n });\r\n return query(timeZones).sortBy(\"offset\").toArray()\r\n },\r\n formatOffset(offset) {\r\n var hours = Math.floor(offset);\r\n var minutesInDecimal = offset - hours;\r\n var signString = sign(offset) >= 0 ? \"+\" : \"-\";\r\n var hoursString = \"0\".concat(Math.abs(hours)).slice(-2);\r\n var minutesString = minutesInDecimal > 0 ? \":\".concat(60 * minutesInDecimal) : \":00\";\r\n return signString + hoursString + minutesString\r\n },\r\n formatId: id => id.split(\"/\").join(\" - \").split(\"_\").join(\" \"),\r\n getTimezoneById(id) {\r\n if (!id) {\r\n return\r\n }\r\n var tzList = this._timeZones;\r\n for (var i = 0; i < tzList.length; i++) {\r\n var currentId = tzList[i].id;\r\n if (currentId === id) {\r\n return tzList[i]\r\n }\r\n }\r\n errors.log(\"W0009\", id);\r\n return\r\n },\r\n getTimeZoneOffsetById(id, timestamp) {\r\n var timeZoneInfo = tzCache.tryGet(id);\r\n return timeZoneInfo ? this.getUtcOffset(timeZoneInfo, timestamp) : void 0\r\n },\r\n getTimeZoneDeclarationTuple(id, year) {\r\n var timeZoneInfo = tzCache.tryGet(id);\r\n return timeZoneInfo ? this.getTimeZoneDeclarationTupleCore(timeZoneInfo, year) : []\r\n },\r\n getTimeZoneDeclarationTupleCore(timeZoneInfo, year) {\r\n var {\r\n offsetList: offsetList\r\n } = timeZoneInfo;\r\n var {\r\n offsetIndexList: offsetIndexList\r\n } = timeZoneInfo;\r\n var {\r\n dateList: dateList\r\n } = timeZoneInfo;\r\n var tupleResult = [];\r\n for (var i = 0; i < dateList.length; i++) {\r\n var currentDate = dateList[i];\r\n var currentYear = new Date(currentDate).getFullYear();\r\n if (currentYear === year) {\r\n var offset = offsetList[offsetIndexList[i + 1]];\r\n tupleResult.push({\r\n date: currentDate,\r\n offset: -offset / 60\r\n })\r\n }\r\n if (currentYear > year) {\r\n break\r\n }\r\n }\r\n return tupleResult\r\n },\r\n getUtcOffset(timeZoneInfo, dateTimeStamp) {\r\n var {\r\n offsetList: offsetList\r\n } = timeZoneInfo;\r\n var {\r\n offsetIndexList: offsetIndexList\r\n } = timeZoneInfo;\r\n var {\r\n dateList: dateList\r\n } = timeZoneInfo;\r\n var lastIntervalStartIndex = dateList.length - 1 - 1;\r\n var index = lastIntervalStartIndex;\r\n while (index >= 0 && dateTimeStamp < dateList[index]) {\r\n index--\r\n }\r\n var offset = offsetList[offsetIndexList[index + 1]];\r\n return -offset / 60 || offset\r\n }\r\n};\r\nexport default timeZoneDataUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/timezones/timezones_data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n zones: [{\r\n id: \"Africa/Abidjan\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Accra\",\r\n untils: \"-r507yk|1e3pak|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|Infinity\",\r\n offsets: \"0.8667|0|-20\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Addis_Ababa\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Algiers\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|53c00|9idxc0|3i040|51mw0|253uk0|9o2k0|92040|8l3s0|jutc0|4uy840|3rdzw0|46xc00|7x6o0|2xco40|8n180|7x9g0|9d440|kiqg0|9d440|9q2s0|9cyk0|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"0121212121212121232321212122321212\"\r\n }, {\r\n id: \"Africa/Asmara\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Asmera\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Bamako\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bangui\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Banjul\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bissau\",\r\n untils: \"-u9rek0|wvoyo0|Infinity\",\r\n offsets: \"62.3333|60|0\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Africa/Blantyre\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Brazzaville\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bujumbura\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Cairo\",\r\n untils: \"-fdls80|40d80|a31g0|7x3w0|a4w40|aqyk0|80ys0|b07w0|7tk40|b07w0|8jhg0|a8fw0|60go40|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|f9x80|3i040|eluk0|462s0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|b5rw0|7m5g0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|aqvs0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7k580|b5xg0|6u7w0|bvus0|6h980|c8tg0|64ak0|cyqs0|5anw0|1jms0|12t80|1w22s0|25p80|1sw40|2vmk0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Africa/Casablanca\",\r\n untils: \"-tblt9g|di7nxg|3huk0|51k40|2znuk0|2dp9g0|776k0|8nt2s0|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|xqqk0|bp56s0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|25s00|g7c00|1stc0|g7c00|25s00|Infinity\",\r\n offsets: \"30.3333|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Africa/Ceuta\",\r\n untils: \"-qyiys0|7x3w0|2vt440|8sqs0|ssyk0|8n6s0|9px80|905g0|a2yo0|902o0|k69dc0|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|129us0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Conakry\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Dakar\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Dar_es_Salaam\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Djibouti\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Douala\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/El_Aaiun\",\r\n untils: \"-isdxk0|m2g0c0|vek0|4qak0|e1ms0|7pp80|cnms0|3afw0|fke5g0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|25s00|g7c00|1stc0|g7c00|25s00|Infinity\",\r\n offsets: \"52.8|60|0|-60\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Africa/Freetown\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Gaborone\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Harare\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Johannesburg\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Juba\",\r\n untils: \"-kcrsis|kixuys|8l6k0|a4w40|8n180|a6qs0|8n180|a31g0|8ovw0|a16s0|8qqk0|9zc40|8sl80|9xhg0|8wak0|9ts40|8y580|a4w40|8n180|a31g0|8ovw0|a16s0|8sl80|9xhg0|8ufw0|9vms0|8wak0|9ts40|8y580|a4w40|8ovw0|a16s0|8qqk0|7frw40|Infinity\",\r\n offsets: \"-126.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212\"\r\n }, {\r\n id: \"Africa/Kampala\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Khartoum\",\r\n untils: \"-kcrsow|kixv4w|8l6k0|a4w40|8n180|a6qs0|8n180|a31g0|8ovw0|a16s0|8qqk0|9zc40|8sl80|9xhg0|8wak0|9ts40|8y580|a4w40|8n180|a31g0|8ovw0|a16s0|8sl80|9xhg0|8ufw0|9vms0|8wak0|9ts40|8y580|a4w40|8ovw0|a16s0|8qqk0|7frw40|9ac180|Infinity\",\r\n offsets: \"-130.1333|-120|-180\",\r\n offsetIndices: \"012121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Kigali\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Kinshasa\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lagos\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Libreville\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lome\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Luanda\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lubumbashi\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lusaka\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Malabo\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Maputo\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Maseru\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Mbabane\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Mogadishu\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Monrovia\",\r\n untils: \"-qj6zc4|rl202a|Infinity\",\r\n offsets: \"43.1333|44.5|0\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Africa/Nairobi\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Ndjamena\",\r\n untils: \"-u9rk4c|zdk5cc|7iak0|Infinity\",\r\n offsets: \"-60.2|-60|-120\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Africa/Niamey\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Nouakchott\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Ouagadougou\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Porto-Novo\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Sao_Tome\",\r\n untils: \"-u9rhc0|1jbm840|irxc0|Infinity\",\r\n offsets: \"36.75|0|-60\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Africa/Timbuktu\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Tripoli\",\r\n untils: \"-q3gfrw|gl6ajw|422c0|xado0|4bbo0|wrpg0|4s580|1kdpg0|c05bw0|4mqs0|9et80|9d440|9et80|9eys0|9et80|9mdg0|95jw0|9io40|9cyk0|99es0|9et80|9eys0|9et80|9d440|9et80|b2840|3cf3w0|9kis0|9et80|7vqyw0|75eo0|asw00|Infinity\",\r\n offsets: \"-52.7333|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212122122\"\r\n }, {\r\n id: \"Africa/Tunis\",\r\n untils: \"-uozn3l|enxevl|b5uo0|53c00|u8w00|7x9g0|c8w80|7k800|z3w0|ew40|8bx80|9d440|9nx00|925o0|8l100|gi3440|7k800|b9k00|7vc00|51mw00|5ytc0|9d1c0|9d1c0|b9k00|7thc0|7m0tc0|7tk40|93us0|b5uo0|7k800|b5uo0|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|-60|-120\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Windhoek\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|oj2nw0|235k00|8lho0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"-90|-120|-180|-60\",\r\n offsetIndices: \"01211313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Adak\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Anchorage\",\r\n untils: \"-ek1qo0|1tyx80|2e400|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Anguilla\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Antigua\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Araguaina\",\r\n untils: \"-t85j2o|99k8mo|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|51udg0|64ak0|Infinity\",\r\n offsets: \"192.8|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Argentina/Buenos_Aires\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232323232\"\r\n }, {\r\n id: \"America/Argentina/Catamarca\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Argentina/ComodRivadavia\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Argentina/Cordoba\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Argentina/Jujuy\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|c8w80|776k0|ag040|7k2g0|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121323232\"\r\n }, {\r\n id: \"America/Argentina/La_Rioja\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231232321232\"\r\n }, {\r\n id: \"America/Argentina/Mendoza\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bktk0|71mk0|bqas0|73h80|bvus0|773s0|5unes0|6hes0|1p7mk0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312121321232\"\r\n }, {\r\n id: \"America/Argentina/Rio_Gallegos\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232321232\"\r\n }, {\r\n id: \"America/Argentina/Salta\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231323232\"\r\n }, {\r\n id: \"America/Argentina/San_Juan\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|5v2840|2txg0|1sgak0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231232321232\"\r\n }, {\r\n id: \"America/Argentina/San_Luis\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|7pp80|b2aw0|71mk0|4qg40|6s8ik0|2txg0|1sgak0|14nw0|2gys0|b5xg0|7k580|b5xg0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121212321212\"\r\n }, {\r\n id: \"America/Argentina/Tucuman\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|mas0|1um2k0|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232313232123232\"\r\n }, {\r\n id: \"America/Argentina/Ushuaia\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|5v0dg0|12ys0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232321232\"\r\n }, {\r\n id: \"America/Aruba\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Asuncion\",\r\n untils: \"-jy93zk|ldwofk|s4vw0|s6w40|7tek0|b0dg0|7rjw0|b0dg0|7rjw0|b0dg0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|ahus0|8a2k0|9eys0|9cyk0|9o840|7k580|b7s40|93p80|9gtg0|7nuk0|b42s0|7lzw0|b5xg0|7tek0|b9ms0|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|7kas0|b5rw0|7x9g0|ast80|a31g0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|776k0|biw40|8zzw0|905g0|9px80|905g0|9px80|9d440|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|Infinity\",\r\n offsets: \"230.6667|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Atikokan\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101111\"\r\n }, {\r\n id: \"America/Atka\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Bahia_Banderas\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|asqg0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"421|420|360|480|300\",\r\n offsetIndices: \"0121212131212121212121212121212121212142424242424242424242424242424242424242424242424242424242\"\r\n }, {\r\n id: \"America/Bahia\",\r\n untils: \"-t85kv8|99kaf8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|4irc40|6u7w0|Infinity\",\r\n offsets: \"154.0667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Barbados\",\r\n untils: \"-o0aiaj|46b400|npv1mj|5rbw0|a31g0|8n180|a31g0|8n180|ag040|84ik0|Infinity\",\r\n offsets: \"238.4833|240|180\",\r\n offsetIndices: \"00121212121\"\r\n }, {\r\n id: \"America/Belem\",\r\n untils: \"-t85j0s|99k8ks|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\",\r\n offsets: \"193.9333|180|120\",\r\n offsetIndices: \"012121212121212121212121212121\"\r\n }, {\r\n id: \"America/Belize\",\r\n untils: \"-u52ic0|3edkc0|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|g2t2q0|3e580|4mcys0|2vmk0|Infinity\",\r\n offsets: \"352.8|360|330|300\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121213131\"\r\n }, {\r\n id: \"America/Blanc-Sablon\",\r\n untils: \"-qzp0o0|a2vw0|c5jxg0|1tzdw0|2dnc0|Infinity\",\r\n offsets: \"240|180\",\r\n offsetIndices: \"010110\"\r\n }, {\r\n id: \"America/Boa_Vista\",\r\n untils: \"-t85grk|99k93k|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|62xk40|7k580|biw40|cvw0|Infinity\",\r\n offsets: \"242.6667|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Bogota\",\r\n untils: \"-srdoy8|14f1hi8|ha580|Infinity\",\r\n offsets: \"296.2667|300|240\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Boise\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|1um840|9s7jw0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|51k40|doik0|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|360\",\r\n offsetIndices: \"0101012212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Buenos_Aires\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232323232\"\r\n }, {\r\n id: \"America/Cambridge_Bay\",\r\n untils: \"-q3gdc0|bjeec0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x6o0|ast80|ct40|7kj40|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|420|360|300\",\r\n offsetIndices: \"0122131212121212121212121212121212121212121212233221212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Campo_Grande\",\r\n untils: \"-t85hvw|99ka7w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"218.4667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Cancun\",\r\n untils: \"-p1u7c0|vauo00|7ggw40|afuk0|8a840|afuk0|8a840|64ak0|4bms0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|51k40|Infinity\",\r\n offsets: \"347.0667|360|300|240\",\r\n offsetIndices: \"0123232321212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Caracas\",\r\n untils: \"-u7lcxw|rlo83w|meoxm0|4dps00|Infinity\",\r\n offsets: \"267.6667|270|240\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"America/Catamarca\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Cayenne\",\r\n untils: \"-uj7yb4|tcw6r4|Infinity\",\r\n offsets: \"209.3333|240|180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Cayman\",\r\n untils: \"-w757vc|Infinity\",\r\n offsets: \"319.6|300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Chicago\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bvus0|776k0|7kas0|b5rw0|9d440|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|7x9g0|dbjw0|8a840|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Chihuahua\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"424.3333|420|360|300\",\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Coral_Harbour\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101111\"\r\n }, {\r\n id: \"America/Cordoba\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Costa_Rica\",\r\n untils: \"-pjw8fn|ubtl3n|51ek0|doo40|51ek0|5jso40|8drw0|acas0|2xh80|Infinity\",\r\n offsets: \"336.2167|360|300\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"America/Creston\",\r\n untils: \"-rshz80|vbus0|Infinity\",\r\n offsets: \"420|480\",\r\n offsetIndices: \"010\"\r\n }, {\r\n id: \"America/Cuiaba\",\r\n untils: \"-t85hm4|99k9y4|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|w5hg0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"224.3333|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Curacao\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Danmarkshavn\",\r\n untils: \"-rvusjk|x8nx3k|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|53hk0|Infinity\",\r\n offsets: \"74.6667|180|120|0\",\r\n offsetIndices: \"01212121212121212121212121212121213\"\r\n }, {\r\n id: \"America/Dawson_Creek\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|69uk0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101011\"\r\n }, {\r\n id: \"America/Dawson\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|465k00|3e2is0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Denver\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Detroit\",\r\n untils: \"-xx8dyd|5eraud|dyeyk0|1tzb40|2dq40|1c9440|7x3w0|9rlbxo|71s2c|9d440|9cyk0|2cmdg0|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"332.1833|360|300|240\",\r\n offsetIndices: \"0123323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Dominica\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Edmonton\",\r\n untils: \"-x1yazk|629ink|a2vw0|8n6s0|29ek0|h6lg0|9px80|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|9l0g40|1tz5k0|2dvo0|tj1g0|7x3w0|ctzk40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"453.8667|420|360\",\r\n offsetIndices: \"0121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Eirunepe\",\r\n untils: \"-t85f28|99ka68|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|7hg2s0|2t2t80|Infinity\",\r\n offsets: \"279.4667|300|240\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/El_Salvador\",\r\n untils: \"-pkm4tc|ymao5c|7k580|b5xg0|7k580|Infinity\",\r\n offsets: \"356.8|360|300\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"America/Ensenada\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Fort_Nelson\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"01011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"America/Fort_Wayne\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Fortaleza\",\r\n untils: \"-t85kvc|99kafc|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|puk0|id6s0|6h980|Infinity\",\r\n offsets: \"154|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Glace_Bay\",\r\n untils: \"-z94kwc|89fk8c|a2vw0|c5jxg0|1tzdw0|2dnc0|3y8g40|7x3w0|9pa5g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"239.8|240|180\",\r\n offsetIndices: \"012122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Godthab\",\r\n untils: \"-rvumf4|x8nqz4|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"206.9333|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Goose_Bay\",\r\n untils: \"-qzp20k|a2vw0|8kjbw0|kzjyk|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|6y2s0|22420|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|240|180|120\",\r\n offsetIndices: \"010232323232323233232323232323232323232323232323232323232324545454545454545454545454545454545454545454546454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454\"\r\n }, {\r\n id: \"America/Grand_Turk\",\r\n untils: \"-u85og2|z3brw2|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|18ais0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121222121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Grenada\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Guadeloupe\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Guatemala\",\r\n untils: \"-qqqskk|ss0akk|4ofw0|4tidg0|6djw0|3wwas0|8n180|7n5ms0|7x3w0|Infinity\",\r\n offsets: \"362.0667|360|300\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"America/Guayaquil\",\r\n untils: \"-kcr84o|wb620o|3jp80|Infinity\",\r\n offsets: \"314|300|240\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Guyana\",\r\n untils: \"-smcak8|vj4sz8|81rf90|Infinity\",\r\n offsets: \"232.6667|225|180|240\",\r\n offsetIndices: \"0123\"\r\n }, {\r\n id: \"America/Halifax\",\r\n untils: \"-z94k80|777go0|9et80|st9o0|a2vw0|ssyk0|5rbw0|cv1g0|69uk0|c6ys0|6kyk0|ci2s0|67zw0|ci2s0|6w2k0|bu040|7lzw0|bu040|66580|bu040|7lzw0|bu040|64ak0|cls40|5v180|cv1g0|6j3w0|c6ys0|79180|b42s0|7lzw0|b42s0|7yyk0|bu040|64ak0|dbpg0|66580|cls40|5ed80|bu040|7lzw0|b42s0|7lzw0|cjxg0|66580|bh1g0|7lzw0|b42s0|7lzw0|6uj00|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|1cm2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"254.4|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Havana\",\r\n untils: \"-n7762o|1icfyo|69uk0|62s040|4ofw0|e1ms0|51ek0|e1ms0|4ofw0|1fhs40|4ofw0|e1ms0|4ofw0|9s9k40|67zw0|cedg0|6h980|9o840|7yyk0|b5xg0|7k580|bvus0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|8a2k0|ag040|8bx80|ae5g0|8drw0|acas0|9cyk0|9d440|9px80|905g0|9px80|9q2s0|7x3w0|8a840|ast80|7x9g0|ast80|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|905g0|a2vw0|905g0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|8n400|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|7x6o0|1cm000|6uao0|bvs00|779c0|bitc0|6uao0|bvs00|779c0|bvs00|779c0|c8qo0|779c0|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|Infinity\",\r\n offsets: \"329.6|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Hermosillo\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"443.8667|420|360|480\",\r\n offsetIndices: \"0121212131212121\"\r\n }, {\r\n id: \"America/Indiana/Indianapolis\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Knox\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Indiana/Marengo\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|2wsas0|7x3w0|1c9440|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|fvt9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101011010101010101010101212121212111212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Petersburg\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|501ek0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|sfzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|eu02o0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010101010101010101010111011212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Tell_City\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|501ek0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|1tw580|9d440|9cyk0|9d440|9cvs0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101021211010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Indiana/Vevay\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|4gyis0|7txx80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|hfzhg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101101212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Vincennes\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|3fidg0|7x3w0|asys0|7x3w0|b5rw0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|2lz980|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010121211011212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Winamac\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8l40|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010101010121211021212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indianapolis\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Inuvik\",\r\n untils: \"-8ve5c0|6fce80|9q000|71i2w0|ipzw0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|480|360|420\",\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Iqaluit\",\r\n untils: \"-eb6ao0|1l3h80|2dq40|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|240|300|180|360\",\r\n offsetIndices: \"01123212121212121212121212121212121212121212142212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Jamaica\",\r\n untils: \"-u85og2|wbl182|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"America/Jujuy\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|c8w80|776k0|ag040|7k2g0|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121323232\"\r\n }, {\r\n id: \"America/Juneau\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9d1c0|9d1c0|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010001010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/Kentucky/Louisville\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|sg5g0|6bp80|a98o40|7x3w0|6w840|1tz8c0|2dsw0|ast9o|1sw2c|21gis0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|4bh80|3j3xc0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101010101101010101010101010101010101121212121212111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Kentucky/Monticello\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|bs6g40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Knox_IN\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Kralendijk\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/La_Paz\",\r\n untils: \"-jxzspo|84ik0|Infinity\",\r\n offsets: \"272.6|212.6|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Lima\",\r\n untils: \"-w25lpo|fcxjlo|4ml80|93us0|9cyk0|9d440|9cyk0|nw16s0|4ml80|e5c40|4ml80|1fr1g0|4ml80|1yiys0|4ml80|Infinity\",\r\n offsets: \"308.6|300|240\",\r\n offsetIndices: \"0121212121212121\"\r\n }, {\r\n id: \"America/Los_Angeles\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Louisville\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|sg5g0|6bp80|a98o40|7x3w0|6w840|1tz8c0|2dsw0|ast9o|1sw2c|21gis0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|4bh80|3j3xc0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101010101101010101010101010101010101121212121212111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Lower_Princes\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Maceio\",\r\n untils: \"-t85ldw|99kaxw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|1wf1g0|7k580|biw40|puk0|id6s0|6h980|Infinity\",\r\n offsets: \"142.8667|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Managua\",\r\n untils: \"-ijh6oo|ka1i0o|xqqk0|24p6s0|53980|dmtg0|53980|60itw0|dq240|53es0|235h80|4beis0|8zzw0|at4c0|7x140|Infinity\",\r\n offsets: \"345.2|360|300\",\r\n offsetIndices: \"0121212121212121\"\r\n }, {\r\n id: \"America/Manaus\",\r\n untils: \"-t85gvw|99k97w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|Infinity\",\r\n offsets: \"240.0667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Marigot\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Martinique\",\r\n untils: \"-umcvcs|zz5x4s|8zzw0|Infinity\",\r\n offsets: \"244.3333|240|180\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Matamoros\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"400|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Mazatlan\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"425.6667|420|360|480\",\r\n offsetIndices: \"0121212131212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Mendoza\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bktk0|71mk0|bqas0|73h80|bvus0|773s0|5unes0|6hes0|1p7mk0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312121321232\"\r\n }, {\r\n id: \"America/Menominee\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|a7n9g0|9px80|1at9g0|2396k0|9d1c0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010110101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Merida\",\r\n untils: \"-p1u7c0|vauo00|hoyk0|6ys0c0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"358.4667|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Metlakatla\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|gpc840|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|3ylc0|2itg0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010101010102020200202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/Mexico_City\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|3knek0|776k0|rf440|5t6k0|1evk40|71mk0|30p1g0|8n180|nufxo0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"396.6|420|360|300\",\r\n offsetIndices: \"012121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Miquelon\",\r\n untils: \"-ulmyxk|zzqbdk|3m59g0|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"224.6667|240|180|120\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Moncton\",\r\n untils: \"-z94i40|89fhg0|a2vw0|7mqqo0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|dmtg0|64ak0|cao40|6fek0|bkqs0|7iak0|6y5k0|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a2lo|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6uiyc|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240|180\",\r\n offsetIndices: \"012121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Monterrey\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|Infinity\",\r\n offsets: \"401.2667|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Montevideo\",\r\n untils: \"-w4mll9|67elc0|1s74p9|9et80|9exe0|9czy0|9exe0|9czy0|3ydyq0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7k6m0|9q1e0|9czy0|asxe0|7x5a0|6do20|ppvy0|4mmm0|8g9qq0|901a0|38pe0|2inw0|2nf9g0|8zzw0|1e3s40|9o3y0|q8he0|2kik0|yxhg0|4bh80|s36s0|2vl60|905g0|5rg20|51ek0|weqs0|3yik0|e1ms0|4ofw0|erk40|3yik0|2vs40|gk7w0|41iys0|3wnw0|erk40|4bh80|c8tg0|64ak0|c8tg0|6u7w0|c8tg0|6h980|bvus0|6u7w0|614qs0|9q2s0|a31g0|7x3w0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"224.85|240|180|210|150|120|90\",\r\n offsetIndices: \"001232323232323232323232324242525242525264252525252525252525252525252525252525252525252\"\r\n }, {\r\n id: \"America/Montreal\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Montserrat\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Nassau\",\r\n untils: \"-u6m4c6|r7u7s6|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"309.5|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/New_York\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|7x9g0|b5rw0|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tzb40|2dq40|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Nipigon\",\r\n untils: \"-qzoxw0|a2vw0|bfxjw0|pmdk0|1tzb40|2dq40|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Nome\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l6c0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010122323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Noronha\",\r\n untils: \"-t85lzw|99k8rw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"129.6667|120|60\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/Beulah\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/Center\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/New_Salem\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Nuuk\",\r\n untils: \"-rvumf4|x8nqz4|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"206.9333|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Ojinaga\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"417.6667|420|360|300\",\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Panama\",\r\n untils: \"-w757vc|Infinity\",\r\n offsets: \"319.6|300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Pangnirtung\",\r\n untils: \"-pkmlc0|b0ke00|1tzdw0|2dnc0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|asw00|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|240|180|120|300|360\",\r\n offsetIndices: \"012213121212121212121212121212121212114141414154414141414141414141414141414141414141414141414141414141414141414141414141414\"\r\n }, {\r\n id: \"America/Paramaribo\",\r\n untils: \"-usj4g8|cixc0c|5lydbk|kcrm6c|Infinity\",\r\n offsets: \"220.6667|220.8667|220.6|210|180\",\r\n offsetIndices: \"01234\"\r\n }, {\r\n id: \"America/Phoenix\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|zjedo|4olg0|9et80|bs6lmc|9cyk0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101010\"\r\n }, {\r\n id: \"America/Port_of_Spain\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Port-au-Prince\",\r\n untils: \"-rmk9ac|ylcf6c|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8aaw0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|3vpjw0|ast80|7x9g0|ast80|2stv00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|pkg40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"289|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Porto_Acre\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Porto_Velho\",\r\n untils: \"-t85g60|99k8i0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\",\r\n offsets: \"255.6|240|180\",\r\n offsetIndices: \"012121212121212121212121212121\"\r\n }, {\r\n id: \"America/Puerto_Rico\",\r\n untils: \"-efsnk0|1ppu40|2dnc0|Infinity\",\r\n offsets: \"240|180\",\r\n offsetIndices: \"0110\"\r\n }, {\r\n id: \"America/Punta_Arenas\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|2fnh80|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Rainy_River\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Rankin_Inlet\",\r\n untils: \"-6s8lc0|4c6oo0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|360|240|300\",\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313131313131313131313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Recife\",\r\n untils: \"-t85ljc|99kb3c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"139.6|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Regina\",\r\n untils: \"-xkq9yc|6l1hmc|a2vw0|60enw0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|1b6840|9cyk0|9d440|8zzw0|9q2s0|9cyk0|9q2s0|9cyk0|9d440|9cyk0|66gc0|1tz5k0|2dvo0|a31g0|9cyk0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|tj1g0|9cyk0|9d440|Infinity\",\r\n offsets: \"418.6|420|360\",\r\n offsetIndices: \"012121212121212121212121221212121212121212121212121212\"\r\n }, {\r\n id: \"America/Resolute\",\r\n untils: \"-bnp9c0|97nco0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|360|240|300\",\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313331313131313131313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Rio_Branco\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Rosario\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Santa_Isabel\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Santarem\",\r\n untils: \"-t85hvc|99ka7c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|Infinity\",\r\n offsets: \"218.8|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Santiago\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|229zw0|2gt80|awo40|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Santo_Domingo\",\r\n untils: \"-j6hz1c|hiw29c|67zw0|1dy840|62ha0|cnle0|4h2m0|elyq0|47ta0|ei9e0|4bim0|eek20|4dda0|ecpe0|dkmtg0|1stc0|Infinity\",\r\n offsets: \"280|300|240|270\",\r\n offsetIndices: \"01213131313131212\"\r\n }, {\r\n id: \"America/Sao_Paulo\",\r\n untils: \"-t85jd8|99k8x8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5k02s0|6onw0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"186.4667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Scoresbysund\",\r\n untils: \"-rvurxk|x8ntpk|902o0|9cvs0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"87.8667|120|60|0\",\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Shiprock\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Sitka\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010101010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/St_Barthelemy\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Johns\",\r\n untils: \"-ris3ck|8bx80|ar440|a2vw0|9tjs0|53980|dkys0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|7tmw0|1wfuk|8zzw0|a3480|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|90\",\r\n offsetIndices: \"01010101010101010101010101010101010102323232323232323323232323232323232323232323232323232323232323232323232323232323232323232323232323232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/St_Kitts\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Lucia\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Thomas\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Vincent\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Swift_Current\",\r\n untils: \"-xkq9d4|6l1h14|a2vw0|c5jxg0|1tz5k0|2dvo0|asys0|8n180|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|3yles0|9cyk0|s36s0|9cyk0|9d440|7x3w0|b5xg0|7k580|5j4lg0|Infinity\",\r\n offsets: \"431.3333|420|360\",\r\n offsetIndices: \"012122121212121212121212\"\r\n }, {\r\n id: \"America/Tegucigalpa\",\r\n untils: \"-pfzh6k|yho0ik|7k580|b5xg0|7k580|96x1g0|4qak0|Infinity\",\r\n offsets: \"348.8667|360|300\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"America/Thule\",\r\n untils: \"-rvuj9g|12yzilg|9cyk0|9d440|9cyk0|9q2s0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"275.1333|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Thunder_Bay\",\r\n untils: \"-vbavc0|gr8qs0|1tzb40|2dq40|ctmlg0|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Tijuana\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Toronto\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Tortola\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Vancouver\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Virgin\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Whitehorse\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|tiyo0|6qp440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Winnipeg\",\r\n untils: \"-s0s7c0|7k580|tj700|a2vw0|9ok840|6u7w0|2a5hg0|1tz8c0|2dsw0|biw40|7x3w0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b7s40|7tek0|autg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|7x3w0|1cm2s0|7k580|1cm2s0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Yakutat\",\r\n untils: \"-ek1tg0|1tz000|2e180|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1lbw0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"540|480\",\r\n offsetIndices: \"01101010101010101010101010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Yellowknife\",\r\n untils: \"-i9m2o0|3pk3o0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|420|360|300\",\r\n offsetIndices: \"012213121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Antarctica/Casey\",\r\n untils: \"-irxc0|lag4o0|73bo0|uz1o0|60l80|2fnh80|pz9g0|Infinity\",\r\n offsets: \"0|-480|-660\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"Antarctica/Davis\",\r\n untils: \"-6rmdc0|42jdw0|27wgs0|l8uss0|7eqs0|unmk0|60qs0|Infinity\",\r\n offsets: \"0|-420|-300\",\r\n offsetIndices: \"01012121\"\r\n }, {\r\n id: \"Antarctica/DumontDUrville\",\r\n untils: \"-c05eo0|2mks80|2i72g0|Infinity\",\r\n offsets: \"0|-600\",\r\n offsetIndices: \"0101\"\r\n }, {\r\n id: \"Antarctica/Macquarie\",\r\n untils: \"-rsj4w0|8zzw0|11wqk0|f4kh40|a6p8g0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660|0\",\r\n offsetIndices: \"0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101011\"\r\n }, {\r\n id: \"Antarctica/Mawson\",\r\n untils: \"-8aelc0|t22y80|Infinity\",\r\n offsets: \"0|-360|-300\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Antarctica/McMurdo\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Antarctica/Palmer\",\r\n untils: \"-2lxhc0|31ho0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|46b6s0|8c2s0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|Infinity\",\r\n offsets: \"0|180|240|120\",\r\n offsetIndices: \"0121212121213121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Antarctica/Rothera\",\r\n untils: \"3lxs00|Infinity\",\r\n offsets: \"0|180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Antarctica/South_Pole\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Antarctica/Syowa\",\r\n untils: \"-6qsqo0|Infinity\",\r\n offsets: \"0|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Antarctica/Troll\",\r\n untils: \"ibruo0|27pg0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-120\",\r\n offsetIndices: \"00101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Antarctica/Vostok\",\r\n untils: \"-6aaao0|Infinity\",\r\n offsets: \"0|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Arctic/Longyearbyen\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Aden\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Almaty\",\r\n untils: \"-nu1a90|37a0d0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\",\r\n offsets: \"-307.8|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Amman\",\r\n untils: \"-kcrtbk|m566fk|60l80|awo40|7v980|awo40|7v980|ayis0|9gnw0|9b9g0|7v980|autg0|7v980|3e6840|9et80|9io40|9cyk0|9d440|9cyk0|9d440|9px80|ayis0|7rjw0|ag040|8a2k0|9zc40|8drw0|a31g0|8zzw0|9d440|9cyk0|9d440|8n180|ag040|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|epmo0|4deo0|9o5c0|9ew00|9b6o0|9ew00|9d1c0|9d1c0|9d1c0|asw00|7x6o0|afxc0|8n400|9d1c0|9d1c0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|wel80|51k40|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\",\r\n offsets: \"-143.7333|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Anadyr\",\r\n untils: \"-nu1sv8|379zj8|qi27w0|9et80|is040|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-709.9333|-720|-780|-840|-660\",\r\n offsetIndices: \"01232121212121212121214121212121212121212121212121212121212141\"\r\n }, {\r\n id: \"Asia/Aqtau\",\r\n untils: \"-nu15b4|379y74|qrh3w0|iruk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-201.0667|-240|-300|-360\",\r\n offsetIndices: \"012323232323232323232123232312121212121212121212\"\r\n }, {\r\n id: \"Asia/Aqtobe\",\r\n untils: \"-nu16l4|379zh4|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\",\r\n offsets: \"-228.6667|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232321232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Ashgabat\",\r\n untils: \"-nu16t8|379zp8|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|Infinity\",\r\n offsets: \"-233.5333|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232323212\"\r\n }, {\r\n id: \"Asia/Ashkhabad\",\r\n untils: \"-nu16t8|379zp8|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|Infinity\",\r\n offsets: \"-233.5333|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232323212\"\r\n }, {\r\n id: \"Asia/Atyrau\",\r\n untils: \"-nu15m8|37a1a8|qrh140|iruk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|j3440|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-207.7333|-180|-300|-360|-240\",\r\n offsetIndices: \"01232323232323232323242323232323232324242424242\"\r\n }, {\r\n id: \"Asia/Baghdad\",\r\n untils: \"-r50g80|xkn3w0|7v980|9b9g0|9gnw0|9eys0|9et80|9d440|9b9g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9f1k0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|Infinity\",\r\n offsets: \"-177.6|-180|-240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Bahrain\",\r\n untils: \"-q3gmvk|rctnrk|Infinity\",\r\n offsets: \"-206.1333|-240|-180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Baku\",\r\n untils: \"-nu158c|h4tkwc|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9d1c0|239ew0|asw00|7x3w0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-199.4|-180|-240|-300\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Bangkok\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Barnaul\",\r\n untils: \"-q4ljic|5hu6uc|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|38fo0|64og0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-335|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323232321212121212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Beirut\",\r\n untils: \"-pyzew0|aunw0|88dg0|9et80|8yas0|a2vw0|a31g0|7k580|hjqo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|5lhs40|56yk0|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|autg0|7v980|2wxus0|8n180|a4w40|8n180|a4w40|8n180|a4w40|8n180|bs5g0|71mk0|alk40|86d80|a4w40|8n180|a4w40|8n180|a6qs0|80t80|905g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Bishkek\",\r\n untils: \"-nu19tc|379zxc|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|h8dc0|bkl80|8n180|a31g0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9db20|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|Infinity\",\r\n offsets: \"-298.4|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Brunei\",\r\n untils: \"-mvofy4|3khxs4|Infinity\",\r\n offsets: \"-459.6667|-450|-480\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Calcutta\",\r\n untils: \"-xehava|innm9a|bmfw0|5lxg0|1mn180|Infinity\",\r\n offsets: \"-321.1667|-330|-390\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Asia/Chita\",\r\n untils: \"-q4cfog|5hkxgg|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnew0|Infinity\",\r\n offsets: \"-453.8667|-480|-540|-600\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323232312\"\r\n }, {\r\n id: \"Asia/Choibalsan\",\r\n untils: \"-xmct7c|11sndrc|2qk2k0|9eqg0|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|s6qk0|3nc0c0|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-458|-420|-480|-600|-540\",\r\n offsetIndices: \"0123434343434343434343434343434343434343434343424242\"\r\n }, {\r\n id: \"Asia/Chongqing\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Chungking\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Colombo\",\r\n untils: \"-xehask|isle6k|cajy0|1mp2u0|qetjw0|7x5a0|4xvqq0|Infinity\",\r\n offsets: \"-319.5333|-330|-360|-390\",\r\n offsetIndices: \"01231321\"\r\n }, {\r\n id: \"Asia/Dacca\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|4qknw0|u4ijy0|a1400|Infinity\",\r\n offsets: \"-353.3333|-390|-330|-360|-420\",\r\n offsetIndices: \"0121343\"\r\n }, {\r\n id: \"Asia/Damascus\",\r\n untils: \"-q3gk20|5k6q0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|k4hk40|7yyk0|awo40|7tek0|b0dg0|7v980|awo40|7tek0|alk40|887w0|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|6bp80|cg840|6bp80|2eh1g0|8zzw0|9ts40|8zzw0|pvk40|c33w0|7cw40|cjrw0|6zxg0|btuk0|7rpg0|9gnw0|9d440|9cyk0|9et80|9et80|9rxg0|91uk0|92040|9et80|9o840|9et80|9d440|9et80|9eys0|9et80|9b9g0|9gnw0|99es0|9iik0|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|8y580|9q2s0|b5rw0|7x9g0|aunw0|7ig40|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|Infinity\",\r\n offsets: \"-145.2|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Dhaka\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|4qknw0|u4ijy0|a1400|Infinity\",\r\n offsets: \"-353.3333|-390|-330|-360|-420\",\r\n offsetIndices: \"0121343\"\r\n }, {\r\n id: \"Asia/Dili\",\r\n untils: \"-u9s4l8|fqcu98|hufs00|cpz440|Infinity\",\r\n offsets: \"-502.3333|-480|-540\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Asia/Dubai\",\r\n untils: \"-q3gnko|Infinity\",\r\n offsets: \"-221.2|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Dushanbe\",\r\n untils: \"-nu18qo|379yuo|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|hp440|Infinity\",\r\n offsets: \"-275.2|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321\"\r\n }, {\r\n id: \"Asia/Famagusta\",\r\n untils: \"-p4bqac|rvhy2c|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|8h8w0|leog0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-135.8|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Gaza\",\r\n untils: \"-ffv9k0|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|5hoqs0|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|1sns0|3p6is0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|66as0|4vxc0|8n400|a2yo0|8n400|a2yo0|8n400|asw00|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|8n400|a2yo0|8ulg0|97ek0|8y580|9ts40|8hms0|a4qk0|7x3w0|asys0|8a5c0|ahs1o|71mic|bzk5o|69uic|cg840|902o0|9q000|9cyk0|9d440|ast80|7z440|aqyk0|7z6w0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Harbin\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Hebron\",\r\n untils: \"-ffv9k0|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|5hoqs0|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|1sns0|3p6is0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|66as0|4vxc0|8n400|a2yo0|8n400|a2yo0|8n400|asw00|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|8n400|a2yo0|8ulg0|97ek0|8y580|9ts40|8hms0|a4qk0|82nw0|anes0|8a5c0|afxc0|73h80|bzk5o|69uic|1hs40|1lbw0|9d440|902o0|9q000|9cyk0|9d440|ast80|7z440|aqyk0|7z6w0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Ho_Chi_Minh\",\r\n untils: \"-x56934|2isioa|gj25iu|15ct80|8so00|tmtk0|4azjw0|2cmao0|8285c0|Infinity\",\r\n offsets: \"-426.6667|-426.5|-420|-480|-540\",\r\n offsetIndices: \"0123423232\"\r\n }, {\r\n id: \"Asia/Hong_Kong\",\r\n untils: \"-y0i0s0|j44dk0|5k000|4d4y0|2195i0|7x3w0|bj320|6uao0|bvs00|7x6o0|9d1c0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|ast80|77c40|biqk0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-456.7|-480|-540|-510\",\r\n offsetIndices: \"0123212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Hovd\",\r\n untils: \"-xmcoz0|11sncb0|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-366.6|-360|-420|-480\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Irkutsk\",\r\n untils: \"-q28gn5|5fh175|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-417.0833|-420|-480|-540\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Istanbul\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"Asia/Jakarta\",\r\n untils: \"-o0bdpc|4lzxc0|4wdzjc|1tu960|1cx860|11jta0|74uc20|Infinity\",\r\n offsets: \"-427.2|-440|-450|-540|-480|-420\",\r\n offsetIndices: \"01232425\"\r\n }, {\r\n id: \"Asia/Jayapura\",\r\n untils: \"-jebm20|66bqe0|a37vy0|Infinity\",\r\n offsets: \"-562.8|-540|-570\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Jerusalem\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Kabul\",\r\n untils: \"-d1pkg0|Infinity\",\r\n offsets: \"-240|-270\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Kamchatka\",\r\n untils: \"-olrupo|3z045o|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-634.6|-660|-720|-780\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Asia/Karachi\",\r\n untils: \"-wvpb30|im3zt0|1mn180|33xpg0|a63o20|g72qo0|9cyk0|2y85g0|7v980|8hms0|aaak0|Infinity\",\r\n offsets: \"-268.2|-330|-390|-300|-360\",\r\n offsetIndices: \"012133434343\"\r\n }, {\r\n id: \"Asia/Kashgar\",\r\n untils: \"-lx5pjw|Infinity\",\r\n offsets: \"-350.3333|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Kathmandu\",\r\n untils: \"-q3gt4s|yg2lus|Infinity\",\r\n offsets: \"-341.2667|-330|-345\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Katmandu\",\r\n untils: \"-q3gt4s|yg2lus|Infinity\",\r\n offsets: \"-341.2667|-330|-345\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Khandyga\",\r\n untils: \"-q4cjrp|5hl1jp|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|3fx40|4h6s0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\",\r\n offsets: \"-542.2167|-480|-540|-600|-660\",\r\n offsetIndices: \"0123232323232323232323212323232323232323232323232343434343434343432\"\r\n }, {\r\n id: \"Asia/Kolkata\",\r\n untils: \"-xehava|innm9a|bmfw0|5lxg0|1mn180|Infinity\",\r\n offsets: \"-321.1667|-330|-390\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Asia/Krasnoyarsk\",\r\n untils: \"-q37l72|5gg8j2|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-371.4333|-360|-420|-480\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Kuala_Lumpur\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Asia/Kuching\",\r\n untils: \"-mvof3k|3khwxk|1epvy0|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|3ajlc|1v2qk0|Infinity\",\r\n offsets: \"-441.3333|-450|-480|-500|-540\",\r\n offsetIndices: \"0123232323232323242\"\r\n }, {\r\n id: \"Asia/Kuwait\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Macao\",\r\n untils: \"-y0i2cy|jdvyoy|6onw0|ac580|8fs40|7v980|11luw0|awlc0|7vc00|ac800|bko00|7x6o0|9d1c0|7vc00|asw00|7x6o0|asw00|7x6o0|auqo0|88ao0|asw00|7x6o0|asw00|779c0|bitc0|779c0|bvs00|6uao0|bw1q0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cvs0|9d6w0|9cvs0|9d6w0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-454.1667|-480|-540|-600\",\r\n offsetIndices: \"012323212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Macau\",\r\n untils: \"-y0i2cy|jdvyoy|6onw0|ac580|8fs40|7v980|11luw0|awlc0|7vc00|ac800|bko00|7x6o0|9d1c0|7vc00|asw00|7x6o0|asw00|7x6o0|auqo0|88ao0|asw00|7x6o0|asw00|779c0|bitc0|779c0|bvs00|6uao0|bw1q0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cvs0|9d6w0|9cvs0|9d6w0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-454.1667|-480|-540|-600\",\r\n offsetIndices: \"012323212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Magadan\",\r\n untils: \"-nu1nxc|37a05c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|s39k0|Infinity\",\r\n offsets: \"-603.2|-600|-660|-720\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323232312\"\r\n }, {\r\n id: \"Asia/Makassar\",\r\n untils: \"-q3gzg0|6p5hc0|4u87w0|1w02k0|Infinity\",\r\n offsets: \"-477.6|-480|-540\",\r\n offsetIndices: \"00121\"\r\n }, {\r\n id: \"Asia/Manila\",\r\n untils: \"-hb5y80|4qak0|2qidg0|1b2d80|4xf440|442k0|cdqdg0|9et80|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Asia/Muscat\",\r\n untils: \"-q3gnko|Infinity\",\r\n offsets: \"-221.2|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Nicosia\",\r\n untils: \"-p4bq6g|rvhxyg|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-133.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Novokuznetsk\",\r\n untils: \"-nu36tc|37bu5c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-348.8|-360|-420|-480\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Asia/Novosibirsk\",\r\n untils: \"-q4do0s|5hmbcs|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|2vh00|6hn40|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|wrpg0|Infinity\",\r\n offsets: \"-331.6667|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Omsk\",\r\n untils: \"-q5xmx6|5j6d16|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-293.5|-300|-360|-420\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Oral\",\r\n untils: \"-nu15ic|37a16c|qi2540|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|9d1c0|5reo0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-205.4|-180|-300|-360|-240\",\r\n offsetIndices: \"01232323232323232424242424242424242424242424242\"\r\n }, {\r\n id: \"Asia/Phnom_Penh\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Pontianak\",\r\n untils: \"-w6piww|cse2o0|4tnu2w|1wkei0|1cx860|11jta0|74uc20|cixam0|Infinity\",\r\n offsets: \"-437.3333|-450|-540|-480|-420\",\r\n offsetIndices: \"001213134\"\r\n }, {\r\n id: \"Asia/Pyongyang\",\r\n untils: \"-w895yc|1yh10c|hk5da0|10ipmo0|1f4qo0|Infinity\",\r\n offsets: \"-503|-510|-540\",\r\n offsetIndices: \"012212\"\r\n }, {\r\n id: \"Asia/Qatar\",\r\n untils: \"-q3gmvk|rctnrk|Infinity\",\r\n offsets: \"-206.1333|-240|-180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Qostanay\",\r\n untils: \"-nu17s4|37a0o4|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-254.4667|-240|-300|-360\",\r\n offsetIndices: \"012323232323232323232123232323232323232323232323\"\r\n }, {\r\n id: \"Asia/Qyzylorda\",\r\n untils: \"-nu184g|37a10g|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|ohhc0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|7osl00|Infinity\",\r\n offsets: \"-261.8667|-240|-300|-360\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Rangoon\",\r\n untils: \"-q3gv5b|bnjp3b|1kh520|Infinity\",\r\n offsets: \"-384.7833|-390|-540\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Riyadh\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Saigon\",\r\n untils: \"-x56934|2isioa|gj25iu|15ct80|8so00|tmtk0|4azjw0|2cmao0|8285c0|Infinity\",\r\n offsets: \"-426.6667|-426.5|-420|-480|-540\",\r\n offsetIndices: \"0123423232\"\r\n }, {\r\n id: \"Asia/Sakhalin\",\r\n untils: \"-xl87rc|kvnarc|ikvh40|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|iq5g0|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-570.8|-540|-660|-720|-600\",\r\n offsetIndices: \"01232323232323232323232423232323232424242424242424242424242424242\"\r\n }, {\r\n id: \"Asia/Samarkand\",\r\n untils: \"-nu18eh|37a1ah|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-267.8833|-240|-300|-360\",\r\n offsetIndices: \"01232323232323232323232\"\r\n }, {\r\n id: \"Asia/Seoul\",\r\n untils: \"-w8966g|1yh18g|hkx5a0|1faao0|5cik0|ae5g0|8a2k0|ae5g0|8bx80|c8tg0|6h980|1bj6s0|l3aq0|6j3w0|d2g40|6u7w0|b5xg0|776k0|biw40|776k0|biw40|776k0|biw40|776k0|grs40|dfqxi0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-507.8667|-510|-540|-600|-570\",\r\n offsetIndices: \"012232323232141414141414123232\"\r\n }, {\r\n id: \"Asia/Shanghai\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Singapore\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Asia/Srednekolymsk\",\r\n untils: \"-nu1ogs|37a0os|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-614.8667|-600|-660|-720\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Taipei\",\r\n untils: \"-gtzfk0|45slc0|c51c0|75bw0|a31g0|aaak0|9d440|7v980|awo40|7v980|awo40|7v980|awo40|7v980|7tk40|clmk0|7rpg0|b07w0|7rpg0|b07w0|7rpg0|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|cjxg0|69uk0|ci2s0|69uk0|6its40|9et80|9d440|9et80|1yf9g0|4qak0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Tashkent\",\r\n untils: \"-nu18tz|379yxz|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|Infinity\",\r\n offsets: \"-277.1833|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321\"\r\n }, {\r\n id: \"Asia/Tbilisi\",\r\n untils: \"-nu14an|h4tjyn|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9cvs0|9cyk0|9d440|9cyk0|9d440|ipzw0|9cyk0|9q2s0|tivw0|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|4ofw0|6hn40|7k800|Infinity\",\r\n offsets: \"-179.1833|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232323212121232323232323232323212\"\r\n }, {\r\n id: \"Asia/Tehran\",\r\n untils: \"-s6m6uw|fnolc0|gm3h4w|777y0|b07w0|3pes0|42c20|9cyk0|9gtg0|9kd80|5ja5g0|7avw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|1av440|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|Infinity\",\r\n offsets: \"-205.7333|-210|-240|-300|-270\",\r\n offsetIndices: \"00123214141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\"\r\n }, {\r\n id: \"Asia/Tel_Aviv\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Thimbu\",\r\n untils: \"-bojclo|kxymno|Infinity\",\r\n offsets: \"-358.6|-330|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Thimphu\",\r\n untils: \"-bojclo|kxymno|Infinity\",\r\n offsets: \"-358.6|-330|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Tokyo\",\r\n untils: \"-bb4900|6uao0|afxc0|8a5c0|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-540|-600\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Asia/Tomsk\",\r\n untils: \"-q3zbqf|5h7z2f|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|1leo0|97k40|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|tw040|Infinity\",\r\n offsets: \"-339.85|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323232323232323232323212121212121212121212\"\r\n }, {\r\n id: \"Asia/Ujung_Pandang\",\r\n untils: \"-q3gzg0|6p5hc0|4u87w0|1w02k0|Infinity\",\r\n offsets: \"-477.6|-480|-540\",\r\n offsetIndices: \"00121\"\r\n }, {\r\n id: \"Asia/Ulaanbaatar\",\r\n untils: \"-xmcrsk|11sncck|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-427.5333|-420|-480|-540\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Ulan_Bator\",\r\n untils: \"-xmcrsk|11sncck|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-427.5333|-420|-480|-540\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Urumqi\",\r\n untils: \"-lx5pjw|Infinity\",\r\n offsets: \"-350.3333|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Ust-Nera\",\r\n untils: \"-q4cl6u|5hl2yu|qi27w0|9eno0|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\",\r\n offsets: \"-572.9|-480|-540|-720|-660|-600\",\r\n offsetIndices: \"012343434343434343434345434343434343434343434343434343434343434345\"\r\n }, {\r\n id: \"Asia/Vientiane\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Vladivostok\",\r\n untils: \"-oligf7|3yqvf7|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-527.5167|-540|-600|-660\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Yakutsk\",\r\n untils: \"-q4cioy|5hl0gy|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-518.9667|-480|-540|-600\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Yangon\",\r\n untils: \"-q3gv5b|bnjp3b|1kh520|Infinity\",\r\n offsets: \"-384.7833|-390|-540\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Yekaterinburg\",\r\n untils: \"-rx5hw9|1kybx4|5pfyv5|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-242.55|-225.0833|-240|-300|-360\",\r\n offsetIndices: \"012343434343434343434343234343434343434343434343434343434343434343\"\r\n }, {\r\n id: \"Asia/Yerevan\",\r\n untils: \"-nu148o|h4tjwo|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|11t180|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\",\r\n offsets: \"-178|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232323212121212323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Azores\",\r\n untils: \"-u9rbs0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"114.5333|120|60|0\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323233323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Bermuda\",\r\n untils: \"-kvj2fu|n4pr3u|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"259.3|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Canary\",\r\n untils: \"-oytbtc|ctvupc|hhq7s0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"61.6|60|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Cape_Verde\",\r\n untils: \"-u9rbs0|g06lc0|1mn180|fpqwc0|Infinity\",\r\n offsets: \"94.0667|120|60\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Atlantic/Faeroe\",\r\n untils: \"-wcehew|127keuw|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"27.0667|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Faroe\",\r\n untils: \"-wcehew|127keuw|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"27.0667|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Jan_Mayen\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Atlantic/Madeira\",\r\n untils: \"-u9rek0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"67.6|60|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Reykjavik\",\r\n untils: \"-wcwx9c|4rpd9c|ci2s0|69uk0|du840|4xp80|du840|p7bw0|4w040|9bdzw0|9d6w0|64g40|cyl80|64dc0|clpc0|6hc00|bvs00|6uao0|bvs00|6uao0|bvs00|6uao0|c8qo0|6hc00|c8qo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|Infinity\",\r\n offsets: \"88|60|0\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Atlantic/South_Georgia\",\r\n untils: \"Infinity\",\r\n offsets: \"120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Atlantic/St_Helena\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Atlantic/Stanley\",\r\n untils: \"-u63pac|dbvxqc|8zzw0|9q2s0|8zzw0|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|4xp80|l1pus0|7k580|b5rw0|77c40|biqk0|id6s0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|77c40|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5xg0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|77c40|biqk0|77c40|biqk0|77c40|Infinity\",\r\n offsets: \"231.4|240|180|120\",\r\n offsetIndices: \"012121212121212323212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Australia/ACT\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Adelaide\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|7k800|b5uo0|6uao0|c8qo0|779c0|bitc0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Brisbane\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"01010101010101010\"\r\n }, {\r\n id: \"Australia/Broken_Hill\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Canberra\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Currie\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Darwin\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Australia/Eucla\",\r\n untils: \"-rnstlc|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-525|-585\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Hobart\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|c9tms0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/LHI\",\r\n untils: \"5tp880|c8uu0|6u7w0|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|777y0|b5w20|7k6m0|biuq0|7k6m0|biuq0|777y0|biuq0|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|7x820|asum0|b5w20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7k6m0|b5w20|8a3y0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9pym0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|Infinity\",\r\n offsets: \"-600|-630|-690|-660\",\r\n offsetIndices: \"0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313\"\r\n }, {\r\n id: \"Australia/Lindeman\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010\"\r\n }, {\r\n id: \"Australia/Lord_Howe\",\r\n untils: \"5tp880|c8uu0|6u7w0|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|777y0|b5w20|7k6m0|biuq0|7k6m0|biuq0|777y0|biuq0|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|7x820|asum0|b5w20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7k6m0|b5w20|8a3y0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9pym0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|Infinity\",\r\n offsets: \"-600|-630|-690|-660\",\r\n offsetIndices: \"0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313\"\r\n }, {\r\n id: \"Australia/Melbourne\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|b5uo0|7x6o0|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/North\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Australia/NSW\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Perth\",\r\n untils: \"-rnsric|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Queensland\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"01010101010101010\"\r\n }, {\r\n id: \"Australia/South\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|7k800|b5uo0|6uao0|c8qo0|779c0|bitc0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Sydney\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Tasmania\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|c9tms0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Victoria\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|b5uo0|7x6o0|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/West\",\r\n untils: \"-rnsric|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Yancowinna\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Brazil/Acre\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/DeNoronha\",\r\n untils: \"-t85lzw|99k8rw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"129.6667|120|60\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/East\",\r\n untils: \"-t85jd8|99k8x8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5k02s0|6onw0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"186.4667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/West\",\r\n untils: \"-t85gvw|99k97w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|Infinity\",\r\n offsets: \"240.0667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Atlantic\",\r\n untils: \"-z94k80|777go0|9et80|st9o0|a2vw0|ssyk0|5rbw0|cv1g0|69uk0|c6ys0|6kyk0|ci2s0|67zw0|ci2s0|6w2k0|bu040|7lzw0|bu040|66580|bu040|7lzw0|bu040|64ak0|cls40|5v180|cv1g0|6j3w0|c6ys0|79180|b42s0|7lzw0|b42s0|7yyk0|bu040|64ak0|dbpg0|66580|cls40|5ed80|bu040|7lzw0|b42s0|7lzw0|cjxg0|66580|bh1g0|7lzw0|b42s0|7lzw0|6uj00|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|1cm2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"254.4|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Central\",\r\n untils: \"-s0s7c0|7k580|tj700|a2vw0|9ok840|6u7w0|2a5hg0|1tz8c0|2dsw0|biw40|7x3w0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b7s40|7tek0|autg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|7x3w0|1cm2s0|7k580|1cm2s0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Eastern\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Mountain\",\r\n untils: \"-x1yazk|629ink|a2vw0|8n6s0|29ek0|h6lg0|9px80|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|9l0g40|1tz5k0|2dvo0|tj1g0|7x3w0|ctzk40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"453.8667|420|360\",\r\n offsetIndices: \"0121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Newfoundland\",\r\n untils: \"-ris3ck|8bx80|ar440|a2vw0|9tjs0|53980|dkys0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|7tmw0|1wfuk|8zzw0|a3480|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|90\",\r\n offsetIndices: \"01010101010101010101010101010101010102323232323232323323232323232323232323232323232323232323232323232323232323232323232323232323232323232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Canada/Pacific\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Saskatchewan\",\r\n untils: \"-xkq9yc|6l1hmc|a2vw0|60enw0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|1b6840|9cyk0|9d440|8zzw0|9q2s0|9cyk0|9q2s0|9cyk0|9d440|9cyk0|66gc0|1tz5k0|2dvo0|a31g0|9cyk0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|tj1g0|9cyk0|9d440|Infinity\",\r\n offsets: \"418.6|420|360\",\r\n offsetIndices: \"012121212121212121212121221212121212121212121212121212\"\r\n }, {\r\n id: \"Canada/Yukon\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|tiyo0|6qp440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"CET\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Chile/Continental\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|229zw0|2gt80|awo40|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Chile/EasterIsland\",\r\n untils: \"-jhfaew|ivmeuw|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|iq2o0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"437.4667|420|360|300\",\r\n offsetIndices: \"012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"CST6CDT\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Cuba\",\r\n untils: \"-n7762o|1icfyo|69uk0|62s040|4ofw0|e1ms0|51ek0|e1ms0|4ofw0|1fhs40|4ofw0|e1ms0|4ofw0|9s9k40|67zw0|cedg0|6h980|9o840|7yyk0|b5xg0|7k580|bvus0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|8a2k0|ag040|8bx80|ae5g0|8drw0|acas0|9cyk0|9d440|9px80|905g0|9px80|9q2s0|7x3w0|8a840|ast80|7x9g0|ast80|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|905g0|a2vw0|905g0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|8n400|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|7x6o0|1cm000|6uao0|bvs00|779c0|bitc0|6uao0|bvs00|779c0|bvs00|779c0|c8qo0|779c0|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|Infinity\",\r\n offsets: \"329.6|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"EET\",\r\n untils: \"3s9ms0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Egypt\",\r\n untils: \"-fdls80|40d80|a31g0|7x3w0|a4w40|aqyk0|80ys0|b07w0|7tk40|b07w0|8jhg0|a8fw0|60go40|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|f9x80|3i040|eluk0|462s0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|b5rw0|7m5g0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|aqvs0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7k580|b5xg0|6u7w0|bvus0|6h980|c8tg0|64ak0|cyqs0|5anw0|1jms0|12t80|1w22s0|25p80|1sw40|2vmk0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Eire\",\r\n untils: \"-rzcmlr|6uao0|9pytr|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|3g8800|8a5c0|bvs00|8n400|a2yo0|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"25.35|-34.65|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"EST\",\r\n untils: \"Infinity\",\r\n offsets: \"300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"EST5EDT\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|bmtus0|1tzb40|2dq40|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Etc/GMT-0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-1\",\r\n untils: \"Infinity\",\r\n offsets: \"-60\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-10\",\r\n untils: \"Infinity\",\r\n offsets: \"-600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-11\",\r\n untils: \"Infinity\",\r\n offsets: \"-660\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-12\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-13\",\r\n untils: \"Infinity\",\r\n offsets: \"-780\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-14\",\r\n untils: \"Infinity\",\r\n offsets: \"-840\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-2\",\r\n untils: \"Infinity\",\r\n offsets: \"-120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-3\",\r\n untils: \"Infinity\",\r\n offsets: \"-180\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-4\",\r\n untils: \"Infinity\",\r\n offsets: \"-240\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-5\",\r\n untils: \"Infinity\",\r\n offsets: \"-300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-6\",\r\n untils: \"Infinity\",\r\n offsets: \"-360\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-7\",\r\n untils: \"Infinity\",\r\n offsets: \"-420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-8\",\r\n untils: \"Infinity\",\r\n offsets: \"-480\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-9\",\r\n untils: \"Infinity\",\r\n offsets: \"-540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+1\",\r\n untils: \"Infinity\",\r\n offsets: \"60\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+10\",\r\n untils: \"Infinity\",\r\n offsets: \"600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+11\",\r\n untils: \"Infinity\",\r\n offsets: \"660\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+12\",\r\n untils: \"Infinity\",\r\n offsets: \"720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+2\",\r\n untils: \"Infinity\",\r\n offsets: \"120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+3\",\r\n untils: \"Infinity\",\r\n offsets: \"180\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+4\",\r\n untils: \"Infinity\",\r\n offsets: \"240\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+5\",\r\n untils: \"Infinity\",\r\n offsets: \"300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+6\",\r\n untils: \"Infinity\",\r\n offsets: \"360\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+7\",\r\n untils: \"Infinity\",\r\n offsets: \"420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+8\",\r\n untils: \"Infinity\",\r\n offsets: \"480\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+9\",\r\n untils: \"Infinity\",\r\n offsets: \"540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Greenwich\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/UCT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Universal\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/UTC\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Zulu\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Europe/Amsterdam\",\r\n untils: \"-s0dvkk|7v980|a51o0|7x6o0|a2yo0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9b6o0|a2yo0|c51c0|6l1c0|902o0|9q000|ci000|682o0|bgyo0|79400|bitc0|779c0|bmio0|7gio0|bbeo0|7eo00|bd9c0|7ctc0|bf400|7ayo0|bvs00|6uao0|bko00|7idc0|b9k00|7gio0|bbeo0|7eo00|bf400|7ayo0|btxc0|21uc0|4uaz8|bitc0|779c0|bko00|7idc0|bd3s0|1aarpc|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-19.5333|-79.5333|-80|-20|-120|-60\",\r\n offsetIndices: \"010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"Europe/Andorra\",\r\n untils: \"-c4xmo0|k3ctg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Astrakhan\",\r\n untils: \"-nu2zkc|37bv8c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-192.2|-180|-240|-300\",\r\n offsetIndices: \"012323232323232323212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Athens\",\r\n untils: \"-rvv0cg|8bjasg|2vmk0|4hiw40|16ik0|scog0|7lx40|9o2k0|9eys0|4atzw0|6djw0|bplus0|bq800|71uw0|9d1c0|902o0|91xc0|9o5c0|905g0|9qgo0|9akg0|9iik0|99980|9dcg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-94.8667|-120|-180|-60\",\r\n offsetIndices: \"012121313121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Belfast\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Belgrade\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Berlin\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|2o7w0|6bs00|2txg0|7k800|91xc0|9b9g0|1sqk0|2inw0|51k40|a2yo0|8n400|9q000|902o0|fx91c0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|-180\",\r\n offsetIndices: \"01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Bratislava\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|b5uo0|7vc00|2vs40|4bk00|2vmk0|8n400|a2yo0|8n400|9o5c0|91xc0|fe6000|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|0\",\r\n offsetIndices: \"01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Brussels\",\r\n untils: \"-ss5uo0|rrx80|7vc00|a4yw0|7x6o0|asw00|7x6o0|2wh40|5omo0|b5uo0|6uao0|cyo00|7ayo0|bko00|7rmo0|a2yo0|a2yo0|8n400|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|90b00|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|4deo0|1a36k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0121212101010101010101010101010101010101010101010101212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Bucharest\",\r\n untils: \"-k29zi0|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|kp0dc0|6h980|9q000|905g0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-104.4|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Budapest\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|a31g0|8n180|autg0|bgvw0|b5jeg0|th9k0|7k800|9q000|9d1c0|9d1c0|awd00|9ew00|7q0c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|a4tc0|9q000|1va2g0|6u7w0|bxpg0|6u7w0|cjxg0|64ak0|cluw0|64g40|br3ek0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Busingen\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Chisinau\",\r\n untils: \"-r2p1bo|70f1to|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|geqo0|ha580|oc8g0|7k800|9q000|9d1c0|7cl00|j3pbw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|25p80|7kdk0|9d1c0|9d1c0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xf00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-115|-104.4|-120|-180|-60|-240\",\r\n offsetIndices: \"012323232323232323232424235353535353535353535323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Copenhagen\",\r\n untils: \"-rzo2w0|75bw0|cbs2w0|1aco80|7k800|9q000|9d1c0|9d1c0|9d1c0|6y000|dbmo0|6bs00|clpc0|51hc0|e1k00|4oio0|giutc0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Dublin\",\r\n untils: \"-rzcmlr|6uao0|9pytr|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|3g8800|8a5c0|bvs00|8n400|a2yo0|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"25.35|-34.65|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Gibraltar\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|d0tp80|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101012121212121010121010101010101010101012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Guernsey\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Helsinki\",\r\n untils: \"-peghyd|ax3tqd|9gqo0|k31s80|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99.8167|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Isle_of_Man\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Istanbul\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"Europe/Jersey\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Kaliningrad\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|el00|z6o0|9kd80|82tg0|i9avw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-60|-120|-180|-240\",\r\n offsetIndices: \"01010101010101121232323232323232322121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Kiev\",\r\n untils: \"-nu11ng|37a03g|5vd6k0|kzv40|7k800|9q000|1oyg0|jipzs0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|51ek0|neqw0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-122.0667|-120|-180|-60|-240\",\r\n offsetIndices: \"0121313242424242424242424242121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Kirov\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-198.8|-180|-240|-300\",\r\n offsetIndices: \"01232323232323232321212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Lisbon\",\r\n untils: \"-u9rhc0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5gyl40|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"36.75|0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121212121212121212121212121212121212122323232212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Ljubljana\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/London\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Luxembourg\",\r\n untils: \"-y89550|68l290|75hg0|ast80|796s0|at1k0|7x6o0|3lh40|4zmo0|b6300|6u2c0|cytk0|7at40|bktk0|7rh40|a31g0|a2vw0|8n9k0|8zx40|9q2s0|9et80|9b9g0|a2vw0|8n6s0|9px80|905g0|a2vw0|905g0|a2vw0|8ncc0|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|42ao0|1aeak0|7k800|9q000|9d1c0|8n400|a2yo0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-24.6|-60|-120|0\",\r\n offsetIndices: \"0121212131313131313131313131313131313131313131313131212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Madrid\",\r\n untils: \"-qzlus0|8yas0|9cyk0|9eys0|2d2vw0|8sqs0|ssyk0|8n6s0|9px80|905g0|a2yo0|902o0|a2vw0|8n6s0|40lh80|5k2s0|9cyk0|1frw0|7z1c0|j1c80|8a2k0|13yt80|685g0|brzw0|8n6s0|a2vw0|8n6s0|a2vw0|8n6s0|a2vw0|8n6s0|1clx80|7x9g0|cswik0|905g0|9px80|905g0|8zzw0|9d440|9px80|905g0|9q5k0|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101210121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Malta\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9b6o0|8n400|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|9b6o0|9d1c0|ahs00|7m2o0|b45k0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|a4w40|8y580|9q2s0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Mariehamn\",\r\n untils: \"-peghyd|ax3tqd|9gqo0|k31s80|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99.8167|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Minsk\",\r\n untils: \"-nu113c|379zjc|5r1mk0|pbf40|7k800|9q000|9d1c0|4oac0|j6dmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|sg2o0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|Infinity\",\r\n offsets: \"-110|-120|-180|-60|-240\",\r\n offsetIndices: \"01213131242424242424242424221212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Monaco\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|mdbo0|7x3w0|7x9g0|c8w80|7k800|9q000|9d1c0|9nzs0|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Moscow\",\r\n untils: \"-rx5dmh|ipzua|97hc0|7yyk0|5i840|d9p80|1jwk7|2cvk0|s8o00|1qvw0|8fpc0|1jms0|is040|412as0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-150.2833|-151.3167|-211.3167|-271.3167|-240|-180|-300|-120\",\r\n offsetIndices: \"012132345464575454545454545454545455754545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"Europe/Nicosia\",\r\n untils: \"-p4bq6g|rvhxyg|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-133.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Oslo\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Paris\",\r\n untils: \"-uozn1x|2qx1lx|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|5p8w0|18rcc0|7k800|9q000|9d1c0|7efo0|29k40|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212123232332323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Podgorica\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Prague\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|b5uo0|7vc00|2vs40|4bk00|2vmk0|8n400|a2yo0|8n400|9o5c0|91xc0|fe6000|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|0\",\r\n offsetIndices: \"01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Riga\",\r\n untils: \"-qznlky|7x6o0|a4tc0|2mg00|3myns0|7fhlky|gz180|p5v40|7k800|9q000|9d1c0|9d1c0|k7s0|j14ns0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|asw00|7x6o0|asw00|7x6o0|b5uo0|qaao0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-96.5667|-156.5667|-120|-180|-60|-240\",\r\n offsetIndices: \"010102324242435353535353535353323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Rome\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Samara\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|jt1g0|89zs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-200.3333|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232121232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Europe/San_Marino\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Sarajevo\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Saratov\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|13m040|Infinity\",\r\n offsets: \"-184.3|-180|-240|-300\",\r\n offsetIndices: \"012323232323232321212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Simferopol\",\r\n untils: \"-nu12ao|37a0qo|5xiyk0|iu340|7k800|9q000|9d1c0|iac0|jajmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|wrjw0|9cyk0|9d440|9cyk0|9d440|1sqk0|7k580|9d440|9cyk0|9q2s0|at4c0|7x9g0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x3w0|asqg0|Infinity\",\r\n offsets: \"-136|-120|-180|-60|-240\",\r\n offsetIndices: \"012131312424242424242424242121212424242212121212121212121212121212121212142\"\r\n }, {\r\n id: \"Europe/Skopje\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Sofia\",\r\n untils: \"-e6dzw0|7k800|9q000|9d1c0|9d1c0|9d440|hqq240|9eys0|9o2k0|92040|9o2k0|90880|9pug0|90b00|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-120|-60|-180\",\r\n offsetIndices: \"01010102020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020\"\r\n }, {\r\n id: \"Europe/Stockholm\",\r\n untils: \"-rzo2w0|75hg0|x5bew0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Tallinn\",\r\n untils: \"-r3exx0|3re10|7x6o0|et6g0|ygov0|a1zgd0|ktx80|l94g0|7k800|9q000|9d1c0|8uac0|j27mk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asys0|7x6o0|b5uo0|19dc00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99|-60|-120|-180|-240\",\r\n offsetIndices: \"012102321212343434343434343433232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Tirane\",\r\n untils: \"-t85vo8|dt2gw8|18pew0|7k800|m800|g7ot40|7rjw0|autg0|7x3w0|ayis0|7x3w0|b5xg0|7k580|b42s0|7lzw0|b42s0|7lzw0|b42s0|7x3w0|ahus0|7x3w0|b5xg0|7x3w0|a4w40|8jbw0|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-79.3333|-60|-120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Tiraspol\",\r\n untils: \"-r2p1bo|70f1to|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|geqo0|ha580|oc8g0|7k800|9q000|9d1c0|7cl00|j3pbw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|25p80|7kdk0|9d1c0|9d1c0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xf00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-115|-104.4|-120|-180|-60|-240\",\r\n offsetIndices: \"012323232323232323232424235353535353535353535323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Ulyanovsk\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-193.6|-180|-240|-300|-120\",\r\n offsetIndices: \"01232323232323232321214121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Uzhgorod\",\r\n untils: \"-fizzw0|1cm000|7k800|9q000|9d1c0|al900|cnms0|int140|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|e1sc0|iprk0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|-180|-240\",\r\n offsetIndices: \"010101023232323232323232320121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Vaduz\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vatican\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vienna\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|t6000|8a5c0|a7a800|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|iio0|ivmo0|91xc0|9b6o0|9d1c0|a2yo0|8n400|gfyyg0|8zzw0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vilnius\",\r\n untils: \"-rns980|1g224o|e75nc|4kqk0|acbs40|gpp40|pits0|7k800|9q000|9d1c0|65zo0|j4vx80|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x9g0|asw00|7x6o0|b5uo0|1s3eo0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-95.6|-60|-120|-180|-240\",\r\n offsetIndices: \"012324323234545454545454545443434343434343434332334343434343434343434343434343434343434343434343434343434343434343434343\"\r\n }, {\r\n id: \"Europe/Volgograd\",\r\n untils: \"-q3cw84|5glrw4|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|239c40|Infinity\",\r\n offsets: \"-177.6667|-180|-240|-300\",\r\n offsetIndices: \"012323232323232321212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Warsaw\",\r\n untils: \"-se9yk0|dvyc0|7ves0|a4yw0|7x6o0|asw00|7x6o0|aunw0|7x6o0|1evbs0|9fcwc0|18cao0|7k800|9q000|9d1c0|9gnw0|an980|9kd80|8fs40|922w0|ar1c0|7x6o0|a2yo0|8n400|9q000|902o0|4013w0|64dc0|9d1c0|9d1c0|clpc0|6hc00|9d1c0|9d1c0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|clpc0|64dc0|6j4tc0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-60|-120|-180\",\r\n offsetIndices: \"012121223212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Zagreb\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Zaporozhye\",\r\n untils: \"-nu12hc|37a0xc|5u1180|mc0g0|7k800|9q000|12qg0|jjc7s0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9cvs0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-140|-120|-180|-60|-240\",\r\n offsetIndices: \"01213132424242424242424242422121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Zurich\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GB-Eire\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GB\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GMT-0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT+0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Greenwich\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Hongkong\",\r\n untils: \"-y0i0s0|j44dk0|5k000|4d4y0|2195i0|7x3w0|bj320|6uao0|bvs00|7x6o0|9d1c0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|ast80|77c40|biqk0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-456.7|-480|-540|-510\",\r\n offsetIndices: \"0123212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"HST\",\r\n untils: \"Infinity\",\r\n offsets: \"600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Iceland\",\r\n untils: \"-wcwx9c|4rpd9c|ci2s0|69uk0|du840|4xp80|du840|p7bw0|4w040|9bdzw0|9d6w0|64g40|cyl80|64dc0|clpc0|6hc00|bvs00|6uao0|bvs00|6uao0|bvs00|6uao0|c8qo0|6hc00|c8qo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|Infinity\",\r\n offsets: \"88|60|0\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Indian/Antananarivo\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Chagos\",\r\n untils: \"-wvpc2s|1ag64us|Infinity\",\r\n offsets: \"-289.6667|-300|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Indian/Christmas\",\r\n untils: \"Infinity\",\r\n offsets: \"-420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Indian/Cocos\",\r\n untils: \"Infinity\",\r\n offsets: \"-390\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Indian/Comoro\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Kerguelen\",\r\n untils: \"-afrs00|Infinity\",\r\n offsets: \"0|-300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Mahe\",\r\n untils: \"-x6pjlo|Infinity\",\r\n offsets: \"-221.8|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Maldives\",\r\n untils: \"-57x6y0|Infinity\",\r\n offsets: \"-294|-300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Mauritius\",\r\n untils: \"-wvp9bc|13jnu7c|8bx80|dd0wc0|7x3w0|Infinity\",\r\n offsets: \"-230|-240|-300\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Indian/Mayotte\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Reunion\",\r\n untils: \"-uks29s|Infinity\",\r\n offsets: \"-221.8667|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Iran\",\r\n untils: \"-s6m6uw|fnolc0|gm3h4w|777y0|b07w0|3pes0|42c20|9cyk0|9gtg0|9kd80|5ja5g0|7avw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|1av440|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|Infinity\",\r\n offsets: \"-205.7333|-210|-240|-300|-270\",\r\n offsetIndices: \"00123214141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\"\r\n }, {\r\n id: \"Israel\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Jamaica\",\r\n untils: \"-u85og2|wbl182|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"Japan\",\r\n untils: \"-bb4900|6uao0|afxc0|8a5c0|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-540|-600\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Kwajalein\",\r\n untils: \"-h817w0|27sas0|1hjus0|ddxug0|cgv6k0|Infinity\",\r\n offsets: \"-660|-600|-540|720|-720\",\r\n offsetIndices: \"012034\"\r\n }, {\r\n id: \"Libya\",\r\n untils: \"-q3gfrw|gl6ajw|422c0|xado0|4bbo0|wrpg0|4s580|1kdpg0|c05bw0|4mqs0|9et80|9d440|9et80|9eys0|9et80|9mdg0|95jw0|9io40|9cyk0|99es0|9et80|9eys0|9et80|9d440|9et80|b2840|3cf3w0|9kis0|9et80|7vqyw0|75eo0|asw00|Infinity\",\r\n offsets: \"-52.7333|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212122122\"\r\n }, {\r\n id: \"MET\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Mexico/BajaNorte\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Mexico/BajaSur\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"425.6667|420|360|480\",\r\n offsetIndices: \"0121212131212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Mexico/General\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|3knek0|776k0|rf440|5t6k0|1evk40|71mk0|30p1g0|8n180|nufxo0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"396.6|420|360|300\",\r\n offsetIndices: \"012121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"MST\",\r\n untils: \"Infinity\",\r\n offsets: \"420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"MST7MDT\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Navajo\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"NZ-CHAT\",\r\n untils: \"-ciya10|f1tq90|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-735|-765|-825\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"NZ\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Apia\",\r\n untils: \"-usiiv4|kcrmt4|vp3la0|9odo0|902o0|4zbk0|4qog0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"686.9333|690|660|600|-840|-780\",\r\n offsetIndices: \"01232345454545454545454545454545454545454545454545454545454\"\r\n }, {\r\n id: \"Pacific/Auckland\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Bougainville\",\r\n untils: \"-ecsh40|1n05g0|1071c40|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"0102\"\r\n }, {\r\n id: \"Pacific/Chatham\",\r\n untils: \"-ciya10|f1tq90|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-735|-765|-825\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Pacific/Chuuk\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Pacific/Easter\",\r\n untils: \"-jhfaew|ivmeuw|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|iq2o0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"437.4667|420|360|300\",\r\n offsetIndices: \"012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Efate\",\r\n untils: \"-u964i4|11f4ba4|9cyk0|awo40|7tek0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|64ak0|e1ms0|4ofw0|Infinity\",\r\n offsets: \"-673.2667|-660|-720\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"Pacific/Enderbury\",\r\n untils: \"535io0|7yiqk0|Infinity\",\r\n offsets: \"720|660|-780\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Fakaofo\",\r\n untils: \"lx0jw0|Infinity\",\r\n offsets: \"660|-780\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Fiji\",\r\n untils: \"-sa2x4w|17bs00w|64dc0|cyo00|5reo0|53a5c0|64dc0|asw00|6uao0|bvs00|4oio0|e1k00|4oio0|eeio0|4bh80|erk40|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3lmo0|f4g00|3lmo0|fheo0|38o00|fheo0|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|f4g00|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|f4g00|3lmo0|Infinity\",\r\n offsets: \"-715.7333|-720|-780\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Pacific/Funafuti\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Galapagos\",\r\n untils: \"-kcr62o|spdryo|3lsas0|3jp80|Infinity\",\r\n offsets: \"358.4|300|360\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Pacific/Gambier\",\r\n untils: \"-tvndoc|Infinity\",\r\n offsets: \"539.8|540\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Guadalcanal\",\r\n untils: \"-tvowac|Infinity\",\r\n offsets: \"-639.8|-660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Guam\",\r\n untils: \"-en8eg0|1dl9g0|7s1k40|txp80|3frms0|qdrpo|7kgac|3ljw0|c8tg0|6u7w0|bvus0|6u7w0|16uo40|3ljw0|16aas0|4ivxo|cls2c|6h980|c65zw0|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"01020202020202020200\"\r\n }, {\r\n id: \"Pacific/Honolulu\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"Pacific/Johnston\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"Pacific/Kiritimati\",\r\n untils: \"535eyo|7yirhc|Infinity\",\r\n offsets: \"640|600|-840\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Kosrae\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|cm2540|f9l3w0|Infinity\",\r\n offsets: \"-660|-540|-600|-720\",\r\n offsetIndices: \"01021030\"\r\n }, {\r\n id: \"Pacific/Kwajalein\",\r\n untils: \"-h817w0|27sas0|1hjus0|ddxug0|cgv6k0|Infinity\",\r\n offsets: \"-660|-600|-540|720|-720\",\r\n offsetIndices: \"012034\"\r\n }, {\r\n id: \"Pacific/Majuro\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|1h6w40|deat40|Infinity\",\r\n offsets: \"-660|-540|-600|-720\",\r\n offsetIndices: \"0102103\"\r\n }, {\r\n id: \"Pacific/Marquesas\",\r\n untils: \"-tvncu0|Infinity\",\r\n offsets: \"558|570\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Midway\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Nauru\",\r\n untils: \"-pjxiws|ba66ys|1kwca0|hfzda0|Infinity\",\r\n offsets: \"-667.6667|-690|-540|-720\",\r\n offsetIndices: \"01213\"\r\n }, {\r\n id: \"Pacific/Niue\",\r\n untils: \"-9wyz6o|ehcj4o|Infinity\",\r\n offsets: \"680|690|660\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Norfolk\",\r\n untils: \"-9x0ps0|cfj8q0|6hc00|l6nk00|239aq0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-672|-690|-750|-660|-720\",\r\n offsetIndices: \"012134343434343434343434343434343434343434\"\r\n }, {\r\n id: \"Pacific/Noumea\",\r\n untils: \"-u9645o|ye0ixo|4dbw0|ecqs0|4f6k0|99p700|4oio0|Infinity\",\r\n offsets: \"-665.8|-660|-720\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"Pacific/Pago_Pago\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Palau\",\r\n untils: \"Infinity\",\r\n offsets: \"-540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Pitcairn\",\r\n untils: \"es2cy0|Infinity\",\r\n offsets: \"510|480\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Pohnpei\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|Infinity\",\r\n offsets: \"-660|-540|-600\",\r\n offsetIndices: \"010210\"\r\n }, {\r\n id: \"Pacific/Ponape\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|Infinity\",\r\n offsets: \"-660|-540|-600\",\r\n offsetIndices: \"010210\"\r\n }, {\r\n id: \"Pacific/Port_Moresby\",\r\n untils: \"Infinity\",\r\n offsets: \"-600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Rarotonga\",\r\n untils: \"4mj960|5rbw0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"012121212121212121212121212\"\r\n }, {\r\n id: \"Pacific/Saipan\",\r\n untils: \"-en8eg0|1dl9g0|7s1k40|txp80|3frms0|qdrpo|7kgac|3ljw0|c8tg0|6u7w0|bvus0|6u7w0|16uo40|3ljw0|16aas0|4ivxo|cls2c|6h980|c65zw0|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"01020202020202020200\"\r\n }, {\r\n id: \"Pacific/Samoa\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Tahiti\",\r\n untils: \"-tvnayw|Infinity\",\r\n offsets: \"598.2667|600\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Tarawa\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Tongatapu\",\r\n untils: \"-f4vrlc|uo2edc|8fpc0|bvs00|4bh80|eelg0|4bh80|7pmis0|3lmo0|Infinity\",\r\n offsets: \"-740|-780|-840\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"Pacific/Truk\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Pacific/Wake\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Wallis\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Yap\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Poland\",\r\n untils: \"-se9yk0|dvyc0|7ves0|a4yw0|7x6o0|asw00|7x6o0|aunw0|7x6o0|1evbs0|9fcwc0|18cao0|7k800|9q000|9d1c0|9gnw0|an980|9kd80|8fs40|922w0|ar1c0|7x6o0|a2yo0|8n400|9q000|902o0|4013w0|64dc0|9d1c0|9d1c0|clpc0|6hc00|9d1c0|9d1c0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|clpc0|64dc0|6j4tc0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-60|-120|-180\",\r\n offsetIndices: \"012121223212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Portugal\",\r\n untils: \"-u9rhc0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5gyl40|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"36.75|0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121212121212121212121212121212121212122323232212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"PRC\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"PST8PDT\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"ROC\",\r\n untils: \"-gtzfk0|45slc0|c51c0|75bw0|a31g0|aaak0|9d440|7v980|awo40|7v980|awo40|7v980|awo40|7v980|7tk40|clmk0|7rpg0|b07w0|7rpg0|b07w0|7rpg0|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|cjxg0|69uk0|ci2s0|69uk0|6its40|9et80|9d440|9et80|1yf9g0|4qak0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"ROK\",\r\n untils: \"-w8966g|1yh18g|hkx5a0|1faao0|5cik0|ae5g0|8a2k0|ae5g0|8bx80|c8tg0|6h980|1bj6s0|l3aq0|6j3w0|d2g40|6u7w0|b5xg0|776k0|biw40|776k0|biw40|776k0|biw40|776k0|grs40|dfqxi0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-507.8667|-510|-540|-600|-570\",\r\n offsetIndices: \"012232323232141414141414123232\"\r\n }, {\r\n id: \"Singapore\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Turkey\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"UCT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Universal\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"US/Alaska\",\r\n untils: \"-ek1qo0|1tyx80|2e400|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Aleutian\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Arizona\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|zjedo|4olg0|9et80|bs6lmc|9cyk0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101010\"\r\n }, {\r\n id: \"US/Central\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bvus0|776k0|7kas0|b5rw0|9d440|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|7x9g0|dbjw0|8a840|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/East-Indiana\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Eastern\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|7x9g0|b5rw0|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tzb40|2dq40|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Hawaii\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"US/Indiana-Starke\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Michigan\",\r\n untils: \"-xx8dyd|5eraud|dyeyk0|1tzb40|2dq40|1c9440|7x3w0|9rlbxo|71s2c|9d440|9cyk0|2cmdg0|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"332.1833|360|300|240\",\r\n offsetIndices: \"0123323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"US/Mountain\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Pacific-New\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Pacific\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Samoa\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"UTC\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"W-SU\",\r\n untils: \"-rx5dmh|ipzua|97hc0|7yyk0|5i840|d9p80|1jwk7|2cvk0|s8o00|1qvw0|8fpc0|1jms0|is040|412as0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-150.2833|-151.3167|-211.3167|-271.3167|-240|-180|-300|-120\",\r\n offsetIndices: \"012132345464575454545454545454545455754545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"WET\",\r\n untils: \"3s9ms0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Zulu\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_utils_time_zone.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dateUtilsTs\r\n} from \"../core/utils/date\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport DateAdapter from \"./m_date_adapter\";\r\nimport timeZoneDataUtils from \"./timezones/m_utils_timezones_data\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar MS_IN_MINUTE = 6e4;\r\nvar createUTCDateWithLocalOffset = date => {\r\n if (!date) {\r\n return null\r\n }\r\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()))\r\n};\r\nvar createDateFromUTCWithLocalOffset = date => {\r\n var result = DateAdapter(date);\r\n var timezoneOffsetBeforeInMin = result.getTimezoneOffset();\r\n result.addTime(result.getTimezoneOffset(\"minute\"));\r\n result.subtractMinutes(timezoneOffsetBeforeInMin - result.getTimezoneOffset());\r\n return result.source\r\n};\r\nvar getTimeZones = function() {\r\n var date = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n var dateInUTC = createUTCDate(date);\r\n return timeZoneDataUtils.getDisplayedTimeZones(dateInUTC.getTime())\r\n};\r\nvar createUTCDate = date => new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes()));\r\nvar getTimezoneOffsetChangeInMinutes = (startDate, endDate, updatedStartDate, updatedEndDate) => getDaylightOffset(updatedStartDate, updatedEndDate) - getDaylightOffset(startDate, endDate);\r\nvar getTimezoneOffsetChangeInMs = (startDate, endDate, updatedStartDate, updatedEndDate) => getTimezoneOffsetChangeInMinutes(startDate, endDate, updatedStartDate, updatedEndDate) * toMs(\"minute\");\r\nvar getDaylightOffset = (startDate, endDate) => new Date(startDate).getTimezoneOffset() - new Date(endDate).getTimezoneOffset();\r\nvar getDaylightOffsetInMs = (startDate, endDate) => getDaylightOffset(startDate, endDate) * toMs(\"minute\");\r\nvar calculateTimezoneByValue = function(timezone) {\r\n var date = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n if (\"string\" === typeof timezone) {\r\n var dateUtc = createUTCDate(date);\r\n return timeZoneDataUtils.getTimeZoneOffsetById(timezone, dateUtc.getTime())\r\n }\r\n return timezone\r\n};\r\nvar _getDaylightOffsetByTimezone = (startDate, endDate, timeZone) => calculateTimezoneByValue(timeZone, startDate) - calculateTimezoneByValue(timeZone, endDate);\r\nvar getCorrectedDateByDaylightOffsets = (convertedOriginalStartDate, convertedDate, date, timeZone, startDateTimezone) => {\r\n var daylightOffsetByCommonTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, timeZone);\r\n var daylightOffsetByAppointmentTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, startDateTimezone);\r\n var diff = daylightOffsetByCommonTimezone - daylightOffsetByAppointmentTimezone;\r\n return new Date(date.getTime() - diff * toMs(\"hour\"))\r\n};\r\nvar correctRecurrenceExceptionByTimezone = function(exception, exceptionByStartDate, timeZone, startDateTimeZone) {\r\n var isBackConversion = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var timezoneOffset = (exception.getTimezoneOffset() - exceptionByStartDate.getTimezoneOffset()) / MINUTES_IN_HOUR;\r\n if (startDateTimeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, startDateTimeZone)\r\n } else if (timeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, timeZone)\r\n }\r\n return new Date(exception.getTime() + (isBackConversion ? -1 : 1) * timezoneOffset * toMs(\"hour\"))\r\n};\r\nvar isTimezoneChangeInDate = date => {\r\n var startDayDate = new Date(new Date(date).setHours(0, 0, 0, 0));\r\n var endDayDate = new Date(new Date(date).setHours(23, 59, 59, 0));\r\n return startDayDate.getTimezoneOffset() - endDayDate.getTimezoneOffset() !== 0\r\n};\r\nvar getDateWithoutTimezoneChange = date => {\r\n var clonedDate = new Date(date);\r\n if (isTimezoneChangeInDate(clonedDate)) {\r\n var result = new Date(clonedDate);\r\n return new Date(result.setDate(result.getDate() + 1))\r\n }\r\n return clonedDate\r\n};\r\nvar isSameAppointmentDates = (startDate, endDate) => {\r\n endDate = new Date(endDate.getTime() - 1);\r\n return dateUtils.sameDate(startDate, endDate)\r\n};\r\nvar getClientTimezoneOffset = function() {\r\n var date = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n return date.getTimezoneOffset() * MS_IN_MINUTE\r\n};\r\nvar getDiffBetweenClientTimezoneOffsets = function() {\r\n var firstDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n var secondDate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n return getClientTimezoneOffset(firstDate) - getClientTimezoneOffset(secondDate)\r\n};\r\nvar isEqualLocalTimeZone = function(timeZoneName) {\r\n var date = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n if (Intl) {\r\n var localTimeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n if (localTimeZoneName === timeZoneName) {\r\n return true\r\n }\r\n }\r\n return isEqualLocalTimeZoneByDeclaration(timeZoneName, date)\r\n};\r\nvar hasDSTInLocalTimeZone = () => {\r\n var [startDate, endDate] = getExtremeDates();\r\n return startDate.getTimezoneOffset() !== endDate.getTimezoneOffset()\r\n};\r\nvar isEqualLocalTimeZoneByDeclaration = (timeZoneName, date) => {\r\n var year = date.getFullYear();\r\n var getOffset = date => -date.getTimezoneOffset() / 60;\r\n var getDateAndMoveHourBack = dateStamp => new Date(dateStamp - 36e5);\r\n var configTuple = timeZoneDataUtils.getTimeZoneDeclarationTuple(timeZoneName, year);\r\n var [summerTime, winterTime] = configTuple;\r\n var noDSTInTargetTimeZone = configTuple.length < 2;\r\n if (noDSTInTargetTimeZone) {\r\n var targetTimeZoneOffset = timeZoneDataUtils.getTimeZoneOffsetById(timeZoneName, date);\r\n var localTimeZoneOffset = getOffset(date);\r\n if (targetTimeZoneOffset !== localTimeZoneOffset) {\r\n return false\r\n }\r\n return !hasDSTInLocalTimeZone()\r\n }\r\n var localSummerOffset = getOffset(new Date(summerTime.date));\r\n var localWinterOffset = getOffset(new Date(winterTime.date));\r\n if (localSummerOffset !== summerTime.offset) {\r\n return false\r\n }\r\n if (localSummerOffset === getOffset(getDateAndMoveHourBack(summerTime.date))) {\r\n return false\r\n }\r\n if (localWinterOffset !== winterTime.offset) {\r\n return false\r\n }\r\n if (localWinterOffset === getOffset(getDateAndMoveHourBack(winterTime.date))) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar getExtremeDates = () => {\r\n var nowDate = new Date(Date.now());\r\n var startDate = new Date;\r\n var endDate = new Date;\r\n startDate.setFullYear(nowDate.getFullYear(), 0, 1);\r\n endDate.setFullYear(nowDate.getFullYear(), 6, 1);\r\n return [startDate, endDate]\r\n};\r\nvar setOffsetsToDate = (targetDate, offsetsArray) => {\r\n var newDateMs = offsetsArray.reduce((result, offset) => result + offset, targetDate.getTime());\r\n return new Date(newDateMs)\r\n};\r\nvar addOffsetsWithoutDST = function(date) {\r\n for (var _len = arguments.length, offsets = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n offsets[_key - 1] = arguments[_key]\r\n }\r\n var newDate = dateUtilsTs.addOffsets(date, offsets);\r\n var daylightShift = getDaylightOffsetInMs(date, newDate);\r\n if (!daylightShift) {\r\n return newDate\r\n }\r\n var correctLocalDate = dateUtilsTs.addOffsets(newDate, [-daylightShift]);\r\n var daylightSecondShift = getDaylightOffsetInMs(newDate, correctLocalDate);\r\n return !daylightSecondShift ? correctLocalDate : newDate\r\n};\r\nvar utils = {\r\n getDaylightOffset: getDaylightOffset,\r\n getDaylightOffsetInMs: getDaylightOffsetInMs,\r\n getTimezoneOffsetChangeInMinutes: getTimezoneOffsetChangeInMinutes,\r\n getTimezoneOffsetChangeInMs: getTimezoneOffsetChangeInMs,\r\n calculateTimezoneByValue: calculateTimezoneByValue,\r\n getCorrectedDateByDaylightOffsets: getCorrectedDateByDaylightOffsets,\r\n isSameAppointmentDates: isSameAppointmentDates,\r\n correctRecurrenceExceptionByTimezone: correctRecurrenceExceptionByTimezone,\r\n getClientTimezoneOffset: getClientTimezoneOffset,\r\n getDiffBetweenClientTimezoneOffsets: getDiffBetweenClientTimezoneOffsets,\r\n createUTCDateWithLocalOffset: createUTCDateWithLocalOffset,\r\n createDateFromUTCWithLocalOffset: createDateFromUTCWithLocalOffset,\r\n createUTCDate: createUTCDate,\r\n isTimezoneChangeInDate: isTimezoneChangeInDate,\r\n getDateWithoutTimezoneChange: getDateWithoutTimezoneChange,\r\n hasDSTInLocalTimeZone: hasDSTInLocalTimeZone,\r\n isEqualLocalTimeZone: isEqualLocalTimeZone,\r\n isEqualLocalTimeZoneByDeclaration: isEqualLocalTimeZoneByDeclaration,\r\n getTimeZones: getTimeZones,\r\n setOffsetsToDate: setOffsetsToDate,\r\n addOffsetsWithoutDST: addOffsetsWithoutDST\r\n};\r\nexport default utils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_recurrence.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n RRule,\r\n RRuleSet\r\n} from \"rrule\";\r\nimport timeZoneUtils from \"./m_utils_time_zone\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar ruleNames = [\"freq\", \"interval\", \"byday\", \"byweekno\", \"byyearday\", \"bymonth\", \"bymonthday\", \"count\", \"until\", \"byhour\", \"byminute\", \"bysecond\", \"bysetpos\", \"wkst\"];\r\nvar freqNames = [\"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\", \"SECONDLY\", \"MINUTELY\", \"HOURLY\"];\r\nvar days = {\r\n SU: 0,\r\n MO: 1,\r\n TU: 2,\r\n WE: 3,\r\n TH: 4,\r\n FR: 5,\r\n SA: 6\r\n};\r\nvar loggedWarnings = [];\r\nvar MS_IN_HOUR = 36e5;\r\nvar MS_IN_DAY = 24 * MS_IN_HOUR;\r\nvar RRULE_BROKEN_TIMEZONES = [\"Etc/GMT-13\", \"MIT\", \"Pacific/Apia\", \"Pacific/Enderbury\", \"Pacific/Tongatapu\", \"Etc/GMT-14\", \"Pacific/Kiritimati\"];\r\nvar recurrence = null;\r\nexport function getRecurrenceProcessor() {\r\n if (!recurrence) {\r\n recurrence = new RecurrenceProcessor\r\n }\r\n return recurrence\r\n}\r\nclass RecurrenceProcessor {\r\n constructor() {\r\n this.rRule = null;\r\n this.rRuleSet = null;\r\n this.validator = new RecurrenceValidator\r\n }\r\n generateDates(options) {\r\n var recurrenceRule = this.evalRecurrenceRule(options.rule);\r\n var {\r\n rule: rule\r\n } = recurrenceRule;\r\n if (!recurrenceRule.isValid || !rule.freq) {\r\n return []\r\n }\r\n var rruleIntervalParams = this._createRruleIntervalParams(options);\r\n this._initializeRRule(options, rruleIntervalParams.startIntervalDate, rule.until);\r\n return this.rRuleSet.between(rruleIntervalParams.minViewDate, rruleIntervalParams.maxViewDate, true).filter(date => date.getTime() + rruleIntervalParams.appointmentDuration >= rruleIntervalParams.minViewTime).map(date => this._convertRruleResult(rruleIntervalParams, options, date))\r\n }\r\n _createRruleIntervalParams(options) {\r\n var {\r\n start: start,\r\n min: min,\r\n max: max,\r\n appointmentTimezoneOffset: appointmentTimezoneOffset\r\n } = options;\r\n var clientOffsets_startDate = timeZoneUtils.getClientTimezoneOffset(start),\r\n clientOffsets_minViewDate = timeZoneUtils.getClientTimezoneOffset(min),\r\n clientOffsets_maxViewDate = timeZoneUtils.getClientTimezoneOffset(max);\r\n var duration = options.end ? options.end.getTime() - options.start.getTime() : 0;\r\n var startIntervalDate = timeZoneUtils.setOffsetsToDate(options.start, [-clientOffsets_startDate, appointmentTimezoneOffset]);\r\n var minViewTime = options.min.getTime() - clientOffsets_minViewDate + appointmentTimezoneOffset;\r\n var minViewDate = new Date(minViewTime - duration);\r\n var maxViewDate = timeZoneUtils.setOffsetsToDate(options.max, [-clientOffsets_maxViewDate, appointmentTimezoneOffset]);\r\n var startDateDSTDifferenceMs = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(options.start, startIntervalDate);\r\n var switchToSummerTime = startDateDSTDifferenceMs < 0;\r\n return {\r\n startIntervalDate: startIntervalDate,\r\n minViewTime: minViewTime,\r\n minViewDate: minViewDate,\r\n maxViewDate: maxViewDate,\r\n startIntervalDateDSTShift: switchToSummerTime ? 0 : startDateDSTDifferenceMs,\r\n appointmentDuration: duration\r\n }\r\n }\r\n _convertRruleResult(rruleIntervalParams, options, rruleDate) {\r\n var convertedBackDate = timeZoneUtils.setOffsetsToDate(rruleDate, [...this._getLocalMachineOffset(rruleDate), -options.appointmentTimezoneOffset, rruleIntervalParams.startIntervalDateDSTShift]);\r\n var convertedDateDSTShift = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(convertedBackDate, rruleDate);\r\n var switchToSummerTime = convertedDateDSTShift < 0;\r\n var resultDate = timeZoneUtils.setOffsetsToDate(convertedBackDate, [convertedDateDSTShift]);\r\n var resultDateDSTShift = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(resultDate, convertedBackDate);\r\n if (resultDateDSTShift && switchToSummerTime) {\r\n return new Date(resultDate.getTime() + resultDateDSTShift)\r\n }\r\n return resultDate\r\n }\r\n _getLocalMachineOffset(rruleDate) {\r\n var machineTimezoneOffset = timeZoneUtils.getClientTimezoneOffset(rruleDate);\r\n var machineTimezoneName = dateUtils.getMachineTimezoneName();\r\n var result = [machineTimezoneOffset];\r\n var isTimezoneOffsetInBrokenRange = machineTimezoneOffset / MS_IN_HOUR <= -13;\r\n var isTimezoneNameInBrokenNames = !machineTimezoneName || RRULE_BROKEN_TIMEZONES.some(timezone => machineTimezoneName.includes(timezone));\r\n if (isTimezoneOffsetInBrokenRange && isTimezoneNameInBrokenNames) {\r\n result.push(-MS_IN_DAY)\r\n }\r\n return result\r\n }\r\n hasRecurrence(options) {\r\n return !!this.generateDates(options).length\r\n }\r\n evalRecurrenceRule(rule) {\r\n var result = {\r\n rule: {},\r\n isValid: false\r\n };\r\n if (rule) {\r\n result.rule = this._parseRecurrenceRule(rule);\r\n result.isValid = this.validator.validateRRule(result.rule, rule)\r\n }\r\n return result\r\n }\r\n isValidRecurrenceRule(rule) {\r\n return this.evalRecurrenceRule(rule).isValid\r\n }\r\n daysFromByDayRule(rule) {\r\n var result = [];\r\n if (rule.byday) {\r\n if (Array.isArray(rule.byday)) {\r\n result = rule.byday\r\n } else {\r\n result = rule.byday.split(\",\")\r\n }\r\n }\r\n return result.map(item => {\r\n var match = item.match(/[A-Za-z]+/);\r\n return !!match && match[0]\r\n }).filter(item => !!item)\r\n }\r\n getAsciiStringByDate(date) {\r\n var currentOffset = date.getTimezoneOffset() * toMs(\"minute\");\r\n var offsetDate = new Date(date.getTime() + currentOffset);\r\n return \"\".concat(offsetDate.getFullYear() + \"0\".concat(offsetDate.getMonth() + 1).slice(-2) + \"0\".concat(offsetDate.getDate()).slice(-2), \"T\").concat(\"0\".concat(offsetDate.getHours()).slice(-2)).concat(\"0\".concat(offsetDate.getMinutes()).slice(-2)).concat(\"0\".concat(offsetDate.getSeconds()).slice(-2), \"Z\")\r\n }\r\n getRecurrenceString(object) {\r\n if (!object || !object.freq) {\r\n return\r\n }\r\n var result = \"\";\r\n for (var field in object) {\r\n var value = object[field];\r\n if (\"interval\" === field && value < 2) {\r\n continue\r\n }\r\n if (\"until\" === field) {\r\n value = this.getAsciiStringByDate(value)\r\n }\r\n result += \"\".concat(field, \"=\").concat(value, \";\")\r\n }\r\n result = result.substring(0, result.length - 1);\r\n return result.toUpperCase()\r\n }\r\n _parseExceptionToRawArray(value) {\r\n return value.match(/(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2}))?(Z)?/)\r\n }\r\n getDateByAsciiString(exceptionText) {\r\n if (\"string\" !== typeof exceptionText) {\r\n return exceptionText\r\n }\r\n var result = this._parseExceptionToRawArray(exceptionText);\r\n if (!result) {\r\n return null\r\n }\r\n var [year, month, date, hours, minutes, seconds, isUtc] = this._createDateTuple(result);\r\n if (isUtc) {\r\n return new Date(Date.UTC(year, month, date, hours, minutes, seconds))\r\n }\r\n return new Date(year, month, date, hours, minutes, seconds)\r\n }\r\n _dispose() {\r\n if (this.rRuleSet) {\r\n delete this.rRuleSet;\r\n this.rRuleSet = null\r\n }\r\n if (this.rRule) {\r\n delete this.rRule;\r\n this.rRule = null\r\n }\r\n }\r\n _getTimeZoneOffset() {\r\n return (new Date).getTimezoneOffset()\r\n }\r\n _initializeRRule(options, startDateUtc, until) {\r\n var ruleOptions = RRule.parseString(options.rule);\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = options;\r\n ruleOptions.dtstart = startDateUtc;\r\n if (!ruleOptions.wkst && firstDayOfWeek) {\r\n ruleOptions.wkst = [6, 0, 1, 2, 3, 4, 5][firstDayOfWeek]\r\n }\r\n if (until) {\r\n ruleOptions.until = timeZoneUtils.setOffsetsToDate(until, [-timeZoneUtils.getClientTimezoneOffset(until), options.appointmentTimezoneOffset])\r\n }\r\n this._createRRule(ruleOptions);\r\n if (options.exception) {\r\n var exceptionStrings = options.exception;\r\n var exceptionDates = exceptionStrings.split(\",\").map(rule => this.getDateByAsciiString(rule));\r\n exceptionDates.forEach(date => {\r\n if (options.getPostProcessedException) {\r\n date = options.getPostProcessedException(date)\r\n }\r\n var utcDate = timeZoneUtils.setOffsetsToDate(date, [-timeZoneUtils.getClientTimezoneOffset(date), options.appointmentTimezoneOffset]);\r\n this.rRuleSet.exdate(utcDate)\r\n })\r\n }\r\n }\r\n _createRRule(ruleOptions) {\r\n this._dispose();\r\n this.rRuleSet = new RRuleSet;\r\n this.rRule = new RRule(ruleOptions);\r\n this.rRuleSet.rrule(this.rRule)\r\n }\r\n _parseRecurrenceRule(recurrence) {\r\n var ruleObject = {};\r\n var ruleParts = recurrence.split(\";\");\r\n for (var i = 0, len = ruleParts.length; i < len; i++) {\r\n var rule = ruleParts[i].split(\"=\");\r\n var ruleName = rule[0].toLowerCase();\r\n var ruleValue = rule[1];\r\n ruleObject[ruleName] = ruleValue\r\n }\r\n var count = parseInt(ruleObject.count);\r\n if (!isNaN(count)) {\r\n ruleObject.count = count\r\n }\r\n if (ruleObject.interval) {\r\n var interval = parseInt(ruleObject.interval);\r\n if (!isNaN(interval)) {\r\n ruleObject.interval = interval\r\n }\r\n } else {\r\n ruleObject.interval = 1\r\n }\r\n if (ruleObject.freq && ruleObject.until) {\r\n ruleObject.until = this.getDateByAsciiString(ruleObject.until)\r\n }\r\n return ruleObject\r\n }\r\n _createDateTuple(parseResult) {\r\n var isUtc = void 0 !== parseResult[8];\r\n parseResult.shift();\r\n if (void 0 === parseResult[3]) {\r\n parseResult.splice(3)\r\n } else {\r\n parseResult.splice(3, 1);\r\n parseResult.splice(6)\r\n }\r\n parseResult[1]--;\r\n parseResult.unshift(null);\r\n return [parseInt(parseResult[1]), parseInt(parseResult[2]), parseInt(parseResult[3]), parseInt(parseResult[4]) || 0, parseInt(parseResult[5]) || 0, parseInt(parseResult[6]) || 0, isUtc]\r\n }\r\n}\r\nclass RecurrenceValidator {\r\n validateRRule(rule, recurrence) {\r\n if (this._brokenRuleNameExists(rule) || !freqNames.includes(rule.freq) || this._wrongCountRule(rule) || this._wrongIntervalRule(rule) || this._wrongDayOfWeek(rule) || this._wrongByMonthDayRule(rule) || this._wrongByMonth(rule) || this._wrongUntilRule(rule)) {\r\n this._logBrokenRule(recurrence);\r\n return false\r\n }\r\n return true\r\n }\r\n _wrongUntilRule(rule) {\r\n var wrongUntil = false;\r\n var {\r\n until: until\r\n } = rule;\r\n if (void 0 !== until && !(until instanceof Date)) {\r\n wrongUntil = true\r\n }\r\n return wrongUntil\r\n }\r\n _wrongCountRule(rule) {\r\n var wrongCount = false;\r\n var {\r\n count: count\r\n } = rule;\r\n if (count && \"string\" === typeof count) {\r\n wrongCount = true\r\n }\r\n return wrongCount\r\n }\r\n _wrongByMonthDayRule(rule) {\r\n var wrongByMonthDay = false;\r\n var byMonthDay = rule.bymonthday;\r\n if (byMonthDay && isNaN(parseInt(byMonthDay))) {\r\n wrongByMonthDay = true\r\n }\r\n return wrongByMonthDay\r\n }\r\n _wrongByMonth(rule) {\r\n var wrongByMonth = false;\r\n var byMonth = rule.bymonth;\r\n if (byMonth && isNaN(parseInt(byMonth))) {\r\n wrongByMonth = true\r\n }\r\n return wrongByMonth\r\n }\r\n _wrongIntervalRule(rule) {\r\n var wrongInterval = false;\r\n var {\r\n interval: interval\r\n } = rule;\r\n if (interval && \"string\" === typeof interval) {\r\n wrongInterval = true\r\n }\r\n return wrongInterval\r\n }\r\n _wrongDayOfWeek(rule) {\r\n var byDay = rule.byday;\r\n var daysByRule = getRecurrenceProcessor().daysFromByDayRule(rule);\r\n var brokenDaysExist = false;\r\n if (\"\" === byDay) {\r\n brokenDaysExist = true\r\n }\r\n each(daysByRule, (_, day) => {\r\n if (!Object.prototype.hasOwnProperty.call(days, day)) {\r\n brokenDaysExist = true;\r\n return false\r\n }\r\n return\r\n });\r\n return brokenDaysExist\r\n }\r\n _brokenRuleNameExists(rule) {\r\n var brokenRuleExists = false;\r\n each(rule, ruleName => {\r\n if (!ruleNames.includes(ruleName)) {\r\n brokenRuleExists = true;\r\n return false\r\n }\r\n return\r\n });\r\n return brokenRuleExists\r\n }\r\n _logBrokenRule(recurrence) {\r\n if (!loggedWarnings.includes(recurrence)) {\r\n errors.log(\"W0006\", recurrence);\r\n loggedWarnings.push(recurrence)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_recurrence_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../ui/radio_group\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n PathTimeZoneConversion\r\n} from \"../../renovation/ui/scheduler/timeZoneCalculator/types\";\r\nimport ButtonGroup from \"../../ui/button_group\";\r\nimport DateBox from \"../../ui/date_box\";\r\nimport Editor from \"../../ui/editor/editor\";\r\nimport Form from \"../../ui/form\";\r\nimport NumberBox from \"../../ui/number_box\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../ui/themes\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nvar RECURRENCE_EDITOR = \"dx-recurrence-editor\";\r\nvar LABEL_POSTFIX = \"-label\";\r\nvar WRAPPER_POSTFIX = \"-wrapper\";\r\nvar RECURRENCE_EDITOR_CONTAINER = \"dx-recurrence-editor-container\";\r\nvar REPEAT_END_EDITOR = \"dx-recurrence-repeat-end\";\r\nvar REPEAT_END_TYPE_EDITOR = \"dx-recurrence-radiogroup-repeat-type\";\r\nvar REPEAT_COUNT_EDITOR = \"dx-recurrence-numberbox-repeat-count\";\r\nvar REPEAT_UNTIL_DATE_EDITOR = \"dx-recurrence-datebox-until-date\";\r\nvar RECURRENCE_BUTTON_GROUP = \"dx-recurrence-button-group\";\r\nvar FREQUENCY_EDITOR = \"dx-recurrence-selectbox-freq\";\r\nvar INTERVAL_EDITOR = \"dx-recurrence-numberbox-interval\";\r\nvar REPEAT_ON_EDITOR = \"dx-recurrence-repeat-on\";\r\nvar DAY_OF_MONTH = \"dx-recurrence-numberbox-day-of-month\";\r\nvar MONTH_OF_YEAR = \"dx-recurrence-selectbox-month-of-year\";\r\nvar recurrentEditorNumberBoxWidth = 70;\r\nvar recurrentEditorSelectBoxWidth = 120;\r\nvar defaultRecurrenceTypeIndex = 1;\r\nvar frequenciesMessages = [{\r\n recurrence: \"dxScheduler-recurrenceHourly\",\r\n value: \"hourly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceDaily\",\r\n value: \"daily\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceWeekly\",\r\n value: \"weekly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceMonthly\",\r\n value: \"monthly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceYearly\",\r\n value: \"yearly\"\r\n}];\r\nvar frequencies = frequenciesMessages.map(item => ({\r\n text: () => messageLocalization.format(item.recurrence),\r\n value: item.value\r\n}));\r\nvar repeatEndTypes = [{\r\n type: \"never\"\r\n}, {\r\n type: \"until\"\r\n}, {\r\n type: \"count\"\r\n}];\r\nvar days = [\"SU\", \"MO\", \"TU\", \"WE\", \"TH\", \"FR\", \"SA\"];\r\nvar getStylingModeFunc = () => isFluent(current()) ? \"filled\" : void 0;\r\nclass RecurrenceRule {\r\n constructor(rule) {\r\n this._recurrenceProcessor = getRecurrenceProcessor();\r\n this._recurrenceProcessor = getRecurrenceProcessor();\r\n this._recurrenceRule = this._recurrenceProcessor.evalRecurrenceRule(rule).rule\r\n }\r\n makeRules(string) {\r\n this._recurrenceRule = this._recurrenceProcessor.evalRecurrenceRule(string).rule\r\n }\r\n makeRule(field, value) {\r\n if (!value || Array.isArray(value) && !value.length) {\r\n delete this._recurrenceRule[field];\r\n return\r\n }\r\n if (isDefined(field)) {\r\n if (\"until\" === field) {\r\n delete this._recurrenceRule.count\r\n }\r\n if (\"count\" === field) {\r\n delete this._recurrenceRule.until\r\n }\r\n this._recurrenceRule[field] = value\r\n }\r\n }\r\n getRepeatEndRule() {\r\n var rules = this._recurrenceRule;\r\n if (\"count\" in rules) {\r\n return \"count\"\r\n }\r\n if (\"until\" in rules) {\r\n return \"until\"\r\n }\r\n return \"never\"\r\n }\r\n getRecurrenceString() {\r\n return this._recurrenceProcessor.getRecurrenceString(this._recurrenceRule)\r\n }\r\n getRules() {\r\n return this._recurrenceRule\r\n }\r\n getDaysFromByDayRule() {\r\n return this._recurrenceProcessor.daysFromByDayRule(this._recurrenceRule)\r\n }\r\n}\r\nclass RecurrenceEditor extends Editor {\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, {\r\n value: null,\r\n startDate: new Date,\r\n firstDayOfWeek: void 0\r\n })\r\n }\r\n _getFirstDayOfWeek() {\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n return isDefined(firstDayOfWeek) ? firstDayOfWeek : dateLocalization.firstDayOfWeekIndex()\r\n }\r\n _createComponent(element, name) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return super._createComponent(element, name, config)\r\n }\r\n _init() {\r\n super._init();\r\n this._recurrenceRule = new RecurrenceRule(this.option(\"value\"))\r\n }\r\n _render() {\r\n super._render();\r\n this.$element().addClass(RECURRENCE_EDITOR);\r\n this._$container = $(\"<div>\").addClass(RECURRENCE_EDITOR_CONTAINER).appendTo(this.$element());\r\n this._prepareEditors();\r\n this._renderEditors(this._$container)\r\n }\r\n getEditorByField(fieldName) {\r\n var editor = this.getRecurrenceForm().getEditor(fieldName);\r\n if (!isDefined(editor)) {\r\n switch (fieldName) {\r\n case \"byday\":\r\n editor = this._weekEditor;\r\n break;\r\n case \"count\":\r\n editor = this._repeatCountEditor;\r\n break;\r\n case \"until\":\r\n editor = this._repeatUntilDate\r\n }\r\n }\r\n return editor\r\n }\r\n _prepareEditors() {\r\n var freq = (this._recurrenceRule.getRules().freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase();\r\n this._editors = [this._createFreqEditor(freq), this._createIntervalEditor(freq), this._createRepeatOnLabel(freq), {\r\n itemType: \"group\",\r\n cssClass: REPEAT_ON_EDITOR,\r\n colCount: 2,\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n items: this._createRepeatOnEditor(freq)\r\n }, {\r\n itemType: \"group\",\r\n items: this._createRepeatEndEditor()\r\n }];\r\n return this._editors\r\n }\r\n _createFreqEditor(freq) {\r\n return {\r\n dataField: \"freq\",\r\n name: \"FREQ\",\r\n editorType: \"dxSelectBox\",\r\n cssClass: FREQUENCY_EDITOR,\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n items: frequencies,\r\n value: freq,\r\n field: \"freq\",\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n layout: \"horizontal\",\r\n elementAttr: {\r\n class: FREQUENCY_EDITOR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelRecurrence\")\r\n }\r\n }\r\n }\r\n _createIntervalEditor(freq) {\r\n var interval = this._recurrenceRule.getRules().interval || 1;\r\n return {\r\n itemType: \"group\",\r\n colCount: 2,\r\n cssClass: \"\".concat(INTERVAL_EDITOR).concat(WRAPPER_POSTFIX),\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n items: [{\r\n dataField: \"interval\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n min: 1,\r\n field: \"interval\",\r\n value: interval,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n elementAttr: {\r\n class: INTERVAL_EDITOR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-recurrenceRepeatEvery\")\r\n }\r\n }, {\r\n name: \"intervalLabel\",\r\n cssClass: \"\".concat(INTERVAL_EDITOR).concat(LABEL_POSTFIX),\r\n template: () => messageLocalization.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase()))\r\n }]\r\n }\r\n }\r\n _createRepeatOnLabel(freq) {\r\n return {\r\n itemType: \"group\",\r\n cssClass: \"\".concat(REPEAT_ON_EDITOR).concat(LABEL_POSTFIX),\r\n items: [{\r\n name: \"repeatOnLabel\",\r\n colSpan: 2,\r\n template: () => messageLocalization.format(\"dxScheduler-recurrenceRepeatOn\"),\r\n visible: freq && \"daily\" !== freq && \"hourly\" !== freq\r\n }]\r\n }\r\n }\r\n _createRepeatOnEditor(freq) {\r\n return [this._createByDayEditor(freq), this._createByMonthEditor(freq), this._createByMonthDayEditor(freq)]\r\n }\r\n _createByDayEditor(freq) {\r\n return {\r\n dataField: \"byday\",\r\n colSpan: 2,\r\n template: (_, itemElement) => {\r\n var firstDayOfWeek = this._getFirstDayOfWeek();\r\n var byDay = this._daysOfWeekByRules();\r\n var localDaysNames = dateLocalization.getDayNames(\"abbreviated\");\r\n var dayNames = days.slice(firstDayOfWeek).concat(days.slice(0, firstDayOfWeek));\r\n var itemsButtonGroup = localDaysNames.slice(firstDayOfWeek).concat(localDaysNames.slice(0, firstDayOfWeek)).map((item, index) => ({\r\n text: item,\r\n key: dayNames[index]\r\n }));\r\n this._$repeatOnWeek = $(\"<div>\").addClass(RECURRENCE_BUTTON_GROUP).appendTo(itemElement);\r\n this._weekEditor = this._createComponent(this._$repeatOnWeek, ButtonGroup, {\r\n items: itemsButtonGroup,\r\n field: \"byday\",\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: byDay,\r\n keyExpr: \"key\",\r\n onSelectionChanged: e => {\r\n var selectedItemKeys = e.component.option(\"selectedItemKeys\");\r\n var selectedKeys = (null === selectedItemKeys || void 0 === selectedItemKeys ? void 0 : selectedItemKeys.length) ? selectedItemKeys : this._getDefaultByDayValue();\r\n this._recurrenceRule.makeRule(\"byday\", selectedKeys);\r\n this._changeEditorValue()\r\n }\r\n })\r\n },\r\n visible: \"weekly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createByMonthEditor(freq) {\r\n var monthsName = dateLocalization.getMonthNames(\"wide\");\r\n var months = [...Array(12)].map((_, i) => ({\r\n value: \"\".concat(i + 1),\r\n text: monthsName[i]\r\n }));\r\n return {\r\n dataField: \"bymonth\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"bymonth\",\r\n items: months,\r\n value: this._monthOfYearByRules(),\r\n width: recurrentEditorSelectBoxWidth,\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n elementAttr: {\r\n class: MONTH_OF_YEAR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n visible: \"yearly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createByMonthDayEditor(freq) {\r\n return {\r\n dataField: \"bymonthday\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n min: 1,\r\n max: 31,\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n field: \"bymonthday\",\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: this._dayOfMonthByRules(),\r\n elementAttr: {\r\n class: DAY_OF_MONTH\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n visible: \"monthly\" === freq || \"yearly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createRepeatEndEditor() {\r\n var repeatType = this._recurrenceRule.getRepeatEndRule();\r\n return [{\r\n dataField: \"repeatEnd\",\r\n editorType: \"dxRadioGroup\",\r\n editorOptions: {\r\n items: repeatEndTypes,\r\n value: repeatType,\r\n valueExpr: \"type\",\r\n field: \"repeatEnd\",\r\n itemTemplate: itemData => {\r\n if (\"count\" === itemData.type) {\r\n return this._renderRepeatCountEditor()\r\n }\r\n if (\"until\" === itemData.type) {\r\n return this._renderRepeatUntilEditor()\r\n }\r\n return this._renderDefaultRepeatEnd()\r\n },\r\n layout: \"vertical\",\r\n elementAttr: {\r\n class: REPEAT_END_TYPE_EDITOR\r\n },\r\n onValueChanged: args => this._repeatEndValueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-recurrenceEnd\")\r\n }\r\n }]\r\n }\r\n _renderEditors($container) {\r\n this._recurrenceForm = this._createComponent($container, Form, {\r\n items: this._editors,\r\n showValidationSummary: false,\r\n scrollingEnabled: true,\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\"\r\n });\r\n this._disableRepeatEndParts()\r\n }\r\n _setAriaDescribedBy(editor, $label) {\r\n var labelId = \"label-\".concat(new Guid);\r\n editor.setAria(\"describedby\", labelId);\r\n editor.setAria(\"id\", labelId, $label)\r\n }\r\n getRecurrenceForm() {\r\n return this._recurrenceForm\r\n }\r\n changeValueByVisibility(value) {\r\n if (value) {\r\n if (!this.option(\"value\")) {\r\n this._handleDefaults()\r\n }\r\n } else {\r\n this._recurrenceRule.makeRules(\"\");\r\n this.option(\"value\", \"\")\r\n }\r\n }\r\n _handleDefaults() {\r\n this._recurrenceRule.makeRule(\"freq\", frequenciesMessages[defaultRecurrenceTypeIndex].value);\r\n this._changeEditorValue()\r\n }\r\n _changeEditorValue() {\r\n this.option(\"value\", this._recurrenceRule.getRecurrenceString() || \"\")\r\n }\r\n _daysOfWeekByRules() {\r\n var daysByRule = this._recurrenceRule.getDaysFromByDayRule();\r\n if (!daysByRule.length) {\r\n daysByRule = this._getDefaultByDayValue()\r\n }\r\n return daysByRule\r\n }\r\n _getDefaultByDayValue() {\r\n var startDate = this.option(\"startDate\");\r\n var startDay = startDate.getDay();\r\n return [days[startDay]]\r\n }\r\n _dayOfMonthByRules() {\r\n var dayByRule = this._recurrenceRule.getRules().bymonthday;\r\n if (!dayByRule) {\r\n dayByRule = this.option(\"startDate\").getDate()\r\n }\r\n return dayByRule\r\n }\r\n _monthOfYearByRules() {\r\n var monthByRule = this._recurrenceRule.getRules().bymonth;\r\n if (!monthByRule) {\r\n monthByRule = this.option(\"startDate\").getMonth() + 1\r\n }\r\n return String(monthByRule)\r\n }\r\n _renderDefaultRepeatEnd() {\r\n var $editorTemplate = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceNever\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n return $editorTemplate\r\n }\r\n _repeatEndValueChangedHandler(args) {\r\n var {\r\n value: value\r\n } = args;\r\n this._disableRepeatEndParts(value);\r\n if (\"until\" === value) {\r\n this._recurrenceRule.makeRule(value, this._getUntilValue())\r\n }\r\n if (\"count\" === value) {\r\n this._recurrenceRule.makeRule(value, this._repeatCountEditor.option(\"value\"))\r\n }\r\n if (\"never\" === value) {\r\n this._recurrenceRule.makeRule(\"count\", \"\");\r\n this._recurrenceRule.makeRule(\"until\", \"\")\r\n }\r\n this._changeEditorValue()\r\n }\r\n _disableRepeatEndParts() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._recurrenceRule.getRepeatEndRule();\r\n if (\"until\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", false)\r\n }\r\n if (\"count\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", false);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n if (\"never\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n }\r\n _renderRepeatCountEditor() {\r\n var repeatCount = this._recurrenceRule.getRules().count || 1;\r\n var $editorWrapper = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceAfter\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._$repeatCountEditor = $(\"<div>\").addClass(REPEAT_COUNT_EDITOR).appendTo($editorWrapper);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceRepeatCount\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._repeatCountEditor = this._createComponent(this._$repeatCountEditor, NumberBox, {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"count\",\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n min: 1,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: repeatCount,\r\n onValueChanged: this._repeatCountValueChangeHandler.bind(this)\r\n });\r\n return $editorWrapper\r\n }\r\n _repeatCountValueChangeHandler(args) {\r\n if (\"count\" === this._recurrenceRule.getRepeatEndRule()) {\r\n var {\r\n value: value\r\n } = args;\r\n this._recurrenceRule.makeRule(\"count\", value);\r\n this._changeEditorValue()\r\n }\r\n }\r\n _formatUntilDate(date) {\r\n if (this._recurrenceRule.getRules().until && dateUtils.sameDate(this._recurrenceRule.getRules().until, date)) {\r\n return date\r\n }\r\n return dateUtils.setToDayEnd(date)\r\n }\r\n _renderRepeatUntilEditor() {\r\n var repeatUntil = this._getUntilValue();\r\n var $editorWrapper = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceOn\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._$repeatDateEditor = $(\"<div>\").addClass(REPEAT_UNTIL_DATE_EDITOR).appendTo($editorWrapper);\r\n this._repeatUntilDate = this._createComponent(this._$repeatDateEditor, DateBox, {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"until\",\r\n value: repeatUntil,\r\n type: \"date\",\r\n onValueChanged: this._repeatUntilValueChangeHandler.bind(this),\r\n calendarOptions: {\r\n firstDayOfWeek: this._getFirstDayOfWeek()\r\n },\r\n useMaskBehavior: true\r\n });\r\n return $editorWrapper\r\n }\r\n _repeatUntilValueChangeHandler(args) {\r\n if (\"until\" === this._recurrenceRule.getRepeatEndRule()) {\r\n var dateInTimeZone = this._formatUntilDate(new Date(args.value));\r\n var getStartDateTimeZone = this.option(\"getStartDateTimeZone\");\r\n var appointmentTimeZone = getStartDateTimeZone();\r\n var path = appointmentTimeZone ? PathTimeZoneConversion.fromAppointmentToSource : PathTimeZoneConversion.fromGridToSource;\r\n var dateInLocaleTimeZone = this.option(\"timeZoneCalculator\").createDate(dateInTimeZone, {\r\n path: path,\r\n appointmentTimeZone: appointmentTimeZone\r\n });\r\n this._recurrenceRule.makeRule(\"until\", dateInLocaleTimeZone);\r\n this._changeEditorValue()\r\n }\r\n }\r\n _valueChangedHandler(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n var field = args.component.option(\"field\");\r\n if (!this.option(\"visible\")) {\r\n this.option(\"value\", \"\")\r\n } else {\r\n this._recurrenceRule.makeRule(field, value);\r\n if (\"freq\" === field) {\r\n this._makeRepeatOnRule(value);\r\n this._changeRepeatOnVisibility(value, previousValue)\r\n }\r\n this._changeEditorValue()\r\n }\r\n }\r\n _makeRepeatOnRule(value) {\r\n if (\"daily\" === value || \"hourly\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"weekly\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", this._daysOfWeekByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"monthly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n if (\"yearly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", this._monthOfYearByRules());\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c, _d;\r\n switch (args.name) {\r\n case \"readOnly\":\r\n null === (_a = this._recurrenceForm) || void 0 === _a ? void 0 : _a.option(\"readOnly\", args.value);\r\n null === (_b = this._repeatCountEditor) || void 0 === _b ? void 0 : _b.option(\"readOnly\", args.value);\r\n null === (_c = this._weekEditor) || void 0 === _c ? void 0 : _c.option(\"readOnly\", args.value);\r\n null === (_d = this._repeatUntilDate) || void 0 === _d ? void 0 : _d.option(\"readOnly\", args.value);\r\n super._optionChanged(args);\r\n break;\r\n case \"value\":\r\n this._recurrenceRule.makeRules(args.value);\r\n this._changeRepeatIntervalLabel();\r\n this._disableRepeatEndParts();\r\n this._changeEditorsValue(this._recurrenceRule.getRules());\r\n super._optionChanged(args);\r\n break;\r\n case \"startDate\":\r\n this._makeRepeatOnRule(this._recurrenceRule.getRules().freq);\r\n if (isDefined(this._recurrenceRule.getRecurrenceString())) {\r\n this._changeEditorValue()\r\n }\r\n break;\r\n case \"firstDayOfWeek\":\r\n if (this._weekEditor) {\r\n var localDaysNames = dateLocalization.getDayNames(\"abbreviated\");\r\n var dayNames = days.slice(args.value).concat(days.slice(0, args.value));\r\n var itemsButtonGroup = localDaysNames.slice(args.value).concat(localDaysNames.slice(0, args.value)).map((item, index) => ({\r\n text: item,\r\n key: dayNames[index]\r\n }));\r\n this._weekEditor.option(\"items\", itemsButtonGroup)\r\n }\r\n if (this._$repeatDateEditor) {\r\n this._repeatUntilDate.option(\"calendarOptions.firstDayOfWeek\", this._getFirstDayOfWeek())\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeRepeatOnVisibility(freq, previousFreq) {\r\n if (freq !== previousFreq) {\r\n this._recurrenceForm.itemOption(\"byday\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"bymonth\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"repeatOnLabel\", \"visible\", freq && \"daily\" !== freq && \"hourly\" !== freq);\r\n if (\"weekly\" === freq) {\r\n this._recurrenceForm.itemOption(\"byday\", \"visible\", true)\r\n }\r\n if (\"monthly\" === freq) {\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", true)\r\n }\r\n if (\"yearly\" === freq) {\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", true);\r\n this._recurrenceForm.itemOption(\"bymonth\", \"visible\", true)\r\n }\r\n }\r\n }\r\n _changeRepeatIntervalLabel() {\r\n var {\r\n freq: freq\r\n } = this._recurrenceRule.getRules();\r\n freq && this._recurrenceForm.itemOption(\"intervalLabel\", \"template\", messageLocalization.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase())))\r\n }\r\n _changeEditorsValue(rules) {\r\n this._recurrenceForm.getEditor(\"freq\").option(\"value\", (rules.freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase());\r\n this._changeDayOfWeekValue();\r\n this._changeDayOfMonthValue();\r\n this._changeMonthOfYearValue();\r\n this._changeIntervalValue(rules.interval);\r\n this._changeRepeatCountValue();\r\n this._changeRepeatEndValue();\r\n this._changeRepeatUntilValue()\r\n }\r\n _changeIntervalValue(value) {\r\n this._recurrenceForm.getEditor(\"interval\").option(\"value\", value || 1)\r\n }\r\n _changeRepeatEndValue() {\r\n var repeatType = this._recurrenceRule.getRepeatEndRule();\r\n this._recurrenceForm.getEditor(\"repeatEnd\").option(\"value\", repeatType)\r\n }\r\n _changeDayOfWeekValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"byday\").visible;\r\n if (isEditorVisible) {\r\n var _days = this._daysOfWeekByRules();\r\n this.getEditorByField(\"byday\").option(\"selectedItemKeys\", _days)\r\n }\r\n }\r\n _changeDayOfMonthValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"bymonthday\").visible;\r\n if (isEditorVisible) {\r\n var day = this._dayOfMonthByRules();\r\n this._recurrenceForm.getEditor(\"bymonthday\").option(\"value\", day)\r\n }\r\n }\r\n _changeMonthOfYearValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"bymonth\").visible;\r\n if (isEditorVisible) {\r\n var month = this._monthOfYearByRules();\r\n this._recurrenceForm.getEditor(\"bymonth\").option(\"value\", month)\r\n }\r\n }\r\n _changeRepeatCountValue() {\r\n var count = this._recurrenceRule.getRules().count || 1;\r\n this._repeatCountEditor.option(\"value\", count)\r\n }\r\n _changeRepeatUntilValue() {\r\n this._repeatUntilDate.option(\"value\", this._getUntilValue())\r\n }\r\n _getUntilValue() {\r\n var untilDate = this._recurrenceRule.getRules().until;\r\n if (!untilDate) {\r\n return this._formatUntilDate(new Date)\r\n }\r\n var getStartDateTimeZone = this.option(\"getStartDateTimeZone\");\r\n var appointmentTimeZone = getStartDateTimeZone();\r\n var path = appointmentTimeZone ? PathTimeZoneConversion.fromSourceToAppointment : PathTimeZoneConversion.fromSourceToGrid;\r\n return this.option(\"timeZoneCalculator\").createDate(untilDate, {\r\n path: path,\r\n appointmentTimeZone: appointmentTimeZone\r\n })\r\n }\r\n toggle() {\r\n this._freqEditor.focus()\r\n }\r\n setAria() {\r\n if (this._switchEditor) {\r\n this._switchEditor.setAria(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1])\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxRecurrenceEditor\", RecurrenceEditor);\r\nexport default RecurrenceEditor;\r\n","/**\r\n * DevExtreme (esm/ui/recurrence_editor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RecurrenceEditor from \"../__internal/scheduler/m_recurrence_editor\";\r\nexport default RecurrenceEditor;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxRecurrenceEditor from 'devextreme/ui/recurrence_editor';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxRecurrenceEditorComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxRecurrenceEditor]\r\n\r\n */\r\nclass DxRecurrenceEditorComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxRecurrenceEditorOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxRecurrenceEditor(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxRecurrenceEditorComponent.ɵfac = function DxRecurrenceEditorComponent_Factory(t) { return new (t || DxRecurrenceEditorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxRecurrenceEditorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxRecurrenceEditorComponent, selectors: [[\"dx-recurrence-editor\"]], hostBindings: function DxRecurrenceEditorComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxRecurrenceEditorComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxRecurrenceEditorComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxRecurrenceEditorComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRecurrenceEditorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-recurrence-editor',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxRecurrenceEditorModule {\r\n}\r\n/** @nocollapse */ DxRecurrenceEditorModule.ɵfac = function DxRecurrenceEditorModule_Factory(t) { return new (t || DxRecurrenceEditorModule)(); };\r\n/** @nocollapse */ DxRecurrenceEditorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxRecurrenceEditorModule });\r\n/** @nocollapse */ DxRecurrenceEditorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxRecurrenceEditorModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxRecurrenceEditorComponent\r\n ],\r\n exports: [\r\n DxRecurrenceEditorComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxRecurrenceEditorModule, { declarations: [DxRecurrenceEditorComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxRecurrenceEditorComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxRecurrenceEditorComponent, DxRecurrenceEditorModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxResizable from 'devextreme/ui/resizable';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxResizable]\r\n\r\n */\r\nclass DxResizableComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'resize', emit: 'onResize' },\r\n { subscribe: 'resizeEnd', emit: 'onResizeEnd' },\r\n { subscribe: 'resizeStart', emit: 'onResizeStart' },\r\n { emit: 'areaChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'handlesChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'keepAspectRatioChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.area]\r\n \r\n */\r\n get area() {\r\n return this._getOption('area');\r\n }\r\n set area(value) {\r\n this._setOption('area', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.handles]\r\n \r\n */\r\n get handles() {\r\n return this._getOption('handles');\r\n }\r\n set handles(value) {\r\n this._setOption('handles', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.keepAspectRatio]\r\n \r\n */\r\n get keepAspectRatio() {\r\n return this._getOption('keepAspectRatio');\r\n }\r\n set keepAspectRatio(value) {\r\n this._setOption('keepAspectRatio', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxResizableOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxResizable(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxResizableComponent.ɵfac = function DxResizableComponent_Factory(t) { return new (t || DxResizableComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxResizableComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxResizableComponent, selectors: [[\"dx-resizable\"]], inputs: { area: \"area\", elementAttr: \"elementAttr\", handles: \"handles\", height: \"height\", keepAspectRatio: \"keepAspectRatio\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", rtlEnabled: \"rtlEnabled\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onResize: \"onResize\", onResizeEnd: \"onResizeEnd\", onResizeStart: \"onResizeStart\", areaChange: \"areaChange\", elementAttrChange: \"elementAttrChange\", handlesChange: \"handlesChange\", heightChange: \"heightChange\", keepAspectRatioChange: \"keepAspectRatioChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", rtlEnabledChange: \"rtlEnabledChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxResizableComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxResizableComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-resizable',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { area: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], handles: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], keepAspectRatio: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onResize: [{\r\n type: Output\r\n }], onResizeEnd: [{\r\n type: Output\r\n }], onResizeStart: [{\r\n type: Output\r\n }], areaChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], handlesChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], keepAspectRatioChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxResizableModule {\r\n}\r\n/** @nocollapse */ DxResizableModule.ɵfac = function DxResizableModule_Factory(t) { return new (t || DxResizableModule)(); };\r\n/** @nocollapse */ DxResizableModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxResizableModule });\r\n/** @nocollapse */ DxResizableModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxResizableModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxResizableComponent\r\n ],\r\n exports: [\r\n DxResizableComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxResizableModule, { declarations: [DxResizableComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxResizableComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxResizableComponent, DxResizableModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxResponsiveBox from 'devextreme/ui/responsive_box';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiColComponent, DxiItemComponent, DxiRowComponent, DxiColModule, DxiItemModule, DxiLocationModule, DxiRowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxResponsiveBox]\r\n\r\n */\r\nclass DxResponsiveBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'colsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'rowsChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'screenByWidthChange' },\r\n { emit: 'singleColumnScreenChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.cols]\r\n \r\n */\r\n get cols() {\r\n return this._getOption('cols');\r\n }\r\n set cols(value) {\r\n this._setOption('cols', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.rows]\r\n \r\n */\r\n get rows() {\r\n return this._getOption('rows');\r\n }\r\n set rows(value) {\r\n this._setOption('rows', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.screenByWidth]\r\n \r\n */\r\n get screenByWidth() {\r\n return this._getOption('screenByWidth');\r\n }\r\n set screenByWidth(value) {\r\n this._setOption('screenByWidth', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.singleColumnScreen]\r\n \r\n */\r\n get singleColumnScreen() {\r\n return this._getOption('singleColumnScreen');\r\n }\r\n set singleColumnScreen(value) {\r\n this._setOption('singleColumnScreen', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxResponsiveBoxOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get colsChildren() {\r\n return this._getOption('cols');\r\n }\r\n set colsChildren(value) {\r\n this.setChildren('cols', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n get rowsChildren() {\r\n return this._getOption('rows');\r\n }\r\n set rowsChildren(value) {\r\n this.setChildren('rows', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxResponsiveBox(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('cols', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('rows', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('cols');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('rows');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxResponsiveBoxComponent.ɵfac = function DxResponsiveBoxComponent_Factory(t) { return new (t || DxResponsiveBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxResponsiveBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxResponsiveBoxComponent, selectors: [[\"dx-responsive-box\"]], contentQueries: function DxResponsiveBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiColComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiRowComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rowsChildren = _t);\r\n } }, inputs: { cols: \"cols\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", rows: \"rows\", rtlEnabled: \"rtlEnabled\", screenByWidth: \"screenByWidth\", singleColumnScreen: \"singleColumnScreen\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", colsChange: \"colsChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", rowsChange: \"rowsChange\", rtlEnabledChange: \"rtlEnabledChange\", screenByWidthChange: \"screenByWidthChange\", singleColumnScreenChange: \"singleColumnScreenChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxResponsiveBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxResponsiveBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-responsive-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { cols: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], rows: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], screenByWidth: [{\r\n type: Input\r\n }], singleColumnScreen: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], colsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], rowsChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], screenByWidthChange: [{\r\n type: Output\r\n }], singleColumnScreenChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], colsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiColComponent]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }], rowsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiRowComponent]\r\n }] }); })();\r\nclass DxResponsiveBoxModule {\r\n}\r\n/** @nocollapse */ DxResponsiveBoxModule.ɵfac = function DxResponsiveBoxModule_Factory(t) { return new (t || DxResponsiveBoxModule)(); };\r\n/** @nocollapse */ DxResponsiveBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxResponsiveBoxModule });\r\n/** @nocollapse */ DxResponsiveBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxResponsiveBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxResponsiveBoxComponent\r\n ],\r\n exports: [\r\n DxResponsiveBoxComponent,\r\n DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxResponsiveBoxModule, { declarations: [DxResponsiveBoxComponent], imports: [DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxResponsiveBoxComponent, DxiColModule,\r\n DxiItemModule,\r\n DxiLocationModule,\r\n DxiRowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxResponsiveBoxComponent, DxResponsiveBoxModule };\n","/**\r\n * DevExtreme (esm/viz/sankey/constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var COLOR_MODE_GRADIENT = \"gradient\";\r\nexport var COLOR_MODE_SOURCE = \"source\";\r\nexport var COLOR_MODE_TARGET = \"target\";\r\nexport var COLOR_MODE_NONE = \"none\";\r\n","/**\r\n * DevExtreme (esm/viz/sankey/node_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar states = [\"normal\", \"hover\"];\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\n\r\nfunction _compileAttrs(color, itemOptions, itemBaseOptions) {\r\n var border = itemOptions.border;\r\n var baseBorder = itemBaseOptions.border;\r\n var borderVisible = isDefined(border.visible) ? border.visible : baseBorder.visible;\r\n var borderWidth = isDefined(border.width) ? border.width : baseBorder.width;\r\n var borderOpacity = isDefined(border.opacity) ? border.opacity : isDefined(baseBorder.opacity) ? baseBorder.opacity : 1;\r\n var opacity = isDefined(itemOptions.opacity) ? itemOptions.opacity : isDefined(itemBaseOptions.opacity) ? itemBaseOptions.opacity : 1;\r\n return {\r\n fill: itemOptions.color || color,\r\n \"stroke-width\": borderVisible ? borderWidth : 0,\r\n stroke: itemOptions.border.color || itemBaseOptions.border.color,\r\n \"stroke-opacity\": borderOpacity,\r\n opacity: opacity,\r\n hatching: itemOptions.hatching\r\n }\r\n}\r\n\r\nfunction compileLabelAttrs(labelOptions, filter, node) {\r\n var _patchFontOptions = patchFontOptions;\r\n if (labelOptions.useNodeColors) {\r\n labelOptions.font.color = node.color\r\n }\r\n var borderVisible = isDefined(labelOptions.border.visible) ? labelOptions.border.visible : false;\r\n var borderWidth = isDefined(labelOptions.border.width) ? labelOptions.border.width : 0;\r\n var borderColor = isDefined(labelOptions.border.color) ? labelOptions.border.color : labelOptions.font.color;\r\n var borderOpacity = isDefined(labelOptions.border.opacity) ? labelOptions.border.opacity : 1;\r\n var attr = {\r\n filter: filter\r\n };\r\n if (borderVisible && borderWidth) {\r\n attr.stroke = borderColor;\r\n attr[\"stroke-width\"] = borderVisible ? borderWidth : 0;\r\n attr[\"stroke-opacity\"] = borderOpacity\r\n }\r\n return {\r\n attr: attr,\r\n css: _patchFontOptions(labelOptions.font)\r\n }\r\n}\r\n\r\nfunction Node(widget, params) {\r\n var widgetOffset = widget._renderer.getRootOffset();\r\n this.code = 0;\r\n this.widget = widget;\r\n this.color = params.color;\r\n this.options = params.options;\r\n this.rect = params.rect;\r\n this.label = this.title = params.rect._name;\r\n this.coords = {\r\n x: params.rect.x + params.rect.width / 2 + widgetOffset.left,\r\n y: params.rect.y + params.rect.height / 2 + widgetOffset.top\r\n };\r\n this.id = params.id;\r\n this.linksIn = params.linksIn;\r\n this.linksOut = params.linksOut;\r\n this.states = {\r\n normal: _compileAttrs(this.color, this.options, this.options),\r\n hover: _compileAttrs(this.color, this.options.hoverStyle, this.options)\r\n }\r\n}\r\nNode.prototype = {\r\n compileAttrs: function() {\r\n return _compileAttrs(this.color, this.options)\r\n },\r\n getState: function() {\r\n return states[this.code]\r\n },\r\n isHovered: function() {\r\n return !!(1 & this.code)\r\n },\r\n setState: function(code, state) {\r\n if (state) {\r\n this.code |= code\r\n } else {\r\n this.code &= ~code\r\n }\r\n if (state) {\r\n this.linksIn.concat(this.linksOut).forEach(adjacentLink => {\r\n this.widget._links[adjacentLink.index].setAdjacentNodeHover(true)\r\n })\r\n } else {\r\n this.widget._links.forEach((function(link) {\r\n link.isAdjacentNodeHovered() && link.adjacentNodeHover(false)\r\n }));\r\n this.hideTooltip()\r\n }\r\n this.widget._applyNodesAppearance();\r\n this.widget._applyLinksAppearance()\r\n },\r\n hover: function(state) {\r\n if (!this.widget._getOption(\"hoverEnabled\", true) || state === this.isHovered()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n state && this.widget.clearHover();\r\n this.setState(1, state);\r\n this.widget._eventTrigger(\"nodeHoverChanged\", {\r\n target: this\r\n });\r\n this.widget._resume()\r\n },\r\n setHover: function() {\r\n this.hover(true)\r\n },\r\n showTooltip: function(coords) {\r\n this.widget._getOption(\"hoverEnabled\", true) && this.widget._tooltip && this.widget._tooltip.show({\r\n type: \"node\",\r\n info: {\r\n label: this.label,\r\n title: this.label,\r\n weightIn: this.linksIn.reduce((function(previousValue, currentValue) {\r\n return previousValue + currentValue.weight\r\n }), 0),\r\n weightOut: this.linksOut.reduce((function(previousValue, currentValue) {\r\n return previousValue + currentValue.weight\r\n }), 0)\r\n }\r\n }, \"undefined\" !== typeof coords ? {\r\n x: coords[0],\r\n y: coords[1]\r\n } : this.coords)\r\n },\r\n hideTooltip: function() {\r\n this.widget._tooltip && this.widget._tooltip.hide()\r\n },\r\n getLabelAttributes: function(labelSettings, filter) {\r\n return compileLabelAttrs(labelSettings, filter, this)\r\n }\r\n};\r\nexport default Node;\r\n","/**\r\n * DevExtreme (esm/viz/sankey/link_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n COLOR_MODE_GRADIENT,\r\n COLOR_MODE_SOURCE,\r\n COLOR_MODE_TARGET\r\n} from \"./constants\";\r\nvar states = [\"normal\", \"adjacentNodeHover\", \"hover\"];\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\n\r\nfunction compileAttrs(color, itemOptions, itemBaseOptions, gradient) {\r\n var border = itemOptions.border;\r\n var baseBorder = itemBaseOptions.border;\r\n var borderVisible = isDefined(border.visible) ? border.visible : baseBorder.visible;\r\n var borderWidth = isDefined(border.width) ? border.width : baseBorder.width;\r\n var borderOpacity = isDefined(border.opacity) ? border.opacity : isDefined(baseBorder.opacity) ? baseBorder.opacity : 1;\r\n var opacity = isDefined(itemOptions.opacity) ? itemOptions.opacity : isDefined(itemBaseOptions.opacity) ? itemBaseOptions.opacity : 1;\r\n var fill = itemOptions.color || color;\r\n if (itemBaseOptions.colorMode === COLOR_MODE_TARGET || itemBaseOptions.colorMode === COLOR_MODE_SOURCE) {\r\n fill = color\r\n } else if (itemBaseOptions.colorMode === COLOR_MODE_GRADIENT && gradient && isDefined(gradient.id)) {\r\n fill = gradient.id\r\n }\r\n return {\r\n fill: fill,\r\n \"stroke-width\": borderVisible ? borderWidth : 0,\r\n stroke: itemOptions.border.color || itemBaseOptions.border.color,\r\n \"stroke-opacity\": borderOpacity,\r\n opacity: opacity,\r\n hatching: itemOptions.hatching\r\n }\r\n}\r\n\r\nfunction Link(widget, params) {\r\n var widgetOffset = widget._renderer.getRootOffset();\r\n this.code = 0;\r\n this.widget = widget;\r\n this.color = params.color;\r\n this.connection = params.connection;\r\n this.d = params.d;\r\n this.options = params.options;\r\n this.boundingRect = params.boundingRect, this.coords = {\r\n x: params.boundingRect.x + params.boundingRect.width / 2 + widgetOffset.left,\r\n y: params.boundingRect.y + params.boundingRect.height / 2 + widgetOffset.top\r\n };\r\n this.states = {\r\n normal: compileAttrs(this.color, this.options, this.options, params.gradient),\r\n adjacentNodeHover: compileAttrs(this.color, {\r\n opacity: 0,\r\n border: {}\r\n }, this.options, params.gradient),\r\n hover: compileAttrs(this.color, {\r\n opacity: 0,\r\n border: {}\r\n }, this.options, params.gradient)\r\n };\r\n this.overlayStates = {\r\n normal: compileAttrs(this.color, {\r\n opacity: 0,\r\n border: {}\r\n }, this.options),\r\n adjacentNodeHover: compileAttrs(this.color, this.options.hoverStyle, this.options),\r\n hover: compileAttrs(this.color, this.options.hoverStyle, this.options)\r\n }\r\n}\r\nLink.prototype = {\r\n getState: function() {\r\n return states[this.code]\r\n },\r\n isHovered: function() {\r\n return 2 === this.code\r\n },\r\n isAdjacentNodeHovered: function() {\r\n return 1 === this.code\r\n },\r\n setState: function(code, state) {\r\n if (state) {\r\n this.code = code\r\n } else {\r\n this.code = 0;\r\n this.hideTooltip()\r\n }\r\n this.widget._applyLinksAppearance()\r\n },\r\n setHover: function() {\r\n this.hover(true)\r\n },\r\n hover: function(state) {\r\n if (!this.widget._getOption(\"hoverEnabled\", true) || state === this.isHovered()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n state && this.widget.clearHover();\r\n this.setState(2, state);\r\n this.widget._eventTrigger(\"linkHoverChanged\", {\r\n target: this\r\n });\r\n this.widget._resume()\r\n },\r\n adjacentNodeHover: function(state) {\r\n if (!this.widget._getOption(\"hoverEnabled\", true) || state === this.isAdjacentNodeHovered()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n this.setState(1, state);\r\n this.widget._resume()\r\n },\r\n setAdjacentNodeHover: function() {\r\n this.adjacentNodeHover(true)\r\n },\r\n showTooltip: function(coords) {\r\n this.widget._getOption(\"hoverEnabled\", true) && this.widget._tooltip && this.widget._tooltip.show({\r\n type: \"link\",\r\n info: {\r\n source: this.connection.source,\r\n target: this.connection.target,\r\n weight: this.connection.weight\r\n }\r\n }, \"undefined\" !== typeof coords ? {\r\n x: coords[0],\r\n y: coords[1]\r\n } : this.coords)\r\n },\r\n hideTooltip: function() {\r\n this.widget._tooltip && this.widget._tooltip.hide()\r\n }\r\n};\r\nexport default Link;\r\n","/**\r\n * DevExtreme (esm/viz/sankey/graph.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"white\";\r\nvar GRAY = \"gray\";\r\nvar BLACK = \"black\";\r\nvar routines = {\r\n maxOfArray: function(arr, callback) {\r\n var m = 0;\r\n var callback_function = v => v;\r\n if (callback) {\r\n callback_function = callback\r\n }\r\n for (var i = 0; i < arr.length; i++) {\r\n if (callback_function(arr[i]) > m) {\r\n m = callback_function(arr[i])\r\n }\r\n }\r\n return m\r\n }\r\n};\r\nvar getVertices = function(links) {\r\n var vert = [];\r\n links.forEach(link => {\r\n if (-1 === vert.indexOf(link[0])) {\r\n vert.push(link[0])\r\n }\r\n if (-1 === vert.indexOf(link[1])) {\r\n vert.push(link[1])\r\n }\r\n });\r\n return vert\r\n};\r\nvar getAdjacentVertices = function(links, vertex) {\r\n var avert = [];\r\n links.forEach(link => {\r\n if (link[0] === vertex && -1 === avert.indexOf(link[1])) {\r\n avert.push(link[1])\r\n }\r\n });\r\n return avert\r\n};\r\nvar getReverseAdjacentVertices = function(links, vertex) {\r\n var avert = [];\r\n links.forEach(link => {\r\n if (link[1] === vertex && -1 === avert.indexOf(link[0])) {\r\n avert.push(link[0])\r\n }\r\n });\r\n return avert\r\n};\r\nvar struct = {\r\n _hasCycle: false,\r\n _sortedList: [],\r\n hasCycle: function(links) {\r\n this._hasCycle = false;\r\n this._sortedList = [];\r\n var vertices = {};\r\n var allVertices = getVertices(links);\r\n allVertices.forEach(vertex => {\r\n vertices[vertex] = {\r\n color: WHITE\r\n }\r\n });\r\n allVertices.forEach(vertex => {\r\n if (vertices[vertex].color === WHITE) {\r\n this._depthFirstSearch(links, vertices, vertex)\r\n }\r\n });\r\n this._sortedList.reverse();\r\n return this._hasCycle\r\n },\r\n _depthFirstSearch: function(links, vertices, vertex) {\r\n vertices[vertex].color = GRAY;\r\n var averts = getAdjacentVertices(links, vertex);\r\n for (var a = 0; a < averts.length; a++) {\r\n if (vertices[averts[a]].color === WHITE) {\r\n this._depthFirstSearch(links, vertices, averts[a])\r\n } else if (vertices[averts[a]].color === GRAY) {\r\n this._hasCycle = true\r\n }\r\n }\r\n this._sortedList.push({\r\n name: vertex,\r\n lp: null,\r\n incoming: getReverseAdjacentVertices(links, vertex),\r\n outgoing: getAdjacentVertices(links, vertex)\r\n });\r\n vertices[vertex].color = BLACK\r\n },\r\n computeLongestPaths(links) {\r\n var sortedVertices = this._sortedList;\r\n sortedVertices.forEach(vertex => {\r\n var averts = getReverseAdjacentVertices(links, vertex.name);\r\n if (0 === averts.length) {\r\n vertex.lp = 0\r\n } else {\r\n var maxLP = [];\r\n averts.forEach(adjacentVertex => {\r\n maxLP.push(sortedVertices.filter(sv => sv.name === adjacentVertex)[0].lp)\r\n });\r\n vertex.lp = routines.maxOfArray(maxLP) + 1\r\n }\r\n });\r\n return this._sortedList\r\n }\r\n};\r\nexport default {\r\n struct: struct,\r\n routines: routines,\r\n getVertices: getVertices,\r\n getAdjacentVertices: getAdjacentVertices,\r\n getReverseAdjacentVertices: getReverseAdjacentVertices\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/sankey/data_validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport graphModule from \"./graph\";\r\nvar validator = {\r\n validate: function(data, incidentOccurred) {\r\n var result = null;\r\n if (this._hasCycle(data)) {\r\n result = \"E2006\";\r\n incidentOccurred(\"E2006\")\r\n }\r\n return result\r\n },\r\n _hasCycle: function(data) {\r\n return graphModule.struct.hasCycle(data)\r\n }\r\n};\r\nexport default validator;\r\n","/**\r\n * DevExtreme (esm/viz/sankey/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _SPLINE_TENSION = .3;\r\nvar _ALIGNMENT_CENTER = \"center\";\r\nvar _ALIGNMENT_BOTTOM = \"bottom\";\r\nvar _ALIGNMENT_DEFAULT = _ALIGNMENT_CENTER;\r\nimport graphModule from \"./graph\";\r\nimport validatorModule from \"./data_validator\";\r\nexport var layout = {\r\n _weightPerPixel: null,\r\n _getCascadeIdx: function(nodeTitle, cascadesConfig) {\r\n var nodeInfo = cascadesConfig.filter(c => c.name === nodeTitle)[0];\r\n if (nodeInfo.outgoing.length > 0) {\r\n return nodeInfo.lp\r\n } else {\r\n return graphModule.routines.maxOfArray(cascadesConfig.map(c => c.lp))\r\n }\r\n },\r\n _getInWeightForNode: function(nodeTitle, links) {\r\n var w = 0;\r\n links.forEach(link => {\r\n if (link[1] === nodeTitle) {\r\n w += link[2]\r\n }\r\n });\r\n return w\r\n },\r\n _getOutWeightForNode: function(nodeTitle, links) {\r\n var w = 0;\r\n links.forEach(link => {\r\n if (link[0] === nodeTitle) {\r\n w += link[2]\r\n }\r\n });\r\n return w\r\n },\r\n _computeCascades: function(links) {\r\n var cascadesConfig = graphModule.struct.computeLongestPaths(links);\r\n var maxCascade = graphModule.routines.maxOfArray(cascadesConfig.map(c => c.lp));\r\n var cascades = [];\r\n for (var i = 0; i < maxCascade + 1; i++) {\r\n cascades.push({})\r\n }\r\n links.forEach(link => {\r\n var cascade = cascades[this._getCascadeIdx(link[0], cascadesConfig)];\r\n if (!cascade[link[0]]) {\r\n cascade[link[0]] = {\r\n nodeTitle: link[0]\r\n }\r\n }\r\n cascade = cascades[this._getCascadeIdx(link[1], cascadesConfig)];\r\n if (!cascade[link[1]]) {\r\n cascade[link[1]] = {\r\n nodeTitle: link[1]\r\n }\r\n }\r\n });\r\n cascades.forEach(cascade => {\r\n Object.keys(cascade).forEach(nodeTitle => {\r\n var node = cascade[nodeTitle];\r\n node.inWeight = this._getInWeightForNode(node.nodeTitle, links);\r\n node.outWeight = this._getOutWeightForNode(node.nodeTitle, links);\r\n node.maxWeight = Math.max(node.inWeight, node.outWeight)\r\n })\r\n });\r\n return cascades\r\n },\r\n _getWeightForCascade: function(cascades, cascadeIdx) {\r\n var wMax = 0;\r\n var cascade = cascades[cascadeIdx];\r\n Object.keys(cascade).forEach(nodeTitle => {\r\n wMax += Math.max(cascade[nodeTitle].inWeight, cascade[nodeTitle].outWeight)\r\n });\r\n return wMax\r\n },\r\n _getMaxWeightThroughCascades: function(cascades) {\r\n var max = [];\r\n cascades.forEach(cascade => {\r\n var mW = 0;\r\n Object.keys(cascade).forEach(nodeTitle => {\r\n var node = cascade[nodeTitle];\r\n mW += Math.max(node.inWeight, node.outWeight)\r\n });\r\n max.push(mW)\r\n });\r\n return graphModule.routines.maxOfArray(max)\r\n },\r\n _computeNodes: function(cascades, options) {\r\n var rects = [];\r\n var maxWeight = this._getMaxWeightThroughCascades(cascades);\r\n var maxNodeNum = graphModule.routines.maxOfArray(cascades.map(nodesInCascade => Object.keys(nodesInCascade).length));\r\n var nodePadding = options.nodePadding;\r\n var heightAvailable = options.height - nodePadding * (maxNodeNum - 1);\r\n if (heightAvailable < 0) {\r\n nodePadding = 0;\r\n heightAvailable = options.height - nodePadding * (maxNodeNum - 1)\r\n }\r\n this._weightPerPixel = maxWeight / heightAvailable;\r\n var cascadeIdx = 0;\r\n cascades.forEach(cascade => {\r\n var cascadeRects = [];\r\n var y = 0;\r\n var nodesInCascade = Object.keys(cascade).length;\r\n var cascadeHeight = this._getWeightForCascade(cascades, cascadeIdx) / this._weightPerPixel + nodePadding * (nodesInCascade - 1);\r\n var cascadeAlign;\r\n if (Array.isArray(options.nodeAlign)) {\r\n cascadeAlign = cascadeIdx < options.nodeAlign.length ? options.nodeAlign[cascadeIdx] : _ALIGNMENT_DEFAULT\r\n } else {\r\n cascadeAlign = options.nodeAlign\r\n }\r\n if (cascadeAlign === _ALIGNMENT_BOTTOM) {\r\n y = options.height - cascadeHeight\r\n } else if (cascadeAlign === _ALIGNMENT_CENTER) {\r\n y = .5 * (options.height - cascadeHeight)\r\n }\r\n y = Math.round(y);\r\n Object.keys(cascade).forEach(nodeTitle => {\r\n cascade[nodeTitle].sort = this._sort && Object.prototype.hasOwnProperty.call(this._sort, nodeTitle) ? this._sort[nodeTitle] : 1\r\n });\r\n Object.keys(cascade).sort((a, b) => cascade[a].sort - cascade[b].sort).forEach(nodeTitle => {\r\n var node = cascade[nodeTitle];\r\n var height = Math.floor(heightAvailable * node.maxWeight / maxWeight);\r\n var x = Math.round(cascadeIdx * options.width / (cascades.length - 1)) - (0 === cascadeIdx ? 0 : options.nodeWidth);\r\n var rect = {};\r\n rect._name = nodeTitle;\r\n rect.width = options.nodeWidth;\r\n rect.height = height;\r\n rect.x = x + options.x;\r\n rect.y = y + options.y;\r\n y += height + nodePadding;\r\n cascadeRects.push(rect)\r\n });\r\n cascadeIdx++;\r\n rects.push(cascadeRects)\r\n });\r\n return rects\r\n },\r\n _findRectByName: function(rects, name) {\r\n for (var c = 0; c < rects.length; c++) {\r\n for (var r = 0; r < rects[c].length; r++) {\r\n if (name === rects[c][r]._name) {\r\n return rects[c][r]\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _findIndexByName: function(rects, nodeTitle) {\r\n var index = 0;\r\n for (var c = 0; c < rects.length; c++) {\r\n for (var r = 0; r < rects[c].length; r++) {\r\n if (nodeTitle === rects[c][r]._name) {\r\n return index\r\n }\r\n index++\r\n }\r\n }\r\n return null\r\n },\r\n _computeLinks: function(links, rects, cascades) {\r\n var yOffsets = {};\r\n var paths = [];\r\n var result = [];\r\n cascades.forEach(cascade => {\r\n Object.keys(cascade).forEach(nodeTitle => {\r\n yOffsets[nodeTitle] = {\r\n in: 0,\r\n out: 0\r\n }\r\n })\r\n });\r\n rects.forEach(rectsOfCascade => {\r\n rectsOfCascade.forEach(nodeRect => {\r\n var nodeTitle = nodeRect._name;\r\n var rectFrom = this._findRectByName(rects, nodeTitle);\r\n var linksFromNode = links.filter(link => link[0] === nodeTitle);\r\n linksFromNode.forEach(link => {\r\n link.sort = this._findIndexByName(rects, link[1])\r\n });\r\n linksFromNode.sort((a, b) => a.sort - b.sort).forEach(link => {\r\n var rectTo = this._findRectByName(rects, link[1]);\r\n var height = Math.round(link[2] / this._weightPerPixel);\r\n var yOffsetFrom = yOffsets[link[0]].out;\r\n var yOffsetTo = yOffsets[link[1]].in;\r\n var heightFrom = yOffsets[link[0]].out + height > rectFrom.height ? rectFrom.height - yOffsets[link[0]].out : height;\r\n var heightTo = yOffsets[link[1]].in + height > rectTo.height ? rectTo.height - yOffsets[link[1]].in : height;\r\n paths.push({\r\n from: {\r\n x: rectFrom.x,\r\n y: rectFrom.y + yOffsetFrom,\r\n width: rectFrom.width,\r\n height: heightFrom,\r\n node: rectFrom,\r\n weight: link[2]\r\n },\r\n to: {\r\n x: rectTo.x,\r\n y: rectTo.y + yOffsetTo,\r\n width: rectTo.width,\r\n height: heightTo,\r\n node: rectTo\r\n }\r\n });\r\n yOffsets[link[0]].out += height;\r\n yOffsets[link[1]].in += height\r\n })\r\n })\r\n });\r\n paths.forEach(link => {\r\n var path = {\r\n d: this._spline(link.from, link.to),\r\n _boundingRect: {\r\n x: link.from.x + link.from.width,\r\n y: Math.min(link.from.y, link.to.y),\r\n width: link.to.x - (link.from.x + link.from.width),\r\n height: Math.max(link.from.x + link.from.height, link.to.y + link.to.height) - Math.min(link.from.y, link.to.y)\r\n },\r\n _weight: link.from.weight,\r\n _from: link.from.node,\r\n _to: link.to.node\r\n };\r\n result.push(path)\r\n });\r\n this._fitAllNodesHeight(rects, paths);\r\n return result\r\n },\r\n _fitNodeHeight: function(nodeName, nodeRects, paths) {\r\n var targetRect = this._findRectByName(nodeRects, nodeName);\r\n var heightOfLinksSummaryIn = 0;\r\n var heightOfLinksSummaryOut = 0;\r\n paths.forEach((function(path) {\r\n if (path.from.node._name === nodeName) {\r\n heightOfLinksSummaryOut += path.from.height\r\n }\r\n if (path.to.node._name === nodeName) {\r\n heightOfLinksSummaryIn += path.to.height\r\n }\r\n }));\r\n targetRect.height = Math.max(heightOfLinksSummaryIn, heightOfLinksSummaryOut)\r\n },\r\n _fitAllNodesHeight: function(nodeRects, paths) {\r\n for (var c = 0; c < nodeRects.length; c++) {\r\n for (var r = 0; r < nodeRects[c].length; r++) {\r\n this._fitNodeHeight(nodeRects[c][r]._name, nodeRects, paths)\r\n }\r\n }\r\n },\r\n _spline: function(rectLeft, rectRight) {\r\n var p_UpLeft = {\r\n x: rectLeft.x + rectLeft.width,\r\n y: rectLeft.y\r\n };\r\n var p_DownLeft = {\r\n x: rectLeft.x + rectLeft.width,\r\n y: rectLeft.y + rectLeft.height\r\n };\r\n var p_UpRight = {\r\n x: rectRight.x,\r\n y: rectRight.y\r\n };\r\n var p_DownRight = {\r\n x: rectRight.x,\r\n y: rectRight.y + rectRight.height\r\n };\r\n var curve_width = _SPLINE_TENSION * (p_UpRight.x - p_UpLeft.x);\r\n var result = \"M \".concat(p_UpLeft.x, \" \").concat(p_UpLeft.y, \" C \").concat(p_UpLeft.x + curve_width, \" \").concat(p_UpLeft.y, \" \").concat(p_UpRight.x - curve_width, \" \").concat(p_UpRight.y, \" \").concat(p_UpRight.x, \" \").concat(p_UpRight.y, \" L \").concat(p_DownRight.x, \" \").concat(p_DownRight.y, \" C \").concat(p_DownRight.x - curve_width, \" \").concat(p_DownRight.y, \" \").concat(p_DownLeft.x + curve_width, \" \").concat(p_DownLeft.y, \" \").concat(p_DownLeft.x, \" \").concat(p_DownLeft.y, \" Z\");\r\n return result\r\n },\r\n computeLayout: function(linksData, sortData, options, incidentOccurred) {\r\n this._sort = sortData;\r\n var result = {};\r\n var validateResult = validatorModule.validate(linksData, incidentOccurred);\r\n if (!validateResult) {\r\n result.cascades = this._computeCascades(linksData);\r\n result.nodes = this._computeNodes(result.cascades, {\r\n width: options.availableRect.width,\r\n height: options.availableRect.height,\r\n x: options.availableRect.x,\r\n y: options.availableRect.y,\r\n nodePadding: options.nodePadding,\r\n nodeWidth: options.nodeWidth,\r\n nodeAlign: options.nodeAlign\r\n });\r\n result.links = this._computeLinks(linksData, result.nodes, result.cascades)\r\n } else {\r\n result.error = validateResult\r\n }\r\n return result\r\n },\r\n overlap: function(box1, box2) {\r\n return !(box2.x > box1.x + box1.width || box2.x + box2.width < box1.x || box2.y >= box1.y + box1.height || box2.y + box2.height <= box1.y)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/sankey/sankey.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n COLOR_MODE_GRADIENT,\r\n COLOR_MODE_SOURCE,\r\n COLOR_MODE_TARGET\r\n} from \"./constants\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Node from \"./node_item\";\r\nimport Link from \"./link_item\";\r\nimport {\r\n layout as defaultLayoutBuilder\r\n} from \"./layout\";\r\nimport {\r\n isString as _isString,\r\n isNumeric as _isNumber\r\n} from \"../../core/utils/type\";\r\nimport baseWidget from \"../../__internal/viz/core/m_base_widget\";\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\n\r\nfunction moveLabel(node, labelOptions, availableLabelWidth, rect) {\r\n if (node._label.getBBox().width > availableLabelWidth) {\r\n node.labelText.applyEllipsis(availableLabelWidth)\r\n }\r\n var bBox = node._label.getBBox();\r\n var verticalOffset = labelOptions.verticalOffset;\r\n var horizontalOffset = labelOptions.horizontalOffset;\r\n var labelOffsetY = Math.round(node.rect.y + node.rect.height / 2 - bBox.y - bBox.height / 2) + verticalOffset;\r\n var labelOffsetX = node.rect.x + horizontalOffset + node.rect.width - bBox.x;\r\n if (labelOffsetX + bBox.width >= rect[2] - rect[0]) {\r\n labelOffsetX = node.rect.x - horizontalOffset - bBox.x - bBox.width\r\n }\r\n if (labelOffsetY >= rect[3]) {\r\n labelOffsetY = rect[3]\r\n }\r\n if (labelOffsetY - bBox.height < rect[1]) {\r\n labelOffsetY = node.rect.y - bBox.y + verticalOffset\r\n }\r\n node.labelText.attr({\r\n translateX: labelOffsetX,\r\n translateY: labelOffsetY\r\n })\r\n}\r\n\r\nfunction getConnectedLinks(layout, nodeName, linkType) {\r\n var result = [];\r\n var attrName = \"in\" === linkType ? \"_to\" : \"_from\";\r\n var invertedAttrName = \"in\" === linkType ? \"_from\" : \"_to\";\r\n layout.links.map(link => link[attrName]._name === nodeName).forEach((connected, idx) => {\r\n connected && result.push({\r\n index: idx,\r\n weight: layout.links[idx]._weight,\r\n node: layout.links[idx][invertedAttrName]._name\r\n })\r\n });\r\n return result\r\n}\r\nvar dxSankey = baseWidget.inherit({\r\n _rootClass: \"dxs-sankey\",\r\n _rootClassPrefix: \"dxs\",\r\n _proxyData: [],\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\",\r\n sortData: \"DATA_SOURCE\",\r\n alignment: \"DATA_SOURCE\",\r\n node: \"BUILD_LAYOUT\",\r\n link: \"BUILD_LAYOUT\",\r\n palette: \"BUILD_LAYOUT\",\r\n paletteExtensionMode: \"BUILD_LAYOUT\"\r\n },\r\n _themeDependentChanges: [\"BUILD_LAYOUT\"],\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _themeSection: \"sankey\",\r\n _fontFields: [\"label.font\"],\r\n _optionChangesOrder: [\"DATA_SOURCE\"],\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _initCore: function() {\r\n this._groupLinks = this._renderer.g().append(this._renderer.root);\r\n this._groupNodes = this._renderer.g().append(this._renderer.root);\r\n this._groupLabels = this._renderer.g().attr({\r\n class: this._rootClassPrefix + \"-labels\"\r\n }).append(this._renderer.root);\r\n this._drawLabels = true;\r\n this._nodes = [];\r\n this._links = [];\r\n this._gradients = []\r\n },\r\n _disposeCore: noop,\r\n _applySize: function(rect) {\r\n this._rect = rect.slice();\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n if (adaptiveLayout.keepLabels || this._rect[2] - this._rect[0] > adaptiveLayout.width) {\r\n this._drawLabels = true\r\n } else {\r\n this._drawLabels = false\r\n }\r\n this._change([\"BUILD_LAYOUT\"]);\r\n return this._rect\r\n },\r\n _eventsMap: {\r\n onNodeHoverChanged: {\r\n name: \"nodeHoverChanged\"\r\n },\r\n onLinkHoverChanged: {\r\n name: \"linkHoverChanged\"\r\n }\r\n },\r\n _customChangesOrder: [\"BUILD_LAYOUT\", \"NODES_DRAW\", \"LINKS_DRAW\", \"LABELS\", \"DRAWN\"],\r\n _dataSourceChangedHandler: function() {\r\n this._requestChange([\"BUILD_LAYOUT\"])\r\n },\r\n _change_DRAWN: function() {\r\n this._drawn()\r\n },\r\n _change_DATA_SOURCE: function() {\r\n this._change([\"DRAWN\"]);\r\n this._updateDataSource()\r\n },\r\n _change_LABELS: function() {\r\n this._applyLabelsAppearance()\r\n },\r\n _change_BUILD_LAYOUT: function() {\r\n this._groupNodes.clear();\r\n this._groupLinks.clear();\r\n this._groupLabels.clear();\r\n this._buildLayout()\r\n },\r\n _change_NODES_DRAW: function() {\r\n var that = this;\r\n var nodes = that._nodes;\r\n nodes.forEach((function(node, index) {\r\n var element = that._renderer.rect().attr(node.rect).append(that._groupNodes);\r\n node.element = element\r\n }));\r\n this._applyNodesAppearance()\r\n },\r\n _change_LINKS_DRAW: function() {\r\n var that = this;\r\n var links = that._links;\r\n links.forEach((function(link, index) {\r\n var group = that._renderer.g().attr({\r\n class: \"link\",\r\n \"data-link-idx\": index\r\n }).append(that._groupLinks);\r\n link.overlayElement = that._renderer.path([], \"area\").attr({\r\n d: link.d\r\n }).append(group);\r\n link.element = that._renderer.path([], \"area\").attr({\r\n d: link.d\r\n }).append(group)\r\n }));\r\n this._applyLinksAppearance()\r\n },\r\n _suspend: function() {\r\n if (!this._applyingChanges) {\r\n this._suspendChanges()\r\n }\r\n },\r\n _resume: function() {\r\n if (!this._applyingChanges) {\r\n this._resumeChanges()\r\n }\r\n },\r\n _showTooltip: noop,\r\n hideTooltip: noop,\r\n clearHover: function() {\r\n this._suspend();\r\n this._nodes.forEach((function(node) {\r\n node.isHovered() && node.hover(false)\r\n }));\r\n this._links.forEach((function(link) {\r\n link.isHovered() && link.hover(false);\r\n link.isAdjacentNodeHovered() && link.adjacentNodeHover(false)\r\n }));\r\n this._resume()\r\n },\r\n _applyNodesAppearance: function() {\r\n this._nodes.forEach((function(node) {\r\n var state = node.getState();\r\n node.element.smartAttr(node.states[state])\r\n }))\r\n },\r\n _applyLinksAppearance: function() {\r\n this._links.forEach((function(link) {\r\n var state = link.getState();\r\n link.element.smartAttr(link.states[state]);\r\n link.overlayElement.smartAttr(link.overlayStates[state])\r\n }))\r\n },\r\n _hitTestTargets: function(x, y) {\r\n var that = this;\r\n var data;\r\n this._proxyData.some((function(callback) {\r\n data = callback.call(that, x, y);\r\n if (data) {\r\n return true\r\n }\r\n }));\r\n return data\r\n },\r\n _getData: function() {\r\n var that = this;\r\n var data = that._dataSourceItems() || [];\r\n var sourceField = that._getOption(\"sourceField\", true);\r\n var targetField = that._getOption(\"targetField\", true);\r\n var weightField = that._getOption(\"weightField\", true);\r\n var processedData = [];\r\n data.forEach((function(item) {\r\n var hasItemOwnProperty = Object.prototype.hasOwnProperty.bind(item);\r\n if (!hasItemOwnProperty(sourceField)) {\r\n that._incidentOccurred(\"E2007\", sourceField)\r\n } else if (!hasItemOwnProperty(targetField)) {\r\n that._incidentOccurred(\"E2007\", targetField)\r\n } else if (!hasItemOwnProperty(weightField)) {\r\n that._incidentOccurred(\"E2007\", weightField)\r\n } else if (!_isString(item[sourceField])) {\r\n that._incidentOccurred(\"E2008\", sourceField)\r\n } else if (!_isString(item[targetField])) {\r\n that._incidentOccurred(\"E2008\", targetField)\r\n } else if (!_isNumber(item[weightField]) || item[weightField] <= 0) {\r\n that._incidentOccurred(\"E2009\", weightField)\r\n } else {\r\n processedData.push([item[sourceField], item[targetField], item[weightField]])\r\n }\r\n }));\r\n return processedData\r\n },\r\n _buildLayout: function() {\r\n var that = this;\r\n var data = that._getData();\r\n var availableRect = this._rect;\r\n var nodeOptions = that._getOption(\"node\");\r\n var sortData = that._getOption(\"sortData\");\r\n var layoutBuilder = that._getOption(\"layoutBuilder\", true) || defaultLayoutBuilder;\r\n var rect = {\r\n x: availableRect[0],\r\n y: availableRect[1],\r\n width: availableRect[2] - availableRect[0],\r\n height: availableRect[3] - availableRect[1]\r\n };\r\n var layout = layoutBuilder.computeLayout(data, sortData, {\r\n availableRect: rect,\r\n nodePadding: nodeOptions.padding,\r\n nodeWidth: nodeOptions.width,\r\n nodeAlign: that._getOption(\"alignment\", true)\r\n }, that._incidentOccurred);\r\n that._layoutMap = layout;\r\n if (!Object.prototype.hasOwnProperty.call(layout, \"error\")) {\r\n var nodeColors = {};\r\n var nodeIdx = 0;\r\n var linkOptions = that._getOption(\"link\");\r\n var totalNodesNum = layout.nodes.map(item => item.length).reduce((previousValue, currentValue) => previousValue + currentValue, 0);\r\n var palette = that._themeManager.createPalette(that._getOption(\"palette\", true), {\r\n useHighlight: true,\r\n extensionMode: that._getOption(\"paletteExtensionMode\", true),\r\n count: totalNodesNum\r\n });\r\n that._nodes = [];\r\n that._links = [];\r\n that._gradients.forEach(gradient => {\r\n gradient.dispose()\r\n });\r\n that._gradients = [];\r\n that._shadowFilter && that._shadowFilter.dispose();\r\n layout.nodes.forEach(cascadeNodes => {\r\n cascadeNodes.forEach(node => {\r\n var color = nodeOptions.color || palette.getNextColor();\r\n var nodeItem = new Node(that, {\r\n id: nodeIdx,\r\n color: color,\r\n rect: node,\r\n options: nodeOptions,\r\n linksIn: getConnectedLinks(layout, node._name, \"in\"),\r\n linksOut: getConnectedLinks(layout, node._name, \"out\")\r\n });\r\n that._nodes.push(nodeItem);\r\n nodeIdx++;\r\n nodeColors[node._name] = color\r\n })\r\n });\r\n layout.links.forEach(link => {\r\n var gradient = null;\r\n if (linkOptions.colorMode === COLOR_MODE_GRADIENT) {\r\n gradient = that._renderer.linearGradient([{\r\n offset: \"0%\",\r\n \"stop-color\": nodeColors[link._from._name]\r\n }, {\r\n offset: \"100%\",\r\n \"stop-color\": nodeColors[link._to._name]\r\n }]);\r\n this._gradients.push(gradient)\r\n }\r\n var color = linkOptions.color;\r\n if (linkOptions.colorMode === COLOR_MODE_SOURCE) {\r\n color = nodeColors[link._from._name]\r\n } else if (linkOptions.colorMode === COLOR_MODE_TARGET) {\r\n color = nodeColors[link._to._name]\r\n }\r\n var linkItem = new Link(that, {\r\n d: link.d,\r\n boundingRect: link._boundingRect,\r\n color: color,\r\n options: linkOptions,\r\n connection: {\r\n source: link._from._name,\r\n target: link._to._name,\r\n weight: link._weight\r\n },\r\n gradient: gradient\r\n });\r\n that._links.push(linkItem)\r\n });\r\n that._renderer.initDefsElements();\r\n that._change([\"NODES_DRAW\", \"LINKS_DRAW\", \"LABELS\"])\r\n }\r\n that._change([\"DRAWN\"])\r\n },\r\n _applyLabelsAppearance: function() {\r\n var that = this;\r\n var labelOptions = that._getOption(\"label\");\r\n var availableWidth = that._rect[2] - that._rect[0];\r\n var nodeOptions = that._getOption(\"node\");\r\n that._shadowFilter = that._renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\").attr(labelOptions.shadow);\r\n that._groupLabels.clear();\r\n if (that._drawLabels && labelOptions.visible) {\r\n var availableLabelWidth = (availableWidth - (nodeOptions.width + labelOptions.horizontalOffset) - that._layoutMap.cascades.length * nodeOptions.width) / (that._layoutMap.cascades.length - 1) - labelOptions.horizontalOffset;\r\n that._nodes.forEach((function(node) {\r\n that._createLabel(node, labelOptions, that._shadowFilter.id);\r\n moveLabel(node, labelOptions, availableLabelWidth, that._rect)\r\n }));\r\n if (\"none\" !== labelOptions.overlappingBehavior) {\r\n that._nodes.forEach((function(thisNode) {\r\n var thisBox = thisNode._label.getBBox();\r\n that._nodes.forEach((function(otherNode) {\r\n var otherBox = otherNode._label.getBBox();\r\n if (thisNode.id !== otherNode.id && defaultLayoutBuilder.overlap(thisBox, otherBox)) {\r\n if (\"ellipsis\" === labelOptions.overlappingBehavior) {\r\n thisNode.labelText.applyEllipsis(otherBox.x - thisBox.x)\r\n } else if (\"hide\" === labelOptions.overlappingBehavior) {\r\n thisNode.labelText.remove()\r\n }\r\n }\r\n }))\r\n }))\r\n }\r\n }\r\n },\r\n _createLabel: function(node, labelOptions, filter) {\r\n var textData = labelOptions.customizeText(node);\r\n var settings = node.getLabelAttributes(labelOptions, filter);\r\n if (textData) {\r\n node._label = this._renderer.g().append(this._groupLabels);\r\n node.labelText = this._renderer.text(textData).attr(settings.attr).css(settings.css);\r\n node.labelText.append(node._label)\r\n }\r\n },\r\n _getMinSize: function() {\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n return [adaptiveLayout.width, adaptiveLayout.height]\r\n },\r\n getAllNodes: function() {\r\n return this._nodes.slice()\r\n },\r\n getAllLinks: function() {\r\n return this._links.slice()\r\n }\r\n});\r\ncomponentRegistrator(\"dxSankey\", dxSankey);\r\nexport default dxSankey;\r\nimport {\r\n plugin as pluginDataSource\r\n} from \"../core/data_source\";\r\ndxSankey.addPlugin(pluginDataSource);\r\n","/**\r\n * DevExtreme (esm/viz/sankey/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nvar defaultCustomizeLinkTooltip = formatter => function(info) {\r\n return {\r\n html: \"<strong>\".concat(info.source, \" > \").concat(info.target, \"</strong><br/>Weight: \").concat(formatter(info.weight))\r\n }\r\n};\r\nvar defaultCustomizeNodeTooltip = formatter => function(info) {\r\n return {\r\n html: \"<strong>\".concat(info.label, \"</strong><br/>Incoming weight: \").concat(formatter(info.weightIn), \"<br/>Outgoing weight: \").concat(formatter(info.weightOut))\r\n }\r\n};\r\nvar generateCustomCallback = function(customCallback, defaultCallback) {\r\n return function(objectInfo) {\r\n var res = isFunction(customCallback) ? customCallback.call(objectInfo, objectInfo) : {};\r\n var hasOwnProperty = Object.prototype.hasOwnProperty.bind(res);\r\n if (!hasOwnProperty(\"html\") && !hasOwnProperty(\"text\")) {\r\n res = _extend(res, defaultCallback.call(objectInfo, objectInfo))\r\n }\r\n return res\r\n }\r\n};\r\nexport function setTooltipCustomOptions(sankey) {\r\n sankey.prototype._setTooltipOptions = function() {\r\n var tooltip = this._tooltip;\r\n var options = tooltip && this._getOption(\"tooltip\");\r\n var linkTemplate;\r\n var nodeTemplate;\r\n if (options.linkTooltipTemplate) {\r\n linkTemplate = this._getTemplate(options.linkTooltipTemplate)\r\n }\r\n if (options.nodeTooltipTemplate) {\r\n nodeTemplate = this._getTemplate(options.nodeTooltipTemplate)\r\n }\r\n tooltip && tooltip.update(_extend({}, options, {\r\n customizeTooltip: function(args) {\r\n if (!(linkTemplate && \"link\" === args.type || nodeTemplate && \"node\" === args.type)) {\r\n args.skipTemplate = true\r\n }\r\n var formatter = value => tooltip.formatValue(value);\r\n if (\"node\" === args.type) {\r\n return generateCustomCallback(options.customizeNodeTooltip, defaultCustomizeNodeTooltip(formatter))(args.info)\r\n } else if (\"link\" === args.type) {\r\n return generateCustomCallback(options.customizeLinkTooltip, defaultCustomizeLinkTooltip(formatter))(args.info)\r\n }\r\n return {}\r\n },\r\n contentTemplate(arg, div) {\r\n var templateArgs = {\r\n model: arg.info,\r\n container: div\r\n };\r\n if (linkTemplate && \"link\" === arg.type) {\r\n return linkTemplate.render(templateArgs)\r\n }\r\n if (nodeTemplate && \"node\" === arg.type) {\r\n return nodeTemplate.render(templateArgs)\r\n }\r\n },\r\n enabled: options.enabled\r\n }))\r\n };\r\n sankey.prototype.hideTooltip = function() {\r\n this._tooltip && this._tooltip.hide()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/sankey/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Sankey from \"./sankey\";\r\nimport {\r\n Tracker\r\n} from \"../components/tracker\";\r\nvar proto = Sankey.prototype;\r\nvar DATA_KEY_BASE = \"__sankey_data_\";\r\nvar dataKeyModifier = 0;\r\nproto._eventsMap.onNodeClick = {\r\n name: \"nodeClick\"\r\n};\r\nproto._eventsMap.onLinkClick = {\r\n name: \"linkClick\"\r\n};\r\nvar getDataKey = function() {\r\n return DATA_KEY_BASE + dataKeyModifier++\r\n};\r\nexport var plugin = {\r\n name: \"tracker\",\r\n init: function() {\r\n var that = this;\r\n var dataKey = getDataKey();\r\n that._tracker = new Tracker({\r\n widget: that,\r\n root: that._renderer.root,\r\n getData: function(e) {\r\n var target = e.target;\r\n return target[dataKey]\r\n },\r\n getNode: function(index) {\r\n if (index < that._nodes.length) {\r\n return that._nodes[index]\r\n } else {\r\n return that._links[index - that._nodes.length]\r\n }\r\n },\r\n click: function(e) {\r\n var eventName = this.getData(e.event) < that._nodes.length ? \"nodeClick\" : \"linkClick\";\r\n that._eventTrigger(eventName, {\r\n target: e.node,\r\n event: e.event\r\n })\r\n }\r\n });\r\n this._dataKey = dataKey\r\n },\r\n dispose: function() {\r\n this._tracker.dispose()\r\n },\r\n extenders: {\r\n _change_LINKS_DRAW: function() {\r\n var dataKey = this._dataKey;\r\n this._nodes.concat(this._links).forEach((function(item, index) {\r\n item.element.data(dataKey, index)\r\n }))\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/sankey.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxSankey from \"./sankey/sankey\";\r\nimport {\r\n setTooltipCustomOptions\r\n} from \"./sankey/tooltip\";\r\nimport {\r\n plugin as pluginExport\r\n} from \"./core/export\";\r\nimport {\r\n plugin as pluginTitle\r\n} from \"./core/title\";\r\nimport {\r\n plugin as pluginTracker\r\n} from \"./sankey/tracker\";\r\nimport {\r\n plugin as pluginTooltip\r\n} from \"./core/tooltip\";\r\nimport {\r\n plugin as pluginLoadingIndicator\r\n} from \"./core/loading_indicator\";\r\ndxSankey.addPlugin(pluginExport);\r\ndxSankey.addPlugin(pluginTitle);\r\ndxSankey.addPlugin(pluginTracker);\r\ndxSankey.addPlugin(pluginLoadingIndicator);\r\ndxSankey.addPlugin(pluginTooltip);\r\nsetTooltipCustomOptions(dxSankey);\r\nexport default dxSankey;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxSankey from 'devextreme/viz/sankey';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAdaptiveLayoutModule, DxoExportModule, DxoLabelModule, DxoBorderModule, DxoFontModule, DxoShadowModule, DxoLinkModule, DxoHoverStyleModule, DxoHatchingModule, DxoLoadingIndicatorModule, DxoMarginModule, DxoNodeModule, DxoSizeModule, DxoTitleModule, DxoSubtitleModule, DxoTooltipModule, DxoFormatModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxSankey]\r\n\r\n */\r\nclass DxSankeyComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'linkClick', emit: 'onLinkClick' },\r\n { subscribe: 'linkHoverChanged', emit: 'onLinkHoverChanged' },\r\n { subscribe: 'nodeClick', emit: 'onNodeClick' },\r\n { subscribe: 'nodeHoverChanged', emit: 'onNodeHoverChanged' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'adaptiveLayoutChange' },\r\n { emit: 'alignmentChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'hoverEnabledChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'linkChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'nodeChange' },\r\n { emit: 'paletteChange' },\r\n { emit: 'paletteExtensionModeChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'sortDataChange' },\r\n { emit: 'sourceFieldChange' },\r\n { emit: 'targetFieldChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'weightFieldChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.adaptiveLayout]\r\n \r\n */\r\n get adaptiveLayout() {\r\n return this._getOption('adaptiveLayout');\r\n }\r\n set adaptiveLayout(value) {\r\n this._setOption('adaptiveLayout', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.alignment]\r\n \r\n */\r\n get alignment() {\r\n return this._getOption('alignment');\r\n }\r\n set alignment(value) {\r\n this._setOption('alignment', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.hoverEnabled]\r\n \r\n */\r\n get hoverEnabled() {\r\n return this._getOption('hoverEnabled');\r\n }\r\n set hoverEnabled(value) {\r\n this._setOption('hoverEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.link]\r\n \r\n */\r\n get link() {\r\n return this._getOption('link');\r\n }\r\n set link(value) {\r\n this._setOption('link', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.node]\r\n \r\n */\r\n get node() {\r\n return this._getOption('node');\r\n }\r\n set node(value) {\r\n this._setOption('node', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.palette]\r\n \r\n */\r\n get palette() {\r\n return this._getOption('palette');\r\n }\r\n set palette(value) {\r\n this._setOption('palette', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.paletteExtensionMode]\r\n \r\n */\r\n get paletteExtensionMode() {\r\n return this._getOption('paletteExtensionMode');\r\n }\r\n set paletteExtensionMode(value) {\r\n this._setOption('paletteExtensionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.sortData]\r\n \r\n */\r\n get sortData() {\r\n return this._getOption('sortData');\r\n }\r\n set sortData(value) {\r\n this._setOption('sortData', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.sourceField]\r\n \r\n */\r\n get sourceField() {\r\n return this._getOption('sourceField');\r\n }\r\n set sourceField(value) {\r\n this._setOption('sourceField', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.targetField]\r\n \r\n */\r\n get targetField() {\r\n return this._getOption('targetField');\r\n }\r\n set targetField(value) {\r\n this._setOption('targetField', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxSankeyOptions.weightField]\r\n \r\n */\r\n get weightField() {\r\n return this._getOption('weightField');\r\n }\r\n set weightField(value) {\r\n this._setOption('weightField', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxSankey(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('alignment', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('palette', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('alignment');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('palette');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSankeyComponent.ɵfac = function DxSankeyComponent_Factory(t) { return new (t || DxSankeyComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSankeyComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSankeyComponent, selectors: [[\"dx-sankey\"]], inputs: { adaptiveLayout: \"adaptiveLayout\", alignment: \"alignment\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", hoverEnabled: \"hoverEnabled\", label: \"label\", link: \"link\", loadingIndicator: \"loadingIndicator\", margin: \"margin\", node: \"node\", palette: \"palette\", paletteExtensionMode: \"paletteExtensionMode\", pathModified: \"pathModified\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", size: \"size\", sortData: \"sortData\", sourceField: \"sourceField\", targetField: \"targetField\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", weightField: \"weightField\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onLinkClick: \"onLinkClick\", onLinkHoverChanged: \"onLinkHoverChanged\", onNodeClick: \"onNodeClick\", onNodeHoverChanged: \"onNodeHoverChanged\", onOptionChanged: \"onOptionChanged\", adaptiveLayoutChange: \"adaptiveLayoutChange\", alignmentChange: \"alignmentChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", hoverEnabledChange: \"hoverEnabledChange\", labelChange: \"labelChange\", linkChange: \"linkChange\", loadingIndicatorChange: \"loadingIndicatorChange\", marginChange: \"marginChange\", nodeChange: \"nodeChange\", paletteChange: \"paletteChange\", paletteExtensionModeChange: \"paletteExtensionModeChange\", pathModifiedChange: \"pathModifiedChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", sizeChange: \"sizeChange\", sortDataChange: \"sortDataChange\", sourceFieldChange: \"sourceFieldChange\", targetFieldChange: \"targetFieldChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", weightFieldChange: \"weightFieldChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSankeyComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSankeyComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-sankey',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adaptiveLayout: [{\r\n type: Input\r\n }], alignment: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], hoverEnabled: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], link: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], node: [{\r\n type: Input\r\n }], palette: [{\r\n type: Input\r\n }], paletteExtensionMode: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], sortData: [{\r\n type: Input\r\n }], sourceField: [{\r\n type: Input\r\n }], targetField: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], weightField: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onLinkClick: [{\r\n type: Output\r\n }], onLinkHoverChanged: [{\r\n type: Output\r\n }], onNodeClick: [{\r\n type: Output\r\n }], onNodeHoverChanged: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], adaptiveLayoutChange: [{\r\n type: Output\r\n }], alignmentChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], hoverEnabledChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], linkChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], nodeChange: [{\r\n type: Output\r\n }], paletteChange: [{\r\n type: Output\r\n }], paletteExtensionModeChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], sortDataChange: [{\r\n type: Output\r\n }], sourceFieldChange: [{\r\n type: Output\r\n }], targetFieldChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], weightFieldChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxSankeyModule {\r\n}\r\n/** @nocollapse */ DxSankeyModule.ɵfac = function DxSankeyModule_Factory(t) { return new (t || DxSankeyModule)(); };\r\n/** @nocollapse */ DxSankeyModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSankeyModule });\r\n/** @nocollapse */ DxSankeyModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSankeyModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSankeyComponent\r\n ],\r\n exports: [\r\n DxSankeyComponent,\r\n DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSankeyModule, { declarations: [DxSankeyComponent], imports: [DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSankeyComponent, DxoAdaptiveLayoutModule,\r\n DxoExportModule,\r\n DxoLabelModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoShadowModule,\r\n DxoLinkModule,\r\n DxoHoverStyleModule,\r\n DxoHatchingModule,\r\n DxoLoadingIndicatorModule,\r\n DxoMarginModule,\r\n DxoNodeModule,\r\n DxoSizeModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSankeyComponent, DxSankeyModule };\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../../core/utils/type\";\r\nimport dateUtils from \"../../../../../core/utils/date\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DAY_HOURS = 24;\r\nvar getDurationInHours = (startDate, endDate) => Math.floor((endDate.getTime() - startDate.getTime()) / toMs(\"hour\"));\r\nexport var getAppointmentTakesAllDay = (appointmentAdapter, allDayPanelMode) => {\r\n var {\r\n allDay: allDay,\r\n endDate: endDate,\r\n startDate: startDate\r\n } = appointmentAdapter;\r\n switch (allDayPanelMode) {\r\n case \"hidden\":\r\n return false;\r\n case \"allDay\":\r\n return allDay;\r\n case \"all\":\r\n default:\r\n if (allDay) {\r\n return true\r\n }\r\n if (!isDefined(endDate)) {\r\n return false\r\n }\r\n return getDurationInHours(startDate, endDate) >= DAY_HOURS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/model/untyped_getCurrentView.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nvar VIEW_TYPES = [\"day\", \"week\", \"workWeek\", \"month\", \"timelineDay\", \"timelineWeek\", \"timelineWorkWeek\", \"timelineMonth\", \"agenda\"];\r\nexport var renovationGetCurrentView = (currentView, views) => {\r\n var currentViewProps = views.find(view => {\r\n var names = isObject(view) ? [view.name, view.type] : [view];\r\n if (names.includes(currentView)) {\r\n return true\r\n }\r\n return false\r\n });\r\n if (void 0 === currentViewProps) {\r\n if (VIEW_TYPES.includes(currentView)) {\r\n currentViewProps = currentView\r\n } else {\r\n [currentViewProps] = views\r\n }\r\n }\r\n return currentViewProps\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/timeZoneCalculator/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n PathTimeZoneConversion\r\n} from \"./types\";\r\nvar MS_IN_MINUTE = 6e4;\r\nvar MS_IN_HOUR = 60 * MS_IN_MINUTE;\r\nexport class TimeZoneCalculator {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n createDate(sourceDate, info) {\r\n var date = new Date(sourceDate);\r\n switch (info.path) {\r\n case PathTimeZoneConversion.fromSourceToAppointment:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, true, false);\r\n case PathTimeZoneConversion.fromAppointmentToSource:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, true, true);\r\n case PathTimeZoneConversion.fromSourceToGrid:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, false, false);\r\n case PathTimeZoneConversion.fromGridToSource:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, false, true);\r\n default:\r\n throw new Error(\"not specified pathTimeZoneConversion\")\r\n }\r\n }\r\n getOffsets(date, appointmentTimezone) {\r\n var clientOffset = -this.getClientOffset(date) / dateUtils.dateToMilliseconds(\"hour\");\r\n var commonOffset = this.getCommonOffset(date);\r\n var appointmentOffset = this.getAppointmentOffset(date, appointmentTimezone);\r\n return {\r\n client: clientOffset,\r\n common: !isDefined(commonOffset) ? clientOffset : commonOffset,\r\n appointment: \"number\" !== typeof appointmentOffset ? clientOffset : appointmentOffset\r\n }\r\n }\r\n getConvertedDateByOffsets(date, clientOffset, targetOffset, isBack) {\r\n var direction = isBack ? -1 : 1;\r\n var resultDate = new Date(date);\r\n resultDate.setMinutes(resultDate.getMinutes() - direction * (60 * clientOffset));\r\n resultDate.setMinutes(resultDate.getMinutes() + direction * (60 * targetOffset));\r\n return new Date(resultDate)\r\n }\r\n getOriginStartDateOffsetInMs(date, timezone, isUTCDate) {\r\n var offsetInHours = this.getOffsetInHours(date, timezone, isUTCDate);\r\n return offsetInHours * MS_IN_HOUR\r\n }\r\n getOffsetInHours(date, timezone, isUTCDate) {\r\n var {\r\n appointment: appointment,\r\n client: client,\r\n common: common\r\n } = this.getOffsets(date, timezone);\r\n if (!!timezone && isUTCDate) {\r\n return appointment - client\r\n }\r\n if (!!timezone && !isUTCDate) {\r\n return appointment - common\r\n }\r\n if (!timezone && isUTCDate) {\r\n return common - client\r\n }\r\n return 0\r\n }\r\n getClientOffset(date) {\r\n return this.options.getClientOffset(date)\r\n }\r\n getCommonOffset(date) {\r\n return this.options.tryGetCommonOffset(date)\r\n }\r\n getAppointmentOffset(date, appointmentTimezone) {\r\n return this.options.tryGetAppointmentOffset(date, appointmentTimezone)\r\n }\r\n getConvertedDate(date, appointmentTimezone, useAppointmentTimeZone, isBack) {\r\n var newDate = new Date(date.getTime());\r\n var offsets = this.getOffsets(newDate, appointmentTimezone);\r\n if (useAppointmentTimeZone && !!appointmentTimezone) {\r\n return this.getConvertedDateByOffsets(date, offsets.client, offsets.appointment, isBack)\r\n }\r\n return this.getConvertedDateByOffsets(date, offsets.client, offsets.common, isBack)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/scheduler/utils.timeZone.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport timezoneUtils from \"../../__internal/scheduler/m_utils_time_zone\";\r\nexport default timezoneUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_expression_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport var ExpressionUtils = {\r\n getField: (dataAccessors, field, obj) => {\r\n if (!isDefined(dataAccessors.getter[field])) {\r\n return\r\n }\r\n return dataAccessors.getter[field](obj)\r\n },\r\n setField: (dataAccessors, field, obj, value) => {\r\n if (!isDefined(dataAccessors.setter[field])) {\r\n return\r\n }\r\n dataAccessors.setter[field](obj, value);\r\n return obj\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nexport var compareDateWithStartDayHour = (startDate, endDate, startDayHour, allDay, severalDays) => {\r\n var startTime = dateUtils.dateTimeFromDecimal(startDayHour);\r\n var result = startDate.getHours() >= startTime.hours && startDate.getMinutes() >= startTime.minutes || endDate.getHours() === startTime.hours && endDate.getMinutes() > startTime.minutes || endDate.getHours() > startTime.hours || severalDays || allDay;\r\n return result\r\n};\r\nexport var compareDateWithEndDayHour = options => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n allDay: allDay,\r\n severalDays: severalDays,\r\n min: min,\r\n max: max,\r\n checkIntersectViewport: checkIntersectViewport\r\n } = options;\r\n var hiddenInterval = (24 - viewEndDayHour + viewStartDayHour) * toMs(\"hour\");\r\n var apptDuration = endDate.getTime() - startDate.getTime();\r\n var delta = (hiddenInterval - apptDuration) / toMs(\"hour\");\r\n var apptStartHour = startDate.getHours();\r\n var apptStartMinutes = startDate.getMinutes();\r\n var result;\r\n var endTime = dateUtils.dateTimeFromDecimal(endDayHour);\r\n var startTime = dateUtils.dateTimeFromDecimal(startDayHour);\r\n var apptIntersectViewport = startDate < max && endDate > min;\r\n result = checkIntersectViewport && apptIntersectViewport || apptStartHour < endTime.hours || apptStartHour === endTime.hours && apptStartMinutes < endTime.minutes || allDay && startDate <= max || severalDays && apptIntersectViewport && (apptStartHour < endTime.hours || 60 * endDate.getHours() + endDate.getMinutes() > 60 * startTime.hours);\r\n if (apptDuration < hiddenInterval) {\r\n if (apptStartHour > endTime.hours && apptStartMinutes > endTime.minutes && delta <= apptStartHour - endDayHour) {\r\n result = false\r\n }\r\n }\r\n return result\r\n};\r\nexport var getAppointmentTakesSeveralDays = adapter => !dateUtils.sameDate(adapter.startDate, adapter.endDate);\r\nexport var _isEndDateWrong = (startDate, endDate) => !endDate || isNaN(endDate.getTime()) || startDate.getTime() > endDate.getTime();\r\nexport var _appointmentPartInInterval = (startDate, endDate, startDayHour, endDayHour) => {\r\n var apptStartDayHour = startDate.getHours();\r\n var apptEndDayHour = endDate.getHours();\r\n return apptStartDayHour <= startDayHour && apptEndDayHour <= endDayHour && apptEndDayHour >= startDayHour || apptEndDayHour >= endDayHour && apptStartDayHour <= endDayHour && apptStartDayHour >= startDayHour\r\n};\r\nexport var getRecurrenceException = (appointmentAdapter, timeZoneCalculator, timeZone) => {\r\n var {\r\n recurrenceException: recurrenceException\r\n } = appointmentAdapter;\r\n if (recurrenceException) {\r\n var exceptions = recurrenceException.split(\",\");\r\n for (var i = 0; i < exceptions.length; i++) {\r\n exceptions[i] = _convertRecurrenceException(exceptions[i], appointmentAdapter.startDate, timeZoneCalculator, timeZone)\r\n }\r\n return exceptions.join()\r\n }\r\n return recurrenceException\r\n};\r\nexport var _convertRecurrenceException = (exceptionString, startDate, timeZoneCalculator, timeZone) => {\r\n exceptionString = exceptionString.replace(/\\s/g, \"\");\r\n var getConvertedToTimeZone = date => timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var exceptionDate = dateSerialization.deserializeDate(exceptionString);\r\n var convertedStartDate = getConvertedToTimeZone(startDate);\r\n var convertedExceptionDate = getConvertedToTimeZone(exceptionDate);\r\n convertedExceptionDate = timeZoneUtils.correctRecurrenceExceptionByTimezone(convertedExceptionDate, convertedStartDate, timeZone);\r\n exceptionString = dateSerialization.serializeDate(convertedExceptionDate, FULL_DATE_FORMAT);\r\n return exceptionString\r\n};\r\nexport var replaceWrongEndDate = (rawAppointment, startDate, endDate, appointmentDuration, dataAccessors) => {\r\n if (_isEndDateWrong(startDate, endDate)) {\r\n var isAllDay = ExpressionUtils.getField(dataAccessors, \"allDay\", rawAppointment);\r\n var calculatedEndDate = ((isAllDay, startDate) => {\r\n if (isAllDay) {\r\n return dateUtils.setToDayEnd(new Date(startDate))\r\n }\r\n return new Date(startDate.getTime() + appointmentDuration * toMs(\"minute\"))\r\n })(isAllDay, startDate);\r\n dataAccessors.setter.endDate(rawAppointment, calculatedEndDate)\r\n }\r\n};\r\nexport var sortAppointmentsByStartDate = (appointments, dataAccessors) => {\r\n appointments.sort((a, b) => {\r\n var firstDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", a.settings || a));\r\n var secondDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", b.settings || b));\r\n return Math.sign(firstDate.getTime() - secondDate.getTime())\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointment_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n ExpressionUtils\r\n} from \"./m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nvar PROPERTY_NAMES = {\r\n startDate: \"startDate\",\r\n endDate: \"endDate\",\r\n allDay: \"allDay\",\r\n text: \"text\",\r\n description: \"description\",\r\n startDateTimeZone: \"startDateTimeZone\",\r\n endDateTimeZone: \"endDateTimeZone\",\r\n recurrenceRule: \"recurrenceRule\",\r\n recurrenceException: \"recurrenceException\",\r\n disabled: \"disabled\"\r\n};\r\nclass AppointmentAdapter {\r\n constructor(rawAppointment, dataAccessors, timeZoneCalculator, options) {\r\n this.rawAppointment = rawAppointment;\r\n this.dataAccessors = dataAccessors;\r\n this.timeZoneCalculator = timeZoneCalculator;\r\n this.options = options\r\n }\r\n get duration() {\r\n return this.endDate ? this.endDate - this.startDate : 0\r\n }\r\n get startDate() {\r\n var result = this.getField(PROPERTY_NAMES.startDate);\r\n return void 0 === result ? result : new Date(result)\r\n }\r\n set startDate(value) {\r\n this.setField(PROPERTY_NAMES.startDate, value)\r\n }\r\n get endDate() {\r\n var result = this.getField(PROPERTY_NAMES.endDate);\r\n return void 0 === result ? result : new Date(result)\r\n }\r\n set endDate(value) {\r\n this.setField(PROPERTY_NAMES.endDate, value)\r\n }\r\n get allDay() {\r\n return this.getField(PROPERTY_NAMES.allDay)\r\n }\r\n set allDay(value) {\r\n this.setField(PROPERTY_NAMES.allDay, value)\r\n }\r\n get text() {\r\n return this.getField(PROPERTY_NAMES.text)\r\n }\r\n set text(value) {\r\n this.setField(PROPERTY_NAMES.text, value)\r\n }\r\n get description() {\r\n return this.getField(PROPERTY_NAMES.description)\r\n }\r\n set description(value) {\r\n this.setField(PROPERTY_NAMES.description, value)\r\n }\r\n get startDateTimeZone() {\r\n return this.getField(PROPERTY_NAMES.startDateTimeZone)\r\n }\r\n get endDateTimeZone() {\r\n return this.getField(PROPERTY_NAMES.endDateTimeZone)\r\n }\r\n get recurrenceRule() {\r\n return this.getField(PROPERTY_NAMES.recurrenceRule)\r\n }\r\n set recurrenceRule(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceRule, value)\r\n }\r\n get recurrenceException() {\r\n return this.getField(PROPERTY_NAMES.recurrenceException)\r\n }\r\n set recurrenceException(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceException, value)\r\n }\r\n get disabled() {\r\n return !!this.getField(PROPERTY_NAMES.disabled)\r\n }\r\n get isRecurrent() {\r\n return getRecurrenceProcessor().isValidRecurrenceRule(this.recurrenceRule)\r\n }\r\n getField(property) {\r\n return ExpressionUtils.getField(this.dataAccessors, property, this.rawAppointment)\r\n }\r\n setField(property, value) {\r\n return ExpressionUtils.setField(this.dataAccessors, property, this.rawAppointment, value)\r\n }\r\n calculateStartDate(pathTimeZoneConversion) {\r\n if (!this.startDate || isNaN(this.startDate.getTime())) {\r\n throw errors.Error(\"E1032\", this.text)\r\n }\r\n return this.calculateDate(this.startDate, this.startDateTimeZone, pathTimeZoneConversion)\r\n }\r\n calculateEndDate(pathTimeZoneConversion) {\r\n return this.calculateDate(this.endDate, this.endDateTimeZone, pathTimeZoneConversion)\r\n }\r\n calculateDate(date, appointmentTimeZone, pathTimeZoneConversion) {\r\n if (!date) {\r\n return\r\n }\r\n return this.timeZoneCalculator.createDate(date, {\r\n appointmentTimeZone: appointmentTimeZone,\r\n path: pathTimeZoneConversion\r\n })\r\n }\r\n clone() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var result = new AppointmentAdapter(deepExtendArraySafe({}, this.rawAppointment), this.dataAccessors, this.timeZoneCalculator, options);\r\n if (null === options || void 0 === options ? void 0 : options.pathTimeZone) {\r\n result.startDate = result.calculateStartDate(options.pathTimeZone);\r\n result.endDate = result.calculateEndDate(options.pathTimeZone)\r\n }\r\n return result\r\n }\r\n source() {\r\n var serializeDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (serializeDate) {\r\n var clonedAdapter = this.clone();\r\n clonedAdapter.startDate = this.startDate;\r\n clonedAdapter.endDate = this.endDate;\r\n return clonedAdapter.source()\r\n }\r\n return extend({}, this.rawAppointment)\r\n }\r\n}\r\nexport default AppointmentAdapter;\r\nexport var createAppointmentAdapter = (rawAppointment, dataAccessors, timeZoneCalculator, options) => new AppointmentAdapter(rawAppointment, dataAccessors, timeZoneCalculator, options);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/utils/recurrence/excludeFromRecurrence.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../../../../__internal/scheduler/m_appointment_adapter\";\r\nimport dateSerialization from \"../../../../../core/utils/date_serialization\";\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nvar UTC_FULL_DATE_FORMAT = \"\".concat(FULL_DATE_FORMAT, \"Z\");\r\nvar getSerializedDate = (date, startDate, isAllDay) => {\r\n if (isAllDay) {\r\n date.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds(), startDate.getMilliseconds())\r\n }\r\n return dateSerialization.serializeDate(date, UTC_FULL_DATE_FORMAT)\r\n};\r\nvar createRecurrenceException = (appointmentAdapter, exceptionDate) => {\r\n var result = [];\r\n if (appointmentAdapter.recurrenceException) {\r\n result.push(appointmentAdapter.recurrenceException)\r\n }\r\n result.push(getSerializedDate(exceptionDate, appointmentAdapter.startDate, appointmentAdapter.allDay));\r\n return result.join()\r\n};\r\nexport var excludeFromRecurrence = (appointment, exceptionDate, dataAccessors, timeZoneCalculator) => {\r\n var appointmentAdapter = createAppointmentAdapter(_extends({}, appointment), dataAccessors, timeZoneCalculator);\r\n appointmentAdapter.recurrenceException = createRecurrenceException(appointmentAdapter, exceptionDate);\r\n return appointmentAdapter\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_classes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var FIXED_CONTAINER_CLASS = \"dx-scheduler-fixed-appointments\";\r\nexport var REDUCED_APPOINTMENT_CLASS = \"dx-scheduler-appointment-reduced\";\r\nexport var REDUCED_APPOINTMENT_ICON = \"dx-scheduler-appointment-reduced-icon\";\r\nexport var RECURRENCE_APPOINTMENT_CLASS = \"dx-scheduler-appointment-recurrence\";\r\nexport var EMPTY_APPOINTMENT_CLASS = \"dx-scheduler-appointment-empty\";\r\nexport var ALL_DAY_APPOINTMENT_CLASS = \"dx-scheduler-all-day-appointment\";\r\nexport var REDUCED_APPOINTMENT_PARTS_CLASSES = {\r\n head: \"dx-scheduler-appointment-head\",\r\n body: \"dx-scheduler-appointment-body\",\r\n tail: \"dx-scheduler-appointment-tail\"\r\n};\r\nexport var DIRECTION_APPOINTMENT_CLASSES = {\r\n horizontal: \"dx-scheduler-appointment-horizontal\",\r\n vertical: \"dx-scheduler-appointment-vertical\"\r\n};\r\nexport var APPOINTMENT_DRAG_SOURCE_CLASS = \"dx-scheduler-appointment-drag-source\";\r\nexport var APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nexport var APPOINTMENT_CONTENT_CLASSES = {\r\n APPOINTMENT_CONTENT_DETAILS: \"dx-scheduler-appointment-content-details\",\r\n RECURRING_ICON: \"dx-scheduler-appointment-recurrence-icon\",\r\n APPOINTMENT_TITLE: \"dx-scheduler-appointment-title\",\r\n APPOINTMENT_DATE: \"dx-scheduler-appointment-content-date\",\r\n ALL_DAY_CONTENT: \"dx-scheduler-appointment-content-allday\",\r\n ITEM: \"dx-scheduler-appointment\",\r\n STRIP: \"dx-scheduler-appointment-strip\",\r\n AGENDA_MARKER: \"dx-scheduler-agenda-appointment-marker\",\r\n AGENDA_RESOURCE_LIST: \"dx-scheduler-appointment-resource-list\",\r\n AGENDA_RESOURCE_LIST_ITEM: \"dx-scheduler-appointment-resource-item\",\r\n AGENDA_RESOURCE_LIST_ITEM_VALUE: \"dx-scheduler-appointment-resource-item-value\"\r\n};\r\nexport var AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = \"dx-scheduler-last-in-date-agenda-appointment\";\r\nexport var APPOINTMENT_HAS_RESOURCE_COLOR_CLASS = \"dx-scheduler-appointment-has-resource-color\";\r\nexport var HEADER_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-header-panel-current-time-cell\";\r\nexport var VIRTUAL_CELL_CLASS = \"dx-scheduler-virtual-cell\";\r\nexport var TIME_PANEL_CLASS = \"dx-scheduler-time-panel\";\r\nexport var DATE_TABLE_CLASS = \"dx-scheduler-date-table\";\r\nexport var DATE_TABLE_ROW_CLASS = \"dx-scheduler-date-table-row\";\r\nexport var GROUP_ROW_CLASS = \"dx-scheduler-group-row\";\r\nexport var GROUP_HEADER_CONTENT_CLASS = \"dx-scheduler-group-header-content\";\r\nexport var LAST_GROUP_CELL_CLASS = \"dx-scheduler-last-group-cell\";\r\nexport var FIRST_GROUP_CELL_CLASS = \"dx-scheduler-first-group-cell\";\r\nexport var VERTICAL_GROUP_COUNT_CLASSES = [\"dx-scheduler-group-column-count-one\", \"dx-scheduler-group-column-count-two\", \"dx-scheduler-group-column-count-three\"];\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_constants.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nexport var LIST_ITEM_CLASS = \"dx-list-item\";\r\nexport var APPOINTMENT_SETTINGS_KEY = \"dxAppointmentSettings\";\r\nexport var HORIZONTAL_GROUP_ORIENTATION = \"horizontal\";\r\nexport var VIEWS = {\r\n DAY: \"day\",\r\n WEEK: \"week\",\r\n WORK_WEEK: \"workWeek\",\r\n MONTH: \"month\",\r\n TIMELINE_DAY: \"timelineDay\",\r\n TIMELINE_WEEK: \"timelineWeek\",\r\n TIMELINE_WORK_WEEK: \"timelineWorkWeek\",\r\n TIMELINE_MONTH: \"timelineMonth\",\r\n AGENDA: \"agenda\"\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/resources/hasResourceValue.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nexport var hasResourceValue = (resourceValues, itemValue) => isDefined(resourceValues.find(value => equalByValue(value, itemValue)));\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/resources/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n wrapToArray\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../core/utils/object\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../data/data_source/utils\";\r\nimport {\r\n hasResourceValue\r\n} from \"../../../renovation/ui/scheduler/resources/hasResourceValue\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nexport var getValueExpr = resource => resource.valueExpr || \"id\";\r\nexport var getDisplayExpr = resource => resource.displayExpr || \"text\";\r\nexport var getFieldExpr = resource => resource.fieldExpr || resource.field;\r\nexport var getWrappedDataSource = dataSource => {\r\n if (dataSource instanceof DataSource) {\r\n return dataSource\r\n }\r\n var result = _extends(_extends({}, normalizeDataSourceOptions(dataSource)), {\r\n pageSize: 0\r\n });\r\n if (!Array.isArray(dataSource)) {\r\n result.filter = dataSource.filter\r\n }\r\n return new DataSource(result)\r\n};\r\nexport var createResourcesTree = groups => {\r\n var leafIndex = 0;\r\n var make = (group, groupIndex, result, parent) => {\r\n var _a;\r\n result = result || [];\r\n for (var itemIndex = 0; itemIndex < group.items.length; itemIndex++) {\r\n var currentGroupItem = group.items[itemIndex];\r\n var resultItem = {\r\n name: group.name,\r\n value: currentGroupItem.id,\r\n title: currentGroupItem.text,\r\n data: null === (_a = group.data) || void 0 === _a ? void 0 : _a[itemIndex],\r\n children: [],\r\n parent: parent || null\r\n };\r\n var nextGroupIndex = groupIndex + 1;\r\n if (groups[nextGroupIndex]) {\r\n make(groups[nextGroupIndex], nextGroupIndex, resultItem.children, resultItem)\r\n }\r\n if (!resultItem.children.length) {\r\n resultItem.leafIndex = leafIndex;\r\n leafIndex++\r\n }\r\n result.push(resultItem)\r\n }\r\n return result\r\n };\r\n return make(groups[0], 0)\r\n};\r\nexport var getPathToLeaf = (leafIndex, groups) => {\r\n var tree = createResourcesTree(groups);\r\n var findLeafByIndex = (data, index) => {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].leafIndex === index) {\r\n return data[i]\r\n }\r\n var _leaf = findLeafByIndex(data[i].children, index);\r\n if (_leaf) {\r\n return _leaf\r\n }\r\n }\r\n };\r\n var makeBranch = (leaf, result) => {\r\n result = result || [];\r\n result.push(leaf.value);\r\n if (leaf.parent) {\r\n makeBranch(leaf.parent, result)\r\n }\r\n return result\r\n };\r\n var leaf = findLeafByIndex(tree, leafIndex);\r\n return makeBranch(leaf).reverse()\r\n};\r\nexport var getCellGroups = (groupIndex, groups) => {\r\n var result = [];\r\n if (getGroupCount(groups)) {\r\n if (groupIndex < 0) {\r\n return\r\n }\r\n var path = getPathToLeaf(groupIndex, groups);\r\n for (var i = 0; i < groups.length; i++) {\r\n result.push({\r\n name: groups[i].name,\r\n id: path[i]\r\n })\r\n }\r\n }\r\n return result\r\n};\r\nexport var getGroupCount = groups => {\r\n var result = 0;\r\n for (var i = 0, len = groups.length; i < len; i++) {\r\n if (!i) {\r\n result = groups[i].items.length\r\n } else {\r\n result *= groups[i].items.length\r\n }\r\n }\r\n return result\r\n};\r\nexport var getGroupsObjectFromGroupsArray = groupsArray => groupsArray.reduce((currentGroups, _ref) => {\r\n var {\r\n name: name,\r\n id: id\r\n } = _ref;\r\n return _extends(_extends({}, currentGroups), {\r\n [name]: id\r\n })\r\n}, {});\r\nexport var getAllGroups = groups => {\r\n var groupCount = getGroupCount(groups);\r\n return [...new Array(groupCount)].map((_, groupIndex) => {\r\n var groupsArray = getCellGroups(groupIndex, groups);\r\n return getGroupsObjectFromGroupsArray(groupsArray)\r\n })\r\n};\r\nexport var getResourceByField = (fieldName, loadedResources) => {\r\n for (var i = 0; i < loadedResources.length; i++) {\r\n var resource = loadedResources[i];\r\n if (resource.name === fieldName) {\r\n return resource.data\r\n }\r\n }\r\n return []\r\n};\r\nexport var createResourceEditorModel = (resources, loadedResources) => resources.map(resource => {\r\n var dataField = getFieldExpr(resource);\r\n var dataSource = getResourceByField(dataField, loadedResources);\r\n return {\r\n editorOptions: {\r\n dataSource: dataSource.length ? dataSource : getWrappedDataSource(resource.dataSource),\r\n displayExpr: getDisplayExpr(resource),\r\n valueExpr: getValueExpr(resource),\r\n stylingMode: isFluent(current()) ? \"filled\" : \"outlined\"\r\n },\r\n dataField: dataField,\r\n editorType: resource.allowMultiple ? \"dxTagBox\" : \"dxSelectBox\",\r\n label: {\r\n text: resource.label || dataField\r\n }\r\n }\r\n});\r\nexport var isResourceMultiple = (resources, resourceField) => {\r\n var resource = resources.find(resource => {\r\n var field = getFieldExpr(resource);\r\n return field === resourceField\r\n });\r\n return !!(null === resource || void 0 === resource ? void 0 : resource.allowMultiple)\r\n};\r\nexport var filterResources = (resources, fields) => resources.filter(resource => {\r\n var field = getFieldExpr(resource);\r\n return fields.indexOf(field) > -1\r\n});\r\nexport var getPaintedResources = (resources, groups) => {\r\n var newGroups = groups || [];\r\n var result = resources.find(resource => resource.useColorAsDefault);\r\n if (result) {\r\n return result\r\n }\r\n var newResources = newGroups.length ? filterResources(resources, newGroups) : resources;\r\n return newResources[newResources.length - 1]\r\n};\r\nexport var getOrLoadResourceItem = (resources, resourceLoaderMap, field, value) => {\r\n var result = new Deferred;\r\n resources.filter(resource => getFieldExpr(resource) === field && isDefined(resource.dataSource)).forEach(resource => {\r\n var wrappedDataSource = getWrappedDataSource(resource.dataSource);\r\n var valueExpr = getValueExpr(resource);\r\n if (!resourceLoaderMap.has(field)) {\r\n resourceLoaderMap.set(field, wrappedDataSource.load())\r\n }\r\n resourceLoaderMap.get(field).done(data => {\r\n var getter = compileGetter(valueExpr);\r\n var filteredData = data.filter(resource => equalByValue(getter(resource), value));\r\n result.resolve(filteredData[0])\r\n }).fail(() => {\r\n resourceLoaderMap.delete(field);\r\n result.reject()\r\n })\r\n });\r\n return result.promise()\r\n};\r\nexport var getDataAccessors = (dataAccessors, fieldName, type) => {\r\n var actions = dataAccessors[type];\r\n return actions[fieldName]\r\n};\r\nexport var groupAppointmentsByResources = function(config, appointments) {\r\n var groups = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\r\n var result = {\r\n 0: appointments\r\n };\r\n if (groups.length && config.loadedResources.length) {\r\n result = groupAppointmentsByResourcesCore(config, appointments, config.loadedResources)\r\n }\r\n var totalResourceCount = 0;\r\n config.loadedResources.forEach((resource, index) => {\r\n if (!index) {\r\n totalResourceCount = resource.items.length\r\n } else {\r\n totalResourceCount *= resource.items.length\r\n }\r\n });\r\n for (var index = 0; index < totalResourceCount; index++) {\r\n var key = index.toString();\r\n if (result[key]) {\r\n continue\r\n }\r\n result[key] = []\r\n }\r\n return result\r\n};\r\nexport var groupAppointmentsByResourcesCore = (config, appointments, resources) => {\r\n var tree = createResourcesTree(resources);\r\n var result = {};\r\n appointments.forEach(appointment => {\r\n var treeLeaves = getResourceTreeLeaves((field, action) => getDataAccessors(config.dataAccessors, field, action), tree, appointment);\r\n for (var i = 0; i < treeLeaves.length; i++) {\r\n if (!result[treeLeaves[i]]) {\r\n result[treeLeaves[i]] = []\r\n }\r\n result[treeLeaves[i]].push(deepExtendArraySafe({}, appointment, true))\r\n }\r\n });\r\n return result\r\n};\r\nexport var getResourceTreeLeaves = (getDataAccessors, tree, rawAppointment, result) => {\r\n result = result || [];\r\n for (var i = 0; i < tree.length; i++) {\r\n if (!hasGroupItem(getDataAccessors, rawAppointment, tree[i].name, tree[i].value)) {\r\n continue\r\n }\r\n if (isDefined(tree[i].leafIndex)) {\r\n result.push(tree[i].leafIndex)\r\n }\r\n if (tree[i].children) {\r\n getResourceTreeLeaves(getDataAccessors, tree[i].children, rawAppointment, result)\r\n }\r\n }\r\n return result\r\n};\r\nvar hasGroupItem = (getDataAccessors, rawAppointment, groupName, itemValue) => {\r\n var resourceValue = getDataAccessors(groupName, \"getter\")(rawAppointment);\r\n return hasResourceValue(wrapToArray(resourceValue), itemValue)\r\n};\r\nexport var createReducedResourcesTree = (loadedResources, getDataAccessors, appointments) => {\r\n var tree = createResourcesTree(loadedResources);\r\n return reduceResourcesTree(getDataAccessors, tree, appointments)\r\n};\r\nexport var reduceResourcesTree = (getDataAccessors, tree, existingAppointments, _result) => {\r\n _result = _result ? _result.children : [];\r\n tree.forEach((node, index) => {\r\n var ok = false;\r\n var resourceName = node.name;\r\n var resourceValue = node.value;\r\n var resourceTitle = node.title;\r\n var resourceData = node.data;\r\n var resourceGetter = getDataAccessors(resourceName, \"getter\");\r\n existingAppointments.forEach(appointment => {\r\n if (!ok) {\r\n var resourceFromAppointment = resourceGetter(appointment);\r\n if (Array.isArray(resourceFromAppointment)) {\r\n if (resourceFromAppointment.includes(resourceValue)) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n } else if (resourceFromAppointment === resourceValue) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n }\r\n });\r\n if (ok && node.children && node.children.length) {\r\n reduceResourcesTree(getDataAccessors, node.children, existingAppointments, _result[index])\r\n }\r\n });\r\n return _result\r\n};\r\nexport var getResourcesDataByGroups = (loadedResources, resources, groups) => {\r\n if (!groups || !groups.length) {\r\n return loadedResources\r\n }\r\n var fieldNames = {};\r\n var currentResourcesData = [];\r\n groups.forEach(group => {\r\n each(group, (name, value) => {\r\n fieldNames[name] = value\r\n })\r\n });\r\n var resourceData = loadedResources.filter(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return isDefined(fieldNames[name])\r\n });\r\n resourceData.forEach(data => currentResourcesData.push(extend({}, data)));\r\n currentResourcesData.forEach(currentResource => {\r\n var {\r\n items: items,\r\n data: data,\r\n name: resourceName\r\n } = currentResource;\r\n var resource = filterResources(resources, [resourceName])[0] || {};\r\n var valueExpr = getValueExpr(resource);\r\n var filteredItems = [];\r\n var filteredData = [];\r\n groups.filter(group => isDefined(group[resourceName])).forEach(group => {\r\n each(group, (name, value) => {\r\n if (!filteredItems.filter(item => item.id === value && item[valueExpr] === name).length) {\r\n var currentItems = items.filter(item => item.id === value);\r\n var currentData = data.filter(item => item[valueExpr] === value);\r\n filteredItems.push(...currentItems);\r\n filteredData.push(...currentData)\r\n }\r\n })\r\n });\r\n currentResource.items = filteredItems;\r\n currentResource.data = filteredData\r\n });\r\n return currentResourcesData\r\n};\r\nexport var setResourceToAppointment = (resources, dataAccessors, appointment, groups) => {\r\n var resourcesSetter = dataAccessors.setter;\r\n for (var name in groups) {\r\n var resourceData = groups[name];\r\n var value = isResourceMultiple(resources, name) ? wrapToArray(resourceData) : resourceData;\r\n resourcesSetter[name](appointment, value)\r\n }\r\n};\r\nexport var getResourceColor = (resources, resourceLoaderMap, field, value) => {\r\n var result = new Deferred;\r\n var resource = filterResources(resources, [field])[0] || {};\r\n var colorExpr = resource.colorExpr || \"color\";\r\n var colorGetter = compileGetter(colorExpr);\r\n getOrLoadResourceItem(resources, resourceLoaderMap, field, value).done(resource => result.resolve(colorGetter(resource))).fail(() => result.reject());\r\n return result.promise()\r\n};\r\nexport var getAppointmentColor = (resourceConfig, appointmentConfig) => {\r\n var {\r\n resources: resources,\r\n dataAccessors: dataAccessors,\r\n loadedResources: loadedResources,\r\n resourceLoaderMap: resourceLoaderMap\r\n } = resourceConfig;\r\n var {\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n itemData: itemData\r\n } = appointmentConfig;\r\n var paintedResources = getPaintedResources(resources || [], groups);\r\n if (paintedResources) {\r\n var field = getFieldExpr(paintedResources);\r\n var cellGroups = getCellGroups(groupIndex, loadedResources);\r\n var resourcesDataAccessors = getDataAccessors(dataAccessors, field, \"getter\");\r\n var resourceValues = wrapToArray(resourcesDataAccessors(itemData));\r\n var groupId = resourceValues[0];\r\n for (var i = 0; i < cellGroups.length; i++) {\r\n if (cellGroups[i].name === field) {\r\n groupId = cellGroups[i].id;\r\n break\r\n }\r\n }\r\n return getResourceColor(resources, resourceLoaderMap, field, groupId)\r\n }\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var createExpressions = function() {\r\n var resources = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var result = {\r\n getter: {},\r\n setter: {}\r\n };\r\n resources.forEach(resource => {\r\n var field = getFieldExpr(resource);\r\n result.getter[field] = compileGetter(field);\r\n result.setter[field] = compileSetter(field)\r\n });\r\n return result\r\n};\r\nvar getTransformedResourceData = (resource, data) => {\r\n var valueGetter = compileGetter(getValueExpr(resource));\r\n var displayGetter = compileGetter(getDisplayExpr(resource));\r\n return data.map(item => {\r\n var result = {\r\n id: valueGetter(item),\r\n text: displayGetter(item)\r\n };\r\n if (item.color) {\r\n result.color = item.color\r\n }\r\n return result\r\n })\r\n};\r\nexport var loadResources = (groups, resources, resourceLoaderMap) => {\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var newGroups = groups || [];\r\n var newResources = resources || [];\r\n var loadedResources = [];\r\n filterResources(newResources, newGroups).forEach(resource => {\r\n var deferred = new Deferred;\r\n var name = getFieldExpr(resource);\r\n deferreds.push(deferred);\r\n var dataSourcePromise = getWrappedDataSource(resource.dataSource).load();\r\n resourceLoaderMap.set(name, dataSourcePromise);\r\n dataSourcePromise.done(data => {\r\n var items = getTransformedResourceData(resource, data);\r\n deferred.resolve({\r\n name: name,\r\n items: items,\r\n data: data\r\n })\r\n }).fail(() => deferred.reject())\r\n });\r\n if (!deferreds.length) {\r\n return result.resolve(loadedResources)\r\n }\r\n when.apply(null, deferreds).done((function() {\r\n for (var _len = arguments.length, resources = new Array(_len), _key = 0; _key < _len; _key++) {\r\n resources[_key] = arguments[_key]\r\n }\r\n var hasEmpty = resources.some(r => 0 === r.items.length);\r\n loadedResources = hasEmpty ? [] : resources;\r\n result.resolve(loadedResources)\r\n })).fail(() => result.reject());\r\n return result.promise()\r\n};\r\nexport var getNormalizedResources = (rawAppointment, dataAccessors, resources) => {\r\n var result = {};\r\n each(dataAccessors.resources.getter, fieldName => {\r\n var value = dataAccessors.resources.getter[fieldName](rawAppointment);\r\n if (isDefined(value)) {\r\n var isMultiple = isResourceMultiple(resources, fieldName);\r\n var resourceValue = isMultiple ? wrapToArray(value) : value;\r\n result[fieldName] = resourceValue\r\n }\r\n });\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n HORIZONTAL_GROUP_ORIENTATION,\r\n VERTICAL_GROUP_ORIENTATION\r\n} from \"../consts\";\r\nexport var getKeyByDateAndGroup = (date, groupIndex) => {\r\n var key = date.getTime();\r\n if (!groupIndex) {\r\n return key.toString()\r\n }\r\n return (key + groupIndex).toString()\r\n};\r\nexport var getKeyByGroup = (groupIndex, isVerticalGrouping) => {\r\n if (isVerticalGrouping && !!groupIndex) {\r\n return groupIndex.toString()\r\n }\r\n return \"0\"\r\n};\r\nexport var addToStyles = (options, style) => {\r\n var nextStyle = null !== style && void 0 !== style ? style : {};\r\n var result = _extends({}, nextStyle);\r\n options.forEach(_ref => {\r\n var {\r\n attr: attr,\r\n value: value\r\n } = _ref;\r\n result[attr] = value || nextStyle[attr]\r\n });\r\n return result\r\n};\r\nexport var addHeightToStyle = (value, style) => {\r\n var height = value ? \"\".concat(value, \"px\") : \"\";\r\n return addToStyles([{\r\n attr: \"height\",\r\n value: height\r\n }], style)\r\n};\r\nexport var addWidthToStyle = (value, style) => {\r\n var width = value ? \"\".concat(value, \"px\") : \"\";\r\n return addToStyles([{\r\n attr: \"width\",\r\n value: width\r\n }], style)\r\n};\r\nexport var getGroupCellClasses = function() {\r\n var isFirstGroupCell = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var isLastGroupCell = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var className = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"\";\r\n return combineClasses({\r\n \"dx-scheduler-first-group-cell\": isFirstGroupCell,\r\n \"dx-scheduler-last-group-cell\": isLastGroupCell,\r\n [className]: true\r\n })\r\n};\r\nexport var getIsGroupedAllDayPanel = (hasAllDayRow, isVerticalGrouping) => hasAllDayRow && isVerticalGrouping;\r\nexport var isVerticalGroupingApplied = (groups, groupOrientation) => groupOrientation === VERTICAL_GROUP_ORIENTATION && !!groups.length;\r\nexport var isHorizontalGroupingApplied = (groups, groupOrientation) => groupOrientation === HORIZONTAL_GROUP_ORIENTATION && !!groups.length;\r\nexport var isGroupingByDate = (groups, groupOrientation, groupByDate) => {\r\n var isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation);\r\n return groupByDate && isHorizontalGrouping\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/consts.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var VERTICAL_GROUP_ORIENTATION = \"vertical\";\r\nexport var HORIZONTAL_GROUP_ORIENTATION = \"horizontal\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var VIEWS = {\r\n DAY: \"day\",\r\n WEEK: \"week\",\r\n WORK_WEEK: \"workWeek\",\r\n MONTH: \"month\",\r\n TIMELINE_DAY: \"timelineDay\",\r\n TIMELINE_WEEK: \"timelineWeek\",\r\n TIMELINE_WORK_WEEK: \"timelineWorkWeek\",\r\n TIMELINE_MONTH: \"timelineMonth\",\r\n AGENDA: \"agenda\"\r\n};\r\nexport var TIMELINE_VIEWS = {\r\n timelineDay: true,\r\n timelineWeek: true,\r\n timelineWorkWeek: true,\r\n timelineMonth: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../../../../../__internal/core/utils/date\";\r\nimport dateUtils from \"../../../../../../../core/utils/date\";\r\nimport {\r\n isDefined\r\n} from \"../../../../../../../core/utils/type\";\r\nimport dateLocalization from \"../../../../../../../localization/date\";\r\nimport timeZoneUtils from \"../../../../../../../__internal/scheduler/m_utils_time_zone\";\r\nimport {\r\n VERTICAL_GROUP_COUNT_CLASSES\r\n} from \"../../../../../../../__internal/scheduler/m_classes\";\r\nimport {\r\n VIEWS\r\n} from \"../../../../../../../__internal/scheduler/m_constants\";\r\nimport {\r\n getGroupCount\r\n} from \"../../../../../../../__internal/scheduler/resources/m_utils\";\r\nimport {\r\n isVerticalGroupingApplied\r\n} from \"../../../../workspaces/utils\";\r\nimport {\r\n TIMELINE_VIEWS\r\n} from \"./const\";\r\nexport var isDateInRange = (date, startDate, endDate, diff) => diff > 0 ? dateUtils.dateInRange(date, startDate, new Date(endDate.getTime() - 1)) : dateUtils.dateInRange(date, endDate, startDate, \"date\");\r\nexport var setOptionHour = (date, optionHour) => {\r\n var nextDate = new Date(date);\r\n if (!isDefined(optionHour)) {\r\n return nextDate\r\n }\r\n nextDate.setHours(optionHour, optionHour % 1 * 60, 0, 0);\r\n return nextDate\r\n};\r\nexport var getViewStartByOptions = (startDate, currentDate, intervalDuration, startViewDate) => {\r\n if (!startDate) {\r\n return new Date(currentDate)\r\n }\r\n var currentStartDate = dateUtils.trimTime(startViewDate);\r\n var diff = currentStartDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(currentStartDate.getTime() + intervalDuration * diff);\r\n while (!isDateInRange(currentDate, currentStartDate, endDate, diff)) {\r\n currentStartDate = endDate;\r\n endDate = new Date(currentStartDate.getTime() + intervalDuration * diff)\r\n }\r\n return diff > 0 ? currentStartDate : endDate\r\n};\r\nexport var getCalculatedFirstDayOfWeek = firstDayOfWeekOption => isDefined(firstDayOfWeekOption) ? firstDayOfWeekOption : dateLocalization.firstDayOfWeekIndex();\r\nexport var calculateViewStartDate = startDateOption => startDateOption;\r\nexport var calculateCellIndex = (rowIndex, columnIndex, rowCount) => columnIndex * rowCount + rowIndex;\r\nexport var getStartViewDateWithoutDST = (startViewDate, startDayHour) => {\r\n var newStartViewDate = timeZoneUtils.getDateWithoutTimezoneChange(startViewDate);\r\n newStartViewDate.setHours(startDayHour);\r\n return newStartViewDate\r\n};\r\nexport var getHeaderCellText = (headerIndex, date, headerCellTextFormat, getDateForHeaderText, additionalOptions) => {\r\n var validDate = getDateForHeaderText(headerIndex, date, additionalOptions);\r\n return dateLocalization.format(validDate, headerCellTextFormat)\r\n};\r\nexport var getStartViewDateTimeOffset = (startViewDate, startDayHour) => {\r\n var validStartDayHour = Math.floor(startDayHour);\r\n var isDSTChange = timeZoneUtils.isTimezoneChangeInDate(startViewDate);\r\n if (isDSTChange && validStartDayHour !== startViewDate.getHours()) {\r\n return dateUtils.dateToMilliseconds(\"hour\")\r\n }\r\n return 0\r\n};\r\nexport var formatWeekday = date => dateLocalization.getDayNames(\"abbreviated\")[date.getDay()];\r\nexport var formatWeekdayAndDay = date => \"\".concat(formatWeekday(date), \" \").concat(dateLocalization.format(date, \"day\"));\r\nexport var getToday = (indicatorTime, timeZoneCalculator) => {\r\n var todayDate = null !== indicatorTime && void 0 !== indicatorTime ? indicatorTime : new Date;\r\n return (null === timeZoneCalculator || void 0 === timeZoneCalculator ? void 0 : timeZoneCalculator.createDate(todayDate, {\r\n path: \"toGrid\"\r\n })) || todayDate\r\n};\r\nexport var getVerticalGroupCountClass = groups => {\r\n switch (null === groups || void 0 === groups ? void 0 : groups.length) {\r\n case 1:\r\n return VERTICAL_GROUP_COUNT_CLASSES[0];\r\n case 2:\r\n return VERTICAL_GROUP_COUNT_CLASSES[1];\r\n case 3:\r\n return VERTICAL_GROUP_COUNT_CLASSES[2];\r\n default:\r\n return\r\n }\r\n};\r\nexport var isDateAndTimeView = viewType => viewType !== VIEWS.TIMELINE_MONTH && viewType !== VIEWS.MONTH;\r\nexport var isTimelineView = viewType => !!TIMELINE_VIEWS[viewType];\r\nexport var getHorizontalGroupCount = (groups, groupOrientation) => {\r\n var groupCount = getGroupCount(groups) || 1;\r\n var isVerticalGrouping = isVerticalGroupingApplied(groups, groupOrientation);\r\n return isVerticalGrouping ? 1 : groupCount\r\n};\r\nexport var calculateIsGroupedAllDayPanel = (groups, groupOrientation, isAllDayPanelVisible) => isVerticalGroupingApplied(groups, groupOrientation) && isAllDayPanelVisible;\r\nexport var calculateDayDuration = (startDayHour, endDayHour) => endDayHour - startDayHour;\r\nexport var isHorizontalView = viewType => {\r\n switch (viewType) {\r\n case VIEWS.TIMELINE_DAY:\r\n case VIEWS.TIMELINE_WEEK:\r\n case VIEWS.TIMELINE_WORK_WEEK:\r\n case VIEWS.TIMELINE_MONTH:\r\n case VIEWS.MONTH:\r\n return true;\r\n default:\r\n return false\r\n }\r\n};\r\nexport var getTotalCellCountByCompleteData = completeData => completeData[completeData.length - 1].length;\r\nexport var getTotalRowCountByCompleteData = completeData => completeData.length;\r\nexport var getDisplayedCellCount = (displayedCellCount, completeData) => null !== displayedCellCount && void 0 !== displayedCellCount ? displayedCellCount : getTotalCellCountByCompleteData(completeData);\r\nexport var getDisplayedRowCount = (displayedRowCount, completeData) => null !== displayedRowCount && void 0 !== displayedRowCount ? displayedRowCount : getTotalRowCountByCompleteData(completeData);\r\nexport var getCellDuration = (viewType, startDayHour, endDayHour, hoursInterval) => {\r\n switch (viewType) {\r\n case \"month\":\r\n return 36e5 * calculateDayDuration(startDayHour, endDayHour);\r\n case \"timelineMonth\":\r\n return dateUtils.dateToMilliseconds(\"day\");\r\n default:\r\n return 36e5 * hoursInterval\r\n }\r\n};\r\nexport var getValidCellDateForLocalTimeFormat = (date, _ref) => {\r\n var {\r\n cellIndexShift: cellIndexShift,\r\n startDayHour: startDayHour,\r\n startViewDate: startViewDate,\r\n viewOffset: viewOffset\r\n } = _ref;\r\n var originDate = dateUtilsTs.addOffsets(date, [-viewOffset]);\r\n var localTimeZoneChangedInOriginDate = timeZoneUtils.isTimezoneChangeInDate(originDate);\r\n if (!localTimeZoneChangedInOriginDate) {\r\n return date\r\n }\r\n var startViewDateWithoutDST = new Date(new Date(startViewDate).setDate(startViewDate.getDate() + 2));\r\n var startViewDateOffset = getStartViewDateTimeOffset(startViewDate, startDayHour);\r\n return dateUtilsTs.addOffsets(startViewDateWithoutDST, [viewOffset, cellIndexShift, -startViewDateOffset])\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_area.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n addNamespace,\r\n eventData\r\n} from \"../events/utils/index\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport scrollEvents from \"../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n getVerticalOffsets,\r\n getElementBoxParams,\r\n parseHeight,\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n allowScroll,\r\n prepareScrollData\r\n} from \"./text_box/utils.scroll\";\r\nimport TextBox from \"./text_box\";\r\nvar TEXTAREA_CLASS = \"dx-textarea\";\r\nvar TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE = \"dx-texteditor-input-auto-resize\";\r\nvar TextArea = TextBox.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n spellcheck: true,\r\n minHeight: void 0,\r\n maxHeight: void 0,\r\n autoResizeEnabled: false\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTAREA_CLASS);\r\n this.callBase();\r\n this.setAria(\"multiline\", \"true\")\r\n },\r\n _renderContentImpl: function() {\r\n this._updateInputHeight();\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderScrollHandler()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"<textarea>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n this._updateInputAutoResizeAppearance($input);\r\n return $input\r\n },\r\n _setInputMinHeight: noop,\r\n _renderScrollHandler: function() {\r\n this._eventY = 0;\r\n var $input = this._input();\r\n var initScrollData = prepareScrollData($input, true);\r\n eventsEngine.on($input, addNamespace(scrollEvents.init, this.NAME), initScrollData, noop);\r\n eventsEngine.on($input, addNamespace(pointerEvents.down, this.NAME), this._pointerDownHandler.bind(this));\r\n eventsEngine.on($input, addNamespace(pointerEvents.move, this.NAME), this._pointerMoveHandler.bind(this))\r\n },\r\n _pointerDownHandler: function(e) {\r\n this._eventY = eventData(e).y\r\n },\r\n _pointerMoveHandler: function(e) {\r\n var currentEventY = eventData(e).y;\r\n var delta = this._eventY - currentEventY;\r\n if (allowScroll(this._input(), delta)) {\r\n e.isScrollingEvent = true;\r\n e.stopPropagation()\r\n }\r\n this._eventY = currentEventY\r\n },\r\n _renderDimensions: function() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n var minHeight = this.option(\"minHeight\");\r\n var maxHeight = this.option(\"maxHeight\");\r\n $element.css({\r\n minHeight: void 0 !== minHeight ? minHeight : \"\",\r\n maxHeight: void 0 !== maxHeight ? maxHeight : \"\",\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _resetDimensions: function() {\r\n this.$element().css({\r\n height: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n },\r\n _renderEvents: function() {\r\n if (this.option(\"autoResizeEnabled\")) {\r\n eventsEngine.on(this._input(), addNamespace(\"input paste\", this.NAME), this._updateInputHeight.bind(this))\r\n }\r\n this.callBase()\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), addNamespace(\"input paste\", this.NAME));\r\n this.callBase()\r\n },\r\n _getHeightDifference($input) {\r\n return getVerticalOffsets(this._$element.get(0), false) + getVerticalOffsets(this._$textEditorContainer.get(0), false) + getVerticalOffsets(this._$textEditorInputContainer.get(0), false) + getElementBoxParams(\"height\", getWindow().getComputedStyle($input.get(0))).margin\r\n },\r\n _updateInputHeight: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var $input = this._input();\r\n var height = this.option(\"height\");\r\n var autoHeightResizing = void 0 === height && this.option(\"autoResizeEnabled\");\r\n var shouldCalculateInputHeight = autoHeightResizing || void 0 === height && this.option(\"minHeight\");\r\n if (!shouldCalculateInputHeight) {\r\n $input.css(\"height\", \"\");\r\n return\r\n }\r\n this._resetDimensions();\r\n this._$element.css(\"height\", getOuterHeight(this._$element));\r\n $input.css(\"height\", 0);\r\n var heightDifference = this._getHeightDifference($input);\r\n this._renderDimensions();\r\n var minHeight = this._getBoundaryHeight(\"minHeight\");\r\n var maxHeight = this._getBoundaryHeight(\"maxHeight\");\r\n var inputHeight = $input[0].scrollHeight;\r\n if (void 0 !== minHeight) {\r\n inputHeight = Math.max(inputHeight, minHeight - heightDifference)\r\n }\r\n if (void 0 !== maxHeight) {\r\n var adjustedMaxHeight = maxHeight - heightDifference;\r\n var needScroll = inputHeight > adjustedMaxHeight;\r\n inputHeight = Math.min(inputHeight, adjustedMaxHeight);\r\n this._updateInputAutoResizeAppearance($input, !needScroll)\r\n }\r\n $input.css(\"height\", inputHeight);\r\n if (autoHeightResizing) {\r\n this._$element.css(\"height\", \"auto\")\r\n }\r\n },\r\n _getBoundaryHeight: function(optionName) {\r\n var boundaryValue = this.option(optionName);\r\n if (isDefined(boundaryValue)) {\r\n return \"number\" === typeof boundaryValue ? boundaryValue : parseHeight(boundaryValue, this.$element().get(0).parentElement, this._$element.get(0))\r\n }\r\n },\r\n _renderInputType: noop,\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _updateInputAutoResizeAppearance: function($input, isAutoResizeEnabled) {\r\n if ($input) {\r\n var autoResizeEnabled = ensureDefined(isAutoResizeEnabled, this.option(\"autoResizeEnabled\"));\r\n $input.toggleClass(TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE, autoResizeEnabled)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this.option(\"visible\")) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"autoResizeEnabled\":\r\n this._updateInputAutoResizeAppearance(this._input(), args.value);\r\n this._refreshEvents();\r\n this._updateInputHeight();\r\n break;\r\n case \"value\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._updateInputHeight();\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderDimensions();\r\n this._updateInputHeight();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n args.value && this._updateInputHeight();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTextArea\", TextArea);\r\nexport default TextArea;\r\n","/**\r\n * DevExtreme (esm/ui/switch.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Editor from \"./editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n lock\r\n} from \"../events/core/emitter.feedback\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport fx from \"../animation/fx\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar SWITCH_CLASS = \"dx-switch\";\r\nvar SWITCH_WRAPPER_CLASS = SWITCH_CLASS + \"-wrapper\";\r\nvar SWITCH_CONTAINER_CLASS = SWITCH_CLASS + \"-container\";\r\nvar SWITCH_INNER_CLASS = SWITCH_CLASS + \"-inner\";\r\nvar SWITCH_HANDLE_CLASS = SWITCH_CLASS + \"-handle\";\r\nvar SWITCH_ON_VALUE_CLASS = SWITCH_CLASS + \"-on-value\";\r\nvar SWITCH_ON_CLASS = SWITCH_CLASS + \"-on\";\r\nvar SWITCH_OFF_CLASS = SWITCH_CLASS + \"-off\";\r\nvar SWITCH_ANIMATION_DURATION = 100;\r\nvar Switch = Editor.inherit({\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n var move = function(value, e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._animateValue(value)\r\n };\r\n return extend(this.callBase(), {\r\n space: click,\r\n enter: click,\r\n leftArrow: move.bind(this, isRTL ? true : false),\r\n rightArrow: move.bind(this, isRTL ? false : true)\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n switchedOnText: messageLocalization.format(\"dxSwitch-switchedOnText\"),\r\n switchedOffText: messageLocalization.format(\"dxSwitch-switchedOffText\"),\r\n value: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _feedbackHideTimeout: 0,\r\n _animating: false,\r\n _initMarkup: function() {\r\n this._renderContainers();\r\n this.$element().addClass(SWITCH_CLASS).append(this._$switchWrapper);\r\n this._renderSubmitElement();\r\n this._renderClick();\r\n this.setAria(\"role\", \"button\");\r\n this._renderSwipeable();\r\n this.callBase();\r\n this._renderSwitchInner();\r\n this._renderLabels();\r\n this._renderValue()\r\n },\r\n _getInnerOffset: function(value, offset) {\r\n var ratio = (offset - this._offsetDirection() * Number(!value)) / 2;\r\n return 100 * ratio + \"%\"\r\n },\r\n _getHandleOffset: function(value, offset) {\r\n if (this.option(\"rtlEnabled\")) {\r\n value = !value\r\n }\r\n if (value) {\r\n var calcValue = 100 * -offset - 100;\r\n return calcValue + \"%\"\r\n } else {\r\n return 100 * -offset + \"%\"\r\n }\r\n },\r\n _renderSwitchInner: function() {\r\n this._$switchInner = $(\"<div>\").addClass(SWITCH_INNER_CLASS).appendTo(this._$switchContainer);\r\n this._$handle = $(\"<div>\").addClass(SWITCH_HANDLE_CLASS).appendTo(this._$switchInner)\r\n },\r\n _renderLabels: function() {\r\n this._$labelOn = $(\"<div>\").addClass(SWITCH_ON_CLASS).prependTo(this._$switchInner);\r\n this._$labelOff = $(\"<div>\").addClass(SWITCH_OFF_CLASS).appendTo(this._$switchInner);\r\n this._setLabelsText()\r\n },\r\n _renderContainers: function() {\r\n this._$switchContainer = $(\"<div>\").addClass(SWITCH_CONTAINER_CLASS);\r\n this._$switchWrapper = $(\"<div>\").addClass(SWITCH_WRAPPER_CLASS).append(this._$switchContainer)\r\n },\r\n _renderSwipeable: function() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._getItemSizeFunc.bind(this)\r\n })\r\n },\r\n _getItemSizeFunc: function() {\r\n return getOuterWidth(this._$switchContainer, true) - getBoundingRect(this._$handle.get(0)).width\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _offsetDirection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _renderPosition: function(state, swipeOffset) {\r\n var innerOffset = this._getInnerOffset(state, swipeOffset);\r\n var handleOffset = this._getHandleOffset(state, swipeOffset);\r\n this._$switchInner.css(\"transform\", \" translateX(\" + innerOffset + \")\");\r\n this._$handle.css(\"transform\", \" translateX(\" + handleOffset + \")\")\r\n },\r\n _validateValue: function() {\r\n var check = this.option(\"value\");\r\n if (\"boolean\" !== typeof check) {\r\n this._options.silent(\"value\", !!check)\r\n }\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var $element = this.$element();\r\n this._clickAction = this._createAction(this._clickHandler.bind(this));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(args) {\r\n var e = args.event;\r\n this._saveValueChangeEvent(e);\r\n if (this._animating || this._swiping) {\r\n return\r\n }\r\n this._animateValue(!this.option(\"value\"))\r\n },\r\n _animateValue: function(value) {\r\n var startValue = this.option(\"value\");\r\n var endValue = value;\r\n if (startValue === endValue) {\r\n return\r\n }\r\n this._animating = true;\r\n var fromInnerOffset = this._getInnerOffset(startValue, 0);\r\n var toInnerOffset = this._getInnerOffset(endValue, 0);\r\n var fromHandleOffset = this._getHandleOffset(startValue, 0);\r\n var toHandleOffset = this._getHandleOffset(endValue, 0);\r\n var that = this;\r\n var fromInnerConfig = {};\r\n var toInnerConfig = {};\r\n var fromHandleConfig = {};\r\n var toHandlerConfig = {};\r\n fromInnerConfig.transform = \" translateX(\" + fromInnerOffset + \")\";\r\n toInnerConfig.transform = \" translateX(\" + toInnerOffset + \")\";\r\n fromHandleConfig.transform = \" translateX(\" + fromHandleOffset + \")\";\r\n toHandlerConfig.transform = \" translateX(\" + toHandleOffset + \")\";\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, endValue);\r\n fx.animate(this._$handle, {\r\n from: fromHandleConfig,\r\n to: toHandlerConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n from: fromInnerConfig,\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete: function() {\r\n that._animating = false;\r\n that.option(\"value\", endValue)\r\n }\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n var state = this.option(\"value\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var maxOffOffset = rtlEnabled ? 0 : 1;\r\n var maxOnOffset = rtlEnabled ? 1 : 0;\r\n e.event.maxLeftOffset = state ? maxOffOffset : maxOnOffset;\r\n e.event.maxRightOffset = state ? maxOnOffset : maxOffOffset;\r\n this._swiping = true;\r\n this._feedbackDeferred = new Deferred;\r\n lock(this._feedbackDeferred);\r\n this._toggleActiveState(this.$element(), this.option(\"activeStateEnabled\"))\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n this._renderPosition(this.option(\"value\"), e.event.offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var that = this;\r\n var offsetDirection = this._offsetDirection();\r\n var toInnerConfig = {};\r\n var toHandleConfig = {};\r\n var innerOffset = this._getInnerOffset(that.option(\"value\"), e.event.targetOffset);\r\n var handleOffset = this._getHandleOffset(that.option(\"value\"), e.event.targetOffset);\r\n toInnerConfig.transform = \" translateX(\" + innerOffset + \")\";\r\n toHandleConfig.transform = \" translateX(\" + handleOffset + \")\";\r\n fx.animate(this._$handle, {\r\n to: toHandleConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete: function() {\r\n that._swiping = false;\r\n var pos = that.option(\"value\") + offsetDirection * e.event.targetOffset;\r\n that._saveValueChangeEvent(e.event);\r\n that.option(\"value\", Boolean(pos));\r\n that._feedbackDeferred.resolve();\r\n that._toggleActiveState(that.$element(), false)\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n this._validateValue();\r\n var val = this.option(\"value\");\r\n this._renderPosition(val, 0);\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, val);\r\n this._getSubmitElement().val(val);\r\n this.setAria({\r\n pressed: val,\r\n label: val ? this.option(\"switchedOnText\") : this.option(\"switchedOffText\")\r\n })\r\n },\r\n _setLabelsText: function() {\r\n this._$labelOn && this._$labelOn.text(this.option(\"switchedOnText\"));\r\n this._$labelOff && this._$labelOff.text(this.option(\"switchedOffText\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.repaint()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n delete this._marginBound;\r\n this._refresh();\r\n break;\r\n case \"switchedOnText\":\r\n case \"switchedOffText\":\r\n this._setLabelsText();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSwitch\", Switch);\r\nexport default Switch;\r\n","/**\r\n * DevExtreme (esm/data/data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data_source/data_source\";\r\nexport default DataSource;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/utils/semaphore/semaphore.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class Semaphore {\r\n constructor() {\r\n this.counter = 0\r\n }\r\n isFree() {\r\n return 0 === this.counter\r\n }\r\n take() {\r\n this.counter += 1\r\n }\r\n release() {\r\n this.counter -= 1;\r\n if (this.counter < 0) {\r\n this.counter = 0\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointment_popup/m_form.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../m_recurrence_editor\";\r\nimport \"../../../ui/text_area\";\r\nimport \"../../../ui/tag_box\";\r\nimport \"../../../ui/switch\";\r\nimport \"../../../ui/select_box\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DataSource from \"../../../data/data_source\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n Semaphore\r\n} from \"../../../renovation/ui/scheduler/utils/semaphore/semaphore\";\r\nimport Form from \"../../../ui/form\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../scheduler/m_expression_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport timeZoneDataUtils from \"../timezones/m_utils_timezones_data\";\r\nvar SCREEN_SIZE_OF_SINGLE_COLUMN = 600;\r\nexport var APPOINTMENT_FORM_GROUP_NAMES = {\r\n Main: \"mainGroup\",\r\n Recurrence: \"recurrenceGroup\"\r\n};\r\nvar E2E_TEST_CLASSES = {\r\n form: \"e2e-dx-scheduler-form\",\r\n textEditor: \"e2e-dx-scheduler-form-text\",\r\n descriptionEditor: \"e2e-dx-scheduler-form-description\",\r\n startDateEditor: \"e2e-dx-scheduler-form-start-date\",\r\n endDateEditor: \"e2e-dx-scheduler-form-end-date\",\r\n startDateTimeZoneEditor: \"e2e-dx-scheduler-form-start-date-timezone\",\r\n endDateTimeZoneEditor: \"e2e-dx-scheduler-form-end-date-timezone\",\r\n allDaySwitch: \"e2e-dx-scheduler-form-all-day-switch\",\r\n recurrenceSwitch: \"e2e-dx-scheduler-form-recurrence-switch\"\r\n};\r\nvar getStylingModeFunc = () => isFluent(current()) ? \"filled\" : void 0;\r\nvar getStartDateWithStartHour = (startDate, startDayHour) => new Date(new Date(startDate).setHours(startDayHour));\r\nvar validateAppointmentFormDate = (editor, value, previousValue) => {\r\n var isCurrentDateCorrect = null === value || !!value;\r\n var isPreviousDateCorrect = null === previousValue || !!previousValue;\r\n if (!isCurrentDateCorrect && isPreviousDateCorrect) {\r\n editor.option(\"value\", previousValue)\r\n }\r\n};\r\nvar updateRecurrenceItemVisibility = (recurrenceRuleExpr, value, form) => {\r\n var _a;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"visible\", value);\r\n !value && form.updateData(recurrenceRuleExpr, \"\");\r\n null === (_a = form.getEditor(recurrenceRuleExpr)) || void 0 === _a ? void 0 : _a.changeValueByVisibility(value)\r\n};\r\nexport class AppointmentForm {\r\n constructor(scheduler) {\r\n this.scheduler = scheduler;\r\n this.form = null;\r\n this.semaphore = new Semaphore\r\n }\r\n get dxForm() {\r\n return this.form\r\n }\r\n set readOnly(value) {\r\n this.form.option(\"readOnly\", value);\r\n var {\r\n recurrenceRuleExpr: recurrenceRuleExpr\r\n } = this.scheduler.getDataAccessors().expr;\r\n var recurrenceEditor = this.form.getEditor(recurrenceRuleExpr);\r\n null === recurrenceEditor || void 0 === recurrenceEditor ? void 0 : recurrenceEditor.option(\"readOnly\", value)\r\n }\r\n get formData() {\r\n return this.form.option(\"formData\")\r\n }\r\n set formData(value) {\r\n this.form.option(\"formData\", value)\r\n }\r\n create(triggerResize, changeSize, formData) {\r\n var {\r\n allowTimeZoneEditing: allowTimeZoneEditing\r\n } = this.scheduler.getEditingConfig();\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var {\r\n expr: expr\r\n } = dataAccessors;\r\n var isRecurrence = !!ExpressionUtils.getField(dataAccessors, \"recurrenceRule\", formData);\r\n var colSpan = isRecurrence ? 1 : 2;\r\n var mainItems = [...this._createMainItems(expr, triggerResize, changeSize, allowTimeZoneEditing), ...this.scheduler.createResourceEditorModel()];\r\n changeSize(isRecurrence);\r\n var items = [{\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Main,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n colSpan: colSpan,\r\n items: mainItems\r\n }, {\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Recurrence,\r\n visible: isRecurrence,\r\n colSpan: colSpan,\r\n items: this._createRecurrenceEditor(expr)\r\n }];\r\n var element = $(\"<div>\");\r\n this.scheduler.createComponent(element, Form, {\r\n items: items,\r\n showValidationSummary: true,\r\n scrollingEnabled: true,\r\n colCount: \"auto\",\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n formData: formData,\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\",\r\n onInitialized: e => {\r\n this.form = e.component\r\n },\r\n customizeItem: e => {\r\n if (this.form && \"group\" === e.itemType) {\r\n var dataExprs = this.scheduler.getDataAccessors().expr;\r\n var startDate = new Date(this.formData[dataExprs.startDateExpr]);\r\n var endDate = new Date(this.formData[dataExprs.endDateExpr]);\r\n var startTimeZoneEditor = e.items.find(i => i.dataField === dataExprs.startDateTimeZoneExpr);\r\n var endTimeZoneEditor = e.items.find(i => i.dataField === dataExprs.endDateTimeZoneExpr);\r\n if (startTimeZoneEditor) {\r\n startTimeZoneEditor.editorOptions.dataSource = this.createTimeZoneDataSource(startDate)\r\n }\r\n if (endTimeZoneEditor) {\r\n endTimeZoneEditor.editorOptions.dataSource = this.createTimeZoneDataSource(endDate)\r\n }\r\n }\r\n },\r\n screenByWidth: width => width < SCREEN_SIZE_OF_SINGLE_COLUMN || \"desktop\" !== devices.current().deviceType ? \"xs\" : \"lg\",\r\n elementAttr: {\r\n class: E2E_TEST_CLASSES.form\r\n }\r\n })\r\n }\r\n createTimeZoneDataSource(date) {\r\n return new DataSource({\r\n store: timeZoneDataUtils.getDisplayedTimeZones(date),\r\n paginate: true,\r\n pageSize: 10\r\n })\r\n }\r\n _createAppointmentAdapter(rawAppointment) {\r\n return createAppointmentAdapter(rawAppointment, this.scheduler.getDataAccessors())\r\n }\r\n _dateBoxValueChanged(args, dateExpr, isNeedCorrect) {\r\n validateAppointmentFormDate(args.component, args.value, args.previousValue);\r\n var value = dateSerialization.deserializeDate(args.value);\r\n var previousValue = dateSerialization.deserializeDate(args.previousValue);\r\n var dateEditor = this.form.getEditor(dateExpr);\r\n var dateValue = dateSerialization.deserializeDate(dateEditor.option(\"value\"));\r\n if (this.semaphore.isFree() && dateValue && value && isNeedCorrect(dateValue, value)) {\r\n var duration = previousValue ? dateValue.getTime() - previousValue.getTime() : 0;\r\n dateEditor.option(\"value\", new Date(value.getTime() + duration))\r\n }\r\n }\r\n _createTimezoneEditor(timeZoneExpr, secondTimeZoneExpr, visibleIndex, colSpan, isMainTimeZone, cssClass) {\r\n var visible = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : false;\r\n var noTzTitle = messageLocalization.format(\"dxScheduler-noTimezoneTitle\");\r\n return {\r\n name: this.normalizeEditorName(timeZoneExpr),\r\n dataField: timeZoneExpr,\r\n editorType: \"dxSelectBox\",\r\n visibleIndex: visibleIndex,\r\n colSpan: colSpan,\r\n cssClass: cssClass,\r\n label: {\r\n text: \" \"\r\n },\r\n editorOptions: {\r\n displayExpr: \"title\",\r\n valueExpr: \"id\",\r\n placeholder: noTzTitle,\r\n searchEnabled: true,\r\n onValueChanged: args => {\r\n var {\r\n form: form\r\n } = this;\r\n var secondTimezoneEditor = form.getEditor(secondTimeZoneExpr);\r\n if (isMainTimeZone) {\r\n secondTimezoneEditor.option(\"value\", args.value)\r\n }\r\n }\r\n },\r\n visible: visible\r\n }\r\n }\r\n _createDateBoxItems(dataExprs, allowTimeZoneEditing) {\r\n var colSpan = allowTimeZoneEditing ? 2 : 1;\r\n var firstDayOfWeek = this.scheduler.getFirstDayOfWeek();\r\n return [this.createDateBoxEditor(dataExprs.startDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelStartDate\", E2E_TEST_CLASSES.startDateEditor, args => {\r\n this._dateBoxValueChanged(args, dataExprs.endDateExpr, (endValue, startValue) => endValue < startValue)\r\n }), this._createTimezoneEditor(dataExprs.startDateTimeZoneExpr, dataExprs.endDateTimeZoneExpr, 1, colSpan, true, E2E_TEST_CLASSES.startDateTimeZoneEditor, allowTimeZoneEditing), this.createDateBoxEditor(dataExprs.endDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelEndDate\", E2E_TEST_CLASSES.endDateEditor, args => {\r\n this._dateBoxValueChanged(args, dataExprs.startDateExpr, (startValue, endValue) => endValue < startValue)\r\n }), this._createTimezoneEditor(dataExprs.endDateTimeZoneExpr, dataExprs.startDateTimeZoneExpr, 3, colSpan, false, E2E_TEST_CLASSES.endDateTimeZoneEditor, allowTimeZoneEditing)]\r\n }\r\n _changeFormItemDateType(name, groupName, isAllDay) {\r\n var editorPath = this.getEditorPath(name, groupName);\r\n var itemEditorOptions = this.form.itemOption(editorPath).editorOptions;\r\n var type = isAllDay ? \"date\" : \"datetime\";\r\n var newEditorOption = _extends(_extends({}, itemEditorOptions), {\r\n type: type\r\n });\r\n this.form.itemOption(editorPath, \"editorOptions\", newEditorOption)\r\n }\r\n _createMainItems(dataExprs, triggerResize, changeSize, allowTimeZoneEditing) {\r\n return [{\r\n name: this.normalizeEditorName(dataExprs.textExpr),\r\n dataField: dataExprs.textExpr,\r\n cssClass: E2E_TEST_CLASSES.textEditor,\r\n editorType: \"dxTextBox\",\r\n colSpan: 2,\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelTitle\")\r\n },\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc()\r\n }\r\n }, {\r\n itemType: \"group\",\r\n colSpan: 2,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n items: this._createDateBoxItems(dataExprs, allowTimeZoneEditing)\r\n }, {\r\n itemType: \"group\",\r\n colSpan: 2,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 2\r\n },\r\n items: [{\r\n name: this.normalizeEditorName(dataExprs.allDayExpr),\r\n dataField: dataExprs.allDayExpr,\r\n cssClass: \"dx-appointment-form-switch \".concat(E2E_TEST_CLASSES.allDaySwitch),\r\n editorType: \"dxSwitch\",\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-allDay\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: args => {\r\n var {\r\n value: value\r\n } = args;\r\n var startDateEditor = this.form.getEditor(dataExprs.startDateExpr);\r\n var endDateEditor = this.form.getEditor(dataExprs.endDateExpr);\r\n var startDate = dateSerialization.deserializeDate(startDateEditor.option(\"value\"));\r\n if (this.semaphore.isFree() && startDate) {\r\n if (value) {\r\n var allDayStartDate = dateUtils.trimTime(startDate);\r\n startDateEditor.option(\"value\", new Date(allDayStartDate));\r\n endDateEditor.option(\"value\", new Date(allDayStartDate))\r\n } else {\r\n var startDateWithStartHour = getStartDateWithStartHour(startDate, this.scheduler.getStartDayHour());\r\n var endDate = this.scheduler.getCalculatedEndDate(startDateWithStartHour);\r\n startDateEditor.option(\"value\", startDateWithStartHour);\r\n endDateEditor.option(\"value\", endDate)\r\n }\r\n }\r\n this._changeFormItemDateType(dataExprs.startDateExpr, \"Main\", value);\r\n this._changeFormItemDateType(dataExprs.endDateExpr, \"Main\", value)\r\n }\r\n }\r\n }, {\r\n editorType: \"dxSwitch\",\r\n dataField: \"repeat\",\r\n cssClass: \"dx-appointment-form-switch \".concat(E2E_TEST_CLASSES.recurrenceSwitch),\r\n name: \"visibilityChanged\",\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelRecurrence\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: args => {\r\n var {\r\n form: form\r\n } = this;\r\n var colSpan = args.value ? 1 : 2;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Main, \"colSpan\", colSpan);\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"colSpan\", colSpan);\r\n updateRecurrenceItemVisibility(dataExprs.recurrenceRuleExpr, args.value, form);\r\n changeSize(args.value);\r\n triggerResize()\r\n }\r\n }\r\n }]\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }, {\r\n name: this.normalizeEditorName(dataExprs.descriptionExpr),\r\n dataField: dataExprs.descriptionExpr,\r\n cssClass: E2E_TEST_CLASSES.descriptionEditor,\r\n editorType: \"dxTextArea\",\r\n colSpan: 2,\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelDescription\")\r\n },\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc()\r\n }\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }]\r\n }\r\n _createRecurrenceEditor(dataExprs) {\r\n return [{\r\n name: this.normalizeEditorName(dataExprs.recurrenceRuleExpr),\r\n dataField: dataExprs.recurrenceRuleExpr,\r\n editorType: \"dxRecurrenceEditor\",\r\n editorOptions: {\r\n firstDayOfWeek: this.scheduler.getFirstDayOfWeek(),\r\n timeZoneCalculator: this.scheduler.getTimeZoneCalculator(),\r\n getStartDateTimeZone: () => this._createAppointmentAdapter(this.formData).startDateTimeZone\r\n },\r\n label: {\r\n text: \" \",\r\n visible: false\r\n }\r\n }]\r\n }\r\n setEditorsType(allDay) {\r\n var {\r\n startDateExpr: startDateExpr,\r\n endDateExpr: endDateExpr\r\n } = this.scheduler.getDataAccessors().expr;\r\n var startDateItemPath = this.getEditorPath(startDateExpr, \"Main\");\r\n var endDateItemPath = this.getEditorPath(endDateExpr, \"Main\");\r\n var startDateFormItem = this.form.itemOption(startDateItemPath);\r\n var endDateFormItem = this.form.itemOption(endDateItemPath);\r\n if (startDateFormItem && endDateFormItem) {\r\n var startDateEditorOptions = startDateFormItem.editorOptions;\r\n var endDateEditorOptions = endDateFormItem.editorOptions;\r\n startDateEditorOptions.type = endDateEditorOptions.type = allDay ? \"date\" : \"datetime\";\r\n this.form.itemOption(startDateItemPath, \"editorOptions\", startDateEditorOptions);\r\n this.form.itemOption(endDateItemPath, \"editorOptions\", endDateEditorOptions)\r\n }\r\n }\r\n updateRecurrenceEditorStartDate(date, expression) {\r\n var options = {\r\n startDate: date\r\n };\r\n this.setEditorOptions(expression, \"Recurrence\", options)\r\n }\r\n setEditorOptions(name, groupName, options) {\r\n var editorPath = this.getEditorPath(name, groupName);\r\n var editor = this.form.itemOption(editorPath);\r\n editor && this.form.itemOption(editorPath, \"editorOptions\", extend({}, editor.editorOptions, options))\r\n }\r\n setTimeZoneEditorDataSource(date, name) {\r\n var dataSource = this.createTimeZoneDataSource(date);\r\n this.setEditorOptions(name, \"Main\", {\r\n dataSource: dataSource\r\n })\r\n }\r\n updateFormData(formData) {\r\n this.semaphore.take();\r\n this.form.option(\"formData\", formData);\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var {\r\n expr: expr\r\n } = dataAccessors;\r\n var rawStartDate = ExpressionUtils.getField(dataAccessors, \"startDate\", formData);\r\n var rawEndDate = ExpressionUtils.getField(dataAccessors, \"endDate\", formData);\r\n var allDay = ExpressionUtils.getField(dataAccessors, \"allDay\", formData);\r\n var startDate = new Date(rawStartDate);\r\n var endDate = new Date(rawEndDate);\r\n this.setTimeZoneEditorDataSource(startDate, expr.startDateTimeZoneExpr);\r\n this.setTimeZoneEditorDataSource(endDate, expr.endDateTimeZoneExpr);\r\n this.updateRecurrenceEditorStartDate(startDate, expr.recurrenceRuleExpr);\r\n this.setEditorsType(allDay);\r\n this.semaphore.release()\r\n }\r\n createDateBoxEditor(dataField, colSpan, firstDayOfWeek, label, cssClass, onValueChanged) {\r\n return {\r\n editorType: \"dxDateBox\",\r\n name: this.normalizeEditorName(dataField),\r\n dataField: dataField,\r\n colSpan: colSpan,\r\n cssClass: cssClass,\r\n label: {\r\n text: messageLocalization.format(label)\r\n },\r\n validationRules: [{\r\n type: \"required\"\r\n }],\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n width: \"100%\",\r\n calendarOptions: {\r\n firstDayOfWeek: firstDayOfWeek\r\n },\r\n onValueChanged: onValueChanged,\r\n useMaskBehavior: true\r\n }\r\n }\r\n }\r\n getEditorPath(name, groupName) {\r\n var normalizedName = this.normalizeEditorName(name);\r\n return \"\".concat(APPOINTMENT_FORM_GROUP_NAMES[groupName], \".\").concat(normalizedName)\r\n }\r\n normalizeEditorName(name) {\r\n return name ? name.replace(/\\./g, \"_\") : name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment_edit_form/popup_config.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nexport var POPUP_WIDTH = {\r\n DEFAULT: 485,\r\n RECURRENCE: 970,\r\n FULLSCREEN: 1e3,\r\n MOBILE: {\r\n DEFAULT: 350,\r\n FULLSCREEN: 500\r\n }\r\n};\r\nexport var defaultAnimation = {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n};\r\nvar isMobile = () => \"desktop\" !== devices.current().deviceType;\r\nvar isIOSPlatform = () => \"ios\" === devices.current().platform;\r\nvar TOOLBAR_LOCATION = {\r\n AFTER: \"after\",\r\n BEFORE: \"before\"\r\n};\r\nvar getButtonsConfig = () => ({\r\n doneButton: {\r\n shortcut: \"done\",\r\n options: {\r\n text: messageLocalization.format(\"Done\")\r\n },\r\n location: TOOLBAR_LOCATION.AFTER\r\n },\r\n cancelButton: {\r\n shortcut: \"cancel\",\r\n location: isIOSPlatform() ? TOOLBAR_LOCATION.BEFORE : TOOLBAR_LOCATION.AFTER\r\n }\r\n});\r\nexport var getPopupToolbarItems = (allowUpdating, doneClick) => {\r\n var result = [];\r\n var buttonsConfig = getButtonsConfig();\r\n if (allowUpdating) {\r\n result.push(_extends({}, buttonsConfig.doneButton, {\r\n onClick: doneClick\r\n }))\r\n }\r\n result.push(buttonsConfig.cancelButton);\r\n return result\r\n};\r\nexport var isPopupFullScreenNeeded = () => {\r\n var window = getWindow();\r\n var width = window && getWidth(window);\r\n if (width) {\r\n return isMobile() ? width < POPUP_WIDTH.MOBILE.FULLSCREEN : width < POPUP_WIDTH.FULLSCREEN\r\n }\r\n return false\r\n};\r\nexport var getMaxWidth = isRecurrence => {\r\n if (isMobile()) {\r\n return POPUP_WIDTH.MOBILE.DEFAULT\r\n }\r\n return isRecurrence ? POPUP_WIDTH.RECURRENCE : POPUP_WIDTH.DEFAULT\r\n};\r\nexport var getPopupSize = isRecurrence => ({\r\n fullScreen: isPopupFullScreenNeeded(),\r\n maxWidth: getMaxWidth(isRecurrence)\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_loading.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n value as viewPort\r\n} from \"../../core/utils/view_port\";\r\nimport LoadPanel from \"../../ui/load_panel\";\r\nvar loading = null;\r\nvar createLoadPanel = function(options) {\r\n return new LoadPanel($(\"<div>\").appendTo(options && options.container || viewPort()), options)\r\n};\r\nvar removeLoadPanel = function() {\r\n if (!loading) {\r\n return\r\n }\r\n loading.$element().remove();\r\n loading = null\r\n};\r\nexport function show(options) {\r\n removeLoadPanel();\r\n loading = createLoadPanel(options);\r\n return loading.show()\r\n}\r\nexport function hide() {\r\n if (!loading) {\r\n return (new Deferred).resolve()\r\n }\r\n return loading.hide().done(removeLoadPanel).promise()\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointment_popup/m_popup.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../../events/visibility_change\";\r\nimport {\r\n getMaxWidth,\r\n getPopupToolbarItems,\r\n isPopupFullScreenNeeded\r\n} from \"../../../renovation/ui/scheduler/appointment_edit_form/popup_config\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../scheduler/m_expression_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n hide as hideLoading,\r\n show as showLoading\r\n} from \"../m_loading\";\r\nimport {\r\n getNormalizedResources\r\n} from \"../resources/m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_POPUP_CLASS = \"dx-scheduler-appointment-popup\";\r\nvar DAY_IN_MS = toMs(\"day\");\r\nvar POPUP_CONFIG = {\r\n height: \"auto\",\r\n maxHeight: \"100%\",\r\n showCloseButton: false,\r\n showTitle: false,\r\n preventScrollEvents: false,\r\n enableBodyScroll: false,\r\n defaultOptionsRules: [{\r\n device: () => devices.current().android,\r\n options: {\r\n showTitle: false\r\n }\r\n }],\r\n _ignorePreventScrollEventsDeprecation: true\r\n};\r\nexport var ACTION_TO_APPOINTMENT = {\r\n CREATE: 0,\r\n UPDATE: 1,\r\n EXCLUDE_FROM_SERIES: 2\r\n};\r\nexport class AppointmentPopup {\r\n constructor(scheduler, form) {\r\n this.scheduler = scheduler;\r\n this.form = form;\r\n this.popup = null;\r\n this.state = {\r\n action: null,\r\n lastEditData: null,\r\n saveChangesLocker: false,\r\n appointment: {\r\n data: null\r\n }\r\n }\r\n }\r\n get visible() {\r\n return this.popup ? this.popup.option(\"visible\") : false\r\n }\r\n show(appointment, config) {\r\n this.state.appointment.data = appointment;\r\n this.state.action = config.action;\r\n this.state.excludeInfo = config.excludeInfo;\r\n if (!this.popup) {\r\n var popupConfig = this._createPopupConfig();\r\n this.popup = this._createPopup(popupConfig)\r\n }\r\n this.popup.option(\"toolbarItems\", getPopupToolbarItems(config.isToolbarVisible, e => this._doneButtonClickHandler(e)));\r\n this.popup.show()\r\n }\r\n hide() {\r\n this.popup.hide()\r\n }\r\n dispose() {\r\n var _a;\r\n null === (_a = this.popup) || void 0 === _a ? void 0 : _a.$element().remove()\r\n }\r\n _createPopup(options) {\r\n var popupElement = $(\"<div>\").addClass(APPOINTMENT_POPUP_CLASS).appendTo(this.scheduler.getElement());\r\n return this.scheduler.createComponent(popupElement, Popup, options)\r\n }\r\n _createPopupConfig() {\r\n return _extends(_extends({}, POPUP_CONFIG), {\r\n onHiding: () => this.scheduler.focus(),\r\n contentTemplate: () => this._createPopupContent(),\r\n onShowing: e => this._onShowing(e),\r\n wrapperAttr: {\r\n class: APPOINTMENT_POPUP_CLASS\r\n }\r\n })\r\n }\r\n _onShowing(e) {\r\n this._updateForm();\r\n var arg = {\r\n form: this.form.dxForm,\r\n popup: this.popup,\r\n appointmentData: this.state.appointment.data,\r\n cancel: false\r\n };\r\n this.scheduler.getAppointmentFormOpening()(arg);\r\n this.scheduler.processActionResult(arg, canceled => {\r\n if (canceled) {\r\n e.cancel = true\r\n } else {\r\n this.updatePopupFullScreenMode()\r\n }\r\n })\r\n }\r\n _createPopupContent() {\r\n this._createForm();\r\n return this.form.dxForm.$element()\r\n }\r\n _createFormData(rawAppointment) {\r\n var appointment = this._createAppointmentAdapter(rawAppointment);\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var resources = this.scheduler.getResources();\r\n var normalizedResources = getNormalizedResources(rawAppointment, dataAccessors, resources);\r\n return _extends(_extends(_extends({}, rawAppointment), normalizedResources), {\r\n repeat: !!appointment.recurrenceRule\r\n })\r\n }\r\n _createForm() {\r\n var rawAppointment = this.state.appointment.data;\r\n var formData = this._createFormData(rawAppointment);\r\n this.form.create(this.triggerResize.bind(this), this.changeSize.bind(this), formData)\r\n }\r\n _isReadOnly(rawAppointment) {\r\n var appointment = this._createAppointmentAdapter(rawAppointment);\r\n if (rawAppointment && appointment.disabled) {\r\n return true\r\n }\r\n if (this.state.action === ACTION_TO_APPOINTMENT.CREATE) {\r\n return false\r\n }\r\n return !this.scheduler.getEditingConfig().allowUpdating\r\n }\r\n _createAppointmentAdapter(rawAppointment) {\r\n return createAppointmentAdapter(rawAppointment, this.scheduler.getDataAccessors(), this.scheduler.getTimeZoneCalculator())\r\n }\r\n _updateForm() {\r\n var {\r\n data: data\r\n } = this.state.appointment;\r\n var appointment = this._createAppointmentAdapter(this._createFormData(data));\r\n if (appointment.startDate) {\r\n appointment.startDate = appointment.calculateStartDate(\"toAppointment\")\r\n }\r\n if (appointment.endDate) {\r\n appointment.endDate = appointment.calculateEndDate(\"toAppointment\")\r\n }\r\n var formData = appointment.source();\r\n this.form.readOnly = this._isReadOnly(formData);\r\n this.form.updateFormData(formData)\r\n }\r\n triggerResize() {\r\n if (this.popup) {\r\n triggerResizeEvent(this.popup.$element())\r\n }\r\n }\r\n changeSize(isRecurrence) {\r\n if (this.popup) {\r\n var isFullScreen = isPopupFullScreenNeeded();\r\n var maxWidth = isFullScreen ? \"100%\" : getMaxWidth(isRecurrence);\r\n this.popup.option(\"fullScreen\", isFullScreen);\r\n this.popup.option(\"maxWidth\", maxWidth)\r\n }\r\n }\r\n updatePopupFullScreenMode() {\r\n if (this.form.dxForm && this.visible) {\r\n var {\r\n formData: formData\r\n } = this.form;\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var isRecurrence = ExpressionUtils.getField(dataAccessors, \"recurrenceRule\", formData);\r\n this.changeSize(isRecurrence)\r\n }\r\n }\r\n saveChangesAsync(isShowLoadPanel) {\r\n var deferred = new Deferred;\r\n var validation = this.form.dxForm.validate();\r\n isShowLoadPanel && this._showLoadPanel();\r\n when(validation && validation.complete || validation).done(validation => {\r\n if (validation && !validation.isValid) {\r\n hideLoading();\r\n deferred.resolve(false);\r\n return\r\n }\r\n var adapter = this._createAppointmentAdapter(this.form.formData);\r\n var clonedAdapter = adapter.clone({\r\n pathTimeZone: \"fromAppointment\"\r\n });\r\n this._addMissingDSTTime(adapter, clonedAdapter);\r\n var appointment = clonedAdapter.source();\r\n delete appointment.repeat;\r\n switch (this.state.action) {\r\n case ACTION_TO_APPOINTMENT.CREATE:\r\n this.scheduler.addAppointment(appointment).done(deferred.resolve);\r\n break;\r\n case ACTION_TO_APPOINTMENT.UPDATE:\r\n this.scheduler.updateAppointment(this.state.appointment.data, appointment).done(deferred.resolve);\r\n break;\r\n case ACTION_TO_APPOINTMENT.EXCLUDE_FROM_SERIES:\r\n this.scheduler.updateAppointment(this.state.excludeInfo.sourceAppointment, this.state.excludeInfo.updatedAppointment);\r\n this.scheduler.addAppointment(appointment).done(deferred.resolve)\r\n }\r\n deferred.done(() => {\r\n hideLoading();\r\n this.state.lastEditData = appointment\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n _doneButtonClickHandler(e) {\r\n e.cancel = true;\r\n this.saveEditDataAsync()\r\n }\r\n saveEditDataAsync() {\r\n var deferred = new Deferred;\r\n if (this._tryLockSaveChanges()) {\r\n when(this.saveChangesAsync(true)).done(() => {\r\n if (this.state.lastEditData) {\r\n var adapter = this._createAppointmentAdapter(this.state.lastEditData);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = adapter;\r\n var startTime = startDate.getTime();\r\n var endTime = endDate.getTime();\r\n var inAllDayRow = allDay || endTime - startTime >= DAY_IN_MS;\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var resourceList = this.scheduler.getResources();\r\n var normalizedResources = getNormalizedResources(this.state.lastEditData, dataAccessors, resourceList);\r\n this.scheduler.updateScrollPosition(startDate, normalizedResources, inAllDayRow);\r\n this.state.lastEditData = null\r\n }\r\n this._unlockSaveChanges();\r\n deferred.resolve()\r\n })\r\n }\r\n return deferred.promise()\r\n }\r\n _showLoadPanel() {\r\n var container = this.popup.$overlayContent();\r\n showLoading({\r\n container: container,\r\n position: {\r\n of: container\r\n }\r\n })\r\n }\r\n _tryLockSaveChanges() {\r\n if (false === this.state.saveChangesLocker) {\r\n this.state.saveChangesLocker = true;\r\n return true\r\n }\r\n return false\r\n }\r\n _unlockSaveChanges() {\r\n this.state.saveChangesLocker = false\r\n }\r\n _addMissingDSTTime(formAppointmentAdapter, clonedAppointmentAdapter) {\r\n var timeZoneCalculator = this.scheduler.getTimeZoneCalculator();\r\n clonedAppointmentAdapter.startDate = this._addMissingDSTShiftToDate(timeZoneCalculator, formAppointmentAdapter.startDate, clonedAppointmentAdapter.startDate);\r\n if (clonedAppointmentAdapter.endDate) {\r\n clonedAppointmentAdapter.endDate = this._addMissingDSTShiftToDate(timeZoneCalculator, formAppointmentAdapter.endDate, clonedAppointmentAdapter.endDate)\r\n }\r\n }\r\n _addMissingDSTShiftToDate(timeZoneCalculator, originFormDate, clonedDate) {\r\n var _a, _b;\r\n var originTimezoneShift = null === (_a = timeZoneCalculator.getOffsets(originFormDate)) || void 0 === _a ? void 0 : _a.common;\r\n var clonedTimezoneShift = null === (_b = timeZoneCalculator.getOffsets(clonedDate)) || void 0 === _b ? void 0 : _b.common;\r\n var shiftDifference = originTimezoneShift - clonedTimezoneShift;\r\n return shiftDifference ? new Date(clonedDate.getTime() + shiftDifference * toMs(\"hour\")) : clonedDate\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/utils/filtering/getDatesWithoutTime.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../core/utils/date\";\r\nvar getDatesWithoutTime = (min, max) => {\r\n var newMin = dateUtils.trimTime(min);\r\n var newMax = dateUtils.trimTime(max);\r\n newMax.setDate(newMax.getDate() + 1);\r\n return [newMin, newMax]\r\n};\r\nexport default getDatesWithoutTime;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/utils/filtering/remote.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../../core/utils/extend\";\r\nimport dateSerialization from \"../../../../../core/utils/date_serialization\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../../core/utils/type\";\r\nimport getDatesWithoutTime from \"./getDatesWithoutTime\";\r\nvar FilterPosition = {\r\n dateFilter: 0,\r\n userFilter: 1\r\n};\r\nclass RemoteFilterCombiner {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get dataSourceFilter() {\r\n return this.options.dataSourceFilter\r\n }\r\n get dateSerializationFormat() {\r\n return this.options.dateSerializationFormat\r\n }\r\n get forceIsoDateParsing() {\r\n return isDefined(this.options.forceIsoDateParsing) ? this.options.forceIsoDateParsing : true\r\n }\r\n makeDateFilter(min, max) {\r\n var {\r\n endDateExpr: endDateExpr,\r\n recurrenceRuleExpr: recurrenceRuleExpr,\r\n startDateExpr: startDateExpr\r\n } = this.dataAccessors.expr;\r\n var dateFilter = [\r\n [\r\n [endDateExpr, \">=\", min],\r\n [startDateExpr, \"<\", max]\r\n ], \"or\", [recurrenceRuleExpr, \"startswith\", \"freq\"], \"or\", [\r\n [endDateExpr, min],\r\n [startDateExpr, min]\r\n ]\r\n ];\r\n if (!recurrenceRuleExpr) {\r\n dateFilter.splice(1, 2)\r\n }\r\n return dateFilter\r\n }\r\n combineFilters(dateFilter, userFilter) {\r\n var combinedFilter = [];\r\n dateFilter && combinedFilter.push(dateFilter);\r\n userFilter && combinedFilter.push(userFilter);\r\n return this.serializeRemoteFilter(combinedFilter)\r\n }\r\n serializeRemoteFilter(combinedFilter) {\r\n if (!Array.isArray(combinedFilter)) {\r\n return combinedFilter\r\n }\r\n var {\r\n endDateExpr: endDateExpr,\r\n startDateExpr: startDateExpr\r\n } = this.dataAccessors.expr;\r\n var filter = extend([], combinedFilter);\r\n if (isString(filter[0])) {\r\n if (this.forceIsoDateParsing && filter.length > 1) {\r\n if (filter[0] === startDateExpr || filter[0] === endDateExpr) {\r\n var lastFilterValue = filter[filter.length - 1];\r\n filter[filter.length - 1] = dateSerialization.serializeDate(new Date(lastFilterValue), this.dateSerializationFormat)\r\n }\r\n }\r\n }\r\n for (var i = 0; i < filter.length; i += 1) {\r\n filter[i] = this.serializeRemoteFilter(filter[i])\r\n }\r\n return filter\r\n }\r\n getUserFilter(dateFilter) {\r\n if (!this.dataSourceFilter || equalByValue(this.dataSourceFilter, dateFilter)) {\r\n return\r\n }\r\n var containsDateFilter = this.dataSourceFilter.length > 0 && equalByValue(this.dataSourceFilter[FilterPosition.dateFilter], dateFilter);\r\n var userFilter = containsDateFilter ? this.dataSourceFilter[FilterPosition.userFilter] : this.dataSourceFilter;\r\n return userFilter\r\n }\r\n combine(min, max) {\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n var dateFilter = this.makeDateFilter(trimMin, trimMax);\r\n var userFilter = this.getUserFilter(dateFilter);\r\n var combinedFilter = this.combineFilters(dateFilter, userFilter);\r\n return combinedFilter\r\n }\r\n}\r\nvar combineRemoteFilter = options => new RemoteFilterCombiner(options).combine(options.min, options.max);\r\nexport default combineRemoteFilter;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nvar STORE_EVENTS = {\r\n updating: \"updating\",\r\n push: \"push\"\r\n};\r\nexport class AppointmentDataSource {\r\n constructor(dataSource) {\r\n this.setDataSource(dataSource);\r\n this._updatedAppointmentKeys = []\r\n }\r\n get keyName() {\r\n var store = this._dataSource.store();\r\n return store.key()\r\n }\r\n get isDataSourceInit() {\r\n return !!this._dataSource\r\n }\r\n _getStoreKey(target) {\r\n var store = this._dataSource.store();\r\n return store.keyOf(target)\r\n }\r\n setDataSource(dataSource) {\r\n this._dataSource = dataSource;\r\n this.cleanState();\r\n this._initStoreChangeHandlers()\r\n }\r\n _initStoreChangeHandlers() {\r\n var dataSource = this._dataSource;\r\n var store = null === dataSource || void 0 === dataSource ? void 0 : dataSource.store();\r\n if (store) {\r\n store.on(STORE_EVENTS.updating, key => {\r\n var keyName = store.key();\r\n if (keyName) {\r\n this._updatedAppointmentKeys.push({\r\n key: keyName,\r\n value: key\r\n })\r\n } else {\r\n this._updatedAppointment = key\r\n }\r\n });\r\n store.on(STORE_EVENTS.push, pushItems => {\r\n var items = dataSource.items();\r\n var keyName = store.key();\r\n pushItems.forEach(pushItem => {\r\n var itemExists = 0 !== items.filter(item => item[keyName] === pushItem.key).length;\r\n if (itemExists) {\r\n this._updatedAppointmentKeys.push({\r\n key: keyName,\r\n value: pushItem.key\r\n })\r\n } else {\r\n var {\r\n data: data\r\n } = pushItem;\r\n data && items.push(data)\r\n }\r\n });\r\n dataSource.load()\r\n })\r\n }\r\n }\r\n getUpdatedAppointment() {\r\n return this._updatedAppointment\r\n }\r\n getUpdatedAppointmentKeys() {\r\n return this._updatedAppointmentKeys\r\n }\r\n cleanState() {\r\n this._updatedAppointment = null;\r\n this._updatedAppointmentKeys = []\r\n }\r\n add(rawAppointment) {\r\n return this._dataSource.store().insert(rawAppointment).done(() => this._dataSource.load())\r\n }\r\n update(target, data) {\r\n var key = this._getStoreKey(target);\r\n var d = new Deferred;\r\n this._dataSource.store().update(key, data).done(result => this._dataSource.load().done(() => d.resolve(result)).fail(d.reject)).fail(d.reject);\r\n return d.promise()\r\n }\r\n remove(rawAppointment) {\r\n var key = this._getStoreKey(rawAppointment);\r\n return this._dataSource.store().remove(key).done(() => this._dataSource.load())\r\n }\r\n destroy() {\r\n var _a;\r\n var store = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.store();\r\n if (store) {\r\n store.off(STORE_EVENTS.updating);\r\n store.off(STORE_EVENTS.push)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_filter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n wrapToArray\r\n} from \"../../../../core/utils/array\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport query from \"../../../../data/query\";\r\nimport {\r\n getAppointmentTakesAllDay\r\n} from \"../../../../renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay\";\r\nimport {\r\n hasResourceValue\r\n} from \"../../../../renovation/ui/scheduler/resources/hasResourceValue\";\r\nimport getDatesWithoutTime from \"../../../../renovation/ui/scheduler/utils/filtering/getDatesWithoutTime\";\r\nimport {\r\n isDateAndTimeView as calculateIsDateAndTimeView,\r\n isTimelineView\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../../m_recurrence\";\r\nimport {\r\n getResourcesDataByGroups\r\n} from \"../../resources/m_utils\";\r\nimport {\r\n _appointmentPartInInterval,\r\n compareDateWithEndDayHour,\r\n compareDateWithStartDayHour,\r\n getAppointmentTakesSeveralDays,\r\n getRecurrenceException\r\n} from \"./m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar FilterStrategies = {\r\n virtual: \"virtual\",\r\n standard: \"standard\"\r\n};\r\nexport class AppointmentFilterBaseStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this.dataAccessors = this.options.dataAccessors;\r\n this._init()\r\n }\r\n get strategyName() {\r\n return FilterStrategies.standard\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get viewStartDayHour() {\r\n return this.options.startDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.endDayHour\r\n }\r\n get timezone() {\r\n return this.options.timezone\r\n }\r\n get firstDayOfWeek() {\r\n return this.options.firstDayOfWeek\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get loadedResources() {\r\n return this._resolveOption(\"loadedResources\")\r\n }\r\n get supportAllDayRow() {\r\n return this._resolveOption(\"supportAllDayRow\")\r\n }\r\n get viewType() {\r\n return this._resolveOption(\"viewType\")\r\n }\r\n get viewDirection() {\r\n return this._resolveOption(\"viewDirection\")\r\n }\r\n get dateRange() {\r\n return this._resolveOption(\"dateRange\")\r\n }\r\n get groupCount() {\r\n return this._resolveOption(\"groupCount\")\r\n }\r\n get viewDataProvider() {\r\n return this._resolveOption(\"viewDataProvider\")\r\n }\r\n get allDayPanelMode() {\r\n return this._resolveOption(\"allDayPanelMode\")\r\n }\r\n _resolveOption(name) {\r\n var result = this.options[name];\r\n return \"function\" === typeof result ? result() : result\r\n }\r\n _init() {\r\n this.setDataAccessors(this.dataAccessors)\r\n }\r\n filter(preparedItems) {\r\n var [min, max] = this.dateRange;\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var allDay = !this.showAllDayPanel && this.supportAllDayRow ? false : void 0;\r\n return this.filterLoadedAppointments({\r\n startDayHour: this.viewStartDayHour,\r\n endDayHour: this.viewEndDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: this.viewStartDayHour,\r\n viewEndDayHour: this.viewEndDayHour,\r\n min: min,\r\n max: max,\r\n resources: this.loadedResources,\r\n allDay: allDay,\r\n supportMultiDayAppointments: isTimelineView(this.viewType),\r\n firstDayOfWeek: this.firstDayOfWeek\r\n }, preparedItems)\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n var adapters = filteredItems.map(item => createAppointmentAdapter(item, this.dataAccessors, this.timeZoneCalculator));\r\n var result = false;\r\n each(adapters, (_, item) => {\r\n if (getAppointmentTakesAllDay(item, this.allDayPanelMode)) {\r\n result = true;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n setDataAccessors(dataAccessors) {\r\n this.dataAccessors = dataAccessors\r\n }\r\n _createAllDayAppointmentFilter() {\r\n return [\r\n [appointment => getAppointmentTakesAllDay(appointment, this.allDayPanelMode)]\r\n ]\r\n }\r\n _createCombinedFilter(filterOptions) {\r\n var min = new Date(filterOptions.min);\r\n var max = new Date(filterOptions.max);\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n resources: resources,\r\n firstDayOfWeek: firstDayOfWeek,\r\n checkIntersectViewport: checkIntersectViewport,\r\n supportMultiDayAppointments: supportMultiDayAppointments\r\n } = filterOptions;\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n var useRecurrence = isDefined(this.dataAccessors.getter.recurrenceRule);\r\n return [\r\n [appointment => {\r\n var _a;\r\n var appointmentVisible = null !== (_a = appointment.visible) && void 0 !== _a ? _a : true;\r\n if (!appointmentVisible) {\r\n return false\r\n }\r\n var {\r\n allDay: isAllDay,\r\n hasRecurrenceRule: hasRecurrenceRule\r\n } = appointment;\r\n var startDate = dateUtilsTs.addOffsets(appointment.startDate, [-viewOffset]);\r\n var endDate = dateUtilsTs.addOffsets(appointment.endDate, [-viewOffset]);\r\n var appointmentTakesAllDay = getAppointmentTakesAllDay(appointment, this.allDayPanelMode);\r\n if (!hasRecurrenceRule) {\r\n if (!(endDate >= trimMin && startDate < trimMax || dateUtils.sameDate(endDate, trimMin) && dateUtils.sameDate(startDate, trimMin))) {\r\n return false\r\n }\r\n }\r\n var appointmentTakesSeveralDays = getAppointmentTakesSeveralDays(appointment);\r\n var isLongAppointment = appointmentTakesSeveralDays || appointmentTakesAllDay;\r\n if ((null === resources || void 0 === resources ? void 0 : resources.length) && !this._filterAppointmentByResources(appointment.rawAppointment, resources)) {\r\n return false\r\n }\r\n if (appointmentTakesAllDay && false === filterOptions.allDay) {\r\n return false\r\n }\r\n if (hasRecurrenceRule) {\r\n var recurrenceException = getRecurrenceException(appointment, this.timeZoneCalculator, this.timezone);\r\n if (!this._filterAppointmentByRRule(_extends(_extends({}, appointment), {\r\n recurrenceException: recurrenceException,\r\n allDay: appointmentTakesAllDay\r\n }), min, max, startDayHour, endDayHour, firstDayOfWeek)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && supportMultiDayAppointments && isLongAppointment) {\r\n if (endDate < min && (!useRecurrence || useRecurrence && !hasRecurrenceRule)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && isDefined(startDayHour) && (!useRecurrence || !filterOptions.isVirtualScrolling)) {\r\n if (!compareDateWithStartDayHour(startDate, endDate, startDayHour, appointmentTakesAllDay, appointmentTakesSeveralDays)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && isDefined(endDayHour)) {\r\n if (!compareDateWithEndDayHour({\r\n startDate: startDate,\r\n endDate: endDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n allDay: appointmentTakesAllDay,\r\n severalDays: appointmentTakesSeveralDays,\r\n min: min,\r\n max: max,\r\n checkIntersectViewport: checkIntersectViewport\r\n })) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && (!isLongAppointment || supportMultiDayAppointments)) {\r\n if (endDate < min && useRecurrence && !hasRecurrenceRule) {\r\n return false\r\n }\r\n }\r\n return true\r\n }]\r\n ]\r\n }\r\n _createAppointmentFilter(filterOptions) {\r\n return this._createCombinedFilter(filterOptions)\r\n }\r\n _filterAppointmentByResources(appointment, resources) {\r\n var checkAppointmentResourceValues = (resourceName, resourceIndex) => {\r\n var resourceGetter = this.dataAccessors.resources.getter[resourceName];\r\n var resource;\r\n if (isFunction(resourceGetter)) {\r\n resource = resourceGetter(appointment)\r\n }\r\n var appointmentResourceValues = wrapToArray(resource);\r\n var resourceData = map(resources[resourceIndex].items, _ref => {\r\n var {\r\n id: id\r\n } = _ref;\r\n return id\r\n });\r\n for (var i = 0; i < appointmentResourceValues.length; i++) {\r\n if (hasResourceValue(resourceData, appointmentResourceValues[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n var result = false;\r\n for (var i = 0; i < resources.length; i++) {\r\n var resourceName = resources[i].name;\r\n result = checkAppointmentResourceValues(resourceName, i);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n return result\r\n }\r\n _filterAppointmentByRRule(appointment, min, max, startDayHour, endDayHour, firstDayOfWeek) {\r\n var {\r\n recurrenceRule: recurrenceRule\r\n } = appointment;\r\n var {\r\n recurrenceException: recurrenceException\r\n } = appointment;\r\n var {\r\n allDay: allDay\r\n } = appointment;\r\n var result = true;\r\n var appointmentStartDate = appointment.startDate;\r\n var appointmentEndDate = appointment.endDate;\r\n var recurrenceProcessor = getRecurrenceProcessor();\r\n if (allDay || _appointmentPartInInterval(appointmentStartDate, appointmentEndDate, startDayHour, endDayHour)) {\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n min = trimMin;\r\n max = new Date(trimMax.getTime() - toMs(\"minute\"))\r\n }\r\n if (recurrenceRule && !recurrenceProcessor.isValidRecurrenceRule(recurrenceRule)) {\r\n result = appointmentEndDate > min && appointmentStartDate <= max\r\n }\r\n if (result && recurrenceProcessor.isValidRecurrenceRule(recurrenceRule)) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n result = recurrenceProcessor.hasRecurrence({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: appointmentStartDate,\r\n end: appointmentEndDate,\r\n min: dateUtilsTs.addOffsets(min, [viewOffset]),\r\n max: dateUtilsTs.addOffsets(max, [viewOffset]),\r\n firstDayOfWeek: firstDayOfWeek,\r\n appointmentTimezoneOffset: this.timeZoneCalculator.getOriginStartDateOffsetInMs(appointmentStartDate, appointment.startDateTimeZone, false)\r\n })\r\n }\r\n return result\r\n }\r\n filterLoadedAppointments(filterOptions, preparedItems) {\r\n var filteredItems = this.filterPreparedItems(filterOptions, preparedItems);\r\n return filteredItems.map(_ref2 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref2;\r\n return rawAppointment\r\n })\r\n }\r\n filterPreparedItems(filterOptions, preparedItems) {\r\n var combinedFilter = this._createAppointmentFilter(filterOptions);\r\n return query(preparedItems).filter(combinedFilter).toArray()\r\n }\r\n filterAllDayAppointments(preparedItems) {\r\n var combinedFilter = this._createAllDayAppointmentFilter();\r\n return query(preparedItems).filter(combinedFilter).toArray().map(_ref3 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref3;\r\n return rawAppointment\r\n })\r\n }\r\n}\r\nexport class AppointmentFilterVirtualStrategy extends AppointmentFilterBaseStrategy {\r\n get strategyName() {\r\n return FilterStrategies.virtual\r\n }\r\n get resources() {\r\n return this.options.resources\r\n }\r\n filter(preparedItems) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var hourMs = toMs(\"hour\");\r\n var isCalculateStartAndEndDayHour = calculateIsDateAndTimeView(this.viewType);\r\n var checkIntersectViewport = isCalculateStartAndEndDayHour && \"horizontal\" === this.viewDirection;\r\n var isAllDayWorkspace = !this.supportAllDayRow;\r\n var showAllDayAppointments = this.showAllDayPanel || isAllDayWorkspace;\r\n var endViewDate = this.viewDataProvider.getLastViewDateByEndDayHour(this.viewEndDayHour);\r\n var shiftedEndViewDate = dateUtilsTs.addOffsets(endViewDate, [viewOffset]);\r\n var filterOptions = [];\r\n var groupsInfo = this.viewDataProvider.getCompletedGroupsInfo();\r\n groupsInfo.forEach(item => {\r\n var {\r\n groupIndex: groupIndex\r\n } = item;\r\n var groupStartDate = item.startDate;\r\n var groupEndDate = new Date(Math.min(item.endDate.getTime(), shiftedEndViewDate.getTime()));\r\n var startDayHour = isCalculateStartAndEndDayHour ? groupStartDate.getHours() : this.viewStartDayHour;\r\n var endDayHour = isCalculateStartAndEndDayHour ? startDayHour + groupStartDate.getMinutes() / 60 + (groupEndDate.getTime() - groupStartDate.getTime()) / hourMs : this.viewEndDayHour;\r\n var resources = this._getPrerenderFilterResources(groupIndex);\r\n var hasAllDayPanel = this.viewDataProvider.hasGroupAllDayPanel(groupIndex);\r\n var supportAllDayAppointment = isAllDayWorkspace || !!showAllDayAppointments && hasAllDayPanel;\r\n filterOptions.push({\r\n isVirtualScrolling: true,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: this.viewStartDayHour,\r\n viewEndDayHour: this.viewEndDayHour,\r\n min: dateUtilsTs.addOffsets(groupStartDate, [-viewOffset]),\r\n max: dateUtilsTs.addOffsets(groupEndDate, [-viewOffset]),\r\n supportMultiDayAppointments: isTimelineView(this.viewType),\r\n allDay: supportAllDayAppointment,\r\n resources: resources,\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n checkIntersectViewport: checkIntersectViewport\r\n })\r\n });\r\n return this.filterLoadedAppointments({\r\n filterOptions: filterOptions,\r\n groupCount: this.groupCount\r\n }, preparedItems)\r\n }\r\n filterPreparedItems(_ref4, preparedItems) {\r\n var {\r\n filterOptions: filterOptions,\r\n groupCount: groupCount\r\n } = _ref4;\r\n var combinedFilters = [];\r\n var itemsToFilter = preparedItems;\r\n var needPreFilter = groupCount > 0;\r\n if (needPreFilter) {\r\n itemsToFilter = itemsToFilter.filter(_ref5 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref5;\r\n for (var i = 0; i < filterOptions.length; ++i) {\r\n var {\r\n resources: resources\r\n } = filterOptions[i];\r\n if (this._filterAppointmentByResources(rawAppointment, resources)) {\r\n return true\r\n }\r\n }\r\n })\r\n }\r\n filterOptions.forEach(option => {\r\n combinedFilters.length && combinedFilters.push(\"or\");\r\n var filter = this._createAppointmentFilter(option);\r\n combinedFilters.push(filter)\r\n });\r\n return query(itemsToFilter).filter(combinedFilters).toArray()\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n return this.filterAllDayAppointments(preparedItems).length > 0\r\n }\r\n _getPrerenderFilterResources(groupIndex) {\r\n var cellGroup = this.viewDataProvider.getCellsGroup(groupIndex);\r\n return getResourcesDataByGroups(this.loadedResources, this.resources, [cellGroup])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_data_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../../core/config\";\r\nimport combineRemoteFilter from \"../../../../renovation/ui/scheduler/utils/filtering/remote\";\r\nimport {\r\n AppointmentDataSource\r\n} from \"./m_appointment_data_source\";\r\nimport {\r\n AppointmentFilterBaseStrategy,\r\n AppointmentFilterVirtualStrategy\r\n} from \"./m_appointment_filter\";\r\nvar FilterStrategies = {\r\n virtual: \"virtual\",\r\n standard: \"standard\"\r\n};\r\nexport class AppointmentDataProvider {\r\n constructor(options) {\r\n this.options = options;\r\n this.dataSource = this.options.dataSource;\r\n this.dataAccessors = this.options.dataAccessors;\r\n this.timeZoneCalculator = this.options.timeZoneCalculator;\r\n this.appointmentDataSource = new AppointmentDataSource(this.dataSource);\r\n this.initFilterStrategy()\r\n }\r\n get keyName() {\r\n return this.appointmentDataSource.keyName\r\n }\r\n get isDataSourceInit() {\r\n return !!this.dataSource\r\n }\r\n get filterStrategyName() {\r\n return this.options.getIsVirtualScrolling() ? FilterStrategies.virtual : FilterStrategies.standard\r\n }\r\n getFilterStrategy() {\r\n if (!this.filterStrategy || this.filterStrategy.strategyName !== this.filterStrategyName) {\r\n this.initFilterStrategy()\r\n }\r\n return this.filterStrategy\r\n }\r\n initFilterStrategy() {\r\n var filterOptions = {\r\n resources: this.options.resources,\r\n dataAccessors: this.dataAccessors,\r\n startDayHour: this.options.startDayHour,\r\n endDayHour: this.options.endDayHour,\r\n viewOffset: this.options.viewOffset,\r\n showAllDayPanel: this.options.showAllDayPanel,\r\n timeZoneCalculator: this.options.timeZoneCalculator,\r\n loadedResources: this.options.getLoadedResources,\r\n supportAllDayRow: this.options.getSupportAllDayRow,\r\n viewType: this.options.getViewType,\r\n viewDirection: this.options.getViewDirection,\r\n dateRange: this.options.getDateRange,\r\n groupCount: this.options.getGroupCount,\r\n viewDataProvider: this.options.getViewDataProvider,\r\n allDayPanelMode: this.options.allDayPanelMode\r\n };\r\n this.filterStrategy = this.filterStrategyName === FilterStrategies.virtual ? new AppointmentFilterVirtualStrategy(filterOptions) : new AppointmentFilterBaseStrategy(filterOptions)\r\n }\r\n setDataSource(dataSource) {\r\n this.dataSource = dataSource;\r\n this.initFilterStrategy();\r\n this.appointmentDataSource.setDataSource(this.dataSource)\r\n }\r\n updateDataAccessors(dataAccessors) {\r\n this.dataAccessors = dataAccessors;\r\n this.initFilterStrategy()\r\n }\r\n filter(preparedItems) {\r\n return this.getFilterStrategy().filter(preparedItems)\r\n }\r\n filterByDate(min, max, remoteFiltering, dateSerializationFormat) {\r\n if (!this.dataSource || !remoteFiltering) {\r\n return\r\n }\r\n var dataSourceFilter = this.dataSource.filter();\r\n var filter = combineRemoteFilter({\r\n dataSourceFilter: dataSourceFilter,\r\n dataAccessors: this.dataAccessors,\r\n min: min,\r\n max: max,\r\n dateSerializationFormat: dateSerializationFormat,\r\n forceIsoDateParsing: config().forceIsoDateParsing\r\n });\r\n this.dataSource.filter(filter)\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n return this.getFilterStrategy().hasAllDayAppointments(filteredItems, preparedItems)\r\n }\r\n filterLoadedAppointments(filterOption, preparedItems) {\r\n return this.getFilterStrategy().filterLoadedAppointments(filterOption, preparedItems)\r\n }\r\n calculateAppointmentEndDate(isAllDay, startDate) {\r\n return this.getFilterStrategy().calculateAppointmentEndDate(isAllDay, startDate)\r\n }\r\n cleanState() {\r\n this.appointmentDataSource.cleanState()\r\n }\r\n getUpdatedAppointment() {\r\n return this.appointmentDataSource._updatedAppointment\r\n }\r\n getUpdatedAppointmentKeys() {\r\n return this.appointmentDataSource._updatedAppointmentKeys\r\n }\r\n add(rawAppointment) {\r\n return this.appointmentDataSource.add(rawAppointment)\r\n }\r\n update(target, rawAppointment) {\r\n return this.appointmentDataSource.update(target, rawAppointment)\r\n }\r\n remove(rawAppointment) {\r\n return this.appointmentDataSource.remove(rawAppointment)\r\n }\r\n destroy() {\r\n this.appointmentDataSource.destroy()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tooltip/ui.tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Tooltip from \"./tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n value as viewPort\r\n} from \"../../core/utils/view_port\";\r\nvar tooltip = null;\r\nvar removeTooltipElement = null;\r\nvar createTooltip = function(options) {\r\n options = extend({\r\n position: \"top\"\r\n }, options);\r\n var content = options.content;\r\n delete options.content;\r\n var $tooltip = $(\"<div>\").html(content).appendTo(viewPort());\r\n removeTooltipElement = function() {\r\n $tooltip.remove()\r\n };\r\n tooltip = new Tooltip($tooltip, options)\r\n};\r\nvar removeTooltip = function() {\r\n if (!tooltip) {\r\n return\r\n }\r\n removeTooltipElement();\r\n tooltip = null\r\n};\r\nexport function show(options) {\r\n removeTooltip();\r\n createTooltip(options);\r\n return tooltip.show()\r\n}\r\nexport function hide() {\r\n if (!tooltip) {\r\n return (new Deferred).resolve()\r\n }\r\n return tooltip.hide().done(removeTooltip).promise()\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Resizable from \"../../../ui/resizable\";\r\nimport {\r\n hide,\r\n show\r\n} from \"../../../ui/tooltip/ui.tooltip\";\r\nimport {\r\n ALL_DAY_APPOINTMENT_CLASS,\r\n APPOINTMENT_CONTENT_CLASSES,\r\n APPOINTMENT_DRAG_SOURCE_CLASS,\r\n APPOINTMENT_HAS_RESOURCE_COLOR_CLASS,\r\n DIRECTION_APPOINTMENT_CLASSES,\r\n EMPTY_APPOINTMENT_CLASS,\r\n RECURRENCE_APPOINTMENT_CLASS,\r\n REDUCED_APPOINTMENT_CLASS,\r\n REDUCED_APPOINTMENT_ICON,\r\n REDUCED_APPOINTMENT_PARTS_CLASSES\r\n} from \"../m_classes\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nvar DEFAULT_HORIZONTAL_HANDLES = \"left right\";\r\nvar DEFAULT_VERTICAL_HANDLES = \"top bottom\";\r\nvar REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME = addNamespace(pointerEvents.enter, \"dxSchedulerAppointment\");\r\nvar REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME = addNamespace(pointerEvents.leave, \"dxSchedulerAppointment\");\r\nexport class Appointment extends DOMComponent {\r\n get coloredElement() {\r\n return this.$element()\r\n }\r\n get rawAppointment() {\r\n return this.option(\"data\")\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n data: {},\r\n groupIndex: -1,\r\n groups: [],\r\n geometry: {\r\n top: 0,\r\n left: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n allowDrag: true,\r\n allowResize: true,\r\n reduced: null,\r\n isCompact: false,\r\n direction: \"vertical\",\r\n resizableConfig: {\r\n keepAspectRatio: false\r\n },\r\n cellHeight: 0,\r\n cellWidth: 0,\r\n isDragSource: false\r\n })\r\n }\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke(funcName) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"data\":\r\n case \"groupIndex\":\r\n case \"geometry\":\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"reduced\":\r\n case \"sortedIndex\":\r\n case \"isCompact\":\r\n case \"direction\":\r\n case \"resizableConfig\":\r\n case \"cellHeight\":\r\n case \"cellWidth\":\r\n this._invalidate();\r\n break;\r\n case \"isDragSource\":\r\n this._renderDragSourceClass();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getHorizontalResizingRule() {\r\n var reducedHandles = {\r\n head: this.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n body: \"\",\r\n tail: this.option(\"rtlEnabled\") ? \"left\" : \"right\"\r\n };\r\n var getResizableStep = this.option(\"getResizableStep\");\r\n var step = getResizableStep ? getResizableStep() : 0;\r\n return {\r\n handles: this.option(\"reduced\") ? reducedHandles[this.option(\"reduced\")] : DEFAULT_HORIZONTAL_HANDLES,\r\n minHeight: 0,\r\n minWidth: this.invoke(\"getCellWidth\"),\r\n step: step,\r\n roundStepValue: false\r\n }\r\n }\r\n _getVerticalResizingRule() {\r\n var height = Math.round(this.invoke(\"getCellHeight\"));\r\n return {\r\n handles: DEFAULT_VERTICAL_HANDLES,\r\n minWidth: 0,\r\n minHeight: height,\r\n step: height,\r\n roundStepValue: true\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._renderAppointmentGeometry();\r\n this._renderEmptyClass();\r\n this._renderReducedAppointment();\r\n this._renderAllDayClass();\r\n this._renderDragSourceClass();\r\n this._renderDirection();\r\n this.$element().data(\"dxAppointmentStartDate\", this.option(\"startDate\"));\r\n var text = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"text\", this.rawAppointment);\r\n this.$element().attr(\"title\", text);\r\n this.$element().attr(\"role\", \"button\");\r\n this._renderRecurrenceClass();\r\n this._renderResizable();\r\n this._setResourceColor()\r\n }\r\n _setResourceColor() {\r\n var appointmentConfig = {\r\n itemData: this.rawAppointment,\r\n groupIndex: this.option(\"groupIndex\"),\r\n groups: this.option(\"groups\")\r\n };\r\n var deferredColor = this.option(\"getAppointmentColor\")(appointmentConfig);\r\n deferredColor.done(color => {\r\n if (color) {\r\n this.coloredElement.css(\"backgroundColor\", color);\r\n this.coloredElement.addClass(APPOINTMENT_HAS_RESOURCE_COLOR_CLASS)\r\n }\r\n })\r\n }\r\n _renderAppointmentGeometry() {\r\n var geometry = this.option(\"geometry\");\r\n var $element = this.$element();\r\n move($element, {\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n $element.css({\r\n width: geometry.width < 0 ? 0 : geometry.width,\r\n height: geometry.height < 0 ? 0 : geometry.height\r\n })\r\n }\r\n _renderEmptyClass() {\r\n var geometry = this.option(\"geometry\");\r\n if (geometry.empty || this.option(\"isCompact\")) {\r\n this.$element().addClass(EMPTY_APPOINTMENT_CLASS)\r\n }\r\n }\r\n _renderReducedAppointment() {\r\n var reducedPart = this.option(\"reduced\");\r\n if (!reducedPart) {\r\n return\r\n }\r\n this.$element().toggleClass(REDUCED_APPOINTMENT_CLASS, true).toggleClass(REDUCED_APPOINTMENT_PARTS_CLASSES[reducedPart], true);\r\n this._renderAppointmentReducedIcon()\r\n }\r\n _renderAppointmentReducedIcon() {\r\n var $icon = $(\"<div>\").addClass(REDUCED_APPOINTMENT_ICON).appendTo(this.$element());\r\n var endDate = this._getEndDate();\r\n var tooltipLabel = messageLocalization.format(\"dxScheduler-editorLabelEndDate\");\r\n var tooltipText = [tooltipLabel, \": \", dateLocalization.format(endDate, \"monthAndDay\"), \", \", dateLocalization.format(endDate, \"year\")].join(\"\");\r\n eventsEngine.off($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME);\r\n eventsEngine.on($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME, () => {\r\n show({\r\n target: $icon,\r\n content: tooltipText\r\n })\r\n });\r\n eventsEngine.off($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME);\r\n eventsEngine.on($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME, () => {\r\n hide()\r\n })\r\n }\r\n _getEndDate() {\r\n var result = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"endDate\", this.rawAppointment);\r\n if (result) {\r\n return new Date(result)\r\n }\r\n return result\r\n }\r\n _renderAllDayClass() {\r\n this.$element().toggleClass(ALL_DAY_APPOINTMENT_CLASS, !!this.option(\"allDay\"))\r\n }\r\n _renderDragSourceClass() {\r\n this.$element().toggleClass(APPOINTMENT_DRAG_SOURCE_CLASS, !!this.option(\"isDragSource\"))\r\n }\r\n _renderRecurrenceClass() {\r\n var rule = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceRule\", this.rawAppointment);\r\n if (getRecurrenceProcessor().isValidRecurrenceRule(rule)) {\r\n this.$element().addClass(RECURRENCE_APPOINTMENT_CLASS)\r\n }\r\n }\r\n _renderDirection() {\r\n this.$element().addClass(DIRECTION_APPOINTMENT_CLASSES[this.option(\"direction\")])\r\n }\r\n _createResizingConfig() {\r\n var config = \"vertical\" === this.option(\"direction\") ? this._getVerticalResizingRule() : this._getHorizontalResizingRule();\r\n if (!this.invoke(\"isGroupedByDate\")) {\r\n config.stepPrecision = \"strict\"\r\n }\r\n return config\r\n }\r\n _renderResizable() {\r\n if (this.option(\"allowResize\")) {\r\n this._createComponent(this.$element(), Resizable, extend(this._createResizingConfig(), this.option(\"resizableConfig\")))\r\n }\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAppointment\", Appointment);\r\nexport class AgendaAppointment extends Appointment {\r\n get coloredElement() {\r\n return this.$element().find(\".\".concat(APPOINTMENT_CONTENT_CLASSES.AGENDA_MARKER))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n createPlainResourceListAsync: new Deferred\r\n })\r\n }\r\n _renderResourceList(container, list) {\r\n list.forEach(item => {\r\n var itemContainer = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST_ITEM).appendTo(container);\r\n $(\"<div>\").text(\"\".concat(item.label, \":\")).appendTo(itemContainer);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST_ITEM_VALUE).text(item.values.join(\", \")).appendTo(itemContainer)\r\n })\r\n }\r\n _render() {\r\n super._render();\r\n var createPlainResourceListAsync = this.option(\"createPlainResourceListAsync\");\r\n createPlainResourceListAsync(this.rawAppointment).done(list => {\r\n var parent = this.$element().find(\".\".concat(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS));\r\n var container = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST).appendTo(parent);\r\n this._renderResourceList(container, list)\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment_layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n APPOINTMENT_CONTENT_CLASSES\r\n} from \"../m_classes\";\r\nvar allDayText = \" \".concat(messageLocalization.format(\"dxScheduler-allDay\"), \": \");\r\nexport var createAppointmentLayout = (formatText, config) => {\r\n var result = $(domAdapter.createDocumentFragment());\r\n $(\"<div>\").text(formatText.text).addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_TITLE).appendTo(result);\r\n if (config.html) {\r\n result.html(config.html)\r\n }\r\n var $contentDetails = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS).appendTo(result);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_DATE).text(formatText.formatDate).appendTo($contentDetails);\r\n config.isRecurrence && $(\"<span>\").addClass(\"\".concat(APPOINTMENT_CONTENT_CLASSES.RECURRING_ICON, \" dx-icon-repeat\")).appendTo(result);\r\n config.isAllDay && $(\"<div>\").text(allDayText).addClass(APPOINTMENT_CONTENT_CLASSES.ALL_DAY_CONTENT).prependTo($contentDetails);\r\n return result\r\n};\r\nexport var createAgendaAppointmentLayout = (formatText, config) => {\r\n var result = $(domAdapter.createDocumentFragment());\r\n var leftLayoutContainer = $(\"<div>\").addClass(\"dx-scheduler-agenda-appointment-left-layout\").appendTo(result);\r\n var rightLayoutContainer = $(\"<div>\").addClass(\"dx-scheduler-agenda-appointment-right-layout\").appendTo(result);\r\n var marker = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_MARKER).appendTo(leftLayoutContainer);\r\n config.isRecurrence && $(\"<span>\").addClass(\"\".concat(APPOINTMENT_CONTENT_CLASSES.RECURRING_ICON, \" dx-icon-repeat\")).appendTo(marker);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_TITLE).text(formatText.text).appendTo(rightLayoutContainer);\r\n var additionalContainer = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS).appendTo(rightLayoutContainer);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_DATE).text(formatText.formatDate).appendTo(additionalContainer);\r\n if (config.isAllDay) {\r\n $(\"<div>\").text(allDayText).addClass(APPOINTMENT_CONTENT_CLASSES.ALL_DAY_CONTENT).prependTo(additionalContainer)\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/resizing/m_core.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar getAppointmentLeftCell = options => {\r\n var {\r\n cellHeight: cellHeight,\r\n cellWidth: cellWidth,\r\n viewDataProvider: viewDataProvider,\r\n relativeAppointmentRect: relativeAppointmentRect,\r\n appointmentSettings: appointmentSettings,\r\n rtlEnabled: rtlEnabled\r\n } = options;\r\n var cellRowIndex = Math.floor(relativeAppointmentRect.top / cellHeight);\r\n var cellColumnIndex = Math.round(relativeAppointmentRect.left / cellWidth);\r\n var leftCell = viewDataProvider.getCellData(cellRowIndex, cellColumnIndex, appointmentSettings.allDay, rtlEnabled);\r\n return leftCell\r\n};\r\nvar getDateRangeHorizontal = options => {\r\n var {\r\n cellWidth: cellWidth,\r\n cellCountInRow: cellCountInRow,\r\n relativeAppointmentRect: relativeAppointmentRect,\r\n viewDataProvider: viewDataProvider,\r\n appointmentSettings: appointmentSettings,\r\n handles: handles\r\n } = options;\r\n var appointmentFirstCell = getAppointmentLeftCell(options);\r\n var appointmentCellsAmount = Math.round(relativeAppointmentRect.width / cellWidth);\r\n var appointmentLastCellIndex = appointmentFirstCell.index + (appointmentCellsAmount - 1);\r\n var {\r\n sourceAppointment: sourceAppointment\r\n } = appointmentSettings.info;\r\n var {\r\n allDay: allDay\r\n } = appointmentSettings.info.appointment;\r\n if (handles.left) {\r\n return {\r\n startDate: appointmentFirstCell.startDate,\r\n endDate: appointmentFirstCell.startDate > sourceAppointment.endDate ? appointmentFirstCell.startDate : sourceAppointment.endDate\r\n }\r\n }\r\n var appointmentRowIndex = Math.floor(appointmentLastCellIndex / cellCountInRow);\r\n var appointmentColumnIndex = appointmentLastCellIndex % cellCountInRow;\r\n var appointmentLastCell = viewDataProvider.getCellData(appointmentRowIndex, appointmentColumnIndex, allDay);\r\n var endDate = !options.considerTime ? appointmentLastCell.endDate : appointmentLastCell.startDate;\r\n return {\r\n startDate: endDate < sourceAppointment.startDate ? endDate : sourceAppointment.startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getDateRangeHorizontalRTL = options => {\r\n var {\r\n viewDataProvider: viewDataProvider,\r\n cellCountInRow: cellCountInRow,\r\n appointmentSettings: appointmentSettings,\r\n handles: handles,\r\n cellWidth: cellWidth,\r\n relativeAppointmentRect: relativeAppointmentRect\r\n } = options;\r\n var appointmentLastCell = getAppointmentLeftCell(options);\r\n var {\r\n sourceAppointment: sourceAppointment\r\n } = appointmentSettings.info;\r\n var {\r\n allDay: allDay\r\n } = appointmentSettings.info.appointment;\r\n if (handles.right) {\r\n var appointmentLastCellIndex = appointmentLastCell.index;\r\n var appointmentCellsAmount = Math.round(relativeAppointmentRect.width / cellWidth);\r\n var appointmentFirstCellIndex = appointmentLastCellIndex - appointmentCellsAmount + 1;\r\n var appointmentRowIndex = Math.floor(appointmentLastCellIndex / cellCountInRow);\r\n var appointmentFirstCell = viewDataProvider.getCellData(appointmentRowIndex, appointmentFirstCellIndex, allDay, true);\r\n return {\r\n startDate: appointmentFirstCell.startDate,\r\n endDate: appointmentFirstCell.startDate > sourceAppointment.endDate ? appointmentFirstCell.startDate : sourceAppointment.endDate\r\n }\r\n }\r\n var endDate = !options.considerTime ? appointmentLastCell.endDate : appointmentLastCell.startDate;\r\n return {\r\n startDate: endDate < sourceAppointment.startDate ? endDate : sourceAppointment.startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getRelativeAppointmentRect = (appointmentRect, parentAppointmentRect) => {\r\n var left = appointmentRect.left - parentAppointmentRect.left;\r\n var top = appointmentRect.top - parentAppointmentRect.top;\r\n var width = left < 0 ? appointmentRect.width + left : appointmentRect.width;\r\n var height = top < 0 ? appointmentRect.height + top : appointmentRect.height;\r\n return {\r\n left: Math.max(0, left),\r\n top: Math.max(0, top),\r\n width: width,\r\n height: height\r\n }\r\n};\r\nvar getAppointmentCellsInfo = options => {\r\n var {\r\n appointmentSettings: appointmentSettings,\r\n isVerticalGroupedWorkSpace: isVerticalGroupedWorkSpace,\r\n DOMMetaData: DOMMetaData\r\n } = options;\r\n var DOMMetaTable = appointmentSettings.allDay && !isVerticalGroupedWorkSpace ? [DOMMetaData.allDayPanelCellsMeta] : DOMMetaData.dateTableCellsMeta;\r\n var {\r\n positionByMap: positionByMap\r\n } = appointmentSettings;\r\n var {\r\n height: cellHeight,\r\n width: cellWidth\r\n } = DOMMetaTable[positionByMap.rowIndex][positionByMap.columnIndex];\r\n var cellCountInRow = DOMMetaTable[positionByMap.rowIndex].length;\r\n return {\r\n cellWidth: cellWidth,\r\n cellHeight: cellHeight,\r\n cellCountInRow: cellCountInRow\r\n }\r\n};\r\nexport var getAppointmentDateRange = options => {\r\n var {\r\n appointmentSettings: appointmentSettings\r\n } = options;\r\n var relativeAppointmentRect = getRelativeAppointmentRect(options.appointmentRect, options.parentAppointmentRect);\r\n var cellInfo = getAppointmentCellsInfo(options);\r\n var considerTime = !options.isDateAndTimeView || appointmentSettings.allDay;\r\n var extendedOptions = _extends(_extends(_extends({}, options), cellInfo), {\r\n considerTime: considerTime,\r\n relativeAppointmentRect: relativeAppointmentRect\r\n });\r\n return !options.rtlEnabled ? getDateRangeHorizontal(extendedOptions) : getDateRangeHorizontalRTL(extendedOptions)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment_collection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../core/element_data\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n wrapToArray\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n grep,\r\n normalizeKey\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../core/utils/object\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setOuterHeight,\r\n setOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPlainObject,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../events/double_click\";\r\nimport {\r\n addNamespace,\r\n isFakeClickEvent\r\n} from \"../../../events/utils/index\";\r\nimport CollectionWidget from \"../../../ui/collection/ui.collection_widget.edit\";\r\nimport timeZoneUtils from \"../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n APPOINTMENT_CONTENT_CLASSES,\r\n APPOINTMENT_DRAG_SOURCE_CLASS,\r\n APPOINTMENT_ITEM_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"../m_constants\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nimport {\r\n getAppointmentTakesSeveralDays,\r\n sortAppointmentsByStartDate\r\n} from \"./data_provider/m_utils\";\r\nimport {\r\n AgendaAppointment,\r\n Appointment\r\n} from \"./m_appointment\";\r\nimport {\r\n createAgendaAppointmentLayout,\r\n createAppointmentLayout\r\n} from \"./m_appointment_layout\";\r\nimport {\r\n getAppointmentDateRange\r\n} from \"./resizing/m_core\";\r\nvar COMPONENT_CLASS = \"dx-scheduler-scrollable-appointments\";\r\nvar DBLCLICK_EVENT_NAME = addNamespace(dblclickEvent, \"dxSchedulerAppointment\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerAppointments extends CollectionWidget {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._virtualAppointments = {}\r\n }\r\n get isAgendaView() {\r\n return this.invoke(\"isCurrentViewAgenda\")\r\n }\r\n get isVirtualScrolling() {\r\n return this.invoke(\"isVirtualScrolling\")\r\n }\r\n get appointmentDataProvider() {\r\n return this.option(\"getAppointmentDataProvider\")()\r\n }\r\n option(optionName, value) {\r\n return super.option(...arguments)\r\n }\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke(funcName) {\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key]\r\n }\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._appointmentClickTimeout);\r\n super._dispose()\r\n }\r\n _supportedKeys() {\r\n var parent = super._supportedKeys();\r\n var currentAppointment = this._$currentAppointment;\r\n return extend(parent, {\r\n escape: function() {\r\n var _a, _b, _c;\r\n if (this.resizeOccur) {\r\n this.moveAppointmentBack();\r\n this.resizeOccur = false;\r\n null === (_a = currentAppointment.dxResizable(\"instance\")) || void 0 === _a ? void 0 : _a._detachEventHandlers();\r\n null === (_b = currentAppointment.dxResizable(\"instance\")) || void 0 === _b ? void 0 : _b._attachEventHandlers();\r\n null === (_c = currentAppointment.dxResizable(\"instance\")) || void 0 === _c ? void 0 : _c._toggleResizingClass(false)\r\n }\r\n }.bind(this),\r\n del: function(e) {\r\n if (this.option(\"allowDelete\")) {\r\n e.preventDefault();\r\n var data = this._getItemData(e.target);\r\n this.notifyObserver(\"onDeleteButtonPress\", {\r\n data: data,\r\n target: e.target\r\n })\r\n }\r\n }.bind(this),\r\n tab: function(e) {\r\n var appointments = this._getAccessAppointments();\r\n var focusedAppointment = appointments.filter(\".dx-state-focused\");\r\n var index = focusedAppointment.data(APPOINTMENT_SETTINGS_KEY).sortedIndex;\r\n var lastIndex = appointments.length - 1;\r\n if (index > 0 && e.shiftKey || index < lastIndex && !e.shiftKey) {\r\n e.preventDefault();\r\n e.shiftKey ? index-- : index++;\r\n var $nextAppointment = this._getAppointmentByIndex(index);\r\n this._resetTabIndex($nextAppointment);\r\n eventsEngine.trigger($nextAppointment, \"focus\")\r\n }\r\n }\r\n })\r\n }\r\n _getAppointmentByIndex(sortedIndex) {\r\n var appointments = this._getAccessAppointments();\r\n return appointments.filter((_, $item) => elementData($item, APPOINTMENT_SETTINGS_KEY).sortedIndex === sortedIndex).eq(0)\r\n }\r\n _getAccessAppointments() {\r\n return this._itemElements().filter(\":visible\").not(\".dx-state-disabled\")\r\n }\r\n _resetTabIndex($appointment) {\r\n this._focusTarget().attr(\"tabIndex\", -1);\r\n $appointment.attr(\"tabIndex\", this.option(\"tabIndex\"))\r\n }\r\n _moveFocus() {}\r\n _focusTarget() {\r\n return this._itemElements()\r\n }\r\n _renderFocusTarget() {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this._resetTabIndex($appointment)\r\n }\r\n _focusInHandler(e) {\r\n super._focusInHandler(e);\r\n this._$currentAppointment = $(e.target);\r\n this.option(\"focusedElement\", getPublicElement($(e.target)))\r\n }\r\n _focusOutHandler(e) {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this.option(\"focusedElement\", getPublicElement($appointment));\r\n super._focusOutHandler(e)\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n noDataText: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n tabIndex: 0,\r\n fixedContainer: null,\r\n allDayContainer: null,\r\n allowDrag: true,\r\n allowResize: true,\r\n allowAllDayResize: true,\r\n onAppointmentDblClick: null,\r\n _collectorOffset: 0,\r\n groups: [],\r\n resources: []\r\n })\r\n }\r\n _optionChanged(args) {\r\n if (this.option(\"isRenovatedAppointments\")) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n this._cleanFocusState();\r\n this._clearDropDownItems();\r\n this._clearDropDownItemsElements();\r\n this._repaintAppointments(args.value);\r\n this._renderDropDownAppointments();\r\n this._attachAppointmentsEvents();\r\n break;\r\n case \"fixedContainer\":\r\n case \"allDayContainer\":\r\n case \"onAppointmentDblClick\":\r\n break;\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"allowAllDayResize\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._resetTabIndex($(args.value));\r\n super._optionChanged(args);\r\n break;\r\n case \"allowDelete\":\r\n break;\r\n case \"focusStateEnabled\":\r\n this._clearDropDownItemsElements();\r\n this._renderDropDownAppointments();\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _isAllDayAppointment(appointment) {\r\n return appointment.settings.length && appointment.settings[0].allDay || false\r\n }\r\n _isRepaintAppointment(appointment) {\r\n return !isDefined(appointment.needRepaint) || true === appointment.needRepaint\r\n }\r\n _isRepaintAll(appointments) {\r\n if (this.isAgendaView) {\r\n return true\r\n }\r\n for (var i = 0; i < appointments.length; i++) {\r\n if (!this._isRepaintAppointment(appointments[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyFragment(fragment, allDay) {\r\n if (fragment.children().length > 0) {\r\n this._getAppointmentContainer(allDay).append(fragment)\r\n }\r\n }\r\n _onEachAppointment(appointment, index, container, isRepaintAll) {\r\n if (true === (null === appointment || void 0 === appointment ? void 0 : appointment.needRemove)) {\r\n this._clearItem(appointment)\r\n } else if (isRepaintAll || this._isRepaintAppointment(appointment)) {\r\n (() => {\r\n appointment.needRepaint = false;\r\n this._clearItem(appointment);\r\n this._renderItem(index, appointment, container)\r\n })()\r\n }\r\n }\r\n _repaintAppointments(appointments) {\r\n this._renderByFragments(($commonFragment, $allDayFragment) => {\r\n var isRepaintAll = this._isRepaintAll(appointments);\r\n if (isRepaintAll) {\r\n this._getAppointmentContainer(true).html(\"\");\r\n this._getAppointmentContainer(false).html(\"\")\r\n }!appointments.length && this._cleanItemContainer();\r\n appointments.forEach((appointment, index) => {\r\n var container = this._isAllDayAppointment(appointment) ? $allDayFragment : $commonFragment;\r\n this._onEachAppointment(appointment, index, container, isRepaintAll)\r\n })\r\n })\r\n }\r\n _renderByFragments(renderFunction) {\r\n if (this.isVirtualScrolling) {\r\n var $commonFragment = $(domAdapter.createDocumentFragment());\r\n var $allDayFragment = $(domAdapter.createDocumentFragment());\r\n renderFunction($commonFragment, $allDayFragment);\r\n this._applyFragment($commonFragment, false);\r\n this._applyFragment($allDayFragment, true)\r\n } else {\r\n renderFunction(this._getAppointmentContainer(false), this._getAppointmentContainer(true))\r\n }\r\n }\r\n _attachAppointmentsEvents() {\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent();\r\n this._attachAppointmentDblClick();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents()\r\n }\r\n _clearItem(item) {\r\n var $items = this._findItemElementByItem(item.itemData);\r\n if (!$items.length) {\r\n return\r\n }\r\n each($items, (_, $item) => {\r\n $item.detach();\r\n $item.remove()\r\n })\r\n }\r\n _clearDropDownItems() {\r\n this._virtualAppointments = {}\r\n }\r\n _clearDropDownItemsElements() {\r\n this.invoke(\"clearCompactAppointments\")\r\n }\r\n _findItemElementByItem(item) {\r\n var result = [];\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result.push($item)\r\n }\r\n }));\r\n return result\r\n }\r\n _itemClass() {\r\n return APPOINTMENT_ITEM_CLASS\r\n }\r\n _itemContainer() {\r\n var $container = super._itemContainer();\r\n var $result = $container;\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $result = $container.add($allDayContainer)\r\n }\r\n return $result\r\n }\r\n _cleanItemContainer() {\r\n super._cleanItemContainer();\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $allDayContainer.empty()\r\n }\r\n this._virtualAppointments = {}\r\n }\r\n _clean() {\r\n super._clean();\r\n delete this._$currentAppointment;\r\n delete this._initialSize;\r\n delete this._initialCoordinates\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(COMPONENT_CLASS);\r\n this._preventSingleAppointmentClick = false\r\n }\r\n _renderAppointmentTemplate($container, appointment, model) {\r\n var _a;\r\n var config = {\r\n isAllDay: appointment.allDay,\r\n isRecurrence: appointment.recurrenceRule,\r\n html: isPlainObject(appointment) && appointment.html ? appointment.html : void 0\r\n };\r\n var formatText = this.invoke(\"getTextAndFormatDate\", model.appointmentData, (null === (_a = this._currentAppointmentSettings) || void 0 === _a ? void 0 : _a.agendaSettings) || model.targetedAppointmentData, \"TIME\");\r\n $container.append(this.isAgendaView ? createAgendaAppointmentLayout(formatText, config) : createAppointmentLayout(formatText, config));\r\n if (!this.isAgendaView) {\r\n $container.parent().prepend($(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.STRIP))\r\n }\r\n }\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n var action = this._getItemRenderAction();\r\n if (action) {\r\n action(this.invoke(\"mapAppointmentFields\", {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n }))\r\n }\r\n delete this._currentAppointmentSettings\r\n }\r\n _itemClickHandler(e) {\r\n super._itemClickHandler(e, {}, {\r\n afterExecute: function(e) {\r\n this._processItemClick(e.args[0].event)\r\n }.bind(this)\r\n })\r\n }\r\n _processItemClick(e) {\r\n var $target = $(e.currentTarget);\r\n var data = this._getItemData($target);\r\n if (\"keydown\" === e.type || isFakeClickEvent(e)) {\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: data,\r\n target: $target\r\n });\r\n return\r\n }\r\n this._appointmentClickTimeout = setTimeout(() => {\r\n if (!this._preventSingleAppointmentClick && domAdapter.getBody().contains($target[0])) {\r\n this.notifyObserver(\"showAppointmentTooltip\", {\r\n data: data,\r\n target: $target\r\n })\r\n }\r\n this._preventSingleAppointmentClick = false\r\n }, 300)\r\n }\r\n _extendActionArgs($itemElement) {\r\n var args = super._extendActionArgs($itemElement);\r\n return this.invoke(\"mapAppointmentFields\", args)\r\n }\r\n _render() {\r\n super._render();\r\n this._attachAppointmentDblClick()\r\n }\r\n _attachAppointmentDblClick() {\r\n var that = this;\r\n var itemSelector = that._itemSelector();\r\n var itemContainer = this._itemContainer();\r\n eventsEngine.off(itemContainer, DBLCLICK_EVENT_NAME, itemSelector);\r\n eventsEngine.on(itemContainer, DBLCLICK_EVENT_NAME, itemSelector, e => {\r\n that._itemDXEventHandler(e, \"onAppointmentDblClick\", {}, {\r\n afterExecute(e) {\r\n that._dblClickHandler(e.args[0].event)\r\n }\r\n })\r\n })\r\n }\r\n _dblClickHandler(e) {\r\n var $targetAppointment = $(e.currentTarget);\r\n var appointmentData = this._getItemData($targetAppointment);\r\n clearTimeout(this._appointmentClickTimeout);\r\n this._preventSingleAppointmentClick = true;\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: appointmentData,\r\n target: $targetAppointment\r\n })\r\n }\r\n _renderItem(index, item, container) {\r\n var {\r\n itemData: itemData\r\n } = item;\r\n var $items = [];\r\n for (var i = 0; i < item.settings.length; i++) {\r\n var setting = item.settings[i];\r\n this._currentAppointmentSettings = setting;\r\n var $item = super._renderItem(index, itemData, container);\r\n $item.data(APPOINTMENT_SETTINGS_KEY, setting);\r\n $items.push($item)\r\n }\r\n return $items\r\n }\r\n _getItemContent($itemFrame) {\r\n $itemFrame.data(APPOINTMENT_SETTINGS_KEY, this._currentAppointmentSettings);\r\n var $itemContent = super._getItemContent($itemFrame);\r\n return $itemContent\r\n }\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n return itemTemplate.render({\r\n model: {\r\n appointmentData: itemData,\r\n targetedAppointmentData: this.invoke(\"getTargetedAppointmentData\", itemData, $(container).parent())\r\n },\r\n container: container,\r\n index: index\r\n })\r\n }\r\n _getAppointmentContainer(allDay) {\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n var $container = this.itemsContainer().not($allDayContainer);\r\n if (allDay && $allDayContainer) {\r\n $container = $allDayContainer\r\n }\r\n return $container\r\n }\r\n _postprocessRenderItem(args) {\r\n this._renderAppointment(args.itemElement, this._currentAppointmentSettings)\r\n }\r\n _renderAppointment(element, settings) {\r\n var _a;\r\n element.data(APPOINTMENT_SETTINGS_KEY, settings);\r\n this._applyResourceDataAttr(element);\r\n var rawAppointment = this._getItemData(element);\r\n var geometry = this.invoke(\"getAppointmentGeometry\", settings);\r\n var allowResize = this.option(\"allowResize\") && (!isDefined(settings.skipResizing) || isString(settings.skipResizing));\r\n var allowDrag = this.option(\"allowDrag\");\r\n var {\r\n allDay: allDay\r\n } = settings;\r\n this.invoke(\"setCellDataCacheAlias\", this._currentAppointmentSettings, geometry);\r\n if (settings.virtual) {\r\n var appointmentConfig = {\r\n itemData: rawAppointment,\r\n groupIndex: settings.groupIndex,\r\n groups: this.option(\"groups\")\r\n };\r\n var deferredColor = this.option(\"getAppointmentColor\")(appointmentConfig);\r\n this._processVirtualAppointment(settings, element, rawAppointment, deferredColor)\r\n } else {\r\n var config = {\r\n data: rawAppointment,\r\n groupIndex: settings.groupIndex,\r\n observer: this.option(\"observer\"),\r\n geometry: geometry,\r\n direction: settings.direction || \"vertical\",\r\n allowResize: allowResize,\r\n allowDrag: allowDrag,\r\n allDay: allDay,\r\n reduced: settings.appointmentReduced,\r\n isCompact: settings.isCompact,\r\n startDate: new Date(null === (_a = settings.info) || void 0 === _a ? void 0 : _a.appointment.startDate),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n cellHeight: this.invoke(\"getCellHeight\"),\r\n resizableConfig: this._resizableConfig(rawAppointment, settings),\r\n groups: this.option(\"groups\"),\r\n getAppointmentColor: this.option(\"getAppointmentColor\"),\r\n getResourceDataAccessors: this.option(\"getResourceDataAccessors\")\r\n };\r\n if (this.isAgendaView) {\r\n var agendaResourceProcessor = this.option(\"getAgendaResourceProcessor\")();\r\n config.createPlainResourceListAsync = rawAppointment => agendaResourceProcessor.createListAsync(rawAppointment)\r\n }\r\n this._createComponent(element, this.isAgendaView ? AgendaAppointment : Appointment, _extends(_extends({}, config), {\r\n dataAccessors: this.option(\"dataAccessors\"),\r\n getResizableStep: this.option(\"getResizableStep\")\r\n }))\r\n }\r\n }\r\n _applyResourceDataAttr($appointment) {\r\n var dataAccessors = this.option(\"getResourceDataAccessors\")();\r\n var rawAppointment = this._getItemData($appointment);\r\n each(dataAccessors.getter, key => {\r\n var value = dataAccessors.getter[key](rawAppointment);\r\n if (isDefined(value)) {\r\n var prefix = \"data-\".concat(normalizeKey(key.toLowerCase()), \"-\");\r\n wrapToArray(value).forEach(value => $appointment.attr(prefix + normalizeKey(value), true))\r\n }\r\n })\r\n }\r\n _resizableConfig(appointmentData, itemSetting) {\r\n return {\r\n area: this._calculateResizableArea(itemSetting, appointmentData),\r\n onResizeStart: function(e) {\r\n this.resizeOccur = true;\r\n this._$currentAppointment = $(e.element);\r\n if (this.invoke(\"needRecalculateResizableArea\")) {\r\n var updatedArea = this._calculateResizableArea(this._$currentAppointment.data(APPOINTMENT_SETTINGS_KEY), this._$currentAppointment.data(\"dxItemData\"));\r\n e.component.option(\"area\", updatedArea);\r\n e.component._renderDragOffsets(e.event)\r\n }\r\n this._initialSize = {\r\n width: e.width,\r\n height: e.height\r\n };\r\n this._initialCoordinates = locate(this._$currentAppointment)\r\n }.bind(this),\r\n onResizeEnd: function(e) {\r\n this.resizeOccur = false;\r\n this._resizeEndHandler(e)\r\n }.bind(this)\r\n }\r\n }\r\n _calculateResizableArea(itemSetting, appointmentData) {\r\n var area = this.$element().closest(\".dx-scrollable-content\");\r\n return this.invoke(\"getResizableAppointmentArea\", {\r\n coordinates: {\r\n left: itemSetting.left,\r\n top: 0,\r\n groupIndex: itemSetting.groupIndex\r\n },\r\n allDay: itemSetting.allDay\r\n }) || area\r\n }\r\n _resizeEndHandler(e) {\r\n var $element = $(e.element);\r\n var {\r\n allDay: allDay,\r\n info: info\r\n } = $element.data(\"dxAppointmentSettings\");\r\n var sourceAppointment = this._getItemData($element);\r\n var viewOffset = this.invoke(\"getViewOffsetMs\");\r\n var dateRange;\r\n if (allDay) {\r\n dateRange = this.resizeAllDay(e)\r\n } else {\r\n var startDate = this._getEndResizeAppointmentStartDate(e, sourceAppointment, info.appointment);\r\n var {\r\n endDate: endDate\r\n } = info.appointment;\r\n var shiftedStartDate = dateUtilsTs.addOffsets(startDate, [-viewOffset]);\r\n var shiftedEndDate = dateUtilsTs.addOffsets(endDate, [-viewOffset]);\r\n dateRange = this._getDateRange(e, shiftedStartDate, shiftedEndDate);\r\n dateRange.startDate = dateUtilsTs.addOffsets(dateRange.startDate, [viewOffset]);\r\n dateRange.endDate = dateUtilsTs.addOffsets(dateRange.endDate, [viewOffset])\r\n }\r\n this.updateResizedAppointment($element, dateRange, this.option(\"dataAccessors\"), this.option(\"timeZoneCalculator\"))\r\n }\r\n resizeAllDay(e) {\r\n var $element = $(e.element);\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var dataAccessors = this.option(\"dataAccessors\");\r\n return getAppointmentDateRange({\r\n handles: e.handles,\r\n appointmentSettings: $element.data(\"dxAppointmentSettings\"),\r\n isVerticalViewDirection: this.option(\"isVerticalViewDirection\")(),\r\n isVerticalGroupedWorkSpace: this.option(\"isVerticalGroupedWorkSpace\")(),\r\n appointmentRect: getBoundingRect($element[0]),\r\n parentAppointmentRect: getBoundingRect($element.parent()[0]),\r\n viewDataProvider: this.option(\"getViewDataProvider\")(),\r\n isDateAndTimeView: this.option(\"isDateAndTimeView\")(),\r\n startDayHour: this.invoke(\"getStartDayHour\"),\r\n endDayHour: this.invoke(\"getEndDayHour\"),\r\n timeZoneCalculator: timeZoneCalculator,\r\n dataAccessors: dataAccessors,\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n DOMMetaData: this.option(\"getDOMElementsMetaData\")(),\r\n viewOffset: this.invoke(\"getViewOffsetMs\")\r\n })\r\n }\r\n updateResizedAppointment($element, dateRange, dataAccessors, timeZoneCalculator) {\r\n var sourceAppointment = this._getItemData($element);\r\n var modifiedAppointmentAdapter = createAppointmentAdapter(sourceAppointment, dataAccessors, timeZoneCalculator).clone();\r\n modifiedAppointmentAdapter.startDate = new Date(dateRange.startDate);\r\n modifiedAppointmentAdapter.endDate = new Date(dateRange.endDate);\r\n this.notifyObserver(\"updateAppointmentAfterResize\", {\r\n target: sourceAppointment,\r\n data: modifiedAppointmentAdapter.clone({\r\n pathTimeZone: \"fromGrid\"\r\n }).source(),\r\n $appointment: $element\r\n })\r\n }\r\n _getEndResizeAppointmentStartDate(e, rawAppointment, appointmentInfo) {\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var appointmentAdapter = createAppointmentAdapter(rawAppointment, this.option(\"dataAccessors\"), timeZoneCalculator);\r\n var {\r\n startDate: startDate\r\n } = appointmentInfo;\r\n var recurrenceProcessor = getRecurrenceProcessor();\r\n var {\r\n recurrenceRule: recurrenceRule,\r\n startDateTimeZone: startDateTimeZone\r\n } = appointmentAdapter;\r\n var isAllDay = this.invoke(\"isAllDay\", rawAppointment);\r\n var isRecurrent = recurrenceProcessor.isValidRecurrenceRule(recurrenceRule);\r\n if (!e.handles.top && !isRecurrent && !isAllDay) {\r\n startDate = timeZoneCalculator.createDate(appointmentAdapter.startDate, {\r\n appointmentTimeZone: startDateTimeZone,\r\n path: \"toGrid\"\r\n })\r\n }\r\n return startDate\r\n }\r\n _getDateRange(e, startDate, endDate) {\r\n var itemData = this._getItemData(e.element);\r\n var deltaTime = this.invoke(\"getDeltaTime\", e, this._initialSize, itemData);\r\n var renderingStrategyDirection = this.invoke(\"getRenderingStrategyDirection\");\r\n var isStartDateChanged = false;\r\n var isAllDay = this.invoke(\"isAllDay\", itemData);\r\n var needCorrectDates = this.invoke(\"needCorrectAppointmentDates\") && !isAllDay;\r\n var startTime;\r\n var endTime;\r\n if (\"vertical\" !== renderingStrategyDirection || isAllDay) {\r\n isStartDateChanged = this.option(\"rtlEnabled\") ? e.handles.right : e.handles.left\r\n } else {\r\n isStartDateChanged = e.handles.top\r\n }\r\n if (isStartDateChanged) {\r\n startTime = needCorrectDates ? this._correctStartDateByDelta(startDate, deltaTime) : startDate.getTime() - deltaTime;\r\n startTime += timeZoneUtils.getTimezoneOffsetChangeInMs(startDate, endDate, startTime, endDate);\r\n endTime = endDate.getTime()\r\n } else {\r\n startTime = startDate.getTime();\r\n endTime = needCorrectDates ? this._correctEndDateByDelta(endDate, deltaTime) : endDate.getTime() + deltaTime;\r\n endTime -= timeZoneUtils.getTimezoneOffsetChangeInMs(startDate, endDate, startDate, endTime)\r\n }\r\n return {\r\n startDate: new Date(startTime),\r\n endDate: new Date(endTime)\r\n }\r\n }\r\n _correctEndDateByDelta(endDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var maxDate = new Date(endDate);\r\n var minDate = new Date(endDate);\r\n var correctEndDate = new Date(endDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (correctEndDate > maxDate) {\r\n correctEndDate.setHours(endDayHour, 0, 0, 0)\r\n }\r\n var result = correctEndDate.getTime() + deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n if (result > maxDate.getTime() || result <= minDate.getTime()) {\r\n var tailOfCurrentDay = maxDate.getTime() - correctEndDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var correctedEndDate = new Date(correctEndDate).setDate(correctEndDate.getDate() + daysCount);\r\n var lastDay = new Date(correctedEndDate);\r\n lastDay.setHours(startDayHour, 0, 0, 0);\r\n result = lastDay.getTime() + tailOfPrevDays - visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n }\r\n _correctStartDateByDelta(startDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var maxDate = new Date(startDate);\r\n var minDate = new Date(startDate);\r\n var correctStartDate = new Date(startDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (correctStartDate < minDate) {\r\n correctStartDate.setHours(startDayHour, 0, 0, 0)\r\n }\r\n var result = correctStartDate.getTime() - deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n if (result < minDate.getTime() || result >= maxDate.getTime()) {\r\n var tailOfCurrentDay = correctStartDate.getTime() - minDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var firstDay = new Date(correctStartDate.setDate(correctStartDate.getDate() - daysCount));\r\n firstDay.setHours(endDayHour, 0, 0, 0);\r\n result = firstDay.getTime() - tailOfPrevDays + visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n }\r\n _processVirtualAppointment(appointmentSetting, $appointment, appointmentData, color) {\r\n var virtualAppointment = appointmentSetting.virtual;\r\n var virtualGroupIndex = virtualAppointment.index;\r\n if (!isDefined(this._virtualAppointments[virtualGroupIndex])) {\r\n this._virtualAppointments[virtualGroupIndex] = {\r\n coordinates: {\r\n top: virtualAppointment.top,\r\n left: virtualAppointment.left\r\n },\r\n items: {\r\n data: [],\r\n colors: [],\r\n settings: []\r\n },\r\n isAllDay: !!virtualAppointment.isAllDay,\r\n buttonColor: color\r\n }\r\n }\r\n appointmentSetting.targetedAppointmentData = this.invoke(\"getTargetedAppointmentData\", appointmentData, $appointment);\r\n this._virtualAppointments[virtualGroupIndex].items.settings.push(appointmentSetting);\r\n this._virtualAppointments[virtualGroupIndex].items.data.push(appointmentData);\r\n this._virtualAppointments[virtualGroupIndex].items.colors.push(color);\r\n $appointment.remove()\r\n }\r\n _renderContentImpl() {\r\n super._renderContentImpl();\r\n this._renderDropDownAppointments()\r\n }\r\n _renderDropDownAppointments() {\r\n this._renderByFragments(($commonFragment, $allDayFragment) => {\r\n each(this._virtualAppointments, groupIndex => {\r\n var virtualGroup = this._virtualAppointments[groupIndex];\r\n var virtualItems = virtualGroup.items;\r\n var virtualCoordinates = virtualGroup.coordinates;\r\n var $fragment = virtualGroup.isAllDay ? $allDayFragment : $commonFragment;\r\n var {\r\n left: left\r\n } = virtualCoordinates;\r\n var buttonWidth = this.invoke(\"getDropDownAppointmentWidth\", virtualGroup.isAllDay);\r\n var buttonHeight = this.invoke(\"getDropDownAppointmentHeight\");\r\n var rtlOffset = this.option(\"rtlEnabled\") ? buttonWidth : 0;\r\n this.notifyObserver(\"renderCompactAppointments\", {\r\n $container: $fragment,\r\n coordinates: {\r\n top: virtualCoordinates.top,\r\n left: left + rtlOffset\r\n },\r\n items: virtualItems,\r\n buttonColor: virtualGroup.buttonColor,\r\n width: buttonWidth - this.option(\"_collectorOffset\"),\r\n height: buttonHeight,\r\n onAppointmentClick: this.option(\"onItemClick\"),\r\n allowDrag: this.option(\"allowDrag\"),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n isCompact: this.invoke(\"isAdaptive\") || this._isGroupCompact(virtualGroup)\r\n })\r\n })\r\n })\r\n }\r\n _isGroupCompact(virtualGroup) {\r\n return !virtualGroup.isAllDay && this.invoke(\"supportCompactDropDownAppointments\")\r\n }\r\n _sortAppointmentsByStartDate(appointments) {\r\n return sortAppointmentsByStartDate(appointments, this.option(\"dataAccessors\"))\r\n }\r\n _processRecurrenceAppointment(appointment, index, skipLongAppointments) {\r\n var recurrenceRule = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceRule\", appointment);\r\n var result = {\r\n parts: [],\r\n indexes: []\r\n };\r\n if (recurrenceRule) {\r\n var dates = appointment.settings || appointment;\r\n var startDate = new Date(ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDate\", dates));\r\n var startDateTimeZone = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDateTimeZone\", appointment);\r\n var endDate = new Date(ExpressionUtils.getField(this.option(\"dataAccessors\"), \"endDate\", dates));\r\n var appointmentDuration = endDate.getTime() - startDate.getTime();\r\n var recurrenceException = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceException\", appointment);\r\n var startViewDate = this.invoke(\"getStartViewDate\");\r\n var endViewDate = this.invoke(\"getEndViewDate\");\r\n var timezoneCalculator = this.option(\"timeZoneCalculator\");\r\n var recurrentDates = getRecurrenceProcessor().generateDates({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: startDate,\r\n end: endDate,\r\n min: startViewDate,\r\n max: endViewDate,\r\n appointmentTimezoneOffset: timezoneCalculator.getOriginStartDateOffsetInMs(startDate, startDateTimeZone, false)\r\n });\r\n var recurrentDateCount = appointment.settings ? 1 : recurrentDates.length;\r\n for (var i = 0; i < recurrentDateCount; i++) {\r\n var appointmentPart = extend({}, appointment, true);\r\n if (recurrentDates[i]) {\r\n var appointmentSettings = this._applyStartDateToObj(recurrentDates[i], {});\r\n this._applyEndDateToObj(new Date(recurrentDates[i].getTime() + appointmentDuration), appointmentSettings);\r\n appointmentPart.settings = appointmentSettings\r\n } else {\r\n appointmentPart.settings = dates\r\n }\r\n result.parts.push(appointmentPart);\r\n if (!skipLongAppointments) {\r\n this._processLongAppointment(appointmentPart, result)\r\n }\r\n }\r\n result.indexes.push(index)\r\n }\r\n return result\r\n }\r\n _processLongAppointment(appointment, result) {\r\n var parts = this.splitAppointmentByDay(appointment);\r\n var partCount = parts.length;\r\n var endViewDate = this.invoke(\"getEndViewDate\").getTime();\r\n var startViewDate = this.invoke(\"getStartViewDate\").getTime();\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n result = result || {\r\n parts: []\r\n };\r\n if (partCount > 1) {\r\n extend(appointment, parts[0]);\r\n for (var i = 1; i < partCount; i++) {\r\n var startDate = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDate\", parts[i].settings).getTime();\r\n startDate = timeZoneCalculator.createDate(startDate, {\r\n path: \"toGrid\"\r\n });\r\n if (startDate < endViewDate && startDate > startViewDate) {\r\n result.parts.push(parts[i])\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n _reduceRecurrenceAppointments(recurrenceIndexes, appointments) {\r\n each(recurrenceIndexes, (i, index) => {\r\n appointments.splice(index - i, 1)\r\n })\r\n }\r\n _combineAppointments(appointments, additionalAppointments) {\r\n if (additionalAppointments.length) {\r\n appointments.push(...additionalAppointments)\r\n }\r\n this._sortAppointmentsByStartDate(appointments)\r\n }\r\n _applyStartDateToObj(startDate, obj) {\r\n ExpressionUtils.setField(this.option(\"dataAccessors\"), \"startDate\", obj, startDate);\r\n return obj\r\n }\r\n _applyEndDateToObj(endDate, obj) {\r\n ExpressionUtils.setField(this.option(\"dataAccessors\"), \"endDate\", obj, endDate);\r\n return obj\r\n }\r\n moveAppointmentBack(dragEvent) {\r\n var $appointment = this._$currentAppointment;\r\n var size = this._initialSize;\r\n var coords = this._initialCoordinates;\r\n if (dragEvent) {\r\n this._removeDragSourceClassFromDraggedAppointment();\r\n if (isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel.resolve(true)\r\n } else {\r\n dragEvent.cancel = true\r\n }\r\n }\r\n if ($appointment && !dragEvent) {\r\n if (coords) {\r\n move($appointment, coords);\r\n delete this._initialSize\r\n }\r\n if (size) {\r\n setOuterWidth($appointment, size.width);\r\n setOuterHeight($appointment, size.height);\r\n delete this._initialCoordinates\r\n }\r\n }\r\n }\r\n focus() {\r\n if (this._$currentAppointment) {\r\n var focusedElement = getPublicElement(this._$currentAppointment);\r\n this.option(\"focusedElement\", focusedElement);\r\n eventsEngine.trigger(focusedElement, \"focus\")\r\n }\r\n }\r\n splitAppointmentByDay(appointment) {\r\n var dates = appointment.settings || appointment;\r\n var dataAccessors = this.option(\"dataAccessors\");\r\n var originalStartDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", dates));\r\n var startDate = dateUtils.makeDate(originalStartDate);\r\n var endDate = dateUtils.makeDate(ExpressionUtils.getField(dataAccessors, \"endDate\", dates));\r\n var maxAllowedDate = this.invoke(\"getEndViewDate\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var adapter = createAppointmentAdapter(appointment, dataAccessors, timeZoneCalculator);\r\n var appointmentIsLong = getAppointmentTakesSeveralDays(adapter);\r\n var result = [];\r\n startDate = timeZoneCalculator.createDate(startDate, {\r\n path: \"toGrid\"\r\n });\r\n endDate = timeZoneCalculator.createDate(endDate, {\r\n path: \"toGrid\"\r\n });\r\n if (startDate.getHours() <= endDayHour && startDate.getHours() >= startDayHour && !appointmentIsLong) {\r\n result.push(this._applyStartDateToObj(new Date(startDate), {\r\n appointmentData: appointment\r\n }));\r\n startDate.setDate(startDate.getDate() + 1)\r\n }\r\n while (appointmentIsLong && startDate.getTime() < endDate.getTime() && startDate < maxAllowedDate) {\r\n var currentStartDate = new Date(startDate);\r\n var currentEndDate = new Date(startDate);\r\n this._checkStartDate(currentStartDate, originalStartDate, startDayHour);\r\n this._checkEndDate(currentEndDate, endDate, endDayHour);\r\n var appointmentData = deepExtendArraySafe({}, appointment, true);\r\n var appointmentSettings = {};\r\n this._applyStartDateToObj(currentStartDate, appointmentSettings);\r\n this._applyEndDateToObj(currentEndDate, appointmentSettings);\r\n appointmentData.settings = appointmentSettings;\r\n result.push(appointmentData);\r\n startDate = dateUtils.trimTime(startDate);\r\n startDate.setDate(startDate.getDate() + 1);\r\n startDate.setHours(startDayHour)\r\n }\r\n return result\r\n }\r\n _checkStartDate(currentDate, originalDate, startDayHour) {\r\n if (!dateUtils.sameDate(currentDate, originalDate) || currentDate.getHours() <= startDayHour) {\r\n currentDate.setHours(startDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n }\r\n _checkEndDate(currentDate, originalDate, endDayHour) {\r\n if (!dateUtils.sameDate(currentDate, originalDate) || currentDate.getHours() > endDayHour) {\r\n currentDate.setHours(endDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n }\r\n _removeDragSourceClassFromDraggedAppointment() {\r\n var $appointments = this._itemElements().filter(\".\".concat(APPOINTMENT_DRAG_SOURCE_CLASS));\r\n $appointments.each((_, element) => {\r\n var appointmentInstance = $(element).dxSchedulerAppointment(\"instance\");\r\n appointmentInstance.option(\"isDragSource\", false)\r\n })\r\n }\r\n _setDragSourceAppointment(appointment, settings) {\r\n var $appointments = this._findItemElementByItem(appointment);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = settings.info.sourceAppointment;\r\n var {\r\n groupIndex: groupIndex\r\n } = settings;\r\n $appointments.forEach($item => {\r\n var {\r\n info: itemInfo,\r\n groupIndex: itemGroupIndex\r\n } = $item.data(APPOINTMENT_SETTINGS_KEY);\r\n var {\r\n startDate: itemStartDate,\r\n endDate: itemEndDate\r\n } = itemInfo.sourceAppointment;\r\n var appointmentInstance = $item.dxSchedulerAppointment(\"instance\");\r\n var isDragSource = startDate.getTime() === itemStartDate.getTime() && endDate.getTime() === itemEndDate.getTime() && groupIndex === itemGroupIndex;\r\n appointmentInstance.option(\"isDragSource\", isDragSource)\r\n })\r\n }\r\n updateResizableArea() {\r\n var $allResizableElements = this.$element().find(\".dx-scheduler-appointment.dx-resizable\");\r\n var horizontalResizables = grep($allResizableElements, el => {\r\n var $el = $(el);\r\n var resizableInst = $el.dxResizable(\"instance\");\r\n var {\r\n area: area,\r\n handles: handles\r\n } = resizableInst.option();\r\n return (\"right left\" === handles || \"left right\" === handles) && isPlainObject(area)\r\n });\r\n each(horizontalResizables, (_, el) => {\r\n var $el = $(el);\r\n var position = locate($el);\r\n var appointmentData = this._getItemData($el);\r\n var area = this._calculateResizableArea({\r\n left: position.left\r\n }, appointmentData);\r\n $el.dxResizable(\"instance\").option(\"area\", area)\r\n })\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAppointments\", SchedulerAppointments);\r\nexport default SchedulerAppointments;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addToStyles\r\n} from \"../workspaces/utils\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nvar EditorLabelLocalizationConst = \"dxScheduler-editorLabelEndDate\";\r\nexport var getAppointmentStyles = viewModel => {\r\n var {\r\n geometry: {\r\n height: height,\r\n left: left,\r\n top: top,\r\n width: width\r\n }\r\n } = viewModel;\r\n return addToStyles([{\r\n attr: \"height\",\r\n value: \"\".concat(height || 50, \"px\")\r\n }, {\r\n attr: \"width\",\r\n value: \"\".concat(width || 50, \"px\")\r\n }, {\r\n attr: \"top\",\r\n value: \"\".concat(top, \"px\")\r\n }, {\r\n attr: \"left\",\r\n value: \"\".concat(left, \"px\")\r\n }])\r\n};\r\nexport var getAppointmentKey = geometry => {\r\n var {\r\n height: height,\r\n left: left,\r\n top: top,\r\n width: width\r\n } = geometry;\r\n return \"\".concat(left, \"-\").concat(top, \"-\").concat(width, \"-\").concat(height)\r\n};\r\nexport var getReducedIconTooltipText = endDate => {\r\n var tooltipLabel = messageLocalization.format(EditorLabelLocalizationConst);\r\n if (!endDate) {\r\n return tooltipLabel\r\n }\r\n var date = new Date(endDate);\r\n var monthAndDay = dateLocalization.format(date, \"monthAndDay\");\r\n var year = dateLocalization.format(date, \"year\");\r\n return \"\".concat(tooltipLabel, \": \").concat(monthAndDay, \", \").concat(year)\r\n};\r\nexport var mergeStylesWithColor = (color, styles) => !color ? styles : addToStyles([{\r\n attr: \"backgroundColor\",\r\n value: color\r\n}], styles);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/content/details/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"dateText\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n dateText: dateText\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", \"dx-scheduler-appointment-content-details\", createVNode(1, \"div\", \"dx-scheduler-appointment-content-date\", dateText, 0), 2)\r\n};\r\nexport var AppointmentDetailsProps = {\r\n dateText: \"\"\r\n};\r\nexport class AppointmentDetails extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAppointmentDetails.defaultProps = AppointmentDetailsProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/content/title/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"text\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n text: text\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", \"dx-scheduler-appointment-title\", text, 0)\r\n};\r\nexport var AppointmentTitleProps = {\r\n text: \"\"\r\n};\r\nexport class AppointmentTitle extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAppointmentTitle.defaultProps = AppointmentTitleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/content/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"appointmentTemplate\", \"data\", \"dateText\", \"hideReducedIconTooltip\", \"index\", \"isRecurrent\", \"isReduced\", \"showReducedIconTooltip\", \"text\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n AppointmentDetails\r\n} from \"./details/layout\";\r\nimport {\r\n AppointmentTitle\r\n} from \"./title/layout\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n appointmentTemplate: appointmentTemplate,\r\n data: data,\r\n dateText: dateText,\r\n index: index,\r\n isRecurrent: isRecurrent,\r\n isReduced: isReduced,\r\n text: text\r\n },\r\n refReducedIcon: refReducedIcon\r\n } = _ref;\r\n var AppointmentTemplate = appointmentTemplate;\r\n return createVNode(1, \"div\", \"dx-scheduler-appointment-content\", appointmentTemplate ? AppointmentTemplate({\r\n data: data,\r\n index: index\r\n }) : createFragment([createComponentVNode(2, AppointmentTitle, {\r\n text: text\r\n }), createComponentVNode(2, AppointmentDetails, {\r\n dateText: dateText\r\n }), isRecurrent && createVNode(1, \"div\", \"dx-scheduler-appointment-recurrence-icon dx-icon-repeat\"), isReduced && createVNode(1, \"div\", \"dx-scheduler-appointment-reduced-icon\", null, 1, null, null, refReducedIcon)], 0), 0)\r\n};\r\nexport var AppointmentContentProps = {\r\n text: \"\",\r\n dateText: \"\",\r\n isRecurrent: false,\r\n isReduced: false,\r\n index: 0\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class AppointmentContent extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.refReducedIcon = infernoCreateRef();\r\n this.bindHoverEffect = this.bindHoverEffect.bind(this);\r\n this.onReducedIconMouseEnter = this.onReducedIconMouseEnter.bind(this);\r\n this.onReducedIconMouseLeave = this.onReducedIconMouseLeave.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.bindHoverEffect, [this.props.showReducedIconTooltip, this.props.data, this.props.hideReducedIconTooltip])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.showReducedIconTooltip, this.props.data, this.props.hideReducedIconTooltip])\r\n }\r\n bindHoverEffect() {\r\n var _this$refReducedIcon$, _this$refReducedIcon$2;\r\n var onMouseEnter = () => this.onReducedIconMouseEnter();\r\n var onMouseLeave = () => this.onReducedIconMouseLeave();\r\n null === (_this$refReducedIcon$ = this.refReducedIcon.current) || void 0 === _this$refReducedIcon$ ? void 0 : _this$refReducedIcon$.addEventListener(\"mouseenter\", onMouseEnter);\r\n null === (_this$refReducedIcon$2 = this.refReducedIcon.current) || void 0 === _this$refReducedIcon$2 ? void 0 : _this$refReducedIcon$2.addEventListener(\"mouseleave\", onMouseLeave);\r\n return () => {\r\n var _this$refReducedIcon$3, _this$refReducedIcon$4;\r\n null === (_this$refReducedIcon$3 = this.refReducedIcon.current) || void 0 === _this$refReducedIcon$3 ? void 0 : _this$refReducedIcon$3.removeEventListener(\"mouseenter\", onMouseEnter);\r\n null === (_this$refReducedIcon$4 = this.refReducedIcon.current) || void 0 === _this$refReducedIcon$4 ? void 0 : _this$refReducedIcon$4.removeEventListener(\"mouseleave\", onMouseLeave)\r\n }\r\n }\r\n onReducedIconMouseEnter() {\r\n this.props.showReducedIconTooltip({\r\n target: this.refReducedIcon.current,\r\n endDate: this.props.data.appointmentData.endDate\r\n })\r\n }\r\n onReducedIconMouseLeave() {\r\n this.props.hideReducedIconTooltip()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n appointmentTemplate: getTemplate(props.appointmentTemplate)\r\n }),\r\n refReducedIcon: this.refReducedIcon,\r\n onReducedIconMouseEnter: this.onReducedIconMouseEnter,\r\n onReducedIconMouseLeave: this.onReducedIconMouseLeave,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAppointmentContent.defaultProps = AppointmentContentProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/resources/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getAppointmentColor as getDeferredAppointmentColor\r\n} from \"../../../../__internal/scheduler/resources/m_utils\";\r\nexport var getAppointmentColor = (resourceConfig, appointmentConfig) => getDeferredAppointmentColor(_extends({}, resourceConfig, {\r\n dataAccessors: resourceConfig.resourcesDataAccessors\r\n}), appointmentConfig);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointments_context.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var AppointmentsContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/appointment.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"appointmentTemplate\", \"groups\", \"hideReducedIconTooltip\", \"index\", \"onItemClick\", \"onItemDoubleClick\", \"showReducedIconTooltip\", \"viewModel\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getAppointmentStyles,\r\n mergeStylesWithColor\r\n} from \"./utils\";\r\nimport {\r\n AppointmentContent\r\n} from \"./content/layout\";\r\nimport {\r\n Widget\r\n} from \"../../common/widget\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n getAppointmentColor\r\n} from \"../resources/utils\";\r\nimport {\r\n AppointmentsContext\r\n} from \"../appointments_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n data: data,\r\n dateText: dateText,\r\n isReduced: isReduced,\r\n onItemClick: onItemClick,\r\n props: {\r\n appointmentTemplate: appointmentTemplate,\r\n hideReducedIconTooltip: hideReducedIconTooltip,\r\n index: index,\r\n showReducedIconTooltip: showReducedIconTooltip,\r\n viewModel: {\r\n info: {\r\n isRecurrent: isRecurrent\r\n }\r\n }\r\n },\r\n ref: ref,\r\n styles: styles,\r\n text: text\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n focusStateEnabled: true,\r\n onClick: onItemClick,\r\n rootElementRef: ref,\r\n style: normalizeStyles(styles),\r\n classes: classes,\r\n hint: text\r\n }, {\r\n role: \"button\",\r\n \"data-index\": index\r\n }, {\r\n children: createComponentVNode(2, AppointmentContent, {\r\n text: text,\r\n isReduced: isReduced,\r\n dateText: dateText,\r\n isRecurrent: isRecurrent,\r\n index: index,\r\n data: data,\r\n showReducedIconTooltip: showReducedIconTooltip,\r\n hideReducedIconTooltip: hideReducedIconTooltip,\r\n appointmentTemplate: appointmentTemplate\r\n })\r\n })))\r\n};\r\nexport var AppointmentProps = {\r\n index: 0\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Appointment extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.ref = infernoCreateRef();\r\n this.state = {\r\n color: void 0\r\n };\r\n this.updateStylesEffect = this.updateStylesEffect.bind(this);\r\n this.bindDoubleClickEffect = this.bindDoubleClickEffect.bind(this);\r\n this.onItemClick = this.onItemClick.bind(this);\r\n this.onItemDoubleClick = this.onItemDoubleClick.bind(this)\r\n }\r\n get appointmentsContextValue() {\r\n if (this.context[AppointmentsContext.id]) {\r\n return this.context[AppointmentsContext.id]\r\n }\r\n return AppointmentsContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateStylesEffect, [this.props.viewModel, this.appointmentsContextValue, this.props.groups]), new InfernoEffect(this.bindDoubleClickEffect, [])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.viewModel, this.appointmentsContextValue, this.props.groups])\r\n }\r\n updateStylesEffect() {\r\n var _viewModel$info$group;\r\n var {\r\n viewModel: viewModel\r\n } = this.props;\r\n var groupIndex = null !== (_viewModel$info$group = viewModel.info.groupIndex) && void 0 !== _viewModel$info$group ? _viewModel$info$group : 0;\r\n var {\r\n appointment: appointment\r\n } = viewModel;\r\n getAppointmentColor({\r\n resources: this.appointmentsContextValue.resources,\r\n resourceLoaderMap: this.appointmentsContextValue.resourceLoaderMap,\r\n resourcesDataAccessors: this.appointmentsContextValue.dataAccessors.resources,\r\n loadedResources: this.appointmentsContextValue.loadedResources\r\n }, {\r\n itemData: appointment,\r\n groupIndex: groupIndex,\r\n groups: this.props.groups\r\n }).then(color => {\r\n this.setState(__state_argument => ({\r\n color: color\r\n }))\r\n }).catch(() => \"\")\r\n }\r\n bindDoubleClickEffect() {\r\n var _this$ref$current;\r\n var onDoubleClick = () => this.onItemDoubleClick();\r\n null === (_this$ref$current = this.ref.current) || void 0 === _this$ref$current ? void 0 : _this$ref$current.addEventListener(\"dblclick\", onDoubleClick);\r\n return () => {\r\n var _this$ref$current2;\r\n null === (_this$ref$current2 = this.ref.current) || void 0 === _this$ref$current2 ? void 0 : _this$ref$current2.removeEventListener(\"dblclick\", onDoubleClick)\r\n }\r\n }\r\n get appointmentStyles() {\r\n return getAppointmentStyles(this.props.viewModel)\r\n }\r\n get styles() {\r\n return mergeStylesWithColor(this.state.color, this.appointmentStyles)\r\n }\r\n get text() {\r\n return this.props.viewModel.appointment.text\r\n }\r\n get isReduced() {\r\n var {\r\n appointmentReduced: appointmentReduced\r\n } = this.props.viewModel.info;\r\n return !!appointmentReduced\r\n }\r\n get classes() {\r\n var {\r\n focused: focused,\r\n info: {\r\n allDay: allDay,\r\n appointmentReduced: appointmentReduced,\r\n direction: direction,\r\n isRecurrent: isRecurrent\r\n }\r\n } = this.props.viewModel;\r\n var isVerticalDirection = \"vertical\" === direction;\r\n return combineClasses({\r\n \"dx-state-focused\": !!focused,\r\n \"dx-scheduler-appointment\": true,\r\n \"dx-scheduler-appointment-horizontal\": !isVerticalDirection,\r\n \"dx-scheduler-appointment-vertical\": isVerticalDirection,\r\n \"dx-scheduler-appointment-recurrence\": isRecurrent,\r\n \"dx-scheduler-all-day-appointment\": allDay,\r\n \"dx-scheduler-appointment-reduced\": this.isReduced,\r\n \"dx-scheduler-appointment-head\": \"head\" === appointmentReduced,\r\n \"dx-scheduler-appointment-body\": \"body\" === appointmentReduced,\r\n \"dx-scheduler-appointment-tail\": \"tail\" === appointmentReduced\r\n })\r\n }\r\n get dateText() {\r\n return this.props.viewModel.info.dateText\r\n }\r\n get data() {\r\n return {\r\n appointmentData: this.props.viewModel.info.appointment,\r\n targetedAppointmentData: this.props.viewModel.appointment\r\n }\r\n }\r\n onItemClick() {\r\n var e = {\r\n data: [this.props.viewModel],\r\n target: this.ref.current,\r\n index: this.props.index\r\n };\r\n this.props.onItemClick(e)\r\n }\r\n onItemDoubleClick() {\r\n var e = {\r\n data: [this.props.viewModel],\r\n target: this.ref.current,\r\n index: this.props.index\r\n };\r\n this.props.onItemDoubleClick(e)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n appointmentTemplate: getTemplate(props.appointmentTemplate)\r\n }),\r\n color: this.state.color,\r\n ref: this.ref,\r\n appointmentsContextValue: this.appointmentsContextValue,\r\n appointmentStyles: this.appointmentStyles,\r\n styles: this.styles,\r\n text: this.text,\r\n isReduced: this.isReduced,\r\n classes: this.classes,\r\n dateText: this.dateText,\r\n data: this.data,\r\n onItemClick: this.onItemClick,\r\n onItemDoubleClick: this.onItemDoubleClick,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAppointment.defaultProps = AppointmentProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/overflow_indicator/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addToStyles\r\n} from \"../../workspaces/utils\";\r\nimport {\r\n getAppointmentColor\r\n} from \"../../resources/utils\";\r\nexport var getOverflowIndicatorStyles = viewModel => {\r\n var {\r\n geometry: {\r\n height: height,\r\n left: left,\r\n top: top,\r\n width: width\r\n }\r\n } = viewModel;\r\n var result = addToStyles([{\r\n attr: \"left\",\r\n value: \"\".concat(left, \"px\")\r\n }, {\r\n attr: \"top\",\r\n value: \"\".concat(top, \"px\")\r\n }, {\r\n attr: \"width\",\r\n value: \"\".concat(width, \"px\")\r\n }, {\r\n attr: \"height\",\r\n value: \"\".concat(height, \"px\")\r\n }, {\r\n attr: \"boxShadow\",\r\n value: \"inset \".concat(width, \"px 0 0 0 rgba(0, 0, 0, 0.3)\")\r\n }]);\r\n return result\r\n};\r\nexport var getOverflowIndicatorColor = (color, colors) => !colors.length || 0 === colors.filter(item => item !== color).length ? color : void 0;\r\nexport var getIndicatorColor = (appointmentContext, viewModel, groups) => {\r\n var _viewModel$groupIndex;\r\n var groupIndex = null !== (_viewModel$groupIndex = viewModel.groupIndex) && void 0 !== _viewModel$groupIndex ? _viewModel$groupIndex : 0;\r\n var {\r\n appointment: appointment\r\n } = viewModel.items.settings[0];\r\n return getAppointmentColor({\r\n resources: appointmentContext.resources,\r\n resourceLoaderMap: appointmentContext.resourceLoaderMap,\r\n resourcesDataAccessors: appointmentContext.dataAccessors.resources,\r\n loadedResources: appointmentContext.loadedResources\r\n }, {\r\n itemData: appointment,\r\n groupIndex: groupIndex,\r\n groups: groups\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/overflow_indicator/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"groups\", \"overflowIndicatorTemplate\", \"viewModel\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../utils/combine_classes\";\r\nimport {\r\n Button\r\n} from \"../../../button\";\r\nimport {\r\n getIndicatorColor,\r\n getOverflowIndicatorStyles\r\n} from \"./utils\";\r\nimport messageLocalization from \"../../../../../localization/message\";\r\nimport {\r\n AppointmentsContext\r\n} from \"../../appointments_context\";\r\nimport {\r\n mergeStylesWithColor\r\n} from \"../utils\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n data: data,\r\n props: {\r\n overflowIndicatorTemplate: OverflowIndicatorTemplate\r\n },\r\n styles: styles,\r\n text: text\r\n } = _ref;\r\n return createComponentVNode(2, Button, {\r\n style: normalizeStyles(styles),\r\n className: classes,\r\n type: \"default\",\r\n stylingMode: \"contained\",\r\n children: OverflowIndicatorTemplate ? OverflowIndicatorTemplate({\r\n data: data\r\n }) : createVNode(1, \"span\", null, text, 0)\r\n })\r\n};\r\nexport var OverflowIndicatorProps = {};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class OverflowIndicator extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n color: void 0\r\n };\r\n this.updateStylesEffect = this.updateStylesEffect.bind(this)\r\n }\r\n get appointmentsContextValue() {\r\n if (this.context[AppointmentsContext.id]) {\r\n return this.context[AppointmentsContext.id]\r\n }\r\n return AppointmentsContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateStylesEffect, [this.props.groups, this.props.viewModel, this.appointmentsContextValue])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.groups, this.props.viewModel, this.appointmentsContextValue])\r\n }\r\n updateStylesEffect() {\r\n var {\r\n groups: groups,\r\n viewModel: viewModel\r\n } = this.props;\r\n getIndicatorColor(this.appointmentsContextValue, viewModel, groups).then(color => {\r\n this.setState(__state_argument => ({\r\n color: color\r\n }))\r\n })\r\n }\r\n get data() {\r\n return {\r\n appointmentCount: this.props.viewModel.items.settings.length,\r\n isCompact: this.props.viewModel.isCompact\r\n }\r\n }\r\n get text() {\r\n var {\r\n isCompact: isCompact\r\n } = this.props.viewModel;\r\n var {\r\n appointmentCount: appointmentCount\r\n } = this.data;\r\n if (isCompact) {\r\n return \"\".concat(appointmentCount)\r\n }\r\n var formatter = messageLocalization.getFormatter(\"dxScheduler-moreAppointments\");\r\n return formatter(appointmentCount)\r\n }\r\n get appointmentStyles() {\r\n return getOverflowIndicatorStyles(this.props.viewModel)\r\n }\r\n get styles() {\r\n return mergeStylesWithColor(this.state.color, this.appointmentStyles)\r\n }\r\n get classes() {\r\n return combineClasses({\r\n \"dx-scheduler-appointment-collector\": true,\r\n \"dx-scheduler-appointment-collector-compact\": this.data.isCompact\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n overflowIndicatorTemplate: getTemplate(props.overflowIndicatorTemplate)\r\n }),\r\n color: this.state.color,\r\n appointmentsContextValue: this.appointmentsContextValue,\r\n data: this.data,\r\n text: this.text,\r\n appointmentStyles: this.appointmentStyles,\r\n styles: this.styles,\r\n classes: this.classes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nOverflowIndicator.defaultProps = OverflowIndicatorProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isAllDay\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Appointment\r\n} from \"./appointment\";\r\nimport {\r\n OverflowIndicator\r\n} from \"./overflow_indicator/layout\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n AppointmentsContext\r\n} from \"../appointments_context\";\r\nimport {\r\n subscribeToDXPointerDownEvent\r\n} from \"../../../utils/subscribe_to_event\";\r\nvar SELECTOR = {\r\n appointment: \".dx-scheduler-appointment\",\r\n allDay: \"dx-scheduler-all-day-appointment\",\r\n collector: \"dx-scheduler-appointment-collector\"\r\n};\r\nexport var viewFunction = _ref => {\r\n var {\r\n appointments: appointments,\r\n appointmentsContextValue: {\r\n appointmentTemplate: appointmentTemplate,\r\n groups: groups,\r\n hideReducedIconTooltip: hideReducedIconTooltip,\r\n onAppointmentClick: onAppointmentClick,\r\n onAppointmentDoubleClick: onAppointmentDoubleClick,\r\n overflowIndicatorTemplate: overflowIndicatorTemplate,\r\n showReducedIconTooltip: showReducedIconTooltip\r\n },\r\n classes: classes,\r\n layoutRef: layoutRef,\r\n overflowIndicators: overflowIndicators\r\n } = _ref;\r\n return createVNode(1, \"div\", classes, [appointments.map((item, index) => createComponentVNode(2, Appointment, {\r\n viewModel: item,\r\n appointmentTemplate: appointmentTemplate,\r\n index: index,\r\n groups: groups,\r\n onItemClick: onAppointmentClick,\r\n onItemDoubleClick: onAppointmentDoubleClick,\r\n showReducedIconTooltip: showReducedIconTooltip,\r\n hideReducedIconTooltip: hideReducedIconTooltip\r\n }, item.key)), overflowIndicators.map((item, index) => createComponentVNode(2, OverflowIndicator, {\r\n viewModel: item,\r\n groups: groups,\r\n overflowIndicatorTemplate: overflowIndicatorTemplate,\r\n \"data-index\": index\r\n }, item.key))], 0, null, null, layoutRef)\r\n};\r\nexport var AppointmentLayoutProps = {\r\n isAllDay: false\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class AppointmentLayout extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.layoutRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.pointerEventsEffect = this.pointerEventsEffect.bind(this);\r\n this.onAppointmentPointerDown = this.onAppointmentPointerDown.bind(this)\r\n }\r\n get appointmentsContextValue() {\r\n if (this.context[AppointmentsContext.id]) {\r\n return this.context[AppointmentsContext.id]\r\n }\r\n return AppointmentsContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.pointerEventsEffect, [this.appointmentsContextValue]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.appointmentsContextValue])\r\n }\r\n pointerEventsEffect() {\r\n var disposePointerDown = subscribeToDXPointerDownEvent(this.layoutRef.current, e => this.onAppointmentPointerDown(e));\r\n return () => {\r\n disposePointerDown()\r\n }\r\n }\r\n get classes() {\r\n var {\r\n isAllDay: isAllDay\r\n } = this.props;\r\n return combineClasses({\r\n \"dx-scheduler-scrollable-appointments\": !isAllDay,\r\n \"dx-scheduler-all-day-appointments\": isAllDay\r\n })\r\n }\r\n get appointments() {\r\n if (void 0 !== this.__getterCache.appointments) {\r\n return this.__getterCache.appointments\r\n }\r\n return this.__getterCache.appointments = (() => {\r\n if (this.props.isAllDay) {\r\n return this.appointmentsContextValue.viewModel.allDay\r\n }\r\n return this.appointmentsContextValue.viewModel.regular\r\n })()\r\n }\r\n get overflowIndicators() {\r\n if (void 0 !== this.__getterCache.overflowIndicators) {\r\n return this.__getterCache.overflowIndicators\r\n }\r\n return this.__getterCache.overflowIndicators = (() => {\r\n if (this.props.isAllDay) {\r\n return this.appointmentsContextValue.viewModel.allDayCompact\r\n }\r\n return this.appointmentsContextValue.viewModel.regularCompact\r\n })()\r\n }\r\n onAppointmentPointerDown(e) {\r\n var appointmentElement = e.target.closest(SELECTOR.appointment);\r\n if (appointmentElement) {\r\n var {\r\n index: index\r\n } = appointmentElement.dataset;\r\n var focusedAppointmentIndex = index ? parseInt(index, 10) : -1;\r\n var isAllDay = appointmentElement.classList.contains(SELECTOR.allDay);\r\n var isCompact = appointmentElement.classList.contains(SELECTOR.collector);\r\n var typeMap = {\r\n allDayCompact: isAllDay && isCompact,\r\n allDay: isAllDay && !isCompact,\r\n regularCompact: !isAllDay && isCompact,\r\n regular: !isAllDay && !isCompact\r\n };\r\n var appointmentType = Object.entries(typeMap).filter(item => item[1])[0][0];\r\n this.appointmentsContextValue.updateFocusedAppointment(appointmentType, focusedAppointmentIndex)\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.isAllDay !== nextProps.isAllDay || this.context[AppointmentsContext.id] !== context[AppointmentsContext.id]) {\r\n this.__getterCache.appointments = void 0\r\n }\r\n if (this.props.isAllDay !== nextProps.isAllDay || this.context[AppointmentsContext.id] !== context[AppointmentsContext.id]) {\r\n this.__getterCache.overflowIndicators = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n layoutRef: this.layoutRef,\r\n appointmentsContextValue: this.appointmentsContextValue,\r\n classes: this.classes,\r\n appointments: this.appointments,\r\n overflowIndicators: this.overflowIndicators,\r\n onAppointmentPointerDown: this.onAppointmentPointerDown,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAppointmentLayout.defaultProps = AppointmentLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/appointment/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/common/component\";\r\nimport {\r\n AppointmentLayout as AppointmentLayoutComponent\r\n} from \"./layout\";\r\nexport default class AppointmentLayout extends BaseComponent {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: [\"isAllDay\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return AppointmentLayoutComponent\r\n }\r\n}\r\nregisterComponent(\"dxAppointmentLayout\", AppointmentLayout);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n setHeight,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"./m_constants\";\r\nexport var utils = {\r\n dataAccessors: {\r\n getAppointmentSettings: element => $(element).data(APPOINTMENT_SETTINGS_KEY),\r\n getAppointmentInfo: element => {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n return null === settings || void 0 === settings ? void 0 : settings.info\r\n },\r\n create: (fields, currentDataAccessors, forceIsoDateParsing, dateSerializationFormat) => {\r\n var dataAccessors = currentDataAccessors ? _extends({}, currentDataAccessors) : {\r\n getter: {},\r\n setter: {},\r\n expr: {}\r\n };\r\n each(fields, (name, expr) => {\r\n if (expr) {\r\n var getter = compileGetter(expr);\r\n var setter = compileSetter(expr);\r\n var dateGetter;\r\n var dateSetter;\r\n var serializationFormat;\r\n if (field = name, \"startDate\" === field || \"endDate\" === field) {\r\n dateGetter = object => {\r\n var value = getter(object);\r\n if (forceIsoDateParsing) {\r\n value = dateSerialization.deserializeDate(value)\r\n }\r\n return value\r\n };\r\n dateSetter = (object, value) => {\r\n if (dateSerializationFormat) {\r\n serializationFormat = dateSerializationFormat\r\n } else if (forceIsoDateParsing && !serializationFormat) {\r\n var oldValue = getter(object);\r\n serializationFormat = dateSerialization.getDateSerializationFormat(oldValue)\r\n }\r\n var newValue = dateSerialization.serializeDate(value, serializationFormat);\r\n setter(object, newValue)\r\n }\r\n }\r\n dataAccessors.getter[name] = dateGetter || getter;\r\n dataAccessors.setter[name] = dateSetter || setter;\r\n dataAccessors.expr[\"\".concat(name, \"Expr\")] = expr\r\n } else {\r\n delete dataAccessors.getter[name];\r\n delete dataAccessors.setter[name];\r\n delete dataAccessors.expr[\"\".concat(name, \"Expr\")]\r\n }\r\n var field\r\n });\r\n return dataAccessors\r\n }\r\n },\r\n DOM: {\r\n getHeaderHeight: header => header ? header._$element && parseInt(getOuterHeight(header._$element), 10) : 0\r\n },\r\n renovation: {\r\n renderComponent: (widget, parentElement, componentClass, componentName, viewModel) => {\r\n var component = widget[componentName];\r\n if (!component) {\r\n var container = getPublicElement(parentElement);\r\n component = widget._createComponent(container, componentClass, viewModel);\r\n widget[componentName] = component\r\n } else {\r\n var $element = component.$element();\r\n var elementStyle = $element.get(0).style;\r\n var {\r\n height: height\r\n } = elementStyle;\r\n var {\r\n width: width\r\n } = elementStyle;\r\n component.option(viewModel);\r\n if (height) {\r\n setHeight($element, height)\r\n }\r\n if (width) {\r\n setWidth($element, width)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_calendar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Calendar from \"../../../ui/calendar\";\r\nimport Popover from \"../../../ui/popover/ui.popover\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar CALENDAR_CLASS = \"dx-scheduler-navigator-calendar\";\r\nvar CALENDAR_POPOVER_CLASS = \"dx-scheduler-navigator-calendar-popover\";\r\nexport default class SchedulerCalendar extends Widget {\r\n show(target) {\r\n if (!this._isMobileLayout()) {\r\n this._overlay.option(\"target\", target)\r\n }\r\n this._overlay.show()\r\n }\r\n hide() {\r\n this._overlay.hide()\r\n }\r\n _keyboardHandler(opts) {\r\n var _a;\r\n null === (_a = this._calendar) || void 0 === _a ? void 0 : _a._keyboardHandler(opts)\r\n }\r\n _init() {\r\n super._init();\r\n this.$element()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderOverlay()\r\n }\r\n _renderOverlay() {\r\n this.$element().addClass(CALENDAR_POPOVER_CLASS);\r\n var isMobileLayout = this._isMobileLayout();\r\n var overlayType = isMobileLayout ? Popup : Popover;\r\n this._overlay = this._createComponent(this.$element(), overlayType, {\r\n contentTemplate: () => this._createOverlayContent(),\r\n onShown: () => this._calendar.focus(),\r\n defaultOptionsRules: [{\r\n device: () => isMobileLayout,\r\n options: {\r\n fullScreen: true,\r\n showCloseButton: false,\r\n toolbarItems: [{\r\n shortcut: \"cancel\"\r\n }]\r\n }\r\n }]\r\n })\r\n }\r\n _createOverlayContent() {\r\n var result = $(\"<div>\").addClass(CALENDAR_CLASS);\r\n this._calendar = this._createComponent(result, Calendar, this._getCalendarOptions());\r\n if (this._isMobileLayout()) {\r\n var scrollable = this._createScrollable(result);\r\n return scrollable.$element()\r\n }\r\n return result\r\n }\r\n _createScrollable(content) {\r\n var result = this._createComponent(\"<div>\", Scrollable, {\r\n direction: \"vertical\"\r\n });\r\n result.$content().append(content);\r\n return result\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var _a;\r\n switch (name) {\r\n case \"value\":\r\n null === (_a = this._calendar) || void 0 === _a ? void 0 : _a.option(\"value\", value)\r\n }\r\n }\r\n _getCalendarOptions() {\r\n return {\r\n value: this.option(\"value\"),\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n onValueChanged: this.option(\"onValueChanged\"),\r\n skipFocusCheck: true,\r\n tabIndex: this.option(\"tabIndex\")\r\n }\r\n }\r\n _isMobileLayout() {\r\n return !devices.current().generic\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerCalendarPopup\", SchedulerCalendar);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_date_navigator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nvar {\r\n trimTime: trimTime\r\n} = dateUtils;\r\nvar DATE_NAVIGATOR_CLASS = \"dx-scheduler-navigator\";\r\nvar PREVIOUS_BUTTON_CLASS = \"dx-scheduler-navigator-previous\";\r\nvar CALENDAR_BUTTON_CLASS = \"dx-scheduler-navigator-caption\";\r\nvar NEXT_BUTTON_CLASS = \"dx-scheduler-navigator-next\";\r\nvar DIRECTION_LEFT = -1;\r\nvar DIRECTION_RIGHT = 1;\r\nexport var getDateNavigator = (header, item) => {\r\n var items = [getPreviousButtonOptions(header), getCalendarButtonOptions(header), getNextButtonOptions(header)];\r\n var stylingMode = isMaterialBased() ? \"text\" : \"contained\";\r\n return _extends({\r\n widget: \"dxButtonGroup\",\r\n cssClass: DATE_NAVIGATOR_CLASS,\r\n options: {\r\n items: items,\r\n stylingMode: stylingMode,\r\n selectionMode: \"none\",\r\n onItemClick: e => {\r\n e.itemData.clickHandler(e)\r\n }\r\n }\r\n }, item)\r\n};\r\nvar getPreviousButtonOptions = header => ({\r\n key: \"previous\",\r\n icon: \"chevronprev\",\r\n elementAttr: {\r\n class: PREVIOUS_BUTTON_CLASS\r\n },\r\n clickHandler: () => header._updateDateByDirection(DIRECTION_LEFT),\r\n onContentReady: e => {\r\n var previousButton = e.component;\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header));\r\n header._addEvent(\"min\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n })\r\n }\r\n});\r\nvar getCalendarButtonOptions = header => ({\r\n key: \"calendar\",\r\n text: header.captionText,\r\n elementAttr: {\r\n class: CALENDAR_BUTTON_CLASS\r\n },\r\n clickHandler: e => header._showCalendar(e),\r\n onContentReady: e => {\r\n var calendarButton = e.component;\r\n header._addEvent(\"currentView\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"views\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"firstDayOfWeek\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n })\r\n }\r\n});\r\nvar getNextButtonOptions = header => ({\r\n key: \"next\",\r\n icon: \"chevronnext\",\r\n elementAttr: {\r\n class: NEXT_BUTTON_CLASS\r\n },\r\n clickHandler: () => header._updateDateByDirection(DIRECTION_RIGHT),\r\n onContentReady: e => {\r\n var nextButton = e.component;\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header));\r\n header._addEvent(\"min\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n })\r\n }\r\n});\r\nvar isPreviousButtonDisabled = header => {\r\n var min = header.option(\"min\");\r\n if (!min) {\r\n return false\r\n }\r\n min = new Date(min);\r\n var caption = header._getCaption();\r\n min = trimTime(min);\r\n var previousDate = header._getNextDate(-1, caption.endDate);\r\n return previousDate < min\r\n};\r\nvar isNextButtonDisabled = header => {\r\n var max = header.option(\"max\");\r\n if (!max) {\r\n return false\r\n }\r\n max = new Date(max);\r\n var caption = header._getCaption();\r\n max = max.setHours(23, 59, 59);\r\n var nextDate = header._getNextDate(1, caption.startDate);\r\n return nextDate > max\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../core/errors\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n isFunction,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nvar DAY_FORMAT = \"d\";\r\nvar DAYS_IN_WORK_WEEK = 5;\r\nvar {\r\n correctDateWithUnitBeginning: getPeriodStart,\r\n getFirstWeekDate: getWeekStart,\r\n getLastMonthDay: getLastMonthDay,\r\n addDateInterval: addDateInterval\r\n} = dateUtils;\r\nvar {\r\n format: formatDate\r\n} = dateLocalization;\r\nvar MS_DURATION = {\r\n milliseconds: 1\r\n};\r\nvar DAY_DURATION = {\r\n days: 1\r\n};\r\nvar WEEK_DURATION = {\r\n days: 7\r\n};\r\nvar SATURDAY_INDEX = 6;\r\nvar SUNDAY_INDEX = 0;\r\nvar subMS = date => addDateInterval(date, MS_DURATION, -1);\r\nvar addMS = date => addDateInterval(date, MS_DURATION, 1);\r\nvar nextDay = date => addDateInterval(date, DAY_DURATION, 1);\r\nexport var nextWeek = date => addDateInterval(date, WEEK_DURATION, 1);\r\nvar nextMonth = date => {\r\n var days = getLastMonthDay(date);\r\n return addDateInterval(date, {\r\n days: days\r\n }, 1)\r\n};\r\nvar isWeekend = date => date.getDay() === SATURDAY_INDEX || date.getDay() === SUNDAY_INDEX;\r\nvar getWorkWeekStart = firstDayOfWeek => {\r\n var date = new Date(firstDayOfWeek);\r\n while (isWeekend(date)) {\r\n date = nextDay(date)\r\n }\r\n return date\r\n};\r\nvar getDateAfterWorkWeek = workWeekStart => {\r\n var date = new Date(workWeekStart);\r\n var workDaysCount = 0;\r\n while (workDaysCount < DAYS_IN_WORK_WEEK) {\r\n if (!isWeekend(date)) {\r\n workDaysCount++\r\n }\r\n date = nextDay(date)\r\n }\r\n return date\r\n};\r\nvar nextAgendaStart = (date, agendaDuration) => addDateInterval(date, {\r\n days: agendaDuration\r\n}, 1);\r\nvar getInterval = options => {\r\n var startDate = getIntervalStartDate(options);\r\n var endDate = getIntervalEndDate(startDate, options);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getIntervalStartDate = options => {\r\n var {\r\n date: date,\r\n step: step,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = options;\r\n switch (step) {\r\n case \"day\":\r\n case \"week\":\r\n case \"month\":\r\n return getPeriodStart(date, step, false, firstDayOfWeek);\r\n case \"workWeek\":\r\n var firstWeekDay = getWeekStart(date, firstDayOfWeek);\r\n return getWorkWeekStart(firstWeekDay);\r\n case \"agenda\":\r\n return new Date(date)\r\n }\r\n};\r\nvar getIntervalEndDate = (startDate, options) => {\r\n var {\r\n intervalCount: intervalCount,\r\n step: step,\r\n agendaDuration: agendaDuration\r\n } = options;\r\n var periodStartDate;\r\n var periodEndDate;\r\n var nextPeriodStartDate = new Date(startDate);\r\n for (var i = 0; i < intervalCount; i++) {\r\n periodStartDate = nextPeriodStartDate;\r\n periodEndDate = getPeriodEndDate(periodStartDate, step, agendaDuration);\r\n nextPeriodStartDate = getNextPeriodStartDate(periodEndDate, step)\r\n }\r\n return periodEndDate\r\n};\r\nvar getPeriodEndDate = (currentPeriodStartDate, step, agendaDuration) => {\r\n var date;\r\n switch (step) {\r\n case \"day\":\r\n date = nextDay(currentPeriodStartDate);\r\n break;\r\n case \"week\":\r\n date = nextWeek(currentPeriodStartDate);\r\n break;\r\n case \"month\":\r\n date = nextMonth(currentPeriodStartDate);\r\n break;\r\n case \"workWeek\":\r\n date = getDateAfterWorkWeek(currentPeriodStartDate);\r\n break;\r\n case \"agenda\":\r\n date = nextAgendaStart(currentPeriodStartDate, agendaDuration)\r\n }\r\n return subMS(date)\r\n};\r\nvar getNextPeriodStartDate = (currentPeriodEndDate, step) => {\r\n var date = addMS(currentPeriodEndDate);\r\n if (\"workWeek\" === step) {\r\n while (isWeekend(date)) {\r\n date = nextDay(date)\r\n }\r\n }\r\n return date\r\n};\r\nexport var getNextIntervalDate = (options, direction) => {\r\n var {\r\n date: date,\r\n step: step,\r\n intervalCount: intervalCount,\r\n agendaDuration: agendaDuration\r\n } = options;\r\n var dayDuration;\r\n switch (step) {\r\n case \"day\":\r\n dayDuration = 1 * intervalCount;\r\n break;\r\n case \"week\":\r\n case \"workWeek\":\r\n dayDuration = 7 * intervalCount;\r\n break;\r\n case \"agenda\":\r\n dayDuration = agendaDuration;\r\n break;\r\n case \"month\":\r\n return getNextMonthDate(date, intervalCount, direction)\r\n }\r\n return addDateInterval(date, {\r\n days: dayDuration\r\n }, direction)\r\n};\r\nvar getNextMonthDate = (date, intervalCount, direction) => {\r\n var currentDate = date.getDate();\r\n var currentMonthFirstDate = new Date(new Date(date.getTime()).setDate(1));\r\n var thatMonthFirstDate = new Date(currentMonthFirstDate.setMonth(currentMonthFirstDate.getMonth() + intervalCount * direction));\r\n var thatMonthDuration = getLastMonthDay(thatMonthFirstDate);\r\n var minDate = currentDate < thatMonthDuration ? currentDate : thatMonthDuration;\r\n var currentMonthMinDate = new Date(new Date(date.getTime()).setDate(minDate));\r\n var thatMonthMinDate = new Date(currentMonthMinDate.setMonth(currentMonthMinDate.getMonth() + intervalCount * direction));\r\n return thatMonthMinDate\r\n};\r\nvar getDateMonthFormatter = isShort => {\r\n var monthType = isShort ? \"abbreviated\" : \"wide\";\r\n var months = dateLocalization.getMonthNames(monthType);\r\n return date => {\r\n var day = formatDate(date, \"day\");\r\n var month = months[date.getMonth()];\r\n return \"\".concat(day, \" \").concat(month)\r\n }\r\n};\r\nvar formatMonthYear = date => {\r\n var months = dateLocalization.getMonthNames(\"abbreviated\");\r\n var month = months[date.getMonth()];\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(month, \" \").concat(year)\r\n};\r\nvar getDateMonthYearFormatter = isShort => date => {\r\n var dateMonthFormat = getDateMonthFormatter(isShort);\r\n var dateMonth = dateMonthFormat(date);\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(dateMonth, \" \").concat(year)\r\n};\r\nvar getDifferentYearCaption = (startDate, endDate) => {\r\n var firstDateText = formatDate(startDate, getDateMonthYearFormatter(true));\r\n var lastDateDateText = formatDate(endDate, getDateMonthYearFormatter(true));\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateDateText)\r\n};\r\nvar getSameYearCaption = (startDate, endDate, isShort) => {\r\n var isDifferentMonthDates = startDate.getMonth() !== endDate.getMonth();\r\n var useShortFormat = isDifferentMonthDates || isShort;\r\n var firstDateFormat = isDifferentMonthDates ? getDateMonthFormatter(useShortFormat) : DAY_FORMAT;\r\n var firstDateText = formatDate(startDate, firstDateFormat);\r\n var lastDateText = formatDate(endDate, getDateMonthYearFormatter(useShortFormat));\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateText)\r\n};\r\nvar getSameDateCaption = (date, step, isShort) => {\r\n var useShortFormat = \"agenda\" === step ? isShort : false;\r\n var dateMonthFormat = getDateMonthFormatter(useShortFormat);\r\n var dateMonth = dateMonthFormat(date);\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(dateMonth, \" \").concat(year)\r\n};\r\nvar formatCaptionByMonths = (startDate, endDate, isShort) => {\r\n var isDifferentYears = startDate.getFullYear() !== endDate.getFullYear();\r\n if (isDifferentYears) {\r\n return getDifferentYearCaption(startDate, endDate)\r\n }\r\n return getSameYearCaption(startDate, endDate, isShort)\r\n};\r\nvar formatMonthViewCaption = (startDate, endDate) => {\r\n if (dateUtils.sameMonth(startDate, endDate)) {\r\n return formatDate(startDate, \"monthandyear\")\r\n }\r\n var isSameYear = dateUtils.sameYear(startDate, endDate);\r\n var firstDateText = isSameYear ? dateLocalization.getMonthNames(\"abbreviated\")[startDate.getMonth()] : formatMonthYear(startDate);\r\n var lastDateText = formatMonthYear(endDate);\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateText)\r\n};\r\nvar getCaptionText = (startDate, endDate, isShort, step) => {\r\n if (dateUtils.sameDate(startDate, endDate)) {\r\n return getSameDateCaption(startDate, step, isShort)\r\n }\r\n if (\"month\" === step) {\r\n return formatMonthViewCaption(startDate, endDate)\r\n }\r\n return formatCaptionByMonths(startDate, endDate, isShort)\r\n};\r\nexport var getCaption = (options, isShort, customizationFunction) => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = getInterval(options);\r\n var text = getCaptionText(startDate, endDate, isShort, options.step);\r\n if (isFunction(customizationFunction)) {\r\n text = customizationFunction({\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text\r\n })\r\n }\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text\r\n }\r\n};\r\nvar STEP_MAP = {\r\n day: \"day\",\r\n week: \"week\",\r\n workWeek: \"workWeek\",\r\n month: \"month\",\r\n timelineDay: \"day\",\r\n timelineWeek: \"week\",\r\n timelineWorkWeek: \"workWeek\",\r\n timelineMonth: \"month\",\r\n agenda: \"agenda\"\r\n};\r\nexport var getStep = view => STEP_MAP[getViewType(view)];\r\nexport var getViewType = view => {\r\n if (isObject(view) && view.type) {\r\n return view.type\r\n }\r\n return view\r\n};\r\nexport var getViewName = view => {\r\n if (isObject(view)) {\r\n return view.name ? view.name : view.type\r\n }\r\n return view\r\n};\r\nexport var getViewText = view => {\r\n if (view.name) {\r\n return view.name\r\n }\r\n var viewName = camelize(view.type || view, true);\r\n return messageLocalization.format(\"dxScheduler-switcher\".concat(viewName))\r\n};\r\nvar isValidView = view => Object.values(VIEWS).includes(view);\r\nexport var validateViews = views => {\r\n views.forEach(view => {\r\n var viewType = getViewType(view);\r\n if (!isValidView(viewType)) {\r\n errors.log(\"W0008\", viewType)\r\n }\r\n })\r\n};\r\nexport var formatViews = views => {\r\n validateViews(views);\r\n return views.map(view => {\r\n var text = getViewText(view);\r\n var type = getViewType(view);\r\n var name = getViewName(view);\r\n return {\r\n text: text,\r\n name: name,\r\n view: {\r\n text: text,\r\n type: type,\r\n name: name\r\n }\r\n }\r\n })\r\n};\r\nexport var isOneView = (views, selectedView) => 1 === views.length && views[0].name === selectedView;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_view_switcher.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport {\r\n formatViews,\r\n getViewName,\r\n isOneView\r\n} from \"./m_utils\";\r\nvar VIEW_SWITCHER_CLASS = \"dx-scheduler-view-switcher\";\r\nvar VIEW_SWITCHER_DROP_DOWN_BUTTON_CLASS = \"dx-scheduler-view-switcher-dropdown-button\";\r\nvar VIEW_SWITCHER_DROP_DOWN_BUTTON_CONTENT_CLASS = \"dx-scheduler-view-switcher-dropdown-button-content\";\r\nvar getViewsAndSelectedView = header => {\r\n var views = formatViews(header.views);\r\n var selectedView = getViewName(header.currentView);\r\n var isSelectedViewInViews = views.some(view => view.name === selectedView);\r\n selectedView = isSelectedViewInViews ? selectedView : void 0;\r\n return {\r\n selectedView: selectedView,\r\n views: views\r\n }\r\n};\r\nexport var getViewSwitcher = (header, item) => {\r\n var {\r\n selectedView: selectedView,\r\n views: views\r\n } = getViewsAndSelectedView(header);\r\n var stylingMode = isFluent() ? \"outlined\" : \"contained\";\r\n return _extends({\r\n widget: \"dxButtonGroup\",\r\n locateInMenu: \"auto\",\r\n cssClass: VIEW_SWITCHER_CLASS,\r\n options: {\r\n items: views,\r\n keyExpr: \"name\",\r\n selectedItemKeys: [selectedView],\r\n stylingMode: stylingMode,\r\n onItemClick: e => {\r\n var {\r\n view: view\r\n } = e.itemData;\r\n header._updateCurrentView(view)\r\n },\r\n onContentReady: e => {\r\n var viewSwitcher = e.component;\r\n header._addEvent(\"currentView\", view => {\r\n viewSwitcher.option(\"selectedItemKeys\", [getViewName(view)])\r\n })\r\n }\r\n }\r\n }, item)\r\n};\r\nexport var getDropDownViewSwitcher = (header, item) => {\r\n var {\r\n selectedView: selectedView,\r\n views: views\r\n } = getViewsAndSelectedView(header);\r\n var oneView = isOneView(views, selectedView);\r\n return _extends({\r\n widget: \"dxDropDownButton\",\r\n locateInMenu: \"never\",\r\n cssClass: VIEW_SWITCHER_CLASS,\r\n options: {\r\n items: views,\r\n useSelectMode: true,\r\n keyExpr: \"name\",\r\n selectedItemKey: selectedView,\r\n displayExpr: \"text\",\r\n showArrowIcon: !oneView,\r\n elementAttr: {\r\n class: VIEW_SWITCHER_DROP_DOWN_BUTTON_CLASS\r\n },\r\n onItemClick: e => {\r\n var {\r\n view: view\r\n } = e.itemData;\r\n header._updateCurrentView(view)\r\n },\r\n onContentReady: e => {\r\n var viewSwitcher = e.component;\r\n header._addEvent(\"currentView\", view => {\r\n var views = formatViews(header.views);\r\n if (isOneView(views, view)) {\r\n header.repaint()\r\n }\r\n viewSwitcher.option(\"selectedItemKey\", getViewName(view))\r\n })\r\n },\r\n dropDownOptions: {\r\n onShowing: e => {\r\n if (oneView) {\r\n e.cancel = true\r\n }\r\n },\r\n width: \"max-content\",\r\n _wrapperClassExternal: VIEW_SWITCHER_DROP_DOWN_BUTTON_CONTENT_CLASS\r\n }\r\n }\r\n }, item)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_header.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../ui/button_group\";\r\nimport \"../../../ui/drop_down_button\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport errors from \"../../../core/errors\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n renovationGetCurrentView\r\n} from \"../../../renovation/ui/scheduler/model/untyped_getCurrentView\";\r\nimport Toolbar from \"../../../ui/toolbar\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport SchedulerCalendar from \"./m_calendar\";\r\nimport {\r\n getDateNavigator\r\n} from \"./m_date_navigator\";\r\nimport {\r\n getCaption,\r\n getNextIntervalDate,\r\n getStep,\r\n getViewName,\r\n getViewType,\r\n nextWeek,\r\n validateViews\r\n} from \"./m_utils\";\r\nimport {\r\n getDropDownViewSwitcher,\r\n getViewSwitcher\r\n} from \"./m_view_switcher\";\r\nvar DEFAULT_ELEMENT = \"defaultElement\";\r\nvar VIEW_SWITCHER = \"viewSwitcher\";\r\nvar DATE_NAVIGATOR = \"dateNavigator\";\r\nvar COMPONENT_CLASS = \"dx-scheduler-header\";\r\nexport class SchedulerHeader extends Widget {\r\n get views() {\r\n return this.option(\"views\")\r\n }\r\n get captionText() {\r\n return this._getCaption().text\r\n }\r\n get intervalOptions() {\r\n var step = getStep(this.currentView);\r\n var intervalCount = this.option(\"intervalCount\");\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n var agendaDuration = this.option(\"agendaDuration\");\r\n return {\r\n step: step,\r\n intervalCount: intervalCount,\r\n firstDayOfWeek: firstDayOfWeek,\r\n agendaDuration: agendaDuration\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n _useShortDateFormat: !devices.real().generic || devices.isSimulator()\r\n })\r\n }\r\n _createEventMap() {\r\n this.eventMap = new Map([\r\n [\"currentView\", [view => {\r\n this.currentView = renovationGetCurrentView(getViewName(view), this.option(\"views\"))\r\n }]],\r\n [\"items\", [this.repaint.bind(this)]],\r\n [\"views\", [validateViews]],\r\n [\"currentDate\", [this._getCalendarOptionUpdater(\"value\")]],\r\n [\"min\", [this._getCalendarOptionUpdater(\"min\")]],\r\n [\"max\", [this._getCalendarOptionUpdater(\"max\")]],\r\n [\"tabIndex\", [this.repaint.bind(this)]],\r\n [\"focusStateEnabled\", [this.repaint.bind(this)]],\r\n [\"useDropDownViewSwitcher\", [this.repaint.bind(this)]]\r\n ])\r\n }\r\n _addEvent(name, event) {\r\n if (!this.eventMap.has(name)) {\r\n this.eventMap.set(name, [])\r\n }\r\n var events = this.eventMap.get(name);\r\n this.eventMap.set(name, [...events, event])\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n if (this.eventMap.has(name)) {\r\n var events = this.eventMap.get(name);\r\n events.forEach(event => {\r\n event(value)\r\n })\r\n }\r\n }\r\n _init() {\r\n super._init();\r\n this._createEventMap();\r\n this.$element().addClass(COMPONENT_CLASS);\r\n this.currentView = renovationGetCurrentView(getViewName(this.option(\"currentView\")), this.option(\"views\"))\r\n }\r\n _render() {\r\n super._render();\r\n this._createEventMap();\r\n this._renderToolbar()\r\n }\r\n _renderToolbar() {\r\n var config = this._createToolbarConfig();\r\n var toolbarElement = $(\"<div>\");\r\n toolbarElement.appendTo(this.$element());\r\n this._toolbar = this._createComponent(toolbarElement, Toolbar, config)\r\n }\r\n _createToolbarConfig() {\r\n var items = this.option(\"items\");\r\n var parsedItems = items.map(element => this._parseItem(element));\r\n return {\r\n items: parsedItems\r\n }\r\n }\r\n _parseItem(item) {\r\n var isDefaultElement = this._isDefaultItem(item);\r\n if (isDefaultElement) {\r\n var defaultElementType = item[DEFAULT_ELEMENT];\r\n switch (defaultElementType) {\r\n case VIEW_SWITCHER:\r\n if (this.option(\"useDropDownViewSwitcher\")) {\r\n return getDropDownViewSwitcher(this, item)\r\n }\r\n return getViewSwitcher(this, item);\r\n case DATE_NAVIGATOR:\r\n this._renderCalendar();\r\n return getDateNavigator(this, item);\r\n default:\r\n errors.log(\"Unknown default element type: \".concat(defaultElementType))\r\n }\r\n }\r\n return item\r\n }\r\n _callEvent(event, arg) {\r\n if (this.eventMap.has(event)) {\r\n var events = this.eventMap.get(event);\r\n events.forEach(event => event(arg))\r\n }\r\n }\r\n _updateCurrentView(view) {\r\n var onCurrentViewChange = this.option(\"onCurrentViewChange\");\r\n onCurrentViewChange(view.name);\r\n this._callEvent(\"currentView\", view)\r\n }\r\n _updateCalendarValueAndCurrentDate(date) {\r\n this._updateCurrentDate(date);\r\n this._calendar.option(\"value\", date)\r\n }\r\n _updateCurrentDate(date) {\r\n var onCurrentDateChange = this.option(\"onCurrentDateChange\");\r\n onCurrentDateChange(date);\r\n this._callEvent(\"currentDate\", date)\r\n }\r\n _renderCalendar() {\r\n this._calendar = this._createComponent(\"<div>\", SchedulerCalendar, {\r\n value: this.option(\"currentDate\"),\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n onValueChanged: e => {\r\n this._updateCurrentDate(e.value);\r\n this._calendar.hide()\r\n }\r\n });\r\n this._calendar.$element().appendTo(this.$element())\r\n }\r\n _getCalendarOptionUpdater(name) {\r\n return value => {\r\n if (this._calendar) {\r\n this._calendar.option(name, value)\r\n }\r\n }\r\n }\r\n _getNextDate(direction) {\r\n var initialDate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\r\n var date = null !== initialDate && void 0 !== initialDate ? initialDate : this.option(\"currentDate\");\r\n var options = _extends(_extends({}, this.intervalOptions), {\r\n date: date\r\n });\r\n return getNextIntervalDate(options, direction)\r\n }\r\n _isMonth() {\r\n var {\r\n currentView: currentView\r\n } = this;\r\n return \"month\" === getViewType(currentView)\r\n }\r\n _getDisplayedDate() {\r\n var startViewDate = this.option(\"startViewDate\");\r\n if (this._isMonth()) {\r\n return nextWeek(startViewDate)\r\n }\r\n return new Date(startViewDate)\r\n }\r\n _getCaption() {\r\n var date = this.option(\"currentDate\");\r\n if (this.option(\"startViewDate\")) {\r\n date = this._getDisplayedDate()\r\n }\r\n date = dateUtils.trimTime(date);\r\n var options = _extends(_extends({}, this.intervalOptions), {\r\n date: date\r\n });\r\n var customizationFunction = this.option(\"customizeDateNavigatorText\");\r\n var useShortDateFormat = this.option(\"_useShortDateFormat\");\r\n return getCaption(options, useShortDateFormat, customizationFunction)\r\n }\r\n _updateDateByDirection(direction) {\r\n var date = this._getNextDate(direction);\r\n this._updateCalendarValueAndCurrentDate(date)\r\n }\r\n _showCalendar(e) {\r\n this._calendar.show(e.element)\r\n }\r\n _hideCalendar() {\r\n this._calendar.hide()\r\n }\r\n _isDefaultItem(item) {\r\n return Object.prototype.hasOwnProperty.call(item, DEFAULT_ELEMENT)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerHeader\", SchedulerHeader);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_cell_position_calculator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nclass BaseStrategy {\r\n constructor(options) {\r\n this.isVirtualScrolling = false;\r\n this.options = options\r\n }\r\n get DOMMetaData() {\r\n return this.options.DOMMetaData\r\n }\r\n get appointments() {\r\n return this.options.dateSettings\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get positionHelper() {\r\n return this.options.positionHelper\r\n }\r\n get startViewDate() {\r\n return this.options.startViewDate\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get cellDuration() {\r\n return this.options.cellDuration\r\n }\r\n get getPositionShift() {\r\n return this.options.getPositionShiftCallback\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get isVerticalGrouping() {\r\n return this.options.isVerticalGroupOrientation\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get supportAllDayRow() {\r\n return this.options.supportAllDayRow\r\n }\r\n get isGroupedAllDayPanel() {\r\n return this.options.isGroupedAllDayPanel\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var result = [];\r\n this.appointments.forEach((dateSetting, index) => {\r\n var coordinates = this.getCoordinateInfos({\r\n appointment: dateSetting,\r\n groupIndices: groupIndices,\r\n isAllDayRowAppointment: isAllDayRowAppointment,\r\n isRecurrentAppointment: isRecurrentAppointment\r\n });\r\n coordinates.forEach(item => {\r\n !!item && result.push(this._prepareObject(item, index))\r\n })\r\n });\r\n return result\r\n }\r\n getCoordinateInfos(options) {\r\n var {\r\n appointment: appointment,\r\n isAllDayRowAppointment: isAllDayRowAppointment,\r\n groupIndices: groupIndices,\r\n recurrent: recurrent\r\n } = options;\r\n var {\r\n startDate: startDate\r\n } = appointment;\r\n var groupIndex = !recurrent ? appointment.source.groupIndex : void 0;\r\n return this.getCoordinatesByDateInGroup(startDate, groupIndices, isAllDayRowAppointment, groupIndex)\r\n }\r\n _prepareObject(position, dateSettingIndex) {\r\n position.dateSettingIndex = dateSettingIndex;\r\n return {\r\n coordinates: position,\r\n dateSettingIndex: dateSettingIndex\r\n }\r\n }\r\n getCoordinatesByDate(date, groupIndex, inAllDayRow) {\r\n var validGroupIndex = groupIndex || 0;\r\n var cellInfo = {\r\n groupIndex: validGroupIndex,\r\n startDate: date,\r\n isAllDay: inAllDayRow\r\n };\r\n var positionByMap = this.viewDataProvider.findCellPositionInMap(cellInfo, true);\r\n if (!positionByMap) {\r\n return\r\n }\r\n var position = this.getCellPosition(positionByMap, inAllDayRow && !this.isVerticalGrouping);\r\n var timeShift = inAllDayRow ? 0 : this.getTimeShiftRatio(positionByMap, date);\r\n var shift = this.getPositionShift(timeShift, inAllDayRow);\r\n var horizontalHMax = this.positionHelper.getHorizontalMax(validGroupIndex, date);\r\n var verticalMax = this.positionHelper.getVerticalMax({\r\n groupIndex: validGroupIndex,\r\n isVirtualScrolling: this.isVirtualScrolling,\r\n showAllDayPanel: this.showAllDayPanel,\r\n supportAllDayRow: this.supportAllDayRow,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel,\r\n isVerticalGrouping: this.isVerticalGrouping\r\n });\r\n return {\r\n positionByMap: positionByMap,\r\n cellPosition: position.left + shift.cellPosition,\r\n top: position.top + shift.top,\r\n left: position.left + shift.left,\r\n rowIndex: position.rowIndex,\r\n columnIndex: position.columnIndex,\r\n hMax: horizontalHMax,\r\n vMax: verticalMax,\r\n groupIndex: validGroupIndex\r\n }\r\n }\r\n getCoordinatesByDateInGroup(startDate, groupIndices, inAllDayRow, groupIndex) {\r\n var result = [];\r\n if (this.viewDataProvider.isSkippedDate(startDate)) {\r\n return result\r\n }\r\n var validGroupIndices = [groupIndex];\r\n if (!isDefined(groupIndex)) {\r\n validGroupIndices = this.groupCount ? groupIndices : [0]\r\n }\r\n validGroupIndices.forEach(groupIndex => {\r\n var coordinates = this.getCoordinatesByDate(startDate, groupIndex, inAllDayRow);\r\n if (coordinates) {\r\n result.push(coordinates)\r\n }\r\n });\r\n return result\r\n }\r\n getCellPosition(cellCoordinates, isAllDayPanel) {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta,\r\n allDayPanelCellsMeta: allDayPanelCellsMeta\r\n } = this.DOMMetaData;\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = cellCoordinates;\r\n var position = isAllDayPanel ? allDayPanelCellsMeta[columnIndex] : dateTableCellsMeta[rowIndex][columnIndex];\r\n var validPosition = _extends({}, position);\r\n if (this.rtlEnabled) {\r\n validPosition.left += position.width\r\n }\r\n if (validPosition) {\r\n validPosition.rowIndex = cellCoordinates.rowIndex;\r\n validPosition.columnIndex = cellCoordinates.columnIndex\r\n }\r\n return validPosition\r\n }\r\n getTimeShiftRatio(positionByMap, appointmentDate) {\r\n var {\r\n cellDuration: cellDuration,\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = positionByMap;\r\n var matchedCell = this.viewDataProvider.viewDataMap.dateTableMap[rowIndex][columnIndex];\r\n var matchedCellStartDate = dateUtilsTs.addOffsets(matchedCell.cellData.startDate, [-viewOffset]);\r\n return (appointmentDate.getTime() - matchedCellStartDate.getTime()) / cellDuration\r\n }\r\n}\r\nclass VirtualStrategy extends BaseStrategy {\r\n constructor() {\r\n super(...arguments);\r\n this.isVirtualScrolling = true\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var appointments = isAllDayRowAppointment ? this.appointments : this.appointments.filter(_ref => {\r\n var {\r\n source: source,\r\n startDate: startDate,\r\n endDate: endDate\r\n } = _ref;\r\n return this.viewDataProvider.isGroupIntersectDateInterval(source.groupIndex, startDate, endDate)\r\n });\r\n if (isRecurrentAppointment) {\r\n return this.createRecurrentAppointmentInfos(appointments, isAllDayRowAppointment)\r\n }\r\n return super.calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment)\r\n }\r\n createRecurrentAppointmentInfos(dateSettings, isAllDayRowAppointment) {\r\n var result = [];\r\n dateSettings.forEach((_ref2, index) => {\r\n var {\r\n source: source,\r\n startDate: startDate\r\n } = _ref2;\r\n var coordinate = this.getCoordinatesByDate(startDate, source.groupIndex, isAllDayRowAppointment);\r\n if (coordinate) {\r\n result.push(this._prepareObject(coordinate, index))\r\n }\r\n });\r\n return result\r\n }\r\n}\r\nexport class CellPositionCalculator {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var strategy = this.options.isVirtualScrolling ? new VirtualStrategy(this.options) : new BaseStrategy(this.options);\r\n return strategy.calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_text_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nexport var createFormattedDateText = options => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n format: format\r\n } = options;\r\n var formatType = format || getFormatType(startDate, endDate, allDay);\r\n return formatDates(startDate, endDate, formatType)\r\n};\r\nexport var getFormatType = (startDate, endDate, isAllDay, isDateAndTimeView) => {\r\n if (isAllDay) {\r\n return \"DATE\"\r\n }\r\n if (isDateAndTimeView && dateUtils.sameDate(startDate, endDate)) {\r\n return \"TIME\"\r\n }\r\n return \"DATETIME\"\r\n};\r\nexport var formatDates = (startDate, endDate, formatType) => {\r\n var isSameDate = startDate.getDate() === endDate.getDate();\r\n switch (formatType) {\r\n case \"DATETIME\":\r\n return [dateLocalization.format(startDate, \"monthandday\"), \" \", dateLocalization.format(startDate, \"shorttime\"), \" - \", isSameDate ? \"\" : \"\".concat(dateLocalization.format(endDate, \"monthandday\"), \" \"), dateLocalization.format(endDate, \"shorttime\")].join(\"\");\r\n case \"TIME\":\r\n return \"\".concat(dateLocalization.format(startDate, \"shorttime\"), \" - \").concat(dateLocalization.format(endDate, \"shorttime\"));\r\n case \"DATE\":\r\n return \"\".concat(dateLocalization.format(startDate, \"monthandday\")).concat(isSameDate ? \"\" : \" - \".concat(dateLocalization.format(endDate, \"monthandday\")))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_settings_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isEmptyObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isDateAndTimeView\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport timeZoneUtils from \"../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nimport {\r\n createResourcesTree,\r\n getDataAccessors,\r\n getGroupCount,\r\n getResourceTreeLeaves\r\n} from \"../resources/m_utils\";\r\nimport {\r\n CellPositionCalculator\r\n} from \"./m_cell_position_calculator\";\r\nimport {\r\n createFormattedDateText\r\n} from \"./m_text_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_DATE_TEXT_FORMAT = \"TIME\";\r\nexport class DateGeneratorBaseStrategy {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get rawAppointment() {\r\n return this.options.rawAppointment\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get appointmentTakesAllDay() {\r\n return this.options.appointmentTakesAllDay\r\n }\r\n get supportAllDayRow() {\r\n return this.options.supportAllDayRow\r\n }\r\n get isAllDayRowAppointment() {\r\n return this.options.isAllDayRowAppointment\r\n }\r\n get timeZone() {\r\n return this.options.timeZone\r\n }\r\n get dateRange() {\r\n return this.options.dateRange\r\n }\r\n get firstDayOfWeek() {\r\n return this.options.firstDayOfWeek\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get endViewDate() {\r\n return this.options.endViewDate\r\n }\r\n get viewType() {\r\n return this.options.viewType\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get isVerticalOrientation() {\r\n return this.options.isVerticalGroupOrientation\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get loadedResources() {\r\n return this.options.loadedResources\r\n }\r\n get isDateAppointment() {\r\n return !isDateAndTimeView(this.viewType) && this.appointmentTakesAllDay\r\n }\r\n getIntervalDuration() {\r\n return this.appointmentTakesAllDay ? this.options.allDayIntervalDuration : this.options.intervalDuration\r\n }\r\n generate(appointmentAdapter) {\r\n var {\r\n isRecurrent: isRecurrent\r\n } = appointmentAdapter;\r\n var itemGroupIndices = this._getGroupIndices(this.rawAppointment);\r\n var appointmentList = this._createAppointments(appointmentAdapter, itemGroupIndices);\r\n appointmentList = this._getProcessedByAppointmentTimeZone(appointmentList, appointmentAdapter);\r\n if (this._canProcessNotNativeTimezoneDates(appointmentAdapter)) {\r\n appointmentList = this._getProcessedNotNativeTimezoneDates(appointmentList, appointmentAdapter)\r\n }\r\n var dateSettings = this._createGridAppointmentList(appointmentList, appointmentAdapter);\r\n var firstViewDates = this._getAppointmentsFirstViewDate(dateSettings);\r\n dateSettings = this._fillNormalizedStartDate(dateSettings, firstViewDates);\r\n dateSettings = this._cropAppointmentsByStartDayHour(dateSettings, firstViewDates);\r\n dateSettings = this._fillNormalizedEndDate(dateSettings, this.rawAppointment);\r\n if (this._needSeparateLongParts()) {\r\n dateSettings = this._separateLongParts(dateSettings, appointmentAdapter)\r\n }\r\n dateSettings = this.shiftSourceAppointmentDates(dateSettings);\r\n return {\r\n dateSettings: dateSettings,\r\n itemGroupIndices: itemGroupIndices,\r\n isRecurrent: isRecurrent\r\n }\r\n }\r\n shiftSourceAppointmentDates(dateSettings) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n return dateSettings.map(item => _extends(_extends({}, item), {\r\n source: _extends(_extends({}, item.source), {\r\n startDate: dateUtilsTs.addOffsets(item.source.startDate, [viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(item.source.endDate, [viewOffset])\r\n })\r\n }))\r\n }\r\n _getProcessedByAppointmentTimeZone(appointmentList, appointment) {\r\n var hasAppointmentTimeZone = !isEmptyObject(appointment.startDateTimeZone) || !isEmptyObject(appointment.endDateTimeZone);\r\n if (hasAppointmentTimeZone) {\r\n var appointmentOffsets = {\r\n startDate: this.timeZoneCalculator.getOffsets(appointment.startDate, appointment.startDateTimeZone),\r\n endDate: this.timeZoneCalculator.getOffsets(appointment.endDate, appointment.endDateTimeZone)\r\n };\r\n appointmentList.forEach(a => {\r\n var sourceOffsets_startDate = this.timeZoneCalculator.getOffsets(a.startDate, appointment.startDateTimeZone),\r\n sourceOffsets_endDate = this.timeZoneCalculator.getOffsets(a.endDate, appointment.endDateTimeZone);\r\n var startDateOffsetDiff = appointmentOffsets.startDate.appointment - sourceOffsets_startDate.appointment;\r\n var endDateOffsetDiff = appointmentOffsets.endDate.appointment - sourceOffsets_endDate.appointment;\r\n if (sourceOffsets_startDate.appointment !== sourceOffsets_startDate.common) {\r\n a.startDate = new Date(a.startDate.getTime() + startDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n if (sourceOffsets_endDate.appointment !== sourceOffsets_endDate.common) {\r\n a.endDate = new Date(a.endDate.getTime() + endDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n })\r\n }\r\n return appointmentList\r\n }\r\n _createAppointments(appointment, groupIndices) {\r\n var appointments = this._createRecurrenceAppointments(appointment, groupIndices);\r\n if (!appointment.isRecurrent && 0 === appointments.length) {\r\n appointments.push({\r\n startDate: appointment.startDate,\r\n endDate: appointment.endDate\r\n })\r\n }\r\n appointments = appointments.map(item => {\r\n var _a;\r\n var resultEndTime = null === (_a = item.endDate) || void 0 === _a ? void 0 : _a.getTime();\r\n if (item.startDate.getTime() === resultEndTime) {\r\n item.endDate.setTime(resultEndTime + toMs(\"minute\"))\r\n }\r\n return _extends(_extends({}, item), {\r\n exceptionDate: new Date(item.startDate)\r\n })\r\n });\r\n return appointments\r\n }\r\n _canProcessNotNativeTimezoneDates(appointment) {\r\n var isTimeZoneSet = !isEmptyObject(this.timeZone);\r\n if (!isTimeZoneSet) {\r\n return false\r\n }\r\n if (!appointment.isRecurrent) {\r\n return false\r\n }\r\n return !timeZoneUtils.isEqualLocalTimeZone(this.timeZone, appointment.startDate)\r\n }\r\n _getProcessedNotNativeDateIfCrossDST(date, offset) {\r\n if (offset < 0) {\r\n var newDate = new Date(date);\r\n var newDateMinusOneHour = new Date(newDate);\r\n newDateMinusOneHour.setHours(newDateMinusOneHour.getHours() - 1);\r\n var newDateOffset = this.timeZoneCalculator.getOffsets(newDate).common;\r\n var newDateMinusOneHourOffset = this.timeZoneCalculator.getOffsets(newDateMinusOneHour).common;\r\n if (newDateOffset !== newDateMinusOneHourOffset) {\r\n return 0\r\n }\r\n }\r\n return offset\r\n }\r\n _getCommonOffset(date) {\r\n return this.timeZoneCalculator.getOffsets(date).common\r\n }\r\n _getProcessedNotNativeTimezoneDates(appointmentList, appointment) {\r\n return appointmentList.map(item => {\r\n var diffStartDateOffset = this._getCommonOffset(appointment.startDate) - this._getCommonOffset(item.startDate);\r\n var diffEndDateOffset = this._getCommonOffset(appointment.endDate) - this._getCommonOffset(item.endDate);\r\n if (0 === diffStartDateOffset && 0 === diffEndDateOffset) {\r\n return item\r\n }\r\n diffStartDateOffset = this._getProcessedNotNativeDateIfCrossDST(item.startDate, diffStartDateOffset);\r\n diffEndDateOffset = this._getProcessedNotNativeDateIfCrossDST(item.endDate, diffEndDateOffset);\r\n var newStartDate = new Date(item.startDate.getTime() + diffStartDateOffset * toMs(\"hour\"));\r\n var newEndDate = new Date(item.endDate.getTime() + diffEndDateOffset * toMs(\"hour\"));\r\n var testNewStartDate = this.timeZoneCalculator.createDate(newStartDate, {\r\n path: \"toGrid\"\r\n });\r\n var testNewEndDate = this.timeZoneCalculator.createDate(newEndDate, {\r\n path: \"toGrid\"\r\n });\r\n if (appointment.duration > testNewEndDate.getTime() - testNewStartDate.getTime()) {\r\n newEndDate = new Date(newStartDate.getTime() + appointment.duration)\r\n }\r\n return _extends(_extends({}, item), {\r\n startDate: newStartDate,\r\n endDate: newEndDate,\r\n exceptionDate: new Date(newStartDate)\r\n })\r\n })\r\n }\r\n _needSeparateLongParts() {\r\n return this.isVerticalOrientation ? this.isGroupedByDate : this.isGroupedByDate && this.appointmentTakesAllDay\r\n }\r\n normalizeEndDateByViewEnd(rawAppointment, endDate) {\r\n var result = new Date(endDate.getTime());\r\n var isAllDay = isDateAndTimeView(this.viewType) && this.appointmentTakesAllDay;\r\n if (!isAllDay) {\r\n var roundedEndViewDate = dateUtils.roundToHour(this.endViewDate);\r\n if (result > roundedEndViewDate) {\r\n result = roundedEndViewDate\r\n }\r\n }\r\n var endDayHour = this.viewEndDayHour;\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", rawAppointment);\r\n var currentViewEndTime = new Date(new Date(endDate.getTime()).setHours(endDayHour, 0, 0, 0));\r\n if (result.getTime() > currentViewEndTime.getTime() || allDay && result.getHours() < endDayHour) {\r\n result = currentViewEndTime\r\n }\r\n return result\r\n }\r\n _fillNormalizedEndDate(dateSettings, rawAppointment) {\r\n return dateSettings.map(item => _extends(_extends({}, item), {\r\n normalizedEndDate: this.normalizeEndDateByViewEnd(rawAppointment, item.endDate)\r\n }))\r\n }\r\n _separateLongParts(gridAppointmentList, appointmentAdapter) {\r\n var result = [];\r\n gridAppointmentList.forEach(gridAppointment => {\r\n var maxDate = new Date(this.dateRange[1]);\r\n var {\r\n startDate: startDate,\r\n normalizedEndDate: endDateOfPart\r\n } = gridAppointment;\r\n var longStartDateParts = dateUtils.getDatesOfInterval(startDate, endDateOfPart, {\r\n milliseconds: this.getIntervalDuration()\r\n });\r\n var list = longStartDateParts.filter(startDatePart => new Date(startDatePart) < maxDate).map(date => {\r\n var endDate = new Date(new Date(date).setMilliseconds(appointmentAdapter.duration));\r\n var normalizedEndDate = this.normalizeEndDateByViewEnd(this.rawAppointment, endDate);\r\n return {\r\n startDate: date,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate,\r\n source: gridAppointment.source\r\n }\r\n });\r\n result = result.concat(list)\r\n });\r\n return result\r\n }\r\n _createGridAppointmentList(appointmentList, appointmentAdapter) {\r\n return appointmentList.map(source => {\r\n var offsetDifference = appointmentAdapter.startDate.getTimezoneOffset() - source.startDate.getTimezoneOffset();\r\n if (0 !== offsetDifference && this._canProcessNotNativeTimezoneDates(appointmentAdapter)) {\r\n source.startDate = new Date(source.startDate.getTime() + offsetDifference * toMs(\"minute\"));\r\n source.endDate = new Date(source.endDate.getTime() + offsetDifference * toMs(\"minute\"));\r\n source.exceptionDate = new Date(source.startDate)\r\n }\r\n var startDate = this.timeZoneCalculator.createDate(source.startDate, {\r\n path: \"toGrid\"\r\n });\r\n var endDate = this.timeZoneCalculator.createDate(source.endDate, {\r\n path: \"toGrid\"\r\n });\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: appointmentAdapter.allDay || false,\r\n source: source\r\n }\r\n })\r\n }\r\n _createExtremeRecurrenceDates(groupIndex) {\r\n var startViewDate = this.appointmentTakesAllDay ? dateUtils.trimTime(this.dateRange[0]) : this.dateRange[0];\r\n var endViewDateByEndDayHour = this.dateRange[1];\r\n if (this.timeZone) {\r\n startViewDate = this.timeZoneCalculator.createDate(startViewDate, {\r\n path: \"fromGrid\"\r\n });\r\n endViewDateByEndDayHour = this.timeZoneCalculator.createDate(endViewDateByEndDayHour, {\r\n path: \"fromGrid\"\r\n });\r\n var daylightOffset = timeZoneUtils.getDaylightOffsetInMs(startViewDate, endViewDateByEndDayHour);\r\n if (daylightOffset) {\r\n endViewDateByEndDayHour = new Date(endViewDateByEndDayHour.getTime() + daylightOffset)\r\n }\r\n }\r\n return [startViewDate, endViewDateByEndDayHour]\r\n }\r\n _createRecurrenceOptions(appointment, groupIndex) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var originalAppointmentStartDate = dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]);\r\n var originalAppointmentEndDate = dateUtilsTs.addOffsets(appointment.endDate, [viewOffset]);\r\n var [minRecurrenceDate, maxRecurrenceDate] = this._createExtremeRecurrenceDates(groupIndex);\r\n var shiftedMinRecurrenceDate = dateUtilsTs.addOffsets(minRecurrenceDate, [viewOffset]);\r\n var shiftedMaxRecurrenceDate = dateUtilsTs.addOffsets(maxRecurrenceDate, [viewOffset]);\r\n return {\r\n rule: appointment.recurrenceRule,\r\n exception: appointment.recurrenceException,\r\n min: shiftedMinRecurrenceDate,\r\n max: shiftedMaxRecurrenceDate,\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n start: originalAppointmentStartDate,\r\n end: originalAppointmentEndDate,\r\n appointmentTimezoneOffset: this.timeZoneCalculator.getOriginStartDateOffsetInMs(originalAppointmentStartDate, appointment.rawAppointment.startDateTimeZone, true),\r\n getPostProcessedException: date => {\r\n if (isEmptyObject(this.timeZone) || timeZoneUtils.isEqualLocalTimeZone(this.timeZone, date)) {\r\n return date\r\n }\r\n var appointmentOffset = this.timeZoneCalculator.getOffsets(originalAppointmentStartDate).common;\r\n var exceptionAppointmentOffset = this.timeZoneCalculator.getOffsets(date).common;\r\n var diff = appointmentOffset - exceptionAppointmentOffset;\r\n diff = this._getProcessedNotNativeDateIfCrossDST(date, diff);\r\n return new Date(date.getTime() - diff * dateUtils.dateToMilliseconds(\"hour\"))\r\n }\r\n }\r\n }\r\n _createRecurrenceAppointments(appointment, groupIndices) {\r\n var {\r\n duration: duration\r\n } = appointment;\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var option = this._createRecurrenceOptions(appointment);\r\n var generatedStartDates = getRecurrenceProcessor().generateDates(option);\r\n return generatedStartDates.map(date => {\r\n var utcDate = timeZoneUtils.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = timeZoneUtils.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: new Date(date),\r\n endDate: endDate\r\n }\r\n }).map(_ref => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = _ref;\r\n return {\r\n startDate: dateUtilsTs.addOffsets(startDate, [-viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(endDate, [-viewOffset])\r\n }\r\n })\r\n }\r\n _getAppointmentsFirstViewDate(appointments) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n return appointments.map(appointment => {\r\n var tableFirstDate = this._getAppointmentFirstViewDate(_extends(_extends({}, appointment), {\r\n startDate: dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(appointment.endDate, [viewOffset])\r\n }));\r\n if (!tableFirstDate) {\r\n return appointment.startDate\r\n }\r\n var firstDate = dateUtilsTs.addOffsets(tableFirstDate, [-viewOffset]);\r\n return firstDate > appointment.startDate ? firstDate : appointment.startDate\r\n })\r\n }\r\n _fillNormalizedStartDate(appointments, firstViewDates, rawAppointment) {\r\n return appointments.map((item, idx) => _extends(_extends({}, item), {\r\n startDate: this._getAppointmentResultDate({\r\n appointment: item,\r\n rawAppointment: rawAppointment,\r\n startDate: new Date(item.startDate),\r\n startDayHour: this.viewStartDayHour,\r\n firstViewDate: firstViewDates[idx]\r\n })\r\n }))\r\n }\r\n _cropAppointmentsByStartDayHour(appointments, firstViewDates) {\r\n return appointments.filter((appointment, idx) => {\r\n if (!firstViewDates[idx]) {\r\n return false\r\n }\r\n if (this.appointmentTakesAllDay) {\r\n return true\r\n }\r\n return appointment.endDate > appointment.startDate\r\n })\r\n }\r\n _getAppointmentResultDate(options) {\r\n var {\r\n appointment: appointment,\r\n startDayHour: startDayHour,\r\n firstViewDate: firstViewDate\r\n } = options;\r\n var {\r\n startDate: startDate\r\n } = options;\r\n var resultDate;\r\n if (this.appointmentTakesAllDay) {\r\n resultDate = dateUtils.normalizeDate(startDate, firstViewDate)\r\n } else {\r\n if (startDate < firstViewDate) {\r\n startDate = firstViewDate\r\n }\r\n resultDate = dateUtils.normalizeDate(appointment.startDate, startDate)\r\n }\r\n return !this.isDateAppointment ? dateUtils.roundDateByStartDayHour(resultDate, startDayHour) : resultDate\r\n }\r\n _getAppointmentFirstViewDate(appointment) {\r\n var groupIndex = appointment.source.groupIndex || 0;\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = appointment;\r\n if (this.isAllDayRowAppointment || appointment.allDay) {\r\n return this.viewDataProvider.findAllDayGroupCellStartDate(groupIndex)\r\n }\r\n return this.viewDataProvider.findGroupCellStartDate(groupIndex, startDate, endDate, this.isDateAppointment)\r\n }\r\n _getGroupIndices(rawAppointment) {\r\n var result = [];\r\n if (rawAppointment && this.loadedResources.length) {\r\n var tree = createResourcesTree(this.loadedResources);\r\n result = getResourceTreeLeaves((field, action) => getDataAccessors(this.options.dataAccessors.resources, field, action), tree, rawAppointment)\r\n }\r\n return result\r\n }\r\n}\r\nexport class DateGeneratorVirtualStrategy extends DateGeneratorBaseStrategy {\r\n get groupCount() {\r\n return getGroupCount(this.loadedResources)\r\n }\r\n _createRecurrenceAppointments(appointment, groupIndices) {\r\n var {\r\n duration: duration\r\n } = appointment;\r\n var result = [];\r\n var validGroupIndices = this.groupCount ? groupIndices : [0];\r\n validGroupIndices.forEach(groupIndex => {\r\n var option = this._createRecurrenceOptions(appointment, groupIndex);\r\n var generatedStartDates = getRecurrenceProcessor().generateDates(option);\r\n var recurrentInfo = generatedStartDates.map(date => {\r\n var startDate = new Date(date);\r\n var utcDate = timeZoneUtils.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = timeZoneUtils.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n groupIndex: groupIndex\r\n }\r\n });\r\n result.push(...recurrentInfo)\r\n });\r\n return result\r\n }\r\n _updateGroupIndices(appointments, groupIndices) {\r\n var result = [];\r\n groupIndices.forEach(groupIndex => {\r\n var groupStartDate = this.viewDataProvider.getGroupStartDate(groupIndex);\r\n if (groupStartDate) {\r\n appointments.forEach(appointment => {\r\n var appointmentCopy = extend({}, appointment);\r\n appointmentCopy.groupIndex = groupIndex;\r\n result.push(appointmentCopy)\r\n })\r\n }\r\n });\r\n return result\r\n }\r\n _getGroupIndices(resources) {\r\n var groupIndices = super._getGroupIndices(resources);\r\n var viewDataGroupIndices = this.viewDataProvider.getGroupIndices();\r\n if (!(null === groupIndices || void 0 === groupIndices ? void 0 : groupIndices.length)) {\r\n groupIndices = [0]\r\n }\r\n return groupIndices.filter(groupIndex => -1 !== viewDataGroupIndices.indexOf(groupIndex))\r\n }\r\n _createAppointments(appointment, groupIndices) {\r\n var appointments = super._createAppointments(appointment, groupIndices);\r\n return !appointment.isRecurrent ? this._updateGroupIndices(appointments, groupIndices) : appointments\r\n }\r\n}\r\nexport class AppointmentSettingsGenerator {\r\n constructor(options) {\r\n this.options = options;\r\n this.appointmentAdapter = createAppointmentAdapter(this.rawAppointment, this.dataAccessors, this.timeZoneCalculator)\r\n }\r\n get rawAppointment() {\r\n return this.options.rawAppointment\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get isAllDayRowAppointment() {\r\n return this.options.appointmentTakesAllDay && this.options.supportAllDayRow\r\n }\r\n get groups() {\r\n return this.options.groups\r\n }\r\n get dateSettingsStrategy() {\r\n var options = _extends(_extends({}, this.options), {\r\n isAllDayRowAppointment: this.isAllDayRowAppointment\r\n });\r\n return this.options.isVirtualScrolling ? new DateGeneratorVirtualStrategy(options) : new DateGeneratorBaseStrategy(options)\r\n }\r\n create() {\r\n var {\r\n dateSettings: dateSettings,\r\n itemGroupIndices: itemGroupIndices,\r\n isRecurrent: isRecurrent\r\n } = this._generateDateSettings();\r\n var cellPositions = this._calculateCellPositions(dateSettings, itemGroupIndices);\r\n var result = this._prepareAppointmentInfos(dateSettings, cellPositions, isRecurrent);\r\n return result\r\n }\r\n _generateDateSettings() {\r\n return this.dateSettingsStrategy.generate(this.appointmentAdapter)\r\n }\r\n _calculateCellPositions(dateSettings, itemGroupIndices) {\r\n var cellPositionCalculator = new CellPositionCalculator(_extends(_extends({}, this.options), {\r\n dateSettings: dateSettings\r\n }));\r\n return cellPositionCalculator.calculateCellPositions(itemGroupIndices, this.isAllDayRowAppointment, this.appointmentAdapter.isRecurrent)\r\n }\r\n _prepareAppointmentInfos(dateSettings, cellPositions, isRecurrent) {\r\n var infos = [];\r\n cellPositions.forEach(_ref2 => {\r\n var {\r\n coordinates: coordinates,\r\n dateSettingIndex: dateSettingIndex\r\n } = _ref2;\r\n var dateSetting = dateSettings[dateSettingIndex];\r\n var dateText = this._getAppointmentDateText(dateSetting);\r\n var info = {\r\n appointment: dateSetting,\r\n sourceAppointment: dateSetting.source,\r\n dateText: dateText,\r\n isRecurrent: isRecurrent\r\n };\r\n infos.push(_extends(_extends({}, coordinates), {\r\n info: info\r\n }))\r\n });\r\n return infos\r\n }\r\n _getAppointmentDateText(sourceAppointment) {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = sourceAppointment;\r\n return createFormattedDateText({\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n format: APPOINTMENT_DATE_TEXT_FORMAT\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar COLLECTOR_DEFAULT_WIDTH = 24;\r\nvar COLLECTOR_DEFAULT_OFFSET = 3;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET = 22;\r\nvar APPOINTMENT_MIN_COUNT = 1;\r\nvar APPOINTMENT_DEFAULT_WIDTH = 40;\r\nvar COLLECTOR_WIDTH_IN_PERCENTS = 75;\r\nvar APPOINTMENT_INCREASED_WIDTH = 50;\r\nclass AppointmentPositioningStrategy {\r\n constructor(renderingStrategy) {\r\n this._renderingStrategy = renderingStrategy\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n if (isAllDay || !isDefined(isAllDay)) {\r\n return COLLECTOR_WIDTH_IN_PERCENTS * this._renderingStrategy.cellWidth / 100\r\n }\r\n return COLLECTOR_DEFAULT_WIDTH\r\n }\r\n getCollectorTopOffset(allDay) {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n getCollectorLeftOffset() {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n getAppointmentDefaultOffset() {\r\n if (this._renderingStrategy._isCompactTheme()) {\r\n return COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n return this._renderingStrategy.appointmentOffset\r\n }\r\n getDynamicAppointmentCountPerCell() {\r\n var renderingStrategy = this._renderingStrategy;\r\n var {\r\n cellHeight: cellHeight\r\n } = renderingStrategy;\r\n var allDayCount = Math.floor((cellHeight - renderingStrategy._getAppointmentDefaultOffset()) / renderingStrategy._getAppointmentDefaultHeight()) || this._getAppointmentMinCount();\r\n if (renderingStrategy.allDaySupported()) {\r\n return {\r\n allDay: \"vertical\" === renderingStrategy.groupOrientation ? allDayCount : this._renderingStrategy.appointmentCountPerCell,\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n }\r\n return allDayCount\r\n }\r\n getDropDownAppointmentHeight() {\r\n return\r\n }\r\n _getAppointmentMinCount() {\r\n return APPOINTMENT_MIN_COUNT\r\n }\r\n _calculateDynamicAppointmentCountPerCell() {\r\n return Math.floor(this._renderingStrategy._getAppointmentMaxWidth() / APPOINTMENT_INCREASED_WIDTH)\r\n }\r\n _getAppointmentDefaultWidth() {\r\n return APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n}\r\nexport default AppointmentPositioningStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_adaptive.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport AppointmentPositioningStrategy from \"./m_appointments_positioning_strategy_base\";\r\nvar COLLECTOR_ADAPTIVE_SIZE = 28;\r\nvar COLLECTOR_ADAPTIVE_BOTTOM_OFFSET = 40;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET = 35;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH = 30;\r\nclass AdaptivePositioningStrategy extends AppointmentPositioningStrategy {\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n getDropDownButtonAdaptiveSize() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n getCollectorTopOffset(allDay) {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported() && allDay) {\r\n return (renderingStrategy.allDayHeight - renderingStrategy.getDropDownButtonAdaptiveSize()) / 2\r\n }\r\n return this._renderingStrategy.cellHeight - COLLECTOR_ADAPTIVE_BOTTOM_OFFSET\r\n }\r\n getCollectorLeftOffset() {\r\n var collectorWidth = this._renderingStrategy.getDropDownAppointmentWidth();\r\n return (this._renderingStrategy.cellWidth - collectorWidth) / 2\r\n }\r\n getAppointmentDefaultOffset() {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n getDynamicAppointmentCountPerCell() {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported()) {\r\n return {\r\n allDay: 0,\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n }\r\n return 0\r\n }\r\n getDropDownAppointmentHeight() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n _getAppointmentMinCount() {\r\n return 0\r\n }\r\n _getAppointmentDefaultWidth() {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported()) {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n return super._getAppointmentDefaultWidth()\r\n }\r\n _calculateDynamicAppointmentCountPerCell() {\r\n return Math.floor(this._renderingStrategy._getAppointmentMaxWidth() / this._renderingStrategy._getAppointmentDefaultWidth())\r\n }\r\n}\r\nexport default AdaptivePositioningStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getAppointmentTakesAllDay\r\n} from \"../../../../renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n current as currentTheme\r\n} from \"../../../../ui/themes\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../../scheduler/m_expression_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n AppointmentSettingsGenerator\r\n} from \"../m_settings_generator\";\r\nimport AdaptivePositioningStrategy from \"./m_appointments_positioning_strategy_adaptive\";\r\nimport AppointmentPositioningStrategy from \"./m_appointments_positioning_strategy_base\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_MIN_SIZE = 2;\r\nvar APPOINTMENT_DEFAULT_HEIGHT = 20;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT = 18;\r\nvar DROP_DOWN_BUTTON_ADAPTIVE_SIZE = 28;\r\nvar WEEK_VIEW_COLLECTOR_OFFSET = 5;\r\nvar COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET = 1;\r\nclass BaseRenderingStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._initPositioningStrategy()\r\n }\r\n get isAdaptive() {\r\n return this.options.adaptivityEnabled\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get startDayHour() {\r\n return this.options.startDayHour\r\n }\r\n get endDayHour() {\r\n return this.options.endDayHour\r\n }\r\n get maxAppointmentsPerCell() {\r\n return this.options.maxAppointmentsPerCell\r\n }\r\n get cellWidth() {\r\n return this.options.cellWidth\r\n }\r\n get cellHeight() {\r\n return this.options.cellHeight\r\n }\r\n get allDayHeight() {\r\n return this.options.allDayHeight\r\n }\r\n get resizableStep() {\r\n return this.options.resizableStep\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get visibleDayDuration() {\r\n return this.options.visibleDayDuration\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get cellDuration() {\r\n return this.options.cellDuration\r\n }\r\n get cellDurationInMinutes() {\r\n return this.options.cellDurationInMinutes\r\n }\r\n get leftVirtualCellCount() {\r\n return this.options.leftVirtualCellCount\r\n }\r\n get topVirtualCellCount() {\r\n return this.options.topVirtualCellCount\r\n }\r\n get positionHelper() {\r\n return this.options.positionHelper\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get isGroupedAllDayPanel() {\r\n return this.options.isGroupedAllDayPanel\r\n }\r\n get groupOrientation() {\r\n return this.options.groupOrientation\r\n }\r\n get rowCount() {\r\n return this.options.rowCount\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get currentDate() {\r\n return this.options.currentDate\r\n }\r\n get appointmentCountPerCell() {\r\n return this.options.appointmentCountPerCell\r\n }\r\n get appointmentOffset() {\r\n return this.options.appointmentOffset\r\n }\r\n get allowResizing() {\r\n return this.options.allowResizing\r\n }\r\n get allowAllDayResizing() {\r\n return this.options.allowAllDayResizing\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get intervalCount() {\r\n return this.options.intervalCount\r\n }\r\n get allDayPanelMode() {\r\n return this.options.allDayPanelMode\r\n }\r\n get isVirtualScrolling() {\r\n return this.options.isVirtualScrolling\r\n }\r\n _correctCollectorCoordinatesInAdaptive(coordinates, isAllDay) {\r\n coordinates.top += this.getCollectorTopOffset(isAllDay);\r\n coordinates.left += this.getCollectorLeftOffset()\r\n }\r\n _initPositioningStrategy() {\r\n this._positioningStrategy = this.isAdaptive ? new AdaptivePositioningStrategy(this) : new AppointmentPositioningStrategy(this)\r\n }\r\n getPositioningStrategy() {\r\n return this._positioningStrategy\r\n }\r\n getAppointmentMinSize() {\r\n return APPOINTMENT_MIN_SIZE\r\n }\r\n keepAppointmentSettings() {\r\n return false\r\n }\r\n getDeltaTime(args, initialSize, appointment) {}\r\n getAppointmentGeometry(coordinates) {\r\n return coordinates\r\n }\r\n needCorrectAppointmentDates() {\r\n return true\r\n }\r\n getDirection() {\r\n return \"horizontal\"\r\n }\r\n createTaskPositionMap(items, skipSorting) {\r\n delete this._maxAppointmentCountPerCell;\r\n var length = null === items || void 0 === items ? void 0 : items.length;\r\n if (!length) {\r\n return\r\n }\r\n var map = [];\r\n for (var i = 0; i < length; i++) {\r\n var coordinates = this._getItemPosition(items[i]);\r\n if (coordinates.length && this.rtlEnabled) {\r\n coordinates = this._correctRtlCoordinates(coordinates)\r\n }\r\n coordinates.forEach(item => {\r\n item.leftVirtualCellCount = this.leftVirtualCellCount;\r\n item.topVirtualCellCount = this.topVirtualCellCount;\r\n item.leftVirtualWidth = this.leftVirtualCellCount * this.cellWidth;\r\n item.topVirtualHeight = this.topVirtualCellCount * this.cellHeight\r\n });\r\n map.push(coordinates)\r\n }\r\n var positionArray = this._getSortedPositions(map);\r\n var resultPositions = this._getResultPositions(positionArray);\r\n return this._getExtendedPositionMap(map, resultPositions)\r\n }\r\n _getDeltaWidth(args, initialSize) {\r\n var intervalWidth = this.resizableStep || this.getAppointmentMinSize();\r\n var initialWidth = initialSize.width;\r\n return Math.round((args.width - initialWidth) / intervalWidth)\r\n }\r\n _correctRtlCoordinates(coordinates) {\r\n var width = coordinates[0].width || this._getAppointmentMaxWidth();\r\n coordinates.forEach(coordinate => {\r\n if (!coordinate.appointmentReduced) {\r\n coordinate.left -= width\r\n }\r\n });\r\n return coordinates\r\n }\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth\r\n }\r\n _getItemPosition(initialAppointment) {\r\n var appointment = this.shiftAppointmentByViewOffset(initialAppointment);\r\n var position = this.generateAppointmentSettings(appointment);\r\n var allDay = this.isAllDay(appointment);\r\n var result = [];\r\n for (var j = 0; j < position.length; j++) {\r\n var height = this.calculateAppointmentHeight(appointment, position[j]);\r\n var width = this.calculateAppointmentWidth(appointment, position[j]);\r\n var resultWidth = width;\r\n var appointmentReduced = null;\r\n var multiWeekAppointmentParts = [];\r\n var initialRowIndex = position[j].rowIndex;\r\n var initialColumnIndex = position[j].columnIndex;\r\n if (this._needVerifyItemSize() || allDay) {\r\n var currentMaxAllowedPosition = position[j].hMax;\r\n if (this.isAppointmentGreaterThan(currentMaxAllowedPosition, {\r\n left: position[j].left,\r\n width: width\r\n })) {\r\n appointmentReduced = \"head\";\r\n initialRowIndex = position[j].rowIndex;\r\n initialColumnIndex = position[j].columnIndex;\r\n resultWidth = this._reduceMultiWeekAppointment(width, {\r\n left: position[j].left,\r\n right: currentMaxAllowedPosition\r\n });\r\n multiWeekAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentWidth: width,\r\n reducedWidth: resultWidth,\r\n height: height\r\n }, position[j]);\r\n if (this.rtlEnabled) {\r\n position[j].left = currentMaxAllowedPosition\r\n }\r\n }\r\n }\r\n extend(position[j], {\r\n height: height,\r\n width: resultWidth,\r\n allDay: allDay,\r\n rowIndex: initialRowIndex,\r\n columnIndex: initialColumnIndex,\r\n appointmentReduced: appointmentReduced\r\n });\r\n result = this._getAppointmentPartsPosition(multiWeekAppointmentParts, position[j], result)\r\n }\r\n return result\r\n }\r\n _getAppointmentPartsPosition(appointmentParts, position, result) {\r\n if (appointmentParts.length) {\r\n appointmentParts.unshift(position);\r\n result = result.concat(appointmentParts)\r\n } else {\r\n result.push(position)\r\n }\r\n return result\r\n }\r\n getAppointmentSettingsGenerator(rawAppointment) {\r\n return new AppointmentSettingsGenerator(_extends({\r\n rawAppointment: rawAppointment,\r\n appointmentTakesAllDay: this.isAppointmentTakesAllDay(rawAppointment),\r\n getPositionShiftCallback: this.getPositionShift.bind(this)\r\n }, this.options))\r\n }\r\n generateAppointmentSettings(rawAppointment) {\r\n return this.getAppointmentSettingsGenerator(rawAppointment).create()\r\n }\r\n isAppointmentTakesAllDay(rawAppointment) {\r\n var adapter = createAppointmentAdapter(rawAppointment, this.dataAccessors, this.timeZoneCalculator);\r\n return getAppointmentTakesAllDay(adapter, this.allDayPanelMode)\r\n }\r\n _getAppointmentParts(geometry, settings) {\r\n return []\r\n }\r\n _getCompactAppointmentParts(appointmentWidth) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return Math.round(appointmentWidth / cellWidth)\r\n }\r\n _reduceMultiWeekAppointment(sourceAppointmentWidth, bound) {\r\n if (this.rtlEnabled) {\r\n sourceAppointmentWidth = Math.floor(bound.left - bound.right)\r\n } else {\r\n sourceAppointmentWidth = bound.right - Math.floor(bound.left)\r\n }\r\n return sourceAppointmentWidth\r\n }\r\n calculateAppointmentHeight(appointment, position) {\r\n return 0\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n return 0\r\n }\r\n isAppointmentGreaterThan(etalon, comparisonParameters) {\r\n var result = comparisonParameters.left + comparisonParameters.width - etalon;\r\n if (this.rtlEnabled) {\r\n result = etalon + comparisonParameters.width - comparisonParameters.left\r\n }\r\n return result > this.cellWidth / 2\r\n }\r\n isAllDay(appointment) {\r\n return false\r\n }\r\n cropAppointmentWidth(width, cellWidth) {\r\n return this.isGroupedByDate ? cellWidth : width\r\n }\r\n _getSortedPositions(positionList, skipSorting) {\r\n var result = [];\r\n var round = value => Math.round(100 * value) / 100;\r\n var createItem = (rowIndex, columnIndex, top, left, bottom, right, position, allDay) => ({\r\n i: rowIndex,\r\n j: columnIndex,\r\n top: round(top),\r\n left: round(left),\r\n bottom: round(bottom),\r\n right: round(right),\r\n cellPosition: position,\r\n allDay: allDay\r\n });\r\n for (var rowIndex = 0, rowCount = positionList.length; rowIndex < rowCount; rowIndex++) {\r\n for (var columnIndex = 0, cellCount = positionList[rowIndex].length; columnIndex < cellCount; columnIndex++) {\r\n var {\r\n top: top,\r\n left: left,\r\n height: height,\r\n width: width,\r\n cellPosition: cellPosition,\r\n allDay: allDay\r\n } = positionList[rowIndex][columnIndex];\r\n result.push(createItem(rowIndex, columnIndex, top, left, top + height, left + width, cellPosition, allDay))\r\n }\r\n }\r\n return result.sort((a, b) => this._sortCondition(a, b))\r\n }\r\n _sortCondition(a, b) {}\r\n _getConditions(a, b) {\r\n var isSomeEdge = this._isSomeEdge(a, b);\r\n return {\r\n columnCondition: isSomeEdge || this._normalizeCondition(a.left, b.left),\r\n rowCondition: isSomeEdge || this._normalizeCondition(a.top, b.top),\r\n cellPositionCondition: isSomeEdge || this._normalizeCondition(a.cellPosition, b.cellPosition)\r\n }\r\n }\r\n _rowCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.columnCondition || conditions.rowCondition\r\n }\r\n _columnCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition\r\n }\r\n _isSomeEdge(a, b) {\r\n return a.i === b.i && a.j === b.j\r\n }\r\n _normalizeCondition(first, second) {\r\n var result = first - second;\r\n return Math.abs(result) > 1 ? result : 0\r\n }\r\n _isItemsCross(firstItem, secondItem) {\r\n var areItemsInTheSameTable = !!firstItem.allDay === !!secondItem.allDay;\r\n var areItemsAllDay = firstItem.allDay && secondItem.allDay;\r\n if (areItemsInTheSameTable) {\r\n var orientation = this._getOrientation(areItemsAllDay);\r\n return this._checkItemsCrossing(firstItem, secondItem, orientation)\r\n }\r\n return false\r\n }\r\n _checkItemsCrossing(firstItem, secondItem, orientation) {\r\n var firstItemSide1 = Math.floor(firstItem[orientation[0]]);\r\n var firstItemSide2 = Math.floor(firstItem[orientation[1]]);\r\n var secondItemSide1 = Math.ceil(secondItem[orientation[0]]);\r\n var secondItemSide2 = Math.ceil(secondItem[orientation[1]]);\r\n var isItemCross = Math.abs(firstItem[orientation[2]] - secondItem[orientation[2]]) <= 1;\r\n return isItemCross && (firstItemSide1 <= secondItemSide1 && firstItemSide2 > secondItemSide1 || firstItemSide1 < secondItemSide2 && firstItemSide2 >= secondItemSide2 || firstItemSide1 === secondItemSide1 && firstItemSide2 === secondItemSide2)\r\n }\r\n _getOrientation(isAllDay) {\r\n return isAllDay ? [\"left\", \"right\", \"top\"] : [\"top\", \"bottom\", \"left\"]\r\n }\r\n _getResultPositions(sortedArray) {\r\n var result = [];\r\n var i;\r\n var sortedIndex = 0;\r\n var currentItem;\r\n var indexes;\r\n var itemIndex;\r\n var maxIndexInStack = 0;\r\n var stack = {};\r\n var findFreeIndex = (indexes, index) => {\r\n var isFind = indexes.some(item => item === index);\r\n if (isFind) {\r\n return findFreeIndex(indexes, ++index)\r\n }\r\n return index\r\n };\r\n var createItem = (currentItem, index) => {\r\n var currentIndex = index || 0;\r\n return {\r\n index: currentIndex,\r\n i: currentItem.i,\r\n j: currentItem.j,\r\n left: currentItem.left,\r\n right: currentItem.right,\r\n top: currentItem.top,\r\n bottom: currentItem.bottom,\r\n allDay: currentItem.allDay,\r\n sortedIndex: this._skipSortedIndex(currentIndex) ? null : sortedIndex++\r\n }\r\n };\r\n var startNewStack = currentItem => {\r\n stack.items = [createItem(currentItem)];\r\n stack.left = currentItem.left;\r\n stack.right = currentItem.right;\r\n stack.top = currentItem.top;\r\n stack.bottom = currentItem.bottom;\r\n stack.allDay = currentItem.allDay\r\n };\r\n var pushItemsInResult = items => {\r\n items.forEach(item => {\r\n result.push({\r\n index: item.index,\r\n count: maxIndexInStack + 1,\r\n i: item.i,\r\n j: item.j,\r\n sortedIndex: item.sortedIndex\r\n })\r\n })\r\n };\r\n for (i = 0; i < sortedArray.length; i++) {\r\n currentItem = sortedArray[i];\r\n indexes = [];\r\n if (!stack.items) {\r\n startNewStack(currentItem)\r\n } else if (this._isItemsCross(stack, currentItem)) {\r\n stack.items.forEach(item => {\r\n if (this._isItemsCross(item, currentItem)) {\r\n indexes.push(item.index)\r\n }\r\n });\r\n itemIndex = indexes.length ? findFreeIndex(indexes, 0) : 0;\r\n stack.items.push(createItem(currentItem, itemIndex));\r\n maxIndexInStack = Math.max(itemIndex, maxIndexInStack);\r\n stack.left = Math.min(stack.left, currentItem.left);\r\n stack.right = Math.max(stack.right, currentItem.right);\r\n stack.top = Math.min(stack.top, currentItem.top);\r\n stack.bottom = Math.max(stack.bottom, currentItem.bottom);\r\n stack.allDay = currentItem.allDay\r\n } else {\r\n pushItemsInResult(stack.items);\r\n stack = {};\r\n startNewStack(currentItem);\r\n maxIndexInStack = 0\r\n }\r\n }\r\n if (stack.items) {\r\n pushItemsInResult(stack.items)\r\n }\r\n return result.sort((a, b) => {\r\n var columnCondition = a.j - b.j;\r\n var rowCondition = a.i - b.i;\r\n return rowCondition || columnCondition\r\n })\r\n }\r\n _skipSortedIndex(index) {\r\n return index > this._getMaxAppointmentCountPerCell() - 1\r\n }\r\n _findIndexByKey(arr, iKey, jKey, iValue, jValue) {\r\n var result = 0;\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (arr[i][iKey] === iValue && arr[i][jKey] === jValue) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n _getExtendedPositionMap(map, positions) {\r\n var positionCounter = 0;\r\n var result = [];\r\n for (var i = 0, mapLength = map.length; i < mapLength; i++) {\r\n var resultString = [];\r\n for (var j = 0, itemLength = map[i].length; j < itemLength; j++) {\r\n map[i][j].index = positions[positionCounter].index;\r\n map[i][j].sortedIndex = positions[positionCounter].sortedIndex;\r\n map[i][j].count = positions[positionCounter++].count;\r\n resultString.push(map[i][j]);\r\n this._checkLongCompactAppointment(map[i][j], resultString)\r\n }\r\n result.push(resultString)\r\n }\r\n return result\r\n }\r\n _checkLongCompactAppointment(item, result) {\r\n this._splitLongCompactAppointment(item, result);\r\n return result\r\n }\r\n _splitLongCompactAppointment(item, result) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCellByType(item.allDay);\r\n var compactCount = 0;\r\n if (void 0 !== appointmentCountPerCell && item.index > appointmentCountPerCell - 1) {\r\n item.isCompact = true;\r\n compactCount = this._getCompactAppointmentParts(item.width);\r\n for (var k = 1; k < compactCount; k++) {\r\n var compactPart = extend(true, {}, item);\r\n compactPart.left = this._getCompactLeftCoordinate(item.left, k);\r\n compactPart.columnIndex += k;\r\n compactPart.sortedIndex = null;\r\n result.push(compactPart)\r\n }\r\n }\r\n return result\r\n }\r\n _adjustDurationByDaylightDiff(duration, startDate, endDate) {\r\n var daylightDiff = timeZoneUtils.getDaylightOffset(startDate, endDate);\r\n return this._needAdjustDuration(daylightDiff) ? this._calculateDurationByDaylightDiff(duration, daylightDiff) : duration\r\n }\r\n _needAdjustDuration(diff) {\r\n return 0 !== diff\r\n }\r\n _calculateDurationByDaylightDiff(duration, diff) {\r\n return duration + diff * toMs(\"minute\")\r\n }\r\n _getCollectorLeftOffset(isAllDay) {\r\n if (isAllDay || !this.isApplyCompactAppointmentOffset()) {\r\n return 0\r\n }\r\n var dropDownButtonWidth = this.getDropDownAppointmentWidth(this.intervalCount, isAllDay);\r\n var rightOffset = this._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET;\r\n return this.cellWidth - dropDownButtonWidth - rightOffset\r\n }\r\n _markAppointmentAsVirtual(coordinates) {\r\n var isAllDay = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var countFullWidthAppointmentInCell = this._getMaxAppointmentCountPerCellByType(isAllDay);\r\n if (coordinates.count - countFullWidthAppointmentInCell > 0) {\r\n var {\r\n top: top,\r\n left: left\r\n } = coordinates;\r\n var compactRender = this.isAdaptive || !isAllDay && this.supportCompactDropDownAppointments();\r\n coordinates.virtual = {\r\n left: left + this._getCollectorLeftOffset(isAllDay),\r\n top: top,\r\n width: this.getDropDownAppointmentWidth(this.intervalCount, isAllDay),\r\n height: this.getDropDownAppointmentHeight(),\r\n index: this._generateAppointmentCollectorIndex(coordinates, isAllDay),\r\n isAllDay: isAllDay,\r\n groupIndex: coordinates.groupIndex,\r\n isCompact: compactRender\r\n }\r\n }\r\n }\r\n isApplyCompactAppointmentOffset() {\r\n return this.supportCompactDropDownAppointments()\r\n }\r\n supportCompactDropDownAppointments() {\r\n return true\r\n }\r\n _generateAppointmentCollectorIndex(_ref, isAllDay) {\r\n var {\r\n groupIndex: groupIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = _ref;\r\n return \"\".concat(groupIndex, \"-\").concat(rowIndex, \"-\").concat(columnIndex, \"-\").concat(isAllDay)\r\n }\r\n _getMaxAppointmentCountPerCellByType(isAllDay) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCell();\r\n if (isObject(appointmentCountPerCell)) {\r\n return isAllDay ? appointmentCountPerCell.allDay : appointmentCountPerCell.simple\r\n }\r\n return appointmentCountPerCell\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.getPositioningStrategy().getDropDownAppointmentWidth(intervalCount, isAllDay)\r\n }\r\n getDropDownAppointmentHeight() {\r\n return this.getPositioningStrategy().getDropDownAppointmentHeight()\r\n }\r\n getDropDownButtonAdaptiveSize() {\r\n return DROP_DOWN_BUTTON_ADAPTIVE_SIZE\r\n }\r\n getCollectorTopOffset(allDay) {\r\n return this.getPositioningStrategy().getCollectorTopOffset(allDay)\r\n }\r\n getCollectorLeftOffset() {\r\n return this.getPositioningStrategy().getCollectorLeftOffset()\r\n }\r\n getAppointmentDataCalculator() {}\r\n getVerticalAppointmentHeight(cellHeight, currentAppointmentCountInCell, maxAppointmentsPerCell) {\r\n var resultMaxAppointmentsPerCell = maxAppointmentsPerCell;\r\n if (isNumeric(this.maxAppointmentsPerCell)) {\r\n var dynamicAppointmentCountPerCell = this._getDynamicAppointmentCountPerCell();\r\n var maxAppointmentCountDisplayedInCell = dynamicAppointmentCountPerCell.allDay || dynamicAppointmentCountPerCell;\r\n var maxAppointmentsCount = Math.max(currentAppointmentCountInCell, maxAppointmentCountDisplayedInCell);\r\n resultMaxAppointmentsPerCell = Math.min(maxAppointmentsCount, maxAppointmentsPerCell)\r\n }\r\n return cellHeight / resultMaxAppointmentsPerCell\r\n }\r\n _customizeCoordinates(coordinates, cellHeight, appointmentCountPerCell, topOffset, isAllDay) {\r\n var {\r\n index: index,\r\n count: count\r\n } = coordinates;\r\n var appointmentHeight = this.getVerticalAppointmentHeight(cellHeight, count, appointmentCountPerCell);\r\n var appointmentTop = coordinates.top + index * appointmentHeight;\r\n var top = appointmentTop + topOffset;\r\n var {\r\n width: width\r\n } = coordinates;\r\n var {\r\n left: left\r\n } = coordinates;\r\n if (coordinates.isCompact) {\r\n this.isAdaptive && this._correctCollectorCoordinatesInAdaptive(coordinates, isAllDay);\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: appointmentHeight,\r\n width: width,\r\n top: top,\r\n left: left,\r\n empty: this._isAppointmentEmpty(cellHeight, width)\r\n }\r\n }\r\n _isAppointmentEmpty(height, width) {\r\n return height < this._getAppointmentMinHeight() || width < this._getAppointmentMinWidth()\r\n }\r\n _calculateGeometryConfig(coordinates) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxHeight = this._getMaxHeight();\r\n if (!isNumeric(appointmentCountPerCell)) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxHeight - offsets.unlimited) / maxHeight\r\n }\r\n var topOffset = (1 - ratio) * maxHeight;\r\n if (\"auto\" === overlappingMode || isNumeric(overlappingMode)) {\r\n ratio = 1;\r\n maxHeight -= appointmentDefaultOffset;\r\n topOffset = appointmentDefaultOffset\r\n }\r\n return {\r\n height: ratio * maxHeight,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {}\r\n _getDefaultRatio(coordinates, appointmentCountPerCell) {}\r\n _getOffsets() {}\r\n _getMaxHeight() {}\r\n _needVerifyItemSize() {\r\n return false\r\n }\r\n _getMaxAppointmentCountPerCell() {\r\n if (!this._maxAppointmentCountPerCell) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var appointmentCountPerCell;\r\n if (isNumeric(overlappingMode)) {\r\n appointmentCountPerCell = overlappingMode\r\n }\r\n if (\"auto\" === overlappingMode) {\r\n appointmentCountPerCell = this._getDynamicAppointmentCountPerCell()\r\n }\r\n if (\"unlimited\" === overlappingMode) {\r\n appointmentCountPerCell = void 0\r\n }\r\n this._maxAppointmentCountPerCell = appointmentCountPerCell\r\n }\r\n return this._maxAppointmentCountPerCell\r\n }\r\n _getDynamicAppointmentCountPerCell() {\r\n return this.getPositioningStrategy().getDynamicAppointmentCountPerCell()\r\n }\r\n allDaySupported() {\r\n return false\r\n }\r\n _isCompactTheme() {\r\n return \"compact\" === (currentTheme() || \"\").split(\".\").pop()\r\n }\r\n _getAppointmentDefaultOffset() {\r\n return this.getPositioningStrategy().getAppointmentDefaultOffset()\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n _getAppointmentMinHeight() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n _getAppointmentHeightByTheme() {\r\n return this._isCompactTheme() ? COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT : APPOINTMENT_DEFAULT_HEIGHT\r\n }\r\n _getAppointmentDefaultWidth() {\r\n return this.getPositioningStrategy()._getAppointmentDefaultWidth()\r\n }\r\n _getAppointmentMinWidth() {\r\n return this._getAppointmentDefaultWidth()\r\n }\r\n _needVerticalGroupBounds(allDay) {\r\n return false\r\n }\r\n _needHorizontalGroupBounds() {\r\n return false\r\n }\r\n getAppointmentDurationInMs(apptStartDate, apptEndDate, allDay) {\r\n if (allDay) {\r\n var appointmentDuration = apptEndDate.getTime() - apptStartDate.getTime();\r\n var ceilQuantityOfDays = Math.ceil(appointmentDuration / toMs(\"day\"));\r\n return ceilQuantityOfDays * this.visibleDayDuration\r\n }\r\n var msInHour = toMs(\"hour\");\r\n var trimmedStartDate = dateUtils.trimTime(apptStartDate);\r\n var trimmedEndDate = dateUtils.trimTime(apptEndDate);\r\n var deltaDate = trimmedEndDate - trimmedStartDate;\r\n var quantityOfDays = deltaDate / toMs(\"day\") + 1;\r\n var dayVisibleHours = this.endDayHour - this.startDayHour;\r\n var appointmentDayHours = dayVisibleHours * quantityOfDays;\r\n var startHours = (apptStartDate - trimmedStartDate) / msInHour;\r\n var apptStartDelta = Math.max(0, startHours - this.startDayHour);\r\n var endHours = Math.max(0, (apptEndDate - trimmedEndDate) / msInHour - this.startDayHour);\r\n var apptEndDelta = Math.max(0, dayVisibleHours - endHours);\r\n var result = (appointmentDayHours - (apptStartDelta + apptEndDelta)) * msInHour;\r\n return result\r\n }\r\n getPositionShift(timeShift, isAllDay) {\r\n return {\r\n top: timeShift * this.cellHeight,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n shiftAppointmentByViewOffset(appointment) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var startDateField = this.dataAccessors.expr.startDateExpr;\r\n var endDateField = this.dataAccessors.expr.endDateExpr;\r\n var startDate = new Date(ExpressionUtils.getField(this.dataAccessors, \"startDate\", appointment));\r\n startDate = dateUtilsTs.addOffsets(startDate, [-viewOffset]);\r\n var endDate = new Date(ExpressionUtils.getField(this.dataAccessors, \"endDate\", appointment));\r\n endDate = dateUtilsTs.addOffsets(endDate, [-viewOffset]);\r\n return _extends(_extends({}, appointment), {\r\n [startDateField]: startDate,\r\n [endDateField]: endDate\r\n })\r\n }\r\n}\r\nexport default BaseRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/appointments/utils/getSkippedHoursInRange.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../../core/utils/date\";\r\nvar getSkippedHoursInRange = (startDate, endDate, viewDataProvider) => {\r\n var msInHour = dateUtils.dateToMilliseconds(\"hour\");\r\n var startTime = dateUtils.trimTime(startDate).getTime();\r\n var endTime = dateUtils.setToDayEnd(new Date(endDate.getTime() - 1)).getTime();\r\n var allDayIntervalDuration = 24 * msInHour;\r\n var excludedHours = 0;\r\n for (var time = startTime; time < endTime; time += allDayIntervalDuration) {\r\n var checkDate = new Date(time);\r\n if (viewDataProvider.isSkippedDate(checkDate)) {\r\n excludedHours += 24\r\n }\r\n }\r\n return excludedHours\r\n};\r\nexport default getSkippedHoursInRange;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport getSkippedHoursInRange from \"../../../../renovation/ui/scheduler/view_model/appointments/utils/getSkippedHoursInRange\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport BaseAppointmentsStrategy from \"./m_strategy_base\";\r\nvar DEFAULT_APPOINTMENT_HEIGHT = 60;\r\nvar MIN_APPOINTMENT_HEIGHT = 35;\r\nvar DROP_DOWN_BUTTON_OFFSET = 2;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass HorizontalRenderingStrategy extends BaseAppointmentsStrategy {\r\n _needVerifyItemSize() {\r\n return true\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointment);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var duration = this.getAppointmentDurationInMs(startDate, normalizedEndDate, allDay);\r\n duration = this._adjustDurationByDaylightDiff(duration, startDate, normalizedEndDate);\r\n var cellDuration = this.cellDurationInMinutes * toMs(\"minute\");\r\n var skippedHours = getSkippedHoursInRange(startDate, endDate, this.viewDataProvider);\r\n var durationInCells = (duration - skippedHours * toMs(\"hour\")) / cellDuration;\r\n var width = this.cropAppointmentWidth(durationInCells * cellWidth, cellWidth);\r\n return width\r\n }\r\n _needAdjustDuration(diff) {\r\n return diff < 0\r\n }\r\n getAppointmentGeometry(coordinates) {\r\n var result = this._customizeAppointmentGeometry(coordinates);\r\n return super.getAppointmentGeometry(result)\r\n }\r\n _customizeAppointmentGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: 0,\r\n auto: 0\r\n }\r\n }\r\n _getCompactLeftCoordinate(itemLeft, index) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return itemLeft + cellWidth * index\r\n }\r\n _getMaxHeight() {\r\n return this.cellHeight || this.getAppointmentMinSize()\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {\r\n return this._getMaxAppointmentCountPerCellByType(false)\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return DEFAULT_APPOINTMENT_HEIGHT\r\n }\r\n _getAppointmentMinHeight() {\r\n return MIN_APPOINTMENT_HEIGHT\r\n }\r\n _sortCondition(a, b) {\r\n return this._columnCondition(a, b)\r\n }\r\n _getOrientation() {\r\n return [\"left\", \"right\", \"top\"]\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.cellWidth - 2 * DROP_DOWN_BUTTON_OFFSET\r\n }\r\n getDeltaTime(args, initialSize) {\r\n var deltaTime;\r\n var deltaWidth = args.width - initialSize.width;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaWidth / this.cellWidth * this.cellDurationInMinutes);\r\n return deltaTime\r\n }\r\n isAllDay(appointmentData) {\r\n return ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointmentData)\r\n }\r\n _isItemsCross(firstItem, secondItem) {\r\n var orientation = this._getOrientation();\r\n return this._checkItemsCrossing(firstItem, secondItem, orientation)\r\n }\r\n getPositionShift(timeShift) {\r\n var positionShift = super.getPositionShift(timeShift);\r\n var left = this.cellWidth * timeShift;\r\n if (this.rtlEnabled) {\r\n left *= -1\r\n }\r\n left += positionShift.left;\r\n return {\r\n top: 0,\r\n left: left,\r\n cellPosition: left\r\n }\r\n }\r\n supportCompactDropDownAppointments() {\r\n return false\r\n }\r\n}\r\nexport default HorizontalRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/helpers/m_position_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar getCellSize = DOMMetaData => {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var length = null === dateTableCellsMeta || void 0 === dateTableCellsMeta ? void 0 : dateTableCellsMeta.length;\r\n if (!length) {\r\n return {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n var cellIndex = length > 1 ? 1 : 0;\r\n var cellSize = dateTableCellsMeta[cellIndex][0];\r\n return {\r\n width: cellSize.width,\r\n height: cellSize.height\r\n }\r\n};\r\nvar getMaxAllowedHorizontalPosition = (groupIndex, viewDataProvider, rtlEnabled, DOMMetaData) => {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var firstRow = dateTableCellsMeta[0];\r\n if (!firstRow) {\r\n return 0\r\n }\r\n var {\r\n columnIndex: columnIndex\r\n } = viewDataProvider.getLastGroupCellPosition(groupIndex);\r\n var cellPosition = firstRow[columnIndex];\r\n if (!cellPosition) {\r\n return 0\r\n }\r\n return !rtlEnabled ? cellPosition.left + cellPosition.width : cellPosition.left\r\n};\r\nexport var getCellHeight = DOMMetaData => getCellSize(DOMMetaData).height;\r\nexport var getCellWidth = DOMMetaData => getCellSize(DOMMetaData).width;\r\nexport var getAllDayHeight = (showAllDayPanel, isVerticalGrouping, DOMMetaData) => {\r\n if (!showAllDayPanel) {\r\n return 0\r\n }\r\n if (isVerticalGrouping) {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var length = null === dateTableCellsMeta || void 0 === dateTableCellsMeta ? void 0 : dateTableCellsMeta.length;\r\n return length ? dateTableCellsMeta[0][0].height : 0\r\n }\r\n var {\r\n allDayPanelCellsMeta: allDayPanelCellsMeta\r\n } = DOMMetaData;\r\n return (null === allDayPanelCellsMeta || void 0 === allDayPanelCellsMeta ? void 0 : allDayPanelCellsMeta.length) ? allDayPanelCellsMeta[0].height : 0\r\n};\r\nexport var getMaxAllowedPosition = (groupIndex, viewDataProvider, rtlEnabled, DOMMetaData) => {\r\n var validGroupIndex = groupIndex || 0;\r\n return getMaxAllowedHorizontalPosition(validGroupIndex, viewDataProvider, rtlEnabled, DOMMetaData)\r\n};\r\nexport var getGroupWidth = (groupIndex, viewDataProvider, options) => {\r\n var {\r\n isVirtualScrolling: isVirtualScrolling,\r\n rtlEnabled: rtlEnabled,\r\n DOMMetaData: DOMMetaData\r\n } = options;\r\n var cellWidth = getCellWidth(DOMMetaData);\r\n var result = viewDataProvider.getCellCount(options) * cellWidth;\r\n if (isVirtualScrolling) {\r\n var groupedData = viewDataProvider.groupedDataMap.dateTableGroupedMap;\r\n var groupLength = groupedData[groupIndex][0].length;\r\n result = groupLength * cellWidth\r\n }\r\n var position = getMaxAllowedPosition(groupIndex, viewDataProvider, rtlEnabled, DOMMetaData);\r\n var currentPosition = position[groupIndex];\r\n if (currentPosition) {\r\n if (rtlEnabled) {\r\n result = currentPosition - position[groupIndex + 1]\r\n } else if (0 === groupIndex) {\r\n result = currentPosition\r\n } else {\r\n result = currentPosition - position[groupIndex - 1]\r\n }\r\n }\r\n return result\r\n};\r\nexport class PositionHelper {\r\n constructor(options) {\r\n this.options = options;\r\n this.groupStrategy = this.options.isVerticalGrouping ? new GroupStrategyBase(this.options) : new GroupStrategyHorizontal(this.options)\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get DOMMetaData() {\r\n return this.options.getDOMMetaDataCallback()\r\n }\r\n getHorizontalMax(groupIndex) {\r\n var getMaxPosition = groupIndex => getMaxAllowedPosition(groupIndex, this.viewDataProvider, this.rtlEnabled, this.DOMMetaData);\r\n if (this.isGroupedByDate) {\r\n var viewPortGroupCount = this.viewDataProvider.getViewPortGroupCount();\r\n return Math.max(getMaxPosition(groupIndex), getMaxPosition(viewPortGroupCount - 1))\r\n }\r\n return getMaxPosition(groupIndex)\r\n }\r\n getResizableStep() {\r\n var cellWidth = getCellWidth(this.DOMMetaData);\r\n if (this.isGroupedByDate) {\r\n return this.groupCount * cellWidth\r\n }\r\n return cellWidth\r\n }\r\n getVerticalMax(options) {\r\n return this.groupStrategy.getVerticalMax(options)\r\n }\r\n getOffsetByAllDayPanel(options) {\r\n return this.groupStrategy.getOffsetByAllDayPanel(options)\r\n }\r\n getGroupTop(options) {\r\n return this.groupStrategy.getGroupTop(options)\r\n }\r\n}\r\nclass GroupStrategyBase {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get DOMMetaData() {\r\n return this.options.getDOMMetaDataCallback()\r\n }\r\n getOffsetByAllDayPanel(_ref) {\r\n var {\r\n groupIndex: groupIndex,\r\n supportAllDayRow: supportAllDayRow,\r\n showAllDayPanel: showAllDayPanel\r\n } = _ref;\r\n var result = 0;\r\n if (supportAllDayRow && showAllDayPanel) {\r\n var allDayPanelHeight = getAllDayHeight(showAllDayPanel, true, this.DOMMetaData);\r\n result = allDayPanelHeight * (groupIndex + 1)\r\n }\r\n return result\r\n }\r\n getVerticalMax(options) {\r\n var maxAllowedPosition = this._getMaxAllowedVerticalPosition(_extends(_extends({}, options), {\r\n viewDataProvider: this.viewDataProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n DOMMetaData: this.DOMMetaData\r\n }));\r\n maxAllowedPosition += this.getOffsetByAllDayPanel(options);\r\n return maxAllowedPosition\r\n }\r\n getGroupTop(_ref2) {\r\n var {\r\n groupIndex: groupIndex,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n } = _ref2;\r\n var rowCount = this.viewDataProvider.getRowCountInGroup(groupIndex);\r\n var maxVerticalPosition = this._getMaxAllowedVerticalPosition({\r\n groupIndex: groupIndex,\r\n viewDataProvider: this.viewDataProvider,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: true,\r\n DOMMetaData: this.DOMMetaData\r\n });\r\n return maxVerticalPosition - getCellHeight(this.DOMMetaData) * rowCount\r\n }\r\n _getAllDayHeight(showAllDayPanel) {\r\n return getAllDayHeight(showAllDayPanel, true, this.DOMMetaData)\r\n }\r\n _getMaxAllowedVerticalPosition(_ref3) {\r\n var {\r\n groupIndex: groupIndex,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n } = _ref3;\r\n var {\r\n rowIndex: rowIndex\r\n } = this.viewDataProvider.getLastGroupCellPosition(groupIndex);\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = this.DOMMetaData;\r\n var lastGroupRow = dateTableCellsMeta[rowIndex];\r\n if (!lastGroupRow) {\r\n return 0\r\n }\r\n var result = lastGroupRow[0].top + lastGroupRow[0].height;\r\n if (isGroupedAllDayPanel) {\r\n result -= (groupIndex + 1) * this._getAllDayHeight(showAllDayPanel)\r\n }\r\n return result\r\n }\r\n}\r\nclass GroupStrategyHorizontal extends GroupStrategyBase {\r\n getOffsetByAllDayPanel() {\r\n return 0\r\n }\r\n getVerticalMax(options) {\r\n var {\r\n isVirtualScrolling: isVirtualScrolling,\r\n groupIndex: groupIndex\r\n } = options;\r\n var correctedGroupIndex = isVirtualScrolling ? groupIndex : 0;\r\n return this._getMaxAllowedVerticalPosition(_extends(_extends({}, options), {\r\n groupIndex: correctedGroupIndex\r\n }))\r\n }\r\n getGroupTop() {\r\n return 0\r\n }\r\n _getAllDayHeight(showAllDayPanel) {\r\n return getAllDayHeight(showAllDayPanel, false, this.DOMMetaData)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month_line.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport query from \"../../../../data/query\";\r\nimport {\r\n sortAppointmentsByStartDate\r\n} from \"../data_provider/m_utils\";\r\nimport HorizontalAppointmentsStrategy from \"./m_strategy_horizontal\";\r\nvar HOURS_IN_DAY = 24;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar MILLISECONDS_IN_MINUTE = 6e4;\r\nvar ZERO_APPOINTMENT_DURATION_IN_DAYS = 1;\r\nclass HorizontalMonthLineRenderingStrategy extends HorizontalAppointmentsStrategy {\r\n calculateAppointmentWidth(_, position) {\r\n var {\r\n startDate: startDateWithTime,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var startDate = dateUtils.trimTime(startDateWithTime);\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var duration = Math.ceil(this._getDurationInDays(startDate, normalizedEndDate));\r\n var width = this.cropAppointmentWidth(duration * cellWidth, cellWidth);\r\n if (this.isVirtualScrolling) {\r\n var skippedDays = this.viewDataProvider.getSkippedDaysCount(position.groupIndex, startDate, normalizedEndDate, duration);\r\n width -= skippedDays * cellWidth\r\n }\r\n return width\r\n }\r\n _getDurationInDays(startDate, endDate) {\r\n var adjustedDuration = this._adjustDurationByDaylightDiff(endDate.getTime() - startDate.getTime(), startDate, endDate);\r\n return adjustedDuration / dateUtils.dateToMilliseconds(\"day\") || ZERO_APPOINTMENT_DURATION_IN_DAYS\r\n }\r\n getDeltaTime(args, initialSize) {\r\n return HOURS_IN_DAY * MINUTES_IN_HOUR * MILLISECONDS_IN_MINUTE * this._getDeltaWidth(args, initialSize)\r\n }\r\n isAllDay() {\r\n return false\r\n }\r\n createTaskPositionMap(items, skipSorting) {\r\n if (!skipSorting) {\r\n sortAppointmentsByStartDate(items, this.dataAccessors)\r\n }\r\n return super.createTaskPositionMap(items)\r\n }\r\n _getSortedPositions(map, skipSorting) {\r\n var result = super._getSortedPositions(map);\r\n if (!skipSorting) {\r\n result = query(result).sortBy(\"top\").thenBy(\"left\").thenBy(\"cellPosition\").thenBy(\"i\").toArray()\r\n }\r\n return result\r\n }\r\n needCorrectAppointmentDates() {\r\n return false\r\n }\r\n getPositionShift(timeShift) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n}\r\nexport default HorizontalMonthLineRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getGroupWidth\r\n} from \"../../workspaces/helpers/m_position_helper\";\r\nimport HorizontalMonthLineRenderingStrategy from \"./m_strategy_horizontal_month_line\";\r\nvar MONTH_APPOINTMENT_HEIGHT_RATIO = .6;\r\nvar MONTH_APPOINTMENT_MIN_OFFSET = 26;\r\nvar MONTH_APPOINTMENT_MAX_OFFSET = 30;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET = 36;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET = 60;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass HorizontalMonthRenderingStrategy extends HorizontalMonthLineRenderingStrategy {\r\n get endViewDate() {\r\n return this.options.endViewDate\r\n }\r\n get adaptivityEnabled() {\r\n return this.options.adaptivityEnabled\r\n }\r\n get DOMMetaData() {\r\n return this.options.DOMMetaData\r\n }\r\n _getLeftPosition(settings) {\r\n var fullWeekAppointmentWidth = this.getGroupWidth(settings.groupIndex);\r\n return this._calculateMultiWeekAppointmentLeftOffset(settings.hMax, fullWeekAppointmentWidth)\r\n }\r\n _getChunkCount(fullChunksWidth, firstChunkWidth, weekWidth, settings) {\r\n var {\r\n groupIndex: groupIndex,\r\n info: {\r\n appointment: {\r\n startDate: startDate\r\n }\r\n }\r\n } = settings;\r\n var rawFullChunksWidth = fullChunksWidth - firstChunkWidth + weekWidth;\r\n var allChunksCount = Math.ceil(rawFullChunksWidth / weekWidth);\r\n var viewRowIndex = this._tryGetRowIndexInView(startDate);\r\n if (void 0 !== viewRowIndex) {\r\n var viewChunksCount = this.viewDataProvider.getRowCountInGroup(groupIndex);\r\n var allowedChunksCount = viewChunksCount - viewRowIndex;\r\n return allChunksCount <= allowedChunksCount ? allChunksCount : allowedChunksCount\r\n }\r\n return allChunksCount\r\n }\r\n _tryGetRowIndexInView(positionStartDate) {\r\n var _a;\r\n var columnsCount = this.viewDataProvider.getColumnsCount();\r\n if ((null === (_a = this.options.dataRange) || void 0 === _a ? void 0 : _a.length) < 1 || !columnsCount) {\r\n return\r\n }\r\n var [startViewDate] = this.options.dateRange;\r\n var dayDurationMs = toMs(\"day\");\r\n var timeFromStart = positionStartDate.getTime() - startViewDate.getTime();\r\n return Math.floor(timeFromStart / dayDurationMs / columnsCount)\r\n }\r\n _getChunkWidths(geometry, settings, weekWidth) {\r\n var firstChunkWidth = geometry.reducedWidth;\r\n var fullChunksWidth = Math.floor(geometry.sourceAppointmentWidth);\r\n var widthWithoutFirstChunk = fullChunksWidth - firstChunkWidth;\r\n return [firstChunkWidth, fullChunksWidth, widthWithoutFirstChunk]\r\n }\r\n _getTailChunkSettings(withoutFirstChunkWidth, weekWidth, leftPosition) {\r\n var tailChunkWidth = withoutFirstChunkWidth % weekWidth || weekWidth;\r\n var rtlPosition = leftPosition + (weekWidth - tailChunkWidth);\r\n var tailChunkLeftPosition = this.rtlEnabled ? rtlPosition : leftPosition;\r\n return [tailChunkWidth, tailChunkLeftPosition]\r\n }\r\n _getAppointmentParts(geometry, settings) {\r\n var result = [];\r\n var weekWidth = Math.round(this.getGroupWidth(settings.groupIndex));\r\n var [firstChunkWidth, fullChunksWidth, withoutFirstChunkWidth] = this._getChunkWidths(geometry, settings, weekWidth);\r\n var leftPosition = this._getLeftPosition(settings);\r\n var {\r\n endDate: endDate\r\n } = settings.info.appointment;\r\n var hasTailChunk = this.endViewDate > endDate;\r\n var chunkCount = this._getChunkCount(fullChunksWidth, firstChunkWidth, weekWidth, settings);\r\n var [tailChunkWidth, tailChunkLeftPosition] = this._getTailChunkSettings(withoutFirstChunkWidth, weekWidth, leftPosition);\r\n for (var chunkIndex = 1; chunkIndex < chunkCount; chunkIndex++) {\r\n var topPosition = settings.top + this.cellHeight * chunkIndex;\r\n var isTailChunk = hasTailChunk && chunkIndex === chunkCount - 1;\r\n result.push(_extends(_extends({}, settings), {\r\n top: topPosition,\r\n left: isTailChunk ? tailChunkLeftPosition : leftPosition,\r\n height: geometry.height,\r\n width: isTailChunk ? tailChunkWidth : weekWidth,\r\n appointmentReduced: isTailChunk ? \"tail\" : \"body\",\r\n rowIndex: ++settings.rowIndex,\r\n columnIndex: 0\r\n }))\r\n }\r\n return result\r\n }\r\n _calculateMultiWeekAppointmentLeftOffset(max, width) {\r\n return this.rtlEnabled ? max : max - width\r\n }\r\n getGroupWidth(groupIndex) {\r\n return getGroupWidth(groupIndex, this.viewDataProvider, {\r\n intervalCount: this.options.intervalCount,\r\n currentDate: this.options.currentDate,\r\n viewType: this.options.viewType,\r\n hoursInterval: this.options.hoursInterval,\r\n startDayHour: this.options.startDayHour,\r\n endDayHour: this.options.endDayHour,\r\n isVirtualScrolling: this.isVirtualScrolling,\r\n rtlEnabled: this.rtlEnabled,\r\n DOMMetaData: this.DOMMetaData\r\n })\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n _getAppointmentMinHeight() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n _columnCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition || conditions.cellPositionCondition\r\n }\r\n createTaskPositionMap(items) {\r\n return super.createTaskPositionMap(items, true)\r\n }\r\n _getSortedPositions(map) {\r\n return super._getSortedPositions(map, true)\r\n }\r\n _getDefaultRatio() {\r\n return MONTH_APPOINTMENT_HEIGHT_RATIO\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: MONTH_APPOINTMENT_MIN_OFFSET,\r\n auto: MONTH_APPOINTMENT_MAX_OFFSET\r\n }\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n if (this.adaptivityEnabled) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n var offset = intervalCount > 1 ? MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET : MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET;\r\n return this.cellWidth - offset\r\n }\r\n needCorrectAppointmentDates() {\r\n return false\r\n }\r\n _needVerticalGroupBounds() {\r\n return false\r\n }\r\n _needHorizontalGroupBounds() {\r\n return true\r\n }\r\n getPositionShift(timeShift) {\r\n return {\r\n cellPosition: timeShift * this.cellWidth,\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n}\r\nexport default HorizontalMonthRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_vertical.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n roundFloatPart\r\n} from \"../../../../core/utils/math\";\r\nimport {\r\n isNumeric\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getAppointmentTakesAllDay\r\n} from \"../../../../renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay\";\r\nimport getSkippedHoursInRange from \"../../../../renovation/ui/scheduler/view_model/appointments/utils/getSkippedHoursInRange\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport BaseAppointmentsStrategy from \"./m_strategy_base\";\r\nvar ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET = 5;\r\nvar ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET = 20;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass VerticalRenderingStrategy extends BaseAppointmentsStrategy {\r\n getDeltaTime(args, initialSize, appointment) {\r\n var deltaTime = 0;\r\n if (this.isAllDay(appointment)) {\r\n deltaTime = this._getDeltaWidth(args, initialSize) * toMs(\"day\")\r\n } else {\r\n var deltaHeight = args.height - initialSize.height;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaHeight / this.cellHeight * this.cellDurationInMinutes)\r\n }\r\n return deltaTime\r\n }\r\n _correctCollectorCoordinatesInAdaptive(coordinates, isAllDay) {\r\n if (isAllDay) {\r\n super._correctCollectorCoordinatesInAdaptive(coordinates, isAllDay)\r\n } else if (0 === this._getMaxAppointmentCountPerCellByType()) {\r\n var {\r\n cellHeight: cellHeight\r\n } = this;\r\n var {\r\n cellWidth: cellWidth\r\n } = this;\r\n coordinates.top += (cellHeight - this.getDropDownButtonAdaptiveSize()) / 2;\r\n coordinates.left += (cellWidth - this.getDropDownButtonAdaptiveSize()) / 2\r\n }\r\n }\r\n getAppointmentGeometry(coordinates) {\r\n var geometry = null;\r\n if (coordinates.allDay) {\r\n geometry = this._getAllDayAppointmentGeometry(coordinates)\r\n } else {\r\n geometry = this.isAdaptive && coordinates.isCompact ? this._getAdaptiveGeometry(coordinates) : this._getVerticalAppointmentGeometry(coordinates)\r\n }\r\n return super.getAppointmentGeometry(geometry)\r\n }\r\n _getAdaptiveGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n _getItemPosition(initialAppointment) {\r\n var allDay = this.isAllDay(initialAppointment);\r\n if (allDay) {\r\n return super._getItemPosition(initialAppointment)\r\n }\r\n var appointment = super.shiftAppointmentByViewOffset(initialAppointment);\r\n var adapter = createAppointmentAdapter(appointment, this.dataAccessors, this.timeZoneCalculator);\r\n var isRecurring = !!adapter.recurrenceRule;\r\n var appointmentStartDate = adapter.calculateStartDate(\"toGrid\");\r\n var appointmentEndDate = adapter.calculateEndDate(\"toGrid\");\r\n var appointmentDuration = appointmentEndDate - appointmentStartDate;\r\n var appointmentBeginInCurrentView = this.options.startViewDate < appointmentStartDate;\r\n var isAppointmentTakesSeveralDays = !timeZoneUtils.isSameAppointmentDates(appointmentStartDate, appointmentEndDate);\r\n var settings = this.generateAppointmentSettings(appointment);\r\n var result = [];\r\n for (var j = 0; j < settings.length; j++) {\r\n var currentSetting = settings[j];\r\n var height = this.calculateAppointmentHeight(appointment, currentSetting);\r\n var width = this.calculateAppointmentWidth(appointment, currentSetting);\r\n var resultHeight = height;\r\n var appointmentReduced = null;\r\n var multiDaysAppointmentParts = [];\r\n var currentMaxAllowedPosition = currentSetting.vMax;\r\n if (this._isMultiViewAppointment(currentSetting, height) || isAppointmentTakesSeveralDays && !isRecurring) {\r\n var trimmedStartDate = dateUtils.trimTime(appointmentStartDate);\r\n var trimmedSettingStartDate = dateUtils.trimTime(currentSetting.info.appointment.startDate);\r\n var reduceHead = trimmedStartDate <= trimmedSettingStartDate || isRecurring;\r\n if (reduceHead) {\r\n resultHeight = this._reduceMultiDayAppointment(height, {\r\n top: currentSetting.top,\r\n bottom: currentMaxAllowedPosition\r\n });\r\n multiDaysAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentHeight: height,\r\n reducedHeight: resultHeight,\r\n width: width\r\n }, currentSetting)\r\n }\r\n var {\r\n startDate: currentSettingStartDate,\r\n normalizedEndDate: currentSettingNormalizedEndDate\r\n } = currentSetting.info.appointment;\r\n var currentSettingDuration = currentSettingNormalizedEndDate - currentSettingStartDate;\r\n var hasNextParts = currentSettingDuration < appointmentDuration;\r\n appointmentReduced = hasNextParts ? appointmentBeginInCurrentView ? \"head\" : \"body\" : appointmentBeginInCurrentView ? \"head\" : \"tail\"\r\n }\r\n extend(currentSetting, {\r\n height: resultHeight,\r\n width: width,\r\n allDay: allDay,\r\n appointmentReduced: appointmentReduced\r\n });\r\n result = this._getAppointmentPartsPosition(multiDaysAppointmentParts, currentSetting, result)\r\n }\r\n return result\r\n }\r\n _isMultiViewAppointment(_ref, height) {\r\n var {\r\n vMax: vMax,\r\n top: top\r\n } = _ref;\r\n var fullAppointmentHeight = roundFloatPart(height, 2);\r\n var remainingHeight = roundFloatPart(vMax - top, 2);\r\n return fullAppointmentHeight > remainingHeight\r\n }\r\n _reduceMultiDayAppointment(sourceAppointmentHeight, bound) {\r\n return Math.min(sourceAppointmentHeight, bound.bottom - Math.floor(bound.top))\r\n }\r\n _getGroupHeight() {\r\n return this.cellHeight * this.rowCount\r\n }\r\n _getGroupTopOffset(appointmentSettings) {\r\n var {\r\n groupIndex: groupIndex\r\n } = appointmentSettings;\r\n var groupTop = Math.max(0, this.positionHelper.getGroupTop({\r\n groupIndex: groupIndex,\r\n showAllDayPanel: this.showAllDayPanel,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel\r\n }));\r\n var allDayPanelOffset = this.positionHelper.getOffsetByAllDayPanel({\r\n groupIndex: groupIndex,\r\n supportAllDayRow: this.allDaySupported(),\r\n showAllDayPanel: this.showAllDayPanel\r\n });\r\n var appointmentGroupTopOffset = appointmentSettings.top - groupTop - allDayPanelOffset;\r\n return appointmentGroupTopOffset\r\n }\r\n _getTailHeight(appointmentGeometry, appointmentSettings) {\r\n if (!this.isVirtualScrolling) {\r\n return appointmentGeometry.sourceAppointmentHeight - appointmentGeometry.reducedHeight\r\n }\r\n var appointmentGroupTopOffset = this._getGroupTopOffset(appointmentSettings);\r\n var {\r\n sourceAppointmentHeight: sourceAppointmentHeight\r\n } = appointmentGeometry;\r\n var groupHeight = this._getGroupHeight();\r\n var tailHeight = appointmentGroupTopOffset + sourceAppointmentHeight - groupHeight;\r\n return tailHeight\r\n }\r\n _getAppointmentParts(appointmentGeometry, appointmentSettings) {\r\n var {\r\n width: width\r\n } = appointmentGeometry;\r\n var result = [];\r\n var currentPartTop = Math.max(0, this.positionHelper.getGroupTop({\r\n groupIndex: appointmentSettings.groupIndex,\r\n showAllDayPanel: this.showAllDayPanel,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel\r\n }));\r\n var cellsDiff = this.isGroupedByDate ? this.groupCount : 1;\r\n var offset = this.cellWidth * cellsDiff;\r\n var allDayPanelOffset = this.positionHelper.getOffsetByAllDayPanel({\r\n groupIndex: appointmentSettings.groupIndex,\r\n supportAllDayRow: this.allDaySupported(),\r\n showAllDayPanel: this.showAllDayPanel\r\n });\r\n currentPartTop += allDayPanelOffset;\r\n var minHeight = this.getAppointmentMinSize();\r\n var {\r\n vMax: vMax,\r\n hMax: hMax\r\n } = appointmentSettings;\r\n var hasTailPart = this.options.endViewDate > appointmentSettings.info.appointment.endDate;\r\n var left = Math.round(appointmentSettings.left + offset);\r\n var tailHeight = this._getTailHeight(appointmentGeometry, appointmentSettings);\r\n while (tailHeight > 0 && left < hMax) {\r\n tailHeight = Math.max(minHeight, tailHeight);\r\n var columnIndex = appointmentSettings.columnIndex + cellsDiff;\r\n var height = Math.min(tailHeight, vMax);\r\n result.push(_extends(_extends({}, appointmentSettings), {\r\n top: currentPartTop,\r\n left: left,\r\n height: height,\r\n width: width,\r\n appointmentReduced: \"body\",\r\n rowIndex: 0,\r\n columnIndex: columnIndex\r\n }));\r\n left += offset;\r\n tailHeight -= vMax\r\n }\r\n if (hasTailPart && result.length > 0) {\r\n result[result.length - 1].appointmentReduced = \"tail\"\r\n }\r\n return result\r\n }\r\n _getMinuteHeight() {\r\n return this.cellHeight / this.cellDurationInMinutes\r\n }\r\n _getCompactLeftCoordinate(itemLeft, index) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return itemLeft + (1 + cellWidth) * index\r\n }\r\n _getVerticalAppointmentGeometry(coordinates) {\r\n var config = this._calculateVerticalGeometryConfig(coordinates);\r\n return this._customizeVerticalCoordinates(coordinates, config.width, config.appointmentCountPerCell, config.offset)\r\n }\r\n _customizeVerticalCoordinates(coordinates, width, appointmentCountPerCell, topOffset, isAllDay) {\r\n var appointmentWidth = Math.max(width / appointmentCountPerCell, width / coordinates.count);\r\n var {\r\n height: height\r\n } = coordinates;\r\n var appointmentLeft = coordinates.left + coordinates.index * appointmentWidth;\r\n var {\r\n top: top\r\n } = coordinates;\r\n if (coordinates.isCompact) {\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: height,\r\n width: appointmentWidth,\r\n top: top,\r\n left: appointmentLeft,\r\n empty: this._isAppointmentEmpty(height, width)\r\n }\r\n }\r\n _calculateVerticalGeometryConfig(coordinates) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxWidth = this._getMaxWidth();\r\n if (!appointmentCountPerCell) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxWidth - offsets.unlimited) / maxWidth\r\n }\r\n var topOffset = (1 - ratio) * maxWidth;\r\n if (\"auto\" === overlappingMode || isNumeric(overlappingMode)) {\r\n ratio = 1;\r\n maxWidth -= appointmentDefaultOffset;\r\n topOffset = 0\r\n }\r\n return {\r\n width: ratio * maxWidth,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n _getMaxWidth() {\r\n return this.cellWidth\r\n }\r\n isAllDay(appointmentData) {\r\n return getAppointmentTakesAllDay(createAppointmentAdapter(appointmentData, this.dataAccessors, this.timeZoneCalculator), this.allDayPanelMode)\r\n }\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth - this._getAppointmentDefaultOffset()\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n if (!this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var {\r\n startDate: startDateWithTime,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var startDate = dateUtils.trimTime(startDateWithTime);\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var durationInHours = (normalizedEndDate.getTime() - startDate.getTime()) / toMs(\"hour\");\r\n var skippedHours = getSkippedHoursInRange(startDate, endDate, this.viewDataProvider);\r\n var width = Math.ceil((durationInHours - skippedHours) / 24) * cellWidth;\r\n width = this.cropAppointmentWidth(width, cellWidth);\r\n return width\r\n }\r\n calculateAppointmentHeight(appointment, position) {\r\n if (this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var {\r\n startDate: startDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointment);\r\n var duration = this.getAppointmentDurationInMs(startDate, normalizedEndDate, allDay);\r\n var durationInMinutes = this._adjustDurationByDaylightDiff(duration, startDate, normalizedEndDate) / toMs(\"minute\");\r\n var height = durationInMinutes * this._getMinuteHeight();\r\n return height\r\n }\r\n getDirection() {\r\n return \"vertical\"\r\n }\r\n _sortCondition(a, b) {\r\n if (!!a.allDay !== !!b.allDay) {\r\n return a.allDay ? 1 : -1\r\n }\r\n var isAllDay = a.allDay && b.allDay;\r\n return \"vertical\" === this.groupOrientation && isAllDay ? this._columnCondition(a, b) : this._rowCondition(a, b)\r\n }\r\n allDaySupported() {\r\n return true\r\n }\r\n _getAllDayAppointmentGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset, true)\r\n }\r\n _calculateGeometryConfig(coordinates) {\r\n if (!this.allowResizing || !this.allowAllDayResizing) {\r\n coordinates.skipResizing = true\r\n }\r\n var config = super._calculateGeometryConfig(coordinates);\r\n var minAppointmentCountPerCell = Math.min(config.appointmentCountPerCell, this._getDynamicAppointmentCountPerCell().allDay);\r\n if (coordinates.allDay && coordinates.count <= minAppointmentCountPerCell) {\r\n config.offset = 0\r\n }\r\n return config\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {\r\n return \"auto\" !== overlappingMode && 1 === coordinates.count && !isNumeric(overlappingMode) ? coordinates.count : this._getMaxAppointmentCountPerCellByType(coordinates.allDay)\r\n }\r\n _getDefaultRatio(coordinates, appointmentCountPerCell) {\r\n return coordinates.count > this.appointmentCountPerCell ? .65 : 1\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET,\r\n auto: ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET\r\n }\r\n }\r\n _getMaxHeight() {\r\n return this.allDayHeight || this.getAppointmentMinSize()\r\n }\r\n _needVerticalGroupBounds(allDay) {\r\n return !allDay\r\n }\r\n _needHorizontalGroupBounds() {\r\n return false\r\n }\r\n getPositionShift(timeShift, isAllDay) {\r\n if (!isAllDay && this.isAdaptive && 0 === this._getMaxAppointmentCountPerCellByType(isAllDay)) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n return super.getPositionShift(timeShift, isAllDay)\r\n }\r\n}\r\nexport default VerticalRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_view_model_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getAppointmentKey\r\n} from \"../../../renovation/ui/scheduler/appointment/utils\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport AgendaAppointmentsStrategy from \"./rendering_strategies/m_strategy_agenda\";\r\nimport HorizontalAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal\";\r\nimport HorizontalMonthAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal_month\";\r\nimport HorizontalMonthLineAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal_month_line\";\r\nimport VerticalAppointmentsStrategy from \"./rendering_strategies/m_strategy_vertical\";\r\nimport WeekAppointmentRenderingStrategy from \"./rendering_strategies/m_strategy_week\";\r\nvar RENDERING_STRATEGIES = {\r\n horizontal: HorizontalAppointmentsStrategy,\r\n horizontalMonth: HorizontalMonthAppointmentsStrategy,\r\n horizontalMonthLine: HorizontalMonthLineAppointmentsStrategy,\r\n vertical: VerticalAppointmentsStrategy,\r\n week: WeekAppointmentRenderingStrategy,\r\n agenda: AgendaAppointmentsStrategy\r\n};\r\nexport class AppointmentViewModelGenerator {\r\n initRenderingStrategy(options) {\r\n var RenderingStrategy = RENDERING_STRATEGIES[options.appointmentRenderingStrategyName];\r\n this.renderingStrategy = new RenderingStrategy(options)\r\n }\r\n generate(filteredItems, options) {\r\n var {\r\n isRenovatedAppointments: isRenovatedAppointments,\r\n viewOffset: viewOffset\r\n } = options;\r\n var appointments = filteredItems ? filteredItems.slice() : [];\r\n this.initRenderingStrategy(options);\r\n var renderingStrategy = this.getRenderingStrategy();\r\n var positionMap = renderingStrategy.createTaskPositionMap(appointments);\r\n var shiftedViewModel = this.postProcess(appointments, positionMap, isRenovatedAppointments);\r\n var viewModel = this.unshiftViewModelAppointmentsByViewOffset(shiftedViewModel, viewOffset);\r\n if (isRenovatedAppointments) {\r\n return this.makeRenovatedViewModels(viewModel, options.supportAllDayRow, options.isVerticalGroupOrientation)\r\n }\r\n return {\r\n positionMap: positionMap,\r\n viewModel: viewModel\r\n }\r\n }\r\n postProcess(filteredItems, positionMap, isRenovatedAppointments) {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n return filteredItems.map((data, index) => {\r\n if (!renderingStrategy.keepAppointmentSettings()) {\r\n delete data.settings\r\n }\r\n var appointmentSettings = positionMap[index];\r\n appointmentSettings.forEach(item => {\r\n item.direction = \"vertical\" === renderingStrategy.getDirection() && !item.allDay ? \"vertical\" : \"horizontal\"\r\n });\r\n var item = {\r\n itemData: data,\r\n settings: appointmentSettings\r\n };\r\n if (!isRenovatedAppointments) {\r\n item.needRepaint = true;\r\n item.needRemove = false\r\n }\r\n return item\r\n })\r\n }\r\n makeRenovatedViewModels(viewModel, supportAllDayRow, isVerticalGrouping) {\r\n var strategy = this.getRenderingStrategy();\r\n var regularViewModels = [];\r\n var allDayViewModels = [];\r\n var compactOptions = [];\r\n var isAllDayPanel = supportAllDayRow && !isVerticalGrouping;\r\n viewModel.forEach(_ref => {\r\n var {\r\n itemData: itemData,\r\n settings: settings\r\n } = _ref;\r\n settings.forEach(options => {\r\n var item = this.prepareViewModel(options, strategy, itemData);\r\n if (options.isCompact) {\r\n compactOptions.push({\r\n compactViewModel: options.virtual,\r\n appointmentViewModel: item\r\n })\r\n } else if (options.allDay && isAllDayPanel) {\r\n allDayViewModels.push(item)\r\n } else {\r\n regularViewModels.push(item)\r\n }\r\n })\r\n });\r\n var compactViewModels = this.prepareCompactViewModels(compactOptions, supportAllDayRow);\r\n var result = _extends({\r\n allDay: allDayViewModels,\r\n regular: regularViewModels\r\n }, compactViewModels);\r\n return result\r\n }\r\n prepareViewModel(options, strategy, itemData) {\r\n var geometry = strategy.getAppointmentGeometry(options);\r\n var viewModel = {\r\n key: getAppointmentKey(geometry),\r\n appointment: itemData,\r\n geometry: _extends(_extends({}, geometry), {\r\n leftVirtualWidth: options.leftVirtualWidth,\r\n topVirtualHeight: options.topVirtualHeight\r\n }),\r\n info: _extends(_extends({}, options.info), {\r\n allDay: options.allDay,\r\n direction: options.direction,\r\n appointmentReduced: options.appointmentReduced,\r\n groupIndex: options.groupIndex\r\n })\r\n };\r\n return viewModel\r\n }\r\n getCompactViewModelFrame(compactViewModel) {\r\n return {\r\n isAllDay: !!compactViewModel.isAllDay,\r\n isCompact: compactViewModel.isCompact,\r\n groupIndex: compactViewModel.groupIndex,\r\n geometry: {\r\n left: compactViewModel.left,\r\n top: compactViewModel.top,\r\n width: compactViewModel.width,\r\n height: compactViewModel.height\r\n },\r\n items: {\r\n colors: [],\r\n data: [],\r\n settings: []\r\n }\r\n }\r\n }\r\n prepareCompactViewModels(compactOptions, supportAllDayRow) {\r\n var regularCompact = {};\r\n var allDayCompact = {};\r\n compactOptions.forEach(_ref2 => {\r\n var {\r\n compactViewModel: compactViewModel,\r\n appointmentViewModel: appointmentViewModel\r\n } = _ref2;\r\n var {\r\n index: index,\r\n isAllDay: isAllDay\r\n } = compactViewModel;\r\n var viewModel = isAllDay && supportAllDayRow ? allDayCompact : regularCompact;\r\n if (!viewModel[index]) {\r\n viewModel[index] = this.getCompactViewModelFrame(compactViewModel)\r\n }\r\n var {\r\n settings: settings,\r\n data: data,\r\n colors: colors\r\n } = viewModel[index].items;\r\n settings.push(appointmentViewModel);\r\n data.push(appointmentViewModel.appointment);\r\n colors.push(appointmentViewModel.info.resourceColor)\r\n });\r\n var toArray = items => Object.keys(items).map(key => _extends({\r\n key: key\r\n }, items[key]));\r\n var allDayViewModels = toArray(allDayCompact);\r\n var regularViewModels = toArray(regularCompact);\r\n return {\r\n allDayCompact: allDayViewModels,\r\n regularCompact: regularViewModels\r\n }\r\n }\r\n getRenderingStrategy() {\r\n return this.renderingStrategy\r\n }\r\n unshiftViewModelAppointmentsByViewOffset(viewModel, viewOffset) {\r\n var _a, _b;\r\n var processedAppointments = new Set;\r\n for (var model of viewModel) {\r\n for (var setting of null !== (_a = model.settings) && void 0 !== _a ? _a : []) {\r\n var appointment = null === (_b = null === setting || void 0 === setting ? void 0 : setting.info) || void 0 === _b ? void 0 : _b.appointment;\r\n if (appointment && !processedAppointments.has(appointment)) {\r\n appointment.startDate = dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]);\r\n appointment.endDate = dateUtilsTs.addOffsets(appointment.endDate, [viewOffset]);\r\n appointment.normalizedEndDate = dateUtilsTs.addOffsets(appointment.normalizedEndDate, [viewOffset]);\r\n processedAppointments.add(appointment)\r\n }\r\n }\r\n }\r\n return viewModel\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport VerticalRenderingStrategy from \"./m_strategy_vertical\";\r\nclass WeekAppointmentRenderingStrategy extends VerticalRenderingStrategy {\r\n isApplyCompactAppointmentOffset() {\r\n if (this.isAdaptive && 0 === this._getMaxAppointmentCountPerCellByType()) {\r\n return false\r\n }\r\n return this.supportCompactDropDownAppointments()\r\n }\r\n}\r\nexport default WeekAppointmentRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport {\r\n groupAppointmentsByResources\r\n} from \"../../resources/m_utils\";\r\nimport {\r\n getAppointmentTakesSeveralDays,\r\n replaceWrongEndDate\r\n} from \"../data_provider/m_utils\";\r\nimport BaseRenderingStrategy from \"./m_strategy_base\";\r\nclass AgendaRenderingStrategy extends BaseRenderingStrategy {\r\n get instance() {\r\n return this.options.instance\r\n }\r\n get agendaDuration() {\r\n return this.options.agendaDuration\r\n }\r\n getAppointmentMinSize() {}\r\n getDeltaTime() {}\r\n keepAppointmentSettings() {\r\n return true\r\n }\r\n getAppointmentGeometry(geometry) {\r\n return geometry\r\n }\r\n groupAppointmentByResources(appointments) {\r\n var groups = this.instance._getCurrentViewOption(\"groups\");\r\n var config = {\r\n loadedResources: this.options.loadedResources,\r\n resources: this.options.resources,\r\n dataAccessors: this.dataAccessors.resources\r\n };\r\n return groupAppointmentsByResources(config, appointments, groups)\r\n }\r\n createTaskPositionMap(appointments) {\r\n var height;\r\n var appointmentsByResources;\r\n this.calculateRows(appointments, this.agendaDuration, this.currentDate);\r\n if (appointments.length) {\r\n height = this.instance.fire(\"getAgendaVerticalStepHeight\");\r\n appointmentsByResources = this.groupAppointmentByResources(appointments);\r\n var groupedAppts = [];\r\n each(appointmentsByResources, (i, appts) => {\r\n var additionalAppointments = [];\r\n var recurrentIndexes = [];\r\n each(appts, (index, appointment) => {\r\n var recurrenceBatch = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index);\r\n var appointmentBatch = null;\r\n if (!recurrenceBatch.indexes.length) {\r\n appointmentBatch = this.instance.getAppointmentsInstance()._processLongAppointment(appointment);\r\n additionalAppointments = additionalAppointments.concat(appointmentBatch.parts)\r\n }\r\n additionalAppointments = additionalAppointments.concat(recurrenceBatch.parts);\r\n recurrentIndexes = recurrentIndexes.concat(recurrenceBatch.indexes)\r\n });\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(recurrentIndexes, appts);\r\n this.instance.getAppointmentsInstance()._combineAppointments(appts, additionalAppointments);\r\n groupedAppts = groupedAppts.concat(appts)\r\n });\r\n Array.prototype.splice.apply(appointments, [0, appointments.length].concat(groupedAppts))\r\n }\r\n var result = [];\r\n var sortedIndex = 0;\r\n appointments.forEach((appt, index) => {\r\n result.push([{\r\n height: height,\r\n width: \"100%\",\r\n sortedIndex: sortedIndex++,\r\n groupIndex: this._calculateGroupIndex(index, appointmentsByResources),\r\n agendaSettings: appt.settings\r\n }]);\r\n delete appt.settings\r\n });\r\n return result\r\n }\r\n _calculateGroupIndex(apptIndex, appointmentsByResources) {\r\n var resultInd;\r\n var counter = 0;\r\n for (var i in appointmentsByResources) {\r\n var countApptInGroup = appointmentsByResources[i].length;\r\n if (apptIndex >= counter && apptIndex < counter + countApptInGroup) {\r\n resultInd = Number(i);\r\n break\r\n }\r\n counter += countApptInGroup\r\n }\r\n return resultInd\r\n }\r\n _getDeltaWidth(args, initialSize) {}\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth\r\n }\r\n _needVerifyItemSize() {\r\n return false\r\n }\r\n _getAppointmentParts(geometry, settings) {}\r\n _reduceMultiWeekAppointment() {}\r\n calculateAppointmentHeight() {\r\n return 0\r\n }\r\n calculateAppointmentWidth() {\r\n return 0\r\n }\r\n isAppointmentGreaterThan(etalon, comparisonParameters) {}\r\n isAllDay() {\r\n return false\r\n }\r\n _sortCondition() {}\r\n _rowCondition(a, b) {}\r\n _columnCondition(a, b) {}\r\n _findIndexByKey(arr, iKey, jKey, iValue, jValue) {}\r\n _markAppointmentAsVirtual() {}\r\n getDropDownAppointmentWidth() {}\r\n getCollectorLeftOffset() {}\r\n getCollectorTopOffset() {}\r\n replaceWrongAppointmentEndDate(rawAppointment, startDate, endDate) {\r\n var adapter = createAppointmentAdapter(rawAppointment, this.dataAccessors, this.timeZoneCalculator);\r\n replaceWrongEndDate(adapter, startDate, endDate, this.cellDuration, this.dataAccessors)\r\n }\r\n calculateRows(appointments, agendaDuration, currentDate, needClearSettings) {\r\n this._rows = [];\r\n currentDate = dateUtils.trimTime(new Date(currentDate));\r\n var groupedAppointments = this.groupAppointmentByResources(appointments);\r\n each(groupedAppointments, (_, currentAppointments) => {\r\n var groupResult = [];\r\n var appts = {\r\n indexes: [],\r\n parts: []\r\n };\r\n if (!currentAppointments.length) {\r\n this._rows.push([]);\r\n return true\r\n }\r\n each(currentAppointments, (index, appointment) => {\r\n var startDate = ExpressionUtils.getField(this.dataAccessors, \"startDate\", appointment);\r\n var endDate = ExpressionUtils.getField(this.dataAccessors, \"endDate\", appointment);\r\n this.replaceWrongAppointmentEndDate(appointment, startDate, endDate);\r\n needClearSettings && delete appointment.settings;\r\n var result = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index, false);\r\n appts.parts = appts.parts.concat(result.parts);\r\n appts.indexes = appts.indexes.concat(result.indexes)\r\n });\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(appts.indexes, currentAppointments);\r\n currentAppointments.push(...appts.parts);\r\n var appointmentCount = currentAppointments.length;\r\n for (var i = 0; i < agendaDuration; i++) {\r\n var day = new Date(currentDate);\r\n day.setMilliseconds(day.getMilliseconds() + 864e5 * i);\r\n if (void 0 === groupResult[i]) {\r\n groupResult[i] = 0\r\n }\r\n for (var j = 0; j < appointmentCount; j++) {\r\n var appointmentData = currentAppointments[j].settings || currentAppointments[j];\r\n var adapter = createAppointmentAdapter(currentAppointments[j], this.dataAccessors, this.timeZoneCalculator);\r\n var appointmentIsLong = getAppointmentTakesSeveralDays(adapter);\r\n var appointmentIsRecurrence = ExpressionUtils.getField(this.dataAccessors, \"recurrenceRule\", currentAppointments[j]);\r\n if (this.instance.fire(\"dayHasAppointment\", day, appointmentData, true) || !appointmentIsRecurrence && appointmentIsLong && this.instance.fire(\"dayHasAppointment\", day, currentAppointments[j], true)) {\r\n groupResult[i] += 1\r\n }\r\n }\r\n }\r\n this._rows.push(groupResult)\r\n });\r\n return this._rows\r\n }\r\n _iterateRow(row, obj, index) {\r\n for (var i = 0; i < row.length; i++) {\r\n obj.counter += row[i];\r\n if (obj.counter >= index) {\r\n obj.indexInRow = i;\r\n break\r\n }\r\n }\r\n }\r\n getDateByIndex(index, rows, startViewDate) {\r\n var obj = {\r\n counter: 0,\r\n indexInRow: 0\r\n };\r\n index++;\r\n for (var i = 0; i < rows.length; i++) {\r\n this._iterateRow(rows[i], obj, index);\r\n if (obj.indexInRow) {\r\n break\r\n }\r\n }\r\n return new Date(new Date(startViewDate).setDate(startViewDate.getDate() + obj.indexInRow))\r\n }\r\n getAppointmentDataCalculator() {\r\n return ($appointment, originalStartDate) => {\r\n var apptIndex = $appointment.index();\r\n var startViewDate = this.instance.getStartViewDate();\r\n var calculatedStartDate = this.getDateByIndex(apptIndex, this._rows, startViewDate);\r\n var wrappedOriginalStartDate = new Date(originalStartDate);\r\n return {\r\n startDate: new Date(calculatedStartDate.setHours(wrappedOriginalStartDate.getHours(), wrappedOriginalStartDate.getMinutes(), wrappedOriginalStartDate.getSeconds(), wrappedOriginalStartDate.getMilliseconds()))\r\n }\r\n }\r\n }\r\n}\r\nexport default AgendaRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointments_layout_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n getAppointmentRenderingStrategyName\r\n} from \"../../renovation/ui/scheduler/model/utils\";\r\nimport {\r\n getCellDuration\r\n} from \"../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n AppointmentViewModelGenerator\r\n} from \"./appointments/m_view_model_generator\";\r\nimport {\r\n getGroupCount\r\n} from \"./resources/m_utils\";\r\nimport {\r\n getAllDayHeight,\r\n getCellHeight,\r\n getCellWidth\r\n} from \"./workspaces/helpers/m_position_helper\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass AppointmentLayoutManager {\r\n constructor(instance) {\r\n this.instance = instance;\r\n this.appointmentViewModel = new AppointmentViewModelGenerator\r\n }\r\n get appointmentRenderingStrategyName() {\r\n return getAppointmentRenderingStrategyName(this.instance.currentViewType)\r\n }\r\n getCellDimensions(options) {\r\n if (this.instance._workSpace) {\r\n return {\r\n width: this.instance._workSpace.getCellWidth(),\r\n height: this.instance._workSpace.getCellHeight(),\r\n allDayHeight: this.instance._workSpace.getAllDayHeight()\r\n }\r\n }\r\n return\r\n }\r\n _getRenderingStrategyOptions() {\r\n var workspace = this.instance.getWorkSpace();\r\n var {\r\n virtualScrollingDispatcher: virtualScrollingDispatcher\r\n } = this.instance.getWorkSpace();\r\n var {\r\n cellCountInsideLeftVirtualCell: cellCountInsideLeftVirtualCell,\r\n cellCountInsideTopVirtualRow: cellCountInsideTopVirtualRow\r\n } = virtualScrollingDispatcher;\r\n var groupCount = getGroupCount(this.instance.option(\"loadedResources\"));\r\n var DOMMetaData = workspace.getDOMElementsMetaData();\r\n var allDayHeight = getAllDayHeight(workspace.option(\"showAllDayPanel\"), workspace._isVerticalGroupedWorkSpace(), DOMMetaData);\r\n var rowCount = workspace._getRowCount();\r\n var {\r\n positionHelper: positionHelper,\r\n viewDataProvider: viewDataProvider\r\n } = workspace;\r\n var visibleDayDuration = viewDataProvider.getVisibleDayDuration(workspace.option(\"startDayHour\"), workspace.option(\"endDayHour\"), workspace.option(\"hoursInterval\"));\r\n var cellDuration = getCellDuration(workspace.type, workspace.option(\"startDayHour\"), workspace.option(\"endDayHour\"), workspace.option(\"hoursInterval\"));\r\n return {\r\n resources: this.instance.option(\"resources\"),\r\n loadedResources: this.instance.option(\"loadedResources\"),\r\n getAppointmentColor: this.instance.createGetAppointmentColor(),\r\n dataAccessors: this.instance._dataAccessors,\r\n isRenovatedAppointments: this.instance.option(\"isRenovatedAppointments\"),\r\n appointmentRenderingStrategyName: this.appointmentRenderingStrategyName,\r\n adaptivityEnabled: this.instance.option(\"adaptivityEnabled\"),\r\n rtlEnabled: this.instance.option(\"rtlEnabled\"),\r\n startDayHour: this.instance._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this.instance._getCurrentViewOption(\"endDayHour\"),\r\n viewOffset: this.instance._getCurrentViewOption(\"offset\") * toMs(\"minute\"),\r\n maxAppointmentsPerCell: this.instance._getCurrentViewOption(\"maxAppointmentsPerCell\"),\r\n currentDate: this.instance.option(\"currentDate\"),\r\n isVirtualScrolling: this.instance.isVirtualScrolling(),\r\n leftVirtualCellCount: cellCountInsideLeftVirtualCell,\r\n topVirtualCellCount: cellCountInsideTopVirtualRow,\r\n intervalCount: workspace.option(\"intervalCount\"),\r\n hoursInterval: workspace.option(\"hoursInterval\"),\r\n showAllDayPanel: workspace.option(\"showAllDayPanel\"),\r\n isGroupedAllDayPanel: workspace.isGroupedAllDayPanel(),\r\n groups: this.instance._getCurrentViewOption(\"groups\"),\r\n groupCount: groupCount,\r\n rowCount: rowCount,\r\n appointmentCountPerCell: this.instance.option(\"_appointmentCountPerCell\"),\r\n appointmentOffset: this.instance.option(\"_appointmentOffset\"),\r\n allowResizing: this.instance._allowResizing(),\r\n allowAllDayResizing: this.instance._allowAllDayResizing(),\r\n startViewDate: workspace.getStartViewDate(),\r\n groupOrientation: workspace._getRealGroupOrientation(),\r\n cellWidth: getCellWidth(DOMMetaData),\r\n cellHeight: getCellHeight(DOMMetaData),\r\n allDayHeight: allDayHeight,\r\n resizableStep: positionHelper.getResizableStep(),\r\n visibleDayDuration: visibleDayDuration,\r\n allDayPanelMode: this.instance._getCurrentViewOption(\"allDayPanelMode\"),\r\n timeZoneCalculator: this.instance.timeZoneCalculator,\r\n timeZone: this.instance.option(\"timeZone\"),\r\n firstDayOfWeek: this.instance.getFirstDayOfWeek(),\r\n viewStartDayHour: this.instance._getCurrentViewOption(\"startDayHour\"),\r\n viewEndDayHour: this.instance._getCurrentViewOption(\"endDayHour\"),\r\n viewType: workspace.type,\r\n endViewDate: workspace.getEndViewDate(),\r\n positionHelper: positionHelper,\r\n isGroupedByDate: workspace.isGroupedByDate(),\r\n cellDuration: cellDuration,\r\n cellDurationInMinutes: workspace.option(\"cellDuration\"),\r\n viewDataProvider: workspace.viewDataProvider,\r\n supportAllDayRow: workspace.supportAllDayRow(),\r\n dateRange: workspace.getDateRange(),\r\n intervalDuration: workspace.getIntervalDuration(),\r\n allDayIntervalDuration: workspace.getIntervalDuration(true),\r\n isVerticalGroupOrientation: workspace.isVerticalOrientation(),\r\n DOMMetaData: DOMMetaData,\r\n instance: this.instance,\r\n agendaDuration: workspace.option(\"agendaDuration\")\r\n }\r\n }\r\n createAppointmentsMap(items) {\r\n var renderingStrategyOptions = this._getRenderingStrategyOptions();\r\n var {\r\n viewModel: viewModel,\r\n positionMap: positionMap\r\n } = this.appointmentViewModel.generate(items, renderingStrategyOptions);\r\n this._positionMap = positionMap;\r\n return viewModel\r\n }\r\n _isDataChanged(data) {\r\n var {\r\n appointmentDataProvider: appointmentDataProvider\r\n } = this.instance;\r\n var updatedData = appointmentDataProvider.getUpdatedAppointment();\r\n return updatedData === data || appointmentDataProvider.getUpdatedAppointmentKeys().some(item => data[item.key] === item.value)\r\n }\r\n _isAppointmentShouldAppear(currentAppointment, sourceAppointment) {\r\n return currentAppointment.needRepaint && sourceAppointment.needRemove\r\n }\r\n _isSettingChanged(settings, sourceSetting) {\r\n if (settings.length !== sourceSetting.length) {\r\n return true\r\n }\r\n var createSettingsToCompare = (settings, index) => {\r\n var currentSetting = settings[index];\r\n var leftVirtualCellCount = currentSetting.leftVirtualCellCount || 0;\r\n var topVirtualCellCount = currentSetting.topVirtualCellCount || 0;\r\n var columnIndex = currentSetting.columnIndex + leftVirtualCellCount;\r\n var rowIndex = currentSetting.rowIndex + topVirtualCellCount;\r\n var hMax = currentSetting.reduced ? currentSetting.hMax : void 0;\r\n var vMax = currentSetting.reduced ? currentSetting.vMax : void 0;\r\n return _extends(_extends({}, currentSetting), {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n positionByMap: void 0,\r\n topVirtualCellCount: void 0,\r\n leftVirtualCellCount: void 0,\r\n leftVirtualWidth: void 0,\r\n topVirtualHeight: void 0,\r\n hMax: hMax,\r\n vMax: vMax,\r\n info: {}\r\n })\r\n };\r\n for (var i = 0; i < settings.length; i++) {\r\n var newSettings = createSettingsToCompare(settings, i);\r\n var oldSettings = createSettingsToCompare(sourceSetting, i);\r\n if (oldSettings) {\r\n oldSettings.sortedIndex = newSettings.sortedIndex\r\n }\r\n if (!equalByValue(newSettings, oldSettings)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _getAssociatedSourceAppointment(currentAppointment, sourceAppointments) {\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var item = sourceAppointments[i];\r\n if (item.itemData === currentAppointment.itemData) {\r\n return item\r\n }\r\n }\r\n return null\r\n }\r\n _getDeletedAppointments(currentAppointments, sourceAppointments) {\r\n var result = [];\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var sourceAppointment = sourceAppointments[i];\r\n var currentAppointment = this._getAssociatedSourceAppointment(sourceAppointment, currentAppointments);\r\n if (!currentAppointment) {\r\n sourceAppointment.needRemove = true;\r\n result.push(sourceAppointment)\r\n }\r\n }\r\n return result\r\n }\r\n getRepaintedAppointments(currentAppointments, sourceAppointments) {\r\n if (0 === sourceAppointments.length || \"agenda\" === this.appointmentRenderingStrategyName) {\r\n return currentAppointments\r\n }\r\n currentAppointments.forEach(appointment => {\r\n var sourceAppointment = this._getAssociatedSourceAppointment(appointment, sourceAppointments);\r\n if (sourceAppointment) {\r\n var isDataChanged = this._isDataChanged(appointment.itemData);\r\n var isSettingChanged = this._isSettingChanged(appointment.settings, sourceAppointment.settings);\r\n var isAppointmentShouldAppear = this._isAppointmentShouldAppear(appointment, sourceAppointment);\r\n appointment.needRepaint = isDataChanged || isSettingChanged || isAppointmentShouldAppear\r\n }\r\n });\r\n return currentAppointments.concat(this._getDeletedAppointments(currentAppointments, sourceAppointments))\r\n }\r\n getRenderingStrategyInstance() {\r\n var renderingStrategy = this.appointmentViewModel.getRenderingStrategy();\r\n if (!renderingStrategy) {\r\n var options = this._getRenderingStrategyOptions();\r\n this.appointmentViewModel.initRenderingStrategy(options)\r\n }\r\n return this.appointmentViewModel.getRenderingStrategy()\r\n }\r\n}\r\nexport default AppointmentLayoutManager;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_data_structures.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class AppointmentTooltipInfo {\r\n constructor(appointment) {\r\n var targetedAppointment = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;\r\n var color = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\r\n var settings = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : [];\r\n this.appointment = appointment;\r\n this.targetedAppointment = targetedAppointment;\r\n this.color = color;\r\n this.settings = settings\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_compact_appointments_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n getOverflowIndicatorColor\r\n} from \"../../renovation/ui/scheduler/appointment/overflow_indicator/utils\";\r\nimport Button from \"../../ui/button\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport {\r\n LIST_ITEM_CLASS,\r\n LIST_ITEM_DATA_KEY\r\n} from \"./m_constants\";\r\nimport {\r\n AppointmentTooltipInfo\r\n} from \"./m_data_structures\";\r\nvar APPOINTMENT_COLLECTOR_CLASS = \"dx-scheduler-appointment-collector\";\r\nvar COMPACT_APPOINTMENT_COLLECTOR_CLASS = \"\".concat(APPOINTMENT_COLLECTOR_CLASS, \"-compact\");\r\nvar APPOINTMENT_COLLECTOR_CONTENT_CLASS = \"\".concat(APPOINTMENT_COLLECTOR_CLASS, \"-content\");\r\nvar WEEK_VIEW_COLLECTOR_OFFSET = 5;\r\nvar COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET = 1;\r\nexport class CompactAppointmentsHelper {\r\n constructor(instance) {\r\n this.instance = instance;\r\n this.elements = []\r\n }\r\n render(options) {\r\n var {\r\n isCompact: isCompact,\r\n items: items,\r\n buttonColor: buttonColor\r\n } = options;\r\n var template = this._createTemplate(items.data.length, isCompact);\r\n var button = this._createCompactButton(template, options);\r\n var $button = button.$element();\r\n this._makeBackgroundColor($button, items.colors, buttonColor);\r\n this._makeBackgroundDarker($button);\r\n this.elements.push($button);\r\n $button.data(\"items\", this._createTooltipInfos(items));\r\n return $button\r\n }\r\n clear() {\r\n this.elements.forEach(button => {\r\n button.detach();\r\n button.remove()\r\n });\r\n this.elements = []\r\n }\r\n _createTooltipInfos(items) {\r\n return items.data.map((appointment, index) => {\r\n var _a;\r\n var targetedAdapter = createAppointmentAdapter(appointment, this.instance._dataAccessors, this.instance.timeZoneCalculator).clone();\r\n if ((null === (_a = items.settings) || void 0 === _a ? void 0 : _a.length) > 0) {\r\n var {\r\n info: info\r\n } = items.settings[index];\r\n targetedAdapter.startDate = info.sourceAppointment.startDate;\r\n targetedAdapter.endDate = info.sourceAppointment.endDate\r\n }\r\n return new AppointmentTooltipInfo(appointment, targetedAdapter.source(), items.colors[index], items.settings[index])\r\n })\r\n }\r\n _onButtonClick(e, options) {\r\n var $button = $(e.element);\r\n this.instance.showAppointmentTooltipCore($button, $button.data(\"items\"), this._getExtraOptionsForTooltip(options, $button))\r\n }\r\n _getExtraOptionsForTooltip(options, $appointmentCollector) {\r\n return {\r\n clickEvent: this._clickEvent(options.onAppointmentClick).bind(this),\r\n dragBehavior: options.allowDrag && this._createTooltipDragBehavior($appointmentCollector).bind(this),\r\n dropDownAppointmentTemplate: this.instance.option().dropDownAppointmentTemplate,\r\n isButtonClick: true\r\n }\r\n }\r\n _clickEvent(onAppointmentClick) {\r\n return e => {\r\n var clickEventArgs = this.instance._createEventArgs(e);\r\n onAppointmentClick(clickEventArgs)\r\n }\r\n }\r\n _createTooltipDragBehavior($appointmentCollector) {\r\n return e => {\r\n var $element = $(e.element);\r\n var $schedulerElement = $(this.instance.element());\r\n var workSpace = this.instance.getWorkSpace();\r\n var initialPosition = locate($appointmentCollector);\r\n var options = {\r\n filter: \".\".concat(LIST_ITEM_CLASS),\r\n isSetCursorOffset: true,\r\n initialPosition: initialPosition,\r\n getItemData: itemElement => {\r\n var _a;\r\n return null === (_a = $(itemElement).data(LIST_ITEM_DATA_KEY)) || void 0 === _a ? void 0 : _a.appointment\r\n },\r\n getItemSettings: (_, event) => event.itemSettings\r\n };\r\n workSpace._createDragBehaviorBase($element, $schedulerElement, options)\r\n }\r\n }\r\n _getCollectorOffset(width, cellWidth) {\r\n return cellWidth - width - this._getCollectorRightOffset()\r\n }\r\n _getCollectorRightOffset() {\r\n return this.instance.getRenderingStrategyInstance()._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET\r\n }\r\n _makeBackgroundDarker(button) {\r\n button.css(\"boxShadow\", \"inset \".concat(getBoundingRect(button.get(0)).width, \"px 0 0 0 rgba(0, 0, 0, 0.3)\"))\r\n }\r\n _makeBackgroundColor($button, colors, color) {\r\n when.apply(null, colors).done(function() {\r\n this._makeBackgroundColorCore($button, color, [...arguments])\r\n }.bind(this))\r\n }\r\n _makeBackgroundColorCore($button, color, itemColors) {\r\n color && color.done(color => {\r\n var backgroundColor = getOverflowIndicatorColor(color, itemColors);\r\n if (backgroundColor) {\r\n $button.css(\"backgroundColor\", backgroundColor)\r\n }\r\n })\r\n }\r\n _setPosition(element, position) {\r\n move(element, {\r\n top: position.top,\r\n left: position.left\r\n })\r\n }\r\n _createCompactButton(template, options) {\r\n var $button = this._createCompactButtonElement(options);\r\n return this.instance._createComponent($button, Button, {\r\n type: \"default\",\r\n width: options.width,\r\n height: options.height,\r\n onClick: e => this._onButtonClick(e, options),\r\n template: this._renderTemplate(template, options.items, options.isCompact)\r\n })\r\n }\r\n _createCompactButtonElement(_ref) {\r\n var {\r\n isCompact: isCompact,\r\n $container: $container,\r\n coordinates: coordinates\r\n } = _ref;\r\n var result = $(\"<div>\").addClass(APPOINTMENT_COLLECTOR_CLASS).toggleClass(COMPACT_APPOINTMENT_COLLECTOR_CLASS, isCompact).appendTo($container);\r\n this._setPosition(result, coordinates);\r\n return result\r\n }\r\n _renderTemplate(template, items, isCompact) {\r\n return new FunctionTemplate(options => template.render({\r\n model: {\r\n appointmentCount: items.data.length,\r\n isCompact: isCompact\r\n },\r\n container: options.container\r\n }))\r\n }\r\n _createTemplate(count, isCompact) {\r\n this._initButtonTemplate(count, isCompact);\r\n return this.instance._getAppointmentTemplate(\"appointmentCollectorTemplate\")\r\n }\r\n _initButtonTemplate(count, isCompact) {\r\n this.instance._templateManager.addDefaultTemplates({\r\n appointmentCollector: new FunctionTemplate(options => this._createButtonTemplate(count, $(options.container), isCompact))\r\n })\r\n }\r\n _createButtonTemplate(appointmentCount, element, isCompact) {\r\n var text = isCompact ? appointmentCount : messageLocalization.getFormatter(\"dxScheduler-moreAppointments\")(appointmentCount);\r\n return element.append($(\"<span>\").text(text)).addClass(APPOINTMENT_COLLECTOR_CONTENT_CLASS)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_subscribes.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n formatDates,\r\n getFormatType\r\n} from \"./appointments/m_text_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport {\r\n AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS\r\n} from \"./m_classes\";\r\nimport {\r\n utils\r\n} from \"./m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar subscribes = {\r\n isCurrentViewAgenda() {\r\n return \"agenda\" === this.currentViewType\r\n },\r\n currentViewUpdated(currentView) {\r\n this.option(\"currentView\", currentView)\r\n },\r\n currentDateUpdated(date) {\r\n this.option(\"currentDate\", date)\r\n },\r\n getOption(name) {\r\n return this.option(name)\r\n },\r\n getWorkspaceOption(name) {\r\n return this.getWorkSpace().option(name)\r\n },\r\n isVirtualScrolling() {\r\n return this.isVirtualScrolling()\r\n },\r\n setCellDataCacheAlias(appointment, geometry) {\r\n this._workSpace.setCellDataCacheAlias(appointment, geometry)\r\n },\r\n isGroupedByDate() {\r\n return this.getWorkSpace().isGroupedByDate()\r\n },\r\n showAppointmentTooltip(options) {\r\n var targetedAppointment = this.getTargetedAppointment(options.data, options.target);\r\n this.showAppointmentTooltip(options.data, options.target, targetedAppointment)\r\n },\r\n hideAppointmentTooltip() {\r\n this.hideAppointmentTooltip()\r\n },\r\n showEditAppointmentPopup(options) {\r\n var targetedData = this.getTargetedAppointment(options.data, options.target);\r\n this.showAppointmentPopup(options.data, false, targetedData)\r\n },\r\n updateAppointmentAfterResize(options) {\r\n var info = utils.dataAccessors.getAppointmentInfo(options.$appointment);\r\n var {\r\n exceptionDate: exceptionDate\r\n } = info.sourceAppointment;\r\n this._checkRecurringAppointment(options.target, options.data, exceptionDate, () => {\r\n this._updateAppointment(options.target, options.data, (function() {\r\n this._appointments.moveAppointmentBack()\r\n }))\r\n })\r\n },\r\n getUpdatedData(rawAppointment) {\r\n return this._getUpdatedData(rawAppointment)\r\n },\r\n updateAppointmentAfterDrag(_ref) {\r\n var {\r\n event: event,\r\n element: element,\r\n rawAppointment: rawAppointment,\r\n newCellIndex: newCellIndex,\r\n oldCellIndex: oldCellIndex\r\n } = _ref;\r\n var info = utils.dataAccessors.getAppointmentInfo(element);\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAppointment = createAppointmentAdapter(extend({}, rawAppointment, this._getUpdatedData(rawAppointment)), this._dataAccessors, this.timeZoneCalculator);\r\n var targetedRawAppointment = targetedAppointment.source();\r\n var becomeAllDay = targetedAppointment.allDay;\r\n var wasAllDay = appointment.allDay;\r\n var movedBetweenAllDayAndSimple = this._workSpace.supportAllDayRow() && (wasAllDay && !becomeAllDay || !wasAllDay && becomeAllDay);\r\n var isDragAndDropBetweenComponents = event.fromComponent !== event.toComponent;\r\n if (-1 === newCellIndex) {\r\n if (!isDragAndDropBetweenComponents) {\r\n this._appointments.moveAppointmentBack(event)\r\n }\r\n return\r\n }\r\n if (newCellIndex !== oldCellIndex || isDragAndDropBetweenComponents || movedBetweenAllDayAndSimple) {\r\n this._checkRecurringAppointment(rawAppointment, targetedRawAppointment, info.sourceAppointment.exceptionDate, () => {\r\n this._updateAppointment(rawAppointment, targetedRawAppointment, (function() {\r\n this._appointments.moveAppointmentBack(event)\r\n }), event)\r\n }, void 0, void 0, event)\r\n } else {\r\n this._appointments.moveAppointmentBack(event)\r\n }\r\n },\r\n onDeleteButtonPress(options) {\r\n var targetedData = this.getTargetedAppointment(options.data, $(options.target));\r\n this.checkAndDeleteAppointment(options.data, targetedData);\r\n this.hideAppointmentTooltip()\r\n },\r\n getTextAndFormatDate(appointmentRaw, targetedAppointmentRaw, format) {\r\n var appointmentAdapter = createAppointmentAdapter(appointmentRaw, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAdapter = createAppointmentAdapter(targetedAppointmentRaw || appointmentRaw, this._dataAccessors, this.timeZoneCalculator);\r\n var startDate = this.timeZoneCalculator.createDate(targetedAdapter.startDate, {\r\n path: \"toGrid\"\r\n });\r\n var endDate = this.timeZoneCalculator.createDate(targetedAdapter.endDate, {\r\n path: \"toGrid\"\r\n });\r\n var formatType = format || getFormatType(startDate, endDate, targetedAdapter.allDay, \"month\" !== this.currentViewType);\r\n return {\r\n text: targetedAdapter.text || appointmentAdapter.text,\r\n formatDate: formatDates(startDate, endDate, formatType)\r\n }\r\n },\r\n _createAppointmentTitle(data) {\r\n if (isPlainObject(data)) {\r\n return data.text\r\n }\r\n return String(data)\r\n },\r\n getResizableAppointmentArea(options) {\r\n var {\r\n allDay: allDay\r\n } = options;\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (groups && groups.length) {\r\n if (allDay || this.getLayoutManager().getRenderingStrategyInstance()._needHorizontalGroupBounds()) {\r\n var horizontalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: horizontalGroupBounds.left,\r\n right: horizontalGroupBounds.right,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n if (this.getLayoutManager().getRenderingStrategyInstance()._needVerticalGroupBounds(allDay) && this._workSpace._isVerticalGroupedWorkSpace()) {\r\n var verticalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: 0,\r\n right: 0,\r\n top: verticalGroupBounds.top,\r\n bottom: verticalGroupBounds.bottom\r\n }\r\n }\r\n }\r\n return\r\n },\r\n needRecalculateResizableArea() {\r\n return this.getWorkSpace().needRecalculateResizableArea()\r\n },\r\n getAppointmentGeometry(settings) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getAppointmentGeometry(settings)\r\n },\r\n isAllDay(appointmentData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().isAllDay(appointmentData)\r\n },\r\n getDeltaTime(e, initialSize, itemData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDeltaTime(e, initialSize, itemData)\r\n },\r\n getDropDownAppointmentWidth(isAllDay) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentWidth(this._getViewCountConfig().intervalCount, isAllDay)\r\n },\r\n getDropDownAppointmentHeight() {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentHeight()\r\n },\r\n getCellWidth() {\r\n return this.getWorkSpace().getCellWidth()\r\n },\r\n getCellHeight() {\r\n return this.getWorkSpace().getCellHeight()\r\n },\r\n getMaxAppointmentCountPerCellByType(isAllDay) {\r\n return this.getRenderingStrategyInstance()._getMaxAppointmentCountPerCellByType(isAllDay)\r\n },\r\n needCorrectAppointmentDates() {\r\n return this.getRenderingStrategyInstance().needCorrectAppointmentDates()\r\n },\r\n getRenderingStrategyDirection() {\r\n return this.getRenderingStrategyInstance().getDirection()\r\n },\r\n updateAppointmentEndDate(options) {\r\n var {\r\n endDate: endDate\r\n } = options;\r\n var endDayHour = this._getCurrentViewOption(\"endDayHour\");\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n var updatedEndDate = endDate;\r\n if (endDate.getHours() >= endDayHour) {\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n } else if (!options.isSameDate && startDayHour > 0 && 60 * endDate.getHours() + endDate.getMinutes() < 60 * startDayHour) {\r\n updatedEndDate = new Date(updatedEndDate.getTime() - toMs(\"day\"));\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n }\r\n return updatedEndDate\r\n },\r\n renderCompactAppointments(options) {\r\n this._compactAppointmentsHelper.render(options)\r\n },\r\n clearCompactAppointments() {\r\n this._compactAppointmentsHelper.clear()\r\n },\r\n supportCompactDropDownAppointments() {\r\n return this.getLayoutManager().getRenderingStrategyInstance().supportCompactDropDownAppointments()\r\n },\r\n getGroupCount() {\r\n return this._workSpace._getGroupCount()\r\n },\r\n mapAppointmentFields(config) {\r\n var {\r\n itemData: itemData,\r\n itemElement: itemElement,\r\n targetedAppointment: targetedAppointment\r\n } = config;\r\n var targetedData = targetedAppointment || this.getTargetedAppointment(itemData, itemElement);\r\n return {\r\n appointmentData: config.itemData,\r\n appointmentElement: config.itemElement,\r\n targetedAppointmentData: targetedData\r\n }\r\n },\r\n dayHasAppointment(day, appointment, trimTime) {\r\n return this.dayHasAppointment(day, appointment, trimTime)\r\n },\r\n getLayoutManager() {\r\n return this._layoutManager\r\n },\r\n getAgendaVerticalStepHeight() {\r\n return this.getWorkSpace().getAgendaVerticalStepHeight()\r\n },\r\n getAgendaDuration() {\r\n return this._getCurrentViewOption(\"agendaDuration\")\r\n },\r\n getStartViewDate() {\r\n return this.getStartViewDate()\r\n },\r\n getEndViewDate() {\r\n return this.getEndViewDate()\r\n },\r\n forceMaxAppointmentPerCell() {\r\n return this.forceMaxAppointmentPerCell()\r\n },\r\n onAgendaReady(rows) {\r\n var $appts = this.getAppointmentsInstance()._itemElements();\r\n var total = 0;\r\n var applyClass = function(_, count) {\r\n var index = count + total - 1;\r\n $appts.eq(index).addClass(AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS);\r\n total += count\r\n };\r\n for (var i = 0; i < rows.length; i++) {\r\n each(rows[i], applyClass)\r\n }\r\n },\r\n getTimezone() {\r\n return this._getTimezoneOffsetByOption()\r\n },\r\n getTargetedAppointmentData(appointment, element) {\r\n return this.getTargetedAppointment(appointment, element)\r\n },\r\n getEndDayHour() {\r\n return this._workSpace.option(\"endDayHour\") || this.option(\"endDayHour\")\r\n },\r\n getStartDayHour() {\r\n return this._workSpace.option(\"startDayHour\") || this.option(\"startDayHour\")\r\n },\r\n getViewOffsetMs() {\r\n return this.getViewOffsetMs()\r\n },\r\n isAdaptive() {\r\n return this.option(\"adaptivityEnabled\")\r\n },\r\n removeDroppableCellClass() {\r\n this._workSpace.removeDroppableCellClass()\r\n }\r\n};\r\nexport default subscribes;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/common/validation_functions.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var isInteger = value => Number.isInteger(value);\r\nexport var greaterThan = function(value, minimalValue) {\r\n var strict = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n return strict ? value > minimalValue : value >= minimalValue\r\n};\r\nexport var lessThan = function(value, maximalValue) {\r\n var strict = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n return strict ? value < maximalValue : value <= maximalValue\r\n};\r\nexport var inRange = (value, _ref) => {\r\n var [from, to] = _ref;\r\n return value >= from && value <= to\r\n};\r\nexport var divisibleBy = (value, divider) => value % divider === 0;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class Validator {\r\n constructor(valueSelector, rules) {\r\n this.valueSelector = valueSelector;\r\n this.rules = rules\r\n }\r\n validate(options) {\r\n var value = this.valueSelector(options);\r\n var errors = this.rules.reduce((result, rule) => {\r\n var validationResult = rule(value);\r\n if (true !== validationResult) {\r\n result[rule.name] = validationResult\r\n }\r\n return result\r\n }, {});\r\n return Object.keys(errors).length ? errors : true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/validator_rules.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var createValidatorRule = (name, ruleFunc) => {\r\n Object.defineProperty(ruleFunc, \"name\", {\r\n value: name,\r\n writable: false\r\n });\r\n return ruleFunc\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/common/validator_rules.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createValidatorRule\r\n} from \"../core/index\";\r\nimport {\r\n divisibleBy,\r\n greaterThan,\r\n inRange,\r\n isInteger,\r\n lessThan\r\n} from \"./validation_functions\";\r\nexport var mustBeInteger = createValidatorRule(\"mustBeInteger\", value => isInteger(value) || \"\".concat(value, \" must be an integer.\"));\r\nexport var mustBeGreaterThan = function(minimalValue) {\r\n var strict = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n return createValidatorRule(\"mustBeGreaterThan\", value => greaterThan(value, minimalValue, strict) || \"\".concat(value, \" must be \").concat(strict ? \">\" : \">=\", \" than \").concat(minimalValue, \".\"))\r\n};\r\nexport var mustBeLessThan = function(maximalValue) {\r\n var strict = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n return createValidatorRule(\"mustBeLessThan\", value => lessThan(value, maximalValue, strict) || \"\".concat(value, \" must be \").concat(strict ? \"<\" : \"<=\", \" than \").concat(maximalValue, \".\"))\r\n};\r\nexport var mustBeInRange = range => createValidatorRule(\"mustBeInRange\", value => inRange(value, range) || \"\".concat(value, \" must be in range [\").concat(range[0], \", \").concat(range[1], \"].\"));\r\nexport var mustBeDivisibleBy = divider => createValidatorRule(\"mustBeDivisibleBy\", value => divisibleBy(value, divider) || \"\".concat(value, \" must be divisible by \").concat(divider, \".\"));\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/validator_rules.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n divisibleBy,\r\n greaterThan,\r\n lessThan\r\n} from \"./common/index\";\r\nimport {\r\n createValidatorRule\r\n} from \"./core/index\";\r\nexport var endDayHourMustBeGreaterThanStartDayHour = createValidatorRule(\"endDayHourGreaterThanStartDayHour\", _ref => {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref;\r\n return greaterThan(endDayHour, startDayHour) || \"endDayHour: \".concat(endDayHour, \" must be greater that startDayHour: \").concat(startDayHour, \".\")\r\n});\r\nexport var visibleIntervalMustBeDivisibleByCellDuration = createValidatorRule(\"visibleIntervalMustBeDivisibleByCellDuration\", _ref2 => {\r\n var {\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref2;\r\n var visibleInterval = 60 * (endDayHour - startDayHour);\r\n return divisibleBy(visibleInterval, cellDuration) || \"endDayHour - startDayHour: \".concat(visibleInterval, \" (minutes), must be divisible by cellDuration: \").concat(cellDuration, \" (minutes).\")\r\n});\r\nexport var cellDurationMustBeLessThanVisibleInterval = createValidatorRule(\"cellDurationMustBeLessThanVisibleInterval\", _ref3 => {\r\n var {\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref3;\r\n var visibleInterval = 60 * (endDayHour - startDayHour);\r\n return lessThan(cellDuration, visibleInterval, false) || \"endDayHour - startDayHour: \".concat(visibleInterval, \" (minutes), must be greater or equal the cellDuration: \").concat(cellDuration, \" (minutes).\")\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/options_validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n mustBeDivisibleBy,\r\n mustBeGreaterThan,\r\n mustBeInRange,\r\n mustBeInteger\r\n} from \"./common/index\";\r\nimport {\r\n OptionsValidator,\r\n Validator\r\n} from \"./core/index\";\r\nimport {\r\n cellDurationMustBeLessThanVisibleInterval,\r\n endDayHourMustBeGreaterThanStartDayHour,\r\n visibleIntervalMustBeDivisibleByCellDuration\r\n} from \"./validator_rules\";\r\nexport class SchedulerOptionsValidator extends OptionsValidator {\r\n constructor() {\r\n super({\r\n startDayHour: new Validator(_ref => {\r\n var {\r\n startDayHour: startDayHour\r\n } = _ref;\r\n return startDayHour\r\n }, [mustBeInteger, mustBeInRange([0, 24])]),\r\n endDayHour: new Validator(_ref2 => {\r\n var {\r\n endDayHour: endDayHour\r\n } = _ref2;\r\n return endDayHour\r\n }, [mustBeInteger, mustBeInRange([0, 24])]),\r\n offset: new Validator(_ref3 => {\r\n var {\r\n offset: offset\r\n } = _ref3;\r\n return offset\r\n }, [mustBeInteger, mustBeInRange([-1440, 1440]), mustBeDivisibleBy(5)]),\r\n cellDuration: new Validator(_ref4 => {\r\n var {\r\n cellDuration: cellDuration\r\n } = _ref4;\r\n return cellDuration\r\n }, [mustBeInteger, mustBeGreaterThan(0)]),\r\n startDayHourAndEndDayHour: new Validator(options => options, [endDayHourMustBeGreaterThanStartDayHour]),\r\n cellDurationAndVisibleInterval: new Validator(options => options, [visibleIntervalMustBeDivisibleByCellDuration, cellDurationMustBeLessThanVisibleInterval])\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/options_validator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class OptionsValidator {\r\n constructor(validators) {\r\n this.validators = validators\r\n }\r\n validate(options) {\r\n var errors = Object.entries(this.validators).reduce((result, _ref) => {\r\n var [validatorName, validator] = _ref;\r\n var validatorResult = validator.validate(options);\r\n if (true !== validatorResult) {\r\n result[validatorName] = validatorResult\r\n }\r\n return result\r\n }, {});\r\n return Object.keys(errors).length > 0 ? errors : true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/options_validator_errors_handler.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n OptionsValidatorErrorHandler\r\n} from \"./core/index\";\r\nvar GLOBAL_ERROR_HANDLER = {\r\n logError: errorCode => {\r\n errors.log(errorCode)\r\n },\r\n throwError: errorCode => {\r\n throw errors.Error(errorCode)\r\n }\r\n};\r\nexport class SchedulerOptionsValidatorErrorsHandler extends OptionsValidatorErrorHandler {\r\n constructor() {\r\n super({\r\n startDayHour: \"E1058\",\r\n endDayHour: \"E1058\",\r\n startDayHourAndEndDayHour: \"E1058\",\r\n offset: \"E1061\",\r\n cellDuration: \"E1062\",\r\n cellDurationAndVisibleInterval: \"E1062\"\r\n }, GLOBAL_ERROR_HANDLER)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/options_validator_error_handler.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class OptionsValidatorErrorHandler {\r\n constructor(validatorNameToErrorCodeMap, globalErrorHandler) {\r\n this.validatorNameToErrorCodeMap = validatorNameToErrorCodeMap;\r\n this.globalErrorHandler = globalErrorHandler\r\n }\r\n handleValidationResult(optionsValidatorResult) {\r\n if (true === optionsValidatorResult) {\r\n return\r\n }\r\n var uniqErrorCodes = Object.keys(optionsValidatorResult).reduce((set, validatorName) => {\r\n var errorCode = this.validatorNameToErrorCodeMap[validatorName];\r\n if (errorCode) {\r\n set.add(errorCode)\r\n }\r\n return set\r\n }, new Set);\r\n var errorCodeArray = [...uniqErrorCodes];\r\n errorCodeArray.forEach((errorCode, idx) => {\r\n var isLastErrorCode = idx === errorCodeArray.length - 1;\r\n if (!isLastErrorCode) {\r\n this.globalErrorHandler.logError(errorCode)\r\n } else {\r\n this.globalErrorHandler.throwError(errorCode)\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/resources/m_agenda_resource_processor.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n wrapToArray\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n getDisplayExpr,\r\n getFieldExpr,\r\n getValueExpr,\r\n getWrappedDataSource\r\n} from \"./m_utils\";\r\nclass PromiseItem {\r\n constructor(rawAppointment, promise) {\r\n this.rawAppointment = rawAppointment;\r\n this.promise = promise\r\n }\r\n}\r\nexport class AgendaResourceProcessor {\r\n constructor() {\r\n var resourceDeclarations = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n this._resourceDeclarations = resourceDeclarations;\r\n this.isLoaded = false;\r\n this.isLoading = false;\r\n this.resourceMap = new Map;\r\n this.appointmentPromiseQueue = []\r\n }\r\n get resourceDeclarations() {\r\n return this._resourceDeclarations\r\n }\r\n set resourceDeclarations(value) {\r\n this._resourceDeclarations = value;\r\n this.isLoaded = false;\r\n this.isLoading = false;\r\n this.resourceMap.clear();\r\n this.appointmentPromiseQueue = []\r\n }\r\n _pushAllResources() {\r\n this.appointmentPromiseQueue.forEach(_ref => {\r\n var {\r\n promise: promise,\r\n rawAppointment: rawAppointment\r\n } = _ref;\r\n var result = [];\r\n this.resourceMap.forEach((resource, fieldName) => {\r\n var item = {\r\n label: resource.label,\r\n values: []\r\n };\r\n if (fieldName in rawAppointment) {\r\n wrapToArray(rawAppointment[fieldName]).forEach(value => item.values.push(resource.map.get(value)))\r\n }\r\n if (item.values.length) {\r\n result.push(item)\r\n }\r\n });\r\n promise.resolve(result)\r\n });\r\n this.appointmentPromiseQueue = []\r\n }\r\n _onPullResource(fieldName, valueName, displayName, label, items) {\r\n var map = new Map;\r\n items.forEach(item => map.set(item[valueName], item[displayName]));\r\n this.resourceMap.set(fieldName, {\r\n label: label,\r\n map: map\r\n })\r\n }\r\n _hasResourceDeclarations(resources) {\r\n if (0 === resources.length) {\r\n this.appointmentPromiseQueue.forEach(_ref2 => {\r\n var {\r\n promise: promise\r\n } = _ref2;\r\n return promise.resolve([])\r\n });\r\n this.appointmentPromiseQueue = [];\r\n return false\r\n }\r\n return true\r\n }\r\n _tryPullResources(resources, resultAsync) {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n var promises = [];\r\n resources.forEach(resource => {\r\n var promise = (new Deferred).done(items => this._onPullResource(getFieldExpr(resource), getValueExpr(resource), getDisplayExpr(resource), resource.label, items));\r\n promises.push(promise);\r\n var dataSource = getWrappedDataSource(resource.dataSource);\r\n if (dataSource.isLoaded()) {\r\n promise.resolve(dataSource.items())\r\n } else {\r\n dataSource.load().done(list => promise.resolve(list)).fail(() => promise.reject())\r\n }\r\n });\r\n when.apply(null, promises).done(() => {\r\n this.isLoaded = true;\r\n this.isLoading = false;\r\n this._pushAllResources()\r\n }).fail(() => resultAsync.reject())\r\n }\r\n }\r\n initializeState() {\r\n var resourceDeclarations = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n this.resourceDeclarations = resourceDeclarations\r\n }\r\n createListAsync(rawAppointment) {\r\n var resultAsync = new Deferred;\r\n this.appointmentPromiseQueue.push(new PromiseItem(rawAppointment, resultAsync));\r\n if (this._hasResourceDeclarations(this.resourceDeclarations)) {\r\n if (this.isLoaded) {\r\n this._pushAllResources()\r\n } else {\r\n this._tryPullResources(this.resourceDeclarations, resultAsync)\r\n }\r\n }\r\n return resultAsync.promise()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_tooltip_strategy_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport Button from \"../../../ui/button\";\r\nimport List from \"../../../ui/list/ui.list.edit\";\r\nvar TOOLTIP_APPOINTMENT_ITEM = \"dx-tooltip-appointment-item\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content-subject\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content-date\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-marker\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-marker-body\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-delete-button-container\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-delete-button\");\r\nexport class TooltipStrategyBase {\r\n constructor(options) {\r\n this._tooltip = null;\r\n this._options = options;\r\n this._extraOptions = null\r\n }\r\n show(target, dataList, extraOptions) {\r\n if (this._canShowTooltip(dataList)) {\r\n this.hide();\r\n this._extraOptions = extraOptions;\r\n this._showCore(target, dataList)\r\n }\r\n }\r\n _showCore(target, dataList) {\r\n if (!this._tooltip) {\r\n this._tooltip = this._createTooltip(target, dataList)\r\n } else {\r\n this._shouldUseTarget() && this._tooltip.option(\"target\", target);\r\n this._list.option(\"dataSource\", dataList)\r\n }\r\n this._prepareBeforeVisibleChanged(dataList);\r\n this._tooltip.option(\"visible\", true)\r\n }\r\n _prepareBeforeVisibleChanged(dataList) {}\r\n _getContentTemplate(dataList) {\r\n return container => {\r\n var listElement = $(\"<div>\");\r\n $(container).append(listElement);\r\n this._list = this._createList(listElement, dataList)\r\n }\r\n }\r\n isAlreadyShown(target) {\r\n if (this._tooltip && this._tooltip.option(\"visible\")) {\r\n return this._tooltip.option(\"target\")[0] === target[0]\r\n }\r\n return\r\n }\r\n _onShown() {\r\n this._list.option(\"focusStateEnabled\", this._extraOptions.focusStateEnabled)\r\n }\r\n dispose() {}\r\n hide() {\r\n if (this._tooltip) {\r\n this._tooltip.option(\"visible\", false)\r\n }\r\n }\r\n _shouldUseTarget() {\r\n return true\r\n }\r\n _createTooltip(target, dataList) {}\r\n _canShowTooltip(dataList) {\r\n if (!dataList.length) {\r\n return false\r\n }\r\n return true\r\n }\r\n _createListOption(dataList) {\r\n return {\r\n dataSource: dataList,\r\n onContentReady: this._onListRender.bind(this),\r\n onItemClick: e => this._onListItemClick(e),\r\n onItemContextMenu: this._onListItemContextMenu.bind(this),\r\n itemTemplate: (item, index) => this._renderTemplate(item.appointment, item.targetedAppointment, index, item.color),\r\n _swipeEnabled: false,\r\n pageLoadMode: \"scrollBottom\"\r\n }\r\n }\r\n _onListRender(e) {}\r\n _createTooltipElement(wrapperClass) {\r\n return $(\"<div>\").appendTo(this._options.container).addClass(wrapperClass)\r\n }\r\n _createList(listElement, dataList) {\r\n return this._options.createComponent(listElement, List, this._createListOption(dataList))\r\n }\r\n _renderTemplate(appointment, targetedAppointment, index, color) {\r\n var itemListContent = this._createItemListContent(appointment, targetedAppointment, color);\r\n this._options.addDefaultTemplates({\r\n [this._getItemListTemplateName()]: new FunctionTemplate(options => {\r\n var $container = $(options.container);\r\n $container.append(itemListContent);\r\n return $container\r\n })\r\n });\r\n var template = this._options.getAppointmentTemplate(\"\".concat(this._getItemListTemplateName(), \"Template\"));\r\n return this._createFunctionTemplate(template, appointment, targetedAppointment, index)\r\n }\r\n _createFunctionTemplate(template, appointmentData, targetedAppointmentData, index) {\r\n var isButtonClicked = !!this._extraOptions.isButtonClick;\r\n var isEmptyDropDownAppointmentTemplate = this._isEmptyDropDownAppointmentTemplate();\r\n return new FunctionTemplate(options => template.render({\r\n model: isEmptyDropDownAppointmentTemplate ? {\r\n appointmentData: appointmentData,\r\n targetedAppointmentData: targetedAppointmentData,\r\n isButtonClicked: isButtonClicked\r\n } : appointmentData,\r\n container: options.container,\r\n index: index\r\n }))\r\n }\r\n _getItemListTemplateName() {\r\n return this._isEmptyDropDownAppointmentTemplate() ? \"appointmentTooltip\" : \"dropDownAppointment\"\r\n }\r\n _isEmptyDropDownAppointmentTemplate() {\r\n return !this._extraOptions.dropDownAppointmentTemplate || \"dropDownAppointment\" === this._extraOptions.dropDownAppointmentTemplate\r\n }\r\n _onListItemClick(e) {\r\n this.hide();\r\n this._extraOptions.clickEvent && this._extraOptions.clickEvent(e);\r\n this._options.showAppointmentPopup(e.itemData.appointment, false, e.itemData.targetedAppointment)\r\n }\r\n _onListItemContextMenu(e) {}\r\n _createItemListContent(appointment, targetedAppointment, color) {\r\n var {\r\n editing: editing\r\n } = this._extraOptions;\r\n var $itemElement = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM);\r\n $itemElement.append(this._createItemListMarker(color));\r\n $itemElement.append(this._createItemListInfo(this._options.createFormattedDateText(appointment, targetedAppointment)));\r\n var disabled = this._options.getAppointmentDisabled(appointment);\r\n if (!disabled && (editing && true === editing.allowDeleting || true === editing)) {\r\n $itemElement.append(this._createDeleteButton(appointment, targetedAppointment))\r\n }\r\n return $itemElement\r\n }\r\n _createItemListMarker(color) {\r\n var $marker = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER);\r\n var $markerBody = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY);\r\n $marker.append($markerBody);\r\n color && color.done(value => $markerBody.css(\"background\", value));\r\n return $marker\r\n }\r\n _createItemListInfo(object) {\r\n var result = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT);\r\n var $title = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT).text(object.text);\r\n var $date = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE).text(object.formatDate);\r\n return result.append($title).append($date)\r\n }\r\n _createDeleteButton(appointment, targetedAppointment) {\r\n var $container = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER);\r\n var $deleteButton = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON);\r\n $container.append($deleteButton);\r\n this._options.createComponent($deleteButton, Button, {\r\n icon: \"trash\",\r\n stylingMode: \"text\",\r\n onClick: e => {\r\n this.hide();\r\n e.event.stopPropagation();\r\n this._options.checkAndDeleteAppointment(appointment, targetedAppointment)\r\n }\r\n });\r\n return $container\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n touch\r\n} from \"../../../core/utils/support\";\r\nimport Tooltip from \"../../../ui/tooltip\";\r\nimport {\r\n TooltipStrategyBase\r\n} from \"./m_tooltip_strategy_base\";\r\nvar APPOINTMENT_TOOLTIP_WRAPPER_CLASS = \"dx-scheduler-appointment-tooltip-wrapper\";\r\nvar MAX_TOOLTIP_HEIGHT = 200;\r\nexport class DesktopTooltipStrategy extends TooltipStrategyBase {\r\n _prepareBeforeVisibleChanged(dataList) {\r\n this._tooltip.option(\"position\", {\r\n my: \"bottom\",\r\n at: \"top\",\r\n boundary: this._getBoundary(dataList),\r\n offset: this._extraOptions.offset,\r\n collision: \"fit flipfit\"\r\n })\r\n }\r\n _getBoundary(dataList) {\r\n return this._options.isAppointmentInAllDayPanel(dataList[0].appointment) ? this._options.container : this._options.getScrollableContainer()\r\n }\r\n _onShown() {\r\n super._onShown();\r\n if (this._extraOptions.isButtonClick) {\r\n this._list.focus();\r\n this._list.option(\"focusedElement\", null)\r\n }\r\n }\r\n _createListOption(target, dataList) {\r\n var result = super._createListOption(target, dataList);\r\n result.showScrollbar = touch ? \"always\" : \"onHover\";\r\n return result\r\n }\r\n _createTooltip(target, dataList) {\r\n var tooltip = this._createTooltipElement(APPOINTMENT_TOOLTIP_WRAPPER_CLASS);\r\n return this._options.createComponent(tooltip, Tooltip, {\r\n target: target,\r\n maxHeight: MAX_TOOLTIP_HEIGHT,\r\n rtlEnabled: this._extraOptions.rtlEnabled,\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList),\r\n wrapperAttr: {\r\n class: APPOINTMENT_TOOLTIP_WRAPPER_CLASS\r\n }\r\n })\r\n }\r\n _onListRender(e) {\r\n return this._extraOptions.dragBehavior && this._extraOptions.dragBehavior(e)\r\n }\r\n _onListItemContextMenu(e) {\r\n var contextMenuEventArgs = this._options.createEventArgs(e);\r\n this._options.onItemContextMenu(contextMenuEventArgs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_mobile_tooltip_strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport {\r\n TooltipStrategyBase\r\n} from \"./m_tooltip_strategy_base\";\r\nvar SLIDE_PANEL_CLASS_NAME = \"dx-scheduler-overlay-panel\";\r\nvar MAX_TABLET_OVERLAY_HEIGHT_FACTOR = .9;\r\nvar MAX_HEIGHT = {\r\n PHONE: 250,\r\n TABLET: \"90%\",\r\n DEFAULT: \"auto\"\r\n};\r\nvar MAX_WIDTH = {\r\n PHONE: \"100%\",\r\n TABLET: \"80%\"\r\n};\r\nvar animationConfig = {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n },\r\n from: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n }\r\n};\r\nvar createPhoneDeviceConfig = listHeight => ({\r\n shading: false,\r\n width: MAX_WIDTH.PHONE,\r\n height: listHeight > MAX_HEIGHT.PHONE ? MAX_HEIGHT.PHONE : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n});\r\nvar createTabletDeviceConfig = listHeight => {\r\n var currentMaxHeight = getHeight(getWindow()) * MAX_TABLET_OVERLAY_HEIGHT_FACTOR;\r\n return {\r\n shading: true,\r\n width: MAX_WIDTH.TABLET,\r\n height: listHeight > currentMaxHeight ? MAX_HEIGHT.TABLET : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n};\r\nexport class MobileTooltipStrategy extends TooltipStrategyBase {\r\n _shouldUseTarget() {\r\n return false\r\n }\r\n _onShowing() {\r\n var isTabletWidth = getWidth(getWindow()) > 700;\r\n this._tooltip.option(\"height\", MAX_HEIGHT.DEFAULT);\r\n var listHeight = getOuterHeight(this._list.$element());\r\n this._tooltip.option(isTabletWidth ? createTabletDeviceConfig(listHeight) : createPhoneDeviceConfig(listHeight))\r\n }\r\n _createTooltip(target, dataList) {\r\n var element = this._createTooltipElement(SLIDE_PANEL_CLASS_NAME);\r\n return this._options.createComponent(element, Overlay, {\r\n target: getWindow(),\r\n hideOnOutsideClick: true,\r\n animation: animationConfig,\r\n onShowing: () => this._onShowing(),\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList),\r\n wrapperAttr: {\r\n class: SLIDE_PANEL_CLASS_NAME\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_table_creator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nvar ROW_SELECTOR = \"tr\";\r\nclass SchedulerTableCreator {\r\n constructor() {\r\n this.VERTICAL = \"vertical\";\r\n this.HORIZONTAL = \"horizontal\"\r\n }\r\n insertAllDayRow(allDayElements, tableBody, index) {\r\n if (allDayElements[index]) {\r\n var row = allDayElements[index].find(ROW_SELECTOR);\r\n if (!row.length) {\r\n row = $(domAdapter.createElement(ROW_SELECTOR));\r\n row.append(allDayElements[index].get(0))\r\n }\r\n tableBody.appendChild(row.get ? row.get(0) : row)\r\n }\r\n }\r\n makeTable(options) {\r\n var _a;\r\n var tableBody = domAdapter.createElement(\"tbody\");\r\n var templateCallbacks = [];\r\n var row;\r\n var rowCountInGroup = options.groupCount ? options.rowCount / options.groupCount : options.rowCount;\r\n var allDayElementIndex = 0;\r\n var {\r\n allDayElements: allDayElements\r\n } = options;\r\n var {\r\n groupIndex: groupIndex\r\n } = options;\r\n var {\r\n rowCount: rowCount\r\n } = options;\r\n $(options.container).append(tableBody);\r\n if (allDayElements) {\r\n this.insertAllDayRow(allDayElements, tableBody, 0);\r\n allDayElementIndex++\r\n }\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) {\r\n row = domAdapter.createElement(ROW_SELECTOR);\r\n tableBody.appendChild(row);\r\n var isLastRowInGroup = (rowIndex + 1) % rowCountInGroup === 0;\r\n if (options.rowClass) {\r\n row.className = options.rowClass\r\n }\r\n for (var columnIndex = 0; columnIndex < options.cellCount; columnIndex++) {\r\n var td = domAdapter.createElement(\"td\");\r\n row.appendChild(td);\r\n if (options.cellClass) {\r\n if (isFunction(options.cellClass)) {\r\n td.className = options.cellClass(rowIndex, columnIndex)\r\n } else {\r\n td.className = options.cellClass\r\n }\r\n }\r\n var cellDataObject = void 0;\r\n var dataKey = void 0;\r\n var dataValue = void 0;\r\n if (options.getCellData) {\r\n cellDataObject = options.getCellData(td, rowIndex, columnIndex, groupIndex);\r\n dataKey = cellDataObject.key;\r\n dataValue = cellDataObject.value;\r\n dataKey && elementData(td, dataKey, dataValue)\r\n }\r\n null === (_a = options.setAdditionalClasses) || void 0 === _a ? void 0 : _a.call(options, $(td), dataValue);\r\n if (options.cellTemplate && options.cellTemplate.render) {\r\n var additionalTemplateData = options.getTemplateData ? options.getTemplateData(rowIndex) : {};\r\n var templateOptions = {\r\n model: _extends({\r\n text: options.getCellText ? options.getCellText(rowIndex, columnIndex) : \"\",\r\n date: options.getCellDate ? options.getCellDate(rowIndex) : void 0\r\n }, additionalTemplateData),\r\n container: getPublicElement($(td)),\r\n index: rowIndex * options.cellCount + columnIndex\r\n };\r\n if (dataValue) {\r\n if (dataValue.startDate) {\r\n templateOptions.model.startDate = dataValue.startDate\r\n }\r\n if (dataValue.endDate) {\r\n templateOptions.model.endDate = dataValue.endDate\r\n }\r\n if (dataValue.groups) {\r\n templateOptions.model.groups = dataValue.groups\r\n }\r\n if (dataValue.allDay) {\r\n templateOptions.model.allDay = dataValue.allDay\r\n }\r\n }\r\n templateCallbacks.push(options.cellTemplate.render.bind(options.cellTemplate, templateOptions))\r\n } else if (options.getCellText) {\r\n $(\"<div>\").text(options.getCellText(rowIndex, columnIndex)).addClass(options.getCellTextClass).appendTo($(td))\r\n }\r\n }\r\n if (allDayElements && isLastRowInGroup) {\r\n this.insertAllDayRow(allDayElements, tableBody, allDayElementIndex);\r\n allDayElementIndex++\r\n }\r\n }\r\n return templateCallbacks\r\n }\r\n makeGroupedTable(type, groups, cssClasses, cellCount, cellTemplate, rowCount, groupByDate) {\r\n var rows = [];\r\n if (type === this.VERTICAL) {\r\n rows = this._makeVerticalGroupedRows(groups, cssClasses, cellTemplate, rowCount)\r\n } else {\r\n rows = this._makeHorizontalGroupedRows(groups, cssClasses, cellCount, cellTemplate, groupByDate)\r\n }\r\n return rows\r\n }\r\n makeGroupedTableFromJSON(type, data, config) {\r\n var table;\r\n var cellStorage = [];\r\n var rowIndex = 0;\r\n config = config || {};\r\n var cellTag = config.cellTag || \"td\";\r\n var childrenField = config.childrenField || \"children\";\r\n var titleField = config.titleField || \"title\";\r\n var {\r\n groupTableClass: groupTableClass\r\n } = config;\r\n var {\r\n groupRowClass: groupRowClass\r\n } = config;\r\n var {\r\n groupCellClass: groupCellClass\r\n } = config;\r\n var {\r\n groupCellCustomContent: groupCellCustomContent\r\n } = config;\r\n\r\n function getChildCount(item) {\r\n if (item[childrenField]) {\r\n return item[childrenField].length\r\n }\r\n return 0\r\n }\r\n\r\n function createCell(text, childCount, index, data) {\r\n var cell = {\r\n element: domAdapter.createElement(cellTag),\r\n childCount: childCount\r\n };\r\n if (groupCellClass) {\r\n cell.element.className = groupCellClass\r\n }\r\n var cellText = domAdapter.createTextNode(text);\r\n if (\"function\" === typeof groupCellCustomContent) {\r\n groupCellCustomContent(cell.element, cellText, index, data)\r\n } else {\r\n cell.element.appendChild(cellText)\r\n }\r\n return cell\r\n }! function() {\r\n table = domAdapter.createElement(\"table\");\r\n if (groupTableClass) {\r\n table.className = groupTableClass\r\n }\r\n }();\r\n ! function generateCells(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n var childCount = getChildCount(data[i]);\r\n var cell = createCell(data[i][titleField], childCount, i, data[i]);\r\n if (!cellStorage[rowIndex]) {\r\n cellStorage[rowIndex] = []\r\n }\r\n cellStorage[rowIndex].push(cell);\r\n if (childCount) {\r\n generateCells(data[i][childrenField])\r\n } else {\r\n rowIndex++\r\n }\r\n }\r\n }(data);\r\n void cellStorage.forEach(cells => {\r\n var row = domAdapter.createElement(ROW_SELECTOR);\r\n if (groupRowClass) {\r\n row.className = groupRowClass\r\n }\r\n var rowspans = [];\r\n for (var i = cells.length - 1; i >= 0; i--) {\r\n var prev = cells[i + 1];\r\n var rowspan = cells[i].childCount;\r\n if (prev && prev.childCount) {\r\n rowspan *= prev.childCount\r\n }\r\n rowspans.push(rowspan)\r\n }\r\n rowspans.reverse();\r\n cells.forEach((cell, index) => {\r\n if (rowspans[index]) {\r\n cell.element.setAttribute(\"rowSpan\", rowspans[index])\r\n }\r\n row.appendChild(cell.element)\r\n });\r\n table.appendChild(row)\r\n });\r\n return table\r\n }\r\n _makeFlexGroupedRowCells(group, repeatCount, cssClasses, cellTemplate) {\r\n var repeatByDate = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1;\r\n var cells = [];\r\n var {\r\n items: items\r\n } = group;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount * repeatByDate; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = $(\"<div>\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: getPublicElement($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text).attr(\"title\", items[j].text).addClass(\"dx-scheduler-group-header-content\");\r\n $container = $(\"<div>\").append($container)\r\n }\r\n var cssClass = isFunction(cssClasses.groupHeaderClass) ? cssClasses.groupHeaderClass(j) : cssClasses.groupHeaderClass;\r\n cell.element = $container.addClass(cssClass);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n }\r\n _makeVerticalGroupedRows(groups, cssClasses, cellTemplate, rowCount) {\r\n var cellTemplates = [];\r\n var repeatCount = 1;\r\n var cellsArray = [];\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n };\r\n for (var i = 0; i < groups.length; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeFlexGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate);\r\n cells.forEach(cellIterator);\r\n cellsArray.push(cells)\r\n }\r\n var rows = [];\r\n var groupCount = cellsArray.length;\r\n for (var _i = 0; _i < groupCount; _i++) {\r\n rows.push($(\"<div>\").addClass(cssClasses.groupHeaderRowClass))\r\n }\r\n for (var _i2 = groupCount - 1; _i2 >= 0; _i2--) {\r\n var currentColumnLength = cellsArray[_i2].length;\r\n for (var j = 0; j < currentColumnLength; j++) {\r\n rows[_i2].append(cellsArray[_i2][j].element)\r\n }\r\n }\r\n return {\r\n elements: $(\"<div>\").addClass(\"dx-scheduler-group-flex-container\").append(rows),\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _makeHorizontalGroupedRows(groups, cssClasses, cellCount, cellTemplate, groupByDate) {\r\n var repeatCount = 1;\r\n var groupCount = groups.length;\r\n var rows = [];\r\n var cellTemplates = [];\r\n var repeatByDate = groupByDate ? cellCount : 1;\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n return cell.element\r\n };\r\n for (var i = 0; i < groupCount; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate, repeatByDate);\r\n rows.push($(\"<tr>\").addClass(cssClasses.groupRowClass).append(cells.map(cellIterator)))\r\n }\r\n var maxCellCount = rows[groupCount - 1].find(\"th\").length;\r\n for (var j = 0; j < groupCount; j++) {\r\n var $cell = rows[j].find(\"th\");\r\n var colspan = maxCellCount / $cell.length;\r\n if (!groupByDate) {\r\n colspan *= cellCount\r\n }\r\n if (colspan > 1 && 1 === repeatByDate || groupByDate && groupCount > 1) {\r\n $cell.attr(\"colSpan\", colspan)\r\n }\r\n }\r\n return {\r\n elements: rows,\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _makeGroupedRowCells(group, repeatCount, cssClasses, cellTemplate, repeatByDate) {\r\n repeatByDate = repeatByDate || 1;\r\n repeatCount *= repeatByDate;\r\n var cells = [];\r\n var {\r\n items: items\r\n } = group;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = $(\"<div>\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: getPublicElement($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text);\r\n $container = $(\"<div>\").append($container)\r\n }\r\n $container.addClass(cssClasses.groupHeaderContentClass);\r\n var cssClass = void 0;\r\n if (isFunction(cssClasses.groupHeaderClass)) {\r\n cssClass = cssClasses.groupHeaderClass(j)\r\n } else {\r\n cssClass = cssClasses.groupHeaderClass\r\n }\r\n cell.element = $(\"<th>\").addClass(cssClass).append($container);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n }\r\n}\r\nexport default {\r\n tableCreator: new SchedulerTableCreator\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/scheduler/date_table.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Component from \"../common/component\";\r\nexport class DateTable extends Component {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends({}, this._optionsByReference, {\r\n dataCellTemplate: true\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/ordinary_cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"colSpan\", \"styles\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n colSpan: colSpan,\r\n styles: styles\r\n }\r\n } = _ref;\r\n return createVNode(1, \"td\", className, children, 0, {\r\n style: normalizeStyles(styles),\r\n colSpan: colSpan\r\n })\r\n};\r\nexport var CellProps = {};\r\nexport class OrdinaryCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nOrdinaryCell.defaultProps = CellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"colSpan\", \"styles\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n CellProps\r\n} from \"./ordinary_cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n colSpan: colSpan,\r\n styles: styles\r\n }\r\n } = _ref;\r\n return createVNode(1, \"th\", className, children, 0, {\r\n style: normalizeStyles(styles),\r\n colSpan: colSpan\r\n })\r\n};\r\nexport class HeaderCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nHeaderCell.defaultProps = CellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/virtual_cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"colSpan\", \"isHeaderCell\", \"width\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n addWidthToStyle\r\n} from \"../utils\";\r\nimport {\r\n HeaderCell\r\n} from \"./header_cell\";\r\nimport {\r\n OrdinaryCell\r\n} from \"./ordinary_cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n colSpan: colSpan,\r\n isHeaderCell: isHeaderCell\r\n },\r\n style: style\r\n } = _ref;\r\n var Cell = isHeaderCell ? HeaderCell : OrdinaryCell;\r\n return createComponentVNode(2, Cell, {\r\n className: \"dx-scheduler-virtual-cell\",\r\n styles: style,\r\n colSpan: colSpan\r\n })\r\n};\r\nexport var VirtualCellProps = {\r\n width: 0,\r\n isHeaderCell: false\r\n};\r\nexport class VirtualCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get style() {\r\n var {\r\n width: width\r\n } = this.props;\r\n var {\r\n style: style\r\n } = this.restAttributes;\r\n return addWidthToStyle(width, style)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n style: this.style,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nVirtualCell.defaultProps = VirtualCellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"isHeaderRow\", \"leftVirtualCellCount\", \"leftVirtualCellWidth\", \"rightVirtualCellCount\", \"rightVirtualCellWidth\", \"styles\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n VirtualCell\r\n} from \"./virtual_cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n hasLeftVirtualCell: hasLeftVirtualCell,\r\n hasRightVirtualCell: hasRightVirtualCell,\r\n props: {\r\n children: children,\r\n className: className,\r\n isHeaderRow: isHeaderRow,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n styles: styles\r\n }\r\n } = _ref;\r\n return createVNode(1, \"tr\", className, [hasLeftVirtualCell && createComponentVNode(2, VirtualCell, {\r\n width: leftVirtualCellWidth,\r\n colSpan: leftVirtualCellCount,\r\n isHeaderCell: isHeaderRow\r\n }), children, hasRightVirtualCell && createComponentVNode(2, VirtualCell, {\r\n width: rightVirtualCellWidth,\r\n colSpan: rightVirtualCellCount,\r\n isHeaderCell: isHeaderRow\r\n })], 0, {\r\n style: normalizeStyles(styles)\r\n })\r\n};\r\nexport var RowProps = {\r\n className: \"\",\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n isHeaderRow: false\r\n};\r\nexport class Row extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get hasLeftVirtualCell() {\r\n var {\r\n leftVirtualCellCount: leftVirtualCellCount\r\n } = this.props;\r\n return !!leftVirtualCellCount\r\n }\r\n get hasRightVirtualCell() {\r\n var {\r\n rightVirtualCellCount: rightVirtualCellCount\r\n } = this.props;\r\n return !!rightVirtualCellCount\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n hasLeftVirtualCell: this.hasLeftVirtualCell,\r\n hasRightVirtualCell: this.hasRightVirtualCell,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nRow.defaultProps = RowProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/virtual_row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"cellsCount\", \"children\", \"className\", \"height\", \"isHeaderRow\", \"leftVirtualCellCount\", \"leftVirtualCellWidth\", \"rightVirtualCellCount\", \"rightVirtualCellWidth\", \"styles\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n addHeightToStyle\r\n} from \"../utils\";\r\nimport {\r\n RowProps,\r\n Row\r\n} from \"./row\";\r\nimport {\r\n VirtualCell\r\n} from \"./virtual_cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n props: {\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth\r\n },\r\n style: style,\r\n virtualCells: virtualCells\r\n } = _ref;\r\n return createComponentVNode(2, Row, {\r\n styles: style,\r\n className: classes,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n children: virtualCells.map((_, index) => createComponentVNode(2, VirtualCell, null, index.toString()))\r\n })\r\n};\r\nexport var VirtualRowProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(RowProps), Object.getOwnPropertyDescriptors({\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n cellsCount: 1\r\n})));\r\nexport class VirtualRow extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get style() {\r\n var {\r\n height: height\r\n } = this.props;\r\n var {\r\n style: style\r\n } = this.restAttributes;\r\n return addHeightToStyle(height, style)\r\n }\r\n get classes() {\r\n var {\r\n className: className\r\n } = this.props;\r\n return \"dx-scheduler-virtual-row \".concat(className)\r\n }\r\n get virtualCells() {\r\n if (void 0 !== this.__getterCache.virtualCells) {\r\n return this.__getterCache.virtualCells\r\n }\r\n return this.__getterCache.virtualCells = (() => {\r\n var {\r\n cellsCount: cellsCount\r\n } = this.props;\r\n return [...Array(cellsCount)]\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.cellsCount !== nextProps.cellsCount) {\r\n this.__getterCache.virtualCells = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n style: this.style,\r\n classes: this.classes,\r\n virtualCells: this.virtualCells,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nVirtualRow.defaultProps = VirtualRowProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/table.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"bottomVirtualRowHeight\", \"children\", \"className\", \"height\", \"leftVirtualCellCount\", \"leftVirtualCellWidth\", \"rightVirtualCellCount\", \"rightVirtualCellWidth\", \"tableRef\", \"topVirtualRowHeight\", \"virtualCellsCount\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n addHeightToStyle,\r\n addWidthToStyle\r\n} from \"../utils\";\r\nimport {\r\n VirtualRow\r\n} from \"./virtual_row\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n hasBottomVirtualRow: hasBottomVirtualRow,\r\n hasTopVirtualRow: hasTopVirtualRow,\r\n props: {\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n children: children,\r\n className: className,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n tableRef: tableRef,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n virtualCellsCount: virtualCellsCount\r\n },\r\n style: style\r\n } = _ref;\r\n return createVNode(1, \"table\", className, createVNode(1, \"tbody\", null, [hasTopVirtualRow && createComponentVNode(2, VirtualRow, {\r\n height: topVirtualRowHeight,\r\n cellsCount: virtualCellsCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount\r\n }), children, hasBottomVirtualRow && createComponentVNode(2, VirtualRow, {\r\n height: bottomVirtualRowHeight,\r\n cellsCount: virtualCellsCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount\r\n })], 0), 2, {\r\n style: normalizeStyles(style)\r\n }, null, tableRef)\r\n};\r\nexport var TableProps = {\r\n className: \"\",\r\n topVirtualRowHeight: 0,\r\n bottomVirtualRowHeight: 0,\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n virtualCellsCount: 0\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Table extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef()\r\n }\r\n get style() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var {\r\n style: style\r\n } = this.restAttributes;\r\n var heightAdded = addHeightToStyle(height, style);\r\n return addWidthToStyle(width, heightAdded)\r\n }\r\n get hasTopVirtualRow() {\r\n var {\r\n topVirtualRowHeight: topVirtualRowHeight\r\n } = this.props;\r\n return !!topVirtualRowHeight\r\n }\r\n get hasBottomVirtualRow() {\r\n var {\r\n bottomVirtualRowHeight: bottomVirtualRowHeight\r\n } = this.props;\r\n return !!bottomVirtualRowHeight\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n style: this.style,\r\n hasTopVirtualRow: this.hasTopVirtualRow,\r\n hasBottomVirtualRow: this.hasBottomVirtualRow,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nTable.defaultProps = TableProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/const.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var DefaultSizes = {\r\n allDayPanelHeight: 25\r\n};\r\nexport var DATE_TABLE_CELL_CLASS = \"dx-scheduler-date-table-cell\";\r\nexport var ALL_DAY_PANEL_CELL_CLASS = \"dx-scheduler-all-day-table-cell\";\r\nexport var DATE_TABLE_ROW_CLASS = \"dx-scheduler-date-table-row\";\r\nexport var ALL_DAY_ROW_CLASS = \"dx-scheduler-all-day-table-row\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"contentTemplateProps\", \"endDate\", \"groupIndex\", \"groups\", \"index\", \"isFirstGroupCell\", \"isLastGroupCell\", \"startDate\", \"text\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getGroupCellClasses\r\n} from \"../utils\";\r\nexport var viewFunction = viewModel => createVNode(1, \"td\", viewModel.classes, viewModel.props.children, 0, {\r\n \"aria-label\": viewModel.props.ariaLabel\r\n});\r\nexport var CellBaseProps = {\r\n className: \"\",\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false,\r\n startDate: Object.freeze(new Date),\r\n endDate: Object.freeze(new Date),\r\n allDay: false,\r\n text: \"\",\r\n index: 0,\r\n contentTemplateProps: Object.freeze({\r\n data: {},\r\n index: 0\r\n })\r\n};\r\nexport class CellBase extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get classes() {\r\n var {\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n } = this.props;\r\n return getGroupCellClasses(isFirstGroupCell, isLastGroupCell, className)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n classes: this.classes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCellBase.defaultProps = CellBaseProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"contentTemplateProps\", \"dataCellTemplate\", \"endDate\", \"firstDayOfMonth\", \"groupIndex\", \"groups\", \"index\", \"isFirstGroupCell\", \"isFocused\", \"isLastGroupCell\", \"isSelected\", \"otherMonth\", \"startDate\", \"text\", \"today\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n CellBase as Cell,\r\n CellBaseProps\r\n} from \"../cell\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../utils/combine_classes\";\r\nimport {\r\n DATE_TABLE_CELL_CLASS\r\n} from \"../../const\";\r\nvar ADD_APPOINTMENT_LABEL = \"Add appointment\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n ariaLabel: ariaLabel,\r\n classes: classes,\r\n dataCellTemplateProps: dataCellTemplateProps,\r\n props: {\r\n children: children,\r\n dataCellTemplate: DataCellTemplate,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n }\r\n } = _ref;\r\n return createComponentVNode(2, Cell, {\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n className: classes,\r\n ariaLabel: ariaLabel,\r\n children: [!DataCellTemplate && children, !!DataCellTemplate && DataCellTemplate({\r\n index: dataCellTemplateProps.index,\r\n data: dataCellTemplateProps.data\r\n })]\r\n })\r\n};\r\nexport var DateTableCellBaseProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CellBaseProps), Object.getOwnPropertyDescriptors({\r\n otherMonth: false,\r\n today: false,\r\n firstDayOfMonth: false,\r\n isSelected: false,\r\n isFocused: false\r\n})));\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class DateTableCellBase extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get classes() {\r\n var {\r\n allDay: allDay,\r\n className: className,\r\n isFocused: isFocused,\r\n isSelected: isSelected\r\n } = this.props;\r\n return combineClasses({\r\n \"dx-scheduler-cell-sizes-horizontal\": true,\r\n \"dx-scheduler-cell-sizes-vertical\": !allDay,\r\n [DATE_TABLE_CELL_CLASS]: !allDay,\r\n \"dx-state-focused\": isSelected,\r\n \"dx-scheduler-focused-cell\": isFocused,\r\n [className]: true\r\n })\r\n }\r\n get dataCellTemplateProps() {\r\n if (void 0 !== this.__getterCache.dataCellTemplateProps) {\r\n return this.__getterCache.dataCellTemplateProps\r\n }\r\n return this.__getterCache.dataCellTemplateProps = (() => {\r\n var {\r\n allDay: allDay,\r\n contentTemplateProps: contentTemplateProps,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n startDate: startDate\r\n } = this.props;\r\n return {\r\n data: _extends({\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groups ? groupIndex : void 0,\r\n text: \"\",\r\n allDay: !!allDay || void 0\r\n }, contentTemplateProps.data),\r\n index: index\r\n }\r\n })()\r\n }\r\n get ariaLabel() {\r\n return this.props.isSelected ? ADD_APPOINTMENT_LABEL : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.allDay !== nextProps.allDay || this.props.contentTemplateProps !== nextProps.contentTemplateProps || this.props.endDate !== nextProps.endDate || this.props.groupIndex !== nextProps.groupIndex || this.props.groups !== nextProps.groups || this.props.index !== nextProps.index || this.props.startDate !== nextProps.startDate) {\r\n this.__getterCache.dataCellTemplateProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n classes: this.classes,\r\n dataCellTemplateProps: this.dataCellTemplateProps,\r\n ariaLabel: this.ariaLabel,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateTableCellBase.defaultProps = DateTableCellBaseProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"contentTemplateProps\", \"dataCellTemplate\", \"endDate\", \"firstDayOfMonth\", \"groupIndex\", \"groups\", \"index\", \"isFirstGroupCell\", \"isFocused\", \"isLastGroupCell\", \"isSelected\", \"otherMonth\", \"startDate\", \"text\", \"today\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ALL_DAY_PANEL_CELL_CLASS\r\n} from \"../../../const\";\r\nimport {\r\n DateTableCellBaseProps,\r\n DateTableCellBase\r\n} from \"../cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n className: className,\r\n dataCellTemplate: dataCellTemplate,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n startDate: startDate\r\n }\r\n } = _ref;\r\n return createComponentVNode(2, DateTableCellBase, {\r\n className: \"\".concat(ALL_DAY_PANEL_CELL_CLASS, \" \").concat(className),\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n allDay: true,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: index,\r\n dataCellTemplate: dataCellTemplate,\r\n isSelected: isSelected,\r\n isFocused: isFocused\r\n })\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class AllDayPanelCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAllDayPanelCell.defaultProps = DateTableCellBaseProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table_body.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"dataCellTemplate\", \"isVerticalGroupOrientation\", \"leftVirtualCellCount\", \"leftVirtualCellWidth\", \"rightVirtualCellCount\", \"rightVirtualCellWidth\", \"viewData\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"../../row\";\r\nimport {\r\n AllDayPanelCell as Cell\r\n} from \"./cell\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../../utils/combine_classes\";\r\nexport var viewFunction = viewModel => createComponentVNode(2, Row, {\r\n leftVirtualCellWidth: viewModel.props.leftVirtualCellWidth,\r\n rightVirtualCellWidth: viewModel.props.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewModel.props.leftVirtualCellCount,\r\n rightVirtualCellCount: viewModel.props.rightVirtualCellCount,\r\n className: viewModel.classes,\r\n children: viewModel.props.viewData.map(_ref => {\r\n var {\r\n endDate: endDate,\r\n groupIndex: cellGroupIndex,\r\n groups: groups,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n key: key,\r\n startDate: startDate\r\n } = _ref;\r\n return createComponentVNode(2, Cell, {\r\n isFirstGroupCell: !viewModel.props.isVerticalGroupOrientation && isFirstGroupCell,\r\n isLastGroupCell: !viewModel.props.isVerticalGroupOrientation && isLastGroupCell,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: cellGroupIndex,\r\n index: cellIndex,\r\n dataCellTemplate: viewModel.props.dataCellTemplate,\r\n isSelected: isSelected,\r\n isFocused: isFocused\r\n }, key)\r\n })\r\n});\r\nexport var AllDayPanelTableBodyProps = {\r\n viewData: Object.freeze([]),\r\n isVerticalGroupOrientation: false,\r\n className: \"\",\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class AllDayPanelTableBody extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get classes() {\r\n var {\r\n className: className\r\n } = this.props;\r\n return combineClasses({\r\n \"dx-scheduler-all-day-table-row\": true,\r\n [className]: !!className\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n classes: this.classes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAllDayPanelTableBody.defaultProps = AllDayPanelTableBodyProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/layout_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var LayoutProps = {\r\n viewData: Object.freeze({\r\n groupedData: [],\r\n leftVirtualCellCount: 0,\r\n rightVirtualCellCount: 0,\r\n topVirtualRowCount: 0,\r\n bottomVirtualRowCount: 0\r\n }),\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n topVirtualRowHeight: 0,\r\n bottomVirtualRowHeight: 0,\r\n addDateTableClass: true,\r\n addVerticalSizesClassToRows: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"addDateTableClass\", \"addVerticalSizesClassToRows\", \"bottomVirtualRowHeight\", \"dataCellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"tableRef\", \"topVirtualRowHeight\", \"viewData\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Table\r\n} from \"../../table\";\r\nimport {\r\n AllDayPanelTableBody\r\n} from \"./table_body\";\r\nimport {\r\n LayoutProps\r\n} from \"../../layout_props\";\r\nimport {\r\n DefaultSizes\r\n} from \"../../../const\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n allDayPanelData: allDayPanelData,\r\n emptyTableHeight: emptyTableHeight,\r\n props: {\r\n dataCellTemplate: dataCellTemplate,\r\n tableRef: tableRef,\r\n viewData: viewData,\r\n width: width\r\n }\r\n } = _ref;\r\n return createComponentVNode(2, Table, {\r\n className: \"dx-scheduler-all-day-table\",\r\n height: emptyTableHeight,\r\n width: width,\r\n tableRef: tableRef,\r\n children: createComponentVNode(2, AllDayPanelTableBody, {\r\n viewData: allDayPanelData,\r\n leftVirtualCellWidth: viewData.leftVirtualCellWidth,\r\n rightVirtualCellWidth: viewData.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n dataCellTemplate: dataCellTemplate\r\n })\r\n })\r\n};\r\nexport var AllDayTableProps = LayoutProps;\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class AllDayTable extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get allDayPanelData() {\r\n if (void 0 !== this.__getterCache.allDayPanelData) {\r\n return this.__getterCache.allDayPanelData\r\n }\r\n return this.__getterCache.allDayPanelData = (() => this.props.viewData.groupedData[0].allDayPanel)()\r\n }\r\n get emptyTableHeight() {\r\n return this.allDayPanelData ? void 0 : DefaultSizes.allDayPanelHeight\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.viewData !== nextProps.viewData) {\r\n this.__getterCache.allDayPanelData = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n allDayPanelData: this.allDayPanelData,\r\n emptyTableHeight: this.emptyTableHeight,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAllDayTable.defaultProps = AllDayTableProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../../core/component_registrator\";\r\nimport {\r\n DateTable\r\n} from \"../../../../../../component_wrapper/scheduler/date_table\";\r\nimport {\r\n AllDayTable as AllDayTableComponent\r\n} from \"./table\";\r\nexport default class AllDayTable extends DateTable {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dataCellTemplate\"],\r\n props: [\"viewData\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return AllDayTableComponent\r\n }\r\n}\r\nregisterComponent(\"dxAllDayTable\", AllDayTable);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/title.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport messageLocalization from \"../../../../../../../localization/message\";\r\nexport var viewFunction = viewModel => createVNode(1, \"div\", \"dx-scheduler-all-day-title\", viewModel.text, 0);\r\nexport var AllDayPanelTitleProps = {};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nexport class AllDayPanelTitle extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get text() {\r\n return messageLocalization.format(\"dxScheduler-allDay\")\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _extends({}, (_objectDestructuringEmpty(_this$props), _this$props));\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n text: this.text,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nAllDayPanelTitle.defaultProps = AllDayPanelTitleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/title.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../../../../component_wrapper/common/component\";\r\nimport {\r\n AllDayPanelTitle as AllDayPanelTitleComponent\r\n} from \"./title\";\r\nexport default class AllDayPanelTitle extends BaseComponent {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n get _viewComponent() {\r\n return AllDayPanelTitleComponent\r\n }\r\n}\r\nregisterComponent(\"dxAllDayPanelTitle\", AllDayPanelTitle);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/table_body.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"addDateTableClass\", \"addVerticalSizesClassToRows\", \"bottomVirtualRowHeight\", \"cellTemplate\", \"dataCellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"viewData\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"../row\";\r\nimport {\r\n AllDayPanelTableBody\r\n} from \"./all_day_panel/table_body\";\r\nimport {\r\n LayoutProps\r\n} from \"../layout_props\";\r\nimport {\r\n DateTableCellBase\r\n} from \"./cell\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../utils/combine_classes\";\r\nimport {\r\n DATE_TABLE_ROW_CLASS\r\n} from \"../../const\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n cellTemplate: Cell,\r\n dataCellTemplate: dataCellTemplate,\r\n viewData: viewData\r\n },\r\n rowClasses: rowClasses\r\n } = _ref;\r\n return createFragment(viewData.groupedData.map(_ref2 => {\r\n var {\r\n allDayPanel: allDayPanel,\r\n dateTable: dateTable,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n key: fragmentKey\r\n } = _ref2;\r\n return createFragment([isGroupedAllDayPanel && createComponentVNode(2, AllDayPanelTableBody, {\r\n viewData: allDayPanel,\r\n dataCellTemplate: dataCellTemplate,\r\n isVerticalGroupOrientation: true,\r\n leftVirtualCellWidth: viewData.leftVirtualCellWidth,\r\n rightVirtualCellWidth: viewData.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount\r\n }), dateTable.map(_ref3 => {\r\n var {\r\n cells: cells,\r\n key: rowKey\r\n } = _ref3;\r\n return createComponentVNode(2, Row, {\r\n className: rowClasses,\r\n leftVirtualCellWidth: viewData.leftVirtualCellWidth,\r\n rightVirtualCellWidth: viewData.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n children: cells.map(_ref4 => {\r\n var {\r\n endDate: endDate,\r\n firstDayOfMonth: firstDayOfMonth,\r\n groupIndex: cellGroupIndex,\r\n groups: groups,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n key: key,\r\n otherMonth: otherMonth,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref4;\r\n return Cell({\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: cellGroupIndex,\r\n index: cellIndex,\r\n dataCellTemplate: dataCellTemplate,\r\n key: key,\r\n text: text,\r\n today: today,\r\n otherMonth: otherMonth,\r\n firstDayOfMonth: firstDayOfMonth,\r\n isSelected: isSelected,\r\n isFocused: isFocused\r\n })\r\n })\r\n }, rowKey)\r\n })], 0, fragmentKey)\r\n }), 0)\r\n};\r\nexport var DateTableBodyProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(LayoutProps), Object.getOwnPropertyDescriptors({\r\n cellTemplate: DateTableCellBase\r\n})));\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class DateTableBody extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get rowClasses() {\r\n var {\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows\r\n } = this.props;\r\n return combineClasses({\r\n [DATE_TABLE_ROW_CLASS]: true,\r\n \"dx-scheduler-cell-sizes-vertical\": addVerticalSizesClassToRows\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate),\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n rowClasses: this.rowClasses,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateTableBody.defaultProps = DateTableBodyProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"addDateTableClass\", \"addVerticalSizesClassToRows\", \"bottomVirtualRowHeight\", \"cellTemplate\", \"dataCellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"tableRef\", \"topVirtualRowHeight\", \"viewData\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Table\r\n} from \"../table\";\r\nimport {\r\n DateTableBody\r\n} from \"./table_body\";\r\nimport {\r\n LayoutProps\r\n} from \"../layout_props\";\r\nimport {\r\n DateTableCellBase\r\n} from \"./cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n classes: classes,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n props: {\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n cellTemplate: cellTemplate,\r\n dataCellTemplate: dataCellTemplate,\r\n groupOrientation: groupOrientation,\r\n tableRef: tableRef,\r\n viewData: viewData,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n virtualCellsCount: virtualCellsCount\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Table, _extends({}, restAttributes, {\r\n tableRef: tableRef,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n virtualCellsCount: virtualCellsCount,\r\n className: classes,\r\n width: width,\r\n children: createComponentVNode(2, DateTableBody, {\r\n cellTemplate: cellTemplate,\r\n viewData: viewData,\r\n dataCellTemplate: dataCellTemplate,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n groupOrientation: groupOrientation,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows\r\n })\r\n })))\r\n};\r\nexport var DateTableLayoutProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(LayoutProps), Object.getOwnPropertyDescriptors({\r\n cellTemplate: DateTableCellBase\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class DateTableLayoutBase extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get classes() {\r\n var {\r\n addDateTableClass: addDateTableClass\r\n } = this.props;\r\n return addDateTableClass ? \"dx-scheduler-date-table\" : void 0\r\n }\r\n get topVirtualRowHeight() {\r\n var _this$props$viewData$;\r\n return null !== (_this$props$viewData$ = this.props.viewData.topVirtualRowHeight) && void 0 !== _this$props$viewData$ ? _this$props$viewData$ : 0\r\n }\r\n get bottomVirtualRowHeight() {\r\n var _this$props$viewData$2;\r\n return null !== (_this$props$viewData$2 = this.props.viewData.bottomVirtualRowHeight) && void 0 !== _this$props$viewData$2 ? _this$props$viewData$2 : 0\r\n }\r\n get leftVirtualCellWidth() {\r\n var _this$props$viewData$3;\r\n return null !== (_this$props$viewData$3 = this.props.viewData.leftVirtualCellWidth) && void 0 !== _this$props$viewData$3 ? _this$props$viewData$3 : 0\r\n }\r\n get rightVirtualCellWidth() {\r\n var _this$props$viewData$4;\r\n return null !== (_this$props$viewData$4 = this.props.viewData.rightVirtualCellWidth) && void 0 !== _this$props$viewData$4 ? _this$props$viewData$4 : 0\r\n }\r\n get virtualCellsCount() {\r\n return this.props.viewData.groupedData[0].dateTable[0].cells.length\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate),\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n classes: this.classes,\r\n topVirtualRowHeight: this.topVirtualRowHeight,\r\n bottomVirtualRowHeight: this.bottomVirtualRowHeight,\r\n leftVirtualCellWidth: this.leftVirtualCellWidth,\r\n rightVirtualCellWidth: this.rightVirtualCellWidth,\r\n virtualCellsCount: this.virtualCellsCount,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateTableLayoutBase.defaultProps = DateTableLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/date_table/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n DateTable\r\n} from \"../../../../../component_wrapper/scheduler/date_table\";\r\nimport {\r\n DateTableLayoutBase as DateTableLayoutBaseComponent\r\n} from \"./layout\";\r\nexport default class DateTableLayoutBase extends DateTable {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"cellTemplate\", \"dataCellTemplate\"],\r\n props: [\"cellTemplate\", \"viewData\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return DateTableLayoutBaseComponent\r\n }\r\n}\r\nregisterComponent(\"dxDateTableLayoutBase\", DateTableLayoutBase);\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/scheduler/group_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Component from \"../common/component\";\r\nexport class GroupPanelWrapper extends Component {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends({}, this._optionsByReference, {\r\n resourceCellTemplate: true\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var GroupPanelBaseProps = {\r\n groupPanelData: Object.freeze({\r\n groupPanelItems: [],\r\n baseColSpan: 1\r\n }),\r\n groupByDate: false\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/cell_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var GroupPanelCellProps = {\r\n id: 0,\r\n text: \"\",\r\n data: Object.freeze({\r\n id: 0\r\n }),\r\n className: \"\"\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"cellTemplate\", \"className\", \"color\", \"data\", \"id\", \"index\", \"text\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n GroupPanelCellProps\r\n} from \"../cell_props\";\r\nexport var viewFunction = viewModel => {\r\n var CellTemplate = viewModel.props.cellTemplate;\r\n return createVNode(1, \"div\", \"dx-scheduler-group-header \".concat(viewModel.props.className), [!!viewModel.props.cellTemplate && CellTemplate({\r\n data: {\r\n data: viewModel.props.data,\r\n id: viewModel.props.id,\r\n color: viewModel.props.color,\r\n text: viewModel.props.text\r\n },\r\n index: viewModel.props.index\r\n }), !viewModel.props.cellTemplate && createVNode(1, \"div\", \"dx-scheduler-group-header-content\", viewModel.props.text, 0)], 0)\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class GroupPanelVerticalCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nGroupPanelVerticalCell.defaultProps = GroupPanelCellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/row_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var GroupPanelRowProps = {\r\n groupItems: Object.freeze([]),\r\n className: \"\"\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"cellTemplate\", \"className\", \"groupItems\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n GroupPanelVerticalCell\r\n} from \"./cell\";\r\nimport {\r\n GroupPanelRowProps\r\n} from \"../row_props\";\r\nexport var viewFunction = viewModel => createVNode(1, \"div\", \"dx-scheduler-group-row \".concat(viewModel.props.className), viewModel.props.groupItems.map((_ref, index) => {\r\n var {\r\n color: color,\r\n data: data,\r\n id: id,\r\n key: key,\r\n text: text\r\n } = _ref;\r\n return createComponentVNode(2, GroupPanelVerticalCell, {\r\n text: text,\r\n id: id,\r\n data: data,\r\n index: index,\r\n color: color,\r\n cellTemplate: viewModel.props.cellTemplate\r\n }, key)\r\n}), 0);\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Row extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nRow.defaultProps = GroupPanelRowProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel_layout_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n GroupPanelBaseProps\r\n} from \"./group_panel_props\";\r\nexport var GroupPanelLayoutProps = GroupPanelBaseProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/vertical/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"elementRef\", \"groupByDate\", \"groupPanelData\", \"height\", \"resourceCellTemplate\", \"styles\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"./row\";\r\nimport {\r\n addHeightToStyle\r\n} from \"../../../utils\";\r\nimport {\r\n GroupPanelLayoutProps\r\n} from \"../group_panel_layout_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n className: className,\r\n elementRef: elementRef,\r\n groupPanelData: groupPanelData,\r\n resourceCellTemplate: resourceCellTemplate\r\n },\r\n style: style\r\n } = _ref;\r\n return createVNode(1, \"div\", className, createVNode(1, \"div\", \"dx-scheduler-group-flex-container\", groupPanelData.groupPanelItems.map(group => createComponentVNode(2, Row, {\r\n groupItems: group,\r\n cellTemplate: resourceCellTemplate\r\n }, group[0].key)), 0), 2, {\r\n style: normalizeStyles(style)\r\n }, null, elementRef)\r\n};\r\nexport var VerticalGroupPanelLayoutProps = GroupPanelLayoutProps;\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class GroupPanelVerticalLayout extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get style() {\r\n var {\r\n height: height,\r\n styles: styles\r\n } = this.props;\r\n return addHeightToStyle(height, styles)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n resourceCellTemplate: getTemplate(props.resourceCellTemplate)\r\n }),\r\n style: this.style,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nGroupPanelVerticalLayout.defaultProps = VerticalGroupPanelLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"cellTemplate\", \"className\", \"colSpan\", \"color\", \"data\", \"id\", \"index\", \"isFirstGroupCell\", \"isLastGroupCell\", \"text\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../../utils/combine_classes\";\r\nimport {\r\n GroupPanelCellProps\r\n} from \"../cell_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n props: {\r\n cellTemplate: CellTemplate,\r\n colSpan: colSpan,\r\n color: color,\r\n data: data,\r\n id: id,\r\n index: index,\r\n text: text\r\n }\r\n } = _ref;\r\n return createVNode(1, \"th\", classes, createVNode(1, \"div\", \"dx-scheduler-group-header-content\", [!!CellTemplate && CellTemplate({\r\n data: {\r\n data: data,\r\n id: id,\r\n color: color,\r\n text: text\r\n },\r\n index: index\r\n }), !CellTemplate && createVNode(1, \"div\", null, text, 0)], 0), 2, {\r\n colSpan: colSpan\r\n })\r\n};\r\nexport var GroupPanelHorizontalCellProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(GroupPanelCellProps), Object.getOwnPropertyDescriptors({\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false,\r\n colSpan: 1\r\n})));\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class GroupPanelHorizontalCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get classes() {\r\n var {\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n } = this.props;\r\n return combineClasses({\r\n \"dx-scheduler-group-header\": true,\r\n \"dx-scheduler-first-group-cell\": isFirstGroupCell,\r\n \"dx-scheduler-last-group-cell\": isLastGroupCell,\r\n [className]: !!className\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate)\r\n }),\r\n classes: this.classes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nGroupPanelHorizontalCell.defaultProps = GroupPanelHorizontalCellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/row.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"cellTemplate\", \"className\", \"groupItems\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n GroupPanelHorizontalCell\r\n} from \"./cell\";\r\nimport {\r\n GroupPanelRowProps\r\n} from \"../row_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n cellTemplate: cellTemplate,\r\n className: className,\r\n groupItems: groupItems\r\n }\r\n } = _ref;\r\n return createVNode(1, \"tr\", \"dx-scheduler-group-row \".concat(className), groupItems.map((_ref2, index) => {\r\n var {\r\n colSpan: colSpan,\r\n color: color,\r\n data: data,\r\n id: id,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, GroupPanelHorizontalCell, {\r\n text: text,\r\n id: id,\r\n data: data,\r\n index: index,\r\n color: color,\r\n colSpan: colSpan,\r\n isFirstGroupCell: !!isFirstGroupCell,\r\n isLastGroupCell: !!isLastGroupCell,\r\n cellTemplate: cellTemplate\r\n }, key)\r\n }), 0)\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Row extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nRow.defaultProps = GroupPanelRowProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/horizontal/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"elementRef\", \"groupByDate\", \"groupPanelData\", \"height\", \"resourceCellTemplate\", \"styles\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"./row\";\r\nimport {\r\n GroupPanelLayoutProps\r\n} from \"../group_panel_layout_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n groupPanelItems: groupPanelItems,\r\n props: {\r\n resourceCellTemplate: resourceCellTemplate\r\n }\r\n } = _ref;\r\n return createFragment(groupPanelItems.map(group => createComponentVNode(2, Row, {\r\n groupItems: group,\r\n cellTemplate: resourceCellTemplate\r\n }, group[0].key)), 0)\r\n};\r\nexport var HorizontalGroupPanelLayoutProps = GroupPanelLayoutProps;\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class GroupPanelHorizontalLayout extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get groupPanelItems() {\r\n if (void 0 !== this.__getterCache.groupPanelItems) {\r\n return this.__getterCache.groupPanelItems\r\n }\r\n return this.__getterCache.groupPanelItems = (() => {\r\n var {\r\n groupPanelData: groupPanelData\r\n } = this.props;\r\n var {\r\n baseColSpan: baseColSpan,\r\n groupPanelItems: groupPanelItems\r\n } = groupPanelData;\r\n var colSpans = groupPanelItems.reduceRight((currentColSpans, groupsRow, index) => {\r\n var nextColSpans = currentColSpans;\r\n var currentLevelGroupCount = groupsRow.length;\r\n var previousColSpan = index === groupPanelItems.length - 1 ? baseColSpan : currentColSpans[index + 1];\r\n var previousLevelGroupCount = index === groupPanelItems.length - 1 ? currentLevelGroupCount : groupPanelItems[index + 1].length;\r\n var groupCountDiff = previousLevelGroupCount / currentLevelGroupCount;\r\n nextColSpans[index] = groupCountDiff * previousColSpan;\r\n return nextColSpans\r\n }, [...new Array(groupPanelItems.length)]);\r\n return groupPanelItems.map((groupsRenderRow, index) => {\r\n var colSpan = colSpans[index];\r\n return groupsRenderRow.map(groupItem => _extends({}, groupItem, {\r\n colSpan: colSpan\r\n }))\r\n })\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.groupPanelData !== nextProps.groupPanelData) {\r\n this.__getterCache.groupPanelItems = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n resourceCellTemplate: getTemplate(props.resourceCellTemplate)\r\n }),\r\n groupPanelItems: this.groupPanelItems,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nGroupPanelHorizontalLayout.defaultProps = HorizontalGroupPanelLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"elementRef\", \"groupByDate\", \"groupOrientation\", \"groupPanelData\", \"groups\", \"height\", \"resourceCellTemplate\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n isVerticalGroupingApplied\r\n} from \"../../utils\";\r\nimport {\r\n GroupPanelBaseProps\r\n} from \"./group_panel_props\";\r\nimport {\r\n GroupPanelVerticalLayout\r\n} from \"./vertical/layout\";\r\nimport {\r\n GroupPanelHorizontalLayout\r\n} from \"./horizontal/layout\";\r\nimport {\r\n VERTICAL_GROUP_ORIENTATION\r\n} from \"../../../consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n isVerticalLayout: isVerticalLayout,\r\n props: {\r\n className: className,\r\n elementRef: elementRef,\r\n groupPanelData: groupPanelData,\r\n height: height,\r\n resourceCellTemplate: resourceCellTemplate\r\n },\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return isVerticalLayout ? createComponentVNode(2, GroupPanelVerticalLayout, {\r\n height: height,\r\n resourceCellTemplate: resourceCellTemplate,\r\n className: className,\r\n groupPanelData: groupPanelData,\r\n elementRef: elementRef,\r\n styles: restAttributes.style\r\n }) : createComponentVNode(2, GroupPanelHorizontalLayout, {\r\n height: height,\r\n resourceCellTemplate: resourceCellTemplate,\r\n className: className,\r\n groupPanelData: groupPanelData,\r\n elementRef: elementRef,\r\n styles: restAttributes.style\r\n })\r\n};\r\nexport var GroupPanelProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(GroupPanelBaseProps), Object.getOwnPropertyDescriptors({\r\n groups: Object.freeze([]),\r\n groupOrientation: VERTICAL_GROUP_ORIENTATION\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class GroupPanel extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get isVerticalLayout() {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups\r\n } = this.props;\r\n return isVerticalGroupingApplied(groups, groupOrientation)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n resourceCellTemplate: getTemplate(props.resourceCellTemplate)\r\n }),\r\n isVerticalLayout: this.isVerticalLayout,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nGroupPanel.defaultProps = GroupPanelProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/group_panel/group_panel.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n GroupPanelWrapper\r\n} from \"../../../../../component_wrapper/scheduler/group_panel\";\r\nimport {\r\n GroupPanel as GroupPanelComponent\r\n} from \"./group_panel\";\r\nexport default class GroupPanel extends GroupPanelWrapper {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"resourceCellTemplate\"],\r\n props: [\"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return GroupPanelComponent\r\n }\r\n}\r\nregisterComponent(\"dxGroupPanel\", GroupPanel);\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/scheduler/header_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Component from \"../common/component\";\r\nexport class HeaderPanel extends Component {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends({}, this._optionsByReference, {\r\n dateHeaderData: true,\r\n resourceCellTemplate: true,\r\n dateCellTemplate: true,\r\n timeCellTemplate: true\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/dateHeaderText.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"splitText\", \"text\"];\r\nimport {\r\n createVNode,\r\n createFragment\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n splitText: splitText,\r\n text: text\r\n },\r\n textParts: textParts\r\n } = _ref;\r\n return createFragment(splitText ? textParts.map(part => createVNode(1, \"div\", \"dx-scheduler-header-panel-cell-date\", createVNode(1, \"span\", null, part, 0), 2)) : text, 0)\r\n};\r\nexport var DateHeaderTextProps = {\r\n text: \"\",\r\n splitText: false\r\n};\r\nexport class DateHeaderText extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get textParts() {\r\n if (void 0 !== this.__getterCache.textParts) {\r\n return this.__getterCache.textParts\r\n }\r\n return this.__getterCache.textParts = (() => {\r\n var {\r\n text: text\r\n } = this.props;\r\n return text ? text.split(\" \") : [\"\"]\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.text !== nextProps.text) {\r\n this.__getterCache.textParts = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n textParts: this.textParts,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateHeaderText.defaultProps = DateHeaderTextProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"colSpan\", \"contentTemplateProps\", \"dateCellTemplate\", \"endDate\", \"groupIndex\", \"groups\", \"index\", \"isFirstGroupCell\", \"isLastGroupCell\", \"isTimeCellTemplate\", \"isWeekDayCell\", \"splitText\", \"startDate\", \"text\", \"timeCellTemplate\", \"today\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n CellBaseProps\r\n} from \"../../cell\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../../utils/combine_classes\";\r\nimport {\r\n getGroupCellClasses\r\n} from \"../../../utils\";\r\nimport {\r\n DateHeaderText\r\n} from \"./dateHeaderText\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n props: {\r\n colSpan: colSpan,\r\n dateCellTemplate: DateCellTemplate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isTimeCellTemplate: isTimeCellTemplate,\r\n splitText: splitText,\r\n startDate: startDate,\r\n text: text,\r\n timeCellTemplate: TimeCellTemplate\r\n },\r\n useTemplate: useTemplate\r\n } = _ref;\r\n return createVNode(1, \"th\", classes, useTemplate ? createFragment([isTimeCellTemplate && TimeCellTemplate && TimeCellTemplate({\r\n data: {\r\n date: startDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n index: index\r\n }), !isTimeCellTemplate && DateCellTemplate && DateCellTemplate({\r\n data: {\r\n date: startDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n index: index\r\n })], 0) : createComponentVNode(2, DateHeaderText, {\r\n splitText: splitText,\r\n text: text\r\n }), 0, {\r\n colSpan: colSpan,\r\n title: text\r\n })\r\n};\r\nexport var DateHeaderCellProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CellBaseProps), Object.getOwnPropertyDescriptors({\r\n today: false,\r\n colSpan: 1,\r\n isWeekDayCell: false,\r\n splitText: false,\r\n isTimeCellTemplate: false\r\n})));\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class DateHeaderCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get classes() {\r\n var {\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isWeekDayCell: isWeekDayCell,\r\n today: today\r\n } = this.props;\r\n var cellClasses = combineClasses({\r\n \"dx-scheduler-header-panel-cell\": true,\r\n \"dx-scheduler-cell-sizes-horizontal\": true,\r\n \"dx-scheduler-header-panel-current-time-cell\": today,\r\n \"dx-scheduler-header-panel-week-cell\": isWeekDayCell,\r\n [className]: !!className\r\n });\r\n return getGroupCellClasses(isFirstGroupCell, isLastGroupCell, cellClasses)\r\n }\r\n get useTemplate() {\r\n var {\r\n dateCellTemplate: dateCellTemplate,\r\n isTimeCellTemplate: isTimeCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n } = this.props;\r\n return !isTimeCellTemplate && !!dateCellTemplate || isTimeCellTemplate && !!timeCellTemplate\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n timeCellTemplate: getTemplate(props.timeCellTemplate),\r\n dateCellTemplate: getTemplate(props.dateCellTemplate)\r\n }),\r\n classes: this.classes,\r\n useTemplate: this.useTemplate,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateHeaderCell.defaultProps = DateHeaderCellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/getThemeType.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterialBased,\r\n isFluent,\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../ui/themes\";\r\nvar getThemeType = () => {\r\n var theme = current();\r\n return {\r\n isCompact: isCompact(theme),\r\n isMaterial: isMaterial(theme),\r\n isFluent: isFluent(theme),\r\n isMaterialBased: isMaterialBased(theme)\r\n }\r\n};\r\nexport default getThemeType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_panel/date_header/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"dateCellTemplate\", \"dateHeaderData\", \"groupByDate\", \"groupOrientation\", \"groups\", \"timeCellTemplate\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"../../row\";\r\nimport {\r\n isHorizontalGroupingApplied\r\n} from \"../../../utils\";\r\nimport {\r\n DateHeaderCell\r\n} from \"./cell\";\r\nimport getThemeType from \"../../../../../../utils/getThemeType\";\r\nvar {\r\n isMaterialBased: isMaterialBased\r\n} = getThemeType();\r\nexport var viewFunction = _ref => {\r\n var {\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n props: {\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: dateHeaderData\r\n }\r\n } = _ref;\r\n var {\r\n dataMap: dataMap,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth\r\n } = dateHeaderData;\r\n return createFragment(dataMap.map((dateHeaderRow, rowIndex) => createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-header-row\",\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n isHeaderRow: true,\r\n children: dateHeaderRow.map(_ref2 => {\r\n var {\r\n colSpan: colSpan,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: cellGroups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref2;\r\n return createComponentVNode(2, DateHeaderCell, {\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: isHorizontalGrouping ? cellGroups : void 0,\r\n groupIndex: isHorizontalGrouping ? groupIndex : void 0,\r\n today: today,\r\n index: index,\r\n text: text,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n dateCellTemplate: dateCellTemplate,\r\n colSpan: colSpan,\r\n splitText: isMaterialBased\r\n }, key)\r\n })\r\n }, rowIndex.toString())), 0)\r\n};\r\nexport var DateHeaderLayoutProps = {\r\n groupOrientation: \"horizontal\",\r\n groupByDate: false,\r\n groups: Object.freeze([])\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class DateHeaderLayout extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get isHorizontalGrouping() {\r\n var {\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups\r\n } = this.props;\r\n return isHorizontalGroupingApplied(groups, groupOrientation) && !groupByDate\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dateCellTemplate: getTemplate(props.dateCellTemplate),\r\n timeCellTemplate: getTemplate(props.timeCellTemplate)\r\n }),\r\n isHorizontalGrouping: this.isHorizontalGrouping,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDateHeaderLayout.defaultProps = DateHeaderLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_panel/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"dateCellTemplate\", \"dateHeaderData\", \"dateHeaderTemplate\", \"elementRef\", \"groupByDate\", \"groupOrientation\", \"groupPanelData\", \"groups\", \"height\", \"isRenderDateHeader\", \"resourceCellTemplate\", \"timeCellTemplate\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n isHorizontalGroupingApplied\r\n} from \"../../utils\";\r\nimport {\r\n GroupPanel,\r\n GroupPanelProps\r\n} from \"../group_panel/group_panel\";\r\nimport {\r\n DateHeaderLayout\r\n} from \"./date_header/layout\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n props: {\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: dateHeaderData,\r\n dateHeaderTemplate: DateHeader,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n isRenderDateHeader: isRenderDateHeader,\r\n resourceCellTemplate: resourceCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n }\r\n } = _ref;\r\n return createVNode(1, \"thead\", null, [isHorizontalGrouping && !groupByDate && createComponentVNode(2, GroupPanel, {\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n resourceCellTemplate: resourceCellTemplate\r\n }), isRenderDateHeader && DateHeader({\r\n groupByDate: groupByDate,\r\n dateHeaderData: dateHeaderData,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n dateCellTemplate: dateCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n }), groupByDate && createComponentVNode(2, GroupPanel, {\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n resourceCellTemplate: resourceCellTemplate\r\n })], 0)\r\n};\r\nexport var HeaderPanelLayoutProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(GroupPanelProps), Object.getOwnPropertyDescriptors({\r\n isRenderDateHeader: true,\r\n dateHeaderTemplate: DateHeaderLayout\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class HeaderPanelLayout extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get isHorizontalGrouping() {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups\r\n } = this.props;\r\n return isHorizontalGroupingApplied(groups, groupOrientation)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dateCellTemplate: getTemplate(props.dateCellTemplate),\r\n timeCellTemplate: getTemplate(props.timeCellTemplate),\r\n dateHeaderTemplate: getTemplate(props.dateHeaderTemplate),\r\n resourceCellTemplate: getTemplate(props.resourceCellTemplate)\r\n }),\r\n isHorizontalGrouping: this.isHorizontalGrouping,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nHeaderPanelLayout.defaultProps = HeaderPanelLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/header_panel/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n HeaderPanel\r\n} from \"../../../../../component_wrapper/scheduler/header_panel\";\r\nimport {\r\n HeaderPanelLayout as HeaderPanelLayoutComponent\r\n} from \"./layout\";\r\nexport default class HeaderPanelLayout extends HeaderPanel {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"resourceCellTemplate\"],\r\n props: [\"dateHeaderData\", \"isRenderDateHeader\", \"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return HeaderPanelLayoutComponent\r\n }\r\n}\r\nregisterComponent(\"dxHeaderPanelLayout\", HeaderPanelLayout);\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/scheduler/time_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Component from \"../common/component\";\r\nexport class TimePanel extends Component {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends({}, this._optionsByReference, {\r\n timeCellTemplate: true\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/time_panel/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"contentTemplateProps\", \"endDate\", \"groupIndex\", \"groups\", \"highlighted\", \"index\", \"isFirstGroupCell\", \"isLastGroupCell\", \"startDate\", \"text\", \"timeCellTemplate\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n CellBase as Cell,\r\n CellBaseProps\r\n} from \"../cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n className: className,\r\n highlighted: highlighted,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n text: text,\r\n timeCellTemplate: TimeCellTemplate\r\n },\r\n timeCellTemplateProps: timeCellTemplateProps\r\n } = _ref;\r\n return createComponentVNode(2, Cell, {\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n className: \"dx-scheduler-time-panel-cell dx-scheduler-cell-sizes-vertical \".concat(highlighted ? \"dx-scheduler-time-panel-current-time-cell\" : \"\", \" \").concat(className),\r\n children: [!TimeCellTemplate && createVNode(1, \"div\", null, text, 0), !!TimeCellTemplate && TimeCellTemplate({\r\n index: timeCellTemplateProps.index,\r\n data: timeCellTemplateProps.data\r\n })]\r\n })\r\n};\r\nexport var TimePanelCellProps = CellBaseProps;\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class TimePanelCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get timeCellTemplateProps() {\r\n if (void 0 !== this.__getterCache.timeCellTemplateProps) {\r\n return this.__getterCache.timeCellTemplateProps\r\n }\r\n return this.__getterCache.timeCellTemplateProps = (() => {\r\n var {\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n startDate: startDate,\r\n text: text\r\n } = this.props;\r\n return {\r\n data: {\r\n date: startDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n text: text\r\n },\r\n index: index\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.groupIndex !== nextProps.groupIndex || this.props.groups !== nextProps.groups || this.props.index !== nextProps.index || this.props.startDate !== nextProps.startDate || this.props.text !== nextProps.text) {\r\n this.__getterCache.timeCellTemplateProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n timeCellTemplate: getTemplate(props.timeCellTemplate)\r\n }),\r\n timeCellTemplateProps: this.timeCellTemplateProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nTimePanelCell.defaultProps = TimePanelCellProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/time_panel/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"groupOrientation\", \"tableRef\", \"timeCellTemplate\", \"timePanelData\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"../row\";\r\nimport {\r\n TimePanelCell\r\n} from \"./cell\";\r\nimport {\r\n CellBase\r\n} from \"../cell\";\r\nimport {\r\n Table\r\n} from \"../table\";\r\nimport {\r\n AllDayPanelTitle\r\n} from \"../date_table/all_day_panel/title\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n props: {\r\n tableRef: tableRef,\r\n timeCellTemplate: timeCellTemplate,\r\n timePanelData: timePanelData\r\n },\r\n restAttributes: restAttributes,\r\n topVirtualRowHeight: topVirtualRowHeight\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Table, _extends({}, restAttributes, {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n virtualCellsCount: 1,\r\n className: \"dx-scheduler-time-panel\",\r\n tableRef: tableRef,\r\n children: timePanelData.groupedData.map(_ref2 => {\r\n var {\r\n dateTable: dateTable,\r\n groupIndex: groupIndex,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n key: fragmentKey\r\n } = _ref2;\r\n return createFragment([isGroupedAllDayPanel && createComponentVNode(2, Row, {\r\n children: createComponentVNode(2, CellBase, {\r\n className: \"dx-scheduler-time-panel-title-cell\",\r\n children: createComponentVNode(2, AllDayPanelTitle)\r\n })\r\n }), dateTable.map(cell => {\r\n var {\r\n groups: groups,\r\n highlighted: highlighted,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text\r\n } = cell;\r\n return createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-time-panel-row\",\r\n children: createComponentVNode(2, TimePanelCell, {\r\n startDate: startDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: cellIndex,\r\n timeCellTemplate: timeCellTemplate,\r\n highlighted: highlighted\r\n })\r\n }, key)\r\n })], 0, fragmentKey)\r\n })\r\n })))\r\n};\r\nexport var TimePanelLayoutProps = {\r\n timePanelData: Object.freeze({\r\n groupedData: [],\r\n leftVirtualCellCount: 0,\r\n rightVirtualCellCount: 0,\r\n topVirtualRowCount: 0,\r\n bottomVirtualRowCount: 0\r\n })\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class TimePanelTableLayout extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get topVirtualRowHeight() {\r\n var _this$props$timePanel;\r\n return null !== (_this$props$timePanel = this.props.timePanelData.topVirtualRowHeight) && void 0 !== _this$props$timePanel ? _this$props$timePanel : 0\r\n }\r\n get bottomVirtualRowHeight() {\r\n var _this$props$timePanel2;\r\n return null !== (_this$props$timePanel2 = this.props.timePanelData.bottomVirtualRowHeight) && void 0 !== _this$props$timePanel2 ? _this$props$timePanel2 : 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n timeCellTemplate: getTemplate(props.timeCellTemplate)\r\n }),\r\n topVirtualRowHeight: this.topVirtualRowHeight,\r\n bottomVirtualRowHeight: this.bottomVirtualRowHeight,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nTimePanelTableLayout.defaultProps = TimePanelLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/base/time_panel/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n TimePanel\r\n} from \"../../../../../component_wrapper/scheduler/time_panel\";\r\nimport {\r\n TimePanelTableLayout as TimePanelTableLayoutComponent\r\n} from \"./layout\";\r\nexport default class TimePanelTableLayout extends TimePanel {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"timeCellTemplate\"],\r\n props: [\"groupOrientation\", \"timePanelData\", \"timeCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return TimePanelTableLayoutComponent\r\n }\r\n}\r\nregisterComponent(\"dxTimePanelTableLayout\", TimePanelTableLayout);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/base/m_widget_observer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nclass WidgetObserver extends Widget {\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke() {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n}\r\nexport default WidgetObserver;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointment_drag_behavior.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Draggable from \"../../ui/draggable\";\r\nimport {\r\n LIST_ITEM_DATA_KEY\r\n} from \"./m_constants\";\r\nimport {\r\n isSchedulerComponent\r\n} from \"./utils/is_scheduler_component\";\r\nvar APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nexport default class AppointmentDragBehavior {\r\n constructor(scheduler) {\r\n this.scheduler = scheduler;\r\n this.workspace = this.scheduler._workSpace;\r\n this.appointments = this.scheduler._appointments;\r\n this.initialPosition = {\r\n left: 0,\r\n top: 0\r\n };\r\n this.appointmentInfo = null;\r\n this.dragBetweenComponentsPromise = null\r\n }\r\n isAllDay(appointment) {\r\n return appointment.data(\"dxAppointmentSettings\").allDay\r\n }\r\n onDragStart(e) {\r\n var {\r\n itemSettings: itemSettings,\r\n itemData: itemData,\r\n initialPosition: initialPosition\r\n } = e;\r\n this.initialPosition = initialPosition;\r\n this.appointmentInfo = {\r\n appointment: itemData,\r\n settings: itemSettings\r\n };\r\n this.appointments.notifyObserver(\"hideAppointmentTooltip\")\r\n }\r\n onDragMove(e) {\r\n if (e.fromComponent !== e.toComponent) {\r\n this.appointments.notifyObserver(\"removeDroppableCellClass\")\r\n }\r\n }\r\n getAppointmentElement(e) {\r\n var itemElement = e.event.data && e.event.data.itemElement || e.itemElement;\r\n return $(itemElement)\r\n }\r\n onDragEnd(event) {\r\n var element = this.getAppointmentElement(event);\r\n var rawAppointment = this.appointments._getItemData(element);\r\n var container = this.appointments._getAppointmentContainer(this.isAllDay(element));\r\n container.append(element);\r\n var newCellIndex = this.workspace.getDroppableCellIndex();\r\n var oldCellIndex = this.workspace.getCellIndexByCoordinates(this.initialPosition);\r\n this.appointments.notifyObserver(\"updateAppointmentAfterDrag\", {\r\n event: event,\r\n element: element,\r\n rawAppointment: rawAppointment,\r\n newCellIndex: newCellIndex,\r\n oldCellIndex: oldCellIndex\r\n })\r\n }\r\n onDragCancel() {\r\n this.removeDroppableClasses()\r\n }\r\n getItemData(appointmentElement) {\r\n var dataFromTooltip = $(appointmentElement).data(LIST_ITEM_DATA_KEY);\r\n var itemDataFromTooltip = null === dataFromTooltip || void 0 === dataFromTooltip ? void 0 : dataFromTooltip.appointment;\r\n var itemDataFromGrid = this.appointments._getItemData(appointmentElement);\r\n return itemDataFromTooltip || itemDataFromGrid\r\n }\r\n getItemSettings(appointment) {\r\n var itemData = $(appointment).data(LIST_ITEM_DATA_KEY);\r\n return itemData && itemData.settings || []\r\n }\r\n createDragStartHandler(options, appointmentDragging) {\r\n return e => {\r\n e.itemData = this.getItemData(e.itemElement);\r\n e.itemSettings = this.getItemSettings(e.itemElement);\r\n appointmentDragging.onDragStart && appointmentDragging.onDragStart(e);\r\n if (!e.cancel) {\r\n options.onDragStart(e)\r\n }\r\n }\r\n }\r\n createDragMoveHandler(options, appointmentDragging) {\r\n return e => {\r\n appointmentDragging.onDragMove && appointmentDragging.onDragMove(e);\r\n if (!e.cancel) {\r\n options.onDragMove(e)\r\n }\r\n }\r\n }\r\n createDragEndHandler(options, appointmentDragging) {\r\n return e => {\r\n var updatedData = this.appointments.invoke(\"getUpdatedData\", e.itemData);\r\n this.appointmentInfo = null;\r\n e.toItemData = extend({}, e.itemData, updatedData);\r\n appointmentDragging.onDragEnd && appointmentDragging.onDragEnd(e);\r\n if (!e.cancel) {\r\n options.onDragEnd(e);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onRemove && appointmentDragging.onRemove(e)\r\n }\r\n }\r\n if (true === e.cancel) {\r\n this.removeDroppableClasses()\r\n }\r\n if (true !== e.cancel && isSchedulerComponent(e.toComponent)) {\r\n var targetDragBehavior = e.toComponent._getDragBehavior();\r\n targetDragBehavior.dragBetweenComponentsPromise = new Deferred\r\n }\r\n }\r\n }\r\n createDropHandler(appointmentDragging) {\r\n return e => {\r\n var updatedData = this.appointments.invoke(\"getUpdatedData\", e.itemData);\r\n e.itemData = extend({}, e.itemData, updatedData);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onAdd && appointmentDragging.onAdd(e)\r\n }\r\n if (this.dragBetweenComponentsPromise) {\r\n this.dragBetweenComponentsPromise.resolve()\r\n }\r\n }\r\n }\r\n addTo(container, config) {\r\n var appointmentDragging = this.scheduler.option(\"appointmentDragging\") || {};\r\n var options = extend({\r\n component: this.scheduler,\r\n contentTemplate: null,\r\n filter: \".\".concat(APPOINTMENT_ITEM_CLASS),\r\n immediate: false,\r\n onDragStart: this.onDragStart.bind(this),\r\n onDragMove: this.onDragMove.bind(this),\r\n onDragEnd: this.onDragEnd.bind(this),\r\n onDragCancel: this.onDragCancel.bind(this)\r\n }, config);\r\n this.appointments._createComponent(container, Draggable, extend({}, options, appointmentDragging, {\r\n onDragStart: this.createDragStartHandler(options, appointmentDragging),\r\n onDragMove: this.createDragMoveHandler(options, appointmentDragging),\r\n onDragEnd: this.createDragEndHandler(options, appointmentDragging),\r\n onDrop: this.createDropHandler(appointmentDragging),\r\n onCancelByEsc: true\r\n }))\r\n }\r\n updateDragSource(appointment, settings) {\r\n var {\r\n appointmentInfo: appointmentInfo\r\n } = this;\r\n if (appointmentInfo || appointment) {\r\n var currentAppointment = appointment || appointmentInfo.appointment;\r\n var currentSettings = settings || appointmentInfo.settings;\r\n this.appointments._setDragSourceAppointment(currentAppointment, currentSettings)\r\n }\r\n }\r\n removeDroppableClasses() {\r\n this.appointments._removeDragSourceClassFromDraggedAppointment();\r\n this.workspace.removeDroppableCellClass()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/utils/is_scheduler_component.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar schedulerComponentName = \"dxScheduler\";\r\nexport function isSchedulerComponent(component) {\r\n return component.NAME === schedulerComponentName\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nvar DATE_TIME_SHADER_CLASS = \"dx-scheduler-date-time-shader\";\r\nclass CurrentTimeShader {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace;\r\n this._$container = this._workSpace._dateTableScrollable.$content()\r\n }\r\n render() {\r\n this.initShaderElements();\r\n this.renderShader();\r\n this._shader.forEach(shader => {\r\n this._$container.append(shader)\r\n })\r\n }\r\n initShaderElements() {\r\n this._$shader = this.createShader();\r\n this._shader = [];\r\n this._shader.push(this._$shader)\r\n }\r\n renderShader() {}\r\n createShader() {\r\n return $(\"<div>\").addClass(DATE_TIME_SHADER_CLASS)\r\n }\r\n clean() {\r\n this._$container && this._$container.find(\".\".concat(DATE_TIME_SHADER_CLASS)).remove()\r\n }\r\n}\r\nexport default CurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader_vertical.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n setHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport CurrentTimeShader from \"./m_current_time_shader\";\r\nvar DATE_TIME_SHADER_ALL_DAY_CLASS = \"dx-scheduler-date-time-shader-all-day\";\r\nvar DATE_TIME_SHADER_TOP_CLASS = \"dx-scheduler-date-time-shader-top\";\r\nvar DATE_TIME_SHADER_BOTTOM_CLASS = \"dx-scheduler-date-time-shader-bottom\";\r\nclass VerticalCurrentTimeShader extends CurrentTimeShader {\r\n renderShader() {\r\n var shaderHeight = this._getShaderHeight();\r\n var maxHeight = this._getShaderMaxHeight();\r\n var isSolidShader = shaderHeight > maxHeight;\r\n if (shaderHeight > maxHeight) {\r\n shaderHeight = maxHeight\r\n }\r\n setHeight(this._$shader, shaderHeight);\r\n var groupCount = this._workSpace._getGroupCount() || 1;\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._renderGroupedByDateShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n } else {\r\n this._renderShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n }\r\n }\r\n _renderShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var shaderWidth = this._getShaderWidth(i);\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth, i);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight, shaderHeight, shaderWidth, i);\r\n this._renderAllDayShader(shaderWidth, i)\r\n }\r\n }\r\n _renderGroupedByDateShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n var shaderWidth = this._getShaderWidth(0);\r\n var bottomShaderWidth = shaderWidth - this._workSpace.getCellWidth();\r\n if (shaderHeight < 0) {\r\n shaderHeight = 0;\r\n bottomShaderWidth = shaderWidth\r\n }\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth * groupCount, 0);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight, shaderHeight, bottomShaderWidth * groupCount + this._workSpace.getCellWidth(), 0);\r\n this._renderAllDayShader(shaderWidth * groupCount, 0)\r\n }\r\n _renderTopShader($shader, height, width, i) {\r\n this._$topShader = $(\"<div>\").addClass(DATE_TIME_SHADER_TOP_CLASS);\r\n if (width) {\r\n setWidth(this._$topShader, width)\r\n }\r\n if (height) {\r\n setHeight(this._$topShader, height)\r\n }\r\n this._$topShader.css(\"marginTop\", this._getShaderTopOffset(i));\r\n this._$topShader.css(\"left\", this._getShaderOffset(i, width));\r\n $shader.append(this._$topShader)\r\n }\r\n _renderBottomShader($shader, maxHeight, height, width, i) {\r\n this._$bottomShader = $(\"<div>\").addClass(DATE_TIME_SHADER_BOTTOM_CLASS);\r\n var shaderWidth = height < 0 ? width : width - this._workSpace.getCellWidth();\r\n var shaderHeight = height < 0 ? maxHeight : maxHeight - height;\r\n setWidth(this._$bottomShader, shaderWidth);\r\n setHeight(this._$bottomShader, shaderHeight);\r\n this._$bottomShader.css(\"left\", this._getShaderOffset(i, width - this._workSpace.getCellWidth()));\r\n $shader.append(this._$bottomShader)\r\n }\r\n _renderAllDayShader(shaderWidth, i) {\r\n if (this._workSpace.option(\"showAllDayPanel\")) {\r\n this._$allDayIndicator = $(\"<div>\").addClass(DATE_TIME_SHADER_ALL_DAY_CLASS);\r\n setHeight(this._$allDayIndicator, this._workSpace.getAllDayHeight());\r\n setWidth(this._$allDayIndicator, shaderWidth);\r\n this._$allDayIndicator.css(\"left\", this._getShaderOffset(i, shaderWidth));\r\n this._workSpace._$allDayPanel.prepend(this._$allDayIndicator)\r\n }\r\n }\r\n _getShaderOffset(i, width) {\r\n return this._workSpace.getGroupedStrategy().getShaderOffset(i, width)\r\n }\r\n _getShaderTopOffset(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderTopOffset(i)\r\n }\r\n _getShaderHeight() {\r\n return this._workSpace.getGroupedStrategy().getShaderHeight()\r\n }\r\n _getShaderMaxHeight() {\r\n return this._workSpace.getGroupedStrategy().getShaderMaxHeight()\r\n }\r\n _getShaderWidth(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderWidth(i)\r\n }\r\n clean() {\r\n super.clean();\r\n this._workSpace && this._workSpace._$allDayPanel && this._workSpace._$allDayPanel.find(\".\".concat(DATE_TIME_SHADER_ALL_DAY_CLASS)).remove()\r\n }\r\n}\r\nexport default VerticalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cache.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport class Cache {\r\n constructor() {\r\n this._cache = new Map\r\n }\r\n get size() {\r\n return this._cache.size\r\n }\r\n clear() {\r\n this._cache.clear()\r\n }\r\n get(name, callback) {\r\n if (!this._cache.has(name) && callback) {\r\n this.set(name, callback())\r\n }\r\n return this._cache.get(name)\r\n }\r\n set(name, value) {\r\n isDefined(value) && this._cache.set(name, value)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cells_selection_controller.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDateAndTimeView\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nexport class CellsSelectionController {\r\n handleArrowClick(options) {\r\n var {\r\n key: key,\r\n focusedCellPosition: focusedCellPosition,\r\n edgeIndices: edgeIndices,\r\n getCellDataByPosition: getCellDataByPosition,\r\n isAllDayPanelCell: isAllDayPanelCell\r\n } = options;\r\n var nextCellIndices;\r\n switch (key) {\r\n case \"down\":\r\n nextCellIndices = this.getCellFromNextRowPosition(focusedCellPosition, \"next\", edgeIndices);\r\n break;\r\n case \"up\":\r\n nextCellIndices = this.getCellFromNextRowPosition(focusedCellPosition, \"prev\", edgeIndices);\r\n break;\r\n case \"left\":\r\n nextCellIndices = this.getCellFromNextColumnPosition(_extends(_extends({}, options), {\r\n direction: \"prev\"\r\n }));\r\n break;\r\n case \"right\":\r\n nextCellIndices = this.getCellFromNextColumnPosition(_extends(_extends({}, options), {\r\n direction: \"next\"\r\n }))\r\n }\r\n var currentCellData = getCellDataByPosition(nextCellIndices.rowIndex, nextCellIndices.columnIndex, isAllDayPanelCell);\r\n return this.moveToCell(_extends(_extends({}, options), {\r\n currentCellData: currentCellData\r\n }))\r\n }\r\n getCellFromNextRowPosition(focusedCellPosition, direction, edgeIndices) {\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = focusedCellPosition;\r\n var deltaPosition = \"next\" === direction ? 1 : -1;\r\n var nextRowIndex = rowIndex + deltaPosition;\r\n var validRowIndex = nextRowIndex >= 0 && nextRowIndex <= edgeIndices.lastRowIndex ? nextRowIndex : rowIndex;\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: validRowIndex\r\n }\r\n }\r\n getCellFromNextColumnPosition(options) {\r\n var {\r\n focusedCellPosition: focusedCellPosition,\r\n direction: direction,\r\n edgeIndices: edgeIndices,\r\n isRTL: isRTL,\r\n isGroupedByDate: isGroupedByDate,\r\n groupCount: groupCount,\r\n isMultiSelection: isMultiSelection,\r\n viewType: viewType\r\n } = options;\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = focusedCellPosition;\r\n var {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex\r\n } = edgeIndices;\r\n var step = isGroupedByDate && isMultiSelection ? groupCount : 1;\r\n var sign = isRTL ? -1 : 1;\r\n var deltaColumnIndex = \"next\" === direction ? sign * step : -1 * sign * step;\r\n var nextColumnIndex = columnIndex + deltaColumnIndex;\r\n var isValidColumnIndex = nextColumnIndex >= firstColumnIndex && nextColumnIndex <= lastColumnIndex;\r\n if (isValidColumnIndex) {\r\n return {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return isDateAndTimeView(viewType) ? focusedCellPosition : this._processEdgeCell({\r\n nextColumnIndex: nextColumnIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex,\r\n step: step\r\n })\r\n }\r\n _processEdgeCell(options) {\r\n var {\r\n nextColumnIndex: nextColumnIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex,\r\n step: step\r\n } = options;\r\n var validColumnIndex = nextColumnIndex;\r\n var validRowIndex = rowIndex;\r\n var isLeftEdgeCell = nextColumnIndex < firstColumnIndex;\r\n var isRightEdgeCell = nextColumnIndex > lastColumnIndex;\r\n if (isLeftEdgeCell) {\r\n var columnIndexInNextRow = lastColumnIndex - (step - columnIndex % step - 1);\r\n var nextRowIndex = rowIndex - 1;\r\n var isValidRowIndex = nextRowIndex >= firstRowIndex;\r\n validRowIndex = isValidRowIndex ? nextRowIndex : rowIndex;\r\n validColumnIndex = isValidRowIndex ? columnIndexInNextRow : columnIndex\r\n }\r\n if (isRightEdgeCell) {\r\n var _columnIndexInNextRow = firstColumnIndex + columnIndex % step;\r\n var _nextRowIndex = rowIndex + 1;\r\n var _isValidRowIndex = _nextRowIndex <= lastRowIndex;\r\n validRowIndex = _isValidRowIndex ? _nextRowIndex : rowIndex;\r\n validColumnIndex = _isValidRowIndex ? _columnIndexInNextRow : columnIndex\r\n }\r\n return {\r\n columnIndex: validColumnIndex,\r\n rowIndex: validRowIndex\r\n }\r\n }\r\n moveToCell(options) {\r\n var {\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n focusedCellData: focusedCellData,\r\n currentCellData: currentCellData\r\n } = options;\r\n var isValidMultiSelection = isMultiSelection && isMultiSelectionAllowed;\r\n var nextFocusedCellData = isValidMultiSelection ? this._getNextCellData(currentCellData, focusedCellData) : currentCellData;\r\n return nextFocusedCellData\r\n }\r\n _getNextCellData(nextFocusedCellData, focusedCellData, isVirtualCell) {\r\n if (isVirtualCell) {\r\n return focusedCellData\r\n }\r\n var isValidNextFocusedCell = this._isValidNextFocusedCell(nextFocusedCellData, focusedCellData);\r\n return isValidNextFocusedCell ? nextFocusedCellData : focusedCellData\r\n }\r\n _isValidNextFocusedCell(nextFocusedCellData, focusedCellData) {\r\n if (!focusedCellData) {\r\n return true\r\n }\r\n var {\r\n groupIndex: groupIndex,\r\n allDay: allDay\r\n } = focusedCellData;\r\n var {\r\n groupIndex: nextGroupIndex,\r\n allDay: nextAllDay\r\n } = nextFocusedCellData;\r\n return groupIndex === nextGroupIndex && allDay === nextAllDay\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cells_selection_state.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default class CellsSelectionState {\r\n constructor(_viewDataProvider) {\r\n this._viewDataProvider = _viewDataProvider;\r\n this._focusedCell = null;\r\n this._selectedCells = null;\r\n this._firstSelectedCell = null;\r\n this._prevFocusedCell = null;\r\n this._prevSelectedCells = null\r\n }\r\n get viewDataProvider() {\r\n return this._viewDataProvider\r\n }\r\n get focusedCell() {\r\n var focusedCell = this._focusedCell;\r\n if (!focusedCell) {\r\n return\r\n }\r\n var {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n allDay: allDay\r\n } = focusedCell;\r\n var cellInfo = {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n isAllDay: allDay,\r\n index: focusedCell.index\r\n };\r\n var cellPosition = this.viewDataProvider.findCellPositionInMap(cellInfo);\r\n return {\r\n coordinates: cellPosition,\r\n cellData: focusedCell\r\n }\r\n }\r\n setFocusedCell(rowIndex, columnIndex, isAllDay) {\r\n if (rowIndex >= 0) {\r\n var cell = this._viewDataProvider.getCellData(rowIndex, columnIndex, isAllDay);\r\n this._focusedCell = cell\r\n }\r\n }\r\n setSelectedCells(lastCellCoordinates) {\r\n var firstCellCoordinates = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;\r\n var viewDataProvider = this._viewDataProvider;\r\n var {\r\n rowIndex: lastRowIndex,\r\n columnIndex: lastColumnIndex,\r\n allDay: isLastCellAllDay\r\n } = lastCellCoordinates;\r\n if (lastRowIndex < 0) {\r\n return\r\n }\r\n var firstCell = firstCellCoordinates ? viewDataProvider.getCellData(firstCellCoordinates.rowIndex, firstCellCoordinates.columnIndex, firstCellCoordinates.allDay) : this._firstSelectedCell;\r\n var lastCell = viewDataProvider.getCellData(lastRowIndex, lastColumnIndex, isLastCellAllDay);\r\n this._firstSelectedCell = firstCell;\r\n this._selectedCells = this._viewDataProvider.getCellsBetween(firstCell, lastCell)\r\n }\r\n setSelectedCellsByData(selectedCellsData) {\r\n this._selectedCells = selectedCellsData\r\n }\r\n getSelectedCells() {\r\n return this._selectedCells\r\n }\r\n releaseSelectedAndFocusedCells() {\r\n this.releaseSelectedCells();\r\n this.releaseFocusedCell()\r\n }\r\n releaseSelectedCells() {\r\n this._prevSelectedCells = this._selectedCells;\r\n this._prevFirstSelectedCell = this._firstSelectedCell;\r\n this._selectedCells = null;\r\n this._firstSelectedCell = null\r\n }\r\n releaseFocusedCell() {\r\n this._prevFocusedCell = this._focusedCell;\r\n this._focusedCell = null\r\n }\r\n restoreSelectedAndFocusedCells() {\r\n this._selectedCells = this._selectedCells || this._prevSelectedCells;\r\n this._focusedCell = this._focusedCell || this._prevFocusedCell;\r\n this._firstSelectedCell = this._firstSelectedCell || this._prevFirstSelectedCell;\r\n this._prevSelectedCells = null;\r\n this._prevFirstSelectedCell = null;\r\n this._prevFocusedCell = null\r\n }\r\n clearSelectedAndFocusedCells() {\r\n this._prevSelectedCells = null;\r\n this._selectedCells = null;\r\n this._prevFocusedCell = null;\r\n this._focusedCell = null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_virtual_scrolling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar DEFAULT_CELL_HEIGHT = 50;\r\nvar MIN_CELL_WIDTH = 1;\r\nvar MIN_SCROLL_OFFSET = 10;\r\nvar VIRTUAL_APPOINTMENTS_RENDER_TIMEOUT = 15;\r\nvar DOCUMENT_SCROLL_EVENT_NAMESPACE = addNamespace(\"scroll\", \"dxSchedulerVirtualScrolling\");\r\nvar scrollingOrientations = {\r\n vertical: \"vertical\",\r\n horizontal: \"horizontal\",\r\n both: \"both\",\r\n none: \"none\"\r\n};\r\nvar DefaultScrollingOrientation = scrollingOrientations.both;\r\nexport class VirtualScrollingDispatcher {\r\n constructor(options) {\r\n this.options = options;\r\n if (options) {\r\n this._rowHeight = this.getCellHeight();\r\n this._cellWidth = this.getCellWidth();\r\n this._createVirtualScrollingBase()\r\n }\r\n }\r\n get isRTL() {\r\n return this.options.isRTL()\r\n }\r\n get verticalVirtualScrolling() {\r\n return this._verticalVirtualScrolling\r\n }\r\n set verticalVirtualScrolling(value) {\r\n this._verticalVirtualScrolling = value\r\n }\r\n get horizontalVirtualScrolling() {\r\n return this._horizontalVirtualScrolling\r\n }\r\n set horizontalVirtualScrolling(value) {\r\n this._horizontalVirtualScrolling = value\r\n }\r\n get document() {\r\n return domAdapter.getDocument()\r\n }\r\n get height() {\r\n return this.options.getSchedulerHeight()\r\n }\r\n get width() {\r\n return this.options.getSchedulerWidth()\r\n }\r\n get rowHeight() {\r\n return this._rowHeight\r\n }\r\n set rowHeight(value) {\r\n this._rowHeight = value\r\n }\r\n get outlineCount() {\r\n return this.options.getScrolling().outlineCount\r\n }\r\n get cellWidth() {\r\n return this._cellWidth\r\n }\r\n set cellWidth(value) {\r\n this._cellWidth = value\r\n }\r\n get viewportWidth() {\r\n var width = this.width && this.options.getViewWidth();\r\n return width > 0 ? width : this.options.getWindowWidth()\r\n }\r\n get viewportHeight() {\r\n var height = this.height && this.options.getViewHeight();\r\n return height > 0 ? height : this.options.getWindowHeight()\r\n }\r\n get cellCountInsideTopVirtualRow() {\r\n var _a;\r\n return (null === (_a = this.verticalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountBefore) || 0\r\n }\r\n get cellCountInsideLeftVirtualCell() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountBefore) || 0\r\n }\r\n get cellCountInsideRightVirtualCell() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountAfter) || 0\r\n }\r\n get topVirtualRowsCount() {\r\n return this.cellCountInsideTopVirtualRow > 0 ? 1 : 0\r\n }\r\n get leftVirtualCellsCount() {\r\n var virtualItemsCount = !this.isRTL ? this.cellCountInsideLeftVirtualCell : this.cellCountInsideRightVirtualCell;\r\n return virtualItemsCount > 0 ? 1 : 0\r\n }\r\n get virtualRowOffset() {\r\n var _a;\r\n return (null === (_a = this.verticalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemSizeBefore) || 0\r\n }\r\n get virtualCellOffset() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemSizeBefore) || 0\r\n }\r\n get scrollingState() {\r\n var _a, _b;\r\n return {\r\n vertical: null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.state,\r\n horizontal: null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.state\r\n }\r\n }\r\n get verticalScrollingState() {\r\n return this.scrollingState.vertical\r\n }\r\n get horizontalScrollingState() {\r\n return this.scrollingState.horizontal\r\n }\r\n get scrollingOrientation() {\r\n var scrolling = this.options.getScrolling();\r\n if (\"standard\" === scrolling.mode) {\r\n return scrollingOrientations.none\r\n }\r\n return scrolling.orientation || DefaultScrollingOrientation\r\n }\r\n get verticalScrollingAllowed() {\r\n return this.scrollingOrientation === scrollingOrientations.vertical || this.scrollingOrientation === scrollingOrientations.both\r\n }\r\n get horizontalScrollingAllowed() {\r\n return this.scrollingOrientation === scrollingOrientations.horizontal || this.scrollingOrientation === scrollingOrientations.both\r\n }\r\n setViewOptions(options) {\r\n this.options = options;\r\n if (this.verticalVirtualScrolling) {\r\n this.verticalVirtualScrolling.options = options;\r\n this.verticalVirtualScrolling.itemSize = this.rowHeight;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportHeight\r\n }\r\n if (this.horizontalVirtualScrolling) {\r\n this.horizontalVirtualScrolling.options = options;\r\n this.verticalVirtualScrolling.itemSize = this.cellWidth;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportWidth\r\n }\r\n }\r\n getRenderState() {\r\n var _a, _b;\r\n var verticalRenderState = (null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.getRenderState()) || {};\r\n var horizontalRenderState = (null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.getRenderState()) || {};\r\n return _extends(_extends({}, verticalRenderState), horizontalRenderState)\r\n }\r\n getCellHeight() {\r\n var cellHeight = this.options.getCellHeight();\r\n var result = cellHeight > 0 ? cellHeight : DEFAULT_CELL_HEIGHT;\r\n return Math.floor(result)\r\n }\r\n getCellWidth() {\r\n var cellWidth = this.options.getCellWidth();\r\n var minCellWidth = this.options.getCellMinWidth();\r\n if (!cellWidth || cellWidth < minCellWidth) {\r\n cellWidth = minCellWidth\r\n }\r\n var result = cellWidth > 0 ? cellWidth : MIN_CELL_WIDTH;\r\n return Math.floor(result)\r\n }\r\n calculateCoordinatesByDataAndPosition(cellData, position, date, isCalculateTime, isVerticalDirectionView) {\r\n var {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = position;\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = cellData;\r\n var timeToScroll = date.getTime();\r\n var cellStartTime = startDate.getTime();\r\n var cellEndTime = endDate.getTime();\r\n var scrollInCell = allDay || !isCalculateTime ? 0 : (timeToScroll - cellStartTime) / (cellEndTime - cellStartTime);\r\n var cellWidth = this.getCellWidth();\r\n var rowHeight = this.getCellHeight();\r\n var top = isVerticalDirectionView ? (rowIndex + scrollInCell) * rowHeight : rowIndex * rowHeight;\r\n var left = isVerticalDirectionView ? columnIndex * cellWidth : (columnIndex + scrollInCell) * cellWidth;\r\n if (this.isRTL) {\r\n left = this.options.getScrollableOuterWidth() - left\r\n }\r\n return {\r\n top: top,\r\n left: left\r\n }\r\n }\r\n dispose() {\r\n if (this._onScrollHandler) {\r\n eventsEngine.off(this.document, DOCUMENT_SCROLL_EVENT_NAMESPACE, this._onScrollHandler)\r\n }\r\n }\r\n createVirtualScrolling() {\r\n var isVerticalVirtualScrollingCreated = !!this.verticalVirtualScrolling;\r\n var isHorizontalVirtualScrollingCreated = !!this.horizontalVirtualScrolling;\r\n if (this.verticalScrollingAllowed !== isVerticalVirtualScrollingCreated || this.horizontalScrollingAllowed !== isHorizontalVirtualScrollingCreated) {\r\n this._rowHeight = this.getCellHeight();\r\n this._cellWidth = this.getCellWidth();\r\n this._createVirtualScrollingBase()\r\n }\r\n }\r\n _createVirtualScrollingBase() {\r\n if (this.verticalScrollingAllowed) {\r\n this.verticalVirtualScrolling = new VerticalVirtualScrolling(_extends(_extends({}, this.options), {\r\n viewportHeight: this.viewportHeight,\r\n rowHeight: this.rowHeight,\r\n outlineCount: this.outlineCount\r\n }))\r\n }\r\n if (this.horizontalScrollingAllowed) {\r\n this.horizontalVirtualScrolling = new HorizontalVirtualScrolling(_extends(_extends({}, this.options), {\r\n viewportWidth: this.viewportWidth,\r\n cellWidth: this.cellWidth,\r\n outlineCount: this.outlineCount\r\n }))\r\n }\r\n }\r\n isAttachWindowScrollEvent() {\r\n return (this.horizontalScrollingAllowed || this.verticalScrollingAllowed) && !this.height\r\n }\r\n attachScrollableEvents() {\r\n if (this.isAttachWindowScrollEvent()) {\r\n this._attachWindowScroll()\r\n }\r\n }\r\n _attachWindowScroll() {\r\n var window = getWindow();\r\n this._onScrollHandler = this.options.createAction(() => {\r\n var {\r\n scrollX: scrollX,\r\n scrollY: scrollY\r\n } = window;\r\n if (scrollX >= MIN_SCROLL_OFFSET || scrollY >= MIN_SCROLL_OFFSET) {\r\n this.handleOnScrollEvent({\r\n left: scrollX,\r\n top: scrollY\r\n })\r\n }\r\n });\r\n eventsEngine.on(this.document, DOCUMENT_SCROLL_EVENT_NAMESPACE, this._onScrollHandler)\r\n }\r\n handleOnScrollEvent(scrollPosition) {\r\n var _a, _b, _c, _d;\r\n if (scrollPosition) {\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollPosition;\r\n var verticalStateChanged = isDefined(top) && (null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.updateState(top));\r\n var horizontalStateChanged = isDefined(left) && (null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.updateState(left));\r\n if (verticalStateChanged || horizontalStateChanged) {\r\n null === (_d = (_c = this.options).updateRender) || void 0 === _d ? void 0 : _d.call(_c)\r\n }\r\n }\r\n }\r\n updateDimensions(isForce) {\r\n var _a, _b;\r\n var cellHeight = this.getCellHeight();\r\n var needUpdateVertical = this.verticalScrollingAllowed && cellHeight !== this.rowHeight;\r\n if ((needUpdateVertical || isForce) && this.verticalVirtualScrolling) {\r\n this.rowHeight = cellHeight;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportHeight;\r\n this.verticalVirtualScrolling.reinitState(cellHeight, isForce)\r\n }\r\n var cellWidth = this.getCellWidth();\r\n var needUpdateHorizontal = this.horizontalScrollingAllowed && cellWidth !== this.cellWidth;\r\n if ((needUpdateHorizontal || isForce) && this.horizontalVirtualScrolling) {\r\n this.cellWidth = cellWidth;\r\n this.horizontalVirtualScrolling.viewportSize = this.viewportWidth;\r\n this.horizontalVirtualScrolling.reinitState(cellWidth, isForce)\r\n }\r\n if (needUpdateVertical || needUpdateHorizontal) {\r\n null === (_b = (_a = this.options).updateGrid) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n }\r\n}\r\nclass VirtualScrollingBase {\r\n constructor(options) {\r\n this.options = options;\r\n this._state = this.defaultState;\r\n this.viewportSize = this.options.viewportSize;\r\n this._itemSize = this.options.itemSize;\r\n this._position = -1;\r\n this._itemSizeChanged = false;\r\n this.updateState(0)\r\n }\r\n get itemSize() {\r\n return this._itemSize\r\n }\r\n set itemSize(value) {\r\n this._itemSizeChanged = this._itemSize !== value;\r\n this._itemSize = value\r\n }\r\n get state() {\r\n return this._state\r\n }\r\n set state(value) {\r\n this._state = value\r\n }\r\n get startIndex() {\r\n return this.state.startIndex\r\n }\r\n get pageSize() {\r\n return Math.ceil(this.viewportSize / this.itemSize)\r\n }\r\n get outlineCount() {\r\n return isDefined(this.options.outlineCount) ? this.options.outlineCount : Math.floor(this.pageSize / 2)\r\n }\r\n get groupCount() {\r\n return this.options.getGroupCount()\r\n }\r\n get isVerticalGrouping() {\r\n return this.options.isVerticalGrouping()\r\n }\r\n get defaultState() {\r\n return {\r\n prevPosition: 0,\r\n startIndex: -1,\r\n itemCount: 0,\r\n virtualItemCountBefore: 0,\r\n virtualItemCountAfter: 0,\r\n outlineCountBefore: 0,\r\n outlineCountAfter: 0,\r\n virtualItemSizeBefore: 0,\r\n virtualItemSizeAfter: 0,\r\n outlineSizeBefore: 0,\r\n outlineSizeAfter: 0\r\n }\r\n }\r\n get maxScrollPosition() {\r\n return this.getTotalItemCount() * this.itemSize - this.viewportSize\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set position(value) {\r\n this._position = value\r\n }\r\n needUpdateState(position) {\r\n var {\r\n prevPosition: prevPosition,\r\n startIndex: startIndex\r\n } = this.state;\r\n var isFirstInitialization = startIndex < 0;\r\n if (isFirstInitialization) {\r\n return true\r\n }\r\n var isStartIndexChanged = false;\r\n if (this._validateAndSavePosition(position)) {\r\n if (0 === position || position === this.maxScrollPosition) {\r\n return true\r\n }\r\n var currentPosition = prevPosition;\r\n var currentItemsCount = Math.floor(currentPosition / this.itemSize);\r\n var itemsCount = Math.floor(position / this.itemSize);\r\n isStartIndexChanged = Math.abs(currentItemsCount - itemsCount) >= this.outlineCount\r\n }\r\n return isStartIndexChanged\r\n }\r\n _validateAndSavePosition(position) {\r\n if (!isDefined(position)) {\r\n return false\r\n }\r\n var result = this.position !== position;\r\n this.position = position;\r\n return result\r\n }\r\n _correctPosition(position) {\r\n return position >= 0 ? Math.min(position, this.maxScrollPosition) : -1\r\n }\r\n updateState(position, isForce) {\r\n position = this._correctPosition(position);\r\n if (!this.needUpdateState(position) && !isForce) {\r\n return false\r\n }\r\n var itemsInfoBefore = this._calcItemInfoBefore(position);\r\n var itemsDeltaBefore = this._calcItemDeltaBefore(itemsInfoBefore);\r\n var {\r\n outlineCountAfter: outlineCountAfter,\r\n virtualItemCountAfter: virtualItemCountAfter,\r\n itemCountWithAfter: itemCountWithAfter\r\n } = this._calcItemInfoAfter(itemsDeltaBefore);\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n } = itemsInfoBefore;\r\n var itemCount = outlineCountBefore + itemCountWithAfter + outlineCountAfter;\r\n var itemCountBefore = Math.floor(position / this.itemSize);\r\n this.state.prevPosition = itemCountBefore * this.itemSize;\r\n this.state.startIndex = itemCountBefore - outlineCountBefore;\r\n this.state.virtualItemCountBefore = virtualItemCountBefore;\r\n this.state.outlineCountBefore = outlineCountBefore;\r\n this.state.itemCount = itemCount;\r\n this.state.outlineCountAfter = outlineCountAfter;\r\n this.state.virtualItemCountAfter = virtualItemCountAfter;\r\n this._updateStateCore();\r\n return true\r\n }\r\n reinitState(itemSize, isForceUpdate) {\r\n var {\r\n position: position\r\n } = this;\r\n this.itemSize = itemSize;\r\n this.updateState(0, isForceUpdate);\r\n if (position > 0) {\r\n this.updateState(position, isForceUpdate)\r\n }\r\n }\r\n _calcItemInfoBefore(position) {\r\n var virtualItemCountBefore = Math.floor(position / this.itemSize);\r\n var outlineCountBefore = Math.min(virtualItemCountBefore, this.outlineCount);\r\n virtualItemCountBefore -= outlineCountBefore;\r\n return {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n }\r\n }\r\n _calcItemDeltaBefore(itemInfoBefore) {\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n } = itemInfoBefore;\r\n var totalItemCount = this.getTotalItemCount();\r\n return totalItemCount - virtualItemCountBefore - outlineCountBefore\r\n }\r\n getTotalItemCount() {\r\n throw \"getTotalItemCount method should be implemented\"\r\n }\r\n getRenderState() {\r\n throw \"getRenderState method should be implemented\"\r\n }\r\n _calcItemInfoAfter(itemsDeltaBefore) {\r\n var itemCountWithAfter = itemsDeltaBefore >= this.pageSize ? this.pageSize : itemsDeltaBefore;\r\n var virtualItemCountAfter = itemsDeltaBefore - itemCountWithAfter;\r\n var outlineCountAfter = virtualItemCountAfter > 0 ? Math.min(virtualItemCountAfter, this.outlineCount) : 0;\r\n if (virtualItemCountAfter > 0) {\r\n virtualItemCountAfter -= outlineCountAfter\r\n }\r\n return {\r\n virtualItemCountAfter: virtualItemCountAfter,\r\n outlineCountAfter: outlineCountAfter,\r\n itemCountWithAfter: itemCountWithAfter\r\n }\r\n }\r\n _updateStateCore() {\r\n var {\r\n state: state\r\n } = this;\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore\r\n } = state;\r\n var {\r\n virtualItemCountAfter: virtualItemCountAfter\r\n } = state;\r\n var {\r\n outlineCountBefore: outlineCountBefore\r\n } = state;\r\n var {\r\n outlineCountAfter: outlineCountAfter\r\n } = state;\r\n var prevVirtualItemSizeBefore = state.virtualItemSizeBefore;\r\n var prevVirtualItemSizeAfter = state.virtualItemSizeAfter;\r\n var prevOutlineSizeBefore = state.outlineSizeBefore;\r\n var prevOutlineSizeAfter = state.outlineSizeAfter;\r\n var virtualItemSizeBefore = this.itemSize * virtualItemCountBefore;\r\n var virtualItemSizeAfter = this.itemSize * virtualItemCountAfter;\r\n var outlineSizeBefore = this.itemSize * outlineCountBefore;\r\n var outlineSizeAfter = this.itemSize * outlineCountAfter;\r\n var prevVirtualSizeBefore = prevVirtualItemSizeBefore + prevOutlineSizeBefore;\r\n var virtualSizeBefore = virtualItemSizeBefore + outlineSizeBefore;\r\n var prevVirtualSizeAfter = prevVirtualItemSizeAfter + prevOutlineSizeAfter;\r\n var virtualSizeAfter = virtualItemSizeAfter + outlineSizeAfter;\r\n var isAppend = prevVirtualSizeBefore < virtualSizeBefore;\r\n var isPrepend = prevVirtualSizeAfter < virtualSizeAfter;\r\n var needAddItems = this._itemSizeChanged || isAppend || isPrepend;\r\n if (needAddItems) {\r\n this._updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter)\r\n }\r\n }\r\n _updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter) {\r\n var {\r\n state: state\r\n } = this;\r\n state.virtualItemSizeBefore = virtualItemSizeBefore;\r\n state.virtualItemSizeAfter = virtualItemSizeAfter\r\n }\r\n}\r\nclass VerticalVirtualScrolling extends VirtualScrollingBase {\r\n constructor(options) {\r\n super(_extends(_extends({}, options), {\r\n itemSize: options.rowHeight,\r\n viewportSize: options.viewportHeight\r\n }))\r\n }\r\n get prevTopPosition() {\r\n return this.state.prevPosition\r\n }\r\n get rowCount() {\r\n return this.state.itemCount\r\n }\r\n get topVirtualRowCount() {\r\n return this.state.virtualItemCountBefore\r\n }\r\n get bottomVirtualRowCount() {\r\n return this.state.virtualItemCountAfter\r\n }\r\n getTotalItemCount() {\r\n return this.options.getTotalRowCount(this.groupCount, this.isVerticalGrouping)\r\n }\r\n getRenderState() {\r\n return {\r\n topVirtualRowHeight: this.state.virtualItemSizeBefore,\r\n bottomVirtualRowHeight: this.state.virtualItemSizeAfter,\r\n startRowIndex: this.state.startIndex,\r\n rowCount: this.state.itemCount,\r\n startIndex: this.state.startIndex\r\n }\r\n }\r\n}\r\nclass HorizontalVirtualScrolling extends VirtualScrollingBase {\r\n constructor(options) {\r\n super(_extends(_extends({}, options), {\r\n itemSize: options.cellWidth,\r\n viewportSize: options.viewportWidth\r\n }))\r\n }\r\n get isRTL() {\r\n return this.options.isRTL()\r\n }\r\n getTotalItemCount() {\r\n return this.options.getTotalCellCount(this.groupCount, this.isVerticalGrouping)\r\n }\r\n getRenderState() {\r\n return {\r\n leftVirtualCellWidth: this.state.virtualItemSizeBefore,\r\n rightVirtualCellWidth: this.state.virtualItemSizeAfter,\r\n startCellIndex: this.state.startIndex,\r\n cellCount: this.state.itemCount,\r\n cellWidth: this.itemSize\r\n }\r\n }\r\n _updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter) {\r\n if (!this.isRTL) {\r\n super._updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter)\r\n } else {\r\n var {\r\n state: state\r\n } = this;\r\n state.virtualItemSizeAfter = virtualItemSizeBefore;\r\n state.virtualItemSizeBefore = virtualItemSizeAfter;\r\n state.startIndex = this.getTotalItemCount() - this.startIndex - this.state.itemCount\r\n }\r\n }\r\n}\r\nexport class VirtualScrollingRenderer {\r\n constructor(_workspace) {\r\n this._workspace = _workspace;\r\n this._renderAppointmentTimeoutID = null\r\n }\r\n getRenderTimeout() {\r\n return this._workspace.option(\"isRenovatedAppointments\") ? -1 : VIRTUAL_APPOINTMENTS_RENDER_TIMEOUT\r\n }\r\n get workspace() {\r\n return this._workspace\r\n }\r\n updateRender() {\r\n this._renderGrid();\r\n this._renderAppointments()\r\n }\r\n _renderGrid() {\r\n this.workspace.renderWorkSpace(false)\r\n }\r\n _renderAppointments() {\r\n var renderTimeout = this.getRenderTimeout();\r\n if (renderTimeout >= 0) {\r\n clearTimeout(this._renderAppointmentTimeoutID);\r\n this._renderAppointmentTimeoutID = setTimeout(() => this.workspace.updateAppointments(), renderTimeout)\r\n } else {\r\n this.workspace.updateAppointments()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_horizontal.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n FIRST_GROUP_CELL_CLASS,\r\n LAST_GROUP_CELL_CLASS\r\n} from \"../m_classes\";\r\nclass HorizontalGroupedStrategy {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace\r\n }\r\n prepareCellIndexes(cellCoordinates, groupIndex, inAllDay) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n if (!groupByDay) {\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex + groupIndex * this._workSpace._getCellCount()\r\n }\r\n }\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex * this._workSpace._getGroupCount() + groupIndex\r\n }\r\n }\r\n getGroupIndex(rowIndex, columnIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n var groupCount = this._workSpace._getGroupCount();\r\n if (groupByDay) {\r\n return columnIndex % groupCount\r\n }\r\n return Math.floor(columnIndex / this._workSpace._getCellCount())\r\n }\r\n calculateHeaderCellRepeatCount() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n getTotalCellCount(groupCount) {\r\n groupCount = groupCount || 1;\r\n return this._workSpace._getCellCount() * groupCount\r\n }\r\n getTotalRowCount() {\r\n return this._workSpace._getRowCount()\r\n }\r\n calculateTimeCellRepeatCount() {\r\n return 1\r\n }\r\n getWorkSpaceMinWidth() {\r\n return getBoundingRect(this._workSpace.$element().get(0)).width - this._workSpace.getTimePanelWidth()\r\n }\r\n getAllDayOffset() {\r\n return this._workSpace.getAllDayHeight()\r\n }\r\n getGroupCountClass(groups) {\r\n return\r\n }\r\n getLeftOffset() {\r\n return this._workSpace.getTimePanelWidth()\r\n }\r\n _createGroupBoundOffset(startCell, endCell, cellWidth) {\r\n var extraOffset = cellWidth / 2;\r\n var startOffset = startCell ? startCell.offset().left - extraOffset : 0;\r\n var endOffset = endCell ? endCell.offset().left + cellWidth + extraOffset : 0;\r\n return {\r\n left: startOffset,\r\n right: endOffset,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n _getGroupedByDateBoundOffset($cells, cellWidth) {\r\n var lastCellIndex = $cells.length - 1;\r\n var startCell = $cells.eq(0);\r\n var endCell = $cells.eq(lastCellIndex);\r\n return this._createGroupBoundOffset(startCell, endCell, cellWidth)\r\n }\r\n getGroupBoundsOffset(cellCount, $cells, cellWidth, coordinates, groupedDataMap) {\r\n if (this._workSpace.isGroupedByDate()) {\r\n return this._getGroupedByDateBoundOffset($cells, cellWidth)\r\n }\r\n var startCell;\r\n var endCell;\r\n var cellIndex = this._workSpace.getCellIndexByCoordinates(coordinates);\r\n var groupIndex = coordinates.groupIndex || Math.floor(cellIndex / cellCount);\r\n var currentCellGroup = groupedDataMap.dateTableGroupedMap[groupIndex];\r\n if (currentCellGroup) {\r\n var groupRowLength = currentCellGroup[0].length;\r\n var groupStartPosition = currentCellGroup[0][0].position;\r\n var groupEndPosition = currentCellGroup[0][groupRowLength - 1].position;\r\n startCell = $cells.eq(groupStartPosition.columnIndex);\r\n endCell = $cells.eq(groupEndPosition.columnIndex)\r\n }\r\n return this._createGroupBoundOffset(startCell, endCell, cellWidth)\r\n }\r\n shiftIndicator($indicator, height, rtlOffset, groupIndex) {\r\n var offset = this._getIndicatorOffset(groupIndex);\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n $indicator.css(\"left\", horizontalOffset);\r\n $indicator.css(\"top\", height)\r\n }\r\n _getIndicatorOffset(groupIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n return groupByDay ? this._calculateGroupByDateOffset(groupIndex) : this._calculateOffset(groupIndex)\r\n }\r\n _calculateOffset(groupIndex) {\r\n var indicatorStartPosition = this._workSpace.getIndicatorOffset(groupIndex);\r\n var offset = this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex;\r\n return indicatorStartPosition + offset\r\n }\r\n _calculateGroupByDateOffset(groupIndex) {\r\n return this._workSpace.getIndicatorOffset(0) * this._workSpace._getGroupCount() + this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex\r\n }\r\n getShaderOffset(i, width) {\r\n var offset = this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(i - 1) * i;\r\n return this._workSpace.option(\"rtlEnabled\") ? getBoundingRect(this._workSpace._dateTableScrollable.$content().get(0)).width - offset - this._workSpace.getTimePanelWidth() - width : offset\r\n }\r\n getShaderTopOffset(i) {\r\n return -this.getShaderMaxHeight() * (i > 0 ? 1 : 0)\r\n }\r\n getShaderHeight() {\r\n var height = this._workSpace.getIndicationHeight();\r\n return height\r\n }\r\n getShaderMaxHeight() {\r\n return getBoundingRect(this._workSpace._dateTableScrollable.$content().get(0)).height\r\n }\r\n getShaderWidth(i) {\r\n return this._workSpace.getIndicationWidth(i)\r\n }\r\n getScrollableScrollTop(allDay) {\r\n return !allDay ? this._workSpace.getScrollable().scrollTop() : 0\r\n }\r\n addAdditionalGroupCellClasses(cellClass, index, i, j) {\r\n var applyUnconditionally = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n cellClass = this._addLastGroupCellClass(cellClass, index, applyUnconditionally);\r\n return this._addFirstGroupCellClass(cellClass, index, applyUnconditionally)\r\n }\r\n _addLastGroupCellClass(cellClass, index, applyUnconditionally) {\r\n if (applyUnconditionally) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n var groupByDate = this._workSpace.isGroupedByDate();\r\n if (groupByDate) {\r\n if (index % this._workSpace._getGroupCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n } else if (index % this._workSpace._getCellCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _addFirstGroupCellClass(cellClass, index, applyUnconditionally) {\r\n if (applyUnconditionally) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n var groupByDate = this._workSpace.isGroupedByDate();\r\n if (groupByDate) {\r\n if ((index - 1) % this._workSpace._getGroupCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n } else if ((index - 1) % this._workSpace._getCellCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n}\r\nexport default HorizontalGroupedStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_vertical.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n calculateDayDuration,\r\n getVerticalGroupCountClass\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n FIRST_GROUP_CELL_CLASS,\r\n LAST_GROUP_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n Cache\r\n} from \"./m_cache\";\r\nvar WORK_SPACE_BORDER = 1;\r\nclass VerticalGroupedStrategy {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace;\r\n this.cache = new Cache\r\n }\r\n prepareCellIndexes(cellCoordinates, groupIndex, inAllDayRow) {\r\n var rowIndex = cellCoordinates.rowIndex + groupIndex * this._workSpace._getRowCount();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n rowIndex += groupIndex;\r\n if (!inAllDayRow) {\r\n rowIndex += 1\r\n }\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: cellCoordinates.columnIndex\r\n }\r\n }\r\n getGroupIndex(rowIndex) {\r\n return Math.floor(rowIndex / this._workSpace._getRowCount())\r\n }\r\n calculateHeaderCellRepeatCount() {\r\n return 1\r\n }\r\n insertAllDayRowsIntoDateTable() {\r\n return this._workSpace.option(\"showAllDayPanel\")\r\n }\r\n getTotalCellCount() {\r\n return this._workSpace._getCellCount()\r\n }\r\n getTotalRowCount() {\r\n return this._workSpace._getRowCount() * this._workSpace._getGroupCount()\r\n }\r\n calculateTimeCellRepeatCount() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n getWorkSpaceMinWidth() {\r\n var minWidth = this._workSpace._getWorkSpaceWidth();\r\n var workspaceContainerWidth = getBoundingRect(this._workSpace.$element().get(0)).width - this._workSpace.getTimePanelWidth() - this._workSpace.getGroupTableWidth() - 2 * WORK_SPACE_BORDER;\r\n if (minWidth < workspaceContainerWidth) {\r\n minWidth = workspaceContainerWidth\r\n }\r\n return minWidth\r\n }\r\n getAllDayOffset() {\r\n return 0\r\n }\r\n getGroupCountClass(groups) {\r\n return getVerticalGroupCountClass(groups)\r\n }\r\n getLeftOffset() {\r\n return this._workSpace.getTimePanelWidth() + this._workSpace.getGroupTableWidth()\r\n }\r\n getGroupBoundsOffset(groupIndex, _ref) {\r\n var [$firstCell, $lastCell] = _ref;\r\n return this.cache.get(\"groupBoundsOffset\".concat(groupIndex), () => {\r\n var startDayHour = this._workSpace.option(\"startDayHour\");\r\n var endDayHour = this._workSpace.option(\"endDayHour\");\r\n var hoursInterval = this._workSpace.option(\"hoursInterval\");\r\n var dayHeight = calculateDayDuration(startDayHour, endDayHour) / hoursInterval * this._workSpace.getCellHeight();\r\n var scrollTop = this.getScrollableScrollTop();\r\n var headerRowHeight = getBoundingRect(this._workSpace._$headerPanelContainer.get(0)).height;\r\n var topOffset = groupIndex * dayHeight + headerRowHeight + this._workSpace.option(\"getHeaderHeight\")() - scrollTop;\r\n if (this._workSpace.option(\"showAllDayPanel\") && this._workSpace.supportAllDayRow()) {\r\n topOffset += this._workSpace.getCellHeight() * (groupIndex + 1)\r\n }\r\n var bottomOffset = topOffset + dayHeight;\r\n var {\r\n left: left\r\n } = $firstCell.getBoundingClientRect();\r\n var {\r\n right: right\r\n } = $lastCell.getBoundingClientRect();\r\n this._groupBoundsOffset = {\r\n left: left,\r\n right: right,\r\n top: topOffset,\r\n bottom: bottomOffset\r\n };\r\n return this._groupBoundsOffset\r\n })\r\n }\r\n shiftIndicator($indicator, height, rtlOffset, i) {\r\n var offset = this._workSpace.getIndicatorOffset(0);\r\n var tableOffset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n var verticalOffset = this._workSpace._getRowCount() * this._workSpace.getCellHeight() * i;\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n verticalOffset += this._workSpace.getAllDayHeight() * (i + 1)\r\n }\r\n $indicator.css(\"left\", horizontalOffset + tableOffset);\r\n $indicator.css(\"top\", height + verticalOffset)\r\n }\r\n getShaderOffset(i, width) {\r\n var offset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n return this._workSpace.option(\"rtlEnabled\") ? getBoundingRect(this._$container.get(0)).width - offset - this._workSpace.getWorkSpaceLeftOffset() - width : offset\r\n }\r\n getShaderTopOffset(i) {\r\n return 0\r\n }\r\n getShaderHeight() {\r\n var height = this._workSpace.getIndicationHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n getShaderMaxHeight() {\r\n var height = this._workSpace._getRowCount() * this._workSpace.getCellHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n getShaderWidth() {\r\n return this._workSpace.getIndicationWidth(0)\r\n }\r\n getScrollableScrollTop() {\r\n return this._workSpace.getScrollable().scrollTop()\r\n }\r\n addAdditionalGroupCellClasses(cellClass, index, i, j) {\r\n cellClass = this._addLastGroupCellClass(cellClass, i + 1);\r\n return this._addFirstGroupCellClass(cellClass, i + 1)\r\n }\r\n _addLastGroupCellClass(cellClass, index) {\r\n if (index % this._workSpace._getRowCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _addFirstGroupCellClass(cellClass, index) {\r\n if ((index - 1) % this._workSpace._getRowCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n}\r\nexport default VerticalGroupedStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_date_header_data_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n formatWeekdayAndDay,\r\n getDisplayedCellCount,\r\n getHeaderCellText,\r\n getHorizontalGroupCount,\r\n getTotalCellCountByCompleteData,\r\n isTimelineView\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n VIEWS\r\n} from \"../../../scheduler/m_constants\";\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n getGroupCount\r\n} from \"../../resources/m_utils\";\r\nexport class DateHeaderDataGenerator {\r\n constructor(_viewDataGenerator) {\r\n this._viewDataGenerator = _viewDataGenerator\r\n }\r\n getCompleteDateHeaderMap(options, completeViewDataMap) {\r\n var {\r\n isGenerateWeekDaysHeaderData: isGenerateWeekDaysHeaderData\r\n } = options;\r\n var result = [];\r\n if (isGenerateWeekDaysHeaderData) {\r\n var weekDaysRow = this._generateWeekDaysHeaderRowMap(options, completeViewDataMap);\r\n result.push(weekDaysRow)\r\n }\r\n var dateRow = this._generateHeaderDateRow(options, completeViewDataMap);\r\n result.push(dateRow);\r\n return result\r\n }\r\n _generateWeekDaysHeaderRowMap(options, completeViewDataMap) {\r\n var {\r\n isGroupedByDate: isGroupedByDate,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var cellCountInDay = this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var index = completeViewDataMap[0][0].allDay ? 1 : 0;\r\n var colSpan = isGroupedByDate ? horizontalGroupCount * cellCountInDay : cellCountInDay;\r\n var groupCount = getGroupCount(groups);\r\n var datesRepeatCount = isHorizontalGrouping && !isGroupedByDate ? groupCount : 1;\r\n var daysInGroup = this._viewDataGenerator.daysInInterval * intervalCount;\r\n var daysInView = daysInGroup * datesRepeatCount;\r\n var weekDaysRow = [];\r\n for (var dayIndex = 0; dayIndex < daysInView; dayIndex += 1) {\r\n var cell = completeViewDataMap[index][dayIndex * colSpan];\r\n var shiftedStartDate = timeZoneUtils.addOffsetsWithoutDST(cell.startDate, -viewOffset);\r\n weekDaysRow.push(_extends(_extends({}, cell), {\r\n colSpan: colSpan,\r\n text: formatWeekdayAndDay(shiftedStartDate),\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false\r\n }))\r\n }\r\n return weekDaysRow\r\n }\r\n _generateHeaderDateRow(options, completeViewDataMap) {\r\n var {\r\n today: today,\r\n isGroupedByDate: isGroupedByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n headerCellTextFormat: headerCellTextFormat,\r\n getDateForHeaderText: getDateForHeaderText,\r\n interval: interval,\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n viewOffset: viewOffset\r\n } = options;\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var index = completeViewDataMap[0][0].allDay ? 1 : 0;\r\n var colSpan = isGroupedByDate ? horizontalGroupCount : 1;\r\n var isVerticalGrouping = \"vertical\" === groupOrientation;\r\n var cellCountInGroupRow = this._viewDataGenerator.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var cellCountInDay = this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var slicedByColumnsData = isGroupedByDate ? completeViewDataMap[index].filter((_, columnIndex) => columnIndex % horizontalGroupCount === 0) : completeViewDataMap[index];\r\n var shouldShiftDatesForHeaderText = !isTimelineView(viewType) || viewType === VIEWS.TIMELINE_MONTH;\r\n return slicedByColumnsData.map((_a, idx) => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n } = _a, restProps = __rest(_a, [\"startDate\", \"endDate\", \"isFirstGroupCell\", \"isLastGroupCell\"]);\r\n var shiftedStartDate = timeZoneUtils.addOffsetsWithoutDST(startDate, -viewOffset);\r\n var shiftedStartDateForHeaderText = shouldShiftDatesForHeaderText ? shiftedStartDate : startDate;\r\n var text = getHeaderCellText(idx % cellCountInGroupRow, shiftedStartDateForHeaderText, headerCellTextFormat, getDateForHeaderText, {\r\n interval: interval,\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellCountInDay: cellCountInDay,\r\n viewOffset: viewOffset\r\n });\r\n return _extends(_extends({}, restProps), {\r\n startDate: startDate,\r\n text: text,\r\n today: dateUtils.sameDate(shiftedStartDate, today),\r\n colSpan: colSpan,\r\n isFirstGroupCell: isGroupedByDate || isFirstGroupCell && !isVerticalGrouping,\r\n isLastGroupCell: isGroupedByDate || isLastGroupCell && !isVerticalGrouping\r\n })\r\n })\r\n }\r\n generateDateHeaderData(completeDateHeaderMap, completeViewDataMap, options) {\r\n var {\r\n isGenerateWeekDaysHeaderData: isGenerateWeekDaysHeaderData,\r\n cellWidth: cellWidth,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n isMonthDateHeader: isMonthDateHeader\r\n } = options;\r\n var dataMap = [];\r\n var weekDayRowConfig = {};\r\n var validCellWidth = cellWidth || 0;\r\n if (isGenerateWeekDaysHeaderData) {\r\n weekDayRowConfig = this._generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval), 0, validCellWidth);\r\n dataMap.push(weekDayRowConfig.dateRow)\r\n }\r\n var datesRowConfig = this._generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, 1, isGenerateWeekDaysHeaderData ? 1 : 0, validCellWidth);\r\n dataMap.push(datesRowConfig.dateRow);\r\n return {\r\n dataMap: dataMap,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? datesRowConfig.leftVirtualCellWidth : void 0,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? datesRowConfig.rightVirtualCellWidth : void 0,\r\n leftVirtualCellCount: datesRowConfig.leftVirtualCellCount,\r\n rightVirtualCellCount: datesRowConfig.rightVirtualCellCount,\r\n weekDayLeftVirtualCellWidth: weekDayRowConfig.leftVirtualCellWidth,\r\n weekDayRightVirtualCellWidth: weekDayRowConfig.rightVirtualCellWidth,\r\n weekDayLeftVirtualCellCount: weekDayRowConfig.leftVirtualCellCount,\r\n weekDayRightVirtualCellCount: weekDayRowConfig.rightVirtualCellCount,\r\n isMonthDateHeader: isMonthDateHeader\r\n }\r\n }\r\n _generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, baseColSpan, rowIndex, cellWidth) {\r\n var {\r\n startCellIndex: startCellIndex,\r\n cellCount: cellCount,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var colSpan = isGroupedByDate ? horizontalGroupCount * baseColSpan : baseColSpan;\r\n var leftVirtualCellCount = Math.floor(startCellIndex / colSpan);\r\n var displayedCellCount = getDisplayedCellCount(cellCount, completeViewDataMap);\r\n var actualCellCount = Math.ceil((startCellIndex + displayedCellCount) / colSpan);\r\n var totalCellCount = getTotalCellCountByCompleteData(completeViewDataMap);\r\n var dateRow = completeDateHeaderMap[rowIndex].slice(leftVirtualCellCount, actualCellCount);\r\n var finalLeftVirtualCellCount = leftVirtualCellCount * colSpan;\r\n var finalLeftVirtualCellWidth = finalLeftVirtualCellCount * cellWidth;\r\n var finalRightVirtualCellCount = totalCellCount - actualCellCount * colSpan;\r\n var finalRightVirtualCellWidth = finalRightVirtualCellCount * cellWidth;\r\n return {\r\n dateRow: dateRow,\r\n leftVirtualCellCount: finalLeftVirtualCellCount,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? finalLeftVirtualCellWidth : void 0,\r\n rightVirtualCellCount: finalRightVirtualCellCount,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? finalRightVirtualCellWidth : void 0\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_grouped_data_map_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n isDateAndTimeView\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nexport class GroupedDataMapProvider {\r\n constructor(viewDataGenerator, viewDataMap, completeViewDataMap, viewOptions) {\r\n this.groupedDataMap = viewDataGenerator.generateGroupedDataMap(viewDataMap);\r\n this.completeViewDataMap = completeViewDataMap;\r\n this._viewOptions = viewOptions\r\n }\r\n getGroupStartDate(groupIndex) {\r\n var _a, _b, _c;\r\n var firstRow = this.getFirstGroupRow(groupIndex);\r\n return null !== (_c = null === (_b = null === (_a = null === firstRow || void 0 === firstRow ? void 0 : firstRow[0]) || void 0 === _a ? void 0 : _a.cellData) || void 0 === _b ? void 0 : _b.startDate) && void 0 !== _c ? _c : null\r\n }\r\n getGroupEndDate(groupIndex) {\r\n var lastRow = this.getLastGroupRow(groupIndex);\r\n if (lastRow) {\r\n var lastColumnIndex = lastRow.length - 1;\r\n var {\r\n cellData: cellData\r\n } = lastRow[lastColumnIndex];\r\n var {\r\n endDate: endDate\r\n } = cellData;\r\n return endDate\r\n }\r\n }\r\n findGroupCellStartDate(groupIndex, startDate, endDate, isFindByDate) {\r\n var groupData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n var checkCellStartDate = (rowIndex, columnIndex) => {\r\n var {\r\n cellData: cellData\r\n } = groupData[rowIndex][columnIndex];\r\n var {\r\n startDate: secondMin,\r\n endDate: secondMax\r\n } = cellData;\r\n if (isFindByDate) {\r\n secondMin = dateUtils.trimTime(secondMin);\r\n secondMax = dateUtils.setToDayEnd(secondMin)\r\n }\r\n if (dateUtils.intervalsOverlap({\r\n firstMin: startDate,\r\n firstMax: endDate,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n })) {\r\n return secondMin\r\n }\r\n };\r\n var startDateVerticalSearch = (() => {\r\n var cellCount = groupData[0].length;\r\n for (var columnIndex = 0; columnIndex < cellCount; ++columnIndex) {\r\n for (var rowIndex = 0; rowIndex < groupData.length; ++rowIndex) {\r\n var result = checkCellStartDate(rowIndex, columnIndex);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n })();\r\n var startDateHorizontalSearch = (() => {\r\n for (var rowIndex = 0; rowIndex < groupData.length; ++rowIndex) {\r\n var row = groupData[rowIndex];\r\n for (var columnIndex = 0; columnIndex < row.length; ++columnIndex) {\r\n var result = checkCellStartDate(rowIndex, columnIndex);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n })();\r\n return startDateVerticalSearch > startDateHorizontalSearch ? startDateHorizontalSearch : startDateVerticalSearch\r\n }\r\n findAllDayGroupCellStartDate(groupIndex) {\r\n var _a, _b, _c;\r\n var groupedData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n var cellData = null === (_b = null === (_a = null === groupedData || void 0 === groupedData ? void 0 : groupedData[0]) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.cellData;\r\n return null !== (_c = null === cellData || void 0 === cellData ? void 0 : cellData.startDate) && void 0 !== _c ? _c : null\r\n }\r\n findCellPositionInMap(cellInfo, isAppointmentRender) {\r\n var {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n isAllDay: isAllDay,\r\n index: index\r\n } = cellInfo;\r\n var {\r\n allDayPanelGroupedMap: allDayPanelGroupedMap,\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var {\r\n viewOffset: viewOffset\r\n } = this._viewOptions;\r\n var rows = isAllDay && !this._viewOptions.isVerticalGrouping ? allDayPanelGroupedMap[groupIndex] ? [allDayPanelGroupedMap[groupIndex]] : [] : dateTableGroupedMap[groupIndex] || [];\r\n for (var rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {\r\n var row = rows[rowIndex];\r\n for (var columnIndex = 0; columnIndex < row.length; columnIndex += 1) {\r\n var cell = row[columnIndex];\r\n var cellData = isAppointmentRender ? _extends(_extends({}, cell.cellData), {\r\n startDate: dateUtilsTs.addOffsets(cell.cellData.startDate, [-viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(cell.cellData.endDate, [-viewOffset])\r\n }) : cell.cellData;\r\n if (this._isSameGroupIndexAndIndex(cellData, groupIndex, index)) {\r\n if (this.isStartDateInCell(startDate, isAllDay, cellData)) {\r\n return cell.position\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n isStartDateInCell(startDate, inAllDayRow, _ref) {\r\n var {\r\n startDate: cellStartDate,\r\n endDate: cellEndDate,\r\n allDay: cellAllDay\r\n } = _ref;\r\n var {\r\n viewType: viewType\r\n } = this._viewOptions;\r\n switch (true) {\r\n case !isDateAndTimeView(viewType):\r\n case inAllDayRow && cellAllDay:\r\n return dateUtils.sameDate(startDate, cellStartDate);\r\n case !inAllDayRow:\r\n return startDate >= cellStartDate && startDate < cellEndDate;\r\n default:\r\n return false\r\n }\r\n }\r\n _isSameGroupIndexAndIndex(cellData, groupIndex, index) {\r\n return cellData.groupIndex === groupIndex && (void 0 === index || cellData.index === index)\r\n }\r\n getCellsGroup(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var groupData = dateTableGroupedMap[groupIndex];\r\n if (groupData) {\r\n var {\r\n cellData: cellData\r\n } = groupData[0][0];\r\n return cellData.groups\r\n }\r\n }\r\n getCompletedGroupsInfo() {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap.map(groupData => {\r\n var firstCell = groupData[0][0];\r\n var {\r\n allDay: allDay,\r\n groupIndex: groupIndex\r\n } = firstCell.cellData;\r\n return {\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n startDate: this.getGroupStartDate(groupIndex),\r\n endDate: this.getGroupEndDate(groupIndex)\r\n }\r\n }).filter(_ref2 => {\r\n var {\r\n startDate: startDate\r\n } = _ref2;\r\n return !!startDate\r\n })\r\n }\r\n getGroupIndices() {\r\n return this.getCompletedGroupsInfo().map(_ref3 => {\r\n var {\r\n groupIndex: groupIndex\r\n } = _ref3;\r\n return groupIndex\r\n })\r\n }\r\n getGroupFromDateTableGroupMap(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap[groupIndex]\r\n }\r\n getFirstGroupRow(groupIndex) {\r\n var groupedData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n if (groupedData) {\r\n var {\r\n cellData: cellData\r\n } = groupedData[0][0];\r\n return !cellData.allDay ? groupedData[0] : groupedData[1]\r\n }\r\n }\r\n getLastGroupRow(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var groupedData = dateTableGroupedMap[groupIndex];\r\n if (groupedData) {\r\n var lastRowIndex = groupedData.length - 1;\r\n return groupedData[lastRowIndex]\r\n }\r\n }\r\n getLastGroupCellPosition(groupIndex) {\r\n var groupRow = this.getLastGroupRow(groupIndex);\r\n return null === groupRow || void 0 === groupRow ? void 0 : groupRow[(null === groupRow || void 0 === groupRow ? void 0 : groupRow.length) - 1].position\r\n }\r\n getRowCountInGroup(groupIndex) {\r\n var groupRow = this.getLastGroupRow(groupIndex);\r\n var cellAmount = groupRow.length;\r\n var lastCellData = groupRow[cellAmount - 1].cellData;\r\n var lastCellIndex = lastCellData.index;\r\n return (lastCellIndex + 1) / groupRow.length\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../../../../localization/date\";\r\nimport {\r\n getCalculatedFirstDayOfWeek,\r\n getValidCellDateForLocalTimeFormat,\r\n getViewStartByOptions,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var getIntervalDuration = intervalCount => 7 * dateUtils.dateToMilliseconds(\"day\") * intervalCount;\r\nexport var getValidStartDate = (startDate, firstDayOfWeek) => startDate ? dateUtils.getFirstWeekDate(startDate, firstDayOfWeek) : void 0;\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeekOption) => {\r\n var firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption);\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek));\r\n var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\nexport var calculateViewStartDate = (startDateOption, firstDayOfWeek) => {\r\n var validFirstDayOfWeek = null !== firstDayOfWeek && void 0 !== firstDayOfWeek ? firstDayOfWeek : dateLocalization.firstDayOfWeekIndex();\r\n return dateUtils.getFirstWeekDate(startDateOption, validFirstDayOfWeek)\r\n};\r\nexport var getTimePanelCellText = (rowIndex, date, startViewDate, cellDuration, startDayHour, viewOffset) => {\r\n if (rowIndex % 2 !== 0) {\r\n return \"\"\r\n }\r\n var validTimeDate = getValidCellDateForLocalTimeFormat(date, {\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellIndexShift: Math.round(cellDuration) * rowIndex,\r\n viewOffset: viewOffset\r\n });\r\n return dateLocalization.format(validTimeDate, \"shorttime\")\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/utils/math.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shiftIntegerByModule = (integerValue, moduleValue) => {\r\n if (!Number.isInteger(integerValue)) {\r\n throw Error(\"Passed integer value \".concat(integerValue, \" is not an integer.\"))\r\n }\r\n if (!Number.isInteger(moduleValue)) {\r\n throw Error(\"Passed module value \".concat(moduleValue, \" is not an integer.\"))\r\n }\r\n if (moduleValue <= 0) {\r\n throw Error(\"Passed module value \".concat(moduleValue, \" must be > 0.\"))\r\n }\r\n var normalizedInteger = integerValue % moduleValue;\r\n switch (true) {\r\n case 0 === normalizedInteger:\r\n return 0;\r\n case normalizedInteger > 0:\r\n return normalizedInteger;\r\n case normalizedInteger < 0:\r\n return moduleValue + normalizedInteger;\r\n default:\r\n throw Error(\"Unexpected division (\".concat(integerValue, \" % \").concat(moduleValue, \") occurred.\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_time_panel_data_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getDisplayedRowCount\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n getTimePanelCellText\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/week\";\r\nimport {\r\n getIsGroupedAllDayPanel,\r\n getKeyByGroup\r\n} from \"../../../../renovation/ui/scheduler/workspaces/utils\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n shiftIntegerByModule\r\n} from \"../../../core/utils/math\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class TimePanelDataGenerator {\r\n constructor(_viewDataGenerator) {\r\n this._viewDataGenerator = _viewDataGenerator\r\n }\r\n getCompleteTimePanelMap(options, completeViewDataMap) {\r\n var {\r\n startViewDate: startViewDate,\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n isVerticalGrouping: isVerticalGrouping,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n today: today,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n } = options;\r\n var rowsCount = completeViewDataMap.length - 1;\r\n var realEndViewDate = completeViewDataMap[rowsCount][completeViewDataMap[rowsCount].length - 1].endDate;\r\n var rowCountInGroup = this._viewDataGenerator.getRowCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var cellCountInGroupRow = this._viewDataGenerator.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var allDayRowsCount = 0;\r\n var usualCellIndex = 0;\r\n return completeViewDataMap.map((row, index) => {\r\n var _a = row[0],\r\n {\r\n allDay: allDay,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: cellIndex\r\n } = _a,\r\n restCellProps = __rest(_a, [\"allDay\", \"startDate\", \"endDate\", \"groups\", \"groupIndex\", \"isFirstGroupCell\", \"isLastGroupCell\", \"index\"]);\r\n var highlighted = allDay ? false : this.isTimeCellShouldBeHighlighted(today, viewOffset, {\r\n startViewDate: startViewDate,\r\n realEndViewDate: realEndViewDate,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n }, {\r\n date: startDate,\r\n index: usualCellIndex,\r\n duration: Math.round(cellDuration),\r\n isFirst: 0 === usualCellIndex,\r\n isLast: this.isLastCellInGroup(completeViewDataMap, index)\r\n });\r\n if (allDay) {\r\n allDayRowsCount += 1;\r\n usualCellIndex = 0\r\n } else {\r\n usualCellIndex += 1\r\n }\r\n var timeIndex = (index - allDayRowsCount) % rowCountInGroup;\r\n return _extends(_extends({}, restCellProps), {\r\n startDate: startDate,\r\n allDay: allDay,\r\n highlighted: highlighted,\r\n text: getTimePanelCellText(timeIndex, startDate, startViewDate, cellDuration, startDayHour, viewOffset),\r\n groups: isVerticalGrouping ? groups : void 0,\r\n groupIndex: isVerticalGrouping ? groupIndex : void 0,\r\n isFirstGroupCell: isVerticalGrouping && isFirstGroupCell,\r\n isLastGroupCell: isVerticalGrouping && isLastGroupCell,\r\n index: Math.floor(cellIndex / cellCountInGroupRow)\r\n })\r\n })\r\n }\r\n generateTimePanelData(completeTimePanelMap, options) {\r\n var {\r\n startRowIndex: startRowIndex,\r\n rowCount: rowCount,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var indexDifference = isVerticalGrouping || !isAllDayPanelVisible ? 0 : 1;\r\n var correctedStartRowIndex = startRowIndex + indexDifference;\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeTimePanelMap);\r\n var timePanelMap = completeTimePanelMap.slice(correctedStartRowIndex, correctedStartRowIndex + displayedRowCount);\r\n var timePanelData = {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n };\r\n var {\r\n previousGroupedData: groupedData\r\n } = this._generateTimePanelDataFromMap(timePanelMap, isVerticalGrouping);\r\n timePanelData.groupedData = groupedData;\r\n return timePanelData\r\n }\r\n _generateTimePanelDataFromMap(timePanelMap, isVerticalGrouping) {\r\n return timePanelMap.reduce((_ref, cellData) => {\r\n var {\r\n previousGroupIndex: previousGroupIndex,\r\n previousGroupedData: previousGroupedData\r\n } = _ref;\r\n var currentGroupIndex = cellData.groupIndex;\r\n if (currentGroupIndex !== previousGroupIndex) {\r\n previousGroupedData.push({\r\n dateTable: [],\r\n isGroupedAllDayPanel: getIsGroupedAllDayPanel(!!cellData.allDay, isVerticalGrouping),\r\n groupIndex: currentGroupIndex,\r\n key: getKeyByGroup(currentGroupIndex, isVerticalGrouping)\r\n })\r\n }\r\n if (cellData.allDay) {\r\n previousGroupedData[previousGroupedData.length - 1].allDayPanel = cellData\r\n } else {\r\n previousGroupedData[previousGroupedData.length - 1].dateTable.push(cellData)\r\n }\r\n return {\r\n previousGroupIndex: currentGroupIndex,\r\n previousGroupedData: previousGroupedData\r\n }\r\n }, {\r\n previousGroupIndex: -1,\r\n previousGroupedData: []\r\n })\r\n }\r\n isTimeCellShouldBeHighlighted(today, viewOffset, _ref2, cellData) {\r\n var {\r\n startViewDate: startViewDate,\r\n realEndViewDate: realEndViewDate,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n } = _ref2;\r\n var realToday = dateUtilsTs.addOffsets(today, [viewOffset]);\r\n var realStartViewDate = dateUtilsTs.addOffsets(startViewDate, [viewOffset]);\r\n if (!showCurrentTimeIndicator || realToday < realStartViewDate || realToday >= realEndViewDate) {\r\n return false\r\n }\r\n var realTodayTimeMs = this.getLocalDateTimeInMs(realToday);\r\n var [startMs, endMs] = this.getHighlightedInterval(cellData);\r\n return startMs < endMs ? realTodayTimeMs >= startMs && realTodayTimeMs < endMs : realTodayTimeMs >= startMs && realTodayTimeMs < toMs(\"day\") || realTodayTimeMs >= 0 && realTodayTimeMs < endMs\r\n }\r\n getHighlightedInterval(_ref3) {\r\n var {\r\n date: date,\r\n index: index,\r\n duration: duration,\r\n isFirst: isFirst,\r\n isLast: isLast\r\n } = _ref3;\r\n var cellTimeMs = this.getLocalDateTimeInMs(date);\r\n var isEvenCell = index % 2 === 0;\r\n switch (true) {\r\n case isFirst || isLast && !isEvenCell:\r\n return [cellTimeMs, shiftIntegerByModule(cellTimeMs + duration, toMs(\"day\"))];\r\n case isEvenCell:\r\n return [shiftIntegerByModule(cellTimeMs - duration, toMs(\"day\")), shiftIntegerByModule(cellTimeMs + duration, toMs(\"day\"))];\r\n default:\r\n return [cellTimeMs, shiftIntegerByModule(cellTimeMs + 2 * duration, toMs(\"day\"))]\r\n }\r\n }\r\n getLocalDateTimeInMs(date) {\r\n var dateUtcMs = date.getTime() - date.getTimezoneOffset() * toMs(\"minute\");\r\n return shiftIntegerByModule(dateUtcMs, toMs(\"day\"))\r\n }\r\n isLastCellInGroup(completeViewDataMap, index) {\r\n if (index === completeViewDataMap.length - 1) {\r\n return true\r\n }\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = completeViewDataMap[index][0];\r\n var {\r\n groupIndex: nextGroupIndex,\r\n allDay: nextAllDay\r\n } = completeViewDataMap[index + 1][0];\r\n return nextAllDay || nextGroupIndex !== currentGroupIndex\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n calculateCellIndex,\r\n calculateDayDuration,\r\n getDisplayedCellCount,\r\n getDisplayedRowCount,\r\n getStartViewDateWithoutDST,\r\n getTotalCellCountByCompleteData,\r\n getTotalRowCountByCompleteData,\r\n isHorizontalView\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n getIsGroupedAllDayPanel,\r\n getKeyByGroup\r\n} from \"../../../../renovation/ui/scheduler/workspaces/utils\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n HORIZONTAL_GROUP_ORIENTATION\r\n} from \"../../m_constants\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n getAllGroups,\r\n getGroupCount\r\n} from \"../../resources/m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class ViewDataGenerator {\r\n constructor() {\r\n this.daysInInterval = 1;\r\n this.isWorkView = false;\r\n this.tableAllDay = false\r\n }\r\n isSkippedDate(date) {\r\n return false\r\n }\r\n _calculateStartViewDate(options) {}\r\n getStartViewDate(options) {\r\n return this._calculateStartViewDate(options)\r\n }\r\n getCompleteViewDataMap(options) {\r\n var {\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate,\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n isVerticalGrouping: isVerticalGrouping,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n this._setVisibilityDates(options);\r\n this.setHiddenInterval(startDayHour, endDayHour, hoursInterval);\r\n var groupsList = getAllGroups(groups);\r\n var cellCountInGroupRow = this.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n });\r\n var rowCountInGroup = this.getRowCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var viewDataMap = [];\r\n var allDayPanelData = this._generateAllDayPanelData(options, rowCountInGroup, cellCountInGroupRow);\r\n var viewCellsData = this._generateViewCellsData(options, rowCountInGroup, cellCountInGroupRow);\r\n if (allDayPanelData) {\r\n viewDataMap.push(allDayPanelData)\r\n }\r\n viewDataMap.push(...viewCellsData);\r\n if (isHorizontalGrouping && !isGroupedByDate) {\r\n viewDataMap = this._transformViewDataMapForHorizontalGrouping(viewDataMap, groupsList)\r\n }\r\n if (isVerticalGrouping) {\r\n viewDataMap = this._transformViewDataMapForVerticalGrouping(viewDataMap, groupsList)\r\n }\r\n if (isGroupedByDate) {\r\n viewDataMap = this._transformViewDataMapForGroupingByDate(viewDataMap, groupsList)\r\n }\r\n return this._addKeysToCells(viewDataMap)\r\n }\r\n _transformViewDataMapForHorizontalGrouping(viewDataMap, groupsList) {\r\n var result = viewDataMap.map(row => row.slice());\r\n groupsList.slice(1).forEach((groups, index) => {\r\n var groupIndex = index + 1;\r\n viewDataMap.forEach((row, rowIndex) => {\r\n var nextGroupRow = row.map(cellData => _extends(_extends({}, cellData), {\r\n groups: groups,\r\n groupIndex: groupIndex\r\n }));\r\n result[rowIndex].push(...nextGroupRow)\r\n })\r\n });\r\n return result\r\n }\r\n _transformViewDataMapForVerticalGrouping(viewDataMap, groupsList) {\r\n var result = viewDataMap.map(row => row.slice());\r\n groupsList.slice(1).forEach((groups, index) => {\r\n var groupIndex = index + 1;\r\n var nextGroupMap = viewDataMap.map(cellsRow => {\r\n var nextRow = cellsRow.map(cellData => _extends(_extends({}, cellData), {\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }));\r\n return nextRow\r\n });\r\n result.push(...nextGroupMap)\r\n });\r\n return result\r\n }\r\n _transformViewDataMapForGroupingByDate(viewDataMap, groupsList) {\r\n var correctedGroupList = groupsList.slice(1);\r\n var correctedGroupCount = correctedGroupList.length;\r\n var result = viewDataMap.map(cellsRow => {\r\n var groupedByDateCellsRow = cellsRow.reduce((currentRow, cell) => {\r\n var rowWithCurrentCell = [...currentRow, _extends(_extends({}, cell), {\r\n isFirstGroupCell: true,\r\n isLastGroupCell: 0 === correctedGroupCount\r\n }), ...correctedGroupList.map((groups, index) => _extends(_extends({}, cell), {\r\n groups: groups,\r\n groupIndex: index + 1,\r\n isFirstGroupCell: false,\r\n isLastGroupCell: index === correctedGroupCount - 1\r\n }))];\r\n return rowWithCurrentCell\r\n }, []);\r\n return groupedByDateCellsRow\r\n });\r\n return result\r\n }\r\n _addKeysToCells(viewDataMap) {\r\n var totalColumnCount = viewDataMap[0].length;\r\n var {\r\n currentViewDataMap: result\r\n } = viewDataMap.reduce((_ref, row, rowIndex) => {\r\n var {\r\n allDayPanelsCount: allDayPanelsCount,\r\n currentViewDataMap: currentViewDataMap\r\n } = _ref;\r\n var isAllDay = row[0].allDay;\r\n var keyBase = (rowIndex - allDayPanelsCount) * totalColumnCount;\r\n var currentAllDayPanelsCount = isAllDay ? allDayPanelsCount + 1 : allDayPanelsCount;\r\n currentViewDataMap[rowIndex].forEach((cell, columnIndex) => {\r\n cell.key = keyBase + columnIndex\r\n });\r\n return {\r\n allDayPanelsCount: currentAllDayPanelsCount,\r\n currentViewDataMap: currentViewDataMap\r\n }\r\n }, {\r\n allDayPanelsCount: 0,\r\n currentViewDataMap: viewDataMap\r\n });\r\n return result\r\n }\r\n generateViewDataMap(completeViewDataMap, options) {\r\n var {\r\n rowCount: rowCount,\r\n startCellIndex: startCellIndex,\r\n startRowIndex: startRowIndex,\r\n cellCount: cellCount,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var sliceCells = (row, rowIndex, startIndex, count) => {\r\n var sliceToIndex = void 0 !== count ? startIndex + count : void 0;\r\n return row.slice(startIndex, sliceToIndex).map((cellData, columnIndex) => ({\r\n cellData: cellData,\r\n position: {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }))\r\n };\r\n var correctedStartRowIndex = startRowIndex;\r\n var allDayPanelMap = [];\r\n if (this._isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible)) {\r\n correctedStartRowIndex++;\r\n allDayPanelMap = sliceCells(completeViewDataMap[0], 0, startCellIndex, cellCount)\r\n }\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeViewDataMap);\r\n var dateTableMap = completeViewDataMap.slice(correctedStartRowIndex, correctedStartRowIndex + displayedRowCount).map((row, rowIndex) => sliceCells(row, rowIndex, startCellIndex, cellCount));\r\n return {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n }\r\n }\r\n _isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible) {\r\n return !isVerticalGrouping && isAllDayPanelVisible\r\n }\r\n getViewDataFromMap(completeViewDataMap, viewDataMap, options) {\r\n var {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n cellCount: cellCount,\r\n rowCount: rowCount,\r\n startRowIndex: startRowIndex,\r\n startCellIndex: startCellIndex,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var {\r\n groupedData: groupedData\r\n } = dateTableMap.reduce((_ref2, cellsRow) => {\r\n var {\r\n previousGroupIndex: previousGroupIndex,\r\n groupedData: groupedData\r\n } = _ref2;\r\n var cellDataRow = cellsRow.map(_ref3 => {\r\n var {\r\n cellData: cellData\r\n } = _ref3;\r\n return cellData\r\n });\r\n var firstCell = cellDataRow[0];\r\n var isAllDayRow = firstCell.allDay;\r\n var currentGroupIndex = firstCell.groupIndex;\r\n if (currentGroupIndex !== previousGroupIndex) {\r\n groupedData.push({\r\n dateTable: [],\r\n isGroupedAllDayPanel: getIsGroupedAllDayPanel(!!isAllDayRow, isVerticalGrouping),\r\n groupIndex: currentGroupIndex,\r\n key: getKeyByGroup(currentGroupIndex, isVerticalGrouping)\r\n })\r\n }\r\n if (isAllDayRow) {\r\n groupedData[groupedData.length - 1].allDayPanel = cellDataRow\r\n } else {\r\n groupedData[groupedData.length - 1].dateTable.push({\r\n cells: cellDataRow,\r\n key: cellDataRow[0].key - startCellIndex\r\n })\r\n }\r\n return {\r\n groupedData: groupedData,\r\n previousGroupIndex: currentGroupIndex\r\n }\r\n }, {\r\n previousGroupIndex: -1,\r\n groupedData: []\r\n });\r\n if (this._isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible)) {\r\n groupedData[0].allDayPanel = allDayPanelMap.map(_ref4 => {\r\n var {\r\n cellData: cellData\r\n } = _ref4;\r\n return cellData\r\n })\r\n }\r\n var totalCellCount = getTotalCellCountByCompleteData(completeViewDataMap);\r\n var totalRowCount = getTotalRowCountByCompleteData(completeViewDataMap);\r\n var displayedCellCount = getDisplayedCellCount(cellCount, completeViewDataMap);\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeViewDataMap);\r\n return {\r\n groupedData: groupedData,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? leftVirtualCellWidth : void 0,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? rightVirtualCellWidth : void 0,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n leftVirtualCellCount: startCellIndex,\r\n rightVirtualCellCount: void 0 === cellCount ? 0 : totalCellCount - startCellIndex - displayedCellCount,\r\n topVirtualRowCount: startRowIndex,\r\n bottomVirtualRowCount: totalRowCount - startRowIndex - displayedRowCount\r\n }\r\n }\r\n _generateViewCellsData(options, rowCount, cellCountInGroupRow) {\r\n var viewCellsData = [];\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n viewCellsData.push(this._generateCellsRow(options, false, rowIndex, rowCount, cellCountInGroupRow))\r\n }\r\n return viewCellsData\r\n }\r\n _generateAllDayPanelData(options, rowCount, columnCount) {\r\n if (!options.isAllDayPanelVisible) {\r\n return null\r\n }\r\n return this._generateCellsRow(options, true, 0, rowCount, columnCount)\r\n }\r\n _generateCellsRow(options, allDay, rowIndex, rowCount, columnCount) {\r\n var cellsRow = [];\r\n for (var columnIndex = 0; columnIndex < columnCount; ++columnIndex) {\r\n var cellDataValue = this.getCellData(rowIndex, columnIndex, options, allDay);\r\n cellDataValue.index = rowIndex * columnCount + columnIndex;\r\n cellDataValue.isFirstGroupCell = this._isFirstGroupCell(rowIndex, columnIndex, options, rowCount, columnCount);\r\n cellDataValue.isLastGroupCell = this._isLastGroupCell(rowIndex, columnIndex, options, rowCount, columnCount);\r\n cellsRow.push(cellDataValue)\r\n }\r\n return cellsRow\r\n }\r\n getCellData(rowIndex, columnIndex, options, allDay) {\r\n return allDay ? this.prepareAllDayCellData(options, rowIndex, columnIndex) : this.prepareCellData(options, rowIndex, columnIndex)\r\n }\r\n prepareCellData(options, rowIndex, columnIndex) {\r\n var {\r\n groups: groups,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var groupsList = getAllGroups(groups);\r\n var startDate = this.getDateByCellIndices(options, rowIndex, columnIndex, this.getCellCountInDay(startDayHour, endDayHour, hoursInterval));\r\n var endDate = this.getCellEndDate(startDate, options);\r\n var data = {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: this.tableAllDay,\r\n groupIndex: 0\r\n };\r\n if (groupsList.length > 0) {\r\n data.groups = groupsList[0]\r\n }\r\n return data\r\n }\r\n prepareAllDayCellData(options, rowIndex, columnIndex) {\r\n var data = this.prepareCellData(_extends(_extends({}, options), {\r\n viewOffset: 0\r\n }), rowIndex, columnIndex);\r\n var {\r\n viewOffset: viewOffset\r\n } = options;\r\n var startDate = dateUtils.trimTime(data.startDate);\r\n var shiftedStartDate = dateUtilsTs.addOffsets(startDate, [viewOffset]);\r\n return _extends(_extends({}, data), {\r\n startDate: shiftedStartDate,\r\n endDate: shiftedStartDate,\r\n allDay: true\r\n })\r\n }\r\n getDateByCellIndices(options, rowIndex, columnIndex, cellCountInDay) {\r\n var {\r\n startViewDate: startViewDate\r\n } = options;\r\n var {\r\n startDayHour: startDayHour,\r\n interval: interval,\r\n firstDayOfWeek: firstDayOfWeek,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var isStartViewDateDuringDST = startViewDate.getHours() !== Math.floor(startDayHour);\r\n if (isStartViewDateDuringDST) {\r\n var dateWithCorrectHours = getStartViewDateWithoutDST(startViewDate, startDayHour);\r\n startViewDate = new Date(dateWithCorrectHours.getTime() - toMs(\"day\"))\r\n }\r\n var columnCountBase = this.getCellCount(options);\r\n var rowCountBase = this.getRowCount(options);\r\n var cellIndex = this._calculateCellIndex(rowIndex, columnIndex, rowCountBase, columnCountBase);\r\n var millisecondsOffset = this.getMillisecondsOffset(cellIndex, interval, cellCountInDay);\r\n var offsetByCount = this.isWorkView ? this.getTimeOffsetByColumnIndex(columnIndex, this.getFirstDayOfWeek(firstDayOfWeek), columnCountBase, intervalCount) : 0;\r\n var startViewDateTime = startViewDate.getTime();\r\n var currentDate = new Date(startViewDateTime + millisecondsOffset + offsetByCount + viewOffset);\r\n var timeZoneDifference = isStartViewDateDuringDST ? 0 : dateUtils.getTimezonesDifference(startViewDate, currentDate);\r\n currentDate.setTime(currentDate.getTime() + timeZoneDifference);\r\n return currentDate\r\n }\r\n getMillisecondsOffset(cellIndex, interval, cellCountInDay) {\r\n var dayIndex = Math.floor(cellIndex / cellCountInDay);\r\n var realHiddenInterval = dayIndex * this.hiddenInterval;\r\n return interval * cellIndex + realHiddenInterval\r\n }\r\n getTimeOffsetByColumnIndex(columnIndex, firstDayOfWeek, columnCount, intervalCount) {\r\n var firstDayOfWeekDiff = Math.max(0, firstDayOfWeek - 1);\r\n var columnsInWeek = columnCount / intervalCount;\r\n var weekendCount = Math.floor((columnIndex + firstDayOfWeekDiff) / columnsInWeek);\r\n return 2 * weekendCount * toMs(\"day\")\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return this.getCellEndDate(startDate, {\r\n interval: interval\r\n })\r\n }\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCountBase) {\r\n return calculateCellIndex(rowIndex, columnIndex, rowCount)\r\n }\r\n generateGroupedDataMap(viewDataMap) {\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var {\r\n previousGroupedDataMap: dateTableGroupedMap\r\n } = dateTableMap.reduce((previousOptions, cellsRow) => {\r\n var {\r\n previousGroupedDataMap: previousGroupedDataMap,\r\n previousRowIndex: previousRowIndex,\r\n previousGroupIndex: previousGroupIndex\r\n } = previousOptions;\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = cellsRow[0].cellData;\r\n var currentRowIndex = currentGroupIndex === previousGroupIndex ? previousRowIndex + 1 : 0;\r\n cellsRow.forEach(cell => {\r\n var {\r\n groupIndex: groupIndex\r\n } = cell.cellData;\r\n if (!previousGroupedDataMap[groupIndex]) {\r\n previousGroupedDataMap[groupIndex] = []\r\n }\r\n if (!previousGroupedDataMap[groupIndex][currentRowIndex]) {\r\n previousGroupedDataMap[groupIndex][currentRowIndex] = []\r\n }\r\n previousGroupedDataMap[groupIndex][currentRowIndex].push(cell)\r\n });\r\n return {\r\n previousGroupedDataMap: previousGroupedDataMap,\r\n previousRowIndex: currentRowIndex,\r\n previousGroupIndex: currentGroupIndex\r\n }\r\n }, {\r\n previousGroupedDataMap: [],\r\n previousRowIndex: -1,\r\n previousGroupIndex: -1\r\n });\r\n var allDayPanelGroupedMap = [];\r\n null === allDayPanelMap || void 0 === allDayPanelMap ? void 0 : allDayPanelMap.forEach(cell => {\r\n var {\r\n groupIndex: groupIndex\r\n } = cell.cellData;\r\n if (!allDayPanelGroupedMap[groupIndex]) {\r\n allDayPanelGroupedMap[groupIndex] = []\r\n }\r\n allDayPanelGroupedMap[groupIndex].push(cell)\r\n });\r\n return {\r\n allDayPanelGroupedMap: allDayPanelGroupedMap,\r\n dateTableGroupedMap: dateTableGroupedMap\r\n }\r\n }\r\n _isFirstGroupCell(rowIndex, columnIndex, options, rowCount, columnCount) {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var groupCount = getGroupCount(groups);\r\n if (isGroupedByDate) {\r\n return columnIndex % groupCount === 0\r\n }\r\n if (groupOrientation === HORIZONTAL_GROUP_ORIENTATION) {\r\n return columnIndex % columnCount === 0\r\n }\r\n return rowIndex % rowCount === 0\r\n }\r\n _isLastGroupCell(rowIndex, columnIndex, options, rowCount, columnCount) {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var groupCount = getGroupCount(groups);\r\n if (isGroupedByDate) {\r\n return (columnIndex + 1) % groupCount === 0\r\n }\r\n if (groupOrientation === HORIZONTAL_GROUP_ORIENTATION) {\r\n return (columnIndex + 1) % columnCount === 0\r\n }\r\n return (rowIndex + 1) % rowCount === 0\r\n }\r\n markSelectedAndFocusedCells(viewDataMap, renderOptions) {\r\n var {\r\n selectedCells: selectedCells,\r\n focusedCell: focusedCell\r\n } = renderOptions;\r\n if (!selectedCells && !focusedCell) {\r\n return viewDataMap\r\n }\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var nextDateTableMap = dateTableMap.map(row => this._markSelectedAndFocusedCellsInRow(row, selectedCells, focusedCell));\r\n var nextAllDayMap = this._markSelectedAndFocusedCellsInRow(allDayPanelMap, selectedCells, focusedCell);\r\n return {\r\n allDayPanelMap: nextAllDayMap,\r\n dateTableMap: nextDateTableMap\r\n }\r\n }\r\n _markSelectedAndFocusedCellsInRow(dataRow, selectedCells, focusedCell) {\r\n return dataRow.map(cell => {\r\n var {\r\n index: index,\r\n groupIndex: groupIndex,\r\n allDay: allDay,\r\n startDate: startDate\r\n } = cell.cellData;\r\n var indexInSelectedCells = selectedCells.findIndex(_ref5 => {\r\n var {\r\n index: selectedCellIndex,\r\n groupIndex: selectedCellGroupIndex,\r\n allDay: selectedCellAllDay,\r\n startDate: selectedCellStartDate\r\n } = _ref5;\r\n return groupIndex === selectedCellGroupIndex && (index === selectedCellIndex || void 0 === selectedCellIndex && startDate.getTime() === selectedCellStartDate.getTime()) && !!allDay === !!selectedCellAllDay\r\n });\r\n var isFocused = !!focusedCell && index === focusedCell.cellData.index && groupIndex === focusedCell.cellData.groupIndex && allDay === focusedCell.cellData.allDay;\r\n if (!isFocused && -1 === indexInSelectedCells) {\r\n return cell\r\n }\r\n return _extends(_extends({}, cell), {\r\n cellData: _extends(_extends({}, cell.cellData), {\r\n isSelected: indexInSelectedCells > -1,\r\n isFocused: isFocused\r\n })\r\n })\r\n })\r\n }\r\n getInterval(hoursInterval) {\r\n return hoursInterval * toMs(\"hour\")\r\n }\r\n _getIntervalDuration(intervalCount) {\r\n return toMs(\"day\") * intervalCount\r\n }\r\n _setVisibilityDates(options) {}\r\n getCellCountInDay(startDayHour, endDayHour, hoursInterval) {\r\n var result = calculateDayDuration(startDayHour, endDayHour) / hoursInterval;\r\n return Math.ceil(result)\r\n }\r\n getCellCount(options) {\r\n var {\r\n intervalCount: intervalCount,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var columnCountInDay = isHorizontalView(viewType) ? cellCountInDay : 1;\r\n return this.daysInInterval * intervalCount * columnCountInDay\r\n }\r\n getRowCount(options) {\r\n var {\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var rowCountInDay = !isHorizontalView(viewType) ? cellCountInDay : 1;\r\n return rowCountInDay\r\n }\r\n setHiddenInterval(startDayHour, endDayHour, hoursInterval) {\r\n this.hiddenInterval = toMs(\"day\") - this.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getVisibleDayDuration(startDayHour, endDayHour, hoursInterval) {\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n return hoursInterval * cellCountInDay * toMs(\"hour\")\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return firstDayOfWeekOption\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var durationMs = Math.round(options.interval);\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_day.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n calculateStartViewDate\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/day\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nexport class ViewDataGeneratorDay extends ViewDataGenerator {\r\n _calculateStartViewDate(options) {\r\n return calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/day.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getViewStartByOptions,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration) => {\r\n var firstViewDate = getViewStartByOptions(startDate, currentDate, intervalDuration, startDate);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../../../../localization/date\";\r\nimport {\r\n getCalculatedFirstDayOfWeek,\r\n isDateInRange,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var getViewStartByOptions = (startDate, currentDate, intervalCount, startViewDate) => {\r\n if (!startDate) {\r\n return new Date(currentDate)\r\n }\r\n var currentStartDate = new Date(startViewDate);\r\n var validStartViewDate = new Date(startViewDate);\r\n var diff = currentStartDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(new Date(validStartViewDate.setMonth(validStartViewDate.getMonth() + diff * intervalCount)));\r\n while (!isDateInRange(currentDate, currentStartDate, endDate, diff)) {\r\n currentStartDate = new Date(endDate);\r\n if (diff > 0) {\r\n currentStartDate.setDate(1)\r\n }\r\n endDate = new Date(new Date(endDate.setMonth(endDate.getMonth() + diff * intervalCount)))\r\n }\r\n return diff > 0 ? currentStartDate : endDate\r\n};\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalCount, firstDayOfWeekOption) => {\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalCount, dateUtils.getFirstMonthDate(startDate));\r\n var firstMonthDate = dateUtils.getFirstMonthDate(viewStart);\r\n var firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption);\r\n var firstViewDate = dateUtils.getFirstWeekDate(firstMonthDate, firstDayOfWeek);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\nexport var calculateCellIndex = (rowIndex, columnIndex, _, columnCount) => rowIndex * columnCount + columnIndex;\r\nexport var isFirstCellInMonthWithIntervalCount = (cellDate, intervalCount) => 1 === cellDate.getDate() && intervalCount > 1;\r\nexport var getCellText = (date, intervalCount) => {\r\n if (isFirstCellInMonthWithIntervalCount(date, intervalCount)) {\r\n var monthName = dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()];\r\n return [monthName, dateLocalization.format(date, \"day\")].join(\" \")\r\n }\r\n return dateLocalization.format(date, \"dd\")\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport {\r\n getToday,\r\n setOptionHour\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n calculateCellIndex,\r\n calculateStartViewDate,\r\n getCellText,\r\n getViewStartByOptions,\r\n isFirstCellInMonthWithIntervalCount\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/month\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n calculateAlignedWeeksBetweenDates\r\n} from \"./m_utils\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DAYS_IN_WEEK = 7;\r\nexport class ViewDataGeneratorMonth extends ViewDataGenerator {\r\n constructor() {\r\n super(...arguments);\r\n this.tableAllDay = void 0\r\n }\r\n getCellData(rowIndex, columnIndex, options, allDay) {\r\n var {\r\n indicatorTime: indicatorTime,\r\n timeZoneCalculator: timeZoneCalculator,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var data = super.getCellData(rowIndex, columnIndex, options, false);\r\n var startDate = timezoneUtils.addOffsetsWithoutDST(data.startDate, -viewOffset);\r\n data.today = this.isCurrentDate(startDate, indicatorTime, timeZoneCalculator);\r\n data.otherMonth = this.isOtherMonth(startDate, this._minVisibleDate, this._maxVisibleDate);\r\n data.firstDayOfMonth = isFirstCellInMonthWithIntervalCount(startDate, intervalCount);\r\n data.text = getCellText(startDate, intervalCount);\r\n return data\r\n }\r\n isCurrentDate(date, indicatorTime, timeZoneCalculator) {\r\n return dateUtils.sameDate(date, getToday(indicatorTime, timeZoneCalculator))\r\n }\r\n isOtherMonth(cellDate, minDate, maxDate) {\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n }\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount) {\r\n return calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount)\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return setOptionHour(startDate, endDayHour)\r\n }\r\n getInterval() {\r\n return toMs(\"day\")\r\n }\r\n _calculateStartViewDate(options) {\r\n return calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, options.intervalCount, this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n _setVisibilityDates(options) {\r\n var {\r\n intervalCount: intervalCount,\r\n startDate: startDate,\r\n currentDate: currentDate\r\n } = options;\r\n var firstMonthDate = dateUtils.getFirstMonthDate(startDate);\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalCount, firstMonthDate);\r\n this._minVisibleDate = new Date(viewStart.setDate(1));\r\n var nextMonthDate = new Date(viewStart.setMonth(viewStart.getMonth() + intervalCount));\r\n this._maxVisibleDate = new Date(nextMonthDate.setDate(0))\r\n }\r\n getCellCount() {\r\n return DAYS_IN_WEEK\r\n }\r\n getRowCount(options) {\r\n var _a;\r\n var startDate = new Date(options.currentDate);\r\n startDate.setDate(1);\r\n var endDate = new Date(startDate);\r\n endDate.setMonth(endDate.getMonth() + options.intervalCount);\r\n endDate.setDate(0);\r\n return calculateAlignedWeeksBetweenDates(startDate, endDate, null !== (_a = options.firstDayOfWeek) && void 0 !== _a ? _a : dateLocalization.firstDayOfWeekIndex())\r\n }\r\n getCellCountInDay() {\r\n return 1\r\n }\r\n setHiddenInterval() {\r\n this.hiddenInterval = 0\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = options;\r\n var durationMs = (endDayHour - startDayHour) * toMs(\"hour\");\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n VIEWS\r\n} from \"../../m_constants\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nimport {\r\n ViewDataGeneratorDay\r\n} from \"./m_view_data_generator_day\";\r\nimport {\r\n ViewDataGeneratorMonth\r\n} from \"./m_view_data_generator_month\";\r\nimport {\r\n ViewDataGeneratorTimelineMonth\r\n} from \"./m_view_data_generator_timeline_month\";\r\nimport {\r\n ViewDataGeneratorWeek\r\n} from \"./m_view_data_generator_week\";\r\nimport {\r\n ViewDataGeneratorWorkWeek\r\n} from \"./m_view_data_generator_work_week\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar MS_IN_DAY = 864e5;\r\nexport var getViewDataGeneratorByViewType = viewType => {\r\n switch (viewType) {\r\n case VIEWS.MONTH:\r\n return new ViewDataGeneratorMonth;\r\n case VIEWS.TIMELINE_MONTH:\r\n return new ViewDataGeneratorTimelineMonth;\r\n case VIEWS.DAY:\r\n case VIEWS.TIMELINE_DAY:\r\n return new ViewDataGeneratorDay;\r\n case VIEWS.WEEK:\r\n case VIEWS.TIMELINE_WEEK:\r\n return new ViewDataGeneratorWeek;\r\n case VIEWS.WORK_WEEK:\r\n case VIEWS.TIMELINE_WORK_WEEK:\r\n return new ViewDataGeneratorWorkWeek;\r\n default:\r\n return new ViewDataGenerator\r\n }\r\n};\r\nexport function alignToFirstDayOfWeek(date, firstDayOfWeek) {\r\n var newDate = new Date(date);\r\n var dayDiff = newDate.getDay() - firstDayOfWeek;\r\n if (dayDiff < 0) {\r\n dayDiff += DAYS_IN_WEEK\r\n }\r\n newDate.setDate(newDate.getDate() - dayDiff);\r\n return newDate\r\n}\r\nexport function alignToLastDayOfWeek(date, firstDayOfWeek) {\r\n var newDate = alignToFirstDayOfWeek(date, firstDayOfWeek);\r\n newDate.setDate(newDate.getDate() + DAYS_IN_WEEK - 1);\r\n return newDate\r\n}\r\nexport function calculateDaysBetweenDates(fromDate, toDate) {\r\n var msDiff = dateUtils.trimTime(toDate).getTime() - dateUtils.trimTime(fromDate).getTime();\r\n return Math.round(msDiff / MS_IN_DAY) + 1\r\n}\r\nexport function calculateAlignedWeeksBetweenDates(fromDate, toDate, firstDayOfWeek) {\r\n var alignedFromDate = alignToFirstDayOfWeek(fromDate, firstDayOfWeek);\r\n var alignedToDate = alignToLastDayOfWeek(toDate, firstDayOfWeek);\r\n var weekCount = calculateDaysBetweenDates(alignedFromDate, alignedToDate) / DAYS_IN_WEEK;\r\n return Math.max(weekCount, 6)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/timeline_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../../../core/utils/date\";\r\nimport {\r\n setOptionHour\r\n} from \"./base\";\r\nimport {\r\n getViewStartByOptions\r\n} from \"./month\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalCount) => {\r\n var firstViewDate = dateUtils.getFirstMonthDate(getViewStartByOptions(startDate, currentDate, intervalCount, dateUtils.getFirstMonthDate(startDate)));\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_timeline_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n setOptionHour\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n calculateCellIndex\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/month\";\r\nimport {\r\n calculateStartViewDate\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/timeline_month\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class ViewDataGeneratorTimelineMonth extends ViewDataGenerator {\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount) {\r\n return calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount)\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return setOptionHour(startDate, endDayHour)\r\n }\r\n getInterval() {\r\n return toMs(\"day\")\r\n }\r\n _calculateStartViewDate(options) {\r\n return calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, options.intervalCount)\r\n }\r\n getCellCount(options) {\r\n var {\r\n intervalCount: intervalCount\r\n } = options;\r\n var currentDate = new Date(options.currentDate);\r\n var cellCount = 0;\r\n for (var i = 1; i <= intervalCount; i++) {\r\n cellCount += new Date(currentDate.getFullYear(), currentDate.getMonth() + i, 0).getDate()\r\n }\r\n return cellCount\r\n }\r\n setHiddenInterval() {\r\n this.hiddenInterval = 0\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = options;\r\n var durationMs = (endDayHour - startDayHour) * toMs(\"hour\");\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n calculateStartViewDate,\r\n getIntervalDuration\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/week\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nexport class ViewDataGeneratorWeek extends ViewDataGenerator {\r\n constructor() {\r\n super(...arguments);\r\n this.daysInInterval = 7\r\n }\r\n _getIntervalDuration(intervalCount) {\r\n return getIntervalDuration(intervalCount)\r\n }\r\n _calculateStartViewDate(options) {\r\n return calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount), this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/work_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../../../../core/utils/date\";\r\nimport {\r\n getViewStartByOptions,\r\n setOptionHour\r\n} from \"./base\";\r\nimport {\r\n getValidStartDate\r\n} from \"./week\";\r\nvar SATURDAY_INDEX = 6;\r\nvar SUNDAY_INDEX = 0;\r\nvar MONDAY_INDEX = 1;\r\nvar DAYS_IN_WEEK = 7;\r\nexport var isDataOnWeekend = date => {\r\n var day = date.getDay();\r\n return day === SATURDAY_INDEX || day === SUNDAY_INDEX\r\n};\r\nexport var getWeekendsCount = days => 2 * Math.floor(days / 7);\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeek) => {\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek));\r\n var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);\r\n if (isDataOnWeekend(firstViewDate)) {\r\n var currentDay = firstViewDate.getDay();\r\n var distance = (MONDAY_INDEX + DAYS_IN_WEEK - currentDay) % 7;\r\n firstViewDate.setDate(firstViewDate.getDate() + distance)\r\n }\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_work_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n calculateStartViewDate,\r\n isDataOnWeekend\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/work_week\";\r\nimport {\r\n ViewDataGeneratorWeek\r\n} from \"./m_view_data_generator_week\";\r\nexport class ViewDataGeneratorWorkWeek extends ViewDataGeneratorWeek {\r\n constructor() {\r\n super(...arguments);\r\n this.daysInInterval = 5;\r\n this.isWorkView = true\r\n }\r\n isSkippedDate(date) {\r\n return isDataOnWeekend(date)\r\n }\r\n _calculateStartViewDate(options) {\r\n return calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount), this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return firstDayOfWeekOption || 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_provider.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getGroupPanelData\r\n} from \"../../../../renovation/ui/scheduler/view_model/group_panel/utils\";\r\nimport {\r\n calculateIsGroupedAllDayPanel,\r\n isHorizontalView\r\n} from \"../../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n isGroupingByDate,\r\n isHorizontalGroupingApplied,\r\n isVerticalGroupingApplied\r\n} from \"../../../../renovation/ui/scheduler/workspaces/utils\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n DateHeaderDataGenerator\r\n} from \"./m_date_header_data_generator\";\r\nimport {\r\n GroupedDataMapProvider\r\n} from \"./m_grouped_data_map_provider\";\r\nimport {\r\n TimePanelDataGenerator\r\n} from \"./m_time_panel_data_generator\";\r\nimport {\r\n getViewDataGeneratorByViewType\r\n} from \"./m_utils\";\r\nexport default class ViewDataProvider {\r\n constructor(viewType) {\r\n this.viewType = viewType;\r\n this.viewDataGenerator = getViewDataGeneratorByViewType(viewType);\r\n this.viewData = {};\r\n this.completeViewDataMap = [];\r\n this.completeDateHeaderMap = [];\r\n this.viewDataMap = {};\r\n this._groupedDataMapProvider = null\r\n }\r\n get groupedDataMap() {\r\n return this._groupedDataMapProvider.groupedDataMap\r\n }\r\n get hiddenInterval() {\r\n return this.viewDataGenerator.hiddenInterval\r\n }\r\n isSkippedDate(date) {\r\n return this.viewDataGenerator.isSkippedDate(date)\r\n }\r\n update(options, isGenerateNewViewData) {\r\n this.viewDataGenerator = getViewDataGeneratorByViewType(options.viewType);\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this;\r\n var dateHeaderDataGenerator = new DateHeaderDataGenerator(viewDataGenerator);\r\n var timePanelDataGenerator = new TimePanelDataGenerator(viewDataGenerator);\r\n var renderOptions = this._transformRenderOptions(options);\r\n renderOptions.interval = this.viewDataGenerator.getInterval(renderOptions.hoursInterval);\r\n this._options = renderOptions;\r\n if (isGenerateNewViewData) {\r\n this.completeViewDataMap = viewDataGenerator.getCompleteViewDataMap(renderOptions);\r\n this.completeDateHeaderMap = dateHeaderDataGenerator.getCompleteDateHeaderMap(renderOptions, this.completeViewDataMap);\r\n if (renderOptions.isGenerateTimePanelData) {\r\n this.completeTimePanelMap = timePanelDataGenerator.getCompleteTimePanelMap(renderOptions, this.completeViewDataMap)\r\n }\r\n }\r\n this.viewDataMap = viewDataGenerator.generateViewDataMap(this.completeViewDataMap, renderOptions);\r\n this.updateViewData(renderOptions);\r\n this._groupedDataMapProvider = new GroupedDataMapProvider(this.viewDataGenerator, this.viewDataMap, this.completeViewDataMap, {\r\n isVerticalGrouping: renderOptions.isVerticalGrouping,\r\n viewType: renderOptions.viewType,\r\n viewOffset: options.viewOffset\r\n });\r\n this.dateHeaderData = dateHeaderDataGenerator.generateDateHeaderData(this.completeDateHeaderMap, this.completeViewDataMap, renderOptions);\r\n if (renderOptions.isGenerateTimePanelData) {\r\n this.timePanelData = timePanelDataGenerator.generateTimePanelData(this.completeTimePanelMap, renderOptions)\r\n }\r\n }\r\n createGroupedDataMapProvider() {\r\n this._groupedDataMapProvider = new GroupedDataMapProvider(this.viewDataGenerator, this.viewDataMap, this.completeViewDataMap, {\r\n isVerticalGrouping: this._options.isVerticalGrouping,\r\n viewType: this._options.viewType\r\n })\r\n }\r\n updateViewData(options) {\r\n var renderOptions = this._transformRenderOptions(options);\r\n this.viewDataMapWithSelection = this.viewDataGenerator.markSelectedAndFocusedCells(this.viewDataMap, renderOptions);\r\n this.viewData = this.viewDataGenerator.getViewDataFromMap(this.completeViewDataMap, this.viewDataMapWithSelection, renderOptions)\r\n }\r\n _transformRenderOptions(renderOptions) {\r\n var {\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n groupByDate: groupByDate,\r\n isAllDayPanelVisible: isAllDayPanelVisible,\r\n viewOffset: viewOffset\r\n } = renderOptions, restOptions = __rest(renderOptions, [\"groups\", \"groupOrientation\", \"groupByDate\", \"isAllDayPanelVisible\", \"viewOffset\"]);\r\n return _extends(_extends({}, restOptions), {\r\n startViewDate: this.viewDataGenerator._calculateStartViewDate(renderOptions),\r\n isVerticalGrouping: isVerticalGroupingApplied(groups, groupOrientation),\r\n isHorizontalGrouping: isHorizontalGroupingApplied(groups, groupOrientation),\r\n isGroupedByDate: isGroupingByDate(groups, groupOrientation, groupByDate),\r\n isGroupedAllDayPanel: calculateIsGroupedAllDayPanel(groups, groupOrientation, isAllDayPanelVisible),\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isAllDayPanelVisible: isAllDayPanelVisible,\r\n viewOffset: viewOffset\r\n })\r\n }\r\n getGroupPanelData(options) {\r\n var renderOptions = this._transformRenderOptions(options);\r\n if (renderOptions.groups.length > 0) {\r\n var cellCount = this.getCellCount(renderOptions);\r\n return getGroupPanelData(renderOptions.groups, cellCount, renderOptions.isGroupedByDate, renderOptions.isGroupedByDate ? 1 : cellCount)\r\n }\r\n return\r\n }\r\n getGroupStartDate(groupIndex) {\r\n return this._groupedDataMapProvider.getGroupStartDate(groupIndex)\r\n }\r\n getGroupEndDate(groupIndex) {\r\n return this._groupedDataMapProvider.getGroupEndDate(groupIndex)\r\n }\r\n findGroupCellStartDate(groupIndex, startDate, endDate) {\r\n var isFindByDate = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n return this._groupedDataMapProvider.findGroupCellStartDate(groupIndex, startDate, endDate, isFindByDate)\r\n }\r\n findAllDayGroupCellStartDate(groupIndex) {\r\n return this._groupedDataMapProvider.findAllDayGroupCellStartDate(groupIndex)\r\n }\r\n findCellPositionInMap(cellInfo) {\r\n var isAppointmentRender = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n return this._groupedDataMapProvider.findCellPositionInMap(cellInfo, isAppointmentRender)\r\n }\r\n hasAllDayPanel() {\r\n var {\r\n viewData: viewData\r\n } = this.viewDataMap;\r\n var {\r\n allDayPanel: allDayPanel\r\n } = viewData.groupedData[0];\r\n return !viewData.isGroupedAllDayPanel && (null === allDayPanel || void 0 === allDayPanel ? void 0 : allDayPanel.length) > 0\r\n }\r\n getCellsGroup(groupIndex) {\r\n return this._groupedDataMapProvider.getCellsGroup(groupIndex)\r\n }\r\n getCompletedGroupsInfo() {\r\n return this._groupedDataMapProvider.getCompletedGroupsInfo()\r\n }\r\n getGroupIndices() {\r\n return this._groupedDataMapProvider.getGroupIndices()\r\n }\r\n getLastGroupCellPosition(groupIndex) {\r\n return this._groupedDataMapProvider.getLastGroupCellPosition(groupIndex)\r\n }\r\n getRowCountInGroup(groupIndex) {\r\n return this._groupedDataMapProvider.getRowCountInGroup(groupIndex)\r\n }\r\n getCellData(rowIndex, columnIndex, isAllDay, rtlEnabled) {\r\n var row = isAllDay && !this._options.isVerticalGrouping ? this.viewDataMap.allDayPanelMap : this.viewDataMap.dateTableMap[rowIndex];\r\n var actualColumnIndex = !rtlEnabled ? columnIndex : row.length - 1 - columnIndex;\r\n var {\r\n cellData: cellData\r\n } = row[actualColumnIndex];\r\n return cellData\r\n }\r\n getCellsByGroupIndexAndAllDay(groupIndex, allDay) {\r\n var rowsPerGroup = this._getRowCountWithAllDayRows();\r\n var isShowAllDayPanel = this._options.isAllDayPanelVisible;\r\n var firstRowInGroup = this._options.isVerticalGrouping ? groupIndex * rowsPerGroup : 0;\r\n var lastRowInGroup = this._options.isVerticalGrouping ? (groupIndex + 1) * rowsPerGroup - 1 : rowsPerGroup;\r\n var correctedFirstRow = isShowAllDayPanel && !allDay ? firstRowInGroup + 1 : firstRowInGroup;\r\n var correctedLastRow = allDay ? correctedFirstRow : lastRowInGroup;\r\n return this.completeViewDataMap.slice(correctedFirstRow, correctedLastRow + 1).map(row => row.filter(_ref => {\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = _ref;\r\n return groupIndex === currentGroupIndex\r\n }))\r\n }\r\n getCellCountWithGroup(groupIndex) {\r\n var rowIndex = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap.filter((_, index) => index <= groupIndex).reduce((previous, row) => previous + row[rowIndex].length, 0)\r\n }\r\n hasGroupAllDayPanel(groupIndex) {\r\n var _a, _b;\r\n if (this._options.isVerticalGrouping) {\r\n return !!(null === (_a = this.groupedDataMap.dateTableGroupedMap[groupIndex]) || void 0 === _a ? void 0 : _a[0][0].cellData.allDay)\r\n }\r\n return (null === (_b = this.groupedDataMap.allDayPanelGroupedMap[groupIndex]) || void 0 === _b ? void 0 : _b.length) > 0\r\n }\r\n isGroupIntersectDateInterval(groupIndex, startDate, endDate) {\r\n var groupStartDate = this.getGroupStartDate(groupIndex);\r\n var groupEndDate = this.getGroupEndDate(groupIndex);\r\n return startDate < groupEndDate && endDate > groupStartDate\r\n }\r\n findGlobalCellPosition(date) {\r\n var groupIndex = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var {\r\n completeViewDataMap: completeViewDataMap\r\n } = this;\r\n var showAllDayPanel = this._options.isAllDayPanelVisible;\r\n for (var rowIndex = 0; rowIndex < completeViewDataMap.length; rowIndex += 1) {\r\n var currentRow = completeViewDataMap[rowIndex];\r\n for (var columnIndex = 0; columnIndex < currentRow.length; columnIndex += 1) {\r\n var cellData = currentRow[columnIndex];\r\n var {\r\n startDate: currentStartDate,\r\n endDate: currentEndDate,\r\n groupIndex: currentGroupIndex,\r\n allDay: currentAllDay\r\n } = cellData;\r\n if (groupIndex === currentGroupIndex && allDay === !!currentAllDay && this._compareDatesAndAllDay(date, currentStartDate, currentEndDate, allDay)) {\r\n return {\r\n position: {\r\n columnIndex: columnIndex,\r\n rowIndex: showAllDayPanel && !this._options.isVerticalGrouping ? rowIndex - 1 : rowIndex\r\n },\r\n cellData: cellData\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n _compareDatesAndAllDay(date, cellStartDate, cellEndDate, allDay) {\r\n return allDay ? dateUtils.sameDate(date, cellStartDate) : date >= cellStartDate && date < cellEndDate\r\n }\r\n getSkippedDaysCount(groupIndex, startDate, endDate, daysCount) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this._groupedDataMapProvider.groupedDataMap;\r\n var groupedData = dateTableGroupedMap[groupIndex];\r\n var includedDays = 0;\r\n for (var rowIndex = 0; rowIndex < groupedData.length; rowIndex += 1) {\r\n for (var columnIndex = 0; columnIndex < groupedData[rowIndex].length; columnIndex += 1) {\r\n var cell = groupedData[rowIndex][columnIndex].cellData;\r\n if (startDate.getTime() < cell.endDate.getTime() && endDate.getTime() > cell.startDate.getTime()) {\r\n includedDays += 1\r\n }\r\n }\r\n }\r\n var lastCell = groupedData[groupedData.length - 1][groupedData[0].length - 1].cellData;\r\n var lastCellStart = dateUtils.trimTime(lastCell.startDate);\r\n var daysAfterView = Math.floor((endDate.getTime() - lastCellStart.getTime()) / dateUtils.dateToMilliseconds(\"day\"));\r\n var deltaDays = daysAfterView > 0 ? daysAfterView : 0;\r\n return daysCount - includedDays - deltaDays\r\n }\r\n getColumnsCount() {\r\n var {\r\n dateTableMap: dateTableMap\r\n } = this.viewDataMap;\r\n return dateTableMap ? dateTableMap[0].length : 0\r\n }\r\n getViewEdgeIndices(isAllDayPanel) {\r\n if (isAllDayPanel) {\r\n return {\r\n firstColumnIndex: 0,\r\n lastColumnIndex: this.viewDataMap.allDayPanelMap.length - 1,\r\n firstRowIndex: 0,\r\n lastRowIndex: 0\r\n }\r\n }\r\n return {\r\n firstColumnIndex: 0,\r\n lastColumnIndex: this.viewDataMap.dateTableMap[0].length - 1,\r\n firstRowIndex: 0,\r\n lastRowIndex: this.viewDataMap.dateTableMap.length - 1\r\n }\r\n }\r\n getGroupEdgeIndices(groupIndex, isAllDay) {\r\n var groupedDataMap = this.groupedDataMap.dateTableGroupedMap[groupIndex];\r\n var cellsCount = groupedDataMap[0].length;\r\n var rowsCount = groupedDataMap.length;\r\n var firstColumnIndex = groupedDataMap[0][0].position.columnIndex;\r\n var lastColumnIndex = groupedDataMap[0][cellsCount - 1].position.columnIndex;\r\n if (isAllDay) {\r\n return {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: 0,\r\n lastRowIndex: 0\r\n }\r\n }\r\n return {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: groupedDataMap[0][0].position.rowIndex,\r\n lastRowIndex: groupedDataMap[rowsCount - 1][0].position.rowIndex\r\n }\r\n }\r\n isSameCell(firstCellData, secondCellData) {\r\n var {\r\n startDate: firstStartDate,\r\n groupIndex: firstGroupIndex,\r\n allDay: firstAllDay,\r\n index: firstIndex\r\n } = firstCellData;\r\n var {\r\n startDate: secondStartDate,\r\n groupIndex: secondGroupIndex,\r\n allDay: secondAllDay,\r\n index: secondIndex\r\n } = secondCellData;\r\n return firstStartDate.getTime() === secondStartDate.getTime() && firstGroupIndex === secondGroupIndex && firstAllDay === secondAllDay && firstIndex === secondIndex\r\n }\r\n getLastViewDate() {\r\n var {\r\n completeViewDataMap: completeViewDataMap\r\n } = this;\r\n var rowsCount = completeViewDataMap.length - 1;\r\n return completeViewDataMap[rowsCount][completeViewDataMap[rowsCount].length - 1].endDate\r\n }\r\n getStartViewDate() {\r\n return this._options.startViewDate\r\n }\r\n getIntervalDuration(intervalCount) {\r\n return this.viewDataGenerator._getIntervalDuration(intervalCount)\r\n }\r\n getLastCellEndDate() {\r\n var lastEndDate = new Date(this.getLastViewDate().getTime() - dateUtils.dateToMilliseconds(\"minute\"));\r\n return dateUtilsTs.addOffsets(lastEndDate, [-this._options.viewOffset])\r\n }\r\n getLastViewDateByEndDayHour(endDayHour) {\r\n var lastCellEndDate = this.getLastCellEndDate();\r\n var endTime = dateUtils.dateTimeFromDecimal(endDayHour);\r\n var endDateOfLastViewCell = new Date(lastCellEndDate.setHours(endTime.hours, endTime.minutes));\r\n return this._adjustEndDateByDaylightDiff(lastCellEndDate, endDateOfLastViewCell)\r\n }\r\n _adjustEndDateByDaylightDiff(startDate, endDate) {\r\n var daylightDiff = timeZoneUtils.getDaylightOffsetInMs(startDate, endDate);\r\n var endDateOfLastViewCell = new Date(endDate.getTime() - daylightDiff);\r\n return new Date(endDateOfLastViewCell.getTime() - dateUtils.dateToMilliseconds(\"minute\"))\r\n }\r\n getCellCountInDay(startDayHour, endDayHour, hoursInterval) {\r\n return this.viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getCellCount(options) {\r\n return this.viewDataGenerator.getCellCount(options)\r\n }\r\n getRowCount(options) {\r\n return this.viewDataGenerator.getRowCount(options)\r\n }\r\n getVisibleDayDuration(startDayHour, endDayHour, hoursInterval) {\r\n return this.viewDataGenerator.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n _getRowCountWithAllDayRows() {\r\n var allDayRowCount = this._options.isAllDayPanelVisible ? 1 : 0;\r\n return this.getRowCount(this._options) + allDayRowCount\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return this.viewDataGenerator.getFirstDayOfWeek(firstDayOfWeekOption)\r\n }\r\n setViewOptions(options) {\r\n this._options = this._transformRenderOptions(options)\r\n }\r\n getViewOptions() {\r\n return this._options\r\n }\r\n getViewPortGroupCount() {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return (null === dateTableGroupedMap || void 0 === dateTableGroupedMap ? void 0 : dateTableGroupedMap.length) || 0\r\n }\r\n getCellsBetween(first, last) {\r\n var _a, _b;\r\n var [firstCell, lastCell] = this.normalizeCellsOrder(first, last);\r\n var {\r\n index: firstIdx\r\n } = firstCell;\r\n var {\r\n index: lastIdx\r\n } = lastCell;\r\n var cellMatrix = this.getCellsByGroupIndexAndAllDay(null !== (_a = firstCell.groupIndex) && void 0 !== _a ? _a : 0, null !== (_b = lastCell.allDay) && void 0 !== _b ? _b : false);\r\n return isHorizontalView(this.viewType) ? this.getCellsBetweenHorizontalView(cellMatrix, firstIdx, lastIdx) : this.getCellsBetweenVerticalView(cellMatrix, firstIdx, lastIdx)\r\n }\r\n getCellsBetweenHorizontalView(cellMatrix, firstIdx, lastIdx) {\r\n return cellMatrix.reduce((result, row) => result.concat(row.filter(_ref2 => {\r\n var {\r\n index: index\r\n } = _ref2;\r\n return firstIdx <= index && index <= lastIdx\r\n })), [])\r\n }\r\n getCellsBetweenVerticalView(cellMatrix, firstIdx, lastIdx) {\r\n var _a, _b;\r\n var result = [];\r\n var matrixHeight = cellMatrix.length;\r\n var matrixWidth = null !== (_b = null === (_a = cellMatrix[0]) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;\r\n var inSegment = false;\r\n for (var columnIdx = 0; columnIdx < matrixWidth; columnIdx += 1) {\r\n for (var rowIdx = 0; rowIdx < matrixHeight; rowIdx += 1) {\r\n var cell = cellMatrix[rowIdx][columnIdx];\r\n var {\r\n index: cellIdx\r\n } = cell;\r\n if (cellIdx === firstIdx) {\r\n inSegment = true\r\n }\r\n if (inSegment) {\r\n result.push(cell)\r\n }\r\n if (cellIdx === lastIdx) {\r\n return result\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n normalizeCellsOrder(firstSelectedCell, lastSelectedCell) {\r\n return firstSelectedCell.startDate > lastSelectedCell.startDate ? [lastSelectedCell, firstSelectedCell] : [firstSelectedCell, lastSelectedCell]\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/group_panel/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar extendGroupItemsForGroupingByDate = (groupRenderItems, columnCountPerGroup) => [...new Array(columnCountPerGroup)].reduce((currentGroupItems, _, index) => groupRenderItems.map((groupsRow, rowIndex) => {\r\n var currentRow = currentGroupItems[rowIndex] || [];\r\n return [...currentRow, ...groupsRow.map((item, columnIndex) => _extends({}, item, {\r\n key: \"\".concat(item.key, \"_group_by_date_\").concat(index),\r\n isFirstGroupCell: 0 === columnIndex,\r\n isLastGroupCell: columnIndex === groupsRow.length - 1\r\n }))]\r\n}), []);\r\nexport var getGroupPanelData = (groups, columnCountPerGroup, groupByDate, baseColSpan) => {\r\n var repeatCount = 1;\r\n var groupPanelItems = groups.map(group => {\r\n var result = [];\r\n var {\r\n data: data,\r\n items: items,\r\n name: resourceName\r\n } = group;\r\n var _loop = function(iterator) {\r\n result.push(...items.map((_ref, index) => {\r\n var {\r\n color: color,\r\n id: id,\r\n text: text\r\n } = _ref;\r\n return {\r\n id: id,\r\n text: text,\r\n color: color,\r\n key: \"\".concat(iterator, \"_\").concat(resourceName, \"_\").concat(id),\r\n resourceName: resourceName,\r\n data: null === data || void 0 === data ? void 0 : data[index]\r\n }\r\n }))\r\n };\r\n for (var iterator = 0; iterator < repeatCount; iterator += 1) {\r\n _loop(iterator)\r\n }\r\n repeatCount *= items.length;\r\n return result\r\n });\r\n if (groupByDate) {\r\n groupPanelItems = extendGroupItemsForGroupingByDate(groupPanelItems, columnCountPerGroup)\r\n }\r\n return {\r\n groupPanelItems: groupPanelItems,\r\n baseColSpan: baseColSpan\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n locate,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth,\r\n setOuterHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../../events/contextmenu\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n drop as dragEventDrop,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave\r\n} from \"../../../events/drag\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n getMemoizeScrollTo\r\n} from \"../../../renovation/ui/common/utils/scroll/getMemoizeScrollTo\";\r\nimport {\r\n calculateIsGroupedAllDayPanel,\r\n calculateViewStartDate,\r\n getCellDuration,\r\n getStartViewDateTimeOffset,\r\n getViewStartByOptions,\r\n isDateAndTimeView\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport dxrAllDayPanelTable from \"../../../renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/table.j\";\r\nimport dxrAllDayPanelTitle from \"../../../renovation/ui/scheduler/workspaces/base/date_table/all_day_panel/title.j\";\r\nimport dxrDateTableLayout from \"../../../renovation/ui/scheduler/workspaces/base/date_table/layout.j\";\r\nimport dxrGroupPanel from \"../../../renovation/ui/scheduler/workspaces/base/group_panel/group_panel.j\";\r\nimport dxrDateHeader from \"../../../renovation/ui/scheduler/workspaces/base/header_panel/layout.j\";\r\nimport dxrTimePanelTableLayout from \"../../../renovation/ui/scheduler/workspaces/base/time_panel/layout.j\";\r\nimport WidgetObserver from \"../base/m_widget_observer\";\r\nimport AppointmentDragBehavior from \"../m_appointment_drag_behavior\";\r\nimport {\r\n DATE_TABLE_CLASS,\r\n DATE_TABLE_ROW_CLASS,\r\n FIXED_CONTAINER_CLASS,\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n TIME_PANEL_CLASS,\r\n VERTICAL_GROUP_COUNT_CLASSES,\r\n VIRTUAL_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"../m_constants\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport {\r\n utils\r\n} from \"../m_utils\";\r\nimport {\r\n createResourcesTree,\r\n getCellGroups,\r\n getGroupCount,\r\n getGroupsObjectFromGroupsArray\r\n} from \"../resources/m_utils\";\r\nimport VerticalShader from \"../shaders/m_current_time_shader_vertical\";\r\nimport {\r\n getAllDayHeight,\r\n getCellHeight,\r\n getCellWidth,\r\n getMaxAllowedPosition,\r\n PositionHelper\r\n} from \"./helpers/m_position_helper\";\r\nimport {\r\n Cache\r\n} from \"./m_cache\";\r\nimport {\r\n CellsSelectionController\r\n} from \"./m_cells_selection_controller\";\r\nimport CellsSelectionState from \"./m_cells_selection_state\";\r\nimport {\r\n VirtualScrollingDispatcher,\r\n VirtualScrollingRenderer\r\n} from \"./m_virtual_scrolling\";\r\nimport HorizontalGroupedStrategy from \"./m_work_space_grouped_strategy_horizontal\";\r\nimport VerticalGroupedStrategy from \"./m_work_space_grouped_strategy_vertical\";\r\nimport ViewDataProvider from \"./view_model/m_view_data_provider\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar DRAGGING_MOUSE_FAULT = 10;\r\nvar {\r\n abstract: abstract\r\n} = WidgetObserver;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar COMPONENT_CLASS = \"dx-scheduler-work-space\";\r\nvar GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-grouped\";\r\nvar VERTICAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-vertical-grouped\";\r\nvar WORKSPACE_VERTICAL_GROUP_TABLE_CLASS = \"dx-scheduler-work-space-vertical-group-table\";\r\nvar WORKSPACE_WITH_BOTH_SCROLLS_CLASS = \"dx-scheduler-work-space-both-scrollbar\";\r\nvar WORKSPACE_WITH_COUNT_CLASS = \"dx-scheduler-work-space-count\";\r\nvar WORKSPACE_WITH_GROUP_BY_DATE_CLASS = \"dx-scheduler-work-space-group-by-date\";\r\nvar WORKSPACE_WITH_ODD_CELLS_CLASS = \"dx-scheduler-work-space-odd-cells\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar ALL_DAY_PANEL_CLASS = \"dx-scheduler-all-day-panel\";\r\nvar ALL_DAY_TABLE_CLASS = \"dx-scheduler-all-day-table\";\r\nvar ALL_DAY_CONTAINER_CLASS = \"dx-scheduler-all-day-appointments\";\r\nvar ALL_DAY_TITLE_CLASS = \"dx-scheduler-all-day-title\";\r\nvar ALL_DAY_TABLE_CELL_CLASS = \"dx-scheduler-all-day-table-cell\";\r\nvar ALL_DAY_TABLE_ROW_CLASS = \"dx-scheduler-all-day-table-row\";\r\nvar WORKSPACE_WITH_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day\";\r\nvar WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day-collapsed\";\r\nvar WORKSPACE_WITH_MOUSE_SELECTION_CLASS = \"dx-scheduler-work-space-mouse-selection\";\r\nvar HORIZONTAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-horizontal\";\r\nvar VERTICAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-vertical\";\r\nvar HEADER_PANEL_CLASS = \"dx-scheduler-header-panel\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar GROUP_HEADER_CLASS = \"dx-scheduler-group-header\";\r\nvar DATE_TABLE_CELL_CLASS = \"dx-scheduler-date-table-cell\";\r\nvar DATE_TABLE_FOCUSED_CELL_CLASS = \"dx-scheduler-focused-cell\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-scheduler-virtual-row\";\r\nvar DATE_TABLE_DROPPABLE_CELL_CLASS = \"dx-scheduler-date-table-droppable-cell\";\r\nvar SCHEDULER_HEADER_SCROLLABLE_CLASS = \"dx-scheduler-header-scrollable\";\r\nvar SCHEDULER_SIDEBAR_SCROLLABLE_CLASS = \"dx-scheduler-sidebar-scrollable\";\r\nvar SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS = \"dx-scheduler-date-table-scrollable\";\r\nvar SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, \"dxSchedulerWorkSpace\");\r\nvar DragEventNames = {\r\n ENTER: addNamespace(dragEventEnter, \"dxSchedulerDateTable\"),\r\n DROP: addNamespace(dragEventDrop, \"dxSchedulerDateTable\"),\r\n LEAVE: addNamespace(dragEventLeave, \"dxSchedulerDateTable\")\r\n};\r\nvar SCHEDULER_CELL_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME = addNamespace(pointerEvents.move, \"dxSchedulerDateTable\");\r\nvar CELL_DATA = \"dxCellData\";\r\nvar DATE_TABLE_MIN_CELL_WIDTH = 75;\r\nvar DAY_MS = toMs(\"day\");\r\nvar HOUR_MS = toMs(\"hour\");\r\nvar DRAG_AND_DROP_SELECTOR = \".\".concat(DATE_TABLE_CLASS, \" td, .\").concat(ALL_DAY_TABLE_CLASS, \" td\");\r\nvar CELL_SELECTOR = \".\".concat(DATE_TABLE_CELL_CLASS, \", .\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\nvar CELL_INDEX_CALCULATION_EPSILON = .05;\r\nvar DEFAULT_WORKSPACE_RENDER_OPTIONS = {\r\n renderComponents: {\r\n header: true,\r\n timePanel: true,\r\n dateTable: true,\r\n allDayPanel: true\r\n },\r\n generateNewData: true\r\n};\r\nclass SchedulerWorkSpace extends WidgetObserver {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"vertical\"\r\n }\r\n get type() {\r\n return \"\"\r\n }\r\n get viewDataProvider() {\r\n if (!this._viewDataProvider) {\r\n this._viewDataProvider = new ViewDataProvider(this.type)\r\n }\r\n return this._viewDataProvider\r\n }\r\n get cache() {\r\n if (!this._cache) {\r\n this._cache = new Cache\r\n }\r\n return this._cache\r\n }\r\n get cellsSelectionState() {\r\n if (!this._cellsSelectionState) {\r\n this._cellsSelectionState = new CellsSelectionState(this.viewDataProvider);\r\n var selectedCellsOption = this.option(\"selectedCellData\");\r\n if ((null === selectedCellsOption || void 0 === selectedCellsOption ? void 0 : selectedCellsOption.length) > 0) {\r\n var validSelectedCells = selectedCellsOption.map(selectedCell => {\r\n var {\r\n groups: groups\r\n } = selectedCell;\r\n if (!groups || 0 === this._getGroupCount()) {\r\n return _extends(_extends({}, selectedCell), {\r\n groupIndex: 0\r\n })\r\n }\r\n var groupIndex = this._getGroupIndexByResourceId(groups);\r\n return _extends(_extends({}, selectedCell), {\r\n groupIndex: groupIndex\r\n })\r\n });\r\n this._cellsSelectionState.setSelectedCellsByData(validSelectedCells)\r\n }\r\n }\r\n return this._cellsSelectionState\r\n }\r\n get cellsSelectionController() {\r\n if (!this._cellsSelectionController) {\r\n this._cellsSelectionController = new CellsSelectionController\r\n }\r\n return this._cellsSelectionController\r\n }\r\n get isAllDayPanelVisible() {\r\n return this._isShowAllDayPanel() && this.supportAllDayRow()\r\n }\r\n get verticalGroupTableClass() {\r\n return WORKSPACE_VERTICAL_GROUP_TABLE_CLASS\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return dxrDateHeader\r\n }\r\n get timeZoneCalculator() {\r\n return this.option(\"timeZoneCalculator\")\r\n }\r\n get isDefaultDraggingMode() {\r\n return \"default\" === this.option(\"draggingMode\")\r\n }\r\n _supportedKeys() {\r\n var clickHandler = function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var selectedCells = this.cellsSelectionState.getSelectedCells();\r\n if (null === selectedCells || void 0 === selectedCells ? void 0 : selectedCells.length) {\r\n var selectedCellsElement = selectedCells.map(cellData => this._getCellByData(cellData)).filter(cell => !!cell);\r\n e.target = selectedCellsElement;\r\n this._showPopup = true;\r\n this._cellClickAction({\r\n event: e,\r\n cellElement: $(selectedCellsElement),\r\n cellData: selectedCells[0]\r\n })\r\n }\r\n };\r\n var onArrowPressed = (e, key) => {\r\n var _a;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var focusedCellData = null === (_a = this.cellsSelectionState.focusedCell) || void 0 === _a ? void 0 : _a.cellData;\r\n if (focusedCellData) {\r\n var isAllDayPanelCell = focusedCellData.allDay && !this._isVerticalGroupedWorkSpace();\r\n var isMultiSelection = e.shiftKey;\r\n var isMultiSelectionAllowed = this.option(\"allowMultipleCellSelection\");\r\n var isRTL = this._isRTL();\r\n var groupCount = this._getGroupCount();\r\n var isGroupedByDate = this.isGroupedByDate();\r\n var isHorizontalGrouping = this._isHorizontalGroupedWorkSpace();\r\n var focusedCellPosition = this.viewDataProvider.findCellPositionInMap(_extends(_extends({}, focusedCellData), {\r\n isAllDay: focusedCellData.allDay\r\n }));\r\n var edgeIndices = isHorizontalGrouping && isMultiSelection && !isGroupedByDate ? this.viewDataProvider.getGroupEdgeIndices(focusedCellData.groupIndex, isAllDayPanelCell) : this.viewDataProvider.getViewEdgeIndices(isAllDayPanelCell);\r\n var nextCellData = this.cellsSelectionController.handleArrowClick({\r\n focusedCellPosition: focusedCellPosition,\r\n edgeIndices: edgeIndices,\r\n isRTL: isRTL,\r\n isGroupedByDate: isGroupedByDate,\r\n groupCount: groupCount,\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n viewType: this.type,\r\n key: key,\r\n getCellDataByPosition: this.viewDataProvider.getCellData.bind(this.viewDataProvider),\r\n isAllDayPanelCell: isAllDayPanelCell,\r\n focusedCellData: focusedCellData\r\n });\r\n this._processNextSelectedCell(nextCellData, focusedCellData, isMultiSelection && isMultiSelectionAllowed)\r\n }\r\n };\r\n return extend(super._supportedKeys(), {\r\n enter: clickHandler,\r\n space: clickHandler,\r\n downArrow: e => {\r\n onArrowPressed(e, \"down\")\r\n },\r\n upArrow: e => {\r\n onArrowPressed(e, \"up\")\r\n },\r\n rightArrow: e => {\r\n onArrowPressed(e, \"right\")\r\n },\r\n leftArrow: e => {\r\n onArrowPressed(e, \"left\")\r\n }\r\n })\r\n }\r\n _isRTL() {\r\n return this.option(\"rtlEnabled\")\r\n }\r\n _moveToCell($cell, isMultiSelection) {\r\n if (!isDefined($cell) || !$cell.length) {\r\n return\r\n }\r\n var isMultiSelectionAllowed = this.option(\"allowMultipleCellSelection\");\r\n var currentCellData = this._getFullCellData($cell);\r\n var focusedCellData = this.cellsSelectionState.focusedCell.cellData;\r\n var nextFocusedCellData = this.cellsSelectionController.moveToCell({\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n currentCellData: currentCellData,\r\n focusedCellData: focusedCellData,\r\n isVirtualCell: $cell.hasClass(VIRTUAL_CELL_CLASS)\r\n });\r\n this._processNextSelectedCell(nextFocusedCellData, focusedCellData, isMultiSelectionAllowed && isMultiSelection)\r\n }\r\n _processNextSelectedCell(nextCellData, focusedCellData, isMultiSelection) {\r\n var nextCellPosition = this.viewDataProvider.findCellPositionInMap({\r\n startDate: nextCellData.startDate,\r\n groupIndex: nextCellData.groupIndex,\r\n isAllDay: nextCellData.allDay,\r\n index: nextCellData.index\r\n });\r\n if (!this.viewDataProvider.isSameCell(focusedCellData, nextCellData)) {\r\n var $cell = nextCellData.allDay && !this._isVerticalGroupedWorkSpace() ? this._dom_getAllDayPanelCell(nextCellPosition.columnIndex) : this._dom_getDateCell(nextCellPosition);\r\n var isNextCellAllDay = nextCellData.allDay;\r\n this._setSelectedCellsStateAndUpdateSelection(isNextCellAllDay, nextCellPosition, isMultiSelection, $cell);\r\n this._dateTableScrollable.scrollToElement($cell)\r\n }\r\n }\r\n _setSelectedCellsStateAndUpdateSelection(isAllDay, cellPosition, isMultiSelection, $nextFocusedCell) {\r\n var nextCellCoordinates = {\r\n rowIndex: cellPosition.rowIndex,\r\n columnIndex: cellPosition.columnIndex,\r\n allDay: isAllDay\r\n };\r\n this.cellsSelectionState.setFocusedCell(nextCellCoordinates.rowIndex, nextCellCoordinates.columnIndex, isAllDay);\r\n if (isMultiSelection) {\r\n this.cellsSelectionState.setSelectedCells(nextCellCoordinates)\r\n } else {\r\n this.cellsSelectionState.setSelectedCells(nextCellCoordinates, nextCellCoordinates)\r\n }\r\n this.updateCellsSelection();\r\n this._updateSelectedCellDataOption(this.cellsSelectionState.getSelectedCells(), $nextFocusedCell)\r\n }\r\n _hasAllDayClass($cell) {\r\n return $cell.hasClass(ALL_DAY_TABLE_CELL_CLASS)\r\n }\r\n _focusInHandler(e) {\r\n if ($(e.target).is(this._focusTarget()) && false !== this._isCellClick) {\r\n delete this._isCellClick;\r\n delete this._contextMenuHandled;\r\n super._focusInHandler.apply(this, arguments);\r\n this.cellsSelectionState.restoreSelectedAndFocusedCells();\r\n if (!this.cellsSelectionState.focusedCell) {\r\n var cellCoordinates = {\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n allDay: this._isVerticalGroupedWorkSpace() && this.isAllDayPanelVisible\r\n };\r\n this.cellsSelectionState.setFocusedCell(cellCoordinates.rowIndex, cellCoordinates.columnIndex, cellCoordinates.allDay);\r\n this.cellsSelectionState.setSelectedCells(cellCoordinates, cellCoordinates)\r\n }\r\n this.updateCellsSelection();\r\n this._updateSelectedCellDataOption(this.cellsSelectionState.getSelectedCells())\r\n }\r\n }\r\n _focusOutHandler() {\r\n super._focusOutHandler.apply(this, arguments);\r\n if (!this._contextMenuHandled && !this._disposed) {\r\n this.cellsSelectionState.releaseSelectedAndFocusedCells();\r\n this.viewDataProvider.updateViewData(this.generateRenderOptions());\r\n this.updateCellsSelection()\r\n }\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isVerticalGroupedWorkSpace() {\r\n var _a;\r\n return !!(null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && \"vertical\" === this.option(\"groupOrientation\")\r\n }\r\n _isHorizontalGroupedWorkSpace() {\r\n var _a;\r\n return !!(null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && \"horizontal\" === this.option(\"groupOrientation\")\r\n }\r\n _isWorkSpaceWithCount() {\r\n return this.option(\"intervalCount\") > 1\r\n }\r\n _isWorkspaceWithOddCells() {\r\n return .5 === this.option(\"hoursInterval\") && !this.isVirtualScrolling()\r\n }\r\n _getRealGroupOrientation() {\r\n return this._isVerticalGroupedWorkSpace() ? \"vertical\" : \"horizontal\"\r\n }\r\n createRAllDayPanelElements() {\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS);\r\n this._$allDayTitle = $(\"<div>\").appendTo(this._$headerPanelEmptyCell)\r\n }\r\n _dateTableScrollableConfig() {\r\n var config = {\r\n useKeyboard: false,\r\n bounceEnabled: false,\r\n updateManually: true,\r\n onScroll: () => {\r\n var _a;\r\n null === (_a = this._groupedStrategy.cache) || void 0 === _a ? void 0 : _a.clear()\r\n }\r\n };\r\n if (this._needCreateCrossScrolling()) {\r\n config = extend(config, this._createCrossScrollingConfig(config))\r\n }\r\n if (this.isVirtualScrolling() && (this.virtualScrollingDispatcher.horizontalScrollingAllowed || this.virtualScrollingDispatcher.height)) {\r\n var currentOnScroll = config.onScroll;\r\n config = _extends(_extends({}, config), {\r\n onScroll: e => {\r\n null === currentOnScroll || void 0 === currentOnScroll ? void 0 : currentOnScroll(e);\r\n this.virtualScrollingDispatcher.handleOnScrollEvent(null === e || void 0 === e ? void 0 : e.scrollOffset)\r\n }\r\n })\r\n }\r\n return config\r\n }\r\n _createCrossScrollingConfig(_ref) {\r\n var {\r\n onScroll: _onScroll\r\n } = _ref;\r\n return {\r\n direction: \"both\",\r\n onScroll: event => {\r\n null === _onScroll || void 0 === _onScroll ? void 0 : _onScroll();\r\n this._scrollSync.sidebar({\r\n top: event.scrollOffset.top\r\n });\r\n this._scrollSync.header({\r\n left: event.scrollOffset.left\r\n })\r\n },\r\n onEnd: () => {\r\n this.option(\"onScrollEnd\")()\r\n }\r\n }\r\n }\r\n _headerScrollableConfig() {\r\n return {\r\n useKeyboard: false,\r\n showScrollbar: \"never\",\r\n direction: \"horizontal\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n onScroll: event => {\r\n this._scrollSync.dateTable({\r\n left: event.scrollOffset.left\r\n })\r\n }\r\n }\r\n }\r\n _visibilityChanged(visible) {\r\n this.cache.clear();\r\n if (visible) {\r\n this._updateGroupTableHeight()\r\n }\r\n if (visible && this._needCreateCrossScrolling()) {\r\n this._setTableSizes()\r\n }\r\n }\r\n _setTableSizes() {\r\n this.cache.clear();\r\n this._attachTableClasses();\r\n var cellWidth = this.getCellWidth();\r\n if (cellWidth < this.getCellMinWidth()) {\r\n cellWidth = this.getCellMinWidth()\r\n }\r\n var minWidth = this.getWorkSpaceMinWidth();\r\n var groupCount = this._getGroupCount();\r\n var totalCellCount = this._getTotalCellCount(groupCount);\r\n var width = cellWidth * totalCellCount;\r\n if (width < minWidth) {\r\n width = minWidth\r\n }\r\n setWidth(this._$headerPanel, width);\r\n setWidth(this._$dateTable, width);\r\n if (this._$allDayTable) {\r\n setWidth(this._$allDayTable, width)\r\n }\r\n this._attachHeaderTableClasses();\r\n this._updateGroupTableHeight();\r\n this._updateScrollable()\r\n }\r\n getWorkSpaceMinWidth() {\r\n return this._groupedStrategy.getWorkSpaceMinWidth()\r\n }\r\n _dimensionChanged() {\r\n if (!this._isVisible()) {\r\n return\r\n }\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._setTableSizes()\r\n }\r\n this.updateHeaderEmptyCellWidth();\r\n this._updateScrollable();\r\n this.cache.clear()\r\n }\r\n _needCreateCrossScrolling() {\r\n return this.option(\"crossScrollingEnabled\")\r\n }\r\n _getElementClass() {\r\n return noop()\r\n }\r\n _getRowCount() {\r\n return this.viewDataProvider.getRowCount({\r\n intervalCount: this.option(\"intervalCount\"),\r\n currentDate: this.option(\"currentDate\"),\r\n viewType: this.type,\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\")\r\n })\r\n }\r\n _getCellCount() {\r\n return this.viewDataProvider.getCellCount({\r\n intervalCount: this.option(\"intervalCount\"),\r\n currentDate: this.option(\"currentDate\"),\r\n viewType: this.type,\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\")\r\n })\r\n }\r\n isRenovatedRender() {\r\n return this.renovatedRenderSupported() && this.option(\"renovateRender\")\r\n }\r\n _isVirtualModeOn() {\r\n return \"virtual\" === this.option(\"scrolling.mode\")\r\n }\r\n isVirtualScrolling() {\r\n return this.isRenovatedRender() && this._isVirtualModeOn()\r\n }\r\n _initVirtualScrolling() {\r\n if (this.virtualScrollingDispatcher) {\r\n this.virtualScrollingDispatcher.dispose();\r\n this.virtualScrollingDispatcher = null\r\n }\r\n this.virtualScrollingDispatcher = new VirtualScrollingDispatcher(this._getVirtualScrollingDispatcherOptions());\r\n this.virtualScrollingDispatcher.attachScrollableEvents();\r\n this.renderer = new VirtualScrollingRenderer(this)\r\n }\r\n onDataSourceChanged(argument) {}\r\n isGroupedAllDayPanel() {\r\n return calculateIsGroupedAllDayPanel(this.option(\"groups\"), this.option(\"groupOrientation\"), this.isAllDayPanelVisible)\r\n }\r\n generateRenderOptions(isProvideVirtualCellsWidth) {\r\n var _a;\r\n var groupCount = this._getGroupCount();\r\n var groupOrientation = groupCount > 0 ? this.option(\"groupOrientation\") : this._getDefaultGroupStrategy();\r\n var options = _extends({\r\n groupByDate: this.option(\"groupByDate\"),\r\n startRowIndex: 0,\r\n startCellIndex: 0,\r\n groupOrientation: groupOrientation,\r\n today: null === (_a = this._getToday) || void 0 === _a ? void 0 : _a.call(this),\r\n groups: this.option(\"groups\"),\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n isAllDayPanelVisible: this.isAllDayPanelVisible,\r\n selectedCells: this.cellsSelectionState.getSelectedCells(),\r\n focusedCell: this.cellsSelectionState.focusedCell,\r\n headerCellTextFormat: this._getFormat(),\r\n getDateForHeaderText: (_, date) => date,\r\n viewOffset: this.option(\"viewOffset\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n cellDuration: this.getCellDuration(),\r\n viewType: this.type,\r\n intervalCount: this.option(\"intervalCount\"),\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n currentDate: this.option(\"currentDate\"),\r\n startDate: this.option(\"startDate\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n showCurrentTimeIndicator: this.option(\"showCurrentTimeIndicator\")\r\n }, this.virtualScrollingDispatcher.getRenderState());\r\n return options\r\n }\r\n renovatedRenderSupported() {\r\n return true\r\n }\r\n _updateGroupTableHeight() {\r\n if (this._isVerticalGroupedWorkSpace() && hasWindow()) {\r\n this._setHorizontalGroupHeaderCellsHeight()\r\n }\r\n }\r\n updateHeaderEmptyCellWidth() {\r\n if (hasWindow() && this._isRenderHeaderPanelEmptyCell()) {\r\n var timePanelWidth = this.getTimePanelWidth();\r\n var groupPanelWidth = this.getGroupTableWidth();\r\n this._$headerPanelEmptyCell.css(\"width\", timePanelWidth + groupPanelWidth)\r\n }\r\n }\r\n _isGroupsSpecified(resources) {\r\n var _a;\r\n return (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && resources\r\n }\r\n _getGroupIndexByResourceId(id) {\r\n var groups = this.option(\"groups\");\r\n var resourceTree = createResourcesTree(groups);\r\n if (!resourceTree.length) {\r\n return 0\r\n }\r\n return this._getGroupIndexRecursively(resourceTree, id)\r\n }\r\n _getGroupIndexRecursively(resourceTree, id) {\r\n var currentKey = resourceTree[0].name;\r\n var currentValue = id[currentKey];\r\n return resourceTree.reduce((prevIndex, _ref2) => {\r\n var {\r\n leafIndex: leafIndex,\r\n value: value,\r\n children: children\r\n } = _ref2;\r\n var areValuesEqual = currentValue === value;\r\n if (areValuesEqual && void 0 !== leafIndex) {\r\n return leafIndex\r\n }\r\n if (areValuesEqual) {\r\n return this._getGroupIndexRecursively(children, id)\r\n }\r\n return prevIndex\r\n }, 0)\r\n }\r\n _getViewStartByOptions() {\r\n return getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this._getIntervalDuration(), this.option(\"startDate\") ? this._calculateViewStartDate() : void 0)\r\n }\r\n _getIntervalDuration() {\r\n return this.viewDataProvider.getIntervalDuration(this.option(\"intervalCount\"))\r\n }\r\n _getHeaderDate() {\r\n return this.getStartViewDate()\r\n }\r\n _calculateViewStartDate() {\r\n return calculateViewStartDate(this.option(\"startDate\"))\r\n }\r\n _firstDayOfWeek() {\r\n return this.viewDataProvider.getFirstDayOfWeek(this.option(\"firstDayOfWeek\"))\r\n }\r\n _attachEvents() {\r\n this._createSelectionChangedAction();\r\n this._attachClickEvent();\r\n this._attachContextMenuEvent()\r\n }\r\n _attachClickEvent() {\r\n var that = this;\r\n var pointerDownAction = this._createAction(e => {\r\n that._pointerDownHandler(e.event)\r\n });\r\n this._createCellClickAction();\r\n var cellSelector = \".\".concat(DATE_TABLE_CELL_CLASS, \",.\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\n var $element = this.$element();\r\n eventsEngine.off($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME);\r\n eventsEngine.on($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME, e => {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n e.preventDefault();\r\n return\r\n }\r\n pointerDownAction({\r\n event: e\r\n })\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME, cellSelector, e => {\r\n var $cell = $(e.target);\r\n that._cellClickAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: that.getCellData($cell)\r\n })\r\n })\r\n }\r\n _createCellClickAction() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\", {\r\n afterExecute: e => this._cellClickHandler(e.args[0].event)\r\n })\r\n }\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n }\r\n _cellClickHandler(argument) {\r\n if (this._showPopup) {\r\n delete this._showPopup;\r\n this._handleSelectedCellsClick()\r\n }\r\n }\r\n _pointerDownHandler(e) {\r\n var $target = $(e.target);\r\n if (!$target.hasClass(DATE_TABLE_CELL_CLASS) && !$target.hasClass(ALL_DAY_TABLE_CELL_CLASS)) {\r\n this._isCellClick = false;\r\n return\r\n }\r\n this._isCellClick = true;\r\n if ($target.hasClass(DATE_TABLE_FOCUSED_CELL_CLASS)) {\r\n this._showPopup = true\r\n } else {\r\n var cellCoordinates = this._getCoordinatesByCell($target);\r\n var isAllDayCell = this._hasAllDayClass($target);\r\n this._setSelectedCellsStateAndUpdateSelection(isAllDayCell, cellCoordinates, false, $target)\r\n }\r\n }\r\n _handleSelectedCellsClick() {\r\n var selectedCells = this.cellsSelectionState.getSelectedCells();\r\n var firstCellData = selectedCells[0];\r\n var lastCellData = selectedCells[selectedCells.length - 1];\r\n var result = {\r\n startDate: firstCellData.startDate,\r\n endDate: lastCellData.endDate\r\n };\r\n if (void 0 !== lastCellData.allDay) {\r\n result.allDay = lastCellData.allDay\r\n }\r\n this.option(\"onSelectedCellsClick\")(result, lastCellData.groups)\r\n }\r\n _attachContextMenuEvent() {\r\n this._createContextMenuAction();\r\n var cellSelector = \".\".concat(DATE_TABLE_CELL_CLASS, \",.\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\n var $element = this.$element();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($element, eventName, cellSelector);\r\n eventsEngine.on($element, eventName, cellSelector, this._contextMenuHandler.bind(this))\r\n }\r\n _contextMenuHandler(e) {\r\n var $cell = $(e.target);\r\n this._contextMenuAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: this.getCellData($cell)\r\n });\r\n this._contextMenuHandled = true\r\n }\r\n _createContextMenuAction() {\r\n this._contextMenuAction = this._createActionByOption(\"onCellContextMenu\")\r\n }\r\n _getGroupHeaderContainer() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n return this._$groupTable\r\n }\r\n return this._$thead\r\n }\r\n _getDateHeaderContainer() {\r\n return this._$thead\r\n }\r\n _getCalculateHeaderCellRepeatCount() {\r\n return this._groupedStrategy.calculateHeaderCellRepeatCount()\r\n }\r\n _updateScrollable() {\r\n var _a, _b;\r\n this._dateTableScrollable.update();\r\n null === (_a = this._headerScrollable) || void 0 === _a ? void 0 : _a.update();\r\n null === (_b = this._sidebarScrollable) || void 0 === _b ? void 0 : _b.update()\r\n }\r\n _getTimePanelRowCount() {\r\n return this._getCellCountInDay()\r\n }\r\n _getCellCountInDay() {\r\n var hoursInterval = this.option(\"hoursInterval\");\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n return this.viewDataProvider.getCellCountInDay(startDayHour, endDayHour, hoursInterval)\r\n }\r\n _getTotalCellCount(groupCount) {\r\n return this._groupedStrategy.getTotalCellCount(groupCount)\r\n }\r\n _getTotalRowCount(groupCount, includeAllDayPanelRows) {\r\n var result = this._groupedStrategy.getTotalRowCount(groupCount);\r\n if (includeAllDayPanelRows && this.isAllDayPanelVisible) {\r\n result += groupCount\r\n }\r\n return result\r\n }\r\n _getGroupIndex(rowIndex, columnIndex) {\r\n return this._groupedStrategy.getGroupIndex(rowIndex, columnIndex)\r\n }\r\n calculateEndDate(startDate) {\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this.viewDataProvider;\r\n return viewDataGenerator.calculateEndDate(startDate, viewDataGenerator.getInterval(this.option(\"hoursInterval\")), this.option(\"endDayHour\"))\r\n }\r\n _getGroupCount() {\r\n return getGroupCount(this.option(\"groups\"))\r\n }\r\n _attachTablesEvents() {\r\n var element = this.$element();\r\n this._attachDragEvents(element);\r\n this._attachPointerEvents(element)\r\n }\r\n _detachDragEvents(element) {\r\n eventsEngine.off(element, DragEventNames.ENTER);\r\n eventsEngine.off(element, DragEventNames.LEAVE);\r\n eventsEngine.off(element, DragEventNames.DROP)\r\n }\r\n _attachDragEvents(element) {\r\n this._detachDragEvents(element);\r\n eventsEngine.on(element, DragEventNames.ENTER, DRAG_AND_DROP_SELECTOR, {\r\n checkDropTarget: (target, event) => !this._isOutsideScrollable(target, event)\r\n }, e => {\r\n if (!this.preventDefaultDragging) {\r\n this.removeDroppableCellClass();\r\n $(e.target).addClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n }\r\n });\r\n eventsEngine.on(element, DragEventNames.LEAVE, () => {\r\n if (!this.preventDefaultDragging) {\r\n this.removeDroppableCellClass()\r\n }\r\n });\r\n eventsEngine.on(element, DragEventNames.DROP, DRAG_AND_DROP_SELECTOR, () => {\r\n var _a, _b;\r\n if (!this.dragBehavior) {\r\n return\r\n }\r\n if (!(null === (_a = this.dragBehavior) || void 0 === _a ? void 0 : _a.dragBetweenComponentsPromise)) {\r\n this.dragBehavior.removeDroppableClasses();\r\n return\r\n }\r\n null === (_b = this.dragBehavior.dragBetweenComponentsPromise) || void 0 === _b ? void 0 : _b.then(() => {\r\n this.dragBehavior.removeDroppableClasses()\r\n })\r\n })\r\n }\r\n _attachPointerEvents(element) {\r\n var isPointerDown = false;\r\n eventsEngine.off(element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME);\r\n eventsEngine.off(element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.on(element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME, DRAG_AND_DROP_SELECTOR, e => {\r\n if (isMouseEvent(e) && 1 === e.which) {\r\n isPointerDown = true;\r\n this.$element().addClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS);\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n eventsEngine.on(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME, () => {\r\n isPointerDown = false;\r\n this.$element().removeClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS)\r\n })\r\n }\r\n });\r\n eventsEngine.on(element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME, DRAG_AND_DROP_SELECTOR, e => {\r\n if (isPointerDown && this._dateTableScrollable && !this._dateTableScrollable.option(\"scrollByContent\")) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveToCell($(e.target), true)\r\n }\r\n })\r\n }\r\n _getFormat() {\r\n return abstract()\r\n }\r\n getWorkArea() {\r\n return this._$dateTableContainer\r\n }\r\n getScrollable() {\r\n return this._dateTableScrollable\r\n }\r\n getScrollableScrollTop() {\r\n return this._dateTableScrollable.scrollTop()\r\n }\r\n getGroupedScrollableScrollTop(allDay) {\r\n return this._groupedStrategy.getScrollableScrollTop(allDay)\r\n }\r\n getScrollableScrollLeft() {\r\n return this._dateTableScrollable.scrollLeft()\r\n }\r\n getScrollableOuterWidth() {\r\n return this._dateTableScrollable.scrollWidth()\r\n }\r\n getScrollableContainer() {\r\n return $(this._dateTableScrollable.container())\r\n }\r\n getHeaderPanelHeight() {\r\n return this._$headerPanel && getOuterHeight(this._$headerPanel, true)\r\n }\r\n getTimePanelWidth() {\r\n return this._$timePanel && getBoundingRect(this._$timePanel.get(0)).width\r\n }\r\n getGroupTableWidth() {\r\n return this._$groupTable ? getOuterWidth(this._$groupTable) : 0\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return this._groupedStrategy.getLeftOffset()\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n var columnIndex = Math.floor(index / this._getRowCount());\r\n var rowIndex = index - this._getRowCount() * columnIndex;\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n _getDateGenerationOptions() {\r\n var _a;\r\n return {\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n isWorkView: this.viewDataProvider.viewDataGenerator.isWorkView,\r\n interval: null === (_a = this.viewDataProvider.viewDataGenerator) || void 0 === _a ? void 0 : _a.getInterval(this.option(\"hoursInterval\")),\r\n startViewDate: this.getStartViewDate(),\r\n firstDayOfWeek: this._firstDayOfWeek()\r\n }\r\n }\r\n _getIntervalBetween(currentDate, allDay) {\r\n var firstViewDate = this.getStartViewDate();\r\n var startDayTime = this.option(\"startDayHour\") * HOUR_MS;\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var fullInterval = currentDate.getTime() - firstViewDate.getTime() - timeZoneOffset;\r\n var days = this._getDaysOfInterval(fullInterval, startDayTime);\r\n var weekendsCount = this._getWeekendsCount(days);\r\n var result = (days - weekendsCount) * DAY_MS;\r\n if (!allDay) {\r\n var {\r\n hiddenInterval: hiddenInterval\r\n } = this.viewDataProvider;\r\n var visibleDayDuration = this.getVisibleDayDuration();\r\n result = fullInterval - days * hiddenInterval - weekendsCount * visibleDayDuration\r\n }\r\n return result\r\n }\r\n _getWeekendsCount(argument) {\r\n return 0\r\n }\r\n _getDaysOfInterval(fullInterval, startDayTime) {\r\n return Math.floor((fullInterval + startDayTime) / DAY_MS)\r\n }\r\n _updateIndex(index) {\r\n return index * this._getRowCount()\r\n }\r\n _getDroppableCell() {\r\n return this._getDateTables().find(\".\".concat(DATE_TABLE_DROPPABLE_CELL_CLASS))\r\n }\r\n _getWorkSpaceWidth() {\r\n return this.cache.get(\"workspaceWidth\", () => {\r\n if (this._needCreateCrossScrolling()) {\r\n return getBoundingRect(this._$dateTable.get(0)).width\r\n }\r\n var totalWidth = getBoundingRect(this.$element().get(0)).width;\r\n var timePanelWidth = this.getTimePanelWidth();\r\n var groupTableWidth = this.getGroupTableWidth();\r\n return totalWidth - timePanelWidth - groupTableWidth\r\n })\r\n }\r\n _getCellByCoordinates(cellCoordinates, groupIndex, inAllDayRow) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex, inAllDayRow);\r\n return this._dom_getDateCell(indexes)\r\n }\r\n _dom_getDateCell(position) {\r\n return this._$dateTable.find(\"tr:not(.\".concat(VIRTUAL_ROW_CLASS, \")\")).eq(position.rowIndex).find(\"td:not(.\".concat(VIRTUAL_CELL_CLASS, \")\")).eq(position.columnIndex)\r\n }\r\n _dom_getAllDayPanelCell(columnIndex) {\r\n return this._$allDayPanel.find(\"tr\").eq(0).find(\"td\").eq(columnIndex)\r\n }\r\n _getCells(allDay, direction) {\r\n var cellClass = allDay ? ALL_DAY_TABLE_CELL_CLASS : DATE_TABLE_CELL_CLASS;\r\n if (\"vertical\" === direction) {\r\n var result = [];\r\n for (var i = 1;; i++) {\r\n var cells = this.$element().find(\"tr .\".concat(cellClass, \":nth-child(\").concat(i, \")\"));\r\n if (!cells.length) {\r\n break\r\n }\r\n result = result.concat(cells.toArray())\r\n }\r\n return $(result)\r\n }\r\n return this.$element().find(\".\".concat(cellClass))\r\n }\r\n _getFirstAndLastDataTableCell() {\r\n var selector = this.isVirtualScrolling() ? \".\".concat(DATE_TABLE_CELL_CLASS, \", .\").concat(VIRTUAL_CELL_CLASS) : \".\".concat(DATE_TABLE_CELL_CLASS);\r\n var $cells = this.$element().find(selector);\r\n return [$cells[0], $cells[$cells.length - 1]]\r\n }\r\n _getAllCells(allDay) {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n return this._$dateTable.find(\"td:not(.\".concat(VIRTUAL_CELL_CLASS, \")\"))\r\n }\r\n var cellClass = allDay && this.supportAllDayRow() ? ALL_DAY_TABLE_CELL_CLASS : DATE_TABLE_CELL_CLASS;\r\n return this.$element().find(\".\".concat(cellClass))\r\n }\r\n _setHorizontalGroupHeaderCellsHeight() {\r\n var {\r\n height: height\r\n } = getBoundingRect(this._$dateTable.get(0));\r\n setOuterHeight(this._$groupTable, height)\r\n }\r\n _getGroupHeaderCells() {\r\n return this.$element().find(\".\".concat(GROUP_HEADER_CLASS))\r\n }\r\n _getScrollCoordinates(hours, minutes, date, groupIndex, allDay) {\r\n var currentDate = date || new Date(this.option(\"currentDate\"));\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n if (hours < startDayHour) {\r\n hours = startDayHour\r\n }\r\n if (hours >= endDayHour) {\r\n hours = endDayHour - 1\r\n }\r\n currentDate.setHours(hours, minutes, 0, 0);\r\n var cell = this.viewDataProvider.findGlobalCellPosition(currentDate, groupIndex, allDay);\r\n var {\r\n position: position,\r\n cellData: cellData\r\n } = cell;\r\n return this.virtualScrollingDispatcher.calculateCoordinatesByDataAndPosition(cellData, position, currentDate, isDateAndTimeView(this.type), \"vertical\" === this.viewDirection)\r\n }\r\n _isOutsideScrollable(target, event) {\r\n var $dateTableScrollableElement = this._dateTableScrollable.$element();\r\n var scrollableSize = getBoundingRect($dateTableScrollableElement.get(0));\r\n var window = getWindow();\r\n var isTargetInAllDayPanel = !$(target).closest($dateTableScrollableElement).length;\r\n var isOutsideHorizontalScrollable = event.pageX < scrollableSize.left || event.pageX > scrollableSize.left + scrollableSize.width + (window.scrollX || 0);\r\n var isOutsideVerticalScrollable = event.pageY < scrollableSize.top || event.pageY > scrollableSize.top + scrollableSize.height + (window.scrollY || 0);\r\n if (isTargetInAllDayPanel && !isOutsideHorizontalScrollable) {\r\n return false\r\n }\r\n return isOutsideVerticalScrollable || isOutsideHorizontalScrollable\r\n }\r\n setCellDataCache(cellCoordinates, groupIndex, $cell) {\r\n var key = JSON.stringify({\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex,\r\n groupIndex: groupIndex\r\n });\r\n this.cache.set(key, this.getCellData($cell))\r\n }\r\n setCellDataCacheAlias(appointment, geometry) {\r\n var key = JSON.stringify({\r\n rowIndex: appointment.rowIndex,\r\n columnIndex: appointment.columnIndex,\r\n groupIndex: appointment.groupIndex\r\n });\r\n var aliasKey = JSON.stringify({\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n this.cache.set(aliasKey, this.cache.get(key))\r\n }\r\n supportAllDayRow() {\r\n return true\r\n }\r\n keepOriginalHours() {\r\n return false\r\n }\r\n _filterCellDataFields(cellData) {\r\n return extend(true, {}, {\r\n startDate: cellData.startDate,\r\n endDate: cellData.endDate,\r\n groups: cellData.groups,\r\n groupIndex: cellData.groupIndex,\r\n allDay: cellData.allDay\r\n })\r\n }\r\n getCellData($cell) {\r\n var cellData = this._getFullCellData($cell) || {};\r\n return this._filterCellDataFields(cellData)\r\n }\r\n _getFullCellData($cell) {\r\n var currentCell = $cell[0];\r\n if (currentCell) {\r\n return this._getDataByCell($cell)\r\n }\r\n return\r\n }\r\n _getVirtualRowOffset() {\r\n return this.virtualScrollingDispatcher.virtualRowOffset\r\n }\r\n _getVirtualCellOffset() {\r\n return this.virtualScrollingDispatcher.virtualCellOffset\r\n }\r\n _getDataByCell($cell) {\r\n var rowIndex = $cell.parent().index() - this.virtualScrollingDispatcher.topVirtualRowsCount;\r\n var columnIndex = $cell.index() - this.virtualScrollingDispatcher.leftVirtualCellsCount;\r\n var {\r\n viewDataProvider: viewDataProvider\r\n } = this;\r\n var isAllDayCell = this._hasAllDayClass($cell);\r\n var cellData = viewDataProvider.getCellData(rowIndex, columnIndex, isAllDayCell);\r\n return cellData || void 0\r\n }\r\n isGroupedByDate() {\r\n return this.option(\"groupByDate\") && this._isHorizontalGroupedWorkSpace() && this._getGroupCount() > 0\r\n }\r\n getCellIndexByDate(date, inAllDayRow) {\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this.viewDataProvider;\r\n var timeInterval = inAllDayRow ? 864e5 : viewDataGenerator.getInterval(this.option(\"hoursInterval\"));\r\n var startViewDateOffset = getStartViewDateTimeOffset(this.getStartViewDate(), this.option(\"startDayHour\"));\r\n var dateTimeStamp = this._getIntervalBetween(date, inAllDayRow) + startViewDateOffset;\r\n var index = Math.floor(dateTimeStamp / timeInterval);\r\n if (inAllDayRow) {\r\n index = this._updateIndex(index)\r\n }\r\n if (index < 0) {\r\n index = 0\r\n }\r\n return index\r\n }\r\n getDroppableCellIndex() {\r\n var $droppableCell = this._getDroppableCell();\r\n var $row = $droppableCell.parent();\r\n var rowIndex = $row.index();\r\n return rowIndex * $row.find(\"td\").length + $droppableCell.index()\r\n }\r\n getDataByDroppableCell() {\r\n var cellData = this.getCellData($(this._getDroppableCell()));\r\n var {\r\n allDay: allDay\r\n } = cellData;\r\n var {\r\n startDate: startDate\r\n } = cellData;\r\n var {\r\n endDate: endDate\r\n } = cellData;\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groups: cellData.groups\r\n }\r\n }\r\n getDateRange() {\r\n return [this.getStartViewDate(), this.getEndViewDateByEndDayHour()]\r\n }\r\n getCellMinWidth() {\r\n return DATE_TABLE_MIN_CELL_WIDTH\r\n }\r\n getRoundedCellWidth(groupIndex, startIndex, cellCount) {\r\n if (groupIndex < 0 || !hasWindow()) {\r\n return 0\r\n }\r\n var $row = this.$element().find(\".\".concat(DATE_TABLE_ROW_CLASS)).eq(0);\r\n var width = 0;\r\n var $cells = $row.find(\".\".concat(DATE_TABLE_CELL_CLASS));\r\n var totalCellCount = this._getCellCount() * groupIndex;\r\n cellCount = cellCount || this._getCellCount();\r\n if (!isDefined(startIndex)) {\r\n startIndex = totalCellCount\r\n }\r\n for (var i = startIndex; i < totalCellCount + cellCount; i++) {\r\n var element = $($cells).eq(i).get(0);\r\n var elementWidth = element ? getBoundingRect(element).width : 0;\r\n width += elementWidth\r\n }\r\n return width / (totalCellCount + cellCount - startIndex)\r\n }\r\n getCellWidth() {\r\n return getCellWidth(this.getDOMElementsMetaData())\r\n }\r\n getCellHeight() {\r\n return getCellHeight(this.getDOMElementsMetaData())\r\n }\r\n getAllDayHeight() {\r\n return getAllDayHeight(this.option(\"showAllDayPanel\"), this._isVerticalGroupedWorkSpace(), this.getDOMElementsMetaData())\r\n }\r\n getMaxAllowedPosition(groupIndex) {\r\n return getMaxAllowedPosition(groupIndex, this.viewDataProvider, this.option(\"rtlEnabled\"), this.getDOMElementsMetaData())\r\n }\r\n getAllDayOffset() {\r\n return this._groupedStrategy.getAllDayOffset()\r\n }\r\n getCellIndexByCoordinates(coordinates, allDay) {\r\n var _a, _b, _c;\r\n var {\r\n horizontalScrollingState: horizontalScrollingState,\r\n verticalScrollingState: verticalScrollingState\r\n } = this.virtualScrollingDispatcher;\r\n var cellCount = null !== (_a = null === horizontalScrollingState || void 0 === horizontalScrollingState ? void 0 : horizontalScrollingState.itemCount) && void 0 !== _a ? _a : this._getTotalCellCount(this._getGroupCount());\r\n var cellWidth = this.getCellWidth();\r\n var cellHeight = allDay ? this.getAllDayHeight() : this.getCellHeight();\r\n var leftCoordinateOffset = null !== (_b = null === horizontalScrollingState || void 0 === horizontalScrollingState ? void 0 : horizontalScrollingState.virtualItemSizeBefore) && void 0 !== _b ? _b : 0;\r\n var topCoordinateOffset = null !== (_c = null === verticalScrollingState || void 0 === verticalScrollingState ? void 0 : verticalScrollingState.virtualItemSizeBefore) && void 0 !== _c ? _c : 0;\r\n var topIndex = Math.floor(Math.floor(coordinates.top - topCoordinateOffset) / Math.floor(cellHeight));\r\n var leftIndex = (coordinates.left - leftCoordinateOffset) / cellWidth;\r\n leftIndex = Math.floor(leftIndex + CELL_INDEX_CALCULATION_EPSILON);\r\n if (this._isRTL()) {\r\n leftIndex = cellCount - leftIndex - 1\r\n }\r\n return cellCount * topIndex + leftIndex\r\n }\r\n getStartViewDate() {\r\n return this.viewDataProvider.getStartViewDate()\r\n }\r\n getEndViewDate() {\r\n return this.viewDataProvider.getLastCellEndDate()\r\n }\r\n getEndViewDateByEndDayHour() {\r\n return this.viewDataProvider.getLastViewDateByEndDayHour(this.option(\"endDayHour\"))\r\n }\r\n getCellDuration() {\r\n return getCellDuration(this.type, this.option(\"startDayHour\"), this.option(\"endDayHour\"), this.option(\"hoursInterval\"))\r\n }\r\n getIntervalDuration(allDay) {\r\n return allDay ? toMs(\"day\") : this.getCellDuration()\r\n }\r\n getVisibleDayDuration() {\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n var hoursInterval = this.option(\"hoursInterval\");\r\n return this.viewDataProvider.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getGroupBounds(coordinates) {\r\n var groupBounds = this._groupedStrategy instanceof VerticalGroupedStrategy ? this.getGroupBoundsVertical(coordinates.groupIndex) : this.getGroupBoundsHorizontal(coordinates);\r\n return this._isRTL() ? this.getGroupBoundsRtlCorrection(groupBounds) : groupBounds\r\n }\r\n getGroupBoundsVertical(groupIndex) {\r\n var $firstAndLastCells = this._getFirstAndLastDataTableCell();\r\n return this._groupedStrategy.getGroupBoundsOffset(groupIndex, $firstAndLastCells)\r\n }\r\n getGroupBoundsHorizontal(coordinates) {\r\n var cellCount = this._getCellCount();\r\n var $cells = this._getCells();\r\n var cellWidth = this.getCellWidth();\r\n var {\r\n groupedDataMap: groupedDataMap\r\n } = this.viewDataProvider;\r\n return this._groupedStrategy.getGroupBoundsOffset(cellCount, $cells, cellWidth, coordinates, groupedDataMap)\r\n }\r\n getGroupBoundsRtlCorrection(groupBounds) {\r\n var cellWidth = this.getCellWidth();\r\n return _extends(_extends({}, groupBounds), {\r\n left: groupBounds.right - 2 * cellWidth,\r\n right: groupBounds.left + 2 * cellWidth\r\n })\r\n }\r\n needRecalculateResizableArea() {\r\n return this._isVerticalGroupedWorkSpace() && 0 !== this.getScrollable().scrollTop()\r\n }\r\n getCellDataByCoordinates(coordinates, allDay) {\r\n var key = JSON.stringify({\r\n top: coordinates.top,\r\n left: coordinates.left\r\n });\r\n return this.cache.get(key, () => {\r\n var $cells = this._getCells(allDay);\r\n var cellIndex = this.getCellIndexByCoordinates(coordinates, allDay);\r\n var $cell = $cells.eq(cellIndex);\r\n return this.getCellData($cell)\r\n })\r\n }\r\n getVisibleBounds() {\r\n var result = {};\r\n var $scrollable = this.getScrollable().$element();\r\n var cellHeight = this.getCellHeight();\r\n var scrolledCellCount = this.getScrollableScrollTop() / cellHeight;\r\n var totalCellCount = scrolledCellCount + getHeight($scrollable) / cellHeight;\r\n result.top = {\r\n hours: Math.floor(scrolledCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: scrolledCellCount % 2 ? 30 : 0\r\n };\r\n result.bottom = {\r\n hours: Math.floor(totalCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: Math.floor(totalCellCount) % 2 ? 30 : 0\r\n };\r\n return result\r\n }\r\n updateScrollPosition(date, groups) {\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var newDate = this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var inAllDayRow = allDay && this.isAllDayPanelVisible;\r\n if (this.needUpdateScrollPosition(newDate, groups, inAllDayRow)) {\r\n this.scrollTo(newDate, groups, inAllDayRow, false)\r\n }\r\n }\r\n needUpdateScrollPosition(date, groups, inAllDayRow) {\r\n var cells = this._getCellsInViewport(inAllDayRow);\r\n var groupIndex = this._isGroupsSpecified(groups) ? this._getGroupIndexByResourceId(groups) : 0;\r\n var time = date.getTime();\r\n var trimmedTime = dateUtils.trimTime(date).getTime();\r\n return cells.reduce((currentResult, cell) => {\r\n var {\r\n startDate: cellStartDate,\r\n endDate: cellEndDate,\r\n groupIndex: cellGroupIndex\r\n } = this.getCellData(cell);\r\n var cellStartTime = cellStartDate.getTime();\r\n var cellEndTime = cellEndDate.getTime();\r\n if ((!inAllDayRow && cellStartTime <= time && time < cellEndTime || inAllDayRow && trimmedTime === cellStartTime) && groupIndex === cellGroupIndex) {\r\n return false\r\n }\r\n return currentResult\r\n }, true)\r\n }\r\n _getCellsInViewport(inAllDayRow) {\r\n var $scrollable = this.getScrollable().$element();\r\n var cellHeight = this.getCellHeight();\r\n var cellWidth = this.getCellWidth();\r\n var totalColumnCount = this._getTotalCellCount(this._getGroupCount());\r\n var scrollableScrollTop = this.getScrollableScrollTop();\r\n var scrollableScrollLeft = this.getScrollableScrollLeft();\r\n var fullScrolledRowCount = scrollableScrollTop / cellHeight - this.virtualScrollingDispatcher.topVirtualRowsCount;\r\n var scrolledRowCount = Math.floor(fullScrolledRowCount);\r\n if (scrollableScrollTop % cellHeight !== 0) {\r\n scrolledRowCount += 1\r\n }\r\n var fullScrolledColumnCount = scrollableScrollLeft / cellWidth;\r\n var scrolledColumnCount = Math.floor(fullScrolledColumnCount);\r\n if (scrollableScrollLeft % cellWidth !== 0) {\r\n scrolledColumnCount += 1\r\n }\r\n var rowCount = Math.floor(fullScrolledRowCount + getHeight($scrollable) / cellHeight);\r\n var columnCount = Math.floor(fullScrolledColumnCount + getWidth($scrollable) / cellWidth);\r\n var $cells = this._getAllCells(inAllDayRow);\r\n var result = [];\r\n $cells.each((function(index) {\r\n var $cell = $(this);\r\n var columnIndex = index % totalColumnCount;\r\n var rowIndex = index / totalColumnCount;\r\n if (scrolledColumnCount <= columnIndex && columnIndex < columnCount && scrolledRowCount <= rowIndex && rowIndex < rowCount) {\r\n result.push($cell)\r\n }\r\n }));\r\n return result\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n if (!this._isValidScrollDate(date)) {\r\n return\r\n }\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n scrollable.scrollBy({\r\n top: coordinates.top - scrollable.scrollTop(),\r\n left: 0\r\n })\r\n }\r\n scrollTo(date, groups) {\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var throwWarning = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n if (!this._isValidScrollDate(date, throwWarning)) {\r\n return\r\n }\r\n var groupIndex = this._getGroupCount() && groups ? this._getGroupIndexByResourceId(groups) : 0;\r\n var isScrollToAllDay = allDay && this.isAllDayPanelVisible;\r\n var coordinates = this._getScrollCoordinates(date.getHours(), date.getMinutes(), date, groupIndex, isScrollToAllDay);\r\n var scrollable = this.getScrollable();\r\n var $scrollable = scrollable.$element();\r\n var cellWidth = this.getCellWidth();\r\n var offset = this.option(\"rtlEnabled\") ? cellWidth : 0;\r\n var scrollableHeight = getHeight($scrollable);\r\n var scrollableWidth = getWidth($scrollable);\r\n var cellHeight = this.getCellHeight();\r\n var xShift = (scrollableWidth - cellWidth) / 2;\r\n var yShift = (scrollableHeight - cellHeight) / 2;\r\n var left = coordinates.left - scrollable.scrollLeft() - xShift - offset;\r\n var top = coordinates.top - scrollable.scrollTop() - yShift;\r\n if (isScrollToAllDay && !this._isVerticalGroupedWorkSpace()) {\r\n top = 0\r\n }\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n setTimeout(() => {\r\n scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n })\r\n } else {\r\n scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n }\r\n }\r\n _isValidScrollDate(date) {\r\n var throwWarning = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n var min = this.getStartViewDate();\r\n var max = this.getEndViewDate();\r\n if (date < min || date > max) {\r\n throwWarning && errors.log(\"W1008\", date);\r\n return false\r\n }\r\n return true\r\n }\r\n needApplyCollectorOffset() {\r\n return false\r\n }\r\n removeDroppableCellClass($cellElement) {\r\n var $cell = $cellElement || this._getDroppableCell();\r\n null === $cell || void 0 === $cell ? void 0 : $cell.removeClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n }\r\n _getCoordinatesByCell($cell) {\r\n var columnIndex = $cell.index() - this.virtualScrollingDispatcher.leftVirtualCellsCount;\r\n var rowIndex = $cell.parent().index();\r\n var isAllDayCell = this._hasAllDayClass($cell);\r\n var isVerticalGrouping = this._isVerticalGroupedWorkSpace();\r\n if (!(isAllDayCell && !isVerticalGrouping)) {\r\n rowIndex -= this.virtualScrollingDispatcher.topVirtualRowsCount\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n _isShowAllDayPanel() {\r\n return this.option(\"showAllDayPanel\")\r\n }\r\n _getTimePanelCells() {\r\n return this.$element().find(\".\".concat(TIME_PANEL_CELL_CLASS))\r\n }\r\n _getRDateTableProps() {\r\n return {\r\n viewData: this.viewDataProvider.viewData,\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n addDateTableClass: !this.option(\"crossScrollingEnabled\") || this.isVirtualScrolling(),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n addVerticalSizesClassToRows: false\r\n }\r\n }\r\n _updateSelectedCellDataOption(selectedCellData, $nextFocusedCell) {\r\n var correctedSelectedCellData = selectedCellData.map(_ref3 => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n groups: groups\r\n } = _ref3;\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }\r\n });\r\n this.option(\"selectedCellData\", correctedSelectedCellData);\r\n this._selectionChangedAction({\r\n selectedCellData: correctedSelectedCellData\r\n })\r\n }\r\n _getCellByData(cellData) {\r\n var {\r\n startDate: startDate,\r\n groupIndex: groupIndex,\r\n allDay: allDay,\r\n index: index\r\n } = cellData;\r\n var position = this.viewDataProvider.findCellPositionInMap({\r\n startDate: startDate,\r\n groupIndex: groupIndex,\r\n isAllDay: allDay,\r\n index: index\r\n });\r\n if (!position) {\r\n return\r\n }\r\n return allDay && !this._isVerticalGroupedWorkSpace() ? this._dom_getAllDayPanelCell(position.columnIndex) : this._dom_getDateCell(position)\r\n }\r\n getDOMElementsMetaData() {\r\n return this.cache.get(\"cellElementsMeta\", () => ({\r\n dateTableCellsMeta: this._getDateTableDOMElementsInfo(),\r\n allDayPanelCellsMeta: this._getAllDayPanelDOMElementsInfo()\r\n }))\r\n }\r\n _getDateTableDOMElementsInfo() {\r\n var dateTableCells = this._getAllCells(false);\r\n if (!dateTableCells.length || !hasWindow()) {\r\n return [\r\n [{}]\r\n ]\r\n }\r\n var dateTable = this._getDateTable();\r\n var dateTableRect = getBoundingRect(dateTable.get(0));\r\n var columnsCount = this.viewDataProvider.getColumnsCount();\r\n var result = [];\r\n dateTableCells.each((index, cell) => {\r\n var rowIndex = Math.floor(index / columnsCount);\r\n if (result.length === rowIndex) {\r\n result.push([])\r\n }\r\n this._addCellMetaData(result[rowIndex], cell, dateTableRect)\r\n });\r\n return result\r\n }\r\n _getAllDayPanelDOMElementsInfo() {\r\n var result = [];\r\n if (this.isAllDayPanelVisible && !this._isVerticalGroupedWorkSpace() && hasWindow()) {\r\n var allDayCells = this._getAllCells(true);\r\n if (!allDayCells.length) {\r\n return [{}]\r\n }\r\n var allDayAppointmentContainer = this._$allDayPanel;\r\n var allDayPanelRect = getBoundingRect(allDayAppointmentContainer.get(0));\r\n allDayCells.each((_, cell) => {\r\n this._addCellMetaData(result, cell, allDayPanelRect)\r\n })\r\n }\r\n return result\r\n }\r\n _addCellMetaData(cellMetaDataArray, cell, parentRect) {\r\n var cellRect = getBoundingRect(cell);\r\n cellMetaDataArray.push({\r\n left: cellRect.left - parentRect.left,\r\n top: cellRect.top - parentRect.top,\r\n width: cellRect.width,\r\n height: cellRect.height\r\n })\r\n }\r\n _oldRender_getAllDayCellData(groupIndex) {\r\n return (cell, rowIndex, columnIndex) => {\r\n var validColumnIndex = columnIndex % this._getCellCount();\r\n var options = this._getDateGenerationOptions(true);\r\n var startDate = this.viewDataProvider.viewDataGenerator.getDateByCellIndices(options, rowIndex, validColumnIndex, this._getCellCountInDay());\r\n startDate = dateUtils.trimTime(startDate);\r\n var validGroupIndex = groupIndex || 0;\r\n if (this.isGroupedByDate()) {\r\n validGroupIndex = Math.floor(columnIndex % this._getGroupCount())\r\n } else if (this._isHorizontalGroupedWorkSpace()) {\r\n validGroupIndex = Math.floor(columnIndex / this._getCellCount())\r\n }\r\n var data = {\r\n startDate: startDate,\r\n endDate: startDate,\r\n allDay: true,\r\n groupIndex: validGroupIndex\r\n };\r\n var groupsArray = getCellGroups(validGroupIndex, this.option(\"groups\"));\r\n if (groupsArray.length) {\r\n data.groups = getGroupsObjectFromGroupsArray(groupsArray)\r\n }\r\n return {\r\n key: CELL_DATA,\r\n value: data\r\n }\r\n }\r\n }\r\n renderRWorkSpace() {\r\n var {\r\n header: header,\r\n timePanel: timePanel,\r\n dateTable: dateTable,\r\n allDayPanel: allDayPanel\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : DEFAULT_WORKSPACE_RENDER_OPTIONS.renderComponents;\r\n if (header) {\r\n this.renderRHeaderPanel()\r\n }\r\n if (timePanel) {\r\n this.renderRTimeTable()\r\n }\r\n if (dateTable) {\r\n this.renderRDateTable()\r\n }\r\n if (allDayPanel) {\r\n this.renderRAllDayPanel()\r\n }\r\n }\r\n renderRDateTable() {\r\n utils.renovation.renderComponent(this, this._$dateTable, dxrDateTableLayout, \"renovatedDateTable\", this._getRDateTableProps())\r\n }\r\n renderRGroupPanel() {\r\n var _a;\r\n var options = {\r\n groups: this.option(\"groups\"),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n groupByDate: this.isGroupedByDate(),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n className: this.verticalGroupTableClass,\r\n groupPanelData: this.viewDataProvider.getGroupPanelData(this.generateRenderOptions())\r\n };\r\n if (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) {\r\n this._attachGroupCountClass();\r\n utils.renovation.renderComponent(this, this._getGroupHeaderContainer(), dxrGroupPanel, \"renovatedGroupPanel\", options)\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n }\r\n renderRAllDayPanel() {\r\n var _a;\r\n var visible = this.isAllDayPanelVisible && !this.isGroupedAllDayPanel();\r\n if (visible) {\r\n this._toggleAllDayVisibility(false);\r\n var options = _extends({\r\n viewData: this.viewDataProvider.viewData,\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n startCellIndex: 0\r\n }, (null === (_a = this.virtualScrollingDispatcher.horizontalVirtualScrolling) || void 0 === _a ? void 0 : _a.getRenderState()) || {});\r\n utils.renovation.renderComponent(this, this._$allDayTable, dxrAllDayPanelTable, \"renovatedAllDayPanel\", options);\r\n utils.renovation.renderComponent(this, this._$allDayTitle, dxrAllDayPanelTitle, \"renovatedAllDayPanelTitle\", {})\r\n }\r\n this._toggleAllDayVisibility(true)\r\n }\r\n renderRTimeTable() {\r\n utils.renovation.renderComponent(this, this._$timePanel, dxrTimePanelTableLayout, \"renovatedTimePanel\", {\r\n timePanelData: this.viewDataProvider.timePanelData,\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n groupOrientation: this.option(\"groupOrientation\")\r\n })\r\n }\r\n renderRHeaderPanel() {\r\n var isRenderDateHeader = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n var _a;\r\n if (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) {\r\n this._attachGroupCountClass()\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n utils.renovation.renderComponent(this, this._$thead, this.renovatedHeaderPanelComponent, \"renovatedHeaderPanel\", {\r\n dateHeaderData: this.viewDataProvider.dateHeaderData,\r\n groupPanelData: this.viewDataProvider.getGroupPanelData(this.generateRenderOptions()),\r\n dateCellTemplate: this.option(\"dateCellTemplate\"),\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n groups: this.option(\"groups\"),\r\n groupByDate: this.isGroupedByDate(),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n isRenderDateHeader: isRenderDateHeader\r\n })\r\n }\r\n initDragBehavior(scheduler) {\r\n if (!this.dragBehavior && scheduler) {\r\n this.dragBehavior = new AppointmentDragBehavior(scheduler);\r\n var $rootElement = $(scheduler.element());\r\n this._createDragBehavior(this.getWorkArea(), $rootElement);\r\n this._createDragBehavior(this._$allDayPanel, $rootElement)\r\n }\r\n }\r\n _createDragBehavior($targetElement, $rootElement) {\r\n var options = {\r\n getItemData: (itemElement, appointments) => appointments._getItemData(itemElement),\r\n getItemSettings: $itemElement => $itemElement.data(APPOINTMENT_SETTINGS_KEY)\r\n };\r\n this._createDragBehaviorBase($targetElement, $rootElement, options)\r\n }\r\n _createDragBehaviorBase(targetElement, rootElement, options) {\r\n var container = this.$element().find(\".\".concat(FIXED_CONTAINER_CLASS));\r\n this.dragBehavior.addTo(targetElement, createDragBehaviorConfig(container, rootElement, this.isDefaultDraggingMode, this.dragBehavior, () => {\r\n if (!this.isDefaultDraggingMode) {\r\n this.preventDefaultDragging = false\r\n }\r\n }, () => {\r\n if (!this.isDefaultDraggingMode) {\r\n this.preventDefaultDragging = true\r\n }\r\n }, () => this._getDroppableCell(), () => this._getDateTables(), () => this.removeDroppableCellClass(), () => this.getCellWidth(), options))\r\n }\r\n _isRenderHeaderPanelEmptyCell() {\r\n return this._isVerticalGroupedWorkSpace()\r\n }\r\n _dispose() {\r\n super._dispose();\r\n this.virtualScrollingDispatcher.dispose()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n currentDate: new Date,\r\n intervalCount: 1,\r\n startDate: null,\r\n firstDayOfWeek: void 0,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n viewOffset: 0,\r\n hoursInterval: .5,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n groups: [],\r\n showAllDayPanel: true,\r\n allDayExpanded: false,\r\n onCellClick: null,\r\n crossScrollingEnabled: false,\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n allowMultipleCellSelection: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true,\r\n groupOrientation: \"horizontal\",\r\n selectedCellData: [],\r\n groupByDate: false,\r\n scrolling: {\r\n mode: \"standard\"\r\n },\r\n allDayPanelMode: \"all\",\r\n renovateRender: true,\r\n height: void 0,\r\n draggingMode: \"outlook\",\r\n onScrollEnd: () => {},\r\n getHeaderHeight: void 0,\r\n onRenderAppointments: () => {},\r\n onShowAllDayPanel: () => {},\r\n onSelectedCellsClick: () => {},\r\n timeZoneCalculator: void 0,\r\n schedulerHeight: void 0,\r\n schedulerWidth: void 0\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n case \"viewOffset\":\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n case \"hoursInterval\":\r\n case \"firstDayOfWeek\":\r\n case \"currentDate\":\r\n case \"startDate\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"groups\":\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint();\r\n break;\r\n case \"groupOrientation\":\r\n this._initGroupedStrategy();\r\n this._createAllDayPanelElements();\r\n this._removeAllDayElements();\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"showAllDayPanel\":\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint()\r\n } else if (!this.isRenovatedRender()) {\r\n this._toggleAllDayVisibility(true)\r\n } else {\r\n this.renderWorkSpace()\r\n }\r\n break;\r\n case \"allDayExpanded\":\r\n this._changeAllDayVisibility();\r\n this._attachTablesEvents();\r\n this._updateScrollable();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"intervalCount\":\r\n this._cleanWorkSpace();\r\n this._toggleWorkSpaceCountClass();\r\n break;\r\n case \"groupByDate\":\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._toggleHorizontalScrollClass();\r\n this._dateTableScrollable.option(this._dateTableScrollableConfig());\r\n break;\r\n case \"allDayPanelMode\":\r\n this.updateShowAllDayPanel();\r\n this.updateAppointments();\r\n break;\r\n case \"width\":\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"timeZoneCalculator\":\r\n case \"allowMultipleCellSelection\":\r\n case \"selectedCellData\":\r\n break;\r\n case \"renovateRender\":\r\n case \"scrolling\":\r\n this.repaint();\r\n break;\r\n case \"schedulerHeight\":\r\n case \"schedulerWidth\":\r\n this.virtualScrollingDispatcher.updateDimensions(true);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n updateShowAllDayPanel() {\r\n var isHiddenAllDayPanel = \"hidden\" === this.option(\"allDayPanelMode\");\r\n this.option(\"onShowAllDayPanel\")(!isHiddenAllDayPanel)\r\n }\r\n _getVirtualScrollingDispatcherOptions() {\r\n return {\r\n getCellHeight: this.getCellHeight.bind(this),\r\n getCellWidth: this.getCellWidth.bind(this),\r\n getCellMinWidth: this.getCellMinWidth.bind(this),\r\n isRTL: this._isRTL.bind(this),\r\n getSchedulerHeight: () => this.option(\"schedulerHeight\"),\r\n getSchedulerWidth: () => this.option(\"schedulerWidth\"),\r\n getViewHeight: () => this.$element().height ? this.$element().height() : getHeight(this.$element()),\r\n getViewWidth: () => this.$element().width ? this.$element().width() : getWidth(this.$element()),\r\n getWindowHeight: () => getWindow().innerHeight,\r\n getWindowWidth: () => getWindow().innerWidth,\r\n getScrolling: () => this.option(\"scrolling\"),\r\n getScrollableOuterWidth: this.getScrollableOuterWidth.bind(this),\r\n getScrollable: this.getScrollable.bind(this),\r\n createAction: this._createAction.bind(this),\r\n updateRender: this.updateRender.bind(this),\r\n updateGrid: this.updateGrid.bind(this),\r\n getGroupCount: this._getGroupCount.bind(this),\r\n isVerticalGrouping: this._isVerticalGroupedWorkSpace.bind(this),\r\n getTotalRowCount: this._getTotalRowCount.bind(this),\r\n getTotalCellCount: this._getTotalCellCount.bind(this)\r\n }\r\n }\r\n _cleanWorkSpace() {\r\n this._cleanView();\r\n this._toggleGroupedClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this.virtualScrollingDispatcher.updateDimensions(true);\r\n this._renderView();\r\n this.option(\"crossScrollingEnabled\") && this._setTableSizes();\r\n this.cache.clear()\r\n }\r\n _init() {\r\n this._scrollSync = {};\r\n this._viewDataProvider = null;\r\n this._cellsSelectionState = null;\r\n this._activeStateUnit = CELL_SELECTOR;\r\n super._init();\r\n this._initGrouping();\r\n this._toggleHorizontalScrollClass();\r\n this._toggleWorkSpaceCountClass();\r\n this._toggleGroupByDateClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this.$element().addClass(COMPONENT_CLASS).addClass(this._getElementClass())\r\n }\r\n _initPositionHelper() {\r\n this.positionHelper = new PositionHelper({\r\n key: this.option(\"key\"),\r\n viewDataProvider: this.viewDataProvider,\r\n viewStartDayHour: this.option(\"startDayHour\"),\r\n viewEndDayHour: this.option(\"endDayHour\"),\r\n cellDuration: this.getCellDuration(),\r\n groupedStrategy: this._groupedStrategy,\r\n isGroupedByDate: this.isGroupedByDate(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n startViewDate: this.getStartViewDate(),\r\n isVerticalGrouping: this._isVerticalGroupedWorkSpace(),\r\n groupCount: this._getGroupCount(),\r\n isVirtualScrolling: this.isVirtualScrolling(),\r\n getDOMMetaDataCallback: this.getDOMElementsMetaData.bind(this)\r\n })\r\n }\r\n _initGrouping() {\r\n this._initGroupedStrategy();\r\n this._toggleGroupingDirectionClass();\r\n this._toggleGroupByDateClass()\r\n }\r\n isVerticalOrientation() {\r\n var _a;\r\n var orientation = (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) ? this.option(\"groupOrientation\") : this._getDefaultGroupStrategy();\r\n return \"vertical\" === orientation\r\n }\r\n _initGroupedStrategy() {\r\n var Strategy = this.isVerticalOrientation() ? VerticalGroupedStrategy : HorizontalGroupedStrategy;\r\n this._groupedStrategy = new Strategy(this)\r\n }\r\n _getDefaultGroupStrategy() {\r\n return \"horizontal\"\r\n }\r\n _toggleHorizontalScrollClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_BOTH_SCROLLS_CLASS, this.option(\"crossScrollingEnabled\"))\r\n }\r\n _toggleGroupByDateClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_GROUP_BY_DATE_CLASS, this.isGroupedByDate())\r\n }\r\n _toggleWorkSpaceCountClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_COUNT_CLASS, this._isWorkSpaceWithCount())\r\n }\r\n _toggleWorkSpaceWithOddCells() {\r\n this.$element().toggleClass(WORKSPACE_WITH_ODD_CELLS_CLASS, this._isWorkspaceWithOddCells())\r\n }\r\n _toggleGroupingDirectionClass() {\r\n this.$element().toggleClass(VERTICAL_GROUPED_WORKSPACE_CLASS, this._isVerticalGroupedWorkSpace())\r\n }\r\n _getDateTableCellClass(rowIndex, columnIndex) {\r\n var cellClass = \"\".concat(DATE_TABLE_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS, \" \").concat(VERTICAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, columnIndex + 1, rowIndex, columnIndex)\r\n }\r\n _getGroupHeaderClass(i) {\r\n var cellClass = GROUP_HEADER_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1)\r\n }\r\n _initWorkSpaceUnits() {\r\n this._$headerPanelContainer = $(\"<div>\").addClass(\"dx-scheduler-header-panel-container\");\r\n this._$headerTablesContainer = $(\"<div>\").addClass(\"dx-scheduler-header-tables-container\");\r\n this._$headerPanel = $(\"<table>\");\r\n this._$thead = $(\"<thead>\").appendTo(this._$headerPanel);\r\n this._$headerPanelEmptyCell = $(\"<div>\").addClass(\"dx-scheduler-header-panel-empty-cell\");\r\n this._$allDayTable = $(\"<table>\");\r\n this._$fixedContainer = $(\"<div>\").addClass(FIXED_CONTAINER_CLASS);\r\n this._$allDayContainer = $(\"<div>\").addClass(ALL_DAY_CONTAINER_CLASS);\r\n this._$dateTableScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-date-table-scrollable-content\");\r\n this._$sidebarScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-side-bar-scrollable-content\");\r\n this._initAllDayPanelElements();\r\n if (this.isRenovatedRender()) {\r\n this.createRAllDayPanelElements()\r\n } else {\r\n this._createAllDayPanelElements()\r\n }\r\n this._$timePanel = $(\"<table>\").addClass(TIME_PANEL_CLASS);\r\n this._$dateTable = $(\"<table>\");\r\n this._$dateTableContainer = $(\"<div>\").addClass(\"dx-scheduler-date-table-container\");\r\n this._$groupTable = $(\"<div>\").addClass(WORKSPACE_VERTICAL_GROUP_TABLE_CLASS)\r\n }\r\n _initAllDayPanelElements() {\r\n this._allDayTitles = [];\r\n this._allDayTables = [];\r\n this._allDayPanels = []\r\n }\r\n _initDateTableScrollable() {\r\n var $dateTableScrollable = $(\"<div>\").addClass(SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS);\r\n this._dateTableScrollable = this._createComponent($dateTableScrollable, Scrollable, this._dateTableScrollableConfig());\r\n this._scrollSync.dateTable = getMemoizeScrollTo(() => this._dateTableScrollable)\r\n }\r\n _createWorkSpaceElements() {\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n this._createWorkSpaceStaticElements()\r\n }\r\n }\r\n _createWorkSpaceStaticElements() {\r\n var _a;\r\n this._$dateTableContainer.append(this._$dateTable);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._$dateTableContainer.append(this._$allDayContainer);\r\n this._$dateTableScrollableContent.append(this._$groupTable, this._$timePanel, this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n this._$headerTablesContainer.append(this._$headerPanel)\r\n } else {\r\n this._$dateTableScrollableContent.append(this._$timePanel, this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n this._$headerTablesContainer.append(this._$headerPanel, this._$allDayPanel);\r\n null === (_a = this._$allDayPanel) || void 0 === _a ? void 0 : _a.append(this._$allDayContainer, this._$allDayTable)\r\n }\r\n this._appendHeaderPanelEmptyCellIfNecessary();\r\n this._$headerPanelContainer.append(this._$headerTablesContainer);\r\n this.$element().append(this._$fixedContainer, this._$headerPanelContainer, this._dateTableScrollable.$element())\r\n }\r\n _createWorkSpaceScrollableElements() {\r\n var _a;\r\n this.$element().append(this._$fixedContainer);\r\n this._$flexContainer = $(\"<div>\").addClass(\"dx-scheduler-work-space-flex-container\");\r\n this._createHeaderScrollable();\r\n this._headerScrollable.$content().append(this._$headerPanel);\r\n this._appendHeaderPanelEmptyCellIfNecessary();\r\n this._$headerPanelContainer.append(this._$headerTablesContainer);\r\n this.$element().append(this._$headerPanelContainer);\r\n this.$element().append(this._$flexContainer);\r\n this._createSidebarScrollable();\r\n this._$flexContainer.append(this._dateTableScrollable.$element());\r\n this._$dateTableContainer.append(this._$dateTable);\r\n this._$dateTableScrollableContent.append(this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._$dateTableContainer.append(this._$allDayContainer);\r\n this._$sidebarScrollableContent.append(this._$groupTable, this._$timePanel)\r\n } else {\r\n this._headerScrollable.$content().append(this._$allDayPanel);\r\n null === (_a = this._$allDayPanel) || void 0 === _a ? void 0 : _a.append(this._$allDayContainer, this._$allDayTable);\r\n this._$sidebarScrollableContent.append(this._$timePanel)\r\n }\r\n this._sidebarScrollable.$content().append(this._$sidebarScrollableContent)\r\n }\r\n _appendHeaderPanelEmptyCellIfNecessary() {\r\n this._isRenderHeaderPanelEmptyCell() && this._$headerPanelContainer.append(this._$headerPanelEmptyCell)\r\n }\r\n _createHeaderScrollable() {\r\n var $headerScrollable = $(\"<div>\").addClass(SCHEDULER_HEADER_SCROLLABLE_CLASS).appendTo(this._$headerTablesContainer);\r\n this._headerScrollable = this._createComponent($headerScrollable, Scrollable, this._headerScrollableConfig());\r\n this._scrollSync.header = getMemoizeScrollTo(() => this._headerScrollable)\r\n }\r\n _createSidebarScrollable() {\r\n var $timePanelScrollable = $(\"<div>\").addClass(SCHEDULER_SIDEBAR_SCROLLABLE_CLASS).appendTo(this._$flexContainer);\r\n this._sidebarScrollable = this._createComponent($timePanelScrollable, Scrollable, {\r\n useKeyboard: false,\r\n showScrollbar: \"never\",\r\n direction: \"vertical\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n onScroll: event => {\r\n this._scrollSync.dateTable({\r\n top: event.scrollOffset.top\r\n })\r\n }\r\n });\r\n this._scrollSync.sidebar = getMemoizeScrollTo(() => this._sidebarScrollable)\r\n }\r\n _attachTableClasses() {\r\n this._addTableClass(this._$dateTable, DATE_TABLE_CLASS);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._addTableClass(this._allDayTables[i], ALL_DAY_TABLE_CLASS)\r\n }\r\n } else if (!this.isRenovatedRender()) {\r\n this._addTableClass(this._$allDayTable, ALL_DAY_TABLE_CLASS)\r\n }\r\n }\r\n _attachHeaderTableClasses() {\r\n this._addTableClass(this._$headerPanel, HEADER_PANEL_CLASS)\r\n }\r\n _addTableClass($el, className) {\r\n $el && !$el.hasClass(className) && $el.addClass(className)\r\n }\r\n _initMarkup() {\r\n this.cache.clear();\r\n this._initWorkSpaceUnits();\r\n this._initVirtualScrolling();\r\n this._initDateTableScrollable();\r\n this._createWorkSpaceElements();\r\n super._initMarkup();\r\n if (!this.option(\"crossScrollingEnabled\")) {\r\n this._attachTableClasses();\r\n this._attachHeaderTableClasses()\r\n }\r\n this._toggleGroupedClass();\r\n this._renderView();\r\n this._attachEvents()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n }\r\n _toggleGroupedClass() {\r\n this.$element().toggleClass(GROUPED_WORKSPACE_CLASS, this._getGroupCount() > 0)\r\n }\r\n _renderView() {\r\n if (this.isRenovatedRender()) {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this.renderRGroupPanel()\r\n }\r\n } else {\r\n this._applyCellTemplates(this._renderGroupHeader())\r\n }\r\n this.renderWorkSpace();\r\n if (this.isRenovatedRender()) {\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n this._updateGroupTableHeight();\r\n this.updateHeaderEmptyCellWidth();\r\n this._shader = new VerticalShader(this)\r\n }\r\n updateCellsSelection() {\r\n var renderOptions = this.generateRenderOptions();\r\n this.viewDataProvider.updateViewData(renderOptions);\r\n this.renderRWorkSpace({\r\n timePanel: true,\r\n dateTable: true,\r\n allDayPanel: true\r\n })\r\n }\r\n _renderDateTimeIndication() {\r\n return noop()\r\n }\r\n renderCurrentDateTimeLineAndShader() {\r\n return noop()\r\n }\r\n renderCurrentDateTimeIndication() {\r\n return noop()\r\n }\r\n _setIndicationUpdateInterval() {\r\n return noop()\r\n }\r\n _detachGroupCountClass() {\r\n [...VERTICAL_GROUP_COUNT_CLASSES].forEach(className => {\r\n this.$element().removeClass(className)\r\n })\r\n }\r\n _attachGroupCountClass() {\r\n var className = this._groupedStrategy.getGroupCountClass(this.option(\"groups\"));\r\n this.$element().addClass(className)\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"dateCellTemplate\")\r\n }\r\n _toggleAllDayVisibility(isUpdateScrollable) {\r\n var showAllDayPanel = this._isShowAllDayPanel();\r\n this.$element().toggleClass(WORKSPACE_WITH_ALL_DAY_CLASS, showAllDayPanel);\r\n this._changeAllDayVisibility();\r\n isUpdateScrollable && this._updateScrollable()\r\n }\r\n _changeAllDayVisibility() {\r\n this.cache.clear();\r\n this.$element().toggleClass(WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS, !this.option(\"allDayExpanded\") && this._isShowAllDayPanel())\r\n }\r\n _getDateTables() {\r\n return this._$dateTable.add(this._$allDayTable)\r\n }\r\n _getDateTable() {\r\n return this._$dateTable\r\n }\r\n _removeAllDayElements() {\r\n this._$allDayTable && this._$allDayTable.remove();\r\n this._$allDayTitle && this._$allDayTitle.remove()\r\n }\r\n _cleanView() {\r\n var _a, _b, _c;\r\n this.cache.clear();\r\n this._cleanTableWidths();\r\n this.cellsSelectionState.clearSelectedAndFocusedCells();\r\n if (!this.isRenovatedRender()) {\r\n this._$thead.empty();\r\n this._$dateTable.empty();\r\n this._$timePanel.empty();\r\n this._$groupTable.empty();\r\n null === (_a = this._$allDayTable) || void 0 === _a ? void 0 : _a.empty();\r\n null === (_b = this._$sidebarTable) || void 0 === _b ? void 0 : _b.empty()\r\n }\r\n null === (_c = this._shader) || void 0 === _c ? void 0 : _c.clean();\r\n delete this._interval\r\n }\r\n _clean() {\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n this._disposeRenovatedComponents();\r\n super._clean()\r\n }\r\n _cleanTableWidths() {\r\n this._$headerPanel.css(\"width\", \"\");\r\n this._$dateTable.css(\"width\", \"\");\r\n this._$allDayTable && this._$allDayTable.css(\"width\", \"\")\r\n }\r\n _disposeRenovatedComponents() {\r\n var _a, _b, _c, _d, _e;\r\n null === (_a = this.renovatedAllDayPanel) || void 0 === _a ? void 0 : _a.dispose();\r\n this.renovatedAllDayPanel = void 0;\r\n null === (_b = this.renovatedDateTable) || void 0 === _b ? void 0 : _b.dispose();\r\n this.renovatedDateTable = void 0;\r\n null === (_c = this.renovatedTimePanel) || void 0 === _c ? void 0 : _c.dispose();\r\n this.renovatedTimePanel = void 0;\r\n null === (_d = this.renovatedGroupPanel) || void 0 === _d ? void 0 : _d.dispose();\r\n this.renovatedGroupPanel = void 0;\r\n null === (_e = this.renovatedHeaderPanel) || void 0 === _e ? void 0 : _e.dispose();\r\n this.renovatedHeaderPanel = void 0\r\n }\r\n getGroupedStrategy() {\r\n return this._groupedStrategy\r\n }\r\n getFixedContainer() {\r\n return this._$fixedContainer\r\n }\r\n getAllDayContainer() {\r\n return this._$allDayContainer\r\n }\r\n updateRender() {\r\n this.renderer.updateRender()\r\n }\r\n updateGrid() {\r\n this.renderer._renderGrid()\r\n }\r\n updateAppointments() {\r\n var _a;\r\n this.option(\"onRenderAppointments\")();\r\n null === (_a = this.dragBehavior) || void 0 === _a ? void 0 : _a.updateDragSource()\r\n }\r\n _createAllDayPanelElements() {\r\n var groupCount = this._getGroupCount();\r\n if (this._isVerticalGroupedWorkSpace() && 0 !== groupCount) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var $allDayTitle = $(\"<div>\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\"));\r\n this._allDayTitles.push($allDayTitle);\r\n this._$allDayTable = $(\"<table>\");\r\n this._allDayTables.push(this._$allDayTable);\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable);\r\n this._allDayPanels.push(this._$allDayPanel)\r\n }\r\n } else {\r\n this._$allDayTitle = $(\"<div>\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\")).appendTo(this.$element());\r\n this._$allDayTable = $(\"<table>\");\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable)\r\n }\r\n }\r\n renderWorkSpace() {\r\n var {\r\n generateNewData: generateNewData,\r\n renderComponents: renderComponents\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : DEFAULT_WORKSPACE_RENDER_OPTIONS;\r\n this.cache.clear();\r\n this.viewDataProvider.update(this.generateRenderOptions(), generateNewData);\r\n if (this.isRenovatedRender()) {\r\n this.renderRWorkSpace(renderComponents)\r\n } else {\r\n this._renderDateHeader();\r\n this._renderTimePanel();\r\n this._renderGroupAllDayPanel();\r\n this._renderDateTable();\r\n this._renderAllDayPanel()\r\n }\r\n this._initPositionHelper()\r\n }\r\n _renderGroupHeader() {\r\n var $container = this._getGroupHeaderContainer();\r\n var groupCount = this._getGroupCount();\r\n var cellTemplates = [];\r\n if (groupCount) {\r\n var groupRows = this._makeGroupRows(this.option(\"groups\"), this.option(\"groupByDate\"));\r\n this._attachGroupCountClass();\r\n $container.append(groupRows.elements);\r\n cellTemplates = groupRows.cellTemplates\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n return cellTemplates\r\n }\r\n _applyCellTemplates(templates) {\r\n null === templates || void 0 === templates ? void 0 : templates.forEach(template => {\r\n template()\r\n })\r\n }\r\n _makeGroupRows(groups, groupByDate) {\r\n var tableCreatorStrategy = this._isVerticalGroupedWorkSpace() ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupHeaderRowClass: GROUP_ROW_CLASS,\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: GROUP_HEADER_CONTENT_CLASS\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getGroupCount(), groupByDate)\r\n }\r\n _renderDateHeader() {\r\n var container = this._getDateHeaderContainer();\r\n var $headerRow = $(\"<tr>\").addClass(HEADER_ROW_CLASS);\r\n var count = this._getCellCount();\r\n var cellTemplate = this._getDateHeaderTemplate();\r\n var repeatCount = this._getCalculateHeaderCellRepeatCount();\r\n var templateCallbacks = [];\r\n var groupByDate = this.isGroupedByDate();\r\n if (!groupByDate) {\r\n for (var rowIndex = 0; rowIndex < repeatCount; rowIndex++) {\r\n for (var columnIndex = 0; columnIndex < count; columnIndex++) {\r\n var templateIndex = rowIndex * count + columnIndex;\r\n this._renderDateHeaderTemplate($headerRow, columnIndex, templateIndex, cellTemplate, templateCallbacks)\r\n }\r\n }\r\n container.append($headerRow)\r\n } else {\r\n var colSpan = groupByDate ? this._getGroupCount() : 1;\r\n for (var _columnIndex = 0; _columnIndex < count; _columnIndex++) {\r\n var _templateIndex = _columnIndex * repeatCount;\r\n var cellElement = this._renderDateHeaderTemplate($headerRow, _columnIndex, _templateIndex, cellTemplate, templateCallbacks);\r\n cellElement.attr(\"colSpan\", colSpan)\r\n }\r\n container.prepend($headerRow)\r\n }\r\n this._applyCellTemplates(templateCallbacks);\r\n return $headerRow\r\n }\r\n _renderDateHeaderTemplate(container, panelCellIndex, templateIndex, cellTemplate, templateCallbacks) {\r\n var validTemplateIndex = this.isGroupedByDate() ? Math.floor(templateIndex / this._getGroupCount()) : templateIndex;\r\n var {\r\n completeDateHeaderMap: completeDateHeaderMap\r\n } = this.viewDataProvider;\r\n var {\r\n text: text,\r\n startDate: date\r\n } = completeDateHeaderMap[completeDateHeaderMap.length - 1][validTemplateIndex];\r\n var $cell = $(\"<th>\").addClass(this._getHeaderPanelCellClass(panelCellIndex)).attr(\"title\", text);\r\n if (null === cellTemplate || void 0 === cellTemplate ? void 0 : cellTemplate.render) {\r\n templateCallbacks.push(cellTemplate.render.bind(cellTemplate, {\r\n model: _extends({\r\n text: text,\r\n date: date\r\n }, this._getGroupsForDateHeaderTemplate(templateIndex)),\r\n index: templateIndex,\r\n container: getPublicElement($cell)\r\n }))\r\n } else {\r\n $cell.text(text)\r\n }\r\n container.append($cell);\r\n return $cell\r\n }\r\n _getGroupsForDateHeaderTemplate(templateIndex) {\r\n var indexMultiplier = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\r\n var groupIndex;\r\n var groups;\r\n if (this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate()) {\r\n groupIndex = this._getGroupIndex(0, templateIndex * indexMultiplier);\r\n var groupsArray = getCellGroups(groupIndex, this.option(\"groups\"));\r\n groups = getGroupsObjectFromGroupsArray(groupsArray)\r\n }\r\n return {\r\n groups: groups,\r\n groupIndex: groupIndex\r\n }\r\n }\r\n _getHeaderPanelCellClass(i) {\r\n var cellClass = \"\".concat(HEADER_PANEL_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1, void 0, void 0, this.isGroupedByDate())\r\n }\r\n _renderAllDayPanel(index) {\r\n var cellCount = this._getCellCount();\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n cellCount *= this._getGroupCount() || 1\r\n }\r\n var cellTemplates = this._renderTableBody({\r\n container: this._allDayPanels.length ? getPublicElement(this._allDayTables[index]) : getPublicElement(this._$allDayTable),\r\n rowCount: 1,\r\n cellCount: cellCount,\r\n cellClass: this._getAllDayPanelCellClass.bind(this),\r\n rowClass: ALL_DAY_TABLE_ROW_CLASS,\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: this._oldRender_getAllDayCellData(index),\r\n groupIndex: index\r\n }, true);\r\n this._toggleAllDayVisibility(true);\r\n this._applyCellTemplates(cellTemplates)\r\n }\r\n _renderGroupAllDayPanel() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._renderAllDayPanel(i)\r\n }\r\n }\r\n }\r\n _getAllDayPanelCellClass(i, j) {\r\n var cellClass = \"\".concat(ALL_DAY_TABLE_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, j + 1)\r\n }\r\n _renderTimePanel() {\r\n var repeatCount = this._groupedStrategy.calculateTimeCellRepeatCount();\r\n var getData = (rowIndex, field) => {\r\n var allDayPanelsCount = 0;\r\n if (this.isAllDayPanelVisible) {\r\n allDayPanelsCount = 1\r\n }\r\n if (this.isGroupedAllDayPanel()) {\r\n allDayPanelsCount = Math.ceil((rowIndex + 1) / this._getRowCount())\r\n }\r\n var validRowIndex = rowIndex + allDayPanelsCount;\r\n return this.viewDataProvider.completeTimePanelMap[validRowIndex][field]\r\n };\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount() * repeatCount,\r\n cellCount: 1,\r\n cellClass: this._getTimeCellClass.bind(this),\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellTemplate: this.option(\"timeCellTemplate\"),\r\n getCellText: rowIndex => getData(rowIndex, \"text\"),\r\n getCellDate: rowIndex => getData(rowIndex, \"startDate\"),\r\n groupCount: this._getGroupCount(),\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayTitles : void 0,\r\n getTemplateData: (rowIndex => {\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n return {}\r\n }\r\n var groupIndex = this._getGroupIndex(rowIndex, 0);\r\n var groupsArray = getCellGroups(groupIndex, this.option(\"groups\"));\r\n var groups = getGroupsObjectFromGroupsArray(groupsArray);\r\n return {\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }\r\n }).bind(this)\r\n })\r\n }\r\n _getTimeCellClass(i) {\r\n var cellClass = \"\".concat(TIME_PANEL_CELL_CLASS, \" \").concat(VERTICAL_SIZES_CLASS);\r\n return this._isVerticalGroupedWorkSpace() ? this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i, i) : cellClass\r\n }\r\n _renderDateTable() {\r\n var groupCount = this._getGroupCount();\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowCount: this._getTotalRowCount(groupCount),\r\n cellCount: this._getTotalCellCount(groupCount),\r\n cellClass: this._getDateTableCellClass.bind(this),\r\n rowClass: DATE_TABLE_ROW_CLASS,\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: (_, rowIndex, columnIndex) => {\r\n var isGroupedAllDayPanel = this.isGroupedAllDayPanel();\r\n var validRowIndex = rowIndex;\r\n if (isGroupedAllDayPanel) {\r\n var rowCount = this._getRowCount();\r\n var allDayPanelsCount = Math.ceil(rowIndex / rowCount);\r\n validRowIndex += allDayPanelsCount\r\n }\r\n var {\r\n cellData: cellData\r\n } = this.viewDataProvider.viewDataMap.dateTableMap[validRowIndex][columnIndex];\r\n return {\r\n value: this._filterCellDataFields(cellData),\r\n fullValue: cellData,\r\n key: CELL_DATA\r\n }\r\n },\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayPanels : void 0,\r\n groupCount: groupCount,\r\n groupByDate: this.option(\"groupByDate\")\r\n })\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return this._groupedStrategy.insertAllDayRowsIntoDateTable()\r\n }\r\n _renderTableBody(options, delayCellTemplateRendering) {\r\n var result = [];\r\n if (!delayCellTemplateRendering) {\r\n this._applyCellTemplates(tableCreator.makeTable(options))\r\n } else {\r\n result = tableCreator.makeTable(options)\r\n }\r\n return result\r\n }\r\n}\r\nvar createDragBehaviorConfig = (container, rootElement, isDefaultDraggingMode, dragBehavior, enableDefaultDragging, disableDefaultDragging, getDroppableCell, getDateTables, removeDroppableCellClass, getCellWidth, options) => {\r\n var state = {\r\n dragElement: void 0,\r\n itemData: void 0\r\n };\r\n var isItemDisabled = () => {\r\n var {\r\n itemData: itemData\r\n } = state;\r\n if (itemData) {\r\n var getter = compileGetter(\"disabled\");\r\n return getter(itemData)\r\n }\r\n return true\r\n };\r\n var cursorOffset = options.isSetCursorOffset ? () => {\r\n var $dragElement = $(state.dragElement);\r\n return {\r\n x: getWidth($dragElement) / 2,\r\n y: getHeight($dragElement) / 2\r\n }\r\n } : void 0;\r\n return {\r\n container: container,\r\n dragTemplate: () => state.dragElement,\r\n onDragStart: e => {\r\n if (!isDefaultDraggingMode) {\r\n disableDefaultDragging()\r\n }\r\n var canceled = e.cancel;\r\n var {\r\n event: event\r\n } = e;\r\n var $itemElement = $(e.itemElement);\r\n var appointments = e.component._appointments;\r\n state.itemData = options.getItemData(e.itemElement, appointments);\r\n var settings = options.getItemSettings($itemElement, e);\r\n var {\r\n initialPosition: initialPosition\r\n } = options;\r\n if (!isItemDisabled()) {\r\n event.data = event.data || {};\r\n if (!canceled) {\r\n if (!settings.isCompact) {\r\n dragBehavior.updateDragSource(state.itemData, settings)\r\n }\r\n state.dragElement = ((itemData, settings, appointments) => {\r\n var appointmentIndex = appointments.option(\"items\").length;\r\n settings.isCompact = false;\r\n settings.virtual = false;\r\n var items = appointments._renderItem(appointmentIndex, {\r\n itemData: itemData,\r\n settings: [settings]\r\n });\r\n return items[0]\r\n })(state.itemData, settings, appointments);\r\n event.data.itemElement = state.dragElement;\r\n event.data.initialPosition = null !== initialPosition && void 0 !== initialPosition ? initialPosition : locate($(state.dragElement));\r\n event.data.itemData = state.itemData;\r\n event.data.itemSettings = settings;\r\n dragBehavior.onDragStart(event.data);\r\n resetPosition($(state.dragElement))\r\n }\r\n }\r\n },\r\n onDragMove: () => {\r\n if (isDefaultDraggingMode) {\r\n return\r\n }\r\n var elements = (() => {\r\n var appointmentWidth = getWidth(state.dragElement);\r\n var cellWidth = getCellWidth();\r\n var isWideAppointment = appointmentWidth > cellWidth;\r\n var isNarrowAppointment = appointmentWidth <= DRAGGING_MOUSE_FAULT;\r\n var dragElementContainer = $(state.dragElement).parent();\r\n var boundingRect = getBoundingRect(dragElementContainer.get(0));\r\n var newX = boundingRect.left;\r\n var newY = boundingRect.top;\r\n if (isWideAppointment) {\r\n return domAdapter.elementsFromPoint(newX + DRAGGING_MOUSE_FAULT, newY + DRAGGING_MOUSE_FAULT)\r\n }\r\n if (isNarrowAppointment) {\r\n return domAdapter.elementsFromPoint(newX, newY)\r\n }\r\n return domAdapter.elementsFromPoint(newX + appointmentWidth / 2, newY + DRAGGING_MOUSE_FAULT)\r\n })();\r\n var isMoveUnderControl = !!elements.find(el => el === rootElement.get(0));\r\n var dateTables = getDateTables();\r\n var droppableCell = elements.find(el => {\r\n var {\r\n classList: classList\r\n } = el;\r\n var isCurrentSchedulerElement = 1 === dateTables.find(el).length;\r\n return isCurrentSchedulerElement && (classList.contains(DATE_TABLE_CELL_CLASS) || classList.contains(ALL_DAY_TABLE_CELL_CLASS))\r\n });\r\n if (droppableCell) {\r\n if (!getDroppableCell().is(droppableCell)) {\r\n removeDroppableCellClass()\r\n }\r\n $(droppableCell).addClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n } else if (!isMoveUnderControl) {\r\n removeDroppableCellClass()\r\n }\r\n },\r\n onDragEnd: e => {\r\n var _a;\r\n if (!isDefaultDraggingMode) {\r\n enableDefaultDragging()\r\n }\r\n if (!isItemDisabled()) {\r\n dragBehavior.onDragEnd(e)\r\n }\r\n null === (_a = state.dragElement) || void 0 === _a ? void 0 : _a.remove();\r\n removeDroppableCellClass()\r\n },\r\n cursorOffset: cursorOffset,\r\n filter: options.filter\r\n }\r\n};\r\nexport default SchedulerWorkSpace;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_agenda.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n setHeight,\r\n setOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport {\r\n calculateStartViewDate\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/agenda\";\r\nimport {\r\n formatWeekday,\r\n getVerticalGroupCountClass\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n DATE_TABLE_CLASS,\r\n DATE_TABLE_ROW_CLASS,\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n TIME_PANEL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport {\r\n createReducedResourcesTree,\r\n getDataAccessors,\r\n getPathToLeaf\r\n} from \"../resources/m_utils\";\r\nimport WorkSpace from \"./m_work_space\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar AGENDA_CLASS = \"dx-scheduler-agenda\";\r\nvar AGENDA_DATE_CLASS = \"dx-scheduler-agenda-date\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar NODATA_CONTAINER_CLASS = \"dx-scheduler-agenda-nodata\";\r\nvar LAST_ROW_CLASS = \"dx-scheduler-date-table-last-row\";\r\nvar INNER_CELL_MARGIN = 5;\r\nvar OUTER_CELL_MARGIN = 20;\r\nclass SchedulerAgenda extends WorkSpace {\r\n get type() {\r\n return VIEWS.AGENDA\r\n }\r\n get renderingStrategy() {\r\n return this.invoke(\"getLayoutManager\").getRenderingStrategyInstance()\r\n }\r\n get appointmentDataProvider() {\r\n return this.option(\"getAppointmentDataProvider\")()\r\n }\r\n getStartViewDate() {\r\n return this._startViewDate\r\n }\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = void 0\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n agendaDuration: 7,\r\n rowHeight: 60,\r\n noDataText: \"\"\r\n })\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n var {\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"agendaDuration\":\r\n break;\r\n case \"noDataText\":\r\n case \"rowHeight\":\r\n this._recalculateAgenda(this._rows);\r\n break;\r\n case \"groups\":\r\n if (!value || !value.length) {\r\n if (this._$groupTable) {\r\n this._$groupTable.remove();\r\n this._$groupTable = null;\r\n this._detachGroupCountClass()\r\n }\r\n } else if (!this._$groupTable) {\r\n this._initGroupTable();\r\n this._dateTableScrollable.$content().prepend(this._$groupTable)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderFocusState() {\r\n return noop()\r\n }\r\n _renderFocusTarget() {\r\n return noop()\r\n }\r\n _cleanFocusState() {\r\n return noop()\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n _isVerticalGroupedWorkSpace() {\r\n return false\r\n }\r\n _getElementClass() {\r\n return AGENDA_CLASS\r\n }\r\n _calculateStartViewDate() {\r\n return calculateStartViewDate(this.option(\"currentDate\"), this.option(\"startDayHour\"))\r\n }\r\n _getRowCount() {\r\n return this.option(\"agendaDuration\")\r\n }\r\n _getCellCount() {\r\n return 1\r\n }\r\n _getTimePanelRowCount() {\r\n return this.option(\"agendaDuration\")\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _initWorkSpaceUnits() {\r\n this._initGroupTable();\r\n this._$timePanel = $(\"<table>\").addClass(TIME_PANEL_CLASS);\r\n this._$dateTable = $(\"<table>\").addClass(DATE_TABLE_CLASS);\r\n this._$dateTableScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-date-table-scrollable-content\");\r\n this._$dateTableContainer = $(\"<div>\").addClass(\"dx-scheduler-date-table-container\")\r\n }\r\n _initGroupTable() {\r\n var groups = this.option(\"groups\");\r\n if (groups && groups.length) {\r\n this._$groupTable = $(\"<table>\").addClass(GROUP_TABLE_CLASS)\r\n }\r\n }\r\n _renderView() {\r\n this._startViewDate = this._calculateStartViewDate();\r\n this._rows = [];\r\n this._initPositionHelper()\r\n }\r\n _recalculateAgenda(rows) {\r\n var cellTemplates = [];\r\n this._cleanView();\r\n if (this._rowsIsEmpty(rows)) {\r\n this._renderNoData();\r\n return\r\n }\r\n this._rows = rows;\r\n if (this._$groupTable) {\r\n cellTemplates = this._renderGroupHeader();\r\n this._setGroupHeaderCellsHeight()\r\n }\r\n this._renderTimePanel();\r\n this._renderDateTable();\r\n this.invoke(\"onAgendaReady\", rows);\r\n this._applyCellTemplates(cellTemplates);\r\n this._dateTableScrollable.update()\r\n }\r\n _renderNoData() {\r\n this._$noDataContainer = $(\"<div>\").addClass(NODATA_CONTAINER_CLASS).html(this.option(\"noDataText\"));\r\n this._dateTableScrollable.$content().append(this._$noDataContainer)\r\n }\r\n _setTableSizes() {\r\n return noop()\r\n }\r\n _toggleHorizontalScrollClass() {\r\n return noop()\r\n }\r\n _createCrossScrollingConfig(argument) {\r\n return noop()\r\n }\r\n _setGroupHeaderCellsHeight() {\r\n var $cells = this._getGroupHeaderCells().filter((_, element) => !element.getAttribute(\"rowSpan\"));\r\n var rows = this._removeEmptyRows(this._rows);\r\n if (!rows.length) {\r\n return\r\n }\r\n for (var i = 0; i < $cells.length; i++) {\r\n var $cellContent = $cells.eq(i).find(\".dx-scheduler-group-header-content\");\r\n setOuterHeight($cellContent, this._getGroupRowHeight(rows[i]))\r\n }\r\n }\r\n _rowsIsEmpty(rows) {\r\n var result = true;\r\n for (var i = 0; i < rows.length; i++) {\r\n var groupRow = rows[i];\r\n for (var j = 0; j < groupRow.length; j++) {\r\n if (groupRow[j]) {\r\n result = false;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n _attachGroupCountClass() {\r\n var className = getVerticalGroupCountClass(this.option(\"groups\"));\r\n this.$element().addClass(className)\r\n }\r\n _removeEmptyRows(rows) {\r\n var result = [];\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i].length && !(data = rows[i], !data.some(value => value > 0))) {\r\n result.push(rows[i])\r\n }\r\n }\r\n var data;\r\n return result\r\n }\r\n _getGroupHeaderContainer() {\r\n return this._$groupTable\r\n }\r\n _makeGroupRows() {\r\n var tree = createReducedResourcesTree(this.option(\"loadedResources\"), (field, action) => getDataAccessors(this.option(\"getResourceDataAccessors\")(), field, action), this.option(\"getFilteredItems\")());\r\n var cellTemplate = this.option(\"resourceCellTemplate\");\r\n var getGroupHeaderContentClass = GROUP_HEADER_CONTENT_CLASS;\r\n var cellTemplates = [];\r\n var table = tableCreator.makeGroupedTableFromJSON(tableCreator.VERTICAL, tree, {\r\n cellTag: \"th\",\r\n groupTableClass: GROUP_TABLE_CLASS,\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupCellClass: this._getGroupHeaderClass(),\r\n groupCellCustomContent(cell, cellTextElement, index, data) {\r\n var container = domAdapter.createElement(\"div\");\r\n container.className = getGroupHeaderContentClass;\r\n if (cellTemplate && cellTemplate.render) {\r\n cellTemplates.push(cellTemplate.render.bind(cellTemplate, {\r\n model: {\r\n data: data.data,\r\n id: data.value,\r\n color: data.color,\r\n text: cellTextElement.textContent\r\n },\r\n container: getPublicElement($(container)),\r\n index: index\r\n }))\r\n } else {\r\n var contentWrapper = domAdapter.createElement(\"div\");\r\n contentWrapper.appendChild(cellTextElement);\r\n container.appendChild(contentWrapper)\r\n }\r\n cell.appendChild(container)\r\n },\r\n cellTemplate: cellTemplate\r\n });\r\n return {\r\n elements: $(table).find(\".\".concat(GROUP_ROW_CLASS)),\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _cleanView() {\r\n this._$dateTable.empty();\r\n this._$timePanel.empty();\r\n if (this._$groupTable) {\r\n this._$groupTable.empty()\r\n }\r\n if (this._$noDataContainer) {\r\n this._$noDataContainer.empty();\r\n this._$noDataContainer.remove();\r\n delete this._$noDataContainer\r\n }\r\n }\r\n _createWorkSpaceElements() {\r\n this._createWorkSpaceStaticElements()\r\n }\r\n _createWorkSpaceStaticElements() {\r\n this._$dateTableContainer.append(this._$dateTable);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n if (this._$groupTable) {\r\n this._$dateTableScrollableContent.prepend(this._$groupTable)\r\n }\r\n this._$dateTableScrollableContent.append(this._$timePanel, this._$dateTableContainer);\r\n this.$element().append(this._dateTableScrollable.$element())\r\n }\r\n _renderDateTable() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowClass: DATE_TABLE_ROW_CLASS,\r\n cellClass: this._getDateTableCellClass()\r\n })\r\n }\r\n _attachTablesEvents() {\r\n return noop()\r\n }\r\n _attachEvents() {\r\n return noop()\r\n }\r\n _cleanCellDataCache() {\r\n return noop()\r\n }\r\n isIndicationAvailable() {\r\n return false\r\n }\r\n _prepareCellTemplateOptions(text, date, rowIndex, $cell) {\r\n var groupsOpt = this.option(\"groups\");\r\n var groups = {};\r\n var isGroupedView = !!groupsOpt.length;\r\n var path = isGroupedView && getPathToLeaf(rowIndex, groupsOpt) || [];\r\n path.forEach((resourceValue, resourceIndex) => {\r\n var resourceName = groupsOpt[resourceIndex].name;\r\n groups[resourceName] = resourceValue\r\n });\r\n var groupIndex = isGroupedView ? this._getGroupIndexByResourceId(groups) : void 0;\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n container: getPublicElement($cell),\r\n index: rowIndex\r\n }\r\n }\r\n _renderTableBody(options, delayCellTemplateRendering) {\r\n var cellTemplates = [];\r\n var cellTemplateOpt = options.cellTemplate;\r\n this._$rows = [];\r\n var i;\r\n var fillTableBody = function(rowIndex, rowSize) {\r\n if (rowSize) {\r\n var date;\r\n var cellDateNumber;\r\n var cellDayName;\r\n var $row = $(\"<tr>\");\r\n var $td = $(\"<td>\");\r\n setHeight($td, this._getRowHeight(rowSize));\r\n if (options.getStartDate) {\r\n date = options.getStartDate && options.getStartDate(rowIndex);\r\n cellDateNumber = dateLocalization.format(date, \"d\");\r\n cellDayName = dateLocalization.format(date, formatWeekday)\r\n }\r\n if (cellTemplateOpt && cellTemplateOpt.render) {\r\n var templateOptions = this._prepareCellTemplateOptions(\"\".concat(cellDateNumber, \" \").concat(cellDayName), date, i, $td);\r\n cellTemplates.push(cellTemplateOpt.render.bind(cellTemplateOpt, templateOptions))\r\n } else if (cellDateNumber && cellDayName) {\r\n $td.addClass(AGENDA_DATE_CLASS).text(\"\".concat(cellDateNumber, \" \").concat(cellDayName))\r\n }\r\n if (options.rowClass) {\r\n $row.addClass(options.rowClass)\r\n }\r\n if (options.cellClass) {\r\n $td.addClass(options.cellClass)\r\n }\r\n $row.append($td);\r\n this._$rows.push($row)\r\n }\r\n }.bind(this);\r\n for (i = 0; i < this._rows.length; i++) {\r\n each(this._rows[i], fillTableBody);\r\n this._setLastRowClass()\r\n }\r\n $(options.container).append($(\"<tbody>\").append(this._$rows));\r\n this._applyCellTemplates(cellTemplates)\r\n }\r\n _setLastRowClass() {\r\n if (this._rows.length > 1 && this._$rows.length) {\r\n var $lastRow = this._$rows[this._$rows.length - 1];\r\n $lastRow.addClass(LAST_ROW_CLASS)\r\n }\r\n }\r\n _renderTimePanel() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount(),\r\n cellCount: 1,\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellClass: TIME_PANEL_CELL_CLASS,\r\n cellTemplate: this.option(\"dateCellTemplate\"),\r\n getStartDate: this._getTimePanelStartDate.bind(this)\r\n })\r\n }\r\n _getTimePanelStartDate(rowIndex) {\r\n var current = new Date(this.option(\"currentDate\"));\r\n var cellDate = new Date(current.setDate(current.getDate() + rowIndex));\r\n return cellDate\r\n }\r\n _getRowHeight(rowSize) {\r\n var baseHeight = this.option(\"rowHeight\");\r\n var innerOffset = (rowSize - 1) * INNER_CELL_MARGIN;\r\n return rowSize ? baseHeight * rowSize + innerOffset + OUTER_CELL_MARGIN : 0\r\n }\r\n _getGroupRowHeight(groupRows) {\r\n if (!groupRows) {\r\n return\r\n }\r\n var result = 0;\r\n for (var i = 0; i < groupRows.length; i++) {\r\n result += this._getRowHeight(groupRows[i])\r\n }\r\n return result\r\n }\r\n _calculateRows(appointments) {\r\n return this.renderingStrategy.calculateRows(appointments, this.option(\"agendaDuration\"), this.option(\"currentDate\"))\r\n }\r\n onDataSourceChanged(appointments) {\r\n super.onDataSourceChanged();\r\n this._renderView();\r\n var rows = this._calculateRows(appointments);\r\n this._recalculateAgenda(rows)\r\n }\r\n getAgendaVerticalStepHeight() {\r\n return this.option(\"rowHeight\")\r\n }\r\n getEndViewDate() {\r\n var currentDate = new Date(this.option(\"currentDate\"));\r\n var agendaDuration = this.option(\"agendaDuration\");\r\n currentDate.setHours(this.option(\"endDayHour\"));\r\n var result = currentDate.setDate(currentDate.getDate() + agendaDuration - 1) - 6e4;\r\n return new Date(result)\r\n }\r\n getEndViewDateByEndDayHour() {\r\n return this.getEndViewDate()\r\n }\r\n getCellDataByCoordinates() {\r\n return {\r\n startDate: null,\r\n endDate: null\r\n }\r\n }\r\n updateScrollPosition(date) {\r\n var newDate = this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var bounds = this.getVisibleBounds();\r\n var startDateHour = newDate.getHours();\r\n var startDateMinutes = newDate.getMinutes();\r\n if (this.needUpdateScrollPosition(startDateHour, startDateMinutes, bounds, newDate)) {\r\n this.scrollToTime(startDateHour, startDateMinutes, newDate)\r\n }\r\n }\r\n needUpdateScrollPosition(hours, minutes, bounds, newData) {\r\n var isUpdateNeeded = false;\r\n if (hours < bounds.top.hours || hours > bounds.bottom.hours) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.top.hours && minutes < bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.bottom.hours && minutes > bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n return isUpdateNeeded\r\n }\r\n renovatedRenderSupported() {\r\n return false\r\n }\r\n _setSelectedCellsByCellData() {}\r\n _getIntervalDuration() {\r\n return dateUtils.dateToMilliseconds(\"day\") * this.option(\"intervalCount\")\r\n }\r\n getDOMElementsMetaData() {\r\n return {\r\n dateTableCellsMeta: [\r\n [{}]\r\n ],\r\n allDayPanelCellsMeta: [{}]\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAgenda\", SchedulerAgenda);\r\nexport default SchedulerAgenda;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/agenda.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOptionHour\r\n} from \"./base\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour) => {\r\n var validCurrentDate = new Date(currentDate);\r\n return setOptionHour(validCurrentDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/timeline_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getValidCellDateForLocalTimeFormat\r\n} from \"./base\";\r\nexport var getDateForHeaderText = (index, date, _ref) => {\r\n var {\r\n cellCountInDay: cellCountInDay,\r\n interval: interval,\r\n startDayHour: startDayHour,\r\n startViewDate: startViewDate,\r\n viewOffset: viewOffset\r\n } = _ref;\r\n return getValidCellDateForLocalTimeFormat(date, {\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellIndexShift: index % cellCountInDay * interval,\r\n viewOffset: viewOffset\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/timeline/header_panel/date_header/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"dateCellTemplate\", \"dateHeaderData\", \"groupByDate\", \"groupOrientation\", \"groups\", \"timeCellTemplate\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Row\r\n} from \"../../../base/row\";\r\nimport {\r\n isHorizontalGroupingApplied\r\n} from \"../../../utils\";\r\nimport {\r\n DateHeaderCell\r\n} from \"../../../base/header_panel/date_header/cell\";\r\nimport {\r\n DateHeaderLayoutProps\r\n} from \"../../../base/header_panel/date_header/layout\";\r\nimport getThemeType from \"../../../../../../utils/getThemeType\";\r\nvar {\r\n isMaterialBased: isMaterialBased\r\n} = getThemeType();\r\nexport var viewFunction = _ref => {\r\n var {\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n props: {\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: dateHeaderData,\r\n timeCellTemplate: timeCellTemplate\r\n }\r\n } = _ref;\r\n var {\r\n dataMap: dataMap,\r\n isMonthDateHeader: isMonthDateHeader,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n weekDayLeftVirtualCellCount: weekDayLeftVirtualCellCount,\r\n weekDayLeftVirtualCellWidth: weekDayLeftVirtualCellWidth,\r\n weekDayRightVirtualCellCount: weekDayRightVirtualCellCount,\r\n weekDayRightVirtualCellWidth: weekDayRightVirtualCellWidth\r\n } = dateHeaderData;\r\n return createFragment(dataMap.map((dateHeaderRow, rowIndex) => {\r\n var rowsCount = dataMap.length;\r\n var isTimeCellTemplate = rowsCount - 1 === rowIndex;\r\n var isWeekDayRow = rowsCount > 1 && 0 === rowIndex;\r\n var splitText = isMaterialBased && (isMonthDateHeader || isWeekDayRow);\r\n var validLeftVirtualCellCount = leftVirtualCellCount;\r\n var validRightVirtualCellCount = rightVirtualCellCount;\r\n var validRightVirtualCellWidth = rightVirtualCellWidth;\r\n var validLeftVirtualCellWidth = leftVirtualCellWidth;\r\n if (isWeekDayRow) {\r\n validLeftVirtualCellCount = weekDayLeftVirtualCellCount;\r\n validRightVirtualCellCount = weekDayRightVirtualCellCount;\r\n validRightVirtualCellWidth = weekDayRightVirtualCellWidth;\r\n validLeftVirtualCellWidth = weekDayLeftVirtualCellWidth\r\n }\r\n return createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-header-row\",\r\n leftVirtualCellWidth: validLeftVirtualCellWidth,\r\n leftVirtualCellCount: validLeftVirtualCellCount,\r\n rightVirtualCellWidth: validRightVirtualCellWidth,\r\n rightVirtualCellCount: validRightVirtualCellCount,\r\n children: dateHeaderRow.map(_ref2 => {\r\n var {\r\n colSpan: colSpan,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: cellGroups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref2;\r\n return createComponentVNode(2, DateHeaderCell, {\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: isHorizontalGrouping ? cellGroups : void 0,\r\n groupIndex: isHorizontalGrouping ? groupIndex : void 0,\r\n today: today,\r\n index: index,\r\n text: text,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isWeekDayCell: isWeekDayRow,\r\n colSpan: colSpan,\r\n splitText: splitText,\r\n dateCellTemplate: dateCellTemplate,\r\n timeCellTemplate: timeCellTemplate,\r\n isTimeCellTemplate: isTimeCellTemplate\r\n }, key)\r\n })\r\n }, rowIndex.toString())\r\n }), 0)\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class TimelineDateHeaderLayout extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get isHorizontalGrouping() {\r\n var {\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups\r\n } = this.props;\r\n return isHorizontalGroupingApplied(groups, groupOrientation) && !groupByDate\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dateCellTemplate: getTemplate(props.dateCellTemplate),\r\n timeCellTemplate: getTemplate(props.timeCellTemplate)\r\n }),\r\n isHorizontalGrouping: this.isHorizontalGrouping,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nTimelineDateHeaderLayout.defaultProps = DateHeaderLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/timeline/header_panel/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"dateCellTemplate\", \"dateHeaderData\", \"dateHeaderTemplate\", \"elementRef\", \"groupByDate\", \"groupOrientation\", \"groupPanelData\", \"groups\", \"height\", \"isRenderDateHeader\", \"resourceCellTemplate\", \"timeCellTemplate\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n HeaderPanelLayout,\r\n HeaderPanelLayoutProps\r\n} from \"../../base/header_panel/layout\";\r\nimport {\r\n TimelineDateHeaderLayout\r\n} from \"./date_header/layout\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: dateHeaderData,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n isRenderDateHeader: isRenderDateHeader,\r\n resourceCellTemplate: resourceCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n }\r\n } = _ref;\r\n return createComponentVNode(2, HeaderPanelLayout, {\r\n dateHeaderTemplate: TimelineDateHeaderLayout,\r\n dateHeaderData: dateHeaderData,\r\n groupPanelData: groupPanelData,\r\n groupByDate: groupByDate,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isRenderDateHeader: isRenderDateHeader,\r\n resourceCellTemplate: resourceCellTemplate,\r\n dateCellTemplate: dateCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n })\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class TimelineHeaderPanelLayout extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dateCellTemplate: getTemplate(props.dateCellTemplate),\r\n timeCellTemplate: getTemplate(props.timeCellTemplate),\r\n dateHeaderTemplate: getTemplate(props.dateHeaderTemplate),\r\n resourceCellTemplate: getTemplate(props.resourceCellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nTimelineHeaderPanelLayout.defaultProps = HeaderPanelLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/timeline/header_panel/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n HeaderPanel\r\n} from \"../../../../../component_wrapper/scheduler/header_panel\";\r\nimport {\r\n TimelineHeaderPanelLayout as TimelineHeaderPanelLayoutComponent\r\n} from \"./layout\";\r\nexport default class TimelineHeaderPanelLayout extends HeaderPanel {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"resourceCellTemplate\"],\r\n props: [\"dateHeaderData\", \"isRenderDateHeader\", \"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return TimelineHeaderPanelLayoutComponent\r\n }\r\n}\r\nregisterComponent(\"dxTimelineHeaderPanelLayout\", TimelineHeaderPanelLayout);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader_horizontal.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport CurrentTimeShader from \"./m_current_time_shader\";\r\nclass HorizontalCurrentTimeShader extends CurrentTimeShader {\r\n renderShader() {\r\n var groupCount = this._workSpace._isHorizontalGroupedWorkSpace() ? this._workSpace._getGroupCount() : 1;\r\n for (var i = 0; i < groupCount; i += 1) {\r\n var isFirstShader = 0 === i;\r\n var $shader = isFirstShader ? this._$shader : this.createShader();\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._customizeGroupedByDateShader($shader, i)\r\n } else {\r\n this._customizeShader($shader, i)\r\n }!isFirstShader && this._shader.push($shader)\r\n }\r\n }\r\n _customizeShader($shader, groupIndex) {\r\n var shaderWidth = this._workSpace.getIndicationWidth();\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (groupIndex >= 1) {\r\n var workSpace = this._workSpace;\r\n var indicationWidth = workSpace._getCellCount() * workSpace.getCellWidth();\r\n $shader.css(\"left\", indicationWidth)\r\n } else {\r\n $shader.css(\"left\", 0)\r\n }\r\n }\r\n _applyShaderWidth($shader, width) {\r\n var maxWidth = getBoundingRect(this._$container.get(0)).width;\r\n if (width > maxWidth) {\r\n width = maxWidth\r\n }\r\n if (width > 0) {\r\n setWidth($shader, width)\r\n }\r\n }\r\n _customizeGroupedByDateShader($shader, groupIndex) {\r\n var cellCount = this._workSpace.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n var isFirstShaderPart = 0 === groupIndex;\r\n var workSpace = this._workSpace;\r\n var shaderWidth = isFirstShaderPart ? workSpace.getIndicationWidth() : fractionPart * workSpace.getCellWidth();\r\n var shaderLeft;\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (isFirstShaderPart) {\r\n shaderLeft = workSpace._getCellCount() * workSpace.getCellWidth() * groupIndex\r\n } else {\r\n shaderLeft = workSpace.getCellWidth() * integerPart * workSpace._getGroupCount() + groupIndex * workSpace.getCellWidth()\r\n }\r\n $shader.css(\"left\", shaderLeft)\r\n }\r\n}\r\nexport default HorizontalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_indicator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n getToday\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n HEADER_CURRENT_TIME_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport timezoneUtils from \"../m_utils_time_zone\";\r\nimport SchedulerWorkSpace from \"./m_work_space\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SCHEDULER_DATE_TIME_INDICATOR_CLASS = \"dx-scheduler-date-time-indicator\";\r\nvar TIME_PANEL_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-time-panel-current-time-cell\";\r\nclass SchedulerWorkSpaceIndicator extends SchedulerWorkSpace {\r\n _getToday() {\r\n var viewOffset = this.option(\"viewOffset\");\r\n var today = getToday(this.option(\"indicatorTime\"), this.timeZoneCalculator);\r\n return dateUtilsTs.addOffsets(today, [-viewOffset])\r\n }\r\n isIndicationOnView() {\r\n if (this.option(\"showCurrentTimeIndicator\")) {\r\n var today = this._getToday();\r\n var endViewDate = dateUtils.trimTime(this.getEndViewDate());\r\n return dateUtils.dateInRange(today, this.getStartViewDate(), new Date(endViewDate.getTime() + toMs(\"day\")))\r\n }\r\n return false\r\n }\r\n isIndicationAvailable() {\r\n if (!hasWindow()) {\r\n return false\r\n }\r\n var today = this._getToday();\r\n return today >= dateUtils.trimTime(new Date(this.getStartViewDate()))\r\n }\r\n isIndicatorVisible() {\r\n var today = this._getToday();\r\n var endViewDate = new Date(this.getEndViewDate().getTime() + toMs(\"minute\") - 1);\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n firstViewDate.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n endViewDate.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n return dateUtils.dateInRange(today, firstViewDate, endViewDate)\r\n }\r\n _renderIndicator(height, rtlOffset, $container, groupCount) {\r\n var groupedByDate = this.isGroupedByDate();\r\n var repeatCount = groupedByDate ? 1 : groupCount;\r\n for (var i = 0; i < repeatCount; i++) {\r\n var $indicator = this._createIndicator($container);\r\n setWidth($indicator, groupedByDate ? this.getCellWidth() * groupCount : this.getCellWidth());\r\n this._groupedStrategy.shiftIndicator($indicator, height, rtlOffset, i)\r\n }\r\n }\r\n _createIndicator($container) {\r\n var $indicator = $(\"<div>\").addClass(SCHEDULER_DATE_TIME_INDICATOR_CLASS);\r\n $container.append($indicator);\r\n return $indicator\r\n }\r\n _getRtlOffset(width) {\r\n return this.option(\"rtlEnabled\") ? getBoundingRect(this._dateTableScrollable.$content().get(0)).width - this.getTimePanelWidth() - width : 0\r\n }\r\n _setIndicationUpdateInterval() {\r\n if (!this.option(\"showCurrentTimeIndicator\") || 0 === this.option(\"indicatorUpdateInterval\")) {\r\n return\r\n }\r\n this._clearIndicatorUpdateInterval();\r\n this._indicatorInterval = setInterval(() => {\r\n this.renderCurrentDateTimeIndication()\r\n }, this.option(\"indicatorUpdateInterval\"))\r\n }\r\n _clearIndicatorUpdateInterval() {\r\n if (this._indicatorInterval) {\r\n clearInterval(this._indicatorInterval);\r\n delete this._indicatorInterval\r\n }\r\n }\r\n _isVerticalShader() {\r\n return true\r\n }\r\n getIndicationWidth(groupIndex) {\r\n var maxWidth = this.getCellWidth() * this._getCellCount();\r\n var difference = this._getIndicatorDuration();\r\n if (difference > this._getCellCount()) {\r\n difference = this._getCellCount()\r\n }\r\n var width = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return maxWidth < width ? maxWidth : width\r\n }\r\n getIndicatorOffset(groupIndex) {\r\n var difference = this._getIndicatorDuration() - 1;\r\n var offset = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return offset\r\n }\r\n _getIndicatorDuration() {\r\n var today = this._getToday();\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n var timeDiff = today.getTime() - firstViewDate.getTime();\r\n if (\"workWeek\" === this.option(\"type\")) {\r\n timeDiff -= this._getWeekendsCount(Math.round(timeDiff / toMs(\"day\"))) * toMs(\"day\")\r\n }\r\n return Math.ceil((timeDiff + 1) / toMs(\"day\"))\r\n }\r\n getIndicationHeight() {\r\n var today = timezoneUtils.getDateWithoutTimezoneChange(this._getToday());\r\n var cellHeight = this.getCellHeight();\r\n var date = new Date(this.getStartViewDate());\r\n if (this.isIndicationOnView()) {\r\n date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate())\r\n }\r\n var duration = today.getTime() - date.getTime();\r\n var cellCount = duration / this.getCellDuration();\r\n return cellCount * cellHeight\r\n }\r\n _dispose() {\r\n this._clearIndicatorUpdateInterval();\r\n super._dispose.apply(this, arguments)\r\n }\r\n renderCurrentDateTimeIndication() {\r\n this.renderCurrentDateTimeLineAndShader();\r\n if (this.isRenovatedRender()) {\r\n this.renderWorkSpace({\r\n generateNewData: true,\r\n renderComponents: {\r\n header: true,\r\n timePanel: true\r\n }\r\n })\r\n }\r\n }\r\n renderCurrentDateTimeLineAndShader() {\r\n var _a;\r\n this._cleanDateTimeIndicator();\r\n null === (_a = this._shader) || void 0 === _a ? void 0 : _a.clean();\r\n this._renderDateTimeIndication()\r\n }\r\n _isCurrentTimeHeaderCell(headerIndex) {\r\n if (this.isIndicationOnView()) {\r\n var {\r\n completeDateHeaderMap: completeDateHeaderMap\r\n } = this.viewDataProvider;\r\n var date = completeDateHeaderMap[completeDateHeaderMap.length - 1][headerIndex].startDate;\r\n return dateUtils.sameDate(date, this._getToday())\r\n }\r\n return false\r\n }\r\n _getHeaderPanelCellClass(i) {\r\n var cellClass = super._getHeaderPanelCellClass(i);\r\n if (this._isCurrentTimeHeaderCell(i)) {\r\n return \"\".concat(cellClass, \" \").concat(HEADER_CURRENT_TIME_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _cleanView() {\r\n super._cleanView();\r\n this._cleanDateTimeIndicator()\r\n }\r\n _dimensionChanged() {\r\n super._dimensionChanged();\r\n this.renderCurrentDateTimeLineAndShader()\r\n }\r\n _cleanDateTimeIndicator() {\r\n this.$element().find(\".\".concat(SCHEDULER_DATE_TIME_INDICATOR_CLASS)).remove()\r\n }\r\n _cleanWorkSpace() {\r\n super._cleanWorkSpace();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"indicatorUpdateInterval\":\r\n this._setIndicationUpdateInterval();\r\n break;\r\n case \"showAllDayPanel\":\r\n case \"allDayExpanded\":\r\n case \"crossScrollingEnabled\":\r\n super._optionChanged(args);\r\n this.renderCurrentDateTimeIndication();\r\n break;\r\n case \"shadeUntilCurrentTime\":\r\n this.renderCurrentDateTimeIndication();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showCurrentTimeIndicator: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true\r\n })\r\n }\r\n _getCurrentTimePanelCellIndices() {\r\n var rowCountPerGroup = this._getTimePanelRowCount();\r\n var today = this._getToday();\r\n var index = this.getCellIndexByDate(today);\r\n var {\r\n rowIndex: currentTimeRowIndex\r\n } = this._getCellCoordinatesByIndex(index);\r\n if (void 0 === currentTimeRowIndex) {\r\n return []\r\n }\r\n var cellIndices;\r\n if (0 === currentTimeRowIndex) {\r\n cellIndices = [currentTimeRowIndex]\r\n } else {\r\n cellIndices = currentTimeRowIndex % 2 === 0 ? [currentTimeRowIndex - 1, currentTimeRowIndex] : [currentTimeRowIndex, currentTimeRowIndex + 1]\r\n }\r\n var verticalGroupCount = this._isVerticalGroupedWorkSpace() ? this._getGroupCount() : 1;\r\n return [...new Array(verticalGroupCount)].reduce((currentIndices, _, groupIndex) => [...currentIndices, ...cellIndices.map(cellIndex => rowCountPerGroup * groupIndex + cellIndex)], [])\r\n }\r\n _renderDateTimeIndication() {\r\n if (!this.isIndicationAvailable()) {\r\n return\r\n }\r\n if (this.option(\"shadeUntilCurrentTime\")) {\r\n this._shader.render()\r\n }\r\n if (!this.isIndicationOnView() || !this.isIndicatorVisible()) {\r\n return\r\n }\r\n var groupCount = this._getGroupCount() || 1;\r\n var $container = this._dateTableScrollable.$content();\r\n var height = this.getIndicationHeight();\r\n var rtlOffset = this._getRtlOffset(this.getCellWidth());\r\n this._renderIndicator(height, rtlOffset, $container, groupCount);\r\n if (!this.isRenovatedRender()) {\r\n this._setCurrentTimeCells()\r\n }\r\n }\r\n _setCurrentTimeCells() {\r\n var timePanelCells = this._getTimePanelCells();\r\n var currentTimeCellIndices = this._getCurrentTimePanelCellIndices();\r\n currentTimeCellIndices.forEach(timePanelCellIndex => {\r\n timePanelCells.eq(timePanelCellIndex).addClass(TIME_PANEL_CURRENT_TIME_CELL_CLASS)\r\n })\r\n }\r\n _cleanCurrentTimeCells() {\r\n this.$element().find(\".\".concat(TIME_PANEL_CURRENT_TIME_CELL_CLASS)).removeClass(TIME_PANEL_CURRENT_TIME_CELL_CLASS)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpace\", SchedulerWorkSpaceIndicator);\r\nexport default SchedulerWorkSpaceIndicator;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n setHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n formatWeekdayAndDay\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n getDateForHeaderText\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/timeline_week\";\r\nimport dxrTimelineDateHeader from \"../../../renovation/ui/scheduler/workspaces/timeline/header_panel/layout.j\";\r\nimport {\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n HEADER_CURRENT_TIME_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport timezoneUtils from \"../m_utils_time_zone\";\r\nimport HorizontalShader from \"../shaders/m_current_time_shader_horizontal\";\r\nimport SchedulerWorkSpace from \"./m_work_space_indicator\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar HORIZONTAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-horizontal-grouped\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_PANEL_WEEK_CELL_CLASS = \"dx-scheduler-header-panel-week-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerTimeline extends SchedulerWorkSpace {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"horizontal\"\r\n }\r\n get verticalGroupTableClass() {\r\n return GROUP_TABLE_CLASS\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return dxrTimelineDateHeader\r\n }\r\n getGroupTableWidth() {\r\n return this._$sidebarTable ? getOuterWidth(this._$sidebarTable) : 0\r\n }\r\n _getTotalRowCount(groupCount) {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._getRowCount()\r\n }\r\n groupCount = groupCount || 1;\r\n return this._getRowCount() * groupCount\r\n }\r\n _getFormat() {\r\n return \"shorttime\"\r\n }\r\n _getWorkSpaceHeight() {\r\n if (this.option(\"crossScrollingEnabled\") && hasWindow()) {\r\n return getBoundingRect(this._$dateTable.get(0)).height\r\n }\r\n return getBoundingRect(this.$element().get(0)).height\r\n }\r\n _dateTableScrollableConfig() {\r\n var config = super._dateTableScrollableConfig();\r\n var timelineConfig = {\r\n direction: HORIZONTAL\r\n };\r\n return this.option(\"crossScrollingEnabled\") ? config : extend(config, timelineConfig)\r\n }\r\n _needCreateCrossScrolling() {\r\n return true\r\n }\r\n _headerScrollableConfig() {\r\n var config = super._headerScrollableConfig();\r\n return extend(config, {\r\n scrollByContent: true\r\n })\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n _getGroupHeaderContainer() {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._$thead\r\n }\r\n return this._$sidebarTable\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n _needRenderWeekHeader() {\r\n return false\r\n }\r\n _incrementDate(date) {\r\n date.setDate(date.getDate() + 1)\r\n }\r\n getIndicationCellCount() {\r\n var timeDiff = this._getTimeDiff();\r\n return this._calculateDurationInCells(timeDiff)\r\n }\r\n _getTimeDiff() {\r\n var today = this._getToday();\r\n var date = this._getIndicationFirstViewDate();\r\n var startViewDate = this.getStartViewDate();\r\n var dayLightOffset = timezoneUtils.getDaylightOffsetInMs(startViewDate, today);\r\n if (dayLightOffset) {\r\n today = new Date(today.getTime() + dayLightOffset)\r\n }\r\n return today.getTime() - date.getTime()\r\n }\r\n _calculateDurationInCells(timeDiff) {\r\n var today = this._getToday();\r\n var differenceInDays = Math.floor(timeDiff / toMs(\"day\"));\r\n var duration = (timeDiff - differenceInDays * toMs(\"day\") - this.option(\"startDayHour\") * toMs(\"hour\")) / this.getCellDuration();\r\n if (today.getHours() > this.option(\"endDayHour\")) {\r\n duration = this._getCellCountInDay()\r\n }\r\n if (duration < 0) {\r\n duration = 0\r\n }\r\n return differenceInDays * this._getCellCountInDay() + duration\r\n }\r\n getIndicationWidth() {\r\n if (this.isGroupedByDate()) {\r\n var cellCount = this.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n return this.getCellWidth() * (integerPart * this._getGroupCount() + fractionPart)\r\n }\r\n return this.getIndicationCellCount() * this.getCellWidth()\r\n }\r\n _isVerticalShader() {\r\n return false\r\n }\r\n _isCurrentTimeHeaderCell() {\r\n return false\r\n }\r\n _setTableSizes() {\r\n super._setTableSizes();\r\n var minHeight = this._getWorkSpaceMinHeight();\r\n setHeight(this._$sidebarTable, minHeight);\r\n setHeight(this._$dateTable, minHeight);\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n _getWorkSpaceMinHeight() {\r\n var minHeight = this._getWorkSpaceHeight();\r\n var workspaceContainerHeight = getOuterHeight(this._$flexContainer, true);\r\n if (minHeight < workspaceContainerHeight) {\r\n minHeight = workspaceContainerHeight\r\n }\r\n return minHeight\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n return {\r\n columnIndex: index % this._getCellCount(),\r\n rowIndex: 0\r\n }\r\n }\r\n _getCellByCoordinates(cellCoordinates, groupIndex) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex);\r\n return this._$dateTable.find(\"tr\").eq(indexes.rowIndex).find(\"td\").eq(indexes.columnIndex)\r\n }\r\n _getWorkSpaceWidth() {\r\n return getOuterWidth(this._$dateTable, true)\r\n }\r\n _getIndicationFirstViewDate() {\r\n return dateUtils.trimTime(new Date(this.getStartViewDate()))\r\n }\r\n _getIntervalBetween(currentDate, allDay) {\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n var firstViewDate = this.getStartViewDate();\r\n var firstViewDateTime = firstViewDate.getTime();\r\n var hiddenInterval = (24 - endDayHour + startDayHour) * toMs(\"hour\");\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var apptStart = currentDate.getTime();\r\n var fullInterval = apptStart - firstViewDateTime - timeZoneOffset;\r\n var fullDays = Math.floor(fullInterval / toMs(\"day\"));\r\n var tailDuration = fullInterval - fullDays * toMs(\"day\");\r\n var tailDelta = 0;\r\n var cellCount = this._getCellCountInDay() * (fullDays - this._getWeekendsCount(fullDays));\r\n var gapBeforeAppt = apptStart - dateUtils.trimTime(new Date(currentDate)).getTime();\r\n var result = cellCount * this.option(\"hoursInterval\") * toMs(\"hour\");\r\n if (!allDay) {\r\n if (currentDate.getHours() < startDayHour) {\r\n tailDelta = tailDuration - hiddenInterval + gapBeforeAppt\r\n } else if (currentDate.getHours() >= startDayHour && currentDate.getHours() < endDayHour) {\r\n tailDelta = tailDuration\r\n } else if (currentDate.getHours() >= startDayHour && currentDate.getHours() >= endDayHour) {\r\n tailDelta = tailDuration - (gapBeforeAppt - endDayHour * toMs(\"hour\"))\r\n } else if (!fullDays) {\r\n result = fullInterval\r\n }\r\n result += tailDelta\r\n }\r\n return result\r\n }\r\n _getWeekendsCount(argument) {\r\n return 0\r\n }\r\n getAllDayContainer() {\r\n return null\r\n }\r\n getTimePanelWidth() {\r\n return 0\r\n }\r\n getIntervalDuration(allDay) {\r\n return this.getCellDuration()\r\n }\r\n getCellMinWidth() {\r\n return 0\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return 0\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n var offset = this.option(\"rtlEnabled\") ? getBoundingRect(this.getScrollableContainer().get(0)).width : 0;\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n setTimeout(() => {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n })\r\n } else {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n }\r\n }\r\n renderRAllDayPanel() {}\r\n renderRTimeTable() {}\r\n _renderGroupAllDayPanel() {}\r\n generateRenderOptions(argument) {\r\n var options = super.generateRenderOptions(true);\r\n return _extends(_extends({}, options), {\r\n isGenerateWeekDaysHeaderData: this._needRenderWeekHeader(),\r\n getDateForHeaderText: getDateForHeaderText\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(TIMELINE_CLASS);\r\n this._$sidebarTable = $(\"<div>\").addClass(GROUP_TABLE_CLASS)\r\n }\r\n _getDefaultGroupStrategy() {\r\n return \"vertical\"\r\n }\r\n _toggleGroupingDirectionClass() {\r\n this.$element().toggleClass(HORIZONTAL_GROUPED_WORKSPACE_CLASS, this._isHorizontalGroupedWorkSpace())\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n groupOrientation: \"vertical\"\r\n })\r\n }\r\n _createWorkSpaceElements() {\r\n this._createWorkSpaceScrollableElements()\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _changeAllDayVisibility() {\r\n return noop()\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"timeCellTemplate\")\r\n }\r\n _renderView() {\r\n var groupCellTemplates;\r\n if (!this.isRenovatedRender()) {\r\n groupCellTemplates = this._renderGroupHeader()\r\n }\r\n this.renderWorkSpace();\r\n if (this.isRenovatedRender()) {\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n this._shader = new HorizontalShader(this);\r\n this._$sidebarTable.appendTo(this._sidebarScrollable.$content());\r\n if (this.isRenovatedRender() && this._isVerticalGroupedWorkSpace()) {\r\n this.renderRGroupPanel()\r\n }\r\n this.updateHeaderEmptyCellWidth();\r\n this._applyCellTemplates(groupCellTemplates)\r\n }\r\n _setHorizontalGroupHeaderCellsHeight() {\r\n return noop()\r\n }\r\n _getTimePanelCells() {\r\n return this.$element().find(\".\".concat(HEADER_PANEL_CELL_CLASS, \":not(.\").concat(HEADER_PANEL_WEEK_CELL_CLASS, \")\"))\r\n }\r\n _getCurrentTimePanelCellIndices() {\r\n var columnCountPerGroup = this._getCellCount();\r\n var today = this._getToday();\r\n var index = this.getCellIndexByDate(today);\r\n var {\r\n columnIndex: currentTimeColumnIndex\r\n } = this._getCellCoordinatesByIndex(index);\r\n if (void 0 === currentTimeColumnIndex) {\r\n return []\r\n }\r\n var horizontalGroupCount = this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate() ? this._getGroupCount() : 1;\r\n return [...new Array(horizontalGroupCount)].map((_, groupIndex) => columnCountPerGroup * groupIndex + currentTimeColumnIndex)\r\n }\r\n _renderTimePanel() {\r\n return noop()\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _createAllDayPanelElements() {\r\n return noop()\r\n }\r\n _renderDateHeader() {\r\n var $headerRow = super._renderDateHeader();\r\n if (this._needRenderWeekHeader()) {\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n var currentDate = new Date(firstViewDate);\r\n var $cells = [];\r\n var groupCount = this._getGroupCount();\r\n var cellCountInDay = this._getCellCountInDay();\r\n var colSpan = this.isGroupedByDate() ? cellCountInDay * groupCount : cellCountInDay;\r\n var cellTemplate = this.option(\"dateCellTemplate\");\r\n var horizontalGroupCount = this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate() ? groupCount : 1;\r\n var cellsInGroup = this.viewDataProvider.viewDataGenerator.daysInInterval * this.option(\"intervalCount\");\r\n var cellsCount = cellsInGroup * horizontalGroupCount;\r\n for (var templateIndex = 0; templateIndex < cellsCount; templateIndex++) {\r\n var $th = $(\"<th>\");\r\n var text = formatWeekdayAndDay(currentDate);\r\n if (cellTemplate) {\r\n var templateOptions = {\r\n model: _extends({\r\n text: text,\r\n date: new Date(currentDate)\r\n }, this._getGroupsForDateHeaderTemplate(templateIndex, colSpan)),\r\n container: $th,\r\n index: templateIndex\r\n };\r\n cellTemplate.render(templateOptions)\r\n } else {\r\n $th.text(text)\r\n }\r\n $th.addClass(HEADER_PANEL_CELL_CLASS).addClass(HEADER_PANEL_WEEK_CELL_CLASS).attr(\"colSpan\", colSpan);\r\n $cells.push($th);\r\n if (templateIndex % cellsInGroup === cellsInGroup - 1) {\r\n currentDate = new Date(firstViewDate)\r\n } else {\r\n this._incrementDate(currentDate)\r\n }\r\n }\r\n var $row = $(\"<tr>\").addClass(HEADER_ROW_CLASS).append($cells);\r\n $headerRow.before($row)\r\n }\r\n }\r\n _renderIndicator(height, rtlOffset, $container, groupCount) {\r\n var $indicator;\r\n var width = this.getIndicationWidth();\r\n if (\"vertical\" === this.option(\"groupOrientation\")) {\r\n $indicator = this._createIndicator($container);\r\n setHeight($indicator, getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width : width)\r\n } else {\r\n for (var i = 0; i < groupCount; i++) {\r\n var offset = this.isGroupedByDate() ? i * this.getCellWidth() : this._getCellCount() * this.getCellWidth() * i;\r\n $indicator = this._createIndicator($container);\r\n setHeight($indicator, getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width - offset : width + offset)\r\n }\r\n }\r\n }\r\n _makeGroupRows(groups, groupByDate) {\r\n var tableCreatorStrategy = \"vertical\" === this.option(\"groupOrientation\") ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupHeaderRowClass: GROUP_ROW_CLASS,\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: GROUP_HEADER_CONTENT_CLASS\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getTotalRowCount(this._getGroupCount()), groupByDate)\r\n }\r\n _setCurrentTimeCells() {\r\n var timePanelCells = this._getTimePanelCells();\r\n var currentTimeCellIndices = this._getCurrentTimePanelCellIndices();\r\n currentTimeCellIndices.forEach(timePanelCellIndex => {\r\n timePanelCells.eq(timePanelCellIndex).addClass(HEADER_CURRENT_TIME_CELL_CLASS)\r\n })\r\n }\r\n _cleanCurrentTimeCells() {\r\n this.$element().find(\".\".concat(HEADER_CURRENT_TIME_CELL_CLASS)).removeClass(HEADER_CURRENT_TIME_CELL_CLASS)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimeline\", SchedulerTimeline);\r\nexport default SchedulerTimeline;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_day.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-day\";\r\nclass SchedulerTimelineDay extends SchedulerTimeline {\r\n get type() {\r\n return VIEWS.TIMELINE_DAY\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _needRenderWeekHeader() {\r\n return this._isWorkSpaceWithCount()\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineDay\", SchedulerTimelineDay);\r\nexport default SchedulerTimelineDay;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n formatWeekdayAndDay\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n getViewStartByOptions\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/month\";\r\nimport dxrDateHeader from \"../../../renovation/ui/scheduler/workspaces/base/header_panel/layout.j\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-month\";\r\nclass SchedulerTimelineMonth extends SchedulerTimeline {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"horizontal\"\r\n }\r\n get type() {\r\n return VIEWS.TIMELINE_MONTH\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return dxrDateHeader\r\n }\r\n _renderView() {\r\n super._renderView();\r\n this._updateScrollable()\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"dateCellTemplate\")\r\n }\r\n _calculateDurationInCells(timeDiff) {\r\n return timeDiff / this.getCellDuration()\r\n }\r\n isIndicatorVisible() {\r\n return true\r\n }\r\n _getFormat() {\r\n return formatWeekdayAndDay\r\n }\r\n _getIntervalBetween(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n }\r\n _getViewStartByOptions() {\r\n return getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this.option(\"intervalCount\"), dateUtils.getFirstMonthDate(this.option(\"startDate\")))\r\n }\r\n generateRenderOptions() {\r\n var options = super.generateRenderOptions(true);\r\n return _extends(_extends({}, options), {\r\n getDateForHeaderText: (_, date) => date\r\n })\r\n }\r\n keepOriginalHours() {\r\n return true\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineMonth\", SchedulerTimelineMonth);\r\nexport default SchedulerTimelineMonth;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-week\";\r\nexport default class SchedulerTimelineWeek extends SchedulerTimeline {\r\n get type() {\r\n return VIEWS.TIMELINE_WEEK\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _getHeaderPanelCellWidth($headerRow) {\r\n return getBoundingRect($headerRow.children().first().get(0)).width\r\n }\r\n _needRenderWeekHeader() {\r\n return true\r\n }\r\n _incrementDate(date) {\r\n date.setDate(date.getDate() + 1)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineWeek\", SchedulerTimelineWeek);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_work_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getWeekendsCount\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/work_week\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimelineWeek from \"./m_timeline_week\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-work-week\";\r\nvar LAST_DAY_WEEK_INDEX = 5;\r\nclass SchedulerTimelineWorkWeek extends SchedulerTimelineWeek {\r\n get type() {\r\n return VIEWS.TIMELINE_WORK_WEEK\r\n }\r\n constructor() {\r\n super(...arguments);\r\n this._getWeekendsCount = getWeekendsCount\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _incrementDate(date) {\r\n var day = date.getDay();\r\n if (day === LAST_DAY_WEEK_INDEX) {\r\n date.setDate(date.getDate() + 2)\r\n }\r\n super._incrementDate(date)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineWorkWeek\", SchedulerTimelineWorkWeek);\r\nexport default SchedulerTimelineWorkWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_vertical.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n formatWeekdayAndDay\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport SchedulerWorkSpaceIndicator from \"./m_work_space_indicator\";\r\nclass SchedulerWorkspaceVertical extends SchedulerWorkSpaceIndicator {\r\n _getFormat() {\r\n return formatWeekdayAndDay\r\n }\r\n generateRenderOptions() {\r\n var options = super.generateRenderOptions();\r\n return _extends(_extends({}, options), {\r\n isGenerateTimePanelData: true\r\n })\r\n }\r\n _isRenderHeaderPanelEmptyCell() {\r\n return true\r\n }\r\n}\r\nexport default SchedulerWorkspaceVertical;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_day.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceVertical from \"./m_work_space_vertical\";\r\nvar DAY_CLASS = \"dx-scheduler-work-space-day\";\r\nclass SchedulerWorkSpaceDay extends SchedulerWorkSpaceVertical {\r\n get type() {\r\n return VIEWS.DAY\r\n }\r\n _getElementClass() {\r\n return DAY_CLASS\r\n }\r\n _renderDateHeader() {\r\n return 1 === this.option(\"intervalCount\") ? null : super._renderDateHeader()\r\n }\r\n renderRHeaderPanel() {\r\n if (1 === this.option(\"intervalCount\")) {\r\n super.renderRHeaderPanel(false)\r\n } else {\r\n super.renderRHeaderPanel(true)\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceDay\", SchedulerWorkSpaceDay);\r\nexport default SchedulerWorkSpaceDay;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/month/date_table/cell.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"allDay\", \"ariaLabel\", \"children\", \"className\", \"contentTemplateProps\", \"dataCellTemplate\", \"endDate\", \"firstDayOfMonth\", \"groupIndex\", \"groups\", \"index\", \"isFirstGroupCell\", \"isFocused\", \"isLastGroupCell\", \"isSelected\", \"otherMonth\", \"startDate\", \"text\", \"today\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../../../utils/combine_classes\";\r\nimport {\r\n DateTableCellBase,\r\n DateTableCellBaseProps\r\n} from \"../../base/date_table/cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n contentTemplateProps: contentTemplateProps,\r\n props: {\r\n dataCellTemplate: dataCellTemplate,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n startDate: startDate,\r\n text: text\r\n }\r\n } = _ref;\r\n return createComponentVNode(2, DateTableCellBase, {\r\n className: classes,\r\n dataCellTemplate: dataCellTemplate,\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n isFocused: isFocused,\r\n contentTemplateProps: contentTemplateProps,\r\n children: createVNode(1, \"div\", \"dx-scheduler-date-table-cell-text\", text, 0)\r\n })\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class MonthDateTableCell extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n get classes() {\r\n var {\r\n className: className,\r\n firstDayOfMonth: firstDayOfMonth,\r\n otherMonth: otherMonth,\r\n today: today\r\n } = this.props;\r\n return combineClasses({\r\n \"dx-scheduler-date-table-other-month\": !!otherMonth,\r\n \"dx-scheduler-date-table-current-date\": !!today,\r\n \"dx-scheduler-date-table-first-of-month\": !!firstDayOfMonth,\r\n [className]: !!className\r\n })\r\n }\r\n get contentTemplateProps() {\r\n if (void 0 !== this.__getterCache.contentTemplateProps) {\r\n return this.__getterCache.contentTemplateProps\r\n }\r\n return this.__getterCache.contentTemplateProps = (() => {\r\n var {\r\n index: index,\r\n text: text\r\n } = this.props;\r\n return {\r\n data: {\r\n text: text\r\n },\r\n index: index\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.index !== nextProps.index || this.props.text !== nextProps.text) {\r\n this.__getterCache.contentTemplateProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n classes: this.classes,\r\n contentTemplateProps: this.contentTemplateProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nMonthDateTableCell.defaultProps = DateTableCellBaseProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/month/date_table/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"addDateTableClass\", \"addVerticalSizesClassToRows\", \"bottomVirtualRowHeight\", \"cellTemplate\", \"dataCellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"tableRef\", \"topVirtualRowHeight\", \"viewData\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n DateTableLayoutBase,\r\n DateTableLayoutProps\r\n} from \"../../base/date_table/layout\";\r\nimport {\r\n MonthDateTableCell\r\n} from \"./cell\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n addDateTableClass: addDateTableClass,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n dataCellTemplate: dataCellTemplate,\r\n groupOrientation: groupOrientation,\r\n tableRef: tableRef,\r\n viewData: viewData,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DateTableLayoutBase, _extends({\r\n viewData: viewData,\r\n groupOrientation: groupOrientation,\r\n addDateTableClass: addDateTableClass,\r\n dataCellTemplate: dataCellTemplate,\r\n cellTemplate: MonthDateTableCell,\r\n tableRef: tableRef,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n width: width\r\n }, restAttributes)))\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class MonthDateTableLayout extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n cellTemplate: getTemplate(props.cellTemplate),\r\n dataCellTemplate: getTemplate(props.dataCellTemplate)\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nMonthDateTableLayout.defaultProps = DateTableLayoutProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/workspaces/month/date_table/layout.j.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../../core/component_registrator\";\r\nimport {\r\n DateTable\r\n} from \"../../../../../component_wrapper/scheduler/date_table\";\r\nimport {\r\n MonthDateTableLayout as MonthDateTableLayoutComponent\r\n} from \"./layout\";\r\nexport default class MonthDateTableLayout extends DateTable {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"cellTemplate\", \"dataCellTemplate\"],\r\n props: [\"cellTemplate\", \"viewData\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return MonthDateTableLayoutComponent\r\n }\r\n}\r\nregisterComponent(\"dxMonthDateTableLayout\", MonthDateTableLayout);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_month.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n formatWeekday\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n getCellText,\r\n getViewStartByOptions\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/month\";\r\nimport dxrMonthDateTableLayout from \"../../../renovation/ui/scheduler/workspaces/month/date_table/layout.j\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport {\r\n utils\r\n} from \"../m_utils\";\r\nimport SchedulerWorkSpace from \"./m_work_space_indicator\";\r\nvar MONTH_CLASS = \"dx-scheduler-work-space-month\";\r\nvar DATE_TABLE_CURRENT_DATE_CLASS = \"dx-scheduler-date-table-current-date\";\r\nvar DATE_TABLE_CELL_TEXT_CLASS = \"dx-scheduler-date-table-cell-text\";\r\nvar DATE_TABLE_FIRST_OF_MONTH_CLASS = \"dx-scheduler-date-table-first-of-month\";\r\nvar DATE_TABLE_OTHER_MONTH_DATE_CLASS = \"dx-scheduler-date-table-other-month\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerWorkSpaceMonth extends SchedulerWorkSpace {\r\n get type() {\r\n return VIEWS.MONTH\r\n }\r\n _getElementClass() {\r\n return MONTH_CLASS\r\n }\r\n _getFormat() {\r\n return formatWeekday\r\n }\r\n _getIntervalBetween(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n }\r\n _getDateGenerationOptions() {\r\n return _extends(_extends({}, super._getDateGenerationOptions()), {\r\n cellCountInDay: 1\r\n })\r\n }\r\n getCellWidth() {\r\n return this.cache.get(\"cellWidth\", () => {\r\n var averageWidth = 0;\r\n var cells = this._getCells().slice(0, 7);\r\n cells.each((index, element) => {\r\n averageWidth += hasWindow() ? getBoundingRect(element).width : 0\r\n });\r\n return 0 === cells.length ? void 0 : averageWidth / 7\r\n })\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n var rowIndex = Math.floor(index / this._getCellCount());\r\n var columnIndex = index - this._getCellCount() * rowIndex;\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n _needCreateCrossScrolling() {\r\n return this.option(\"crossScrollingEnabled\") || this._isVerticalGroupedWorkSpace()\r\n }\r\n _getViewStartByOptions() {\r\n return getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this.option(\"intervalCount\"), dateUtils.getFirstMonthDate(this.option(\"startDate\")))\r\n }\r\n _updateIndex(index) {\r\n return index\r\n }\r\n isIndicationAvailable() {\r\n return false\r\n }\r\n getIntervalDuration() {\r\n return toMs(\"day\")\r\n }\r\n getTimePanelWidth() {\r\n return 0\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n keepOriginalHours() {\r\n return true\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return 0\r\n }\r\n needApplyCollectorOffset() {\r\n return true\r\n }\r\n _getHeaderDate() {\r\n return this._getViewStartByOptions()\r\n }\r\n scrollToTime() {\r\n return noop()\r\n }\r\n renderRAllDayPanel() {}\r\n renderRTimeTable() {}\r\n renderRDateTable() {\r\n utils.renovation.renderComponent(this, this._$dateTable, dxrMonthDateTableLayout, \"renovatedDateTable\", this._getRDateTableProps())\r\n }\r\n _createWorkSpaceElements() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n super._createWorkSpaceElements()\r\n }\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _changeAllDayVisibility() {\r\n return noop()\r\n }\r\n _renderTimePanel() {\r\n return noop()\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _setMonthClassesToCell($cell, data) {\r\n $cell.toggleClass(DATE_TABLE_CURRENT_DATE_CLASS, data.isCurrentDate).toggleClass(DATE_TABLE_FIRST_OF_MONTH_CLASS, data.firstDayOfMonth).toggleClass(DATE_TABLE_OTHER_MONTH_DATE_CLASS, data.otherMonth)\r\n }\r\n _createAllDayPanelElements() {}\r\n _renderTableBody(options) {\r\n options.getCellText = (rowIndex, columnIndex) => {\r\n var date = this.viewDataProvider.completeViewDataMap[rowIndex][columnIndex].startDate;\r\n return getCellText(date, this.option(\"intervalCount\"))\r\n };\r\n options.getCellTextClass = DATE_TABLE_CELL_TEXT_CLASS;\r\n options.setAdditionalClasses = this._setMonthClassesToCell.bind(this);\r\n super._renderTableBody(options)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceMonth\", SchedulerWorkSpaceMonth);\r\nexport default SchedulerWorkSpaceMonth;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n calculateViewStartDate\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/week\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceVertical from \"./m_work_space_vertical\";\r\nvar WEEK_CLASS = \"dx-scheduler-work-space-week\";\r\nclass SchedulerWorkSpaceWeek extends SchedulerWorkSpaceVertical {\r\n get type() {\r\n return VIEWS.WEEK\r\n }\r\n _getElementClass() {\r\n return WEEK_CLASS\r\n }\r\n _calculateViewStartDate() {\r\n return calculateViewStartDate(this.option(\"startDate\"), this._firstDayOfWeek())\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceWeek\", SchedulerWorkSpaceWeek);\r\nexport default SchedulerWorkSpaceWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_work_week.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getWeekendsCount\r\n} from \"../../../renovation/ui/scheduler/view_model/to_test/views/utils/work_week\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceWeek from \"./m_work_space_week\";\r\nvar WORK_WEEK_CLASS = \"dx-scheduler-work-space-work-week\";\r\nclass SchedulerWorkSpaceWorkWeek extends SchedulerWorkSpaceWeek {\r\n get type() {\r\n return VIEWS.WORK_WEEK\r\n }\r\n constructor() {\r\n super(...arguments);\r\n this._getWeekendsCount = getWeekendsCount\r\n }\r\n _getElementClass() {\r\n return WORK_WEEK_CLASS\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceWorkWeek\", SchedulerWorkSpaceWorkWeek);\r\nexport default SchedulerWorkSpaceWorkWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_scheduler.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport config from \"../../core/config\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n getAppointmentTakesAllDay\r\n} from \"../../renovation/ui/scheduler/appointment/utils/getAppointmentTakesAllDay\";\r\nimport {\r\n renovationGetCurrentView\r\n} from \"../../renovation/ui/scheduler/model/untyped_getCurrentView\";\r\nimport {\r\n createTimeZoneCalculator\r\n} from \"../../renovation/ui/scheduler/timeZoneCalculator/createTimeZoneCalculator\";\r\nimport {\r\n getPreparedDataItems\r\n} from \"../../renovation/ui/scheduler/utils/data\";\r\nimport {\r\n excludeFromRecurrence\r\n} from \"../../renovation/ui/scheduler/utils/recurrence/excludeFromRecurrence\";\r\nimport {\r\n isDateAndTimeView as _isDateAndTimeView,\r\n isTimelineView\r\n} from \"../../renovation/ui/scheduler/view_model/to_test/views/utils/base\";\r\nimport {\r\n custom as customDialog\r\n} from \"../../ui/dialog\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../core/utils/date\";\r\nimport {\r\n AppointmentForm\r\n} from \"./appointment_popup/m_form\";\r\nimport {\r\n ACTION_TO_APPOINTMENT,\r\n AppointmentPopup\r\n} from \"./appointment_popup/m_popup\";\r\nimport {\r\n AppointmentDataProvider\r\n} from \"./appointments/data_provider/m_appointment_data_provider\";\r\nimport AppointmentCollection from \"./appointments/m_appointment_collection\";\r\nimport {\r\n renderAppointments\r\n} from \"./appointments/m_render\";\r\nimport {\r\n SchedulerHeader\r\n} from \"./header/m_header\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport AppointmentLayoutManager from \"./m_appointments_layout_manager\";\r\nimport {\r\n CompactAppointmentsHelper\r\n} from \"./m_compact_appointments_helper\";\r\nimport {\r\n VIEWS\r\n} from \"./m_constants\";\r\nimport {\r\n AppointmentTooltipInfo\r\n} from \"./m_data_structures\";\r\nimport {\r\n ExpressionUtils\r\n} from \"./m_expression_utils\";\r\nimport {\r\n hide as hideLoading,\r\n show as showLoading\r\n} from \"./m_loading\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nimport subscribes from \"./m_subscribes\";\r\nimport {\r\n utils\r\n} from \"./m_utils\";\r\nimport timeZoneUtils from \"./m_utils_time_zone\";\r\nimport {\r\n SchedulerOptionsValidator,\r\n SchedulerOptionsValidatorErrorsHandler\r\n} from \"./options_validator/index\";\r\nimport {\r\n AgendaResourceProcessor\r\n} from \"./resources/m_agenda_resource_processor\";\r\nimport {\r\n createExpressions,\r\n createResourceEditorModel as _createResourceEditorModel,\r\n getAppointmentColor,\r\n getCellGroups,\r\n loadResources,\r\n setResourceToAppointment\r\n} from \"./resources/m_utils\";\r\nimport {\r\n DesktopTooltipStrategy\r\n} from \"./tooltip_strategies/m_desktop_tooltip_strategy\";\r\nimport {\r\n MobileTooltipStrategy\r\n} from \"./tooltip_strategies/m_mobile_tooltip_strategy\";\r\nimport SchedulerAgenda from \"./workspaces/m_agenda\";\r\nimport SchedulerTimelineDay from \"./workspaces/m_timeline_day\";\r\nimport SchedulerTimelineMonth from \"./workspaces/m_timeline_month\";\r\nimport SchedulerTimelineWeek from \"./workspaces/m_timeline_week\";\r\nimport SchedulerTimelineWorkWeek from \"./workspaces/m_timeline_work_week\";\r\nimport SchedulerWorkSpaceDay from \"./workspaces/m_work_space_day\";\r\nimport SchedulerWorkSpaceMonth from \"./workspaces/m_work_space_month\";\r\nimport SchedulerWorkSpaceWeek from \"./workspaces/m_work_space_week\";\r\nimport SchedulerWorkSpaceWorkWeek from \"./workspaces/m_work_space_work_week\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DEFAULT_AGENDA_DURATION = 7;\r\nvar WIDGET_CLASS = \"dx-scheduler\";\r\nvar WIDGET_SMALL_CLASS = \"\".concat(WIDGET_CLASS, \"-small\");\r\nvar WIDGET_ADAPTIVE_CLASS = \"\".concat(WIDGET_CLASS, \"-adaptive\");\r\nvar WIDGET_READONLY_CLASS = \"\".concat(WIDGET_CLASS, \"-readonly\");\r\nvar WIDGET_SMALL_WIDTH = 400;\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nvar UTC_FULL_DATE_FORMAT = \"\".concat(FULL_DATE_FORMAT, \"Z\");\r\nvar DEFAULT_APPOINTMENT_TEMPLATE_NAME = \"item\";\r\nvar DEFAULT_APPOINTMENT_COLLECTOR_TEMPLATE_NAME = \"appointmentCollector\";\r\nvar DEFAULT_DROP_DOWN_APPOINTMENT_TEMPLATE_NAME = \"dropDownAppointment\";\r\nvar VIEWS_CONFIG = {\r\n day: {\r\n workSpace: SchedulerWorkSpaceDay,\r\n renderingStrategy: \"vertical\"\r\n },\r\n week: {\r\n workSpace: SchedulerWorkSpaceWeek,\r\n renderingStrategy: \"vertical\"\r\n },\r\n workWeek: {\r\n workSpace: SchedulerWorkSpaceWorkWeek,\r\n renderingStrategy: \"vertical\"\r\n },\r\n month: {\r\n workSpace: SchedulerWorkSpaceMonth,\r\n renderingStrategy: \"horizontalMonth\"\r\n },\r\n timelineDay: {\r\n workSpace: SchedulerTimelineDay,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWeek: {\r\n workSpace: SchedulerTimelineWeek,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWorkWeek: {\r\n workSpace: SchedulerTimelineWorkWeek,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineMonth: {\r\n workSpace: SchedulerTimelineMonth,\r\n renderingStrategy: \"horizontalMonthLine\"\r\n },\r\n agenda: {\r\n workSpace: SchedulerAgenda,\r\n renderingStrategy: \"agenda\"\r\n }\r\n};\r\nvar StoreEventNames = {\r\n ADDING: \"onAppointmentAdding\",\r\n ADDED: \"onAppointmentAdded\",\r\n DELETING: \"onAppointmentDeleting\",\r\n DELETED: \"onAppointmentDeleted\",\r\n UPDATING: \"onAppointmentUpdating\",\r\n UPDATED: \"onAppointmentUpdated\"\r\n};\r\nvar RECURRENCE_EDITING_MODE = {\r\n SERIES: \"editSeries\",\r\n OCCURENCE: \"editOccurence\",\r\n CANCEL: \"cancel\"\r\n};\r\nclass Scheduler extends Widget {\r\n _getDefaultOptions() {\r\n var defaultOptions = extend(super._getDefaultOptions(), {\r\n views: [\"day\", \"week\"],\r\n currentView: \"day\",\r\n currentDate: dateUtils.trimTime(new Date),\r\n min: void 0,\r\n max: void 0,\r\n dateSerializationFormat: void 0,\r\n firstDayOfWeek: void 0,\r\n groups: [],\r\n resources: [],\r\n loadedResources: [],\r\n resourceLoaderMap: new Map,\r\n dataSource: null,\r\n customizeDateNavigatorText: void 0,\r\n appointmentTemplate: DEFAULT_APPOINTMENT_TEMPLATE_NAME,\r\n dropDownAppointmentTemplate: DEFAULT_DROP_DOWN_APPOINTMENT_TEMPLATE_NAME,\r\n appointmentCollectorTemplate: DEFAULT_APPOINTMENT_COLLECTOR_TEMPLATE_NAME,\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n offset: 0,\r\n editing: {\r\n allowAdding: true,\r\n allowDeleting: true,\r\n allowDragging: true,\r\n allowResizing: true,\r\n allowUpdating: true,\r\n allowTimeZoneEditing: false\r\n },\r\n showAllDayPanel: true,\r\n showCurrentTimeIndicator: true,\r\n shadeUntilCurrentTime: false,\r\n indicatorUpdateInterval: 3e5,\r\n indicatorTime: void 0,\r\n recurrenceEditMode: \"dialog\",\r\n cellDuration: 30,\r\n maxAppointmentsPerCell: \"auto\",\r\n selectedCellData: [],\r\n groupByDate: false,\r\n onAppointmentRendered: null,\r\n onAppointmentClick: null,\r\n onAppointmentDblClick: null,\r\n onAppointmentContextMenu: null,\r\n onCellClick: null,\r\n onCellContextMenu: null,\r\n onAppointmentAdding: null,\r\n onAppointmentAdded: null,\r\n onAppointmentUpdating: null,\r\n onAppointmentUpdated: null,\r\n onAppointmentDeleting: null,\r\n onAppointmentDeleted: null,\r\n onAppointmentFormOpening: null,\r\n onAppointmentTooltipShowing: null,\r\n appointmentTooltipTemplate: \"appointmentTooltip\",\r\n appointmentPopupTemplate: \"appointmentPopup\",\r\n crossScrollingEnabled: false,\r\n useDropDownViewSwitcher: false,\r\n startDateExpr: \"startDate\",\r\n endDateExpr: \"endDate\",\r\n textExpr: \"text\",\r\n descriptionExpr: \"description\",\r\n allDayExpr: \"allDay\",\r\n recurrenceRuleExpr: \"recurrenceRule\",\r\n recurrenceExceptionExpr: \"recurrenceException\",\r\n disabledExpr: \"disabled\",\r\n remoteFiltering: false,\r\n timeZone: \"\",\r\n startDateTimeZoneExpr: \"startDateTimeZone\",\r\n endDateTimeZoneExpr: \"endDateTimeZone\",\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n adaptivityEnabled: false,\r\n allowMultipleCellSelection: true,\r\n scrolling: {\r\n mode: \"standard\"\r\n },\r\n allDayPanelMode: \"all\",\r\n renovateRender: true,\r\n _draggingMode: \"outlook\",\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 0\r\n },\r\n _appointmentTooltipButtonsPosition: \"bottom\",\r\n _appointmentTooltipOpenButtonText: messageLocalization.format(\"dxScheduler-openAppointment\"),\r\n _appointmentCountPerCell: 2,\r\n _collectorOffset: 0,\r\n _appointmentOffset: 26,\r\n toolbar: [{\r\n location: \"before\",\r\n defaultElement: \"dateNavigator\"\r\n }, {\r\n location: \"after\",\r\n defaultElement: \"viewSwitcher\"\r\n }]\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n }\r\n get filteredItems() {\r\n if (!this._filteredItems) {\r\n this._filteredItems = []\r\n }\r\n return this._filteredItems\r\n }\r\n set filteredItems(value) {\r\n this._filteredItems = value\r\n }\r\n get preparedItems() {\r\n if (!this._preparedItems) {\r\n this._preparedItems = []\r\n }\r\n return this._preparedItems\r\n }\r\n set preparedItems(value) {\r\n this._preparedItems = value\r\n }\r\n get currentView() {\r\n return renovationGetCurrentView(this.option(\"currentView\"), this.option(\"views\"))\r\n }\r\n get currentViewType() {\r\n return isObject(this.currentView) ? this.currentView.type : this.currentView\r\n }\r\n get timeZoneCalculator() {\r\n if (!this._timeZoneCalculator) {\r\n this._timeZoneCalculator = createTimeZoneCalculator(this.option(\"timeZone\"))\r\n }\r\n return this._timeZoneCalculator\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n dropDownAppointmentTemplate: {\r\n since: \"19.2\",\r\n message: \"appointmentTooltipTemplate\"\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => !devices.current().generic,\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n editing: {\r\n allowDragging: false,\r\n allowResizing: false\r\n }\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n dateCellTemplate(data, index, element) {\r\n var {\r\n text: text\r\n } = data;\r\n text.split(\" \").forEach((text, index) => {\r\n var span = $(\"<span>\").text(text).addClass(\"dx-scheduler-header-panel-cell-date\");\r\n $(element).append(span);\r\n if (!index) {\r\n $(element).append(\" \")\r\n }\r\n })\r\n },\r\n _appointmentTooltipButtonsPosition: \"top\",\r\n _appointmentTooltipOpenButtonText: null,\r\n _appointmentCountPerCell: 1,\r\n _collectorOffset: 20,\r\n _appointmentOffset: 30\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 11\r\n }\r\n }\r\n }])\r\n }\r\n _postponeDataSourceLoading(promise) {\r\n this.postponedOperations.add(\"_reloadDataSource\", this._reloadDataSource.bind(this), promise)\r\n }\r\n _postponeResourceLoading() {\r\n var whenLoaded = this.postponedOperations.add(\"loadResources\", () => {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n return loadResources(groups, this.option(\"resources\"), this.option(\"resourceLoaderMap\"))\r\n });\r\n var resolveCallbacks = new Deferred;\r\n whenLoaded.done(resources => {\r\n this.option(\"loadedResources\", resources);\r\n resolveCallbacks.resolve(resources)\r\n });\r\n this._postponeDataSourceLoading(whenLoaded);\r\n return resolveCallbacks.promise()\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c, _d;\r\n this.validateOptions();\r\n var {\r\n value: value\r\n } = args;\r\n var {\r\n name: name\r\n } = args;\r\n switch (args.name) {\r\n case \"customizeDateNavigatorText\":\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"currentDate\":\r\n value = this._dateOption(name);\r\n value = dateUtils.trimTime(new Date(value));\r\n this.option(\"selectedCellData\", []);\r\n this._workSpace.option(name, new Date(value));\r\n null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(name, new Date(value));\r\n null === (_b = this._header) || void 0 === _b ? void 0 : _b.option(\"startViewDate\", this.getStartViewDate());\r\n this._appointments.option(\"items\", []);\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n this.appointmentDataProvider.setDataSource(this._dataSource);\r\n this._postponeResourceLoading().done(() => {\r\n this._filterAppointmentsByDate();\r\n this._updateOption(\"workSpace\", \"showAllDayPanel\", this.option(\"showAllDayPanel\"))\r\n });\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n value = this._dateOption(name);\r\n this._updateOption(\"header\", name, new Date(value));\r\n this._updateOption(\"workSpace\", name, new Date(value));\r\n break;\r\n case \"views\":\r\n if (this._getCurrentViewOptions()) {\r\n this.repaint()\r\n } else {\r\n null === (_c = this._header) || void 0 === _c ? void 0 : _c.option(name, value)\r\n }\r\n break;\r\n case \"useDropDownViewSwitcher\":\r\n null === (_d = this._header) || void 0 === _d ? void 0 : _d.option(name, value);\r\n break;\r\n case \"currentView\":\r\n this._appointments.option({\r\n items: [],\r\n allowDrag: this._allowDragging(),\r\n allowResize: this._allowResizing(),\r\n itemTemplate: this._getAppointmentTemplate(\"appointmentTemplate\")\r\n });\r\n this._postponeResourceLoading().done(resources => {\r\n var _a;\r\n this._refreshWorkSpace(resources);\r\n null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(this._headerConfig());\r\n this._filterAppointmentsByDate();\r\n this._appointments.option(\"allowAllDayResize\", \"day\" !== value)\r\n });\r\n this.postponedOperations.callPostponedOperations();\r\n break;\r\n case \"appointmentTemplate\":\r\n this._appointments.option(\"itemTemplate\", value);\r\n break;\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n this.repaint();\r\n break;\r\n case \"groups\":\r\n this._postponeResourceLoading().done(resources => {\r\n this._refreshWorkSpace(resources);\r\n this._filterAppointmentsByDate()\r\n });\r\n break;\r\n case \"resources\":\r\n this._dataAccessors.resources = createExpressions(this.option(\"resources\"));\r\n this.agendaResourceProcessor.initializeState(this.option(\"resources\"));\r\n this.updateInstances();\r\n this._postponeResourceLoading().done(resources => {\r\n this._appointments.option(\"items\", []);\r\n this._refreshWorkSpace(resources);\r\n this._filterAppointmentsByDate();\r\n this._createAppointmentPopupForm()\r\n });\r\n break;\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n this.updateInstances();\r\n this._appointments.option(\"items\", []);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.repaint();\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"offset\":\r\n this.updateInstances();\r\n this._appointments.option(\"items\", []);\r\n this._updateOption(\"workSpace\", \"viewOffset\", this.normalizeViewOffsetValue(value));\r\n this._appointments.repaint();\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case StoreEventNames.ADDING:\r\n case StoreEventNames.ADDED:\r\n case StoreEventNames.UPDATING:\r\n case StoreEventNames.UPDATED:\r\n case StoreEventNames.DELETING:\r\n case StoreEventNames.DELETED:\r\n case \"onAppointmentFormOpening\":\r\n case \"onAppointmentTooltipShowing\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"onAppointmentRendered\":\r\n this._appointments.option(\"onItemRendered\", this._getAppointmentRenderedAction());\r\n break;\r\n case \"onAppointmentClick\":\r\n this._appointments.option(\"onItemClick\", this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentDblClick\":\r\n this._appointments.option(name, this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentContextMenu\":\r\n this._appointments.option(\"onItemContextMenu\", this._createActionByOption(name));\r\n this._appointmentTooltip._options.onItemContextMenu = this._createActionByOption(name);\r\n break;\r\n case \"noDataText\":\r\n case \"allowMultipleCellSelection\":\r\n case \"selectedCellData\":\r\n case \"accessKey\":\r\n case \"onCellClick\":\r\n case \"onCellContextMenu\":\r\n this._workSpace.option(name, value);\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._postponeResourceLoading().done(resources => {\r\n this._appointments.option(\"items\", []);\r\n this._refreshWorkSpace(resources);\r\n if (this._readyToRenderAppointments) {\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint())\r\n }\r\n });\r\n break;\r\n case \"cellDuration\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.option(\"items\", []);\r\n if (this._readyToRenderAppointments) {\r\n this._updateOption(\"workSpace\", \"hoursInterval\", value / 60);\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint())\r\n }\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._updateOption(\"header\", name, value);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"width\":\r\n this._updateOption(\"header\", name, value);\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._updateOption(\"workSpace\", \"width\", value)\r\n }\r\n this._updateOption(\"workSpace\", \"schedulerWidth\", value);\r\n super._optionChanged(args);\r\n this._dimensionChanged(null, true);\r\n break;\r\n case \"height\":\r\n super._optionChanged(args);\r\n this._dimensionChanged(null, true);\r\n this._updateOption(\"workSpace\", \"schedulerHeight\", value);\r\n break;\r\n case \"editing\":\r\n this._initEditing();\r\n var editing = this._editing;\r\n this._bringEditingModeToAppointments(editing);\r\n this.hideAppointmentTooltip();\r\n this._cleanPopup();\r\n break;\r\n case \"showAllDayPanel\":\r\n this.updateInstances();\r\n this.repaint();\r\n break;\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n case \"indicatorUpdateInterval\":\r\n case \"shadeUntilCurrentTime\":\r\n case \"groupByDate\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this.repaint();\r\n break;\r\n case \"appointmentDragging\":\r\n case \"appointmentTooltipTemplate\":\r\n case \"appointmentPopupTemplate\":\r\n case \"recurrenceEditMode\":\r\n case \"remoteFiltering\":\r\n case \"timeZone\":\r\n this.updateInstances();\r\n this.repaint();\r\n break;\r\n case \"dropDownAppointmentTemplate\":\r\n case \"appointmentCollectorTemplate\":\r\n case \"_appointmentTooltipOffset\":\r\n case \"_appointmentTooltipButtonsPosition\":\r\n case \"_appointmentTooltipOpenButtonText\":\r\n case \"_appointmentCountPerCell\":\r\n case \"_collectorOffset\":\r\n case \"_appointmentOffset\":\r\n this.repaint();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"maxAppointmentsPerCell\":\r\n break;\r\n case \"startDateExpr\":\r\n case \"endDateExpr\":\r\n case \"startDateTimeZoneExpr\":\r\n case \"endDateTimeZoneExpr\":\r\n case \"textExpr\":\r\n case \"descriptionExpr\":\r\n case \"allDayExpr\":\r\n case \"recurrenceRuleExpr\":\r\n case \"recurrenceExceptionExpr\":\r\n case \"disabledExpr\":\r\n this._updateExpression(name, value);\r\n this.appointmentDataProvider.updateDataAccessors(this._dataAccessors);\r\n this._initAppointmentTemplate();\r\n this.repaint();\r\n break;\r\n case \"adaptivityEnabled\":\r\n this._toggleAdaptiveClass();\r\n this.repaint();\r\n break;\r\n case \"scrolling\":\r\n this.option(\"crossScrollingEnabled\", this._isHorizontalVirtualScrolling() || this.option(\"crossScrollingEnabled\"));\r\n this._updateOption(\"workSpace\", args.fullName, value);\r\n break;\r\n case \"allDayPanelMode\":\r\n this.updateInstances();\r\n this._updateOption(\"workSpace\", args.fullName, value);\r\n break;\r\n case \"renovateRender\":\r\n this._updateOption(\"workSpace\", name, value);\r\n break;\r\n case \"_draggingMode\":\r\n this._workSpace.option(\"draggingMode\", value);\r\n break;\r\n case \"toolbar\":\r\n this._header ? this._header.option(\"items\", value) : this.repaint();\r\n break;\r\n case \"loadedResources\":\r\n case \"resourceLoaderMap\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dateOption(optionName) {\r\n var optionValue = this._getCurrentViewOption(optionName);\r\n return dateSerialization.deserializeDate(optionValue)\r\n }\r\n _getSerializationFormat(optionName) {\r\n var value = this._getCurrentViewOption(optionName);\r\n if (\"number\" === typeof value) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n }\r\n _bringEditingModeToAppointments(editing) {\r\n var editingConfig = {\r\n allowDelete: editing.allowUpdating && editing.allowDeleting\r\n };\r\n if (!this._isAgenda()) {\r\n editingConfig.allowDrag = editing.allowDragging;\r\n editingConfig.allowResize = editing.allowResizing;\r\n editingConfig.allowAllDayResize = editing.allowResizing && this._supportAllDayResizing()\r\n }\r\n this._appointments.option(editingConfig);\r\n this.repaint()\r\n }\r\n _isAgenda() {\r\n return \"agenda\" === this.getLayoutManager().appointmentRenderingStrategyName\r\n }\r\n _allowDragging() {\r\n return this._editing.allowDragging && !this._isAgenda()\r\n }\r\n _allowResizing() {\r\n return this._editing.allowResizing && !this._isAgenda()\r\n }\r\n _allowAllDayResizing() {\r\n return this._editing.allowResizing && this._supportAllDayResizing()\r\n }\r\n _supportAllDayResizing() {\r\n return \"day\" !== this.currentViewType || this.currentView.intervalCount > 1\r\n }\r\n _isAllDayExpanded() {\r\n return this.option(\"showAllDayPanel\") && this.appointmentDataProvider.hasAllDayAppointments(this.filteredItems, this.preparedItems)\r\n }\r\n _getTimezoneOffsetByOption(date) {\r\n return timeZoneUtils.calculateTimezoneByValue(this.option(\"timeZone\"), date)\r\n }\r\n _filterAppointmentsByDate() {\r\n var dateRange = this._workSpace.getDateRange();\r\n var startDate = this.timeZoneCalculator.createDate(dateRange[0], {\r\n path: \"fromGrid\"\r\n });\r\n var endDate = this.timeZoneCalculator.createDate(dateRange[1], {\r\n path: \"fromGrid\"\r\n });\r\n this.appointmentDataProvider.filterByDate(startDate, endDate, this.option(\"remoteFiltering\"), this.option(\"dateSerializationFormat\"))\r\n }\r\n _reloadDataSource() {\r\n var result = new Deferred;\r\n if (this._dataSource) {\r\n this._dataSource.load().done(() => {\r\n hideLoading();\r\n this._fireContentReadyAction(result)\r\n }).fail(() => {\r\n hideLoading();\r\n result.reject()\r\n });\r\n this._dataSource.isLoading() && showLoading({\r\n container: this.$element(),\r\n position: {\r\n of: this.$element()\r\n }\r\n })\r\n } else {\r\n this._fireContentReadyAction(result)\r\n }\r\n return result.promise()\r\n }\r\n _fireContentReadyAction(result) {\r\n var _a;\r\n var contentReadyBase = super._fireContentReadyAction.bind(this);\r\n var fireContentReady = () => {\r\n contentReadyBase();\r\n null === result || void 0 === result ? void 0 : result.resolve()\r\n };\r\n if (this._workSpaceRecalculation) {\r\n null === (_a = this._workSpaceRecalculation) || void 0 === _a ? void 0 : _a.done(() => {\r\n fireContentReady()\r\n })\r\n } else {\r\n fireContentReady()\r\n }\r\n }\r\n _dimensionChanged(value) {\r\n var isForce = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var isFixedHeight = \"number\" === typeof this.option(\"height\");\r\n var isFixedWidth = \"number\" === typeof this.option(\"width\");\r\n if (!this._isVisible()) {\r\n return\r\n }\r\n this._toggleSmallClass();\r\n var workspace = this.getWorkSpace();\r\n if (!this._isAgenda() && this.filteredItems && workspace) {\r\n if (isForce || !isFixedHeight || !isFixedWidth) {\r\n workspace.option(\"allDayExpanded\", this._isAllDayExpanded());\r\n workspace._dimensionChanged();\r\n var appointments = this.getLayoutManager().createAppointmentsMap(this.filteredItems);\r\n this._appointments.option(\"items\", appointments)\r\n }\r\n }\r\n this.hideAppointmentTooltip();\r\n this._appointmentPopup.triggerResize();\r\n this._appointmentPopup.updatePopupFullScreenMode()\r\n }\r\n _clean() {\r\n this._cleanPopup();\r\n super._clean()\r\n }\r\n _toggleSmallClass() {\r\n var {\r\n width: width\r\n } = getBoundingRect(this.$element().get(0));\r\n this.$element().toggleClass(WIDGET_SMALL_CLASS, width < WIDGET_SMALL_WIDTH)\r\n }\r\n _toggleAdaptiveClass() {\r\n this.$element().toggleClass(WIDGET_ADAPTIVE_CLASS, this.option(\"adaptivityEnabled\"))\r\n }\r\n _visibilityChanged(visible) {\r\n visible && this._dimensionChanged(null, true)\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _initAllDayPanel() {\r\n if (\"hidden\" === this.option(\"allDayPanelMode\")) {\r\n this.option(\"showAllDayPanel\", false)\r\n }\r\n }\r\n _init() {\r\n this._initExpressions({\r\n startDate: this.option(\"startDateExpr\"),\r\n endDate: this.option(\"endDateExpr\"),\r\n startDateTimeZone: this.option(\"startDateTimeZoneExpr\"),\r\n endDateTimeZone: this.option(\"endDateTimeZoneExpr\"),\r\n allDay: this.option(\"allDayExpr\"),\r\n text: this.option(\"textExpr\"),\r\n description: this.option(\"descriptionExpr\"),\r\n recurrenceRule: this.option(\"recurrenceRuleExpr\"),\r\n recurrenceException: this.option(\"recurrenceExceptionExpr\"),\r\n disabled: this.option(\"disabledExpr\")\r\n });\r\n super._init();\r\n this._initAllDayPanel();\r\n this._initDataSource();\r\n this._customizeDataSourceLoadOptions();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this._initEditing();\r\n this.updateInstances();\r\n this._initActions();\r\n this._compactAppointmentsHelper = new CompactAppointmentsHelper(this);\r\n this._asyncTemplatesTimers = [];\r\n this._dataSourceLoadedCallback = Callbacks();\r\n this._subscribes = subscribes;\r\n this.agendaResourceProcessor = new AgendaResourceProcessor(this.option(\"resources\"));\r\n this._optionsValidator = new SchedulerOptionsValidator;\r\n this._optionsValidatorErrorHandler = new SchedulerOptionsValidatorErrorsHandler\r\n }\r\n createAppointmentDataProvider() {\r\n var _a;\r\n null === (_a = this.appointmentDataProvider) || void 0 === _a ? void 0 : _a.destroy();\r\n this.appointmentDataProvider = new AppointmentDataProvider({\r\n dataSource: this._dataSource,\r\n dataAccessors: this._dataAccessors,\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n dateSerializationFormat: this.option(\"dateSerializationFormat\"),\r\n resources: this.option(\"resources\"),\r\n startDayHour: this._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this._getCurrentViewOption(\"endDayHour\"),\r\n viewOffset: this.getViewOffsetMs(),\r\n appointmentDuration: this._getCurrentViewOption(\"cellDuration\"),\r\n allDayPanelMode: this._getCurrentViewOption(\"allDayPanelMode\"),\r\n showAllDayPanel: this.option(\"showAllDayPanel\"),\r\n getLoadedResources: () => this.option(\"loadedResources\"),\r\n getIsVirtualScrolling: () => this.isVirtualScrolling(),\r\n getSupportAllDayRow: () => this._workSpace.supportAllDayRow(),\r\n getViewType: () => this._workSpace.type,\r\n getViewDirection: () => this._workSpace.viewDirection,\r\n getDateRange: () => this._workSpace.getDateRange(),\r\n getGroupCount: () => this._workSpace._getGroupCount(),\r\n getViewDataProvider: () => this._workSpace.viewDataProvider\r\n })\r\n }\r\n updateInstances() {\r\n this._timeZoneCalculator = null;\r\n if (this.getWorkSpace()) {\r\n this.createAppointmentDataProvider()\r\n }\r\n }\r\n _customizeDataSourceLoadOptions() {\r\n var _a;\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.on(\"customizeStoreLoadOptions\", _ref => {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = _ref;\r\n storeLoadOptions.startDate = this.getStartViewDate();\r\n storeLoadOptions.endDate = this.getEndViewDate()\r\n })\r\n }\r\n _initTemplates() {\r\n this._initAppointmentTemplate();\r\n this._templateManager.addDefaultTemplates({\r\n appointmentTooltip: new EmptyTemplate,\r\n dropDownAppointment: new EmptyTemplate\r\n });\r\n super._initTemplates()\r\n }\r\n _initAppointmentTemplate() {\r\n var {\r\n expr: expr\r\n } = this._dataAccessors;\r\n var createGetter = property => compileGetter(\"appointmentData.\".concat(property));\r\n var getDate = getter => data => {\r\n var value = getter(data);\r\n if (value instanceof Date) {\r\n return value.valueOf()\r\n }\r\n return value\r\n };\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => this.getAppointmentsInstance()._renderAppointmentTemplate($container, data, model), [\"html\", \"text\", \"startDate\", \"endDate\", \"allDay\", \"description\", \"recurrenceRule\", \"recurrenceException\", \"startDateTimeZone\", \"endDateTimeZone\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: createGetter(expr.textExpr),\r\n startDate: getDate(createGetter(expr.startDateExpr)),\r\n endDate: getDate(createGetter(expr.endDateExpr)),\r\n startDateTimeZone: createGetter(expr.startDateTimeZoneExpr),\r\n endDateTimeZone: createGetter(expr.endDateTimeZoneExpr),\r\n allDay: createGetter(expr.allDayExpr),\r\n recurrenceRule: createGetter(expr.recurrenceRuleExpr)\r\n })\r\n })\r\n }\r\n _renderContent() {\r\n this._renderContentImpl()\r\n }\r\n _updatePreparedItems(items) {\r\n this.preparedItems = getPreparedDataItems(items, this._dataAccessors, this._getCurrentViewOption(\"cellDuration\"), this.timeZoneCalculator)\r\n }\r\n _dataSourceChangedHandler(result) {\r\n if (this._readyToRenderAppointments) {\r\n this._workSpaceRecalculation.done(() => {\r\n this._updatePreparedItems(result);\r\n this._renderAppointments();\r\n this.getWorkSpace().onDataSourceChanged(this.filteredItems)\r\n })\r\n }\r\n }\r\n isVirtualScrolling() {\r\n var _a;\r\n var workspace = this.getWorkSpace();\r\n if (workspace) {\r\n return workspace.isVirtualScrolling()\r\n }\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var scrolling = this.option(\"scrolling\");\r\n return \"virtual\" === (null === scrolling || void 0 === scrolling ? void 0 : scrolling.mode) || \"virtual\" === (null === (_a = null === currentViewOptions || void 0 === currentViewOptions ? void 0 : currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.mode)\r\n }\r\n _filterAppointments() {\r\n this.filteredItems = this.appointmentDataProvider.filter(this.preparedItems)\r\n }\r\n _renderAppointments() {\r\n var workspace = this.getWorkSpace();\r\n this._filterAppointments();\r\n workspace.option(\"allDayExpanded\", this._isAllDayExpanded());\r\n var viewModel = [];\r\n if (this._isVisible()) {\r\n viewModel = this._getAppointmentsToRepaint()\r\n }\r\n if (this.option(\"isRenovatedAppointments\")) {\r\n renderAppointments({\r\n instance: this,\r\n $dateTable: this.getWorkSpace()._getDateTable(),\r\n viewModel: viewModel\r\n })\r\n } else {\r\n this._appointments.option(\"items\", viewModel)\r\n }\r\n this.appointmentDataProvider.cleanState()\r\n }\r\n _getAppointmentsToRepaint() {\r\n var layoutManager = this.getLayoutManager();\r\n var appointmentsMap = layoutManager.createAppointmentsMap(this.filteredItems);\r\n if (this.option(\"isRenovatedAppointments\")) {\r\n var appointmentTemplate = this.option(\"appointmentTemplate\") !== DEFAULT_APPOINTMENT_TEMPLATE_NAME ? this.option(\"appointmentTemplate\") : void 0;\r\n return {\r\n appointments: appointmentsMap,\r\n appointmentTemplate: appointmentTemplate\r\n }\r\n }\r\n return layoutManager.getRepaintedAppointments(appointmentsMap, this.getAppointmentsInstance().option(\"items\"))\r\n }\r\n _initExpressions(fields) {\r\n this._dataAccessors = utils.dataAccessors.create(fields, this._dataAccessors, config().forceIsoDateParsing, this.option(\"dateSerializationFormat\"));\r\n this._dataAccessors.resources = createExpressions(this.option(\"resources\"))\r\n }\r\n _updateExpression(name, value) {\r\n var exprObj = {};\r\n exprObj[name.replace(\"Expr\", \"\")] = value;\r\n this._initExpressions(exprObj)\r\n }\r\n getResourceDataAccessors() {\r\n return this._dataAccessors.resources\r\n }\r\n _initEditing() {\r\n var editing = this.option(\"editing\");\r\n this._editing = {\r\n allowAdding: !!editing,\r\n allowUpdating: !!editing,\r\n allowDeleting: !!editing,\r\n allowResizing: !!editing,\r\n allowDragging: !!editing\r\n };\r\n if (isObject(editing)) {\r\n this._editing = extend(this._editing, editing)\r\n }\r\n this._editing.allowDragging = this._editing.allowDragging && this._editing.allowUpdating;\r\n this._editing.allowResizing = this._editing.allowResizing && this._editing.allowUpdating;\r\n this.$element().toggleClass(WIDGET_READONLY_CLASS, this._isReadOnly())\r\n }\r\n _isReadOnly() {\r\n var result = true;\r\n var editing = this._editing;\r\n for (var prop in editing) {\r\n if (Object.prototype.hasOwnProperty.call(editing, prop)) {\r\n result = result && !editing[prop]\r\n }\r\n }\r\n return result\r\n }\r\n _dispose() {\r\n var _a;\r\n this._appointmentTooltip && this._appointmentTooltip.dispose();\r\n null === (_a = this._recurrenceDialog) || void 0 === _a ? void 0 : _a.hide(RECURRENCE_EDITING_MODE.CANCEL);\r\n this.hideAppointmentPopup();\r\n this.hideAppointmentTooltip();\r\n this._asyncTemplatesTimers.forEach(clearTimeout);\r\n this._asyncTemplatesTimers = [];\r\n super._dispose()\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onAppointmentAdding: this._createActionByOption(StoreEventNames.ADDING),\r\n onAppointmentAdded: this._createActionByOption(StoreEventNames.ADDED),\r\n onAppointmentUpdating: this._createActionByOption(StoreEventNames.UPDATING),\r\n onAppointmentUpdated: this._createActionByOption(StoreEventNames.UPDATED),\r\n onAppointmentDeleting: this._createActionByOption(StoreEventNames.DELETING),\r\n onAppointmentDeleted: this._createActionByOption(StoreEventNames.DELETED),\r\n onAppointmentFormOpening: this._createActionByOption(\"onAppointmentFormOpening\"),\r\n onAppointmentTooltipShowing: this._createActionByOption(\"onAppointmentTooltipShowing\")\r\n }\r\n }\r\n _getAppointmentRenderedAction() {\r\n return this._createActionByOption(\"onAppointmentRendered\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _renderFocusTarget() {\r\n return noop()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._renderMainContainer();\r\n this._renderHeader();\r\n this._layoutManager = new AppointmentLayoutManager(this);\r\n this._appointments = this._createComponent(\"<div>\", AppointmentCollection, this._appointmentsConfig());\r\n this._appointments.option(\"itemTemplate\", this._getAppointmentTemplate(\"appointmentTemplate\"));\r\n this._appointmentTooltip = new(this.option(\"adaptivityEnabled\") ? MobileTooltipStrategy : DesktopTooltipStrategy)(this._getAppointmentTooltipOptions());\r\n this._createAppointmentPopupForm();\r\n if (this._isDataSourceLoaded() || this._isDataSourceLoading()) {\r\n this._initMarkupCore(this.option(\"loadedResources\"));\r\n this._dataSourceChangedHandler(this._dataSource.items());\r\n this._fireContentReadyAction()\r\n } else {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n loadResources(groups, this.option(\"resources\"), this.option(\"resourceLoaderMap\")).done(resources => {\r\n this.option(\"loadedResources\", resources);\r\n this._initMarkupCore(resources);\r\n this._reloadDataSource()\r\n })\r\n }\r\n }\r\n _createAppointmentPopupForm() {\r\n var _a, _b;\r\n if (this._appointmentForm) {\r\n null === (_a = this._appointmentForm.form) || void 0 === _a ? void 0 : _a.dispose()\r\n }\r\n this._appointmentForm = this.createAppointmentForm();\r\n null === (_b = this._appointmentPopup) || void 0 === _b ? void 0 : _b.dispose();\r\n this._appointmentPopup = this.createAppointmentPopup(this._appointmentForm)\r\n }\r\n _renderMainContainer() {\r\n this._mainContainer = $(\"<div>\").addClass(\"dx-scheduler-container\");\r\n this.$element().append(this._mainContainer)\r\n }\r\n createAppointmentForm() {\r\n var scheduler = {\r\n createResourceEditorModel: () => _createResourceEditorModel(this.option(\"resources\"), this.option(\"loadedResources\")),\r\n getDataAccessors: () => this._dataAccessors,\r\n createComponent: (element, component, options) => this._createComponent(element, component, options),\r\n getEditingConfig: () => this._editing,\r\n getFirstDayOfWeek: () => this.option(\"firstDayOfWeek\"),\r\n getStartDayHour: () => this.option(\"startDayHour\"),\r\n getCalculatedEndDate: startDateWithStartHour => this._workSpace.calculateEndDate(startDateWithStartHour),\r\n getTimeZoneCalculator: () => this.timeZoneCalculator\r\n };\r\n return new AppointmentForm(scheduler)\r\n }\r\n createAppointmentPopup(form) {\r\n var scheduler = {\r\n getElement: () => this.$element(),\r\n createComponent: (element, component, options) => this._createComponent(element, component, options),\r\n focus: () => this.focus(),\r\n getResources: () => this.option(\"resources\"),\r\n getEditingConfig: () => this._editing,\r\n getTimeZoneCalculator: () => this.timeZoneCalculator,\r\n getDataAccessors: () => this._dataAccessors,\r\n getAppointmentFormOpening: () => this._actions.onAppointmentFormOpening,\r\n processActionResult: (arg, canceled) => this._processActionResult(arg, canceled),\r\n addAppointment: appointment => this.addAppointment(appointment),\r\n updateAppointment: (sourceAppointment, updatedAppointment) => this.updateAppointment(sourceAppointment, updatedAppointment),\r\n updateScrollPosition: (startDate, resourceItem, inAllDayRow) => {\r\n this._workSpace.updateScrollPosition(startDate, resourceItem, inAllDayRow)\r\n }\r\n };\r\n return new AppointmentPopup(scheduler, form)\r\n }\r\n _getAppointmentTooltipOptions() {\r\n return {\r\n createComponent: this._createComponent.bind(this),\r\n container: this.$element(),\r\n getScrollableContainer: this.getWorkSpaceScrollableContainer.bind(this),\r\n addDefaultTemplates: this._templateManager.addDefaultTemplates.bind(this._templateManager),\r\n getAppointmentTemplate: this._getAppointmentTemplate.bind(this),\r\n showAppointmentPopup: this.showAppointmentPopup.bind(this),\r\n checkAndDeleteAppointment: this.checkAndDeleteAppointment.bind(this),\r\n isAppointmentInAllDayPanel: this.isAppointmentInAllDayPanel.bind(this),\r\n createFormattedDateText: (appointment, targetedAppointment, format) => this.fire(\"getTextAndFormatDate\", appointment, targetedAppointment, format),\r\n getAppointmentDisabled: appointment => createAppointmentAdapter(appointment, this._dataAccessors, this.timeZoneCalculator).disabled,\r\n onItemContextMenu: this._createActionByOption(\"onAppointmentContextMenu\"),\r\n createEventArgs: this._createEventArgs.bind(this)\r\n }\r\n }\r\n _createEventArgs(e) {\r\n var config = {\r\n itemData: e.itemData.appointment,\r\n itemElement: e.itemElement,\r\n targetedAppointment: e.itemData.targetedAppointment\r\n };\r\n return extend({}, this.fire(\"mapAppointmentFields\", config), {\r\n component: e.component,\r\n element: e.element,\r\n event: e.event,\r\n model: e.model\r\n })\r\n }\r\n checkAndDeleteAppointment(appointment, targetedAppointment) {\r\n var targetedAdapter = createAppointmentAdapter(targetedAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var deletingOptions = this.fireOnAppointmentDeleting(appointment, targetedAdapter);\r\n this._checkRecurringAppointment(appointment, targetedAppointment, targetedAdapter.startDate, () => {\r\n this.processDeleteAppointment(appointment, deletingOptions)\r\n }, true)\r\n }\r\n _getExtraAppointmentTooltipOptions() {\r\n return {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n editing: this.option(\"editing\"),\r\n offset: this.option(\"_appointmentTooltipOffset\")\r\n }\r\n }\r\n isAppointmentInAllDayPanel(appointmentData) {\r\n var workSpace = this._workSpace;\r\n var itTakesAllDay = this.appointmentTakesAllDay(appointmentData);\r\n return itTakesAllDay && workSpace.supportAllDayRow() && workSpace.option(\"showAllDayPanel\")\r\n }\r\n _initMarkupCore(resources) {\r\n this._readyToRenderAppointments = hasWindow();\r\n this._workSpace && this._cleanWorkspace();\r\n this._renderWorkSpace(resources);\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(() => {\r\n var _a;\r\n return null === (_a = this._workSpaceRecalculation) || void 0 === _a ? void 0 : _a.resolve()\r\n });\r\n this.createAppointmentDataProvider();\r\n this._filterAppointmentsByDate();\r\n this._validateKeyFieldIfAgendaExist()\r\n }\r\n _isDataSourceLoaded() {\r\n return this._dataSource && this._dataSource.isLoaded()\r\n }\r\n _render() {\r\n var _a;\r\n this._toggleSmallClass();\r\n this._toggleAdaptiveClass();\r\n null === (_a = this.getWorkSpace()) || void 0 === _a ? void 0 : _a.updateHeaderEmptyCellWidth();\r\n super._render()\r\n }\r\n _renderHeader() {\r\n if (0 !== this.option(\"toolbar\").length) {\r\n var $header = $(\"<div>\").appendTo(this._mainContainer);\r\n this._header = this._createComponent($header, SchedulerHeader, this._headerConfig())\r\n }\r\n }\r\n _headerConfig() {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var countConfig = this._getViewCountConfig();\r\n var result = extend({\r\n firstDayOfWeek: this.getFirstDayOfWeek(),\r\n currentView: this.option(\"currentView\"),\r\n isAdaptive: this.option(\"adaptivityEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n useDropDownViewSwitcher: this.option(\"useDropDownViewSwitcher\"),\r\n customizeDateNavigatorText: this.option(\"customizeDateNavigatorText\"),\r\n agendaDuration: currentViewOptions.agendaDuration || DEFAULT_AGENDA_DURATION\r\n }, currentViewOptions);\r\n result.intervalCount = countConfig.intervalCount;\r\n result.views = this.option(\"views\");\r\n result.min = new Date(this._dateOption(\"min\"));\r\n result.max = new Date(this._dateOption(\"max\"));\r\n result.currentDate = dateUtils.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n result.onCurrentViewChange = name => {\r\n this.option(\"currentView\", name)\r\n };\r\n result.onCurrentDateChange = date => {\r\n this.option(\"currentDate\", date)\r\n };\r\n result.items = this.option(\"toolbar\");\r\n result.startViewDate = this.getStartViewDate();\r\n result.todayDate = () => {\r\n var result = this.timeZoneCalculator.createDate(new Date, {\r\n path: \"toGrid\"\r\n });\r\n return result\r\n };\r\n return result\r\n }\r\n _appointmentsConfig() {\r\n var config = {\r\n getResources: () => this.option(\"resources\"),\r\n getResourceDataAccessors: this.getResourceDataAccessors.bind(this),\r\n getAgendaResourceProcessor: () => this.agendaResourceProcessor,\r\n getAppointmentColor: this.createGetAppointmentColor(),\r\n getAppointmentDataProvider: () => this.appointmentDataProvider,\r\n dataAccessors: this._dataAccessors,\r\n observer: this,\r\n onItemRendered: this._getAppointmentRenderedAction(),\r\n onItemClick: this._createActionByOption(\"onAppointmentClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onAppointmentContextMenu\"),\r\n onAppointmentDblClick: this._createActionByOption(\"onAppointmentDblClick\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n allowDrag: this._allowDragging(),\r\n allowDelete: this._editing.allowUpdating && this._editing.allowDeleting,\r\n allowResize: this._allowResizing(),\r\n allowAllDayResize: this._allowAllDayResizing(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n currentView: this.currentView,\r\n groups: this._getCurrentViewOption(\"groups\"),\r\n isRenovatedAppointments: this.option(\"isRenovatedAppointments\"),\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n getResizableStep: () => this._workSpace ? this._workSpace.positionHelper.getResizableStep() : 0,\r\n getDOMElementsMetaData: () => {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.getDOMElementsMetaData()\r\n },\r\n getViewDataProvider: () => {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.viewDataProvider\r\n },\r\n isVerticalViewDirection: () => \"vertical\" === this.getRenderingStrategyInstance().getDirection(),\r\n isVerticalGroupedWorkSpace: () => this._workSpace._isVerticalGroupedWorkSpace(),\r\n isDateAndTimeView: () => _isDateAndTimeView(this._workSpace.type),\r\n onContentReady: () => {\r\n var _a;\r\n null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.option(\"allDayExpanded\", this._isAllDayExpanded())\r\n }\r\n };\r\n return config\r\n }\r\n getCollectorOffset() {\r\n if (this._workSpace.needApplyCollectorOffset() && !this.option(\"adaptivityEnabled\")) {\r\n return this.option(\"_collectorOffset\")\r\n }\r\n return 0\r\n }\r\n getAppointmentDurationInMinutes() {\r\n return this._getCurrentViewOption(\"cellDuration\")\r\n }\r\n _getCurrentViewType() {\r\n return this.currentViewType\r\n }\r\n _renderWorkSpace(groups) {\r\n var _a;\r\n this._readyToRenderAppointments && this._toggleSmallClass();\r\n var $workSpace = $(\"<div>\").appendTo(this._mainContainer);\r\n var countConfig = this._getViewCountConfig();\r\n var workSpaceComponent = VIEWS_CONFIG[this._getCurrentViewType()].workSpace;\r\n var workSpaceConfig = this._workSpaceConfig(groups, countConfig);\r\n this._workSpace = this._createComponent($workSpace, workSpaceComponent, workSpaceConfig);\r\n this._allowDragging() && this._workSpace.initDragBehavior(this, this._all);\r\n this._workSpace._attachTablesEvents();\r\n this._workSpace.getWorkArea().append(this._appointments.$element());\r\n this._recalculateWorkspace();\r\n countConfig.startDate && (null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(\"currentDate\", this._workSpace._getHeaderDate()));\r\n this._appointments.option(\"_collectorOffset\", this.getCollectorOffset())\r\n }\r\n _getViewCountConfig() {\r\n var currentView = this.option(\"currentView\");\r\n var view = this._getViewByName(currentView);\r\n var viewCount = view && view.intervalCount || 1;\r\n var startDate = view && view.startDate || null;\r\n return {\r\n intervalCount: viewCount,\r\n startDate: startDate\r\n }\r\n }\r\n _getViewByName(name) {\r\n var views = this.option(\"views\");\r\n for (var i = 0; i < views.length; i++) {\r\n if (views[i].name === name || views[i].type === name || views[i] === name) {\r\n return views[i]\r\n }\r\n }\r\n }\r\n _recalculateWorkspace() {\r\n this._workSpaceRecalculation = new Deferred;\r\n this._waitAsyncTemplate(() => {\r\n triggerResizeEvent(this._workSpace.$element());\r\n this._workSpace.renderCurrentDateTimeLineAndShader()\r\n })\r\n }\r\n _workSpaceConfig(groups, countConfig) {\r\n var _a;\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var scrolling = this.option(\"scrolling\");\r\n var isVirtualScrolling = \"virtual\" === scrolling.mode || \"virtual\" === (null === (_a = currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.mode);\r\n var horizontalVirtualScrollingAllowed = isVirtualScrolling && (!isDefined(scrolling.orientation) || [\"horizontal\", \"both\"].filter(item => {\r\n var _a;\r\n return scrolling.orientation === item || (null === (_a = currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.orientation) === item\r\n }).length > 0);\r\n var crossScrollingEnabled = this.option(\"crossScrollingEnabled\") || horizontalVirtualScrollingAllowed || isTimelineView(this.currentViewType);\r\n var result = extend({\r\n resources: this.option(\"resources\"),\r\n loadedResources: this.option(\"loadedResources\"),\r\n getFilteredItems: () => this.filteredItems,\r\n getResourceDataAccessors: this.getResourceDataAccessors.bind(this),\r\n noDataText: this.option(\"noDataText\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n viewOffset: this.getViewOffsetMs(),\r\n tabIndex: this.option(\"tabIndex\"),\r\n accessKey: this.option(\"accessKey\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n cellDuration: this.option(\"cellDuration\"),\r\n showAllDayPanel: this.option(\"showAllDayPanel\"),\r\n showCurrentTimeIndicator: this.option(\"showCurrentTimeIndicator\"),\r\n indicatorTime: this.option(\"indicatorTime\"),\r\n indicatorUpdateInterval: this.option(\"indicatorUpdateInterval\"),\r\n shadeUntilCurrentTime: this.option(\"shadeUntilCurrentTime\"),\r\n allDayExpanded: this._appointments.option(\"items\"),\r\n crossScrollingEnabled: crossScrollingEnabled,\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n dateCellTemplate: this.option(\"dateCellTemplate\"),\r\n allowMultipleCellSelection: this.option(\"allowMultipleCellSelection\"),\r\n selectedCellData: this.option(\"selectedCellData\"),\r\n onSelectionChanged: args => {\r\n this.option(\"selectedCellData\", args.selectedCellData)\r\n },\r\n groupByDate: this._getCurrentViewOption(\"groupByDate\"),\r\n scrolling: scrolling,\r\n draggingMode: this.option(\"_draggingMode\"),\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n schedulerHeight: this.option(\"height\"),\r\n schedulerWidth: this.option(\"width\"),\r\n allDayPanelMode: this.option(\"allDayPanelMode\"),\r\n onSelectedCellsClick: this.showAddAppointmentPopup.bind(this),\r\n onRenderAppointments: this._renderAppointments.bind(this),\r\n onShowAllDayPanel: value => this.option(\"showAllDayPanel\", value),\r\n getHeaderHeight: () => utils.DOM.getHeaderHeight(this._header),\r\n onScrollEnd: () => this._appointments.updateResizableArea(),\r\n renovateRender: this._isRenovatedRender(isVirtualScrolling),\r\n isRenovatedAppointments: this.option(\"isRenovatedAppointments\")\r\n }, currentViewOptions);\r\n result.observer = this;\r\n result.intervalCount = countConfig.intervalCount;\r\n result.startDate = countConfig.startDate;\r\n result.groups = groups;\r\n result.onCellClick = this._createActionByOption(\"onCellClick\");\r\n result.onCellContextMenu = this._createActionByOption(\"onCellContextMenu\");\r\n result.currentDate = dateUtils.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n result.hoursInterval = result.cellDuration / 60;\r\n result.allDayExpanded = false;\r\n result.dataCellTemplate = result.dataCellTemplate ? this._getTemplate(result.dataCellTemplate) : null;\r\n result.timeCellTemplate = result.timeCellTemplate ? this._getTemplate(result.timeCellTemplate) : null;\r\n result.resourceCellTemplate = result.resourceCellTemplate ? this._getTemplate(result.resourceCellTemplate) : null;\r\n result.dateCellTemplate = result.dateCellTemplate ? this._getTemplate(result.dateCellTemplate) : null;\r\n result.getAppointmentDataProvider = () => this.appointmentDataProvider;\r\n return result\r\n }\r\n _isRenovatedRender(isVirtualScrolling) {\r\n return this.option(\"renovateRender\") && hasWindow() || isVirtualScrolling\r\n }\r\n _waitAsyncTemplate(callback) {\r\n if (this._options.silent(\"templatesRenderAsynchronously\")) {\r\n var timer = setTimeout(() => {\r\n callback();\r\n clearTimeout(timer)\r\n });\r\n this._asyncTemplatesTimers.push(timer)\r\n } else {\r\n callback()\r\n }\r\n }\r\n _getCurrentViewOptions() {\r\n return this.currentView\r\n }\r\n _getCurrentViewOption(optionName) {\r\n if (this.currentView && void 0 !== this.currentView[optionName]) {\r\n return this.currentView[optionName]\r\n }\r\n return this.option(optionName)\r\n }\r\n _getAppointmentTemplate(optionName) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (currentViewOptions && currentViewOptions[optionName]) {\r\n return this._getTemplate(currentViewOptions[optionName])\r\n }\r\n return this._getTemplateByOption(optionName)\r\n }\r\n _updateOption(viewName, optionName, value) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (!currentViewOptions || !isDefined(currentViewOptions[optionName])) {\r\n this[\"_\".concat(viewName)].option(optionName, value)\r\n }\r\n }\r\n _refreshWorkSpace(groups) {\r\n this._cleanWorkspace();\r\n delete this._workSpace;\r\n this._renderWorkSpace(groups);\r\n if (this._readyToRenderAppointments) {\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(() => this._workSpaceRecalculation.resolve())\r\n }\r\n }\r\n _cleanWorkspace() {\r\n this._appointments.$element().detach();\r\n this._workSpace._dispose();\r\n this._workSpace.$element().remove();\r\n this.option(\"selectedCellData\", [])\r\n }\r\n getWorkSpaceScrollable() {\r\n return this._workSpace.getScrollable()\r\n }\r\n getWorkSpaceScrollableContainer() {\r\n return this._workSpace.getScrollableContainer()\r\n }\r\n getWorkSpace() {\r\n return this._workSpace\r\n }\r\n getHeader() {\r\n return this._header\r\n }\r\n _cleanPopup() {\r\n var _a;\r\n null === (_a = this._appointmentPopup) || void 0 === _a ? void 0 : _a.dispose()\r\n }\r\n _checkRecurringAppointment(rawAppointment, singleAppointment, exceptionDate, callback, isDeleted, isPopupEditing, dragEvent, recurrenceEditMode) {\r\n var recurrenceRule = ExpressionUtils.getField(this._dataAccessors, \"recurrenceRule\", rawAppointment);\r\n if (!getRecurrenceProcessor().evalRecurrenceRule(recurrenceRule).isValid || !this._editing.allowUpdating) {\r\n callback();\r\n return\r\n }\r\n var editMode = recurrenceEditMode || this.option(\"recurrenceEditMode\");\r\n switch (editMode) {\r\n case \"series\":\r\n callback();\r\n break;\r\n case \"occurrence\":\r\n this._excludeAppointmentFromSeries(rawAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent);\r\n break;\r\n default:\r\n if (dragEvent) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n this._showRecurrenceChangeConfirm(isDeleted).done(editingMode => {\r\n editingMode === RECURRENCE_EDITING_MODE.SERIES && callback();\r\n editingMode === RECURRENCE_EDITING_MODE.OCCURENCE && this._excludeAppointmentFromSeries(rawAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent)\r\n }).fail(() => this._appointments.moveAppointmentBack(dragEvent))\r\n }\r\n }\r\n _excludeAppointmentFromSeries(rawAppointment, newRawAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent) {\r\n var appointment = excludeFromRecurrence(rawAppointment, exceptionDate, this._dataAccessors, this._timeZoneCalculator);\r\n var singleRawAppointment = _extends({}, newRawAppointment);\r\n delete singleRawAppointment[this._dataAccessors.expr.recurrenceExceptionExpr];\r\n delete singleRawAppointment[this._dataAccessors.expr.recurrenceRuleExpr];\r\n var keyPropertyName = this.appointmentDataProvider.keyName;\r\n delete singleRawAppointment[keyPropertyName];\r\n var canCreateNewAppointment = !isDeleted && !isPopupEditing;\r\n if (canCreateNewAppointment) {\r\n this.addAppointment(singleRawAppointment)\r\n }\r\n if (isPopupEditing) {\r\n this._appointmentPopup.show(singleRawAppointment, {\r\n isToolbarVisible: true,\r\n action: ACTION_TO_APPOINTMENT.EXCLUDE_FROM_SERIES,\r\n excludeInfo: {\r\n sourceAppointment: rawAppointment,\r\n updatedAppointment: appointment.source()\r\n }\r\n });\r\n this._editAppointmentData = rawAppointment\r\n } else {\r\n this._updateAppointment(rawAppointment, appointment.source(), () => {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }, dragEvent)\r\n }\r\n }\r\n _createRecurrenceException(appointment, exceptionDate) {\r\n var result = [];\r\n if (appointment.recurrenceException) {\r\n result.push(appointment.recurrenceException)\r\n }\r\n result.push(this._getSerializedDate(exceptionDate, appointment.startDate, appointment.allDay));\r\n return result.join()\r\n }\r\n _getSerializedDate(date, startDate, isAllDay) {\r\n isAllDay && date.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds(), startDate.getMilliseconds());\r\n return dateSerialization.serializeDate(date, UTC_FULL_DATE_FORMAT)\r\n }\r\n _showRecurrenceChangeConfirm(isDeleted) {\r\n var title = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteTitle\" : \"dxScheduler-confirmRecurrenceEditTitle\");\r\n var message = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteMessage\" : \"dxScheduler-confirmRecurrenceEditMessage\");\r\n var seriesText = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteSeries\" : \"dxScheduler-confirmRecurrenceEditSeries\");\r\n var occurrenceText = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteOccurrence\" : \"dxScheduler-confirmRecurrenceEditOccurrence\");\r\n this._recurrenceDialog = customDialog({\r\n title: title,\r\n messageHtml: message,\r\n showCloseButton: true,\r\n showTitle: true,\r\n buttons: [{\r\n text: seriesText,\r\n onClick: () => RECURRENCE_EDITING_MODE.SERIES\r\n }, {\r\n text: occurrenceText,\r\n onClick: () => RECURRENCE_EDITING_MODE.OCCURENCE\r\n }],\r\n popupOptions: {\r\n wrapperAttr: {\r\n class: \"dx-dialog\"\r\n }\r\n }\r\n });\r\n return this._recurrenceDialog.show()\r\n }\r\n _getUpdatedData(rawAppointment) {\r\n var viewOffset = this.getViewOffsetMs();\r\n var getConvertedFromGrid = date => {\r\n if (!date) {\r\n return\r\n }\r\n var result = this.timeZoneCalculator.createDate(date, {\r\n path: \"fromGrid\"\r\n });\r\n return dateUtilsTs.addOffsets(result, [-viewOffset])\r\n };\r\n var isValidDate = date => !isNaN(new Date(date).getTime());\r\n var targetCell = this.getTargetCellData();\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var cellStartDate = getConvertedFromGrid(targetCell.startDate);\r\n var cellEndDate = getConvertedFromGrid(targetCell.endDate);\r\n var appointmentStartDate = new Date(appointment.startDate);\r\n appointmentStartDate = dateUtilsTs.addOffsets(appointmentStartDate, [-viewOffset]);\r\n var appointmentEndDate = new Date(appointment.endDate);\r\n appointmentEndDate = dateUtilsTs.addOffsets(appointmentEndDate, [-viewOffset]);\r\n var resultedStartDate = null !== cellStartDate && void 0 !== cellStartDate ? cellStartDate : appointmentStartDate;\r\n if (!isValidDate(appointmentStartDate)) {\r\n appointmentStartDate = resultedStartDate\r\n }\r\n if (!isValidDate(appointmentEndDate)) {\r\n appointmentEndDate = cellEndDate\r\n }\r\n var duration = appointmentEndDate.getTime() - appointmentStartDate.getTime();\r\n var isKeepAppointmentHours = this._workSpace.keepOriginalHours() && isValidDate(appointment.startDate) && isValidDate(cellStartDate);\r\n if (isKeepAppointmentHours) {\r\n var startDate = this.timeZoneCalculator.createDate(appointmentStartDate, {\r\n path: \"toGrid\"\r\n });\r\n var timeInMs = startDate.getTime() - dateUtils.trimTime(startDate).getTime();\r\n var targetCellStartDate = dateUtilsTs.addOffsets(targetCell.startDate, [-viewOffset]);\r\n resultedStartDate = new Date(dateUtils.trimTime(targetCellStartDate).getTime() + timeInMs);\r\n resultedStartDate = this.timeZoneCalculator.createDate(resultedStartDate, {\r\n path: \"fromGrid\"\r\n })\r\n }\r\n var result = createAppointmentAdapter({}, this._dataAccessors, this.timeZoneCalculator);\r\n if (void 0 !== targetCell.allDay) {\r\n result.allDay = targetCell.allDay\r\n }\r\n result.startDate = resultedStartDate;\r\n var resultedEndDate = new Date(resultedStartDate.getTime() + duration);\r\n if (this.appointmentTakesAllDay(rawAppointment) && !result.allDay && this._workSpace.supportAllDayRow()) {\r\n resultedEndDate = this._workSpace.calculateEndDate(resultedStartDate)\r\n }\r\n if (appointment.allDay && !this._workSpace.supportAllDayRow() && !this._workSpace.keepOriginalHours()) {\r\n var dateCopy = new Date(resultedStartDate);\r\n dateCopy.setHours(0);\r\n resultedEndDate = new Date(dateCopy.getTime() + duration);\r\n if (0 !== resultedEndDate.getHours()) {\r\n resultedEndDate.setHours(this._getCurrentViewOption(\"endDayHour\"))\r\n }\r\n }\r\n var timeZoneOffset = timeZoneUtils.getTimezoneOffsetChangeInMs(appointmentStartDate, appointmentEndDate, resultedStartDate, resultedEndDate);\r\n result.endDate = new Date(resultedEndDate.getTime() - timeZoneOffset);\r\n result.startDate = dateUtilsTs.addOffsets(result.startDate, [viewOffset]);\r\n result.endDate = dateUtilsTs.addOffsets(result.endDate, [viewOffset]);\r\n var rawResult = result.source();\r\n setResourceToAppointment(this.option(\"resources\"), this.getResourceDataAccessors(), rawResult, targetCell.groups);\r\n return rawResult\r\n }\r\n getTargetedAppointment(appointment, element) {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n var info = utils.dataAccessors.getAppointmentInfo(element);\r\n var appointmentIndex = $(element).data(this._appointments._itemIndexKey());\r\n var adapter = createAppointmentAdapter(appointment, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAdapter = adapter.clone();\r\n if (this._isAgenda() && adapter.isRecurrent) {\r\n var {\r\n agendaSettings: agendaSettings\r\n } = settings;\r\n targetedAdapter.startDate = ExpressionUtils.getField(this._dataAccessors, \"startDate\", agendaSettings);\r\n targetedAdapter.endDate = ExpressionUtils.getField(this._dataAccessors, \"endDate\", agendaSettings)\r\n } else if (settings) {\r\n targetedAdapter.startDate = info ? info.sourceAppointment.startDate : adapter.startDate;\r\n targetedAdapter.endDate = info ? info.sourceAppointment.endDate : adapter.endDate\r\n }\r\n var rawTargetedAppointment = targetedAdapter.source();\r\n if (element) {\r\n this.setTargetedAppointmentResources(rawTargetedAppointment, element, appointmentIndex)\r\n }\r\n if (info) {\r\n rawTargetedAppointment.displayStartDate = new Date(info.appointment.startDate);\r\n rawTargetedAppointment.displayEndDate = new Date(info.appointment.endDate)\r\n }\r\n return rawTargetedAppointment\r\n }\r\n subscribe(subject, action) {\r\n this._subscribes[subject] = subscribes[subject] = action\r\n }\r\n fire(subject) {\r\n var callback = this._subscribes[subject];\r\n var args = Array.prototype.slice.call(arguments);\r\n if (!isFunction(callback)) {\r\n throw errors.Error(\"E1031\", subject)\r\n }\r\n return callback.apply(this, args.slice(1))\r\n }\r\n getTargetCellData() {\r\n return this._workSpace.getDataByDroppableCell()\r\n }\r\n _updateAppointment(target, rawAppointment, onUpdatePrevented, dragEvent) {\r\n var updatingOptions = {\r\n newData: rawAppointment,\r\n oldData: extend({}, target),\r\n cancel: false\r\n };\r\n var performFailAction = function(err) {\r\n if (onUpdatePrevented) {\r\n onUpdatePrevented.call(this)\r\n }\r\n if (err && \"Error\" === err.name) {\r\n throw err\r\n }\r\n }.bind(this);\r\n this._actions[StoreEventNames.UPDATING](updatingOptions);\r\n if (dragEvent && !isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n return this._processActionResult(updatingOptions, (function(canceled) {\r\n var deferred = new Deferred;\r\n if (!canceled) {\r\n this._expandAllDayPanel(rawAppointment);\r\n try {\r\n deferred = this.appointmentDataProvider.update(target, rawAppointment).done(() => {\r\n dragEvent && dragEvent.cancel.resolve(false)\r\n }).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.UPDATED, storeAppointment)).fail(() => performFailAction())\r\n } catch (err) {\r\n performFailAction(err);\r\n deferred.resolve()\r\n }\r\n } else {\r\n performFailAction();\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }))\r\n }\r\n _processActionResult(actionOptions, callback) {\r\n var deferred = new Deferred;\r\n var resolveCallback = callbackResult => {\r\n when(fromPromise(callbackResult)).always(deferred.resolve)\r\n };\r\n if (isPromise(actionOptions.cancel)) {\r\n when(fromPromise(actionOptions.cancel)).always(cancel => {\r\n if (!isDefined(cancel)) {\r\n cancel = \"rejected\" === actionOptions.cancel.state()\r\n }\r\n resolveCallback(callback.call(this, cancel))\r\n })\r\n } else {\r\n resolveCallback(callback.call(this, actionOptions.cancel))\r\n }\r\n return deferred.promise()\r\n }\r\n _expandAllDayPanel(appointment) {\r\n if (!this._isAllDayExpanded() && this.appointmentTakesAllDay(appointment)) {\r\n this._workSpace.option(\"allDayExpanded\", true)\r\n }\r\n }\r\n _onDataPromiseCompleted(handlerName, storeAppointment, appointment) {\r\n var args = {\r\n appointmentData: appointment || storeAppointment\r\n };\r\n if (storeAppointment instanceof Error) {\r\n args.error = storeAppointment\r\n } else {\r\n this._appointmentPopup.visible && this._appointmentPopup.hide()\r\n }\r\n this._actions[handlerName](args);\r\n this._fireContentReadyAction()\r\n }\r\n getAppointmentsInstance() {\r\n return this._appointments\r\n }\r\n getLayoutManager() {\r\n return this._layoutManager\r\n }\r\n getRenderingStrategyInstance() {\r\n return this.getLayoutManager().getRenderingStrategyInstance()\r\n }\r\n getActions() {\r\n return this._actions\r\n }\r\n appointmentTakesAllDay(rawAppointment) {\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n return getAppointmentTakesAllDay(appointment, this._getCurrentViewOption(\"allDayPanelMode\"))\r\n }\r\n dayHasAppointment(day, rawAppointment, trimTime) {\r\n var getConvertedToTimeZone = date => this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var startDate = new Date(appointment.startDate);\r\n var endDate = new Date(appointment.endDate);\r\n startDate = getConvertedToTimeZone(startDate);\r\n endDate = getConvertedToTimeZone(endDate);\r\n if (day.getTime() === endDate.getTime()) {\r\n return startDate.getTime() === endDate.getTime()\r\n }\r\n if (trimTime) {\r\n day = dateUtils.trimTime(day);\r\n startDate = dateUtils.trimTime(startDate);\r\n endDate = dateUtils.trimTime(endDate)\r\n }\r\n var dayTimeStamp = day.getTime();\r\n var startDateTimeStamp = startDate.getTime();\r\n var endDateTimeStamp = endDate.getTime();\r\n return startDateTimeStamp <= dayTimeStamp && dayTimeStamp <= endDateTimeStamp\r\n }\r\n setTargetedAppointmentResources(rawAppointment, element, appointmentIndex) {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (null === groups || void 0 === groups ? void 0 : groups.length) {\r\n var resourcesSetter = this.getResourceDataAccessors().setter;\r\n var workSpace = this._workSpace;\r\n var getGroups;\r\n var setResourceCallback;\r\n if (this._isAgenda()) {\r\n getGroups = function() {\r\n var apptSettings = this.getLayoutManager()._positionMap[appointmentIndex];\r\n return getCellGroups(apptSettings[0].groupIndex, this.getWorkSpace().option(\"groups\"))\r\n };\r\n setResourceCallback = function(_, group) {\r\n resourcesSetter[group.name](rawAppointment, group.id)\r\n }\r\n } else {\r\n getGroups = function() {\r\n var setting = utils.dataAccessors.getAppointmentSettings(element) || {};\r\n return workSpace.getCellDataByCoordinates({\r\n left: setting.left,\r\n top: setting.top\r\n }).groups\r\n };\r\n setResourceCallback = function(field, value) {\r\n resourcesSetter[field](rawAppointment, value)\r\n }\r\n }\r\n each(getGroups.call(this), setResourceCallback)\r\n }\r\n }\r\n getStartViewDate() {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.getStartViewDate()\r\n }\r\n getEndViewDate() {\r\n return this._workSpace.getEndViewDate()\r\n }\r\n showAddAppointmentPopup(cellData, cellGroups) {\r\n var appointmentAdapter = createAppointmentAdapter({}, this._dataAccessors, this.timeZoneCalculator);\r\n appointmentAdapter.allDay = cellData.allDay;\r\n appointmentAdapter.startDate = this.timeZoneCalculator.createDate(cellData.startDate, {\r\n path: \"fromGrid\"\r\n });\r\n appointmentAdapter.endDate = this.timeZoneCalculator.createDate(cellData.endDate, {\r\n path: \"fromGrid\"\r\n });\r\n var resultAppointment = extend(appointmentAdapter.source(), cellGroups);\r\n this.showAppointmentPopup(resultAppointment, true)\r\n }\r\n showAppointmentPopup(rawAppointment, createNewAppointment, rawTargetedAppointment) {\r\n var newRawTargetedAppointment = _extends({}, rawTargetedAppointment);\r\n if (newRawTargetedAppointment) {\r\n delete newRawTargetedAppointment.displayStartDate;\r\n delete newRawTargetedAppointment.displayEndDate\r\n }\r\n var appointment = createAppointmentAdapter(newRawTargetedAppointment || rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var newTargetedAppointment = extend({}, rawAppointment, newRawTargetedAppointment);\r\n var isCreateAppointment = null !== createNewAppointment && void 0 !== createNewAppointment ? createNewAppointment : isEmptyObject(rawAppointment);\r\n if (isEmptyObject(rawAppointment)) {\r\n rawAppointment = this.createPopupAppointment()\r\n }\r\n if (isCreateAppointment) {\r\n delete this._editAppointmentData;\r\n this._editing.allowAdding && this._appointmentPopup.show(rawAppointment, {\r\n isToolbarVisible: true,\r\n action: ACTION_TO_APPOINTMENT.CREATE\r\n })\r\n } else {\r\n this._checkRecurringAppointment(rawAppointment, newTargetedAppointment, appointment.startDate, () => {\r\n this._editAppointmentData = rawAppointment;\r\n this._appointmentPopup.show(rawAppointment, {\r\n isToolbarVisible: this._editing.allowUpdating,\r\n action: ACTION_TO_APPOINTMENT.UPDATE\r\n })\r\n }, false, true)\r\n }\r\n }\r\n createPopupAppointment() {\r\n var result = {};\r\n var toMs = dateUtils.dateToMilliseconds;\r\n var startDate = new Date(this.option(\"currentDate\"));\r\n var endDate = new Date(startDate.getTime() + this.option(\"cellDuration\") * toMs(\"minute\"));\r\n ExpressionUtils.setField(this._dataAccessors, \"startDate\", result, startDate);\r\n ExpressionUtils.setField(this._dataAccessors, \"endDate\", result, endDate);\r\n return result\r\n }\r\n hideAppointmentPopup(saveChanges) {\r\n var _a;\r\n if (null === (_a = this._appointmentPopup) || void 0 === _a ? void 0 : _a.visible) {\r\n saveChanges && this._appointmentPopup.saveChangesAsync();\r\n this._appointmentPopup.hide()\r\n }\r\n }\r\n showAppointmentTooltip(appointment, element, targetedAppointment) {\r\n if (appointment) {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n var appointmentConfig = {\r\n itemData: targetedAppointment || appointment,\r\n groupIndex: null === settings || void 0 === settings ? void 0 : settings.groupIndex,\r\n groups: this.option(\"groups\")\r\n };\r\n var _getAppointmentColor = this.createGetAppointmentColor();\r\n var deferredColor = _getAppointmentColor(appointmentConfig);\r\n var info = new AppointmentTooltipInfo(appointment, targetedAppointment, deferredColor);\r\n this.showAppointmentTooltipCore(element, [info])\r\n }\r\n }\r\n createGetAppointmentColor() {\r\n return appointmentConfig => {\r\n var resourceConfig = {\r\n resources: this.option(\"resources\"),\r\n dataAccessors: this.getResourceDataAccessors(),\r\n loadedResources: this.option(\"loadedResources\"),\r\n resourceLoaderMap: this.option(\"resourceLoaderMap\")\r\n };\r\n return getAppointmentColor(resourceConfig, appointmentConfig)\r\n }\r\n }\r\n showAppointmentTooltipCore(target, data, options) {\r\n var arg = {\r\n cancel: false,\r\n appointments: data.map(item => {\r\n var result = {\r\n appointmentData: item.appointment,\r\n currentAppointmentData: _extends({}, item.targetedAppointment),\r\n color: item.color\r\n };\r\n if (item.settings.info) {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = item.settings.info.appointment;\r\n result.currentAppointmentData.displayStartDate = startDate;\r\n result.currentAppointmentData.displayEndDate = endDate\r\n }\r\n return result\r\n }),\r\n targetElement: target\r\n };\r\n this._createActionByOption(\"onAppointmentTooltipShowing\")(arg);\r\n if (this._appointmentTooltip.isAlreadyShown(target)) {\r\n this.hideAppointmentTooltip()\r\n } else {\r\n this._processActionResult(arg, canceled => {\r\n !canceled && this._appointmentTooltip.show(target, data, _extends(_extends({}, this._getExtraAppointmentTooltipOptions()), options))\r\n })\r\n }\r\n }\r\n hideAppointmentTooltip() {\r\n this._appointmentTooltip && this._appointmentTooltip.hide()\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n errors.log(\"W0002\", \"dxScheduler\", \"scrollToTime\", \"21.1\", 'Use the \"scrollTo\" method instead');\r\n this._workSpace.scrollToTime(hours, minutes, date)\r\n }\r\n scrollTo(date, groups, allDay) {\r\n this._workSpace.scrollTo(date, groups, allDay)\r\n }\r\n _isHorizontalVirtualScrolling() {\r\n var scrolling = this.option(\"scrolling\");\r\n var {\r\n orientation: orientation,\r\n mode: mode\r\n } = scrolling;\r\n var isVirtualScrolling = \"virtual\" === mode;\r\n return isVirtualScrolling && (\"horizontal\" === orientation || \"both\" === orientation)\r\n }\r\n addAppointment(rawAppointment) {\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n appointment.text = appointment.text || \"\";\r\n var serializedAppointment = appointment.source(true);\r\n var addingOptions = {\r\n appointmentData: serializedAppointment,\r\n cancel: false\r\n };\r\n this._actions[StoreEventNames.ADDING](addingOptions);\r\n return this._processActionResult(addingOptions, canceled => {\r\n if (canceled) {\r\n return (new Deferred).resolve()\r\n }\r\n this._expandAllDayPanel(serializedAppointment);\r\n return this.appointmentDataProvider.add(serializedAppointment).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.ADDED, storeAppointment))\r\n })\r\n }\r\n updateAppointment(target, appointment) {\r\n return this._updateAppointment(target, appointment)\r\n }\r\n deleteAppointment(rawAppointment) {\r\n var deletingOptions = this.fireOnAppointmentDeleting(rawAppointment);\r\n this.processDeleteAppointment(rawAppointment, deletingOptions)\r\n }\r\n fireOnAppointmentDeleting(rawAppointment, targetedAppointmentData) {\r\n var deletingOptions = {\r\n appointmentData: rawAppointment,\r\n targetedAppointmentData: targetedAppointmentData,\r\n cancel: false\r\n };\r\n this._actions[StoreEventNames.DELETING](deletingOptions);\r\n return deletingOptions\r\n }\r\n processDeleteAppointment(rawAppointment, deletingOptions) {\r\n this._processActionResult(deletingOptions, (function(canceled) {\r\n if (!canceled) {\r\n this.appointmentDataProvider.remove(rawAppointment).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.DELETED, storeAppointment, rawAppointment))\r\n }\r\n }))\r\n }\r\n deleteRecurrence(appointment, date, recurrenceEditMode) {\r\n this._checkRecurringAppointment(appointment, {}, date, () => {\r\n this.processDeleteAppointment(appointment, {\r\n cancel: false\r\n })\r\n }, true, false, null, recurrenceEditMode)\r\n }\r\n focus() {\r\n if (this._editAppointmentData) {\r\n this._appointments.focus()\r\n } else {\r\n this._workSpace.focus()\r\n }\r\n }\r\n getFirstDayOfWeek() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n }\r\n _validateKeyFieldIfAgendaExist() {\r\n if (!this.appointmentDataProvider.isDataSourceInit) {\r\n return\r\n }\r\n var hasAgendaView = !!this._getViewByName(\"agenda\");\r\n var isKeyExist = !!this.appointmentDataProvider.keyName;\r\n if (hasAgendaView && !isKeyExist) {\r\n errors.log(\"W1023\")\r\n }\r\n }\r\n _getDragBehavior() {\r\n return this._workSpace.dragBehavior\r\n }\r\n getViewOffsetMs() {\r\n var offsetFromOptions = this._getCurrentViewOption(\"offset\");\r\n return this.normalizeViewOffsetValue(offsetFromOptions)\r\n }\r\n normalizeViewOffsetValue(viewOffset) {\r\n if (!isDefined(viewOffset) || this.currentViewType === VIEWS.AGENDA) {\r\n return 0\r\n }\r\n return viewOffset * toMs(\"minute\")\r\n }\r\n validateOptions() {\r\n var currentViewOptions = _extends(_extends({}, this.option()), {\r\n startDayHour: this._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this._getCurrentViewOption(\"endDayHour\"),\r\n offset: this._getCurrentViewOption(\"offset\"),\r\n cellDuration: this._getCurrentViewOption(\"cellDuration\")\r\n });\r\n var validationResult = this._optionsValidator.validate(currentViewOptions);\r\n this._optionsValidatorErrorHandler.handleValidationResult(validationResult)\r\n }\r\n}\r\nScheduler.include(DataHelperMixin);\r\nregisterComponent(\"dxScheduler\", Scheduler);\r\nexport default Scheduler;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/timeZoneCalculator/createTimeZoneCalculator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TimeZoneCalculator\r\n} from \"./utils\";\r\nimport timeZoneUtils from \"../../../../__internal/scheduler/m_utils_time_zone\";\r\nexport var createTimeZoneCalculator = currentTimeZone => new TimeZoneCalculator({\r\n getClientOffset: date => timeZoneUtils.getClientTimezoneOffset(date),\r\n tryGetCommonOffset: date => timeZoneUtils.calculateTimezoneByValue(currentTimeZone, date),\r\n tryGetAppointmentOffset: (date, appointmentTimezone) => timeZoneUtils.calculateTimezoneByValue(appointmentTimezone, date)\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/utils/data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n replaceWrongEndDate\r\n} from \"../../../../__internal/scheduler/appointments/data_provider/m_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../../../__internal/scheduler/m_appointment_adapter\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar RECURRENCE_FREQ = \"freq\";\r\nexport var getPreparedDataItems = (dataItems, dataAccessors, cellDurationInMinutes, timeZoneCalculator) => {\r\n var result = [];\r\n null === dataItems || void 0 === dataItems ? void 0 : dataItems.forEach(rawAppointment => {\r\n var _recurrenceRule$match;\r\n var startDate = new Date(dataAccessors.getter.startDate(rawAppointment));\r\n var endDate = new Date(dataAccessors.getter.endDate(rawAppointment));\r\n replaceWrongEndDate(rawAppointment, startDate, endDate, cellDurationInMinutes, dataAccessors);\r\n var adapter = createAppointmentAdapter(rawAppointment, dataAccessors, timeZoneCalculator);\r\n var comparableStartDate = adapter.startDate && adapter.calculateStartDate(\"toGrid\");\r\n var comparableEndDate = adapter.endDate && adapter.calculateEndDate(\"toGrid\");\r\n var regex = new RegExp(RECURRENCE_FREQ, \"gi\");\r\n var recurrenceRule = adapter.recurrenceRule;\r\n var hasRecurrenceRule = !!(null !== recurrenceRule && void 0 !== recurrenceRule && null !== (_recurrenceRule$match = recurrenceRule.match(regex)) && void 0 !== _recurrenceRule$match && _recurrenceRule$match.length);\r\n var visible = isDefined(rawAppointment.visible) ? !!rawAppointment.visible : true;\r\n if (comparableStartDate && comparableEndDate) {\r\n result.push({\r\n allDay: !!adapter.allDay,\r\n startDate: comparableStartDate,\r\n startDateTimeZone: rawAppointment.startDateTimeZone,\r\n endDate: comparableEndDate,\r\n endDateTimeZone: rawAppointment.endDateTimeZone,\r\n recurrenceRule: adapter.recurrenceRule,\r\n recurrenceException: adapter.recurrenceException,\r\n hasRecurrenceRule: hasRecurrenceRule,\r\n visible: visible,\r\n rawAppointment: rawAppointment\r\n })\r\n }\r\n });\r\n return result\r\n};\r\nexport var resolveDataItems = options => Array.isArray(options) ? options : options.data;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_render.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport dxrAppointmentLayout from \"../../../renovation/ui/scheduler/appointment/layout.j\";\r\nimport {\r\n utils\r\n} from \"../m_utils\";\r\nexport var renderAppointments = options => {\r\n var {\r\n instance: instance,\r\n $dateTable: $dateTable,\r\n viewModel: viewModel\r\n } = options;\r\n var container = getAppointmentsContainer($dateTable);\r\n utils.renovation.renderComponent(instance, container, dxrAppointmentLayout, \"renovatedAppointments\", viewModel)\r\n};\r\nvar getAppointmentsContainer = $dateTable => {\r\n var container = $(\".dx-appointments-container\");\r\n if (0 === container.length) {\r\n container = $(\"<div>\").addClass(\"dx-appointments-container\").appendTo($dateTable)\r\n }\r\n return container\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scheduler/model/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var getAppointmentRenderingStrategyName = viewType => {\r\n var {\r\n renderingStrategy: renderingStrategy\r\n } = {\r\n day: {\r\n renderingStrategy: \"vertical\"\r\n },\r\n week: {\r\n renderingStrategy: \"week\"\r\n },\r\n workWeek: {\r\n renderingStrategy: \"week\"\r\n },\r\n month: {\r\n renderingStrategy: \"horizontalMonth\"\r\n },\r\n timelineDay: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWeek: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWorkWeek: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineMonth: {\r\n renderingStrategy: \"horizontalMonthLine\"\r\n },\r\n agenda: {\r\n renderingStrategy: \"agenda\"\r\n }\r\n } [viewType];\r\n return renderingStrategy\r\n};\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxScheduler from 'devextreme/ui/scheduler';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiResourceComponent, DxiViewComponent, DxoAppointmentDraggingModule, DxoEditingModule, DxiResourceModule, DxoScrollingModule, DxiViewModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxScheduler]\r\n\r\n */\r\nclass DxSchedulerComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'appointmentAdded', emit: 'onAppointmentAdded' },\r\n { subscribe: 'appointmentAdding', emit: 'onAppointmentAdding' },\r\n { subscribe: 'appointmentClick', emit: 'onAppointmentClick' },\r\n { subscribe: 'appointmentContextMenu', emit: 'onAppointmentContextMenu' },\r\n { subscribe: 'appointmentDblClick', emit: 'onAppointmentDblClick' },\r\n { subscribe: 'appointmentDeleted', emit: 'onAppointmentDeleted' },\r\n { subscribe: 'appointmentDeleting', emit: 'onAppointmentDeleting' },\r\n { subscribe: 'appointmentFormOpening', emit: 'onAppointmentFormOpening' },\r\n { subscribe: 'appointmentRendered', emit: 'onAppointmentRendered' },\r\n { subscribe: 'appointmentTooltipShowing', emit: 'onAppointmentTooltipShowing' },\r\n { subscribe: 'appointmentUpdated', emit: 'onAppointmentUpdated' },\r\n { subscribe: 'appointmentUpdating', emit: 'onAppointmentUpdating' },\r\n { subscribe: 'cellClick', emit: 'onCellClick' },\r\n { subscribe: 'cellContextMenu', emit: 'onCellContextMenu' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'adaptivityEnabledChange' },\r\n { emit: 'allDayExprChange' },\r\n { emit: 'allDayPanelModeChange' },\r\n { emit: 'appointmentCollectorTemplateChange' },\r\n { emit: 'appointmentDraggingChange' },\r\n { emit: 'appointmentTemplateChange' },\r\n { emit: 'appointmentTooltipTemplateChange' },\r\n { emit: 'cellDurationChange' },\r\n { emit: 'crossScrollingEnabledChange' },\r\n { emit: 'currentDateChange' },\r\n { emit: 'currentViewChange' },\r\n { emit: 'customizeDateNavigatorTextChange' },\r\n { emit: 'dataCellTemplateChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'dateCellTemplateChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'descriptionExprChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'dropDownAppointmentTemplateChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'endDateExprChange' },\r\n { emit: 'endDateTimeZoneExprChange' },\r\n { emit: 'endDayHourChange' },\r\n { emit: 'firstDayOfWeekChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupByDateChange' },\r\n { emit: 'groupsChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'indicatorUpdateIntervalChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'maxAppointmentsPerCellChange' },\r\n { emit: 'minChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'offsetChange' },\r\n { emit: 'recurrenceEditModeChange' },\r\n { emit: 'recurrenceExceptionExprChange' },\r\n { emit: 'recurrenceRuleExprChange' },\r\n { emit: 'remoteFilteringChange' },\r\n { emit: 'resourceCellTemplateChange' },\r\n { emit: 'resourcesChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollingChange' },\r\n { emit: 'selectedCellDataChange' },\r\n { emit: 'shadeUntilCurrentTimeChange' },\r\n { emit: 'showAllDayPanelChange' },\r\n { emit: 'showCurrentTimeIndicatorChange' },\r\n { emit: 'startDateExprChange' },\r\n { emit: 'startDateTimeZoneExprChange' },\r\n { emit: 'startDayHourChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textExprChange' },\r\n { emit: 'timeCellTemplateChange' },\r\n { emit: 'timeZoneChange' },\r\n { emit: 'useDropDownViewSwitcherChange' },\r\n { emit: 'viewsChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.adaptivityEnabled]\r\n \r\n */\r\n get adaptivityEnabled() {\r\n return this._getOption('adaptivityEnabled');\r\n }\r\n set adaptivityEnabled(value) {\r\n this._setOption('adaptivityEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.allDayExpr]\r\n \r\n */\r\n get allDayExpr() {\r\n return this._getOption('allDayExpr');\r\n }\r\n set allDayExpr(value) {\r\n this._setOption('allDayExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.allDayPanelMode]\r\n \r\n */\r\n get allDayPanelMode() {\r\n return this._getOption('allDayPanelMode');\r\n }\r\n set allDayPanelMode(value) {\r\n this._setOption('allDayPanelMode', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.appointmentCollectorTemplate]\r\n \r\n */\r\n get appointmentCollectorTemplate() {\r\n return this._getOption('appointmentCollectorTemplate');\r\n }\r\n set appointmentCollectorTemplate(value) {\r\n this._setOption('appointmentCollectorTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.appointmentDragging]\r\n \r\n */\r\n get appointmentDragging() {\r\n return this._getOption('appointmentDragging');\r\n }\r\n set appointmentDragging(value) {\r\n this._setOption('appointmentDragging', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.appointmentTemplate]\r\n \r\n */\r\n get appointmentTemplate() {\r\n return this._getOption('appointmentTemplate');\r\n }\r\n set appointmentTemplate(value) {\r\n this._setOption('appointmentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.appointmentTooltipTemplate]\r\n \r\n */\r\n get appointmentTooltipTemplate() {\r\n return this._getOption('appointmentTooltipTemplate');\r\n }\r\n set appointmentTooltipTemplate(value) {\r\n this._setOption('appointmentTooltipTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.cellDuration]\r\n \r\n */\r\n get cellDuration() {\r\n return this._getOption('cellDuration');\r\n }\r\n set cellDuration(value) {\r\n this._setOption('cellDuration', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.crossScrollingEnabled]\r\n \r\n */\r\n get crossScrollingEnabled() {\r\n return this._getOption('crossScrollingEnabled');\r\n }\r\n set crossScrollingEnabled(value) {\r\n this._setOption('crossScrollingEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.currentDate]\r\n \r\n */\r\n get currentDate() {\r\n return this._getOption('currentDate');\r\n }\r\n set currentDate(value) {\r\n this._setOption('currentDate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.currentView]\r\n \r\n */\r\n get currentView() {\r\n return this._getOption('currentView');\r\n }\r\n set currentView(value) {\r\n this._setOption('currentView', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.customizeDateNavigatorText]\r\n \r\n */\r\n get customizeDateNavigatorText() {\r\n return this._getOption('customizeDateNavigatorText');\r\n }\r\n set customizeDateNavigatorText(value) {\r\n this._setOption('customizeDateNavigatorText', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.dataCellTemplate]\r\n \r\n */\r\n get dataCellTemplate() {\r\n return this._getOption('dataCellTemplate');\r\n }\r\n set dataCellTemplate(value) {\r\n this._setOption('dataCellTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.dateCellTemplate]\r\n \r\n */\r\n get dateCellTemplate() {\r\n return this._getOption('dateCellTemplate');\r\n }\r\n set dateCellTemplate(value) {\r\n this._setOption('dateCellTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.descriptionExpr]\r\n \r\n */\r\n get descriptionExpr() {\r\n return this._getOption('descriptionExpr');\r\n }\r\n set descriptionExpr(value) {\r\n this._setOption('descriptionExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.dropDownAppointmentTemplate]\r\n \r\n * @deprecated [depNote:dxSchedulerOptions.dropDownAppointmentTemplate]\r\n \r\n */\r\n get dropDownAppointmentTemplate() {\r\n return this._getOption('dropDownAppointmentTemplate');\r\n }\r\n set dropDownAppointmentTemplate(value) {\r\n this._setOption('dropDownAppointmentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.editing]\r\n \r\n */\r\n get editing() {\r\n return this._getOption('editing');\r\n }\r\n set editing(value) {\r\n this._setOption('editing', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.endDateExpr]\r\n \r\n */\r\n get endDateExpr() {\r\n return this._getOption('endDateExpr');\r\n }\r\n set endDateExpr(value) {\r\n this._setOption('endDateExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.endDateTimeZoneExpr]\r\n \r\n */\r\n get endDateTimeZoneExpr() {\r\n return this._getOption('endDateTimeZoneExpr');\r\n }\r\n set endDateTimeZoneExpr(value) {\r\n this._setOption('endDateTimeZoneExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.endDayHour]\r\n \r\n */\r\n get endDayHour() {\r\n return this._getOption('endDayHour');\r\n }\r\n set endDayHour(value) {\r\n this._setOption('endDayHour', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.firstDayOfWeek]\r\n \r\n */\r\n get firstDayOfWeek() {\r\n return this._getOption('firstDayOfWeek');\r\n }\r\n set firstDayOfWeek(value) {\r\n this._setOption('firstDayOfWeek', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.groupByDate]\r\n \r\n */\r\n get groupByDate() {\r\n return this._getOption('groupByDate');\r\n }\r\n set groupByDate(value) {\r\n this._setOption('groupByDate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.groups]\r\n \r\n */\r\n get groups() {\r\n return this._getOption('groups');\r\n }\r\n set groups(value) {\r\n this._setOption('groups', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.indicatorUpdateInterval]\r\n \r\n */\r\n get indicatorUpdateInterval() {\r\n return this._getOption('indicatorUpdateInterval');\r\n }\r\n set indicatorUpdateInterval(value) {\r\n this._setOption('indicatorUpdateInterval', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.maxAppointmentsPerCell]\r\n \r\n */\r\n get maxAppointmentsPerCell() {\r\n return this._getOption('maxAppointmentsPerCell');\r\n }\r\n set maxAppointmentsPerCell(value) {\r\n this._setOption('maxAppointmentsPerCell', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.offset]\r\n \r\n */\r\n get offset() {\r\n return this._getOption('offset');\r\n }\r\n set offset(value) {\r\n this._setOption('offset', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.recurrenceEditMode]\r\n \r\n */\r\n get recurrenceEditMode() {\r\n return this._getOption('recurrenceEditMode');\r\n }\r\n set recurrenceEditMode(value) {\r\n this._setOption('recurrenceEditMode', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.recurrenceExceptionExpr]\r\n \r\n */\r\n get recurrenceExceptionExpr() {\r\n return this._getOption('recurrenceExceptionExpr');\r\n }\r\n set recurrenceExceptionExpr(value) {\r\n this._setOption('recurrenceExceptionExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.recurrenceRuleExpr]\r\n \r\n */\r\n get recurrenceRuleExpr() {\r\n return this._getOption('recurrenceRuleExpr');\r\n }\r\n set recurrenceRuleExpr(value) {\r\n this._setOption('recurrenceRuleExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.remoteFiltering]\r\n \r\n */\r\n get remoteFiltering() {\r\n return this._getOption('remoteFiltering');\r\n }\r\n set remoteFiltering(value) {\r\n this._setOption('remoteFiltering', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.resourceCellTemplate]\r\n \r\n */\r\n get resourceCellTemplate() {\r\n return this._getOption('resourceCellTemplate');\r\n }\r\n set resourceCellTemplate(value) {\r\n this._setOption('resourceCellTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.resources]\r\n \r\n */\r\n get resources() {\r\n return this._getOption('resources');\r\n }\r\n set resources(value) {\r\n this._setOption('resources', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.scrolling]\r\n \r\n */\r\n get scrolling() {\r\n return this._getOption('scrolling');\r\n }\r\n set scrolling(value) {\r\n this._setOption('scrolling', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.selectedCellData]\r\n \r\n */\r\n get selectedCellData() {\r\n return this._getOption('selectedCellData');\r\n }\r\n set selectedCellData(value) {\r\n this._setOption('selectedCellData', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.shadeUntilCurrentTime]\r\n \r\n */\r\n get shadeUntilCurrentTime() {\r\n return this._getOption('shadeUntilCurrentTime');\r\n }\r\n set shadeUntilCurrentTime(value) {\r\n this._setOption('shadeUntilCurrentTime', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.showAllDayPanel]\r\n \r\n */\r\n get showAllDayPanel() {\r\n return this._getOption('showAllDayPanel');\r\n }\r\n set showAllDayPanel(value) {\r\n this._setOption('showAllDayPanel', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.showCurrentTimeIndicator]\r\n \r\n */\r\n get showCurrentTimeIndicator() {\r\n return this._getOption('showCurrentTimeIndicator');\r\n }\r\n set showCurrentTimeIndicator(value) {\r\n this._setOption('showCurrentTimeIndicator', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.startDateExpr]\r\n \r\n */\r\n get startDateExpr() {\r\n return this._getOption('startDateExpr');\r\n }\r\n set startDateExpr(value) {\r\n this._setOption('startDateExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.startDateTimeZoneExpr]\r\n \r\n */\r\n get startDateTimeZoneExpr() {\r\n return this._getOption('startDateTimeZoneExpr');\r\n }\r\n set startDateTimeZoneExpr(value) {\r\n this._setOption('startDateTimeZoneExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.startDayHour]\r\n \r\n */\r\n get startDayHour() {\r\n return this._getOption('startDayHour');\r\n }\r\n set startDayHour(value) {\r\n this._setOption('startDayHour', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.textExpr]\r\n \r\n */\r\n get textExpr() {\r\n return this._getOption('textExpr');\r\n }\r\n set textExpr(value) {\r\n this._setOption('textExpr', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.timeCellTemplate]\r\n \r\n */\r\n get timeCellTemplate() {\r\n return this._getOption('timeCellTemplate');\r\n }\r\n set timeCellTemplate(value) {\r\n this._setOption('timeCellTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.timeZone]\r\n \r\n */\r\n get timeZone() {\r\n return this._getOption('timeZone');\r\n }\r\n set timeZone(value) {\r\n this._setOption('timeZone', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.useDropDownViewSwitcher]\r\n \r\n */\r\n get useDropDownViewSwitcher() {\r\n return this._getOption('useDropDownViewSwitcher');\r\n }\r\n set useDropDownViewSwitcher(value) {\r\n this._setOption('useDropDownViewSwitcher', value);\r\n }\r\n /**\r\n * [descr:dxSchedulerOptions.views]\r\n \r\n */\r\n get views() {\r\n return this._getOption('views');\r\n }\r\n set views(value) {\r\n this._setOption('views', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get resourcesChildren() {\r\n return this._getOption('resources');\r\n }\r\n set resourcesChildren(value) {\r\n this.setChildren('resources', value);\r\n }\r\n get viewsChildren() {\r\n return this._getOption('views');\r\n }\r\n set viewsChildren(value) {\r\n this.setChildren('views', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxScheduler(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('groups', changes);\r\n this.setupChanges('resources', changes);\r\n this.setupChanges('selectedCellData', changes);\r\n this.setupChanges('views', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('groups');\r\n this._idh.doCheck('resources');\r\n this._idh.doCheck('selectedCellData');\r\n this._idh.doCheck('views');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSchedulerComponent.ɵfac = function DxSchedulerComponent_Factory(t) { return new (t || DxSchedulerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSchedulerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSchedulerComponent, selectors: [[\"dx-scheduler\"]], contentQueries: function DxSchedulerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiResourceComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiViewComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resourcesChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", adaptivityEnabled: \"adaptivityEnabled\", allDayExpr: \"allDayExpr\", allDayPanelMode: \"allDayPanelMode\", appointmentCollectorTemplate: \"appointmentCollectorTemplate\", appointmentDragging: \"appointmentDragging\", appointmentTemplate: \"appointmentTemplate\", appointmentTooltipTemplate: \"appointmentTooltipTemplate\", cellDuration: \"cellDuration\", crossScrollingEnabled: \"crossScrollingEnabled\", currentDate: \"currentDate\", currentView: \"currentView\", customizeDateNavigatorText: \"customizeDateNavigatorText\", dataCellTemplate: \"dataCellTemplate\", dataSource: \"dataSource\", dateCellTemplate: \"dateCellTemplate\", dateSerializationFormat: \"dateSerializationFormat\", descriptionExpr: \"descriptionExpr\", disabled: \"disabled\", dropDownAppointmentTemplate: \"dropDownAppointmentTemplate\", editing: \"editing\", elementAttr: \"elementAttr\", endDateExpr: \"endDateExpr\", endDateTimeZoneExpr: \"endDateTimeZoneExpr\", endDayHour: \"endDayHour\", firstDayOfWeek: \"firstDayOfWeek\", focusStateEnabled: \"focusStateEnabled\", groupByDate: \"groupByDate\", groups: \"groups\", height: \"height\", hint: \"hint\", indicatorUpdateInterval: \"indicatorUpdateInterval\", max: \"max\", maxAppointmentsPerCell: \"maxAppointmentsPerCell\", min: \"min\", noDataText: \"noDataText\", offset: \"offset\", recurrenceEditMode: \"recurrenceEditMode\", recurrenceExceptionExpr: \"recurrenceExceptionExpr\", recurrenceRuleExpr: \"recurrenceRuleExpr\", remoteFiltering: \"remoteFiltering\", resourceCellTemplate: \"resourceCellTemplate\", resources: \"resources\", rtlEnabled: \"rtlEnabled\", scrolling: \"scrolling\", selectedCellData: \"selectedCellData\", shadeUntilCurrentTime: \"shadeUntilCurrentTime\", showAllDayPanel: \"showAllDayPanel\", showCurrentTimeIndicator: \"showCurrentTimeIndicator\", startDateExpr: \"startDateExpr\", startDateTimeZoneExpr: \"startDateTimeZoneExpr\", startDayHour: \"startDayHour\", tabIndex: \"tabIndex\", textExpr: \"textExpr\", timeCellTemplate: \"timeCellTemplate\", timeZone: \"timeZone\", useDropDownViewSwitcher: \"useDropDownViewSwitcher\", views: \"views\", visible: \"visible\", width: \"width\" }, outputs: { onAppointmentAdded: \"onAppointmentAdded\", onAppointmentAdding: \"onAppointmentAdding\", onAppointmentClick: \"onAppointmentClick\", onAppointmentContextMenu: \"onAppointmentContextMenu\", onAppointmentDblClick: \"onAppointmentDblClick\", onAppointmentDeleted: \"onAppointmentDeleted\", onAppointmentDeleting: \"onAppointmentDeleting\", onAppointmentFormOpening: \"onAppointmentFormOpening\", onAppointmentRendered: \"onAppointmentRendered\", onAppointmentTooltipShowing: \"onAppointmentTooltipShowing\", onAppointmentUpdated: \"onAppointmentUpdated\", onAppointmentUpdating: \"onAppointmentUpdating\", onCellClick: \"onCellClick\", onCellContextMenu: \"onCellContextMenu\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", adaptivityEnabledChange: \"adaptivityEnabledChange\", allDayExprChange: \"allDayExprChange\", allDayPanelModeChange: \"allDayPanelModeChange\", appointmentCollectorTemplateChange: \"appointmentCollectorTemplateChange\", appointmentDraggingChange: \"appointmentDraggingChange\", appointmentTemplateChange: \"appointmentTemplateChange\", appointmentTooltipTemplateChange: \"appointmentTooltipTemplateChange\", cellDurationChange: \"cellDurationChange\", crossScrollingEnabledChange: \"crossScrollingEnabledChange\", currentDateChange: \"currentDateChange\", currentViewChange: \"currentViewChange\", customizeDateNavigatorTextChange: \"customizeDateNavigatorTextChange\", dataCellTemplateChange: \"dataCellTemplateChange\", dataSourceChange: \"dataSourceChange\", dateCellTemplateChange: \"dateCellTemplateChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", descriptionExprChange: \"descriptionExprChange\", disabledChange: \"disabledChange\", dropDownAppointmentTemplateChange: \"dropDownAppointmentTemplateChange\", editingChange: \"editingChange\", elementAttrChange: \"elementAttrChange\", endDateExprChange: \"endDateExprChange\", endDateTimeZoneExprChange: \"endDateTimeZoneExprChange\", endDayHourChange: \"endDayHourChange\", firstDayOfWeekChange: \"firstDayOfWeekChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupByDateChange: \"groupByDateChange\", groupsChange: \"groupsChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", indicatorUpdateIntervalChange: \"indicatorUpdateIntervalChange\", maxChange: \"maxChange\", maxAppointmentsPerCellChange: \"maxAppointmentsPerCellChange\", minChange: \"minChange\", noDataTextChange: \"noDataTextChange\", offsetChange: \"offsetChange\", recurrenceEditModeChange: \"recurrenceEditModeChange\", recurrenceExceptionExprChange: \"recurrenceExceptionExprChange\", recurrenceRuleExprChange: \"recurrenceRuleExprChange\", remoteFilteringChange: \"remoteFilteringChange\", resourceCellTemplateChange: \"resourceCellTemplateChange\", resourcesChange: \"resourcesChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollingChange: \"scrollingChange\", selectedCellDataChange: \"selectedCellDataChange\", shadeUntilCurrentTimeChange: \"shadeUntilCurrentTimeChange\", showAllDayPanelChange: \"showAllDayPanelChange\", showCurrentTimeIndicatorChange: \"showCurrentTimeIndicatorChange\", startDateExprChange: \"startDateExprChange\", startDateTimeZoneExprChange: \"startDateTimeZoneExprChange\", startDayHourChange: \"startDayHourChange\", tabIndexChange: \"tabIndexChange\", textExprChange: \"textExprChange\", timeCellTemplateChange: \"timeCellTemplateChange\", timeZoneChange: \"timeZoneChange\", useDropDownViewSwitcherChange: \"useDropDownViewSwitcherChange\", viewsChange: \"viewsChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSchedulerComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSchedulerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-scheduler',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], adaptivityEnabled: [{\r\n type: Input\r\n }], allDayExpr: [{\r\n type: Input\r\n }], allDayPanelMode: [{\r\n type: Input\r\n }], appointmentCollectorTemplate: [{\r\n type: Input\r\n }], appointmentDragging: [{\r\n type: Input\r\n }], appointmentTemplate: [{\r\n type: Input\r\n }], appointmentTooltipTemplate: [{\r\n type: Input\r\n }], cellDuration: [{\r\n type: Input\r\n }], crossScrollingEnabled: [{\r\n type: Input\r\n }], currentDate: [{\r\n type: Input\r\n }], currentView: [{\r\n type: Input\r\n }], customizeDateNavigatorText: [{\r\n type: Input\r\n }], dataCellTemplate: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], dateCellTemplate: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], descriptionExpr: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], dropDownAppointmentTemplate: [{\r\n type: Input\r\n }], editing: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], endDateExpr: [{\r\n type: Input\r\n }], endDateTimeZoneExpr: [{\r\n type: Input\r\n }], endDayHour: [{\r\n type: Input\r\n }], firstDayOfWeek: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], groupByDate: [{\r\n type: Input\r\n }], groups: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], indicatorUpdateInterval: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], maxAppointmentsPerCell: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], offset: [{\r\n type: Input\r\n }], recurrenceEditMode: [{\r\n type: Input\r\n }], recurrenceExceptionExpr: [{\r\n type: Input\r\n }], recurrenceRuleExpr: [{\r\n type: Input\r\n }], remoteFiltering: [{\r\n type: Input\r\n }], resourceCellTemplate: [{\r\n type: Input\r\n }], resources: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrolling: [{\r\n type: Input\r\n }], selectedCellData: [{\r\n type: Input\r\n }], shadeUntilCurrentTime: [{\r\n type: Input\r\n }], showAllDayPanel: [{\r\n type: Input\r\n }], showCurrentTimeIndicator: [{\r\n type: Input\r\n }], startDateExpr: [{\r\n type: Input\r\n }], startDateTimeZoneExpr: [{\r\n type: Input\r\n }], startDayHour: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], textExpr: [{\r\n type: Input\r\n }], timeCellTemplate: [{\r\n type: Input\r\n }], timeZone: [{\r\n type: Input\r\n }], useDropDownViewSwitcher: [{\r\n type: Input\r\n }], views: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onAppointmentAdded: [{\r\n type: Output\r\n }], onAppointmentAdding: [{\r\n type: Output\r\n }], onAppointmentClick: [{\r\n type: Output\r\n }], onAppointmentContextMenu: [{\r\n type: Output\r\n }], onAppointmentDblClick: [{\r\n type: Output\r\n }], onAppointmentDeleted: [{\r\n type: Output\r\n }], onAppointmentDeleting: [{\r\n type: Output\r\n }], onAppointmentFormOpening: [{\r\n type: Output\r\n }], onAppointmentRendered: [{\r\n type: Output\r\n }], onAppointmentTooltipShowing: [{\r\n type: Output\r\n }], onAppointmentUpdated: [{\r\n type: Output\r\n }], onAppointmentUpdating: [{\r\n type: Output\r\n }], onCellClick: [{\r\n type: Output\r\n }], onCellContextMenu: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], adaptivityEnabledChange: [{\r\n type: Output\r\n }], allDayExprChange: [{\r\n type: Output\r\n }], allDayPanelModeChange: [{\r\n type: Output\r\n }], appointmentCollectorTemplateChange: [{\r\n type: Output\r\n }], appointmentDraggingChange: [{\r\n type: Output\r\n }], appointmentTemplateChange: [{\r\n type: Output\r\n }], appointmentTooltipTemplateChange: [{\r\n type: Output\r\n }], cellDurationChange: [{\r\n type: Output\r\n }], crossScrollingEnabledChange: [{\r\n type: Output\r\n }], currentDateChange: [{\r\n type: Output\r\n }], currentViewChange: [{\r\n type: Output\r\n }], customizeDateNavigatorTextChange: [{\r\n type: Output\r\n }], dataCellTemplateChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], dateCellTemplateChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], descriptionExprChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], dropDownAppointmentTemplateChange: [{\r\n type: Output\r\n }], editingChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], endDateExprChange: [{\r\n type: Output\r\n }], endDateTimeZoneExprChange: [{\r\n type: Output\r\n }], endDayHourChange: [{\r\n type: Output\r\n }], firstDayOfWeekChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupByDateChange: [{\r\n type: Output\r\n }], groupsChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], indicatorUpdateIntervalChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], maxAppointmentsPerCellChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], offsetChange: [{\r\n type: Output\r\n }], recurrenceEditModeChange: [{\r\n type: Output\r\n }], recurrenceExceptionExprChange: [{\r\n type: Output\r\n }], recurrenceRuleExprChange: [{\r\n type: Output\r\n }], remoteFilteringChange: [{\r\n type: Output\r\n }], resourceCellTemplateChange: [{\r\n type: Output\r\n }], resourcesChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollingChange: [{\r\n type: Output\r\n }], selectedCellDataChange: [{\r\n type: Output\r\n }], shadeUntilCurrentTimeChange: [{\r\n type: Output\r\n }], showAllDayPanelChange: [{\r\n type: Output\r\n }], showCurrentTimeIndicatorChange: [{\r\n type: Output\r\n }], startDateExprChange: [{\r\n type: Output\r\n }], startDateTimeZoneExprChange: [{\r\n type: Output\r\n }], startDayHourChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textExprChange: [{\r\n type: Output\r\n }], timeCellTemplateChange: [{\r\n type: Output\r\n }], timeZoneChange: [{\r\n type: Output\r\n }], useDropDownViewSwitcherChange: [{\r\n type: Output\r\n }], viewsChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], resourcesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiResourceComponent]\r\n }], viewsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiViewComponent]\r\n }] }); })();\r\nclass DxSchedulerModule {\r\n}\r\n/** @nocollapse */ DxSchedulerModule.ɵfac = function DxSchedulerModule_Factory(t) { return new (t || DxSchedulerModule)(); };\r\n/** @nocollapse */ DxSchedulerModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSchedulerModule });\r\n/** @nocollapse */ DxSchedulerModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSchedulerModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSchedulerComponent\r\n ],\r\n exports: [\r\n DxSchedulerComponent,\r\n DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSchedulerModule, { declarations: [DxSchedulerComponent], imports: [DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSchedulerComponent, DxoAppointmentDraggingModule,\r\n DxoEditingModule,\r\n DxiResourceModule,\r\n DxoScrollingModule,\r\n DxiViewModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSchedulerComponent, DxSchedulerModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxScrollView from 'devextreme/ui/scroll_view';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxScrollView]\r\n\r\n */\r\nclass DxScrollViewComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'pullDown', emit: 'onPullDown' },\r\n { subscribe: 'reachBottom', emit: 'onReachBottom' },\r\n { subscribe: 'scroll', emit: 'onScroll' },\r\n { subscribe: 'updated', emit: 'onUpdated' },\r\n { emit: 'bounceEnabledChange' },\r\n { emit: 'directionChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'pulledDownTextChange' },\r\n { emit: 'pullingDownTextChange' },\r\n { emit: 'reachBottomTextChange' },\r\n { emit: 'refreshingTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollByContentChange' },\r\n { emit: 'scrollByThumbChange' },\r\n { emit: 'showScrollbarChange' },\r\n { emit: 'useNativeChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.bounceEnabled]\r\n \r\n */\r\n get bounceEnabled() {\r\n return this._getOption('bounceEnabled');\r\n }\r\n set bounceEnabled(value) {\r\n this._setOption('bounceEnabled', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.direction]\r\n \r\n */\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxScrollViewOptions.pulledDownText]\r\n \r\n */\r\n get pulledDownText() {\r\n return this._getOption('pulledDownText');\r\n }\r\n set pulledDownText(value) {\r\n this._setOption('pulledDownText', value);\r\n }\r\n /**\r\n * [descr:dxScrollViewOptions.pullingDownText]\r\n \r\n */\r\n get pullingDownText() {\r\n return this._getOption('pullingDownText');\r\n }\r\n set pullingDownText(value) {\r\n this._setOption('pullingDownText', value);\r\n }\r\n /**\r\n * [descr:dxScrollViewOptions.reachBottomText]\r\n \r\n */\r\n get reachBottomText() {\r\n return this._getOption('reachBottomText');\r\n }\r\n set reachBottomText(value) {\r\n this._setOption('reachBottomText', value);\r\n }\r\n /**\r\n * [descr:dxScrollViewOptions.refreshingText]\r\n \r\n */\r\n get refreshingText() {\r\n return this._getOption('refreshingText');\r\n }\r\n set refreshingText(value) {\r\n this._setOption('refreshingText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.scrollByContent]\r\n \r\n */\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.scrollByThumb]\r\n \r\n */\r\n get scrollByThumb() {\r\n return this._getOption('scrollByThumb');\r\n }\r\n set scrollByThumb(value) {\r\n this._setOption('scrollByThumb', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.showScrollbar]\r\n \r\n */\r\n get showScrollbar() {\r\n return this._getOption('showScrollbar');\r\n }\r\n set showScrollbar(value) {\r\n this._setOption('showScrollbar', value);\r\n }\r\n /**\r\n * [descr:dxScrollableOptions.useNative]\r\n \r\n */\r\n get useNative() {\r\n return this._getOption('useNative');\r\n }\r\n set useNative(value) {\r\n this._setOption('useNative', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxScrollView(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxScrollViewComponent.ɵfac = function DxScrollViewComponent_Factory(t) { return new (t || DxScrollViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxScrollViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxScrollViewComponent, selectors: [[\"dx-scroll-view\"]], inputs: { bounceEnabled: \"bounceEnabled\", direction: \"direction\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", pulledDownText: \"pulledDownText\", pullingDownText: \"pullingDownText\", reachBottomText: \"reachBottomText\", refreshingText: \"refreshingText\", rtlEnabled: \"rtlEnabled\", scrollByContent: \"scrollByContent\", scrollByThumb: \"scrollByThumb\", showScrollbar: \"showScrollbar\", useNative: \"useNative\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onPullDown: \"onPullDown\", onReachBottom: \"onReachBottom\", onScroll: \"onScroll\", onUpdated: \"onUpdated\", bounceEnabledChange: \"bounceEnabledChange\", directionChange: \"directionChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", pulledDownTextChange: \"pulledDownTextChange\", pullingDownTextChange: \"pullingDownTextChange\", reachBottomTextChange: \"reachBottomTextChange\", refreshingTextChange: \"refreshingTextChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollByContentChange: \"scrollByContentChange\", scrollByThumbChange: \"scrollByThumbChange\", showScrollbarChange: \"showScrollbarChange\", useNativeChange: \"useNativeChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxScrollViewComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxScrollViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-scroll-view',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { bounceEnabled: [{\r\n type: Input\r\n }], direction: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], pulledDownText: [{\r\n type: Input\r\n }], pullingDownText: [{\r\n type: Input\r\n }], reachBottomText: [{\r\n type: Input\r\n }], refreshingText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollByContent: [{\r\n type: Input\r\n }], scrollByThumb: [{\r\n type: Input\r\n }], showScrollbar: [{\r\n type: Input\r\n }], useNative: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPullDown: [{\r\n type: Output\r\n }], onReachBottom: [{\r\n type: Output\r\n }], onScroll: [{\r\n type: Output\r\n }], onUpdated: [{\r\n type: Output\r\n }], bounceEnabledChange: [{\r\n type: Output\r\n }], directionChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], pulledDownTextChange: [{\r\n type: Output\r\n }], pullingDownTextChange: [{\r\n type: Output\r\n }], reachBottomTextChange: [{\r\n type: Output\r\n }], refreshingTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollByContentChange: [{\r\n type: Output\r\n }], scrollByThumbChange: [{\r\n type: Output\r\n }], showScrollbarChange: [{\r\n type: Output\r\n }], useNativeChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxScrollViewModule {\r\n}\r\n/** @nocollapse */ DxScrollViewModule.ɵfac = function DxScrollViewModule_Factory(t) { return new (t || DxScrollViewModule)(); };\r\n/** @nocollapse */ DxScrollViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxScrollViewModule });\r\n/** @nocollapse */ DxScrollViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxScrollViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxScrollViewComponent\r\n ],\r\n exports: [\r\n DxScrollViewComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxScrollViewModule, { declarations: [DxScrollViewComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxScrollViewComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxScrollViewComponent, DxScrollViewModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxSelectBox from 'devextreme/ui/select_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiItemComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxSelectBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxSelectBox]\r\n\r\n */\r\nclass DxSelectBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'customItemCreating', emit: 'onCustomItemCreating' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'customItemCreateEventChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'displayValueChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldTemplateChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupedChange' },\r\n { emit: 'groupTemplateChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'minSearchLengthChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'searchEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDataBeforeSearchChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'showSelectionControlsChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useItemTextAsTitleChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapItemTextChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.customItemCreateEvent]\r\n \r\n */\r\n get customItemCreateEvent() {\r\n return this._getOption('customItemCreateEvent');\r\n }\r\n set customItemCreateEvent(value) {\r\n this._setOption('customItemCreateEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.displayValue]\r\n \r\n */\r\n get displayValue() {\r\n return this._getOption('displayValue');\r\n }\r\n set displayValue(value) {\r\n this._setOption('displayValue', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.fieldTemplate]\r\n \r\n */\r\n get fieldTemplate() {\r\n return this._getOption('fieldTemplate');\r\n }\r\n set fieldTemplate(value) {\r\n this._setOption('fieldTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.grouped]\r\n \r\n */\r\n get grouped() {\r\n return this._getOption('grouped');\r\n }\r\n set grouped(value) {\r\n this._setOption('grouped', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.groupTemplate]\r\n \r\n */\r\n get groupTemplate() {\r\n return this._getOption('groupTemplate');\r\n }\r\n set groupTemplate(value) {\r\n this._setOption('groupTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.minSearchLength]\r\n \r\n */\r\n get minSearchLength() {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchEnabled]\r\n \r\n */\r\n get searchEnabled() {\r\n return this._getOption('searchEnabled');\r\n }\r\n set searchEnabled(value) {\r\n this._setOption('searchEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.showDataBeforeSearch]\r\n \r\n */\r\n get showDataBeforeSearch() {\r\n return this._getOption('showDataBeforeSearch');\r\n }\r\n set showDataBeforeSearch(value) {\r\n this._setOption('showDataBeforeSearch', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.showSelectionControls]\r\n \r\n */\r\n get showSelectionControls() {\r\n return this._getOption('showSelectionControls');\r\n }\r\n set showSelectionControls(value) {\r\n this._setOption('showSelectionControls', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.useItemTextAsTitle]\r\n \r\n */\r\n get useItemTextAsTitle() {\r\n return this._getOption('useItemTextAsTitle');\r\n }\r\n set useItemTextAsTitle(value) {\r\n this._setOption('useItemTextAsTitle', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.valueChangeEvent]\r\n \r\n * @deprecated [depNote:dxSelectBoxOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.wrapItemText]\r\n \r\n */\r\n get wrapItemText() {\r\n return this._getOption('wrapItemText');\r\n }\r\n set wrapItemText(value) {\r\n this._setOption('wrapItemText', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxSelectBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('searchExpr', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('searchExpr');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSelectBoxComponent.ɵfac = function DxSelectBoxComponent_Factory(t) { return new (t || DxSelectBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSelectBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSelectBoxComponent, selectors: [[\"dx-select-box\"]], contentQueries: function DxSelectBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxSelectBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxSelectBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxSelectBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", customItemCreateEvent: \"customItemCreateEvent\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayExpr: \"displayExpr\", displayValue: \"displayValue\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", fieldTemplate: \"fieldTemplate\", focusStateEnabled: \"focusStateEnabled\", grouped: \"grouped\", groupTemplate: \"groupTemplate\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", itemTemplate: \"itemTemplate\", label: \"label\", labelMode: \"labelMode\", maxLength: \"maxLength\", minSearchLength: \"minSearchLength\", name: \"name\", noDataText: \"noDataText\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", searchEnabled: \"searchEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchTimeout: \"searchTimeout\", selectedItem: \"selectedItem\", showClearButton: \"showClearButton\", showDataBeforeSearch: \"showDataBeforeSearch\", showDropDownButton: \"showDropDownButton\", showSelectionControls: \"showSelectionControls\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useItemTextAsTitle: \"useItemTextAsTitle\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\", wrapItemText: \"wrapItemText\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCustomItemCreating: \"onCustomItemCreating\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onItemClick: \"onItemClick\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onSelectionChanged: \"onSelectionChanged\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonsChange: \"buttonsChange\", customItemCreateEventChange: \"customItemCreateEventChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", displayValueChange: \"displayValueChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", fieldTemplateChange: \"fieldTemplateChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupedChange: \"groupedChange\", groupTemplateChange: \"groupTemplateChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxLengthChange: \"maxLengthChange\", minSearchLengthChange: \"minSearchLengthChange\", nameChange: \"nameChange\", noDataTextChange: \"noDataTextChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", searchEnabledChange: \"searchEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchTimeoutChange: \"searchTimeoutChange\", selectedItemChange: \"selectedItemChange\", showClearButtonChange: \"showClearButtonChange\", showDataBeforeSearchChange: \"showDataBeforeSearchChange\", showDropDownButtonChange: \"showDropDownButtonChange\", showSelectionControlsChange: \"showSelectionControlsChange\", spellcheckChange: \"spellcheckChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", useItemTextAsTitleChange: \"useItemTextAsTitleChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapItemTextChange: \"wrapItemTextChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSelectBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSelectBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-select-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], customItemCreateEvent: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], displayValue: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fieldTemplate: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], grouped: [{\r\n type: Input\r\n }], groupTemplate: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], minSearchLength: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], searchEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDataBeforeSearch: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], showSelectionControls: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useItemTextAsTitle: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapItemText: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCustomItemCreating: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], customItemCreateEventChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], displayValueChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldTemplateChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupedChange: [{\r\n type: Output\r\n }], groupTemplateChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], minSearchLengthChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], searchEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDataBeforeSearchChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], showSelectionControlsChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useItemTextAsTitleChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapItemTextChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxSelectBoxModule {\r\n}\r\n/** @nocollapse */ DxSelectBoxModule.ɵfac = function DxSelectBoxModule_Factory(t) { return new (t || DxSelectBoxModule)(); };\r\n/** @nocollapse */ DxSelectBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSelectBoxModule });\r\n/** @nocollapse */ DxSelectBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSelectBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSelectBoxComponent\r\n ],\r\n exports: [\r\n DxSelectBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSelectBoxModule, { declarations: [DxSelectBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSelectBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSelectBoxComponent, DxSelectBoxModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxSlider from 'devextreme/ui/slider';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoLabelModule, DxoFormatModule, DxoTooltipModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxSliderComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxSlider]\r\n\r\n */\r\nclass DxSliderComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'keyStepChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'maxChange' },\r\n { emit: 'minChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showRangeChange' },\r\n { emit: 'stepChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeModeChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.keyStep]\r\n \r\n */\r\n get keyStep() {\r\n return this._getOption('keyStep');\r\n }\r\n set keyStep(value) {\r\n this._setOption('keyStep', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.max]\r\n \r\n */\r\n get max() {\r\n return this._getOption('max');\r\n }\r\n set max(value) {\r\n this._setOption('max', value);\r\n }\r\n /**\r\n * [descr:dxTrackBarOptions.min]\r\n \r\n */\r\n get min() {\r\n return this._getOption('min');\r\n }\r\n set min(value) {\r\n this._setOption('min', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.showRange]\r\n \r\n */\r\n get showRange() {\r\n return this._getOption('showRange');\r\n }\r\n set showRange(value) {\r\n this._setOption('showRange', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.step]\r\n \r\n */\r\n get step() {\r\n return this._getOption('step');\r\n }\r\n set step(value) {\r\n this._setOption('step', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxSliderOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxSliderBaseOptions.valueChangeMode]\r\n \r\n */\r\n get valueChangeMode() {\r\n return this._getOption('valueChangeMode');\r\n }\r\n set valueChangeMode(value) {\r\n this._setOption('valueChangeMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxSlider(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSliderComponent.ɵfac = function DxSliderComponent_Factory(t) { return new (t || DxSliderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSliderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSliderComponent, selectors: [[\"dx-slider\"]], hostBindings: function DxSliderComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxSliderComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxSliderComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", keyStep: \"keyStep\", label: \"label\", max: \"max\", min: \"min\", name: \"name\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showRange: \"showRange\", step: \"step\", tabIndex: \"tabIndex\", tooltip: \"tooltip\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeMode: \"valueChangeMode\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", keyStepChange: \"keyStepChange\", labelChange: \"labelChange\", maxChange: \"maxChange\", minChange: \"minChange\", nameChange: \"nameChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showRangeChange: \"showRangeChange\", stepChange: \"stepChange\", tabIndexChange: \"tabIndexChange\", tooltipChange: \"tooltipChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeModeChange: \"valueChangeModeChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSliderComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSliderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-slider',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], keyStep: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showRange: [{\r\n type: Input\r\n }], step: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeMode: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], keyStepChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], maxChange: [{\r\n type: Output\r\n }], minChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showRangeChange: [{\r\n type: Output\r\n }], stepChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeModeChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxSliderModule {\r\n}\r\n/** @nocollapse */ DxSliderModule.ɵfac = function DxSliderModule_Factory(t) { return new (t || DxSliderModule)(); };\r\n/** @nocollapse */ DxSliderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSliderModule });\r\n/** @nocollapse */ DxSliderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSliderModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSliderComponent\r\n ],\r\n exports: [\r\n DxSliderComponent,\r\n DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSliderModule, { declarations: [DxSliderComponent], imports: [DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSliderComponent, DxoLabelModule,\r\n DxoFormatModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSliderComponent, DxSliderModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxSortable from 'devextreme/ui/sortable';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoCursorOffsetModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxSortable]\r\n\r\n */\r\nclass DxSortableComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'add', emit: 'onAdd' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'dragChange', emit: 'onDragChange' },\r\n { subscribe: 'dragEnd', emit: 'onDragEnd' },\r\n { subscribe: 'dragMove', emit: 'onDragMove' },\r\n { subscribe: 'dragStart', emit: 'onDragStart' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'remove', emit: 'onRemove' },\r\n { subscribe: 'reorder', emit: 'onReorder' },\r\n { emit: 'allowDropInsideItemChange' },\r\n { emit: 'allowReorderingChange' },\r\n { emit: 'autoScrollChange' },\r\n { emit: 'boundaryChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'cursorOffsetChange' },\r\n { emit: 'dataChange' },\r\n { emit: 'dragDirectionChange' },\r\n { emit: 'dragTemplateChange' },\r\n { emit: 'dropFeedbackModeChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'filterChange' },\r\n { emit: 'groupChange' },\r\n { emit: 'handleChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'itemOrientationChange' },\r\n { emit: 'moveItemOnDropChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollSensitivityChange' },\r\n { emit: 'scrollSpeedChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.allowDropInsideItem]\r\n \r\n */\r\n get allowDropInsideItem() {\r\n return this._getOption('allowDropInsideItem');\r\n }\r\n set allowDropInsideItem(value) {\r\n this._setOption('allowDropInsideItem', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.allowReordering]\r\n \r\n */\r\n get allowReordering() {\r\n return this._getOption('allowReordering');\r\n }\r\n set allowReordering(value) {\r\n this._setOption('allowReordering', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.autoScroll]\r\n \r\n */\r\n get autoScroll() {\r\n return this._getOption('autoScroll');\r\n }\r\n set autoScroll(value) {\r\n this._setOption('autoScroll', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.boundary]\r\n \r\n */\r\n get boundary() {\r\n return this._getOption('boundary');\r\n }\r\n set boundary(value) {\r\n this._setOption('boundary', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.cursorOffset]\r\n \r\n */\r\n get cursorOffset() {\r\n return this._getOption('cursorOffset');\r\n }\r\n set cursorOffset(value) {\r\n this._setOption('cursorOffset', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.data]\r\n \r\n */\r\n get data() {\r\n return this._getOption('data');\r\n }\r\n set data(value) {\r\n this._setOption('data', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.dragDirection]\r\n \r\n */\r\n get dragDirection() {\r\n return this._getOption('dragDirection');\r\n }\r\n set dragDirection(value) {\r\n this._setOption('dragDirection', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.dragTemplate]\r\n \r\n */\r\n get dragTemplate() {\r\n return this._getOption('dragTemplate');\r\n }\r\n set dragTemplate(value) {\r\n this._setOption('dragTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.dropFeedbackMode]\r\n \r\n */\r\n get dropFeedbackMode() {\r\n return this._getOption('dropFeedbackMode');\r\n }\r\n set dropFeedbackMode(value) {\r\n this._setOption('dropFeedbackMode', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.filter]\r\n \r\n */\r\n get filter() {\r\n return this._getOption('filter');\r\n }\r\n set filter(value) {\r\n this._setOption('filter', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.group]\r\n \r\n */\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.handle]\r\n \r\n */\r\n get handle() {\r\n return this._getOption('handle');\r\n }\r\n set handle(value) {\r\n this._setOption('handle', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.itemOrientation]\r\n \r\n */\r\n get itemOrientation() {\r\n return this._getOption('itemOrientation');\r\n }\r\n set itemOrientation(value) {\r\n this._setOption('itemOrientation', value);\r\n }\r\n /**\r\n * [descr:dxSortableOptions.moveItemOnDrop]\r\n \r\n */\r\n get moveItemOnDrop() {\r\n return this._getOption('moveItemOnDrop');\r\n }\r\n set moveItemOnDrop(value) {\r\n this._setOption('moveItemOnDrop', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.scrollSensitivity]\r\n \r\n */\r\n get scrollSensitivity() {\r\n return this._getOption('scrollSensitivity');\r\n }\r\n set scrollSensitivity(value) {\r\n this._setOption('scrollSensitivity', value);\r\n }\r\n /**\r\n * [descr:DraggableBaseOptions.scrollSpeed]\r\n \r\n */\r\n get scrollSpeed() {\r\n return this._getOption('scrollSpeed');\r\n }\r\n set scrollSpeed(value) {\r\n this._setOption('scrollSpeed', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxSortable(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxSortableComponent.ɵfac = function DxSortableComponent_Factory(t) { return new (t || DxSortableComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSortableComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSortableComponent, selectors: [[\"dx-sortable\"]], inputs: { allowDropInsideItem: \"allowDropInsideItem\", allowReordering: \"allowReordering\", autoScroll: \"autoScroll\", boundary: \"boundary\", container: \"container\", cursorOffset: \"cursorOffset\", data: \"data\", dragDirection: \"dragDirection\", dragTemplate: \"dragTemplate\", dropFeedbackMode: \"dropFeedbackMode\", elementAttr: \"elementAttr\", filter: \"filter\", group: \"group\", handle: \"handle\", height: \"height\", itemOrientation: \"itemOrientation\", moveItemOnDrop: \"moveItemOnDrop\", rtlEnabled: \"rtlEnabled\", scrollSensitivity: \"scrollSensitivity\", scrollSpeed: \"scrollSpeed\", width: \"width\" }, outputs: { onAdd: \"onAdd\", onDisposing: \"onDisposing\", onDragChange: \"onDragChange\", onDragEnd: \"onDragEnd\", onDragMove: \"onDragMove\", onDragStart: \"onDragStart\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onRemove: \"onRemove\", onReorder: \"onReorder\", allowDropInsideItemChange: \"allowDropInsideItemChange\", allowReorderingChange: \"allowReorderingChange\", autoScrollChange: \"autoScrollChange\", boundaryChange: \"boundaryChange\", containerChange: \"containerChange\", cursorOffsetChange: \"cursorOffsetChange\", dataChange: \"dataChange\", dragDirectionChange: \"dragDirectionChange\", dragTemplateChange: \"dragTemplateChange\", dropFeedbackModeChange: \"dropFeedbackModeChange\", elementAttrChange: \"elementAttrChange\", filterChange: \"filterChange\", groupChange: \"groupChange\", handleChange: \"handleChange\", heightChange: \"heightChange\", itemOrientationChange: \"itemOrientationChange\", moveItemOnDropChange: \"moveItemOnDropChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollSensitivityChange: \"scrollSensitivityChange\", scrollSpeedChange: \"scrollSpeedChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxSortableComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSortableComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-sortable',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { allowDropInsideItem: [{\r\n type: Input\r\n }], allowReordering: [{\r\n type: Input\r\n }], autoScroll: [{\r\n type: Input\r\n }], boundary: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], cursorOffset: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], dragDirection: [{\r\n type: Input\r\n }], dragTemplate: [{\r\n type: Input\r\n }], dropFeedbackMode: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], filter: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], handle: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], itemOrientation: [{\r\n type: Input\r\n }], moveItemOnDrop: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollSensitivity: [{\r\n type: Input\r\n }], scrollSpeed: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onAdd: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDragChange: [{\r\n type: Output\r\n }], onDragEnd: [{\r\n type: Output\r\n }], onDragMove: [{\r\n type: Output\r\n }], onDragStart: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onRemove: [{\r\n type: Output\r\n }], onReorder: [{\r\n type: Output\r\n }], allowDropInsideItemChange: [{\r\n type: Output\r\n }], allowReorderingChange: [{\r\n type: Output\r\n }], autoScrollChange: [{\r\n type: Output\r\n }], boundaryChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], cursorOffsetChange: [{\r\n type: Output\r\n }], dataChange: [{\r\n type: Output\r\n }], dragDirectionChange: [{\r\n type: Output\r\n }], dragTemplateChange: [{\r\n type: Output\r\n }], dropFeedbackModeChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], filterChange: [{\r\n type: Output\r\n }], groupChange: [{\r\n type: Output\r\n }], handleChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], itemOrientationChange: [{\r\n type: Output\r\n }], moveItemOnDropChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollSensitivityChange: [{\r\n type: Output\r\n }], scrollSpeedChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxSortableModule {\r\n}\r\n/** @nocollapse */ DxSortableModule.ɵfac = function DxSortableModule_Factory(t) { return new (t || DxSortableModule)(); };\r\n/** @nocollapse */ DxSortableModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSortableModule });\r\n/** @nocollapse */ DxSortableModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoCursorOffsetModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSortableModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSortableComponent\r\n ],\r\n exports: [\r\n DxSortableComponent,\r\n DxoCursorOffsetModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSortableModule, { declarations: [DxSortableComponent], imports: [DxoCursorOffsetModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSortableComponent, DxoCursorOffsetModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSortableComponent, DxSortableModule };\n","/**\r\n * DevExtreme (esm/viz/sparklines/sparkline.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseSparkline from \"./base_sparkline\";\r\nimport {\r\n validateData\r\n} from \"../components/data_validator\";\r\nimport {\r\n Series\r\n} from \"../series/base_series\";\r\nvar MIN_BAR_WIDTH = 1;\r\nvar MAX_BAR_WIDTH = 50;\r\nvar DEFAULT_BAR_INTERVAL = 4;\r\nvar DEFAULT_CANVAS_WIDTH = 250;\r\nvar DEFAULT_CANVAS_HEIGHT = 30;\r\nvar DEFAULT_POINT_BORDER = 2;\r\nvar ALLOWED_TYPES = {\r\n line: true,\r\n spline: true,\r\n stepline: true,\r\n area: true,\r\n steparea: true,\r\n splinearea: true,\r\n bar: true,\r\n winloss: true\r\n};\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _round = _math.round;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _isFinite = isFinite;\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nvar _Number = Number;\r\nvar _String = String;\r\n\r\nfunction findMinMax(data, valField) {\r\n var firstItem = data[0] || {};\r\n var firstValue = firstItem[valField] || 0;\r\n var min = firstValue;\r\n var max = firstValue;\r\n var minIndexes = [0];\r\n var maxIndexes = [0];\r\n var dataLength = data.length;\r\n var value;\r\n var i;\r\n for (i = 1; i < dataLength; i++) {\r\n value = data[i][valField];\r\n if (value < min) {\r\n min = value;\r\n minIndexes = [i]\r\n } else if (value === min) {\r\n minIndexes.push(i)\r\n }\r\n if (value > max) {\r\n max = value;\r\n maxIndexes = [i]\r\n } else if (value === max) {\r\n maxIndexes.push(i)\r\n }\r\n }\r\n if (max === min) {\r\n minIndexes = maxIndexes = []\r\n }\r\n return {\r\n minIndexes: minIndexes,\r\n maxIndexes: maxIndexes\r\n }\r\n}\r\n\r\nfunction parseNumericDataSource(data, argField, valField, ignoreEmptyPoints) {\r\n return _map(data, (function(dataItem, index) {\r\n var item = null;\r\n var isDataNumber;\r\n var value;\r\n if (void 0 !== dataItem) {\r\n item = {};\r\n isDataNumber = _isFinite(dataItem);\r\n item[argField] = isDataNumber ? _String(index) : dataItem[argField];\r\n value = isDataNumber ? dataItem : dataItem[valField];\r\n item[valField] = null === value ? ignoreEmptyPoints ? void 0 : value : _Number(value);\r\n item = void 0 !== item[argField] && void 0 !== item[valField] ? item : null\r\n }\r\n return item\r\n }))\r\n}\r\n\r\nfunction parseWinlossDataSource(data, argField, valField, target) {\r\n return _map(data, (function(dataItem) {\r\n var item = {};\r\n item[argField] = dataItem[argField];\r\n if (_abs(dataItem[valField] - target) < 1e-4) {\r\n item[valField] = 0\r\n } else if (dataItem[valField] > target) {\r\n item[valField] = 1\r\n } else {\r\n item[valField] = -1\r\n }\r\n return item\r\n }))\r\n}\r\n\r\nfunction selectPointColor(color, options, index, pointIndexes) {\r\n if (index === pointIndexes.first || index === pointIndexes.last) {\r\n color = options.firstLastColor\r\n }\r\n if ((pointIndexes.min || []).indexOf(index) >= 0) {\r\n color = options.minColor\r\n }\r\n if ((pointIndexes.max || []).indexOf(index) >= 0) {\r\n color = options.maxColor\r\n }\r\n return color\r\n}\r\n\r\nfunction createLineCustomizeFunction(pointIndexes, options) {\r\n return function() {\r\n var color = selectPointColor(void 0, options, this.index, pointIndexes);\r\n return color ? {\r\n visible: true,\r\n border: {\r\n color: color\r\n }\r\n } : {}\r\n }\r\n}\r\n\r\nfunction createBarCustomizeFunction(pointIndexes, options, winlossData) {\r\n return function() {\r\n var index = this.index;\r\n var isWinloss = \"winloss\" === options.type;\r\n var target = isWinloss ? options.winlossThreshold : 0;\r\n var value = isWinloss ? winlossData[index][options.valueField] : this.value;\r\n var positiveColor = isWinloss ? options.winColor : options.barPositiveColor;\r\n var negativeColor = isWinloss ? options.lossColor : options.barNegativeColor;\r\n return {\r\n color: selectPointColor(value >= target ? positiveColor : negativeColor, options, index, pointIndexes)\r\n }\r\n }\r\n}\r\nvar dxSparkline = BaseSparkline.inherit({\r\n _rootClassPrefix: \"dxsl\",\r\n _rootClass: \"dxsl-sparkline\",\r\n _themeSection: \"sparkline\",\r\n _defaultSize: {\r\n width: DEFAULT_CANVAS_WIDTH,\r\n height: DEFAULT_CANVAS_HEIGHT\r\n },\r\n _initCore: function() {\r\n this.callBase();\r\n this._createSeries()\r\n },\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _dataSourceChangedHandler: function() {\r\n this._requestChange([\"UPDATE\"])\r\n },\r\n _updateWidgetElements: function() {\r\n this._updateSeries();\r\n this.callBase()\r\n },\r\n _disposeWidgetElements: function() {\r\n this._series && this._series.dispose();\r\n this._series = this._seriesGroup = this._seriesLabelGroup = null\r\n },\r\n _cleanWidgetElements: function() {\r\n this._seriesGroup.remove();\r\n this._seriesLabelGroup.remove();\r\n this._seriesGroup.clear();\r\n this._seriesLabelGroup.clear();\r\n this._series.removeGraphicElements();\r\n this._series.removePointElements();\r\n this._series.removeBordersGroup()\r\n },\r\n _drawWidgetElements: function() {\r\n if (this._dataIsLoaded()) {\r\n this._drawSeries();\r\n this._drawn()\r\n }\r\n },\r\n _getCorrectCanvas: function() {\r\n var options = this._allOptions;\r\n var canvas = this._canvas;\r\n var halfPointSize = options.pointSize && Math.ceil(options.pointSize / 2) + DEFAULT_POINT_BORDER;\r\n var type = options.type;\r\n if (\"bar\" !== type && \"winloss\" !== type && (options.showFirstLast || options.showMinMax)) {\r\n return {\r\n width: canvas.width,\r\n height: canvas.height,\r\n left: canvas.left + halfPointSize,\r\n right: canvas.right + halfPointSize,\r\n top: canvas.top + halfPointSize,\r\n bottom: canvas.bottom + halfPointSize\r\n }\r\n }\r\n return canvas\r\n },\r\n _prepareOptions: function() {\r\n this._allOptions = this.callBase();\r\n this._allOptions.type = _normalizeEnum(this._allOptions.type);\r\n if (!ALLOWED_TYPES[this._allOptions.type]) {\r\n this._allOptions.type = \"line\"\r\n }\r\n },\r\n _createHtmlElements: function() {\r\n this._seriesGroup = this._renderer.g().attr({\r\n class: \"dxsl-series\"\r\n });\r\n this._seriesLabelGroup = this._renderer.g().attr({\r\n class: \"dxsl-series-labels\"\r\n })\r\n },\r\n _createSeries: function() {\r\n this._series = new Series({\r\n renderer: this._renderer,\r\n seriesGroup: this._seriesGroup,\r\n labelsGroup: this._seriesLabelGroup,\r\n argumentAxis: this._argumentAxis,\r\n valueAxis: this._valueAxis,\r\n incidentOccurred: this._incidentOccurred\r\n }, {\r\n widgetType: \"chart\",\r\n type: \"line\"\r\n })\r\n },\r\n _updateSeries: function() {\r\n var singleSeries = this._series;\r\n this._prepareDataSource();\r\n var seriesOptions = this._prepareSeriesOptions();\r\n singleSeries.updateOptions(seriesOptions);\r\n var groupsData = {\r\n groups: [{\r\n series: [singleSeries]\r\n }]\r\n };\r\n groupsData.argumentOptions = {\r\n type: \"bar\" === seriesOptions.type ? \"discrete\" : void 0\r\n };\r\n this._simpleDataSource = validateData(this._simpleDataSource, groupsData, this._incidentOccurred, {\r\n checkTypeForAllData: false,\r\n convertToAxisDataType: true,\r\n sortingMethod: true\r\n })[singleSeries.getArgumentField()];\r\n seriesOptions.customizePoint = this._getCustomizeFunction();\r\n singleSeries.updateData(this._simpleDataSource);\r\n singleSeries.createPoints();\r\n this._groupsDataCategories = groupsData.categories\r\n },\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\"\r\n },\r\n _optionChangesOrder: [\"DATA_SOURCE\"],\r\n _change_DATA_SOURCE: function() {\r\n this._updateDataSource()\r\n },\r\n _prepareDataSource: function() {\r\n var options = this._allOptions;\r\n var argField = options.argumentField;\r\n var valField = options.valueField;\r\n var dataSource = this._dataSourceItems() || [];\r\n var data = parseNumericDataSource(dataSource, argField, valField, this.option(\"ignoreEmptyPoints\"));\r\n if (\"winloss\" === options.type) {\r\n this._winlossDataSource = data;\r\n this._simpleDataSource = parseWinlossDataSource(data, argField, valField, options.winlossThreshold)\r\n } else {\r\n this._simpleDataSource = data\r\n }\r\n },\r\n _prepareSeriesOptions: function() {\r\n var options = this._allOptions;\r\n var type = \"winloss\" === options.type ? \"bar\" : options.type;\r\n return {\r\n visible: true,\r\n argumentField: options.argumentField,\r\n valueField: options.valueField,\r\n color: options.lineColor,\r\n width: options.lineWidth,\r\n widgetType: \"chart\",\r\n name: \"\",\r\n type: type,\r\n opacity: -1 !== type.indexOf(\"area\") ? this._allOptions.areaOpacity : void 0,\r\n point: {\r\n size: options.pointSize,\r\n symbol: options.pointSymbol,\r\n border: {\r\n visible: true,\r\n width: DEFAULT_POINT_BORDER\r\n },\r\n color: options.pointColor,\r\n visible: false,\r\n hoverStyle: {\r\n border: {}\r\n },\r\n selectionStyle: {\r\n border: {}\r\n }\r\n },\r\n border: {\r\n color: options.lineColor,\r\n width: options.lineWidth,\r\n visible: \"bar\" !== type\r\n }\r\n }\r\n },\r\n _getCustomizeFunction: function() {\r\n var options = this._allOptions;\r\n var dataSource = this._winlossDataSource || this._simpleDataSource;\r\n var drawnPointIndexes = this._getExtremumPointsIndexes(dataSource);\r\n var customizeFunction;\r\n if (\"winloss\" === options.type || \"bar\" === options.type) {\r\n customizeFunction = createBarCustomizeFunction(drawnPointIndexes, options, this._winlossDataSource)\r\n } else {\r\n customizeFunction = createLineCustomizeFunction(drawnPointIndexes, options)\r\n }\r\n return customizeFunction\r\n },\r\n _getExtremumPointsIndexes: function(data) {\r\n var options = this._allOptions;\r\n var lastIndex = data.length - 1;\r\n var indexes = {};\r\n this._minMaxIndexes = findMinMax(data, options.valueField);\r\n if (options.showFirstLast) {\r\n indexes.first = 0;\r\n indexes.last = lastIndex\r\n }\r\n if (options.showMinMax) {\r\n indexes.min = this._minMaxIndexes.minIndexes;\r\n indexes.max = this._minMaxIndexes.maxIndexes\r\n }\r\n return indexes\r\n },\r\n _getStick: function() {\r\n return {\r\n stick: \"bar\" !== this._series.type\r\n }\r\n },\r\n _updateRange: function() {\r\n var series = this._series;\r\n var type = series.type;\r\n var isBarType = \"bar\" === type;\r\n var isWinlossType = \"winloss\" === type;\r\n var rangeData = series.getRangeData();\r\n var minValue = this._allOptions.minValue;\r\n var hasMinY = _isDefined(minValue) && _isFinite(minValue);\r\n var maxValue = this._allOptions.maxValue;\r\n var hasMaxY = _isDefined(maxValue) && _isFinite(maxValue);\r\n var argCoef;\r\n var valCoef = .15 * (rangeData.val.max - rangeData.val.min);\r\n if (isBarType || isWinlossType || \"area\" === type) {\r\n if (0 !== rangeData.val.min) {\r\n rangeData.val.min -= valCoef\r\n }\r\n if (0 !== rangeData.val.max) {\r\n rangeData.val.max += valCoef\r\n }\r\n } else {\r\n rangeData.val.min -= valCoef;\r\n rangeData.val.max += valCoef\r\n }\r\n if (hasMinY || hasMaxY) {\r\n if (hasMinY && hasMaxY) {\r\n rangeData.val.minVisible = _min(minValue, maxValue);\r\n rangeData.val.maxVisible = _max(minValue, maxValue)\r\n } else {\r\n rangeData.val.minVisible = hasMinY ? _Number(minValue) : void 0;\r\n rangeData.val.maxVisible = hasMaxY ? _Number(maxValue) : void 0\r\n }\r\n if (isWinlossType) {\r\n rangeData.val.minVisible = hasMinY ? _max(rangeData.val.minVisible, -1) : void 0;\r\n rangeData.val.maxVisible = hasMaxY ? _min(rangeData.val.maxVisible, 1) : void 0\r\n }\r\n }\r\n if (series.getPoints().length > 1) {\r\n if (isBarType) {\r\n argCoef = .1 * (rangeData.arg.max - rangeData.arg.min);\r\n rangeData.arg.min = rangeData.arg.min - argCoef;\r\n rangeData.arg.max = rangeData.arg.max + argCoef\r\n }\r\n }\r\n rangeData.arg.categories = this._groupsDataCategories;\r\n this._ranges = rangeData\r\n },\r\n _getBarWidth: function(pointsCount) {\r\n var canvas = this._canvas;\r\n var intervalWidth = pointsCount * DEFAULT_BAR_INTERVAL;\r\n var rangeWidth = canvas.width - canvas.left - canvas.right - intervalWidth;\r\n var width = _round(rangeWidth / pointsCount);\r\n if (width < MIN_BAR_WIDTH) {\r\n width = MIN_BAR_WIDTH\r\n }\r\n if (width > MAX_BAR_WIDTH) {\r\n width = MAX_BAR_WIDTH\r\n }\r\n return width\r\n },\r\n _correctPoints: function() {\r\n var seriesType = this._allOptions.type;\r\n var seriesPoints = this._series.getPoints();\r\n var pointsLength = seriesPoints.length;\r\n var barWidth;\r\n var i;\r\n if (\"bar\" === seriesType || \"winloss\" === seriesType) {\r\n barWidth = this._getBarWidth(pointsLength);\r\n for (i = 0; i < pointsLength; i++) {\r\n seriesPoints[i].correctCoordinates({\r\n width: barWidth,\r\n offset: 0\r\n })\r\n }\r\n }\r\n },\r\n _drawSeries: function() {\r\n if (this._simpleDataSource.length > 0) {\r\n this._correctPoints();\r\n this._series.draw();\r\n this._seriesGroup.append(this._renderer.root)\r\n }\r\n },\r\n _isTooltipEnabled: function() {\r\n return !!this._simpleDataSource.length\r\n },\r\n _getTooltipData: function() {\r\n var options = this._allOptions;\r\n var dataSource = this._winlossDataSource || this._simpleDataSource;\r\n var tooltip = this._tooltip;\r\n if (0 === dataSource.length) {\r\n return {}\r\n }\r\n var minMax = this._minMaxIndexes;\r\n var valueField = options.valueField;\r\n var first = dataSource[0][valueField];\r\n var last = dataSource[dataSource.length - 1][valueField];\r\n var min = _isDefined(minMax.minIndexes[0]) ? dataSource[minMax.minIndexes[0]][valueField] : first;\r\n var max = _isDefined(minMax.maxIndexes[0]) ? dataSource[minMax.maxIndexes[0]][valueField] : first;\r\n var formattedFirst = tooltip.formatValue(first);\r\n var formattedLast = tooltip.formatValue(last);\r\n var formattedMin = tooltip.formatValue(min);\r\n var formattedMax = tooltip.formatValue(max);\r\n var customizeObject = {\r\n firstValue: formattedFirst,\r\n lastValue: formattedLast,\r\n minValue: formattedMin,\r\n maxValue: formattedMax,\r\n originalFirstValue: first,\r\n originalLastValue: last,\r\n originalMinValue: min,\r\n originalMaxValue: max,\r\n valueText: [\"Start:\", formattedFirst, \"End:\", formattedLast, \"Min:\", formattedMin, \"Max:\", formattedMax]\r\n };\r\n if (\"winloss\" === options.type) {\r\n customizeObject.originalThresholdValue = options.winlossThreshold;\r\n customizeObject.thresholdValue = tooltip.formatValue(options.winlossThreshold)\r\n }\r\n return customizeObject\r\n }\r\n});\r\n_map([\"lineColor\", \"lineWidth\", \"areaOpacity\", \"minColor\", \"maxColor\", \"barPositiveColor\", \"barNegativeColor\", \"winColor\", \"lessColor\", \"firstLastColor\", \"pointSymbol\", \"pointColor\", \"pointSize\", \"type\", \"argumentField\", \"valueField\", \"winlossThreshold\", \"showFirstLast\", \"showMinMax\", \"ignoreEmptyPoints\", \"minValue\", \"maxValue\"], (function(name) {\r\n dxSparkline.prototype._optionChangesMap[name] = \"OPTIONS\"\r\n}));\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\ncomponentRegistrator(\"dxSparkline\", dxSparkline);\r\nexport default dxSparkline;\r\nimport {\r\n plugin\r\n} from \"../core/data_source\";\r\ndxSparkline.addPlugin(plugin);\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxSparkline from 'devextreme/viz/sparkline';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoMarginModule, DxoSizeModule, DxoTooltipModule, DxoBorderModule, DxoFontModule, DxoFormatModule, DxoShadowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxSparkline]\r\n\r\n */\r\nclass DxSparklineComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { emit: 'argumentFieldChange' },\r\n { emit: 'barNegativeColorChange' },\r\n { emit: 'barPositiveColorChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'firstLastColorChange' },\r\n { emit: 'ignoreEmptyPointsChange' },\r\n { emit: 'lineColorChange' },\r\n { emit: 'lineWidthChange' },\r\n { emit: 'lossColorChange' },\r\n { emit: 'marginChange' },\r\n { emit: 'maxColorChange' },\r\n { emit: 'maxValueChange' },\r\n { emit: 'minColorChange' },\r\n { emit: 'minValueChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'pointColorChange' },\r\n { emit: 'pointSizeChange' },\r\n { emit: 'pointSymbolChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showFirstLastChange' },\r\n { emit: 'showMinMaxChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'valueFieldChange' },\r\n { emit: 'winColorChange' },\r\n { emit: 'winlossThresholdChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.argumentField]\r\n \r\n */\r\n get argumentField() {\r\n return this._getOption('argumentField');\r\n }\r\n set argumentField(value) {\r\n this._setOption('argumentField', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.barNegativeColor]\r\n \r\n */\r\n get barNegativeColor() {\r\n return this._getOption('barNegativeColor');\r\n }\r\n set barNegativeColor(value) {\r\n this._setOption('barNegativeColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.barPositiveColor]\r\n \r\n */\r\n get barPositiveColor() {\r\n return this._getOption('barPositiveColor');\r\n }\r\n set barPositiveColor(value) {\r\n this._setOption('barPositiveColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.firstLastColor]\r\n \r\n */\r\n get firstLastColor() {\r\n return this._getOption('firstLastColor');\r\n }\r\n set firstLastColor(value) {\r\n this._setOption('firstLastColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.ignoreEmptyPoints]\r\n \r\n */\r\n get ignoreEmptyPoints() {\r\n return this._getOption('ignoreEmptyPoints');\r\n }\r\n set ignoreEmptyPoints(value) {\r\n this._setOption('ignoreEmptyPoints', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.lineColor]\r\n \r\n */\r\n get lineColor() {\r\n return this._getOption('lineColor');\r\n }\r\n set lineColor(value) {\r\n this._setOption('lineColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.lineWidth]\r\n \r\n */\r\n get lineWidth() {\r\n return this._getOption('lineWidth');\r\n }\r\n set lineWidth(value) {\r\n this._setOption('lineWidth', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.lossColor]\r\n \r\n */\r\n get lossColor() {\r\n return this._getOption('lossColor');\r\n }\r\n set lossColor(value) {\r\n this._setOption('lossColor', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.margin]\r\n \r\n */\r\n get margin() {\r\n return this._getOption('margin');\r\n }\r\n set margin(value) {\r\n this._setOption('margin', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.maxColor]\r\n \r\n */\r\n get maxColor() {\r\n return this._getOption('maxColor');\r\n }\r\n set maxColor(value) {\r\n this._setOption('maxColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.maxValue]\r\n \r\n */\r\n get maxValue() {\r\n return this._getOption('maxValue');\r\n }\r\n set maxValue(value) {\r\n this._setOption('maxValue', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.minColor]\r\n \r\n */\r\n get minColor() {\r\n return this._getOption('minColor');\r\n }\r\n set minColor(value) {\r\n this._setOption('minColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.minValue]\r\n \r\n */\r\n get minValue() {\r\n return this._getOption('minValue');\r\n }\r\n set minValue(value) {\r\n this._setOption('minValue', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.pointColor]\r\n \r\n */\r\n get pointColor() {\r\n return this._getOption('pointColor');\r\n }\r\n set pointColor(value) {\r\n this._setOption('pointColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.pointSize]\r\n \r\n */\r\n get pointSize() {\r\n return this._getOption('pointSize');\r\n }\r\n set pointSize(value) {\r\n this._setOption('pointSize', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.pointSymbol]\r\n \r\n */\r\n get pointSymbol() {\r\n return this._getOption('pointSymbol');\r\n }\r\n set pointSymbol(value) {\r\n this._setOption('pointSymbol', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.showFirstLast]\r\n \r\n */\r\n get showFirstLast() {\r\n return this._getOption('showFirstLast');\r\n }\r\n set showFirstLast(value) {\r\n this._setOption('showFirstLast', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.showMinMax]\r\n \r\n */\r\n get showMinMax() {\r\n return this._getOption('showMinMax');\r\n }\r\n set showMinMax(value) {\r\n this._setOption('showMinMax', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseSparklineOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.valueField]\r\n \r\n */\r\n get valueField() {\r\n return this._getOption('valueField');\r\n }\r\n set valueField(value) {\r\n this._setOption('valueField', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.winColor]\r\n \r\n */\r\n get winColor() {\r\n return this._getOption('winColor');\r\n }\r\n set winColor(value) {\r\n this._setOption('winColor', value);\r\n }\r\n /**\r\n * [descr:dxSparklineOptions.winlossThreshold]\r\n \r\n */\r\n get winlossThreshold() {\r\n return this._getOption('winlossThreshold');\r\n }\r\n set winlossThreshold(value) {\r\n this._setOption('winlossThreshold', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxSparkline(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSparklineComponent.ɵfac = function DxSparklineComponent_Factory(t) { return new (t || DxSparklineComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSparklineComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSparklineComponent, selectors: [[\"dx-sparkline\"]], inputs: { argumentField: \"argumentField\", barNegativeColor: \"barNegativeColor\", barPositiveColor: \"barPositiveColor\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", firstLastColor: \"firstLastColor\", ignoreEmptyPoints: \"ignoreEmptyPoints\", lineColor: \"lineColor\", lineWidth: \"lineWidth\", lossColor: \"lossColor\", margin: \"margin\", maxColor: \"maxColor\", maxValue: \"maxValue\", minColor: \"minColor\", minValue: \"minValue\", pathModified: \"pathModified\", pointColor: \"pointColor\", pointSize: \"pointSize\", pointSymbol: \"pointSymbol\", rtlEnabled: \"rtlEnabled\", showFirstLast: \"showFirstLast\", showMinMax: \"showMinMax\", size: \"size\", theme: \"theme\", tooltip: \"tooltip\", type: \"type\", valueField: \"valueField\", winColor: \"winColor\", winlossThreshold: \"winlossThreshold\" }, outputs: { onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", argumentFieldChange: \"argumentFieldChange\", barNegativeColorChange: \"barNegativeColorChange\", barPositiveColorChange: \"barPositiveColorChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", firstLastColorChange: \"firstLastColorChange\", ignoreEmptyPointsChange: \"ignoreEmptyPointsChange\", lineColorChange: \"lineColorChange\", lineWidthChange: \"lineWidthChange\", lossColorChange: \"lossColorChange\", marginChange: \"marginChange\", maxColorChange: \"maxColorChange\", maxValueChange: \"maxValueChange\", minColorChange: \"minColorChange\", minValueChange: \"minValueChange\", pathModifiedChange: \"pathModifiedChange\", pointColorChange: \"pointColorChange\", pointSizeChange: \"pointSizeChange\", pointSymbolChange: \"pointSymbolChange\", rtlEnabledChange: \"rtlEnabledChange\", showFirstLastChange: \"showFirstLastChange\", showMinMaxChange: \"showMinMaxChange\", sizeChange: \"sizeChange\", themeChange: \"themeChange\", tooltipChange: \"tooltipChange\", typeChange: \"typeChange\", valueFieldChange: \"valueFieldChange\", winColorChange: \"winColorChange\", winlossThresholdChange: \"winlossThresholdChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSparklineComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSparklineComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-sparkline',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { argumentField: [{\r\n type: Input\r\n }], barNegativeColor: [{\r\n type: Input\r\n }], barPositiveColor: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], firstLastColor: [{\r\n type: Input\r\n }], ignoreEmptyPoints: [{\r\n type: Input\r\n }], lineColor: [{\r\n type: Input\r\n }], lineWidth: [{\r\n type: Input\r\n }], lossColor: [{\r\n type: Input\r\n }], margin: [{\r\n type: Input\r\n }], maxColor: [{\r\n type: Input\r\n }], maxValue: [{\r\n type: Input\r\n }], minColor: [{\r\n type: Input\r\n }], minValue: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], pointColor: [{\r\n type: Input\r\n }], pointSize: [{\r\n type: Input\r\n }], pointSymbol: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showFirstLast: [{\r\n type: Input\r\n }], showMinMax: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], valueField: [{\r\n type: Input\r\n }], winColor: [{\r\n type: Input\r\n }], winlossThreshold: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], argumentFieldChange: [{\r\n type: Output\r\n }], barNegativeColorChange: [{\r\n type: Output\r\n }], barPositiveColorChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], firstLastColorChange: [{\r\n type: Output\r\n }], ignoreEmptyPointsChange: [{\r\n type: Output\r\n }], lineColorChange: [{\r\n type: Output\r\n }], lineWidthChange: [{\r\n type: Output\r\n }], lossColorChange: [{\r\n type: Output\r\n }], marginChange: [{\r\n type: Output\r\n }], maxColorChange: [{\r\n type: Output\r\n }], maxValueChange: [{\r\n type: Output\r\n }], minColorChange: [{\r\n type: Output\r\n }], minValueChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], pointColorChange: [{\r\n type: Output\r\n }], pointSizeChange: [{\r\n type: Output\r\n }], pointSymbolChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showFirstLastChange: [{\r\n type: Output\r\n }], showMinMaxChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], valueFieldChange: [{\r\n type: Output\r\n }], winColorChange: [{\r\n type: Output\r\n }], winlossThresholdChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxSparklineModule {\r\n}\r\n/** @nocollapse */ DxSparklineModule.ɵfac = function DxSparklineModule_Factory(t) { return new (t || DxSparklineModule)(); };\r\n/** @nocollapse */ DxSparklineModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSparklineModule });\r\n/** @nocollapse */ DxSparklineModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSparklineModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSparklineComponent\r\n ],\r\n exports: [\r\n DxSparklineComponent,\r\n DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSparklineModule, { declarations: [DxSparklineComponent], imports: [DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSparklineComponent, DxoMarginModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSparklineComponent, DxSparklineModule };\n","/**\r\n * DevExtreme (esm/ui/speed_dial_action/speed_dial_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nvar FAB_CLASS = \"dx-fa-button\";\r\nvar FAB_ICON_CLASS = \"dx-fa-button-icon\";\r\nvar FAB_LABEL_CLASS = \"dx-fa-button-label\";\r\nvar FAB_LABEL_WRAPPER_CLASS = \"dx-fa-button-label-wrapper\";\r\nvar FAB_CONTENT_REVERSE_CLASS = \"dx-fa-button-content-reverse\";\r\nvar OVERLAY_CONTENT_SELECTOR = \".dx-overlay-content\";\r\nclass SpeedDialItem extends Overlay {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n shading: false,\r\n useInkRipple: false,\r\n callOverlayRenderShading: false,\r\n width: \"auto\",\r\n zIndex: 1500,\r\n _observeContentResize: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => isMaterial(),\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n }\r\n _moveToContainer() {\r\n this._$wrapper.appendTo(this.$element());\r\n this._$content.appendTo(this._$wrapper)\r\n }\r\n _render() {\r\n this.$element().addClass(FAB_CLASS);\r\n this._renderIcon();\r\n this._renderLabel();\r\n super._render();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this._renderClick()\r\n }\r\n _renderLabel() {\r\n !!this._$label && this._$label.remove();\r\n var labelText = this.option(\"label\");\r\n if (!labelText) {\r\n this._$label = null;\r\n return\r\n }\r\n var $element = $(\"<div>\").addClass(FAB_LABEL_CLASS);\r\n var $wrapper = $(\"<div>\").addClass(FAB_LABEL_WRAPPER_CLASS);\r\n this._$label = $wrapper.prependTo(this.$content()).append($element.text(labelText));\r\n this.$content().toggleClass(FAB_CONTENT_REVERSE_CLASS, this._isPositionLeft(this.option(\"parentPosition\")))\r\n }\r\n _isPositionLeft(position) {\r\n var currentLocation = \"\";\r\n if (position) {\r\n if (isPlainObject(position) && position.at) {\r\n if (position.at.x) {\r\n currentLocation = position.at.x\r\n } else {\r\n currentLocation = position.at\r\n }\r\n } else if (\"string\" === typeof position) {\r\n currentLocation = position\r\n }\r\n }\r\n return \"left\" === currentLocation.split(\" \")[0]\r\n }\r\n _renderButtonIcon($element, icon, iconClass) {\r\n !!$element && $element.remove();\r\n $element = $(\"<div>\").addClass(iconClass);\r\n var $iconElement = getImageContainer(icon);\r\n $element.append($iconElement).appendTo(this.$content());\r\n return $element\r\n }\r\n _renderIcon() {\r\n this._$icon = this._renderButtonIcon(this._$icon, this._options.silent(\"icon\"), FAB_ICON_CLASS)\r\n }\r\n _renderWrapper() {\r\n if (this._options.silent(\"callOverlayRenderShading\")) {\r\n super._renderWrapper()\r\n }\r\n }\r\n _getVisibleActions(actions) {\r\n var currentActions = actions || this.option(\"actions\") || [];\r\n return currentActions.filter(action => action.option(\"visible\"))\r\n }\r\n _getActionComponent() {\r\n if (1 === this._getVisibleActions().length) {\r\n return this._getVisibleActions()[0]\r\n } else {\r\n return this.option(\"actionComponent\") || this.option(\"actions\")[0]\r\n }\r\n }\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._getActionComponent()._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }, true)\r\n }\r\n _fireContentReadyAction() {\r\n this._contentReadyAction({\r\n actionElement: this.$element()\r\n })\r\n }\r\n _updateZIndexStackPosition() {\r\n var zIndex = this.option(\"zIndex\");\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n _setClickAction() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var overlayContent = this.$element().find(OVERLAY_CONTENT_SELECTOR);\r\n eventsEngine.off(overlayContent, eventName);\r\n eventsEngine.on(overlayContent, eventName, e => {\r\n var clickActionArgs = {\r\n event: e,\r\n actionElement: this.element(),\r\n element: this._getActionComponent().$element()\r\n };\r\n this._clickAction(clickActionArgs)\r\n })\r\n }\r\n _defaultActionArgs() {\r\n return {\r\n component: this._getActionComponent()\r\n }\r\n }\r\n _renderClick() {\r\n this._clickAction = this._getActionComponent()._createActionByOption(\"onClick\");\r\n this._setClickAction()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _getInkRippleContainer() {\r\n return this._$icon\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: this._getInkRippleContainer(),\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"icon\":\r\n this._renderIcon();\r\n break;\r\n case \"onClick\":\r\n this._renderClick();\r\n break;\r\n case \"label\":\r\n this._renderLabel();\r\n break;\r\n case \"visible\":\r\n this._currentVisible = args.previousValue;\r\n args.value ? this._show() : this._hide();\r\n break;\r\n case \"useInkRipple\":\r\n this._render();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default SpeedDialItem;\r\n","/**\r\n * DevExtreme (esm/ui/speed_dial_action/speed_dial_main_item.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport swatchContainer from \"../widget/swatch_container\";\r\nimport SpeedDialItem from \"./speed_dial_item\";\r\nimport {\r\n isCompact,\r\n isMaterial,\r\n isFluent\r\n} from \"../themes\";\r\nvar {\r\n getSwatchContainer: getSwatchContainer\r\n} = swatchContainer;\r\nvar FAB_MAIN_CLASS = \"dx-fa-button-main\";\r\nvar FAB_MAIN_CLASS_WITH_LABEL = \"dx-fa-button-with-label\";\r\nvar FAB_MAIN_CLASS_WITHOUT_ICON = \"dx-fa-button-without-icon\";\r\nvar FAB_CLOSE_ICON_CLASS = \"dx-fa-button-icon-close\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar speedDialMainItem = null;\r\nvar modifyActionOptions = action => {\r\n var {\r\n animation: animation,\r\n actionComponent: actionComponent,\r\n actionVisible: actionVisible,\r\n actions: actions,\r\n activeStateEnabled: activeStateEnabled,\r\n direction: direction,\r\n elementAttr: elementAttr,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n icon: icon,\r\n id: id,\r\n index: index,\r\n label: label,\r\n onClick: onClick,\r\n onContentReady: onContentReady,\r\n parentPosition: parentPosition,\r\n position: position,\r\n visible: visible,\r\n zIndex: zIndex\r\n } = action.option();\r\n return extend({}, {\r\n animation: animation,\r\n actionComponent: actionComponent,\r\n actionVisible: actionVisible,\r\n actions: actions,\r\n activeStateEnabled: activeStateEnabled,\r\n direction: direction,\r\n elementAttr: elementAttr,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n icon: icon,\r\n id: id,\r\n index: index,\r\n label: label,\r\n onClick: onClick,\r\n onContentReady: onContentReady,\r\n parentPosition: parentPosition,\r\n position: position,\r\n visible: visible,\r\n zIndex: zIndex,\r\n _ignoreElementAttrDeprecation: true\r\n }, {\r\n onInitialized: null,\r\n onDisposing: null\r\n })\r\n};\r\nclass SpeedDialMainItem extends SpeedDialItem {\r\n _getDefaultOptions() {\r\n var defaultOptions = {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n hint: \"\",\r\n label: \"\",\r\n direction: \"auto\",\r\n actions: [],\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n indent: isCompact() ? 49 : 55,\r\n childIndent: 40,\r\n childOffset: isCompact() ? 2 : 9,\r\n callOverlayRenderShading: true,\r\n hideOnOutsideClick: true\r\n };\r\n return extend(super._getDefaultOptions(), extend(defaultOptions, config().floatingActionButtonConfig, {\r\n shading: false\r\n }))\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => isFluent() && !isCompact(),\r\n options: {\r\n indent: 60,\r\n childIndent: 60,\r\n childOffset: 0\r\n }\r\n }, {\r\n device: () => isFluent() && isCompact(),\r\n options: {\r\n indent: 48,\r\n childIndent: 48,\r\n childOffset: 0\r\n }\r\n }, {\r\n device: () => isMaterial() && !isCompact(),\r\n options: {\r\n indent: 72,\r\n childIndent: 56,\r\n childOffset: 8\r\n }\r\n }, {\r\n device: () => isMaterial() && isCompact(),\r\n options: {\r\n indent: 58,\r\n childIndent: 48,\r\n childOffset: 1\r\n }\r\n }])\r\n }\r\n _render() {\r\n this.$element().addClass(FAB_MAIN_CLASS);\r\n super._render();\r\n this._moveToContainer();\r\n this._renderCloseIcon();\r\n this._renderClick()\r\n }\r\n _renderLabel() {\r\n super._renderLabel();\r\n this.$element().toggleClass(FAB_MAIN_CLASS_WITH_LABEL, !!this._$label)\r\n }\r\n _renderIcon() {\r\n super._renderIcon();\r\n this.$element().toggleClass(FAB_MAIN_CLASS_WITHOUT_ICON, !this.option(\"icon\"))\r\n }\r\n _renderCloseIcon() {\r\n this._$closeIcon = this._renderButtonIcon(this._$closeIcon, this._options.silent(\"closeIcon\"), FAB_CLOSE_ICON_CLASS);\r\n this._$closeIcon.addClass(INVISIBLE_STATE_CLASS)\r\n }\r\n _renderClick() {\r\n this._clickAction = 1 === this._getVisibleActions().length ? this._getActionComponent()._createActionByOption(\"onClick\") : this._createAction(this._clickHandler.bind(this));\r\n this._setClickAction()\r\n }\r\n _getVisibleActions(actions) {\r\n var currentActions = actions || this.option(\"actions\");\r\n return currentActions.filter(action => action.option(\"visible\"))\r\n }\r\n _getCurrentOptions(actions) {\r\n var visibleActions = speedDialMainItem._getVisibleActions(actions);\r\n var defaultOptions = this._getDefaultOptions();\r\n delete defaultOptions.elementAttr;\r\n delete defaultOptions.closeOnOutsideClick;\r\n return 1 === visibleActions.length ? extend(modifyActionOptions(visibleActions[0]), {\r\n position: this._getPosition()\r\n }) : extend(defaultOptions, {\r\n visible: 0 !== visibleActions.length\r\n })\r\n }\r\n _clickHandler() {\r\n var actions = this._actionItems.filter(action => action.option(\"actionVisible\")).sort((action, nextAction) => action.option(\"index\") - nextAction.option(\"index\"));\r\n if (1 === actions.length) {\r\n return\r\n }\r\n var lastActionIndex = actions.length - 1;\r\n for (var i = 0; i < actions.length; i++) {\r\n actions[i].option(\"animation\", this._getActionAnimation(actions[i], i, lastActionIndex));\r\n actions[i].option(\"position\", this._getActionPosition(actions, i));\r\n actions[i]._$wrapper.css(\"position\", this._$wrapper.css(\"position\"));\r\n actions[i].toggle()\r\n }\r\n if (config().floatingActionButtonConfig.shading) {\r\n this._isShadingShown = !this.option(\"shading\");\r\n this.option(\"shading\", this._isShadingShown)\r\n }\r\n this._$icon.toggleClass(INVISIBLE_STATE_CLASS);\r\n this._$closeIcon.toggleClass(INVISIBLE_STATE_CLASS)\r\n }\r\n _updateZIndexStackPosition() {\r\n super._updateZIndexStackPosition();\r\n var overlayStack = this._overlayStack();\r\n overlayStack.push(this)\r\n }\r\n _renderActions() {\r\n var actions = this.option(\"actions\");\r\n if (this._actionItems && this._actionItems.length) {\r\n this._actionItems.forEach(actionItem => {\r\n actionItem.dispose();\r\n actionItem.$element().remove()\r\n });\r\n this._actionItems = []\r\n }\r\n this._actionItems = [];\r\n if (1 === actions.length) {\r\n return\r\n }\r\n for (var i = 0; i < actions.length; i++) {\r\n var action = actions[i];\r\n var $actionElement = $(\"<div>\").appendTo(getSwatchContainer(action.$element()));\r\n eventsEngine.off($actionElement, \"click\");\r\n eventsEngine.on($actionElement, \"click\", () => {\r\n this._clickHandler()\r\n });\r\n action._options.silent(\"actionComponent\", action);\r\n action._options.silent(\"parentPosition\", this._getPosition());\r\n action._options.silent(\"actionVisible\", action._options.silent(\"visible\"));\r\n this._actionItems.push(this._createComponent($actionElement, SpeedDialItem, extend({}, modifyActionOptions(action), {\r\n visible: false\r\n })))\r\n }\r\n }\r\n _getActionAnimation(action, index, lastActionIndex) {\r\n action._options.silent(\"animation.show.delay\", 30 * index);\r\n action._options.silent(\"animation.hide.delay\", 30 * (lastActionIndex - index));\r\n return action._options.silent(\"animation\")\r\n }\r\n _getDirectionIndex(actions, direction) {\r\n if (\"auto\" === direction) {\r\n var contentHeight = getHeight(this.$content());\r\n var actionsHeight = this.initialOption(\"indent\") + this.initialOption(\"childIndent\") * actions.length - contentHeight;\r\n var offsetTop = this.$content().offset().top;\r\n if (actionsHeight < offsetTop) {\r\n return -1\r\n } else {\r\n var offsetBottom = getHeight(this._positionController._$wrapperCoveredElement) - contentHeight - offsetTop;\r\n return offsetTop >= offsetBottom ? -1 : 1\r\n }\r\n }\r\n return \"down\" !== direction ? -1 : 1\r\n }\r\n _getActionPosition(actions, index) {\r\n var action = actions[index];\r\n var actionOffsetXValue = this.initialOption(\"childOffset\");\r\n var actionOffsetX = action._options.silent(\"label\") && !this._$label ? this._isPositionLeft(this._getPosition()) ? actionOffsetXValue : -actionOffsetXValue : 0;\r\n var actionOffsetYValue = this.initialOption(\"indent\") + this.initialOption(\"childIndent\") * index;\r\n var actionOffsetY = this._getDirectionIndex(actions, this.option(\"direction\")) * actionOffsetYValue;\r\n var actionPositionAtMy = action._options.silent(\"label\") ? this._isPositionLeft(this._getPosition()) ? \"left\" : \"right\" : \"center\";\r\n return {\r\n of: this.$content(),\r\n at: actionPositionAtMy,\r\n my: actionPositionAtMy,\r\n offset: {\r\n x: actionOffsetX,\r\n y: actionOffsetY\r\n }\r\n }\r\n }\r\n _outsideClickHandler(e) {\r\n if (this._isShadingShown) {\r\n var isShadingClick = $(e.target)[0] === this._$wrapper[0];\r\n if (isShadingClick) {\r\n e.preventDefault();\r\n this._clickHandler()\r\n }\r\n }\r\n }\r\n _setPosition() {\r\n if (this.option(\"visible\")) {\r\n this._hide();\r\n this._show()\r\n }\r\n }\r\n _getPosition() {\r\n return this._getDefaultOptions().position\r\n }\r\n _getInkRippleContainer() {\r\n return this.$content()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"actions\":\r\n if (this._isVisible()) {\r\n this._renderIcon();\r\n this._renderLabel()\r\n }\r\n this._renderCloseIcon();\r\n this._renderClick();\r\n this._renderActions();\r\n break;\r\n case \"maxSpeedDialActionCount\":\r\n this._renderActions();\r\n break;\r\n case \"closeIcon\":\r\n this._renderCloseIcon();\r\n break;\r\n case \"position\":\r\n super._optionChanged(args);\r\n this._setPosition();\r\n break;\r\n case \"label\":\r\n if (this._isVisible()) {\r\n this._renderLabel()\r\n }\r\n this._setPosition();\r\n break;\r\n case \"icon\":\r\n if (this._isVisible()) {\r\n this._renderIcon()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport function initAction(newAction) {\r\n newAction._options.silent(\"onInitializing\", null);\r\n var isActionExist = false;\r\n if (!speedDialMainItem) {\r\n var $fabMainElement = $(\"<div>\").appendTo(getSwatchContainer(newAction.$element()));\r\n speedDialMainItem = newAction._createComponent($fabMainElement, SpeedDialMainItem, extend({}, modifyActionOptions(newAction), {\r\n actions: [newAction]\r\n }))\r\n } else {\r\n var savedActions = speedDialMainItem.option(\"actions\");\r\n savedActions.forEach(action => {\r\n if (action._options.silent(\"id\") === newAction._options.silent(\"id\")) {\r\n isActionExist = true;\r\n return newAction\r\n }\r\n });\r\n delete speedDialMainItem._options.position;\r\n if (!isActionExist) {\r\n if (speedDialMainItem._getVisibleActions(savedActions).length >= speedDialMainItem.option(\"maxSpeedDialActionCount\")) {\r\n newAction.dispose();\r\n errors.log(\"W1014\");\r\n return\r\n }\r\n savedActions.push(newAction);\r\n speedDialMainItem.option(extend(speedDialMainItem._getCurrentOptions(savedActions), {\r\n actions: savedActions\r\n }))\r\n } else if (1 === savedActions.length) {\r\n speedDialMainItem.option(extend({}, modifyActionOptions(savedActions[0]), {\r\n actions: savedActions,\r\n position: speedDialMainItem._getPosition()\r\n }))\r\n } else {\r\n speedDialMainItem.option(extend(speedDialMainItem._getCurrentOptions(savedActions), {\r\n actions: savedActions\r\n }))\r\n }\r\n }\r\n}\r\nexport function disposeAction(actionId) {\r\n if (!speedDialMainItem) {\r\n return\r\n }\r\n var savedActions = speedDialMainItem.option(\"actions\");\r\n var savedActionsCount = savedActions.length;\r\n savedActions = savedActions.filter(action => action._options.silent(\"id\") !== actionId);\r\n if (savedActionsCount === savedActions.length) {\r\n return\r\n }\r\n if (!savedActions.length) {\r\n speedDialMainItem.dispose();\r\n speedDialMainItem.$element().remove();\r\n speedDialMainItem = null\r\n } else if (1 === savedActions.length) {\r\n speedDialMainItem.option(extend({}, modifyActionOptions(savedActions[0]), {\r\n actions: savedActions\r\n }))\r\n } else {\r\n speedDialMainItem.option({\r\n actions: savedActions\r\n })\r\n }\r\n}\r\nexport function repaint() {\r\n if (!speedDialMainItem) {\r\n return\r\n }\r\n var visibleActions = speedDialMainItem._getVisibleActions();\r\n var icon = 1 === visibleActions.length ? visibleActions[0].option(\"icon\") : speedDialMainItem._getDefaultOptions().icon;\r\n var label = 1 === visibleActions.length ? visibleActions[0].option(\"label\") : speedDialMainItem._getDefaultOptions().label;\r\n speedDialMainItem.option({\r\n actions: speedDialMainItem.option(\"actions\"),\r\n icon: icon,\r\n closeIcon: speedDialMainItem._getDefaultOptions().closeIcon,\r\n position: speedDialMainItem._getPosition(),\r\n label: label,\r\n maxSpeedDialActionCount: speedDialMainItem._getDefaultOptions().maxSpeedDialActionCount,\r\n direction: speedDialMainItem._getDefaultOptions().direction\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/speed_dial_action/speed_dial_action.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Guid from \"../../core/guid\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n initAction,\r\n disposeAction\r\n} from \"./speed_dial_main_item\";\r\nimport swatchContainer from \"../widget/swatch_container\";\r\nvar {\r\n getSwatchContainer: getSwatchContainer\r\n} = swatchContainer;\r\nvar ready = readyCallbacks.add;\r\nclass SpeedDialAction extends Widget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n icon: \"\",\r\n onClick: null,\r\n label: \"\",\r\n visible: true,\r\n index: 0,\r\n onContentReady: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n easing: \"cubic-bezier(0.4, 0, 0.2, 1)\",\r\n from: {\r\n scale: 0,\r\n opacity: 0\r\n },\r\n to: {\r\n scale: 1,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n easing: \"cubic-bezier(0.4, 0, 0.2, 1)\",\r\n from: {\r\n scale: 1,\r\n opacity: 1\r\n },\r\n to: {\r\n scale: 0,\r\n opacity: 0\r\n }\r\n }\r\n },\r\n id: new Guid\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onClick\":\r\n case \"icon\":\r\n case \"label\":\r\n case \"visible\":\r\n case \"index\":\r\n case \"onInitializing\":\r\n initAction(this);\r\n break;\r\n case \"animation\":\r\n case \"id\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _render() {\r\n this._toggleVisibility(false);\r\n if (!getSwatchContainer(this.$element())) {\r\n ready(() => initAction(this))\r\n } else {\r\n initAction(this)\r\n }\r\n }\r\n _dispose() {\r\n disposeAction(this._options.silent(\"id\"));\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxSpeedDialAction\", SpeedDialAction);\r\nexport default SpeedDialAction;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxSpeedDialAction from 'devextreme/ui/speed_dial_action';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxSpeedDialAction]\r\n\r\n */\r\nclass DxSpeedDialActionComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'click', emit: 'onClick' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconChange' },\r\n { emit: 'indexChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSpeedDialActionOptions.icon]\r\n \r\n */\r\n get icon() {\r\n return this._getOption('icon');\r\n }\r\n set icon(value) {\r\n this._setOption('icon', value);\r\n }\r\n /**\r\n * [descr:dxSpeedDialActionOptions.index]\r\n \r\n */\r\n get index() {\r\n return this._getOption('index');\r\n }\r\n set index(value) {\r\n this._setOption('index', value);\r\n }\r\n /**\r\n * [descr:dxSpeedDialActionOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxSpeedDialActionOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxSpeedDialAction(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxSpeedDialActionComponent.ɵfac = function DxSpeedDialActionComponent_Factory(t) { return new (t || DxSpeedDialActionComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSpeedDialActionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSpeedDialActionComponent, selectors: [[\"dx-speed-dial-action\"]], inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", icon: \"icon\", index: \"index\", label: \"label\", rtlEnabled: \"rtlEnabled\", tabIndex: \"tabIndex\", visible: \"visible\" }, outputs: { onClick: \"onClick\", onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconChange: \"iconChange\", indexChange: \"indexChange\", labelChange: \"labelChange\", rtlEnabledChange: \"rtlEnabledChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxSpeedDialActionComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSpeedDialActionComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-speed-dial-action',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], icon: [{\r\n type: Input\r\n }], index: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], onClick: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconChange: [{\r\n type: Output\r\n }], indexChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxSpeedDialActionModule {\r\n}\r\n/** @nocollapse */ DxSpeedDialActionModule.ɵfac = function DxSpeedDialActionModule_Factory(t) { return new (t || DxSpeedDialActionModule)(); };\r\n/** @nocollapse */ DxSpeedDialActionModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSpeedDialActionModule });\r\n/** @nocollapse */ DxSpeedDialActionModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSpeedDialActionModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSpeedDialActionComponent\r\n ],\r\n exports: [\r\n DxSpeedDialActionComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSpeedDialActionModule, { declarations: [DxSpeedDialActionComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSpeedDialActionComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSpeedDialActionComponent, DxSpeedDialActionModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxSwitch from 'devextreme/ui/switch';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxSwitchComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxSwitch]\r\n\r\n */\r\nclass DxSwitchComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'switchedOffTextChange' },\r\n { emit: 'switchedOnTextChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.switchedOffText]\r\n \r\n */\r\n get switchedOffText() {\r\n return this._getOption('switchedOffText');\r\n }\r\n set switchedOffText(value) {\r\n this._setOption('switchedOffText', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.switchedOnText]\r\n \r\n */\r\n get switchedOnText() {\r\n return this._getOption('switchedOnText');\r\n }\r\n set switchedOnText(value) {\r\n this._setOption('switchedOnText', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxSwitchOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxSwitch(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxSwitchComponent.ɵfac = function DxSwitchComponent_Factory(t) { return new (t || DxSwitchComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxSwitchComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxSwitchComponent, selectors: [[\"dx-switch\"]], hostBindings: function DxSwitchComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxSwitchComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxSwitchComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", isDirty: \"isDirty\", isValid: \"isValid\", name: \"name\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", switchedOffText: \"switchedOffText\", switchedOnText: \"switchedOnText\", tabIndex: \"tabIndex\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", nameChange: \"nameChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", switchedOffTextChange: \"switchedOffTextChange\", switchedOnTextChange: \"switchedOnTextChange\", tabIndexChange: \"tabIndexChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxSwitchComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSwitchComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-switch',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], switchedOffText: [{\r\n type: Input\r\n }], switchedOnText: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], switchedOffTextChange: [{\r\n type: Output\r\n }], switchedOnTextChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxSwitchModule {\r\n}\r\n/** @nocollapse */ DxSwitchModule.ɵfac = function DxSwitchModule_Factory(t) { return new (t || DxSwitchModule)(); };\r\n/** @nocollapse */ DxSwitchModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxSwitchModule });\r\n/** @nocollapse */ DxSwitchModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxSwitchModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxSwitchComponent\r\n ],\r\n exports: [\r\n DxSwitchComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxSwitchModule, { declarations: [DxSwitchComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxSwitchComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxSwitchComponent, DxSwitchModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxTabPanel from 'devextreme/ui/tab_panel';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTabPanel]\r\n\r\n */\r\nclass DxTabPanelComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'titleClick', emit: 'onTitleClick' },\r\n { subscribe: 'titleHold', emit: 'onTitleHold' },\r\n { subscribe: 'titleRendered', emit: 'onTitleRendered' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationEnabledChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconPositionChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'itemTitleTemplateChange' },\r\n { emit: 'loopChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollByContentChange' },\r\n { emit: 'scrollingEnabledChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'showNavButtonsChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'swipeEnabledChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'tabsPositionChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.animationEnabled]\r\n \r\n */\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.iconPosition]\r\n \r\n */\r\n get iconPosition() {\r\n return this._getOption('iconPosition');\r\n }\r\n set iconPosition(value) {\r\n this._setOption('iconPosition', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.itemTitleTemplate]\r\n \r\n */\r\n get itemTitleTemplate() {\r\n return this._getOption('itemTitleTemplate');\r\n }\r\n set itemTitleTemplate(value) {\r\n this._setOption('itemTitleTemplate', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.loop]\r\n \r\n */\r\n get loop() {\r\n return this._getOption('loop');\r\n }\r\n set loop(value) {\r\n this._setOption('loop', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.scrollByContent]\r\n \r\n */\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.scrollingEnabled]\r\n \r\n */\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n /**\r\n * [descr:dxMultiViewOptions.selectedIndex]\r\n \r\n */\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.showNavButtons]\r\n \r\n */\r\n get showNavButtons() {\r\n return this._getOption('showNavButtons');\r\n }\r\n set showNavButtons(value) {\r\n this._setOption('showNavButtons', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.swipeEnabled]\r\n \r\n */\r\n get swipeEnabled() {\r\n return this._getOption('swipeEnabled');\r\n }\r\n set swipeEnabled(value) {\r\n this._setOption('swipeEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTabPanelOptions.tabsPosition]\r\n \r\n */\r\n get tabsPosition() {\r\n return this._getOption('tabsPosition');\r\n }\r\n set tabsPosition(value) {\r\n this._setOption('tabsPosition', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTabPanel(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTabPanelComponent.ɵfac = function DxTabPanelComponent_Factory(t) { return new (t || DxTabPanelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTabPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTabPanelComponent, selectors: [[\"dx-tab-panel\"]], contentQueries: function DxTabPanelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animationEnabled: \"animationEnabled\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", iconPosition: \"iconPosition\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", itemTitleTemplate: \"itemTitleTemplate\", loop: \"loop\", noDataText: \"noDataText\", repaintChangesOnly: \"repaintChangesOnly\", rtlEnabled: \"rtlEnabled\", scrollByContent: \"scrollByContent\", scrollingEnabled: \"scrollingEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", showNavButtons: \"showNavButtons\", stylingMode: \"stylingMode\", swipeEnabled: \"swipeEnabled\", tabIndex: \"tabIndex\", tabsPosition: \"tabsPosition\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", onTitleClick: \"onTitleClick\", onTitleHold: \"onTitleHold\", onTitleRendered: \"onTitleRendered\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationEnabledChange: \"animationEnabledChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconPositionChange: \"iconPositionChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", itemTitleTemplateChange: \"itemTitleTemplateChange\", loopChange: \"loopChange\", noDataTextChange: \"noDataTextChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollByContentChange: \"scrollByContentChange\", scrollingEnabledChange: \"scrollingEnabledChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\", showNavButtonsChange: \"showNavButtonsChange\", stylingModeChange: \"stylingModeChange\", swipeEnabledChange: \"swipeEnabledChange\", tabIndexChange: \"tabIndexChange\", tabsPositionChange: \"tabsPositionChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTabPanelComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTabPanelComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tab-panel',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], iconPosition: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], itemTitleTemplate: [{\r\n type: Input\r\n }], loop: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollByContent: [{\r\n type: Input\r\n }], scrollingEnabled: [{\r\n type: Input\r\n }], selectedIndex: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], showNavButtons: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], swipeEnabled: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], tabsPosition: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onTitleClick: [{\r\n type: Output\r\n }], onTitleHold: [{\r\n type: Output\r\n }], onTitleRendered: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationEnabledChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconPositionChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], itemTitleTemplateChange: [{\r\n type: Output\r\n }], loopChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollByContentChange: [{\r\n type: Output\r\n }], scrollingEnabledChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], showNavButtonsChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], swipeEnabledChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], tabsPositionChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxTabPanelModule {\r\n}\r\n/** @nocollapse */ DxTabPanelModule.ɵfac = function DxTabPanelModule_Factory(t) { return new (t || DxTabPanelModule)(); };\r\n/** @nocollapse */ DxTabPanelModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTabPanelModule });\r\n/** @nocollapse */ DxTabPanelModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTabPanelModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTabPanelComponent\r\n ],\r\n exports: [\r\n DxTabPanelComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTabPanelModule, { declarations: [DxTabPanelComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTabPanelComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTabPanelComponent, DxTabPanelModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxTabs from 'devextreme/ui/tabs';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTabs]\r\n\r\n */\r\nclass DxTabsComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'iconPositionChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'orientationChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollByContentChange' },\r\n { emit: 'scrollingEnabledChange' },\r\n { emit: 'selectedIndexChange' },\r\n { emit: 'selectedItemChange' },\r\n { emit: 'selectedItemKeysChange' },\r\n { emit: 'selectedItemsChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'showNavButtonsChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.iconPosition]\r\n \r\n */\r\n get iconPosition() {\r\n return this._getOption('iconPosition');\r\n }\r\n set iconPosition(value) {\r\n this._setOption('iconPosition', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.orientation]\r\n \r\n */\r\n get orientation() {\r\n return this._getOption('orientation');\r\n }\r\n set orientation(value) {\r\n this._setOption('orientation', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.scrollByContent]\r\n \r\n */\r\n get scrollByContent() {\r\n return this._getOption('scrollByContent');\r\n }\r\n set scrollByContent(value) {\r\n this._setOption('scrollByContent', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.scrollingEnabled]\r\n \r\n */\r\n get scrollingEnabled() {\r\n return this._getOption('scrollingEnabled');\r\n }\r\n set scrollingEnabled(value) {\r\n this._setOption('scrollingEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedIndex]\r\n \r\n */\r\n get selectedIndex() {\r\n return this._getOption('selectedIndex');\r\n }\r\n set selectedIndex(value) {\r\n this._setOption('selectedIndex', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItem]\r\n \r\n */\r\n get selectedItem() {\r\n return this._getOption('selectedItem');\r\n }\r\n set selectedItem(value) {\r\n this._setOption('selectedItem', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItemKeys]\r\n \r\n */\r\n get selectedItemKeys() {\r\n return this._getOption('selectedItemKeys');\r\n }\r\n set selectedItemKeys(value) {\r\n this._setOption('selectedItemKeys', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.selectedItems]\r\n \r\n */\r\n get selectedItems() {\r\n return this._getOption('selectedItems');\r\n }\r\n set selectedItems(value) {\r\n this._setOption('selectedItems', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.showNavButtons]\r\n \r\n */\r\n get showNavButtons() {\r\n return this._getOption('showNavButtons');\r\n }\r\n set showNavButtons(value) {\r\n this._setOption('showNavButtons', value);\r\n }\r\n /**\r\n * [descr:dxTabsOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTabs(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('selectedItemKeys', changes);\r\n this.setupChanges('selectedItems', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('selectedItemKeys');\r\n this._idh.doCheck('selectedItems');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTabsComponent.ɵfac = function DxTabsComponent_Factory(t) { return new (t || DxTabsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTabsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTabsComponent, selectors: [[\"dx-tabs\"]], contentQueries: function DxTabsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", iconPosition: \"iconPosition\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", keyExpr: \"keyExpr\", noDataText: \"noDataText\", orientation: \"orientation\", repaintChangesOnly: \"repaintChangesOnly\", rtlEnabled: \"rtlEnabled\", scrollByContent: \"scrollByContent\", scrollingEnabled: \"scrollingEnabled\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedItemKeys: \"selectedItemKeys\", selectedItems: \"selectedItems\", selectionMode: \"selectionMode\", showNavButtons: \"showNavButtons\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", iconPositionChange: \"iconPositionChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", keyExprChange: \"keyExprChange\", noDataTextChange: \"noDataTextChange\", orientationChange: \"orientationChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollByContentChange: \"scrollByContentChange\", scrollingEnabledChange: \"scrollingEnabledChange\", selectedIndexChange: \"selectedIndexChange\", selectedItemChange: \"selectedItemChange\", selectedItemKeysChange: \"selectedItemKeysChange\", selectedItemsChange: \"selectedItemsChange\", selectionModeChange: \"selectionModeChange\", showNavButtonsChange: \"showNavButtonsChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTabsComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTabsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tabs',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], iconPosition: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], orientation: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollByContent: [{\r\n type: Input\r\n }], scrollingEnabled: [{\r\n type: Input\r\n }], selectedIndex: [{\r\n type: Input\r\n }], selectedItem: [{\r\n type: Input\r\n }], selectedItemKeys: [{\r\n type: Input\r\n }], selectedItems: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], showNavButtons: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], iconPositionChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], orientationChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollByContentChange: [{\r\n type: Output\r\n }], scrollingEnabledChange: [{\r\n type: Output\r\n }], selectedIndexChange: [{\r\n type: Output\r\n }], selectedItemChange: [{\r\n type: Output\r\n }], selectedItemKeysChange: [{\r\n type: Output\r\n }], selectedItemsChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], showNavButtonsChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxTabsModule {\r\n}\r\n/** @nocollapse */ DxTabsModule.ɵfac = function DxTabsModule_Factory(t) { return new (t || DxTabsModule)(); };\r\n/** @nocollapse */ DxTabsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTabsModule });\r\n/** @nocollapse */ DxTabsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTabsModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTabsComponent\r\n ],\r\n exports: [\r\n DxTabsComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTabsModule, { declarations: [DxTabsComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTabsComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTabsComponent, DxTabsModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxTagBox from 'devextreme/ui/tag_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiItemComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxTagBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxTagBox]\r\n\r\n */\r\nclass DxTagBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'closed', emit: 'onClosed' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'customItemCreating', emit: 'onCustomItemCreating' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'multiTagPreparing', emit: 'onMultiTagPreparing' },\r\n { subscribe: 'opened', emit: 'onOpened' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectAllValueChanged', emit: 'onSelectAllValueChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'acceptCustomValueChange' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'applyValueModeChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'customItemCreateEventChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'dropDownButtonTemplateChange' },\r\n { emit: 'dropDownOptionsChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'fieldTemplateChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'groupedChange' },\r\n { emit: 'groupTemplateChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideSelectedItemsChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxDisplayedTagsChange' },\r\n { emit: 'maxFilterQueryLengthChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'minSearchLengthChange' },\r\n { emit: 'multilineChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'openedChange' },\r\n { emit: 'openOnFieldClickChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'searchEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'selectAllModeChange' },\r\n { emit: 'selectAllTextChange' },\r\n { emit: 'selectedItemsChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showDataBeforeSearchChange' },\r\n { emit: 'showDropDownButtonChange' },\r\n { emit: 'showMultiTagOnlyChange' },\r\n { emit: 'showSelectionControlsChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'tagTemplateChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useItemTextAsTitleChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'valueExprChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapItemTextChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.acceptCustomValue]\r\n \r\n */\r\n get acceptCustomValue() {\r\n return this._getOption('acceptCustomValue');\r\n }\r\n set acceptCustomValue(value) {\r\n this._setOption('acceptCustomValue', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.applyValueMode]\r\n \r\n */\r\n get applyValueMode() {\r\n return this._getOption('applyValueMode');\r\n }\r\n set applyValueMode(value) {\r\n this._setOption('applyValueMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.customItemCreateEvent]\r\n \r\n */\r\n get customItemCreateEvent() {\r\n return this._getOption('customItemCreateEvent');\r\n }\r\n set customItemCreateEvent(value) {\r\n this._setOption('customItemCreateEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.dropDownButtonTemplate]\r\n \r\n */\r\n get dropDownButtonTemplate() {\r\n return this._getOption('dropDownButtonTemplate');\r\n }\r\n set dropDownButtonTemplate(value) {\r\n this._setOption('dropDownButtonTemplate', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.dropDownOptions]\r\n \r\n */\r\n get dropDownOptions() {\r\n return this._getOption('dropDownOptions');\r\n }\r\n set dropDownOptions(value) {\r\n this._setOption('dropDownOptions', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.fieldTemplate]\r\n \r\n */\r\n get fieldTemplate() {\r\n return this._getOption('fieldTemplate');\r\n }\r\n set fieldTemplate(value) {\r\n this._setOption('fieldTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.grouped]\r\n \r\n */\r\n get grouped() {\r\n return this._getOption('grouped');\r\n }\r\n set grouped(value) {\r\n this._setOption('grouped', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.groupTemplate]\r\n \r\n */\r\n get groupTemplate() {\r\n return this._getOption('groupTemplate');\r\n }\r\n set groupTemplate(value) {\r\n this._setOption('groupTemplate', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.hideSelectedItems]\r\n \r\n */\r\n get hideSelectedItems() {\r\n return this._getOption('hideSelectedItems');\r\n }\r\n set hideSelectedItems(value) {\r\n this._setOption('hideSelectedItems', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.maxDisplayedTags]\r\n \r\n */\r\n get maxDisplayedTags() {\r\n return this._getOption('maxDisplayedTags');\r\n }\r\n set maxDisplayedTags(value) {\r\n this._setOption('maxDisplayedTags', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.maxFilterQueryLength]\r\n \r\n */\r\n get maxFilterQueryLength() {\r\n return this._getOption('maxFilterQueryLength');\r\n }\r\n set maxFilterQueryLength(value) {\r\n this._setOption('maxFilterQueryLength', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.minSearchLength]\r\n \r\n */\r\n get minSearchLength() {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.multiline]\r\n \r\n */\r\n get multiline() {\r\n return this._getOption('multiline');\r\n }\r\n set multiline(value) {\r\n this._setOption('multiline', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.opened]\r\n \r\n */\r\n get opened() {\r\n return this._getOption('opened');\r\n }\r\n set opened(value) {\r\n this._setOption('opened', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.openOnFieldClick]\r\n \r\n */\r\n get openOnFieldClick() {\r\n return this._getOption('openOnFieldClick');\r\n }\r\n set openOnFieldClick(value) {\r\n this._setOption('openOnFieldClick', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchEnabled]\r\n \r\n */\r\n get searchEnabled() {\r\n return this._getOption('searchEnabled');\r\n }\r\n set searchEnabled(value) {\r\n this._setOption('searchEnabled', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.selectAllMode]\r\n \r\n */\r\n get selectAllMode() {\r\n return this._getOption('selectAllMode');\r\n }\r\n set selectAllMode(value) {\r\n this._setOption('selectAllMode', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.selectAllText]\r\n \r\n */\r\n get selectAllText() {\r\n return this._getOption('selectAllText');\r\n }\r\n set selectAllText(value) {\r\n this._setOption('selectAllText', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.selectedItems]\r\n \r\n */\r\n get selectedItems() {\r\n return this._getOption('selectedItems');\r\n }\r\n set selectedItems(value) {\r\n this._setOption('selectedItems', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.showDataBeforeSearch]\r\n \r\n */\r\n get showDataBeforeSearch() {\r\n return this._getOption('showDataBeforeSearch');\r\n }\r\n set showDataBeforeSearch(value) {\r\n this._setOption('showDataBeforeSearch', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.showDropDownButton]\r\n \r\n */\r\n get showDropDownButton() {\r\n return this._getOption('showDropDownButton');\r\n }\r\n set showDropDownButton(value) {\r\n this._setOption('showDropDownButton', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.showMultiTagOnly]\r\n \r\n */\r\n get showMultiTagOnly() {\r\n return this._getOption('showMultiTagOnly');\r\n }\r\n set showMultiTagOnly(value) {\r\n this._setOption('showMultiTagOnly', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.showSelectionControls]\r\n \r\n */\r\n get showSelectionControls() {\r\n return this._getOption('showSelectionControls');\r\n }\r\n set showSelectionControls(value) {\r\n this._setOption('showSelectionControls', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.tagTemplate]\r\n \r\n */\r\n get tagTemplate() {\r\n return this._getOption('tagTemplate');\r\n }\r\n set tagTemplate(value) {\r\n this._setOption('tagTemplate', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.useItemTextAsTitle]\r\n \r\n */\r\n get useItemTextAsTitle() {\r\n return this._getOption('useItemTextAsTitle');\r\n }\r\n set useItemTextAsTitle(value) {\r\n this._setOption('useItemTextAsTitle', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:dxDropDownEditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxTagBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxSelectBoxOptions.valueChangeEvent]\r\n \r\n * @deprecated [depNote:dxSelectBoxOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:DataExpressionMixinOptions.valueExpr]\r\n \r\n */\r\n get valueExpr() {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value) {\r\n this._setOption('valueExpr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxDropDownListOptions.wrapItemText]\r\n \r\n */\r\n get wrapItemText() {\r\n return this._getOption('wrapItemText');\r\n }\r\n set wrapItemText(value) {\r\n this._setOption('wrapItemText', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTagBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('searchExpr', changes);\r\n this.setupChanges('selectedItems', changes);\r\n this.setupChanges('validationErrors', changes);\r\n this.setupChanges('value', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('searchExpr');\r\n this._idh.doCheck('selectedItems');\r\n this._idh.doCheck('validationErrors');\r\n this._idh.doCheck('value');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTagBoxComponent.ɵfac = function DxTagBoxComponent_Factory(t) { return new (t || DxTagBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTagBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTagBoxComponent, selectors: [[\"dx-tag-box\"]], contentQueries: function DxTagBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, hostBindings: function DxTagBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxTagBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxTagBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { acceptCustomValue: \"acceptCustomValue\", accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", applyValueMode: \"applyValueMode\", buttons: \"buttons\", customItemCreateEvent: \"customItemCreateEvent\", dataSource: \"dataSource\", deferRendering: \"deferRendering\", disabled: \"disabled\", displayExpr: \"displayExpr\", dropDownButtonTemplate: \"dropDownButtonTemplate\", dropDownOptions: \"dropDownOptions\", elementAttr: \"elementAttr\", fieldTemplate: \"fieldTemplate\", focusStateEnabled: \"focusStateEnabled\", grouped: \"grouped\", groupTemplate: \"groupTemplate\", height: \"height\", hideSelectedItems: \"hideSelectedItems\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", items: \"items\", itemTemplate: \"itemTemplate\", label: \"label\", labelMode: \"labelMode\", maxDisplayedTags: \"maxDisplayedTags\", maxFilterQueryLength: \"maxFilterQueryLength\", maxLength: \"maxLength\", minSearchLength: \"minSearchLength\", multiline: \"multiline\", name: \"name\", noDataText: \"noDataText\", opened: \"opened\", openOnFieldClick: \"openOnFieldClick\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", searchEnabled: \"searchEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchTimeout: \"searchTimeout\", selectAllMode: \"selectAllMode\", selectAllText: \"selectAllText\", selectedItems: \"selectedItems\", showClearButton: \"showClearButton\", showDataBeforeSearch: \"showDataBeforeSearch\", showDropDownButton: \"showDropDownButton\", showMultiTagOnly: \"showMultiTagOnly\", showSelectionControls: \"showSelectionControls\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", tagTemplate: \"tagTemplate\", text: \"text\", useItemTextAsTitle: \"useItemTextAsTitle\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", valueExpr: \"valueExpr\", visible: \"visible\", width: \"width\", wrapItemText: \"wrapItemText\" }, outputs: { onChange: \"onChange\", onClosed: \"onClosed\", onContentReady: \"onContentReady\", onCustomItemCreating: \"onCustomItemCreating\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onItemClick: \"onItemClick\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onMultiTagPreparing: \"onMultiTagPreparing\", onOpened: \"onOpened\", onOptionChanged: \"onOptionChanged\", onSelectAllValueChanged: \"onSelectAllValueChanged\", onSelectionChanged: \"onSelectionChanged\", onValueChanged: \"onValueChanged\", acceptCustomValueChange: \"acceptCustomValueChange\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", applyValueModeChange: \"applyValueModeChange\", buttonsChange: \"buttonsChange\", customItemCreateEventChange: \"customItemCreateEventChange\", dataSourceChange: \"dataSourceChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", displayExprChange: \"displayExprChange\", dropDownButtonTemplateChange: \"dropDownButtonTemplateChange\", dropDownOptionsChange: \"dropDownOptionsChange\", elementAttrChange: \"elementAttrChange\", fieldTemplateChange: \"fieldTemplateChange\", focusStateEnabledChange: \"focusStateEnabledChange\", groupedChange: \"groupedChange\", groupTemplateChange: \"groupTemplateChange\", heightChange: \"heightChange\", hideSelectedItemsChange: \"hideSelectedItemsChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxDisplayedTagsChange: \"maxDisplayedTagsChange\", maxFilterQueryLengthChange: \"maxFilterQueryLengthChange\", maxLengthChange: \"maxLengthChange\", minSearchLengthChange: \"minSearchLengthChange\", multilineChange: \"multilineChange\", nameChange: \"nameChange\", noDataTextChange: \"noDataTextChange\", openedChange: \"openedChange\", openOnFieldClickChange: \"openOnFieldClickChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", searchEnabledChange: \"searchEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchTimeoutChange: \"searchTimeoutChange\", selectAllModeChange: \"selectAllModeChange\", selectAllTextChange: \"selectAllTextChange\", selectedItemsChange: \"selectedItemsChange\", showClearButtonChange: \"showClearButtonChange\", showDataBeforeSearchChange: \"showDataBeforeSearchChange\", showDropDownButtonChange: \"showDropDownButtonChange\", showMultiTagOnlyChange: \"showMultiTagOnlyChange\", showSelectionControlsChange: \"showSelectionControlsChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", tagTemplateChange: \"tagTemplateChange\", textChange: \"textChange\", useItemTextAsTitleChange: \"useItemTextAsTitleChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", valueExprChange: \"valueExprChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapItemTextChange: \"wrapItemTextChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTagBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTagBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tag-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { acceptCustomValue: [{\r\n type: Input\r\n }], accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], applyValueMode: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], customItemCreateEvent: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], dropDownButtonTemplate: [{\r\n type: Input\r\n }], dropDownOptions: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], fieldTemplate: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], grouped: [{\r\n type: Input\r\n }], groupTemplate: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideSelectedItems: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], maxDisplayedTags: [{\r\n type: Input\r\n }], maxFilterQueryLength: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], minSearchLength: [{\r\n type: Input\r\n }], multiline: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], opened: [{\r\n type: Input\r\n }], openOnFieldClick: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], searchEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], selectAllMode: [{\r\n type: Input\r\n }], selectAllText: [{\r\n type: Input\r\n }], selectedItems: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showDataBeforeSearch: [{\r\n type: Input\r\n }], showDropDownButton: [{\r\n type: Input\r\n }], showMultiTagOnly: [{\r\n type: Input\r\n }], showSelectionControls: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], tagTemplate: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useItemTextAsTitle: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], valueExpr: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapItemText: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onClosed: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCustomItemCreating: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onMultiTagPreparing: [{\r\n type: Output\r\n }], onOpened: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectAllValueChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], acceptCustomValueChange: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], applyValueModeChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], customItemCreateEventChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], dropDownButtonTemplateChange: [{\r\n type: Output\r\n }], dropDownOptionsChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], fieldTemplateChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], groupedChange: [{\r\n type: Output\r\n }], groupTemplateChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideSelectedItemsChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxDisplayedTagsChange: [{\r\n type: Output\r\n }], maxFilterQueryLengthChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], minSearchLengthChange: [{\r\n type: Output\r\n }], multilineChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], openedChange: [{\r\n type: Output\r\n }], openOnFieldClickChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], searchEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], selectAllModeChange: [{\r\n type: Output\r\n }], selectAllTextChange: [{\r\n type: Output\r\n }], selectedItemsChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showDataBeforeSearchChange: [{\r\n type: Output\r\n }], showDropDownButtonChange: [{\r\n type: Output\r\n }], showMultiTagOnlyChange: [{\r\n type: Output\r\n }], showSelectionControlsChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], tagTemplateChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useItemTextAsTitleChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], valueExprChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapItemTextChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxTagBoxModule {\r\n}\r\n/** @nocollapse */ DxTagBoxModule.ɵfac = function DxTagBoxModule_Factory(t) { return new (t || DxTagBoxModule)(); };\r\n/** @nocollapse */ DxTagBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTagBoxModule });\r\n/** @nocollapse */ DxTagBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTagBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTagBoxComponent\r\n ],\r\n exports: [\r\n DxTagBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTagBoxModule, { declarations: [DxTagBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTagBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxoDropDownOptionsModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTagBoxComponent, DxTagBoxModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport DxTextArea from 'devextreme/ui/text_area';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxTextAreaComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxTextArea]\r\n\r\n */\r\nclass DxTextAreaComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'autoResizeEnabledChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextAreaOptions.autoResizeEnabled]\r\n \r\n */\r\n get autoResizeEnabled() {\r\n return this._getOption('autoResizeEnabled');\r\n }\r\n set autoResizeEnabled(value) {\r\n this._setOption('autoResizeEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTextAreaOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxTextAreaOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextAreaOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n _createInstance(element, options) {\r\n return new DxTextArea(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTextAreaComponent.ɵfac = function DxTextAreaComponent_Factory(t) { return new (t || DxTextAreaComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTextAreaComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTextAreaComponent, selectors: [[\"dx-text-area\"]], hostBindings: function DxTextAreaComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxTextAreaComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxTextAreaComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", autoResizeEnabled: \"autoResizeEnabled\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", label: \"label\", labelMode: \"labelMode\", maxHeight: \"maxHeight\", maxLength: \"maxLength\", minHeight: \"minHeight\", name: \"name\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", autoResizeEnabledChange: \"autoResizeEnabledChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maxHeightChange: \"maxHeightChange\", maxLengthChange: \"maxLengthChange\", minHeightChange: \"minHeightChange\", nameChange: \"nameChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", spellcheckChange: \"spellcheckChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTextAreaComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTextAreaComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-text-area',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], autoResizeEnabled: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], autoResizeEnabledChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }] }); })();\r\nclass DxTextAreaModule {\r\n}\r\n/** @nocollapse */ DxTextAreaModule.ɵfac = function DxTextAreaModule_Factory(t) { return new (t || DxTextAreaModule)(); };\r\n/** @nocollapse */ DxTextAreaModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTextAreaModule });\r\n/** @nocollapse */ DxTextAreaModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTextAreaModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTextAreaComponent\r\n ],\r\n exports: [\r\n DxTextAreaComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTextAreaModule, { declarations: [DxTextAreaComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTextAreaComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTextAreaComponent, DxTextAreaModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { forwardRef, PLATFORM_ID, Component, Inject, Input, Output, HostListener, ContentChildren, NgModule } from '@angular/core';\nimport DxTextBox from 'devextreme/ui/text_box';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiButtonComponent, DxiButtonModule, DxoOptionsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst CUSTOM_VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DxTextBoxComponent),\r\n multi: true\r\n};\r\n/**\r\n * [descr:dxTextBox]\r\n\r\n */\r\nclass DxTextBoxComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this.touched = (_) => { };\r\n this._createEventEmitters([\r\n { subscribe: 'change', emit: 'onChange' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'copy', emit: 'onCopy' },\r\n { subscribe: 'cut', emit: 'onCut' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'enterKey', emit: 'onEnterKey' },\r\n { subscribe: 'focusIn', emit: 'onFocusIn' },\r\n { subscribe: 'focusOut', emit: 'onFocusOut' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'input', emit: 'onInput' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'keyUp', emit: 'onKeyUp' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'paste', emit: 'onPaste' },\r\n { subscribe: 'valueChanged', emit: 'onValueChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'buttonsChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'inputAttrChange' },\r\n { emit: 'isDirtyChange' },\r\n { emit: 'isValidChange' },\r\n { emit: 'labelChange' },\r\n { emit: 'labelModeChange' },\r\n { emit: 'maskChange' },\r\n { emit: 'maskCharChange' },\r\n { emit: 'maskInvalidMessageChange' },\r\n { emit: 'maskRulesChange' },\r\n { emit: 'maxLengthChange' },\r\n { emit: 'modeChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'placeholderChange' },\r\n { emit: 'readOnlyChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showClearButtonChange' },\r\n { emit: 'showMaskModeChange' },\r\n { emit: 'spellcheckChange' },\r\n { emit: 'stylingModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'textChange' },\r\n { emit: 'useMaskedValueChange' },\r\n { emit: 'validationErrorChange' },\r\n { emit: 'validationErrorsChange' },\r\n { emit: 'validationMessageModeChange' },\r\n { emit: 'validationMessagePositionChange' },\r\n { emit: 'validationStatusChange' },\r\n { emit: 'valueChange' },\r\n { emit: 'valueChangeEventChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'onBlur' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.buttons]\r\n \r\n */\r\n get buttons() {\r\n return this._getOption('buttons');\r\n }\r\n set buttons(value) {\r\n this._setOption('buttons', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.inputAttr]\r\n \r\n */\r\n get inputAttr() {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value) {\r\n this._setOption('inputAttr', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isDirty]\r\n \r\n */\r\n get isDirty() {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value) {\r\n this._setOption('isDirty', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.isValid]\r\n \r\n */\r\n get isValid() {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value) {\r\n this._setOption('isValid', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.label]\r\n \r\n */\r\n get label() {\r\n return this._getOption('label');\r\n }\r\n set label(value) {\r\n this._setOption('label', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.labelMode]\r\n \r\n */\r\n get labelMode() {\r\n return this._getOption('labelMode');\r\n }\r\n set labelMode(value) {\r\n this._setOption('labelMode', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.mask]\r\n \r\n */\r\n get mask() {\r\n return this._getOption('mask');\r\n }\r\n set mask(value) {\r\n this._setOption('mask', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.maskChar]\r\n \r\n */\r\n get maskChar() {\r\n return this._getOption('maskChar');\r\n }\r\n set maskChar(value) {\r\n this._setOption('maskChar', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.maskInvalidMessage]\r\n \r\n */\r\n get maskInvalidMessage() {\r\n return this._getOption('maskInvalidMessage');\r\n }\r\n set maskInvalidMessage(value) {\r\n this._setOption('maskInvalidMessage', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.maskRules]\r\n \r\n */\r\n get maskRules() {\r\n return this._getOption('maskRules');\r\n }\r\n set maskRules(value) {\r\n this._setOption('maskRules', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.maxLength]\r\n \r\n */\r\n get maxLength() {\r\n return this._getOption('maxLength');\r\n }\r\n set maxLength(value) {\r\n this._setOption('maxLength', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.mode]\r\n \r\n */\r\n get mode() {\r\n return this._getOption('mode');\r\n }\r\n set mode(value) {\r\n this._setOption('mode', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.placeholder]\r\n \r\n */\r\n get placeholder() {\r\n return this._getOption('placeholder');\r\n }\r\n set placeholder(value) {\r\n this._setOption('placeholder', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.readOnly]\r\n \r\n */\r\n get readOnly() {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value) {\r\n this._setOption('readOnly', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showClearButton]\r\n \r\n */\r\n get showClearButton() {\r\n return this._getOption('showClearButton');\r\n }\r\n set showClearButton(value) {\r\n this._setOption('showClearButton', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.showMaskMode]\r\n \r\n */\r\n get showMaskMode() {\r\n return this._getOption('showMaskMode');\r\n }\r\n set showMaskMode(value) {\r\n this._setOption('showMaskMode', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.spellcheck]\r\n \r\n */\r\n get spellcheck() {\r\n return this._getOption('spellcheck');\r\n }\r\n set spellcheck(value) {\r\n this._setOption('spellcheck', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.stylingMode]\r\n \r\n */\r\n get stylingMode() {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value) {\r\n this._setOption('stylingMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.text]\r\n \r\n */\r\n get text() {\r\n return this._getOption('text');\r\n }\r\n set text(value) {\r\n this._setOption('text', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.useMaskedValue]\r\n \r\n */\r\n get useMaskedValue() {\r\n return this._getOption('useMaskedValue');\r\n }\r\n set useMaskedValue(value) {\r\n this._setOption('useMaskedValue', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationError]\r\n \r\n */\r\n get validationError() {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value) {\r\n this._setOption('validationError', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationErrors]\r\n \r\n */\r\n get validationErrors() {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value) {\r\n this._setOption('validationErrors', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessageMode]\r\n \r\n */\r\n get validationMessageMode() {\r\n return this._getOption('validationMessageMode');\r\n }\r\n set validationMessageMode(value) {\r\n this._setOption('validationMessageMode', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationMessagePosition]\r\n \r\n */\r\n get validationMessagePosition() {\r\n return this._getOption('validationMessagePosition');\r\n }\r\n set validationMessagePosition(value) {\r\n this._setOption('validationMessagePosition', value);\r\n }\r\n /**\r\n * [descr:EditorOptions.validationStatus]\r\n \r\n */\r\n get validationStatus() {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value) {\r\n this._setOption('validationStatus', value);\r\n }\r\n /**\r\n * [descr:dxTextBoxOptions.value]\r\n \r\n */\r\n get value() {\r\n return this._getOption('value');\r\n }\r\n set value(value) {\r\n this._setOption('value', value);\r\n }\r\n /**\r\n * [descr:dxTextEditorOptions.valueChangeEvent]\r\n \r\n */\r\n get valueChangeEvent() {\r\n return this._getOption('valueChangeEvent');\r\n }\r\n set valueChangeEvent(value) {\r\n this._setOption('valueChangeEvent', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n change(_) { }\r\n get buttonsChildren() {\r\n return this._getOption('buttons');\r\n }\r\n set buttonsChildren(value) {\r\n this.setChildren('buttons', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTextBox(element, options);\r\n }\r\n writeValue(value) {\r\n this.eventHelper.lockedValueChangeEvent = true;\r\n this.value = value;\r\n this.eventHelper.lockedValueChangeEvent = false;\r\n }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n registerOnChange(fn) { this.change = fn; }\r\n registerOnTouched(fn) { this.touched = fn; }\r\n _createWidget(element) {\r\n super._createWidget(element);\r\n this.instance.on('focusOut', (e) => {\r\n this.eventHelper.fireNgEvent('onBlur', [e]);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('buttons', changes);\r\n this.setupChanges('validationErrors', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('buttons');\r\n this._idh.doCheck('validationErrors');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTextBoxComponent.ɵfac = function DxTextBoxComponent_Factory(t) { return new (t || DxTextBoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTextBoxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTextBoxComponent, selectors: [[\"dx-text-box\"]], contentQueries: function DxTextBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);\r\n } }, hostBindings: function DxTextBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵlistener(\"valueChange\", function DxTextBoxComponent_valueChange_HostBindingHandler($event) { return ctx.change($event); })(\"onBlur\", function DxTextBoxComponent_onBlur_HostBindingHandler($event) { return ctx.touched($event); });\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", buttons: \"buttons\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", inputAttr: \"inputAttr\", isDirty: \"isDirty\", isValid: \"isValid\", label: \"label\", labelMode: \"labelMode\", mask: \"mask\", maskChar: \"maskChar\", maskInvalidMessage: \"maskInvalidMessage\", maskRules: \"maskRules\", maxLength: \"maxLength\", mode: \"mode\", name: \"name\", placeholder: \"placeholder\", readOnly: \"readOnly\", rtlEnabled: \"rtlEnabled\", showClearButton: \"showClearButton\", showMaskMode: \"showMaskMode\", spellcheck: \"spellcheck\", stylingMode: \"stylingMode\", tabIndex: \"tabIndex\", text: \"text\", useMaskedValue: \"useMaskedValue\", validationError: \"validationError\", validationErrors: \"validationErrors\", validationMessageMode: \"validationMessageMode\", validationMessagePosition: \"validationMessagePosition\", validationStatus: \"validationStatus\", value: \"value\", valueChangeEvent: \"valueChangeEvent\", visible: \"visible\", width: \"width\" }, outputs: { onChange: \"onChange\", onContentReady: \"onContentReady\", onCopy: \"onCopy\", onCut: \"onCut\", onDisposing: \"onDisposing\", onEnterKey: \"onEnterKey\", onFocusIn: \"onFocusIn\", onFocusOut: \"onFocusOut\", onInitialized: \"onInitialized\", onInput: \"onInput\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onOptionChanged: \"onOptionChanged\", onPaste: \"onPaste\", onValueChanged: \"onValueChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", buttonsChange: \"buttonsChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", inputAttrChange: \"inputAttrChange\", isDirtyChange: \"isDirtyChange\", isValidChange: \"isValidChange\", labelChange: \"labelChange\", labelModeChange: \"labelModeChange\", maskChange: \"maskChange\", maskCharChange: \"maskCharChange\", maskInvalidMessageChange: \"maskInvalidMessageChange\", maskRulesChange: \"maskRulesChange\", maxLengthChange: \"maxLengthChange\", modeChange: \"modeChange\", nameChange: \"nameChange\", placeholderChange: \"placeholderChange\", readOnlyChange: \"readOnlyChange\", rtlEnabledChange: \"rtlEnabledChange\", showClearButtonChange: \"showClearButtonChange\", showMaskModeChange: \"showMaskModeChange\", spellcheckChange: \"spellcheckChange\", stylingModeChange: \"stylingModeChange\", tabIndexChange: \"tabIndexChange\", textChange: \"textChange\", useMaskedValueChange: \"useMaskedValueChange\", validationErrorChange: \"validationErrorChange\", validationErrorsChange: \"validationErrorsChange\", validationMessageModeChange: \"validationMessageModeChange\", validationMessagePositionChange: \"validationMessagePositionChange\", validationStatusChange: \"validationStatusChange\", valueChange: \"valueChange\", valueChangeEventChange: \"valueChangeEventChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", onBlur: \"onBlur\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTextBoxComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTextBoxComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-text-box',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n CUSTOM_VALUE_ACCESSOR_PROVIDER,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], buttons: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], inputAttr: [{\r\n type: Input\r\n }], isDirty: [{\r\n type: Input\r\n }], isValid: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], labelMode: [{\r\n type: Input\r\n }], mask: [{\r\n type: Input\r\n }], maskChar: [{\r\n type: Input\r\n }], maskInvalidMessage: [{\r\n type: Input\r\n }], maskRules: [{\r\n type: Input\r\n }], maxLength: [{\r\n type: Input\r\n }], mode: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], placeholder: [{\r\n type: Input\r\n }], readOnly: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showClearButton: [{\r\n type: Input\r\n }], showMaskMode: [{\r\n type: Input\r\n }], spellcheck: [{\r\n type: Input\r\n }], stylingMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], text: [{\r\n type: Input\r\n }], useMaskedValue: [{\r\n type: Input\r\n }], validationError: [{\r\n type: Input\r\n }], validationErrors: [{\r\n type: Input\r\n }], validationMessageMode: [{\r\n type: Input\r\n }], validationMessagePosition: [{\r\n type: Input\r\n }], validationStatus: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], valueChangeEvent: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onChange: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onCopy: [{\r\n type: Output\r\n }], onCut: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEnterKey: [{\r\n type: Output\r\n }], onFocusIn: [{\r\n type: Output\r\n }], onFocusOut: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInput: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onKeyUp: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onPaste: [{\r\n type: Output\r\n }], onValueChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], buttonsChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], inputAttrChange: [{\r\n type: Output\r\n }], isDirtyChange: [{\r\n type: Output\r\n }], isValidChange: [{\r\n type: Output\r\n }], labelChange: [{\r\n type: Output\r\n }], labelModeChange: [{\r\n type: Output\r\n }], maskChange: [{\r\n type: Output\r\n }], maskCharChange: [{\r\n type: Output\r\n }], maskInvalidMessageChange: [{\r\n type: Output\r\n }], maskRulesChange: [{\r\n type: Output\r\n }], maxLengthChange: [{\r\n type: Output\r\n }], modeChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], placeholderChange: [{\r\n type: Output\r\n }], readOnlyChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showClearButtonChange: [{\r\n type: Output\r\n }], showMaskModeChange: [{\r\n type: Output\r\n }], spellcheckChange: [{\r\n type: Output\r\n }], stylingModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], textChange: [{\r\n type: Output\r\n }], useMaskedValueChange: [{\r\n type: Output\r\n }], validationErrorChange: [{\r\n type: Output\r\n }], validationErrorsChange: [{\r\n type: Output\r\n }], validationMessageModeChange: [{\r\n type: Output\r\n }], validationMessagePositionChange: [{\r\n type: Output\r\n }], validationStatusChange: [{\r\n type: Output\r\n }], valueChange: [{\r\n type: Output\r\n }], valueChangeEventChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], onBlur: [{\r\n type: Output\r\n }], change: [{\r\n type: HostListener,\r\n args: ['valueChange', ['$event']]\r\n }], touched: [{\r\n type: HostListener,\r\n args: ['onBlur', ['$event']]\r\n }], buttonsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiButtonComponent]\r\n }] }); })();\r\nclass DxTextBoxModule {\r\n}\r\n/** @nocollapse */ DxTextBoxModule.ɵfac = function DxTextBoxModule_Factory(t) { return new (t || DxTextBoxModule)(); };\r\n/** @nocollapse */ DxTextBoxModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTextBoxModule });\r\n/** @nocollapse */ DxTextBoxModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTextBoxModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTextBoxComponent\r\n ],\r\n exports: [\r\n DxTextBoxComponent,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTextBoxModule, { declarations: [DxTextBoxComponent], imports: [DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTextBoxComponent, DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTextBoxComponent, DxTextBoxModule };\n","/**\r\n * DevExtreme (esm/ui/tile_view.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n setWidth,\r\n setHeight,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n map,\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n nativeScrolling\r\n} from \"../core/utils/support\";\r\nimport ScrollView from \"./scroll_view\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar TILEVIEW_CLASS = \"dx-tileview\";\r\nvar TILEVIEW_CONTAINER_CLASS = \"dx-tileview-wrapper\";\r\nvar TILEVIEW_ITEM_CLASS = \"dx-tile\";\r\nvar TILEVIEW_ITEM_SELECTOR = \".\" + TILEVIEW_ITEM_CLASS;\r\nvar TILEVIEW_ITEM_DATA_KEY = \"dxTileData\";\r\nvar CONFIGS = {\r\n horizontal: {\r\n itemMainRatio: \"widthRatio\",\r\n itemCrossRatio: \"heightRatio\",\r\n baseItemMainDimension: \"baseItemWidth\",\r\n baseItemCrossDimension: \"baseItemHeight\",\r\n mainDimension: \"width\",\r\n crossDimension: \"height\",\r\n mainPosition: \"left\",\r\n crossPosition: \"top\"\r\n },\r\n vertical: {\r\n itemMainRatio: \"heightRatio\",\r\n itemCrossRatio: \"widthRatio\",\r\n baseItemMainDimension: \"baseItemHeight\",\r\n baseItemCrossDimension: \"baseItemWidth\",\r\n mainDimension: \"height\",\r\n crossDimension: \"width\",\r\n mainPosition: \"top\",\r\n crossPosition: \"left\"\r\n }\r\n};\r\nvar TileView = CollectionWidget.inherit({\r\n _activeStateUnit: TILEVIEW_ITEM_SELECTOR,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n items: null,\r\n direction: \"horizontal\",\r\n hoverStateEnabled: true,\r\n showScrollbar: \"never\",\r\n height: 500,\r\n baseItemWidth: 100,\r\n baseItemHeight: 100,\r\n itemMargin: 20,\r\n activeStateEnabled: true,\r\n indicateLoading: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return nativeScrolling\r\n },\r\n options: {\r\n showScrollbar: \"onScroll\"\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return TILEVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TILEVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TILEVIEW_CLASS);\r\n this._initScrollView()\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var scrollView = this._scrollView;\r\n if (!scrollView || !scrollView.startLoading) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n scrollView.startLoading()\r\n } else {\r\n scrollView.finishLoading()\r\n }\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _initScrollView: function() {\r\n var {\r\n width: width,\r\n height: height,\r\n direction: direction,\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n this._scrollView = this._createComponent(this.$element(), ScrollView, {\r\n direction: direction,\r\n width: width,\r\n height: height,\r\n scrollByContent: true,\r\n useKeyboard: false,\r\n showScrollbar: showScrollbar\r\n });\r\n this._$container = $(this._scrollView.content());\r\n this._$container.addClass(TILEVIEW_CONTAINER_CLASS);\r\n this._scrollView.option(\"onUpdated\", this._renderGeometry.bind(this))\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n deferRender(function() {\r\n this._cellsPerDimension = 1;\r\n this._renderGeometry();\r\n this._updateScrollView();\r\n this._fireContentReadyAction()\r\n }.bind(this))\r\n },\r\n _updateScrollView: function() {\r\n this._scrollView.option(\"direction\", this.option(\"direction\"));\r\n this._scrollView.update();\r\n this._indicateLoadingIfAlreadyStarted()\r\n },\r\n _indicateLoadingIfAlreadyStarted: function() {\r\n if (this._isDataSourceLoading()) {\r\n this._dataSourceLoadingChangedHandler(true)\r\n }\r\n },\r\n _renderGeometry: function() {\r\n this._config = CONFIGS[this.option(\"direction\")];\r\n var items = this.option(\"items\") || [];\r\n var config = this._config;\r\n var itemMargin = this.option(\"itemMargin\");\r\n var maxItemCrossRatio = Math.max.apply(Math, map(items || [], (function(item) {\r\n return Math.round(item[config.itemCrossRatio] || 1)\r\n })));\r\n var crossDimensionValue;\r\n if (hasWindow) {\r\n crossDimensionValue = (\"width\" === config.crossDimension ? getWidth : getHeight)(this.$element())\r\n } else {\r\n crossDimensionValue = parseInt(this.$element().get(0).style[config.crossDimension])\r\n }\r\n this._cellsPerDimension = Math.floor(crossDimensionValue / (this.option(config.baseItemCrossDimension) + itemMargin));\r\n this._cellsPerDimension = Math.max(this._cellsPerDimension, maxItemCrossRatio);\r\n this._cells = [];\r\n this._cells.push(new Array(this._cellsPerDimension));\r\n this._arrangeItems(items);\r\n this._renderContentSize(config, itemMargin)\r\n },\r\n _renderContentSize: function(_ref, itemMargin) {\r\n var {\r\n mainDimension: mainDimension,\r\n baseItemMainDimension: baseItemMainDimension\r\n } = _ref;\r\n if (hasWindow()) {\r\n var actualContentSize = this._cells.length * this.option(baseItemMainDimension) + (this._cells.length + 1) * itemMargin;\r\n var elementSize = (\"width\" === mainDimension ? getWidth : getHeight)(this.$element());\r\n (\"width\" === mainDimension ? setWidth : setHeight)(this._$container, Math.max(actualContentSize, elementSize))\r\n }\r\n },\r\n _arrangeItems: function(items) {\r\n var config = this._config;\r\n var itemMainRatio = config.itemMainRatio;\r\n var itemCrossRatio = config.itemCrossRatio;\r\n var mainPosition = config.mainPosition;\r\n this._itemsPositions = [];\r\n each(items, function(index, item) {\r\n var currentItem = {};\r\n currentItem[itemMainRatio] = item[itemMainRatio] || 1;\r\n currentItem[itemCrossRatio] = item[itemCrossRatio] || 1;\r\n currentItem.index = index;\r\n currentItem[itemMainRatio] = currentItem[itemMainRatio] <= 0 ? 0 : Math.round(currentItem[config.itemMainRatio]);\r\n currentItem[itemCrossRatio] = currentItem[itemCrossRatio] <= 0 ? 0 : Math.round(currentItem[config.itemCrossRatio]);\r\n var itemPosition = this._getItemPosition(currentItem);\r\n if (-1 === itemPosition[mainPosition]) {\r\n itemPosition[mainPosition] = this._cells.push(new Array(this._cellsPerDimension)) - 1\r\n }\r\n this._occupyCells(currentItem, itemPosition);\r\n this._arrangeItem(currentItem, itemPosition);\r\n this._itemsPositions.push(itemPosition)\r\n }.bind(this))\r\n },\r\n _getItemPosition: function(item) {\r\n var config = this._config;\r\n var mainPosition = config.mainPosition;\r\n var crossPosition = config.crossPosition;\r\n var position = {};\r\n position[mainPosition] = -1;\r\n position[crossPosition] = 0;\r\n for (var main = 0; main < this._cells.length; main++) {\r\n for (var cross = 0; cross < this._cellsPerDimension; cross++) {\r\n if (this._itemFit(main, cross, item)) {\r\n position[mainPosition] = main;\r\n position[crossPosition] = cross;\r\n break\r\n }\r\n }\r\n if (position[mainPosition] > -1) {\r\n break\r\n }\r\n }\r\n return position\r\n },\r\n _itemFit: function(mainPosition, crossPosition, item) {\r\n var result = true;\r\n var config = this._config;\r\n var itemRatioMain = item[config.itemMainRatio];\r\n var itemRatioCross = item[config.itemCrossRatio];\r\n if (crossPosition + itemRatioCross > this._cellsPerDimension) {\r\n return false\r\n }\r\n for (var main = mainPosition; main < mainPosition + itemRatioMain; main++) {\r\n for (var cross = crossPosition; cross < crossPosition + itemRatioCross; cross++) {\r\n if (this._cells.length - 1 < main) {\r\n this._cells.push(new Array(this._cellsPerDimension))\r\n } else if (void 0 !== this._cells[main][cross]) {\r\n result = false;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n _occupyCells: function(item, itemPosition) {\r\n var config = this._config;\r\n var itemPositionMain = itemPosition[config.mainPosition];\r\n var itemPositionCross = itemPosition[config.crossPosition];\r\n var itemRatioMain = item[config.itemMainRatio];\r\n var itemRatioCross = item[config.itemCrossRatio];\r\n for (var main = itemPositionMain; main < itemPositionMain + itemRatioMain; main++) {\r\n for (var cross = itemPositionCross; cross < itemPositionCross + itemRatioCross; cross++) {\r\n this._cells[main][cross] = item.index\r\n }\r\n }\r\n },\r\n _arrangeItem: function(item, itemPosition) {\r\n var config = this._config;\r\n var itemPositionMain = itemPosition[config.mainPosition];\r\n var itemPositionCross = itemPosition[config.crossPosition];\r\n var itemRatioMain = item[config.itemMainRatio];\r\n var itemRatioCross = item[config.itemCrossRatio];\r\n var baseItemCross = this.option(config.baseItemCrossDimension);\r\n var baseItemMain = this.option(config.baseItemMainDimension);\r\n var itemMargin = this.option(\"itemMargin\");\r\n var cssProps = {\r\n display: itemRatioMain <= 0 || itemRatioCross <= 0 ? \"none\" : \"\"\r\n };\r\n var mainDimension = itemRatioMain * baseItemMain + (itemRatioMain - 1) * itemMargin;\r\n var crossDimension = itemRatioCross * baseItemCross + (itemRatioCross - 1) * itemMargin;\r\n cssProps[config.mainDimension] = mainDimension < 0 ? 0 : mainDimension;\r\n cssProps[config.crossDimension] = crossDimension < 0 ? 0 : crossDimension;\r\n cssProps[config.mainPosition] = itemPositionMain * baseItemMain + (itemPositionMain + 1) * itemMargin;\r\n cssProps[config.crossPosition] = itemPositionCross * baseItemCross + (itemPositionCross + 1) * itemMargin;\r\n if (this.option(\"rtlEnabled\")) {\r\n var offsetCorrection = getWidth(this._$container);\r\n var baseItemWidth = this.option(\"baseItemWidth\");\r\n var itemPositionX = itemPosition.left;\r\n var offsetPosition = itemPositionX * baseItemWidth;\r\n var itemBaseOffset = baseItemWidth + itemMargin;\r\n var itemWidth = itemBaseOffset * item.widthRatio;\r\n var subItemMargins = itemPositionX * itemMargin;\r\n cssProps.left = offsetCorrection - (offsetPosition + itemWidth + subItemMargins)\r\n }\r\n this._itemElements().eq(item.index).css(cssProps)\r\n },\r\n _moveFocus: function(location) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n var FOCUS_PAGE_UP = \"pageup\";\r\n var FOCUS_PAGE_DOWN = \"pagedown\";\r\n var horizontalDirection = \"horizontal\" === this.option(\"direction\");\r\n var cells = this._cells;\r\n var index = $(this.option(\"focusedElement\")).index();\r\n var targetCol = this._itemsPositions[index].left;\r\n var targetRow = this._itemsPositions[index].top;\r\n var colCount = (horizontalDirection ? cells : cells[0]).length;\r\n var rowCount = (horizontalDirection ? cells[0] : cells).length;\r\n var getCell = function(col, row) {\r\n if (horizontalDirection) {\r\n return cells[col][row]\r\n }\r\n return cells[row][col]\r\n };\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n while (targetRow > 0 && index === getCell(targetCol, targetRow)) {\r\n targetRow--\r\n }\r\n if (targetRow < 0) {\r\n targetRow = 0\r\n }\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n while (targetRow < rowCount && index === getCell(targetCol, targetRow)) {\r\n targetRow++\r\n }\r\n if (targetRow === rowCount) {\r\n targetRow = rowCount - 1\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n while (targetCol < colCount && index === getCell(targetCol, targetRow)) {\r\n targetCol++\r\n }\r\n if (targetCol === colCount) {\r\n targetCol = colCount - 1\r\n }\r\n break;\r\n case FOCUS_LEFT:\r\n while (targetCol >= 0 && index === getCell(targetCol, targetRow)) {\r\n targetCol--\r\n }\r\n if (targetCol < 0) {\r\n targetCol = 0\r\n }\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n var newTargetIndex = getCell(targetCol, targetRow);\r\n if (!isDefined(newTargetIndex)) {\r\n return\r\n }\r\n var $newTarget = this._itemElements().eq(newTargetIndex);\r\n this.option(\"focusedElement\", getPublicElement($newTarget));\r\n this._scrollToItem($newTarget)\r\n },\r\n _scrollToItem: function($itemElement) {\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var config = this._config;\r\n var outerMainGetter = \"width\" === config.mainDimension ? getOuterWidth : getOuterHeight;\r\n var itemMargin = this.option(\"itemMargin\");\r\n var itemPosition = $itemElement.position()[config.mainPosition];\r\n var itemDimension = outerMainGetter($itemElement);\r\n var itemTail = itemPosition + itemDimension;\r\n var scrollPosition = this.scrollPosition();\r\n var clientWidth = outerMainGetter(this.$element());\r\n if (scrollPosition <= itemPosition && itemTail <= scrollPosition + clientWidth) {\r\n return\r\n }\r\n if (scrollPosition > itemPosition) {\r\n this._scrollView.scrollTo(itemPosition - itemMargin)\r\n } else {\r\n this._scrollView.scrollTo(itemPosition + itemDimension - clientWidth + itemMargin)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this.callBase(args);\r\n this._renderGeometry();\r\n this._updateScrollView();\r\n break;\r\n case \"showScrollbar\":\r\n this._initScrollView();\r\n break;\r\n case \"disabled\":\r\n this._scrollView.option(\"disabled\", args.value);\r\n this.callBase(args);\r\n break;\r\n case \"baseItemWidth\":\r\n case \"baseItemHeight\":\r\n case \"itemMargin\":\r\n this._renderGeometry();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._renderGeometry();\r\n this._scrollView.option(args.name, args.value);\r\n this._updateScrollView();\r\n break;\r\n case \"direction\":\r\n this._renderGeometry();\r\n this._updateScrollView();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n scrollPosition: function() {\r\n return this._scrollView.scrollOffset()[this._config.mainPosition]\r\n }\r\n});\r\nregisterComponent(\"dxTileView\", TileView);\r\nexport default TileView;\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxTileView from 'devextreme/ui/tile_view';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTileView]\r\n\r\n */\r\nclass DxTileViewComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'baseItemHeightChange' },\r\n { emit: 'baseItemWidthChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'directionChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemMarginChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'showScrollbarChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.baseItemHeight]\r\n \r\n */\r\n get baseItemHeight() {\r\n return this._getOption('baseItemHeight');\r\n }\r\n set baseItemHeight(value) {\r\n this._setOption('baseItemHeight', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.baseItemWidth]\r\n \r\n */\r\n get baseItemWidth() {\r\n return this._getOption('baseItemWidth');\r\n }\r\n set baseItemWidth(value) {\r\n this._setOption('baseItemWidth', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.direction]\r\n \r\n */\r\n get direction() {\r\n return this._getOption('direction');\r\n }\r\n set direction(value) {\r\n this._setOption('direction', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.itemMargin]\r\n \r\n */\r\n get itemMargin() {\r\n return this._getOption('itemMargin');\r\n }\r\n set itemMargin(value) {\r\n this._setOption('itemMargin', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTileViewOptions.showScrollbar]\r\n \r\n */\r\n get showScrollbar() {\r\n return this._getOption('showScrollbar');\r\n }\r\n set showScrollbar(value) {\r\n this._setOption('showScrollbar', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTileView(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTileViewComponent.ɵfac = function DxTileViewComponent_Factory(t) { return new (t || DxTileViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTileViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTileViewComponent, selectors: [[\"dx-tile-view\"]], contentQueries: function DxTileViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", baseItemHeight: \"baseItemHeight\", baseItemWidth: \"baseItemWidth\", dataSource: \"dataSource\", direction: \"direction\", disabled: \"disabled\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", itemMargin: \"itemMargin\", items: \"items\", itemTemplate: \"itemTemplate\", noDataText: \"noDataText\", rtlEnabled: \"rtlEnabled\", showScrollbar: \"showScrollbar\", tabIndex: \"tabIndex\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", baseItemHeightChange: \"baseItemHeightChange\", baseItemWidthChange: \"baseItemWidthChange\", dataSourceChange: \"dataSourceChange\", directionChange: \"directionChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemMarginChange: \"itemMarginChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", noDataTextChange: \"noDataTextChange\", rtlEnabledChange: \"rtlEnabledChange\", showScrollbarChange: \"showScrollbarChange\", tabIndexChange: \"tabIndexChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTileViewComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTileViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tile-view',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], baseItemHeight: [{\r\n type: Input\r\n }], baseItemWidth: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], direction: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], itemMargin: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], showScrollbar: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], baseItemHeightChange: [{\r\n type: Output\r\n }], baseItemWidthChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], directionChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemMarginChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], showScrollbarChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxTileViewModule {\r\n}\r\n/** @nocollapse */ DxTileViewModule.ɵfac = function DxTileViewModule_Factory(t) { return new (t || DxTileViewModule)(); };\r\n/** @nocollapse */ DxTileViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTileViewModule });\r\n/** @nocollapse */ DxTileViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTileViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTileViewComponent\r\n ],\r\n exports: [\r\n DxTileViewComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTileViewModule, { declarations: [DxTileViewComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTileViewComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTileViewComponent, DxTileViewModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxToast from 'devextreme/ui/toast';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxToast]\r\n\r\n */\r\nclass DxToastComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnClickChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'closeOnSwipeChange' },\r\n { emit: 'contentTemplateChange' },\r\n { emit: 'copyRootClassesToWrapperChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'displayTimeChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hideOnParentScrollChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'messageChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'shadingColorChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'typeChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapperAttrChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.closeOnClick]\r\n \r\n */\r\n get closeOnClick() {\r\n return this._getOption('closeOnClick');\r\n }\r\n set closeOnClick(value) {\r\n this._setOption('closeOnClick', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxToastOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.closeOnSwipe]\r\n \r\n */\r\n get closeOnSwipe() {\r\n return this._getOption('closeOnSwipe');\r\n }\r\n set closeOnSwipe(value) {\r\n this._setOption('closeOnSwipe', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.contentTemplate]\r\n \r\n */\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n */\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.displayTime]\r\n \r\n */\r\n get displayTime() {\r\n return this._getOption('displayTime');\r\n }\r\n set displayTime(value) {\r\n this._setOption('displayTime', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.elementAttr]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.hideOnParentScroll]\r\n \r\n */\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.message]\r\n \r\n */\r\n get message() {\r\n return this._getOption('message');\r\n }\r\n set message(value) {\r\n this._setOption('message', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shadingColor]\r\n \r\n */\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.type]\r\n \r\n */\r\n get type() {\r\n return this._getOption('type');\r\n }\r\n set type(value) {\r\n this._setOption('type', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxToastOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.wrapperAttr]\r\n \r\n */\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxToast(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxToastComponent.ɵfac = function DxToastComponent_Factory(t) { return new (t || DxToastComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxToastComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxToastComponent, selectors: [[\"dx-toast\"]], inputs: { accessKey: \"accessKey\", animation: \"animation\", closeOnClick: \"closeOnClick\", closeOnOutsideClick: \"closeOnOutsideClick\", closeOnSwipe: \"closeOnSwipe\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", displayTime: \"displayTime\", elementAttr: \"elementAttr\", focusStateEnabled: \"focusStateEnabled\", height: \"height\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", message: \"message\", minHeight: \"minHeight\", minWidth: \"minWidth\", position: \"position\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", tabIndex: \"tabIndex\", type: \"type\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onShowing: \"onShowing\", onShown: \"onShown\", accessKeyChange: \"accessKeyChange\", animationChange: \"animationChange\", closeOnClickChange: \"closeOnClickChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", closeOnSwipeChange: \"closeOnSwipeChange\", contentTemplateChange: \"contentTemplateChange\", copyRootClassesToWrapperChange: \"copyRootClassesToWrapperChange\", deferRenderingChange: \"deferRenderingChange\", displayTimeChange: \"displayTimeChange\", elementAttrChange: \"elementAttrChange\", focusStateEnabledChange: \"focusStateEnabledChange\", heightChange: \"heightChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hideOnParentScrollChange: \"hideOnParentScrollChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", messageChange: \"messageChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", positionChange: \"positionChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", shadingColorChange: \"shadingColorChange\", tabIndexChange: \"tabIndexChange\", typeChange: \"typeChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapperAttrChange: \"wrapperAttrChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxToastComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxToastComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-toast',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], animation: [{\r\n type: Input\r\n }], closeOnClick: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], closeOnSwipe: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], copyRootClassesToWrapper: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], displayTime: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hideOnParentScroll: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], message: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapperAttr: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnClickChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], closeOnSwipeChange: [{\r\n type: Output\r\n }], contentTemplateChange: [{\r\n type: Output\r\n }], copyRootClassesToWrapperChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], displayTimeChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hideOnParentScrollChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], messageChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], shadingColorChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], typeChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapperAttrChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxToastModule {\r\n}\r\n/** @nocollapse */ DxToastModule.ɵfac = function DxToastModule_Factory(t) { return new (t || DxToastModule)(); };\r\n/** @nocollapse */ DxToastModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxToastModule });\r\n/** @nocollapse */ DxToastModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxToastModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxToastComponent\r\n ],\r\n exports: [\r\n DxToastComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxToastModule, { declarations: [DxToastComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxToastComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxToastComponent, DxToastModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxToolbar from 'devextreme/ui/toolbar';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxToolbar]\r\n\r\n */\r\nclass DxToolbarComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'menuItemTemplateChange' },\r\n { emit: 'multilineChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxToolbarOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxToolbarOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxToolbarOptions.menuItemTemplate]\r\n \r\n */\r\n get menuItemTemplate() {\r\n return this._getOption('menuItemTemplate');\r\n }\r\n set menuItemTemplate(value) {\r\n this._setOption('menuItemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxToolbarOptions.multiline]\r\n \r\n */\r\n get multiline() {\r\n return this._getOption('multiline');\r\n }\r\n set multiline(value) {\r\n this._setOption('multiline', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxToolbar(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxToolbarComponent.ɵfac = function DxToolbarComponent_Factory(t) { return new (t || DxToolbarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxToolbarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxToolbarComponent, selectors: [[\"dx-toolbar\"]], contentQueries: function DxToolbarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemTemplate: \"itemTemplate\", menuItemTemplate: \"menuItemTemplate\", multiline: \"multiline\", noDataText: \"noDataText\", rtlEnabled: \"rtlEnabled\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemContextMenu: \"onItemContextMenu\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onOptionChanged: \"onOptionChanged\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", menuItemTemplateChange: \"menuItemTemplateChange\", multilineChange: \"multilineChange\", noDataTextChange: \"noDataTextChange\", rtlEnabledChange: \"rtlEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxToolbarComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxToolbarComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-toolbar',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], menuItemTemplate: [{\r\n type: Input\r\n }], multiline: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], menuItemTemplateChange: [{\r\n type: Output\r\n }], multilineChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxToolbarModule {\r\n}\r\n/** @nocollapse */ DxToolbarModule.ɵfac = function DxToolbarModule_Factory(t) { return new (t || DxToolbarModule)(); };\r\n/** @nocollapse */ DxToolbarModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxToolbarModule });\r\n/** @nocollapse */ DxToolbarModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxToolbarModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxToolbarComponent\r\n ],\r\n exports: [\r\n DxToolbarComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxToolbarModule, { declarations: [DxToolbarComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxToolbarComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxToolbarComponent, DxToolbarModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxTooltip from 'devextreme/ui/tooltip';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoAnimationModule, DxoHideModule, DxoFromModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoToModule, DxoShowModule, DxoHideEventModule, DxoShowEventModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxTooltip]\r\n\r\n */\r\nclass DxTooltipComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'hidden', emit: 'onHidden' },\r\n { subscribe: 'hiding', emit: 'onHiding' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'showing', emit: 'onShowing' },\r\n { subscribe: 'shown', emit: 'onShown' },\r\n { emit: 'animationChange' },\r\n { emit: 'closeOnOutsideClickChange' },\r\n { emit: 'containerChange' },\r\n { emit: 'contentTemplateChange' },\r\n { emit: 'copyRootClassesToWrapperChange' },\r\n { emit: 'deferRenderingChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hideEventChange' },\r\n { emit: 'hideOnOutsideClickChange' },\r\n { emit: 'hideOnParentScrollChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'maxHeightChange' },\r\n { emit: 'maxWidthChange' },\r\n { emit: 'minHeightChange' },\r\n { emit: 'minWidthChange' },\r\n { emit: 'positionChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'shadingChange' },\r\n { emit: 'shadingColorChange' },\r\n { emit: 'showEventChange' },\r\n { emit: 'targetChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wrapperAttrChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.animation]\r\n \r\n */\r\n get animation() {\r\n return this._getOption('animation');\r\n }\r\n set animation(value) {\r\n this._setOption('animation', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.closeOnOutsideClick]\r\n \r\n * @deprecated [depNote:dxPopoverOptions.closeOnOutsideClick]\r\n \r\n */\r\n get closeOnOutsideClick() {\r\n return this._getOption('closeOnOutsideClick');\r\n }\r\n set closeOnOutsideClick(value) {\r\n this._setOption('closeOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxPopupOptions.container]\r\n \r\n */\r\n get container() {\r\n return this._getOption('container');\r\n }\r\n set container(value) {\r\n this._setOption('container', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.contentTemplate]\r\n \r\n */\r\n get contentTemplate() {\r\n return this._getOption('contentTemplate');\r\n }\r\n set contentTemplate(value) {\r\n this._setOption('contentTemplate', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.copyRootClassesToWrapper]\r\n \r\n */\r\n get copyRootClassesToWrapper() {\r\n return this._getOption('copyRootClassesToWrapper');\r\n }\r\n set copyRootClassesToWrapper(value) {\r\n this._setOption('copyRootClassesToWrapper', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.deferRendering]\r\n \r\n */\r\n get deferRendering() {\r\n return this._getOption('deferRendering');\r\n }\r\n set deferRendering(value) {\r\n this._setOption('deferRendering', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.elementAttr]\r\n \r\n * @deprecated [depNote:dxOverlayOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideEvent]\r\n \r\n */\r\n get hideEvent() {\r\n return this._getOption('hideEvent');\r\n }\r\n set hideEvent(value) {\r\n this._setOption('hideEvent', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideOnOutsideClick]\r\n \r\n */\r\n get hideOnOutsideClick() {\r\n return this._getOption('hideOnOutsideClick');\r\n }\r\n set hideOnOutsideClick(value) {\r\n this._setOption('hideOnOutsideClick', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.hideOnParentScroll]\r\n \r\n */\r\n get hideOnParentScroll() {\r\n return this._getOption('hideOnParentScroll');\r\n }\r\n set hideOnParentScroll(value) {\r\n this._setOption('hideOnParentScroll', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxHeight]\r\n \r\n */\r\n get maxHeight() {\r\n return this._getOption('maxHeight');\r\n }\r\n set maxHeight(value) {\r\n this._setOption('maxHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.maxWidth]\r\n \r\n */\r\n get maxWidth() {\r\n return this._getOption('maxWidth');\r\n }\r\n set maxWidth(value) {\r\n this._setOption('maxWidth', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minHeight]\r\n \r\n */\r\n get minHeight() {\r\n return this._getOption('minHeight');\r\n }\r\n set minHeight(value) {\r\n this._setOption('minHeight', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.minWidth]\r\n \r\n */\r\n get minWidth() {\r\n return this._getOption('minWidth');\r\n }\r\n set minWidth(value) {\r\n this._setOption('minWidth', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.position]\r\n \r\n */\r\n get position() {\r\n return this._getOption('position');\r\n }\r\n set position(value) {\r\n this._setOption('position', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.shading]\r\n \r\n */\r\n get shading() {\r\n return this._getOption('shading');\r\n }\r\n set shading(value) {\r\n this._setOption('shading', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.shadingColor]\r\n \r\n */\r\n get shadingColor() {\r\n return this._getOption('shadingColor');\r\n }\r\n set shadingColor(value) {\r\n this._setOption('shadingColor', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.showEvent]\r\n \r\n */\r\n get showEvent() {\r\n return this._getOption('showEvent');\r\n }\r\n set showEvent(value) {\r\n this._setOption('showEvent', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.target]\r\n \r\n */\r\n get target() {\r\n return this._getOption('target');\r\n }\r\n set target(value) {\r\n this._setOption('target', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:dxPopoverOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:dxOverlayOptions.wrapperAttr]\r\n \r\n */\r\n get wrapperAttr() {\r\n return this._getOption('wrapperAttr');\r\n }\r\n set wrapperAttr(value) {\r\n this._setOption('wrapperAttr', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTooltip(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxTooltipComponent.ɵfac = function DxTooltipComponent_Factory(t) { return new (t || DxTooltipComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTooltipComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTooltipComponent, selectors: [[\"dx-tooltip\"]], inputs: { animation: \"animation\", closeOnOutsideClick: \"closeOnOutsideClick\", container: \"container\", contentTemplate: \"contentTemplate\", copyRootClassesToWrapper: \"copyRootClassesToWrapper\", deferRendering: \"deferRendering\", disabled: \"disabled\", elementAttr: \"elementAttr\", height: \"height\", hideEvent: \"hideEvent\", hideOnOutsideClick: \"hideOnOutsideClick\", hideOnParentScroll: \"hideOnParentScroll\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", maxHeight: \"maxHeight\", maxWidth: \"maxWidth\", minHeight: \"minHeight\", minWidth: \"minWidth\", position: \"position\", rtlEnabled: \"rtlEnabled\", shading: \"shading\", shadingColor: \"shadingColor\", showEvent: \"showEvent\", target: \"target\", visible: \"visible\", width: \"width\", wrapperAttr: \"wrapperAttr\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onHidden: \"onHidden\", onHiding: \"onHiding\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onShowing: \"onShowing\", onShown: \"onShown\", animationChange: \"animationChange\", closeOnOutsideClickChange: \"closeOnOutsideClickChange\", containerChange: \"containerChange\", contentTemplateChange: \"contentTemplateChange\", copyRootClassesToWrapperChange: \"copyRootClassesToWrapperChange\", deferRenderingChange: \"deferRenderingChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", hideEventChange: \"hideEventChange\", hideOnOutsideClickChange: \"hideOnOutsideClickChange\", hideOnParentScrollChange: \"hideOnParentScrollChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", maxHeightChange: \"maxHeightChange\", maxWidthChange: \"maxWidthChange\", minHeightChange: \"minHeightChange\", minWidthChange: \"minWidthChange\", positionChange: \"positionChange\", rtlEnabledChange: \"rtlEnabledChange\", shadingChange: \"shadingChange\", shadingColorChange: \"shadingColorChange\", showEventChange: \"showEventChange\", targetChange: \"targetChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wrapperAttrChange: \"wrapperAttrChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxTooltipComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTooltipComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tooltip',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { animation: [{\r\n type: Input\r\n }], closeOnOutsideClick: [{\r\n type: Input\r\n }], container: [{\r\n type: Input\r\n }], contentTemplate: [{\r\n type: Input\r\n }], copyRootClassesToWrapper: [{\r\n type: Input\r\n }], deferRendering: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hideEvent: [{\r\n type: Input\r\n }], hideOnOutsideClick: [{\r\n type: Input\r\n }], hideOnParentScroll: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], maxHeight: [{\r\n type: Input\r\n }], maxWidth: [{\r\n type: Input\r\n }], minHeight: [{\r\n type: Input\r\n }], minWidth: [{\r\n type: Input\r\n }], position: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], shading: [{\r\n type: Input\r\n }], shadingColor: [{\r\n type: Input\r\n }], showEvent: [{\r\n type: Input\r\n }], target: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wrapperAttr: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onHidden: [{\r\n type: Output\r\n }], onHiding: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onShowing: [{\r\n type: Output\r\n }], onShown: [{\r\n type: Output\r\n }], animationChange: [{\r\n type: Output\r\n }], closeOnOutsideClickChange: [{\r\n type: Output\r\n }], containerChange: [{\r\n type: Output\r\n }], contentTemplateChange: [{\r\n type: Output\r\n }], copyRootClassesToWrapperChange: [{\r\n type: Output\r\n }], deferRenderingChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hideEventChange: [{\r\n type: Output\r\n }], hideOnOutsideClickChange: [{\r\n type: Output\r\n }], hideOnParentScrollChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], maxHeightChange: [{\r\n type: Output\r\n }], maxWidthChange: [{\r\n type: Output\r\n }], minHeightChange: [{\r\n type: Output\r\n }], minWidthChange: [{\r\n type: Output\r\n }], positionChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], shadingChange: [{\r\n type: Output\r\n }], shadingColorChange: [{\r\n type: Output\r\n }], showEventChange: [{\r\n type: Output\r\n }], targetChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wrapperAttrChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxTooltipModule {\r\n}\r\n/** @nocollapse */ DxTooltipModule.ɵfac = function DxTooltipModule_Factory(t) { return new (t || DxTooltipModule)(); };\r\n/** @nocollapse */ DxTooltipModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTooltipModule });\r\n/** @nocollapse */ DxTooltipModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTooltipModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTooltipComponent\r\n ],\r\n exports: [\r\n DxTooltipComponent,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTooltipModule, { declarations: [DxTooltipComponent], imports: [DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTooltipComponent, DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxoHideEventModule,\r\n DxoShowEventModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTooltipComponent, DxTooltipModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport 'devextreme/bundles/dx.all';\nimport DxTreeList from 'devextreme/ui/tree_list';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiColumnComponent, DxoColumnChooserModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxoSearchModule, DxoSelectionModule, DxoColumnFixingModule, DxoTextsModule, DxiColumnModule, DxiButtonModule, DxoHeaderFilterModule, DxoLookupModule, DxoFormatModule, DxoFormItemModule, DxoLabelModule, DxiValidationRuleModule, DxoEditingModule, DxiChangeModule, DxoFormModule, DxoColCountByScreenModule, DxiItemModule, DxoTabPanelOptionsModule, DxiTabModule, DxoButtonOptionsModule, DxoPopupModule, DxoAnimationModule, DxoHideModule, DxoFromModule, DxoToModule, DxoShowModule, DxiToolbarItemModule, DxoFilterBuilderModule, DxiCustomOperationModule, DxiFieldModule, DxoFilterOperationDescriptionsModule, DxoGroupOperationDescriptionsModule, DxoFilterBuilderPopupModule, DxoFilterPanelModule, DxoFilterRowModule, DxoOperationDescriptionsModule, DxoKeyboardNavigationModule, DxoLoadPanelModule, DxoPagerModule, DxoPagingModule, DxoRemoteOperationsModule, DxoRowDraggingModule, DxoCursorOffsetModule, DxoScrollingModule, DxoSearchPanelModule, DxoSortingModule, DxoStateStoringModule, DxoToolbarModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTreeList]\r\n\r\n */\r\nclass DxTreeListComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'adaptiveDetailRowPreparing', emit: 'onAdaptiveDetailRowPreparing' },\r\n { subscribe: 'cellClick', emit: 'onCellClick' },\r\n { subscribe: 'cellDblClick', emit: 'onCellDblClick' },\r\n { subscribe: 'cellHoverChanged', emit: 'onCellHoverChanged' },\r\n { subscribe: 'cellPrepared', emit: 'onCellPrepared' },\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' },\r\n { subscribe: 'dataErrorOccurred', emit: 'onDataErrorOccurred' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'editCanceled', emit: 'onEditCanceled' },\r\n { subscribe: 'editCanceling', emit: 'onEditCanceling' },\r\n { subscribe: 'editingStart', emit: 'onEditingStart' },\r\n { subscribe: 'editorPrepared', emit: 'onEditorPrepared' },\r\n { subscribe: 'editorPreparing', emit: 'onEditorPreparing' },\r\n { subscribe: 'focusedCellChanged', emit: 'onFocusedCellChanged' },\r\n { subscribe: 'focusedCellChanging', emit: 'onFocusedCellChanging' },\r\n { subscribe: 'focusedRowChanged', emit: 'onFocusedRowChanged' },\r\n { subscribe: 'focusedRowChanging', emit: 'onFocusedRowChanging' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'initNewRow', emit: 'onInitNewRow' },\r\n { subscribe: 'keyDown', emit: 'onKeyDown' },\r\n { subscribe: 'nodesInitialized', emit: 'onNodesInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'rowClick', emit: 'onRowClick' },\r\n { subscribe: 'rowCollapsed', emit: 'onRowCollapsed' },\r\n { subscribe: 'rowCollapsing', emit: 'onRowCollapsing' },\r\n { subscribe: 'rowDblClick', emit: 'onRowDblClick' },\r\n { subscribe: 'rowExpanded', emit: 'onRowExpanded' },\r\n { subscribe: 'rowExpanding', emit: 'onRowExpanding' },\r\n { subscribe: 'rowInserted', emit: 'onRowInserted' },\r\n { subscribe: 'rowInserting', emit: 'onRowInserting' },\r\n { subscribe: 'rowPrepared', emit: 'onRowPrepared' },\r\n { subscribe: 'rowRemoved', emit: 'onRowRemoved' },\r\n { subscribe: 'rowRemoving', emit: 'onRowRemoving' },\r\n { subscribe: 'rowUpdated', emit: 'onRowUpdated' },\r\n { subscribe: 'rowUpdating', emit: 'onRowUpdating' },\r\n { subscribe: 'rowValidating', emit: 'onRowValidating' },\r\n { subscribe: 'saved', emit: 'onSaved' },\r\n { subscribe: 'saving', emit: 'onSaving' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'toolbarPreparing', emit: 'onToolbarPreparing' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'allowColumnReorderingChange' },\r\n { emit: 'allowColumnResizingChange' },\r\n { emit: 'autoExpandAllChange' },\r\n { emit: 'autoNavigateToFocusedRowChange' },\r\n { emit: 'cacheEnabledChange' },\r\n { emit: 'cellHintEnabledChange' },\r\n { emit: 'columnAutoWidthChange' },\r\n { emit: 'columnChooserChange' },\r\n { emit: 'columnFixingChange' },\r\n { emit: 'columnHidingEnabledChange' },\r\n { emit: 'columnMinWidthChange' },\r\n { emit: 'columnResizingModeChange' },\r\n { emit: 'columnsChange' },\r\n { emit: 'columnWidthChange' },\r\n { emit: 'customizeColumnsChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'dataStructureChange' },\r\n { emit: 'dateSerializationFormatChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'editingChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'errorRowEnabledChange' },\r\n { emit: 'expandedRowKeysChange' },\r\n { emit: 'expandNodesOnFilteringChange' },\r\n { emit: 'filterBuilderChange' },\r\n { emit: 'filterBuilderPopupChange' },\r\n { emit: 'filterModeChange' },\r\n { emit: 'filterPanelChange' },\r\n { emit: 'filterRowChange' },\r\n { emit: 'filterSyncEnabledChange' },\r\n { emit: 'filterValueChange' },\r\n { emit: 'focusedColumnIndexChange' },\r\n { emit: 'focusedRowEnabledChange' },\r\n { emit: 'focusedRowIndexChange' },\r\n { emit: 'focusedRowKeyChange' },\r\n { emit: 'hasItemsExprChange' },\r\n { emit: 'headerFilterChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'highlightChangesChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemsExprChange' },\r\n { emit: 'keyboardNavigationChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'loadPanelChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'pagerChange' },\r\n { emit: 'pagingChange' },\r\n { emit: 'parentIdExprChange' },\r\n { emit: 'remoteOperationsChange' },\r\n { emit: 'renderAsyncChange' },\r\n { emit: 'repaintChangesOnlyChange' },\r\n { emit: 'rootValueChange' },\r\n { emit: 'rowAlternationEnabledChange' },\r\n { emit: 'rowDraggingChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollingChange' },\r\n { emit: 'searchPanelChange' },\r\n { emit: 'selectedRowKeysChange' },\r\n { emit: 'selectionChange' },\r\n { emit: 'showBordersChange' },\r\n { emit: 'showColumnHeadersChange' },\r\n { emit: 'showColumnLinesChange' },\r\n { emit: 'showRowLinesChange' },\r\n { emit: 'sortingChange' },\r\n { emit: 'stateStoringChange' },\r\n { emit: 'syncLookupFilterValuesChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'toolbarChange' },\r\n { emit: 'twoWayBindingEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' },\r\n { emit: 'wordWrapEnabledChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.allowColumnReordering]\r\n \r\n */\r\n get allowColumnReordering() {\r\n return this._getOption('allowColumnReordering');\r\n }\r\n set allowColumnReordering(value) {\r\n this._setOption('allowColumnReordering', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.allowColumnResizing]\r\n \r\n */\r\n get allowColumnResizing() {\r\n return this._getOption('allowColumnResizing');\r\n }\r\n set allowColumnResizing(value) {\r\n this._setOption('allowColumnResizing', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.autoExpandAll]\r\n \r\n */\r\n get autoExpandAll() {\r\n return this._getOption('autoExpandAll');\r\n }\r\n set autoExpandAll(value) {\r\n this._setOption('autoExpandAll', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.autoNavigateToFocusedRow]\r\n \r\n */\r\n get autoNavigateToFocusedRow() {\r\n return this._getOption('autoNavigateToFocusedRow');\r\n }\r\n set autoNavigateToFocusedRow(value) {\r\n this._setOption('autoNavigateToFocusedRow', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.cacheEnabled]\r\n \r\n */\r\n get cacheEnabled() {\r\n return this._getOption('cacheEnabled');\r\n }\r\n set cacheEnabled(value) {\r\n this._setOption('cacheEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.cellHintEnabled]\r\n \r\n */\r\n get cellHintEnabled() {\r\n return this._getOption('cellHintEnabled');\r\n }\r\n set cellHintEnabled(value) {\r\n this._setOption('cellHintEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnAutoWidth]\r\n \r\n */\r\n get columnAutoWidth() {\r\n return this._getOption('columnAutoWidth');\r\n }\r\n set columnAutoWidth(value) {\r\n this._setOption('columnAutoWidth', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnChooser]\r\n \r\n */\r\n get columnChooser() {\r\n return this._getOption('columnChooser');\r\n }\r\n set columnChooser(value) {\r\n this._setOption('columnChooser', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnFixing]\r\n \r\n */\r\n get columnFixing() {\r\n return this._getOption('columnFixing');\r\n }\r\n set columnFixing(value) {\r\n this._setOption('columnFixing', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnHidingEnabled]\r\n \r\n */\r\n get columnHidingEnabled() {\r\n return this._getOption('columnHidingEnabled');\r\n }\r\n set columnHidingEnabled(value) {\r\n this._setOption('columnHidingEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnMinWidth]\r\n \r\n */\r\n get columnMinWidth() {\r\n return this._getOption('columnMinWidth');\r\n }\r\n set columnMinWidth(value) {\r\n this._setOption('columnMinWidth', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnResizingMode]\r\n \r\n */\r\n get columnResizingMode() {\r\n return this._getOption('columnResizingMode');\r\n }\r\n set columnResizingMode(value) {\r\n this._setOption('columnResizingMode', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.columns]\r\n \r\n */\r\n get columns() {\r\n return this._getOption('columns');\r\n }\r\n set columns(value) {\r\n this._setOption('columns', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.columnWidth]\r\n \r\n */\r\n get columnWidth() {\r\n return this._getOption('columnWidth');\r\n }\r\n set columnWidth(value) {\r\n this._setOption('columnWidth', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.customizeColumns]\r\n \r\n */\r\n get customizeColumns() {\r\n return this._getOption('customizeColumns');\r\n }\r\n set customizeColumns(value) {\r\n this._setOption('customizeColumns', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.dataStructure]\r\n \r\n */\r\n get dataStructure() {\r\n return this._getOption('dataStructure');\r\n }\r\n set dataStructure(value) {\r\n this._setOption('dataStructure', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.dateSerializationFormat]\r\n \r\n */\r\n get dateSerializationFormat() {\r\n return this._getOption('dateSerializationFormat');\r\n }\r\n set dateSerializationFormat(value) {\r\n this._setOption('dateSerializationFormat', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.editing]\r\n \r\n */\r\n get editing() {\r\n return this._getOption('editing');\r\n }\r\n set editing(value) {\r\n this._setOption('editing', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.errorRowEnabled]\r\n \r\n */\r\n get errorRowEnabled() {\r\n return this._getOption('errorRowEnabled');\r\n }\r\n set errorRowEnabled(value) {\r\n this._setOption('errorRowEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.expandedRowKeys]\r\n \r\n */\r\n get expandedRowKeys() {\r\n return this._getOption('expandedRowKeys');\r\n }\r\n set expandedRowKeys(value) {\r\n this._setOption('expandedRowKeys', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.expandNodesOnFiltering]\r\n \r\n */\r\n get expandNodesOnFiltering() {\r\n return this._getOption('expandNodesOnFiltering');\r\n }\r\n set expandNodesOnFiltering(value) {\r\n this._setOption('expandNodesOnFiltering', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterBuilder]\r\n \r\n */\r\n get filterBuilder() {\r\n return this._getOption('filterBuilder');\r\n }\r\n set filterBuilder(value) {\r\n this._setOption('filterBuilder', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterBuilderPopup]\r\n \r\n */\r\n get filterBuilderPopup() {\r\n return this._getOption('filterBuilderPopup');\r\n }\r\n set filterBuilderPopup(value) {\r\n this._setOption('filterBuilderPopup', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.filterMode]\r\n \r\n */\r\n get filterMode() {\r\n return this._getOption('filterMode');\r\n }\r\n set filterMode(value) {\r\n this._setOption('filterMode', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterPanel]\r\n \r\n */\r\n get filterPanel() {\r\n return this._getOption('filterPanel');\r\n }\r\n set filterPanel(value) {\r\n this._setOption('filterPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterRow]\r\n \r\n */\r\n get filterRow() {\r\n return this._getOption('filterRow');\r\n }\r\n set filterRow(value) {\r\n this._setOption('filterRow', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterSyncEnabled]\r\n \r\n */\r\n get filterSyncEnabled() {\r\n return this._getOption('filterSyncEnabled');\r\n }\r\n set filterSyncEnabled(value) {\r\n this._setOption('filterSyncEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.filterValue]\r\n \r\n */\r\n get filterValue() {\r\n return this._getOption('filterValue');\r\n }\r\n set filterValue(value) {\r\n this._setOption('filterValue', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedColumnIndex]\r\n \r\n */\r\n get focusedColumnIndex() {\r\n return this._getOption('focusedColumnIndex');\r\n }\r\n set focusedColumnIndex(value) {\r\n this._setOption('focusedColumnIndex', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowEnabled]\r\n \r\n */\r\n get focusedRowEnabled() {\r\n return this._getOption('focusedRowEnabled');\r\n }\r\n set focusedRowEnabled(value) {\r\n this._setOption('focusedRowEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowIndex]\r\n \r\n */\r\n get focusedRowIndex() {\r\n return this._getOption('focusedRowIndex');\r\n }\r\n set focusedRowIndex(value) {\r\n this._setOption('focusedRowIndex', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.focusedRowKey]\r\n \r\n */\r\n get focusedRowKey() {\r\n return this._getOption('focusedRowKey');\r\n }\r\n set focusedRowKey(value) {\r\n this._setOption('focusedRowKey', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.hasItemsExpr]\r\n \r\n */\r\n get hasItemsExpr() {\r\n return this._getOption('hasItemsExpr');\r\n }\r\n set hasItemsExpr(value) {\r\n this._setOption('hasItemsExpr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.headerFilter]\r\n \r\n */\r\n get headerFilter() {\r\n return this._getOption('headerFilter');\r\n }\r\n set headerFilter(value) {\r\n this._setOption('headerFilter', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.highlightChanges]\r\n \r\n */\r\n get highlightChanges() {\r\n return this._getOption('highlightChanges');\r\n }\r\n set highlightChanges(value) {\r\n this._setOption('highlightChanges', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.itemsExpr]\r\n \r\n */\r\n get itemsExpr() {\r\n return this._getOption('itemsExpr');\r\n }\r\n set itemsExpr(value) {\r\n this._setOption('itemsExpr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.keyboardNavigation]\r\n \r\n */\r\n get keyboardNavigation() {\r\n return this._getOption('keyboardNavigation');\r\n }\r\n set keyboardNavigation(value) {\r\n this._setOption('keyboardNavigation', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.loadPanel]\r\n \r\n */\r\n get loadPanel() {\r\n return this._getOption('loadPanel');\r\n }\r\n set loadPanel(value) {\r\n this._setOption('loadPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.pager]\r\n \r\n */\r\n get pager() {\r\n return this._getOption('pager');\r\n }\r\n set pager(value) {\r\n this._setOption('pager', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.paging]\r\n \r\n */\r\n get paging() {\r\n return this._getOption('paging');\r\n }\r\n set paging(value) {\r\n this._setOption('paging', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.parentIdExpr]\r\n \r\n */\r\n get parentIdExpr() {\r\n return this._getOption('parentIdExpr');\r\n }\r\n set parentIdExpr(value) {\r\n this._setOption('parentIdExpr', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.remoteOperations]\r\n \r\n */\r\n get remoteOperations() {\r\n return this._getOption('remoteOperations');\r\n }\r\n set remoteOperations(value) {\r\n this._setOption('remoteOperations', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.renderAsync]\r\n \r\n */\r\n get renderAsync() {\r\n return this._getOption('renderAsync');\r\n }\r\n set renderAsync(value) {\r\n this._setOption('renderAsync', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.repaintChangesOnly]\r\n \r\n */\r\n get repaintChangesOnly() {\r\n return this._getOption('repaintChangesOnly');\r\n }\r\n set repaintChangesOnly(value) {\r\n this._setOption('repaintChangesOnly', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.rootValue]\r\n \r\n */\r\n get rootValue() {\r\n return this._getOption('rootValue');\r\n }\r\n set rootValue(value) {\r\n this._setOption('rootValue', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.rowAlternationEnabled]\r\n \r\n */\r\n get rowAlternationEnabled() {\r\n return this._getOption('rowAlternationEnabled');\r\n }\r\n set rowAlternationEnabled(value) {\r\n this._setOption('rowAlternationEnabled', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.rowDragging]\r\n \r\n */\r\n get rowDragging() {\r\n return this._getOption('rowDragging');\r\n }\r\n set rowDragging(value) {\r\n this._setOption('rowDragging', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.scrolling]\r\n \r\n */\r\n get scrolling() {\r\n return this._getOption('scrolling');\r\n }\r\n set scrolling(value) {\r\n this._setOption('scrolling', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.searchPanel]\r\n \r\n */\r\n get searchPanel() {\r\n return this._getOption('searchPanel');\r\n }\r\n set searchPanel(value) {\r\n this._setOption('searchPanel', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.selectedRowKeys]\r\n \r\n */\r\n get selectedRowKeys() {\r\n return this._getOption('selectedRowKeys');\r\n }\r\n set selectedRowKeys(value) {\r\n this._setOption('selectedRowKeys', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.selection]\r\n \r\n */\r\n get selection() {\r\n return this._getOption('selection');\r\n }\r\n set selection(value) {\r\n this._setOption('selection', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showBorders]\r\n \r\n */\r\n get showBorders() {\r\n return this._getOption('showBorders');\r\n }\r\n set showBorders(value) {\r\n this._setOption('showBorders', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showColumnHeaders]\r\n \r\n */\r\n get showColumnHeaders() {\r\n return this._getOption('showColumnHeaders');\r\n }\r\n set showColumnHeaders(value) {\r\n this._setOption('showColumnHeaders', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showColumnLines]\r\n \r\n */\r\n get showColumnLines() {\r\n return this._getOption('showColumnLines');\r\n }\r\n set showColumnLines(value) {\r\n this._setOption('showColumnLines', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.showRowLines]\r\n \r\n */\r\n get showRowLines() {\r\n return this._getOption('showRowLines');\r\n }\r\n set showRowLines(value) {\r\n this._setOption('showRowLines', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.sorting]\r\n \r\n */\r\n get sorting() {\r\n return this._getOption('sorting');\r\n }\r\n set sorting(value) {\r\n this._setOption('sorting', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.stateStoring]\r\n \r\n */\r\n get stateStoring() {\r\n return this._getOption('stateStoring');\r\n }\r\n set stateStoring(value) {\r\n this._setOption('stateStoring', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.syncLookupFilterValues]\r\n \r\n */\r\n get syncLookupFilterValues() {\r\n return this._getOption('syncLookupFilterValues');\r\n }\r\n set syncLookupFilterValues(value) {\r\n this._setOption('syncLookupFilterValues', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTreeListOptions.toolbar]\r\n \r\n */\r\n get toolbar() {\r\n return this._getOption('toolbar');\r\n }\r\n set toolbar(value) {\r\n this._setOption('toolbar', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.twoWayBindingEnabled]\r\n \r\n */\r\n get twoWayBindingEnabled() {\r\n return this._getOption('twoWayBindingEnabled');\r\n }\r\n set twoWayBindingEnabled(value) {\r\n this._setOption('twoWayBindingEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n /**\r\n * [descr:GridBaseOptions.wordWrapEnabled]\r\n \r\n */\r\n get wordWrapEnabled() {\r\n return this._getOption('wordWrapEnabled');\r\n }\r\n set wordWrapEnabled(value) {\r\n this._setOption('wordWrapEnabled', value);\r\n }\r\n get columnsChildren() {\r\n return this._getOption('columns');\r\n }\r\n set columnsChildren(value) {\r\n this.setChildren('columns', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTreeList(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('columns', changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('expandedRowKeys', changes);\r\n this.setupChanges('selectedRowKeys', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('columns');\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('expandedRowKeys');\r\n this._idh.doCheck('selectedRowKeys');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTreeListComponent.ɵfac = function DxTreeListComponent_Factory(t) { return new (t || DxTreeListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTreeListComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTreeListComponent, selectors: [[\"dx-tree-list\"]], contentQueries: function DxTreeListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", allowColumnReordering: \"allowColumnReordering\", allowColumnResizing: \"allowColumnResizing\", autoExpandAll: \"autoExpandAll\", autoNavigateToFocusedRow: \"autoNavigateToFocusedRow\", cacheEnabled: \"cacheEnabled\", cellHintEnabled: \"cellHintEnabled\", columnAutoWidth: \"columnAutoWidth\", columnChooser: \"columnChooser\", columnFixing: \"columnFixing\", columnHidingEnabled: \"columnHidingEnabled\", columnMinWidth: \"columnMinWidth\", columnResizingMode: \"columnResizingMode\", columns: \"columns\", columnWidth: \"columnWidth\", customizeColumns: \"customizeColumns\", dataSource: \"dataSource\", dataStructure: \"dataStructure\", dateSerializationFormat: \"dateSerializationFormat\", disabled: \"disabled\", editing: \"editing\", elementAttr: \"elementAttr\", errorRowEnabled: \"errorRowEnabled\", expandedRowKeys: \"expandedRowKeys\", expandNodesOnFiltering: \"expandNodesOnFiltering\", filterBuilder: \"filterBuilder\", filterBuilderPopup: \"filterBuilderPopup\", filterMode: \"filterMode\", filterPanel: \"filterPanel\", filterRow: \"filterRow\", filterSyncEnabled: \"filterSyncEnabled\", filterValue: \"filterValue\", focusedColumnIndex: \"focusedColumnIndex\", focusedRowEnabled: \"focusedRowEnabled\", focusedRowIndex: \"focusedRowIndex\", focusedRowKey: \"focusedRowKey\", hasItemsExpr: \"hasItemsExpr\", headerFilter: \"headerFilter\", height: \"height\", highlightChanges: \"highlightChanges\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemsExpr: \"itemsExpr\", keyboardNavigation: \"keyboardNavigation\", keyExpr: \"keyExpr\", loadPanel: \"loadPanel\", noDataText: \"noDataText\", pager: \"pager\", paging: \"paging\", parentIdExpr: \"parentIdExpr\", remoteOperations: \"remoteOperations\", renderAsync: \"renderAsync\", repaintChangesOnly: \"repaintChangesOnly\", rootValue: \"rootValue\", rowAlternationEnabled: \"rowAlternationEnabled\", rowDragging: \"rowDragging\", rtlEnabled: \"rtlEnabled\", scrolling: \"scrolling\", searchPanel: \"searchPanel\", selectedRowKeys: \"selectedRowKeys\", selection: \"selection\", showBorders: \"showBorders\", showColumnHeaders: \"showColumnHeaders\", showColumnLines: \"showColumnLines\", showRowLines: \"showRowLines\", sorting: \"sorting\", stateStoring: \"stateStoring\", syncLookupFilterValues: \"syncLookupFilterValues\", tabIndex: \"tabIndex\", toolbar: \"toolbar\", twoWayBindingEnabled: \"twoWayBindingEnabled\", visible: \"visible\", width: \"width\", wordWrapEnabled: \"wordWrapEnabled\" }, outputs: { onAdaptiveDetailRowPreparing: \"onAdaptiveDetailRowPreparing\", onCellClick: \"onCellClick\", onCellDblClick: \"onCellDblClick\", onCellHoverChanged: \"onCellHoverChanged\", onCellPrepared: \"onCellPrepared\", onContentReady: \"onContentReady\", onContextMenuPreparing: \"onContextMenuPreparing\", onDataErrorOccurred: \"onDataErrorOccurred\", onDisposing: \"onDisposing\", onEditCanceled: \"onEditCanceled\", onEditCanceling: \"onEditCanceling\", onEditingStart: \"onEditingStart\", onEditorPrepared: \"onEditorPrepared\", onEditorPreparing: \"onEditorPreparing\", onFocusedCellChanged: \"onFocusedCellChanged\", onFocusedCellChanging: \"onFocusedCellChanging\", onFocusedRowChanged: \"onFocusedRowChanged\", onFocusedRowChanging: \"onFocusedRowChanging\", onInitialized: \"onInitialized\", onInitNewRow: \"onInitNewRow\", onKeyDown: \"onKeyDown\", onNodesInitialized: \"onNodesInitialized\", onOptionChanged: \"onOptionChanged\", onRowClick: \"onRowClick\", onRowCollapsed: \"onRowCollapsed\", onRowCollapsing: \"onRowCollapsing\", onRowDblClick: \"onRowDblClick\", onRowExpanded: \"onRowExpanded\", onRowExpanding: \"onRowExpanding\", onRowInserted: \"onRowInserted\", onRowInserting: \"onRowInserting\", onRowPrepared: \"onRowPrepared\", onRowRemoved: \"onRowRemoved\", onRowRemoving: \"onRowRemoving\", onRowUpdated: \"onRowUpdated\", onRowUpdating: \"onRowUpdating\", onRowValidating: \"onRowValidating\", onSaved: \"onSaved\", onSaving: \"onSaving\", onSelectionChanged: \"onSelectionChanged\", onToolbarPreparing: \"onToolbarPreparing\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", allowColumnReorderingChange: \"allowColumnReorderingChange\", allowColumnResizingChange: \"allowColumnResizingChange\", autoExpandAllChange: \"autoExpandAllChange\", autoNavigateToFocusedRowChange: \"autoNavigateToFocusedRowChange\", cacheEnabledChange: \"cacheEnabledChange\", cellHintEnabledChange: \"cellHintEnabledChange\", columnAutoWidthChange: \"columnAutoWidthChange\", columnChooserChange: \"columnChooserChange\", columnFixingChange: \"columnFixingChange\", columnHidingEnabledChange: \"columnHidingEnabledChange\", columnMinWidthChange: \"columnMinWidthChange\", columnResizingModeChange: \"columnResizingModeChange\", columnsChange: \"columnsChange\", columnWidthChange: \"columnWidthChange\", customizeColumnsChange: \"customizeColumnsChange\", dataSourceChange: \"dataSourceChange\", dataStructureChange: \"dataStructureChange\", dateSerializationFormatChange: \"dateSerializationFormatChange\", disabledChange: \"disabledChange\", editingChange: \"editingChange\", elementAttrChange: \"elementAttrChange\", errorRowEnabledChange: \"errorRowEnabledChange\", expandedRowKeysChange: \"expandedRowKeysChange\", expandNodesOnFilteringChange: \"expandNodesOnFilteringChange\", filterBuilderChange: \"filterBuilderChange\", filterBuilderPopupChange: \"filterBuilderPopupChange\", filterModeChange: \"filterModeChange\", filterPanelChange: \"filterPanelChange\", filterRowChange: \"filterRowChange\", filterSyncEnabledChange: \"filterSyncEnabledChange\", filterValueChange: \"filterValueChange\", focusedColumnIndexChange: \"focusedColumnIndexChange\", focusedRowEnabledChange: \"focusedRowEnabledChange\", focusedRowIndexChange: \"focusedRowIndexChange\", focusedRowKeyChange: \"focusedRowKeyChange\", hasItemsExprChange: \"hasItemsExprChange\", headerFilterChange: \"headerFilterChange\", heightChange: \"heightChange\", highlightChangesChange: \"highlightChangesChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemsExprChange: \"itemsExprChange\", keyboardNavigationChange: \"keyboardNavigationChange\", keyExprChange: \"keyExprChange\", loadPanelChange: \"loadPanelChange\", noDataTextChange: \"noDataTextChange\", pagerChange: \"pagerChange\", pagingChange: \"pagingChange\", parentIdExprChange: \"parentIdExprChange\", remoteOperationsChange: \"remoteOperationsChange\", renderAsyncChange: \"renderAsyncChange\", repaintChangesOnlyChange: \"repaintChangesOnlyChange\", rootValueChange: \"rootValueChange\", rowAlternationEnabledChange: \"rowAlternationEnabledChange\", rowDraggingChange: \"rowDraggingChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollingChange: \"scrollingChange\", searchPanelChange: \"searchPanelChange\", selectedRowKeysChange: \"selectedRowKeysChange\", selectionChange: \"selectionChange\", showBordersChange: \"showBordersChange\", showColumnHeadersChange: \"showColumnHeadersChange\", showColumnLinesChange: \"showColumnLinesChange\", showRowLinesChange: \"showRowLinesChange\", sortingChange: \"sortingChange\", stateStoringChange: \"stateStoringChange\", syncLookupFilterValuesChange: \"syncLookupFilterValuesChange\", tabIndexChange: \"tabIndexChange\", toolbarChange: \"toolbarChange\", twoWayBindingEnabledChange: \"twoWayBindingEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\", wordWrapEnabledChange: \"wordWrapEnabledChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTreeListComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeListComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tree-list',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], allowColumnReordering: [{\r\n type: Input\r\n }], allowColumnResizing: [{\r\n type: Input\r\n }], autoExpandAll: [{\r\n type: Input\r\n }], autoNavigateToFocusedRow: [{\r\n type: Input\r\n }], cacheEnabled: [{\r\n type: Input\r\n }], cellHintEnabled: [{\r\n type: Input\r\n }], columnAutoWidth: [{\r\n type: Input\r\n }], columnChooser: [{\r\n type: Input\r\n }], columnFixing: [{\r\n type: Input\r\n }], columnHidingEnabled: [{\r\n type: Input\r\n }], columnMinWidth: [{\r\n type: Input\r\n }], columnResizingMode: [{\r\n type: Input\r\n }], columns: [{\r\n type: Input\r\n }], columnWidth: [{\r\n type: Input\r\n }], customizeColumns: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], dataStructure: [{\r\n type: Input\r\n }], dateSerializationFormat: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], editing: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], errorRowEnabled: [{\r\n type: Input\r\n }], expandedRowKeys: [{\r\n type: Input\r\n }], expandNodesOnFiltering: [{\r\n type: Input\r\n }], filterBuilder: [{\r\n type: Input\r\n }], filterBuilderPopup: [{\r\n type: Input\r\n }], filterMode: [{\r\n type: Input\r\n }], filterPanel: [{\r\n type: Input\r\n }], filterRow: [{\r\n type: Input\r\n }], filterSyncEnabled: [{\r\n type: Input\r\n }], filterValue: [{\r\n type: Input\r\n }], focusedColumnIndex: [{\r\n type: Input\r\n }], focusedRowEnabled: [{\r\n type: Input\r\n }], focusedRowIndex: [{\r\n type: Input\r\n }], focusedRowKey: [{\r\n type: Input\r\n }], hasItemsExpr: [{\r\n type: Input\r\n }], headerFilter: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], highlightChanges: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemsExpr: [{\r\n type: Input\r\n }], keyboardNavigation: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], loadPanel: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], pager: [{\r\n type: Input\r\n }], paging: [{\r\n type: Input\r\n }], parentIdExpr: [{\r\n type: Input\r\n }], remoteOperations: [{\r\n type: Input\r\n }], renderAsync: [{\r\n type: Input\r\n }], repaintChangesOnly: [{\r\n type: Input\r\n }], rootValue: [{\r\n type: Input\r\n }], rowAlternationEnabled: [{\r\n type: Input\r\n }], rowDragging: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrolling: [{\r\n type: Input\r\n }], searchPanel: [{\r\n type: Input\r\n }], selectedRowKeys: [{\r\n type: Input\r\n }], selection: [{\r\n type: Input\r\n }], showBorders: [{\r\n type: Input\r\n }], showColumnHeaders: [{\r\n type: Input\r\n }], showColumnLines: [{\r\n type: Input\r\n }], showRowLines: [{\r\n type: Input\r\n }], sorting: [{\r\n type: Input\r\n }], stateStoring: [{\r\n type: Input\r\n }], syncLookupFilterValues: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], toolbar: [{\r\n type: Input\r\n }], twoWayBindingEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], wordWrapEnabled: [{\r\n type: Input\r\n }], onAdaptiveDetailRowPreparing: [{\r\n type: Output\r\n }], onCellClick: [{\r\n type: Output\r\n }], onCellDblClick: [{\r\n type: Output\r\n }], onCellHoverChanged: [{\r\n type: Output\r\n }], onCellPrepared: [{\r\n type: Output\r\n }], onContentReady: [{\r\n type: Output\r\n }], onContextMenuPreparing: [{\r\n type: Output\r\n }], onDataErrorOccurred: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onEditCanceled: [{\r\n type: Output\r\n }], onEditCanceling: [{\r\n type: Output\r\n }], onEditingStart: [{\r\n type: Output\r\n }], onEditorPrepared: [{\r\n type: Output\r\n }], onEditorPreparing: [{\r\n type: Output\r\n }], onFocusedCellChanged: [{\r\n type: Output\r\n }], onFocusedCellChanging: [{\r\n type: Output\r\n }], onFocusedRowChanged: [{\r\n type: Output\r\n }], onFocusedRowChanging: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onInitNewRow: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: Output\r\n }], onNodesInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onRowClick: [{\r\n type: Output\r\n }], onRowCollapsed: [{\r\n type: Output\r\n }], onRowCollapsing: [{\r\n type: Output\r\n }], onRowDblClick: [{\r\n type: Output\r\n }], onRowExpanded: [{\r\n type: Output\r\n }], onRowExpanding: [{\r\n type: Output\r\n }], onRowInserted: [{\r\n type: Output\r\n }], onRowInserting: [{\r\n type: Output\r\n }], onRowPrepared: [{\r\n type: Output\r\n }], onRowRemoved: [{\r\n type: Output\r\n }], onRowRemoving: [{\r\n type: Output\r\n }], onRowUpdated: [{\r\n type: Output\r\n }], onRowUpdating: [{\r\n type: Output\r\n }], onRowValidating: [{\r\n type: Output\r\n }], onSaved: [{\r\n type: Output\r\n }], onSaving: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onToolbarPreparing: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], allowColumnReorderingChange: [{\r\n type: Output\r\n }], allowColumnResizingChange: [{\r\n type: Output\r\n }], autoExpandAllChange: [{\r\n type: Output\r\n }], autoNavigateToFocusedRowChange: [{\r\n type: Output\r\n }], cacheEnabledChange: [{\r\n type: Output\r\n }], cellHintEnabledChange: [{\r\n type: Output\r\n }], columnAutoWidthChange: [{\r\n type: Output\r\n }], columnChooserChange: [{\r\n type: Output\r\n }], columnFixingChange: [{\r\n type: Output\r\n }], columnHidingEnabledChange: [{\r\n type: Output\r\n }], columnMinWidthChange: [{\r\n type: Output\r\n }], columnResizingModeChange: [{\r\n type: Output\r\n }], columnsChange: [{\r\n type: Output\r\n }], columnWidthChange: [{\r\n type: Output\r\n }], customizeColumnsChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], dataStructureChange: [{\r\n type: Output\r\n }], dateSerializationFormatChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], editingChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], errorRowEnabledChange: [{\r\n type: Output\r\n }], expandedRowKeysChange: [{\r\n type: Output\r\n }], expandNodesOnFilteringChange: [{\r\n type: Output\r\n }], filterBuilderChange: [{\r\n type: Output\r\n }], filterBuilderPopupChange: [{\r\n type: Output\r\n }], filterModeChange: [{\r\n type: Output\r\n }], filterPanelChange: [{\r\n type: Output\r\n }], filterRowChange: [{\r\n type: Output\r\n }], filterSyncEnabledChange: [{\r\n type: Output\r\n }], filterValueChange: [{\r\n type: Output\r\n }], focusedColumnIndexChange: [{\r\n type: Output\r\n }], focusedRowEnabledChange: [{\r\n type: Output\r\n }], focusedRowIndexChange: [{\r\n type: Output\r\n }], focusedRowKeyChange: [{\r\n type: Output\r\n }], hasItemsExprChange: [{\r\n type: Output\r\n }], headerFilterChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], highlightChangesChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemsExprChange: [{\r\n type: Output\r\n }], keyboardNavigationChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], loadPanelChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], pagerChange: [{\r\n type: Output\r\n }], pagingChange: [{\r\n type: Output\r\n }], parentIdExprChange: [{\r\n type: Output\r\n }], remoteOperationsChange: [{\r\n type: Output\r\n }], renderAsyncChange: [{\r\n type: Output\r\n }], repaintChangesOnlyChange: [{\r\n type: Output\r\n }], rootValueChange: [{\r\n type: Output\r\n }], rowAlternationEnabledChange: [{\r\n type: Output\r\n }], rowDraggingChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollingChange: [{\r\n type: Output\r\n }], searchPanelChange: [{\r\n type: Output\r\n }], selectedRowKeysChange: [{\r\n type: Output\r\n }], selectionChange: [{\r\n type: Output\r\n }], showBordersChange: [{\r\n type: Output\r\n }], showColumnHeadersChange: [{\r\n type: Output\r\n }], showColumnLinesChange: [{\r\n type: Output\r\n }], showRowLinesChange: [{\r\n type: Output\r\n }], sortingChange: [{\r\n type: Output\r\n }], stateStoringChange: [{\r\n type: Output\r\n }], syncLookupFilterValuesChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], toolbarChange: [{\r\n type: Output\r\n }], twoWayBindingEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], wordWrapEnabledChange: [{\r\n type: Output\r\n }], columnsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiColumnComponent]\r\n }] }); })();\r\nclass DxTreeListModule {\r\n}\r\n/** @nocollapse */ DxTreeListModule.ɵfac = function DxTreeListModule_Factory(t) { return new (t || DxTreeListModule)(); };\r\n/** @nocollapse */ DxTreeListModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTreeListModule });\r\n/** @nocollapse */ DxTreeListModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeListModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTreeListComponent\r\n ],\r\n exports: [\r\n DxTreeListComponent,\r\n DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTreeListModule, { declarations: [DxTreeListComponent], imports: [DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTreeListComponent, DxoColumnChooserModule,\r\n DxoPositionModule,\r\n DxoAtModule,\r\n DxoBoundaryOffsetModule,\r\n DxoCollisionModule,\r\n DxoMyModule,\r\n DxoOffsetModule,\r\n DxoSearchModule,\r\n DxoSelectionModule,\r\n DxoColumnFixingModule,\r\n DxoTextsModule,\r\n DxiColumnModule,\r\n DxiButtonModule,\r\n DxoHeaderFilterModule,\r\n DxoLookupModule,\r\n DxoFormatModule,\r\n DxoFormItemModule,\r\n DxoLabelModule,\r\n DxiValidationRuleModule,\r\n DxoEditingModule,\r\n DxiChangeModule,\r\n DxoFormModule,\r\n DxoColCountByScreenModule,\r\n DxiItemModule,\r\n DxoTabPanelOptionsModule,\r\n DxiTabModule,\r\n DxoButtonOptionsModule,\r\n DxoPopupModule,\r\n DxoAnimationModule,\r\n DxoHideModule,\r\n DxoFromModule,\r\n DxoToModule,\r\n DxoShowModule,\r\n DxiToolbarItemModule,\r\n DxoFilterBuilderModule,\r\n DxiCustomOperationModule,\r\n DxiFieldModule,\r\n DxoFilterOperationDescriptionsModule,\r\n DxoGroupOperationDescriptionsModule,\r\n DxoFilterBuilderPopupModule,\r\n DxoFilterPanelModule,\r\n DxoFilterRowModule,\r\n DxoOperationDescriptionsModule,\r\n DxoKeyboardNavigationModule,\r\n DxoLoadPanelModule,\r\n DxoPagerModule,\r\n DxoPagingModule,\r\n DxoRemoteOperationsModule,\r\n DxoRowDraggingModule,\r\n DxoCursorOffsetModule,\r\n DxoScrollingModule,\r\n DxoSearchPanelModule,\r\n DxoSortingModule,\r\n DxoStateStoringModule,\r\n DxoToolbarModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTreeListComponent, DxTreeListModule };\n","/**\r\n * DevExtreme (esm/viz/tree_map/common.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions as _patchFontOptions\r\n} from \"../core/utils\";\r\nexport function buildRectAppearance(option) {\r\n var border = option.border || {};\r\n return {\r\n fill: option.color,\r\n opacity: option.opacity,\r\n stroke: border.color,\r\n \"stroke-width\": border.width,\r\n \"stroke-opacity\": border.opacity,\r\n hatching: option.hatching\r\n }\r\n}\r\nexport function buildTextAppearance(options, filter) {\r\n return {\r\n attr: {\r\n filter: filter\r\n },\r\n css: _patchFontOptions(options.font)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/node.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\n\r\nfunction Node() {}\r\nvar updateTile = [updateLeaf, updateGroup];\r\n_extend(Node.prototype, {\r\n value: 0,\r\n isNode: function() {\r\n return !!(this.nodes && this.level < this.ctx.maxLevel)\r\n },\r\n isActive: function() {\r\n var ctx = this.ctx;\r\n return this.level >= ctx.minLevel && this.level <= ctx.maxLevel\r\n },\r\n updateStyles: function() {\r\n var isNode = Number(this.isNode());\r\n this.state = this._buildState(this.ctx.settings[isNode].state, !isNode && this.color && {\r\n fill: this.color\r\n })\r\n },\r\n _buildState: function(state, extra) {\r\n var base = _extend({}, state);\r\n return extra ? _extend(base, extra) : base\r\n },\r\n updateLabelStyle: function() {\r\n var settings = this.ctx.settings[Number(this.isNode())];\r\n this.labelState = settings.labelState;\r\n this.labelParams = settings.labelParams\r\n },\r\n _getState: function() {\r\n return this.state\r\n },\r\n applyState: function() {\r\n updateTile[Number(this.isNode())](this.tile, this._getState())\r\n }\r\n});\r\n\r\nfunction updateLeaf(content, attrs) {\r\n content.smartAttr(attrs)\r\n}\r\n\r\nfunction updateGroup(content, attrs) {\r\n content.outer.attr({\r\n stroke: attrs.stroke,\r\n \"stroke-width\": attrs[\"stroke-width\"],\r\n \"stroke-opacity\": attrs[\"stroke-opacity\"]\r\n });\r\n content.inner.smartAttr({\r\n fill: attrs.fill,\r\n opacity: attrs.opacity,\r\n hatching: attrs.hatching\r\n })\r\n}\r\nexport default Node;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction as _isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar _round = Math.round;\r\nvar algorithms = {};\r\nvar defaultAlgorithm;\r\nexport function getAlgorithm(value) {\r\n return algorithms[_normalizeEnum(value)] || _isFunction(value) && value || defaultAlgorithm\r\n}\r\nexport function addAlgorithm(name, callback) {\r\n algorithms[name] = callback\r\n}\r\nexport function setDefaultAlgorithm(name) {\r\n defaultAlgorithm = algorithms[name]\r\n}\r\nvar directionToIndexOffsets = {};\r\ndirectionToIndexOffsets[-1] = [2, 0];\r\ndirectionToIndexOffsets[1] = [0, 2];\r\nexport var getStaticSideIndex = function(rect) {\r\n return rect[2] - rect[0] < rect[3] - rect[1] ? 0 : 1\r\n};\r\nexport function buildSidesData(rect, directions, _staticSideIndex) {\r\n var staticSideIndex = void 0 !== _staticSideIndex ? _staticSideIndex : getStaticSideIndex(rect);\r\n var variedSideIndex = 1 - staticSideIndex;\r\n var staticSideDirection = directions[staticSideIndex];\r\n var variedSideDirection = directions[variedSideIndex];\r\n var staticSideIndexOffsets = directionToIndexOffsets[staticSideDirection];\r\n var variedSideIndexOffsets = directionToIndexOffsets[variedSideDirection];\r\n return {\r\n staticSide: rect[2 + staticSideIndex] - rect[staticSideIndex],\r\n variedSide: rect[2 + variedSideIndex] - rect[variedSideIndex],\r\n static1: staticSideIndex + staticSideIndexOffsets[0],\r\n static2: staticSideIndex + staticSideIndexOffsets[1],\r\n varied1: variedSideIndex + variedSideIndexOffsets[0],\r\n varied2: variedSideIndex + variedSideIndexOffsets[1],\r\n staticDir: staticSideDirection,\r\n variedDir: variedSideDirection\r\n }\r\n}\r\nexport function calculateRectangles(nodes, head, totalRect, sidesData, rowData) {\r\n var i;\r\n var ii;\r\n var variedSidePart = [0, 0, 0, 0];\r\n var static1 = sidesData.static1;\r\n var static2 = sidesData.static2;\r\n var position = totalRect[static1];\r\n var dir = sidesData.staticDir;\r\n var side = sidesData.staticSide;\r\n var sum = rowData.sum;\r\n var rect;\r\n var delta;\r\n variedSidePart[sidesData.varied1] = totalRect[sidesData.varied1];\r\n variedSidePart[sidesData.varied2] = totalRect[sidesData.varied1] + sidesData.variedDir * rowData.side;\r\n for (i = head, ii = head + rowData.count; i < ii; ++i) {\r\n rect = variedSidePart.slice();\r\n rect[static1] = position;\r\n delta = _round(side * nodes[i].value / sum) || 0;\r\n sum -= nodes[i].value;\r\n side -= delta;\r\n position += dir * delta;\r\n rect[static2] = position;\r\n nodes[i].rect = rect\r\n }\r\n totalRect[sidesData.varied1] = variedSidePart[sidesData.varied2]\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/colorizing.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar colorizers = {};\r\nvar defaultColorizerName;\r\n\r\nfunction wrapLeafColorGetter(getter) {\r\n return function(node) {\r\n return !node.isNode() ? getter(node) : void 0\r\n }\r\n}\r\n\r\nfunction wrapGroupColorGetter(getter) {\r\n return function(node) {\r\n var parent = !node.isNode() && node.parent;\r\n return parent ? parent._groupColor = parent._groupColor || getter(parent) : void 0\r\n }\r\n}\r\nexport function getColorizer(options, themeManager, root) {\r\n var type = _normalizeEnum(options.type || defaultColorizerName);\r\n var colorizer = colorizers[type] && colorizers[type](options, themeManager, root);\r\n return colorizer ? (options.colorizeGroups ? wrapGroupColorGetter : wrapLeafColorGetter)(colorizer) : _noop\r\n}\r\nexport function addColorizer(name, colorizer) {\r\n colorizers[name] = colorizer\r\n}\r\nexport function setDefaultColorizer(name) {\r\n defaultColorizerName = name\r\n}\r\n\r\nfunction getValueAsColorCode(node) {\r\n return node.value\r\n}\r\n\r\nfunction createColorCode(colorCodeField) {\r\n return function(node) {\r\n return Number(node.data[colorCodeField])\r\n }\r\n}\r\nexport function createColorCodeGetter(options) {\r\n return options.colorCodeField ? createColorCode(options.colorCodeField) : getValueAsColorCode\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.squarified.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nimport {\r\n buildSidesData,\r\n calculateRectangles,\r\n getStaticSideIndex\r\n} from \"./tiling\";\r\n\r\nfunction compare(a, b) {\r\n return b.value - a.value\r\n}\r\n\r\nfunction getAspectRatio(value) {\r\n return _max(value, 1 / value)\r\n}\r\n\r\nfunction findAppropriateCollection(nodes, head, context) {\r\n var bestAspectRatio = 1 / 0;\r\n var nextAspectRatio;\r\n var sum = 0;\r\n var nextSum;\r\n var i;\r\n var j;\r\n var ii = nodes.length;\r\n var coeff = context.areaToValue / context.staticSide;\r\n var totalAspectRatio;\r\n for (i = head; i < ii;) {\r\n nextSum = sum + nodes[i].value;\r\n totalAspectRatio = context.staticSide / coeff / nextSum;\r\n nextAspectRatio = 0;\r\n for (j = head; j <= i; ++j) {\r\n nextAspectRatio = context.accumulate(nextAspectRatio, getAspectRatio(totalAspectRatio * nodes[j].value / nextSum), j - head + 1)\r\n }\r\n if (nextAspectRatio < bestAspectRatio) {\r\n bestAspectRatio = nextAspectRatio;\r\n sum = nextSum;\r\n ++i\r\n } else {\r\n break\r\n }\r\n }\r\n return {\r\n sum: sum,\r\n count: i - head,\r\n side: _round(coeff * sum)\r\n }\r\n}\r\n\r\nfunction getArea(rect) {\r\n return (rect[2] - rect[0]) * (rect[3] - rect[1])\r\n}\r\n\r\nfunction doStep(nodes, head, context) {\r\n var sidesData = buildSidesData(context.rect, context.directions, context.staticSideIndex);\r\n var area = getArea(context.rect);\r\n var rowData = area > 0 ? findAppropriateCollection(nodes, head, {\r\n areaToValue: area / context.sum,\r\n accumulate: context.accumulate,\r\n staticSide: sidesData.staticSide\r\n }) : {\r\n sum: 1,\r\n side: sidesData.variedSide,\r\n count: nodes.length - head\r\n };\r\n calculateRectangles(nodes, head, context.rect, sidesData, rowData);\r\n context.sum -= rowData.sum;\r\n return head + rowData.count\r\n}\r\nexport default function(data, accumulate, isFixedStaticSide) {\r\n var items = data.items;\r\n var ii = items.length;\r\n var i;\r\n var context = {\r\n sum: data.sum,\r\n rect: data.rect,\r\n directions: data.directions,\r\n accumulate: accumulate\r\n };\r\n if (isFixedStaticSide) {\r\n context.staticSideIndex = getStaticSideIndex(context.rect)\r\n }\r\n items.sort(compare);\r\n for (i = 0; i < ii;) {\r\n i = doStep(items, i, context)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.squarified.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _max = Math.max;\r\nimport _squarify from \"./tiling.squarified.base\";\r\nimport {\r\n addAlgorithm\r\n} from \"./tiling\";\r\n\r\nfunction accumulate(total, current) {\r\n return _max(total, current)\r\n}\r\n\r\nfunction squarified(data) {\r\n return _squarify(data, accumulate, false)\r\n}\r\naddAlgorithm(\"squarified\", squarified);\r\nexport default squarified;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/colorizing.discrete.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction discreteColorizer(options, themeManager, root) {\r\n var palette = themeManager.createPalette(options.palette, {\r\n useHighlight: true,\r\n extensionMode: options.paletteExtensionMode,\r\n count: options.colorizeGroups ? getNodesCount(root) : getLeafsCount(root)\r\n });\r\n return (options.colorizeGroups ? discreteGroupColorizer : discreteLeafColorizer)(palette, root)\r\n}\r\n\r\nfunction getLeafsCount(root) {\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var count = 0;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n count = Math.max(count, getLeafsCount(node))\r\n } else {\r\n count += 1\r\n }\r\n }\r\n return count\r\n}\r\n\r\nfunction discreteLeafColorizer(palette) {\r\n var colors = palette.generateColors();\r\n return function(node) {\r\n return colors[node.index]\r\n }\r\n}\r\n\r\nfunction getNodesCount(root) {\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var count = 0;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n count += getNodesCount(node) + 1\r\n }\r\n }\r\n return count\r\n}\r\n\r\nfunction prepareDiscreteGroupColors(palette, root) {\r\n var colors = {};\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n allNodes = allNodes.concat(node.nodes);\r\n ii = allNodes.length\r\n } else if (!colors[node.parent._id]) {\r\n colors[node.parent._id] = palette.getNextColor()\r\n }\r\n }\r\n return colors\r\n}\r\n\r\nfunction discreteGroupColorizer(palette, root) {\r\n var colors = prepareDiscreteGroupColors(palette, root);\r\n return function(node) {\r\n return colors[node._id]\r\n }\r\n}\r\nimport {\r\n addColorizer\r\n} from \"./colorizing\";\r\naddColorizer(\"discrete\", discreteColorizer);\r\nexport default discreteColorizer;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tree_map.base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n buildRectAppearance as _buildRectAppearance,\r\n buildTextAppearance as _buildTextAppearance\r\n} from \"./common\";\r\nimport Node from \"./node\";\r\nimport {\r\n getAlgorithm as _getTilingAlgorithm,\r\n setDefaultAlgorithm\r\n} from \"./tiling\";\r\nimport {\r\n getColorizer as _getColorizer,\r\n setDefaultColorizer\r\n} from \"./colorizing\";\r\nimport {\r\n patchFontOptions as _patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport baseWidget from \"../../__internal/viz/core/m_base_widget\";\r\nvar _max = Math.max;\r\nvar directions = {\r\n lefttoprightbottom: [1, 1],\r\n leftbottomrighttop: [1, -1],\r\n righttopleftbottom: [-1, 1],\r\n rightbottomlefttop: [-1, -1]\r\n};\r\nimport \"./tiling.squarified\";\r\nsetDefaultAlgorithm(\"squarified\");\r\nimport \"./colorizing.discrete\";\r\nsetDefaultColorizer(\"discrete\");\r\n\r\nfunction pickPositiveInteger(val) {\r\n return val > 0 ? Math.round(val) : 0\r\n}\r\nvar dxTreeMap = baseWidget.inherit({\r\n _handlers: {\r\n beginBuildNodes: _noop,\r\n buildNode: _noop,\r\n endBuildNodes: _noop,\r\n setTrackerData: _noop,\r\n calculateState: function(options) {\r\n return _buildRectAppearance(options)\r\n }\r\n },\r\n _rootClass: \"dxtm-tree-map\",\r\n _rootClassPrefix: \"dxtm\",\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _themeSection: \"treeMap\",\r\n _fontFields: [\"tile.label.font\", \"group.label.font\"],\r\n _init: function() {\r\n var that = this;\r\n that._rectOffsets = {};\r\n that._handlers = Object.create(that._handlers);\r\n that._context = {\r\n suspend: function() {\r\n if (!that._applyingChanges) {\r\n that._suspendChanges()\r\n }\r\n },\r\n resume: function() {\r\n if (!that._applyingChanges) {\r\n that._resumeChanges()\r\n }\r\n },\r\n change: function(codes) {\r\n that._change(codes)\r\n },\r\n settings: [{}, {}],\r\n calculateState: that._handlers.calculateState,\r\n calculateLabelState: _buildTextAppearance\r\n };\r\n that._root = that._topNode = {\r\n nodes: []\r\n };\r\n that.callBase.apply(that, arguments)\r\n },\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _initCore: function() {\r\n var renderer = this._renderer;\r\n this._createProxyType();\r\n this._tilesGroup = renderer.g().linkOn(renderer.root, \"tiles\").linkAppend();\r\n this._labelsGroup = renderer.g().linkOn(renderer.root, \"labels\").linkAppend()\r\n },\r\n _createProxyType: _noop,\r\n _disposeCore: function() {\r\n this._filter && this._filter.dispose();\r\n this._labelsGroup.linkOff();\r\n this._tilesGroup.linkOff()\r\n },\r\n _applySize: function(rect) {\r\n this._tilingRect = rect.slice();\r\n this._change([\"TILING\"])\r\n },\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\",\r\n valueField: \"NODES_CREATE\",\r\n childrenField: \"NODES_CREATE\",\r\n colorField: \"TILES\",\r\n colorizer: \"TILES\",\r\n labelField: \"LABELS\",\r\n tile: \"TILE_SETTINGS\",\r\n group: \"GROUP_SETTINGS\",\r\n maxDepth: \"MAX_DEPTH\",\r\n layoutAlgorithm: \"TILING\",\r\n layoutDirection: \"TILING\"\r\n },\r\n _themeDependentChanges: [\"TILE_SETTINGS\", \"GROUP_SETTINGS\", \"MAX_DEPTH\"],\r\n _changeDataSource: function() {\r\n this._isDataExpected = this._isSyncData = true;\r\n this._updateDataSource();\r\n this._isSyncData = false;\r\n if (this._isDataExpected) {\r\n this._suspendChanges()\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (this._isDataExpected) {\r\n this._isDataExpected = false;\r\n this._change([\"NODES_CREATE\"]);\r\n if (!this._isSyncData) {\r\n this._resumeChanges()\r\n }\r\n } else {\r\n this._requestChange([\"NODES_CREATE\"])\r\n }\r\n },\r\n _optionChangesOrder: [\"DATA_SOURCE\", \"TILE_SETTINGS\", \"GROUP_SETTINGS\", \"MAX_DEPTH\"],\r\n _change_DATA_SOURCE: function() {\r\n this._changeDataSource()\r\n },\r\n _change_TILE_SETTINGS: function() {\r\n this._changeTileSettings()\r\n },\r\n _change_GROUP_SETTINGS: function() {\r\n this._changeGroupSettings()\r\n },\r\n _change_MAX_DEPTH: function() {\r\n this._changeMaxDepth()\r\n },\r\n _customChangesOrder: [\"NODES_CREATE\", \"NODES_RESET\", \"TILES\", \"LABELS\", \"TILING\", \"LABELS_LAYOUT\"],\r\n _change_NODES_CREATE: function() {\r\n this._buildNodes()\r\n },\r\n _change_NODES_RESET: function() {\r\n this._resetNodes()\r\n },\r\n _change_TILES: function() {\r\n this._applyTilesAppearance()\r\n },\r\n _change_LABELS: function() {\r\n this._applyLabelsAppearance()\r\n },\r\n _change_TILING: function() {\r\n this._performTiling()\r\n },\r\n _change_LABELS_LAYOUT: function() {\r\n this._performLabelsLayout()\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (!that._isDataExpected) {\r\n that._drawn()\r\n }\r\n that._context.forceReset = false\r\n },\r\n _buildNodes: function() {\r\n var root = this._root = this._topNode = new Node;\r\n root._id = 0;\r\n root.parent = {};\r\n root.data = {};\r\n root.level = root.index = -1;\r\n root.ctx = this._context;\r\n root.label = null;\r\n this._nodes = [root];\r\n this._handlers.beginBuildNodes();\r\n var processedData = this._processDataSourceItems(this._dataSourceItems() || []);\r\n traverseDataItems(root, processedData.items, 0, {\r\n itemsField: !processedData.isPlain && this._getOption(\"childrenField\", true) || \"items\",\r\n valueField: this._getOption(\"valueField\", true) || \"value\",\r\n buildNode: this._handlers.buildNode,\r\n ctx: this._context,\r\n nodes: this._nodes\r\n });\r\n this._onNodesCreated();\r\n this._handlers.endBuildNodes();\r\n this._change([\"NODES_RESET\"])\r\n },\r\n _onNodesCreated: _noop,\r\n _processDataSourceItems: function(items) {\r\n return {\r\n items: items,\r\n isPlain: false\r\n }\r\n },\r\n _changeTileSettings: function() {\r\n var options = this._getOption(\"tile\");\r\n var offsets = this._rectOffsets;\r\n var borderWidth = pickPositiveInteger(options.border.width);\r\n var edgeOffset = borderWidth / 2;\r\n var innerOffset = 1 & borderWidth ? .5 : 0;\r\n var labelOptions = options.label;\r\n var settings = this._context.settings[0];\r\n this._change([\"TILES\", \"LABELS\"]);\r\n settings.state = this._handlers.calculateState(options);\r\n this._filter = this._filter || this._renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\");\r\n this._filter.attr(labelOptions.shadow);\r\n this._calculateLabelSettings(settings, labelOptions, this._filter.id);\r\n if (offsets.tileEdge !== edgeOffset || offsets.tileInner !== innerOffset) {\r\n offsets.tileEdge = edgeOffset;\r\n offsets.tileInner = innerOffset;\r\n this._change([\"TILING\"])\r\n }\r\n },\r\n _changeGroupSettings: function() {\r\n var options = this._getOption(\"group\");\r\n var labelOptions = options.label;\r\n var offsets = this._rectOffsets;\r\n var borderWidth = pickPositiveInteger(options.border.width);\r\n var edgeOffset = borderWidth / 2;\r\n var innerOffset = 1 & borderWidth ? .5 : 0;\r\n var headerHeight = 0;\r\n var groupPadding = pickPositiveInteger(options.padding);\r\n var settings = this._context.settings[1];\r\n this._change([\"TILES\", \"LABELS\"]);\r\n settings.state = this._handlers.calculateState(options);\r\n this._calculateLabelSettings(settings, labelOptions);\r\n if (options.headerHeight >= 0) {\r\n headerHeight = pickPositiveInteger(options.headerHeight)\r\n } else {\r\n headerHeight = settings.labelParams.height + 2 * pickPositiveInteger(labelOptions.paddingTopBottom)\r\n }\r\n if (this._headerHeight !== headerHeight) {\r\n this._headerHeight = headerHeight;\r\n this._change([\"TILING\"])\r\n }\r\n if (this._groupPadding !== groupPadding) {\r\n this._groupPadding = groupPadding;\r\n this._change([\"TILING\"])\r\n }\r\n if (offsets.headerEdge !== edgeOffset || offsets.headerInner !== innerOffset) {\r\n offsets.headerEdge = edgeOffset;\r\n offsets.headerInner = innerOffset;\r\n this._change([\"TILING\"])\r\n }\r\n },\r\n _calculateLabelSettings: function(settings, options, filter) {\r\n var bBox = this._getTextBBox(options.font);\r\n var paddingLeftRight = pickPositiveInteger(options.paddingLeftRight);\r\n var paddingTopBottom = pickPositiveInteger(options.paddingTopBottom);\r\n var tileLabelOptions = this._getOption(\"tile.label\");\r\n var groupLabelOptions = this._getOption(\"group.label\");\r\n settings.labelState = _buildTextAppearance(options, filter);\r\n settings.labelState.visible = !(\"visible\" in options) || !!options.visible;\r\n settings.labelParams = {\r\n height: bBox.height,\r\n rtlEnabled: this._getOption(\"rtlEnabled\", true),\r\n paddingTopBottom: paddingTopBottom,\r\n paddingLeftRight: paddingLeftRight,\r\n tileLabelWordWrap: tileLabelOptions.wordWrap,\r\n tileLabelOverflow: tileLabelOptions.textOverflow,\r\n groupLabelOverflow: groupLabelOptions.textOverflow\r\n }\r\n },\r\n _changeMaxDepth: function() {\r\n var maxDepth = this._getOption(\"maxDepth\", true);\r\n maxDepth = maxDepth >= 1 ? Math.round(maxDepth) : 1 / 0;\r\n if (this._maxDepth !== maxDepth) {\r\n this._maxDepth = maxDepth;\r\n this._change([\"NODES_RESET\"])\r\n }\r\n },\r\n _resetNodes: function() {\r\n this._tilesGroup.clear();\r\n this._renderer.initDefsElements();\r\n this._context.forceReset = true;\r\n this._context.minLevel = this._topNode.level + 1;\r\n this._context.maxLevel = this._context.minLevel + this._maxDepth - 1;\r\n this._change([\"TILES\", \"LABELS\", \"TILING\"])\r\n },\r\n _processNodes: function(context, process) {\r\n processNodes(context, this._topNode, process)\r\n },\r\n _applyTilesAppearance: function() {\r\n var colorizer = _getColorizer(this._getOption(\"colorizer\"), this._themeManager, this._topNode);\r\n this._processNodes({\r\n renderer: this._renderer,\r\n group: this._tilesGroup,\r\n setTrackerData: this._handlers.setTrackerData,\r\n colorField: this._getOption(\"colorField\", true) || \"color\",\r\n getColor: colorizer\r\n }, processTileAppearance)\r\n },\r\n _applyLabelsAppearance: function() {\r\n this._labelsGroup.clear();\r\n this._processNodes({\r\n renderer: this._renderer,\r\n group: this._labelsGroup,\r\n setTrackerData: this._handlers.setTrackerData,\r\n labelField: this._getOption(\"labelField\", true) || \"name\"\r\n }, processLabelAppearance);\r\n this._change([\"LABELS_LAYOUT\"])\r\n },\r\n _performTiling: function() {\r\n var context = {\r\n algorithm: _getTilingAlgorithm(this._getOption(\"layoutAlgorithm\", true)),\r\n directions: directions[String(this._getOption(\"layoutDirection\", true)).toLowerCase()] || directions.lefttoprightbottom,\r\n headerHeight: this._headerHeight,\r\n groupPadding: this._groupPadding,\r\n rectOffsets: this._rectOffsets\r\n };\r\n this._topNode.innerRect = this._tilingRect;\r\n calculateRects(context, this._topNode);\r\n this._processNodes(context, processTiling);\r\n this._change([\"LABELS_LAYOUT\"]);\r\n this._onTilingPerformed()\r\n },\r\n _onTilingPerformed: _noop,\r\n _performLabelsLayout: function() {\r\n this._processNodes(null, processLabelsLayout)\r\n },\r\n _getTextBBox: function(fontOptions) {\r\n var renderer = this._renderer;\r\n var text = this._textForCalculations || renderer.text(\"0\", 0, 0);\r\n this._textForCalculations = text;\r\n text.css(_patchFontOptions(fontOptions)).append(renderer.root);\r\n var bBox = text.getBBox();\r\n text.remove();\r\n return bBox\r\n }\r\n});\r\n\r\nfunction traverseDataItems(root, dataItems, level, params) {\r\n var nodes = [];\r\n var allNodes = params.nodes;\r\n var node;\r\n var i;\r\n var ii = dataItems.length;\r\n var dataItem;\r\n var totalValue = 0;\r\n var items;\r\n for (i = 0; i < ii; ++i) {\r\n var _items;\r\n dataItem = dataItems[i];\r\n node = new Node;\r\n node._id = allNodes.length;\r\n node.ctx = params.ctx;\r\n node.parent = root;\r\n node.level = level;\r\n node.index = nodes.length;\r\n node.data = dataItem;\r\n params.buildNode(node);\r\n allNodes.push(node);\r\n nodes.push(node);\r\n items = dataItem[params.itemsField];\r\n if (null !== (_items = items) && void 0 !== _items && _items.length) {\r\n traverseDataItems(node, items, level + 1, params)\r\n }\r\n if (dataItem[params.valueField] > 0) {\r\n node.value = Number(dataItem[params.valueField])\r\n }\r\n totalValue += node.value\r\n }\r\n root.nodes = nodes;\r\n root.value = totalValue\r\n}\r\n\r\nfunction processNodes(context, root, process) {\r\n var nodes = root.nodes;\r\n var node;\r\n var i;\r\n var ii = nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n node = nodes[i];\r\n process(context, node);\r\n if (node.isNode()) {\r\n processNodes(context, node, process)\r\n }\r\n }\r\n}\r\nvar createTile = [createLeaf, createGroup];\r\n\r\nfunction processTileAppearance(context, node) {\r\n node.color = node.data[context.colorField] || context.getColor(node) || node.parent.color;\r\n node.updateStyles();\r\n node.tile = !node.ctx.forceReset && node.tile || createTile[Number(node.isNode())](context, node);\r\n node.applyState()\r\n}\r\n\r\nfunction createLeaf(context, node) {\r\n var tile = context.renderer.simpleRect().append(context.group);\r\n context.setTrackerData(node, tile);\r\n return tile\r\n}\r\n\r\nfunction createGroup(context, node) {\r\n var outer = context.renderer.simpleRect().append(context.group);\r\n var inner = context.renderer.simpleRect().append(context.group);\r\n context.setTrackerData(node, inner);\r\n return {\r\n outer: outer,\r\n inner: inner\r\n }\r\n}\r\n\r\nfunction processLabelAppearance(context, node) {\r\n node.updateLabelStyle();\r\n if (node.labelState.visible) {\r\n createLabel(context, node, node.labelState, node.labelParams)\r\n }\r\n}\r\n\r\nfunction createLabel(context, currentNode, settings, params) {\r\n var textData = currentNode.data[context.labelField];\r\n currentNode.label = textData ? String(textData) : null;\r\n textData = currentNode.customLabel || currentNode.label;\r\n if (textData) {\r\n currentNode.text = context.renderer.text(textData).attr(settings.attr).css(settings.css).append(context.group);\r\n context.setTrackerData(currentNode, currentNode.text)\r\n }\r\n}\r\nvar emptyRect = [0, 0, 0, 0];\r\n\r\nfunction calculateRects(context, root) {\r\n var nodes = root.nodes;\r\n var items = [];\r\n var rects = [];\r\n var sum = 0;\r\n var i;\r\n var ii = items.length = rects.length = nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n sum += nodes[i].value;\r\n items[i] = {\r\n value: nodes[i].value,\r\n i: i\r\n }\r\n }\r\n if (sum > 0) {\r\n context.algorithm({\r\n items: items.slice(),\r\n sum: sum,\r\n rect: root.innerRect.slice(),\r\n isRotated: 1 & nodes[0].level,\r\n directions: context.directions\r\n })\r\n }\r\n for (i = 0; i < ii; ++i) {\r\n rects[i] = items[i].rect || emptyRect\r\n }\r\n root.rects = rects\r\n}\r\n\r\nfunction processTiling(context, node) {\r\n var rect = node.parent.rects[node.index];\r\n var rectOffsets = context.rectOffsets;\r\n var headerHeight;\r\n if (node.isNode()) {\r\n setRectAttrs(node.tile.outer, buildTileRect(rect, node.parent.innerRect, rectOffsets.headerEdge, rectOffsets.headerInner));\r\n rect = marginateRect(rect, context.groupPadding);\r\n headerHeight = Math.min(context.headerHeight, rect[3] - rect[1]);\r\n node.rect = [rect[0], rect[1], rect[2], rect[1] + headerHeight];\r\n setRectAttrs(node.tile.inner, marginateRect(node.rect, rectOffsets.headerEdge));\r\n rect[1] += headerHeight;\r\n node.innerRect = rect;\r\n calculateRects(context, node)\r\n } else {\r\n node.rect = rect;\r\n setRectAttrs(node.tile, buildTileRect(rect, node.parent.innerRect, rectOffsets.tileEdge, rectOffsets.tileInner))\r\n }\r\n}\r\n\r\nfunction marginateRect(rect, margin) {\r\n return [rect[0] + margin, rect[1] + margin, rect[2] - margin, rect[3] - margin]\r\n}\r\n\r\nfunction buildTileRect(rect, outer, edgeOffset, innerOffset) {\r\n return [rect[0] + (rect[0] === outer[0] ? edgeOffset : +innerOffset), rect[1] + (rect[1] === outer[1] ? edgeOffset : +innerOffset), rect[2] - (rect[2] === outer[2] ? edgeOffset : -innerOffset), rect[3] - (rect[3] === outer[3] ? edgeOffset : -innerOffset)]\r\n}\r\n\r\nfunction setRectAttrs(element, rect) {\r\n element.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: _max(rect[2] - rect[0], 0),\r\n height: _max(rect[3] - rect[1], 0)\r\n })\r\n}\r\n\r\nfunction processLabelsLayout(context, node) {\r\n if (node.text && node.labelState.visible) {\r\n layoutTextNode(node, node.labelParams)\r\n }\r\n}\r\n\r\nfunction layoutTextNode(node, params) {\r\n var rect = node.rect;\r\n var text = node.text;\r\n var bBox = text.getBBox();\r\n var paddingLeftRight = params.paddingLeftRight;\r\n var paddingTopBottom = params.paddingTopBottom;\r\n var effectiveWidth = rect[2] - rect[0] - 2 * paddingLeftRight;\r\n text.setMaxSize(effectiveWidth, rect[3] - rect[1] - paddingTopBottom, node.isNode() ? {\r\n textOverflow: params.groupLabelOverflow,\r\n wordWrap: \"none\"\r\n } : {\r\n textOverflow: params.tileLabelOverflow,\r\n wordWrap: params.tileLabelWordWrap,\r\n hideOverflowEllipsis: true\r\n });\r\n text.move(params.rtlEnabled ? rect[2] - paddingLeftRight - bBox.x - bBox.width : rect[0] + paddingLeftRight - bBox.x, rect[1] + paddingTopBottom - bBox.y)\r\n}\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\ncomponentRegistrator(\"dxTreeMap\", dxTreeMap);\r\nexport default dxTreeMap;\r\nimport {\r\n plugin\r\n} from \"../core/data_source\";\r\ndxTreeMap.addPlugin(plugin);\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.strip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _squarify from \"./tiling.squarified.base\";\r\nimport {\r\n addAlgorithm\r\n} from \"./tiling\";\r\n\r\nfunction accumulate(total, current, count) {\r\n return ((count - 1) * total + current) / count\r\n}\r\n\r\nfunction strip(data) {\r\n return _squarify(data, accumulate, true)\r\n}\r\naddAlgorithm(\"strip\", strip);\r\nexport default strip;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.slice_and_dice.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n buildSidesData,\r\n calculateRectangles,\r\n addAlgorithm\r\n} from \"./tiling\";\r\n\r\nfunction sliceAndDice(data) {\r\n var items = data.items;\r\n var sidesData = buildSidesData(data.rect, data.directions, data.isRotated ? 1 : 0);\r\n calculateRectangles(items, 0, data.rect, sidesData, {\r\n sum: data.sum,\r\n count: items.length,\r\n side: sidesData.variedSide\r\n })\r\n}\r\naddAlgorithm(\"sliceanddice\", sliceAndDice);\r\nexport default sliceAndDice;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tiling.rotated_slice_and_dice.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getAlgorithm,\r\n addAlgorithm\r\n} from \"./tiling\";\r\nvar sliceAndDiceAlgorithm = getAlgorithm(\"sliceanddice\");\r\n\r\nfunction rotatedSliceAndDice(data) {\r\n data.isRotated = !data.isRotated;\r\n return sliceAndDiceAlgorithm.call(this, data)\r\n}\r\naddAlgorithm(\"rotatedsliceanddice\", rotatedSliceAndDice);\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/colorizing.gradient.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addColorizer,\r\n createColorCodeGetter as _createColorCodeGetter\r\n} from \"./colorizing\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\n\r\nfunction createSimpleColorizer(getColor, range) {\r\n return function(node) {\r\n return getColor(node, range)\r\n }\r\n}\r\n\r\nfunction getRangeData(range) {\r\n return [Number(range[0]) || 0, range[1] - range[0] || 1]\r\n}\r\n\r\nfunction calculateRange(nodes, getValue) {\r\n var i;\r\n var ii = nodes.length;\r\n var codes = [];\r\n var code;\r\n for (i = 0; i < ii; ++i) {\r\n code = getValue(nodes[i]);\r\n if (isFinite(code)) {\r\n codes.push(code)\r\n }\r\n }\r\n return getRangeData([_min.apply(null, codes), _max.apply(null, codes)])\r\n}\r\n\r\nfunction createGuessingColorizer(getColor, getValue) {\r\n var ranges = {};\r\n return function(node) {\r\n var parent = node.parent;\r\n return getColor(node, ranges[parent._id] || (ranges[parent._id] = calculateRange(parent.nodes, getValue)))\r\n }\r\n}\r\n\r\nfunction gradientColorizer(options, themeManager) {\r\n var palette = themeManager.createGradientPalette(options.palette);\r\n var getValue = _createColorCodeGetter(options);\r\n return \"range\" in options ? createSimpleColorizer(getColor, getRangeData(options.range || [])) : createGuessingColorizer(getColor, getValue);\r\n\r\n function getColor(node, arg) {\r\n return palette.getColor((getValue(node) - arg[0]) / arg[1])\r\n }\r\n}\r\naddColorizer(\"gradient\", gradientColorizer);\r\nexport default gradientColorizer;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/colorizing.range.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addColorizer,\r\n createColorCodeGetter as _createColorCodeGetter\r\n} from \"./colorizing\";\r\n\r\nfunction getPaletteIndex(value, items) {\r\n var start = 0;\r\n var end = items.length - 1;\r\n var index = -1;\r\n var middle;\r\n if (items[start] <= value && value <= items[end]) {\r\n if (value === items[end]) {\r\n index = end - 1\r\n } else {\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n if (value < items[middle]) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n index = start\r\n }\r\n }\r\n return index\r\n}\r\n\r\nfunction rangeColorizer(options, themeManager) {\r\n var range = options.range || [];\r\n var palette = themeManager.createDiscretePalette(options.palette, range.length - 1);\r\n var getValue = _createColorCodeGetter(options);\r\n return function(node) {\r\n return palette.getColor(getPaletteIndex(getValue(node), range))\r\n }\r\n}\r\naddColorizer(\"range\", rangeColorizer);\r\nexport default rangeColorizer;\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/api.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport Node from \"./node\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar proto = TreeMapBase.prototype;\r\nvar nodeProto = Node.prototype;\r\nproto._eventsMap.onNodesInitialized = {\r\n name: \"nodesInitialized\"\r\n};\r\nproto._eventsMap.onNodesRendering = {\r\n name: \"nodesRendering\"\r\n};\r\nproto._createProxyType = function() {\r\n var that = this;\r\n var nodes;\r\n Proxy.prototype = {\r\n constructor: Proxy,\r\n getParent: function() {\r\n return nodes[this._id].parent.proxy || null\r\n },\r\n getChild: function(index) {\r\n var _nodes = nodes[this._id].nodes;\r\n return _nodes ? _nodes[index].proxy : null\r\n },\r\n getChildrenCount: function() {\r\n var _nodes = nodes[this._id].nodes;\r\n return _nodes ? _nodes.length : 0\r\n },\r\n getAllChildren: function() {\r\n var _nodes = nodes[this._id].nodes;\r\n var i;\r\n var ii = _nodes && _nodes.length;\r\n var list = [];\r\n for (i = 0; i < ii; ++i) {\r\n list.push(_nodes[i].proxy)\r\n }\r\n return list\r\n },\r\n getAllNodes: function() {\r\n var list = [];\r\n collectNodes(nodes[this._id], list);\r\n return list\r\n },\r\n isLeaf: function() {\r\n return !nodes[this._id].isNode()\r\n },\r\n isActive: function() {\r\n return nodes[this._id].isActive()\r\n },\r\n value: function(arg) {\r\n var node = nodes[this._id];\r\n var result;\r\n if (void 0 !== arg) {\r\n updateValue(node, arg > 0 ? Number(arg) : 0);\r\n change(node, [\"TILING\"]);\r\n result = this\r\n } else {\r\n result = node.value\r\n }\r\n return result\r\n },\r\n label: function(arg) {\r\n var node = nodes[this._id];\r\n var result;\r\n if (void 0 !== arg) {\r\n node.customLabel = arg ? String(arg) : null;\r\n change(node, [\"LABELS\"]);\r\n result = this\r\n } else {\r\n result = node.customLabel || node.label\r\n }\r\n return result\r\n },\r\n customize: function(settings) {\r\n var node = nodes[this._id];\r\n if (settings) {\r\n node._custom = node._custom || {};\r\n _extend(true, node._custom, settings);\r\n node._partialState = node._partialLabelState = null\r\n }\r\n change(node, [\"TILES\", \"LABELS\"]);\r\n return this\r\n },\r\n resetCustomization: function() {\r\n var node = nodes[this._id];\r\n node._custom = node._partialState = node._partialLabelState = null;\r\n change(node, [\"TILES\", \"LABELS\"]);\r\n return this\r\n }\r\n };\r\n that._extendProxyType(Proxy.prototype);\r\n\r\n function Proxy(node) {\r\n node.proxy = this;\r\n this._id = node._id;\r\n this.level = node.level;\r\n this.index = node.index;\r\n this.data = node.data\r\n }\r\n that._handlers.beginBuildNodes = function() {\r\n nodes = that._nodes;\r\n new Proxy(that._root)\r\n };\r\n that._handlers.buildNode = function(node) {\r\n new Proxy(node)\r\n };\r\n that._handlers.endBuildNodes = function() {\r\n that._eventTrigger(\"nodesInitialized\", {\r\n root: that._root.proxy\r\n })\r\n }\r\n};\r\n\r\nfunction change(node, codes) {\r\n var ctx = node.ctx;\r\n ctx.suspend();\r\n ctx.change(codes);\r\n ctx.resume()\r\n}\r\n\r\nfunction collectNodes(node, list) {\r\n var nodes = node.nodes;\r\n var i;\r\n var ii = nodes && nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n list.push(nodes[i].proxy);\r\n collectNodes(nodes[i], list)\r\n }\r\n}\r\n\r\nfunction updateValue(node, value) {\r\n var delta = value - node.value;\r\n while (node) {\r\n node.value += delta;\r\n node = node.parent\r\n }\r\n}\r\nproto._extendProxyType = noop;\r\nvar _resetNodes = proto._resetNodes;\r\nproto._resetNodes = function() {\r\n _resetNodes.call(this);\r\n this._eventTrigger(\"nodesRendering\", {\r\n node: this._topNode.proxy\r\n })\r\n};\r\nvar _updateStyles = nodeProto.updateStyles;\r\nnodeProto.updateStyles = function() {\r\n _updateStyles.call(this);\r\n if (this._custom) {\r\n this._partialState = !this.ctx.forceReset && this._partialState || this.ctx.calculateState(this._custom);\r\n _extend(true, this.state, this._partialState)\r\n }\r\n};\r\nvar _updateLabelStyle = nodeProto.updateLabelStyle;\r\nnodeProto.updateLabelStyle = function() {\r\n var custom = this._custom;\r\n _updateLabelStyle.call(this);\r\n if (custom && custom.label) {\r\n this._partialLabelState = !this.ctx.forceReset && this._partialLabelState || calculatePartialLabelState(this, custom.label);\r\n this.labelState = _extend(true, {}, this.labelState, this._partialLabelState)\r\n }\r\n};\r\n\r\nfunction calculatePartialLabelState(node, settings) {\r\n var state = node.ctx.calculateLabelState(settings);\r\n if (\"visible\" in settings) {\r\n state.visible = !!settings.visible\r\n }\r\n return state\r\n}\r\nproto.getRootNode = function() {\r\n return this._root.proxy\r\n};\r\nproto.resetNodes = function() {\r\n var context = this._context;\r\n context.suspend();\r\n context.change([\"NODES_CREATE\"]);\r\n context.resume();\r\n return this\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/states.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport Node from \"./node\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar proto = TreeMapBase.prototype;\r\nvar nodeProto = Node.prototype;\r\nvar handlers = proto._handlers;\r\nvar _calculateState = handlers.calculateState;\r\nvar _buildState = nodeProto._buildState;\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nhandlers.calculateState = function(options) {\r\n var states = {\r\n 0: _calculateState(options)\r\n };\r\n handlers.calculateAdditionalStates(states, options);\r\n return states\r\n};\r\nhandlers.calculateAdditionalStates = noop;\r\nnodeProto.code = 0;\r\nnodeProto.statesMap = {\r\n 0: 0\r\n};\r\nnodeProto.additionalStates = [];\r\nnodeProto._buildState = function(state, extra) {\r\n var states = {\r\n 0: _buildState(state[0], extra)\r\n };\r\n if (this.additionalStates.length) {\r\n buildAdditionalStates(states, states[0], state, this.additionalStates)\r\n }\r\n return states\r\n};\r\nnodeProto._getState = function() {\r\n return this.state[this.statesMap[this.code]]\r\n};\r\nnodeProto.setState = function(code, state) {\r\n if (state) {\r\n this.code |= code\r\n } else {\r\n this.code &= ~code\r\n }\r\n this.ctx.change([\"TILES\"])\r\n};\r\n\r\nfunction buildAdditionalStates(states, base, source, list) {\r\n var i;\r\n var ii = list.length;\r\n for (i = 0; i < ii; ++i) {\r\n states[list[i]] = _extend({}, base, source[list[i]])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/hover.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport Node from \"./node\";\r\nimport {\r\n expand\r\n} from \"../core/helpers\";\r\nimport {\r\n buildRectAppearance\r\n} from \"./common\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"../core/utils\";\r\nvar proto = TreeMapBase.prototype;\r\nvar nodeProto = Node.prototype;\r\nvar STATE_CODE = 1;\r\nimport \"./api\";\r\nimport \"./states\";\r\nproto._eventsMap.onHoverChanged = {\r\n name: \"hoverChanged\"\r\n};\r\nexpand(proto._handlers, \"calculateAdditionalStates\", (function(states, options) {\r\n states[1] = options.hoverStyle ? buildRectAppearance(options.hoverStyle) : {}\r\n}));\r\nTreeMapBase.addChange({\r\n code: \"HOVER_ENABLED\",\r\n handler: function() {\r\n var hoverEnabled = _parseScalar(this._getOption(\"hoverEnabled\", true), true);\r\n if (!hoverEnabled) {\r\n this.clearHover()\r\n }\r\n this._hoverEnabled = hoverEnabled\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"hoverEnabled\"\r\n});\r\nnodeProto.statesMap[1] = 1;\r\nnodeProto.additionalStates.push(1);\r\nexpand(proto, \"_extendProxyType\", (function(proto) {\r\n var that = this;\r\n proto.setHover = function() {\r\n that._hoverNode(this._id)\r\n };\r\n proto.isHovered = function() {\r\n return that._hoverIndex === this._id\r\n }\r\n}));\r\nexpand(proto, \"_onNodesCreated\", (function() {\r\n this._hoverIndex = -1\r\n}));\r\nexpand(proto, \"_changeGroupSettings\", (function() {\r\n this._groupHoverEnabled = _parseScalar(this._getOption(\"group\").hoverEnabled, true);\r\n if (!this._groupHoverEnabled) {\r\n this.clearHover()\r\n }\r\n}));\r\nproto._applyHoverState = function(index, state) {\r\n setNodeStateRecursive(this._nodes[index], STATE_CODE, state);\r\n this._eventTrigger(\"hoverChanged\", {\r\n node: this._nodes[index].proxy\r\n })\r\n};\r\n\r\nfunction setNodeStateRecursive(node, code, state) {\r\n var nodes = node.isNode() && node.nodes;\r\n var i;\r\n var ii = nodes && nodes.length;\r\n node.setState(code, state);\r\n for (i = 0; i < ii; ++i) {\r\n setNodeStateRecursive(nodes[i], code, state)\r\n }\r\n}\r\nproto._hoverNode = function(index) {\r\n var currentIndex = this._hoverIndex;\r\n if (this._hoverEnabled && currentIndex !== index) {\r\n if (!this._groupHoverEnabled && index >= 0 && this._nodes[index].isNode()) {\r\n this.clearHover();\r\n return\r\n }\r\n this._context.suspend();\r\n this._hoverIndex = -1;\r\n if (currentIndex >= 0) {\r\n this._applyHoverState(currentIndex, false)\r\n }\r\n this._hoverIndex = index;\r\n if (index >= 0) {\r\n this._applyHoverState(index, true)\r\n }\r\n this._context.resume()\r\n }\r\n};\r\nproto.clearHover = function() {\r\n this._hoverNode(-1)\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/selection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport Node from \"./node\";\r\nimport {\r\n expand\r\n} from \"../core/helpers\";\r\nimport {\r\n buildRectAppearance\r\n} from \"./common\";\r\nvar proto = TreeMapBase.prototype;\r\nvar nodeProto = Node.prototype;\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar MODE_NONE = 0;\r\nvar MODE_SINGLE = 1;\r\nvar MODE_MULTIPLE = 2;\r\nvar STATE_CODE = 2;\r\nimport \"./api\";\r\nimport \"./states\";\r\nproto._eventsMap.onSelectionChanged = {\r\n name: \"selectionChanged\"\r\n};\r\nexpand(proto._handlers, \"calculateAdditionalStates\", (function(states, options) {\r\n states[2] = options.selectionStyle ? buildRectAppearance(options.selectionStyle) : {}\r\n}));\r\nnodeProto.statesMap[2] = nodeProto.statesMap[3] = STATE_CODE;\r\nnodeProto.additionalStates.push(2);\r\nexpand(proto, \"_onNodesCreated\", (function() {\r\n this._selectionList.length = 0\r\n}));\r\nexpand(proto, \"_extendProxyType\", (function(proto) {\r\n var that = this;\r\n proto.select = function(state) {\r\n that._selectNode(this._id, !!state)\r\n };\r\n proto.isSelected = function() {\r\n return that._selectionList.includes(this._id)\r\n };\r\n that._selectionList = []\r\n}));\r\nTreeMapBase.addChange({\r\n code: \"SELECTION_MODE\",\r\n handler: function() {\r\n var option = _normalizeEnum(this._getOption(\"selectionMode\", true));\r\n var selectionList = this._selectionList;\r\n var tmp;\r\n var mode = \"none\" === option ? MODE_NONE : \"multiple\" === option ? MODE_MULTIPLE : MODE_SINGLE;\r\n if (mode === MODE_SINGLE && selectionList.length > 1) {\r\n tmp = selectionList.pop();\r\n this.clearSelection();\r\n selectionList.push(tmp)\r\n } else if (mode === MODE_NONE) {\r\n this.clearSelection()\r\n }\r\n this._selectionMode = mode\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"selectionMode\"\r\n});\r\nexpand(proto, \"_applyTilesAppearance\", (function() {\r\n if (this._selectionList.length) {\r\n bringSelectedTilesToForeground(this._nodes, this._selectionList)\r\n }\r\n}));\r\nvar tileToFront = [leafToFront, groupToFront];\r\n\r\nfunction bringSelectedTilesToForeground(nodes, selectionList) {\r\n var i;\r\n var ii = selectionList.length;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = nodes[selectionList[i]];\r\n tileToFront[Number(node.isNode())](node.tile)\r\n }\r\n}\r\n\r\nfunction leafToFront(content) {\r\n content.toForeground()\r\n}\r\n\r\nfunction groupToFront(content) {\r\n content.outer.toForeground();\r\n content.inner.toForeground()\r\n}\r\nproto._applySelectionState = function(index, state) {\r\n var node = this._nodes[index];\r\n node.setState(STATE_CODE, state);\r\n this._eventTrigger(\"selectionChanged\", {\r\n node: node.proxy\r\n })\r\n};\r\nproto._selectNode = function(index, state) {\r\n var selectionList;\r\n var k;\r\n var tmp;\r\n if (this._selectionMode !== MODE_NONE) {\r\n this._context.suspend();\r\n selectionList = this._selectionList;\r\n k = selectionList.indexOf(index);\r\n if (state && -1 === k) {\r\n if (this._selectionMode === MODE_SINGLE) {\r\n if (selectionList.length) {\r\n tmp = selectionList.pop();\r\n this._applySelectionState(tmp, false)\r\n }\r\n }\r\n selectionList.push(index);\r\n this._applySelectionState(index, true)\r\n } else if (!state && k >= 0) {\r\n selectionList.splice(k, 1);\r\n this._applySelectionState(index, false)\r\n }\r\n this._context.resume()\r\n }\r\n};\r\nproto.clearSelection = function() {\r\n var selectionList = this._selectionList;\r\n var i;\r\n var ii = selectionList.length;\r\n if (this._selectionMode !== MODE_NONE) {\r\n this._context.suspend();\r\n for (i = 0; i < ii; ++i) {\r\n this._applySelectionState(selectionList[i], false)\r\n }\r\n selectionList.length = 0;\r\n this._context.resume()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tooltip.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n expand\r\n} from \"../core/helpers\";\r\nimport TreeMapBase from \"./tree_map.base\";\r\nvar proto = TreeMapBase.prototype;\r\nimport \"./api\";\r\nexpand(proto, \"_extendProxyType\", (function(proto) {\r\n var that = this;\r\n proto.showTooltip = function(coords) {\r\n that._showTooltip(this._id, coords)\r\n }\r\n}));\r\nexpand(proto, \"_onNodesCreated\", (function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltip.hide()\r\n }\r\n this._tooltipIndex = -1\r\n}));\r\nexpand(proto, \"_onTilingPerformed\", (function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._moveTooltip(this._nodes[this._tooltipIndex])\r\n }\r\n}));\r\n\r\nfunction getCoords(coords, rect, renderer) {\r\n var offset = renderer.getRootOffset();\r\n return coords || rect && [(rect[0] + rect[2]) / 2 + offset.left, (rect[1] + rect[3]) / 2 + offset.top] || [-1e3, -1e3]\r\n}\r\nproto._showTooltip = function(index, coords) {\r\n var that = this;\r\n var tooltip = that._tooltip;\r\n var node = that._nodes[index];\r\n if (that._tooltipIndex === index) {\r\n that._moveTooltip(node, coords);\r\n return\r\n }\r\n var callback = result => {\r\n if (void 0 === result) {\r\n return\r\n }\r\n if (!result) {\r\n tooltip.hide()\r\n }\r\n that._tooltipIndex = result ? index : -1\r\n };\r\n var xy = getCoords(coords, node.rect, this._renderer);\r\n callback(tooltip.show({\r\n value: node.value,\r\n valueText: tooltip.formatValue(node.value),\r\n node: node.proxy\r\n }, {\r\n x: xy[0],\r\n y: xy[1],\r\n offset: 0\r\n }, {\r\n node: node.proxy\r\n }, void 0, callback))\r\n};\r\nproto._moveTooltip = function(node, coords) {\r\n var xy = getCoords(coords, node.rect, this._renderer);\r\n this._tooltip.move(xy[0], xy[1], 0)\r\n};\r\nproto.hideTooltip = function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltipIndex = -1;\r\n this._tooltip.hide()\r\n }\r\n};\r\nimport {\r\n plugin as tooltipPlugin\r\n} from \"../core/tooltip\";\r\nTreeMapBase.addPlugin(tooltipPlugin);\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport {\r\n Tracker\r\n} from \"../components/tracker\";\r\nimport {\r\n expand\r\n} from \"../core/helpers\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"../core/utils\";\r\nvar DATA_KEY_BASE = \"__treemap_data_\";\r\nvar dataKeyModifier = 0;\r\nvar proto = TreeMapBase.prototype;\r\nimport \"./api\";\r\nimport \"./hover\";\r\nimport \"./tooltip\";\r\nproto._eventsMap.onClick = {\r\n name: \"click\"\r\n};\r\nvar getDataKey = function() {\r\n var dataKey = DATA_KEY_BASE + dataKeyModifier++;\r\n return dataKey\r\n};\r\nexpand(proto, \"_initCore\", (function() {\r\n var that = this;\r\n var dataKey = getDataKey();\r\n var getProxy = function(index) {\r\n return that._nodes[index].proxy\r\n };\r\n that._tracker = new Tracker({\r\n widget: that,\r\n root: that._renderer.root,\r\n getNode: function(id) {\r\n var proxy = getProxy(id);\r\n var interactWithGroup = _parseScalar(that._getOption(\"interactWithGroup\", true));\r\n return interactWithGroup && proxy.isLeaf() && proxy.getParent().isActive() ? proxy.getParent() : proxy\r\n },\r\n getData: function(e) {\r\n var target = e.target;\r\n return (\"tspan\" === target.tagName ? target.parentNode : target)[dataKey]\r\n },\r\n getProxy: getProxy,\r\n click: function(e) {\r\n that._eventTrigger(\"click\", e)\r\n }\r\n });\r\n that._handlers.setTrackerData = function(node, element) {\r\n element.data(dataKey, node._id)\r\n }\r\n}));\r\nexpand(proto, \"_disposeCore\", (function() {\r\n this._tracker.dispose()\r\n}));\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/drilldown.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nimport {\r\n expand as _expand\r\n} from \"../core/helpers\";\r\nimport \"./api\";\r\nvar proto = TreeMapBase.prototype;\r\nproto._eventsMap.onDrill = {\r\n name: \"drill\"\r\n};\r\n_expand(proto, \"_extendProxyType\", (function(proto) {\r\n var that = this;\r\n proto.drillDown = function() {\r\n that._drillToNode(this._id)\r\n }\r\n}));\r\n_expand(proto, \"_onNodesCreated\", (function() {\r\n this._drilldownIndex = -1\r\n}));\r\nproto._drillToNode = function(index) {\r\n var node;\r\n if (this._drilldownIndex !== index) {\r\n node = this._nodes[index] || this._root;\r\n if (node.nodes) {\r\n this._drilldownIndex = index;\r\n this._topNode = node;\r\n this._context.suspend();\r\n this._context.change([\"MAX_DEPTH\", \"NODES_RESET\"]);\r\n this._context.resume();\r\n this._eventTrigger(\"drill\", {\r\n node: node.proxy\r\n })\r\n }\r\n }\r\n};\r\nproto.resetDrillDown = function() {\r\n this._drillToNode(-1);\r\n return this\r\n};\r\nproto.drillUp = function() {\r\n this._drillToNode(this._topNode.parent._id || -1);\r\n return this\r\n};\r\nproto.getCurrentNode = function() {\r\n return this._topNode.proxy\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/plain_data_source.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeMapBase from \"./tree_map.base\";\r\nvar proto = TreeMapBase.prototype;\r\nproto._optionChangesMap.idField = proto._optionChangesMap.parentField = \"NODES_CREATE\";\r\nproto._processDataSourceItems = function(items) {\r\n var i;\r\n var struct = {};\r\n var currentItem;\r\n var idField = this._getOption(\"idField\", true);\r\n var parentField = this._getOption(\"parentField\", true);\r\n var parentId;\r\n var rootNodes = [];\r\n var tmpItems;\r\n var item;\r\n if (!idField || !parentField || 0 === items.length) {\r\n return {\r\n items: items,\r\n isPlain: false\r\n }\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n currentItem = items[i];\r\n parentId = currentItem[parentField];\r\n if (parentId) {\r\n struct[parentId] = struct[parentId] || {\r\n items: []\r\n };\r\n tmpItems = struct[parentId].items\r\n } else {\r\n tmpItems = rootNodes\r\n }\r\n tmpItems.push(currentItem)\r\n }\r\n treeFiller({\r\n struct: struct,\r\n idField: idField\r\n }, rootNodes);\r\n for (item in struct) {\r\n struct[item] && rootNodes.push(struct[item])\r\n }\r\n return {\r\n items: rootNodes,\r\n isPlain: true\r\n }\r\n};\r\n\r\nfunction treeFiller(context, items) {\r\n var currentItem;\r\n var i;\r\n var struct = context.struct;\r\n var id;\r\n for (i = 0; i < items.length; i++) {\r\n currentItem = items[i];\r\n id = currentItem[context.idField];\r\n if (struct[id]) {\r\n currentItem.items = struct[id].items;\r\n struct[id] = null;\r\n treeFiller(context, currentItem.items)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/tree_map/tree_map.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxTreeMap from \"./tree_map.base\";\r\nexport default dxTreeMap;\r\nimport \"./tiling.squarified\";\r\nimport \"./tiling.strip\";\r\nimport \"./tiling.slice_and_dice\";\r\nimport \"./tiling.rotated_slice_and_dice\";\r\nimport \"./colorizing.discrete\";\r\nimport \"./colorizing.gradient\";\r\nimport \"./colorizing.range\";\r\nimport \"./api\";\r\nimport \"./hover\";\r\nimport \"./selection\";\r\nimport \"./tooltip\";\r\nimport \"./tracker\";\r\nimport \"./drilldown\";\r\nimport \"./plain_data_source\";\r\nimport {\r\n plugin as pluginExport\r\n} from \"../core/export\";\r\nimport {\r\n plugin as pluginTitle\r\n} from \"../core/title\";\r\nimport {\r\n plugin as pluginLoadIndicator\r\n} from \"../core/loading_indicator\";\r\ndxTreeMap.addPlugin(pluginExport);\r\ndxTreeMap.addPlugin(pluginTitle);\r\ndxTreeMap.addPlugin(pluginLoadIndicator);\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxTreeMap from 'devextreme/viz/tree_map';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxoColorizerModule, DxoExportModule, DxoGroupModule, DxoBorderModule, DxoHoverStyleModule, DxoLabelModule, DxoFontModule, DxoSelectionStyleModule, DxoLoadingIndicatorModule, DxoSizeModule, DxoTileModule, DxoTitleModule, DxoMarginModule, DxoSubtitleModule, DxoTooltipModule, DxoFormatModule, DxoShadowModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTreeMap]\r\n\r\n */\r\nclass DxTreeMapComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'click', emit: 'onClick' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'drill', emit: 'onDrill' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'hoverChanged', emit: 'onHoverChanged' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'nodesInitialized', emit: 'onNodesInitialized' },\r\n { subscribe: 'nodesRendering', emit: 'onNodesRendering' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'childrenFieldChange' },\r\n { emit: 'colorFieldChange' },\r\n { emit: 'colorizerChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'groupChange' },\r\n { emit: 'hoverEnabledChange' },\r\n { emit: 'idFieldChange' },\r\n { emit: 'interactWithGroupChange' },\r\n { emit: 'labelFieldChange' },\r\n { emit: 'layoutAlgorithmChange' },\r\n { emit: 'layoutDirectionChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'maxDepthChange' },\r\n { emit: 'parentFieldChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'tileChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'valueFieldChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.childrenField]\r\n \r\n */\r\n get childrenField() {\r\n return this._getOption('childrenField');\r\n }\r\n set childrenField(value) {\r\n this._setOption('childrenField', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.colorField]\r\n \r\n */\r\n get colorField() {\r\n return this._getOption('colorField');\r\n }\r\n set colorField(value) {\r\n this._setOption('colorField', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.colorizer]\r\n \r\n */\r\n get colorizer() {\r\n return this._getOption('colorizer');\r\n }\r\n set colorizer(value) {\r\n this._setOption('colorizer', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.group]\r\n \r\n */\r\n get group() {\r\n return this._getOption('group');\r\n }\r\n set group(value) {\r\n this._setOption('group', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.hoverEnabled]\r\n \r\n */\r\n get hoverEnabled() {\r\n return this._getOption('hoverEnabled');\r\n }\r\n set hoverEnabled(value) {\r\n this._setOption('hoverEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.idField]\r\n \r\n */\r\n get idField() {\r\n return this._getOption('idField');\r\n }\r\n set idField(value) {\r\n this._setOption('idField', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.interactWithGroup]\r\n \r\n */\r\n get interactWithGroup() {\r\n return this._getOption('interactWithGroup');\r\n }\r\n set interactWithGroup(value) {\r\n this._setOption('interactWithGroup', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.labelField]\r\n \r\n */\r\n get labelField() {\r\n return this._getOption('labelField');\r\n }\r\n set labelField(value) {\r\n this._setOption('labelField', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.layoutAlgorithm]\r\n \r\n */\r\n get layoutAlgorithm() {\r\n return this._getOption('layoutAlgorithm');\r\n }\r\n set layoutAlgorithm(value) {\r\n this._setOption('layoutAlgorithm', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.layoutDirection]\r\n \r\n */\r\n get layoutDirection() {\r\n return this._getOption('layoutDirection');\r\n }\r\n set layoutDirection(value) {\r\n this._setOption('layoutDirection', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.maxDepth]\r\n \r\n */\r\n get maxDepth() {\r\n return this._getOption('maxDepth');\r\n }\r\n set maxDepth(value) {\r\n this._setOption('maxDepth', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.parentField]\r\n \r\n */\r\n get parentField() {\r\n return this._getOption('parentField');\r\n }\r\n set parentField(value) {\r\n this._setOption('parentField', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.tile]\r\n \r\n */\r\n get tile() {\r\n return this._getOption('tile');\r\n }\r\n set tile(value) {\r\n this._setOption('tile', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxTreeMapOptions.valueField]\r\n \r\n */\r\n get valueField() {\r\n return this._getOption('valueField');\r\n }\r\n set valueField(value) {\r\n this._setOption('valueField', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTreeMap(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTreeMapComponent.ɵfac = function DxTreeMapComponent_Factory(t) { return new (t || DxTreeMapComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTreeMapComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTreeMapComponent, selectors: [[\"dx-tree-map\"]], inputs: { childrenField: \"childrenField\", colorField: \"colorField\", colorizer: \"colorizer\", dataSource: \"dataSource\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", group: \"group\", hoverEnabled: \"hoverEnabled\", idField: \"idField\", interactWithGroup: \"interactWithGroup\", labelField: \"labelField\", layoutAlgorithm: \"layoutAlgorithm\", layoutDirection: \"layoutDirection\", loadingIndicator: \"loadingIndicator\", maxDepth: \"maxDepth\", parentField: \"parentField\", pathModified: \"pathModified\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", selectionMode: \"selectionMode\", size: \"size\", theme: \"theme\", tile: \"tile\", title: \"title\", tooltip: \"tooltip\", valueField: \"valueField\" }, outputs: { onClick: \"onClick\", onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onDrill: \"onDrill\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onHoverChanged: \"onHoverChanged\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onNodesInitialized: \"onNodesInitialized\", onNodesRendering: \"onNodesRendering\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", childrenFieldChange: \"childrenFieldChange\", colorFieldChange: \"colorFieldChange\", colorizerChange: \"colorizerChange\", dataSourceChange: \"dataSourceChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", groupChange: \"groupChange\", hoverEnabledChange: \"hoverEnabledChange\", idFieldChange: \"idFieldChange\", interactWithGroupChange: \"interactWithGroupChange\", labelFieldChange: \"labelFieldChange\", layoutAlgorithmChange: \"layoutAlgorithmChange\", layoutDirectionChange: \"layoutDirectionChange\", loadingIndicatorChange: \"loadingIndicatorChange\", maxDepthChange: \"maxDepthChange\", parentFieldChange: \"parentFieldChange\", pathModifiedChange: \"pathModifiedChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", selectionModeChange: \"selectionModeChange\", sizeChange: \"sizeChange\", themeChange: \"themeChange\", tileChange: \"tileChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", valueFieldChange: \"valueFieldChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTreeMapComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeMapComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tree-map',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { childrenField: [{\r\n type: Input\r\n }], colorField: [{\r\n type: Input\r\n }], colorizer: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], hoverEnabled: [{\r\n type: Input\r\n }], idField: [{\r\n type: Input\r\n }], interactWithGroup: [{\r\n type: Input\r\n }], labelField: [{\r\n type: Input\r\n }], layoutAlgorithm: [{\r\n type: Input\r\n }], layoutDirection: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], maxDepth: [{\r\n type: Input\r\n }], parentField: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], tile: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], valueField: [{\r\n type: Input\r\n }], onClick: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onDrill: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onHoverChanged: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onNodesInitialized: [{\r\n type: Output\r\n }], onNodesRendering: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], childrenFieldChange: [{\r\n type: Output\r\n }], colorFieldChange: [{\r\n type: Output\r\n }], colorizerChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], groupChange: [{\r\n type: Output\r\n }], hoverEnabledChange: [{\r\n type: Output\r\n }], idFieldChange: [{\r\n type: Output\r\n }], interactWithGroupChange: [{\r\n type: Output\r\n }], labelFieldChange: [{\r\n type: Output\r\n }], layoutAlgorithmChange: [{\r\n type: Output\r\n }], layoutDirectionChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], maxDepthChange: [{\r\n type: Output\r\n }], parentFieldChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], tileChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], valueFieldChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxTreeMapModule {\r\n}\r\n/** @nocollapse */ DxTreeMapModule.ɵfac = function DxTreeMapModule_Factory(t) { return new (t || DxTreeMapModule)(); };\r\n/** @nocollapse */ DxTreeMapModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTreeMapModule });\r\n/** @nocollapse */ DxTreeMapModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeMapModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTreeMapComponent\r\n ],\r\n exports: [\r\n DxTreeMapComponent,\r\n DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTreeMapModule, { declarations: [DxTreeMapComponent], imports: [DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTreeMapComponent, DxoColorizerModule,\r\n DxoExportModule,\r\n DxoGroupModule,\r\n DxoBorderModule,\r\n DxoHoverStyleModule,\r\n DxoLabelModule,\r\n DxoFontModule,\r\n DxoSelectionStyleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoSizeModule,\r\n DxoTileModule,\r\n DxoTitleModule,\r\n DxoMarginModule,\r\n DxoSubtitleModule,\r\n DxoTooltipModule,\r\n DxoFormatModule,\r\n DxoShadowModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTreeMapComponent, DxTreeMapModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxTreeView from 'devextreme/ui/tree_view';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule, DxoSearchEditorOptionsModule, DxiButtonModule, DxoOptionsModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxTreeView]\r\n\r\n */\r\nclass DxTreeViewComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'itemCollapsed', emit: 'onItemCollapsed' },\r\n { subscribe: 'itemContextMenu', emit: 'onItemContextMenu' },\r\n { subscribe: 'itemExpanded', emit: 'onItemExpanded' },\r\n { subscribe: 'itemHold', emit: 'onItemHold' },\r\n { subscribe: 'itemRendered', emit: 'onItemRendered' },\r\n { subscribe: 'itemSelectionChanged', emit: 'onItemSelectionChanged' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectAllValueChanged', emit: 'onSelectAllValueChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { emit: 'accessKeyChange' },\r\n { emit: 'activeStateEnabledChange' },\r\n { emit: 'animationEnabledChange' },\r\n { emit: 'collapseIconChange' },\r\n { emit: 'createChildrenChange' },\r\n { emit: 'dataSourceChange' },\r\n { emit: 'dataStructureChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'disabledExprChange' },\r\n { emit: 'displayExprChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'expandAllEnabledChange' },\r\n { emit: 'expandedExprChange' },\r\n { emit: 'expandEventChange' },\r\n { emit: 'expandIconChange' },\r\n { emit: 'expandNodesRecursiveChange' },\r\n { emit: 'focusStateEnabledChange' },\r\n { emit: 'hasItemsExprChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'hintChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemHoldTimeoutChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemsExprChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'keyExprChange' },\r\n { emit: 'noDataTextChange' },\r\n { emit: 'parentIdExprChange' },\r\n { emit: 'rootValueChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'scrollDirectionChange' },\r\n { emit: 'searchEditorOptionsChange' },\r\n { emit: 'searchEnabledChange' },\r\n { emit: 'searchExprChange' },\r\n { emit: 'searchModeChange' },\r\n { emit: 'searchTimeoutChange' },\r\n { emit: 'searchValueChange' },\r\n { emit: 'selectAllTextChange' },\r\n { emit: 'selectByClickChange' },\r\n { emit: 'selectedExprChange' },\r\n { emit: 'selectionModeChange' },\r\n { emit: 'selectNodesRecursiveChange' },\r\n { emit: 'showCheckBoxesModeChange' },\r\n { emit: 'tabIndexChange' },\r\n { emit: 'useNativeScrollingChange' },\r\n { emit: 'virtualModeEnabledChange' },\r\n { emit: 'visibleChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:WidgetOptions.accessKey]\r\n \r\n */\r\n get accessKey() {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value) {\r\n this._setOption('accessKey', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.activeStateEnabled]\r\n \r\n */\r\n get activeStateEnabled() {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.animationEnabled]\r\n \r\n */\r\n get animationEnabled() {\r\n return this._getOption('animationEnabled');\r\n }\r\n set animationEnabled(value) {\r\n this._setOption('animationEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.collapseIcon]\r\n \r\n */\r\n get collapseIcon() {\r\n return this._getOption('collapseIcon');\r\n }\r\n set collapseIcon(value) {\r\n this._setOption('collapseIcon', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.createChildren]\r\n \r\n */\r\n get createChildren() {\r\n return this._getOption('createChildren');\r\n }\r\n set createChildren(value) {\r\n this._setOption('createChildren', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.dataSource]\r\n \r\n */\r\n get dataSource() {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value) {\r\n this._setOption('dataSource', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.dataStructure]\r\n \r\n */\r\n get dataStructure() {\r\n return this._getOption('dataStructure');\r\n }\r\n set dataStructure(value) {\r\n this._setOption('dataStructure', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.disabledExpr]\r\n \r\n */\r\n get disabledExpr() {\r\n return this._getOption('disabledExpr');\r\n }\r\n set disabledExpr(value) {\r\n this._setOption('disabledExpr', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.displayExpr]\r\n \r\n */\r\n get displayExpr() {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value) {\r\n this._setOption('displayExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.expandAllEnabled]\r\n \r\n */\r\n get expandAllEnabled() {\r\n return this._getOption('expandAllEnabled');\r\n }\r\n set expandAllEnabled(value) {\r\n this._setOption('expandAllEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.expandedExpr]\r\n \r\n */\r\n get expandedExpr() {\r\n return this._getOption('expandedExpr');\r\n }\r\n set expandedExpr(value) {\r\n this._setOption('expandedExpr', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.expandEvent]\r\n \r\n */\r\n get expandEvent() {\r\n return this._getOption('expandEvent');\r\n }\r\n set expandEvent(value) {\r\n this._setOption('expandEvent', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.expandIcon]\r\n \r\n */\r\n get expandIcon() {\r\n return this._getOption('expandIcon');\r\n }\r\n set expandIcon(value) {\r\n this._setOption('expandIcon', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.expandNodesRecursive]\r\n \r\n */\r\n get expandNodesRecursive() {\r\n return this._getOption('expandNodesRecursive');\r\n }\r\n set expandNodesRecursive(value) {\r\n this._setOption('expandNodesRecursive', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.focusStateEnabled]\r\n \r\n */\r\n get focusStateEnabled() {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.hasItemsExpr]\r\n \r\n */\r\n get hasItemsExpr() {\r\n return this._getOption('hasItemsExpr');\r\n }\r\n set hasItemsExpr(value) {\r\n this._setOption('hasItemsExpr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hint]\r\n \r\n */\r\n get hint() {\r\n return this._getOption('hint');\r\n }\r\n set hint(value) {\r\n this._setOption('hint', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemHoldTimeout]\r\n \r\n */\r\n get itemHoldTimeout() {\r\n return this._getOption('itemHoldTimeout');\r\n }\r\n set itemHoldTimeout(value) {\r\n this._setOption('itemHoldTimeout', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.itemsExpr]\r\n \r\n */\r\n get itemsExpr() {\r\n return this._getOption('itemsExpr');\r\n }\r\n set itemsExpr(value) {\r\n this._setOption('itemsExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.keyExpr]\r\n \r\n */\r\n get keyExpr() {\r\n return this._getOption('keyExpr');\r\n }\r\n set keyExpr(value) {\r\n this._setOption('keyExpr', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.noDataText]\r\n \r\n */\r\n get noDataText() {\r\n return this._getOption('noDataText');\r\n }\r\n set noDataText(value) {\r\n this._setOption('noDataText', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.parentIdExpr]\r\n \r\n */\r\n get parentIdExpr() {\r\n return this._getOption('parentIdExpr');\r\n }\r\n set parentIdExpr(value) {\r\n this._setOption('parentIdExpr', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.rootValue]\r\n \r\n */\r\n get rootValue() {\r\n return this._getOption('rootValue');\r\n }\r\n set rootValue(value) {\r\n this._setOption('rootValue', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.scrollDirection]\r\n \r\n */\r\n get scrollDirection() {\r\n return this._getOption('scrollDirection');\r\n }\r\n set scrollDirection(value) {\r\n this._setOption('scrollDirection', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchEditorOptions]\r\n \r\n */\r\n get searchEditorOptions() {\r\n return this._getOption('searchEditorOptions');\r\n }\r\n set searchEditorOptions(value) {\r\n this._setOption('searchEditorOptions', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchEnabled]\r\n \r\n */\r\n get searchEnabled() {\r\n return this._getOption('searchEnabled');\r\n }\r\n set searchEnabled(value) {\r\n this._setOption('searchEnabled', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchExpr]\r\n \r\n */\r\n get searchExpr() {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value) {\r\n this._setOption('searchExpr', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchMode]\r\n \r\n */\r\n get searchMode() {\r\n return this._getOption('searchMode');\r\n }\r\n set searchMode(value) {\r\n this._setOption('searchMode', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchTimeout]\r\n \r\n */\r\n get searchTimeout() {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n /**\r\n * [descr:SearchBoxMixinOptions.searchValue]\r\n \r\n */\r\n get searchValue() {\r\n return this._getOption('searchValue');\r\n }\r\n set searchValue(value) {\r\n this._setOption('searchValue', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.selectAllText]\r\n \r\n */\r\n get selectAllText() {\r\n return this._getOption('selectAllText');\r\n }\r\n set selectAllText(value) {\r\n this._setOption('selectAllText', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.selectByClick]\r\n \r\n */\r\n get selectByClick() {\r\n return this._getOption('selectByClick');\r\n }\r\n set selectByClick(value) {\r\n this._setOption('selectByClick', value);\r\n }\r\n /**\r\n * [descr:HierarchicalCollectionWidgetOptions.selectedExpr]\r\n \r\n */\r\n get selectedExpr() {\r\n return this._getOption('selectedExpr');\r\n }\r\n set selectedExpr(value) {\r\n this._setOption('selectedExpr', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.selectionMode]\r\n \r\n */\r\n get selectionMode() {\r\n return this._getOption('selectionMode');\r\n }\r\n set selectionMode(value) {\r\n this._setOption('selectionMode', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.selectNodesRecursive]\r\n \r\n */\r\n get selectNodesRecursive() {\r\n return this._getOption('selectNodesRecursive');\r\n }\r\n set selectNodesRecursive(value) {\r\n this._setOption('selectNodesRecursive', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.showCheckBoxesMode]\r\n \r\n */\r\n get showCheckBoxesMode() {\r\n return this._getOption('showCheckBoxesMode');\r\n }\r\n set showCheckBoxesMode(value) {\r\n this._setOption('showCheckBoxesMode', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.tabIndex]\r\n \r\n */\r\n get tabIndex() {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value) {\r\n this._setOption('tabIndex', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.useNativeScrolling]\r\n \r\n */\r\n get useNativeScrolling() {\r\n return this._getOption('useNativeScrolling');\r\n }\r\n set useNativeScrolling(value) {\r\n this._setOption('useNativeScrolling', value);\r\n }\r\n /**\r\n * [descr:dxTreeViewOptions.virtualModeEnabled]\r\n \r\n */\r\n get virtualModeEnabled() {\r\n return this._getOption('virtualModeEnabled');\r\n }\r\n set virtualModeEnabled(value) {\r\n this._setOption('virtualModeEnabled', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.visible]\r\n \r\n */\r\n get visible() {\r\n return this._getOption('visible');\r\n }\r\n set visible(value) {\r\n this._setOption('visible', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxTreeView(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('dataSource', changes);\r\n this.setupChanges('items', changes);\r\n this.setupChanges('searchExpr', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('dataSource');\r\n this._idh.doCheck('items');\r\n this._idh.doCheck('searchExpr');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxTreeViewComponent.ɵfac = function DxTreeViewComponent_Factory(t) { return new (t || DxTreeViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxTreeViewComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxTreeViewComponent, selectors: [[\"dx-tree-view\"]], contentQueries: function DxTreeViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { accessKey: \"accessKey\", activeStateEnabled: \"activeStateEnabled\", animationEnabled: \"animationEnabled\", collapseIcon: \"collapseIcon\", createChildren: \"createChildren\", dataSource: \"dataSource\", dataStructure: \"dataStructure\", disabled: \"disabled\", disabledExpr: \"disabledExpr\", displayExpr: \"displayExpr\", elementAttr: \"elementAttr\", expandAllEnabled: \"expandAllEnabled\", expandedExpr: \"expandedExpr\", expandEvent: \"expandEvent\", expandIcon: \"expandIcon\", expandNodesRecursive: \"expandNodesRecursive\", focusStateEnabled: \"focusStateEnabled\", hasItemsExpr: \"hasItemsExpr\", height: \"height\", hint: \"hint\", hoverStateEnabled: \"hoverStateEnabled\", itemHoldTimeout: \"itemHoldTimeout\", items: \"items\", itemsExpr: \"itemsExpr\", itemTemplate: \"itemTemplate\", keyExpr: \"keyExpr\", noDataText: \"noDataText\", parentIdExpr: \"parentIdExpr\", rootValue: \"rootValue\", rtlEnabled: \"rtlEnabled\", scrollDirection: \"scrollDirection\", searchEditorOptions: \"searchEditorOptions\", searchEnabled: \"searchEnabled\", searchExpr: \"searchExpr\", searchMode: \"searchMode\", searchTimeout: \"searchTimeout\", searchValue: \"searchValue\", selectAllText: \"selectAllText\", selectByClick: \"selectByClick\", selectedExpr: \"selectedExpr\", selectionMode: \"selectionMode\", selectNodesRecursive: \"selectNodesRecursive\", showCheckBoxesMode: \"showCheckBoxesMode\", tabIndex: \"tabIndex\", useNativeScrolling: \"useNativeScrolling\", virtualModeEnabled: \"virtualModeEnabled\", visible: \"visible\", width: \"width\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onItemCollapsed: \"onItemCollapsed\", onItemContextMenu: \"onItemContextMenu\", onItemExpanded: \"onItemExpanded\", onItemHold: \"onItemHold\", onItemRendered: \"onItemRendered\", onItemSelectionChanged: \"onItemSelectionChanged\", onOptionChanged: \"onOptionChanged\", onSelectAllValueChanged: \"onSelectAllValueChanged\", onSelectionChanged: \"onSelectionChanged\", accessKeyChange: \"accessKeyChange\", activeStateEnabledChange: \"activeStateEnabledChange\", animationEnabledChange: \"animationEnabledChange\", collapseIconChange: \"collapseIconChange\", createChildrenChange: \"createChildrenChange\", dataSourceChange: \"dataSourceChange\", dataStructureChange: \"dataStructureChange\", disabledChange: \"disabledChange\", disabledExprChange: \"disabledExprChange\", displayExprChange: \"displayExprChange\", elementAttrChange: \"elementAttrChange\", expandAllEnabledChange: \"expandAllEnabledChange\", expandedExprChange: \"expandedExprChange\", expandEventChange: \"expandEventChange\", expandIconChange: \"expandIconChange\", expandNodesRecursiveChange: \"expandNodesRecursiveChange\", focusStateEnabledChange: \"focusStateEnabledChange\", hasItemsExprChange: \"hasItemsExprChange\", heightChange: \"heightChange\", hintChange: \"hintChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemHoldTimeoutChange: \"itemHoldTimeoutChange\", itemsChange: \"itemsChange\", itemsExprChange: \"itemsExprChange\", itemTemplateChange: \"itemTemplateChange\", keyExprChange: \"keyExprChange\", noDataTextChange: \"noDataTextChange\", parentIdExprChange: \"parentIdExprChange\", rootValueChange: \"rootValueChange\", rtlEnabledChange: \"rtlEnabledChange\", scrollDirectionChange: \"scrollDirectionChange\", searchEditorOptionsChange: \"searchEditorOptionsChange\", searchEnabledChange: \"searchEnabledChange\", searchExprChange: \"searchExprChange\", searchModeChange: \"searchModeChange\", searchTimeoutChange: \"searchTimeoutChange\", searchValueChange: \"searchValueChange\", selectAllTextChange: \"selectAllTextChange\", selectByClickChange: \"selectByClickChange\", selectedExprChange: \"selectedExprChange\", selectionModeChange: \"selectionModeChange\", selectNodesRecursiveChange: \"selectNodesRecursiveChange\", showCheckBoxesModeChange: \"showCheckBoxesModeChange\", tabIndexChange: \"tabIndexChange\", useNativeScrollingChange: \"useNativeScrollingChange\", virtualModeEnabledChange: \"virtualModeEnabledChange\", visibleChange: \"visibleChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxTreeViewComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-tree-view',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { accessKey: [{\r\n type: Input\r\n }], activeStateEnabled: [{\r\n type: Input\r\n }], animationEnabled: [{\r\n type: Input\r\n }], collapseIcon: [{\r\n type: Input\r\n }], createChildren: [{\r\n type: Input\r\n }], dataSource: [{\r\n type: Input\r\n }], dataStructure: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], disabledExpr: [{\r\n type: Input\r\n }], displayExpr: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], expandAllEnabled: [{\r\n type: Input\r\n }], expandedExpr: [{\r\n type: Input\r\n }], expandEvent: [{\r\n type: Input\r\n }], expandIcon: [{\r\n type: Input\r\n }], expandNodesRecursive: [{\r\n type: Input\r\n }], focusStateEnabled: [{\r\n type: Input\r\n }], hasItemsExpr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], hint: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], itemHoldTimeout: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemsExpr: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], keyExpr: [{\r\n type: Input\r\n }], noDataText: [{\r\n type: Input\r\n }], parentIdExpr: [{\r\n type: Input\r\n }], rootValue: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], scrollDirection: [{\r\n type: Input\r\n }], searchEditorOptions: [{\r\n type: Input\r\n }], searchEnabled: [{\r\n type: Input\r\n }], searchExpr: [{\r\n type: Input\r\n }], searchMode: [{\r\n type: Input\r\n }], searchTimeout: [{\r\n type: Input\r\n }], searchValue: [{\r\n type: Input\r\n }], selectAllText: [{\r\n type: Input\r\n }], selectByClick: [{\r\n type: Input\r\n }], selectedExpr: [{\r\n type: Input\r\n }], selectionMode: [{\r\n type: Input\r\n }], selectNodesRecursive: [{\r\n type: Input\r\n }], showCheckBoxesMode: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], useNativeScrolling: [{\r\n type: Input\r\n }], virtualModeEnabled: [{\r\n type: Input\r\n }], visible: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onItemCollapsed: [{\r\n type: Output\r\n }], onItemContextMenu: [{\r\n type: Output\r\n }], onItemExpanded: [{\r\n type: Output\r\n }], onItemHold: [{\r\n type: Output\r\n }], onItemRendered: [{\r\n type: Output\r\n }], onItemSelectionChanged: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectAllValueChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], accessKeyChange: [{\r\n type: Output\r\n }], activeStateEnabledChange: [{\r\n type: Output\r\n }], animationEnabledChange: [{\r\n type: Output\r\n }], collapseIconChange: [{\r\n type: Output\r\n }], createChildrenChange: [{\r\n type: Output\r\n }], dataSourceChange: [{\r\n type: Output\r\n }], dataStructureChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], disabledExprChange: [{\r\n type: Output\r\n }], displayExprChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], expandAllEnabledChange: [{\r\n type: Output\r\n }], expandedExprChange: [{\r\n type: Output\r\n }], expandEventChange: [{\r\n type: Output\r\n }], expandIconChange: [{\r\n type: Output\r\n }], expandNodesRecursiveChange: [{\r\n type: Output\r\n }], focusStateEnabledChange: [{\r\n type: Output\r\n }], hasItemsExprChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], hintChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemHoldTimeoutChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemsExprChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], keyExprChange: [{\r\n type: Output\r\n }], noDataTextChange: [{\r\n type: Output\r\n }], parentIdExprChange: [{\r\n type: Output\r\n }], rootValueChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], scrollDirectionChange: [{\r\n type: Output\r\n }], searchEditorOptionsChange: [{\r\n type: Output\r\n }], searchEnabledChange: [{\r\n type: Output\r\n }], searchExprChange: [{\r\n type: Output\r\n }], searchModeChange: [{\r\n type: Output\r\n }], searchTimeoutChange: [{\r\n type: Output\r\n }], searchValueChange: [{\r\n type: Output\r\n }], selectAllTextChange: [{\r\n type: Output\r\n }], selectByClickChange: [{\r\n type: Output\r\n }], selectedExprChange: [{\r\n type: Output\r\n }], selectionModeChange: [{\r\n type: Output\r\n }], selectNodesRecursiveChange: [{\r\n type: Output\r\n }], showCheckBoxesModeChange: [{\r\n type: Output\r\n }], tabIndexChange: [{\r\n type: Output\r\n }], useNativeScrollingChange: [{\r\n type: Output\r\n }], virtualModeEnabledChange: [{\r\n type: Output\r\n }], visibleChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxTreeViewModule {\r\n}\r\n/** @nocollapse */ DxTreeViewModule.ɵfac = function DxTreeViewModule_Factory(t) { return new (t || DxTreeViewModule)(); };\r\n/** @nocollapse */ DxTreeViewModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxTreeViewModule });\r\n/** @nocollapse */ DxTreeViewModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxTreeViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxTreeViewComponent\r\n ],\r\n exports: [\r\n DxTreeViewComponent,\r\n DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxTreeViewModule, { declarations: [DxTreeViewComponent], imports: [DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxTreeViewComponent, DxiItemModule,\r\n DxoSearchEditorOptionsModule,\r\n DxiButtonModule,\r\n DxoOptionsModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxTreeViewComponent, DxTreeViewModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport DxValidationGroup from 'devextreme/ui/validation_group';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nconst _c0 = [\"*\"];\r\n/**\r\n * [descr:dxValidationGroup]\r\n\r\n */\r\nclass DxValidationGroupComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxValidationGroup(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n}\r\n/** @nocollapse */ DxValidationGroupComponent.ɵfac = function DxValidationGroupComponent_Factory(t) { return new (t || DxValidationGroupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxValidationGroupComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxValidationGroupComponent, selectors: [[\"dx-validation-group\"]], inputs: { elementAttr: \"elementAttr\", height: \"height\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function DxValidationGroupComponent_Template(rf, ctx) { if (rf & 1) {\r\n i0.ɵɵprojectionDef();\r\n i0.ɵɵprojection(0);\r\n } }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidationGroupComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-validation-group',\r\n template: '<ng-content></ng-content>',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }] }); })();\r\nclass DxValidationGroupModule {\r\n}\r\n/** @nocollapse */ DxValidationGroupModule.ɵfac = function DxValidationGroupModule_Factory(t) { return new (t || DxValidationGroupModule)(); };\r\n/** @nocollapse */ DxValidationGroupModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxValidationGroupModule });\r\n/** @nocollapse */ DxValidationGroupModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidationGroupModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxValidationGroupComponent\r\n ],\r\n exports: [\r\n DxValidationGroupComponent,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxValidationGroupModule, { declarations: [DxValidationGroupComponent], imports: [DxIntegrationModule,\r\n DxTemplateModule], exports: [DxValidationGroupComponent, DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxValidationGroupComponent, DxValidationGroupModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxValidationSummary from 'devextreme/ui/validation_summary';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiItemComponent, DxiItemModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxValidationSummary]\r\n\r\n */\r\nclass DxValidationSummaryComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'contentReady', emit: 'onContentReady' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'itemClick', emit: 'onItemClick' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'hoverStateEnabledChange' },\r\n { emit: 'itemsChange' },\r\n { emit: 'itemTemplateChange' },\r\n { emit: 'validationGroupChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:WidgetOptions.hoverStateEnabled]\r\n \r\n */\r\n get hoverStateEnabled() {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.items]\r\n \r\n */\r\n get items() {\r\n return this._getOption('items');\r\n }\r\n set items(value) {\r\n this._setOption('items', value);\r\n }\r\n /**\r\n * [descr:CollectionWidgetOptions.itemTemplate]\r\n \r\n */\r\n get itemTemplate() {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n /**\r\n * [descr:dxValidationSummaryOptions.validationGroup]\r\n \r\n */\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n get itemsChildren() {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxValidationSummary(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('items', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('items');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxValidationSummaryComponent.ɵfac = function DxValidationSummaryComponent_Factory(t) { return new (t || DxValidationSummaryComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxValidationSummaryComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxValidationSummaryComponent, selectors: [[\"dx-validation-summary\"]], contentQueries: function DxValidationSummaryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiItemComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsChildren = _t);\r\n } }, inputs: { elementAttr: \"elementAttr\", hoverStateEnabled: \"hoverStateEnabled\", items: \"items\", itemTemplate: \"itemTemplate\", validationGroup: \"validationGroup\" }, outputs: { onContentReady: \"onContentReady\", onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onItemClick: \"onItemClick\", onOptionChanged: \"onOptionChanged\", elementAttrChange: \"elementAttrChange\", hoverStateEnabledChange: \"hoverStateEnabledChange\", itemsChange: \"itemsChange\", itemTemplateChange: \"itemTemplateChange\", validationGroupChange: \"validationGroupChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxValidationSummaryComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidationSummaryComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-validation-summary',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { elementAttr: [{\r\n type: Input\r\n }], hoverStateEnabled: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemTemplate: [{\r\n type: Input\r\n }], validationGroup: [{\r\n type: Input\r\n }], onContentReady: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onItemClick: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], hoverStateEnabledChange: [{\r\n type: Output\r\n }], itemsChange: [{\r\n type: Output\r\n }], itemTemplateChange: [{\r\n type: Output\r\n }], validationGroupChange: [{\r\n type: Output\r\n }], itemsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiItemComponent]\r\n }] }); })();\r\nclass DxValidationSummaryModule {\r\n}\r\n/** @nocollapse */ DxValidationSummaryModule.ɵfac = function DxValidationSummaryModule_Factory(t) { return new (t || DxValidationSummaryModule)(); };\r\n/** @nocollapse */ DxValidationSummaryModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxValidationSummaryModule });\r\n/** @nocollapse */ DxValidationSummaryModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiItemModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidationSummaryModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxValidationSummaryComponent\r\n ],\r\n exports: [\r\n DxValidationSummaryComponent,\r\n DxiItemModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxValidationSummaryModule, { declarations: [DxValidationSummaryComponent], imports: [DxiItemModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxValidationSummaryComponent, DxiItemModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxValidationSummaryComponent, DxValidationSummaryModule };\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, SkipSelf, Optional, Host, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxValidator from 'devextreme/ui/validator';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponentExtension, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiValidationRuleComponent, DxoAdapterModule, DxiValidationRuleModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxValidator]\r\n\r\n */\r\nclass DxValidatorComponent extends DxComponentExtension {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, parentOptionHost, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'validated', emit: 'onValidated' },\r\n { emit: 'adapterChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'heightChange' },\r\n { emit: 'nameChange' },\r\n { emit: 'validationGroupChange' },\r\n { emit: 'validationRulesChange' },\r\n { emit: 'widthChange' }\r\n ]);\r\n this.parentElement = this.getParentElement(parentOptionHost);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxValidatorOptions.adapter]\r\n \r\n */\r\n get adapter() {\r\n return this._getOption('adapter');\r\n }\r\n set adapter(value) {\r\n this._setOption('adapter', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.height]\r\n \r\n */\r\n get height() {\r\n return this._getOption('height');\r\n }\r\n set height(value) {\r\n this._setOption('height', value);\r\n }\r\n /**\r\n * [descr:dxValidatorOptions.name]\r\n \r\n */\r\n get name() {\r\n return this._getOption('name');\r\n }\r\n set name(value) {\r\n this._setOption('name', value);\r\n }\r\n /**\r\n * [descr:dxValidatorOptions.validationGroup]\r\n \r\n */\r\n get validationGroup() {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value) {\r\n this._setOption('validationGroup', value);\r\n }\r\n /**\r\n * [descr:dxValidatorOptions.validationRules]\r\n \r\n */\r\n get validationRules() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRules(value) {\r\n this._setOption('validationRules', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.width]\r\n \r\n */\r\n get width() {\r\n return this._getOption('width');\r\n }\r\n set width(value) {\r\n this._setOption('width', value);\r\n }\r\n get validationRulesChildren() {\r\n return this._getOption('validationRules');\r\n }\r\n set validationRulesChildren(value) {\r\n this.setChildren('validationRules', value);\r\n }\r\n _createInstance(element, options) {\r\n if (this.parentElement) {\r\n return new DxValidator(this.parentElement, options);\r\n }\r\n return new DxValidator(element, options);\r\n }\r\n getParentElement(host) {\r\n if (host) {\r\n const parentHost = host.getHost();\r\n return parentHost.element.nativeElement;\r\n }\r\n return;\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('validationRules', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('validationRules');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxValidatorComponent.ɵfac = function DxValidatorComponent_Factory(t) { return new (t || DxValidatorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 13), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxValidatorComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxValidatorComponent, selectors: [[\"dx-validator\"]], contentQueries: function DxValidatorComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiValidationRuleComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.validationRulesChildren = _t);\r\n } }, inputs: { adapter: \"adapter\", elementAttr: \"elementAttr\", height: \"height\", name: \"name\", validationGroup: \"validationGroup\", validationRules: \"validationRules\", width: \"width\" }, outputs: { onDisposing: \"onDisposing\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onValidated: \"onValidated\", adapterChange: \"adapterChange\", elementAttrChange: \"elementAttrChange\", heightChange: \"heightChange\", nameChange: \"nameChange\", validationGroupChange: \"validationGroupChange\", validationRulesChange: \"validationRulesChange\", widthChange: \"widthChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxValidatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidatorComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-validator',\r\n template: '',\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost, decorators: [{\r\n type: SkipSelf\r\n }, {\r\n type: Optional\r\n }, {\r\n type: Host\r\n }] }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { adapter: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], height: [{\r\n type: Input\r\n }], name: [{\r\n type: Input\r\n }], validationGroup: [{\r\n type: Input\r\n }], validationRules: [{\r\n type: Input\r\n }], width: [{\r\n type: Input\r\n }], onDisposing: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onValidated: [{\r\n type: Output\r\n }], adapterChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], heightChange: [{\r\n type: Output\r\n }], nameChange: [{\r\n type: Output\r\n }], validationGroupChange: [{\r\n type: Output\r\n }], validationRulesChange: [{\r\n type: Output\r\n }], widthChange: [{\r\n type: Output\r\n }], validationRulesChildren: [{\r\n type: ContentChildren,\r\n args: [DxiValidationRuleComponent]\r\n }] }); })();\r\nclass DxValidatorModule {\r\n}\r\n/** @nocollapse */ DxValidatorModule.ɵfac = function DxValidatorModule_Factory(t) { return new (t || DxValidatorModule)(); };\r\n/** @nocollapse */ DxValidatorModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxValidatorModule });\r\n/** @nocollapse */ DxValidatorModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxValidatorModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxValidatorComponent\r\n ],\r\n exports: [\r\n DxValidatorComponent,\r\n DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxValidatorModule, { declarations: [DxValidatorComponent], imports: [DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxValidatorComponent, DxoAdapterModule,\r\n DxiValidationRuleModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxValidatorComponent, DxValidatorModule };\n","/**\r\n * DevExtreme (esm/viz/vector_map/event_emitter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nvar eventEmitterMethods = {\r\n _initEvents: function() {\r\n var names = this._eventNames;\r\n var i;\r\n var ii = names.length;\r\n var events = this._events = {};\r\n for (i = 0; i < ii; ++i) {\r\n events[names[i]] = Callbacks()\r\n }\r\n },\r\n _disposeEvents: function() {\r\n var events = this._events;\r\n var name;\r\n for (name in events) {\r\n events[name].empty()\r\n }\r\n this._events = null\r\n },\r\n on: function(handlers) {\r\n var events = this._events;\r\n var name;\r\n for (name in handlers) {\r\n events[name].add(handlers[name])\r\n }\r\n return function() {\r\n for (name in handlers) {\r\n events[name].remove(handlers[name])\r\n }\r\n }\r\n },\r\n _fire: function(name, arg) {\r\n this._events[name].fire(arg)\r\n }\r\n};\r\nexport function makeEventEmitter(target) {\r\n var proto = target.prototype;\r\n var name;\r\n for (name in eventEmitterMethods) {\r\n proto[name] = eventEmitterMethods[name]\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/projection.main.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n makeEventEmitter\r\n} from \"./event_emitter\";\r\nvar _Number = Number;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _abs = Math.abs;\r\nvar _round = Math.round;\r\nvar _ln = Math.log;\r\nvar _pow = Math.pow;\r\nvar TWO_TO_LN2 = 2 / Math.LN2;\r\nvar MIN_BOUNDS_RANGE = 1 / 3600 / 180 / 10;\r\nvar DEFAULT_MIN_ZOOM = 1;\r\nvar DEFAULT_MAX_ZOOM = 256;\r\nvar DEFAULT_CENTER = [NaN, NaN];\r\nvar DEFAULT_ENGINE_NAME = \"mercator\";\r\n\r\nfunction floatsEqual(f1, f2) {\r\n return _abs(f1 - f2) < 1e-8\r\n}\r\n\r\nfunction arraysEqual(a1, a2) {\r\n return floatsEqual(a1[0], a2[0]) && floatsEqual(a1[1], a2[1])\r\n}\r\n\r\nfunction parseAndClamp(value, minValue, maxValue, defaultValue) {\r\n var val = _Number(value);\r\n return isFinite(val) ? _min(_max(val, minValue), maxValue) : defaultValue\r\n}\r\n\r\nfunction parseAndClampArray(value, minValue, maxValue, defaultValue) {\r\n return [parseAndClamp(value[0], minValue[0], maxValue[0], defaultValue[0]), parseAndClamp(value[1], minValue[1], maxValue[1], defaultValue[1])]\r\n}\r\n\r\nfunction getEngine(engine) {\r\n return engine instanceof Engine && engine || projection.get(engine) || projection(engine) || projection.get(DEFAULT_ENGINE_NAME)\r\n}\r\nexport var Projection = function(parameters) {\r\n this._initEvents();\r\n this._params = parameters;\r\n this._engine = getEngine();\r\n this._center = this._engine.center();\r\n this._adjustCenter()\r\n};\r\nProjection.prototype = {\r\n constructor: Projection,\r\n _minZoom: DEFAULT_MIN_ZOOM,\r\n _maxZoom: DEFAULT_MAX_ZOOM,\r\n _zoom: DEFAULT_MIN_ZOOM,\r\n _center: DEFAULT_CENTER,\r\n _canvas: {},\r\n _scale: [],\r\n dispose: function() {\r\n this._disposeEvents()\r\n },\r\n setEngine: function(value) {\r\n var engine = getEngine(value);\r\n if (this._engine !== engine) {\r\n this._engine = engine;\r\n this._fire(\"engine\");\r\n if (this._changeCenter(engine.center())) {\r\n this._triggerCenterChanged()\r\n }\r\n if (this._changeZoom(this._minZoom)) {\r\n this._triggerZoomChanged()\r\n }\r\n this._adjustCenter();\r\n this._setupScreen()\r\n }\r\n },\r\n setBounds: function(bounds) {\r\n if (void 0 !== bounds) {\r\n this.setEngine(this._engine.original().bounds(bounds))\r\n }\r\n },\r\n _setupScreen: function() {\r\n var canvas = this._canvas;\r\n var width = canvas.width;\r\n var height = canvas.height;\r\n var engine = this._engine;\r\n var aspectRatio = engine.ar();\r\n this._x0 = canvas.left + width / 2;\r\n this._y0 = canvas.top + height / 2;\r\n var min = [this.project([engine.min()[0], 0])[0], this.project([0, engine.min()[1]])[1]];\r\n var max = [this.project([engine.max()[0], 0])[0], this.project([0, engine.max()[1]])[1]];\r\n var screenAR = width / height;\r\n var boundsAR = _abs(max[0] - min[0]) / _abs(max[1] - min[1]);\r\n var correction;\r\n if (isNaN(boundsAR) || 0 === boundsAR || _min(screenAR, aspectRatio) <= aspectRatio * boundsAR && aspectRatio * boundsAR <= _max(screenAR, aspectRatio)) {\r\n correction = 1\r\n } else {\r\n correction = boundsAR > 1 ? boundsAR : 1 / boundsAR\r\n }\r\n if (aspectRatio * boundsAR >= screenAR) {\r\n this._xRadius = width / 2 / correction;\r\n this._yRadius = width / 2 / (aspectRatio * correction)\r\n } else {\r\n this._xRadius = height / 2 * (aspectRatio / correction);\r\n this._yRadius = height / 2 / correction\r\n }\r\n this._fire(\"screen\")\r\n },\r\n setSize: function(canvas) {\r\n this._canvas = canvas;\r\n this._setupScreen()\r\n },\r\n getCanvas: function() {\r\n return this._canvas\r\n },\r\n _toScreen: function(coordinates) {\r\n return [this._x0 + this._xRadius * coordinates[0], this._y0 + this._yRadius * coordinates[1]]\r\n },\r\n _fromScreen: function(coordinates) {\r\n return [(coordinates[0] - this._x0) / this._xRadius, (coordinates[1] - this._y0) / this._yRadius]\r\n },\r\n _toTransformed: function(coordinates) {\r\n return [coordinates[0] * this._zoom + this._xCenter, coordinates[1] * this._zoom + this._yCenter]\r\n },\r\n _toTransformedFast: function(coordinates) {\r\n return [coordinates[0] * this._zoom, coordinates[1] * this._zoom]\r\n },\r\n _fromTransformed: function(coordinates) {\r\n return [(coordinates[0] - this._xCenter) / this._zoom, (coordinates[1] - this._yCenter) / this._zoom]\r\n },\r\n _adjustCenter: function() {\r\n var center = this._engine.project(this._center);\r\n this._xCenter = -center[0] * this._zoom || 0;\r\n this._yCenter = -center[1] * this._zoom || 0\r\n },\r\n project: function(coordinates) {\r\n return this._engine.project(coordinates)\r\n },\r\n transform: function(coordinates) {\r\n return this._toScreen(this._toTransformedFast(coordinates))\r\n },\r\n isInvertible: function() {\r\n return this._engine.isInvertible()\r\n },\r\n getSquareSize: function(size) {\r\n return [size[0] * this._zoom * this._xRadius, size[1] * this._zoom * this._yRadius]\r\n },\r\n getZoom: function() {\r\n return this._zoom\r\n },\r\n _changeZoom: function(value) {\r\n var oldZoom = this._zoom;\r\n var newZoom = this._zoom = parseAndClamp(value, this._minZoom, this._maxZoom, this._minZoom);\r\n var isChanged = !floatsEqual(oldZoom, newZoom);\r\n if (isChanged) {\r\n this._adjustCenter();\r\n this._fire(\"zoom\")\r\n }\r\n return isChanged\r\n },\r\n setZoom: function(value) {\r\n if (this._engine.isInvertible() && this._changeZoom(value)) {\r\n this._triggerZoomChanged()\r\n }\r\n },\r\n getScaledZoom: function() {\r\n return _round((this._scale.length - 1) * _ln(this._zoom) / _ln(this._maxZoom))\r\n },\r\n setScaledZoom: function(scaledZoom) {\r\n this.setZoom(this._scale[_round(scaledZoom)])\r\n },\r\n changeScaledZoom: function(deltaZoom) {\r\n this.setZoom(this._scale[_max(_min(_round(this.getScaledZoom() + deltaZoom), this._scale.length - 1), 0)])\r\n },\r\n getZoomScalePartition: function() {\r\n return this._scale.length - 1\r\n },\r\n _setupScaling: function() {\r\n var k = _max(_round(TWO_TO_LN2 * _ln(this._maxZoom)), 4);\r\n var step = _pow(this._maxZoom, 1 / k);\r\n var zoom = this._minZoom;\r\n this._scale = [zoom];\r\n for (var i = 1; i <= k; ++i) {\r\n this._scale.push(zoom *= step)\r\n }\r\n },\r\n setMaxZoom: function(maxZoom) {\r\n this._minZoom = DEFAULT_MIN_ZOOM;\r\n this._maxZoom = parseAndClamp(maxZoom, this._minZoom, _Number.MAX_VALUE, DEFAULT_MAX_ZOOM);\r\n this._setupScaling();\r\n if (this._zoom > this._maxZoom) {\r\n this.setZoom(this._maxZoom)\r\n }\r\n this._fire(\"max-zoom\")\r\n },\r\n getCenter: function() {\r\n return this._center.slice()\r\n },\r\n setCenter: function(value) {\r\n if (this._engine.isInvertible() && this._changeCenter(value || [])) {\r\n this._triggerCenterChanged()\r\n }\r\n },\r\n _changeCenter: function(value) {\r\n var engine = this._engine;\r\n var oldCenter = this._center;\r\n var newCenter = this._center = parseAndClampArray(value, engine.min(), engine.max(), engine.center());\r\n var isChanged = !arraysEqual(oldCenter, newCenter);\r\n if (isChanged) {\r\n this._adjustCenter();\r\n this._fire(\"center\")\r\n }\r\n return isChanged\r\n },\r\n _triggerCenterChanged: function() {\r\n this._params.centerChanged(this.getCenter())\r\n },\r\n _triggerZoomChanged: function() {\r\n this._params.zoomChanged(this.getZoom())\r\n },\r\n setCenterByPoint: function(coordinates, screenPosition) {\r\n var p = this._engine.project(coordinates);\r\n var q = this._fromScreen(screenPosition);\r\n this.setCenter(this._engine.unproject([-q[0] / this._zoom + p[0], -q[1] / this._zoom + p[1]]))\r\n },\r\n beginMoveCenter: function() {\r\n if (this._engine.isInvertible()) {\r\n this._moveCenter = this._center\r\n }\r\n },\r\n endMoveCenter: function() {\r\n if (this._moveCenter) {\r\n if (!arraysEqual(this._moveCenter, this._center)) {\r\n this._triggerCenterChanged()\r\n }\r\n this._moveCenter = null\r\n }\r\n },\r\n moveCenter: function(shift) {\r\n if (this._moveCenter) {\r\n var current = this.toScreenPoint(this._center);\r\n this._changeCenter(this.fromScreenPoint([current[0] + shift[0], current[1] + shift[1]]))\r\n }\r\n },\r\n getViewport: function() {\r\n var unproject = this._engine.unproject;\r\n var lt = unproject(this._fromTransformed([-1, -1]));\r\n var lb = unproject(this._fromTransformed([-1, 1]));\r\n var rt = unproject(this._fromTransformed([1, -1]));\r\n var rb = unproject(this._fromTransformed([1, 1]));\r\n var minMax = findMinMax([selectFarthestPoint(lt[0], lb[0], rt[0], rb[0]), selectFarthestPoint(lt[1], rt[1], lb[1], rb[1])], [selectFarthestPoint(rt[0], rb[0], lt[0], lb[0]), selectFarthestPoint(lb[1], rb[1], lt[1], rt[1])]);\r\n return [].concat(minMax.min, minMax.max)\r\n },\r\n setViewport: function(viewport) {\r\n var engine = this._engine;\r\n var data = viewport ? getZoomAndCenterFromViewport(engine.project, engine.unproject, viewport) : [this._minZoom, engine.center()];\r\n this.setZoom(data[0]);\r\n this.setCenter(data[1])\r\n },\r\n getTransform: function() {\r\n return {\r\n translateX: this._xCenter * this._xRadius,\r\n translateY: this._yCenter * this._yRadius\r\n }\r\n },\r\n fromScreenPoint: function(coordinates) {\r\n return this._engine.unproject(this._fromTransformed(this._fromScreen(coordinates)))\r\n },\r\n toScreenPoint: function(coordinates) {\r\n return this._toScreen(this._toTransformed(this._engine.project(coordinates)))\r\n },\r\n _eventNames: [\"engine\", \"screen\", \"center\", \"zoom\", \"max-zoom\"]\r\n};\r\nmakeEventEmitter(Projection);\r\n\r\nfunction selectFarthestPoint(point1, point2, basePoint1, basePoint2) {\r\n var basePoint = (basePoint1 + basePoint2) / 2;\r\n return _abs(point1 - basePoint) > _abs(point2 - basePoint) ? point1 : point2\r\n}\r\n\r\nfunction selectClosestPoint(point1, point2, basePoint1, basePoint2) {\r\n var basePoint = (basePoint1 + basePoint2) / 2;\r\n return _abs(point1 - basePoint) < _abs(point2 - basePoint) ? point1 : point2\r\n}\r\n\r\nfunction getZoomAndCenterFromViewport(project, unproject, viewport) {\r\n var lt = project([viewport[0], viewport[3]]);\r\n var lb = project([viewport[0], viewport[1]]);\r\n var rt = project([viewport[2], viewport[3]]);\r\n var rb = project([viewport[2], viewport[1]]);\r\n var l = selectClosestPoint(lt[0], lb[0], rt[0], rb[0]);\r\n var r = selectClosestPoint(rt[0], rb[0], lt[0], lb[0]);\r\n var t = selectClosestPoint(lt[1], rt[1], lb[1], rb[1]);\r\n var b = selectClosestPoint(lb[1], rb[1], lt[1], rt[1]);\r\n return [2 / _max(_abs(l - r), _abs(t - b)), unproject([(l + r) / 2, (t + b) / 2])]\r\n}\r\n\r\nfunction setMinMax(engine, p1, p2) {\r\n var {\r\n min: min,\r\n max: max\r\n } = findMinMax(p1, p2);\r\n engine.min = returnArray(min);\r\n engine.max = returnArray(max)\r\n}\r\nvar Engine = class {\r\n constructor(parameters) {\r\n var project = createProjectMethod(parameters.to);\r\n var unproject = parameters.from ? createUnprojectMethod(parameters.from) : returnValue(DEFAULT_CENTER);\r\n this.project = project;\r\n this.unproject = unproject;\r\n this.original = returnValue(this);\r\n this.source = function() {\r\n return extend({}, parameters)\r\n };\r\n this.isInvertible = returnValue(!!parameters.from);\r\n this.ar = returnValue(parameters.aspectRatio > 0 ? _Number(parameters.aspectRatio) : 1);\r\n this.center = returnArray(unproject([0, 0]));\r\n setMinMax(this, [unproject([-1, 0])[0], unproject([0, 1])[1]], [unproject([1, 0])[0], unproject([0, -1])[1]])\r\n }\r\n aspectRatio(aspectRatio) {\r\n var engine = new Engine(extend(this.source(), {\r\n aspectRatio: aspectRatio\r\n }));\r\n engine.original = this.original;\r\n engine.min = this.min;\r\n engine.max = this.max;\r\n return engine\r\n }\r\n bounds(bounds) {\r\n bounds = bounds || [];\r\n var parameters = this.source();\r\n var min = this.min();\r\n var max = this.max();\r\n var b1 = parseAndClampArray([bounds[0], bounds[1]], min, max, min);\r\n var b2 = parseAndClampArray([bounds[2], bounds[3]], min, max, max);\r\n var p1 = parameters.to(b1);\r\n var p2 = parameters.to(b2);\r\n var delta = _min(_abs(p2[0] - p1[0]) > MIN_BOUNDS_RANGE ? _abs(p2[0] - p1[0]) : 2, _abs(p2[1] - p1[1]) > MIN_BOUNDS_RANGE ? _abs(p2[1] - p1[1]) : 2);\r\n if (delta < 2) {\r\n extend(parameters, createProjectUnprojectMethods(parameters.to, parameters.from, p1, p2, delta))\r\n }\r\n var engine = new Engine(parameters);\r\n engine.original = this.original;\r\n setMinMax(engine, b1, b2);\r\n return engine\r\n }\r\n};\r\n\r\nfunction invertVerticalAxis(pair) {\r\n return [pair[0], -pair[1]]\r\n}\r\n\r\nfunction createProjectMethod(method) {\r\n return arg => invertVerticalAxis(method(arg))\r\n}\r\n\r\nfunction createUnprojectMethod(method) {\r\n return arg => method(invertVerticalAxis(arg))\r\n}\r\n\r\nfunction returnValue(value) {\r\n return () => value\r\n}\r\n\r\nfunction returnArray(value) {\r\n return () => value.slice()\r\n}\r\n\r\nfunction findMinMax(p1, p2) {\r\n return {\r\n min: [_min(p1[0], p2[0]), _min(p1[1], p2[1])],\r\n max: [_max(p1[0], p2[0]), _max(p1[1], p2[1])]\r\n }\r\n}\r\nexport var projection = function(parameters) {\r\n return parameters && parameters.to ? new Engine(parameters) : null\r\n};\r\nvar projectionsCache = {};\r\nprojection.get = function(name) {\r\n return projectionsCache[name] || null\r\n};\r\nprojection.add = function(name, engine) {\r\n engine = engine instanceof Engine && engine || projection(engine);\r\n if (!projectionsCache[name] && engine) {\r\n projectionsCache[name] = engine\r\n }\r\n return projection\r\n};\r\n\r\nfunction createProjectUnprojectMethods(project, unproject, p1, p2, delta) {\r\n var x0 = (p1[0] + p2[0]) / 2 - delta / 2;\r\n var y0 = (p1[1] + p2[1]) / 2 - delta / 2;\r\n var k = 2 / delta;\r\n return {\r\n to: function(coordinates) {\r\n var [p0, p1] = project(coordinates);\r\n return [(p0 - x0) * k - 1, (p1 - y0) * k - 1]\r\n },\r\n from: function(coordinates) {\r\n return unproject([x0 + (coordinates[0] + 1) / k, y0 + (coordinates[1] + 1) / k])\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/control_bar/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var createTracker = (renderer, root) => renderer.g().attr({\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n}).css({\r\n cursor: \"pointer\"\r\n}).append(root);\r\nexport var createVisibilityGroup = function(renderer, root) {\r\n var className = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"\";\r\n return renderer.g().attr({\r\n class: className\r\n }).append(root)\r\n};\r\nexport var toggleDisplay = (blocks, isVisible) => {\r\n var style = isVisible ? {\r\n display: \"block\"\r\n } : {\r\n display: \"none\"\r\n };\r\n blocks.map(item => item.css(style))\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/control_bar/control_bar.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _math = Math;\r\nvar _min = _math.min;\r\nvar _max = _math.max;\r\nvar _round = _math.round;\r\nvar _floor = _math.floor;\r\nvar _sqrt = _math.sqrt;\r\nimport {\r\n parseScalar as _parseScalar,\r\n enumParser\r\n} from \"../../core/utils\";\r\nimport {\r\n createTracker,\r\n createVisibilityGroup,\r\n toggleDisplay\r\n} from \"./utils\";\r\nvar parseHorizontalAlignment = enumParser([\"left\", \"center\", \"right\"]);\r\nvar parseVerticalAlignment = enumParser([\"top\", \"bottom\"]);\r\nvar COMMAND_RESET = \"command-reset\";\r\nvar COMMAND_MOVE_UP = \"command-move-up\";\r\nvar COMMAND_MOVE_RIGHT = \"command-move-right\";\r\nvar COMMAND_MOVE_DOWN = \"command-move-down\";\r\nvar COMMAND_MOVE_LEFT = \"command-move-left\";\r\nvar COMMAND_ZOOM_IN = \"command-zoom-in\";\r\nvar COMMAND_ZOOM_OUT = \"command-zoom-out\";\r\nvar COMMAND_ZOOM_DRAG_LINE = \"command-zoom-drag-line\";\r\nvar COMMAND_ZOOM_DRAG = \"command-zoom-drag\";\r\nvar EVENT_TARGET_TYPE = \"control-bar\";\r\nvar FLAG_CENTERING = 1;\r\nvar FLAG_ZOOMING = 2;\r\nvar SIZE_OPTIONS = {\r\n bigCircleSize: 58,\r\n smallCircleSize: 28,\r\n buttonSize: 10,\r\n arrowButtonOffset: 20,\r\n incDecButtonSize: 11,\r\n incButtonOffset: 66,\r\n decButtonOffset: 227,\r\n sliderLineStartOffset: 88.5,\r\n sliderLineEndOffset: 205.5,\r\n sliderLength: 20,\r\n sliderWidth: 8,\r\n trackerGap: 4\r\n};\r\nvar OFFSET_X = 30.5;\r\nvar OFFSET_Y = 30.5;\r\nvar TOTAL_WIDTH = 61;\r\nvar TOTAL_HEIGHT = 274;\r\nvar COMMAND_TO_TYPE_MAP = {};\r\nCOMMAND_TO_TYPE_MAP[COMMAND_RESET] = ResetCommand;\r\nCOMMAND_TO_TYPE_MAP[COMMAND_MOVE_UP] = COMMAND_TO_TYPE_MAP[COMMAND_MOVE_RIGHT] = COMMAND_TO_TYPE_MAP[COMMAND_MOVE_DOWN] = COMMAND_TO_TYPE_MAP[COMMAND_MOVE_LEFT] = MoveCommand;\r\nCOMMAND_TO_TYPE_MAP[COMMAND_ZOOM_IN] = COMMAND_TO_TYPE_MAP[COMMAND_ZOOM_OUT] = ZoomCommand;\r\nCOMMAND_TO_TYPE_MAP[COMMAND_ZOOM_DRAG] = ZoomDragCommand;\r\nexport function ControlBar(parameters) {\r\n this._params = parameters;\r\n this._createElements(parameters.renderer, parameters.container, parameters.dataKey);\r\n parameters.layoutControl.addItem(this);\r\n this._subscribeToProjection(parameters.projection);\r\n this._subscribeToTracker(parameters.tracker);\r\n this._createCallbacks(parameters.projection)\r\n}\r\nControlBar.prototype = {\r\n constructor: ControlBar,\r\n _flags: 0,\r\n dispose: function() {\r\n this._params.layoutControl.removeItem(this);\r\n this._root.linkRemove().linkOff();\r\n this._offProjection();\r\n this._offTracker();\r\n this._params = this._root = this._offProjection = this._offTracker = this._callbacks = null\r\n },\r\n _subscribeToProjection: function(projection) {\r\n var that = this;\r\n that._offProjection = projection.on({\r\n engine: function() {\r\n that._update()\r\n },\r\n zoom: updateZoom,\r\n \"max-zoom\": function() {\r\n that._zoomPartition = projection.getZoomScalePartition();\r\n that._sliderUnitLength = that._sliderLineLength / that._zoomPartition;\r\n updateZoom()\r\n }\r\n });\r\n\r\n function updateZoom() {\r\n that._adjustZoom(projection.getScaledZoom())\r\n }\r\n },\r\n _subscribeToTracker: function(tracker) {\r\n var that = this;\r\n var isActive = false;\r\n that._offTracker = tracker.on({\r\n start: function(arg) {\r\n isActive = arg.data.name === EVENT_TARGET_TYPE;\r\n if (isActive) {\r\n that._processStart(arg.data.index, arg)\r\n }\r\n },\r\n move: function(arg) {\r\n if (isActive) {\r\n that._processMove(arg.data.index, arg)\r\n }\r\n },\r\n end: function() {\r\n if (isActive) {\r\n that._processEnd();\r\n isActive = false\r\n }\r\n }\r\n })\r\n },\r\n _createCallbacks: function(projection) {\r\n this._callbacks = {\r\n reset: function(isCenter, isZoom) {\r\n if (isCenter) {\r\n projection.setCenter(null)\r\n }\r\n if (isZoom) {\r\n projection.setZoom(null)\r\n }\r\n },\r\n beginMove: function() {\r\n projection.beginMoveCenter()\r\n },\r\n endMove: function() {\r\n projection.endMoveCenter()\r\n },\r\n move: function(shift) {\r\n projection.moveCenter(shift)\r\n },\r\n zoom: function(_zoom) {\r\n projection.setScaledZoom(_zoom)\r\n }\r\n }\r\n },\r\n _createElements: function(renderer, container, dataKey) {\r\n this._root = renderer.g().attr({\r\n class: \"dxm-control-bar\"\r\n }).linkOn(container, \"control-bar\");\r\n var panControl = this._panControl = createVisibilityGroup(renderer, this._root, \"dxm-pan-control\");\r\n var zoomBar = this._zoomBar = createVisibilityGroup(renderer, this._root, \"dxm-zoom-bar\");\r\n var trackersPan = this._trackersPan = createTracker(renderer, this._root);\r\n var trackersZoom = this._trackersZoom = createTracker(renderer, this._root);\r\n this._createTrackersPan(renderer, dataKey, trackersPan);\r\n this._createTrackersZoom(renderer, dataKey, trackersZoom);\r\n this._createPanControl(renderer, dataKey, panControl);\r\n this._createZoomBar(renderer, dataKey, zoomBar)\r\n },\r\n _createPanControl: function(renderer, dataKey, group) {\r\n var options = SIZE_OPTIONS;\r\n var size = options.buttonSize / 2;\r\n var offset1 = options.arrowButtonOffset - size;\r\n var offset2 = options.arrowButtonOffset;\r\n var directionOptions = {\r\n \"stroke-linecap\": \"square\",\r\n fill: \"none\"\r\n };\r\n renderer.circle(0, 0, options.bigCircleSize / 2).append(group);\r\n renderer.circle(0, 0, size).attr({\r\n fill: \"none\"\r\n }).append(group);\r\n renderer.path([-size, -offset1, 0, -offset2, size, -offset1], \"line\").attr(directionOptions).append(group);\r\n renderer.path([offset1, -size, offset2, 0, offset1, size], \"line\").attr(directionOptions).append(group);\r\n renderer.path([size, offset1, 0, offset2, -size, offset1], \"line\").attr(directionOptions).append(group);\r\n renderer.path([-offset1, size, -offset2, 0, -offset1, -size], \"line\").attr(directionOptions).append(group)\r\n },\r\n _createZoomBar: function(renderer, dataKey, group) {\r\n var options = SIZE_OPTIONS;\r\n var incDecButtonSize = options.incDecButtonSize / 2;\r\n renderer.circle(0, options.incButtonOffset, options.smallCircleSize / 2).append(group);\r\n renderer.path([\r\n [-incDecButtonSize, options.incButtonOffset, incDecButtonSize, options.incButtonOffset],\r\n [0, options.incButtonOffset - incDecButtonSize, 0, options.incButtonOffset + incDecButtonSize]\r\n ], \"area\").append(group);\r\n renderer.circle(0, options.decButtonOffset, options.smallCircleSize / 2).append(group);\r\n renderer.path([-incDecButtonSize, options.decButtonOffset, incDecButtonSize, options.decButtonOffset], \"area\").append(group);\r\n this._zoomLine = renderer.path([], \"line\").append(group);\r\n this._zoomDrag = renderer.rect(_floor(-options.sliderLength / 2), _floor(options.sliderLineEndOffset - options.sliderWidth / 2), options.sliderLength, options.sliderWidth).append(group);\r\n this._sliderLineLength = options.sliderLineEndOffset - options.sliderLineStartOffset\r\n },\r\n _createTrackersPan: function(renderer, dataKey, group) {\r\n var options = SIZE_OPTIONS;\r\n var size = _round((options.arrowButtonOffset - options.trackerGap) / 2);\r\n var offset1 = options.arrowButtonOffset - size;\r\n var offset2 = _round(_sqrt(options.bigCircleSize * options.bigCircleSize / 4 - size * size));\r\n var size2 = offset2 - offset1;\r\n renderer.rect(-size, -size, 2 * size, 2 * size).data(dataKey, {\r\n index: COMMAND_RESET,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.rect(-size, -offset2, 2 * size, size2).data(dataKey, {\r\n index: COMMAND_MOVE_UP,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.rect(offset1, -size, size2, 2 * size).data(dataKey, {\r\n index: COMMAND_MOVE_RIGHT,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.rect(-size, offset1, 2 * size, size2).data(dataKey, {\r\n index: COMMAND_MOVE_DOWN,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.rect(-offset2, -size, size2, 2 * size).data(dataKey, {\r\n index: COMMAND_MOVE_LEFT,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group)\r\n },\r\n _createTrackersZoom: function(renderer, dataKey, group) {\r\n var options = SIZE_OPTIONS;\r\n renderer.circle(0, options.incButtonOffset, options.smallCircleSize / 2).data(dataKey, {\r\n index: COMMAND_ZOOM_IN,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.circle(0, options.decButtonOffset, options.smallCircleSize / 2).data(dataKey, {\r\n index: COMMAND_ZOOM_OUT,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n renderer.rect(-2, options.sliderLineStartOffset - 2, 4, options.sliderLineEndOffset - options.sliderLineStartOffset + 4).css({\r\n cursor: \"default\"\r\n }).data(dataKey, {\r\n index: COMMAND_ZOOM_DRAG_LINE,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group);\r\n this._zoomDragTracker = renderer.rect(-options.sliderLength / 2, options.sliderLineEndOffset - options.sliderWidth / 2, options.sliderLength, options.sliderWidth).data(dataKey, {\r\n index: COMMAND_ZOOM_DRAG,\r\n name: EVENT_TARGET_TYPE\r\n }).append(group)\r\n },\r\n resize: function(size) {\r\n if (this._isActive) {\r\n this._root.attr({\r\n visibility: null !== size ? null : \"hidden\"\r\n })\r\n }\r\n },\r\n getLayoutOptions: function() {\r\n return this._isActive ? this._layoutOptions : null\r\n },\r\n locate: function(x, y) {\r\n this._root.attr({\r\n translateX: x + this._margin + OFFSET_X,\r\n translateY: y + this._margin + OFFSET_Y\r\n })\r\n },\r\n _update: function() {\r\n this._isActive = this._isEnabled && this._flags && this._params.projection.isInvertible();\r\n var groupPan = [this._panControl, this._trackersPan];\r\n var groupZoom = [this._zoomBar, this._trackersZoom];\r\n if (this._isActive) {\r\n this._root.linkAppend();\r\n toggleDisplay(groupPan, this._isPanVisible);\r\n toggleDisplay(groupZoom, this._isZoomVisible)\r\n } else {\r\n this._root.linkRemove()\r\n }\r\n this._processEnd();\r\n this.updateLayout()\r\n },\r\n setInteraction: function(interaction) {\r\n if (_parseScalar(interaction.centeringEnabled, true)) {\r\n this._flags |= FLAG_CENTERING\r\n } else {\r\n this._flags &= ~FLAG_CENTERING\r\n }\r\n if (_parseScalar(interaction.zoomingEnabled, true)) {\r\n this._flags |= FLAG_ZOOMING\r\n } else {\r\n this._flags &= ~FLAG_ZOOMING\r\n }\r\n this._update()\r\n },\r\n setOptions: function(options) {\r\n var styleSvg = {\r\n \"stroke-width\": options.borderWidth,\r\n stroke: options.borderColor,\r\n fill: options.color,\r\n \"fill-opacity\": options.opacity\r\n };\r\n this._isEnabled = !!_parseScalar(options.enabled, true);\r\n this._margin = options.margin || 0;\r\n this._layoutOptions = {\r\n width: 2 * this._margin + TOTAL_WIDTH,\r\n height: 2 * this._margin + TOTAL_HEIGHT,\r\n horizontalAlignment: parseHorizontalAlignment(options.horizontalAlignment, \"left\"),\r\n verticalAlignment: parseVerticalAlignment(options.verticalAlignment, \"top\")\r\n };\r\n this._isPanVisible = !!_parseScalar(options.panVisible, true);\r\n this._isZoomVisible = !!_parseScalar(options.zoomVisible, true);\r\n this._panControl.attr(styleSvg);\r\n this._zoomBar.attr(styleSvg);\r\n this._update()\r\n },\r\n _adjustZoom: function(zoom) {\r\n var start = SIZE_OPTIONS.sliderLineStartOffset;\r\n var end = SIZE_OPTIONS.sliderLineEndOffset;\r\n var h = SIZE_OPTIONS.sliderWidth;\r\n this._zoomFactor = _max(_min(_round(zoom), this._zoomPartition), 0);\r\n var transform = {\r\n translateY: -_round(this._zoomFactor * this._sliderUnitLength)\r\n };\r\n var y = end - h / 2 + transform.translateY;\r\n this._zoomLine.attr({\r\n points: [\r\n [0, start, 0, _max(start, y)],\r\n [0, _min(end, y + h), 0, end]\r\n ]\r\n });\r\n this._zoomDrag.attr(transform);\r\n this._zoomDragTracker.attr(transform)\r\n },\r\n _applyZoom: function() {\r\n this._callbacks.zoom(this._zoomFactor)\r\n },\r\n _processStart: function(command, arg) {\r\n var commandType;\r\n if (this._isActive) {\r\n commandType = COMMAND_TO_TYPE_MAP[command];\r\n this._command = commandType && commandType.flags & this._flags ? new commandType(this, command, arg) : null\r\n }\r\n },\r\n _processMove: function(command, arg) {\r\n this._command && this._command.update(command, arg)\r\n },\r\n _processEnd: function() {\r\n this._command && this._command.finish();\r\n this._command = null\r\n }\r\n};\r\n\r\nfunction disposeCommand(command) {\r\n delete command._owner;\r\n command.update = function() {};\r\n command.finish = function() {}\r\n}\r\n\r\nfunction ResetCommand(owner, command) {\r\n this._owner = owner;\r\n this._command = command\r\n}\r\nResetCommand.flags = FLAG_CENTERING | FLAG_ZOOMING;\r\nResetCommand.prototype.update = function(command) {\r\n command !== this._command && disposeCommand(this)\r\n};\r\nResetCommand.prototype.finish = function() {\r\n var flags = this._owner._flags;\r\n this._owner._callbacks.reset(!!(flags & FLAG_CENTERING), !!(flags & FLAG_ZOOMING));\r\n disposeCommand(this)\r\n};\r\n\r\nfunction MoveCommand(owner, command, arg) {\r\n this._command = command;\r\n var timeout = null;\r\n var dx = 0;\r\n var dy = 0;\r\n switch (this._command) {\r\n case COMMAND_MOVE_UP:\r\n dy = -10;\r\n break;\r\n case COMMAND_MOVE_RIGHT:\r\n dx = 10;\r\n break;\r\n case COMMAND_MOVE_DOWN:\r\n dy = 10;\r\n break;\r\n case COMMAND_MOVE_LEFT:\r\n dx = -10\r\n }\r\n this._stop = function() {\r\n clearTimeout(timeout);\r\n owner._callbacks.endMove();\r\n this._stop = owner = null;\r\n return this\r\n };\r\n null;\r\n owner._callbacks.beginMove();\r\n ! function callback() {\r\n owner._callbacks.move([dx, dy]);\r\n timeout = setTimeout(callback, 100)\r\n }()\r\n}\r\nMoveCommand.flags = FLAG_CENTERING;\r\nMoveCommand.prototype.update = function(command) {\r\n this._command !== command && this.finish()\r\n};\r\nMoveCommand.prototype.finish = function() {\r\n disposeCommand(this._stop())\r\n};\r\n\r\nfunction ZoomCommand(owner, command) {\r\n this._owner = owner;\r\n this._command = command;\r\n var timeout = null;\r\n var dZoom = this._command === COMMAND_ZOOM_IN ? 1 : -1;\r\n this._stop = function() {\r\n clearTimeout(timeout);\r\n this._stop = owner = null;\r\n return this\r\n };\r\n ! function callback() {\r\n owner._adjustZoom(owner._zoomFactor + dZoom);\r\n timeout = setTimeout(callback, 150)\r\n }()\r\n}\r\nZoomCommand.flags = FLAG_ZOOMING;\r\nZoomCommand.prototype.update = function(command) {\r\n this._command !== command && this.finish()\r\n};\r\nZoomCommand.prototype.finish = function() {\r\n this._owner._applyZoom();\r\n disposeCommand(this._stop())\r\n};\r\n\r\nfunction ZoomDragCommand(owner, command, arg) {\r\n this._owner = owner;\r\n this._zoomFactor = owner._zoomFactor;\r\n this._pos = arg.y\r\n}\r\nZoomDragCommand.flags = FLAG_ZOOMING;\r\nZoomDragCommand.prototype.update = function(command, arg) {\r\n var owner = this._owner;\r\n owner._adjustZoom(this._zoomFactor + owner._zoomPartition * (this._pos - arg.y) / owner._sliderLineLength)\r\n};\r\nZoomDragCommand.prototype.finish = function() {\r\n this._owner._applyZoom();\r\n disposeCommand(this)\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/gesture_handler.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _ln = Math.log;\r\nvar _LN2 = Math.LN2;\r\nexport function GestureHandler(params) {\r\n this._projection = params.projection;\r\n this._renderer = params.renderer;\r\n this._x = this._y = 0;\r\n this._subscribeToTracker(params.tracker)\r\n}\r\nGestureHandler.prototype = {\r\n constructor: GestureHandler,\r\n dispose: function() {\r\n this._offTracker();\r\n this._offTracker = null\r\n },\r\n _subscribeToTracker: function(tracker) {\r\n var that = this;\r\n var isActive = false;\r\n that._offTracker = tracker.on({\r\n start: function(arg) {\r\n isActive = \"control-bar\" !== arg.data.name;\r\n if (isActive) {\r\n that._processStart(arg)\r\n }\r\n },\r\n move: function(arg) {\r\n if (isActive) {\r\n that._processMove(arg)\r\n }\r\n },\r\n end: function() {\r\n if (isActive) {\r\n that._processEnd()\r\n }\r\n },\r\n zoom: function(arg) {\r\n that._processZoom(arg)\r\n }\r\n })\r\n },\r\n setInteraction: function(options) {\r\n this._processEnd();\r\n this._centeringEnabled = options.centeringEnabled;\r\n this._zoomingEnabled = options.zoomingEnabled\r\n },\r\n _processStart: function(arg) {\r\n if (this._centeringEnabled) {\r\n this._x = arg.x;\r\n this._y = arg.y;\r\n this._projection.beginMoveCenter()\r\n }\r\n },\r\n _processMove: function(arg) {\r\n if (this._centeringEnabled) {\r\n this._renderer.root.attr({\r\n cursor: \"move\"\r\n });\r\n this._projection.moveCenter([this._x - arg.x, this._y - arg.y]);\r\n this._x = arg.x;\r\n this._y = arg.y\r\n }\r\n },\r\n _processEnd: function() {\r\n if (this._centeringEnabled) {\r\n this._renderer.root.attr({\r\n cursor: \"default\"\r\n });\r\n this._projection.endMoveCenter()\r\n }\r\n },\r\n _processZoom: function(arg) {\r\n var delta;\r\n var screenPosition;\r\n var coords;\r\n if (this._zoomingEnabled) {\r\n if (arg.delta) {\r\n delta = arg.delta\r\n } else if (arg.ratio) {\r\n delta = _ln(arg.ratio) / _LN2\r\n }\r\n if (this._centeringEnabled) {\r\n screenPosition = this._renderer.getRootOffset();\r\n screenPosition = [arg.x - screenPosition.left, arg.y - screenPosition.top];\r\n coords = this._projection.fromScreenPoint(screenPosition)\r\n }\r\n this._projection.changeScaledZoom(delta);\r\n if (this._centeringEnabled) {\r\n this._projection.setCenterByPoint(coords, screenPosition)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/tracker.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n makeEventEmitter\r\n} from \"./event_emitter\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n parseScalar\r\n} from \"../core/utils\";\r\nvar navigator = getNavigator();\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _round = _math.round;\r\nvar _addNamespace = addNamespace;\r\nvar _NAME = \"dxVectorMap\";\r\nvar EVENT_START = \"start\";\r\nvar EVENT_MOVE = \"move\";\r\nvar EVENT_END = \"end\";\r\nvar EVENT_ZOOM = \"zoom\";\r\nvar EVENT_HOVER_ON = \"hover-on\";\r\nvar EVENT_HOVER_OFF = \"hover-off\";\r\nvar EVENT_CLICK = \"click\";\r\nvar EVENT_FOCUS_ON = \"focus-on\";\r\nvar EVENT_FOCUS_MOVE = \"focus-move\";\r\nvar EVENT_FOCUS_OFF = \"focus-off\";\r\nvar CLICK_TIME_THRESHOLD = 500;\r\nvar CLICK_COORD_THRESHOLD_MOUSE = 5;\r\nvar CLICK_COORD_THRESHOLD_TOUCH = 20;\r\nvar DRAG_COORD_THRESHOLD_MOUSE = 5;\r\nvar DRAG_COORD_THRESHOLD_TOUCH = 10;\r\nvar FOCUS_OFF_DELAY = 100;\r\nvar WHEEL_COOLDOWN = 50;\r\nvar WHEEL_DIRECTION_COOLDOWN = 300;\r\nvar EVENTS;\r\nvar Focus;\r\nsetupEvents();\r\nexport function Tracker(parameters) {\r\n var that = this;\r\n that._root = parameters.root;\r\n that._createEventHandlers(parameters.dataKey);\r\n that._createProjectionHandlers(parameters.projection);\r\n that._initEvents();\r\n that._focus = new Focus((function(name, arg) {\r\n that._fire(name, arg)\r\n }));\r\n that._attachHandlers()\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n dispose: function() {\r\n this._detachHandlers();\r\n this._disposeEvents();\r\n this._focus.dispose();\r\n this._root = this._focus = this._docHandlers = this._rootHandlers = null\r\n },\r\n _eventNames: [EVENT_START, EVENT_MOVE, EVENT_END, EVENT_ZOOM, EVENT_CLICK, EVENT_HOVER_ON, EVENT_HOVER_OFF, EVENT_FOCUS_ON, EVENT_FOCUS_OFF, EVENT_FOCUS_MOVE],\r\n _startClick: function(event, data) {\r\n if (!data) {\r\n return\r\n }\r\n var coords = getEventCoords(event);\r\n this._clickState = {\r\n x: coords.x,\r\n y: coords.y,\r\n threshold: isTouchEvent(event) ? CLICK_COORD_THRESHOLD_TOUCH : CLICK_COORD_THRESHOLD_MOUSE,\r\n time: Date.now()\r\n }\r\n },\r\n _endClick: function(event, data) {\r\n var state = this._clickState;\r\n var threshold;\r\n var coords;\r\n if (!state) {\r\n return\r\n }\r\n if (data && Date.now() - state.time <= CLICK_TIME_THRESHOLD) {\r\n threshold = state.threshold;\r\n coords = getEventCoords(event);\r\n if (_abs(coords.x - state.x) <= threshold && _abs(coords.y - state.y) <= threshold) {\r\n this._fire(EVENT_CLICK, {\r\n data: data,\r\n x: coords.x,\r\n y: coords.y,\r\n $event: event\r\n })\r\n }\r\n }\r\n this._clickState = null\r\n },\r\n _startDrag: function(event, data) {\r\n if (!data) {\r\n return\r\n }\r\n var coords = getEventCoords(event);\r\n var state = this._dragState = {\r\n x: coords.x,\r\n y: coords.y,\r\n data: data\r\n };\r\n this._fire(EVENT_START, {\r\n x: state.x,\r\n y: state.y,\r\n data: state.data\r\n })\r\n },\r\n _moveDrag: function(event, data) {\r\n var state = this._dragState;\r\n if (!state) {\r\n return\r\n }\r\n var coords = getEventCoords(event);\r\n var threshold = isTouchEvent(event) ? DRAG_COORD_THRESHOLD_TOUCH : DRAG_COORD_THRESHOLD_MOUSE;\r\n if (state.active || _abs(coords.x - state.x) > threshold || _abs(coords.y - state.y) > threshold) {\r\n state.x = coords.x;\r\n state.y = coords.y;\r\n state.active = true;\r\n state.data = data || {};\r\n this._fire(EVENT_MOVE, {\r\n x: state.x,\r\n y: state.y,\r\n data: state.data\r\n })\r\n }\r\n },\r\n _endDrag: function() {\r\n var state = this._dragState;\r\n if (!state) {\r\n return\r\n }\r\n this._dragState = null;\r\n this._fire(EVENT_END, {\r\n x: state.x,\r\n y: state.y,\r\n data: state.data\r\n })\r\n },\r\n _wheelZoom: function(event, data) {\r\n if (!data) {\r\n return\r\n }\r\n var lock = this._wheelLock;\r\n var time = Date.now();\r\n if (time - lock.time <= WHEEL_COOLDOWN) {\r\n return\r\n }\r\n if (time - lock.dirTime > WHEEL_DIRECTION_COOLDOWN) {\r\n lock.dir = 0\r\n }\r\n var delta = adjustWheelDelta(event.delta / 120 || 0, lock);\r\n if (0 === delta) {\r\n return\r\n }\r\n var coords = getEventCoords(event);\r\n this._fire(EVENT_ZOOM, {\r\n delta: delta,\r\n x: coords.x,\r\n y: coords.y\r\n });\r\n lock.time = lock.dirTime = time\r\n },\r\n _startZoom: function(event, data) {\r\n if (!isTouchEvent(event) || !data) {\r\n return\r\n }\r\n var state = this._zoomState = this._zoomState || {};\r\n var coords;\r\n var pointer2;\r\n if (state.pointer1 && state.pointer2) {\r\n return\r\n }\r\n if (void 0 === state.pointer1) {\r\n state.pointer1 = getPointerId(event) || 0;\r\n coords = getMultitouchEventCoords(event, state.pointer1);\r\n state.x1 = state.x1_0 = coords.x;\r\n state.y1 = state.y1_0 = coords.y\r\n }\r\n if (void 0 === state.pointer2) {\r\n pointer2 = getPointerId(event) || 1;\r\n if (pointer2 !== state.pointer1) {\r\n coords = getMultitouchEventCoords(event, pointer2);\r\n if (coords) {\r\n state.x2 = state.x2_0 = coords.x;\r\n state.y2 = state.y2_0 = coords.y;\r\n state.pointer2 = pointer2;\r\n state.ready = true;\r\n this._endDrag()\r\n }\r\n }\r\n }\r\n },\r\n _moveZoom: function(event) {\r\n var state = this._zoomState;\r\n var coords;\r\n if (!state || !isTouchEvent(event)) {\r\n return\r\n }\r\n if (void 0 !== state.pointer1) {\r\n coords = getMultitouchEventCoords(event, state.pointer1);\r\n if (coords) {\r\n state.x1 = coords.x;\r\n state.y1 = coords.y\r\n }\r\n }\r\n if (void 0 !== state.pointer2) {\r\n coords = getMultitouchEventCoords(event, state.pointer2);\r\n if (coords) {\r\n state.x2 = coords.x;\r\n state.y2 = coords.y\r\n }\r\n }\r\n },\r\n _endZoom: function(event) {\r\n var state = this._zoomState;\r\n var startDistance;\r\n var currentDistance;\r\n if (!state || !isTouchEvent(event)) {\r\n return\r\n }\r\n if (state.ready) {\r\n startDistance = getDistance(state.x1_0, state.y1_0, state.x2_0, state.y2_0);\r\n currentDistance = getDistance(state.x1, state.y1, state.x2, state.y2);\r\n this._fire(EVENT_ZOOM, {\r\n ratio: currentDistance / startDistance,\r\n x: (state.x1_0 + state.x2_0) / 2,\r\n y: (state.y1_0 + state.y2_0) / 2\r\n })\r\n }\r\n this._zoomState = null\r\n },\r\n _startHover: function(event, data) {\r\n this._doHover(event, data, true)\r\n },\r\n _moveHover: function(event, data) {\r\n this._doHover(event, data, false)\r\n },\r\n _doHover: function(event, data, isTouch) {\r\n if (this._dragState && this._dragState.active || this._zoomState && this._zoomState.ready) {\r\n this._cancelHover();\r\n return\r\n }\r\n if (isTouchEvent(event) !== isTouch || this._hoverTarget === event.target || this._hoverState && this._hoverState.data === data) {\r\n return\r\n }\r\n this._cancelHover();\r\n if (data) {\r\n this._hoverState = {\r\n data: data\r\n };\r\n this._fire(EVENT_HOVER_ON, {\r\n data: data\r\n })\r\n }\r\n this._hoverTarget = event.target\r\n },\r\n _cancelHover: function() {\r\n var state = this._hoverState;\r\n this._hoverState = this._hoverTarget = null;\r\n if (state) {\r\n this._fire(EVENT_HOVER_OFF, {\r\n data: state.data\r\n })\r\n }\r\n },\r\n _startFocus: function(event, data) {\r\n this._doFocus(event, data, true)\r\n },\r\n _moveFocus: function(event, data) {\r\n this._doFocus(event, data, false)\r\n },\r\n _doFocus: function(event, data, isTouch) {\r\n if (this._dragState && this._dragState.active || this._zoomState && this._zoomState.ready) {\r\n this._cancelFocus();\r\n return\r\n }\r\n if (isTouchEvent(event) !== isTouch) {\r\n return\r\n }\r\n this._focus.turnOff();\r\n data && this._focus.turnOn(data, getEventCoords(event))\r\n },\r\n _cancelFocus: function() {\r\n this._focus.cancel()\r\n },\r\n _createEventHandlers: function(DATA_KEY) {\r\n var that = this;\r\n that._docHandlers = {};\r\n that._rootHandlers = {};\r\n that._docHandlers[EVENTS.start] = function(event) {\r\n var isTouch = isTouchEvent(event);\r\n var data = getData(event);\r\n if (isTouch && !that._isTouchEnabled) {\r\n return\r\n }\r\n if (data) {\r\n event.preventDefault()\r\n }\r\n that._startClick(event, data);\r\n that._startDrag(event, data);\r\n that._startZoom(event, data);\r\n that._startHover(event, data);\r\n that._startFocus(event, data)\r\n };\r\n that._docHandlers[EVENTS.move] = function(event) {\r\n var isTouch = isTouchEvent(event);\r\n var data = getData(event);\r\n if (isTouch && !that._isTouchEnabled) {\r\n return\r\n }\r\n that._moveDrag(event, data);\r\n that._moveZoom(event, data);\r\n that._moveHover(event, data);\r\n that._moveFocus(event, data)\r\n };\r\n that._docHandlers[EVENTS.end] = function(event) {\r\n var isTouch = isTouchEvent(event);\r\n var data = getData(event);\r\n if (isTouch && !that._isTouchEnabled) {\r\n return\r\n }\r\n that._endClick(event, data);\r\n that._endDrag(event, data);\r\n that._endZoom(event, data)\r\n };\r\n that._rootHandlers[EVENTS.wheel] = function(event) {\r\n that._cancelFocus();\r\n if (!that._isWheelEnabled) {\r\n return\r\n }\r\n var data = getData(event);\r\n if (data) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n that._wheelZoom(event, data)\r\n }\r\n };\r\n that._wheelLock = {\r\n dir: 0\r\n };\r\n\r\n function getData(event) {\r\n var target = event.target;\r\n return (\"tspan\" === target.tagName ? target.parentNode : target)[DATA_KEY]\r\n }\r\n },\r\n _createProjectionHandlers: function(projection) {\r\n var that = this;\r\n projection.on({\r\n center: handler,\r\n zoom: handler\r\n });\r\n\r\n function handler() {\r\n that._cancelFocus()\r\n }\r\n },\r\n reset: function() {\r\n this._clickState = null;\r\n this._endDrag();\r\n this._cancelHover();\r\n this._cancelFocus()\r\n },\r\n setOptions: function(options) {\r\n this.reset();\r\n this._detachHandlers();\r\n this._isTouchEnabled = !!parseScalar(options.touchEnabled, true);\r\n this._isWheelEnabled = !!parseScalar(options.wheelEnabled, true);\r\n this._attachHandlers()\r\n },\r\n _detachHandlers: function() {\r\n if (this._isTouchEnabled) {\r\n this._root.css({\r\n \"touch-action\": \"\",\r\n \"-webkit-user-select\": \"\"\r\n }).off(_addNamespace(\"MSHoldVisual\", _NAME)).off(_addNamespace(\"contextmenu\", _NAME))\r\n }\r\n eventsEngine.off(domAdapter.getDocument(), this._docHandlers);\r\n this._root.off(this._rootHandlers)\r\n },\r\n _attachHandlers: function() {\r\n if (this._isTouchEnabled) {\r\n this._root.css({\r\n \"touch-action\": \"none\",\r\n \"-webkit-user-select\": \"none\"\r\n }).on(_addNamespace(\"MSHoldVisual\", _NAME), (function(event) {\r\n event.preventDefault()\r\n })).on(_addNamespace(\"contextmenu\", _NAME), (function(event) {\r\n isTouchEvent(event) && event.preventDefault()\r\n }))\r\n }\r\n eventsEngine.on(domAdapter.getDocument(), this._docHandlers);\r\n this._root.on(this._rootHandlers)\r\n }\r\n};\r\nFocus = function(fire) {\r\n var that = this;\r\n var _activeData = null;\r\n var _data = null;\r\n var _disabled = false;\r\n var _offTimer = null;\r\n var _x;\r\n var _y;\r\n that.dispose = function() {\r\n clearTimeout(_offTimer);\r\n that.turnOn = that.turnOff = that.cancel = that.dispose = that = fire = _activeData = _data = _offTimer = null\r\n };\r\n that.turnOn = function(data, coords) {\r\n if (data === _data && _disabled) {\r\n return\r\n }\r\n _disabled = false;\r\n _data = data;\r\n if (_activeData) {\r\n _x = coords.x;\r\n _y = coords.y;\r\n if (_data === _activeData) {\r\n fire(EVENT_FOCUS_MOVE, {\r\n data: _data,\r\n x: _x,\r\n y: _y\r\n });\r\n onCheck(true)\r\n } else {\r\n fire(EVENT_FOCUS_ON, {\r\n data: _data,\r\n x: _x,\r\n y: _y,\r\n done: onCheck\r\n })\r\n }\r\n } else {\r\n _x = coords.x;\r\n _y = coords.y;\r\n fire(EVENT_FOCUS_ON, {\r\n data: _data,\r\n x: _x,\r\n y: _y,\r\n done: onCheck\r\n })\r\n }\r\n\r\n function onCheck(result) {\r\n _disabled = !result;\r\n if (result) {\r\n _activeData = _data;\r\n clearTimeout(_offTimer);\r\n _offTimer = null\r\n }\r\n }\r\n };\r\n that.turnOff = function() {\r\n _data = null;\r\n if (_activeData && !_disabled) {\r\n _offTimer = _offTimer || setTimeout((function() {\r\n _offTimer = null;\r\n fire(EVENT_FOCUS_OFF, {\r\n data: _activeData\r\n });\r\n _activeData = null\r\n }), FOCUS_OFF_DELAY)\r\n }\r\n };\r\n that.cancel = function() {\r\n clearTimeout(_offTimer);\r\n if (_activeData) {\r\n fire(EVENT_FOCUS_OFF, {\r\n data: _activeData\r\n })\r\n }\r\n _activeData = _data = _offTimer = null\r\n }\r\n};\r\nmakeEventEmitter(Tracker);\r\n\r\nfunction getDistance(x1, y1, x2, y2) {\r\n return _sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))\r\n}\r\n\r\nfunction isTouchEvent(event) {\r\n var type = event.originalEvent.type;\r\n var pointerType = event.originalEvent.pointerType;\r\n return /^touch/.test(type) || /^MSPointer/.test(type) && 4 !== pointerType || /^pointer/.test(type) && \"mouse\" !== pointerType\r\n}\r\n\r\nfunction selectItem(flags, items) {\r\n var i = 0;\r\n var ii = flags.length;\r\n var item;\r\n for (; i < ii; ++i) {\r\n if (flags[i]) {\r\n item = items[i];\r\n break\r\n }\r\n }\r\n return _addNamespace(item || items[i], _NAME)\r\n}\r\n\r\nfunction setupEvents() {\r\n var flags = [navigator.pointerEnabled, navigator.msPointerEnabled, hasProperty(\"ontouchstart\")];\r\n EVENTS = {\r\n start: selectItem(flags, [\"pointerdown\", \"MSPointerDown\", \"touchstart mousedown\", \"mousedown\"]),\r\n move: selectItem(flags, [\"pointermove\", \"MSPointerMove\", \"touchmove mousemove\", \"mousemove\"]),\r\n end: selectItem(flags, [\"pointerup\", \"MSPointerUp\", \"touchend mouseup\", \"mouseup\"]),\r\n wheel: _addNamespace(wheelEventName, _NAME)\r\n }\r\n}\r\n\r\nfunction getEventCoords(event) {\r\n var originalEvent = event.originalEvent;\r\n var touch = originalEvent.touches && originalEvent.touches[0] || {};\r\n return {\r\n x: touch.pageX || originalEvent.pageX || event.pageX,\r\n y: touch.pageY || originalEvent.pageY || event.pageY\r\n }\r\n}\r\n\r\nfunction getPointerId(event) {\r\n return event.originalEvent.pointerId\r\n}\r\n\r\nfunction getMultitouchEventCoords(event, pointerId) {\r\n var originalEvent = event.originalEvent;\r\n if (void 0 !== originalEvent.pointerId) {\r\n originalEvent = originalEvent.pointerId === pointerId ? originalEvent : null\r\n } else {\r\n originalEvent = originalEvent.touches[pointerId]\r\n }\r\n return originalEvent ? {\r\n x: originalEvent.pageX || event.pageX,\r\n y: originalEvent.pageY || event.pageY\r\n } : null\r\n}\r\n\r\nfunction adjustWheelDelta(delta, lock) {\r\n if (0 === delta) {\r\n return 0\r\n }\r\n var _delta = _abs(delta);\r\n var sign = _round(delta / _delta);\r\n if (lock.dir && sign !== lock.dir) {\r\n return 0\r\n }\r\n lock.dir = sign;\r\n if (_delta < .1) {\r\n _delta = 0\r\n } else if (_delta < 1) {\r\n _delta = 1\r\n } else if (_delta > 4) {\r\n _delta = 4\r\n } else {\r\n _delta = _round(_delta)\r\n }\r\n return sign * _delta\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/data_exchanger.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nexport function DataExchanger() {\r\n this._store = {}\r\n}\r\nDataExchanger.prototype = {\r\n constructor: DataExchanger,\r\n dispose: function() {\r\n this._store = null;\r\n return this\r\n },\r\n _get: function(category, name) {\r\n var store = this._store[category] || (this._store[category] = {});\r\n return store[name] || (store[name] = {\r\n callbacks: Callbacks()\r\n })\r\n },\r\n set: function(category, name, data) {\r\n var item = this._get(category, name);\r\n item.data = data;\r\n item.callbacks.fire(data);\r\n return this\r\n },\r\n bind: function(category, name, callback) {\r\n var item = this._get(category, name);\r\n item.callbacks.add(callback);\r\n item.data && callback(item.data);\r\n return this\r\n },\r\n unbind: function(category, name, callback) {\r\n var item = this._get(category, name);\r\n item.callbacks.remove(callback);\r\n return this\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/legend.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nvar _extend = extend;\r\nvar _each = each;\r\nimport {\r\n Legend as _BaseLegend\r\n} from \"../components/legend\";\r\nvar unknownSource = {\r\n category: \"UNKNOWN\",\r\n name: \"UNKNOWN\"\r\n};\r\n\r\nfunction buildData(partition, values, field) {\r\n var i;\r\n var ii = values.length;\r\n var list = [];\r\n var item;\r\n for (i = 0; i < ii; ++i) {\r\n list[i] = item = {\r\n start: partition[i],\r\n end: partition[i + 1],\r\n index: i\r\n };\r\n item[field] = values[i];\r\n item.states = {\r\n normal: {\r\n fill: item.color\r\n }\r\n };\r\n item.visible = true\r\n }\r\n return list\r\n}\r\nvar Legend = function(parameters) {\r\n var that = this;\r\n that._params = parameters;\r\n that._root = parameters.renderer.g().attr({\r\n class: \"dxm-legend\"\r\n }).linkOn(parameters.container, {\r\n name: \"legend\",\r\n after: \"legend-base\"\r\n }).enableLinks().linkAppend();\r\n parameters.layoutControl.addItem(that);\r\n _BaseLegend.call(that, {\r\n renderer: parameters.renderer,\r\n widget: parameters.widget,\r\n group: that._root,\r\n backgroundClass: null,\r\n itemsGroupClass: null,\r\n textField: \"text\",\r\n getFormatObject: function(data) {\r\n return data\r\n }\r\n });\r\n that._onDataChanged = function(data) {\r\n that._updateData(data)\r\n }\r\n};\r\nLegend.prototype = _extend(clone(_BaseLegend.prototype), {\r\n constructor: Legend,\r\n dispose: function() {\r\n var that = this;\r\n that._params.layoutControl.removeItem(that);\r\n that._unbindData();\r\n that._root.linkRemove().linkOff();\r\n that._params = that._root = that._onDataChanged = null;\r\n return _BaseLegend.prototype.dispose.apply(that, arguments)\r\n },\r\n resize: function(size) {\r\n this._params.notifyDirty();\r\n if (null === size) {\r\n this.erase()\r\n } else {\r\n this.draw(size.width, size.height)\r\n }\r\n this._params.notifyReady()\r\n },\r\n locate: _BaseLegend.prototype.shift,\r\n _updateData: function(data) {\r\n this._options.defaultColor = data && data.defaultColor;\r\n this.update(data ? buildData(data.partition, data.values, this._dataName) : [], this._options, this._params.themeManager.theme(\"legend\").title);\r\n this.updateLayout()\r\n },\r\n _unbindData: function() {\r\n if (this._dataCategory) {\r\n this._params.dataExchanger.unbind(this._dataCategory, this._dataName, this._onDataChanged)\r\n }\r\n },\r\n _bindData: function(arg) {\r\n this._params.dataExchanger.bind(this._dataCategory = arg.category, this._dataName = arg.name, this._onDataChanged)\r\n },\r\n setOptions: function(options) {\r\n this.update(this._data, options, this._params.themeManager.theme(\"legend\").title);\r\n this._unbindData();\r\n var source = options.source;\r\n this._bindData(source ? {\r\n category: source.layer,\r\n name: source.grouping\r\n } : unknownSource);\r\n this.updateLayout();\r\n return this\r\n }\r\n});\r\nexport function LegendsControl(parameters) {\r\n this._params = parameters;\r\n this._items = [];\r\n parameters.container.virtualLink(\"legend-base\")\r\n}\r\nLegendsControl.prototype = {\r\n constructor: LegendsControl,\r\n dispose: function() {\r\n _each(this._items, (function(_, item) {\r\n item.dispose()\r\n }));\r\n this._params = this._items = null\r\n },\r\n setOptions: function(options) {\r\n var optionList = options && options.length ? options : [];\r\n var items = this._items;\r\n var i;\r\n var ii = optionList.length;\r\n var params = this._params;\r\n var theme = params.themeManager.theme(\"legend\");\r\n for (i = items.length; i < ii; ++i) {\r\n items[i] = new Legend(params)\r\n }\r\n for (i = items.length - 1; i >= ii; --i) {\r\n items[i].dispose();\r\n items.splice(i, 1)\r\n }\r\n params.layoutControl.suspend();\r\n for (i = 0; i < ii; ++i) {\r\n items[i].setOptions(_extend(true, {}, theme, optionList[i]))\r\n }\r\n params.layoutControl.resume()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/layout.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar _round = Math.round;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _each = each;\r\nvar horizontalAlignmentMap = {\r\n left: 0,\r\n center: 1,\r\n right: 2\r\n};\r\nvar verticalAlignmentMap = {\r\n top: 0,\r\n bottom: 1\r\n};\r\n\r\nfunction getCellIndex(options) {\r\n return 3 * verticalAlignmentMap[options.verticalAlignment] + horizontalAlignmentMap[options.horizontalAlignment]\r\n}\r\n\r\nfunction createCells(canvas, items) {\r\n var hStep = (canvas.right - canvas.left) / 3;\r\n var vStep = (canvas.bottom - canvas.top) / 2;\r\n var h1 = canvas.left;\r\n var h2 = _round(h1 + hStep);\r\n var h3 = _round(h1 + hStep + hStep);\r\n var h4 = canvas.right;\r\n var v1 = canvas.top;\r\n var v2 = _round(v1 + vStep);\r\n var v3 = canvas.bottom;\r\n var cells = [{\r\n rect: [h1, v1, h2, v2]\r\n }, {\r\n rect: [h2, v1, h3, v2],\r\n center: true\r\n }, {\r\n rect: [h3, v1, h4, v2],\r\n horInversion: true\r\n }, {\r\n rect: [h1, v2, h2, v3],\r\n verInversion: true\r\n }, {\r\n rect: [h2, v2, h3, v3],\r\n center: true,\r\n verInversion: true\r\n }, {\r\n rect: [h3, v2, h4, v3],\r\n horInversion: true,\r\n verInversion: true\r\n }];\r\n var itemsList = [\r\n [],\r\n [],\r\n [],\r\n [],\r\n [],\r\n []\r\n ];\r\n _each(items, (function(_, item) {\r\n var options = item.getLayoutOptions();\r\n if (options) {\r\n itemsList[getCellIndex(options)].push({\r\n item: item,\r\n width: options.width,\r\n height: options.height\r\n })\r\n }\r\n }));\r\n _each(cells, (function(i, cell) {\r\n if (itemsList[i].length) {\r\n cell.items = itemsList[i]\r\n } else {\r\n if (cell.center) {\r\n cell.rect[0] = cell.rect[2] = (cell.rect[0] + cell.rect[2]) / 2\r\n } else {\r\n cell.rect[cell.horInversion ? 0 : 2] = cell.rect[cell.horInversion ? 2 : 0]\r\n }\r\n cell.rect[cell.verInversion ? 1 : 3] = cell.rect[cell.verInversion ? 3 : 1]\r\n }\r\n }));\r\n return cells\r\n}\r\n\r\nfunction adjustCellSizes(cells) {\r\n _each([0, 1, 2, 3, 4, 5], (function(_, index) {\r\n var cell = cells[index];\r\n var otherCell = cells[(index + 3) % 6];\r\n if (cell.items) {\r\n if (!otherCell.items) {\r\n cell.rect[1] = _min(cell.rect[1], otherCell.rect[3]);\r\n cell.rect[3] = _max(cell.rect[3], otherCell.rect[1])\r\n }\r\n }\r\n }));\r\n _each([1, 4], (function(_, index) {\r\n var cell = cells[index];\r\n var otherCell1 = cells[index - 1];\r\n var otherCell2 = cells[index + 1];\r\n var size1;\r\n var size2;\r\n if (cell.items) {\r\n if (!otherCell1.items && !otherCell2.items) {\r\n size1 = cell.rect[0] - otherCell1.rect[2];\r\n size2 = otherCell2.rect[0] - cell.rect[2];\r\n if (size1 > size2) {\r\n if (size1 / size2 >= 2) {\r\n cell.rect[0] -= size1;\r\n cell.right = true\r\n } else {\r\n cell.rect[0] -= size2;\r\n cell.rect[2] += size2\r\n }\r\n } else if (size2 / size1 >= 2) {\r\n cell.rect[2] += size2;\r\n cell.center = null\r\n } else {\r\n cell.rect[0] -= size1;\r\n cell.rect[2] += size1\r\n }\r\n }\r\n } else {\r\n if (otherCell1.items) {\r\n otherCell1.rect[2] = (cell.rect[0] + cell.rect[2]) / 2\r\n }\r\n if (otherCell2.items) {\r\n otherCell2.rect[0] = (cell.rect[0] + cell.rect[2]) / 2\r\n }\r\n }\r\n }))\r\n}\r\n\r\nfunction adjustCellsAndApplyLayout(cells, forceMode) {\r\n var hasHiddenItems = false;\r\n adjustCellSizes(cells);\r\n _each(cells, (function(_, cell) {\r\n if (cell.items) {\r\n hasHiddenItems = applyCellLayout(cell, forceMode) || hasHiddenItems\r\n }\r\n }));\r\n return hasHiddenItems\r\n}\r\n\r\nfunction applyCellLayout(cell, forceMode) {\r\n var cellRect = cell.rect;\r\n var cellWidth = cellRect[2] - cellRect[0];\r\n var cellHeight = cellRect[3] - cellRect[1];\r\n var xOffset = 0;\r\n var yOffset = 0;\r\n var currentHeight = 0;\r\n var totalL = cellRect[2];\r\n var totalT = cellRect[3];\r\n var totalR = cellRect[0];\r\n var totalB = cellRect[1];\r\n var moves = [];\r\n var hasHiddenItems = false;\r\n _each(cell.items, (function(_, item) {\r\n if (item.width > cellWidth || item.height > cellHeight) {\r\n moves.push(null);\r\n hasHiddenItems = true;\r\n return forceMode || false\r\n }\r\n if (xOffset + item.width > cellWidth) {\r\n yOffset += currentHeight;\r\n xOffset = currentHeight = 0\r\n }\r\n if (yOffset + item.height > cellHeight) {\r\n moves.push(null);\r\n hasHiddenItems = true;\r\n return forceMode || false\r\n }\r\n currentHeight = _max(currentHeight, item.height);\r\n var dx = cell.horInversion ? cellRect[2] - item.width - xOffset : cellRect[0] + xOffset;\r\n var dy = cell.verInversion ? cellRect[3] - item.height - yOffset : cellRect[1] + yOffset;\r\n xOffset += item.width;\r\n totalL = _min(totalL, dx);\r\n totalT = _min(totalT, dy);\r\n totalR = _max(totalR, dx + item.width);\r\n totalB = _max(totalB, dy + item.height);\r\n moves.push([dx, dy])\r\n }));\r\n if (forceMode || !hasHiddenItems) {\r\n xOffset = 0;\r\n if (cell.right) {\r\n xOffset = cellRect[2] - cellRect[0] - totalR + totalL\r\n } else if (cell.center) {\r\n xOffset = _round((cellRect[2] - cellRect[0] - totalR + totalL) / 2)\r\n }\r\n _each(cell.items, (function(i, item) {\r\n var move = moves[i];\r\n if (move) {\r\n item.item.locate(move[0] + xOffset, move[1])\r\n } else {\r\n item.item.resize(null)\r\n }\r\n }));\r\n cell.rect = [totalL, totalT, totalR, totalB];\r\n cell.items = null\r\n }\r\n return hasHiddenItems\r\n}\r\n\r\nfunction applyLayout(canvas, items) {\r\n var cells = createCells(canvas, items);\r\n if (adjustCellsAndApplyLayout(cells)) {\r\n adjustCellsAndApplyLayout(cells, true)\r\n }\r\n}\r\nexport function LayoutControl(widget) {\r\n var that = this;\r\n that._items = [];\r\n that._suspended = 0;\r\n that._widget = widget;\r\n that._updateLayout = function() {\r\n that._update()\r\n }\r\n}\r\nLayoutControl.prototype = {\r\n constructor: LayoutControl,\r\n dispose: function() {\r\n this._items = this._updateLayout = null\r\n },\r\n setSize: function(canvas) {\r\n this._canvas = canvas;\r\n this._update()\r\n },\r\n suspend: function() {\r\n ++this._suspended\r\n },\r\n resume: function() {\r\n if (0 === --this._suspended) {\r\n this._update()\r\n }\r\n },\r\n addItem: function(item) {\r\n this._items.push(item);\r\n item.updateLayout = this._updateLayout\r\n },\r\n removeItem: function(item) {\r\n var index = this._items.indexOf(item);\r\n this._items.splice(index, 1);\r\n item.updateLayout = null\r\n },\r\n _update: function() {\r\n var canvas;\r\n if (0 === this._suspended) {\r\n canvas = this._canvas;\r\n _each(this._items, (function(_, item) {\r\n item.resize(canvas)\r\n }));\r\n this._widget.resolveItemsDeferred(this._items.filter(el => el.getTemplatesGroups && el.getTemplatesDef));\r\n applyLayout({\r\n left: canvas.left,\r\n top: canvas.top,\r\n right: canvas.width + canvas.left,\r\n bottom: canvas.height + canvas.top\r\n }, this._items)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/map_layer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n isFunction as _isFunction,\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n parseScalar as _parseScalar,\r\n patchFontOptions as _patchFontOptions,\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nvar _noop = noop;\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar _concat = Array.prototype.concat;\r\nvar TYPE_AREA = \"area\";\r\nvar TYPE_LINE = \"line\";\r\nvar TYPE_MARKER = \"marker\";\r\nvar STATE_DEFAULT = 0;\r\nvar STATE_HOVERED = 1;\r\nvar STATE_SELECTED = 2;\r\nvar STATE_TO_INDEX = [0, 1, 2, 2];\r\nvar TOLERANCE = 1;\r\nvar SELECTIONS = {\r\n none: null,\r\n single: -1,\r\n multiple: NaN\r\n};\r\nvar _isArray = Array.isArray;\r\nvar _Number = Number;\r\nvar _String = String;\r\nvar _abs = Math.abs;\r\nvar _round = Math.round;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _sqrt = Math.sqrt;\r\nexport function getMaxBound(arr) {\r\n return arr.reduce((a, c) => c ? [_min(a[0], c[0]), _min(a[1], c[1]), _max(a[2], c[2]), _max(a[3], c[3])] : a, arr[0])\r\n}\r\n\r\nfunction getSelection(selectionMode) {\r\n var selection = _normalizeEnum(selectionMode);\r\n selection = selection in SELECTIONS ? SELECTIONS[selection] : SELECTIONS.single;\r\n if (null !== selection) {\r\n selection = {\r\n state: {},\r\n single: selection\r\n }\r\n }\r\n return selection\r\n}\r\n\r\nfunction getName(opt, index) {\r\n return (opt[index] || {}).name\r\n}\r\n\r\nfunction EmptySource() {}\r\nEmptySource.prototype.count = function() {\r\n return 0\r\n};\r\n\r\nfunction ArraySource(raw) {\r\n this.raw = raw\r\n}\r\nArraySource.prototype = {\r\n constructor: ArraySource,\r\n count: function() {\r\n return this.raw.length\r\n },\r\n item: function(index) {\r\n return this.raw[index]\r\n },\r\n geometry: function(item) {\r\n return {\r\n coordinates: item.coordinates\r\n }\r\n },\r\n attributes: function(item) {\r\n return item.attributes\r\n },\r\n getBBox: function(index) {\r\n return 0 === arguments.length ? void 0 : this.raw[index].bbox\r\n }\r\n};\r\n\r\nfunction GeoJsonSource(raw) {\r\n this.raw = raw\r\n}\r\nGeoJsonSource.prototype = {\r\n constructor: GeoJsonSource,\r\n count: function() {\r\n return this.raw.features.length\r\n },\r\n item: function(index) {\r\n return this.raw.features[index]\r\n },\r\n geometry: function(item) {\r\n return item.geometry\r\n },\r\n attributes: function(item) {\r\n return item.properties\r\n },\r\n getBBox: function(index) {\r\n return 0 === arguments.length ? this.raw.bbox : this.raw.features[index].bbox\r\n }\r\n};\r\n\r\nfunction isGeoJsonObject(obj) {\r\n return _isArray(obj.features)\r\n}\r\n\r\nfunction unwrapFromDataSource(source) {\r\n var sourceType;\r\n if (source) {\r\n if (isGeoJsonObject(source)) {\r\n sourceType = GeoJsonSource\r\n } else if (1 === source.length && source[0] && isGeoJsonObject(source[0])) {\r\n sourceType = GeoJsonSource;\r\n source = source[0]\r\n } else if (_isArray(source)) {\r\n sourceType = ArraySource\r\n }\r\n }\r\n sourceType = sourceType || EmptySource;\r\n return new sourceType(source)\r\n}\r\n\r\nfunction wrapToDataSource(option) {\r\n return option ? isGeoJsonObject(option) ? [option] : option : []\r\n}\r\n\r\nfunction customizeHandles(proxies, callback, widget) {\r\n callback.call(widget, proxies)\r\n}\r\n\r\nfunction setAreaLabelVisibility(label) {\r\n label.text.attr({\r\n visibility: label.size[0] / label.spaceSize[0] < TOLERANCE && label.size[1] / label.spaceSize[1] < TOLERANCE ? null : \"hidden\"\r\n })\r\n}\r\n\r\nfunction setLineLabelVisibility(label) {\r\n label.text.attr({\r\n visibility: label.size[0] / label.spaceSize[0] < TOLERANCE || label.size[1] / label.spaceSize[1] < TOLERANCE ? null : \"hidden\"\r\n })\r\n}\r\n\r\nfunction getDataValue(proxy, dataField) {\r\n return proxy.attribute(dataField)\r\n}\r\nvar TYPE_TO_TYPE_MAP = {\r\n Point: TYPE_MARKER,\r\n MultiPoint: TYPE_LINE,\r\n LineString: TYPE_LINE,\r\n MultiLineString: TYPE_LINE,\r\n Polygon: TYPE_AREA,\r\n MultiPolygon: TYPE_AREA\r\n};\r\n\r\nfunction pick(a, b) {\r\n return void 0 !== a ? a : b\r\n}\r\n\r\nfunction guessTypeByData(sample) {\r\n var type = TYPE_TO_TYPE_MAP[sample.type];\r\n var coordinates = sample.coordinates;\r\n if (!type) {\r\n if (\"number\" === typeof coordinates[0]) {\r\n type = TYPE_MARKER\r\n } else if (\"number\" === typeof coordinates[0][0]) {\r\n type = TYPE_LINE\r\n } else {\r\n type = TYPE_AREA\r\n }\r\n }\r\n return type\r\n}\r\nvar emptyStrategy = {\r\n setup: _noop,\r\n reset: _noop,\r\n arrange: _noop,\r\n updateGrouping: _noop,\r\n getDefaultColor: _noop\r\n};\r\nvar strategiesByType = {};\r\nvar strategiesByGeometry = {};\r\nvar strategiesByElementType = {};\r\nvar groupByColor;\r\nvar groupBySize;\r\nvar selectStrategy = function(options, data) {\r\n var type = _normalizeEnum(options.type);\r\n var elementType = _normalizeEnum(options.elementType);\r\n var sample;\r\n var strategy = _extend({}, emptyStrategy);\r\n if (data.count() > 0) {\r\n sample = data.geometry(data.item(0));\r\n type = strategiesByType[type] ? type : guessTypeByData(sample);\r\n _extend(strategy, strategiesByType[type]);\r\n strategy.fullType = strategy.type = type;\r\n if (strategiesByGeometry[type]) {\r\n _extend(strategy, strategiesByGeometry[type](sample))\r\n }\r\n if (strategiesByElementType[type]) {\r\n elementType = strategiesByElementType[type][elementType] ? elementType : strategiesByElementType[type]._default;\r\n _extend(strategy, strategiesByElementType[type][elementType]);\r\n strategy.elementType = elementType;\r\n strategy.fullType += \":\" + elementType\r\n }\r\n }\r\n return strategy\r\n};\r\n\r\nfunction applyElementState(figure, styles, state, field) {\r\n figure[field].attr(styles[field][state])\r\n}\r\nstrategiesByType[TYPE_AREA] = {\r\n projectLabel: projectAreaLabel,\r\n transform: transformPointList,\r\n transformLabel: transformAreaLabel,\r\n draw: function(context, figure, data) {\r\n figure.root = context.renderer.path([], \"area\").data(context.dataKey, data)\r\n },\r\n refresh: _noop,\r\n getLabelOffset: function(label) {\r\n setAreaLabelVisibility(label);\r\n return [0, 0]\r\n },\r\n getStyles: function(settings) {\r\n var color = settings.color || null;\r\n var borderColor = settings.borderColor || null;\r\n var borderWidth = pick(settings.borderWidth, null);\r\n var opacity = pick(settings.opacity, null);\r\n return {\r\n root: [{\r\n class: \"dxm-area\",\r\n stroke: borderColor,\r\n \"stroke-width\": borderWidth,\r\n fill: color,\r\n opacity: opacity\r\n }, {\r\n class: \"dxm-area dxm-area-hovered\",\r\n stroke: settings.hoveredBorderColor || borderColor,\r\n \"stroke-width\": pick(settings.hoveredBorderWidth, borderWidth),\r\n fill: settings.hoveredColor || color,\r\n opacity: pick(settings.hoveredOpacity, opacity)\r\n }, {\r\n class: \"dxm-area dxm-area-selected\",\r\n stroke: settings.selectedBorderColor || borderColor,\r\n \"stroke-width\": pick(settings.selectedBorderWidth, borderWidth),\r\n fill: settings.selectedColor || color,\r\n opacity: pick(settings.selectedOpacity, opacity)\r\n }]\r\n }\r\n },\r\n setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"root\")\r\n },\r\n hasLabelsGroup: true,\r\n updateGrouping: function(context) {\r\n groupByColor(context)\r\n },\r\n getDefaultColor: _noop\r\n};\r\nstrategiesByType[TYPE_LINE] = {\r\n projectLabel: projectLineLabel,\r\n transform: transformPointList,\r\n transformLabel: transformLineLabel,\r\n draw: function(context, figure, data) {\r\n figure.root = context.renderer.path([], \"line\").data(context.dataKey, data)\r\n },\r\n refresh: _noop,\r\n getLabelOffset: function(label) {\r\n setLineLabelVisibility(label);\r\n return [0, 0]\r\n },\r\n getStyles: function(settings) {\r\n var color = settings.color || settings.borderColor || null;\r\n var width = pick(settings.borderWidth, null);\r\n var opacity = pick(settings.opacity, null);\r\n return {\r\n root: [{\r\n class: \"dxm-line\",\r\n stroke: color,\r\n \"stroke-width\": width,\r\n opacity: opacity\r\n }, {\r\n class: \"dxm-line dxm-line-hovered\",\r\n stroke: settings.hoveredColor || settings.hoveredBorderColor || color,\r\n \"stroke-width\": pick(settings.hoveredBorderWidth, width),\r\n opacity: pick(settings.hoveredOpacity, opacity)\r\n }, {\r\n class: \"dxm-line dxm-line-selected\",\r\n stroke: settings.selectedColor || settings.selectedBorderColor || color,\r\n \"stroke-width\": pick(settings.selectedBorderWidth, width),\r\n opacity: pick(settings.selectedOpacity, opacity)\r\n }]\r\n }\r\n },\r\n setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"root\")\r\n },\r\n hasLabelsGroup: true,\r\n updateGrouping: function(context) {\r\n groupByColor(context)\r\n },\r\n getDefaultColor: _noop\r\n};\r\nstrategiesByType[TYPE_MARKER] = {\r\n project: projectPoint,\r\n transform: transformPoint,\r\n draw: function(context, figure, data) {\r\n figure.root = context.renderer.g();\r\n this._draw(context, figure, data)\r\n },\r\n refresh: _noop,\r\n hasLabelsGroup: false,\r\n getLabelOffset: function(label, settings) {\r\n return [_round((label.size[0] + _max(settings.size || 0, 0)) / 2) + 2, 0]\r\n },\r\n getStyles: function(settings) {\r\n var styles = {\r\n root: [{\r\n class: \"dxm-marker\"\r\n }, {\r\n class: \"dxm-marker dxm-marker-hovered\"\r\n }, {\r\n class: \"dxm-marker dxm-marker-selected\"\r\n }]\r\n };\r\n this._getStyles(styles, settings);\r\n return styles\r\n },\r\n setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"root\");\r\n this._setState(figure, styles, state)\r\n },\r\n updateGrouping: function(context) {\r\n groupByColor(context);\r\n groupBySize(context)\r\n },\r\n getDefaultColor: function(ctx, palette) {\r\n return ctx.params.themeManager.getAccentColor(palette)\r\n }\r\n};\r\nstrategiesByGeometry[TYPE_AREA] = function(sample) {\r\n return {\r\n project: (projection, coordinates) => coordinates[0] && coordinates[0][0] && coordinates[0][0][0] && \"number\" === typeof coordinates[0][0][0][0] ? projectMultiPolygon(projection, coordinates) : projectPolygon(projection, coordinates)\r\n }\r\n};\r\nstrategiesByGeometry[TYPE_LINE] = function(sample) {\r\n var coordinates = sample.coordinates;\r\n return {\r\n project: coordinates[0] && coordinates[0][0] && \"number\" === typeof coordinates[0][0][0] ? projectPolygon : projectLineString\r\n }\r\n};\r\nstrategiesByElementType[TYPE_MARKER] = {\r\n _default: \"dot\",\r\n dot: {\r\n setup: function(context) {\r\n context.filter = context.renderer.shadowFilter(\"-40%\", \"-40%\", \"180%\", \"200%\", 0, 1, 1, \"#000000\", .2)\r\n },\r\n reset: function(context) {\r\n context.filter.dispose();\r\n context.filter = null\r\n },\r\n _draw: function(ctx, figure, data) {\r\n figure.back = ctx.renderer.circle().sharp().data(ctx.dataKey, data).append(figure.root);\r\n figure.dot = ctx.renderer.circle().sharp().data(ctx.dataKey, data).append(figure.root)\r\n },\r\n refresh: function(ctx, figure, data, proxy, settings) {\r\n figure.dot.attr({\r\n filter: settings.shadow ? ctx.filter.id : null\r\n })\r\n },\r\n _getStyles: function(styles, style) {\r\n var size = style.size > 0 ? _Number(style.size) : 0;\r\n var hoveredSize = size;\r\n var selectedSize = size + (style.selectedStep > 0 ? _Number(style.selectedStep) : 0);\r\n var hoveredBackSize = hoveredSize + (style.backStep > 0 ? _Number(style.backStep) : 0);\r\n var selectedBackSize = selectedSize + (style.backStep > 0 ? _Number(style.backStep) : 0);\r\n var color = style.color || null;\r\n var borderColor = style.borderColor || null;\r\n var borderWidth = pick(style.borderWidth, null);\r\n var opacity = pick(style.opacity, null);\r\n var backColor = style.backColor || null;\r\n var backOpacity = pick(style.backOpacity, null);\r\n styles.dot = [{\r\n r: size / 2,\r\n stroke: borderColor,\r\n \"stroke-width\": borderWidth,\r\n fill: color,\r\n opacity: opacity\r\n }, {\r\n r: hoveredSize / 2,\r\n stroke: style.hoveredBorderColor || borderColor,\r\n \"stroke-width\": pick(style.hoveredBorderWidth, borderWidth),\r\n fill: style.hoveredColor || color,\r\n opacity: pick(style.hoveredOpacity, opacity)\r\n }, {\r\n r: selectedSize / 2,\r\n stroke: style.selectedBorderColor || borderColor,\r\n \"stroke-width\": pick(style.selectedBorderWidth, borderWidth),\r\n fill: style.selectedColor || color,\r\n opacity: pick(style.selectedOpacity, opacity)\r\n }];\r\n styles.back = [{\r\n r: size / 2,\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: backColor,\r\n opacity: backOpacity\r\n }, {\r\n r: hoveredBackSize / 2,\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: backColor,\r\n opacity: backOpacity\r\n }, {\r\n r: selectedBackSize / 2,\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: backColor,\r\n opacity: backOpacity\r\n }]\r\n },\r\n _setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"dot\");\r\n applyElementState(figure, styles, state, \"back\")\r\n }\r\n },\r\n bubble: {\r\n _draw: function(ctx, figure, data) {\r\n figure.bubble = ctx.renderer.circle().sharp().data(ctx.dataKey, data).append(figure.root)\r\n },\r\n refresh: function(ctx, figure, data, proxy, settings) {\r\n figure.bubble.attr({\r\n r: settings.size / 2\r\n })\r\n },\r\n _getStyles: function(styles, style) {\r\n var color = style.color || null;\r\n var borderColor = style.borderColor || null;\r\n var borderWidth = pick(style.borderWidth, null);\r\n var opacity = pick(style.opacity, null);\r\n styles.bubble = [{\r\n stroke: borderColor,\r\n \"stroke-width\": borderWidth,\r\n fill: color,\r\n opacity: opacity\r\n }, {\r\n stroke: style.hoveredBorderColor || borderColor,\r\n \"stroke-width\": pick(style.hoveredBorderWidth, borderWidth),\r\n fill: style.hoveredColor || style.color,\r\n opacity: pick(style.hoveredOpacity, opacity)\r\n }, {\r\n stroke: style.selectedBorderColor || borderColor,\r\n \"stroke-width\": pick(style.selectedBorderWidth, borderWidth),\r\n fill: style.selectedColor || style.color,\r\n opacity: pick(style.selectedOpacity, opacity)\r\n }]\r\n },\r\n _setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"bubble\")\r\n },\r\n arrange: function(context, handles) {\r\n var values = [];\r\n var i;\r\n var ii = values.length = handles.length;\r\n var settings = context.settings;\r\n var dataField = settings.dataField;\r\n var minSize = settings.minSize > 0 ? _Number(settings.minSize) : 0;\r\n var maxSize = settings.maxSize > minSize ? _Number(settings.maxSize) : minSize;\r\n if (settings.sizeGroups) {\r\n return\r\n }\r\n for (i = 0; i < ii; ++i) {\r\n values[i] = _max(getDataValue(handles[i].proxy, dataField) || 0, 0)\r\n }\r\n var minValue = _min.apply(null, values);\r\n var maxValue = _max.apply(null, values);\r\n var deltaValue = maxValue - minValue || 1;\r\n var deltaSize = maxSize - minSize;\r\n for (i = 0; i < ii; ++i) {\r\n handles[i]._settings.size = minSize + deltaSize * (values[i] - minValue) / deltaValue\r\n }\r\n },\r\n updateGrouping: function(context) {\r\n var dataField = context.settings.dataField;\r\n strategiesByType[TYPE_MARKER].updateGrouping(context);\r\n groupBySize(context, (function(proxy) {\r\n return getDataValue(proxy, dataField)\r\n }))\r\n }\r\n },\r\n pie: {\r\n _draw: function(ctx, figure, data) {\r\n figure.pie = ctx.renderer.g().append(figure.root);\r\n figure.border = ctx.renderer.circle().sharp().data(ctx.dataKey, data).append(figure.root)\r\n },\r\n refresh: function(ctx, figure, data, proxy, settings) {\r\n var values = getDataValue(proxy, ctx.settings.dataField) || [];\r\n var colors = settings._colors;\r\n var sum = 0;\r\n var pie = figure.pie;\r\n var renderer = ctx.renderer;\r\n var dataKey = ctx.dataKey;\r\n var r = (settings.size > 0 ? _Number(settings.size) : 0) / 2;\r\n var start = 90;\r\n var end = start;\r\n var zeroSum = false;\r\n sum = values.reduce((function(total, item) {\r\n return total + (item || 0)\r\n }), 0);\r\n if (0 === sum) {\r\n zeroSum = true;\r\n sum = 360 / values.length\r\n }\r\n values.forEach((function(item, i) {\r\n start = end;\r\n end += zeroSum ? sum : (item || 0) / sum * 360;\r\n renderer.arc(0, 0, 0, r, start, end).attr({\r\n \"stroke-linejoin\": \"round\",\r\n fill: colors[i]\r\n }).data(dataKey, data).append(pie)\r\n }));\r\n figure.border.attr({\r\n r: r\r\n })\r\n },\r\n _getStyles: function(styles, style) {\r\n var opacity = pick(style.opacity, null);\r\n var borderColor = style.borderColor || null;\r\n var borderWidth = pick(style.borderWidth, null);\r\n styles.pie = [{\r\n opacity: opacity\r\n }, {\r\n opacity: pick(style.hoveredOpacity, opacity)\r\n }, {\r\n opacity: pick(style.selectedOpacity, opacity)\r\n }];\r\n styles.border = [{\r\n stroke: borderColor,\r\n \"stroke-width\": borderWidth\r\n }, {\r\n stroke: style.hoveredBorderColor || borderColor,\r\n \"stroke-width\": pick(style.hoveredBorderWidth, borderWidth)\r\n }, {\r\n stroke: style.selectedBorderColor || borderColor,\r\n \"stroke-width\": pick(style.selectedBorderWidth, borderWidth)\r\n }]\r\n },\r\n _setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"pie\");\r\n applyElementState(figure, styles, state, \"border\")\r\n },\r\n arrange: function(context, handles) {\r\n var i;\r\n var ii = handles.length;\r\n var dataField = context.settings.dataField;\r\n var values;\r\n var count = 0;\r\n var palette;\r\n for (i = 0; i < ii; ++i) {\r\n values = getDataValue(handles[i].proxy, dataField);\r\n if (values && values.length > count) {\r\n count = values.length\r\n }\r\n }\r\n if (count > 0) {\r\n palette = context.params.themeManager.createPalette(context.settings.palette, {\r\n useHighlight: true,\r\n extensionMode: \"alternate\"\r\n });\r\n values = palette.generateColors(count);\r\n context.settings._colors = values;\r\n context.grouping.color = {\r\n callback: _noop,\r\n field: \"\",\r\n partition: [],\r\n values: []\r\n };\r\n context.params.dataExchanger.set(context.name, \"color\", {\r\n partition: [],\r\n values: values\r\n })\r\n }\r\n }\r\n },\r\n image: {\r\n _draw: function(ctx, figure, data) {\r\n figure.image = ctx.renderer.image(null, null, null, null, null, \"center\").attr({\r\n \"pointer-events\": \"visible\"\r\n }).data(ctx.dataKey, data).append(figure.root)\r\n },\r\n refresh: function(ctx, figure, data, proxy) {\r\n figure.image.attr({\r\n href: getDataValue(proxy, ctx.settings.dataField)\r\n })\r\n },\r\n _getStyles: function(styles, style) {\r\n var size = style.size > 0 ? _Number(style.size) : 0;\r\n var hoveredSize = size + (style.hoveredStep > 0 ? _Number(style.hoveredStep) : 0);\r\n var selectedSize = size + (style.selectedStep > 0 ? _Number(style.selectedStep) : 0);\r\n var opacity = pick(style.opacity, null);\r\n styles.image = [{\r\n x: -size / 2,\r\n y: -size / 2,\r\n width: size,\r\n height: size,\r\n opacity: opacity\r\n }, {\r\n x: -hoveredSize / 2,\r\n y: -hoveredSize / 2,\r\n width: hoveredSize,\r\n height: hoveredSize,\r\n opacity: pick(style.hoveredOpacity, opacity)\r\n }, {\r\n x: -selectedSize / 2,\r\n y: -selectedSize / 2,\r\n width: selectedSize,\r\n height: selectedSize,\r\n opacity: pick(style.selectedOpacity, opacity)\r\n }]\r\n },\r\n _setState: function(figure, styles, state) {\r\n applyElementState(figure, styles, state, \"image\")\r\n }\r\n }\r\n};\r\n\r\nfunction projectPoint(projection, coordinates) {\r\n return projection.project(coordinates)\r\n}\r\n\r\nfunction projectPointList(projection, coordinates) {\r\n var output = [];\r\n var i;\r\n var ii = output.length = coordinates.length;\r\n for (i = 0; i < ii; ++i) {\r\n output[i] = projection.project(coordinates[i])\r\n }\r\n return output\r\n}\r\n\r\nfunction projectLineString(projection, coordinates) {\r\n return [projectPointList(projection, coordinates)]\r\n}\r\n\r\nfunction projectPolygon(projection, coordinates) {\r\n var output = [];\r\n var i;\r\n var ii = output.length = coordinates.length;\r\n for (i = 0; i < ii; ++i) {\r\n output[i] = projectPointList(projection, coordinates[i])\r\n }\r\n return output\r\n}\r\n\r\nfunction projectMultiPolygon(projection, coordinates) {\r\n var output = [];\r\n var i;\r\n var ii = output.length = coordinates.length;\r\n for (i = 0; i < ii; ++i) {\r\n output[i] = projectPolygon(projection, coordinates[i])\r\n }\r\n return _concat.apply([], output)\r\n}\r\n\r\nfunction transformPoint(content, projection, coordinates) {\r\n var data = projection.transform(coordinates);\r\n content.root.attr({\r\n translateX: data[0],\r\n translateY: data[1]\r\n })\r\n}\r\n\r\nfunction transformList(projection, coordinates) {\r\n var output = [];\r\n var i;\r\n var ii = coordinates.length;\r\n var item;\r\n var k = 0;\r\n output.length = 2 * ii;\r\n for (i = 0; i < ii; ++i) {\r\n item = projection.transform(coordinates[i]);\r\n output[k++] = item[0];\r\n output[k++] = item[1]\r\n }\r\n return output\r\n}\r\n\r\nfunction transformPointList(content, projection, coordinates) {\r\n var output = [];\r\n var i;\r\n var ii = output.length = coordinates.length;\r\n for (i = 0; i < ii; ++i) {\r\n output[i] = transformList(projection, coordinates[i])\r\n }\r\n content.root.attr({\r\n points: output\r\n })\r\n}\r\n\r\nfunction transformAreaLabel(label, projection, coordinates) {\r\n var data = projection.transform(coordinates[0]);\r\n label.spaceSize = projection.getSquareSize(coordinates[1]);\r\n label.text.attr({\r\n translateX: data[0],\r\n translateY: data[1]\r\n });\r\n setAreaLabelVisibility(label)\r\n}\r\n\r\nfunction transformLineLabel(label, projection, coordinates) {\r\n var data = projection.transform(coordinates[0]);\r\n label.spaceSize = projection.getSquareSize(coordinates[1]);\r\n label.text.attr({\r\n translateX: data[0],\r\n translateY: data[1]\r\n });\r\n setLineLabelVisibility(label)\r\n}\r\n\r\nfunction getItemSettings(context, proxy, settings) {\r\n var result = combineSettings(context.settings, settings);\r\n applyGrouping(context.grouping, proxy, result);\r\n if (void 0 === settings.color && settings.paletteIndex >= 0) {\r\n result.color = result._colors[settings.paletteIndex]\r\n }\r\n return result\r\n}\r\n\r\nfunction applyGrouping(grouping, proxy, settings) {\r\n _each(grouping, (function(name, data) {\r\n var index = findGroupingIndex(data.callback(proxy, data.field), data.partition);\r\n if (index >= 0) {\r\n settings[name] = data.values[index]\r\n }\r\n }))\r\n}\r\n\r\nfunction findGroupingIndex(value, partition) {\r\n var start = 0;\r\n var end = partition.length - 1;\r\n var index = -1;\r\n var middle;\r\n if (partition[start] <= value && value <= partition[end]) {\r\n if (value === partition[end]) {\r\n index = end - 1\r\n } else {\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n if (value < partition[middle]) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n index = start\r\n }\r\n }\r\n return index\r\n}\r\n\r\nfunction raiseChanged(context, handle, state, name) {\r\n context.params.eventTrigger(name, {\r\n target: handle.proxy,\r\n state: state\r\n })\r\n}\r\n\r\nfunction combineSettings(common, partial) {\r\n var obj = _extend({}, common, partial);\r\n obj.label = _extend({}, common.label, obj.label);\r\n obj.label.font = _extend({}, common.label.font, obj.label.font);\r\n return obj\r\n}\r\n\r\nfunction processCommonSettings(context, options) {\r\n var themeManager = context.params.themeManager;\r\n var strategy = context.str;\r\n var settings = combineSettings(_extend({\r\n label: {},\r\n color: strategy.getDefaultColor(context, options.palette)\r\n }, themeManager.theme(\"layer:\" + strategy.fullType)), options);\r\n var colors;\r\n var i;\r\n var palette;\r\n if (settings.paletteSize > 0) {\r\n palette = themeManager.createDiscretePalette(settings.palette, settings.paletteSize);\r\n for (i = 0, colors = []; i < settings.paletteSize; ++i) {\r\n colors.push(palette.getColor(i))\r\n }\r\n settings._colors = colors\r\n }\r\n return settings\r\n}\r\n\r\nfunction valueCallback(proxy, dataField) {\r\n return proxy.attribute(dataField)\r\n}\r\nvar performGrouping = function(context, partition, settingField, dataField, valuesCallback) {\r\n var values;\r\n if (dataField && partition && partition.length > 1) {\r\n values = valuesCallback(partition.length - 1);\r\n context.grouping[settingField] = {\r\n callback: _isFunction(dataField) ? dataField : valueCallback,\r\n field: dataField,\r\n partition: partition,\r\n values: values\r\n };\r\n context.params.dataExchanger.set(context.name, settingField, {\r\n partition: partition,\r\n values: values,\r\n defaultColor: context.settings.color\r\n })\r\n }\r\n};\r\n\r\nfunction dropGrouping(context) {\r\n var name = context.name;\r\n var dataExchanger = context.params.dataExchanger;\r\n _each(context.grouping, (function(field) {\r\n dataExchanger.set(name, field, null)\r\n }));\r\n context.grouping = {}\r\n}\r\ngroupByColor = function(context) {\r\n performGrouping(context, context.settings.colorGroups, \"color\", context.settings.colorGroupingField, (function(count) {\r\n var _palette = context.params.themeManager.createDiscretePalette(context.settings.palette, count);\r\n var i;\r\n var list = [];\r\n for (i = 0; i < count; ++i) {\r\n list.push(_palette.getColor(i))\r\n }\r\n return list\r\n }))\r\n};\r\ngroupBySize = function(context, valueCallback) {\r\n var settings = context.settings;\r\n performGrouping(context, settings.sizeGroups, \"size\", valueCallback || settings.sizeGroupingField, (function(count) {\r\n var minSize = settings.minSize > 0 ? _Number(settings.minSize) : 0;\r\n var maxSize = settings.maxSize >= minSize ? _Number(settings.maxSize) : 0;\r\n var i = 0;\r\n var sizes = [];\r\n if (count > 1) {\r\n for (i = 0; i < count; ++i) {\r\n sizes.push((minSize * (count - i - 1) + maxSize * i) / (count - 1))\r\n }\r\n } else if (1 === count) {\r\n sizes.push((minSize + maxSize) / 2)\r\n }\r\n return sizes\r\n }))\r\n};\r\n\r\nfunction setFlag(flags, flag, state) {\r\n if (state) {\r\n flags |= flag\r\n } else {\r\n flags &= ~flag\r\n }\r\n return flags\r\n}\r\n\r\nfunction hasFlag(flags, flag) {\r\n return !!(flags & flag)\r\n}\r\n\r\nfunction createLayerProxy(layer, name, index) {\r\n var proxy = {\r\n index: index,\r\n name: name,\r\n getElements: function() {\r\n return layer.getProxies()\r\n },\r\n clearSelection: function(_noEvent) {\r\n layer.clearSelection(_noEvent);\r\n return proxy\r\n },\r\n getDataSource: function() {\r\n return layer.getDataSource()\r\n },\r\n getBounds: () => layer.getBounds()\r\n };\r\n return proxy\r\n}\r\nvar MapLayerElement;\r\nvar MapLayer = function(params, container, name, index) {\r\n this._params = params;\r\n this._onProjection();\r\n this.proxy = createLayerProxy(this, name, index);\r\n this._context = {\r\n name: name,\r\n layer: this.proxy,\r\n renderer: params.renderer,\r\n projection: params.projection,\r\n params: params,\r\n dataKey: params.dataKey,\r\n str: emptyStrategy,\r\n hover: false,\r\n selection: null,\r\n grouping: {},\r\n root: params.renderer.g().attr({\r\n class: \"dxm-layer\"\r\n }).linkOn(container, name).linkAppend()\r\n };\r\n this._container = container;\r\n this._options = {};\r\n this._handles = [];\r\n this._data = new EmptySource;\r\n this._dataSourceLoaded = null\r\n};\r\nMapLayer.prototype = _extend({\r\n constructor: MapLayer,\r\n getDataReadyCallback() {\r\n return this._dataSourceLoaded\r\n },\r\n _onProjection: function() {\r\n var that = this;\r\n that._removeHandlers = that._params.projection.on({\r\n engine: function() {\r\n that._project()\r\n },\r\n screen: function() {\r\n that._transform()\r\n },\r\n center: function() {\r\n that._transformCore()\r\n },\r\n zoom: function() {\r\n that._transform()\r\n }\r\n })\r\n },\r\n getData() {\r\n return this._data\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._dataSourceChangedHandler()\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._data = unwrapFromDataSource(this._dataSource && this._dataSource.items());\r\n this._update(true)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n return this._specificDataSourceOption\r\n },\r\n _normalizeDataSource: function(dataSource) {\r\n var store = dataSource.store();\r\n if (\"raw\" === store._loadMode) {\r\n store._loadMode = void 0\r\n }\r\n return dataSource\r\n },\r\n _offProjection: function() {\r\n this._removeHandlers();\r\n this._removeHandlers = null\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this._destroyHandles();\r\n dropGrouping(this._context);\r\n this._context.root.linkRemove().linkOff();\r\n this._context.labelRoot && this._context.labelRoot.linkRemove().linkOff();\r\n this._context.str.reset(this._context);\r\n this._offProjection();\r\n this._params = this._container = this._context = this.proxy = null;\r\n return this\r\n },\r\n setOptions: function(options) {\r\n options = this._options = options || {};\r\n this._dataSourceLoaded = new Deferred;\r\n if (\"dataSource\" in options && options.dataSource !== this._options_dataSource) {\r\n this._options_dataSource = options.dataSource;\r\n this._params.notifyDirty();\r\n this._specificDataSourceOption = wrapToDataSource(options.dataSource);\r\n this._refreshDataSource()\r\n } else if (this._data.count() > 0) {\r\n this._params.notifyDirty();\r\n this._update(void 0 !== options.type && options.type !== this._context.str.type || void 0 !== options.elementType && options.elementType !== this._context.str.elementType)\r\n }\r\n this._transformCore()\r\n },\r\n _update: function(isContextChanged) {\r\n var context = this._context;\r\n if (isContextChanged) {\r\n context.str.reset(context);\r\n context.root.clear();\r\n context.labelRoot && context.labelRoot.clear();\r\n this._params.tracker.reset();\r\n this._destroyHandles();\r\n context.str = selectStrategy(this._options, this._data);\r\n context.str.setup(context);\r\n this.proxy.type = context.str.type;\r\n this.proxy.elementType = context.str.elementType\r\n }\r\n context.settings = processCommonSettings(context, this._options);\r\n context.hasSeparateLabel = !!(context.settings.label.enabled && context.str.hasLabelsGroup);\r\n context.hover = !!_parseScalar(context.settings.hoverEnabled, true);\r\n if (context.selection) {\r\n _each(context.selection.state, (function(_, handle) {\r\n handle && handle.resetSelected()\r\n }))\r\n }\r\n context.selection = getSelection(context.settings.selectionMode);\r\n if (context.hasSeparateLabel) {\r\n if (!context.labelRoot) {\r\n context.labelRoot = context.renderer.g().attr({\r\n class: \"dxm-layer-labels\"\r\n }).linkOn(this._container, {\r\n name: context.name + \"-labels\",\r\n after: context.name\r\n }).linkAppend();\r\n this._transformCore()\r\n }\r\n } else if (context.labelRoot) {\r\n context.labelRoot.linkRemove().linkOff();\r\n context.labelRoot = null\r\n }\r\n if (isContextChanged) {\r\n this._createHandles()\r\n }\r\n dropGrouping(context);\r\n context.str.arrange(context, this._handles);\r\n context.str.updateGrouping(context);\r\n this._updateHandles();\r\n this._params.notifyReady();\r\n if (this._dataSourceLoaded) {\r\n this._dataSourceLoaded.resolve();\r\n this._dataSourceLoaded = null\r\n } else {\r\n this._params.dataReady()\r\n }\r\n },\r\n getBounds() {\r\n return getMaxBound(this._handles.map(_ref => {\r\n var {\r\n proxy: proxy\r\n } = _ref;\r\n return proxy.coordinates().map(coords => {\r\n if (!_isArray(coords)) {\r\n return\r\n }\r\n var coordsToBoundsSearch = _isArray(coords[0][0]) ? coords.reduce((ac, val) => ac.concat(val), []) : coords;\r\n var initValue = coordsToBoundsSearch[0];\r\n return coordsToBoundsSearch.reduce((min, c) => [_min(min[0], c[0]), _min(min[1], c[1]), _max(min[2], c[0]), _max(min[3], c[1])], [initValue[0], initValue[1], initValue[0], initValue[1]])\r\n })\r\n }).map(getMaxBound))\r\n },\r\n _destroyHandles() {\r\n this._handles.forEach(h => h.dispose());\r\n if (this._context.selection) {\r\n this._context.selection.state = {}\r\n }\r\n this._handles = []\r\n },\r\n _createHandles: function() {\r\n var handles = this._handles = [];\r\n var data = this._data;\r\n var i;\r\n var ii = handles.length = data.count();\r\n var context = this._context;\r\n var geometry = data.geometry;\r\n var attributes = data.attributes;\r\n var handle;\r\n var dataItem;\r\n for (i = 0; i < ii; ++i) {\r\n dataItem = data.item(i);\r\n handles[i] = new MapLayerElement(context, i, geometry(dataItem), attributes(dataItem))\r\n }\r\n _isFunction(this._options.customize) && customizeHandles(this.getProxies(), this._options.customize, this._params.widget);\r\n for (i = 0; i < ii; ++i) {\r\n handle = handles[i];\r\n handle.project();\r\n handle.draw();\r\n handle.transform()\r\n }\r\n if (context.selection) {\r\n _each(context.selection.state, (function(_, handle) {\r\n handle && handle.restoreSelected()\r\n }))\r\n }\r\n },\r\n _updateHandles: function() {\r\n var handles = this._handles;\r\n var i;\r\n var ii = handles.length;\r\n for (i = 0; i < ii; ++i) {\r\n handles[i].refresh()\r\n }\r\n if (this._context.settings.label.enabled) {\r\n for (i = 0; i < ii; ++i) {\r\n handles[i].measureLabel()\r\n }\r\n for (i = 0; i < ii; ++i) {\r\n handles[i].adjustLabel()\r\n }\r\n }\r\n },\r\n _transformCore: function() {\r\n var transform = this._params.projection.getTransform();\r\n this._context.root.attr(transform);\r\n this._context.labelRoot && this._context.labelRoot.attr(transform)\r\n },\r\n _project: function() {\r\n var handles = this._handles;\r\n var i;\r\n var ii = handles.length;\r\n for (i = 0; i < ii; ++i) {\r\n handles[i].project()\r\n }\r\n },\r\n _transform: function() {\r\n var handles = this._handles;\r\n var i;\r\n var ii = handles.length;\r\n this._transformCore();\r\n for (i = 0; i < ii; ++i) {\r\n handles[i].transform()\r\n }\r\n },\r\n getProxies() {\r\n return this._handles.map(p => p.proxy)\r\n },\r\n getProxy: function(index) {\r\n return this._handles[index].proxy\r\n },\r\n raiseClick: function(i, dxEvent) {\r\n this._params.eventTrigger(\"click\", {\r\n target: this._handles[i].proxy,\r\n event: dxEvent\r\n })\r\n },\r\n hoverItem: function(i, state) {\r\n this._handles[i].setHovered(state)\r\n },\r\n selectItem: function(i, state, _noEvent) {\r\n this._handles[i].setSelected(state, _noEvent)\r\n },\r\n clearSelection: function() {\r\n var selection = this._context.selection;\r\n if (selection) {\r\n _each(selection.state, (function(_, handle) {\r\n handle && handle.setSelected(false)\r\n }));\r\n selection.state = {}\r\n }\r\n }\r\n}, DataHelperMixin);\r\n\r\nfunction createProxy(handle, coords, attrs) {\r\n var proxy = {\r\n coordinates: function() {\r\n return coords\r\n },\r\n attribute: function(name, value) {\r\n if (arguments.length > 1) {\r\n attrs[name] = value;\r\n return proxy\r\n } else {\r\n return arguments.length > 0 ? attrs[name] : attrs\r\n }\r\n },\r\n selected: function(state, _noEvent) {\r\n if (arguments.length > 0) {\r\n handle.setSelected(state, _noEvent);\r\n return proxy\r\n } else {\r\n return handle.isSelected()\r\n }\r\n },\r\n applySettings: function(settings) {\r\n handle.update(settings);\r\n return proxy\r\n }\r\n };\r\n return proxy\r\n}\r\nMapLayerElement = function(context, index, geometry, attributes) {\r\n var proxy = this.proxy = createProxy(this, geometry.coordinates, _extend({}, attributes));\r\n this._ctx = context;\r\n this._index = index;\r\n this._fig = this._label = null;\r\n this._state = STATE_DEFAULT;\r\n this._coordinates = geometry.coordinates;\r\n this._settings = {\r\n label: {}\r\n };\r\n proxy.index = index;\r\n proxy.layer = context.layer;\r\n this._data = {\r\n name: context.name,\r\n index: index\r\n }\r\n};\r\nMapLayerElement.prototype = {\r\n constructor: MapLayerElement,\r\n dispose: function() {\r\n this._ctx = this.proxy = this._settings = this._fig = this._label = this.data = null;\r\n return this\r\n },\r\n project: function() {\r\n var context = this._ctx;\r\n this._projection = context.str.project(context.projection, this._coordinates);\r\n if (context.hasSeparateLabel && this._label) {\r\n this._projectLabel()\r\n }\r\n },\r\n _projectLabel: function() {\r\n this._labelProjection = this._ctx.str.projectLabel(this._projection)\r\n },\r\n draw: function() {\r\n var context = this._ctx;\r\n context.str.draw(context, this._fig = {}, this._data);\r\n this._fig.root.append(context.root)\r\n },\r\n transform: function() {\r\n var context = this._ctx;\r\n context.str.transform(this._fig, context.projection, this._projection);\r\n if (context.hasSeparateLabel && this._label) {\r\n this._transformLabel()\r\n }\r\n },\r\n _transformLabel: function() {\r\n this._ctx.str.transformLabel(this._label, this._ctx.projection, this._labelProjection)\r\n },\r\n refresh: function() {\r\n var strategy = this._ctx.str;\r\n var settings = getItemSettings(this._ctx, this.proxy, this._settings);\r\n this._styles = strategy.getStyles(settings);\r\n strategy.refresh(this._ctx, this._fig, this._data, this.proxy, settings);\r\n this._refreshLabel(settings);\r\n this._setState()\r\n },\r\n _refreshLabel: function(settings) {\r\n var context = this._ctx;\r\n var labelSettings = settings.label;\r\n var label = this._label;\r\n if (context.settings.label.enabled) {\r\n if (!label) {\r\n label = this._label = {\r\n root: context.labelRoot || this._fig.root,\r\n text: context.renderer.text().attr({\r\n class: \"dxm-label\"\r\n }),\r\n size: [0, 0]\r\n };\r\n if (context.hasSeparateLabel) {\r\n this._projectLabel();\r\n this._transformLabel()\r\n }\r\n }\r\n label.value = _String(this.proxy.text || this.proxy.attribute(labelSettings.dataField) || \"\");\r\n if (label.value) {\r\n label.text.attr({\r\n text: label.value,\r\n x: 0,\r\n y: 0\r\n }).css(_patchFontOptions(labelSettings.font)).attr({\r\n align: \"center\",\r\n stroke: labelSettings.stroke,\r\n \"stroke-width\": labelSettings[\"stroke-width\"],\r\n \"stroke-opacity\": labelSettings[\"stroke-opacity\"]\r\n }).data(context.dataKey, this._data).append(label.root);\r\n label.settings = settings\r\n }\r\n } else if (label) {\r\n label.text.remove();\r\n this._label = null\r\n }\r\n },\r\n measureLabel: function() {\r\n var label = this._label;\r\n var bBox;\r\n if (label.value) {\r\n bBox = label.text.getBBox();\r\n label.size = [bBox.width, bBox.height, -bBox.y - bBox.height / 2]\r\n }\r\n },\r\n adjustLabel: function() {\r\n var label = this._label;\r\n var offset;\r\n if (label.value) {\r\n offset = this._ctx.str.getLabelOffset(label, label.settings);\r\n label.settings = null;\r\n label.text.attr({\r\n x: offset[0],\r\n y: offset[1] + label.size[2]\r\n })\r\n }\r\n },\r\n update: function(settings) {\r\n this._settings = combineSettings(this._settings, settings);\r\n if (this._fig) {\r\n this.refresh();\r\n if (this._label && this._label.value) {\r\n this.measureLabel();\r\n this.adjustLabel()\r\n }\r\n }\r\n },\r\n _setState: function() {\r\n this._ctx.str.setState(this._fig, this._styles, STATE_TO_INDEX[this._state])\r\n },\r\n _setForeground: function() {\r\n var root = this._fig.root;\r\n this._state ? root.toForeground() : root.toBackground()\r\n },\r\n setHovered: function(state) {\r\n var currentState = hasFlag(this._state, STATE_HOVERED);\r\n var newState = !!state;\r\n if (this._ctx.hover && currentState !== newState) {\r\n this._state = setFlag(this._state, STATE_HOVERED, newState);\r\n this._setState();\r\n this._setForeground();\r\n raiseChanged(this._ctx, this, newState, \"hoverChanged\")\r\n }\r\n return this\r\n },\r\n setSelected: function(state, _noEvent) {\r\n var currentState = hasFlag(this._state, STATE_SELECTED);\r\n var newState = !!state;\r\n var selection = this._ctx.selection;\r\n var tmp;\r\n if (selection && currentState !== newState) {\r\n this._state = setFlag(this._state, STATE_SELECTED, newState);\r\n tmp = selection.state[selection.single];\r\n selection.state[selection.single] = null;\r\n if (tmp) {\r\n tmp.setSelected(false)\r\n }\r\n selection.state[selection.single || this._index] = state ? this : null;\r\n if (this._fig) {\r\n this._setState();\r\n this._setForeground();\r\n if (!_noEvent) {\r\n raiseChanged(this._ctx, this, newState, \"selectionChanged\")\r\n }\r\n }\r\n }\r\n },\r\n isSelected: function() {\r\n return hasFlag(this._state, STATE_SELECTED)\r\n },\r\n resetSelected: function() {\r\n this._state = setFlag(this._state, STATE_SELECTED, false)\r\n },\r\n restoreSelected: function() {\r\n this._fig.root.toForeground()\r\n }\r\n};\r\n\r\nfunction calculatePolygonCentroid(coordinates) {\r\n var i;\r\n var length = coordinates.length;\r\n var v1;\r\n var v2 = coordinates[length - 1];\r\n var cross;\r\n var cx = 0;\r\n var cy = 0;\r\n var area = 0;\r\n var minX = 1 / 0;\r\n var maxX = -1 / 0;\r\n var minY = 1 / 0;\r\n var maxY = -1 / 0;\r\n for (i = 0; i < length; ++i) {\r\n v1 = v2;\r\n v2 = coordinates[i];\r\n cross = v1[0] * v2[1] - v2[0] * v1[1];\r\n area += cross;\r\n cx += (v1[0] + v2[0]) * cross;\r\n cy += (v1[1] + v2[1]) * cross;\r\n minX = _min(minX, v2[0]);\r\n maxX = _max(maxX, v2[0]);\r\n minY = _min(minY, v2[1]);\r\n maxY = _max(maxY, v2[1])\r\n }\r\n return {\r\n area: _abs(area) / 2,\r\n center: [2 * cx / 3 / area - (minX + maxX) / 2, 2 * cy / 3 / area - (minY + maxY) / 2]\r\n }\r\n}\r\n\r\nfunction calculateLineStringData(coordinates) {\r\n var i;\r\n var ii = coordinates.length;\r\n var v1;\r\n var v2 = coordinates[0] || [];\r\n var totalLength = 0;\r\n var items = [0];\r\n var min0 = v2[0];\r\n var max0 = v2[0];\r\n var min1 = v2[1];\r\n var max1 = v2[1];\r\n for (i = 1; i < ii; ++i) {\r\n v1 = v2;\r\n v2 = coordinates[i];\r\n totalLength += _sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n items[i] = totalLength;\r\n min0 = _min(min0, v2[0]);\r\n max0 = _max(max0, v2[0]);\r\n min1 = _min(min1, v2[1]);\r\n max1 = _max(max1, v2[1])\r\n }\r\n i = findGroupingIndex(totalLength / 2, items);\r\n v1 = coordinates[i];\r\n v2 = coordinates[i + 1];\r\n var t = (totalLength / 2 - items[i]) / (items[i + 1] - items[i]);\r\n return ii ? [\r\n [v1[0] * (1 - t) + v2[0] * t, v1[1] * (1 - t) + v2[1] * t],\r\n [max0 - min0, max1 - min1], totalLength\r\n ] : []\r\n}\r\n\r\nfunction projectAreaLabel(coordinates) {\r\n var i;\r\n var ii = coordinates.length;\r\n var centroid;\r\n var resultCentroid;\r\n var maxArea = 0;\r\n for (i = 0; i < ii; ++i) {\r\n centroid = calculatePolygonCentroid(coordinates[i]);\r\n if (centroid.area > maxArea) {\r\n maxArea = centroid.area;\r\n resultCentroid = centroid\r\n }\r\n }\r\n return resultCentroid ? [resultCentroid.center, [_sqrt(resultCentroid.area), _sqrt(resultCentroid.area)]] : [\r\n [],\r\n []\r\n ]\r\n}\r\n\r\nfunction projectLineLabel(coordinates) {\r\n var i;\r\n var ii = coordinates.length;\r\n var maxLength = 0;\r\n var data;\r\n var resultData;\r\n for (i = 0; i < ii; ++i) {\r\n data = calculateLineStringData(coordinates[i]);\r\n if (data[2] > maxLength) {\r\n maxLength = data[2];\r\n resultData = data\r\n }\r\n }\r\n return resultData || [\r\n [],\r\n []\r\n ]\r\n}\r\nexport function MapLayerCollection(params) {\r\n var renderer = params.renderer;\r\n this._params = params;\r\n this._layers = [];\r\n this._layerByName = {};\r\n this._rect = [0, 0, 0, 0];\r\n this._clip = renderer.clipRect();\r\n this._background = renderer.rect().attr({\r\n class: \"dxm-background\"\r\n }).data(params.dataKey, {\r\n name: \"background\"\r\n }).append(renderer.root);\r\n this._container = renderer.g().attr({\r\n class: \"dxm-layers\",\r\n \"clip-path\": this._clip.id\r\n }).append(renderer.root).enableLinks();\r\n this._subscribeToTracker(params.tracker, renderer, params.eventTrigger);\r\n this._dataReady = params.dataReady\r\n}\r\nMapLayerCollection.prototype = {\r\n constructor: MapLayerCollection,\r\n dispose: function() {\r\n this._clip.dispose();\r\n this._layers.forEach(l => l.dispose());\r\n this._offTracker();\r\n this._params = this._offTracker = this._layers = this._layerByName = this._clip = this._background = this._container = null\r\n },\r\n _subscribeToTracker: function(tracker, renderer, eventTrigger) {\r\n var that = this;\r\n that._offTracker = tracker.on({\r\n click: function(arg) {\r\n var offset = renderer.getRootOffset();\r\n var layer = that.byName(arg.data.name);\r\n arg.$event.x = arg.x - offset.left;\r\n arg.$event.y = arg.y - offset.top;\r\n if (layer) {\r\n layer.raiseClick(arg.data.index, arg.$event)\r\n } else if (\"background\" === arg.data.name) {\r\n eventTrigger(\"click\", {\r\n event: arg.$event\r\n })\r\n }\r\n },\r\n \"hover-on\": function(arg) {\r\n var layer = that.byName(arg.data.name);\r\n if (layer) {\r\n layer.hoverItem(arg.data.index, true)\r\n }\r\n },\r\n \"hover-off\": function(arg) {\r\n var layer = that.byName(arg.data.name);\r\n if (layer) {\r\n layer.hoverItem(arg.data.index, false)\r\n }\r\n }\r\n })\r\n },\r\n setOptions(options) {\r\n var optionList = options ? _isArray(options) ? options : [options] : [];\r\n var layers = this._layers;\r\n var readyCallbacks;\r\n var needToCreateLayers = optionList.length !== layers.length || layers.some((l, i) => {\r\n var name = getName(optionList, i);\r\n return _isDefined(name) && name !== l.proxy.name\r\n });\r\n if (needToCreateLayers) {\r\n this._params.tracker.reset();\r\n this._layers.forEach(l => l.dispose());\r\n var layerByName = this._layerByName = {};\r\n this._layers = layers = [];\r\n for (var i = 0, ii = optionList.length; i < ii; ++i) {\r\n var name = getName(optionList, i) || \"map-layer-\" + i;\r\n var layer = layers[i] = new MapLayer(this._params, this._container, name, i);\r\n layerByName[name] = layer\r\n }\r\n }\r\n layers.forEach((l, i) => {\r\n l.setOptions(optionList[i])\r\n });\r\n readyCallbacks = layers.map(l => l.getDataReadyCallback());\r\n readyCallbacks.length && when.apply(void 0, readyCallbacks).done(this._dataReady)\r\n },\r\n _updateClip: function() {\r\n var rect = this._rect;\r\n var bw = this._borderWidth;\r\n this._clip.attr({\r\n x: rect[0] + bw,\r\n y: rect[1] + bw,\r\n width: _max(rect[2] - 2 * bw, 0),\r\n height: _max(rect[3] - 2 * bw, 0)\r\n })\r\n },\r\n setBackgroundOptions: function(options) {\r\n this._background.attr({\r\n stroke: options.borderColor,\r\n \"stroke-width\": options.borderWidth,\r\n fill: options.color\r\n });\r\n this._borderWidth = _max(options.borderWidth, 0);\r\n this._updateClip()\r\n },\r\n setRect: function(rect) {\r\n this._rect = rect;\r\n this._background.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: rect[2],\r\n height: rect[3]\r\n });\r\n this._updateClip()\r\n },\r\n byIndex: function(index) {\r\n return this._layers[index]\r\n },\r\n byName: function(name) {\r\n return this._layerByName[name]\r\n },\r\n items: function() {\r\n return this._layers\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/tooltip_viewer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar TOOLTIP_OFFSET = 12;\r\nexport function TooltipViewer(params) {\r\n this._subscribeToTracker(params.tracker, params.tooltip, params.layerCollection)\r\n}\r\nTooltipViewer.prototype = {\r\n constructor: TooltipViewer,\r\n dispose: function() {\r\n this._offTracker();\r\n this._offTracker = null\r\n },\r\n _subscribeToTracker: function(tracker, tooltip, layerCollection) {\r\n this._offTracker = tracker.on({\r\n \"focus-on\": function(arg) {\r\n var layer;\r\n var proxy;\r\n if (tooltip.isEnabled()) {\r\n layer = layerCollection.byName(arg.data.name);\r\n proxy = layer && layer.getProxy(arg.data.index);\r\n var callback = result => {\r\n result && arg.done(result)\r\n };\r\n proxy && callback(tooltip.show(proxy, {\r\n x: arg.x,\r\n y: arg.y,\r\n offset: TOOLTIP_OFFSET\r\n }, {\r\n target: proxy\r\n }, void 0, callback))\r\n }\r\n },\r\n \"focus-move\": function(arg) {\r\n tooltip.move(arg.x, arg.y, TOOLTIP_OFFSET)\r\n },\r\n \"focus-off\": function() {\r\n tooltip.hide()\r\n }\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/vector_map.utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar nextDataKey = 1;\r\nexport function generateDataKey() {\r\n return \"vectormap-data-\" + nextDataKey++\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/projection.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n projection\r\n} from \"./projection.main\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _sin = Math.sin;\r\nvar _asin = Math.asin;\r\nvar _tan = Math.tan;\r\nvar _atan = Math.atan;\r\nvar _exp = Math.exp;\r\nvar _log = Math.log;\r\nvar PI = Math.PI;\r\nvar PI_DIV_4 = PI / 4;\r\nvar GEO_LON_BOUND = 180;\r\nvar GEO_LAT_BOUND = 90;\r\nvar RADIANS = PI / 180;\r\nvar MERCATOR_LAT_BOUND = (2 * _atan(_exp(PI)) - PI / 2) / RADIANS;\r\nvar MILLER_LAT_BOUND = (2.5 * _atan(_exp(.8 * PI)) - .625 * PI) / RADIANS;\r\n\r\nfunction clamp(value, threshold) {\r\n return _max(_min(value, +threshold), -threshold)\r\n}\r\nprojection.add(\"mercator\", projection({\r\n aspectRatio: 1,\r\n to: function(coordinates) {\r\n return [coordinates[0] / GEO_LON_BOUND, _log(_tan(PI_DIV_4 + clamp(coordinates[1], MERCATOR_LAT_BOUND) * RADIANS / 2)) / PI]\r\n },\r\n from: function(coordinates) {\r\n return [coordinates[0] * GEO_LON_BOUND, (2 * _atan(_exp(coordinates[1] * PI)) - PI / 2) / RADIANS]\r\n }\r\n}));\r\nprojection.add(\"equirectangular\", projection({\r\n aspectRatio: 2,\r\n to: function(coordinates) {\r\n return [coordinates[0] / GEO_LON_BOUND, coordinates[1] / GEO_LAT_BOUND]\r\n },\r\n from: function(coordinates) {\r\n return [coordinates[0] * GEO_LON_BOUND, coordinates[1] * GEO_LAT_BOUND]\r\n }\r\n}));\r\nprojection.add(\"lambert\", projection({\r\n aspectRatio: 2,\r\n to: function(coordinates) {\r\n return [coordinates[0] / GEO_LON_BOUND, _sin(clamp(coordinates[1], GEO_LAT_BOUND) * RADIANS)]\r\n },\r\n from: function(coordinates) {\r\n return [coordinates[0] * GEO_LON_BOUND, _asin(clamp(coordinates[1], 1)) / RADIANS]\r\n }\r\n}));\r\nprojection.add(\"miller\", projection({\r\n aspectRatio: 1,\r\n to: function(coordinates) {\r\n return [coordinates[0] / GEO_LON_BOUND, 1.25 * _log(_tan(PI_DIV_4 + clamp(coordinates[1], MILLER_LAT_BOUND) * RADIANS * .4)) / PI]\r\n },\r\n from: function(coordinates) {\r\n return [coordinates[0] * GEO_LON_BOUND, (2.5 * _atan(_exp(.8 * coordinates[1] * PI)) - .625 * PI) / RADIANS]\r\n }\r\n}));\r\nexport {\r\n projection\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/vector_map/vector_map.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"../core/utils\";\r\nimport {\r\n Projection\r\n} from \"./projection.main\";\r\nimport {\r\n ControlBar\r\n} from \"./control_bar/control_bar\";\r\nimport {\r\n GestureHandler\r\n} from \"./gesture_handler\";\r\nimport {\r\n Tracker\r\n} from \"./tracker\";\r\nimport {\r\n DataExchanger\r\n} from \"./data_exchanger\";\r\nimport {\r\n LegendsControl\r\n} from \"./legend\";\r\nimport {\r\n LayoutControl\r\n} from \"./layout\";\r\nimport {\r\n MapLayerCollection,\r\n getMaxBound\r\n} from \"./map_layer\";\r\nimport {\r\n TooltipViewer\r\n} from \"./tooltip_viewer\";\r\nimport {\r\n generateDataKey\r\n} from \"./vector_map.utils\";\r\nvar DEFAULT_WIDTH = 800;\r\nvar DEFAULT_HEIGHT = 400;\r\nvar RE_STARTS_LAYERS = /^layers/;\r\nvar RE_ENDS_DATA_SOURCE = /\\.dataSource$/;\r\nimport \"./projection\";\r\nimport BaseWidget from \"../../__internal/viz/core/m_base_widget\";\r\n\r\nfunction mergeBounds(sumBounds, dataBounds) {\r\n return dataBounds ? [Math.min(dataBounds[0], dataBounds[2], sumBounds[0]), Math.min(dataBounds[1], dataBounds[3], sumBounds[3]), Math.max(dataBounds[0], dataBounds[2], sumBounds[2]), Math.max(dataBounds[1], dataBounds[3], sumBounds[1])] : sumBounds\r\n}\r\nvar dxVectorMap = BaseWidget.inherit({\r\n _eventsMap: {\r\n onClick: {\r\n name: \"click\"\r\n },\r\n onCenterChanged: {\r\n name: \"centerChanged\"\r\n },\r\n onZoomFactorChanged: {\r\n name: \"zoomFactorChanged\"\r\n },\r\n onHoverChanged: {\r\n name: \"hoverChanged\"\r\n },\r\n onSelectionChanged: {\r\n name: \"selectionChanged\"\r\n }\r\n },\r\n _rootClassPrefix: \"dxm\",\r\n _rootClass: \"dxm-vector-map\",\r\n _themeSection: \"map\",\r\n _fontFields: [\"layer:area.label.font\", \"layer:marker:dot.label.font\", \"layer:marker:bubble.label.font\", \"layer:marker:pie.label.font\", \"layer:marker:image.label.font\", \"legend.font\", \"legend.title.font\", \"legend.title.subtitle.font\"],\r\n _initLayerCollection: function(dataKey) {\r\n var that = this;\r\n that._layerCollection = new MapLayerCollection({\r\n renderer: that._renderer,\r\n projection: that._projection,\r\n themeManager: that._themeManager,\r\n tracker: that._tracker,\r\n dataKey: dataKey,\r\n eventTrigger: that._eventTrigger,\r\n dataExchanger: that._dataExchanger,\r\n tooltip: that._tooltip,\r\n notifyDirty: that._notifyDirty,\r\n notifyReady: that._notifyReady,\r\n dataReady() {\r\n var bounds;\r\n if (that.option(\"getBoundsFromData\") && !that.option(\"bounds\")) {\r\n that._preventProjectionEvents();\r\n bounds = that._getBoundsFromData();\r\n that._projection.setBounds(bounds);\r\n that._allowProjectionEvents()\r\n }\r\n if (!that.option(\"projection\")) {\r\n bounds = bounds || that._getBoundsFromData();\r\n if (Math.ceil(bounds[0]) < -180 || Math.ceil(bounds[3]) < -90 || Math.floor(bounds[2]) > 180 || Math.floor(bounds[1]) > 90) {\r\n var longitudeLength = bounds[2] - bounds[0];\r\n var latitudeLength = bounds[1] - bounds[3];\r\n that._projection.setEngine({\r\n to: coordinates => [2 * (coordinates[0] - bounds[0]) / longitudeLength - 1, 2 * (coordinates[1] - bounds[3]) / latitudeLength - 1],\r\n from: coordinates => [(coordinates[0] + 1) * longitudeLength / 2 + bounds[0], (coordinates[1] + 1) * latitudeLength / 2 + bounds[3]]\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getBoundsFromData() {\r\n var bounds = this._getBoundingBoxFromDataSource();\r\n if (!bounds) {\r\n var layersBounds = this.getLayers().map(l => l.getBounds()).filter(x => void 0 !== x);\r\n var boundsByData = getMaxBound(layersBounds);\r\n if (boundsByData) {\r\n bounds = boundsByData\r\n }\r\n }\r\n bounds = bounds || [];\r\n bounds = [bounds[0], bounds[3], bounds[2], bounds[1]];\r\n return bounds\r\n },\r\n _initLegendsControl: function() {\r\n this._legendsControl = new LegendsControl({\r\n renderer: this._renderer,\r\n container: this._root,\r\n widget: this,\r\n layoutControl: this._layoutControl,\r\n themeManager: this._themeManager,\r\n dataExchanger: this._dataExchanger,\r\n notifyDirty: this._notifyDirty,\r\n notifyReady: this._notifyReady\r\n })\r\n },\r\n _initControlBar: function(dataKey) {\r\n this._controlBar = new ControlBar({\r\n renderer: this._renderer,\r\n container: this._root,\r\n layoutControl: this._layoutControl,\r\n projection: this._projection,\r\n tracker: this._tracker,\r\n dataKey: dataKey\r\n })\r\n },\r\n _initElements: function() {\r\n var that = this;\r\n var dataKey = generateDataKey();\r\n var notifyCounter = 0;\r\n var preventProjectionEvents;\r\n that._preventProjectionEvents = function() {\r\n preventProjectionEvents = true\r\n };\r\n that._allowProjectionEvents = function() {\r\n preventProjectionEvents = false\r\n };\r\n that._notifyDirty = function() {\r\n that._resetIsReady();\r\n ++notifyCounter\r\n };\r\n that._notifyReady = function() {\r\n that._allowProjectionEvents();\r\n if (0 === --notifyCounter) {\r\n that._drawn()\r\n }\r\n };\r\n that._preventProjectionEvents();\r\n that._dataExchanger = new DataExchanger;\r\n that._projection = new Projection({\r\n centerChanged: function(value) {\r\n if (!preventProjectionEvents) {\r\n that._eventTrigger(\"centerChanged\", {\r\n center: value\r\n })\r\n }\r\n },\r\n zoomChanged: function(value) {\r\n if (!preventProjectionEvents) {\r\n that._eventTrigger(\"zoomFactorChanged\", {\r\n zoomFactor: value\r\n })\r\n }\r\n }\r\n });\r\n that._tracker = new Tracker({\r\n root: that._root,\r\n projection: that._projection,\r\n dataKey: dataKey\r\n });\r\n that._gestureHandler = new GestureHandler({\r\n projection: that._projection,\r\n renderer: that._renderer,\r\n tracker: that._tracker\r\n });\r\n that._layoutControl = new LayoutControl(that);\r\n that._layoutControl.suspend();\r\n that._initLayerCollection(dataKey);\r\n that._createHtmlStructure();\r\n that._initControlBar(dataKey);\r\n that._initLegendsControl();\r\n that._prepareExtraElements();\r\n that._tooltipViewer = new TooltipViewer({\r\n tracker: that._tracker,\r\n tooltip: that._tooltip,\r\n layerCollection: that._layerCollection\r\n })\r\n },\r\n _change_RESUME_LAYOUT: function() {\r\n this._layoutControl.resume()\r\n },\r\n _initialChanges: [\"PROJECTION\", \"RESUME_LAYOUT\", \"LAYOUT_INIT\", \"BOUNDS\", \"MAX_ZOOM_FACTOR\", \"ZOOM_FACTOR\", \"CENTER\"],\r\n _layoutChangesOrder: [\"RESUME_LAYOUT\", \"LAYERS\"],\r\n _customChangesOrder: [\"EXTRA_ELEMENTS\"],\r\n _initCore: function() {\r\n this._root = this._renderer.root.attr({\r\n align: \"center\",\r\n cursor: \"default\"\r\n });\r\n this._initElements()\r\n },\r\n _disposeCore: function() {\r\n this._controlBar.dispose();\r\n this._gestureHandler.dispose();\r\n this._tracker.dispose();\r\n this._legendsControl.dispose();\r\n this._layerCollection.dispose();\r\n this._layoutControl.dispose();\r\n this._tooltipViewer.dispose();\r\n this._dataExchanger.dispose();\r\n this._projection.dispose();\r\n this._dataExchanger = this._gestureHandler = this._projection = this._tracker = this._layoutControl = this._root = this._layerCollection = this._controlBar = this._legendsControl = null\r\n },\r\n _setupInteraction: function() {\r\n var options = {\r\n centeringEnabled: !!_parseScalar(this._getOption(\"panningEnabled\", true), true),\r\n zoomingEnabled: !!_parseScalar(this._getOption(\"zoomingEnabled\", true), true)\r\n };\r\n this._gestureHandler.setInteraction(options);\r\n this._controlBar.setInteraction(options)\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: DEFAULT_WIDTH,\r\n height: DEFAULT_HEIGHT\r\n }\r\n },\r\n _applySize: function(rect) {\r\n var layout = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1],\r\n right: 0,\r\n bottom: 0\r\n };\r\n this._projection.setSize(layout);\r\n this._layoutControl.setSize(layout);\r\n this._layerCollection.setRect([layout.left, layout.top, layout.width, layout.height]);\r\n this._requestChange([\"EXTRA_ELEMENTS\"])\r\n },\r\n _optionChanging: function(name, currentValue, nextValue) {\r\n if (currentValue && nextValue) {\r\n if (RE_STARTS_LAYERS.test(name)) {\r\n if (currentValue.dataSource && nextValue.dataSource && currentValue !== nextValue) {\r\n currentValue.dataSource = null\r\n } else if (RE_ENDS_DATA_SOURCE.test(name)) {\r\n this.option(name, null)\r\n }\r\n }\r\n }\r\n },\r\n _applyChanges: function() {\r\n this._notifyDirty();\r\n this.callBase.apply(this, arguments);\r\n this._notifyReady()\r\n },\r\n _optionChangesMap: {\r\n background: \"BACKGROUND\",\r\n layers: \"LAYERS\",\r\n extraElements: \"EXTRA_ELEMENTS\",\r\n controlBar: \"CONTROL_BAR\",\r\n legends: \"LEGENDS\",\r\n touchEnabled: \"TRACKER\",\r\n wheelEnabled: \"TRACKER\",\r\n panningEnabled: \"INTERACTION\",\r\n zoomingEnabled: \"INTERACTION\",\r\n projection: \"PROJECTION\",\r\n bounds: \"BOUNDS\",\r\n maxZoomFactor: \"MAX_ZOOM_FACTOR\",\r\n zoomFactor: \"ZOOM_FACTOR\",\r\n center: \"CENTER\"\r\n },\r\n _optionChangesOrder: [\"PROJECTION\", \"BOUNDS\", \"MAX_ZOOM_FACTOR\", \"ZOOM_FACTOR\", \"CENTER\", \"BACKGROUND\", \"CONTROL_BAR\", \"LEGENDS\", \"TRACKER\", \"INTERACTION\"],\r\n _change_PROJECTION: function() {\r\n this._setProjection()\r\n },\r\n _change_BOUNDS: function() {\r\n this._setBounds()\r\n },\r\n _change_MAX_ZOOM_FACTOR: function() {\r\n this._setMaxZoom()\r\n },\r\n _change_ZOOM_FACTOR: function() {\r\n this._setZoom()\r\n },\r\n _change_CENTER: function() {\r\n this._setCenter()\r\n },\r\n _change_BACKGROUND: function() {\r\n this._setBackgroundOptions()\r\n },\r\n _change_LAYERS: function() {\r\n this._setLayerCollectionOptions()\r\n },\r\n _change_CONTROL_BAR: function() {\r\n this._setControlBarOptions()\r\n },\r\n _change_EXTRA_ELEMENTS: function() {\r\n this._renderExtraElements()\r\n },\r\n _change_LEGENDS: function() {\r\n this._setLegendsOptions()\r\n },\r\n _change_TRACKER: function() {\r\n this._setTrackerOptions()\r\n },\r\n _change_INTERACTION: function() {\r\n this._setupInteraction()\r\n },\r\n _themeDependentChanges: [\"BACKGROUND\", \"LAYERS\", \"CONTROL_BAR\", \"LEGENDS\", \"TRACKER\", \"INTERACTION\"],\r\n _setProjection: function() {\r\n this._projection.setEngine(this.option(\"projection\"))\r\n },\r\n _setBounds: function() {\r\n this._projection.setBounds(this.option(\"bounds\"))\r\n },\r\n _setMaxZoom: function() {\r\n this._projection.setMaxZoom(this.option(\"maxZoomFactor\"))\r\n },\r\n _setZoom: function() {\r\n this._projection.setZoom(this.option(\"zoomFactor\"))\r\n },\r\n _setCenter: function() {\r\n this._projection.setCenter(this.option(\"center\"))\r\n },\r\n _setBackgroundOptions: function() {\r\n this._layerCollection.setBackgroundOptions(this._getOption(\"background\"))\r\n },\r\n _setLayerCollectionOptions: function() {\r\n this._layerCollection.setOptions(this.option(\"layers\"))\r\n },\r\n _getBoundingBoxFromDataSource() {\r\n var layers = this._layerCollection.items();\r\n var infinityBounds = [1 / 0, -1 / 0, -1 / 0, 1 / 0];\r\n var resultBBox = layers && layers.length ? layers.reduce((sumBBox, l) => {\r\n var layerData = l.getData();\r\n var itemCount = layerData.count();\r\n if (itemCount > 0) {\r\n var rootBBox = layerData.getBBox();\r\n if (rootBBox) {\r\n sumBBox = mergeBounds(sumBBox, rootBBox)\r\n } else {\r\n for (var i = 0; i < itemCount; i++) {\r\n sumBBox = mergeBounds(sumBBox, layerData.getBBox(i))\r\n }\r\n }\r\n }\r\n return sumBBox\r\n }, infinityBounds) : void 0;\r\n return resultBBox === infinityBounds ? void 0 : resultBBox\r\n },\r\n _setControlBarOptions: function() {\r\n this._controlBar.setOptions(this._getOption(\"controlBar\"))\r\n },\r\n _setLegendsOptions: function() {\r\n this._legendsControl.setOptions(this.option(\"legends\"))\r\n },\r\n _setTrackerOptions: function() {\r\n this._tracker.setOptions({\r\n touchEnabled: this._getOption(\"touchEnabled\", true),\r\n wheelEnabled: this._getOption(\"wheelEnabled\", true)\r\n })\r\n },\r\n getLayers() {\r\n return this._layerCollection.items().map(l => l.proxy)\r\n },\r\n getLayerByIndex: function(index) {\r\n var layer = this._layerCollection.byIndex(index);\r\n return layer ? layer.proxy : null\r\n },\r\n getLayerByName: function(name) {\r\n var layer = this._layerCollection.byName(name);\r\n return layer ? layer.proxy : null\r\n },\r\n clearSelection: function(_noEvent) {\r\n var layers = this._layerCollection.items();\r\n var i;\r\n var ii = layers.length;\r\n for (i = 0; i < ii; ++i) {\r\n layers[i].clearSelection(_noEvent)\r\n }\r\n return this\r\n },\r\n center: function(value) {\r\n if (void 0 === value) {\r\n return this._projection.getCenter()\r\n } else {\r\n this._projection.setCenter(value);\r\n return this\r\n }\r\n },\r\n zoomFactor: function(value) {\r\n if (void 0 === value) {\r\n return this._projection.getZoom()\r\n } else {\r\n this._projection.setZoom(value);\r\n return this\r\n }\r\n },\r\n viewport: function(value) {\r\n if (void 0 === value) {\r\n return this._projection.getViewport()\r\n } else {\r\n this._projection.setViewport(value);\r\n return this\r\n }\r\n },\r\n convertCoordinates: function(coordinates) {\r\n coordinates = coordinates && coordinates.length ? coordinates : [arguments[0], arguments[1]];\r\n return this.convertToGeo(coordinates[0], coordinates[1])\r\n },\r\n convertToGeo: function(x, y) {\r\n return this._projection.fromScreenPoint([x, y])\r\n },\r\n convertToXY: function(longitude, latitude) {\r\n return this._projection.toScreenPoint([longitude, latitude])\r\n }\r\n});\r\nimport componentRegistrator from \"../../core/component_registrator\";\r\ncomponentRegistrator(\"dxVectorMap\", dxVectorMap);\r\nexport default dxVectorMap;\r\nimport {\r\n plugin as ExportPlugin\r\n} from \"../core/export\";\r\nimport {\r\n plugin as TitlePlugin\r\n} from \"../core/title\";\r\nimport {\r\n plugin as TooltipPlugin\r\n} from \"../core/tooltip\";\r\nimport {\r\n plugin as LoadingIndicatorPlugin\r\n} from \"../core/loading_indicator\";\r\nimport {\r\n plugins as annotationsPlugins\r\n} from \"../core/annotations\";\r\ndxVectorMap.addPlugin(ExportPlugin);\r\ndxVectorMap.addPlugin(TitlePlugin);\r\ndxVectorMap.addPlugin(TooltipPlugin);\r\ndxVectorMap.addPlugin(LoadingIndicatorPlugin);\r\ndxVectorMap.addPlugin(annotationsPlugins.core);\r\ndxVectorMap.addPlugin(annotationsPlugins.vectorMap);\r\n","import * as i2 from '@angular/platform-browser';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';\nimport DxVectorMap from 'devextreme/viz/vector_map';\nimport * as i1 from 'devextreme-angular/core';\nimport { DxComponent, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';\nimport { DxiAnnotationComponent, DxiLayerComponent, DxiLegendComponent, DxiAnnotationModule, DxoBorderModule, DxoFontModule, DxoImageModule, DxoShadowModule, DxoBackgroundModule, DxoCommonAnnotationSettingsModule, DxoControlBarModule, DxoExportModule, DxiLayerModule, DxoLabelModule, DxiLegendModule, DxoMarginModule, DxoSourceModule, DxoTitleModule, DxoSubtitleModule, DxoLoadingIndicatorModule, DxoProjectionModule, DxoSizeModule, DxoTooltipModule } from 'devextreme-angular/ui/nested';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\n/**\r\n * [descr:dxVectorMap]\r\n\r\n */\r\nclass DxVectorMapComponent extends DxComponent {\r\n constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {\r\n super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);\r\n this._watcherHelper = _watcherHelper;\r\n this._idh = _idh;\r\n this._createEventEmitters([\r\n { subscribe: 'centerChanged', emit: 'onCenterChanged' },\r\n { subscribe: 'click', emit: 'onClick' },\r\n { subscribe: 'disposing', emit: 'onDisposing' },\r\n { subscribe: 'drawn', emit: 'onDrawn' },\r\n { subscribe: 'exported', emit: 'onExported' },\r\n { subscribe: 'exporting', emit: 'onExporting' },\r\n { subscribe: 'fileSaving', emit: 'onFileSaving' },\r\n { subscribe: 'incidentOccurred', emit: 'onIncidentOccurred' },\r\n { subscribe: 'initialized', emit: 'onInitialized' },\r\n { subscribe: 'optionChanged', emit: 'onOptionChanged' },\r\n { subscribe: 'selectionChanged', emit: 'onSelectionChanged' },\r\n { subscribe: 'tooltipHidden', emit: 'onTooltipHidden' },\r\n { subscribe: 'tooltipShown', emit: 'onTooltipShown' },\r\n { subscribe: 'zoomFactorChanged', emit: 'onZoomFactorChanged' },\r\n { emit: 'annotationsChange' },\r\n { emit: 'backgroundChange' },\r\n { emit: 'boundsChange' },\r\n { emit: 'centerChange' },\r\n { emit: 'commonAnnotationSettingsChange' },\r\n { emit: 'controlBarChange' },\r\n { emit: 'customizeAnnotationChange' },\r\n { emit: 'disabledChange' },\r\n { emit: 'elementAttrChange' },\r\n { emit: 'exportChange' },\r\n { emit: 'layersChange' },\r\n { emit: 'legendsChange' },\r\n { emit: 'loadingIndicatorChange' },\r\n { emit: 'maxZoomFactorChange' },\r\n { emit: 'panningEnabledChange' },\r\n { emit: 'pathModifiedChange' },\r\n { emit: 'projectionChange' },\r\n { emit: 'redrawOnResizeChange' },\r\n { emit: 'rtlEnabledChange' },\r\n { emit: 'sizeChange' },\r\n { emit: 'themeChange' },\r\n { emit: 'titleChange' },\r\n { emit: 'tooltipChange' },\r\n { emit: 'touchEnabledChange' },\r\n { emit: 'wheelEnabledChange' },\r\n { emit: 'zoomFactorChange' },\r\n { emit: 'zoomingEnabledChange' }\r\n ]);\r\n this._idh.setHost(this);\r\n optionHost.setHost(this);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.annotations]\r\n \r\n */\r\n get annotations() {\r\n return this._getOption('annotations');\r\n }\r\n set annotations(value) {\r\n this._setOption('annotations', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.background]\r\n \r\n */\r\n get background() {\r\n return this._getOption('background');\r\n }\r\n set background(value) {\r\n this._setOption('background', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.bounds]\r\n \r\n */\r\n get bounds() {\r\n return this._getOption('bounds');\r\n }\r\n set bounds(value) {\r\n this._setOption('bounds', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.center]\r\n \r\n */\r\n get center() {\r\n return this._getOption('center');\r\n }\r\n set center(value) {\r\n this._setOption('center', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.commonAnnotationSettings]\r\n \r\n */\r\n get commonAnnotationSettings() {\r\n return this._getOption('commonAnnotationSettings');\r\n }\r\n set commonAnnotationSettings(value) {\r\n this._setOption('commonAnnotationSettings', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.controlBar]\r\n \r\n */\r\n get controlBar() {\r\n return this._getOption('controlBar');\r\n }\r\n set controlBar(value) {\r\n this._setOption('controlBar', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.customizeAnnotation]\r\n \r\n */\r\n get customizeAnnotation() {\r\n return this._getOption('customizeAnnotation');\r\n }\r\n set customizeAnnotation(value) {\r\n this._setOption('customizeAnnotation', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.disabled]\r\n \r\n */\r\n get disabled() {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value) {\r\n this._setOption('disabled', value);\r\n }\r\n /**\r\n * [descr:DOMComponentOptions.elementAttr]\r\n \r\n */\r\n get elementAttr() {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value) {\r\n this._setOption('elementAttr', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.export]\r\n \r\n */\r\n get export() {\r\n return this._getOption('export');\r\n }\r\n set export(value) {\r\n this._setOption('export', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.layers]\r\n \r\n */\r\n get layers() {\r\n return this._getOption('layers');\r\n }\r\n set layers(value) {\r\n this._setOption('layers', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.legends]\r\n \r\n */\r\n get legends() {\r\n return this._getOption('legends');\r\n }\r\n set legends(value) {\r\n this._setOption('legends', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.loadingIndicator]\r\n \r\n */\r\n get loadingIndicator() {\r\n return this._getOption('loadingIndicator');\r\n }\r\n set loadingIndicator(value) {\r\n this._setOption('loadingIndicator', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.maxZoomFactor]\r\n \r\n */\r\n get maxZoomFactor() {\r\n return this._getOption('maxZoomFactor');\r\n }\r\n set maxZoomFactor(value) {\r\n this._setOption('maxZoomFactor', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.panningEnabled]\r\n \r\n */\r\n get panningEnabled() {\r\n return this._getOption('panningEnabled');\r\n }\r\n set panningEnabled(value) {\r\n this._setOption('panningEnabled', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.pathModified]\r\n \r\n */\r\n get pathModified() {\r\n return this._getOption('pathModified');\r\n }\r\n set pathModified(value) {\r\n this._setOption('pathModified', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.projection]\r\n \r\n */\r\n get projection() {\r\n return this._getOption('projection');\r\n }\r\n set projection(value) {\r\n this._setOption('projection', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.redrawOnResize]\r\n \r\n */\r\n get redrawOnResize() {\r\n return this._getOption('redrawOnResize');\r\n }\r\n set redrawOnResize(value) {\r\n this._setOption('redrawOnResize', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.rtlEnabled]\r\n \r\n */\r\n get rtlEnabled() {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.size]\r\n \r\n */\r\n get size() {\r\n return this._getOption('size');\r\n }\r\n set size(value) {\r\n this._setOption('size', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.theme]\r\n \r\n */\r\n get theme() {\r\n return this._getOption('theme');\r\n }\r\n set theme(value) {\r\n this._setOption('theme', value);\r\n }\r\n /**\r\n * [descr:BaseWidgetOptions.title]\r\n \r\n */\r\n get title() {\r\n return this._getOption('title');\r\n }\r\n set title(value) {\r\n this._setOption('title', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.tooltip]\r\n \r\n */\r\n get tooltip() {\r\n return this._getOption('tooltip');\r\n }\r\n set tooltip(value) {\r\n this._setOption('tooltip', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.touchEnabled]\r\n \r\n */\r\n get touchEnabled() {\r\n return this._getOption('touchEnabled');\r\n }\r\n set touchEnabled(value) {\r\n this._setOption('touchEnabled', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.wheelEnabled]\r\n \r\n */\r\n get wheelEnabled() {\r\n return this._getOption('wheelEnabled');\r\n }\r\n set wheelEnabled(value) {\r\n this._setOption('wheelEnabled', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.zoomFactor]\r\n \r\n */\r\n get zoomFactor() {\r\n return this._getOption('zoomFactor');\r\n }\r\n set zoomFactor(value) {\r\n this._setOption('zoomFactor', value);\r\n }\r\n /**\r\n * [descr:dxVectorMapOptions.zoomingEnabled]\r\n \r\n */\r\n get zoomingEnabled() {\r\n return this._getOption('zoomingEnabled');\r\n }\r\n set zoomingEnabled(value) {\r\n this._setOption('zoomingEnabled', value);\r\n }\r\n get annotationsChildren() {\r\n return this._getOption('annotations');\r\n }\r\n set annotationsChildren(value) {\r\n this.setChildren('annotations', value);\r\n }\r\n get layersChildren() {\r\n return this._getOption('layers');\r\n }\r\n set layersChildren(value) {\r\n this.setChildren('layers', value);\r\n }\r\n get legendsChildren() {\r\n return this._getOption('legends');\r\n }\r\n set legendsChildren(value) {\r\n this.setChildren('legends', value);\r\n }\r\n _createInstance(element, options) {\r\n return new DxVectorMap(element, options);\r\n }\r\n ngOnDestroy() {\r\n this._destroyWidget();\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n this.setupChanges('annotations', changes);\r\n this.setupChanges('bounds', changes);\r\n this.setupChanges('center', changes);\r\n this.setupChanges('layers', changes);\r\n this.setupChanges('legends', changes);\r\n }\r\n setupChanges(prop, changes) {\r\n if (!(prop in this._optionsToUpdate)) {\r\n this._idh.setup(prop, changes);\r\n }\r\n }\r\n ngDoCheck() {\r\n this._idh.doCheck('annotations');\r\n this._idh.doCheck('bounds');\r\n this._idh.doCheck('center');\r\n this._idh.doCheck('layers');\r\n this._idh.doCheck('legends');\r\n this._watcherHelper.checkWatchers();\r\n super.ngDoCheck();\r\n super.clearChangedOptions();\r\n }\r\n _setOption(name, value) {\r\n let isSetup = this._idh.setupSingle(name, value);\r\n let isChanged = this._idh.getChanges(name, value) !== null;\r\n if (isSetup || isChanged) {\r\n super._setOption(name, value);\r\n }\r\n }\r\n}\r\n/** @nocollapse */ DxVectorMapComponent.ɵfac = function DxVectorMapComponent_Factory(t) { return new (t || DxVectorMapComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.IterableDifferHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };\r\n/** @nocollapse */ DxVectorMapComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxVectorMapComponent, selectors: [[\"dx-vector-map\"]], contentQueries: function DxVectorMapComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\r\n i0.ɵɵcontentQuery(dirIndex, DxiAnnotationComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiLayerComponent, 4);\r\n i0.ɵɵcontentQuery(dirIndex, DxiLegendComponent, 4);\r\n } if (rf & 2) {\r\n let _t;\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.annotationsChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.layersChildren = _t);\r\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.legendsChildren = _t);\r\n } }, inputs: { annotations: \"annotations\", background: \"background\", bounds: \"bounds\", center: \"center\", commonAnnotationSettings: \"commonAnnotationSettings\", controlBar: \"controlBar\", customizeAnnotation: \"customizeAnnotation\", disabled: \"disabled\", elementAttr: \"elementAttr\", export: \"export\", layers: \"layers\", legends: \"legends\", loadingIndicator: \"loadingIndicator\", maxZoomFactor: \"maxZoomFactor\", panningEnabled: \"panningEnabled\", pathModified: \"pathModified\", projection: \"projection\", redrawOnResize: \"redrawOnResize\", rtlEnabled: \"rtlEnabled\", size: \"size\", theme: \"theme\", title: \"title\", tooltip: \"tooltip\", touchEnabled: \"touchEnabled\", wheelEnabled: \"wheelEnabled\", zoomFactor: \"zoomFactor\", zoomingEnabled: \"zoomingEnabled\" }, outputs: { onCenterChanged: \"onCenterChanged\", onClick: \"onClick\", onDisposing: \"onDisposing\", onDrawn: \"onDrawn\", onExported: \"onExported\", onExporting: \"onExporting\", onFileSaving: \"onFileSaving\", onIncidentOccurred: \"onIncidentOccurred\", onInitialized: \"onInitialized\", onOptionChanged: \"onOptionChanged\", onSelectionChanged: \"onSelectionChanged\", onTooltipHidden: \"onTooltipHidden\", onTooltipShown: \"onTooltipShown\", onZoomFactorChanged: \"onZoomFactorChanged\", annotationsChange: \"annotationsChange\", backgroundChange: \"backgroundChange\", boundsChange: \"boundsChange\", centerChange: \"centerChange\", commonAnnotationSettingsChange: \"commonAnnotationSettingsChange\", controlBarChange: \"controlBarChange\", customizeAnnotationChange: \"customizeAnnotationChange\", disabledChange: \"disabledChange\", elementAttrChange: \"elementAttrChange\", exportChange: \"exportChange\", layersChange: \"layersChange\", legendsChange: \"legendsChange\", loadingIndicatorChange: \"loadingIndicatorChange\", maxZoomFactorChange: \"maxZoomFactorChange\", panningEnabledChange: \"panningEnabledChange\", pathModifiedChange: \"pathModifiedChange\", projectionChange: \"projectionChange\", redrawOnResizeChange: \"redrawOnResizeChange\", rtlEnabledChange: \"rtlEnabledChange\", sizeChange: \"sizeChange\", themeChange: \"themeChange\", titleChange: \"titleChange\", tooltipChange: \"tooltipChange\", touchEnabledChange: \"touchEnabledChange\", wheelEnabledChange: \"wheelEnabledChange\", zoomFactorChange: \"zoomFactorChange\", zoomingEnabledChange: \"zoomingEnabledChange\" }, features: [i0.ɵɵProvidersFeature([\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function DxVectorMapComponent_Template(rf, ctx) { }, styles: [\"[_nghost-%COMP%] { display: block; }\"] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxVectorMapComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'dx-vector-map',\r\n template: '',\r\n styles: [' :host { display: block; }'],\r\n providers: [\r\n DxTemplateHost,\r\n WatcherHelper,\r\n NestedOptionHost,\r\n IterableDifferHelper\r\n ]\r\n }]\r\n }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }]; }, { annotations: [{\r\n type: Input\r\n }], background: [{\r\n type: Input\r\n }], bounds: [{\r\n type: Input\r\n }], center: [{\r\n type: Input\r\n }], commonAnnotationSettings: [{\r\n type: Input\r\n }], controlBar: [{\r\n type: Input\r\n }], customizeAnnotation: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], elementAttr: [{\r\n type: Input\r\n }], export: [{\r\n type: Input\r\n }], layers: [{\r\n type: Input\r\n }], legends: [{\r\n type: Input\r\n }], loadingIndicator: [{\r\n type: Input\r\n }], maxZoomFactor: [{\r\n type: Input\r\n }], panningEnabled: [{\r\n type: Input\r\n }], pathModified: [{\r\n type: Input\r\n }], projection: [{\r\n type: Input\r\n }], redrawOnResize: [{\r\n type: Input\r\n }], rtlEnabled: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], theme: [{\r\n type: Input\r\n }], title: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], touchEnabled: [{\r\n type: Input\r\n }], wheelEnabled: [{\r\n type: Input\r\n }], zoomFactor: [{\r\n type: Input\r\n }], zoomingEnabled: [{\r\n type: Input\r\n }], onCenterChanged: [{\r\n type: Output\r\n }], onClick: [{\r\n type: Output\r\n }], onDisposing: [{\r\n type: Output\r\n }], onDrawn: [{\r\n type: Output\r\n }], onExported: [{\r\n type: Output\r\n }], onExporting: [{\r\n type: Output\r\n }], onFileSaving: [{\r\n type: Output\r\n }], onIncidentOccurred: [{\r\n type: Output\r\n }], onInitialized: [{\r\n type: Output\r\n }], onOptionChanged: [{\r\n type: Output\r\n }], onSelectionChanged: [{\r\n type: Output\r\n }], onTooltipHidden: [{\r\n type: Output\r\n }], onTooltipShown: [{\r\n type: Output\r\n }], onZoomFactorChanged: [{\r\n type: Output\r\n }], annotationsChange: [{\r\n type: Output\r\n }], backgroundChange: [{\r\n type: Output\r\n }], boundsChange: [{\r\n type: Output\r\n }], centerChange: [{\r\n type: Output\r\n }], commonAnnotationSettingsChange: [{\r\n type: Output\r\n }], controlBarChange: [{\r\n type: Output\r\n }], customizeAnnotationChange: [{\r\n type: Output\r\n }], disabledChange: [{\r\n type: Output\r\n }], elementAttrChange: [{\r\n type: Output\r\n }], exportChange: [{\r\n type: Output\r\n }], layersChange: [{\r\n type: Output\r\n }], legendsChange: [{\r\n type: Output\r\n }], loadingIndicatorChange: [{\r\n type: Output\r\n }], maxZoomFactorChange: [{\r\n type: Output\r\n }], panningEnabledChange: [{\r\n type: Output\r\n }], pathModifiedChange: [{\r\n type: Output\r\n }], projectionChange: [{\r\n type: Output\r\n }], redrawOnResizeChange: [{\r\n type: Output\r\n }], rtlEnabledChange: [{\r\n type: Output\r\n }], sizeChange: [{\r\n type: Output\r\n }], themeChange: [{\r\n type: Output\r\n }], titleChange: [{\r\n type: Output\r\n }], tooltipChange: [{\r\n type: Output\r\n }], touchEnabledChange: [{\r\n type: Output\r\n }], wheelEnabledChange: [{\r\n type: Output\r\n }], zoomFactorChange: [{\r\n type: Output\r\n }], zoomingEnabledChange: [{\r\n type: Output\r\n }], annotationsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiAnnotationComponent]\r\n }], layersChildren: [{\r\n type: ContentChildren,\r\n args: [DxiLayerComponent]\r\n }], legendsChildren: [{\r\n type: ContentChildren,\r\n args: [DxiLegendComponent]\r\n }] }); })();\r\nclass DxVectorMapModule {\r\n}\r\n/** @nocollapse */ DxVectorMapModule.ɵfac = function DxVectorMapModule_Factory(t) { return new (t || DxVectorMapModule)(); };\r\n/** @nocollapse */ DxVectorMapModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxVectorMapModule });\r\n/** @nocollapse */ DxVectorMapModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ], DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DxVectorMapModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule\r\n ],\r\n declarations: [\r\n DxVectorMapComponent\r\n ],\r\n exports: [\r\n DxVectorMapComponent,\r\n DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxVectorMapModule, { declarations: [DxVectorMapComponent], imports: [DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxIntegrationModule,\r\n DxTemplateModule], exports: [DxVectorMapComponent, DxiAnnotationModule,\r\n DxoBorderModule,\r\n DxoFontModule,\r\n DxoImageModule,\r\n DxoShadowModule,\r\n DxoBackgroundModule,\r\n DxoCommonAnnotationSettingsModule,\r\n DxoControlBarModule,\r\n DxoExportModule,\r\n DxiLayerModule,\r\n DxoLabelModule,\r\n DxiLegendModule,\r\n DxoMarginModule,\r\n DxoSourceModule,\r\n DxoTitleModule,\r\n DxoSubtitleModule,\r\n DxoLoadingIndicatorModule,\r\n DxoProjectionModule,\r\n DxoSizeModule,\r\n DxoTooltipModule,\r\n DxTemplateModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DxVectorMapComponent, DxVectorMapModule };\n","import { DxTemplateModule } from 'devextreme-angular/core';\nexport * from 'devextreme-angular/core';\nimport * as i0 from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { DxAccordionModule } from 'devextreme-angular/ui/accordion';\nexport { DxAccordionComponent, DxAccordionModule } from 'devextreme-angular/ui/accordion';\nimport { DxActionSheetModule } from 'devextreme-angular/ui/action-sheet';\nexport { DxActionSheetComponent, DxActionSheetModule } from 'devextreme-angular/ui/action-sheet';\nimport { DxAutocompleteModule } from 'devextreme-angular/ui/autocomplete';\nexport { DxAutocompleteComponent, DxAutocompleteModule } from 'devextreme-angular/ui/autocomplete';\nimport { DxBarGaugeModule } from 'devextreme-angular/ui/bar-gauge';\nexport { DxBarGaugeComponent, DxBarGaugeModule } from 'devextreme-angular/ui/bar-gauge';\nimport { DxBoxModule } from 'devextreme-angular/ui/box';\nexport { DxBoxComponent, DxBoxModule } from 'devextreme-angular/ui/box';\nimport { DxBulletModule } from 'devextreme-angular/ui/bullet';\nexport { DxBulletComponent, DxBulletModule } from 'devextreme-angular/ui/bullet';\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\nexport { DxButtonComponent, DxButtonModule } from 'devextreme-angular/ui/button';\nimport { DxButtonGroupModule } from 'devextreme-angular/ui/button-group';\nexport { DxButtonGroupComponent, DxButtonGroupModule } from 'devextreme-angular/ui/button-group';\nimport { DxCalendarModule } from 'devextreme-angular/ui/calendar';\nexport { DxCalendarComponent, DxCalendarModule } from 'devextreme-angular/ui/calendar';\nimport { DxChartModule } from 'devextreme-angular/ui/chart';\nexport { DxChartComponent, DxChartModule } from 'devextreme-angular/ui/chart';\nimport { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\nexport { DxCheckBoxComponent, DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\nimport { DxCircularGaugeModule } from 'devextreme-angular/ui/circular-gauge';\nexport { DxCircularGaugeComponent, DxCircularGaugeModule } from 'devextreme-angular/ui/circular-gauge';\nimport { DxColorBoxModule } from 'devextreme-angular/ui/color-box';\nexport { DxColorBoxComponent, DxColorBoxModule } from 'devextreme-angular/ui/color-box';\nimport { DxContextMenuModule } from 'devextreme-angular/ui/context-menu';\nexport { DxContextMenuComponent, DxContextMenuModule } from 'devextreme-angular/ui/context-menu';\nimport { DxDataGridModule } from 'devextreme-angular/ui/data-grid';\nexport { DxDataGridComponent, DxDataGridModule } from 'devextreme-angular/ui/data-grid';\nimport { DxDateBoxModule } from 'devextreme-angular/ui/date-box';\nexport { DxDateBoxComponent, DxDateBoxModule } from 'devextreme-angular/ui/date-box';\nimport { DxDateRangeBoxModule } from 'devextreme-angular/ui/date-range-box';\nexport { DxDateRangeBoxComponent, DxDateRangeBoxModule } from 'devextreme-angular/ui/date-range-box';\nimport { DxDeferRenderingModule } from 'devextreme-angular/ui/defer-rendering';\nexport { DxDeferRenderingComponent, DxDeferRenderingModule } from 'devextreme-angular/ui/defer-rendering';\nimport { DxDiagramModule } from 'devextreme-angular/ui/diagram';\nexport { DxDiagramComponent, DxDiagramModule } from 'devextreme-angular/ui/diagram';\nimport { DxDraggableModule } from 'devextreme-angular/ui/draggable';\nexport { DxDraggableComponent, DxDraggableModule } from 'devextreme-angular/ui/draggable';\nimport { DxDrawerModule } from 'devextreme-angular/ui/drawer';\nexport { DxDrawerComponent, DxDrawerModule } from 'devextreme-angular/ui/drawer';\nimport { DxDropDownBoxModule } from 'devextreme-angular/ui/drop-down-box';\nexport { DxDropDownBoxComponent, DxDropDownBoxModule } from 'devextreme-angular/ui/drop-down-box';\nimport { DxDropDownButtonModule } from 'devextreme-angular/ui/drop-down-button';\nexport { DxDropDownButtonComponent, DxDropDownButtonModule } from 'devextreme-angular/ui/drop-down-button';\nimport { DxFileManagerModule } from 'devextreme-angular/ui/file-manager';\nexport { DxFileManagerComponent, DxFileManagerModule } from 'devextreme-angular/ui/file-manager';\nimport { DxFileUploaderModule } from 'devextreme-angular/ui/file-uploader';\nexport { DxFileUploaderComponent, DxFileUploaderModule } from 'devextreme-angular/ui/file-uploader';\nimport { DxFilterBuilderModule } from 'devextreme-angular/ui/filter-builder';\nexport { DxFilterBuilderComponent, DxFilterBuilderModule } from 'devextreme-angular/ui/filter-builder';\nimport { DxFormModule } from 'devextreme-angular/ui/form';\nexport { DxFormComponent, DxFormModule } from 'devextreme-angular/ui/form';\nimport { DxFunnelModule } from 'devextreme-angular/ui/funnel';\nexport { DxFunnelComponent, DxFunnelModule } from 'devextreme-angular/ui/funnel';\nimport { DxGalleryModule } from 'devextreme-angular/ui/gallery';\nexport { DxGalleryComponent, DxGalleryModule } from 'devextreme-angular/ui/gallery';\nimport { DxGanttModule } from 'devextreme-angular/ui/gantt';\nexport { DxGanttComponent, DxGanttModule } from 'devextreme-angular/ui/gantt';\nimport { DxHtmlEditorModule } from 'devextreme-angular/ui/html-editor';\nexport { DxHtmlEditorComponent, DxHtmlEditorModule } from 'devextreme-angular/ui/html-editor';\nimport { DxLinearGaugeModule } from 'devextreme-angular/ui/linear-gauge';\nexport { DxLinearGaugeComponent, DxLinearGaugeModule } from 'devextreme-angular/ui/linear-gauge';\nimport { DxListModule } from 'devextreme-angular/ui/list';\nexport { DxListComponent, DxListModule } from 'devextreme-angular/ui/list';\nimport { DxLoadIndicatorModule } from 'devextreme-angular/ui/load-indicator';\nexport { DxLoadIndicatorComponent, DxLoadIndicatorModule } from 'devextreme-angular/ui/load-indicator';\nimport { DxLoadPanelModule } from 'devextreme-angular/ui/load-panel';\nexport { DxLoadPanelComponent, DxLoadPanelModule } from 'devextreme-angular/ui/load-panel';\nimport { DxLookupModule } from 'devextreme-angular/ui/lookup';\nexport { DxLookupComponent, DxLookupModule } from 'devextreme-angular/ui/lookup';\nimport { DxMapModule } from 'devextreme-angular/ui/map';\nexport { DxMapComponent, DxMapModule } from 'devextreme-angular/ui/map';\nimport { DxMenuModule } from 'devextreme-angular/ui/menu';\nexport { DxMenuComponent, DxMenuModule } from 'devextreme-angular/ui/menu';\nimport { DxMultiViewModule } from 'devextreme-angular/ui/multi-view';\nexport { DxMultiViewComponent, DxMultiViewModule } from 'devextreme-angular/ui/multi-view';\nimport { DxNumberBoxModule } from 'devextreme-angular/ui/number-box';\nexport { DxNumberBoxComponent, DxNumberBoxModule } from 'devextreme-angular/ui/number-box';\nimport { DxPieChartModule } from 'devextreme-angular/ui/pie-chart';\nexport { DxPieChartComponent, DxPieChartModule } from 'devextreme-angular/ui/pie-chart';\nimport { DxPivotGridModule } from 'devextreme-angular/ui/pivot-grid';\nexport { DxPivotGridComponent, DxPivotGridModule } from 'devextreme-angular/ui/pivot-grid';\nimport { DxPivotGridFieldChooserModule } from 'devextreme-angular/ui/pivot-grid-field-chooser';\nexport { DxPivotGridFieldChooserComponent, DxPivotGridFieldChooserModule } from 'devextreme-angular/ui/pivot-grid-field-chooser';\nimport { DxPolarChartModule } from 'devextreme-angular/ui/polar-chart';\nexport { DxPolarChartComponent, DxPolarChartModule } from 'devextreme-angular/ui/polar-chart';\nimport { DxPopoverModule } from 'devextreme-angular/ui/popover';\nexport { DxPopoverComponent, DxPopoverModule } from 'devextreme-angular/ui/popover';\nimport { DxPopupModule } from 'devextreme-angular/ui/popup';\nexport { DxPopupComponent, DxPopupModule } from 'devextreme-angular/ui/popup';\nimport { DxProgressBarModule } from 'devextreme-angular/ui/progress-bar';\nexport { DxProgressBarComponent, DxProgressBarModule } from 'devextreme-angular/ui/progress-bar';\nimport { DxRadioGroupModule } from 'devextreme-angular/ui/radio-group';\nexport { DxRadioGroupComponent, DxRadioGroupModule } from 'devextreme-angular/ui/radio-group';\nimport { DxRangeSelectorModule } from 'devextreme-angular/ui/range-selector';\nexport { DxRangeSelectorComponent, DxRangeSelectorModule } from 'devextreme-angular/ui/range-selector';\nimport { DxRangeSliderModule } from 'devextreme-angular/ui/range-slider';\nexport { DxRangeSliderComponent, DxRangeSliderModule } from 'devextreme-angular/ui/range-slider';\nimport { DxRecurrenceEditorModule } from 'devextreme-angular/ui/recurrence-editor';\nexport { DxRecurrenceEditorComponent, DxRecurrenceEditorModule } from 'devextreme-angular/ui/recurrence-editor';\nimport { DxResizableModule } from 'devextreme-angular/ui/resizable';\nexport { DxResizableComponent, DxResizableModule } from 'devextreme-angular/ui/resizable';\nimport { DxResponsiveBoxModule } from 'devextreme-angular/ui/responsive-box';\nexport { DxResponsiveBoxComponent, DxResponsiveBoxModule } from 'devextreme-angular/ui/responsive-box';\nimport { DxSankeyModule } from 'devextreme-angular/ui/sankey';\nexport { DxSankeyComponent, DxSankeyModule } from 'devextreme-angular/ui/sankey';\nimport { DxSchedulerModule } from 'devextreme-angular/ui/scheduler';\nexport { DxSchedulerComponent, DxSchedulerModule } from 'devextreme-angular/ui/scheduler';\nimport { DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';\nexport { DxScrollViewComponent, DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\nexport { DxSelectBoxComponent, DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\nimport { DxSliderModule } from 'devextreme-angular/ui/slider';\nexport { DxSliderComponent, DxSliderModule } from 'devextreme-angular/ui/slider';\nimport { DxSortableModule } from 'devextreme-angular/ui/sortable';\nexport { DxSortableComponent, DxSortableModule } from 'devextreme-angular/ui/sortable';\nimport { DxSparklineModule } from 'devextreme-angular/ui/sparkline';\nexport { DxSparklineComponent, DxSparklineModule } from 'devextreme-angular/ui/sparkline';\nimport { DxSpeedDialActionModule } from 'devextreme-angular/ui/speed-dial-action';\nexport { DxSpeedDialActionComponent, DxSpeedDialActionModule } from 'devextreme-angular/ui/speed-dial-action';\nimport { DxSwitchModule } from 'devextreme-angular/ui/switch';\nexport { DxSwitchComponent, DxSwitchModule } from 'devextreme-angular/ui/switch';\nimport { DxTabPanelModule } from 'devextreme-angular/ui/tab-panel';\nexport { DxTabPanelComponent, DxTabPanelModule } from 'devextreme-angular/ui/tab-panel';\nimport { DxTabsModule } from 'devextreme-angular/ui/tabs';\nexport { DxTabsComponent, DxTabsModule } from 'devextreme-angular/ui/tabs';\nimport { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\nexport { DxTagBoxComponent, DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\nimport { DxTextAreaModule } from 'devextreme-angular/ui/text-area';\nexport { DxTextAreaComponent, DxTextAreaModule } from 'devextreme-angular/ui/text-area';\nimport { DxTextBoxModule } from 'devextreme-angular/ui/text-box';\nexport { DxTextBoxComponent, DxTextBoxModule } from 'devextreme-angular/ui/text-box';\nimport { DxTileViewModule } from 'devextreme-angular/ui/tile-view';\nexport { DxTileViewComponent, DxTileViewModule } from 'devextreme-angular/ui/tile-view';\nimport { DxToastModule } from 'devextreme-angular/ui/toast';\nexport { DxToastComponent, DxToastModule } from 'devextreme-angular/ui/toast';\nimport { DxToolbarModule } from 'devextreme-angular/ui/toolbar';\nexport { DxToolbarComponent, DxToolbarModule } from 'devextreme-angular/ui/toolbar';\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\nexport { DxTooltipComponent, DxTooltipModule } from 'devextreme-angular/ui/tooltip';\nimport { DxTreeListModule } from 'devextreme-angular/ui/tree-list';\nexport { DxTreeListComponent, DxTreeListModule } from 'devextreme-angular/ui/tree-list';\nimport { DxTreeMapModule } from 'devextreme-angular/ui/tree-map';\nexport { DxTreeMapComponent, DxTreeMapModule } from 'devextreme-angular/ui/tree-map';\nimport { DxTreeViewModule } from 'devextreme-angular/ui/tree-view';\nexport { DxTreeViewComponent, DxTreeViewModule } from 'devextreme-angular/ui/tree-view';\nimport { DxValidationGroupModule } from 'devextreme-angular/ui/validation-group';\nexport { DxValidationGroupComponent, DxValidationGroupModule } from 'devextreme-angular/ui/validation-group';\nimport { DxValidationSummaryModule } from 'devextreme-angular/ui/validation-summary';\nexport { DxValidationSummaryComponent, DxValidationSummaryModule } from 'devextreme-angular/ui/validation-summary';\nimport { DxValidatorModule } from 'devextreme-angular/ui/validator';\nexport { DxValidatorComponent, DxValidatorModule } from 'devextreme-angular/ui/validator';\nimport { DxVectorMapModule } from 'devextreme-angular/ui/vector-map';\nexport { DxVectorMapComponent, DxVectorMapModule } from 'devextreme-angular/ui/vector-map';\nimport 'devextreme/common/charts';\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\r\nclass DevExtremeModule {\r\n}\r\n/** @nocollapse */ DevExtremeModule.ɵfac = function DevExtremeModule_Factory(t) { return new (t || DevExtremeModule)(); };\r\n/** @nocollapse */ DevExtremeModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DevExtremeModule });\r\n/** @nocollapse */ DevExtremeModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[\r\n DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule\r\n ], DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule] });\r\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DevExtremeModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule\r\n ],\r\n exports: [\r\n DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule\r\n ]\r\n }]\r\n }], null, null); })();\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DevExtremeModule, { imports: [DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule], exports: [DxAccordionModule,\r\n DxActionSheetModule,\r\n DxAutocompleteModule,\r\n DxBarGaugeModule,\r\n DxBoxModule,\r\n DxBulletModule,\r\n DxButtonModule,\r\n DxButtonGroupModule,\r\n DxCalendarModule,\r\n DxChartModule,\r\n DxCheckBoxModule,\r\n DxCircularGaugeModule,\r\n DxColorBoxModule,\r\n DxContextMenuModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxDateRangeBoxModule,\r\n DxDeferRenderingModule,\r\n DxDiagramModule,\r\n DxDraggableModule,\r\n DxDrawerModule,\r\n DxDropDownBoxModule,\r\n DxDropDownButtonModule,\r\n DxFileManagerModule,\r\n DxFileUploaderModule,\r\n DxFilterBuilderModule,\r\n DxFormModule,\r\n DxFunnelModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxHtmlEditorModule,\r\n DxLinearGaugeModule,\r\n DxListModule,\r\n DxLoadIndicatorModule,\r\n DxLoadPanelModule,\r\n DxLookupModule,\r\n DxMapModule,\r\n DxMenuModule,\r\n DxMultiViewModule,\r\n DxNumberBoxModule,\r\n DxPieChartModule,\r\n DxPivotGridModule,\r\n DxPivotGridFieldChooserModule,\r\n DxPolarChartModule,\r\n DxPopoverModule,\r\n DxPopupModule,\r\n DxProgressBarModule,\r\n DxRadioGroupModule,\r\n DxRangeSelectorModule,\r\n DxRangeSliderModule,\r\n DxRecurrenceEditorModule,\r\n DxResizableModule,\r\n DxResponsiveBoxModule,\r\n DxSankeyModule,\r\n DxSchedulerModule,\r\n DxScrollViewModule,\r\n DxSelectBoxModule,\r\n DxSliderModule,\r\n DxSortableModule,\r\n DxSparklineModule,\r\n DxSpeedDialActionModule,\r\n DxSwitchModule,\r\n DxTabPanelModule,\r\n DxTabsModule,\r\n DxTagBoxModule,\r\n DxTextAreaModule,\r\n DxTextBoxModule,\r\n DxTileViewModule,\r\n DxToastModule,\r\n DxToolbarModule,\r\n DxTooltipModule,\r\n DxTreeListModule,\r\n DxTreeMapModule,\r\n DxTreeViewModule,\r\n DxValidationGroupModule,\r\n DxValidationSummaryModule,\r\n DxValidatorModule,\r\n DxVectorMapModule,\r\n DxTemplateModule] }); })();\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/*!\r\n * devextreme-angular\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n *\r\n * This software may be modified and distributed under the terms\r\n * of the MIT license. See the LICENSE file in the root of the project for details.\r\n *\r\n * https://github.com/DevExpress/devextreme-angular\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DevExtremeModule };\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Injectable()\r\nexport class AdminService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n/* getAllUsersWithCustomers(): Observable<AppUser[]> {\r\n return this.http.get<AppUser[]>(\"api/admin/GetAllUsersWithCustomers\");\r\n }*/\r\n}\r\n","import { EmptyError } from './util/EmptyError';\nexport function lastValueFrom(source, config) {\n const hasConfig = typeof config === 'object';\n return new Promise((resolve, reject) => {\n let _hasValue = false;\n let _value;\n source.subscribe({\n next: (value) => {\n _value = value;\n _hasValue = true;\n },\n error: reject,\n complete: () => {\n if (_hasValue) {\n resolve(_value);\n }\n else if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError());\n }\n },\n });\n });\n}\n","export class Toggle {\r\n constructor(\r\n public state: boolean = false) {\r\n }\r\n}\r\n","export class LanguageFlag {\r\n\r\n constructor(\r\n public code?: string,\r\n public language?: string,\r\n public flag?: string\r\n ) {\r\n\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { FeatureSystem } from '../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { LanguageFlag } from '../Model/Dto/LanguageFlag';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable()\r\nexport class ViewService {\r\n\r\n dropDownMimeDescr : string[] = new Array<string>();\r\n\r\n constructor(public translate: TranslateService) {\r\n\r\n this.initMimeDescriptionDropDown();\r\n\r\n\r\n }\r\n\r\n\r\n initMimeDescriptionDropDown() {\r\n \r\n this.translate.get(\"Artikelhauptbild\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Abb. ähnlich\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Sicherheitsdatenblatt\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Deeplink Produktseite\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Seitenansicht\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Deeplink REACH\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Energielabel\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktdatenblatt für Energielabel\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Detailansicht\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Vorderseite\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild schräg\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Ansicht oben\").subscribe((text: string) => { this.dropDownMimeDescr.push(text); });\r\n\r\n this.translate.get(\"Produktbild Ansicht links\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Ansicht rechts\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Rückseite\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produktbild Ansicht unten\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Schaltbild\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Maßzeichnung\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n \r\n\r\n\r\n\r\n this.translate.get(\"Produktdatenblatt\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Milieubild\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Produkt Icon\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Gebrauchsanleitung\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Langzeitlieferantenerklärung\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Montageanleitung\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Sonstige\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Hersteller Logo\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Kategoriebild\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Anwendung\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n this.translate.get(\"Anwendung Detail\").subscribe((text: string) => {\r\n this.dropDownMimeDescr.push(text);\r\n });\r\n\r\n \r\n\r\n }\r\n\r\n\r\n public fullScreen: boolean = false;\r\n public fullScreenBackUp: boolean = false;\r\n public jobsVisible: boolean = false;\r\n public catalogJobsVisible: boolean = false;\r\n \r\n static isSingleLine(name: string): boolean {\r\n switch (name) {\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static isSingleValue(name: string): boolean {\r\n switch (name) {\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n case \"udf_NMTOPFEATURES-1.0\":\r\n case \"udf_NMBENEFITS-1.0\":\r\n case \"udf_NMSCOPEOFSUPPLY-1.0\":\r\n case \"udf_NMUSAGE-1.0\":\r\n case \"udf_NMUSEFOR-1.0\":\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static isMagicSystem(name: string): boolean {\r\n switch (name) {\r\n case \"udf_NPECOMMERCE\":\r\n case \"udf_NPECOMMERCE_FEATURES\":\r\n case \"udf_NPECOMMERCE-1.0\":\r\n case \"udf_NPECOMMERCE_FEATURES-1.0\":\r\n return true;\r\n }\r\n }\r\n\r\nstatic hasEcommerceFeatureSystems(featureSystems: FeatureSystem[]): boolean {\r\n let hasEcommerce = false;\r\n let hasEcommerceFeatures = false;\r\n\r\n for (let featureSystem of featureSystems) {\r\n if (featureSystem.referenceFeatureSystemName == \"udf_NPECOMMERCE\") {\r\n hasEcommerce = true;\r\n } \r\n if (featureSystem.referenceFeatureSystemName == \"udf_NPECOMMERCE_FEATURES\") {\r\n hasEcommerceFeatures = true;\r\n }\r\n }\r\n\r\n if(hasEcommerce == false)\r\n return false;\r\n\r\n if (hasEcommerceFeatures == false)\r\n return false;\r\n return true;\r\n}\r\n\r\n\r\n\r\n //Auswahl\r\n static dropDownCurrencys = [\"EUR\", \"GBR\"];\r\n static dropDownTerritories = [\"AT\", \"CH\", \"CZ\", \"DE\", \"NL\", \"UK\", \"US\"];\r\n static dropDownMimeTypes = [\r\n 'image/jpeg', 'image/png', 'image/tif', 'application/pdf', 'url', 'image/gif', 'image/eps', 'video/mp4', 'video/url'\r\n ];\r\n static dropDownMimePurposes = ['normal', 'data_sheet', 'detail', 'icon', 'logo', 'safety_data_sheet', 'thumbnail', 'milieu', 'others', 'energie_label',\"ENVENTA\"];\r\n\r\n static dropDownFeatureSystemNames = [\r\n \"udf_NMMARKETINGCLAIM-1.0\", \"udf_NMOTHERS-1.0\", \"udf_NMSCOPEOFSUPPLY-1.0\",\r\n \"udf_NMTECHNICALDETAILS-1.0\", \"udf_NMTOPFEATURES-1.0\", \"udf_NMBENEFITS-1.0\", \"udf_NMTRADINGDETAILS-1.0\", \"udf_NMVARIANTS-1.0\", \"udf_NMPOINTS-1.0\",\r\n \"udf_NMUSAGE-1.0\", \"udf_NMUSEFOR-1.0\",\"udf_NMFILTER-1.0\"\r\n ];\r\n static dropDownPriceTypes = ['net_list', 'net_customer', 'net_customer_exp', 'nrp', 'gros_list', 'on_request', 'udp_'];\r\n static dropDownTaxs = [\"0.19\",\"0.21\"];\r\n static dropDownPriceFactors = [\"1\"];\r\n static dropDownLowerBounds = [\"1\", \"10\", \"100\"];\r\n static dropDownUnits = [\"C62\", \"BO\", \"CG\", \"CT\", \"BX\", \"LTR\", \"PR\"];\r\n static dropDownZero = [\"0\"];\r\n static dropDownOne = [\"1\"];\r\n static dropDownInternationalPidType = [\"gtin\", \"ean\"];\r\n\r\n static referenceTypes = [\"accessories\", \"sparepart\", \"similar\", \"followup\", \"mandatory\", \"select\", \"diff_orderunit\", \"consists_of\", \"base_product\", \"others\"];\r\n\r\n static idType: string[] = [\"buyer_specific\", \"supplier_specific\"];\r\n\r\n static getFlag(language) {\r\n const key = ViewService.languages.findIndex((languageTemplate => languageTemplate.code == language) as any);\r\n\r\n if (key != -1)\r\n return this.languages[key].flag;\r\n\r\n return \"de.gif\";\r\n }\r\n\r\n static languages: LanguageFlag[] = [\r\n new LanguageFlag(\"deu\", \"Deutsch\", \"de.gif\"),\r\n new LanguageFlag(\"eng\", \"Englisch\", \"gb.gif\"),\r\n new LanguageFlag(\"fra\", \"Französisch\", \"fr.gif\"),\r\n new LanguageFlag(\"spa\", \"Spanisch\", \"es.gif\"),\r\n //new LanguageFlag(\"ces\", \"Tschechisch\", \"cz.gif\"), // DeepL kann aktuell (12.01.2021) kein Tschechisch...\r\n new LanguageFlag(\"nld\", \"Niederländisch\", \"nl.png\"),\r\n new LanguageFlag(\"ita\", \"Italienisch\", \"ita.png\"),\r\n new LanguageFlag(\"pol\", \"Polnisch\", \"pl.gif\"),\r\n new LanguageFlag(\"rus\", \"Russisch\", \"ru.gif\")\r\n ];\r\n\r\n static frontendLanguages: LanguageFlag[] = [\r\n new LanguageFlag(\"de\", \"Deutsch\", \"de.gif\"),\r\n new LanguageFlag(\"en\", \"Englisch\", \"gb.gif\"),\r\n new LanguageFlag(\"nl\", \"Niederländisch\", \"nl.png\")\r\n ];\r\n}\r\n\r\n","export class OsgConnection {\r\n\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public shopUrl?: string,\r\n public apiKey?: string,\r\n public isTest?: boolean,\r\n \r\n ) {\r\n }\r\n}\r\n","export class MavisConnection {\r\n\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public shopUrl?: string,\r\n public userName?: string,\r\n public password?: string,\r\n public isLive?: boolean,\r\n\r\n ) {\r\n }\r\n}\r\n","export class SendToNWConfig {\r\n\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public ftpServer?: string,\r\n public ftpFolder?: string,\r\n public ftpUser?: string,\r\n public password?: string,\r\n public isTested?: boolean\r\n ) {\r\n }\r\n}\r\n","export class Message {\r\n\r\n constructor(\r\n public message?: string,\r\n public type: string = \"info\"\r\n ) {\r\n }\r\n\r\n\r\n}\r\n","import { CustomField } from \"./CustomField\";\r\n\r\nexport class WawiSettings {\r\n\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public name?: string,\r\n public startSupplierPid?: number,\r\n public currentSupplierPid?: number,\r\n public postFixSupplierPid?: string,\r\n public preFixSupplierPid?: string,\r\n public hasLine1?: boolean,\r\n public hasLine2?: boolean,\r\n public hasLine3?: boolean,\r\n public hasLine4?: boolean,\r\n public line1Length?: number,\r\n public line2Length?: number,\r\n public line3Length?: number,\r\n public line4Length?: number,\r\n public customFields: CustomField[] = []) {\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 { SearchFields } from \"./SearchFields\";\r\n\r\n\r\nexport class ProductSearchOptions {\r\n constructor(\r\n public id?: string,\r\n public userId? : string,\r\n public searchMode?: string,\r\n public isTarget?: boolean,\r\n public searchFields?: SearchFields[],\r\n public searchStateMode?: 'or' | 'and',\r\n ) {\r\n }\r\n deserialize(input: any) {\r\n Object.assign(this, input);\r\n\r\n //fuer jeden komplexen Datentypen notwendig (!)\r\n //this.userToCustomerList = this.userToCustomerList.map((utc: UserToCustomer) => new UserToCustomer().deserialize(utc));\r\n\r\n return this;\r\n }\r\n}\r\n","\r\nexport class SearchFields {\r\n constructor(\r\n public searchField?: string,\r\n public id?: string,\r\n public productSearchOptionsId?: number,\r\n ) {\r\n }\r\n deserialize(input: any) {\r\n Object.assign(this, input);\r\n\r\n //fuer jeden komplexen Datentypen notwendig (!)\r\n //this.userToCustomerList = this.userToCustomerList.map((utc: UserToCustomer) => new UserToCustomer().deserialize(utc));\r\n\r\n return this;\r\n }\r\n}\r\n","import { CustomerWikiDetail } from \"./CustomerWikiDetail\";\r\n\r\nexport class CustomerWiki {\r\n\r\n constructor(\r\n \r\n public customerId?: string,\r\n public id?: string,\r\n public entries?: CustomerWikiDetail[],\r\n ) { }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Message } from '../Model/System/Message';\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { CustomerAddon } from \"../Model/User/CustomerAddon\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { CustomerWiki } from \"../Model/System/CustomerWiki\";\r\nimport { CustomerWikiDetail } from \"../Model/System/CustomerWikiDetail\";\r\n\r\n\r\n@Injectable()\r\nexport class SystemService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public showMenu: boolean = true;\r\n public showHelp: boolean = false;\r\n public searchText: string = \"\";\r\n public pageIndexCatalogList: number = 0;\r\n\r\n public showShop: boolean = false;\r\n public templateLukas: boolean = false;\r\n\r\n\r\n public notify(message: Message, displayTime?: number) {\r\n notify({\r\n message: message.message,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n message.type,\r\n displayTime);\r\n }\r\n public notifyWarning(message: string, displayTime?: number) {\r\n notify({\r\n message: message\r\n\r\n },\r\n \"error\",\r\n displayTime);\r\n }\r\n\r\n\r\n public notifyInfo(message: string, displayTime?: number) {\r\n\r\n this.notify(new Message(message), displayTime);\r\n\r\n }\r\n\r\n public toDo(string: string) {\r\n console.log(string);\r\n }\r\n\r\n public showGroupReference: boolean;\r\n public showToolTips: boolean;\r\n\r\n getFileSizeString(size) {\r\n if (isNaN(size))\r\n size = 0;\r\n\r\n if (size < 1024)\r\n return size + ' Bytes';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Kb';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Mb';\r\n\r\n size /= 1024;\r\n\r\n if (size < 1024)\r\n return size.toFixed(2) + ' Gb';\r\n\r\n size /= 1024;\r\n\r\n return size.toFixed(2) + ' Tb';\r\n }\r\n\r\n\r\n\r\n //Link testen\r\n public testUrl(fileUrl: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"fileUrl\", fileUrl)\r\n }\r\n return (this.http.get<TestResult>(\"api/import/CheckFileUrl\", options)) as any;\r\n }\r\n\r\n public mediaUrlImport(fileUrl: string, catalogId: string, customerId: string): Observable<TestResult> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"fileUrl\", fileUrl).append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<TestResult>(\"api/import/ImportMimeUrl\", options)) as any;\r\n\r\n }\r\n\r\n public catalogUrlImport(fileUrl: string, catalogId: string, customerId: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"fileUrl\", fileUrl).append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<TestResult>(\"api/import/ImportCatalogUrl\", options)) as any;\r\n }\r\n\r\n public categoryUrlImport(fileUrl: string, catalogId: string, customerId: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"fileUrl\", fileUrl).append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<TestResult>(\"api/job/CreateCategoryImportFromUrlJob\", options)) as any;\r\n }\r\n\r\n public editHelp: boolean = false;\r\n\r\n public currentNavigationTitle: string;\r\n\r\n public help: CustomerWikiDetail[] = new Array<CustomerWikiDetail>();\r\n\r\n public selectedItems = [];\r\n\r\n saveHelp(customerId: string) {\r\n let wiki = new CustomerWiki();\r\n wiki.customerId = customerId;\r\n wiki.entries = this.help;\r\n this.http.post(\"api/CustomerWiki/SetCustomerWiki\", wiki).subscribe();\r\n }\r\n\r\n public loadHelp(customerId: string): Observable<CustomerWiki> {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<CustomerWiki>(\"api/CustomerWiki/GetCustomerWiki\", options)) as any;\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { WawiSettings } from \"../Model/User/WawiSettings\";\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class WawiSettingsService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n \r\n \r\n getWawiSettings(customerId: string): Observable<WawiSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"isLive\", \"true\")\r\n }\r\n\r\n return (this.http.get<WawiSettings>(\"api/WawiSettings/GetWawiSettings\", options)) as any;\r\n }\r\n\r\n \r\n\r\n update(settings: WawiSettings): Observable<number> {\r\n return (this.http.post(\"api/WawiSettings/Update\", settings)) as any;\r\n\r\n }\r\n\r\n \r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Customer } from \"../Model/User/Customer\";\r\nimport { AppUser } from \"../Model/User/AppUser\";\r\nimport { Login } from \"../Model/User/Login\";\r\nimport { CustomerAddonInfo } from \"../Model/User/CustomerAddonInfo\";\r\n\r\n@Injectable()\r\nexport class CustomerService {\r\n constructor(private http: HttpClient,\r\n\r\n ) {\r\n }\r\n\r\n public getCustomer(customerId: string): Observable<Customer> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/Customer/GetCustomer\", options)) as any;\r\n }\r\n\r\n public getAllCustomerByUser(userId: string): Observable<Customer[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"userId\", userId)\r\n }\r\n return (this.http.get(\"api/Customer/GetAllCustomerByUser\", options)) as any;\r\n }\r\n\r\n public getUsersOfCustomer(customerId: string): Observable<AppUser[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/Customer/GetUsersOfCustomer\", options)) as any;\r\n }\r\n\r\n public getLogins(): Observable<Login[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n }\r\n return (this.http.get(\"api/Customer/GetLogins\", options)) as any;\r\n }\r\n\r\n\r\n\r\n public getCustomerAddonInfos(): Observable<CustomerAddonInfo[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n };\r\n return (this.http.get(\"api/CustomerAddon/GetCustomerAddonInfoList\", options)) as any;\r\n }\r\n\r\n public create(customer: Customer): Observable<Customer> {\r\n var result = this.http.post<Customer>(\"api/Customer/CreateCustomer\", customer);\r\n return (result);\r\n }\r\n\r\n public update(customer: Customer): Observable<Customer> {\r\n var result = this.http.post<Customer>(\"api/Customer/UpdateCustomer\", customer);\r\n return (result);\r\n }\r\n\r\n public addUserToCustomer(customerId: string, userId: string, claim: string): Observable<Customer> {\r\n\r\n var headers = new HttpHeaders().append(\"userId\", userId).append(\"customerId\", customerId).append(\"claim\", claim);\r\n var result = this.http.post<Customer>(\"api/Customer/AddUserToCustomer\", { headers: headers, observe: 'response' });\r\n return (result);\r\n }\r\n\r\n public deleteUserFromCustomer(userId: string, customerId: string): Observable<HttpResponse<AppUser>> {\r\n var headers = new HttpHeaders().append(\"userId\", userId).append(\"customerId\", customerId);\r\n var result = this.http.delete<AppUser>(\"api/Customer/DeleteUserFromCustomer\", { headers: headers, observe: 'response' });\r\n return (result);\r\n }\r\n\r\n\r\n\r\n public deleteCustomer(customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.post<object>(\"api/Customer/DeleteCustomer\", null, options)) as any;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Contact } from \"../Model/Contact\";\r\nimport { RestoreBackup } from \"../Model/Dto/RestoreBackup\";\r\nimport { Backup } from \"../Model/System/Backup\";\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { AppUser } from \"../Model/user/AppUser\";\r\n\r\n@Injectable()\r\nexport class UserService {\r\n constructor(private http: HttpClient,\r\n\r\n ) {\r\n }\r\n\r\n public getUser(userId: string, customerId: string): Observable<AppUser> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"userId\", userId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/User/GetUser\", options)) as any;\r\n }\r\n\r\n public create(inviterId: string, user: AppUser): Observable<AppUser> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"inviterId\", inviterId)\r\n };\r\n var result = this.http.post<AppUser>(\"api/User/CreateUser\", user, options);\r\n return (result);\r\n }\r\n\r\n public update(user: AppUser): Observable<AppUser> {\r\n var result = this.http.post<AppUser>(\"api/User/UpdateUser\", user);\r\n return (result);\r\n }\r\n\r\n public delete(userId: string): Observable<string> {\r\n var result = this.http.post<string>(\"api/User/DeleteUser\", userId);\r\n return (result);\r\n }\r\n\r\n public setLastNewsRead(userId: string, lastNewsRead: Date): Observable<AppUser> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"userId\", userId)\r\n };\r\n\r\n var result = this.http.post<AppUser>(\"api/User/SetLastNewsRead\", lastNewsRead, options);\r\n return (result);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AddonService {\r\n\r\n private readonly apiUrl = 'api/Addon';\r\n\r\n constructor(private http: HttpClient,\r\n\r\n ) {\r\n }\r\n\r\n public getAllNormalAddons(): Observable<string[]> {\r\n const url = `${this.apiUrl}/GetAllNormalAddons`;\r\n const options = {};\r\n return this.http.get<string[]>(url, options);\r\n }\r\n\r\n public getAllExportAddons(): Observable<string[]> {\r\n const url = `${this.apiUrl}/GetAllExportAddons`;\r\n const options = {};\r\n return this.http.get<string[]>(url, options);\r\n }\r\n\r\n public getAllClassificationAddons(): Observable<string[]> {\r\n const url = `${this.apiUrl}/GetAllClassificationAddons`;\r\n const options = {};\r\n return this.http.get<string[]>(url, options);\r\n }\r\n\r\n public getAddonsOfCustomer(customerId: string): Observable<string[]> {\r\n const url = `${this.apiUrl}/GetAddonsOfCustomer`;\r\n const params = new HttpParams().append(\"customerId\", customerId);\r\n const options = { params };\r\n return this.http.get<string[]>(url, options);\r\n }\r\n\r\n public setAddonsToCustomer(customerId: string, addons: string[]): Observable<string[]> {\r\n const url = `${this.apiUrl}/SetAddonsToCustomer`;\r\n const params = new HttpParams().append(\"customerId\", customerId);\r\n const headers = new HttpHeaders().append(\"Content-Type\", \"application/json\");\r\n const options = { headers, params };\r\n return this.http.post<string[]>(url, addons, options);\r\n }\r\n\r\n public addonSelectionChanged(customerId: string, addedAddons: string[], removedAddons: string[]): Observable<string[]> {\r\n const url = `${this.apiUrl}/AddonSelectionChanged`;\r\n const params = new HttpParams().append(\"customerId\", customerId);\r\n const headers = new HttpHeaders().append(\"Content-Type\", \"application/json\");\r\n const options = { headers, params };\r\n const changedAddons = { addedAddons, removedAddons };\r\n return this.http.post<string[]>(url, changedAddons, options);\r\n }\r\n}\r\n","\r\nimport { map } from \"rxjs/operators\";\r\nimport { EventEmitter, Injectable, OnDestroy } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { from, of, lastValueFrom, Observable, Subscription } from \"rxjs\";\r\nimport { Credentials } from \"../Model/User/Credentials\";\r\nimport { AppUser } from \"../Model/User/AppUser\";\r\nimport { Customer } from \"../Model/User/Customer\";\r\nimport { ChangePassword } from \"../Model/User/ChangePassword\";\r\nimport { UserToCustomer } from \"../Model/User/UserToCustomer\";\r\nimport { RequestPassword } from \"../Model/User/RequestPassword\";\r\nimport { LanguageFlag } from \"../Model/Dto/LanguageFlag\";\r\nimport { CustomerLanguage } from \"../Model/Dto/CustomerLanguage\";\r\nimport { CustomerStatistics } from \"../Model/Dto/CustomerStatistics\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Toggle } from '../Model/ui/Toggle';\r\nimport { ViewService } from './view.service';\r\nimport { OsgConnection } from '../Model/Dto/OsgConnection';\r\nimport { MavisConnection } from '../Model/Dto/MavisConnection';\r\nimport { SendToNWConfig } from '../Model/Dto/SendToNWConfig';\r\nimport { Message } from '../Model/System/Message';\r\nimport { SystemService } from './system.service';\r\nimport { WawiSettings } from \"../Model/User/WawiSettings\";\r\nimport { WawiSettingsService } from \"./wawiSettingsService.service\";\r\nimport { CustomerService } from \"./customer.service\";\r\nimport { UserService } from \"./user.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { UserIdleService } from \"angular-user-idle\";\r\nimport { ProductSearchOptions } from \"../Model/User/ProductSearchOptions\";\r\nimport { SearchFields } from \"../Model/User/SearchFields\";\r\nimport { AddonService } from \"./addon.service\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class LoginService implements OnDestroy {\r\n constructor(private oauthService: OAuthService, private userIdleService: UserIdleService, private http: HttpClient, private systemService: SystemService,\r\n public translate: TranslateService, public wawiSettingsService: WawiSettingsService,\r\n public customerService: CustomerService, public userService: UserService, private route: ActivatedRoute, private router: Router, private addonService: AddonService) {\r\n }\r\n\r\n /* customerList: Customer[];\r\n customer: Customer;\r\n customerClaim: string = \"\";*/\r\n public osgConnection: OsgConnection = new OsgConnection();\r\n public osgConnectionTest: OsgConnection = new OsgConnection();\r\n public mavisConnectionTest: MavisConnection = new MavisConnection();\r\n public mavisConnectionLive: MavisConnection = new MavisConnection();\r\n public wawiSettings: WawiSettings = new WawiSettings();\r\n public sendToNWConfig: SendToNWConfig = new SendToNWConfig();\r\n\r\n private idleStartSubscription?: Subscription;\r\n private idleEndSubscription?: Subscription;\r\n private idlePingSubscription?: Subscription;\r\n\r\n loggedIn: boolean = false;\r\n onLoggedIn: EventEmitter<void> = new EventEmitter<void>();\r\n onNewNewsAmountChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n private token = \"\";\r\n private tokenExpiration: Date;\r\n currentUser: AppUser;\r\n currentCustomer: Customer;\r\n selectedProductTabIndex: number = 0;\r\n\r\n ngOnDestroy() {\r\n this.userIdleService.stopWatching();\r\n this.idleStartSubscription?.unsubscribe();\r\n this.idleEndSubscription?.unsubscribe();\r\n this.idlePingSubscription?.unsubscribe();\r\n }\r\n\r\n get isAdmin() {\r\n if (this.currentUser == null) {\r\n return false;\r\n }\r\n return this.currentUser.currentClaim == \"ADMIN\";\r\n }\r\n\r\n get isUser(): boolean {\r\n if (this.currentUser == null) {\r\n return false;\r\n }\r\n return (this.currentUser.currentClaim == \"USER\" || this.currentUser.currentClaim == \"MANAGER\" || this.currentUser.currentClaim == \"ADMIN\");\r\n }\r\n\r\n get isManager(): boolean {\r\n if (this.currentUser == null) {\r\n return false;\r\n }\r\n return (this.currentUser.currentClaim == \"MANAGER\" || this.currentUser.currentClaim == \"ADMIN\");\r\n }\r\n\r\n\r\n\r\n get productSearchOptions(): ProductSearchOptions {\r\n return this.currentUser.productSearchOptions;\r\n }\r\n set productSearchOptions(value: ProductSearchOptions) {\r\n this.currentUser.productSearchOptions = value;\r\n }\r\n\r\n get productSearchOptionsTarget(): ProductSearchOptions {\r\n return this.currentUser.productSearchOptions;\r\n }\r\n set productSearchOptionsTarget(value: ProductSearchOptions) {\r\n this.currentUser.productSearchOptions = value;\r\n }\r\n\r\n setCustomer(id: string): Promise<Customer> {\r\n return lastValueFrom(this.customerService.getCustomer(id))\r\n .then((result: Customer) => {\r\n this.currentCustomer = result;\r\n return this.userService.getUser(this.currentUser.id, this.currentCustomer.id).toPromise().then((user: AppUser) => {\r\n user.customerId = this.currentCustomer.id;\r\n this.updateUser(user);\r\n this.currentUser = user;\r\n return this.updateAddons().then(async () => {\r\n await this.getLanguages().toPromise();\r\n this.setShow();\r\n this.setLanguageFlags();\r\n return result;\r\n });\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n CheckAndSetFrontEndLanguage() {\r\n if (this.currentUser.frontEndLanguage) {\r\n if (this.translate.currentLang != this.currentUser.frontEndLanguage) {\r\n this.translate.use(this.currentUser.frontEndLanguage);\r\n this.translate.getTranslation(this.currentUser.frontEndLanguage);\r\n }\r\n }\r\n }\r\n\r\n getCustomerStatistics(customerId: string): Observable<CustomerStatistics[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return (this.http.get<CustomerStatistics[]>(\"api/Account/getStatistics\", options)) as any;\r\n }\r\n\r\n get loginRequired(): boolean {\r\n return this.token.length == 0 || this.tokenExpiration > new Date();\r\n }\r\n\r\n get accessToken(): string {\r\n return this.oauthService.getAccessToken();\r\n }\r\n\r\n login(creds: Credentials, customerId: string) {\r\n\r\n return this.oauthService.fetchTokenUsingPasswordFlowAndLoadUserProfile(creds.username, creds.password)\r\n .then(() => {\r\n this.token = this.oauthService.getAccessToken();\r\n this.tokenExpiration = new Date(this.oauthService.getAccessTokenExpiration());\r\n\r\n let userId = this.oauthService.getIdentityClaims()['sub'];\r\n let customerId = this.oauthService.getIdentityClaims()['customerId'];\r\n\r\n return this.userService.getUser(userId, customerId).toPromise().then((user: AppUser) => {\r\n this.currentUser = user;\r\n }).then(() => this.customerService.getCustomer(customerId).toPromise().then((result: Customer) => {\r\n\r\n this.currentCustomer = result;\r\n this.onLoggedIn.emit();\r\n this.loggedIn = true;\r\n return this.updateAddons().then(async () => {\r\n await this.getLanguages().toPromise();\r\n this.CheckAndSetFrontEndLanguage();\r\n\r\n this.userIdleService.resetTimer();\r\n this.userIdleService.startWatching();\r\n\r\n this.idleStartSubscription = this.userIdleService.onTimerStart().subscribe((count) => {\r\n console.log(`User idle ${count}`);\r\n });\r\n\r\n this.idleEndSubscription = this.userIdleService.onTimeout().subscribe(() => {\r\n console.log('Logged out because of idle timeout');\r\n this.logout();\r\n this.router.navigate([\"/login\"]);\r\n });\r\n\r\n this.idlePingSubscription = this.userIdleService.ping$.subscribe(() => {\r\n if (this.loggedIn) {\r\n console.log('Refreshing token');\r\n this.oauthService.refreshToken().then(() => {\r\n this.token = this.oauthService.getAccessToken();\r\n this.tokenExpiration = new Date(this.oauthService.getAccessTokenExpiration());\r\n });\r\n }\r\n });\r\n\r\n return true;\r\n });\r\n }));\r\n });\r\n /*\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return this.http.post(\"api/account/createtoken\", creds, options).toPromise().then(\r\n (response: TokenInfo) => {\r\n const tokenInfo = response;\r\n this.token = tokenInfo.token;\r\n this.tokenExpiration = tokenInfo.expiration;\r\n this.currentUser = tokenInfo.user;\r\n let customerId = this.route.snapshot.paramMap.get('customerId')!;\r\n if (customerId == null)\r\n customerId = this.currentUser.customerId\r\n\r\n return this.customerService.getCustomer(customerId).toPromise().then((result: Customer) => {\r\n this.currentCustomer = result;\r\n this.onLoggedIn.emit();\r\n this.loggedIn = true;\r\n this.updateAddons();\r\n this.getLanguages();\r\n this.CheckAndSetFrontEndLanguage();\r\n return true;\r\n });\r\n });\r\n */\r\n }\r\n\r\n silentlogin(customerId: string) {\r\n if (this.oauthService.getRefreshToken()) {\r\n return from(this.oauthService.refreshToken().then(() => {\r\n return this.oauthService.loadUserProfile();\r\n }).then(() => {\r\n this.token = this.oauthService.getAccessToken();\r\n this.tokenExpiration = new Date(this.oauthService.getAccessTokenExpiration());\r\n\r\n let userId = this.oauthService.getIdentityClaims()['sub'];\r\n let customerId = this.oauthService.getIdentityClaims()['customerId'];\r\n\r\n return this.userService.getUser(userId, customerId).toPromise().then((user: AppUser) => {\r\n this.currentUser = user;\r\n }).then(() => this.customerService.getCustomer(customerId).toPromise().then((result: Customer) => {\r\n\r\n this.currentCustomer = result;\r\n this.onLoggedIn.emit();\r\n this.loggedIn = true;\r\n return this.updateAddons().then(async () => {\r\n await this.getLanguages();\r\n this.CheckAndSetFrontEndLanguage();\r\n\r\n this.userIdleService.resetTimer();\r\n this.userIdleService.startWatching();\r\n\r\n this.idleStartSubscription = this.userIdleService.onTimerStart().subscribe((count) => {\r\n console.log(`User idle ${count}`);\r\n });\r\n\r\n this.idleEndSubscription = this.userIdleService.onTimeout().subscribe(() => {\r\n console.log('Logged out because of idle timeout');\r\n this.logout();\r\n this.router.navigate([\"/login\"]);\r\n });\r\n\r\n this.idlePingSubscription = this.userIdleService.ping$.subscribe(() => {\r\n if (this.loggedIn) {\r\n console.log('Refreshing token');\r\n this.oauthService.refreshToken().then(() => {\r\n this.token = this.oauthService.getAccessToken();\r\n this.tokenExpiration = new Date(this.oauthService.getAccessTokenExpiration());\r\n });\r\n }\r\n });\r\n\r\n return true;\r\n });\r\n }));\r\n }));\r\n } else {\r\n return of(false);\r\n }\r\n\r\n /*\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.post(\"api/account/silentlogin\", new Credentials(), options).pipe(\r\n map((response: TokenInfo) => {\r\n const tokenInfo = response;\r\n this.token = tokenInfo.token;\r\n this.tokenExpiration = tokenInfo.expiration;\r\n this.currentUser = tokenInfo.user;\r\n let customerId = this.route.snapshot.paramMap.get('customerId')!;\r\n if (customerId == null)\r\n customerId = this.currentUser.customerId\r\n return this.customerService.getCustomer(customerId).toPromise().then((result: Customer) => {\r\n this.currentCustomer = result;\r\n this.onLoggedIn.next();\r\n this.loggedIn = true;\r\n this.updateAddons();\r\n this.getLanguages();\r\n this.CheckAndSetFrontEndLanguage();\r\n return true;\r\n });\r\n }));\r\n */\r\n }\r\n\r\n logout() {\r\n this.idleStartSubscription?.unsubscribe();\r\n this.idleEndSubscription?.unsubscribe();\r\n this.idlePingSubscription?.unsubscribe();\r\n\r\n this.userIdleService.stopWatching();\r\n this.oauthService.logOut();\r\n\r\n this.loggedIn = false;\r\n this.token = \"\";\r\n this.tokenExpiration = null;\r\n this.currentUser = null;\r\n\r\n }\r\n\r\n getCurrentCustomer(): Observable<Customer> {\r\n return this.customerService.getCustomer(this.currentUser.customerId);\r\n }\r\n\r\n notifyTestAccount() {\r\n this.notifyTestAccountForCustomer(this.currentCustomer);\r\n }\r\n\r\n notifyTestAccountForCustomer(customer: Customer) {\r\n if (customer.isTestAccount) {\r\n\r\n let now = new Date(Date.now());\r\n let end = new Date(customer.accountValidDate.toString());\r\n\r\n //https://stackoverflow.com/a/51861734\r\n let diff = Math.abs(now.getTime() - end.getTime());\r\n let remaining = Math.floor((diff / (1000 * 60 * 60 * 24))) + 1; // / 365.25); // oder nicht +2? was ist mit sommer/winterzeit?\r\n\r\n if (end.getTime() < now.getTime()) {\r\n this.translate.get(\"TestLoginHintExpired\")\r\n .subscribe((text: string) => {\r\n let translation = text;\r\n this.systemService.notify(new Message(translation, \"info\"), 10000);\r\n });\r\n }\r\n else {\r\n this.translate.get(\"TestLoginHint\")\r\n .subscribe((text: string) => {\r\n let translation = text.replace(\"{{days}}\", remaining.toString());\r\n this.systemService.notify(new Message(translation, \"info\"), 10000);\r\n });\r\n }\r\n }\r\n }\r\n\r\n updateAddons() {\r\n return this.addonService.getAddonsOfCustomer(this.currentCustomer.id).toPromise().then((addons: string[]) => {\r\n this.setAddons(addons);\r\n return;\r\n });\r\n }\r\n\r\n getLanguages(): Observable<void> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.currentUser.customerId)\r\n };\r\n\r\n return this.http.get(\"api/AccountLanguage/GetCustomerLanguages\", options).pipe(\r\n map((result: CustomerLanguage[]) => {\r\n this.setLanguages(result);\r\n }));\r\n }\r\n\r\n register(customer: Customer) {\r\n return this.http.post(\"api/account/register\", customer).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n updateUser(user: AppUser = null) {\r\n if (user == null)\r\n user = this.currentUser;\r\n\r\n this.userService.update(user).subscribe((result: AppUser) => {\r\n this.currentUser = result;\r\n });\r\n }\r\n\r\n changePassword(changePassword: ChangePassword) {\r\n return this.http.post(\"api/account/ChangePassword\", changePassword).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n requestPassword(email: RequestPassword) {\r\n return this.http.post(\"api/account/requestPassword\", email).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n updateSearchFields(selectedSearchFields: string[], searchMode: string, userId: string, isTarget: boolean, searchStateMode: 'or' | 'and' = null): Observable<ProductSearchOptions> {\r\n let options = new ProductSearchOptions();\r\n options.searchFields = [];\r\n options.searchMode = searchMode;\r\n options.userId = userId;\r\n options.isTarget = isTarget;\r\n options.searchStateMode = searchStateMode;\r\n selectedSearchFields.forEach(value => {\r\n let field = new SearchFields();\r\n field.searchField = value;\r\n options.searchFields.push(field);\r\n });\r\n return this.http.post(\"api/user/updateSearchFields\", options).pipe(\r\n map((result: ProductSearchOptions) => {\r\n return result;\r\n }));\r\n }\r\n\r\n\r\n /*******************************************************************************/\r\n /* ACCOUNT */\r\n /*******************************************************************************/\r\n\r\n private _customers: UserToCustomer[];\r\n\r\n addons: string[] = []; \r\n\r\n hasAddonCSV = false;\r\n hasAddonMULTI_ACCOUNT = false;\r\n hasAddonEXCEL_TEMPLATE = false;\r\n hasAddonEXCEL_ORDER_EXPORT = false;\r\n hasAddonAGREEMENT = false;\r\n hasAddonCATALOG_DETAILS = false;\r\n hasAddonVALIDATION = false;\r\n hasAddonUDX = false;\r\n hasAddonSHOP_VIEW = false;\r\n hasAddonACTIONS = false;\r\n hasAddonShopWare = false;\r\n hasAddonMavis = false;\r\n hasAddonTranslate = false;\r\n hasAddonPRODUCT_DETAILS = false;\r\n hasAddonSEO = false;\r\n hasAddonDATA_QUALITY = false;\r\n hasAddonPRINT = false;\r\n hasAddon2BAExport = false;\r\n hasAddonOSG = false;\r\n hasAddonCLASSIFICATION = false;\r\n\r\n hasAddonEDENUMBERS = false;\r\n hasAddonLEGALITY = false;\r\n hasAddonSEARCH = false;\r\n hasAddonETIM = false;\r\n hasAddonECLASS = false;\r\n\r\n hasAddonNWCLASS = false;\r\n hasAddonECLASS_FREE = false;\r\n hasAddonShopware6 = false;\r\n hasAddonNordwest = false;\r\n hasAddonProductTemplates = false;\r\n hasAddonTemplateLukas = false;\r\n hasAddonEBAY = false;\r\n hasAddonCATEGORYEXPORT = false;\r\n hasAddonREPORTPRODUCTDATASHEET = false;\r\n hasAddonDEEPLTRANSLATE = false;\r\n hasAddonSHOPWARE6_VARIANTS = false;\r\n hasAddonSHOPWARE5_VARIANTS = false;\r\n hasAddonFEATURE_MAPPING = false;\r\n hasAddonDEVELOPMENT = false;\r\n hasAddonWawiErp = false;\r\n hasAddonSHOPWARE6_MULTILANGUAGE = false;\r\n hasAddonGevis = false;\r\n hasAddonEDESortimentsAbo = false;\r\n hasAddonRClass = false;\r\n hasAddonMassDataChange = false;\r\n hasAddonKI_TEXTS = false;\r\n hasAddonSHOPWARE5 = false;\r\n hasAddonSMARTSTORE = false;\r\n hasAddonVIRTUAL_CATALOGS = false;\r\n hasAddonSUPPLIERS = false;\r\n hasAddonODOO = false;\r\n hasAddonEDC = false;\r\n hasAddonINTERSHOP = false;\r\n hasAddonSHOPWARE6_ASYNCINDEXING = false;\r\n hasAddonEIS_CLASS = false;\r\n hasAddonElectronicSales = false;\r\n\r\n setAddons(addons: string[]) {\r\n this.hasAddonMavis = false;\r\n this.hasAddonEDC = false;\r\n this.hasAddonRClass = false;\r\n this.hasAddonOSG = false;\r\n this.hasAddonCSV = false;\r\n this.hasAddonMULTI_ACCOUNT = false;\r\n this.hasAddonEXCEL_TEMPLATE = false;\r\n this.hasAddonAGREEMENT = false;\r\n this.hasAddonEXCEL_ORDER_EXPORT = false;\r\n\r\n this.hasAddonCATALOG_DETAILS = false;\r\n this.hasAddonVALIDATION = false;\r\n this.hasAddonUDX = false;\r\n this.hasAddonSHOP_VIEW = false;\r\n this.hasAddonACTIONS = false;\r\n this.hasAddonShopWare = false;\r\n this.hasAddonTranslate = false;\r\n this.hasAddonPRODUCT_DETAILS = false;\r\n this.hasAddonSEO = false;\r\n this.hasAddonDATA_QUALITY = false;\r\n this.hasAddonPRINT = false;\r\n this.hasAddon2BAExport = false;\r\n this.hasAddonCLASSIFICATION = false;\r\n \r\n this.hasAddonEDENUMBERS = false;\r\n this.hasAddonLEGALITY = false;\r\n this.hasAddonSEARCH = false;\r\n this.hasAddonETIM = false;\r\n this.hasAddonECLASS = false;\r\n this.hasAddonNWCLASS = false;\r\n this.hasAddonShopware6 = false;\r\n this.hasAddonNordwest = false;\r\n this.hasAddonProductTemplates = false;\r\n this.hasAddonTemplateLukas = false;\r\n this.hasAddonEBAY = false;\r\n this.hasAddonCATEGORYEXPORT = false;\r\n this.hasAddonREPORTPRODUCTDATASHEET = false;\r\n this.hasAddonDEEPLTRANSLATE = false;\r\n this.hasAddonSHOPWARE6_VARIANTS = false;\r\n this.hasAddonSHOPWARE5_VARIANTS = false;\r\n this.hasAddonFEATURE_MAPPING = false;\r\n this.hasAddonDEVELOPMENT = false;\r\n this.hasAddonWawiErp = false;\r\n this.hasAddonSHOPWARE6_MULTILANGUAGE = false;\r\n this.hasAddonGevis = false;\r\n this.hasAddonEDESortimentsAbo = false;\r\n this.hasAddonMassDataChange = false;\r\n this.hasAddonKI_TEXTS = false;\r\n this.hasAddonSHOPWARE5 = false;\r\n this.hasAddonSMARTSTORE = false;\r\n this.hasAddonVIRTUAL_CATALOGS = false;\r\n this.hasAddonSUPPLIERS = false;\r\n this.hasAddonODOO = false;\r\n this.hasAddonSHOPWARE6_ASYNCINDEXING = false;\r\n this.hasAddonINTERSHOP = false;\r\n this.hasAddonEIS_CLASS = false;\r\n\r\n for (let entry of addons) {\r\n this.setAddonByString(entry);\r\n }\r\n\r\n this.addons = addons;\r\n }\r\n\r\n\r\n private setAddonByString(entry: string) {\r\n switch (entry) {\r\n case \"CSV\":\r\n this.hasAddonCSV = true;\r\n break;\r\n case \"EIS_CLASS\":\r\n this.hasAddonEIS_CLASS = true;\r\n break;\r\n case \"EXCEL_ORDER_EXPORT\":\r\n this.hasAddonEXCEL_ORDER_EXPORT = true;\r\n break;\r\n case \"EDC\":\r\n this.hasAddonEDC = true;\r\n break;\r\n case \"RCLASS\":\r\n this.hasAddonRClass = true;\r\n break;\r\n case \"SUPPLIERS\":\r\n this.hasAddonSUPPLIERS = true;\r\n break;\r\n case \"SHOPWARE6_MULTILANGUAGE\":\r\n this.hasAddonSHOPWARE6_MULTILANGUAGE = true;\r\n break;\r\n case \"WAWI_ERP\":\r\n this.hasAddonWawiErp = true;\r\n this.wawiSettingsService.getWawiSettings(this.currentCustomer.id).subscribe(\r\n (result: WawiSettings) => {\r\n this.wawiSettings = result;\r\n });\r\n break;\r\n case \"FEATURE_MAPPING\":\r\n this.hasAddonFEATURE_MAPPING = true;\r\n break;\r\n case \"SHOPWARE6_VARIANTS\":\r\n this.hasAddonSHOPWARE6_VARIANTS = true;\r\n break;\r\n case \"SHOPWARE5_VARIANTS\":\r\n this.hasAddonSHOPWARE5_VARIANTS = true;\r\n break;\r\n case \"CATEGORY_EXPORT\":\r\n this.hasAddonCATEGORYEXPORT = true;\r\n break;\r\n case \"REPORT_PRODUCT_DATASHEET\":\r\n this.hasAddonREPORTPRODUCTDATASHEET = true;\r\n break;\r\n case \"DEEPL_TRANSLATE\":\r\n this.hasAddonDEEPLTRANSLATE = true;\r\n break;\r\n case \"SHOPWARE_6\":\r\n this.hasAddonShopware6 = true;\r\n break;\r\n case \"MULTI_ACCOUNT\":\r\n this.hasAddonMULTI_ACCOUNT = true;\r\n break;\r\n case \"CLASSIFICATION\":\r\n this.hasAddonCLASSIFICATION = true;\r\n break;\r\n case \"OSG\":\r\n this.hasAddonOSG = true;\r\n break;\r\n case \"DATA_QUALITY\":\r\n this.hasAddonDATA_QUALITY = true;\r\n break;\r\n case \"SEO\":\r\n this.hasAddonSEO = true;\r\n break;\r\n case \"TWOBA\":\r\n this.hasAddon2BAExport = true;\r\n break;\r\n case \"EXCEL_TEMPLATE\":\r\n this.hasAddonEXCEL_TEMPLATE = true;\r\n break;\r\n case \"AGREEMENT\":\r\n this.hasAddonAGREEMENT = true;\r\n break;\r\n case \"CATALOG_DETAILS\":\r\n this.hasAddonCATALOG_DETAILS = true;\r\n break;\r\n case \"VALIDATION\":\r\n this.hasAddonVALIDATION = true;\r\n break;\r\n case \"UDX\":\r\n this.hasAddonUDX = true;\r\n break;\r\n case \"SHOP_VIEW\":\r\n this.hasAddonSHOP_VIEW = true;\r\n break;\r\n case \"ACTIONS\":\r\n this.hasAddonACTIONS = true;\r\n break;\r\n case \"SHOPWARE\":\r\n this.hasAddonShopWare = true;\r\n break;\r\n case \"NORDWEST\":\r\n this.hasAddonNordwest = true;\r\n break;\r\n case \"TRANSLATE\":\r\n this.hasAddonTranslate = true;\r\n break;\r\n case \"PRODUCT_DETAILS\":\r\n this.hasAddonPRODUCT_DETAILS = true;\r\n break;\r\n case \"PRINT\":\r\n this.hasAddonPRINT = true;\r\n break;\r\n case \"TEMPLATE_LUKAS\":\r\n this.hasAddonTemplateLukas = true;\r\n break; \r\n case \"EDENUMBERS\":\r\n this.hasAddonEDENUMBERS = true;\r\n break;\r\n case \"LEGALITY\":\r\n this.hasAddonLEGALITY = true;\r\n break;\r\n case \"SEARCH\":\r\n this.hasAddonSEARCH = true;\r\n break;\r\n case \"MAVIS\":\r\n this.hasAddonMavis = true;\r\n break;\r\n case \"ETIM\":\r\n this.hasAddonETIM = true;\r\n break;\r\n case \"ECLASS\":\r\n this.hasAddonECLASS = true;\r\n break;\r\n case \"ECLASS_FREE\":\r\n this.hasAddonECLASS_FREE = true;\r\n break;\r\n case \"NWCLASS\":\r\n this.hasAddonNWCLASS = true;\r\n break;\r\n case \"PRODUCT_TEMPLATE\":\r\n this.hasAddonProductTemplates = true;\r\n break;\r\n case \"EBAY\":\r\n this.hasAddonEBAY = true;\r\n break;\r\n case \"GEVIS\":\r\n this.hasAddonGevis = true;\r\n break;\r\n case \"EDE_SORTIMENTSABO\":\r\n this.hasAddonEDESortimentsAbo = true;\r\n break;\r\n case \"MASSDATACHANGE\":\r\n this.hasAddonMassDataChange = true;\r\n break;\r\n case \"DEVELOPMENT\":\r\n this.hasAddonDEVELOPMENT = true;\r\n break;\r\n case \"KI_TEXTS\":\r\n this.hasAddonKI_TEXTS = true;\r\n break;\r\n case \"SHOPWARE_5\":\r\n this.hasAddonSHOPWARE5 = true;\r\n break;\r\n case \"SMARTSTORE\":\r\n this.hasAddonSMARTSTORE = true;\r\n break;\r\n case \"VIRTUAL_CATALOGS\":\r\n this.hasAddonVIRTUAL_CATALOGS = true;\r\n break;\r\n case \"ODOO\":\r\n this.hasAddonODOO = true;\r\n break;\r\n case \"SHOPWARE6_ASYNCINDEXING\":\r\n this.hasAddonSHOPWARE6_ASYNCINDEXING = true;\r\n break;\r\n case \"INTERSHOP\":\r\n this.hasAddonINTERSHOP = true;\r\n break;\r\n case \"ELECTRONIC_SALES\":\r\n this.hasAddonElectronicSales = true;\r\n break;\r\n }\r\n }\r\n\r\n customerLanguages: CustomerLanguage[] = [];\r\n setLanguages(languges: CustomerLanguage[]) {\r\n this.customerLanguages = languges;\r\n this.setLanguageFlags();\r\n }\r\n\r\n addLanguage(language) {\r\n this.customerLanguages.push(language);\r\n this.setLanguageFlags();\r\n }\r\n\r\n selectedTranslateLanguage = \"deu\";\r\n languageFlags = new Array<LanguageFlag>();\r\n\r\n getLanguageText(language) {\r\n const key = ViewService.languages.indexOf((languageTemplate => languageTemplate.code == language) as any);\r\n\r\n if (key != -1)\r\n return ViewService.languages[key].language;\r\n\r\n return \"Deutsch\";\r\n }\r\n\r\n getLanguageFlag(language) {\r\n const key = ViewService.languages.findIndex(languageTemplate => languageTemplate.code == language);\r\n\r\n if (key != -1)\r\n return ViewService.languages[key].flag;\r\n\r\n return \"de.gif\";\r\n }\r\n\r\n setLanguageFlags() {\r\n this.languageFlags = this.setLanguageFlagsByCustomerLanguage(this.customerLanguages);\r\n }\r\n\r\n setLanguageFlagsByCustomerLanguage(customerLanguages): LanguageFlag[] {\r\n\r\n const languageFlags = new Array<LanguageFlag>();\r\n let foundElement = ViewService.languages.find(element => element.code == this.currentCustomer.defaultLanguage);\r\n if (foundElement)\r\n languageFlags.push(foundElement);\r\n\r\n for (let language of customerLanguages) {\r\n foundElement = ViewService.languages.find(element => element.code == language.language);\r\n\r\n if (foundElement)\r\n languageFlags.push(foundElement);\r\n }\r\n return languageFlags;\r\n }\r\n\r\n getLocaleFromFrontEndLanguage() {\r\n let lang = this.currentUser.frontEndLanguage;\r\n\r\n let locale = \"de-DE\";\r\n switch (lang) {\r\n //case \"de\": locale = \"de-DE\"; break;\r\n case \"en\": locale = \"en-GB\"; break;\r\n case \"nl\": locale = \"nl-NL\"; break;\r\n default: locale = \"de-DE\"; break;\r\n }\r\n\r\n return locale;\r\n }\r\n\r\n /*******************************************************************************/\r\n /* SETTINGS */\r\n /*******************************************************************************/\r\n\r\n get showToolTips() {\r\n if (this.currentUser)\r\n return this.currentUser.showToolTips;\r\n return true;\r\n }\r\n\r\n set showToolTips(value: boolean) {\r\n if (this.currentUser) {\r\n this.currentUser.showToolTips = value;\r\n this.userService.update(this.currentUser);\r\n }\r\n }\r\n\r\n get showProToolTips() {\r\n if (this.currentUser)\r\n return this.currentUser.showProToolTips;\r\n return true;\r\n }\r\n\r\n set showProToolTips(value: boolean) {\r\n if (this.currentUser) {\r\n this.currentUser.showProToolTips = value;\r\n this.userService.update(this.currentUser);\r\n }\r\n }\r\n\r\n get showPlaceHolders() {\r\n if (this.currentUser)\r\n return this.currentUser.showPlaceHolders;\r\n return true;\r\n }\r\n\r\n set showPlaceHolders(value: boolean) {\r\n if (this.currentUser) {\r\n this.currentUser.showPlaceHolders = value;\r\n this.userService.update(this.currentUser);\r\n }\r\n }\r\n\r\n setShow() {\r\n this.showHTMLEditor.state = true;\r\n this.showGroupReference.state = this.currentUser.showGroupReference;\r\n }\r\n\r\n public showHTMLEditor = new Toggle(true);\r\n public showGroupReference = new Toggle(false);\r\n\r\n saveShow() {\r\n this.currentUser.showGroupReference = this.showGroupReference.state;\r\n }\r\n\r\n get viewPort() {\r\n if (this.currentUser) {\r\n return this.currentUser.viewPort;\r\n }\r\n return false;\r\n }\r\n\r\n set viewPort(value: boolean) {\r\n if (this.currentUser) {\r\n this.currentUser.viewPort = value;\r\n this.userService.update(this.currentUser);\r\n }\r\n }\r\n\r\n getViewPort(): string {\r\n if (this.viewPort) {\r\n return \"containerWidth\";\r\n }\r\n return \"\";\r\n }\r\n\r\n set lastNewRead(value: Date) {\r\n if (this.currentUser) {\r\n this.userService.setLastNewsRead(this.currentUser.id, value).toPromise().then((result: AppUser) => {\r\n this.currentUser = result;\r\n this.onNewNewsAmountChanged.emit();\r\n });\r\n }\r\n }\r\n\r\n get lastNewRead(): Date {\r\n if (this.currentUser) {\r\n if (this.currentUser.lastNewsRead instanceof Date) {\r\n return this.currentUser.lastNewsRead;\r\n }\r\n return new Date(Date.parse(this.currentUser.lastNewsRead));\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","export class Functions {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n let r = Math.random() * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n static stripHTML(value: string) {\r\n if (!value)\r\n return \"\";\r\n return value.replace(/<[^!](?:[^>\"']|\"[^\"]*\"|'[^\"]*')*>|<!--.*?-->/g, ' ')\r\n .replace(/ +/g, ' ')\r\n .replace(/^s+/g, '')\r\n .replace(/s+$/g, '');\r\n }\r\n \r\n}\r\n\r\n\r\n\r\n\r\n","import { Functions } from '../../Services/functions';\r\n\r\nexport class CatalogPriceList {\r\n\r\n constructor(\r\n public order?: number,\r\n public name?: string,\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n\r\n }\r\n}\r\n","export class AddItem {\r\n\r\n constructor(\r\n public parentId?: string,\r\n public customerId?: string,\r\n public parentTreeId?: string,\r\n public newCategoryName?: string\r\n ) {\r\n }\r\n}\r\n","export class DuplicateItem {\r\n\r\n constructor(\r\n public sourceItemId?: string,\r\n\r\n public sourceCategoryId?: string,\r\n public sourceCatalogId?: string,\r\n\r\n public sourceCustomerId?: string,\r\n\r\n public targetItemId?: string,\r\n\r\n public targetCategoryId?: string,\r\n public targetCatalogId?: string,\r\n\r\n public targetCustomerId?: string\r\n ) {\r\n\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { BackgroundJob } from \"../Model/Dto/BackgroundJob\";\r\nimport { StartAction } from \"../Model/Dto/StartAction\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RestartJob } from '../Model/Dto/RestartJob';\r\nimport { ValidateExportJob } from '../Model/Dto/ValidateExportJob';\r\nimport { BackgroundJobEvent } from '../Model/Dto/BackgroundJobEvent';\r\nimport { ExportParameter } from '../Model/exportParameter/ExportParameter';\r\n\r\n@Injectable()\r\nexport class JobService {\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n }\r\n\r\n delete(id) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", id)\r\n }\r\n\r\n this.http.delete(\"api/job/delete\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n\r\n deleteFinishedJobs(customerId: string) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return this.http.delete(\"api/job/deleteFinishedJobs\", options);\r\n }\r\n\r\n\r\n\r\n setIsDeleted(id) {\r\n let i = 1;\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", id)\r\n };\r\n return this.http.post(\"api/job/SetIsDeleted\", null, options);\r\n }\r\n\r\n setIsDeletedForFinishedJobs(customerId: string) {\r\n let i = 1;\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return this.http.post(\"api/job/SetIsDeletedForFinishedJobs\", null, options);\r\n }\r\n\r\n setIsDeletedForSelectedJobs(jobIds: Array<number>) {\r\n let i = 1;\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n };\r\n return this.http.post(\"api/job/SetIsDeletedForSelectedJobs\", jobIds, options);\r\n }\r\n\r\n\r\n\r\n setIsPinned(jobId: number, remarks: string, pinExpires: Date) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", jobId.toString()).append(\"remarks\", remarks)\r\n };\r\n\r\n return this.http.post(\"api/Job/SetIsPinned\", pinExpires, options)\r\n .pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n setIsNotPinned(jobId: number) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", jobId.toString())\r\n };\r\n\r\n return this.http.post(\"api/Job/SetIsNotPinned\", null, options)\r\n .pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n getExportJobParameter(jobId: number, customerId: string): Observable<ExportParameter> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", jobId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<ExportParameter>(\"api/job/GetExportJobParameter\", options)) as any;\r\n }\r\n\r\n getJobs(customerId: string): Observable<BackgroundJob[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/GetJobs\", options)) as any;\r\n }\r\n\r\n isRefreshJobRunningInCatalog(catalogId: string, customerId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/IsRefreshJobRunningInCatalog\", options)) as any;\r\n }\r\n\r\n isJobRunningInCatalog(catalogId: string, customerId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/IsJobRunningInCatalog\", options)) as any;\r\n }\r\n\r\n isJobRunningThatChangesCatalogList(customerId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/IsJobRunningThatChangesCatalogList\", options)) as any;\r\n }\r\n\r\n isJobRunningThatChangesWawiList(customerId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/IsJobRunningThatChangesWawiList\", options)) as any;\r\n }\r\n\r\n getJobEvents(jobId: number): Observable<BackgroundJobEvent[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"jobId\", jobId.toString())\r\n }\r\n return (this.http.get<BackgroundJobEvent[]>(\"api/job/GetJobEvents\", options)) as any;\r\n }\r\n\r\n getJobsByCatalogId(catalogId: string, onlyNotDeleted: boolean): Observable<BackgroundJob[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"onlyNotDeleted\", onlyNotDeleted.toString())\r\n }\r\n return (this.http.get<BackgroundJob[]>(\"api/job/GetJobsByCatalogId\", options)) as any;\r\n }\r\n\r\n\r\n\r\n startUserAction(startAction: StartAction) {\r\n\r\n return this.http.post(\"api/Job/StartCatalogAction\", startAction).pipe(map(response => {\r\n return true;\r\n }));\r\n\r\n }\r\n\r\n startJob(startAction: StartAction) {\r\n\r\n return this.http.post(\"api/Job/StartJob\", startAction).pipe(map(response => {\r\n return true;\r\n }));\r\n\r\n }\r\n\r\n\r\n restartJob(dto: RestartJob) {\r\n return this.http.post(\"api/Job/RestartJob\", dto)\r\n .pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n validateExportJob(dto: ValidateExportJob) {\r\n return this.http.post(\"api/Job/ValidateExportJob\", dto)\r\n .pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n static getIconClass(icon) {\r\n switch (icon) {\r\n case \"Undefined\":\r\n return \"dx-icon-preferences\";\r\n case \"MissingTemplate\":\r\n return \"dx-icon-preferences\";\r\n case \"FileContentNotValid\":\r\n return \"dx-icon-preferences\";\r\n case \"WrongVersion\":\r\n return \"dx-icon-preferences\";\r\n case \"WrongFormat\":\r\n return \"dx-icon-preferences\";\r\n case \"Error\":\r\n return \"dx-icon-warning\";\r\n case \"Finished\":\r\n case \"Done\":\r\n return \"dx-icon-todo\";\r\n case \"Running\":\r\n return \"dx-icon-runner\";\r\n case \"Info\":\r\n return \"dx-icon-chevronnext\";\r\n }\r\n console.log(icon);\r\n return \"dx-icon-chevronnext\";\r\n }\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { ShopWare6Connection } from '../Model/Catalog/ShopWareConnection';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ShopService {\r\n\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n //Verbindung testen\r\n public testShopConnection(shopUrl: string, shopAuth: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"shopAuth\", shopAuth)\r\n }\r\n return (this.http.get(\"api/ShopConnector/testShopConnection\", options)) as any;\r\n }\r\n testShopWare6Connection(con: ShopWare6Connection) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"baseUri\", con.baseUri)\r\n .append(\"clientId\", con.clientId)\r\n .append(\"clientSecret\", con.clientSecret)\r\n }\r\n return (this.http.get(\"api/ShopConnector/testShopWare6Connection\", options)) as any;\r\n}\r\n\r\n\r\n //Verbindung abfragen\r\n public getConnection2Shop(shopUrl: string, shopAuth: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"shopAuth\", shopAuth)\r\n }\r\n return (this.http.get(\"api/ShopConnector/getConnection2Shop\", options)) as any;\r\n }\r\n // Start export\r\n startExport(startShopWareExport) {\r\n return this.http.post(\"api/ShopConnector/StartShopWareExport\", startShopWareExport).pipe(map(response => {\r\n return true;\r\n }));\r\n\r\n\r\n }\r\n\r\n //Noch in POST umbauen\r\n public establishedShopConnection(shopUrl: string, shopAuth: string, customerId: string, catalogId: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"shopAuth\", shopAuth).append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n }\r\n \r\n return (this.http.get<TestResult>(\"api/ShopConnector/establishedShopConnection\", options)) as any;\r\n }\r\n\r\n //Shop löschen\r\n public deleteShop(shopUrl: string, shopAuth: string, type: string): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"shopAuth\", shopAuth).append(\"type\", type)\r\n }\r\n return (this.http.get<TestResult>(\"api/ShopConnector/deleteShop\", options)) as any;\r\n }\r\n}\r\n","\r\nimport { PackingUnit } from \"./PackingUnit\";\r\n\r\nexport class OrderDetail {\r\n\r\n constructor(\r\n public contentUnit?: string,\r\n public deliveryTime?: string,\r\n public noCuPerOu?: string,\r\n public orderUnit?: string,\r\n public packingUnits?: PackingUnit[],\r\n public priceQuantity?: string,\r\n public quantityInterval?: string,\r\n public quantityMax?: string,\r\n public quantityMin?: string,\r\n public contentQuantity?: string,\r\n public contentPackage?: string,\r\n public basicQuantity?: string,\r\n public hasBasicPriceDuty?: boolean,\r\n public isBulkyGood?: boolean,\r\n public isTruckageCompanyGood?: boolean,\r\n public costOfLivingAdjustment?: number,\r\n public alloySurcharge?: number,\r\n public isDurabilityProduct?: boolean,\r\n public durabilityDays?:number,\r\n ) {\r\n this.packingUnits = [];\r\n }\r\n}\r\n","export class ProductLogistic {\r\n\r\n constructor(\r\n public countryOfOrigin?: string,\r\n public customsNumber?: string,\r\n public depth?: string,\r\n public length?: string,\r\n public specialTreatmentClass?: string,\r\n public specialTreatmentClassType ?: string,\r\n public weight?: string,\r\n public width?: string,\r\n public hazardousMaterialClassId?: string,\r\n public warrantyClassId?: string,\r\n ) {\r\n\r\n }\r\n}\r\n","\r\nexport class Agreement {\r\n\r\n constructor(\r\n public agreementId?: string,\r\n public type?: string,\r\n public agreementDesc?: string,\r\n public startDate?: Date,\r\n public endDate?: Date,\r\n ) {\r\n \r\n }\r\n\r\n}\r\n","export class LegalCharacteristic {\r\n\r\n constructor(\r\n public isBiocidalProduct?: boolean,\r\n public isSelfServiceForbidden ?: boolean,\r\n public isFertigpackv?: boolean,\r\n public isOekodesignEvpgEnvkg?: boolean,\r\n public isCommoditiesControll?: boolean,\r\n public isDetergenzienv?: boolean,\r\n public isKosmetikv?: boolean,\r\n public isCeGs?: boolean,\r\n public isWeeeRohsEar?: boolean,\r\n public isReach?: boolean,\r\n public isVerpackungsv ?: boolean,\r\n public isSecurityDatasheetNeeded?: boolean,\r\n public isDualUse?: boolean,\r\n public isBatterieV ?: boolean,\r\n ) {\r\n\r\n }\r\n}\r\n\r\n","export class LinkedField {\r\n\r\n constructor(\r\n public field?: string,\r\n public systemKey?: string,\r\n public elementKey?: string\r\n ) {\r\n\r\n }\r\n}\r\n","\r\n// Achtung: Property names werden in FieldNames.ts\r\n// mit einem String value gemappt.\r\nexport class ElectronicSalesDetail {\r\n // Flags\r\n notReturnable: boolean = null;\r\n notDiscountable: boolean = null;\r\n notOrderable: boolean = null;\r\n notRequestable: boolean = null;\r\n locked: boolean = null;\r\n onlyOffline: boolean = null;\r\n isFulfillment: boolean = null;\r\n\r\n // Marketing\r\n dateCreated: Date = null;\r\n summaryText = \"\";\r\n descriptionMarketing = \"\";\r\n promoInfo = \"\";\r\n noteCustomer = \"\";\r\n seoUrlFilename = \"\";\r\n\r\n // Richtlinien\r\n fsk = \"\";\r\n euDataSheet = \"\";\r\n eek = \"\";\r\n eeLabel = \"\";\r\n eekColor = \"\";\r\n\r\n // Lager/Logistik\r\n stockQuantitySupplier = \"\";\r\n stockQuantityReseller = \"\";\r\n stockKeeping = \"\";\r\n stockLocation = \"\";\r\n stockUnit = \"\";\r\n stockInfoText = \"\";\r\n stockKeepingModus = \"\";\r\n stockPriceFactor = \"\";\r\n noStockInfoText = \"\";\r\n\r\n // Zuschläge/Kosten\r\n surCharges1ArtNr = \"\";\r\n surCharges1Percent = \"\";\r\n surCharges1FixValue = \"\";\r\n surCharges2ArtNr = \"\";\r\n surCharges2Percent = \"\";\r\n surCharges2FixValue = \"\";\r\n charges = \"\";\r\n\r\n // Bestellung\r\n orderDecimalPlaces: number = null;\r\n orderFactor: number = null;\r\n orderStockFactor: number = null;\r\n orderPriceFactor: number = null;\r\n\r\n // Sonstiges\r\n newInShopTime: Date = null;\r\n showParts = \"\";\r\n optionTypeId = \"\";\r\n alternateArticleNumber = \"\";\r\n}\r\n","import { Mime } from \"./Mime\";\r\nimport { UdxField } from \"./UdxField\";\r\nimport { ProductLogistic } from \"./ProductLogistic\";\r\nimport { OrderDetail } from \"./OrderDetail\";\r\nimport { Reference } from \"./Reference\";\r\nimport { FeatureSystem } from \"./FeatureModels/FeatureSystem\";\r\nimport { Feature } from \"./FeatureModels/Feature\";\r\nimport { PriceList } from \"./PriceList\";\r\nimport { Agreement } from \"./Agreement\";\r\nimport { ChangeInfo } from \"./ChangeInfo\";\r\nimport { WarrantyClass } from './WarrantyClass';\r\nimport { HazmatClass } from './HazmatClass';\r\nimport { CatalogMapping } from './CatalogMapping';\r\nimport { LegalCharacteristic } from './LegalCharacteristic';\r\nimport { ReportLastRun } from './Reporting/ReportLastRun';\r\nimport { LinkedField } from './LinkedField';\r\nimport { WawiIntegration } from \"./WawiIntegration\";\r\nimport { ProductSupplier } from \"./ProductSupplier\";\r\nimport { ElectronicSalesDetail } from \"./ElectronicSalesDetail\";\r\nimport { ViewService } from \"../../Services/view.service\";\r\n\r\nexport class Product {\r\n constructor(\r\n public id?: string,\r\n public parentProductId?: string,\r\n public productCount?: number,\r\n public customerId?: string,\r\n public articleOrder?: string,\r\n public buyerAid?: string,\r\n public buyerAidType?: string,\r\n public descriptionLong?: string,\r\n public descriptionShort?: string,\r\n public erpGroupBuyer?: string,\r\n public erpGroupSupplier?: string,\r\n public internationalPid?: string,\r\n public internationalPidType?: string,\r\n public isChild?: boolean,\r\n public isMaster?: boolean,\r\n public lastChange?: string,\r\n public manufacturerAid?: string,\r\n public manufacturerName?: string,\r\n public edeNumber1?: string,\r\n public edeNumber2?: string,\r\n public edeNumber3?: string,\r\n public edeNumber4?: string,\r\n public edeNumber5?: string,\r\n public manufacturerTypeDescr?: string,\r\n public remarks?: string,\r\n public supplierPid?: string,\r\n public supplierAltAid?: string,\r\n public sourceProductId?: string,\r\n public productLogistic: ProductLogistic = new ProductLogistic(),\r\n public orderDetail: OrderDetail = new OrderDetail(),\r\n public mimes: Mime[] = [],\r\n public catalogMappings: CatalogMapping[] = [],\r\n public mimeTemplate: Mime[] = [],\r\n public udxs: UdxField[] = [],\r\n public products: Product[] = [],\r\n public featureSystems: FeatureSystem[] = [],\r\n public keywords: string[] = [],\r\n public states: string[] = [],\r\n public state: string = \"\",\r\n public priceLists: PriceList[] = [],\r\n public references: Reference[] = [],\r\n public productOrder?: number,\r\n public changeInfo?: ChangeInfo,\r\n public agreement: Agreement = new Agreement(),\r\n public metaTitel?: string,\r\n public metaDescription?: string,\r\n public legalCharacteristic: LegalCharacteristic = new LegalCharacteristic(),\r\n public isDiscontinued?: boolean,\r\n public discontinuedDate?: Date,\r\n public wawi?: WawiIntegration,\r\n public reportRuns: ReportLastRun[] = [],\r\n public linkedFields: LinkedField[] = [],\r\n public suppliers: ProductSupplier[] = [],\r\n public mainSupplierId?: string,\r\n public electronicSales: ElectronicSalesDetail = new ElectronicSalesDetail()\r\n ) { }\r\n ////Editier Fenster\r\n //public validateNumbers: number[] = [0, 0, 0, 0, 0]; //Setzt die Kreise auf Null\r\n //public productInfosValid: boolean = true; //Ausrufezeichen am MainTab auf aus\r\n //public productKeywordsValid: boolean = true; //Ausrufezeichen am MainTab auf aus\r\n //public productMediaValid: boolean = true; //Ausrufezeichen am MediaTab auf aus\r\n //public productFeaturesValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productPriceValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productOrderDetailsValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productLogiticValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productReferenceValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public featuresSystemsValid = false;\r\n //public marketingClaimValid = false;\r\n //public imagesValid = false;\r\n //public logoValid = false;\r\n //public dataSheetValid = false;\r\n public validGroup = 0;\r\n public groupString: string = \"\";\r\n public master: string = \"\";\r\n public descWithoutHTML: string = \"\";\r\n public featurelist: string = \"\";\r\n\r\n //ShopView\r\n public productImagesNormal: Mime[] = []; //Mimes mit dem Purpose Normal oder Detail für Shopview und Validierung\r\n public price: productPrice = new productPrice();\r\n public productImagesIcon: Mime[] = []; //Mimes mit dem Purpose Icon für Shopview und Validierung\r\n public productImagesLogos: Mime[] = [];\r\n public productDataSheets: Mime[] = [];\r\n\r\n public features: svFeatureSystem[] = []; //Featuressysteme für Shopview und Validierung\r\n public marketingClaim: string = \"\"; //MarketingClaim für Shopview und Validierung\r\n public productTileImages: { \"src\": string, \"ratio\": number }[] = [];\r\n\r\n\r\n\r\n public prepareView() {\r\n this.searchPrice();\r\n this.searchMimes();\r\n this.searchFeatures();\r\n if (this.productDataSheets.length > 0) {\r\n var dataSheets = new svFeatureSystem();\r\n dataSheets.name = \"Datenblätter\";\r\n dataSheets.type = \"data_sheet\";\r\n this.features.push(dataSheets);\r\n\r\n }\r\n }\r\n\r\n private searchMimes(): void {\r\n this.productImagesNormal = [];\r\n this.productImagesIcon = [];\r\n this.productImagesLogos = [];\r\n this.productDataSheets = [];\r\n\r\n if (this.mimes) {\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"normal\":\r\n case \"detail\":\r\n case \"milieu\":\r\n this.productImagesNormal.push(mime);\r\n break;\r\n case \"icon\":\r\n if (this.productImagesIcon.length < 5) {\r\n this.productImagesIcon.push(mime);\r\n }\r\n break;\r\n case \"logo\":\r\n this.productImagesLogos.push(mime);\r\n break;\r\n case \"data_sheet\":\r\n case \"safty_data_sheet\":\r\n this.productDataSheets.push(mime);\r\n break;\r\n }\r\n }\r\n\r\n this.productTileImages = [];\r\n //Tile Images suchen\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"normal\":\r\n if (parseInt(mime.mimeAlt) > 0)\r\n this.productTileImages.push({ \"src\": mime.normUri, \"ratio\": parseInt(mime.mimeAlt) });\r\n break;\r\n }\r\n }\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"milieu\":\r\n case \"detail\":\r\n if (parseInt(mime.mimeAlt) > 0)\r\n this.productTileImages.push({ \"src\": mime.normUri, \"ratio\": parseInt(mime.mimeAlt) });\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n private searchPrice(): void {\r\n //TODO OrderDetails pürfen\r\n\r\n\r\n\r\n // https://nextpim.myjetbrains.com/youtrack/issue/nPIM-610\r\n // Notiz: Ersten NRP, wenn vorhanden, sonst ersten NET_LIST, sonst irgend einen (ersten gefundenen).\r\n\r\n // ==> Mindestens bis zum ersten NRP alle durchgehen.\r\n // Das kann bedeuten wirklich alle durchgehen zu müssen, falls es gar keinen NRP gibt.\r\n\r\n var firstPrice = null;\r\n var firstNrpPrice = null;\r\n var firstNetlistPrice = null;\r\n\r\n if (this.priceLists) {\r\n loop:\r\n for (let priceList of this.priceLists) {\r\n for (let price of priceList.productPriceDetails) {\r\n\r\n if (firstPrice == null) {\r\n firstPrice = price;\r\n }\r\n\r\n if (price.priceType === \"nrp\" && firstNrpPrice == null) {\r\n firstNrpPrice = price;\r\n break loop;\r\n }\r\n\r\n if (price.priceType === \"net_list\" && firstNetlistPrice == null) {\r\n firstNetlistPrice = price;\r\n //break loop; // nicht aussteigen, es könnte später noch ein NRP kommen.\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n var price = null;\r\n if (firstNrpPrice != null) {\r\n price = firstNrpPrice;\r\n } else if (firstNetlistPrice != null) {\r\n price = firstNetlistPrice;\r\n } else {\r\n price = firstPrice;\r\n }\r\n\r\n\r\n\r\n if (price == null) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var tax = parseFloat(price.tax);\r\n tax = tax * 100;\r\n var amount = parseFloat(price.priceAmount);\r\n\r\n if (amount > 0 && price.priceCurrency != null && price.priceCurrency.length == 3 && tax < 100) {\r\n var amountString = amount.toLocaleString('de-DE', { style: 'currency', currency: price.priceCurrency });\r\n var priceObj = new productPrice();\r\n priceObj.prouctTax = tax.toString();\r\n priceObj.prouctUnit = \"1 Stück\";\r\n if (this.orderDetail != null) {\r\n switch (this.orderDetail.contentUnit) {\r\n case \"C62\":\r\n break;\r\n case \"ANN\":\r\n priceObj.prouctUnit = \"Jahreslizenz\";\r\n break;\r\n case \"MON\":\r\n priceObj.prouctUnit = \"Monatslizenz\";\r\n break;\r\n }\r\n }\r\n priceObj.prouctPrice = amountString;\r\n this.price = priceObj;\r\n }\r\n }\r\n\r\n public points = [];\r\n public technicalFeatures: Feature[] = [];\r\n public topFeatures: Feature[] = [];\r\n public benefitsFeatures: Feature[] = [];\r\n public usageFeatures: Feature[] = [];\r\n public useForFeatures: Feature[] = [];\r\n public variantsFeatures: Feature[] = [];\r\n\r\n private searchFeatures(): void {\r\n\r\n this.features = [];\r\n\r\n if (this.featureSystems) {\r\n\r\n for (let featureSystem of this.featureSystems) {\r\n switch (featureSystem.referenceFeatureSystemName) {\r\n case \"udf_NMTECHNICALDETAILS-1.0\":\r\n this.technicalFeatures = featureSystem.features;\r\n case \"udf_NMOTHERS-1.0\":\r\n case \"udf_NMTRADINGDETAILS-1.0\":\r\n var featSysObj = new svFeatureSystem();\r\n featSysObj.name = Product.translateFetSysName(featureSystem.referenceFeatureSystemName);\r\n for (let feature of featureSystem.features) {\r\n var featObj = new svFeatures();\r\n featObj.name = feature.name;\r\n featObj.value = feature.value;\r\n featObj.funit = feature.funit;\r\n featSysObj.features.push(featObj);\r\n }\r\n if (featSysObj.features.length > 0) {\r\n this.features.push(featSysObj);\r\n }\r\n break;\r\n case \"udf_NMTOPFEATURES-1.0\":\r\n this.topFeatures = featureSystem.features;\r\n case \"udf_NMBENEFITS-1.0\":\r\n if (featureSystem.referenceFeatureSystemName == \"udf_NMBENEFITS-1.0\") {\r\n this.benefitsFeatures = featureSystem.features;\r\n }\r\n case \"udf_NMUSAGE-1.0\":\r\n if (featureSystem.referenceFeatureSystemName == \"udf_NMUSAGE-1.0\") {\r\n this.usageFeatures = featureSystem.features;\r\n }\r\n case \"udf_NMSCOPEOFSUPPLY-1.0\":\r\n var featSysObj = new svFeatureSystem();\r\n featSysObj.name = Product.translateFetSysName(featureSystem.referenceFeatureSystemName);\r\n featSysObj.hasName = false;\r\n for (let feature of featureSystem.features) {\r\n var featObj = new svFeatures();\r\n featObj.value = feature.value;\r\n featSysObj.features.push(featObj);\r\n }\r\n if (featSysObj.features.length > 0) {\r\n this.features.push(featSysObj);\r\n }\r\n break;\r\n case \"udf_NMPOINTS-1.0\":\r\n this.points = [];\r\n for (let feature of featureSystem.features) {\r\n if (parseInt(feature.value) > 0 &&\r\n parseInt(feature.funit) > 0 &&\r\n parseInt(feature.value) <= parseInt(feature.funit)) {\r\n this.points.push({ \"name\": feature.name, \"points\": feature.value, \"max\": feature.funit });\r\n }\r\n }\r\n break;\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n for (let feature of featureSystem.features) {\r\n this.marketingClaim = feature.value;\r\n break;\r\n }\r\n break;\r\n case \"udf_NMUSEFOR-1.0\":\r\n this.useForFeatures = featureSystem.features;\r\n break;\r\n case \"udf_NMVARIANTS-1.0\":\r\n this.variantsFeatures = featureSystem.features;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static translateFetSysName(name: string): string {\r\n switch (name) {\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n return \"MarketingClaim\";\r\n case \"udf_NMTRADINGDETAILS-1.0\":\r\n return \"Lieferinformationen\";\r\n case \"udf_NMOTHERS-1.0\":\r\n return \"andere Merkmale\";\r\n case \"udf_NMTECHNICALDETAILS-1.0\":\r\n return \"Technische Daten\";\r\n case \"udf_NMTOPFEATURES-1.0\":\r\n return \"Topmerkmale\";\r\n case \"udf_NMSCOPEOFSUPPLY-1.0\":\r\n return \"Lieferumfang\";\r\n case \"udf_NMBENEFITS-1.0\":\r\n return \"Vorteile\";\r\n case \"udf_NMUSAGE-1.0\":\r\n return \"Anwendung\";\r\n case \"udf_NMUSEFOR-1.0\":\r\n return \"Material\";\r\n case \"udf_NMVARIANTS-1.0\":\r\n return \"Varianten Merkmale\";\r\n }\r\n return \"\";\r\n }\r\n\r\n //Validation\r\n\r\n public hintsActiv = false; //Wenn true, dann werden Hintsactiviert\r\n\r\n public activateHints() {\r\n this.hintsActiv = true;\r\n }\r\n\r\n addWarranty(warranty) {\r\n var warrantyFS = new svFeatureSystem();\r\n warrantyFS.name = warranty;\r\n warrantyFS.type = \"warranty\";\r\n this.features.push(warrantyFS);\r\n }\r\n\r\n addHazmat() {\r\n var hazmatFS = new svFeatureSystem();\r\n hazmatFS.name = \"Gefahreninformation\";\r\n hazmatFS.type = \"hazmat\";\r\n this.features.push(hazmatFS);\r\n }\r\n\r\n warrantyClass: WarrantyClass;\r\n hazmatClass: HazmatClass;\r\n\r\n\r\n public applyGlobalTemplate(other: Product) {\r\n this.featureSystems = other.featureSystems;\r\n this.mimes = other.mimes;\r\n }\r\n\r\n public hasMasterOrChild(): boolean {\r\n return this.productCount != null && this.productCount > 0 // Master\r\n || this.isChild != null && this.isChild; // Child\r\n }\r\n\r\n public isFieldLinked(field: string, system?: string, element?: string): boolean {\r\n if (this.linkedFields == null || this.linkedFields.length == 0) {\r\n return false;\r\n }\r\n\r\n var found = this.linkedFields.find(l => l.field == field && l.systemKey == system && l.elementKey == element);\r\n if (found != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, system?: string, element?: string): boolean {\r\n\r\n let _system = system;\r\n if (_system == null) {\r\n _system = \"-1\";\r\n }\r\n var _element = element;\r\n if (_element == null) {\r\n _element = \"-1\";\r\n }\r\n // Prüfen, ob das Feld aktuell gelinked ist:\r\n var isLinked = this.isFieldLinked(field, _system, _element);\r\n\r\n // Es ist nicht gelinked, nun soll es gelinked werden:\r\n if (isLinked == false) {\r\n var newItem = new LinkedField(field, _system, _element);\r\n this.linkedFields.push(newItem);\r\n if (this.isFeatureSystemField(field)) {\r\n var index = this.linkedFields.findIndex(l => l.field == \"REFERENCE_FEATURE_SYSTEM_NAME\" && l.systemKey == _system);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"REFERENCE_FEATURE_SYSTEM_NAME\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n }\r\n\r\n if (this.isFeatureField(field)) {\r\n var index = this.linkedFields.findIndex(l => l.field == \"REFERENCE_FEATURE_SYSTEM_NAME\" && l.systemKey == _system);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"REFERENCE_FEATURE_SYSTEM_NAME\", _system, \"-1\");\r\n this.linkedFields.push(newItem);\r\n }\r\n\r\n var index = this.linkedFields.findIndex(l => l.field == \"FNAME\" && l.systemKey == _system && l.elementKey == _element);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"FNAME\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n var index = this.linkedFields.findIndex(l => l.field == \"FUNIT\" && l.systemKey == _system && l.elementKey == _element);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"FUNIT\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // Es ist gelinked, nun soll es nicht mehr gelinked sein:\r\n var index = this.linkedFields.findIndex(l => l.field == field && l.systemKey == system && l.elementKey == element);\r\n if (index < 0) {\r\n return false; // Das dürfte aufgrund der vorigen Prüfung eig. nie vorkommen...\r\n }\r\n this.linkedFields.splice(index, 1);\r\n\r\n if (field == \"FVALUE\" || field == \"FEATURE_PRINT_ORDER\") {\r\n let featureSystem = this.featureSystems.find(x => x.validFeatureSystemId == system);\r\n if (ViewService.isSingleValue(featureSystem.referenceFeatureSystemName)) {\r\n let foundLinkedField = this.linkedFields.findIndex(x => (x.field == \"FVALUE\" || x.field == \"FEATURE_PRINT_ORDER\") && x.systemKey == system && x.elementKey == element);\r\n if (foundLinkedField < 0) {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system || l.elementKey != _element);\r\n }\r\n }\r\n }\r\n\r\n if (field == \"REFERENCE_FEATURE_SYSTEM_NAME\") {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system);\r\n }\r\n\r\n if (field == \"FNAME\" || field == \"FUNIT\") {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system || l.elementKey != _element);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n isFeatureSystemField(field: string): boolean {\r\n if (field == \"REFERENCE_FEATURE_SYSTEM\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_SYSTEM_NAME\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_ID\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_ID2\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_NAME\")\r\n return true;\r\n if (field == \"FS_ORDER\")\r\n return true;\r\n return false;\r\n }\r\n\r\n isFeatureField(field: string): boolean {\r\n if (field == \"FNAME\")\r\n return true;\r\n if (field == \"FVALUE\")\r\n return true;\r\n if (field == \"FUNIT\")\r\n return true;\r\n if (field == \"FORDER\")\r\n return true;\r\n if (field == \"FDESCR\")\r\n return true;\r\n if (field == \"FVALUE_DETAILS\")\r\n return true;\r\n if (field == \"FEATURE_PRINT_ORDER\")\r\n return true;\r\n if (field == \"ISVARIANT\")\r\n return true;\r\n return false; \r\n }\r\n\r\n public getClassForLinkedField(linked: boolean): string {\r\n if (linked) {\r\n // linked ==> link anzeigen\r\n return \"glyphicons-halflings-167-link-nextPimBlue\"\r\n } else {\r\n // nicht linked ==> link-remove anzeigen\r\n return \"glyphicons-halflings-168-link-remove-nextPimBlue\"\r\n }\r\n }\r\n\r\n}\r\n\r\nclass productPrice {\r\n public prouctPrice: string = \"\";\r\n public prouctCurrency: string = \"\";\r\n public prouctTax: string = \"\";\r\n public prouctUnit: string = \"\";\r\n}\r\n\r\nclass svFeatureSystem {\r\n public name: string = \"\";\r\n public hasName: boolean = true;\r\n public type: string = \"normal\";\r\n public features: svFeatures[] = [];\r\n}\r\n\r\nclass svFeatures {\r\n public name: string = \"\";\r\n public value: string = \"\";\r\n public funit: string = \"\";\r\n}\r\n","import { Feature } from \"./Feature\";\r\nimport { Functions } from '../../../Services/functions';\r\n\r\nexport class FeatureSystem {\r\n featureSystemTable: string;\r\n featureSystemList: string;\r\n private _validFeatureSystemId?: string;\r\n constructor(\r\n public order?: number,\r\n public referenceFeatureGroupId?: string,\r\n public referenceFeatureGroupId2?: string,\r\n public referenceFeatureSystemName?: string,\r\n public referenceFeatureGroupName?: string,\r\n validFeatureSystemId?: string,\r\n public oldValidFeatureSystemId?: string,\r\n public guid: string = Functions.newGuid(),\r\n public features: Feature[] = [],\r\n public customerId?: string,\r\n public updateLinkedFields: boolean = false\r\n ) {\r\n this._validFeatureSystemId = validFeatureSystemId;\r\n this.referenceFeatureSystemName = \"\";\r\n}\r\n\r\n public get validFeatureSystemId(): string | undefined {\r\n return this._validFeatureSystemId;\r\n }\r\n\r\n\r\n public set validFeatureSystemId(newId: string | undefined) {\r\n if (this._validFeatureSystemId && newId != this._validFeatureSystemId) {\r\n this.oldValidFeatureSystemId = this._validFeatureSystemId;\r\n }\r\n this._validFeatureSystemId = newId;\r\n }\r\n\r\n toJSON(): any {\r\n return {\r\n ...this,\r\n validFeatureSystemId: this._validFeatureSystemId // Include private property in JSON\r\n };\r\n }\r\n}\r\n","import { CustomWawiField } from \"./CustomWawiField\";\r\n\r\nexport class WawiIntegration {\r\n\r\n constructor(\r\n public wawiId?: string,\r\n public line1?: string,\r\n public line2?: string,\r\n public line3?: string,\r\n public line4?: string,\r\n public customFields?: CustomWawiField[],\r\n\r\n\r\n ) {\r\n }\r\n}\r\n","export class CustomWawiField {\r\n\r\n constructor(\r\n public order?: number,\r\n\r\n public elementId?: number,\r\n public listId?: string,\r\n public stringValue?: string,\r\n public numberValue?: number,\r\n public boolValue?: boolean\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { OrderDetail } from \"../../Model/Catalog/OrderDetail\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { Agreement } from \"../../Model/Catalog/Agreement\";\r\nimport { FeatureSystem } from \"../../Model/Catalog/FeatureModels/FeatureSystem\";\r\nimport { WawiIntegration } from \"../../Model/Catalog/WawiIntegration\";\r\nimport { WawiSettings } from \"../../Model/User/WawiSettings\";\r\nimport { CustomWawiField } from \"../../Model/Catalog/CustomWawiField\";\r\nimport { CreateReportProductDatasheet } from \"../../Model/Dto/CreateReportProductDatasheet\";\r\nimport { ProductSupplier } from \"../../Model/Catalog/ProductSupplier\";\r\nimport { LinkedField } from \"../../Model/Catalog/LinkedField\";\r\nimport { ElectronicSalesDetail } from \"../../Model/Catalog/ElectronicSalesDetail\";\r\n\r\n\r\n@Injectable()\r\nexport class ProductService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getProductFromJson(product: Product, wawiSettings: WawiSettings) {\r\n var productObj = new Product();\r\n productObj.id = product.id;\r\n productObj.parentProductId = product.parentProductId;\r\n productObj.isChild = product.isChild;\r\n productObj.customerId = product.customerId;\r\n productObj.articleOrder = product.articleOrder;\r\n productObj.buyerAid = product.buyerAid;\r\n productObj.buyerAidType = product.buyerAidType;\r\n productObj.descriptionLong = product.descriptionLong;\r\n productObj.descriptionShort = product.descriptionShort;\r\n productObj.erpGroupBuyer = product.erpGroupBuyer;\r\n productObj.erpGroupSupplier = product.erpGroupSupplier;\r\n productObj.internationalPid = product.internationalPid;\r\n productObj.internationalPidType = product.internationalPidType;\r\n productObj.lastChange = product.lastChange;\r\n productObj.manufacturerAid = product.manufacturerAid;\r\n productObj.manufacturerName = product.manufacturerName;\r\n productObj.manufacturerTypeDescr = product.manufacturerTypeDescr;\r\n productObj.remarks = product.remarks;\r\n productObj.state = product.state;\r\n productObj.supplierPid = product.supplierPid;\r\n productObj.supplierAltAid = product.supplierAltAid;\r\n productObj.productLogistic = product.productLogistic;\r\n productObj.wawi = this.getWawiFromJson(product.wawi, wawiSettings);\r\n productObj.orderDetail = product.orderDetail;\r\n productObj.electronicSales = product.electronicSales;\r\n if (productObj.orderDetail != null) {\r\n if (productObj.orderDetail.hasBasicPriceDuty == null) {\r\n productObj.orderDetail.hasBasicPriceDuty = undefined;\r\n }\r\n if (productObj.orderDetail.isBulkyGood == null) {\r\n productObj.orderDetail.isBulkyGood = undefined;\r\n }\r\n if (productObj.orderDetail.isTruckageCompanyGood == null) {\r\n productObj.orderDetail.isTruckageCompanyGood = undefined;\r\n }\r\n }\r\n if (!productObj.electronicSales) {\r\n productObj.electronicSales = new ElectronicSalesDetail();\r\n }\r\n if (productObj.electronicSales.dateCreated === null && product.electronicSales?.dateCreated) {\r\n productObj.electronicSales.dateCreated = new Date(product.electronicSales.dateCreated);\r\n }\r\n\r\n productObj.legalCharacteristic = product.legalCharacteristic;\r\n productObj.edeNumber1 = product.edeNumber1;\r\n productObj.edeNumber2 = product.edeNumber2;\r\n productObj.edeNumber3 = product.edeNumber3;\r\n productObj.edeNumber4 = product.edeNumber4;\r\n productObj.edeNumber5 = product.edeNumber5;\r\n productObj.productCount = product.productCount;\r\n productObj.suppliers = product.suppliers;\r\n productObj.mainSupplierId = product.mainSupplierId;\r\n\r\n productObj.isDiscontinued = product.isDiscontinued;\r\n productObj.discontinuedDate = product.discontinuedDate;\r\n if (productObj.orderDetail == null) {\r\n productObj.orderDetail = new OrderDetail();\r\n }\r\n productObj.mimes = product.mimes;\r\n productObj.catalogMappings = product.catalogMappings;\r\n productObj.udxs = product.udxs;\r\n productObj.sourceProductId = product.sourceProductId;\r\n productObj.products = [];\r\n if (product.products) {\r\n for (let slaveProduct of product.products) {\r\n productObj.products.push(this.getProductFromJson(slaveProduct, wawiSettings));\r\n };\r\n }\r\n productObj.featureSystems = new Array<FeatureSystem>();\r\n if (product.featureSystems) {\r\n product.featureSystems.forEach(system => {\r\n let fs = Object.assign(new FeatureSystem(), system);\r\n productObj.featureSystems.push(fs);\r\n\r\n });\r\n }\r\n\r\n productObj.keywords = product.keywords;\r\n productObj.states = product.states;\r\n productObj.priceLists = product.priceLists;\r\n productObj.references = product.references;\r\n productObj.productOrder = product.productOrder;\r\n if (productObj.agreement == null) {\r\n productObj.agreement = new Agreement();\r\n }\r\n productObj.metaTitel = product.metaTitel;\r\n productObj.metaDescription = product.metaDescription;\r\n if (product.changeInfo != null) {\r\n productObj.changeInfo = product.changeInfo;\r\n }\r\n productObj.reportRuns = product.reportRuns;\r\n productObj.linkedFields = product.linkedFields;\r\n return productObj;\r\n }\r\n\r\n getWawiFromJson(wawi: WawiIntegration, wawiSettings: WawiSettings) {\r\n if (wawi == null) {\r\n wawi = new WawiIntegration();\r\n wawi.customFields = new Array<CustomWawiField>();\r\n }\r\n\r\n\r\n let result = new WawiIntegration(wawi.wawiId, wawi.line1, wawi.line2, wawi.line3, wawi.line4, wawi.customFields);\r\n\r\n wawiSettings.customFields.forEach(field => {\r\n const found = result.customFields.find(x => x.order === field.order);\r\n if (!found) {\r\n let customField = new CustomWawiField();\r\n customField.order = field.order;\r\n customField.listId = field.listId;\r\n result.customFields.push(customField);\r\n }\r\n });\r\n\r\n return result;\r\n\r\n }\r\n\r\n createWawiIfNeeded(product: Product, wawiSettings: WawiSettings) {\r\n if (product) {\r\n if (product.wawi == null) {\r\n product.wawi = new WawiIntegration();\r\n product.wawi.customFields = new Array<CustomWawiField>();\r\n }\r\n\r\n if (wawiSettings) {\r\n wawiSettings.customFields.forEach(field => {\r\n const found = product.wawi.customFields.find(x => x.order === field.order);\r\n if (!found) {\r\n let customField = new CustomWawiField();\r\n customField.order = field.order;\r\n customField.listId = field.listId;\r\n product.wawi.customFields.push(customField);\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n createLines(product: Product): Observable<Product> {\r\n return (this.http.post(\"api/product/createLines\", product) as any);\r\n }\r\n\r\n createReportProductDatasheet(createDto: CreateReportProductDatasheet): Observable<any> {\r\n return (this.http.post(\"api/Reporting/CreateReportProductDatasheet\", createDto) as any);\r\n }\r\n\r\n generateMissingPackingCodes(productID, customerId): Observable<any> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"productId\", productID)\r\n }\r\n return (this.http.post(\"api/Product/GenerateMissingPackingCodes\",null, options)) as any;\r\n }\r\n\r\n getSuppliersInAccount(customerId): Observable<ProductSupplier[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.get<ProductSupplier[]>(\"api/product/getSuppliersWithIdsInAccount\", options);\r\n }\r\n\r\n getSupplierNamesInAccount(customerId): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.get<string[]>(\"api/product/getSupplierNamesInAccount\", options);\r\n }\r\n\r\n getOrderUnitList(): Observable<string[]> { \r\n return this.http.get<string[]>(\"api/product/GetOrderUnitList\");\r\n }\r\n\r\n getLinkedFields(productId, customerId): Observable<LinkedField[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"productId\", productId)\r\n }\r\n return this.http.get<LinkedField[]>(\"api/product/GetLinkedFields\", options);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { EventEmitter, Injectable } from \"@angular/core\";\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport ValidationEngine from \"devextreme/ui/validation_engine\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from 'rxjs/operators';\r\nimport isString from 'lodash.isstring';\r\nimport isNumber from 'lodash.isnumber';\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { CatalogPriceList } from \"../../Model/Catalog/CatalogPriceList\";\r\nimport { Category } from \"../../Model/Catalog/Category\";\r\nimport { Feature } from \"../../Model/Catalog/FeatureModels/Feature\";\r\nimport { FeatureSystem } from \"../../Model/Catalog/FeatureModels/FeatureSystem\";\r\nimport { Mime } from \"../../Model/Catalog/Mime\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { ProductState } from \"../../Model/Catalog/ProductState\";\r\nimport { TemplateItemTemplate } from \"../../Model/Catalog/TemplateItemTemplate\";\r\nimport { AddItem } from \"../../Model/Dto/AddItem\";\r\nimport { Clipboard } from \"../../Model/Dto/Clipboard\";\r\nimport { DuplicateItem } from \"../../Model/Dto/DuplicateItem\";\r\nimport { FeatureSystemFilter } from \"../../Model/Dto/FeatureSystemFilter\";\r\nimport { NewCatalog } from \"../../Model/Dto/NewCatalog\";\r\nimport { PriceListFilter } from \"../../Model/Dto/PriceListFilter\";\r\nimport { SearchResult } from '../../Model/Dto/searchResults';\r\nimport { ShopConnection } from \"../../Model/Dto/ShopConnection\";\r\nimport { StringResponse } from \"../../Model/Dto/StringResponse\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { TreeItem as TreeElement, TreeItem } from \"../../Model/Dto/TreeItem\";\r\nimport { UrlResponse } from \"../../Model/Dto/UrlResponse\";\r\nimport { JobService } from \"./../job.service\";\r\nimport { LoginService } from \"./../login.service\";\r\nimport { ShopService } from \"./../shop.service\";\r\nimport { ViewService } from \"./../view.service\";\r\nimport { ShopwareSalesChannel } from '../../Model/Dto/ShopwareSalesChannel';\r\nimport { ShopwareCmsPage } from '../../Model/Dto/ShopwareCmsPage';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { KeyValueItem } from '../../Model/System/KeyValueItem';\r\nimport { ProductService } from './product.service';\r\nimport { ShopwareLanguage } from '../../Model/Dto/ShopwareLanguage';\r\nimport { SystemService } from './../system.service';\r\nimport { ExportParameter } from '../../Model/exportParameter/ExportParameter';\r\nimport { ProductSearchOptions } from '../../Model/User/ProductSearchOptions';\r\n\r\n\r\n@Injectable()\r\nexport class CatalogService {\r\n fileNameToUseInImport: string;\r\n\r\n public importCatalogVisible: boolean = false;\r\n public action: number = 0;\r\n public showUserAction: boolean = false;\r\n selectedStates: string[] = [];\r\n selectedStatesMode: string = null;\r\n selectedStatesTarget: string[] = [];\r\n selectedStatesTargetMode: string = null;\r\n public startMassGenerateKITexts = new EventEmitter();\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService, private jobService: JobService, private shopService: ShopService, public viewService: ViewService, public translate: TranslateService, public productService: ProductService, public systemService: SystemService) {\r\n this.catalogs = new Array<Catalog>();\r\n this.refreshCatalogIfUpdatedTimer = this.refreshCatalogIfUpdatedTimer.bind(this);\r\n this.refreshCatalogListIfUpdatedTimer = this.refreshCatalogListIfUpdatedTimer.bind(this);\r\n\r\n this.startTimers();\r\n }\r\n\r\n public tree: TreeElement[];\r\n public treeList: DxTreeListComponent;\r\n public treeListTarget: DxTreeListComponent;\r\n public childs: TreeElement[];\r\n public selectedNode: any;\r\n productStates: ProductState[];\r\n languageCodes: string[];\r\n\r\n public accountMenuVisible = false;\r\n public actionMenuVisible = false;\r\n\r\n public closeAllPopUps() {\r\n this.viewService.jobsVisible = false;\r\n this.accountMenuVisible = false;\r\n this.actionMenuVisible = false;\r\n this.exportVisible = false;\r\n this.translateVisible = false;\r\n }\r\n\r\n treeRefresh() {\r\n if (this.treeList != null) {\r\n this.treeList.instance.refresh();\r\n }\r\n }\r\n\r\n treeFilter() {\r\n let that = this;\r\n if (this.treeList != null) {\r\n this.treeList.instance.refresh().then(function () {\r\n if (that.selectedStates.length > 0) {\r\n let keys = that.getNodeKeys(that.treeList.instance.getNodeByKey(that.selectedCatalogId));\r\n that.treeList.instance.beginUpdate();\r\n keys.forEach(function (key) {\r\n that.treeList.instance.expandRow(key);\r\n });\r\n\r\n that.treeList.instance.endUpdate();\r\n }\r\n })\r\n .catch(function (error) {\r\n // ...\r\n });;\r\n }\r\n }\r\n\r\n treeFilterTarget() {\r\n let that = this;\r\n if (this.treeListTarget != null) {\r\n this.treeListTarget.instance.refresh().then(function () {\r\n if (that.selectedStatesTarget.length > 0) {\r\n let keys = that.getNodeKeys(that.treeListTarget.instance.getNodeByKey(that.selectedTargetCatalogId));\r\n that.treeListTarget.instance.beginUpdate();\r\n keys.forEach(function (key) {\r\n that.treeListTarget.instance.expandRow(key);\r\n });\r\n\r\n that.treeListTarget.instance.endUpdate();\r\n }\r\n })\r\n .catch(function (error) {\r\n // ...\r\n });;\r\n }\r\n }\r\n\r\n collapsTree() {\r\n let that = this;\r\n let keys = that.getNodeKeys(that.treeList.instance.getNodeByKey(that.selectedCatalogId));\r\n that.treeList.instance.beginUpdate();\r\n keys.forEach(function (key) {\r\n that.treeList.instance.collapseRow(key);\r\n });\r\n\r\n that.treeList.instance.endUpdate();\r\n }\r\n collapsTreeTarget() {\r\n let that = this;\r\n let keys = that.getNodeKeys(that.treeListTarget.instance.getNodeByKey(that.selectedTargetCatalogId));\r\n that.treeListTarget.instance.beginUpdate();\r\n keys.forEach(function (key) {\r\n that.treeListTarget.instance.collapseRow(key);\r\n });\r\n\r\n that.treeListTarget.instance.endUpdate();\r\n }\r\n\r\n\r\n\r\n getNodeKeys(node) {\r\n let keys = [];\r\n keys.push(node.key);\r\n var self = this;\r\n node.children.forEach(function (item) {\r\n keys = keys.concat(self.getNodeKeys(item));\r\n });\r\n return keys;\r\n }\r\n\r\n async getChilds(catalogId: string, categoryId: string, customerId: string, filter: string[], selectedStates: string[], productSearchOptions: ProductSearchOptions, searchStatesMode: string = null): Promise<TreeElement[]> {\r\n\r\n let params = new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n .append(\"categoryId\", categoryId);\r\n\r\n if (filter)\r\n params = params.append(\"filter\", filter.join(\";\"));\r\n\r\n if (selectedStates)\r\n params = params.append(\"states\", selectedStates.join(\";\"));\r\n if (productSearchOptions && productSearchOptions.searchFields) {\r\n let fields = new Array<string>();\r\n productSearchOptions.searchFields.forEach(value => {\r\n fields.push(value.searchField);\r\n\r\n });\r\n\r\n\r\n params = params.append(\"fields\", fields.join(\";\"));\r\n\r\n params = params.append(\"searchMode\", productSearchOptions.searchMode);\r\n }\r\n\r\n params = params.append(\"searchStatesMode\", searchStatesMode);\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: params\r\n };\r\n\r\n return await this.http.get<TreeElement[]>(\"api/catalog/GetTreeChilds\", options).pipe(\r\n map((result: TreeElement[]) => this.childs = result)).toPromise();\r\n }\r\n\r\n getSpidsInCatalog(catalogId: string, customerId: string): Observable<Array<string>> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.get<Array<string>>(\"api/product/GetSpids\", options);\r\n }\r\n\r\n /*******************************************************************************/\r\n /* KATALOG LIST */\r\n /*******************************************************************************/\r\n\r\n public catalogs: Catalog[];\r\n tempCatalogs: Catalog[];\r\n\r\n setCatalogs(customerId: string): void {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n this.http.get(\"api/catalog/getCatalogs\", options).pipe(\r\n map((result: Catalog[]) => this.tempCatalogs = result))\r\n .subscribe(success => {\r\n if (success) {\r\n this.setResponsible();\r\n this.setCatalogGroupe();\r\n this.catalogs = this.tempCatalogs;\r\n }\r\n },\r\n error => { return false; });\r\n }\r\n\r\n public setResponsible() {\r\n this.responsibleList = [];\r\n for (let catalog of this.tempCatalogs) {\r\n if (catalog.responsible != null) {\r\n if (this.responsibleList.find(element => element == catalog.responsible) == undefined) {\r\n this.responsibleList.push(catalog.responsible);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public setCatalogGroupe() {\r\n this.catalogGroupList = [];\r\n for (let catalog of this.tempCatalogs) {\r\n if (catalog.pimGroup != null) {\r\n if (this.catalogGroupList.find(element => element == catalog.pimGroup) == undefined) {\r\n this.catalogGroupList.push(catalog.pimGroup);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public responsibleList: string[] = [];\r\n public catalogGroupList: string[] = [];\r\n\r\n getCatalogs(customerId: string): Observable<Catalog[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return (this.http.get<Catalog[]>(\"api/catalog/getCatalogs\", options)) as any;\r\n }\r\n\r\n public copyCatalogId: string = \"\";\r\n public copyCatalogCustomerId: string = \"\";\r\n private isBoolean = val => 'boolean' === typeof val;\r\n\r\n /*******************************************************************************/\r\n /* KATALOG */\r\n /*******************************************************************************/\r\n\r\n selectedCatalogId = \"\";\r\n selectedTargetCatalogId = \"\";\r\n private _catalog: Catalog;\r\n public isCatalogSelected: boolean = false;\r\n\r\n get catalog(): Catalog {\r\n return this._catalog;\r\n\r\n }\r\n\r\n set catalog(value: Catalog) {\r\n this._catalog = value;\r\n }\r\n\r\n addCatalog(newCatalog: NewCatalog) {\r\n\r\n return this.http.post(\"api/catalog/addCatalog\", newCatalog).pipe(map((response: NewCatalog) => {\r\n const result = response;\r\n this.selectedCatalogId = result.catalogId;\r\n\r\n return true;\r\n }));\r\n\r\n }\r\n\r\n remCatalog(catalogId: string) {\r\n if (this.copyCatalogId == catalogId) {\r\n this.copyCatalogId = \"\";\r\n }\r\n this.http.delete(\"api/catalog/DeleteCatalog/\" + catalogId).subscribe();\r\n }\r\n\r\n getCatalog(catalogId: string, customerId: string): Observable<Catalog> {\r\n this._catalog = null;\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n return (this.http.get<Catalog>(\"api/catalog/getCatalog\", options).pipe(\r\n map((result: Catalog) => this._catalog = result))) as any; // EVIL!!!!\r\n }\r\n\r\n getCatalogNoSet(catalogId: string, customerId: string): Observable<Catalog> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n return this.http.get<Catalog>(\"api/catalog/getCatalog\", options);\r\n }\r\n\r\n getCatalogsContainingSupplierPID(catalogId: string, customerId: string, targetCustomerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId).append(\"targetCustomerId\", targetCustomerId)\r\n };\r\n return this.http.get<string[]>(\"api/catalog/GetCatalogsContainingSupplierPID\", options);\r\n }\r\n\r\n getCatalogsContainingEAN(catalogId: string, customerId: string, targetCustomerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId).append(\"targetCustomerId\", targetCustomerId)\r\n };\r\n return this.http.get<string[]>(\"api/catalog/GetCatalogsContainingEAN\", options);\r\n }\r\n\r\n getCatalogsContainingSupplierAltPID(catalogId: string, customerId: string, targetCustomerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId).append(\"targetCustomerId\", targetCustomerId)\r\n };\r\n return this.http.get<string[]>(\"api/catalog/GetCatalogsContainingSupplierAltPID\", options);\r\n }\r\n\r\n catalogChanged(e) {\r\n if (this._catalog != null) {\r\n if (e.previousValue !== e.value) {\r\n const result = ValidationEngine.validateGroup(\"catalogValidationGroup\");\r\n if (result.isValid) {\r\n this.updateCatalog();\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateCatalog(event = null): Promise<boolean> {\r\n this.sortMimes(this._catalog.mimes);\r\n if (event == null || event.event != null) {\r\n return this.http.post<StringResponse>(\"api/catalog/UpdateCatalog\", this._catalog).toPromise()\r\n .then(success => {\r\n if (success && this.treeList != null) {\r\n var node = this.treeList.instance.getRootNode();\r\n if (node != null) {\r\n node = node.children[0];\r\n node.data['text'] = this._catalog.catalogName;\r\n }\r\n return true;\r\n }\r\n\r\n },\r\n error => { return false; });\r\n }\r\n }\r\n\r\n createRestorePoint(id: string) {\r\n\r\n let duplicateCatalog = new DuplicateItem();\r\n duplicateCatalog.sourceCustomerId = this.loginService.currentUser.customerId;\r\n duplicateCatalog.sourceItemId = id;\r\n\r\n this.http.post(\"api/backup/createRestorePoint\", duplicateCatalog)\r\n .subscribe(success => {\r\n if (success) {\r\n return true;\r\n }\r\n },\r\n error => { return false; });\r\n }\r\n\r\n\r\n\r\n duplicateCatalog(id: string, sourceCustomer: string = null) {\r\n if (sourceCustomer == null) {\r\n sourceCustomer = this.loginService.currentUser.customerId;\r\n }\r\n\r\n var duplicateCatalog = new DuplicateItem();\r\n duplicateCatalog.sourceCustomerId = sourceCustomer;\r\n duplicateCatalog.targetCustomerId = this.loginService.currentUser.customerId;\r\n duplicateCatalog.sourceItemId = id;\r\n\r\n this.http.post(\"api/catalog/duplicateCatalog\", duplicateCatalog)\r\n .subscribe(success => {\r\n if (success) {\r\n this.jobStarted = 1;\r\n return true;\r\n }\r\n\r\n },\r\n error => { return false; });\r\n }\r\n\r\n spreadCatalog(duplicateCatalog: DuplicateItem) {\r\n\r\n\r\n this.http.post(\"api/catalog/duplicateCatalog\", duplicateCatalog)\r\n .subscribe(success => {\r\n if (success) {\r\n this.jobStarted = 1;\r\n return true;\r\n }\r\n\r\n },\r\n error => { return false; });\r\n }\r\n\r\n\r\n\r\n\r\n /*******************************************************************************/\r\n /* SHOP Verbindung */\r\n /*******************************************************************************/\r\n\r\n public connection2Shop = false;\r\n public connection2ShopMessage = \"\";\r\n public connection2ShopEstablished = false;\r\n\r\n //SHOP\r\n\r\n public resetConnection() {\r\n this.connection2Shop = false;\r\n this.connection2ShopMessage = \"\";\r\n this.connection2ShopEstablished = false;\r\n }\r\n\r\n public testShopConnection() {\r\n this.resetConnection();\r\n this.shopService.testShopConnection(this.catalog.shopUrl, this.catalog.shopAuth).subscribe((result: TestResult) => this.testShopResult(result));\r\n }\r\n\r\n\r\n\r\n\r\n public testShopWare6Connection() {\r\n this.resetConnection();\r\n\r\n this.shopService.testShopWare6Connection(this.catalog.shopWareConnection).subscribe((result: TestResult) => this.testShopResult(result));\r\n }\r\n\r\n private testShopResult(result: TestResult) {\r\n if (result.success) {\r\n this.connection2Shop = true;\r\n this.getConnection2Shop();\r\n } else {\r\n this.connection2ShopMessage = result.message;\r\n }\r\n }\r\n\r\n public getConnection2Shop() {\r\n if (this.catalog == null) {\r\n return;\r\n }\r\n this.shopService.getConnection2Shop(\r\n this.catalog.shopUrl,\r\n this.catalog.shopAuth\r\n ).subscribe((result: ShopConnection) => this.getConnection2ShopResult(result));\r\n }\r\n\r\n private getConnection2ShopResult(result: ShopConnection) {\r\n if (result.customerId == this.loginService.currentUser.customerId && result.catalogId == this.catalog.id) {\r\n this.connection2ShopEstablished = true;\r\n }\r\n }\r\n\r\n\r\n GetShopwareSalesChannel(baseUri: string, clientId: string, clientSecret: string): Observable<ShopwareSalesChannel[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"baseUri\", baseUri)\r\n .append(\"clientId\", clientId)\r\n .append(\"clientSecret\", clientSecret)\r\n };\r\n\r\n return this.http.get<ShopwareSalesChannel[]>(\"api/ShopConnector/GetSalesChannel\", options);\r\n }\r\n\r\n GetShopwareLanguages(baseUri: string, clientId: string, clientSecret: string): Observable<ShopwareLanguage[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"baseUri\", baseUri)\r\n .append(\"clientId\", clientId)\r\n .append(\"clientSecret\", clientSecret)\r\n };\r\n\r\n return this.http.get<ShopwareLanguage[]>(\"api/ShopConnector/GetLanguages\", options);\r\n }\r\n\r\n\r\n GetShopwareCategories(baseUri: string, clientId: string, clientSecret: string): Observable<TreeElement[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"baseUri\", baseUri)\r\n .append(\"clientId\", clientId)\r\n .append(\"clientSecret\", clientSecret)\r\n };\r\n\r\n return this.http.get<TreeElement[]>(\"api/ShopConnector/GetCategories\", options);\r\n }\r\n\r\n\r\n\r\n GetShopwareCmsPage(baseUri: string, clientId: string, clientSecret: string): Observable<ShopwareCmsPage[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"baseUri\", baseUri)\r\n .append(\"clientId\", clientId)\r\n .append(\"clientSecret\", clientSecret)\r\n };\r\n\r\n return this.http.get<ShopwareCmsPage[]>(\"api/ShopConnector/GetShopwareCmsPage\", options);\r\n }\r\n\r\n\r\n public establishedShopConnection() {\r\n this.shopService.establishedShopConnection(\r\n this.catalog.shopUrl,\r\n this.catalog.shopAuth,\r\n this.loginService.currentUser.customerId,\r\n this.catalog.id\r\n ).subscribe((result: TestResult) => this.establishedShopResult(result));\r\n }\r\n\r\n private establishedShopResult(result: TestResult) {\r\n this.connection2ShopEstablished = false;\r\n if (result.success) {\r\n this.connection2ShopEstablished = true;\r\n }\r\n }\r\n\r\n private _catalogNameCache: Map<string, string> = new Map<string, string>();\r\n\r\n public async getCatalogName(catalogId: string, customerId: string): Promise<string> {\r\n if (catalogId == \"\" || catalogId == '000000000000000000000000')\r\n return \"\";\r\n\r\n if (this.catalogs && this._catalogNameCache.size < this.catalogs.length) {\r\n this.catalogs.forEach(x => {\r\n this._catalogNameCache.set(x.id, x.catalogName);\r\n });\r\n }\r\n\r\n if (!this._catalogNameCache.has(catalogId)) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n let catalogName = await this.http.get<{ name: string }>(\"api/catalog/getName\", options).toPromise();\r\n this._catalogNameCache.set(catalogId, catalogName.name);\r\n }\r\n\r\n\r\n return this._catalogNameCache.get(catalogId);\r\n }\r\n\r\n /*******************************************************************************/\r\n /* KATEGORY */\r\n /*******************************************************************************/\r\n private duplicateCategory = new DuplicateItem();\r\n\r\n private _category: Category;\r\n public isCategorySelected: boolean = false;\r\n\r\n get category(): Category {\r\n return this._category;\r\n }\r\n\r\n set category(value: Category) {\r\n this._category = value;\r\n }\r\n\r\n async addCategory(parentCatId: string, customerId: string, treeId: string) {\r\n this.addItem(parentCatId, true, customerId, treeId);\r\n }\r\n\r\n remCategory(obj: any, treeElementId: string) {\r\n this.remItem(obj, true, treeElementId);\r\n }\r\n\r\n getCategory(categoryId: string, customerId: string): Observable<Category> {\r\n this.category = null;\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"categoryId\", categoryId)\r\n };\r\n\r\n return (this.http.get<Category>(\"api/category/getCategory\", options).pipe(\r\n map((result: Category) => this._category = result))) as any;\r\n }\r\n\r\n getCategoryFullname(categoryId: string, customerId: string): Observable<Category> {\r\n this.category = null;\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"categoryId\", categoryId)\r\n };\r\n\r\n return (this.http.get<Category>(\"api/category/getCategoryFullname\", options).pipe(\r\n map((result: Category) => this._category = result))) as any;\r\n }\r\n\r\n\r\n categoryChanged(e) {\r\n if (this._category != null) {\r\n if (e != null && e.previousValue !== e.value) {\r\n const result = ValidationEngine.validateGroup(\"categoryValidationGroup\");\r\n if (result.isValid) {\r\n if (this._category.groupOrder == null)\r\n this._category.groupOrder = 0;\r\n\r\n this.updateCategory();\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateCategory() {\r\n this.sortMimes(this._category.mimes);\r\n this.http.post<StringResponse>(\"api/category/UpdateCategory\", this._category)\r\n .subscribe(success => {\r\n if (success) {\r\n const node = this.treeList.instance.getNodeByKey(this._category.id);\r\n node.data['text'] = this._category.groupName;\r\n if (node.data['order'] != this._category.groupOrder) {\r\n this.treeRefresh();\r\n }\r\n return true;\r\n }\r\n },\r\n error => { return false; });\r\n }\r\n\r\n /*******************************************************************************/\r\n /* PRODUCT */\r\n /*******************************************************************************/\r\n public duplicateProduct = new DuplicateItem();\r\n\r\n private _product: Product;\r\n public isProductSelected: boolean = false;\r\n\r\n public addEcommerceFeatures(product: Product): Observable<Product> {\r\n return (this.http.post(\"api/product/addEcommerceFeatures\", product)) as any;\r\n }\r\n\r\n public linkAllFields(product: Product): Observable<Product> {\r\n return (this.http.post(\"api/product/linkAllFields\", product)) as any;\r\n }\r\n\r\n addEcommerceFeaturesToCatalog(catalog: Catalog) {\r\n return (this.http.post(\"api/catalog/addEcommerceFeatures\", catalog)) as any;\r\n }\r\n addEcommerceFeaturesToCategory(category: Category) {\r\n return (this.http.post(\"api/category/addEcommerceFeatures\", category)) as any;\r\n }\r\n\r\n public getProductWithGeneratedText(product: Product, catalogName: string, teachingSetId: string, generateHTML: boolean): Observable<Product> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"catalogName\", catalogName)\r\n .append(\"teachingSetId\", teachingSetId)\r\n .append('generateHTML', generateHTML)\r\n };\r\n\r\n return (this.http.post(\"api/product/getProductWithGeneratedText\", product, options)) as any;\r\n }\r\n\r\n get product(): Product {\r\n return this._product;\r\n }\r\n\r\n set product(value: Product) {\r\n this._product = value;\r\n if (this._product) {\r\n this._product.prepareView();\r\n }\r\n }\r\n\r\n async addProduct(parentId: string, customerId: string, treeId: string) {\r\n this.addItem(parentId, false, customerId, treeId);\r\n }\r\n\r\n remProduct(obj: any, treeElementId: string) {\r\n this.remItem(obj, false, treeElementId);\r\n }\r\n\r\n getProduct(productId: string, customerId: string, catalogId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"productId\", productId)\r\n .append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<Product>(\"api/product/GetProduct\", options).pipe(\r\n map((result: Product) => this.setProduct(result, true)))) as any;\r\n }\r\n\r\n getProductUnchecked(productId: string, customerId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"productId\", productId)\r\n };\r\n\r\n return (this.http.get<Product>(\"api/product/GetProductUnchecked\", options).pipe(\r\n map((result: Product) => this.setProduct(result, true)))) as any;\r\n }\r\n\r\n getRawProduct(productId: string, customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"productId\", productId)\r\n };\r\n return this.http.get<object>(\"api/product/GetRawProduct\", options);\r\n }\r\n\r\n getFirstProduct(customerId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return (this.http.get<Product>(\"api/product/GetFirstProduct\", options).pipe(\r\n map((result: Product) => this.setProduct(result, true)))) as any;\r\n }\r\n\r\n getProductContent(supplierPid: string, customerId: string, catalogId: string): Observable<Product> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"supplierPid\", supplierPid)\r\n .append(\"catalogId\", catalogId)\r\n };\r\n\r\n return this.http.get<Product>(\"api/product/GetProductContent\", options);\r\n }\r\n\r\n getProductBySupplierPid(supplierPid: string, customerId: string, catalogId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"supplierPid\", supplierPid)\r\n .append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<Product>(\"api/product/GetProductBySupplierPid\", options).pipe(\r\n map((result: Product) => {\r\n return result;\r\n }))) as any;\r\n }\r\n\r\n searchProducts(filter: string, customerId: string, page: number, pageSize: number): Observable<SearchResult[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"filter\", filter)\r\n .append(\"page\", page.toString())\r\n .append(\"pageSize\", pageSize.toString())\r\n };\r\n\r\n return (this.http.get<SearchResult[]>(\"api/product/SearchProducts\", options).pipe(\r\n map((result: SearchResult[]) => {\r\n return result;\r\n }))) as any;\r\n }\r\n\r\n public setProduct(product: Product, holdHints: boolean = false): Product {\r\n product = this.productService.getProductFromJson(product, this.loginService.wawiSettings);\r\n if (product) {\r\n product.prepareView();\r\n }\r\n if (holdHints && this._product) { product.hintsActiv = this._product.hintsActiv; }\r\n this._product = product;\r\n return product;\r\n }\r\n\r\n getLanguageCodes(): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n\r\n };\r\n\r\n return (this.http.get<string[]>(\"api/Translation/GetLanguageCodes\", options).pipe(\r\n map((result: string[]) => this.languageCodes = result))) as any;\r\n }\r\n\r\n getCustomerProductStates(customerId: string): Observable<ProductState[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return (this.http.get<ProductState[]>(\"api/ProductState/GetProductStates\", options).pipe(\r\n map((result: ProductState[]) => this.productStates = result))) as any;\r\n }\r\n\r\n validateProductForm() {\r\n ValidationEngine.validateGroup(\"productValidationGroup\");\r\n this._product.activateHints();\r\n }\r\n\r\n private tmpid = \"\";\r\n updateProduct(event = null): Promise<object> {\r\n let that = this;\r\n return new Promise(function (resolve, reject) {\r\n if (event != null) {\r\n if (isString(event.value) || isString(event.previousValue)) {\r\n if (event.value === event.previousValue) {\r\n return;\r\n }\r\n } else if (Array.isArray(event.value) || Array.isArray(event.previousValue)) {\r\n if (JSON.stringify(event.value) == JSON.stringify(event.previousValue)) {\r\n return;\r\n }\r\n } else if (isNumber(event.value) || isNumber(event.previousValue)) {\r\n if (event.value === event.previousValue) {\r\n return;\r\n }\r\n } else if (typeof event.value == \"boolean\" || typeof event.previousValue == \"boolean\") {\r\n if (event.value === event.previousValue) {\r\n return;\r\n }\r\n } else if (event.data != null && event.data.artIdTo != null) {\r\n } else {\r\n console.warn(\"Keine Updateüberprüfung\");\r\n console.warn(event);\r\n }\r\n }\r\n that.tmpid = that._product.id;\r\n that.sortMimes(that._product.mimes);\r\n that.sortFeatureSystems(that._product.featureSystems);\r\n if (that._product.productOrder == null)\r\n that._product.productOrder = 0;\r\n // Fix a bug in copy Category\r\n if (that._product.customerId != that.loginService.currentCustomer.id) {\r\n that._product.customerId = that.loginService.currentCustomer.id;\r\n }\r\n\r\n\r\n\r\n let mimeChange: boolean = false;\r\n if (event != null && event.value != null) {\r\n for (let mime of that._product.mimes) {\r\n if (event.value == mime.mimeOrder || event.value == mime.mimePurpose || event.value == mime.mimeSource\r\n || event.value == mime.mimeType || event.value == mime.mimeDescr || event.value == mime.mimeAlt) {\r\n mimeChange = true;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n //this.http.post<StringResponse>(\"api/product/UpdateProduct\", this._product)\r\n that.http.post<Product>(\"api/product/UpdateProduct\", that._product)\r\n .subscribe(success => {\r\n if (success) {\r\n if (that._product != null && that.tmpid == that._product.id) {\r\n let order = 1;\r\n\r\n // Wird beim toggle eines LinkedField an einem CHILD gesetzt\r\n if (event != null && event.forceReload != null && event.forceReload == true) {\r\n that.product = that.productService.getProductFromJson(success, that.loginService.wawiSettings); // \"neu laden\"\r\n }\r\n\r\n that._product.catalogMappings.forEach(function (mapping) {\r\n const node = that.treeList.instance.getNodeByKey(that._product.id + \"_\" + mapping.categoryId);\r\n if (node) {\r\n node.data['text'] = that._product.descriptionShort;\r\n node.data['supplierPid'] = that._product.supplierPid;\r\n order = node.data['order'];\r\n }\r\n });\r\n\r\n that.checkPriceLists(); //Prüfen, ob Pricelist zum Katalog hinzugefügt werden muss\r\n\r\n\r\n if (that._product.productOrder != null && order != that._product.productOrder) {\r\n that.treeRefresh();\r\n } else if ((that._product.productCount != null && that._product.productCount > 0) || (that._product.isChild != null && that._product.isChild)) {\r\n // Bei relevanten Änderungen am MASTER / CHILD muss der TREE neu geladen werden, damit die Anzeige passt:\r\n let needsRefresh: boolean = false;\r\n\r\n // forceTreeRefresh deckt dies NICHT mit ab!! forceTreeRefresh wird nur beim toggle eines LinkedField an einem CHILD gesetzt!!\r\n if ((event != null && event.value == that._product.descriptionShort) || (event != null && event.value == that._product.supplierPid)) {\r\n needsRefresh = true;\r\n }\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n if (event != null && event.forceTreeRefresh != null && event.forceTreeRefresh == true) {\r\n needsRefresh = true;\r\n }\r\n\r\n if (mimeChange || needsRefresh) {\r\n //if (needsRefresh) {\r\n that.treeRefresh();\r\n }\r\n }\r\n }\r\n resolve(success);\r\n } else {\r\n reject(success);\r\n }\r\n },\r\n error => { reject(error); }\r\n );\r\n });\r\n }\r\n\r\n checkPriceLists() {\r\n var needCatalogUpdate = false;\r\n var priceList;\r\n for (let produtPriceList of this._product.priceLists) {\r\n priceList = null;\r\n priceList = this._catalog.priceLists.filter(element => element.order == produtPriceList.priceListOrder).shift();\r\n if (priceList == null && produtPriceList.priceListOrder > 0) {\r\n var newCatalogPriceList = new CatalogPriceList(produtPriceList.priceListOrder, \"\");\r\n this._catalog.priceLists.push(newCatalogPriceList);\r\n needCatalogUpdate = true;\r\n }\r\n if (needCatalogUpdate)\r\n this.updateCatalog();\r\n }\r\n }\r\n\r\n GetProductTreeItem(productId: string, customerId: string, categoryId?: string, catalogId?: string): Observable<TreeItem> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"productId\", productId).append(\"customerId\", customerId).append(\"categoryId\", categoryId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return this.http.get<TreeItem>(\"api/Product/GetProductTreeItem\", options);\r\n }\r\n\r\n /*******************************************************************************/\r\n /* SHARED */\r\n /*******************************************************************************/\r\n\r\n private sortMimes(mimes: Mime[]) {\r\n if (mimes.length == 1) {\r\n if (mimes[0].mimeOrder == null) {\r\n mimes[0].mimeOrder = 0;\r\n }\r\n }\r\n\r\n\r\n mimes.sort(function (a: Mime, b: Mime): number {\r\n if (a.mimeOrder == null || a.mimeOrder == 0) {\r\n a.mimeOrder = 0;\r\n }\r\n if (b.mimeOrder == null || b.mimeOrder == 0) {\r\n b.mimeOrder = 0;\r\n }\r\n if (a.mimeOrder < b.mimeOrder) {\r\n return -1;\r\n }\r\n if (a.mimeOrder > b.mimeOrder) {\r\n return 1;\r\n }\r\n // a muss gleich b sein\r\n return 0;\r\n });\r\n }\r\n\r\n private sortFeatureSystems(featureSystem: FeatureSystem[]) {\r\n if (featureSystem.length == 1) {\r\n if (featureSystem[0].order == null) {\r\n featureSystem[0].order = 0;\r\n }\r\n }\r\n\r\n\r\n featureSystem.sort(function (a: FeatureSystem, b: FeatureSystem): number {\r\n if (a.order == null || a.order == 0) {\r\n a.order = 0;\r\n }\r\n if (b.order == null || b.order == 0) {\r\n b.order = 0;\r\n }\r\n if (a.order < b.order) {\r\n return -1;\r\n }\r\n if (a.order > b.order) {\r\n return 1;\r\n }\r\n // a muss gleich b sein\r\n return 0;\r\n });\r\n featureSystem.forEach(function (fs: FeatureSystem) {\r\n if (fs && fs.features) {\r\n\r\n if (fs.features.length == 1) {\r\n if (fs.features[0].forder == null) {\r\n fs.features[0].forder = 0;\r\n }\r\n }\r\n\r\n\r\n fs.features.sort(function (a: Feature, b: Feature): number {\r\n if (a.forder == null || a.forder == 0) {\r\n a.forder = 0;\r\n }\r\n if (b.forder == null || b.forder == 0) {\r\n b.forder = 0;\r\n }\r\n if (a.forder < b.forder) {\r\n return -1;\r\n }\r\n if (a.forder > b.forder) {\r\n return 1;\r\n }\r\n // a muss gleich b sein\r\n return 0;\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n refreshCountInTree(parentCatId: string, isCategory: boolean) {\r\n const node = this.treeList.instance.getNodeByKey(parentCatId);\r\n if (node.data != undefined) {\r\n\r\n if (isCategory) {\r\n let categoryCount = node.data['categoryCount'];\r\n node.data['categoryCount'] = categoryCount + 1;\r\n } else {\r\n let productCount = node.data['productCount'];\r\n node.data['productCount'] = productCount + 1;\r\n }\r\n node.data['hasChilds'] = true;\r\n if (node.data['parent']) {\r\n this.refreshCountInTree(node.data['parent'], isCategory);\r\n }\r\n }\r\n }\r\n\r\n addItem(parentId: string, isCategory: boolean, customerId: string, treeId: string) {\r\n let addItemModel = new AddItem();\r\n addItemModel.parentId = parentId;\r\n addItemModel.customerId = customerId;\r\n addItemModel.parentTreeId = treeId;\r\n var response;\r\n if (isCategory) {\r\n this.http.post<StringResponse>(\"api/category/AddCategory\", addItemModel)\r\n .subscribe((val: StringResponse) => {\r\n response = val;\r\n this.refreshTree(treeId, response.value);\r\n\r\n });\r\n } else {\r\n this.http.post<StringResponse>(\"api/product/AddProduct\", addItemModel)\r\n .subscribe((val: StringResponse) => {\r\n response = val.value;\r\n this.refreshTree(treeId, response + \"_\" + this.getCategoryFromTreeId(treeId));\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n getCategoryFromTreeId(parentId: string): string {\r\n var splitted = parentId.split(\"_\", 2);\r\n\r\n if (splitted.length < 2)\r\n return parentId;\r\n return splitted[1];\r\n }\r\n\r\n // UNUSED\r\n //public setduplicateSource(sourceId: string, isCategory: boolean, sourceCustomerId: string) {\r\n // let duplicateItemModel = this.duplicateProduct;\r\n // if (isCategory) {\r\n // duplicateItemModel = this.duplicateCategory;\r\n // }\r\n // duplicateItemModel.sourceCustomerId = sourceCustomerId;\r\n // duplicateItemModel.sourceItemId = sourceId;\r\n //}\r\n\r\n duplicateItem(targetParentId: string, isCategory: boolean, targetCustomerId: string, sourceId: string = \"\") {\r\n let duplicateItemModel = new DuplicateItem();\r\n if (sourceId == \"\") {\r\n duplicateItemModel = this.duplicateProduct;\r\n if (isCategory) {\r\n duplicateItemModel = this.duplicateCategory;\r\n }\r\n } else {\r\n duplicateItemModel.sourceCustomerId = targetCustomerId;\r\n duplicateItemModel.sourceItemId = sourceId;\r\n }\r\n\r\n\r\n\r\n duplicateItemModel.targetCustomerId = targetCustomerId;\r\n duplicateItemModel.targetItemId = targetParentId;\r\n\r\n duplicateItemModel.targetCatalogId = this.selectedCatalogId;\r\n duplicateItemModel.targetCategoryId = targetParentId;\r\n\r\n var response;\r\n if (isCategory) { // es gibt keinen auruf für diesen zweig...\r\n this.http.post<StringResponse>(\"api/Category/CopyCategory\", duplicateItemModel).subscribe((val: StringResponse) => {\r\n response = val.value;\r\n this.refreshTree(targetParentId, response.value);\r\n });\r\n } else {\r\n this.http.post<StringResponse>(\"api/Product/CopyProduct\", duplicateItemModel).subscribe((val: StringResponse) => {\r\n response = val.value;\r\n this.refreshTree(targetParentId, response.value);\r\n });\r\n }\r\n }\r\n\r\n _selectedTreeElement: string;\r\n set selectedTreeElement(v: string) {\r\n this._selectedTreeElement = v;\r\n this.selectTreeElement(v);\r\n\r\n };\r\n get selectedTreeElement(): string {\r\n return this._selectedTreeElement;\r\n }\r\n\r\n selectTreeElement(id: string) {\r\n if (id != \"\" && id) {\r\n var keys = new Array<string>();\r\n keys.push(id);\r\n var result = this.treeList.instance.selectRows(keys, false);\r\n }\r\n return null;\r\n }\r\n\r\n refreshTree(parentId: string, newId: string) {\r\n let that = this;\r\n // this.refreshCountInTree(parentId, isCategory);\r\n // ReSharper disable once TsResolvedFromInaccessibleModule\r\n //Neu Laden der Kategorien\r\n this.treeList.instance.refresh()\r\n .then(function () {\r\n //Ausklappen des Elternelementes\r\n that.treeList.instance.expandRow(parentId).then(function () {\r\n that.selectedTreeElement = newId;\r\n });\r\n });\r\n }\r\n\r\n reloadTree() {\r\n this.treeList.instance.refresh()\r\n .then(function () {\r\n\r\n });\r\n }\r\n reloadTreeTarget() {\r\n this.treeListTarget.instance.refresh()\r\n .then(function () {\r\n\r\n });\r\n }\r\n\r\n remItem(obj: any, isCategory: boolean, treeElementId: string) {\r\n let observable;\r\n this.isCategorySelected = false;\r\n this.isCatalogSelected = false;\r\n this.isProductSelected = false;\r\n // let selectedRows = this.treeList.instance.getSelectedRowKeys();\r\n let selectedRowObj = this.treeList.instance.getNodeByKey(treeElementId);\r\n let parentNodeKey = selectedRowObj.parent.key;\r\n\r\n let id;\r\n if (isCategory) {\r\n id = this._category.id;\r\n if (this.duplicateCategory.sourceItemId == id) {\r\n this.duplicateCategory.sourceItemId = null;\r\n }\r\n } else {\r\n id = this._product.id;\r\n if (this.duplicateProduct.sourceItemId == id) {\r\n this.duplicateProduct.sourceItemId = null;\r\n }\r\n }\r\n\r\n let keys = new Array<string>();\r\n keys.push(parentNodeKey);\r\n this.treeList.instance.selectRows(keys, false);\r\n if (isCategory) {\r\n observable = this.http.delete(\"api/category/DeleteCategory/\" + this.loginService.currentUser.customerId + \"/\" + id);\r\n } else {\r\n observable = this.http.delete(\"api/product/DeleteProduct/\" + this.loginService.currentUser.customerId + \"/\" + treeElementId);\r\n }\r\n\r\n observable\r\n .subscribe(() => {\r\n this.treeRefresh();\r\n });\r\n }\r\n\r\n getThumbUrl(id: string, type: string, customerId: string, catalogId: string): Observable<UrlResponse> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId).append(\"type\", type).append(\"id\", id)\r\n };\r\n\r\n return (this.http.get<UrlResponse>(\"api/catalog/GetThumbUrl\", options)) as any;\r\n }\r\n\r\n /*******************************************************************************/\r\n /* JOBS */\r\n /*******************************************************************************/\r\n\r\n createExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateExportJob\", exportParameter);\r\n }\r\n\r\n createNewCatalogExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateNewCatalogExportJob\", exportParameter);\r\n }\r\n\r\n createGevisExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateGevisExportJob\", exportParameter);\r\n }\r\n\r\n createSmartStoreExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateSmartStoreExportJob\", exportParameter);\r\n }\r\n\r\n createEbayExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateEbayExportJob\", exportParameter);\r\n }\r\n\r\n createIntershopExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateIntershopExportJob\", exportParameter);\r\n }\r\n\r\n downloadMimes(catalogId: string, customerId: string): Observable<any> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n };\r\n return (this.http.get(\"api/catalog/DownloadMimes\", options)) as any;\r\n }\r\n\r\n /*******************************************************************************/\r\n /* EXPORTS */\r\n /*******************************************************************************/\r\n\r\n public exportVisible: boolean = false;\r\n\r\n public translateVisible: boolean = false;\r\n\r\n\r\n\r\n getFeatureSystems(catalogId: string, customerId: string): Observable<FeatureSystem[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<FeatureSystem[]>(\"api/catalog/getFeatureSystems\", options)) as any;\r\n }\r\n\r\n getFeatureSystemFilters(catalogId: string, customerId: string): Observable<FeatureSystemFilter[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<FeatureSystemFilter[]>(\"api/catalog/getFeatureSystemFilters\", options)) as any;\r\n }\r\n\r\n getFeatureSystemTemplateNames(catalogId: string, customerId: string): Observable<KeyValueItem[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<FeatureSystemFilter[]>(\"api/catalog/getFeatureSystemTemplateNames\", options)) as any;\r\n }\r\n\r\n getFeatureNamesBySystem(catalogId: string, customerId: string, featuresSystemName: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId).append(\"featuresSystemName\", featuresSystemName)\r\n };\r\n\r\n return (this.http.get<string[]>(\"api/catalog/getFeatureNamesBySystem\", options)) as any;\r\n }\r\n\r\n getAllMimePurposesInCatalog(catalogId: string, customerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<string[]>(\"api/catalog/GetAllMimePurposesInCatalog\", options)) as any;\r\n }\r\n\r\n getUnitsThatCanBeSplitFromFeatureValues(catalogId: string, customerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<string[]>(\"api/catalog/getUnitsThatCanBeSplitFromFeatureValues\", options)) as any;\r\n }\r\n\r\n\r\n\r\n\r\n getFeatureNames(catalogId: string, customerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<string[]>(\"api/catalog/getFeatureNames\", options)) as any;\r\n }\r\n\r\n getUdxFilters(catalogId: string, customerId: string): Observable<FeatureSystemFilter[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<FeatureSystemFilter[]>(\"api/catalog/getUdxFilters\", options)) as any;\r\n }\r\n\r\n getPriceListFilters(catalogId: string, customerId: string): Observable<PriceListFilter[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<PriceListFilter[]>(\"api/catalog/getPriceListFilters\", options)) as any;\r\n }\r\n\r\n getCategoryFilters(catalogId: string, customerId: string): Observable<TreeElement[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<TreeElement[]>(\"api/catalog/getCategoryFilters\", options)) as any;\r\n }\r\n\r\n getUdxSelectFilters(catalogId: string, customerId: string): Observable<TreeElement[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return (this.http.get<TreeElement[]>(\"api/catalog/getUdxSelectFilters\", options)) as any;\r\n }\r\n\r\n /*******************************************************************************/\r\n /* TEMPLATES */\r\n /*******************************************************************************/\r\n\r\n public fields: TemplateItemTemplate[] = [];\r\n\r\n public loadFields() {\r\n this.loadFields2Subscribe().subscribe();\r\n }\r\n\r\n public loadFields2Subscribe(): Observable<any> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n };\r\n return this.http.get<TemplateItemTemplate[]>(\"api/catalog/getExcelTemplateItemTemplate\", options).pipe(\r\n map((result: TemplateItemTemplate[]) => this.fields = result));\r\n }\r\n\r\n /*******************************************************************************/\r\n /* CLIPBOARD */\r\n /*******************************************************************************/\r\n\r\n public clipboard: Clipboard = null;\r\n\r\n loadClipboard(): Observable<Clipboard> {\r\n\r\n const d = new Date();\r\n let ticks = d.getTime();\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"userId\", this.loginService.currentUser.id).append(\"dateTime\", ticks.toString())\r\n };\r\n\r\n return (this.http.get<Clipboard>(\"api/Clipboard/getClipboard\", options).pipe(\r\n map((result: Clipboard) => this.clipboard = result))) as any;\r\n }\r\n\r\n saveClipboard<Clipboard>(clipboard: Clipboard) {\r\n this.clipboard = clipboard;\r\n this.http.post(\"api/Clipboard/SetClipboard\", clipboard).subscribe();\r\n }\r\n\r\n saveClipboard2Subscribe<Clipboard>(clipboard: Clipboard): Observable<object> {\r\n this.clipboard = clipboard;\r\n return this.http.post(\"api/Clipboard/SetClipboard\", clipboard);\r\n }\r\n\r\n pasteItem(objectId: string) {\r\n var isCategory = true;\r\n if (this.clipboard.content == \"pro\") {\r\n isCategory = false;\r\n }\r\n var duplicateItemModel = new DuplicateItem();\r\n duplicateItemModel.sourceCustomerId = this.clipboard.customerId;\r\n duplicateItemModel.targetCustomerId = this.loginService.currentUser.customerId;\r\n duplicateItemModel.sourceItemId = this.clipboard.objectId;\r\n duplicateItemModel.targetItemId = objectId;\r\n\r\n var response;\r\n if (isCategory) {\r\n\r\n let loadingText = \"\";\r\n this.translate.get(\"Loading\").subscribe((text: string) => {\r\n loadingText = text;\r\n });\r\n this.treeList.instance.beginCustomLoading(loadingText);\r\n\r\n this.http.post<StringResponse>(\"api/Category/CopyCategory\", duplicateItemModel).subscribe(\r\n (val: StringResponse) => {\r\n\r\n response = val.value;\r\n\r\n this.treeList.instance.endCustomLoading();\r\n\r\n this.refreshTree(objectId, response);\r\n }\r\n );\r\n } else {\r\n\r\n duplicateItemModel.targetCategoryId = objectId;\r\n duplicateItemModel.targetCatalogId = this.catalog.id;\r\n\r\n this.http.post<StringResponse>(\"api/Product/CopyProduct\", duplicateItemModel).subscribe((val: StringResponse) => {\r\n response = val.value;\r\n this.refreshTree(objectId, response);\r\n }\r\n );\r\n }\r\n }\r\n\r\n /*******************************************************************************/\r\n /* AUTORELOAD */\r\n /*******************************************************************************/\r\n\r\n public isJobRunning: boolean = false;\r\n private isRefreshJobRunning: boolean = false;\r\n\r\n public jobStarted: number = 0;\r\n public counter: number = 0;\r\n\r\n private portfree = true;\r\n\r\n private startTimers() {\r\n this.refreshCatalogIfUpdatedTimer();\r\n this.refreshCatalogListIfUpdatedTimer();\r\n }\r\n\r\n private refreshCatalogIfUpdatedTimer() {\r\n if (this.selectedCatalogId != null && this.selectedCatalogId != \"\") {\r\n let jobWasRunning = this.isRefreshJobRunning;\r\n\r\n this.jobService.isJobRunningInCatalog(this.selectedCatalogId, this.loginService.currentUser.customerId).subscribe(isRunning => {\r\n this.isJobRunning = isRunning;\r\n\r\n if (isRunning || jobWasRunning) {\r\n this.jobService.isRefreshJobRunningInCatalog(this.selectedCatalogId, this.loginService.currentUser.customerId).subscribe(isRunning => {\r\n this.isRefreshJobRunning = isRunning;\r\n if (jobWasRunning && !isRunning) {\r\n this.translate.get(\"Katalog wurde durch Job verändert\").subscribe((text: string) => {\r\n this.systemService.notifyInfo(text, 3000);\r\n this.treeRefresh();\r\n if (this.isCatalogSelected)\r\n this.getCatalog(this.catalog.id, this.loginService.currentUser.customerId).subscribe();\r\n if (this.isCategorySelected)\r\n this.getCategory(this.category.id, this.loginService.currentUser.customerId).subscribe();\r\n if (this.isProductSelected)\r\n this.getProduct(this.product.id, this.loginService.currentUser.customerId, this.catalog.id).subscribe();\r\n //Produkt /Catalog /Categorie updaten\r\n });\r\n }\r\n setTimeout(this.refreshCatalogIfUpdatedTimer, 2000);\r\n });\r\n } else {\r\n this.isRefreshJobRunning = isRunning;\r\n setTimeout(this.refreshCatalogIfUpdatedTimer, 2000);\r\n }\r\n });\r\n } else {\r\n setTimeout(this.refreshCatalogIfUpdatedTimer, 2000);\r\n }\r\n }\r\n\r\n private refreshCatalogListIfUpdatedTimer() {\r\n if (this.jobStarted == 0) {\r\n this.counter = 0;\r\n setTimeout(this.refreshCatalogListIfUpdatedTimer, 2000);\r\n return;\r\n }\r\n\r\n //Prüfen ob Import Job\r\n if (this.portfree && this.loginService.currentUser) {\r\n this.portfree = false;\r\n\r\n this.jobService.isJobRunningThatChangesCatalogList(this.loginService.currentUser.customerId).subscribe(isRunning => {\r\n if (isRunning) {\r\n this.jobStarted = 2; //Aktualisierung starten\r\n }\r\n if (this.jobStarted == 1 && !isRunning) { //Aktualisierung bei Fehler unterbrechen\r\n this.counter += 1;\r\n if (this.counter > 10) {\r\n this.jobStarted = 2;\r\n }\r\n }\r\n if (this.jobStarted == 2 && !isRunning) { //Aktualisierung beenden\r\n this.setCatalogs(this.loginService.currentUser.customerId);\r\n this.jobStarted = 0;\r\n }\r\n this.portfree = true;\r\n setTimeout(this.refreshCatalogListIfUpdatedTimer, 2000);\r\n });\r\n } else {\r\n setTimeout(this.refreshCatalogListIfUpdatedTimer, 2000);\r\n }\r\n\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { LoginService } from './login.service';\r\nimport { CatalogState } from '../Model/Catalog/CatalogState';\r\n\r\n\r\n@Injectable()\r\nexport class CatalogStateService {\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getStatus(): Observable<CatalogState[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.get<CatalogState>(\"api/CatalogState/GetCatalogStates\", options)) as any;\r\n }\r\n\r\n catalogState : string[] = new Array<string>();\r\n\r\n deleteCatalogState(id: string) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n\r\n this.http.delete(\"api/CatalogState/DeleteCatalogState\", options)\r\n .subscribe();\r\n }\r\n }\r\n\r\n updateCatalogState(state: CatalogState): Observable<string> {\r\n return (this.http.post(\"api/CatalogState/UpdateCatalogState\", state)) as any;\r\n }\r\n\r\n addCatalogState(state: CatalogState): Observable<CatalogState> {\r\n return (this.http.post(\"api/CatalogState/AddCatalogState\", state)) as any;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from 'rxjs/operators';\r\nimport { TemplateItem } from \"../../Model/Catalog/TemplateItem\";\r\nimport { TemplateItemTemplate } from \"../../Model/Catalog/TemplateItemTemplate\";\r\nimport { ExportParameter } from '../../Model/exportParameter/ExportParameter';\r\nimport { LoginService } from \"./../login.service\";\r\nimport { ViewService } from \"./../view.service\";\r\n\r\n@Injectable()\r\nexport class CategoryService\r\n{\r\n public fields: TemplateItemTemplate[] = [];\r\n\r\n public categoryExportVisible: boolean = false;\r\n public categoryImportVisible: boolean = false;\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService, public viewService: ViewService)\r\n {\r\n\r\n }\r\n\r\n createExportJob(exportParameter: ExportParameter) {\r\n return this.http.post(\"api/job/CreateCategoryExportJob\", exportParameter);\r\n }\r\n\r\n public loadFields()\r\n {\r\n this.loadCategoryFields2Subscribe().subscribe();\r\n }\r\n\r\n public loadCategoryFields2Subscribe(): Observable<any>\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return this.http.get<TemplateItemTemplate[]>(\"api/category/GetExcelTemplateItemTemplate\", options)\r\n .pipe(\r\n map((result: TemplateItemTemplate[]) =>\r\n {\r\n this.fields = result\r\n }));\r\n }\r\n\r\n private sortTemplateItems(templateItems: TemplateItem[])\r\n {\r\n templateItems.sort(function (a: TemplateItem, b: TemplateItem): number\r\n {\r\n if (a.order == null || a.order == 0)\r\n {\r\n return -1;\r\n }\r\n if (b.order == null || b.order == 0)\r\n {\r\n return 1;\r\n }\r\n if (a.order < b.order)\r\n {\r\n return -1;\r\n }\r\n if (a.order > b.order)\r\n {\r\n return 1;\r\n }\r\n // a muss gleich b sein\r\n return 0;\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { DataSourceParams } from \"../Model/Catalog/DataSourceParams\";\r\n\r\n\r\nimport { UrlResponse } from \"../Model/Dto/UrlResponse\";\r\nimport { MediaElement } from \"../Model/Catalog/MediaElement\";\r\nimport { LoginService } from \"./login.service\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class MediaService {\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService) {\r\n }\r\n\r\n\r\n getThumbUrl(id: string, type: string, customerId: string, catalogId: string): Observable<UrlResponse> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"id\", id).append(\"type\", type)\r\n .append(\"catalogId\", catalogId)\r\n }\r\n\r\n return (this.http.get<UrlResponse>(\"api/catalog/GetThumbUrl\", options)) as any;\r\n }\r\n\r\n getEncodedString(s: string) {\r\n return encodeURIComponent(s);\r\n }\r\n\r\n getDownloadLink(catalogId: string, customerId: string, path: string) { \r\n return \"/Cloud/false/\" + catalogId + \"/\" + customerId + \"/\" + this.getEncodedString(path);\r\n }\r\n\r\n\r\n getMediaElements(catalogId: string, parameter: DataSourceParams) {\r\n let params = new HttpParams();\r\n params = params.append(\"catalogId\", catalogId);\r\n if (parameter.take) {\r\n params = params.append(\"take\", parameter.take.toString());\r\n }\r\n if (parameter.skip) {\r\n params = params.append(\"skip\", parameter.skip.toString());\r\n }\r\n if (parameter.orderBy) {\r\n params = params.append(\"orderBy\", parameter.orderBy);\r\n }\r\n if (parameter.desc) {\r\n params = params.append(\"desc\", parameter.desc.toString());\r\n }\r\n if (parameter.filter) {\r\n params = params.append(\"filter\", parameter.filter);\r\n }\r\n params = params.append(\"customerId\", this.loginService.currentUser.customerId);\r\n\r\n let options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: params\r\n }\r\n\r\n return this.http.get(\"api/catalog/GetMedia\", options).toPromise();\r\n }\r\n\r\n getJobDataElements(customerId: string, parameter: DataSourceParams) {\r\n\r\n let params = new HttpParams().append(\"customerId\", customerId);\r\n\r\n if (parameter.take) {\r\n params = params.append(\"take\", parameter.take.toString());\r\n }\r\n if (parameter.skip) {\r\n params = params.append(\"skip\", parameter.skip.toString());\r\n }\r\n if (parameter.orderBy) {\r\n params = params.append(\"orderBy\", parameter.orderBy);\r\n }\r\n if (parameter.desc) {\r\n params = params.append(\"desc\", parameter.desc.toString());\r\n }\r\n if (parameter.filter) {\r\n params = params.append(\"filter\", parameter.filter);\r\n }\r\n\r\n let options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: params\r\n }\r\n return this.http.get(\"api/job/GetJobFiles\", options).toPromise();\r\n\r\n }\r\n getJobDataElement(customerId: string, jobId: string) {\r\n\r\n let params = new HttpParams().append(\"customerId\", customerId);\r\n\r\n params = params.append(\"jobId\", jobId.toString());\r\n\r\n\r\n let options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: params\r\n }\r\n return this.http.get(\"api/job/GetJobFile\", options);\r\n\r\n }\r\n\r\n getMediaElement(mimeSource, catalogId: string): Observable<MediaElement> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"mimeSource\", mimeSource).append(\"catalogId\", catalogId)\r\n .append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.get<MediaElement>(\"api/catalog/GetMediaElement\", options)) as any;\r\n }\r\n\r\n deleteMime(catalogFileId: string, catalogId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogFileId\", catalogFileId).append(\"catalogId\", catalogId)\r\n .append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.delete(\"api/catalog/DeleteMedia\", options)) as any;;\r\n }\r\n\r\n deleteJobFile(mimeSource) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"mimeSource\", mimeSource)\r\n .append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n this.http.delete(\"api/job/DeleteJobFile\", options).subscribe(() => { });\r\n }\r\n\r\n\r\n}\r\n","export class Translation {\r\n\r\n constructor(\r\n public id?: string,\r\n public customerId?: string,\r\n public lastChanged?: Date,\r\n public text?: string,\r\n public translation?: string,\r\n public sourceLanguageCode?: string,\r\n public targetLanguageCode?: string,\r\n public approved?: boolean\r\n ) {\r\n }\r\n}\r\n","export class ExportTranslation {\r\n\r\n constructor(\r\n \r\n public customerId?: string,\r\n public targetLanguageCode?: string,\r\n\r\n ) {\r\n }\r\n}\r\n","export class CustomerLanguage {\r\n\r\n constructor(\r\n \r\n public id?: string,\r\n public customerId?: string,\r\n public language?: string \r\n ) {\r\n }\r\n}\r\n","import { OnInit } from \"@angular/core\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from 'rxjs/operators';\r\nimport { Translation } from \"../Model/Dto/Translation\";\r\nimport { TranslateCatalog } from \"../Model/Dto/TranslateCatalog\";\r\nimport { ExportTranslation } from \"../Model/Dto/ExportTranslation\";\r\nimport { LoginService } from \"./login.service\";\r\nimport { CustomerLanguage } from \"../Model/Dto/CustomerLanguage\";\r\nimport { Product } from \"../Model/Catalog/product\";\r\nimport { ViewService } from './view.service';\r\nimport { ProductService } from \"./CatalogManagement/product.service\";\r\n\r\n@Injectable()\r\nexport class TranslationService implements OnInit {\r\n \r\n languageCodes: string[] = [\"deu\", \"eng\", \"fra\", \"spa\", \"ces\"];\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService,private productService : ProductService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n static translateLanguage(code) {\r\n var key = ViewService.languages.findIndex((language => language.code == code) as any);\r\n\r\n if (key != -1)\r\n return ViewService.languages[key].language;\r\n else\r\n return \"unbekannt\";\r\n }\r\n\r\n translateCatalog(translateCatalog: TranslateCatalog) {\r\n return this.http.post(\"api/translation/translateCatalog\", translateCatalog).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n getTranslations(selectedLanguageCode: string, customerId: string): Observable<Translation[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n .append(\"targetLanguageCode\", selectedLanguageCode),\r\n }\r\n\r\n return (this.http.get<Translation[]>(\"api/translation/GetTranslations\", options)) as any;\r\n }\r\n\r\n addTranslation(translation: Translation): Observable<Translation> {\r\n return (this.http.post<Translation>(\"api/translation/AddTranslation\", translation)) as any;\r\n }\r\n\r\n updateTranslation(translation) {\r\n return this.http.post(\"api/translation/UpdateTranslation\", translation).subscribe();\r\n }\r\n\r\n exportTranslations(selectedLanguageCode: string,customerId: string) {\r\n let exportTranslation = new ExportTranslation();\r\n exportTranslation.targetLanguageCode = selectedLanguageCode;\r\n exportTranslation.customerId = customerId;\r\n this.http.post(\"api/translation/ExportTranslation\", exportTranslation).subscribe();\r\n }\r\n\r\n deleteTranslations(id: string): Observable<any> {\r\n return this.http.delete(\"api/Translation/DeleteTranslation/\" + id) as any;\r\n }\r\n\r\n deleteLanguage(language: string): Observable<any> {\r\n var key = this.loginService.customerLanguages.findIndex((languageTemplate => languageTemplate.language == language) as any);\r\n\r\n if (key != -1) {\r\n var id = this.loginService.customerLanguages[key].id;\r\n this.loginService.customerLanguages = this.loginService.customerLanguages.filter(languageTemplate => languageTemplate.id !== id);\r\n let result = this.http.delete(\"api/AccountLanguage/DeleteCustomerLanguage/\" + id) as any;\r\n this.loginService.setLanguageFlags();\r\n return result;\r\n }\r\n }\r\n\r\n deleteAllTranslations() {\r\n this.http.delete(\"api/translation/DeleteAllTranslation/\" + this.loginService.currentUser.customerId).subscribe();\r\n }\r\n\r\n deleteForLanguage(languageCode): Observable<any> {\r\n return this.http.delete(\"api/translation/DeleteForLanguage/\" + this.loginService.currentUser.customerId + \"/\" + languageCode) as any;\r\n }\r\n\r\n addLanguage2Account(languageCode): Observable<any> {\r\n var customerLanguage = new CustomerLanguage();\r\n customerLanguage.customerId = this.loginService.currentUser.customerId;\r\n customerLanguage.language = languageCode;\r\n return this.http.post<CustomerLanguage>(\"api/AccountLanguage/AddCustomerLanguage\", customerLanguage).pipe(map((result: CustomerLanguage) => this.addLanguage(result))) as any;\r\n }\r\n\r\n addLanguage(language) {\r\n this.loginService.addLanguage(language);\r\n }\r\n\r\n public productTranslation: Product = null;\r\n\r\n getProductTranslation(catalogId, productId) {\r\n if (!this.loginService.hasAddonTranslate)\r\n return;\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"catalogId\", catalogId)\r\n .append(\"productId\", productId)\r\n .append(\"customerId\", this.loginService.currentUser.customerId)\r\n .append(\"targetLanguageCode\", this.loginService.selectedTranslateLanguage)\r\n }\r\n\r\n return this.http.get<Product>(\"api/Translation/TranslateProduct\", options).pipe(\r\n map((result: Product) => this.setTranslatetProduct(result))).subscribe();\r\n }\r\n\r\n setTranslatetProduct(product) {\r\n this.productTranslation = this.productService.getProductFromJson(product.product, this.loginService.wawiSettings);;\r\n //console.log(\"translationDone\");\r\n //console.log(this.productTranslation);\r\n this.productTranslation.prepareView();\r\n }\r\n\r\n translationUpdate(textDEU, textTra) {\r\n var translation = new Translation();\r\n translation.customerId = this.loginService.currentUser.customerId;\r\n translation.sourceLanguageCode = \"deu\";\r\n translation.targetLanguageCode = this.loginService.selectedTranslateLanguage;\r\n translation.text = textDEU;\r\n translation.translation = textTra;\r\n //console.log(translation);\r\n this.updateTranslation(translation);\r\n }\r\n}\r\n","export class RestoreBackup {\r\n\r\n constructor(\r\n public backupId?: string,\r\n public customerId?: string,\r\n public restoreMedia?: boolean\r\n ) {\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Contact } from \"../../Model/Contact\";\r\nimport { RestoreBackup } from \"../../Model/Dto/RestoreBackup\";\r\nimport { Backup } from \"../../Model/System/Backup\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class BackupService {\r\n constructor(private http: HttpClient, \r\n \r\n ) {\r\n }\r\n\r\n contact(contact: Contact) {\r\n return this.http.post(\"api/account/contact\", contact).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n\r\n deleteBackup(id) {\r\n this.http.delete(\"api/Backup/DeleteBackup/\" + id ).subscribe();\r\n\r\n }\r\n\r\n getBackups(customerId: string): Observable<Backup[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return this.http.get<Backup[]>(\"api/backup/getbackups\", options);\r\n }\r\n\r\n restoreBackup(restoreBackup: RestoreBackup) {\r\n this.http.post(\"api/Backup/RestoreBackup\", restoreBackup)\r\n .subscribe(success => {\r\n if (success) {\r\n }\r\n }); }\r\n\r\n getMediaJob(backupId: string, customerId: string) {\r\n let restoreBackup = new RestoreBackup();\r\n restoreBackup.backupId = backupId;\r\n restoreBackup.customerId = customerId;\r\n restoreBackup.restoreMedia = true;\r\n this.http.post(\"api/Backup/CreateMediaJob\", restoreBackup)\r\n .subscribe(success => {\r\n if (success) {\r\n }\r\n });\r\n\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { CatalogDataQuality } from \"../Model/validation/CatalogDataQuality\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\nimport { StartAction } from \"../Model/Dto/StartAction\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class DataQualityService {\r\n\r\n catalogDataQuality: CatalogDataQuality;\r\n\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n\r\n startUserAction(startAction: StartAction) {\r\n\r\n return this.http.post(\"api/Job/StartCatalogAction\", startAction).pipe(map(response => {\r\n return true;\r\n }));\r\n\r\n }\r\n CalculateCatalogDataQuality(startAction: StartAction) {\r\n\r\n return this.http.post(\"api/DataQuality/CalculateCatalogDataQuality\", startAction);\r\n }\r\n\r\n getDataQuality(customerId: string, catalogId: string): Observable<CatalogDataQuality> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"catalogId\", catalogId)\r\n\r\n }\r\n return this.http.get<CatalogDataQuality>(\"api/DataQuality/GetDataQuality\", options);\r\n }\r\n\r\n}\r\n","export class OsgImportCatalog {\r\n\r\n constructor(\r\n public customerId?: string,\r\n public productRange?: string,\r\n public keepRootCategory?: boolean,\r\n public useTest?: boolean,\r\n public takeAllCategory?:boolean,\r\n\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { OsgConnection } from \"../Model/Dto/OsgConnection\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OsgImportCatalog } from '../Model/Dto/OsgImportCatalog';\r\n\r\n\r\n@Injectable()\r\nexport class OsgConnectionService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n\r\n\r\n\r\n getConnection(customerId: string, getTest: boolean): Observable<OsgConnection> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"getTest\", getTest.toString())\r\n }\r\n\r\n return (this.http.get<OsgConnection[]>(\"api/OsgConnection/GetConnection\", options)) as any;\r\n }\r\n\r\n update(osgConnection: OsgConnection): Observable<number> {\r\n return (this.http.post(\"api/OsgConnection/Update\", osgConnection)) as any;\r\n\r\n }\r\n\r\n testShopConnection(id: number): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"connectionId\", id.toString())\r\n }\r\n return (this.http.get(\"api/OsgConnection/testShopConnection\", options)) as any;\r\n }\r\n\r\n getProductRanges(customerId: string, useTest: boolean): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"useTest\", useTest.toString())\r\n }\r\n\r\n return (this.http.get<OsgConnection[]>(\"api/OsgConnection/GetProductRanges\", options)) as any;\r\n }\r\n\r\n importCatalog(productRange: string, customerId: string, keepRootCategory: boolean, useTest: boolean, takeAllCategory: boolean): Observable<boolean> {\r\n\r\n let osgImportCatalog = new OsgImportCatalog();\r\n\r\n osgImportCatalog.customerId = customerId;\r\n osgImportCatalog.productRange = productRange;\r\n osgImportCatalog.keepRootCategory = keepRootCategory;\r\n osgImportCatalog.useTest = useTest;\r\n osgImportCatalog.takeAllCategory = takeAllCategory;\r\n\r\n return (this.http.post(\"api/Import/ImportOsgCatalog\", osgImportCatalog)) as any;\r\n\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { ClassificationSystem } from \"../Model/classification/ClassificationSystem\";\r\nimport { ClassificationClassTree } from \"../Model/classification/ClassificationClassTree\";\r\nimport { ClassificationClass } from \"../Model/classification/ClassificationClass\";\r\nimport { Product } from '../Model/Catalog/product';\r\nimport { AddClassification } from '../Model/classification/AddClassification';\r\nimport { map } from 'rxjs/operators';\r\nimport { FeatureSystem } from '../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { FeatureValue } from '../Model/classification/FeatureValue';\r\n\r\n\r\n@Injectable()\r\nexport class ClassificationService {\r\n\r\n\r\n selectedSystem: ClassificationSystem;\r\n selectedClass: ClassificationClass;\r\n _selectedClassId: string = \"\";\r\n\r\n get selectedClassId(): string {\r\n return this._selectedClassId;\r\n }\r\n\r\n set selectedClassId(value: string) {\r\n if (value != this.selectedClassId && value != \"\") {\r\n this.getClass(value).subscribe(\r\n (cs: ClassificationClass) => {\r\n this.selectedClass = cs;\r\n });\r\n } else if (!value) {\r\n this.selectedClass = undefined;\r\n }\r\n this._selectedClassId = value;\r\n }\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n classificationSystems: ClassificationSystem[] = [];\r\n\r\n public isClassificationSystem(name: string) {\r\n const key = this.classificationSystems.findIndex((classificationSystem => classificationSystem.name === name));\r\n\r\n return key !== -1 ? true : false;\r\n }\r\n\r\n public getSystems() { \r\n this.http.get(\"api/Classification/getSystems\").subscribe(\r\n (result: ClassificationSystem[]) => {\r\n this.classificationSystems = result;\r\n });\r\n }\r\n\r\n\r\n public getSystemsOfCustomer(customerId : string, language:string): Observable<ClassificationSystem[]> {\r\n const url = `api/Classification/GetSystemsOfCustomer`;\r\n const params = new HttpParams().append(\"customerId\", customerId).append(\"language\", language);\r\n const options = { params };\r\n return this.http.get<ClassificationSystem[]>(url, options); \r\n }\r\n\r\n public writeSystem(cs: ClassificationSystem): Observable<ClassificationSystem> {\r\n\r\n return (this.http.post(\"api/Classification/AddOrUpdate\", cs)) as any;\r\n\r\n\r\n }\r\n\r\n public addClassification(addClassification: AddClassification): Observable<FeatureSystem[]> {\r\n\r\n return (this.http.post(\"api/Classification/AddClassification\", addClassification)) as any;\r\n\r\n\r\n }\r\n deleteSystem(id) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n\r\n this.http.delete(\"api/Classification/DeleteSystem\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n\r\n getClass(id: string): Observable<ClassificationClass> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n return (this.http.get<ClassificationClassTree>(\"api/Classification/GetClassificationClass\", options)) as any;\r\n }\r\n\r\n getTree(id: string): Observable<ClassificationClassTree[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n return (this.http.get<ClassificationClassTree[]>(\"api/Classification/GetTree\", options)) as any;\r\n }\r\n\r\n\r\n tree: ClassificationClassTree[];\r\n\r\n async getTreeFiltered(classificationSystemId: string, parentId: string, filter: string[]): Promise<ClassificationClassTree[]> {\r\n\r\n let params = new HttpParams().append(\"classificationSystemId\", classificationSystemId).append(\"parentId\", parentId)\r\n\r\n if (filter)\r\n params = params.append(\"filter\", filter.join(\";\"));\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: params\r\n }\r\n\r\n return await this.http.get<ClassificationClassTree[]>(\"api/Classification/GetTreeFiltered\", options).pipe(\r\n map((result: ClassificationClassTree[]) => this.tree = result)).toPromise();\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n deleteClassTree(element: ClassificationClassTree) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", element.id)\r\n }\r\n\r\n this.http.delete(\"api/Classification/DeleteClassTree\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateClassTree(element: ClassificationClassTree): Observable<ClassificationClassTree> {\r\n\r\n return (this.http.post(\"api/Classification/UpdateClassTree\", element)) as any;\r\n }\r\n\r\n updateClass(selectedClass: ClassificationClass): Observable<ClassificationClass> {\r\n return (this.http.post(\"api/Classification/UpdateClassificationClass\", selectedClass)) as any;\r\n }\r\n\r\n getFeatureValues(featureName, classId): Observable<FeatureValue[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"featureName\", featureName)\r\n .append(\"classId\", classId)\r\n }\r\n return (this.http.get<FeatureValue[]>(\"api/Classification/GetFeatureValues\", options)) as any;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\r\nimport { lastValueFrom, Observable } from \"rxjs\";\r\nimport { ValidFeatureSystem } from \"../Model/ValidFeatureSystem\";\r\nimport { ValidFeature } from \"../Model/ValidFeature\";\r\nimport { ValidFeatureValue } from \"../Model/ValidFeatureValue\";\r\nimport { FeatureSystem } from \"../Model/Catalog/FeatureModels/FeatureSystem\";\r\nimport { custom } from \"devextreme/ui/dialog\";\r\nimport { Catalog } from \"../Model/Catalog/catalog\";\r\nimport { StringResponse } from \"../Model/dto/StringResponse\";\r\n\r\n@Injectable()\r\nexport class ValidFeatureService {\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n getValidIdForFeature(name: string, unit: string, validFeatureSystemId: string, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"name\", name)\r\n .append(\"unit\", unit)\r\n .append(\"validFeatureSystemId\", validFeatureSystemId)\r\n };\r\n return lastValueFrom(this.http.get<StringResponse>(\"api/ValidFeature/GetValidIdForFeature\", options)).then(x => { return x.value });\r\n }\r\n\r\n getValidIdForSystemName(name: string, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"name\", name)\r\n };\r\n return lastValueFrom(this.http.get<StringResponse>(\"api/ValidFeature/GetValidIdForSystemName\", options)).then(x => { return x.value });\r\n }\r\n\r\n getValidFeatureUnitForId(id: string, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"id\", id) \r\n };\r\n return lastValueFrom(this.http.get<StringResponse>(\"api/ValidFeature/getValidFeatureUnitForId\", options)).then(x => { return x.value });\r\n }\r\n\r\n getValidFeatureNameForId(id: string, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n .append(\"customerId\", customerId)\r\n .append(\"id\", id) \r\n };\r\n return lastValueFrom(this.http.get<StringResponse>(\"api/ValidFeature/getValidFeatureNameForId\", options)).then(x => { return x.value });\r\n }\r\n\r\n getValidSystemNameForId(id: string, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"id\", id)\r\n };\r\n return lastValueFrom(this.http.get<StringResponse>(\"api/ValidFeature/GetValidSystemNameForId\", options)).then(x => { return x.value });\r\n }\r\n\r\n public getSystems(customerId: string): Observable<ValidFeatureSystem[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return (this.http.get<ValidFeatureSystem[]>(\"api/ValidFeature/GetSystems\", options)) as any;\r\n\r\n }\r\n\r\n public writeSystem(vfs: ValidFeatureSystem): Observable<ValidFeatureSystem> {\r\n\r\n return (this.http.post(\"api/ValidFeature/AddSystem\", vfs)) as any;\r\n\r\n }\r\n\r\n public getFeatures(validFeatureSystemId : string, customerId: string): Observable<ValidFeature[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"validFeatureSystemId\", validFeatureSystemId)\r\n };\r\n return (this.http.get<ValidFeature[]>(\"api/ValidFeature/GetFeatures\", options)) as any;\r\n\r\n }\r\n\r\n public setValidIds(customerId: string, featureSystem: FeatureSystem): Observable<FeatureSystem> {\r\n featureSystem.customerId = customerId;\r\n\r\n return (this.http.post(\"api/ValidFeature/SetValidIds\", featureSystem)) as any;\r\n }\r\n\r\n public getValues(validFeatureId: string, customerId: string): Observable<ValidFeatureValue[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"validFeatureId\", validFeatureId)\r\n };\r\n return (this.http.get<ValidFeatureValue[]>(\"api/ValidFeature/GetValues\", options)) as any;\r\n\r\n }\r\n\r\n public getCatalogSystems(catalogId: string, customerId: string): Observable<ValidFeatureSystem[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n };\r\n return (this.http.get<ValidFeatureSystem[]>(\"api/ValidFeature/GetCatalogSystems\", options)) as any;\r\n }\r\n\r\n public getCatalogFeatures(catalogId: string, customerId: string): Observable<ValidFeature[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n };\r\n return (this.http.get<ValidFeature[]>(\"api/ValidFeature/GetCatalogFeatures\", options)) as any;\r\n }\r\n\r\n public getCatalogFeaturesOfSystem(catalogId: string, customerId: string, validFeatureSystem: ValidFeatureSystem): Observable<ValidFeature[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n };\r\n return (this.http.post<ValidFeature[]>(\"api/ValidFeature/GetCatalogFeaturesOfSystem\", validFeatureSystem, options)) as any;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { HazmatClass } from '../Model/Catalog/HazmatClass';\r\nimport { LoginService } from './login.service';\r\nimport { Product } from '../Model/Catalog/product';\r\n\r\n@Injectable()\r\nexport class HazmatClassService {\r\n hazmatClasses: HazmatClass[];\r\n selectedClass: HazmatClass;\r\n isClassificationVisible: boolean = false;\r\n _selectedClassId: string = \"\";\r\n\r\n get selectedClassId(): string {\r\n return this._selectedClassId;\r\n }\r\n\r\n set selectedClassId(value: string) {\r\n if (value != this.selectedClassId && value != \"\") {\r\n this.getClass(value).subscribe(\r\n (cs: HazmatClass) => {\r\n this.selectedClass = cs;\r\n });\r\n }\r\n this._selectedClassId = value;\r\n }\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {}\r\n\r\n getClass(id: string): Observable<HazmatClass> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"hazmatClassId\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n\r\n }\r\n return (this.http.get<HazmatClass>(\"api/HazmatClass/GetHazmatClass\", options)) as any;\r\n }\r\n\r\n getClasses(): Observable<HazmatClass[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<HazmatClass[]>(\"api/HazmatClass/GetHazmatClasses\", options)) as any;\r\n }\r\n\r\n deleteClass(element: HazmatClass) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", element.id)\r\n }\r\n\r\n this.http.delete(\"api/HazmatClass/DeleteHazmatClass\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateClass(selectedClass: HazmatClass): Observable<HazmatClass> {\r\n return (this.http.post(\"api/HazmatClass/UpdateHazmatClass\", selectedClass)) as any;\r\n }\r\n\r\n addClass(selectedClass: HazmatClass): Observable<HazmatClass> {\r\n return (this.http.post(\"api/HazmatClass/AddHazmatClass\", selectedClass)) as any;\r\n }\r\n\r\n hStatements: string[] = [\r\n \"H200\",\r\n \"H201\",\r\n \"H202\",\r\n \"H203\",\r\n \"H204\",\r\n \"H205\",\r\n \"H220\",\r\n \"H221\",\r\n \"H222\",\r\n \"H223\",\r\n \"H224\",\r\n \"H225\",\r\n \"H226\",\r\n \"H228\",\r\n \"H229\",\r\n \"H230\",\r\n \"H231\",\r\n \"H240\",\r\n \"H241\",\r\n \"H242\",\r\n \"H250\",\r\n \"H251\",\r\n \"H252\",\r\n \"H260\",\r\n \"H261\",\r\n \"H270\",\r\n \"H271\",\r\n \"H272\",\r\n \"H280\",\r\n \"H281\",\r\n \"H290\",\r\n \"H300\",\r\n \"H301\",\r\n \"H302\",\r\n \"H304\",\r\n \"H310\",\r\n \"H311\",\r\n \"H312\",\r\n \"H314\",\r\n \"H315\",\r\n \"H317\",\r\n \"H318\",\r\n \"H319\",\r\n \"H330\",\r\n \"H331\",\r\n \"H332\",\r\n \"H334\",\r\n \"H335\",\r\n \"H336\",\r\n \"H340\",\r\n \"H341\",\r\n \"H350\",\r\n \"H350i\",\r\n \"H351\",\r\n \"H360\",\r\n \"H360D\",\r\n \"H360F\",\r\n \"H360FD\",\r\n \"H360Df\",\r\n \"H360Fd\",\r\n \"H361\",\r\n \"H361d\",\r\n \"H361f\",\r\n \"H361fd\",\r\n \"H362\",\r\n \"H370\",\r\n \"H371\",\r\n \"H372\",\r\n \"H373\",\r\n \"H300 + H310\",\r\n \"H300 + H330\",\r\n \"H310 + H330\",\r\n \"H300 + H310 + H330\",\r\n \"H301 + H311\",\r\n \"H301 + H331\",\r\n \"H311 + H331\",\r\n \"H301 + H311 + H331\",\r\n \"H302 + H312\",\r\n \"H302 + H332\",\r\n \"H312 + H332\",\r\n \"H302 + H312 + H332\",\r\n \"H400\",\r\n \"H410\",\r\n \"H411\",\r\n \"H412\",\r\n \"H413\",\r\n \"H420\"\r\n ]\r\n\r\n pStatements: string[] = [\r\n \"P101\",\r\n \"P102\",\r\n \"P103\",\r\n \"P201\",\r\n \"P202\",\r\n \"P210\",\r\n \"P211\",\r\n \"P220\",\r\n \"P222\",\r\n \"P223\",\r\n \"P230\",\r\n \"P231\",\r\n \"P232\",\r\n \"P233\",\r\n \"P234\",\r\n \"P235\",\r\n \"P240\",\r\n \"P241\",\r\n \"P242\",\r\n \"P243\",\r\n \"P244\",\r\n \"P250\",\r\n \"P251\",\r\n \"P260\",\r\n \"P261\",\r\n \"P262\",\r\n \"P263\",\r\n \"P264\",\r\n \"P270\",\r\n \"P271\",\r\n \"P272\",\r\n \"P273\",\r\n \"P280\",\r\n \"P282\",\r\n \"P283\",\r\n \"P284\",\r\n \"P231 + P232\",\r\n \"P301\",\r\n \"P302\",\r\n \"P303\",\r\n \"P304\",\r\n \"P305\",\r\n \"P306\",\r\n \"P308\",\r\n \"P310\",\r\n \"P311\",\r\n \"P312\",\r\n \"P313\",\r\n \"P314\",\r\n \"P315\",\r\n \"P320\",\r\n \"P321\",\r\n \"P330\",\r\n \"P331\",\r\n \"P332\",\r\n \"P333\",\r\n \"P334\",\r\n \"P335\",\r\n \"P336\",\r\n \"P337\",\r\n \"P338\",\r\n \"P340\",\r\n \"P342\",\r\n \"P351\",\r\n \"P352\",\r\n \"P353\",\r\n \"P360\",\r\n \"P361\",\r\n \"P362\",\r\n \"P363\",\r\n \"P364\",\r\n \"P370\",\r\n \"P371\",\r\n \"P372\",\r\n \"P373\",\r\n \"P375\",\r\n \"P376\",\r\n \"P377\",\r\n \"P378\",\r\n \"P380\",\r\n \"P381\",\r\n \"P390\",\r\n \"P391\",\r\n \"P301+P310\",\r\n \"P301+P312\",\r\n \"P301+P330+P331\",\r\n \"P302+P334\",\r\n \"P302+P352\",\r\n \"P302+P335+P334   \",\r\n \"P303+P361+P353\",\r\n \"P304+P340\",\r\n \"P305+P351+P338\",\r\n \"P306+P360\",\r\n \"P308+P311\",\r\n \"P308+P313\",\r\n \"P332+P313\",\r\n \"P333+P313\",\r\n \"P336+P315\",\r\n \"P337+P313\",\r\n \"P342+P311\",\r\n \"P361+P364\",\r\n \"P362+364\",\r\n \"P370+P376\",\r\n \"P370+P378\",\r\n \"P370+P380+P375\",\r\n \"P370+P372+P380+P373\",\r\n \"P370+P380+P375[+P378]\",\r\n \"P371+P380+P375\",\r\n \"P401\",\r\n \"P402\",\r\n \"P403\",\r\n \"P404\",\r\n \"P405\",\r\n \"P406\",\r\n \"P407\",\r\n \"P410\",\r\n \"P411\",\r\n \"P412\",\r\n \"P413\",\r\n \"P420\",\r\n \"P402+P404\",\r\n \"P403+P233\",\r\n \"P403+P235\",\r\n \"P410+P403\",\r\n \"P410+P412\",\r\n \"P501\",\r\n \"P502\"\r\n ]\r\n\r\n hazardPictograms: string[] = [\r\n \"GHS01\",\r\n \"GHS02\",\r\n \"GHS03\",\r\n \"GHS04\",\r\n \"GHS05\",\r\n \"GHS06\",\r\n \"GHS07\",\r\n \"GHS08\",\r\n \"GHS09\"\r\n ]\r\n\r\n loadProductHazmat(product: Product) {\r\n if (product.productLogistic.hazardousMaterialClassId != \"\") {\r\n this.getClass(product.productLogistic.hazardousMaterialClassId).subscribe(\r\n (result: HazmatClass) => {\r\n if (result.hazardPictograms.length > 0) {\r\n product.hazmatClass = result;\r\n product.addHazmat();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { WarrantyClass } from '../Model/Catalog/WarrantyClass';\r\nimport { LoginService } from './login.service';\r\nimport { Product } from '../Model/Catalog/product';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class WarrantyClassService {\r\n\r\n warrantyClasses: WarrantyClass[];\r\n\r\n\r\n selectedClass: WarrantyClass;\r\n isClassificationVisible: boolean = false;\r\n _selectedClassId: string = \"\";\r\n\r\n get selectedClassId(): string {\r\n return this._selectedClassId;\r\n }\r\n\r\n set selectedClassId(value: string) {\r\n if (value != this.selectedClassId && value != \"\") {\r\n this.getClass(value).subscribe(\r\n (cs: WarrantyClass) => {\r\n this.selectedClass = cs;\r\n });\r\n }\r\n this._selectedClassId = value;\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getClass(id: string): Observable<WarrantyClass> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"warrantyClassId\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n\r\n }\r\n return (this.http.get<WarrantyClass>(\"api/WarrantyClass/GetWarrantyClass\", options)) as any;\r\n }\r\n\r\n getClasses(): Observable<WarrantyClass[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<WarrantyClass[]>(\"api/WarrantyClass/GetWarrantyClasses\", options)) as any;\r\n }\r\n\r\n deleteClass(element: WarrantyClass) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", element.id)\r\n }\r\n\r\n this.http.delete(\"api/WarrantyClass/DeleteWarrantyClass\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateClass(selectedClass: WarrantyClass): Observable<WarrantyClass> {\r\n return (this.http.post(\"api/WarrantyClass/UpdateWarrantyClass\", selectedClass)) as any;\r\n }\r\n\r\n addClass(selectedClass: WarrantyClass): Observable<WarrantyClass> {\r\n return (this.http.post(\"api/WarrantyClass/AddWarrantyClass\", selectedClass)) as any;\r\n }\r\n\r\n loadProductWarranty(product: Product) {\r\n if (product.productLogistic.warrantyClassId != \"\") {\r\n this.getClass(product.productLogistic.warrantyClassId).subscribe(\r\n (result: WarrantyClass) => {\r\n if (result.descriptionHtml != \"\" && result.descriptionHtml != null) {\r\n product.warrantyClass = result;\r\n product.addWarranty(result.name);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { UpdateTemplate } from '../Model/Catalog/UpdateTemplate';\r\nimport { LoginService } from './login.service';\r\nimport { StringResponse } from \"../Model/Dto/StringResponse\";\r\n\r\n@Injectable()\r\nexport class UpdateTemplateService {\r\n\r\n updateTemplates: UpdateTemplate[];\r\n\r\n selectedTemplate: UpdateTemplate;\r\n isClassificationVisible: boolean = false;\r\n _selectedTemplate: string = \"\";\r\n\r\n get selectedTemplateId(): string {\r\n return this._selectedTemplate;\r\n }\r\n\r\n set selectedTemplateId(value: string) {\r\n if (value != this.selectedTemplateId && value != \"\") {\r\n this.getUpdateTemplate(value).subscribe(\r\n (updateTemplate: UpdateTemplate) => {\r\n this.selectedTemplate = updateTemplate;\r\n });\r\n }\r\n this._selectedTemplate = value;\r\n }\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n GetFieldGroups(): string[] {\r\n let result = [\"Basic\", \"Logistic\", \"Features\", \"Price\", \"Order\", \"Mimes\", \"Misc\",\"References\", \"PackingUnits\"];\r\n\r\n if (this.loginService.hasAddonUDX) {\r\n result.push(\"Udx\");\r\n }\r\n if (this.loginService.hasAddonLEGALITY) {\r\n result.push(\"Legal\");\r\n }\r\n if (this.loginService.hasAddonWawiErp) {\r\n result.push(\"Wawi/ERP\");\r\n }\r\n if (this.loginService.hasAddonSUPPLIERS) {\r\n result.push(\"Suppliers\");\r\n }\r\n if (this.loginService.hasAddonElectronicSales) {\r\n result.push(\"Electronic Sales\");\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getUpdateTemplate(id: string): Observable<UpdateTemplate> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"UpdateTemplateId\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n\r\n }\r\n return (this.http.get<UpdateTemplate>(\"api/UpdateTemplate/GetUpdateTemplate\", options)) as any;\r\n }\r\n\r\n getUpdateTemplates(): Observable<UpdateTemplate[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<UpdateTemplate[]>(\"api/UpdateTemplate/GetUpdateTemplates\", options)) as any;\r\n }\r\n\r\n deleteUpdateTemplate(element: UpdateTemplate) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", element.id)\r\n }\r\n\r\n this.http.delete(\"api/UpdateTemplate/DeleteUpdateTemplate\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateUpdateTemplate(updateTemplate: UpdateTemplate): Observable<StringResponse> {\r\n return (this.http.post(\"api/UpdateTemplate/UpdateUpdateTemplate\", updateTemplate)) as any;\r\n }\r\n\r\n addUpdateTemplate(selectedClass: UpdateTemplate): Observable<UpdateTemplate> {\r\n return (this.http.post(\"api/UpdateTemplate/AddUpdateTemplate\", selectedClass)) as any;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MavisConnection } from '../Model/Dto/MavisConnection';\r\nimport { MavisLanguage } from '../Model/Catalog/mavis/MavisLanguage';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class MavisConnectionService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n languages: MavisLanguage[];\r\n languagesLive: MavisLanguage[];\r\n getTestConnection(customerId: string): Observable<MavisConnection> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<MavisConnection>(\"api/MavisConnection/GetConnection\", options)) as any;\r\n }\r\n getLiveConnection(customerId: string): Observable<MavisConnection> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"isLive\", \"true\")\r\n }\r\n\r\n return (this.http.get<MavisConnection>(\"api/MavisConnection/GetConnection\", options)) as any;\r\n }\r\n\r\n getLanguages(customerId: string, isLive: boolean): Observable<MavisLanguage[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"isLive\", isLive.toString())\r\n }\r\n\r\n return (this.http.get<MavisLanguage[]>(\"api/MavisConnection/GetLanguages\", options)) as any;\r\n }\r\n\r\n update(mavisConnection: MavisConnection): Observable<number> {\r\n return (this.http.post(\"api/MavisConnection/Update\", mavisConnection)) as any;\r\n\r\n }\r\n\r\n testConnection(id: number): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"connectionId\", id.toString())\r\n }\r\n return (this.http.get(\"api/MavisConnection/testConnection\", options)) as any;\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { PrintCredential } from '../Model/System/PrintCredential';\r\nimport { CreatePrintCredential } from '../Model/Dto/CreatePrintCredential';\r\n\r\n@Injectable()\r\nexport class PrintService {\r\n \r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n\r\n getPrintCredentials( customerId: string): Observable<PrintCredential> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<PrintCredential>(\"api/print/GetPrintCredentials\", options)) as any;\r\n }\r\n\r\n createCredentials(dto: CreatePrintCredential): Observable<PrintCredential> {\r\n return (this.http.post(\"api/print/createCredential\", dto)) as any;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SendToNWConfig } from '../Model/Dto/SendToNWConfig';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class SendToNWConfigService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n \r\n\r\n getConnection(customerId: string): Observable<SendToNWConfig> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<SendToNWConfig>(\"api/SendToNWConfig/GetNWConfig\", options)) as any;\r\n }\r\n\r\n \r\n\r\n update(SendToNWConfig: SendToNWConfig): Observable<number> {\r\n return (this.http.post(\"api/SendToNWConfig/Update\", SendToNWConfig)) as any;\r\n\r\n }\r\n\r\n testConnection(id: number): Observable<TestResult> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"connectionId\", id.toString())\r\n }\r\n return (this.http.get(\"api/SendToNWConfig/testConnection\", options)) as any;\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { UpdateTemplate } from '../Model/Catalog/UpdateTemplate';\r\nimport { LoginService } from './login.service';\r\nimport { ProductState } from '../Model/Catalog/ProductState';\r\n\r\n\r\n@Injectable()\r\nexport class ProductStateService {\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getStatus(): Observable<ProductState[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.get<ProductState>(\"api/ProductState/GetProductStates\", options)) as any;\r\n }\r\n\r\n productStates : string[] = new Array<string>();\r\n\r\n deleteProductState(id: string) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n\r\n this.http.delete(\"api/ProductState/DeleteProductState\", options)\r\n .subscribe();\r\n }\r\n }\r\n\r\n updateProductState(productState: ProductState): Observable<string> {\r\n return (this.http.post(\"api/ProductState/UpdateProductState\", productState)) as any;\r\n }\r\n\r\n addProductState(productState: ProductState): Observable<ProductState> {\r\n return (this.http.post(\"api/ProductState/AddProductState\", productState)) as any;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ProductReportingService {\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n\r\n public getUrls(): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n }\r\n return (this.http.get<string[]>(\"api/ReportDesigner/GetUrlsList\", options)) as any;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { LoginService } from './login.service';\r\nimport { MappingProfile } from \"../Model/featureMapping/MappingProfile\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MappingInput } from \"../Model/featureMapping/MappingInput\";\r\nimport { MappingResult } from \"../Model/featureMapping/MappingResult\";\r\n\r\n\r\n@Injectable()\r\nexport class FeatureMappingService {\r\n\r\n\r\n selectedMappingId: string;\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService, public translate: TranslateService) {\r\n\r\n }\r\n \r\n getMappingProfiles(): Observable<MappingProfile[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.get<MappingProfile>(\"api/FeatureMapping/GetMappingProfiles\", options)) as any;\r\n }\r\n\r\n getMappingProfile(mappingProfileId: string, customerId: string): Observable<MappingProfile> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"mappingProfileId\", mappingProfileId)\r\n }\r\n\r\n return (this.http.get<MappingProfile>(\"api/FeatureMapping/GetMappingProfile\", options)) as any;\r\n }\r\n\r\n getMappingInput(mappingProfileId: string, customerId: string): Observable<MappingInput[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"mappingProfileId\", mappingProfileId)\r\n }\r\n\r\n return (this.http.get<MappingProfile>(\"api/FeatureMapping/getMappingInput\", options)) as any;\r\n }\r\n\r\n getMappingInputsByResultId(mappingResultid: string, profileId: string, customerId: string):\r\n Observable<MappingInput[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"mappingProfileId\", profileId).append(\"mappingResultid\", mappingResultid)\r\n }\r\n\r\n return (this.http.get<MappingProfile>(\"api/FeatureMapping/GetMappingInputByResult\", options)) as any;\r\n\r\n\r\n }\r\n \r\n\r\n\r\n deleteMappingProfile(id: string, customerId:string) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n .append(\"customerId\", customerId)\r\n }\r\n\r\n this.http.delete(\"api/FeatureMapping/DeleteMappingProfile\", options)\r\n .subscribe(\r\n result => {\r\n return true;\r\n },\r\n err => {\r\n console.error(err);\r\n return false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n updateMappingProfile(mappingProfile: MappingProfile,customerId: string): Observable<MappingProfile> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.post(\"api/FeatureMapping/UpdateMappingProfile\", mappingProfile,options)) as any;\r\n }\r\n\r\n addMappingProfile(mappingProfile: MappingProfile, customerId: string): Observable<MappingProfile> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.post(\"api/FeatureMapping/AddMappingProfile\", mappingProfile,options)) as any;\r\n }\r\n\r\n\r\n addOrUpdateMappingResult(mappingResult: MappingResult, customerId: string): Observable<MappingResult> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.post(\"api/FeatureMapping/AddOrUpdateMappingResult\", mappingResult, options)) as any;\r\n }\r\n\r\n createRule(mappingResult: MappingResult, customerId: string): Observable<MappingResult> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.post(\"api/FeatureMapping/createRule\", mappingResult, options)) as any;\r\n }\r\n\r\n addOrUpdateMappingInput(mappingInput: MappingInput, customerId: string): Observable<MappingInput> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.post(\"api/FeatureMapping/AddOrUpdateMappingInput\", mappingInput, options)) as any;\r\n }\r\n\r\n getMappingResults(mappingProfileId: string, customerId: string): Observable<MappingResult[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"mappingProfileId\", mappingProfileId)\r\n }\r\n\r\n return (this.http.get<MappingResult>(\"api/FeatureMapping/GetMappingResults\", options)) as any;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { UpdateTemplate } from '../Model/Catalog/UpdateTemplate';\r\nimport { LoginService } from './login.service';\r\nimport { ProductState } from '../Model/Catalog/ProductState';\r\nimport { SupplierPidMapping } from \"../Model/supplierPidMapping/SupplierPidMapping\";\r\nimport { ExportTranslation } from \"../Model/Dto/ExportTranslation\";\r\nimport { Product } from \"../Model/Catalog/product\";\r\n\r\n\r\n@Injectable()\r\nexport class SupplierPidMappingService {\r\n\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getSupplierPidMappings(): Observable<SupplierPidMapping[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n\r\n return (this.http.get<SupplierPidMapping[]>(\"api/SupplierPidMapping/GetSupplierPidMappings\", options)) as any;\r\n }\r\n\r\n mapProduct(model: Product) : Observable<Product> {\r\n return (this.http.post(\"api/SupplierPidMapping/mapProduct\", model)) as any;\r\n }\r\n\r\n deleteSupplierPidMapping(id: string) : Observable<void> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return this.http.delete(\"api/SupplierPidMapping/DeleteSupplierPidMapping\", options) as any;\r\n }\r\n\r\n deleteAllSupplierPidMapping(): Observable<void> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append('customerId', this.loginService.currentUser.customerId)\r\n };\r\n return (this.http.delete(\"api/SupplierPidMapping/DeleteAllSupplierPidMapping\", options)) as any;\r\n }\r\n\r\n updateSupplierPidMapping(supplierPidMapping: SupplierPidMapping): Observable<SupplierPidMapping> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.post(\"api/SupplierPidMapping/UpdateSupplierPidMapping\", supplierPidMapping,options)) as any;\r\n }\r\n\r\n addSupplierPidMapping(): Observable<SupplierPidMapping> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.post(\"api/SupplierPidMapping/AddSupplierPidMapping\", null,options)) as any;\r\n }\r\n\r\n exportSupplierPidMappings(customerId: string) {\r\n let exportTranslation = new ExportTranslation();\r\n exportTranslation.customerId = customerId;\r\n this.http.post(\"api/SupplierPidMapping/ExportSupplierPidMappings\", exportTranslation).subscribe();\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DeeplConnection } from \"../Model/Dto/DeeplConnection\";\r\nimport { Message } from \"../Model/System/Message\";\r\n\r\n@Injectable()\r\nexport class DeeplConnectionService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n getConnection(customerId: string): Observable<DeeplConnection> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<DeeplConnection>(\"api/DeeplConnection/GetConnection\", options)) as any;\r\n }\r\n\r\n update(deeplConnection: DeeplConnection): Observable<DeeplConnection> {\r\n return (this.http.post<DeeplConnection>(\"api/DeeplConnection/Update\", deeplConnection));\r\n }\r\n\r\n checkAuthKey(deeplConnection: DeeplConnection): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"authKey\", deeplConnection.authKey)\r\n }\r\n var result = (this.http.get<boolean>(\"api/DeeplConnection/CheckAuthKey\", options)) as any;\r\n return result;\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AdminService } from \"./admin.service\";\r\nimport { LoginService } from \"./login.service\";\r\nimport { SystemService } from \"./system.service\";\r\nimport { ClassificationService } from \"./classification.service\";\r\nimport { CatalogService } from \"./CatalogManagement/catalog.service\";\r\nimport { CategoryService } from \"./CatalogManagement/category.service\";\r\nimport { TranslationService } from \"./translation.service\";\r\nimport { BackupService } from \"./CatalogManagement/backup.service\";\r\nimport { JobService } from \"./job.service\";\r\nimport { DataQualityService } from \"./dataQuality.service\";\r\nimport { MediaService } from \"./media.service\";\r\nimport { OsgConnectionService } from \"./osgConnection.service\";\r\nimport { HazmatClassService } from \"./hazmatClass.service\";\r\nimport { ShopService } from \"./shop.service\";\r\nimport { Contact } from \"../Model/Contact\";\r\nimport { WarrantyClassService } from './warrantyClass.service';\r\nimport { UpdateTemplateService } from './updateTemplate.service';\r\nimport { MavisConnectionService } from './mavisConnection.service';\r\nimport { PrintService } from './print.service';\r\nimport { ViewService } from './view.service';\r\nimport { SendToNWConfigService } from './sendToNWConfig.service';\r\nimport { ProductStateService } from './productState.service';\r\nimport { ProductReportingService } from './productreporting.service';\r\nimport { FeatureMappingService } from './featureMapping.service';\r\nimport { WawiSettingsService } from './wawiSettingsService.service';\r\nimport { ProductService } from './CatalogManagement/product.service';\r\nimport { SupplierPidMappingService } from './supplierPidMapping.service';\r\nimport { DeeplConnectionService } from './deeplConnection.service';\r\nimport { ValidFeatureService } from './validFeature.service';\r\nimport { CatalogStateService } from './catalogState.service';\r\n\r\n\r\n@Injectable()\r\nexport class ModelService {\r\n constructor(private http: HttpClient,\r\n public adminService: AdminService,\r\n public loginService: LoginService,\r\n public catalogService: CatalogService,\r\n public catalogStateService: CatalogStateService,\r\n public categoryService: CategoryService,\r\n public systemService: SystemService,\r\n public router: Router,\r\n public jobService: JobService,\r\n public mediaService: MediaService,\r\n public translationService: TranslationService,\r\n public shopService: ShopService,\r\n public backupService: BackupService,\r\n public dataQualityService: DataQualityService,\r\n public osgConnectionService: OsgConnectionService,\r\n public classificationService: ClassificationService,\r\n public validFeatureService: ValidFeatureService,\r\n public hazmatClassService: HazmatClassService,\r\n public warrantyClassService: WarrantyClassService,\r\n public updateTemplateService: UpdateTemplateService,\r\n public mavisConnectionService: MavisConnectionService,\r\n public printService: PrintService,\r\n public viewService: ViewService,\r\n public sendToNWConfigService: SendToNWConfigService,\r\n public productStateService: ProductStateService,\r\n public productReportingService: ProductReportingService,\r\n public featureMappingService: FeatureMappingService,\r\n public wawiSettingsService: WawiSettingsService,\r\n public productService: ProductService,\r\n public supplierPidMappingService: SupplierPidMappingService,\r\n public deeplConnectionServeice: DeeplConnectionService\r\n ) {\r\n }\r\n\r\n contact(contact: Contact) {\r\n return this.http.post(\"api/account/contact\", contact).pipe(map(response => {\r\n return true;\r\n }));\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"./Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport deMessages from \"./localization/dx.messages.de.json\";\r\nimport enMessages from \"./localization/dx.messages.en.json\";\r\nimport nlMessages from \"./localization/dx.messages.nl.json\";\r\n\r\nimport { locale, loadMessages } from \"devextreme/localization\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"./app.component.html\",\r\n styleUrls: [\"./dx.custom.nextpim.css\", \"./app.component.css\"]\r\n})\r\nexport class AppComponent {\r\n\r\n constructor(private oauthService: OAuthService, private modelService: ModelService, translate: TranslateService) {\r\n loadMessages(deMessages);\r\n loadMessages(enMessages);\r\n loadMessages(nlMessages);\r\n locale(navigator.language);\r\n\r\n translate.addLangs(['de', 'en', 'nl']);\r\n translate.setDefaultLang('de');\r\n\r\n const browserLang = translate.getBrowserLang();\r\n translate.use(browserLang.match(/de|en|nl/) ? browserLang : 'de');\r\n translate.getTranslation(browserLang.match(/de|en|nl/) ? browserLang : 'de');\r\n\r\n this.oauthService.tokenEndpoint = window.location.origin + \"/connect/token\";\r\n this.oauthService.userinfoEndpoint = window.location.origin + \"/connect/userinfo\";\r\n this.oauthService.issuer = window.location.origin + \"/\";\r\n this.oauthService.clientId = \"nextpim\";\r\n this.oauthService.scope = \"profile offline_access\";\r\n this.oauthService.responseType = \"token\";\r\n this.oauthService.oidc = false;\r\n this.oauthService.setStorage(localStorage);\r\n }\r\n\r\n //Style\r\n\r\n get getViewPort() {\r\n return this.modelService.loginService.getViewPort();\r\n } \r\n}\r\n","<!--<menu></menu>-->\r\n<router-outlet></router-outlet>\r\n","<div *ngIf=\"model\" style=\"margin:20px; width:800px;\">\r\n <div class=\"column\">\r\n <div style=\"padding-left:0px;width:550px;float:left;\">\r\n <h5 style=\"margin-top:0px;\">{{model?.descriptionShort}}</h5>\r\n <p>\r\n <b>{{marketingClaim}}</b>\r\n </p>\r\n <div>\r\n <div *ngIf=\"model?.productImagesLogos.length>0\" style=\"float:right;\">\r\n <img src=\"{{model.productImagesLogos[0].blobUri}}\" style=\"width:110px;\" />\r\n </div>\r\n <div *ngIf=\"model.supplierPid.length>0\"><b>{{ 'Artikelnummer' | translate }}: </b>{{model.supplierPid}}</div>\r\n <div *ngIf=\"model.manufacturerAid?.length>0\"><b>{{ 'Herstellernummer' | translate }}: </b>{{model.manufacturerAid}}</div>\r\n <div *ngIf=\"model.manufacturerName?.length>0\"><b>{{ 'Hersteller' | translate }}: </b>{{model.manufacturerName}}</div>\r\n </div>\r\n <div *ngIf=\"model?.points.length>0\" style=\"margin-top:20px\">\r\n <table>\r\n <tr *ngFor=\"let point of model.points\">\r\n <td><b>{{point.name}}</b></td>\r\n <td style=\"width:20px;\"></td>\r\n <td>\r\n <i *ngFor='let item of forLoopArray(point.points)' class=\"dx-icon-favorites\" style=\"color:#0093D6\"></i><i *ngFor='let item of forLoopArray(point.max - point.points)' class=\"dx-icon-favorites\"></i>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div style=\"margin-top:20px\">\r\n <span [innerHTML]=\"model?.descriptionLong\"></span>\r\n </div>\r\n </div>\r\n <div style=\"padding-right:0px;width:250px;float:right;\">\r\n <div *ngIf=\"model.productImagesNormal.length>0\" style=\"margin-bottom:10px;float:right;\">\r\n <dx-gallery [dataSource]=\"mimes\"\r\n [height]=\"230\"\r\n [width]=\"230\"\r\n [loop]=\"true\"\r\n [showIndicator]=\"showIndicator\"\r\n [showNavButtons]=\"false\">\r\n <div *dxTemplate=\"let galleryItem of 'item'\">\r\n <div>\r\n <img src=\"{{galleryItem.normUri}}\" width=\"230\" height=\"230\" />\r\n </div>\r\n </div>\r\n </dx-gallery>\r\n </div>\r\n <span *ngIf=\"model.productImagesNormal.length==0\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 230px;float:right;\"></span>\r\n <div class=\"shopViewIconContainer\">\r\n <div *ngFor=\"let galleryItem of model.productImagesIcon\" class=\"shopViewIcons\">\r\n <img src=\"{{galleryItem.thumbUri}}\" />\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"hasPrice\" class=\"card card-body bg-light\" style=\"float:right;width:230px;\">\r\n \r\n <div class=\"d-flex flex-row\">\r\n <h6>{{price.prouctPrice}}</h6> \r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n {{ 'zzgl' | translate }}. {{price.prouctTax}}% {{ 'Mwst' | translate }}.\r\n </div>\r\n <div class=\"d-flex accordion-collapseflex-row\">\r\n {{price.prouctUnit}}\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"column\" style=\"float: left;margin-top:10px;width:100%;\" *ngIf=\"model.features.length>0\">\r\n <dx-tab-panel [dataSource]=\"features\"\r\n [selectedIndex]=\"0\"\r\n [loop]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [swipeEnabled]=\"true\">\r\n <div *dxTemplate=\"let features of 'title'\">\r\n <span>{{features.name | translate}}</span>\r\n </div>\r\n <div *dxTemplate=\"let featureSys of 'item'\">\r\n <div [ngSwitch]=\"featureSys.type\">\r\n <div class=\"dx-fieldset\" *ngSwitchCase=\"'normal'\">\r\n <dx-data-grid *ngIf=\"featureSys.hasName\"\r\n [dataSource]=\"featureSys.features\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\">\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Bezeichnung' | translate }}\" ></dxi-column>\r\n <dxi-column dataField=\"value\" caption=\"{{ 'Wert' | translate }}\" ></dxi-column>\r\n <dxi-column dataField=\"funit\" caption=\"{{ 'Einheit' | translate }}\" ></dxi-column>\r\n </dx-data-grid>\r\n\r\n\r\n <div *ngIf=\"!featureSys.hasName\">\r\n <ul>\r\n <li *ngFor=\"let feature of featureSys.features; let i = index\">\r\n {{feature.value}}\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"dx-fieldset\" *ngSwitchCase=\"'data_sheet'\">\r\n <ul style=\"list-style: none;padding-left:0px;\">\r\n <li *ngFor='let download of model.productDataSheets' class=\"dataSheetDownload\"><a href=\"{{mediaService.getDownloadLink(this.catalogId,this.customerId,download.mimeSource)}}\" target=\"_blank\"><img src=\"/images/Adobe_PDF_icon.svg\" style=\"height: 20px;margin-right: 10px;\">{{download.mimeDescr}}</a></li>\r\n </ul>\r\n </div>\r\n <div class=\"dx-fieldset\" *ngSwitchCase=\"'warranty'\">\r\n <span [innerHTML]=\"model.warrantyClass.descriptionHtml\"></span>\r\n </div>\r\n <div class=\"dx-fieldset\" *ngSwitchCase=\"'hazmat'\">\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <img *ngFor='let item of model.hazmatClass.hazardPictograms' src=\"/images/ghs/{{item}}.png\" class=\"hazmatIcon\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <div class=\"hazmatHeadline\">{{ 'Gefahrenhinweise' | translate }}</div>\r\n <div *ngFor=\"let item of model.hazmatClass.hazardStatements\" class=\"hazmatStatement\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <div class=\"hazmatHeadline\">{{ 'Sicherheitshinweise' | translate }}</div>\r\n <div *ngFor=\"let item of model.hazmatClass.precautionaryStatements\" class=\"hazmatStatement\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-tab-panel>\r\n </div>\r\n</div>\r\n","import { Input, Component, OnInit } from \"@angular/core\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { MediaService } from \"../../Services/media.service\";\r\n\r\n@Component({\r\n selector: \"shopView\",\r\n templateUrl: \"shopView.component.html\",\r\n styleUrls: [\"shopView.component.css\"]\r\n})\r\nexport class ShopView implements OnInit {\r\n @Input() model: Product;\r\n\r\n constructor(public mediaService: MediaService, public catalogService: CatalogService, public loginService: LoginService) { }\r\n\r\n ngOnInit(): void { \r\n this.model.prepareView();\r\n }\r\n\r\n\r\n get customerId() {\r\n return this.loginService.currentCustomer.id;\r\n }\r\n\r\n get catalogId() {\r\n return this.catalogService.selectedCatalogId;\r\n }\r\n \r\n get mimes() { \r\n return this.model.productImagesNormal;\r\n }\r\n\r\n get features() {\r\n return this.model.features;\r\n }\r\n\r\n get showIndicator() {\r\n if (this.model.productImagesNormal.length == 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get marketingClaim() {\r\n return this.model.marketingClaim;\r\n }\r\n\r\n get ean() {\r\n if (this.model.internationalPidType == 'gtin' && this.model.internationalPid.length == 13) {\r\n return this.model.internationalPid;\r\n }\r\n return \"\";\r\n }\r\n\r\n get hasPrice() {\r\n if (this.model.price != null && this.model.price.prouctPrice != \"\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get downloadLink(): string {\r\n return \"/Cloud/false/\" + this.model.catalogMappings[0].catalogId + \"/\" + this.model.customerId + \"/\"; // .catalogMappings[0]. ist hier OK\r\n }\r\n\r\n get price() {\r\n return this.model.price;\r\n }\r\n\r\n forLoopArray(elements): Array<any> {\r\n return new Array(parseInt(elements));\r\n }\r\n}\r\n","import { ProductSearchOptions } from './ProductSearchOptions';\r\nimport { UserToCustomer } from './UserToCustomer';\r\n\r\nexport class AppUser {\r\n constructor(\r\n public id?: string,\r\n public userName?: string,\r\n public defaultLanguage?: string,\r\n public firstName?: string,\r\n public lastName?: string,\r\n public email?: string,\r\n public customerId?: string,\r\n public currentClaim?: string,\r\n public showImages: boolean = true,\r\n public showGroupReference?: boolean,\r\n public frontEndLanguage?: string,\r\n public showToolTips: boolean = true,\r\n public showProToolTips?: boolean,\r\n public viewPort: boolean = true,\r\n public showPlaceHolders: boolean = true,\r\n public featureProfiMode: boolean = false,\r\n public lastLogin?: Date,\r\n public lastNewsRead?: Date,\r\n public productSearchOptions?: ProductSearchOptions, \r\n public productSearchOptionsTarget?: ProductSearchOptions,\r\n ) {\r\n }\r\n deserialize(input: any) {\r\n Object.assign(this, input);\r\n\r\n //fuer jeden komplexen Datentypen notwendig (!)\r\n //this.userToCustomerList = this.userToCustomerList.map((utc: UserToCustomer) => new UserToCustomer().deserialize(utc));\r\n\r\n return this;\r\n }\r\n}\r\n","import { Product } from '../catalog/product';\r\nimport { DataQualityFacts } from '../catalog/DataQualityFacts';\r\n\r\nexport class ValidationRequest {\r\n\r\n constructor(\r\n public field?: string,\r\n public product?: Product,\r\n public methodId?: string,\r\n public dataQualityFacts?: DataQualityFacts,\r\n public systemKey?: string,\r\n public elementKey?: string,\r\n public booleanRadioGroupValue?: boolean,\r\n public isBooleanRadioGroup?: boolean\r\n ) {\r\n\r\n }\r\n}\r\n","export class FieldNames {\r\n\r\n constructor(\r\n public descriptionShort: string = \"DESCRIPTION_SHORT\",\r\n public supplierPid: string = \"SUPPLIER_PID\",\r\n public supplierAltPid: string = \"SUPPLIER_ALT_PID\",\r\n public buyerAid: string = \"BUYER_AID\",\r\n public descriptionLong: string = \"DESCRIPTION_LONG\",\r\n public descriptionLongWithoutHtml: string = \"DESC_WITHOUT_HTML\",\r\n public manufacturerTypeDescription: string = \"MANUFACTURER_TYPE_DESCR\",\r\n public internatonalPid: string = \"INTERNATIONAL_PID\",\r\n public internatonalPidType: string = \"INTERNATIONAL_PID_TYPE\",\r\n public group: string = \"GROUP_STRING\",\r\n public remarks: string = \"REMARKS\",\r\n public manufacturerPID: string = \"MANUFACTURER_PID\",\r\n public manufacturerName: string = \"MANUFACTURER_NAME\",\r\n public keywords: string = \"KEYWORDS\",\r\n public productOrder: string = \"PRODUCT_ORDER\",\r\n public udx: string = \"UDX\",\r\n public productReferences: string = \"PRODUCT_REFERENCES\",\r\n public productReferencesAccessories: string = \"PRODUCT_REFERENCES_accessories\",\r\n public productReferencesSparePart: string = \"PRODUCT_REFERENCES_sparepart\",\r\n public productReferencesSimilar: string = \"PRODUCT_REFERENCES_similar\",\r\n public productReferencesFollowUp: string = \"PRODUCT_REFERENCES_followup\",\r\n public productReferencesMandatory: string = \"PRODUCT_REFERENCES_mandatory\",\r\n public productReferencesOthers: string = \"PRODUCT_REFERENCES_others\",\r\n public productReferencesSelect: string = \"PRODUCT_REFERENCES_select\",\r\n public productReferencesConsitsOf: string = \"PRODUCT_REFERENCES_consists_of\",\r\n public productReferencesBaseProduct: string = \"PRODUCT_REFERENCES_base_product\",\r\n public productReferencesDiffOrderUnit: string = \"PRODUCT_REFERENCES_diff_order_Unit\",\r\n public status: string = \"STATUS\",\r\n public master: string = \"MASTER\", //SUPPLIER_PID des Master | MASTER | leer\r\n\r\n\r\n public edeNumber1: string = \"EDE_NUMBER_1\",\r\n public edeNumber2: string = \"EDE_NUMBER_2\",\r\n public edeNumber3: string = \"EDE_NUMBER_3\",\r\n public edeNumber4: string = \"EDE_NUMBER_4\",\r\n public edeNumber5: string = \"EDE_NUMBER_5\",\r\n\r\n public customsNumber: string = \"CUSTOMS_NUMBER\",\r\n public countryOfOrgin: string = \"COUNTRY_OF_ORIGIN\",\r\n public weight: string = \"WEIGHT\",\r\n public lenght: string = \"LENGTH\",\r\n public width: string = \"WIDTH\",\r\n public depth: string = \"DEPTH\",\r\n public hazmatClass: string = \"HAZMAT_ClASS\",\r\n public warrantyClass: string = \"WARRANTY_ClASS\",\r\n\r\n public specialTreatmentClass: string = \"SPECIAL_TREATMENT_CLASS\",\r\n public specialTreatmentClassType: string = \"SPECIAL_TREATMENT_CLASS_TYPE\",\r\n\r\n public erpGroupBuyer: string = \"ERP_GROUP_BUYER\",\r\n public erpGroupSupplier: string = \"ERP_GROUP_SUPPLIER\",\r\n\r\n public orderDetail: string = \"ORDER_DETAIL\",\r\n public deliveryTime: string = \"DELIVERY_TIME\",\r\n public orderUnit: string = \"ORDER_UNIT\",\r\n public contentUnit: string = \"CONTENT_UNIT\",\r\n public noCuPerOu: string = \"NO_CU_PER_OU\",\r\n public priceQuantity: string = \"PRICE_QUANTITY\",\r\n public quantityMin: string = \"QUANTITY_MIN\",\r\n public quantityMax: string = \"QUANTITY_MAX\",\r\n public quanityInterval: string = \"QUANTITY_INTERVAL\",\r\n\r\n public contentQuantity: string = \"CONTENT_QUANTITY\",\r\n public contentPackage: string = \"CONTENT_PACKAGE\",\r\n public basicQuantity: string = \"BASIC_QUANTITY\",\r\n public hasBasicPriceDuty: string = \"HAS_BASEPRICE_DUTY\",\r\n public isBulkyGood: string = \"IS_BULKY_GOOD\",\r\n public isTruckageCompanyGood: string = \"IS_TRUCKAGE_COMPANY_GOOD\",\r\n\r\n public priceLists: string = \"PRICE_LISTS\",\r\n public prices: string = \"PRICES\",\r\n public startDate: string = \"DATETIME_START_DATE\",\r\n public startTime: string = \"DATETIME_START_TIME\",\r\n public endDate: string = \"DATETIME_END_DATE\",\r\n public endTime: string = \"DATETIME_END_TIME\",\r\n public isDailyPrice: string = \"IS_DAILY_PRICE\",\r\n public priceType: string = \"PRICE_TYPE\",\r\n public priceAmount: string = \"PRICE_AMOUNT\",\r\n public priceFactor: string = \"PRICE_FACTOR\",\r\n public priceCurrency: string = \"PRICE_CURRENCY\",\r\n public lowerBound: string = \"LOWER_BOUND\",\r\n public tax: string = \"TAX\",\r\n public territory: string = \"TERRITORY\",\r\n public costOfLivingAdjustment: string = \"COST_OF_LIVING_ADJUSTMENT\",\r\n public isDiscontinued: string = \"IS_DISCONTINUED\",\r\n public discontinuedDate: string = \"DISCONTINUED_DATE\",\r\n\r\n public basePrice: string = \"BASE_PRICE\",\r\n\r\n public featureTableList: string = \"FEATURE_SYSTEM_TABLE\", // Alle Features EINES Systems\r\n public featureList: string = \"FEATURE_SYSTEM_LIST\", // Alle Features EINES Systems\r\n public featureListComplete: string = \"FEATURE_LIST\", // Alle Features ALLER Systeme\r\n public featureSystem: string = \"REFERENCE_FEATURE_SYSTEM\",\r\n public featureSystemName: string = \"REFERENCE_FEATURE_SYSTEM_NAME\",\r\n public featureSystemGroupId: string = \"REFERENCE_FEATURE_GROUP_ID\",\r\n public featureSystemGroupId2: string = \"REFERENCE_FEATURE_GROUP_ID2\",\r\n public featureSystemGroupName: string = \"REFERENCE_FEATURE_GROUP_NAME\",\r\n public featureSystemOrder: string = \"FS_ORDER\",\r\n public fOrder: string = \"FORDER\",\r\n public fName: string = \"FNAME\",\r\n public fValue: string = \"FVALUE\",\r\n public fUnit: string = \"FUNIT\",\r\n public fDescription: string = \"FDESCR\",\r\n public fValueDetails: string = \"FVALUE_DETAILS\",\r\n public featurePrintOrder: string = \"FEATURE_PRINT_ORDER\",\r\n public isVariant: string = \"ISVARIANT\",\r\n\r\n public mimes: string = \"MIMES\",\r\n public mimeType: string = \"MIME_TYPE\",\r\n public mimeSource: string = \"MIME_SOURCE\",\r\n public mimeDescription: string = \"MIME_DESCR\",\r\n public mimeAlt: string = \"MIME_ALT\",\r\n public mimePurpose: string = \"MIME_PURPOSE\",\r\n public mimeLinkSizeNorm: string = \"LINK_NORM\",\r\n public mimeExcludeFromShopware6: string = \"MIME_EXCLUDE_FROM_SHOPWARE6\",\r\n\r\n public productReferencesType: string = \"PRODUCT_REFERENCES_TYPE\", // Dieses Feld ist nicht für den Excel Ex-/Import (über \"Felder\") vorgesehen. Es sollte kein ExcelTemplateItemTemplate dafür definiert werden.\r\n public productReferencesSpid: string = \"PRODUCT_REFERENCES_SPID\", // Dieses Feld ist nicht für den Excel Ex-/Import (über \"Felder\") vorgesehen. Es sollte kein ExcelTemplateItemTemplate dafür definiert werden.\r\n\r\n public udxCategory: string = \"UDX_CATEGORY\", // Dieses Feld ist nicht für den Excel Ex-/Import (über \"Felder\") vorgesehen. Es sollte kein ExcelTemplateItemTemplate dafür definiert werden.\r\n public udxName: string = \"UDX_NAME\", // Dieses Feld ist nicht für den Excel Ex-/Import (über \"Felder\") vorgesehen. Es sollte kein ExcelTemplateItemTemplate dafür definiert werden.\r\n public udxValue: string = \"UDX_VALUE\", // Dieses Feld ist nicht für den Excel Ex-/Import (über \"Felder\") vorgesehen. Es sollte kein ExcelTemplateItemTemplate dafür definiert werden.\r\n\r\n public metaDescription: string = \"META_DESCRIPTION\",\r\n public metaTitel: string = \"META_TITLE\",\r\n public featureUpdateMode: string = \"FEATURE_UPDATE_MODE\",\r\n public udxUpdateMode: string = \"UDX_UPDATE_MODE\",\r\n public mimeUpdateMode: string = \"MIME_UPDATE_MODE\",\r\n public priceUpdateMode: string = \"PRICE_UPDATE_MODE\",\r\n public supplierUpdateMode: string = \"SUPPLIER_UPDATE_MODE\",\r\n public categoryUpdateMode: string = \"CATEGORY_UPDATE_MODE\",\r\n\r\n public isMimeChanged: string = \"IS_MIME_CHANGED\",\r\n public isLogisticChanged: string = \"IS_LOGISTIC_CHANGED\",\r\n public isFeatureChanged: string = \"IS_FEATURE_CHANGED\",\r\n public isUdxChanged: string = \"IS_UDX_CHANGED\",\r\n public isOrderDetailChanged: string = \"IS_ORDERDETAIL_CHANGED\",\r\n public isKeywordChanged: string = \"IS_KEYWORD_CHANGED\",\r\n public isReferencesChanged: string = \"IS_REFERENCES_CHANGED\",\r\n public isBaseProductChanged: string = \"IS_BASEPRODUCT_CHANGED\",\r\n public isDeleted: string = \"IS_DELETED\",\r\n public isNew: string = \"IS_NEW\",\r\n\r\n\r\n public color: string = \"COLOR\",\r\n public material: string = \"MATERIAL\",\r\n public pattern: string = \"PATTERN\",\r\n public size: string = \"SIZE\",\r\n public energieEfficentClass: string = \"ENERGIE_EFFICENT_CLASS\",\r\n public ageGroup: string = \"AGE_GROUP\",\r\n public gender: string = \"GENDER\",\r\n public materialComposition: string = \"MATERIAL_COMPOSITION\",\r\n public shoeSize: string = \"SHOE_SIZE\",\r\n public dressSize: string = \"DRESS_SIZE\",\r\n public ebayCategory: string = \"EBAY_CATEGORY\",\r\n public epid: string = \"EPID\",\r\n public amazonAsin: string = \"AMAZON_ASIN\",\r\n public googleProductCategory: string = \"GOOGLE_PRODUCT_CATEGORY\",\r\n public ebayCategory2: string = \"EBAY_CATEGORY_2\",\r\n\r\n public googleSalesPrice: string = \"GOOGLE_SALES_PRICE\",\r\n public conradCategory: string = \"CONRAD_CATEGORY\",\r\n public rakutenCategory: string = \"RAKUTEN_CATEGORY\",\r\n public realCategory: string = \"REAL_CATEGORY\",\r\n public manoManocategory: string = \"MANO_MANO_CATEGORY\",\r\n public crowdfoxCategory: string = \"CROWDFOX_CATEGORY\",\r\n public crowdfoxB2BCategory: string = \"CROWDFOX_B2B_CATEGORY\",\r\n public bazzarCategory: string = \"BAZZAR_CATEGORY\",\r\n public yategoCategory: string = \"YATEGO_CATEGORY\",\r\n public yategoTopOffer: string = \"YATEGO_TOP_OFFER\",\r\n public yategoDeliverySurcharge: string = \"YATEGO_DELIVERY_SURCHARGE\",\r\n public yategoCalcOnce: string = \"YATEGO_CALC_ONCE\",\r\n public portal1Category: string = \"PORTAL_1_CATEGORY\",\r\n public portal2Category: string = \"PORTAL_2_CATEGORY\",\r\n public portal3Category: string = \"PORTAL_3_CATEGORY\",\r\n public portal4Category: string = \"PORTAL_4_CATEGORY\",\r\n public portal5Category: string = \"PORTAL_5_CATEGORY\",\r\n\r\n\r\n public alloySurcharge: string = \"ALLOY_SURCHARGE\",\r\n public isBiocidalProduct: string = \"IS_BIOCIDAL_PRODUCT\",\r\n public isSelfServiceForbidden: string = \"IS_SELFSERVICE_FORBIDDEN\",\r\n public isFertigpackv: string = \"IS_FERTIGPACKV\",\r\n public isOekodesignEvpg: string = \"IS_OEKODESIGN_EVPG_ENVKG\",\r\n public isCommoditiesControll: string = \"IS_COMMODITIES_CONTROLL\",\r\n public isDetergenzienv: string = \"IS_DETERGENZIENV\",\r\n public isKosmetikv: string = \"IS_KOSMETIKV\",\r\n public isCeGs: string = \"IS_CE_GS\",\r\n public isWeeeRohsEar: string = \"IS_WEEE_ROHS_EAR\",\r\n public isReach: string = \"IS_REACH\",\r\n public isVerpackungsv: string = \"IS_VERPACKUNGSV\",\r\n public isSecurityDatasheetNeeded: string = \"IS_SECURITY_DATASHEET_NEEDED\",\r\n public isDualUse: string = \"IS_DUAL_USE\",\r\n public isBatterieV: string = \"IS_BATTERIE_V\",\r\n public warrantyClassMonth: string = \"WARRANTY_CLASS_MONTH\",\r\n public typeModel: string = \"TYPE_MODEL\",\r\n public tradeMark: string = \"TRADEMARK\",\r\n\r\n public isDurabilityProduct: string = \"IS_DURABILITY_PRODUCT\",\r\n public durabilityDays: string = \"DURABILITY_DAYS\",\r\n\r\n public wawiName: string = \"WAWI_NAME\",\r\n public firstSupplierPid: string = \"FIRST_SUPPLIER_PID\",\r\n public currentSupplierPid: string = \"CURRENT_SUPPLIER_PID\",\r\n public wawiLenght: string = \"WAWILENGTH\",\r\n public prefix: string = \"PREFIX\",\r\n public postfix: string = \"POSTFIX\",\r\n public line1: string = \"LINE_1\",\r\n public line2: string = \"LINE_2\",\r\n public line3: string = \"LINE_3\",\r\n public line4: string = \"LINE_4\",\r\n public customField: string = \"CUSTOM_FIELD\",\r\n\r\n public link: string = \"PRODUCT_LINK\",\r\n\r\n public mainSupplierId: string = \"MAINSUPPLIER_ID\",\r\n\r\n public suppliers: string = \"SUPPLIER_LIST\",\r\n public supplierOrder: string = \"SUPPLIER_ORDER\",\r\n public supplierId: string = \"SUPPLIER_ID\",\r\n public supplierName: string = \"SUPPLIER_NAME\",\r\n public pid: string = \"PID\",\r\n public supplierInternationalId: string = \"SUPPLIER_INTERNATIONAL_ID\",\r\n public supplierInternationalIdType: string = \"SUPPLIER_INTERNATIONAL_ID_TYP\",\r\n public supplierProductDescription: string = \"SUPPLIER_PRODUCT_DESC\",\r\n public supplierProductDescriptionShort: string = \"SUPPLIER_DESC_SHORT\",\r\n public supplierDeliveryTime: string = \"SUPPLIER_DELIVERY_TIME\",\r\n public supplierPrice: string = \"SUPPLIER_PRICE\",\r\n public supplierValidFrom: string = \"SUPPLIER_VALID_FROM\",\r\n public supplierValidUntil: string = \"SUPPLIER_VALID_UNTIL\",\r\n\r\n public supplierContentUnitCode: string = \"SUPPLIER_CONTENT_UNIT_CODE\",\r\n public supplierPackingAmount: string = \"SUPPLIER_PACKING_AMOUNT\",\r\n public supplierOrderIntervall: string = \"SUPPLIER_ORDER_INTERVALL\",\r\n public supplierMinOrderAmount: string = \"SUPPLIER_MIN_ORDER_AMOUNT\",\r\n public supplierDiscontinuedProduct: string = \"SUPPLIER_DISCONTINUED_PRODUCT\",\r\n public supplierDiscontinuedDate: string = \"SUPPLIER_DISCONTINUED_DATE\",\r\n\r\n public supplierDiscountGroupCode: string = \"SUPPLIER_DISCOUNT_GROUP_CODE\",\r\n public supplierPricingUnitCode: string = \"SUPPLIER_PRICE_UNIT_CODE\",\r\n public supplierPriceAllocationUnitCode: string = \"SUPPLIER_PRICE_ALLOCATION_UNIT_CODE\",\r\n public supplierPriceAllocationUnitCodeOriginal: string = \"SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL\",\r\n\r\n public packingUnit: string = \"PACKING_UNIT\",\r\n public packingUnitCode: string = \"PACKING_UNIT_CODE\",\r\n public packingUnitDescr: string = \"PACKING_UNIT_DESCR\",\r\n public packingUnitQuantityMax: string = \"PACKING_UNIT_QUANTITY_MAX\",\r\n public packingUnitQuantityMin: string = \"PACKING_UNIT_QUANTITY_MIN\",\r\n public packingUnitAmountContentUnit: string = \"PACKING_UNIT_AMOUNT_CONTENT_UNIT\",\r\n public packingUnitAmountSmallerUnit: string = \"PACKING_UNIT_AMOUNT_SMALLER_UNIT\",\r\n\r\n public electronicSalesNotReturnable: string = \"ELECTRONIC_SALES_NOTRETURNABLE\",\r\n public electronicSalesNotDiscountable: string = \"ELECTRONIC_SALES_NOTDISCOUNTABLE\",\r\n public electronicSalesNotOrderable: string = \"ELECTRONIC_SALES_NOTORDERABLE\",\r\n public electronicSalesNotRequestable: string = \"ELECTRONIC_SALES_NOTREQUESTABLE\",\r\n public electronicSalesLocked: string = \"ELECTRONIC_SALES_LOCKED\",\r\n public electronicSalesOnlyOffline: string = \"ELECTRONIC_SALES_ONLYOFFLINE\",\r\n public electronicSalesIsFulfillment: string = \"ELECTRONIC_SALES_IS_FULFILLMENT\",\r\n\r\n public electronicSalesDateCreated: string = \"ELECTRONIC_SALES_DATE_CREATED\",\r\n public electronicSalesSummaryText: string = \"ELECTRONIC_SALES_SUMMARY_TEXT\",\r\n public electronicSalesDescriptionMarketing: string = \"ELECTRONIC_SALES_DESCRIPTION_MARKETING\",\r\n public electronicSalesPromoInfo: string = \"ELECTRONIC_SALES_PROMO_INFO\",\r\n public electronicSalesNoteCustomer: string = \"ELECTRONIC_SALES_NOTE_CUSTOMER\",\r\n public electronicSalesSeoUrlFilename: string = \"ELECTRONIC_SALES_SEOURL_FILENAME\",\r\n \r\n public electronicSalesFSK: string = \"ELECTRONIC_SALES_FSK\",\r\n public electronicSalesEUDataSheet: string = \"ELECTRONIC_SALES_EUDATASHEET\",\r\n public electronicSalesEEK: string = \"ELECTRONIC_SALES_EEK\",\r\n public electronicSalesEELabel: string = \"ELECTRONIC_SALES_EELABEL\",\r\n public electronicSalesEEKColor: string = \"ELECTRONIC_SALES_EEK_COLOR\",\r\n \r\n public electronicSalesStockQuantitySupplier: string = \"ELECTRONIC_SALES_STOCK_QUANTITY_SUPPLIER\",\r\n public electronicSalesStockQuantityReseller: string = \"ELECTRONIC_SALES_STOCK_QUANTITY_RESELLER\",\r\n public electronicSalesStockKeeping: string = \"ELECTRONIC_SALES_STOCKKEEPING\",\r\n public electronicSalesStockLocation: string = \"ELECTRONIC_SALES_STOCK_LOCATION\",\r\n public electronicSalesStockUnit: string = \"ELECTRONIC_SALES_STOCK_UNIT\",\r\n public electronicSalesStockInfoText: string = \"ELECTRONIC_SALES_STOCK_INFOTEXT\",\r\n public electronicSalesStockKeepingModus: string = \"ELECTRONIC_SALES_STOCKKEEPING_MODUS\",\r\n public electronicSalesStockPriceFactor: string = \"ELECTRONIC_SALES_STOCK_PRICE_FACTOR\",\r\n public electronicSalesNoStockInfoText: string = \"ELECTRONIC_SALES_NOSTOCK_INFOTEXT\",\r\n\r\n public electronicSalesSurCharges1ArtNr: string = \"ELECTRONIC_SALES_SURCHARGES1_ARTNR\",\r\n public electronicSalesSurCharges1Percent: string = \"ELECTRONIC_SALES_SURCHARGES1_PERCENT\",\r\n public electronicSalesSurCharges1FixValue: string = \"ELECTRONIC_SALES_SURCHARGES1_FIXVALUE\",\r\n public electronicSalesSurCharges2ArtNr: string = \"ELECTRONIC_SALES_SURCHARGES2_ARTNR\",\r\n public electronicSalesSurCharges2Percent: string = \"ELECTRONIC_SALES_SURCHARGES2_PERCENT\",\r\n public electronicSalesSurCharges2FixValue: string = \"ELECTRONIC_SALES_SURCHARGES2_FIXVALUE\",\r\n public electronicSalesCharges: string = \"ELECTRONIC_SALES_CHARGES\",\r\n \r\n public electronicSalesOrderDecimalPlaces: string = \"ELECTRONIC_SALES_ORDER_DECIMAL_PLACES\",\r\n public electronicSalesOrderFactor: string = \"ELECTRONIC_SALES_ORDER_FACTOR\",\r\n public electronicSalesOrderStockFactor: string = \"ELECTRONIC_SALES_ORDER_STOCK_FACTOR\",\r\n public electronicSalesOrderPriceFactor: string = \"ELECTRONIC_SALES_ORDER_PRICE_FACTOR\",\r\n \r\n public electronicSalesNewInShopTime: string = \"ELECTRONIC_SALES_NEWINSHOP_TIME\",\r\n public electronicSalesShowParts: string = \"ELECTRONIC_SALES_SHOWPARTS\",\r\n public electronicSalesOptionTypeId: string = \"ELECTRONIC_SALES_OPTION_TYPE_ID\",\r\n public electronicSalesAlternateArticleNumber: string = \"ELECTRONIC_SALES_ALTERNATE_ARTICLENUMBER\",\r\n\r\n ) {\r\n this.electronicSalesBoolMapping = new Map(\r\n [\r\n [this.electronicSalesNotReturnable, 'notReturnable'],\r\n [this.electronicSalesNotDiscountable, 'notDiscountable'],\r\n [this.electronicSalesNotOrderable, 'notOrderable'],\r\n [this.electronicSalesNotRequestable, 'notRequestable'],\r\n [this.electronicSalesLocked, 'locked'],\r\n [this.electronicSalesOnlyOffline, 'onlyOffline'],\r\n [this.electronicSalesIsFulfillment, 'isFulfillment'],\r\n ]\r\n );\r\n this.electronicSalesNumberMapping = new Map(\r\n [\r\n [this.electronicSalesOrderDecimalPlaces, 'orderDecimalPlaces'],\r\n [this.electronicSalesOrderFactor, 'orderFactor'],\r\n [this.electronicSalesOrderStockFactor, 'orderStockFactor'],\r\n [this.electronicSalesOrderPriceFactor, 'orderPriceFactor'],\r\n ]\r\n );\r\n this.electronicSalesStringMapping = new Map(\r\n [\r\n [this.electronicSalesDescriptionMarketing, 'descriptionMarketing'],\r\n [this.electronicSalesSeoUrlFilename, 'seoUrlFilename'],\r\n [this.electronicSalesPromoInfo, 'promoInfo'],\r\n [this.electronicSalesFSK, 'fsk'],\r\n [this.electronicSalesEUDataSheet, 'euDataSheet'],\r\n [this.electronicSalesEEK, 'eek'],\r\n [this.electronicSalesEELabel, 'eeLabel'],\r\n [this.electronicSalesEEKColor, 'eekColor'],\r\n [this.electronicSalesNoteCustomer, 'noteCustomer'],\r\n [this.electronicSalesStockQuantitySupplier, 'stockQuantitySupplier'],\r\n [this.electronicSalesStockQuantityReseller, 'stockQuantityReseller'],\r\n [this.electronicSalesStockKeeping, 'stockKeeping'],\r\n [this.electronicSalesStockLocation, 'stockLocation'],\r\n [this.electronicSalesStockUnit, 'stockUnit'],\r\n [this.electronicSalesStockInfoText, 'stockInfoText'],\r\n [this.electronicSalesStockKeepingModus, 'stockKeepingModus'],\r\n [this.electronicSalesStockPriceFactor, 'stockPriceFactor'],\r\n [this.electronicSalesNoStockInfoText, 'noStockInfoText'],\r\n [this.electronicSalesSurCharges1ArtNr, 'surCharges1ArtNr'],\r\n [this.electronicSalesSurCharges1Percent, 'surCharges1Percent'],\r\n [this.electronicSalesSurCharges1FixValue, 'surCharges1FixValue'],\r\n [this.electronicSalesSurCharges2ArtNr, 'surCharges2ArtNr'],\r\n [this.electronicSalesSurCharges2Percent, 'surCharges2Percent'],\r\n [this.electronicSalesSurCharges2FixValue, 'surCharges2FixValue'],\r\n [this.electronicSalesCharges, 'charges'],\r\n [this.electronicSalesNewInShopTime, 'newInShopTime'],\r\n [this.electronicSalesShowParts, 'showParts'],\r\n [this.electronicSalesOptionTypeId, 'optionTypeId'],\r\n [this.electronicSalesAlternateArticleNumber, 'alternateArticleNumber'],\r\n ]\r\n );\r\n }\r\n\r\n electronicSalesBoolMapping: Map<string, string>;\r\n electronicSalesNumberMapping: Map<string, string>;\r\n electronicSalesStringMapping: Map<string, string>;\r\n}\r\n\r\nexport const fieldNames = new FieldNames();\r\n","\r\nexport class ValidationResult {\r\n \r\n constructor(\r\n\r\n public validateNumbers0?: number,\r\n public validateNumbers1?: number,\r\n public validateNumbers2?: number,\r\n public validateNumbers3?: number,\r\n public validateNumbers4?: number,\r\n public validateNumbers: number[] = [0, 0, 0, 0, 0],\r\n public validGroup?: number,\r\n public validGroupName?: string,\r\n public totalGroupCount?: number,\r\n public productInfosValid?: boolean,\r\n public productMimesValid?: boolean,\r\n public productFeaturesValid?: boolean,\r\n public productOrderDetailsValid?: boolean,\r\n public productPricesValid?: boolean,\r\n public productLogisticsValid?: boolean,\r\n public productReferenceValid?: boolean,\r\n public productUdxsValid?: boolean,\r\n public productSeoValid?: boolean,\r\n public productLegalValid?: boolean,\r\n public productCustomFieldsValid?: boolean,\r\n public productSuppliersValid?: boolean,\r\n public productPackingUnitsValid?: boolean,\r\n public mediaMessages?: string[],\r\n public featureMessages?: string[],\r\n public referenceMessages?: string[],\r\n public priceMessages?: string[],\r\n public missingForNextGroup?: string[],\r\n public validationGroupColors?: string[]\r\n ) {\r\n\r\n }\r\n}\r\n","export class Address {\r\n\r\n constructor(\r\n public name1?: string,\r\n public name2?: string,\r\n public name3?: string,\r\n public contact?: string,\r\n public street?: string,\r\n public zip?: string,\r\n public city?: string,\r\n public state?: string,\r\n public country?: string,\r\n public phone?: string,\r\n public fax?: string,\r\n public email?: string,\r\n public url?: string,\r\n public addressRemarks?: string,\r\n public addressType?: string\r\n ) {\r\n\r\n }\r\n}\r\n","import { Address } from \"./Address\";\r\n\r\n\r\nexport class Buyer {\r\n\r\n constructor(\r\n public buyerName?: string,\r\n public buyerIdType?: string,\r\n public buyerId?: string,\r\n public address?: Address,\r\n ) {\r\n this.address = new Address();\r\n }\r\n}\r\n","import { Address } from \"./Address\";\r\nimport { Mime } from \"./Mime\";\r\n\r\nexport class Supplier {\r\n\r\n constructor(\r\n public supplierName?: string,\r\n public supplierIdType?: string,\r\n public supplierId?: string,\r\n public address?: Address,\r\n public mime?: Mime\r\n ) {\r\n this.address = new Address();\r\n }\r\n}\r\n","import { CatalogPriceList } from \"./CatalogPriceList\";\r\nimport { Mime } from \"./Mime\";\r\nimport { Buyer } from \"./Buyer\";\r\nimport { Supplier } from \"./Supplier\";\r\nimport { Agreement } from \"./Agreement\";\r\nimport { UdxField } from \"./UdxField\";\r\nimport { ClassificationSystem } from \"../classification/ClassificationSystem\";\r\nimport { OsgSegmentMapping } from './OsgSegmentMapping';\r\nimport { DataQualityFacts } from './DataQualityFacts';\r\nimport { MavisCatalogMapping } from './mavis/MavisCatalogMapping';\r\nimport { ShopWare6Connection } from './ShopWareConnection';\r\nimport { FeatureSystem } from './FeatureModels/FeatureSystem';\r\nimport { ShopWare5Connection } from \"./Shopware5Connection\";\r\nimport { OdooConnection } from \"./OdooConnection\";\r\nimport { WawiIntegration } from \"./WawiIntegration\";\r\nimport { IntershopConnection } from \"./IntershopConnection\";\r\n\r\n\r\nexport class Catalog {\r\n\r\n constructor(\r\n public id?: string,\r\n public catalogName?: string,\r\n public customerId?: string,\r\n public pimGroup?: string,\r\n public catalogId?: string,\r\n public language?: string,\r\n public lastUpdate?: Date,\r\n public lastImageUpload?: Date,\r\n public productCount?: number,\r\n public categoryCount?: number,\r\n public buyer: Buyer = new Buyer(),\r\n public agreement: Agreement = new Agreement(),\r\n public catalogAlias?: string,\r\n public catalogVersion?: string,\r\n public catalogState?: string[],\r\n public currency?: string,\r\n public date?: Date,\r\n public generatorInfo?: string,\r\n public mimes: Mime[] = [],\r\n public mimeTemplate: Mime[] = [],\r\n public featureTemplate: FeatureSystem[] = [],\r\n public mimeRoot?: string,\r\n public memo?: string,\r\n public priceLists: CatalogPriceList[] = [],\r\n public uploadDate?: string,\r\n public thumbUri?: string,\r\n public territories: string[] = [],\r\n public state?: string,\r\n public type?: string,\r\n public supplier: Supplier = new Supplier(),\r\n public udxs: UdxField[] = [],\r\n public isPublic?: boolean,\r\n public isPrint?: boolean,\r\n public isVirtual?: boolean,\r\n public isActivId?: boolean,\r\n public usePrintView?: boolean,\r\n public shopUrl?: string,\r\n public shopAuth?: string,\r\n public startCatId?: number,\r\n public productPrefix?:string,\r\n public responsible?: string,\r\n public note?: string,\r\n public classificationSystems?: ClassificationSystem[],\r\n public osgSegmentMapping?: OsgSegmentMapping,\r\n public dataQualityFacts?: DataQualityFacts,\r\n public mavisMapping?: MavisCatalogMapping,\r\n public shopWareConnection?: ShopWare6Connection,\r\n public shopWare5Connection?: ShopWare5Connection,\r\n public odooConnection?: OdooConnection,\r\n public intershopConnection?: IntershopConnection,\r\n public wawiTemplate?: WawiIntegration,\r\n public validationMethodId?: string\r\n ) { }\r\n public hintsActiv = false; //Wenn true, dann werden Hintsactiviert\r\n public imagesValid = false;\r\n public logoValid = false;\r\n public dataSheetValid = false;\r\n public iconValid = false;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { lastValueFrom, Observable } from \"rxjs\";\r\nimport { ValidationRequest } from '../../Model/validation/ValidationRequest';\r\nimport { ValidationRequestCatalog } from '../../Model/validation/ValidationRequestCatalog';\r\nimport { FieldNames, fieldNames } from '../../Model/FieldNames';\r\nimport { ModelService } from './../model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ValidationResult } from '../../Model/validation/ValidationResult';\r\nimport { Catalog } from '../../Model/Catalog/Catalog';\r\nimport { ValidationMethod } from \"../../Model/validation/ValidationMethod\";\r\nimport { StringResponse } from \"../../Model/Dto/StringResponse\";\r\nimport { ValidationField } from \"../../Model/validation/ValidationField\";\r\n\r\n\r\n@Injectable()\r\nexport class ValidationService {\r\n public fieldNames: FieldNames;\r\n public validationResult: ValidationResult;\r\n public validateFieldRecord: Record<string, (params) => any> = {};\r\n\r\n constructor(private http: HttpClient, public modelService: ModelService, public translate: TranslateService) {\r\n this.validationResult = new ValidationResult();\r\n this.validationResult.validateNumbers = new Array<number>();\r\n this.validationResult.validateNumbers.push(0);\r\n this.validationResult.validateNumbers.push(0);\r\n this.validationResult.validateNumbers.push(0);\r\n this.validationResult.validateNumbers.push(0);\r\n this.validationResult.validateNumbers.push(0);\r\n this.fieldNames = fieldNames;\r\n this.validate = this.validate.bind(this);\r\n this.validateField = this.validateField.bind(this);\r\n }\r\n\r\n getValidationMethod(id: string): Observable<ValidationMethod> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"methodId\", id)\r\n }\r\n return (this.http.get<ValidationMethod>(\"api/validation/GetValidationMethod\", options)) as any;\r\n }\r\n\r\n getValidationMethods(): Observable<ValidationMethod[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams()\r\n }\r\n return (this.http.get<ValidationMethod[]>(\"api/validation/GetValidationMethods\", options)) as any;\r\n }\r\n\r\n deleteValidationMethod(model: ValidationMethod): Observable<StringResponse> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n body: model\r\n }\r\n return this.http.delete<StringResponse>(\"api/validation/DeleteValidationMethod\", options);\r\n }\r\n\r\n createValidationMethod(model: ValidationMethod): Observable<ValidationMethod> {\r\n return this.http.post<ValidationMethod>(\"api/validation/CreateValidationMethod\", model);\r\n }\r\n\r\n updateValidationMethod(model: ValidationMethod): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/validation/UpdateValidationMethod\", model);\r\n }\r\n\r\n validationMethodChanged(model: ValidationMethod): Observable<boolean> {\r\n return this.http.post<boolean>(\"api/validation/ValidationMethodChanged\", model);\r\n }\r\n\r\n getDataQualityAreas(): Observable<string[]> {\r\n return this.http.get<string[]>(\"api/validation/GetDataQualityAreas\");\r\n }\r\n\r\n getValidationFieldGroups(): Observable<string[]> {\r\n return this.http.get<string[]>(\"api/validation/GetValidationFieldGroups\");\r\n }\r\n\r\n getValidationFields(): Observable<ValidationField[]> {\r\n return this.http.get<ValidationField[]>(\"api/validation/GetValidationFields\");\r\n }\r\n\r\n createValidationFieldIdentifier(fieldName: string, systemKey = \"-1\", elementKey = \"-1\") {\r\n return fieldName + \"|\" + systemKey + \"|\" + elementKey;\r\n }\r\n\r\n validateField(fieldName: string, systemKey = \"-1\", elementKey = \"-1\") {\r\n var validationFieldIdentifier = this.createValidationFieldIdentifier(fieldName, systemKey, elementKey);\r\n if (this.validateFieldRecord[validationFieldIdentifier]) {\r\n return this.validateFieldRecord[validationFieldIdentifier];\r\n }\r\n return this.validateFieldRecord[validationFieldIdentifier] = (params) => {\r\n var splittedIdentifier = validationFieldIdentifier.split(\"|\");\r\n if (splittedIdentifier[0] == this.fieldNames.fName && params.value == \"temp id\") {\r\n return Promise.resolve(true);\r\n }\r\n return this.validate(params, splittedIdentifier[0], splittedIdentifier[1], splittedIdentifier[2]);\r\n };\r\n }\r\n\r\n async validate(params, field: string, systemKey = \"-1\", elementKey = \"-1\") {\r\n if (!this.modelService.catalogService.catalog)\r\n return true;\r\n\r\n let validationRequest = new ValidationRequest();\r\n validationRequest.methodId = this.modelService.catalogService.catalog.validationMethodId;\r\n validationRequest.product = this.modelService.catalogService.product;\r\n validationRequest.field = field;\r\n validationRequest.systemKey = systemKey;\r\n validationRequest.elementKey = elementKey;\r\n validationRequest.isBooleanRadioGroup = false;\r\n validationRequest.dataQualityFacts = this.modelService.catalogService.catalog.dataQualityFacts;\r\n\r\n var response = await lastValueFrom(this.http.post(\"api/validation/validate\", validationRequest));\r\n let isValid = response[\"isValid\"];\r\n let message = response[\"message\"];\r\n if (message && message != \"\") {\r\n message = this.translate.instant(message);\r\n }\r\n if (this.modelService.catalogService.product) {\r\n this.modelService.catalogService.product.prepareView();\r\n }\r\n params.rule.message = message;\r\n params.rule.isValid = isValid;\r\n return isValid;\r\n }\r\n\r\n async validateBooleanRadioGroup(params, field: string) {\r\n if (!this.modelService.catalogService.catalog)\r\n return true;\r\n\r\n let validationRequest = new ValidationRequest();\r\n validationRequest.methodId = this.modelService.catalogService.catalog.validationMethodId;\r\n validationRequest.product = this.modelService.catalogService.product;\r\n validationRequest.field = field;\r\n validationRequest.isBooleanRadioGroup = true;\r\n validationRequest.booleanRadioGroupValue = params.value;\r\n validationRequest.dataQualityFacts = this.modelService.catalogService.catalog.dataQualityFacts;\r\n\r\n var response = await lastValueFrom(this.http.post(\"api/validation/validate\", validationRequest));\r\n params.rule.isValid = response[\"isValid\"];\r\n params.rule.message = response[\"message\"];\r\n if (params.rule.message && params.rule.message != \"\") {\r\n params.rule.message = this.translate.instant(params.rule.message);\r\n }\r\n if (this.modelService.catalogService.product) {\r\n this.modelService.catalogService.product.prepareView();\r\n }\r\n return params.rule.isValid;\r\n }\r\n\r\n validateCatalogId(params: any, validationRequest: ValidationRequestCatalog) {\r\n return this.http.post(\"api/validation/validateCatalog\", validationRequest).subscribe(response => {\r\n params.rule.isValid = response[\"isValid\"];\r\n params.rule.message = response[\"message\"];\r\n if (params.rule.message && params.rule.message != \"\") {\r\n params.rule.message = this.translate.instant(params.rule.message);\r\n }\r\n params.validator.validate();\r\n\r\n return params.rule.isValid;\r\n });\r\n\r\n }\r\n\r\n validateProduct(product: Product) {\r\n this.validateProductPromise(product).then(() => { });\r\n }\r\n\r\n validateProductPromise(product: Product) {\r\n let that = this;\r\n return new Promise(function (resolve, reject) {\r\n if (!that.modelService.catalogService.catalog)\r\n that.modelService.catalogService.catalog = new Catalog();\r\n\r\n let validationRequest = new ValidationRequest();\r\n validationRequest.methodId = that.modelService.catalogService.catalog.validationMethodId;\r\n validationRequest.product = product;\r\n validationRequest.dataQualityFacts = that.modelService.catalogService.catalog.dataQualityFacts;\r\n that.http.post(\"api/validation/validateProduct\", validationRequest).subscribe((response: ValidationResult) => {\r\n that.validationResult = response;\r\n that.validationResult.validateNumbers = new Array<number>();\r\n that.validationResult.validateNumbers.push(response.validateNumbers0);\r\n that.validationResult.validateNumbers.push(response.validateNumbers1);\r\n that.validationResult.validateNumbers.push(response.validateNumbers2);\r\n that.validationResult.validateNumbers.push(response.validateNumbers3);\r\n that.validationResult.validateNumbers.push(response.validateNumbers4);\r\n resolve(true);\r\n },\r\n error => { reject(error); }\r\n );\r\n });\r\n }\r\n\r\n}\r\n","\r\n <div [ngSwitch]=\"layout\">\r\n <div *ngSwitchCase=\"'default'\">\r\n <shopView [(model)]=\"modelService.catalogService.product\"></shopView>\r\n </div>\r\n <div *ngSwitchCase=\"'lukas'\">\r\n <!--<shopViewLukas></shopViewLukas>-->\r\n </div>\r\n </div>\r\n {{errorMessage}}\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { Product } from \"../Model/Catalog/product\";\r\nimport { ShopView } from '../catalog/product/shopView.component';\r\nimport { ModelService } from '../Services/model.service';\r\nimport { AppUser } from '../Model/user/AppUser';\r\nimport { map } from 'rxjs/operators';\r\nimport { ValidationService } from \"../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"productView\",\r\n templateUrl: \"./productView.component.html\",\r\n})\r\nexport class ProductViewComponent {\r\n @ViewChild(ShopView)\r\n shopview: ShopView;\r\n public customerId: string = \"\";\r\n public supplierpid: string = \"\";\r\n public catalogid: string = \"\";\r\n\r\n constructor(public modelService: ModelService, public validationService: ValidationService) {\r\n var params = this.getAllUrlParams();\r\n if (this.modelService.loginService.currentUser == undefined) {\r\n this.modelService.loginService.currentUser = new AppUser();\r\n }\r\n\r\n\r\n this.customerId = params[\"customerid\"];\r\n this.supplierpid = params[\"supplierpid\"];\r\n this.catalogid = params[\"catalogid\"];\r\n\r\n this.modelService.loginService.currentUser.frontEndLanguage = \"de\";\r\n this.modelService.loginService.CheckAndSetFrontEndLanguage();\r\n\r\n if (params[\"layout\"]) {\r\n switch (params[\"layout\"]) {\r\n case \"lukas\":\r\n this.layout = \"lukas\";\r\n break;\r\n }\r\n }\r\n this.loadProduct();\r\n\r\n }\r\n\r\n loadProduct() {\r\n if (this.catalogid != undefined && this.customerId != undefined && this.supplierpid != undefined) {\r\n this.modelService.loginService.currentUser.customerId = this.customerId;\r\n\r\n this.modelService.catalogService.getProductContent(this.supplierpid, this.customerId, this.catalogid).pipe(map(response => {\r\n this.setProduct(response);\r\n })).subscribe(response => { }, error => { this.handleError(error); });\r\n }\r\n }\r\n\r\n\r\n layout: string = \"default\";\r\n product: Product;\r\n errorMessage: string = \"\";\r\n\r\n setProduct(response) {\r\n //if (response.ok) {\r\n this.modelService.catalogService.product = this.modelService.productService.getProductFromJson(response, this.modelService.loginService.wawiSettings);\r\n this.modelService.hazmatClassService.loadProductHazmat(this.modelService.catalogService.product);\r\n this.modelService.warrantyClassService.loadProductWarranty(this.modelService.catalogService.product);\r\n\r\n //this.validationService.validateProduct(this.modelService.catalogService.product);\r\n //}\r\n }\r\n\r\n handleError(error) {\r\n console.log(error);\r\n }\r\n\r\n public getAllUrlParams(url: string = \"\") {\r\n\r\n // get query string from url (optional) or window\r\n var queryString = url ? url.split('?')[1] : window.location.search.slice(1);\r\n\r\n // we'll store the parameters here\r\n var obj = [];\r\n\r\n // if query string exists\r\n if (queryString) {\r\n\r\n // stuff after # is not part of query string, so get rid of it\r\n queryString = queryString.split('#')[0];\r\n\r\n // split our query string into its component parts\r\n var arr = queryString.split('&');\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n // separate the keys and the values\r\n var a = arr[i].split('=');\r\n\r\n // set parameter name and value (use 'true' if empty)\r\n var paramName = a[0];\r\n var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];\r\n\r\n // (optional) keep case consistent\r\n paramName = paramName.toLowerCase();\r\n //if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();\r\n\r\n // if the paramName ends with square brackets, e.g. colors[] or colors[2]\r\n if (paramName.match(/\\[(\\d+)?\\]$/)) {\r\n\r\n // create key if it doesn't exist\r\n var key = paramName.replace(/\\[(\\d+)?\\]/, '');\r\n if (!obj[key]) obj[key] = [];\r\n\r\n // if it's an indexed array e.g. colors[2]\r\n if (paramName.match(/\\[\\d+\\]$/)) {\r\n // get the index value and add the entry at the appropriate position\r\n var index = /\\[(\\d+)\\]/.exec(paramName)[1];\r\n obj[key][index] = paramValue;\r\n } else {\r\n // otherwise add the value to the end of the array\r\n obj[key].push(paramValue);\r\n }\r\n } else {\r\n // we're dealing with a string\r\n if (!obj[paramName]) {\r\n // if it doesn't exist, create property\r\n obj[paramName] = paramValue;\r\n } else if (obj[paramName] && typeof obj[paramName] === 'string') {\r\n // if property does exist and it's a string, convert it to an array\r\n obj[paramName] = [obj[paramName]];\r\n obj[paramName].push(paramValue);\r\n } else {\r\n // otherwise add the property\r\n obj[paramName].push(paramValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fullscreen-page',\r\n templateUrl: './fullscreen-page.component.html',\r\n styleUrls: [\"./fullscreen-page.component.css\"]\r\n})\r\nexport class FullscreenPageComponent {\r\n\r\n}","<div class=\"d-block h-100 w-100\">\r\n <div class=\"d-flex flex-row h-100 overflow-hidden w-100\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","<div class=\"{{look}} px-0 h-100 w-100\">\r\n <div class=\"d-flex flex-row expandicons\">\r\n <div *ngIf=\"navigationSwitch\" (click)=\"toggleNavigation()\" class=\"px-1 pt-2\" style=\"z-index: 1;\">\r\n <img *ngIf=\"!modelService.systemService.showMenu\" src=\"/images/ikon_Arrow_right.png\" class=\"menuToggleImage\" />\r\n <img *ngIf=\"modelService.systemService.showMenu\" src=\"/images/ikon_Arrow_left.png\" class=\"menuToggleImage\" />\r\n </div>\r\n <div *ngIf=\"helpSwitch\" (click)=\"toggleHelp()\" class=\"ml-auto px-1 pt-2\" style=\"z-index: 1;\">\r\n <img *ngIf=\"!modelService.systemService.showHelp\" src=\"/images/ikon_Arrow_left.png\" class=\"menuToggleImage\" />\r\n <img *ngIf=\"modelService.systemService.showHelp\" src=\"/images/ikon_Arrow_right.png\" class=\"menuToggleImage\" />\r\n </div>\r\n </div>\r\n <div class=\"detail h-100 d-flex flex-column\" style=\"margin-top: -20px;\">\r\n <ng-content select=\"[slot=content]\"></ng-content> \r\n </div>\r\n</div> \r\n","import { Component, Input } from '@angular/core';\r\nimport { ModelService } from '../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'content-column',\r\n templateUrl: './content-column.component.html',\r\n styleUrls: [\"./content-column.component.css\"]\r\n})\r\nexport class ContentColumnComponent {\r\n @Input() navigationSwitch?: boolean;\r\n @Input() helpSwitch?: boolean;\r\n @Input() look: 'light' | 'dark'; \r\n\r\n constructor(public modelService: ModelService) {}\r\n\r\n toggleNavigation() {\r\n this.modelService.systemService.showMenu = !this.modelService.systemService.showMenu;\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n }\r\n}","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <dx-scroll-view slot=\"content\" class=\"h-100 p-3\" showScrollbar=\"always\">\r\n <div class=\"d-block h-100 w-75 mx-auto\">\r\n <div class=\"d-flex flex-row w-100\">\r\n <dx-text-box [(value)]=\"searchText\" class=\"w-100\" [showClearButton]=\"true\" (onValueChanged)=\"testSearch()\"></dx-text-box>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Produkte anzeigen' | translate }}\" (onClick)=\"startSearch()\"></dx-button>\r\n </div>\r\n <div>\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#gridContainer' }\"\r\n [(visible)]=\"loadingVisible\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"true\"\r\n [hideOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n\r\n <dx-data-grid [dataSource]=\"results\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n id=\"gridContainer\">\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"searchState\"></dxo-state-storing>\r\n\r\n <dxi-column caption=\"{{ 'SupplierPid' | translate }}\" dataField=\"supplierPid\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Mimes' | translate }}\" dataField=\"mimes\" cellTemplate=\"mimeCellTempalte\"></dxi-column>\r\n <dxi-column caption=\"{{ 'KurzBeschreibung' | translate }}\" dataField=\"descriptionShort\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Katalog' | translate }}\" dataField=\"catalogName\"></dxi-column>\r\n <dxi-column caption=\"\" dataField=\"catalogMappings\" cellTemplate=\"linkCellTempalte\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let result of 'mimeCellTempalte'\">\r\n <dx-gallery [dataSource]=\"result.data.mimes\"\r\n [width]=\"100\"\r\n [loop]=\"true\"\r\n showIndicator=\"true\"\r\n [showNavButtons]=\"false\">\r\n <div *dxTemplate=\"let galleryItem of 'item'\">\r\n <img src=\"{{galleryItem.normUri}}\" width=\"100\" height=\"100\" />\r\n </div>\r\n </dx-gallery>\r\n </div>\r\n\r\n <div *dxTemplate=\"let result of 'linkCellTempalte'\">\r\n <dx-button (onClick)=\"jumpToProduct(result.data)\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Zum Produkt springen' | translate }}\"></dx-button>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Component, ViewChild, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ProductViewComponent } from '../productView/productView.component';\r\nimport { SearchResult } from \"../Model/Dto/searchResults\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Product } from \"../Model/Catalog/product\";\r\nimport { LoginService } from \"../Services/login.service\";\r\nimport { forEach } from \"jszip\";\r\n\r\n@Component({\r\n selector: \"searchcomponent\",\r\n templateUrl: \"./search.component.html\",\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public loginService: LoginService) {\r\n this.translate.get('Suche').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n }\r\n @ViewChild(ProductViewComponent, { static: true }) productView: ProductViewComponent;\r\n\r\n refresh() { \r\n }\r\n\r\n ngOnInit() { }\r\n\r\n public searchText: string = \"\";\r\n public resultCatalog = \"\";\r\n public resultProduct = \"\";\r\n public loadingVisible: boolean = false;\r\n\r\n getMimeText(mime) {\r\n return mime;\r\n }\r\n\r\n startSearch() {\r\n this.results = [];\r\n\r\n if (this.searchText == \"\")\r\n return;\r\n this.loadingVisible = true;\r\n this.modelService.catalogService.searchProducts(this.searchText, this.modelService.loginService.currentUser.customerId, 1, 100)\r\n .subscribe(\r\n async (result) => {\r\n for (let searchResult of result) {\r\n searchResult.catalogName = await this.getCatalogName(searchResult); \r\n }\r\n this.results = result;\r\n this.loadingVisible = false;\r\n },\r\n );\r\n }\r\n\r\n public results: SearchResult[] = [];\r\n\r\n testSearch() {\r\n if (this.searchText.length >= 3 ) {\r\n this.startSearch();\r\n }\r\n }\r\n\r\n async getCatalogName(product: SearchResult): Promise<string> {\r\n var catalogMapping = product.catalogMappings.find(x => !x.isVirtualCatalog);\r\n\r\n return await this.modelService.catalogService.getCatalogName(catalogMapping.catalogId, this.loginService.currentCustomer.id);\r\n }\r\n\r\n\r\n jumpToProduct(product: Product) {\r\n var catalogMapping = product.catalogMappings.find(x => !x.isVirtualCatalog);\r\n var navigateString = \"/catalog/\" + this.loginService.currentCustomer.id + \"/\" + catalogMapping.catalogId + \"/product/\" + product.id;\r\n this.modelService.catalogService.selectedCatalogId = catalogMapping.catalogId;\r\n this.modelService.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.modelService.router.navigate([navigateString]));\r\n }\r\n}\r\n","export class Credentials {\r\n\r\n constructor(\r\n public username?: string,\r\n public password?: string) {\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { NewsArticle } from \"../Model/news/newsArticle\";\r\nimport { ModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class NewsService {\r\n\r\n public newNews: boolean = false;\r\n\r\n constructor(public modelService: ModelService, private http: HttpClient) {\r\n\r\n }\r\n\r\n public getArticles(id: number): Observable<NewsArticle> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get(\"api/NewsArticle/GetNewsArticle\", options)) as any;\r\n }\r\n\r\n public update(article: NewsArticle): Observable<NewsArticle> {\r\n var result = this.http.post<NewsArticle>(\"api/NewsArticle/Update\", article);\r\n return (result);\r\n }\r\n\r\n public getLast(): Observable<NewsArticle> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n }\r\n return (this.http.get(\"api/NewsArticle/GetLast\", options)) as any;\r\n }\r\n\r\n public create(article: NewsArticle): Observable<NewsArticle> {\r\n var result = this.http.post<NewsArticle>(\"api/NewsArticle/Create\", article);\r\n return (result);\r\n }\r\n\r\n public getSection(start: number, amount: number, isAdmin: boolean): Observable<NewsArticle[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"start\", start.toString()).append(\"amount\", amount.toString()).append(\"isAdmin\", isAdmin.toString())\r\n }\r\n return (this.http.get(\"api/NewsArticle/GetSection\", options)) as any;\r\n }\r\n\r\n public delete(id: number) {\r\n var result = this.http.post<NewsArticle>(\"api/NewsArticle/Delete\", id);\r\n return (result);\r\n }\r\n\r\n public getNewNewsAmount(lastRead: Date): Observable<number> {\r\n if (lastRead == undefined)\r\n return of(0);\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"lastRead\", lastRead.toDateString())\r\n }\r\n return (this.http.get(\"api/NewsArticle/GetNewNewsAmount\", options)) as any;\r\n }\r\n\r\n public checkNewNews() {\r\n if (this.modelService.loginService.currentUser == undefined\r\n || this.modelService.loginService.lastNewRead == undefined)\r\n return of(0);\r\n\r\n this.getNewNewsAmount(this.modelService.loginService.lastNewRead).subscribe((amount: number) => {\r\n this.newNews = (amount > 0);\r\n }, e => {\r\n console.log(\"error checking news\");\r\n });\r\n }\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'logo',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './logo.component.html',\r\n styleUrls: [\"./logo.component.css\"]\r\n})\r\nexport class LogoComponent {\r\n @Input() look: 'light' | 'dark' | 'hidden'; \r\n @Input() click?: () => void;\r\n\r\n get hidden() {\r\n return this.look === 'hidden';\r\n }\r\n\r\n get logoUrl() {\r\n return this.look === 'light' ? '/images/nextpim.png' : '/images/nextpim_negativ.png';\r\n }\r\n}","<div class=\"px-3 container\">\r\n <a class=\"{{hidden ? 'd-none' : ''}}\" (click)=\"click\"> \r\n <img alt=\"nextPim Pim System\" [src]=\"logoUrl\" class=\"image\" />\r\n </a> \r\n</div>","\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Credentials } from \"../../Model/user/Credentials\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NewsService } from \"../../Services/news.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"login\",\r\n templateUrl: \"login.component.html\",\r\n styleUrls: [\"login.component.css\"]\r\n})\r\nexport class LoginComponent implements OnInit {\r\n private returnUrl = \"/\";\r\n private customerId = \"\";\r\n constructor(private route: ActivatedRoute, private router: Router, private modelService: ModelService, public translate: TranslateService, public newsService: NewsService) {\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n this.customerId = this.route.snapshot.paramMap.get('customerId')!;\r\n\r\n if (!this.modelService.loginService.loginRequired) {\r\n this.modelService.loginService.logout();\r\n let translation = \"\";\r\n this.translate.get('Sie haben sich ausgeloggt').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation));\r\n });\r\n } else {\r\n this.modelService.loginService.silentlogin(this.customerId ?? \"\").subscribe(success => {\r\n if (success) {\r\n this.translate.get(\"Sie wurden automatisch angemeldet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n this.modelService.router.navigate([this.returnUrl]);\r\n this.newsService.checkNewNews();\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n this.translate.get('Anmeldung').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n errorMessage = \"\";\r\n\r\n creds = new Credentials();\r\n\r\n onLogin() {\r\n this.modelService.loginService.login(this.creds, this.customerId ?? \"\").then(\r\n success => {\r\n if (success) {\r\n this.modelService.router.navigate([this.returnUrl]);\r\n this.modelService.loginService.notifyTestAccount();\r\n this.newsService.checkNewNews();\r\n }\r\n },\r\n err => {\r\n let translation = \"\";\r\n this.translate.get('Fehler beim Login').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation, \"error\"));\r\n });\r\n });\r\n }\r\n}\r\n","<fullscreen-page> \r\n <content-column look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/']\" look=\"dark\" route=\"['/catalogs']\"></logo>\r\n <div slot=\"content\" class=\"h-100 p-3\">\r\n <div class=\"d-block h-100 w-100 mx-auto\" style=\"max-width: 600px;\"> \r\n <form (submit)=\"onLogin()\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">{{ 'Login' | translate }}</div>\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ creds.username?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Email' | translate }}</label>\r\n <dx-text-box [(value)]=\"creds.username\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie Ihre Emailadresse ein' | translate }}.\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ creds.password?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Passwort' | translate }}</label>\r\n <dx-text-box [(value)]=\"creds.password\" mode=\"password\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie Ihr Passwort ein' | translate }}.\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Login' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n <a class=\"forgotPassword ml-auto align-self-center\" [routerLink]=\"['/forgotPassword']\">\r\n {{ 'Passwort vergesssen' | translate }}?\r\n </a>\r\n </div>\r\n\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </div> \r\n </content-column>\r\n</fullscreen-page>\r\n","export class RequestPassword {\r\n\r\n constructor(\r\n public email?: string) {\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { RequestPassword } from \"../../Model/User/RequestPassword\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"forgotPassword\",\r\n templateUrl: \"forgotPassword.component.html\",\r\n styleUrls: [\"forgotPassword.component.css\"]\r\n})\r\nexport class ForgotPasswordComponent {\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.translate.get('Neues Password anfordern').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n }\r\n\r\n model = new RequestPassword();\r\n\r\n onRequestPassword() {\r\n this.modelService.loginService.requestPassword(this.model)\r\n .subscribe(success => {\r\n if (success) {\r\n let translation = \"\";\r\n this.translate.get('Wir haben Ihnen per mail ein neues Passwort zugeschickt').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation));\r\n this.modelService.router.navigate([\"login\"]);\r\n });\r\n\r\n\r\n\r\n }\r\n },\r\n err => {\r\n let translation = \"\";\r\n this.translate.get('Fehler beim Passwort anfordern').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation, \"error\"));\r\n });\r\n });\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/']\" look=\"dark\" route=\"['/catalogs']\"></logo>\r\n <div slot=\"content\" class=\"h-100 p-3\">\r\n <div class=\"d-block h-100 w-100 mx-auto\" style=\"max-width: 600px;\">\r\n\r\n\r\n <form (submit)=\"onRequestPassword()\">\r\n <div class=\"dx-fieldset\">\r\n\r\n <div class=\"dx-fieldset-header\">{{ 'Neues Password anfordern' | translate }}</div>\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ model.email?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Email' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.email\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie Ihre Emailadresse ein' | translate }}.\"></dxi-validation-rule>\r\n <dxi-validation-rule type=\"email\"\r\n message=\"{{ 'Das ist leider keine gültige Emailadresse' | translate }}\">\r\n </dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues Password anfordern' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n\r\n\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"account-home\",\r\n templateUrl: \"./accounthome.component.html\",\r\n})\r\nexport class AccountHomeComponent {\r\n}\r\n","export class Customer {\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n public street?: string,\r\n public zip?: string,\r\n public city?: string,\r\n public phone?: string,\r\n public country?: string,\r\n public password?: string,\r\n public defaultLanguage?: string,\r\n public isTestAccount?: boolean,\r\n public accountValidDate?: Date,\r\n public help?: { title: string; content: string }[],\r\n public pimLicense?: string,\r\n public accountType?: string,\r\n public logoUrl?: string,\r\n public contactName?: string,\r\n public contactEmail?: string,\r\n public contactPhone?: string,\r\n public domain?: string,\r\n public isPublic?: boolean,\r\n ) {\r\n }\r\n}\r\n","export class CustomerStatistics {\r\n\r\n constructor(\r\n public id?: string,\r\n public customerId?: string,\r\n public skuCount?: number,\r\n public catalogCount?: number,\r\n public fileCount?: number,\r\n public sumFileSize?: number,\r\n public date?: Date,\r\n ) {\r\n }\r\n\r\n deserialize(input: any) {\r\n Object.assign(this, input);\r\n //this.date = new Date(input.date);\r\n return this;\r\n }\r\n}\r\n","//match with PimLicense.cs\r\nexport enum PimLicense {\r\n Starter = \"Starter\",\r\n Basic = \"Basic\",\r\n Advanced = \"Advanced\",\r\n Infinity = \"Infinity\",\r\n Professional = \"Professional\",\r\n Enterprise = \"Enterprise\",\r\n EdeEditon = \"EdeEditon\",\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { LoginService } from \"./login.service\";\r\n\r\n@Injectable()\r\nexport class UserManagementService {\r\n\r\n\r\n constructor(public loginService: LoginService) {\r\n\r\n }\r\n\r\n canView(element: string): boolean{\r\n if (this.loginService.currentUser == undefined)\r\n return false;\r\n return (this.loginService.currentUser.currentClaim != \"READONLY\");\r\n }\r\n\r\n canEdit(element: string): boolean {\r\n if (this.loginService.currentUser == undefined)\r\n return false;\r\n return (this.loginService.currentUser.currentClaim != \"READONLY\");\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'navigation-column',\r\n templateUrl: './navigation-column.component.html',\r\n styleUrls: [\"./navigation-column.component.css\"]\r\n})\r\nexport class NavigationColumnComponent { \r\n}","<div class=\"h-100\">\r\n <ng-content></ng-content>\r\n</div>","<dx-data-grid [dataSource]=\"dataSourceUsers\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\">\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"MyAccountUsersStateNewUIV2\"></dxo-state-storing>\r\n <dxo-editing mode=\"popup\" refreshMode=\"full\" [selectTextOnEditStart]=\"true\" allowUpdating=\"canEdit()\"\r\n [allowDeleting]=\"loginService.isManager\" [allowAdding]=\"canAddUser()\">\r\n <dxo-popup title=\"User\" [showTitle]=\"true\"></dxo-popup>\r\n <dxo-form>\r\n <dxi-item dataField=\"email\"></dxi-item>\r\n <dxi-item dataField=\"firstName\"></dxi-item>\r\n <dxi-item dataField=\"lastName\"></dxi-item>\r\n <dxi-item dataField=\"currentClaim\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n\r\n <dxi-column dataField=\"email\" caption=\"{{ 'Email' | translate }}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxi-validation-rule type=\"email\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"firstName\" caption=\"{{ 'Vorname' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"lastName\" caption=\"{{ 'Nachname' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"currentClaim\" caption=\"{{ 'Role' | translate }}\" [allowEditing]=\"loginService.isManager\">\r\n <dxo-lookup [dataSource]=\"claims\" searchEnabled=\"true\"></dxo-lookup>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column *ngIf=\"loginService.isAdmin\" dataField=\"lastLogin\"\r\n caption=\"{{ 'letzter Login' | translate }}\"></dxi-column>\r\n\r\n\r\n</dx-data-grid>","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { AppUser } from \"../../../Model/User/AppUser\";\r\nimport { LoginService } from '../../../Services/login.service';\r\nimport { CustomerService } from '../../../Services/customer.service';\r\nimport { UserService } from '../../../Services/user.service';\r\nimport { PimLicense } from '../../../Model/User/PimLicense';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'userManagement',\r\n templateUrl: 'userManagement.component.html'\r\n})\r\nexport class UserManagementComponent implements OnInit {\r\n claims: string[] = [\r\n \"USER\",\r\n \"READONLY\",\r\n \"MANAGER\"];;\r\n selectedClaim: string = \"USER\";\r\n dataSourceUsers: DataSource;\r\n\r\n\r\n constructor(public loginService: LoginService, public customerService: CustomerService, public userService: UserService) {\r\n this.canAddUser = this.canAddUser.bind(this);\r\n this.canEdit = this.canEdit.bind(this);\r\n\r\n let that = this\r\n this.dataSourceUsers = new DataSource({\r\n store: new CustomStore({\r\n key: \"id\",\r\n load: async function (loadOptions: any) {\r\n return await lastValueFrom(that.customerService.getUsersOfCustomer(that.loginService.currentCustomer.id));\r\n },\r\n insert: async function (values) {\r\n let newUser: AppUser = values as AppUser;\r\n newUser.id = \"\";\r\n newUser.customerId = that.loginService.currentCustomer.id;\r\n return await lastValueFrom(that.userService.create(that.loginService.currentUser.id, newUser));\r\n },\r\n update: async function (key, values) {\r\n let userToUpdate = await lastValueFrom(that.userService.getUser(key, that.loginService.currentCustomer.id));\r\n Object.assign(userToUpdate, values);\r\n return await lastValueFrom(that.userService.update(userToUpdate));\r\n },\r\n remove: async function (key) {\r\n await lastValueFrom(that.customerService.deleteUserFromCustomer(key, that.loginService.currentCustomer.id));\r\n return;\r\n }\r\n }\r\n ),\r\n reshapeOnPush: true,\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n\r\n\r\n public canEdit(e) {\r\n return e.row.data.email == this.loginService.currentUser.email\r\n || this.loginService.currentUser.currentClaim == \"ADMIN\"\r\n || this.loginService.currentUser.currentClaim == \"MANAGER\";\r\n }\r\n\r\n public canAddUser(): boolean {\r\n let maxUsers = 0;\r\n switch (this.loginService.currentCustomer.pimLicense) {\r\n case PimLicense.Starter:\r\n maxUsers = 1;\r\n break;\r\n case PimLicense.Basic:\r\n maxUsers = 2;\r\n break;\r\n case PimLicense.Advanced:\r\n maxUsers = 5;\r\n break;\r\n case PimLicense.Infinity:\r\n default:\r\n maxUsers = Number.MAX_VALUE;\r\n break;\r\n }\r\n\r\n\r\n return this.loginService.isManager && this.dataSourceUsers.totalCount() < maxUsers;\r\n }\r\n}\r\n","\r\n<div class=\"d-flex flex-row\">\r\n <div class=\"flex-fill pr-3 w-50\">\r\n \r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-fieldset-header\">{{ 'Ihr Ansprechpartner' | translate }}</div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Ansprechpartner' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.contactName?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Ansprechpartner' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.contactName\" [showClearButton]=\"true\" (onValueChanged)=\"update()\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.contactName}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Email' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.contactEmail?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Email' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.contactEmail\" [showClearButton]=\"true\" (onValueChanged)=\"update()\">\r\n <dx-validator>\r\n \r\n <dxi-validation-rule type=\"email\"\r\n message=\"{{ 'Bitte geben Sie eine gültige Email-Adresse ein' | translate }}\"></dxi-validation-rule>\r\n \r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.contactEmail}}\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Telefon' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.contactPhone?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Telefon' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.contactPhone\" [showClearButton]=\"true\" (onValueChanged)=\"update()\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.contactPhone}}\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Domain' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.domain?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Domain' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.domain\" [showClearButton]=\"true\" (onValueChanged)=\"update()\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.domain}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Öffentlich sichtbar' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch (onValueChanged)=\"update()\" [(value)]=\"model.isPublic\" [disabled]=\"!isManager()\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"flex-fill pl-3 w-50\">\r\n \r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">{{ 'Ihr Logo' | translate }}</div>\r\n <div style=\"height: 100px;\">\r\n <span *ngIf=\"!model.logoUrl\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 100px;\"></span>\r\n <img *ngIf=\"model.logoUrl\" src=\"{{model.logoUrl}}\" style=\"height: 100%;\" />\r\n </div>\r\n <div *ngIf=\"isManager()\">\r\n <dx-file-uploader uploadUrl=\"api/Import/ImportCustomerLogo\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n accept=\"*\"\r\n (onUploaded)=\"onUploaded($event)\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onUploadStarted)=\"onUploadStarted($event)\"\r\n [(value)]=\"value\"\r\n uploadMode=\"instantly\">\r\n </dx-file-uploader>\r\n <b>{{ msg }}</b>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\n\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { SendToNWConfig } from '../../Model/Dto/SendToNWConfig';\r\nimport { Customer } from \"../../Model/user/Customer\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"dscInfos\",\r\n templateUrl: \"dscInfos.component.html\"\r\n})\r\nexport class DscInfosComponent implements OnInit {\r\n\r\n value: any[];\r\n uploadHeaders: any;\r\n msg: string = \"\";\r\n\r\n constructor(public modelService: ModelService, private oAuthService: OAuthService) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n this.uploadHeaders = { \r\n CustomerId: this.model.id\r\n }\r\n this.value = [];\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded(e) {\r\n \r\n this.reset();\r\n this.modelService.loginService.customerService.getCustomer (this.model.id).subscribe((result: Customer) => {\r\n this.model = result;\r\n });\r\n }\r\n\r\n onUploadStarted(e) {\r\n \r\n }\r\n\r\n\r\n ngOnInit(): void { \r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n } \r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n get model(): Customer {\r\n \r\n return this.modelService.loginService.currentCustomer; \r\n }\r\n set model(value: Customer) {\r\n this.modelService.loginService.currentCustomer = value;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n update() {\r\n this.modelService.loginService.customerService.update(this.model).subscribe((result: Customer) => {\r\n this.model = result;\r\n });\r\n }\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n\r\n <div *dxTemplate=\"let company of 'liveTemplate'\">\r\n <div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Shop Adresse' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelLive.shopUrl?.length>0 ? 'placeLabelSmall' : '' }}\">http://web26.osgmbh.net/api/api.php </label>\r\n <dx-text-box [(value)]=\"modelLive.shopUrl\" [showClearButton]=\"true\" (onValueChanged)=\"updateLive($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelLive.shopUrl}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'API-Key' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelLive.apiKey?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'API-Key' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelLive.apiKey\" [showClearButton]=\"true\" (onValueChanged)=\"updateLive($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelLive.apiKey}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!isTestedLive\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnectionLive }\"></dxi-item>\r\n <dxi-item *ngIf=\"isTestedLive\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testShopConnectionLive }\"></dxi-item>\r\n\r\n </dx-toolbar>\r\n\r\n\r\n <div style=\"color: red;\">\r\n {{connection2ShopMessage}}\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let company of 'testTemplate'\">\r\n <div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Shop Adresse' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelTest.shopUrl?.length>0 ? 'placeLabelSmall' : '' }}\">http://web26.osgmbh.net/api/api.php </label>\r\n <dx-text-box [(value)]=\"modelTest.shopUrl\" [showClearButton]=\"true\" (onValueChanged)=\"updateTest($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelTest.shopUrl}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'API-Key' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelTest.apiKey?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'API-Key' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelTest.apiKey\" [showClearButton]=\"true\" (onValueChanged)=\"updateTest($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelTest.apiKey}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!isTestedTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnectionTest }\"></dxi-item>\r\n <dxi-item *ngIf=\"isTestedTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testShopConnectionTest }\"></dxi-item>\r\n\r\n </dx-toolbar>\r\n\r\n\r\n <div style=\"color: red;\">\r\n {{connection2ShopMessageTest}}\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n </dx-tab-panel>\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { OsgConnection } from \"../../Model/Dto/osgConnection\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"osgCon\",\r\n templateUrl: \"osgConnection.component.html\"\r\n})\r\nexport class OsgConnectionComponent implements OnInit {\r\n connection2Shop: boolean;\r\n pages = [];\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.testShopConnectionLive = this.testShopConnectionLive.bind(this);\r\n this.testShopConnectionTest = this.testShopConnectionTest.bind(this);\r\n\r\n let testText = \"\";\r\n this.translate.get('Test').subscribe((text: string) => {\r\n testText = text;\r\n });\r\n let liveText = \"\";\r\n this.translate.get('Live').subscribe((text: string) => {\r\n liveText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: liveText, template: \"liveTemplate\" },\r\n { id: 2, title: testText, template: \"testTemplate\" }\r\n \r\n ];\r\n }\r\n\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n\r\n get modelTest(): OsgConnection {\r\n return this.modelService.loginService.osgConnectionTest;\r\n }\r\n set modelTest(value: OsgConnection) {\r\n this.modelService.loginService.osgConnectionTest = value;\r\n }\r\n\r\n get modelLive(): OsgConnection {\r\n return this.modelService.loginService.osgConnection;\r\n }\r\n set modelLive(value: OsgConnection) {\r\n this.modelService.loginService.osgConnection = value;\r\n }\r\n\r\n\r\n\r\n updateTest() {\r\n this.modelService.osgConnectionService.update(this.modelTest).subscribe(\r\n (result: number) => {\r\n this.modelTest.id = result;\r\n this.isTestedTest = false;\r\n });;\r\n }\r\n\r\n updateLive() {\r\n this.modelService.osgConnectionService.update(this.modelLive).subscribe(\r\n (result: number) => {\r\n this.modelLive.id = result;\r\n this.isTestedLive = false;\r\n });;\r\n }\r\n\r\n public testShopConnectionLive() {\r\n\r\n this.modelService.osgConnectionService.testShopConnection(this.modelLive.id).subscribe((result: TestResult) => this.testShopResultLive(result));\r\n }\r\n public testShopConnectionTest() {\r\n\r\n this.modelService.osgConnectionService.testShopConnection(this.modelTest.id).subscribe((result: TestResult) => this.testShopResultTest(result));\r\n }\r\n private testShopResultLive(result: TestResult) {\r\n if (result.success) {\r\n this.isTestedLive = true;\r\n this.connection2ShopMessageLive = \"\";\r\n } else {\r\n this.connection2ShopMessageLive = result.message;\r\n this.isTestedLive = false;\r\n let msg = new Message();\r\n msg.type = \"error\";\r\n msg.message = this.connection2ShopMessageLive;\r\n this.modelService.systemService.notify(msg);\r\n }\r\n }\r\n\r\n private testShopResultTest(result: TestResult) {\r\n if (result.success) {\r\n this.isTestedTest = true;\r\n this.connection2ShopMessageTest = \"\";\r\n } else {\r\n this.connection2ShopMessageTest = result.message;\r\n this.isTestedTest = false;\r\n let msg = new Message();\r\n msg.type = \"error\";\r\n msg.message = this.connection2ShopMessageTest;\r\n this.modelService.systemService.notify(msg);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n connection2ShopMessageTest: string;\r\n connection2ShopMessageLive: string;\r\n isTestedTest: boolean;\r\n isTestedLive: boolean;\r\n}\r\n\r\n\r\n","<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n\r\n <div *dxTemplate=\"let company of 'testTemplate'\">\r\n <div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Mavis Adresse' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelTest.shopUrl?.length>0 ? 'placeLabelSmall' : '' }}\">http://nextpim.bus.nl:6020</label>\r\n <dx-text-box [(value)]=\"modelTest.shopUrl\" [showClearButton]=\"true\" (onValueChanged)=\"updateTest($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelTest.shopUrl}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Benutzername' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelTest.userName?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Benutzername' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelTest.userName\" [showClearButton]=\"true\" (onValueChanged)=\"updateTest($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelTest.userName}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Passwort' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelTest.password?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Passwort' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelTest.password\" [showClearButton]=\"true\" (onValueChanged)=\"updateTest($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelTest.password}}\r\n </div>\r\n </div>\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!isTestTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnectionTest }\"></dxi-item>\r\n <dxi-item *ngIf=\"isTestTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testShopConnectionTest }\"></dxi-item>\r\n </dx-toolbar>\r\n <div style=\"color: red;\">\r\n {{connection2ShopMessageTest}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n\r\n <div *dxTemplate=\"let company of 'liveTemplate'\">\r\n <div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Mavis Adresse' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelLive.shopUrl?.length>0 ? 'placeLabelSmall' : '' }}\">http://nextpim.bus.nl:6020 </label>\r\n <dx-text-box [(value)]=\"modelLive.shopUrl\" [showClearButton]=\"true\" (onValueChanged)=\"updateLive($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelLive.shopUrl}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Benutzername' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelLive.userName?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Benutzername' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelLive.userName\" [showClearButton]=\"true\" (onValueChanged)=\"updateLive($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelLive.userName}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Passwort' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelLive.password?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Passwort' | translate }}</label>\r\n <dx-text-box [(value)]=\"modelLive.password\" [showClearButton]=\"true\" (onValueChanged)=\"updateLive($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{modelLive.password}}\r\n </div>\r\n </div>\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!isLiveTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnectionLive }\"></dxi-item>\r\n <dxi-item *ngIf=\"isLiveTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testShopConnectionLive }\"></dxi-item>\r\n </dx-toolbar>\r\n <div style=\"color: red;\">\r\n {{connection2ShopMessageLive}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n</dx-tab-panel>\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { MavisConnection } from '../../Model/Dto/MavisConnection';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"mavisCon\",\r\n templateUrl: \"mavisConnection.component.html\"\r\n})\r\nexport class MavisConnectionComponent implements OnInit {\r\n connection2Shop: boolean;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.testShopConnectionTest = this.testShopConnectionTest.bind(this);\r\n this.testShopConnectionLive = this.testShopConnectionLive.bind(this);\r\n }\r\n pages = [];\r\n\r\n\r\n\r\n\r\n ngOnInit(): void { \r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n\r\n let testText = \"\";\r\n this.translate.get('Test').subscribe((text: string) => {\r\n testText = text;\r\n });\r\n let liveText = \"\";\r\n this.translate.get('Live').subscribe((text: string) => {\r\n liveText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: testText, template: \"testTemplate\" },\r\n { id: 2, title: liveText, template: \"liveTemplate\" }\r\n ];\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n get modelTest(): MavisConnection {\r\n return this.modelService.loginService.mavisConnectionTest; \r\n }\r\n set modelTest(value: MavisConnection) {\r\n this.modelService.loginService.mavisConnectionTest = value;\r\n }\r\n\r\n get modelLive(): MavisConnection {\r\n this.modelService.loginService.mavisConnectionLive.isLive = true;\r\n return this.modelService.loginService.mavisConnectionLive; \r\n }\r\n set modelLive(value: MavisConnection) {\r\n this.modelService.loginService.mavisConnectionLive = value;\r\n }\r\n\r\n\r\n\r\n updateTest() {\r\n \r\n\r\n this.modelService.mavisConnectionService.update(this.modelTest).subscribe(\r\n (result: number) => {\r\n this.modelTest.id = result;\r\n this.isTestTested = false;\r\n });;\r\n }\r\n\r\n updateLive() {\r\n \r\n\r\n this.modelService.mavisConnectionService.update(this.modelLive).subscribe(\r\n (result: number) => {\r\n this.modelLive.id = result;\r\n this.isLiveTested = false;\r\n });;\r\n }\r\n\r\n public testShopConnectionTest() {\r\n\r\n this.modelService.mavisConnectionService.testConnection(this.modelTest.id).subscribe((result: TestResult) => this.testShopResultTest(result));\r\n }\r\n\r\n public testShopConnectionLive() {\r\n\r\n this.modelService.mavisConnectionService.testConnection(this.modelLive.id).subscribe((result: TestResult) => this.testShopResultLive(result));\r\n }\r\n\r\n private testShopResultTest(result: TestResult) {\r\n if (result.success) {\r\n this.isTestTested = true;\r\n this.connection2ShopMessageTest = \"\";\r\n } else {\r\n this.connection2ShopMessageTest = result.message;\r\n this.isTestTested = false;\r\n let msg = new Message();\r\n msg.type = \"error\";\r\n msg.message = this.connection2ShopMessageTest;\r\n this.modelService.systemService.notify(msg);\r\n }\r\n }\r\n private testShopResultLive(result: TestResult) {\r\n if (result.success) {\r\n this.isLiveTested = true;\r\n this.connection2ShopMessageLive = \"\";\r\n } else {\r\n this.connection2ShopMessageLive = result.message;\r\n this.isLiveTested = false;\r\n let msg = new Message();\r\n msg.type = \"error\";\r\n msg.message = this.connection2ShopMessageLive;\r\n this.modelService.systemService.notify(msg);\r\n }\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n connection2ShopMessageTest: string;\r\n connection2ShopMessageLive: string;\r\n isTestTested:boolean;\r\n isLiveTested:boolean;\r\n}\r\n\r\n\r\n","export class PrintCredential {\r\n\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public login?: string,\r\n public password?: string,\r\n\r\n ) {\r\n }\r\n}\r\n","export class CreatePrintCredential {\r\n\r\n constructor(\r\n \r\n public customerId?: string,\r\n ) {\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">CustomerId</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n\r\n <dx-text-box [(value)]=\"model.customerId\" [readOnly]=\"True\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Login' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n\r\n <dx-text-box [(value)]=\"model.login\" [readOnly]=\"True\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Password' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n\r\n <dx-text-box [(value)]=\"model.password\" [readOnly]=\"True\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"isManager\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Zugangsdaten erstellen' | translate , onClick: createCredentials }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n\r\n\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { OsgConnection } from \"../../Model/Dto/osgConnection\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { PrintCredential } from '../../Model/System/PrintCredential';\r\nimport { CreatePrintCredential } from '../../Model/Dto/CreatePrintCredential';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"easyCatalog\",\r\n templateUrl: \"easyCatalog.component.html\"\r\n})\r\nexport class EasyCatalogComponent implements OnInit {\r\n\r\n _customerId : string =\"\";\r\n @Input()\r\n set customerId(val: string) {\r\n this._customerId = val;\r\n this.modelService.printService.getPrintCredentials(this.customerId).subscribe((result: PrintCredential) => {\r\n this.model = result;\r\n });\r\n }\r\n get customerId(): string {\r\n return this._customerId;\r\n\r\n }\r\n\r\n \r\n\r\n connection2Shop: boolean;\r\n model : PrintCredential = new PrintCredential();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.createCredentials = this.createCredentials.bind(this);\r\n }\r\n\r\n\r\n ngOnInit(): void { \r\n if (this.modelService.loginService.currentUser == null) {\r\n \r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n } \r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n createCredentials() {\r\n\r\n let txtYes: string;\r\n let txtNo: string;\r\n let txtMsg: string;\r\n let txtTitle: string;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"txtEasyCatalogCreateCredentialsText\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"txtEasyCatalogCreateCredentialsTitle\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n let myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true }\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false }\r\n }\r\n }\r\n ]\r\n });\r\n\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n let dto = new CreatePrintCredential();\r\n dto.customerId = this.customerId;\r\n this.modelService.printService.createCredentials(dto).subscribe((result: PrintCredential) => {\r\n this.model = result;\r\n });\r\n }\r\n });\r\n\r\n }\r\n \r\n}\r\n\r\n\r\n","<div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'FTP-Server' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.ftpServer?.length>0 ? 'placeLabelSmall' : '' }}\">sftp-server.nordwest.com </label>\r\n <dx-text-box [(value)]=\"model.ftpServer\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.ftpServer}}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Benutzername' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.ftpUser?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Benutzername' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.ftpUser\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.ftpUser}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Passwort' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.password?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Passwort' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.password\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n *********************************\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Verzeichnis' | translate }}</div>\r\n <div *ngIf=\"isManager()\" class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.ftpFolder?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Verzeichnis' | translate }}</label>\r\n <dx-text-box [(value)]=\"model.ftpFolder\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n <div *ngIf=\"!isManager()\" class=\"dx-field-value\">\r\n {{model.ftpFolder}}\r\n </div>\r\n </div>\r\n\r\n \r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!isTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testftpConnection }\"></dxi-item>\r\n <dxi-item *ngIf=\"isTested\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testftpConnection }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div style=\"color: red;\">\r\n {{connection2ftpMessage}}\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\n\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { SendToNWConfig } from '../../Model/Dto/SendToNWConfig';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"sendToNWConfig\",\r\n templateUrl: \"sendToNWConfig.component.html\"\r\n})\r\nexport class SendToNWConfigComponent implements OnInit {\r\n\r\n connection2Shop: boolean ;\r\n\r\n constructor(public modelService: ModelService) {\r\n this.testftpConnection = this.testftpConnection.bind(this);\r\n }\r\n\r\n \r\n\r\n\r\n ngOnInit(): void { \r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n } \r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n get model(): SendToNWConfig {\r\n \r\n return this.modelService.loginService.sendToNWConfig; \r\n }\r\n set model(value: SendToNWConfig) {\r\n this.modelService.loginService.sendToNWConfig= value;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n update() {\r\n this.modelService.sendToNWConfigService.update(this.model).subscribe(\r\n (result: number) => {\r\n this.model.id = result;\r\n this.isTested = false;\r\n });;\r\n }\r\n\r\n public testftpConnection() {\r\n\r\n this.modelService.sendToNWConfigService.testConnection(this.model.id).subscribe((result: TestResult) => this.testShopResult(result));\r\n }\r\n\r\n private testShopResult(result: TestResult) {\r\n if (result.success) {\r\n this.isTested = true;\r\n this.connection2ftpMessage = \"\";\r\n } else {\r\n this.connection2ftpMessage = result.message;\r\n this.isTested = false;\r\n let msg = new Message();\r\n msg.type = \"error\";\r\n msg.message = this.connection2ftpMessage;\r\n this.modelService.systemService.notify(msg);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n connection2ftpMessage: string;\r\n isTested:boolean;\r\n}\r\n\r\n\r\n","export class CustomField {\r\n\r\n constructor(\r\n public id?: string,\r\n public order?: number,\r\n public wawiSettingsId?: number,\r\n public name?: string,\r\n public length?: string,\r\n public fieldType?: string,\r\n public listId? : string,\r\n ) {\r\n }\r\n}\r\n","import { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TemplateItemTemplate } from \"../Model/Catalog/TemplateItemTemplate\";\r\nimport { WawiList } from \"../Model/wawi/WawiList\";\r\n\r\n@Injectable()\r\nexport class WawiListService {\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n getAllLists(customerId: string): Observable<WawiList[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<string[]>(\"api/WawiList/getAllLists\", options)) as any;\r\n }\r\n\r\n getAllListsWithoutFields(customerId: string): Observable<WawiList[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<string[]>(\"api/WawiList/getAllListsWithoutFields\", options)) as any;\r\n }\r\n\r\n getAllMappingsWithoutFields(customerId: string): Observable<WawiList[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<string[]>(\"api/WawiList/getAllMappingsWithoutFields\", options)) as any;\r\n }\r\n\r\n getAllListNames(customerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<string[]>(\"api/WawiList/getAllListNames\", options)) as any;\r\n }\r\n\r\n getList(listId: string, customerId: string): Observable<WawiList> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"listId\", listId).append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<WawiList>(\"api/WawiList/getList\", options)) as any;\r\n }\r\n\r\n getListByName(listName: string, customerId: string): Observable<WawiList> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"listName\", listName).append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<WawiList>(\"api/WawiList/getListByName\", options)) as any;\r\n }\r\n\r\n getListValues(listId: string, customerId: string): Observable<string[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"listId\", listId).append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<string[]>(\"api/WawiList/getListValues\", options)) as any;\r\n }\r\n\r\n getElementValue(listId: string, customerId: string, elementId: number): Observable<string> {\r\n const options : Object = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"listId\", listId).append(\"customerId\", customerId).append(\"elementId\", elementId),\r\n responseType: 'text' \r\n }\r\n\r\n return (this.http.get<string>(\"api/WawiList/GetElementValue\", options)) as any;\r\n }\r\n\r\n create(entity: WawiList, customerId: string): Observable<WawiList> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n var result = this.http.post<WawiList>(\"api/WawiList/Create\", entity, options);\r\n return (result);\r\n }\r\n\r\n update(entity: WawiList, customerId: string): Observable<WawiList> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n \r\n var result = this.http.post<WawiList>(\"api/WawiList/Update\", entity, options);\r\n return (result);\r\n }\r\n\r\n updateOnlyList(entity: WawiList, customerId: string): Observable<WawiList> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n var result = this.http.post<WawiList>(\"api/WawiList/UpdateOnlyList\", entity, options);\r\n return (result);\r\n }\r\n\r\n delete(listId: string, customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"listId\", listId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/WawiList/delete\", options)) as any;\r\n }\r\n\r\n startImport(customerId: string, filename: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"fileName\", filename)\r\n }\r\n return (this.http.post(\"api/WawiList/StartImpotJob\", undefined, options)) as any;\r\n }\r\n\r\n startExport(customerId: string, listId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"listId\", listId)\r\n }\r\n return (this.http.post(\"api/WawiList/StartExportJob\", undefined, options)) as any;\r\n }\r\n\r\n getWawiMappingFields(customerId: string): Observable<TemplateItemTemplate[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n return this.http.get<TemplateItemTemplate[]>(\"api/WawiList/getWawiMappingFields\", options);\r\n }\r\n}\r\n","export class ProductLogistic {\r\n\r\n constructor(\r\n public countryOfOrigin?: string,\r\n public customsNumber?: string,\r\n public depth?: string,\r\n public length?: string,\r\n public specialTreatmentClass?: string,\r\n public specialTreatmentClassType ?: string,\r\n public weight?: string,\r\n public width?: string,\r\n public hazardousMaterialClassId?: string,\r\n public warrantyClassId?: string,\r\n ) {\r\n\r\n }\r\n}\r\n","\r\nimport { PackingUnit } from \"./PackingUnit\";\r\n\r\nexport class OrderDetail {\r\n\r\n constructor(\r\n public contentUnit?: string,\r\n public deliveryTime?: string,\r\n public noCuPerOu?: string,\r\n public orderUnit?: string,\r\n public packingUnits?: PackingUnit[],\r\n public priceQuantity?: string,\r\n public quantityInterval?: string,\r\n public quantityMax?: string,\r\n public quantityMin?: string,\r\n public contentQuantity?: string,\r\n public contentPackage?: string,\r\n public basicQuantity?: string,\r\n public hasBasicPriceDuty?: boolean,\r\n public isBulkyGood?: boolean,\r\n public isTruckageCompanyGood?: boolean,\r\n public costOfLivingAdjustment?: number,\r\n public alloySurcharge?: number,\r\n public isDurabilityProduct?: boolean,\r\n public durabilityDays?:number,\r\n ) {\r\n this.packingUnits = [];\r\n }\r\n}\r\n","\r\nexport class Agreement {\r\n\r\n constructor(\r\n public agreementId?: string,\r\n public type?: string,\r\n public agreementDesc?: string,\r\n public startDate?: Date,\r\n public endDate?: Date,\r\n ) {\r\n \r\n }\r\n\r\n}\r\n","export class LegalCharacteristic {\r\n\r\n constructor(\r\n public isBiocidalProduct?: boolean,\r\n public isSelfServiceForbidden ?: boolean,\r\n public isFertigpackv?: boolean,\r\n public isOekodesignEvpgEnvkg?: boolean,\r\n public isCommoditiesControll?: boolean,\r\n public isDetergenzienv?: boolean,\r\n public isKosmetikv?: boolean,\r\n public isCeGs?: boolean,\r\n public isWeeeRohsEar?: boolean,\r\n public isReach?: boolean,\r\n public isVerpackungsv ?: boolean,\r\n public isSecurityDatasheetNeeded?: boolean,\r\n public isDualUse?: boolean,\r\n public isBatterieV ?: boolean,\r\n ) {\r\n\r\n }\r\n}\r\n\r\n","export class LinkedField {\r\n\r\n constructor(\r\n public field?: string,\r\n public systemKey?: string,\r\n public elementKey?: string\r\n ) {\r\n\r\n }\r\n}\r\n","\r\n// Achtung: Property names werden in FieldNames.ts\r\n// mit einem String value gemappt.\r\nexport class ElectronicSalesDetail {\r\n // Flags\r\n notReturnable: boolean = null;\r\n notDiscountable: boolean = null;\r\n notOrderable: boolean = null;\r\n notRequestable: boolean = null;\r\n locked: boolean = null;\r\n onlyOffline: boolean = null;\r\n isFulfillment: boolean = null;\r\n\r\n // Marketing\r\n dateCreated: Date = null;\r\n summaryText = \"\";\r\n descriptionMarketing = \"\";\r\n promoInfo = \"\";\r\n noteCustomer = \"\";\r\n seoUrlFilename = \"\";\r\n\r\n // Richtlinien\r\n fsk = \"\";\r\n euDataSheet = \"\";\r\n eek = \"\";\r\n eeLabel = \"\";\r\n eekColor = \"\";\r\n\r\n // Lager/Logistik\r\n stockQuantitySupplier = \"\";\r\n stockQuantityReseller = \"\";\r\n stockKeeping = \"\";\r\n stockLocation = \"\";\r\n stockUnit = \"\";\r\n stockInfoText = \"\";\r\n stockKeepingModus = \"\";\r\n stockPriceFactor = \"\";\r\n noStockInfoText = \"\";\r\n\r\n // Zuschläge/Kosten\r\n surCharges1ArtNr = \"\";\r\n surCharges1Percent = \"\";\r\n surCharges1FixValue = \"\";\r\n surCharges2ArtNr = \"\";\r\n surCharges2Percent = \"\";\r\n surCharges2FixValue = \"\";\r\n charges = \"\";\r\n\r\n // Bestellung\r\n orderDecimalPlaces: number = null;\r\n orderFactor: number = null;\r\n orderStockFactor: number = null;\r\n orderPriceFactor: number = null;\r\n\r\n // Sonstiges\r\n newInShopTime: Date = null;\r\n showParts = \"\";\r\n optionTypeId = \"\";\r\n alternateArticleNumber = \"\";\r\n}\r\n","import { Mime } from \"./Mime\";\r\nimport { UdxField } from \"./UdxField\";\r\nimport { ProductLogistic } from \"./ProductLogistic\";\r\nimport { OrderDetail } from \"./OrderDetail\";\r\nimport { Reference } from \"./Reference\";\r\nimport { FeatureSystem } from \"./FeatureModels/FeatureSystem\";\r\nimport { Feature } from \"./FeatureModels/Feature\";\r\nimport { PriceList } from \"./PriceList\";\r\nimport { Agreement } from \"./Agreement\";\r\nimport { ChangeInfo } from \"./ChangeInfo\";\r\nimport { WarrantyClass } from './WarrantyClass';\r\nimport { HazmatClass } from './HazmatClass';\r\nimport { CatalogMapping } from './CatalogMapping';\r\nimport { LegalCharacteristic } from './LegalCharacteristic';\r\nimport { ReportLastRun } from './Reporting/ReportLastRun';\r\nimport { LinkedField } from './LinkedField';\r\nimport { WawiIntegration } from \"./WawiIntegration\";\r\nimport { ProductSupplier } from \"./ProductSupplier\";\r\nimport { ElectronicSalesDetail } from \"./ElectronicSalesDetail\";\r\nimport { ViewService } from \"../../Services/view.service\";\r\n\r\nexport class Product {\r\n constructor(\r\n public id?: string,\r\n public parentProductId?: string,\r\n public productCount?: number,\r\n public customerId?: string,\r\n public articleOrder?: string,\r\n public buyerAid?: string,\r\n public buyerAidType?: string,\r\n public descriptionLong?: string,\r\n public descriptionShort?: string,\r\n public erpGroupBuyer?: string,\r\n public erpGroupSupplier?: string,\r\n public internationalPid?: string,\r\n public internationalPidType?: string,\r\n public isChild?: boolean,\r\n public isMaster?: boolean,\r\n public lastChange?: string,\r\n public manufacturerAid?: string,\r\n public manufacturerName?: string,\r\n public edeNumber1?: string,\r\n public edeNumber2?: string,\r\n public edeNumber3?: string,\r\n public edeNumber4?: string,\r\n public edeNumber5?: string,\r\n public manufacturerTypeDescr?: string,\r\n public remarks?: string,\r\n public supplierPid?: string,\r\n public supplierAltAid?: string,\r\n public sourceProductId?: string,\r\n public productLogistic: ProductLogistic = new ProductLogistic(),\r\n public orderDetail: OrderDetail = new OrderDetail(),\r\n public mimes: Mime[] = [],\r\n public catalogMappings: CatalogMapping[] = [],\r\n public mimeTemplate: Mime[] = [],\r\n public udxs: UdxField[] = [],\r\n public products: Product[] = [],\r\n public featureSystems: FeatureSystem[] = [],\r\n public keywords: string[] = [],\r\n public states: string[] = [],\r\n public state: string = \"\",\r\n public priceLists: PriceList[] = [],\r\n public references: Reference[] = [],\r\n public productOrder?: number,\r\n public changeInfo?: ChangeInfo,\r\n public agreement: Agreement = new Agreement(),\r\n public metaTitel?: string,\r\n public metaDescription?: string,\r\n public legalCharacteristic: LegalCharacteristic = new LegalCharacteristic(),\r\n public isDiscontinued?: boolean,\r\n public discontinuedDate?: Date,\r\n public wawi?: WawiIntegration,\r\n public reportRuns: ReportLastRun[] = [],\r\n public linkedFields: LinkedField[] = [],\r\n public suppliers: ProductSupplier[] = [],\r\n public mainSupplierId?: string,\r\n public electronicSales: ElectronicSalesDetail = new ElectronicSalesDetail()\r\n ) { }\r\n ////Editier Fenster\r\n //public validateNumbers: number[] = [0, 0, 0, 0, 0]; //Setzt die Kreise auf Null\r\n //public productInfosValid: boolean = true; //Ausrufezeichen am MainTab auf aus\r\n //public productKeywordsValid: boolean = true; //Ausrufezeichen am MainTab auf aus\r\n //public productMediaValid: boolean = true; //Ausrufezeichen am MediaTab auf aus\r\n //public productFeaturesValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productPriceValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productOrderDetailsValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productLogiticValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public productReferenceValid: boolean = true; //Ausrufezeichen am FeatureTab auf aus\r\n //public featuresSystemsValid = false;\r\n //public marketingClaimValid = false;\r\n //public imagesValid = false;\r\n //public logoValid = false;\r\n //public dataSheetValid = false;\r\n public validGroup = 0;\r\n public groupString: string = \"\";\r\n public master: string = \"\";\r\n public descWithoutHTML: string = \"\";\r\n public featurelist: string = \"\";\r\n\r\n //ShopView\r\n public productImagesNormal: Mime[] = []; //Mimes mit dem Purpose Normal oder Detail für Shopview und Validierung\r\n public price: productPrice = new productPrice();\r\n public productImagesIcon: Mime[] = []; //Mimes mit dem Purpose Icon für Shopview und Validierung\r\n public productImagesLogos: Mime[] = [];\r\n public productDataSheets: Mime[] = [];\r\n\r\n public features: svFeatureSystem[] = []; //Featuressysteme für Shopview und Validierung\r\n public marketingClaim: string = \"\"; //MarketingClaim für Shopview und Validierung\r\n public productTileImages: { \"src\": string, \"ratio\": number }[] = [];\r\n\r\n\r\n\r\n public prepareView() {\r\n this.searchPrice();\r\n this.searchMimes();\r\n this.searchFeatures();\r\n if (this.productDataSheets.length > 0) {\r\n var dataSheets = new svFeatureSystem();\r\n dataSheets.name = \"Datenblätter\";\r\n dataSheets.type = \"data_sheet\";\r\n this.features.push(dataSheets);\r\n\r\n }\r\n }\r\n\r\n private searchMimes(): void {\r\n this.productImagesNormal = [];\r\n this.productImagesIcon = [];\r\n this.productImagesLogos = [];\r\n this.productDataSheets = [];\r\n\r\n if (this.mimes) {\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"normal\":\r\n case \"detail\":\r\n case \"milieu\":\r\n this.productImagesNormal.push(mime);\r\n break;\r\n case \"icon\":\r\n if (this.productImagesIcon.length < 5) {\r\n this.productImagesIcon.push(mime);\r\n }\r\n break;\r\n case \"logo\":\r\n this.productImagesLogos.push(mime);\r\n break;\r\n case \"data_sheet\":\r\n case \"safty_data_sheet\":\r\n this.productDataSheets.push(mime);\r\n break;\r\n }\r\n }\r\n\r\n this.productTileImages = [];\r\n //Tile Images suchen\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"normal\":\r\n if (parseInt(mime.mimeAlt) > 0)\r\n this.productTileImages.push({ \"src\": mime.normUri, \"ratio\": parseInt(mime.mimeAlt) });\r\n break;\r\n }\r\n }\r\n for (let mime of this.mimes) {\r\n switch (mime.mimePurpose) {\r\n case \"milieu\":\r\n case \"detail\":\r\n if (parseInt(mime.mimeAlt) > 0)\r\n this.productTileImages.push({ \"src\": mime.normUri, \"ratio\": parseInt(mime.mimeAlt) });\r\n break;\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n private searchPrice(): void {\r\n //TODO OrderDetails pürfen\r\n\r\n\r\n\r\n // https://nextpim.myjetbrains.com/youtrack/issue/nPIM-610\r\n // Notiz: Ersten NRP, wenn vorhanden, sonst ersten NET_LIST, sonst irgend einen (ersten gefundenen).\r\n\r\n // ==> Mindestens bis zum ersten NRP alle durchgehen.\r\n // Das kann bedeuten wirklich alle durchgehen zu müssen, falls es gar keinen NRP gibt.\r\n\r\n var firstPrice = null;\r\n var firstNrpPrice = null;\r\n var firstNetlistPrice = null;\r\n\r\n if (this.priceLists) {\r\n loop:\r\n for (let priceList of this.priceLists) {\r\n for (let price of priceList.productPriceDetails) {\r\n\r\n if (firstPrice == null) {\r\n firstPrice = price;\r\n }\r\n\r\n if (price.priceType === \"nrp\" && firstNrpPrice == null) {\r\n firstNrpPrice = price;\r\n break loop;\r\n }\r\n\r\n if (price.priceType === \"net_list\" && firstNetlistPrice == null) {\r\n firstNetlistPrice = price;\r\n //break loop; // nicht aussteigen, es könnte später noch ein NRP kommen.\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n var price = null;\r\n if (firstNrpPrice != null) {\r\n price = firstNrpPrice;\r\n } else if (firstNetlistPrice != null) {\r\n price = firstNetlistPrice;\r\n } else {\r\n price = firstPrice;\r\n }\r\n\r\n\r\n\r\n if (price == null) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var tax = parseFloat(price.tax);\r\n tax = tax * 100;\r\n var amount = parseFloat(price.priceAmount);\r\n\r\n if (amount > 0 && price.priceCurrency != null && price.priceCurrency.length == 3 && tax < 100) {\r\n var amountString = amount.toLocaleString('de-DE', { style: 'currency', currency: price.priceCurrency });\r\n var priceObj = new productPrice();\r\n priceObj.prouctTax = tax.toString();\r\n priceObj.prouctUnit = \"1 Stück\";\r\n if (this.orderDetail != null) {\r\n switch (this.orderDetail.contentUnit) {\r\n case \"C62\":\r\n break;\r\n case \"ANN\":\r\n priceObj.prouctUnit = \"Jahreslizenz\";\r\n break;\r\n case \"MON\":\r\n priceObj.prouctUnit = \"Monatslizenz\";\r\n break;\r\n }\r\n }\r\n priceObj.prouctPrice = amountString;\r\n this.price = priceObj;\r\n }\r\n }\r\n\r\n public points = [];\r\n public technicalFeatures: Feature[] = [];\r\n public topFeatures: Feature[] = [];\r\n public benefitsFeatures: Feature[] = [];\r\n public usageFeatures: Feature[] = [];\r\n public useForFeatures: Feature[] = [];\r\n public variantsFeatures: Feature[] = [];\r\n\r\n private searchFeatures(): void {\r\n\r\n this.features = [];\r\n\r\n if (this.featureSystems) {\r\n\r\n for (let featureSystem of this.featureSystems) {\r\n switch (featureSystem.referenceFeatureSystemName) {\r\n case \"udf_NMTECHNICALDETAILS-1.0\":\r\n this.technicalFeatures = featureSystem.features;\r\n case \"udf_NMOTHERS-1.0\":\r\n case \"udf_NMTRADINGDETAILS-1.0\":\r\n var featSysObj = new svFeatureSystem();\r\n featSysObj.name = Product.translateFetSysName(featureSystem.referenceFeatureSystemName);\r\n for (let feature of featureSystem.features) {\r\n var featObj = new svFeatures();\r\n featObj.name = feature.name;\r\n featObj.value = feature.value;\r\n featObj.funit = feature.funit;\r\n featSysObj.features.push(featObj);\r\n }\r\n if (featSysObj.features.length > 0) {\r\n this.features.push(featSysObj);\r\n }\r\n break;\r\n case \"udf_NMTOPFEATURES-1.0\":\r\n this.topFeatures = featureSystem.features;\r\n case \"udf_NMBENEFITS-1.0\":\r\n if (featureSystem.referenceFeatureSystemName == \"udf_NMBENEFITS-1.0\") {\r\n this.benefitsFeatures = featureSystem.features;\r\n }\r\n case \"udf_NMUSAGE-1.0\":\r\n if (featureSystem.referenceFeatureSystemName == \"udf_NMUSAGE-1.0\") {\r\n this.usageFeatures = featureSystem.features;\r\n }\r\n case \"udf_NMSCOPEOFSUPPLY-1.0\":\r\n var featSysObj = new svFeatureSystem();\r\n featSysObj.name = Product.translateFetSysName(featureSystem.referenceFeatureSystemName);\r\n featSysObj.hasName = false;\r\n for (let feature of featureSystem.features) {\r\n var featObj = new svFeatures();\r\n featObj.value = feature.value;\r\n featSysObj.features.push(featObj);\r\n }\r\n if (featSysObj.features.length > 0) {\r\n this.features.push(featSysObj);\r\n }\r\n break;\r\n case \"udf_NMPOINTS-1.0\":\r\n this.points = [];\r\n for (let feature of featureSystem.features) {\r\n if (parseInt(feature.value) > 0 &&\r\n parseInt(feature.funit) > 0 &&\r\n parseInt(feature.value) <= parseInt(feature.funit)) {\r\n this.points.push({ \"name\": feature.name, \"points\": feature.value, \"max\": feature.funit });\r\n }\r\n }\r\n break;\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n for (let feature of featureSystem.features) {\r\n this.marketingClaim = feature.value;\r\n break;\r\n }\r\n break;\r\n case \"udf_NMUSEFOR-1.0\":\r\n this.useForFeatures = featureSystem.features;\r\n break;\r\n case \"udf_NMVARIANTS-1.0\":\r\n this.variantsFeatures = featureSystem.features;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static translateFetSysName(name: string): string {\r\n switch (name) {\r\n case \"udf_NMMARKETINGCLAIM-1.0\":\r\n return \"MarketingClaim\";\r\n case \"udf_NMTRADINGDETAILS-1.0\":\r\n return \"Lieferinformationen\";\r\n case \"udf_NMOTHERS-1.0\":\r\n return \"andere Merkmale\";\r\n case \"udf_NMTECHNICALDETAILS-1.0\":\r\n return \"Technische Daten\";\r\n case \"udf_NMTOPFEATURES-1.0\":\r\n return \"Topmerkmale\";\r\n case \"udf_NMSCOPEOFSUPPLY-1.0\":\r\n return \"Lieferumfang\";\r\n case \"udf_NMBENEFITS-1.0\":\r\n return \"Vorteile\";\r\n case \"udf_NMUSAGE-1.0\":\r\n return \"Anwendung\";\r\n case \"udf_NMUSEFOR-1.0\":\r\n return \"Material\";\r\n case \"udf_NMVARIANTS-1.0\":\r\n return \"Varianten Merkmale\";\r\n }\r\n return \"\";\r\n }\r\n\r\n //Validation\r\n\r\n public hintsActiv = false; //Wenn true, dann werden Hintsactiviert\r\n\r\n public activateHints() {\r\n this.hintsActiv = true;\r\n }\r\n\r\n addWarranty(warranty) {\r\n var warrantyFS = new svFeatureSystem();\r\n warrantyFS.name = warranty;\r\n warrantyFS.type = \"warranty\";\r\n this.features.push(warrantyFS);\r\n }\r\n\r\n addHazmat() {\r\n var hazmatFS = new svFeatureSystem();\r\n hazmatFS.name = \"Gefahreninformation\";\r\n hazmatFS.type = \"hazmat\";\r\n this.features.push(hazmatFS);\r\n }\r\n\r\n warrantyClass: WarrantyClass;\r\n hazmatClass: HazmatClass;\r\n\r\n\r\n public applyGlobalTemplate(other: Product) {\r\n this.featureSystems = other.featureSystems;\r\n this.mimes = other.mimes;\r\n }\r\n\r\n public hasMasterOrChild(): boolean {\r\n return this.productCount != null && this.productCount > 0 // Master\r\n || this.isChild != null && this.isChild; // Child\r\n }\r\n\r\n public isFieldLinked(field: string, system?: string, element?: string): boolean {\r\n if (this.linkedFields == null || this.linkedFields.length == 0) {\r\n return false;\r\n }\r\n\r\n var found = this.linkedFields.find(l => l.field == field && l.systemKey == system && l.elementKey == element);\r\n if (found != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, system?: string, element?: string): boolean {\r\n\r\n let _system = system;\r\n if (_system == null) {\r\n _system = \"-1\";\r\n }\r\n var _element = element;\r\n if (_element == null) {\r\n _element = \"-1\";\r\n }\r\n // Prüfen, ob das Feld aktuell gelinked ist:\r\n var isLinked = this.isFieldLinked(field, _system, _element);\r\n\r\n // Es ist nicht gelinked, nun soll es gelinked werden:\r\n if (isLinked == false) {\r\n var newItem = new LinkedField(field, _system, _element);\r\n this.linkedFields.push(newItem);\r\n if (this.isFeatureSystemField(field)) {\r\n var index = this.linkedFields.findIndex(l => l.field == \"REFERENCE_FEATURE_SYSTEM_NAME\" && l.systemKey == _system);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"REFERENCE_FEATURE_SYSTEM_NAME\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n }\r\n\r\n if (this.isFeatureField(field)) {\r\n var index = this.linkedFields.findIndex(l => l.field == \"REFERENCE_FEATURE_SYSTEM_NAME\" && l.systemKey == _system);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"REFERENCE_FEATURE_SYSTEM_NAME\", _system, \"-1\");\r\n this.linkedFields.push(newItem);\r\n }\r\n\r\n var index = this.linkedFields.findIndex(l => l.field == \"FNAME\" && l.systemKey == _system && l.elementKey == _element);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"FNAME\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n var index = this.linkedFields.findIndex(l => l.field == \"FUNIT\" && l.systemKey == _system && l.elementKey == _element);\r\n if (index < 0) {\r\n var newItem = new LinkedField(\"FUNIT\", _system, _element);\r\n this.linkedFields.push(newItem);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // Es ist gelinked, nun soll es nicht mehr gelinked sein:\r\n var index = this.linkedFields.findIndex(l => l.field == field && l.systemKey == system && l.elementKey == element);\r\n if (index < 0) {\r\n return false; // Das dürfte aufgrund der vorigen Prüfung eig. nie vorkommen...\r\n }\r\n this.linkedFields.splice(index, 1);\r\n\r\n if (field == \"FVALUE\" || field == \"FEATURE_PRINT_ORDER\") {\r\n let featureSystem = this.featureSystems.find(x => x.validFeatureSystemId == system);\r\n if (ViewService.isSingleValue(featureSystem.referenceFeatureSystemName)) {\r\n let foundLinkedField = this.linkedFields.findIndex(x => (x.field == \"FVALUE\" || x.field == \"FEATURE_PRINT_ORDER\") && x.systemKey == system && x.elementKey == element);\r\n if (foundLinkedField < 0) {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system || l.elementKey != _element);\r\n }\r\n }\r\n }\r\n\r\n if (field == \"REFERENCE_FEATURE_SYSTEM_NAME\") {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system);\r\n }\r\n\r\n if (field == \"FNAME\" || field == \"FUNIT\") {\r\n this.linkedFields = this.linkedFields.filter(l => l.systemKey != _system || l.elementKey != _element);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n isFeatureSystemField(field: string): boolean {\r\n if (field == \"REFERENCE_FEATURE_SYSTEM\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_SYSTEM_NAME\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_ID\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_ID2\")\r\n return true;\r\n if (field == \"REFERENCE_FEATURE_GROUP_NAME\")\r\n return true;\r\n if (field == \"FS_ORDER\")\r\n return true;\r\n return false;\r\n }\r\n\r\n isFeatureField(field: string): boolean {\r\n if (field == \"FNAME\")\r\n return true;\r\n if (field == \"FVALUE\")\r\n return true;\r\n if (field == \"FUNIT\")\r\n return true;\r\n if (field == \"FORDER\")\r\n return true;\r\n if (field == \"FDESCR\")\r\n return true;\r\n if (field == \"FVALUE_DETAILS\")\r\n return true;\r\n if (field == \"FEATURE_PRINT_ORDER\")\r\n return true;\r\n if (field == \"ISVARIANT\")\r\n return true;\r\n return false; \r\n }\r\n\r\n public getClassForLinkedField(linked: boolean): string {\r\n if (linked) {\r\n // linked ==> link anzeigen\r\n return \"glyphicons-halflings-167-link-nextPimBlue\"\r\n } else {\r\n // nicht linked ==> link-remove anzeigen\r\n return \"glyphicons-halflings-168-link-remove-nextPimBlue\"\r\n }\r\n }\r\n\r\n}\r\n\r\nclass productPrice {\r\n public prouctPrice: string = \"\";\r\n public prouctCurrency: string = \"\";\r\n public prouctTax: string = \"\";\r\n public prouctUnit: string = \"\";\r\n}\r\n\r\nclass svFeatureSystem {\r\n public name: string = \"\";\r\n public hasName: boolean = true;\r\n public type: string = \"normal\";\r\n public features: svFeatures[] = [];\r\n}\r\n\r\nclass svFeatures {\r\n public name: string = \"\";\r\n public value: string = \"\";\r\n public funit: string = \"\";\r\n}\r\n","\r\nexport class NextPimField {\r\n constructor(\r\n public elementKey?: string,\r\n public systemKey?: string,\r\n public field?: string\r\n ) {\r\n }\r\n}\r\n\r\nexport function HasSystemKey(nextPimField: NextPimField): boolean {\r\n if (!nextPimField.systemKey)\r\n return false;\r\n if (nextPimField.systemKey == \"-1\")\r\n return false;\r\n if (nextPimField.systemKey == \"0\")\r\n return false;\r\n return true;\r\n}\r\n\r\nexport function HasElementKey(nextPimField: NextPimField): boolean {\r\n if (!nextPimField.elementKey)\r\n return false;\r\n if (nextPimField.elementKey == \"-1\")\r\n return false;\r\n if (nextPimField.elementKey == \"0\")\r\n return false;\r\n return true;\r\n}\r\n","import { Product } from \"../Catalog/product\"\r\n\r\nexport class DragInfo {\r\n constructor(\r\n public dModel?: Product,\r\n public dField?: string,\r\n public dSystem?: string,\r\n public dElement?: string,\r\n public dDisplayName?: string,\r\n ) {\r\n }\r\n \r\n\r\n}\r\n","export class FeatureValue {\r\n\r\n constructor(\r\n public order?: number,\r\n public value?: string,\r\n public valueId?: string,\r\n public validFeatureValueId?: string\r\n ) {\r\n\r\n \r\n \r\n\r\n }\r\n}\r\n","import { Functions } from '../../../Services/functions';\r\nimport { FeatureValue } from '../../classification/FeatureValue';\r\n\r\nexport class Feature {\r\n private _validFeatureId?: string;\r\n constructor(\r\n public forder?: number,\r\n public name?: string,\r\n public fDescr?: string,\r\n public featureValues: FeatureValue[] = new Array<FeatureValue>(),\r\n public fValueDetails?: string,\r\n public funit?: string,\r\n public printOrder: number = 0,\r\n public isVariant?: boolean,\r\n public valueSource?: string,\r\n public fRequired: boolean = false,\r\n validFeatureId?: string,\r\n public oldValidFeatureId?: string,\r\n public updateLinkedFields: boolean = false) {\r\n this.validFeatureId = validFeatureId;\r\n }\r\n public get validFeatureId(): string | undefined {\r\n return this._validFeatureId;\r\n }\r\n\r\n\r\n public set validFeatureId(newId: string | undefined) {\r\n if (this._validFeatureId) {\r\n if (this._validFeatureId != newId) {\r\n this.oldValidFeatureId = this._validFeatureId;\r\n }\r\n }\r\n this._validFeatureId = newId;\r\n }\r\n\r\n toJSON(): any {\r\n return {\r\n ...this,\r\n validFeatureId: this._validFeatureId // Include private property in JSON\r\n };\r\n }\r\n\r\n public get ftIdref(): string {\r\n let found = this.featureValues.find(l => l.order === 1);\r\n if (found != null) {\r\n return found.valueId;\r\n }\r\n return \"\";\r\n }\r\n\r\n public set ftIdref(value: string) {\r\n let found = this.featureValues.find(l => l.order === 1);\r\n if (!found) {\r\n found = new FeatureValue();\r\n found.order = 1;\r\n this.featureValues.push(found);\r\n }\r\n found.valueId = value;\r\n }\r\n\r\n public get value(): string {\r\n //changed to used lowest order featurevalue\r\n let found = this.featureValues.reduce((lowest, current) => {\r\n return (lowest && lowest.order < current.order) ? lowest : current;\r\n }, null);\r\n if (found != null) {\r\n return found.value;\r\n }\r\n return \"\";\r\n }\r\n\r\n public set value(value: string) {\r\n let found = this.featureValues.reduce((lowest, current) => {\r\n return (lowest && lowest.order < current.order) ? lowest : current;\r\n }, null);\r\n if (!found) {\r\n found = new FeatureValue();\r\n found.order = 1;\r\n this.featureValues.push(found);\r\n }\r\n found.value = value;\r\n }\r\n\r\n\r\n public guid: string = Functions.newGuid();\r\n}\r\n","import { Functions } from '../../Services/functions';\r\n\r\nexport class Mime {\r\n\r\n constructor(\r\n public mimeType: string = \"\",\r\n public mimeOrder: number = 0,\r\n public mimePurpose: string = \"\",\r\n public mimeDescr: string = \"\",\r\n public mimeSource: string = \"\",\r\n public mimeAlt: string = \"\",\r\n public excludeFromShopware6: boolean = false,\r\n public blobUri?: string,\r\n public thumbUri?: string,\r\n public normUri?: string,\r\n public lastImageLookup?: Date,\r\n public lastChanged?: Date,\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n }\r\n}\r\n","import { ProductPriceDetail } from \"./ProductPriceDetail\";\r\nimport { Functions } from '../../Services/functions';\r\n\r\nexport class PriceList {\r\n\r\n constructor(\r\n public priceListOrder?: number,\r\n public start?: Date,\r\n public end?: Date,\r\n public isDailyPrice: boolean = false,\r\n public productPriceDetails: ProductPriceDetail[] = [],\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n this.start = new Date(new Date().getFullYear(), 0, 1);\r\n this.end = new Date(new Date().getFullYear(), 11, 31);\r\n }\r\n}\r\n","import { Functions } from '../../Services/functions';\r\n\r\nexport class ProductPriceDetail {\r\n\r\n constructor(\r\n public lowerBound?: string,\r\n public order?: number,\r\n public priceAmount?: string,\r\n public priceCurrency?: string,\r\n public priceFactor?: string,\r\n public priceType?: string,\r\n public tax?: string,\r\n public taxCategory?: string,\r\n public territory?: string,\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n this.priceCurrency = \"EUR\";\r\n this.priceFactor = \"1\";\r\n this.tax = \"0.19\";\r\n this.territory = \"DE\";\r\n this.lowerBound = \"1\";\r\n }\r\n\r\n public clearPrice() {\r\n this.priceCurrency = \"\";\r\n this.priceFactor = \"\";\r\n this.tax = \"\";\r\n this.territory = \"\";\r\n this.lowerBound = \"\";\r\n }\r\n}\r\n","import { ExcelElement } from '../ui/ExcelElement';\r\nimport { NextPimField } from './NextPimField';\r\n\r\nexport class TemplateItem {\r\n constructor(\r\n public pimFields: NextPimField[] = [],\r\n public order?: number,\r\n public key?: string,\r\n public seperator?: string,\r\n public unit?: string,\r\n public defaultValue?: string,\r\n public htmlFilter?: boolean,\r\n public catName?: string,\r\n public name?: string,\r\n public previewValues?: string[],\r\n public calculation: string = \"\",\r\n public numberformat: string = \"\",\r\n public mapping: string = \"\",\r\n public remove: string = \"\",\r\n public isNewEditorVersion: boolean = false,\r\n public addprev: string = \"\",\r\n public addfoll: string = \"\"\r\n ) {\r\n }\r\n\r\n\r\n}\r\n","import { NextPimField } from \"./NextPimField\";\r\nimport { TemplateItem } from \"./TemplateItem\";\r\n\r\n\r\nexport class Template {\r\n\r\n constructor(\r\n public id?: string,\r\n public customerId?: string,\r\n public name?: string,\r\n public remarks?: string,\r\n public created?: Date,\r\n public lastUsed?: Date,\r\n public lastChange?: Date,\r\n public isUseable: boolean = true,\r\n public templateItems?: TemplateItem[],\r\n public columnCount?: number,\r\n public isExportTemplate: boolean = true,\r\n public deleteEmptyFeatures: boolean = false\r\n ) {\r\n this.name = \"Neues Template\";\r\n this.created = new Date();\r\n this.lastUsed = new Date();\r\n this.templateItems = [];\r\n this.columnCount = 0;\r\n }\r\n\r\n public addSupplierAID() {\r\n this.templateItems.push(new TemplateItem([new NextPimField(\"1\", \"1\", \"SUPPLIER_PID\")],1, \"Artikelnummer\", \"\", \"\", \"\"));\r\n }\r\n\r\n static createDeafaultMainInfo(): Template {\r\n var template = new Template();\r\n /* template.name=\"Produkt Informationen\"\r\n template.addSupplierAID();\r\n template.templateItems.push(new TemplateItem(2, \"Kurzbeschreibung\", \"DESCRIPTION_SHORT\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(3, \"Langbeschreibung\", \"DESCRIPTION_LONG\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(4, \"alternantive Produktnummer\", \"SUPPLIER_ALT_PID\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(5, \"Internationale ID\", \"INTERNATIONAL_PID\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(6, \"Internationale ID Type\", \"INTERNATIONAL_PID_TYPE\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(7, \"Herstellerbezeichnung\", \"MANUFACTURER_TYPE_DESCR\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(8, \"Bemerkung\", \"REMARKS\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(9, \"Herstellernummer\", \"MANUFACTURER_PID\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(10, \"Herstellername\", \"MANUFACTURER_NAME\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(11, \"Suchbegriffe\", \"KEYWORDS\", 1, 1, \"|\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(12, \"Sortiernummer\", \"PRODUCT_ORDER\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(13, \"Kategorie\", \"GROUP_STRING\", 1, 1, \"\", \"\", \"\"));*/\r\n return template;\r\n }\r\n\r\n static createDeafaultLogistic(): Template {\r\n var template = new Template();\r\n template.name = \"Logistik Informationen\"\r\n template.addSupplierAID();\r\n /* template.templateItems.push(new TemplateItem(2, \"Kurzbeschreibung\", \"DESCRIPTION_SHORT\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(3, \"Zolltarifnummer\", \"CUSTOMS_NUMBER\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(4, \"Ursprungsland\", \"COUNTRY_OF_ORIGIN\", 1, 1, \"\", \"\", \"\"));\r\n template.templateItems.push(new TemplateItem(5, \"Breite\", \"WIDTH\", 1, 1, \",\", \"m\", \"\"));\r\n template.templateItems.push(new TemplateItem(6, \"Länge\", \"LENGTH\", 1, 1, \",\", \"m\", \"\"));\r\n template.templateItems.push(new TemplateItem(7, \"Höhe\", \"DEPTH\", 1, 1, \",\", \"m\", \"\"));\r\n template.templateItems.push(new TemplateItem(8, \"Gewicht\", \"WEIGHT\", 1, 1, \",\", \"kg\", \"\"));*/\r\n return template;\r\n }\r\n}\r\n","import { NextPimField } from \"../Catalog/NextPimField\";\r\n\r\nexport class ExcelElement {\r\n constructor(\r\n public pimFields: NextPimField[] = [],\r\n public id: string = \"\",\r\n public title: string = \"\",\r\n public row1: string = \"\",\r\n public row2: string = \"\",\r\n public calculation: string = \"\",\r\n public numberformat: string = \"\",\r\n public seperator: string = \"\",\r\n public mapping: string = \"\",\r\n public remove: string = \"\",\r\n public inUse: boolean = false,\r\n public addprev: string = \"\",\r\n public addfoll: string = \"\",\r\n public defaultValue: string = \"\",\r\n public preview: string = \"\",\r\n public displayName: string = \"\",\r\n public isDisplayNameRequested: boolean = false\r\n ) {}\r\n}\r\n","export class RestartJob {\r\n\r\n constructor(\r\n public jobId?: number\r\n ) {\r\n }\r\n}\r\n","export class UdxField {\r\n\r\n constructor(\r\n public name?: string,\r\n public value?: string,\r\n public order?: number,\r\n public type?: string,\r\n public category?: string,\r\n public childs?: UdxField[],\r\n ) {\r\n if (this.childs == null) {\r\n this.childs = [];\r\n }\r\n }\r\n}\r\n","export class Reference {\r\n\r\n constructor(\r\n public type?: string,\r\n public artIdTo?: string,\r\n public descriptionShort?: string,\r\n public normUri?: string,\r\n public order?: number\r\n ) {\r\n\r\n }\r\n}\r\n","export class ProductSupplier {\r\n \r\n\r\n constructor(\r\n \r\n public order?: number,\r\n public supplierId?: string,\r\n public supplierName?: string,\r\n public pid?: string,\r\n public internationalId?: number,\r\n public internationalIdType?: string,\r\n public supplierProductDescription?: string,\r\n public supplierProductDescriptionShort?: string,\r\n public deliveryTime?: number,\r\n public price?: number,\r\n public validFrom?: Date,\r\n public validUntil?: Date,\r\n public guid?: string,\r\n public discountGroupCode?: string,\r\n public pricingUnitCode?: string,\r\n public priceAllocationUnitCode?: string,\r\n public originalPriceAllocationUnitCode?: string,\r\n public contentUnitCode?: string,\r\n public packingAmount?: string,\r\n public orderIntervall?: string,\r\n public minOrderAmount?: string,\r\n public discontinuedProduct?: boolean,\r\n public discontinuedDate?: Date,\r\n \r\n ) {\r\n\r\n }\r\n\r\n get current(): boolean {\r\n let isValidFrom = this.validFrom == null || this.validFrom.getTime() < Date.now();\r\n let isValidUntil = this.validUntil == null || this.validUntil.getTime() > Date.now();\r\n return isValidFrom && isValidUntil;\r\n }\r\n}\r\n","export class PackingUnit {\r\n constructor(\r\n public order?: number,\r\n public packingUnitCode?: string,\r\n public packingUnitDescr?: string,\r\n public quantityMin?: number,\r\n public quantityMax?: number,\r\n\r\n public amountContentUnit?: number,\r\n public amountSmallerUnit?: number\r\n ) { }\r\n}\r\n","export function throwInvalidProperty<T extends object>(model: T, prop: string) {\r\n if (!model.hasOwnProperty(prop)) {\r\n throw new Error(`The property ${model.constructor.name}.${prop} does not exist!`);\r\n }\r\n}\r\n\r\nexport function safeSetToModel<T extends object>(model: T, prop: string, value: unknown) {\r\n throwInvalidProperty(model, prop);\r\n model[prop] = value;\r\n}\r\n\r\nexport function safeGetFromModel<T extends object>(model: T, prop: string) {\r\n throwInvalidProperty(model, prop);\r\n return model[prop];\r\n}\r\n\r\nexport async function safeAsyncSetToModel<\r\n M extends object,\r\n V extends M[keyof M]\r\n>(model: M, prop: string, resultFn: () => Promise<V>) {\r\n throwInvalidProperty(model, prop);\r\n model[prop] = await resultFn();\r\n}\r\n\r\nexport async function safeAsyncGetFromModel<\r\n M extends object,\r\n V extends M[keyof M]\r\n>(model: M, prop: string, resultFn: (value: V) => Promise<V>) {\r\n throwInvalidProperty(model, prop);\r\n return await resultFn(model[prop]);\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { EventEmitter, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Feature } from '../Model/Catalog/FeatureModels/Feature';\r\nimport { FeatureSystem } from '../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { Mime } from '../Model/Catalog/Mime';\r\nimport { PriceList } from '../Model/Catalog/PriceList';\r\nimport { Product } from '../Model/Catalog/product';\r\nimport { ProductPriceDetail } from '../Model/Catalog/ProductPriceDetail';\r\nimport { Template } from '../Model/Catalog/template';\r\nimport { TemplateItem } from '../Model/Catalog/TemplateItem';\r\nimport { HasElementKey, HasSystemKey, NextPimField } from \"../Model/Catalog/NextPimField\";\r\nimport { FeatureValue } from '../Model/classification/FeatureValue';\r\nimport { BackgroundJob } from '../Model/Dto/BackgroundJob';\r\nimport { FieldNames } from '../Model/FieldNames';\r\nimport { ExcelElement } from '../Model/ui/ExcelElement';\r\nimport { HazmatClassService } from './hazmatClass.service';\r\nimport { LoginService } from './login.service';\r\nimport { ViewService } from './view.service';\r\nimport { WarrantyClassService } from './warrantyClass.service';\r\nimport { RestartJob } from '../Model/Dto/RestartJob';\r\nimport { UrlResponse } from '../Model/Dto/UrlResponse';\r\nimport { SystemService } from './system.service';\r\nimport { Message } from '../Model/System/Message';\r\nimport { UdxField } from '../Model/Catalog/UdxField';\r\nimport { Reference } from '../Model/Catalog/Reference';\r\nimport { ProductService } from './CatalogManagement/product.service';\r\nimport { ProductSupplier } from '../Model/Catalog/ProductSupplier';\r\nimport { WawiListService } from './wawiList.service';\r\nimport { PackingUnit } from '../Model/Catalog/PackingUnit';\r\nimport { StringResponse } from '../Model/Dto/StringResponse';\r\nimport { ValidFeatureService } from './validFeature.service';\r\nimport { safeAsyncGetFromModel, safeAsyncSetToModel, safeGetFromModel, safeSetToModel } from '../Model/ModelOperations';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TemplateService {\r\n public fieldNames: FieldNames;\r\n\r\n private _templates: Template[];\r\n private _exportTemplates: Template[];\r\n private _template: Template;\r\n\r\n\r\n get template(): Template {\r\n return this._template;\r\n }\r\n set template(value: Template) {\r\n this._template = value;\r\n }\r\n\r\n get templates(): Template[] {\r\n return this._templates;\r\n }\r\n\r\n get exportTemplates(): Template[] {\r\n return this._exportTemplates;\r\n }\r\n\r\n get exportMode(): boolean {\r\n return this.template.isExportTemplate;\r\n }\r\n\r\n\r\n\r\n private _importJob: BackgroundJob;\r\n get importJob(): BackgroundJob {\r\n return this._importJob;\r\n }\r\n set importJob(value: BackgroundJob) {\r\n this._importJob = value;\r\n }\r\n\r\n private _importTemplateEditorVisible: boolean;\r\n get importTemplateEditorVisible(): boolean {\r\n return this._importTemplateEditorVisible;\r\n }\r\n set importTemplateEditorVisible(value: boolean) {\r\n this._importTemplateEditorVisible = value;\r\n }\r\n\r\n txtGroupString: string = \"\";\r\n\r\n\r\n\r\n // listen mit feldnamen. verwendung sowohl für linked fields logik als auch für den template editor.\r\n public allMimeFields: string[] = [];\r\n public allFeatureSystemFields: string[] = [];\r\n public allFeatureFields: string[] = [];\r\n public allPriceListFields: string[] = [];\r\n public allPriceFields: string[] = [];\r\n public allReferenceFields: string[] = [];\r\n public allUdxFields: string[] = [];\r\n public allSupplierFields: string[] = [];\r\n public allSupplierUnitFields: string[] = [];\r\n\r\n\r\n public clearPimFieldEmitter = new EventEmitter<NextPimField>();\r\n public clearPimFieldEmitterDone = new EventEmitter<any>();\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService, public systemService: SystemService, public hazmatClassService: HazmatClassService,\r\n public warrantyClassService: WarrantyClassService, public translate: TranslateService, public productService: ProductService,\r\n private wawiListService: WawiListService, public validFeatureService: ValidFeatureService) {\r\n this.fieldNames = new FieldNames();\r\n\r\n this.allMimeFields = [\r\n this.fieldNames.mimeType, this.fieldNames.mimeSource, this.fieldNames.mimeDescription,\r\n this.fieldNames.mimeAlt, this.fieldNames.mimePurpose\r\n ];\r\n\r\n this.allFeatureSystemFields = [\r\n this.fieldNames.featureSystemOrder, this.fieldNames.featureSystemName, this.fieldNames.featureSystemGroupId, this.fieldNames.featureSystemGroupId2,\r\n this.fieldNames.featureSystemGroupName\r\n ];\r\n\r\n this.allFeatureFields = [\r\n this.fieldNames.fOrder, this.fieldNames.fName, this.fieldNames.fValue, this.fieldNames.fUnit,\r\n this.fieldNames.fDescription, this.fieldNames.fValueDetails, this.fieldNames.featurePrintOrder, this.fieldNames.isVariant\r\n ];\r\n\r\n this.allPriceListFields = [\r\n this.fieldNames.startDate, this.fieldNames.endDate, this.fieldNames.isDailyPrice\r\n ];\r\n\r\n this.allPriceFields = [\r\n this.fieldNames.priceType, this.fieldNames.priceAmount, this.fieldNames.priceFactor,\r\n this.fieldNames.priceCurrency, this.fieldNames.lowerBound, this.fieldNames.tax,\r\n this.fieldNames.territory\r\n ];\r\n\r\n this.allReferenceFields = [\r\n this.fieldNames.productReferencesType, this.fieldNames.productReferencesSpid\r\n ];\r\n\r\n this.allUdxFields = [\r\n this.fieldNames.udxCategory, this.fieldNames.udxName, this.fieldNames.udxValue\r\n ];\r\n\r\n this.allSupplierFields = [\r\n this.fieldNames.supplierOrder,\r\n this.fieldNames.supplierId,\r\n this.fieldNames.supplierName,\r\n this.fieldNames.pid,\r\n this.fieldNames.supplierInternationalId,\r\n this.fieldNames.supplierInternationalIdType,\r\n this.fieldNames.supplierProductDescription,\r\n this.fieldNames.supplierProductDescriptionShort,\r\n this.fieldNames.supplierDeliveryTime,\r\n this.fieldNames.supplierPrice,\r\n this.fieldNames.supplierValidFrom,\r\n this.fieldNames.supplierDiscountGroupCode,\r\n this.fieldNames.supplierPricingUnitCode,\r\n this.fieldNames.supplierPriceAllocationUnitCode,\r\n this.fieldNames.supplierPriceAllocationUnitCodeOriginal,\r\n ];\r\n\r\n let a = this.translate.instant(\"Hauptkategorie\");\r\n let b = this.translate.instant(\"Unterkategorie\");\r\n this.txtGroupString = a + \"|\" + b;\r\n }\r\n\r\n public getTemplates() {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n this.http.get<Template[]>(\"api/import/GetTemplates\", options).pipe(\r\n map((result: Template[]) => this._templates = result))\r\n .subscribe();\r\n }\r\n\r\n public getTemplatesReturn(): Observable<Template[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return this.http.get<Template[]>(\"api/import/GetTemplates\", options);\r\n }\r\n\r\n public getExportTemplates(): Promise<Template[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return this.http.get<Template[]>(\"api/import/GetTemplates\", options).pipe(\r\n map((result: Template[]) => {\r\n if (result == null || result == undefined) {\r\n this._exportTemplates = Array<Template>();\r\n }\r\n\r\n let hasExportTemplates = result.some(t => t.isExportTemplate);\r\n if (hasExportTemplates) {\r\n let exportTemplates = result.filter(t => t.isExportTemplate);\r\n this._exportTemplates = exportTemplates;\r\n } else {\r\n this._exportTemplates = Array<Template>();\r\n }\r\n })).toPromise().then();\r\n }\r\n\r\n public getTemplateById(templateId: string): Observable<any> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId).append(\"templateId\", templateId)\r\n };\r\n\r\n return this.http.get<Template>(\"api/import/GetTemplateById\", options).pipe(\r\n map((result: Template) => this.template = result));\r\n }\r\n\r\n public getHeadline(field: string, element: string, system: string, customerId: string): Observable<StringResponse> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"field\", field).\r\n append(\"system\", system).\r\n append(\"element\", element).\r\n append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.get<StringResponse>(\"api/import/GetHeadline\", options) as any;\r\n }\r\n\r\n public canCustomerAddTemplate(customerId: string): Observable<boolean> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n };\r\n\r\n return this.http.get<boolean>(\"api/template/CanCustomerAddTemplate\", options);\r\n }\r\n\r\n public setCurrentTemplate(id: string) {\r\n let index = this._templates.findIndex((template => template.id == id) as any);\r\n\r\n if (index != -1) {\r\n this.template = this._templates[index];\r\n } else {\r\n this.template = null;\r\n }\r\n }\r\n\r\n public setCurrentExportTemplate(id: string) {\r\n let index = -1;\r\n if (this._exportTemplates != null)\r\n index = this._exportTemplates.findIndex((template => template.id == id) as any);\r\n\r\n if (index != -1) {\r\n this.template = this._exportTemplates[index];\r\n } else {\r\n this.template = null;\r\n }\r\n }\r\n\r\n public async addTemplate(template: Template = null): Promise<string> {\r\n if (template == null) {\r\n template = new Template();\r\n template.name = this.translate.instant(\"Neues Template\");\r\n }\r\n template.customerId = this.loginService.currentUser.customerId;\r\n\r\n let id = await this.saveTemplate(template, true);\r\n return id;\r\n }\r\n\r\n public updateTemplate(template: Template) {\r\n //this.sortTemplateItems(template.templateItems); // eig. haben wir das vorher schon erledigt...\r\n template.isUseable = true;\r\n this.saveTemplate(template);\r\n }\r\n\r\n public async saveTemplate(template: Template, reload = false): Promise<string> {\r\n template.lastChange = new Date();\r\n return await this.http.post(\"api/import/SaveTemplate\", template).toPromise().then((result: UrlResponse) => {\r\n if (reload) {\r\n this.getTemplates();\r\n }\r\n return result.url;\r\n });\r\n }\r\n\r\n public async deleteTemplate(template: Template): Promise<void> {\r\n let id = template.id;\r\n this.template = null;\r\n this._templates = this._templates.filter(value => value.id != id);\r\n return await this.http.delete(`api/Import/DeleteTemplate/${id}`).toPromise().then(() => {\r\n this.getTemplates();\r\n });\r\n }\r\n\r\n public startImport() {\r\n if (this.template.isUseable == false) {\r\n // noch nicht nutzbar => nichts zugeordnet\r\n let message = this.translate.instant(\"Es gibt keine Zuordnungen im Template\") + \".\";\r\n this.systemService.notify(new Message(message, \"info\"), 3000);\r\n\r\n return;\r\n }\r\n\r\n this.importTemplateEditorVisible = false;\r\n\r\n //this._template.isUseable = true; // auf keinen fall!! drückt man dann einfach nochmal auf den knopf, greift der check oben nicht mehr!!\r\n //this._template.isExportTemplate = false; // bereits vorher gesetzt, unnötig\r\n let importJobId = this.importJob.id;\r\n this.saveTemplate(this._template).then(() => {\r\n var restartJob = new RestartJob();\r\n restartJob.jobId = importJobId;\r\n this.http.post(\"api/Job/RestartJob\", restartJob).subscribe();\r\n });\r\n }\r\n\r\n // EXPORT\r\n\r\n public createTemplateItems(array: ExcelElement[], isExport: boolean): TemplateItem[] {\r\n let result: TemplateItem[] = [];\r\n\r\n if (!isExport) {\r\n for (let i = array.length - 1; i >= 0; i--) {\r\n let item = array[i];\r\n // 1. verwaiste einträge wegräumen (treten auf, wenn ein item mit default-value durch ein \"richtiges\" item ersetzt wird)\r\n // 2. geleerte (default entfernt) wegräumen\r\n\r\n if (item.title == null && item.pimFields.length == 0) {\r\n array.splice(i, 1);\r\n i = 0;\r\n }\r\n }\r\n this.refresExcelElementhOrder(array);\r\n }\r\n\r\n\r\n\r\n array.forEach((element, index) => {\r\n let item = new TemplateItem();\r\n item.order = index + 1;\r\n item.key = element.title;\r\n item.pimFields = element.pimFields;\r\n item.seperator = element.seperator;\r\n if (item.pimFields.findIndex(x => this.needsStandardSeperator(x.field)) != -1) {\r\n if (item.seperator == null || item.seperator == undefined || item.seperator == \"\") {\r\n item.seperator = \"|\";\r\n }\r\n }\r\n item.defaultValue = element.defaultValue;\r\n item.htmlFilter = false;\r\n\r\n item.previewValues = [];\r\n if (element.row1 != \"\") {\r\n item.previewValues.push(element.row1);\r\n } else {\r\n item.previewValues.push(element.preview);\r\n }\r\n if (element.row2 != \"\") {\r\n item.previewValues.push(element.row2);\r\n }\r\n\r\n item.calculation = element.calculation;\r\n item.numberformat = element.numberformat;\r\n item.mapping = element.mapping;\r\n item.remove = element.remove;\r\n item.isNewEditorVersion = true;\r\n item.addprev = element.addprev;\r\n item.addfoll = element.addfoll;\r\n\r\n result.push(item);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n public hasTemplateItem(array: TemplateItem[], field: string, system: string, element: string): boolean {\r\n let found = array.find(i => i.pimFields != undefined && i.pimFields.findIndex(x => x.field == field && x.systemKey == system && x.elementKey == element) != -1);\r\n if (found != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n public refreshTemplateItemOrder(array: TemplateItem[]) {\r\n let i = 1;\r\n array.forEach(element => {\r\n element.order = i;\r\n i++;\r\n });\r\n }\r\n\r\n public createExcelElements(array: TemplateItem[], isusable: boolean): ExcelElement[] {\r\n let result: ExcelElement[] = [];\r\n\r\n array.forEach(item => {\r\n let element = new ExcelElement();\r\n\r\n element.id = item.order?.toString();\r\n element.title = item.key;\r\n\r\n element.row1 = \"\";\r\n element.row2 = \"\";\r\n if (item.previewValues == null) {\r\n item.previewValues = [];\r\n }\r\n let tmp = item.previewValues[0];\r\n if (tmp != null) {\r\n element.row1 = tmp;\r\n } else {\r\n element.row1 = \"[\" + element.title + \"]\";\r\n }\r\n tmp = item.previewValues[1];\r\n if (tmp != null) {\r\n element.row2 = tmp;\r\n }\r\n\r\n element.calculation = item.calculation;\r\n element.numberformat = item.numberformat;\r\n element.seperator = item.seperator;\r\n element.mapping = item.mapping;\r\n element.remove = item.remove;\r\n\r\n if (!isusable) {\r\n // item wurde evtl. als Auto-Template-Item mittels GetTemplateList() neu erstellt und wird zum ersten\r\n // aus der Job-Liste geöffnet. Diese müssen wir alle entfernen, da sie evtl. nicht bemerkt werden und\r\n // so falsche bzw. unerwartete Ergebnisse produzieren könnten.\r\n element.calculation = \"\";\r\n element.numberformat = \"\";\r\n element.seperator = \"\";\r\n element.mapping = \"\";\r\n element.remove = \"\";\r\n }\r\n\r\n if (item.pimFields != undefined) {\r\n element.pimFields = item.pimFields;\r\n element.addprev = item.addprev;\r\n element.addfoll = item.addfoll;\r\n element.defaultValue = item.defaultValue;\r\n\r\n //element.productId = this.createIdentifier(field.field, field.system, field.element);\r\n\r\n element.preview = element.row1;\r\n result.push(element);\r\n }\r\n\r\n });\r\n\r\n return result;\r\n }\r\n\r\n public hasExcelElement(array: ExcelElement[], field: string, system: string, element: string): boolean {\r\n let found = array.find(i => i.pimFields.some(x => x.field == field && x.systemKey == system && x.elementKey == element));\r\n if (found != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getExcelElement(array: ExcelElement[], field: string, system: string, element: string): ExcelElement {\r\n return array.find(i => i.pimFields.some(x => x.field == field && x.systemKey == system && x.elementKey == element));\r\n }\r\n\r\n public refresExcelElementhOrder(array: ExcelElement[]) {\r\n let i = 1;\r\n array.forEach(element => {\r\n element.id = i.toString();\r\n i++;\r\n });\r\n }\r\n\r\n\r\n\r\n public setPreviewRow1Row2(excelElement: ExcelElement, preview: string, row1: string, row2: string) {\r\n excelElement.preview = preview;\r\n excelElement.row1 = row1;\r\n excelElement.row2 = row2;\r\n }\r\n\r\n public setOptions(excelElement: ExcelElement, defaultValue: string, calculation: string, numberformat: string, remove: string, seperator: string) {\r\n excelElement.defaultValue = defaultValue;\r\n\r\n excelElement.calculation = calculation;\r\n excelElement.numberformat = numberformat;\r\n excelElement.remove = remove;\r\n\r\n excelElement.seperator = seperator;\r\n }\r\n\r\n public clearPreviewRow1Row2(excelElement: ExcelElement) {\r\n this.setPreviewRow1Row2(excelElement, \"\", \"\", \"\");\r\n }\r\n\r\n public clearOptions(excelElement: ExcelElement) {\r\n this.setOptions(excelElement, \"\", \"\", \"\", \"\", \"\");\r\n }\r\n\r\n\r\n\r\n public createIdentifiers(fields: NextPimField[]): string[] {\r\n if (fields == undefined)\r\n return [];\r\n\r\n return fields.map(x => {\r\n if (x.field != null && x.field != \"\") {\r\n let result = x.field;\r\n if (HasSystemKey(x)) {\r\n result += \"_\" + x.systemKey;\r\n if (HasElementKey(x)) {\r\n result += \"_\" + x.elementKey;\r\n }\r\n }\r\n return result;\r\n } else {\r\n return \"\";\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n public createGroupString(array: ExcelElement[]): string {\r\n let standard = this.txtGroupString;\r\n\r\n if (this.hasExcelElement(array, this.fieldNames.group, \"-1\", \"-1\")) {\r\n var element = this.getExcelElement(array, this.fieldNames.group, \"-1\", \"-1\");\r\n return standard.split(\"|\").join(element.seperator);\r\n } else {\r\n return standard;\r\n }\r\n }\r\n\r\n public needsStandardSeperator(field: string): boolean {\r\n if (field == this.fieldNames.keywords || field == this.fieldNames.status || field == this.fieldNames.group || field == this.fieldNames.fValue) { // weitere felder??\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n public syncTemplateItems(source: TemplateItem[], target: TemplateItem[], keepDefaultValues: boolean): TemplateItem[] {\r\n // Jedes Item in Target pauschal platt machen.\r\n // Dann mit einem evtl. gefundenen Item aus Source überschreiben.\r\n\r\n let result = new Array<TemplateItem>();\r\n\r\n target.forEach(item => {\r\n this.clearTemplateItem(item);\r\n\r\n let found = source.filter(s => s.key == item.key)[0];\r\n if (found) {\r\n this.copyTemplateItem(found, item);\r\n }\r\n\r\n if (item.key != null) {\r\n result.push(item);\r\n }\r\n });\r\n\r\n if (keepDefaultValues) {\r\n let order = result.length;\r\n\r\n // Default Values haben KEINEN KEY\r\n let defaultValues = source.filter(s => s.key == null);\r\n\r\n defaultValues.forEach(item => {\r\n order++;\r\n\r\n let newItem = new TemplateItem();\r\n\r\n this.copyTemplateItem(item, newItem);\r\n newItem.order = order;\r\n\r\n result.push(newItem);\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public calcSimilarityRatio(source: TemplateItem[], target: TemplateItem[]): number {\r\n\r\n // default values ausfiltern\r\n let tmpSource = source.filter(s => s.key != null);\r\n let tmpTarget = target.filter(s => s.key != null);\r\n\r\n let countSource = 0;\r\n let countTarget = tmpTarget.length;\r\n\r\n tmpTarget.forEach(item => {\r\n let found = tmpSource.filter(s => s.key == item.key)[0];\r\n if (found) {\r\n countSource++;\r\n }\r\n });\r\n\r\n return countSource / countTarget * 100;\r\n }\r\n\r\n public copyTemplateItem(source: TemplateItem, target: TemplateItem) {\r\n target.pimFields = source.pimFields;\r\n target.seperator = source.seperator;\r\n target.unit = source.unit;\r\n target.defaultValue = source.defaultValue;\r\n target.htmlFilter = source.htmlFilter;\r\n target.catName = source.catName;\r\n target.name = source.name;\r\n target.calculation = source.calculation;\r\n target.numberformat = source.numberformat;\r\n target.remove = source.remove;\r\n target.isNewEditorVersion = source.isNewEditorVersion;\r\n }\r\n\r\n public clearTemplateItem(templateItem: TemplateItem) {\r\n templateItem.pimFields = [];\r\n templateItem.seperator = \"\";\r\n templateItem.unit = null;\r\n templateItem.defaultValue = \"\";\r\n templateItem.htmlFilter = false;\r\n templateItem.catName = null;\r\n templateItem.name = null;\r\n templateItem.calculation = null;\r\n templateItem.numberformat = null;\r\n templateItem.remove = null;\r\n templateItem.isNewEditorVersion = false;\r\n }\r\n\r\n\r\n\r\n public async setValueOnProduct(model: Product, convert: boolean, isExport: boolean, excelElement: ExcelElement, field: string, system: string, element: string, value: string,\r\n excelModel: ExcelElement[],\r\n split: string = \"|\",\r\n check: boolean = true) {\r\n switch (field) {\r\n case this.fieldNames.supplierPid:\r\n model.supplierPid = value;\r\n break;\r\n case this.fieldNames.supplierAltPid:\r\n model.supplierAltAid = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.descriptionShort:\r\n model.descriptionShort = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.descriptionLong:\r\n model.descriptionLong = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.manufacturerTypeDescription:\r\n model.manufacturerTypeDescr = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.internatonalPid:\r\n model.internationalPid = value;\r\n break;\r\n case this.fieldNames.internatonalPidType:\r\n model.internationalPidType = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.remarks:\r\n model.remarks = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.manufacturerPID:\r\n model.manufacturerAid = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.manufacturerName:\r\n model.manufacturerName = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.keywords:\r\n if (value == null || value == undefined || value == \"\") {\r\n model.keywords = [];\r\n } else {\r\n model.keywords = value.split(split);\r\n }\r\n break;\r\n case this.fieldNames.productOrder:\r\n model.productOrder = this.getNumber(value);\r\n break;\r\n case this.fieldNames.edeNumber1:\r\n model.edeNumber1 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.edeNumber2:\r\n model.edeNumber2 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.edeNumber3:\r\n model.edeNumber3 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.edeNumber4:\r\n model.edeNumber4 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.edeNumber5:\r\n model.edeNumber5 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.erpGroupBuyer:\r\n model.erpGroupBuyer = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.erpGroupSupplier:\r\n model.erpGroupSupplier = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.buyerAid:\r\n model.buyerAid = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.isDiscontinued:\r\n model.isDiscontinued = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.discontinuedDate:\r\n model.discontinuedDate = this.getDate(value);\r\n break;\r\n case this.fieldNames.status:\r\n if (value == null || value == undefined || value == \"\") {\r\n model.states = [];\r\n } else {\r\n model.states = value.split(split);\r\n }\r\n break;\r\n\r\n case this.fieldNames.deliveryTime:\r\n model.orderDetail.deliveryTime = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.orderUnit:\r\n model.orderDetail.orderUnit = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.contentUnit:\r\n model.orderDetail.contentUnit = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.noCuPerOu:\r\n model.orderDetail.noCuPerOu = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.priceQuantity:\r\n model.orderDetail.priceQuantity = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.quantityMin:\r\n model.orderDetail.quantityMin = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.quantityMax:\r\n model.orderDetail.quantityMax = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.quanityInterval:\r\n model.orderDetail.quantityInterval = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.contentQuantity:\r\n model.orderDetail.contentQuantity = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.contentPackage:\r\n model.orderDetail.contentPackage = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.basicQuantity:\r\n model.orderDetail.basicQuantity = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.hasBasicPriceDuty:\r\n model.orderDetail.hasBasicPriceDuty = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isBulkyGood:\r\n model.orderDetail.isBulkyGood = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isTruckageCompanyGood:\r\n model.orderDetail.isTruckageCompanyGood = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.costOfLivingAdjustment:\r\n model.orderDetail.costOfLivingAdjustment = this.getNumber(value);\r\n break;\r\n case this.fieldNames.alloySurcharge:\r\n model.orderDetail.alloySurcharge = this.getNumber(value);\r\n break;\r\n case this.fieldNames.isDurabilityProduct:\r\n model.orderDetail.isDurabilityProduct = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.durabilityDays:\r\n model.orderDetail.durabilityDays = this.getNumber(value);\r\n break;\r\n\r\n case this.fieldNames.customsNumber:\r\n model.productLogistic.customsNumber = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.countryOfOrgin:\r\n model.productLogistic.countryOfOrigin = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.weight:\r\n model.productLogistic.weight = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.lenght:\r\n model.productLogistic.length = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.width:\r\n model.productLogistic.width = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.depth:\r\n model.productLogistic.depth = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.metaDescription:\r\n model.metaDescription = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.metaTitel:\r\n model.metaTitel = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.isBiocidalProduct:\r\n model.legalCharacteristic.isBiocidalProduct = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isSelfServiceForbidden:\r\n model.legalCharacteristic.isSelfServiceForbidden = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isFertigpackv:\r\n model.legalCharacteristic.isFertigpackv = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isOekodesignEvpg:\r\n model.legalCharacteristic.isOekodesignEvpgEnvkg = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isCommoditiesControll:\r\n model.legalCharacteristic.isCommoditiesControll = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isDetergenzienv:\r\n model.legalCharacteristic.isDetergenzienv = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isKosmetikv:\r\n model.legalCharacteristic.isKosmetikv = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isCeGs:\r\n model.legalCharacteristic.isCeGs = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isWeeeRohsEar:\r\n model.legalCharacteristic.isWeeeRohsEar = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isReach:\r\n model.legalCharacteristic.isReach = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isVerpackungsv:\r\n model.legalCharacteristic.isVerpackungsv = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isSecurityDatasheetNeeded:\r\n model.legalCharacteristic.isSecurityDatasheetNeeded = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isDualUse:\r\n model.legalCharacteristic.isDualUse = this.getNullableBool(value);\r\n break;\r\n case this.fieldNames.isBatterieV:\r\n model.legalCharacteristic.isBatterieV = this.getNullableBool(value);\r\n break;\r\n\r\n case this.fieldNames.group:\r\n model.groupString = this.txtGroupString.split(\"|\").join(split);\r\n break;\r\n case this.fieldNames.master:\r\n model.master = value;\r\n break;\r\n\r\n\r\n\r\n case this.fieldNames.hazmatClass:\r\n var hazmatClass = this.hazmatClassService.hazmatClasses.filter(h => h.number == value).shift();\r\n if (hazmatClass != undefined) {\r\n model.productLogistic.hazardousMaterialClassId = hazmatClass.id;\r\n }\r\n break;\r\n case this.fieldNames.warrantyClass:\r\n var warrantyClass = this.warrantyClassService.warrantyClasses.filter(w => w.number == value).shift();\r\n if (warrantyClass != undefined) {\r\n model.productLogistic.warrantyClassId = warrantyClass.id;\r\n }\r\n break;\r\n\r\n case this.fieldNames.line1:\r\n this.productService.createWawiIfNeeded(model, this.loginService.wawiSettings);\r\n model.wawi.line1 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.line2:\r\n this.productService.createWawiIfNeeded(model, this.loginService.wawiSettings);\r\n model.wawi.line2 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.line3:\r\n this.productService.createWawiIfNeeded(model, this.loginService.wawiSettings);\r\n model.wawi.line3 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.line4:\r\n this.productService.createWawiIfNeeded(model, this.loginService.wawiSettings);\r\n model.wawi.line4 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.customField:\r\n this.productService.createWawiIfNeeded(model, this.loginService.wawiSettings);\r\n var customField = model.wawi.customFields.filter(f => f.order?.toString() == system).shift();\r\n var settingsField = this.loginService.wawiSettings.customFields.filter(f => f.order?.toString() == system).shift();\r\n if (settingsField && customField) {\r\n switch (settingsField.fieldType) {\r\n case \"String\":\r\n customField.stringValue = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case \"Number\":\r\n customField.numberValue = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case \"Boolean\":\r\n customField.boolValue = this.getNullableBool(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n default:\r\n }\r\n }\r\n break;\r\n\r\n\r\n case this.fieldNames.mimeType:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().mimeType = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimeSource:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().mimeSource = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimeDescription:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().mimeDescr = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimeAlt:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().mimeAlt = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimePurpose:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().mimePurpose = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimeLinkSizeNorm:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().normUri = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.mimeExcludeFromShopware6:\r\n if (check) {\r\n this.createMimeIfNeeded(model, system);\r\n }\r\n model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift().excludeFromShopware6 = this.getNullableBool(value);\r\n break;\r\n\r\n case this.fieldNames.supplierId:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().supplierId = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierName:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().supplierName = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierDiscountGroupCode:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().discountGroupCode = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierPricingUnitCode:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().pricingUnitCode = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierPriceAllocationUnitCodeOriginal:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().originalPriceAllocationUnitCode = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierPriceAllocationUnitCode:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().priceAllocationUnitCode = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.mainSupplierId:\r\n model.mainSupplierId = value;\r\n break;\r\n\r\n case this.fieldNames.pid:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().pid = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierInternationalId:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().internationalId = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.supplierInternationalIdType:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().internationalIdType = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierProductDescription:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().supplierProductDescription = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.supplierProductDescriptionShort:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().supplierProductDescriptionShort = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.supplierDeliveryTime:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().deliveryTime = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.supplierPrice:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().price = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.supplierValidFrom:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().validFrom = this.getDate(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.supplierValidUntil:\r\n if (check) {\r\n this.createSupplierIfNeeded(model, system);\r\n }\r\n model.suppliers.filter(supplier => supplier.order?.toString() == system).shift().validUntil = this.getDate(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n\r\n case this.fieldNames.packingUnitCode:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().packingUnitCode = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.packingUnitDescr:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().packingUnitDescr = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n case this.fieldNames.packingUnitQuantityMax:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().quantityMax = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.packingUnitQuantityMin:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().quantityMin = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.packingUnitAmountContentUnit:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().amountContentUnit = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n case this.fieldNames.packingUnitAmountSmallerUnit:\r\n if (check)\r\n this.createPackingUnitIfNeeded(model, system)\r\n\r\n model.orderDetail.packingUnits.filter(x => x.order?.toString() == system).shift().amountSmallerUnit = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n\r\n case this.fieldNames.featureSystemName:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n featureSystem.referenceFeatureSystemName = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.featureSystemGroupId:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n featureSystem.referenceFeatureGroupId = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.featureSystemGroupId2:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n featureSystem.referenceFeatureGroupId2 = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.featureSystemGroupName:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n featureSystem.referenceFeatureGroupName = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.featureSystemOrder:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var forder = Number(await this.convertValue(excelElement, convert, value, isExport));\r\n if (forder > 0) {\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n featureSystem.order = forder;\r\n }\r\n break;\r\n\r\n case this.fieldNames.fName:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.name = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.fOrder:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n\r\n var forder = Number(await this.convertValue(excelElement, convert, value, isExport));\r\n if (forder > 0) {\r\n feature.forder = forder;\r\n }\r\n\r\n case this.fieldNames.fValue:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n\r\n // eig. ändert sich feature.featureValues nie??\r\n // entweder es kommt immer gleich aus der excel\r\n // oder immer gleich aus dem produkt\r\n\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n\r\n if (value == null || value == undefined || value == \"\") {\r\n feature.featureValues = [];\r\n } else {\r\n feature.featureValues = [];\r\n\r\n var items = value.split(split);\r\n\r\n feature.value = await this.convertValue(excelElement, convert, items[0], isExport);//items[0];\r\n\r\n if (items.length > 1) {\r\n let count = 0;\r\n for (let item of items) {\r\n if (count > 0) { // zuweisung feature.value erstellt bereits das item mit order 1!!\r\n let featureValue = new FeatureValue();\r\n featureValue.order = count + 1;\r\n featureValue.value = await this.convertValue(excelElement, convert, item, isExport);//item;\r\n feature.featureValues.push(featureValue);\r\n }\r\n count++;\r\n };\r\n }\r\n }\r\n break;\r\n\r\n case this.fieldNames.fUnit:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.funit = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.fDescription:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.fDescr = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.isVariant:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.isVariant = this.getNullableBool(value);\r\n break;\r\n\r\n case this.fieldNames.fValueDetails:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.fValueDetails = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.featurePrintOrder:\r\n if (check) {\r\n this.createSystemAndFeatureIfNeeded(model, system, element);\r\n }\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n feature.printOrder = this.getNumber(await this.convertValue(excelElement, convert, value, isExport));\r\n break;\r\n\r\n\r\n\r\n case this.fieldNames.startDate:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n priceList.start = this.getDate(value);\r\n break;\r\n\r\n case this.fieldNames.endDate:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n priceList.end = this.getDate(value);\r\n break;\r\n\r\n case this.fieldNames.isDailyPrice:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n priceList.isDailyPrice = this.getNullableBool(value);\r\n break;\r\n\r\n\r\n\r\n case this.fieldNames.priceType:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.priceType = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.priceAmount:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.priceAmount = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.priceFactor:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.priceFactor = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.priceCurrency:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.priceCurrency = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.lowerBound:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.lowerBound = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.tax:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.tax = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n case this.fieldNames.territory:\r\n if (check) {\r\n this.createListAndPriceIfNeeded(model, system, element);\r\n }\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n price.territory = await this.convertValue(excelElement, convert, value, isExport);\r\n break;\r\n\r\n\r\n\r\n case this.fieldNames.productReferencesType:\r\n if (check) {\r\n this.createReferenceIfNeeded(model, system);\r\n }\r\n var reference = model.references.filter(reference => reference.order?.toString() == system).shift();\r\n reference.type = value;\r\n break;\r\n\r\n case this.fieldNames.productReferencesSpid:\r\n if (check) {\r\n this.createReferenceIfNeeded(model, system);\r\n }\r\n var reference = model.references.filter(reference => reference.order?.toString() == system).shift();\r\n reference.artIdTo = value;\r\n break;\r\n\r\n\r\n\r\n case this.fieldNames.udxCategory:\r\n if (check) {\r\n this.createUdxIfNeeded(model, system);\r\n }\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n udx.category = value;\r\n break;\r\n\r\n case this.fieldNames.udxName:\r\n if (check) {\r\n this.createUdxIfNeeded(model, system);\r\n }\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n udx.name = value;\r\n\r\n break;\r\n\r\n case this.fieldNames.udxValue:\r\n if (check) {\r\n this.createUdxIfNeeded(model, system);\r\n }\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n udx.value = value;\r\n break;\r\n\r\n\r\n\r\n // diese machen wir alle anders:\r\n //case \"FEATURESYSTEMTABLE\":\r\n //case \"FEATURESYSTEMLIST\":\r\n //case \"FEATURELIST\":\r\n //case \"DESCWITHOUTHTML\":\r\n }\r\n\r\n if (field.startsWith('ELECTRONIC_SALES_')) {\r\n // bool values\r\n if (this.fieldNames.electronicSalesBoolMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesBoolMapping.get(field);\r\n const val = this.getNullableBool(value);\r\n safeSetToModel(model.electronicSales, key, val);\r\n }\r\n\r\n // number values\r\n if (this.fieldNames.electronicSalesNumberMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesNumberMapping.get(field);\r\n const val = this.getNumber(value);\r\n safeSetToModel(model.electronicSales, key, val);\r\n }\r\n\r\n // date values\r\n if (field === this.fieldNames.electronicSalesDateCreated) {\r\n if (value !== \"\") {\r\n model.electronicSales.dateCreated = this.getDate(value);\r\n } else {\r\n model.electronicSales.dateCreated = null;\r\n }\r\n }\r\n\r\n // string values\r\n if (this.fieldNames.electronicSalesStringMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesStringMapping.get(field);\r\n const resultFn = () => this.convertValue(excelElement, convert, value, isExport);\r\n await safeAsyncSetToModel(model.electronicSales, key, resultFn);\r\n }\r\n }\r\n }\r\n\r\n public async getValueFromProduct(model: Product, convert: boolean, isExport: boolean, excelElement: ExcelElement, field: string, system: string, element: string, join: string = \"|\"): Promise<string> {\r\n switch (field) {\r\n case this.fieldNames.supplierPid:\r\n return model.supplierPid;\r\n case this.fieldNames.supplierAltPid:\r\n var value = model.supplierAltAid;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.descriptionShort:\r\n var value = model.descriptionShort;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.descriptionLong:\r\n var value = model.descriptionLong;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.manufacturerTypeDescription:\r\n var value = model.manufacturerTypeDescr;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.internatonalPid:\r\n return model.internationalPid;\r\n case this.fieldNames.internatonalPidType:\r\n var value = model.internationalPidType;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.remarks:\r\n var value = model.remarks;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.manufacturerPID:\r\n var value = model.manufacturerAid;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.manufacturerName:\r\n var value = model.manufacturerName;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.keywords:\r\n return model.keywords.join(join);\r\n case this.fieldNames.productOrder:\r\n return this.getStringFromNumber(model.productOrder);\r\n case this.fieldNames.edeNumber1:\r\n var value = model.edeNumber1;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.edeNumber2:\r\n var value = model.edeNumber2;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.edeNumber3:\r\n var value = model.edeNumber3;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.edeNumber4:\r\n var value = model.edeNumber4;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.edeNumber5:\r\n var value = model.edeNumber5;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.erpGroupBuyer:\r\n var value = model.erpGroupBuyer;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.erpGroupSupplier:\r\n var value = model.erpGroupSupplier;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.buyerAid:\r\n var value = model.buyerAid;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.isDiscontinued:\r\n return this.getStringFromNullableBool(model.isDiscontinued);\r\n case this.fieldNames.discontinuedDate:\r\n return this.getStringFromDate(model.discontinuedDate);\r\n case this.fieldNames.status:\r\n return model.states.join(join);\r\n\r\n case this.fieldNames.deliveryTime:\r\n var value = model.orderDetail.deliveryTime;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.orderUnit:\r\n var value = model.orderDetail.orderUnit;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.contentUnit:\r\n var value = model.orderDetail.contentUnit;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.noCuPerOu:\r\n var value = model.orderDetail.noCuPerOu;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.priceQuantity:\r\n var value = model.orderDetail.priceQuantity;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.quantityMin:\r\n var value = model.orderDetail.quantityMin;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.quantityMax:\r\n var value = model.orderDetail.quantityMax;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.quanityInterval:\r\n var value = model.orderDetail.quantityInterval;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.contentQuantity:\r\n var value = model.orderDetail.contentQuantity;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.contentPackage:\r\n var value = model.orderDetail.contentPackage;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.basicQuantity:\r\n var value = model.orderDetail.basicQuantity;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.hasBasicPriceDuty:\r\n return this.getStringFromNullableBool(model.orderDetail.hasBasicPriceDuty);\r\n case this.fieldNames.isBulkyGood:\r\n return this.getStringFromNullableBool(model.orderDetail.isBulkyGood);\r\n case this.fieldNames.isTruckageCompanyGood:\r\n return this.getStringFromNullableBool(model.orderDetail.isTruckageCompanyGood);\r\n case this.fieldNames.costOfLivingAdjustment:\r\n return this.getStringFromNumber(model.orderDetail.costOfLivingAdjustment);\r\n case this.fieldNames.alloySurcharge:\r\n return this.getStringFromNumber(model.orderDetail.alloySurcharge);\r\n case this.fieldNames.isDurabilityProduct:\r\n return this.getStringFromNullableBool(model.orderDetail.isDurabilityProduct);\r\n case this.fieldNames.durabilityDays:\r\n return this.getStringFromNumber(model.orderDetail.durabilityDays);\r\n\r\n case this.fieldNames.customsNumber:\r\n var value = model.productLogistic.customsNumber;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.countryOfOrgin:\r\n var value = model.productLogistic.countryOfOrigin;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.weight:\r\n var value = model.productLogistic.weight;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.lenght:\r\n var value = model.productLogistic.length;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.width:\r\n var value = model.productLogistic.width;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.depth:\r\n var value = model.productLogistic.depth;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.metaDescription:\r\n var value = model.metaDescription;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.metaTitel:\r\n var value = model.metaTitel;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.isBiocidalProduct:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isBiocidalProduct);\r\n case this.fieldNames.isSelfServiceForbidden:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isSelfServiceForbidden);\r\n case this.fieldNames.isFertigpackv:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isFertigpackv);\r\n case this.fieldNames.isOekodesignEvpg:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isOekodesignEvpgEnvkg);\r\n case this.fieldNames.isCommoditiesControll:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isCommoditiesControll);\r\n case this.fieldNames.isDetergenzienv:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isDetergenzienv);\r\n case this.fieldNames.isKosmetikv:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isKosmetikv);\r\n case this.fieldNames.isCeGs:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isCeGs);\r\n case this.fieldNames.isWeeeRohsEar:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isWeeeRohsEar);\r\n case this.fieldNames.isReach:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isReach);\r\n case this.fieldNames.isVerpackungsv:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isVerpackungsv);\r\n case this.fieldNames.isSecurityDatasheetNeeded:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isSecurityDatasheetNeeded);\r\n case this.fieldNames.isDualUse:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isDualUse);\r\n case this.fieldNames.isBatterieV:\r\n return this.getStringFromNullableBool(model.legalCharacteristic.isBatterieV);\r\n\r\n\r\n\r\n case this.fieldNames.group:\r\n return this.txtGroupString.split(\"|\").join(join);\r\n case this.fieldNames.master:\r\n return model.master;\r\n\r\n\r\n\r\n case this.fieldNames.hazmatClass:\r\n var hazmatClass = this.hazmatClassService.hazmatClasses.filter(h => h.id == model.productLogistic.hazardousMaterialClassId).shift();\r\n if (hazmatClass == undefined) {\r\n return \"\";\r\n }\r\n return hazmatClass.number.toString(); //\r\n //return model.hazmatClass.name; // ????\r\n case this.fieldNames.warrantyClass:\r\n var warrantyClass = this.warrantyClassService.warrantyClasses.filter(w => w.id == model.productLogistic.warrantyClassId).shift();\r\n if (warrantyClass == undefined) {\r\n return \"\";\r\n }\r\n return warrantyClass.number.toString(); //\r\n //return model.warrantyClass.name; // ????\r\n\r\n case this.fieldNames.line1:\r\n var value = \"\";\r\n if (model.wawi) {\r\n return model.wawi.line1;\r\n }\r\n return value;\r\n case this.fieldNames.line2:\r\n var value = \"\";\r\n if (model.wawi) {\r\n return model.wawi.line2;\r\n }\r\n return value;\r\n case this.fieldNames.line3:\r\n var value = \"\";\r\n if (model.wawi) {\r\n return model.wawi.line3;\r\n }\r\n return value;\r\n case this.fieldNames.line4:\r\n var value = \"\";\r\n if (model.wawi) {\r\n return model.wawi.line4;\r\n }\r\n return value;\r\n case this.fieldNames.customField:\r\n var value = \"\";\r\n if (!model.wawi) {\r\n return value;\r\n }\r\n var customField = model.wawi.customFields.filter(f => f.order?.toString() == system).shift();\r\n var settingsField = this.loginService.wawiSettings.customFields.filter(f => f.order?.toString() == system).shift();\r\n if (settingsField && customField) {\r\n switch (settingsField.fieldType) {\r\n case \"String\":\r\n return customField.stringValue;\r\n case \"Mapping\":\r\n if (customField.listId) {\r\n var wawiListPromise = this.wawiListService.getList(customField.listId, this.loginService.currentCustomer.id).toPromise();\r\n return (await wawiListPromise).listName;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n case \"List\":\r\n var elementValuePromise = this.wawiListService.getElementValue(customField.listId, this.loginService.currentCustomer.id, customField.elementId).toPromise();\r\n return (await elementValuePromise);\r\n case \"Number\":\r\n return this.getStringFromNumber(customField.numberValue);\r\n case \"Boolean\":\r\n return this.getStringFromNullableBool(customField.boolValue);\r\n default:\r\n }\r\n\r\n }\r\n\r\n\r\n return value;\r\n\r\n\r\n case this.fieldNames.mimeType:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.mimeType;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimeSource:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.mimeSource;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimeDescription:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.mimeDescr;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimeAlt:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.mimeAlt;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimePurpose:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.mimePurpose;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimeLinkSizeNorm:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = mime.normUri;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mimeExcludeFromShopware6:\r\n var mime = model.mimes.filter(mime => mime.mimeOrder?.toString() == system).shift();\r\n if (mime == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNullableBool(mime.excludeFromShopware6);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.mainSupplierId:\r\n return model.mainSupplierId;\r\n\r\n case this.fieldNames.supplierId:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.supplierId;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierName:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.supplierName;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierDiscountGroupCode:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.discountGroupCode;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierPricingUnitCode:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.pricingUnitCode;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierPriceAllocationUnitCode:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.priceAllocationUnitCode;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierPriceAllocationUnitCodeOriginal:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.originalPriceAllocationUnitCode;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.pid:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.pid;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierInternationalId:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(supplier.internationalId);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierInternationalIdType:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.internationalIdType;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierProductDescription:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.supplierProductDescription;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.supplierProductDescriptionShort:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.supplierProductDescriptionShort;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierDeliveryTime:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(supplier.deliveryTime);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierPrice:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(supplier.price);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierValidFrom:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromDate(supplier.validFrom);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierValidUntil:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromDate(supplier.validUntil);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierContentUnitCode:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.contentUnitCode;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierPackingAmount:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.packingAmount;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierOrderIntervall:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.orderIntervall;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierMinOrderAmount:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = supplier.minOrderAmount;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierDiscontinuedProduct:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNullableBool(supplier.discontinuedProduct);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.supplierDiscontinuedDate:\r\n var supplier = model.suppliers.filter(supplier => supplier.order?.toString() == system).shift();\r\n if (supplier == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromDate(supplier.discontinuedDate);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.packingUnitCode:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = packingUnit.packingUnitCode;\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n case this.fieldNames.packingUnitDescr:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = packingUnit.packingUnitDescr;\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n case this.fieldNames.packingUnitQuantityMax:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(packingUnit.quantityMax);\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n case this.fieldNames.packingUnitQuantityMin:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(packingUnit.quantityMin);\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n case this.fieldNames.packingUnitAmountContentUnit:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(packingUnit.amountContentUnit);\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n case this.fieldNames.packingUnitAmountSmallerUnit:\r\n var packingUnit = model.orderDetail.packingUnits.filter(packingUnit => packingUnit.order?.toString() == system).shift();\r\n if (packingUnit == null) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(packingUnit.amountSmallerUnit);\r\n return await this.convertValue(excelElement, convert, value, isExport);\r\n\r\n case this.fieldNames.featureSystemName:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return undefined;\r\n }\r\n var value = featureSystem.referenceFeatureSystemName;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.featureSystemGroupId:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var value = featureSystem.referenceFeatureGroupId;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.featureSystemGroupId2:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var value = featureSystem.referenceFeatureGroupId2;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.featureSystemGroupName:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var value = featureSystem.referenceFeatureGroupName;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.featureSystemOrder:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var orderValue = featureSystem.order;\r\n value = await this.convertValue(excelElement, convert, orderValue.toString(), isExport);\r\n return value;\r\n\r\n case this.fieldNames.fName:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return undefined;\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return undefined;\r\n }\r\n var value = feature.name;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n case this.fieldNames.fOrder:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n var orderValue = feature.forder;\r\n value = await this.convertValue(excelElement, convert, orderValue.toString(), isExport);\r\n return value;\r\n\r\n case this.fieldNames.fValue:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n\r\n if (feature.featureValues == null || feature.featureValues == undefined || feature.featureValues.length == 0) {\r\n if (feature.value != \"\") {\r\n var value = feature.value;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n }\r\n return \"\";\r\n }\r\n\r\n let result = \"\";\r\n\r\n let count = 0;\r\n for (let item of feature.featureValues) {\r\n if (count == 0) {\r\n result = await this.convertValue(excelElement, convert, item.value, isExport);\r\n } else {\r\n result = result + join + await this.convertValue(excelElement, convert, item.value, isExport);\r\n }\r\n count++;\r\n };\r\n return result;\r\n\r\n case this.fieldNames.fUnit:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return undefined;\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return undefined;\r\n }\r\n var value = feature.funit;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.fDescription:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n var value = feature.fDescr;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.isVariant:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNullableBool(feature.isVariant);\r\n return value;\r\n\r\n case this.fieldNames.fValueDetails:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n var value = feature.fValueDetails;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.featurePrintOrder:\r\n var featureSystem = this.getRelevantFeatureSystem(model, system);\r\n if (!featureSystem) {\r\n return \"\";\r\n }\r\n var feature = this.getRelevantFeature(featureSystem, element);\r\n if (!feature) {\r\n return \"\";\r\n }\r\n var value = this.getStringFromNumber(feature.printOrder);\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n\r\n\r\n case this.fieldNames.startDate:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n return this.getStringFromDate(priceList.start);\r\n\r\n case this.fieldNames.endDate:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n return this.getStringFromDate(priceList.end);\r\n\r\n case this.fieldNames.isDailyPrice:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n return this.getStringFromNullableBool(priceList.isDailyPrice);\r\n\r\n\r\n\r\n case this.fieldNames.priceType:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.priceType;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.priceAmount:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.priceAmount;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.priceFactor:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.priceFactor;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.priceCurrency:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price.order?.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.priceCurrency;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.lowerBound:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price?.order.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.lowerBound;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.tax:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price?.order.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.tax;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.territory:\r\n var priceList = model.priceLists.filter(list => list.priceListOrder?.toString() == system).shift();\r\n if (priceList == null) {\r\n return \"\";\r\n }\r\n var price = priceList.productPriceDetails.filter(price => price?.order.toString() == element).shift();\r\n if (price == null) {\r\n return \"\";\r\n }\r\n var value = price.territory;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n\r\n\r\n case this.fieldNames.productReferencesType:\r\n var reference = model.references.filter(reference => reference?.toString() == system).shift();\r\n if (reference == null) {\r\n return \"\";\r\n }\r\n return reference.type;\r\n\r\n case this.fieldNames.productReferencesSpid:\r\n var reference = model.references.filter(reference => reference?.toString() == system).shift();\r\n if (reference == null) {\r\n return \"\";\r\n }\r\n return reference.artIdTo;\r\n\r\n\r\n\r\n case this.fieldNames.udxCategory:\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n if (udx == null) {\r\n return \"\";\r\n }\r\n var value = udx.category;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.udxName:\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n if (udx == null) {\r\n return \"\";\r\n }\r\n var value = udx.name;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n case this.fieldNames.udxValue:\r\n var udx = model.udxs.filter(udx => udx.order?.toString() == system).shift();\r\n if (udx == null) {\r\n return \"\";\r\n }\r\n var value = udx.value;\r\n value = await this.convertValue(excelElement, convert, value, isExport);\r\n return value;\r\n\r\n\r\n\r\n // diese machen wir alle anders:\r\n //case \"FEATURESYSTEMTABLE\":\r\n //case \"FEATURESYSTEMLIST\":\r\n //case \"FEATURELIST\":\r\n //case \"DESCWITHOUTHTML\":\r\n\r\n //default:\r\n // return \"TODO...\";\r\n }\r\n\r\n if (field.startsWith('ELECTRONIC_SALES_')) {\r\n // bool values\r\n if (this.fieldNames.electronicSalesBoolMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesBoolMapping.get(field);\r\n const val = safeGetFromModel(model.electronicSales, key);\r\n return this.getStringFromNullableBool(val);\r\n }\r\n\r\n // number values\r\n if (this.fieldNames.electronicSalesNumberMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesNumberMapping.get(field);\r\n const val = safeGetFromModel(model.electronicSales, key);\r\n return this.getStringFromNumber(val);\r\n }\r\n\r\n // date values\r\n if (field === this.fieldNames.electronicSalesDateCreated) {\r\n if (model.electronicSales.dateCreated !== null) {\r\n const date = new Date(model.electronicSales.dateCreated);\r\n return this.getStringFromDate(date);\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n // string values\r\n if (this.fieldNames.electronicSalesStringMapping.has(field)) {\r\n const key = this.fieldNames.electronicSalesStringMapping.get(field);\r\n const resultFn = (val: string) => this.convertValue(excelElement, convert, val, isExport);\r\n return await safeAsyncGetFromModel(model.electronicSales, key, resultFn);\r\n }\r\n }\r\n }\r\n\r\n public async convertValue(excelElement: ExcelElement, convert: boolean, value: string = \"\", isExport: boolean = false): Promise<string> {\r\n if (convert == false)\r\n return value;\r\n\r\n if (value == null || value == undefined || value == \"\")\r\n return value;\r\n\r\n let templateItem = this.template.templateItems.find(i => i.pimFields == excelElement.pimFields);\r\n\r\n if (templateItem == null || templateItem == undefined)\r\n return value;\r\n\r\n return await this.GetConvertedValue(templateItem, value, isExport, this.loginService.currentCustomer.id);\r\n }\r\n\r\n public async GetConvertedValue(templateItem: TemplateItem, value: string, isExport: boolean, customerId: string): Promise<string> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"value\", value).append(\"export\", isExport.toString()).append(\"customerId\", customerId)\r\n }\r\n\r\n return await this.http.post(\"api/import/GetConvertedValue\", templateItem, options).pipe(\r\n map((result: UrlResponse) => {\r\n return result.url;\r\n }\r\n )).toPromise();\r\n }\r\n\r\n\r\n\r\n isValidDate(d: Date): boolean {\r\n let date_regex = /^(0[1-9]|1[0-2])\\/(0[1-9]|1\\d|2\\d|3[01])\\/(19|20)\\d{2}$/;\r\n return d instanceof Date && date_regex.test(d.toString());\r\n }\r\n\r\n\r\n\r\n // aus ImportEngine abgekupfert...\r\n getNullableBool(value: string): boolean {\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n value = value.trim().toLowerCase();\r\n\r\n if (value == \"1\" || value == \"true\" || value == \"yes\" || value == \"ja\") {\r\n return true;\r\n }\r\n\r\n if (value == \"0\" || value == \"false\" || value == \"no\" || value == \"geen\" || value == \"nein\") {\r\n return false;\r\n }\r\n\r\n if (value.length > 0) {\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getStringFromNullableBool(value: boolean): string {\r\n if (value === null || value === undefined) {\r\n return \"\";\r\n }\r\n\r\n return value.toString();\r\n }\r\n\r\n getDate(value: string): Date {\r\n // 0123456789\r\n // 0000 55 88\r\n // 2020-12-31\r\n let date = new Date(\r\n parseInt(value.substr(0, 4)),\r\n parseInt(value.substr(5, 2)) - 1, // 0 based...\r\n parseInt(value.substr(8, 2))\r\n );\r\n\r\n // https://stackoverflow.com/a/12372720\r\n if (date.getTime() === date.getTime()) {\r\n return date;\r\n }\r\n\r\n // 0123456789\r\n // 00 33 6666\r\n // 13.12.2020\r\n date = new Date(\r\n parseInt(value.substr(6, 4)),\r\n parseInt(value.substr(3, 2)) - 1, // 0 based...\r\n parseInt(value.substr(0, 2))\r\n );\r\n\r\n // https://stackoverflow.com/a/12372720\r\n if (date.getTime() === date.getTime()) {\r\n return date;\r\n }\r\n\r\n date = new Date(); // jetzt\r\n date = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\r\n return date;\r\n }\r\n\r\n getStringFromDate(value: Date): string {\r\n if (value === null || value === undefined) {\r\n let date = new Date(); // jetzt\r\n let result = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, \"0\")}-${date.getDate().toString().padStart(2, \"0\")}`;\r\n return result;\r\n }\r\n\r\n let date = new Date(value);\r\n let result = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, \"0\")}-${date.getDate().toString().padStart(2, \"0\")}`;\r\n\r\n if (result == \"1-01-01\") {\r\n let date = new Date(); // jetzt\r\n result = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, \"0\")}-${date.getDate().toString().padStart(2, \"0\")}`;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getNumber(value: string): number {\r\n let parsed = parseInt(value);\r\n if (isNaN(parsed)) {\r\n return 1;\r\n }\r\n return parsed;\r\n }\r\n\r\n getStringFromNumber(value: number): string {\r\n if (value === null || value === undefined) {\r\n return \"1\";\r\n }\r\n\r\n return value.toString();\r\n }\r\n\r\n\r\n\r\n createTableForSystem(system: FeatureSystem) {\r\n let ret = \"<table>\\n\";\r\n\r\n if (ViewService.isSingleValue(system.referenceFeatureSystemName)) {\r\n system.features.forEach(feature => {\r\n ret += \"<tr>\";\r\n ret += \"<td>\" + (feature.value ?? \"\") + \"</td>\";\r\n ret += \"</tr>\\n\";\r\n });\r\n } else {\r\n system.features.forEach(feature => {\r\n ret += \"<tr>\";\r\n ret += \"<td>\" + (feature.name ?? \"\") + \"</td><td>\" + (feature.value ?? \"\") + \" \" + (feature.funit ?? \"\") + \"</td>\";\r\n ret += \"</tr>\\n\";\r\n });\r\n }\r\n\r\n ret += \"</table>\\n\";\r\n return ret;\r\n }\r\n\r\n createTableForAllSystems(systems: FeatureSystem[]) {\r\n let ret = \"<table>\\n\";\r\n\r\n systems.forEach(system => {\r\n\r\n let order = Number(system.order);\r\n\r\n if (order < 1000) {\r\n if (ViewService.isSingleValue(system.referenceFeatureSystemName)) {\r\n system.features.forEach(feature => {\r\n ret += \"<tr>\";\r\n ret += \"<td colspan='2'>\" + (feature.value ?? \"\") + \"</td>\";\r\n ret += \"</tr>\\n\";\r\n });\r\n } else {\r\n system.features.forEach(feature => {\r\n ret += \"<tr>\";\r\n ret += \"<td>\" + (feature.name ?? \"\") + \"</td><td>\" + (feature.value ?? \"\") + \" \" + (feature.funit ?? \"\") + \"</td>\";\r\n ret += \"</tr>\\n\";\r\n });\r\n }\r\n }\r\n });\r\n\r\n ret += \"</table>\\n\";\r\n return ret;\r\n }\r\n\r\n createListForSystem(system: FeatureSystem) {\r\n let ret = \"<ul>\\n\";\r\n\r\n if (ViewService.isSingleValue(system.referenceFeatureSystemName)) {\r\n system.features.forEach(feature => {\r\n ret += \"<li>\" + (feature.value ?? \"\") + \"</li>\\n\";\r\n });\r\n } else {\r\n system.features.forEach(feature => {\r\n ret += \"<li>\" + (feature.name ?? \"\") + \": \" + (feature.value ?? \"\") + \" \" + (feature.funit ?? \"\") + \"</li>\\n\";\r\n });\r\n }\r\n\r\n ret += \"</ul>\\n\";\r\n return ret;\r\n }\r\n\r\n\r\n\r\n createSystemAndFeatureIfNeeded(model: Product, sys: string, element: string) {\r\n let featureSystem: FeatureSystem;\r\n\r\n if (sys <= \"0\")\r\n return;\r\n\r\n if (sys.length == 24) {\r\n if (!model.featureSystems.some(system => system.validFeatureSystemId == sys)) {\r\n featureSystem = new FeatureSystem();\r\n featureSystem.validFeatureSystemId = sys;\r\n featureSystem.order = (model.featureSystems?.reduce((maxOrder, fs) => Math.max(maxOrder, fs.order ?? 0), 0) ?? 0) + 1;\r\n model.featureSystems.push(featureSystem);\r\n }\r\n featureSystem = model.featureSystems.find(featureSystems => featureSystems.validFeatureSystemId == sys);\r\n } else {\r\n if (!model.featureSystems.some(system => system.order.toString() == sys)) {\r\n featureSystem = new FeatureSystem();\r\n featureSystem.order = +sys;\r\n model.featureSystems.push(featureSystem);\r\n }\r\n featureSystem = model.featureSystems.find(featureSystems => featureSystems.order.toString() == sys);\r\n }\r\n if (element <= \"0\")\r\n return;\r\n\r\n if (element.length == 24) {\r\n if (!featureSystem.features.some(feature => feature.validFeatureId == element)) {\r\n let feature = new Feature();\r\n feature.forder = (featureSystem.features?.reduce((maxOrder, fs) => Math.max(maxOrder, fs.forder ?? 0), 0) ?? 0) + 1;\r\n feature.validFeatureId = element;\r\n featureSystem.features.push(feature);\r\n }\r\n } else {\r\n if (!featureSystem.features.some(feature => feature.forder.toString() == element)) {\r\n let feature = new Feature();\r\n feature.forder = +element;\r\n featureSystem.features.push(feature);\r\n }\r\n }\r\n }\r\n\r\n createMimeIfNeeded(model: Product, system: string) {\r\n let systemNb = parseInt(system);\r\n if (!model.mimes.some(mime => mime.mimeOrder == systemNb)) {\r\n let mime = new Mime();\r\n mime.mimeOrder = systemNb;\r\n model.mimes.push(mime);\r\n }\r\n }\r\n\r\n createSupplierIfNeeded(model: Product, system: string) {\r\n var systemNb = parseInt(system);\r\n if (!model.suppliers.some(supplier => supplier.order == systemNb)) {\r\n let supplier = new ProductSupplier();\r\n supplier.order = systemNb;\r\n model.suppliers.push(supplier);\r\n }\r\n }\r\n\r\n createPackingUnitIfNeeded(model: Product, system: string) {\r\n var systemNb = parseInt(system);\r\n if (!model.orderDetail.packingUnits.some(x => x.order == systemNb)) {\r\n let supplier = new PackingUnit();\r\n supplier.order = systemNb;\r\n model.orderDetail.packingUnits.push(supplier);\r\n }\r\n }\r\n\r\n createListAndPriceIfNeeded(model: Product, system: string, element: string) {\r\n let priceList: PriceList;\r\n var systemNb = parseInt(system);\r\n if (!model.priceLists.some(priceList => priceList.priceListOrder == systemNb)) {\r\n priceList = new PriceList();\r\n priceList.priceListOrder = systemNb;\r\n model.priceLists.push(priceList);\r\n }\r\n\r\n priceList = model.priceLists.find(priceList => priceList.priceListOrder == systemNb);\r\n var elementNb = parseInt(element);\r\n if (!priceList.productPriceDetails.find(price => price.order == elementNb)) {\r\n let price = new ProductPriceDetail();\r\n price.clearPrice();\r\n price.order = elementNb;\r\n priceList.productPriceDetails.push(price);\r\n }\r\n }\r\n\r\n createUdxIfNeeded(model: Product, system: string) {\r\n var systemNb = parseInt(system);\r\n if (!model.udxs.some(udx => udx.order == systemNb)) {\r\n let udx = new UdxField();\r\n udx.order = systemNb;\r\n model.udxs.push(udx);\r\n }\r\n }\r\n\r\n createReferenceIfNeeded(model: Product, system: string) {\r\n var systemNb = parseInt(system);\r\n if (!model.references.some(reference => reference.order == systemNb)) {\r\n let reference = new Reference();\r\n reference.order = systemNb;\r\n model.references.push(reference);\r\n }\r\n }\r\n\r\n changeKey(product: Product, oldKey: string, newKey: string, systemKey: string, elementKey: string, field: string, excelModel: ExcelElement[]): boolean {\r\n switch (field) {\r\n case this.fieldNames.featureSystemName:\r\n return this.changeNameFeatureSystem(product, oldKey, newKey, excelModel);\r\n case this.fieldNames.fName:\r\n return this.changeNameFeature(oldKey, newKey, systemKey, elementKey, excelModel);\r\n case this.fieldNames.featureSystemOrder:\r\n return this.changeOrderFeatureSystem(oldKey, newKey, systemKey, excelModel);\r\n case this.fieldNames.fOrder:\r\n return this.changeOrderFeature(oldKey, newKey, systemKey, elementKey, excelModel);\r\n case this.fieldNames.fUnit:\r\n return this.changeUnitFeature(oldKey, newKey, systemKey, elementKey, excelModel);\r\n case \"MIME_ORDER\":\r\n return this.changeOrderMime(oldKey, newKey, systemKey, elementKey, field, excelModel);\r\n case \"PRICE_LIST_ORDER\":\r\n return this.changeOrderPriceList(oldKey, newKey, systemKey, elementKey, field, excelModel);\r\n case \"PRICE_ORDER\":\r\n return this.changeOrderPrice(oldKey, newKey, systemKey, elementKey, field, excelModel);\r\n }\r\n return false;\r\n }\r\n\r\n\r\n changeOrderMime(oldOrder: string, newOrder: string, system: string, element: string, field: string, excelModel: ExcelElement[]): boolean {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && this.allMimeFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Order darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == oldOrder && this.allMimeFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.systemKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeNameFeatureSystem(product: Product, oldSystemKey: string, newSystemKey: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == newSystemKey && this.allFeatureSystemFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"FeatureSystem-Name darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n let featureSystem = this.getRelevantFeatureSystem(product, newSystemKey);\r\n\r\n excelModel.forEach((excelElement: ExcelElement) => {\r\n if (excelElement.pimFields == null)\r\n return;\r\n let existingFeatureSystemField = excelElement.pimFields.find(y => y.systemKey == oldSystemKey && this.allFeatureSystemFields.includes(y.field));\r\n if (existingFeatureSystemField != undefined) {\r\n existingFeatureSystemField.systemKey = newSystemKey.toString();\r\n }\r\n\r\n let existingFeatureField = excelElement.pimFields.find(y => y.systemKey == oldSystemKey && this.allFeatureFields.includes(y.field));\r\n if (existingFeatureField != undefined) {\r\n let feature = featureSystem.features.find(x => x.oldValidFeatureId == existingFeatureField.elementKey);\r\n existingFeatureField.systemKey = newSystemKey.toString();\r\n existingFeatureField.elementKey = feature.validFeatureId;\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeOrderFeatureSystem(oldOrder: string, newOrder: string, system: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && this.allFeatureSystemFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Order darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == oldOrder && (this.allFeatureSystemFields.includes(y.field) || this.allFeatureFields.includes(y.field)));\r\n if (existingField != undefined) {\r\n existingField.systemKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeNameFeature(oldOrder: string, newOrder: string, system: string, element: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && y.elementKey == element && this.allFeatureFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Feature-Name mit gleicher Einheit darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == system && y.elementKey == oldOrder && this.allFeatureFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.elementKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeOrderFeature(oldOrder: string, newOrder: string, system: string, element: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && y.elementKey == element && this.allFeatureFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Order darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == system && y.elementKey == oldOrder && this.allFeatureFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.elementKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeUnitFeature(oldOrder: string, newOrder: string, system: string, element: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && y.elementKey == element && this.allFeatureFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Feature-Name mit gleicher Einheit darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == system && y.elementKey == oldOrder && this.allFeatureFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.elementKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeOrderPriceList(oldOrder: string, newOrder: string, system: string, element: string, field: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && this.allPriceListFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Order darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == oldOrder && this.allPriceListFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.systemKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n changeOrderPrice(oldOrder: string, newOrder: string, system: string, element: string, field: string, excelModel: ExcelElement[]) {\r\n let existing = excelModel.filter(x => x.pimFields != null && x.pimFields.some(y => y.systemKey == system && y.elementKey == newOrder && this.allPriceFields.includes(y.field)));\r\n if (existing.length > 0) {\r\n this.systemService.notify(this.translate.instant(\"Order darf nicht doppelt belegt werden\"), 2);\r\n return false;\r\n }\r\n\r\n excelModel.forEach((exelElement: ExcelElement) => {\r\n if (exelElement.pimFields == null)\r\n return;\r\n let existingField = exelElement.pimFields.find(y => y.systemKey == system && y.elementKey == newOrder && this.allPriceFields.includes(y.field));\r\n if (existingField != undefined) {\r\n existingField.systemKey = newOrder.toString();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n getRelevantFeatureSystem(model: Product, system: string) {\r\n var featureSystem = model.featureSystems.filter(featureSystem => featureSystem.validFeatureSystemId == system).shift();\r\n if (!featureSystem) {\r\n var featureSystem = model.featureSystems.filter(featureSystem => featureSystem.order.toString() == system).shift();\r\n if (!featureSystem) {\r\n return undefined;\r\n }\r\n }\r\n return featureSystem;\r\n }\r\n\r\n getRelevantFeature(featureSystem: FeatureSystem, element: string) {\r\n var feature = featureSystem.features.filter(feature => feature.validFeatureId == element).shift();\r\n if (!feature) {\r\n var feature = featureSystem.features.filter(feature => feature.forder.toString() == element).shift();\r\n if (!feature) {\r\n return undefined;\r\n }\r\n }\r\n return feature;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FieldNames } from '../Model/FieldNames';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolTipService {\r\n private fieldNames: FieldNames;\r\n\r\n constructor(public translate: TranslateService) {\r\n this.fieldNames = new FieldNames();\r\n }\r\n\r\n getToolTipContent(field: string, showProToolTips: boolean): string {\r\n switch (field) {\r\n\r\n\r\n\r\n // ****************************************************************\r\n // nicht immer fehlt der '.' am Ende...?\r\n // ****************************************************************\r\n\r\n\r\n\r\n // ****************************************************************\r\n // PRODUKT\r\n // ****************************************************************\r\n\r\n\r\n\r\n //case \"BUYERAID\": // legacy \"Ender-Field\"\r\n case this.fieldNames.buyerAid: // ==> \"BUYER_AID\"\r\n let line1BuyerAid = this.translate.instant('Dieses Element enthält die Artikelnummer des einkaufenden Unternehmens');\r\n return `<p>${line1BuyerAid}.</p>`;\r\n\r\n\r\n\r\n //case \"DESCRIPTIONLONG\": // legacy \"Ender-Field\"\r\n case this.fieldNames.descriptionLong: // ==> \"DESCRIPTION_LONG\"\r\n\r\n let line1DescriptionLong = this.translate.instant('Das Feld DESCRIPTION_LONG ist die Langbeschreibung, eine ausführliche Produktbeschreibung, die den Namen oder die Kurzbeschreibung ergänzen sollte');\r\n let line2DescriptionLong = this.translate.instant('Folgende HTMLTags sind dabei erlaubt:');\r\n\r\n let line3DescriptionLong = '<li><b> ' + this.translate.instant('für Fettdruck') + '</li>';\r\n let line4DescriptionLong = '<li><i> ' + this.translate.instant('für kursiv') + '</li>';\r\n let line5DescriptionLong = '<li><p> ' + this.translate.instant('für Paragraphen') + '</li>';\r\n let line6DescriptionLong = '<li><br> ' + this.translate.instant('für Zeilenumbrüche') + '</li>';\r\n let line7DescriptionLong = '<li><ul>/<li> ' + this.translate.instant('für Listendarstellung') + '</li>';\r\n\r\n let line8DescriptionLong = this.translate.instant('Um HTML-Tags übertragen zu können, müssen die Zeichen') + ' '>' und '<' ';\r\n let line9DescriptionLong = this.translate.instant('durch Ihre entsprechenden character references kodiert sein, damit ein XML-Parser die BMEcat-Datei akzeptiert');\r\n let line10DescriptionLong = this.translate.instant('Beispiel') + ' : '<' = &lt; ';\r\n let line11DescriptionLong = this.translate.instant('bzw') + '. '>' = &lt;';\r\n\r\n if (showProToolTips) {\r\n return `<p>${line1DescriptionLong}. ${line2DescriptionLong}</p>\r\n <ul>${line3DescriptionLong}${line4DescriptionLong}${line5DescriptionLong}${line6DescriptionLong}${line7DescriptionLong}</ul>\r\n <div class=\"nexMartTooltip\"><p>\r\n ${line8DescriptionLong}${line9DescriptionLong}. ${line10DescriptionLong}${line11DescriptionLong}\r\n </p></div>`;\r\n }\r\n else {\r\n return `<p>${line1DescriptionLong}. ${line2DescriptionLong}</p>\r\n <ul>${line3DescriptionLong}${line4DescriptionLong}${line5DescriptionLong}${line6DescriptionLong}${line7DescriptionLong}</ul>`;\r\n }\r\n\r\n\r\n\r\n //case \"DESCRIPTIONSHORT\": // legacy \"Ender-Field\"\r\n case this.fieldNames.descriptionShort: // ==> \"DESCRIPTION_SHORT\"\r\n let line1DescriptionShort = this.translate.instant('Dieses Element enthält die Kurzbeschreibung/-bezeichnung des Produktes');\r\n let line2DescriptionShort = this.translate.instant('Grundsätzlich soll diese Beschreibung kurz und innerhalb der ersten 40 Zeichen eindeutig und aussagekräftig sein, da in der weiteren Verwendung viele Anwendungssysteme nur 40 Zeichen verarbeiten können');\r\n let line3DescriptionShort = this.translate.instant('(Beispiel: SAP-OCI, SAP R/3) Ausführliche Kurzbeschreibungen bieten Vorteile bei Suchanfragen von weitestgehend ähnlichen Produkten');\r\n let line4DescriptionShort = this.translate.instant('Bereits in der ersten Trefferliste sind diese dann differenzierbar');\r\n let line5DescriptionShort = this.translate.instant('Auf Abkürzungen von wesentlichen Produkteigenschaften sollte generell verzichtet werden (schwarz statt schw)');\r\n let line6DescriptionShort = this.translate.instant('Abkürzungen von Organisationen oder Standards können selbstverständlich verwendet werden (zum Beispiel DIN A4, VDE)');\r\n return `<p>${line1DescriptionShort}. ${line2DescriptionShort}. ${line3DescriptionShort}. ${line4DescriptionShort}. ${line5DescriptionShort}. ${line6DescriptionShort}.</p>`;\r\n\r\n\r\n\r\n //case \"EDENUMBER1\": // legacy \"Ender-Field\"\r\n case this.fieldNames.edeNumber1: // ==> \"EDE_NUMBER_1\"\r\n //case \"EDENUMBER2\": // legacy \"Ender-Field\"\r\n case this.fieldNames.edeNumber2: // ==> \"EDE_NUMBER_2\"\r\n //case \"EDENUMBER3\": // legacy \"Ender-Field\"\r\n case this.fieldNames.edeNumber3: // ==> \"EDE_NUMBER_3\"\r\n //case \"EDENUMBER4\": // legacy \"Ender-Field\"\r\n case this.fieldNames.edeNumber4: // ==> \"EDE_NUMBER_4\"\r\n //case \"EDENUMBER5\": // legacy \"Ender-Field\"\r\n case this.fieldNames.edeNumber5: // ==> \"EDE_NUMBER_5\"\r\n let line1EdeNumber = this.translate.instant('Eine EDE Katalog Bestellnummer');\r\n let line2EdeNumber = this.translate.instant('Dieses Feld wird nur im nextCat exportiert');\r\n return `<p>${line1EdeNumber}. ${line2EdeNumber}.</p>`;\r\n\r\n\r\n\r\n //case \"ERPGROUPBUYER\": // legacy \"Ender-Field\"\r\n case this.fieldNames.erpGroupBuyer: // ==> \"ERP_GROUP_BUYER\"\r\n let line1ErpGroupBuyer = this.translate.instant('Angabe der Warengruppe oder Materialklasse des Produktes im ERP-System des einkaufenden Unternehmens');\r\n let line2ErpGroupBuyer = this.translate.instant('Wertebereich: abgestimmt auf Warengruppen des ERP-Systems des Käufers');\r\n return `<p>${line1ErpGroupBuyer}. ${line2ErpGroupBuyer}.</p>`;\r\n\r\n\r\n\r\n //case \"ERPGROUPSUPPLIER\": // legacy \"Ender-Field\"\r\n case this.fieldNames.erpGroupSupplier: // ==> \"ERP_GROUP_SUPPLIER\"\r\n let line1ErpGroupSupplier = this.translate.instant('Angabe der Warengruppe oder Materialklasse des Produktes im ERP-System des Lieferanten');\r\n return `<p>${line1ErpGroupSupplier}.</p>`;\r\n\r\n\r\n\r\n //case \"INTERNATIONALPID\": // legacy \"Ender-Field\"\r\n case this.fieldNames.internatonalPid: // ==> \"INTERNATIONAL_PID\"\r\n\r\n let line1InternatonalPid = this.translate.instant('Die INTERNATIONAL_ID ist eine internationale Artikelnummer');\r\n let line2InternatonalPid = this.translate.instant('Über das Feld INTERNATIONAL_ID_TYPE wird der Typ dieser Nummer festgelegt');\r\n let line3InternatonalPid = this.translate.instant('Heute ist die GTIN als Nachfolger der EAN verbreitet');\r\n let line4InternatonalPid = this.translate.instant('Dabei entsprechen die EAN Nummern dieser GTIN');\r\n\r\n let line5InternatonalPid = this.translate.instant('GTINs werden international Einmalig vergeben, auch Produkte in verschiedenen Varianten und Verpackungseinheiten haben unterschiedliche Nummern');\r\n\r\n let line6InternatonalPid = this.translate.instant('Es hat sich als best practice erwiesen, jedem Produkt (Auch Varianten-Hauptprodukte) eine eindeutige GTIN zu vergeben, da so alle Systeme die Produkte unter dieser Nummer wiederfinden');\r\n let line7InternatonalPid = this.translate.instant('Im Regelfall vergibt der Hersteller diese Produktnummer');\r\n let line8InternatonalPid = this.translate.instant('Sollte dem nicht so sein, kann man eigene GTINs erwerben und Produkten diese Nummern geben');\r\n\r\n let line9InternatonalPid = this.translate.instant('Amazon verwendet ASIN Nummer zur eindeutigen Identifizierung');\r\n let line10InternatonalPid = this.translate.instant('Diese sollten im UDX Feld ASIN abgelegt werden');\r\n\r\n let line11InternatonalPid = this.translate.instant('Bei nexMart werden nur GTINs angezeigt');\r\n let line12InternatonalPid = this.translate.instant('In Zukunft sollen zusätzliche Artikelnummern hier eingetragen werden');\r\n\r\n if (showProToolTips) {\r\n return `<p>${line1InternatonalPid}. ${line2InternatonalPid}. ${line3InternatonalPid}. ${line4InternatonalPid}.</p>\r\n <p>${line5InternatonalPid}.</p>\r\n <p>${line6InternatonalPid}. ${line7InternatonalPid}. ${line8InternatonalPid}.</p>\r\n <p>${line9InternatonalPid}. ${line10InternatonalPid}.</p>\r\n <div class=\"nexMartTooltip\"><p>\r\n ${line11InternatonalPid}. ${line12InternatonalPid}.\r\n </p></div>`;\r\n }\r\n else {\r\n return `<p>${line1InternatonalPid}. ${line2InternatonalPid}. ${line3InternatonalPid}. ${line4InternatonalPid}.</p>\r\n <p>${line5InternatonalPid}.</p>\r\n <p>${line6InternatonalPid}. ${line7InternatonalPid}. ${line8InternatonalPid}.</p>\r\n <p>${line9InternatonalPid}. ${line10InternatonalPid}.</p>`;\r\n }\r\n\r\n\r\n\r\n //case \"INTERNATIONALPIDTYPE\": // legacy \"Ender-Field\"\r\n case this.fieldNames.internatonalPidType: // ==> \"INTERNATIONAL_PID_TYPE\"\r\n\r\n let line1InternatonalPidType = this.translate.instant('Über dieses Feld wird der Typ der INTERNATIONAL_ID festgelegt');\r\n let line2InternatonalPidType = this.translate.instant('Es sollte hier GTIN verwendet werden');\r\n let line3InternatonalPidType = this.translate.instant('In alten Daten dürfte auch noch regelmäßig EAN auftauchen');\r\n\r\n let line4InternatonalPidType = this.translate.instant('Es gibt eine Aktion & Methode, welche EAN per Knopfdruck zur GTIN wandelt');\r\n\r\n let line5InternatonalPidType = this.translate.instant('NexMart unterstützt im Moment nur GTIN');\r\n let line6InternatonalPidType = this.translate.instant('Nummern anderer Typen dürfen nicht übertragen werden');\r\n\r\n if (showProToolTips) {\r\n return `<p>${line1InternatonalPidType}. ${line2InternatonalPidType}. ${line3InternatonalPidType}.</p>\r\n <p>${line4InternatonalPidType}.</p>\r\n <div class=\"nexMartTooltip\"><p>\r\n ${line5InternatonalPidType}. ${line6InternatonalPidType}.\r\n </p></div>`;\r\n }\r\n else {\r\n return `<p>${line1InternatonalPidType}. ${line2InternatonalPidType}. ${line3InternatonalPidType}.</p><p>${line4InternatonalPidType}.</p>`;\r\n }\r\n\r\n\r\n\r\n ////case \"\": // war nicht vergeben...\r\n case this.fieldNames.isDiscontinued: // ==> \"IS_DISCONTINUED\"\r\n let line1IsDiscontinued = this.translate.instant('Hier können Sie angeben, ob es sich um einen Auslaufartikel handelt und wenn ja, zu wann der Artikel ausläuft.');\r\n return `<p>${line1IsDiscontinued}</p>`;\r\n\r\n\r\n\r\n //case \"KEYWORDS\": // legacy \"Ender-Field\"\r\n case this.fieldNames.keywords: // ==> \"KEYWORDS\"\r\n let line1Keywords = this.translate.instant('Schlagwort, welches das Finden des Produktes erleichtert');\r\n let line2Keywords = this.translate.instant('Das Produkt soll im Zielsystem auch über die Eingabe dieses Schlagwortes gefunden werden können');\r\n return `<p>${line1Keywords}. ${line2Keywords}.</p>`;\r\n\r\n\r\n\r\n //case \"MANUFACTURERNAME\": // legacy \"Ender-Field\"\r\n case this.fieldNames.manufacturerName: // ==> \"MANUFACTURER_NAME\"\r\n let line1ManufacturerName = this.translate.instant('Name des Herstellers');\r\n return `<p>${line1ManufacturerName}.</p>`;\r\n\r\n\r\n\r\n //case \"MANUFACTURERPID\": // legacy \"Ender-Field\"\r\n case this.fieldNames.manufacturerPID: // ==> \"MANUFACTURER_PID\"\r\n let line1ManufacturerPID = this.translate.instant('Die MANUFACTURER_PID ist die ursprünglich vom Hersteller vergebene Produktnummer');\r\n let line2ManufacturerPID = this.translate.instant('Diese sollte nur vom Hersteller festgelegt und verändert werden');\r\n let line3ManufacturerPID = this.translate.instant('Hierbei handelt es sich in der Regel nicht um eine EAN, es kann jedoch eine sein');\r\n return `<p>${line1ManufacturerPID}. ${line2ManufacturerPID}. ${line3ManufacturerPID}.</p>`;\r\n\r\n\r\n\r\n //case \"MANUFACTURERTYPEDESCR\": // legacy \"Ender-Field\"\r\n case this.fieldNames.manufacturerTypeDescription: // ==> \"MANUFACTURER_TYPE_DESCR\"\r\n let line1ManufacturerTypeDescription = this.translate.instant('Die Herstellerbezeichnung ist ein Name für das Produkt, welcher unter Umständen bekannter ist als der korrekte Produktname');\r\n let line2ManufacturerTypeDescription = this.translate.instant('Wird die Herstellertypbezeichnung angegeben, sollte auch der Name des Herstellers angegeben werden');\r\n return `<p>${line1ManufacturerTypeDescription}. ${line2ManufacturerTypeDescription}.</p>`;\r\n\r\n\r\n\r\n //case \"PRODUCTORDER\": // legacy \"Ender-Field\"\r\n case this.fieldNames.productOrder: // ==> \"PRODUCT_ORDER\"\r\n let line1ProductOrder = this.translate.instant('Mit der Sortiernummer werden die Produkte innerhalb einer Kategorie sortiert');\r\n return `<p>${line1ProductOrder}.</p>`;\r\n\r\n\r\n\r\n //case \"REMARKS\": // legacy \"Ender-Field\"\r\n case this.fieldNames.remarks: // ==> \"REMARKS\"\r\n let line1Remarks = this.translate.instant('Zusätzliche Bemerkungen des Lieferanten');\r\n return `<p>${line1Remarks}.</p>`;\r\n\r\n\r\n\r\n //case \"STATUS\": // legacy \"Ender-Field\"\r\n case this.fieldNames.status: // ==> \"STATUS\"\r\n let line1Status = this.translate.instant('Diese ist ein interner Produkt Status der Ihnen hilft, ihre Produkte zu verwalten');\r\n let line2Status = this.translate.instant('Dieses Feld wird nur im nextCat exportiert');\r\n return `<p>${line1Status}. ${line2Status}.</p>`;\r\n\r\n\r\n\r\n //case \"SUPPLIERALTPID\": // legacy \"Ender-Field\"\r\n case this.fieldNames.supplierAltPid: // ==> \"SUPPLIER_ALT_PID\"\r\n\r\n let line1SupplierAltPid = this.translate.instant('Die SUPPLIER_ALT_PID ist eine alternative Produktnummer');\r\n let line2SupplierAltPid = this.translate.instant('Dieses Feld ist weitestgehend ohne spezielle Funktion');\r\n let line3SupplierAltPid = this.translate.instant('Hersteller tragen hier Ihre alten Produktnummer ein, wodurch bei nexMart über diese Produktnummern die Produkte ebenfalls gefunden werden können');\r\n\r\n let line4SupplierAltPid = this.translate.instant('Bei der Erstellung eines nexMart BMEcat und bei der Übertragung zu nexMart werden Produkte, welche eine alternative Produktnummer haben doppelt berücksichtigt');\r\n let line5SupplierAltPid = this.translate.instant('Das erste Produkt hat nur die SUPPLIER_PID');\r\n let line6SupplierAltPid = this.translate.instant('Das zweite Produkt hat als SUPPLIER_PID die SUPPLIER_ALT_PID und als SUPPLIER_ALT_PID die SUPPLIER_PID');\r\n //let line7SupplierAltPid = this.translate.instant('Das erste Produkt hat nur die SUPPLIER_PID');\r\n //let line8SupplierAltPid = this.translate.instant('Das zweite Produkt hat als SUPPLIER_PID die SUPPLIER_ALT_PID und als SUPPLIER_ALT_PID die SUPPLIER_PID');\r\n let line9SupplierAltPid = this.translate.instant('Damit wird dieses zweite Produkt unter der SUPPLIER_ALT_PID gefunden und mit der SUPPLIER_PID bestellt');\r\n\r\n if (showProToolTips) {\r\n return `<p>${line1SupplierAltPid}. ${line2SupplierAltPid}. ${line3SupplierAltPid}.</p>\r\n <div class=\"nexMartTooltip\"><p>\r\n ${line4SupplierAltPid}. ${line5SupplierAltPid}. ${line6SupplierAltPid}. ${line9SupplierAltPid}.\r\n </p></div>`;\r\n }\r\n else {\r\n return `<p>${line1SupplierAltPid}. ${line2SupplierAltPid}. ${line3SupplierAltPid}.</p>`;\r\n }\r\n\r\n\r\n\r\n //case \"SUPPLIERPID\": // legacy \"Ender-Field\"\r\n case this.fieldNames.supplierPid: // ==> \"SUPPLIER_PID\"\r\n\r\n let line1SupplierPid = this.translate.instant('Die SUPPLIER_PID ist die Hauptproduktnummer der Produkte im PIM System');\r\n let line2SupplierPid = this.translate.instant('Hierrüber werden die Produkte eindeutig identifiziert');\r\n let line3SupplierPid = this.translate.instant('Sie sollte in der Regel mit der Produktnummer im ERP System übereinstimmen');\r\n\r\n let line4SupplierPid = this.translate.instant('Aus historischen Gründen haben Produktnummern alle möglichen Formate');\r\n let line5SupplierPid = this.translate.instant('Diese werden auch nicht einfach geändert, da Einkäufer diese Produktnummern für Bestellungen verwenden');\r\n let line6SupplierPid = this.translate.instant('Es wird empfohlen, auf Produktnummern umzustellen, welche ausschließlich aus Nummern bestehen');\r\n let line7SupplierPid = this.translate.instant('Optimal wäre die Verwendung von GTIN Nummern (Auch für Master Artikel)');\r\n let line8SupplierPid = this.translate.instant('Die älteren Nummern können bei den INTERNATIONALPID mit dem TYPE XXX eingetragen werden');\r\n\r\n let line9SupplierPid = this.translate.instant('Die Produktnummer darf im Katalog nicht mehrfach vorhanden sein, da die Bearbeitung der Daten mit Excel dadurch zu Fehlern führen wird');\r\n let line10SupplierPid = this.translate.instant('Auch eine Weitergabe der Daten wäre dadurch fehlerhaft');\r\n\r\n let line11SupplierPid = this.translate.instant('Unter dieser Produktnummer werden die Artikel auch zu nexMart übertragen');\r\n let line12SupplierPid = this.translate.instant('Sie wird auch für die Bestellungen verwendet');\r\n\r\n if (showProToolTips) {\r\n return `<p>${line1SupplierPid}. ${line2SupplierPid}. ${line3SupplierPid}.</p>\r\n <p>${line4SupplierPid}. ${line5SupplierPid}. ${line6SupplierPid}. ${line7SupplierPid}. ${line8SupplierPid}.</p>\r\n <p>${line9SupplierPid}. ${line10SupplierPid}.</p>\r\n <div class=\"nexMartTooltip\"><p>\r\n ${line11SupplierPid}. ${line12SupplierPid}.\r\n </p></div>`;\r\n }\r\n else {\r\n return `<p>${line1SupplierPid}. ${line2SupplierPid}. ${line3SupplierPid}.</p>\r\n <p>${line4SupplierPid}. ${line5SupplierPid}. ${line6SupplierPid}. ${line7SupplierPid}. ${line8SupplierPid}.</p>\r\n <p>${line9SupplierPid}. ${line10SupplierPid}.</p>`;\r\n }\r\n\r\n\r\n\r\n // ****************************************************************\r\n // MIMES\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.mimeAlt: // ==> \"MIME_ALT\"\r\n let line1MimeAlt = this.translate.instant('Alternativtext, falls die Datei zum Beispiel in dem Zielsystem nicht darstellbar ist');\r\n return `<p>${line1MimeAlt}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.mimeDescription: // ==> \"MIME_DESCR\"\r\n let line1MimeDescription = this.translate.instant('Sie können im Feld MIME_DESCR eine Beschreibung für die Abbildung oder das Datenblatt angeben');\r\n return `<p>${line1MimeDescription}.</p>`;\r\n\r\n\r\n\r\n case \"MIME_ORDER\":\r\n let line1MimeOrder = this.translate.instant('Über die MIME_ORDER kann die Reihenfolge der Abbildungen auf der Produktdetailseite gesteuert werden');\r\n let line2MimeOrder = this.translate.instant('Als Wert muss eine positive, ganze Zahl verwendet werden');\r\n let line3MimeOrder = this.translate.instant('Bitte keine negativen Werte, 0 oder Dezimalzahlen angeben');\r\n let line4MimeOrder = this.translate.instant('Das Bild mit der kleinsten Zahl wird zuerst angezeigt');\r\n\r\n return `<p>${line1MimeOrder}. ${line2MimeOrder}. ${line3MimeOrder}. ${line4MimeOrder}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.mimePurpose: // ==> \"MIME_PURPOSE\"\r\n\r\n let line1MimePurpose = this.translate.instant('MIME_PURPOSE ist der Verwendungszweck. Folgende Angaben sind möglich');\r\n let line2MimePurpose = this.translate.instant('normal - Produkthauptbild');\r\n let line3MimePurpose = this.translate.instant('detail - weiteres Produkthauptbild');\r\n let line4MimePurpose = this.translate.instant('milieu - Anwendungsbild');\r\n let line5MimePurpose = this.translate.instant('data_sheet - Prdouktdatenblatt');\r\n\r\n return `<p>${line1MimePurpose}:<br />\r\n ${line2MimePurpose}<br />\r\n ${line3MimePurpose}<br />\r\n ${line4MimePurpose}<br />\r\n ${line5MimePurpose}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.mimeSource: // ==> \"MIME_SOURCE\"\r\n let line1MimeSource = this.translate.instant('Im Feld MIME_SOURCE wird der Name de referenzierten Bilddatei oder des Datenblatts angegeben');\r\n return `<p>${line1MimeSource}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.mimeType: // ==> \"MIME_TYPE\"\r\n let line1MimeType = this.translate.instant('Im Feld MIME_TYPE wird der Dateityp definiert');\r\n return `<p>${line1MimeType}.</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // ORDER DETAILS\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.contentUnit: // ==> \"CONTENT_UNIT\"\r\n\r\n let line1ContentUnit = this.translate.instant('Die CONTENT_UNIT gibt an, welche Inhaltseinheiten in der Bestelleinheit enthalten sind');\r\n let line2ContentUnit = this.translate.instant('Als Inhaltseinheit müssen UN/CEFACT-Einheiten verwendet werden');\r\n let line3ContentUnit = this.translate.instant('Beispiele');\r\n\r\n let line4ContentUnit = this.translate.instant('BO - Flasche');\r\n let line5ContentUnit = this.translate.instant('BX - Box');\r\n let line6ContentUnit = this.translate.instant('C62 - Stück');\r\n let line7ContentUnit = this.translate.instant('CG - Karton');\r\n let line8ContentUnit = this.translate.instant('CT - Kartonage');\r\n let line9ContentUnit = this.translate.instant('LTR - Liter');\r\n let line10ContentUnit = this.translate.instant('PR - Paar');\r\n\r\n return `${line1ContentUnit}.<br />\r\n ${line2ContentUnit}.<br /><br />\r\n <b>${line3ContentUnit}:</b>\r\n <ul>\r\n <li>${line4ContentUnit}</li>\r\n <li>${line5ContentUnit}</li>\r\n <li>${line6ContentUnit}</li>\r\n <li>${line7ContentUnit}</li>\r\n <li>${line8ContentUnit}</li>\r\n <li>${line9ContentUnit}</li>\r\n <li>${line10ContentUnit}</li>\r\n </ul>`;\r\n\r\n\r\n\r\n case this.fieldNames.noCuPerOu: // ==> \"NO_CU_PER_OU\"\r\n\r\n let line1NoCuPerOu = this.translate.instant('Die Inhaltseinheit und Verpackungsmenge müssen zusammen angegeben werden');\r\n let line2NoCuPerOu = this.translate.instant('Die Verpackungsmenge definiert, welche Anzahl der Inhaltseinheit in der Bestelleinheit vorliegen');\r\n let line3NoCuPerOu = this.translate.instant('Beispiel: In einem Karton befinden sich 10 Flaschen');\r\n\r\n let line4NoCuPerOu = this.translate.instant('Bestelleinheit: CG');\r\n let line5NoCuPerOu = this.translate.instant('Inhaltseinheit: BO');\r\n let line6NoCuPerOu = this.translate.instant('Verpackungsmenge: 10');\r\n\r\n return `${line1NoCuPerOu}.<br />\r\n ${line2NoCuPerOu}.<br /><br />\r\n <b>${line3NoCuPerOu}</b><br />\r\n <ul>\r\n <li>${line4NoCuPerOu}</li>\r\n <li>${line5NoCuPerOu}</li>\r\n <li>${line6NoCuPerOu}</li>\r\n </ul>`;\r\n\r\n\r\n\r\n case this.fieldNames.orderUnit: // ==> \"ORDER_UNIT\"\r\n\r\n let line1OrderUnit = this.translate.instant('Das Feld ORDER UNIT gibt die Bestelleinheit an');\r\n let line2OrderUnit = this.translate.instant('Als Bestelleinheit müssen UN/CEFACT-Einheiten verwendet werden');\r\n let line3OrderUnit = this.translate.instant('Die Bestelleinheit und der Preis gehören zusammen');\r\n\r\n let line4OrderUnit = this.translate.instant('Geben Sie als Bestelleinheit Stück an, so ist auch der Preis pro Stück zu verwenden.');\r\n let line5OrderUnit = this.translate.instant('Geben Sie als Bestelleinheit Paket an, so muss auch der Preis für das gesamte Paket hinterlegt werden');\r\n let line6OrderUnit = this.translate.instant('Geben Sie als Bestelleinheit Stück an, so ist auch der Preis pro Stück zu verwenden.');\r\n\r\n let line7OrderUnit = this.translate.instant('Beispiele');\r\n\r\n let line8OrderUnit = this.translate.instant('BO - Flasche');\r\n let line9OrderUnit = this.translate.instant('BX - Box');\r\n let line10OrderUnit = this.translate.instant('C62 - Stück');\r\n let line11OrderUnit = this.translate.instant('CG - Karton');\r\n let line12OrderUnit = this.translate.instant('CT - Kartonage');\r\n let line13OrderUnit = this.translate.instant('LTR - Liter');\r\n let line14OrderUnit = this.translate.instant('PR - Paar');\r\n\r\n return `<p>${line1OrderUnit}.</p><br />\r\n ${line2OrderUnit}.<br />\r\n ${line3OrderUnit}:<br />\r\n <ul>\r\n <li>${line4OrderUnit}</li>\r\n <li>${line5OrderUnit}.</li>\r\n <li>${line6OrderUnit}</li>\r\n </ul>\r\n <b>${line7OrderUnit}:</b>\r\n <ul>\r\n <li>${line8OrderUnit}</li>\r\n <li>${line9OrderUnit}</li>\r\n <li>${line10OrderUnit}</li>\r\n <li>${line11OrderUnit}</li>\r\n <li>${line12OrderUnit}</li>\r\n <li>${line13OrderUnit}</li>\r\n <li>${line14OrderUnit}</li>\r\n </ul>`;\r\n\r\n\r\n\r\n case this.fieldNames.priceQuantity: // ==> \"PRICE_QUANTITY\"\r\n\r\n let line1PriceQuantity = this.translate.instant('Die PRICE_QUANTITY, auch Preismenge genannt, gibt an, auf welche Anzahl Bestelleinheiten sich der angegebene Preis bezieht');\r\n let line2PriceQuantity = this.translate.instant('Bitte nur ganzzahlige Werte angeben');\r\n let line3PriceQuantity = this.translate.instant('Bitte keine negativen Werte, 0 oder 1000er Trennzeichen verwenden');\r\n\r\n return `<p>${line1PriceQuantity}.<br />\r\n ${line2PriceQuantity}.<br />\r\n ${line3PriceQuantity}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.quanityInterval: // ==> \"QUANTITY_INTERVAL\"\r\n let line1QuanityInterval = this.translate.instant('Die Mengenstaffel wird im Feld QUANTITY_INTERVAL übergeben.') ;\r\n return `<p>${line1QuanityInterval}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.quantityMin: // ==> \"QUANTITY_MIN\"\r\n let line1QuantityMin = this.translate.instant('Die Mindestbestellmenge wird im BMEcat-Feld QUANTITY_MIN übergeben.');\r\n return `<p>${line1QuantityMin}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.quantityMax: // ==> \"QUANTITY_MAX\"\r\n let line1QuantityMax = this.translate.instant('Die Maximalbestellmenge wird im Feld QUANTITY MAX übergeben.');\r\n return `<p>${line1QuantityMax}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.deliveryTime: // ==> \"DELIVERY_TIME\"\r\n let line1DeliveryTime = this.translate.instant('Die Lieferzeit in Tagen wird im Feld DELIVERY TIME übergeben.');\r\n return `<p>${line1DeliveryTime}.</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // WAWI\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.wawiName:\r\n let line1wawiName = this.translate.instant('Anzeigename des Warenwirtschaftssystems.');\r\n return `<p>${line1wawiName}.</p>`;\r\n case this.fieldNames.firstSupplierPid:\r\n let firstSupplierPid = this.translate.instant('Erste SUPPLIER_PID die von nextPIM vergeben werden darf');\r\n return `<p>${firstSupplierPid}.</p>`;\r\n case this.fieldNames.currentSupplierPid:\r\n let line1currentSupplierPid = this.translate.instant('Letzte SUPPLIER_PID die von nextPIM vergeben wurde.');\r\n return `<p>${line1currentSupplierPid}.</p>`;\r\n case this.fieldNames.wawiLenght:\r\n let line1Length = this.translate.instant('Maximale Anzahl Zeichen für das Feld');\r\n return `<p>${line1Length}.</p>`;\r\n case this.fieldNames.prefix:\r\n let line1prefix = this.translate.instant('Zeichenfolge die VOR eine neu zu vergebene Artikelnummer gesetzt wird.');\r\n return `<p>${line1prefix}.</p>`;\r\n case this.fieldNames.postfix:\r\n let line1postfix = this.translate.instant('Zeichenfolge die NACH eine neu zu vergebene Artikelnummer gesetzt wird.');\r\n return `<p>${line1postfix}.</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // SEO\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.metaDescription: // ==> \"META_DESCRIPTION\"\r\n\r\n let line1MetaDescription = this.translate.instant('Das Feld META DESCRIPTION beschreibt die Seite des Shops, welche den dieses Produkt zeigt und steht bei Suchergebnissen angezeigt' );\r\n\r\n let line2MetaDescription = this.translate.instant('In den guten alten SEO Zeiten war die Meta Description quasi Dreh- und Angelpunkt der Suchmaschinenoptimierung');\r\n let line3MetaDescription = this.translate.instant('Aktuell hat sie jedoch an Bedeutung verloren, ist aber keinesfalls unwichtig geworden');\r\n let line4MetaDescription = this.translate.instant('Offiziell wirkt sich die Meta Description überhaupt nicht mehr oder wenn nur noch marginal auf das direkte Ranking in der Google Suche aus');\r\n let line5MetaDescription = this.translate.instant('Aber auch hier ist es wichtig, das wichtigste Keyword oder die 2 wichtigesten Keywords mit in der Description zu verpacken, denn diese werden Fett hervorgehoben, falls sie zur Suchanfrage passen');\r\n let line6MetaDescription = this.translate.instant('Auch hier sollte wieder eine Handlungsaufforderung mit eingebaut werden, welche zum Klicken animiert');\r\n let line7MetaDescription = this.translate.instant('Denn was wiederum indirekt positiv zum Google Ranking beiträgt, ist die Klickrate auf das Suchergebnis und das ist als Baustein für die gesamte Shopware SEO super');\r\n let line8MetaDescription = this.translate.instant('Banal ausgedrückt: Mehr Klicks auf mein Suchergebnis können zu besseren Rankings führen');\r\n\r\n let line9MetaDescription = this.translate.instant('Zeichenzahl beachten: Nicht mehr als 150-155 Zeichen verwenden');\r\n let line10MetaDescription = this.translate.instant('Wichtigstes Keyword am Anfang und im weiteren Verlauf einbauen');\r\n let line11MetaDescription = this.translate.instant('Hersteller und Artikelnamen in der Meta Description verwenden');\r\n let line12MetaDescription = this.translate.instant('Handlungsaufforderung nicht vergessen');\r\n let line13MetaDescription = this.translate.instant('Bei Bedarf Sonderzeichen nutzen, für optische Reize und bessere Klickraten');\r\n\r\n let line14MetaDescription = this.translate.instant('Dieses Feld wird nur im nextCat exportiert');\r\n\r\n return `<p>${line1MetaDescription}.</p>\r\n <p>${line2MetaDescription}. ${line3MetaDescription}. ${line4MetaDescription}. ${line5MetaDescription}. ${line6MetaDescription}. ${line7MetaDescription}. ${line8MetaDescription}. </p>\r\n <ul>\r\n <li>${line9MetaDescription}</li>\r\n <li>${line10MetaDescription}</li>\r\n <li>${line11MetaDescription}</li>\r\n <li>${line12MetaDescription}</li>\r\n <li>${line13MetaDescription}</li>\r\n </ul>\r\n <p>${line14MetaDescription}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.metaTitel: // ==> \"META_TITLE\"\r\n\r\n let line1MetaTitel = this.translate.instant('Das Feld META TITLE bezeichnet die Seite des Shops, welche den dieses Produkt zeigt und steht bei Suchergebnissen ganz oben');\r\n let line2MetaTitel = this.translate.instant('Ein META TITLE sollte nicht länger als 55 Zeichen inklusive Leerzeichen sein, dies hat sich allerdings geändert');\r\n let line3MetaTitel = this.translate.instant('Denn mittlerweile zählt Google nicht mehr stupide die Zeichenanzahl, sondern berechnet den Title-Tag nach Pixelbreite der der Buchstaben auf der Google Suchergebnisseite');\r\n let line4MetaTitel = this.translate.instant('Eine Pixelbreite von 512 Pixel sollte hier nicht überschritten werden');\r\n let line5MetaTitel = this.translate.instant('Nun ist es nicht immer einfach die Breite jedes Buchstaben in Pixeln zu kennen');\r\n let line6MetaTitel = this.translate.instant('Deswegen kann man grob sagen, dass der Title Tag aktuell nicht mehr als 49-54 Zeichen inklusive Leerzeichen haben darf');\r\n let line7MetaTitel = this.translate.instant('Unverändert ist jedoch, dass das wichtigste Keyword einer einzelnen Seite oder Kategorie immernoch an erster Stelle stehen sollte');\r\n let line8MetaTitel = this.translate.instant('Der oder die Sätze die man dort unterbringt, sollten natürlich auch Sinn ergeben und zum klicken animieren');\r\n let line9MetaTitel = this.translate.instant('Ein Call to Action ist dort unterzubringen, wenn möglich');\r\n let line10MetaTitel = this.translate.instant('Alternativ kann man auch ein weiteres Keyword mit in den Title-Tag packen');\r\n\r\n let line11MetaTitel = this.translate.instant('Länge beachten: Nicht mehr als 52-55 Zeichen');\r\n let line12MetaTitel = this.translate.instant('Wichtigstes Keyword verwenden');\r\n let line13MetaTitel = this.translate.instant('Hersteller und Artikelnamen verwenden');\r\n let line14MetaTitel = this.translate.instant('Handlungsaufforderung mit einbauen');\r\n let line15MetaTitel = this.translate.instant('Bei Bedarf Sonderzeichen Nutzen, für optische Reize und bessere Klickraten');\r\n\r\n let line16MetaTitel = this.translate.instant('Dieses Feld wird nur im nextCat exportiert');\r\n\r\n return `<p>${line1MetaTitel}. ${line2MetaTitel}. ${line3MetaTitel}. ${line4MetaTitel}. ${line5MetaTitel}. ${line6MetaTitel}. ${line7MetaTitel}. ${line8MetaTitel}. ${line9MetaTitel}. ${line10MetaTitel}. </p>\r\n <ul>\r\n <li>${line11MetaTitel}</li>\r\n <li>${line12MetaTitel}</li>\r\n <li>${line13MetaTitel}</li>\r\n <li>${line14MetaTitel}</li>\r\n <li>${line15MetaTitel}</li>\r\n </ul>\r\n <p>${line16MetaTitel}.</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // LOGISTIC\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.countryOfOrgin: // ==> \"COUNTRY_OF_ORIGIN\"\r\n\r\n let line1CountryOfOrgin = this.translate.instant('Gibt das Herkunftsland des Produktes an. Über die Subdivisions-Codes kann auch eine Region angegeben werden');\r\n let line2CountryOfOrgin = this.translate.instant('ISO 3166-1 Ländercodes');\r\n let line3CountryOfOrgin = this.translate.instant('Beispiele');\r\n let line4CountryOfOrgin = this.translate.instant('DE (Deutschland)');\r\n let line5CountryOfOrgin = this.translate.instant('US (USA)');\r\n let line6CountryOfOrgin = this.translate.instant('DE-NW (Nordrhein-Westfalen in Deutschland)');\r\n let line7CountryOfOrgin = this.translate.instant('DK-025 (Kreis Roskilde in Dänemark)');\r\n\r\n return `<p>${line1CountryOfOrgin}.<br />\r\n ${line2CountryOfOrgin}.<br /><br />\r\n <b>${line3CountryOfOrgin}:</b><br />\r\n ${line4CountryOfOrgin}.<br />\r\n ${line5CountryOfOrgin}.<br />\r\n ${line6CountryOfOrgin}.<br />\r\n ${line7CountryOfOrgin}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.customsNumber: // ==> \"CUSTOMS_NUMBER\"\r\n let line1CustomsNumber= this.translate.instant('Die Zolltarifnummer ist erforderlich, um die Import- und Exportvorschriften für die betreffende Ware ermitteln zu können');\r\n let line2CustomsNumber= this.translate.instant('In erster Linie können anhand dieser Nummer die Einfuhr- und ggfs. bestehende Ausfuhrabgaben festgestellt werden');\r\n let line3CustomsNumber= this.translate.instant('Aber auch das mögliche Bestehen eines Import- oder Exportverbotes oder -vorbehaltes lässt sich auf ihrer Grundlage klären');\r\n let line4CustomsNumber= this.translate.instant('Die Zolltarifnummer kann anhand des „Warenverzeichnisses für die Außenhandelsstatistik“ ermittelt werden');\r\n return `<p>${line1CustomsNumber}. ${line2CustomsNumber}. ${line3CustomsNumber}. ${line4CustomsNumber}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.depth: // ==> \"DEPTH\"\r\n let line1Depth = this.translate.instant('Verpackungstiefe in Meter (m)');\r\n let line2Depth = this.translate.instant('Trennzeichen \".\"');\r\n return `<p>${line1Depth}.<br />\r\n ${line2Depth}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.lenght: // ==> \"LENGTH\"\r\n let line1Lenght = this.translate.instant('Verpackungslänge in Meter (m)');\r\n let line2Lenght = this.translate.instant('Trennzeichen \".\"');\r\n return `<p>${line1Lenght}.<br />\r\n ${line2Lenght}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.weight: // ==> \"WEIGHT\"\r\n let line1Weight = this.translate.instant('Verpackungsgewicht in Kilogramm (kg)');\r\n let line2Weight = this.translate.instant('Trennzeichen \".\"');\r\n return `<p>${line1Weight}.<br />\r\n ${line2Weight}.</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.width: // ==> \"WIDTH\"\r\n let line1Width = this.translate.instant('Verpackungsbreite in Meter (m)');\r\n let line2Width = this.translate.instant('Trennzeichen \".\"');\r\n return `<p>${line1Width}.<br />\r\n ${line2Width}.</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // LEGAL\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.isBatterieV: // ==> \"IS_BATTERIE_V\"\r\n let line1IsBatterieV = this.translate.instant('Ist das Produkt BattG relevant?');\r\n return `<p>${line1IsBatterieV}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isBiocidalProduct: // ==> \"IS_BIOCIDAL_PRODUCT\"\r\n let line1IsBiocidalProduct = this.translate.instant('Handelt es sich um laut BiozidV biozidbehandelte Ware?');\r\n return `<p>${line1IsBiocidalProduct}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isCeGs: // ==> \"IS_CE_GS\"\r\n let line1IsCeGs = this.translate.instant('Handelt es sich um ein CE GS relevantes Produkt?');\r\n return `<p>${line1IsCeGs}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isCommoditiesControll: // ==> \"IS_COMMODITIES_CONTROLL\"\r\n let line1IsCommoditiesControll = this.translate.instant('Handelt es sich um Grundstoffüberwachung relevantes Produkt?');\r\n return `<p>${line1IsCommoditiesControll}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isDetergenzienv: // ==> \"IS_DETERGENZIENV\"\r\n let line1IsDetergenzienv = this.translate.instant('Handelt es sich um ein DetergenzienV relevantes Produkt?');\r\n return `<p>${line1IsDetergenzienv}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isDualUse: // ==> \"IS_DUAL_USE\"\r\n let line1IsDualUse = this.translate.instant('Ist das Produkt prinzipiell sowohl für zivile, als auch für militärische Zwecke verwendbar?');\r\n return `<p>${line1IsDualUse}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isFertigpackv: // ==> \"IS_FERTIGPACKV\"\r\n let line1IsFertigpackv = this.translate.instant('Handelt es sich um laut FertigpackV relevant Ware?');\r\n return `<p>${line1IsFertigpackv}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isKosmetikv: // ==> \"IS_KOSMETIKV\"\r\n let line1IsKosmetikv = this.translate.instant('Handelt es sich um laut Kosmetik Verordnung relevantes Produkt?');\r\n return `<p>${line1IsKosmetikv}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isOekodesignEvpg: // ==> \"IS_OEKODESIGN_EVPG_ENVKG\"\r\n let line1IsOekodesignEvpg = this.translate.instant('Handelt es sich um laut Ökodesign EVPG ENVKG relevantes Produkt?');\r\n return `<p>${line1IsOekodesignEvpg}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isReach: // ==> \"IS_REACH\"\r\n let line1IsReach = this.translate.instant('Handelt es sich um ein REACH relevantes Produkt?');\r\n return `<p>${line1IsReach}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isSecurityDatasheetNeeded: // ==> \"IS_SECURITY_DATASHEET_NEEDED\"\r\n let line1IsSecurityDatasheetNeeded = this.translate.instant('Ist ein Sicherheitsdatenblatt erforderlich?');\r\n return `<p>${line1IsSecurityDatasheetNeeded}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isSelfServiceForbidden: // ==> \"IS_SELFSERVICE_FORBIDDEN\"\r\n let line1IsSelfServiceForbidden = this.translate.instant('Handelt es sich um ein Produkt, für das eine selbstbedienungsverbot relevant ist?');\r\n return `<p>${line1IsSelfServiceForbidden}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isVerpackungsv: // ==> \"IS_VERPACKUNGSV\"\r\n let line1IsVerpackungsv = this.translate.instant('Handelt es sich um laut VerpackungsV relevantes Produkt?');\r\n return `<p>${line1IsVerpackungsv}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.isWeeeRohsEar: // ==> \"IS_WEEE_ROHS_EAR\"\r\n let line1IsWeeeRohsEar = this.translate.instant('Handelt es sich um ein WEEE ROHS EAR relevantes Produkt?');\r\n return `<p>${line1IsWeeeRohsEar}</p>`;\r\n\r\n\r\n\r\n // ****************************************************************\r\n // MISC (TEMPLATE-EDITOR)\r\n // ****************************************************************\r\n\r\n\r\n\r\n case this.fieldNames.group: // ==> \"GROUP_STRING\"\r\n let line1Group = this.translate.instant('Der GROUP_STING gibt den Kategoriebaum an.');\r\n return `<p>${line1Group}</p>`;\r\n\r\n\r\n\r\n case this.fieldNames.master: // ==> \"MASTER\"\r\n let line1Master = this.translate.instant('MASTER gibt die Variantenzuordnung an');\r\n return `<p>${line1Master}.</p>`;\r\n\r\n\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n}\r\n","\r\n<dx-sortable group=\"dragDropGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [allowReordering]=\"false\"\r\n [data]=\"dragInfo\"\r\n [filter]=\"dragFilter\"\r\n dragTemplate=\"dragTemplate\"\r\n [cursorOffset]=\"{ x: 20, y: 20 }\"\r\n (onDragStart)=\"onDragStart($event)\"\r\n (onAdd)=\"onDropAdd($event)\">\r\n\r\n <!-- template for the dragged item -->\r\n <div *dxTemplate=\"let dragInfo of 'dragTemplate'\"\r\n class=\"item dx-card dx-theme-text-color dx-theme-background-color shadow-lg p-3 bg-body rounded dragTemplate\">\r\n {{ dragInfo.itemData.dDisplayName }}\r\n </div>\r\n\r\n <div class=\"dx-field {{ fieldValueClasses() }}\" (click)=\"elementSelectFunction()\">\r\n\r\n\r\n\r\n <div *ngIf=\"!suppressLabel\" class=\"dx-field-label dx-field-label-np d-flex flex-column\" (mouseenter)=\"toggleToolTip(true)\" (mouseleave)=\"toggleToolTip(false)\">\r\n <div>{{ labelText }}</div>\r\n <div *ngIf=\"!isPrint && showHTMLSwitch\" class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Text\" | translate }}</div>\r\n <dx-switch [(value)]=\"showHTMLEditor\"\r\n (onValueChanged)=\"switchValueChanged($event)\"\r\n [readOnly]=\"readOnlyUser('htmlToggle')\">\r\n </dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"html\" | translate }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field-value dx-field-value-np d-flex flex-row w-100\">\r\n\r\n\r\n\r\n <div *ngIf=\"showDragHandle && !suppressDragHandle\" class=\"pr-2 align-self-center\">\r\n <i class=\"handle dx-icon dx-icon-dragvertical\"></i>\r\n </div>\r\n <div *ngIf=\"showDragHandle && suppressDragHandle\" class=\"pr-2 align-self-center\">\r\n <div class=\"link-placeholder\"></div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"hasMasterOrChildOrIsTranslated() && showLinkButtons && !suppressLinkButton\" class=\"pr-2 align-self-center\">\r\n\r\n <div *ngIf=\"!isVirtualCatalog()\"\r\n class=\"{{ getInitialClassForLinkedField(field, system, element) }}\"\r\n (click)=\"toggleLinkedField(field, system, element, $event)\"></div>\r\n\r\n <div *ngIf=\"isVirtualCatalog()\"\r\n class=\"{{ getInitialClassForLinkedField(field, system, element) }}\"></div>\r\n\r\n </div>\r\n <div *ngIf=\"hasMasterOrChildOrIsTranslated() && showLinkButtons && suppressLinkButton\" class=\"pr-2 align-self-center\">\r\n <div class=\"link-placeholder\"></div>\r\n </div>\r\n\r\n <div class=\"{{ hasTranslation && !suppressTranslation ? 'w-50' : '' }} flex-fill {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt_{{ toolTipTargetId }}\">\r\n\r\n <label *ngIf=\"!suppressPlaceLabel\" class=\"placeLabel {{ showPlaceLabel ? 'placeLabelSmall' : '' }}\">{{ field.toUpperCase() }}</label>\r\n <ng-content select=\"[slot='content']\"></ng-content>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"hasTranslation && !suppressTranslation\" class=\"w-50 flex-fill pl-2 {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n\r\n <label *ngIf=\"!suppressPlaceLabel\" class=\"placeLabel {{ showTranslationPlaceLabel ? 'placeLabelSmall' : '' }}\">{{ field.toUpperCase() }}</label>\r\n <ng-content select=\"[slot='translation']\"></ng-content>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"showRemoveFromTemplateItem\" class=\"pr-2 align-self-center\">\r\n <dx-button icon=\"trash\" type=\"text\" (onClick)=\"removeFromTemplateItem($event)\"> </dx-button>\r\n </div>\r\n\r\n\r\n <!-- ################################ TESTING ################################ -->\r\n <!--<div>{{ editValue }}</div>-->\r\n <!--<dx-text-box [(value)]=\"editValue\" (onValueChanged)=\"update($event)\"></dx-text-box>-->\r\n <!-- ################################ TESTING ################################ -->\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n <dx-tooltip *ngIf=\"toolTipContent().length > 0\" target=\"#tt_{{ toolTipTargetId }}\" class=\"toolTip toolTipField\" [(visible)]=\"toolTipVisible\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <div [innerHtml]=\"toolTipContent()\"></div>\r\n </div>\r\n </dx-tooltip>\r\n\r\n\r\n\r\n </div>\r\n\r\n</dx-sortable>\r\n","import { Input, Output, EventEmitter, Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Mime } from '../../Model/catalog/Mime';\r\nimport { Product } from '../../Model/catalog/product';\r\nimport { NextPimField } from \"../../Model/Catalog/NextPimField\";\r\nimport { CatalogService } from '../../Services/CatalogManagement/catalog.service';\r\nimport { LoginService } from '../../Services/login.service';\r\nimport { TemplateService } from '../../Services/template.service';\r\nimport { ToolTipService } from '../../Services/tooltip.service';\r\nimport { UserManagementService } from '../../Services/userManagment.service';\r\nimport { StringResponse } from '../../Model/Dto/StringResponse';\r\nimport { DragInfo } from '../../Model/ui/DragInfo';\r\nimport { ValidationService } from '../../Services/Validation/validation.service';\r\nimport { first, firstValueFrom, lastValueFrom } from 'rxjs';\r\nimport { SystemService } from '../../Services/system.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: \"np-inputControl\",\r\n templateUrl: \"inputControl.component.html\",\r\n styleUrls: [\"inputControl.component.css\"],\r\n encapsulation: ViewEncapsulation.None // Use to disable CSS Encapsulation for this component\r\n})\r\n\r\nexport class NpInputControlComponent implements OnInit {\r\n @Input() model: Product = new Product();\r\n @Input() productTranslation: Product = null;\r\n\r\n @Input() showLinkButtons: boolean = false;\r\n @Input() showPlaceLabel: boolean = false;\r\n @Input() showTranslationPlaceLabel: boolean = false;\r\n\r\n @Input() suppressLabel: boolean = false;\r\n @Input() suppressLinkButton: boolean = false;\r\n @Input() suppressTranslation: boolean = true;\r\n @Input() suppressPlaceLabel: boolean = false;\r\n @Input() suppressToolTip: boolean = false;\r\n @Input() suppressDragHandle: boolean = false;\r\n @Input() suppressContentWidth: boolean = false;\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() labelText: string = \"\";\r\n @Input() field: string = \"\";\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\"; // alle/kein Filter: \"> *\";\r\n\r\n @Input() isPrint: boolean = false;\r\n @Input() showHTMLSwitch: boolean = false;\r\n @Input() showHTMLEditor: boolean = false;\r\n @Output() showHTMLEditorChange = new EventEmitter<any>();\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n //@Input() editValue: any = \"\";\r\n //@Output() editValueChange = new EventEmitter<any>();\r\n\r\n _system: string;\r\n get system(): string {\r\n return this._system;\r\n }\r\n @Input('system') set system(value: string) {\r\n if (value != undefined) {\r\n this._system = value.toString();\r\n this.dragInfo.dSystem = this._system;\r\n }\r\n }\r\n\r\n _element: string;\r\n get element(): string {\r\n return this._element;\r\n }\r\n @Input('element') set element(value: string) {\r\n if (value != undefined) {\r\n this._element = value.toString();\r\n this.dragInfo.dElement = this._element;\r\n }\r\n }\r\n\r\n\r\n showToolTips: boolean = false;\r\n showProToolTips: boolean = false;\r\n showPlaceHolders: boolean = true;\r\n showRemoveFromTemplateItem: boolean = false;\r\n dragInfo: DragInfo = new DragInfo;\r\n\r\n public toolTipVisible: boolean = false;\r\n public toolTipTargetId: string = \"\";\r\n\r\n constructor(\r\n public translate: TranslateService,\r\n public validationService: ValidationService,\r\n public templateService: TemplateService,\r\n public toolTipServiceService: ToolTipService,\r\n public loginService: LoginService,\r\n public userManagement: UserManagementService,\r\n public catalogService: CatalogService,\r\n public systemService: SystemService ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showToolTips = this.loginService.showToolTips;\r\n this.showProToolTips = this.loginService.showProToolTips;\r\n this.showPlaceHolders = this.loginService.showPlaceHolders;\r\n\r\n if (!this.suppressToolTip) {\r\n this.toolTipTargetId = `${this.field}_${this.system}_${this.element}`;\r\n }\r\n this.dragInfo.dModel = this.model;\r\n this.dragInfo.dField = this.field;\r\n this.dragInfo.dDisplayName = \"\";\r\n if (this.element == undefined) {\r\n this.element = \"-1\";\r\n }\r\n if (this.system == undefined) {\r\n this.system = \"-1\";\r\n }\r\n }\r\n\r\n public update(event = null, mimeChange = null) {\r\n if ((mimeChange != null && mimeChange) || (event != null && event.previousValue !== event.value)) {\r\n\r\n this.model.mimes.forEach((mime: Mime) => {\r\n mime.lastChanged = new Date();\r\n });\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n //this.editValueChange.emit(this.editValue);\r\n }\r\n\r\n public elementSelectFunction() {\r\n this.elementSelected.emit(this.field);\r\n }\r\n\r\n public switchValueChanged(event) {\r\n this.showHTMLEditorChange.emit(event.value);\r\n }\r\n\r\n\r\n\r\n get hasTranslation(): Boolean {\r\n if (this.productTranslation == null) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get contentWidth(): string {\r\n if (this.suppressContentWidth) {\r\n return \"\";\r\n }\r\n if (this.templateField.length > 0) {\r\n return \"w-75\";\r\n }\r\n return \"w-100\";\r\n }\r\n\r\n templateField: string = \"\";\r\n\r\n public fieldValueClasses() {\r\n let compare = this.field;\r\n if (this.system != \"0\" && this.system != \"-1\") {\r\n compare = compare + \"_\" + this.system;\r\n if (this.element != \"0\" && this.element != \"-1\") {\r\n compare = compare + \"_\" + this.element;\r\n }\r\n }\r\n\r\n let classes = \"\";\r\n if (this.selectedElements != undefined && !(typeof this.selectedElements === \"string\") && this.selectedElements.findIndex(x => x == compare) != -1) {\r\n classes = classes + \" selectedField\";\r\n }\r\n\r\n this.templateField = \"\";\r\n this.showRemoveFromTemplateItem = false;\r\n if (this.templateService.template) {\r\n if (this.templateService.hasTemplateItem(this.templateService.template.templateItems, this.field, this.system, this.element)) {\r\n classes = classes + \" usedField\";\r\n this.showRemoveFromTemplateItem = true;\r\n //// Hier triggern wir, dass im Template Editor eine weitere TextBox angezeigt wird, in der das verknüpfte Template-Feld steht.\r\n //// Das ist eig. nicht \"fein\", weil wir hier was machen, was mit den CSS-Klassen nix zu tun hat.\r\n //// Aber da wir an dieser stelle grade eh dabei sind nach den TemplateItems zu schauen, machen wir das hier gleich mit.\r\n //let item = this.templateService.getTemplateItem(this.templateService.template.templateItems, this.field, this.system, this.element);\r\n //this.templateField = item.key;\r\n } \r\n } \r\n\r\n return classes;\r\n }\r\n\r\n\r\n async removeFromTemplateItem(event) {\r\n var pimField = new NextPimField(this.element, this.system, this.field);\r\n this.templateService.clearPimFieldEmitterDone.subscribe(() => this.test(event));\r\n this.templateService.clearPimFieldEmitter.emit(pimField);\r\n }\r\n\r\n test(event) {\r\n event.dField = this.field;\r\n event.dSystem = this.system;\r\n event.dElement = this.element;\r\n event.removeFromTemplateItem = true;\r\n this.onValueChanged.emit(event);\r\n this.showRemoveFromTemplateItem = false;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n\r\n\r\n toggleToolTip(visible: boolean) {\r\n if (this.showToolTips) {\r\n this.toolTipVisible = visible;\r\n }\r\n }\r\n\r\n toolTipContent() {\r\n return this.toolTipServiceService.getToolTipContent(this.field, this.showProToolTips);\r\n }\r\n\r\n\r\n\r\n onDragStart(e) {\r\n // [data]=\"{ dModel: model, dField: field, dSystem: system, dElement: element }\"\r\n if (!this.showDragHandle) {\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n if (e.fromData.dModel === undefined || e.fromData.dModel === null) {\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n // Diese Felder sollen am Drag and Drop nicht teilnehmen, daher hier abbrechen:\r\n if (e.fromData.dField === \"MIME_ORDER\") {\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n e.itemData = e.fromData;\r\n e.itemData.source = \"product\";\r\n\r\n this.templateService.getHeadline(this.field, this.element, this.system,this.loginService.currentCustomer.id).subscribe(\r\n (result: StringResponse) => {\r\n this.dragInfo.dDisplayName = result.value;\r\n });\r\n\r\n //console.log(e);\r\n }\r\n\r\n onDropAdd(e) {\r\n // nur für den Import ermöglichen\r\n if (e.itemData.exportMode) {\r\n return;\r\n }\r\n\r\n // ändert direkt das excel model vom template excel component => verrückte nebeneffekte...\r\n //e.itemData.field = this.field;\r\n //e.itemData.system = this.system;\r\n //e.itemData.element = this.element;\r\n\r\n e.newField = this.field;\r\n e.newSystem = this.system;\r\n e.newElement = this.element;\r\n\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n // hier muss man überlegen, ob diese nicht als event rausgeworfen werden sollen, um dann auf der eltern-ebene mit dem model zu hantieren\r\n // macht eigentlich wenig sinn der ganze zinnober, da wir so oder so auf der gleichen instanz 'rumnudeln\r\n\r\n\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n // Katalog und Kategorie haben kein Produkt...\r\n if (this.model == null) {\r\n return false;\r\n }\r\n\r\n // Im Übersetzungsmodus nicht anzeigen\r\n if (this.hasTranslation) {\r\n return false;\r\n }\r\n\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system?: string, element?: string): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public async toggleLinkedField(field: string, system?: string, element?: string, event = null) {\r\n if (!this.userManagement.canEdit(\"inputControlLink\")) {\r\n return;\r\n }\r\n \r\n if (this.isFieldLinked(field, system, element)) {\r\n if (field == \"REFERENCE_FEATURE_SYSTEM_NAME\") {\r\n let result = await confirm(this.translate.instant(\"RemoveLinkedFieldFeatureSystemNameConfirmMessage\"),\r\n this.translate.instant(\"RemoveLinkedFieldConfirmTitle\"));\r\n if (!result) {\r\n return;\r\n }\r\n }\r\n if (field == \"FNAME\" || field == \"FUNIT\") {\r\n let result = await confirm(this.translate.instant(\"RemoveLinkedFieldFeatureNameUnitConfirmMessage\"),\r\n this.translate.instant(\"RemoveLinkedFieldConfirmTitle\"));\r\n if (!result) {\r\n return;\r\n }\r\n }\r\n }\r\n \r\n\r\n let changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n event.toggleLinkedFields = true;\r\n\r\n let isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n if (field == \"DESCRIPTION_SHORT\" || field == \"SUPPLIER_PID\" || field == \"MIME_PURPOSE\" || field == \"MIME_SOURCE\") {\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n event.forceTreeRefresh = true;\r\n }\r\n\r\n\r\n\r\n // SAVE\r\n if (field == \"MIME_TYPE\" || field == \"MIME_SOURCE\" || field == \"MIME_DESCR\" || field == \"MIME_ALT\" || field == \"MIME_PURPOSE\") {\r\n this.update(event, true);\r\n } else {\r\n this.update(event);\r\n }\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system?: string, element?: string): string {\r\n let isNowLinked = this.isFieldLinked(field, system, element);\r\n if (!isNowLinked && !this.userManagement.canView(\"inputControlLink\")) {\r\n return \"link-placeholder\";\r\n }\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n\r\n <div *dxTemplate=\"let company of 'customFieldsTextTemplate'\">\r\n\r\n <dx-data-grid (onToolbarPreparing)=\"onSystemToolbarPreparing($event)\"\r\n [dataSource]=\"model.customFields\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [repaintChangesOnly]=\"true\">\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"isManager()\" [allowDeleting]=\"isManager()\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n <div *dxTemplate=\"let toolbaritem of 'newFieldButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues Feld' | translate }}\" (onClick)=\"addCustomField()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'gevisButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Gevis Felder erstellen' | translate }}\" (onClick)=\"generateGevisFields()\"></dx-button>\r\n </div>\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CustomFieldsState\"></dxo-state-storing>\r\n\r\n <dxi-column caption=\"{{ 'Order' | translate }}\" width=\"130px\" dataField=\"order\" sortOrder=\"asc\" cellTemplate=\"orderCellTemplate\" editCellTemplate=\"orderCellTemplate\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Name' | translate }}\" dataField=\"name\" cellTemplate=\"nameTemplate\" editCellTemplate=\"nameTemplate\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Typ' | translate }}\" dataField=\"fieldType\" cellTemplate=\"fieldTypeTemplate\" editCellTemplate=\"fieldTypeTemplate\"></dxi-column>\r\n <dxi-column caption=\"\" dataField=\"fieldType\" cellTemplate=\"listTemplate\" editCellTemplate=\"listTemplate\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let column of 'orderCellTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"ORDER\"\r\n [showDragHandle]=\"false\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"column.data.order\"\r\n [min]=\"1\"\r\n [showClearButton]=\"false\"\r\n [showSpinButtons]=\"true\"\r\n [readOnly]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'fieldTypeTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"column?.data?.fieldType?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"FIELDTYPE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [dataSource]=\"fieldTypes\"\r\n [(value)]=\"column.data.fieldType\"\r\n (onValueChanged)=\"update($event)\"></dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'nameTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"column?.data?.name?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"NAME\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.name\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'listTemplate'\">\r\n\r\n <div *ngIf=\"column?.data?.fieldType == 'List'\" class=\"np-field w-100\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"column?.data?.listId?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"listId\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [items]=\"lists\"\r\n [(value)]=\"column.data.listId\"\r\n displayExpr=\"listName\"\r\n valueExpr=\"id\"\r\n (onValueChanged)=\"update($event)\"></dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n\r\n\r\n\r\n<div *dxTemplate=\"let company of 'supplierPidTemplate'\">\r\n\r\n <div class=\"dx-fieldset \">\r\n <div class=\"w-100 dx-field\">\r\n <np-inputControl [showPlaceLabel]=\"model?.name?.length > 0\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Anzeigename' | translate }}\"\r\n field=\"WAWI_NAME\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.name\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"d-flex flex-row w-100\">\r\n <div class=\"w-50 pr-3 dx-field\">\r\n <np-inputControl [showPlaceLabel]=\"model?.startSupplierPid > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Erste SupplierPID' | translate }}\"\r\n field=\"FIRST_SUPPLIER_PID\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.startSupplierPid\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"w-50 pr-3 dx-field\">\r\n <np-inputControl [showPlaceLabel]=\"model?.currentSupplierPid > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Letzte SupplierPID' | translate }}\"\r\n field=\"CURRENT_SUPPLIER_PID\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.currentSupplierPid\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row w-100\">\r\n <div class=\"w-50 pr-3 dx-field\">\r\n <np-inputControl [showPlaceLabel]=\"model?.preFixSupplierPid?.length > 0\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'SupplierPID Prefix' | translate }}\"\r\n field=\"PREFIX\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.preFixSupplierPid\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n <div class=\"w-50 pr-3 dx-field\">\r\n <np-inputControl [showPlaceLabel]=\"model?.postFixSupplierPid?.length > 0\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'SupplierPID Postfix' | translate }}\"\r\n field=\"POSTFIX\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.postFixSupplierPid\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"w-50 pr-3\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Artikelbezeichnung' | translate }} 1</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"model.hasLine1\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"w-50 pl-3\" *ngIf=\"model.hasLine1\">\r\n\r\n <np-inputControl [showPlaceLabel]=\"model?.line1Length > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Feldlänge' | translate }}\"\r\n field=\"WAWILENGTH\"\r\n [system]=\"1\"\r\n [element]=\"1\"><!-- system / element hier nur für die tooltips unterschiedlich (==> daraus wird die ID im InputCotrol generiert) -->\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.line1Length\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"w-50 pr-3\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Artikelbezeichnung' | translate }} 2</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"model.hasLine2\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"w-50 pl-3\" *ngIf=\"model.hasLine2\">\r\n\r\n <np-inputControl [showPlaceLabel]=\"model?.line1Length > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Feldlänge' | translate }}\"\r\n field=\"WAWILENGTH\"\r\n [system]=\"2\"\r\n [element]=\"2\"><!-- system / element hier nur für die tooltips unterschiedlich (==> daraus wird die ID im InputCotrol generiert) -->\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.line2Length\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"w-50 pr-3\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Artikelbezeichnung' | translate }} 3</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"model.hasLine3\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"w-50 pl-3\" *ngIf=\"model.hasLine3\">\r\n\r\n <np-inputControl [showPlaceLabel]=\"model?.line3Length > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Feldlänge' | translate }}\"\r\n field=\"WAWILENGTH\"\r\n [system]=\"3\"\r\n [element]=\"3\"><!-- system / element hier nur für die tooltips unterschiedlich (==> daraus wird die ID im InputCotrol generiert) -->\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.line3Length\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"w-50 pr-3\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Artikelbezeichnung' | translate }} 4</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"model.hasLine4\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"w-50 pl-3\" *ngIf=\"model.hasLine4\">\r\n\r\n <np-inputControl [showPlaceLabel]=\"model?.line4Length > -1\"\r\n [suppressLabel]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Feldlänge' | translate }}\"\r\n field=\"WAWILENGTH\"\r\n [system]=\"4\"\r\n [element]=\"4\"><!-- system / element hier nur für die tooltips unterschiedlich (==> daraus wird die ID im InputCotrol generiert) -->\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.line4Length\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { WawiSettings } from \"../../Model/User/WawiSettings\";\r\nimport { CustomField } from \"../../Model/User/CustomField\";\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { WawiListService } from \"../../Services/wawiList.service\";\r\nimport { WawiList } from \"../../Model/wawi/WawiList\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"wawiSettings\",\r\n templateUrl: \"wawiSettings.component.html\"\r\n})\r\nexport class WawiSettingsComponent implements OnInit {\r\n\r\n pages = [];\r\n fieldTypes = new Array<string>();\r\n lists: WawiList[];\r\n constructor(public modelService: ModelService, public translate: TranslateService, public wawiListService: WawiListService) {\r\n\r\n let supplierPidText = \"\";\r\n this.translate.get('Artikel').subscribe((text: string) => {\r\n supplierPidText = text;\r\n });\r\n let customFieldsText = \"\";\r\n this.translate.get('Individuelle Felder').subscribe((text: string) => {\r\n customFieldsText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: supplierPidText, template: \"supplierPidTemplate\" },\r\n { id: 2, title: customFieldsText, template: \"customFieldsTextTemplate\" }\r\n ];\r\n this.fieldTypes.push(\"String\");\r\n this.fieldTypes.push(\"Number\");\r\n this.fieldTypes.push(\"Boolean\");\r\n this.fieldTypes.push(\"List\");\r\n this.fieldTypes.push(\"Mapping\");\r\n this.fieldTypes.push(\"Html\");\r\n\r\n wawiListService.getAllLists(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.lists = result;\r\n });\r\n \r\n }\r\n \r\n public onRowRemoving(e) {\r\n let order = e.data.order;\r\n\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie das Feld wirklich in allen Katalogen am Account löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { \r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n\r\n delete(event = null) {\r\n\r\n\r\n this.update(event);\r\n \r\n }\r\n\r\n\r\n ngOnInit(): void { \r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n }\r\n\r\n onSystemToolbarPreparing(e) {\r\n if(this.modelService.loginService.hasAddonGevis){\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'gevisButtonTemplate',\r\n });\r\n }\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newFieldButtonTemplate',\r\n });\r\n }\r\n\r\n addCustomField() {\r\n const customField = new CustomField();\r\n let order = 0;\r\n let index = 0;\r\n for (const field of this.model.customFields) {\r\n if (field.order > order) {\r\n order = field.order;\r\n index++;\r\n }\r\n }\r\n order += 1;\r\n customField.order = order;\r\n\r\n this.model.customFields.push(customField);\r\n customField.name = \"CustomField\" + order;\r\n this.updateWithRefresh();\r\n \r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\")\r\n return false;\r\n if (this.modelService.loginService.currentUser.currentClaim == \"READONLY\")\r\n return false;\r\n return true;\r\n }\r\n\r\n \r\n\r\n get model(): WawiSettings {\r\n return this.modelService.loginService.wawiSettings; \r\n }\r\n set model(value: WawiSettings) {\r\n this.modelService.loginService.wawiSettings = value;\r\n }\r\n\r\n\r\n\r\n \r\n\r\n update(e) {\r\n this.modelService.wawiSettingsService.update(this.model).subscribe(\r\n (result: number) => {\r\n this.model.id = result;\r\n \r\n });;\r\n }\r\n\r\n updateWithRefresh() {\r\n\r\n\r\n this.modelService.wawiSettingsService.update(this.model).subscribe(\r\n (result: number) => {\r\n this.modelService.wawiSettingsService.getWawiSettings(this.model.customerId).subscribe(\r\n (result: WawiSettings) => {\r\n this.model = result;\r\n });\r\n });;\r\n }\r\n\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n generateGevisFields(){\r\n this.addFieldIfNotExist(\"Obergruppencode\");\r\n this.addFieldIfNotExist(\"Gruppencode\");\r\n this.addFieldIfNotExist(\"Untergruppencode\"); \r\n this.addFieldIfNotExist(\"Artikelkonditionsgruppencode\");\r\n this.updateWithRefresh();\r\n }\r\n\r\n addFieldIfNotExist(newName: string) {\r\n if (this.model.customFields.findIndex(x => x.name == newName) < 0) {\r\n this.addField(newName);\r\n }\r\n }\r\n\r\n addField(name:string){\r\n const customField = new CustomField();\r\n let order = 0;\r\n let index = 0;\r\n for (const field of this.model.customFields) {\r\n if (field.order > order) {\r\n order = field.order;\r\n index++;\r\n }\r\n }\r\n order += 1;\r\n customField.order = order;\r\n\r\n this.model.customFields.push(customField);\r\n customField.name = name;\r\n \r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","\r\n<div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'DeepL Authorization Key' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box *ngIf=\"currentDeeplConnection != null\" [(value)]=\"currentDeeplConnection.authKey\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"isManager\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Speichern' | translate , onClick: updateAuthKey }\"></dxi-item>\r\n </dx-toolbar>\r\n </div>\r\n <!--<div class=\"dx-field\" *ngIf=\"currentDeeplCheck != null\">\r\n <div class=\"dx-field-label jobListTD\"> {{ 'Characters used' | translate }} {{currentDeeplCheck.character_count}}</div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"currentDeeplCheck != null\">\r\n <div class=\"dx-field-label jobListTD\"> {{ 'Character limit' | translate }} {{currentDeeplCheck.character_limit}}</div>\r\n </div>-->\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { DeeplConnection } from '../../Model/Dto/DeeplConnection';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DeeplConnectionService } from \"../../Services/deeplConnection.service\";\r\nimport { SystemService } from \"../../Services/system.service\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"deeplCon\",\r\n templateUrl: \"DeeplConnection.component.html\"\r\n})\r\nexport class DeeplConnectionComponent implements OnInit {\r\n public currentDeeplConnection: DeeplConnection;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public deepl: DeeplConnectionService, private systemService: SystemService) {\r\n this.updateAuthKey = this.updateAuthKey.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.deepl.getConnection(this.modelService.loginService.currentUser.customerId).subscribe((result: DeeplConnection) => {\r\n this.currentDeeplConnection = result;\r\n if (result.authKey == null)\r\n result.authKey = \"\";\r\n \r\n }, o => {\r\n console.log(\"Failed to get DeeplConnection for currentUser\");\r\n });\r\n\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"USER\") return false;\r\n return true;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n public updateAuthKey() {\r\n this.deepl.update(this.currentDeeplConnection).subscribe((result: DeeplConnection) => {\r\n this.translate.get('Deepl Key erfolgreich aktualisiert').subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }, (error: HttpErrorResponse) => {\r\n this.translate.get('Kein gültiger Deepl Key').subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { FtpImportJobSettings } from \"../../Model/recurringJobs/ftp/ftpImportJobSettings\";\r\nimport { ModelService } from \"../model.service\";\r\n\r\n@Injectable()\r\nexport class FtpImportJobService {\r\n\r\n\r\n\r\n constructor(public modelService: ModelService, private http: HttpClient) {\r\n\r\n }\r\n\r\n public getFtpImportJobById(id: number): Observable<FtpImportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get(\"api/FtpImportJob/Get\", options)) as any;\r\n }\r\n\r\n public getAllFtpImportJobs(): Observable<FtpImportJobSettings[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.modelService.loginService.currentCustomer.id)\r\n }\r\n return (this.http.get(\"api/FtpImportJob/GetAll\", options)) as any;\r\n }\r\n\r\n public update(ftpImport: FtpImportJobSettings): Observable<FtpImportJobSettings> {\r\n var result = this.http.post<FtpImportJobSettings>(\"api/FtpImportJob/Update\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public create(ftpImport: FtpImportJobSettings): Observable<FtpImportJobSettings> {\r\n ftpImport.customerId = this.modelService.loginService.currentCustomer.id;\r\n var result = this.http.post<FtpImportJobSettings>(\"api/FtpImportJob/Create\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public delete(id: number): Observable<FtpImportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.delete<FtpServer>(\"api/FtpImportJob/Delete\", options)) as any;\r\n }\r\n\r\n public run(id: number): Observable<FtpImportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get<object>(\"api/FtpImportJob/Run\", options)) as any;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { ModelService } from \"../model.service\";\r\n\r\n@Injectable()\r\nexport class FtpServerService {\r\n\r\n public onServerChanged: EventEmitter<void> = new EventEmitter<void>();\r\n constructor(public modelService: ModelService, private http: HttpClient) {\r\n\r\n }\r\n\r\n public getServer(id: number): Observable<FtpServer> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get(\"api/FtpServer/Get\", options)) as any;\r\n }\r\n\r\n public getAllServer(): Observable<FtpServer[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.modelService.loginService.currentCustomer.id)\r\n }\r\n return (this.http.get(\"api/FtpServer/GetAll\", options)) as any;\r\n }\r\n\r\n public update(ftpImport: FtpServer): Observable<FtpServer> {\r\n var result = this.http.post<FtpServer>(\"api/FtpServer/Update\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public create(ftpImport: FtpServer): Observable<FtpServer> {\r\n ftpImport.customerId = this.modelService.loginService.currentCustomer.id;\r\n var result = this.http.post<FtpServer>(\"api/FtpServer/Create\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public delete(id: number): Observable<FtpServer> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n var result = this.http.delete<FtpServer>(\"api/FtpServer/Delete\", options);\r\n return result;\r\n }\r\n\r\n public test(ftpImport: FtpServer): Observable<TestResult> {\r\n var result = this.http.post<TestResult>(\"api/FtpServer/Test\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public getFolderStructure(ftpImport: FtpServer): Observable<string[]> {\r\n var result = this.http.post<string[]>(\"api/FtpServer/GetFolderStructure\", ftpImport);\r\n return (result);\r\n }\r\n\r\n}\r\n","<div style=\"max-width: 100%;\">\r\n\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [showColumnHeaders]=\"true\"\r\n mode=\"multiple\">\r\n\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"popup\" [allowUpdating]=\"isManager()\" [allowDeleting]=\"isManager()\" [allowAdding]=\"isManager()\">\r\n <dxo-popup title=\"Ftp Reimport Job\"\r\n [showTitle]=\"true\">\r\n </dxo-popup>\r\n </dxo-editing>\r\n\r\n <dxi-column dataField=\"catalogId\" caption=\"{{'Katalog'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"catalogs\" valueExpr=\"id\" displayExpr=\"catalogName\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"ftpServerId\" caption=\"{{'Ftp Server'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"ftpServers\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"excelTemplateId\" caption=\"{{'Excel Template'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"excelTemplates\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"time\" dataType=\"datetime\" caption=\"{{'Uhrzeit'|translate}}\"\r\n [calculateDisplayValue]=\"getTime\"\r\n format=\"HH:mm\"\r\n [editorOptions]=\"{ type:'time', displayFormat:'HH:mm',pickerType:'rollers',intervall:'5'}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"lastRun\" dataType=\"datetime\" caption=\"{{'Letzte Ausfuehrung'|translate}}\"\r\n [calculateDisplayValue]=\"getLastRun\"\r\n format=\"dd.MM HH:mm\"\r\n [allowEditing]=\"false\">\r\n </dxi-column>\r\n <dxi-column dataField=\"onlyUpdate\" caption=\"{{'Nur Updates'|translate}}\" dataType=\"boolean\">\r\n </dxi-column>\r\n <dxi-column dataField=\"deleteImportFile\" caption=\"{{'Datei nach Import löschen'|translate}}\" dataType=\"boolean\">\r\n </dxi-column>\r\n <dxi-column cellTemplate=\"diffCellTemplate\" editCellTemplate=\"emptyTemplate\">\r\n <div *dxTemplate=\"let data of 'diffCellTemplate'\">\r\n <dx-button style=\"text-align: right; float: right;\" text=\"{{'Manuel ausführen'|translate}}\" (onClick)=\"run(data)\" icon=\"redo\">\r\n </dx-button>\r\n </div>\r\n <div *dxTemplate=\"let data of 'emptyTemplate'\">\r\n </div>\r\n </dxi-column>\r\n\r\n </dx-data-grid>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { Catalog } from \"../../Model/Catalog/catalog\";\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { Template } from \"../../Model/Catalog/Template\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { FtpImportJobService } from \"../../Services/ftp/ftpImportJob.service\";\r\nimport { FtpServerService } from \"../../Services/ftp/ftpServer.service\";\r\nimport { FtpImportJobSettings } from \"../../Model/recurringJobs/ftp/ftpImportJobSettings\";\r\n\r\n@Component({\r\n selector: \"ftpImport\",\r\n templateUrl: \"ftpImport.component.html\"\r\n})\r\nexport class FtpImportComponent {\r\n\r\n dataSource: any = {};\r\n catalogs: Catalog[] = [];\r\n ftpServers: FtpServer[] = [];\r\n excelTemplates: Template[] = [];\r\n\r\n constructor(public modelService: ModelService, public ftpImportJobService: FtpImportJobService,\r\n public ftpServerService: FtpServerService, public templateService: TemplateService, public catalogService: CatalogService) {\r\n this.onFtpServerChanged = this.onFtpServerChanged.bind(this);\r\n\r\n this.ftpServerService.getAllServer().subscribe((ftpServer: FtpServer[]) => {\r\n this.ftpServers = ftpServer;\r\n });\r\n this.templateService.getTemplatesReturn().subscribe((templates: Template[]) => {\r\n this.excelTemplates = templates;\r\n });\r\n this.catalogService.getCatalogs(this.modelService.loginService.currentCustomer.id).subscribe((catalogs: Catalog[]) => {\r\n this.catalogs = catalogs;\r\n });\r\n\r\n this.dataSource.store = new CustomStore({\r\n key: \"id\",\r\n load: function (loadOptions: any) {\r\n return ftpImportJobService.getAllFtpImportJobs().toPromise()\r\n .then((data: FtpImportJobSettings[]) => {\r\n data.forEach((f: FtpImportJobSettings) => {\r\n f.time = new Date(f.time);\r\n });\r\n return data;\r\n });\r\n },\r\n insert: function (value) {\r\n value.id = 0;\r\n return ftpImportJobService.create(value).toPromise();\r\n },\r\n update: function (key, values) {\r\n return ftpImportJobService.getFtpImportJobById(key).toPromise()\r\n .then((data: FtpImportJobSettings) => {\r\n const updatedData: FtpImportJobSettings = {\r\n ...data,\r\n ...values,\r\n };\r\n\r\n return ftpImportJobService.update(updatedData).toPromise()\r\n .then((data: FtpImportJobSettings) => {\r\n return data;\r\n });\r\n });\r\n },\r\n remove: function (key) {\r\n return lastValueFrom(ftpImportJobService.delete(key)).then((data: FtpImportJobSettings) => {\r\n return;\r\n });\r\n }\r\n });\r\n\r\n ftpServerService.onServerChanged.subscribe(() => this.onFtpServerChanged());\r\n this.run = this.run.bind(this);\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"MANAGER\" || this.modelService.loginService.currentUser.currentClaim == \"ADMIN\")\r\n return true;\r\n return false;\r\n }\r\n\r\n getTime(rowData): string {\r\n if (rowData.time instanceof String)\r\n rowData.time = new Date(rowData.time);\r\n\r\n return rowData.time;\r\n }\r\n\r\n getLastRun(rowData): string {\r\n if (rowData.lastRun instanceof String)\r\n rowData.lastRun = new Date(rowData.lastRun);\r\n\r\n return rowData.lastRun;\r\n }\r\n\r\n onFtpServerChanged() {\r\n this.ftpServerService.getAllServer().subscribe((ftpServer: FtpServer[]) => {\r\n this.ftpServers = ftpServer;\r\n });\r\n }\r\n\r\n run(d) {\r\n this.ftpImportJobService.run(d.data.id).subscribe(() => {\r\n this.modelService.systemService.notify(new Message(\"Job wurde manuell gestartet, er entfernt sich automatisch, sollte er keine Datei importieren.\"));\r\n }, error => {\r\n let msg = new Message();\r\n msg.type = \"Error\";\r\n msg.message = \"Fehler beim manuellen starten\";\r\n this.modelService.systemService.notify(msg);\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { FtpExportJobSettings } from \"../../Model/recurringJobs/ftp/ftpExportJobSettings\";\r\nimport { ModelService } from \"../model.service\";\r\n\r\n@Injectable()\r\nexport class FtpExportJobService {\r\n constructor(public modelService: ModelService, private http: HttpClient) {\r\n\r\n }\r\n\r\n public getFtpImportJobById(id: number): Observable<FtpExportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get(\"api/FtpExportJob/Get\", options)) as any;\r\n }\r\n\r\n public getAllFtpImportJobs(): Observable<FtpExportJobSettings[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.modelService.loginService.currentCustomer.id)\r\n }\r\n return (this.http.get(\"api/FtpExportJob/GetAll\", options)) as any;\r\n }\r\n\r\n public update(ftpImport: FtpExportJobSettings): Observable<FtpExportJobSettings> {\r\n var result = this.http.post<FtpExportJobSettings>(\"api/FtpExportJob/Update\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public create(ftpImport: FtpExportJobSettings): Observable<FtpExportJobSettings> {\r\n ftpImport.customerId = this.modelService.loginService.currentCustomer.id;\r\n var result = this.http.post<FtpExportJobSettings>(\"api/FtpExportJob/Create\", ftpImport);\r\n return (result);\r\n }\r\n\r\n public delete(id: number): Observable<FtpExportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.delete<FtpExportJobSettings>(\"api/FtpExportJob/Delete\", options)) as any;\r\n }\r\n\r\n public run(id: number): Observable<FtpExportJobSettings> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id.toString())\r\n }\r\n return (this.http.get<object>(\"api/FtpExportJob/Run\", options)) as any;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ExportFormatWithVersions } from '../Model/exportParameter/ExportFormatWithVersions';\r\nimport { ExportParameter } from '../Model/exportParameter/ExportParameter';\r\n\r\n\r\n@Injectable()\r\nexport class ExportConfigurationService {\r\n private readonly apiUrl = 'api/ExportConfiguration';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n get(id: string, customerId: string): Observable<ExportParameter> {\r\n const url = `${this.apiUrl}/Get?id=${id}&customerId=${customerId}`;\r\n return this.http.get<ExportParameter>(url);\r\n }\r\n\r\n getAll(customerId: string): Observable<ExportParameter[]> {\r\n const url = `${this.apiUrl}/GetAll?customerId=${customerId}`;\r\n return this.http.get<ExportParameter[]>(url);\r\n }\r\n\r\n delete(id: string, customerId: string): Observable<void> {\r\n const url = `${this.apiUrl}/Delete?id=${id}&customerId=${customerId}`;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n update(model: ExportParameter, customerId: string): Observable<ExportParameter> {\r\n const url = `${this.apiUrl}/Update?customerId=${customerId}`;\r\n return this.http.post<ExportParameter>(url, model);\r\n }\r\n\r\n\r\n getExportFormatWithVersions(customerId: string): Observable<ExportFormatWithVersions[]> {\r\n const url = `${this.apiUrl}/GetExportFormatsWithVersions?customerId=${customerId}`;\r\n return this.http.get<ExportFormatWithVersions[]>(url);\r\n }\r\n}\r\n","<div style=\"max-width: 100%;\">\r\n\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [showColumnHeaders]=\"true\"\r\n mode=\"multiple\">\r\n\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"popup\" [allowUpdating]=\"isManager()\" [allowDeleting]=\"isManager()\" [allowAdding]=\"isManager()\">\r\n <dxo-popup title=\"{{'Ftp Export Job'|translate}}\"\r\n [showTitle]=\"true\">\r\n </dxo-popup>\r\n </dxo-editing>\r\n\r\n <dxi-column dataField=\"catalogId\" caption=\"{{'Katalog'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"catalogs\" valueExpr=\"id\" displayExpr=\"catalogName\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"ftpServerId\" caption=\"{{'Ftp Server'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"ftpServers\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"exportConfigId\" caption=\"{{'ExportConfiguration'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"exportConfigs\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"exportFormat\" caption=\"{{'ExportFormat'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"exportFormats\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n\r\n <dxi-column dataField=\"excelTemplateId\" caption=\"{{'Excel Template'|translate}}\">\r\n <dxo-lookup [dataSource]=\"excelTemplates\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"time\" dataType=\"datetime\" caption=\"{{'Uhrzeit'|translate}}\"\r\n [calculateDisplayValue]=\"getTime\"\r\n format=\"HH:mm\"\r\n [editorOptions]=\"{ type:'time', displayFormat:'HH:mm',pickerType:'rollers',intervall:'5'}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"lastRun\" dataType=\"datetime\" caption=\"{{'Letzte Ausfuehrung'|translate}}\"\r\n [calculateDisplayValue]=\"getLastRun\"\r\n format=\"dd.MM HH:mm\"\r\n [allowEditing]=\"false\">\r\n </dxi-column>\r\n <dxi-column cellTemplate=\"diffCellTemplate\" editCellTemplate=\"emptyTemplate\">\r\n <div *dxTemplate=\"let data of 'diffCellTemplate'\">\r\n <dx-button style=\"text-align: right; float: right;\" text=\"{{'Manuel ausführen'|translate}}\" (onClick)=\"run(data)\" icon=\"redo\">\r\n </dx-button>\r\n </div>\r\n <div *dxTemplate=\"let data of 'emptyTemplate'\">\r\n </div>\r\n </dxi-column>\r\n\r\n </dx-data-grid>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { Catalog } from \"../../Model/Catalog/catalog\";\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { Template } from \"../../Model/Catalog/Template\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { FtpServerService } from \"../../Services/ftp/ftpServer.service\";\r\nimport { FtpExportJobService } from \"../../Services/ftp/ftpExportJob.service\";\r\nimport { FtpExportJobSettings } from \"../../Model/recurringJobs/ftp/ftpExportJobSettings\";\r\nimport { ExportConfigurationService } from \"../../Services/exportConfiguration.service\";\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\n\r\n@Component({\r\n selector: \"ftpExport\",\r\n templateUrl: \"ftpExport.component.html\"\r\n})\r\nexport class FtpExportComponent {\r\n\r\n dataSource: any = {};\r\n catalogs: Catalog[] = [];\r\n ftpServers: FtpServer[] = [];\r\n excelTemplates: Template[] = [];\r\n exportConfigs: ExportParameter[] = [];\r\n exportFormats: string[] = [\"Bme\", \"Excel\"];\r\n\r\n constructor(public modelService: ModelService, public ftpExportJobService: FtpExportJobService,\r\n public ftpServerService: FtpServerService, public templateService: TemplateService, public catalogService: CatalogService,\r\n public exportConfigurationService: ExportConfigurationService ) {\r\n this.onFtpServerChanged = this.onFtpServerChanged.bind(this);\r\n\r\n this.ftpServerService.getAllServer().subscribe((ftpServer: FtpServer[]) => {\r\n this.ftpServers = ftpServer;\r\n });\r\n this.templateService.getTemplatesReturn().subscribe((templates: Template[]) => {\r\n this.excelTemplates = templates;\r\n });\r\n this.catalogService.getCatalogs(this.modelService.loginService.currentCustomer.id).subscribe((catalogs: Catalog[]) => {\r\n this.catalogs = catalogs;\r\n });\r\n this.exportConfigurationService.getAll(this.modelService.loginService.currentCustomer.id).subscribe((configs: ExportParameter[]) => {\r\n this.exportConfigs = configs;\r\n });\r\n\r\n\r\n if (this.modelService.loginService.hasAddonCSV) {\r\n this.exportFormats.push(\"csv\");\r\n }\r\n if (this.modelService.loginService.hasAddonGevis) {\r\n this.exportFormats.push(\"GEVIS\");\r\n }\r\n if (this.modelService.loginService.hasAddonDATA_QUALITY) {\r\n this.exportFormats.push(\"Qualitydetails\");\r\n }\r\n if (this.modelService.loginService.hasAddonDATA_QUALITY) {\r\n this.exportFormats.push(\"Ebay\");\r\n }\r\n\r\n this.dataSource.store = new CustomStore({\r\n key: \"id\",\r\n load: function (loadOptions: any) {\r\n return ftpExportJobService.getAllFtpImportJobs().toPromise()\r\n .then((data: FtpExportJobSettings[]) => {\r\n data.forEach((f: FtpExportJobSettings) => {\r\n f.time = new Date(f.time);\r\n });\r\n return data;\r\n });\r\n },\r\n insert: function (value) {\r\n value.id = 0;\r\n return ftpExportJobService.create(value).toPromise();\r\n },\r\n update: function (key, values) {\r\n return ftpExportJobService.getFtpImportJobById(key).toPromise()\r\n .then((data: FtpExportJobSettings) => {\r\n const updatedData: FtpExportJobSettings = {\r\n ...data,\r\n ...values,\r\n };\r\n return ftpExportJobService.update(updatedData).toPromise()\r\n .then((data: FtpExportJobSettings) => {\r\n return data;\r\n });\r\n });\r\n },\r\n remove: function (key) {\r\n return lastValueFrom(ftpExportJobService.delete(key)).then((data: FtpExportJobSettings) => {\r\n return;\r\n });\r\n }\r\n });\r\n\r\n ftpServerService.onServerChanged.subscribe(() => this.onFtpServerChanged());\r\n this.run = this.run.bind(this);\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"MANAGER\" || this.modelService.loginService.currentUser.currentClaim == \"ADMIN\")\r\n return true;\r\n return false;\r\n }\r\n\r\n getTime(rowData): string {\r\n if (rowData.time instanceof String)\r\n rowData.time = new Date(rowData.time);\r\n\r\n return rowData.time;\r\n }\r\n\r\n getLastRun(rowData): string {\r\n if (rowData.lastRun instanceof String)\r\n rowData.lastRun = new Date(rowData.lastRun);\r\n\r\n return rowData.lastRun;\r\n }\r\n\r\n onFtpServerChanged() {\r\n this.ftpServerService.getAllServer().subscribe((ftpServer: FtpServer[]) => {\r\n this.ftpServers = ftpServer;\r\n });\r\n }\r\n\r\n run(d) {\r\n this.ftpExportJobService.run(d.data.id).subscribe(() => {\r\n this.modelService.systemService.notify(new Message(\"Export Job wurde gestartet.\"));\r\n }, error => {\r\n let msg = new Message();\r\n msg.type = \"Error\";\r\n msg.message = \"Fehler beim manuellen starten\";\r\n this.modelService.systemService.notify(msg);\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { FtpImportJobSettings } from \"../../Model/recurringJobs/ftp/ftpImportJobSettings\";\r\nimport { FtpSupplierPidMappingsJobSettings } from \"../../Model/recurringJobs/ftp/ftpSupplierPidMappingsJobSettings\";\r\nimport { ModelService } from \"../model.service\";\r\n\r\n@Injectable()\r\nexport class FtpSupplierPidMappingsImportJobsService {\r\n private readonly apiUrl = 'api/FtpSuppleriPidMappingsJobs';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getAll(customerId): Observable<FtpSupplierPidMappingsJobSettings[]> {\r\n const url = `${this.apiUrl}/GetAll?customerId=${customerId}`;\r\n return this.http.get<FtpSupplierPidMappingsJobSettings[]>(url);\r\n }\r\n\r\n public get(id): Observable<FtpSupplierPidMappingsJobSettings> {\r\n const url = `${this.apiUrl}/Get?id=${id}`;\r\n return this.http.get<FtpSupplierPidMappingsJobSettings>(url);\r\n }\r\n\r\n\r\n public update(model: FtpSupplierPidMappingsJobSettings, customerId: string): Observable<FtpSupplierPidMappingsJobSettings> {\r\n const url = `${this.apiUrl}/Update`;\r\n return this.http.post<FtpSupplierPidMappingsJobSettings>(url, model);\r\n }\r\n\r\n public delete(model: FtpSupplierPidMappingsJobSettings): Observable<boolean> {\r\n const url = `${this.apiUrl}/Delete`;\r\n return this.http.post<boolean>(url, model);\r\n }\r\n\r\n public run(model: FtpSupplierPidMappingsJobSettings): Observable<boolean> {\r\n const url = `${this.apiUrl}/Run`;\r\n return this.http.post<boolean>(url, model);\r\n }\r\n}\r\n","<div style=\"max-width: 100%;\">\r\n test\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [showColumnHeaders]=\"true\"\r\n mode=\"multiple\">\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"popup\" [allowUpdating]=\"isManager()\" [allowDeleting]=\"isManager()\" [allowAdding]=\"isManager()\">\r\n <dxo-popup title=\"Ftp Reimport Job\"\r\n [showTitle]=\"true\">\r\n </dxo-popup>\r\n </dxo-editing>\r\n <dxi-column dataField=\"ftpServerId\" caption=\"{{'Ftp Server'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"ftpServers\" valueExpr=\"id\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"time\" dataType=\"datetime\" caption=\"{{'Uhrzeit'|translate}}\"\r\n [calculateDisplayValue]=\"getTime\"\r\n format=\"HH:mm\"\r\n [editorOptions]=\"{ type:'time', displayFormat:'HH:mm',pickerType:'rollers',intervall:'5'}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"lastRun\" dataType=\"datetime\" caption=\"{{'Letzte Ausfuehrung'|translate}}\"\r\n [calculateDisplayValue]=\"getLastRun\"\r\n format=\"dd.MM HH:mm\"\r\n [allowEditing]=\"false\">\r\n </dxi-column>\r\n <dxi-column cellTemplate=\"diffCellTemplate\" editCellTemplate=\"emptyTemplate\">\r\n <div *dxTemplate=\"let data of 'diffCellTemplate'\">\r\n <dx-button style=\"text-align: right; float: right;\" text=\"{{'Manuel ausführen'|translate}}\" (onClick)=\"run(data)\" icon=\"redo\">\r\n </dx-button>\r\n </div>\r\n <div *dxTemplate=\"let data of 'emptyTemplate'\">\r\n </div>\r\n </dxi-column>\r\n\r\n </dx-data-grid>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { FtpSupplierPidMappingsJobSettings } from \"../../Model/recurringJobs/ftp/ftpSupplierPidMappingsJobSettings\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { FtpServerService } from \"../../Services/ftp/ftpServer.service\";\r\nimport { FtpSupplierPidMappingsImportJobsService } from \"../../Services/ftp/ftpSupplierPidMappingsImportJobs.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { SystemService } from \"../../Services/system.service\";\r\n\r\n@Component({\r\n selector: \"FtpSupplierPidMappingsImport\",\r\n templateUrl: \"ftpSupplierPidMappingsImport.component.html\"\r\n})\r\nexport class FtpSupplierPidMappingsConponent implements OnInit {\r\n dataSource: any = {};\r\n ftpServers: FtpServer[] = [];\r\n\r\n constructor(public ftpServerService: FtpServerService, public ftpSupplierPidMappingsImportJobsService: FtpSupplierPidMappingsImportJobsService,\r\n public loginService: LoginService, public systemService: SystemService) {\r\n this.dataSource.store = new CustomStore({\r\n key: \"id\",\r\n load: function (loadOptions: any) {\r\n return ftpSupplierPidMappingsImportJobsService.getAll(loginService.currentCustomer.id).toPromise()\r\n .then((data: FtpSupplierPidMappingsJobSettings[]) => {\r\n data.forEach((f: FtpSupplierPidMappingsJobSettings) => {\r\n f.time = new Date(f.time);\r\n });\r\n return data;\r\n });\r\n },\r\n insert: function (value) {\r\n value.id = 0;\r\n value.customerId = loginService.currentCustomer.id;\r\n return ftpSupplierPidMappingsImportJobsService.update(value, loginService.currentCustomer.id).toPromise();\r\n },\r\n update: function (key, values) {\r\n return ftpSupplierPidMappingsImportJobsService.get(key).toPromise()\r\n .then((data: FtpSupplierPidMappingsJobSettings) => {\r\n const updatedData: FtpSupplierPidMappingsJobSettings = {\r\n ...data,\r\n ...values,\r\n };\r\n\r\n return ftpSupplierPidMappingsImportJobsService.update(updatedData, loginService.currentCustomer.id).toPromise()\r\n .then((data: FtpSupplierPidMappingsJobSettings) => {\r\n return data;\r\n });\r\n });\r\n },\r\n remove: function (key) {\r\n return lastValueFrom(ftpSupplierPidMappingsImportJobsService.delete(key)).then((success) => {\r\n return;\r\n });\r\n }\r\n });\r\n }\r\n\r\n async ngOnInit() {\r\n this.ftpServers = await lastValueFrom(this.ftpServerService.getAllServer());\r\n }\r\n\r\n\r\n isManager(): boolean {\r\n if (this.loginService.currentUser.currentClaim == \"MANAGER\" || this.loginService.currentUser.currentClaim == \"ADMIN\")\r\n return true;\r\n return false;\r\n }\r\n\r\n getTime(rowData): string {\r\n if (rowData.time instanceof String)\r\n rowData.time = new Date(rowData.time);\r\n\r\n return rowData.time;\r\n }\r\n\r\n getLastRun(rowData): string {\r\n if (rowData.lastRun instanceof String)\r\n rowData.lastRun = new Date(rowData.lastRun);\r\n\r\n return rowData.lastRun;\r\n }\r\n\r\n run(d) {\r\n this.ftpSupplierPidMappingsImportJobsService.run(d.data).subscribe(() => {\r\n this.systemService.notify(new Message(\"Job wurde manuell gestartet, er entfernt sich automatisch, sollte er keine Datei importieren.\"));\r\n }, error => {\r\n let msg = new Message();\r\n msg.type = \"Error\";\r\n msg.message = \"Fehler beim manuellen starten\";\r\n this.systemService.notify(msg);\r\n });\r\n }\r\n}\r\n","\r\n<dx-tab-panel [dataSource]=\"jobs\" [selectedIndex]=\"0\">\r\n <div *dxTemplate=\"let company of 'ftpImportJobsTemplate'\">\r\n <ftpImport></ftpImport>\r\n </div>\r\n <div *dxTemplate=\"let company of 'ftpExportJobsTemplate'\">\r\n <ftpExport></ftpExport>\r\n </div>\r\n <div *dxTemplate=\"let company of 'FtpSupplierPidMappingsImportJobsTemplate'\">\r\n <FtpSupplierPidMappingsImport></FtpSupplierPidMappingsImport>\r\n </div>\r\n\r\n</dx-tab-panel>\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\n\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { SendToNWConfig } from '../../Model/Dto/SendToNWConfig';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"recurringJobs\",\r\n templateUrl: \"recurringJobs.component.html\"\r\n})\r\nexport class RecurringJobsComponent{\r\n\r\n tabs = [\r\n { id: 1, title: \"Jobs\", template: \"jobsTemplate\" },\r\n { id: 2, title: \"FTP Server\", template: \"ftpServerTemplate\" }\r\n ];\r\n jobs = [\r\n { id: 1, title: \"FTP Import\", template: \"ftpImportJobsTemplate\" }, \r\n { id: 2, title: \"FTP Export\", template: \"ftpExportJobsTemplate\" },\r\n { id: 3, title: \"FTP SupplierMappingImport\", template: \"FtpSupplierPidMappingsImportJobsTemplate\" }\r\n ];\r\n constructor(public modelService: ModelService) {}\r\n}\r\n","export class FtpServer {\r\n\r\n constructor(\r\n public id?: number,\r\n public name?: string,\r\n public address?: string,\r\n public importDirectory?: string,\r\n public exportDirectory?: string,\r\n public user?: string,\r\n public password?: string,\r\n public port?: number,\r\n public mode?: string,\r\n public customerId?: string,\r\n public privateKey?: string,\r\n public useKey?: boolean,\r\n public passPhrase?: string\r\n ) { }\r\n}\r\n","<div style=\"max-width: 100%;\">\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"dataSource\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [showColumnHeaders]=\"true\"\r\n mode=\"single\">\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" [storageKey]=\"'ftpServersStore'\"></dxo-state-storing>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"isManager()\" [allowDeleting]=\"isManager()\" [allowAdding]=\"isManager()\" [(editRowKey)]=\"editRowKey\"></dxo-editing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{'Name'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"address\" caption=\"{{'IP Addresse'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"port\" dataType=\"number\" caption=\"{{'Port'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"mode\" caption=\"{{'Modus'|translate}}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxo-lookup [dataSource]=\"modes\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n <div *dxTemplate=\"let ftpServer of 'detail'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Username' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"ftpServer.data.user\" (onValueChanged)=\"onDetailChange(ftpServer.data)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'SSH Key benutzten' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"ftpServer.data.useKey\" (onValueChanged)=\"onDetailChange(ftpServer.data)\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\" *ngIf=\"!ftpServer.data.useKey\">\r\n <div class=\"dx-field-label\">{{ 'Passwort' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"ftpServer.data.password\" mode=\"password\" (onValueChanged)=\"onDetailChange(ftpServer.data)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"ftpServer.data.useKey\">\r\n <div class=\"dx-field-label\">{{ 'PassPhrase' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"ftpServer.data.passPhrase\" mode=\"password\" (onValueChanged)=\"onDetailChange(ftpServer.data)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"ftpServer.data.useKey\">\r\n <div class=\"dx-field-label\">{{ 'Private Key' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-area [(value)]=\"ftpServer.data.privateKey\"\r\n (onValueChanged)=\"onDetailChange(ftpServer.data)\"\r\n autoResizeEnabled=\"true\"></dx-text-area>\r\n <dx-file-uploader [multiple]=\"false\"\r\n (onValueChanged)=\"onFileSelected($event, ftpServer.data)\">\r\n </dx-file-uploader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <dx-button stylingMode=\"contained\"\r\n text=\"Test\"\r\n type=\"normal\"\r\n width=\"100%\"\r\n (onClick)=\"test(ftpServer.data)\">\r\n </dx-button>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Import Ordner' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"folders\" [(value)]=\"ftpServer.data.importDirectory\" acceptCustomValue=\"true\"\r\n (onOpened)=\"loadFolderStructure(ftpServer.data)\"\r\n (onValueChanged)=\"onDetailChange(ftpServer.data)\">\r\n <div *dxTemplate=\"let data of 'dropDownButton'\">\r\n <dx-load-indicator [visible]=\"isLoading\"></dx-load-indicator>\r\n <i class=\"dx-icon-spindown\"></i>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Export Ordner' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"folders\" [(value)]=\"ftpServer.data.exportDirectory\" acceptCustomValue=\"true\"\r\n (onOpened)=\"loadFolderStructure(ftpServer.data)\"\r\n (onValueChanged)=\"onDetailChange(ftpServer.data)\">\r\n <div *dxTemplate=\"let data of 'dropDownButton'\">\r\n <dx-load-indicator [visible]=\"isLoading\"></dx-load-indicator>\r\n <i class=\"dx-icon-spindown\"></i>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </dx-data-grid>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\n\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { SendToNWConfig } from '../../Model/Dto/SendToNWConfig';\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { FtpServer } from \"../../Model/ftpServer\";\r\nimport { forEach } from \"jszip\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport { ViewChild } from \"@angular/core\";\r\nimport { FtpServerService } from \"../../Services/ftp/ftpServer.service\";\r\nimport { EditorOptions } from \"devextreme/ui/editor/editor\";\r\n\r\n\r\n@Component({\r\n selector: \"ftpServer\",\r\n templateUrl: \"ftpServer.component.html\",\r\n styleUrls: [\"ftpServer.component.css\"]\r\n})\r\nexport class FtpServerComponent {\r\n @ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;\r\n ftpImport: FtpServer = new FtpServer();\r\n currentEditedFtpServer: FtpServer;\r\n modes: string[] = [\"ftp\", \"sftp\"];\r\n dirs: string[] = [\"/out\", \"/in\", \"/\", \"\"];\r\n passwordMode = \"password\";\r\n\r\n editRowKey;\r\n folders = [];\r\n isTested: boolean = false;\r\n dataSource: any = {};\r\n data: any;\r\n dirOptions: any = {\r\n items: this.getDirs,\r\n minSearchLength: '0',\r\n placeholder: \"bsp.: /in/\",\r\n hint: \"Test Connection \"\r\n }\r\n buttonOptions = {\r\n text: \"Ordner laden\",\r\n type: \"normal\",\r\n onClick: this.loadFolderStructure.bind(this)\r\n };\r\n editorOptions = {\r\n acceptCustomValue: true,\r\n dataSource: this.folders,\r\n onOpened: (e) => {\r\n this.loadFolderStructure(e);\r\n }\r\n }\r\n\r\n constructor(public modelService: ModelService, public ftpServerService: FtpServerService) {\r\n\r\n\r\n this.testftpConnection = this.testftpConnection.bind(this);\r\n this.loadFolderStructure = this.loadFolderStructure.bind(this);\r\n this.test = this.test.bind(this);\r\n this.dataSource.store = new CustomStore({\r\n key: \"id\",\r\n load: function (loadOptions: any) {\r\n return ftpServerService.getAllServer().toPromise()\r\n .then((data: FtpServer[]) => {\r\n return data;\r\n });\r\n },\r\n insert: function (value) {\r\n value.id = 0;\r\n ftpServerService.onServerChanged.emit();\r\n return ftpServerService.create(value).toPromise();\r\n },\r\n update: function (key, values) {\r\n return ftpServerService.getServer(key).toPromise()\r\n .then((data: FtpServer) => {\r\n Object.assign(data, values);\r\n return ftpServerService.update(data).toPromise()\r\n .then((data: FtpServer) => {\r\n ftpServerService.onServerChanged.emit();\r\n return data;\r\n });\r\n });\r\n },\r\n remove: function (key) {\r\n return ftpServerService.delete(key).toPromise().then((data: FtpServer) => {\r\n ftpServerService.onServerChanged.emit();\r\n return;\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n editedRowData: any;\r\n\r\n onInitNewRow(e) {\r\n this.editedRowData = e.data;\r\n }\r\n\r\n onEditingStart(e) {\r\n this.editedRowData = e.data;\r\n }\r\n\r\n onRowUpdated(e) {\r\n this.editedRowData = null;\r\n }\r\n\r\n update(event) {\r\n this.ftpServerService.update(this.ftpImport).subscribe((data: FtpServer) => {\r\n this.ftpImport = data;\r\n this.ftpServerService.onServerChanged.emit();\r\n }, data => {\r\n console.log(data);\r\n });\r\n }\r\n\r\n isManager(): boolean {\r\n if (this.modelService.loginService.currentUser.currentClaim == \"MANAGER\" || this.modelService.loginService.currentUser.currentClaim == \"ADMIN\")\r\n return true;\r\n return false;\r\n }\r\n\r\n testftpConnection(server: FtpServer) {\r\n this.ftpServerService.test(server).subscribe((result: TestResult) => {\r\n let msg = new Message();\r\n result.success ? msg.type = \"Success\" : msg.type = \"Error\";\r\n msg.message = result.message;\r\n this.modelService.systemService.notify(msg);\r\n this.isTested = true;\r\n\r\n }, error => {\r\n let msg = new Message();\r\n msg.type = \"Error\";\r\n msg.message = \"Fehler beim testen\";\r\n this.modelService.systemService.notify(msg);\r\n });\r\n }\r\n\r\n\r\n isLoading = false;\r\n\r\n loadFolderStructure(ftpServer: FtpServer): void {\r\n this.isLoading = true;\r\n this.ftpServerService.getFolderStructure(ftpServer).subscribe((folders: string[]) => {\r\n this.folders = folders;\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.modelService.systemService.notifyWarning(error.error.detail);\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n test(d) {\r\n this.testftpConnection(d);\r\n }\r\n\r\n get getDirs() {\r\n return this.dirs;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n\r\n async onDetailChange(updatedServer: FtpServer) {\r\n this.dataSource.store.update(updatedServer.id, updatedServer)\r\n .then(() => {\r\n })\r\n .catch(error => {\r\n });\r\n }\r\n\r\n onFileSelected(e: any, updatedServer: FtpServer): void {\r\n const file = e.value[0];\r\n\r\n if (file) {\r\n const reader = new FileReader();\r\n reader.onload = (event: any) => {\r\n updatedServer.privateKey = event.target.result;\r\n this.onDetailChange(updatedServer);\r\n };\r\n reader.readAsText(file);\r\n }\r\n }\r\n}\r\n","export class EdeMemberId{\r\n constructor(\r\n public id?: number,\r\n public memberId?: string,\r\n public customerId?: string\r\n ) { }\r\n}\r\n","import { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DeeplConnection } from \"../Model/Dto/DeeplConnection\";\r\nimport { EdeMemberId } from \"../Model/edeSortimentsAbo/EdeMemberId\";\r\nimport { Message } from \"../Model/System/Message\";\r\n\r\n@Injectable()\r\nexport class EdeMemberIdService {\r\n\r\n\r\n constructor(private http: HttpClient, public translate: TranslateService) {\r\n\r\n }\r\n\r\n getConnection(customerId: string): Observable<EdeMemberId> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n return (this.http.get<EdeMemberId>(\"api/EdeMemberId/GetMemberId\", options)) as any;\r\n }\r\n\r\n update(deeplConnection: EdeMemberId): Observable<EdeMemberId> {\r\n return (this.http.post<EdeMemberId>(\"api/EdeMemberId/Update\", deeplConnection));\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { CatalogDataQuality } from \"../../Model/validation/CatalogDataQuality\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { StartAction } from \"../../Model/Dto/StartAction\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { EdeMemberIdService } from \"../../Services/edeMemberId.service\";\r\nimport { EdeMemberId } from \"../../Model/edeSortimentsAbo/EdeMemberId\";\r\n\r\n@Component({\r\n selector: \"edeSortiment\",\r\n templateUrl: \"edeSortimentsAbo.component.html\",\r\n styleUrls: []\r\n})\r\nexport class EdeSortimentsAboComponent {\r\n\r\n memberId: EdeMemberId = new EdeMemberId();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public edeMemberIdService: EdeMemberIdService) {\r\n this.update = this.update.bind(this);\r\n this.edeMemberIdService.getConnection(this.modelService.loginService.currentCustomer.id).subscribe((result: EdeMemberId) => {\r\n this.memberId = result;\r\n });\r\n }\r\n\r\n public update() {\r\n this.edeMemberIdService.update(this.memberId).subscribe(() => {\r\n console.log(\"updated memberId\");\r\n });\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'E/D/E Mitgliedsnummer' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"memberId.memberId\" (onChange)=\"update()\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","export class InvoiceSettingDto {\r\n constructor(\r\n public id?: number,\r\n public customerId?: string,\r\n public limit?: number,\r\n public usedLimit?: number,\r\n public pricePerOpenAi?: number,\r\n public allowance?: number,\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { OpenAIInvoice } from \"../Model/OpenAi/OpenAIInvoice\";\r\nimport { InvoiceStatistic } from \"../Model/OpenAi/InvoiceStatistic\";\r\n\r\nimport { MassGenerateKITextsParameter } from \"../Model/MassGenerateKITextsParameter\";\r\nimport { InvoiceSettingDto } from \"../Model/Dto/InvoiceSettingDto\";\r\n\r\n@Injectable()\r\nexport class InvoiceService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n public create(invoice: OpenAIInvoice, customerId: string): Observable<OpenAIInvoice> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.post<OpenAIInvoice>(\"api/Invoice/CreateOpenAI\", invoice, options);\r\n return (result);\r\n }\r\n\r\n public GetInvoiceSetting(customerId: string): Observable<InvoiceSettingDto> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.get<InvoiceSettingDto>(\"api/Invoice/GetInvoiceSetting\", options);\r\n return (result);\r\n }\r\n\r\n public getAll(customerId: string): Observable<InvoiceStatistic[]> {\r\n\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.get<InvoiceStatistic[]>(\"api/Invoice/GetAll\", options);\r\n return (result);\r\n }\r\n\r\n public getTotalProducts(customerId: string, param: MassGenerateKITextsParameter) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.post<number>(\"api/Invoice/GetProductCount\", param, options);\r\n return (result);\r\n }\r\n\r\n public ExportInvoices(customerId: string) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.get<string>(\"api/Invoice/ExportInvoices\", options);\r\n return (result);\r\n } \r\n\r\n public startMassGenerateOpenAITextsJob(customerId: string, param: MassGenerateKITextsParameter) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.post<number>(\"api/Invoice/StartMassGenerateOpenAITextsJob\", param, options);\r\n return (result);\r\n }\r\n\r\n public updateInvoiceSetting(customerId: string, param: InvoiceSettingDto) {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n var result = this.http.post<InvoiceSettingDto>(\"api/Invoice/UpdateInvoiceSetting\", param, options);\r\n return (result);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Benutztes Limit ' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.usedLimit\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Limit ' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"invoiceSetting.limit\" format=\"#,##0.## €\" (onValueChanged)=\"update()\" [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Preis pro Textgenerierung' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"!isAdmin()\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.pricePerOpenAi\" (onValueChanged)=\"update()\" [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-2 flex-fill\" *ngIf=\"isAdmin() || invoiceSetting.allowance > 0\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Freibetrag' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"!isAdmin()\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.allowance\" (onValueChanged)=\"update()\" [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value\">\r\n <dx-button text=\"{{ 'Export' | translate }}\" icon=\"download\" style=\"width:'100%'\" (onClick)=\"export()\"></dx-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n<dx-chart id=\"chart\" [dataSource]=\"invoices\">\r\n <dxi-series argumentField=\"day\" type=\"bar\"\r\n valueField=\"costs\" format=\"#,##0.## €\" name=\"{{ 'Kosten' | translate }}\">\r\n </dxi-series>\r\n <dxo-argument-axis [workdaysOnly]=\"false\" argumentType=\"date\">\r\n <dxo-label wordWrap=\"none\" format=\"dd.MM.yy\"></dxo-label>\r\n </dxo-argument-axis>\r\n</dx-chart>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TestResult } from \"../../Model/Dto/TestResult\";\r\nimport { MavisConnection } from '../../Model/Dto/MavisConnection';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { WawiSettings } from \"../../Model/User/WawiSettings\";\r\nimport { CustomField } from \"../../Model/User/CustomField\";\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { InvoiceService } from \"../../Services/invoice.service\";\r\nimport { InvoiceStatistic } from \"../../Model/OpenAi/InvoiceStatistic\";\r\nimport { InvoiceSettingDto } from \"../../Model/Dto/InvoiceSettingDto\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"invoice\",\r\n templateUrl: \"invoice.component.html\"\r\n})\r\nexport class InvoiceComponent {\r\n invoices: InvoiceStatistic[];\r\n invoiceSetting: InvoiceSettingDto = new InvoiceSettingDto();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public invoiceService: InvoiceService, public http: HttpClient) {\r\n this.update = this.update.bind(this);\r\n this.isAdmin = this.isAdmin.bind(this);\r\n this.export = this.export.bind(this);\r\n\r\n invoiceService.getAll(modelService.loginService.currentCustomer.id).subscribe((result: InvoiceStatistic[]) => {\r\n this.invoices = result;\r\n this.invoices.forEach(x => x.day = new Date(x.day));\r\n });\r\n invoiceService.GetInvoiceSetting(modelService.loginService.currentCustomer.id).subscribe((result: InvoiceSettingDto) => {\r\n this.invoiceSetting = result;\r\n });\r\n\r\n }\r\n\r\n public update() {\r\n this.invoiceService.updateInvoiceSetting(this.modelService.loginService.currentCustomer.id, this.invoiceSetting).subscribe((result: InvoiceSettingDto) => {\r\n this.invoiceSetting = result;\r\n });\r\n }\r\n\r\n public isAdmin() {\r\n return this.modelService.loginService.isAdmin;\r\n }\r\n\r\n public export() {\r\n this.invoiceService.ExportInvoices(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n if (result != null && result != \"\")\r\n window.open(result, '_blank');\r\n else\r\n this.modelService.systemService.notifyInfo(\"Es gibt noch keine Rechnungen im Account\");\r\n });\r\n }\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\">\r\n <div class=\"px-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\" (onToolbarPreparing)=\"onGridToolbarPreparing($event)\" [dataSource]=\"customers\"\r\n keyExpr=\"id\" [remoteOperations]=\"false\" [allowColumnReordering]=\"true\" [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\" noDataText=\"\" [showBorders]=\"true\" (onSelectionChanged)=\"onCustomerClick($event)\"\r\n (onContentReady)=\"onContentReadyHandler($event)\">\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n <div *dxTemplate=\"let toolbaritem of 'newAccountButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" *ngIf=\"modelService.loginService.isAdmin\"\r\n text=\"{{ 'Neuer Account' | translate }}\" (onClick)=\"showAddCustomer()\"\r\n hint=\"{{ 'Neuen Acount anlegen' | translate }}\"></dx-button>\r\n </div>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"\r\n placeholder=\"{{ 'Account suchen' | translate }} \" [(text)]=\"searchText\"></dxo-search-panel>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-editing mode=\"row\" [useIcons]=\"true\"></dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"MyAccountAccountsStateNewUIV2\"\r\n savingTimeout=\"0\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Account' | translate }}\"\r\n cellTemplate=\"nameCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'nameCellTemplate'\">\r\n {{hideName(data.value)}}\r\n </div>\r\n\r\n <dxi-column dataField=\"city\" caption=\"{{ 'Stadt' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"isTestAccount\" [width]=\"50\" caption=\"{{ 'Test' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"accountValidDate\" [width]=\"95\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\"\r\n caption=\"{{ 'Ablauf' | translate }}\"></dxi-column>\r\n <dxi-column type=\"buttons\" caption=\"\" [width]=\"50\">\r\n <dxi-button *ngIf=\"modelService.loginService.isAdmin\" icon=\"trash\"\r\n [onClick]=\"deleteCustomer\"></dxi-button><!---->\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"id\" [visible]=\"false\"></dxi-column>\r\n\r\n\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column look=\"light\" class=\"w-100\" style=\"max-width: 67%;\">\r\n <div slot=\"content\" class=\"h-100 w-100 px-3\">\r\n <dx-scroll-view *ngIf=\"customer\" showScrollbar=\"always\" width=\"100%\">\r\n <div class=\"dx-fieldset\">\r\n <!--CustomerName-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(0)\" (mouseleave)=\"ttt(0)\">\r\n {{ 'Name' | translate }}\r\n </div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\"\r\n id=\"tt0\">\r\n <label class=\"placeLabel {{ customer.name?.length>0 ? 'placeLabelSmall' : '' }}\">ACCOUNT_NAME</label>\r\n <dx-text-box id=\"accountName\" [(value)]=\"customer.name\" [showClearButton]=\"true\"\r\n (onValueChanged)=\"updateCustomer($event)\"\r\n [readOnly]=\"!modelService.loginService.isManager\"></dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt0\" class=\"toolTip toolTipField\" [(visible)]=\"v[0]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Der Accountname wird in der Accountübersicht angezeigt' | translate }}\r\n\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--CustomerStreet-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(1)\" (mouseleave)=\"ttt(1)\">\r\n {{ 'Straße' | translate }}\r\n </div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\"\r\n id=\"tt1\">\r\n <label class=\"placeLabel {{ customer.street?.length>0 ? 'placeLabelSmall' : '' }}\">ACCOUNT_STREET</label>\r\n <dx-text-box id=\"accountStreet\" [(value)]=\"customer.street\" [showClearButton]=\"true\"\r\n (onValueChanged)=\"updateCustomer($event)\"\r\n [readOnly]=\"!modelService.loginService.isManager\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--PLZ-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(2)\" (mouseleave)=\"ttt(2)\">\r\n {{\r\n 'Postleitzahl' |\r\n translate\r\n }}\r\n </div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\"\r\n id=\"tt2\">\r\n <label class=\"placeLabel {{ customer.zip?.length>0 ? 'placeLabelSmall' : '' }}\">ZIP</label>\r\n <dx-text-box [(value)]=\"customer.zip\" [showClearButton]=\"true\" (onValueChanged)=\"updateCustomer($event)\"\r\n [readOnly]=\"!modelService.loginService.isManager\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--City-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(3)\" (mouseleave)=\"ttt(3)\">\r\n {{ 'Stadt' | translate }}\r\n </div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\"\r\n id=\"tt3\">\r\n <label class=\"placeLabel {{ customer.city?.length>0 ? 'placeLabelSmall' : '' }}\">ACCOUNT_CITY</label>\r\n <dx-text-box [(value)]=\"customer.city\" [showClearButton]=\"true\" (onValueChanged)=\"updateCustomer($event)\"\r\n [readOnly]=\"!modelService.loginService.isManager\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--Language-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(4)\" (mouseleave)=\"ttt(4)\">\r\n {{\r\n 'Hauptsprache' |\r\n translate\r\n }}\r\n </div>\r\n <div class=\"dx-field-value\" id=\"tt4\">\r\n <dx-select-box [dataSource]=\"possibleLanguages\" displayExpr=\"language\" valueExpr=\"code\"\r\n [(value)]=\"customer.defaultLanguage\" fieldTemplate=\"field\" (onValueChanged)=\"updateCustomer($event)\"\r\n style=\"background-color:white;\" [readOnly]=\"!modelService.loginService.isManager\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img src=\"images/flags/{{data.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n {{data.language}}\r\n </div>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img *ngIf=\"data!=null\" src=\"images/flags/{{data.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n <dx-text-box value=\"{{data!=null ? data.language : ''}}\" [readOnly]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <!--NextPimVersion-->\r\n\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.isManager\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'NextPim Version' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [(value)]=\"customer.pimLicense\" [items]=\"versions\"\r\n [readOnly]=\"!modelService.loginService.isAdmin\" placeholder=\"\"\r\n (onValueChanged)=\"changeVersion($event)\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\"\r\n *ngIf=\"modelService.loginService.isAdmin && modelService.loginService.hasAddonDEVELOPMENT\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Account Typ' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [(value)]=\"customer.accountType\" [items]=\"accountTypes\" placeholder=\"\"\r\n (onValueChanged)=\"changeVersion($event)\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.isAdmin\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Account gültig bis' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-date-box id=\"DateBox\" [(value)]=\"customer.accountValidDate\" [showClearButton]=\"true\"\r\n displayFormat=\"dd.MM.yyyy\" type=\"date\" valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"updateCustomer($event)\"></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.isAdmin\">\r\n <div class=\"dx-field-label jobListTD\" (mouseenter)=\"ttt(1)\" (mouseleave)=\"ttt(1)\">\r\n {{\r\n 'Test-Account' |\r\n translate\r\n }}\r\n </div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch (onValueChanged)=\"updateCustomer($event)\" [(value)]=\"customer.isTestAccount\"\r\n switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <!--CustomerId-->\r\n <div class=\"dx-field\"\r\n *ngIf=\"modelService.loginService.isAdmin && modelService.loginService.hasAddonDEVELOPMENT\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Customer Id' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [value]=\"customer.id\" [readOnly]=\"true\"></dx-text-box>\r\n <dx-text-box [value]=\"customer.id.split('-').join('')\" [readOnly]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <dx-tab-panel [dataSource]=\"pages\" [showNavButtons]=\"true\" [selectedIndex]=\"0\">\r\n <div *dxTemplate=\"let company of 'userTemplate'\">\r\n <userManagement></userManagement>\r\n </div>\r\n\r\n\r\n <!--SETUP-->\r\n <div *dxTemplate=\"let company of 'setupTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'BMEcat Hinweise anzeigen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"updateUser($event)\"\r\n [(value)]=\"modelService.loginService.showPlaceHolders\" switchedOffText=\"NO\"\r\n switchedOnText=\"BMEcat\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Feldhinweise aktivieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"updateUser($event)\" [(value)]=\"modelService.loginService.showToolTips\"\r\n switchedOffText=\"PRO\" switchedOnText=\"HELP\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Technische Hinweise aktivieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"updateUser($event)\" [(value)]=\"modelService.loginService.showProToolTips\"\r\n switchedOffText=\"\" switchedOnText=\"PRO\"></dx-switch>\r\n </div>\r\n </div>\r\n <!--Language-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Anzeigesprache' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"possibleFrontEndLanguages\" displayExpr=\"language\" valueExpr=\"code\"\r\n [(value)]=\"modelService.loginService.currentUser.frontEndLanguage\" fieldTemplate=\"field\"\r\n (onValueChanged)=\"updateUser($event)\" style=\"background-color: white;\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img src=\"images/flags/{{data.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n {{data.language}}\r\n </div>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img *ngIf=\"data!=null\" src=\"images/flags/{{data.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n <dx-text-box value=\"{{data!=null ? data.language : ''}}\" [readOnly]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--ADDONS-->\r\n <div *dxTemplate=\"let company of 'addonsTemplate'\">\r\n <div *ngIf=\"customer\">\r\n <div class=\"dx-fieldset\">\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"modelService.loginService.isAdmin\" location=\"before\" widget=\"dxButton\"\r\n [options]=\"{ type: 'default', text: 'Demo Defaultwerte' | translate , onClick: setDemoValues}\"></dxi-item>\r\n <dxi-item *ngIf=\"modelService.loginService.isAdmin\" location=\"before\" widget=\"dxButton\"\r\n [options]=\"{ type: 'default', text: 'Alles einschalten' | translate , onClick: setAllAddons}\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <dx-tag-box [value]=\"normalAddons\"\r\n [dataSource]=\"possibleNormalAddons\" \r\n [readOnly]=\"!modelService.loginService.isAdmin\"\r\n [acceptCustomValue]=\"false\"\r\n [showSelectionControls]=\"true\"\r\n [searchEnabled]=\"true\"\r\n label=\"{{ 'Addons' | translate }}\"\r\n stylingMode=\"outlined\"\r\n (onValueChanged)=\"onAddonChanged($event)\"\r\n (onClose)=\"refresh()\">\r\n </dx-tag-box>\r\n <br />\r\n <dx-tag-box [value]=\"exportAddons\"\r\n [dataSource]=\"possibleExportAddons\" \r\n [readOnly]=\"!modelService.loginService.isAdmin\"\r\n [acceptCustomValue]=\"false\"\r\n [showSelectionControls]=\"true\" \r\n [searchEnabled]=\"true\"\r\n label=\"{{ 'Ausgabekanäle' | translate }}\"\r\n stylingMode=\"outlined\"\r\n (onValueChanged)=\"onAddonChanged($event)\"\r\n (onClose)=\"refresh()\">\r\n </dx-tag-box>\r\n <br />\r\n <dx-tag-box [value]=\"classificationAddons\"\r\n [dataSource]=\"possibleClassificationAddons\" \r\n [readOnly]=\"!modelService.loginService.isAdmin\"\r\n [acceptCustomValue]=\"false\"\r\n [showSelectionControls]=\"true\" \r\n [searchEnabled]=\"true\"\r\n label=\"{{ 'Klassifikationen' | translate }}\"\r\n stylingMode=\"outlined\"\r\n (onValueChanged)=\"onAddonChanged($event)\"\r\n (onClose)=\"refresh()\">\r\n </dx-tag-box>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let dsc of 'dscTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <dscInfos></dscInfos>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- OSG -->\r\n <div *dxTemplate=\"let company of 'osgTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <osgCon></osgCon>\r\n </div>\r\n </div>\r\n\r\n <!-- Mavis -->\r\n <div *dxTemplate=\"let company of 'mavisTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <mavisCon></mavisCon>\r\n </div>\r\n </div>\r\n <!--easyCatalog-->\r\n <div *dxTemplate=\"let company of 'easyCatalogTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <easyCatalog [(customerId)]=\"customer.id\"></easyCatalog>\r\n </div>\r\n </div>\r\n <!--NORDWEST-->\r\n <div *dxTemplate=\"let company of 'nordwestTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <sendToNWConfig></sendToNWConfig>\r\n </div>\r\n </div>\r\n <!-- Wawi-->\r\n\r\n <div *dxTemplate=\"let company of 'wawiTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <wawiSettings></wawiSettings>\r\n </div>\r\n </div>\r\n\r\n <!-- Deepl-->\r\n <div *dxTemplate=\"let company of 'deeplTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <deeplCon></deeplCon>\r\n </div>\r\n </div>\r\n\r\n <!-- Recurring Jobs-->\r\n <div *dxTemplate=\"let company of 'recurringJobsTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <recurringJobs></recurringJobs>\r\n </div>\r\n </div>\r\n\r\n <!-- FTP Server-->\r\n <div *dxTemplate=\"let company of 'ftpServerTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <ftpServer></ftpServer>\r\n </div>\r\n </div>\r\n\r\n <!-- EDE Sortimentsabo-->\r\n <div *dxTemplate=\"let company of 'edeSortimentsAboTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <edeSortiment></edeSortiment>\r\n </div>\r\n </div>\r\n\r\n <!-- Rechnungen-->\r\n <div *dxTemplate=\"let company of 'invoiceTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <invoice></invoice>\r\n </div>\r\n </div>\r\n\r\n\r\n <!--Statistik-->\r\n <div *dxTemplate=\"let company of 'statisticTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <dx-chart id=\"chart\" [dataSource]=\"customerStatistics\">\r\n <dxo-title text=\"{{ 'Statistik' | translate }}\">\r\n <dxo-subtitle text=\"{{customer.name}}\">\r\n </dxo-subtitle>\r\n </dxo-title>\r\n <dxi-series valueField=\"skuCount\" name=\"{{ 'Eindeutige Produkte' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"fileCount\" name=\"{{ 'Anzahl Medien' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"sumFileSize\" name=\"{{ 'Mediengröße in MB' | translate }}\"></dxi-series>\r\n <dxo-common-series-settings argumentField=\"date\" type=\"spline\" hoverMode=\"includePoints\">\r\n <dxo-point hoverMode=\"allArgumentPoints\"></dxo-point>\r\n </dxo-common-series-settings>\r\n <dxo-tooltip [enabled]=\"true\" [customizeTooltip]=\"customizeTooltip\">\r\n </dxo-tooltip>\r\n <dxo-argument-axis [workdaysOnly]=\"true\" argumentType=\"datetime\">\r\n <dxo-label wordWrap=\"none\" format=\"dd.MM.yy\" [overlappingBehavior]=\"hide\"></dxo-label>\r\n </dxo-argument-axis>\r\n <dxo-legend verticalAlignment=\"bottom\" horizontalAlignment=\"center\" itemTextPosition=\"bottom\">\r\n </dxo-legend>\r\n </dx-chart>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </dx-tab-panel>\r\n\r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n\r\n\r\n<dx-popup [width]=\"400\" [height]=\"200\" [showTitle]=\"true\" title=\"{{ 'Account anlegen' | translate }}\"\r\n [dragEnabled]=\"false\" [hideOnOutsideClick]=\"true\" [showCloseButton]=\"true\" [(visible)]=\"addAccountVisible\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Account anlegen' | translate, onClick: addCustomer }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Abbrechen' | translate, onClick: hideAddCustomer }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup [width]=\"500\" [height]=\"200\" [showTitle]=\"true\" title=\"{{ 'Account löschen' | translate }}\"\r\n [dragEnabled]=\"false\" [hideOnOutsideClick]=\"true\" [showCloseButton]=\"true\" [(visible)]=\"deleteAccountVisible\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Account löschen' | translate, onClick: confirmDelete }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-field-label\" style=\"width:'100%'\">\r\n {{\r\n 'Wiederhole hier den Accountnamen um den Account zu löschen' |\r\n translate\r\n }}\r\n </div>\r\n <dx-text-box [(value)]=\"deleteConfirmName\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n</dx-popup>\r\n\r\n<!--<dx-popup [width]=\"304\"\r\n [height]=\"200\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Benutzer anlegen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"addUserVisible\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Benutzer anlegen' | translate, onClick: addUser }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: hideAddUser }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <dx-text-box [(value)]=\"newUserMail\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\"></dx-text-box>\r\n </div>\r\n</dx-popup>-->\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Customer } from \"../../Model/User/Customer\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { CustomerStatistics } from \"../../Model/Dto/CustomerStatistics\";\r\nimport { LanguageFlag } from \"../../Model/Dto/LanguageFlag\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { OsgConnection } from '../../Model/Dto/OsgConnection';\r\nimport { MavisConnection } from '../../Model/Dto/MavisConnection';\r\nimport { SendToNWConfig } from '../../Model/Dto/SendToNWConfig';\r\nimport { WawiSettings } from \"../../Model/User/WawiSettings\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CustomerService } from \"../../Services/customer.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { PimLicense } from \"../../Model/User/PimLicense\";\r\nimport { AddonService } from \"../../Services/addon.service\";\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\n\r\n@Component({\r\n selector: \"myAccount\",\r\n templateUrl: \"myAccount.component.html\"\r\n})\r\nexport class MyAccountComponent implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;\r\n\r\n public customers: Customer[];\r\n versions: string[] = Object.values(PimLicense);\r\n version: string = \"Essential\";\r\n\r\n accountTypes: string[] = [\"Unknown\",\r\n \"Dealer\",\r\n \"Manufacturer\",\r\n \"DscDealer\"];\r\n\r\n possibleNormalAddons: string[] = [];\r\n possibleExportAddons: string[] = [];\r\n possibleClassificationAddons: string[] = [];\r\n\r\n isClaimDropDownBoxOpened: boolean = false;\r\n loggedInSubscription: any = null;\r\n customerStatistics: CustomerStatistics[];\r\n\r\n\r\n get customer(): Customer {\r\n return this.modelService.loginService.currentCustomer;\r\n }\r\n\r\n normalAddons: string[] = [];\r\n exportAddons: string[] = []; \r\n classificationAddons: string[] = []; \r\n\r\n readonly allAddons = [\"CSV\", \"EXCEL_TEMPLATE\", \"AGREEMENT\", \"CATALOG_DETAILS\", \"VALIDATION\", \"UDX\", \"SHOP_VIEW\", \"ACTIONS\", \"SHOPWARE\",\r\n \"STATUS\", \"TRANSLATE\", \"PRODUCT_DETAILS\", \"SEO\", \"DATA_QUALITY\", \"PRINT\", \"TWOBA\", \"OSG\", \"CLASSIFICATION\", \"ECOMMERCE\", \"EDENUMBERS\"\r\n , \"LEGALITY\", \"DATA_QUALITY_REPORT\", \"SEARCH\", \"MAVIS\", \"MULTI_ACCOUNT\", \"ETIM\", \"ECLASS\", \"NWCLASS\", \"NEXTPIM_DATA_QUALITY_REPORT\",\r\n \"SHOPWARE_6\", \"NORDWEST\", \"PRODUCT_TEMPLATE\", \"EBAY\", \"CS_CART\", \"CATEGORY_EXPORT\", \"REPORT_PRODUCT_DATASHEET\", \"DEEPL_TRANSLATE\", \"SHOPWARE6_VARIANTS\"\r\n , \"FEATURE_MAPPING\", \"TEMPLATE_LUKAS\", \"GEVIS\"];\r\n\r\n readonly demoAddons = [\"CSV\", \"EXCEL_TEMPLATE\", \"VALIDATION\", \"UDX\", \"SHOP_VIEW\", \"ACTIONS\", \"STATUS\", \"TRANSLATE\", \"DATA_QUALITY\", \"CLASSIFICATION\", \"LEGALITY\",\r\n \"ETIM\", \"NEXTPIM_DATA_QUALITY_REPORT\", \"SHOPWARE_6\", \"PRODUCT_TEMPLATE\", \"EBAY\", \"REPORT_PRODUCT_DATASHEET\", \"DEEPL_TRANSLATE\", \"SHOPWARE6_VARIANTS\"];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService,\r\n public customerService: CustomerService, public loginService: LoginService, public addonService: AddonService) {\r\n this.addCustomer = this.addCustomer.bind(this);\r\n this.hideAddCustomer = this.hideAddCustomer.bind(this);\r\n this.showAddCustomer = this.showAddCustomer.bind(this);\r\n this.showAddUser = this.showAddUser.bind(this);\r\n this.setDemoValues = this.setDemoValues.bind(this);\r\n this.setAllAddons = this.setAllAddons.bind(this);\r\n this.onLoggedIn = this.onLoggedIn.bind(this);\r\n this.onContentReadyHandler = this.onContentReadyHandler.bind(this);\r\n this.deleteCustomer = this.deleteCustomer.bind(this);\r\n this.confirmDelete = this.confirmDelete.bind(this);\r\n this.onAddonChanged = this.onAddonChanged.bind(this);\r\n }\r\n\r\n\r\n\r\n async ngOnInit() {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.updateCurrentCustomer();\r\n this.refresh();\r\n this.modelService.systemService.help = [];\r\n this.modelService.systemService.showHelp = false;\r\n this.possibleExportAddons = await lastValueFrom(this.addonService.getAllExportAddons());\r\n this.possibleNormalAddons = await lastValueFrom(this.addonService.getAllNormalAddons());\r\n this.possibleClassificationAddons = await lastValueFrom(this.addonService.getAllClassificationAddons());\r\n this.refreshAddons();\r\n\r\n\r\n this.translate.get('Meine Accounts').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n if (this.modelService.loginService.loggedIn)\r\n this.onLoggedIn();\r\n else\r\n this.loggedInSubscription = this.modelService.loginService.onLoggedIn.subscribe(() => this.onLoggedIn());\r\n }\r\n\r\n ngOnDestroy() {\r\n try {\r\n if (this.loggedInSubscription != null)\r\n this.loggedInSubscription.unsubscribe();\r\n }\r\n catch { }\r\n }\r\n\r\n onLoggedIn() {\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((result: Customer[]) => {\r\n this.customers = result;\r\n });\r\n }\r\n\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newAccountButtonTemplate'\r\n });\r\n }\r\n\r\n onUserGridToolbarPreparing(e) {\r\n }\r\n\r\n\r\n pages = [];\r\n\r\n get searchText() {\r\n return this.modelService.systemService.searchText;\r\n }\r\n\r\n set searchText(value) {\r\n this.modelService.systemService.searchText = value;\r\n }\r\n\r\n private refresh() {\r\n\r\n let nutzerText = \"\";\r\n this.translate.get('Nutzer').subscribe((text: string) => {\r\n nutzerText = text;\r\n });\r\n\r\n let einstellungenText = \"\";\r\n this.translate.get('Einstellungen').subscribe((text: string) => {\r\n einstellungenText = text;\r\n });\r\n let statisticText = \"\";\r\n this.translate.get('Statistik').subscribe((text: string) => {\r\n statisticText = text;\r\n });\r\n\r\n let dscText = \"\";\r\n this.translate.get('Data Sharing Cockpit').subscribe((text: string) => {\r\n dscText = text;\r\n });\r\n\r\n let osgText = \"\";\r\n this.translate.get('OSG Verbindung').subscribe((text: string) => {\r\n osgText = text;\r\n });\r\n let mavisText = \"\";\r\n this.translate.get('Mavis Verbindung').subscribe((text: string) => {\r\n mavisText = text;\r\n });\r\n\r\n let deeplText = \"\";\r\n this.translate.get('Deepl Verbindung').subscribe((text: string) => {\r\n deeplText = text;\r\n });\r\n\r\n\r\n let rJobsText = \"\";\r\n this.translate.get('Autonmatische Jobs').subscribe((text: string) => {\r\n rJobsText = text;\r\n });\r\n\r\n let easyCatalogText = \"\";\r\n this.translate.get('EasyCatalog').subscribe((text: string) => {\r\n easyCatalogText = text;\r\n });\r\n let nordwestText = \"\";\r\n this.translate.get('NORDWEST').subscribe((text: string) => {\r\n nordwestText = text;\r\n });\r\n let wawiText = \"\";\r\n this.translate.get('Wawi / ERP').subscribe((text: string) => {\r\n wawiText = text;\r\n });\r\n let edeAboText = \"\";\r\n this.translate.get('EDE Sortimentsabo').subscribe((text: string) => {\r\n edeAboText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: nutzerText, template: \"userTemplate\" },\r\n { id: 2, title: einstellungenText, template: \"setupTemplate\" },\r\n { id: 5, title: statisticText, template: \"statisticTemplate\" },\r\n ];\r\n\r\n if (this.modelService.loginService.hasAddonDEVELOPMENT) {\r\n this.pages.push({ id: 16, title: dscText, template: \"dscTemplate\" });\r\n }\r\n\r\n\r\n if (this.modelService.loginService.isAdmin) {\r\n this.pages.push({ id: 3, title: \"Addons\", template: \"addonsTemplate\" });\r\n }\r\n\r\n if (this.modelService.loginService.isManager) {\r\n\r\n this.pages.push({ id: 12, title: rJobsText, template: \"recurringJobsTemplate\" });\r\n this.pages.push({ id: 13, title: \"FTP Server\", template: \"ftpServerTemplate\" });\r\n\r\n if (this.modelService.loginService.hasAddonKI_TEXTS) {\r\n this.pages.push({ id: 15, title: \"Description Wizard\", template: \"invoiceTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonOSG) {\r\n this.pages.push({ id: 6, title: osgText, template: \"osgTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonNordwest && this.modelService.loginService.currentUser.currentClaim == \"ADMIN\") {\r\n this.pages.push({ id: 9, title: nordwestText, template: \"nordwestTemplate\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonMavis) {\r\n this.pages.push({ id: 7, title: mavisText, template: \"mavisTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonDEEPLTRANSLATE && this.customer.pimLicense == PimLicense.EdeEditon) {\r\n this.pages.push({ id: 11, title: deeplText, template: \"deeplTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonPRINT) {\r\n this.pages.push({ id: 8, title: easyCatalogText, template: \"easyCatalogTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonWawiErp) {\r\n this.pages.push({ id: 10, title: wawiText, template: \"wawiTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonEDESortimentsAbo && this.modelService.loginService.currentUser.currentClaim == \"ADMIN\") {\r\n this.pages.push({ id: 14, title: edeAboText, template: \"edeSortimentsAboTemplate\" });\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n getLanguageText(language): string {\r\n return this.modelService.loginService.getLanguageText(language);\r\n }\r\n\r\n getLanguageFlag(language) {\r\n return this.modelService.loginService.getLanguageFlag(language);\r\n }\r\n\r\n onCustomerClick(e) {\r\n if (e.selectedRowsData[0].id != this.customer.id) {\r\n this.modelService.loginService.setCustomer(e.selectedRowsData[0].id).then(() => {\r\n this.updateCurrentCustomer();\r\n });\r\n }\r\n }\r\n\r\n onContentReadyHandler(e) {\r\n let key = e.component.getRowIndexByKey(this.modelService.loginService.currentUser.customerId);\r\n e.component.selectRowsByIndexes([key]);\r\n }\r\n\r\n\r\n\r\n\r\n updateCurrentCustomer() {\r\n this.refresh();\r\n this.modelService.loginService.getCustomerStatistics(this.customer.id).subscribe((stats: CustomerStatistics[]) => {\r\n this.customerStatistics = stats.map((au: CustomerStatistics) => new CustomerStatistics().deserialize(au));;\r\n });\r\n\r\n this.modelService.osgConnectionService.getConnection(this.customer.id, false).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null)\r\n this.modelService.loginService.osgConnection = result;\r\n else {\r\n this.modelService.loginService.osgConnection = new OsgConnection();\r\n this.modelService.loginService.osgConnection.customerId = this.customer.id;\r\n }\r\n });\r\n\r\n\r\n this.modelService.osgConnectionService.getConnection(this.customer.id, true).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null)\r\n this.modelService.loginService.osgConnectionTest = result;\r\n else {\r\n this.modelService.loginService.osgConnectionTest = new OsgConnection();\r\n this.modelService.loginService.osgConnectionTest.isTest = true;\r\n this.modelService.loginService.osgConnectionTest.customerId = this.customer.id;\r\n }\r\n });\r\n\r\n\r\n this.modelService.mavisConnectionService.getTestConnection(this.customer.id).subscribe(\r\n (result: MavisConnection) => {\r\n if (result != null)\r\n this.modelService.loginService.mavisConnectionTest = result;\r\n else\r\n this.modelService.loginService.mavisConnectionTest = new MavisConnection();\r\n\r\n });\r\n this.modelService.mavisConnectionService.getLiveConnection(this.customer.id).subscribe(\r\n (result: MavisConnection) => {\r\n if (result != null)\r\n this.modelService.loginService.mavisConnectionLive = result;\r\n else\r\n this.modelService.loginService.mavisConnectionLive = new MavisConnection();\r\n\r\n });\r\n\r\n this.modelService.wawiSettingsService.getWawiSettings(this.customer.id).subscribe(\r\n (result: WawiSettings) => {\r\n if (result != null)\r\n this.modelService.loginService.wawiSettings = result;\r\n else {\r\n this.modelService.loginService.wawiSettings = new WawiSettings();\r\n this.modelService.loginService.wawiSettings.customerId = this.customer.id;\r\n }\r\n\r\n });\r\n\r\n this.modelService.sendToNWConfigService.getConnection(this.customer.id).subscribe(\r\n (result: SendToNWConfig) => {\r\n if (result != null)\r\n this.modelService.loginService.sendToNWConfig = result;\r\n else\r\n this.modelService.loginService.sendToNWConfig = new SendToNWConfig();\r\n this.modelService.loginService.sendToNWConfig.customerId = this.customer.id;\r\n });\r\n }\r\n\r\n\r\n updateUser(event = null) {\r\n if (event != null && event.event == undefined)\r\n return;\r\n\r\n this.modelService.loginService.CheckAndSetFrontEndLanguage();\r\n this.modelService.loginService.updateUser();\r\n }\r\n\r\n isCurrentCustomer(customer: Customer): boolean {\r\n return customer.id != this.modelService.loginService.currentUser.customerId;\r\n\r\n }\r\n\r\n async addonChanged(newAddons) {\r\n const errors = await lastValueFrom(this.addonService.setAddonsToCustomer(this.customer.id, newAddons));\r\n if (errors.length > 0) {\r\n this.modelService.systemService.notifyWarning(errors.join(\"\\n\"));\r\n }\r\n const addons = await lastValueFrom(this.addonService.getAddonsOfCustomer(this.customer.id));\r\n this.modelService.loginService.setAddons(addons);\r\n this.refresh();\r\n }\r\n\r\n async onAddonChanged(event: { previousValue: string[], value: string[], event }) {\r\n if (event.event == undefined) //event caused programmatically\r\n return;\r\n\r\n let addedAddons: string[] = event.value.filter(x => !event.previousValue.some(y=>y==x));\r\n let removedAddons: string[] = event.previousValue.filter(x => !event.value.some(y => y == x));;\r\n\r\n const errors = await lastValueFrom(this.addonService.addonSelectionChanged(this.customer.id, addedAddons, removedAddons));\r\n if (errors.length > 0) {\r\n this.modelService.systemService.notifyWarning(errors.join(\"\\n\"));\r\n }\r\n const addons = await lastValueFrom(this.addonService.getAddonsOfCustomer(this.customer.id));\r\n this.modelService.loginService.setAddons(addons);\r\n this.refreshAddons();\r\n }\r\n\r\n refreshAddons() {\r\n this.normalAddons = this.modelService.loginService.addons.filter(x => this.possibleNormalAddons.includes(x)).sort((a, b) => a.localeCompare(b));\r\n this.exportAddons = this.modelService.loginService.addons.filter(x => this.possibleExportAddons.includes(x)).sort((a, b) => a.localeCompare(b));\r\n this.classificationAddons = this.modelService.loginService.addons.filter(x => this.possibleClassificationAddons.includes(x)).sort((a, b) => a.localeCompare(b));\r\n\r\n }\r\n\r\n\r\n get possibleLanguages(): LanguageFlag[] {\r\n return ViewService.languages;\r\n }\r\n\r\n get possibleFrontEndLanguages(): LanguageFlag[] {\r\n return ViewService.frontendLanguages;\r\n }\r\n\r\n public addAccountVisible: boolean = false;\r\n\r\n showAddCustomer() {\r\n this.addAccountVisible = true;\r\n }\r\n\r\n hideAddCustomer() {\r\n this.addAccountVisible = false;\r\n }\r\n\r\n addCustomer() {\r\n this.addAccountVisible = false;\r\n var customer = new Customer();\r\n customer.defaultLanguage = \"deu\";\r\n this.modelService.loginService.customerService.create(customer).subscribe((createdCustomer: Customer) => {\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((result: Customer[]) => {\r\n this.customers = result;\r\n this.modelService.loginService.currentCustomer = createdCustomer;\r\n this.updateCurrentCustomer();\r\n });\r\n });\r\n }\r\n\r\n public addUserVisible: boolean = false;\r\n public newUserMail: string = \"\";\r\n\r\n showAddUser() {\r\n this.addUserVisible = true;\r\n this.newUserMail = \"\";\r\n }\r\n\r\n async setAllAddons() {\r\n await this.addonChanged(this.allAddons);\r\n }\r\n async setDemoValues() {\r\n await this.addonChanged(this.demoAddons);\r\n }\r\n\r\n\r\n\r\n canUserEdit(user): boolean {\r\n if (user == this.modelService.loginService.currentUser.email) {\r\n return true;\r\n }\r\n\r\n return this.modelService.loginService.isManager;\r\n }\r\n\r\n public statusVisible: boolean = false;\r\n\r\n public toggleStatus() {\r\n if (this.statusVisible) {\r\n this.statusVisible = false;\r\n } else {\r\n this.statusVisible = true;\r\n }\r\n }\r\n\r\n public v: boolean[] = [false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n\r\n hideName(name: string) {\r\n return name;\r\n }\r\n\r\n public changeVersion(event = null) {\r\n if (event != null && event.event == undefined)\r\n return;\r\n\r\n this.modelService.loginService.customerService.update(this.customer).subscribe((result: Customer) => {\r\n this.modelService.loginService.currentCustomer = result;\r\n });\r\n }\r\n\r\n public updateCustomer(event = null) {\r\n if (event != null && event.event == undefined)\r\n return;\r\n\r\n this.modelService.loginService.customerService.update(this.customer).subscribe((result: Customer) => {\r\n this.modelService.loginService.currentCustomer = result;\r\n var key = this.customers.findIndex(x => x.id == result.id);\r\n this.customers[key] = result;\r\n });\r\n }\r\n\r\n public checkEdit(e) {\r\n if (e.data.email == this.modelService.loginService.currentUser.email\r\n || this.modelService.loginService.currentUser.currentClaim == \"ADMIN\"\r\n || this.modelService.loginService.currentUser.currentClaim == \"MANAGER\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n deleteAccountVisible = false;\r\n deleteConfirmName = \"\";\r\n accountToDelete: Customer;\r\n public deleteCustomer(e) {\r\n\r\n\r\n this.deleteConfirmName = \"\";\r\n this.accountToDelete = e.row.data as Customer;\r\n if (this.accountToDelete.id == this.modelService.loginService.currentCustomer.id) {\r\n this.modelService.systemService.notifyWarning(\"Es können nur Accounts gelöscht werden, die nicht aktuell ausgewählt sind\");\r\n }\r\n else {\r\n this.deleteAccountVisible = true;\r\n }\r\n }\r\n\r\n public confirmDelete() {\r\n if (this.modelService.loginService.currentCustomer.name == this.accountToDelete.name) {\r\n this.modelService.systemService.notifyWarning(\"Es können nur Accounts gelöscht werden, die nicht aktuell ausgewählt sind\");\r\n }\r\n else if (this.deleteConfirmName == this.accountToDelete.name || (this.deleteConfirmName == \"\" && this.accountToDelete.name == null)) {\r\n this.customerService.deleteCustomer(this.accountToDelete.id).subscribe((result) => {\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((result: Customer[]) => {\r\n this.customers = result;\r\n });\r\n\r\n this.modelService.systemService.notifyInfo(this.deleteConfirmName + \" wurde gelöscht \");\r\n });\r\n }\r\n else {\r\n this.modelService.systemService.notifyWarning(\"Accountname passt nicht\")\r\n }\r\n\r\n this.deleteAccountVisible = false;\r\n }\r\n\r\n\r\n\r\n}\r\n","<div style=\"height:calc(100vh - 25px);overflow-y:scroll\">\r\n <dx-toolbar>\r\n <dxi-item [visible]=\"modelService.systemService.editHelp && canView('helpSite')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Neue Hilfeseite' | translate, onClick: addHelp}\"></dxi-item>\r\n <dxi-item location=\"after\">\r\n <dx-switch [(value)]=\"modelService.systemService.editHelp\" switchedOffText=\"Help\" (onValueChanged)=\"helpUpdate()\" switchedOnText=\"EDIT\" [readOnly]=\"readOnly('helpSite')\"></dx-switch>\r\n </dxi-item>\r\n </dx-toolbar>\r\n <!-- <dx-switch [(value)]=\"modelService.systemService.editHelp\" switchedOffText=\"Help\" (onValueChanged)=\"helpUpdate()\" switchedOnText=\"EDIT\" style=\"float: right;\"></dx-switch>-->\r\n <div></div>\r\n <dx-sortable [data]=\"modelService.systemService.help\"\r\n (onReorder)=\"onReorder($event)\">\r\n <dx-accordion #accordion\r\n *ngFor=\"let item of modelService.systemService.help\"\r\n [dataSource]=\"[item]\"\r\n [collapsible]=\"true\"\r\n [multiple]=\"false\"\r\n [animationDuration]=\"300\"\r\n [(selectedItems)]=\"modelService.systemService.selectedItems\"\r\n class=\"marginBottom\">\r\n <div *dxTemplate=\"let help of 'title'\">\r\n\r\n <div>{{help.title}}</div>\r\n </div>\r\n <div *dxTemplate=\"let help of 'item'\">\r\n <div style=\"height:500px\" *ngIf=\"modelService.systemService.editHelp\">\r\n <dx-text-box [(value)]=\"help.title\" [showClearButton]=\"true\" (onValueChanged)=\"helpUpdate()\" class=\"marginBottom\"></dx-text-box>\r\n <dx-html-editor [(value)]=\"help.content\"\r\n placeholder=\"\"\r\n height=\"420\"\r\n class=\"marginBottom\"\r\n (onFocusOut)=\"helpUpdate()\"\r\n [readOnly]=\"readOnly('helpSite')\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n </dxo-toolbar>\r\n </dx-html-editor>\r\n <a *ngIf=\"canView('helpSite')\" (click)=\"deleteItem(help)\" class=\"glyphicon glyphicon-trash link\" style=\"float:right;\" title=\"Seite löschen\"></a>\r\n </div>\r\n <div style=\"height:500px\" *ngIf=\"!modelService.systemService.editHelp\">\r\n <span [innerHTML]=\"help.content\"></span>\r\n </div>\r\n </div>\r\n </dx-accordion>\r\n </dx-sortable>\r\n</div>\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CustomerWiki } from \"../../Model/System/CustomerWiki\";\r\n\r\n@Component({\r\n selector: \"help\",\r\n templateUrl: \"help.component.html\"\r\n})\r\nexport class HelpComponent implements OnInit{\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagment : UserManagementService) {\r\n this.addHelp = this.addHelp.bind(this);\r\n this.helpUpdate = this.helpUpdate.bind(this);\r\n this.deleteItem = this.deleteItem.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => {\r\n this.modelService.systemService.help = result.entries\r\n });\r\n }\r\n\r\n addHelp() {\r\n var pageNumber = this.modelService.systemService.help.length + 1;\r\n this.translate.get(\"Neue Seite\").subscribe((text: string) => {\r\n this.modelService.systemService.help.push({ \"title\": text + \" \" + pageNumber, \"content\": \"\" });\r\n });\r\n\r\n\r\n \r\n }\r\n\r\n\r\n\r\n helpUpdate() {\r\n // if (!this.modelService.systemService.editHelp)\r\n {\r\n this.modelService.systemService.saveHelp(this.modelService.loginService.currentUser.customerId);\r\n }\r\n }\r\n\r\n onReorder(e) {\r\n let data = this.modelService.systemService.help[e.fromIndex];\r\n\r\n this.modelService.systemService.help.splice(e.fromIndex, 1);\r\n this.modelService.systemService.help.splice(e.toIndex, 0, data);\r\n this.helpUpdate();\r\n }\r\n\r\n\r\n deleteItem(help) {\r\n var selectedItem = this.modelService.systemService.selectedItems[0];\r\n this.modelService.systemService.selectedItems = [];\r\n this.modelService.systemService.help = this.modelService.systemService.help.filter(element => element.title != selectedItem.title);\r\n this.helpUpdate();\r\n\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagment.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return !this.userManagment.canEdit(name);\r\n }\r\n}\r\n","<div class=\"help h-100\">\r\n <help *ngIf=\"modelService.systemService.showHelp\"></help>\r\n</div> ","import { Component } from '@angular/core';\r\nimport { ModelService } from '../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'help-column',\r\n templateUrl: './help-column.component.html',\r\n styleUrls: [\"./help-column.component.css\"]\r\n})\r\nexport class HelpColumnComponent { \r\n constructor(public modelService: ModelService) {} \r\n}","\r\nimport { Component, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Catalog } from \"../../../Model/Catalog/catalog\";\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\n@Component({\r\n selector: \"importTranslations\",\r\n templateUrl: \"importTranslations.component.html\"\r\n})\r\nexport class ImportTranslationsComponent {\r\n @ViewChild(DxFileUploaderComponent, { static: true })\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n value: any[] = [];\r\n model: Catalog[];\r\n uploadHeaders: any;\r\n\r\n constructor(private modelService: ModelService, private oAuthService: OAuthService) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.uploadHeaders = {\r\n CustomerId: this.modelService.loginService.currentUser.customerId\r\n }\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded() {\r\n this.dxfileuploader.instance.reset();\r\n }\r\n}\r\n","<dx-file-uploader\r\n #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/importTranslationsChunky\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n accept=\".xlsx\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\">\r\n</dx-file-uploader>\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\">\r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onNavigationToolbarPreparing($event)\"\r\n [dataSource]=\"modelService.loginService.customerLanguages\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Sprache im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\"\r\n (onRowClick)=\"onLanguageClick($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'addLanguageButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Sprache' | translate }}\" (onClick)=\"showAddLanguage()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie diese Sprache wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Sprache löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n <dxo-search-panel [visible]=\"false\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"TranslationLanguagesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column name=\"languageFlag\" dataField=\"language\" caption=\"\" width=\"70\" cellTemplate=\"languageFlagTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'languageFlagTemplate'\">\r\n <img src=\"images/flags/{{getLanguageFlag(data.data.language)}}\" class=\"flag\" />\r\n </div>\r\n <dxi-column name=\"language\" dataField=\"language\" caption=\"{{ 'Sprache' | translate }}\" cellTemplate=\"languageTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'languageTemplate'\">\r\n {{translateLanguage(data.data.language)}}\r\n </div>\r\n <dxi-column caption=\"\" width=\"50\" cellTemplate=\"switchLanguageTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'switchLanguageTemplate'\" class=\"center\">\r\n <span *ngIf=\"isCurrentLanguage(data.data)\" class=\"glyphicon glyphicon-ok-circle\" title=\"{{ 'Sprache ist ausgewält' | translate }}\"></span>\r\n </div>\r\n\r\n </dx-data-grid> \r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column helpSwitch=\"true\" look=\"light\"> \r\n <div slot=\"content\" class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onContentToolbarPreparing($event)\"\r\n [dataSource]=\"translations\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Übersetzungen im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"deleteTranslation($event)\"\r\n (onRowUpdated)=\"update($event)\"\r\n [visible]=\"selectedLanguageCode\">\r\n <div *dxTemplate=\"let toolbaritem of 'addTranslationButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Übersetzung' | translate }}\" (onClick)=\"addTranslation()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'excelExportButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Excel Export' | translate }}\" (onClick)=\"exportExcel()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'excelImportButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Excel Import' | translate }}\" (onClick)=\"showImportTranslations()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'deleteTranslationsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"danger\" text=\"{{ 'Übersetzungen löschen' | translate }}\" (onClick)=\"deleteAllTranslations()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button (onClick)=\"selectedLanguageCodeChanged()\" icon=\"refresh\"></dx-button>\r\n </div>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Übersetzung suchen' | translate }}\" width=\"250\"></dxo-search-panel>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-editing mode=\"cell\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie diese Übersetzung wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Übersetzung löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"TranslationTextsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Text' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"translation\" caption=\"{{ 'Übersetzung' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"approved\" caption=\"{{ 'Geprüft' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n </dx-data-grid>\r\n </div> \r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup *ngIf=\"importTranslationsVisible\"\r\n [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"Übersetzungen importieren\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importTranslationsVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importTranslations></importTranslations>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup *ngIf=\"addLanguageVisable\"\r\n [width]=\"600\"\r\n [height]=\"200\"\r\n [showTitle]=\"true\"\r\n title=\"Sprache hinzufügen\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"addLanguageVisable\" \r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Sprache hinzufügen' | translate, onClick: addLanguage }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Sprache</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ addLanguageSelected?.length>0 ? 'placeLabelSmall' : '' }}\">LANGUAGE</label>\r\n <dx-select-box [(value)]=\"addLanguageSelected\"\r\n [items]=\"languages\"\r\n displayExpr=\"language\"\r\n placeholder=\"\"\r\n valueExpr=\"code\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup *ngIf=\"popupDeleteTranslateVisible\"\r\n [width]=\"400\"\r\n [height]=\"220\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Übersetzungen löschen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"popupDeleteTranslateVisible\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Ja' | translate, onClick: deleteAllTranslationsConfirmed }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Nein' | translate, onClick: deleteAllTranslationsClose }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\"> \r\n <p>{{'Wollen Sie alle Übersetzungen wirlich löschen' | translate }}?</p> \r\n </div>\r\n</dx-popup>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { AppUser } from \"../../Model/user/AppUser\";\r\nimport { Translation } from \"../../Model/Dto/Translation\";\r\nimport isString from \"lodash.isstring\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { CustomerWiki } from \"../../Model/System/CustomerWiki\";\r\nimport { LanguageFlag } from \"../../Model/Dto/LanguageFlag\";\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { TranslationService } from '../../Services/translation.service';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n@Component({\r\n selector: \"translations\",\r\n templateUrl: \"translation.component.html\",\r\n styleUrls: [\"./translation.component.css\"]\r\n})\r\nexport class TranslationComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.addLanguage = this.addLanguage.bind(this);\r\n this.deleteAllTranslationsClose = this.deleteAllTranslationsClose.bind(this);\r\n this.deleteAllTranslationsConfirmed = this.deleteAllTranslationsConfirmed.bind(this);\r\n\r\n this.exportExcel = this.exportExcel.bind(this);\r\n this.showImportTranslations = this.showImportTranslations.bind(this);\r\n this.deleteAllTranslations = this.deleteAllTranslations.bind(this);\r\n this.selectedLanguageCodeChanged = this.selectedLanguageCodeChanged.bind(this);\r\n\r\n this.translate.get('Übersetzungen').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n }\r\n\r\n selectedLanguageCode: string;\r\n user: AppUser;\r\n translations: Translation[];\r\n addLanguageVisable: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.user = this.modelService.loginService.currentUser;\r\n\r\n this.modelService.loginService.getLanguages().subscribe(() => {\r\n\r\n if (this.modelService.loginService.customerLanguages.length > 0) {\r\n this.selectedLanguageCode = this.modelService.loginService.customerLanguages[0].language;\r\n this.selectedLanguageCodeChanged();\r\n }\r\n\r\n });\r\n }\r\n\r\n onNavigationToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addLanguageButtonTemplate',\r\n });\r\n }\r\n\r\n onContentToolbarPreparing(e) {\r\n\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'deleteTranslationsButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelImportButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelExportButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addTranslationButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate',\r\n });\r\n }\r\n\r\n get languages(): LanguageFlag[] {\r\n return ViewService.languages;\r\n }\r\n\r\n public onLanguageClick(event) {\r\n this.selectedLanguageCode = event.data.language;\r\n this.selectedLanguageCodeChanged();\r\n }\r\n\r\n public isCurrentLanguage(data) {\r\n return data.language == this.selectedLanguageCode;\r\n }\r\n\r\n public showAddLanguage() {\r\n this.addLanguageSelected = \"\";\r\n this.addLanguageVisable = true;\r\n }\r\n\r\n addLanguageSelected: string = \"\";\r\n\r\n addLanguage() {\r\n let that = this;\r\n\r\n var key = this.modelService.loginService.customerLanguages.findIndex((languageTemplate => languageTemplate.language == this.addLanguageSelected) as any);\r\n if (key > -1) {\r\n that.addLanguageVisable = false;\r\n this.modelService.systemService.notify(new Message(\"Diese Sprache ist bereits angelegt.\")); // TODO: übersetzen!!\r\n return;\r\n }\r\n\r\n this.modelService.translationService.addLanguage2Account(this.addLanguageSelected).subscribe((result: any) => {\r\n that.addLanguageVisable = false;\r\n that.selectedLanguageCode = that.addLanguageSelected;\r\n that.selectedLanguageCodeChanged();\r\n });\r\n }\r\n\r\n translateLanguage(code) {\r\n return TranslationService.translateLanguage(code);\r\n }\r\n\r\n private _importTranslationsVisible: boolean = false;\r\n\r\n get importTranslationsVisible(): boolean {\r\n return this._importTranslationsVisible;\r\n }\r\n\r\n set importTranslationsVisible(value: boolean) {\r\n this._importTranslationsVisible = value;\r\n if (value == false) {\r\n //this.refresh();\r\n }\r\n }\r\n\r\n showImportTranslations() {\r\n this.importTranslationsVisible = true;\r\n }\r\n\r\n selectedLanguageCodeChanged() {\r\n let that = this;\r\n\r\n this.translations = [];\r\n\r\n if (this.selectedLanguageCode !== \"\") {\r\n\r\n this.modelService.translationService.getTranslations(this.selectedLanguageCode, this.modelService.loginService.currentUser.customerId).subscribe((result: Translation[]) => {\r\n //if (result.length > 0) {\r\n that.translations = result;\r\n //}\r\n });\r\n\r\n }\r\n }\r\n\r\n update(event) {\r\n var translation;\r\n if (isString(event)) {\r\n translation = this.translations.find(item => item.id == event);\r\n } else {\r\n if (event.key == null)\r\n return;\r\n translation = this.translations.find(item => item.id == event.key.id);\r\n }\r\n this.modelService.translationService.updateTranslation(translation);\r\n }\r\n\r\n addTranslation(translation: Translation = null, id = null) {\r\n if (id == null) {\r\n translation = new Translation();\r\n translation.customerId = this.modelService.loginService.currentUser.customerId;\r\n translation.targetLanguageCode = this.selectedLanguageCode;\r\n translation.sourceLanguageCode = this.modelService.loginService.currentUser.defaultLanguage;\r\n\r\n this.modelService.translationService.addTranslation(translation).subscribe((result: Translation) => {\r\n this.addTranslation(result, result.id);\r\n });;\r\n\r\n\r\n } else {\r\n translation.id = id;\r\n this.translations.push(translation);\r\n }\r\n }\r\n\r\n getLanguageFlag(language) {\r\n return ViewService.getFlag(language);\r\n }\r\n\r\n exportExcel() {\r\n this.modelService.translationService.exportTranslations(this.selectedLanguageCode, this.modelService.loginService.currentUser.customerId);\r\n this.modelService.systemService.notify(new Message(\"Der Export wird als Job ausgeführt.\")); // TODO: übersetzen!!\r\n }\r\n\r\n\r\n deleteTranslation(event) {\r\n let that = this;\r\n this.modelService.translationService.deleteTranslations(event.data.id).subscribe(() => {\r\n that.selectedLanguageCodeChanged();\r\n });\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n popupDeleteTranslateVisible: boolean = false;\r\n\r\n deleteAllTranslations() {\r\n this.popupDeleteTranslateVisible = true;\r\n }\r\n\r\n deleteAllTranslationsClose() {\r\n this.popupDeleteTranslateVisible = false;\r\n }\r\n\r\n\r\n deleteAllTranslationsConfirmed() {\r\n this.popupDeleteTranslateVisible = false;\r\n\r\n //this.modelService.translationService.deleteAllTranslations();\r\n\r\n let that = this;\r\n this.modelService.translationService.deleteForLanguage(this.selectedLanguageCode)\r\n .subscribe(() => {\r\n that.selectedLanguageCodeChanged();\r\n });\r\n }\r\n\r\n onDeleteClicked(event) {\r\n let that = this;\r\n this.modelService.translationService.deleteLanguage(event.data.language).subscribe(() => {\r\n if (this.modelService.loginService.customerLanguages.length > 0) {\r\n this.selectedLanguageCode = this.modelService.loginService.customerLanguages[0].language;\r\n } else {\r\n this.selectedLanguageCode = \"\";\r\n }\r\n this.selectedLanguageCodeChanged();\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => {\r\n this.modelService.systemService.help = result.entries;\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","export class ValidateExportJob {\r\n\r\n constructor(\r\n public jobId?: number, public customerId?: string\r\n ) {\r\n }\r\n}\r\n","export class DateFilter {\r\n\r\n constructor(\r\n public text?: string,\r\n public dayDelta?: number\r\n ) { }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { MaintenanceMode } from \"../Model/Dto/MaintenanceMode\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MaintenanceModeService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getCurrentState(): Observable<MaintenanceMode> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n };\r\n return (this.http.get<MaintenanceMode>(\"api/MaintenanceMode/GetCurrentState\", options)) as any;\r\n }\r\n\r\n enableMaintenanceMode(): Observable<MaintenanceMode> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n };\r\n return (this.http.get<MaintenanceMode>(\"api/MaintenanceMode/Enable\", options)) as any;\r\n }\r\n\r\n disableMaintenanceMode(): Observable<MaintenanceMode> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n };\r\n return (this.http.get<MaintenanceMode>(\"api/MaintenanceMode/Disable\", options)) as any;\r\n }\r\n\r\n}\r\n","import { AfterViewInit, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\r\nimport { ContentChildren } from \"@angular/core\";\r\nimport { QueryList } from \"@angular/core\";\r\nimport { Directive } from \"@angular/core\";\r\nimport { Component } from \"@angular/core\";\r\nimport dxButton from \"devextreme/ui/button\";\r\nimport dxDropDownBox from \"devextreme/ui/drop_down_box\";\r\nimport dxDropDownButton from \"devextreme/ui/drop_down_button\";\r\n\r\n@Directive({\r\n selector: 'np-help-option'\r\n})\r\nexport class NpHelpOption {\r\n @Input() public icon: string;\r\n @Input() public text: string;\r\n @Input() public link: string;\r\n}\r\n\r\n@Component({\r\n selector: \"np-help-button\",\r\n templateUrl: \"NpHelpButton.component.html\"\r\n})\r\nexport class NpHelpButtonComponent{\r\n options: any[] = [];\r\n icon: string = \"help\";\r\n buttons: QueryList<NpHelpOption>;\r\n\r\n constructor() {\r\n this.openHelpLink = this.openHelpLink.bind(this);\r\n }\r\n\r\n openHelpLink(link) {\r\n window.open(link.itemData.link, '_blank').focus();\r\n }\r\n\r\n @ContentChildren(NpHelpOption, { descendants: true })\r\n public set contentButtons(buttons: QueryList<NpHelpOption>) {\r\n this.buttons = buttons;\r\n this.options.push(...this.buttons?.map(b => { return { icon: b.icon, text: b.text, link: b.link } }));\r\n \r\n }\r\n\r\n}\r\n","<div>\r\n <!-- <dx-button stylingMode=\"text\" type=\"default\" icon=\"{{icon}}\" (onClick)=\"helpClick($event)\"></dx-button>\r\n <dx-action-sheet [items]=\"helpButtons\"\r\n [usePopover]=\"true\"\r\n [showTitle]=\"false\"\r\n [(visible)]=\"actionSheetVisible\"\r\n [target]=\"actionSheetTarget\"\r\n (onItemClick)=\"openHelpLink($event.itemData.link)\"\r\n width=\"auto\"\r\n height=\"auto\"></dx-action-sheet>-->\r\n\r\n <dx-drop-down-button #dropDownButton\r\n [items]=\"options\"\r\n icon=\"help\"\r\n displayExpr=\"text\"\r\n keyExpr=\"text\"\r\n [showArrowIcon]=\"false\"\r\n stylingMode=\"text\"\r\n [useSelectMode]=\"false\"\r\n wrapItemText=\"false\"\r\n [dropDownOptions]=\"{ width: '500%' }\"\r\n style=\"color: #0091d4 !important;\"\r\n (onItemClick)=\"openHelpLink($event)\"></dx-drop-down-button>\r\n</div>\r\n\r\n","export class CatalogFilter<T> {\r\n public useFilter: boolean;\r\n public filterKey: T;\r\n constructor(filterKey:T) {\r\n this.useFilter = false;\r\n this.filterKey = filterKey;\r\n }\r\n}\r\n","export class SearchByListParameter {\r\n constructor(\r\n public key: string = \"SupplierPID\",\r\n public list : string = \"\"\r\n ) { }\r\n}\r\n","import { CatalogFilter } from \"./CatalogFilter\";\r\nimport { SearchByListParameter } from \"../Dto/SearchByListParameter\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\nexport class ExportParameter {\r\n public id: string;\r\n public name: string;\r\n public isDefault: boolean;\r\n public catalogId: string;\r\n public customerId: string;\r\n public includeUdxs: boolean;\r\n public format: string;\r\n public version: string;\r\n public orignialSize: boolean = true;\r\n public maxResolution: number;\r\n public imageType: string;\r\n public imageSquared: boolean;\r\n public imageBgColor: string;\r\n public ignoreUdxFields: boolean;\r\n public ignoreEmptyCategories: boolean;\r\n public includeMime: boolean;\r\n public includeLegal: boolean;\r\n public onlyMasters: boolean;\r\n public includeHazmatClassesInDescription: boolean;\r\n public isBackup: boolean;\r\n public keepRootCategory: boolean;\r\n public maxMediaSize: number;\r\n public isLive: boolean;\r\n public bmeDialect: string;\r\n public useMediaUrl: boolean;\r\n public generateNMVariants: boolean;\r\n public useClassification: boolean;\r\n public featureSystem: string;\r\n public generateLinks: boolean;\r\n public searchByListFilterAdds: boolean;\r\n public templateId: string;\r\n public fields: string[];\r\n public fieldToMappingId: { [field: string]: string; };\r\n public dateFilter: CatalogFilter<Date | null>;\r\n public categoryFilter: CatalogFilter<string[]>;\r\n public featureSystemFilter: CatalogFilter<string[]>;\r\n public productStatesFilter: CatalogFilter<string[]>;\r\n public udxsFilter: CatalogFilter<string[]>;\r\n public manufacturerFilter: CatalogFilter<string[]>;\r\n public supplierFilter: CatalogFilter<string[]>;\r\n public featureSystemContentFilter: CatalogFilter<string[]>;\r\n public udxsContentFilter: CatalogFilter<string[]>;\r\n public priceListsContentFilter: CatalogFilter<string[]>;\r\n public searchByListParameter: CatalogFilter<SearchByListParameter>;\r\n public useFeatureOrder: boolean;\r\n public useTextQualifier: boolean;\r\n public delimiter: string;\r\n public textQualifier: string;\r\n\r\n\r\n constructor(\r\n ) {\r\n this.format = \"bme\";\r\n this.includeUdxs = true;\r\n this.includeMime = false;\r\n this.useFeatureOrder = false;\r\n this.categoryFilter = new CatalogFilter([]);\r\n this.productStatesFilter = new CatalogFilter([]);\r\n this.udxsFilter = new CatalogFilter([]);\r\n this.productStatesFilter = new CatalogFilter([]);\r\n this.manufacturerFilter = new CatalogFilter([]);\r\n this.supplierFilter = new CatalogFilter([]);\r\n this.dateFilter = new CatalogFilter(null);\r\n this.searchByListParameter = new CatalogFilter(new SearchByListParameter());\r\n this.featureSystemFilter = new CatalogFilter([]);\r\n this.featureSystemContentFilter = new CatalogFilter([]);\r\n this.priceListsContentFilter = new CatalogFilter([]);\r\n this.udxsContentFilter = new CatalogFilter([]);\r\n this.fields = [\"SUPPLIER_PID\"];\r\n this.delimiter = \";\";\r\n this.textQualifier = \"'\";\r\n }\r\n\r\n getSummary(translate: TranslateService):string {\r\n let summary = \"\";\r\n if (this.categoryFilter && this.categoryFilter.useFilter) {\r\n summary += translate.instant(\"Kateogiefilter aktiviert;\");\r\n }\r\n if (this.productStatesFilter && this.productStatesFilter.useFilter) {\r\n summary += translate.instant(\"Produktstatus-Filter aktiviert;\");\r\n }\r\n if (this.udxsFilter && this.udxsFilter.useFilter) {\r\n summary += translate.instant(\"UDX-Filter aktiviert;\");\r\n }\r\n if (this.manufacturerFilter && this.manufacturerFilter.useFilter) {\r\n summary += translate.instant(\"Herstellerfilter aktiviert;\");\r\n }\r\n if (this.supplierFilter && this.supplierFilter.useFilter) {\r\n summary += translate.instant(\"Lieferantenfilter aktiviert;\");\r\n }\r\n if (this.dateFilter && this.dateFilter.useFilter) {\r\n summary += translate.instant(\"Filter Änderungsdatum aktiv;\");\r\n }\r\n if (this.searchByListParameter && this.searchByListParameter.useFilter) {\r\n summary += translate.instant(\"Listenfilter aktiv;\");\r\n }\r\n if (this.featureSystemContentFilter && this.featureSystemContentFilter.useFilter) {\r\n summary += translate.instant(\"Inhalt FeatureSysteme eingeschränkt;\");\r\n }\r\n if (this.priceListsContentFilter && this.priceListsContentFilter.useFilter) {\r\n summary += translate.instant(\"Inhalt Preise eingeschränkt;\");\r\n }\r\n if (!this.includeUdxs) {\r\n summary += translate.instant(\"UDX-Inhalte deaktiviert;\");\r\n }\r\n if (this.includeUdxs && this.udxsContentFilter && this.udxsContentFilter.useFilter) {\r\n summary += translate.instant(\"UDX-Inhalte eingeschränkt;\");\r\n }\r\n if (summary == \"\")\r\n return translate.instant(\"Standard\");\r\n\r\n return summary;\r\n }\r\n\r\n isDifferent(otherConfig: ExportParameter): boolean {\r\n return otherConfig.categoryFilter.useFilter != this.categoryFilter.useFilter ||\r\n otherConfig.productStatesFilter.useFilter != this.productStatesFilter.useFilter ||\r\n otherConfig.udxsFilter.useFilter != this.udxsFilter.useFilter ||\r\n otherConfig.manufacturerFilter.useFilter != this.manufacturerFilter.useFilter ||\r\n otherConfig.supplierFilter.useFilter != this.supplierFilter.useFilter ||\r\n otherConfig.dateFilter.useFilter != this.dateFilter.useFilter ||\r\n otherConfig.searchByListParameter.useFilter != this.searchByListParameter.useFilter ||\r\n otherConfig.featureSystemContentFilter.useFilter != this.featureSystemContentFilter.useFilter ||\r\n otherConfig.priceListsContentFilter.useFilter != this.priceListsContentFilter.useFilter ||\r\n otherConfig.includeUdxs != this.includeUdxs ||\r\n otherConfig.udxsContentFilter.useFilter != this.udxsContentFilter.useFilter;\r\n }\r\n}\r\n","<div>\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Medien exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.includeMime></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"!exportParameter.includeMime\">\r\n <div class=\"dx-field-label\">{{ 'Medien als Url verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.useMediaUrl></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"exportParameter.includeMime\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Original verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.orignialSize\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quadratische Ansicht' | translate }}</div>\r\n <div\r\n class=\"dx-field-value {{ exportParameter.imageSquared ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <dx-switch [(value)]=\"exportParameter.imageSquared\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"exportParameter.imageSquared\">\r\n <div class=\"dx-field-label\">{{ 'Hintergrundfarbe wählen' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label\r\n class=\"placeLabel {{ exportParameter.imageBgColor ? 'placeLabelSmall' : '' }}\">BACKGROUND\r\n COLOR</label>\r\n <dx-color-box [(value)]=\"exportParameter.imageBgColor\"></dx-color-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Größe (mb) (0 = kein Maximum)' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [min]=\"0\" [max]=\"100000000\" [(value)]=\"exportParameter.maxMediaSize\"\r\n [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!exportParameter.orignialSize\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Seitenlänge' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ maxResolution>0 ? 'placeLabelSmall' : '' }}\">MAX RESOLUTION</label>\r\n <dx-number-box [min]=\"16\" [max]=\"8192\" [(value)]=\"exportParameter.maxResolution\"\r\n [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Dateityp' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageType?.length>0 ? 'placeLabelSmall' : '' }}\">FILE TYPE</label>\r\n <dx-select-box [(value)]=\"exportParameter.imageType\" [items]=\"imageTypes\" [searchEnabled]=\"true\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'ExportOnlyMasterProducts' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.onlyMasters></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kategorien ohne Produkte nicht exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.ignoreEmptyCategories></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"modelService.loginService.hasAddonLEGALITY\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Rechtliche Zusatzinformationen exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.includeLegal></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"modelService.loginService.hasAddonLEGALITY\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Gefahrstoffklassen an Beschreibung anhängen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.includeHazmatClassesInDescription\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ExportParameter } from '../../../../../Model/exportParameter/ExportParameter';\r\nimport { ModelService } from '../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'exportConfiguration',\r\n templateUrl: './exportConfiguration.component.html',\r\n styleUrls: ['./exportConfiguration.component.css']\r\n})\r\nexport class ExportConfigurationComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n\r\n bmeDialects = ['NexMart', 'E/D/E Multishop', 'E/D/E Multishop no root', 'Onventis', 'Scireum', 'HUBWOO'];\r\n imageTypes = [\"jpg\", \"png\"];\r\n\r\n constructor(public modelService: ModelService) {\r\n this.bmeDialectChanged = this.bmeDialectChanged.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n public bmeDialectChanged() {\r\n if (this.exportParameter.bmeDialect == \"Scireum\") {\r\n this.exportParameter.useMediaUrl = true;\r\n }\r\n }\r\n\r\n}\r\n","export class SimpleHierachicalFilter {\r\n category: string;\r\n order: number;\r\n item: string[];\r\n\r\n constructor() {\r\n this.item = [];\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CategoryFilterTreeItem } from '../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\nimport { SimpleHierachicalFilter } from '../Model/exportParameter/SimpleHierachicalFilter';\r\n\r\n\r\n@Injectable()\r\nexport class ExportFilterService {\r\n\r\n private readonly apiUrl = 'api/ExportFilter';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getCategoryFilterTreeElements(catalogId, customerId): Observable<CategoryFilterTreeItem[]> {\r\n const url = `${this.apiUrl}/GetCategoryFilter?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<CategoryFilterTreeItem[]>(url);\r\n }\r\n\r\n public getUdxFilterTreeElements(catalogId, customerId): Observable<CategoryFilterTreeItem[]> {\r\n const url = `${this.apiUrl}/GetUdxFilters?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<CategoryFilterTreeItem[]>(url);\r\n }\r\n\r\n public getManufacturerFilters(catalogId: string, customerId: string): Observable<string[]> {\r\n const url = `${this.apiUrl}/GetManufacturerFilters?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<string[]>(url);\r\n }\r\n\r\n public getProductStates(catalogId: string, customerId: string): Observable<string[]> {\r\n const url = `${this.apiUrl}/getProductStates?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<string[]>(url);\r\n }\r\n\r\n public getPriceLists(catalogId: string, customerId: string): Observable<CategoryFilterTreeItem[]> {\r\n const url = `${this.apiUrl}/getPriceLists?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<CategoryFilterTreeItem[]>(url);\r\n }\r\n\r\n public getSuppliers(catalogId: string, customerId: string): Observable<string[]> {\r\n const url = `${this.apiUrl}/getSuppliersFilters?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<string[]>(url);\r\n }\r\n\r\n public getFeatureSystemFilters(catalogId: string, customerId: string): Observable<CategoryFilterTreeItem[]> {\r\n const url = `${this.apiUrl}/getFeatureSystemFilters?catalogId=${catalogId}&customerId=${customerId}`;\r\n return this.http.get<CategoryFilterTreeItem[]>(url);\r\n }\r\n\r\n\r\n public ConvertSystemFilterToHierachicalFilter(selectedNodes: import(\"devextreme/ui/tree_view\").Node<any>[]): SimpleHierachicalFilter[] {\r\n return selectedNodes.map(x => {\r\n const filter = new SimpleHierachicalFilter();\r\n if (x.parent == null) {\r\n filter.category = x.text;\r\n } else {\r\n filter.category = x.parent.text;\r\n filter.item = [x.text];\r\n }\r\n\r\n return filter;\r\n });\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Produktstatus filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.productStatesFilter.useFilter\" (onValueChanged)=\"loadStatesIfNeeded()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.productStatesFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isStateFilterLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n <div *ngIf=\"isStateFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"catalogProductStates\"\r\n [(selectedRowKeys)]=\"exportParameter.productStatesFilter.filterKey\"\r\n [ngStyle]=\"{'height': 'inherit'}\"\r\n keyExpr=\"name\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'ProduktStatus' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ProductState } from '../../../../../../Model/Catalog/ProductState';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'productStateFilter',\r\n templateUrl: './productStateFilter.component.html',\r\n styleUrls: ['./productStateFilter.component.css']\r\n})\r\nexport class ProductStateFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n catalogProductStates: { name: string }[];\r\n isStateFilterLoaded: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService) {\r\n this.loadStatesIfNeeded = this.loadStatesIfNeeded.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.productStatesFilter == null)\r\n this.exportParameter.productStatesFilter = new CatalogFilter<string[]>([]);\r\n if (this.exportParameter.productStatesFilter.filterKey == undefined)\r\n this.exportParameter.productStatesFilter.filterKey = [];\r\n\r\n this.loadStatesIfNeeded();\r\n }\r\n\r\n loadStatesIfNeeded() {\r\n if (this.exportParameter.productStatesFilter.useFilter)\r\n this.refreshStates();\r\n }\r\n\r\n refreshStates() {\r\n this.isStateFilterLoaded = false;\r\n this.exportFilterService.getProductStates(this.catalogId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (states: string[]) => {\r\n this.catalogProductStates = states.map(x => { return { name: x } });\r\n this.isStateFilterLoaded = true;\r\n }\r\n );\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kategorien filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.categoryFilter.useFilter\" (onValueChanged)=\"loadFilterIfNeeded()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.categoryFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFilterLoaded==false\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list #treeListCategoryFilter\r\n [(dataSource)]=\"categoryFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.categoryFilter.filterKey\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Kategorie' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { CategoryFilterTreeItem } from '../../../../../../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\nimport { TreeItem } from '../../../../../../Model/Dto/TreeItem';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'categoryFilter',\r\n templateUrl: './categoryFilter.component.html',\r\n styleUrls: ['./categoryFilter.component.css']\r\n})\r\nexport class CategoryFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n categoryFilters: CategoryFilterTreeItem[];\r\n isFilterLoaded: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService) {\r\n this.loadFilterIfNeeded = this.loadFilterIfNeeded.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.categoryFilter == null)\r\n this.exportParameter.categoryFilter = new CatalogFilter<string[]>([])\r\n if (this.exportParameter.categoryFilter.filterKey == null)\r\n this.exportParameter.categoryFilter.filterKey = [];\r\n\r\n this.loadFilterIfNeeded();\r\n }\r\n\r\n loadFilterIfNeeded() {\r\n if (this.exportParameter.categoryFilter.useFilter)\r\n this.refreshCategoryFilter();\r\n }\r\n\r\n refreshCategoryFilter() {\r\n this.isFilterLoaded = false;\r\n this.exportFilterService.getCategoryFilterTreeElements(this.catalogId, this.modelService.loginService.currentUser.customerId)\r\n .toPromise()\r\n .then((filter: CategoryFilterTreeItem[]) => {\r\n this.categoryFilters = filter;\r\n })\r\n .finally(() => this.isFilterLoaded = true);\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Hersteller filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.manufacturerFilter.useFilter\" (onValueChanged)=\"loadmanufacturerIfNeeded()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.manufacturerFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFilterLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"manufacturerFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.manufacturerFilter.filterKey\"\r\n [ngStyle]=\"{'height': 'inherit'}\"\r\n keyExpr=\"name\"\r\n [repaintChangesOnly]=\"true\">\r\n <dxo-scrolling mode=\"standart\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\"></dxo-selection>\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"50\"> </dxo-paging>\r\n <dxo-pager [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[10, 25, 50]\"\r\n [showInfo]=\"true\">\r\n </dxo-pager>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Hersteller' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { Catalog } from '../../../../../../Model/Catalog/catalog';\r\nimport { TreeItem } from '../../../../../../Model/Dto/TreeItem';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'manufacturerFilter',\r\n templateUrl: './manufacturerFilter.component.html',\r\n styleUrls: ['./manufacturerFilter.component.css']\r\n})\r\nexport class ManufacturerFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n manufacturerFilters: { name: string }[] = [];\r\n isFilterLoaded: boolean = false; \r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService) {\r\n this.refreshManufacturersFilter = this.refreshManufacturersFilter.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.manufacturerFilter == null)\r\n this.exportParameter.manufacturerFilter = new CatalogFilter<string[]>([]);\r\n if (this.exportParameter.manufacturerFilter.filterKey == null)\r\n this.exportParameter.manufacturerFilter.filterKey = [];\r\n\r\n this.loadmanufacturerIfNeeded();\r\n }\r\n\r\n loadmanufacturerIfNeeded() {\r\n if (this.exportParameter.manufacturerFilter.useFilter)\r\n this.refreshManufacturersFilter();\r\n }\r\n\r\n refreshManufacturersFilter() {\r\n this.isFilterLoaded = false;\r\n this.exportFilterService.getManufacturerFilters(this.catalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe((filter: string[]) => {\r\n this.manufacturerFilters = filter.map(x => { return { name: x} }); \r\n this.isFilterLoaded = true;\r\n });\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Lieferanten filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.supplierFilter.useFilter\" (onValueChanged)=\"loadsupplierFilterIfNeeded()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.supplierFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFilterLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"supplierFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.supplierFilter.filterKey\"\r\n [ngStyle]=\"{'height': 'inherit'}\"\r\n keyExpr=\"name\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling mode=\"standart\"></dxo-scrolling>\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"50\"> </dxo-paging>\r\n <dxo-pager [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[10, 25, 50]\"\r\n [showInfo]=\"true\">\r\n </dxo-pager>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Lieferant' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { ProductService } from '../../../../../../Services/CatalogManagement/product.service';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'supplierContentFilter',\r\n templateUrl: './supplierContentFilter.component.html',\r\n styleUrls: ['./supplierContentFilter.component.css']\r\n})\r\nexport class SupplierContentFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n supplierFilters: { name: string }[] = [];\r\n isFilterLoaded: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService, public productService: ProductService) {\r\n this.loadsupplierFilterIfNeeded = this.loadsupplierFilterIfNeeded.bind(this);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.supplierFilter == null)\r\n this.exportParameter.supplierFilter = new CatalogFilter<string[]>([]);\r\n if (this.exportParameter.supplierFilter.filterKey == null)\r\n this.exportParameter.supplierFilter.filterKey = [];\r\n\r\n this.loadsupplierFilterIfNeeded();\r\n }\r\n\r\n loadsupplierFilterIfNeeded() {\r\n\r\n if (this.exportParameter.supplierFilter.useFilter)\r\n this.refreshManufacturersFilter();\r\n }\r\n\r\n refreshManufacturersFilter() {\r\n this.isFilterLoaded = false;\r\n this.exportFilterService.getSuppliers(this.catalogId, this.modelService.loginService.currentUser.customerId).toPromise().then(data => {\r\n this.supplierFilters = data.map(x => { return { name: x } });\r\n }).finally(() =>\r\n this.isFilterLoaded = true\r\n );\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Udx filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.udxsFilter.useFilter></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.udxsFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFilterLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"udxSelectFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.udxsFilter.filterKey\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Udx' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\nimport { CategoryFilterTreeItem } from '../../../../../../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\nimport { TreeItem } from '../../../../../../Model/Dto/TreeItem';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { SimpleHierachicalFilter } from '../../../../../../Model/exportParameter/SimpleHierachicalFilter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'udxFilter',\r\n templateUrl: './udxFilter.component.html',\r\n styleUrls: ['./udxFilter.component.css']\r\n})\r\nexport class UdxFilterComponent implements OnInit {\r\n @ViewChild(DxTreeViewComponent, { static: false }) treeView: DxTreeViewComponent;\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n udxSelectFilters: CategoryFilterTreeItem[] = [];\r\n isFilterLoaded: boolean = false;\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService) {\r\n this.refreshUdxSelectFilter = this.refreshUdxSelectFilter.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.udxsFilter == null)\r\n this.exportParameter.udxsFilter = new CatalogFilter<string[]>([])\r\n if (this.exportParameter.udxsFilter.filterKey == null)\r\n this.exportParameter.udxsFilter.filterKey = [];\r\n\r\n this.refreshUdxSelectFilter();\r\n }\r\n\r\n refreshUdxSelectFilter() {\r\n this.isFilterLoaded = false;\r\n this.exportFilterService.getUdxFilterTreeElements(this.catalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe((filter: CategoryFilterTreeItem[]) => {\r\n this.udxSelectFilters = filter;\r\n this.isFilterLoaded = true;\r\n });\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'ÄnderungsDatum filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.dateFilter.useFilter\"></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.dateFilter.useFilter\">\r\n <div class=\"{{fullScreen ? '' : 'maxHeight'}}\">\r\n <div class=\"dx-field-label\">{{ 'Nach dem Datum geänderte Produkte exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-date-box [(value)]=\"exportParameter.dateFilter.filterKey\" type=\"datetime\"> </dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\n\r\n@Component({\r\n selector: 'dateFilter',\r\n templateUrl: './dateFilter.component.html',\r\n styleUrls: ['./dateFilter.component.css']\r\n})\r\nexport class DateFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.dateFilter == null)\r\n this.exportParameter.dateFilter = new CatalogFilter<Date>(null);\r\n if (this.exportParameter.dateFilter.filterKey == undefined)\r\n this.exportParameter.dateFilter.filterKey = new Date();\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px', 'margin-bottom': '-20px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Nach Liste filtern' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.searchByListParameter.useFilter\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"exportParameter.searchByListParameter.useFilter\" >\r\n <div class=\"dx-field-label\">{{ 'Produkte zusätzlich zu anderen Filtern hinzufügen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.searchByListFilterAdds\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.searchByListParameter.useFilter\" [ngStyle]=\"{'height': '60%'}\">\r\n <dx-lookup placeholder=\"{{'SuchKriterium' | translate}}\" [searchEnabled]=\"false\" [items]=\"searchValues\" [(value)]=\"parameter.key\" [ngStyle]=\"{'height': '30%'}\">\r\n </dx-lookup>\r\n <div class=\"dx-text-area-coloured w-100\" [ngStyle]=\"{'height': '70%'}\">\r\n <dx-text-area [value]=\"parameter.list\" (onValueChanged)=\"onValueChanged($event)\" [ngStyle]=\"{'height': '100%'}\">\r\n </dx-text-area>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SearchByListParameter } from '../../../../../../Model/Dto/SearchByListParameter';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\n\r\n@Component({\r\n selector: 'searchByListFilter',\r\n templateUrl: './searchByListFilter.component.html',\r\n styleUrls: ['./searchByListFilter.component.css']\r\n})\r\nexport class SearchByListFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n\r\n\r\n searchValues = [\"SupplierPID\", \"EAN\", \"gtin\", \"Hersteller\", \"SupplierAltPID\", \"Lieferanten-Artikelnummer\"];\r\n\r\n constructor() {\r\n this.onValueChanged = this.onValueChanged.bind(this);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n get parameter(): SearchByListParameter {\r\n if (!this.exportParameter.searchByListParameter)\r\n this.exportParameter.searchByListParameter = new CatalogFilter<SearchByListParameter>(new SearchByListParameter());\r\n if (this.exportParameter.searchByListParameter.filterKey == null)\r\n this.exportParameter.searchByListParameter.filterKey = new SearchByListParameter();\r\n if (this.exportParameter.searchByListFilterAdds == null)\r\n this.exportParameter.searchByListFilterAdds = false;\r\n if (this.exportParameter.searchByListParameter.filterKey.key == null || this.exportParameter.searchByListParameter.filterKey.key == \"\")\r\n this.exportParameter.searchByListParameter.filterKey.key = this.searchValues[0]\r\n\r\n return this.exportParameter.searchByListParameter.filterKey;\r\n }\r\n\r\n set parameter(value: SearchByListParameter) {\r\n this.exportParameter.searchByListParameter.filterKey = value\r\n }\r\n\r\n onValueChanged(e) {\r\n let text = e.value;\r\n this.parameter.list = this.formatListIgnoreSpace(text);\r\n }\r\n\r\n formatListIgnoreSpace(value) {\r\n var tmp: string = value;\r\n tmp = tmp.split(\";\").join(\"\\n\");\r\n tmp = tmp.split(\"\\r\").join(\"\\n\");\r\n tmp = tmp.split(\",\").join(\"\\n\");\r\n while (tmp.includes(\"\\n\\n\")) {\r\n tmp = tmp.replace(\"\\n\\n\", \"\\n\");\r\n }\r\n if (tmp.substr(0, 1) == \"\\n\") {\r\n tmp = tmp.substr(1);\r\n }\r\n if (tmp.substr(-1, 1) == \"\\n\") {\r\n tmp = tmp.substr(0, tmp.length - 1);\r\n }\r\n return tmp;\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Featuressysteme auswählen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.featureSystemContentFilter.useFilter\" (onValueChanged)=\"refreshFeatureSystemFilter()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.featureSystemContentFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFeatureSystemFiltersLoaded==false\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFeatureSystemFiltersLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"featureSystemFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.featureSystemContentFilter.filterKey\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'FeatureSystems' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { PreloadAllModules } from '@angular/router';\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\nimport _ from 'lodash';\r\nimport { FeatureSystemFilter } from '../../../../../../Model/Dto/FeatureSystemFilter';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { SimpleHierachicalFilter } from '../../../../../../Model/exportParameter/SimpleHierachicalFilter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'featureContentFilter',\r\n templateUrl: './featureContentFilter.component.html',\r\n styleUrls: ['./featureContentFilter.component.css']\r\n})\r\nexport class FeatureContentFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n isFeatureSystemFiltersLoaded = false;\r\n featureSystemFilters;\r\n\r\n constructor(public modelService: ModelService, public exportFilterService: ExportFilterService) {\r\n this.refreshFeatureSystemFilter = this.refreshFeatureSystemFilter.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.featureSystemContentFilter == null)\r\n this.exportParameter.featureSystemContentFilter = new CatalogFilter<string[]>([])\r\n if (this.exportParameter.featureSystemContentFilter.useFilter == null)\r\n this.exportParameter.featureSystemContentFilter.useFilter = false;\r\n if (this.exportParameter.featureSystemContentFilter.filterKey == null)\r\n this.exportParameter.featureSystemContentFilter.filterKey = [];\r\n\r\n this.refreshFeatureSystemFilter();\r\n }\r\n\r\n\r\n refreshFeatureSystemFilter() {\r\n if (!this.exportParameter.featureSystemContentFilter.useFilter)\r\n return;\r\n\r\n this.isFeatureSystemFiltersLoaded = false;\r\n this.exportFilterService\r\n .getFeatureSystemFilters(this.catalogId, this.modelService.loginService.currentUser.customerId).toPromise()\r\n .then((filter: FeatureSystemFilter[]) => {\r\n this.featureSystemFilters = filter;\r\n }).finally(\r\n () => {\r\n this.isFeatureSystemFiltersLoaded = true;\r\n });\r\n }\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Preislisten auswählen' | translate }} </div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.priceListsContentFilter.useFilter\" (onValueChanged)=\"refreshPriceListFilter()\"></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.priceListsContentFilter.useFilter\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'OnRequest Preise exportieren' | translate }} </div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [activeStateEnabled]=\"filterKeys.has('|#|on_request_with_price')\" (onValueChanged)=\"onToggle('|#|on_request_with_price')\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.priceListsContentFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isPriceListFiltersLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isPriceListFiltersLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"priceListFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.priceListsContentFilter.filterKey\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Preislisten' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CategoryFilterTreeItem } from '../../../../../../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'pricelistContentFilter',\r\n templateUrl: './pricelistContentFilter.component.html',\r\n styleUrls: ['./pricelistContentFilter.component.css']\r\n})\r\nexport class PricelistContentFilterComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n filterKeys: Set<string>;\r\n priceListFilters: CategoryFilterTreeItem[];\r\n isPriceListFiltersLoaded = false;\r\n\r\n exportOnRequestPrices = false;\r\n\r\n constructor(public modelService: ModelService, public exportFilterService: ExportFilterService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.priceListsContentFilter == null)\r\n this.exportParameter.priceListsContentFilter = new CatalogFilter<string[]>([]);\r\n if (this.exportParameter.priceListsContentFilter.filterKey == null)\r\n this.exportParameter.priceListsContentFilter.filterKey = [];\r\n this.filterKeys = new Set(this.exportParameter.priceListsContentFilter.filterKey);\r\n this.refreshPriceListFilter();\r\n }\r\n\r\n onToggle(key: string) {\r\n if (this.filterKeys.has(key)) {\r\n this.filterKeys.delete(key);\r\n } else {\r\n this.filterKeys.add(key);\r\n }\r\n this.refreshPriceListFilter();\r\n }\r\n\r\n refreshPriceListFilter() {\r\n if (!this.exportParameter.priceListsContentFilter.useFilter)\r\n return;\r\n\r\n const filterKey = this.exportParameter.priceListsContentFilter.filterKey.filter(s => s !== \"\");\r\n this.exportParameter.priceListsContentFilter.filterKey = Array.from(new Set([...filterKey, ...Array.from(this.filterKeys)]));\r\n this.exportFilterService.getPriceLists(this.catalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe((filter: CategoryFilterTreeItem[]) => {\r\n this.priceListFilters = filter;\r\n this.isPriceListFiltersLoaded = true;\r\n });\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{'height': 'inherit', 'display':'flex', 'flex-direction':'column'}\">\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Udx Felder exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.includeUdxs></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Udx Felder auswählen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"exportParameter.udxsContentFilter.useFilter\" (onValueChanged)=\"refreshUdxSelectFilter()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportParameter.udxsContentFilter.useFilter\" [ngStyle]=\"{'height': '100%', 'overflow':'hidden'}\">\r\n <div *ngIf=\"isFilterLoaded==false\" style=\"top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isFilterLoaded==true\" class=\"{{fullScreen ? '' : 'maxHeight'}}\" [ngStyle]=\"{'margin-top': '-20px', 'height': 'inherit'}\">\r\n <dx-tree-list [(dataSource)]=\"udxSelectFilters\"\r\n [(selectedRowKeys)]=\"exportParameter.udxsContentFilter.filterKey\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Udx' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\nimport { CategoryFilterTreeItem } from '../../../../../../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\nimport { FeatureSystemFilter } from '../../../../../../Model/Dto/FeatureSystemFilter';\r\nimport { TreeItem } from '../../../../../../Model/Dto/TreeItem';\r\nimport { CatalogFilter } from '../../../../../../Model/exportParameter/CatalogFilter';\r\nimport { ExportParameter } from '../../../../../../Model/exportParameter/ExportParameter';\r\nimport { SimpleHierachicalFilter } from '../../../../../../Model/exportParameter/SimpleHierachicalFilter';\r\nimport { ExportFilterService } from '../../../../../../Services/exportFilter.service';\r\nimport { ModelService } from '../../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'udxContentFilter',\r\n templateUrl: './udxContentFilter.component.html',\r\n styleUrls: ['./udxContentFilter.component.css']\r\n})\r\nexport class UdxContentFilterComponent implements OnInit {\r\n @ViewChild(\"treeViewUdxSelectFilter\", { static: false }) treeViewUdxSelectFilter: DxTreeViewComponent;\r\n @Input() exportParameter: ExportParameter;\r\n @Input() catalogId: string;\r\n\r\n udxSelectFilters: CategoryFilterTreeItem[];\r\n isFilterLoaded: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public exportFilterService: ExportFilterService) {\r\n this.refreshUdxSelectFilter = this.refreshUdxSelectFilter.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.udxsContentFilter == null)\r\n this.exportParameter.udxsContentFilter = new CatalogFilter<string[]>([]);\r\n if (this.exportParameter.udxsContentFilter.filterKey == null)\r\n this.exportParameter.udxsContentFilter.filterKey = [];\r\n\r\n this.refreshUdxSelectFilter();\r\n }\r\n\r\n refreshUdxSelectFilter() {\r\n if (!this.exportParameter.udxsContentFilter.useFilter)\r\n return;\r\n\r\n this.isFilterLoaded = false;\r\n this.exportFilterService.getUdxFilterTreeElements(this.catalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe((filter: CategoryFilterTreeItem[]) => {\r\n this.udxSelectFilters = filter;\r\n this.isFilterLoaded = true;\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Validator from \"devextreme/ui/validator\";\r\n\r\n@Component({\r\n selector: \"newTemplate\",\r\n templateUrl: \"newTemplate.component.html\"\r\n})\r\nexport class NewTemplateComponent implements OnInit, OnDestroy {\r\n\r\n templateName: string = \"\";\r\n\r\n @Output() onAdded = new EventEmitter<string>();\r\n\r\n // diese Component könnte man, mit entspr. Parametern, generischer gestalten...\r\n\r\n constructor(public translate: TranslateService) {\r\n //let i = 1; //1\r\n }\r\n\r\n ngOnInit(): void {\r\n this.templateName = \"\"; //2\r\n }\r\n\r\n ngOnDestroy(): void {\r\n //this.templateName = \"\"; // feuert zu spät, nämlich erst, wenn die eltern-komponente weggeräumt wird...\r\n }\r\n\r\n validatorInstance: Validator;\r\n saveValidatorInstance(e) {\r\n this.validatorInstance = e.component; //3\r\n }\r\n\r\n onAdd() {\r\n this.onAdded.emit(this.templateName);\r\n this.templateName = \"\"; // OnDestroy feuert anscheinend nicht...? doch, s. oben...\r\n\r\n this.validatorInstance.reset();\r\n }\r\n}\r\n","<form (submit)=\"onAdd()\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Templatename' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"templateName\" [showClearButton]=\"true\">\r\n <dx-validator (onInitialized)=\"saveValidatorInstance($event)\">\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie einen Templatenamen an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Anlegen' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n </div>\r\n</form>\r\n","\r\n<div class=\"d-flex flex-row\">\r\n\r\n <div *ngIf=\"templateService.exportTemplates\" class=\"flex-fill\">\r\n\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"templateService.template?.name?.length > 0\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'Auswahl' | translate }}\"\r\n field=\"TEMPLATE_NAME\"\r\n [system]=\"-1\"\r\n [element]=\"-1\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"templateService.exportTemplates\"\r\n [value]=\"templateService.template?.id\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n (onSelectionChanged)=\"selectTemplate($event)\"\r\n noDataText=\"{{ 'keine Templates im Account' | translate }}\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n </div>\r\n\r\n <div class=\"align-self-center\">\r\n <div id=\"addButton\">\r\n <dx-button (onClick)=\"showAddTemplate()\" icon=\"plus\" [disabled]=\"canAddTemplate\"></dx-button>\r\n </div>\r\n <dx-tooltip target=\"#addButton\"\r\n *ngIf=\"canAddTemplate\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"true\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'Sie haben die maximale Anzahl an Templates in ihrem Account erreicht.' | translate }}</div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Neues Template' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"addTemplateVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <newTemplate (onAdded)=\"addTemplate($event)\"></newTemplate>\r\n </div>\r\n</dx-popup>\r\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { TemplateService } from \"../Services/template.service\";\r\nimport { DxSelectBoxComponent } from \"devextreme-angular/ui/select-box\";\r\nimport { Template } from \"../Model/Catalog/Template\";\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"templateSelector\",\r\n templateUrl: \"templateSelector.component.html\",\r\n styleUrls: [\"./templateSelector.component.css\"]\r\n})\r\nexport class TemplateSelectorComponent implements OnInit {\r\n\r\n @ViewChild(\"selectBox\") selectBox: DxSelectBoxComponent;\r\n\r\n @Output() templateSelected = new EventEmitter<string>();\r\n\r\n txtAddTemplate: string;\r\n canAddTemplate: boolean = false;\r\n\r\n\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService) {\r\n this.getAddTemplateHint = this.getAddTemplateHint.bind(this);\r\n }\r\n\r\n async ngOnInit() { \r\n this.templateService.getExportTemplates(); \r\n this.txtAddTemplate = this.translate.instant(\"Template erstellt\");\r\n this.canAddTemplate = !(await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id)));\r\n }\r\n\r\n public addTemplateVisible = false;\r\n showAddTemplate() {\r\n this.addTemplateVisible = true;\r\n }\r\n\r\n async addTemplate(e = null) {\r\n this.addTemplateVisible = false;\r\n\r\n let newTemplate = new Template();\r\n newTemplate.lastChange = newTemplate.created; // Wird nicht vom CTOR gesetzt\r\n newTemplate.isExportTemplate = true;\r\n\r\n newTemplate.name = e;\r\n\r\n\r\n\r\n let id = await this.templateService.addTemplate(newTemplate);\r\n //this.templateService.addTemplate();\r\n this.modelService.systemService.notify(new Message(this.txtAddTemplate));\r\n\r\n this.templateService.getExportTemplates();\r\n this.templateSelected.emit(this.selectBox.value);\r\n this.canAddTemplate = !(await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id)));\r\n }\r\n\r\n selectTemplate(e) {\r\n if (e.selectedItem != null) {\r\n this.templateService.setCurrentExportTemplate(e.selectedItem.id);\r\n this.templateSelected.emit(e.selectedItem.id);\r\n }\r\n else {\r\n this.templateService.setCurrentExportTemplate(null);\r\n this.templateSelected.emit(null);\r\n }\r\n }\r\n\r\n getAddTemplateHint() {\r\n if (this.canAddTemplate)\r\n return null;\r\n\r\n return this.translate.instant(\"In ihrer Lizenz dürfen Sie keine Templates mehr anlegen.\");\r\n }\r\n}\r\n","export class ProductState {\r\n\r\n constructor(\r\n public idKey?: string,\r\n public customerId?: string,\r\n public name?: string,\r\n\r\n ) {\r\n\r\n }\r\n\r\n}\r\n","<dx-radio-group [(items)]=\"model\"\r\n [(value)]=\"selectedValue\"\r\n [readOnly]=\"readOnly\"\r\n layout=\"horizontal\"\r\n (onValueChanged)=\"valueChanged($event)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\" >\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validate\"></dxi-validation-rule>\r\n </dx-validator>\r\n</dx-radio-group>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n\r\n@Component({\r\n selector: \"np-booleanRadioGroup\",\r\n templateUrl: \"booleanRadioGroup.component.html\"\r\n})\r\n\r\nexport class NpBooleanRadioGroupComponent {\r\n trueValue: string;\r\n falseValue: string;\r\n nullValue: string;\r\n _value: boolean;\r\n @Input() fieldName: string;\r\n @Input() readOnly: boolean;\r\n @Input() templateView: Boolean = false;\r\n\r\n @Input()\r\n set value(v: boolean) {\r\n this._value = v;\r\n if (v == null) {\r\n this.selectedValue = this.nullValue;\r\n }\r\n else {\r\n if (v == true) {\r\n this.selectedValue = this.trueValue;\r\n }\r\n else {\r\n this.selectedValue = this.falseValue;\r\n }\r\n }\r\n };\r\n\r\n get value(): boolean {\r\n return this._value;\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<boolean>();\r\n model: string[] = new Array<string>();\r\n selectedValue: string;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n\r\n\r\n constructor(public translate: TranslateService, public validationService: ValidationService) {\r\n this.validate = this.validate.bind(this);\r\n\r\n this.trueValue = this.translate.instant(\"Ja\");\r\n this.falseValue = this.translate.instant(\"Nein\");\r\n this.nullValue = this.translate.instant(\"Keine Angabe\");\r\n\r\n this.model.push(this.trueValue);\r\n this.model.push(this.falseValue);\r\n this.model.push(this.nullValue);\r\n\r\n }\r\n\r\n valueChanged(event) {\r\n if (event.value == event.previousValue)\r\n return;\r\n this.value = this.reConvert(this.selectedValue);\r\n this.valueChange.emit(this.value);\r\n\r\n event.value = this.reConvert(event.value);\r\n event.previousValue = this.reConvert(event.previousValue);\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n validate(params) {\r\n if (!this.fieldName) {\r\n params.rule.isValid = true;\r\n params.validator.validate();\r\n }\r\n\r\n params.value = this.reConvert(params.value);\r\n return this.validationService.validateBooleanRadioGroup(params, this.fieldName);\r\n }\r\n\r\n reConvert(value: string): boolean {\r\n if (value == this.trueValue) {\r\n return true;\r\n }\r\n if (value == this.falseValue) {\r\n return false;\r\n }\r\n if (value == this.nullValue) {\r\n return null;\r\n }\r\n }\r\n}\r\n","<dx-toolbar *ngIf=\"(isMaster() || modelService.loginService.hasAddonWawiErp) && !templateView\">\r\n <dxi-item *ngIf=\"isMaster() && !readOnly('productLinkAll')\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Alle Felder verknüpfen' | translate, onClick: linkAllFields }\"></dxi-item>\r\n <dxi-item *ngIf=\"modelService.loginService.hasAddonWawiErp && !readOnly('productUniqueSID')\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Eindeutige SupplierPid zuweisen' | translate, onClick: getSupplierPid }\"></dxi-item>\r\n</dx-toolbar>\r\n<div class=\"dx-fieldset\">\r\n <dx-validation-group id=\"productValidationGroup\">\r\n\r\n <div class=\"dx-field\" *ngIf=\"productTranslation!=null\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <div class=\"flex-fill align-self-center\"><img src=\"images/flags/de.gif\" class=\"flag\"><b>{{ 'Deutsch' | translate }}</b></div>\r\n <div class=\"flex-fill pl-2 align-self-center\"><img src=\"images/flags/{{getLanguageFlag(selectedTranslateLanguage)}}\" class=\"flag\"><b>{{translateLanguage(selectedTranslateLanguage)}}</b></div>\r\n </div>\r\n </div>\r\n\r\n <!--DescriptionShort-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.descriptionShort?.length > 0\"\r\n [showTranslationPlaceLabel]=\"productTranslation?.descriptionShort?.length > 0\"\r\n [suppressTranslation]=\"false\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Produktbeschreibung' | translate }}\"\r\n field=\"DESCRIPTION_SHORT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.descriptionShort\"\r\n [readOnly]=\"readOnlyForLinkedFields('DESCRIPTION_SHORT') || readOnly('productDescShort')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DESCRIPTION_SHORT')\"\r\n (onValueChanged)=\"update($event, 'DESCRIPTION_SHORT')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DESCRIPTION_SHORT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div *ngIf=\"hasTranslation\" slot=\"translation\" class=\"translationSlot\">\r\n <dx-text-box [(value)]=\"productTranslation.descriptionShort\"\r\n [readOnly]=\"readOnly('productDescShort')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"translationUpdate(model.descriptionShort,$event.value)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--SupplierPid-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.supplierPid?.length > 0\"\r\n [suppressLinkButton]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Produktnummer' | translate }}\"\r\n field=\"SUPPLIER_PID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.supplierPid\"\r\n [readOnly]=\"readOnly('productId')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event, 'SUPPLIER_PID')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PID')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--SupplierAltAid-->\r\n <div *ngIf=\"!isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.supplierAltAid?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'alternative Produktnummer' | translate }}\"\r\n field=\"SUPPLIER_ALT_PID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.supplierAltAid\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_ALT_PID') || readOnly('productAltId')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_ALT_PID')\"\r\n (onValueChanged)=\"update($event, 'SUPPLIER_ALT_PID')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_ALT_PID')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--internationalPid-->\r\n <div class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-75\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.internationalPid?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Internationale ID' | translate }}\"\r\n field=\"INTERNATIONAL_PID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.internationalPid\"\r\n [readOnly]=\"readOnlyForLinkedFields('INTERNATIONAL_PID') || readOnly('productIntId')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('INTERNATIONAL_PID')\"\r\n (onValueChanged)=\"update($event, 'INTERNATIONAL_PID')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('INTERNATIONAL_PID')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-25 pl-3\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.internationalPidType?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"INTERNATIONAL_PID_TYPE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"internationalPidType\"\r\n [readOnly]=\"readOnlyForLinkedFields('INTERNATIONAL_PID_TYPE') || readOnly('productIntIdType')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('INTERNATIONAL_PID_TYPE')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('INTERNATIONAL_PID_TYPE')\"\r\n [(value)]=\"model.internationalPidType\"\r\n (onValueChanged)=\"update($event, 'INTERNATIONAL_PID_TYPE')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'INTERNATIONAL_PID_TYPE')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('INTERNATIONAL_PID_TYPE')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div></div>\t\t<!-- DUMMY; last DIV gets no margin -->\r\n </div>\r\n\r\n <!--ManufacturerTypeDescr-->\r\n <div *ngIf=\"!isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.manufacturerTypeDescr?.length > 0\"\r\n [showTranslationPlaceLabel]=\"productTranslation?.manufacturerTypeDescr?.length > 0\"\r\n [suppressTranslation]=\"false\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Herstellerbezeichnung' | translate }}\"\r\n field=\"MANUFACTURER_TYPE_DESCR\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"model.manufacturerTypeDescr\"\r\n [height]=\"57\"\r\n [readOnly]=\"readOnlyForLinkedFields('MANUFACTURER_TYPE_DESCR') || readOnly('productPName')\"\r\n (onValueChanged)=\"update($event, 'MANUFACTURER_TYPE_DESCR')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MANUFACTURER_TYPE_DESCR')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-area>\r\n </div>\r\n\r\n <div *ngIf=\"hasTranslation\" slot=\"translation\" class=\"translationSlot\">\r\n <dx-text-area [(value)]=\"productTranslation.manufacturerTypeDescr\"\r\n [height]=\"57\"\r\n [readOnly]=\"readOnly('productPName')\"\r\n (onValueChanged)=\"translationUpdate(model.manufacturerTypeDescr,$event.value)\">\r\n </dx-text-area>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--DescriptionLong-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressTranslation]=\"false\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Langbeschreibung' | translate }}\"\r\n field=\"DESCRIPTION_LONG\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n [isPrint]=\"isPrint\"\r\n [showHTMLSwitch]=\"showHTMLSwitch\"\r\n [(showHTMLEditor)]=\"showHTMLEditor\"\r\n (showHTMLEditorChange)=\"showHTMLEditorChanged()\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n\r\n\r\n <div *ngIf=\"showHTMLEditor && !isPrint\" class=\"w-100\">\r\n <dx-html-editor class=\"w-100\"\r\n [(value)]=\"model.descriptionLong\"\r\n placeholder=\"DESCRIPTION_LONG\"\r\n [readOnly]=\"readOnlyForLinkedFields('DESCRIPTION_LONG') || readOnly('productDescLong')\"\r\n (onFocusOut)=\"update($event, 'DESCRIPTION_LONG')\"\r\n allowSoftLineBreak=\"true\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"link\"></dxi-item>\r\n </dxo-toolbar>\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DESCRIPTION_LONG')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-html-editor>\r\n </div>\r\n\r\n <div *ngIf=\"!showHTMLEditor || isPrint\">\r\n <label class=\"placeLabel {{ model?.descriptionLong?.length>0 ? 'placeLabelSmall' : '' }}\">DESCRIPTION_LONG</label>\r\n <dx-text-area [(value)]=\"model.descriptionLong\"\r\n [height]=\"130\"\r\n [readOnly]=\"readOnlyForLinkedFields('DESCRIPTION_LONG') || readOnly('productDescLong')\"\r\n (onValueChanged)=\"update($event, 'DESCRIPTION_LONG')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DESCRIPTION_LONG')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-area>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div *ngIf=\"hasTranslation\" slot=\"translation\" class=\"translationSlot\">\r\n\r\n\r\n <div *ngIf=\"showHTMLEditor\">\r\n <dx-html-editor [(value)]=\"productTranslation.descriptionLong\"\r\n placeholder=\"DESCRIPTION_LONG\"\r\n (onValueChanged)=\"translationUpdate(model.descriptionLong,$event.value)\"\r\n [readOnly]=\"readOnly('productDescLong')\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"link\"></dxi-item>\r\n </dxo-toolbar>\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"custom\" [validationCallback]=\"validationService.validateField('DESCRIPTION_LONG')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-html-editor>\r\n </div>\r\n\r\n <div *ngIf=\"!showHTMLEditor\">\r\n <label class=\"placeLabel {{ productTranslation?.descriptionLong?.length>0 ? 'placeLabelSmall' : '' }}\">DESCRIPTION_LONG</label>\r\n <dx-text-area [(value)]=\"productTranslation.descriptionLong\"\r\n [height]=\"130\"\r\n (onValueChanged)=\"translationUpdate(model.descriptionLong,$event.value)\"\r\n [readOnly]=\"readOnly('productDescLong')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DESCRIPTION_LONG')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-area>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Remarks-->\r\n <div *ngIf=\"!isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.remarks?.length > 0\"\r\n [showTranslationPlaceLabel]=\"productTranslation?.remarks?.length > 0\"\r\n [suppressTranslation]=\"false\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bemerkung' | translate }}\"\r\n field=\"REMARKS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.remarks\"\r\n [readOnly]=\"readOnlyForLinkedFields('REMARKS') || readOnly('productTranslation')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('REMARKS')\"\r\n (onValueChanged)=\"update($event, 'REMARKS')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('REMARKS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div *ngIf=\"hasTranslation\" slot=\"translation\" class=\"translationSlot\">\r\n <dx-text-box [(value)]=\"productTranslation.remarks\"\r\n [readOnly]=\"readOnly('productTranslation')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"translationUpdate(model.remarks,$event.value)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--ManufacturerAid-->\r\n <div *ngIf=\"!isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.manufacturerAid?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Herstellerartikelnummer' | translate }}\"\r\n field=\"MANUFACTURER_PID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.manufacturerAid\"\r\n [readOnly]=\"readOnlyForLinkedFields('MANUFACTURER_PID') || readOnly('productManuAid')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MANUFACTURER_PID')\"\r\n (onValueChanged)=\"update($event, 'MANUFACTURER_PID')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MANUFACTURER_PID')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--ManufacturerName-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.manufacturerName?.length > 0\"\r\n [showTranslationPlaceLabel]=\"productTranslation?.manufacturerName?.length > 0\"\r\n [suppressTranslation]=\"false\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Herstellername' | translate }}\"\r\n field=\"MANUFACTURER_NAME\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.manufacturerName\"\r\n [readOnly]=\"readOnlyForLinkedFields('MANUFACTURER_NAME') || readOnly('productManuName')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MANUFACTURER_NAME')\"\r\n (onValueChanged)=\"update($event, 'MANUFACTURER_NAME')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MANUFACTURER_NAME')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div *ngIf=\"hasTranslation\" slot=\"translation\" class=\"translationSlot\">\r\n <dx-text-box [(value)]=\"productTranslation.manufacturerName\"\r\n [readOnly]=\"readOnly('productManuName')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"translationUpdate(model.manufacturerName,$event.value)\"\r\n class=\"validationBlue\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n <!--EDENumbers-->\r\n <div *ngIf=\"hasAddonEDENUMBERS\" class=\"dx-fieldset\">\r\n\r\n <dx-accordion [dataSource]=\"edeNumbersDummy\"\r\n [collapsible]=\"true\"\r\n [multiple]=\"false\"\r\n [animationDuration]=\"300\">\r\n\r\n <div *dxTemplate=\"let t of 'title'\" class=\"dx-fieldset-header\">\r\n {{ 'EDE Nummern' | translate }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let i of 'item'\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.edeNumber1?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EDE Nummer' | translate }} 1\"\r\n field=\"EDE_NUMBER_1\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.edeNumber1\"\r\n [readOnly]=\"readOnlyForLinkedFields('EDE_NUMBER_1') || readOnly('productEDENumber1')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('EDE_NUMBER_1')\"\r\n (onValueChanged)=\"update($event, 'EDE_NUMBER_1')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('EDE_NUMBER_1')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.edeNumber2?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EDE Nummer' | translate }} 2\"\r\n field=\"EDE_NUMBER_2\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.edeNumber2\"\r\n [readOnly]=\"readOnlyForLinkedFields('EDE_NUMBER_2') || readOnly('productEDENumber2')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('EDE_NUMBER_2')\"\r\n (onValueChanged)=\"update($event, 'EDE_NUMBER_2')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('EDE_NUMBER_2')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.edeNumber3?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EDE Nummer' | translate }} 3\"\r\n field=\"EDE_NUMBER_3\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.edeNumber3\"\r\n [readOnly]=\"readOnlyForLinkedFields('EDE_NUMBER_3') || readOnly('productEDENumber3')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('EDE_NUMBER_3')\"\r\n (onValueChanged)=\"update($event, 'EDE_NUMBER_3')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('EDE_NUMBER_3')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.edeNumber4?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EDE Nummer' | translate }} 4\"\r\n field=\"EDE_NUMBER_4\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.edeNumber4\"\r\n [readOnly]=\"readOnlyForLinkedFields('EDE_NUMBER_4') || readOnly('productEDENumber4')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('EDE_NUMBER_4')\"\r\n (onValueChanged)=\"update($event, 'EDE_NUMBER_4')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('EDE_NUMBER_4')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.edeNumber5?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EDE Nummer' | translate }} 5\"\r\n field=\"EDE_NUMBER_5\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.edeNumber5\"\r\n [readOnly]=\"readOnlyForLinkedFields('EDE_NUMBER_5') || readOnly('productEDENumber5')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('EDE_NUMBER_5')\"\r\n (onValueChanged)=\"update($event, 'EDE_NUMBER_5')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('EDE_NUMBER_5')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </dx-accordion>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!--Keywords-->\r\n <div *ngIf=\"!isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.keywords?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Suchbegriffe' | translate }}\"\r\n field=\"KEYWORDS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-tag-box [(value)]=\"model.keywords\"\r\n placeholder=\"\"\r\n [readOnly]=\"readOnlyForLinkedFields('KEYWORDS') || readOnly('productKeywords')\"\r\n (onValueChanged)=\"update($event, 'KEYWORDS')\"\r\n [acceptCustomValue]=\"true\"\r\n noDataText=\"\"\r\n class=\"validationOrange\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('KEYWORDS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-tag-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Order-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productOrder != null\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Sortiernummer' | translate }}\"\r\n field=\"PRODUCT_ORDER\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.productOrder\"\r\n [min]=\"0\"\r\n placeholder=\"\"\r\n [showSpinButtons]=\"!readOnlyForLinkedFields('PRODUCT_ORDER')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PRODUCT_ORDER')\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRODUCT_ORDER')|| readOnly('productSortnumber')\"\r\n (onValueChanged)=\"update($event, 'PRODUCT_ORDER') \">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRODUCT_ORDER')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--PIM Status-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.states?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Produkt Status' | translate }}\"\r\n field=\"STATUS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-tag-box [(value)]=\"model.states\"\r\n [items]=\"productStates\"\r\n (onValueChanged)=\"updateState($event, 'STATUS')\"\r\n [acceptCustomValue]=\"true\"\r\n [readOnly]=\"readOnlyForLinkedFields('STATUS') || readOnly('productState')\"\r\n noDataText=\"\"\r\n placeholder=\"\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('STATUS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-tag-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!-- ERP_GROUP_Buyer-->\r\n <div *ngIf=\"hasAddonPRODUCT_DETAILS && !isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.erpGroupBuyer?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'ERP Gruppe Käufer' | translate }}\"\r\n field=\"ERP_GROUP_BUYER\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.erpGroupBuyer\"\r\n [readOnly]=\"readOnlyForLinkedFields('ERP_GROUP_BUYER') || readOnly('productEDEGroupBuyer')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('ERP_GROUP_BUYER')\"\r\n (onValueChanged)=\"update($event, 'ERP_GROUP_BUYER')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ERP_GROUP_BUYER')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!-- ERP_GROUP_Supplier-->\r\n <div *ngIf=\"hasAddonPRODUCT_DETAILS && !isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.erpGroupSupplier?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'ERP Gruppe Verkäufer' | translate }}\"\r\n field=\"ERP_GROUP_SUPPLIER\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.erpGroupSupplier\"\r\n [readOnly]=\"readOnlyForLinkedFields('ERP_GROUP_SUPPLIER') || readOnly('productEDEGroupSupplier')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('ERP_GROUP_SUPPLIER')\"\r\n (onValueChanged)=\"update($event, 'ERP_GROUP_SUPPLIER')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ERP_GROUP_SUPPLIER')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!-- BUYER_AID -->\r\n <div *ngIf=\"hasAddonPRODUCT_DETAILS && !isPrint\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.buyerAid?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Käufer Artikelnummer' | translate }}\"\r\n field=\"BUYER_AID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.buyerAid\"\r\n [readOnly]=\"readOnlyForLinkedFields('BUYER_AID') || readOnly('productBuyerAid')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('BUYER_AID')\"\r\n (onValueChanged)=\"update($event, 'BUYER_AID')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('BUYER_AID')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!-- IS_DISCONTINUED und DISCONTINUED_DATE -->\r\n <!-- *ngIf=\"!templateView\" -->\r\n <div class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-75\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressContentWidth]=\"templateView\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Auslaufprodukt' | translate }}\"\r\n field=\"IS_DISCONTINUED\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <!-- (valueChange)=\"update($event, 'IS_DISCONTINUED', '-1', '-1')\" -->\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.isDiscontinued\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.isDiscontinued\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_DISCONTINUED') || readOnly('productDiscontinued')\"\r\n (onValueChanged)=\"update($event, 'IS_DISCONTINUED')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div *ngIf=\"model.isDiscontinued == true\" class=\"np-field w-25 pl-3\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.discontinuedDate != null\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"DISCONTINUED_DATE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box id=\"date\"\r\n [(value)]=\"model.discontinuedDate\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n type=\"date\"\r\n valueChangeEvent=\"focusout\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DISCONTINUED_DATE')\"\r\n [readOnly]=\"readOnlyForLinkedFields('DISCONTINUED_DATE') || readOnly('productDiscontinuedDate')\"\r\n (onValueChanged)=\"update($event, 'DISCONTINUED_DATE')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DISCONTINUED_DATE')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n <div></div>\t\t<!-- DUMMY; last DIV gets no margin -->\r\n </div>\r\n\r\n\r\n\r\n </dx-validation-group>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { TranslationService } from '../../Services/translation.service';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { ProductState } from '../../Model/Catalog/ProductState';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"infos\",\r\n templateUrl: \"infos.html\",\r\n styleUrls: [\"infos.css\", \"template.css\"]\r\n})\r\nexport class Infos {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() hasAddonEDENUMBERS: Boolean = false;\r\n\r\n @Input() hasAddonPRODUCT_DETAILS: Boolean = false;\r\n @Input() isPrint: Boolean = false;\r\n @Input() productTranslation: Product = null;\r\n @Input() selectedTranslateLanguage: string = \"deu\";\r\n @Input() validationService: ValidationService;\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() translationUpdateFunction = new EventEmitter<{ \"txtOrg\": string, \"txtTran\": string }>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() showHTMLSwitch: Boolean = true;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n edeNumbersDummy: string[] = new Array();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n\r\n this.linkAllFields = this.linkAllFields.bind(this);\r\n this.getSupplierPid = this.getSupplierPid.bind(this);\r\n this.getStatus();\r\n\r\n\r\n this.edeNumbersDummy.push(\"dummy\");\r\n }\r\n\r\n public productStates: string[] = [];\r\n\r\n getStatus() {\r\n this.modelService.productStateService.getStatus().subscribe(\r\n (result: ProductState[]) => {\r\n this.productStates = new Array<string>();\r\n result.forEach(x => {\r\n this.productStates.push(x.name);\r\n });\r\n\r\n\r\n });\r\n }\r\n\r\n isMaster(): boolean {\r\n\r\n if (!this.showLinkButtons)\r\n return false;\r\n if (this.model) {\r\n if (this.model.productCount != null && this.model.productCount > 0) {\r\n return true;\r\n }\r\n\r\n }\r\n return false;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n showHTMLEditorChanged() {\r\n this.modelService.catalogService.getProduct(this.model.id, this.model.customerId, this.modelService.catalogService.catalog.id)\r\n .subscribe(() => {\r\n this.model = this.modelService.catalogService.product;\r\n });\r\n }\r\n\r\n updateState(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n\r\n if (this.templateView) {\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n return; // vom Template-Editor getriggert keine neuen Status anlegen!!\r\n }\r\n\r\n event.value.forEach(val => {\r\n if (!this.productStates.find(item => item == val)) {\r\n let status = new ProductState();\r\n status.customerId = this.modelService.loginService.currentUser.customerId;\r\n status.name = val;\r\n this.productStates.push(val);\r\n this.modelService.productStateService.addProductState(status).subscribe(\r\n (result: ProductState) => {\r\n status = result;\r\n this.modelService.productStateService.productStates.push(status.name);\r\n });\r\n }\r\n });\r\n this.onValueChanged.emit(event);\r\n\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n updateFromAutocomplete(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n if (event.event == undefined) {\r\n event.event = new Object(); // für den template editor erforderlich, da sonst keine default-items erstellt werden\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n\r\n event.value = event.selectedItem; // value ist in diesem fall nicht gesetzt, darauf baut aber der template editor\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n getLanguageFlag(flag) {\r\n return ViewService.getFlag(flag);\r\n }\r\n\r\n translateLanguage(code) {\r\n return TranslationService.translateLanguage(code);\r\n }\r\n\r\n get hasTranslation(): Boolean {\r\n if (this.productTranslation == null) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public translationUpdate(txtOrg, txtTran) {\r\n this.translationUpdateFunction.emit({ \"txtOrg\": txtOrg, \"txtTran\": txtTran });\r\n }\r\n\r\n private _showHTMLEditor: Boolean = true;\r\n\r\n get showHTMLEditor() {\r\n return this._showHTMLEditor;\r\n }\r\n\r\n set showHTMLEditor(value) {\r\n this._showHTMLEditor = value;\r\n }\r\n\r\n get internationalPidType() {\r\n return ViewService.dropDownInternationalPidType;\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n getSupplierPid() {\r\n this.modelService.supplierPidMappingService.mapProduct(this.model).subscribe(\r\n (product: Product) => {\r\n this.modelService.catalogService.getProduct(this.model.id, this.model.customerId, this.modelService.catalogService.catalog.id)\r\n .subscribe(() => {\r\n this.model = this.modelService.catalogService.product;\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n linkAllFields() {\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Sind Sie sicher, dass Sie die Verknüpfungen neu erstellen wollen? Bestehend Verknüpfungen werden überschrieben!\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"Wirklich neu verknüpfen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.modelService.catalogService.linkAllFields(this.model).subscribe(\r\n (product: Product) => {\r\n this.modelService.catalogService.getProduct(this.model.id, this.model.customerId, this.modelService.catalogService.catalog.id)\r\n .subscribe(() => {\r\n this.model = this.modelService.catalogService.product;\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n // Im Übersetzungsmodus nicht anzeigen\r\n if (this.hasTranslation) {\r\n return false;\r\n }\r\n\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = '-1', element: string = '-1', event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n if (field == \"DESCRIPTION_SHORT\" || field == \"SUPPLIER_PID\") {\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n event.forceTreeRefresh = true;\r\n\r\n }\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = '-1', element: string = '-1'): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Input,Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Mime } from \"../../../Model/Catalog/Mime\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { ValidationService } from \"../../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"importMime\",\r\n templateUrl: \"importMime.component.html\"\r\n})\r\nexport class ImportMimeComponent {\r\n @Input() isTemplate: Boolean = false;\r\n value: any[];\r\n uploadHeaders: any;\r\n msg: string = \"\";\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService, public validationService: ValidationService, private oAuthService: OAuthService,) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.txtHochgeladen = this.translate.instant(\"hochgeladen\");\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n this.uploadHeaders = {\r\n CatalogId: this.modelService.catalogService.selectedCatalogId,\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n }\r\n this.value = [];\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded(e) {\r\n this.msg = e.file.name.substring(0, 15) + \" \" + this.txtHochgeladen;\r\n this.reset();\r\n }\r\n\r\n onUploadStarted(e) {\r\n var mime = new Mime();\r\n var mimeOrder = 0;\r\n for (let mime of this.model.mimes) {\r\n if (mime.mimeOrder > mimeOrder) {\r\n mimeOrder = mime.mimeOrder;\r\n }\r\n }\r\n mimeOrder += 1;\r\n mime.mimeOrder = mimeOrder;\r\n mime.mimeSource = e.file.name;\r\n mime.mimeType = e.file.type;\r\n if (this.isTemplate) {\r\n this.model.mimeTemplate.push(mime);\r\n } else {\r\n this.model.mimes.push(mime);\r\n }\r\n this.update();\r\n }\r\n\r\n update() {\r\n if (this.modelService.catalogService.isCatalogSelected) {\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n if (this.modelService.catalogService.isCategorySelected) {\r\n this.modelService.catalogService.updateCategory();\r\n }\r\n if (this.modelService.catalogService.isProductSelected) {\r\n this.modelService.catalogService.updateProduct().then(() => {\r\n this.validationService.validateProduct(this.modelService.catalogService.product);\r\n });\r\n \r\n }\r\n }\r\n\r\n get model() {\r\n if (this.modelService.catalogService.isCatalogSelected) {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n if (this.modelService.catalogService.isCategorySelected) {\r\n return this.modelService.catalogService.category;\r\n }\r\n if (this.modelService.catalogService.isProductSelected) {\r\n return this.modelService.catalogService.product;\r\n }\r\n }\r\n\r\n txtHochgeladen: string;\r\n}\r\n","<dx-file-uploader #fileUploader\r\n uploadUrl=\"api/Import/ImportSingleMime\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"true\"\r\n accept=\"*\"\r\n (onUploaded)=\"onUploaded($event)\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onUploadStarted)=\"onUploadStarted($event)\"\r\n [(value)]=\"value\"\r\n uploadMode=\"instantly\">\r\n</dx-file-uploader>\r\n<b>{{ msg }}</b>\r\n\r\n","export class CreateReportProductDatasheet {\r\n\r\n constructor(\r\n public customerId?: string,\r\n public catalogId?: string,\r\n public productId?: string,\r\n public selectedReport?: string,\r\n public filenamePattern?: string,\r\n public mimeDescr?: string,\r\n public replaceAll?: boolean\r\n ) {\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CreateReportProductDatasheet } from \"../Model/Dto/CreateReportProductDatasheet\";\r\n\r\n@Component({\r\n selector: \"productReportingDialogComponent\",\r\n templateUrl: \"productreportingdialog.component.html\"\r\n})\r\nexport class ProductReportingDialogComponent implements OnInit {\r\n\r\n @Input() customerId: string = \"\";\r\n @Input() catalogId: string = \"\";\r\n @Input() productId: string = \"\";\r\n\r\n @Output() onCreate = new EventEmitter<any>();\r\n @Output() onDone = new EventEmitter<any>();\r\n\r\n _allReports: string[];\r\n _selectedReport: string;\r\n _filenamePattern: string;\r\n _mimeDescr: string;\r\n _replaceAll: boolean = false;\r\n\r\n txtExportReportProductDatasheetShort: string;\r\n txtExportReportProductDatasheetLong: string;\r\n txtSelectReport: string;\r\n txtSelectFilenamePattern: string;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.txtExportReportProductDatasheetShort = this.translate.instant(\"ReportProductDatasheetShort\");\r\n this.txtExportReportProductDatasheetLong = this.translate.instant(\"ReportProductDatasheetLong\");\r\n this.txtSelectReport = this.translate.instant(\"Bitte wählen Sie einen Report aus\");\r\n this.txtSelectFilenamePattern = this.translate.instant(\"Bitte wählen Sie ein Muster für die Vergabe der Dateinamen aus\");\r\n\r\n this.modelService.productReportingService.getUrls()\r\n .subscribe((items: string[]) => {\r\n this.allReports = items;\r\n });\r\n }\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n\r\n\r\n get allReports(): string[] {\r\n return this._allReports;\r\n }\r\n\r\n set allReports(value: string[]) {\r\n this._allReports = value;\r\n }\r\n\r\n\r\n\r\n get selectedReport(): string {\r\n return this._selectedReport;\r\n }\r\n\r\n set selectedReport(value: string) {\r\n this._selectedReport = value;\r\n }\r\n\r\n\r\n\r\n get filenamePattern(): string {\r\n return this._filenamePattern;\r\n }\r\n\r\n set filenamePattern(value: string) {\r\n this._filenamePattern = value;\r\n }\r\n\r\n\r\n\r\n get mimeDescr(): string {\r\n return this._mimeDescr;\r\n }\r\n\r\n set mimeDescr(value: string) {\r\n this._mimeDescr = value;\r\n }\r\n\r\n\r\n\r\n get replaceAll(): boolean {\r\n return this._replaceAll;\r\n }\r\n\r\n set replaceAll(value: boolean) {\r\n this._replaceAll = value;\r\n }\r\n\r\n\r\n\r\n create() {\r\n if (this.selectedReport == \"\" || this.selectedReport == undefined) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectReport);\r\n return;\r\n }\r\n if (this.filenamePattern == \"\" || this.filenamePattern == undefined) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectFilenamePattern);\r\n return;\r\n }\r\n\r\n let dto = new CreateReportProductDatasheet(\r\n this.customerId,\r\n this.catalogId,\r\n this.productId,\r\n this.selectedReport,\r\n this.filenamePattern,\r\n this.mimeDescr,\r\n this.replaceAll\r\n );\r\n\r\n\r\n\r\n this.modelService.productService.createReportProductDatasheet(dto).subscribe(\r\n (result: any) => {\r\n this.onDone.emit();\r\n });\r\n\r\n\r\n\r\n this.selectedReport = \"\";\r\n this.filenamePattern = \"\";\r\n this.mimeDescr = \"\";\r\n this.replaceAll = false;\r\n\r\n this.onCreate.emit();\r\n }\r\n}\r\n","<div class=\"d-flex flex-row h-100\">\r\n <div class=\"flex-fill\">\r\n\r\n\r\n\r\n <!--cust: {{ customerId }}<br />\r\n cata: {{ catalogId }}<br />\r\n prod: {{ productId }}<br />-->\r\n\r\n\r\n\r\n <div class=\"dx-accordion-item-title\">{{ txtExportReportProductDatasheetShort }}</div>\r\n\r\n <div class=\"accordion-body\" [innerHtml]=\"txtExportReportProductDatasheetLong\"></div>\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Report' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedReport?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'REPORT' | translate }}</label>\r\n <dx-select-box [(value)]=\"selectedReport\"\r\n [(dataSource)]=\"allReports\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Muster Dateiname' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ filenamePattern?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'MUSTER DATEINAME' | translate }}</label>\r\n <dx-text-box [(value)]=\"filenamePattern\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Beschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ mimeDescr?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'MIME DESCRIPTION' | translate }}</label>\r\n <dx-text-box [(value)]=\"mimeDescr\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Alle ersetzen' | translate }}</div>\r\n <dx-check-box [(value)]=\"replaceAll\" style=\"padding-top: 6px;\"></dx-check-box>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"macroHead dx-accordion-item-body\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Produktdatenblatt erstellen' | translate }}\" (onClick)=\"create()\" class=\"buttonMargin\"></dx-button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n","<dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Medien' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [masterDetail]=\"{ enabled: true, template: 'detail' }\"\r\n (onContentReady)=\"onContentReady()\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'newMimeButtonTemplate'\">\r\n <dx-button *ngIf=\"renderNewMimeButton()\" stylingMode=\"text\" [disabled]=\"updateLock\" type=\"default\" text=\"{{ 'Neue Mime' | translate }}\" (onClick)=\"addMime()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'importButtonTemplate'\">\r\n <dx-button *ngIf=\"renderImportMimeButton()\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Importieren' | translate }}\" (onClick)=\"showImportMime()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'reportButtonTemplate'\">\r\n <dx-button *ngIf=\"renderReportButton()\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Produktdatenblatt erstellen' | translate }}\" (onClick)=\"showCreateReportProductDatasheet()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button *ngIf=\"!templateView\" stylingMode=\"text\" type=\"default\" icon=\"refresh\" (onClick)=\"reload()\"></dx-button>\r\n </div>\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"!readOnly('mimeUpdate')\" [allowDeleting]=\"allowDeleting && !readOnly('mimeDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"MimesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"mimeOrder\" caption=\"{{ 'Order' | translate }}\" [width]=\"70\" [allowEditing]=\"true\" cellTemplate=\"mimeOrderTemplate\" editCellTemplate=\"mimeOrderTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let mime of 'mimeOrderTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"mime?.data?.mimeOrder != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"MIME_ORDER\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box *ngIf=\"showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"mime.data.mimeOrder\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasMimeFieldLinked(mime.data.mimeOrder.toString())\"\r\n [readOnly]=\"hasMimeFieldLinked(mime.data.mimeOrder.toString()) || readOnly('mimeOrder')\"\r\n [showClearButton]=\"false\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"update($event, null, mime.data, 'MIME_ORDER', mime.data.mimeOrder.toString())\">\r\n </dx-number-box>\r\n <dx-number-box *ngIf=\"!showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"mime.data.mimeOrder\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!templateView\"\r\n [readOnly]=\"readOnly('mimeOrder')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event, null, mime.data, 'MIME_ORDER', mime.data.mimeOrder.toString())\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"thumbUri\" caption=\"\" cellTemplate=\"thumbTemplate\" editCellTemplate=\"thumbTemplate\" [allowEditing]=\"false\" [width]=\"50\"></dxi-column>\r\n <div *dxTemplate=\"let thumbUri of 'thumbTemplate'\" style=\"margin-top:-7px;margin-bottom:-5px; margin-left: 3px;\">\r\n <div>\r\n <span *ngIf=\"!thumbUri.value\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 29px;\"></span>\r\n <img *ngIf=\"thumbUri.value\" src=\"{{thumbUri.value}}\" style=\"height: 29px;\" />\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"mimeDescr\" caption=\"{{ 'Beschreibung' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"mimeDescrTemplate\" editCellTemplate=\"mimeDescrTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let mime of 'mimeDescrTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeDescr?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Beschreibung' | translate }}\"\r\n field=\"MIME_DESCR\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete maxItemCount=\"50\"\r\n [minSearchLength]=\"0\"\r\n [dataSource]=\"mimeDescr\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString()) || readOnly('mimeDescription')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n [(value)]=\"mime.data.mimeDescr\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'MIME_DESCR', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_DESCR', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"mimePurpose\" caption=\"{{ 'Verwendung' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"mimePurposeTemplate\" editCellTemplate=\"mimePurposeTemplate\" [width]=\"180\"></dxi-column>\r\n <div *dxTemplate=\"let mime of 'mimePurposeTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimePurpose?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Verwendung' | translate }}\"\r\n field=\"MIME_PURPOSE\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"mimePurposes\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString()) || readOnly('mimePurpose')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n [(value)]=\"mime.data.mimePurpose\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'MIME_PURPOSE', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_PURPOSE', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let mime of 'detail'\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"flex-fill\">\r\n <form>\r\n <div class=\"dx-fieldset\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeOrder != null\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"MIME_ORDER\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box *ngIf=\"showLinkButtons\"\r\n [(value)]=\"mime.data.mimeOrder\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasMimeFieldLinked(mime.data.mimeOrder.toString())\"\r\n [readOnly]=\"hasMimeFieldLinked(mime.data.mimeOrder.toString()) || readOnly('mimeOrder')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n <dx-number-box *ngIf=\"!showLinkButtons\"\r\n [(value)]=\"mime.data.mimeOrder\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!templateView\"\r\n [readOnly]=\"templateView || readOnly('mimeOrder')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimePurpose?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Verwendung' | translate }}\"\r\n field=\"MIME_PURPOSE\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"mimePurposes\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString()) || readOnly('mimePurpose')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n [(value)]=\"mime.data.mimePurpose\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_PURPOSE', mime.data.mimeOrder.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'MIME_PURPOSE', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_PURPOSE', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeSource?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Dateipfad' | translate }}\"\r\n field=\"MIME_SOURCE\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"mime.data.mimeSource\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_SOURCE', mime.data.mimeOrder.toString()) ||readOnly('mimeSource')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_SOURCE', mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_SOURCE', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_SOURCE', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeType?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Dateityp' | translate }}\"\r\n field=\"MIME_TYPE\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"mimeTypes\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_TYPE', mime.data.mimeOrder.toString()) || readOnly('mimeTypes')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_TYPE', mime.data.mimeOrder.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('MIME_TYPE', mime.data.mimeOrder.toString())\"\r\n [(value)]=\"mime.data.mimeType\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_TYPE', mime.data.mimeOrder.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'MIME_TYPE', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_TYPE', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeDescr?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Beschreibung' | translate }}\"\r\n field=\"MIME_DESCR\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete maxItemCount=\"50\"\r\n [minSearchLength]=\"0\"\r\n [dataSource]=\"mimeDescr\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString()) || readOnly('mimeOrder')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n [(value)]=\"mime.data.mimeDescr\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_DESCR', mime.data.mimeOrder.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'MIME_DESCR', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_DESCR', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"mime?.data?.mimeAlt?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Alternativtext' | translate }}\"\r\n field=\"MIME_ALT\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"mime.data.mimeAlt\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_ALT', mime.data.mimeOrder.toString()) || readOnly('mimeOrder')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('MIME_ALT', mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_ALT', mime.data.mimeOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_ALT', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n <div>\r\n <div class=\"dx-fieldset\">\r\n <div class=\"d-flex flex-column\" style=\"gap: 10px\">\r\n <div *ngIf=\"!exportMode\">\r\n <span *ngIf=\"!mime.data.normUri\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 192px;\"></span>\r\n <a *ngIf=\"mime.data.normUri\" href=\"{{mediaService.getDownloadLink(this.catalogId,this.customerId,mime.data.mimeSource)}}\" target=\"_blank\">\r\n <img src=\"{{mime.data.normUri}}\" style=\"height: 192px;\" />\r\n </a>\r\n </div>\r\n <div *ngIf=\"exportMode\" style=\"width:200px;height:200px;\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"LINK\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <span *ngIf=\"!mime.data.normUri\" class=\"glyphicon glyphicon-picture np-others\" style=\"font-size: 192px;\"></span>\r\n <img *ngIf=\"mime.data.normUri\" class=\"np-others\" src=\"{{mime.data.normUri}}\" style=\"height: 192px;\" />\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"exportMode\" style=\"width:100px;height:100px;\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"LINK_NORM\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <span *ngIf=\"!mime.data.normUri\" class=\"glyphicon glyphicon-picture np-others\" style=\"font-size: 96px;\"></span>\r\n <img *ngIf=\"mime.data.normUri\" class=\"np-others\" src=\"{{mime.data.normUri}}\" style=\"height: 96px;\" />\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"hasShopware6Addon()\">\r\n {{ 'Von Export ausgrenzen?' | translate }}\r\n </div>\r\n <div *ngIf=\"hasShopware6Addon()\">\r\n <np-inputControl [(model)]=\"product\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, mime.data.mimeOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"MIME_EXCLUDE_FROM_SHOPWARE6\"\r\n [system]=\"mime.data.mimeOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 125px; height: 32px; padding-top: 2px; padding-left: 2px;\">\r\n <dx-check-box [(value)]=\"mime.data.excludeFromShopware6\"\r\n [readOnly]=\"readOnlyForLinkedFields('MIME_EXCLUDE_FROM_SHOPWARE6', mime.data.mimeOrder.toString()) || readOnly('mimeOrder')\"\r\n (onValueChanged)=\"update($event, null, null, 'MIME_EXCLUDE_FROM_SHOPWARE6', mime.data.mimeOrder.toString())\"\r\n text=\"{{ 'Shopware' | translate }}\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('MIME_EXCLUDE_FROM_SHOPWARE6', mime.data.mimeOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-check-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</dx-data-grid>\r\n\r\n<div *ngIf=\"product?.hintsActiv && !validationService.validationResult?.productMimesValid\" class=\"color3Text\">\r\n <table>\r\n <tr *ngFor=\"let msg of validationService.validationResult?.mediaMessages\">\r\n <td>\r\n {{ translateMessage(msg) }}\r\n </td>\r\n </tr>\r\n </table>\r\n</div>\r\n\r\n\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"Mime importieren\"\r\n [dragEnabled]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importMimeVisible\"\r\n (onHiding)=\"hideImportMime()\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importMime [(isTemplate)]=\"isTemplate\"></importMime>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"800\"\r\n [height]=\"675\"\r\n [showTitle]=\"true\"\r\n [title]=\"txtExportReportProductDatasheetShort\"\r\n [dragEnabled]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"createReportProductDatasheetVisible\"\r\n (onHiding)=\"hideCreateReportProductDatasheet()\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <productReportingDialogComponent [customerId]=\"customerId\"\r\n [catalogId]=\"catalogId\"\r\n [productId]=\"product.id\"\r\n (onCreate)=\"hideCreateReportProductDatasheet()\"\r\n (onDone)=\"reload()\">\r\n </productReportingDialogComponent>\r\n </div>\r\n</dx-popup>\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { Mime } from \"../../Model/Catalog/Mime\";\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { Functions } from '../../Services/functions';\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { MediaService } from \"../../Services/media.service\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"mimes\",\r\n templateUrl: \"mimes.html\",\r\n styleUrls: [\"./mimes.css\", \"template.css\"]\r\n})\r\nexport class Mimes implements OnInit {\r\n @Input() model: Mime[] = [];\r\n @Input() product: Product = null;\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() catalogId: string = \"\";\r\n @Input() customerId: string = \"\";\r\n @Input() exportMode: Boolean = false;\r\n @Input() modelService: ModelService;\r\n @Input() isTemplate: Boolean = false;\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() reloadNedded = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n txtExportReportProductDatasheetShort: string;\r\n updateLock: boolean = false;\r\n newMimeOrder = 0;\r\n\r\n constructor(public templateService: TemplateService, public validationService: ValidationService, public translate: TranslateService,\r\n public userManagement: UserManagementService, public mediaService: MediaService) {\r\n this.addMime = this.addMime.bind(this);\r\n this.showImportMime = this.showImportMime.bind(this);\r\n this.reload = this.reload.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.txtExportReportProductDatasheetShort = this.translate.instant(\"ReportProductDatasheetShort\");\r\n\r\n this.model.forEach(x => {\r\n x.guid = Functions.newGuid();\r\n });\r\n\r\n for (const mime of this.model) {\r\n if (mime.mimeOrder > this.newMimeOrder && mime.mimeOrder < 1000) {\r\n this.newMimeOrder = mime.mimeOrder;\r\n }\r\n }\r\n this.newMimeOrder += 1;\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'reportButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newMimeButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'importButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate'\r\n });\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, mimeChange = null, data?, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n //Order wird bereits benutzt\r\n if (field == \"MIME_ORDER\") {\r\n let fs = this.model.filter(x => x.guid == data.guid)[0];\r\n let originalOrder = event.previousValue;\r\n let change = event.value > event.previousValue ? 1 : -1;\r\n while (this.model.filter(x => x.mimeOrder == event.value).length > 1) {\r\n event.value += change;\r\n fs.mimeOrder = event.value;\r\n }\r\n if (event.value < 1) {\r\n fs.mimeOrder = originalOrder;\r\n return;\r\n }\r\n\r\n\r\n if (fs.mimeOrder >= this.newMimeOrder) {\r\n for (const mime of this.model) {\r\n if (mime.mimeOrder > this.newMimeOrder && mime.mimeOrder < 1000) {\r\n this.newMimeOrder = mime.mimeOrder;\r\n }\r\n }\r\n this.newMimeOrder += 1;\r\n }\r\n }\r\n\r\n\r\n if ((mimeChange != null && mimeChange) || (event != null && event.previousValue !== event.value)) {\r\n\r\n this.model.forEach((mime: Mime) => {\r\n mime.lastChanged = new Date();\r\n });\r\n\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n updateFromAutocomplete(event = null, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n if (event.event == undefined) {\r\n event.event = new Object(); // für den template editor erforderlich, da sonst keine default-items erstellt werden\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n\r\n event.value = event.selectedItem; // value ist in diesem fall nicht gesetzt, darauf baut aber der template editor\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n delete(event = null) {\r\n\r\n let orderString = event.data.mimeOrder.toString();\r\n\r\n // Prüfen, ob irgend ein Feld dieses MIMEs gelinked ist\r\n for (let mimeField of this.templateService.allMimeFields) {\r\n if (this.product != null && this.product.isFieldLinked(mimeField, orderString, \"-1\")) {\r\n this.product.toggleLinkedField(mimeField, orderString, \"-1\");\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n event.dFields = this.templateService.allMimeFields;\r\n event.dDetailFields = null;\r\n event.dSystem = orderString;\r\n event.dElement = -1;\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n reload() {\r\n this.reloadNedded.emit();\r\n }\r\n\r\n addMime() {\r\n this.updateLock = true;\r\n var mime = new Mime();\r\n mime.lastChanged = new Date();\r\n mime.mimeOrder = this.newMimeOrder++;\r\n this.model.push(mime);\r\n this.update();\r\n }\r\n\r\n onContentReady() {\r\n this.updateLock = false;\r\n }\r\n\r\n get allowDeleting() {\r\n //return !this.templateView;\r\n return true;\r\n }\r\n\r\n get mimeTypes() {\r\n return ViewService.dropDownMimeTypes;\r\n }\r\n\r\n get mimePurposes() {\r\n return ViewService.dropDownMimePurposes;\r\n }\r\n\r\n get mimeDescr() {\r\n return this.modelService.viewService.dropDownMimeDescr;\r\n }\r\n\r\n\r\n\r\n public importMimeVisible: boolean = false;\r\n showImportMime() {\r\n this.importMimeVisible = true;\r\n }\r\n hideImportMime() {\r\n this.importMimeVisible = false;\r\n }\r\n\r\n\r\n\r\n public createReportProductDatasheetVisible: boolean = false;\r\n showCreateReportProductDatasheet() {\r\n this.createReportProductDatasheetVisible = true;\r\n }\r\n\r\n hideCreateReportProductDatasheet() {\r\n this.createReportProductDatasheetVisible = false;\r\n }\r\n\r\n\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n\r\n\r\n\r\n public onRowRemoving(e) {\r\n let orderString = e.data.mimeOrder.toString();\r\n\r\n if (this.product != null && this.product.isChild && this.hasMimeFieldLinked(orderString)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie die Mime wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n templateSelect(identifier: string, orderString: string) {\r\n this.elementSelected.emit(`${identifier}_${orderString}`);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public hasMimeFieldLinked(system?: string): boolean {\r\n // Prüfen, ob irgend ein Feld dieses MIMEs gelinked ist\r\n for (let mimeField of this.templateService.allMimeFields) {\r\n if (this.product != null && this.product.isFieldLinked(mimeField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (this.product != null && field != null) {\r\n var isLinked = this.product.isFieldLinked(field, system, element);\r\n if (isLinked && this.product.isChild != null && this.product.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n if (this.product != null) {\r\n return this.product.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n if (this.product != null) {\r\n return this.product.isFieldLinked(field, system, element);\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = \"-1\", element: string = \"-1\", event = null) {\r\n var changed = this.product.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.product.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.product.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n if (field == \"MIME_PURPOSE\" || field == \"MIME_SOURCE\") {\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n event.forceTreeRefresh = true;\r\n }\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event, true);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\", element: string = \"-1\"): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.product.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product == null || !this.isVirtualCatalog()) && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product != null && this.isVirtualCatalog()) || !this.userManagement.canEdit(name);\r\n }\r\n\r\n renderNewMimeButton(): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product == null || !this.isVirtualCatalog()) && this.canView('mimeNew');\r\n }\r\n\r\n renderImportMimeButton(): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return !this.templateView && (this.product == null || !this.isVirtualCatalog()) && this.canView('mimeImport');\r\n }\r\n\r\n renderReportButton(): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return !this.isVirtualCatalog() && this.product && this.templateView == false && this.modelService?.loginService?.hasAddonREPORTPRODUCTDATASHEET && this.canView('mimeProductSheetCreate');\r\n }\r\n\r\n hasShopware6Addon(): boolean {\r\n return this.modelService?.loginService?.hasAddonShopware6;\r\n }\r\n}\r\n\r\n\r\n\r\n//nexmart Informationen:\r\n//Diesem sind zwar 3 Produkt-Bilder zugewiesen im Eingangsfile. Aber es wird standardmäßig immer das Produktbild mit der höchsten Auflösung genommen und dann verdreifacht – das Eingangsfile wird zum Zoombild, daraus wird zusätzlich ein Produktbild und ein Thumbnail erstellt. Alle anderen Produktbilder, wenn sie nicht als weitere, Anwendungsbilder deklariert sind, verfallen.\r\n//Als die „3“ Produktbilder wird immer eine Basis genutzt.Die Nutzung von 2 verschiedenen Bildern als Produktbild für einen Artikel geht nicht.\r\n\r\n\r\n","export class ValidFeature {\r\n\r\n constructor(\r\n public id?: string,\r\n public validFeatureSystemId?: string,\r\n public name?: string,\r\n public unit?: string,\r\n ) {\r\n }\r\n\r\n get displayValue(): string {\r\n return this.name + ' ' + this.unit;\r\n\r\n }\r\n}\r\n\r\n","<div>\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"p-2 flex-grow-1\" *ngIf=\"!showList()\">\r\n\r\n <dx-select-box [(value)]=\"feature.value\"\r\n [showClearButton]=\"!readOnly\"\r\n [readOnly]=\"readOnly\"\r\n (onValueChanged)=\"updateFeatureValue($event)\"\r\n (validationMessageMode)=\"always\"\r\n [minSearchLength]=\"0\"\r\n [searchEnabled]=\"true\"\r\n acceptCustomValue=\"true\"\r\n (onCustomItemCreating)=\"addCustomFeatureValue($event)\"\r\n valueExpr=\"value\"\r\n displayExpr=\"value\"\r\n placeholder=\"\"\r\n itemTemplate=\"customItem\"\r\n (onFocusIn)=\"requestFeatureValues(feature)\"\r\n [dataSource]=\"featureValueDataSource\">\r\n <div *dxTemplate=\"let featureItem of 'customItem'\">\r\n <div>{{geValueOfFeatureValue(featureItem, feature)}}</div>\r\n </div>\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"custom\" [validationCallback]=\"validationService.validateField('FVALUE', featureSystem.validFeatureSystemId, feature.validFeatureId)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n <div class=\"p-2 flex-grow-1\" *ngIf=\"showList()\">\r\n <dx-text-box [value]=\"valueListText(feature)\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"p-2\" style=\"width=30px;\">\r\n <dx-button *ngIf=\"!showList() && !readOnly\" icon=\"expand\" (onClick)=\"expandButtonClicked()\"> </dx-button>\r\n <dx-button *ngIf=\"showList()\" stylingMode=\"contained\" icon=\"bulletlist\" (onClick)=\"expandButtonClicked()\"> </dx-button>\r\n </div>\r\n </div>\r\n <dx-popup width=\"80vw\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Wert bearbeiten' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"expandPopupVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n\r\n\r\n <dx-data-grid (onToolbarPreparing)=\"onSystemToolbarPreparing($event)\"\r\n [dataSource]=\"feature.featureValues\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [customizeColumns]=\"customizeColumns\"\r\n (onRowRemoved)=\"update($event)\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n [repaintChangesOnly]=\"true\">\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\" [allowDeleting]=\"!readOnlyUser('featureListDelete') && featuresEditable\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureValuesNewUI\"></dxo-state-storing>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'addFeatureValueButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\"\r\n text=\"{{ 'Wert Hinzufügen' | translate }}\"\r\n (onClick)=\"addFeatureValueClicked()\"></dx-button>\r\n </div>\r\n\r\n <dxi-column caption=\"{{ 'Wert' | translate }}\" dataField=\"value\" cellTemplate=\"valueTemplate\" editCellTemplate=\"valueTemplate\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let column of 'valueTemplate'\" class=\"d-flex flex-row\">\r\n <div class=\"flex-fill\">\r\n <dx-select-box *ngIf=\"!isClassification()\"\r\n [(value)]=\"column.data.value\"\r\n [showClearButton]=\"!readOnly\"\r\n [readOnly]=\"readOnly\"\r\n (onValueChanged)=\"updateFeatureValueFromList($event,column.data)\"\r\n (validationMessageMode)=\"always\"\r\n [minSearchLength]=\"0\"\r\n [searchEnabled]=\"true\"\r\n acceptCustomValue=\"true\"\r\n (onCustomItemCreating)=\"addCustomFeatureValue($event)\"\r\n valueExpr=\"value\"\r\n [displayExpr]=\"featureValueDisplayExpr\"\r\n placeholder=\"\"\r\n (onFocusIn)=\"requestFeatureValues(feature)\"\r\n [dataSource]=\"featureValueDataSource\">\r\n </dx-select-box>\r\n <dx-select-box *ngIf=\"isClassification()\"\r\n [(value)]=\"column.data.value\"\r\n [showClearButton]=\"!readOnly\"\r\n [readOnly]=\"readOnly\"\r\n (onValueChanged)=\"updateFeatureValue($event)\"\r\n (validationMessageMode)=\"always\"\r\n [minSearchLength]=\"0\"\r\n [searchEnabled]=\"true\"\r\n acceptCustomValue=\"true\"\r\n (onCustomItemCreating)=\"addCustomFeatureValue($event)\"\r\n valueExpr=\"valueId\"\r\n [displayExpr]=\"featureValueDisplayExpr\"\r\n placeholder=\"\"\r\n (onFocusIn)=\"requestFeatureValues(feature)\"\r\n [dataSource]=\"featureValueDataSource\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n\r\n\r\n </dx-popup>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FeatureValue } from \"../../Model/classification/FeatureValue\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Feature } from '../../Model/Catalog/FeatureModels/Feature';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\nimport { ValidFeatureService } from \"../../Services/validFeature.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { FeatureSystem } from \"../../Model/Catalog/FeatureModels/FeatureSystem\";\r\n@Component({\r\n selector: \"featurevalue\",\r\n templateUrl: \"featurevalue.component.html\"\r\n})\r\nexport class FeatureValueComponent {\r\n @Input() displayMode: \"edit\" | \"import\" | \"export\";\r\n @Input() featureSystem: FeatureSystem = null;\r\n @Input() feature: Feature = null;\r\n @Input() templateView: boolean = false;\r\n @Input() hasAddonCLASSIFICATION = false;\r\n @Input() modelService: ModelService;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n public expandButton: any;\r\n public listButton: any;\r\n\r\n public expandPopupVisible: boolean = false;\r\n private featureValues: FeatureValue[];\r\n\r\n _readOnly: boolean;\r\n\r\n @Input()\r\n set readOnly(v: boolean) {\r\n this._readOnly = v;\r\n\r\n };\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n\r\n\r\n\r\n constructor(public translate: TranslateService, public userManagement: UserManagementService, public validFeatureService: ValidFeatureService, public loginService: LoginService, public validationService: ValidationService) {\r\n\r\n this.expandButtonClicked = this.expandButtonClicked.bind(this);\r\n this.onSystemToolbarPreparing = this.onSystemToolbarPreparing.bind(this);\r\n this.addFeatureValueClicked = this.addFeatureValueClicked.bind(this);\r\n\r\n this.listButton = {\r\n icon: \"orderedlist\",\r\n stylingMode: \"text\",\r\n onClick: this.expandButtonClicked\r\n };\r\n\r\n this.expandButton = {\r\n icon: \"expand\",\r\n stylingMode: \"text\",\r\n onClick: this.expandButtonClicked\r\n };\r\n }\r\n\r\n\r\n showList(): boolean {\r\n\r\n if (this.feature.featureValues.length > 1)\r\n return true;\r\n return false;\r\n\r\n }\r\n\r\n expandButtonClicked() {\r\n this.expandPopupVisible = true;\r\n }\r\n\r\n get featuresEditable(): boolean {\r\n return (this.displayMode === 'edit' || this.displayMode === \"import\");\r\n }\r\n\r\n\r\n\r\n isClassification() {\r\n if (this.feature.ftIdref) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n update(event = null) {\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n featureValueDataSource: DataSource;\r\n\r\n requestFeatureValues(feature) {\r\n\r\n this.featureValueDataSource = new DataSource({\r\n store: this.featureValues,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n\r\n\r\n\r\n if (feature.valueSource) {\r\n this.modelService.classificationService.getFeatureValues(feature.name, feature.valueSource).subscribe(result => {\r\n this.featureValues = result.filter(x => x.value != \"\");\r\n this.featureValueDataSource = new DataSource({\r\n store: this.featureValues,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n\r\n\r\n });\r\n } else {\r\n this.validFeatureService.getValues(this.feature.validFeatureId, this.loginService.currentCustomer.id).subscribe(result => {\r\n this.featureValues = new Array<FeatureValue>();\r\n result.filter(x => x.value != \"\").forEach(item => {\r\n let featureValue = new FeatureValue();\r\n featureValue.value = item.value;\r\n featureValue.validFeatureValueId = item.id;\r\n this.featureValues.push(featureValue);\r\n });\r\n\r\n this.featureValueDataSource = new DataSource({\r\n store: this.featureValues,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n valueListText(feature: Feature): string {\r\n let result = \"\";\r\n feature.featureValues.forEach(item => {\r\n\r\n if (result != \"\") {\r\n result = result + \", \";\r\n }\r\n result = result + item.value;\r\n });\r\n return result;\r\n }\r\n\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n updateFeatureValue(event) {\r\n if (this.featureValues) {\r\n const featureValue = this.featureValues.find(x => x.value === this.feature.value || x.valueId == this.feature.value);\r\n if (featureValue) {\r\n this.feature.value = featureValue.value;\r\n\r\n if (this.feature.featureValues == undefined || this.feature.featureValues.length == 0) {\r\n this.feature.featureValues = [];\r\n this.feature.featureValues.push(featureValue);\r\n }\r\n else\r\n this.feature.featureValues[0].validFeatureValueId = featureValue.validFeatureValueId;\r\n\r\n if (featureValue.valueId && featureValue.valueId != \"\") {\r\n this.feature.value = featureValue.valueId;\r\n this.feature.featureValues[0].valueId = featureValue.value;\r\n this.feature.featureValues[0].value = featureValue.valueId;\r\n this.feature.fValueDetails = featureValue.value;\r\n } else {\r\n this.feature.featureValues[0].value = featureValue.value;\r\n }\r\n }\r\n }\r\n this.update(event);\r\n }\r\n\r\n updateFeatureValueFromList(event, dataRow: FeatureValue) {\r\n if (this.featureValues) {\r\n const featureValue = this.featureValues.find(x => x.value === dataRow.value);\r\n if (featureValue) {\r\n dataRow.validFeatureValueId = featureValue.validFeatureValueId;\r\n }\r\n }\r\n this.update(event);\r\n }\r\n\r\n updateFeatureValueClassification(event) {\r\n if (this.featureValues) {\r\n const featureValue = this.featureValues.find(x => x.valueId === this.feature.value);\r\n if (featureValue) {\r\n if (featureValue.valueId !== featureValue.value) {\r\n this.feature.fValueDetails = featureValue.value;\r\n this.feature.value = featureValue.valueId;\r\n if (!this.feature.fValueDetails || this.feature.fValueDetails === \"\") {\r\n this.feature.fValueDetails = this.feature.value;\r\n }\r\n } else {\r\n this.feature.fValueDetails = null;\r\n }\r\n }\r\n }\r\n this.update(event);\r\n }\r\n\r\n public onRowRemoving(e) {\r\n let order = e.data.order;\r\n if (order == 1) {\r\n this.feature.featureValues.forEach(system => {\r\n system.order = system.order - 1;\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n featureValueDisplayExpr(featureValue: FeatureValue | string): string {\r\n if (!featureValue)\r\n return \"\";\r\n if (typeof featureValue === \"string\") {\r\n return featureValue;\r\n }\r\n if (!featureValue || !featureValue.value )\r\n return \"\";\r\n \r\n\r\n if (featureValue.valueId && featureValue.valueId != \"\")\r\n return featureValue.valueId;\r\n else\r\n return featureValue.value;\r\n\r\n }\r\n\r\n featureValueClassificationDisplayExpr(feature: Feature): string {\r\n if (!feature || !feature.featureValues || feature.featureValues.length == 0)\r\n return \"\";\r\n\r\n let fvalue = feature.featureValues[0];\r\n /* if (fvalue.valueId != fvalue.value)\r\n return fvalue.value;*/\r\n\r\n return fvalue.value;\r\n }\r\n\r\n\r\n geValueOfFeatureValue(item: FeatureValue, feature: Feature) {\r\n if (!feature.valueSource || feature.valueSource == \"\")\r\n return item.value;\r\n\r\n if (item.valueId && item.valueId != \"\") {\r\n if (item.value == \"\")\r\n return \"\";\r\n return item.valueId + \" - \" + item.value;\r\n }\r\n return item.value;\r\n }\r\n\r\n geValueOfFeature(feature: Feature) {\r\n if (!feature || !feature.featureValues || feature.featureValues.length == 0)\r\n return \"\";\r\n let fvalue = feature.featureValues[0];\r\n if (fvalue.valueId && fvalue.valueId != \"\")\r\n return fvalue.valueId;\r\n return fvalue.value;\r\n }\r\n\r\n addCustomFeatureValue(data: { text: string; customItem: FeatureValue }) {\r\n if (!data.text) {\r\n data.customItem = null;\r\n return;\r\n }\r\n\r\n if (!this.feature.featureValues)\r\n this.feature.featureValues = [];\r\n\r\n let custom = new FeatureValue();\r\n custom.value = data.text;\r\n custom.validFeatureValueId = \"\";\r\n custom.valueId = \"\";\r\n custom.order = this.feature.featureValues.length + 1;\r\n data.customItem = custom;\r\n\r\n this.featureValues.push(custom);\r\n }\r\n\r\n featureDisplayExpr(item: FeatureValue): string {\r\n if (item === null || item === undefined)\r\n return \"\";\r\n if (item.value)\r\n return item.value;\r\n return \"\";\r\n }\r\n\r\n onSystemToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addFeatureValueButtonTemplate',\r\n });\r\n }\r\n\r\n addFeatureValueClicked() {\r\n let max = 0;\r\n this.feature.featureValues.forEach(system => {\r\n if (system.order > max)\r\n max = system.order;\r\n\r\n });\r\n let fv = new FeatureValue();\r\n fv.order = max + 1;\r\n this.feature.featureValues.push(fv);\r\n this.update();\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-data-grid (onToolbarPreparing)=\"onFeaturesToolbarPreparing($event)\"\r\n [dataSource]=\"featureSystem.features\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [repaintChangesOnly]=\"true\"\r\n [customizeColumns]=\"customizeColumns\"\r\n (onContentReady)=\"onContentReady()\">\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"!readOnly('editfeatureDelete')\"\r\n [allowDeleting]=\"featuresDeletable && !readOnly('editfeatureDelete')\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureValuesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'addFeatureButtonTemplate'\">\r\n <dx-button stylingMode=\"text\"\r\n type=\"default\"\r\n [visible]=\"!readOnly('CategoryAddFeature')\"\r\n text=\"{{ 'Neues Feature' | translate }}\"\r\n [disabled]=\"!addFeatureButtonEnabled || updateLock\"\r\n (onClick)=\"addFeatureButtonClicked()\">\r\n </dx-button>\r\n </div>\r\n\r\n <dxi-column width=\"100px\" caption=\"{{ 'Order' | translate }}\" dataField=\"forder\" sortOrder=\"asc\"\r\n cellTemplate=\"orderCellTemplate\" editCellTemplate=\"orderCellTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"featureNameVisible\" caption=\"{{ 'Name' | translate }}\" dataField=\"validFeatureId\"\r\n cellTemplate=\"nameCellTemplate\" editCellTemplate=\"nameCellTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"featureDescriptionVisible\" caption=\"{{ 'Beschreibung' | translate }}\" dataField=\"fDescr\"\r\n cellTemplate=\"descriptionCellTemplate\" editCellTemplate=\"descriptionCellTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"featureValueVisible\" caption=\"{{ 'Wert' | translate }}\" dataField=\"value\"\r\n cellTemplate=\"valueCellTemplate\" editCellTemplate=\"valueCellTemplate\"></dxi-column>\r\n\r\n\r\n <dxi-column [visible]=\"featureValueDetailVisible\" caption=\"{{ 'Wert Detail' | translate }}\" dataField=\"fValueDetails\"\r\n cellTemplate=\"valueDetailsCellTemplate\" editCellTemplate=\"valueDetailsCellTemplate\"></dxi-column>\r\n <dxi-column width=\"120px\" [visible]=\"featureUnitVisible\" caption=\"{{ 'Einheit' | translate }}\" dataField=\"funit\"\r\n cellTemplate=\"unitCellTemplate\" editCellTemplate=\"unitCellTemplate\"></dxi-column>\r\n <dxi-column width=\"100px\" [visible]=\"isPrintVisible\" caption=\"{{ 'Druckreihenfolge' | translate }}\"\r\n dataField=\"printOrder\" cellTemplate=\"isPrintCellTemplate\" editCellTemplate=\"isPrintCellTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"isVariantVisible\" caption=\"{{ 'Variantenmerkmal' | translate }}\" dataField=\"isVariant\"\r\n cellTemplate=\"variantCellTemplate\" editCellTemplate=\"variantCellTemplate\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let column of 'orderCellTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.forder != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"FORDER\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"column.data.forder\"\r\n [min]=\"1\"\r\n [showClearButton]=\"false\"\r\n [showSpinButtons]=\"!readOnlyForLinkedFields('FORDER', column.data.validFeatureId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('FORDER', column.data.validFeatureId) || readOnly('forder') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'FORDER', column.data.validFeatureId)\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'nameCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.name?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"updateFeatureName($event)\"\r\n field=\"FNAME\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelFeatureNameDroppedError()\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [(value)]=\"column.data.validFeatureId\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"hasFeatureFieldLinked(column.data.validFeatureId) || readOnly('FNAME') || readOnlyFNameTemplateEditor(column.data)\"\r\n (onValueChanged)=\"updateFeatureName($event, column.data)\"\r\n (validationMessageMode)=\"always\"\r\n [minSearchLength]=\"0\"\r\n [searchEnabled]=\"true\"\r\n itemTemplate=\"item\"\r\n acceptCustomValue=\"true\"\r\n placeholder=\"\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n (onCustomItemCreating)=\"addCustomFeature($event, column.data)\"\r\n [(dataSource)]=\"featuresDataSource\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('FNAME', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n <div *dxTemplate=\"let data of 'item'\">\r\n {{ (data.unit ? data.name + ' => ' + data.unit : data.name) }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let column of 'descriptionCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.fDescr?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"FDESCR\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.fDescr\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('FDESCR', column.data.validFeatureId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('FDESCR', column.data.validFeatureId) || readOnly('fDescr') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'FDESCR', column.data.validFeatureId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('FDESCR', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let column of 'valueCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.value?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"updateFeatureValue($event)\"\r\n field=\"FVALUE\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <featurevalue [(modelService)]=\"modelService\"\r\n [(displayMode)]=\"displayMode\"\r\n [templateView]=\"templateView\"\r\n [(featureSystem)]=\"featureSystem\"\r\n [(feature)]=\"column.data\"\r\n [hasAddonCLASSIFICATION]=\"hasAddonCLASSIFICATION\"\r\n [readOnly]=\"readOnlyForLinkedFields('FVALUE', column.data.validFeatureId) || readOnly('fValue') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"updateFeatureValue($event, column.data)\">\r\n </featurevalue>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let column of 'valueDetailsCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.fValueDetails?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"FVALUE_DETAILS\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.fValueDetails\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('FVALUE_DETAILS', column.data.validFeatureId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('FVALUE_DETAILS', column.data.validFeatureId) || readOnly('fValueDetails') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'FVALUE_DETAILS', column.data.validFeatureId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('FVALUE_DETAILS', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let column of 'unitCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.funit?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"updateFeatureUnit($event)\"\r\n field=\"FUNIT\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\" \r\n (excelElementDropped)=\"excelFeatureUnitDroppedError()\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.funit\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('FUNIT', column.data.validFeatureId)\"\r\n [readOnly]=\"hasFeatureFieldLinked(column.data.validFeatureId) || readOnly('fUnit') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"updateFeatureUnit($event, column.data)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('FUNIT', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let column of 'isPrintCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.printOrder != null\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"FEATURE_PRINT_ORDER\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"column.data.printOrder\"\r\n [min]=\"0\"\r\n [showSpinButtons]=\"!readOnlyForLinkedFields('FEATURE_PRINT_ORDER', column.data.validFeatureId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('FEATURE_PRINT_ORDER', column.data.validFeatureId) || readOnly('fPrintOrder') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'FEATURE_PRINT_ORDER', column.data.validFeatureId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('FEATURE_PRINT_ORDER', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let column of 'variantCellTemplate'\">\r\n <div class=\"w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showPlaceLabel]=\"column?.data?.isVariant != null\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressLabel]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantElementKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"ISVARIANT\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [element]=\"getRelevantElementKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: auto; height: auto; padding-top: 12px; padding-left: 10px;\">\r\n <dx-switch [(value)]=\"column.data.isVariant\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('ISVARIANT', column.data.validFeatureId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('ISVARIANT', column.data.validFeatureId) || readOnly('ISVARIANT') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'ISVARIANT', column.data.validFeatureId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ISVARIANT', getRelevantSystemKey(), getRelevantElementKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-switch>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n</dx-data-grid>\r\n\r\n<div *ngIf=\"exportMode\" style=\"margin-top: 7px;height: 113px;\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"np-field w-50\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"featureSystem?.featureSystemTable?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'FeatureSystemTable' | translate }}\"\r\n field=\"FEATURE_SYSTEM_TABLE\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [showDragHandle]=\"showDragHandle && featureSystemIsValid()\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"featureSystem.featureSystemTable\" [height]=\"130\"\r\n [readOnly]=\"readOnly('fSystemTable')\">\r\n </dx-text-area>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n <div class=\"np-field w-50 pl-3\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"featureSystem?.featureSystemList?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'FeatureSystemList' | translate }}\"\r\n field=\"FEATURE_SYSTEM_LIST\"\r\n [system]=\"getRelevantSystemKey()\"\r\n [showDragHandle]=\"showDragHandle && featureSystemIsValid()\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"featureSystem.featureSystemList\" [height]=\"130\" [readOnly]=\"readOnly('fSystemList')\">\r\n </dx-text-area>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component, ViewChild, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport DataSource from \"devextreme/data/data_source\";\r\nimport { FeatureSystem } from '../../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { Feature } from '../../Model/Catalog/FeatureModels/Feature';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { LoginService } from '../../Services/login.service';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { ValidFeatureService } from \"../../Services/validFeature.service\";\r\nimport { ValidFeature } from \"../../Model/ValidFeature\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { ProductService } from \"../../Services/CatalogManagement/product.service\";\r\n\r\n\r\n@Component({\r\n selector: \"editfeaturevaluelist\",\r\n templateUrl: \"editfeaturevaluelist.component.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\nexport class EditFeatureValueList implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n @Input() displayMode: \"edit\" | \"import\" | \"export\";\r\n @Input() featureSystem: FeatureSystem = null;\r\n @Input() hasAddonCLASSIFICATION = false;\r\n @Input() modelService: ModelService;\r\n @Input() model: Product = null;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n @Input() templateView: boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() elementSelected = new EventEmitter<string>();\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n @Input() showPlaceHolders = true;\r\n @Input() showLinkButtons: Boolean = false;\r\n\r\n updateLock: boolean = false;\r\n updateFrontendLinkedFields: boolean = false;\r\n private validFeatures: ValidFeature[];\r\n private featuresDataSource: DataSource;\r\n\r\n constructor(public templateService: TemplateService, public translate: TranslateService, public validationService: ValidationService,\r\n public loginService: LoginService, public userManagement: UserManagementService,\r\n public catalogService: CatalogService, public validFeatureService: ValidFeatureService, public productService: ProductService) {\r\n this.addCustomFeature = this.addCustomFeature.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.requestFeatureValues();\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n async requestFeatureValues(reload = true) {\r\n if (reload)\r\n this.validFeatures = await lastValueFrom(this.validFeatureService.getFeatures(this.featureSystem.validFeatureSystemId, this.loginService.currentCustomer.id));\r\n\r\n this.featuresDataSource = new DataSource({\r\n store: this.validFeatures,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n }\r\n\r\n async setFeatureValidId(feature: Feature) {\r\n if (!this.validFeatures)\r\n return;\r\n if (!this.featureIsValid(feature)) {\r\n feature.validFeatureId = undefined;\r\n return;\r\n }\r\n\r\n const featureValue = this.validFeatures.find(x => x.name === feature.name && x.unit == feature.funit);\r\n if (featureValue) {\r\n feature.validFeatureId = featureValue.id;\r\n }\r\n else {\r\n let result = await this.validFeatureService.getValidIdForFeature(feature.name, feature.funit, this.featureSystem.validFeatureSystemId, this.loginService.currentCustomer.id);\r\n feature.validFeatureId = result;\r\n }\r\n if (!this.templateView) {\r\n feature.updateLinkedFields = true;\r\n this.updateFrontendLinkedFields = true;\r\n }\r\n }\r\n\r\n async updateFeatureValue(event, feature: Feature) {\r\n if (event.toggleLinkedFields) {\r\n this.onValueChanged.emit();\r\n return;\r\n }\r\n\r\n if (ViewService.isSingleValue(this.featureSystem.referenceFeatureSystemName)) {\r\n feature.name = feature.value;\r\n feature.funit = \"\";\r\n let previousValue = event.value;\r\n await this.updateFeatureName(event, feature);\r\n event.value = previousValue;\r\n }\r\n this.update(event, feature, \"FVALUE\", feature.validFeatureId);\r\n }\r\n\r\n async updateFeatureName(event, feature: Feature) {\r\n if (event.toggleLinkedFields) {\r\n this.onValueChanged.emit();\r\n return;\r\n }\r\n\r\n if (!event.event)\r\n return;\r\n\r\n if (event && event.removeFromTemplateItem) {\r\n feature = this.featureSystem.features.find(x => x.validFeatureId == event.dElement);\r\n } else if (!feature) {\r\n this.onValueChanged.emit();\r\n return;\r\n }\r\n if (event) {\r\n let validFeature = this.validFeatures.find(x => x.id == event.value);\r\n if (validFeature) {\r\n feature.funit = validFeature.unit;\r\n feature.name = validFeature.name;\r\n }\r\n }\r\n\r\n if (feature.validFeatureId == \"temp id\") {\r\n feature.validFeatureId = feature.oldValidFeatureId;\r\n feature.oldValidFeatureId = null;\r\n }\r\n\r\n\r\n await this.setFeatureValidId(feature);\r\n if (event) {\r\n event.value = feature.validFeatureId;\r\n if (event.removeFromTemplateItem) {\r\n //event.previousValue = \r\n }\r\n }\r\n\r\n\r\n this.update(event, feature, \"FNAME\", feature.validFeatureId);\r\n }\r\n\r\n async updateFeatureUnit(event, feature: Feature) {\r\n if (event && event.removeFromTemplateItem) {\r\n feature = this.featureSystem.features.find(x => x.validFeatureId == event.dElement);\r\n } else if (!feature) {\r\n this.onValueChanged.emit();\r\n return;\r\n }\r\n event.previousValue = feature.validFeatureId;\r\n\r\n await this.setFeatureValidId(feature);\r\n if (event)\r\n event.value = feature.validFeatureId;\r\n\r\n this.update(event, feature, \"FUNIT\", feature.validFeatureId);\r\n }\r\n\r\n\r\n addCustomFeature(e, feature: Feature) {\r\n if (!e.text) {\r\n e.customItem = null;\r\n return;\r\n }\r\n e.customItem = new ValidFeature(\"temp id\", this.featureSystem.validFeatureSystemId, e.text, feature.funit ?? \"\");\r\n feature.name = e.text;\r\n feature.oldValidFeatureId = feature.validFeatureId;\r\n }\r\n\r\n featureDisplayExpr(item: ValidFeature): string {\r\n if (item === null || item === undefined)\r\n return \"\";\r\n\r\n return item.name;\r\n }\r\n\r\n onFeaturesToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addFeatureButtonTemplate',\r\n });\r\n }\r\n\r\n get addFeatureButtonEnabled(): boolean {\r\n return (!ViewService.isSingleLine(this.featureSystem.referenceFeatureSystemName) || this.featureSystem.features.length === 0)\r\n && !this.modelService.classificationService.isClassificationSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n async addFeatureButtonClicked() {\r\n const feature = new Feature();\r\n feature.forder = (this.featureSystem?.features?.reduce((maxOrder, f) => Math.max(maxOrder, f.forder ?? 0), 0) ?? 0) + 1;\r\n this.featureSystem.features.push(feature);\r\n\r\n this.update();\r\n this.updateLock = false;\r\n }\r\n\r\n async onContentReady() {\r\n this.updateLock = false;\r\n if (this.featureSystem.features.some(x => !this.validFeatures?.some(y => y.id == x.validFeatureId))) {\r\n this.requestFeatureValues(true);\r\n }\r\n if (this.updateFrontendLinkedFields) {\r\n this.updateFrontendLinkedFields = false;\r\n this.model.linkedFields = await lastValueFrom(this.productService.getLinkedFields(this.model.id, this.loginService.currentCustomer.id));\r\n }\r\n }\r\n\r\n update(event = null, data?, field?: string, element: string = \"-1\") {\r\n this.dataGrid.instance.refresh(true);\r\n\r\n // für den template editor erforderlich:\r\n if (event && data) {\r\n event.dField = field;\r\n if (this.featureSystem.validFeatureSystemId || !this.templateView) {\r\n event.dSystem = this.featureSystem.validFeatureSystemId;\r\n } else {\r\n event.dSystem = this.featureSystem.order.toString();\r\n }\r\n if (element != \"-1\" || !this.templateView) {\r\n event.dElement = element;\r\n } else {\r\n event.dElement = data.forder.toString();\r\n }\r\n event.createTemplateItem = !event.removeFromTemplateItem;\r\n }\r\n\r\n if (data == undefined || this.featureIsValid(data)) {\r\n this.onValueChanged.emit(event);\r\n }\r\n }\r\n\r\n delete(event) {\r\n let product = this.modelService.catalogService.product;\r\n let system;\r\n let element;\r\n if (this.featureSystem.validFeatureSystemId) {\r\n system = this.featureSystem.validFeatureSystemId;\r\n } else {\r\n system = this.featureSystem.order.toString();\r\n }\r\n if (event.data.validFeatureId) {\r\n element = event.data.validFeatureId;\r\n } else {\r\n element = event.data.forder.toString();\r\n }\r\n\r\n for (let featureField of this.templateService.allFeatureFields) {\r\n if (product != null && product.isFieldLinked(featureField, system, element)) {\r\n product.toggleLinkedField(featureField, system, element);\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n if (event.dFields == undefined) {\r\n event.dFields = this.templateService.allFeatureFields;\r\n event.dDetailFields = null;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n }\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n public onRowRemoving(e) {\r\n let product = this.modelService.catalogService.product;\r\n let element;\r\n if (e.data.validFeatureId) {\r\n element = e.data.validFeatureId;\r\n } else {\r\n element = e.data.forder.toString();\r\n }\r\n\r\n if (product != null && product.isChild && this.hasFeatureFieldLinked(element)) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"DeleteLinkedFieldNotAllowed\"), \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n let myDialog = custom({\r\n title: this.translate.instant(\"Wirklich löschen?\"),\r\n messageHtml: this.translate.instant(\"Wollen Sie das Feature wirlich löschen\"),\r\n buttons: [\r\n {\r\n text: this.translate.instant(\"Ja\"),\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: this.translate.instant(\"Nein\"),\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n get exportMode(): boolean {\r\n return this.displayMode === 'export';\r\n }\r\n\r\n get featuresEditable(): boolean {\r\n return true;\r\n }\r\n\r\n get featureNameEditable(): boolean {\r\n return this.featuresEditable\r\n && !ViewService.isMagicSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get featureDescriptionEditable(): boolean {\r\n return this.featuresEditable\r\n && !ViewService.isMagicSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get featuresDeletable(): boolean {\r\n return this.featuresEditable\r\n && !ViewService.isMagicSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get profiModeEnabled(): boolean {\r\n return this.modelService.loginService.currentUser.featureProfiMode;\r\n }\r\n\r\n get featureNameVisible(): boolean {\r\n return !ViewService.isSingleValue(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get featureDescriptionVisible(): boolean {\r\n return this.profiModeEnabled\r\n && !ViewService.isSingleValue(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get isVariantVisible(): boolean {\r\n return this.featureSystem.referenceFeatureSystemName == \"udf_NMTECHNICALDETAILS-1.0\" || this.featureSystem.referenceFeatureSystemName == \"Safework\";\r\n }\r\n\r\n\r\n get featureValueVisible(): boolean {\r\n return true;\r\n }\r\n\r\n get featureValueDetailVisible(): boolean {\r\n return this.profiModeEnabled\r\n && !ViewService.isSingleValue(this.featureSystem.referenceFeatureSystemName)\r\n && !ViewService.isMagicSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get featureUnitVisible(): boolean {\r\n return !ViewService.isSingleValue(this.featureSystem.referenceFeatureSystemName)\r\n && !ViewService.isMagicSystem(this.featureSystem.referenceFeatureSystemName);\r\n }\r\n\r\n get isPrintVisible(): boolean {\r\n return this.loginService.hasAddonPRINT;\r\n }\r\n\r\n get templateSelectionEnabled(): boolean {\r\n return this.displayMode === 'import' || this.displayMode === 'export';\r\n }\r\n\r\n templateSelect(identifier: string, order?: number) {\r\n if (order) {\r\n this.elementSelected.emit(`${identifier}_${this.featureSystem.order}_${order}`);\r\n } else {\r\n this.elementSelected.emit(`${identifier}_${this.featureSystem.order}`);\r\n }\r\n }\r\n\r\n excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n excelFeatureNameDroppedError() {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureNameDroppedError\"), \"error\"), 3000);\r\n }\r\n\r\n excelFeatureUnitDroppedError() {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureUnitDroppedError\"), \"error\"), 3000);\r\n }\r\n\r\n public hasFeatureFieldLinked(element?: string): boolean {\r\n let product = this.modelService.catalogService.product;\r\n let system = this.featureSystem.validFeatureSystemId;\r\n\r\n for (let featureSystemField of this.templateService.allFeatureFields) {\r\n if (product != null && product.isFieldLinked(featureSystemField, system, element)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public readOnlyForLinkedFields(field: string, element?: string): boolean {\r\n let product = this.modelService.catalogService.product;\r\n let system = this.featureSystem.validFeatureSystemId;\r\n\r\n if (product != null && field != null) {\r\n var isLinked = product.isFieldLinked(field, system, element);\r\n if (isLinked && product.isChild != null && product.isChild) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null) {\r\n return product.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, element?: string): boolean {\r\n let product = this.modelService.catalogService.product;\r\n let system = this.featureSystem.validFeatureSystemId;\r\n if (product != null) {\r\n return product.isFieldLinked(field, system, element);\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, element?: string, event = null) {\r\n let product = this.modelService.catalogService.product;\r\n let system = this.featureSystem.validFeatureSystemId;\r\n\r\n var relevantElements = [element];\r\n if (field == this.templateService.fieldNames.fName || field == this.templateService.fieldNames.fUnit) {\r\n relevantElements = [this.templateService.fieldNames.fName, this.templateService.fieldNames.fUnit];\r\n }\r\n\r\n var changed = false;\r\n for (let relevantElement of relevantElements) {\r\n changed = product.toggleLinkedField(field, system, relevantElement) || changed;\r\n };\r\n\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, element);\r\n event.target.className = product.getClassForLinkedField(isNowLinked);\r\n\r\n if (product.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, element?: string): string {\r\n let product = this.modelService.catalogService.product;\r\n var isNowLinked = this.isFieldLinked(field, element);\r\n return product.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n\r\n readOnlyFNameTemplateEditor(f: Feature) {\r\n return this.templateView && (!this.featureSystemIsValid());\r\n }\r\n\r\n readOnlyTemplateEditor(f: Feature) {\r\n return this.templateView && (!this.featureSystemIsValid() || !this.featureIsValid(f));\r\n }\r\n\r\n featureSystemIsValid() {\r\n return this.featureSystem.referenceFeatureSystemName != undefined;\r\n }\r\n\r\n featureIsValid(feature: Feature) {\r\n if (!this.featureNameVisible)\r\n return this.featureSystemIsValid();\r\n\r\n if (!feature)\r\n return false;\r\n\r\n return this.featureSystemIsValid() &&\r\n feature.name != undefined;\r\n }\r\n\r\n getRelevantElementKey(feature: Feature) {\r\n if (feature.validFeatureId) {\r\n return feature.validFeatureId;\r\n }\r\n return feature.forder;\r\n }\r\n\r\n getRelevantSystemKey() {\r\n if (this.featureSystem.validFeatureSystemId) {\r\n return this.featureSystem.validFeatureSystemId;\r\n }\r\n return this.featureSystem.order;\r\n }\r\n}\r\n","\r\n<div class=\"dx-fieldset\">\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Klassifizierungssystem' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [items]=\"modelService.catalogService.catalog.classificationSystems\"\r\n [(value)]=\"classificationSystem\"\r\n (onValueChanged)=\"classificationSystemChanged($event)\"\r\n displayExpr=\"name\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"classificationSystem\" >\r\n <div class=\"dx-field-label\">{{ 'Klasse' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-tree-list [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"{ filtering: true }\"\r\n height=\"450\"\r\n keyExpr=\"id\"\r\n rootValue=\"0\"\r\n parentIdExpr=\"parentId\"\r\n [showRowLines]=\"false\"\r\n [showBorders]=\"false\"\r\n [columnAutoWidth]=\"true\"\r\n (onSelectionChanged)=\"onClassTreeSelectionChanged($event)\">\r\n <dxo-search-panel [visible]=\"true\" width=\"250\"></dxo-search-panel>\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n <dxi-column dataField=\"number\" sortOrder=\"asc\" [width]=\"150\" caption=\"Nummer\"></dxi-column>\r\n <dxi-column dataField=\"name\" [width]=\"300\" caption=\"Bezeichnung\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Klassifizierung hinzufügen' | translate }}\" (onClick)=\"addClassification()\" [disabled]=\"addClassificationDisabled\" class=\"buttonMargin\"></dx-button>\r\n </div>\r\n\r\n</div>\r\n\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ClassificationSystem } from \"../Model/classification/ClassificationSystem\";\r\nimport { ClassificationClass } from '../Model/classification/ClassificationClass';\r\nimport { ClassificationClassTree } from '../Model/classification/ClassificationClassTree';\r\n\r\n@Component({\r\n selector: \"productClassification\",\r\n templateUrl: \"productClassification.component.html\"\r\n})\r\nexport class ProductClassificationComponent implements OnInit {\r\n\r\n @Input() addClassificationDisabled: boolean = true;\r\n @Output() windowClose = new EventEmitter<any>();\r\n @Output() addClassificationFeatures = new EventEmitter<any>();\r\n classificationSystem: ClassificationSystem;\r\n classificationClass: ClassificationClass;\r\n classTree: ClassificationClassTree[];\r\n public dataSource: any;\r\n\r\n constructor(public modelService: ModelService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.classTree = new Array<ClassificationClassTree>();\r\n if (this.classificationSystem) {\r\n this.setTreeDataSource(this.classificationSystem.id,this.modelService);\r\n }\r\n\r\n \r\n }\r\n\r\n setTreeDataSource(classificationSystemId: string, modelService : ModelService) {\r\n this.dataSource = {\r\n load: async function (loadOptions) {\r\n let parentId = \"\";\r\n if (loadOptions.parentIds != null) {\r\n if (loadOptions.parentIds.length > 5) {\r\n parentId = loadOptions.parentIds[0] + \",\" + classificationSystemId;\r\n } else {\r\n parentId = loadOptions.parentIds.join(\",\");\r\n }\r\n }\r\n\r\n if (classificationSystemId) {\r\n this.classTree = await modelService.classificationService.getTreeFiltered(classificationSystemId, parentId, loadOptions.filter);\r\n } else {\r\n this.classTree = new Array<ClassificationClassTree>();\r\n }\r\n\r\n return this.classTree;\r\n }\r\n }; \r\n }\r\n\r\n\r\n classificationSystemChanged(e) {\r\n this.modelService.classificationService.selectedClassId = \"\";\r\n this.addClassificationDisabled = true;\r\n\r\n if (this.classificationSystem) {\r\n this.setTreeDataSource(this.classificationSystem.id, this.modelService);\r\n }\r\n }\r\n\r\n onClassTreeSelectionChanged(e) {\r\n \r\n const selectedRows = e.selectedRowsData;\r\n\r\n if (selectedRows && selectedRows.length) {\r\n this.modelService.classificationService.selectedClassId = selectedRows[0].id;\r\n this.addClassificationDisabled = selectedRows[0].notAssignable;\r\n } else {\r\n this.modelService.classificationService.selectedClassId = \"\";\r\n this.addClassificationDisabled = true;\r\n }\r\n }\r\n\r\n\r\n addClassification() {\r\n this.modelService.classificationService.selectedSystem = this.classificationSystem;\r\n this.addClassificationFeatures.emit();\r\n this.windowClose.emit();\r\n }\r\n\r\n}\r\n\r\n\r\n","<dx-data-grid (onToolbarPreparing)=\"onSystemToolbarPreparing($event)\"\r\n [dataSource]=\"featureSystemsDataSource\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [customizeColumns]=\"customizeColumns\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [masterDetail]=\"{ enabled: true, template: 'featureValues' }\"\r\n [repaintChangesOnly]=\"true\"\r\n (onContentReady)=\"onContentReady()\">\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"!readOnly('editFeatureUpdate')\"\r\n [allowDeleting]=\"featureSystemEditable && !readOnly('editFeatureUpdate')\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureSystemsStateNewUI2\"></dxo-state-storing>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'addFeatureSystemButtonTemplate'\">\r\n <dx-button [visible]=\"canView('editFeatureNew')\"\r\n stylingMode=\"text\"\r\n type=\"default\"\r\n text=\"{{ 'Neue Merkmalsgruppe' | translate }}\"\r\n [disabled]=\"updateLock\"\r\n (onClick)=\"addFeatureSystemButtonClicked()\">\r\n </dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'addClassificationButtonTemplate'\">\r\n <dx-button [visible]=\"canView('editFeatureClassification')\"\r\n stylingMode=\"text\"\r\n type=\"default\"\r\n text=\"{{ 'Klassifizieren' | translate }}\"\r\n (onClick)=\"addClassificationButtonClicked()\">\r\n </dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'profiModeSwitchTemplate'\" class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">\r\n {{ 'Einfach' | translate }}\r\n </div>\r\n <dx-switch [(value)]=\"modelService.loginService.currentUser.featureProfiMode\"\r\n switchedOffText=\"{{ 'Einfach' | translate }}\"\r\n switchedOnText=\"{{ 'Fortgeschritten' | translate }}\"\r\n hint=\"{{ 'Selten genutzte Felder aktivieren' | translate }}\">\r\n </dx-switch>\r\n <div class=\"dx-field-label switch-right\">\r\n {{ 'Fortgeschritten' | translate }}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dxi-column caption=\"{{ 'Order' | translate }}\" width=\"130px\" dataField=\"order\" sortOrder=\"asc\"\r\n cellTemplate=\"orderCellTemplate\" editCellTemplate=\"orderCellTemplate\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Featuresystem Name' | translate }}\" dataField=\"referenceFeatureSystemName\"\r\n cellTemplate=\"featureSystemNameTemplate\" editCellTemplate=\"featureSystemNameTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"profiModeEnabled\" caption=\"{{ 'Featuresystem GroupID' | translate }}\"\r\n dataField=\"referenceFeatureGroupId\" cellTemplate=\"featureSystemGroupIdTemplate\"\r\n editCellTemplate=\"featureSystemGroupIdTemplate\"></dxi-column>\r\n <dxi-column [visible]=\"profiModeEnabled\" caption=\"{{ 'Featuresystem Group Name' | translate }}\"\r\n dataField=\"referenceFeatureGroupName\" cellTemplate=\"featureSystemGroupNameTemplate\"\r\n editCellTemplate=\"featureSystemGroupNameTemplate\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let column of 'orderCellTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.order != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantSystemKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"FS_ORDER\"\r\n [system]=\"getRelevantSystemKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureSystemIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"column.data.order\"\r\n [min]=\"1\"\r\n [showClearButton]=\"false\"\r\n [showSpinButtons]=\"!readOnlyForLinkedFields('FS_ORDER', column.data.validFeatureSystemId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('FS_ORDER', column.data.validFeatureSystemId) || readOnly('editfeatureOrder') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'FS_ORDER', column.data.validFeatureSystemId)\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let column of 'featureSystemNameTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.referenceFeatureSystemName?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantSystemKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"REFERENCE_FEATURE_SYSTEM_NAME\"\r\n [system]=\"getRelevantSystemKey(column.data)\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelFeatureSystemNameDroppedError()\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [(value)]=\"column.data.referenceFeatureSystemName\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('REFERENCE_FEATURE_SYSTEM_NAME', column.data.validFeatureSystemId) || readOnly('editfeatureSystemName')\"\r\n [readOnly]=\"hasFeatureSystemFieldLinked(column.data.validFeatureSystemId) || readOnly('editfeatureSystemName')\"\r\n (onValueChanged)=\"updateFeatureSystemNameAndUpdate($event, column.data)\"\r\n (validationMessageMode)=\"always\"\r\n [minSearchLength]=\"0\"\r\n [searchEnabled]=\"true\"\r\n acceptCustomValue=\"true\"\r\n placeholder=\"\"\r\n [dataSource]=\"featureSystemNameSource\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('REFERENCE_FEATURE_SYSTEM_NAME', getRelevantSystemKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'featureSystemGroupIdTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.referenceFeatureGroupId?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantSystemKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"REFERENCE_FEATURE_GROUP_ID\"\r\n [system]=\"getRelevantSystemKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureSystemIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.referenceFeatureGroupId\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('REFERENCE_FEATURE_GROUP_ID', column.data.validFeatureSystemId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('REFERENCE_FEATURE_GROUP_ID', column.data.validFeatureSystemId) || readOnly('editfeatureGroupId') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'REFERENCE_FEATURE_GROUP_ID', column.data.validFeatureSystemId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('REFERENCE_FEATURE_GROUP_ID', getRelevantSystemKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let column of 'featureSystemGroupNameTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"column?.data?.referenceFeatureGroupName?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelectionEnabled ? templateSelect($event, getRelevantSystemKey(column.data)) : null\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"REFERENCE_FEATURE_GROUP_NAME\"\r\n [system]=\"getRelevantSystemKey(column.data)\"\r\n [showDragHandle]=\"showDragHandle && featureSystemIsValid(column.data)\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"column.data.referenceFeatureGroupName\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('REFERENCE_FEATURE_GROUP_NAME', column.data.validFeatureSystemId)\"\r\n [readOnly]=\"readOnlyForLinkedFields('REFERENCE_FEATURE_GROUP_NAME', column.data.validFeatureSystemId) || readOnly('editfeatureGroupName') || readOnlyTemplateEditor(column.data)\"\r\n (onValueChanged)=\"update($event, column.data, 'REFERENCE_FEATURE_GROUP_NAME', column.data.validFeatureSystemId)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('REFERENCE_FEATURE_GROUP_NAME', getRelevantSystemKey(column.data))\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let featureSystem of 'featureValues'\">\r\n <editfeaturevaluelist [(modelService)]=\"modelService\"\r\n [(featureSystem)]=\"featureSystem.data\"\r\n [(model)]=\"model\"\r\n [templateView]=\"templateView\"\r\n [(displayMode)]=\"displayMode\"\r\n [showPlaceHolders]=\"showPlaceHolders\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [hasAddonCLASSIFICATION]=\"hasAddonCLASSIFICATION\"\r\n (onValueChanged)=\"update($event)\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateChildSelected($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"delete($event)\">\r\n </editfeaturevaluelist>\r\n </div>\r\n</dx-data-grid>\r\n<div class=\"color4Text\">\r\n <div *ngIf=\"showValidationSummary\">\r\n <table>\r\n <tr *ngFor=\"let msg of validationMessages\">\r\n <td>\r\n {{ translateMessage(msg) }}\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n<dx-popup [width]=\"850\"\r\n [height]=\"750\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Klassifizieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"classificationPopupVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <productClassification (windowClose)=\"closeClassificationPopup()\"\r\n (addEcommerceFeatures)=\"emitAddEcommerceFeatures($event)\"\r\n (addClassificationFeatures)=\"emitAddClassificationFeatures($event)\">\r\n </productClassification>\r\n </div>\r\n</dx-popup>\r\n","import { Input, Output, EventEmitter, Component, ViewChild, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { FeatureSystem } from '../../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { Functions } from \"../../Services/functions\";\r\nimport { Message } from '../../Model/System/Message';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { ValidFeatureService } from \"../../Services/validFeature.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { ProductService } from \"../../Services/CatalogManagement/product.service\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\n\r\n@Component({\r\n selector: \"editfeaturesystemlist\",\r\n templateUrl: \"editfeaturesystemlist.component.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\nexport class EditFeatureSystemList implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild(DxDataGridComponent, { static: true }) featureSystemGrid: DxDataGridComponent;\r\n @Input() templateView: boolean = false;\r\n\r\n _featureSystems: FeatureSystem[];\r\n featureSystemsDataSource: DataSource;\r\n get featureSystems(): FeatureSystem[] {\r\n return this._featureSystems;\r\n }\r\n\r\n @Input()\r\n set featureSystems(value: FeatureSystem[]) {\r\n this._featureSystems = value;\r\n value.forEach(system => {\r\n system.guid = Functions.newGuid();\r\n system.features.forEach(feature => {\r\n feature.guid = Functions.newGuid();\r\n });\r\n });\r\n\r\n this.featureSystemsDataSource = new DataSource({\r\n store: this._featureSystems,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n @Input() hintsAktiv = false;\r\n @Input() showToolTips = false;\r\n @Input() showProToolTips = false;\r\n @Input() showPlaceHolders = true;\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() hasAddonCLASSIFICATION = false;\r\n @Input() hasAddonECOMMERCE = false;\r\n\r\n @Input() modelService: ModelService;\r\n\r\n @Input() displayMode: \"edit\" | \"import\" | \"export\";\r\n\r\n @Input() model: Product = null;\r\n @Input() selectedElements: [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() addEcommerceFeatures = new EventEmitter<any>();\r\n @Output() addClassificationFeatures = new EventEmitter<any>();\r\n\r\n\r\n classificationPopupVisible = false;\r\n updateLock: Boolean = false;\r\n updateFrontendLinkedFields: boolean = false;\r\n\r\n constructor(public templateService: TemplateService, public translate: TranslateService, public validationService: ValidationService, public userManagement: UserManagementService,\r\n public catalogService: CatalogService, public validFeatureService: ValidFeatureService, public loginService: LoginService, private productService: ProductService) {\r\n this.onSystemToolbarPreparing = this.onSystemToolbarPreparing.bind(this);\r\n }\r\n\r\n async ngOnInit() {\r\n await this.refreshFeatureSystemSource();\r\n }\r\n\r\n async refreshFeatureSystemSource() {\r\n let result = await lastValueFrom(this.validFeatureService.getSystems(this.loginService.currentCustomer.id));\r\n result.forEach(system => {\r\n if (!this.featureSystemNameSource.some(x => x === system.name))\r\n this.featureSystemNameSource.push(system.name);\r\n });\r\n this.featureSystemNameSource.sort((a, b) => (a.toLowerCase() < b.toLowerCase() ? -1 : 1));\r\n }\r\n\r\n async addFeatureSystemButtonClicked() {\r\n if (this.displayMode == \"edit\") {\r\n this.updateLock = true;\r\n }\r\n\r\n const featureSystem = new FeatureSystem();\r\n featureSystem.validFeatureSystemId = await this.validFeatureService.getValidIdForSystemName(\"\", this.loginService.currentCustomer.id);\r\n featureSystem.order = (this.featureSystems.reduce((maxOrder, fs) => Math.max(maxOrder, fs.order ?? 0), 0) ?? 0) + 1;\r\n\r\n this.featureSystems.push(featureSystem);\r\n this.featureSystemsDataSource = new DataSource({\r\n store: this._featureSystems,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n if (this.displayMode == \"edit\")\r\n this.update();\r\n }\r\n\r\n async setFeatureValidId(featureSystem: FeatureSystem) {\r\n var result = await lastValueFrom(this.validFeatureService.setValidIds(this.loginService.currentCustomer.id, featureSystem));\r\n let fs = Object.assign(new FeatureSystem(), result);\r\n featureSystem.validFeatureSystemId = fs.validFeatureSystemId;\r\n featureSystem.features = fs.features;\r\n featureSystem.updateLinkedFields = true;\r\n this.updateFrontendLinkedFields = true;\r\n }\r\n\r\n async updateFeatureSystemNameAndUpdate(event, featureSystem: FeatureSystem) {\r\n event.previousValue = featureSystem.validFeatureSystemId;\r\n await this.setFeatureValidId(featureSystem);\r\n event.value = featureSystem.validFeatureSystemId;\r\n this.update(event, featureSystem, \"REFERENCE_FEATURE_SYSTEM_NAME\", featureSystem.validFeatureSystemId);\r\n }\r\n\r\n\r\n update(event = null, data?, field?: string, system: string = \"-1\") {\r\n this.dataGrid.instance.refresh(true);\r\n\r\n // für den template editor erforderlich:\r\n if (event && data && !event.createTemplateItem) {\r\n event.dField = field;\r\n if (system != \"-1\" || !this.templateView) {\r\n event.dSystem = system;\r\n } else {\r\n event.dSystem = data.order.toString();\r\n }\r\n event.dElement = \"-1\";\r\n event.createTemplateItem = true;\r\n }\r\n\r\n if (data == undefined || this.featureSystemIsValid(data)) {\r\n this.onValueChanged.emit(event);\r\n }\r\n }\r\n\r\n delete(event) {\r\n if (event.dFields) {\r\n this.elementDeleted.emit(event);\r\n return;\r\n }\r\n let product = this.modelService.catalogService.product;\r\n let system;\r\n if (event.data.validFeatureSystemId) {\r\n system = event.data.validFeatureSystemId;\r\n } else {\r\n system = event.data.order.toString();\r\n }\r\n\r\n for (let featureSystemField of this.templateService.allFeatureSystemFields) {\r\n if (product != null && product.isFieldLinked(featureSystemField, system, \"-1\")) {\r\n product.toggleLinkedField(featureSystemField, system, \"-1\");\r\n }\r\n }\r\n this.onValueChanged.emit(event);\r\n\r\n event.dFields = this.templateService.allFeatureSystemFields;\r\n event.dDetailFields = this.templateService.allFeatureFields;\r\n event.dSystem = system;\r\n event.dElement = \"-1\";\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n public onRowRemoving(e) {\r\n let product = this.modelService.catalogService.product;\r\n let system;\r\n if (e.data.validFeatureSystemId) {\r\n system = e.data.validFeatureSystemId;\r\n } else {\r\n system = e.data.order.toString();\r\n }\r\n\r\n if (product != null && product.isChild && this.hasFeatureSystemFieldLinked(system)) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"DeleteLinkedFieldNotAllowed\"), \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n let myDialog = custom({\r\n title: this.translate.instant(\"Wirklich löschen?\"),\r\n messageHtml: this.translate.instant(\"Wollen Sie das FeatureSystem wirlich löschen\"),\r\n buttons: [\r\n {\r\n text: this.translate.instant(\"Ja\"),\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: this.translate.instant(\"Nein\"),\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n onSystemToolbarPreparing(e) {\r\n if (this.addClassificationButtonVisible()) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addClassificationButtonTemplate'\r\n });\r\n }\r\n\r\n if (this.addFeatureSystemButtonVisible()) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addFeatureSystemButtonTemplate'\r\n });\r\n }\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'profiModeSwitchTemplate'\r\n });\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n async onContentReady() {\r\n this.updateLock = false;\r\n if (this.updateFrontendLinkedFields) {\r\n this.updateFrontendLinkedFields = false;\r\n this.model.linkedFields = await lastValueFrom(this.productService.getLinkedFields(this.model.id, this.loginService.currentCustomer.id));\r\n }\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n addClassificationButtonVisible(): boolean {\r\n return this.hasAddonCLASSIFICATION;\r\n }\r\n\r\n addFeatureSystemButtonVisible(): boolean {\r\n return true;\r\n }\r\n\r\n addClassificationButtonClicked() {\r\n this.classificationPopupVisible = true;\r\n }\r\n\r\n closeClassificationPopup() {\r\n this.classificationPopupVisible = false;\r\n }\r\n\r\n emitAddClassificationFeatures() {\r\n this.addClassificationFeatures.emit();\r\n }\r\n\r\n emitAddEcommerceFeatures() {\r\n this.addEcommerceFeatures.emit();\r\n }\r\n\r\n get featureSystemNameSource(): string[] {\r\n return ViewService.dropDownFeatureSystemNames;\r\n }\r\n\r\n get featureSystemEditable(): boolean {\r\n return true;\r\n }\r\n\r\n get profiModeEnabled(): boolean {\r\n return this.modelService.loginService.currentUser.featureProfiMode;\r\n }\r\n\r\n get showValidationSummary(): boolean {\r\n return this.hintsAktiv && !this.validationService.validationResult.productFeaturesValid;\r\n }\r\n\r\n get validationMessages(): string[] {\r\n return this.validationService.validationResult.featureMessages;\r\n }\r\n\r\n get templateSelectionEnabled(): boolean {\r\n return this.displayMode === \"export\" || this.displayMode === \"import\";\r\n }\r\n\r\n templateSelect(identifier: string, orderString: string) {\r\n this.elementSelected.emit(`${identifier}_${orderString}`);\r\n }\r\n\r\n templateChildSelected(key: string) {\r\n this.elementSelected.emit(key);\r\n }\r\n\r\n excelElementDrop(e) { \r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n excelFeatureSystemNameDroppedError() {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureSystemNameDroppedError\"), \"error\"), 3000);\r\n }\r\n\r\n public hasFeatureSystemFieldLinked(system: string = \"-1\"): boolean {\r\n let product = this.modelService.catalogService.product;\r\n for (let featureSystemField of this.templateService.allFeatureSystemFields) {\r\n if (product != null && product.isFieldLinked(featureSystemField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\"): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null && field != null) {\r\n var isLinked = product.isFieldLinked(field, system, \"-1\");\r\n if (isLinked && product.isChild != null && product.isChild) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null) {\r\n return product.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\"): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null) {\r\n return product.isFieldLinked(field, system, \"-1\");\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(event = null, field: string, system: string = \"-1\") {\r\n let product = this.modelService.catalogService.product;\r\n var changed = product.toggleLinkedField(field, system, \"-1\");\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n var isNowLinked = this.isFieldLinked(field, system);\r\n event.target.className = product.getClassForLinkedField(isNowLinked);\r\n\r\n if (product.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\"): string {\r\n let product = this.modelService.catalogService.product;\r\n var isNowLinked = this.isFieldLinked(field, system);\r\n return product.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n\r\n readOnlyTemplateEditor(fs) {\r\n return this.templateView && !this.featureSystemIsValid(fs);\r\n }\r\n\r\n\r\n featureSystemIsValid(featureSystem: FeatureSystem) {\r\n return featureSystem.referenceFeatureSystemName != undefined;\r\n }\r\n\r\n getRelevantSystemKey(featureSystem: FeatureSystem) {\r\n if (featureSystem.validFeatureSystemId) {\r\n return featureSystem.validFeatureSystemId;\r\n }\r\n return featureSystem.order;\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <dx-validation-group *ngIf=\"model\" id=\"productValidationGroup\">\r\n <div class=\"dx-fieldset-header\">{{ 'Bestelldetails' | translate }}</div>\r\n <div class=\"dx-fieldset d-flex flex-row\">\r\n\r\n <div class=\"flex-fill pr-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.contentUnit?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Inhaltseinheit' | translate }}\"\r\n field=\"CONTENT_UNIT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n maxItemCount=90\r\n [dataSource]=\"units\"\r\n [readOnly]=\"readOnlyForLinkedFields('CONTENT_UNIT') || readOnly('orderConentUnit')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CONTENT_UNIT')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('CONTENT_UNIT')\"\r\n [(value)]=\"model.orderDetail.contentUnit\"\r\n (onValueChanged)=\"update($event, 'CONTENT_UNIT')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'CONTENT_UNIT')\"\r\n class=\"validationBlue\"\r\n itemTemplate=\"contentUnitTemplate\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('CONTENT_UNIT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n <div *dxTemplate=\"let item of 'contentUnitTemplate'\">\r\n <div *ngIf=\"item !== 'Button' && item !== ''\">\r\n <span>{{ item | translate }} ({{ item }})</span>\r\n </div>\r\n <div *ngIf=\"item === ''\">\r\n <button (click)=\"toggleExtendedList()\">Mehr anzeigen</button>\r\n </div>\r\n </div>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.noCuPerOu?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Verpackungsmenge' | translate }}\"\r\n field=\"NO_CU_PER_OU\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"one\"\r\n [readOnly]=\"readOnlyForLinkedFields('NO_CU_PER_OU') || readOnly('orderPackageAmount')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('NO_CU_PER_OU')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('NO_CU_PER_OU')\"\r\n [(value)]=\"model.orderDetail.noCuPerOu\"\r\n (onValueChanged)=\"update($event, 'NO_CU_PER_OU')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'NO_CU_PER_OU')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('NO_CU_PER_OU')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.orderUnit?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bestelleinheit' | translate }}\"\r\n field=\"ORDER_UNIT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"units\"\r\n [readOnly]=\"readOnlyForLinkedFields('ORDER_UNIT') || readOnly('orderUnit')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('ORDER_UNIT')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('ORDER_UNIT')\"\r\n [(value)]=\"model.orderDetail.orderUnit\"\r\n (onValueChanged)=\"update($event, 'ORDER_UNIT')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'ORDER_UNIT')\"\r\n itemTemplate=\"orderUnitTemplate\">\r\n\r\n <div *dxTemplate=\"let item of 'orderUnitTemplate'\">\r\n <span>{{ item | translate}} ({{ item }})</span>\r\n </div>\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ORDER_UNIT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.priceQuantity?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Preismenge' | translate }}\"\r\n field=\"PRICE_QUANTITY\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"one\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRICE_QUANTITY') || readOnly('orderPriceAmount')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PRICE_QUANTITY')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('PRICE_QUANTITY')\"\r\n [(value)]=\"model.orderDetail.priceQuantity\"\r\n (onValueChanged)=\"update($event, 'PRICE_QUANTITY')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'PRICE_QUANTITY')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRICE_QUANTITY')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Sperrgut' | translate }}\"\r\n field=\"IS_BULKY_GOOD\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.orderDetail.isBulkyGood\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.isBulkyGood\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_BULKY_GOOD') || readOnly('orderBulkyGoods')\"\r\n (onValueChanged)=\"update($event, 'IS_BULKY_GOOD')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.alloySurcharge != null\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Legierungszuschlag (%)' | translate }}\"\r\n field=\"ALLOY_SURCHARGE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [min]=\"0\"\r\n [max]=\"100\"\r\n class=\"validationBlue\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('ALLOY_SURCHARGE')\"\r\n [(value)]=\"model.orderDetail.alloySurcharge\"\r\n [readOnly]=\"readOnlyForLinkedFields('ALLOY_SURCHARGE') || readOnly('orderLegierungszuschlag')\"\r\n (onValueChanged)=\"update($event, 'ALLOY_SURCHARGE')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ALLOY_SURCHARGE')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div *ngIf=\"hasAddonLEGALITY\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Produkt mit Haltbarkeit' | translate }}\"\r\n field=\"IS_DURABILITY_PRODUCT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.orderDetail.isDurabilityProduct\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.isDurabilityProduct\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_DURABILITY_PRODUCT') || readOnly('orderWithDurability')\"\r\n (onValueChanged)=\"update($event, 'IS_DURABILITY_PRODUCT')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"flex-fill pl-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.quantityInterval?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bestellintervall' | translate }}\"\r\n field=\"QUANTITY_INTERVAL\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"one\"\r\n [readOnly]=\"readOnlyForLinkedFields('QUANTITY_INTERVAL') || readOnly('orderIntervall')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('QUANTITY_INTERVAL')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('QUANTITY_INTERVAL')\"\r\n [(value)]=\"model.orderDetail.quantityInterval\"\r\n (onValueChanged)=\"update($event, 'QUANTITY_INTERVAL')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'QUANTITY_INTERVAL')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('QUANTITY_INTERVAL')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.quantityMin?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Mindestbestellmenge' | translate }}\"\r\n field=\"QUANTITY_MIN\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"one\"\r\n [readOnly]=\"readOnlyForLinkedFields('QUANTITY_MIN') || readOnly('orderMinimum')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('QUANTITY_MIN')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('QUANTITY_MIN')\"\r\n [(value)]=\"model.orderDetail.quantityMin\"\r\n (onValueChanged)=\"update($event, 'QUANTITY_MIN')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'QUANTITY_MIN')\">\r\n\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('QUANTITY_MIN')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.quantityMax?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Maximalbestellmenge' | translate }}\"\r\n field=\"QUANTITY_MAX\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"zero\"\r\n [readOnly]=\"readOnlyForLinkedFields('QUANTITY_MAX') || readOnly('orderMaximum')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('QUANTITY_MAX')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('QUANTITY_MAX')\"\r\n [(value)]=\"model.orderDetail.quantityMax\"\r\n (onValueChanged)=\"update($event, 'QUANTITY_MAX')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'QUANTITY_MAX')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('QUANTITY_MAX')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.deliveryTime?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Lieferzeit' | translate }}\"\r\n field=\"DELIVERY_TIME\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"zero\"\r\n [readOnly]=\"readOnlyForLinkedFields('DELIVERY_TIME') || readOnly('orderTranportTime')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DELIVERY_TIME')\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('DELIVERY_TIME')\"\r\n [(value)]=\"model.orderDetail.deliveryTime\"\r\n (onValueChanged)=\"update($event, 'DELIVERY_TIME')\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'DELIVERY_TIME')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DELIVERY_TIME')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Speditionsprodukt' | translate }}\"\r\n field=\"IS_TRUCKAGE_COMPANY_GOOD\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.orderDetail.isTruckageCompanyGood\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.isTruckageCompanyGood\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_TRUCKAGE_COMPANY_GOOD') || readOnly('orderSpeditionsprodukt')\"\r\n (onValueChanged)=\"update($event, 'IS_TRUCKAGE_COMPANY_GOOD')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.costOfLivingAdjustment != null\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Teuerungszuschlag (%)' | translate }}\"\r\n field=\"COST_OF_LIVING_ADJUSTMENT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [min]=\"0\"\r\n [max]=\"100\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('COST_OF_LIVING_ADJUSTMENT')\"\r\n [readOnly]=\"readOnlyForLinkedFields('COST_OF_LIVING_ADJUSTMENT') || readOnly('orderTeuerungszuschlag')\"\r\n [(value)]=\"model.orderDetail.costOfLivingAdjustment\"\r\n (onValueChanged)=\"update($event, 'COST_OF_LIVING_ADJUSTMENT')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('COST_OF_LIVING_ADJUSTMENT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div *ngIf=\"hasAddonLEGALITY && model.orderDetail.isDurabilityProduct == true\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.durabilityDays != null\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Haltbarkeit (Tage)' | translate }}\"\r\n field=\"DURABILITY_DAYS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [min]=\"0\"\r\n [max]=\"100000\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DURABILITY_DAYS')\"\r\n [readOnly]=\"readOnlyForLinkedFields('DURABILITY_DAYS') || readOnly('orderDurabilityDays')\"\r\n [(value)]=\"model.orderDetail.durabilityDays\"\r\n (onValueChanged)=\"update($event, 'DURABILITY_DAYS')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DURABILITY_DAYS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!--Basic Price-->\r\n <div *ngIf=\"hasAddonLEGALITY\">\r\n\r\n <div class=\"dx-fieldset-header\">{{ 'Grundpreisinformationen' | translate }}</div>\r\n <div class=\"dx-fieldset d-flex flex-row\">\r\n\r\n <div class=\"flex-fill pr-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.contentQuantity?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Inhaltsmenge' | translate }}\"\r\n field=\"CONTENT_QUANTITY\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.orderDetail.contentQuantity\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CONTENT_QUANTITY')\"\r\n [readOnly]=\"readOnlyForLinkedFields('CONTENT_QUANTITY') || readOnly('orderContentAmount')\"\r\n (onValueChanged)=\"update($event, 'CONTENT_QUANTITY')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('CONTENT_QUANTITY')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.basicQuantity?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Grundmenge' | translate }}\"\r\n field=\"BASIC_QUANTITY\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.orderDetail.basicQuantity\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('BASIC_QUANTITY')\"\r\n [readOnly]=\"readOnlyForLinkedFields('BASIC_QUANTITY') || readOnly('orderBaseAmount')\"\r\n (onValueChanged)=\"update($event, 'BASIC_QUANTITY')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('BASIC_QUANTITY')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"flex-fill pl-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.orderDetail?.contentPackage?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Inhaltseinheit' | translate }}\"\r\n field=\"CONTENT_PACKAGE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.orderDetail.contentPackage\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CONTENT_PACKAGE')\"\r\n [readOnly]=\"readOnlyForLinkedFields('CONTENT_PACKAGE') || readOnly('orderContentPackage')\"\r\n (onValueChanged)=\"update($event, 'CONTENT_PACKAGE')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('CONTENT_PACKAGE')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [(productTranslation)]=\"productTranslation\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Grundpreispflicht' | translate }}\"\r\n field=\"HAS_BASEPRICE_DUTY\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.orderDetail.hasBasicPriceDuty\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.hasBasicPriceDuty\"\r\n [readOnly]=\"readOnlyForLinkedFields('HAS_BASEPRICE_DUTY') || readOnly('orderBasePriceDuty')\"\r\n (onValueChanged)=\"update($event, 'HAS_BASEPRICE_DUTY')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </dx-validation-group>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n\r\n@Component({\r\n selector: \"orderDetail\",\r\n templateUrl: \"orderDetail.component.html\",\r\n styleUrls: [\"./orderDetail.css\", \"template.css\"]\r\n})\r\n\r\nexport class OrderDetailComponent implements OnInit {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() hasAddonLEGALITY: Boolean = false;\r\n @Input() hasAddonNordwest: Boolean = false;\r\n @Input() currentCustomerDefaultLanguage: String = \"deu\";\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n public unitList: string[] = [];\r\n public units: string[] = [];\r\n\r\n constructor(public validationService: ValidationService, public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.modelService?.productService?.getOrderUnitList().subscribe((unitList) => {\r\n this.unitList = unitList;\r\n this.initializeUnits();\r\n });\r\n }\r\n\r\n initializeUnits() {\r\n if (this.unitList && this.unitList.length >= 8) {\r\n for (let i = 0; i < 7; i++) {\r\n this.units.push(this.unitList[i]);\r\n }\r\n this.units.push(\"\");\r\n }\r\n }\r\n\r\n toggleExtendedList() {\r\n\r\n let index = this.unitList.findIndex(x => x.startsWith(\"_\"));\r\n this.unitList[index] = this.unitList[index].replace(\"_\", \"\");\r\n\r\n this.units = this.unitList;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n updateFromAutocomplete(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n if (event.event == undefined) {\r\n event.event = new Object(); // für den template editor erforderlich, da sonst keine default-items erstellt werden\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n\r\n event.value = event.selectedItem; // value ist in diesem fall nicht gesetzt, darauf baut aber der template editor\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n get allowDeleting() {\r\n return !this.templateView;\r\n }\r\n\r\n\r\n\r\n\r\n get priceFactors() { return ViewService.dropDownPriceFactors; }\r\n get lowerBounds() { return ViewService.dropDownLowerBounds; }\r\n get territories() { return ViewService.dropDownTerritories; }\r\n get zero() { return ViewService.dropDownZero; }\r\n get one() { return ViewService.dropDownOne; }\r\n\r\n removeBasicPriceDuty() {\r\n this.model.orderDetail.hasBasicPriceDuty = undefined;\r\n this.update();\r\n }\r\n\r\n removeIsTruckageCompanyGood() {\r\n this.model.orderDetail.isTruckageCompanyGood = undefined;\r\n this.update();\r\n }\r\n\r\n removeIsBulkyGood() {\r\n this.model.orderDetail.isBulkyGood = undefined;\r\n this.update();\r\n }\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = '-1', element: string = '-1', event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event); //, true);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = '-1', element: string = '-1'): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Functions } from '../../Services/functions';\r\n\r\nexport class ProductPriceDetail {\r\n\r\n constructor(\r\n public lowerBound?: string,\r\n public order?: number,\r\n public priceAmount?: string,\r\n public priceCurrency?: string,\r\n public priceFactor?: string,\r\n public priceType?: string,\r\n public tax?: string,\r\n public taxCategory?: string,\r\n public territory?: string,\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n this.priceCurrency = \"EUR\";\r\n this.priceFactor = \"1\";\r\n this.tax = \"0.19\";\r\n this.territory = \"DE\";\r\n this.lowerBound = \"1\";\r\n }\r\n\r\n public clearPrice() {\r\n this.priceCurrency = \"\";\r\n this.priceFactor = \"\";\r\n this.tax = \"\";\r\n this.territory = \"\";\r\n this.lowerBound = \"\";\r\n }\r\n}\r\n","import { ProductPriceDetail } from \"./ProductPriceDetail\";\r\nimport { Functions } from '../../Services/functions';\r\n\r\nexport class PriceList {\r\n\r\n constructor(\r\n public priceListOrder?: number,\r\n public start?: Date,\r\n public end?: Date,\r\n public isDailyPrice: boolean = false,\r\n public productPriceDetails: ProductPriceDetail[] = [],\r\n public guid: string = Functions.newGuid()\r\n ) {\r\n this.start = new Date(new Date().getFullYear(), 0, 1);\r\n this.end = new Date(new Date().getFullYear(), 11, 31);\r\n }\r\n}\r\n","<dx-validation-group *ngIf=\"model\" id=\"productValidationGroup\">\r\n\r\n <dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model?.priceLists\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Preislisten' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemovingMaster($event)\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"onRowRemovedMaster($event)\"\r\n [masterDetail]=\"{ enabled: true, template: 'detail' }\"\r\n (onContentReady)=\"onContentReadyPriceLists()\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'newPricelistButtonTemplate'\">\r\n <dx-button [visible]=\"!readOnly('priceListNew')\" [disabled]=\"priceListUpdateLock\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Preisliste' | translate }}\" (onClick)=\"addPriceList()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\" !readOnly('priceListUpdate')\" [allowDeleting]=\"allowDeleting && !readOnly('priceListDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"PriceListsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"priceListOrder\" caption=\"{{ 'Order' | translate }}\" [width]=\"70\" [allowEditing]=\"true\" cellTemplate=\"priceOrderTemplate\" editCellTemplate=\"priceOrderTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'priceOrderTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"data?.data?.priceListOrder != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"ORDER\"\r\n [system]=\"data.data.priceListOrder.toString()\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box class=\"inDataGrid\"\r\n [(value)]=\"data.data.priceListOrder\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasPriceListFieldLinked(data.data.priceListOrder.toString())\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"hasPriceListFieldLinked(data.data.priceListOrder.toString()) || readOnly('priceListOrder')\"\r\n (onValueChanged)=\"update($event, data.data, null, 'PRICE_LIST_ORDER', data.data.priceListOrder.toString())\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"priceListOrder\" caption=\"{{ 'Preisliste' | translate }}\" [allowEditing]=\"false\" cellTemplate=\"priceListTemplate\" editCellTemplate=\"priceListTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'priceListTemplate'\">\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"false\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n field=\"READ_ONLY_FIELD\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [showClearButton]=\"false\"\r\n [value]=\"priceListName(data.data.priceListOrder)\"\r\n [readOnly]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"start\" caption=\"{{ 'Start' | translate }}\" [width]=\"180\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [allowEditing]=\"true\" cellTemplate=\"startTemplate\" editCellTemplate=\"startTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'startTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.start != null\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.priceListOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"DATETIME_START_DATE\"\r\n [system]=\"data.data.priceListOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [(value)]=\"data.data.start\"\r\n type=\"date\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DATETIME_START_DATE', data.data.priceListOrder.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('DATETIME_START_DATE', data.data.priceListOrder.toString()) || readOnly('priceListStartDate')\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n (onValueChanged)=\"update($event, null, null, 'DATETIME_START_DATE', data.data.priceListOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DATETIME_START_DATE', data.data.priceListOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"end\" caption=\"{{ 'Ende' | translate }}\" [width]=\"180\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [allowEditing]=\"true\" cellTemplate=\"endTemplate\" editCellTemplate=\"endTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'endTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.end != null\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.priceListOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"DATETIME_END_DATE\"\r\n [system]=\"data.data.priceListOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [(value)]=\"data.data.end\"\r\n type=\"date\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DATETIME_END_DATE', data.data.priceListOrder.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('DATETIME_END_DATE', data.data.priceListOrder.toString()) || readOnly('priceListEndDate')\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n (onValueChanged)=\"update($event, null, null, 'DATETIME_END_DATE', data.data.priceListOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DATETIME_END_DATE', data.data.priceListOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"isDailyPrice\" caption=\"{{ 'Tagespreis' | translate }}\" [width]=\"80\" [allowEditing]=\"true\" cellTemplate=\"isDailyPriceTemplate\" editCellTemplate=\"isDailyPriceTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'isDailyPriceTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressLabel]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.priceListOrder.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"IS_DAILY_PRICE\"\r\n [system]=\"data.data.priceListOrder.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"height: 49px; padding-top: 14px;\">\r\n <dx-check-box [(value)]=\"data.data.isDailyPrice\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_DAILY_PRICE', data.data.priceListOrder.toString()) || readOnly('priceListDailyPrice')\"\r\n (onValueChanged)=\"update($event, null, null, 'IS_DAILY_PRICE', data.data.priceListOrder.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('IS_DAILY_PRICE', data.data.priceListOrder.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-check-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let priceLists of 'detail'\">\r\n <div class=\"internal-grid-container\">\r\n <dx-data-grid (onToolbarPreparing)=\"onDetailGridToolbarPreparing($event)\"\r\n [dataSource]=\"priceLists.data.productPriceDetails\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Preise' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemovingDetail($event, priceLists.data)\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"onRowRemovedDetail($event, priceLists.data)\"\r\n (onContentReady)=\"onContentReadyPrices()\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'newPriceButtonTemplate'\">\r\n <dx-button [visible]=\"!readOnly('priceListNew')\" [disabled]=\"priceUpdateLock\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Neuer Preis' | translate }}\" (onClick)=\"addPrice(priceLists)\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"!readOnly('priceListUpdate')\" [allowDeleting]=\"allowDeleting && !readOnly('priceListDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"PriceDetailsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <!--<dxi-column dataField=\"order\" caption=\"\" alignment=\"center\" [width]=\"50\" [dataType]=\"number\"></dxi-column>-->\r\n <dxi-column dataField=\"order\" caption=\"{{ 'Order' | translate }}\" [width]=\"50\" [allowEditing]=\"true\" cellTemplate=\"priceOrderTemplate\" editCellTemplate=\"priceOrderTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceOrderTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"price?.data?.order != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"ORDER\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"price.data.order\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasPriceFieldLinked(priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"hasPriceFieldLinked(priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceOrder')\"\r\n (onValueChanged)=\"update($event, price.data, priceLists.data.productPriceDetails, 'PRICE_ORDER', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"priceType\" caption=\"{{ 'Preistyp' | translate }}\" [allowEditing]=\"true\" [width]=\"175\" cellTemplate=\"priceTypeTemplate\" editCellTemplate=\"priceTypeTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceTypeTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.priceType?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRICE_TYPE\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"priceTypes\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('PRICE_TYPE', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.priceType\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRICE_TYPE', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceType')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'PRICE_TYPE', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRICE_TYPE', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"priceAmount\" caption=\"{{ 'Preis' | translate }}\" cellTemplate=\"priceAmountTemplate\" editCellTemplate=\"priceAmountTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceAmountTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.priceAmount?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRICE_AMOUNT\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [showClearButton]=\"!readOnlyForLinkedFields('PRICE_AMOUNT', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.priceAmount\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRICE_AMOUNT', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceAmount')\"\r\n (onValueChanged)=\"update($event, null, null, 'PRICE_AMOUNT', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRICE_AMOUNT', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"priceCurrency\" caption=\"{{ 'Währung' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"priceCurrencyTemplate\" editCellTemplate=\"priceCurrencyTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceCurrencyTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.priceCurrency?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRICE_CURRENCY\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"currencys\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('PRICE_CURRENCY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.priceCurrency\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRICE_CURRENCY', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceCurrency')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'PRICE_CURRENCY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRICE_CURRENCY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"tax\" caption=\"{{ 'Steuer' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"pricTaxTemplate\" editCellTemplate=\"pricTaxTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'pricTaxTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.tax?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"TAX\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"taxs\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('TAX', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.tax\"\r\n [readOnly]=\"readOnlyForLinkedFields('TAX', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceTax')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'TAX', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('TAX', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"priceFactor\" caption=\"{{ 'Faktor' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"priceFactorTemplate\" editCellTemplate=\"priceFactorTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceFactorTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.priceFactor?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRICE_FACTOR\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"priceFactors\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('PRICE_FACTOR', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.priceFactor\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRICE_FACTOR', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceFactor')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'PRICE_FACTOR', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRICE_FACTOR', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"lowerBound\" caption=\"{{ 'Untergrenze' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"priceLowerBoundTemplate\" editCellTemplate=\"priceLowerBoundTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceLowerBoundTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.lowerBound?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"LOWER_BOUND\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"priceFactors\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('LOWER_BOUND', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.lowerBound\"\r\n [readOnly]=\"readOnlyForLinkedFields('LOWER_BOUND', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceFactors')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'LOWER_BOUND', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('LOWER_BOUND', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"territory\" caption=\"{{ 'Gebiet' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"priceTerritoryTemplate\" editCellTemplate=\"priceTerritoryTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let price of 'priceTerritoryTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"price?.data?.territory?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"TERRITORY\"\r\n [system]=\"priceLists.data.priceListOrder.toString()\"\r\n [element]=\"price.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"territories\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('TERRITORY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"\r\n [(value)]=\"price.data.territory\"\r\n [readOnly]=\"readOnlyForLinkedFields('TERRITORY', priceLists.data.priceListOrder.toString(), price.data.order.toString()) || readOnly('priceTerritory')\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"update($event, null, null, 'TERRITORY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('TERRITORY', priceLists.data.priceListOrder.toString(), price.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </dx-data-grid>\r\n\r\n <div class=\"color1Text\">\r\n <div *ngIf=\"model?.hintsActiv && !validationService.validationResult?.productPriceValid\" class=\"color3Text\">\r\n <table>\r\n <tr *ngFor=\"let msg of validationService.validationResult?.priceMessages\">\r\n <td>\r\n {{ translateMessage(msg) }}\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n\r\n <dx-tooltip target=\"#tm1\" class=\"toolTip toolTipField\" [(visible)]=\"v[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{'Der zur Gültigkeit des Preises müssen einige Angaben gemacht werden' | translate }}.\r\n {{'Zum einen muss die Preisliste ein gültiges Datum haben' | translate }}.\r\n {{'Zum anderen müssen alle Felder des Preisen mit gültigen Werten versehen sein' | translate }}.\r\n {{'Beispiele zum jeweiligen Feld finden Sie über den Pfeil im Feld' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n\r\n <div *ngIf=\"model?.hintsActiv && !validationService.validationResult?.productOrderDetailsValid\" (mouseenter)=\"ttt(2)\" (mouseleave)=\"ttt(2)\" id=\"tm2\">{{ 'Das Produkt sollte vollständige Bestelldetails haben' | translate }}.</div>\r\n <dx-tooltip target=\"#tm2\" class=\"toolTip toolTipField\" [(visible)]=\"v[2]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{'Alle Bestelldetailfelder müssen ausgefüllt sein' | translate }}.\r\n {{'Beispiele zum jeweiligen Feld finden Sie über den Pfeil im Feld' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n</dx-validation-group>\r\n","import { Input, Output, EventEmitter, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProductPriceDetail } from \"../../Model/catalog/ProductPriceDetail\";\r\nimport { PriceList } from \"../../Model/catalog/PriceList\";\r\nimport { CatalogPriceList } from '../../Model/catalog/CatalogPriceList';\r\nimport { Product } from '../../Model/catalog/product';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { Functions } from '../../Services/functions';\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n\r\n@Component({\r\n selector: \"prices\",\r\n templateUrl: \"prices.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\n\r\nexport class Prices implements OnInit {\r\n @Input() model: Product = new Product();\r\n @Input() showToolTips: Boolean = false;\r\n @Input() showProToolTips: Boolean = false;\r\n @Input() showPlaceHolders: Boolean = true;\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() hasAddonLEGALITY: Boolean = false;\r\n @Input() hasAddonNordwest: Boolean = false;\r\n @Input() currentCustomerDefaultLanguage: String = \"deu\";\r\n @Input() priceLists: CatalogPriceList[] = [];\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n priceListUpdateLock: boolean = false;\r\n priceUpdateLock: boolean = false;\r\n\r\n constructor(public templateService: TemplateService, public validationService: ValidationService, public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n\r\n\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newPricelistButtonTemplate'\r\n });\r\n }\r\n\r\n onDetailGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newPriceButtonTemplate'\r\n });\r\n }\r\n\r\n newPriceListOrder = 0;\r\n\r\n ngOnInit(): void {\r\n this.model.priceLists.forEach(x => {\r\n x.guid = Functions.newGuid();\r\n x.productPriceDetails.forEach(y => {\r\n y.guid = Functions.newGuid();\r\n });\r\n });\r\n\r\n for (const priceList of this.model.priceLists) {\r\n if (priceList.priceListOrder > this.newPriceListOrder && priceList.priceListOrder < 1000) {\r\n this.newPriceListOrder = priceList.priceListOrder;\r\n }\r\n }\r\n this.newPriceListOrder += 1;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, data?, productPriceDetails?, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n\r\n //Order wird bereits bei Listen benutzt\r\n if (field == \"PRICE_LIST_ORDER\") {\r\n let pl = this.model.priceLists.filter(x => x.guid == data.guid)[0];\r\n let originalOrder = event.previousValue;\r\n let change = event.value > event.previousValue ? 1 : -1;\r\n while (this.model.priceLists.filter(x => x.priceListOrder == event.value).length > 1) {\r\n event.value += change;\r\n pl.priceListOrder = event.value;\r\n }\r\n if (event.value < 1) {\r\n pl.priceListOrder = originalOrder;\r\n return;\r\n }\r\n }\r\n\r\n //Order wird bereits bei einzelnen price benutzt\r\n if (field == \"PRICE_ORDER\") {\r\n let pl = data as ProductPriceDetail;\r\n let originalOrder = event.previousValue;\r\n let change = event.value > event.previousValue ? 1 : -1;\r\n while (productPriceDetails.filter(x => x.order == event.value).length > 1) {\r\n event.value += change;\r\n pl.order = event.value;\r\n }\r\n\r\n if (event.value < 1) {\r\n pl.order = originalOrder;\r\n return;\r\n }\r\n if (pl.order >= this.newPriceListOrder) {\r\n for (const priceList of this.model.priceLists) {\r\n if (priceList.priceListOrder > this.newPriceListOrder && priceList.priceListOrder < 1000) {\r\n this.newPriceListOrder = priceList.priceListOrder;\r\n }\r\n }\r\n this.newPriceListOrder += 1;\r\n }\r\n }\r\n\r\n\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n priceListName(data) {\r\n var priceList = this.priceLists.filter(element => element.order == data).shift();\r\n if (priceList)\r\n return priceList.name;\r\n return \"\";\r\n }\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n get allowDeleting() {\r\n //return !this.templateView;\r\n return true;\r\n }\r\n\r\n addPriceList() {\r\n this.priceListUpdateLock = true;\r\n var priceList = new PriceList();\r\n //Bestimmen der Order\r\n var PriceListOrder = 0;\r\n for (let priceList of this.model.priceLists) {\r\n if (priceList.priceListOrder > PriceListOrder) {\r\n PriceListOrder = priceList.priceListOrder;\r\n }\r\n }\r\n PriceListOrder += 1;\r\n priceList.priceListOrder = PriceListOrder;\r\n\r\n if (this.templateView) {\r\n priceList.start = null;\r\n priceList.end = null;\r\n }\r\n\r\n //Preisliste himzufügen\r\n this.model.priceLists.push(priceList);\r\n\r\n //Produkt Speichern\r\n this.update();\r\n }\r\n\r\n onContentReadyPriceLists() {\r\n this.priceListUpdateLock = false;\r\n }\r\n\r\n addPrice(priceLists) {\r\n this.priceUpdateLock = true;\r\n var price = new ProductPriceDetail();\r\n //Bestimmen der MwST\r\n switch (this.currentCustomerDefaultLanguage) {\r\n case \"nld\":\r\n price.tax = \"0.21\";\r\n price.territory = \"NL\";\r\n break;\r\n }\r\n price.order = this.newPriceListOrder++;\r\n\r\n if (this.templateView) {\r\n price.priceType = \"\";\r\n price.priceAmount = \"\";\r\n price.priceCurrency = \"\";\r\n price.tax = \"\";\r\n price.priceFactor = \"\";\r\n price.lowerBound = \"\";\r\n price.territory = \"\";\r\n }\r\n\r\n //Preis hinzufügen\r\n priceLists.data.productPriceDetails.push(price);\r\n\r\n //Produkt Speichern\r\n this.update();\r\n }\r\n\r\n onContentReadyPrices() {\r\n this.priceUpdateLock = false;\r\n }\r\n\r\n get priceTypes() { return ViewService.dropDownPriceTypes; }\r\n get currencys() { return ViewService.dropDownCurrencys; }\r\n get taxs() { return ViewService.dropDownTaxs; }\r\n get priceFactors() { return ViewService.dropDownPriceFactors; }\r\n get lowerBounds() { return ViewService.dropDownLowerBounds; }\r\n get territories() { return ViewService.dropDownTerritories; }\r\n get units() { return ViewService.dropDownUnits; }\r\n get zero() { return ViewService.dropDownZero; }\r\n get one() { return ViewService.dropDownOne; }\r\n\r\n removeBasicPriceDuty() {\r\n this.model.orderDetail.hasBasicPriceDuty = undefined;\r\n this.update();\r\n }\r\n\r\n removeIsTruckageCompanyGood() {\r\n this.model.orderDetail.isTruckageCompanyGood = undefined;\r\n this.update();\r\n }\r\n\r\n removeIsBulkyGood() {\r\n this.model.orderDetail.isBulkyGood = undefined;\r\n this.update();\r\n }\r\n\r\n //USABILITY\r\n\r\n private emptyArray = [false, false, false, false, false, false, false, false, false, false, false];\r\n public v: boolean[] = this.emptyArray;\r\n\r\n ttt(id) {\r\n if (this.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = this.emptyArray;\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n\r\n\r\n public hasPriceListFieldLinked(system: string = \"-1\"): boolean {\r\n // Prüfen, ob irgend ein Feld dieser Preisliste gelinked ist\r\n for (let masterField of this.templateService.allPriceListFields) {\r\n if (this.model.isFieldLinked(masterField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n public hasPriceFieldLinked(system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Prüfen, ob irgend ein Feld dieses Preises gelinked ist\r\n for (let detailField of this.templateService.allPriceFields) {\r\n if (this.model.isFieldLinked(detailField, system, element)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n public onRowRemovingMaster(e) {\r\n\r\n let orderString = e.data.priceListOrder.toString();\r\n\r\n if (this.model.isChild && this.hasPriceListFieldLinked(orderString)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie die Preisliste wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n public onRowRemovedMaster(e) {\r\n\r\n let orderString = e.data.priceListOrder.toString();\r\n\r\n // Prüfen, ob irgend ein Feld dieser Preisliste gelinked ist\r\n for (let masterField of this.templateService.allPriceListFields) {\r\n if (this.model.isFieldLinked(masterField, orderString, \"-1\")) {\r\n this.model.toggleLinkedField(masterField, orderString, \"-1\");\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(e);\r\n\r\n // für den template editor erforderlich:\r\n e.dFields = this.templateService.allPriceListFields;\r\n e.dDetailFields = this.templateService.allPriceFields;\r\n e.dSystem = orderString;\r\n e.dElement = -1;\r\n this.elementDeleted.emit(e);\r\n }\r\n\r\n\r\n\r\n public onRowRemovingDetail(e, o: PriceList) {\r\n\r\n let system = o.priceListOrder?.toString();\r\n\r\n let orderString = e.data.order.toString(); // Das ist HIER element\r\n\r\n if (this.model.isChild && this.hasPriceFieldLinked(system, orderString)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie den Preis wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n public onRowRemovedDetail(e, o: PriceList) {\r\n\r\n let system = o.priceListOrder?.toString();\r\n\r\n let orderString = e.data.order.toString(); // Das ist HIER element\r\n\r\n // Prüfen, ob irgend ein Feld dieses Preises gelinked ist\r\n for (let detailField of this.templateService.allPriceFields) {\r\n if (this.model.isFieldLinked(detailField, system, orderString)) {\r\n this.model.toggleLinkedField(detailField, system, orderString);\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(e);\r\n\r\n // für den template editor erforderlich:\r\n e.dFields = this.templateService.allPriceFields;\r\n e.dDetailFields = null;\r\n e.dSystem = system;\r\n e.dElement = orderString;\r\n this.elementDeleted.emit(e);\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n templateSelect(identifier: string, system: string = \"-1\", element: string = \"-1\") {\r\n if (element) {\r\n this.elementSelected.emit(`${identifier}_${system}_${element}`);\r\n } else {\r\n this.elementSelected.emit(`${identifier}_${system}`);\r\n }\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = \"-1\", element: string = \"-1\", event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event); //, true);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\", element: string = \"-1\"): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <dx-validation-group id=\"productValidationGroup\">\r\n\r\n <!--Customs_Number-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.customsNumber?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Zolltarifnummer' | translate }}\"\r\n field=\"CUSTOMS_NUMBER\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model?.productLogistic.customsNumber\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOMS_NUMBER') || readOnly('logisticZollTarif')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CUSTOMS_NUMBER')\"\r\n (onValueChanged)=\"update($event, 'CUSTOMS_NUMBER')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('CUSTOMS_NUMBER')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Country of Orgin-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.countryOfOrigin?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Ursprungsland' | translate }}\"\r\n field=\"COUNTRY_OF_ORIGIN\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.productLogistic.countryOfOrigin\"\r\n [readOnly]=\"readOnlyForLinkedFields('COUNTRY_OF_ORIGIN') || readOnly('logisticCountryOfOrigin')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('COUNTRY_OF_ORIGIN')\"\r\n (onValueChanged)=\"update($event, 'COUNTRY_OF_ORIGIN')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('COUNTRY_OF_ORIGIN')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Width-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.width?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Breite' | translate }}\"\r\n field=\"WIDTH\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.productLogistic.width\"\r\n [readOnly]=\"readOnlyForLinkedFields('WIDTH') || readOnly('logisticWidth')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('WIDTH')\"\r\n (onValueChanged)=\"update($event, 'WIDTH')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('WIDTH')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Length-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.length?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Länge' | translate }}\"\r\n field=\"LENGTH\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.productLogistic.length\"\r\n [readOnly]=\"readOnlyForLinkedFields('LENGTH') || readOnly('logisticLenghth')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('LENGTH')\"\r\n (onValueChanged)=\"update($event, 'LENGTH')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('LENGTH')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Depth-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.depth?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Tiefe' | translate }}\"\r\n field=\"DEPTH\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.productLogistic.depth\"\r\n [readOnly]=\"readOnlyForLinkedFields('DEPTH') || readOnly('logisticDepth')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('DEPTH')\"\r\n (onValueChanged)=\"update($event, 'DEPTH')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('DEPTH')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--Weight-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.weight?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Gewicht' | translate }}\"\r\n field=\"WEIGHT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.productLogistic.weight\"\r\n [readOnly]=\"readOnlyForLinkedFields('WEIGHT') || readOnly('logisticWeight')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('WEIGHT')\"\r\n (onValueChanged)=\"update($event, 'WEIGHT')\"\r\n class=\"validationBlue\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('WEIGHT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"color5Text\" *ngIf=\"templateView == false && model?.hintsActiv && !validationService.validationResult.productLogisticsValid\">\r\n <div>{{ 'Nicht alle Logistikfelder sind ausgefüllt' | translate }}.</div>\r\n </div>\r\n </dx-validation-group>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { Product } from \"../../Model/catalog/product\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n\r\n@Component({\r\n selector: \"logistic\",\r\n templateUrl: \"logistic.html\",\r\n styleUrls: [\"./logistic.css\", \"template.css\"]\r\n})\r\n\r\nexport class Logistic implements OnInit {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() hasAddonLEGALITY: Boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Input() modelService: ModelService;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n constructor(public validationService: ValidationService, public userManagement: UserManagementService, public catalogService: CatalogService) {\r\n\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = '-1', element: string = '-1', event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = '-1', element: string = '-1'): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-validation-group id=\"productValidationGroup\">\r\n <dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model?.references\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Referenzen' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onCellPrepared)=\"onReferencePrepared($event)\"\r\n (onRowUpdated)=\"update($event)\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'newReferenceButtonTemplate'\">\r\n <dx-button [visible]=\"!readOnly('referenceNew')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Reference' | translate }}\" (onClick)=\"addReference()\" hint=\"{{ 'Neue Referenz anlegen' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'groupReferencesSwitchTemplate'\" class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ 'Referenzen gruppieren' | translate }}</div>\r\n <dx-switch [(value)]=\"showReferenceDetail\" switchedOffText=\"No\" switchedOnText=\"Yes\" hint=\"{{ 'Referenzen gruppieren' | translate }}\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\"></div>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'helpIconTemplate'\">\r\n <span class=\"dx-icon dx-icon-help\" (mouseenter)=\"ttt(2)\" (mouseleave)=\"ttt(2)\" id=\"tr2\" style=\"font: 24px DXIcons;\"></span>\r\n </div>\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"!readOnly('referenceUpdate')\" [allowDeleting]=\"!readOnly('referenceDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"></dxo-search-panel>\r\n\r\n <dxo-group-panel [visible]=\"false\" [emptyPanelText]=\"'Gruppierung'\"></dxo-group-panel>\r\n\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"ReferencesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"type\" caption=\"Typ\" [allowEditing]=\"true\" cellTemplate=\"referenceTypTemplate\" editCellTemplate=\"referenceTypTemplate\" [width]=\"200\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'referenceTypTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.type?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRODUCT_REFERENCES_TYPE\"\r\n [system]=\"data.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [items]=\"referenceTypes\"\r\n placeholder=\"\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRODUCT_REFERENCES_TYPE', data.data.order.toString()) || readOnly('referenceType')\"\r\n [(value)]=\"data.data.type\"\r\n (onValueChanged)=\"update($event, 'PRODUCT_REFERENCES_TYPE', data.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRODUCT_REFERENCES_TYPE', data.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"artIdTo\" caption=\"{{ 'Produktnummer' | translate }}\" cellTemplate=\"referenceSpidTemplate\" editCellTemplate=\"referenceSpidTemplate\" [width]=\"200\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'referenceSpidTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.artIdTo?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"PRODUCT_REFERENCES_SPID\"\r\n [system]=\"data.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"data.data.artIdTo\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PRODUCT_REFERENCES_SPID', data.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('PRODUCT_REFERENCES_SPID', data.data.order.toString()) || readOnly('referenceSPID')\"\r\n (onValueChanged)=\"update($event, 'PRODUCT_REFERENCES_SPID', data.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PRODUCT_REFERENCES_SPID', data.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"normUri\" caption=\"\" [allowEditing]=\"false\" editCellTemplate=\"imageCellTemplate\" cellTemplate=\"imageCellTemplate\" [width]=\"70\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'imageCellTemplate'\" class=\"w-100\">\r\n <div>\r\n <img *ngIf=\"!data.value\" src=\"images/ikon_article_tree_invert.png\" class=\"catlistImage\" />\r\n <img *ngIf=\"data.value\" (mouseenter)=\"showImage(data.value,data.rowIndex)\" (mouseleave)=\"hideImage()\" src=\"{{data.value}}\" class=\"catlistImage\" id=\"link{{data.rowIndex}}\" />\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"descriptionShort\" [allowEditing]=\"false\" caption=\"{{ 'Produkt' | translate }}\" cellTemplate=\"referenceDescriptionShortTemplate\" [allowSearch]=\"false\" [allowSorting]=\"false\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'referenceDescriptionShortTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"false\"\r\n [suppressLabel]=\"true\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n field=\"READ_ONLY_FIELD\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"data.data.descriptionShort\"\r\n [showClearButton]=\"false\"\r\n [readOnly]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </dx-data-grid>\r\n</dx-validation-group>\r\n<div class=\"color5Text\">\r\n <div *ngIf=\"model?.hintsActiv && !validationService.validationResult?.productReferenceValid\">\r\n <table>\r\n <tr *ngFor=\"let msg of validationService.validationResult?.referenceMessages\">\r\n <td>\r\n {{ translateMessage(msg) }}\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <dx-tooltip target=\"#ref1\" class=\"toolTip toolTipField\" [(visible)]=\"v[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{'Die Referenzen sind für das CrossSelling' | translate }}.\r\n {{'CrossSelling kann den Umsatz erheblich steigern' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n</div>\r\n\r\n<dx-popover [(target)]=\"target\"\r\n position=\"bottom\"\r\n [width]=\"300\"\r\n [showTitle]=\"false\"\r\n [(visible)]=\"imageVisable\">\r\n <div *dxTemplate=\"let data = model of 'content'\">\r\n <img src=\"{{source}}{{mimedate()}}\" style=\"height: 244px;\" />\r\n </div>\r\n</dx-popover>\r\n<dx-tooltip target=\"#tr2\" class=\"toolTip toolTipField\" [(visible)]=\"v[2]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{'Das Feld TYPE beschreibt, in welcher Beziehung die beiden Produkte zu einander stehen' | translate }}.<br /><br /><br />\r\n {{'Ein SPAREPART ist ein Ersatzteil zu diesem Quellprodukt. Ein Ersatzteil ist ein Teil des Produktes, welches im Rahmen von Wartung und Reparatur separat ausgewechselt werden kann' | translate }}.<br /><br />\r\n {{'Ein SIMILAR ist ein ähnliches Produkt zu diesem Quellprodukt. Ein ähnliches Produkt ist ein Produkt, welches ähnliche Ziele und Funktionen wie das Quellprodukt hat und evtl. alternativ genutzt werden kann' | translate }}.<br /><br />\r\n {{'Ein als MANDATORY aufgeführtes Bezugsprodukt ist ein notwendiges Zusatzprodukt, das auf jeden Fall mit bestellt werden muss. Das beschriebene Quellprodukt kann nicht alleine bestellt werden. Sind mehrere Produkte als \"mandatory\" gekennzeichnet, so müssen diese alle mitbestellt werden' | translate }}.<br /><br />\r\n {{'Ein als SELECT aufgeführtes Bezugsprodukt ist ein notwendiges Auswahlprodukt. Das beschriebene Bezugsprodukt kann nicht alleine bestellt werden' | translate }}.<br /><br />\r\n {{'Ein als DIFF_ORDERUNIT aufgeführtes Bezugsprodukt besteht aus dem selben Basisprodukt wie das Quellprodukt. Das Quellprodukt liegt jedoch in einer anderen Verpackungseinheit vor' | translate }}.<br /><br />\r\n {{'Ein als ACCESSORIES aufgeführtes Bezugsprodukt ist ein Zubehörteil zu diesem Quellprodukt. Ein Zubehörteil erweitert die Funktionalität des Quellproduktes' | translate }}.<br /><br />\r\n {{'Ein als CONSISTS_OF aufgeführtes Bezugsprodukt ist Teil dieses Quellprodukt. Dieser Verweistyp kann genutzt werden, um Stücklisten aufzubauen. Es wird dabei immer von dem übergeordneten Teil auf die enthaltenen Teile verwiesen' | translate }}.<br /><br />\r\n {{'OTHERS kann genutzt werden, falls keine der anderen Verweisarten die Beziehung Bezugs- und Quellprodukt ausreichend beschreibt' | translate }}.<br /><br />\r\n </div>\r\n</dx-tooltip>\r\n","import { Input, Output, EventEmitter, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { Reference } from '../../Model/Catalog/Reference';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { StoreType } from \"devextreme/common\";\r\n\r\n//Todo: Deatails show -- geht nicht\r\n\r\n@Component({\r\n selector: \"references\",\r\n templateUrl: \"references.html\",\r\n styleUrls: [\"./references.css\"]\r\n})\r\n\r\nexport class References implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: true })\r\n dataGrid: DxDataGridComponent;\r\n @Input() model: Product = new Product();\r\n @Input() showToolTips: Boolean = false;\r\n @Input() showProToolTips: Boolean = false;\r\n @Input() showPlaceHolders: Boolean = true;\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() lastImageUpload: Date = new Date();\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() onReferencePrepare = new EventEmitter<any>();\r\n\r\n @Input() modelService: ModelService;\r\n\r\n constructor(public templateService: TemplateService, public translate: TranslateService, public validationService: ValidationService, public userManagement: UserManagementService, public catalogService: CatalogService) { }\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newReferenceButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'helpIconTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'groupReferencesSwitchTemplate'\r\n });\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n update(event = null, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n addReference() {\r\n var reference = new Reference();\r\n if (!this.templateView) {\r\n reference.type = ViewService.referenceTypes[0];\r\n }\r\n\r\n let currentCount = this.model.references.length;\r\n reference.order = currentCount + 1;\r\n\r\n this.model.references.push(reference);\r\n this.update();\r\n }\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n get referenceTypes() {\r\n return ViewService.referenceTypes;\r\n }\r\n\r\n onReferencePrepared(event) {\r\n this.onReferencePrepare.emit(event);\r\n }\r\n\r\n showReferenceDetails: boolean = false;\r\n\r\n get showReferenceDetail() {\r\n return this.showReferenceDetails;\r\n }\r\n\r\n set showReferenceDetail(value) {\r\n this.showReferenceDetails = value;\r\n if (value) {\r\n this.dataGrid.instance.columnOption(\"type\", \"groupIndex\", 0);\r\n } else {\r\n this.dataGrid.instance.clearGrouping();\r\n }\r\n }\r\n\r\n mimedate() {\r\n return \"?\" + this.lastImageUpload;\r\n }\r\n\r\n imageVisable: boolean = false;\r\n source: string = \"\";\r\n target: string = \"\";\r\n\r\n showImage(source, index) {\r\n this.target = \"#link\" + index;\r\n this.source = source;\r\n this.imageVisable = true;\r\n }\r\n\r\n hideImage() {\r\n this.imageVisable = false;\r\n }\r\n\r\n //USABILITY\r\n\r\n private emptyArray = [false, false, false];\r\n public v: boolean[] = this.emptyArray;\r\n\r\n ttt(id) {\r\n if (this.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = this.emptyArray;\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n delete(event = null) {\r\n\r\n let orderString = event.data.order.toString();\r\n\r\n // Prüfen, ob irgend ein Feld dieser Referenz gelinked ist\r\n for (let referenceField of this.templateService.allReferenceFields) {\r\n if (this.model != null && this.model.isFieldLinked(referenceField, orderString, \"-1\")) {\r\n this.model.toggleLinkedField(referenceField, orderString, \"-1\");\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n event.dFields = this.templateService.allReferenceFields;\r\n event.dDetailFields = null;\r\n event.dSystem = orderString;\r\n event.dElement = -1;\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n\r\n\r\n public onRowRemoving(e) {\r\n let orderString = e.data.order.toString();\r\n\r\n if (this.model.isChild && this.hasReferenceFieldLinked(orderString)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie die Referenz wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n\r\n\r\n templateSelect(identifier: string, orderString: string) {\r\n this.elementSelected.emit(`${identifier}_${orderString}`);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public hasReferenceFieldLinked(system: string = \"-1\"): boolean {\r\n // Prüfen, ob irgend ein Feld dieser Referenz gelinked ist\r\n for (let referenceField of this.templateService.allReferenceFields) {\r\n if (this.model != null && this.model.isFieldLinked(referenceField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (this.model != null && field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n if (this.model != null) {\r\n return this.model.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n if (this.model != null) {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = \"-1\", element: string = \"-1\", event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n // SAVE\r\n this.update(event); \r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\", element: string = \"-1\"): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-validation-group id=\"productValidationGroup\">\r\n <dx-data-grid (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine UDX Felder' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"update($event)\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'addButtonTemplate'\">\r\n <dx-button *ngIf=\"canView('udxAdd')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues UDX' | translate }}\" (onClick)=\"addUDX()\"></dx-button>\r\n </div>\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"!readOnlyUser('udxDelete')\" [allowDeleting]=\"!readOnlyUser('udxDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"UdxStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"category\" caption=\"{{ 'Gruppe' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"categoryTemplate\" editCellTemplate=\"categoryTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'categoryTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.category?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"UDX_CATEGORY\"\r\n [system]=\"data.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"data.data.category\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('UDX_CATEGORY', data.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('UDX_CATEGORY', data.data.order.toString()) || readOnlyUser('udxCategory')\"\r\n (onValueChanged)=\"update($event, 'UDX_CATEGORY', data.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('UDX_CATEGORY', data.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"nameTemplate\" editCellTemplate=\"nameTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'nameTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.name?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"UDX_NAME\"\r\n [system]=\"data.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"data.data.name\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('UDX_NAME', data.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('UDX_NAME', data.data.order.toString()) || readOnlyUser('udxName')\"\r\n (onValueChanged)=\"update($event, 'UDX_NAME', data.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('UDX_NAME', data.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <dxi-column dataField=\"value\" caption=\"{{ 'Wert' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"valueTemplate\" editCellTemplate=\"valueTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'valueTemplate'\" class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"data?.data?.value?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, data.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"UDX_VALUE\"\r\n [system]=\"data.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"data.data.value\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('UDX_VALUE', data.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('UDX_VALUE', data.data.order.toString()) || readOnlyUser('udxValue')\"\r\n (onValueChanged)=\"update($event, 'UDX_VALUE', data.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView && product\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('UDX_VALUE', data.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </dx-data-grid>\r\n</dx-validation-group>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { UdxField } from \"../../Model/Catalog/UdxField\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"udx\",\r\n templateUrl: \"udx.html\",\r\n styleUrls: [\"./udx.css\"]\r\n})\r\nexport class UDX {\r\n @Input() model: UdxField[] = [];\r\n @Input() product: Product = null;\r\n @Input() showLinkButtons: Boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n constructor(public templateService: TemplateService, public translate: TranslateService, public modelService: ModelService, public userManagement: UserManagementService, public validationService: ValidationService) { }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addButtonTemplate',\r\n });\r\n\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n addUDX() {\r\n var udx = new UdxField();\r\n var udxOrder = 0;\r\n for (let ud of this.model) {\r\n if (ud.order > udxOrder) {\r\n udxOrder = ud.order;\r\n }\r\n }\r\n udxOrder += 1;\r\n udx.order = udxOrder;\r\n this.model.push(udx);\r\n this.update();\r\n console.log(this.model);\r\n }\r\n\r\n delete(event = null) {\r\n let product = this.modelService.catalogService.product;\r\n let orderString = event.data.order.toString();\r\n\r\n // Prüfen, ob irgend ein Feld dieser Udx gelinked ist\r\n for (let udxField of this.templateService.allUdxFields) {\r\n if (product != null && product.isFieldLinked(udxField, orderString, \"-1\")) {\r\n product.toggleLinkedField(udxField, orderString, \"-1\");\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n event.dFields = this.templateService.allUdxFields;\r\n event.dDetailFields = null;\r\n event.dSystem = orderString;\r\n event.dElement = \"-1\";\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n\r\n\r\n public onRowRemoving(e) {\r\n let product = this.modelService.catalogService.product;\r\n let orderString = e.data.order.toString();\r\n\r\n if (product != null && product.isChild && this.hasUdxFieldLinked(orderString)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie dieses UDX wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n\r\n\r\n templateSelect(identifier: string, orderString: string) {\r\n this.elementSelected.emit(`${identifier}_${orderString}`);\r\n }\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public hasUdxFieldLinked(system?: string): boolean {\r\n let product = this.modelService.catalogService.product;\r\n // Prüfen, ob irgend ein Feld dieser Udx gelinked ist\r\n for (let udxField of this.templateService.allUdxFields) {\r\n if (product != null && product.isFieldLinked(udxField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n let product = this.modelService.catalogService.product;\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (product != null && field != null) {\r\n var isLinked = product.isFieldLinked(field, system, element);\r\n if (isLinked && product.isChild != null && product.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null) {\r\n return product.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n let product = this.modelService.catalogService.product;\r\n if (product != null) {\r\n return product.isFieldLinked(field, system, element);\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = \"-1\", element: string = \"-1\", event = null) {\r\n let product = this.modelService.catalogService.product;\r\n var changed = product.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = product.getClassForLinkedField(isNowLinked);\r\n\r\n if (product.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event); //, true);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\", element: string = \"-1\"): string {\r\n let product = this.modelService.catalogService.product;\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return product.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product == null || !this.isVirtualCatalog()) && this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product != null && this.isVirtualCatalog()) || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <dx-validation-group *ngIf=\"model\" id=\"productValidationGroup\">\r\n <div class=\"dx-fieldset grid-view\" *ngIf=\"modelService.loginService.hasAddonElectronicSales\">\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Artikel</div>\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_DATE_CREATED' | translate }}\" field=\"DATE_CREATED\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [min]=\"minDate\" [max]=\"now\" [(value)]=\"model.electronicSales.dateCreated\"\r\n [showClearButton]=\"true\" (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_DATE_CREATED')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\"\r\n [validationCallback]=\"validationService.validateField('ELECTRONIC_SALES_DATE_CREATED')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_NEWINSHOP_TIME' | translate }}\" field=\"NEWINSHOP_TIME\"\r\n [suppressLinkButton]=\"true\" [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [min]=\"minDate\" [max]=\"now\" [(value)]=\"model.electronicSales.newInShopTime\"\r\n [showClearButton]=\"true\" (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_NEWINSHOP_TIME')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\"\r\n [validationCallback]=\"validationService.validateField('ELECTRONIC_SALES_NEWINSHOP_TIME')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div *ngFor=\"let kv of othersMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" [min]=\"0\"\r\n (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\"\r\n [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let kv of validationService.fieldNames.electronicSalesBoolMapping | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-switch [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-switch>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Marketing</div>\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" \r\n [showPlaceLabel]=\"true\" \r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" \r\n [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_SUMMARY_TEXT' | translate }}\" field=\"SUMMARY_TEXT\">\r\n \r\n <div slot=\"content\" class=\"contentSlot\">\r\n <div *ngIf=\"showHTMLEditor && !isPrint\" class=\"w-100\">\r\n <dx-html-editor class=\"w-100\"\r\n [(value)]=\"model.electronicSales.summaryText\"\r\n placeholder=\"SUMMARY_TEXT\"\r\n (onFocusOut)=\"update($event, 'ELECTRONIC_SALES_SUMMARY_TEXT')\"\r\n allowSoftLineBreak=\"true\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"link\"></dxi-item>\r\n </dxo-toolbar>\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUMMARY_TEXT')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-html-editor>\r\n </div>\r\n \r\n <div *ngIf=\"!showHTMLEditor || isPrint\">\r\n <label class=\"placeLabel {{ model?.electronicSales?.summaryText?.length>0 ? 'placeLabelSmall' : '' }}\">SUMMARY_TEXT</label>\r\n <dx-text-area [(value)]=\"model.electronicSales.summaryText\"\r\n [height]=\"130\"\r\n (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_SUMMARY_TEXT')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateDescriptionLong\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-area>\r\n </div>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_NOTE_CUSTOMER' | translate }}\" field=\"NOTE_CUSTOMER\"\r\n [suppressLinkButton]=\"true\" [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales.noteCustomer\" [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_NOTE_CUSTOMER')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ELECTRONIC_SALES_NOTE_CUSTOMER')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n <div *ngFor=\"let kv of marketingMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\"\r\n [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_SEOURL_FILENAME' | translate }}\" field=\"ELECTRONIC_SALES_SEOURL_FILENAME\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box\r\n [(value)]=\"model.electronicSales.seoUrlFilename\"\r\n (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_SEOURL_FILENAME')\"\r\n \r\n >\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ELECTRONIC_SALES_DATE_CREATED')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n <div *ngFor=\"let kv of productDetail | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ElectronicSales_' + kv.value | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">{{'Klassifizierungen' | translate}}</div>\r\n <div *ngFor=\"let kv of classificationMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ElectronicSales_' + kv.value | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Richtlinien</div>\r\n <div *ngFor=\"let kv of guidelinesMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ElectronicSales_' + kv.value | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Lager/Logistik</div>\r\n <div *ngFor=\"let kv of logisticsMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Zuschläge/Kosten</div>\r\n <div *ngFor=\"let kv of chargesMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.electronicSales[kv.value]\" (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">Bestellung</div>\r\n\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ 'ELECTRONIC_SALES_ORDER_DECIMAL_PLACES' | translate }}\" field=\"ORDER_DECIMAL_PLACES\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.electronicSales.orderDecimalPlaces\" [min]=\"0.0\" format=\"#0.##\"\r\n (onValueChanged)=\"update($event, 'ELECTRONIC_SALES_ORDER_DECIMAL_PLACES')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('ELECTRONIC_SALES_ORDER_DECIMAL_PLACES')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n\r\n <div *ngFor=\"let kv of ordersMap | keyvalue\">\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\" [showPlaceLabel]=\"true\" [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\" [suppressDragHandle]=\"true\"\r\n labelText=\"{{ kv.key | translate }}\" field=\"{{ kv.key }}\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"model.electronicSales[kv.value]\" [min]=\"0.0\" format=\"#0.##\"\r\n (onValueChanged)=\"update($event, kv.key)\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField(kv.key)\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-validation-group>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { ValidationService } from \"../../../Services/Validation/validation.service\";\r\nimport { fieldNames } from \"../../../Model/FieldNames\";\r\n\r\n@Component({\r\n selector: \"electronicSales\",\r\n templateUrl: \"electronicSales.component.html\",\r\n styleUrls: [\"electronicSales.component.css\", \"../template.css\"]\r\n})\r\nexport class ElectronicSalesComponent {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() templateView: Boolean = false;\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n marketingMap = new Map([\r\n [fieldNames.electronicSalesDescriptionMarketing, 'descriptionMarketing'],\r\n [fieldNames.electronicSalesPromoInfo, 'promoInfo'],\r\n [fieldNames.electronicSalesNoteCustomer, 'noteCustomer'],\r\n ]);\r\n\r\n classificationMap = new Map([\r\n [fieldNames.electronicSalesFSK, 'fsk'],\r\n [fieldNames.electronicSalesEUDataSheet, 'euDataSheet'],\r\n [fieldNames.electronicSalesEEK, 'eek'],\r\n [fieldNames.electronicSalesEELabel, 'eeLabel'],\r\n [fieldNames.electronicSalesEEKColor, 'eekColor'],\r\n ]);\r\n\r\n logisticsMap = new Map([\r\n [fieldNames.electronicSalesStockQuantitySupplier, 'stockQuantitySupplier'],\r\n [fieldNames.electronicSalesStockQuantityReseller, 'stockQuantityReseller'],\r\n [fieldNames.electronicSalesStockKeeping, 'stockKeeping'],\r\n [fieldNames.electronicSalesStockLocation, 'stockLocation'],\r\n [fieldNames.electronicSalesStockUnit, 'stockUnit'],\r\n [fieldNames.electronicSalesStockInfoText, 'stockInfoText'],\r\n [fieldNames.electronicSalesStockKeepingModus, 'stockKeepingModus'],\r\n [fieldNames.electronicSalesStockPriceFactor, 'stockPriceFactor'],\r\n [fieldNames.electronicSalesNoStockInfoText, 'noStockInfoText'],\r\n ]);\r\n\r\n chargesMap = new Map([\r\n [fieldNames.electronicSalesSurCharges1ArtNr, 'surCharges1ArtNr'],\r\n [fieldNames.electronicSalesSurCharges1Percent, 'surCharges1Percent'],\r\n [fieldNames.electronicSalesSurCharges1FixValue, 'surCharges1FixValue'],\r\n [fieldNames.electronicSalesSurCharges2ArtNr, 'surCharges2ArtNr'],\r\n [fieldNames.electronicSalesSurCharges2Percent, 'surCharges2Percent'],\r\n [fieldNames.electronicSalesSurCharges2FixValue, 'surCharges2FixValue'],\r\n [fieldNames.electronicSalesCharges, 'charges'],\r\n ]);\r\n\r\n ordersMap = new Map([\r\n [fieldNames.electronicSalesOrderFactor, 'orderFactor'],\r\n [fieldNames.electronicSalesOrderStockFactor, 'orderStockFactor'],\r\n [fieldNames.electronicSalesOrderPriceFactor, 'orderPriceFactor'],\r\n ]);\r\n\r\n othersMap = new Map([\r\n [fieldNames.electronicSalesShowParts, 'showParts'],\r\n [fieldNames.electronicSalesOptionTypeId, 'optionTypeId'],\r\n [fieldNames.electronicSalesAlternateArticleNumber, 'alternateArticleNumber'],\r\n ]);\r\n\r\n private _showHTMLEditor: Boolean = true;\r\n\r\n get showHTMLEditor() {\r\n return this._showHTMLEditor;\r\n }\r\n\r\n set showHTMLEditor(value) {\r\n this._showHTMLEditor = value;\r\n }\r\n\r\n constructor(public modelService: ModelService, public validationService: ValidationService) {\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n this.onValueChanged.emit(event);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'seo_component',\r\n templateUrl: './seo.component.html',\r\n styleUrls: ['./seo.component.css'],\r\n})\r\nexport class Seo_Component {\r\n @Input()\r\n public get metaTitel() : string {\r\n return this._metaTitle;\r\n }\r\n public set metaTitel(value: string) {\r\n this._metaTitle = value;\r\n this.initValues();\r\n } \r\n\r\n @Input()\r\n public get metaDescription() : string {\r\n return this._metaDescription;\r\n }\r\n public set metaDescription(value: string) {\r\n this._metaDescription = value;\r\n this.initValues();\r\n }\r\n\r\n _metaDescription: string;\r\n _metaTitle: string;\r\n metaString: string;\r\n maxValue: number;\r\n progressValue: number;\r\n progressColor: string;\r\n progressText: string;\r\n\r\n constructor(public translate: TranslateService) { }\r\n\r\n\r\n initValues() {\r\n this.getProgressValue();\r\n this.getProgressBarText();\r\n this.getProgressBarBackgroundColor(); ;\r\n }\r\n\r\n\r\n getProgressValue() {\r\n if (this.metaTitel != undefined) {\r\n this.metaString = this.metaTitel\r\n this.maxValue = 74\r\n } else {\r\n this.metaString = this.metaDescription\r\n this.maxValue = 147\r\n }\r\n const textLength = this.metaString?.length;\r\n if (textLength <= this.maxValue) {\r\n this.progressValue = (textLength / this.maxValue) * 100;\r\n } else {\r\n this.progressValue = 100;\r\n }\r\n }\r\n\r\n\r\n getProgressBarBackgroundColor() {\r\n\r\n if (this.metaTitel != undefined) {\r\n if (this.metaTitel.length <= 49) {\r\n this.progressColor = 'olivedrab';\r\n } else if (this.metaTitel.length <= 59) {\r\n this.progressColor = 'orange';\r\n } else {\r\n this.progressColor = 'firebrick';\r\n }\r\n } else {\r\n if (this.metaDescription.length <= 114) {\r\n this.progressColor = 'olivedrab';\r\n } else if (this.metaDescription.length <= 121) {\r\n this.progressColor = 'orange';\r\n } else {\r\n this.progressColor = 'firebrick';\r\n }\r\n }\r\n }\r\n\r\n getProgressBarText() {\r\n if (this.metaTitel != undefined) {\r\n if (this.metaTitel.length <= 49) {\r\n this.progressText = this.translate.instant(\"GUT\");\r\n } else if (this.metaTitel.length <= 59) {\r\n this.progressText = this.translate.instant(\"RISKANT\");\r\n } else {\r\n this.progressText = this.translate.instant(\"ZU LANG!\");\r\n }\r\n } else {\r\n if (this.metaDescription.length <= 114) {\r\n this.progressText = this.translate.instant(\"GUT\");\r\n } else if (this.metaDescription.length <= 121) {\r\n this.progressText = this.translate.instant(\"RISKANT\");\r\n } else {\r\n this.progressText = this.translate.instant(\"ZU LANG!\");\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"form\">\r\n <dx-progress-bar #progressBar\r\n id=\"progress-bar-status\"\r\n width=\"100%\"\r\n [ngClass]=\"progressColor\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [value]=\"progressValue\"\r\n >\r\n </dx-progress-bar>\r\n\r\n <div class=\"progress-info\" [ngStyle]=\"{ color: progressColor }\">\r\n {{ progressText }}\r\n </div>\r\n</div>\r\n","import { Component, Input} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'snippet',\r\n templateUrl: './snippet.component.html',\r\n styleUrls: ['./snippet.component.css'],\r\n})\r\n\r\nexport class SnippetComponent {\r\n isPopupVisible: boolean;\r\n @Input() metaTitel: string;\r\n @Input() metaDescription: string;\r\n\r\n constructor(public translate: TranslateService) { }\r\n}\r\n","<div class=\"sidebar\"> </div>\r\n<div class=\"desktop-view\">\r\n <p>{{ 'www.ihr-shop.de' | translate }}</p>\r\n <h1>{{ metaTitel }}</h1>\r\n <p>{{ metaDescription }}</p>\r\n</div>\r\n\r\n<div class=\"mobile-view\">\r\n <p>{{ 'www.ihr-shop.de' | translate }}</p>\r\n <h1>{{ metaTitel }}</h1>\r\n <p>{{ metaDescription }}</p>\r\n</div>\r\n","<div class=\"dx-fieldset\">\r\n <dx-validation-group id=\"productValidationGroup\">\r\n <!--MetaTitle-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.metaTitel?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Meta Titel' | translate }}\"\r\n field=\"META_TITLE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.metaTitel\"\r\n [readOnly]=\"readOnlyForLinkedFields('META_TITLE') || readOnly('seoTitle')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('META_TITLE')\"\r\n valueChangeEvent=\"keyup\"\r\n (onValueChanged)=\"update($event, 'META_TITLE')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('META_TITLE')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n <seo_component *ngIf=\"model?.metaTitel?.length >0\" [metaTitel]=\"model.metaTitel\"></seo_component>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--MetaDescription-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.metaDescription?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Meta Beschreibung' | translate }}\"\r\n field=\"META_DESCRIPTION\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"model.metaDescription\"\r\n [readOnly]=\"readOnlyForLinkedFields('META_DESCRIPTION') || readOnly('seoDescription')\"\r\n [height]=\"130\"\r\n (onValueChanged)=\"update($event, 'META_DESCRIPTION')\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('META_DESCRIPTION')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-area>\r\n <seo_component *ngIf=\"model?.metaDescription?.length > 0\" [metaDescription]=\"model.metaDescription\"></seo_component>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n <div>\r\n <snippet *ngIf=\"model?.metaTitel?.length >0 || model?.metaDescription?.length > 0\" [metaTitel]=\"model.metaTitel\" [metaDescription]=\"model.metaDescription\"></snippet>\r\n </div>\r\n </dx-validation-group>\r\n</div>\r\n\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from '../../Model/catalog/product';\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"seo\",\r\n templateUrl: \"seo.html\",\r\n styleUrls: [\"./seo.css\", \"template.css\"]\r\n})\r\nexport class SEO {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n constructor(public userManagement: UserManagementService, public catalogService: CatalogService, public validationService: ValidationService) { }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n //// Im Übersetzungsmodus nicht anzeigen\r\n //if (this.hasTranslation) {\r\n // return false;\r\n //}\r\n\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = '-1', element: string = '-1', event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = '-1', element: string = '-1'): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-toolbar *ngIf=\"!templateView && hasLines() && canView('WAWI_CreateLines')\">\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Bezeichnungen erzeugen' | translate, onClick: createLines }\"></dxi-item>\r\n</dx-toolbar>\r\n\r\n<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl *ngIf=\"modelService.loginService.wawiSettings.hasLine1\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.wawi?.line1?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bezeichnung' | translate }} 1\"\r\n field=\"LINE_1\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.wawi.line1\"\r\n [readOnly]=\"readOnlyForLinkedFields('LINE_1')|| readOnly('WAWI_LINE_1')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('LINE_1')\"\r\n (onValueChanged)=\"update($event, 'LINE_1')\"\r\n [maxLength]=\"modelService.loginService.wawiSettings.line1Length\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl *ngIf=\"modelService.loginService.wawiSettings.hasLine2\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.wawi?.line2?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bezeichnung' | translate }} 2\"\r\n field=\"LINE_2\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.wawi.line2\"\r\n [maxLength]=\"modelService.loginService.wawiSettings.line2Length\"\r\n [readOnly]=\"readOnlyForLinkedFields('LINE_2') || readOnly('WAWI_LINE_2')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('LINE_1')\"\r\n (onValueChanged)=\"update($event, 'LINE_2')\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl *ngIf=\"modelService.loginService.wawiSettings.hasLine3\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.wawi?.line3?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bezeichnung' | translate }} 3\"\r\n field=\"LINE_3\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.wawi.line3\"\r\n [maxLength]=\"modelService.loginService.wawiSettings.line3Length\"\r\n [readOnly]=\"readOnlyForLinkedFields('LINE_3')|| readOnly('WAWI_LINE_3')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('LINE_3')\"\r\n (onValueChanged)=\"update($event, 'LINE_3')\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl *ngIf=\"modelService.loginService.wawiSettings.hasLine4\"\r\n [(model)]=\"model\"\r\n [maxLength]=\"modelService.loginService.wawiSettings.line4Length\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.wawi?.line4?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bezeichnung' | translate }} 4\"\r\n field=\"LINE_4\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.wawi.line4\"\r\n [maxLength]=\"modelService.loginService.wawiSettings.line4Length\"\r\n [readOnly]=\"readOnlyForLinkedFields('LINE_4')|| readOnly('WAWI_LINE_4')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('LINE_4')\"\r\n (onValueChanged)=\"update($event, 'LINE_4')\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n</div>\r\n\r\n<div *ngFor=\"let customField of model.wawi.customFields\">\r\n <div class=\"dx-fieldset\">\r\n <div [ngSwitch]=\"getFieldType(customField.order)\">\r\n <div class=\"np-field\">\r\n\r\n <!--{{customField.order}}\r\n {{showPlaceLabel(customField.order)}}-->\r\n\r\n <np-inputControl *ngSwitchCase=\"'String'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"customField?.stringValue?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"customField.stringValue\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())|| readOnly('CUSTOM_FIELD')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())\"\r\n (onValueChanged)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\">\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n\r\n <np-inputControl *ngSwitchCase=\"'Number'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"customField?.numberValue != null\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"customField.numberValue\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())|| readOnly('CUSTOM_FIELD')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())\"\r\n (onValueChanged)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n\r\n <np-inputControl *ngSwitchCase=\"'Boolean'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\">\r\n <dx-switch (onValueChanged)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\"\r\n [(value)]=\"customField.boolValue\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString()) || readOnly('CUSTOM_FIELD')\"\r\n switchedOffText=\"{{ 'Nein' | translate }}\"\r\n switchedOnText=\"{{ 'Ja' | translate }}\">\r\n </dx-switch>\r\n </div>\r\n </np-inputControl>\r\n\r\n <np-inputControl *ngSwitchCase=\"'Mapping'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"customField?.listId != undefined\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n [suppressPlaceLabel]=\"false\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [dataSource]=\"wawiListDataSource\"\r\n [(value)]=\"customField.listId\"\r\n displayExpr=\"listName\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"\r\n [searchEnabled]=\"true\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())|| readOnly('CUSTOM_FIELD')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())\"\r\n (onValueChanged)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\"></dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n\r\n <np-inputControl *ngSwitchCase=\"'List'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"customField?.elementId != undefined\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n [suppressPlaceLabel]=\"false\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [dataSource]=\"getListElements(customField)\"\r\n [(value)]=\"customField.elementId\"\r\n displayExpr=\"value\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"\r\n [searchEnabled]=\"true\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())|| readOnly('CUSTOM_FIELD')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())\"\r\n (onValueChanged)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\"></dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n\r\n <np-inputControl *ngSwitchCase=\"'Html'\"\r\n [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"customField?.stringValue?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event, customField.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n [labelText]=\"getLabel(customField.order)\"\r\n field=\"CUSTOM_FIELD\"\r\n [system]=\"customField.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-html-editor class=\"w-100\"\r\n [(value)]=\"customField.stringValue\"\r\n [readOnly]=\"readOnlyForLinkedFields('CUSTOM_FIELD', customField.order.toString())|| readOnly('CUSTOM_FIELD')\"\r\n (onFocusOut)=\"update($event, 'CUSTOM_FIELD', customField.order.toString())\"\r\n allowSoftLineBreak=\"true\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"link\"></dxi-item>\r\n </dxo-toolbar>\r\n \r\n </dx-html-editor>\r\n </div>\r\n </np-inputControl>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\nimport { WawiIntegration } from \"../../../Model/Catalog/WawiIntegration\";\r\nimport { WawiList } from \"../../../Model/wawi/WawiList\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { WawiListService } from \"../../../Services/wawiList.service\";\r\n\r\n\r\n@Component({\r\n selector: \"wawi\",\r\n templateUrl: \"wawi.component.html\",\r\n styleUrls: [\"wawi.component.css\", \"../template.css\"]\r\n})\r\nexport class WawiComponent {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n wawiLists: WawiList[];\r\n wawiListDataSource: DataSource;\r\n wawiListDataSourceMap = new Map<string, DataSource>();\r\n\r\n constructor(public modelService: ModelService, public userManagement: UserManagementService, public wawiListService: WawiListService) {\r\n this.createLines = this.createLines.bind(this);\r\n if (!this.model.wawi) {\r\n this.model.wawi = new WawiIntegration();\r\n }\r\n\r\n this.wawiListService.getAllLists(this.modelService.loginService.currentUser.customerId).subscribe(result => {\r\n this.wawiLists = result;\r\n this.wawiListDataSource = new DataSource({\r\n store: result,\r\n paginate: true,\r\n pageSize: 5\r\n });\r\n var currentFields = [];\r\n this.modelService.loginService.wawiSettings.customFields.forEach(field => {\r\n var customWawiField = this.model.wawi.customFields.find(customWawiField => customWawiField.order == field.order);\r\n if (field.fieldType == \"List\") {\r\n var list = this.wawiLists.find(wawiList => wawiList.id == field.listId);\r\n var dataSource = new DataSource({\r\n store: list.fields,\r\n paginate: true,\r\n pageSize: 5\r\n });\r\n this.wawiListDataSourceMap.set(field.listId, dataSource);\r\n customWawiField.listId = field.listId;\r\n }\r\n currentFields.push(customWawiField);\r\n });\r\n this.model.wawi.customFields = currentFields;\r\n });\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n\r\n\r\n // not used??\r\n showPlaceLabel(order: number): boolean {\r\n return false;\r\n }\r\n\r\n getLabel(order: number): string {\r\n let field = this.modelService.loginService.wawiSettings.customFields.find(x => x.order === order);\r\n if (field) {\r\n return field.name;\r\n }\r\n return \"\";\r\n }\r\n\r\n getFieldType(order: number): string {\r\n let field = this.modelService.loginService.wawiSettings.customFields.find(x => x.order === order);\r\n if (field) {\r\n return field.fieldType;\r\n }\r\n return \"\";\r\n }\r\n\r\n createLines() {\r\n this.modelService.productService.createLines(this.model).subscribe((result: Product) => {\r\n\r\n this.model = this.modelService.catalogService.setProduct(result);\r\n\r\n });\r\n\r\n }\r\n\r\n hasLines(): boolean {\r\n if (this.modelService.loginService.wawiSettings.hasLine1 ||\r\n this.modelService.loginService.wawiSettings.hasLine2 ||\r\n this.modelService.loginService.wawiSettings.hasLine3 ||\r\n this.modelService.loginService.wawiSettings.hasLine4)\r\n return true;\r\n return false;\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(identifier: string, order: string = \"-1\") {\r\n if (order)\r\n this.elementSelected.emit(`${identifier}_${order}`);\r\n else\r\n this.elementSelected.emit(`${identifier}`);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n //// Im Übersetzungsmodus nicht anzeigen\r\n //if (this.hasTranslation) {\r\n // return false;\r\n //}\r\n\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n\r\n getListElements(name) {\r\n var defaultDataSource = new DataSource({\r\n store: []\r\n });\r\n\r\n let customField = this.modelService.loginService.wawiSettings.customFields.find(x => x.order == name.order);\r\n if (customField == undefined) {\r\n return defaultDataSource;\r\n }\r\n let result = this.wawiListDataSourceMap.get(customField.listId);\r\n if (result == undefined) {\r\n return defaultDataSource;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","<dx-validation-group id=\"productValidationGroup\">\r\n <div class=\"dx-fieldset d-flex flex-row\">\r\n\r\n <div class=\"flex-fill pr-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Biozidbehandeltes Produkt' | translate }}\"\r\n field=\"IS_BIOCIDAL_PRODUCT\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isBiocidalProduct\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_BIOCIDAL_PRODUCT') || readOnly('legalBiocidalProduct')\"\r\n [fieldName]=\"validationService.fieldNames.isBiocidalProduct\"\r\n (onValueChanged)=\"update($event, 'IS_BIOCIDAL_PRODUCT')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Selbstbedienungsverbot relevant' | translate }}\"\r\n field=\"IS_SELFSERVICE_FORBIDDEN\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isSelfServiceForbidden\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_SELFSERVICE_FORBIDDEN') || readOnly('legalSelfserviceForbidden')\"\r\n [fieldName]=\"validationService.fieldNames.isSelfServiceForbidden\"\r\n (onValueChanged)=\"update($event, 'IS_SELFSERVICE_FORBIDDEN')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Fertigpack Verordnung relevant ' | translate }}\"\r\n field=\"IS_FERTIGPACKV\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isFertigpackv\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_FERTIGPACKV') || readOnly('legalFertigPackV')\"\r\n [fieldName]=\"validationService.fieldNames.isFertigpackv\"\r\n (onValueChanged)=\"update($event, 'IS_FERTIGPACKV')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Ökodesign EVPG ENVKG relevant' | translate }}\"\r\n field=\"IS_OEKODESIGN_EVPG_ENVKG\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isOekodesignEvpgEnvkg\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_OEKODESIGN_EVPG_ENVKG') || readOnly('legalOekodesign')\"\r\n [fieldName]=\"validationService.fieldNames.isOekodesignEvpg\"\r\n (onValueChanged)=\"update($event, 'IS_OEKODESIGN_EVPG_ENVKG')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Grundstoffüberwachung relevant' | translate }}\"\r\n field=\"IS_COMMODITIES_CONTROLL\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isCommoditiesControll\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_COMMODITIES_CONTROLL')|| readOnly('legalCommoditiesControll')\"\r\n [fieldName]=\"validationService.fieldNames.isCommoditiesControll\"\r\n (onValueChanged)=\"update($event, 'IS_COMMODITIES_CONTROLL')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'DetergenzienV relevantes Produkt' | translate }}\"\r\n field=\"IS_DETERGENZIENV\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isDetergenzienv\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_DETERGENZIENV') || readOnly('legalDetergenzienV')\"\r\n [fieldName]=\"validationService.fieldNames.isDetergenzienv\"\r\n (onValueChanged)=\"update($event, 'IS_DETERGENZIENV')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Kosmetik Verordnung relevantes Produkt' | translate }}\"\r\n field=\"IS_KOSMETIKV\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isKosmetikv\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_KOSMETIKV')|| readOnly('legalKosmetikV')\"\r\n [fieldName]=\"validationService.fieldNames.isKosmetikv\"\r\n (onValueChanged)=\"update($event, 'IS_KOSMETIKV')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.hazardousMaterialClassId?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Gefahrenstoffklasse' | translate }}\"\r\n field=\"HAZMAT_ClASS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [items]=\"hazmatClasses\"\r\n placeholder=\"\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"model.productLogistic.hazardousMaterialClassId\"\r\n [readOnly]=\"readOnlyForLinkedFields('HAZMAT_ClASS') || readOnly('legalHazmatClass')\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n noDataText=\"{{ 'Keine Gefahrenstoffklassen angelegt.' | translate }}\"\r\n (onValueChanged)=\"update($event, 'HAZMAT_ClASS')\">\r\n \r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('HAZMAT_ClASS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"flex-fill pl-3 w-50\">\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'CE GS relevantes Produkt' | translate }}\"\r\n field=\"IS_CE_GS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isCeGs\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_CE_GS') || readOnly('legalCeGs')\"\r\n [fieldName]=\"validationService.fieldNames.isCeGs\"\r\n (onValueChanged)=\"update($event, 'IS_CE_GS')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'WEEE ROHS EAR relevant' | translate }}\"\r\n field=\"IS_WEEE_ROHS_EAR\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isWeeeRohsEar\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_WEEE_ROHS_EAR') || readOnly('legalWEEROHSEAR')\"\r\n [fieldName]=\"validationService.fieldNames.isWeeeRohsEar\"\r\n (onValueChanged)=\"update($event, 'IS_WEEE_ROHS_EAR')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'REACH relevant' | translate }}\"\r\n field=\"IS_REACH\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isReach\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_REACH') || readOnly('legalReach')\"\r\n [fieldName]=\"validationService.fieldNames.isReach\"\r\n (onValueChanged)=\"update($event, 'IS_REACH')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'VerpackungsV relevantes Produkt' | translate }}\"\r\n field=\"IS_VERPACKUNGSV\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isVerpackungsv\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_VERPACKUNGSV') || readOnly('legalVerpackungsV')\"\r\n [fieldName]=\"validationService.fieldNames.isVerpackungsv\"\r\n (onValueChanged)=\"update($event, 'IS_VERPACKUNGSV')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Sicherheitsdatenblatt erforderlich' | translate }}\"\r\n field=\"IS_SECURITY_DATASHEET_NEEDED\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isSecurityDatasheetNeeded\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_SECURITY_DATASHEET_NEEDED') || readOnly('legalSecurityDatasheetNeeded')\"\r\n [fieldName]=\"validationService.fieldNames.isSecurityDatasheetNeeded\"\r\n (onValueChanged)=\"update($event, 'IS_SECURITY_DATASHEET_NEEDED')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Doppelverwendungsfähigkeit (dual use)' | translate }}\"\r\n field=\"IS_DUAL_USE\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isDualUse\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_DUAL_USE') || readOnly('legalDualUse')\"\r\n [fieldName]=\"validationService.fieldNames.isDualUse\"\r\n (onValueChanged)=\"update($event, 'IS_DUAL_USE')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [suppressPlaceLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'BattG relevant' | translate }}\"\r\n field=\"IS_BATTERIE_V\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"model.legalCharacteristic.isBatterieV\"\r\n [templateView]=\"templateView\"\r\n [readOnly]=\"readOnlyForLinkedFields('IS_BATTERIE_V') || readOnly('legalBatterieV')\"\r\n [fieldName]=\"validationService.fieldNames.isBatterieV\"\r\n (onValueChanged)=\"update($event, 'IS_BATTERIE_V')\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"model?.productLogistic?.warrantyClassId?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Garantieklasse' | translate }}\"\r\n field=\"WARRANTY_ClASS\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box [items]=\"warrantyClasses\"\r\n placeholder=\"\"\r\n [showClearButton]=\"true\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n [searchEnabled]=\"true\"\r\n [(value)]=\"model.productLogistic.warrantyClassId\"\r\n [readOnly]=\"readOnlyForLinkedFields('WARRANTY_ClASS') || readOnly('legalWarrantyClass')\"\r\n noDataText=\"{{ 'Keine Garantieklassen angelegt.' | translate }}\"\r\n (onValueChanged)=\"update($event, 'WARRANTY_ClASS')\">\r\n class=\"hint\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('WARRANTY_ClASS')\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</dx-validation-group>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { HazmatClass } from '../../Model/Catalog/HazmatClass';\r\nimport { WarrantyClass } from '../../Model/Catalog/WarrantyClass';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"productLegal\",\r\n templateUrl: \"productLegal.component.html\",\r\n styleUrls: [\"./productLegal.component.css\"]\r\n})\r\nexport class ProductLegalComponent {\r\n @Input() model: Product = new Product();\r\n @Input() showLinkButtons: Boolean = false;\r\n\r\n @Input() templateView: Boolean = false;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() warrantyClasses: WarrantyClass[] = [];\r\n @Input() hazmatClasses: HazmatClass[] = [];\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n constructor(public validationService: ValidationService, public userManagement: UserManagementService, public catalogService: CatalogService) { }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, field?: string, system: string = '-1', element: string = '-1') {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (field != null) {\r\n var isLinked = this.model.isFieldLinked(field, system, element);\r\n if (isLinked && this.model.isChild != null && this.model.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n //// Im Übersetzungsmodus nicht anzeigen\r\n //if (this.hasTranslation) {\r\n // return false;\r\n //}\r\n\r\n return this.model.hasMasterOrChild();\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = '-1', element: string = '-1'): boolean {\r\n return this.model.isFieldLinked(field, system, element);\r\n }\r\n\r\n public toggleLinkedField(field: string, system: string = '-1', element: string = '-1', event = null) {\r\n var changed = this.model.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.model.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.model.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n //event.forceTreeRefresh = true;\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = '-1', element: string = '-1'): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.model.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return !this.isVirtualCatalog() && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-data-grid [(dataSource)]=\"generatedUnits\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\">\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"false\"\r\n [allowDeleting]=\"false\"\r\n [allowAdding]=\"false\"\r\n [useIcons]=\"true\">\r\n </dxo-editing>\r\n\r\n <dxi-column dataField=\"packingUnitDescr\" caption=\"{{ 'EinheitenCodeBeschreibung' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"packingUnitCode\" caption=\"{{ 'EinheitenCode' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"amountContentUnit\" caption=\"{{ 'Menge Einheitencode' | translate }}\"></dxi-column>\r\n\r\n\r\n</dx-data-grid>\r\n\r\n\r\n\r\n<dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [(dataSource)]=\"product.orderDetail.packingUnits\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Einheiten gepflegt' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onContentReady)=\"onContentReady()\"\r\n (onRowRemoved)=\"delete($event)\">\r\n\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"true\"\r\n [allowDeleting]=\"true\"\r\n [allowAdding]=\"false\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wirklich löschen' | translate }}\" confirmDeleteTitle=\"{{ 'EinheitenCode' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newSupplierUnitButtonTemplate'\">\r\n <dx-button *ngIf=\"canView('AddSupplierUnit')\" stylingMode=\"text\" [disabled]=\"updateLock\" type=\"default\" text=\"{{ 'Neuer Einheitencode' | translate }}\" (onClick)=\"add()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'generateMissingCodesButtonTemplate'\">\r\n <dx-button *ngIf=\"canView('GenerateMissingUnits') && modelService.loginService.hasAddonGevis\" stylingMode=\"text\"\r\n [disabled]=\"updateLock\" type=\"default\" text=\"{{ 'Fehlende Codes Generieren' | translate }}\" (onClick)=\"generateMissingCodes()\"></dx-button>\r\n </div>\r\n\r\n\r\n <dxo-state-storing [enabled]=\"false\" type=\"localStorage\" storageKey=\"SupplierPackingUnits\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"order\" dataType=\"number\" caption=\"{{ 'Order' | translate }}\" [allowEditing]=\"false\" [sortIndex]=\"0\"></dxi-column>\r\n\r\n\r\n <dxi-column dataField=\"packingUnitCode\" caption=\"{{ 'EinheitenCode' | translate }}\" cellTemplate=\"packingUnitCodeTemplate\" editCellTemplate=\"packingUnitCodeTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let unit of 'packingUnitCodeTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"unit.data.packingUnitCode?.length > 0\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EinheitenCode' | translate }}\"\r\n field=\"PACKING_UNIT_CODE\"\r\n [system]=\"unit.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"unit.data.packingUnitCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('PACKING_UNIT_CODE',unit.data.order.toString()) || readOnly('PACKING_UNIT_CODE')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_ID', unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event, 'PACKING_UNIT_CODE', unit.data.order.toString())\">\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n\r\n <dxi-column caption=\"{{ 'GevisMapping' | translate}}\" cellTemplate=\"gevisMappingTemplate\" editCellTemplate=\"gevisMappingTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let unit of 'gevisMappingTemplate'\">\r\n <dx-text-box [value]=\"getGevisMappedCode(unit.data.packingUnitCode)\" [readOnly]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n\r\n\r\n <dxi-column dataField=\"amountContentUnit\" caption=\"{{ 'Menge Basiseinheit' | translate }}\" cellTemplate=\"amountContentUnitTemplate\" editCellTemplate=\"amountContentUnitTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let unit of 'amountContentUnitTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"unit.data.amountContentUnit != null\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'EinheitenCode' | translate }}\"\r\n field=\"PACKING_UNIT_AMOUNT_CONTENT_UNIT\"\r\n [system]=\"unit.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"unit.data.amountContentUnit\"\r\n [readOnly]=\"readOnlyForLinkedFields('PACKING_UNIT_AMOUNT_CONTENT_UNIT',unit.data.order.toString()) || readOnly('PACKING_UNIT_AMOUNT_CONTENT_UNIT')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PACKING_UNIT_AMOUNT_CONTENT_UNIT', unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event, 'PACKING_UNIT_AMOUNT_CONTENT_UNIT', unit.data.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"quantityMin\" caption=\"{{ 'Mindestmenge' | translate }}\" cellTemplate=\"quantityMinTemplate\" editCellTemplate=\"quantityMinTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let unit of 'quantityMinTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"unit.data.quantityMin != null\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Mindestmenge' | translate }}\"\r\n field=\"PACKING_UNIT_QUANTITY_MIN\"\r\n [system]=\"unit.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"unit.data.quantityMin\"\r\n [readOnly]=\"readOnlyForLinkedFields('PACKING_UNIT_QUANTITY_MIN',unit.data.order.toString()) || readOnly('PACKING_UNIT_QUANTITY_MIN')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PACKING_UNIT_QUANTITY_MIN', unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event, 'PACKING_UNIT_QUANTITY_MIN', unit.data.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"quantityMax\" caption=\"{{ 'Höchtsmenge' | translate }}\" cellTemplate=\"quantityMaxTemplate\" editCellTemplate=\"quantityMaxTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let unit of 'quantityMaxTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"unit.data.quantityMax != null\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Mindestmenge' | translate }}\"\r\n field=\"PACKING_UNIT_QUANTITY_MAX\"\r\n [system]=\"unit.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box [(value)]=\"unit.data.quantityMax\"\r\n [readOnly]=\"readOnlyForLinkedFields('PACKING_UNIT_QUANTITY_MAX',unit.data.order.toString()) || readOnly('PACKING_UNIT_QUANTITY_MAX')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PACKING_UNIT_QUANTITY_MAX', unit.data.order.toString())\"\r\n (onValueChanged)=\"update($event, 'PACKING_UNIT_QUANTITY_MAX', unit.data.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n</dx-data-grid>\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { PackingUnit } from \"../../../../Model/Catalog/PackingUnit\";\r\nimport { Product } from \"../../../../Model/Catalog/product\";\r\nimport { CustomerService } from \"../../../../Services/customer.service\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { ProductService } from \"../../../../Services/CatalogManagement/product.service\";\r\nimport { TemplateService } from \"../../../../Services/template.service\";\r\nimport { UserManagementService } from \"../../../../Services/userManagment.service\";\r\nimport { WawiListService } from \"../../../../Services/wawiList.service\";\r\nimport { WawiListElement } from \"../../../../Model/wawi/WawiList\";\r\n\r\n\r\n@Component({\r\n selector: \"supplierPackingUnits\",\r\n templateUrl: \"supplierPackingUnits.component.html\"\r\n})\r\nexport class SupplierPackingUnits implements OnInit {\r\n @Input() units: PackingUnit[] = [];\r\n @Input() contentUnit: number;\r\n @Input() orderUnit: number;\r\n @Input() noCuPerOU: number;\r\n\r\n\r\n\r\n @Input() product: Product = null;\r\n @Input() isTemplate: boolean = false;\r\n @Input() templateView: boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Input() exportMode: boolean = false;\r\n @Input() showLinkButtons: boolean = false;\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n updateLock = false;\r\n gevisMappingList: WawiListElement[];\r\n generatedUnits: PackingUnit[] = [];\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public userManagement: UserManagementService, public wawiListService: WawiListService,\r\n public customerService: CustomerService, public productService: ProductService) {\r\n this.add = this.add.bind(this);\r\n this.update = this.update.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.getGevisMappedCode = this.getGevisMappedCode.bind(this);\r\n this.generateMissingCodes = this.generateMissingCodes.bind(this);\r\n\r\n wawiListService.getListByName(\"EinheitenCodes\", modelService.loginService.currentCustomer.id).toPromise().then((list) => {\r\n this.gevisMappingList = list.fields;\r\n }).catch((e) => {\r\n console.log(e);\r\n });\r\n\r\n\r\n }\r\n ngOnInit(): void {\r\n this.generatedUnits.push(new PackingUnit(1, this.product.orderDetail.contentUnit, \"Basis Einheit\", 1, 1, 1, 1));\r\n this.generatedUnits.push(new PackingUnit(2, this.product.orderDetail.orderUnit, \"Bestell Einheit\", parseInt(this.product.orderDetail.noCuPerOu), 1, parseInt(this.product.orderDetail.noCuPerOu), 1));\r\n }\r\n\r\n get newOrder(): number {\r\n let newOrder = 1;\r\n for (const unit of this.product.orderDetail.packingUnits) {\r\n if (unit.order == newOrder) {\r\n newOrder++;\r\n }\r\n }\r\n return newOrder;\r\n }\r\n\r\n getGevisMappedCode(code: string) {\r\n if (this.gevisMappingList == null)\r\n return \"\";\r\n let result = this.gevisMappingList.findIndex(x => x.key == code);\r\n return result == -1 ? \"\" : this.gevisMappingList[result].value ?? \"\";\r\n }\r\n\r\n add() {\r\n this.updateLock = true;\r\n this.product.orderDetail.packingUnits.push(new PackingUnit(this.newOrder, \"\", \"\"));\r\n this.update();\r\n }\r\n\r\n onContentReady() {\r\n this.updateLock = false;\r\n }\r\n\r\n update(event = null, field?: string, system: string = \"-1\", element: string = \"-1\"): void {\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n event.supplierPackingChanged = true;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n delete(event = null) {\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n event.dFields = this.templateService.allSupplierUnitFields;\r\n event.dDetailFields = null;\r\n event.dSystem = -1;\r\n event.dElement = -1;\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'generateMissingCodesButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newSupplierUnitButtonTemplate'\r\n });\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n templateSelect(identifier: string, order: string) {\r\n this.elementSelected.emit(`${identifier}_${order}`);\r\n }\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n canView(name: string): boolean {\r\n return (!this.isVirtualCatalog()) && this.userManagement.canView(name);\r\n }\r\n\r\n readOnly(name: string): boolean {\r\n return (this.isVirtualCatalog()) || !this.userManagement.canEdit(name);\r\n }\r\n\r\n readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (this.product != null && field != null) {\r\n var isLinked = this.product.isFieldLinked(field, system, element);\r\n if (isLinked && this.product.isChild != null && this.product.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n\r\n generateMissingCodes() {\r\n this.productService.generateMissingPackingCodes(this.product.id, this.product.customerId).subscribe(() => {\r\n this.modelService.catalogService.getProduct(this.product.id, this.product.customerId, this.modelService.catalogService.catalog.id).subscribe((result) => {\r\n this.product = result;\r\n })\r\n });\r\n }\r\n}\r\n","\r\n<div></div>\r\n<dx-accordion [dataSource]=\"unitCodeDataSource\"\r\n [collapsible]=\"true\" style=\"top: 20px;\">\r\n <div *dxTemplate=\"let company of 'item'\">\r\n <supplierPackingUnits [product]=\"product\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"templateView\"\r\n [(exportMode)]=\"exportMode\"\r\n (onValueChanged)=\"update($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [dragFilter]=\"'> *'\"\r\n (elementSelected)=\"elementSelected.emit($event)\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDeleted.emit($event)\"></supplierPackingUnits>\r\n </div>\r\n</dx-accordion>\r\n\r\n\r\n<div></div>\r\n\r\n<dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Lieferanten' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"onRowRemoving($event)\"\r\n (onRowRemoved)=\"delete($event)\"\r\n [masterDetail]=\"{ enabled: true, template: 'detail' }\"\r\n (onContentReady)=\"onContentReady()\"\r\n [customizeColumns]=\"customizeColumns\">\r\n <div *dxTemplate=\"let toolbaritem of 'newSupplierButtonTemplate'\">\r\n <dx-button *ngIf=\"renderNewSupplierButton()\" stylingMode=\"text\" [disabled]=\"updateLock\" type=\"default\" text=\"{{ 'Neuer Lieferant' | translate }}\" (onClick)=\"addSupplier()\"></dx-button>\r\n </div>\r\n\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"!readOnly('supplierUpdate')\" [allowDeleting]=\"allowDeleting && !readOnly('supplierDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"\" confirmDeleteTitle=\"\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"suppliersStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxo-toolbar>\r\n <dxi-item *ngIf=\"!templateView || showDragHandle\" location=\"after\">\r\n <div *dxTemplate>\r\n <div class=\"d-flex flex-row\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"true\"\r\n [suppressTranslation]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElement)]=\"selectedElement\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'HauptLieferant' | translate }}\"\r\n field=\"MAINSUPPLIER_ID\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box width=\"225\"\r\n [items]=\"supplierNames\"\r\n [value]=\"mainSupplierName\"\r\n (onSelectionChanged)=\"mainSupplierChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <dxi-column dataField=\"order\" caption=\"{{ 'Order' | translate }}\" [width]=\"70\" [allowEditing]=\"true\" cellTemplate=\"orderTemplate\" editCellTemplate=\"orderTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'orderTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.order != null\"\r\n [suppressTranslation]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Order' | translate }}\"\r\n field=\"SUPPLIER_ORDER\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"false\"\r\n [dragFilter]=\"dragFilter\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box *ngIf=\"showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"supplier.data.order\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasSupplierFieldLinked(supplier.data.order.toString())\"\r\n [readOnly]=\"hasSupplierFieldLinked(supplier.data.order.toString()) || readOnly('SUPPLIER_ORDER')\"\r\n [showClearButton]=\"false\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_ORDER', supplier.data.order.toString())\">\r\n </dx-number-box>\r\n <dx-number-box *ngIf=\"!showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"supplier.data.order\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!templateView\"\r\n [readOnly]=\"readOnly('SUPPLIER_ORDER')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_ORDER', supplier.data.order.toString())\">\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <dxi-column dataField=\"supplierId\" caption=\"{{ 'Nummer' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"supplierIdTemplate\" editCellTemplate=\"supplierIdTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'supplierIdTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.supplierId?.length > 0\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Nummer' | translate }}\"\r\n field=\"SUPPLIER_ID\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.supplierId\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_ID', supplier.data.order.toString()) || readOnly('SUPPLIER_ID')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_ID', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_ID', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_ID', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"supplierName\" caption=\"{{ 'Name' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"supplierNameTemplate\" editCellTemplate=\"supplierNameTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'supplierNameTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.supplierName?.length > 0\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Name' | translate }}\"\r\n field=\"SUPPLIER_NAME\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.supplierName\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_NAME', supplier.data.order.toString()) || readOnly('SUPPLIER_NAME')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_NAME', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_NAME', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_NAME', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"deliveryTime\" caption=\"{{ 'Lieferzeit' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"deliveryTimeTemplate\" editCellTemplate=\"deliveryTimeTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'deliveryTimeTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.deliveryTime != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Lieferzeit' | translate }}\"\r\n field=\"SUPPLIER_DELIVERY_TIME\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box class=\"inDataGrid\"\r\n [(value)]=\"supplier.data.deliveryTime\"\r\n [showSpinButtons]=\"!templateView\"\r\n [readOnly]=\"readOnly('SUPPLIER_DELIVERY_TIME')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_DELIVERY_TIME', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_DELIVERY_TIME', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"price\" caption=\"{{ 'Preis' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"priceTemplate\" editCellTemplate=\"priceTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'priceTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.price != null\"\r\n [suppressLabel]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Preis' | translate }}\"\r\n field=\"SUPPLIER_PRICE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box class=\"inDataGrid\"\r\n format=\"#0.00\"\r\n [(value)]=\"supplier.data.price\"\r\n [readOnly]=\"readOnly('SUPPLIER_PRICE')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_PRICE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PRICE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n </div>\r\n\r\n <dxi-column dataField=\"validFrom\" caption=\"{{ 'gültig ab' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"validFromTemplate\" editCellTemplate=\"validFromTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'validFromTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.validFrom != null\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'gültig ab' | translate }}\"\r\n field=\"SUPPLIER_VALID_FROM\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [(value)]=\"supplier.data.validFrom\"\r\n type=\"date\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_VALID_FROM', supplier.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_VALID_FROM', supplier.data.order.toString()) || readOnly('SUPPLIER_VALID_FROM')\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_VALID_FROM', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_VALID_FROM', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n\r\n <dxi-column dataField=\"validUntil\" caption=\"{{ 'gültig bis' | translate }}\" [allowEditing]=\"true\" cellTemplate=\"validUntilTemplate\" editCellTemplate=\"validUntilTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let supplier of 'validUntilTemplate'\">\r\n\r\n <div class=\"np-field w-100\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.validUntil != null\"\r\n [suppressToolTip]=\"true\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"templateSelect($event, supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'gültig bis' | translate }}\"\r\n field=\"SUPPLIER_VALID_UNTIL\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [(value)]=\"supplier.data.validUntil\"\r\n type=\"date\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_VALID_UNTIL', supplier.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_VALID_UNTIL', supplier.data.order.toString()) || readOnly('SUPPLIER_VALID_UNTIL')\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_VALID_UNTIL', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_VALID_UNTIL', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dxi-column [calculateCellValue]=\"calculateCurrentValue\"\r\n caption=\"{{ 'Aktuell' | translate }}\"\r\n [allowEditing]=\"false\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let supplier of 'detail'\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"flex-fill\">\r\n <form>\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.pid?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Artikelnummer' | translate }}\"\r\n field=\"PID\"\r\n [system]=\"supplier.data.order\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.pid\"\r\n [readOnly]=\"readOnlyForLinkedFields('PID', supplier.data.order.toString()) || readOnly('PID')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('PID', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'PID', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('PID', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.supplierProductDescription?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Lieferantenbezeichnung' | translate }}\"\r\n field=\"SUPPLIER_PRODUCT_DESC\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.supplierProductDescription\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_PRODUCT_DESC', supplier.data.order.toString()) || readOnly('SUPPLIER_PRODUCT_DESC')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_PRODUCT_DESC', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_PRODUCT_DESC', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PRODUCT_DESC', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.supplierProductDescriptionShort?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Kurzbezeichnung' | translate }}\"\r\n field=\"SUPPLIER_DESC_SHORT\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.supplierProductDescriptionShort\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_DESC_SHORT', supplier.data.order.toString()) || readOnly('SUPPLIER_DESC_SHORT')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_DESC_SHORT', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_DESC_SHORT', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_DESC_SHORT', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.discountGroupCode?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Rabattgruppencode' | translate }}\"\r\n field=\"SUPPLIER_DISCOUNT_GROUP_CODE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.discountGroupCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_DISCOUNT_GROUP_CODE', supplier.data.order.toString()) || readOnly('SUPPLIER_DISCOUNT_GROUP_CODE')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_DISCOUNT_GROUP_CODE', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_DISCOUNT_GROUP_CODE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_DISCOUNT_GROUP_CODE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.pricingUnitCode?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Preismenge' | translate }}\"\r\n field=\"SUPPLIER_PRICE_UNIT_CODE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.pricingUnitCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_PRICE_UNIT_CODE', supplier.data.order.toString()) || readOnly('SUPPLIER_PRICE_UNIT_CODE')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_PRICE_UNIT_CODE', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_PRICE_UNIT_CODE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PRICE_UNIT_CODE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.originalPriceAllocationUnitCode?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Originale Bestelleinheit' | translate }}\"\r\n field=\"SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.originalPriceAllocationUnitCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL', supplier.data.order.toString()) || readOnly('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE_ORIGINAL', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.priceAllocationUnitCode?.length > 0\"\r\n [suppressTranslation]=\"true\"\r\n [suppressToolTip]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"null\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Bestelleinheit' | translate }}\"\r\n field=\"SUPPLIER_PRICE_ALLOCATION_UNIT_CODE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.priceAllocationUnitCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE', supplier.data.order.toString()) || readOnly('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_PRICE_ALLOCATION_UNIT_CODE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PRICE_ALLOCATION_UNIT_CODE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"d-flex flex-row\">\r\n\r\n <div class=\"np-field w-75\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.internationalId > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Internationale ID' | translate }}\"\r\n field=\"SUPPLIER_INTERNATIONAL_ID\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-number-box *ngIf=\"showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"supplier.data.internationalId\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!hasSupplierFieldLinked(supplier.data.order.toString())\"\r\n [readOnly]=\"hasSupplierFieldLinked(supplier.data.order.toString()) || readOnly('SUPPLIER_INTERNATIONAL_ID')\"\r\n [showClearButton]=\"false\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_INTERNATIONAL_ID', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_INTERNATIONAL_ID', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n <dx-number-box *ngIf=\"!showLinkButtons\"\r\n class=\"inDataGrid\"\r\n [(value)]=\"supplier.data.internationalId\"\r\n [min]=\"1\"\r\n [showSpinButtons]=\"!templateView\"\r\n [readOnly]=\"readOnly('SUPPLIER_INTERNATIONAL_ID')\"\r\n [showClearButton]=\"false\"\r\n (onValueChanged)=\"update($event, null, supplier.data, 'SUPPLIER_INTERNATIONAL_ID', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_INTERNATIONAL_ID', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-number-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field w-25 pl-3\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.internationalIdType\"\r\n [suppressLabel]=\"true\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_INTERNATIONAL_ID_TYP\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"internationalPidType\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString()) || readOnly('SUPPLIER_INTERNATIONAL_ID_TYP')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString())\"\r\n [showDropDownButton]=\"!readOnlyForLinkedFields('SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString())\"\r\n [(value)]=\"supplier.data.internationalIdType\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString())\"\r\n (onSelectionChanged)=\"updateFromAutocomplete($event, 'SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_INTERNATIONAL_ID_TYP', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-autocomplete>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.contentUnitCode\"\r\n labelText=\"{{ 'Inhaltseinheit' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_CONTENT_UNIT_CODE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.contentUnitCode\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_CONTENT_UNIT_CODE', supplier.data.order.toString()) || readOnly('SUPPLIER_CONTENT_UNIT_CODE')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_CONTENT_UNIT_CODE', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_CONTENT_UNIT_CODE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_CONTENT_UNIT_CODE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.packingAmount\"\r\n labelText=\"{{ 'Verpackungmenge' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_PACKING_AMOUNT\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.packingAmount\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_PACKING_AMOUNT', supplier.data.order.toString()) || readOnly('SUPPLIER_PACKING_AMOUNT')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_PACKING_AMOUNT', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_PACKING_AMOUNT', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_PACKING_AMOUNT', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.orderIntervall\"\r\n labelText=\"{{ 'Bestellintervall' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_ORDER_INTERVALL\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.orderIntervall\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_ORDER_INTERVALL', supplier.data.order.toString()) || readOnly('SUPPLIER_ORDER_INTERVALL')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_ORDER_INTERVALL', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_ORDER_INTERVALL', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_ORDER_INTERVALL', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.minOrderAmount\"\r\n labelText=\"{{ 'Mindestbestellmenge' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_MIN_ORDER_AMOUNT\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"supplier.data.minOrderAmount\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_MIN_ORDER_AMOUNT', supplier.data.order.toString()) || readOnly('SUPPLIER_MIN_ORDER_AMOUNT')\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_MIN_ORDER_AMOUNT', supplier.data.order.toString())\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_MIN_ORDER_AMOUNT', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_MIN_ORDER_AMOUNT', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"false\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressContentWidth]=\"templateView\"\r\n labelText=\"{{ 'Auslaufprodukt' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_DISCONTINUED_PRODUCT\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot np-others\" style=\"width: 300px; height: 49px; padding-top: 12px; padding-left: 10px;\">\r\n <np-booleanRadioGroup [(value)]=\"supplier.data.discontinuedProduct\"\r\n [templateView]=\"templateView\"\r\n [fieldName]=\"validationService.fieldNames.supplierDiscontinuedProduct\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_DISCONTINUED_PRODUCT', supplier.data.order.toString()) || readOnly('SUPPLIER_DISCONTINUED_PRODUCT')\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_DISCONTINUED_PRODUCT', supplier.data.order.toString())\">\r\n </np-booleanRadioGroup>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"product\"\r\n [showLinkButtons]=\"showLinkButtons\"\r\n [showPlaceLabel]=\"supplier?.data?.discontinuedDate\"\r\n labelText=\"{{ 'Auslaufdatum' | translate }}\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n field=\"SUPPLIER_DISCONTINUED_DATE\"\r\n [system]=\"supplier.data.order.toString()\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-date-box [(value)]=\"supplier.data.discontinuedDate\"\r\n type=\"date\"\r\n [showClearButton]=\"!readOnlyForLinkedFields('SUPPLIER_DISCONTINUED_DATE', supplier.data.order.toString())\"\r\n [readOnly]=\"readOnlyForLinkedFields('SUPPLIER_DISCONTINUED_DATE', supplier.data.order.toString()) || readOnly('SUPPLIER_DISCONTINUED_DATE')\"\r\n displayFormat=\"dd.MM.yyyy\"\r\n (onValueChanged)=\"update($event, null, null, 'SUPPLIER_DISCONTINUED_DATE', supplier.data.order.toString())\">\r\n <dx-validator *ngIf=\"!templateView\" validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"async\" [validationCallback]=\"validationService.validateField('SUPPLIER_DISCONTINUED_DATE', supplier.data.order.toString())\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-date-box>\r\n </div>\r\n </np-inputControl>\r\n </div>\r\n <div></div>\t\t<!-- DUMMY; last DIV gets no margin -->\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n</dx-data-grid>\r\n\r\n\r\n\r\n\r\n\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\n\r\nimport { ViewService } from '../../../Services/view.service';\r\nimport { Product } from '../../../Model/Catalog/product';\r\nimport { ModelService } from '../../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Message } from '../../../Model/System/Message';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TemplateService } from \"../../../Services/template.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { Functions } from '../../../Services/functions';\r\nimport { ProductSupplier } from \"../../../Model/Catalog/ProductSupplier\";\r\nimport { ValidationService } from \"../../../Services/Validation/validation.service\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"productSuppliers\",\r\n templateUrl: \"productSupplier.component.html\",\r\n styleUrls: [\"./productSupplier.component.css\", \"../template.css\"]\r\n})\r\nexport class ProductSupplierComponent implements OnInit {\r\n @Input() model: ProductSupplier[] = [];\r\n @Input() product: Product = null;\r\n @Input() showLinkButtons: Boolean = false;\r\n @Input() catalogId: string = \"\";\r\n @Input() customerId: string = \"\";\r\n @Input() exportMode: Boolean = false;\r\n @Input() modelService: ModelService;\r\n @Input() isTemplate: Boolean = false;\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() reloadNedded = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n\r\n txtExportReportProductDatasheetShort: string;\r\n order: number = 0;\r\n newOrder: number = 0;\r\n updateLock: boolean = false;\r\n unitCodeDataSource = [];\r\n supplierNames = [];\r\n\r\n\r\n\r\n\r\n constructor(public templateService: TemplateService, public validationService: ValidationService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.addSupplier = this.addSupplier.bind(this);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.txtExportReportProductDatasheetShort = this.translate.instant(\"ReportProductDatasheetShort\");\r\n this.unitCodeDataSource.push(this.translate.instant(\"Einheiten\"))\r\n this.model.forEach(x => {\r\n x.guid = Functions.newGuid();\r\n });\r\n\r\n for (const productSupplier of this.model) {\r\n if (productSupplier.order > this.order && productSupplier.order < 1000) {\r\n this.newOrder = productSupplier.order;\r\n }\r\n }\r\n this.newOrder += 1;\r\n this.generateSupplierNames();\r\n }\r\n\r\n customizeColumns(columns) {\r\n columns.forEach(column => {\r\n column.showEditorAlways = true;\r\n });\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newSupplierButtonTemplate'\r\n });\r\n }\r\n\r\n onlyUnique(value, index, array) {\r\n return array.indexOf(value) === index;\r\n }\r\n\r\n\r\n generateSupplierNames() {\r\n let names = this.model.map(x => x.supplierName).filter(this.onlyUnique);\r\n names.push(this.translate.instant(\"Lieferant mit niedrigster Order\"));\r\n this.supplierNames= names;\r\n }\r\n\r\n get mainSupplierName() {\r\n if (this.product.mainSupplierId == null)\r\n return this.translate.instant(\"Lieferant mit niedrigster Order\")\r\n\r\n let mainSupplierName = this.model.find(x => x.supplierId == this.product.mainSupplierId)?.supplierName;\r\n if (mainSupplierName != null) {\r\n return mainSupplierName;\r\n } else {\r\n return \"Id:\" + this.product.mainSupplierId;\r\n }\r\n }\r\n\r\n mainSupplierChanged(e) {\r\n let mainSupplierId = this.model.find(x => x.supplierName == e.selectedItem)?.supplierId;\r\n if (mainSupplierId != null) {\r\n this.product.mainSupplierId = mainSupplierId;\r\n } else {\r\n this.product.mainSupplierId = null;\r\n }\r\n this.onValueChanged.emit();\r\n }\r\n\r\n calculateCurrentValue(data: { validFrom: string | null; validUntil: string | null }): boolean {\r\n const now = Date.now();\r\n const isValidFrom = data.validFrom === null || Date.parse(data.validFrom) < now;\r\n const isValidUntil = data.validUntil === null || Date.parse(data.validUntil) > now;\r\n return isValidFrom && isValidUntil;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n update(event = null, supplierChange?, data?, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n //Order wird bereits benutzt\r\n if (field == \"SUPPLIER_ORDER\") {\r\n let fs = this.model.filter(x => x.guid == data.guid)[0];\r\n let originalOrder = event.previousValue;\r\n let change = event.value > event.previousValue ? 1 : -1;\r\n while (this.model.filter(x => x.order == event.value).length > 1) {\r\n event.value += change;\r\n fs.order = event.value;\r\n }\r\n if (event.value < 1) {\r\n fs.order = originalOrder;\r\n return;\r\n }\r\n\r\n\r\n if (fs.order >= this.newOrder) {\r\n for (const supplier of this.model) {\r\n if (supplier.order > this.newOrder && supplier.order < 1000) {\r\n this.newOrder = supplier.order;\r\n }\r\n }\r\n this.newOrder += 1;\r\n }\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event && !event.supplierPackingChanged) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n }\r\n\r\n\r\n this.generateSupplierNames();\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n updateFromAutocomplete(event = null, field?: string, system: string = \"-1\", element: string = \"-1\") {\r\n if (event.event == undefined) {\r\n event.event = new Object(); // für den template editor erforderlich, da sonst keine default-items erstellt werden\r\n }\r\n\r\n // für den template editor erforderlich:\r\n if (event) {\r\n event.dField = field;\r\n event.dSystem = system;\r\n event.dElement = element;\r\n event.createTemplateItem = true;\r\n\r\n event.value = event.selectedItem; // value ist in diesem fall nicht gesetzt, darauf baut aber der template editor\r\n }\r\n\r\n\r\n this.generateSupplierNames();\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n delete(event = null) {\r\n\r\n let order = event.data.order;\r\n\r\n // Prüfen, ob irgend ein Feld dieses suppliers gelinked ist\r\n for (let supplierField of this.templateService.allSupplierFields) {\r\n if (this.product != null && this.product.isFieldLinked(supplierField, order, \"-1\")) {\r\n this.product.toggleLinkedField(supplierField, order, \"-1\");\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n\r\n // für den template editor erforderlich:\r\n event.dFields = this.templateService.allSupplierFields;\r\n event.dDetailFields = null;\r\n event.dSystem = order;\r\n event.dElement = -1;\r\n\r\n\r\n this.generateSupplierNames();\r\n\r\n this.elementDeleted.emit(event);\r\n }\r\n\r\n\r\n\r\n addSupplier() {\r\n this.updateLock = true;\r\n var supplier = new ProductSupplier();\r\n supplier.order = this.newOrder++;\r\n this.model.push(supplier);\r\n this.update();\r\n }\r\n\r\n onContentReady() {\r\n this.updateLock = false;\r\n }\r\n\r\n get allowDeleting() {\r\n //return !this.templateView;\r\n return true;\r\n }\r\n\r\n translateMessage(msg: string) {\r\n return this.translate.instant(msg);\r\n }\r\n\r\n getEncodedString(s: string) {\r\n return encodeURIComponent(s);\r\n }\r\n\r\n\r\n\r\n public onRowRemoving(e) {\r\n let order = e.data.supplierOrder;\r\n\r\n if (this.product != null && this.product.isChild && this.hasSupplierFieldLinked(order)) {\r\n // Löschen nicht erlaubt, INFO\r\n\r\n let txtNotAllowed = \"\";\r\n this.translate.get(\"DeleteLinkedFieldNotAllowed\").subscribe((text: string) => {\r\n txtNotAllowed = text;\r\n });\r\n\r\n this.modelService.systemService.notify(new Message(txtNotAllowed, \"info\"), 3000);\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n // Löschen erlaubt, Benutzerabfrage, ggf. Abbruch\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Wollen Sie den Lieferanten wirklich löschen\").subscribe((text: string) => {\r\n txtMsg = text;\r\n if (!txtMsg.endsWith(\"?\")) { // Übersetzungen sid nicht einheitlich gepflegt, werden aber auch an anderen Stellen so verwendet.\r\n txtMsg = txtMsg + \"?\";\r\n }\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => { return false; }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => { return true; }\r\n }\r\n ]\r\n });\r\n\r\n // Hier wird ein Promise zurück geliefert. Dies enthält den Return Value des (erst später!!)\r\n // ausgeführten onClick-Handlers des gedrückten Buttons im Dialog.\r\n // https://supportcenter.devexpress.com/ticket/details/t978828/datagrid-how-to-cancel-the-rowremoving-event\r\n e.cancel = myDialog.show();\r\n }\r\n\r\n\r\n\r\n //ExcelTemplate\r\n\r\n templateSelect(identifier: string, order: string) {\r\n this.elementSelected.emit(`${identifier}_${order}`);\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n public hasSupplierFieldLinked(system: string = \"-1\"): boolean {\r\n // Prüfen, ob irgend ein Feld dieses suppliers gelinked ist\r\n for (let supplierField of this.templateService.allSupplierFields) {\r\n if (this.product != null && this.product.isFieldLinked(supplierField, system, \"-1\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n public readOnlyForLinkedFields(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n // Wenn dies ein vom Master vererbtes Feld ist, soll es ReadOnly sein:\r\n if (this.product != null && field != null) {\r\n var isLinked = this.product.isFieldLinked(field, system, element);\r\n if (isLinked && this.product.isChild != null && this.product.isChild) { // Für einen Master darf es nicht ReadOnly werden!!\r\n return true;\r\n }\r\n }\r\n\r\n //return this.readOnly(productId);\r\n\r\n return false;\r\n }\r\n\r\n public hasMasterOrChildOrIsTranslated(): boolean {\r\n if (this.product != null) {\r\n return this.product.hasMasterOrChild();\r\n }\r\n return false;\r\n }\r\n\r\n public isFieldLinked(field: string, system: string = \"-1\", element: string = \"-1\"): boolean {\r\n if (this.product != null) {\r\n return this.product.isFieldLinked(field, system, element);\r\n }\r\n return false;\r\n }\r\n\r\n public toggleLinkedField(event = null, field: string, system: string = \"-1\", element: string = \"-1\") {\r\n var changed = this.product.toggleLinkedField(field, system, element);\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n\r\n\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n event.target.className = this.product.getClassForLinkedField(isNowLinked);\r\n\r\n if (this.product.isChild && isNowLinked) {\r\n event.forceReload = true;\r\n }\r\n\r\n\r\n\r\n if (field == \"supplier_PURPOSE\" || field == \"supplier_SOURCE\") {\r\n // Etwas schmutzig, aber sonst können wir den Refresh am Tree nicht antriggern.\r\n event.forceTreeRefresh = true;\r\n }\r\n\r\n\r\n\r\n // SAVE\r\n this.update(event, true);\r\n }\r\n\r\n public getInitialClassForLinkedField(field: string, system: string = \"-1\", element: string = \"-1\"): string {\r\n var isNowLinked = this.isFieldLinked(field, system, element);\r\n return this.product.getClassForLinkedField(isNowLinked);\r\n }\r\n\r\n get internationalPidType() {\r\n return ViewService.dropDownInternationalPidType;\r\n }\r\n\r\n canView(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product == null || !this.isVirtualCatalog()) && this.userManagement.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product != null && this.isVirtualCatalog()) || !this.userManagement.canEdit(name);\r\n }\r\n\r\n renderNewSupplierButton(): boolean {\r\n // Wenn product == null befinden wir uns im Katalog oder einer Kategorie.\r\n return (this.product == null || !this.isVirtualCatalog()) && this.canView('supplierNew');\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","<div class=\"dx-fieldset\">\r\n <dx-validation-group id=\"productValidationGroup\">\r\n\r\n <!--GROUP_STRING-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.groupString?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Kategorie' | translate }}\"\r\n field=\"GROUP_STRING\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.groupString\"\r\n [readOnly]=\"false\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\" class=\"hint\">\r\n <dx-validator validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie eine Kategorie an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--MASTER-->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.master?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Variantenzuordnung' | translate }}\"\r\n field=\"MASTER\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.master\"\r\n [readOnly]=\"false\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update($event)\" class=\"hint\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--DESCWITHOUTHTML-->\r\n <div *ngIf=\"exportMode\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.descWithoutHTML?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Langbeschreibung ohne HTML' | translate }}\"\r\n field=\"DESC_WITHOUT_HTML\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"model.descWithoutHTML\" [height]=\"130\" (onValueChanged)=\"update($event)\">\r\n </dx-text-area>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--FEATURE_LIST-->\r\n <div *ngIf=\"exportMode\" class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.featurelist?.length > 0\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Merkmalstabelle' | translate }}\"\r\n field=\"FEATURE_LIST\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"model.featurelist\" [height]=\"130\" (onValueChanged)=\"update($event)\">\r\n </dx-text-area>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"!exportMode\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"mimeUpdateMode?.length > 0\"\r\n labelText=\"{{ 'MIME_UPDATE_MODE' }}\"\r\n field=\"MIME_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsND\"\r\n [(value)]=\"mimeUpdateMode\"\r\n (onSelectionChanged)=\"mimeUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"!exportMode\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"featureUpdateMode?.length > 0\"\r\n labelText=\"{{ 'FEATURE_UPDATE_MODE' }}\"\r\n field=\"FEATURE_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsNDI\"\r\n [(value)]=\"featureUpdateMode\"\r\n (onSelectionChanged)=\"featureUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"!exportMode\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"priceUpdateMode?.length > 0\"\r\n labelText=\"{{ 'PRICE_UPDATE_MODE' }}\"\r\n field=\"PRICE_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsNDI\"\r\n [(value)]=\"priceUpdateMode\"\r\n (onSelectionChanged)=\"priceUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div *ngIf=\"!exportMode\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"supplierUpdateMode?.length > 0\"\r\n labelText=\"{{ 'SUPPLIER_UPDATE_MODE' }}\"\r\n field=\"SUPPLIER_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsNDI\"\r\n [(value)]=\"supplierUpdateMode\"\r\n (onSelectionChanged)=\"supplierUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"!exportMode && modelService.loginService.hasAddonUDX\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"udxUpdateMode?.length > 0\"\r\n labelText=\"{{ 'UDX_UPDATE_MODE' }}\"\r\n field=\"UDX_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsND\"\r\n [(value)]=\"udxUpdateMode\"\r\n (onSelectionChanged)=\"udxUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div> \r\n\r\n <div *ngIf=\"!exportMode\" class=\"np-field\">\r\n <np-inputControl [showPlaceLabel]=\"categoryUpdateMode?.length > 0\"\r\n labelText=\"{{ 'CATEGORY_UPDATE_MODE' }}\"\r\n field=\"CATEGORY_UPDATE_MODE\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-select-box #selectBox\r\n [items]=\"selectItemsND\"\r\n [(value)]=\"categoryUpdateMode\"\r\n (onSelectionChanged)=\"categoryUpdateModeChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n <!-- LINK -->\r\n <div class=\"np-field\">\r\n <np-inputControl [(model)]=\"model\"\r\n [showLinkButtons]=\"false\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n labelText=\"{{ 'Link zum Produkt' | translate }}\"\r\n field=\"PRODUCT_LINK\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [showPlaceLabel]=\"true\"\r\n [dragFilter]=\"dragFilter\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box value=\"https://app.nextpim.de/catalog/dc20c3eb-54cf-45b1-d321-08d9ced17bb0/62cfe77209291b7c9f9486f6/product/62cfe77309291b7c9f9486fa\"\r\n [readOnly]=\"true\"\r\n [showClearButton]=\"false\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n </dx-validation-group>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { ModelService } from \"../../Services/model.service\";\r\n\r\n\r\n@Component({\r\n selector: \"misc\",\r\n templateUrl: \"misc.html\",\r\n styleUrls: [\"./misc.css\", \"template.css\"]\r\n})\r\nexport class Misc {\r\n @Input() model: Product = null;\r\n\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Input() exportMode: Boolean = false;\r\n @Output() elementSelected = new EventEmitter<string>();\r\n\r\n @Input() showDragHandle: boolean = false;\r\n @Input() dragFilter: string = \"noDrag\";\r\n\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n\r\n constructor(public modelService: ModelService) { }\r\n\r\n update(event = null) {\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n selectItemsND = [\"NORMAL\", \"DELETE\"];\r\n selectItemsNDI = [\"NORMAL\", \"DELETE\", \"IGNORE_EMPTY_FIELDS\"];\r\n\r\n\r\n\r\n private _mimeUpdateMode: string = \"NORMAL\";\r\n\r\n get mimeUpdateMode(): string {\r\n return this._mimeUpdateMode;\r\n }\r\n\r\n @Input()\r\n set mimeUpdateMode(value: string) {\r\n this._mimeUpdateMode = value;\r\n }\r\n\r\n @Output() onMimeUpdateModeChanged = new EventEmitter<string>();\r\n\r\n mimeUpdateModeChanged(e) {\r\n this.onMimeUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _featureUpdateMode: string = \"NORMAL\";\r\n\r\n get featureUpdateMode(): string {\r\n return this._featureUpdateMode;\r\n }\r\n\r\n @Input()\r\n set featureUpdateMode(value: string) {\r\n this._featureUpdateMode = value;\r\n }\r\n\r\n @Output() onFeatureUpdateModeChanged = new EventEmitter<string>();\r\n\r\n featureUpdateModeChanged(e) {\r\n this.onFeatureUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _priceUpdateMode: string = \"NORMAL\";\r\n\r\n get priceUpdateMode(): string {\r\n return this._priceUpdateMode;\r\n }\r\n\r\n @Input()\r\n set priceUpdateMode(value: string) {\r\n this._priceUpdateMode = value;\r\n }\r\n\r\n @Output() onPriceUpdateModeChanged = new EventEmitter<string>();\r\n\r\n priceUpdateModeChanged(e) {\r\n this.onPriceUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n private _supplierUpdateMode: string = \"NORMAL\";\r\n\r\n get supplierUpdateMode(): string {\r\n return this._supplierUpdateMode;\r\n }\r\n\r\n @Input()\r\n set supplierUpdateMode(value: string) {\r\n this._supplierUpdateMode = value;\r\n }\r\n\r\n @Output() onSupplierUpdateModeChanged = new EventEmitter<string>();\r\n\r\n supplierUpdateModeChanged(e) {\r\n this.onSupplierUpdateModeChanged.emit(e);\r\n } \r\n\r\n\r\n\r\n private _categoryUpdateMode: string = \"NORMAL\";\r\n\r\n get categoryUpdateMode(): string {\r\n return this._priceUpdateMode;\r\n }\r\n\r\n @Input()\r\n set categoryUpdateMode(value: string) {\r\n this._categoryUpdateMode = value;\r\n }\r\n\r\n @Output() onCategoryUpdateModeChanged = new EventEmitter<string>();\r\n\r\n categoryUpdateModeChanged(e) {\r\n this.onCategoryUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n private _udxUpdateMode: string = \"NORMAL\";\r\n\r\n get udxUpdateMode(): string {\r\n return this._udxUpdateMode;\r\n }\r\n\r\n @Input()\r\n set udxUpdateMode(value: string) {\r\n this._udxUpdateMode = value;\r\n }\r\n\r\n @Output() onUdxUpdateModeChanged = new EventEmitter<string>();\r\n\r\n udxUpdateModeChanged(e) {\r\n this.onUdxUpdateModeChanged.emit(e);\r\n }\r\n}\r\n","<dx-tab-panel [dataSource]=\"pages\"\r\n [selectedIndex]=\"0\"\r\n [swipeEnabled]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [showNavButtons]=\"true\"\r\n [loop]=\"true\"\r\n (onSelectionChanged)=\"onTitleClick($event)\">\r\n <!-- <div *dxTemplate=\"let company of 'title'\">\r\n <span>{{company.title}}</span>\r\n <span *ngIf=\"company.type=='MAIN' && model.hintsActiv && !model.productInfosValid\" class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='PRICE' && model.hintsActiv && !model.productPriceValid\" class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='ORDER' && model.hintsActiv && (!validationService.validationResult.productOrderDetailsValid)\" class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='MIME' && model.hintsActiv && !model.productMediaValid\" class=\"glyphicon glyphicon-info-sign color3Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='FEAT' && model.hintsActiv && !model.productFeaturesValid\" class=\"glyphicon glyphicon-info-sign color4Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='LOGI' && model.hintsActiv && !model.productLogiticValid\" class=\"glyphicon glyphicon-info-sign color5Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='REFE' && model.hintsActiv && !model.productReferenceValid\" class=\"glyphicon glyphicon-info-sign color5Text\" style=\"margin-left: 8px;\"></span>\r\n </div> -->\r\n <!--INFOS-->\r\n <div *dxTemplate=\"let company of 'productTemplate'\">\r\n <infos [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n [(hasAddonEDENUMBERS)]=\"modelService.loginService.hasAddonEDENUMBERS\"\r\n [(hasAddonPRODUCT_DETAILS)]=\"modelService.loginService.hasAddonPRODUCT_DETAILS\"\r\n [showHTMLSwitch]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n [(validationService)]=\"validationService\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </infos>\r\n </div>\r\n\r\n <!--MIMES-->\r\n <div *dxTemplate=\"let company of 'medienTemplate'\">\r\n <mimes [(model)]=\"model.mimes\"\r\n [(product)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n [(exportMode)]=\"exportMode\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [(modelService)]=\"modelService\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </mimes>\r\n </div>\r\n\r\n <!--FEATURES-->\r\n <div *dxTemplate=\"let company of 'featuresTemplate'\">\r\n <editfeaturesystemlist [(featureSystems)]=\"model.featureSystems\"\r\n [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n [displayMode]=\"exportMode ? 'export' : 'import'\"\r\n [(hasAddonECOMMERCE)]=\"modelService.loginService.hasAddonECOMMERCE\"\r\n [(modelService)]=\"modelService\"\r\n (addEcommerceFeatures)=\"addEcommerceFeatures($event)\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </editfeaturesystemlist>\r\n </div>\r\n\r\n <!--OrderDetail-->\r\n <div *dxTemplate=\"let company of 'orderDetailTemplate'\">\r\n <orderDetail [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n [(hasAddonNordwest)]=\"modelService.loginService.hasAddonNordwest\"\r\n [(hasAddonLEGALITY)]=\"modelService.loginService.hasAddonLEGALITY\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </orderDetail>\r\n </div>\r\n\r\n <!--Preise-->\r\n <div *dxTemplate=\"let company of 'preislistenTemplate'\">\r\n <prices [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n [(hasAddonNordwest)]=\"modelService.loginService.hasAddonNordwest\"\r\n [(hasAddonLEGALITY)]=\"modelService.loginService.hasAddonLEGALITY\"\r\n [(priceLists)]=\"modelService.catalogService.catalog.priceLists\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </prices>\r\n </div>\r\n\r\n <!--Logistic-->\r\n <div *dxTemplate=\"let company of 'logistikTemplate'\">\r\n <logistic [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(modelService)]=\"modelService\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </logistic>\r\n </div>\r\n\r\n <!--Referenzen-->\r\n <div *dxTemplate=\"let company of 'referenceTemplate'\">\r\n <references [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(lastImageUpload)]=\"modelService.catalogService.catalog.lastImageUpload\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (onReferencePrepare)=\"onReferencePrepare($event)\"\r\n [(modelService)]=\"modelService\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </references>\r\n </div>\r\n\r\n <!--UDXs-->\r\n <div *dxTemplate=\"let company of 'udxTemplate'\">\r\n <udx [(model)]=\"model.udxs\"\r\n [(product)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </udx>\r\n </div>\r\n\r\n <!-- Electronic Sales -->\r\n <div *dxTemplate=\"let company of 'electronicSalesTemplate'\">\r\n <electronicSales [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </electronicSales>\r\n </div>\r\n\r\n <!--SEO - SEA-->\r\n <div *dxTemplate=\"let company of 'seoTemplate'\">\r\n <seo [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </seo>\r\n </div>\r\n\r\n <!--WAWI-->\r\n <div *dxTemplate=\"let company of 'wawiTemplate'\">\r\n <wawi [(model)]=\"model\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </wawi>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'legalTemplate'\">\r\n <productLegal [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(warrantyClasses)]=\"modelService.warrantyClassService.warrantyClasses\"\r\n [(hazmatClasses)]=\"modelService.hazmatClassService.hazmatClasses\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\">\r\n </productLegal>\r\n\r\n </div>\r\n\r\n<!--ProductSuppliers-->\r\n<div *dxTemplate=\"let company of 'productSuppliersTemplate'\">\r\n <productSuppliers [(model)]=\"model.suppliers\"\r\n [(product)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [templateView]=\"true\"\r\n [(exportMode)]=\"exportMode\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [(modelService)]=\"modelService\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (elementDeleted)=\"elementDelete($event)\">\r\n </productSuppliers>\r\n</div>\r\n\r\n <!--sonstiges -->\r\n <div *dxTemplate=\"let company of 'miscTemplate'\">\r\n <misc [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [(exportMode)]=\"exportMode\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n [showDragHandle]=\"showDragHandle\"\r\n [dragFilter]=\"'> *'\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n [(mimeUpdateMode)]=\"mimeUpdateMode\"\r\n (onMimeUpdateModeChanged)=\"mimeUpdateModeChanged($event)\"\r\n [(featureUpdateMode)]=\"featureUpdateMode\"\r\n (onFeatureUpdateModeChanged)=\"featureUpdateModeChanged($event)\"\r\n [(priceUpdateMode)]=\"priceUpdateMode\"\r\n (onPriceUpdateModeChanged)=\"priceUpdateModeChanged($event)\"\r\n [(udxUpdateMode)]=\"udxUpdateMode\"\r\n (onUdxUpdateModeChanged)=\"udxUpdateModeChanged($event)\"\r\n [(supplierUpdateMode)]=\"supplierUpdateMode\"\r\n (onSupplierUpdateModeChanged)=\"supplierUpdateModeChanged($event)\"\r\n [(categoryUpdateMode)]=\"categoryUpdateMode\"\r\n (onCategoryUpdateModeChanged)=\"categoryUpdateModeChanged($event)\">\r\n </misc>\r\n </div>\r\n\r\n</dx-tab-panel>\r\n","import { Input, Output, EventEmitter, Component, OnInit } from \"@angular/core\";\r\nimport { Product } from '../../../Model/Catalog/product';\r\nimport { ModelService } from '../../../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HazmatClass } from \"../../../Model/Catalog/HazmatClass\";\r\nimport { WarrantyClass } from \"../../../Model/Catalog/WarrantyClass\";\r\nimport { ValidationService } from \"../../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"templateProduct\",\r\n templateUrl: \"templateProduct.component.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\nexport class TemplateProductComponent implements OnInit {\r\n @Input() model: Product = new Product();\r\n @Input() selectedElements: string[] = [\"\"];\r\n @Input() exportMode: Boolean = false;\r\n @Input() showDragHandle: Boolean = true;\r\n\r\n @Output() elementDeleted = new EventEmitter<any>();\r\n @Output() elementSelected = new EventEmitter<string>();\r\n @Output() excelElementDropped = new EventEmitter<any>();\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public validationService: ValidationService) { }\r\n\r\n ngOnInit(): void {\r\n this.modelService.productService.createWawiIfNeeded(this.model, this.modelService.loginService.wawiSettings);\r\n if (this.modelService.loginService.hasAddonLEGALITY) {\r\n this.modelService.hazmatClassService.getClasses().subscribe(\r\n (result: HazmatClass[]) => {\r\n this.modelService.hazmatClassService.hazmatClasses = result;\r\n });\r\n\r\n this.modelService.warrantyClassService.getClasses().subscribe(\r\n (result: WarrantyClass[]) => {\r\n this.modelService.warrantyClassService.warrantyClasses = result;\r\n });\r\n }\r\n\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n pages: { id: number; title: string; template: string; type: string; }[] = [];\r\n\r\n public elementSelectFunction(event) {\r\n this.elementSelected.emit(event);\r\n }\r\n\r\n txtProdukt: string;\r\n txtMedien: string;\r\n txtUdx: string;\r\n txtFeatures: string;\r\n txtPreislisten: string;\r\n txtECommerce: string;\r\n txtSEO: string;\r\n txtLogistik: string;\r\n txtReferenzen: string;\r\n txtMisc: string;\r\n txtOrderDetail: string;\r\n txtLegal: string;\r\n txtSuppliers: string;\r\n txtElectronicSales: string;\r\n\r\n translateTexts() {\r\n this.txtProdukt = this.translate.instant(\"Produkt\");\r\n this.txtMedien = this.translate.instant(\"Medien\");\r\n this.txtFeatures = this.translate.instant(\"Features\");\r\n this.txtOrderDetail = this.translate.instant(\"Bestelldetails\");\r\n this.txtPreislisten = this.translate.instant(\"Preislisten\");\r\n this.txtLogistik = this.translate.instant(\"Logistik\");\r\n this.txtReferenzen = this.translate.instant(\"Referenzen\");\r\n this.txtUdx = this.translate.instant(\"Udx\");\r\n this.txtElectronicSales = this.translate.instant(\"SEO - SEA\");\r\n this.txtSEO = this.translate.instant(\"SEO - SEA\");\r\n this.txtLegal = this.translate.instant(\"Recht\");\r\n this.txtMisc = this.translate.instant(\"MISC\");\r\n this.txtSuppliers = this.translate.instant(\"Lieferanten\");\r\n this.txtElectronicSales = this.translate.instant('ElectronicSales');\r\n }\r\n\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtProdukt, template: \"productTemplate\", type: \"MAIN\" },\r\n { id: 2, title: this.txtMedien, template: \"medienTemplate\", type: \"MIME\" },\r\n { id: 3, title: this.txtFeatures, template: \"featuresTemplate\", type: \"FEAT\" },\r\n { id: 4, title: this.txtOrderDetail, template: \"orderDetailTemplate\", type: \"ORDER\" },\r\n { id: 5, title: this.txtPreislisten, template: \"preislistenTemplate\", type: \"PRICE\" },\r\n { id: 6, title: this.txtLogistik, template: \"logistikTemplate\", type: \"LOGI\" },\r\n { id: 7, title: this.txtReferenzen, template: \"referenceTemplate\", type: \"REFE\" }\r\n ];\r\n\r\n if (this.modelService.loginService.hasAddonUDX) {\r\n this.pages.push({ id: 8, title: this.txtUdx, template: \"udxTemplate\", type: \"0\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonElectronicSales) {\r\n this.pages.push({ id: 9, title: this.txtElectronicSales, template: \"electronicSalesTemplate\", type: \"0\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonSEO) {\r\n this.pages.push({ id: 10, title: this.txtSEO, template: \"seoTemplate\", type: \"0\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonLEGALITY) {\r\n this.pages.push({ id: 11, title: this.txtLegal, template: \"legalTemplate\", type: \"LEGAL\" });\r\n }\r\n\r\n this.pages.push({ id: 12, title: this.txtMisc, template: \"miscTemplate\", type: \"MISC\" });\r\n\r\n if (this.modelService.loginService.hasAddonWawiErp) {\r\n this.modelService.productService.createWawiIfNeeded(this.model, this.modelService.loginService.wawiSettings);\r\n this.pages.push({ id: 13, title: this.modelService.loginService.wawiSettings.name, template: \"wawiTemplate\", type: \"0\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonSUPPLIERS) {\r\n this.pages.push({ id: 14, title: this.txtSuppliers, template: \"productSuppliersTemplate\", type: \"0\" });\r\n }\r\n }\r\n\r\n //Referencen nachladen\r\n onReferencePrepare(event) {\r\n if (event.columnIndex == 4 && event.rowType == \"data\") {\r\n if (event.data.artIdTo != null) {\r\n this.modelService.catalogService.getProductBySupplierPid(\r\n event.data.artIdTo,\r\n this.modelService.loginService.currentUser.customerId,\r\n this.modelService.catalogService.catalog.id\r\n ).subscribe(\r\n (result) => {\r\n event.data.descriptionShort = result.descriptionShort;\r\n for (let mime of result.mimes.sort((a, b) => (a.mimeOrder > b.mimeOrder) ? 1 : -1)) {\r\n if (mime.mimePurpose == \"normal\" && mime.normUri != null) {\r\n event.data.normUri = mime.normUri;\r\n }\r\n }\r\n },\r\n error => {\r\n event.data.descriptionShort = \"\";\r\n event.data.normUri = \"\";\r\n }\r\n );\r\n } else {\r\n event.data.descriptionShort = \"\";\r\n event.data.normUri = \"\";\r\n }\r\n }\r\n }\r\n\r\n // wie in c:\\workspaces\\nextpim\\test\\Pim\\ClientApp\\src\\app\\catalog\\product\\productDetail.component.ts\r\n addEcommerceFeatures() {\r\n let dummy = this.modelService.productService.getProductFromJson(new Product(), this.modelService.loginService.wawiSettings);\r\n dummy.featureSystems = this.model.featureSystems;\r\n\r\n this.modelService.catalogService.addEcommerceFeatures(dummy).subscribe(\r\n (result: Product) => {\r\n this.model.featureSystems = result.featureSystems;\r\n });\r\n }\r\n\r\n public update(event = null) {\r\n if (event == null || event == undefined) { //|| event.value == null\r\n return;\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n }\r\n\r\n onTitleClick(event = null) {\r\n this.elementSelected.emit(\"\");\r\n }\r\n\r\n\r\n\r\n public excelElementDrop(e) {\r\n this.excelElementDropped.emit(e);\r\n }\r\n\r\n public elementDelete(e) {\r\n this.elementDeleted.emit(e);\r\n }\r\n\r\n\r\n\r\n private _mimeUpdateMode: string = \"NORMAL\";\r\n\r\n get mimeUpdateMode(): string {\r\n return this._mimeUpdateMode;\r\n }\r\n\r\n @Input()\r\n set mimeUpdateMode(value: string) {\r\n this._mimeUpdateMode = value;\r\n }\r\n\r\n @Output() onMimeUpdateModeChanged = new EventEmitter<string>();\r\n\r\n mimeUpdateModeChanged(e) {\r\n this.onMimeUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _featureUpdateMode: string = \"NORMAL\";\r\n\r\n get featureUpdateMode(): string {\r\n return this._featureUpdateMode;\r\n }\r\n\r\n @Input()\r\n set featureUpdateMode(value: string) {\r\n this._featureUpdateMode = value;\r\n }\r\n\r\n @Output() onFeatureUpdateModeChanged = new EventEmitter<string>();\r\n\r\n featureUpdateModeChanged(e) {\r\n this.onFeatureUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _priceUpdateMode: string = \"NORMAL\";\r\n\r\n get priceUpdateMode(): string {\r\n return this._priceUpdateMode;\r\n }\r\n\r\n @Input()\r\n set priceUpdateMode(value: string) {\r\n this._priceUpdateMode = value;\r\n }\r\n\r\n @Output() onPriceUpdateModeChanged = new EventEmitter<string>();\r\n\r\n priceUpdateModeChanged(e) {\r\n this.onPriceUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _udxUpdateMode: string = \"NORMAL\";\r\n\r\n get udxUpdateMode(): string {\r\n return this._udxUpdateMode;\r\n }\r\n\r\n @Input()\r\n set udxUpdateMode(value: string) {\r\n this._udxUpdateMode = value;\r\n }\r\n\r\n @Output() onUdxUpdateModeChanged = new EventEmitter<string>();\r\n\r\n udxUpdateModeChanged(e) {\r\n this.onUdxUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _supplierUpdateMode: string = \"NORMAL\";\r\n\r\n get supplierUpdateMode(): string {\r\n return this._supplierUpdateMode;\r\n }\r\n\r\n @Input()\r\n set supplierUpdateMode(value: string) {\r\n this._supplierUpdateMode = value;\r\n }\r\n\r\n @Output() onSupplierUpdateModeChanged = new EventEmitter<string>();\r\n\r\n supplierUpdateModeChanged(e) {\r\n this.onSupplierUpdateModeChanged.emit(e);\r\n }\r\n\r\n\r\n\r\n private _categoryUpdateMode: string = \"NORMAL\";\r\n\r\n get categoryUpdateMode(): string {\r\n return this._categoryUpdateMode;\r\n }\r\n\r\n @Input()\r\n set categoryUpdateMode(value: string) {\r\n this._categoryUpdateMode = value;\r\n }\r\n\r\n @Output() onCategoryUpdateModeChanged = new EventEmitter<string>();\r\n\r\n categoryUpdateModeChanged(e) {\r\n this.onCategoryUpdateModeChanged.emit(e);\r\n }\r\n}\r\n","export class Select {\r\n constructor(\r\n public displayExpr: string = \"\",\r\n public displayExprExport: string = \"\",\r\n public valueExpr: string = \"\") {\r\n }\r\n}\r\n","export class WawiList {\r\n constructor(\r\n public id: string,\r\n public listName: string,\r\n public key: string,\r\n public value: string,\r\n public isMapping: boolean,\r\n public fields: WawiListElement[],\r\n public visible?: boolean\r\n ) { }\r\n}\r\n\r\nexport class WawiListElement {\r\n constructor(\r\n public id: number,\r\n public key: string,\r\n public value: string\r\n ) { }\r\n}\r\n","\r\n<dx-sortable group=\"dragDropGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [data]=\"excelModel\"\r\n dragTemplate=\"dragTemplate\"\r\n [cursorOffset]=\"{ x: 20, y: 20 }\"\r\n (onDragStart)=\"onDragStart($event)\"\r\n (onAdd)=\"onDrop($event)\"\r\n (onReorder)=\"onReorder($event)\">\r\n\r\n <!-- template for the dragged item -->\r\n <div *dxTemplate=\"let dragInfo of 'dragTemplate'\"\r\n class=\"item dx-card dx-theme-text-color dx-theme-background-color shadow-lg p-3 bg-body rounded dragTemplate\">\r\n <div>\r\n {{getDragInfo(dragInfo.itemData)}}\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div *ngFor=\"let column of excelModelFiltered\" class=\"{{exportMode ? 'templateExcelExportColumn' : 'templateExcelColumn'}}\" id=\"templateExcelDiv_{{column.id}}\">\r\n\r\n <div *ngIf=\"!exportMode\" class=\"{{getClass(column.id)}} excelCell\">\r\n\r\n <div class=\"d-flex flex-row\">\r\n\r\n <i (click)=\"rowClicked(column.id)\" class=\"handle dx-icon dx-icon-dragvertical align-self-center\"></i>\r\n <div *ngIf=\"column.pimFields?.length >0\" id=\"plus_{{column.id}}\" class=\"expandButton\">\r\n <a (click)=\"toggleSettings(column.id)\" class=\"dx-icon dx-icon-chevronnext templateButton\"></a>\r\n </div>\r\n\r\n <div (click)=\"rowClicked(column.id)\" class=\"templateExcelColumnContent\" style=\"height:100%;\">\r\n <div class=\"templateExcelHead\">{{column.title}}</div>\r\n <div class=\"templateExcelContent\" style=\"float:left;width:100%\">\r\n <div class=\"templateExcelLine\">{{column.row1}}</div>\r\n <div class=\"templateExcelLine\">{{column.row2}}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"deleteButton\" *ngIf=\"hasFields(column)\">\r\n <i (click)=\"removeClicked(column.id)\" class=\"dx-icon-trash templateButton\"></i>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"!exportMode\" class=\"templateSelected\" id=\"settings_{{column.id}}\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Umrechnung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.calculation?.length>0 ? 'placeLabelSmall' : '' }}\">CALCULATION</label>\r\n <dx-select-box id=\"{{column.id}}_cal\"\r\n [dataSource]=\"calculationImport\"\r\n displayExpr=\"displayExpr\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.calculation\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Zahlenformat' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.numberformat?.length>0 ? 'placeLabelSmall' : '' }}\">NUMBERFORMAT</label>\r\n <dx-select-box id=\"{{column.id}}_num\"\r\n [dataSource]=\"numberformat\"\r\n displayExpr=\"displayExpr\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.numberformat\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Trennung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.seperator?.length>0 ? 'placeLabelSmall' : '' }}\">SEPERATOR</label>\r\n <dx-select-box id=\"{{column.id}}_sep\"\r\n [dataSource]=\"seperator\"\r\n displayExpr=\"displayExpr\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.seperator\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Mapping' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.mapping?.length>0 ? 'placeLabelSmall' : '' }}\">MAPPING</label>\r\n <dx-select-box id=\"{{column.id}}_map\"\r\n [dataSource]=\"mappings\"\r\n displayExpr=\"listName\"\r\n valueExpr=\"id\"\r\n [(value)]=\"column.mapping\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Entfernen' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.remove?.length>0 ? 'placeLabelSmall' : '' }}\">REMOVE</label>\r\n <dx-text-box id=\"{{column.id}}_rem\"\r\n [(value)]=\"column.remove\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"exportMode\" class=\"{{getClass(column.id)}} excelCellExport\" style=\"padding:5px;\">\r\n\r\n <div class=\"d-flex flex-row\">\r\n\r\n <i (click)=\"rowClicked(column.id)\" class=\"handleExport dx-icon dx-icon-dragvertical align-self-center\"></i>\r\n <div id=\"plus_{{column.id}}\" class=\"expandButtonExport\">\r\n <a (click)=\"toggleSettings(column.id)\" class=\"dx-icon dx-icon-chevronnext templateButton\"></a>\r\n </div>\r\n\r\n <div (click)=\"rowClicked(column.id)\" class=\"templateExcelColumnContent\" style=\"height:100%;\">\r\n\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" style=\"width:100%;margin-bottom:7px;\">\r\n <label class=\"placeLabel {{ column.title?.length>0 ? 'placeLabelSmall' : '' }}\">FIELD_TITLE</label>\r\n <dx-text-box [(value)]=\"column.title\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n <div *ngIf=\"column.pimFields == null || column.pimFields?.length == 0\" class=\"templateExcelContent\" style=\"float:left;width:100%\">\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" style=\"width:100%\">\r\n <label class=\"placeLabel {{ column.defaultValue?.length > 0 ? 'placeLabelSmall' : '' }}\">FIELD_VALUE</label>\r\n <dx-text-box [(value)]=\"column.defaultValue\"\r\n [showClearButton]=\"true\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"column.pimFields != null && column.pimFields?.length > 0\" class=\"templateExcelContent\" style=\"float:left;width: calc(100% - 20px);\">\r\n <div class=\"templateExcelLine\">{{getDragInfo(column)}}</div><!-- früher column.field -->\r\n </div>\r\n\r\n <div *ngIf=\"column.field?.length > 0\" class=\"deleteButtonExport\">\r\n <i (click)=\"removeClicked(column.id)\" class=\"dx-icon-trash templateButton\"></i>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"exportMode\" class=\"templateSelected\" id=\"settings_{{column.id}}\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Umrechnung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.calculation?.length>0 ? 'placeLabelSmall' : '' }}\">CALCULATION</label>\r\n <dx-select-box id=\"{{column.id}}_cal\"\r\n [dataSource]=\"calculationExport\"\r\n displayExpr=\"displayExprExport\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.calculation\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Zahlenformat' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.numberformat?.length>0 ? 'placeLabelSmall' : '' }}\">NUMBERFORMAT</label>\r\n <dx-select-box id=\"{{column.id}}_num\"\r\n [dataSource]=\"numberformat\"\r\n displayExpr=\"displayExprExport\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.numberformat\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Trennung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.seperator?.length>0 ? 'placeLabelSmall' : '' }}\">SEPERATOR</label>\r\n <dx-select-box id=\"{{column.id}}_sep\"\r\n [dataSource]=\"seperator\"\r\n displayExpr=\"displayExprExport\"\r\n valueExpr=\"valueExpr\"\r\n [(value)]=\"column.seperator\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label2\"> {{ 'Mapping' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ column.mapping?.length>0 ? 'placeLabelSmall' : '' }}\">MAPPING</label>\r\n <dx-select-box id=\"{{column.id}}_map\"\r\n [dataSource]=\"mappings\"\r\n displayExpr=\"listName\"\r\n valueExpr=\"id\"\r\n [(value)]=\"column.mapping\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"update($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n</dx-sortable>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { HasElementKey, HasSystemKey } from \"../../../Model/Catalog/NextPimField\";\r\nimport { StringResponse } from \"../../../Model/Dto/StringResponse\";\r\nimport { ExcelElement } from '../../../Model/ui/ExcelElement';\r\nimport { Select } from '../../../Model/ui/Select';\r\nimport { WawiList } from \"../../../Model/wawi/WawiList\";\r\nimport { LoginService } from \"../../../Services/login.service\";\r\nimport { TemplateService } from \"../../../Services/template.service\";\r\nimport { WawiListService } from \"../../../Services/wawiList.service\";\r\n\r\n@Component({\r\n selector: \"templateExcel\",\r\n templateUrl: \"templateExcel.component.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\n\r\nexport class TemplateExcelComponent {\r\n @Input() excelModel: ExcelElement[] = [];\r\n @Input() showToolTips: Boolean = false;\r\n @Input() showProToolTips: Boolean = false;\r\n @Input() showPlaceHolders: Boolean = true;\r\n @Input() exportMode: Boolean = false;\r\n\r\n @Input() selectedElements: string[] = [\"\"];\r\n\r\n @Output() rowSelected = new EventEmitter<string>();\r\n @Output() removeTemplate = new EventEmitter<string>();\r\n @Output() updateValue = new EventEmitter<string>();\r\n @Output() reorderModel = new EventEmitter<any>();\r\n @Output() replaceItem = new EventEmitter<any>();\r\n\r\n mappings: WawiList[] = [];\r\n\r\n constructor(public loginService: LoginService, wawiListService: WawiListService,public templateService: TemplateService) {\r\n this.mappings.push(new WawiList(null, \"\", null, null, null, null));\r\n wawiListService.getAllListsWithoutFields(loginService.currentCustomer.id).subscribe(result => {\r\n result.forEach((wawiList => {\r\n if (wawiList.isMapping) {\r\n this.mappings.push(wawiList);\r\n }\r\n }))\r\n });\r\n }\r\n\r\n get excelModelFiltered(): ExcelElement[] {\r\n //return this.excelModel; // wenn alle sichtbar sein sollten, alles andere auskommentieren und dies hier zurück geben\r\n\r\n\r\n this.excelModel.forEach((column => {\r\n if (column.displayName == \"\") {\r\n if (this.hasFields(column) && !column.isDisplayNameRequested) {\r\n column.isDisplayNameRequested = true;\r\n this.templateService.getHeadline(column.pimFields[0].field, column.pimFields[0].elementKey, column.pimFields[0].systemKey, this.loginService.currentCustomer.id).subscribe(\r\n (result: StringResponse) => {\r\n column.displayName = result.value;\r\n });\r\n }\r\n }\r\n })); \r\n\r\n if (this.exportMode) {\r\n return this.excelModel;\r\n } else {\r\n return this.excelModel.filter(e => (e.title != null && e.title != \"\"));\r\n }\r\n }\r\n\r\n rowId = \"\";\r\n rowClicked(rowId) {\r\n this.rowId = rowId;\r\n this.rowSelected.emit(rowId);\r\n }\r\n\r\n removeClicked(rowId) {\r\n this.removeTemplate.emit(rowId);\r\n }\r\n\r\n getClass(rowId) {\r\n var classes = \"\";\r\n var element = this.excelModel.filter(element => element.id == rowId).shift();\r\n if (element.pimFields.some(x => x.field != null && x.field != undefined && x.field != \"\")) {\r\n classes = \"inUse \";\r\n }\r\n\r\n if (rowId == this.rowId) {\r\n classes += \"selected \";\r\n return classes;\r\n }\r\n\r\n if (this.selectedElements.length != 0 && !(this.selectedElements.length == 1 && this.selectedElements[0] == \"\")) {\r\n this.rowId = \"\";\r\n classes += this.getClassIfElementSelected(rowId);\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n getClassIfElementSelected(rowId: number): string {\r\n for (let i = 0; i < this.excelModel.length; i++) {\r\n let e = this.excelModel[i];\r\n if (e.pimFields.some(x => {\r\n let result = x.field;\r\n if (HasSystemKey(x)) {\r\n result += \"_\" + x.systemKey;\r\n if (HasElementKey(x)) {\r\n result += \"_\" + x.elementKey;\r\n }\r\n }\r\n return this.selectedElements.some(y => y == result) && e.id == rowId.toString();\r\n })) {\r\n return \"selected \";\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n hasFields(column: ExcelElement) {\r\n return column != undefined && column.pimFields != undefined && column.pimFields.length > 0;\r\n }\r\n\r\n getDragInfo(column: ExcelElement) {\r\n if (column.displayName != \"\") {\r\n return column.displayName;\r\n }\r\n\r\n if (this.hasFields(column)) { \r\n return column.pimFields.map(x => (x.field + \"_\" + x.systemKey + \"_\" + x.elementKey).replace(\"_-1_-1\", \"\").replace(\"_-1\", \"\")).join(\" | \");\r\n }\r\n else {\r\n return column.title;\r\n }\r\n }\r\n\r\n\r\n toggleSettings(rowId) {\r\n var htmlBlock = document.getElementById('templateExcelDiv_' + rowId);\r\n var htmlPlus = document.getElementById('plus_' + rowId);\r\n if (htmlBlock != null) {\r\n if (this.exportMode) {\r\n if (htmlBlock.classList.contains(\"templateExcelExportColumnBig\")) {\r\n htmlBlock.classList.remove(\"templateExcelExportColumnBig\");\r\n htmlPlus.classList.remove(\"templatePlusRound\");\r\n } else {\r\n htmlBlock.classList.add(\"templateExcelExportColumnBig\");\r\n htmlPlus.classList.add(\"templatePlusRound\");\r\n }\r\n } else {\r\n if (htmlBlock.classList.contains(\"templateExcelColumnBig\")) {\r\n htmlBlock.classList.remove(\"templateExcelColumnBig\");\r\n htmlPlus.classList.remove(\"templatePlusRound\");\r\n } else {\r\n htmlBlock.classList.add(\"templateExcelColumnBig\");\r\n htmlPlus.classList.add(\"templatePlusRound\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n public calculationImport: Select[] = [new Select(\"\", \"\", \"\"), new Select(\"g in kg\", \"kg in g\", \"GINKG\"), new Select(\"t in kg\", \"kg in t\", \"TINKG\"), new Select(\"mm in m\", \"m in mm\", \"MMINM\"), new Select(\"cm in m\", \"m in cm\", \"CMINM\"), new Select(\"Stück in C62\", \"C62 in Stück\", \"STKINC62\")];\r\n\r\n public calculationExport: Select[] = [new Select(\"\", \"\", \"\"), new Select(\"g in kg\", \"kg in g\", \"GINKG\"), new Select(\"t in kg\", \"kg in t\", \"TINKG\"), new Select(\"mm in m\", \"m in mm\", \"MMINM\"), new Select(\"cm in m\", \"m in cm\", \"CMINM\")];\r\n\r\n public numberformat: Select[] = [new Select(\"\", \"\", \"\"), new Select(\"1.900,00\", \"1.900,00\", \",\"), new Select(\"1,900.00\", \"1,900.00\", \".\")];\r\n\r\n public seperator: Select[] = [new Select(\"\", \"\", \"\"), new Select(\"Leerzeichen\", \"Leerzeichen\", \" \"), new Select(\"_\", \"_\", \"_\"), new Select(\"|\", \"|\", \"|\"), new Select(\",\", \",\", \",\"), new Select(\".\", \".\", \".\"), new Select(\";\", \";\", \";\")];\r\n\r\n public update(elemet) {\r\n this.updateValue.emit(elemet.element.id.split(\"_\").shift());\r\n }\r\n\r\n onDragStart(e) {\r\n e.itemData = e.fromData[e.fromIndex];\r\n e.itemData.source = \"excelModel\";\r\n e.itemData.exportMode = this.exportMode;\r\n }\r\n\r\n onDrop(e) {\r\n if (e.itemData.source != \"product\") {\r\n return;\r\n }\r\n // TODO:\r\n // wenn man \"einfügen an pos. X\" realisieren will, müsste man in der methode,\r\n // die am ende durch dies event getriggert wird, unterscheiden, ob vorhanden (==> \"replace\")\r\n // oder nicht vorhanden (==> \"add\" am index X)\r\n\r\n this.replaceItem.emit(e);\r\n }\r\n\r\n onReorder(e) {\r\n this.reorderModel.emit(e);\r\n }\r\n}\r\n","\r\n<div *ngIf=\"product\" id=\"container\" class=\"d-flex w-100 h-100 overflow-hidden {{exportMode ? 'flex-row' : 'flex-row-reverse'}}\">\r\n <div class=\"d-flex flex-column align-self-stretch align-items-stretch w-75 h-100\">\r\n <div *ngIf=\"showSelector\" class=\"w-100 h-25\">\r\n <div *ngIf=\"showSelector\" class=\"p-2\">\r\n <templateSelector (templateSelected)=\"templateSelected($event)\">\r\n </templateSelector>\r\n </div>\r\n\r\n </div>\r\n <div class=\"w-100 {{showSelector ? 'h-75' : 'h-100'}}\">\r\n\r\n <dx-scroll-view class=\"w-100 h-100\" reachBottomText=\"\" showScrollbar=\"always\">\r\n <div class=\"flex-fill\">\r\n <templateProduct class=\"h-100\"\r\n [model]=\"product\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [exportMode]=\"exportMode\"\r\n [showDragHandle]=\"exportMode\"\r\n (elementDeleted)=\"elementDelete($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n (onValueChanged)=\"addDefaultElement($event)\"\r\n [(mimeUpdateMode)]=\"mimeUpdateMode\"\r\n (onMimeUpdateModeChanged)=\"mimeUpdateModeChanged($event)\"\r\n [(featureUpdateMode)]=\"featureUpdateMode\"\r\n (onFeatureUpdateModeChanged)=\"featureUpdateModeChanged($event)\"\r\n [(priceUpdateMode)]=\"priceUpdateMode\"\r\n (onPriceUpdateModeChanged)=\"priceUpdateModeChanged($event)\"\r\n [(udxUpdateMode)]=\"udxUpdateMode\"\r\n (onUdxUpdateModeChanged)=\"udxUpdateModeChanged($event)\"\r\n [(supplierUpdateMode)]=\"supplierUpdateMode\"\r\n (onSupplierUpdateModeChanged)=\"supplierUpdateModeChanged($event)\"\r\n [(cateogyUpdateMode)]=\"categoryUpdateMode\"\r\n (onCategoryUpdateModeChanged)=\"categoryUpdateModeChanged($event)\">\r\n </templateProduct>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"d-flex flex-column align-self-stretch align-items-stretch w-25 h-100\">\r\n <div *ngIf=\"exportMode\" class=\"w-100 h-25\">\r\n <div class=\"w-100 h-100 d-flex flex-row\">\r\n <div class=\"w-50 h-100 px-2 py-5\">\r\n <dx-sortable class=\"d-flex justify-content-center align-items-center dropZone\" style=\"height: 100%;\"\r\n group=\"dragDropGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n (onAdd)=\"onDropAdd($event)\">\r\n <i class=\"m-auto dx-icon-add bigIcon\"></i>\r\n </dx-sortable>\r\n </div>\r\n\r\n <div class=\"w-50 h-100 px-2 py-5\">\r\n <dx-sortable class=\"d-flex justify-content-center align-items-center dropZone\" style=\"height: 100%;\"\r\n group=\"dragDropGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n (onAdd)=\"onDropRemove($event)\">\r\n <i class=\"m-auto dx-icon-trash bigIcon\"></i>\r\n </dx-sortable>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"w-100 {{exportMode ? 'h-75' : 'h-100'}}\">\r\n\r\n <dx-scroll-view class=\"w-100 h-100\" reachBottomText=\"\" showScrollbar=\"always\">\r\n <div class=\"flex-fill\">\r\n <templateExcel class=\"h-100\"\r\n [(excelModel)]=\"excelModel\"\r\n [exportMode]=\"exportMode\"\r\n [(selectedElements)]=\"selectedElements\"\r\n (updateValue)=\"updateTemplate($event)\"\r\n (removeTemplate)=\"clearItem($event)\"\r\n (reorderModel)=\"reorderModel($event)\"\r\n (replaceItem)=\"replaceItem($event)\"\r\n (rowSelected)=\"excelRowSelected($event)\">\r\n </templateExcel>\r\n </div>\r\n </dx-scroll-view>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <dx-load-panel [visible]=\"isVisible\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"true\">\r\n </dx-load-panel>\r\n\r\n\r\n</div>\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DxDraggableModule } from \"devextreme-angular\";\r\nimport { forEach } from \"jszip\";\r\nimport { lastValueFrom, Observable, Subscription } from \"rxjs\";\r\nimport { Product } from \"../Model/Catalog/product\";\r\nimport { NextPimField } from \"../Model/Catalog/NextPimField\";\r\nimport { FieldNames } from \"../Model/FieldNames\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { ExcelElement } from \"../Model/ui/ExcelElement\";\r\nimport { Functions } from \"../Services/functions\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { SystemService } from \"../Services/system.service\";\r\nimport { TemplateService } from \"../Services/template.service\";\r\nimport { StringResponse } from \"../Model/Dto/StringResponse\";\r\nimport { ValidFeatureService } from \"../Services/validFeature.service\";\r\n\r\n@Component({\r\n selector: 'template-editor',\r\n templateUrl: './template-editor.component.html',\r\n styleUrls: ['./template-editor.component.css']\r\n})\r\nexport class NewTemplateEditorComponent implements OnInit, OnDestroy {\r\n private fieldNames: FieldNames;\r\n\r\n @Input() showSelector: boolean = false;\r\n @Input() exportMode: boolean = false;\r\n\r\n private eventsSubscription: Subscription;\r\n @Input() templateChange: Observable<string>;\r\n\r\n selectedElements: string[];\r\n //_wait: boolean;\r\n _product: Product;\r\n _backupProduct: Product;\r\n excelModel: ExcelElement[];\r\n\r\n messageSpidIntPidDefaultNotAllowed: string = \"\";\r\n messageSelectTemplate: string = \"\";\r\n\r\n private _isVisible: boolean = true;\r\n get isVisible(): boolean {\r\n return this._isVisible;\r\n }\r\n set isVisible(value: boolean) {\r\n this._isVisible = value;\r\n }\r\n\r\n\r\n constructor(public modelService: ModelService, public systemService: SystemService, public templateService: TemplateService, public translate: TranslateService, public validFeatureService: ValidFeatureService) {\r\n this.fieldNames = new FieldNames();\r\n\r\n this.messageSpidIntPidDefaultNotAllowed = this.translate.instant(\"messageSpidIntPidDefaultNotAllowed\");\r\n this.messageSelectTemplate = this.translate.instant(\"Bitte ein Template auswählen\") + \".\";\r\n this.clearPimField = this.clearPimField.bind(this);\r\n this.templateService.clearPimFieldEmitter.subscribe(async x => await this.clearPimField(x));\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n if (this.templateChange != null) {\r\n this.eventsSubscription = this.templateChange.subscribe((templateId: string) => {\r\n if (templateId != null) {\r\n this.templateService.getTemplateById(templateId).subscribe(() => {\r\n this.templateSelected(null);\r\n });\r\n }\r\n else {\r\n this.templateSelected(null);\r\n }\r\n });\r\n }\r\n this.selectedElements = [\"\"];\r\n\r\n //this._wait = false;\r\n this._product = null;\r\n this._backupProduct = null;\r\n\r\n this.excelModel = [];\r\n\r\n\r\n\r\n // fallback, wenn noch kein katalog besucht wurde\r\n if (this.modelService.catalogService.catalog == null || this.modelService.catalogService.catalog == undefined\r\n || this.modelService.catalogService.catalog.id == null || this.modelService.catalogService.catalog.id == undefined || this.modelService.catalogService.catalog.id == \"\") {\r\n this.modelService.catalogService.catalog = this.modelService.catalogService.catalogs[0];\r\n }\r\n\r\n if (this.templateService.importJob != null) {\r\n //this.showSelector = false; // @Input()\r\n //this.exportMode = false; // @Input()\r\n\r\n this.templateService.getTemplateById(this.templateService.importJob.templateId).subscribe(\r\n () => {\r\n this.templateSelected(null);\r\n });\r\n } else {\r\n //this.showSelector = true; // @Input()\r\n if (this.templateService.template != null && this.templateService.template != undefined) {\r\n this.exportMode = this.templateService.template.isExportTemplate; // wird hier bei export NICHT gesetzt, da kein template\r\n }\r\n\r\n if (this.exportMode) { // (bei export @Input())\r\n this.getFirstProduct();\r\n } else {\r\n this.templateSelected(null);\r\n }\r\n }\r\n\r\n }\r\n //ngAfterViewInit(): void {\r\n // this.isVisible = false;\r\n //}\r\n ngOnDestroy(): void {\r\n this.templateService.importJob = null;\r\n this.templateService.template = null;\r\n this.selectedElements = [\"\"];\r\n\r\n //this._wait = false;\r\n this._product = null;\r\n this._backupProduct = null;\r\n\r\n this.excelModel = [];\r\n this.isVisible = true;\r\n }\r\n\r\n\r\n\r\n public elementSelectFunction(e) {\r\n this.selectedElements = [e];\r\n }\r\n\r\n public excelRowSelected(e) {\r\n if (e == \"\") {\r\n this.selectedElements = [\"\"];\r\n return;\r\n }\r\n\r\n var element = this.excelModel.filter(element => element.id == e).shift();\r\n if (element == null) {\r\n return;\r\n }\r\n\r\n this.selectedElements = this.templateService.createIdentifiers(element.pimFields);\r\n }\r\n\r\n public get product() {\r\n if (this._product) {\r\n if (this.exportMode) {\r\n this.buildListsAndTables();\r\n }\r\n // this.modelService.productService.createWawiIfNeeded(this._product, this.modelService.loginService.wawiSettings);\r\n return this._product;\r\n }\r\n\r\n\r\n\r\n if (!this.exportMode && this._product == null) {\r\n this._product = this.modelService.productService.getProductFromJson(new Product(), this.modelService.loginService.wawiSettings);\r\n this._backupProduct = this.modelService.productService.getProductFromJson(new Product(), this.modelService.loginService.wawiSettings);\r\n\r\n //this.buildListsAndTables(); // nur im exportMode benötigt\r\n return this._product;\r\n }\r\n\r\n\r\n\r\n if (this.modelService.catalogService.product) {\r\n this._product = this.modelService.productService.getProductFromJson(this.modelService.catalogService.product, this.modelService.loginService.wawiSettings); // **\r\n this._product.linkedFields = [];\r\n this._backupProduct = this.modelService.productService.getProductFromJson(this.modelService.catalogService.product, this.modelService.loginService.wawiSettings); // **\r\n this._backupProduct.linkedFields = [];\r\n }\r\n //else { // machen wir in OnInit\r\n // if (!this._wait) { // machen wir in OnInit\r\n // this._wait = true; // machen wir in OnInit\r\n // this.getFirstProduct().subscribe(); // machen wir in OnInit\r\n // } // machen wir in OnInit\r\n //} // machen wir in OnInit\r\n\r\n this.buildListsAndTables();\r\n return this._product;\r\n }\r\n\r\n\r\n\r\n public getFirstProduct() {\r\n let customerId = \"\";\r\n\r\n customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n this.modelService.catalogService.getFirstProduct(customerId).subscribe(\r\n (result: Product) => {\r\n this.setProduct(result);\r\n this.templateSelected(null);\r\n });\r\n }\r\n\r\n public setProduct(product: Product): Product {\r\n this._product = this.modelService.productService.getProductFromJson(product, this.modelService.loginService.wawiSettings); // **\r\n this._product.linkedFields = [];\r\n this._backupProduct = this.modelService.productService.getProductFromJson(product, this.modelService.loginService.wawiSettings); // **\r\n this._backupProduct.linkedFields = [];\r\n\r\n this.buildListsAndTables();\r\n return this._product;\r\n }\r\n\r\n\r\n\r\n public onDropAdd(e) {\r\n if (e.itemData.source == \"excelModel\") {\r\n return;\r\n }\r\n\r\n this.addElement(e.itemData.dField, e.itemData.dSystem, e.itemData.dElement);\r\n }\r\n\r\n public onDropRemove(e) {\r\n if (e.itemData.source != \"excelModel\") {\r\n return;\r\n }\r\n\r\n this.removeElement(e.itemData.dField, e.itemData.dSystem, e.itemData.dElement, e.fromIndex);\r\n }\r\n\r\n public excelElementDrop(e) {\r\n let field = e.newField;\r\n let system = e.newSystem;\r\n let element = e.newElement;\r\n this.addElementFromExcel(field, system, element, e.fromIndex);\r\n }\r\n\r\n public elementDelete(e) {\r\n let fields = e.dFields;\r\n let detailFields = e.dDetailFields;\r\n let system = e.dSystem;\r\n let element = e.dElement;\r\n\r\n let needsUpdate = false;\r\n\r\n for (let field of fields) {\r\n let found = this.excelModel.find(i => i.pimFields.findIndex(x => x.field == field && x.systemKey == system && x.elementKey == element) != -1);\r\n needsUpdate = this.removeOrClearExcelElement(found, needsUpdate);\r\n }\r\n\r\n if (detailFields != null) {\r\n for (let field of detailFields) {\r\n let found = this.excelModel.filter(i => i.pimFields.findIndex(x => x.field == field && x.systemKey == system && (x.elementKey == element || element == \"-1\")) != -1);\r\n\r\n for (let item of found) {\r\n needsUpdate = this.removeOrClearExcelElement(item, needsUpdate);\r\n }\r\n }\r\n }\r\n\r\n if (needsUpdate)\r\n this.updateTemplate(null);\r\n }\r\n\r\n public removeOrClearExcelElement(excelElement: ExcelElement, needsUpdate: boolean): boolean {\r\n let index = this.excelModel.indexOf(excelElement);\r\n if (index >= 0) {\r\n\r\n if (excelElement.title == null || excelElement.title == undefined || excelElement.title == \"\" || this.exportMode) {\r\n this.excelModel.splice(index, 1);\r\n } else {\r\n excelElement.pimFields = [];\r\n }\r\n\r\n needsUpdate = true;\r\n }\r\n\r\n return needsUpdate;\r\n }\r\n\r\n public async addDefaultElement(e) {\r\n if (e == null || e.event == undefined)\r\n return;\r\n\r\n let field = e.dField;\r\n let system = e.dSystem;\r\n let element = e.dElement;\r\n let value = e.value;\r\n\r\n if (field == null || field == undefined)\r\n return;\r\n\r\n if ((field == this.fieldNames.supplierPid ||\r\n field == this.fieldNames.internatonalPid ||\r\n field == this.fieldNames.supplierInternationalId ||\r\n field == this.fieldNames.pid)) {\r\n this.systemService.notify(new Message(this.messageSpidIntPidDefaultNotAllowed, \"info\"), 3000);\r\n return;\r\n }\r\n\r\n if (field == this.fieldNames.featureSystemOrder || field == this.fieldNames.fOrder) {\r\n if (system.length != 24) {\r\n this.templateService.changeKey(this._product, e.previousValue, e.value, system, element, field, this.excelModel);\r\n this.updateTemplate(null);\r\n return;\r\n }\r\n }\r\n\r\n if (field == this.fieldNames.featureSystemName || field == this.fieldNames.fName || field == this.fieldNames.fUnit) {\r\n this.templateService.changeKey(this._product, e.previousValue, e.value, system, element, field, this.excelModel);\r\n }\r\n\r\n if (field == \"MIME_ORDER\" || field == \"PRICE_LIST_ORDER\" || field == \"PRICE_ORDER\") {\r\n this.templateService.changeKey(this._product, e.previousValue, e.value, system, element, field, this.excelModel);\r\n this.updateTemplate(null);\r\n return;\r\n }\r\n\r\n if (!e.createTemplateItem) {\r\n return;\r\n }\r\n\r\n this.templateService.refresExcelElementhOrder(this.excelModel);\r\n\r\n let count = this.excelModel.length;\r\n\r\n let excelElement = new ExcelElement();\r\n\r\n if (this.templateService.hasExcelElement(this.excelModel, field, system, element)) {\r\n excelElement = this.templateService.getExcelElement(this.excelModel, field, system, element);\r\n\r\n if (this.exportMode)\r\n this.templateService.clearPreviewRow1Row2(excelElement);\r\n\r\n this.templateService.clearOptions(excelElement);\r\n } else {\r\n excelElement.id = (count + 1).toString();\r\n excelElement.pimFields.push(new NextPimField(element, system, field));\r\n\r\n if (this.exportMode) {\r\n excelElement.title = field;\r\n if (system != null && system >= 0) {\r\n excelElement.title += (\"_\" + system);\r\n if (field != null && field >= 0) {\r\n excelElement.title += (\"_\" + field);\r\n }\r\n }\r\n }\r\n \r\n this.templateService.clearPreviewRow1Row2(excelElement);\r\n this.excelModel.push(excelElement);\r\n }\r\n\r\n\r\n if (field == this.fieldNames.descriptionLong) { // bei dem HTML Editor kommt es nicht in e.value mit...\r\n value = await this.templateService.getValueFromProduct(this._product, false, false, excelElement, field, system, element, \"|\");\r\n } else if (!this.isUpdateModeField(field)) {\r\n if (value == null || value == undefined) {\r\n value = \"\";\r\n } else {\r\n value = await this.templateService.getValueFromProduct(this._product, false, false, excelElement, field, system, element, \"|\");\r\n }\r\n }\r\n\r\n this.templateService.setOptions(excelElement, value, \"\", \"\", \"\", \"|\");\r\n this.updateTemplate(null);\r\n }\r\n\r\n\r\n\r\n public async addElement(field: string, system: string, element: string) {\r\n if (!this.templateService.template) {\r\n this.systemService.notify(new Message(this.messageSelectTemplate, \"info\"), 3000);\r\n return;\r\n }\r\n\r\n if (!this.exportMode) {\r\n return;\r\n }\r\n\r\n if (field == this.fieldNames.fName) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureNameDroppedError\"), \"error\"), 3000);\r\n return;\r\n }\r\n\r\n if (field == this.fieldNames.featureSystemName) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureSystemNameDroppedError\"), \"error\"), 3000);\r\n return;\r\n }\r\n\r\n if (field == this.fieldNames.fUnit) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"FeatureUnitDroppedError\"), \"error\"), 3000);\r\n return;\r\n }\r\n\r\n this.templateService.refresExcelElementhOrder(this.excelModel);\r\n let count = this.excelModel.length;\r\n let excelElement = new ExcelElement();\r\n excelElement.id = (count + 1).toString();\r\n\r\n excelElement.title = field;\r\n let result = await lastValueFrom(this.templateService.getHeadline(field, element, system, this.modelService.loginService.currentCustomer.id));\r\n excelElement.title = result.value;\r\n var existing = this.excelModel.filter(x =>\r\n x.pimFields &&\r\n x.pimFields.some(pimfied => pimfied.field == field && pimfied.systemKey == system && pimfied.elementKey == element));\r\n if (existing && existing.length > 1) {\r\n excelElement.title = excelElement.title + \" (\" + (existing.length) + \")\";\r\n };\r\n\r\n\r\n excelElement.pimFields = [new NextPimField(element, system, field)]\r\n\r\n if (this.exportMode) {\r\n let value = await this.templateService.getValueFromProduct(this._product, true, true, excelElement, field, system, element/*, excelElement.seperator*/);\r\n excelElement.preview = value;\r\n excelElement.row1 = value;\r\n }\r\n\r\n this.excelModel.push(excelElement);\r\n this.updateTemplate(null);\r\n }\r\n\r\n public async addElementFromExcel(field: string, system: string, element: string, index: number) {\r\n let existing = this.excelModel[index];\r\n\r\n await this.clearPimField(new NextPimField(element, system, field), false);\r\n await this.templateService.setValueOnProduct(this._product, false, false, existing, field, system, element, null, this.excelModel, null, true);\r\n existing.pimFields.push(new NextPimField(element, system, field));\r\n\r\n if (this.exportMode) {\r\n this.templateService.clearPreviewRow1Row2(this.excelModel[index]);\r\n }\r\n\r\n this.templateService.clearOptions(this.excelModel[index]);\r\n await this.updateTemplate(null);\r\n\r\n this.selectedElements = this.templateService.createIdentifiers(existing.pimFields);\r\n }\r\n\r\n public removeElement(field: string, system: string, element: string, fromIndex: number) {\r\n if (field == undefined && system == undefined && element == undefined) {\r\n this.excelModel.splice(fromIndex, 1);\r\n } else {\r\n let found = this.excelModel.find(i => i.pimFields.findIndex(x => x.field == field && x.systemKey == system && x.elementKey == element) != -1);\r\n\r\n let indexRight = this.excelModel.indexOf(found);\r\n if (indexRight >= 0) {\r\n this.excelModel.splice(indexRight, 1);\r\n }\r\n }\r\n\r\n this.updateTemplate(null);\r\n }\r\n\r\n public async clearItem(e) {\r\n let matching = this.excelModel.filter(element => element.id == e);\r\n\r\n for (let item of matching) {\r\n if (this.exportMode) {\r\n this.templateService.clearPreviewRow1Row2(item);\r\n\r\n for await (const x of item.pimFields) {\r\n let oldValue = await this.templateService.getValueFromProduct(this._backupProduct, false, true, item, x.field, x.systemKey, x.elementKey, item.seperator);\r\n this.templateService.setValueOnProduct(this._product, false, true, item, x.field, x.systemKey, x.elementKey, oldValue, this.excelModel, item.seperator, true);\r\n };\r\n }\r\n else {\r\n for (const x of item.pimFields) {\r\n this.templateService.setValueOnProduct(this._product, false, false, item, x.field, x.systemKey, x.elementKey, null, this.excelModel, null, true);\r\n }\r\n }\r\n item.pimFields = [];\r\n this.templateService.clearOptions(item);\r\n this.updateTemplate(null);\r\n }\r\n }\r\n\r\n public async clearPimField(pimField: NextPimField, needRefresh: boolean = true) {\r\n let isFeatureKey = pimField.field == this.fieldNames.fName || pimField.field == this.fieldNames.featureSystemName || pimField.field == this.fieldNames.fUnit;\r\n\r\n\r\n let matchingExcelItem = this.excelModel.filter(x => x.pimFields.some(y => (isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey));\r\n\r\n for (let excelItem of matchingExcelItem) {\r\n let pimFieldsToRemove = excelItem.pimFields.filter(y => (isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey);\r\n\r\n if (this.exportMode) {\r\n this.templateService.clearPreviewRow1Row2(excelItem);\r\n\r\n for await (const x of pimFieldsToRemove) {\r\n let oldValue = await this.templateService.getValueFromProduct(this._backupProduct, false, true, excelItem, x.field, x.systemKey, x.elementKey, excelItem.seperator);\r\n await this.templateService.setValueOnProduct(this._product, false, true, excelItem, x.field, x.systemKey, x.elementKey, oldValue, this.excelModel, excelItem.seperator, true);\r\n };\r\n }\r\n else {\r\n for (const x of pimFieldsToRemove) {\r\n await this.templateService.setValueOnProduct(this._product, false, false, excelItem, x.field, x.systemKey, x.elementKey, null, this.excelModel, null, true);\r\n }\r\n }\r\n\r\n\r\n excelItem.pimFields = excelItem.pimFields.filter(y => !((isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey));\r\n this.templateService.clearOptions(excelItem);\r\n }\r\n\r\n this.excelModel = this.excelModel.filter(x => x.pimFields.length > 0 || (x.title != null && x.title != \"\"));\r\n\r\n this.templateService.clearPimFieldEmitterDone.emit();\r\n\r\n if (needRefresh)\r\n await this.updateTemplate(null);\r\n\r\n }\r\n\r\n public async replaceItem(e) {\r\n let i = e.toIndex;\r\n if (i == this.excelModel.length) {\r\n i--; // beim letzten item sowohl DROP davor als auch danach zulassen\r\n }\r\n\r\n if (this.templateService.hasExcelElement(this.excelModel, e.itemData.dField, e.itemData.dSystem, e.itemData.dElement)) {\r\n let existing = this.templateService.getExcelElement(this.excelModel, e.itemData.dField, e.itemData.dSystem, e.itemData.dElement);\r\n let index = this.excelModel.indexOf(existing);\r\n\r\n\r\n this.excelModel[index].pimFields = this.excelModel[index].pimFields.filter(\r\n x => !(x.elementKey == e.itemData.dElement && x.systemKey == e.itemData.dSystem && x.field == e.itemData.dField)\r\n );\r\n\r\n if (this.exportMode) {\r\n this.templateService.clearPreviewRow1Row2(this.excelModel[index]);\r\n }\r\n\r\n this.templateService.clearOptions(this.excelModel[index]);\r\n }\r\n\r\n this.excelModel[i].pimFields.push(new NextPimField(e.itemData.dElement, e.itemData.dSystem, e.itemData.dField));\r\n\r\n if (this.exportMode)\r\n this.templateService.clearPreviewRow1Row2(this.excelModel[i]);\r\n\r\n this.templateService.clearOptions(this.excelModel[i]);\r\n this.updateTemplate(null);\r\n }\r\n\r\n public reorderModel(e) {\r\n if (!this.exportMode) {\r\n return;\r\n }\r\n\r\n this.excelModel.splice(e.fromIndex, 1);\r\n this.excelModel.splice(e.toIndex, 0, e.itemData);\r\n\r\n this.updateTemplate(null);\r\n }\r\n\r\n public async updateTemplate(e) {\r\n\r\n if (this.exportMode) {\r\n // nur im EXPORTMODE!! SONST KOMMT DAS AUS DEM EXCEL-TEMPLATE!!\r\n\r\n for (let item of this.excelModel) {\r\n // \"datenschrott\" verhindern:\r\n // tritt auf, wenn ein geleertes oder gefülltes feld ohne seperator nun mit diesen feldern gefüllt wird\r\n // die array-elemente werden dann mit \"\" gejoined, aus der nummer kommen wir dann später nicht mehr 'raus...\r\n // sollte das der falsche seperator sein, kommt man an den ursprünglichen wert immer noch aus dem _backupProduct 'ran\r\n item.pimFields.forEach(async (field) => {\r\n if (this.templateService.needsStandardSeperator(field.field)) {\r\n if (item.seperator == null || item.seperator == undefined || item.seperator == \"\") {\r\n item.seperator = \"|\";\r\n }\r\n }\r\n\r\n // diese sind noch nicht aktualisiert, werden in getValueFromProduct aber verwendet!!\r\n this.templateService.template.templateItems = this.templateService.createTemplateItems(this.excelModel, this.exportMode);\r\n\r\n let value = await this.templateService.getValueFromProduct(this._product, true, true, item, field.field, field.systemKey, field.elementKey, item.seperator);\r\n item.preview = value;\r\n item.row1 = value;\r\n });\r\n };\r\n }\r\n\r\n this.templateService.template.isExportTemplate = this.exportMode;\r\n this.templateService.template.templateItems = this.templateService.createTemplateItems(this.excelModel, this.exportMode);\r\n this.templateService.updateTemplate(this.templateService.template);\r\n\r\n // Das ist nicht nötig (wir haben daraus grade das Template erzeugt & gespeichert)\r\n // UND es führt zu dem unerwünschten Verhalten s. Ticket https://nextpim.myjetbrains.com/youtrack/issue/nPIM-789\r\n //this.excelModel = this.templateService.createExcelElements(this.templateService.template.templateItems, this.templateService.template.isUseable);\r\n\r\n for (let item of this.excelModel) {\r\n if (this.exportMode) {\r\n // hier nicht - produkt im exportmode nicht verändern\r\n //this.templateService.setValueOnProduct(this._product, true, !this.exportMode, item, item.field, item.system, item.element, item.row1, item.seperator, true);\r\n //this.templateService.setValueOnProduct(this._product, false, this.exportMode, item, item.field, item.system, item.element, item.row1, item.seperator, true);\r\n } else {\r\n if (item.defaultValue != \"\") {\r\n // brauchen wir gar nicht. wert passt ja schon.\r\n // bei einigen Controls wird eine Endlosschleife ausgelöst...\r\n //let value = await this.templateService.getValueFromProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.seperator);\r\n //if (item.defaultValue != value) {\r\n // this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.defaultValue, item.seperator, true);\r\n //}\r\n\r\n\r\n\r\n // UPDATEMODE TODO HERE ????\r\n\r\n\r\n\r\n } else {\r\n // Bei neuen Elementen wurde der Seperator (naturgemäß) noch gar nicht gesetzt\r\n // Strings werden bei \"\" gesplittet:\r\n // Aus 1 z.B.Status \"blau\" werden 4 Status \"b\" \"l\" \"a\" \"u\"\r\n\r\n for (const x of item.pimFields) {\r\n if (this.templateService.needsStandardSeperator(x.field)) {\r\n if (item.seperator == null || item.seperator == undefined || item.seperator == \"\") {\r\n item.seperator = \"|\";\r\n }\r\n }\r\n this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, x.field, x.systemKey, x.elementKey, item.row1, this.excelModel, item.seperator, true);\r\n }\r\n }\r\n\r\n //this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.row1, item.seperator, true);\r\n }\r\n };\r\n\r\n\r\n }\r\n\r\n\r\n\r\n public templateSelected(e) {\r\n this.isVisible = true;\r\n // product reset\r\n if (this.exportMode) {\r\n this._product = this.modelService.productService.getProductFromJson(this._backupProduct, this.modelService.loginService.wawiSettings); // **\r\n //this._product.linkedFields = []; //hier eig. nicht, wenn am _backupProduct schon geleert ??\r\n } else {\r\n this._product = this.modelService.productService.getProductFromJson(new Product(), this.modelService.loginService.wawiSettings);\r\n this._backupProduct = this.modelService.productService.getProductFromJson(new Product(), this.modelService.loginService.wawiSettings);\r\n }\r\n\r\n if (this.templateService.template) {\r\n this.excelModel = this.templateService.createExcelElements(this.templateService.template.templateItems, this.templateService.template.isUseable);\r\n\r\n this.excelModel.forEach(item => {\r\n item.pimFields.forEach(x => {\r\n if (item.defaultValue != \"\") {\r\n if (this.isUpdateModeField(x.field)) {\r\n this.refreshUpdateModes(item);\r\n } else {\r\n this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, x.field, x.systemKey, x.elementKey, item.defaultValue, this.excelModel, item.seperator, true);\r\n }\r\n } else {\r\n this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, x.field, x.systemKey, x.elementKey, item.row1, this.excelModel, item.seperator, true);\r\n this.templateService.template.isUseable = true;\r\n }\r\n });\r\n });\r\n } else {\r\n this.excelModel = [];\r\n }\r\n this.isVisible = false;\r\n }\r\n\r\n\r\n\r\n private isUpdateModeField(field: string): boolean {\r\n if (field == this.fieldNames.featureUpdateMode || field == this.fieldNames.mimeUpdateMode || field == this.fieldNames.priceUpdateMode ||\r\n field == this.fieldNames.udxUpdateMode || field == this.fieldNames.supplierUpdateMode) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private refreshUpdateModes(element: ExcelElement) {\r\n element.pimFields.forEach(x => {\r\n if (x.field == this.fieldNames.mimeUpdateMode)\r\n this.mimeUpdateMode = element.defaultValue;\r\n\r\n if (x.field == this.fieldNames.featureUpdateMode)\r\n this.featureUpdateMode = element.defaultValue;\r\n\r\n if (x.field == this.fieldNames.priceUpdateMode)\r\n this.priceUpdateMode = element.defaultValue;\r\n\r\n if (x.field == this.fieldNames.udxUpdateMode)\r\n this.udxUpdateMode = element.defaultValue;\r\n\r\n if (x.field == this.fieldNames.supplierUpdateMode)\r\n this.supplierUpdateMode = element.defaultValue;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n private _mimeUpdateMode: string = \"NORMAL\";\r\n\r\n get mimeUpdateMode(): string {\r\n return this._mimeUpdateMode;\r\n }\r\n\r\n @Input()\r\n set mimeUpdateMode(value: string) {\r\n this._mimeUpdateMode = value;\r\n }\r\n\r\n mimeUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.mimeUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.mimeUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.mimeUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.mimeUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n private _featureUpdateMode: string = \"NORMAL\";\r\n\r\n get featureUpdateMode(): string {\r\n return this._featureUpdateMode;\r\n }\r\n\r\n @Input()\r\n set featureUpdateMode(value: string) {\r\n this._featureUpdateMode = value;\r\n }\r\n\r\n featureUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.featureUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.featureUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.featureUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.featureUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n private _priceUpdateMode: string = \"NORMAL\";\r\n\r\n get priceUpdateMode(): string {\r\n return this._priceUpdateMode;\r\n }\r\n\r\n @Input()\r\n set priceUpdateMode(value: string) {\r\n this._priceUpdateMode = value;\r\n }\r\n\r\n priceUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.priceUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.priceUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.priceUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.priceUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n private _udxUpdateMode: string = \"NORMAL\";\r\n\r\n get udxUpdateMode(): string {\r\n return this._udxUpdateMode;\r\n }\r\n\r\n @Input()\r\n set udxUpdateMode(value: string) {\r\n this._udxUpdateMode = value;\r\n }\r\n\r\n udxUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.udxUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.udxUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.udxUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.udxUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n private _supplierUpdateMode: string = \"NORMAL\";\r\n\r\n get supplierUpdateMode(): string {\r\n return this._supplierUpdateMode;\r\n }\r\n\r\n @Input()\r\n set supplierUpdateMode(value: string) {\r\n this._supplierUpdateMode = value;\r\n }\r\n\r\n supplierUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.supplierUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.supplierUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.supplierUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.supplierUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n private _categoryUpdateMode: string = \"NORMAL\";\r\n\r\n get categoryUpdateMode(): string {\r\n return this._categoryUpdateMode;\r\n }\r\n\r\n @Input()\r\n set categoryUpdateMode(value: string) {\r\n this._categoryUpdateMode = value;\r\n }\r\n\r\n categoryUpdateModeChanged(e) {\r\n if (this.exportMode) {\r\n return;\r\n }\r\n\r\n if (this.categoryUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.categoryUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.categoryUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.categoryUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n private buildListsAndTables() {\r\n if (this._product == null || this._product == undefined) {\r\n return;\r\n }\r\n\r\n this._product.featureSystems.forEach(item => {\r\n item.featureSystemList = this.templateService.createListForSystem(item);\r\n item.featureSystemTable = this.templateService.createTableForSystem(item);\r\n });\r\n\r\n this._product.featurelist = this.templateService.createTableForAllSystems(this._product.featureSystems);\r\n this._product.descWithoutHTML = Functions.stripHTML(this._product.descriptionLong);\r\n this._product.groupString = this.templateService.createGroupString(this.excelModel);\r\n }\r\n}\r\n","<dx-scroll-view showScrollbar=\"always\" height=\"inherit\">\r\n <dx-tile-view class=\"dx-tile-content excelFields\" height=\"inherit\" [baseItemWidth]=\"285\" direction=\"vertical\" baseItemHeight=\"15\">\r\n <dxi-item *ngFor=\"let group of groups\"\r\n [widthRatio]=\"1\"\r\n [heightRatio]=\"getHeightRatio(group.name)\">\r\n <div class=\"p-1 pb-3\">\r\n <dx-check-box [value]=\"group.active\"\r\n (onValueChanged)=\"selectGroup($event,group.name)\"\r\n style=\"float: left; padding-right: 10px;\">\r\n </dx-check-box>\r\n <b>{{group.name}}</b>\r\n </div>\r\n <div *ngFor=\"let field of fields\">\r\n <div *ngIf=\"field.group==group.name\" style=\"height: 35px\">\r\n <div style=\"width: 40px; float: left; padding-left: 10px;\">\r\n <dx-check-box [(value)]=\"field.active\" (onValueChanged)=\"selectField($event,field)\"></dx-check-box>\r\n </div>\r\n <label class=\"exportLabel\">{{field.field}}</label>\r\n <div style=\"width: calc(100% - 30px); margin-left: 40px;\" class=\"exportText\">{{ field.field | translate }}</div>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n </dx-tile-view>\r\n</dx-scroll-view>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TemplateItemTemplate } from '../../../../../Model/Catalog/TemplateItemTemplate';\r\nimport { ExportParameter } from '../../../../../Model/exportParameter/ExportParameter';\r\n\r\n@Component({\r\n selector: 'fieldList',\r\n templateUrl: './fieldList.component.html',\r\n styleUrls: ['./fieldList.component.css']\r\n})\r\nexport class FieldListComponent implements OnInit {\r\n @Input() set exportParameter(value: ExportParameter) {\r\n this._exportParameter = value;\r\n this.selectFieldsFromConfig();\r\n };\r\n @Input() fields: TemplateItemTemplate[];\r\n @Input() fieldGroups: string[];\r\n\r\n get exportParameter() {\r\n return this._exportParameter;\r\n }\r\n _exportParameter: ExportParameter;\r\n groups: { name: string, active: boolean }[];\r\n\r\n ngOnInit(): void {\r\n if (this.exportParameter.fields == null)\r\n this.exportParameter.fields = ['SUPPLIER_PID'];\r\n \r\n this.selectFieldsFromConfig();\r\n }\r\n\r\n selectGroup(event, group) {\r\n for (var field of this.fields) {\r\n if (field.group == group) {\r\n if (field.field != 'SUPPLIER_PID') {\r\n field.active = event.value;\r\n }\r\n }\r\n }\r\n this.syncFieldWithConfig();\r\n }\r\n\r\n selectField(event, field) {\r\n if (event.event != null)\r\n this.syncFieldWithConfig();\r\n }\r\n\r\n syncFieldWithConfig() {\r\n if (this.exportParameter.fields == null)\r\n this.exportParameter.fields = ['SUPPLIER_PID'];\r\n\r\n this.exportParameter.fields = this.fields.filter(x => x.active).map(x => x.field); \r\n }\r\n\r\n selectFieldsFromConfig() {\r\n if (this.exportParameter.fields == null)\r\n this.exportParameter.fields = ['SUPPLIER_PID'];\r\n\r\n this.fields.forEach(x => {\r\n x.active = this.exportParameter.fields.some(y => y == x.field);\r\n });\r\n\r\n this.groups = this.fieldGroups.map(x => { return { name: x, active: false } });\r\n this.groups.forEach(x => {\r\n x.active = !this.fields.some(y => y.group == x.name && !y.active)\r\n });\r\n }\r\n\r\n getHeightRatio(group): number {\r\n var list = this.fields.filter(item => item.group == group);\r\n return list.length + 2;\r\n }\r\n}\r\n","<div>\r\n <div class=\"dx-fieldset\" [ngStyle]=\"{'margin': '20px 30px'}\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" id=\"useTextQualifier\">{{ 'Text Qualifierer verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportParameter.useTextQualifier></dx-switch>\r\n </div>\r\n <dx-tooltip target=\"#useTextQualifier\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">\r\n <div style=\"width=400px\">\r\n {{ 'Bei CSV Dateien ist ein Text Qualifizierer (textqualifier) das Zeichen, das verwendet wird, um Textfelder zu umschließen, insbesondere wenn diese Felder Kommas oder andere spezielle Zeichen enthalten, die sonst als Trennzeichen interpretiert würden. Die gängigsten Textqualifizierer sind Anführungszeichen oder Apostrophe .' | translate }}\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"exportParameter.useTextQualifier\">\r\n <div class=\"dx-field-label\">{{ 'Text Qualifierer' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=exportParameter.textQualifier maxLength=\"1\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"!exportParameter.includeMime\">\r\n <div class=\"dx-field-label\">{{ 'Trennzeichen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=exportParameter.delimiter maxLength=\"1\" ></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ExportParameter } from '../../../../../Model/exportParameter/ExportParameter';\r\nimport { ModelService } from '../../../../../Services/model.service';\r\n\r\n@Component({\r\n selector: 'csvSettings',\r\n templateUrl: './csvSettings.component.html'\r\n\r\n})\r\nexport class CsvSettingsComponent implements OnInit {\r\n @Input() exportParameter: ExportParameter;\r\n\r\n \r\n\r\n constructor(public modelService: ModelService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n \r\n\r\n}\r\n","<div class=\"d-flex flex-column\" [ngStyle]=\"{'height': 'inherit'}\">\r\n <dx-toolbar>\r\n <dxi-item location=\"before\">\r\n <div class=\"dx-field\">\r\n <dx-select-box [dataSource]=\"exportFormats\"\r\n [(value)]=\"config.format\"\r\n fieldTemplate=\"field\"\r\n label=\"{{ 'Export Format' | translate }}\"\r\n (onValueChanged)=\"setExportVersions()\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n {{data | translate}}\r\n </div>\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <dx-text-box [readOnly]=\"true\" value=\"{{data | translate}}\"></dx-text-box>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </dxi-item>\r\n <dxi-item location=\"before\">\r\n <div class=\"dx-field\">\r\n <dx-select-box *ngIf=\"exportVersions.length > 0\"\r\n [dataSource]=\"exportVersions\"\r\n fieldTemplate=\"field\"\r\n [(value)]=\"config.version\"\r\n label=\"{{ 'Export Version' | translate }}\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n {{data | translate}}\r\n </div>\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <dx-text-box [readOnly]=\"true\" value=\"{{data | translate}}\"></dx-text-box>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </dxi-item>\r\n <dxi-item location=\"before\" width=\"100%\">\r\n <div class=\"dx-field\">\r\n <div id=\"useFeatureOrderSwitch\" class=\"dx-field-label\" style=\"width:150px;\" *ngIf=\"(config.format == 'FIELDLIST' || config.version == 'FIELDLIST') && loginService.hasAddonEXCEL_ORDER_EXPORT\">{{ 'Features nach Order' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"config.useFeatureOrder\" *ngIf=\"(config.format == 'FIELDLIST' || config.version == 'FIELDLIST') && loginService.hasAddonEXCEL_ORDER_EXPORT\"> </dx-switch>\r\n <dx-tooltip target=\"#useFeatureOrderSwitch\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'Hier können Sie einstellen, ob die Features nach Order oder nach Namen ausgegeben werden' | translate }} </div>\r\n </dx-tooltip>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n\r\n\r\n <dxi-item location=\"after\">\r\n <ng-content select=\"[header]\"></ng-content>\r\n </dxi-item>\r\n </dx-toolbar>\r\n\r\n\r\n <dx-tab-panel repaintChangesOnly=\"true\" [ngStyle]=\"{'overflow-y': 'hidden'}\" class=\"flex-grow-1\">\r\n <dxi-item title=\"{{ 'Konfiguration' | translate}}\">\r\n <div *dxTemplate>\r\n <dx-scroll-view showScrollbar=\"always\" height=\"inherit\">\r\n <exportConfiguration [(exportParameter)]=\"config\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></exportConfiguration>\r\n </dx-scroll-view>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item title=\"{{ 'Filter auswählen' | translate}}\">\r\n <div *dxTemplate>\r\n <dx-tab-panel repaintChangesOnly=\"true\" [(selectedIndex)]=\"filterIndex\" [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxi-item title=\"{{ 'Produktstatus filtern' | translate}}\">\r\n <div *dxTemplate>\r\n <productStateFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></productStateFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Kategorien filtern' | translate}}\">\r\n <div *dxTemplate>\r\n <categoryFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></categoryFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Hersteller' | translate}}\">\r\n <div *dxTemplate>\r\n <manufacturerFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></manufacturerFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Lieferant' | translate}}\">\r\n <div *dxTemplate>\r\n <supplierContentFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></supplierContentFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item *ngIf=\"loginService.hasAddonUDX\" title=\"{{ 'Udx filtern' | translate}}\">\r\n <div *dxTemplate>\r\n <udxFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></udxFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Datum' | translate}}\">\r\n <div *dxTemplate>\r\n <dateFilter [(exportParameter)]=\"config\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></dateFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Liste' | translate}}\">\r\n <div *dxTemplate>\r\n <searchByListFilter [(exportParameter)]=\"config\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></searchByListFilter>\r\n </div>\r\n </dxi-item>\r\n </dx-tab-panel>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item title=\"{{ 'Inhalte auswählen' | translate}}\">\r\n <div *dxTemplate>\r\n <dx-tab-panel [(selectedIndex)]=\"contentIndex\" [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxi-item title=\"{{ 'Features auswählen' | translate}}\">\r\n <div *dxTemplate>\r\n <featureContentFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></featureContentFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item title=\"{{ 'Preislisten auswählen' | translate}}\">\r\n <div *dxTemplate>\r\n <pricelistContentFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></pricelistContentFilter>\r\n </div>\r\n </dxi-item>\r\n <dxi-item *ngIf=\"loginService.hasAddonUDX\" title=\"{{ 'Udx auswählen' | translate}}\">\r\n <div *dxTemplate>\r\n <udxContentFilter [(exportParameter)]=\"config\" [catalogId]=\"catalogId\" [ngStyle]=\"{'height': '100%', 'width':'100%', 'display': 'inline-block'}\"></udxContentFilter>\r\n </div>\r\n </dxi-item>\r\n </dx-tab-panel>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item *ngIf=\"(loginService.hasAddonEXCEL_TEMPLATE && (config.format == 'TEMPLATE' || config.version == 'TEMPLATE' ))\" title=\"{{ 'Excel Template' | translate}}\">\r\n <div *dxTemplate>\r\n <dx-scroll-view showScrollbar=\"always\" height=\"inherit\">\r\n <template-editor class=\"w-100 h-100\"\r\n [showSelector]=\"true\"\r\n [exportMode]=\"true\"\r\n [templateChange]=\"onTemplateChange.asObservable()\">\r\n </template-editor>\r\n </dx-scroll-view>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item *ngIf=\"(config.format == 'FIELDLIST' || config.version == 'FIELDLIST')\" title=\"{{ 'Excel Fields' | translate}}\">\r\n <div *dxTemplate>\r\n <fieldList [fields]=\"catalogService.fields\"\r\n [fieldGroups]=\"updateTemplateService.GetFieldGroups()\"\r\n [(exportParameter)]=\"config\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n </fieldList>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item *ngIf=\"(config.version == 'CSV')\" title=\"{{ 'CSV Einstellungen' | translate}}\">\r\n <div *dxTemplate>\r\n <csvSettings [(exportParameter)]=\"config\" [ngStyle]=\"{'height': 'inherit'}\"></csvSettings>\r\n </div>\r\n </dxi-item>\r\n </dx-tab-panel>\r\n\r\n\r\n \r\n\r\n <div [ngStyle]=\"{'margin-top': '10px', 'border': 'lightgray', 'border-top': 'inset'}\">\r\n <dx-toolbar>\r\n <dxi-item [ngStyle]=\"{'margin-top': '10px'}\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"{{getClass()}}\"> {{getConfigSummary()}} </div>\r\n <div class=\"d-flex flex-row\" [ngStyle]=\"{'align-self': 'center', 'align-items': 'center'}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n </dx-toolbar>\r\n </div>\r\n</div>\r\n","import { Component, ViewChild, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { DxTreeViewComponent, DxSelectBoxComponent } from \"devextreme-angular\";\r\nimport { custom } from \"devextreme/ui/dialog\";\r\nimport { lastValueFrom, Observable, Subject } from \"rxjs\";\r\nimport { TemplateItemTemplate } from \"../../../../../Model/Catalog/TemplateItemTemplate\";\r\nimport { CatalogFilter } from \"../../../../../Model/exportParameter/CatalogFilter\";\r\nimport { ExportFormatWithVersions } from \"../../../../../Model/exportParameter/ExportFormatWithVersions\";\r\nimport { ExportParameter } from \"../../../../../Model/exportParameter/ExportParameter\";\r\nimport { Message } from \"../../../../../Model/System/Message\";\r\nimport { CatalogService } from \"../../../../../Services/CatalogManagement/catalog.service\";\r\nimport { ExportConfigurationService } from \"../../../../../Services/exportConfiguration.service\";\r\nimport { JobService } from \"../../../../../Services/job.service\";\r\nimport { LoginService } from \"../../../../../Services/login.service\";\r\nimport { ModelService } from \"../../../../../Services/model.service\";\r\nimport { TemplateService } from \"../../../../../Services/template.service\";\r\nimport { UpdateTemplateService } from \"../../../../../Services/updateTemplate.service\";\r\n\r\n@Component({\r\n selector: \"exportParameter\",\r\n templateUrl: \"exportParameter.component.html\",\r\n styleUrls: [\"exportParameter.component.css\"]\r\n})\r\nexport class ExportParameterComponent implements OnInit {\r\n @Input() catalogId: string;\r\n\r\n _config: ExportParameter;\r\n @Input() set config(value) {\r\n this._config = value;\r\n this.initConfig();\r\n }\r\n\r\n get config() {\r\n return this._config;\r\n }\r\n\r\n contentIndex = 0;\r\n filterIndex = 0;\r\n onTemplateChange: EventEmitter<string> = new EventEmitter<string>();\r\n exportFormats: string[] = [];\r\n exportVersions: string[] = [];\r\n private exportFormatWithVersions: ExportFormatWithVersions[] = [];\r\n private prevConfig: ExportParameter;\r\n\r\n constructor(\r\n public loginService: LoginService,\r\n public templateService: TemplateService,\r\n public translate: TranslateService,\r\n public exportConfigurationService: ExportConfigurationService,\r\n public jobService: JobService,\r\n public catalogService: CatalogService,\r\n public updateTemplateService: UpdateTemplateService\r\n ) {\r\n if (loginService.currentUser.customerId == null)\r\n loginService.currentUser.customerId = loginService.currentCustomer.id;\r\n }\r\n\r\n\r\n async ngOnInit() {\r\n this.catalogService.loadFields();\r\n this.exportFormatWithVersions = await lastValueFrom(this.exportConfigurationService.getExportFormatWithVersions(this.loginService.currentUser.customerId));\r\n this.exportFormats = this.exportFormatWithVersions.map(x => x.exportFormat);\r\n this.fixExportFormat();\r\n this.setExportVersions();\r\n this.initConfig();\r\n }\r\n\r\n initConfig() {\r\n if (this.prevConfig != null && this.prevConfig?.id == this._config.id)\r\n return;\r\n\r\n this.prevConfig = JSON.parse(JSON.stringify(this._config));\r\n this._config.customerId = this.loginService.currentUser.customerId;\r\n this._config.catalogId = this.catalogId;\r\n\r\n if (this._config.templateId != null) {\r\n this.templateService.getExportTemplates().then(() => {\r\n this.templateService.setCurrentExportTemplate(this._config.templateId);\r\n });\r\n } else {\r\n this.templateService.setCurrentExportTemplate(null);\r\n }\r\n this.onTemplateChange.emit();\r\n }\r\n\r\n getConfigSummary(): string {\r\n var summary = this.translate.instant(\"Es sind folgende Einstellungen gesetzt:\");\r\n return summary + this._config.getSummary(this.translate);\r\n }\r\n\r\n getClass() {\r\n return this._config.isDifferent(this.prevConfig) ? \"orange\" : \"\";\r\n }\r\n\r\n\r\n\r\n fixExportFormat() {\r\n if (!this.exportFormats.some(x => x == this._config.format)) {\r\n this._config.format = this.exportFormats[0];\r\n }\r\n }\r\n\r\n setExportVersions() {\r\n this.exportVersions = this.exportFormatWithVersions.find(x => x.exportFormat == this.config.format)?.exportVersions;\r\n if (!this.exportVersions)\r\n this.exportVersions = [];\r\n\r\n this.fixExportVersion();\r\n }\r\n\r\n fixExportVersion() {\r\n if (!this.exportVersions?.some(x => x == this._config.version)) {\r\n this._config.version = this.exportVersions[0];\r\n }\r\n } \r\n}\r\n","<div class=\"d-flex flex-row\" *ngIf=\"catalogName && catalogName != ''\">\r\n <div class=\"flex-column p-1\">\r\n <b>{{ 'Katalog' | translate }}: </b>\r\n </div>\r\n <div class=\"flex-column p-1\">\r\n <a class=\"cataloglink\" (click)=\"openCatalogById(job.catalogId)\"> {{catalogName}}</a>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex flex-row \" *ngIf=\"resultCatalogName != ''\">\r\n <div class=\"flex-column p-1\">\r\n <b>{{ 'Ergebnis Katalog' | translate }}: </b>\r\n </div>\r\n <div class=\"flex-column p-1\">\r\n <a class=\"cataloglink\" (click)=\"openCatalogById(job.resultCatalogId)\"> {{resultCatalogName}}</a>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex flex-row \" *ngIf=\"job.type!='CatalogAction'\">\r\n <div class=\"flex-column p-1\">\r\n <b>{{ 'Dateiname' | translate }}: </b>\r\n </div>\r\n <div class=\"flex-column p-1\">\r\n {{ job.name }}\r\n </div>\r\n <div class=\"flex-column p-1\">\r\n <a *ngIf=\"job.fileNameBlobUri!=undefined\" [href]=\"job.fileNameBlobUri\" class=\"dx-icon dx-icon-download\" title=\"{{ 'Dateidownload' | translate }}\"></a>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex flex-row\" *ngIf=\"job.started\">\r\n <div class=\"flex-column p-1\">\r\n <b> {{ 'Start' | translate }}: </b> {{ job.started | date : 'HH:mm:ss - dd.MMM'}}\r\n </div>\r\n <div class=\"flex-column p-1\" *ngIf=\"!job.ended\">\r\n <b> {{ 'Letztes Update' | translate }}:</b> {{ job.lastUpdate | date : 'HH:mm:ss - dd.MMM'}}\r\n </div>\r\n\r\n\r\n <div class=\"flex-column p-1\" *ngIf=\"job.ended\">\r\n <b> {{ 'Zeit' | translate }}:</b> {{ time(job.started,job.ended) }}\r\n </div>\r\n</div>\r\n<div class=\"d-flex flex-row\">\r\n <div class=\"flex-column p-1\">\r\n <b>{{ 'Datei' | translate }}: </b>\r\n <a href=\"{{originialFileLink}}\" title=\"{{ 'Dateidownload' | translate }}\">{{ job.filename}}</a>\r\n\r\n <div *ngIf=\"hasExportParameter(this.job)\">\r\n <dx-button (onClick)=\"togglePopup()\">{{ 'Export Einstellungen' | translate }}</dx-button>\r\n <div *ngIf=\"this.exportParam != undefined\">\r\n <dx-popup [(visible)]=\"isPopupVisible\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showTitle]=\"true\"\r\n class=\"d-flex flex-column\"\r\n title=\"ExportParameter\">\r\n <exportParameter [(config)]=\"exportParam\" [catalogId]=\"job.catalogId\" [ngStyle]=\"{'height': '93%'}\">\r\n <dx-button (click)=\"export($event)\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Exportieren' | translate }}\"></dx-button>\r\n </exportParameter>\r\n </dx-popup>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex flex-row p-1\" *ngIf=\"isValidatable(job)\">\r\n <div class=\"flex-column\">\r\n <dx-button type=\"normal\" (click)=\"validateExport(job)\">{{ 'Export validieren' | translate }}</dx-button>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n<div class=\"p-1\" style=\"background-color: white\">\r\n\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"align-self-center flex-column\" style=\"width: 60px;\">\r\n <b> {{ 'Zeit' | translate }} </b>\r\n </div>\r\n <div class=\"align-self-center flex-column\" style=\"width: 20px;\">\r\n\r\n </div>\r\n <div class=\"flex-fill align-self-center flex-column \">\r\n <b> {{ 'Ereignis' | translate }}</b>\r\n </div>\r\n </div>\r\n\r\n <div class=\" d-flex flex-row\" *ngFor=\"let event of events\">\r\n <div class=\"align-self-center flex-column\" style=\"width: 60px;\">\r\n {{event.created | date : 'HH:mm:ss'}}\r\n </div>\r\n <div class=\"align-self-center flex-column\" style=\"width: 20px;\">\r\n <i class=\"{{getIconClass(event.eventType)}}\"></i>\r\n </div>\r\n <div *ngIf=\"event.eventType=='HTML'; else notHTMLEvent\">\r\n <div class=\"flex-fill align-self-center flex-column \" [innerHTML]=\"getEventMessage(event)\"> </div>\r\n </div>\r\n\r\n <ng-template #notHTMLEvent>\r\n <div class=\"flex-fill align-self-center flex-column \">\r\n {{getEventMessage(event)}}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n<br />\r\n<div *ngIf=\"job.state==3\">\r\n <a href=\"{{getHelpMaillink(job.id)}}\">{{ 'Wenn Sie bei diesem Job Hilfe brauchen, dann behalten Sie bitte den Job' | translate }}<br /> {{ 'und senden uns die JobID' | translate }}: {{job.id}}</a>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { BackgroundJob } from \"../../Model/Dto/BackgroundJob\";\r\nimport { ValidateExportJob } from \"../../Model/Dto/ValidateExportJob\";\r\nimport { JobService } from \"../../Services/job.service\";\r\nimport { BackgroundJobEvent } from \"../../Model/Dto/BackgroundJobEvent\";\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\n\r\n\r\n@Component({\r\n selector: \"jobDetail\",\r\n templateUrl: \"./jobDetail.component.html\",\r\n styleUrls: [\"../jobList.component.css\"]\r\n})\r\nexport class JobDetailComponent implements OnInit, OnDestroy {\r\n @Input() job: BackgroundJob;\r\n @Input() dataGrid: DxDataGridComponent;\r\n @Input() isVisible: boolean;\r\n\r\n @Output() onInitialized = new EventEmitter();\r\n public events: BackgroundJobEvent[] = [];\r\n public timer: NodeJS.Timeout = null;\r\n public originialFileLink = \"\";\r\n firstViewInit = true;\r\n isPopupVisible: boolean;\r\n public exportParam: ExportParameter;\r\n\r\n catalogName: string = \"\";\r\n resultCatalogName: string = \"\";\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public jobService: JobService, public catalogService: CatalogService) {\r\n this.isValidatable = this.isValidatable.bind(this);\r\n this.validateExport = this.validateExport.bind(this);\r\n this.getCatalogNameById = this.getCatalogNameById.bind(this);\r\n this.time = this.time.bind(this);\r\n this.getIconClass = this.getIconClass.bind(this);\r\n this.getOrignalFile = this.getOrignalFile.bind(this);\r\n this.getEventMessage = this.getEventMessage.bind(this);\r\n this.ngOnDestroy = this.ngOnDestroy.bind(this);\r\n this.ngOnInit = this.ngOnInit.bind(this);\r\n this.openCatalogById = this.openCatalogById.bind(this);\r\n this.hasExportParameter = this.hasExportParameter.bind(this);\r\n this.updateCatalogNamesIfNeeded = this.updateCatalogNamesIfNeeded.bind(this);\r\n this.updateEvents = this.updateEvents.bind(this);\r\n\r\n this.isPopupVisible = false;\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n clearInterval(this.timer);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getOrignalFile()\r\n this.updateEvents();\r\n\r\n await this.updateEvents();\r\n\r\n if (this.hasExportParameter(this.job)) {\r\n this.exportParam = Object.assign(new ExportParameter(), await this.jobService.getExportJobParameter(this.job.id, this.modelService.loginService.currentUser.customerId).toPromise());\r\n let i = 0;\r\n }\r\n }\r\n\r\n togglePopup(): void {\r\n this.isPopupVisible = !this.isPopupVisible;\r\n }\r\n\r\n async updateEvents() {\r\n if (!(this.isVisible && this.dataGrid.instance.isRowExpanded(this.job.id))) {\r\n setTimeout(this.updateEvents, 1750);\r\n return;\r\n }\r\n\r\n await this.updateCatalogNamesIfNeeded();\r\n let newEvents = await this.jobService.getJobEvents(this.job.id).toPromise();\r\n let originalCount = this.events.length;\r\n\r\n this.events = newEvents;\r\n\r\n if (this.events.length != originalCount) {\r\n this.onInitialized.emit();\r\n }\r\n\r\n //stop refreshing if state is Finished, Error or DataProblem\r\n switch (this.job.state) {\r\n case 2:\r\n case 3:\r\n case 10:\r\n setTimeout(this.updateEvents, 5000);\r\n return;\r\n }\r\n setTimeout(this.updateEvents, 1750);\r\n\r\n }\r\n\r\n async updateCatalogNamesIfNeeded() {\r\n if (this.job.catalogId && (!this.catalogName || this.catalogName == \"\")) {\r\n let catalogName = await this.getCatalogNameById(this.job.catalogId);\r\n this.catalogName = catalogName;\r\n }\r\n\r\n if (this.job.resultCatalogId && (!this.resultCatalogName || this.resultCatalogName == \"\")) {\r\n let result = await this.getCatalogNameById(this.job.resultCatalogId)\r\n this.resultCatalogName = result;\r\n\r\n }\r\n }\r\n\r\n isValidatable(job: BackgroundJob): boolean {\r\n if (!job.resultFile)\r\n return false;\r\n\r\n return (job.typeText === 'Export' && job.state === 2 && job.resultFile.endsWith('.zip'));\r\n }\r\n\r\n hasExportParameter(job: BackgroundJob): boolean {\r\n return job.typeText === 'Export' || job.typeText === 'IntershopExport';\r\n }\r\n\r\n export() {\r\n this.exportParam.customerId = this.modelService.loginService.currentCustomer.id;\r\n this.exportParam.catalogId = this.job.catalogId;\r\n this.modelService.catalogService.exportVisible = false;\r\n this.modelService.catalogService.createExportJob(this.exportParam).subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n this.isPopupVisible = false;\r\n }\r\n\r\n validateExport(data: BackgroundJob) {\r\n let dto = new ValidateExportJob();\r\n dto.customerId = this.modelService.loginService.currentUser.customerId;\r\n dto.jobId = data.id;\r\n this.modelService.jobService.validateExportJob(dto)\r\n .subscribe(success => {\r\n if (success) {\r\n let i = 1;\r\n }\r\n });\r\n }\r\n\r\n async getCatalogNameById(id: string): Promise<string> {\r\n return await this.catalogService.getCatalogName(id, this.modelService.loginService.currentUser.customerId);\r\n }\r\n\r\n time(started, ended) {\r\n // TODO: SAME in AdminComponent ==> move into a service!!\r\n var time = (Date.parse(ended) - Date.parse(started)) / 1000;\r\n if (time < 600) {\r\n let text = this.translate.instant(\"Sekunden\");\r\n return Math.floor(time * 10) / 10 + \" \" + text;\r\n }\r\n let text = this.translate.instant(\"Minuten\");\r\n time = time / 60;\r\n return Math.floor(time) + \" \" + text;\r\n }\r\n\r\n getIconClass(icon) {\r\n return JobService.getIconClass(icon);\r\n }\r\n\r\n getEventMessage(e: BackgroundJobEvent) {\r\n let result = \"\";\r\n if (e.parameter) {\r\n e.parameter = e.parameter.replace(\"\\n\", \"\"); //removing line breaks\r\n let param = JSON.parse(e.parameter);\r\n result = this.translate.instant(e.message, param);\r\n } else {\r\n result = this.translate.instant(e.message);\r\n }\r\n return result;\r\n }\r\n\r\n getOrignalFile() {\r\n if (this.job.filenameBlobUri != undefined) {\r\n this.originialFileLink = this.job.filenameBlobUri;\r\n }\r\n if (this.job.filename) {\r\n this.modelService.mediaService.getJobDataElement(this.modelService.loginService.currentUser.customerId, this.job.id.toString())\r\n .subscribe((result: any) => {\r\n if (result.items.length >= 1)\r\n this.originialFileLink = result.items[0].blobUri;\r\n });\r\n }\r\n }\r\n\r\n getHelpMaillink(id: string) {\r\n return \"mailto:support@nextpim.de?subject=Support%20f%C3%BCr%20Job%20\" + id + \"&body=Sehr%20geehrte%20Damen%20und%20Herren%2C%0A%0Aich%20ben%C3%B6tige%20Hilfe%20beim%20Job%20mit%20der%20ID%20\" + id;\r\n }\r\n\r\n\r\n async openCatalogById(catalogId) {\r\n await this.modelService.router.navigateByUrl('/', { skipLocationChange: true });\r\n //this.modelService.router.routeReuseStrategy.shouldReuseRoute = function () { return false; };\r\n await this.modelService.router.navigate([\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + catalogId]);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Bemerkung' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-area [(value)]=\"remarks\"\r\n [height]=\"130\">\r\n </dx-text-area>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Anheften läuft ab' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-date-box id=\"date\"\r\n [(value)]=\"pinExpires\"\r\n displayFormat=\"dd.MM.yyyy HH:mm:ss\"\r\n type=\"datetime\"\r\n valueChangeEvent=\"focusout\"\r\n [showClearButton]=\"true\">\r\n </dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Speichern' | translate }}\" (onClick)=\"onAdd()\"></dx-button>\r\n <dx-button *ngIf=\"pinned==true\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Löschen' | translate }}\" (onClick)=\"onRemove()\"></dx-button>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"pindata\",\r\n templateUrl: \"pindata.component.html\"\r\n})\r\nexport class PinDataComponent implements OnInit, OnDestroy {\r\n\r\n @Input() pinned: boolean = false;\r\n @Input() remarks: string = \"\";\r\n @Input() pinExpires?: Date = null;\r\n\r\n @Output() onAdded = new EventEmitter<any>();\r\n @Output() onRemoved = new EventEmitter<any>();\r\n\r\n constructor(public translate: TranslateService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n onAdd() {\r\n let parameter = { remarks: this.remarks, pinExpires: this.pinExpires };\r\n this.onAdded.emit(parameter);\r\n\r\n this.remarks = \"\";\r\n this.pinExpires = null;\r\n }\r\n\r\n onRemove() {\r\n this.onRemoved.emit();\r\n }\r\n}\r\n","<dx-data-grid #jobGrid\r\n id=\"jobGridContainer\"\r\n [ngStyle]=\"{'max-height': jobListMode ? '670px' : {}}\"\r\n [filterValue]=\"filterValue\"\r\n [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"{ groupPaging: true }\"\r\n [allowColumnReordering]=\"true\"\r\n [repaintChangesOnly]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"nextColumn\"\r\n noDataText=\"{{ 'keine Jobs' | translate }}\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [showBorders]=\"true\"\r\n (onContentReady)=\"startRefresher()\">\r\n\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"true\" expandMode=\"rowClick\"></dxo-grouping>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" [storageKey]=\"storeName\"></dxo-state-storing>\r\n <dxo-scrolling columnRenderingMode=\"virtual\"\r\n [useNative]=\"false\"\r\n showScrollbar=\"always\">\r\n </dxo-scrolling>\r\n <dxo-selection *ngIf=\"adminMode==false\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"always\"\r\n mode=\"multiple\">\r\n </dxo-selection>\r\n\r\n <dxo-filter-builder></dxo-filter-builder>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n\r\n <dxo-paging [pageSize]=\"20\"> </dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [displayMode]=\"'compact'\"\r\n [showInfo]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'filterUser'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"user\" (onClick)=\"applyFilterUser()\" hint=\"{{ 'Nur eigene zeigen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'filterPinned'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"pin\" (onClick)=\"applyFilterPinned()\" hint=\"{{ 'Nur angeheftete zeigen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'filterReset'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"undo\" (onClick)=\"applyFilterReset()\" hint=\"{{ 'Filter zurücksetzen' | translate }}\"></dx-button>\r\n </div>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'minGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onCollapseAll()\" type=\"default\" icon=\"chevronright\" hint=\"{{ 'Alle Gruppen schliessen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'maxGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onExpandAll()\" type=\"default\" icon=\"chevrondown\" hint=\"{{ 'Alle Gruppen öffnen' | translate }}\"></dx-button>\r\n </div>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'deleteButtonTemplate'\">\r\n <div *ngIf=\"catalogMode==false && adminMode==false && jobGrid?.instance?.getSelectedRowKeys().length == 0\">\r\n <!-- man löscht dort sonst JOBs, die man dort gar nicht sieht!! -->\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"trash\" (click)=\"deleteReadyJobs()\" hint=\"{{ 'Beendete Jobs löschen' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <div *ngIf=\"adminMode==false && jobGrid?.instance?.getSelectedRowKeys().length > 0\">\r\n <!-- man löscht dort sonst JOBs, die man dort gar nicht sieht!! -->\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"trash\" (click)=\"deleteSelectedJobs(jobGrid?.instance?.getSelectedRowsData())\" hint=\"{{ 'Gewählte Jobs löschen' | translate }}\"></dx-button>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'dateFilterTemplate'\">\r\n <div *ngIf=\"adminMode\">\r\n <dx-select-box [dataSource]=\"dateFilterDataSource\" displayExpr=\"text\" valueExpr=\"dayDelta\"\r\n [(value)]=\"dateFilterValue\" (onValueChanged)=\"onDateFilterValueChanged()\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'maintenanceModeButtonTemplate'\">\r\n <!-- wenn der grade AUS ist -->\r\n <div *ngIf=\"isAdmin==true && maintenanceModeActive==false\">\r\n <!-- nur im admin bereich mit funktion, sonst nur INFO-->\r\n <dx-button [disabled]=\"adminMode==false\" stylingMode=\"text\" type=\"success\" icon=\"warning\" (click)=\"enableMaintenanceMode()\" hint=\"Wartung beginnen\"></dx-button>\r\n </div>\r\n\r\n <!-- wenn der grade AN ist -->\r\n <div *ngIf=\"isAdmin==true && maintenanceModeActive==true\">\r\n <!-- nur im admin bereich mit funktion, sonst nur INFO-->\r\n <dx-button [disabled]=\"adminMode==false\" stylingMode=\"text\" type=\"danger\" icon=\"warning\" (click)=\"disableMaintenanceMode()\" hint=\"Wartung beenden\"></dx-button>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'helpButtonTemplate'\">\r\n <np-help-button>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=sp9idXSLAOg\"></np-help-option>\r\n </np-help-button>\r\n </div>\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"catalogName\" caption=\"{{ 'Katalogname' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Katalogname' | translate }}\" dataType=\"string\">\r\n <div *dxTemplate=\"let data of 'cellTemplate'\">\r\n {{ getDisplayValue(data.data) }}\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"created\" caption=\"{{ 'Erstellt' | translate }}\" format=\"HH:mm - d.MMM\" dataType=\"date\" width=\"140\"\r\n calculateGroupValue=\"createdGroupValue\">\r\n </dxi-column>\r\n <dxi-column dataField=\"userName\" caption=\"{{ 'Erstellt von' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column *ngIf=\"catalogMode || adminMode\" dataField=\"isDeleted\" caption=\"{{ 'Gelöscht' | translate }}\" dataType=\"boolean\"></dxi-column>\r\n <dxi-column *ngIf=\"adminMode\" dataField=\"customerName\" caption=\"{{ 'Kunde' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"isPinned\" caption=\"{{ 'Angeheftet' | translate }}\" dataType=\"boolean\" cellTemplate=\"cellTemplatePin\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplatePin'\">\r\n <dx-button *ngIf=\"data.data.isPinned==false\" type=\"default\" stylingMode=\"text\" icon=\"pin\" (onClick)=\"showPindata(data.data)\" hint=\"{{ 'Anheften' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"data.data.isPinned==true\" type=\"default\" stylingMode=\"text\" icon=\"pin\" (onClick)=\"showPindata(data.data)\" style=\"transform: rotate(90deg);\" hint=\"{{ 'Angeheftet' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <dxi-column dataField=\"progress\" caption=\"{{ 'Fortschritt' | translate }}\" [allowFiltering]=\"false\" width=\"100\" [allowSorting]=\"false\" cellTemplate=\"cellTemplateProgress\" dataType=\"number\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplateProgress'\">\r\n <dx-progress-bar #progressBar\r\n width=\"90%\"\r\n [class.complete]=\"progressBar.value == 100\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [statusFormat]=\"format\"\r\n [showStatus]=\"false\"\r\n [value]=\"data.value\">\r\n </dx-progress-bar>\r\n </div>\r\n <dxi-column dataField=\"stateText\" caption=\"{{ 'Status' | translate }}\" width=\"100\" cellTemplate=\"cellTemplateState\" dataType=\"string\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplateState'\">\r\n <div *ngIf=\"data.value!='TemplateNeeded'\">{{data.value}}</div>\r\n <div *ngIf=\"data.value=='TemplateNeeded'\">\r\n {{ 'Template erforderlich' | translate }}\r\n </div>\r\n </div>\r\n <dxi-column dataField=\"resultFile\" caption=\"{{ 'Ergebnis' | translate }}\" [allowFiltering]=\"false\" width=\"85\" [allowSorting]=\"false\" cellTemplate=\"cellTemplateResultFile\" dataType=\"string\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplateResultFile'\">\r\n <dx-button *ngIf=\"data.value\" type=\"default\" stylingMode=\"text\" icon=\"download\" (onClick)=\"startDownload(data.value)\" hint=\"{{ 'Dateidownload' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"data.value\" type=\"default\" stylingMode=\"text\" icon=\"message\" (onClick)=\"sendMail(data.value)\" hint=\"{{ 'Per Email verschicken' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"data.data.stateText=='Error' && !(catalogMode && data.data.isDeleted)\" type=\"default\" stylingMode=\"text\" icon=\"video\" (onClick)=\"restartJob(data.data)\" hint=\"{{ 'Job neu starten' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"data.data.stateText=='TemplateNeeded' && !(catalogMode && data.data.isDeleted)\" type=\"default\" stylingMode=\"text\" icon=\"detailslayout\" (onClick)=\"showImportTemplate(data)\" hint=\"{{ 'Template erstellen' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"userCanEdit\" type=\"default\" stylingMode=\"text\" (onClick)=\"onDeleteClicked(data.data)\" icon=\"trash\" hint=\"{{ 'Job löschen' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"adminMode\" id=\"redTrash\" type=\"default\" stylingMode=\"text\" (onClick)=\"onAdminDeleteClicked(data.data)\" icon=\"trash\" hint=\"{{ 'Job löschen' | translate }}\"></dx-button>\r\n </div>\r\n <dxi-column dataField=\"typeText\" caption=\"{{ 'Typ' | translate }}\" [groupIndex]=\"0\" dataType=\"string\" [customizeText]=\"translateType\"></dxi-column>\r\n\r\n\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n\r\n <div *dxTemplate=\"let job of 'detail'\">\r\n <jobDetail [(job)]=\"job.data\" [isVisible]=\"isVisible()\" [jobListInit]=\"jobListInit\" [jobListDestroy]=\"jobListDestroy\" [(dataGrid)]=\"dataGrid\" (onInitialized)=\"onDetailInitialized($event)\"></jobDetail>\r\n </div>\r\n\r\n</dx-data-grid>\r\n\r\n\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Anheften' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"pindataVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <pindata [pinned]=\"pinJobIsPinned\"\r\n [remarks]=\"pinJobRemarks\"\r\n [pinExpires]=\"pinJobPinExpires\"\r\n (onAdded)=\"pinJob($event)\"\r\n (onRemoved)=\"unpinJob($event)\">\r\n </pindata>\r\n </div>\r\n</dx-popup>\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { BackgroundJob } from \"../Model/Dto/BackgroundJob\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { JobService } from \"../Services/job.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BackgroundJobEvent } from \"../Model/Dto/BackgroundJobEvent\";\r\nimport { custom, confirm } from 'devextreme/ui/dialog';\r\nimport { RestartJob } from '../Model/Dto/RestartJob';\r\nimport * as AspNetData from 'devextreme-aspnet-data-nojquery';\r\nimport { ValidateExportJob } from \"../Model/Dto/ValidateExportJob\";\r\nimport { TemplateService } from \"../Services/template.service\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { UserManagementService } from \"../Services/userManagment.service\";\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { MaintenanceModeService } from \"../Services/MaintenanceModeService\";\r\nimport { MaintenanceMode } from \"../Model/Dto/MaintenanceMode\";\r\nimport { DateFilter } from \"../Model/ui/DateFilter\";\r\n\r\n@Component({\r\n selector: \"job-list\",\r\n templateUrl: \"./jobList.component.html\",\r\n styleUrls: [\"./jobList.component.css\"]\r\n})\r\nexport class JobListComponent implements OnInit, OnDestroy {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n @Input() jobListMode: boolean = true;\r\n @Input() catalogMode: boolean = false;\r\n @Input() adminMode: boolean = false;\r\n @Input() storeName: string = \"JobListStateNewUI_V4\";\r\n\r\n maintenanceModeActive: boolean = false;\r\n\r\n filterValue: Array<any>;\r\n startRefresherFirstTime: boolean = true;\r\n itemCount: any;\r\n dateFilterValue: number;\r\n\r\n dateFilterDataSource: DateFilter[];\r\n dataSource: CustomStore<any, any>;\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService, public authService: OAuthService, public userManagementService: UserManagementService, public maintenanceModeService: MaintenanceModeService) {\r\n this.onExpandAll = this.onExpandAll.bind(this);\r\n this.onCollapseAll = this.onCollapseAll.bind(this);\r\n this.translateType = this.translateType.bind(this);\r\n\r\n this.onDetailInitialized = this.onDetailInitialized.bind(this);\r\n this.isVisible = this.isVisible.bind(this);\r\n this.startRefreshing = this.startRefreshing.bind(this);\r\n\r\n this.dateFilterDataSource = new Array<DateFilter>();\r\n this.dateFilterDataSource.push(new DateFilter(\"Heute\", 0));\r\n this.dateFilterDataSource.push(new DateFilter(\"Letzten 7 Tage\", -6));\r\n this.dateFilterDataSource.push(new DateFilter(\"Letzten 30 Tage\", -29));\r\n this.dateFilterDataSource.push(new DateFilter(\"Alle\", 1));\r\n this.dateFilterValue = this.dateFilterDataSource[0].dayDelta;\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isAdmin) {\r\n this.getCurrentState();\r\n }\r\n\r\n if (this.catalogMode) {\r\n this.setCatalogModeDataSource();\r\n }\r\n if (this.adminMode) {\r\n this.setAdminModeDataSource();\r\n }\r\n if (this.jobListMode) {\r\n this.setJobListModeDataSource();\r\n }\r\n\r\n this.dataSource.totalCount(null).then(count => this.itemCount = count);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.jobListMode = false;\r\n this.catalogMode = false;\r\n this.adminMode = false;\r\n }\r\n\r\n get isAdmin() {\r\n return this.modelService.loginService.isAdmin;\r\n }\r\n\r\n setAdminModeDataSource() {\r\n var accessToken = this.authService.getAccessToken();\r\n this.dataSource = AspNetData.createStore({\r\n key: \"id\",\r\n loadUrl: \"api/job/GetJobsForAdminMode\",\r\n loadParams: { 'dateDelta': this.dateFilterValue },\r\n onBeforeSend(method, ajaxOptions) {\r\n ajaxOptions.xhrFields = { withCredentials: true },\r\n ajaxOptions.headers = {\r\n \"Authorization\": `Bearer ${accessToken}`\r\n };\r\n }\r\n });\r\n }\r\n\r\n setCatalogModeDataSource() {\r\n var catalogId = this.modelService.catalogService.selectedCatalogId;\r\n var accessToken = this.authService.getAccessToken();\r\n this.dataSource = AspNetData.createStore({\r\n key: \"id\",\r\n loadUrl: \"api/job/GetJobsForCatalogMode\",\r\n loadParams: { 'catalogId': catalogId, 'customerId': this.modelService.loginService.currentCustomer.id },\r\n onBeforeSend(method, ajaxOptions) {\r\n ajaxOptions.xhrFields = { withCredentials: true },\r\n ajaxOptions.headers = {\r\n \"Authorization\": `Bearer ${accessToken}`\r\n };\r\n }\r\n });\r\n }\r\n\r\n setJobListModeDataSource() {\r\n var accessToken = this.authService.getAccessToken();\r\n this.dataSource = AspNetData.createStore({\r\n key: \"id\",\r\n loadUrl: \"api/job/GetJobsForJobListMode\",\r\n onBeforeSend(method, ajaxOptions) {\r\n ajaxOptions.xhrFields = { withCredentials: true },\r\n ajaxOptions.headers = {\r\n \"Authorization\": `Bearer ${accessToken}`\r\n };\r\n }\r\n });\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n // links:\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'filterReset'\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'filterPinned'\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'filterUser'\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'minGroupsButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'maxGroupsButtonTemplate',\r\n });\r\n // rechts:\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'dateFilterTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'helpButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'maintenanceModeButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'deleteButtonTemplate'\r\n });\r\n }\r\n\r\n onExpandAll() {\r\n this.dataGrid.instance.expandAll();\r\n }\r\n\r\n onCollapseAll() {\r\n this.dataGrid.instance.collapseAll();\r\n }\r\n\r\n onDateFilterValueChanged() {\r\n this.setAdminModeDataSource();\r\n }\r\n\r\n public translateType(cellInfo) {\r\n if (!cellInfo.value)\r\n return undefined;\r\n var result = this.translate.instant(cellInfo.value);\r\n return result;\r\n }\r\n\r\n startRefresher() {\r\n if (this.startRefresherFirstTime) {\r\n this.startRefresherFirstTime = false;\r\n this.dataGrid.instance.option('loadPanel.enabled', false);\r\n var delay = Math.max(2000, this.itemCount / 100);\r\n setTimeout(this.startRefreshing, delay, delay);\r\n }\r\n }\r\n\r\n startRefreshing(delay) {\r\n if (this.isVisible()) {\r\n\r\n if (this.isAdmin) {\r\n this.getCurrentState();\r\n }\r\n\r\n this.dataGrid.instance.refresh(true).then(() => {\r\n setTimeout(this.startRefreshing, delay, delay);\r\n }).catch(() => {\r\n setTimeout(this.startRefreshing, delay * 2, delay);\r\n });\r\n }\r\n else {\r\n setTimeout(this.startRefreshing, delay, delay);\r\n }\r\n }\r\n\r\n isVisible() {\r\n return (this.jobListMode && this.modelService.viewService.jobsVisible) || (this.catalogMode && this.modelService.viewService.catalogJobsVisible) || this.adminMode;\r\n }\r\n\r\n applyFilterUser() {\r\n this.dataGrid.instance.clearFilter();\r\n\r\n let user = this.modelService.loginService.currentUser;\r\n let query = \"\";\r\n if (user.lastName && user.firstName) {\r\n query = user.lastName + \", \" + user.firstName;\r\n }\r\n else {\r\n query = user.email;\r\n }\r\n\r\n this.filterValue = [\r\n ['userName', '=', query],\r\n ];\r\n }\r\n\r\n applyFilterPinned() {\r\n this.dataGrid.instance.clearFilter();\r\n\r\n this.filterValue = [\r\n ['isPinned', '=', true],\r\n ];\r\n }\r\n\r\n applyFilterReset() {\r\n this.dataGrid.instance.clearFilter();\r\n }\r\n\r\n jobService() {\r\n return this.modelService.jobService;\r\n }\r\n\r\n time(started, ended) {\r\n // TODO: SAME in AdminComponent ==> move into a service!!\r\n var time = (Date.parse(ended) - Date.parse(started)) / 1000;\r\n if (time < 600) {\r\n let text = this.translate.instant(\"Sekunden\");\r\n return Math.floor(time * 10) / 10 + \" \" + text;\r\n }\r\n let text = this.translate.instant(\"Minuten\");\r\n time = time / 60;\r\n return Math.floor(time) + \" \" + text;\r\n }\r\n\r\n getCatalogNameById(id: string): string {\r\n let cat = this.modelService.catalogService.catalogs.filter(catalog => catalog.id == id).shift();\r\n if (cat) {\r\n return cat.catalogName;\r\n }\r\n return \"\";\r\n }\r\n\r\n isValidatable(job: BackgroundJob): boolean {\r\n if (!job.resultFile)\r\n return false;\r\n\r\n return (job.type === 'Export' && job.state === 2 && job.resultFile.endsWith('.zip'));\r\n }\r\n\r\n onEditClicked(catalog: BackgroundJob) {\r\n if (catalog.resultCatalogId) {\r\n this.modelService.catalogService.selectedCatalogId = catalog.resultCatalogId;\r\n } else {\r\n this.modelService.catalogService.selectedCatalogId = catalog.catalogId;\r\n }\r\n if (this.modelService.router.url == \"/catalog\") {\r\n this.modelService.router.navigate([\"/catalogdetails\"]);\r\n } else {\r\n this.modelService.router.navigate([\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + this.modelService.catalogService.selectedCatalogId]);\r\n }\r\n }\r\n\r\n userCanEdit() {\r\n return this.userManagementService.canEdit(\"jobListDelete\");\r\n }\r\n\r\n onAdminDeleteClicked(e) {\r\n this.modelService.jobService.delete(e.id);\r\n }\r\n\r\n onDeleteClicked(e) {\r\n let message, title;\r\n this.translate.get('Wollen Sie den Job wirklich löschen').subscribe((text: string) => {\r\n message = text;\r\n });\r\n this.translate.get('Job löschen').subscribe((text: string) => {\r\n title = text;\r\n });\r\n let result = confirm(message, title);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.modelService.jobService.setIsDeleted(e.id).subscribe(\r\n (res: any) => {\r\n let result = res.value;\r\n if (result != \"0:0\") {\r\n this.showWarningForDeleteResult(result);\r\n }\r\n else {\r\n this.translate.get(\"Jobs erfolgreich gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n deleteReadyJobs() {\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Sollen wirklich alle beendeten Jobs gelöscht werden?\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.modelService.jobService.setIsDeletedForFinishedJobs(this.modelService.loginService.currentUser.customerId).subscribe(\r\n (res: any) => {\r\n let result = res.value;\r\n if (result != \"0:0\") {\r\n this.showWarningForDeleteResult(result);\r\n }\r\n else {\r\n this.translate.get(\"Jobs erfolgreich gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedJobs(selectedRowsData: Array<BackgroundJob>) {\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Sollen wirklich alle gewählten Jobs gelöscht werden\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n\r\n let jobIds: Array<number> = [];\r\n selectedRowsData.forEach(e => jobIds.push(e.id));\r\n\r\n this.modelService.jobService.setIsDeletedForSelectedJobs(jobIds).subscribe(\r\n (res: any) => {\r\n let result = res.value;\r\n if (result != \"0:0\") {\r\n this.showWarningForDeleteResult(result);\r\n }\r\n else {\r\n this.translate.get(\"Jobs erfolgreich gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n showWarningForDeleteResult(result: string) {\r\n let values = result.split(\":\");\r\n\r\n let text = this.translate.instant(\"Einige Jobs konnten nicht gelöscht werden.\");\r\n if (values[0] != \"0\") {\r\n let textPinned = this.translate.instant(\"Verhindert da angeheftet\");\r\n text += '\\n' + textPinned + ': ' + values[0];\r\n }\r\n if (values[1] != \"0\") {\r\n let textStatus = this.translate.instant(\"Verhindert durch Status\");\r\n text += '\\n' + textStatus + ': ' + values[1];\r\n }\r\n\r\n let message = new Message(text, 'warning');\r\n\r\n this.modelService.systemService.notify(message, 3000);\r\n }\r\n\r\n startDownload(source: string) {\r\n window.open(source, '_self', 'location=yes');\r\n }\r\n\r\n sendMail(source: string) {\r\n const subject = \"Angeforderte Produktdaten\";\r\n const linkUrl = source;\r\n\r\n const body = `Sehr geehrte Damen und Herren,\\n\\nSie können die angeforderten Produktdaten unter folgender Adresse herunterladen:\\n\\n${linkUrl}`;\r\n\r\n const mailtoUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\r\n\r\n window.location.href = mailtoUrl;\r\n }\r\n\r\n showImportTemplate(data) {\r\n this.templateService.importTemplateEditorVisible = true;\r\n this.templateService.importJob = data.data;\r\n }\r\n\r\n getIconClass(icon) {\r\n return JobService.getIconClass(icon);\r\n }\r\n\r\n restartJob(data: BackgroundJob) {\r\n let dto = new RestartJob();\r\n dto.jobId = data.id;\r\n this.modelService.jobService.restartJob(dto)\r\n .subscribe(success => {\r\n if (success) {\r\n let i = 1;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n _pindataVisible: boolean = false;\r\n get pindataVisible(): boolean {\r\n return this._pindataVisible;\r\n }\r\n set pindataVisible(value: boolean) {\r\n if (!value) {\r\n this.pinJobId = -1;\r\n this.pinJobIsPinned = false;\r\n this.pinJobRemarks = \"\";\r\n this.pinJobPinExpires = null;\r\n }\r\n this._pindataVisible = value;\r\n }\r\n\r\n showPindata(data: BackgroundJob) {\r\n\r\n this.pinJobId = data.id;\r\n this.pinJobIsPinned = data.isPinned;\r\n this.pinJobRemarks = data.remarks;\r\n this.pinJobPinExpires = this.addDays(new Date(), 7);\r\n if (data.pinExpires) {\r\n this.pinJobPinExpires = data.pinExpires;\r\n }\r\n\r\n this.pindataVisible = true;\r\n }\r\n\r\n pinJobId: number = -1;\r\n pinJobIsPinned: boolean = false;\r\n pinJobRemarks: string = \"\";\r\n pinJobPinExpires?: Date = null;\r\n\r\n pinJob(e) {\r\n let id = this.pinJobId;\r\n let remarks = e.remarks;\r\n let pinExpires = e.pinExpires;\r\n\r\n // Aus unerklärlichen Gründen liefert die Date Box meistens string...?\r\n // https://stackoverflow.com/a/17772086\r\n if (Object.prototype.toString.call(pinExpires) === \"[object String]\") {\r\n pinExpires = new Date(pinExpires);\r\n }\r\n\r\n this.modelService.jobService.setIsPinned(id, remarks, pinExpires).subscribe();\r\n\r\n this.pindataVisible = false;\r\n }\r\n\r\n unpinJob(e) {\r\n let id = this.pinJobId;\r\n\r\n this.modelService.jobService.setIsNotPinned(id).subscribe();\r\n\r\n this.pindataVisible = false;\r\n }\r\n\r\n // https://stackoverflow.com/a/19691491\r\n addDays(date, days) {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n\r\n\r\n validateExport(data: BackgroundJob) {\r\n let dto = new ValidateExportJob();\r\n dto.customerId = this.modelService.loginService.currentUser.customerId;\r\n dto.jobId = data.id;\r\n this.modelService.jobService.validateExportJob(dto)\r\n .subscribe(success => {\r\n if (success) {\r\n let i = 1;\r\n }\r\n });\r\n }\r\n\r\n getEventMessage(e: BackgroundJobEvent) {\r\n let result = \"\";\r\n if (e.parameter) {\r\n let param = JSON.parse(e.parameter);\r\n result = this.translate.instant(e.message, param);\r\n } else {\r\n result = this.translate.instant(e.message);\r\n }\r\n return result;\r\n }\r\n\r\n onDetailInitialized(e) {\r\n this.dataGrid.instance.updateDimensions();\r\n }\r\n\r\n getCurrentState() {\r\n this.maintenanceModeService.getCurrentState().subscribe((result: MaintenanceMode) => {\r\n this.maintenanceModeActive = result.active;\r\n });\r\n }\r\n\r\n enableMaintenanceMode() {\r\n this.maintenanceModeService.enableMaintenanceMode().subscribe((result: MaintenanceMode) => {\r\n this.maintenanceModeActive = result.active;\r\n });\r\n }\r\n\r\n disableMaintenanceMode() {\r\n this.maintenanceModeService.disableMaintenanceMode().subscribe((result: MaintenanceMode) => {\r\n this.maintenanceModeActive = result.active;\r\n });\r\n }\r\n\r\n getDisplayValue(data: any): string {\r\n if (data.catalogName !== null && data.catalogName !== '') {\r\n return data.catalogName;\r\n } else if (data.resultCatalogName !== null && data.resultCatalogName !== '') {\r\n return data.resultCatalogName;\r\n } else {\r\n return ''; \r\n }\r\n }\r\n}\r\n","<!--Logins-->\r\n\r\n<dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"logins\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Logins vorhanden' | translate }}\"\r\n [showBorders]=\"true\">\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Aktualisieren' | translate }}\" (onClick)=\"reloadLogins()\" hint=\"{{ 'Aktualisieren' | translate }}\"></dx-button>\r\n </div>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-paging [pageSize]=\"1000\"> </dxo-paging>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Logins suchen' | translate }}\" class=\"treeSearch\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"AdminLoginsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <!--<dxi-column dataField=\"customerId\" caption=\"letzte KNR#\" [groupIndex]=\"0\"></dxi-column>-->\r\n <dxi-column dataField=\"lastCustomer\" caption=\"{{ 'letzter Kunde' | translate }}\" dataType=\"string\"></dxi-column>\r\n\r\n <dxi-column dataField=\"userName\" caption=\"{{ 'Benutzername' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"firstName\" caption=\"{{ 'Vorname' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"lastName\" caption=\"{{ 'Nachname' | translate }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"lastLogin\" caption=\"{{ 'letzter Login' | translate }}\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy HH:mm:ss' }\" [width]=\"150\"></dxi-column>\r\n\r\n</dx-data-grid>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { AppUser } from \"../../../Model/user/AppUser\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserToCustomer } from '../../../Model/user/UserToCustomer';\r\nimport { Customer } from \"../../../Model/user/Customer\";\r\nimport { Login } from \"../../../Model/User/Login\";\r\n\r\n@Component({\r\n selector: \"admin-logins\",\r\n templateUrl: \"admin-logins.component.html\"\r\n})\r\nexport class AdminLoginsComponent implements OnInit {\r\n logins: Login[];\r\n\r\n constructor(private modelService: ModelService, private translate: TranslateService) {\r\n this.reloadLogins = this.reloadLogins.bind(this);\r\n //this.getLastCustomerName = this.getLastCustomerName.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n if (!this.modelService.loginService.isAdmin) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.getLogins();\r\n }\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate'\r\n });\r\n }\r\n\r\n/* getLastCustomerName(rowData) {\r\n let appUser = rowData as AppUser;\r\n let lastUserToCustomer = appUser ? appUser : null;\r\n\r\n\r\n*//* this.modelService.loginService.customerService.getCustomer(appUser.customerId).subscribe((result: Customer) => {\r\n return result.name;\r\n });*//*\r\n\r\n //TODO Zugriff auf translate nicht moeglich, da \"this\" hier der Scope der DataGrid-Spalte ist\r\n *//*return lastUserToCustomer ? lastUserToCustomer.name : \"customer not found\";*//*\r\n }*/\r\n\r\n/* get logins(): AppUser[] {\r\n if (this._logins == null) {\r\n this.getLogins();\r\n }\r\n\r\n return this._logins;\r\n }\r\n\r\n set logins(value: AppUser[]) {\r\n this._logins = value;\r\n }*/\r\n\r\n getLogins(): void {\r\n this.modelService.loginService.customerService.getLogins().subscribe((result: Login[]) => {\r\n this.logins = result;\r\n });\r\n\r\n/* this.modelService.adminService.getAllUsersWithCustomers().subscribe((appUser: AppUser[]) => {\r\n //nochmal die konkreten Objekte instanziieren,\r\n //weil der Rueckgabetyp aus dem http - Client Object und trotz Parameter nicht typisiert ist\r\n this.logins = appUser.map((au: AppUser) => new AppUser().deserialize(au));\r\n });*/\r\n }\r\n\r\n reloadLogins(): void {\r\n this.getLogins();\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/exceljs/export_format.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n format as stringFormat\r\n} from \"../../core/utils/string\";\r\nimport numberFormatter from \"../../localization/number\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isObject,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport {\r\n getLanguageId\r\n} from \"../../localization/language_codes\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport \"../../localization/currency\";\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\n\r\nfunction _applyPrecision(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n}\r\n\r\nfunction _hasArabicDigits(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction _convertDateFormat(format) {\r\n var formattedValue = (dateLocalization.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = getFormat(value => dateLocalization.format(value, format));\r\n if (result) {\r\n result = _convertDateFormatToOpenXml(result);\r\n result = _getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n}\r\n\r\nfunction _getLanguageInfo(defaultPattern) {\r\n var languageID = getLanguageId();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (_hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n return languageInfo\r\n}\r\n\r\nfunction _convertDateFormatToOpenXml(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map((function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n })).join(\"\")\r\n}\r\n\r\nfunction _convertNumberFormat(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = numberFormatter.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = stringFormat(excelFormat, _applyPrecision(format, precision))\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasCSVInjection(value) {\r\n if (!value || value.length < 2) {\r\n return false\r\n }\r\n return _includesCSVExpression(value)\r\n}\r\n\r\nfunction _hasCSVQuotedInjection(value, textQualifier) {\r\n if (!value || value.length < 4 || value[0] !== textQualifier) {\r\n return false\r\n }\r\n return _includesCSVExpression(value.substring(1, value.length - 1))\r\n}\r\n\r\nfunction _includesCSVExpression(value) {\r\n if (!value) {\r\n return false\r\n }\r\n if (/^[@=\\t\\r]/.test(value)) {\r\n return true\r\n }\r\n if (!/^[+-]/.test(value)) {\r\n return false\r\n }\r\n return !isNumeric(value)\r\n}\r\nexport var ExportFormat = {\r\n formatObjectConverter(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if (isObject(format)) {\r\n return extend(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n convertFormat(format, precision, type, currency) {\r\n if (isDefined(format)) {\r\n if (\"date\" === type) {\r\n return _convertDateFormat(format)\r\n } else if (isString(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return _convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n },\r\n encode(value) {\r\n var escaped = false;\r\n if (_hasCSVInjection(value)) {\r\n escaped = true\r\n } else if (_hasCSVQuotedInjection(value, '\"')) {\r\n value = value.substring(1, value.length - 1);\r\n escaped = true\r\n }\r\n if (escaped) {\r\n var escapedTextQualifier = \"\".concat('\"').concat('\"');\r\n return \"\\\"'\" + value.replaceAll('\"', escapedTextQualifier) + '\"'\r\n }\r\n return value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/common/export_load_panel.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport LoadPanel from \"../../ui/load_panel\";\r\nimport gridUtils from \"../../ui/grid_core/ui.grid_core.utils\";\r\nvar EXPORT_LOAD_PANEL_CLASS = \"dx-export-loadpanel\";\r\nclass ExportLoadPanel {\r\n constructor(component, $targetElement, $container, options) {\r\n this._$targetElement = $targetElement;\r\n this._$container = $container;\r\n this._loadPanel = component._createComponent($(\"<div>\").addClass(EXPORT_LOAD_PANEL_CLASS).appendTo(this._$container), LoadPanel, this.getOptions(options))\r\n }\r\n getDefaultOptions() {\r\n return {\r\n animation: null,\r\n shading: false,\r\n height: 90,\r\n width: 200,\r\n container: this._$container\r\n }\r\n }\r\n getOptions(options) {\r\n if (isDefined(options.text)) {\r\n options.message = options.text\r\n } else {\r\n options.message = messageLocalization.format(\"dxDataGrid-exporting\")\r\n }\r\n return extend(this.getDefaultOptions(), options)\r\n }\r\n show() {\r\n this._loadPanel.option(\"position\", gridUtils.calculateLoadPanelPosition(this._$targetElement));\r\n this._loadPanel.show()\r\n }\r\n dispose() {\r\n $(this._loadPanel.element()).remove();\r\n delete this._loadPanel\r\n }\r\n}\r\nexport {\r\n ExportLoadPanel\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/exceljs/export.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n ExportFormat\r\n} from \"./export_format\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n ExportLoadPanel\r\n} from \"../common/export_load_panel\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar MAX_EXCEL_COLUMN_WIDTH = 255;\r\nexport var Export = {\r\n getFullOptions(options) {\r\n var fullOptions = extend({}, options);\r\n if (!(isDefined(fullOptions.worksheet) && isObject(fullOptions.worksheet))) {\r\n throw Error('The \"worksheet\" field must contain an object.')\r\n }\r\n if (!isDefined(fullOptions.topLeftCell)) {\r\n fullOptions.topLeftCell = {\r\n row: 1,\r\n column: 1\r\n }\r\n } else if (isString(fullOptions.topLeftCell)) {\r\n var {\r\n row: row,\r\n col: col\r\n } = fullOptions.worksheet.getCell(fullOptions.topLeftCell);\r\n fullOptions.topLeftCell = {\r\n row: row,\r\n column: col\r\n }\r\n }\r\n if (!isDefined(fullOptions.keepColumnWidths)) {\r\n fullOptions.keepColumnWidths = true\r\n }\r\n if (!isDefined(fullOptions.loadPanel)) {\r\n fullOptions.loadPanel = {}\r\n }\r\n if (!isDefined(fullOptions.loadPanel.enabled)) {\r\n fullOptions.loadPanel.enabled = true\r\n }\r\n if (!isDefined(fullOptions.encodeExecutableContent)) {\r\n fullOptions.encodeExecutableContent = false\r\n }\r\n return fullOptions\r\n },\r\n convertDateForExcelJS: date => new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())),\r\n setNumberFormat(excelCell, numberFormat) {\r\n excelCell.numFmt = numberFormat\r\n },\r\n getCellStyles(dataProvider) {\r\n var styles = dataProvider.getStyles();\r\n styles.forEach(style => {\r\n var numberFormat = this.tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (isDefined(numberFormat)) {\r\n numberFormat = numberFormat.replace(/"/g, '\"')\r\n }\r\n style.numberFormat = numberFormat\r\n });\r\n return styles\r\n },\r\n tryConvertToExcelNumberFormat(format, dataType) {\r\n var newFormat = ExportFormat.formatObjectConverter(format, dataType);\r\n var currency = newFormat.currency;\r\n format = newFormat.format;\r\n dataType = newFormat.dataType;\r\n return ExportFormat.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n setAlignment(excelCell, wrapText, horizontalAlignment) {\r\n var _excelCell$alignment;\r\n excelCell.alignment = null !== (_excelCell$alignment = excelCell.alignment) && void 0 !== _excelCell$alignment ? _excelCell$alignment : {};\r\n if (isDefined(wrapText)) {\r\n excelCell.alignment.wrapText = wrapText\r\n }\r\n if (isDefined(horizontalAlignment)) {\r\n excelCell.alignment.horizontal = horizontalAlignment\r\n }\r\n excelCell.alignment.vertical = \"top\"\r\n },\r\n setColumnsWidth(worksheet, widths, startColumnIndex) {\r\n if (!isDefined(widths)) {\r\n return\r\n }\r\n for (var i = 0; i < widths.length; i++) {\r\n var columnWidth = widths[i];\r\n if (\"number\" === typeof columnWidth && isFinite(columnWidth)) {\r\n worksheet.getColumn(startColumnIndex + i).width = Math.min(MAX_EXCEL_COLUMN_WIDTH, Math.floor(columnWidth / MAX_DIGIT_WIDTH_IN_PIXELS * 100) / 100)\r\n }\r\n }\r\n },\r\n export (options, Helpers, getLoadPanelTargetElement, getLoadPanelContainer) {\r\n var _component$_getIntern;\r\n var {\r\n component: component,\r\n worksheet: worksheet,\r\n topLeftCell: topLeftCell,\r\n keepColumnWidths: keepColumnWidths,\r\n selectedRowsOnly: selectedRowsOnly,\r\n loadPanel: loadPanel,\r\n encodeExecutableContent: encodeExecutableContent\r\n } = options;\r\n var dataProvider = component.getDataProvider(selectedRowsOnly);\r\n var internalComponent = (null === (_component$_getIntern = component._getInternalInstance) || void 0 === _component$_getIntern ? void 0 : _component$_getIntern.call(component)) || component;\r\n var initialLoadPanelEnabledOption = internalComponent.option(\"loadPanel\") && internalComponent.option(\"loadPanel\").enabled;\r\n if (initialLoadPanelEnabledOption) {\r\n component.option(\"loadPanel.enabled\", false)\r\n }\r\n var exportLoadPanel;\r\n if (loadPanel.enabled && hasWindow()) {\r\n var $targetElement = getLoadPanelTargetElement(component);\r\n var $container = getLoadPanelContainer(component);\r\n exportLoadPanel = new ExportLoadPanel(component, $targetElement, $container, loadPanel);\r\n exportLoadPanel.show()\r\n }\r\n var wrapText = !!component.option(\"wordWrapEnabled\");\r\n worksheet.properties.outlineProperties = {\r\n summaryBelow: false,\r\n summaryRight: false\r\n };\r\n var cellRange = {\r\n from: {\r\n row: topLeftCell.row,\r\n column: topLeftCell.column\r\n },\r\n to: {\r\n row: topLeftCell.row,\r\n column: topLeftCell.column\r\n }\r\n };\r\n return new Promise(resolve => {\r\n dataProvider.ready().done(() => {\r\n var columns = dataProvider.getColumns();\r\n var dataRowsCount = dataProvider.getRowsCount();\r\n var helpers = new Helpers(component, dataProvider, worksheet, options);\r\n if (keepColumnWidths) {\r\n this.setColumnsWidth(worksheet, dataProvider.getColumnsWidths(), cellRange.from.column)\r\n }\r\n helpers._exportAllFieldHeaders(columns, this.setAlignment);\r\n var fieldHeaderRowsCount = helpers._getFieldHeaderRowsCount();\r\n cellRange.to.row = cellRange.from.row + fieldHeaderRowsCount;\r\n var styles = this.getCellStyles(dataProvider);\r\n for (var rowIndex = 0; rowIndex < dataRowsCount; rowIndex++) {\r\n var currentRowIndex = cellRange.from.row + fieldHeaderRowsCount + rowIndex;\r\n var row = worksheet.getRow(currentRowIndex);\r\n var startColumnIndex = 0;\r\n if (helpers._isRowFieldHeadersRow(rowIndex)) {\r\n startColumnIndex = dataProvider.getRowAreaColCount();\r\n helpers._exportFieldHeaders(\"row\", currentRowIndex, 0, startColumnIndex, this.setAlignment)\r\n }\r\n helpers._trySetOutlineLevel(row, rowIndex);\r\n this.exportRow(dataProvider, helpers, row, rowIndex, startColumnIndex, columns.length, wrapText, styles, encodeExecutableContent);\r\n cellRange.to.row = currentRowIndex\r\n }\r\n helpers.mergedRangesManager.applyMergedRages();\r\n cellRange.to.column += columns.length > 0 ? columns.length - 1 : 0;\r\n var worksheetViewSettings = worksheet.views[0] || {};\r\n if (component.option(\"rtlEnabled\")) {\r\n worksheetViewSettings.rightToLeft = true\r\n }\r\n if (helpers._isFrozenZone(dataProvider)) {\r\n if (-1 === Object.keys(worksheetViewSettings).indexOf(\"state\")) {\r\n extend(worksheetViewSettings, helpers._getWorksheetFrozenState(cellRange))\r\n }\r\n helpers._trySetAutoFilter(cellRange)\r\n }\r\n if (Object.keys(worksheetViewSettings).length > 0) {\r\n worksheet.views = [worksheetViewSettings]\r\n }\r\n resolve(cellRange)\r\n }).always(() => {\r\n if (initialLoadPanelEnabledOption) {\r\n component.option(\"loadPanel.enabled\", initialLoadPanelEnabledOption)\r\n }\r\n if (loadPanel.enabled && hasWindow()) {\r\n exportLoadPanel.dispose()\r\n }\r\n })\r\n })\r\n },\r\n exportRow(dataProvider, helpers, row, rowIndex, startColumnIndex, columnsCount, wrapText, styles, encodeExecutableContent) {\r\n for (var cellIndex = startColumnIndex; cellIndex < columnsCount; cellIndex++) {\r\n var cellData = dataProvider.getCellData(rowIndex, cellIndex, true);\r\n var excelCell = row.getCell(helpers._getFirstColumnIndex() + cellIndex);\r\n helpers.mergedRangesManager.updateMergedRanges(excelCell, rowIndex, cellIndex, helpers);\r\n var cellInfo = helpers.mergedRangesManager.findMergedCellInfo(rowIndex, cellIndex, helpers._isHeaderCell(rowIndex, cellIndex));\r\n if (isDefined(cellInfo) && excelCell !== cellInfo.masterCell) {\r\n excelCell.style = cellInfo.masterCell.style;\r\n excelCell.value = cellInfo.masterCell.value\r\n } else {\r\n if (isDate(cellData.value)) {\r\n excelCell.value = this.convertDateForExcelJS(cellData.value)\r\n } else {\r\n excelCell.value = cellData.value\r\n }\r\n if (isDefined(excelCell.value)) {\r\n var {\r\n bold: bold,\r\n alignment: horizontalAlignment,\r\n numberFormat: numberFormat\r\n } = styles[dataProvider.getStyleId(rowIndex, cellIndex)];\r\n if (isDefined(numberFormat)) {\r\n this.setNumberFormat(excelCell, numberFormat)\r\n } else if (isString(excelCell.value) && /^[@=+-]/.test(excelCell.value)) {\r\n this.setNumberFormat(excelCell, \"@\")\r\n }\r\n helpers._trySetFont(excelCell, bold);\r\n this.setAlignment(excelCell, wrapText, horizontalAlignment)\r\n }\r\n }\r\n helpers._customizeCell(excelCell, cellData.cellSourceData);\r\n if (encodeExecutableContent) {\r\n excelCell.value = ExportFormat.encode(excelCell.value)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/exceljs/export_merged_ranges_manager.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nclass MergedRangesManager {\r\n constructor(dataProvider, worksheet) {\r\n this.dataProvider = dataProvider;\r\n this.worksheet = worksheet;\r\n this.mergedCells = [];\r\n this.mergedRanges = []\r\n }\r\n updateMergedRanges(excelCell, rowIndex, cellIndex, helpers) {\r\n if (helpers._isHeaderCell(rowIndex, cellIndex) && !this.isCellInMergedRanges(rowIndex, cellIndex)) {\r\n var {\r\n rowspan: rowspan,\r\n colspan: colspan\r\n } = this.dataProvider.getCellMerging(rowIndex, cellIndex);\r\n var isMasterCellOfMergedRange = colspan || rowspan;\r\n if (isMasterCellOfMergedRange) {\r\n var allowToMergeRange = helpers._allowToMergeRange(rowIndex, cellIndex, rowspan, colspan);\r\n this.updateMergedCells(excelCell, rowIndex, cellIndex, rowspan, colspan);\r\n if (allowToMergeRange) {\r\n var shouldReduceInfoRange = helpers._isInfoCell(rowIndex, cellIndex) && helpers._allowExportRowFieldHeaders();\r\n this.mergedRanges.push({\r\n masterCell: excelCell,\r\n rowspan: rowspan - (shouldReduceInfoRange && rowspan > 0),\r\n colspan: colspan\r\n })\r\n }\r\n }\r\n }\r\n }\r\n isCellInMergedRanges(rowIndex, cellIndex) {\r\n return this.mergedCells[rowIndex] && this.mergedCells[rowIndex][cellIndex]\r\n }\r\n findMergedCellInfo(rowIndex, cellIndex, isHeaderCell) {\r\n if (isHeaderCell && this.isCellInMergedRanges(rowIndex, cellIndex)) {\r\n return this.mergedCells[rowIndex][cellIndex]\r\n }\r\n }\r\n updateMergedCells(excelCell, rowIndex, cellIndex, rowspan, colspan) {\r\n for (var i = rowIndex; i <= rowIndex + rowspan; i++) {\r\n for (var j = cellIndex; j <= cellIndex + colspan; j++) {\r\n if (!this.mergedCells[i]) {\r\n this.mergedCells[i] = []\r\n }\r\n this.mergedCells[i][j] = {\r\n masterCell: excelCell\r\n }\r\n }\r\n }\r\n }\r\n addMergedRange(masterCell, rowspan, colspan) {\r\n this.mergedRanges.push({\r\n masterCell: masterCell,\r\n rowspan: rowspan,\r\n colspan: colspan\r\n })\r\n }\r\n applyMergedRages() {\r\n this.mergedRanges.forEach(range => {\r\n var startRowIndex = range.masterCell.fullAddress.row;\r\n var startColumnIndex = range.masterCell.fullAddress.col;\r\n var endRowIndex = startRowIndex + range.rowspan;\r\n var endColumnIndex = startColumnIndex + range.colspan;\r\n this.worksheet.mergeCells(startRowIndex, startColumnIndex, endRowIndex, endColumnIndex)\r\n })\r\n }\r\n}\r\nexport {\r\n MergedRangesManager\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/exceljs/export_data_grid.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Export\r\n} from \"./export\";\r\nimport {\r\n MergedRangesManager\r\n} from \"./export_merged_ranges_manager\";\r\nclass DataGridHelpers {\r\n constructor(component, dataProvider, worksheet, options) {\r\n this.component = component;\r\n this.dataProvider = dataProvider;\r\n this.worksheet = worksheet;\r\n this.mergedRangesManager = new MergedRangesManager(dataProvider, worksheet);\r\n this.topLeftCell = options.topLeftCell;\r\n this.customizeCell = options.customizeCell;\r\n this.autoFilterEnabled = options.autoFilterEnabled\r\n }\r\n _getFirstColumnIndex() {\r\n return this.topLeftCell.column\r\n }\r\n _getFieldHeaderRowsCount() {\r\n return 0\r\n }\r\n _trySetAutoFilter(cellRange) {\r\n if (this.autoFilterEnabled) {\r\n if (!isDefined(this.worksheet.autoFilter) && this.dataProvider.getRowsCount() > 0) {\r\n var dataRange = {\r\n from: {\r\n row: cellRange.from.row + this.dataProvider.getHeaderRowCount() - 1,\r\n column: cellRange.from.column\r\n },\r\n to: cellRange.to\r\n };\r\n this.worksheet.autoFilter = dataRange\r\n }\r\n }\r\n }\r\n _trySetFont(excelCell, bold) {\r\n if (isDefined(bold)) {\r\n excelCell.font = excelCell.font || {};\r\n excelCell.font.bold = bold\r\n }\r\n }\r\n _getWorksheetFrozenState(cellRange) {\r\n return {\r\n state: \"frozen\",\r\n ySplit: cellRange.from.row + this.dataProvider.getFrozenArea().y - 1\r\n }\r\n }\r\n _trySetOutlineLevel(row, rowIndex) {\r\n if (rowIndex >= this.dataProvider.getHeaderRowCount()) {\r\n row.outlineLevel = this.dataProvider.getGroupLevel(rowIndex)\r\n }\r\n }\r\n _isFrozenZone(dataProvider) {\r\n return dataProvider.getHeaderRowCount() > 0\r\n }\r\n _isHeaderCell(rowIndex) {\r\n return rowIndex < this.dataProvider.getHeaderRowCount()\r\n }\r\n _isInfoCell() {\r\n return false\r\n }\r\n _allowToMergeRange() {\r\n return true\r\n }\r\n _getAllFieldHeaders() {\r\n return []\r\n }\r\n _customizeCell(excelCell, gridCell) {\r\n if (isFunction(this.customizeCell)) {\r\n this.customizeCell({\r\n excelCell: excelCell,\r\n gridCell: gridCell\r\n })\r\n }\r\n }\r\n _exportFieldHeaders() {}\r\n _exportAllFieldHeaders() {}\r\n _isRowFieldHeadersRow() {}\r\n}\r\n\r\nfunction exportDataGrid(options) {\r\n return Export.export(_getFullOptions(options), DataGridHelpers, _getLoadPanelTargetElement, _getLoadPanelContainer)\r\n}\r\n\r\nfunction _getFullOptions(options) {\r\n if (!(isDefined(options) && isObject(options))) {\r\n throw Error('The \"exportDataGrid\" method requires a configuration object.')\r\n }\r\n if (!(isDefined(options.component) && isObject(options.component) && \"dxDataGrid\" === options.component.NAME)) {\r\n throw Error('The \"component\" field must contain a DataGrid instance.')\r\n }\r\n if (!isDefined(options.selectedRowsOnly)) {\r\n options.selectedRowsOnly = false\r\n }\r\n if (!isDefined(options.autoFilterEnabled)) {\r\n options.autoFilterEnabled = false\r\n }\r\n return Export.getFullOptions(options)\r\n}\r\n\r\nfunction _getLoadPanelTargetElement(component) {\r\n return component.getView(\"rowsView\").element()\r\n}\r\n\r\nfunction _getLoadPanelContainer(component) {\r\n return component.getView(\"rowsView\").element().parent()\r\n}\r\nexport {\r\n exportDataGrid\r\n};\r\n","<!--Customer AddOns Übersicht-->\r\n\r\n<dx-data-grid class=\"h-100\"\r\n [dataSource]=\"customerAddonInfos\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Daten vorhanden' }}\"\r\n [showBorders]=\"true\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n (onExporting)=\"onExporting($event)\">\r\n\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'minGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onCollapseAll()\" type=\"default\" icon=\"chevronright\" hint=\"{{ 'Alle Gruppen schliessen' }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'maxGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onExpandAll()\" type=\"default\" icon=\"chevrondown\" hint=\"{{ 'Alle Gruppen öffnen' }}\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Aktualisieren' }}\" (onClick)=\"reload()\" hint=\"{{ 'Aktualisieren' }}\"></dx-button>\r\n </div>\r\n\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n\r\n <dxo-paging [pageSize]=\"1000\"> </dxo-paging>\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Daten suchen' }}\" class=\"treeSearch\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CustomerAddonsOverviewStateNewUIV1\"></dxo-state-storing>\r\n\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n\r\n <dxi-column dataField=\"addon\" caption=\"{{ 'AddOn' }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"customerName\" caption=\"{{ 'Kunde' }}\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"userMails\" caption=\"{{ 'Mailkontakte' }}\" dataType=\"string\"></dxi-column>\r\n\r\n</dx-data-grid>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { CustomerAddonInfo } from \"../../../Model/User/CustomerAddonInfo\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Workbook } from 'exceljs';\r\nimport { saveAs } from 'file-saver';\r\nimport { exportDataGrid } from \"devextreme/excel_exporter\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\n\r\n@Component({\r\n selector: \"customer-addons-overview\",\r\n templateUrl: \"customer-addons-overview.component.html\"\r\n})\r\nexport class CustomerAddonsOverviewComponent implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n customerAddonInfos: CustomerAddonInfo[];\r\n\r\n constructor(public modelService: ModelService) {\r\n this.onExporting = this.onExporting.bind(this);\r\n this.onExpandAll = this.onExpandAll.bind(this);\r\n\r\n this.onExpandAll = this.onExpandAll.bind(this);\r\n this.onCollapseAll = this.onCollapseAll.bind(this);\r\n\r\n this.reload = this.reload.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n if (!this.modelService.loginService.isAdmin) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.getCustomerAddonInfos();\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'minGroupsButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'maxGroupsButtonTemplate',\r\n });\r\n\r\n }\r\n\r\n onExporting(e) {\r\n const workbook = new Workbook();\r\n const worksheet = workbook.addWorksheet('AddOns');\r\n\r\n exportDataGrid({\r\n component: e.component,\r\n worksheet,\r\n autoFilterEnabled: true,\r\n }).then(() => {\r\n workbook.xlsx.writeBuffer().then((buffer) => {\r\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'AddOns.xlsx');\r\n });\r\n });\r\n e.cancel = true;\r\n }\r\n\r\n onExpandAll() {\r\n this.dataGrid.instance.expandAll();\r\n }\r\n\r\n onCollapseAll() {\r\n this.dataGrid.instance.collapseAll();\r\n }\r\n\r\n getCustomerAddonInfos(): void {\r\n this.modelService.loginService.customerService.getCustomerAddonInfos().subscribe((result: CustomerAddonInfo[]) => {\r\n this.customerAddonInfos = result;\r\n });\r\n }\r\n\r\n reload(): void {\r\n this.getCustomerAddonInfos();\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/catalogs']\" look=\"dark\" route=\"['/catalogs']\"></logo>\r\n\r\n <div slot=\"content\" class=\"p-3 flex-fill w-100 mx-auto overflow-hidden\">\r\n <dx-scroll-view showScrollbar=\"always\">\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n <!--Jobs-->\r\n <div *dxTemplate=\"let company of 'jobsTemplate'\">\r\n <job-list [storeName]=\"'JobListStateNewUI_V4_ADMIN'\"\r\n [jobListMode]=\"false\"\r\n [catalogMode]=\"false\"\r\n [adminMode]=\"true\"><!-- always choose ONE mode!! -->\r\n </job-list>\r\n </div>\r\n\r\n <!--Logins-->\r\n <div *dxTemplate=\"let l of 'loginsTemplate'\">\r\n <admin-logins></admin-logins>\r\n </div>\r\n\r\n <!--Customer AddOns Übersicht-->\r\n <div *dxTemplate=\"let l of 'customerAddonsOverviewTemplate'\">\r\n <customer-addons-overview></customer-addons-overview>\r\n </div>\r\n\r\n </dx-tab-panel>\r\n </dx-scroll-view>\r\n </div>\r\n\r\n\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"admin\",\r\n templateUrl: \"admin.component.html\",\r\n styleUrls: [\"./admin.component.css\"]\r\n})\r\nexport class AdminComponent implements OnInit {\r\n //public _jobs: BackgroundJob[] = [];\r\n\r\n pages = [\r\n { id: 1, title: \"Jobs\", template: \"jobsTemplate\" },\r\n { id: 2, title: \"Logins\", template: \"loginsTemplate\" },\r\n { id: 3, title: \"Kunden AddOns Übersicht\", template: \"customerAddonsOverviewTemplate\" }\r\n ];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n //this.reload = this.reload.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n if (!this.modelService.loginService.isAdmin) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.translate.get('Administration').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n this.modelService.systemService.showMenu = false;\r\n\r\n //this.reload();\r\n }\r\n\r\n //onGridToolbarPreparing(e) {\r\n // e.toolbarOptions.items.unshift({\r\n // location: 'before',\r\n // locateInMenu: 'auto',\r\n // template: 'refreshButtonTemplate'\r\n // });\r\n //}\r\n\r\n //reload() {\r\n // this.modelService.jobService.getRunningJobs().subscribe(\r\n // (jobs: BackgroundJob[]) => {\r\n // this._jobs = jobs;\r\n // }\r\n // );\r\n //}\r\n\r\n //get jobs(): BackgroundJob[] {\r\n // return this._jobs;\r\n //}\r\n\r\n //time(started, ended) {\r\n // // TODO: SAME in JobListComponent ==> move into a service!!\r\n // var time = (Date.parse(ended) - Date.parse(started)) / 1000;\r\n // if (time < 600) {\r\n // let text = this.translate.instant(\"Sekunden\");\r\n // return Math.floor(time * 10) / 10 + \" \" + text;\r\n // }\r\n // let text = this.translate.instant(\"Minuten\");\r\n // time = time / 60;\r\n // return Math.floor(time) + \" \" + text;\r\n //}\r\n\r\n //getCatalogNameById(id: string): string {\r\n // var cat = this.modelService.catalogService.catalogs.filter(catalog => catalog.id == id).shift();\r\n // if (cat) {\r\n // return cat.catalogName;\r\n // }\r\n // return \"\";\r\n //}\r\n\r\n //getIconClass(icon) {\r\n // return JobService.getIconClass(icon);\r\n //}\r\n\r\n //set jobs(value: BackgroundJob[]) {\r\n // if (!this._jobs) {\r\n // this._jobs = new Array<BackgroundJob>();\r\n // }\r\n // if (!value) {\r\n // this._jobs = new Array<BackgroundJob>();\r\n // }\r\n\r\n // //jobs hinzufügen/überschreiben\r\n // value.forEach(job => {\r\n\r\n // var existing = this._jobs.filter(u => u.id == job.id);\r\n // if (existing[0]) {\r\n // if (existing[0].progress !== job.progress) {\r\n // existing[0].progress = job.progress;\r\n // }\r\n // if (existing[0].state !== job.state) {\r\n // existing[0].state = job.state;\r\n // }\r\n // if (existing[0].started !== job.started) {\r\n // existing[0].started = job.started;\r\n // }\r\n // if (existing[0].ended !== job.ended) {\r\n // existing[0].ended = job.ended;\r\n // }\r\n // if (existing[0].catalogId !== job.catalogId) {\r\n // existing[0].catalogId = job.catalogId;\r\n // }\r\n // if (existing[0].resultCatalogId !== job.resultCatalogId) {\r\n // existing[0].resultCatalogId = job.resultCatalogId;\r\n // }\r\n // if (existing[0].resultFile !== job.resultFile) {\r\n // existing[0].resultFile = job.resultFile;\r\n // }\r\n // if (existing[0].templateId !== job.templateId) {\r\n // existing[0].templateId = job.templateId;\r\n // }\r\n // if (existing[0].catalogName !== job.catalogName) {\r\n // existing[0].catalogName = job.catalogName;\r\n // }\r\n // if (existing[0].resultCatalogName !== job.resultCatalogName) {\r\n // existing[0].resultCatalogName = job.resultCatalogName;\r\n // }\r\n // if (existing[0].userName !== job.userName) {\r\n // existing[0].userName = job.userName;\r\n // }\r\n // if (existing[0].events.length !== job.events.length) {\r\n // existing[0].events = job.events;\r\n // } else {\r\n // if (job.events.length > 0) {\r\n // if (job.events[job.events.length - 1].message !== existing[0].events[job.events.length - 1].message) {\r\n // existing[0].events = job.events;\r\n // }\r\n // }\r\n // }\r\n // } else {\r\n // this._jobs.push(job);\r\n // }\r\n // }\r\n // );\r\n\r\n // while (this.jobRemove(value)) { }\r\n // //jobs entfernen, welche nicht mehr vorhanden sind\r\n\r\n //}\r\n\r\n //private jobRemove(value): boolean {\r\n // this._jobs.forEach(job => {\r\n // var existing = value.filter(u => u.id == job.id);\r\n // if (job.id > 10) {\r\n // if (!existing[0]) {\r\n // this._jobs = this._jobs.filter(u => u.id != job.id);\r\n // return true;\r\n // }\r\n // }\r\n // });\r\n // return false;\r\n //}\r\n\r\n //onDeleteClicked(e) {\r\n // this.modelService.jobService.delete(e.key.id);\r\n //}\r\n}\r\n","export class ChangePassword {\r\n\r\n constructor(\r\n public oldPassword?: string,\r\n public confirmPassword?: string,\r\n public newPassword?: string) {\r\n\r\n\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\n\r\nimport { ChangePassword } from \"../../Model/User/ChangePassword\";\r\n\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n@Component({\r\n selector: \"changePassword\",\r\n templateUrl: \"changePassword.component.html\",\r\n styleUrls: [\"changePassword.component.css\"]\r\n})\r\nexport class ChangePasswordComponent {\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService) {\r\n\r\n\r\n this.translate.get('Passwort ändern').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n creds = new ChangePassword();\r\n\r\n onChangePassword() {\r\n this.modelService.loginService.changePassword(this.creds)\r\n .subscribe(success => {\r\n if (success) {\r\n let translation = \"\";\r\n this.translate.get('Ihr Passwort wurde geändert').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation));\r\n this.modelService.router.navigate([\"account/home\"]);\r\n });\r\n\r\n\r\n\r\n }\r\n },\r\n err => {\r\n let translation = \"\";\r\n this.translate.get('Fehler beim Ändern des Passworts').subscribe((text: string) => {\r\n translation = text;\r\n this.modelService.systemService.notify(new Message(translation, \"error\"));\r\n });\r\n\r\n });\r\n }\r\n\r\n passwordComparison = () => {\r\n return this.creds.newPassword;\r\n };\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/']\" look=\"dark\" route=\"['/catalogs']\"></logo>\r\n <div slot=\"content\" class=\"h-100 p-3\">\r\n <div class=\"d-block h-100 w-100 mx-auto\" style=\"max-width: 600px;\">\r\n\r\n\r\n <form (submit)=\"onChangePassword()\">\r\n\r\n <div class=\"dx-fieldset\">\r\n\r\n <div class=\"dx-fieldset-header\">{{ 'Password ändern' | translate }}</div>\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ creds.oldPassword?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Password' | translate }}</label>\r\n <dx-text-box [(value)]=\"creds.oldPassword\" mode=\"password\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie Ihr altes Passwort ein' | translate }}.\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ creds.newPassword?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Neues Password' | translate }}</label>\r\n <dx-text-box [(value)]=\"creds.newPassword\" mode=\"password\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie Ihr neues Passwort ein' | translate }}.\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <div class=\"dx-field inputWithPlaceHolder\">\r\n <label class=\"placeLabel {{ creds.confirmPassword?.length>0 ? 'placeLabelSmall' : '' }}\">{{ 'Wiederholung' | translate }}</label>\r\n <dx-text-box [(value)]=\"creds.confirmPassword\" mode=\"password\" [showClearButton]=\"true\" width=\"100%\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte wiederholen Sie Ihr neues Password' | translate }}.\"></dxi-validation-rule>\r\n <dxi-validation-rule type=\"compare\" [comparisonTarget]=\"passwordComparison\"\r\n message=\"{{ 'Die Passwörter stimmen nicht überein' | translate }}.\">\r\n </dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Ändern' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n\r\n </div>\r\n\r\n </form>\r\n\r\n\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","export class NewCatalog {\r\n\r\n constructor(\r\n public name?: string,\r\n public customerId?: string,\r\n public catalogId?: string,\r\n public isVirtual?: boolean\r\n ) {\r\n }\r\n}\r\n","<form (submit)=\"onAddCatalog()\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Katalogname' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"model.name\" [showClearButton]=\"true\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie einen Katalognamen an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"modelService.loginService.hasAddonVIRTUAL_CATALOGS\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Virtuell' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n\r\n <div>\r\n <dx-switch [(value)]=\"model.isVirtual\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Anlegen' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n </div>\r\n</form>\r\n","\r\nimport { Component } from \"@angular/core\";\r\nimport { NewCatalog } from \"../../../Model/Dto/NewCatalog\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"newCatalog\",\r\n templateUrl: \"newCatalog.component.html\"\r\n})\r\nexport class NewCatalogComponent {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.model = new NewCatalog();\r\n this.model.customerId = this.modelService.loginService.currentUser.customerId;\r\n }\r\n\r\n model: NewCatalog;\r\n\r\n onAddCatalog() {\r\n this.modelService.catalogService.addCatalog(this.model).subscribe(success => {\r\n if (success) {\r\n this.modelService.router.navigate([\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + this.modelService.catalogService.selectedCatalogId]);\r\n }\r\n },\r\n err => this.translate.get(\"Unbekannter Fehler\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n }));;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { ModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class EdcImportService {\r\n constructor(public modelService: ModelService, private http: HttpClient) { }\r\n\r\n public import(customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/Edc/GetCatalog\", options)) as any;\r\n }\r\n}\r\n","<dx-tab-panel #tabPanel\r\n [dataSource]=\"pages\"\r\n [selectedIndex]=\"0\"\r\n [loop]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [swipeEnabled]=\"true\">\r\n <div *dxTemplate=\"let temp of 'uploadTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <dx-file-uploader #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/ImportCatalogChunky\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n [accept]=\"fileTypes\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onProgress)=\"onProgress($event)\"\r\n (onUploaded)=\"onUploaded()\"\r\n invalidFileExtensionMessage=\"{{ 'Bitte nur xml zip xlsx xls oder csv Dateien auswählen' | translate }}.\"\r\n invalidMaxFileSizeMessage=\"{{ 'Die Datei ist leider zu groß' | translate }}\"\r\n invalidMinFileSizeMessage=\"{{ 'Die Datei ist leider zu klein' | translate }}\"\r\n selectButtonText=\"{{ 'Datei auswählen' | translate }}\"\r\n labelText=\"{{ 'oder Datei hier ablegen' | translate }}\"\r\n uploadButtonText=\"{{ 'Upload' | translate }}\"\r\n uploadedMessage=\"{{ 'Hochgeladen' | translate }}\"\r\n uploadFailedMessage=\"{{ 'Hochladen fehlgeschlagen' | translate }}\">\r\n </dx-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let temp of 'linkTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"{{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }} w-100\" id=\"uc1\" (mouseenter)=\"uct(1)\" (mouseleave)=\"uct(1)\">\r\n <label class=\"placeLabel {{ fileUrl?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_URL</label>\r\n <dx-text-box [(value)]=\"fileUrl\" [showClearButton]=\"true\" (onValueChanged)=\"linkChanged($event)\"></dx-text-box>\r\n </div>\r\n\r\n <dx-tooltip target=\"#uc1\" class=\"toolTip toolTipField\" [(visible)]=\"c[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Hier können Sie einen Link zu einer Katalogdatei eintragen, um diesen zu importieren' | translate }}\r\n {{ 'Es werden zum Beispiel Links zu Dateien in einer Dropbox unterstützt oder Links, welche aus anderen Systemen erstellt wurden' | translate }}.\r\n {{ 'Bsp' | translate }}.: https://www.dropbox.com/s/h5pldo0u8h7qkje/mediaFile.zip?dl=0\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"fileUrl.length>0\">\r\n <div *ngIf=\"!fileUrlTest\">\r\n <div style=\"color: red;\">\r\n {{fileUrlTestMessage}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <dx-toolbar *ngIf=\"fileUrl.length>0\">\r\n <dxi-item *ngIf=\"!fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Link testen' | translate, onClick: testLink }\"></dxi-item>\r\n <dxi-item *ngIf=\"fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog laden' | translate, onClick: startDownload }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n </div>\r\n\r\n <div *dxTemplate=\"let temp of 'osgTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\" *ngIf=\"hasOsgTestSystem\">\r\n <div class=\"dx-field-label\">{{ 'Testsystem verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"useTest\" switchedOffText=\"{{ 'Live' | translate }}\" switchedOnText=\"{{ 'Test' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Sortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ productRange !=null ? 'placeLabelSmall' : '' }}\">PRODUCT_RANGE</label>\r\n <dx-select-box [(value)]=\"productRange\"\r\n [items]=\"productRanges\"\r\n [grouped]=\"false\"\r\n [searchEnabled]=\"true\"\r\n noDataText=\"{{ 'Kein Sortiment gefunden.' | translate }}\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Wurzelkategorie ignorieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"keepRootCategory\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Warengruppen Sortimentsunabhängig' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"takeAllCategory\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <dx-toolbar *ngIf=\"productRange\">\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog laden' | translate, onClick: osgCreateJob }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n </div>\r\n\r\n <div *dxTemplate=\"let temp of 'edcTemplate'\">\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Edc Katalog laden' | translate, onClick: edcImport }\"></dxi-item>\r\n </dx-toolbar>\r\n </div>\r\n\r\n</dx-tab-panel>\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { Catalog } from \"../../../Model/Catalog/catalog\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { TestResult } from \"../../../Model/Dto/TestResult\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OsgConnection } from \"../../../Model/Dto/OsgConnection\";\r\nimport { EdcImportService } from \"../../../Services/edcImport.service\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport {UserIdleService} from \"angular-user-idle\";\r\n\r\n@Component({\r\n selector: \"importCatalog\",\r\n templateUrl: \"importCatalog.component.html\"\r\n})\r\nexport class ImportCatalogComponent {\r\n @ViewChild(DxFileUploaderComponent)\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n value: any[] = [];\r\n model: Catalog[];\r\n fileTypes: string;\r\n uploadHeaders: any;\r\n pages: { id: number; title; template: string }[];\r\n txtFromOSG: string;\r\n txtFromLink: string;\r\n txtUpload: string;\r\n txtEdeSortiment: string;\r\n productRanges: string[];\r\n productRange: string;\r\n keepRootCategory: boolean = false;\r\n takeAllCategory: boolean = false;\r\n _useTest: boolean = false;\r\n hasOsgTestSystem: boolean = false;\r\n constructor(private oauthService: OAuthService, private userIdleService: UserIdleService, public modelService: ModelService, public translate: TranslateService, public edcImportService: EdcImportService) {\r\n\r\n this.testLink = this.testLink.bind(this);\r\n this.startDownload = this.startDownload.bind(this);\r\n this.osgCreateJob = this.osgCreateJob.bind(this);\r\n this.edcImport = this.edcImport.bind(this);\r\n\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n this.onProgress = this.onProgress.bind(this);\r\n\r\n this.fileTypes = \".xml,.zip,.xlsx,.csv,.xls\";\r\n this.txtUpload = this.translate.instant(\"Upload\");\r\n this.txtFromLink = this.translate.instant(\"Aus Link\");\r\n this.txtFromOSG = this.translate.instant(\"OSG\");\r\n this.txtEdeSortiment = this.translate.instant(\"EDC Sortiment\");\r\n\r\n\r\n this.pages = [\r\n { id: 1, title: this.txtUpload, template: \"uploadTemplate\" },\r\n { id: 2, title: this.txtFromLink, template: \"linkTemplate\" },\r\n\r\n ];\r\n\r\n if (this.modelService.loginService.hasAddonOSG && !this.modelService.catalogService.selectedCatalogId) {\r\n this.pages.push({ id: 3, title: this.txtFromOSG, template: \"osgTemplate\" });\r\n this.initProductranges();\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonDEVELOPMENT) {\r\n this.pages.push({ id: 3, title: this.txtEdeSortiment, template: \"edcTemplate\" });\r\n }\r\n\r\n\r\n if (this.modelService.catalogService.catalog) {\r\n this.uploadHeaders = {\r\n CatalogId: this.modelService.catalogService.selectedCatalogId,\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n }\r\n }\r\n else {\r\n this.uploadHeaders = {\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n }\r\n }\r\n\r\n\r\n this.modelService.osgConnectionService.getConnection(this.modelService.loginService.currentCustomer.id, true).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null && result.shopUrl != null && result.shopUrl.length > 0) {\r\n this.hasOsgTestSystem = true;\r\n }\r\n });\r\n }\r\n\r\n\r\n get useTest(): boolean {\r\n return this._useTest;\r\n }\r\n set useTest(value: boolean) {\r\n if (value != this._useTest) {\r\n this._useTest = value;\r\n this.initProductranges();\r\n }\r\n\r\n }\r\n\r\n initProductranges() {\r\n this.productRanges = new Array<string>();\r\n this.modelService.osgConnectionService.getProductRanges(this.modelService.loginService.currentUser.customerId,this.useTest).subscribe((result: string[]) => {\r\n this.productRanges = result;\r\n });\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest}) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oauthService.getAccessToken());\r\n }\r\n\r\n onProgress(e: {}) {\r\n this.userIdleService.stopWatching();\r\n this.userIdleService.startWatching();\r\n }\r\n\r\n onUploaded() {\r\n this.modelService.catalogService.jobStarted = 1;\r\n this.dxfileuploader.instance.reset();\r\n if (this.modelService.catalogService.importCatalogVisible == true) {\r\n\r\n this.translate.get(\"Katalog hochgeladen\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n fileUrl: string = \"\";\r\n fileUrlTest: boolean = false;\r\n fileUrlTestMessage: string = \"\";\r\n\r\n testLink() {\r\n this.fileUrlTest = false;\r\n var tmp = this.fileUrl.split(\"?\", 1);\r\n var link = tmp[0];\r\n link = link.replace(\"www.dropbox\", \"dl.dropbox\");\r\n this.fileUrl = link;\r\n\r\n if (!(this.fileUrl.substr(-4, 4) == \".zip\" || this.fileUrl.substr(-4, 4) == \".xml\" || this.fileUrl.substr(-5, 5) == \".xlsx\" || this.fileUrl.substr(-4, 4) == \".csv\")) {\r\n\r\n\r\n this.fileUrlTestMessage = this.translate.instant(\"Bitte Link zu einer .xml .zip .xlsx oder .csv Datei angeben\");\r\n\r\n\r\n return;\r\n }\r\n\r\n this.modelService.systemService.testUrl(this.fileUrl).subscribe((result: TestResult) => this.testLinkResult(result));\r\n }\r\n\r\n linkChanged(event = null) {\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n }\r\n\r\n testLinkResult(result: TestResult) {\r\n this.fileUrlTest = result.success;\r\n this.fileUrlTestMessage = result.message;\r\n }\r\n\r\n startDownload() {\r\n this.modelService.catalogService.importCatalogVisible = false;\r\n this.modelService.systemService.catalogUrlImport(this.fileUrl, this.modelService.catalogService.selectedCatalogId,this.modelService.loginService.currentCustomer.id).subscribe((result: TestResult) => this.downloadStarted(result));\r\n }\r\n\r\n downloadStarted(result: TestResult) {\r\n if (result.success) {\r\n this.fileUrl = \"\";\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n\r\n\r\n this.translate.get(\"Import als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n\r\n this.modelService.catalogService.jobStarted = 1;\r\n } else {\r\n this.translate.get(\"Unbekannter Fehler\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n\r\n }\r\n }\r\n\r\n c: boolean[] = [false, false];\r\n\r\n uct(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.c[id] = !this.c[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n osgCreateJob() {\r\n\r\n this.modelService.osgConnectionService.importCatalog(this.productRange, this.modelService.loginService.currentUser.customerId, this.keepRootCategory,this.useTest,this.takeAllCategory).subscribe((result: boolean) => {\r\n\r\n this.translate.get(\"Import als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n });\r\n }\r\n\r\n edcImport() {\r\n this.edcImportService.import(this.modelService.loginService.currentCustomer.id).subscribe(x => {\r\n this.modelService.systemService.notify(new Message(\"Katalog wurde erstellt\"));\r\n });\r\n }\r\n\r\n}\r\n","<dx-data-grid [dataSource]=\"backUps\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Datensicherungen im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"deleteBackUp($event)\">\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n <dxo-group-panel [visible]=\"true\" emptyPanelText=\"{{ 'Um Spalte zu gruppieren: Spaltenüberschrift hierhin ziehen' | translate }}.\"></dxo-group-panel>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxo-search-panel [visible]=\"true\" placeholder=\"{{ 'Suchen' | translate }}\" [highlightCaseSensitive]=\"true\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"BackupsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"backupDate\" caption=\"{{ 'Datum' | translate }}\" [width]=\"105\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\"></dxi-column>\r\n <dxi-column dataField=\"time\" caption=\"{{ 'Uhrzeit' | translate }}\" [width]=\"90\"></dxi-column>\r\n <dxi-column dataField=\"isRestorePoint\" caption=\"{{ 'manuell' | translate }}\" [width]=\"70\"></dxi-column>\r\n <dxi-column dataField=\"catalogName\" caption=\"{{ 'Katalogname' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"supplierName\" caption=\"{{ 'Quelle' | translate }}\"></dxi-column>\r\n <dxi-column caption=\"\" width=\"80\" cellTemplate=\"editBackupTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'editBackupTemplate'\" class=\"center\">\r\n\r\n <div class=\"d-flex flex-row\">\r\n\r\n <div *ngIf=\"data.data.xmlStore\">\r\n <a href=\"{{data.data.xmlStore}}\" class=\"glyphicon glyphicon-cloud-download link mr-2\" title=\"{{ 'Katalog download' | translate }}\"></a>\r\n </div>\r\n\r\n <div *ngIf=\"data.data.hasMedia\">\r\n <a (click)=\"downloadMedia(data.data.id)\" class=\"glyphicon glyphicon-picture link mr-2\" title=\"{{ 'Medien download' | translate }}\"></a>\r\n </div>\r\n\r\n <div>\r\n <a (click)=\"restoreBackUp(data.data.id)\" class=\"glyphicon glyphicon-open link mr-2\" title=\"{{ 'Katalog wiederherstellen' | translate }}\"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</dx-data-grid>\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Backup } from \"../../../Model/System/Backup\";\r\nimport { RestoreBackup } from \"../../../Model/Dto/RestoreBackup\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"backup\",\r\n templateUrl: \"backup.component.html\"\r\n})\r\nexport class BackUpComponent implements OnInit {\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.getBackUps();\r\n }\r\n\r\n public backUps: Backup[] = [];\r\n\r\n getBackUps() {\r\n this.modelService.backupService.getBackups(this.modelService.loginService.currentUser.customerId).subscribe(\r\n (backups: Backup[]) => {\r\n this.backUps = backups;\r\n }\r\n );\r\n }\r\n\r\n restoreBackUp(id) {\r\n var restoreBackup = new RestoreBackup();\r\n restoreBackup.backupId = id;\r\n restoreBackup.customerId = this.modelService.loginService.currentUser.customerId;\r\n restoreBackup.restoreMedia = true;\r\n this.modelService.backupService.restoreBackup(restoreBackup);\r\n this.modelService.catalogService.jobStarted = 1;\r\n this.translate.get(\"Das Backup wird per Job bereitgestellt\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n \r\n }\r\n\r\n downloadMedia(id:string) {\r\n this.translate.get(\"Die Medien werden per Job bereitgestellt\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.backupService.getMediaJob(id, this.modelService.loginService.currentUser.customerId);\r\n }\r\n\r\n\r\n deleteBackUp(event) {\r\n this.modelService.backupService.deleteBackup(event.data.id);\r\n \r\n }\r\n}\r\n","export class DataSourceParams {\r\n\r\n constructor(\r\n public skip?: number,\r\n public take?: number,\r\n public orderBy?: string,\r\n public desc?: boolean,\r\n public filter?: string\r\n ) {\r\n }\r\n}","<dx-popup [width]=\"popupWidth\"\r\n [height]=\"popupHeight\"\r\n [dragEnabled]=\"false\"\r\n [showTitle]=\"true\"\r\n [title]=\"popupTitle | translate\"\r\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\r\n [(visible)]=\"visible\"\r\n [fullScreen]=\"popupMaximized\"\r\n [toolbarItems]=\"toolbarItems\"\r\n contentTemplate=\"popupContent\">\r\n\r\n\r\n <ng-content select=\"[slot='toolbar']\"> </ng-content>\r\n\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <ng-content select=\"[slot='content']\"></ng-content>\r\n </div>\r\n\r\n\r\n\r\n</dx-popup>\r\n","import { AfterViewInit, Component, ContentChildren, Directive, EventEmitter, Input, Output, QueryList, ViewChild } from \"@angular/core\";\r\nimport { DxButtonComponent, DxPopupComponent } from \"devextreme-angular\";\r\nimport dxButton from \"devextreme/ui/button\";\r\nimport dxDropDownButton from \"devextreme/ui/drop_down_button\";\r\nimport { NpHelpButtonComponent, NpHelpOption } from \"../helpButton/NpHelpButton.component\";\r\n\r\n\r\n//<dxi-item slot=\"toolbar\" location=\"before\" widget=\"dxButton\" [options]=\"{ text: 'nextCat ' + ('exportieren' | translate), onClick: exportBmeNextClicked }\"></dxi-item>\r\n@Directive({\r\n selector: 'np-dialog-button'\r\n})\r\nexport class NpDialogButton {\r\n @Input() public toolbar: 'top' | 'bottom';\r\n @Input() public location: 'before' | 'after';\r\n @Input() public widget: string;\r\n @Input() public options: Record<string, unknown>;\r\n}\r\n\r\n@Component({\r\n selector: \"np-dialog\",\r\n templateUrl: \"NpDialog.component.html\",\r\n styleUrls: [\"./NpDialog.component.css\"]\r\n})\r\nexport class NpDialogComponent implements AfterViewInit {\r\n @Input() popupWidth?= 1000;\r\n @Input() popupHeight?= 800;\r\n @Input() popupTitle?: string;\r\n @Input() closeOnOutsideClick?: boolean = true;\r\n\r\n @Input() popupVisible?= false;\r\n @Output() popupVisibleChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n @Input() popupMaximized?= false;\r\n @Output() popupMaximizedChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n private _popup: DxPopupComponent;\r\n private _buttons: QueryList<NpDialogButton>;\r\n private _helpButton: NpHelpButtonComponent;\r\n\r\n private _windowButton: dxButton;\r\n private _fullscreenButton: dxButton;\r\n\r\n public toolbarItems = new Array<any>();\r\n\r\n constructor() {\r\n this.popupToWindow = this.popupToWindow.bind(this);\r\n this.popupToFullscreen = this.popupToFullscreen.bind(this);\r\n }\r\n\r\n refreshToolbarItems(): void {\r\n if (this._buttons) {\r\n const self = this;\r\n\r\n this.toolbarItems.length = 0;\r\n\r\n this.toolbarItems.push({\r\n toolbar: 'top', location: 'after', widget: 'dxButton', options: {\r\n visible: this.popupMaximized,\r\n icon: 'chevrondown',\r\n onClick: this.popupToWindow,\r\n onInitialized: (e: { component: dxButton }) => {\r\n self._windowButton = e.component;\r\n }\r\n }\r\n });\r\n this.toolbarItems.push({\r\n toolbar: 'top', location: 'after', widget: 'dxButton', options: {\r\n visible: !this.popupMaximized,\r\n icon: 'chevronup',\r\n onClick: this.popupToFullscreen,\r\n onInitialized: (e: { component: dxButton }) => {\r\n self._fullscreenButton = e.component;\r\n }\r\n }\r\n });\r\n\r\n if (self._helpButton != undefined) {\r\n this.toolbarItems.push({\r\n toolbar: 'top', location: 'after', widget: 'dxDropDownButton', options: {\r\n items: self._helpButton.options,\r\n icon: \"help\",\r\n displayExpr: \"text\",\r\n keyExpr: \"text\",\r\n showArrowIcon: false,\r\n stylingMode: \"text\",\r\n useSelectMode: false,\r\n wrapItemText: false,\r\n dropDownOptions: { width: '500%' },\r\n onItemClick: self._helpButton.openHelpLink\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n this.toolbarItems.push(...this._buttons?.map(b => { return { toolbar: b.toolbar, location: b.location, widget: b.widget, options: b.options } }));\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.refreshToolbarItems();\r\n }\r\n\r\n @ContentChildren(NpDialogButton, { descendants: true })\r\n public set contentButtons(buttons: QueryList<NpDialogButton>) {\r\n this._buttons = buttons;\r\n this.refreshToolbarItems();\r\n }\r\n\r\n @ContentChildren(NpHelpButtonComponent, { descendants: true })\r\n public set helpButton(childs: QueryList<NpHelpButtonComponent>) {\r\n if (childs != undefined) {\r\n this._helpButton = childs.first;\r\n this.refreshToolbarItems();\r\n }\r\n }\r\n\r\n @ViewChild(DxPopupComponent)\r\n public set popup(popup: DxPopupComponent) {\r\n this._popup = popup;\r\n }\r\n\r\n public get visible() {\r\n return this.popupVisible;\r\n }\r\n\r\n public set visible(val: boolean) {\r\n if (this.popupVisible !== val) {\r\n this.popupVisible = val;\r\n this.popupVisibleChange.emit(val);\r\n }\r\n }\r\n\r\n public popupToWindow() {\r\n if (this.popupMaximized) {\r\n this.popupMaximized = false;\r\n this._fullscreenButton.option('visible', true);\r\n this._windowButton.option('visible', false);\r\n this.popupMaximizedChange.emit(false);\r\n }\r\n }\r\n\r\n public popupToFullscreen() {\r\n if (!this.popupMaximized) {\r\n this.popupMaximized = true;\r\n this._fullscreenButton.option('visible', false);\r\n this._windowButton.option('visible', true);\r\n this.popupMaximizedChange.emit(true);\r\n }\r\n }\r\n}\r\n","<np-dialog\r\n [popupWidth]=\"1200\"\r\n [popupHeight]=\"800\"\r\n [popupTitle]=\"'JobFiles' | translate\"\r\n [(popupVisible)]=\"visible\"> \r\n <dx-data-grid slot=\"content\"\r\n class=\"w-100 h-100\"\r\n [dataSource]=\"dataSource\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Files im Account' | translate }}\"\r\n [showBorders]=\"true\">\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"></dxo-search-panel>\r\n <dxo-remote-operations [sorting]=\"true\" [paging]=\"true\" [filtering]=\"true\"></dxo-remote-operations>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [showPageSizeSelector]=\"false\" [allowedPageSizes]=\"[15]\"></dxo-pager>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"JobDataStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"mimeSource\" caption=\"{{ 'Dateiname' | translate }}\" cellTemplate=\"nameCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'nameCellTemplate'\">\r\n <a href=\"{{data.data.blobUri}}\" target=\"_blank\">{{data.value}}</a>\r\n </div>\r\n <dxi-column dataField=\"fileDate\" dataType=\"date\" [allowFiltering]=\"false\" [allowSorting]=\"false\" caption=\"{{ 'Datum' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"fileSize\" [allowFiltering]=\"false\" [allowSorting]=\"false\" caption=\"{{ 'Größe' | translate }}\" cellTemplate=\"sizeCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'sizeCellTemplate'\">\r\n {{getFileSizeString(data.value)}}\r\n </div>\r\n\r\n <dxi-column [width]=\"40\" cellTemplate=\"editCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'editCellTemplate'\">\r\n <a (click)=\"deleteRequest(data)\" class=\"dx-icon-trash\" title=\"{{ 'Datei löschen' | translate }}\"></a>\r\n </div>\r\n </dx-data-grid>\r\n \r\n <np-dialog-button slot=\"toolbar\" toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ icon: 'refresh', onClick: reload }\"></np-dialog-button>\r\n</np-dialog>\r\n\r\n\r\n","import { Component, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { MediaPool } from \"../../../Model/Catalog/MediaPool\";\r\nimport { DataSourceParams } from \"../../../Model/Catalog/DataSourceParams\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\n\r\n@Component({\r\n selector: \"jobdata\",\r\n templateUrl: \"jobdata.component.html\",\r\n styleUrls: []\r\n})\r\nexport class JobDataComponent {\r\n\r\n private _visible: boolean = false;\r\n\r\n public get visible() {\r\n return this._visible;\r\n }\r\n\r\n @Input()\r\n public set visible(val: boolean) {\r\n if (this._visible !== val) {\r\n this._visible = val;\r\n this.visibleChange.emit(val);\r\n } \r\n }\r\n\r\n @Output() public visibleChange = new EventEmitter<boolean>();\r\n\r\n\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent\r\n\r\n dataSource: any = {};\r\n mediaPool: MediaPool;\r\n constructor(public modelService: ModelService) {\r\n this.reload = this.reload.bind(this);\r\n\r\n this.dataSource.store = new CustomStore({\r\n load: function (loadOptions: any) {\r\n\r\n var params = new DataSourceParams();\r\n\r\n params.skip = loadOptions.skip || 0;\r\n params.take = loadOptions.take || 20;\r\n\r\n if (loadOptions.sort) {\r\n params.orderBy = loadOptions.sort[0].selector;\r\n if (loadOptions.sort[0].desc) {\r\n params.desc = true;\r\n }\r\n }\r\n if (loadOptions.filter) {\r\n if (loadOptions.filter[2]) {\r\n params.filter = loadOptions.filter[2];\r\n }\r\n }\r\n return modelService.mediaService.getJobDataElements(modelService.loginService.currentUser.customerId, params)\r\n .then((data: any) => {\r\n let mediaPool = data;\r\n return {\r\n data: mediaPool.items,\r\n totalCount: mediaPool.totalCount\r\n }\r\n })\r\n .catch(() => { throw 'Data Loading Error' });\r\n }\r\n });\r\n\r\n }\r\n\r\n getFileSizeString(size) {\r\n return this.modelService.systemService.getFileSizeString(size);\r\n }\r\n\r\n deleteRequest(data) {\r\n this.modelService.mediaService.deleteJobFile(data.data.mimeSource);\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n reload() {\r\n console.log(this.dataSource);\r\n this.dataGrid.instance.refresh();\r\n\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\" helpSwitch=\"true\">\r\n <div slot=\"content\" class=\"p-3 flex-fill w-100 mx-auto overflow-hidden\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Kataloge im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onEditingStart)=\"onEditClicked($event)\"\r\n (onRowPrepared)=\"onRowPrepared($event)\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\">\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newCatalogButtonTemplate'\">\r\n <dx-button [visible]=\"canView('newCatalogButton')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Neuer Katalog' | translate }}\" (onClick)=\"showAddCatalog()\" hint=\"{{ 'Neuen, leeren Katalog anlegen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'importButtonTemplate'\">\r\n <dx-button [visible]=\"canView('importButton')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Importieren' | translate }}\" (onClick)=\"showImportCatalog()\" hint=\"{{ 'Katalog hochladen (Excel, BMEcat)' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button [visible]=\"canView('refreshButton')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Aktualisieren' | translate }}\" (onClick)=\"refresh()\" hint=\"{{ 'Katalogliste aktualisieren' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'minGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onCollapseAll()\" type=\"default\" icon=\"chevronright\" hint=\"{{ 'Alle Gruppen schliessen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'maxGroupsButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"onExpandAll()\" type=\"default\" icon=\"chevrondown\" hint=\"{{ 'Alle Gruppen öffnen' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'pasteCatalogButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" *ngIf=\"copyCatalogId!=''\" text=\"Katalog einfügen\" (onClick)=\"pasteCatalog()\" hint=\"{{ 'Katalog einfügen' | translate }}\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'jobdataButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'JobFiles' | translate }}\" (click)=\"showJobData()\" *ngIf=\"modelService.loginService.isAdmin\" title=\"JobData\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'backupButtonTemplate'\">\r\n <dx-button [visible]=\"canView('backupButton')\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Backups' | translate }}\" (click)=\"showBackUp()\" title=\"BackUps\" hint=\"{{ 'Vorhandene Backups anzeigen' | translate }}\"></dx-button>\r\n </div>\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CatalogListStateNewUIV2\" savingTimeout=\"0\"></dxo-state-storing>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"canView('catalogDelete')\" [allowUpdating]=\"canView('catalogUpdate')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie den Katalog wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Katalog löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Kataloge suchen' | translate }}\"></dxo-search-panel>\r\n\r\n\r\n\r\n <dxi-column dataField=\"catalogName\" caption=\"{{ 'Katalog' | translate }}\" cellTemplate=\"catalogNameTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let catalog of 'catalogNameTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"catalogSelected(catalog.data)\" text=\"{{ catalog.data.catalogName}}\" type=\"default\" style=\"min-width: 32px;\"></dx-button>\r\n </div>\r\n\r\n <dxi-column *ngIf=\"modelService.loginService.hasAddonDEVELOPMENT\" dataField=\"isVirtual\" caption=\"{{ 'Virtuell' | translate }}\" [allowEditing]=\"false\"></dxi-column>\r\n\r\n <dxi-column dataField=\"supplier.supplierName\" caption=\"{{ 'Lieferant' | translate }}\"></dxi-column>\r\n\r\n <dxi-column dataField=\"responsible\" caption=\"{{ 'Verantwortlicher' | translate }}\" style=\"padding-top: 0px;\" [allowEditing]=\"false\" cellTemplate=\"responsibleTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let catalog of 'responsibleTemplate'\">\r\n <dx-autocomplete class=\"dataGridAutocomplete\"\r\n [minSearchLength]=\"0\"\r\n [dataSource]=\"modelService.catalogService.responsibleList\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"updateResponsible(catalog)\"\r\n [(value)]=\"catalog.data.responsible\"\r\n [readOnly]=\"!canEdit('verantwortlicher')\">\r\n </dx-autocomplete>\r\n </div>\r\n\r\n <dxi-column dataField=\"note\" caption=\"{{ 'Notiz' | translate }}\" cellTemplate=\"noteTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let catalog of 'noteTemplate'\">\r\n <div (mouseenter)=\"showMemo(catalog)\" (mouseleave)=\"hideMemo()\" id=\"memo{{catalog.rowIndex}}\">\r\n <dx-text-box [readOnly]=\"!canEdit('catalogNote')\" [(value)]=\"catalog.data.note\" [showClearButton]=\"false\" (onValueChanged)=\"update(catalog)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"catalogVersion\" caption=\"{{ 'Version' | translate }}\" [width]=\"80\"></dxi-column>\r\n\r\n <dxi-column dataField=\"thumbUri\" caption=\"\" [width]=\"35\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imageCellTemplate2\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'imageCellTemplate2'\" style=\"overflow:visible;height:25px;\">\r\n <div (mouseenter)=\"showImage(data.value,data.rowIndex)\" (mouseleave)=\"hideImage()\" style=\"position:relative;top:-10px;left:-7px;\">\r\n <span *ngIf=\"!data.value\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 35px;\"></span>\r\n <img *ngIf=\"data.value\" src=\"{{data.value}}{{mimedate()}}\" style=\"height: 35px;\" id=\"link{{data.rowIndex}}\" />\r\n </div>\r\n </div>\r\n\r\n\r\n <dxi-column dataField=\"language\" caption=\"\" title=\"{{ 'Sprache' | translate }}\" width=\"40\" cellTemplate=\"catalogLanguageTemplate\" *ngIf=\"modelService.loginService.hasAddonTranslate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'catalogLanguageTemplate'\">\r\n <img src=\"images/flags/{{getLanguageFlag(data.data.language)}}\" class=\"flag\" />\r\n </div>\r\n\r\n <dxi-column dataField=\"date\" caption=\"{{ 'Datum' | translate }}\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n\r\n <dxi-column dataField=\"categoryCount\" caption=\"{{ 'Kategorien' | translate }}\" [width]=\"100\"></dxi-column>\r\n <dxi-column dataField=\"productCount\" caption=\"{{ 'Produkte' | translate }}\" [width]=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"pimGroup\" caption=\"{{ 'Gruppe' | translate }}\" [groupIndex]=\"0\"></dxi-column>\r\n\r\n <dxi-column dataField=\"lastUpdate\" caption=\"{{ 'Änderung' | translate }}\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n\r\n <dxi-column dataField=\"isPublic\" caption=\"{{ 'Öffentlich' | translate }}\" [width]=\"100\" *ngIf=\"modelService.loginService.hasAddonSEARCH || modelService.loginService.hasAddonShopWare\" cellTemplate=\"isPublicTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let catalog of 'isPublicTemplate'\">\r\n <div *ngIf=\"!catalog.data.isVirtual\">\r\n <dx-switch [readOnly]=\"!canEdit('isPublic')\" (onValueChanged)=\"update(catalog)\" [(value)]=\"catalog.data.isPublic\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <dxi-column caption=\"\" width=\"100\" cellTemplate=\"duplicateCatalogTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'duplicateCatalogTemplate'\" style=\"display:inline\">\r\n\r\n <!--&& !data.data.isVirtual--> <div *ngIf=\"canView('catalogCopy')\">\r\n\r\n <a (click)=\"duplicateCatalog(data.data.id)\" class=\"dx-link glyphicon glyphicon-duplicate mr-2\" title=\"{{ 'Katalog duplizieren' | translate }}\"></a>\r\n\r\n <a *ngIf=\"copyCatalogId!=data.data.id\" (click)=\"copyCatalog(data.data.id)\" class=\"glyphicon glyphicon-copy dx-link mr-2\" title=\"{{ 'Katalog kopieren' | translate }}\"></a>\r\n <a *ngIf=\"copyCatalogId==data.data.id\" class=\"glyphicon glyphicon-hdd dx-link color2Text mr-2\" title=\"{{ 'Katalog kopiert' | translate }}\"></a>\r\n\r\n <a (click)=\"createRestorePoint(data.data.id)\" class=\"glyphicon glyphicon-time dx-link mr-2\" title=\"{{ 'Wiederherstellungspunkt erstellen' | translate }}\"></a>\r\n </div>\r\n </div>\r\n\r\n </dx-data-grid>\r\n\r\n <dx-popover [(target)]=\"memoTarget\"\r\n position=\"bottom\"\r\n [width]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"Notiz\"\r\n [(visible)]=\"memoVisable\">\r\n <div *dxTemplate=\"let data = model of 'content'\">\r\n <span [innerHTML]=\"memoText\"></span>\r\n </div>\r\n </dx-popover>\r\n\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Neuer Katalog' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"addCatalogVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <newCatalog></newCatalog>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"800\"\r\n minHeight=\"550\"\r\n [height]=\"'auto'\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Katalog importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importCatalogVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importCatalog></importCatalog>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup title=\"{{ 'Datensicherungen' | translate }}\"\r\n [width]=\"1000\"\r\n [height]=\"800\"\r\n [dragEnabled]=\"false\"\r\n [showCloseButton]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"backUpVisible\"\r\n (onHiding)=\"hideBackUp()\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"top\" location=\"after\" widget=\"dxDropDownButton\">\r\n <np-help-button>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=cElY9pFqz2I\"></np-help-option>\r\n </np-help-button>\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <backup></backup>\r\n </div>\r\n</dx-popup>\r\n\r\n<jobdata [(visible)]=\"jobDataVisible\"></jobdata>\r\n\r\n<dx-popover [(target)]=\"target\"\r\n position=\"bottom\"\r\n [width]=\"300\"\r\n [showTitle]=\"false\"\r\n [(visible)]=\"imageVisable\">\r\n <div *dxTemplate=\"let data = model of 'content'\">\r\n <img src=\"{{source}}{{mimedate()}}\" style=\"height: 244px;\" />\r\n </div>\r\n</dx-popover>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { NewCatalog } from \"../../Model/Dto/NewCatalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { CustomerWiki } from \"../../Model/System/CustomerWiki\";\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Catalog } from \"../../Model/Catalog/catalog\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"cat-list\",\r\n templateUrl: \"./catList.component.html\",\r\n styleUrls: [\"./catList.component.css\"]\r\n})\r\nexport class CatListComponent implements OnInit {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagment: UserManagementService) {\r\n this.onExpandAll = this.onExpandAll.bind(this);\r\n this.onCollapseAll = this.onCollapseAll.bind(this);\r\n this.refresh = this.refresh.bind(this);\r\n\r\n this.translate.get('Katalog Übersicht').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n this.modelService.loginService.selectedProductTabIndex = 0;\r\n\r\n }\r\n\r\n datagridLoaded = false;\r\n ngOnInit(): void {\r\n this.refresh();\r\n }\r\n\r\n refresh() {\r\n this.datagridLoaded = false;\r\n this.modelService.catalogService.selectedCatalogId = null;\r\n this.modelService.catalogService.isJobRunning = false;\r\n this.modelService.catalogService.importCatalogVisible = false;\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.modelService.catalogService.catalog = null;\r\n this.modelService.catalogService.setCatalogs(this.modelService.loginService.currentUser.customerId);\r\n\r\n }\r\n\r\n public backUpVisible: boolean = false;\r\n public jobDataVisible: boolean = false;\r\n public addCatalogVisible: boolean = false;\r\n\r\n get model() {\r\n return this.modelService.catalogService.catalogs;\r\n }\r\n\r\n public newCatalogModel: NewCatalog = new NewCatalog();\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newCatalogButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'importButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'pasteCatalogButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'jobdataButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'backupButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'minGroupsButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'maxGroupsButtonTemplate',\r\n });\r\n\r\n }\r\n\r\n onRowPrepared(e) {\r\n if (e.rowType == \"data\") {\r\n if (e.data.isVirtual == true) {\r\n e.rowElement.style.backgroundColor = \"#D6F5F3\";\r\n e.rowElement.className = e.rowElement.className.replace(\"dx-row-alt\", \"\"); // Standard-Klasse wegräumen, sonst greif es nur auf Nicht-Alternating-Rows\r\n }\r\n }\r\n }\r\n\r\n onExpandAll() {\r\n this.dataGrid.instance.expandAll();\r\n }\r\n\r\n onCollapseAll() {\r\n this.dataGrid.instance.collapseAll();\r\n }\r\n\r\n get importCatalogVisible(): boolean {\r\n return this.modelService.catalogService.importCatalogVisible;\r\n }\r\n\r\n set importCatalogVisible(value: boolean) {\r\n this.modelService.catalogService.importCatalogVisible = value;\r\n }\r\n\r\n getLanguageFlag(language: string) {\r\n return this.modelService.loginService.getLanguageFlag(language.toLowerCase());\r\n }\r\n\r\n showAddCatalog() { this.addCatalogVisible = true; }\r\n\r\n showImportCatalog() { this.modelService.catalogService.importCatalogVisible = true; }\r\n\r\n onEditClicked(e) {\r\n this.modelService.catalogService.selectedCatalogId = e.key.id;\r\n this.modelService.router.navigate([\"/catalog/\" + e.key.customerId + \"/\" + e.key.id]);\r\n }\r\n\r\n catalogSelected(data: Catalog) {\r\n this.modelService.catalogService.selectedCatalogId = data.id;\r\n this.modelService.router.navigate([\"/catalog/\" + data.customerId + \"/\" + data.id]);\r\n }\r\n\r\n updateResponsible(data) {\r\n this.modelService.catalogService.setResponsible();\r\n this.modelService.catalogService.catalog = data.data;\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n update(data) {\r\n this.modelService.catalogService.catalog = data.data;\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n duplicateCatalog(id) {\r\n this.translate.get(\"Der Katalog wird dupliziert\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.duplicateCatalog(id);\r\n }\r\n\r\n createRestorePoint(id) {\r\n this.translate.get(\"Ein Wiederherstellungspunkt wird per Job erzeugt\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.createRestorePoint(id);\r\n }\r\n\r\n onDeleteClicked(e) {\r\n this.modelService.catalogService.remCatalog(e.data.id);\r\n }\r\n\r\n copyCatalog(id: string) {\r\n this.modelService.catalogService.copyCatalogId = id;\r\n this.modelService.catalogService.copyCatalogCustomerId = this.modelService.loginService.currentUser.customerId;\r\n }\r\n\r\n get copyCatalogId() {\r\n return this.modelService.catalogService.copyCatalogId;\r\n }\r\n\r\n pasteCatalog() {\r\n this.translate.get(\"Katalog wird eingefügt\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n\r\n this.modelService.catalogService.duplicateCatalog(this.modelService.catalogService.copyCatalogId,\r\n this.modelService.catalogService.copyCatalogCustomerId);\r\n }\r\n\r\n //BackUpWindow\r\n\r\n //EXPORT WINDOW\r\n get fullScreen() {\r\n return this.modelService.catalogService.viewService.fullScreen;\r\n }\r\n\r\n set fullScreen(value: boolean) {\r\n this.modelService.catalogService.viewService.fullScreen = value;\r\n }\r\n\r\n toFullScreen() {\r\n this.modelService.catalogService.viewService.fullScreen = true;\r\n }\r\n\r\n toWindow() {\r\n this.modelService.catalogService.viewService.fullScreen = false;\r\n }\r\n\r\n // never used??\r\n //showTranslate() {\r\n // if (this.modelService.loginService.languageFlags.length == 1) {\r\n // this.translate.get(\"Es wurden noch keine Sprachen angelegt, in die eine Übersetzung vorgenommen werden kann.\").subscribe((text: string) => {\r\n // this.modelService.systemService.notify(new Message(text), 2500);\r\n // });\r\n // } else {\r\n // this.modelService.catalogService.translateVisible = true;\r\n // }\r\n //}\r\n\r\n\r\n hideExport() {\r\n this.modelService.catalogService.exportVisible = false;\r\n }\r\n\r\n showBackUp() {\r\n this.backUpVisible = true;\r\n }\r\n\r\n hideBackUp() {\r\n this.backUpVisible = false;\r\n }\r\n\r\n showJobData() {\r\n this.jobDataVisible = true;\r\n }\r\n\r\n hideJobData() {\r\n this.jobDataVisible = false;\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);;\r\n }\r\n }\r\n\r\n\r\n //SETTINGS\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders(): boolean {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n mimedate() {\r\n return \"?\" + (new Date()).toDateString;\r\n }\r\n\r\n imageVisable: boolean = false;\r\n source: string = \"\";\r\n target: string = \"\";\r\n\r\n showImage(source, index) {\r\n if (source != null) {\r\n this.target = \"#link\" + index;\r\n this.source = source;\r\n this.imageVisable = true;\r\n }\r\n }\r\n\r\n hideImage() {\r\n this.imageVisable = false;\r\n }\r\n\r\n memoVisable: boolean = false;\r\n memoText: string = \"\";\r\n memoTarget: string = \"\";\r\n\r\n showMemo(memo, index) {\r\n if (memo.data.memo != null) {\r\n this.memoTarget = \"#memo\" + memo.rowIndex;\r\n this.memoText = memo.data.memo;\r\n this.memoVisable = true;\r\n }\r\n }\r\n\r\n hideMemo() {\r\n this.memoVisable = false;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagment.canView(name);\r\n }\r\n canEdit(name: string): boolean {\r\n return this.userManagment.canEdit(name);\r\n }\r\n}\r\n","export class Clipboard {\r\n\r\n constructor(\r\n public id?: string,\r\n public userId?: string,\r\n public isCut?: boolean,\r\n public isMaster?: boolean,\r\n public customerId?: string,\r\n public objectId?: string,\r\n public content?: string\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { LoginService } from './../login.service';\r\nimport { MassDataChangeParameter } from \"../../Model/Dto/MassDataChangeParameter\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MassDataChangeService {\r\n constructor(private http: HttpClient, public loginService: LoginService) { }\r\n\r\n public startJob(catalogId: string, param: MassDataChangeParameter): Observable<any> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId).append(\"catalogId\", catalogId)\r\n };\r\n\r\n return this.http.post<MassDataChangeParameter>(\"api/MassDataChange/startJob\", param, options);\r\n }\r\n\r\n public getEmtpyProductByCatalog(catalogId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", this.loginService.currentUser.customerId)\r\n };\r\n\r\n return this.http.get<Product>(\"api/MassDataChange/getEmptyProductByCatalog\", options);\r\n }\r\n\r\n public getEmtpyProductByCategory(catalogId: string, categoryId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"categoryId\", categoryId).append(\"customerId\", this.loginService.currentUser.customerId)\r\n };\r\n\r\n return this.http.get<Product>(\"api/MassDataChange/getEmptyProductByCategory\", options);\r\n }\r\n\r\n public getEmtpyProductByMasterProduct(catalogId: string, masterId: string): Observable<Product> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"masterId\", masterId).append(\"customerId\", this.loginService.currentUser.customerId)\r\n };\r\n\r\n return this.http.get<Product>(\"api/MassDataChange/getEmptyProductByMasterProduct\", options);\r\n }\r\n\r\n/* update(entity: WawiList1, customerId: string): Observable<WawiList1> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n\r\n var result = this.http.post<WawiList1>(\"api/WawiList/update\", entity, options);\r\n return (result);\r\n }*/\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { ProductSearchOptions } from \"../../../Model/User/ProductSearchOptions\";\r\nimport { SearchFields } from \"../../../Model/User/SearchFields\";\r\nimport { FieldNames } from \"../../../Model/FieldNames\";\r\n\r\n@Component({\r\n selector: \"productStateOptions\",\r\n templateUrl: \"productStateOptions.component.html\",\r\n styleUrls: [\"productStateOptions.component.css\"]\r\n})\r\nexport class ProductStateOptionsComponent implements OnInit {\r\n @Input()\r\n stateValue: string[] = [];\r\n\r\n @Input()\r\n isTarget = false;\r\n\r\n @Output()\r\n onValueChanged = new EventEmitter<{ mode: 'or' | 'and'; states: string[] }>();\r\n\r\n get model(): ProductSearchOptions {\r\n if (this.isTarget) {\r\n console.log('IS TARGET')\r\n return this.modelService.loginService.currentUser.productSearchOptionsTarget;\r\n }\r\n\r\n console.log('IS NOT TARGET')\r\n return this.modelService.loginService.currentUser.productSearchOptions;\r\n }\r\n set model(value: ProductSearchOptions) {\r\n if (this.isTarget) {\r\n console.log('IS TARGET')\r\n this.modelService.loginService.currentUser.productSearchOptionsTarget = value;\r\n }\r\n else {\r\n console.log('IS NOT TARGET')\r\n this.modelService.loginService.currentUser.productSearchOptions = value;\r\n }\r\n }\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.model) {\r\n const fieldNames = new FieldNames();\r\n this.model = new ProductSearchOptions();\r\n this.model.searchMode = \"Contains\";\r\n this.model.searchStateMode = 'or';\r\n this.model.searchFields = [\r\n new SearchFields( fieldNames.supplierPid ),\r\n new SearchFields( fieldNames.supplierAltPid ),\r\n new SearchFields( fieldNames.internatonalPid ),\r\n new SearchFields( fieldNames.descriptionShort ),\r\n ];\r\n }\r\n }\r\n\r\n update() {\r\n const searchFields = this.model.searchFields.map(s => s.searchField);\r\n this.modelService.loginService\r\n .updateSearchFields(\r\n searchFields, \r\n this.model.searchMode, \r\n this.modelService.loginService.currentUser.id, \r\n this.isTarget, \r\n this.model.searchStateMode)\r\n .subscribe(options => {\r\n this.model = options;\r\n this.onValueChanged.emit({\r\n mode: this.model.searchStateMode,\r\n states: this.stateValue,\r\n });\r\n });\r\n }\r\n\r\n}","<div class=\"d-flex gap-1\">\r\n <div class=\"selectWithPlaceHolder flex-fill w-25\">\r\n <label class=\"placeLabel placeLabelSmall\">{{ 'Suchmodus' | translate }}</label>\r\n <dx-select-box [dataSource]=\"[\r\n { label: 'oder' | translate, value: 'or' },\r\n { label: 'und' | translate, value: 'and' }\r\n ]\"\r\n [(value)]=\"model.searchStateMode\"\r\n (onValueChanged)=\"update()\"\r\n valueExpr=\"value\"\r\n displayExpr=\"label\">\r\n </dx-select-box>\r\n </div>\r\n <div class=\"inputWithPlaceHolder flex-column w-75\">\r\n <label class=\"placeLabel {{ stateValue.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'Produktstatus' | translate }}</label>\r\n <dx-tag-box [(value)]=\"stateValue\"\r\n [(items)]=\"modelService.productStateService.productStates\"\r\n (onValueChanged)=\"update()\"\r\n [acceptCustomValue]=\"true\"\r\n placeholder=\"\"\r\n noDataText=\"\">\r\n </dx-tag-box>\r\n </div>\r\n</div>","export class NameValue {\r\n\r\n constructor(\r\n public value?: string,\r\n public name?: string,\r\n ) {\r\n }\r\n}\r\n","\r\n<div class=\"d-flex flex-row\">\r\n <div class=\"flex-fill w-25\" style=\"margin-top:6px;\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Suchmodus' | translate }}</div>\r\n </div>\r\n <div class=\"flex-column w-75\" style=\"margin-top:6px;margin-left:6px;\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Durchsuchte Felder' | translate }}</div>\r\n </div>\r\n</div>\r\n<div class=\"d-flex flex-row\">\r\n <div class=\"flex-fill w-25\" style=\"margin-top:6px;\">\r\n <dx-select-box [(value)]=\"model.searchMode\"\r\n [items]=\"searchModes\"\r\n displayExpr=\"name\"\r\n (onSelectionChanged)=\"onSearchModeSelectionChanged()\"\r\n valueExpr=\"value\"></dx-select-box>\r\n </div>\r\n <div class=\"flex-column w-75\" style=\"margin-top:6px;margin-left:6px;\">\r\n <dx-drop-down-box [(value)]=\"selectedSearchFields\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [showClearButton]=\"true\"\r\n [dataSource]=\"searchFields\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-data-grid [dataSource]=\"searchFields\"\r\n keyExpr=\"value\"\r\n [closeOnOutsideClick]=\"false\"\r\n [selection]=\"{ mode: 'multiple' }\"\r\n [hoverStateEnabled]=\"true\"\r\n (onSelectionChanged)=\"onSearchFieldsSelectionChanged()\"\r\n [(selectedRowKeys)]=\"selectedSearchFields\">\r\n </dx-data-grid>\r\n </div>\r\n </dx-drop-down-box>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NameValue } from \"../../../Model/Dto/NameValue\";\r\nimport { FieldNames } from \"../../../Model/FieldNames\";\r\nimport { ProductSearchOptions } from \"../../../Model/User/ProductSearchOptions\";\r\nimport { SearchFields } from \"../../../Model/User/SearchFields\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\n\r\n\r\n@Component({\r\n selector: \"productSearchOptions\",\r\n templateUrl: \"productSearchOptions.component.html\",\r\n styleUrls: []\r\n})\r\nexport class ProductSearchOptionsComponent implements OnInit {\r\n\r\n\r\n @Input() isTarget: boolean = false;\r\n public searchModes: NameValue[];\r\n public searchFields: NameValue[];\r\n public selectedSearchFields: string[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) { }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n\r\n }\r\n\r\n reset() {\r\n let fieldNames = new FieldNames();\r\n this.searchModes = new Array<NameValue>();\r\n let nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(\"gleich\");\r\n nameValue.value = \"Equal\";\r\n this.searchModes.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(\"beginnt mit\");\r\n nameValue.value = \"StartsWith\";\r\n this.searchModes.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(\"enthält\");\r\n nameValue.value = \"Contains\";\r\n this.searchModes.push(nameValue);\r\n\r\n\r\n this.searchFields = new Array<NameValue>();\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.supplierPid);\r\n nameValue.value = fieldNames.supplierPid;\r\n this.searchFields.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.supplierAltPid);\r\n nameValue.value = fieldNames.supplierAltPid;\r\n this.searchFields.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.internatonalPid);\r\n nameValue.value = fieldNames.internatonalPid;\r\n this.searchFields.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.descriptionShort);\r\n nameValue.value = fieldNames.descriptionShort;\r\n this.searchFields.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.manufacturerPID);\r\n nameValue.value = fieldNames.manufacturerPID;\r\n this.searchFields.push(nameValue);\r\n\r\n\r\n if (this.modelService.loginService.hasAddonSUPPLIERS) {\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.pid);\r\n nameValue.value = fieldNames.pid;\r\n this.searchFields.push(nameValue);\r\n\r\n nameValue = new NameValue();\r\n nameValue.name = this.translate.instant(fieldNames.supplierInternationalId);\r\n nameValue.value = fieldNames.supplierInternationalId;\r\n this.searchFields.push(nameValue);\r\n }\r\n if (!this.model) {\r\n this.model = new ProductSearchOptions();\r\n this.model.searchMode = \"Contains\";\r\n this.model.searchStateMode = 'or';\r\n this.model.searchFields = [\r\n new SearchFields( fieldNames.supplierPid ),\r\n new SearchFields( fieldNames.supplierAltPid ),\r\n new SearchFields( fieldNames.internatonalPid ),\r\n new SearchFields( fieldNames.descriptionShort ),\r\n ];\r\n }\r\n this.selectedSearchFields = new Array<string>();\r\n let that = this;\r\n this.model.searchFields.forEach(function (field) {\r\n that.selectedSearchFields.push(field.searchField);\r\n });\r\n\r\n\r\n\r\n\r\n }\r\n\r\n get model(): ProductSearchOptions {\r\n if (this.isTarget) {\r\n return this.modelService.loginService.currentUser.productSearchOptionsTarget;\r\n }\r\n return this.modelService.loginService.currentUser.productSearchOptions;\r\n }\r\n set model(value: ProductSearchOptions) {\r\n if (this.isTarget) {\r\n this.modelService.loginService.currentUser.productSearchOptionsTarget = value;\r\n }\r\n else {\r\n this.modelService.loginService.currentUser.productSearchOptions = value;\r\n }\r\n }\r\n\r\n onSearchFieldsSelectionChanged() {\r\n if (!this.isTarget) {\r\n this.modelService.loginService.updateSearchFields(this.selectedSearchFields, this.model.searchMode, this.modelService.loginService.currentUser.id, false).subscribe(options => {\r\n this.model = options;\r\n this.modelService.catalogService.reloadTree();\r\n });\r\n } else {\r\n this.modelService.loginService.updateSearchFields(this.selectedSearchFields, this.model.searchMode, this.modelService.loginService.currentUser.id, true).subscribe(options => {\r\n this.model = options;\r\n this.modelService.catalogService.reloadTreeTarget();\r\n });\r\n }\r\n }\r\n\r\n\r\n onSearchModeSelectionChanged() {\r\n\r\n if (!this.isTarget) {\r\n this.model.searchMode = this.model.searchMode;\r\n this.modelService.loginService.updateSearchFields(this.selectedSearchFields, this.model.searchMode, this.modelService.loginService.currentUser.id, false).subscribe(options => {\r\n this.model = options;\r\n this.modelService.catalogService.reloadTree();\r\n });\r\n } else {\r\n this.model.searchMode = this.model.searchMode;\r\n this.modelService.loginService.updateSearchFields(this.selectedSearchFields, this.model.searchMode, this.modelService.loginService.currentUser.id, true).subscribe(options => {\r\n this.model = options;\r\n this.modelService.catalogService.reloadTreeTarget();\r\n });\r\n }\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Product } from '../catalog/product';\r\nimport { DataQualityFacts } from '../catalog/DataQualityFacts';\r\n\r\n\r\nexport class ValidationRequestCatalog {\r\n\r\n constructor(\r\n public field?: string,\r\n public value?: string,\r\n public customerId?: string,\r\n public catalogId?: string,\r\n public isActivId?: boolean\r\n\r\n ) {\r\n\r\n }\r\n}\r\n","export class CatalogState {\r\n constructor(\r\n public idKey?: string,\r\n public customerId?: string,\r\n public name?: string,\r\n ) {}\r\n}\r\n","<div class=\"dx-fieldset mainInfos\" *ngIf=\"model\">\r\n\r\n <!--SUPPLIER_NAME-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Lieferantenname' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.supplierName?.length>0 ? 'placeLabelSmall' : '' }}\">SUPPLIER_NAME</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierName')\" [(value)]=\"model?.supplier.supplierName\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--SUPPLIER_ID-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Lieferantenkennung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.supplierId?.length>0 ? 'placeLabelSmall' : '' }}\">SUPPLIER_ID</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierId')\" [(value)]=\"model?.supplier.supplierId\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--SUPPLIER_ID_TYPE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'ID-Typ' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.supplierIdType?.length>0 ? 'placeLabelSmall' : '' }}\">SUPPLIER_ID_TYPE</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"idType\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model?.supplier.supplierIdType\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('supplierType')\">\r\n </dx-autocomplete>\r\n </div>\r\n </div>\r\n\r\n <!--NAME1-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 1' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address?.name1?.length>0 ? 'placeLabelSmall' : '' }}\">NAME1</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressName1')\" [(value)]=\"model?.supplier.address.name1\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--NAME2-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 2' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.name2?.length>0 ? 'placeLabelSmall' : '' }}\">NAME2</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressName2')\" [(value)]=\"model?.supplier.address.name2\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--NAME3-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 3' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.name3?.length>0 ? 'placeLabelSmall' : '' }}\">NAME3</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressName3')\" [(value)]=\"model?.supplier.address.name3\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--CONTACT-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Ansprechpartner' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.contact?.length>0 ? 'placeLabelSmall' : '' }}\">CONTACT</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddresssContact')\"[(value)]=\"model?.supplier.address.contact\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--STREET-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Straße' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.street?.length>0 ? 'placeLabelSmall' : '' }}\">STREET</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressStreet')\" [(value)]=\"model.supplier.address.street\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--ZIP-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'PLZ' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.zip?.length>0 ? 'placeLabelSmall' : '' }}\">ZIP</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressZip')\" [(value)]=\"model.supplier.address.zip\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--CITY-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Ort' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.city?.length>0 ? 'placeLabelSmall' : '' }}\">CITY</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressCity')\" [(value)]=\"model.supplier.address.city\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--STATE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Bundesland' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.state?.length>0 ? 'placeLabelSmall' : '' }}\">STATE</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressState')\" [(value)]=\"model.supplier.address.state\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--COUNTRY-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Land' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.country?.length>0 ? 'placeLabelSmall' : '' }}\">COUNTRY</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressCountry')\" [(value)]=\"model.supplier.address.country\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--PHONE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Telefon' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.phone?.length>0 ? 'placeLabelSmall' : '' }}\">PHONE</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressPhone')\" [(value)]=\"model.supplier.address.phone\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--FAX-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Telefax' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.fax?.length>0 ? 'placeLabelSmall' : '' }}\">FAX</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressFax')\" [(value)]=\"model.supplier.address.fax\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--EMAIL-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'E-Mail' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.email?.length>0 ? 'placeLabelSmall' : '' }}\">EMAIL</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressEmail')\" [(value)]=\"model.supplier.address.email\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--URL-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Homepage' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.url?.length>0 ? 'placeLabelSmall' : '' }}\">URL</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressUrl')\" [(value)]=\"model.supplier.address.url\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--ADDRESS_REMARKS-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Bemerkung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplier.address.addressRemarks?.length>0 ? 'placeLabelSmall' : '' }}\">ADDRESS_REMARKS</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('supplierAddressRemarks')\" [(value)]=\"model.supplier.address.addressRemarks\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"catalogSupplier\",\r\n templateUrl: \"catalogSupplier.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogSupplierComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) { }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n\r\n }\r\n\r\n reset() {\r\n \r\n }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div class=\"dx-fieldset mainInfos\" *ngIf=\"model\">\r\n\r\n <!--BUYER_NAME-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Käufername' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.buyerName?.length>0 ? 'placeLabelSmall' : '' }}\">BUYER_NAME</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerName')\" [(value)]=\"model.buyer.buyerName\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--BUYER_ID-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Käuferkennung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.buyerId?.length>0 ? 'placeLabelSmall' : '' }}\">BUYER_ID</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerId')\" [(value)]=\"model.buyer.buyerId\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--BUYER_ID_TYPE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'ID-Typ' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.buyerIdType?.length>0 ? 'placeLabelSmall' : '' }}\">BUYER_ID_TYPE</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"idType\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model?.buyer.buyerIdType\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('buyerIdType')\">\r\n </dx-autocomplete>\r\n </div>\r\n </div>\r\n\r\n <!--NAME1-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 1' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.name1?.length>0 ? 'placeLabelSmall' : '' }}\">NAME1</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressName1')\" [(value)]=\"model.buyer.address.name1\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--NAME2-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 2' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.name2?.length>0 ? 'placeLabelSmall' : '' }}\">NAME2</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressName2')\" [(value)]=\"model.buyer.address.name2\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--NAME3-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Adresszeile 3' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.name3?.length>0 ? 'placeLabelSmall' : '' }}\">NAME3</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressName3')\" [(value)]=\"model.buyer.address.name3\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--CONTACT-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Ansprechpartner' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.contact?.length>0 ? 'placeLabelSmall' : '' }}\">CONTACT</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressContact')\" [(value)]=\"model.buyer.address.contact\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--STREET-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Straße' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.street?.length>0 ? 'placeLabelSmall' : '' }}\">STREET</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressStreet')\" [(value)]=\"model.buyer.address.street\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--ZIP-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'PLZ' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.zip?.length>0 ? 'placeLabelSmall' : '' }}\">ZIP</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressZip')\" [(value)]=\"model.buyer.address.zip\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--CITY-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Ort' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.city?.length>0 ? 'placeLabelSmall' : '' }}\">CITY</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressCity')\" [(value)]=\"model.buyer.address.city\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--STATE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Bundesland' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.state?.length>0 ? 'placeLabelSmall' : '' }}\">STATE</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressState')\" [(value)]=\"model.buyer.address.state\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--COUNTRY-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Land' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.country?.length>0 ? 'placeLabelSmall' : '' }}\">COUNTRY</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressCountry')\" [(value)]=\"model.buyer.address.country\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--PHONE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Telefon' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.phone?.length>0 ? 'placeLabelSmall' : '' }}\">PHONE</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressPhone')\" [(value)]=\"model.buyer.address.phone\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--FAX-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Telefax' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.fax?.length>0 ? 'placeLabelSmall' : '' }}\">FAX</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressFax')\" [(value)]=\"model.buyer.address.fax\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--EMAIL-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'E-Mail' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.email?.length>0 ? 'placeLabelSmall' : '' }}\">EMAIL</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressEmail')\" [(value)]=\"model.buyer.address.email\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--URL-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Homepage' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.url?.length>0 ? 'placeLabelSmall' : '' }}\">URL</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressUrl')\" [(value)]=\"model.buyer.address.url\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--ADDRESS_REMARKS-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Bemerkung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.buyer.address.addressRemarks?.length>0 ? 'placeLabelSmall' : '' }}\">ADDRESS_REMARKS</label>\r\n <dx-text-box [readOnly]=\"readOnlyUser('buyerAddressRemarks')\" [(value)]=\"model.buyer.address.addressRemarks\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"catalogBuyer\",\r\n templateUrl: \"catalogBuyer.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogBuyerComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) { }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n\r\n }\r\n\r\n reset() {\r\n \r\n }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class StartAction {\r\n\r\n constructor(\r\n public catalogId?: string,\r\n public actionType?: string,\r\n public actionId?: string,\r\n public actionParameter?: string,\r\n public customerId?: string\r\n ) {\r\n }\r\n}\r\n","<dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"model?.priceLists\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"removePriceList($event)\">\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newPricelistButtonTemplate'\">\r\n <div *ngIf=\"!readOnlyUser('catalogPrizeListAdd')\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Preisliste' | translate }}\" (onClick)=\"addPriceList()\"></dx-button>\r\n </div>\r\n </div>\r\n\r\n <dxo-editing mode=\"cell\" [allowDeleting]=\"!readOnlyUser('catalogPriceListDelete')\" [allowUpdating]=\"!readOnlyUser('catalogPriceListUpdate')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie diese Preisliste wirklich vollständig löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Preisliste löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CatalogPriceListStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column [width]=\"60\" dataField=\"order\" caption=\"{{ 'Order' | translate }}\" [allowEditing]=\"false\"></dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n</dx-data-grid>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CatalogPriceList } from \"../../Model/Catalog/CatalogPriceList\";\r\nimport { StartAction } from '../../Model/Dto/StartAction';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"catalogPriceList\",\r\n templateUrl: \"catalogPriceList.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogPriceListComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) { }\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newPricelistButtonTemplate'\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n changed(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n update() {\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n txtStartedAsJob: string = \"\";\r\n removePriceList(e) {\r\n\r\n let order = e.data.order;\r\n\r\n const startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId; \r\n this.txtStartedAsJob = this.translate.instant(\"Die Preisliste wird bei allen Produkten über einen Job gelöscht.\");\r\n\r\n startAction.actionId = `DeletePriceList(${order})`;\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(success => {\r\n if (success) {\r\n this.modelService.systemService.notify(new Message(this.txtStartedAsJob));\r\n }\r\n });\r\n\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n\r\n get model() {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n addPriceList() {\r\n var catalogPriceList = new CatalogPriceList();\r\n var priceListNumber = 0;\r\n for (let priceList of this.model.priceLists) {\r\n if (priceList.order > priceListNumber) {\r\n priceListNumber = priceList.order;\r\n }\r\n }\r\n priceListNumber += 1;\r\n catalogPriceList.order = priceListNumber;\r\n this.model.priceLists.push(catalogPriceList);\r\n this.update();\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<!--Klassifiierung-->\r\n<div class=\"dx-fieldset\" *ngIf=\"modelService.loginService.hasAddonCLASSIFICATION\">\r\n <div class=\"dx-field-label\">{{ 'Klassifizierungssysteme' | translate }}</div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <dx-tag-box [(value)]=\"model.classificationSystems\"\r\n [dataSource]=\"classificationSystems\"\r\n displayExpr=\"name\"\r\n [acceptCustomValue]=\"false\"\r\n placeholder=\"\"\r\n class=\"hint\"\r\n [readOnly]=\"readOnlyUser('classifiction')\"\r\n (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-tag-box>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ClassificationSystem } from '../../Model/classification/ClassificationSystem';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ClassificationService } from \"../../Services/classification.service\";\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"catalogClassification\",\r\n templateUrl: \"catalogClassification.component.html\",\r\n styleUrls: []\r\n})\r\n\r\nexport class CatalogClassificationComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService, public classifcationService: ClassificationService) { }\r\n\r\n async ngOnInit() { \r\n this.classificationSystems = await lastValueFrom(\r\n this.classifcationService.getSystemsOfCustomer(\r\n this.modelService.loginService.currentUser.customerId,\r\n this.modelService.catalogService.catalog.language));\r\n }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n classificationSystems : ClassificationSystem[] = new Array<ClassificationSystem>();\r\n\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class OsgSegmentMapping {\r\n\r\n constructor(\r\n public lastSend?: Date,\r\n public productRange?: string,\r\n public segmentId?: string,\r\n public lastSendTest?: Date,\r\n public productRangeTest?: string,\r\n public segmentIdTest?: string,\r\n public keepRootCategory?: boolean,\r\n public includeHazmatClassesInDescriptionTest?: boolean,\r\n public includeHazmatClassesInDescription?: boolean,\r\n public categoriesAreSegments?: boolean,\r\n public priceType?: string,\r\n public priceTypeTest?: string\r\n ) {\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Sortimente auf Kategorieebene' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.osgSegmentMapping.categoriesAreSegments\" [readOnly]=\"canChangeKeepRootCategory()\" (onValueChanged)=\"catalogChanged($event)\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Keine Kategorie mit Sortimentsnamen anlegen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.osgSegmentMapping.keepRootCategory\" [readOnly]=\"canChangeKeepRootCategory()\" (onValueChanged)=\"catalogChanged($event)\"></dx-switch>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n\r\n <div *dxTemplate=\"let company of 'liveTemplate'\">\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('osgCatalogSend')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate, onClick: sendData2ShopZero }\"></dxi-item>\r\n <dxi-item *ngIf=\"!readOnlyUser('osgCatalogReset')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog zurücksetzen' | translate, onClick: resetCatalog }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div *ngIf=\"modelService.loginService.hasAddonLEGALITY\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Gefahrstoffklassen an Beschreibung anhängen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.osgSegmentMapping.includeHazmatClassesInDescription\" [readOnly]=\"readOnlyUser('osgCatalogGefahrstoffklasse')\" (onValueChanged)=\"catalogChanged($event)\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('priceType')\" (mouseleave)=\"ttt('priceType')\">{{ 'Preistyp' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttPriceType'\">\r\n <label class=\"placeLabel {{ model.osgSegmentMapping.priceType?.length>0 ? 'placeLabelSmall' : '' }}\">PRICE_TYPE</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"priceTypes\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"readOnlyUser('osgPriceType')\"\r\n [(value)]=\"model.osgSegmentMapping.priceType\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n (onSelectionChanged)=\"catalogChanged($event)\">\r\n </dx-autocomplete>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttPriceType\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Der Pricetype, der für die Übertragung zum Shop ausgewählt werden soll' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"!model.osgSegmentMapping.categoriesAreSegments\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('productRange')\" (mouseleave)=\"ttt('productRange')\">{{ 'Sortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttProductRange\">\r\n <label class=\"placeLabel {{ productRange.length>0 ? 'placeLabelSmall' : '' }}\">PRODUCT_RANGE</label>\r\n <dx-text-box [(value)]=\"productRange\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('osgCatalogProductRange')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttProductRange\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Das Sortiment des OSG Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSend')\" (mouseleave)=\"ttt('lastSend')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSend\">\r\n <label class=\"placeLabel {{ lastSend.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSend\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('osgCatalogLastSend')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSend\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu oder vom Shop' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <dx-popup title=\"{{ 'Katalog senden' | translate }}?\"\r\n [(visible)]=\"isSendCatalogPopupVisible\"\r\n [width]=\"350\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Daten senden' | translate, onClick: sendData2ShopOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: sendData2ShopTwo }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Soll der Katalog übertragen werden' | translate }}?</p>\r\n </div>\r\n </dx-popup>\r\n <dx-popup title=\"{{ 'Katalog zurücksetzen' | translate }}?\"\r\n [(visible)]=\"isResetCatalogVisible\"\r\n [width]=\"550\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Katalog zurücksetzen' | translate, onClick: startResetCatalog }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: closePopups }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Nach dem Zurücksetzen ist für diesen Katalog die Verbindung zum Multishop aufgehoben. Sie sollten die Funktion nur ausführen, wenn Sie im Multishop das Sortiment vollständig gelöscht haben' | translate }}!</p>\r\n </div>\r\n </dx-popup>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let company of 'testTemplate'\">\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate, onClick: sendData2ShopTestZero }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog zurücksetzen' | translate, onClick: resetCatalogTest }\"></dxi-item>\r\n </dx-toolbar>\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div *ngIf=\"modelService.loginService.hasAddonLEGALITY\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Gefahrstoffklassen an Beschreibung anhängen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.osgSegmentMapping.includeHazmatClassesInDescriptionTest\" (onValueChanged)=\"catalogChanged($event)\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"dx-field\" *ngIf=\"model\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('priceTypeTest')\" (mouseleave)=\"ttt('priceTypeTest')\">{{ 'Preistyp' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttPriceTypeTest'\">\r\n <label class=\"placeLabel {{ model.osgSegmentMapping.priceTypeTest?.length>0 ? 'placeLabelSmall' : '' }}\">PRICE_TYPE</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"priceTypes\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"readOnlyUser('osgPriceType')\"\r\n [(value)]=\"model.osgSegmentMapping.priceTypeTest\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n (onSelectionChanged)=\"catalogChanged($event)\">\r\n </dx-autocomplete>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttPriceTypeTest\" class=\"toolTip toolTipField\" [(visible)]=\"v['priceTypeTest']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Der Preistyp, der für die Übertragung zum Shop ausgewählt werden soll' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('productRangeTest')\" (mouseleave)=\"ttt('productRangeTest')\">{{ 'Sortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttProductRangeTest\">\r\n <label class=\"placeLabel {{ productRangeTest.length>0 ? 'placeLabelSmall' : '' }}\">PRODUCT_RANGE</label>\r\n <dx-text-box [(value)]=\"productRangeTest\" [disabled]=\"true\" [showClearButton]=\"false\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttProductRangeTest\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRangeTest']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Das Sortiment des OSG Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSendTest')\" (mouseleave)=\"ttt('lastSendTest')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSendTest\">\r\n <label class=\"placeLabel {{ lastSendTest.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSendTest\" [disabled]=\"true\" [showClearButton]=\"false\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSendTest\" class=\"toolTip toolTipField\" [(visible)]=\"v['ttlastSendTest']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu oder vom Shop' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <dx-popup title=\"{{ 'Katalog senden - TEST -' | translate }}?\"\r\n [(visible)]=\"isSendCatalogTestPopupVisible\"\r\n [width]=\"350\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Daten senden' | translate, onClick: sendData2ShopTestOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: sendData2ShopTestTwo }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Soll der Katalog zum Testshop übertragen werden' | translate }}?</p>\r\n </div>\r\n </dx-popup>\r\n\r\n <dx-popup title=\"{{ 'Katalog zurücksetzen - TEST -' | translate }}?\"\r\n [(visible)]=\"isResetCatalogTestVisible\"\r\n [width]=\"550\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Katalog zurücksetzen senden' | translate, onClick: startResetCatalogTest }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: closePopups }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Nach dem Zurücksetzen ist für diesen Katalog die Verbindung zum Multishop aufgehoben. Sie sollten die Funktion nur ausführen, wenn Sie im Multishop das Sortiment vollständig gelöscht haben' | translate }}!</p>\r\n </div>\r\n </dx-popup>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OsgSegmentMapping } from '../../Model/Catalog/OsgSegmentMapping';\r\nimport { OsgConnection } from \"../../Model/Dto/OsgConnection\";\r\nimport { StartAction } from \"../../Model/Dto/StartAction\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\n\r\n@Component({\r\n selector: \"catalogOsg\",\r\n templateUrl: \"catalogOsg.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogOsgComponent implements OnInit {\r\n pages = [];\r\n get priceTypes() { return ViewService.dropDownPriceTypes; }\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.sendData2ShopZero = this.sendData2ShopZero.bind(this);\r\n this.sendData2Shop = this.sendData2Shop.bind(this);\r\n this.sendData2ShopOne = this.sendData2ShopOne.bind(this);\r\n this.sendData2ShopTwo = this.sendData2ShopTwo.bind(this);\r\n\r\n this.sendData2ShopTestOne = this.sendData2ShopTestOne.bind(this);\r\n this.sendData2ShopTestTwo = this.sendData2ShopTestTwo.bind(this);\r\n this.sendData2ShopTestZero = this.sendData2ShopTestZero.bind(this);\r\n this.resetCatalogTest = this.resetCatalogTest.bind(this);\r\n this.resetCatalog = this.resetCatalog.bind(this);\r\n this.startResetCatalog = this.startResetCatalog.bind(this);\r\n this.startResetCatalogTest = this.startResetCatalogTest.bind(this);\r\n this.closePopups = this.closePopups.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n let testText = \"\";\r\n this.translate.get(\"Test\").subscribe((text: string) => {\r\n testText = text;\r\n });\r\n let liveText = \"\";\r\n this.translate.get(\"Live\").subscribe((text: string) => {\r\n liveText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: liveText, template: \"liveTemplate\" }\r\n ];\r\n\r\n this.modelService.osgConnectionService.getConnection(this.modelService.loginService.currentCustomer.id, true).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null && result.shopUrl.length > 0) {\r\n this.pages.push({ id: 2, title: testText, template: \"testTemplate\" });\r\n }\r\n });\r\n }\r\n\r\n canChangeKeepRootCategory(): boolean {\r\n if (this.modelService.catalogService.catalog != null &&\r\n this.modelService.catalogService.catalog.osgSegmentMapping != null) {\r\n if (this.modelService.catalogService.catalog.osgSegmentMapping.lastSend || this.modelService.catalogService.catalog.osgSegmentMapping.lastSendTest) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n get model(): Catalog {\r\n\r\n if (this.modelService.catalogService.catalog &&\r\n this.modelService.catalogService.catalog.osgSegmentMapping == null) {\r\n this.modelService.catalogService.catalog.osgSegmentMapping = new OsgSegmentMapping();\r\n this.modelService.catalogService.catalog.osgSegmentMapping.productRange = \"\";\r\n this.modelService.catalogService.catalog.osgSegmentMapping.productRangeTest = \"\";\r\n this.modelService.catalogService.catalog.osgSegmentMapping.lastSend = null;\r\n this.modelService.catalogService.catalog.osgSegmentMapping.lastSendTest = null;\r\n this.modelService.catalogService.catalog.osgSegmentMapping.priceType = \"\";\r\n this.modelService.catalogService.catalog.osgSegmentMapping.priceTypeTest = \"\";\r\n\r\n }\r\n\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n isSendCatalogPopupVisible: boolean = false;\r\n isSendCatalogTestPopupVisible: boolean = false;\r\n exportMedia: boolean = true;\r\n isResetCatalogTestVisible: boolean = false;\r\n isResetCatalogVisible: boolean = false;\r\n\r\n\r\n\r\n sendData2ShopZero() {\r\n this.sendData2Shop(0, false);\r\n }\r\n sendData2ShopTestZero() {\r\n this.sendData2Shop(0, true);\r\n }\r\n\r\n sendData2ShopOne() {\r\n this.sendData2Shop(1, false);\r\n }\r\n\r\n sendData2ShopTwo() {\r\n this.sendData2Shop(2, false);\r\n }\r\n\r\n sendData2ShopTestOne() {\r\n this.sendData2Shop(1, true);\r\n }\r\n\r\n sendData2ShopTestTwo() {\r\n this.sendData2Shop(2, true);\r\n }\r\n\r\n resetCatalogTest() {\r\n this.isResetCatalogTestVisible = true;\r\n\r\n }\r\n resetCatalog() {\r\n this.isResetCatalogVisible = true;\r\n }\r\n\r\n closePopups() {\r\n this.isResetCatalogVisible = false;\r\n this.isResetCatalogTestVisible = false;\r\n }\r\n\r\n startResetCatalogTest() {\r\n this.startResetCatalog(1);\r\n }\r\n\r\n startResetCatalog(isTest: number = 0) {\r\n this.closePopups();\r\n const startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = \"ResetOSG(\" + isTest + \")\";\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(success => {\r\n if (success) {\r\n this.translate.get(\"Das Zurücksetzen wurde als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n });\r\n }\r\n\r\n sendData2Shop(num = 0, isTest: boolean) {\r\n switch (num) {\r\n case 0:\r\n if (isTest == false)\r\n this.isSendCatalogPopupVisible = true;\r\n else\r\n this.isSendCatalogTestPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isSendCatalogPopupVisible = false;\r\n this.isSendCatalogTestPopupVisible = false;\r\n let model = this.GetExportParameter();\r\n if (isTest) {\r\n model.isLive = false;\r\n } else {\r\n model.isLive = true;\r\n }\r\n this.modelService.catalogService.createExportJob(model).subscribe(\r\n () => {\r\n this.translate.get(\"Die Übertragung wurde gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n\r\n });\r\n });\r\n break;\r\n default:\r\n this.isSendCatalogPopupVisible = false;\r\n this.isSendCatalogTestPopupVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n private GetExportParameter(): ExportParameter {\r\n var result = new ExportParameter();\r\n result.catalogId = this.model.id;\r\n result.customerId = this.modelService.loginService.currentUser.customerId;\r\n result.version = \"OSG\";\r\n result.format = \"OSG\";\r\n result.includeMime = this.exportMedia;\r\n\r\n return result;\r\n }\r\n\r\n catalogChanged(event = null) {\r\n this.modelService.catalogService.updateCatalog(event);\r\n }\r\n\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get productRange(): string {\r\n if (this.model.osgSegmentMapping)\r\n return this.model.osgSegmentMapping.productRange;\r\n return \"\";\r\n }\r\n\r\n get lastSend(): string {\r\n if (this.model.osgSegmentMapping && this.model.osgSegmentMapping.lastSend)\r\n return this.model.osgSegmentMapping.lastSend.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n get productRangeTest(): string {\r\n if (this.model.osgSegmentMapping)\r\n if (this.model.osgSegmentMapping.productRangeTest)\r\n return this.model.osgSegmentMapping.productRangeTest;\r\n return \"\";\r\n }\r\n\r\n get lastSendTest(): string {\r\n if (this.model.osgSegmentMapping && this.model.osgSegmentMapping.lastSendTest)\r\n return this.model.osgSegmentMapping.lastSendTest.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class MavisCatalogMapping {\r\n\r\n constructor(\r\n public lastSend?: Date,\r\n public lastSendLive?: Date,\r\n public language?: number,\r\n public languageLive?: number,\r\n ) {\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"p-2\">\r\n\r\n <div *dxTemplate=\"let company of 'testTemplate'\">\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('mavisSend')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate, onClick: sendData2ShopZero }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSend')\" (mouseleave)=\"ttt('lastSend')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSend\">\r\n <label class=\"placeLabel {{ lastSend.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSend\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('mavisLastSend')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSend\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu Mavis' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('mavisLanguage')\" (mouseleave)=\"ttt('mavisLanguage')\">{{ 'Mavis Sprache' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"mavisLanguage\">\r\n <dx-select-box [dataSource]=\"this.modelService.mavisConnectionService.languages\"\r\n displayExpr=\"name\"\r\n valueExpr=\"number\"\r\n [value]=\"model.mavisMapping.language\"\r\n [readOnly]=\"readOnlyUser('mavisLanguage')\"\r\n (onValueChanged)=\"catalogChanged($event)\"></dx-select-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#mavisLanguage\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Sprache für Mavis' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <dx-popup title=\"{{ 'Katalog senden' | translate }}?\"\r\n [(visible)]=\"isSendCatalogPopupVisible\"\r\n [width]=\"350\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Daten senden' | translate, onClick: sendData2ShopOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: sendData2ShopTwo }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Soll der Katalog zum Testsystem übertragen werden' | translate }}?</p>\r\n </div>\r\n </dx-popup>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'liveTemplate'\">\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('mavisSend')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate, onClick: sendData2ShopThree }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSend')\" (mouseleave)=\"ttt('lastSend')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ lastSendLive.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSendLive\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('mavisLastSend')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSend\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu Mavis' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('mavisLanguageLive')\" (mouseleave)=\"ttt('mavisLanguage')\">{{ 'Mavis Sprache' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <dx-select-box [dataSource]=\"this.modelService.mavisConnectionService.languagesLive\"\r\n displayExpr=\"name\"\r\n valueExpr=\"number\"\r\n [value]=\"model.mavisMapping.languageLive\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('mavisLanguage')\"></dx-select-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#mavisLanguage\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Sprache für Mavis' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <dx-popup title=\"{{ 'Katalog senden' | translate }}?\"\r\n [(visible)]=\"isSendCatalogPopupLiveVisible\"\r\n [width]=\"350\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Daten senden' | translate, onClick: sendData2ShopFour }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: sendData2ShopFive }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Soll der Katalog zum Livesystem übertragen werden' | translate }}?</p>\r\n </div>\r\n </dx-popup>\r\n\r\n </div>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OsgSegmentMapping } from '../../Model/Catalog/OsgSegmentMapping';\r\nimport { MavisCatalogMapping } from '../../Model/Catalog/mavis/MavisCatalogMapping';\r\nimport { MavisLanguage } from '../../Model/Catalog/mavis/MavisLanguage';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\n\r\n@Component({\r\n selector: \"catalogMavis\",\r\n templateUrl: \"catalogMavis.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogMavisComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.sendData2ShopZero = this.sendData2ShopZero.bind(this); \r\n this.sendData2ShopOne = this.sendData2ShopOne.bind(this);\r\n this.sendData2ShopTwo = this.sendData2ShopTwo.bind(this);\r\n\r\n this.sendData2ShopThree =this.sendData2ShopThree.bind(this);\r\n this.sendData2ShopFour = this.sendData2ShopFour.bind(this);\r\n this.sendData2ShopFive = this.sendData2ShopFive.bind(this);\r\n }\r\n\r\n\r\n pages = [];\r\n\r\n ngOnInit(): void {\r\n if (!this.model.mavisMapping)\r\n this.model.mavisMapping = new MavisCatalogMapping();\r\n \r\n\r\n if (!this.modelService.mavisConnectionService.languages) {\r\n this.modelService.mavisConnectionService.getLanguages(this.modelService.loginService.currentCustomer.id, false).subscribe((languages: MavisLanguage[]) => {\r\n this.modelService.mavisConnectionService.languages = languages;\r\n });\r\n }\r\n\r\n if (!this.modelService.mavisConnectionService.languagesLive) {\r\n this.modelService.mavisConnectionService.getLanguages(this.modelService.loginService.currentCustomer.id, true).subscribe((languages: MavisLanguage[]) => {\r\n this.modelService.mavisConnectionService.languagesLive = languages;\r\n });\r\n }\r\n\r\n let testText = \"\";\r\n this.translate.get('Test').subscribe((text: string) => {\r\n testText = text;\r\n });\r\n let liveText = \"\";\r\n this.translate.get('Live').subscribe((text: string) => {\r\n liveText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: testText, template: \"testTemplate\" },\r\n { id: 2, title: liveText, template: \"liveTemplate\" }\r\n ];\r\n }\r\n\r\n\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n isSendCatalogPopupVisible: boolean = false;\r\n isSendCatalogPopupLiveVisible: boolean = false;\r\n exportMedia: boolean = true;\r\n\r\n sendData2ShopZero() {\r\n this.sendData2Shop(0);\r\n }\r\n\r\n sendData2ShopOne() {\r\n this.sendData2Shop(1);\r\n }\r\n\r\n sendData2ShopTwo() {\r\n this.sendData2Shop(2);\r\n }\r\n\r\n sendData2ShopThree() {\r\n this.sendData2Shop(3);\r\n }\r\n\r\n sendData2ShopFour() {\r\n this.sendData2Shop(4);\r\n }\r\n\r\n sendData2ShopFive() {\r\n this.sendData2Shop(5);\r\n }\r\n\r\n sendData2Shop(num = 0) {\r\n switch (num) {\r\n case 0:\r\n this.isSendCatalogPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isSendCatalogPopupVisible = false;\r\n let exportParameter = this.GetExportParameter();\r\n this.modelService.catalogService.createExportJob(exportParameter).subscribe(\r\n () => {\r\n this.translate.get(\"Die Übertragung ins Testsystem wurde gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n\r\n });\r\n });\r\n break;\r\n case 3:\r\n this.isSendCatalogPopupLiveVisible = true;\r\n break;\r\n case 4:\r\n this.isSendCatalogPopupLiveVisible = false;\r\n let exportParameterLive = this.GetExportParameter();\r\n exportParameterLive.isLive = true;\r\n this.modelService.catalogService.createExportJob(exportParameterLive).subscribe(\r\n () => {\r\n this.translate.get(\"Die Übertragung ins Livesystem wurde gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n\r\n });\r\n });\r\n break;\r\n default:\r\n this.isSendCatalogPopupVisible = false;\r\n this.isSendCatalogPopupLiveVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n private GetExportParameter(): ExportParameter {\r\n let result = new ExportParameter();\r\n result.catalogId = this.model.id;\r\n result.customerId = this.modelService.loginService.currentUser.customerId;\r\n result.version = \"MAVIS\";\r\n result.format = \"MAVIS\";\r\n result.includeMime = this.exportMedia;\r\n return result;\r\n }\r\n\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get lastSend(): string {\r\n\r\n if (this.model.mavisMapping.lastSend)\r\n return this.model.mavisMapping.lastSend.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n get lastSendLive(): string {\r\n\r\n if (this.model.mavisMapping.lastSendLive)\r\n return this.model.mavisMapping.lastSendLive.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Druck Katalog' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogUpdate($event)\" [(value)]=\"model.isPrint\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Einfache Ansicht' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogUpdate($event)\" [(value)]=\"model.usePrintView\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: \"catalogPrint\",\r\n templateUrl: \"catalogPrint.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogPrintComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n}\r\n","export class StartShopWareExport {\r\n \r\n\r\n constructor(\r\n public customerId?: string,\r\n public catalogId?: string,\r\n public sendPrices?: boolean,\r\n public isVersion6?: boolean,\r\n public includeHazmatClassesInDescription? : boolean,\r\n ) {\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Öffentlich' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogUpdate($event)\" [(value)]=\"model.isPublic\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"model.isPublic\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(10)\" (mouseleave)=\"ttt(10)\">{{ 'Shop URL' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt10\">\r\n <label class=\"placeLabel {{ model.shopUrl?.length>0 ? 'placeLabelSmall' : '' }}\">SHOP_URL</label>\r\n <dx-text-box [(value)]=\"model.shopUrl\" [readOnly]=\"readOnlyUser('showareUrl')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt10\" class=\"toolTip toolTipField\" [(visible)]=\"v[10]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Internetadresse des Shopware Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(11)\" (mouseleave)=\"ttt(11)\">{{ 'Shop Token' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.shopAuth?.length>0 ? 'placeLabelSmall' : '' }}\">SHOP_TOKEN</label>\r\n <dx-text-box [(value)]=\"model.shopAuth\" [readOnly]=\"readOnlyUser('showareToken')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt11\" class=\"toolTip toolTipField\" [(visible)]=\"v[11]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Der Autorisierungs Token' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(12)\" (mouseleave)=\"ttt(12)\">{{ 'Start Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt12\">\r\n <label class=\"placeLabel {{ model.startCatId > 0 ? 'placeLabelSmall' : '' }}\">CATEGORY_ID</label>\r\n <dx-number-box [(value)]=\"model.startCatId\" [readOnly]=\"readOnlyUser('showareCategorieStart')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-number-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt12\" class=\"toolTip toolTipField\" [(visible)]=\"v[12]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Kategorie ID ab der nextPIM IDs vergeben darf' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(13)\" (mouseleave)=\"ttt(13)\">{{ 'Prefix' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt13\">\r\n <label class=\"placeLabel {{ model.productPrefix?.length>0 ? 'placeLabelSmall' : '' }}\">PREFIX</label>\r\n <dx-text-box [(value)]=\"model.productPrefix\" [readOnly]=\"readOnlyUser('showarePrefix')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt13\" class=\"toolTip toolTipField\" [(visible)]=\"v[13]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Prefix, der an die SUPLIER_PID angehängt werden soll' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!modelService.catalogService.connection2Shop\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnection}\"></dxi-item>\r\n </dx-toolbar>\r\n <div style=\"color: red;\">\r\n {{ modelService.catalogService.connection2ShopMessage }}\r\n </div>\r\n\r\n <dx-toolbar *ngIf=\"modelService.catalogService.connection2Shop && !readOnlyUser('shopwareSendDeleteZero')\">\r\n <dxi-item *ngIf=\"!modelService.catalogService.connection2ShopEstablished\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung herstellen' | translate , onClick: establishedShopConnectionZero}\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate , onClick: sendData2ShopZero}\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'ShopDaten löschen' | translate , onClick: deleteShopZero}\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div>\r\n <div>\r\n\r\n\r\n <dx-popup title=\"{{ 'Verbindung herstellen?' | translate }}\"\r\n [(visible)]=\"isEstablishedShopConnectionPopupVisible\"\r\n [width]=\"350\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Shop verbinden' | translate, onClick: establishedShopConnectionOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: establishedShopConnectionTwo }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>{{ 'Wollen Sie den Shop mit diesem Katalog verbinden?' | translate }}</p>\r\n </div>\r\n </dx-popup>\r\n <dx-popup title=\"{{ 'Katalog senden' | translate }}?\"\r\n [(visible)]=\"isSendCatalogPopupVisible\"\r\n [width]=\"600\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Daten senden' | translate, onClick: sendData2ShopOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: sendData2ShopTwo }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n\r\n <p>{{ 'Soll der Katalog übertragen werden' | translate }}?</p>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Preise übertragen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"sendPrices\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-popup>\r\n <dx-popup title=\"{{ 'Shop Löschen' | translate }}?\"\r\n [(visible)]=\"isDeleteShopPopupVisible\"\r\n [width]=\"750\"\r\n [height]=\"250\"\r\n [showTitle]=\"true\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Produkte löschen' | translate, onClick: deleteShopOne }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Kategorien löschen' | translate, onClick: deleteShopTwo }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Medien löschen' | translate, onClick: deleteShopThree }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Abbrechen' | translate, onClick: deleteShopFour }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>Shopdaten löschen?</p>\r\n </div>\r\n </dx-popup>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TestResult } from '../../Model/Dto/TestResult';\r\nimport { StartShopWareExport } from '../../Model/Dto/StartShopWareExport';\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"catalogShopware\",\r\n templateUrl: \"catalogShopware.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogShopwareComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.establishedShopConnectionOne = this.establishedShopConnectionOne.bind(this);\r\n this.establishedShopConnectionTwo = this.establishedShopConnectionTwo.bind(this);\r\n this.establishedShopConnection = this.establishedShopConnection.bind(this);\r\n this.establishedShopConnectionZero = this.establishedShopConnectionZero.bind(this);\r\n this.deleteShopOne = this.deleteShopOne.bind(this);\r\n this.deleteShopTwo = this.deleteShopTwo.bind(this);\r\n this.deleteShopThree = this.deleteShopThree.bind(this);\r\n this.deleteShopFour = this.deleteShopFour.bind(this);\r\n this.testShopConnection = this.testShopConnection.bind(this);\r\n \r\n this.sendData2Shop = this.sendData2Shop.bind(this);\r\n this.sendData2ShopZero = this.sendData2ShopZero.bind(this);\r\n this.sendData2ShopOne = this.sendData2ShopOne.bind(this);\r\n this.sendData2ShopTwo = this.sendData2ShopTwo.bind(this);\r\n this.deleteShop = this.deleteShop.bind(this);\r\n this.deleteShopZero = this.deleteShopZero.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n\r\n }\r\n\r\n reset() {\r\n if (this.modelService.loginService.hasAddonShopWare && this.modelService.catalogService.catalog != null && this.modelService.catalogService.catalog.isPublic) {\r\n this.testShopConnection();\r\n \r\n }\r\n }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n //SHOP\r\n\r\n catalogChangedinclShop(event) {\r\n this.modelService.catalogService.resetConnection();\r\n this.catalogChanged(event);\r\n }\r\n\r\n testShopConnection() {\r\n this.modelService.catalogService.testShopConnection();\r\n }\r\n\r\n isEstablishedShopConnectionPopupVisible = false;\r\n\r\n establishedShopConnectionZero() {\r\n this.establishedShopConnection(0);\r\n }\r\n\r\n establishedShopConnectionOne() {\r\n this.establishedShopConnection(1);\r\n }\r\n\r\n establishedShopConnectionTwo() {\r\n this.establishedShopConnection(2);\r\n }\r\n\r\n deleteShopOne() {\r\n this.deleteShop(1);\r\n }\r\n\r\n deleteShopTwo() {\r\n this.deleteShop(2);\r\n }\r\n\r\n deleteShopThree() {\r\n this.deleteShop(3);\r\n }\r\n\r\n deleteShopFour() {\r\n this.deleteShop(4);\r\n }\r\n\r\n establishedShopConnection(num = 0) {\r\n switch (num) {\r\n case 0:\r\n this.isEstablishedShopConnectionPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isEstablishedShopConnectionPopupVisible = false;\r\n this.modelService.catalogService.establishedShopConnection();\r\n break;\r\n default:\r\n this.isEstablishedShopConnectionPopupVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n sendPrices: boolean = true;\r\n isSendCatalogPopupVisible = false;\r\n\r\n\r\n sendData2ShopOne() {\r\n this.sendData2Shop(1);\r\n }\r\n\r\n sendData2ShopTwo() {\r\n this.sendData2Shop(2);\r\n }\r\n\r\n sendData2ShopZero() {\r\n this.sendData2Shop(0);\r\n }\r\n\r\n sendData2Shop(num = 0) {\r\n switch (num) {\r\n case 0:\r\n this.isSendCatalogPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isSendCatalogPopupVisible = false;\r\n let startShopWareExport = new StartShopWareExport();\r\n startShopWareExport.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n startShopWareExport.customerId = this.modelService.loginService.currentUser.customerId;\r\n startShopWareExport.sendPrices = this.sendPrices;\r\n this.modelService.shopService.startExport(startShopWareExport).subscribe(success => {\r\n if (success) {\r\n this.translate.get(\"Die Übertragung wurde gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n });\r\n break;\r\n default:\r\n this.isSendCatalogPopupVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n isDeleteShopPopupVisible = false;\r\n\r\n deleteShopZero() {\r\n this.deleteShop(0);\r\n }\r\n\r\n deleteShop(num = 0) {\r\n switch (num) {\r\n case 0:\r\n this.isDeleteShopPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"pro\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n case 2:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"cat\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n case 3:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"mime\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n default:\r\n this.isDeleteShopPopupVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n public deleteShopResult(result: TestResult) {\r\n if (result.success) {\r\n this.translate.get(\"Daten erfolgreich gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n } else {\r\n this.translate.get(\"Daten nicht gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n }\r\n\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export enum VariantRepresenations {\r\n ShowVariant = \"eine zufällige Variante anzeigen\",\r\n ShowVariantsAsList = \"alle Varianten anzeigen\",\r\n ShowMaster = \"Master anzeigen\"\r\n}\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(10)\" (mouseleave)=\"ttt(10)\">{{ 'Shop URL' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt10\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">SHOP_URL</label>\r\n <dx-text-box [(value)]=\"model.baseUri\" [readOnly]=\"readOnlyUser('shopware6Url')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt10\" class=\"toolTip toolTipField\" [(visible)]=\"v[10]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Internetadresse des Shopware Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(11)\" (mouseleave)=\"ttt(11)\">{{ 'Client Id' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.clientId?.length>0 ? 'placeLabelSmall' : '' }}\">CLIENT_ID</label>\r\n <dx-text-box [(value)]=\"model.clientId\" [readOnly]=\"readOnlyUser('shopware6ClientId')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt11\" class=\"toolTip toolTipField\" [(visible)]=\"v[11]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Client Id mit der die nextPIM sich beim Shop anmeldet.' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(12)\" (mouseleave)=\"ttt(12)\">{{ 'Client Secret' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt12\">\r\n <label class=\"placeLabel {{ model.clientSecret?.length>0 ? 'placeLabelSmall' : '' }}\">CLIENT_SECRET</label>\r\n <dx-text-box [(value)]=\"model.clientSecret\" [readOnly]=\"readOnlyUser('shopware6ClientSecret')\" [showClearButton]=\"true\" (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt11\" class=\"toolTip toolTipField\" [(visible)]=\"v[11]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Das Passwort mit dem sich nextPIM beim Shop anmeldet' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(14)\" (mouseleave)=\"ttt(14)\">{{ 'Produkt Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt12\">\r\n <dx-drop-down-box [(value)]=\"model.rootCatCategoryId\"\r\n valueExpr=\"id\"\r\n displayExpr=\"text\"\r\n placeholder=\"{{ 'Kategorie auswählen' | translate }}\"\r\n [showClearButton]=\"true\"\r\n [dataSource]=\"shopCategories\"\r\n (onValueChanged)=\"syncTreeViewSelection($event)\"\r\n [readOnly]=\"readOnlyUser('shopware6Categorie')\">\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-tree-view [items]=\"shopCategories\"\r\n dataStructure=\"plain\"\r\n parentIdExpr=\"parent\"\r\n selectionMode=\"single\"\r\n [selectByClick]=\"true\"\r\n keyExpr=\"id\"\r\n displayExpr=\"text\"\r\n (onItemSelectionChanged)=\"treeView_itemSelectionChanged($event)\">\r\n <dxo-scrolling [useNative]=\"true\">\r\n </dxo-scrolling>\r\n </dx-tree-view>\r\n </div>\r\n </dx-drop-down-box>\r\n\r\n\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt11\" class=\"toolTip toolTipField\" [(visible)]=\"v[11]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Kategorie in der sich die Produkte befinden' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(14)\" (mouseleave)=\"ttt(14)\">{{ 'Kategorie Layout' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt123\">\r\n <dx-select-box [dataSource]=\"shopwareCmsPage\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n (onValueChanged)=\"catalogChangedinclShop($event)\"\r\n [(value)]=\"model.categoryLayoutId\"\r\n [readOnly]=\"readOnlyUser('shopware6CategorieLayout')\"\r\n showClearButton=\"true\">\r\n <dx-validator validationGroup=\"shopware6LayoutValidationGroup\">\r\n <dxi-validation-rule type=\"required\"\r\n message=\"{{ 'NoCategoryLayoutInfo' | translate }}\">\r\n </dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n <dx-tooltip target=\"#tt123\" class=\"toolTip toolTipField\" [(visible)]=\"v[123]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Id des Shopware Kategorie Layouts' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(14)\" (mouseleave)=\"ttt(14)\">{{ 'Produkt Layout' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt123\">\r\n <dx-select-box [dataSource]=\"shopwareCmsPage\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n (onValueChanged)=\"catalogChangedinclShop($event)\"\r\n [(value)]=\"model.productLayoutId\"\r\n [readOnly]=\"readOnlyUser('shopware6CategorieLayout')\"\r\n showClearButton=\"true\">\r\n <dx-validator validationGroup=\"shopware6LayoutValidationGroup\">\r\n <dxi-validation-rule type=\"required\"\r\n message=\"{{ 'NoProductLayoutInfo' | translate }}\">\r\n </dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n <dx-tooltip target=\"#tt123\" class=\"toolTip toolTipField\" [(visible)]=\"v[123]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Die Id des Shopware Produkt Layouts' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(14)\" (mouseleave)=\"ttt(14)\">{{ 'Produkt Verkaufskanal' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt124\">\r\n\r\n <dx-select-box [dataSource]=\"salesChannel\"\r\n displayExpr=\"name\"\r\n (onValueChanged)=\"catalogChangedinclShop($event)\"\r\n valueExpr=\"id\"\r\n [(value)]=\"model.productChanelId\"\r\n [readOnly]=\"readOnlyUser('shopware6ProductChannel')\"\r\n showClearButton=\"true\">\r\n </dx-select-box>\r\n </div>\r\n <dx-tooltip target=\"#tt124\" class=\"toolTip toolTipField\" [(visible)]=\"v[124]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Der Verkaufskanal der den Produkten zugewiesen werden soll' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.hasAddonSHOPWARE6_VARIANTS\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(125)\" (mouseleave)=\"ttt(125)\">{{ 'Variantendarstellung in Kategorien' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt125\">\r\n\r\n <dx-select-box [dataSource]=\"variantRepresentations\"\r\n displayExpr=\"value\"\r\n valueExpr=\"key\"\r\n [(value)]=\"model.variantRepresentation\"\r\n [readOnly]=\"readOnlyUser('shopware6Variants')\"\r\n (onValueChanged)=\"catalogChangedinclShop($event)\">\r\n </dx-select-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt125\" class=\"toolTip toolTipField\" [(visible)]=\"v[125]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Sollen Varianten im Shop in Listen dargestellt werden, oder nur der Master Artikel' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.hasAddonSHOPWARE6_MULTILANGUAGE\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(1254)\" (mouseleave)=\"ttt(1254)\">{{ 'Sprachen für die Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt1254\">\r\n\r\n <dx-tag-box [(value)]=\"model.languages\"\r\n [dataSource]=\"languages\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n [acceptCustomValue]=\"false\"\r\n [showSelectionControls]=\"true\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('shopware6Language')\">\r\n </dx-tag-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt1254\" class=\"toolTip toolTipField\" [(visible)]=\"v[1254]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Welche Sprachen sollen zum Shop übertragen werden' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *ngIf=\"modelService.loginService.hasAddonLEGALITY\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Gefahrstoffklassen an Beschreibung anhängen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.includeHazmatClassesInDescription\" [readOnly]=\"readOnlyUser('shopware6WarningsAppend')\" (onValueChanged)=\"catalogChangedinclShop($event)\"></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modelService.loginService.hasAddonSHOPWARE6_ASYNCINDEXING\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Queue-Indexing nutzen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.useQueueIndexing\" (onValueChanged)=\"catalogChangedinclShop($event)\" hint=\"{{ 'Queue-Indexing Warning' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSend')\" (mouseleave)=\"ttt('lastSend')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSend\">\r\n <label class=\"placeLabel {{ lastSend.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSend\" [disabled]=\"true\" [showClearButton]=\"false\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSend\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu oder vom Shop' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!modelService.catalogService.connection2Shop\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testShopConnection }\"></dxi-item>\r\n <dxi-item *ngIf=\"modelService.catalogService.connection2Shop\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon:'check', text: 'Verbindung testen' | translate , onClick: testShopConnection }\"></dxi-item>\r\n <dxi-item *ngIf=\"modelService.catalogService.connection2Shop && !readOnlyUser('shopware6SendCatalog')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate , onClick: sendData2Shop }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div style=\"color: red;\">\r\n {{modelService.catalogService.connection2ftpMessage}}\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TestResult } from '../../Model/Dto/TestResult';\r\nimport { StartShopWareExport } from '../../Model/Dto/StartShopWareExport';\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { ShopWare6Connection } from '../../Model/Catalog/ShopWareConnection';\r\nimport { ShopwareSalesChannel } from '../../Model/Dto/ShopwareSalesChannel';\r\nimport { ShopwareCmsPage } from '../../Model/Dto/ShopwareCmsPage';\r\nimport { TreeItem as TreeElement } from \"../../Model/Dto/TreeItem\";\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\nimport { ShopwareLanguage } from \"../../Model/Dto/ShopwareLanguage\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { VariantRepresenations } from \"../../Model/Dto/VariantRepresentations\";\r\nimport ValidationEngine from \"devextreme/ui/validation_engine\";\r\n\r\n@Component({\r\n selector: \"catalogShopware6\",\r\n templateUrl: \"catalogShopware6.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogShopware6Component implements OnInit {\r\n @ViewChild(DxTreeViewComponent) treeView;\r\n salesChannel: ShopwareSalesChannel[];\r\n languages: ShopwareLanguage[];\r\n shopwareCmsPage: ShopwareCmsPage[];\r\n shopCategories: TreeElement[];\r\n variantRepresentations: object[];\r\n includeHazmatClassesInDescription: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n\r\n this.testShopConnection = this.testShopConnection.bind(this);\r\n this.sendData2Shop = this.sendData2Shop.bind(this);\r\n this.variantRepresentations = Object.entries(VariantRepresenations).map(([key, value]) => ({ key, value: translate.instant(value) }));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n if (this.modelService.loginService.hasAddonShopware6 && this.modelService.catalogService.catalog != null) {\r\n this.testShopConnection();\r\n }\r\n }\r\n\r\n\r\n syncTreeViewSelection() {\r\n if (!this.treeView) return;\r\n\r\n if (!this.model.rootCatCategoryId) {\r\n this.treeView.instance.unselectAll();\r\n } else {\r\n this.treeView.instance.selectItem(this.model.rootCatCategoryId);\r\n }\r\n }\r\n\r\n treeView_itemSelectionChanged(e) {\r\n this.model.rootCatCategoryId = e.itemData.id;\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n get model(): ShopWare6Connection {\r\n return this.modelService.catalogService.catalog.shopWareConnection;\r\n }\r\n\r\n get lastSend(): string {\r\n if (this.model.lastSend)\r\n return this.model.lastSend.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n //SHOP\r\n\r\n catalogChangedinclShop(event) {\r\n this.modelService.catalogService.resetConnection();\r\n this.catalogChanged(event);\r\n }\r\n\r\n testShopConnection() {\r\n if (this.model.baseUri)\r\n this.modelService.catalogService.testShopWare6Connection();\r\n\r\n this.salesChannel = new Array<ShopwareSalesChannel>();\r\n this.shopwareCmsPage = new Array<ShopwareCmsPage>();\r\n this.shopCategories = new Array<TreeElement>();\r\n\r\n if (this.modelService.catalogService.catalog.shopWareConnection.baseUri) {\r\n\r\n this.modelService.catalogService.GetShopwareSalesChannel(\r\n this.modelService.catalogService.catalog.shopWareConnection.baseUri,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientId,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientSecret).subscribe(\r\n (salesChannel: ShopwareSalesChannel[]) => {\r\n this.salesChannel = salesChannel;\r\n });\r\n\r\n this.modelService.catalogService.GetShopwareLanguages(\r\n this.modelService.catalogService.catalog.shopWareConnection.baseUri,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientId,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientSecret).subscribe(\r\n (languages: ShopwareLanguage[]) => {\r\n this.languages = languages;\r\n });\r\n\r\n this.modelService.catalogService.GetShopwareCmsPage(\r\n this.modelService.catalogService.catalog.shopWareConnection.baseUri,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientId,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientSecret).subscribe(\r\n (cmsPages: ShopwareCmsPage[]) => {\r\n this.shopwareCmsPage = cmsPages;\r\n ValidationEngine.validateGroup(\"shopware6LayoutValidationGroup\");\r\n });\r\n\r\n this.modelService.catalogService.GetShopwareCategories(\r\n this.modelService.catalogService.catalog.shopWareConnection.baseUri,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientId,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientSecret).subscribe(\r\n (categories: TreeElement[]) => {\r\n this.shopCategories = categories;\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n sendPrices: boolean = true;\r\n isSendCatalogPopupVisible = false;\r\n\r\n sendData2Shop() {\r\n\r\n let startShopWareExport = new StartShopWareExport();\r\n startShopWareExport.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n startShopWareExport.customerId = this.modelService.loginService.currentUser.customerId;\r\n startShopWareExport.sendPrices = this.sendPrices;\r\n startShopWareExport.isVersion6 = true;\r\n \r\n this.modelService.shopService.startExport(startShopWareExport).subscribe(success => {\r\n if (success) {\r\n this.translate.get(\"Die Übertragung wurde gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n isDeleteShopPopupVisible = false;\r\n\r\n deleteShop(num = 0) {\r\n switch (num) {\r\n case 0:\r\n this.isDeleteShopPopupVisible = true;\r\n break;\r\n case 1:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"pro\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n case 2:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"cat\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n case 3:\r\n this.isDeleteShopPopupVisible = false;\r\n this.modelService.shopService.deleteShop(this.modelService.catalogService.catalog.shopUrl, this.modelService.catalogService.catalog.shopAuth, \"mime\").subscribe(\r\n (result: TestResult) => this.deleteShopResult(result)\r\n );\r\n break;\r\n default:\r\n this.isDeleteShopPopupVisible = false;\r\n break;\r\n }\r\n }\r\n\r\n public deleteShopResult(result: TestResult) {\r\n if (result.success) {\r\n this.translate.get(\"Daten erfolgreich gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n } else {\r\n this.translate.get(\"Daten nicht gelöscht\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n }\r\n\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Shopware5FeatureAttribute } from \"../Shopware5FeatureAttribute\";\r\n\r\nexport class ShopWare5Connection {\r\n\r\n constructor(\r\n public baseUri?: string,\r\n public shopId?: number,\r\n public rootCatId?: number,\r\n public rootCatName?: string,\r\n public user?: string,\r\n public apiKey?: string,\r\n public topFeatureAttribute? : string,\r\n public benefitsAttribute?: string,\r\n public featureAttributes?: Shopware5FeatureAttribute[]\r\n ) {\r\n\r\n }\r\n}\r\n\r\n","export class TreeItem {\r\n\r\n constructor(\r\n public id?: string | number,\r\n public text?: string,\r\n public parent?: string,\r\n public type?: string,\r\n public productCount?: number,\r\n public categoryCount?: number,\r\n public hasChilds?: boolean,\r\n public isChild?: boolean,\r\n public imageUrl?: string,\r\n public lastImageLookup?: Date,\r\n public selected?: boolean,\r\n public order?: number,\r\n public treeElementId?: number,\r\n public supplierPid?: string,\r\n public groupString?: string\r\n ) {\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { ShopWare6Connection } from '../Model/Catalog/ShopWareConnection';\r\nimport { ShopWare5ShopDto } from '../Model/Dto/Shopware5ShopDto';\r\nimport { TreeItem as TreeElement } from \"../Model/Dto/TreeItem\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class Shopware5Service {\r\n constructor(private http: HttpClient) {}\r\n\r\n //Verbindung testen\r\n public getShops(shopUrl: string, user: string, key: string): Observable<ShopWare5ShopDto[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"user\", user).append(\"key\", key)\r\n }\r\n return (this.http.get(\"api/shopware5/getshops\", options)) as any;\r\n }\r\n\r\n public getCategories(shopUrl: string, user: string, key: string, parentIds: string[]): Observable<TreeElement[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"user\", user).append(\"key\", key)\r\n }\r\n\r\n parentIds.forEach(id => {\r\n options.params = options.params.append(\"parentIds\", id);\r\n });\r\n return (this.http.get(\"api/shopware5/getcategories\", options)) as any;\r\n }\r\n\r\n public startExport(catalogId: string, customerId: string): Observable<ShopWare5ShopDto[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/shopware5/exportCatalog\", options)) as any;\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Shop URL' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt10\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">SHOP_URL</label>\r\n <dx-text-box [(value)]=\"model.baseUri\" [readOnly]=\"readOnlyUser('showare5Url')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Shopware User' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.user?.length>0 ? 'placeLabelSmall' : '' }}\">USER</label>\r\n <dx-text-box [(value)]=\"model.user\" [readOnly]=\"readOnlyUser('showare5User')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'API Key' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.apiKey?.length>0 ? 'placeLabelSmall' : '' }}\">API_KEY</label>\r\n <dx-text-box [(value)]=\"model.apiKey\" [readOnly]=\"readOnlyUser('showare5apiKey')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Media Fingerprint Attribute' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ 'placeLabelSmall' }}\">MEDIAFINGERPRINT</label>\r\n <dx-text-box value=\"fingerprint\" [readOnly]=\"true\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Produkt Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"categories\">\r\n <dx-drop-down-box [value]=\"selectedItem.id\" valueExpr=\"id\" displayExpr=\"text\" [dataSource]=\"[this.selectedItem]\" [readOnly]=\"readOnlyUser('shopware5Categorie')\">\r\n <dx-scroll-view [height]=\"'300px'\">\r\n <dx-tree-list [dataSource]=\"dataSource\"\r\n noDataText=\"{{ 'Kategorien konnten nicht geladen werden' | translate }}\"\r\n [remoteOperations]=\"{ filtering: true }\"\r\n keyExpr=\"id\"\r\n [selectedRowKeys]=\"[rootCatId]\"\r\n parentIdExpr=\"parent\"\r\n hasItemsExpr=\"hasChilds\"\r\n rootValue=\"1\"\r\n (onSelectionChanged)=\"treeView_itemSelectionChanged($event)\">\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n <dxi-column dataField=\"text\" caption=\"{{'Kategorie'| translate}}\"></dxi-column>\r\n <dxi-selection mode=\"single\"></dxi-selection>\r\n </dx-tree-list>\r\n </dx-scroll-view>\r\n </dx-drop-down-box>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Kategorien laden' | translate , onClick: reloadCategories }\"></dxi-item>\r\n <dxi-item *ngIf=\"model.rootCatId != -1\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate , onClick: sendCatalog}\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n</div>\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ShopWare5Connection } from \"../../../Model/Catalog/Shopware5Connection\";\r\nimport { ShopWare5ShopDto } from \"../../../Model/Dto/Shopware5ShopDto\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Shopware5Service } from \"../../../Services/shopware5.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { TreeItem as TreeElement } from \"../../../Model/Dto/TreeItem\";\r\nimport { DxDropDownBoxComponent, DxTreeListComponent, DxTreeViewComponent } from \"devextreme-angular\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n\r\n@Component({\r\n selector: \"catalogShopware5\",\r\n templateUrl: \"catalogShopware5.component.html\",\r\n styleUrls: [\"catalogShopware5.component.css\"]\r\n})\r\nexport class CatalogShopware5Component {\r\n @ViewChild(DxTreeListComponent, { static: false }) treeList: DxTreeListComponent;\r\n public shops: ShopWare5ShopDto[] = [];\r\n public shop: ShopWare5ShopDto;\r\n public shopCategories: any;\r\n dataSource: any;\r\n selectedItem: TreeElement;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService, public shopware5service: Shopware5Service) {\r\n this.valueChanged = this.valueChanged.bind(this);\r\n this.sendCatalog = this.sendCatalog.bind(this);\r\n this.reloadCategories = this.reloadCategories.bind(this);\r\n\r\n this.selectedItem = new TreeElement();\r\n this.selectedItem.text = this.model.rootCatName;\r\n this.selectedItem.id = this.model.rootCatId;\r\n\r\n let that = this;\r\n this.dataSource = {\r\n load(loadOptions) {\r\n return that.shopware5service.getCategories(that.model.baseUri, that.model.user, that.model.apiKey, loadOptions.parentIds).toPromise().then((result: TreeElement[]) => {\r\n return result;\r\n }, (error) => {\r\n return [];\r\n })\r\n },\r\n };\r\n }\r\n\r\n\r\n valueChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n get rootCatId(): string {\r\n return this.model.rootCatId.toString();\r\n }\r\n\r\n get model(): ShopWare5Connection {\r\n if (!this.modelService.catalogService.catalog.shopWare5Connection) {\r\n this.modelService.catalogService.catalog.shopWare5Connection = new ShopWare5Connection();\r\n this.modelService.catalogService.catalog.shopWare5Connection.baseUri = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.apiKey = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.user = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.topFeatureAttribute = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.benefitsAttribute = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.rootCatName = \"\";\r\n this.modelService.catalogService.catalog.shopWare5Connection.shopId = -1;\r\n this.modelService.catalogService.catalog.shopWare5Connection.rootCatId = -1;\r\n }\r\n return this.modelService.catalogService.catalog.shopWare5Connection;\r\n }\r\n\r\n treeView_itemSelectionChanged(e) {\r\n this.model.rootCatId = e.selectedRowsData[0].id;\r\n this.model.rootCatName = e.selectedRowsData[0].text;\r\n this.selectedItem = e.selectedRowsData[0];\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n reloadCategories() {\r\n this.treeList.instance.refresh();\r\n }\r\n\r\n\r\n\r\n public sendCatalog() {\r\n if (this.model.rootCatId == -1) {\r\n this.modelService.systemService.notifyWarning(\"Bitte wählen Sie erst eine Kategory aus\");\r\n return;\r\n }\r\n\r\n this.shopware5service.startExport(this.modelService.catalogService.catalog.id, this.modelService.catalogService.catalog.customerId).subscribe((result: ShopWare5ShopDto[]) => {\r\n this.modelService.systemService.notifyInfo(\"Export wurde erstellt\");\r\n }, error => {\r\n this.modelService.systemService.notifyWarning(error.error);\r\n });\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class IntershopConnection {\r\n\r\n constructor(\r\n public domain?: string,\r\n public updateMode?: string,\r\n public ftpServerId?: number,\r\n public productFilePath?: string,\r\n public categoryFilePath?: string,\r\n public attributesFilePath?: string,\r\n ) {\r\n }\r\n}\r\n\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Domain' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">DOMAIN</label>\r\n <dx-text-box [(value)]=\"model.domain\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'UpdateMode' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.user?.length>0 ? 'placeLabelSmall' : '' }}\">UPDATEMODE</label>\r\n <dx-select-box [items]=\"['UPDATE','REPLACE']\"\r\n [(value)]=\"model.updateMode\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n (onValueChanged)=\"valueChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'FtpServer' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.user?.length>0 ? 'placeLabelSmall' : '' }}\">UPDATEMODE</label>\r\n <dx-select-box [items]=\"ftpServers\"\r\n [(value)]=\"model.ftpServerId\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n (onValueChanged)=\"valueChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"model.ftpServerId && model.ftpServerId != ''\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Produkt XML Pfad' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">Produkt XML Pfad</label>\r\n <dx-text-box [(value)]=\"model.productFilePath\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Kategory XML Pfad' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">Kategory XML Pfad</label>\r\n <dx-text-box [(value)]=\"model.categoryFilePath\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Attrubutes XML Pfad' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">Attrubutes XML Pfad</label>\r\n <dx-text-box [(value)]=\"model.attributesFilePath\"\r\n [readOnly]=\"readOnlyUser('intershop')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { IntershopConnection } from '../../../Model/Catalog/IntershopConnection';\r\nimport { FtpServer } from '../../../Model/ftpServer';\r\nimport { CatalogService } from '../../../Services/CatalogManagement/catalog.service';\r\nimport { FtpServerService } from '../../../Services/ftp/ftpServer.service';\r\nimport { ModelService } from '../../../Services/model.service';\r\nimport { UserManagementService } from '../../../Services/userManagment.service';\r\n\r\n@Component({\r\n selector: 'intershopConnection',\r\n templateUrl: './intershopConnection.component.html',\r\n styleUrls: ['./intershopConnection.component.css']\r\n})\r\nexport class IntershopConnectionComponent implements OnInit {\r\n ftpServers: FtpServer[] = [];\r\n\r\n constructor(private catalogService: CatalogService, private userManagement: UserManagementService, private ftpServerService: FtpServerService) { }\r\n\r\n async ngOnInit() {\r\n this.ftpServers = await this.ftpServerService.getAllServer().toPromise();\r\n }\r\n\r\n\r\n valueChanged(e) {\r\n this.catalogService.catalogChanged(e);\r\n }\r\n\r\n get model(): IntershopConnection {\r\n if (!this.catalogService.catalog.intershopConnection) {\r\n this.catalogService.catalog.intershopConnection = new IntershopConnection();\r\n this.catalogService.catalog.intershopConnection.domain = \"\";\r\n this.catalogService.catalog.intershopConnection.updateMode = \"REPLACE\";\r\n this.catalogService.catalog.intershopConnection.productFilePath = \"/home/catalog/product/intershop\";\r\n this.catalogService.catalog.intershopConnection.categoryFilePath = \"/home/catalog/category/intershop\";\r\n this.catalogService.catalog.intershopConnection.attributesFilePath = \"/home/catalog/attribute\";\r\n }\r\n if (!this.catalogService.catalog.intershopConnection.attributesFilePath || this.catalogService.catalog.intershopConnection.attributesFilePath == \"\")\r\n this.catalogService.catalog.intershopConnection.attributesFilePath = \"/home/catalog/attribute\";\r\n\r\n return this.catalogService.catalog.intershopConnection;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","\r\n\r\nexport class AddClassification{\r\n\r\n constructor(\r\n public classificationClassId?: string,\r\n public classificationSystemId?: string,\r\n public productId: string = \"\",\r\n public catalogId: string = \"\",\r\n public categoryId: string = \"\",\r\n public customerId?:string,\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","<dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('templateUpdate')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon: 'refresh', text: 'Produkte aktualisieren' | translate, hint: 'Die Vorlagen werden auf alle Produkte im Katalog übertragen' | translate, onClick: applyTemplate }\"></dxi-item>\r\n</dx-toolbar>\r\n\r\n<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" [swipeEnabled]=\"false\">\r\n\r\n <div *dxTemplate=\"let company of 'featureTemplate'\">\r\n\r\n <editfeaturesystemlist *ngIf=\"model\"\r\n displayMode=\"edit\"\r\n [(featureSystems)]=\"model.featureTemplate\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(hasAddonCLASSIFICATION)]=\"modelService.loginService.hasAddonCLASSIFICATION\"\r\n [(hasAddonECOMMERCE)]=\"modelService.loginService.hasAddonECOMMERCE\"\r\n [(modelService)]=\"modelService\"\r\n (addEcommerceFeatures)=\"addEcommerceFeatures($event)\"\r\n (addClassificationFeatures)=\"addClassificationFeatures($event)\"\r\n (onValueChanged)=\"catalogUpdate($event)\">\r\n </editfeaturesystemlist>\r\n </div>\r\n <div *dxTemplate=\"let company of 'mediaTemplate'\">\r\n <mimes *ngIf=\"model\" [(model)]=\"model.mimeTemplate\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [isTemplate]=\"true\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\"\r\n (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [(modelService)]=\"modelService\">\r\n </mimes>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'wawiTemplate'\">\r\n <wawi [(model)]=\"wawiDummyProduct\"\r\n (onValueChanged)=\"updateWawi($event)\">\r\n </wawi>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Catalog } from '../../../Model/Catalog/catalog';\r\nimport { ModelService } from '../../../Services/model.service';\r\nimport { AddClassification } from '../../../Model/classification/AddClassification';\r\nimport { FeatureSystem } from '../../../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { Functions } from '../../../Services/functions';\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { StartAction } from '../../../Model/Dto/StartAction';\r\nimport { FeatureValueContainer } from '../../../Model/classification/FeatureValueContainer';\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\n\r\n\r\n@Component({\r\n selector: \"catalogTemplates\",\r\n templateUrl: \"catalogTemplates.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogTemplatesComponent implements OnInit {\r\n wawiDummyProduct: Product;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.applyTemplate = this.applyTemplate.bind(this);\r\n\r\n this.wawiDummyProduct = new Product();\r\n this.wawiDummyProduct.wawi = this.model.wawiTemplate;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n\r\n txtFeatureTemplate: string;\r\n txtMediaTemplate: string;\r\n txtMakroGestarted : string;\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n set model(catalog: Catalog) {\r\n this.modelService.catalogService.catalog = catalog;\r\n }\r\n\r\n catalogUpdate(event = null) {\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentUser.customerId).subscribe();\r\n this.wawiDummyProduct.wawi = this.model.wawiTemplate;\r\n }\r\n\r\n private translateTexts() {\r\n\r\n this.txtFeatureTemplate = this.translate.instant(\"Features\");\r\n this.txtMediaTemplate = this.translate.instant(\"Medien\");\r\n this.txtMakroGestarted = this.translate.instant(\"Die Aktualisierung wurde als Job gestartet\");\r\n\r\n \r\n }\r\n\r\n pages: { id: number; title: string; template: string }[] = [];\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtFeatureTemplate, template: \"featureTemplate\" },\r\n { id: 2, title: this.txtMediaTemplate, template: \"mediaTemplate\" },\r\n { id: 3, title: this.translate.instant(\"Wawi\"), template: \"wawiTemplate\" },\r\n ];\r\n\r\n }\r\n\r\n\r\n updateWawi(event = null) {\r\n this.model.wawiTemplate = this.wawiDummyProduct.wawi;\r\n this.catalogUpdate();\r\n }\r\n\r\n addEcommerceFeatures() {\r\n this.modelService.catalogService.addEcommerceFeaturesToCatalog(this.model).subscribe(\r\n (catalog: Catalog) => {\r\n this.model.featureTemplate = catalog.featureTemplate;\r\n\r\n });\r\n }\r\n\r\n applyTemplate() {\r\n\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = \"ApplyProductTemplate()\";\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.modelService.systemService.notify(new Message(this.txtMakroGestarted));\r\n });\r\n }\r\n\r\n\r\n public classificationFeatureValues: FeatureValueContainer = {};\r\n\r\n public loadClassificationFeatures(params) {\r\n this.modelService.classificationService.getFeatureValues(params.name, params.valueSource).subscribe(result => {\r\n this.classificationFeatureValues[params.name] = result;\r\n });\r\n }\r\n\r\n addClassificationFeatures(event) {\r\n if (this.modelService.classificationService.selectedClassId == \"\") return;\r\n let dto = new AddClassification();\r\n dto.classificationClassId = this.modelService.classificationService.selectedClassId;\r\n dto.classificationSystemId = this.modelService.classificationService.selectedSystem.id;\r\n dto.customerId = this.modelService.catalogService.catalog.customerId;\r\n dto.catalogId = this.modelService.catalogService.catalog.id;\r\n\r\n this.modelService.classificationService.addClassification(dto).subscribe(\r\n (result: FeatureSystem[]) => {\r\n this.modelService.catalogService.catalog.featureTemplate = new Array<FeatureSystem>();\r\n\r\n let that = this;\r\n result.forEach(function (r) {\r\n let fs = Object.assign(new FeatureSystem(), r);\r\n that.modelService.catalogService.catalog.featureTemplate.push(fs);\r\n });\r\n });\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"p-2\" [swipeEnabled]=\"false\" style=\"height: 100%;\" (onSelectionChanged)=\"onSelectionChanged($event)\">\r\n <div *dxTemplate=\"let company of 'priceListTemplate'\">\r\n <catalogPriceList *ngIf=\"model\"></catalogPriceList>\r\n </div>\r\n <div *dxTemplate=\"let company of 'classificationTemplate'\">\r\n <catalogClassification></catalogClassification>\r\n </div>\r\n <div *dxTemplate=\"let company of 'osgTemplate'\">\r\n <catalogOsg></catalogOsg>\r\n </div>\r\n <div *dxTemplate=\"let company of 'mavisTemplate'\">\r\n <catalogMavis></catalogMavis>\r\n </div>\r\n <div *dxTemplate=\"let company of 'printTemplate'\">\r\n <catalogPrint></catalogPrint>\r\n </div>\r\n <div *dxTemplate=\"let company of 'shopwareTemplate'\">\r\n <catalogShopware></catalogShopware>\r\n </div>\r\n <div *dxTemplate=\"let company of 'shopware6Template'\">\r\n <catalogShopware6></catalogShopware6>\r\n </div>\r\n <div *dxTemplate=\"let company of 'shopware5Template'\">\r\n <catalogShopware5></catalogShopware5>\r\n </div>\r\n <div *dxTemplate=\"let company of 'intershopTemplate'\">\r\n <intershopConnection></intershopConnection>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'templatesTemplate'\">\r\n <catalogTemplates></catalogTemplates>\r\n </div>\r\n <!--JOBS-->\r\n <div *dxTemplate=\"let job of 'jobsTemplate'\">\r\n <job-list [storeName]=\"'JobListStateNewUI_V4_CATALOGDETAIL'\"\r\n [jobListMode]=\"false\"\r\n [catalogMode]=\"true\"\r\n [adminMode]=\"false\">\r\n <!-- always choose ONE mode!! -->\r\n </job-list>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Catalog } from '../../Model/Catalog/catalog';\r\nimport { FeatureValue } from '../../Model/classification/FeatureValue';\r\n\r\n\r\n@Component({\r\n selector: \"catalogSettings\",\r\n templateUrl: \"catalogSettings.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogSettingsComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n txtClassfification: string = \"Klassifikation\";\r\n txtOsg: string = \"OSG\";\r\n txtPriceList: string = \"Preislisten\";\r\n txtPrint: string = \"Print\";\r\n txtShopware: string = \"Shopware\";\r\n txtMavis: string = \"Mavis\";\r\n txtFeatureTemplate: string = \"\";\r\n txtTemplates: string = \"\";\r\n txtCsCart: string = \"\";\r\n txtJobs: string;\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n set model(catalog: Catalog) {\r\n this.modelService.catalogService.catalog = catalog;\r\n }\r\n\r\n catalogUpdate(event = null) {\r\n this.modelService.catalogService.updateCatalog(event);\r\n }\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentUser.customerId).subscribe();\r\n }\r\n\r\n private translateTexts() {\r\n this.txtClassfification = this.translate.instant(\"Klassifikation\");\r\n this.txtOsg = this.translate.instant(\"OSG\");\r\n this.txtPriceList = this.translate.instant(\"Preislisten\");\r\n this.txtPrint = this.translate.instant(\"Print\");\r\n this.txtShopware = this.translate.instant(\"Shopware\");\r\n\r\n this.txtMavis = this.translate.instant(\"Mavis\");\r\n\r\n this.txtTemplates = this.translate.instant(\"Vorlagen\");\r\n\r\n this.txtCsCart = this.translate.instant(\"CS-Cart\");\r\n\r\n this.txtJobs = this.translate.instant(\"Jobs\");\r\n }\r\n\r\n pages: { id: number; title: string; template: string; }[] = [];\r\n\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtPriceList, template: \"priceListTemplate\" }\r\n ];\r\n if (this.modelService.loginService.hasAddonCLASSIFICATION) {\r\n this.pages.push({ id: 2, title: this.txtClassfification, template: \"classificationTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonOSG) {\r\n this.pages.push({ id: 3, title: this.txtOsg, template: \"osgTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonPRINT) {\r\n this.pages.push({ id: 4, title: this.txtPrint, template: \"printTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonShopWare) {\r\n this.pages.push({ id: 5, title: this.txtShopware, template: \"shopwareTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonMavis) {\r\n this.pages.push({ id: 6, title: this.txtMavis, template: \"mavisTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonShopware6) {\r\n this.pages.push({ id: 7, title: this.txtShopware, template: \"shopware6Template\" });\r\n }\r\n if (this.modelService.loginService.hasAddonSHOPWARE5) {\r\n this.pages.push({ id: 11, title: \"SHOPWARE5\", template: \"shopware5Template\" });\r\n }\r\n if (this.modelService.loginService.hasAddonINTERSHOP) {\r\n this.pages.push({ id: 12, title: \"INTERSHOP\", template: \"intershopTemplate\" });\r\n }\r\n if (!this.isVirtualCatalog() && this.modelService.loginService.hasAddonProductTemplates) {\r\n this.pages.push({ id: 8, title: this.txtTemplates, template: \"templatesTemplate\" });\r\n }\r\n\r\n this.pages.push({ id: 10, title: this.txtJobs, template: \"jobsTemplate\" });\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.model?.isVirtual;\r\n }\r\n\r\n addEcommerceFeatures() {\r\n this.modelService.catalogService.addEcommerceFeaturesToCatalog(this.model).subscribe(\r\n (catalog: Catalog) => {\r\n this.model.featureTemplate = catalog.featureTemplate;\r\n\r\n });\r\n }\r\n\r\n public classificationFeatureValues: FeatureValue[] = [];\r\n\r\n public loadClassificationFeatures(params) {\r\n this.modelService.classificationService.getFeatureValues(params.name, params.valueSource).subscribe(result => {\r\n this.classificationFeatureValues = result;\r\n });\r\n }\r\n\r\n public onSelectionChanged(e) {\r\n let i = 0;\r\n\r\n //this.modelService.viewService.catalogJobsVisible = (e.addedItems[0].template == \"jobsTemplate\");\r\n //refresher in joblist component never stops\r\n\r\n if (e.addedItems[0].template == \"jobsTemplate\")\r\n this.modelService.viewService.catalogJobsVisible = true;\r\n if (e.removedItems[0].template == \"jobsTemplate\")\r\n this.modelService.viewService.catalogJobsVisible = false;\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n@Component({\r\n selector: \"importFile\",\r\n templateUrl: \"importFile.component.html\"\r\n})\r\nexport class ImportFileComponent {\r\n value: any[];\r\n uploadHeaders: any;\r\n msg: string = \"\";\r\n txtUploaded:string = \"hochgeladen\";\r\n constructor(private modelService: ModelService, public translate: TranslateService, private oAuthService: OAuthService) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.txtUploaded = this.translate.instant(\"hochgeladen\");\r\n\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n this.uploadHeaders = {\r\n CatalogId: this.modelService.catalogService.selectedCatalogId,\r\n fileNameToUseInImport: this.modelService.catalogService.fileNameToUseInImport,\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n\r\n }\r\n this.value = [];\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n\r\n onUploaded(e) {\r\n this.msg = e.file.name.substring(0, 15) + \" \"+ this.txtUploaded + \".\";\r\n this.reset();\r\n this.modelService.catalogService.catalog.lastImageUpload = new Date();\r\n this.modelService.catalogService.fileNameToUseInImport = \"\";\r\n\r\n }\r\n\r\n onUploadStarted(e) {\r\n console.log(this);\r\n }\r\n\r\n \r\n}\r\n","<dx-file-uploader #fileUploader\r\n uploadUrl=\"api/Import/ImportSingleMime\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n accept=\"*\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onUploaded)=\"onUploaded($event)\"\r\n [(value)]=\"value\"\r\n uploadMode=\"instantly\">\r\n</dx-file-uploader>\r\n<h4>{{ msg }}</h4>\r\n\r\n","<dx-data-grid id=\"gridMediaPoolContainer\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"dataSource\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Medien im Katalog' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowPrepared)=\"onRowPrepared($event)\">\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'mediaDownloadButtonTemplate'\">\r\n <dx-button *ngIf=\"!readOnlyUser('mediaPool')\" text=\"{{ 'Medien download' | translate }}\" (onClick)=\"downloadMimes()\" stylingMode=\"text\" type=\"default\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'reloadButtonTemplate'\">\r\n <dx-button (onClick)=\"reload()\" stylingMode=\"text\" type=\"default\" icon=\"refresh\"></dx-button>\r\n </div>\r\n\r\n <dxo-search-panel [visible]=\"true\" placeholder=\"{{ 'Suchen' | translate }}\" [highlightCaseSensitive]=\"false\"></dxo-search-panel>\r\n <dxo-remote-operations [sorting]=\"true\" [paging]=\"true\" [filtering]=\"true\"></dxo-remote-operations>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-pager [showPageSizeSelector]=\"true\" [allowedPageSizes]=\"[50, 100]\"></dxo-pager>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"MediaPoolStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"normUri\" caption=\"\" [width]=\"60\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imageCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'imageCellTemplate'\" style=\"overflow:visible\">\r\n <div (mouseenter)=\"showImage(data.value,data.rowIndex)\" (mouseleave)=\"hideImage()\">\r\n <span *ngIf=\"!data.value\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 40px;\"></span>\r\n <img *ngIf=\"data.value\" src=\"{{data.value}}{{mimedate()}}\" style=\"height: 40px;\" id=\"link{{data.rowIndex}}\" />\r\n </div>\r\n </div>\r\n <dxi-column dataField=\"mimeSource\" caption=\"{{ 'Dateiname' | translate }}\" cellTemplate=\"nameCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'nameCellTemplate'\">\r\n <a href=\"{{data.data.blobUri}}{{getEncodedString(data.data.mimeSource)}}{{mimedate()}}\" target=\"_blank\">{{data.value}}</a>\r\n </div>\r\n <dxi-column dataField=\"fileSize\" [allowFiltering]=\"false\" [allowSorting]=\"false\" caption=\"{{ 'Größe' | translate }}\" cellTemplate=\"sizeCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'sizeCellTemplate'\">\r\n {{getFileSizeString(data.value)}}\r\n </div>\r\n\r\n <dxi-column [width]=\"60\" cellTemplate=\"editCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'editCellTemplate'\">\r\n <div *ngIf=\"canView('mimePool')\">\r\n <a (click)=\"replaceMime(data)\" class=\"glyphicon glyphicon-random mr-2\" title=\"{{ 'Mime Datei ersetzen' | translate }}\"></a>\r\n <a (click)=\"deleteRequest(data)\" class=\"dx-icon-trash mr-2\" title=\"{{ 'Mime Datei löschen' | translate }}\"></a>\r\n </div>\r\n </div>\r\n</dx-data-grid>\r\n\r\n<dx-popover [(target)]=\"target\"\r\n position=\"bottom\"\r\n [width]=\"300\"\r\n [showTitle]=\"false\"\r\n [(visible)]=\"imageVisable\">\r\n <div *dxTemplate=\"let data = model of 'content'\">\r\n <img src=\"{{source}}{{mimedate()}}\" style=\"height: 244px;\" />\r\n </div>\r\n</dx-popover>\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Datei importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"importFileVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importFile></importFile>\r\n </div>\r\n</dx-popup>\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { MediaPool } from \"../../Model/Catalog/MediaPool\";\r\nimport { DataSourceParams } from \"../../Model/Catalog/DataSourceParams\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"mediaPool\",\r\n templateUrl: \"mediaPool.component.html\",\r\n styleUrls: []\r\n})\r\nexport class MediaPoolComponent {\r\n @ViewChild(DxDataGridComponent, { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n dataSource: any = {};\r\n mediaPool: MediaPool;\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.dataSource.store = new CustomStore({\r\n load: function (loadOptions: any) {\r\n\r\n var params = new DataSourceParams();\r\n\r\n params.skip = loadOptions.skip || 0;\r\n params.take = loadOptions.take || 20;\r\n\r\n if (loadOptions.sort) {\r\n params.orderBy = loadOptions.sort[0].selector;\r\n if (loadOptions.sort[0].desc) {\r\n params.desc = true;\r\n }\r\n }\r\n if (loadOptions.filter) {\r\n if (loadOptions.filter[2]) {\r\n params.filter = loadOptions.filter[2];\r\n }\r\n }\r\n return modelService.mediaService.getMediaElements(modelService.catalogService.selectedCatalogId, params)\r\n .then((data: any) => {\r\n let mediaPool = data;\r\n return {\r\n data: mediaPool.items,\r\n totalCount: mediaPool.totalCount\r\n }\r\n })\r\n .catch(() => { throw 'Data Loading Error' });\r\n }\r\n });\r\n\r\n }\r\n\r\n getEncodedString(s: string) {\r\n return encodeURIComponent(s);\r\n\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'mediaDownloadButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'reloadButtonTemplate'\r\n });\r\n }\r\n\r\n public importFileVisible: boolean = false;\r\n public replaceFileName: string = \"\";\r\n\r\n onRowPrepared(e) {\r\n //if (e.data && !e.data.normUri) {\r\n // this.modelService.mediaService\r\n // .getMediaElement(e.data.mimeSource, this.modelService.catalogService.selectedCatalogId).subscribe(\r\n // (element: MediaElement) => {\r\n // if (element) {\r\n // e.data.normUri = element.normUri;\r\n // e.data.thumbUri = element.thumbUri;\r\n // }\r\n // });\r\n //}\r\n }\r\n\r\n\r\n\r\n getFileSizeString(size) {\r\n return this.modelService.systemService.getFileSizeString(size);\r\n }\r\n\r\n replaceMime(data) {\r\n console.log(data);\r\n this.importFileVisible = true;\r\n this.replaceFileName = data.data.mimeSource;\r\n this.modelService.catalogService.fileNameToUseInImport = this.replaceFileName;\r\n }\r\n\r\n deleteRequest(data) {\r\n this.modelService.mediaService.deleteMime(data.data.catalogFileId, this.modelService.catalogService.catalog.id).subscribe(() => {\r\n this.dataGrid.instance.refresh();\r\n this.modelService.catalogService.treeRefresh();\r\n });\r\n\r\n }\r\n\r\n reload() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n mimedate() {\r\n return \"?\" + this.modelService.catalogService.catalog.lastImageUpload;\r\n }\r\n\r\n imageVisable: boolean = false;\r\n source: string = \"\";\r\n target: string = \"\";\r\n\r\n showImage(source, index) {\r\n if (source != null) {\r\n this.target = \"#link\" + index;\r\n this.source = source;\r\n this.imageVisable = true;\r\n }\r\n }\r\n\r\n hideImage() {\r\n this.imageVisable = false;\r\n }\r\n\r\n downloadMimes() {\r\n this.translate.get(\"Die Medien werden per Job bereitgestellt\")\r\n .subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n\r\n this.modelService.catalogService.downloadMimes(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n let i = 1;\r\n });\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CatalogDataQuality } from '../../Model/validation/CatalogDataQuality';\r\n\r\n@Component({\r\n selector: \"dataQualityGroups\",\r\n templateUrl: \"dataQualityGroups.component.html\",\r\n styleUrls: []\r\n})\r\n\r\nexport class DataQualityGroupsComponent implements OnInit {\r\n @Input() modelChangedEvent: EventEmitter<CatalogDataQuality>;\r\n\r\n dataSource: any[];\r\n colorPalette: string[];\r\n\r\n constructor(modelService: ModelService, public translate: TranslateService) {\r\n this.reload = this.reload.bind(this);\r\n this.reload(modelService.dataQualityService.catalogDataQuality);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modelChangedEvent.subscribe((model) => this.reload(model));\r\n }\r\n\r\n reload(model: CatalogDataQuality) {\r\n this.initDataSource(model);\r\n }\r\n\r\n initDataSource(value: CatalogDataQuality) {\r\n this.dataSource = [];\r\n this.colorPalette = [];\r\n if (value.productsCountInGroups != undefined) {\r\n value.productsCountInGroups.forEach(x => {\r\n this.dataSource.push({ category: x.validationGroup.name, val: x.productCount });\r\n this.colorPalette.push(x.validationGroup.backgroundColor);\r\n });\r\n }\r\n }\r\n \r\n customizeText = (arg: any) => {\r\n return arg.valueText + \" %\";\r\n }\r\n\r\n customizeLabel = (arg: any) => {\r\n if (arg.valueText == \"1\")\r\n return \"1 Produkt\";\r\n\r\n return arg.valueText + \" Produkte\";\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <dx-pie-chart style=\"margin-top:20px;\"\r\n type=\"doughnut\"\r\n [startAngle]=\"90\"\r\n title=\"Produktkategorien\"\r\n [resolveLabelOverlapping]=\"'shift'\"\r\n [palette]=\"colorPalette\"\r\n [dataSource]=\"dataSource\">\r\n <dxi-series argumentField=\"category\">\r\n <dxo-label [visible]=\"true\"\r\n [customizeText]=\"customizeLabel\">\r\n <dxo-connector [visible]=\"true\"></dxo-connector>\r\n </dxo-label>\r\n </dxi-series>\r\n <dxo-export [enabled]=\"true\"></dxo-export>\r\n <dxo-legend [margin]=\"0\"\r\n horizontalAlignment=\"left\"\r\n verticalAlignment=\"top\"></dxo-legend>\r\n <dxo-tooltip [enabled]=\"true\"\r\n format=\"largeNumber\">\r\n </dxo-tooltip>\r\n </dx-pie-chart>\r\n</div>\r\n","<dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('dataqualitystatsexport')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Details exportieren' | translate, onClick: exportDetails }\"></dxi-item>\r\n</dx-toolbar>\r\n\r\n<div class=\"dx-fieldset\">\r\n <div *ngFor=\"let table of model.catalogDataQualityTable\">\r\n <h5 style=\"color:#0093D6;\">{{table.headline}}</h5>\r\n <dx-data-grid [dataSource]=\"table.lines\"\r\n [showBorders]=\"false\"\r\n [showColumnHeaders]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [rowAlternationEnabled]=\"true\">\r\n <dxi-column dataField=\"name\" cellTemplate=\"cellTemplateName\"></dxi-column>\r\n <div *dxTemplate=\"let cell of 'cellTemplateName'\">\r\n <div style=\"font-weight:bold\">{{cell.text}}</div>\r\n </div>\r\n <dxi-column dataField=\"hits\" width=\"70\" cellTemplate=\"cellTemplateHits\"></dxi-column>\r\n <div *dxTemplate=\"let cell of 'cellTemplateHits'\">\r\n <div><span style=\"color:#00994B;\">{{cell.text}}</span> |</div>\r\n </div>\r\n <dxi-column dataField=\"total\" width=\"70\" cellTemplate=\"cellTemplateTotal\"></dxi-column>\r\n <div *dxTemplate=\"let cell of 'cellTemplateTotal'\">\r\n <div style=\"color:#0093D6;\">{{cell.text}}</div>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CatalogDataQuality } from '../../Model/validation/CatalogDataQuality';\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\n@Component({\r\n selector: \"dataQualityStatistic\",\r\n templateUrl: \"dataQualityStatistic.component.html\",\r\n styleUrls: []\r\n})\r\nexport class DataQualityStatisticComponent implements OnInit {\r\n @Input() modelChangedEvent: EventEmitter<CatalogDataQuality>;\r\n\r\n model: CatalogDataQuality;\r\n txtExportAlsJob: string;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.exportDetails = this.exportDetails.bind(this);\r\n\r\n this.txtExportAlsJob = this.translate.instant(\"Der Export wird als Job ausgeführt\");\r\n this.model = modelService.dataQualityService.catalogDataQuality;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modelChangedEvent.subscribe((model) => this.model = model);\r\n }\r\n\r\n exportDetails() {\r\n var result = new ExportParameter();\r\n result.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n result.customerId = this.modelService.loginService.currentUser.customerId;\r\n result.format = \"Qualitydetails\";\r\n\r\n this.modelService.catalogService.createExportJob(result).subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.txtExportAlsJob));\r\n\r\n });\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class DataQualityFacts {\r\n\r\n constructor(\r\n public access?: string,\r\n public assortmentSize?: number,\r\n public customerSpezificPrice?: boolean,\r\n public email?: string,\r\n public format?: string,\r\n public pidForPackingSize?: boolean,\r\n public position?: string,\r\n public processingPeriod?: string,\r\n public productCount?: number,\r\n public receiveDate?: Date,\r\n public requestDate?: Date,\r\n public supplierName?: string,\r\n public waitingPeriod?: string\r\n ) {\r\n }\r\n}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n","<!-- <div class=\"row\" >\r\n<div class=\"col-sm-6\">-->\r\n<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Lieferantenname' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.supplierName?.length>0 ? 'placeLabelSmall' : '' }}\">SUPPLIER_NAME</label>\r\n <dx-text-box [(value)]=\"model.supplierName\" [readOnly]=\"readOnlyUser('dataQuality')\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Ansprechpartner' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.contact?.length>0 ? 'placeLabelSmall' : '' }}\">CONTACT</label>\r\n <dx-text-box [(value)]=\"model.contact\" [readOnly]=\"readOnlyUser('dataQuality')\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Position' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.position?.length>0 ? 'placeLabelSmall' : '' }}\">POSITION</label>\r\n <dx-text-box [(value)]=\"model.position\" [readOnly]=\"readOnlyUser('dataQuality')\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Telefon' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.phone?.length>0 ? 'placeLabelSmall' : '' }}\">PHONE</label>\r\n <dx-text-box [(value)]=\"model.phone\" [readOnly]=\"readOnlyUser('dataQuality')\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Email' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.email?.length>0 ? 'placeLabelSmall' : '' }}\">EMAIL</label>\r\n <dx-text-box [(value)]=\"model.email\" [readOnly]=\"readOnlyUser('dataQuality')\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Geliefertes Format' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.format?.length>0 ? 'placeLabelSmall' : '' }}\">FORMAT</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"formats\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.format\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('dataQuality')\">\r\n </dx-autocomplete>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Zugang' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.access?.length>0 ? 'placeLabelSmall' : '' }}\">ACCESS</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"accesses\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.access\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('dataQuality')\">\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Wartezeit' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.waitingPeriod?.length>0 ? 'placeLabelSmall' : '' }}\">WAITING_PERIOD</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"timeSpans\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.waitingPeriod\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('dataQuality')\">\r\n </dx-autocomplete>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Bearbeitungszeit' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.processingPeriod?.length>0 ? 'placeLabelSmall' : '' }}\">PROCESSING_PERIOD</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"timeSpans\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.processingPeriod\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogChanged($event)\"\r\n [readOnly]=\"readOnlyUser('dataQuality')\">\r\n </dx-autocomplete>\r\n </div>\r\n </div>\r\n</div>\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\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!--</div>-->\r\n <!--</div>-->\r\n <!--<div class=\"col-sm-6\">\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Größe Gesamtsortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.assortmentSize?.length > 0 ? 'placeLabelSmall' : '' }}\">ASSORTMENT_SIZE</label>\r\n <dx-text-box [(value)]=\"model.assortmentSize\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Anzahl Produkte' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.productCount?.length > 0 ? 'placeLabelSmall' : '' }}\">PRODUCT_COUNT</label>\r\n <dx-text-box [(value)]=\"model.productCount\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Eigene Artikelnummern für Packungsgrößen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogChanged($event)\" [(value)]=\"model.pidForPackingSize\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kundenspezifischer Preis' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogChanged($event)\" [(value)]=\"model.customerSpezificPrice\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Varianten nötig' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"catalogChanged($event)\" [(value)]=\"model.variantsRequired\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n -->\r\n \r\n<!--</div>\r\n</div>-->\r\n","import { Component, EventEmitter, Input, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataQualityFacts } from '../../Model/Catalog/DataQualityFacts';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"dataQualityFacts\",\r\n templateUrl: \"dataQualityFacts.component.html\",\r\n styleUrls: []\r\n})\r\nexport class DataQualityFactsComponent implements OnInit {\r\n timeSpans: string[];\r\n accesses: string[];\r\n formats: string[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public validationService: ValidationService, public userManagement: UserManagementService) {\r\n if (this.modelService.catalogService.catalog.dataQualityFacts == null) {\r\n this.model = new DataQualityFacts();\r\n }}\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n\r\n this.timeSpans = new Array<string>();\r\n this.timeSpans.push(\"Minuten\");\r\n this.timeSpans.push(\"Stunden\");\r\n this.timeSpans.push(\"Tage\");\r\n this.timeSpans.push(\"Wochen\");\r\n\r\n this.accesses = new Array<string>();\r\n this.accesses.push(\"Portal\");\r\n this.accesses.push(\"FTP\");\r\n this.accesses.push(\"Link\");\r\n this.accesses.push(\"Email\");\r\n this.accesses.push(\"Datenträger\");\r\n this.accesses.push(\"Sonstiges\");\r\n\r\n this.formats = new Array<string>();\r\n this.formats.push(\"BMEcat\");\r\n this.formats.push(\"Excel\");\r\n this.formats.push(\"Sonstiges\");\r\n }\r\n\r\n get model(): DataQualityFacts {\r\n return this.modelService.catalogService.catalog.dataQualityFacts;\r\n }\r\n\r\n set model(value: DataQualityFacts) {\r\n this.modelService.catalogService.catalog.dataQualityFacts = value;\r\n }\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n\r\n}\r\n","<div class=\"d-flex flex-column\">\r\n <dx-toolbar>\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <dx-select-box [(value)]=\"selectedValidationMethod\"\r\n [items]=\"validationMethods\"\r\n displayExpr=\"name\"\r\n (onValueChanged)=\"validationMethodChanged()\">\r\n <dxo-drop-down-options [width]=\"400\"></dxo-drop-down-options>\r\n </dx-select-box>\r\n </div>\r\n </dxi-item>\r\n <dxi-item *ngIf=\"!readOnlyUser('dataQualityCalc')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Qualität berechnen' | translate, hint: 'Qualität als Job berechnen' | translate, onClick: calculate }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" [options]=\"{ type: 'default', icon: 'refresh', onClick: reload }\"></dxi-item>\r\n </dx-toolbar>\r\n <dx-tab-panel class=\"flex-fill\"\r\n [dataSource]=\"pages\"\r\n [selectedIndex]=\"0\"\r\n [loop]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [swipeEnabled]=\"true\">\r\n <div *dxTemplate=\"let company of 'chartTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <dx-chart id=\"chart\"\r\n title=\"{{ 'Datenqualität' | translate }}\"\r\n [dataSource]=\"model\"\r\n [palette]=\"['#A52A2A' , '#D26915', '#FFA500', '#008000', '#191970']\">\r\n\r\n <dxo-value-axis [min]=\"0\"\r\n [max]=\"100\"\r\n [visible]=\"false\">\r\n <dxo-tick [visible]=\"false\"></dxo-tick>\r\n <dxo-grid [visible]=\"false\"></dxo-grid>\r\n <dxo-label [visible]=\"false\"></dxo-label>\r\n </dxo-value-axis>\r\n\r\n <dxo-argument-axis [visible]=\"false\">\r\n <dxo-label [visible]=\"false\"></dxo-label>\r\n <dxo-grid [visible]=\"false\"></dxo-grid>\r\n </dxo-argument-axis>\r\n <dxi-series valueField=\"basicsResult\" name=\"{{ 'Stammdaten' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"keywordResult\" name=\"{{ 'Suchbegriffe' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"mediaResult\" name=\"{{ 'Medien' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"featureSystemResult\" name=\"{{ 'Merkmale' | translate }}\"></dxi-series>\r\n <dxi-series valueField=\"additionalsResult\" name=\"{{ 'Zusatzinformationen' | translate }}\"></dxi-series>\r\n\r\n <dxo-common-series-settings argumentField=\"catalog\"\r\n type=\"bar\"\r\n hoverMode=\"allArgumentPoints\"\r\n selectionMode=\"allArgumentPoints\">\r\n <dxo-label [visible]=\"true\"\r\n [customizeText]=\"customizeText\"></dxo-label>\r\n </dxo-common-series-settings>\r\n <dxo-legend [margin]=\"0\"\r\n verticalAlignment=\"top\"\r\n horizontalAlignment=\"left\"></dxo-legend>\r\n <dxo-export [enabled]=\"true\"></dxo-export>\r\n </dx-chart>\r\n </div>\r\n\r\n </div>\r\n <div *dxTemplate=\"let company of 'groupsTemplate'\">\r\n <dataQualityGroups [modelChangedEvent]=\"modelChangedEvent\"></dataQualityGroups>\r\n </div>\r\n <div *dxTemplate=\"let company of 'statisticTemplate'\">\r\n <dataQualityStatistic [modelChangedEvent]=\"modelChangedEvent\"></dataQualityStatistic>\r\n </div>\r\n <div *dxTemplate=\"let company of 'factsTemplate'\">\r\n <dataQualityFacts></dataQualityFacts>\r\n </div>\r\n </dx-tab-panel>\r\n</div>\r\n","import { Component, EventEmitter, OnInit } from \"@angular/core\";\r\nimport { CatalogDataQuality } from \"../../Model/validation/CatalogDataQuality\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { StartAction } from \"../../Model/Dto/StartAction\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ValidationMethod } from \"../../Model/validation/ValidationMethod\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\n\r\n@Component({\r\n selector: \"dataQuality\",\r\n templateUrl: \"dataQuality.component.html\",\r\n styleUrls: []\r\n})\r\nexport class DataQualityComponent implements OnInit { \r\n\r\n pages = [];\r\n chartText: string=\"\";\r\n informationenText: string = \"\";\r\n exampleText: string = \"\";\r\n groupsText: string = \"\";\r\n statisticText: string = \"\";\r\n\r\n model: CatalogDataQuality[];\r\n validationMethods: ValidationMethod[];\r\n selectedValidationMethod: ValidationMethod;\r\n modelChangedEvent: EventEmitter<CatalogDataQuality> = new EventEmitter<CatalogDataQuality>();\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public catalogService: CatalogService, public userManagement: UserManagementService, public validationService: ValidationService) {\r\n this.calculate = this.calculate.bind(this);\r\n this.reload = this.reload.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.chartText = this.translate.instant(\"Qualität\");\r\n this.groupsText = this.translate.instant(\"Gruppen\");\r\n this.statisticText = this.translate.instant(\"Statistik\");\r\n this.informationenText = this.translate.instant(\"Informationen\");\r\n this.exampleText = this.translate.instant(\"Beispiele\");\r\n\r\n\r\n this.pages = [\r\n { id: 1, title: this.chartText, template: \"chartTemplate\" },\r\n { id: 4, title: this.groupsText, template: \"groupsTemplate\" },\r\n { id: 5, title: this.statisticText, template: \"statisticTemplate\" },\r\n { id: 2, title: this.informationenText, template: \"factsTemplate\" }\r\n ];\r\n\r\n this.validationService.getValidationMethods().subscribe(validationMethods => {\r\n this.validationMethods = validationMethods;\r\n this.selectedValidationMethod = this.validationMethods.find(x => x.id == this.modelService.catalogService.catalog.validationMethodId);\r\n if (this.selectedValidationMethod == undefined) {\r\n this.selectedValidationMethod = this.validationMethods.find(x => x.isDefault && !x.isGlobal);\r\n if (this.selectedValidationMethod == undefined) {\r\n this.selectedValidationMethod = this.validationMethods.find(x => x.isDefault);\r\n }\r\n }\r\n });\r\n }\r\n\r\n calculate() {\r\n let param = new StartAction();\r\n param.customerId = this.modelService.loginService.currentUser.customerId;\r\n param.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n\r\n this.modelService.dataQualityService.CalculateCatalogDataQuality(param).subscribe(\r\n () => {\r\n this.translate.get(\"Berechnung wurde als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n );\r\n }\r\n\r\n reload() {\r\n this.modelService.dataQualityService.getDataQuality(this.modelService.loginService.currentUser.customerId, this.modelService.catalogService.selectedCatalogId).subscribe(\r\n (result: CatalogDataQuality) => {\r\n result.catalog = this.modelService.catalogService.catalog.catalogName;\r\n this.model = new Array<CatalogDataQuality>();\r\n this.model.push(result);\r\n this.modelService.dataQualityService.catalogDataQuality = result;\r\n this.modelChangedEvent.emit(result);\r\n }\r\n );\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n\r\n validationMethodChanged() {\r\n this.catalogService.catalog.validationMethodId = this.selectedValidationMethod.id;\r\n this.catalogService.updateCatalog().finally(() => this.reload());\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { CatalogDataQuality } from \"../../Model/validation/CatalogDataQuality\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { StartAction } from \"../../Model/Dto/StartAction\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { ExportParameter } from \"../../Model/exportParameter/ExportParameter\";\r\n\r\n@Component({\r\n selector: \"gevis\",\r\n templateUrl: \"gevis.component.html\",\r\n styleUrls: []\r\n})\r\nexport class GevisComponent {\r\n\r\n gevisUrl = \"\";\r\n useClassification = false;\r\n featureSystemName = \"\";\r\n featureSystemNames;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.GetExportParameter = this.GetExportParameter.bind(this);\r\n this.send = this.send.bind(this);\r\n this.loadFeatureSystemNames = this.loadFeatureSystemNames.bind(this);\r\n\r\n\r\n this.loadFeatureSystemNames();\r\n }\r\n\r\n public GetExportParameter(): ExportParameter {\r\n let result = new ExportParameter();\r\n result.catalogId = this.modelService.catalogService.catalog.id;\r\n result.customerId = this.modelService.loginService.currentUser.customerId;\r\n result.version = \"GEVIS\";\r\n result.format = \"GEVIS\";\r\n result.includeMime = true;\r\n return result;\r\n }\r\n\r\n public send() {\r\n\r\n let exportParameterLive = this.GetExportParameter();\r\n exportParameterLive.useClassification = this.useClassification;\r\n exportParameterLive.featureSystem = this.featureSystemName;\r\n this.modelService.catalogService.createGevisExportJob(exportParameterLive).subscribe(\r\n () => {\r\n this.translate.get(\"Der Export wurde als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n\r\n });\r\n });\r\n }\r\n\r\n loadFeatureSystemNames() {\r\n this.modelService.catalogService\r\n .getFeatureSystemFilters(this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId)\r\n .subscribe(\r\n (filter) => {\r\n this.featureSystemNames = filter.map(x => x.text);\r\n });\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" style=\"max-width: 600px;\">\r\n <!-- <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Gevis Url' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [readOnly]=\"true\" [(value)]=\"gevisUrl\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>-->\r\n <!--<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Klassenmodus' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"useClassification\" switchedOffText=\"{{ 'Kategorien' | translate }}\" switchedOnText=\"{{ 'Klassifikation' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"useClassification\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'KlassifikationsFeaturesystem' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [(value)]=\"featureSystemName\"\r\n [items]=\"featureSystemNames\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>-->\r\n\r\n <div class=\"dx-field\">\r\n <div>{{ 'Die Gevis Schnittstelle ist jetzt und zukünftig nur noch im Export Dialog nutzbar (Schnittstele => Gevis)' | translate }}</div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Gevis XML erstellen' | translate }}</div>\r\n <!--<dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Senden' | translate , onClick: send }\"></dxi-item>-->\r\n <div class=\"dx-field-value\">\r\n <dx-button text=\"{{ 'Export starten' | translate }}\" (onClick)=\"send()\"></dx-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","export class OdooConnection {\r\n\r\n constructor(\r\n public baseUri?: string,\r\n public user?: string,\r\n public database?: string,\r\n public apiKey?: string,\r\n public catalogCategoryId?: number\r\n ) {\r\n }\r\n}\r\n\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { ShopWare6Connection } from '../Model/Catalog/ShopWareConnection';\r\nimport { ShopWare5ShopDto } from '../Model/Dto/Shopware5ShopDto';\r\nimport { TreeItem as TreeElement } from \"../Model/Dto/TreeItem\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class OdooService {\r\n constructor(private http: HttpClient) {}\r\n\r\n public testConnection(catalogId: string, customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/odoo/testConnection\", options)) as any;\r\n }\r\n\r\n public getCategories(shopUrl: string, database: string, user: string, key: string): Observable<TreeElement[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"shopUrl\", shopUrl).append(\"database\", database).append(\"user\", user).append(\"key\", key)\r\n }\r\n return (this.http.get(\"api/odoo/getcategories\", options)) as any;\r\n }\r\n\r\n public startExport(catalogId: string, customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"catalogId\", catalogId).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/odoo/exportCatalog\", options)) as any;\r\n }\r\n}\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Shop URL' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt10\">\r\n <label class=\"placeLabel {{ model.baseUri?.length>0 ? 'placeLabelSmall' : '' }}\">SHOP_URL</label>\r\n <dx-text-box [(value)]=\"model.baseUri\" [readOnly]=\"readOnlyUser('showare5Url')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'User' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.user?.length>0 ? 'placeLabelSmall' : '' }}\">USER</label>\r\n <dx-text-box [(value)]=\"model.user\" [readOnly]=\"readOnlyUser('showare5User')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'API Key' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.apiKey?.length>0 ? 'placeLabelSmall' : '' }}\">API_KEY</label>\r\n <dx-text-box [(value)]=\"model.apiKey\" [readOnly]=\"readOnlyUser('showare5apiKey')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Datenbank' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.apiKey?.length>0 ? 'placeLabelSmall' : '' }}\">DATABASE</label>\r\n <dx-text-box [(value)]=\"model.database\" [readOnly]=\"readOnlyUser('showare5apiKey')\" [showClearButton]=\"true\" (onValueChanged)=\"valueChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Produkt Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-drop-down-box [value]=\"model.catalogCategoryId\"\r\n valueExpr=\"id\"\r\n displayExpr=\"text\"\r\n placeholder=\"{{ 'Kategorie auswählen' | translate }}\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"syncTreeViewSelection($event)\"\r\n [dataSource]=\"categories\"\r\n [readOnly]=\"readOnlyUser('odooCategorie')\">\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-tree-view [items]=\"categories\"\r\n dataStructure=\"plain\"\r\n parentIdExpr=\"parent\"\r\n selectionMode=\"single\"\r\n [selectByClick]=\"true\"\r\n keyExpr=\"id\"\r\n displayExpr=\"text\"\r\n (onItemSelectionChanged)=\"treeView_itemSelectionChanged($event)\">\r\n <dxo-scrolling [useNative]=\"true\">\r\n </dxo-scrolling>\r\n </dx-tree-view>\r\n </div>\r\n </dx-drop-down-box>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Verbindung testen' | translate , onClick: testConnection}\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Kategorien laden' | translate , onClick: getCategories}\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog senden' | translate , onClick: sendCatalog}\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n</div>\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ShopWare5Connection } from \"../../../Model/Catalog/Shopware5Connection\";\r\nimport { ShopWare5ShopDto } from \"../../../Model/Dto/Shopware5ShopDto\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Shopware5Service } from \"../../../Services/shopware5.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { TreeItem as TreeElement } from \"../../../Model/Dto/TreeItem\";\r\nimport { DxDropDownBoxComponent, DxTreeViewComponent } from \"devextreme-angular\";\r\nimport { OdooConnection } from \"../../../Model/Catalog/OdooConnection\";\r\nimport { OdooService } from \"../../../Services/odoo.service\";\r\n\r\n\r\n@Component({\r\n selector: \"odoo\",\r\n templateUrl: \"catalogOdoo.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CatalogOdooComponent implements OnInit {\r\n @ViewChild(DxTreeViewComponent) treeView;\r\n public categories: any;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService, public odooService: OdooService) {\r\n this.sendCatalog = this.sendCatalog.bind(this);\r\n this.testConnection = this.testConnection.bind(this);\r\n this.valueChanged = this.valueChanged.bind(this);\r\n this.getCategories = this.getCategories.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCategories(false);\r\n }\r\n\r\n valueChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n public getCategories(sendMessage = true) {\r\n this.odooService.getCategories(this.model.baseUri, this.model.database, this.model.user, this.model.apiKey).subscribe((result: TreeElement[]) => {\r\n if (sendMessage)\r\n this.modelService.systemService.notifyInfo(result.length.toString() + this.translate.instant(\" Kategorien wurden gefunden\"));\r\n this.categories = result;\r\n }, error => {\r\n if (sendMessage)\r\n this.modelService.systemService.notifyWarning(error.error);\r\n });\r\n }\r\n\r\n treeView_itemSelectionChanged(e) {\r\n this.model.catalogCategoryId = e.itemData.id;\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n syncTreeViewSelection() {\r\n if (!this.treeView) return;\r\n\r\n if (!this.model.catalogCategoryId) {\r\n this.treeView.instance.unselectAll();\r\n } else {\r\n this.treeView.instance.selectItem(this.model.catalogCategoryId);\r\n }\r\n }\r\n\r\n get model(): OdooConnection {\r\n if (!this.modelService.catalogService.catalog.odooConnection) {\r\n this.modelService.catalogService.catalog.odooConnection = new OdooConnection();\r\n this.modelService.catalogService.catalog.odooConnection.baseUri = \"\";\r\n this.modelService.catalogService.catalog.odooConnection.apiKey = \"\";\r\n this.modelService.catalogService.catalog.odooConnection.user = \"\";\r\n this.modelService.catalogService.catalog.odooConnection.database = \"\";\r\n }\r\n return this.modelService.catalogService.catalog.odooConnection;\r\n }\r\n\r\n public testConnection() {\r\n this.odooService.testConnection(this.modelService.catalogService.catalog.id, this.modelService.catalogService.catalog.customerId).subscribe((result) => {\r\n this.modelService.systemService.notifyInfo(\"Erfolgreich angemeldet\");\r\n }, error => {\r\n this.modelService.systemService.notifyWarning(error.error.detail);\r\n });\r\n }\r\n\r\n public sendCatalog() {\r\n this.odooService.startExport(this.modelService.catalogService.catalog.id, this.modelService.catalogService.catalog.customerId).subscribe((result) => {\r\n this.modelService.systemService.notifyInfo(\"Export wurde erstellt\");\r\n }, error => {\r\n this.modelService.systemService.notifyWarning(error.error);\r\n });\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class TranslateCatalog {\r\n\r\n constructor(\r\n public languageCode?: string,\r\n public customerId?: string,\r\n public catalogId?: string,\r\n public useDeepL?: boolean\r\n ) {\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Sprache' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"languageFlags\"\r\n displayExpr=\"language\"\r\n valueExpr=\"code\"\r\n [(value)]=\"selectedLanguage\"\r\n fieldTemplate=\"field\"\r\n style=\"background-color:white;\">\r\n\r\n <div *dxTemplate=\"let data of 'item'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img src=\"images/flags/{{data?.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n {{data?.language}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <div class=\" d-flex flex-row\">\r\n <div class=\"pr-2 align-self-center\">\r\n <img src=\"images/flags/{{data?.flag}}\" class=\"flag\" />\r\n </div>\r\n <div class=\"flex-fill pl-2\">\r\n <dx-text-box [value]=\"data?.language\" [readOnly]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte wählen Sie eine Sprache aus' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"modelService.loginService.hasAddonDEEPLTRANSLATE\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Mit DeepL übersetzen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"useDeepL\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n\r\n</div>\r\n\r\n<dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Übersetzen' | translate, onClick: onTranslate }\"></dxi-item>\r\n</dx-toolbar>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateCatalog } from \"../../../Model/Dto/TranslateCatalog\";\r\nimport { LanguageFlag } from \"../../../Model/Dto/LanguageFlag\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"translateCatalog\",\r\n templateUrl: \"translateCatalog.component.html\"\r\n})\r\nexport class TranslateCatalogComponent {\r\n\r\n public selectedLanguage: string ;\r\n model: TranslateCatalog;\r\n public useDeepL: boolean = false;\r\n public hasLanguages: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.onTranslate = this.onTranslate.bind(this);\r\n\r\n //this._languageFlags = this.modelService.loginService.languageFlags;\r\n\r\n let allFlags = this.modelService.loginService.languageFlags;\r\n\r\n let relevantFlags = new Array<LanguageFlag>();\r\n\r\n if (allFlags.length == 1) { // Es wurden noch keine Sprachen angelegt. Nur die \"currentCustomerDefaultLanguage\" ist hier drin.\r\n //relevantFlags = allFlags;\r\n } else { // Es wurden Sprachen angelegt. Die \"currentCustomerDefaultLanguage\" soll nicht in die Auswahl.\r\n allFlags.forEach((flag: LanguageFlag) => {\r\n if (flag.code != this.modelService.loginService.currentCustomer.defaultLanguage) {\r\n relevantFlags.push(flag);\r\n }\r\n });\r\n this._languageFlags = relevantFlags;\r\n\r\n if (this._languageFlags.length > 0) {\r\n this.selectedLanguage = this._languageFlags[0].code;\r\n this.hasLanguages = true;\r\n }\r\n }\r\n }\r\n\r\n _languageFlags: LanguageFlag[];\r\n\r\n get languageFlags(): LanguageFlag[] {\r\n return this._languageFlags;\r\n }\r\n\r\n set languageFlags(value: LanguageFlag[]) {\r\n this._languageFlags = value;\r\n }\r\n\r\n onTranslate() {\r\n this.model = new TranslateCatalog();\r\n this.model.languageCode = this.selectedLanguage;\r\n this.model.customerId = this.modelService.loginService.currentUser.customerId;\r\n this.model.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n this.model.useDeepL = this.useDeepL;\r\n\r\n this.modelService.translationService.translateCatalog(this.model).subscribe(success => {\r\n if (success) {\r\n this.translate.get(\"Übersetzung wird als Job ausgeführt\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n this.modelService.catalogService.translateVisible = false;\r\n });\r\n \r\n }\r\n },\r\n err => this.translate.get(\"Unbekannter Fehler\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text,\"error\"));\r\n }));\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n}\r\n","<dx-tab-panel #tabPanel\r\n [height]=\"260\"\r\n [dataSource]=\"pages\"\r\n [selectedIndex]=\"0\"\r\n [loop]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [swipeEnabled]=\"true\">\r\n <div *dxTemplate=\"let temp of 'uploadTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <dx-file-uploader #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/ImportMimeChunky\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n accept=\".zip\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onProgress)=\"onProgress($event)\"\r\n uploadMode=\"instantly\"\r\n invalidFileExtensionMessage=\"{{ 'Bitte nur Zip Dateien auswählen' | translate }}.\"\r\n invalidMaxFileSizeMessage=\"{{ 'Die Datei ist leider zu groß' | translate }}.\"\r\n invalidMinFileSizeMessage=\"{{ 'Die Datei ist leider zu klein' | translate }}\"\r\n selectButtonText=\"{{ 'Datei auswählen' | translate }}\"\r\n labelText=\"{{ 'oder Datei hier ablegen' | translate }}\"\r\n uploadButtonText=\"{{ 'Upload' | translate }}\"\r\n uploadedMessage=\"{{ 'Hochgeladen' | translate }}\"\r\n uploadFailedMessage=\"{{ 'Hochladen fehlgeschlagen' | translate }}\">\r\n </dx-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let temp of 'linkTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"{{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }} w-100\" id=\"ut1\" (mouseenter)=\"utt(1)\" (mouseleave)=\"utt(1)\">\r\n <label class=\"placeLabel {{ fileUrl?.length>0 ? 'placeLabelSmall' : '' }}\">MEDIA_URL</label>\r\n <dx-text-box [(value)]=\"fileUrl\" [showClearButton]=\"true\" (onValueChanged)=\"linkChanged($event)\"></dx-text-box>\r\n </div>\r\n\r\n <dx-tooltip target=\"#ut1\" class=\"toolTip toolTipField\" [(visible)]=\"f[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Hier können Sie einen Link zu einer Mediadatei eintragen, um diesen zu importieren' | translate }}.\r\n {{ 'Es werden zum Beispiel Links zu Dateien in einer Dropbox unterstützt oder Links, welche aus anderen Systemen erstellt wurden' | translate }}\r\n {{ 'Bsp' | translate }}.: https://www.dropbox.com/s/h5pldo0u8h7qkje/mediaFile.zip?dl=0\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"fileUrl.length>0\">\r\n <div *ngIf=\"!fileUrlTest\">\r\n <div style=\"color: red;\">\r\n {{fileUrlTestMessage}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <dx-toolbar *ngIf=\"fileUrl.length>0\">\r\n <dxi-item *ngIf=\"!fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Link testen' | translate, onClick: testLink }\"></dxi-item>\r\n <dxi-item *ngIf=\"fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Medien laden' | translate, onClick: startDownload }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n </div>\r\n</dx-tab-panel>\r\n","\r\nimport { Component, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { Catalog } from \"../../../Model/Catalog/catalog\";\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { TestResult } from \"../../../Model/Dto/TestResult\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport {UserIdleService} from \"angular-user-idle\";\r\n\r\n@Component({\r\n selector: \"importMedia\",\r\n templateUrl: \"importMedia.component.html\"\r\n})\r\nexport class ImportMediaComponent {\r\n @ViewChild(DxFileUploaderComponent)\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n value: any[] = [];\r\n model: Catalog[];\r\n uploadHeaders: any;\r\n pages: { id: number; title; template: string }[];\r\n txtFromLink: string;\r\n txtUpload: string;\r\n\r\n constructor(private modelService: ModelService,\r\n public translate: TranslateService,\r\n private oAuthService: OAuthService,\r\n private userIdleService: UserIdleService) {\r\n\r\n this.testLink = this.testLink.bind(this);\r\n this.startDownload = this.startDownload.bind(this);\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n this.onProgress = this.onProgress.bind(this);\r\n\r\n this.uploadHeaders = {\r\n CatalogId: this.modelService.catalogService.selectedCatalogId,\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n }\r\n this.txtLink = this.translate.instant(\"Bitte Link zu einer .zip Datei angeben\");\r\n this.txtDownloadStarted = this.translate.instant(\"Download wird gestartet\");\r\n this.txtUpload = this.translate.instant(\"Upload\");\r\n this.txtFromLink = this.translate.instant(\"Aus Link\");\r\n\r\n this.pages = [\r\n { id: 1, title: this.txtUpload, template: \"uploadTemplate\" },\r\n { id: 2, title: this.txtFromLink, template: \"linkTemplate\" },\r\n ];\r\n\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onProgress(e: {}) {\r\n this.userIdleService.stopWatching();\r\n this.userIdleService.startWatching();\r\n }\r\n\r\n onUploaded() {\r\n this.dxfileuploader.instance.reset();\r\n }\r\n\r\n fileUrl: string = \"\";\r\n fileUrlTest: boolean = false;\r\n fileUrlTestMessage: string = \"\";\r\n\r\n testLink() {\r\n this.fileUrlTest = false;\r\n var tmp = this.fileUrl.split(\"?\", 1);\r\n var link = tmp[0];\r\n link = link.replace(\"www.dropbox\", \"dl.dropbox\");\r\n this.fileUrl = link;\r\n\r\n //if (this.fileUrl.substr(-4,4) != \".zip\") {\r\n // this.fileUrlTestMessage = this.txtLink;\r\n // return;\r\n //}\r\n\r\n this.modelService.systemService.testUrl(this.fileUrl).subscribe((result: TestResult) => this.testLinkResult(result));\r\n }\r\n\r\n linkChanged(event = null) {\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n }\r\n\r\n testLinkResult(result: TestResult) {\r\n this.fileUrlTest = result.success;\r\n this.fileUrlTestMessage = result.message;\r\n }\r\n\r\n startDownload() {\r\n this.fileUrlTestMessage = this.txtDownloadStarted;\r\n this.modelService.systemService.mediaUrlImport(this.fileUrl, this.modelService.catalogService.catalog.id, this.modelService.catalogService.catalog.customerId).subscribe((result: TestResult) => this.downloadStarted(result));\r\n }\r\n\r\n downloadStarted(result: TestResult) {\r\n if (result.success) {\r\n this.fileUrl = \"\";\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n this.translate.get(\"Import als Job gestartet\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n ;\r\n } else {\r\n this.translate.get(\"Unbekannter Fehler\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n f: boolean[] = [false, false];\r\n\r\n utt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.f[id] = !this.f[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n txtLink: string;\r\n txtDownloadStarted: string;\r\n}\r\n","<np-dialog [popupWidth]=\"1400\"\r\n [popupHeight]=\"800\"\r\n [popupTitle]=\"('Export Einstellungen' | translate)\"\r\n [(popupVisible)]=\"visible\">\r\n\r\n <np-help-button>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=I_H6bf3kB98\"></np-help-option>\r\n </np-help-button>\r\n\r\n\r\n\r\n <div slot=\"content\" [ngStyle]=\"{'height': 'inherit'}\">\r\n <exportParameter [(config)]=\"config\"\r\n [catalogId]=\"this.modelService.catalogService.selectedCatalogId\"\r\n [ngStyle]=\"{'height': 'inherit'}\"\r\n class=\"d-flex flex-column\">\r\n <div header>\r\n <div class=\"dx-field\">\r\n <dx-select-box id=\"catalogsBox\"\r\n displayExpr=\"name\"\r\n label=\"{{ 'Export Konfigurationen' | translate }}\"\r\n valueExpr=\"id\"\r\n [dataSource]=\"configurations\"\r\n [value]=\"config?.id\"\r\n [searchEnabled]=\"false\"\r\n [showClearButton]=\"false\"\r\n (onSelectionChanged)=\"onConfigChanged($event)\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n <div *ngIf=\"data.isDefault\">\r\n {{ data.name }} (Standard)\r\n </div>\r\n <div *ngIf=\"!data.isDefault\">\r\n {{ data.name }}\r\n </div>\r\n </div>\r\n </dx-select-box>\r\n\r\n <dx-button (onClick)=\"showAddConfig()\" icon=\"plus\"></dx-button>\r\n <dx-button *ngIf=\"config.id\" (onClick)=\"showEditConfig()\" icon=\"edit\"></dx-button>\r\n <dx-button *ngIf=\"config.id\" (onClick)=\"updateConfig()\" icon=\"save\"></dx-button>\r\n <dx-button *ngIf=\"config.id\" (onClick)=\"deleteConfig()\" icon=\"trash\"></dx-button>\r\n </div>\r\n </div>\r\n\r\n <dx-button (onClick)=\"export()\" stylingMode=\"text\" type=\"default\" text=\"{{ 'Exportieren' | translate }}\"></dx-button>\r\n </exportParameter>\r\n </div>\r\n\r\n</np-dialog>\r\n\r\n\r\n<dx-popup [(visible)]=\"isPopupAddVisible\"\r\n [showTitle]=\"true\"\r\n [dragEnabled]=\"true\"\r\n title=\"Neue Export Konfiguration\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showCloseButton]=\"true\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Name:</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newConfigName\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Standard:</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"newConfigIsDefault\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <dx-button text=\"Erstellen\" (onClick)=\"addConfig()\"></dx-button>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup [(visible)]=\"isPopupEditVisible\"\r\n [showTitle]=\"true\"\r\n [dragEnabled]=\"true\"\r\n title=\"Export Konfiguration Editor\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showCloseButton]=\"true\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Name:</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"config.name\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Standard:</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"config.isDefault\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <dx-button text=\"Updaten\" (onClick)=\"updateConfig()\"></dx-button>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n","import { Component, ViewChild, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\nimport { DxTreeViewComponent, DxSelectBoxComponent } from \"devextreme-angular\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { FeatureSystemFilter } from \"../../../../Model/Dto/FeatureSystemFilter\";\r\nimport { PriceListFilter } from \"../../../../Model/Dto/PriceListFilter\";\r\nimport { TreeItem } from \"../../../../Model/Dto/TreeItem\";\r\nimport { Message } from \"../../../../Model/System/Message\";\r\nimport { ProductState } from \"../../../../Model/Catalog/ProductState\";\r\nimport { Template } from \"../../../../Model/Catalog/Template\";\r\nimport { TemplateItemTemplate } from \"../../../../Model/Catalog/TemplateItemTemplate\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { TemplateService } from \"../../../../Services/template.service\";\r\nimport { ExportConfigurationService } from \"../../../../Services/exportConfiguration.service\";\r\nimport { ExportParameter } from \"../../../../Model/exportParameter/ExportParameter\";\r\nimport { Subject } from \"rxjs\";\r\nimport { CatalogFilter } from \"../../../../Model/exportParameter/CatalogFilter\";\r\nimport { SearchByListParameter } from \"../../../../Model/Dto/SearchByListParameter\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { SystemService } from \"../../../../Services/system.service\";\r\n\r\n@Component({\r\n selector: \"export\",\r\n templateUrl: \"exportCatalog.component.html\",\r\n styleUrls: [\"exportCatalog.component.css\"]\r\n})\r\nexport class ExportCatalogComponent implements OnInit {\r\n @ViewChild(\"treeViewRefUdx\", { static: false }) treeViewUdx: DxTreeViewComponent;\r\n @ViewChild(\"treeViewCategoryFilter\", { static: false }) treeViewCategoryFilter: DxTreeViewComponent;\r\n\r\n @Input()\r\n public set visible(val: boolean) {\r\n if (this._visible !== val) {\r\n this._visible = val;\r\n this.visibleChange.emit(val);\r\n }\r\n }\r\n public get visible() {\r\n return this._visible;\r\n }\r\n\r\n @Output() public visibleChange = new EventEmitter<boolean>();\r\n\r\n private _visible: boolean = false;\r\n public config: ExportParameter;\r\n\r\n configurations: ExportParameter[] = [];\r\n exportParameterChanged: EventEmitter<object> = new EventEmitter<object>();\r\n\r\n isPopupEditVisible = false;\r\n isPopupAddVisible = false;\r\n\r\n configName = \"\";\r\n configIsDefault = false;\r\n\r\n newConfigName = \"\";\r\n newConfigIsDefault = false;\r\n\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService,\r\n public exportConfigurationService: ExportConfigurationService, private systemService: SystemService) {\r\n this.exportNordwestClicked = this.exportNordwestClicked.bind(this);\r\n this.parameterChanged = this.parameterChanged.bind(this);\r\n this.export = this.export.bind(this);\r\n\r\n if (modelService.catalogService.selectedCatalogId == null)\r\n modelService.catalogService.selectedCatalogId = modelService.catalogService.catalog.id;\r\n\r\n if (modelService.loginService.currentUser.customerId == null)\r\n modelService.loginService.currentUser.customerId = modelService.loginService.currentCustomer.id;\r\n\r\n this.config = new ExportParameter();\r\n this.config.customerId = modelService.loginService.currentUser.customerId;\r\n this.config.catalogId = modelService.catalogService.selectedCatalogId;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.exportConfigurationService.getAll(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.configurations = result;\r\n let defaultConfig = this.configurations.find(x => x.isDefault);\r\n if (defaultConfig) {\r\n this.loadConfig(defaultConfig.id);\r\n }\r\n });\r\n }\r\n\r\n public loadConfig(id) {\r\n this.exportConfigurationService.get(id, this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.config = Object.assign(new ExportParameter(), result);\r\n this.config.catalogId = this.modelService.catalogService.catalog?.id;\r\n this.config.customerId = this.modelService.loginService.currentUser.customerId;\r\n this.setEmptyCatalogFilters();\r\n this.exportParameterChanged.emit();\r\n });\r\n }\r\n\r\n setEmptyCatalogFilters() {\r\n this.config.categoryFilter ??= new CatalogFilter([]);\r\n this.config.productStatesFilter ??= new CatalogFilter([]);\r\n this.config.udxsFilter ??= new CatalogFilter([]);\r\n this.config.productStatesFilter ??= new CatalogFilter([]);\r\n this.config.manufacturerFilter ??= new CatalogFilter([]);\r\n this.config.supplierFilter ??= new CatalogFilter([]);\r\n this.config.dateFilter ??= new CatalogFilter(new Date());\r\n this.config.searchByListParameter ??= new CatalogFilter(new SearchByListParameter());\r\n this.config.featureSystemFilter ??= new CatalogFilter([]);\r\n this.config.featureSystemContentFilter ??= new CatalogFilter([]);\r\n this.config.priceListsContentFilter ??= new CatalogFilter([]);\r\n this.config.udxsContentFilter ??= new CatalogFilter([]);\r\n }\r\n\r\n\r\n\r\n\r\n showAddConfig() {\r\n this.newConfigName = \"\";\r\n this.newConfigIsDefault = false;\r\n this.isPopupAddVisible = true;\r\n }\r\n\r\n showEditConfig() {\r\n this.isPopupEditVisible = true;\r\n }\r\n\r\n\r\n\r\n onConfigChanged(e) {\r\n if (e.selectedItem && e.selectedItem.id != this.config?.id)\r\n this.loadConfig(e.selectedItem.id);\r\n }\r\n\r\n parameterChanged(newParam) {\r\n this.config = newParam;\r\n }\r\n\r\n\r\n\r\n addConfig() {\r\n if (this.newConfigName == \"\") {\r\n this.modelService.systemService.notifyWarning(\"Konfiguration muss einen Namen haben\");\r\n return;\r\n }\r\n\r\n this.config = new ExportParameter();\r\n this.config.customerId = this.modelService.loginService.currentCustomer.id;\r\n this.config.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n this.config.format = \"BME\";\r\n this.config.version = \"NEXTCAT\";\r\n this.config.name = this.newConfigName;\r\n this.config.isDefault = this.newConfigIsDefault;\r\n this.config.includeUdxs = true;\r\n this.updateConfig();\r\n }\r\n\r\n updateConfig() {\r\n if (this.config.name == \"\") {\r\n this.modelService.systemService.notifyWarning(\"Konfiguration muss einen Namen haben\");\r\n return;\r\n }\r\n\r\n if (this.templateService.template != null) {\r\n this.config.templateId = this.templateService.template.id;\r\n } else {\r\n\r\n this.config.templateId = null;\r\n }\r\n\r\n this.exportConfigurationService.update(this.config, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (exportParameter) => {\r\n this.config = Object.assign(new ExportParameter(), exportParameter);\r\n this.isPopupAddVisible = false;\r\n this.isPopupEditVisible = false;\r\n this.exportConfigurationService.getAll(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.configurations = result;\r\n });\r\n },\r\n error => { this.modelService.systemService.notifyWarning(error); }\r\n );\r\n }\r\n\r\n deleteConfig() {\r\n this.exportConfigurationService.delete(this.config.id, this.modelService.loginService.currentCustomer.id).subscribe(\r\n () => {\r\n this.exportConfigurationService.getAll(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.config = new ExportParameter();\r\n this.configurations = result;\r\n this.isPopupAddVisible = false;\r\n this.isPopupEditVisible = false;\r\n\r\n });\r\n },\r\n error => { this.modelService.systemService.notifyWarning(error); }\r\n );\r\n }\r\n\r\n export() {\r\n this.config.customerId = this.modelService.loginService.currentCustomer.id;\r\n this.config.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n\r\n if (this.config.version == \"TEMPLATE\" || this.config.format == \"TEMPLATE\") {\r\n if (this.templateService.template != null) {\r\n this.config.templateId = this.templateService.template.id;\r\n } else {\r\n this.config.templateId = null;\r\n this.systemService.notifyInfo(this.translate.instant(\"Bitte wählen Sie ein Template aus.\"));\r\n return;\r\n }\r\n }\r\n\r\n if (this.config.version == \"NORDWEST\") {\r\n this.exportNordwestClicked();\r\n return;\r\n }\r\n\r\n if (this.config.version == \"SMARTSTORE\") {\r\n this.exportSmartStoreClicked();\r\n return;\r\n }\r\n\r\n if (this.config.format == \"NEWCATALOG\") {\r\n switch (this.config.version) {\r\n case \"FIELDLIST\":\r\n case \"TEMPLATE\":\r\n this.exportNewCatalogExcel();\r\n break;\r\n case \"BME\":\r\n this.exportNewCatalog();\r\n break;\r\n }\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.exportVisible = false;\r\n this.modelService.catalogService.createExportJob(this.config).subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n }\r\n\r\n exportSmartStoreClicked() {\r\n this.config.format = \"SMARTSTORE\";\r\n this.modelService.catalogService.exportVisible = false;\r\n this.modelService.catalogService.createSmartStoreExportJob(this.config).subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n }\r\n\r\n exportNordwestClicked() {\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Sollen die Daten wirklich zum NORDWEST gesendet werden?\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n if (!this.config.includeMime) {\r\n this.translate.get(\"Sollen die Daten wirklich OHNE MEDIEN zum NORDWEST gesendet werden?\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n\r\n\r\n }\r\n this.translate.get(\"Wirklich senden?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n let myDialog: any;\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.modelService.catalogService.exportVisible = false;\r\n this.modelService.catalogService.createExportJob(this.config).subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n exportNewCatalog() {\r\n this.modelService.catalogService.exportVisible = false;\r\n this.modelService.catalogService.createNewCatalogExportJob(this.config).subscribe(\r\n () => {\r\n this.modelService.catalogService.jobStarted = 1;\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n }\r\n\r\n exportNewCatalogExcel() {\r\n this.modelService.catalogService.exportVisible = false;\r\n\r\n if (this.config.version == \"TEMPLATE\") {\r\n if (this.templateService.template == null) {\r\n let message = this.translate.instant(\"Bitte ein Template auswählen\") + \".\";\r\n this.modelService.systemService.notify(new Message(message, \"info\"), 3000);\r\n return;\r\n }\r\n this.config.templateId = this.templateService.template.id;\r\n }\r\n\r\n this.modelService.catalogService.createNewCatalogExportJob(this.config).subscribe(\r\n () => {\r\n this.modelService.catalogService.jobStarted = 1;\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Der Export wird als Job ausgeführt\")));\r\n });\r\n }\r\n}\r\n","<np-dialog [popupWidth]=\"1200\" [popupHeight]=\"800\" [popupTitle]=\"'Feldkonfiguration' | translate\"\r\n [(popupVisible)]=\"visible\">\r\n <div slot=\"content\" class=\"h-100 w-100\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\" showScrollbar=\"always\">\r\n <dx-tab-panel [dataSource]=\"excelPages\" [(selectedIndex)]=\"excelIndex\">\r\n <!--EXCEL FIELDS-->\r\n <div *dxTemplate=\"let company of 'excelFieldsTemplate'\"\r\n class=\"{{ fullScreen ? 'exportExcelTabFullScreen': 'exportExcelTab' }}\">\r\n <dx-tile-view *ngIf=\"modelService.categoryService.fields.length > 0\" class=\"dx-tile-content excelFields\"\r\n [baseItemWidth]=\"285\" direction=\"vertical\" width=\"100%\" height=\"100%\" baseItemHeight=\"15\">\r\n <dxi-item *ngFor=\"let group of groups\" [widthRatio]=\"1\" [heightRatio]=\"getHeightRatio(group)\">\r\n <div class=\"p-1 pb-3\">\r\n <dx-check-box (value)=\"false\" (onValueChanged)=\"changedField($event,group)\"\r\n style=\"float: left; padding-right: 10px;\">\r\n </dx-check-box>\r\n <b>{{ group }}</b>\r\n </div>\r\n <div *ngFor=\"let field of fields\">\r\n <div *ngIf=\"field.group==group\" style=\"height: 35px\">\r\n <div style=\"width: 40px; float: left; padding-left: 10px;\">\r\n <dx-check-box [readOnly]=\"readOnly(field.field)\" [(value)]=\"field.active\">\r\n </dx-check-box>\r\n </div>\r\n <label class=\"exportLabel\">{{ field.field }}</label>\r\n <div style=\"width: calc(100% - 30px); margin-left: 40px;\" class=\"exportText\">{{ field.field |\r\n translate }}</div>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n </dx-tile-view>\r\n </div>\r\n\r\n\r\n\r\n <div *dxTemplate=\"let company of 'miscTemplate'\" class=\"{{fullScreen ? 'exportTabFullScreen' : 'exportTab'}}\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Medien exportieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportMedia></dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"exportMedia\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Original verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=exportMediaOriginalSize></dx-switch>\r\n </div>\r\n </div>\r\n <!--SQUARE IMAGE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quadratische Ansicht' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageSquared ? 'placeLabelSmall' : '' }}\">SQUARE IMAGE</label>\r\n <dx-switch [(value)]=\"imageSquared\"></dx-switch>\r\n </div>\r\n </div>\r\n <!--BACKGROUND COLOR-->\r\n <div class=\"dx-field\" *ngIf=\"imageSquared\">\r\n <div class=\"dx-field-label\">{{ 'Hintergrundfarbe wählen' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageBgColor ? 'placeLabelSmall' : '' }}\">BACKGROUND\r\n COLOR</label>\r\n <dx-color-box [(value)]=\"imageBgColor\"></dx-color-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!exportMediaOriginalSize\">\r\n <!--MAX RESOLUTION-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Seitenlänge' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ maxResolution>0 ? 'placeLabelSmall' : '' }}\">MAX RESOLUTION</label>\r\n <dx-number-box [min]=\"16\" [max]=\"8192\" [(value)]=\"maxResolution\"\r\n [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n </div>\r\n <!--FILE TYPE-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Dateityp' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageType?.length>0 ? 'placeLabelSmall' : '' }}\">FILE TYPE</label>\r\n <dx-select-box [(value)]=\"imageType\" [items]=\"imageTypes\" placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--EXCEL TEMPLATES -- ENTFERNT-->\r\n </dx-tab-panel>\r\n <np-dialog-button slot=\"toolbar\" toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Excel exportieren' | translate, onClick: exportExcel }\"></np-dialog-button>\r\n <np-dialog-button *ngIf=\"modelService.loginService.hasAddonCSV\" slot=\"toolbar\" toolbar=\"bottom\" location=\"after\"\r\n widget=\"dxButton\" [options]=\"{ text: 'CSV exportieren' | translate, onClick: exportCSV }\"></np-dialog-button>\r\n <np-dialog-button slot=\"toolbar\" toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ icon: 'revert', onClick: reset }\"></np-dialog-button>\r\n </dx-scroll-view>\r\n </div>\r\n</np-dialog>","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { Message } from \"../../../../Model/System/Message\";\r\nimport { TemplateItemTemplate } from \"../../../../Model/Catalog/TemplateItemTemplate\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { ExportParameter } from \"../../../../Model/exportParameter/ExportParameter\";\r\n\r\n@Component({\r\n selector: \"exportCategory\",\r\n templateUrl: \"exportCategory.component.html\",\r\n styleUrls: [\"exportCategory.component.css\"]\r\n})\r\nexport class ExportCategoryComponent implements OnInit {\r\n\r\n private _visible: boolean = false;\r\n\r\n public get visible() {\r\n return this._visible;\r\n }\r\n\r\n @Input()\r\n public set visible(val: boolean) {\r\n if (this._visible !== val) {\r\n this._visible = val;\r\n this.visibleChange.emit(val);\r\n } \r\n }\r\n\r\n @Output() public visibleChange = new EventEmitter<boolean>();\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.exportExcel = this.exportExcel.bind(this);\r\n this.exportCSV = this.exportCSV.bind(this);\r\n this.reset = this.reset.bind(this);\r\n }\r\n\r\n public reset() {\r\n this.filterReset();\r\n this.templateReset();\r\n }\r\n\r\n\r\n\r\n //*******************************************************************************************************************************************************************//\r\n //* *//\r\n //* Filter *//\r\n //* *//\r\n //*******************************************************************************************************************************************************************//\r\n\r\n exportMedia: boolean;\r\n exportMediaOriginalSize: boolean = true;\r\n\r\n imageTypes: string[] = [\"jpg\", \"png\"];\r\n imageSquared = false;\r\n imageBgColor = '#FFFFFF';\r\n imageType: string = \"jpg\";\r\n maxResolution: number = 1920;\r\n\r\n txtSonstiges: string;\r\n\r\n private filterReset() {\r\n this.exportMedia = false;\r\n }\r\n\r\n private model: ExportParameter;\r\n\r\n get listsAreLoaded(): boolean {\r\n return true;\r\n }\r\n\r\n txtExportAlsJob: string;\r\n txtFelder: string;\r\n txtSeo: string;\r\n\r\n translateTexts() {\r\n this.translate.get(\"Sonstiges\")\r\n .subscribe((text: string) => {\r\n this.txtSonstiges = text;\r\n });\r\n this.translate.get(\"Der Export wird als Job ausgeführt\")\r\n .subscribe((text: string) => {\r\n this.txtExportAlsJob = text;\r\n });\r\n this.translate.get(\"Felder\")\r\n .subscribe((text: string) => {\r\n this.txtFelder = text;\r\n });\r\n this.translate.get(\"Seo\")\r\n .subscribe((text: string) => {\r\n this.txtSeo = text;\r\n });\r\n }\r\n\r\n private GetExportParameter(): ExportParameter {\r\n let result = new ExportParameter();\r\n result.catalogId = this.modelService.catalogService.selectedCatalogId;\r\n result.customerId = this.modelService.loginService.currentUser.customerId;\r\n result.format = \"Bme\";\r\n\r\n result.includeMime = this.exportMedia;\r\n result.orignialSize = this.exportMediaOriginalSize;\r\n result.maxResolution = this.maxResolution;\r\n result.imageType = this.imageType;\r\n result.imageSquared = this.imageSquared;\r\n result.imageBgColor = this.imageBgColor;\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n //*******************************************************************************************************************************************************************//\r\n //* *//\r\n //* EXCEL *//\r\n //* *//\r\n //*******************************************************************************************************************************************************************//\r\n\r\n public templateReset() {\r\n this.modelService.categoryService.loadFields();\r\n this.initTabView();\r\n\r\n // TODO: implement for category\r\n //this.groups = this.modelService.updateTemplateService.GetFieldGroups();\r\n //let result = [\"Basic\", \"Logistic\", \"Features\", \"Price\", \"Order\", \"Mimes\", \"Misc\"];\r\n this.groups = [\"Basic\", \"Mimes\"];\r\n if (this.modelService.loginService.hasAddonSEO) {\r\n this.groups.push(\"Seo\");\r\n }\r\n\r\n }\r\n\r\n public excelIndex: number = 0;\r\n\r\n excelPages: { id: number; title: string; template: string }[] = [];\r\n\r\n public initTabView() {\r\n this.excelPages = [\r\n { id: 0, title: this.txtFelder, template: \"excelFieldsTemplate\" },\r\n { id: 1, title: this.txtSonstiges, template: \"miscTemplate\" }\r\n ];\r\n \r\n\r\n }\r\n\r\n groups: string[] = [];\r\n\r\n changedField(event, group) {\r\n for (var field of this.fields) {\r\n if (field.group == group) {\r\n if (field.field != \"GROUP_ID\") {\r\n field.active = event.value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n readOnly(field) {\r\n if (field == \"GROUP_ID\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get fields() {\r\n return this.modelService.categoryService.fields;\r\n }\r\n\r\n getTemplateItemTemplate(name: string) {\r\n var element = this.modelService.categoryService.fields.filter(item => item.field == name).shift();\r\n return element;\r\n }\r\n\r\n exportExcel() {\r\n this.model = this.GetExportParameter();\r\n this.model.format = \"Excel\";\r\n this.model.fields = [];\r\n this.fields.forEach((field: TemplateItemTemplate) => {\r\n if (field.active) {\r\n this.model.fields.push(field.field);\r\n }\r\n });\r\n this.startTableExport();\r\n }\r\n\r\n exportCSV() {\r\n this.model = this.GetExportParameter();\r\n this.model.format = \"csv\";\r\n this.model.fields = [];\r\n this.fields.forEach((field: TemplateItemTemplate) => {\r\n if (field.active) {\r\n this.model.fields.push(field.field);\r\n }\r\n });\r\n this.startTableExport();\r\n }\r\n\r\n startTableExport() {\r\n this.modelService.categoryService.categoryExportVisible = false;\r\n this.modelService.categoryService.createExportJob(this.model)\r\n .subscribe(\r\n () => {\r\n this.modelService.systemService.notify(new Message(this.txtExportAlsJob));\r\n this.reset();\r\n });\r\n }\r\n\r\n public getHeightRatio(group): number {\r\n var list = this.modelService.categoryService.fields.filter(item => item.group == group);\r\n return list.length + 2;\r\n }\r\n\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n get fullScreen() {\r\n return this.modelService.categoryService.viewService.fullScreen;\r\n }\r\n}\r\n","<dx-tab-panel #tabPanel\r\n [height]=\"260\"\r\n [dataSource]=\"pages\"\r\n [selectedIndex]=\"0\"\r\n [loop]=\"false\"\r\n [animationEnabled]=\"true\"\r\n [swipeEnabled]=\"true\">\r\n <div *dxTemplate=\"let temp of 'uploadTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <dx-file-uploader #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/job/CreateCategoriesImportFromChunksJob\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n [accept]=\"fileTypes\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\"\r\n (onUploaded)=\"onUploaded()\"\r\n invalidFileExtensionMessage=\"{{ 'Bitte nur zip xlsx oder csv Dateien auswählen' | translate }}.\"\r\n invalidMaxFileSizeMessage=\"{{ 'Die Datei ist leider zu groß' | translate }}\"\r\n invalidMinFileSizeMessage=\"{{ 'Die Datei ist leider zu klein' | translate }}\"\r\n selectButtonText=\"{{ 'Datei auswählen' | translate }}\"\r\n labelText=\"{{ 'oder Datei hier ablegen' | translate }}\"\r\n uploadButtonText=\"{{ 'Upload' | translate }}\"\r\n uploadedMessage=\"{{ 'Hochgeladen' | translate }}\"\r\n uploadFailedMessage=\"{{ 'Hochladen fehlgeschlagen' | translate }}\">\r\n </dx-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let temp of 'linkTemplate'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"{{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }} w-100\" id=\"uc1\" (mouseenter)=\"uct(1)\" (mouseleave)=\"uct(1)\">\r\n <label class=\"placeLabel {{ fileUrl?.length>0 ? 'placeLabelSmall' : '' }}\">CATEGORIES_URL</label>\r\n <dx-text-box [(value)]=\"fileUrl\" [showClearButton]=\"true\" (onValueChanged)=\"linkChanged($event)\"></dx-text-box>\r\n </div>\r\n\r\n <dx-tooltip target=\"#uc1\" class=\"toolTip toolTipField\" [(visible)]=\"c[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Hier können Sie einen Link zu einer Katalogdatei eintragen, um diesen zu importieren' | translate }}\r\n {{ 'Es werden zum Beispiel Links zu Dateien in einer Dropbox unterstützt oder Links, welche aus anderen Systemen erstellt wurden' | translate }}.\r\n {{ 'Bsp' | translate }}.: https://www.dropbox.com/s/h5pldo0u8h7qkje/mediaFile.zip?dl=0\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"fileUrl.length>0\">\r\n <div *ngIf=\"!fileUrlTest\">\r\n <div style=\"color: red;\">\r\n {{fileUrlTestMessage}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <dx-toolbar *ngIf=\"fileUrl.length>0\">\r\n <dxi-item *ngIf=\"!fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Link testen' | translate, onClick: testLink }\"></dxi-item>\r\n <dxi-item *ngIf=\"fileUrlTest\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Kategorien laden' | translate, onClick: startDownload }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, ViewChild } from \"@angular/core\";\r\n//import { Catalog } from \"../../../Model/Catalog/catalog\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { TestResult } from \"../../../../Model/Dto/TestResult\";\r\nimport { Message } from \"../../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"importCategory\",\r\n templateUrl: \"importCategory.component.html\"\r\n})\r\nexport class ImportCategoryComponent {\r\n @ViewChild(DxFileUploaderComponent)\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n //value: any[] = [];\r\n //model: Catalog[];\r\n fileTypes: string;\r\n uploadHeaders: any;\r\n pages: { id: number; title; template: string }[];\r\n txtFromLink: string;\r\n txtUpload: string;\r\n //productRanges: string[];\r\n //productRange: string;\r\n //keepRootCategory: boolean = false;\r\n constructor(public modelService: ModelService, public translate: TranslateService, private oAuthService: OAuthService) {\r\n\r\n this.testLink = this.testLink.bind(this);\r\n this.startDownload = this.startDownload.bind(this);\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.fileTypes = \".zip,.xlsx,.csv\";//\".xml,.zip,.xlsx,.csv\";\r\n this.translate.get(\"Upload\")\r\n .subscribe((text: string) => {\r\n this.txtUpload = text;\r\n });\r\n this.translate.get(\"Aus Link\")\r\n .subscribe((text: string) => {\r\n this.txtFromLink = text;\r\n });\r\n this.pages = [\r\n { id: 1, title: this.txtUpload, template: \"uploadTemplate\" },\r\n { id: 2, title: this.txtFromLink, template: \"linkTemplate\" },\r\n ];\r\n\r\n if (this.modelService.catalogService.catalog) {\r\n this.uploadHeaders = {\r\n CatalogId: this.modelService.catalogService.selectedCatalogId,\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n }\r\n }\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded() {\r\n //this.modelService.catalogService.jobStarted = 1; // brauchen wir nicht\r\n this.dxfileuploader.instance.reset();\r\n if (this.modelService.categoryService.categoryImportVisible) {\r\n this.translate.get(\"Kategorien hochgeladen\")\r\n .subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n }\r\n }\r\n\r\n fileUrl: string = \"\";\r\n fileUrlTest: boolean = false;\r\n fileUrlTestMessage: string = \"\";\r\n\r\n testLink() {\r\n this.fileUrlTest = false;\r\n var tmp = this.fileUrl.split(\"?\", 1);\r\n var link = tmp[0];\r\n link = link.replace(\"www.dropbox\", \"dl.dropbox\");\r\n this.fileUrl = link;\r\n\r\n //if (!(this.fileUrl.substr(-4, 4) == \".zip\" || this.fileUrl.substr(-4, 4) == \".xml\" || this.fileUrl.substr(-5, 5) == \".xlsx\" || this.fileUrl.substr(-4, 4) == \".csv\")) {\r\n if (!(this.fileUrl.substr(-4, 4) == \".zip\" || this.fileUrl.substr(-5, 5) == \".xlsx\" || this.fileUrl.substr(-4, 4) == \".csv\")) {\r\n //this.translate.get(\"Bitte Link zu einer .xml .zip .xlsx oder .csv Datei angeben\")\r\n this.translate.get(\"Bitte Link zu einer .zip .xlsx oder .csv Datei angeben\")\r\n .subscribe((text: string) => {\r\n this.fileUrlTestMessage = text;\r\n });\r\n return;\r\n }\r\n\r\n this.modelService.systemService.testUrl(this.fileUrl)\r\n .subscribe((result: TestResult) => {\r\n this.testLinkResult(result)\r\n });\r\n }\r\n\r\n linkChanged(event = null) {\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n }\r\n\r\n testLinkResult(result: TestResult) {\r\n this.fileUrlTest = result.success;\r\n this.fileUrlTestMessage = result.message;\r\n }\r\n\r\n startDownload() {\r\n this.modelService.categoryService.categoryImportVisible = false;\r\n this.modelService.systemService.categoryUrlImport(this.fileUrl, this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentCustomer.id)\r\n .subscribe((result: TestResult) => {\r\n this.downloadStarted(result);\r\n });\r\n }\r\n\r\n downloadStarted(result: TestResult) {\r\n if (result.success) {\r\n this.fileUrl = \"\";\r\n this.fileUrlTest = false;\r\n this.fileUrlTestMessage = \"\";\r\n\r\n this.translate.get(\"Import als Job gestartet\")\r\n .subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text));\r\n });\r\n\r\n //this.modelService.catalogService.jobStarted = 1; // brauchen wir nicht\r\n } else {\r\n this.translate.get(\"Unbekannter Fehler\")\r\n .subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n }\r\n }\r\n\r\n c: boolean[] = [false, false];\r\n\r\n uct(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.c[id] = !this.c[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n}\r\n","<div class=\"d-flex flex-column w-100\">\r\n <!--Header-->\r\n <div *ngIf=\"model\" class=\"header d-flex flex-row px-3 pt-1 w-100 align-items-center\">\r\n <div class=\"p-2\">\r\n <span *ngIf=\"!catalogMainImage\" class=\"glyphicon glyphicon-picture\"></span>\r\n <img *ngIf=\"catalogMainImage\" src=\"{{catalogMainImage}}\" />\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <h5>{{model.catalogName}}</h5>\r\n <h6>{{model.catalogVersion ? 'Version: ' + model.catalogVersion : ''}} vom {{model.date | date : 'dd.MM.yyyy'}}</h6>\r\n </div>\r\n <div *ngIf=\"modelService.loginService.hasAddonVALIDATION\" class=\"p-2\" id=\"tt7\" (mouseenter)=\"ttt(7)\" (mouseleave)=\"ttt(7)\">\r\n <dx-bar-gauge id=\"gauge\"\r\n [values]=\"[0,0,0]\"\r\n [startValue]=\"0\"\r\n [endValue]=\"100\"\r\n [palette]=\"['#E59D1A', '#10907E', '#1E4B98']\">\r\n <dxo-label [visible]=\"false\"></dxo-label>\r\n </dx-bar-gauge>\r\n <dx-tooltip target=\"#tt7\" [(visible)]=\"v[7]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Validierungsinformation zum Katalog' | translate }}.\r\n {{ 'Hier wird eine Übersicht zum Katalog berechnet' | translate }}.\r\n </p>\r\n <p>\r\n <span class=\"dx-switch-handle color1\" style=\"margin-right:10px;\"></span> {{ 'Informationen zu Produktinformationen' | translate }}\r\n </p><p>\r\n <span class=\"dx-switch-handle color2\" style=\"margin-right:10px;\"></span> {{ 'Informationen zu Produktmerkmalen' | translate }}\r\n </p><p>\r\n <span class=\"dx-switch-handle color3\" style=\"margin-right:10px;\"></span> {{ 'Informationen zu Produktmedien' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n </div>\r\n\r\n <!--Details-->\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"renderMakrosButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Makros' | translate, onClick: showUserActions }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderMediaImportButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Medien importieren' | translate, onClick: showImportMedia }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderReimportButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Reimport' | translate, onClick: showImportCatalog }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderExportButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Exportieren' | translate, onClick: showExport }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderTranslateButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Übersetzen' | translate, onClick: showTranslate }\"></dxi-item>\r\n <!-- Category Export Buttons -->\r\n <dxi-item *ngIf=\"renderCategoryExportButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Kategorien exportieren' | translate, onClick: showCategoryExport }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderCategoryImportButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Kategorien importieren' | translate, onClick: showCategoryImport }\"></dxi-item>\r\n <dxi-item *ngIf=\"renderMassDataChangeButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'MassenDatenAenderung' | translate, onClick: openMassDataChange }\"></dxi-item>\r\n </dx-toolbar>\r\n <div class=\"p-2\">\r\n <dx-validation-group (initialized)=\"validateCatalog\" id=\"catalogValidationGroup\">\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" [swipeEnabled]=\"false\">\r\n\r\n <!--INFOS-->\r\n <div *dxTemplate=\"let company of 'katalogTemplate'\">\r\n <div class=\"dx-fieldset mainInfos\" *ngIf=\"model\">\r\n\r\n <!--Katalogname-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(0)\" (mouseleave)=\"ttt(0)\">{{ 'Katalogname' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt0\">\r\n <label class=\"placeLabel {{ model.catalogName?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_NAME</label>\r\n <dx-text-box id=\"catalogName\" [readOnly]=\"readOnly('catalogName')\" [(value)]=\"model.catalogName\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\">\r\n <dx-validator validationGroup=\"catalogValidationGroup\">\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie einen Katalognamen an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#tt0\" class=\"toolTip toolTipField\" [(visible)]=\"v[0]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Der Katalogname wird in der Katalogübersicht angezeigt' | translate }}.\r\n </p>\r\n <p>\r\n {{ 'Der Katalogname gibt bei nexMart die oberste Kategorie an' | translate }}.\r\n </p>\r\n <p>\r\n {{ 'Bsp.: Herbst/Winter' | translate }}2005/2006\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Katalog Version-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(1)\" (mouseleave)=\"ttt(1)\">{{ 'Katalog-Version' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt1\">\r\n <label class=\"placeLabel {{ model.catalogVersion?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_VERSION</label>\r\n <dx-text-box id=\"catalogVersion\" [readOnly]=\"readOnly('catalogVersion')\" [(value)]=\"model.catalogVersion\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt1\" class=\"toolTip toolTipField\" [(visible)]=\"v[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Die Katalogversion wird in der Katalogübersicht angezeigt' | translate }}.\r\n </p>\r\n <p>\r\n {{ 'Format: “MajorVersion“' | translate }}.\r\n {{ '“MinorVersion“ (maximal jedoch ' | translate }}xxx.yyy)\r\n </p>\r\n <p>\r\n {{ 'Beispiel' | translate }}:<br />\r\n 001.120<br />\r\n 7.3\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Gruppierung-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(2)\" (mouseleave)=\"ttt(2)\">{{ 'Gruppierung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt2\">\r\n <label class=\"placeLabel {{ model.pimGroup?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_GROUP</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"modelService.catalogService.catalogGroupList\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n valueChangeEvent=\"blur\"\r\n (onValueChanged)=\"updateCatalogGroup()\"\r\n [(value)]=\"model.pimGroup\"\r\n [readOnly]=\"readOnly('catalogGroup')\">\r\n </dx-autocomplete>\r\n </div>\r\n <dx-tooltip target=\"#tt2\" class=\"toolTip toolTipField\" [(visible)]=\"v[2]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Nach der Gruppe wird in der Katalogübersicht sortiert' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Katalog ID-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(3)\" (mouseleave)=\"ttt(3)\">{{ 'Katalog-ID' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt3\">\r\n <label class=\"placeLabel {{ model.catalogId?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_ID</label>\r\n <dx-text-box id=\"catalogId\" [readOnly]=\"readOnly('catalogId')\" [(value)]=\"model.catalogId\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogIdUpdate($event)\">\r\n <dx-validator validationGroup=\"catalogIdValidationGroup\">\r\n <dxi-validation-rule type=\"custom\" message=\"{{ 'Es existiert mindestens ein Katalog mit der gleichen Id!' | translate }}\" [validationCallback]=\"validateCatalogId\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt3\" class=\"toolTip toolTipField\" [(visible)]=\"v[3]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Eindeutiger Identifikator des Kataloges; dieser wird normalerweise vom Lieferanten bei der ersten Katalogerstellung vergeben und verändert sich über den gesamten Lebenszyklus des Kataloges nicht' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!-- Katalog Status -->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Katalogstatus' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-tag-box [(value)]=\"model.catalogState\"\r\n [items]=\"catalogStates\"\r\n [acceptCustomValue]=\"true\"\r\n (onValueChanged)=\"updateState($event, 'CATALOG_STATUS')\"\r\n [readOnly]=\"readOnly('catalogState')\"\r\n noDataText=\"\"\r\n placeholder=\"\">\r\n <!-- <dx-validator *ngIf=\"!templateView\" validationGroup=\"catalogValidationGroup\">\r\n <dxi-validation-rule type=\"custom\" [validationCallback]=\"validationService.validateStatus\"></dxi-validation-rule>\r\n </dx-validator> -->\r\n </dx-tag-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\" *ngIf=\"!model.isVirtual\">\r\n <div class=\"dx-field-label\">{{ 'Ist Masterkatalog' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"model.isActivId\" [readOnly]=\"readOnly('catalogVersion')\" switchedOffText=\"{{ 'Ja' | translate }}\" (onValueChanged)=\"catalogIdUpdate($event)\" switchedOnText=\"{{ 'Nein' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <!--Katalog Object ID-->\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.isAdmin && modelService.loginService.hasAddonDEVELOPMENT\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Katalog-Object-ID' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <dx-text-box [value]=\"model.id\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--Währung-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(4)\" (mouseleave)=\"ttt(4)\">{{ 'Währungen' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt4\">\r\n <label class=\"placeLabel {{ model?.currency?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_CURRENCY</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"currencys\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.currency\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [readOnly]=\"readOnly('catalogPriceUnit')\">\r\n </dx-autocomplete>\r\n </div>\r\n <dx-tooltip target=\"#tt4\" class=\"toolTip toolTipField\" [(visible)]=\"v[4]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Ein Feld aus dem BMEcat das die Währung des Katalogs als Währungscode ISO 4217 angibt (EUR)' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Datum-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(5)\" (mouseleave)=\"ttt(5)\">{{ 'Datum' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt5\">\r\n <label class=\"placeLabel {{ model.date?.length>0 ? 'placeLabelSmall' : '' }}\">CATALOG_DATE</label>\r\n <dx-date-box id=\"date\" [readOnly]=\"readOnly('catalogDate')\" [(value)]=\"model.date\" displayFormat=\"dd.MM.yyyy\" type=\"date\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-date-box>\r\n </div>\r\n <dx-tooltip target=\"#tt5\" class=\"toolTip toolTipField\" [(visible)]=\"v[5]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Ein Feld aus dem BMEcat' | translate }}.\r\n {{ 'Es gibt an, wann der Katalog veröffentlicht wurde' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Länder-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(6)\" (mouseleave)=\"ttt(6)\">{{ 'Länder' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt6\">\r\n <label class=\"placeLabel {{ model?.territories?.length>0 ? 'placeLabelSmall' : '' }}\">TERRITORIES</label>\r\n <dx-tag-box [(value)]=\"model.territories\"\r\n [items]=\"territories\"\r\n placeholder=\"\"\r\n [acceptCustomValue]=\"true\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [readOnly]=\"readOnly('catalogCountry')\">\r\n </dx-tag-box>\r\n </div>\r\n <dx-tooltip target=\"#tt6\" class=\"toolTip toolTipField\" [(visible)]=\"v[6]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Angabe eines Territoriums (Region, Land, Staat, Kontinent) kodiert nach ISO 3166 (DE, EU)' | translate }}\r\n {{ 'Das Element legt hier fest, in welchen Territorien die Preise gültig sind und damit wo die Produkte des Produktkataloges verfügbar sind' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Language-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(13)\" (mouseleave)=\"ttt(13)\">{{ 'Sprache' | translate }}</div>\r\n <div class=\"dx-field-value\" id=\"tt13\">\r\n <dx-autocomplete [dataSource]=\"modelService.loginService.languageFlags\"\r\n displayExpr=\"text\"\r\n valueExpr=\"code\"\r\n [(value)]=\"model.language\"\r\n fieldTemplate=\"field\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [readOnly]=\"readOnly('catalogLanguage')\">\r\n </dx-autocomplete>\r\n </div>\r\n <dx-tooltip target=\"#tt13\" class=\"toolTip toolTipField\" [(visible)]=\"v[13]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Angabe der Sprache in der der Katalog gepflegt ist' | translate }}.\r\n {{ 'Die Angabe sollte für BMEcat nach ISO-639-2 erfolgen' | translate }}.\r\n </p>\r\n <div *ngIf=\"showProToolTips\" class=\"nexMartTooltip\">\r\n {{ 'Technisch gibt es keine Besonderheiten' | translate }}.\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Aggrement-->\r\n <div *ngIf=\"modelService.loginService.hasAddonAGREEMENT\" class=\"dx-fieldset\">\r\n\r\n <dx-accordion [dataSource]=\"agreementDummy\"\r\n [collapsible]=\"true\"\r\n [multiple]=\"false\"\r\n [animationDuration]=\"300\"\r\n selectedItems=\"emptyArray\">\r\n\r\n <div *dxTemplate=\"let t of 'title'\" class=\"dx-fieldset-header\">\r\n {{ 'Rahmenvertrag' | translate }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let i of 'item'\">\r\n\r\n <!--Aggrement ID-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(9)\" (mouseleave)=\"ttt(9)\">{{ 'ID des Rahmenvertrags' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt9\">\r\n <label class=\"placeLabel {{ model?.agreement.agreementId?.length>0 ? 'placeLabelSmall' : '' }}\">AGREEMENT ID</label>\r\n <dx-text-box id=\"pimGroup\" [readOnly]=\"readOnly('catalogAggrementId')\" [(value)]=\"model.agreement.agreementId\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt9\" class=\"toolTip toolTipField\" [(visible)]=\"v[9]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Aggrement Type-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(8)\" (mouseleave)=\"ttt(8)\">{{ 'Rahmenvertragstyp' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt8\">\r\n <label class=\"placeLabel {{ model?.agreement.type?.length>0 ? 'placeLabelSmall' : '' }}\">AGREEMENT TYPE</label>\r\n <dx-autocomplete [minSearchLength]=\"0\"\r\n [dataSource]=\"['buyer','supplier']\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"model.agreement.type\"\r\n valueChangeEvent=\"focusout\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [readOnly]=\"readOnly('catalogAggrementType')\">\r\n </dx-autocomplete>\r\n </div>\r\n <dx-tooltip target=\"#tt8\" class=\"toolTip toolTipField\" [(visible)]=\"v[8]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Aggrement DESC-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(10)\" (mouseleave)=\"ttt(10)\">{{ 'Beschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt10\">\r\n <label class=\"placeLabel {{ model?.agreement.agreementDesc?.length>0 ? 'placeLabelSmall' : '' }}\">AGREEMENT DESCRIPTION</label>\r\n <dx-text-box id=\"pimGroup\" [readOnly]=\"readOnly('catalogAggrementDESC')\" [(value)]=\"model.agreement.agreementDesc\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt10\" class=\"toolTip toolTipField\" [(visible)]=\"v[10]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Aggrement Start Datum-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(11)\" (mouseleave)=\"ttt(11)\">{{ 'Startzeitpunkt' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt11\">\r\n <label class=\"placeLabel {{ model.agreement.startDate?.toString().length>0 ? 'placeLabelSmall' : '' }}\">AGREEMENT START DATE</label>\r\n <dx-date-box [readOnly]=\"readOnly('catalogAggrementStartDate')\" [(value)]=\"model.agreement.startDate\" displayFormat=\"dd.MM.yyyy\" type=\"datetime\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-date-box>\r\n </div>\r\n <dx-tooltip target=\"#tt11\" class=\"toolTip toolTipField\" [(visible)]=\"v[11]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!--Aggrement End Datum-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(12)\" (mouseleave)=\"ttt(12)\">{{ 'Endzeitpunkt' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt12\">\r\n <label class=\"placeLabel {{ model.agreement.endDate?.toString().length>0 ? 'placeLabelSmall' : '' }}\">AGREEMENT END DATE</label>\r\n <dx-date-box [readOnly]=\"readOnly('catalogAggrementEndDate')\" [(value)]=\"model.agreement.endDate\" displayFormat=\"dd.MM.yyyy\" type=\"datetime\" valueChangeEvent=\"focusout\" (onValueChanged)=\"catalogUpdate($event)\"></dx-date-box>\r\n </div>\r\n <dx-tooltip target=\"#tt12\" class=\"toolTip toolTipField\" [(visible)]=\"v[12]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n </div>\r\n\r\n </dx-accordion>\r\n\r\n </div>\r\n\r\n <!--Notiz-->\r\n <div class=\"dx-field detailHeadline\">\r\n\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Notizen' | translate }}</div>\r\n </div>\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(15)\" (mouseleave)=\"ttt(15)\">{{ 'Kurz Notiz' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt15\">\r\n <label class=\"placeLabel {{ model.note?.length>0 ? 'placeLabelSmall' : '' }}\">NOTE</label>\r\n <dx-text-box id=\"pimGroup\" [readOnly]=\"readOnly('catalogNote')\" [(value)]=\"model.note\" [showClearButton]=\"true\" (onValueChanged)=\"catalogUpdate($event)\"></dx-text-box>\r\n </div>\r\n <dx-tooltip target=\"#tt15\" class=\"toolTip toolTipField\" [(visible)]=\"v[15]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Kurz Notiz welche in der Catalogliste angezeigt wird' | translate }}.\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <!-- Memo-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\" (mouseenter)=\"ttt(14)\" (mouseleave)=\"ttt(14)\">{{ 'Bearbeitungsnotiz' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt14\" style=\"border: 1px solid #949494;\">\r\n\r\n <dx-html-editor [(value)]=\"model.memo\"\r\n placeholder=\"MEMO\"\r\n (onValueChanged)=\"catalogUpdate($event)\"\r\n [readOnly]=\"readOnly('catalogMemo')\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n </dxo-toolbar>\r\n </dx-html-editor>\r\n <dx-tooltip target=\"#tt14\" class=\"toolTip toolTipField\" [(visible)]=\"v[14]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Das Notiz Feld dient dazu, dass Sie sich Notizen zu diesem Katalog machen' | translate }}.\r\n {{ 'Die Notizen bleiben nur in diesem Katalog. Kein Excel oder BMEcat Export' | translate }}:\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <!--Lieferant-->\r\n <div *dxTemplate=\"let company of 'lieferantTemplate'\">\r\n <catalogSupplier></catalogSupplier>\r\n </div>\r\n\r\n <!--Käufer-->\r\n <div *dxTemplate=\"let company of 'kaeuferTemplate'\">\r\n <catalogBuyer></catalogBuyer>\r\n </div>\r\n\r\n <!--Mimes-->\r\n <div *dxTemplate=\"let company of 'medienTemplate'\">\r\n <mimes [(model)]=\"model.mimes\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\"\r\n (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"catalogUpdate()\"\r\n [(modelService)]=\"modelService\">\r\n </mimes>\r\n </div>\r\n\r\n <!--Einstellungen-->\r\n\r\n <div *dxTemplate=\"let company of 'settingsTemplate'\">\r\n <catalogSettings></catalogSettings>\r\n </div>\r\n\r\n\r\n <!--MedienPool-->\r\n <div *dxTemplate=\"let company of 'poolTemplate'\">\r\n <mediaPool *ngIf=\"model\"></mediaPool>\r\n </div>\r\n\r\n <!--DATA Quality-->\r\n <div *dxTemplate=\"let company of 'dataQualityTemplate'\">\r\n <dataQuality *ngIf=\"model\"></dataQuality>\r\n </div>\r\n\r\n <!--GEVIS-->\r\n <div *dxTemplate=\"let company of 'gevisTemplate'\">\r\n <gevis></gevis>\r\n </div>\r\n\r\n <!--ODOO-->\r\n <div *dxTemplate=\"let company of 'odooTemplate'\">\r\n <odoo></odoo>\r\n </div>\r\n\r\n </dx-tab-panel>\r\n </dx-validation-group>\r\n\r\n <dx-popup [width]=\"800\"\r\n minHeight=\"550\"\r\n [height]=\"'auto'\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Katalog reimport' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"importCatalogVisible\"\r\n [showCloseButton]=\"true\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importCatalog></importCatalog>\r\n </div>\r\n </dx-popup>\r\n\r\n <dx-popup [width]=\"700\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Übersetzung erstellen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [showCloseButton]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"modelService.catalogService.translateVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <translateCatalog></translateCatalog>\r\n </div>\r\n </dx-popup>\r\n\r\n <dx-popup [width]=\"800\"\r\n [height]=\"450\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Medien importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importMediaVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importMedia></importMedia>\r\n </div>\r\n </dx-popup>\r\n\r\n <export [(visible)]=\"exportVisible\"></export>\r\n\r\n <!-- Category Export PopUp -->\r\n <exportCategory [(visible)]=\"categoryExportVisible\"></exportCategory>\r\n\r\n <!-- Category Import PopUp -->\r\n <dx-popup class=\"popup\"\r\n [width]=\"800\"\r\n [height]=\"450\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Kategorien importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"categoryImportVisible\"\r\n [showCloseButton]=\"true\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importCategory></importCategory>\r\n </div>\r\n </dx-popup>\r\n\r\n </div>\r\n\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { TreeItem } from \"../../Model/Dto/TreeItem\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HazmatClass } from '../../Model/Catalog/HazmatClass';\r\nimport { WarrantyClass } from '../../Model/Catalog/WarrantyClass';\r\nimport { ViewService } from '../../Services/view.service';\r\nimport { Message } from '../../Model/System/Message';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { MassDataChangeService } from \"../../Services/CatalogManagement/massDataChange.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { ValidationRequestCatalog } from \"../../Model/validation/ValidationRequestCatalog\";\r\nimport ValidationEngine from \"devextreme/ui/validation_engine\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { CatalogState } from \"../../Model/Catalog/CatalogState\";\r\n\r\n@Component({\r\n selector: \"catalogDetail\",\r\n templateUrl: \"catalogDetail.component.html\",\r\n styleUrls: [\"./catalogDetail.component.css\", \"./../shared/detail.css\"]\r\n})\r\nexport class CatalogDetailComponent implements OnInit {\r\n @Output() onMassDataEdit = new EventEmitter<Product>();\r\n validateCatalog = ValidationEngine.validateGroup;\r\n agreementDummy: string[] = [];\r\n emptyArray: string[] = []; // ==> https://supportcenter.devexpress.com/ticket/details/t1110923#f7c58b18-fd34-492b-b7ec-c354d1b53796\r\n catalogStates: string[] = [];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagment: UserManagementService,\r\n public massDataService: MassDataChangeService, public catalogService: CatalogService, public validationService: ValidationService) {\r\n this.showImportMedia = this.showImportMedia.bind(this);\r\n this.showImportCatalog = this.showImportCatalog.bind(this);\r\n this.showExport = this.showExport.bind(this);\r\n this.showTranslate = this.showTranslate.bind(this);\r\n this.showCategoryExport = this.showCategoryExport.bind(this);\r\n this.showCategoryImport = this.showCategoryImport.bind(this);\r\n this.showUserActions = this.showUserActions.bind(this);\r\n this.exportWindow = this.exportWindow.bind(this);\r\n this.exportFullScreen = this.exportFullScreen.bind(this);\r\n this.openMassDataChange = this.openMassDataChange.bind(this);\r\n this.validateCatalogId = this.validateCatalogId.bind(this);\r\n this.updateState = this.updateState.bind(this);\r\n this.getStatus();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n\r\n this.agreementDummy.push(\"dummy\");\r\n }\r\n\r\n getStatus() {\r\n this.modelService.catalogStateService.getStatus().subscribe(\r\n (result: CatalogState[]) => {\r\n this.catalogStates = [];\r\n result.forEach(x => {\r\n this.catalogStates.push(x.name);\r\n });\r\n });\r\n }\r\n\r\n updateState(event) {\r\n for (const state of event.value) {\r\n if (this.catalogStates.every(item => item !== state)) {\r\n let status = new CatalogState();\r\n status.customerId = this.modelService.loginService.currentUser.customerId;\r\n status.name = state;\r\n this.catalogStates.push(state);\r\n this.modelService.catalogStateService.addCatalogState(status).subscribe(\r\n (result: CatalogState) => {\r\n status = result;\r\n this.modelService.catalogStateService.catalogState.push(status.name);\r\n });\r\n }\r\n }\r\n this.modelService.catalogService.updateCatalog(event);\r\n }\r\n\r\n showUserActionWindow() {\r\n this.modelService.catalogService.showUserAction = true;\r\n }\r\n\r\n\r\n showUserActions() {\r\n this.showUserAction = true;\r\n }\r\n\r\n\r\n validateCatalogId(params) {\r\n let request = new ValidationRequestCatalog();\r\n request.catalogId = this.model.id;\r\n request.value = this.model.catalogId;\r\n request.customerId = this.model.customerId;\r\n request.field = \"CATALOG_ID\";\r\n request.isActivId = this.model.isActivId;\r\n\r\n this.validationService.validateCatalogId(params, request);\r\n\r\n }\r\n\r\n\r\n\r\n set showUserAction(value) {\r\n this.modelService.catalogService.showUserAction = value;\r\n }\r\n\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentUser.customerId).subscribe();\r\n }\r\n\r\n validateCatalogIdInit() {\r\n \r\n }\r\n\r\n updateCatalogGroup() {\r\n this.modelService.catalogService.setCatalogGroupe();\r\n this.modelService.catalogService.updateCatalog();\r\n }\r\n\r\n get showUserAction() {\r\n return this.modelService.catalogService.showUserAction;\r\n }\r\n\r\n txtKatalog: string;\r\n txtMedien: string;\r\n txtLieferant: string;\r\n txtKaeufer: string;\r\n txtDatenqualitaet: string;\r\n txtSettings: string;\r\n txtAlleMedien: string;\r\n\r\n private translateTexts() {\r\n this.txtKatalog = this.translate.instant(\"Katalog\");\r\n this.txtMedien = this.translate.instant(\"Medien\");\r\n this.txtLieferant = this.translate.instant(\"Lieferant\");\r\n this.txtKaeufer = this.translate.instant(\"Käufer\");\r\n this.txtDatenqualitaet = this.translate.instant(\"Datenqualität\");\r\n this.txtSettings = this.translate.instant(\"Einstellungen\");\r\n this.txtAlleMedien = this.translate.instant(\"Alle Medien\");\r\n }\r\n\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtKatalog, template: \"katalogTemplate\" },\r\n { id: 2, title: this.txtMedien, template: \"medienTemplate\" }\r\n ];\r\n if (this.modelService.loginService.hasAddonCATALOG_DETAILS) {\r\n this.pages.push({ id: 3, title: this.txtLieferant, template: \"lieferantTemplate\" });\r\n this.pages.push({ id: 4, title: this.txtKaeufer, template: \"kaeuferTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonDATA_QUALITY) {\r\n this.pages.push({ id: 6, title: this.txtDatenqualitaet, template: \"dataQualityTemplate\" });\r\n }\r\n if (this.canView('catalogSettings'))\r\n this.pages.push({ id: 7, title: this.txtSettings, template: \"settingsTemplate\" });\r\n this.pages.push({ id: 8, title: this.txtAlleMedien, template: \"poolTemplate\" });\r\n\r\n if (this.modelService.loginService.hasAddonCLASSIFICATION) {\r\n this.modelService.classificationService.getSystems();\r\n }\r\n if (this.modelService.loginService.hasAddonGevis) {\r\n this.pages.push({ id: 9, title: \"Gevis\", template: \"gevisTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonODOO) {\r\n this.pages.push({ id: 10, title: \"Odoo\", template: \"odooTemplate\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonLEGALITY) {\r\n this.modelService.hazmatClassService.getClasses().subscribe(\r\n (result: HazmatClass[]) => {\r\n this.modelService.hazmatClassService.hazmatClasses = result;\r\n });\r\n\r\n this.modelService.warrantyClassService.getClasses().subscribe(\r\n (result: WarrantyClass[]) => {\r\n this.modelService.warrantyClassService.warrantyClasses = result;\r\n });\r\n }\r\n\r\n }\r\n\r\n tree: TreeItem[];\r\n childs: TreeItem[];\r\n pages: { id: number; title: string; template: string; }[] = [];\r\n\r\n createChildren = async (parent) => {\r\n const parentId = parent ? parent.itemData.id : \"\";\r\n this.childs = await this.modelService.catalogService.getChilds(this.modelService.catalogService.selectedCatalogId, parentId, this.modelService.loginService.currentUser.customerId, null, this.modelService.catalogService.selectedStates,null);\r\n return this.childs;\r\n };\r\n\r\n catalogChanged(e) {\r\n this.modelService.catalogService.catalogChanged(e);\r\n }\r\n\r\n catalogUpdate(e = null) {\r\n ValidationEngine.validateGroup(\"catalogValidationGroup\");\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n catalogIdUpdate(e = null) {\r\n ValidationEngine.validateGroup(\"catalogIdValidationGroup\");\r\n this.modelService.catalogService.updateCatalog(e);\r\n }\r\n\r\n get model(): Catalog {\r\n return this.modelService.catalogService.catalog;\r\n }\r\n\r\n get catalogMainImage(): string {\r\n if (this.modelService.catalogService.catalog != null && this.modelService.catalogService.catalog.mimes.length > 0) {\r\n const mime = this.modelService.catalogService.catalog.mimes[0];\r\n if (mime.normUri) {\r\n return mime.normUri;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n showImportCatalog() {\r\n this.importCatalogVisible = true;\r\n }\r\n\r\n showImportMedia() {\r\n this.importMediaVisible = true;\r\n }\r\n\r\n //EXPORT WINDOW\r\n get fullScreen() {\r\n return this.modelService.catalogService.viewService.fullScreen;\r\n }\r\n\r\n set fullScreen(value: boolean) {\r\n this.modelService.catalogService.viewService.fullScreen = value;\r\n }\r\n\r\n exportFullScreen() {\r\n this.modelService.catalogService.viewService.fullScreen = true;\r\n }\r\n\r\n exportWindow() {\r\n this.modelService.catalogService.viewService.fullScreen = false;\r\n }\r\n\r\n showExport() {\r\n this.modelService.catalogService.exportVisible = true;\r\n }\r\n\r\n showTranslate() {\r\n if (this.modelService.loginService.languageFlags.length == 1) {\r\n this.translate.get(\"Es wurden noch keine Sprachen angelegt, in die eine Übersetzung vorgenommen werden kann.\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text), 2500);\r\n });\r\n } else {\r\n this.modelService.catalogService.translateVisible = true;\r\n }\r\n }\r\n\r\n get exportVisible() {\r\n return this.modelService.catalogService.exportVisible;\r\n }\r\n\r\n set exportVisible(value: boolean) {\r\n this.modelService.catalogService.exportVisible = value;\r\n }\r\n\r\n hideExport() {\r\n this.modelService.catalogService.exportVisible = false;\r\n }\r\n\r\n private _importMediaVisible: boolean = false;\r\n\r\n get importMediaVisible(): boolean {\r\n return this._importMediaVisible;\r\n }\r\n\r\n set importMediaVisible(value: boolean) {\r\n this._importMediaVisible = value;\r\n }\r\n\r\n private _importCatalogVisible: boolean = false;\r\n\r\n get importCatalogVisible(): boolean {\r\n return this._importCatalogVisible;\r\n }\r\n\r\n set importCatalogVisible(value: boolean) {\r\n this._importCatalogVisible = value;\r\n }\r\n\r\n //USABILITY\r\n\r\n get currencys() {\r\n return ViewService.dropDownCurrencys;\r\n }\r\n\r\n get idType() {\r\n return ViewService.idType;\r\n }\r\n\r\n get territories() {\r\n return ViewService.dropDownTerritories;\r\n }\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n aggrementVisible: boolean = false;\r\n\r\n getLanguageText(language): string {\r\n return this.modelService.loginService.getLanguageText(language);\r\n }\r\n\r\n toggleAggrement() {\r\n if (this.aggrementVisible) {\r\n this.aggrementVisible = false;\r\n } else {\r\n this.aggrementVisible = true;\r\n }\r\n }\r\n\r\n get bigHeader() {\r\n if (window) {\r\n return (window.innerHeight > 1000);\r\n }\r\n return true;\r\n }\r\n\r\n\r\n\r\n showCategoryExport() {\r\n this.modelService.categoryService.categoryExportVisible = true;\r\n }\r\n\r\n hideCategoryExport() {\r\n this.modelService.categoryService.categoryExportVisible = false;\r\n }\r\n\r\n get categoryExportVisible() {\r\n return this.modelService.categoryService.categoryExportVisible;\r\n }\r\n\r\n set categoryExportVisible(value: boolean) {\r\n this.modelService.categoryService.categoryExportVisible = value;\r\n }\r\n\r\n exportCategoryFullScreen() {\r\n this.modelService.categoryService.viewService.fullScreen = true;\r\n }\r\n\r\n exportCategoryWindow() {\r\n this.modelService.categoryService.viewService.fullScreen = false;\r\n }\r\n\r\n\r\n\r\n showCategoryImport() {\r\n this.modelService.categoryService.categoryImportVisible = true;\r\n }\r\n\r\n hideCategoryImport() {\r\n this.modelService.categoryService.categoryImportVisible = false;\r\n }\r\n\r\n get categoryImportVisible(): boolean {\r\n return this.modelService.categoryService.categoryImportVisible;\r\n }\r\n\r\n set categoryImportVisible(value: boolean) {\r\n this.modelService.categoryService.categoryImportVisible = value;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagment.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return !this.userManagment.canEdit(name);\r\n }\r\n\r\n renderMakrosButton(): boolean {\r\n return !this.model?.isVirtual && this.modelService.loginService.hasAddonACTIONS && this.canView('Makros');\r\n }\r\n\r\n renderMediaImportButton(): boolean {\r\n return !this.model?.isVirtual && this.canView('mediaImport');\r\n }\r\n\r\n renderReimportButton(): boolean {\r\n return !this.model?.isVirtual && this.canView('reimport');\r\n }\r\n\r\n renderExportButton(): boolean {\r\n return this.canView('export');\r\n }\r\n\r\n renderTranslateButton(): boolean {\r\n return !this.model?.isVirtual && this.modelService.loginService.hasAddonTranslate && this.canView('translate');\r\n }\r\n\r\n renderCategoryExportButton(): boolean {\r\n return this.modelService.loginService.hasAddonCATEGORYEXPORT && this.canView('categoryExport');\r\n }\r\n\r\n renderCategoryImportButton(): boolean {\r\n return !this.model?.isVirtual && this.modelService.loginService.hasAddonCATEGORYEXPORT && this.canView('categoryImport');\r\n }\r\n\r\n renderMassDataChangeButton(): boolean {\r\n return !this.model?.isVirtual && this.canView('massDataChange');\r\n }\r\n\r\n openMassDataChange() {\r\n this.massDataService.getEmtpyProductByCatalog(this.catalogService.catalog.id).subscribe((result: Product) => {\r\n this.onMassDataEdit.emit(this.modelService.productService.getProductFromJson(result, this.modelService.loginService.wawiSettings));\r\n });\r\n }\r\n}\r\n","<dx-toolbar>\r\n <dxi-item *ngIf=\"!readOnlyUser('templateUpdate')\" location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', icon: 'refresh', text: 'Produkte aktualisieren' | translate, hint: 'Die Vorlagen werden auf alle Produkte im Katalog übertragen' | translate, onClick: applyTemplate }\"></dxi-item>\r\n</dx-toolbar>\r\n<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"p-2\" [swipeEnabled]=\"false\">\r\n\r\n <div *dxTemplate=\"let company of 'featureTemplate'\">\r\n <!--<features *ngIf=\"model\"\r\n [(catalog)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(hasAddonCLASSIFICATION)]=\"modelService.loginService.hasAddonCLASSIFICATION\"\r\n [(hasAddonECOMMERCE)]=\"modelService.loginService.hasAddonECOMMERCE\"\r\n [(classificationSystems)]=\"modelService.classificationService.classificationSystems\"\r\n [(modelService)]=\"modelService\"\r\n [(classificationFeatureValues)]=\"classificationFeatureValues\"\r\n (addEcommerceFeatures)=\"addEcommerceFeatures($event)\"\r\n (addClassificationFeatures)=\"addClassificationFeatures($event)\"\r\n (loadClassificationFeatures)=\"loadClassificationFeatures($event)\"\r\n (onValueChanged)=\"categoryUpdate($event)\">\r\n </features>-->\r\n <editfeaturesystemlist *ngIf=\"model\"\r\n displayMode=\"edit\"\r\n [(featureSystems)]=\"model.featureTemplate\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(hasAddonCLASSIFICATION)]=\"modelService.loginService.hasAddonCLASSIFICATION\"\r\n [(hasAddonECOMMERCE)]=\"modelService.loginService.hasAddonECOMMERCE\"\r\n [(modelService)]=\"modelService\"\r\n (addEcommerceFeatures)=\"addEcommerceFeatures($event)\"\r\n (addClassificationFeatures)=\"addClassificationFeatures($event)\"\r\n (onValueChanged)=\"categoryUpdate($event)\">\r\n </editfeaturesystemlist>\r\n </div>\r\n <div *dxTemplate=\"let company of 'mediaTemplate'\">\r\n <mimes *ngIf=\"model\" [(model)]=\"model.mimeTemplate\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [isTemplate]=\"true\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\"\r\n (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"categoryUpdate($event)\"\r\n [(modelService)]=\"modelService\">\r\n </mimes>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'wawiTemplate'\">\r\n <wawi [(model)]=\"wawiDummyProduct\"\r\n (onValueChanged)=\"updateWawi($event)\">\r\n </wawi>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Catalog } from '../../../Model/Catalog/catalog';\r\nimport { ModelService } from '../../../Services/model.service';\r\nimport { AddClassification } from '../../../Model/classification/AddClassification';\r\nimport { FeatureSystem } from '../../../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { Functions } from '../../../Services/functions';\r\nimport { Category } from '../../../Model/Catalog/category';\r\nimport { StartAction } from '../../../Model/Dto/StartAction';\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { FeatureValue } from '../../../Model/classification/FeatureValue';\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\n\r\n\r\n@Component({\r\n selector: \"categoryTemplates\",\r\n templateUrl: \"categoryTemplates.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CategoryTemplatesComponent implements OnInit {\r\n\r\n wawiDummyProduct: Product;\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n\r\n this.applyTemplate = this.applyTemplate.bind(this);\r\n\r\n this.wawiDummyProduct = new Product();\r\n this.wawiDummyProduct.wawi = this.model.wawiTemplate;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n\r\n txtFeatureTemplate: string;\r\n txtMediaTemplate: string;\r\n txtMakroGestarted: string;\r\n\r\n get model(): Category {\r\n return this.modelService.catalogService.category;\r\n }\r\n\r\n set model(category: Category) {\r\n this.modelService.catalogService.category = category;\r\n }\r\n\r\n updateWawi(event = null) {\r\n this.model.wawiTemplate = this.wawiDummyProduct.wawi;\r\n this.categoryUpdate();\r\n }\r\n\r\n categoryUpdate(event = null) {\r\n this.modelService.catalogService.updateCategory();\r\n }\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getCategory(this.modelService.catalogService.category.id, this.modelService.loginService.currentUser.customerId).subscribe();\r\n this.wawiDummyProduct.wawi = this.model.wawiTemplate;\r\n }\r\n\r\n private translateTexts() {\r\n\r\n this.txtFeatureTemplate = this.translate.instant(\"Features\");\r\n this.txtMediaTemplate = this.translate.instant(\"Medien\");\r\n this.txtMakroGestarted = this.translate.instant(\"Die Aktualisierung wurde als Job gestartet\");\r\n }\r\n\r\n pages: { id: number; title: string; template: string }[] = [];\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtFeatureTemplate, template: \"featureTemplate\" },\r\n { id: 2, title: this.txtMediaTemplate, template: \"mediaTemplate\" },\r\n { id: 3, title: this.translate.instant(\"Wawi\"), template: \"wawiTemplate\" }\r\n ];\r\n\r\n }\r\n\r\n addEcommerceFeatures() {\r\n this.modelService.catalogService.addEcommerceFeaturesToCategory(this.model).subscribe(\r\n (category: Category) => {\r\n this.model.featureTemplate = category.featureTemplate;\r\n\r\n });\r\n }\r\n\r\n public classificationFeatureValues: FeatureValue[] = [];\r\n\r\n public loadClassificationFeatures(params) {\r\n this.modelService.classificationService.getFeatureValues(params.name, params.valueSource).subscribe(result => {\r\n this.classificationFeatureValues = result;\r\n });\r\n }\r\n\r\n addClassificationFeatures(event) {\r\n if (this.modelService.classificationService.selectedClassId == \"\") return;\r\n let dto = new AddClassification();\r\n dto.classificationClassId = this.modelService.classificationService.selectedClassId;\r\n dto.classificationSystemId = this.modelService.classificationService.selectedSystem.id;\r\n dto.customerId = this.modelService.catalogService.catalog.customerId;\r\n dto.categoryId = this.modelService.catalogService.category.id;\r\n\r\n this.modelService.classificationService.addClassification(dto).subscribe(\r\n (result: FeatureSystem[]) => {\r\n this.modelService.catalogService.category.featureTemplate = new Array<FeatureSystem>();\r\n\r\n let that = this;\r\n result.forEach(function (r) {\r\n let fs = Object.assign(new FeatureSystem(), r);\r\n that.modelService.catalogService.category.featureTemplate.push(fs);\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n applyTemplate() {\r\n\r\n\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = \"ApplyProductTemplate()\";\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.modelService.systemService.notify(new Message(this.txtMakroGestarted));\r\n });\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Category } from '../../../Model/Catalog/category';\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\nimport { ModelService } from '../../../Services/model.service';\r\n\r\n\r\n@Component({\r\n selector: \"seoComponent\",\r\n templateUrl: \"seo.component.html\",\r\n styleUrls: [\"./seo.component.css\"]\r\n})\r\nexport class SeoComponent {\r\n \r\n\r\n constructor(public userManagement: UserManagementService, public modelService: ModelService) { }\r\n\r\n get model(): Category {\r\n return this.modelService.catalogService.category;\r\n }\r\n\r\n set model(category: Category) {\r\n this.modelService.catalogService.category = category;\r\n }\r\n\r\n categoryUpdate(event = null) {\r\n this.modelService.catalogService.updateCategory();\r\n }\r\n \r\n\r\n\r\n\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n\r\n <!--MetaTitle-->\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.metaTitel?.length > 0\"\r\n labelText=\"{{ 'Meta Titel' | translate }}\"\r\n field=\"META_TITLE\"\r\n [system]=\"-1\"\r\n [element]=\"-1\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressDragHandle]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-box [(value)]=\"model.metaTitel\"\r\n [readOnly]=\"readOnlyUser('seoTitle')\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"categoryUpdate($event)\">\r\n </dx-text-box>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <!--MetaDescription-->\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n [showPlaceLabel]=\"model?.metaDescription?.length > 0\"\r\n labelText=\"{{ 'Meta Beschreibung' | translate }}\"\r\n field=\"META_DESCRIPTION\"\r\n [system]=\"-1\"\r\n [element]=\"-1\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressDragHandle]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n <dx-text-area [(value)]=\"model.metaDescription\"\r\n [readOnly]=\"readOnlyUser('seoDescription')\"\r\n [height]=\"130\"\r\n (onValueChanged)=\"categoryUpdate($event)\">\r\n </dx-text-area>\r\n </div>\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n <div class=\"np-field\">\r\n <np-inputControl [showLinkButtons]=\"false\"\r\n labelText=\"{{ 'Langbeschreibung' | translate }}\"\r\n field=\"DESCRIPTION_LONG\"\r\n [system]=\"-1\"\r\n [element]=\"-1\"\r\n [suppressLinkButton]=\"true\"\r\n [suppressPlaceLabel]=\"true\"\r\n [suppressDragHandle]=\"true\"\r\n [showHTMLEditor]=\"true\">\r\n\r\n <div slot=\"content\" class=\"contentSlot\">\r\n\r\n\r\n <div class=\"w-100\">\r\n <dx-html-editor class=\"w-100\"\r\n [(value)]=\"model.htmlDescription\"\r\n placeholder=\"DESCRIPTION_LONG\"\r\n [readOnly]=\"readOnlyUser('productDescLong')\"\r\n (onFocusOut)=\"categoryUpdate($event)\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"link\"></dxi-item>\r\n </dxo-toolbar>\r\n </dx-html-editor>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n </np-inputControl>\r\n </div>\r\n\r\n\r\n</div>\r\n","export class OsgCategoryMapping {\r\n\r\n constructor(\r\n public lastSend?: Date,\r\n public productRange?: string,\r\n public segmentId?: number,\r\n public segmentIdTest?: number,\r\n public lastSendTest?: Date,\r\n public productRangeTest?: string,\r\n public categoryIdString ?: string,\r\n public parentCategoryIdString?: string,\r\n public categoryIdStringTest ?:string,\r\n public parentCategoryIdStringTest?: string,\r\n \r\n ) {\r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\">\r\n\r\n <div *dxTemplate=\"let company of 'liveTemplate'\">\r\n\r\n\r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n\r\n\r\n <div class=\"dx-field\" >\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('productRange')\" (mouseleave)=\"ttt('productRange')\">{{ 'Sortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttProductRange\">\r\n <label class=\"placeLabel {{ productRange.length>0 ? 'placeLabelSmall' : '' }}\">PRODUCT_RANGE</label>\r\n <dx-text-box [(value)]=\"productRange\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('osgCatalogProductRange')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttProductRange\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Das Sortiment des OSG Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSend')\" (mouseleave)=\"ttt('lastSend')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSend\">\r\n <label class=\"placeLabel {{ lastSend.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSend\" [disabled]=\"true\" [showClearButton]=\"false\" [readOnly]=\"readOnlyUser('osgCatalogLastSend')\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSend\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRange']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu oder vom Shop' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let company of 'testTemplate'\">\r\n \r\n <div class=\"dx-fieldset\" *ngIf=\"model\">\r\n \r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('productRangeTest')\" (mouseleave)=\"ttt('productRangeTest')\">{{ 'Sortiment' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttProductRangeTest\">\r\n <label class=\"placeLabel {{ productRangeTest.length>0 ? 'placeLabelSmall' : '' }}\">PRODUCT_RANGE</label>\r\n <dx-text-box [(value)]=\"productRangeTest\" [disabled]=\"true\" [showClearButton]=\"false\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttProductRangeTest\" class=\"toolTip toolTipField\" [(visible)]=\"v['productRangeTest']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Das Sortiment des OSG Shops' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt('lastSendTest')\" (mouseleave)=\"ttt('lastSendTest')\">{{ 'Letzte Übertragung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttlastSendTest\">\r\n <label class=\"placeLabel {{ lastSendTest.length>0 ? 'placeLabelSmall' : '' }}\">LAST_SEND</label>\r\n <dx-text-box [(value)]=\"lastSendTest\" [disabled]=\"true\" [showClearButton]=\"false\">\r\n </dx-text-box>\r\n\r\n </div>\r\n <dx-tooltip target=\"#ttlastSendTest\" class=\"toolTip toolTipField\" [(visible)]=\"v['ttlastSendTest']\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Datum der letzten Übertragung zu oder vom Shop' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Category } from \"../../../Model/Catalog/Category\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OsgConnection } from \"../../../Model/Dto/OsgConnection\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\n import { OsgCategoryMapping } from \"../../../Model/Catalog/OsgCategoryMapping\";\r\n\r\n\r\n@Component({\r\n selector: \"categoryOsg\",\r\n templateUrl: \"categoryOsg.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CategoryOsgComponent implements OnInit {\r\n pages = [];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n let testText = \"\";\r\n this.translate.get('Test').subscribe((text: string) => {\r\n testText = text;\r\n });\r\n let liveText = \"\";\r\n this.translate.get('Live').subscribe((text: string) => {\r\n liveText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: liveText, template: \"liveTemplate\" }\r\n ];\r\n\r\n this.modelService.osgConnectionService.getConnection(this.modelService.loginService.currentCustomer.id, true).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null && result.shopUrl.length > 0) {\r\n this.pages.push({ id: 2, title: testText, template: \"testTemplate\" });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n get model(): Category {\r\n\r\n if (this.modelService.catalogService.category &&\r\n this.modelService.catalogService.category.osgCategoryMapping == null) {\r\n this.modelService.catalogService.category.osgCategoryMapping = new OsgCategoryMapping();\r\n this.modelService.catalogService.category.osgCategoryMapping.productRange = \"\";\r\n this.modelService.catalogService.category.osgCategoryMapping.productRangeTest = \"\";\r\n this.modelService.catalogService.category.osgCategoryMapping.lastSend = null;\r\n this.modelService.catalogService.category.osgCategoryMapping.lastSendTest = null;\r\n }\r\n\r\n return this.modelService.catalogService.category;\r\n }\r\n\r\n\r\n\r\n\r\n v: boolean[] = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = [false, false, false, false, false, false, false, false, false, false, false, false, false];\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get productRange(): string {\r\n if (this.model.osgCategoryMapping)\r\n return this.model.osgCategoryMapping.productRange;\r\n return \"\";\r\n }\r\n\r\n get lastSend(): string {\r\n if (this.model.osgCategoryMapping && this.model.osgCategoryMapping.lastSend)\r\n return this.model.osgCategoryMapping.lastSend.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n get productRangeTest(): string {\r\n if (this.model.osgCategoryMapping)\r\n if (this.model.osgCategoryMapping.productRangeTest)\r\n return this.model.osgCategoryMapping.productRangeTest;\r\n return \"\";\r\n }\r\n\r\n get lastSendTest(): string {\r\n if (this.model.osgCategoryMapping && this.model.osgCategoryMapping.lastSendTest)\r\n return this.model.osgCategoryMapping.lastSendTest.toLocaleString(\"de-DE\");\r\n return \"\";\r\n }\r\n\r\n\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","export class Shopware6CategoryMapping {\r\n\r\n constructor(\r\n public lastSend?: Date,\r\n public shopWareId?: string,\r\n public cmsPageId?: string, \r\n \r\n ) {\r\n }\r\n}\r\n\r\n\r\n\r\n","<div class=\"dx-fieldset\" *ngIf=\"model\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Kategorie Layout' | translate }}</div>\r\n <div class=\"dx-field-value\" >\r\n <dx-select-box [dataSource]=\"shopwareCmsPages\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n (onValueChanged)=\"categoryUpdate($event)\"\r\n [(value)]=\"model.shopware6CategoryMapping.cmsPageId\"\r\n [readOnly]=\"readOnlyUser('shopware6CategorieLayout')\"\r\n showClearButton=\"true\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Category } from \"../../../Model/Catalog/Category\";\r\nimport { Shopware6CategoryMapping } from \"../../../Model/Catalog/Shopware6CategoryMapping\";\r\nimport { ShopwareCmsPage } from '../../../Model/Dto/ShopwareCmsPage';\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { UserManagementService } from \"../../../Services/userManagment.service\";\r\n\r\n\r\n@Component({\r\n selector: \"categoryShopware6\",\r\n templateUrl: \"categoryShopware6.component.html\",\r\n styleUrls: []\r\n})\r\nexport class CategoryShopware6Component implements OnInit {\r\n pages = [];\r\n shopwareCmsPages: ShopwareCmsPage[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public userManagement: UserManagementService) {\r\n this.categoryUpdate = this.categoryUpdate.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.model.shopware6CategoryMapping == null) {\r\n this.model.shopware6CategoryMapping = new Shopware6CategoryMapping();\r\n }\r\n\r\n this.shopwareCmsPages = new Array<ShopwareCmsPage>();\r\n this.modelService.catalogService.GetShopwareCmsPage(\r\n this.modelService.catalogService.catalog.shopWareConnection.baseUri,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientId,\r\n this.modelService.catalogService.catalog.shopWareConnection.clientSecret).subscribe(\r\n (cmsPages: ShopwareCmsPage[]) => {\r\n this.shopwareCmsPages = cmsPages;\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n get model(): Category { \r\n\r\n return this.modelService.catalogService.category;\r\n }\r\n\r\n set model(value: Category) {\r\n this.modelService.catalogService.category = value;\r\n \r\n }\r\n categoryUpdate(event = null) {\r\n this.modelService.catalogService.updateCategory();\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n}\r\n","<div *ngIf=\"model\" class=\"d-flex flex-column w-100\">\r\n <div class=\"header d-flex flex-row px-3 pt-1 w-100 align-items-center\">\r\n <div class=\"p-2\">\r\n <span *ngIf=\"!categoryMainImage\" class=\"glyphicon glyphicon-picture\"></span>\r\n <img *ngIf=\"categoryMainImage\" src=\"{{categoryMainImage}}\" />\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <h5>{{model.groupName}}</h5>\r\n </div>\r\n <div *ngIf=\"modelService.loginService.hasAddonVALIDATION\" class=\"p-2\">\r\n <dx-bar-gauge id=\"gauge\"\r\n [values]=\"[0,0,0]\"\r\n [startValue]=\"0\"\r\n [endValue]=\"100\"\r\n [palette]=\"['#E59D1A', '#10907E', '#1E4B98']\">\r\n <dxo-label [visible]=\"false\"></dxo-label>\r\n </dx-bar-gauge>\r\n </div>\r\n </div>\r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"renderMassDataChangeButton()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'MassenDatenAenderung' | translate, icon:'edit', onClick : openMassDataChange }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"p-2\">\r\n <dx-validation-group id=\"categoryValidationGroup\">\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"detailTabs\" [swipeEnabled]=\"false\">\r\n <!--INFOS-->\r\n <div *dxTemplate=\"let company of 'categoryTemplate'\">\r\n <div class=\"dx-fieldset mainInfos\" *ngIf=\"model\">\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.groupName?.length>0 ? 'placeLabelSmall' : '' }}\">GROUP NAME</label>\r\n <dx-text-box [readOnly]=\"readOnly('categoryGroupName')\" [(value)]=\"model.groupName\" [showClearButton]=\"true\" valueChangeEvent=\"focusout\" (onValueChanged)=\"categoryChanged($event)\">\r\n <dx-validator validationGroup=\"categoryValidationGroup\">\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie einen Kategorienamen an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Beschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.groupDescription?.length>0 ? 'placeLabelSmall' : '' }}\">GROUP DESCRIPTION</label>\r\n <dx-text-area [readOnly]=\"readOnly('categoryGroupDescription')\" [(value)]=\"model.groupDescription\" [height]=\"90\" valueChangeEvent=\"focusout\" (onValueChanged)=\"categoryChanged($event)\"></dx-text-area>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Sortiernummer' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.groupOrder!=null ? 'placeLabelSmall' : '' }}\">GROUP ORDER</label>\r\n <dx-number-box [readOnly]=\"readOnly('categoryGroupOrder')\" [(value)]=\"model.groupOrder\" [min]=\"0\" placeholder=\"\" [showSpinButtons]=\"true\" [showClearButton]=\"false\" valueChangeEvent=\"focusout\" (onValueChanged)=\"categoryChanged($event)\"></dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Group Id' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.groupId!=null ? 'placeLabelSmall' : '' }}\">GROUP ID</label>\r\n <dx-text-box [readOnly]=\"readOnly('categoryGroupId')\" [(value)]=\"model.groupId\" [showClearButton]=\"false\" valueChangeEvent=\"focusout\" (onValueChanged)=\"categoryChanged($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\" *ngIf=\"modelService.loginService.hasAddonPRINT\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Gleichbleibende Id' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ model.groupId!=null ? 'placeLabelSmall' : '' }}\">STABLE ID</label>\r\n <dx-text-box [readOnly]=\"true\" [(value)]=\"model.stableId\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!--Mimes-->\r\n <div *dxTemplate=\"let company of 'medienTemplate'\">\r\n <mimes [(model)]=\"model.mimes\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\"\r\n (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"categoryUpdate($event)\"\r\n [(modelService)]=\"modelService\">\r\n\r\n </mimes>\r\n </div>\r\n\r\n <!--UDXs-->\r\n <div *dxTemplate=\"let company of 'udxTemplate'\">\r\n <udx [(model)]=\"model.udxs\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n (onValueChanged)=\"categoryUpdate($event)\">\r\n\r\n </udx>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'templateTemplate'\">\r\n <categoryTemplates></categoryTemplates>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'seoTemplate'\">\r\n <seoComponent></seoComponent>\r\n </div>\r\n <div *dxTemplate=\"let company of 'osgTemplate'\">\r\n <categoryOsg></categoryOsg>\r\n </div>\r\n <div *dxTemplate=\"let company of 'shopware6Template'\">\r\n <categoryShopware6></categoryShopware6>\r\n </div>\r\n </dx-tab-panel>\r\n </dx-validation-group>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Category } from \"../../Model/Catalog/Category\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { Product } from \"../../Model/Catalog/Product\";\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { MassDataChangeService } from \"../../Services/CatalogManagement/massDataChange.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\n\r\n@Component({\r\n selector: \"categoryDetail\",\r\n templateUrl: \"categoryDetail.component.html\",\r\n styleUrls: [\"./categoryDetail.component.css\", \"./../shared/detail.css\"]\r\n})\r\nexport class CategoryDetailComponent implements OnInit {\r\n @Output() onMassDataEdit = new EventEmitter<Product>();\r\n\r\n constructor(private modelService: ModelService,\r\n public translate: TranslateService,\r\n public userManagement: UserManagementService,\r\n public massDataService: MassDataChangeService,\r\n public catalogService: CatalogService) {\r\n this.openMassDataChange = this.openMassDataChange.bind(this);\r\n }\r\n\r\n pages: { id: number; title: string; template: string; }[] = [];\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n\r\n this.reset();\r\n }\r\n\r\n txtKategorie: string;\r\n txtUdx: string;\r\n txtMedien: string;\r\n txtTemplates: string;\r\n txtSeo: string;\r\n txtOsg: string;\r\n txtShopware: string;\r\n\r\n translateTexts() {\r\n this.txtKategorie = this.translate.instant(\"Kategorie\");\r\n this.txtMedien = this.translate.instant(\"Medien\");\r\n this.txtUdx = this.translate.instant(\"Udx\");\r\n this.txtTemplates = this.translate.instant(\"Vorlagen\");\r\n this.txtSeo = this.translate.instant(\"Seo\");\r\n this.txtOsg = this.translate.instant(\"OSG / Multishop\");\r\n this.txtShopware = this.translate.instant(\"Shopware 6\");\r\n }\r\n\r\n reset() {\r\n this.pages = [\r\n { id: 1, title: this.txtKategorie, template: \"categoryTemplate\" },\r\n { id: 2, title: this.txtMedien, template: \"medienTemplate\" }\r\n ];\r\n if (this.modelService.loginService.hasAddonUDX) {\r\n this.pages.push({ id: 3, title: this.txtUdx, template: \"udxTemplate\" });\r\n }\r\n if (!this.isVirtualCatalog() && this.modelService.loginService.hasAddonProductTemplates) {\r\n this.pages.push({ id: 4, title: this.txtTemplates, template: \"templateTemplate\" });\r\n }\r\n if (this.modelService.loginService.hasAddonSEO) {\r\n this.pages.push({ id: 5, title: this.txtSeo, template: \"seoTemplate\" });\r\n }\r\n if (this.modelService.catalogService.catalog.osgSegmentMapping?.categoriesAreSegments) {\r\n this.pages.push({ id: 5, title: this.txtOsg, template: \"osgTemplate\" }); \r\n }\r\n if (this.modelService.loginService.hasAddonShopware6) {\r\n this.pages.push({ id: 6, title: this.txtShopware, template: \"shopware6Template\" });\r\n }\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getCategory(this.modelService.catalogService.category.id, this.modelService.loginService.currentUser.customerId).subscribe();\r\n }\r\n\r\n categoryUpdate(event = null) {\r\n this.modelService.catalogService.updateCategory();\r\n }\r\n\r\n categoryChanged(e = null) {\r\n this.modelService.catalogService.categoryChanged(e);\r\n }\r\n\r\n get model(): Category {\r\n return this.modelService.catalogService.category;\r\n }\r\n\r\n get categoryMainImage(): string {\r\n if (this.modelService.catalogService.category != null &&\r\n this.modelService.catalogService.category.mimes.length > 0) {\r\n let mime = this.modelService.catalogService.category.mimes[0];\r\n if (mime.normUri) {\r\n return mime.normUri;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public v: boolean[] = [false, false, false];\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n get bigHeader() {\r\n if (window) {\r\n return (window.innerHeight > 1000);\r\n }\r\n return true;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n\r\n readOnly(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n\r\n renderMassDataChangeButton(): boolean {\r\n return !this.isVirtualCatalog() && this.canView('massDataChange');\r\n }\r\n\r\n openMassDataChange() {\r\n this.massDataService.getEmtpyProductByCatalog(this.catalogService.catalog.id).subscribe((result: Product) => {\r\n this.onMassDataEdit.emit(this.modelService.productService.getProductFromJson(result, this.modelService.loginService.wawiSettings));\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { LoginService } from './login.service';\r\nimport { TeachingSet } from \"../Model/OpenAi/teachingset\";\r\nimport { TeachingSample } from \"../Model/OpenAi/teachingsample\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class TeachingSetService {\r\n\r\n private _teachingSets?: TeachingSet[];\r\n private _selectedSet?: TeachingSet;\r\n private _selectedSample?: TeachingSample;\r\n \r\n get selectedSet(): TeachingSet {\r\n return this._selectedSet;\r\n }\r\n\r\n set selectedSet(value: TeachingSet) {\r\n this._selectedSet = value;\r\n }\r\n\r\n get selectedSample(): TeachingSample {\r\n return this._selectedSample;\r\n }\r\n\r\n set selectedSample(value: TeachingSample) {\r\n this._selectedSample = value;\r\n }\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getSingle(id: string): Observable<TeachingSet> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"teachingSetId\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<TeachingSet>(\"api/TeachingSet/GetSingle\", options));\r\n }\r\n\r\n getAll(): Observable<TeachingSet[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<TeachingSet[]>(\"api/TeachingSet/GetAll\", options));\r\n }\r\n\r\n getAllTrained(): Observable<TeachingSet[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<TeachingSet[]>(\"api/TeachingSet/GetAllTrained\", options));\r\n }\r\n\r\n deleteSingle(id: string) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n\r\n this.http.delete(\"api/TeachingSet/DeleteSingle\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateSingle(item: TeachingSet): Observable<TeachingSet> {\r\n return (this.http.post<TeachingSet>(\"api/TeachingSet/UpdateSingle\", item));\r\n }\r\n\r\n addSingle(item: TeachingSet): Observable<TeachingSet> {\r\n return (this.http.post<TeachingSet>(\"api/TeachingSet/AddSingle\", item));\r\n }\r\n\r\n startGenerationJob(item: TeachingSet): Observable<TeachingSet> {\r\n return (this.http.post<TeachingSet>(\"api/TeachingSet/StartGenerationJob\", item));\r\n }\r\n}\r\n","<div class=\"d-block h-100 w-100\">\r\n <div *ngIf=\"model.changeInfo==null\">\r\n <div *ngIf=\"hasAddonVALIDATION && !isPrint\">\r\n <div id=\"val6\" (mouseenter)=\"ttt(6)\" (mouseleave)=\"ttt(6)\">\r\n <dx-bar-gauge id=\"gauge\"\r\n [(values)]=\"validationService.validationResult.validateNumbers\"\r\n [startValue]=\"0\"\r\n [endValue]=\"100\"\r\n [palette]=\"['#191970', '#008000', '#FFA500', '#D26915', '#A52A2A']\"\r\n (click)=\"validateProductForm()\">\r\n <dxo-label [visible]=\"false\"></dxo-label>\r\n </dx-bar-gauge>\r\n <dx-tooltip target=\"#val6\" [(visible)]=\"v[6]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>{{ 'Validierungsinformation zum Produkt' | translate }}</p>\r\n <p><span class=\"dx-switch-handle color1\" style=\"margin-right: 10px;\"></span> {{ 'Informationen zu Stammdaten' | translate }}.</p>\r\n <p><span class=\"dx-switch-handle color2\" style=\"margin-right: 10px;\"></span> {{ 'Informationen zu Suchbegriffen' | translate }}.</p>\r\n <p><span class=\"dx-switch-handle color3\" style=\"margin-right: 10px;\"></span> {{ 'Informationen zu Produktmedien' | translate }}.</p>\r\n <p><span class=\"dx-switch-handle color4\" style=\"margin-right: 10px;\"></span> {{ 'Informationen zu Produktmerkmalen' | translate }}.</p>\r\n <p><span class=\"dx-switch-handle color5\" style=\"margin-right: 10px;\"></span> {{ 'Informationen zu Zusatzinformationen' | translate }}.</p>\r\n <p> {{ 'Auf das Diagramm klicken zur Validierung' | translate }}.</p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <dx-linear-gauge [value]=\"validationService.validationResult.validGroup\" id=\"linearGauge\">\r\n <dxo-scale [startValue]=\"0\"\r\n [endValue]=\"validationService.validationResult.totalGroupCount\"\r\n [minorTickInterval]=\"1\">\r\n <dxo-label></dxo-label>\r\n <dxo-minor-tick [visible]=\"true\"></dxo-minor-tick>\r\n </dxo-scale>\r\n <dxo-range-container>\r\n <dxi-range *ngFor=\"let color of validationService.validationResult.validationGroupColors; let i = index\"\r\n [startValue]=\"i\"\r\n [endValue]=\"i+1\"\r\n [color]=\"color\">\r\n </dxi-range>\r\n </dxo-range-container>\r\n </dx-linear-gauge>\r\n <dx-tooltip target=\"#linearGauge\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <b>{{ 'Das Produkt ist: ' | translate }}{{ validationService.validationResult.validGroupName }}.</b><br /><br />\r\n <div *ngIf=\"validationService.validationResult.missingForNextGroup && validationService.validationResult.missingForNextGroup.length > 0\">\r\n {{ 'Für die nächste Stufe muss folgendes Ergänzt werden' | translate }}:<br />\r\n <div *ngFor=\"let print of validationService.validationResult.missingForNextGroup;\">\r\n • {{ print }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"validationService.validationResult.missingForNextGroup && validationService.validationResult.missingForNextGroup.length == 0\">\r\n {{ 'Herzlichen Grlückwunsch' | translate }}.<br />\r\n {{ 'Es gibt keine weiteren Hinweise' | translate }}\r\n </div>\r\n </div>\r\n </dx-tooltip>\r\n </div> \r\n </div>\r\n <div *ngIf=\"model.changeInfo!=null\">\r\n <div class=\"headerValidation\">\r\n {{ 'Produktänderung' | translate }}<br>\r\n <ul>\r\n <li *ngIf=\"model.changeInfo.isNew\">\r\n {{ 'Neues Produkt' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isDeleted\">\r\n {{ 'Produkt entfernt' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isBaseProductChanged\">\r\n {{ 'Produktinformationen' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isMimeChanged\">\r\n {{ 'Bilder' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isLogisticChanged\">\r\n {{ 'Logistik' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isFeatureChanged\">\r\n {{ 'Features' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isUdxChanged\">\r\n {{ 'UDX' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isOrderDetailChanged\">\r\n {{ 'OrderDetails' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isKeywordChanged\">\r\n {{ 'Keywords' | translate }}\r\n </li>\r\n <li *ngIf=\"model.changeInfo.isReferencesChanged\">\r\n {{ 'Referencen' | translate }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Input, Output, EventEmitter, Component } from \"@angular/core\";\r\nimport { Product } from '../../Model/Catalog/product';\r\nimport { CatalogService } from '../../Services/CatalogManagement/catalog.service';\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n//TODO: validateProductForm\r\n\r\n@Component({\r\n selector: \"productDetailValidation\",\r\n templateUrl: \"productDetailValidation.component.html\",\r\n styleUrls: [\"./productDetailValidation.component.css\"]\r\n})\r\nexport class ProductDetailValidationComponent{\r\n @Input() model: Product = new Product;\r\n @Input() showToolTips: Boolean = true;\r\n @Input() hasAddonVALIDATION: Boolean = true;\r\n @Input() isPrint: Boolean = false;\r\n @Input() biggerHeader: Boolean = null;\r\n\r\n @Output() validateProduct = new EventEmitter<any>();\r\n\r\n validationGroupColors: string[];\r\n\r\n constructor(public validationService: ValidationService, public catalogService: CatalogService) {\r\n }\r\n\r\n get bigHeader() {\r\n if (this.biggerHeader != null) {\r\n return this.biggerHeader;\r\n }\r\n if (window) {\r\n return (window.innerHeight > 1000);\r\n }\r\n return true;\r\n }\r\n\r\n public validateProductForm() {\r\n\r\n this.validationService.validateProduct(this.catalogService.product);\r\n\r\n this.validateProduct.emit();\r\n }\r\n\r\n private emptyArray = [false, false, false, false, false, false];\r\n public v: boolean[] = this.emptyArray;\r\n\r\n //USABILITY\r\n\r\n ttt(id) {\r\n if (this.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = this.emptyArray;\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n}\r\n\r\n\r\n","export class CatalogMapping {\r\n\r\n constructor(\r\n public catalogId?: string, \r\n public categoryId?: string,\r\n public order?: number,\r\n public catalogName?: string,\r\n public isVirtualCatalog?: boolean,\r\n public categoryName?: string,\r\n public categoryIconUrl?: string\r\n ){ }\r\n\r\n}\r\n","<dx-data-grid (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n [dataSource]=\"_catalogMappings\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Kategorien' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowPrepared)=\"onRowPrepared($event)\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"delete($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'newCategoryButtonTemplate'\">\r\n <div *ngIf=\"!readOnlyUser('categorieNew')\">\r\n <dx-button stylingMode=\"text\" type=\"default\" *ngIf=\"!product.isChild\" text=\"{{ 'Kategorie hinzufügen' | translate }}\" (onClick)=\"showPopup()\" class=\"buttonMargin marginBottom\"></dx-button>\r\n <div *ngIf=\"product.isChild\">{{ 'Die Kategoriezuordnungen können über den Master Artikel verwaltet werden.' | translate }}</div>\r\n </div>\r\n </div>\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\" [allowDeleting]=\"allowDeleting && !readOnlyUser('categorieDelete')\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie die Kategorie-Zuordnung wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Zuordnung löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CategoriesStateNewUIV3\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"categoryIconUrl\" caption=\"\" [allowEditing]=\"false\" cellTemplate=\"imageCellTemplate\" [width]=\"80\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'imageCellTemplate'\" class=\"catlistImageDiv\">\r\n <div>\r\n <img *ngIf=\"!data.value\" src=\"images/ikon_article_tree_invert.png\" class=\"catlistImage\" />\r\n <img *ngIf=\"data.value\" src=\"{{data.value}}\" style=\"width: 40px;\" />\r\n </div>\r\n </div>\r\n\r\n <dxi-column dataField=\"order\" dataType=\"number\" caption=\"{{ 'Order' | translate }}\">\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"catalogName\" [allowEditing]=\"false\" caption=\"{{ 'Katalog' | translate }}\"></dxi-column>\r\n <dxi-column *ngIf=\"loginService.hasAddonDEVELOPMENT\" dataField=\"isVirtualCatalog\" [allowEditing]=\"false\" caption=\"{{ 'Virtuell' | translate }}\" [allowEditing]=\"false\"></dxi-column><!-- ein wenig mißbraucht an dieser stelle... -->\r\n <dxi-column dataField=\"categoryName\" [allowEditing]=\"false\" caption=\"{{ 'Bezeichnung' | translate }}\"></dxi-column>\r\n <dxi-column cellTemplate=\"jumpToProductTemplate\" [allowEditing]=\"false\"></dxi-column>\r\n <div *dxTemplate=\"let treeItem of 'jumpToProductTemplate'\">\r\n <dx-button stylingMode=\"text\" (onClick)=\"jumpToCategory(treeItem.data)\" text=\"{{ 'JumpToCategory' | translate }}\" type=\"default\" style=\"min-width: 32px;\"></dx-button>\r\n </div>\r\n\r\n</dx-data-grid>\r\n\r\n<dx-popup [width]=\"800\"\r\n [height]=\"530\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Kategorie hinzufügen' | translate }}\"\r\n [(visible)]=\"popupVisible\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" [visible]=\"isAddCategoryVisible()\" widget=\"dxButton\" [options]=\"{ text: 'Kategorie hinzufügen' | translate, onClick: addCategories }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\" showScrollbar=\"always\">\r\n\r\n <div *ngIf=\"isCategoriesLoaded==false\" style=\"left: 30%; top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCategoriesLoaded==true\" class=\"{{fullScreen ? '': 'maxHeight'}}\">\r\n <dx-tree-list #treeListCategoryFilter\r\n [(dataSource)]=\"categoryFilters\"\r\n [(selectedRowKeys)]=\"checkedCategories\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"id\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"false\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Kategorie' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popup>\r\n\r\n<!--(onSelectAllValueChanged)=\"onSelectAllCategories($event)\"\r\n(onItemSelectionChanged)=\"selectionChangedOnCategory($event)\"-->\r\n","import { Input, Output, EventEmitter, Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { CatalogMapping } from \"../../Model/Catalog/CatalogMapping\";\r\nimport { TreeItem } from \"../../Model/Dto/TreeItem\";\r\nimport { Category } from \"../../Model/Catalog/Category\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { Product } from \"../../Model/Catalog/Product\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { DxTreeViewComponent } from \"devextreme-angular/ui/tree-view\";\r\nimport { ExportFilterService } from \"../../Services/exportFilter.service\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { LoginService } from \"../../Services/login.service\";\r\nimport { CategoryFilterTreeItem } from \"../../Model/Catalog/exportFilter/categoryFilterTreeItem\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"categories\",\r\n templateUrl: \"categories.component.html\",\r\n styleUrls: [\"template.css\"]\r\n})\r\nexport class CategoriesComponent implements OnInit, OnDestroy {\r\n @Input() product: Product = null;\r\n @Input() showToolTips: Boolean = false;\r\n @Input() showProToolTips: Boolean = false;\r\n @Input() showPlaceHolders: Boolean = true;\r\n @Input() exportMode: Boolean = false;\r\n\r\n @Input() templateView: Boolean = false;\r\n @Input() selectedElements: string[] = [\"\"];\r\n\r\n @Output() elementSelected = new EventEmitter<string>();\r\n @Output() onValueChanged = new EventEmitter<any>();\r\n @Output() reloadNedded = new EventEmitter<any>();\r\n\r\n catalogId: string = \"\";\r\n customerId: string = \"\";\r\n\r\n _catalogMappings: CatalogMapping[];\r\n _allowDeleting: boolean = false;\r\n\r\n isCategoriesLoaded: boolean = false;\r\n popupVisible: boolean = false;\r\n categoryFilters: CategoryFilterTreeItem[] = [];\r\n checkedCategories: string[] = [];\r\n\r\n constructor(public userManagement: UserManagementService, public exportFilterController: ExportFilterService,\r\n public catalogService: CatalogService, public loginService: LoginService, public router: Router) {\r\n this.addCategories = this.addCategories.bind(this);\r\n this.jumpToCategory = this.jumpToCategory.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.catalogId = this.catalogService.catalog.id;\r\n this.customerId = this.loginService.currentUser.customerId;\r\n this.catalogMappings = this.product.catalogMappings;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.catalogId = \"\";\r\n this.customerId = \"\";\r\n this.catalogMappings = new Array<CatalogMapping>();;\r\n }\r\n\r\n set catalogMappings(value: CatalogMapping[]) {\r\n this._catalogMappings = value;\r\n for (var i = 0; i < value.length; i++) {\r\n const _i = i;\r\n this.catalogService.getCategoryFullname(this._catalogMappings[i].categoryId, this.loginService.currentUser.customerId)\r\n .subscribe((category: Category) => {\r\n if (category.mimes.length > 0) {\r\n this._catalogMappings[_i].categoryIconUrl = category.mimes[0].normUri;\r\n }\r\n this._catalogMappings[_i].categoryName = category.groupName;\r\n });\r\n\r\n this.catalogService.getCatalogNoSet(this._catalogMappings[i].catalogId, this.loginService.currentUser.customerId)\r\n .subscribe((catalog: Catalog) => {\r\n this._catalogMappings[_i].catalogName = catalog.catalogName;\r\n });\r\n }\r\n }\r\n\r\n get catalogMappings() {\r\n return this._catalogMappings;\r\n }\r\n\r\n get allowDeleting(): boolean {\r\n if (this._catalogMappings.length > 1 && !this.product.isChild)\r\n this._allowDeleting = true;\r\n else\r\n this._allowDeleting = false;\r\n return this._allowDeleting;\r\n }\r\n set allowDeleting(value: boolean) {\r\n this._allowDeleting = value;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n onGridToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newCategoryButtonTemplate'\r\n });\r\n }\r\n\r\n update(event = null) {\r\n this.onValueChanged.emit(event);\r\n this.catalogService.treeRefresh();\r\n }\r\n\r\n delete(e) {\r\n for (let i = 0; i < this.catalogMappings.length; i++) {\r\n if (e.data.id == this.catalogMappings[i].categoryId) {\r\n this.catalogMappings.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n this.onValueChanged.emit(event);\r\n this.catalogService.treeRefresh();\r\n }\r\n\r\n async showPopup() {\r\n if (this.isCategoriesLoaded == false) {\r\n this.refreshCategoryFilter();\r\n }\r\n this.popupVisible = true;\r\n }\r\n\r\n\r\n\r\n async refreshCategoryFilter() {\r\n this.categoryFilters = await lastValueFrom(this.exportFilterController.getCategoryFilterTreeElements(this.catalogService.selectedCatalogId, this.loginService.currentUser.customerId));\r\n this.isCategoriesLoaded = true;\r\n }\r\n\r\n reload() {\r\n this.reloadNedded.emit();\r\n }\r\n\r\n onRowPrepared(e) {\r\n if (e.rowType == \"data\") {\r\n if (e.data.selected == true) {\r\n e.rowElement.style.backgroundColor = \"#D6F5F3\";\r\n e.rowElement.className = e.rowElement.className.replace(\"dx-row-alt\", \"\"); // Standard-Klasse wegräumen, sonst greif es nur auf Nicht-Alternating-Rows\r\n }\r\n }\r\n }\r\n\r\n isAddCategoryVisible(): boolean {\r\n if (this.checkedCategories == undefined) {\r\n this.checkedCategories = [];\r\n }\r\n if (this.checkedCategories.length > 0)\r\n return true;\r\n return false;\r\n }\r\n\r\n async addCategories() { \r\n let catalog = await lastValueFrom(this.catalogService.getCatalogNoSet(this.catalogService.selectedCatalogId, this.loginService.currentUser.customerId));\r\n\r\n for (const checkedCat of this.checkedCategories) {\r\n if (this._catalogMappings.some(x => x.categoryId == checkedCat))\r\n continue;\r\n\r\n let category = await lastValueFrom(this.catalogService.getCategoryFullname(checkedCat, this.loginService.currentUser.customerId));\r\n\r\n let mapping = new CatalogMapping();\r\n mapping.categoryName = category.groupName;\r\n mapping.order = Math.max(...this._catalogMappings.map(x => x.order || 0)) + 1;\r\n mapping.catalogId = this.catalogService.selectedCatalogId;\r\n mapping.categoryId = checkedCat;\r\n mapping.isVirtualCatalog = false;\r\n mapping.catalogName = catalog.catalogName; \r\n if (category.mimes.length > 0)\r\n mapping.categoryIconUrl = category.mimes[0].normUri;\r\n \r\n this._catalogMappings.push(mapping);\r\n } \r\n\r\n this.checkedCategories = [];\r\n this.popupVisible = false;\r\n this.update();\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return this.isVirtualCatalog() || !this.userManagement.canEdit(name);\r\n }\r\n\r\n jumpToCategory(e) { \r\n var catalogMapping = this.catalogMappings.find(x => x.categoryId == e.categoryId);\r\n var navigateString = \"/catalog/\" + this.customerId + \"/\" + catalogMapping.catalogId + \"/category/\" + catalogMapping.categoryId;\r\n this.catalogService.selectedCatalogId = catalogMapping.catalogId;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.router.navigate([navigateString]));\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\nimport { CatalogService } from \"../../../Services/CatalogManagement/catalog.service\";\r\n\r\n@Component({\r\n selector: \"productAsJson\",\r\n templateUrl: \"productAsJson.component.html\",\r\n styleUrls: [\"../template.css\"]\r\n})\r\n\r\nexport class ProductAsJsonComponent implements OnInit {\r\n productDto: Product;\r\n product;\r\n\r\n constructor(catalogService: CatalogService) {\r\n catalogService.getProduct(catalogService.product.id, catalogService.loginService.currentCustomer.id, catalogService.catalog.id)\r\n .subscribe(result => {\r\n this.productDto = result;\r\n });\r\n catalogService.getRawProduct(catalogService.product.id, catalogService.loginService.currentCustomer.id)\r\n .subscribe(result => {\r\n this.product = result;\r\n });\r\n }\r\n\r\n ngOnInit(): void { }\r\n}\r\n","<dx-tab-panel>\r\n <dxi-item title=\"ProductDto\">\r\n <dx-text-area [readOnly]=\"true\"\r\n [autoResizeEnabled]=\"true\"\r\n [ngModel]=\"productDto | json\">\r\n </dx-text-area>\r\n </dxi-item>\r\n <dxi-item title=\"Product\">\r\n <dx-text-area [readOnly]=\"true\"\r\n [autoResizeEnabled]=\"true\"\r\n [ngModel]=\"product | json\">\r\n </dx-text-area>\r\n </dxi-item>\r\n</dx-tab-panel>\r\n","<div *ngIf=\"model\" style=\"width:1200px;\">\r\n <div style=\"width:550px; float:left;\">\r\n <dx-tile-view class=\"dx-tile-content\" [baseItemWidth]=\"150\" direction=\"vertical\" showScrollbar=\"false\" height=\"4000\" width=\"540\" baseItemHeight=\"150\">\r\n <dxi-item *ngFor=\"let tileImage of model.productTileImages\"\r\n [widthRatio]=\"widthRatio(tileImage.ratio)\"\r\n [heightRatio]=\"heightRatio(tileImage.ratio)\">\r\n <div style=\"width:100%; height:100%;background-position: center; background-repeat: no-repeat; background-size: cover; \" [ngStyle]=\"{ 'background-image': 'url(' + tileImage.src + ')'}\"></div>\r\n </dxi-item>\r\n </dx-tile-view>\r\n </div>\r\n <div style=\"width:650px;float:right;\">\r\n <h3>{{model?.descriptionShort}}</h3>\r\n <p>\r\n <b>{{marketingClaim}}</b>\r\n </p>\r\n <div>\r\n </div>\r\n <div style=\"margin-top:10px;width:100%;\">\r\n <div style=\"padding-left:0px;width:50%; float:left\">\r\n <div *ngIf=\"model.supplierPid.length>0\"><b>{{ 'Produktnummer' | translate }}: </b>{{model.supplierPid}}</div>\r\n <div><b>{{ 'EAN-Nr' | translate }}: </b>{{ean}}</div>\r\n <div *ngIf=\"model?.points.length>0\" style=\"margin-top:20px;\">\r\n <table>\r\n <tr *ngFor=\"let point of model.points\">\r\n <td><b>{{point.name}}</b></td>\r\n <td style=\"width:20px;\"></td>\r\n <td>\r\n <i *ngFor='let item of forLoopArray(point.points)' class=\"dx-icon-favorites points\" style=\"color:#0093D6\"></i>\r\n <i *ngFor='let item of forLoopArray(point.max - point.points)' class=\"dx-icon-favorites points\"></i>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div *ngIf=\"model?.usageFeatures.length>0\" style=\"margin-top:20px\">\r\n <p style=\"margin:0px;\"><b>{{ 'Anwendung' | translate }}:</b></p>\r\n <ul>\r\n <li>{{model.usageFeatures[0].value}}</li>\r\n <li *ngIf=\"model?.usageFeatures.length>1\">{{model.usageFeatures[1].value}}</li>\r\n <li *ngIf=\"model?.usageFeatures.length>2\">{{model.usageFeatures[2].value}}</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"model?.useForFeatures.length>0\" style=\"margin-top:20px\">\r\n <ul class=\"useFor\">\r\n <li *ngFor=\"let useFour of model.useForFeatures\" class=\"{{useFour.value}}\">{{useFour.value}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div style=\"padding:0px;width:50%; float:right;text-align:right;\">\r\n <div *ngIf=\"model?.productImagesLogos.length>0\">\r\n <img src=\"{{model.productImagesLogos[0].blobUri}}\" style=\"width:110px;\" />\r\n </div>\r\n <div *ngIf=\"model?.variantsFeatures.length>0\" style=\"margin-top:20px;\">\r\n <p><b>{{ 'Ausführung' | translate }}</b></p>\r\n <ul class=\"variants\">\r\n <li *ngFor=\"let variant of model.variantsFeatures\">{{variant.name}}: {{variant.value}} {{variant.funit}}</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"hasPrice\" style=\"margin-top:20px;width:100%;\">\r\n <div class=\"card card-body bg-light\" style=\"width:230px;float:right;\">\r\n <h4 style=\"margin-top:5px;\">{{price.prouctPrice}}</h4>\r\n zzgl. {{price.prouctTax}}% Mwst.\r\n <h4 style=\"margin-bottom:0px\">{{price.prouctUnit}}</h4>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"model?.productImagesIcon.length>0\" style=\"margin-top:20px;height:60px; float:left;\">\r\n <div *ngFor=\"let icon of model.productImagesIcon\" style=\"float:left;\">\r\n <img src=\"{{icon.thumbUri}}\" style=\"width:60px; height:60px; margin: 0rem 1.25rem 0rem 0rem; float: left; display: block; padding: .3125rem; border: none;\" />\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-top:20px;width:100%;float:left;\">\r\n <div *ngIf=\"model.topFeatures.length>0\" class=\"topFeatures\">\r\n <table *ngIf=\"model.topFeatures.length<3\">\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[0].value}}</td>\r\n <td *ngIf=\"model.topFeatures.length==2\" class=\"point\">•</td>\r\n <td *ngIf=\"model.topFeatures.length==2\" class=\"text\">{{model.topFeatures[1].value}}</td>\r\n </tr>\r\n </table>\r\n <table *ngIf=\"model.topFeatures.length>2 && model.topFeatures.length<5\">\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[0].value}}</td>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[2].value}}</td>\r\n </tr>\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[1].value}}</td>\r\n <td *ngIf=\"model.topFeatures.length==4\" class=\"point\">•</td>\r\n <td *ngIf=\"model.topFeatures.length==4\" class=\"text\">{{model.topFeatures[3].value}}</td>\r\n </tr>\r\n </table>\r\n <table *ngIf=\"model.topFeatures.length>4\">\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[0].value}}</td>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[3].value}}</td>\r\n </tr>\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[1].value}}</td>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[4].value}}</td>\r\n </tr>\r\n <tr>\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{model.topFeatures[2].value}}</td>\r\n <td *ngIf=\"model.topFeatures.length>5\" class=\"point\">•</td>\r\n <td *ngIf=\"model.topFeatures.length>5\" class=\"text\">{{model.topFeatures[5].value}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"column\" style=\"margin-top:20px;width:100%;float:left;\">\r\n <dx-accordion [dataSource]=\"lukasParts\"\r\n [collapsible]=\"false\"\r\n [multiple]=\"false\"\r\n [animationDuration]=\"300\"\r\n [selectedItems]=\"[lukasParts[0]]\">\r\n <div *dxTemplate=\"let element of 'title'\">\r\n <h4>{{element.headLine}}</h4>\r\n </div>\r\n <div *dxTemplate=\"let element of 'item'\">\r\n <div [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'desc'\">\r\n <span [innerHTML]=\"model?.descriptionLong\"></span>\r\n </div>\r\n <div *ngSwitchCase=\"'tech'\">\r\n <dx-data-grid [dataSource]=\"model.technicalFeatures\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columns]=\"['name', 'value', 'unit']\"\r\n [showBorders]=\"true\">\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Bezeichnung' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"value\" caption=\"{{ 'Wert' | translate }}\" width=\"70\"></dxi-column>\r\n <dxi-column dataField=\"funit\" caption=\"{{ 'Einheit' | translate }}\" width=\"70\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n <div *ngSwitchCase=\"'befits'\">\r\n <table>\r\n <tr *ngFor=\"let benefits of model.benefitsFeatures\">\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{benefits.value}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div *ngSwitchCase=\"'use'\">\r\n <table>\r\n <tr *ngFor=\"let use of model.usageFeatures\">\r\n <td class=\"point\">•</td>\r\n <td class=\"text\">{{use.value}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div *ngSwitchCase=\"'download'\">\r\n <table>\r\n <tr *ngFor=\"let dataSheets of model.productDataSheets\">\r\n <td class=\"point\">•</td>\r\n <td class=\"text\"><a href=\"{{downloadLink}}{{dataSheets.mimeSource}}\">{{dataSheets.mimeDescr}}</a></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-accordion>\r\n </div>\r\n </div>\r\n </div> \r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { TranslationService } from \"../../Services/translation.service\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n@Component({\r\n selector: \"shopViewLukas\",\r\n templateUrl: \"shopViewLukas.component.html\",\r\n styleUrls: [\"shopViewLukas.component.css\"]\r\n})\r\nexport class ShopViewLukas implements OnInit {\r\n\r\n constructor(private catalogService: CatalogService, public translationService: TranslationService, public translate: TranslateService) {\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n\r\n\r\n this.lukasParts = [\r\n { \"headLine\": this.txtBeschreibung, \"type\": \"desc\" }];\r\n if (this.catalogService.product != null) {\r\n this.load();\r\n } else {\r\n this.loadDone = false;\r\n }\r\n }\r\n\r\n txtBeschreibung: string;\r\n txtDokumente: string;\r\n txtAnwendungen: string;\r\n txtTechnischeDaten: string;\r\n txtVorteile: string;\r\n\r\n\r\n translateTexts() {\r\n this.txtBeschreibung = this.translate.instant(\"Beschreibung\");\r\n this.txtDokumente = this.translate.instant(\"Dokumente\");\r\n this.txtAnwendungen = this.translate.instant(\"Anwendungen\");\r\n this.txtTechnischeDaten = this.translate.instant(\"Technische Daten\");\r\n this.txtVorteile = this.translate.instant(\"Vorteile\");\r\n\r\n }\r\n\r\n get downloadLink(): string {\r\n return \"/Cloud/false/\" + this.model.catalogMappings[0].catalogId + \"/\" + this.model.customerId + \"/\"; // .catalogMappings[0]. ist hier OK\r\n }\r\n\r\n loadDone: boolean = true;\r\n\r\n load() {\r\n if (this.catalogService.product.benefitsFeatures.length > 0) {\r\n this.lukasParts.push({ \"headLine\": this.txtVorteile, \"type\": \"befits\" });\r\n }\r\n if (this.catalogService.product.technicalFeatures.length > 0) {\r\n this.lukasParts.push({ \"headLine\": this.txtTechnischeDaten, \"type\": \"tech\" });\r\n }\r\n if (this.catalogService.product.usageFeatures.length > 0) {\r\n this.lukasParts.push({ \"headLine\": this.txtAnwendungen, \"type\": \"use\" });\r\n }\r\n if (this.catalogService.product.productDataSheets.length > 0) {\r\n this.lukasParts.push({ \"headLine\": this.txtDokumente, \"type\": \"download\" });\r\n }\r\n }\r\n\r\n lukasParts = [];\r\n\r\n get model(): Product {\r\n if (!this.loadDone && this.catalogService.product!=null) {\r\n this.loadDone = true;\r\n this.load();\r\n }\r\n if (this.translationService.productTranslation != null)\r\n return this.translationService.productTranslation;\r\n\r\n return this.catalogService.product;\r\n }\r\n\r\n get mimes() {\r\n if (this.translationService.productTranslation != null)\r\n return this.translationService.productTranslation.productImagesNormal;\r\n\r\n return this.catalogService.product.productImagesNormal;\r\n }\r\n\r\n get features() {\r\n if (this.translationService.productTranslation != null)\r\n return this.translationService.productTranslation.features;\r\n\r\n return this.catalogService.product.features;\r\n }\r\n\r\n get showIndicator() {\r\n if (this.catalogService.product.productImagesNormal.length == 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get marketingClaim() {\r\n if (this.translationService.productTranslation != null)\r\n return this.translationService.productTranslation.marketingClaim;\r\n return this.catalogService.product.marketingClaim;\r\n }\r\n\r\n get hasPrice() {\r\n if (this.catalogService.product.price != null && this.catalogService.product.price.prouctPrice != \"\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get price() {\r\n return this.catalogService.product.price;\r\n }\r\n\r\n forLoopArray(elements): Array<number> {\r\n return new Array(parseInt(elements));\r\n }\r\n\r\n getTileImageWidth(ratio) {\r\n return ratio * 150;\r\n }\r\n\r\n widthRatio(ratio) {\r\n switch (ratio) {\r\n case 1:\r\n return 1;\r\n case 2:\r\n return 2;\r\n case 3:\r\n return 3;\r\n case 11:\r\n return 1;\r\n case 12:\r\n return 1;\r\n case 13:\r\n return 1;\r\n case 21:\r\n return 2;\r\n case 22:\r\n return 2;\r\n case 23:\r\n return 2;\r\n case 31:\r\n return 3;\r\n case 32:\r\n return 3;\r\n case 33:\r\n return 3;\r\n }\r\n return 1;\r\n }\r\n\r\n heightRatio(ratio) {\r\n switch (ratio) {\r\n case 1:\r\n return 1;\r\n case 2:\r\n return 2;\r\n case 3:\r\n return 3;\r\n case 11:\r\n return 1;\r\n case 12:\r\n return 2;\r\n case 13:\r\n return 3;\r\n case 21:\r\n return 1;\r\n case 22:\r\n return 2;\r\n case 23:\r\n return 3;\r\n case 31:\r\n return 1;\r\n case 32:\r\n return 2;\r\n case 33:\r\n return 3;\r\n }\r\n return 1;\r\n }\r\n get ean() {\r\n if (this.catalogService.product.internationalPidType == 'gtin' && this.catalogService.product.internationalPid.length == 13) {\r\n return this.catalogService.product.internationalPid;\r\n }\r\n return \"\";\r\n }\r\n}\r\n","<div *ngIf=\"model\" class=\"d-flex flex-column w-100\">\r\n <div *ngIf=\"!showShop\" class=\"header d-flex flex-row px-3 pt-1 w-100\">\r\n <div class=\"p-2\">\r\n <span *ngIf=\"!productMainImage\" class=\"glyphicon glyphicon-picture\"></span>\r\n <img *ngIf=\"productMainImage\" src=\"{{productMainImage}}\" />\r\n </div>\r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <h5>{{model.descriptionShort}}</h5>\r\n <span [innerHTML]=\"model?.descriptionLong\"></span>\r\n </div>\r\n <productDetailValidation class=\"p-2 align-self-center\" [(model)]=\"model\" (validateProduct)=\"validateProductForm()\">\r\n </productDetailValidation>\r\n <div *ngIf=\"modelService?.loginService?.hasAddonSHOP_VIEW && !modelService?.catalogService?.catalog?.usePrintView\"\r\n class=\"p-2\">\r\n <div class=\"d-flex flex-column\">\r\n\r\n <div class=\"dx-field ml-auto\">\r\n <div class=\"dx-field-label switch-left\">{{ \"EDIT\" | translate }}</div>\r\n <dx-switch [(value)]=\"showShop\" switchedOffText=\"EDIT\" switchedOnText=\"Shop\"\r\n (onValueChanged)=\"shopViewUpdate($event)\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Shop\" | translate }}</div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"this.modelService?.catalogService?.catalog?.isPublic && !modelService?.catalogService?.catalog?.usePrintView\"\r\n class=\"dx-field\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Produkt anzeigen' | translate }}\"\r\n (onClick)=\"openProductView()\"></dx-button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-toolbar class=\"px-3\">\r\n <dxi-item *ngIf=\"hasSourceProduct()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\"\r\n [options]=\"{ type: 'default', text: 'Zum Quellprodukt' | translate, onClick: goToSourceProduct }\"></dxi-item>\r\n <dxi-item *ngIf=\"isVirtualCatalog()\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\"\r\n [options]=\"{ type: 'default', text: 'Zum Quellprodukt' | translate, onClick: goToSourceProduct }\"></dxi-item>\r\n <dxi-item *ngIf=\"modelService.loginService.hasAddonKI_TEXTS && !isVirtualCatalog()\" location=\"before\"\r\n widget=\"dxButton\" locateInMenu=\"auto\"\r\n [options]=\"{ type: 'default', text: 'Description Wizard' | translate, icon:'startswith', onClick: openConfirm }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" locateInMenu=\"auto\">\r\n <div *dxTemplate>\r\n <np-help-button>\r\n <np-help-option text=\"Wiki\" icon=\"images/Wiki.svg\"\r\n link=\"https://knowledge.nextpim.de/grundlagen?utm_source=app.nextpim.de&utm_medium=affiliate&utm_campaign=wikilink#produktdaten\"></np-help-option>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\"\r\n link=\"https://www.youtube.com/watch?v=KdDdemzDtQ8\"></np-help-option>\r\n </np-help-button>\r\n </div>\r\n </dxi-item>\r\n </dx-toolbar>\r\n\r\n <dx-load-panel [(visible)]=\"thinkingVisible\" [showIndicator]=\"true\" [showPane]=\"true\" [shading]=\"false\"\r\n [closeOnOutsideClick]=\"false\" message=\"{{'Ich überlege mir was...' | translate }}\">\r\n </dx-load-panel>\r\n <!--**************************************************************************-->\r\n <!--* TABS *-->\r\n <!--**************************************************************************-->\r\n <div *ngIf=\"!showShop\" class=\"p-2\">\r\n <dx-tab-panel [dataSource]=\"pages\" [(selectedIndex)]=\"modelService.loginService.selectedProductTabIndex\"\r\n class=\"detailTabs marginBottom\" [animationEnabled]=\"true\" [showNavButtons]=\"true\" [swipeEnabled]=\"false\"\r\n (onTitleClick)=\"tabChange()\">\r\n <div *dxTemplate=\"let company of 'title'\">\r\n <span>{{company.title}}</span>\r\n <span *ngIf=\"company.type=='MAIN' && model.hintsActiv && !validationService.validationResult.productInfosValid\"\r\n class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span\r\n *ngIf=\"company.type=='PRICE' && model.hintsActiv && (!validationService.validationResult.productPricesValid)\"\r\n class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span\r\n *ngIf=\"company.type=='ORDER' && model.hintsActiv && (!validationService.validationResult.productOrderDetailsValid)\"\r\n class=\"glyphicon glyphicon-info-sign color1Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='MIME' && model.hintsActiv && !validationService.validationResult.productMimesValid\"\r\n class=\"glyphicon glyphicon-info-sign color3Text\" style=\"margin-left: 8px;\"></span>\r\n <span\r\n *ngIf=\"company.type=='FEAT' && model.hintsActiv && !validationService.validationResult.productFeaturesValid\"\r\n class=\"glyphicon glyphicon-info-sign color4Text\" style=\"margin-left: 8px;\"></span>\r\n <span\r\n *ngIf=\"company.type=='LOGI' && model.hintsActiv && !validationService.validationResult.productLogisticsValid\"\r\n class=\"glyphicon glyphicon-info-sign color5Text\" style=\"margin-left: 8px;\"></span>\r\n <span\r\n *ngIf=\"company.type=='REFE' && model.hintsActiv && !validationService.validationResult.productReferencesValid\"\r\n class=\"glyphicon glyphicon-info-sign color5Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='LEGAL' && model.hintsActiv && !validationService.validationResult.productLegalValid\"\r\n class=\"glyphicon glyphicon-info-sign color5Text\" style=\"margin-left: 8px;\"></span>\r\n <span *ngIf=\"company.type=='CAT' && hasCatalogMappings(model)\" class=\"glyphicon glyphicon-info-sign nextPimBlue\"\r\n style=\"margin-left: 8px;\"></span>\r\n\r\n </div>\r\n\r\n <!--INFOS-->\r\n <div *dxTemplate=\"let company of 'productTemplate'\">\r\n <infos [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(hasAddonEDENUMBERS)]=\"modelService.loginService.hasAddonEDENUMBERS\"\r\n [(hasAddonPRODUCT_DETAILS)]=\"modelService.loginService.hasAddonPRODUCT_DETAILS\"\r\n [isPrint]=\"modelService?.catalogService?.catalog?.usePrintView\"\r\n [(selectedTranslateLanguage)]=\"modelService.loginService.selectedTranslateLanguage\"\r\n [(productTranslation)]=\"modelService.translationService.productTranslation\"\r\n (translationUpdateFunction)=\"translationUpdateFunctions($event)\" [(validationService)]=\"validationService\"\r\n (onValueChanged)=\"productUpdate($event)\">\r\n </infos>\r\n </div>\r\n\r\n <!--MIMES-->\r\n <div *dxTemplate=\"let company of 'medienTemplate'\">\r\n <mimes [(model)]=\"model.mimes\" [(product)]=\"model\" [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\" [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\" (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"productUpdate($event)\" [(modelService)]=\"modelService\">\r\n </mimes>\r\n </div>\r\n\r\n <!--FEATURES-->\r\n <div *dxTemplate=\"let company of 'featuresTemplate'\">\r\n <editfeaturesystemlist [(featureSystems)]=\"model.featureSystems\" [(model)]=\"model\"\r\n [(hintsAktiv)]=\"model.hintsActiv\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(hasAddonCLASSIFICATION)]=\"modelService.loginService.hasAddonCLASSIFICATION\"\r\n [(hasAddonECOMMERCE)]=\"modelService.loginService.hasAddonECOMMERCE\" [(modelService)]=\"modelService\"\r\n displayMode=\"edit\" (addEcommerceFeatures)=\"addEcommerceFeatures($event)\"\r\n (addClassificationFeatures)=\"addClassificationFeatures($event)\" (onValueChanged)=\"productUpdate($event)\">\r\n </editfeaturesystemlist>\r\n </div>\r\n\r\n <!--OrderDetail-->\r\n <div *dxTemplate=\"let company of 'orderDetailTemplate'\">\r\n <orderDetail [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(hasAddonLEGALITY)]=\"modelService.loginService.hasAddonLEGALITY\"\r\n [(hasAddonNordwest)]=\"modelService.loginService.hasAddonNordwest\"\r\n (currentCustomerDefaultLanguage)=\"modelService.loginService.currentCustomerDefaultLanguage\"\r\n (onValueChanged)=\"productUpdate($event)\">\r\n </orderDetail>\r\n </div>\r\n\r\n <!--Preise-->\r\n <div *dxTemplate=\"let company of 'preislistenTemplate'\">\r\n <prices [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(hasAddonLEGALITY)]=\"modelService.loginService.hasAddonLEGALITY\"\r\n [(hasAddonNordwest)]=\"modelService.loginService.hasAddonNordwest\"\r\n (currentCustomerDefaultLanguage)=\"modelService.loginService.currentCustomerDefaultLanguage\"\r\n [(priceLists)]=\"modelService.catalogService.catalog.priceLists\" (onValueChanged)=\"productUpdate($event)\">\r\n </prices>\r\n </div>\r\n\r\n <!--Logistic-->\r\n <div *dxTemplate=\"let company of 'logistikTemplate'\">\r\n <logistic [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(hasAddonLEGALITY)]=\"modelService.loginService.hasAddonLEGALITY\" [(modelService)]=\"modelService\"\r\n (onValueChanged)=\"productUpdate($event)\">\r\n </logistic>\r\n </div>\r\n\r\n <!--Referenzen-->\r\n <div *dxTemplate=\"let company of 'referenceTemplate'\">\r\n <references [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(lastImageUpload)]=\"modelService.catalogService.catalog.lastImageUpload\"\r\n (onValueChanged)=\"productUpdate($event)\" (onReferencePrepare)=\"onReferencePrepare($event)\"\r\n [(modelService)]=\"modelService\">\r\n </references>\r\n </div>\r\n\r\n <!--ProductSuppliers-->\r\n <div *dxTemplate=\"let company of 'productSuppliersTemplate'\">\r\n <productSuppliers [(model)]=\"model.suppliers\" [(product)]=\"model\" [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\" [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(catalogId)]=\"modelService.catalogService.catalog.id\"\r\n [(customerId)]=\"modelService.loginService.currentUser.customerId\" (reloadNedded)=\"reload()\"\r\n (onValueChanged)=\"productUpdate($event)\" [(modelService)]=\"modelService\">\r\n </productSuppliers>\r\n </div>\r\n\r\n <!-- Electronic Sales -->\r\n <div *dxTemplate=\"let company of 'electronicSalesTemplate'\">\r\n <electronicSales [(model)]=\"model\"\r\n [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\"\r\n [showLinkButtons]=\"true\"\r\n (onValueChanged)=\"productUpdate($event)\">\r\n </electronicSales>\r\n </div>\r\n\r\n <!--UDXs-->\r\n <div *dxTemplate=\"let company of 'udxTemplate'\">\r\n <udx [(model)]=\"model.udxs\" [(product)]=\"model\" [(showToolTips)]=\"showToolTips\"\r\n [(showProToolTips)]=\"showProToolTips\" [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n (onValueChanged)=\"productUpdate($event)\">\r\n </udx>\r\n </div>\r\n\r\n <!--SEO - SEA-->\r\n <div *dxTemplate=\"let company of 'seoTemplate'\">\r\n <seo [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\" (onValueChanged)=\"productUpdate($event)\">\r\n </seo>\r\n </div>\r\n\r\n <!--WAWI-->\r\n <div *dxTemplate=\"let company of 'wawiTemplate'\">\r\n <wawi [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\" (onValueChanged)=\"productUpdate($event)\">\r\n </wawi>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'categoriesTemplate'\">\r\n <categories [(product)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" (reloadNedded)=\"reload()\" (onValueChanged)=\"productUpdate($event)\">\r\n </categories>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'legalTemplate'\">\r\n <productLegal [(model)]=\"model\" [(showToolTips)]=\"showToolTips\" [(showProToolTips)]=\"showProToolTips\"\r\n [(showPlaceHolders)]=\"showPlaceHolders\" [showLinkButtons]=\"true\"\r\n [(warrantyClasses)]=\"modelService.warrantyClassService.warrantyClasses\"\r\n [(hazmatClasses)]=\"modelService.hazmatClassService.hazmatClasses\" (onValueChanged)=\"productUpdate($event)\">\r\n </productLegal>\r\n </div>\r\n\r\n <div *dxTemplate=\"let company of 'productAsJsonTemplate'\">\r\n <productAsJson>\r\n </productAsJson>\r\n </div>\r\n\r\n\r\n </dx-tab-panel>\r\n </div>\r\n <div *ngIf=\"showShop\" class=\"px-2 pb-2 pt-1\">\r\n <div class=\"d-flex flex-row-reverse p-2\">\r\n <div\r\n *ngIf=\"modelService?.loginService?.hasAddonSHOP_VIEW && !modelService?.catalogService?.catalog?.usePrintView\">\r\n <div class=\"dx-field px-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"EDIT\" | translate }}</div>\r\n <dx-switch [(value)]=\"showShop\" switchedOffText=\"EDIT\" switchedOnText=\"Shop\"\r\n (onValueChanged)=\"shopViewUpdate($event)\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Shop\" | translate }}</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"modelService.loginService.hasAddonTemplateLukas\">\r\n <div class=\"dx-field px-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"norm\" | translate }}</div>\r\n <dx-switch [(value)]=\"templateLukas\" switchedOffText=\"norm\" switchedOnText=\"LuE\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"LuE\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"this.modelService.systemService.templateLukas\">\r\n <shopViewLukas></shopViewLukas>\r\n </div>\r\n <div *ngIf=\"!this.modelService.systemService.templateLukas\">\r\n <shopView [(model)]=\"shopViewModel\"></shopView>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<dx-popup [width]=\"500\" [height]=\"800\" [showTitle]=\"true\" title=\"{{ 'Description Wizard' | translate }}\"\r\n [dragEnabled]=\"false\" [hideOnOutsideClick]=\"true\" [showCloseButton]=\"true\" [(visible)]=\"confirmVisible\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Starten' | translate,width:'100%', onClick: confirmGenerate }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kosten pro Text' | translate }}</div>\r\n <div class=\"dx-field-value\"><dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\"\r\n [value]=\"invoiceSetting.pricePerOpenAi\"></dx-number-box></div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Benutztes Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.usedLimit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.limit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Freibetrag' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.allowance\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Training' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [items]=\"teachingSets\" [(value)]=\"teachingSet\" displayExpr=\"name\"></dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Generiere HTML' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch hint=\"hintMessage\" [(value)]=\"generateHTML\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { Message } from \"../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AddClassification } from '../../Model/classification/AddClassification';\r\nimport { FeatureSystem } from '../../Model/Catalog/FeatureModels/FeatureSystem';\r\nimport { FeatureValueContainer } from '../../Model/classification/FeatureValueContainer';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { MassDataChangeService } from \"../../Services/CatalogManagement/massDataChange.service\";\r\nimport { CatalogService } from \"../../Services/CatalogManagement/catalog.service\";\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { InvoiceService } from \"../../Services/invoice.service\";\r\nimport { TeachingSet } from \"../../Model/OpenAi/teachingset\";\r\nimport { InvoiceSettingDto } from \"../../Model/Dto/InvoiceSettingDto\";\r\nimport { TeachingSetService } from \"../../Services/teachingSet.service\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"productDetail\",\r\n templateUrl: \"productDetail.component.html\",\r\n styleUrls: [\"./../shared/detail.css\", \"productDetail.component.css\"]\r\n})\r\nexport class ProductDetailComponent implements OnInit {\r\n @Output() onMassDataEdit = new EventEmitter<Product>();\r\n\r\n confirmVisible: boolean = false;\r\n invoiceSetting: InvoiceSettingDto;\r\n teachingSet: TeachingSet;\r\n teachingSets: TeachingSet[];\r\n generateHTML = false;\r\n\r\n constructor(public modelService: ModelService,\r\n public translate: TranslateService,\r\n public validationService: ValidationService,\r\n public userManagement: UserManagementService,\r\n public massDataService: MassDataChangeService,\r\n public catalogService: CatalogService,\r\n public invoiceService: InvoiceService,\r\n public teachingSetService: TeachingSetService) {\r\n this.goToSourceProduct = this.goToSourceProduct.bind(this);\r\n this.openMassDataChange = this.openMassDataChange.bind(this);\r\n this.isMaster = this.isMaster.bind(this);\r\n this.generateKiText = this.generateKiText.bind(this);\r\n this.openConfirm = this.openConfirm.bind(this);\r\n this.confirmGenerate = this.confirmGenerate.bind(this);\r\n this.share = this.share.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.modelService?.catalogService?.catalog?.isVirtual;\r\n }\r\n\r\n hasSourceProduct(): boolean {\r\n return this.model.sourceProductId != undefined;\r\n }\r\n\r\n thinkingVisible: boolean = false;\r\n txtProdukt: string;\r\n txtMedien: string;\r\n txtUdx: string;\r\n txtFeatures: string;\r\n txtPreislisten: string;\r\n txtSEO: string;\r\n txtLogistik: string;\r\n txtReferenzen: string;\r\n txtProduktUnbekannt: string;\r\n txtCategories: string;\r\n txtChange: string;\r\n txtLegal: string;\r\n txtOrderDetail: string;\r\n txtProductAsJson: string;\r\n txtSuppliers: string;\r\n txtElectronicSales: string;\r\n\r\n translateTexts() {\r\n this.txtProdukt = this.translate.instant(\"Produkt\");\r\n this.txtMedien = this.translate.instant(\"Medien\");\r\n this.txtUdx = this.translate.instant(\"Udx\");\r\n this.txtFeatures = this.translate.instant(\"Features\");\r\n this.txtPreislisten = this.translate.instant(\"Preislisten\");\r\n this.txtOrderDetail = this.translate.instant(\"Bestelldetails\");\r\n this.txtSEO = this.translate.instant(\"SEO - SEA\");\r\n this.txtLogistik = this.translate.instant(\"Logistik\");\r\n this.txtReferenzen = this.translate.instant(\"Referenzen\");\r\n this.txtProduktUnbekannt = this.translate.instant(\"Produkt unbekannt\");\r\n this.txtCategories = this.translate.instant(\"Kategorien\");\r\n this.txtLegal = this.translate.instant(\"Recht\");\r\n this.txtProductAsJson = this.translate.instant(\"JSON\");\r\n this.txtSuppliers = this.translate.instant(\"Lieferanten\");\r\n this.txtElectronicSales = this.translate.instant('ElectronicSales');\r\n }\r\n\r\n reset() {\r\n if (this.modelService.catalogService.catalog.usePrintView) {\r\n this.pages = [\r\n { id: 1, title: this.txtProdukt, template: \"productTemplate\", type: \"MAIN\" },\r\n { id: 2, title: this.txtMedien, template: \"medienTemplate\", type: \"MIME\" },\r\n { id: 3, title: this.txtFeatures, template: \"featuresTemplate\", type: \"FEAT\" },\r\n { id: 4, title: this.txtOrderDetail, template: \"orderDetailTemplate\", type: \"ORDER\" },\r\n { id: 5, title: this.txtPreislisten, template: \"preislistenTemplate\", type: \"PRICE\" },\r\n { id: 9, title: this.txtCategories, template: \"categoriesTemplate\", type: \"CAT\" },\r\n ];\r\n } else {\r\n this.pages = [\r\n { id: 1, title: this.txtProdukt, template: \"productTemplate\", type: \"MAIN\" },\r\n { id: 2, title: this.txtMedien, template: \"medienTemplate\", type: \"MIME\" },\r\n { id: 3, title: this.txtFeatures, template: \"featuresTemplate\", type: \"FEAT\" },\r\n { id: 4, title: this.txtOrderDetail, template: \"orderDetailTemplate\", type: \"ORDER\" },\r\n { id: 5, title: this.txtPreislisten, template: \"preislistenTemplate\", type: \"PRICE\" },\r\n { id: 6, title: this.txtLogistik, template: \"logistikTemplate\", type: \"LOGI\" },\r\n { id: 7, title: this.txtReferenzen, template: \"referenceTemplate\", type: \"REFE\" },\r\n { id: 8, title: this.txtCategories, template: \"categoriesTemplate\", type: \"CAT\" }\r\n ];\r\n\r\n if (this.modelService.loginService.hasAddonUDX) {\r\n this.pages.push({ id: 9, title: this.txtUdx, template: \"udxTemplate\", type: \"0\" });\r\n }\r\n if (this.modelService.loginService.hasAddonSEO) {\r\n this.pages.push({ id: 10, title: this.txtSEO, template: \"seoTemplate\", type: \"0\" });\r\n }\r\n if (this.modelService.loginService.hasAddonLEGALITY) {\r\n this.pages.push({ id: 11, title: this.txtLegal, template: \"legalTemplate\", type: \"LEGAL\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonElectronicSales) {\r\n this.pages.push({ id: 12, title: this.txtElectronicSales, template: \"electronicSalesTemplate\", type: \"0\" });\r\n }\r\n if (this.modelService.loginService.hasAddonWawiErp) {\r\n this.pages.push({ id: 13, title: this.modelService.loginService.wawiSettings.name, template: \"wawiTemplate\", type: \"0\" });\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonDEVELOPMENT) {\r\n this.pages.push({ id: 14, title: this.txtProductAsJson, template: \"productAsJsonTemplate\", type: \"0\" });\r\n }\r\n if (this.modelService.loginService.hasAddonSUPPLIERS) {\r\n this.pages.push({ id: 15, title: this.txtSuppliers, template: \"productSuppliersTemplate\", type: \"0\" });\r\n }\r\n }\r\n }\r\n\r\n\r\n hasCatalogMappings(model: Product): boolean {\r\n\r\n if (model.catalogMappings && model.catalogMappings[1])\r\n return true;\r\n\r\n return false;\r\n\r\n }\r\n\r\n pages: { id: number; title: string; template: string; type: string; }[] = [];\r\n\r\n get model(): Product {\r\n return this.modelService.catalogService.product;\r\n }\r\n\r\n set model(product: Product) {\r\n this.modelService.catalogService.product = product;\r\n this.validationService.validateProduct(this.modelService.catalogService.product);\r\n\r\n }\r\n\r\n //ShopView\r\n shopViewUpdate(event) {\r\n if (event.value == true) {\r\n this.modelService.hazmatClassService.loadProductHazmat(this.model);\r\n this.modelService.warrantyClassService.loadProductWarranty(this.model);\r\n this.validationService.validateProduct(this.modelService.catalogService.product);\r\n }\r\n }\r\n\r\n addClassificationFeatures(event) {\r\n if (this.modelService.classificationService.selectedClassId == \"\") return;\r\n let dto = new AddClassification();\r\n dto.classificationClassId = this.modelService.classificationService.selectedClassId;\r\n dto.classificationSystemId = this.modelService.classificationService.selectedSystem.id;\r\n dto.customerId = this.modelService.catalogService.product.customerId;\r\n dto.productId = this.modelService.catalogService.product.id;\r\n\r\n this.modelService.classificationService.addClassification(dto).subscribe(\r\n (result: FeatureSystem[]) => {\r\n this.modelService.catalogService.product.featureSystems = new Array<FeatureSystem>();\r\n\r\n let that = this;\r\n result.forEach(function (r) {\r\n let fs = Object.assign(new FeatureSystem(), r);\r\n that.modelService.catalogService.product.featureSystems.push(fs);\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n get showShop(): boolean {\r\n return this.modelService.systemService.showShop;\r\n }\r\n\r\n set showShop(value) {\r\n this.modelService.systemService.showShop = value;\r\n }\r\n\r\n get templateLukas(): boolean {\r\n return this.modelService.systemService.templateLukas;\r\n }\r\n\r\n set templateLukas(value) {\r\n this.modelService.systemService.templateLukas = value;\r\n }\r\n\r\n get shopViewModel() {\r\n if (this.modelService.translationService.productTranslation != null)\r\n return this.modelService.translationService.productTranslation;\r\n return this.model;\r\n }\r\n\r\n public tabChange() {\r\n if (this.model.hintsActiv) {\r\n this.modelService.catalogService.validateProductForm();\r\n }\r\n }\r\n\r\n //ProductInfos\r\n public translationUpdateFunctions(params) {\r\n if (params.txtOrg == \"\" || params.txtOrg == null) {\r\n this.translate.get(\"Ohne deutschen Eintrag, ist keine Übersetzung möglich\").subscribe((text: string) => {\r\n this.modelService.systemService.notify(new Message(text, \"error\"));\r\n });\r\n\r\n return;\r\n }\r\n this.modelService.translationService.translationUpdate(params.txtOrg, params.txtTran);\r\n }\r\n\r\n //Reload Product z.b. für Mimes\r\n reload() {\r\n this.modelService.catalogService.treeRefresh();\r\n this.modelService.catalogService.getProduct(this.modelService.catalogService.product.id, this.modelService.loginService.currentUser.customerId, this.modelService.catalogService.catalog.id).subscribe(() => {\r\n this.validationService.validateProduct(this.modelService.catalogService.product);\r\n });\r\n }\r\n\r\n productUpdate(event = null) {\r\n try {\r\n this.modelService.catalogService.updateProduct(event).then(() => {\r\n this.validationService.validateProductPromise(this.model).then(() => {\r\n });\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n } catch (error) {\r\n console.log(\"error\" + error);\r\n }\r\n }\r\n\r\n get productMainImage(): string {\r\n if (this.modelService.catalogService.product != null && this.modelService.catalogService.product.mimes && this.modelService.catalogService.product.mimes.length > 0) {\r\n\r\n for (mime of this.modelService.catalogService.product.mimes) {\r\n if (mime.mimePurpose == \"normal\")\r\n if (mime.normUri) {\r\n return mime.normUri;\r\n }\r\n }\r\n\r\n var mime = this.modelService.catalogService.product.mimes[0];\r\n if (mime.normUri) {\r\n return mime.normUri;\r\n }\r\n\r\n }\r\n return null;\r\n }\r\n\r\n //Referencen nachladen\r\n onReferencePrepare(event) {\r\n if (event.columnIndex == 3 && event.rowType == \"data\") {\r\n if (event.data.artIdTo != null) {\r\n this.modelService.catalogService.getProductBySupplierPid(\r\n event.data.artIdTo,\r\n this.modelService.loginService.currentUser.customerId,\r\n this.modelService.catalogService.catalog.id\r\n ).subscribe(\r\n (result) => {\r\n event.data.descriptionShort = result.descriptionShort;\r\n for (let mime of result.mimes.sort((a, b) => (a.mimeOrder > b.mimeOrder) ? 1 : -1)) {\r\n if (mime.mimePurpose == \"normal\" && mime.normUri != null) {\r\n event.data.normUri = mime.normUri;\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n event.data.descriptionShort = \"\";\r\n event.data.normUri = \"\";\r\n }\r\n );\r\n } else {\r\n event.data.descriptionShort = \"\";\r\n event.data.normUri = \"\";\r\n }\r\n }\r\n }\r\n\r\n public validateProductForm() {\r\n this.modelService.catalogService.validateProductForm();\r\n }\r\n\r\n public openProductView() {\r\n //let catalogId = \"\";\r\n //if (this.model.catalogMappings.length > 0) {\r\n // catalogId = this.model.catalogMappings[0].catalogId;\r\n //} else {\r\n let catalogId = this.modelService.catalogService.selectedCatalogId;\r\n //}\r\n\r\n //this.modelService.router.navigate([\r\n // \"/getProduct\", {\r\n // queryParams: { catalogId: catalogId, customerId: this.model.customerId, supplierPid: this.model.supplierPid }\r\n // }]); \r\n window.open(\"/getProduct?catalogId=\" + catalogId + \"&customerId=\" + this.model.customerId + \"&supplierPid=\" + this.model.supplierPid);\r\n }\r\n\r\n get bigHeader() {\r\n if (window) {\r\n return (window.innerHeight > 1000);\r\n }\r\n return true;\r\n }\r\n\r\n addEcommerceFeatures() {\r\n this.modelService.catalogService.addEcommerceFeatures(this.model).subscribe(\r\n (product: Product) => {\r\n this.model.featureSystems = product.featureSystems;\r\n //this.isClassificationVisible = false;\r\n });\r\n }\r\n\r\n public classificationFeatureValues: FeatureValueContainer = {};\r\n\r\n public loadClassificationFeatures(params) {\r\n this.modelService.classificationService.getFeatureValues(params.name, params.valueSource).subscribe(result => {\r\n this.classificationFeatureValues[params.name] = result;\r\n });\r\n }\r\n\r\n\r\n\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagement.canView(name);\r\n }\r\n readOnlyUser(name: string): boolean {\r\n return !this.userManagement.canEdit(name);\r\n }\r\n\r\n isMaster(): boolean {\r\n return this.model.productCount > 0;\r\n }\r\n\r\n openMassDataChange() {\r\n this.massDataService.getEmtpyProductByMasterProduct(this.catalogService.catalog.id, this.modelService.catalogService.product.id).subscribe((result: Product) => {\r\n this.onMassDataEdit.emit(this.modelService.productService.getProductFromJson(result, this.modelService.loginService.wawiSettings));\r\n });\r\n }\r\n\r\n generateKiText() {\r\n this.thinkingVisible = true;\r\n this.invoiceService.GetInvoiceSetting(this.modelService.loginService.currentCustomer.id).subscribe(setting => {\r\n if (setting.usedLimit + setting.pricePerOpenAi > setting.limit) {\r\n this.modelService.systemService.notifyWarning(\"Diese Operation würde ihr festgelegtes Limit übersteigen\");\r\n this.thinkingVisible = false;\r\n return;\r\n }\r\n let teachingset = this.teachingSet != null ? this.teachingSet.id : \"\";\r\n this.modelService.catalogService.getProductWithGeneratedText(\r\n this.modelService.catalogService.product, \r\n this.modelService.catalogService.catalog.catalogName, \r\n teachingset,\r\n this.generateHTML\r\n ).subscribe((result: Product) => {\r\n this.reload();\r\n this.thinkingVisible = false;\r\n });\r\n });\r\n }\r\n\r\n goToSourceProduct() {\r\n var currentProduct = this.modelService.catalogService.product;\r\n\r\n if (this.hasSourceProduct()) {\r\n this.catalogService.getProduct(this.model.sourceProductId, this.model.customerId, \"\").subscribe((product: Product) => {\r\n for (var catalogMapping of product.catalogMappings) {\r\n this.modelService.catalogService.getCatalogNoSet(catalogMapping.catalogId, this.model.customerId).subscribe((catalog: Catalog) => {\r\n if (!catalog.isVirtual) {\r\n var navigateString = \"/catalog/\" + this.model.customerId + \"/\" + catalog.id + \"/product/\" + product.id;\r\n this.modelService.catalogService.selectedCatalogId = catalog.id;\r\n this.modelService.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.modelService.router.navigate([navigateString]));\r\n return;\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n for (var catalogMapping of currentProduct.catalogMappings) {\r\n this.modelService.catalogService.getCatalogNoSet(catalogMapping.catalogId, this.model.customerId).subscribe((catalog: Catalog) => {\r\n if (!catalog.isVirtual) {\r\n var navigateString = \"/catalog/\" + this.model.customerId + \"/\" + catalog.id + \"/product/\" + currentProduct.id;\r\n this.modelService.catalogService.selectedCatalogId = catalog.id;\r\n this.modelService.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.modelService.router.navigate([navigateString]));\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n openConfirm() {\r\n\r\n this.invoiceService.GetInvoiceSetting(this.modelService.loginService.currentCustomer.id).subscribe(setting => {\r\n this.invoiceSetting = setting;\r\n this.teachingSetService.getAllTrained().subscribe(sets => {\r\n this.teachingSets = sets;\r\n this.teachingSets.push({ name: \"Standard\", id: \"\", customerId: this.modelService.loginService.currentCustomer.id.toString(), samples: [], state: 2 } as TeachingSet);\r\n\r\n if (this.teachingSets.length > 0)\r\n this.teachingSet = this.teachingSets[0];\r\n\r\n this.confirmVisible = true;\r\n });\r\n });\r\n }\r\n\r\n confirmGenerate() {\r\n this.generateKiText();\r\n this.confirmVisible = false;\r\n }\r\n\r\n share() {\r\n let catalogId = this.modelService.catalogService.selectedCatalogId;\r\n let categoryId = \"\";\r\n if (this.model.catalogMappings.length > 0) {\r\n categoryId = this.model.catalogMappings[0].categoryId;\r\n }\r\n //this.clipboard.copy(\"/catalog/\" + catalogId + \"/\" + this.model.supplierPid);\r\n window.open(\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + catalogId + \"/\" + categoryId + \"/\" + this.model.id);\r\n }\r\n}\r\n","import { Template } from '../../Model/Catalog/template';\r\n\r\nexport class MassDataChangeParameter {\r\n\r\n constructor(\r\n public fullCatalog: boolean,\r\n public categoryIds: string[],\r\n public productIds: string[],\r\n public template?: Template,\r\n public deleteItems?: boolean,\r\n public deleteEmptyCategories?: boolean,\r\n ) {\r\n\r\n }\r\n}\r\n","\r\n<div class=\"d-flex flex-column w-100\">\r\n <div class=\"header d-flex flex-row px-3 pt-1 w-100\">\r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <h5>{{\"MassenDatenAenderung\" | translate}}</h5>\r\n <span innerHTML=\"{{'MassenDatenAenderung Beschreibung' | translate}}\"></span>\r\n </div>\r\n <div class=\"p-2\">\r\n <div class=\"d-flex flex-column\">\r\n\r\n <!-- <div class=\"dx-field ml-auto\">\r\n <div class=\"dx-field-label switch-left\">{{ \"EDIT\" | translate }}</div>\r\n <dx-switch [(value)]=\"showShop\" switchedOffText=\"EDIT\" switchedOnText=\"Shop\" (onValueChanged)=\"shopViewUpdate($event)\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Shop\" | translate }}</div>\r\n </div>-->\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', icon: 'revert', text: 'Zurück zur Katalogansicht' | translate, onClick: back }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', icon: 'refresh', text: 'Daten Ändern' | translate, onClick: startJob }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', icon: 'startswith', text: 'Description Wizard' | translate, onClick: startDescriptionWizard }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', icon: 'trash', text: 'Ausgewählte Artikel löschen' | translate, onClick: showDeleteJobPopup }\"></dxi-item>\r\n </dx-toolbar>\r\n <dx-popup\r\n [width]=\"600\"\r\n [height]=\"350\"\r\n [showTitle]=\"true\"\r\n [title]=\"('Ausgewählte Artikel löschen' | translate) + '?'\"\r\n [dragEnabled]=\"false\"\r\n [showCloseButton]=\"false\"\r\n [visible]=\"deleteJobPopupVisible\"\r\n [closeOnOutsideClick]=\"false\"\r\n container=\".dx-viewport\"\r\n >\r\n <dxi-toolbar-item\r\n widget=\"dxButton\"\r\n toolbar=\"bottom\"\r\n location=\"before\"\r\n [options]=\"{\r\n text: 'löschen' | translate,\r\n onClick: startDeleteJob\r\n }\"\r\n ></dxi-toolbar-item>\r\n <dxi-toolbar-item\r\n widget=\"dxButton\"\r\n toolbar=\"bottom\"\r\n location=\"after\"\r\n [options]=\"{\r\n text: 'schließen' | translate,\r\n onClick: hideDeleteJobPopup\r\n }\"\r\n ></dxi-toolbar-item>\r\n <dxo-position at=\"center\" my=\"center\" collision=\"fit\">\r\n </dxo-position>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <div *ngIf=\"true\">\r\n <div class=\"d-flex gap-1\">\r\n <dx-switch [(value)]=\"deleteCategoriesEnabled\"></dx-switch>\r\n <label class=\"pointer\" (click)=\"deleteCategoriesEnabled = !deleteCategoriesEnabled\">{{ 'Ausgewählte leere Kategorien auch löschen' | translate }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-popup>\r\n <div class=\"p-2 flex-fill\">\r\n <templateProduct class=\"h-100\"\r\n [model]=\"emptyProduct\"\r\n [(selectedElements)]=\"selectedElements\"\r\n [exportMode]=\"false\"\r\n (onValueChanged)=\"addDefaultElement($event)\"\r\n [showDragHandle]=\"false\"\r\n (elementDeleted)=\"elementDelete($event)\"\r\n (elementSelected)=\"elementSelectFunction($event)\"\r\n (excelElementDropped)=\"excelElementDrop($event)\"\r\n [(mimeUpdateMode)]=\"mimeUpdateMode\"\r\n (onMimeUpdateModeChanged)=\"mimeUpdateModeChanged($event)\"\r\n [(featureUpdateMode)]=\"featureUpdateMode\"\r\n (onFeatureUpdateModeChanged)=\"featureUpdateModeChanged($event)\"\r\n [(priceUpdateMode)]=\"priceUpdateMode\"\r\n (onPriceUpdateModeChanged)=\"priceUpdateModeChanged($event)\"\r\n [(udxUpdateMode)]=\"udxUpdateMode\"\r\n (onUdxUpdateModeChanged)=\"udxUpdateModeChanged($event)\">\r\n </templateProduct>\r\n </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { ExcelElement } from \"../../../Model/ui/ExcelElement\";\r\nimport { Product } from \"../../../Model/Catalog/product\";\r\nimport { TemplateService } from \"../../../Services/template.service\";\r\nimport { Functions } from \"../../../Services/functions\";\r\nimport { FieldNames } from \"../../../Model/FieldNames\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { SystemService } from \"../../../Services/system.service\";\r\nimport { MassDataChangeService } from \"../../../Services/CatalogManagement/massDataChange.service\";\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport { TreeItem } from \"../../../Model/Dto/TreeItem\";\r\nimport { MassDataChangeParameter } from \"../../../Model/Dto/MassDataChangeParameter\";\r\nimport { Template } from '../../../Model/Catalog/template';\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { NextPimField } from \"../../../Model/Catalog/NextPimField\";\r\n\r\n@Component({\r\n selector: 'massDataChange',\r\n templateUrl: './massDataChange.component.html',\r\n styleUrls: [\"./massDataChange.component.css\"]\r\n})\r\nexport class MassDataChangeComponent {\r\n @Input() treeList: DxTreeListComponent;\r\n @Input() emptyProduct: Product;\r\n\r\n @Output() cancel = new EventEmitter();\r\n\r\n selectedElements: string[] = [];\r\n excelModel: ExcelElement[];\r\n private fieldNames: FieldNames;\r\n DataChanges: Map<string, string> = new Map<string, string>();\r\n _backupProduct: Product;\r\n messageSpidIntPidDefaultNotAllowed: any;\r\n messageSelectTemplate: string;\r\n deleteJobPopupVisible = false;\r\n deleteCategoriesEnabled = false;\r\n\r\n constructor(public modelService: ModelService,\r\n public templateService: TemplateService,\r\n public translate: TranslateService,\r\n public systemService: SystemService,\r\n public massDataChangeService: MassDataChangeService) {\r\n\r\n this.fieldNames = new FieldNames();\r\n this.excelModel = [];\r\n this.templateService.template = new Template();\r\n this.messageSpidIntPidDefaultNotAllowed = this.translate.instant(\"messageSpidIntPidDefaultNotAllowed\");\r\n this.messageSelectTemplate = this.translate.instant(\"Bitte ein Template auswählen\") + \".\";\r\n this.startJob = this.startJob.bind(this);\r\n this.addDefaultElement = this.addDefaultElement.bind(this);\r\n this.isUpdateModeField = this.isUpdateModeField.bind(this);\r\n this.updateTemplate = this.updateTemplate.bind(this);\r\n this.back = this.back.bind(this);\r\n this.startDeleteJob = this.startDeleteJob.bind(this);\r\n this.showDeleteJobPopup = this.showDeleteJobPopup.bind(this);\r\n this.hideDeleteJobPopup = this.hideDeleteJobPopup.bind(this);\r\n this.startDescriptionWizard = this.startDescriptionWizard.bind(this);\r\n this.templateService.clearPimFieldEmitter.subscribe(async x => await this.clearPimField(x));\r\n }\r\n\r\n public back() {\r\n this.templateService.template.templateItems = [];\r\n this.cancel.emit();\r\n }\r\n\r\n startDescriptionWizard() {\r\n this.modelService.catalogService.startMassGenerateKITexts.emit();\r\n }\r\n\r\n public startJob() {\r\n let productIds: string[] = [];\r\n let selectedData: TreeItem[] = this.treeList.instance.getSelectedRowsData();\r\n\r\n let cat = selectedData.filter(t => t.type == \"cat\");\r\n let grp = selectedData.filter(t => t.type == \"grp\");\r\n let pro = selectedData.filter(t => t.type == \"pro\");\r\n\r\n let templateItems = this.templateService.createTemplateItems(this.excelModel, false);\r\n //let masters = pro.filter(p => p.hasChilds);\r\n\r\n\r\n this.templateService.template.isExportTemplate = false;\r\n this.templateService.template.templateItems = this.templateService.createTemplateItems(this.excelModel, false);\r\n //this.templateService.updateTemplate(this.templateService.template);\r\n\r\n\r\n let param = new MassDataChangeParameter(cat.length > 0, grp.map(x => x.id.toString()), pro.map(x => x.id.toString()), this.templateService.template);\r\n\r\n\r\n\r\n this.massDataChangeService.startJob(this.modelService.catalogService.catalog.id, param).subscribe(() => {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Änderungen wurden als Job gestartet\")), 1500);\r\n this.back();\r\n });\r\n }\r\n\r\n public get product() {\r\n if (this.emptyProduct) {\r\n // this.modelService.productService.createWawiIfNeeded(this._product, this.modelService.loginService.wawiSettings);\r\n return this.emptyProduct;\r\n }\r\n\r\n this.buildListsAndTables();\r\n return this.emptyProduct;\r\n }\r\n\r\n private buildListsAndTables() {\r\n if (this.emptyProduct == null || this.emptyProduct == undefined) {\r\n return;\r\n }\r\n\r\n this.emptyProduct.featureSystems.forEach(item => {\r\n item.featureSystemList = this.templateService.createListForSystem(item);\r\n item.featureSystemTable = this.templateService.createTableForSystem(item);\r\n });\r\n\r\n this.emptyProduct.featurelist = this.templateService.createTableForAllSystems(this.emptyProduct.featureSystems);\r\n this.emptyProduct.descWithoutHTML = Functions.stripHTML(this.emptyProduct.descriptionLong);\r\n this.emptyProduct.groupString = this.templateService.createGroupString(this.excelModel);\r\n }\r\n\r\n public async addDefaultElement(e) {\r\n if (e == null || e.event == undefined)\r\n return;\r\n\r\n let field = e.dField;\r\n let system = e.dSystem;\r\n let element = e.dElement;\r\n let value = e.value;\r\n\r\n if (field == null || field == undefined)\r\n return;\r\n\r\n if ((field == this.fieldNames.supplierPid ||\r\n field == this.fieldNames.internatonalPid ||\r\n field == this.fieldNames.supplierInternationalId ||\r\n field == this.fieldNames.pid)) {\r\n this.systemService.notify(new Message(this.messageSpidIntPidDefaultNotAllowed, \"info\"), 3000);\r\n return;\r\n }\r\n\r\n if (field == this.fieldNames.featureSystemOrder || field == this.fieldNames.fOrder) {\r\n if (system.length != 24) {\r\n this.templateService.changeKey(this.emptyProduct, e.previousValue, e.value, system, element, field, this.excelModel);\r\n this.updateTemplate(null);\r\n return;\r\n }\r\n }\r\n\r\n if (field == this.fieldNames.featureSystemName || field == this.fieldNames.fName || field == this.fieldNames.fUnit) {\r\n this.templateService.changeKey(this.emptyProduct, e.previousValue, e.value, system, element, field, this.excelModel);\r\n }\r\n\r\n if (field == \"MIME_ORDER\" || field == \"PRICE_LIST_ORDER\" || field == \"PRICE_ORDER\") {\r\n this.templateService.changeKey(this.emptyProduct, e.previousValue, e.value, system, element, field, this.excelModel);\r\n this.updateTemplate(null);\r\n return;\r\n }\r\n\r\n if (!e.createTemplateItem) {\r\n return;\r\n }\r\n\r\n this.templateService.refresExcelElementhOrder(this.excelModel);\r\n\r\n let count = this.excelModel.length;\r\n\r\n let excelElement = new ExcelElement();\r\n\r\n if (this.templateService.hasExcelElement(this.excelModel, field, system, element)) {\r\n excelElement = this.templateService.getExcelElement(this.excelModel, field, system, element);\r\n this.templateService.clearPreviewRow1Row2(excelElement);\r\n this.templateService.clearOptions(excelElement);\r\n } else {\r\n excelElement.id = (count + 1).toString();\r\n excelElement.pimFields.push(new NextPimField(element, system, field));\r\n excelElement.title = null;\r\n\r\n this.templateService.clearPreviewRow1Row2(excelElement);\r\n this.excelModel.push(excelElement);\r\n }\r\n\r\n if (field == this.fieldNames.descriptionLong) { // bei dem HTML Editor kommt es nicht in e.value mit...\r\n value = await this.templateService.getValueFromProduct(this.emptyProduct, false, false, excelElement, field, system, element, \"|\");\r\n } else if (!this.isUpdateModeField(field)) {\r\n if (value == null || value == undefined) {\r\n value = \"\";\r\n } else {\r\n value = await this.templateService.getValueFromProduct(this.emptyProduct, false, false, excelElement, field, system, element, \"|\");\r\n }\r\n }\r\n\r\n this.templateService.setOptions(excelElement, value, \"\", \"\", \"\", \"|\");\r\n this.updateTemplate(null);\r\n\r\n }\r\n\r\n private isUpdateModeField(field: string): boolean {\r\n if (field == this.fieldNames.featureUpdateMode || field == this.fieldNames.mimeUpdateMode || field == this.fieldNames.priceUpdateMode ||\r\n field == this.fieldNames.udxUpdateMode || field == this.fieldNames.supplierUpdateMode) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public async updateTemplate(e) {\r\n console.log(\"updated Template\");\r\n this.templateService.template.isExportTemplate = false;\r\n this.templateService.template.templateItems = this.templateService.createTemplateItems(this.excelModel, false);\r\n //this.templateService.updateTemplate(this.templateService.template);\r\n\r\n // Das ist nicht nötig (wir haben daraus grade das Template erzeugt & gespeichert)\r\n // UND es führt zu dem unerwünschten Verhalten s. Ticket https://nextpim.myjetbrains.com/youtrack/issue/nPIM-789\r\n //this.excelModel = this.templateService.createExcelElements(this.templateService.template.templateItems, this.templateService.template.isUseable);\r\n\r\n for (let item of this.excelModel) {\r\n if (item.defaultValue != \"\") {\r\n // brauchen wir gar nicht. wert passt ja schon.\r\n // bei einigen Controls wird eine Endlosschleife ausgelöst...\r\n //let value = await this.templateService.getValueFromProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.seperator);\r\n //if (item.defaultValue != value) {\r\n // this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.defaultValue, item.seperator, true);\r\n //}\r\n\r\n\r\n\r\n // UPDATEMODE TODO HERE ????\r\n\r\n\r\n\r\n } else {\r\n // Bei neuen Elementen wurde der Seperator (naturgemäß) noch gar nicht gesetzt\r\n // Strings werden bei \"\" gesplittet:\r\n // Aus 1 z.B.Status \"blau\" werden 4 Status \"b\" \"l\" \"a\" \"u\"\r\n\r\n if (item.pimFields.findIndex(x => this.templateService.needsStandardSeperator(x.field)) != -1) {\r\n if (item.seperator == null || item.seperator == undefined || item.seperator == \"\") {\r\n item.seperator = \"|\";\r\n }\r\n }\r\n item.pimFields.forEach(x => {\r\n this.templateService.setValueOnProduct(this.emptyProduct, true, false, item, x.field, x.systemKey, x.elementKey, item.row1, this.excelModel, item.seperator, true);\r\n });\r\n }\r\n\r\n //this.templateService.setValueOnProduct(this._product, true, this.exportMode, item, item.field, item.system, item.element, item.row1, item.seperator, true);\r\n\r\n };\r\n }\r\n\r\n //Mime - Template Product\r\n private _mimeUpdateMode: string = \"NORMAL\";\r\n\r\n get mimeUpdateMode(): string {\r\n return this._mimeUpdateMode;\r\n }\r\n\r\n @Input()\r\n set mimeUpdateMode(value: string) {\r\n this._mimeUpdateMode = value;\r\n }\r\n\r\n mimeUpdateModeChanged(e) {\r\n if (this.mimeUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.mimeUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.mimeUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.mimeUpdateMode = e.selectedItem;\r\n }\r\n\r\n //Feature - TemplateProduct Component\r\n private _featureUpdateMode: string = \"NORMAL\";\r\n\r\n get featureUpdateMode(): string {\r\n return this._featureUpdateMode;\r\n }\r\n\r\n @Input()\r\n set featureUpdateMode(value: string) {\r\n this._featureUpdateMode = value;\r\n }\r\n\r\n featureUpdateModeChanged(e) {\r\n if (this.featureUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.featureUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.featureUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.featureUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n // Price - Template Product\r\n private _priceUpdateMode: string = \"NORMAL\";\r\n\r\n get priceUpdateMode(): string {\r\n return this._priceUpdateMode;\r\n }\r\n\r\n @Input()\r\n set priceUpdateMode(value: string) {\r\n this._priceUpdateMode = value;\r\n }\r\n\r\n priceUpdateModeChanged(e) {\r\n\r\n if (this.priceUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.priceUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.priceUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.priceUpdateMode = e.selectedItem;\r\n }\r\n\r\n\r\n //Udx - Template Product\r\n private _udxUpdateMode: string = \"NORMAL\";\r\n\r\n get udxUpdateMode(): string {\r\n return this._udxUpdateMode;\r\n }\r\n\r\n @Input()\r\n set udxUpdateMode(value: string) {\r\n this._udxUpdateMode = value;\r\n }\r\n\r\n udxUpdateModeChanged(e) {\r\n\r\n if (this.udxUpdateMode == e.selectedItem) {\r\n return;\r\n }\r\n\r\n e.dField = this.fieldNames.udxUpdateMode;\r\n e.dSystem = -1;\r\n e.dElement = -1;\r\n e.value = e.selectedItem;\r\n e.event = this.fieldNames.udxUpdateMode; // sonst steigt addDefaultElement(e); aus...\r\n\r\n this.addDefaultElement(e);\r\n\r\n this.udxUpdateMode = e.selectedItem;\r\n }\r\n\r\n public async clearPimField(pimField: NextPimField, needRefresh: boolean = true) {\r\n let isFeatureKey = pimField.field == this.fieldNames.fName || pimField.field == this.fieldNames.featureSystemName || pimField.field == this.fieldNames.fUnit;\r\n\r\n\r\n let matchingExcelItem = this.excelModel.filter(x => x.pimFields.some(y => (isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey));\r\n\r\n for (let excelItem of matchingExcelItem) {\r\n let pimFieldsToRemove = excelItem.pimFields.filter(y => (isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey);\r\n\r\n for (const x of pimFieldsToRemove) {\r\n await this.templateService.setValueOnProduct(this.product, false, false, excelItem, x.field, x.systemKey, x.elementKey, null, this.excelModel, null, true);\r\n }\r\n\r\n\r\n excelItem.pimFields = excelItem.pimFields.filter(y => !((isFeatureKey || y.field == pimField.field) && y.elementKey == pimField.elementKey && y.systemKey == pimField.systemKey));\r\n this.templateService.clearOptions(excelItem);\r\n }\r\n\r\n this.excelModel = this.excelModel.filter(x => x.pimFields.length > 0 || (x.title != null && x.title != \"\"));\r\n\r\n this.templateService.clearPimFieldEmitterDone.emit();\r\n\r\n if (needRefresh)\r\n await this.updateTemplate(null);\r\n\r\n }\r\n\r\n public elementDelete(e) {\r\n let fields = e.dFields;\r\n let detailFields = e.dDetailFields;\r\n let system = e.dSystem;\r\n let element = e.dElement;\r\n\r\n let needsUpdate = false;\r\n\r\n for (let field of fields) {\r\n let found = this.excelModel.find(i => i.pimFields.findIndex(x => x.field == field && x.systemKey == system) != -1);\r\n needsUpdate = this.removeOrClearExcelElement(found, needsUpdate);\r\n }\r\n // wenn ein übergeordneter datensatz gelöscht wurde, müssen auch die zugehörigen details entfernt werden\r\n if (needsUpdate && detailFields != null) {\r\n for (let field of detailFields) {\r\n // es müssen immer alle entfernt werden die zu dem system gehören\r\n // ==> filter, nicht find!!\r\n let found = this.excelModel.filter(i => i.pimFields.findIndex(x => x.field == field && x.systemKey == system) != -1);\r\n\r\n for (let item of found) {\r\n needsUpdate = this.removeOrClearExcelElement(item, needsUpdate);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public showDeleteJobPopup() {\r\n this.deleteJobPopupVisible = true;\r\n this.deleteCategoriesEnabled = false;\r\n }\r\n\r\n public hideDeleteJobPopup() {\r\n this.deleteJobPopupVisible = false;\r\n this.deleteCategoriesEnabled = false;\r\n }\r\n\r\n public startDeleteJob() {\r\n let selectedData: TreeItem[] = this.treeList.instance.getSelectedRowsData();\r\n\r\n const categories = selectedData.filter(t => t.type == \"grp\");\r\n const products = selectedData.filter(t => t.type == \"pro\");\r\n\r\n this.templateService.template.isExportTemplate = false;\r\n this.templateService.template.templateItems = this.templateService.createTemplateItems(this.excelModel, false);\r\n\r\n const param = new MassDataChangeParameter(false, categories.map(x => x.id.toString()), products.map(x => x.id.toString()), null, true, this.deleteCategoriesEnabled);\r\n\r\n this.massDataChangeService.startJob(this.modelService.catalogService.catalog.id, param).subscribe(async (value) => {\r\n const categoriesCount = categories.length;\r\n const productsCount = products.length;\r\n if (categoriesCount === 0) {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Es wurden Produkte gelöscht\", { count: productsCount })), 1500);\r\n } else {\r\n this.modelService.systemService.notify(new Message(this.translate.instant(\"Es wurden Produkte und Kategorien gelöscht\", { categoriesCount, productsCount })), 1500);\r\n }\r\n this.back();\r\n });\r\n }\r\n\r\n public removeOrClearExcelElement(excelElement: ExcelElement, needsUpdate: boolean): boolean {\r\n let index = this.excelModel.indexOf(excelElement);\r\n if (index >= 0) {\r\n if (excelElement.title == null || excelElement.title == undefined || excelElement.title == \"\") {\r\n this.excelModel.splice(index, 1);\r\n } else {\r\n excelElement.pimFields = [];\r\n }\r\n needsUpdate = true;\r\n }\r\n return needsUpdate;\r\n }\r\n\r\n\r\n public elementSelectFunction(e) {\r\n this.selectedElements = e;\r\n }\r\n\r\n\r\n public excelElementDrop(e) {\r\n let field = e.newField;\r\n let system = e.newSystem;\r\n let element = e.newElement;\r\n\r\n this.addElementFromExcel(field, system, element, e.fromIndex);\r\n }\r\n\r\n public async addElementFromExcel(field: string, system: string, element: string, index: number) {\r\n // eig. ist es ein replace... just naming...\r\n if (this.templateService.hasExcelElement(this.excelModel, field, system, element)) {\r\n let existing = this.templateService.getExcelElement(this.excelModel, field, system, element);\r\n let existingIndex = this.excelModel.indexOf(existing);\r\n\r\n this.excelModel[existingIndex].pimFields = [];\r\n this.templateService.clearOptions(this.excelModel[existingIndex]);\r\n }\r\n\r\n let existing = this.excelModel[index];\r\n\r\n // kommt nur im import mode vor => wert im produkt zurücksetzen (leeren)\r\n existing.pimFields.forEach(x => {\r\n this.templateService.setValueOnProduct(this.emptyProduct, false, false, existing, x.field, x.systemKey, x.elementKey, null, this.excelModel, null, true)\r\n });\r\n\r\n if (this.excelModel[index].pimFields.findIndex(x => x.field == field && x.systemKey == system && x.elementKey == element) == -1)\r\n this.excelModel[index].pimFields.push(new NextPimField(element, system, field));\r\n\r\n this.templateService.clearOptions(this.excelModel[index]);\r\n this.updateTemplate(null);\r\n }\r\n}\r\n\r\n","export class MassGenerateKITextsParameter {\r\n\r\n constructor(\r\n public catalogId: string,\r\n public fullCatalog: boolean,\r\n public categoryIds: string[],\r\n public productIds: string[],\r\n public genVariantTexts: boolean,\r\n public teachingSetId: string,\r\n public generateHTML: boolean,\r\n ) {\r\n\r\n }\r\n}\r\n","<div class=\"d-flex flex-column w-100\">\r\n <div class=\"header d-flex flex-row px-3 pt-1 w-100\">\r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <h5>{{\"MassGenerateKITextTitle\" | translate}}</h5>\r\n <span innerHTML=\"{{'MassGenertateKiTextDescription' | translate}}\"></span>\r\n </div>\r\n </div>\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', icon: 'revert', text: 'Zurück zur Katalogansicht' | translate, onClick: back }\"></dxi-item>\r\n </dx-toolbar>\r\n <div class=\"dx-fieldset\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Einzelne Texte für Varianten generieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"genVariantTexts\" (onValueChanged)=\"calculateProds()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Generiere HTML' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch hint=\"hintMessage\" [(value)]=\"generateHTML\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <dx-button text=\"{{ 'Erstelle KI Texte' | translate }}\" style=\"width:'100%'\" (onClick)=\"openConfirm()\"></dx-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<dx-popup [width]=\"500\"\r\n [height]=\"800\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'KI Texte erstellen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"confirmVisible\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Starten' | translate,width:'100%', onClick: confirmGenerateText }\"></dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-fieldset\" id=\"popup\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kosten pro Text' | translate }}</div>\r\n <div class=\"dx-field-value\"><dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [value]=\"invoiceSetting.pricePerOpenAi\"></dx-number-box></div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Texte die generiert werden' | translate }}</div>\r\n <div class=\"dx-field-value\"><dx-number-box [readOnly]=\"true\" [(value)]=\"productCount\"></dx-number-box></div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Gesamtkosten' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [value]=\"productCount * invoiceSetting.pricePerOpenAi\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Benutztes Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.usedLimit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.limit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Freibetrag' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.allowance\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'TeachingSet' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [items]=\"teachingSets\" [(value)]=\"teachingSet\" displayExpr=\"name\"></dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#popup' }\"\r\n [(visible)]=\"loading\"\r\n message=\"{{'Es wird eine Uebersicht ueber die anfallenden Kosten erstellt.'| translate }}\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"false\"\r\n [hideOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n </div>\r\n</dx-popup>\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { MassGenerateKITextsParameter } from \"../../../Model/MassGenerateKITextsParameter\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { TreeItem } from \"../../../Model/Dto/TreeItem\";\r\nimport { InvoiceService } from \"../../../Services/invoice.service\";\r\nimport { InvoiceSettingDto } from \"../../../Model/Dto/InvoiceSettingDto\";\r\nimport { TeachingSet } from \"../../../Model/OpenAi/teachingset\";\r\nimport { TeachingSetService } from \"../../../Services/teachingSet.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: 'massGenerateKIText',\r\n templateUrl: './massGenerateKIText.component.html'\r\n})\r\nexport class MassGenerateKITextComponent implements OnInit {\r\n @Input() treeList: DxTreeListComponent;\r\n @Output() cancel = new EventEmitter();\r\n\r\n productCount: number = 0;\r\n genVariantTexts: boolean = false;\r\n price = 0.10;\r\n confirmVisible = false;\r\n invoiceSetting: InvoiceSettingDto;\r\n teachingSet: TeachingSet;\r\n teachingSets: TeachingSet[];\r\n loading: boolean = false;\r\n generateHTML = false;\r\n\r\n constructor(public modelService: ModelService, public invoiceService: InvoiceService, public teachingSetService: TeachingSetService, public translate: TranslateService) {\r\n this.ngOnInit = this.ngOnInit.bind(this);\r\n this.calculateProds = this.calculateProds.bind(this);\r\n this.openConfirm = this.openConfirm.bind(this);\r\n this.confirmGenerateText = this.confirmGenerateText.bind(this);\r\n this.back = this.back.bind(this);\r\n\r\n this.invoiceSetting = new InvoiceSettingDto();\r\n teachingSetService.getAllTrained().subscribe(sets => {\r\n this.teachingSets = sets;\r\n this.teachingSets.push({ name: this.translate.instant(\"Standard\"), id: \"\", customerId: this.modelService.loginService.currentCustomer.id.toString(), samples: [], state: 2 } as TeachingSet);\r\n\r\n if (this.teachingSets.length > 0)\r\n this.teachingSet = this.teachingSets[0];\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n/* this.calculateProds();\r\n this.treeList.onSelectionChanged.subscribe(() => {\r\n this.calculateProds();\r\n });*/\r\n }\r\n\r\n calculateProds() {\r\n this.invoiceService.getTotalProducts(this.modelService.loginService.currentCustomer.id, this.buildParam()).subscribe((count:\r\n number) => {\r\n this.productCount = count\r\n });\r\n }\r\n\r\n buildParam(): MassGenerateKITextsParameter {\r\n const selectedData: TreeItem[] = this.treeList.instance.getSelectedRowsData();\r\n const teachingSetID = this.teachingSet != null ? this.teachingSet.id : null;\r\n const generateHTML = this.generateHTML;\r\n\r\n const cat = selectedData.filter(t => t.type == \"cat\");\r\n if (cat.length > 0)\r\n return new MassGenerateKITextsParameter(\r\n cat[0].id.toString(), \r\n cat.length > 0, \r\n null, \r\n null, \r\n this.genVariantTexts, \r\n teachingSetID,\r\n generateHTML\r\n );\r\n const grp = selectedData.filter(t => t.type == \"grp\");\r\n const pro = selectedData.filter(t => t.type == \"pro\");\r\n\r\n const param = new MassGenerateKITextsParameter(\r\n this.modelService.catalogService.catalog.id, \r\n cat.length > 0, \r\n grp.map(x => x.id.toString()), \r\n pro.map(x => x.id.toString()), \r\n this.genVariantTexts, \r\n teachingSetID,\r\n generateHTML\r\n );\r\n return param;\r\n }\r\n\r\n openConfirm() {\r\n this.loading = true;\r\n this.invoiceService.getTotalProducts(this.modelService.loginService.currentCustomer.id, this.buildParam()).subscribe((count:\r\n number) => {\r\n this.productCount = count;\r\n this.loading = false;\r\n });\r\n this.invoiceService.GetInvoiceSetting(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.invoiceSetting = result;\r\n this.confirmVisible = true;\r\n });\r\n }\r\n\r\n confirmGenerateText() {\r\n //start job\r\n this.invoiceService.startMassGenerateOpenAITextsJob(this.modelService.loginService.currentCustomer.id, this.buildParam()).subscribe(() => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Der Job wurde gestartet\"), 2);\r\n });\r\n this.confirmVisible = false;\r\n this.cancel.emit();\r\n }\r\n back() {\r\n this.cancel.emit();\r\n }\r\n}\r\n","import { Input, Output, EventEmitter, OnInit, Directive } from '@angular/core';\r\nimport { ModelService } from '../../../Services/model.service';\r\n\r\n@Directive()\r\nexport abstract class UserActionBaseComponent implements OnInit {\r\n @Input() showPlaceHolders: boolean;\r\n @Output() userActionToggleStartButton = new EventEmitter<boolean>();\r\n @Output() userActionStarted = new EventEmitter<any>();\r\n @Output() userActionComponentInitiated = new EventEmitter<UserActionBaseComponent>();\r\n\r\n constructor(public modelService: ModelService) { }\r\n\r\n ngOnInit() {\r\n //notify the parent component of this current instance\r\n //Attention: the call to ngOnInit has to be done from every (overwritten) ngOnInit()-Method (super.ngOnInit())\r\n this.userActionComponentInitiated.emit(this);\r\n }\r\n\r\n //this should be implementet in every single component which inherits\r\n abstract startMacro();\r\n}\r\n","export class Card {\r\n constructor(\r\n public elements?: number[],\r\n public name?: string) {\r\n }\r\n}\r\n","export enum UserActionViewDetailIcon {\r\n Wrench, Trash, Random, Check, Search, Refresh, EyeClose\r\n}\r\n","import { UserActionViewDetail } from \"../catalog/functions/userAction/userActionViewDetails\";\r\nimport { UserActionViewDetailIcon } from \"../catalog/functions/userAction/userActionViewDetailsIcon\";\r\n\r\nexport const USERACTIONVIEWDETAILS: UserActionViewDetail[] = [\r\n { id: 1, icon: UserActionViewDetailIcon.Wrench, hintLookupKey: \"RemovePathFromMimeSourcelong\", textLookupKey: \"RemovePathFromMimeSourceShort\", getCssClassForIcon: UserActionViewDetail.prototype.getCssClassForIcon },\r\n\r\n];\r\n","import { UserActionViewDetailIcon } from \"./userActionViewDetailsIcon\";\r\n\r\nexport class UserActionViewDetail {\r\n id: number;\r\n icon: UserActionViewDetailIcon;\r\n\r\n text?: string;\r\n textLookupKey: string;\r\n hint?: string;\r\n hintLookupKey: string;\r\n\r\n getCssClassForIcon(): string {\r\n switch (this.icon) {\r\n case UserActionViewDetailIcon.Trash:\r\n return \"glyphicon glyphicon-trash\";\r\n case UserActionViewDetailIcon.Wrench:\r\n return \"glyphicon glyphicon-wrench\";\r\n case UserActionViewDetailIcon.Random:\r\n return \"glyphicon glyphicon-random\";\r\n case UserActionViewDetailIcon.Check:\r\n return \"glyphicon glyphicon-check\";\r\n case UserActionViewDetailIcon.Search:\r\n return \"glyphicon glyphicon-search\";\r\n case UserActionViewDetailIcon.Refresh:\r\n return \"glyphicon glyphicon-refresh\";\r\n case UserActionViewDetailIcon.EyeClose:\r\n return \"glyphicon glyphicon-eye-close\";\r\n default:\r\n console.log(`missing css class for icon ${this.icon}`);\r\n return \"glyphicon\";\r\n }\r\n }\r\n}\r\n","<!--11 Bilder konvertieren-->\r\n<!--MAX RESOLUTION-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Seitenlänge' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ maxResolution > 0 ? 'placeLabelSmall' : '' }}\">MAX RESOLUTION</label>\r\n <dx-number-box [min]=\"16\" [max]=\"8192\" [(value)]=\"maxResolution\" [showClearButton]=\"true\"></dx-number-box>\r\n </div>\r\n</div>\r\n<!--SQUARE IMAGE-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quadratische Ansicht' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageSquare ? 'placeLabelSmall' : '' }}\">SQUARE IMAGE</label>\r\n <dx-switch [(value)]=\"imageSquare\"></dx-switch>\r\n </div>\r\n</div>\r\n<!--BACKGROUND COLOR-->\r\n<div *ngIf=\"imageSquare\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Hintergrundfarbe wählen' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageBgColor ? 'placeLabelSmall' : '' }}\">BACKGROUND COLOR</label>\r\n <dx-color-box [(value)]=\"imageBgColor\"></dx-color-box>\r\n </div>\r\n </div>\r\n <div class=\"alert alert-warning\">\r\n {{ 'Achtung! Hintergrundfarbe kann nur einmal geändert werden.' | translate }}\r\n </div>\r\n</div>\r\n<!--FILE TYPE-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Dateityp' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ imageType?.length > 0 ? 'placeLabelSmall' : '' }}\">FILE TYPE</label>\r\n <dx-select-box [(value)]=\"imageType\" [items]=\"imageTypes\" [searchEnabled]=\"true\" placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-convertPictures\",\r\n templateUrl: \"userAction-convertPictures.component.html\"\r\n})\r\nexport class UserActionConvertPicturesComponent extends UserActionBaseComponent {\r\n _imageTypes: string[] = [\"jpg\", \"png\"];\r\n _imageType: string = \"jpg\";\r\n _maxResolution: number = 1920;\r\n\r\n imageSquare = false;\r\n imageBgColor = '#FFFFFF';\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n get imageTypes(): string[] {\r\n return this._imageTypes;\r\n }\r\n\r\n get imageType(): string {\r\n return this._imageType;\r\n }\r\n\r\n set imageType(value:string) {\r\n this._imageType = value;\r\n }\r\n\r\n get maxResolution(): number {\r\n return this._maxResolution;\r\n }\r\n\r\n set maxResolution(value: number) {\r\n this._maxResolution = value;\r\n }\r\n\r\n startMacro() {\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = \"ResizeImages(\" + this.maxResolution + \":\" + this.imageType + \":\" + (this.imageSquare ? 1 : 0) + ':' + this.imageBgColor + \")\";\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional steps\r\n this.imageType = \"jpg\";\r\n this.imageSquare = false;\r\n this.maxResolution = 1920;\r\n this.imageBgColor = '#FFFFFF';\r\n\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","import { OnInit, Directive } from '@angular/core';\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionBaseComponent } from '../userAction-base.component';\r\n\r\n@Directive()\nexport abstract class UserActionByListComponent extends UserActionBaseComponent implements OnInit {\r\n _inputList: string = \"\";\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n protected formatList(value) {\r\n var tmp: string = value;\r\n tmp = tmp.split(\";\").join(\"\\n\");\r\n tmp = tmp.split(\"\\r\").join(\"\\n\");\r\n tmp = tmp.split(\" \").join(\"\\n\");\r\n tmp = tmp.split(\",\").join(\"\\n\");\r\n while (tmp.includes(\"\\n\\n\")) {\r\n tmp = tmp.replace(\"\\n\\n\", \"\\n\");\r\n }\r\n if (tmp.substr(0, 1) == \"\\n\") {\r\n tmp = tmp.substr(1);\r\n }\r\n if (tmp.substr(-1, 1) == \"\\n\") {\r\n tmp = tmp.substr(0, tmp.length - 1);\r\n }\r\n return tmp;\r\n }\r\n\r\n protected formatListIgnoreSpace(value) {\r\n var tmp: string = value;\r\n tmp = tmp.split(\";\").join(\"\\n\");\r\n tmp = tmp.split(\"\\r\").join(\"\\n\");\r\n tmp = tmp.split(\",\").join(\"\\n\");\r\n while (tmp.includes(\"\\n\\n\")) {\r\n tmp = tmp.replace(\"\\n\\n\", \"\\n\");\r\n }\r\n if (tmp.substr(0, 1) == \"\\n\") {\r\n tmp = tmp.substr(1);\r\n }\r\n if (tmp.substr(-1, 1) == \"\\n\") {\r\n tmp = tmp.substr(0, tmp.length - 1);\r\n }\r\n return tmp;\r\n }\r\n\r\n\r\n onValueChangedFormatList(event) {\r\n if (event.event == null)\r\n return;\r\n\r\n this.inputList = this.formatList(event.value);\r\n }\r\n\r\n onValueChangedFormatListIgnoreSpace(event) {\r\n if (event.event == null)\r\n return;\r\n\r\n this.inputList = this.formatListIgnoreSpace(event.value);\r\n }\r\n\r\n get inputList(): string {\r\n return this._inputList;\r\n }\r\n\r\n set inputList(value: string) {\r\n this._inputList = value;\r\n }\r\n\r\n startMacro() {\r\n throw new Error(\"this is a abstract method\");\r\n }\r\n}\r\n","<!--15 Löschen per Liste-->\r\n<dx-lookup placeholder=\"{{'SuchKriterium' | translate}}\" [searchEnabled]=\"false\" [items]=\"searchValues\" [(value)]=\"searchValue\">\r\n</dx-lookup>\r\n\r\n\r\n\r\n<div *ngIf=\"searchValue != 'Hersteller'\">\r\n <div class=\"dx-text-area-coloured w-100\">\r\n <dx-text-area [value]=\"inputList\" (onValueChanged)=\"onValueChangedFormatList($event)\" [height]=\"400\">\r\n </dx-text-area>\r\n </div>\r\n</div>\r\n\r\n\r\n<div *ngIf=\"searchValue == 'Hersteller'\">\r\n\r\n\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#list', at: 'center' }\"\r\n [(visible)]=\"loadingVisible\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"true\"\r\n [hideOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n\r\n <div class=\"dx-text-area-coloured w-100\" id=\"list\">\r\n <dx-list [dataSource]=\"manufacturerDataSource\"\r\n [noDataText]=\"geNoDataText()\"\r\n [allowItemDeleting]=\"false\"\r\n [showSelectionControls]=\"true\"\r\n selectionMode=\"all\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [(selectedItems)]=\"selectedManufacturer\"\r\n [searchEnabled]=\"true\"\r\n searchMode=\"contains\"> </dx-list>\r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionByListComponent } from '../userAction-byList/userAction-byList.component';\r\nimport { ExportFilterService } from \"../../../../Services/exportFilter.service\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-deleteByList\",\r\n templateUrl: \"userAction-deleteByList.component.html\"\r\n})\r\nexport class UserActionDeleteByListComponent extends UserActionByListComponent {\r\n searchValues = [\"SupplierPID\", \"EAN\", \"gtin\", \"Hersteller\", \"SupplierAltPID\"];\r\n searchValue = \"SupplierPID\";\r\n\r\n loadingVisible = false;\r\n\r\n manufacturerFilters = [];\r\n selectedManufacturer = [];\r\n\r\n manufacturerDataSource: DataSource;\r\n\r\n constructor(public modelService: ModelService, public exportFilterService: ExportFilterService) {\r\n super(modelService);\r\n\r\n this.geNoDataText = this.geNoDataText.bind(this);\r\n this.loadingVisible = true;\r\n this.exportFilterService.getManufacturerFilters(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .toPromise().then((filter: string[]) => {\r\n this.manufacturerFilters = filter.filter(x => x != null);\r\n this.manufacturerDataSource = new DataSource({\r\n store: this.manufacturerFilters,\r\n paginate: true,\r\n pageSize: 10\r\n });\r\n }).finally(() => {\r\n this.loadingVisible = false;\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n handlePropertyChange(event) {\r\n this.searchValue = event.item.value;\r\n }\r\n\r\n geNoDataText() {\r\n if (this.loadingVisible) {\r\n return \"Daten werden geladen\";\r\n } else {\r\n return \"keine Daten gefunden\";\r\n\r\n }\r\n }\r\n\r\n\r\n startMacro() {\r\n this.inputList = this.formatList(this.inputList);\r\n\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n startAction.actionType = `DeleteByList`;\r\n let values = this.inputList.split(\"\\n\");\r\n if (this.searchValue == \"Hersteller\")\r\n values = this.selectedManufacturer;\r\n\r\n startAction.actionParameter = JSON.stringify({ SearchValue: this.searchValue, Values: values })\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.inputList = \"\";\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionByListComponent } from \"../userAction-byList/userAction-byList.component\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-searchByList\",\r\n templateUrl: \"userAction-searchByList.component.html\"\r\n})\r\nexport class UserActionSearchByListComponent extends UserActionByListComponent {\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n this.handlePropertyChange = this.handlePropertyChange.bind(this);\r\n this.startMacro = this.startMacro.bind(this);\r\n this.searchValue = this.searchValues[0];\r\n }\r\n\r\n searchValues = [\"SupplierPID\", \"EAN\", \"gtin\",\"InternationalPid\", \"Hersteller\", \"SupplierAltPID\",\"Lieferanten-Artikelnummer\"];\r\n searchValue = \"\";\r\n handlePropertyChange(event) {\r\n this.searchValue = event.item.value; \r\n }\r\n\r\n startMacro() {\r\n this.inputList = this.formatListIgnoreSpace(this.inputList);\r\n\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = \"SearchByList(\"+ this.searchValue+\"|\" + this.inputList.split(\"\\n\").join(\",\") + \")\";\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step\r\n this.inputList = \"\";\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--16 Suchen per Liste-->\r\n<dx-lookup placeholder=\"{{'SuchKriterium' | translate}}\" [searchEnabled]=\"false\" [items]=\"searchValues\" [(value)]=\"searchValue\">\r\n</dx-lookup>\r\n<div class=\"dx-text-area-coloured w-100\">\r\n <dx-text-area [value]=\"inputList\" (onValueChanged)=\"onValueChangedFormatListIgnoreSpace($event)\" [height]=\"400\">\r\n </dx-text-area>\r\n</div>\r\n","import { UpdateTemplateItem } from './UpdateTemplateItem';\r\n\r\nexport class UpdateTemplate {\r\n\r\n constructor(\r\n public id?: string, \r\n public name?: string,\r\n public customerId?: string,\r\n public addNewChilds?: boolean,\r\n public ignoreEmptyValues?: boolean,\r\n public items?: UpdateTemplateItem[],\r\n\r\n\r\n \r\n ) {\r\n }\r\n}\r\n\r\n\r\n","export class UpdateTemplateItem {\r\n\r\n constructor(\r\n public group?: string, \r\n public field?: string,\r\n public isActive?: boolean\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h5>{{ 'Update Template' | translate }}</h5>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelService.updateTemplateService.selectedTemplate.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"modelService.updateTemplateService.selectedTemplate.name\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Neue Varianten von vorhandenen Produkten übernehmen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"modelService.updateTemplateService.selectedTemplate.addNewChilds\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Leere Werte in der Quelle ignorieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch (onValueChanged)=\"update($event)\" [(value)]=\"modelService.updateTemplateService.selectedTemplate.ignoreEmptyValues\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <h5>{{ 'Felder' | translate }}</h5>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-tile-view class=\"dx-tile-content excelFields\" [baseItemWidth]=\"285\" direction=\"vertical\" width=\"100%\" height=\"100%\" baseItemHeight=\"15\">\r\n <dxi-item *ngFor=\"let group of groups\"\r\n [widthRatio]=\"1\"\r\n [heightRatio]=\"getHeightRatio(group)\">\r\n <div class=\"p-1 pb-3\">\r\n <dx-check-box [value]=\"isGroupSelected(group)\"\r\n (onValueChanged)=\"changedField($event,group)\"\r\n style=\"float:left;padding-right:10px;\">\r\n </dx-check-box>\r\n <b>{{group}}</b>\r\n </div>\r\n <div *ngFor=\"let field of modelService.updateTemplateService.selectedTemplate.items\">\r\n <div *ngIf=\"field.group==group\" style=\"height:35px\">\r\n <div style=\"width:40px;float:left;padding-left:10px;\">\r\n <dx-check-box [(value)]=\"field.isActive\" (onValueChanged)=\"update($event)\" [readOnly]=\"readOnly(field.field)\"></dx-check-box>\r\n </div>\r\n <label class=\"exportLabel\">{{field.field}}</label>\r\n <div style=\"width:calc(100% - 30px);margin-left:40px;\" class=\"exportText\">\r\n\r\n <div class=\"d-flex\">\r\n\r\n <div>\r\n {{ field.field | translate }}\r\n </div>\r\n\r\n <div *ngIf=\"field.field=='MIME_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeMIME\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeMIME\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Medien übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Medien geloscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Medien, die im Quellkatalog bereits existieren, uberschrieben. Nur im Zielkatalog vorhandene Medien werden nicht geandert.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die ORDER-Nummer.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"field.field=='FEATURE_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeFEATURE\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeFEATURE\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Features übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Features geloscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Features, die im Quellkatalog bereits existieren, uberschrieben. Nur im Zielkatalog vorhandene Features werden nicht geandert.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die der Feature Name in Kombination mit der Einheit.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"field.field=='PRICE_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activePRICE\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activePRICE\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Preise übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Preise geloscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Preise, die im Quellkatalog bereits existieren, uberschrieben. Nur im Zielkatalog vorhandene Preise werden nicht geandert.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die ORDER-Nummer.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *ngIf=\"field.field=='UDX_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeUDX\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeUDX\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl UDX übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen UDX geloscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die UDX, die im Quellkatalog bereits existieren, uberschrieben. Nur im Zielkatalog vorhandene UDX werden nicht geandert.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die ORDER-Nummer.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"field.field=='CATEGORY_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeCategory\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeCategory\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Kategorien übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Kategorien gelöscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Kategorien, die im Quellkatalog bereits existieren, uberschrieben und neue hinzugefügt. Nur im Zielkatalog vorhandene Kategorien bleiben bestehen.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist der GROUP_STRING.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *ngIf=\"field.field=='STATUS_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeStatus\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeStatus\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Status übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Status gelöscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Status, die im Quellkatalog bereits existieren, uberschrieben und Neue hinzugefügt. Nur im Zielkatalog vorhandene Status bleiben bestehen.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die Status Text.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *ngIf=\"field.field=='SUPPLIER_UPDATE_MODE'\" class=\"ml-3\">\r\n <div id=\"activeStatus\" class=\"dx-link dx-icon-info dx-link-icon infoBadgeStyle\"></div>\r\n <dx-tooltip target=\"#activeStatus\" showEvent=\"dxhoverstart\" hideEvent=\"dxhoverend\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p>\r\n {{ 'Ist der Update Modus inaktiv, obwohl Lieferanten übertragen werden sollen, werden zu Beginn des Updates die im Zielkatalog vorhandenen Lieferanten gelöscht und aus dem Quellkatalog neu angelegt.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Ist der Update Modus aktiv, werden beim Update im Zielkatalog nur die Lieferanten, die im Quellkatalog bereits existieren, uberschrieben und Neue hinzugefügt. Nur im Zielkatalog vorhandene Lieferanten bleiben bestehen.' | translate }}\r\n </p>\r\n <p>\r\n {{ 'Unterscheidungsmerkmal ist die Lieferanten-Nr. in Verbindung mit dem gültig ab Datum.' | translate }}\r\n </p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dxi-item>\r\n </dx-tile-view>\r\n </div>\r\n</div>\r\n\r\n\r\n \r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { UpdateTemplate } from \"../Model/Catalog/UpdateTemplate\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StringResponse } from \"../Model/Dto/StringResponse\";\r\n\r\n@Component({\r\n selector: \"UpdateTemplate\",\r\n templateUrl: \"updateTemplate.component.html\",\r\n styleUrls: [\"updateTemplate.component.css\"]\r\n})\r\nexport class UpdateTemplateComponent implements OnInit {\r\n\r\n groups: string[] = [];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.initFieldsAndGroups();\r\n }\r\n\r\n public initFieldsAndGroups() {\r\n\r\n this.modelService.catalogService.loadFields(); \r\n this.groups = this.modelService.updateTemplateService.GetFieldGroups();\r\n\r\n }\r\n\r\n readOnly(field) {\r\n return false;\r\n }\r\n\r\n public getHeightRatio(group): number {\r\n var list = this.modelService.catalogService.fields.filter(item => item.group == group);\r\n return list.length + 2;\r\n }\r\n\r\n blockUpdates: boolean = false;\r\n blockChangedField: boolean = false;\r\n\r\n changedField(event, group) {\r\n if (!event.event)\r\n return;\r\n\r\n for (var field of this.modelService.updateTemplateService.selectedTemplate.items) {\r\n if (field.group == group) {\r\n if (field.field != \"SUPPLIER_PID\") {\r\n field.isActive = event.value;\r\n }\r\n else {\r\n field.isActive = true;\r\n }\r\n }\r\n }\r\n this.blockUpdates = false;\r\n this.update(event);\r\n }\r\n\r\n isGroupSelected(group) {\r\n let allFields = this.modelService.updateTemplateService.selectedTemplate.items;\r\n return !allFields.some(x => x.group == group && !x.isActive);\r\n }\r\n\r\n get fields() {\r\n return this.modelService.catalogService.fields;\r\n }\r\n\r\n async delay(ms: number) {\r\n await new Promise(resolve => setTimeout(() => resolve(true), ms)).then(() => console.log(\"fired\"));\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n update(e) {\r\n if (this.blockUpdates || !e.event)\r\n return;\r\n this.blockChangedField = true;\r\n this.modelService.updateTemplateService.updateUpdateTemplate(this.modelService.updateTemplateService.selectedTemplate).subscribe(\r\n (result: StringResponse) => {\r\n this.delay(100).then(any => {\r\n this.blockChangedField = false;\r\n });\r\n });\r\n }\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"model\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Update Templates im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowClick)=\"onSelectionChangedClick($event)\"\r\n (onRowRemoved)=\"onDeleteClicked($event)\">\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Update Template suchen' | translate }}\"></dxo-search-panel>\r\n <div *dxTemplate=\"let toolbaritem of 'newTemplateButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues Update Template' | translate }}\" (onClick)=\"addTemplate()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"UpdateTemplatesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column [helpSwitch]=\"helpSwitch\" look=\"light\">\r\n <div slot=\"content\" class=\"h-100 px-3\">\r\n <dx-scroll-view *ngIf=\"modelService.updateTemplateService.selectedTemplate\" showScrollbar=\"always\">\r\n <UpdateTemplate></UpdateTemplate>\r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { UpdateTemplate } from '../Model/Catalog/UpdateTemplate';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TemplateItemTemplate } from '../Model/Catalog/TemplateItemTemplate';\r\nimport { UpdateTemplateItem } from '../Model/Catalog/UpdateTemplateItem';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"updateTemplates\",\r\n templateUrl: \"updateTemplates.component.html\"\r\n})\r\nexport class UpdateTemplatesComponent implements OnInit {\r\n\r\n @Input() helpSwitch?: boolean = true;\r\n\r\n model: UpdateTemplate[];\r\n\r\n \r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.translate.get('Update Templates').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newTemplateButtonTemplate'\r\n }); \r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.modelService.updateTemplateService.getUpdateTemplates().subscribe(\r\n (result: UpdateTemplate[]) => {\r\n this.model = result;\r\n });\r\n this.modelService.catalogService.loadFields();\r\n\r\n \r\n }\r\n\r\n\r\n\r\n\r\n onSelectionChangedClick(e) {\r\n this.modelService.updateTemplateService.selectedTemplate = e.data;\r\n this.checkAllFieldsExist();\r\n }\r\n\r\n checkAllFieldsExist() {\r\n this.fields.forEach((field: TemplateItemTemplate) => {\r\n if (this.modelService.updateTemplateService.selectedTemplate.items.find(element => element.field == field.field) == undefined) {\r\n let item = new UpdateTemplateItem();\r\n item.field = field.field;\r\n item.group = field.group;\r\n item.isActive = false;\r\n if (item.field == \"SUPPLIER_PID\")\r\n item.isActive = true;\r\n this.modelService.updateTemplateService.selectedTemplate.items.push(item);\r\n }\r\n }); \r\n }\r\n\r\n get fields() {\r\n return this.modelService.catalogService.fields;\r\n }\r\n\r\n\r\n onDeleteClicked(e) {\r\n this.modelService.updateTemplateService.deleteUpdateTemplate(e.data);\r\n }\r\n\r\n addTemplate() {\r\n\r\n let updateTemplate = new UpdateTemplate();\r\n updateTemplate.customerId = this.modelService.loginService.currentUser.customerId;\r\n \r\n this.modelService.updateTemplateService.addUpdateTemplate(updateTemplate).subscribe(\r\n (result: UpdateTemplate) => { \r\n this.modelService.updateTemplateService.selectedTemplate = result;\r\n this.checkAllFieldsExist();\r\n this.model.push(this.modelService.updateTemplateService.selectedTemplate);\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { Customer } from \"../../../../Model/User/Customer\";\r\nimport { Catalog } from \"../../../../Model/Catalog/Catalog\";\r\nimport { UpdateTemplate } from '../../../../Model/Catalog/UpdateTemplate';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FieldNames } from \"../../../../Model/FieldNames\";\r\nimport { Message } from \"../../../../Model/System/Message\";\r\nimport { SystemService } from \"../../../../Services/system.service\";\r\n\r\n@Component({\r\n selector: \"userAction-updateCatalog\",\r\n templateUrl: \"userAction-updateCatalog.component.html\"\r\n})\r\nexport class UserActionUpdateCatalogComponent extends UserActionBaseComponent {\r\n private fieldNames: FieldNames;\r\n _catalogs: Catalog[];\r\n customers: Customer[];\r\n _replacePrice: boolean = false;\r\n _selectedCustomer: string;\r\n _sourceCatalog: string = \"\";\r\n updateTemplates: UpdateTemplate[];\r\n selectedTemplate: string = \"\";\r\n txtSelectTemplate: string;\r\n txtSelectCatalog: string;\r\n useEanAsKey: boolean = false;\r\n keys: string[] = [];\r\n selectedKey: string;\r\n\r\n warningSpidUpdate: string = \"\";\r\n warningIntPidUpdate: string = \"\";\r\n warningSpaltidUpdate: string = \"\";\r\n\r\n constructor(public modelService: ModelService, public systemService: SystemService, public translate: TranslateService) {\r\n super(modelService);\r\n\r\n // merken:\r\n this.currentNavigationTitle = this.modelService.systemService.currentNavigationTitle;\r\n\r\n this.fieldNames = new FieldNames();\r\n\r\n this.warningSpidUpdate = this.translate.instant(\"warningSpidUpdate\");\r\n this.warningIntPidUpdate = this.translate.instant(\"warningIntPidUpdate\");\r\n this.warningSpaltidUpdate = this.translate.instant(\"warningSpaltidUpdate\");\r\n\r\n this.keys.push(this.translate.instant(\"SUPPLIER_PID\"));\r\n this.keys.push(this.translate.instant(\"INTERNATIONAL_PID\"));\r\n this.keys.push(this.translate.instant(\"SUPPLIER_ALT_PID\"));\r\n this.selectedKey = this.keys[0];\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomer = this.modelService.loginService.currentCustomer.id;\r\n });\r\n this.modelService.updateTemplateService.getUpdateTemplates().subscribe((templates: UpdateTemplate[]) => {\r\n this.updateTemplates = templates;\r\n if (templates.length > 0) {\r\n this.selectedTemplate = templates[0].id;\r\n\r\n this.onKeyChanged(null);\r\n }\r\n });\r\n\r\n this.txtSelectTemplate = this.translate.instant(\"Bitte wählen Sie ein Update-Template aus\");\r\n this.txtSelectCatalog = this.translate.instant(\"Bitte wählen Sie mindestens einen Katalog aus\");\r\n\r\n // der CTOR von updateTemplates ändert ihn, wir müssen den wieder zurücksetzen:\r\n this.modelService.systemService.currentNavigationTitle = this.currentNavigationTitle;\r\n }\r\n\r\n\r\n\r\n currentNavigationTitle: string = \"\";\r\n\r\n _showPopup: boolean = false;\r\n\r\n get showPopup() {\r\n return this._showPopup;\r\n }\r\n\r\n set showPopup(value: boolean) {\r\n this._showPopup = value;\r\n\r\n if (value) {\r\n // reicht in ngOnInit:\r\n // der CTOR von updateTemplates ändert ihn, wir müssen den wieder zurücksetzen:\r\n //this.modelService.systemService.currentNavigationTitle = this.currentNavigationTitle;\r\n }\r\n else {\r\n // nach dem Schließen des Popup die Liste neu laden, falls ein neues Template angelegt wurde:\r\n this.modelService.updateTemplateService.getUpdateTemplates().subscribe((templates: UpdateTemplate[]) => {\r\n this.updateTemplates = templates;\r\n if (templates.length > 0 && this.selectedTemplate == \"\") {\r\n this.selectedTemplate = templates[0].id;\r\n\r\n this.onKeyChanged(null);\r\n }\r\n });\r\n }\r\n }\r\n\r\n showEditTemplates() {\r\n this.showPopup = true;\r\n }\r\n\r\n\r\n\r\n get catalogs(): Catalog[] {\r\n return this._catalogs;\r\n }\r\n\r\n set catalogs(value: Catalog[]) {\r\n this._catalogs = value;\r\n }\r\n\r\n /* get customers(): Customer[] {\r\n return this._customers;\r\n }\r\n \r\n set customers(value: Customer[]) {\r\n this._customers = value;\r\n }\r\n */\r\n get replacePrice(): boolean {\r\n return this._replacePrice;\r\n }\r\n\r\n set replacePrice(value: boolean) {\r\n this._replacePrice = value;\r\n }\r\n\r\n get selectedCustomer(): string {\r\n return this._selectedCustomer;\r\n }\r\n\r\n set selectedCustomer(value: string) {\r\n this._selectedCustomer = value;\r\n this.modelService.catalogService.getCatalogs(this._selectedCustomer)\r\n .subscribe((result: Catalog[]) => {\r\n this.catalogs = result.filter(c => !c.isVirtual);\r\n });\r\n }\r\n\r\n get sourceCatalog(): string {\r\n return this._sourceCatalog;\r\n }\r\n\r\n set sourceCatalog(sourceCatalog: string) {\r\n this._sourceCatalog = sourceCatalog;\r\n }\r\n\r\n editTemplatesClick() {\r\n this.modelService.router.navigate([\"updateTemplates\"]);\r\n }\r\n\r\n\r\n\r\n onKeyChanged($event) {\r\n\r\n let template = this.updateTemplates.filter(u => u.id == this.selectedTemplate)[0];\r\n if (template == null || template == undefined) {\r\n return;\r\n }\r\n\r\n template.items.forEach(item => {\r\n switch (this.selectedKey) {\r\n case this.keys[0]:\r\n if (item.isActive && item.field == this.fieldNames.supplierPid) {\r\n // hinweis, supplierPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningSpidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n case this.keys[1]:\r\n if (!this.useEanAsKey && item.isActive && item.field == this.fieldNames.internatonalPid) {\r\n // hinweis, internatonalPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningIntPidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n case this.keys[2]:\r\n if (!this.useEanAsKey && item.isActive && item.field == this.fieldNames.supplierAltPid) {\r\n // hinweis, supplierAltPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningSpaltidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n startMacro() {\r\n if (this.sourceCatalog == \"\") {\r\n this.modelService.systemService.notifyInfo(this.txtSelectCatalog);\r\n return;\r\n }\r\n if (this.sourceCatalog == this.modelService.catalogService.catalog.id) {\r\n\r\n return;\r\n }\r\n if (this.selectedTemplate == \"\") {\r\n this.modelService.systemService.notifyInfo(this.txtSelectTemplate);\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentCustomer.id;\r\n startAction.actionId = `UpdateFromCatalog(${this.selectedCustomer}:${this.sourceCatalog}:${this.selectedTemplate}:${this.keys.findIndex(x => x == this.selectedKey)})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step\r\n this.sourceCatalog = \"\";\r\n\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--17 Update von Katalog-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Account' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomer?.length > 0 ? 'placeLabelSmall' : '' }}\">ACCOUNT</label>\r\n <dx-select-box [(value)]=\"selectedCustomer\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quellkatalog' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ sourceCatalog?.length > 0 ? 'placeLabelSmall' : '' }}\">SOURCE CATALOG</label>\r\n <dx-select-box [(value)]=\"sourceCatalog\"\r\n [dataSource]=\"catalogs\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Update Template' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedTemplate?.length > 0 ? 'placeLabelSmall' : '' }}\">UPDATE TEMPLATE</label>\r\n <dx-select-box [(value)]=\"selectedTemplate\"\r\n [dataSource]=\"updateTemplates\"\r\n [searchEnabled]=\"true\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Schlüssel' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <!--<div class=\"dx-field-label switch-left\">{{ \"SUPPLIER_PID\" | translate }}</div>\r\n <dx-switch [(value)]=\"useEanAsKey\"\r\n switchedOffText=\"SUPPLIER_PID\"\r\n switchedOnText=\"INTERNATIONAL_PID\"\r\n (onValueChanged)=\"onKeyChanged($event)\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"INTERNATIONAL_PID\" | translate }}</div>-->\r\n <dx-select-box [(value)]=\"selectedKey\"\r\n [dataSource]=\"keys\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<!--<div class=\"dx-field\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value\">\r\n <dx-button icon=\"edit\" (onClick)=\"editTemplatesClick()\">\r\n </dx-button>\r\n </div>\r\n</div>-->\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value\">\r\n <dx-button icon=\"edit\" (onClick)=\"showEditTemplates()\">\r\n </dx-button>\r\n </div>\r\n</div>\r\n\r\n<np-dialog [popupWidth]=\"1200\"\r\n [popupHeight]=\"800\"\r\n [popupTitle]=\"showPopup ? ('Update Templates' | translate) : ('Update Templates' | translate)\"\r\n [(popupVisible)]=\"showPopup\">\r\n\r\n <div slot=\"content\" class=\"h-100 d-flex flex-row\">\r\n <updateTemplates [helpSwitch]=\"false\"></updateTemplates>\r\n </div>\r\n</np-dialog>\r\n","<!--51 Update to Catalog-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Account' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomer?.length > 0 ? 'placeLabelSmall' : '' }}\">ACCOUNT</label>\r\n <dx-select-box [(value)]=\"selectedCustomer\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Zielkataloge' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCatalogs?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'Zielkataloge auswählen' | translate }}</label>\r\n <dx-drop-down-box id=\"catalogsBox\"\r\n [(value)]=\"selectedCatalogs\"\r\n valueExpr=\"id\"\r\n displayExpr=\"catalogName\"\r\n [showClearButton]=\"true\"\r\n [dataSource]=\"catalogs\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-data-grid [dataSource]=\"catalogs\"\r\n keyExpr=\"id\"\r\n [columns]=\"['catalogName']\"\r\n [selection]=\"{ mode: 'multiple' }\"\r\n [hoverStateEnabled]=\"true\"\r\n [paging]=\"{ enabled: true, pageSize: 10 }\"\r\n [filterRow]=\"{ visible: true }\"\r\n [scrolling]=\"{ mode: 'infinite' }\"\r\n [height]=\"345\"\r\n [(selectedRowKeys)]=\"selectedCatalogs\">\r\n </dx-data-grid>\r\n </div>\r\n </dx-drop-down-box>\r\n\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#catalogsBox' }\"\r\n [(visible)]=\"loading\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"true\"\r\n [closeOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n <dx-button stylingMode=\"contained\"\r\n text=\"{{'Passende Kataloge auswählen'| translate}}\"\r\n type=\"normal\"\r\n (onClick)=\"clickSelectValidCatalogs()\">\r\n </dx-button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Update Template' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedTemplate?.length > 0 ? 'placeLabelSmall' : '' }}\">UPDATE TEMPLATE</label>\r\n <dx-select-box [(value)]=\"selectedTemplate\"\r\n [dataSource]=\"updateTemplates\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Schlüssel' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <!-- <div class=\"dx-field-label switch-left\">{{ \"SUPPLIER_PID\" | translate }}</div>\r\n <dx-switch [(value)]=\"useEanAsKey\"\r\n switchedOffText=\"SUPPLIER_PID\"\r\n switchedOnText=\"INTERNATIONAL_PID\"\r\n (onValueChanged)=\"onKeyChanged($event)\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"INTERNATIONAL_PID\" | translate }}</div>-->\r\n <dx-select-box [(value)]=\"selectedKey\"\r\n [dataSource]=\"keys\"></dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<!--<div class=\"dx-field\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value\">\r\n <dx-button icon=\"edit\" (onClick)=\"editTemplatesClick()\">\r\n </dx-button>\r\n </div>\r\n</div>-->\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\"></div>\r\n <div class=\"dx-field-value\">\r\n <dx-button icon=\"edit\" (onClick)=\"showEditTemplates()\">\r\n </dx-button>\r\n </div>\r\n</div>\r\n\r\n<np-dialog [popupWidth]=\"1200\"\r\n [popupHeight]=\"800\"\r\n [popupTitle]=\"showPopup ? ('Update Templates' | translate) : ('Update Templates' | translate)\"\r\n [(popupVisible)]=\"showPopup\">\r\n\r\n <div slot=\"content\" class=\"h-100 d-flex flex-row\">\r\n <updateTemplates [helpSwitch]=\"false\"></updateTemplates>\r\n </div>\r\n</np-dialog>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { Customer } from \"../../../../Model/User/Customer\";\r\nimport { Catalog } from \"../../../../Model/Catalog/catalog\";\r\nimport { UpdateTemplate } from '../../../../Model/Catalog/UpdateTemplate';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FieldNames } from \"../../../../Model/FieldNames\";\r\nimport { Message } from \"../../../../Model/System/Message\";\r\nimport { SystemService } from \"../../../../Services/system.service\";\r\n\r\n@Component({\r\n selector: \"userAction-updateToCatalog\",\r\n templateUrl: \"userAction-updateToCatalog.component.html\"\r\n})\r\nexport class UserActionUpdateToCatalogComponent extends UserActionBaseComponent {\r\n private fieldNames: FieldNames;\r\n _catalogs: Catalog[];\r\n _customers: Customer[];\r\n _replacePrice: boolean = false;\r\n _selectedCustomer: string;\r\n _sourceCatalog: string = \"\";\r\n selectedCatalogs: string[];\r\n updateTemplates: UpdateTemplate[];\r\n selectedTemplate: string = \"\";\r\n txtSelectTemplate: string;\r\n txtSelectCatalog: string;\r\n useEanAsKey: boolean = false;\r\n loading: boolean = false;\r\n keys: string[] = [];\r\n selectedKey: string;\r\n\r\n warningSpidUpdate: string = \"\";\r\n warningIntPidUpdate: string = \"\";\r\n warningSpaltidUpdate: string = \"\";\r\n\r\n constructor(public modelService: ModelService, public systemService: SystemService, public translate: TranslateService) {\r\n super(modelService);\r\n\r\n // merken:\r\n this.currentNavigationTitle = this.modelService.systemService.currentNavigationTitle;\r\n\r\n this.fieldNames = new FieldNames();\r\n\r\n this.warningSpidUpdate = this.translate.instant(\"warningSpidUpdate\");\r\n this.warningIntPidUpdate = this.translate.instant(\"warningIntPidUpdate\");\r\n this.warningSpaltidUpdate = this.translate.instant(\"warningSpaltidUpdate\");\r\n\r\n this.keys.push(this.translate.instant(\"SUPPLIER_PID\"));\r\n this.keys.push(this.translate.instant(\"INTERNATIONAL_PID\"));\r\n this.keys.push(this.translate.instant(\"SUPPLIER_ALT_PID\"));\r\n this.selectedKey = this.keys[0];\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.txtSelectTemplate = this.translate.instant(\"Bitte wählen Sie ein Update-Template aus\");\r\n this.txtSelectCatalog = this.translate.instant(\"Bitte wählen Sie mindestens einen Katalog aus\");\r\n\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomer = this.modelService.loginService.currentCustomer.id;\r\n });\r\n\r\n this.modelService.updateTemplateService.getUpdateTemplates().subscribe((templates: UpdateTemplate[]) => {\r\n this.updateTemplates = templates;\r\n if (templates.length > 0) {\r\n this.selectedTemplate = templates[0].id;\r\n\r\n this.onKeyChanged(null);\r\n }\r\n });\r\n\r\n // der CTOR von updateTemplates ändert ihn, wir müssen den wieder zurücksetzen:\r\n this.modelService.systemService.currentNavigationTitle = this.currentNavigationTitle;\r\n }\r\n\r\n\r\n\r\n currentNavigationTitle: string = \"\";\r\n\r\n _showPopup: boolean = false;\r\n\r\n get showPopup() {\r\n return this._showPopup;\r\n }\r\n\r\n set showPopup(value: boolean) {\r\n this._showPopup = value;\r\n\r\n if (value) {\r\n // reicht in ngOnInit:\r\n // der CTOR von updateTemplates ändert ihn, wir müssen den wieder zurücksetzen:\r\n //this.modelService.systemService.currentNavigationTitle = this.currentNavigationTitle;\r\n }\r\n else {\r\n // nach dem Schließen des Popup die Liste neu laden, falls ein neues Template angelegt wurde:\r\n this.modelService.updateTemplateService.getUpdateTemplates().subscribe((templates: UpdateTemplate[]) => {\r\n this.updateTemplates = templates;\r\n if (templates.length > 0 && this.selectedTemplate == \"\") {\r\n this.selectedTemplate = templates[0].id;\r\n\r\n this.onKeyChanged(null);\r\n }\r\n });\r\n }\r\n }\r\n\r\n showEditTemplates() {\r\n this.showPopup = true;\r\n }\r\n\r\n\r\n\r\n editTemplatesClick() {\r\n this.modelService.router.navigate([\"updateTemplates\"]);\r\n }\r\n\r\n get catalogs(): Catalog[] {\r\n return this._catalogs;\r\n }\r\n\r\n set catalogs(value: Catalog[]) {\r\n this._catalogs = value;\r\n }\r\n\r\n get customers(): Customer[] {\r\n return this._customers;\r\n }\r\n\r\n set customers(value: Customer[]) {\r\n this._customers = value;\r\n }\r\n\r\n get replacePrice(): boolean {\r\n return this._replacePrice;\r\n }\r\n\r\n set replacePrice(value: boolean) {\r\n this._replacePrice = value;\r\n }\r\n\r\n get selectedCustomer(): string {\r\n return this._selectedCustomer;\r\n }\r\n\r\n set selectedCustomer(value: string) {\r\n this._selectedCustomer = value;\r\n this.modelService.catalogService.getCatalogs(this._selectedCustomer)\r\n .subscribe((result: Catalog[]) => {\r\n this.catalogs = result.filter(c => !c.isVirtual);\r\n });\r\n }\r\n\r\n get sourceCatalog(): string {\r\n return this._sourceCatalog;\r\n }\r\n\r\n set sourceCatalog(sourceCatalog: string) {\r\n this._sourceCatalog = sourceCatalog;\r\n }\r\n\r\n\r\n\r\n onKeyChanged($event) {\r\n\r\n let template = this.updateTemplates.filter(u => u.id == this.selectedTemplate)[0];\r\n if (template == null || template == undefined) {\r\n return;\r\n }\r\n\r\n template.items.forEach(item => {\r\n switch (this.selectedKey) {\r\n case this.keys[0]:\r\n if (item.isActive && item.field == this.fieldNames.supplierPid) {\r\n // hinweis, supplierPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningSpidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n case this.keys[1]:\r\n if (!this.useEanAsKey && item.isActive && item.field == this.fieldNames.internatonalPid) {\r\n // hinweis, internatonalPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningIntPidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n case this.keys[2]:\r\n if (!this.useEanAsKey && item.isActive && item.field == this.fieldNames.supplierAltPid) {\r\n // hinweis, supplierAltPid könnte verändert werden\r\n this.systemService.notify(new Message(this.warningSpaltidUpdate, \"info\"), 4000);\r\n }\r\n break;\r\n }\r\n });\r\n\r\n }\r\n\r\n clickSelectValidCatalogs() {\r\n this.loading = true;\r\n switch (this.selectedKey) {\r\n case this.keys[0]:\r\n this.modelService.catalogService.getCatalogsContainingSupplierPID(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentCustomer.id, this._selectedCustomer)\r\n .subscribe((result: string[]) => {\r\n this.selectedCatalogs = result;\r\n this.loading = false;\r\n });\r\n break;\r\n case this.keys[1]:\r\n this.modelService.catalogService.getCatalogsContainingEAN(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentCustomer.id, this._selectedCustomer)\r\n .subscribe((result: string[]) => {\r\n this.selectedCatalogs = result;\r\n this.loading = false;\r\n });\r\n break;\r\n case this.keys[2]:\r\n this.modelService.catalogService.getCatalogsContainingSupplierAltPID(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentCustomer.id, this._selectedCustomer)\r\n .subscribe((result: string[]) => {\r\n this.selectedCatalogs = result;\r\n this.loading = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n startMacro() {\r\n if (this.selectedCatalogs.length == 0) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectCatalog);\r\n return;\r\n }\r\n\r\n if (this.selectedTemplate == \"\") {\r\n this.modelService.systemService.notifyInfo(this.txtSelectTemplate);\r\n return;\r\n }\r\n\r\n\r\n this.selectedCatalogs.forEach((catalogId: string) => {\r\n if (catalogId == this.modelService.catalogService.catalog.id) {\r\n //TODO show info, that this would be useless\r\n\r\n } else {\r\n\r\n\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = catalogId;\r\n startAction.customerId = this.selectedCustomer;\r\n startAction.actionId = `UpdateFromCatalog(${this.modelService.loginService.currentUser.customerId}:${this.modelService.catalogService.catalog.id}:${this.selectedTemplate}:${this.keys.findIndex(x => x == this.selectedKey)})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step \r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { Catalog } from \"../../../../Model/Catalog/Catalog\";\r\n\r\n@Component({\r\n selector: \"userAction-compareCatalog\",\r\n templateUrl: \"userAction-compareCatalog.component.html\"\r\n})\r\nexport class UserActionCompareCatalogComponent extends UserActionBaseComponent {\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.modelService.catalogService.getCatalogs(this.modelService.loginService.currentUser.customerId)\r\n .subscribe((result: Catalog[]) => {\r\n this.catalogs = result.filter(c => !c.isVirtual);\r\n });\r\n }\r\n\r\n _sourceCompareCatalog: string = \"\";\r\n useEanAsKey: boolean = false;\r\n catalogs: Catalog[];\r\n\r\n get sourceCompareCatalog(): string {\r\n return this._sourceCompareCatalog;\r\n }\r\n\r\n set sourceCompareCatalog(sourceCompareCatalog: string) {\r\n this._sourceCompareCatalog = sourceCompareCatalog;\r\n }\r\n\r\n startMacro() {\r\n if (this.sourceCompareCatalog == \"\") {\r\n this.modelService.systemService.notifyWarning(\"Bitte Katalog auswählen.\");\r\n return;\r\n }\r\n if (this.sourceCompareCatalog == this.modelService.catalogService.catalog.id) {\r\n this.modelService.systemService.notifyWarning(\"Katalog kann nicht mit sich selbst verglichen werden.\");\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `CompareCatalog(${this.sourceCompareCatalog}:${this.useEanAsKey})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step\r\n this.sourceCompareCatalog = \"\";\r\n\r\n\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--18 compare catalog-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quellcatalog' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ sourceCompareCatalog?.length > 0 ? 'placeLabelSmall' : '' }}\">SOURCE CATALOG</label>\r\n <dx-select-box [(value)]=\"sourceCompareCatalog\"\r\n [dataSource]=\"catalogs\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Schlüssel' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ \"SUPPLIER_PID\" | translate }}</div>\r\n <dx-switch [(value)]=\"useEanAsKey\"\r\n switchedOffText=\"SUPPLIER_PID\"\r\n switchedOnText=\"INTERNATIONAL_PID\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"INTERNATIONAL_PID\" | translate }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { OnInit, Directive } from '@angular/core';\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionBaseComponent } from '../userAction-base.component';\r\nimport { KeyValueItem } from '../../../../Model/System/KeyValueItem';\r\nimport { ValidFeatureSystem } from '../../../../Model/ValidFeatureSystem';\r\nimport { ValidFeatureService } from '../../../../Services/validFeature.service';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n\r\n@Directive()\r\nexport abstract class UserActionFeatureSystemsComponent extends UserActionBaseComponent implements OnInit {\r\n featureSystems: ValidFeatureSystem[] = [];\r\n featureSystemsLoaded = false;\r\n featureSystemsLoading = false;\r\n systemsFromTemplate: KeyValueItem[];\r\n\r\n constructor(public modelService: ModelService, public validFeatureService: ValidFeatureService) {\r\n super(modelService);\r\n }\r\n\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n await this.loadFeatureSystems();\r\n }\r\n\r\n async loadFeatureSystems() {\r\n if (!this.featureSystemsLoaded) {\r\n this.featureSystemsLoading = true;\r\n this.featureSystems = await lastValueFrom(this.validFeatureService.getCatalogSystems(\r\n this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId));\r\n this.featureSystemsLoading = false;\r\n this.featureSystemsLoaded = true;\r\n }\r\n }\r\n\r\n async loadFeatures(featureSystem: ValidFeatureSystem) {\r\n this.featureSystemsLoading = true;\r\n\r\n let features = await lastValueFrom(this.validFeatureService.getCatalogFeaturesOfSystem(\r\n this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId, featureSystem));\r\n\r\n this.featureSystemsLoading = false;\r\n return features;\r\n }\r\n\r\n startMacro() {\r\n throw new Error(\"this is a abstract method\");\r\n }\r\n}\r\n","export class ValidFeatureSystem {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n\r\n ) {\r\n }\r\n}\r\n","<!--31 rename featuresystem name-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Ursprungsname' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedFeatureSystem?.name?.length > 0 ? 'placeLabelSmall' : '' }}\">REFERENCE FEATURESYSTEM NAME</label>\r\n <dx-select-box *ngIf=\"!featureSystemsLoading\"\r\n [(value)]=\"selectedFeatureSystem\"\r\n [items]=\"featureSystems\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n <dx-load-indicator *ngIf=\"featureSystemsLoading\" id=\"medium-indicator\" height=\"40\" width=\"40\"></dx-load-indicator>\r\n </div>\r\n</div>\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Neuer Name' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ destFeatureSystemName?.length > 0 ? 'placeLabelSmall' : '' }}\">DESTINATION FEATURESYSTEM NAME</label>\r\n <dx-autocomplete class=\"dataGridAutocomplete\"\r\n [minSearchLength]=\"0\"\r\n [dataSource]=\"featureSystemsWithMagicFeatureSystems\"\r\n valueExpr=\"name\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\"\r\n [(value)]=\"destFeatureSystemName\"\r\n valueChangeEvent=\"blur\">\r\n </dx-autocomplete>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\nimport { ValidFeatureSystem } from \"../../../../Model/ValidFeatureSystem\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ViewService } from \"../../../../Services/view.service\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-renameFeatureSystem\",\r\n templateUrl: \"userAction-renameFeatureSystem.component.html\"\r\n})\r\nexport class UserActionRenameFeatureSystemComponent extends UserActionFeatureSystemsComponent implements OnInit {\r\n featureSystemsWithMagicFeatureSystems: ValidFeatureSystem[] = [];\r\n destFeatureSystemName: string = \"\";\r\n selectedFeatureSystem: ValidFeatureSystem;\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService, private translate: TranslateService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n async ngOnInit() {\r\n await super.ngOnInit();\r\n this.featureSystemsWithMagicFeatureSystems.push(...this.featureSystems);\r\n ViewService.dropDownFeatureSystemNames.forEach(magicFeatureSystemName => {\r\n if (!this.featureSystemsWithMagicFeatureSystems.some(x => x.name == magicFeatureSystemName)) {\r\n this.featureSystemsWithMagicFeatureSystems.push(new ValidFeatureSystem(undefined, magicFeatureSystemName));\r\n }\r\n });\r\n }\r\n\r\n startMacro() {\r\n if (!this.selectedFeatureSystem) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"FeatureSystem auswählen\"));\r\n return;\r\n }\r\n if (this.destFeatureSystemName == \"\") {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Neuen FeatureSystem-Namen eingeben\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"RenameFeatureSystem\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify({\r\n source: this.selectedFeatureSystem.name,\r\n newName: this.destFeatureSystemName\r\n });\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent} from \"../userAction-base.component\";\r\n\r\n@Component({\r\n selector: \"userAction-deleteEmptyFeatures\",\r\n templateUrl: \"userAction-deleteEmptyFeatures.component.html\"\r\n})\r\nexport class UserActionDeleteEmptyFeaturesComponent extends UserActionBaseComponent {\r\n deleteFeatureSystems: boolean = false;\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n startMacro() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"DeleteEmptyFeatures\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.deleteFeatureSystems);\r\n }\r\n\r\n\r\n}\r\n","<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'Leere Featuresysteme löschen' | translate }}</div>\r\n <dx-switch [(value)]=\"deleteFeatureSystems\"></dx-switch>\r\n</div>\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Einzelne Texte für Varianten generieren' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"genVariantTexts\" (onValueChanged)=\"calculateProds()\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Generiere HTML' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch hint=\"hintMessage\" [(value)]=\"generateHTML\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Produkte über Massendatenbearbeitung auswählen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch hint=\"hintMessage\" [(value)]=\"generateWithMassDataChange\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-fieldset\" *ngIf=\"!generateWithMassDataChange\">\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kosten pro Text' | translate }}</div>\r\n <div class=\"dx-field-value\"><dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\"\r\n [value]=\"invoiceSetting.pricePerOpenAi\"></dx-number-box></div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Texte die generiert werden' | translate }}</div>\r\n <div class=\"dx-field-value\"><dx-number-box [readOnly]=\"true\" [(value)]=\"productCount\"></dx-number-box></div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Maximale Gesamtkosten' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\"\r\n [value]=\"productCount * invoiceSetting.pricePerOpenAi\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Benutztes Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.usedLimit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Limit' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.limit\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Freibetrag' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [readOnly]=\"true\" format=\"#,##0.## €\" [(value)]=\"invoiceSetting.allowance\"></dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-2 flex-fill\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'TeachingSet' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [items]=\"teachingSets\" [(value)]=\"teachingSet\" displayExpr=\"name\"></dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"alert alert-danger\" *ngIf=\"!generateWithMassDataChange && !balanceIsFilled && !loading\">\r\n <p>{{ 'Das Budget reicht nicht aus, um Texte für alle Produkte im Katalog zu generieren.' | translate }}</p>\r\n</div>\r\n\r\n<div class=\"alert alert-info\" *ngIf=\"!generateWithMassDataChange && balanceIsFilled && !loading\">\r\n <p>{{ 'Wenn Sie das Makro ausführen, werden alle Produkte des Katalogs mit generierten Texten ergänzt. Prüfen Sie, ob das Budget für Sie stimmig ist.' | translate }}</p>\r\n</div>\r\n\r\n<div class=\"alert alert-info\" *ngIf=\"generateWithMassDataChange\">\r\n <p>{{ 'Sie werden auf die Massendatenbearbeitung weitergeleitet. Dort können Sie gezielt Produkte für die Textgenerierung auswählen.' | translate }}</p>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModelService } from '../../../../Services/model.service';\r\nimport { UserActionBaseComponent } from '../userAction-base.component';\r\nimport { InvoiceService } from '../../../../Services/invoice.service';\r\nimport { TeachingSet } from '../../../../Model/OpenAi/teachingset';\r\nimport { InvoiceSettingDto } from '../../../../Model/Dto/InvoiceSettingDto';\r\nimport { MassGenerateKITextsParameter } from '../../../../Model/MassGenerateKITextsParameter';\r\nimport { TeachingSetService } from '../../../../Services/teachingSet.service';\r\n\r\n@Component({\r\n selector: 'userAction-generateAITexts',\r\n templateUrl: './userAction-generateAITexts.component.html',\r\n})\r\nexport class UserActionGenerateAITextsComponent extends UserActionBaseComponent {\r\n teachingSet: TeachingSet;\r\n teachingSets: TeachingSet[];\r\n productCount = 0;\r\n invoiceSetting: InvoiceSettingDto;\r\n generateHTML = false;\r\n genVariantTexts = false;\r\n generateWithMassDataChange = false;\r\n balanceIsFilled = false;\r\n loading = true;\r\n\r\n constructor(public modelService: ModelService, public translateService: TranslateService, public invoiceService: InvoiceService, public teachingSetService: TeachingSetService) {\r\n super(modelService);\r\n this.calculateProds = this.calculateProds.bind(this);\r\n this.invoiceSetting = new InvoiceSettingDto();\r\n teachingSetService.getAllTrained().subscribe(sets => {\r\n this.teachingSets = sets;\r\n this.teachingSets.push({ name: this.translateService.instant(\"Standard\"), id: \"\", customerId: this.modelService.loginService.currentCustomer.id.toString(), samples: [], state: 2 } as TeachingSet);\r\n\r\n if (this.teachingSets.length > 0)\r\n this.teachingSet = this.teachingSets[0];\r\n });\r\n this.invoiceService.GetInvoiceSetting(this.modelService.loginService.currentCustomer.id).subscribe(result => {\r\n this.invoiceSetting = result;\r\n this.calculateProds();\r\n });\r\n }\r\n\r\n calculateProds() {\r\n this.loading = true;\r\n this.invoiceService.getTotalProducts(this.modelService.loginService.currentCustomer.id, this.buildParam()).subscribe((count:\r\n number) => {\r\n this.productCount = count;\r\n const { limit, usedLimit, pricePerOpenAi } = this.invoiceSetting;\r\n const total = this.productCount * pricePerOpenAi;\r\n this.balanceIsFilled = limit - (usedLimit + total) >= 0;\r\n this.loading = false;\r\n this.userActionToggleStartButton.emit(this.balanceIsFilled);\r\n });\r\n }\r\n\r\n buildParam(): MassGenerateKITextsParameter {\r\n return new MassGenerateKITextsParameter(\r\n this.modelService.catalogService.catalog.id,\r\n true,\r\n null,\r\n null,\r\n this.genVariantTexts,\r\n this.teachingSet != null ? this.teachingSet.id : null,\r\n this.generateHTML\r\n );\r\n }\r\n\r\n startMacro() {\r\n if (this.generateWithMassDataChange) {\r\n this.modelService.catalogService.startMassGenerateKITexts.emit();\r\n } else {\r\n this.invoiceService.startMassGenerateOpenAITextsJob(this.modelService.loginService.currentCustomer.id, this.buildParam()).subscribe(() => {\r\n this.modelService.systemService.notifyInfo(this.translateService.instant(\"Der Job wurde gestartet\"), 2);\r\n });\r\n }\r\n this.modelService.catalogService.showUserAction = false;\r\n }\r\n}\r\n","export class FeatureToBeRenamed {\r\n public constructor(\r\n public FeatureName: string,\r\n public NewName: string)\r\n {\r\n }\r\n}\r\n","<!--84 rename features-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Featuresystem Name' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedFeatureSystem?.name?.length > 0 ? 'placeLabelSmall' : '' }}\">REFERENCE FEATURESYSTEM NAME</label>\r\n <dx-select-box *ngIf=\"featureSystemsLoading == false\"\r\n [(value)]=\"selectedFeatureSystem\"\r\n [items]=\"featureSystems\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n (onValueChanged)=\"onFeatureSystemChanged($event)\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<dx-load-indicator *ngIf=\"featureSystemsLoading\" id=\"large-indicator\" height=\"60\" width=\"60\"></dx-load-indicator>\r\n\r\n<dx-data-grid *ngIf=\"selectedFeatureSystem && !featuresLoading\"\r\n [dataSource]=\"featuresGridDataSource\"\r\n [showBorders]=\"true\"\r\n noDataText=\"{{ 'RenameFeaturesMacroNoDataMessage' | translate }}\"\r\n [style.marginTop.px]=\"25\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxi-column dataField=\"FeatureName\" sortOrder=\"asc\" caption=\"Ursprünglicher Name\"></dxi-column>\r\n <dxi-column dataField=\"NewName\" caption=\"Neuer Name\" cellTemplate=\"newNameTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let model of 'newNameTemplate'\">\r\n <dx-text-box [(value)]=\"model.data.NewName\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n</dx-data-grid>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { FeatureToBeRenamed } from \"../../../../Model/Catalog/FeatureModels/FeatureToBeRenamedModel\";\r\nimport { ValidFeatureSystem } from \"../../../../Model/ValidFeatureSystem\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\n\r\n@Component({\r\n selector: \"userAction-renameFeatures\",\r\n templateUrl: \"userAction-renameFeatures.component.html\"\r\n})\r\nexport class UserActionRenameFeaturesComponent extends UserActionFeatureSystemsComponent {\r\n featuresGridDataSource: Array<FeatureToBeRenamed> = [];\r\n selectedFeatureSystem: ValidFeatureSystem;\r\n featuresLoading = false;\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n onFeatureSystemChanged(e) {\r\n this.featuresGridDataSource = [];\r\n if (this.selectedFeatureSystem) {\r\n this.featuresLoading = true;\r\n this.loadFeatures(this.selectedFeatureSystem).then((features) => {\r\n for (let feature of features) {\r\n this.featuresGridDataSource.push(new FeatureToBeRenamed(feature.name, \"\"));\r\n }\r\n this.featuresLoading = false;\r\n });\r\n }\r\n }\r\n\r\n startMacro() {\r\n if (this.featuresGridDataSource.length == 0) {\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n\r\n this.modelService.jobService.startUserAction(this.createUserAction()).subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createUserAction(): StartAction {\r\n let userAction = new StartAction();\r\n userAction.catalogId = this.modelService.catalogService.catalog.id;\r\n userAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n userAction.actionId = `RenameFeatures(${this.createParameterStringAsJsonString()})`;\r\n return userAction;\r\n }\r\n\r\n createParameterStringAsJsonString(): string {\r\n let parameterJsonString = JSON.stringify(\r\n {\r\n featureSystemName: this.selectedFeatureSystem.name,\r\n featuresToBeRenamed: this.featuresGridDataSource\r\n });\r\n return parameterJsonString;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n@Component({\r\n selector: \"userAction-splitFeatureValuesFromUnit\",\r\n templateUrl: \"userAction-splitFeatureValuesFromUnit.component.html\"\r\n})\r\nexport class UserActionSplitFeatureValuesFromUnitComponent extends UserActionBaseComponent implements OnInit {\r\n foundUnitsToBeSplit: string[] = [];\r\n selectedUnits: string[];\r\n unitsLoading: boolean = false;\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n loadUnits() {\r\n this.foundUnitsToBeSplit.length = 0;\r\n this.unitsLoading = true;\r\n this.modelService.catalogService.getUnitsThatCanBeSplitFromFeatureValues(\r\n this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId)\r\n .subscribe((unit) => {\r\n this.foundUnitsToBeSplit.push(...unit);\r\n\r\n this.unitsLoading = false;\r\n });\r\n }\r\n\r\n addCustomUnit(unit) {\r\n if (!unit.text) {\r\n unit.customItem = null;\r\n return;\r\n }\r\n this.foundUnitsToBeSplit.push(unit.text);\r\n this.selectedUnits.push(unit.text);\r\n }\r\n\r\n startMacro() {\r\n if (!this.selectedUnits || this.selectedUnits.length == 0)\r\n return;\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n\r\n this.modelService.jobService.startUserAction(this.createUserAction()).subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createUserAction(): StartAction {\r\n let userAction = new StartAction();\r\n userAction.catalogId = this.modelService.catalogService.catalog.id;\r\n userAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n userAction.actionId = `SplitFeatureValuesFromUnit(${this.createParameterStringAsJsonString()})`;\r\n return userAction;\r\n }\r\n\r\n createParameterStringAsJsonString(): string {\r\n let parameterJsonString = JSON.stringify(this.selectedUnits);\r\n return parameterJsonString;\r\n }\r\n}\r\n","<!--85 split featurevalue from unit-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-25\">{{ 'Units' | translate }}</div>\r\n <div class=\"dx-field-value w-75\">\r\n <dx-tag-box id=\"unitTagBox\"\r\n [(value)]=\"selectedUnits\"\r\n [dataSource]=\"foundUnitsToBeSplit\"\r\n [showClearButton]=\"true\"\r\n [multiline]=\"true\"\r\n [showSelectionControls]=\"true\"\r\n [acceptCustomValue]=\"true\"\r\n [width]=\"500\"\r\n [showDropDownButton]=\"foundUnitsToBeSplit.length != 0\"\r\n noDataText=\"{{ 'NoUnitInTagBox' | translate }}\">\r\n </dx-tag-box>\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#unitTagBox' }\"\r\n [(visible)]=\"unitsLoading\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"true\"\r\n [shading]=\"true\"\r\n [closeOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n <dx-button stylingMode=\"contained\"\r\n text=\"{{ 'DetectUnits' | translate }}\"\r\n type=\"normal\"\r\n (onClick)=\"loadUnits()\">\r\n </dx-button>\r\n </div>\r\n</div>\r\n","<!--38 deleteFeatureSystems-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'FeatureSystems' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <dx-load-indicator *ngIf=\"featureSystemsLoading\" id=\"medium-indicator\" height=\"40\" width=\"40\"></dx-load-indicator>\r\n <dx-drop-down-box [inputAttr]=\"{ 'aria-label': 'Owner' }\"\r\n [(value)]=\"selectedFeatureSystems\"\r\n placeholder=\"\"\r\n displayExpr=\"name\"\r\n [showClearButton]=\"true\"\r\n [dataSource]=\"featureSystems\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-data-grid [dataSource]=\"featureSystems\"\r\n [selection]=\"{ mode: 'multiple' }\"\r\n [hoverStateEnabled]=\"true\"\r\n [paging]=\"{ enabled: true, pageSize: 10 }\"\r\n [filterRow]=\"{ visible: true }\"\r\n [scrolling]=\"{ mode: 'virtual' }\"\r\n [height]=\"345\"\r\n [(selectedRowKeys)]=\"selectedFeatureSystems\">\r\n <dxi-column dataField=\"name\" [allowEditing]=\"false\" caption=\"{{ 'Featuresystem-Name' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </dx-drop-down-box>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\nimport { ValidFeatureSystem } from \"../../../../Model/ValidFeatureSystem\";\r\n\r\n@Component({\r\n selector: \"userAction-deleteFeatureSystems\",\r\n templateUrl: \"userAction-deleteFeatureSystems.component.html\"\r\n})\r\nexport class UserActionDeleteFeatureSystemsComponent extends UserActionFeatureSystemsComponent implements OnInit {\r\n selectedFeatureSystems: ValidFeatureSystem[];\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService, private translate: TranslateService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n async ngOnInit() {\r\n await super.ngOnInit()\r\n }\r\n\r\n startMacro() {\r\n if (!this.selectedFeatureSystems || this.selectedFeatureSystems.length <= 0) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"mindestens ein FeatureSystem auswählen\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"DeleteFeatureSystems\";\r\n startAction.actionParameter = JSON.stringify(this.selectedFeatureSystems);\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { Customer } from \"../../../../Model/User/Customer\";\r\nimport { Catalog } from \"../../../../Model/Catalog/Catalog\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-copyMediaFromOtherCatalog\",\r\n templateUrl: \"userAction-copyMediaFromOtherCatalog.component.html\"\r\n})\r\n\r\nexport class UserActionCopyMediaFromOtherCatalogComponent extends UserActionBaseComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomer = customers[0].id;\r\n });\r\n }\r\n\r\n _selectedCustomer: string;\r\n catalogs: Catalog[];\r\n _sourceCatalog: string = \"\";\r\n customers: Customer[];\r\n replacePrice: boolean = false;\r\n\r\n get selectedCustomer(): string {\r\n return this._selectedCustomer;\r\n }\r\n\r\n set selectedCustomer(value: string) {\r\n this._selectedCustomer = value;\r\n this.modelService.catalogService.getCatalogs(this._selectedCustomer)\r\n .subscribe((result: Catalog[]) => {\r\n this.catalogs = result.filter(c => !c.isVirtual);\r\n });\r\n }\r\n\r\n get sourceCatalog(): string {\r\n return this._sourceCatalog;\r\n }\r\n\r\n set sourceCatalog(sourceCompareCatalog: string) {\r\n this._sourceCatalog = sourceCompareCatalog;\r\n }\r\n\r\n startMacro() {\r\n if (this.sourceCatalog == \"\") {\r\n return;\r\n }\r\n if (this.sourceCatalog == this.modelService.catalogService.catalog.id) {\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n startAction.actionId = \"CopyMediaFromOtherCatalog(\" + this.selectedCustomer + \":\" + this.sourceCatalog + \")\";\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step\r\n this.sourceCatalog = \"\";\r\n\r\n\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--39 CopyMediaFromOtherCatalog-->\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Account' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomer?.length>0 ? 'placeLabelSmall' : '' }}\">ACCOUNT</label>\r\n <dx-select-box [(value)]=\"selectedCustomer\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quellcatalog' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ sourceCatalog?.length>0 ? 'placeLabelSmall' : '' }}\">SOURCE CATALOG</label>\r\n <dx-select-box [(value)]=\"sourceCatalog\"\r\n [dataSource]=\"catalogs\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n","\r\n<div *ngIf=\"!featuresLoaded\" style=\"left: 30%; top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n</div>\r\n<div *ngIf=\"featuresLoaded\" style=\"overflow-y: auto;\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <dx-tag-box [items]=\"features\"\r\n [(value)]=\"selectedFeatures\"\r\n [showSelectionControls]=\"true\"\r\n applyValueMode=\"instantly\"\r\n [showClearButton]=\"true\"\r\n [searchEnabled]=\"true\"\r\n placeholder=\"\"\r\n displayExpr=\"name\">\r\n </dx-tag-box>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent} from \"../userAction-base.component\";\r\nimport { lastValueFrom } from \"rxjs\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\nimport { ValidFeature } from \"../../../../Model/ValidFeature\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"userAction-deleteFeatures\",\r\n templateUrl: \"userAction-deleteFeatures.component.html\"\r\n})\r\nexport class UserActionDeleteFeaturesComponent extends UserActionBaseComponent {\r\n featuresLoaded: boolean = false;\r\n features: ValidFeature[];\r\n selectedFeatures: ValidFeature[];\r\n\r\n constructor(public modelService: ModelService, private validFeatureService: ValidFeatureService, private translate: TranslateService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.loadFeatureNames();\r\n this.featuresLoaded = true;\r\n }\r\n\r\n async loadFeatureNames() {\r\n this.features = await lastValueFrom(this.validFeatureService.getCatalogFeatures(\r\n this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId));\r\n }\r\n\r\n startMacro() {\r\n if (this.selectedFeatures == null || this.selectedFeatures.length == 0) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Mindestens ein Feature auswählen\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"DeleteFeatures\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.selectedFeatures);\r\n }\r\n\r\n\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\nimport { ValidFeatureSystem } from \"../../../../Model/ValidFeatureSystem\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-createTechnicalDetails\",\r\n templateUrl: \"userAction-createTechnicalDetails.component.html\"\r\n})\r\nexport class UserActionCreateTechnicalDetailsComponent extends UserActionFeatureSystemsComponent {\r\n selectedFeatureSystem: ValidFeatureSystem;\r\n\r\n constructor(public modelService: ModelService, validFeatureSystem: ValidFeatureService, private translate: TranslateService) {\r\n super(modelService, validFeatureSystem);\r\n }\r\n\r\n startMacro() {\r\n if (!this.selectedFeatureSystem) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"FeatureSystem auswählen\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"CreateTechnicalDetails\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.selectedFeatureSystem);\r\n }\r\n}\r\n","<!--47 createTechnicalDetails-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'FeatureSystemName' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedFeatureSystem?.name?.length > 0 ? 'placeLabelSmall' : '' }}\">REFERENCE FEATURESYSTEM NAME</label>\r\n <dx-select-box [(value)]=\"selectedFeatureSystem\"\r\n [items]=\"featureSystems\"\r\n displayExpr=\"name\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n","export class duplicateItem {\r\n\r\n constructor(\r\n public sourceItemId?: string,\r\n\r\n public sourceCategoryId?: string,\r\n public sourceCatalogId?: string,\r\n\r\n public sourceCustomerId?: string,\r\n\r\n public targetItemId?: string,\r\n\r\n public targetCategoryId?: string,\r\n public targetCatalogId?: string,\r\n\r\n public targetCustomerId?: string\r\n ) {\r\n\r\n }\r\n}\r\n","<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Zielaccounts' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomers?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'Zielaccounts auswählen' | translate }}</label>\r\n <dx-drop-down-box [(value)]=\"selectedCustomers\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [showClearButton]=\"true\"\r\n [dataSource]=\"customers\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-data-grid [dataSource]=\"customers\"\r\n keyExpr=\"id\"\r\n [columns]=\"['name']\"\r\n [selection]=\"{ mode: 'multiple' }\"\r\n [hoverStateEnabled]=\"true\"\r\n [paging]=\"{ enabled: true, pageSize: 10 }\"\r\n [filterRow]=\"{ visible: true }\"\r\n [scrolling]=\"{ mode: 'infinite' }\"\r\n [height]=\"345\"\r\n [(selectedRowKeys)]=\"selectedCustomers\">\r\n </dx-data-grid>\r\n </div>\r\n </dx-drop-down-box>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { Customer } from \"../../../../Model/User/Customer\";\r\nimport { Catalog } from \"../../../../Model/Catalog/catalog\";\r\nimport { UpdateTemplate } from '../../../../Model/Catalog/UpdateTemplate';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { duplicateItem } from '../../../../Model/Dto/dublicateItem';\r\n\r\n\r\n@Component({\r\n selector: \"userAction-spreadCatalog\",\r\n templateUrl: \"userAction-spreadCatalog.component.html\"\r\n})\r\nexport class UserActionSpreadCatalogComponent extends UserActionBaseComponent {\r\n\r\n _customers: Customer[];\r\n\r\n\r\n _sourceCatalog: string = \"\";\r\n selectedCustomers: string[];\r\n updateTemplates: UpdateTemplate[];\r\n\r\n\r\n txtSelectCatalog: string;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = new Array<Customer>();\r\n customers.forEach((customer: Customer) => {\r\n if (customer.id != this.modelService.loginService.currentCustomer.id) {\r\n this.customers.push(customer);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n editTemplatesClick() {\r\n this.modelService.router.navigate([\"updateTemplates\"]);\r\n }\r\n\r\n\r\n\r\n get customers(): Customer[] {\r\n return this._customers;\r\n }\r\n\r\n set customers(value: Customer[]) {\r\n this._customers = value;\r\n }\r\n\r\n\r\n\r\n get sourceCatalog(): string {\r\n return this._sourceCatalog;\r\n }\r\n\r\n set sourceCatalog(sourceCatalog: string) {\r\n this._sourceCatalog = sourceCatalog;\r\n }\r\n\r\n startMacro() {\r\n if (this.selectedCustomers.length == 0) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectCatalog);\r\n return;\r\n }\r\n\r\n this.selectedCustomers.forEach((customerId: string) => {\r\n this.modelService.catalogService.showUserAction = false;\r\n let duplicateCatalog = new duplicateItem();\r\n duplicateCatalog.sourceCustomerId = this.modelService.loginService.currentUser.customerId;\r\n duplicateCatalog.targetCustomerId = customerId;\r\n duplicateCatalog.sourceItemId = this.modelService.catalogService.selectedCatalogId;\r\n this.modelService.catalogService.spreadCatalog(duplicateCatalog);\r\n });\r\n this.userActionStarted.emit(true);\r\n }\r\n}\r\n","<!--58 harmonize featuresystem-->\r\n<div class=\"dx-field\">\r\n <dx-load-indicator *ngIf=\"featureSystemsLoading\" id=\"small-indicator\" height=\"20\" width=\"20\"></dx-load-indicator>\r\n <dx-data-grid id=\"gridContainer\" *ngIf=\"!featureSystemsLoading\"\r\n [dataSource]=\"featureSystemsWithOrder\"\r\n [showBorders]=\"true\">\r\n\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column dataField=\"order\" dataType=\"number\" width=\"100\" caption=\"{{ 'Order' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"name\" [allowEditing]=\"false\" caption=\"{{ 'Featuresystem Name' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\n\r\n@Component({\r\n selector: \"userAction-harmonizeFeatureSystems\",\r\n templateUrl: \"userAction-harmonizeFeatureSystems.component.html\"\r\n})\r\nexport class UserActionHarmonizeFeatureSystems extends UserActionFeatureSystemsComponent {\r\n _destFeatureSystemName: string = \"\";\r\n featureSystemsWithOrder: any[] = [];\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n async ngOnInit() {\r\n await super.ngOnInit();\r\n this.featureSystemsWithOrder = this.featureSystems.sort((a, b)=> a.name.localeCompare(b.name));\r\n this.setOrders();\r\n }\r\n\r\n setOrders() {\r\n for (var i = 1; i <= this.featureSystemsWithOrder.length; i++) {\r\n this.featureSystemsWithOrder[i-1].order = i;\r\n }\r\n }\r\n\r\n startMacro() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"HarmonizeFeatureSystems\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.featureSystemsWithOrder);\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n@Component({\r\n selector: \"userAction-fixClassification\",\r\n templateUrl: \"userAction-fixClassification.component.html\"\r\n})\r\nexport class UserActionFixClassificationComponent extends UserActionBaseComponent {\r\n addMissingFeatures: boolean = false;\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n startMacro() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"FixClassification\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.addMissingFeatures);\r\n }\r\n}\r\n","<!--60 FixClassification-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'Fehlende Features hinzufügen' | translate }}</div>\r\n <dx-switch [(value)]=\"addMissingFeatures\"></dx-switch>\r\n</div>\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: \"userAction-exportReportProductDatasheet\",\r\n templateUrl: \"userAction-exportReportProductDatasheet.component.html\"\r\n})\r\nexport class UserActionExportReportProductDatasheet extends UserActionBaseComponent {\r\n _allReports: string[];\r\n _selectedReport: string;\r\n _filenamePattern: string;\r\n _mimeDescr: string\r\n _replaceAll: boolean = false;\r\n\r\n txtSelectReport: string;\r\n txtSelectFilenamePattern: string;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.translate.get(\"Bitte wählen Sie einen Report aus\")\r\n .subscribe((text: string) => {\r\n this.txtSelectReport = text;\r\n });\r\n this.translate.get(\"Bitte wählen Sie ein Muster für die Vergabe der Dateinamen aus\")\r\n .subscribe((text: string) => {\r\n this.txtSelectFilenamePattern = text;\r\n });\r\n\r\n this.modelService.productReportingService.getUrls()\r\n .subscribe((items: string[]) => {\r\n this.allReports = items;\r\n });\r\n }\r\n\r\n\r\n\r\n get allReports(): string[] {\r\n return this._allReports;\r\n }\r\n\r\n set allReports(value: string[]) {\r\n this._allReports = value;\r\n }\r\n\r\n\r\n\r\n get selectedReport(): string {\r\n return this._selectedReport;\r\n }\r\n\r\n set selectedReport(value: string) {\r\n this._selectedReport = value;\r\n }\r\n\r\n\r\n\r\n get filenamePattern(): string {\r\n return this._filenamePattern;\r\n }\r\n\r\n set filenamePattern(value: string) {\r\n this._filenamePattern = value;\r\n }\r\n\r\n\r\n\r\n get mimeDescr(): string {\r\n return this._mimeDescr;\r\n }\r\n\r\n set mimeDescr(value: string) {\r\n this._mimeDescr= value;\r\n }\r\n\r\n\r\n\r\n get replaceAll(): boolean {\r\n return this._replaceAll;\r\n }\r\n\r\n set replaceAll(value: boolean) {\r\n this._replaceAll = value;\r\n }\r\n\r\n\r\n\r\n startMacro() {\r\n if (this.selectedReport == \"\" || this.selectedReport == undefined) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectReport);\r\n return;\r\n }\r\n if (this.filenamePattern == \"\" || this.filenamePattern == undefined) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectFilenamePattern);\r\n return;\r\n }\r\n\r\n\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `ExportReportProductDatasheet(${this.selectedReport}:${this.filenamePattern}:${this.replaceAll}:${this.mimeDescr})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--62: ExportReportProductDatasheet-->\r\n\r\n\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Report' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedReport?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'REPORT' | translate }}</label>\r\n <dx-select-box [(value)]=\"selectedReport\"\r\n [(dataSource)]=\"allReports\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Muster Dateiname' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ filenamePattern?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'MUSTER DATEINAME' | translate }}</label>\r\n <dx-text-box [(value)]=\"filenamePattern\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Beschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ mimeDescr?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'MIME DESCRIPTION' | translate }}</label>\r\n <dx-text-box [(value)]=\"mimeDescr\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Alle ersetzen' | translate }}</div>\r\n <dx-check-box [(value)]=\"replaceAll\" style=\"padding-top: 6px;\"></dx-check-box>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n@Component({\r\n selector: \"userAction-deleteDuplicateMimes\",\r\n templateUrl: \"userAction-deleteDuplicateMimes.component.html\"\r\n})\r\nexport class UserActionDeleteDuplicateMimesComponent extends UserActionBaseComponent {\r\n useOnlyMimeSource: boolean = false;\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n }\r\n\r\n startMacro() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `DeleteDuplicateMimes(useOnlyMimeSource:${this.useOnlyMimeSource.toString()})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n //additional step\r\n\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--64 DeleteDuplicateMimes-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'NUR MIME_SOURCE verwenden' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <dx-switch [(value)]=\"useOnlyMimeSource\"></dx-switch>\r\n </div>\r\n </div>\r\n</div>\r\n","<!--68: RemoveUDXOnProducts-->\r\n<dx-scroll-view width=\"100%\" height=\"100%\" showScrollbar=\"always\">\r\n <div class=\"dx-field\" style=\"height: 400px\">\r\n <div *ngIf=\"isUdxLoaded==false\" style=\"left: 30%; top: 30%;\">\r\n <div class=\"loader\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"isUdxLoaded==true\" class=\"{{fullScreen ? '': 'maxHeight'}}\">\r\n <dx-tree-list [(dataSource)]=\"udxFilters\"\r\n [(selectedRowKeys)]=\"checkedUdx\"\r\n dataStructure=\"tree\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"groupString\"\r\n showCheckBoxesMode=\"selectAll\"\r\n [ngStyle]=\"{'height': 'inherit'}\">\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-selection mode=\"multiple\" recursive=\"true\"></dxo-selection>\r\n <dxo-scrolling preloadEnabled=\"true\" useNative=\"true\"></dxo-scrolling>\r\n <dxi-column dataField=\"text\" caption=\"{{ 'Udx' | translate }}\"></dxi-column>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n</dx-scroll-view>\r\n","import { Component } from '@angular/core';\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FeatureSystemFilter } from \"../../../../Model/Dto/FeatureSystemFilter\";\r\nimport { ExportFilterService } from '../../../../Services/exportFilter.service';\r\nimport { CategoryFilterTreeItem } from '../../../../Model/Catalog/exportFilter/categoryFilterTreeItem';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"userAction-removeUdxOnProducts\",\r\n templateUrl: \"userAction-removeUdxOnProducts.component.html\"\r\n})\r\nexport class UserActionRemoveUdxOnProducts extends UserActionBaseComponent { \r\n udxFilters: CategoryFilterTreeItem[];\r\n checkedUdx: CategoryFilterTreeItem[];\r\n isUdxLoaded: boolean;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public exportFilterService: ExportFilterService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.udxFilters = new Array<CategoryFilterTreeItem>();\r\n this.isUdxLoaded = false;\r\n this.refreshUdxFilter();\r\n }\r\n\r\n refreshUdxFilter() {\r\n this.exportFilterService.getUdxFilterTreeElements(\r\n this.modelService.catalogService.selectedCatalogId,\r\n this.modelService.loginService.currentUser.customerId)\r\n .subscribe((filter: CategoryFilterTreeItem[]) => {\r\n this.udxFilters = filter;\r\n this.isUdxLoaded = true;\r\n });\r\n }\r\n\r\n startMacro() {\r\n if (this.checkedUdx == undefined || this.checkedUdx.length == 0) {\r\n this.modelService.systemService.notifyInfo(\"Mindestens ein UDX auswählen\");\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionParameter = JSON.stringify({ Values: this.checkedUdx });\r\n startAction.actionType = `RemoveUDXOnProduct`;\r\n\r\n this.modelService.jobService.startUserAction(startAction).subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ViewService } from \"../../../../Services/view.service\";\r\n\r\n@Component({\r\n selector: \"userAction-deleteMediaByPurpose\",\r\n templateUrl: \"userAction-deleteMediaByPurpose.component.html\"\r\n})\r\nexport class UserActionDeleteMediaByPurpose extends UserActionBaseComponent {\r\n _allPurposes: string[];\r\n _selectedPurpose: string;\r\n\r\n txtSelectPurpose: string;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit(); //important\r\n\r\n this.translate.get(\"Bitte wählen Sie eine Verwendung aus\")\r\n .subscribe((text: string) => {\r\n this.txtSelectPurpose = text;\r\n });\r\n\r\n this.allPurposes = ViewService.dropDownMimePurposes;\r\n }\r\n\r\n\r\n\r\n get allPurposes(): string[] {\r\n return this._allPurposes;\r\n }\r\n\r\n set allPurposes(value: string[]) {\r\n this._allPurposes = value;\r\n }\r\n\r\n\r\n\r\n get selectedPurpose(): string {\r\n return this._selectedPurpose;\r\n }\r\n\r\n set selectedPurpose(value: string) {\r\n this._selectedPurpose = value;\r\n }\r\n\r\n\r\n\r\n startMacro() {\r\n if (this.selectedPurpose == \"\" || this.selectedPurpose == undefined) {\r\n this.modelService.systemService.notifyInfo(this.txtSelectPurpose);\r\n return;\r\n }\r\n\r\n\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `DeleteMediaByPurpose(${this.selectedPurpose})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--71: DeleteMediaByPurpose-->\r\n\r\n\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Verwendung' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedPurpose?.length > 0 ? 'placeLabelSmall' : '' }}\">{{ 'MIME PURPOSE' | translate }}</label>\r\n <dx-autocomplete [(value)]=\"selectedPurpose\"\r\n [(dataSource)]=\"allPurposes\"\r\n [minSearchLength]=\"0\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"true\">\r\n </dx-autocomplete>\r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-CreateVariants\",\r\n templateUrl: \"userAction-createVariantsFeatureSystem.component.html\"\r\n})\r\nexport class UserActionCreateVariantsFeatureSystemComponent extends UserActionFeatureSystemsComponent {\r\n mode = false;\r\n createTechnicalDetails = false;\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n startMacro() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"CreateOrMarkVariantsFeatures\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString(): string {\r\n let parameterJsonString = JSON.stringify(\r\n {\r\n mode: this.mode,\r\n createTechnicalDetails: this.createTechnicalDetails\r\n });\r\n return parameterJsonString;\r\n }\r\n}\r\n","<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'Alte udf_NMVARIANTS Featuresystem erzeugen' | translate }}</div>\r\n <dx-switch [(value)]=\"mode\"></dx-switch>\r\n</div>\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'udf_NMTECHNICALDETAILS-1.0 erzeugen' | translate }}</div>\r\n <dx-switch [(value)]=\"createTechnicalDetails\"></dx-switch>\r\n</div>\r\n","<!--74 harmonizeFeatures-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'FeatureSystemName' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedFeatureSystem?.name?.length > 0 ? 'placeLabelSmall' : '' }}\">REFERENCE FEATURESYSTEM NAME</label>\r\n <dx-select-box [(value)]=\"selectedFeatureSystem\"\r\n [items]=\"filteredFeatureSystems\"\r\n displayExpr=\"name\"\r\n (onValueChanged)=\"onFeaturesystemChanged($event)\"\r\n placeholder=\"\">\r\n </dx-select-box>\r\n </div>\r\n</div>\r\n<dx-load-indicator *ngIf=\"featuresLoading\" id=\"small-indicator\" height=\"20\" width=\"20\"></dx-load-indicator>\r\n<dx-data-grid *ngIf=\"selectedFeatureSystem && !featuresLoading\"\r\n id=\"gridContainer\"\r\n [dataSource]=\"featuresWithOrder\"\r\n [showBorders]=\"true\">\r\n\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column dataField=\"order\" dataType=\"number\" width=\"100\" caption=\"{{ 'Order' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"name\" [allowEditing]=\"false\" caption=\"{{ 'Feature-Name' | translate }}\"></dxi-column>\r\n\r\n</dx-data-grid>\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { UserActionFeatureSystemsComponent } from \"../userAction-featureSystem/userAction-featureSystem.component\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { ValidFeatureService } from \"../../../../Services/validFeature.service\";\r\nimport { ValidFeatureSystem } from \"../../../../Model/ValidFeatureSystem\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FeatureSystem } from \"../../../../Model/Catalog/FeatureModels/FeatureSystem\";\r\nimport { ViewService } from \"../../../../Services/view.service\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-harmonizeFeatures\",\r\n templateUrl: \"userAction-harmonizeFeatures.component.html\"\r\n})\r\nexport class UserActionHarmonizeFeaturesComponent extends UserActionFeatureSystemsComponent {\r\n selectedFeatureSystem: ValidFeatureSystem;\r\n featuresLoading = false;\r\n featuresWithOrder: any[] = [];\r\n filteredFeatureSystems: ValidFeatureSystem[];\r\n\r\n constructor(public modelService: ModelService, validFeatureService: ValidFeatureService, private translate: TranslateService) {\r\n super(modelService, validFeatureService);\r\n }\r\n\r\n async ngOnInit() {\r\n await super.ngOnInit();\r\n this.setFilterFeatureSystems(this.featureSystems);\r\n }\r\n\r\n setFilterFeatureSystems(featureSystems: ValidFeatureSystem[]) {\r\n this.filteredFeatureSystems = featureSystems.filter(x => !ViewService.isSingleValue(x.name));\r\n }\r\n\r\n async onFeaturesystemChanged(e) {\r\n if (this.selectedFeatureSystem) {\r\n this.featuresLoading = true;\r\n let features = await this.loadFeatures(this.selectedFeatureSystem);\r\n this.featuresWithOrder = features.sort((a, b) => a.name.localeCompare(b.name));\r\n this.setOrders();\r\n this.featuresLoading = false;\r\n }\r\n }\r\n\r\n setOrders() {\r\n for (var i = 1; i <= this.featuresWithOrder.length; i++) {\r\n this.featuresWithOrder[i-1].order = i;\r\n }\r\n }\r\n\r\n startMacro() {\r\n if (!this.selectedFeatureSystem) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"FeatureSystem auswählen\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"HarmonizeFeatures\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.featuresWithOrder);\r\n }\r\n}\r\n","<!--78 setWawiSupplierPids-->\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Bestehenden Wert auf SUPPLIER_ALT_PID übertragen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch [(value)]=\"fillAlt\"\r\n switchedOffText=\"Nein\"\r\n switchedOnText=\"Ja\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Lieferant ist auch Hersteller' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch [(value)]=\"supplierIsManufacturer\"\r\n switchedOffText=\"Nein\"\r\n switchedOnText=\"Ja\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!catalogHasSupplier()\" class=\"accordion-body-warning\">\r\n <div>{{ 'Im Katalogkopf wurden keine Lieferanteninformationen gepflegt.' | translate }}</div>\r\n</div>\r\n<div *ngIf=\"catalogHasSupplier()\" class=\"accordion-body-warning\">\r\n <div>{{ 'Im Katalogkopf wurden Lieferanteninformationen gepflegt. Es werden die entsprechenden Lieferanteninformationen aus den Mappings benutzt.' | translate }}</div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-setWawiSupplierPids\",\r\n templateUrl: \"userAction-setWawiSupplierPids.component.html\",\r\n styleUrls: [\"userAction-setWawiSupplierPids.component.css\"]\r\n})\r\nexport class UserActionSetWawiSupplierPidsComponent extends UserActionBaseComponent {\r\n\r\n fillAlt: boolean = false;\r\n supplierIsManufacturer: boolean = false;\r\n\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n catalogHasSupplier(): boolean {\r\n let value = this.modelService.catalogService.catalog.supplier != null &&\r\n this.modelService.catalogService.catalog.supplier.supplierName != null && this.modelService.catalogService.catalog.supplier.supplierName != \"\" &&\r\n this.modelService.catalogService.catalog.supplier.supplierId != null && this.modelService.catalogService.catalog.supplier.supplierId != \"\";\r\n return value;\r\n }\r\n\r\n startMacro() {\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = `SetWawiSupplierPids`;\r\n startAction.actionParameter = JSON.stringify({ FillAlt: this.fillAlt, SupplierIsManufacturer: this.supplierIsManufacturer });\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\n\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"userAction-createEnventaMime\",\r\n templateUrl: \"userAction-createEnventaMime.component.html\"\r\n})\r\nexport class UserActionCreateEnventaMimeComponent extends UserActionBaseComponent {\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n postfix :string = \"\";\r\n startMacro() {\r\n \r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `CreateEnventaMime(${this.postfix})`;\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Postfix' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ postfix?.length > 0 ? 'placeLabelSmall' : '' }}\">POSTFIX</label>\r\n <dx-text-box [(value)]=\"postfix\"\r\n \r\n placeholder=\"\"></dx-text-box>\r\n \r\n\r\n \r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction-setMimePurpose\",\r\n templateUrl: \"userAction-setMimePurpose.component.html\"\r\n})\r\nexport class UserActionSetMimePurposeComponent extends UserActionBaseComponent {\r\n \r\n overrideExisting: boolean = false;\r\n\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n startMacro() {\r\n \r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = `SetMimePurpose`;\r\n startAction.actionParameter = JSON.stringify({ OverrideExisting: this.overrideExisting });\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n}\r\n","<!--78 setWawiSupplierPids-->\r\n\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Bestehenden Werte überschreiben' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch [(value)]=\"overrideExisting\"\r\n switchedOffText=\"Nein\"\r\n switchedOnText=\"Ja\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\n\r\n@Component({\r\n selector: \"userAction-markAsChanged\",\r\n templateUrl: \"userAction-markAsChanged.component.html\"\r\n})\r\nexport class UserActionMarkAsChangedComponent extends UserActionBaseComponent {\r\n markCategoriesAsChanged: boolean = false;\r\n markProductsAsChanged: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n super(modelService);\r\n }\r\n\r\n startMacro() {\r\n if (!(this.markCategoriesAsChanged || this.markProductsAsChanged)) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"mindestens ein Schalter\"));\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"MarkAsChanged\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify({\r\n markCategoriesAsChanged: this.markCategoriesAsChanged,\r\n markProductsAsChanged: this.markProductsAsChanged\r\n });\r\n }\r\n}\r\n","<!--87 markAsChanged-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'Produkte als geändert markieren' | translate }}</div>\r\n <dx-switch [(value)]=\"markProductsAsChanged\"></dx-switch>\r\n</div>\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'Kategorien als geändert markieren' | translate }}</div>\r\n <dx-switch [(value)]=\"markCategoriesAsChanged\"></dx-switch>\r\n</div>\r\n","export class MimePurposeToBeRenamed {\r\n public constructor(\r\n public mimePurpose: string,\r\n public newMimePurpose: string) {\r\n }\r\n}\r\n","<!--90: changeMimePurposes-->\r\n\r\n<dx-load-indicator *ngIf=\"loading\" id=\"large-indicator\" height=\"60\" width=\"60\"></dx-load-indicator>\r\n\r\n<dx-data-grid *ngIf=\"!loading\"\r\n [dataSource]=\"purposesGridDataSource\"\r\n [showBorders]=\"true\"\r\n noDataText=\"{{ 'ChangeMimePurposesMacroNoDataMessage' | translate }}\"\r\n [style.marginTop.px]=\"25\">\r\n <dxi-column dataField=\"mimePurpose\" caption=\"Ursprünglicher Name\"></dxi-column>\r\n <dxi-column dataField=\"newMimePurpose\" caption=\"Neuer Name\" cellTemplate=\"newNameTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let model of 'newNameTemplate'\">\r\n <dx-text-box [(value)]=\"model.data.newMimePurpose\" [showClearButton]=\"false\"></dx-text-box>\r\n </div>\r\n</dx-data-grid>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { MimePurposeToBeRenamed } from \"../../../../Model/Catalog/MimeModels/MimePurposeToBeRenamed\";\r\n\r\n@Component({\r\n selector: \"useraction-changemimepurposes\",\r\n templateUrl: \"useraction-changemimepurposes.component.html\"\r\n})\r\nexport class UserActionChangeMimePurposeComponent extends UserActionBaseComponent implements OnInit {\r\n\r\n loading = false;\r\n\r\n purposesGridDataSource: Array<MimePurposeToBeRenamed> = [];\r\n\r\n constructor(public modelService: ModelService) {\r\n super(modelService);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit(); //important\r\n\r\n this.loadPurposes();\r\n }\r\n\r\n\r\n\r\n loadPurposes() {\r\n return new Promise<void>((resolve) => {\r\n\r\n let selectedCatalogId = this.modelService.catalogService.selectedCatalogId;\r\n let customerId = this.modelService.loginService.currentUser.customerId;\r\n this.loading = true;\r\n\r\n this.purposesGridDataSource = new Array<MimePurposeToBeRenamed>();\r\n\r\n this.modelService.catalogService\r\n .getAllMimePurposesInCatalog(selectedCatalogId, customerId)\r\n .subscribe(\r\n (purposes) => {\r\n this.setPurposes(purposes);\r\n this.loading = false;\r\n resolve();\r\n });\r\n\r\n });\r\n }\r\n\r\n setPurposes(purposes) {\r\n if (purposes) {\r\n for (var element of purposes) {\r\n let newItem = new MimePurposeToBeRenamed(element, null);\r\n this.purposesGridDataSource.push(newItem);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n startMacro() {\r\n if (this.purposesGridDataSource.length == 0)\r\n return;\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n\r\n this.modelService.jobService.startUserAction(this.createUserAction()).subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createUserAction(): StartAction {\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"ChangeMimePurposes\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n return startAction;\r\n }\r\n\r\n createParameterStringAsJsonString(): string {\r\n let parameterJsonString = JSON.stringify({\r\n mimePurposesToBeRenamed: this.purposesGridDataSource\r\n });\r\n return parameterJsonString;\r\n }\r\n}\r\n","export class ApplyWawiMappingModel {\r\n constructor(\r\n public exportMode?: boolean,\r\n public fieldToMappingId?: { [field: string]: string; }\r\n ) { }\r\n}\r\n","<dx-tree-list [dataSource]=\"dataSource\"\r\n itemsExpr=\"items\"\r\n keyExpr=\"field\"\r\n (onRowUpdated)=\"mappingChanged($event)\"\r\n (onSelectionChanged)=\"updateExportParameter($event)\"\r\n allowColumnResizing=\"true\">\r\n <dxo-selection mode=\"multiple\" [recursive]=\"true\"></dxo-selection>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\"></dxo-editing>\r\n <dxi-column width=\"35%\" caption=\"Field\" [allowEditing]=\"false\" cellTemplate=\"fieldCellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let model of 'fieldCellTemplate'\">\r\n <div style=\"height:30px;\" *ngIf=\"model.data.parentId\">\r\n <label class=\"fieldLabel\">{{ model.data.field }}</label>\r\n <div class=\"fieldText\">{{ model.data.translatedField }}</div>\r\n </div>\r\n <div *ngIf=\"!model.data.parentId\">\r\n <div>{{ model.data.field }}</div>\r\n </div>\r\n </div>\r\n <dxi-column dataField=\"mappingId\" caption=\"Mapping\" showEditorAlways=\"true\">\r\n <dxo-lookup [dataSource]=\"wawiMappings\" displayExpr=\"listName\" valueExpr=\"id\" [allowClearing]=\"true\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column width=\"40%\" dataField=\"preview\" [allowEditing]=\"false\"></dxi-column>\r\n</dx-tree-list>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TemplateItemTemplate } from '../../../../../Model/Catalog/TemplateItemTemplate';\r\nimport { ExportParameter } from '../../../../../Model/exportParameter/ExportParameter';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { WawiListService } from '../../../../../Services/wawiList.service';\r\nimport { ModelService } from '../../../../../Services/model.service';\r\nimport { WawiList } from '../../../../../Model/wawi/WawiList';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'wawiMappingChooser',\r\n templateUrl: './wawiMappingChooser.component.html',\r\n styleUrls: ['./wawiMappingChooser.component.css']\r\n})\r\nexport class WawiMappingChooserComponent implements OnInit {\r\n @Input() set exportParameter(value: ExportParameter) {\r\n this._exportParameter = value;\r\n //todo for exportdialog\r\n //this.selectFieldsFromConfig();\r\n };\r\n @Input() set fields(value: TemplateItemTemplate[]) {\r\n this._fields = value;\r\n if (value) {\r\n this.fillDataSource();\r\n }\r\n }\r\n\r\n get fields(): TemplateItemTemplate[] {\r\n return this._fields;\r\n }\r\n\r\n @Input() fieldGroups: string[] = [];\r\n @Input() set exportMode(value: boolean) {\r\n this._exportMode = value;\r\n this.updatePreviews();\r\n }\r\n\r\n get exportMode(): boolean {\r\n return this._exportMode;\r\n }\r\n\r\n get exportParameter() {\r\n return this._exportParameter;\r\n }\r\n\r\n _fields: TemplateItemTemplate[] = [];\r\n _exportParameter: ExportParameter;\r\n _exportMode: boolean;\r\n wawiMappings: WawiList[];\r\n dataSource: TreeListRow[] = [];\r\n groups: { name: string, active: boolean }[];\r\n\r\n constructor(public modelService: ModelService, public wawiListService: WawiListService, public translate: TranslateService) {\r\n\r\n }\r\n\r\n async ngOnInit(): Promise<void> {\r\n this.wawiMappings = await lastValueFrom(this.wawiListService.getAllMappingsWithoutFields(this.modelService.loginService.currentUser.customerId));\r\n }\r\n\r\n fillDataSource() {\r\n this.dataSource = this.fieldGroups.map(x => {\r\n return { field: x, translatedField: this.translate.instant(x) }\r\n });\r\n this.fields.forEach(x => {\r\n var groupItem = this.dataSource.find(y => y.field == x.group);\r\n if (groupItem)\r\n this.dataSource.push({ parentId: groupItem.field, field: x.field, translatedField: this.translate.instant(x.field) });\r\n });\r\n }\r\n\r\n mappingChanged(event) {\r\n this.updatePreviews(event.data);\r\n this.updateExportParameter(event);\r\n }\r\n\r\n updateExportParameter(event) {\r\n var mappedList = event.component.getSelectedRowsData(\"leavesOnly\").map(x => [ x.field, x.mappingId ?? \"\" ]);\r\n this.exportParameter.fieldToMappingId = Object.fromEntries(mappedList);\r\n }\r\n\r\n updatePreviews(rowData: TreeListRow = undefined) {\r\n if (!rowData) {\r\n this.dataSource.forEach(x => {\r\n if (x.mappingId) {\r\n let wawiList = this.wawiMappings.find(y => y.id == x.mappingId);\r\n if (!wawiList) {\r\n x.preview = undefined;\r\n return;\r\n }\r\n let leftSidePreviewText = this.exportMode ? wawiList.key : wawiList.value;\r\n let rightSidePreviewText = this.exportMode ? wawiList.value : wawiList.key;\r\n x.preview = `${leftSidePreviewText} -> ${rightSidePreviewText}`;\r\n }\r\n });\r\n } else {\r\n if (rowData.parentId) {\r\n let wawiList = this.wawiMappings.find(y => y.id == rowData.mappingId);\r\n if (!wawiList) {\r\n rowData.preview = undefined;\r\n return;\r\n }\r\n let leftSidePreviewText = this.exportMode ? wawiList.key : wawiList.value;\r\n let rightSidePreviewText = this.exportMode ? wawiList.value : wawiList.key;\r\n rowData.preview = `${leftSidePreviewText} -> ${rightSidePreviewText}`;\r\n } else {\r\n this.dataSource.forEach(x => {\r\n if (x.parentId == rowData.field || x.field == rowData.field) {\r\n x.mappingId = rowData.mappingId;\r\n let wawiList = this.wawiMappings.find(y => y.id == x.mappingId);\r\n if (!wawiList) {\r\n x.preview = undefined;\r\n return;\r\n }\r\n let leftSidePreviewText = this.exportMode ? wawiList.key : wawiList.value;\r\n let rightSidePreviewText = this.exportMode ? wawiList.value : wawiList.key;\r\n x.preview = `${leftSidePreviewText} -> ${rightSidePreviewText}`;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n //todo for exportdialog\r\n /*selectFieldsFromConfig() {\r\n if (this.exportParameter.fields == null)\r\n this.exportParameter.fields = ['SUPPLIER_PID'];\r\n\r\n this.fields.forEach(x => {\r\n x.active = this.exportParameter.fields.some(y => y == x.field);\r\n });\r\n\r\n this.groups = this.fieldGroups.map(x => { return { name: x, active: false } });\r\n this.groups.forEach(x => {\r\n x.active = !this.fields.some(y => y.group == x.name && !y.active)\r\n });\r\n }*/\r\n}\r\n\r\ntype TreeListRow = {\r\n parentId?: string,\r\n field: string,\r\n translatedField: string,\r\n mappingId?: string,\r\n preview?: string\r\n};\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\nimport { StartAction } from \"../../../../Model/Dto/StartAction\";\r\nimport { UserActionBaseComponent } from \"../userAction-base.component\";\r\nimport { ApplyWawiMappingModel } from \"../../../../Model/wawi/ApplyWawiMappingModel\";\r\nimport { ExportParameter } from \"../../../../Model/exportParameter/ExportParameter\";\r\nimport { UpdateTemplateService } from \"../../../../Services/updateTemplate.service\";\r\nimport { CatalogService } from \"../../../../Services/CatalogManagement/catalog.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { WawiListService } from \"../../../../Services/wawiList.service\";\r\nimport { TemplateItemTemplate } from \"../../../../Model/Catalog/TemplateItemTemplate\";\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n@Component({\r\n selector: \"userAction-applyWawiMappings\",\r\n templateUrl: \"userAction-applyWawiMappings.component.html\"\r\n})\r\nexport class UserActionApplyWawiMappings extends UserActionBaseComponent implements OnInit {\r\n applyWawiMappingModel: ApplyWawiMappingModel;\r\n config: ExportParameter = new ExportParameter();\r\n fields: TemplateItemTemplate[];\r\n\r\n constructor(public modelService: ModelService, public updateTemplateService: UpdateTemplateService,\r\n public catalogService: CatalogService, public translate: TranslateService, public wawiListService: WawiListService) {\r\n super(modelService);\r\n this.applyWawiMappingModel = new ApplyWawiMappingModel();\r\n }\r\n\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n this.fields = await lastValueFrom(this.wawiListService.getWawiMappingFields(this.modelService.loginService.currentUser.customerId));\r\n }\r\n\r\n startMacro() {\r\n if (!this.config.fieldToMappingId ||\r\n Object.keys(this.config.fieldToMappingId).length == 0 ||\r\n Object.values(this.config.fieldToMappingId).every(x => x == \"\")) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"mindestens ein Feld markieren und das Mapping ausfüllen\"));\r\n return;\r\n }\r\n this.applyWawiMappingModel.fieldToMappingId = this.config.fieldToMappingId;\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"ApplyWawiMappings\";\r\n startAction.actionParameter = this.createParameterStringAsJsonString();\r\n\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.userActionStarted.emit(next);\r\n });\r\n }\r\n\r\n createParameterStringAsJsonString() {\r\n return JSON.stringify(this.applyWawiMappingModel);\r\n }\r\n}\r\n","<!--97 apply Wawi-Mappings-->\r\n<div class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-field-label switch-left\">{{ 'Wert->Schlüssel' | translate }}</div>\r\n <dx-switch [(value)]=\"applyWawiMappingModel.exportMode\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ 'Schlüssel->Wert' | translate }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<wawiMappingChooser [fields]=\"fields\"\r\n [fieldGroups]=\"updateTemplateService.GetFieldGroups()\"\r\n [(exportParameter)]=\"config\"\r\n [exportMode]=\"applyWawiMappingModel.exportMode\">\r\n</wawiMappingChooser>\r\n","<div class=\"d-flex flex-row h-100\">\r\n <dx-scroll-view class=\"w-33\" showScrollbar=\"always\">\r\n\r\n <dx-accordion [dataSource]=\"cards\"\r\n [collapsible]=\"true\"\r\n [multiple]=\"false\"\r\n [animationDuration]=\"300\"\r\n [(selectedItems)]=\"macroAccordionSelectedItem\">\r\n <div *dxTemplate=\"let card of 'title'\">\r\n <div style=\"font-size:18px\">{{card.name}}</div>\r\n </div>\r\n <div *dxTemplate=\"let card of 'item'\" class=\"p-0\">\r\n <div *ngFor=\"let element of card.elements\">\r\n <dx-button stylingMode=\"text\" text=\"{{getMacroName(element)}}\" hint=\"{{getMacroName(element)}}\" (onClick)=\"setMacro(element)\" class=\"dx-button-text-left w-100\"></dx-button>\r\n </div>\r\n </div>\r\n </dx-accordion>\r\n </dx-scroll-view>\r\n <div class=\"flex-fill\" >\r\n <dx-scroll-view showScrollbar=\"always\">\r\n <div *ngIf=\"macro!=0\">\r\n <div class=\"dx-accordion-item-title\">{{getMacroName(macro)}}</div>\r\n\r\n <div *ngIf=\"macro!=62\" class=\"accordion-body\">\r\n <div>{{getMacroText(macro)}}</div>\r\n </div>\r\n <div *ngIf=\"isDelete\" class=\"accordion-body-warning\">\r\n <div>{{ 'ACHTUNG: Diese Makro löscht Daten unwiderruflich. Bitte erstellen Sie ggf. einen Wiederherstellungspunkt.' | translate }}</div>\r\n </div>\r\n <div *ngIf=\"isFeatureSystemMakro\" class=\"accordion-body\">\r\n <div>{{ 'Featuresysteme die als Vorlage im Katalog hinterlegt sind können mit diesem Makro nicht bearbeitet werden.' | translate }}</div>\r\n </div>\r\n <div *ngIf=\"macro==62\">\r\n <!--62: ExportReportProductDatasheet - Enthält HTML im Text und den Übersetzungen-->\r\n <div class=\"accordion-body\" [innerHtml]=\"getMacroText(macro)\"></div>\r\n </div>\r\n\r\n <div [ngSwitch]=\"macro\" class=\"dx-accordion-item-body\">\r\n <!--11 Bilder konvertieren-->\r\n <div *ngSwitchCase=\"'11'\">\r\n <userAction-convertPictures [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-convertPictures>\r\n </div>\r\n <!--15 Löschen per Liste-->\r\n <div *ngSwitchCase=\"'15'\">\r\n <userAction-deleteByList [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteByList>\r\n </div>\r\n <!--16 Suchen per Liste-->\r\n <div *ngSwitchCase=\"'16'\">\r\n <userAction-searchByList [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-searchByList>\r\n </div>\r\n <!--17 Update von Katalog-->\r\n <div *ngSwitchCase=\"'17'\">\r\n <userAction-updateCatalog [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-updateCatalog>\r\n </div>\r\n <!--51 Update to Katalog-->\r\n <div *ngSwitchCase=\"'51'\">\r\n <userAction-updateToCatalog [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-updateToCatalog>\r\n </div>\r\n <!--18 compare catalog-->\r\n <div *ngSwitchCase=\"'18'\">\r\n <userAction-compareCatalog [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-compareCatalog>\r\n </div>\r\n <!--31 Rename FeatureSystem Name-->\r\n <div *ngSwitchCase=\"'31'\">\r\n <userAction-renameFeatureSystem [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-renameFeatureSystem>\r\n </div>\r\n <!--34 Delete Empty Features-->\r\n <div *ngSwitchCase=\"'34'\">\r\n <userAction-deleteEmptyFeatures [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteEmptyFeatures>\r\n </div>\r\n\r\n <!-- 83: massGenerateKITexts -->\r\n <div *ngSwitchCase=\"'83'\">\r\n <userAction-generateAITexts [showPlaceHolders]=\"showPlaceHolders\" (userActionToggleStartButton)=\"onToggleStartMacroButton($event)\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-generateAITexts>\r\n </div>\r\n\r\n <!--84 Rename Features-->\r\n <div *ngSwitchCase=\"'84'\">\r\n <userAction-renameFeatures [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-renameFeatures>\r\n </div>\r\n <!--85 Split Featurevalues from Unit-->\r\n <div *ngSwitchCase=\"'85'\">\r\n <userAction-splitFeatureValuesFromUnit [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-splitFeatureValuesFromUnit>\r\n </div>\r\n <!--38 DeleteFeatureSystems-->\r\n <div *ngSwitchCase=\"'38'\">\r\n <userAction-deleteFeatureSystems [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteFeatureSystems>\r\n </div>\r\n <!--39 Copy Media From Other Catalog-->\r\n <div *ngSwitchCase=\"'39'\">\r\n <userAction-copyMediaFromOtherCatalog [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-copyMediaFromOtherCatalog>\r\n </div>\r\n <!--40 deleteFeatureByName-->\r\n <div *ngSwitchCase=\"'40'\">\r\n <userAction-deleteFeatures [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteFeatures>\r\n </div>\r\n <!--47 Create Technical Details-->\r\n <div *ngSwitchCase=\"'47'\">\r\n <userAction-createTechnicalDetails [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-createTechnicalDetails>\r\n </div>\r\n <!--55 SpreadCatalog-->\r\n <div *ngSwitchCase=\"'55'\">\r\n <userAction-spreadCatalog [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-spreadCatalog>\r\n </div>\r\n <!--58 Harmonize Featuresystems -->\r\n <div *ngSwitchCase=\"'58'\">\r\n <userAction-harmonizeFeatureSystems [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-harmonizeFeatureSystems>\r\n </div>\r\n <!--60 Fix Classification-->\r\n <div *ngSwitchCase=\"'60'\">\r\n <userAction-fixClassification [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-fixClassification>\r\n </div>\r\n <!--62: ExportReportProductDatasheet-->\r\n <div *ngSwitchCase=\"'62'\">\r\n <userAction-exportReportProductDatasheet [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-exportReportProductDatasheet>\r\n </div>\r\n <!-- 64 DeleteDuplicateMimes -->\r\n <div *ngSwitchCase=\"'64'\">\r\n <userAction-deleteDuplicateMimes [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteDuplicateMimes>\r\n </div>\r\n <!--68: RemoveUDXOnProducts-->\r\n <div *ngSwitchCase=\"'68'\">\r\n <userAction-removeUdxOnProducts [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-removeUdxOnProducts>\r\n </div>\r\n <!--71: DeleteMediaByPurpose-->\r\n <div *ngSwitchCase=\"'71'\">\r\n <userAction-deleteMediaByPurpose [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-deleteMediaByPurpose>\r\n </div>\r\n\r\n <!--72: createVariantFeatureSystem-->\r\n <div *ngSwitchCase=\"'72'\">\r\n <userAction-CreateVariants [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-CreateVariants>\r\n </div>\r\n\r\n <!--74: harmonizeFeatures-->\r\n <div *ngSwitchCase=\"'74'\">\r\n <userAction-harmonizeFeatures [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-harmonizeFeatures>\r\n </div>\r\n\r\n <!--78: setWawiSupplierPids-->\r\n <div *ngSwitchCase=\"'78'\">\r\n <userAction-setWawiSupplierPids [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-setWawiSupplierPids>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'82'\">\r\n <userAction-createEnventaMime [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-createEnventaMime>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'44'\">\r\n <userAction-setMimePurpose [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-setMimePurpose>\r\n </div>\r\n\r\n <!--87: markAsChanged-->\r\n <div *ngSwitchCase=\"'87'\">\r\n <userAction-markAsChanged [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-markAsChanged>\r\n </div>\r\n\r\n <!--90: changeMimePurposes-->\r\n <div *ngSwitchCase=\"'90'\">\r\n <useraction-changemimepurposes [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></useraction-changemimepurposes>\r\n </div>\r\n\r\n <!--97: applyWawiMappings-->\r\n <div *ngSwitchCase=\"'97'\">\r\n <userAction-applyWawiMappings [showPlaceHolders]=\"showPlaceHolders\" (userActionComponentInitiated)=\"onUserActionComponentInitiated($event)\" (userActionStarted)=\"onUserActionStarted($event)\"></userAction-applyWawiMappings>\r\n </div>\r\n\r\n </div>\r\n <div class=\"macroHead dx-accordion-item-body\" *ngIf=\"startMacroButtonEnabled\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Starte Makro' | translate }}\" (onClick)=\"startMacro()\" class=\"buttonMargin\"></dx-button>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\nimport { StartAction } from \"../../../Model/Dto/StartAction\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserActionBaseComponent } from './userAction-base.component';\r\nimport { Card } from '../../../Model/ui/Card';\r\nimport { Macro } from '../../../Model/ui/Macro';\r\nimport { USERACTIONVIEWDETAILS } from \"../../../Services/userActionView.service\";\r\nimport { PimLicense } from \"../../../Model/User/PimLicense\";\r\n\r\n\r\n@Component({\r\n selector: \"userAction\",\r\n templateUrl: \"userAction.component.html\",\r\n styleUrls: [\"./userAction.component.css\"]\r\n})\r\nexport class UserActionComponent implements OnInit {\r\n cards: Card[];\r\n macros: Macro[];\r\n\r\n _macroAccordionSelectedItem: any;\r\n\r\n currentSelectedUserActionComponent: UserActionBaseComponent;\r\n\r\n public macro: number = 0;\r\n public isLoading: boolean = false;\r\n public isDelete: boolean = false;\r\n public isFeatureSystemMakro: boolean = false;\r\n startMacroButtonEnabled = true;\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.onToggleStartMacroButton = this.onToggleStartMacroButton.bind(this);\r\n this.initRepository();\r\n\r\n this.translateTexts();\r\n this.setCards();\r\n this.setMacros();\r\n this.resetView();\r\n }\r\n\r\n onToggleStartMacroButton(enable: boolean) {\r\n this.startMacroButtonEnabled = enable;\r\n }\r\n\r\n txtKatalog: string = \"Katalog\";\r\n txtKategorie: string;\r\n txtProdukte: string;\r\n txtMedien: string;\r\n txtFeatures: string;\r\n txtShop: string;\r\n txtUebersetzung: string;\r\n txtTroubleShooting: string;\r\n txtMakroGestarted: string;\r\n txtDeleteWarning: string;\r\n txtVarianten: string;\r\n txtKIText: string;\r\n txtRemovePathFromMimeSourceShort: string;\r\n\r\n txtRemoveMimeWithoutImagePathShort: string;\r\n txtReorderMimeShort: string;\r\n txtRemoveAllFeaturesShort: string;\r\n txtRemoveAllMimesShort: string;\r\n txtRemoveAllOrderDetailsShort: string;\r\n txtRemoveAllPricesShort: string;\r\n txtRemoveAllUDXShort: string;\r\n txtRemoveAllLogisticDetailsShort: string;\r\n txtRemoveEmptyCategoriesShort: string;\r\n txtResizeImagesShort: string;\r\n txtSupplierPIDSwitchShort: string;\r\n txtCheckCatalogShort: string;\r\n txtDeleteByListShort: string;\r\n txtSearchByListShort: string;\r\n txtUpdateFromCatalogShort: string;\r\n txtUpdateToCatalogShort: string;\r\n txtUpdateToCatalogLong: string;\r\n txtDeleteAllMediaShort: string;\r\n txtCompareCatalogShort: string;\r\n txtDeleteCategoryImagesShort: string;\r\n txtDeleteUnUsedMimesShort: string;\r\n txtAssignCategoryImagesShort: string;\r\n txtAddEcommerceFeaturesShort: string;\r\n txtAddEcommerceFeaturesLong: string;\r\n\r\n txtCacheThumbnailsShort: string;\r\n txtRemoveMasterShort: string;\r\n txtFixStatisticsShort: string;\r\n txtTranslateMimeSourcesShort: string;\r\n txtTranslateNumbersShort: string;\r\n txtDetectMimeTypeShort: string;\r\n txtRebuildThumbsShort: string;\r\n txtRenameFeatureSystemShort: string;\r\n txtRenameFeaturesShort: string;\r\n txtSplitFeatureValuesFromUnitShort: string;\r\n txtRemoveDuplicateImagesShort: string;\r\n txtDownloadMimeSourcesShort: string;\r\n txtDeleteEmptyFeaturesShort: string;\r\n txtEanSupplierAltPidSwitchShort: string;\r\n txtAssignMasterImagesShort: string;\r\n txtRemovePathFromMimeSourcelong: string;\r\n\r\n txtRemoveMimeWithoutImagePathlong: string;\r\n txtReorderMimelong: string;\r\n txtRemoveAllFeatureslong: string;\r\n txtRemoveAllMimeslong: string;\r\n txtRemoveAllOrderDetailslong: string;\r\n txtRemoveAllPriceslong: string;\r\n txtRemoveAllUDXlong: string;\r\n txtRemoveAllLogisticDetailslong: string;\r\n txtRemoveEmptyCategorieslong: string;\r\n txtResizeImageslong: string;\r\n txtSupplierPIDSwitchlong: string;\r\n txtCheckCataloglong: string;\r\n txtDeleteByListlong: string;\r\n txtSearchByListlong: string;\r\n txtUpdateFromCataloglong: string;\r\n txtCompareCatalogLong: string;\r\n txtDeleteCategoryImageslong: string;\r\n txtDeleteUnUsedMimeslong: string;\r\n txtAssignCategoryImageslong: string;\r\n txtDeleteAllMedialong: string;\r\n txtCacheThumbnailslong: string;\r\n txtRemoveMasterlong: string;\r\n txtFixStatisticslong: string;\r\n txtTranslateMimeSourceslong: string;\r\n txtTranslateNumberslong: string;\r\n txtDetectMimeTypelong: string;\r\n txtRebuildThumbslong: string;\r\n txtRenameFeatureSystemLong: string;\r\n txtRenameFeaturesLong: string;\r\n txtSplitFeatureValuesFromUnitLong: string;\r\n txtRemoveDuplicateImageslong: string;\r\n txtDownloadMimeSourceslong: string;\r\n txtDeleteEmptyFeatureslong: string;\r\n txtEanSupplierAltPidSwitchlong: string;\r\n txtAssignMasterImageslong: string;\r\n txtReportMissingMedialong: string;\r\n txtReportMissingMediaShort: string;\r\n txtCopyMediaFromOtherCatalogLong: string;\r\n txtCopyMediaFromOtherCatalogShort: string;\r\n txtDeleteFeatureByNameShort: string;\r\n txtDeleteFeatureByNameLong: string;\r\n txtTruncateMimeDescriptionsShort: string;\r\n txtTruncateMimeDescriptionsLong: string;\r\n txtInternationalPidTypEanToGtinShort: string;\r\n txtInternationalPidTypEanToGtinLong: string;\r\n txtSetMimePurposeShort: string;\r\n txtSetMimePurposeLong: string;\r\n txtSetIsBulkyShort: string;\r\n txtSetIsBulkyLong: string;\r\n txtCreateTechnicalDetailsShort: string;\r\n txtCreateTechnicalDetailsLong: string;\r\n txtRemoveRootCategoryShort: string;\r\n txtRemoveRootCategoryLong: string;\r\n txtSetManufacturerAidFromSupplierPidShort: string;\r\n txtSetManufacturerAidFromSupplierPidLong: string;\r\n txtRemoveMimesWithoutMimeSourceShort: string;\r\n txtRemoveMimesWithoutMimeSourceLong: string;\r\n txtReorderCategoriesShort: string;\r\n txtReorderCategoriesLong: string;\r\n txtMasterToCategoryShort: string;\r\n txtMasterToCategoryLong: string;\r\n\r\n txtSpreadCatalogShort: string;\r\n txtSpreadCatalogLong: string;\r\n txtSetMavisTransferDateShort: string;\r\n txtSetMavisTransferDateLong: string;\r\n\r\n txtSetBmeCatDefaultsShort: string;\r\n txtSetBmeCatDefaultsLong: string;\r\n txtHarmonizeFeatureSystemsShort: string;\r\n txtHarmonizeFeatureSystemsLong: string;\r\n\r\n txtFixClassificationShort: string;\r\n txtFixClassificationLong: string;\r\n\r\n txtCreateUniqueGroupIdLong: string;\r\n txtCreateUniqueGroupIdShort: string;\r\n\r\n txtDeleteDuplicateFeaturesLong: string;\r\n txtDeleteDuplicateFeaturesShort: string;\r\n\r\n txtDeleteDuplicateMimesLong: string;\r\n txtDeleteDuplicateMimesShort: string;\r\n\r\n txtExportReportProductDatasheetLong: string;\r\n txtExportReportProductDatasheetShort: string;\r\n\r\n txtRemoveEmptyUDXLong: string;\r\n txtRemoveEmptyUDXShort: string;\r\n\r\n txtRemoveDeadReferencesLong: string;\r\n txtRemoveDeadReferencesShort: string;\r\n\r\n txtRemoveUDXOnProductsLong: string;\r\n txtRemoveUDXOnProductsShort: string;\r\n\r\n txtCreateLinkedFieldsOnProductsShort: string;\r\n txtCreateLinkedFieldsOnProductsLong: string;\r\n\r\n txtCreateVariantsFeatureSystemShort: string;\r\n txtCreateVariantsFeatureSystemLong: string;\r\n\r\n txtDeleteMediaByPurposeShort: string;\r\n txtDeleteMediaByPurposeLong: string;\r\n\r\n txtConsolidateDubSupplierPidsLong: string;\r\n txtConsolidateDubSupplierPidsShort: string;\r\n\r\n txtHarmonizeFeaturesByNameLong: string;\r\n txtHarmonizeFeaturesByNameShort: string;\r\n\r\n txtFlattenCategoryTreeShort: string;\r\n txtFlattenCategoryTreeLong: string;\r\n\r\n\r\n txtSetWawiLinesShort: string;\r\n txtSetWawiLinesLong: string;\r\n\r\n txtSetWawiSupplierPidsShort: string;\r\n txtSetWawiSupplierPidsLong: string;\r\n\r\n txtRemoveSpecialCharactersShort: string;\r\n txtRemoveSpecialCharactersLong: string;\r\n\r\n txtVariantResolveShort: string;\r\n txtVariantResolveLong: string;\r\n\r\n txtCreateEnventaMimeShort: string;\r\n txtCreateEnventaMimeLong: string;\r\n\r\n txtGenerateKITextsShort: string;\r\n txtGenerateKITextsLong: string;\r\n\r\n txtCategoriesToMastersTextsShort: string;\r\n txtCategoriesToMastersTextsLong: string;\r\n\r\n txtMarkAsChangedTextsShort: string;\r\n txtMarkAsChangedTextsLong: string;\r\n\r\n txtGenerateSortNumberTextLong: string;\r\n txtGenerateSortNumberTextShort: string;\r\n\r\n txtGenerateMasterFeaturesFromVariantsTextsShortTextShort: string;\r\n txtGenerateMasterFeaturesFromVariantsTextsShortTextLong: string;\r\n\r\n txtChangeMimePurposesTextShort: string;\r\n txtChangeMimePurposesTextLong: string;\r\n\r\n get macroAccordionSelectedItem(): any {\r\n return this._macroAccordionSelectedItem;\r\n }\r\n\r\n set macroAccordionSelectedItem(macroAccordionSelectedItem: any) {\r\n this._macroAccordionSelectedItem = macroAccordionSelectedItem;\r\n }\r\n\r\n\r\n translateTexts() {\r\n this.txtDeleteWarning = this.translate.instant(\"ACHTUNG: Diese Makro löscht Daten unwiderruflich. Bitte erstellen Sie ggf. einen Wiederherstellungspunkt.\");\r\n\r\n this.txtVarianten = this.translate.instant(\"Varianten\");\r\n\r\n this.txtCreateEnventaMimeShort = this.translate.instant(\"CreateEnventaMimeShort\");\r\n\r\n\r\n this.txtCreateEnventaMimeLong = this.translate.instant(\"CreateEnventaMimeLong\");\r\n\r\n this.txtVariantResolveShort = this.translate.instant(\"variantsResolveShort\");\r\n\r\n\r\n this.txtVariantResolveLong = this.translate.instant(\"variantsResolveLong\");\r\n\r\n // 74 HarmonizeFeaturesByName\r\n this.txtHarmonizeFeaturesByNameShort = this.translate.instant(\"HarmonizeFeaturesByNameShort\");\r\n this.txtHarmonizeFeaturesByNameLong = this.translate.instant(\"HarmonizeFeaturesByNameLong\");\r\n\r\n\r\n // 77 SetWawiLines\r\n\r\n this.txtSetWawiLinesShort = this.translate.instant(\"SetWawiLinesShort\");\r\n this.txtSetWawiLinesLong = this.translate.instant(\"SetWawiLinesLong\");\r\n\r\n\r\n // 78 SetWawiSupplierPids\r\n\r\n this.txtSetWawiSupplierPidsShort = this.translate.instant(\"SetWawiSupplierPidsShort\");\r\n this.txtSetWawiSupplierPidsLong = this.translate.instant(\"SetWawiSupplierPidsLong\");\r\n\r\n //79 RemoveSpecialCharacters\r\n\r\n this.txtRemoveSpecialCharactersShort = this.translate.instant(\"RemoveSpecialCharactersShort\");\r\n this.txtRemoveSpecialCharactersLong = this.translate.instant(\"RemoveSpecialCharacters\");\r\n\r\n // 73 ConsolidateDubSupplierPids\r\n this.txtConsolidateDubSupplierPidsShort = this.translate.instant(\"ConsolidateDubSupplierPidsShort\");\r\n this.txtConsolidateDubSupplierPidsLong = this.translate.instant(\"ConsolidateDubSupplierPidsLong\");\r\n\r\n // 63 DeleteDuplicateFeatures\r\n this.txtDeleteDuplicateFeaturesShort = this.translate.instant(\"DeleteDuplicateFeaturesShort\");\r\n this.txtDeleteDuplicateFeaturesLong = this.translate.instant(\"DeleteDuplicateFeaturesLong\");\r\n\r\n // 71 CreateVariantsFeatureSystem\r\n this.txtCreateVariantsFeatureSystemShort = this.translate.instant(\"CreateVariantsFeatureSystemShort\");\r\n this.txtCreateVariantsFeatureSystemLong = this.translate.instant(\"CreateVariantsFeatureSystemLong\");\r\n\r\n // 64 DeleteDuplicateMimes\r\n this.txtDeleteDuplicateMimesShort = this.translate.instant(\"DeleteDuplicateMimesShort\");\r\n this.txtDeleteDuplicateMimesLong = this.translate.instant(\"DeleteDuplicateMimesLong\");\r\n\r\n\r\n // 58\r\n this.txtHarmonizeFeatureSystemsShort = this.translate.instant(\"SetHarmonizeFeatureSystemsShort\");\r\n this.txtHarmonizeFeatureSystemsLong = this.translate.instant(\"SetHarmonizeFeatureSystemsLong\");\r\n\r\n // CreateUniqueGroupId 61\r\n this.txtCreateUniqueGroupIdShort = this.translate.instant(\"CreateUniqueGroupIdShort\");\r\n this.txtCreateUniqueGroupIdLong = this.translate.instant(\"CreateUniqueGroupIdLong\");\r\n\r\n // 60\r\n this.txtFixClassificationShort = this.translate.instant(\"FixClassificationShort\");\r\n this.txtFixClassificationLong = this.translate.instant(\"FixClassificationLong\");\r\n\r\n // 56\r\n this.txtSetMavisTransferDateShort = this.translate.instant(\"SetMavisTransferDateShort\");\r\n this.txtSetMavisTransferDateLong = this.translate.instant(\"SetMavisTransferDateLong\");\r\n // 57\r\n this.txtSetBmeCatDefaultsShort = this.translate.instant(\"SetBmeCatDefaultsShort\");\r\n this.txtSetBmeCatDefaultsLong = this.translate.instant(\"SetBmeCatDefaultsLong\");\r\n\r\n\r\n this.txtRemoveRootCategoryShort = this.translate.instant(\"RemoveRootCategoryShort\");\r\n this.txtRemoveRootCategoryLong = this.translate.instant(\"RemoveRootCategoryLong\");\r\n\r\n this.txtSpreadCatalogShort = this.translate.instant(\"SpreadCatalogShort\");\r\n this.txtSpreadCatalogLong = this.translate.instant(\"SpreadCatalogLong\");\r\n\r\n this.txtCreateTechnicalDetailsShort = this.translate.instant(\"CreateTechnicalDetailsShort\");\r\n this.txtCreateTechnicalDetailsLong = this.translate.instant(\"CreateTechnicalDetailsLong\");\r\n\r\n this.txtRemoveMimesWithoutMimeSourceShort = this.translate.instant(\"RemoveMimesWithoutMimeSourceShort\");\r\n this.txtRemoveMimesWithoutMimeSourceLong = this.translate.instant(\"RemoveMimesWithoutMimeSourceLong\");\r\n\r\n\r\n this.txtKatalog = this.translate.instant(\"Katalog\");\r\n this.txtTroubleShooting = this.translate.instant(\"Troubleshooting\");\r\n\r\n this.txtMakroGestarted = this.translate.instant(\"Das Makro wurde gestartet\");\r\n this.txtKategorie = this.translate.instant(\"Kategorie\");\r\n this.txtProdukte = this.translate.instant(\"Produkte\");\r\n this.txtMedien = this.translate.instant(\"Medien\");\r\n this.txtFeatures = this.translate.instant(\"Features\");\r\n this.txtShop = this.translate.instant(\"Shop\");\r\n this.txtUebersetzung = this.translate.instant(\"Übersetzung\");\r\n this.txtRemovePathFromMimeSourcelong = this.translate.instant(\"RemovePathFromMimeSourcelong\");\r\n\r\n this.txtRemoveMimeWithoutImagePathlong = this.translate.instant(\"RemoveMimeWithoutImagePathlong\");\r\n this.txtReorderMimelong = this.translate.instant(\"ReorderMimelong\");\r\n this.txtRemoveAllFeatureslong = this.translate.instant(\"RemoveAllFeatureslong\");\r\n this.txtRemoveAllMimeslong = this.translate.instant(\"RemoveAllMimeslong\");\r\n this.txtRemoveAllOrderDetailslong = this.translate.instant(\"RemoveAllOrderDetailslong\");\r\n this.txtRemoveAllPriceslong = this.translate.instant(\"RemoveAllPriceslong\");\r\n this.txtRemoveAllUDXlong = this.translate.instant(\"RemoveAllUDXlong\");\r\n this.txtRemoveAllLogisticDetailslong = this.translate.instant(\"RemoveAllLogisticDetailslong\");\r\n this.txtRemoveEmptyCategorieslong = this.translate.instant(\"RemoveEmptyCategorieslong\");\r\n this.txtResizeImageslong = this.translate.instant(\"ResizeImageslong\");\r\n this.txtSupplierPIDSwitchlong = this.translate.instant(\"SupplierPIDSwitchlong\");\r\n this.txtCheckCataloglong = this.translate.instant(\"CheckCataloglong\");\r\n this.txtDeleteByListlong = this.translate.instant(\"DeleteByListlong\");\r\n this.txtSearchByListlong = this.translate.instant(\"SearchByListlong\");\r\n this.txtUpdateFromCataloglong = this.translate.instant(\"UpdateFromCataloglong\");\r\n this.txtUpdateToCatalogLong = this.translate.instant(\"UpdateToCatalogLong\");\r\n\r\n\r\n this.txtCompareCatalogLong = this.translate.instant(\"CompareCatalogLong\");\r\n this.txtDeleteCategoryImageslong = this.translate.instant(\"DeleteCategoryImageslong\");\r\n this.txtDeleteUnUsedMimeslong = this.translate.instant(\"DeleteUnUsedMimeslong\");\r\n this.txtAssignCategoryImageslong = this.translate.instant(\"AssignCategoryImageslong\");\r\n this.txtDeleteAllMedialong = this.translate.instant(\"DeleteAllMedialong\");\r\n this.txtCacheThumbnailslong = this.translate.instant(\"CacheThumbnailslong\");\r\n this.txtRemoveMasterlong = this.translate.instant(\"RemoveMasterlong\");\r\n this.txtFixStatisticslong = this.translate.instant(\"FixStatisticslong\");\r\n this.txtTranslateMimeSourceslong = this.translate.instant(\"TranslateMimeSourceslong\");\r\n this.txtTranslateNumberslong = this.translate.instant(\"TranslateNumberslong\");\r\n this.txtDetectMimeTypelong = this.translate.instant(\"DetectMimeTypelong\");\r\n this.txtRebuildThumbslong = this.translate.instant(\"RebuildThumbslong\");\r\n this.txtRenameFeatureSystemLong = this.translate.instant(\"RenameFeatureSystemLong\");\r\n this.txtRenameFeaturesLong = this.translate.instant(\"RenameFeaturesLong\");\r\n this.txtSplitFeatureValuesFromUnitLong = this.translate.instant(\"SplitFeatureValuesFromUnitLong\");\r\n this.txtRemoveDuplicateImageslong = this.translate.instant(\"RemoveDuplicateImageslong\");\r\n this.txtDownloadMimeSourceslong = this.translate.instant(\"DownloadMimeSourceslong\");\r\n this.txtDeleteEmptyFeatureslong = this.translate.instant(\"DeleteEmptyFeatureslong\");\r\n this.txtEanSupplierAltPidSwitchlong = this.translate.instant(\"EanSupplierAltPidSwitchlong\");\r\n this.txtAssignMasterImageslong = this.translate.instant(\"AssignMasterImageslong\");\r\n this.txtRemovePathFromMimeSourceShort = this.translate.instant(\"RemovePathFromMimeSourceShort\");\r\n\r\n this.txtRemoveMimeWithoutImagePathShort = this.translate.instant(\"RemoveMimeWithoutImagePathShort\");\r\n this.txtReorderMimeShort = this.translate.instant(\"ReorderMimeShort\");\r\n this.txtRemoveAllFeaturesShort = this.translate.instant(\"RemoveAllFeaturesShort\");\r\n this.txtRemoveAllMimesShort = this.translate.instant(\"RemoveAllMimesShort\");\r\n this.txtRemoveAllOrderDetailsShort = this.translate.instant(\"RemoveAllOrderDetailsShort\");\r\n this.txtRemoveAllPricesShort = this.translate.instant(\"RemoveAllPricesShort\");\r\n this.txtRemoveAllUDXShort = this.translate.instant(\"RemoveAllUDXShort\");\r\n this.txtRemoveAllLogisticDetailsShort = this.translate.instant(\"RemoveAllLogisticDetailsShort\");\r\n this.txtRemoveEmptyCategoriesShort = this.translate.instant(\"RemoveEmptyCategoriesShort\");\r\n this.txtResizeImagesShort = this.translate.instant(\"ResizeImagesShort\");\r\n this.txtSupplierPIDSwitchShort = this.translate.instant(\"SupplierPIDSwitchShort\");\r\n this.txtCheckCatalogShort = this.translate.instant(\"CheckCatalogShort\");\r\n this.txtDeleteByListShort = this.translate.instant(\"DeleteByListShort\");\r\n this.txtSearchByListShort = this.translate.instant(\"SearchByListShort\");\r\n this.txtUpdateFromCatalogShort = this.translate.instant(\"UpdateFromCatalogShort\");\r\n this.txtUpdateToCatalogShort = this.translate.instant(\"UpdateToCatalogShort\");\r\n this.txtCompareCatalogShort = this.translate.instant(\"CompareCatalogShort\");\r\n this.txtDeleteCategoryImagesShort = this.translate.instant(\"DeleteCategoryImagesShort\");\r\n this.txtDeleteUnUsedMimesShort = this.translate.instant(\"DeleteUnUsedMimesShort\");\r\n this.txtAssignCategoryImagesShort = this.translate.instant(\"AssignCategoryImagesShort\");\r\n this.txtDeleteAllMediaShort = this.translate.instant(\"DeleteAllMediaShort\");\r\n this.txtCacheThumbnailsShort = this.translate.instant(\"CacheThumbnailsShort\");\r\n this.txtRemoveMasterShort = this.translate.instant(\"RemoveMasterShort\");\r\n this.txtFixStatisticsShort = this.translate.instant(\"FixStatisticsShort\");\r\n this.txtTranslateMimeSourcesShort = this.translate.instant(\"TranslateMimeSourcesShort\");\r\n this.txtTranslateNumbersShort = this.translate.instant(\"TranslateNumbersShort\");\r\n this.txtDetectMimeTypeShort = this.translate.instant(\"DetectMimeTypeShort\");\r\n this.txtRebuildThumbsShort = this.translate.instant(\"RebuildThumbsShort\");\r\n this.txtRenameFeatureSystemShort = this.translate.instant(\"RenameFeatureSystemShort\");\r\n this.txtRenameFeaturesShort = this.translate.instant(\"RenameFeaturesShort\");\r\n this.txtSplitFeatureValuesFromUnitShort = this.translate.instant(\"SplitFeatureValuesFromUnitShort\");\r\n this.txtRemoveDuplicateImagesShort = this.translate.instant(\"RemoveDuplicateImagesShort\");\r\n this.txtDownloadMimeSourcesShort = this.translate.instant(\"DownloadMimeSourcesShort\");\r\n this.txtDeleteEmptyFeaturesShort = this.translate.instant(\"DeleteEmptyFeaturesShort\");\r\n this.txtEanSupplierAltPidSwitchShort = this.translate.instant(\"EanSupplierAltPidSwitchShort\");\r\n this.txtAssignMasterImagesShort = this.translate.instant(\"AssignMasterImagesShort\");\r\n this.txtReportMissingMedialong = this.translate.instant(\"ReportMissingMedialong\");\r\n this.txtReportMissingMediaShort = this.translate.instant(\"ReportMissingMediaShort\");\r\n // 39\r\n this.txtCopyMediaFromOtherCatalogShort = this.translate.instant(\"CopyMediaFromOtherCatalogShort\");\r\n this.txtCopyMediaFromOtherCatalogLong = this.translate.instant(\"CopyMediaFromOtherCatalogLong\");\r\n\r\n //40\r\n this.txtDeleteFeatureByNameShort = this.translate.instant(\"DeleteFeatureByNameShort\");\r\n this.txtDeleteFeatureByNameLong = this.translate.instant(\"DeleteFeatureByNameLong\");\r\n //41\r\n this.txtAddEcommerceFeaturesShort = this.translate.instant(\"AddEcommerceFeaturesShort\");\r\n\r\n this.txtAddEcommerceFeaturesLong = this.translate.instant(\"AddEcommerceFeaturesLong\");\r\n //42\r\n this.txtTruncateMimeDescriptionsShort = this.translate.instant(\"TruncateMimeDescriptionsShort\");\r\n\r\n this.txtTruncateMimeDescriptionsLong = this.translate.instant(\"TruncateMimeDescriptionsLong\");\r\n\r\n // 43\r\n this.txtInternationalPidTypEanToGtinLong = this.translate.instant(\"InternationalPidTypEanToGtinLong\");\r\n this.txtInternationalPidTypEanToGtinShort = this.translate.instant(\"InternationalPidTypEanToGtinShort\");\r\n // 44\r\n this.txtSetMimePurposeShort = this.translate.instant(\"SetMimePurposeShort\");\r\n this.txtSetMimePurposeLong = this.translate.instant(\"SetMimePurposeLong\");\r\n // 46\r\n\r\n this.txtSetIsBulkyShort = this.translate.instant(\"SetIsBulkyShort\");\r\n this.txtSetIsBulkyLong = this.translate.instant(\"SetIsBulkyLong\");\r\n\r\n // 49\r\n\r\n this.txtSetManufacturerAidFromSupplierPidShort = this.translate.instant(\"SetManufacturerAidFromSupplierPidShort\");\r\n this.txtSetManufacturerAidFromSupplierPidLong = this.translate.instant(\"SetManufacturerAidFromSupplierPidLong\");\r\n\r\n // 52\r\n\r\n this.txtReorderCategoriesShort = this.translate.instant(\"ReorderCategoriesShort\");\r\n this.txtReorderCategoriesLong = this.translate.instant(\"ReorderCategoriesLong\");\r\n\r\n // 53\r\n\r\n this.txtMasterToCategoryShort = this.translate.instant(\"MasterToCategoryShort\");\r\n this.txtMasterToCategoryLong = this.translate.instant(\"MasterToCategoryLong\");\r\n\r\n\r\n\r\n // 62\r\n this.translate.get(\"ReportProductDatasheetShort\")\r\n .subscribe((text: string) => {\r\n this.txtExportReportProductDatasheetShort = text;\r\n });\r\n this.translate.get(\"ReportProductDatasheetLong\")\r\n .subscribe((text: string) => {\r\n this.txtExportReportProductDatasheetLong = text;\r\n });\r\n\r\n\r\n\r\n // 65, // Category\r\n // 66, // Product\r\n this.translate.get(\"RemoveEmptyUDXShort\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveEmptyUDXShort = text;\r\n });\r\n this.translate.get(\"RemoveEmptyUDXLong\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveEmptyUDXLong = text;\r\n });\r\n\r\n\r\n\r\n // 67\r\n this.translate.get(\"RemoveDeadReferencesShort\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveDeadReferencesShort = text;\r\n });\r\n this.translate.get(\"RemoveDeadReferencesLong\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveDeadReferencesLong = text;\r\n });\r\n\r\n\r\n\r\n // 68\r\n this.translate.get(\"RemoveUDXOnProductsShort\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveUDXOnProductsShort = text;\r\n });\r\n this.translate.get(\"RemoveUDXOnProductsLong\")\r\n .subscribe((text: string) => {\r\n this.txtRemoveUDXOnProductsLong = text;\r\n });\r\n\r\n\r\n\r\n // 69\r\n this.translate.get(\"CreateLinkedFieldsForCatalogShort\")\r\n .subscribe((text: string) => {\r\n this.txtCreateLinkedFieldsOnProductsShort = text;\r\n });\r\n this.translate.get(\"CreateLinkedFieldsForCatalogLong\")\r\n .subscribe((text: string) => {\r\n this.txtCreateLinkedFieldsOnProductsLong = text;\r\n });\r\n\r\n // 71\r\n this.translate.get(\"DeleteMediaByPurposeShort\")\r\n .subscribe((text: string) => {\r\n this.txtDeleteMediaByPurposeShort = text;\r\n });\r\n this.translate.get(\"DeleteMediaByPurposeLong\")\r\n .subscribe((text: string) => {\r\n this.txtDeleteMediaByPurposeLong = text;\r\n });\r\n\r\n // 76\r\n this.translate.get(\"FlattenCategoryTreeShort\")\r\n .subscribe((text: string) => {\r\n this.txtFlattenCategoryTreeShort = text;\r\n });\r\n this.translate.get(\"FlattenCategoryTreeLong\")\r\n .subscribe((text: string) => {\r\n this.txtFlattenCategoryTreeLong = text;\r\n });\r\n\r\n\r\n this.translate.get(\"Description Wizard\")\r\n .subscribe((text: string) => {\r\n this.txtKIText = text;\r\n });\r\n this.translate.get(\"GenerateKITextsShort\")\r\n .subscribe((text: string) => {\r\n this.txtGenerateKITextsShort = text;\r\n });\r\n this.translate.get(\"GenerateKITextsLong\")\r\n .subscribe((text: string) => {\r\n this.txtGenerateKITextsLong = text;\r\n });\r\n\r\n // 86\r\n this.translate.get(\"CategoriesToMastersTextsLong\")\r\n .subscribe((text: string) => {\r\n this.txtCategoriesToMastersTextsLong = text;\r\n });\r\n this.translate.get(\"CategoriesToMastersTextsShort\")\r\n .subscribe((text: string) => {\r\n this.txtCategoriesToMastersTextsShort = text;\r\n });\r\n\r\n // 87\r\n this.txtMarkAsChangedTextsShort = this.translate.instant(\"MarkAsChangedShort\");\r\n this.txtMarkAsChangedTextsLong = this.translate.instant(\"MarkAsChangedLong\");\r\n\r\n // 88\r\n this.txtGenerateSortNumberTextShort = this.translate.instant(\"GenerateSortNumberTextsShort\");\r\n this.txtGenerateSortNumberTextLong = this.translate.instant(\"GenerateSortNumberTextsLong\");\r\n\r\n // 89\r\n this.txtGenerateMasterFeaturesFromVariantsTextsShortTextShort = this.translate.instant(\"GenerateMasterFeaturesFromVariantsTextsShort\");\r\n this.txtGenerateMasterFeaturesFromVariantsTextsShortTextLong = this.translate.instant(\"GenerateMasterFeaturesFromVariantsTextsLong\");\r\n\r\n // 90: // changeMimePurposes\r\n this.txtChangeMimePurposesTextShort = this.translate.instant(\"ChangeMimePurposesTextShort\");\r\n this.txtChangeMimePurposesTextLong = this.translate.instant(\"ChangeMimePurposesTextLong\");\r\n }\r\n\r\n\r\n getMacroName(id) {\r\n return this.macros.filter(macro => macro.id == id).shift().text;\r\n }\r\n\r\n getMacroIcon(id) {\r\n return this.macros.filter(macro => macro.id == id).shift().icon;\r\n }\r\n\r\n getMacroText(id) {\r\n return this.macros.filter(macro => macro.id == id).shift().hint;\r\n }\r\n\r\n\r\n //TODO kein richtiger setter\r\n setMacros() {\r\n //Macros\r\n this.macros = [\r\n {\r\n id: USERACTIONVIEWDETAILS[0].id,\r\n text: USERACTIONVIEWDETAILS[0].text,\r\n icon: USERACTIONVIEWDETAILS[0].getCssClassForIcon(),\r\n hint: USERACTIONVIEWDETAILS[0].hint\r\n },\r\n {\r\n id: 30,\r\n text: this.txtRemoveMimeWithoutImagePathShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveMimeWithoutImagePathlong\r\n },\r\n {\r\n id: 3,\r\n text: this.txtReorderMimeShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtReorderMimelong\r\n },\r\n {\r\n id: 4,\r\n text: this.txtRemoveAllFeaturesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllFeatureslong\r\n },\r\n {\r\n id: 5,\r\n text: this.txtRemoveAllMimesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllMimeslong\r\n },\r\n {\r\n id: 6,\r\n text: this.txtRemoveAllOrderDetailsShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllOrderDetailslong\r\n },\r\n {\r\n id: 7,\r\n text: this.txtRemoveAllPricesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllPriceslong\r\n },\r\n {\r\n id: 8,\r\n text: this.txtRemoveAllUDXShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllUDXlong\r\n },\r\n {\r\n id: 9,\r\n text: this.txtRemoveAllLogisticDetailsShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveAllLogisticDetailslong\r\n },\r\n {\r\n id: 10,\r\n text: this.txtRemoveEmptyCategoriesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveEmptyCategorieslong\r\n },\r\n {\r\n id: 11,\r\n text: this.txtResizeImagesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtResizeImageslong\r\n },\r\n {\r\n id: 13,\r\n text: this.txtSupplierPIDSwitchShort,\r\n icon: \"glyphicon glyphicon-random\",\r\n hint: this.txtSupplierPIDSwitchlong\r\n },\r\n {\r\n id: 14,\r\n text: this.txtCheckCatalogShort,\r\n icon: \"\tglyphicon glyphicon-check\",\r\n hint: this.txtCheckCataloglong\r\n },\r\n {\r\n id: 15,\r\n text: this.txtDeleteByListShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtDeleteByListlong\r\n },\r\n {\r\n id: 16,\r\n text: this.txtSearchByListShort,\r\n icon: \"glyphicon glyphicon-search\",\r\n hint: this.txtSearchByListlong\r\n },\r\n {\r\n id: 17,\r\n text: this.txtUpdateFromCatalogShort,\r\n icon: \"glyphicon glyphicon-refresh\",\r\n hint: this.txtUpdateFromCataloglong\r\n }, {\r\n id: 51,\r\n text: this.txtUpdateToCatalogShort,\r\n icon: \"glyphicon glyphicon-refresh\",\r\n hint: this.txtUpdateToCatalogLong\r\n },\r\n {\r\n id: 18,\r\n text: this.txtCompareCatalogShort,\r\n icon: \"glyphicon glyphicon-eye-close\",\r\n hint: this.txtCompareCatalogLong\r\n },\r\n {\r\n id: 19,\r\n text: this.txtDeleteCategoryImagesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteCategoryImageslong\r\n },\r\n {\r\n id: 20,\r\n text: this.txtDeleteUnUsedMimesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteUnUsedMimeslong\r\n },\r\n {\r\n id: 21,\r\n text: this.txtAssignCategoryImagesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtAssignCategoryImageslong\r\n },\r\n {\r\n id: 22,\r\n text: this.txtDeleteAllMediaShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtDeleteAllMedialong\r\n },\r\n {\r\n id: 23,\r\n text: this.txtCacheThumbnailsShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtCacheThumbnailslong\r\n }, {\r\n id: 24,\r\n text: this.txtRemoveMasterShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRemoveMasterlong\r\n },\r\n {\r\n id: 25,\r\n text: this.txtFixStatisticsShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtFixStatisticslong\r\n },\r\n {\r\n id: 26,\r\n text: this.txtTranslateMimeSourcesShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtTranslateMimeSourceslong\r\n },\r\n {\r\n id: 27,\r\n text: this.txtTranslateNumbersShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtTranslateNumberslong\r\n },\r\n {\r\n id: 28,\r\n text: this.txtDetectMimeTypeShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtDetectMimeTypelong\r\n },\r\n {\r\n id: 29,\r\n text: this.txtRebuildThumbsShort,\r\n icon: \"glyphicon glyphicon-trash\",\r\n hint: this.txtRebuildThumbslong\r\n },\r\n {\r\n id: 31,\r\n text: this.txtRenameFeatureSystemShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRenameFeatureSystemLong\r\n },\r\n {\r\n id: 32,\r\n text: this.txtRemoveDuplicateImagesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveDuplicateImageslong\r\n },\r\n {\r\n id: 33,\r\n text: this.txtDownloadMimeSourcesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDownloadMimeSourceslong\r\n }, {\r\n id: 34,\r\n text: this.txtDeleteEmptyFeaturesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteEmptyFeatureslong\r\n }, {\r\n id: 35,\r\n text: this.txtEanSupplierAltPidSwitchShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtEanSupplierAltPidSwitchlong\r\n },\r\n {\r\n id: 36,\r\n text: this.txtAssignMasterImagesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtAssignMasterImageslong\r\n },\r\n {\r\n id: 37,\r\n text: this.txtReportMissingMediaShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtReportMissingMedialong\r\n },\r\n {\r\n id: 38,\r\n text: this.translate.instant(\"DeleteFeatureSystemsShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"DeleteFeatureSystemsLong\")\r\n },\r\n {\r\n id: 39,\r\n text: this.txtCopyMediaFromOtherCatalogShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCopyMediaFromOtherCatalogLong\r\n },\r\n {\r\n id: 40,\r\n text: this.txtDeleteFeatureByNameShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteFeatureByNameLong\r\n },\r\n ];\r\n\r\n this.macros.push({\r\n id: 41,\r\n text: this.txtAddEcommerceFeaturesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtAddEcommerceFeaturesLong\r\n });\r\n this.macros.push({\r\n id: 42,\r\n text: this.txtTruncateMimeDescriptionsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtTruncateMimeDescriptionsLong\r\n });\r\n this.macros.push({\r\n id: 43,\r\n text: this.txtInternationalPidTypEanToGtinShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtInternationalPidTypEanToGtinLong\r\n });\r\n this.macros.push({\r\n id: 44,\r\n text: this.txtSetMimePurposeShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetMimePurposeLong\r\n });\r\n this.macros.push({\r\n id: 46,\r\n text: this.txtSetIsBulkyShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetIsBulkyLong\r\n });\r\n this.macros.push({\r\n id: 47,\r\n text: this.txtCreateTechnicalDetailsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCreateTechnicalDetailsLong\r\n });\r\n\r\n this.macros.push({\r\n id: 48,\r\n text: this.txtRemoveRootCategoryShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveRootCategoryLong\r\n });\r\n\r\n this.macros.push({\r\n id: 49,\r\n text: this.txtSetManufacturerAidFromSupplierPidShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetManufacturerAidFromSupplierPidLong\r\n });\r\n this.macros.push({\r\n id: 50,\r\n text: this.txtRemoveMimesWithoutMimeSourceShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveMimesWithoutMimeSourceLong\r\n });\r\n this.macros.push({\r\n id: 52,\r\n text: this.txtReorderCategoriesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtReorderCategoriesLong\r\n });\r\n this.macros.push({\r\n id: 53,\r\n text: this.txtMasterToCategoryShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtMasterToCategoryLong\r\n });\r\n this.macros.push({\r\n id: 55,\r\n text: this.txtSpreadCatalogShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSpreadCatalogLong\r\n });\r\n this.macros.push({\r\n id: 56,\r\n text: this.txtSetMavisTransferDateShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetMavisTransferDateLong\r\n });\r\n this.macros.push({\r\n id: 57,\r\n text: this.txtSetBmeCatDefaultsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetBmeCatDefaultsLong\r\n });\r\n this.macros.push({\r\n id: 58,\r\n text: this.txtHarmonizeFeatureSystemsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtHarmonizeFeatureSystemsLong\r\n });\r\n this.macros.push({\r\n id: 60,\r\n text: this.txtFixClassificationShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtFixClassificationLong\r\n });\r\n this.macros.push({\r\n id: 61,\r\n text: this.txtCreateUniqueGroupIdShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCreateUniqueGroupIdLong\r\n });\r\n this.macros.push({\r\n id: 62,\r\n text: this.txtExportReportProductDatasheetShort,\r\n icon: \"glyphicon glyphicon-print\",\r\n hint: this.txtExportReportProductDatasheetLong\r\n });\r\n\r\n this.macros.push({\r\n id: 63,\r\n text: this.txtDeleteDuplicateFeaturesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteDuplicateFeaturesLong\r\n });\r\n this.macros.push({\r\n id: 64,\r\n text: this.txtDeleteDuplicateMimesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteDuplicateMimesLong\r\n });\r\n this.macros.push({\r\n id: 65, // Category\r\n text: this.txtRemoveEmptyUDXShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveEmptyUDXLong\r\n });\r\n this.macros.push({\r\n id: 66, // Product\r\n text: this.txtRemoveEmptyUDXShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveEmptyUDXLong\r\n });\r\n this.macros.push({\r\n id: 67,\r\n text: this.txtRemoveDeadReferencesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveDeadReferencesLong\r\n });\r\n this.macros.push({\r\n id: 68,\r\n text: this.txtRemoveUDXOnProductsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveUDXOnProductsLong\r\n });\r\n this.macros.push({\r\n id: 69,\r\n text: this.txtCreateLinkedFieldsOnProductsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCreateLinkedFieldsOnProductsLong\r\n });\r\n\r\n this.macros.push({\r\n id: 72,\r\n text: this.txtCreateVariantsFeatureSystemShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCreateVariantsFeatureSystemLong\r\n });\r\n\r\n this.macros.push({\r\n id: 71,\r\n text: this.txtDeleteMediaByPurposeShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtDeleteMediaByPurposeLong\r\n });\r\n this.macros.push({\r\n id: 73,\r\n text: this.txtConsolidateDubSupplierPidsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtConsolidateDubSupplierPidsLong\r\n });\r\n this.macros.push({\r\n id: 74,\r\n text: this.txtHarmonizeFeaturesByNameShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtHarmonizeFeaturesByNameLong\r\n });\r\n this.macros.push({\r\n id: 76,\r\n text: this.txtFlattenCategoryTreeShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtFlattenCategoryTreeLong\r\n });\r\n this.macros.push({\r\n id: 77,\r\n text: this.txtSetWawiLinesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetWawiLinesLong\r\n });\r\n this.macros.push({\r\n id: 78,\r\n text: this.txtSetWawiSupplierPidsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSetWawiSupplierPidsLong\r\n });\r\n this.macros.push({\r\n id: 79,\r\n text: this.txtRemoveSpecialCharactersShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRemoveSpecialCharactersLong\r\n });\r\n this.macros.push({\r\n id: 81,\r\n text: this.txtVariantResolveShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtVariantResolveLong\r\n });\r\n this.macros.push({\r\n id: 82,\r\n text: this.txtCreateEnventaMimeShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCreateEnventaMimeLong\r\n });\r\n this.macros.push({\r\n id: 83,\r\n text: this.txtGenerateKITextsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtGenerateKITextsLong\r\n });\r\n this.macros.push({\r\n id: 84,\r\n text: this.txtRenameFeaturesShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtRenameFeaturesLong\r\n });\r\n this.macros.push({\r\n id: 85,\r\n text: this.txtSplitFeatureValuesFromUnitShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtSplitFeatureValuesFromUnitLong\r\n });\r\n this.macros.push({\r\n id: 86,\r\n text: this.txtCategoriesToMastersTextsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtCategoriesToMastersTextsLong\r\n });\r\n this.macros.push({\r\n id: 87,\r\n text: this.txtMarkAsChangedTextsShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtMarkAsChangedTextsLong\r\n });\r\n\r\n this.macros.push({\r\n id: 88,\r\n text: this.txtGenerateSortNumberTextShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtGenerateSortNumberTextLong\r\n });\r\n\r\n this.macros.push({\r\n id: 89,\r\n text: this.txtGenerateMasterFeaturesFromVariantsTextsShortTextShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtGenerateMasterFeaturesFromVariantsTextsShortTextLong\r\n });\r\n\r\n this.macros.push({\r\n id: 90,\r\n text: this.txtChangeMimePurposesTextShort,\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.txtChangeMimePurposesTextLong\r\n });\r\n\r\n this.macros.push({\r\n id: 91,\r\n text: this.translate.instant(\"txtConvertOrderDetailsToSupplierDetailsTextShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtConvertOrderDetailsToSupplierDetailsTextLong\")\r\n });\r\n\r\n this.macros.push({\r\n id: 92,\r\n text: this.translate.instant(\"txtDeleteEmptySuppliersTextShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtDeleteEmptySuppliersTextLong\")\r\n });\r\n this.macros.push({\r\n id: 93,\r\n text: this.translate.instant(\"txtListProductsWithoutMediaTextShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtListProductsWithoutMediaTextLong\")\r\n });\r\n this.macros.push({\r\n id: 94,\r\n text: this.translate.instant(\"txtDeleteAllSuppliersTextShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtDeleteAllSuppliersTextLong\")\r\n });\r\n this.macros.push({\r\n id: 95,\r\n text: this.translate.instant(\"txtRenameMediaCaseSensitiveShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtRenameMediaCaseSensitiveLong\")\r\n });\r\n this.macros.push({\r\n id: 96,\r\n text: this.translate.instant(\"txtFindEmptyFeatureSystemsJobShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtFindEmptyFeatureSystemsJobLong\")\r\n });\r\n this.macros.push({\r\n id: 97,\r\n text: this.translate.instant(\"txtApplyWawiMappingsShort\"),\r\n icon: \"glyphicon glyphicon-wrench\",\r\n hint: this.translate.instant(\"txtApplyWawiMappingsLong\")\r\n })\r\n }\r\n\r\n\r\n setCards() {\r\n this.cards = new Array<Card>();\r\n\r\n let catalogCard = new Card;\r\n catalogCard.name = this.txtKatalog;\r\n catalogCard.elements = [14, 16, 17, 51, 18, 15, 87];\r\n this.cards.push(catalogCard);\r\n if (this.modelService.loginService.hasAddonMULTI_ACCOUNT) {\r\n catalogCard.elements.push(55);\r\n }\r\n if (this.modelService.loginService.hasAddonMavis) {\r\n catalogCard.elements.push(56);\r\n }\r\n\r\n let categoryCard = new Card;\r\n categoryCard.name = this.txtKategorie;\r\n categoryCard.elements = [10, 19, 21, 48, 52, 61, 65, 76, 86];\r\n this.cards.push(categoryCard);\r\n\r\n let productCard = new Card;\r\n productCard.name = this.txtProdukte;\r\n productCard.elements = [6, 7, 8, 9, 13, 35, 43, 46, 49, 57, 66, 67, 68, 73, 86, 88, 92, 94, 93];\r\n if (this.modelService.loginService.hasAddonDEVELOPMENT) {\r\n productCard.elements.push(91);\r\n }\r\n\r\n this.cards.push(productCard);\r\n\r\n let mediaCard = new Card;\r\n mediaCard.name = this.txtMedien;\r\n mediaCard.elements = [1, 20, 11, 3, 5, 22, 28, 32, 33, 37, 30, 39, 42, 44, 50, 64, 71, 79, 82, 90, 95];\r\n if (this.modelService.loginService.hasAddonREPORTPRODUCTDATASHEET && this.modelService.loginService.currentCustomer.pimLicense != PimLicense.EdeEditon) {\r\n mediaCard.elements.push(62);\r\n }\r\n this.cards.push(mediaCard);\r\n\r\n let featureCard = new Card;\r\n featureCard.name = this.txtFeatures;\r\n featureCard.elements = [4, 31, 84, 85, 34, 38, 40, 47, 58, 74, 89];\r\n this.cards.push(featureCard);\r\n\r\n if (this.modelService.loginService.hasAddonCLASSIFICATION) {\r\n featureCard.elements.push(60);\r\n }\r\n\r\n if (this.modelService.loginService.isAdmin) {\r\n let shopCard = new Card;\r\n shopCard.name = this.txtShop;\r\n shopCard.elements = [23];\r\n this.cards.push(shopCard);\r\n }\r\n\r\n let translationCard = new Card;\r\n translationCard.name = this.txtUebersetzung;\r\n translationCard.elements = [26, 27];\r\n this.cards.push(translationCard);\r\n\r\n let variantsCard = new Card;\r\n variantsCard.name = this.txtVarianten;\r\n variantsCard.elements = [72, 69, 53, 36, 24, 81];\r\n this.cards.push(variantsCard);\r\n\r\n let troubleShootingCard = new Card;\r\n troubleShootingCard.name = this.txtTroubleShooting;\r\n troubleShootingCard.elements = [25, 96];\r\n if (this.modelService.loginService.isAdmin) {\r\n troubleShootingCard.elements.push(29);\r\n }\r\n this.cards.push(troubleShootingCard);\r\n\r\n if (this.modelService.loginService.hasAddonWawiErp) {\r\n let wawiCard = new Card;\r\n wawiCard.name = this.modelService.loginService.wawiSettings.name;\r\n wawiCard.elements = [77, 78, 82, 97];\r\n this.cards.push(wawiCard);\r\n }\r\n\r\n if (this.modelService.loginService.hasAddonKI_TEXTS) {\r\n let KICard = new Card;\r\n KICard.name = this.txtKIText;\r\n KICard.elements = [83];\r\n this.cards.push(KICard);\r\n }\r\n }\r\n\r\n //TODO kein richtiger setter\r\n setMacro(id: number) {\r\n this.macro = id;\r\n this.startMacroButtonEnabled = true;\r\n\r\n if (id === 19 ||\r\n id === 20 ||\r\n id === 4 ||\r\n id === 5 ||\r\n id === 6 ||\r\n id === 7 ||\r\n id === 8 ||\r\n id === 9 ||\r\n id === 10 ||\r\n id === 11 ||\r\n id === 22 ||\r\n id === 50 ||\r\n id === 63 ||\r\n id === 64 ||\r\n id === 67) {\r\n this.isDelete = true;\r\n } else {\r\n this.isDelete = false;\r\n }\r\n\r\n this.isFeatureSystemMakro = (id === 58 ||\r\n id === 38 ||\r\n id === 31);\r\n }\r\n\r\n async startMacro() {\r\n const startAction = new StartAction();\r\n startAction.catalogId = this.modelService.catalogService.catalog.id;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n switch (this.macro) {\r\n case 1:\r\n startAction.actionId = \"RemovePathFromMimeSource\";\r\n break;\r\n case 2:\r\n startAction.actionId = \"RemovePathFromFile\";\r\n break;\r\n case 3:\r\n startAction.actionId = \"ReorderMime\";\r\n break;\r\n case 4:\r\n startAction.actionId = \"RemoveAllFeatures\";\r\n break;\r\n case 5:\r\n startAction.actionId = \"RemoveAllMimes\";\r\n break;\r\n case 6:\r\n startAction.actionId = \"RemoveAllOrderDetails\";\r\n break;\r\n case 7:\r\n startAction.actionId = \"RemoveAllPrices\";\r\n break;\r\n case 8:\r\n startAction.actionId = \"RemoveAllUDX\";\r\n break;\r\n case 9:\r\n startAction.actionId = \"RemoveAllLogisticDetails\";\r\n break;\r\n case 10:\r\n startAction.actionId = \"RemoveEmptyCategories\";\r\n break;\r\n case 11:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 13:\r\n startAction.actionId = \"SupplierPIDSwitch\";\r\n break;\r\n case 14:\r\n startAction.actionId = \"CheckCatalog\";\r\n break;\r\n case 15:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 16:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 17:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 18:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 19:\r\n startAction.actionId = \"DeleteCategoryImages\";\r\n break;\r\n case 20:\r\n startAction.actionId = \"DeleteUnUsedMimes\";\r\n break;\r\n case 21:\r\n startAction.actionId = \"AssignCategoryImages\";\r\n break;\r\n case 22:\r\n startAction.actionId = \"DeleteAllMedia\";\r\n break;\r\n case 23:\r\n startAction.actionId = \"CacheThumbnails\";\r\n break;\r\n case 24:\r\n startAction.actionId = \"RemoveMaster\";\r\n break;\r\n case 25:\r\n startAction.actionId = \"FixStatistics\";\r\n break;\r\n case 26:\r\n startAction.actionId = \"TranslateMimeSources\";\r\n break;\r\n case 27:\r\n startAction.actionId = \"TranslateNumbers\";\r\n break;\r\n case 28:\r\n startAction.actionId = \"DetectMimeType\";\r\n break;\r\n case 29:\r\n startAction.actionId = \"RebuildThumbs\";\r\n break;\r\n case 30:\r\n startAction.actionId = \"RemoveMimeWithoutImagePath\";\r\n break;\r\n case 31:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 32:\r\n startAction.actionId = \"RemoveDuplicateImages\";\r\n break;\r\n case 33:\r\n startAction.actionId = \"DownloadMimeSources\";\r\n break;\r\n case 34:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 35:\r\n startAction.actionId = \"EanSupplierAltPidSwitch\";\r\n break;\r\n case 36:\r\n startAction.actionId = \"AssignMasterImages\";\r\n break;\r\n case 37:\r\n startAction.actionId = \"ReportMissingMedia\";\r\n break;\r\n case 38:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 39:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 40:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 41:\r\n startAction.actionId = \"AddEcommerceFeatures\";\r\n break;\r\n case 42:\r\n startAction.actionId = \"TruncateMimeDescriptions\";\r\n break;\r\n case 43:\r\n startAction.actionId = \"InternationalPidTypEanToGtin\";\r\n break;\r\n case 44:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 45:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 46:\r\n startAction.actionId = \"SetIsBulky\";\r\n break;\r\n case 47:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 48:\r\n startAction.actionId = \"RemoveRootCategory\";\r\n break;\r\n case 49:\r\n startAction.actionId = \"SetManufacturerAidFromSupplierPid\";\r\n break;\r\n case 50:\r\n startAction.actionId = \"RemoveMimesWithoutMimeSource\";\r\n break;\r\n case 51:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 52:\r\n startAction.actionId = \"ReorderCategories\";\r\n break;\r\n case 53:\r\n startAction.actionId = \"MasterToCategory\";\r\n break;\r\n case 55:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 56:\r\n startAction.actionId = \"SetMavisTransferDate\";\r\n break;\r\n case 57:\r\n startAction.actionId = \"SetBmeCatDefaultValues\";\r\n break;\r\n case 58:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 60:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 61:\r\n startAction.actionId = \"CreateUniqueGroupId\";\r\n break;\r\n case 62:\r\n //startAction.actionId = \"ExportReportProductDatasheet\"; // da kriegen wir die parameter nicht 'rein und 'rüber\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 63:\r\n startAction.actionId = \"DeleteDuplicateFeatures\";\r\n break;\r\n case 64:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 65:\r\n startAction.actionId = \"RemoveEmptyUDXOnCategories\";\r\n break;\r\n case 66:\r\n startAction.actionId = \"RemoveEmptyUDXOnProducts\";\r\n break;\r\n case 67:\r\n startAction.actionId = \"RemoveDeadReferences\";\r\n break;\r\n case 68:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 69:\r\n startAction.actionId = \"CreateLinkedFieldsOnProducts\";\r\n break;\r\n case 71:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 72:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 73:\r\n startAction.actionId = \"ConsolidateDubSupplierPids\";\r\n break;\r\n\r\n case 74:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n\r\n case 76:\r\n startAction.actionId = \"FlattenCategoryTree\";\r\n break;\r\n case 77:\r\n startAction.actionId = \"SetWawiLines\";\r\n break;\r\n case 78:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 79:\r\n startAction.actionId = \"RemoveSpecialCharacters\";\r\n break;\r\n case 81:\r\n startAction.actionId = \"NMVariantsResolve\";\r\n break;\r\n case 82:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 83:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 84:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 85:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 86:\r\n startAction.actionId = \"CategoriesToMasters\";\r\n break;\r\n case 87:\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 88:\r\n startAction.actionType = \"GenerateSortNumber\";\r\n break;\r\n case 89:\r\n startAction.actionType = \"GenerateMasterFeaturesFromVariants\";\r\n break;\r\n case 90: // changeMimePurposes\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n case 91: // convertOrderDetailsToSupplierDetailsJob\r\n startAction.actionType = \"ConvertOrderDetailsToSupplierDetails\";\r\n break;\r\n case 92:\r\n startAction.actionType = \"DeleteEmptySuppliers\";\r\n break;\r\n case 93:\r\n startAction.actionType = \"ListProductsWithoutMedia\";\r\n break;\r\n case 94:\r\n startAction.actionType = \"DeleteAllSuppliers\";\r\n break;\r\n case 95:\r\n startAction.actionType = \"RenameMediaCaseSensitive\";\r\n break;\r\n case 96:\r\n startAction.actionType = \"FindEmptyFeatureSystems\";\r\n break;\r\n case 97: // applyWawiMappings\r\n this.currentSelectedUserActionComponent.startMacro();\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.showUserAction = false;\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(success => {\r\n if (success) {\r\n this.modelService.systemService.notify(new Message(this.txtMakroGestarted));\r\n }\r\n });\r\n }\r\n\r\n initRepository(): void {\r\n USERACTIONVIEWDETAILS.forEach(item => {\r\n this.translate.get(item.hintLookupKey).subscribe((text: string) => {\r\n item.hint = text;\r\n });\r\n\r\n this.translate.get(item.textLookupKey).subscribe((text: string) => {\r\n item.text = text;\r\n });\r\n });\r\n }\r\n\r\n\r\n //workflow / behavior control\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n resetView(): void {\r\n this.macroAccordionSelectedItem = this.cards[0];\r\n this.setMacro(0);\r\n }\r\n\r\n onUserActionStarted(value: any) {\r\n if (typeof (value) == 'boolean' && value) {\r\n this.modelService.systemService.notify(new Message(this.txtMakroGestarted));\r\n this.modelService.catalogService.showUserAction = false;\r\n } else {\r\n //TODO Logging\r\n console.log(value);\r\n }\r\n\r\n //wichtig, damit sich die einzelnen Komponenten neu initialisieren\r\n this.resetView();\r\n }\r\n\r\n onUserActionComponentInitiated(value: any) {\r\n if (value instanceof UserActionBaseComponent) {\r\n this.currentSelectedUserActionComponent = value;\r\n } else {\r\n //TODO Logging\r\n console.log(value);\r\n }\r\n }\r\n\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column class=\"align-self-stretch {{modelService.systemService.showMenu ? '' : 'd-none'}}\" style=\"flex: 1 1;\">\r\n <div class=\"h-100 d-flex flex-column\">\r\n\r\n <div class=\"px-6 pt-6 align-self-end\" style=\"padding:6px;\">\r\n\r\n <a (click)=\"toggleFilter()\"><span class='glyphicon glyphicon-filter' style=\"font-size:20px;\"></span></a>\r\n \r\n </div>\r\n \r\n <div class=\"px-3 pb-2\" *ngIf=\"showFilter\">\r\n <productStateOptions\r\n [stateValue]=\"selectedStates\"\r\n (onValueChanged)=\"updateState($event)\"\r\n ></productStateOptions>\r\n <productSearchOptions></productSearchOptions>\r\n </div>\r\n\r\n <div class=\"px-2 flex-fill overflow-hidden\">\r\n <dx-tree-list id=\"treelist\" class=\"tree\"\r\n [dataSource]=\"dataSource\"\r\n [showBorders]=\"false\"\r\n [showColumnHeaders]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [remoteOperations]=\"{ filtering: true }\"\r\n keyExpr=\"treeElementId\"\r\n parentIdExpr=\"parent\"\r\n hasItemsExpr=\"hasChilds\"\r\n rootValue=\"0\"\r\n (onSelectionChanged)=\"onSelectItem($event)\"\r\n [(selectedRowKeys)]=\"treeSelectedRowKeys\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onInitialized)=\"saveGridInstance($event)\"\r\n (onContentReady)=\"onContentReady($event)\">\r\n\r\n <dxo-search-panel *ngIf=\"!massDataChange\" [visible]=\"true\" placeholder=\"{{ 'Produkte suchen' | translate }}\" width=\"auto\" [(text)]=\"searchText\"></dxo-search-panel>\r\n\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-selection [mode]=\"treeListMode()\" [recursive]=\"true\"></dxo-selection>\r\n <dxi-column dataField=\"Title\" cellTemplate=\"cellTemplate\"></dxi-column>\r\n <dxi-column dataField=\"order\" [visible]=false sortOrder=\"asc\"></dxi-column>\r\n <div *dxTemplate=\"let itemObj of 'cellTemplate'\">\r\n <div class=\"treeitem\" id=\"image{{itemObj.data.treeElementId}}\">\r\n <div class=\"container-fluid h-100\">\r\n <div class=\"row h-100 d-flex\">\r\n <div class=\"col order-0 treeitemimage\">\r\n <span *ngIf=\"!itemObj.data.imageUrl\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 36px;\"></span>\r\n <img *ngIf=\"itemObj.data.imageUrl\" src=\"{{itemObj.data.imageUrl}}\" style=\"height: 40px;\" />\r\n </div>\r\n <div *ngIf=\"itemObj.data.type === 'cat'\" class=\"col order-2 treeitemlanguage\">\r\n <dx-select-box *ngIf=\"showTranslateBox()\"\r\n [dataSource]=\"languageFlags\"\r\n displayExpr=\"language\"\r\n valueExpr=\"code\"\r\n [(value)]=\"selectedTranslateLanguage\"\r\n fieldTemplate=\"field\" style=\"height: 27px; width: 45px; top: 6px;\">\r\n <div *dxTemplate=\"let data of 'item'\">\r\n <div class=\"custom-item\" style=\"margin-left: -10px;\">\r\n <img src=\"images/flags/{{data?.flag}}\" class=\"flag\" />\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <div class=\"custom-item\">\r\n <img src=\"images/flags/{{data?.flag}}\" class=\"flag\" />\r\n <dx-text-box [value]=\"data?.text\" [readOnly]=\"true\" style=\"display: none\"></dx-text-box>\r\n </div>\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n <div class=\"col order-1 overflow-hidden treeitemtext\">\r\n <div class=\"treeitemheader\">\r\n {{itemObj.data.text}}\r\n </div>\r\n <div class=\"treeitemdetail\">\r\n <div [ngSwitch]=\"itemObj.data.type\">\r\n <!--CATALOG-->\r\n <div *ngSwitchCase=\"'cat'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n\r\n <!--CATEGORY-->\r\n <div *ngSwitchCase=\"'grp'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n <!--PRODUCT-->\r\n <div *ngSwitchCase=\"'pro'\">\r\n {{itemObj.data.supplierPid}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-context-menu [dataSource]=\"menuItems\"\r\n [width]=\"200\"\r\n (onShowing)=\"onContextMenuShowing($event,itemObj)\"\r\n target=\"#image{{itemObj.data.treeElementId}}\"\r\n id=\"context{{itemObj.data.treeElementId}}\"\r\n (onItemClick)=\"itemClick($event,itemObj)\">\r\n <div *dxTemplate=\"let e of 'item'\">\r\n <div>\r\n <span [ngClass]=\"e.icon\"></span>\r\n <span *ngIf=\"e.items\" class=\"dx-icon-spinright\"></span> {{e.text}}\r\n </div>\r\n </div>\r\n </dx-context-menu>\r\n </div>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column class=\"align-self-stretch {{modelService.systemService.showHelp && modelService.systemService.showMenu ? 'w-50' : modelService.systemService.showHelp || modelService.systemService.showMenu ? 'w-75' : 'w-100'}}\" look=\"light\" navigationSwitch=\"true\" helpSwitch=\"true\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/catalogs']\" look=\"{{modelService.systemService.showMenu ? 'hidden' : 'light'}}\"></logo>\r\n <dx-scroll-view slot=\"content\" showScrollbar=\"always\">\r\n <catalogDetail *ngIf=\"isCatalogSelected && !massDataChange && !massGenerateKITexts\" (onMassDataEdit)=\"setEmptyProduct($event)\"></catalogDetail>\r\n <categoryDetail *ngIf=\"isCategorySelected && !massDataChange && !massGenerateKITexts\" (onMassDataEdit)=\"setEmptyProduct($event)\"></categoryDetail>\r\n <productDetail *ngIf=\"isProductSelected && !massDataChange && !massGenerateKITexts\" (onMassDataEdit)=\"setEmptyProduct($event)\"></productDetail>\r\n <massDataChange *ngIf=\"massDataChange\" [treeList]=\"treeList\" [emptyProduct]=\"emptyProduct\" (cancel)=\"massCancel()\"></massDataChange>\r\n <massGenerateKIText *ngIf=\"massGenerateKITexts\" [treeList]=\"treeList\" (cancel)=\"startMassGenerateKITexts()\"></massGenerateKIText>\r\n </dx-scroll-view>\r\n </content-column>\r\n <help-column class=\"align-self-stretch {{modelService.systemService.showHelp ? '' : 'd-none'}}\" style=\"flex: 1 1;\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup title=\"{{ 'Makros' | translate }}\"\r\n [width]=\"1200\"\r\n [height]=\"800\"\r\n [dragEnabled]=\"false\"\r\n [showTitle]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [(visible)]=\"showUserAction\"\r\n [(fullScreen)]=\"fullScreen\"\r\n (onHiding)=\"hideUserAction()\"\r\n contentTemplate=\"popupContent\">\r\n <dxi-toolbar-item *ngIf=\"fullScreen\" toolbar=\"top\" location=\"after\" widget=\"dxButton\" [options]=\"{ icon: 'chevrondown', onClick: userActionWindow }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item *ngIf=\"!fullScreen\" toolbar=\"top\" location=\"after\" widget=\"dxButton\" [options]=\"{ icon: 'chevronup', onClick: userActionFullScreen }\"></dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"top\" location=\"after\" widget=\"dxDropDownButton\">\r\n <np-help-button>\r\n <np-help-option text=\"Wiki\" icon=\"images/Wiki.svg\" link=\"https://knowledge.nextpim.de/makros?utm_source=app.nextpim.de&utm_medium=affiliate&utm_campaign=wikilink\"></np-help-option>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=gHtxkwiks9k\"></np-help-option>\r\n </np-help-button>\r\n </dxi-toolbar-item>\r\n\r\n\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <userAction></userAction>\r\n </div>\r\n</dx-popup>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Catalog } from \"../../Model/Catalog/Catalog\";\r\nimport { Category } from \"../../Model/Catalog/Category\";\r\nimport { Product } from \"../../Model/Catalog/product\";\r\nimport { TreeItem as TreeElement } from \"../../Model/Dto/TreeItem\";\r\nimport { UrlResponse } from \"../../Model/Dto/UrlResponse\";\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { Clipboard } from \"../../Model/Dto/Clipboard\";\r\nimport { ProductState } from \"../../Model/Catalog/ProductState\";\r\nimport { CustomerWiki } from \"../../Model/System/CustomerWiki\";\r\nimport { LanguageFlag } from \"../../Model/Dto/LanguageFlag\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\nimport { MassDataChangeService } from \"../../Services/CatalogManagement/massDataChange.service\";\r\nimport { ProductLogistic } from \"../../Model/Catalog/ProductLogistic\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport dxTreeList from \"devextreme/ui/tree_list\";\r\nimport { Location } from '@angular/common';\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\n\r\n\r\n@Component({\r\n selector: \"catalog\",\r\n templateUrl: \"browse.component.html\",\r\n styleUrls: [\"./browse.component.css\"]\r\n})\r\nexport class CatalogComponent implements OnInit {\r\n @ViewChild(DxTreeListComponent, { static: true })\r\n treeList: DxTreeListComponent;\r\n\r\n public dataSource: any;\r\n public expandedRowKeys: any = [];\r\n public selectedCatalogId: string;\r\n public selectedCategoryId: string;\r\n public selectedProductId: string;\r\n public treeSelectedRowKeys: any = [];\r\n public productStates: string[] = new Array<string>();\r\n public languageCodes: string[];\r\n public massDataChange: boolean = false;\r\n public massGenerateKITexts: boolean = false;\r\n public searchText = \"\";\r\n public showFilter: boolean = false;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public validationService: ValidationService,\r\n public massDataService: MassDataChangeService, public userManagment: UserManagementService, private route: ActivatedRoute, private router: Router,\r\n private location: Location) {\r\n let customerId = this.route.snapshot.paramMap.get('customerId')!;\r\n if (customerId != this.modelService.loginService.currentCustomer.id) {\r\n this.modelService.router.navigate([\"/login/\" + customerId], { queryParams: { returnUrl: this.route.snapshot.url } });\r\n return;\r\n }\r\n\r\n this.userActionWindow = this.userActionWindow.bind(this);\r\n this.userActionFullScreen = this.userActionFullScreen.bind(this);\r\n this.buildContextMenu = this.buildContextMenu.bind(this);\r\n this.treeListMode = this.treeListMode.bind(this);\r\n this.setEmptyProduct = this.setEmptyProduct.bind(this);\r\n this.massCancel = this.massCancel.bind(this);\r\n this.saveGridInstance = this.saveGridInstance.bind(this);\r\n this.onContentReady = this.onContentReady.bind(this);\r\n\r\n this.modelService.catalogService.selectedCatalogId = this.route.snapshot.paramMap.get('catalogId')!;\r\n if (this.modelService.catalogService.selectedCatalogId == \"\") {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n let that = this;\r\n if (this.modelService.catalogService.catalog == null) {\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId).subscribe(catalog => {\r\n this.selectedCatalogId = catalog.id;\r\n });\r\n\r\n }\r\n\r\n this.translateTexts();\r\n\r\n\r\n\r\n\r\n\r\n this.dataSource = {\r\n load: async function (loadOptions) {\r\n let parentId = \"\";\r\n if (loadOptions.parentIds != null) {\r\n parentId = loadOptions.parentIds.join(\",\");\r\n }\r\n\r\n\r\n that.childs = await that.modelService.catalogService.getChilds(\r\n that.modelService.catalogService.selectedCatalogId, \r\n parentId, \r\n that.modelService.loginService.currentUser.customerId, \r\n loadOptions.filter, \r\n that.modelService.catalogService.selectedStates,\r\n that.modelService.loginService.productSearchOptions,\r\n that.modelService.catalogService.selectedStatesMode);\r\n\r\n let products = that.childs.filter(x => x.type == \"pro\");\r\n if (products && products.length > 999 && that.isSearch(loadOptions.filter, that.modelService.catalogService.selectedStates)) {\r\n that.modelService.systemService.notifyInfo(that.translate.instant(\"Das Suchergebnis wurde auf 1000 Produkten eingeschränkt\"));\r\n }\r\n\r\n return that.childs;\r\n }\r\n };\r\n\r\n\r\n //select das entsprechnde TreeItem jenachdem ob Parameter im Link stehen\r\n let productId = this.route.snapshot.paramMap.get('productId')!;\r\n let categoryId = this.route.snapshot.paramMap.get('categoryId')!;\r\n let catalogId = this.route.snapshot.paramMap.get('catalogId')!;\r\n if (catalogId != null) {\r\n if (!this.modelService.catalogService.selectedCatalogId) {\r\n this.modelService.catalogService.selectedCatalogId = catalogId;\r\n }\r\n }\r\n\r\n if (productId != null && catalogId != null) {\r\n this.modelService.catalogService.GetProductTreeItem(productId, this.modelService.loginService.currentCustomer.id, \"\", catalogId).subscribe(prod => {\r\n this.selectProductAfterSearch = prod;\r\n }, () => {\r\n console.log();\r\n });\r\n } else if (categoryId != null && catalogId != null) {\r\n this.modelService.catalogService.getCategory(categoryId, this.modelService.loginService.currentCustomer.id).subscribe(category => {\r\n this.selectCategoryAfterSearch = category.id;\r\n });\r\n } else if (catalogId != null) {\r\n this.treeSelectedRowKeys = [catalogId];\r\n\r\n } else if (this.modelService.catalogService.selectedCatalogId != null) {\r\n this.treeSelectedRowKeys = [this.modelService.catalogService.selectedCatalogId];\r\n } else {\r\n this.modelService.systemService.notifyWarning(this.translate.instant(\"Der verlinkte Katalog existiert nicht in diesem Account\"));\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n }\r\n\r\n\r\n this.translate.get('Katalog').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n isSearch(filter: any, states: string[]) {\r\n if (states && states.length > 0)\r\n return true;\r\n\r\n if (filter && filter.filterValue) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.refresh();\r\n\r\n this.modelService.loginService.getLanguages().subscribe(() => {\r\n this._languageFlags = this.modelService.loginService.languageFlags;\r\n });\r\n this.selectedTranslateLanguage = this.modelService.loginService.selectedTranslateLanguage;\r\n // this.refresh();\r\n this.selectedStates = [];\r\n this.openItem(\"cat\", this.modelService.catalogService.selectedCatalogId, false);\r\n\r\n this.modelService.catalogService.startMassGenerateKITexts.subscribe(() => {\r\n this.showMassGenerateKITexts();\r\n });\r\n }\r\n\r\n TreeListInstance: dxTreeList;\r\n saveGridInstance(e) {\r\n this.TreeListInstance = e.component;\r\n }\r\n\r\n onSearchChanged(text) {\r\n let i = 0;\r\n }\r\n\r\n selectProductAfterSearch: TreeElement;\r\n selectCategoryAfterSearch: string;\r\n async onContentReady(e) {\r\n if (this.selectCategoryAfterSearch == null && this.selectProductAfterSearch == null) {\r\n this.selectCategoryAfterSearch = null;\r\n this.selectProductAfterSearch = null;\r\n return;\r\n }\r\n let productTreeElement = this.selectProductAfterSearch;\r\n let categoryId = this.selectCategoryAfterSearch;\r\n this.selectCategoryAfterSearch = null;\r\n this.selectProductAfterSearch = null;\r\n\r\n if (productTreeElement != null) {\r\n await this.expandCategoryTreeToTheTop(productTreeElement.parent);\r\n await this.TreeListInstance.expandRow(productTreeElement.parent);\r\n await this.TreeListInstance.selectRows([productTreeElement.treeElementId], false);\r\n } else {\r\n await this.expandCategoryTreeToTheTop(categoryId);\r\n await this.TreeListInstance.expandRow(categoryId);\r\n await this.TreeListInstance.selectRows([categoryId], false);\r\n }\r\n }\r\n\r\n async expandCategoryTreeToTheTop(categoryId: string): Promise<void> {\r\n let category = await this.modelService.catalogService.getCategory(categoryId, this.modelService.loginService.currentCustomer.id).toPromise();\r\n\r\n if (category.parentCategoryId == \"000000000000000000000000\") {\r\n await this.TreeListInstance.expandRow(category.catalogId);\r\n return;\r\n }\r\n await this.expandCategoryTreeToTheTop(category.parentCategoryId);\r\n await this.TreeListInstance.expandRow(category.parentCategoryId);\r\n }\r\n\r\n set selectedStatesMode(value: string) {\r\n this.modelService.catalogService.selectedStatesMode = value;\r\n }\r\n\r\n get selectedStatesMode() {\r\n return this.modelService.catalogService.selectedStatesMode;\r\n }\r\n\r\n set selectedStates(values: string[]) {\r\n this.modelService.catalogService.selectedStates = values;\r\n }\r\n\r\n get selectedStates(): string[] {\r\n return this.modelService.catalogService.selectedStates;\r\n }\r\n\r\n updateState({ mode, states }: { mode:string; states: string[] }) {\r\n this.selectedStatesMode = mode;\r\n this.selectedStates = states;\r\n this.modelService.catalogService.collapsTree();\r\n this.modelService.catalogService.treeFilter();\r\n }\r\n\r\n toggleFilter() {\r\n if (this.showFilter) {\r\n this.selectedStates = new Array<string>();\r\n this.showFilter = false;\r\n } else {\r\n this.showFilter = true;\r\n }\r\n }\r\n\r\n _languageFlags: LanguageFlag[];\r\n\r\n get languageFlags(): LanguageFlag[] {\r\n return this._languageFlags;\r\n }\r\n\r\n set languageFlags(value: LanguageFlag[]) {\r\n this._languageFlags = value;\r\n }\r\n\r\n refresh() {\r\n this.modelService.systemService.showMenu = true;\r\n this.modelService.catalogService.resetConnection();\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.modelService.catalogService.treeList = this.treeList;\r\n if (this.modelService.loginService.currentUser != null) {\r\n /* this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n this.model = this.modelService.catalogService.catalog;\r\n if (this.modelService.loginService.hasAddonShopWare && this.model.isPublic) {\r\n this.modelService.catalogService.testShopConnection();\r\n }\r\n\r\n //this.openItem(\"cat\", this.modelService.catalogService.selectedCatalogId, false);\r\n\r\n });*/\r\n\r\n\r\n this.modelService.catalogService.getCustomerProductStates(this.modelService.loginService.currentUser.customerId)\r\n .subscribe((states:\r\n ProductState[]) => {\r\n this.modelService.productStateService.productStates = new Array<string>();\r\n\r\n states.forEach(s => {\r\n this.modelService.productStateService.productStates.push(s.name);\r\n });\r\n });\r\n\r\n\r\n this.modelService.catalogService.getLanguageCodes().subscribe(() => this.languageCodes = this.modelService.catalogService.languageCodes);\r\n\r\n }\r\n this.modelService.loginService.selectedTranslateLanguage = this.modelService.loginService.currentCustomer.defaultLanguage;\r\n this.modelService.catalogService.isCatalogSelected = true;\r\n this.modelService.catalogService.isCategorySelected = false;\r\n this.modelService.catalogService.isProductSelected = false;\r\n this.modelService.translationService.productTranslation = null;\r\n }\r\n\r\n get selectedTranslateLanguage() {\r\n this.modelService.loginService.setLanguageFlags();\r\n return this.modelService.loginService.selectedTranslateLanguage;\r\n }\r\n\r\n set selectedTranslateLanguage(value) {\r\n this.modelService.loginService.selectedTranslateLanguage = value;\r\n this.modelService.translationService.productTranslation = null;\r\n if (this.modelService.catalogService.isProductSelected)\r\n this.modelService.translationService.getProductTranslation(this.modelService.catalogService.catalog.id, this.modelService.catalogService.product.id);\r\n }\r\n\r\n //MENU\r\n public tree: TreeElement[];\r\n public childs: TreeElement[];\r\n\r\n get canChangePassword() {\r\n if (this.modelService.loginService.currentUser != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n //CONTEXTMENU\r\n private contextMenuVisible: boolean;\r\n public menuItems = [];\r\n\r\n showContextMenu() {\r\n this.contextMenuVisible = true;\r\n }\r\n\r\n onContextMenuShowing(e, item) {\r\n this.modelService.catalogService.selectTreeElement(item.key);\r\n }\r\n\r\n async itemClick(e, itemClickData) {\r\n let treeId = itemClickData.data.treeElementId;\r\n\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n\r\n if (!e.itemData.items) {\r\n switch (e.itemData.id) {\r\n case 1: //Katalog duplizieren\r\n notify({ message: e.itemData.text + \" was clicked\", position: { my: \"center top\", at: \"center top\" } }, \"error\", 1500);\r\n break;\r\n case 2: // Kategorie hinzufügen\r\n if (this.modelService.catalogService.isCatalogSelected) {\r\n this.modelService.catalogService.addCategory(this.modelService.catalogService.catalog.id, this.modelService.loginService.currentUser.customerId, treeId);\r\n break;\r\n }\r\n await this.modelService.catalogService.addCategory(this.selectedCategoryId, this.modelService.loginService.currentUser.customerId, treeId);\r\n break;\r\n case 5: // Produkt hinzufügen\r\n if (this.modelService.catalogService.isCategorySelected) {\r\n await this.modelService.catalogService.addProduct(this.selectedCategoryId, this.modelService.loginService.currentUser.customerId, treeId);\r\n } else {\r\n await this.modelService.catalogService.addProduct(this.selectedProductId, this.modelService.loginService.currentUser.customerId, treeId);\r\n }\r\n break;\r\n case 6: //Item einfügen in Kategorie\r\n this.modelService.catalogService.pasteItem(this.selectedCategoryId);\r\n break;\r\n case 9: //Produkt einfügen in Produkt\r\n this.modelService.catalogService.pasteItem(this.selectedProductId);\r\n break;\r\n case 14: //Kategorie einfügen\r\n this.modelService.catalogService.pasteItem(this.modelService.catalogService.catalog.id);\r\n break;\r\n case 7: // Kategorie löschen\r\n\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Soll die Kategorie wirklich gelöscht werden?\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.modelService.catalogService.remCategory(this.modelService.catalogService.category, treeId);\r\n }\r\n });\r\n\r\n\r\n\r\n break;\r\n case 8: // Produkt duplizieren\r\n let selectedRowObj = this.treeList.instance.getNodeByKey(treeId);\r\n let parentNodeKey = selectedRowObj.parent.key;\r\n this.modelService.catalogService.duplicateItem(parentNodeKey, false, this.modelService.loginService.currentUser.customerId, this.selectedProductId);\r\n break;\r\n case 0: // Remove löschen\r\n this.translate.get(\"Ja\").subscribe((text: string) => {\r\n txtYes = text;\r\n });\r\n this.translate.get(\"Nein\").subscribe((text: string) => {\r\n txtNo = text;\r\n });\r\n this.translate.get(\"Soll das Produkt wirklich gelöscht werden?\").subscribe((text: string) => {\r\n txtMsg = text;\r\n });\r\n this.translate.get(\"Wirklich löschen?\").subscribe((text: string) => {\r\n txtTitle = text;\r\n });\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [{\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.modelService.catalogService.remProduct(this.modelService.catalogService.product, treeId);\r\n }\r\n });\r\n\r\n break;\r\n case 10: //Kategorie kopieren\r\n var clipboard = new Clipboard();\r\n clipboard.customerId = this.modelService.loginService.currentUser.customerId;\r\n clipboard.userId = this.modelService.loginService.currentUser.id;\r\n clipboard.isCut = false;\r\n clipboard.objectId = this.selectedCategoryId;\r\n clipboard.content = \"grp\";\r\n this.modelService.catalogService.saveClipboard2Subscribe(clipboard).subscribe(() => {\r\n var selectedRowData = this.modelService.catalogService.treeList.instance.getSelectedRowsData()[0];\r\n this.buildContextMenu(selectedRowData.isChild, selectedRowData.type);\r\n });\r\n break;\r\n case 11: //Kategorie ausschneiden\r\n var clipboard = new Clipboard();\r\n clipboard.customerId = this.modelService.loginService.currentUser.customerId;\r\n clipboard.userId = this.modelService.loginService.currentUser.id;\r\n clipboard.isCut = true;\r\n clipboard.objectId = this.selectedCategoryId;\r\n clipboard.content = \"grp\";\r\n this.modelService.catalogService.saveClipboard(clipboard);\r\n break;\r\n case 12: //Produkt kopieren\r\n var clipboard = new Clipboard();\r\n clipboard.customerId = this.modelService.loginService.currentUser.customerId;\r\n clipboard.userId = this.modelService.loginService.currentUser.id;\r\n clipboard.isCut = false;\r\n clipboard.isMaster = this.product.productCount > 0;\r\n clipboard.objectId = this.selectedProductId;\r\n clipboard.content = \"pro\";\r\n this.modelService.catalogService.saveClipboard2Subscribe(clipboard).subscribe(() => {\r\n var selectedRowData = this.modelService.catalogService.treeList.instance.getSelectedRowsData()[0];\r\n this.buildContextMenu(selectedRowData.isChild, selectedRowData.type);\r\n });\r\n break;\r\n case 13: //Produkt ausschneiden\r\n var clipboard = new Clipboard();\r\n clipboard.customerId = this.modelService.loginService.currentUser.customerId;\r\n clipboard.userId = this.modelService.loginService.currentUser.id;\r\n clipboard.isCut = true;\r\n clipboard.isMaster = this.product.productCount >= 0;\r\n clipboard.objectId = this.selectedProductId;\r\n clipboard.content = \"pro\";\r\n this.modelService.catalogService.saveClipboard2Subscribe(clipboard).subscribe(() => {\r\n var selectedRowData = this.modelService.catalogService.treeList.instance.getSelectedRowsData()[0];\r\n this.buildContextMenu(selectedRowData.isChild, selectedRowData.type);\r\n });\r\n break;\r\n case 20: //Als Kategorie kopieren\r\n var clipboard = new Clipboard();\r\n clipboard.customerId = this.modelService.loginService.currentUser.customerId;\r\n clipboard.userId = this.modelService.loginService.currentUser.id;\r\n clipboard.isCut = false;\r\n clipboard.objectId = this.selectedCatalogId;\r\n clipboard.content = \"cat\";\r\n this.modelService.catalogService.saveClipboard2Subscribe(clipboard).subscribe(() => {\r\n var selectedRowData = this.modelService.catalogService.treeList.instance.getSelectedRowsData()[0];\r\n this.buildContextMenu(selectedRowData.isChild, selectedRowData.type);\r\n });\r\n break;\r\n case 21:\r\n //Katalog einfügen\r\n this.modelService.catalogService.pasteItem(this.modelService.catalogService.catalog.id);\r\n break;\r\n case 22:\r\n //Item einfügen\r\n this.modelService.catalogService.pasteItem(this.selectedCategoryId);\r\n break;\r\n case 23:\r\n this.showUserActionWindow();\r\n break;\r\n case 24:\r\n //Massendatenbearbeitung Produkt als Vorlage benutzen\r\n this.modelService.catalogService\r\n .getProduct(this.selectedProductId, this.modelService.loginService.currentCustomer.id, this.modelService.catalogService.catalog.id).subscribe((result: Product) => {\r\n this.emptyProduct = this.modelService.productService.getProductFromJson(result, this.modelService.loginService.wawiSettings);\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //BROWSING\r\n public model: Catalog;\r\n public category: Category;\r\n public _product: Product;\r\n\r\n get product(): Product {\r\n return this._product;\r\n }\r\n\r\n set product(value: Product) {\r\n this._product = value;\r\n }\r\n\r\n get isCatalogSelected() {\r\n return this.modelService.catalogService.isCatalogSelected;\r\n }\r\n\r\n get isCategorySelected() {\r\n return this.modelService.catalogService.isCategorySelected;\r\n }\r\n\r\n get isProductSelected() {\r\n return this.modelService.catalogService.isProductSelected;\r\n }\r\n\r\n isVirtualCatalog(): boolean {\r\n return this.model?.isVirtual;\r\n }\r\n\r\n onCellPrepared(e) {\r\n if (!e.data.imageUrl) {\r\n if (this.modelService.catalogService.catalog && this.modelService.catalogService.catalog.lastImageUpload > e.data.lastImageLookup) {\r\n this.modelService.catalogService.getThumbUrl(e.data.id,\r\n e.data.type,\r\n this.modelService.loginService.currentUser.customerId,\r\n this.modelService.catalogService.selectedCatalogId).subscribe(\r\n (url: UrlResponse) => {\r\n if (url) e.data.imageUrl = url.url;\r\n e.data.lastImageLookup = new Date().getTime();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n onSelectItem(e) {\r\n\r\n if (e.selectedRowsData.length > 0) {\r\n this.modelService.catalogService.selectedNode = e.node;\r\n let selectedRowData = e.selectedRowsData[0];\r\n this.openItem(selectedRowData.type, selectedRowData.id, selectedRowData.isChild);\r\n }\r\n }\r\n\r\n txtKategorieHinzufuegen: string;\r\n txtKategorieEinfuegen: string;\r\n txtKatalogEinfuegen: string;\r\n txtProduktHinzufuegen: string;\r\n txtVarianteHinzufuegen: string;\r\n txtKategorieLoeschen: string;\r\n txtKategorieKopieren: string;\r\n txtProduktEinfuegen: string;\r\n txtProduktKopieren: string;\r\n txtProduktLoeschen: string;\r\n txtProduktDuplizieren: string;\r\n txtKopierenAlsKategorie: string;\r\n\r\n\r\n\r\n\r\n\r\n\r\n private translateTexts() {\r\n this.txtKategorieHinzufuegen = this.translate.instant(\"Kategorie hinzufügen\");\r\n\r\n this.txtKategorieEinfuegen = this.translate.instant(\"Kategorie einfügen\");\r\n this.txtKatalogEinfuegen = this.translate.instant(\"Katalog einfügen\");\r\n\r\n this.txtProduktHinzufuegen = this.translate.instant(\"Produkt hinzufügen\");\r\n this.txtVarianteHinzufuegen = this.translate.instant(\"Variante hinzufügen\");\r\n this.txtKategorieLoeschen = this.translate.instant(\"Kategorie löschen\");\r\n this.txtKategorieKopieren = this.translate.instant(\"Kategorie kopieren\");\r\n this.txtProduktEinfuegen = this.translate.instant(\"Produkt einfügen\");\r\n this.txtProduktKopieren = this.translate.instant(\"Produkt kopieren\");\r\n this.txtKopierenAlsKategorie = this.translate.instant(\"Kopieren als Kategorie\");\r\n this.txtProduktLoeschen = this.translate.instant(\"Produkt löschen\");\r\n this.txtProduktDuplizieren = this.translate.instant(\"Produkt duplizieren\");\r\n }\r\n\r\n private openItem(type: string, id: string, isChild: boolean) {\r\n this.modelService.catalogService.isCategorySelected = false;\r\n this.modelService.catalogService.isCatalogSelected = false;\r\n this.modelService.catalogService.isProductSelected = false;\r\n this.modelService.translationService.productTranslation = null;\r\n\r\n\r\n this.modelService.catalogService.product = null;\r\n this.modelService.catalogService.category = null;\r\n\r\n switch (type) {\r\n case \"cat\":\r\n this.modelService.catalogService.isCatalogSelected = true;\r\n this.selectedCatalogId = id;\r\n this.location.go(\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + this.selectedCatalogId);\r\n this.modelService.catalogService.getCatalog(this.modelService.catalogService.selectedCatalogId, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n this.model = this.modelService.catalogService.catalog;\r\n });\r\n break;\r\n\r\n case \"grp\":\r\n this.modelService.catalogService.isCategorySelected = true;\r\n this.selectedCategoryId = id;\r\n this.location.go(\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + this.selectedCatalogId + \"/category/\" + this.selectedCategoryId);\r\n this.modelService.catalogService.getCategory(id, this.modelService.loginService.currentUser.customerId)\r\n .subscribe(() => {\r\n this.category = this.modelService.catalogService.category;\r\n });\r\n break;\r\n\r\n case \"pro\":\r\n this.modelService.catalogService.isProductSelected = true;\r\n this.selectedProductId = id;\r\n this.location.go(\"/catalog/\" + this.modelService.loginService.currentCustomer.id + \"/\" + this.selectedCatalogId + \"/product/\" + this.selectedProductId);\r\n this.modelService.catalogService\r\n .getProduct(id, this.modelService.loginService.currentUser.customerId, this.modelService.catalogService.catalog.id)\r\n .subscribe(() => {\r\n this.product = this.modelService.catalogService.product;\r\n if (this.modelService.loginService.selectedTranslateLanguage != this.modelService.loginService.currentCustomer.defaultLanguage) {\r\n this.modelService.translationService.getProductTranslation(this.modelService.catalogService.catalog.id, this.product.id);\r\n }\r\n this.validationService.validateProduct(this.modelService.catalogService.product);\r\n });\r\n break;\r\n }\r\n this.buildContextMenu(isChild, type);\r\n }\r\n\r\n buildContextMenu(isChild: boolean, type: string) {\r\n this.menuItems = [];\r\n if (this.canView('rightclickCatalog') && !this.massDataChange) {\r\n switch (type) {\r\n case \"cat\":\r\n this.menuItems.push({ id: 2, text: this.txtKategorieHinzufuegen, icon: 'glyphicon glyphicon-plus', beginGroup: true });\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 20, text: this.txtKopierenAlsKategorie, icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n }\r\n this.modelService.catalogService.loadClipboard().subscribe(\r\n () => {\r\n var clipboard = this.modelService.catalogService.clipboard;\r\n if (clipboard != null && clipboard.content == \"grp\" && !this.isVirtualCatalog()) {\r\n this.menuItems.push(\r\n { id: 14, text: this.txtKategorieEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true });\r\n }\r\n if (clipboard != null && clipboard.content == \"cat\" && !this.isVirtualCatalog()) {\r\n this.menuItems.push(\r\n { id: 21, text: this.txtKatalogEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true });\r\n }\r\n }\r\n );\r\n break;\r\n\r\n case \"grp\":\r\n //if (this.canView('rightclickCatalog')) { // unnötig\r\n this.menuItems = [];\r\n this.menuItems.push({ id: 2, text: this.txtKategorieHinzufuegen, icon: 'glyphicon glyphicon-plus', beginGroup: false });\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 5, text: this.txtProduktHinzufuegen, icon: 'glyphicon glyphicon-plus', beginGroup: false });\r\n }\r\n this.menuItems.push({ id: 7, text: this.txtKategorieLoeschen, icon: 'glyphicon glyphicon-trash', beginGroup: true });\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 10, text: this.txtKategorieKopieren, icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n }\r\n //this.menuItems.push({ id: 11, text: \"Kategorie ausschneiden\", icon: 'glyphicon glyphicon-copy', beginGroup: false });\r\n\r\n this.modelService.catalogService.loadClipboard().subscribe(\r\n () => {\r\n if (this.modelService.catalogService.clipboard != null) {\r\n var clipboard = this.modelService.catalogService.clipboard;\r\n if (clipboard.content == \"pro\" && !this.isVirtualCatalog()) {\r\n this.menuItems.push(\r\n { id: 6, text: this.txtProduktEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true });\r\n }\r\n if (clipboard.content == \"grp\" && !this.isVirtualCatalog()) {\r\n this.menuItems.push(\r\n { id: 6, text: this.txtKategorieEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true });\r\n }\r\n if (clipboard.content == \"cat\" && !this.isVirtualCatalog()) {\r\n this.menuItems.push(\r\n { id: 22, text: this.txtKatalogEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true });\r\n }\r\n }\r\n }\r\n );\r\n //}\r\n break;\r\n\r\n case \"pro\":\r\n //if (this.canView('rightclickCatalog')) { // unnötig\r\n this.menuItems = [];\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 5, text: this.txtVarianteHinzufuegen, icon: 'glyphicon glyphicon-plus', beginGroup: true });\r\n this.menuItems.push({ id: 8, text: this.txtProduktDuplizieren, icon: 'glyphicon glyphicon-duplicate', beginGroup: false });\r\n }\r\n this.menuItems.push({ id: 0, text: this.txtProduktLoeschen, icon: 'glyphicon glyphicon-trash', beginGroup: true });\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 12, text: this.txtProduktKopieren, icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n }\r\n\r\n if (isChild) {\r\n this.menuItems = [];\r\n if (!this.isVirtualCatalog()) {\r\n this.menuItems.push({ id: 8, text: this.txtProduktDuplizieren, icon: 'glyphicon glyphicon-duplicate', beginGroup: false });\r\n this.menuItems.push({ id: 0, text: this.txtProduktLoeschen, icon: 'glyphicon glyphicon-trash', beginGroup: true });\r\n this.menuItems.push({ id: 12, text: this.txtProduktKopieren, icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n }\r\n }\r\n if (!isChild) {\r\n this.modelService.catalogService.loadClipboard().subscribe(\r\n () => {\r\n if (this.modelService.catalogService.clipboard != null) {\r\n var clipboard = this.modelService.catalogService.clipboard;\r\n if (clipboard.content == \"pro\" && !(clipboard.isMaster && (this.modelService.catalogService.product == null || this.product.productCount > 0))) {\r\n this.menuItems.push(\r\n {\r\n id: 9, text: this.txtProduktEinfuegen, icon: 'glyphicon glyphicon-paste', beginGroup: true\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //}\r\n break;\r\n }\r\n\r\n } else if (this.massDataChange) {\r\n switch (type) {\r\n case \"pro\":\r\n this.menuItems.push({ id: 24, text: this.translate.instant(\"Als Vorlage benutzen\"), icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n break;\r\n case \"grp\":\r\n this.menuItems.push({ id: 25, text: this.translate.instant(\"Vorlagen benutzten\"), icon: 'glyphicon glyphicon-copy', beginGroup: true });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n showTranslateBox() {\r\n if (!this.modelService.catalogService.catalog) {\r\n return false;\r\n }\r\n\r\n return this.modelService.loginService.hasAddonTranslate &&\r\n this.modelService.catalogService.catalog.language.toLowerCase() ==\r\n this.modelService.loginService.currentCustomer.defaultLanguage.toLowerCase();\r\n }\r\n\r\n get fullScreen() {\r\n return this.modelService.catalogService.viewService.fullScreen;\r\n }\r\n\r\n set fullScreen(value: boolean) {\r\n this.modelService.catalogService.viewService.fullScreen = value;\r\n }\r\n\r\n showUserActionWindow() {\r\n this.modelService.catalogService.showUserAction = true;\r\n }\r\n\r\n set showUserAction(value) {\r\n this.modelService.catalogService.showUserAction = value;\r\n }\r\n\r\n get showUserAction() {\r\n return this.modelService.catalogService.showUserAction;\r\n }\r\n\r\n userActionWindow() {\r\n this.modelService.catalogService.viewService.fullScreen = false;\r\n }\r\n userActionFullScreen() {\r\n this.modelService.catalogService.viewService.fullScreen = true;\r\n }\r\n\r\n hideUserAction() {\r\n this.showUserAction = false;\r\n }\r\n\r\n createChildren = async (parent) => {\r\n let parentId = parent ? parent.itemData.id : \"\";\r\n this.childs = await this.modelService.catalogService.getChilds(\r\n this.modelService.catalogService.selectedCatalogId, \r\n parentId, \r\n this.modelService.loginService.currentUser.customerId, \r\n null, \r\n this.modelService.catalogService.selectedStates,\r\n null, this.selectedStatesMode);\r\n return this.childs;\r\n };\r\n\r\n //TOOLTIPS\r\n public v: boolean[] = [false];\r\n public t: boolean[] = [false];\r\n\r\n olf(id) { this.t[id] = !this.t[id]; }\r\n\r\n ttt(id) {\r\n if (this.modelService.loginService.showToolTips) {\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n //SETTINGS\r\n get showToolTips(): boolean {\r\n return this.modelService.loginService.showToolTips;\r\n }\r\n\r\n get showProToolTips(): boolean {\r\n return this.modelService.loginService.showProToolTips;\r\n }\r\n\r\n get showPlaceHolders(): boolean {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n toggleMenu() {\r\n this.modelService.systemService.showMenu = !this.modelService.systemService.showMenu;\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);;\r\n }\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagment.canView(name);\r\n }\r\n readOnly(name: string): boolean {\r\n return !this.userManagment.canEdit(name);\r\n }\r\n\r\n treeListMode() {\r\n if (this.massDataChange || this.massGenerateKITexts)\r\n return \"multiple\";\r\n return \"single\";\r\n }\r\n\r\n public emptyProduct: Product = new Product();\r\n\r\n setEmptyProduct(product: Product) {\r\n //The Ui is bugging out because of the Search-Panel, everything needs to be deselected\r\n //and after the UI updates it needs to be selected again.\r\n //I made Devexpress-Support-Ticket for this Issue: https://supportcenter.devexpress.com/ticket/details/t1168186/treelist-using-recursive-selection-leads-to-weird-behavior-when-using-remote-operations\r\n //Also the search-panel can not be used at the moment because of that exact issue.\r\n this.treeSelectedRowKeys = [];\r\n setTimeout(() => this.treeList.instance.selectRows([this.modelService.catalogService.catalog.id], false), 2000);\r\n this.emptyProduct = product;\r\n this.emptyProduct.productLogistic = new ProductLogistic();\r\n this.massDataChange = true;\r\n this.massGenerateKITexts = false;\r\n this.buildContextMenu(false, \"\");\r\n }\r\n\r\n massCancel() {\r\n this.massDataChange = false;\r\n this.massGenerateKITexts = false;\r\n //this.refresh();\r\n if (this.isCatalogSelected) {\r\n this.treeList.instance.selectRows([this.selectedCatalogId], false);\r\n } else if (this.isCategorySelected) {\r\n this.treeList.instance.selectRows([this.selectedCategoryId], false);\r\n } else if (this.isProductSelected) {\r\n this.treeList.instance.selectRows([this.selectedProductId], false);\r\n } else {\r\n this.treeList.instance.selectRows([this.modelService.catalogService.catalog.id], false);\r\n }\r\n }\r\n\r\n showMassGenerateKITexts() {\r\n this.massGenerateKITexts = true;\r\n this.massDataChange = false;\r\n }\r\n\r\n startMassGenerateKITexts() {\r\n this.massGenerateKITexts = false;\r\n }\r\n\r\n}\r\n","<np-dialog [popupWidth]=\"1200\"\r\n [popupHeight]=\"800\"\r\n [popupTitle]=\"title\"\r\n [(popupVisible)]=\"visible\">\r\n\r\n <np-help-button>\r\n <np-help-option text=\"Wiki\" icon=\"images/Wiki.svg\" link=\"https://knowledge.nextpim.de/grundlagen?utm_source=app.nextpim.de&utm_medium=affiliate&utm_campaign=wikilink#verwendung-des-template-editors\"></np-help-option>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=VtYAW8lhN40\"></np-help-option>\r\n </np-help-button>\r\n\r\n\r\n <div slot=\"content\" class=\"w-100 h-100 d-flex flex-row\">\r\n\r\n <template-editor class=\"w-100 h-100\"\r\n [showSelector]=\"showSelector\"\r\n [exportMode]=\"exportMode\">\r\n </template-editor>\r\n\r\n <np-dialog-button *ngIf=\"templateService.importJob && showPopupButtonVisible\" slot=\"toolbar\" toolbar=\"bottom\" location=\"before\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Bestehendes Template übernehmen' | translate, onClick: showPopup }\"></np-dialog-button>\r\n\r\n <np-dialog-button *ngIf=\"templateService.importJob\" slot=\"toolbar\" toolbar=\"bottom\" location=\"after\" widget=\"dxButton\"\r\n [options]=\"{ text: 'Importieren' | translate, onClick: startImport }\"></np-dialog-button>\r\n </div>\r\n\r\n</np-dialog>\r\n\r\n\r\n\r\n<dx-popup [width]=\"600\"\r\n [height]=\"320\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Template Auswahl' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"popupVisible\">\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n\r\n <form (submit)=\"sync()\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Templatename' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box #selectBox\r\n [items]=\"templates\"\r\n [(value)]=\"selectedTemplateId\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n noDataText=\"{{ 'keine Templates im Account' | translate }}\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Standardwerte übernehmen' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{ \"Nein\" | translate }}</div>\r\n <dx-switch [(value)]=\"keepDefaultValues\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Ja\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Mappings Übernehmen' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n\r\n</dx-popup>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Template } from '../Model/Catalog/Template';\r\nimport { Message } from '../Model/System/Message';\r\nimport { ModelService } from '../Services/model.service';\r\nimport { TemplateService } from '../Services/template.service';\r\nimport { NewTemplateEditorComponent } from './template-editor.component';\r\n\r\n@Component({\r\n selector: 'template-editor-dialog',\r\n templateUrl: './template-editor-dialog.component.html',\r\n styleUrls: ['./template-editor-dialog.component.css']\r\n})\r\nexport class TemplateEditorDialogComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild(NewTemplateEditorComponent) editor: NewTemplateEditorComponent;\r\n\r\n @Input() showSelector: boolean = false;\r\n @Input() exportMode: boolean = false;\r\n\r\n private titleExport: string = \"\";\r\n private titleImport: string = \"\";\r\n private notificationSimilar: string = \"\";\r\n\r\n private _visible: boolean = false;\r\n private _popupVisible: boolean = false;\r\n\r\n private similarityRatio: number = 0;\r\n\r\n private _templates = new Array<Template>();\r\n public selectedTemplateId: string = \"\";\r\n\r\n public keepDefaultValues: boolean = true;\r\n\r\n\r\n\r\n public get visible() {\r\n return this._visible;\r\n }\r\n\r\n @Input()\r\n public set visible(val: boolean) {\r\n if (this._visible !== val) {\r\n this._visible = val;\r\n this.visibleChange.emit(val);\r\n }\r\n }\r\n\r\n @Output() public visibleChange = new EventEmitter<boolean>();\r\n\r\n\r\n\r\n public get popupVisible() {\r\n return this._popupVisible;\r\n }\r\n\r\n public set popupVisible(val: boolean) {\r\n if (this._popupVisible !== val) {\r\n this._popupVisible = val;\r\n }\r\n }\r\n\r\n public get showPopupButtonVisible() {\r\n return this.templates.length > 0;\r\n }\r\n\r\n public get showNotification() {\r\n return this.similarityRatio >= 75;\r\n }\r\n\r\n\r\n\r\n public get title() {\r\n let title = this.exportMode ? this.titleExport : this.titleImport;\r\n\r\n if (this.templateService.template) {\r\n title = title + \" - \" + this.templateService.template.name;\r\n }\r\n\r\n return title;\r\n }\r\n\r\n\r\n\r\n get templates(): Template[] {\r\n return this._templates;\r\n }\r\n\r\n\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService) {\r\n this.startImport = this.startImport.bind(this);\r\n\r\n this.sync = this.sync.bind(this);\r\n this.showPopup = this.showPopup.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.titleExport = this.translate.instant('Export Template Editor');\r\n this.titleImport = this.translate.instant('Import Template Editor');\r\n this.notificationSimilar = this.translate.instant('Es sind passende Templates zur Übernahme vorhanden.');\r\n\r\n if (this.templateService.importJob != null) {\r\n\r\n if (this.templateService.template == null || this.templateService.template == undefined || this.templateService.template.id != this.templateService.importJob.templateId) {\r\n this.templateService.getTemplateById(this.templateService.importJob.templateId)\r\n .subscribe(() => {\r\n this.prepareDropdownValuesAndDoNotification();\r\n })\r\n } else {\r\n this.prepareDropdownValuesAndDoNotification();\r\n }\r\n\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.titleExport = \"\";\r\n this.titleImport = \"\";\r\n\r\n this.similarityRatio = 0;\r\n\r\n this._templates = new Array<Template>();\r\n this.selectedTemplateId = \"\";\r\n\r\n this.keepDefaultValues = true;\r\n }\r\n\r\n\r\n\r\n public startImport() {\r\n this.templateService.startImport();\r\n }\r\n\r\n\r\n\r\n private prepareDropdownValuesAndDoNotification() {\r\n this.templateService.getTemplatesReturn()\r\n .subscribe((templates: Template[]) => {\r\n this._templates = templates;\r\n\r\n this._templates.forEach(template => {\r\n if (template.id != this.templateService.template.id) {\r\n\r\n let similar = 0;\r\n this.templateService.template.templateItems.forEach(templateItem => {\r\n let hasSimilar = template.templateItems.filter(t => t.key == templateItem.key).length > 0;\r\n if (hasSimilar) {\r\n similar++;\r\n }\r\n });\r\n\r\n let prefix = \"[ \" + similar + \" ]\";\r\n prefix = (prefix + \" \").slice(0, 10); // \"rechtsbündig\"\r\n\r\n if (template.isExportTemplate) {\r\n prefix = prefix + \" [e] \"\r\n } else {\r\n prefix = prefix + \" [i] \"\r\n }\r\n\r\n template.name = prefix + template.name;\r\n\r\n if (similar > 0) {\r\n this._templates.push(template);\r\n\r\n let ratio = this.templateService.calcSimilarityRatio(template.templateItems, this.templateService.template.templateItems);\r\n if (ratio > this.similarityRatio) {\r\n this.similarityRatio = ratio;\r\n }\r\n }\r\n\r\n }\r\n });\r\n\r\n if (this.showNotification) {\r\n this.modelService.systemService.notify(new Message(this.notificationSimilar), 2500);\r\n }\r\n });\r\n }\r\n\r\n public showPopup() {\r\n this.popupVisible = true;\r\n }\r\n\r\n public sync() {\r\n this.popupVisible = false;\r\n\r\n if (this.selectedTemplateId == \"\") {\r\n return;\r\n }\r\n\r\n let template = this._templates.filter(t => t.id == this.selectedTemplateId)[0];\r\n\r\n this.templateService.template.templateItems = this.templateService.syncTemplateItems(template.templateItems, this.templateService.template.templateItems, this.keepDefaultValues);\r\n this.templateService.updateTemplate(this.templateService.template);\r\n\r\n this.editor.templateSelected(null);\r\n\r\n this.selectedTemplateId = \"\";\r\n this.keepDefaultValues = true;\r\n }\r\n}\r\n","<div *ngIf=\"isNoLayoutPage === false\" class=\"container-fluid h-100 w-100 px-0 d-flex flex-column overflow-hidden\">\r\n <dx-toolbar id=\"toolbar\" height=\"68\" class=\"applicationbar light\">\r\n <dxi-item *ngIf=\"canChangePassword\"\r\n widget=\"dxButton\"\r\n [options]=\"menuButtonOptions\"\r\n location=\"before\">\r\n </dxi-item>\r\n <dxi-item location=\"before\"\r\n widget=\"dxButton\"\r\n locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a [routerLink]=\"['/catalogs']\">\r\n <img alt=\"nextPim Pim System\" width=\"121\" height=\"55\" src=\"/images/nextpim.svg\" style=\"margin-left: 6px;\" />\r\n </a>\r\n </div>\r\n </dxi-item>\r\n <dxi-item location=\"center\"\r\n widget=\"dxButton\"\r\n locateInMenu=\"never\"\r\n *ngIf=\"currentNavigationTitle\">\r\n <div *dxTemplate>\r\n\r\n <div class=\"d-flex flex-row justify-content-center\">\r\n <div>{{currentAccount}}</div>\r\n </div>\r\n <div class=\"d-flex flex-row justify-content-center\">\r\n <div><h6>{{currentNavigationTitle}}</h6></div>\r\n </div>\r\n\r\n </div>\r\n </dxi-item>\r\n <dxi-item *ngIf=\"isJobRunning\"\r\n widget=\"dxButton\"\r\n [options]=\"warningButtonOptions\"\r\n location=\"after\">\r\n <div *dxTemplate>\r\n <div class=\"dx-icon dx-icon-warning text-danger\" (mouseenter)=\"ttt()\" (mouseleave)=\"ttt()\" id=\"tt22\"></div>\r\n <dx-tooltip target=\"#tt22\" class=\"toolTip\" [(visible)]=\"isJobWarningVisible\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n {{ 'Es läuft gerade ein Job zum aktuell ausgewählten Katalog' | translate }}\r\n </div>\r\n </dx-tooltip>\r\n\r\n\r\n </div>\r\n </dxi-item>\r\n <dxi-item *ngIf=\"canView('jobs')\"\r\n widget=\"dxButton\"\r\n [options]=\"jobsButtonOptions\"\r\n location=\"after\">\r\n </dxi-item>\r\n\r\n <dxi-item *ngIf=\"canView('jobs')\"\r\n widget=\"dxButton\"\r\n [(options)]=\"newsButtonOptions\"\r\n location=\"after\">\r\n <div *dxTemplate>\r\n <dx-button icon=\"email\" (onClick)=\"showNews()\"></dx-button>\r\n <div *ngIf=\"hasNewNews && canView('newsBadge')\">\r\n <span class=\"badge\">0</span>\r\n </div>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item widget=\"dxDropDownButton\" location=\"after\">\r\n <div *dxTemplate=\"let toolbaritem of 'helpButtonTemplate'\">\r\n <np-help-button>\r\n <np-help-option text=\"Wiki\" icon=\"images/Wiki.svg\" link=\"https://knowledge.nextpim.de/?utm_source=app.nextpim.de&utm_medium=affiliate&utm_campaign=wikilink\"></np-help-option>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/playlist?list=PLrMcDu_lCAZyWl8MclUg40YoWnWXl4Lcr\"></np-help-option>\r\n </np-help-button>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item *ngIf=\"canChangePassword\"\r\n widget=\"dxButton\"\r\n [options]=\"accountButtonOptions\"\r\n location=\"after\">\r\n </dxi-item>\r\n </dx-toolbar>\r\n\r\n <dx-drawer class=\"flex-fill drawer dx-theme-accent-as-background-color\"\r\n template=\"template\"\r\n [opened]=\"isOpened()\"\r\n [minSize]=\"canChangePassword ? 52 : 0\"\r\n [maxSize]=\"300\"\r\n revealMode=\"expand\"\r\n openedStateMode=\"shrink\">\r\n <div *dxTemplate=\"let data of 'template'\" style=\"width: 300px; height: 100%\"\r\n (mouseenter)=\"drawerMouseEnter($event)\"\r\n (mouseleave)=\"drawerMouseLeave($event)\">\r\n <dx-list class=\"navigation flex-fill\"\r\n [dataSource]=\"navigation\"\r\n [hoverStateEnabled]=\"false\"\r\n [activeStateEnabled]=\"false\"\r\n [focusStateEnabled]=\"false\"\r\n selectionMode=\"single\"\r\n [selectedItems]=\"selectedNavigationItems\">\r\n <div *dxTemplate=\"let item of 'item'\">\r\n <a [routerLink]=\"['/' + item.path]\" title=\"{{item.text | translate}}\">\r\n <div class=\"d-flex flex-row\">\r\n <span style=\"width: 40px; display: inline-flex; align-items: center;\" class=\"{{item.icon}}\"></span>\r\n <span style=\"display: inline-flex; align-items: center;\">{{item.text | translate}}</span>\r\n </div>\r\n </a>\r\n </div>\r\n </dx-list>\r\n </div>\r\n <div id=\"content\" class=\"h-100 p-0 dx-theme-background-color\"><router-outlet></router-outlet></div>\r\n </dx-drawer>\r\n</div>\r\n\r\n\r\n\r\n<!--\r\n<div class=\"accountMenu\">\r\n <a id=\"accountToolTip\" (click)=\"showAccount()\" title=\"Account: {{account}}\">\r\n <div>\r\n <span class=\"loggedin\">{{ 'Angemeldet als' | translate }}:<br /></span>\r\n {{userName}}<br />\r\n ({{account}})\r\n </div>\r\n </a>\r\n</div>\r\n<div class=\"jobsMenu\">\r\n <a id=\"jobsToolTip\" *ngIf=\"canChangePassword\" (click)=\"showJobs()\">\r\n {{ 'Jobs' | translate }} <img src=\"/images/ikon_Arrow_down.png\" class=\"arrowDown\" />\r\n </a>\r\n</div>\r\n-->\r\n\r\n\r\n\r\n<dx-popover target=\"#jobsToolTip\"\r\n position=\"bottom\"\r\n [showTitle]=\"true\"\r\n [width]=\"'75%'\"\r\n title=\"{{ 'Hintergrund Jobs' | translate }}\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"jobsVisible\">\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <job-list [storeName]=\"'JobListStateNewUI_V4_JOBLIST'\"\r\n [jobListMode]=\"true\"\r\n [catalogMode]=\"false\"\r\n [adminMode]=\"false\">\r\n <!-- always choose ONE mode!! -->\r\n </job-list>\r\n </div>\r\n</dx-popover>\r\n\r\n<dx-popover target=\"#accountToolTip\" class=\"accountMenuPopover\" id=\"account\"\r\n position=\"bottom\"\r\n [width]=\"210\"\r\n [showTitle]=\"false\"\r\n [showCloseButton]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n (onHiding)=\"hideAccountMenu()\"\r\n [(visible)]=\"accountMenuVisible\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <a (click)=\"openSupportPage()\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-envelope\"></span> {{ 'Support' | translate }}\r\n </a>\r\n <a [routerLink]=\"['/Account/myAccount']\" (click)=\"hideAccountMenu()\" title=\"Account: {{account}}\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-user\"></span> {{ 'Account' | translate }}\r\n </a>\r\n <a [routerLink]=\"['/Account/changePassword']\" (click)=\"hideAccountMenu()\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-lock\"></span> {{ 'Passwort ändern' | translate }}\r\n </a>\r\n <a (click)=\"logout()\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-off\"></span> {{ 'Logout' | translate }}\r\n </a>\r\n <a *ngIf=\"isAdmin()\" [routerLink]=\"['/admin']\" (click)=\"hideAccountMenu()\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-cog\"></span> {{ 'ADMIN' | translate }}\r\n </a>\r\n <a href=\"https://www.youtube.com/channel/UCCLj1jMNXqZhrU_xVUHULEA\" target=\"_blank\" (click)=\"hideAccountMenu()\" class=\"menuButton\">\r\n <span class=\"glyphicon glyphicon-facetime-video\"></span> {{ 'Videos' | translate }}\r\n </a>\r\n </div>\r\n</dx-popover>\r\n\r\n\r\n\r\n<template-editor-dialog *ngIf=\"templateService.importTemplateEditorVisible\"\r\n [(visible)]=\"templateService.importTemplateEditorVisible\"\r\n [showSelector]=\"false\"\r\n [exportMode]=\"false\">\r\n</template-editor-dialog>\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { dxButtonOptions } from \"devextreme/ui/button\";\r\nimport { Router, RouterStateSnapshot } from \"@angular/router\";\r\nimport { TemplateService } from \"../../Services/template.service\";\r\nimport { NewsService } from \"../../Services/news.service\";\r\nimport { UserManagementService } from \"../../Services/userManagment.service\";\r\n\r\n@Component({\r\n selector: \"menu\",\r\n templateUrl: \"menu.component.html\",\r\n styleUrls: [\"menu.component.css\"]\r\n})\r\nexport class MenuComponent implements OnInit, OnDestroy {\r\n\r\n drawerTimeout: NodeJS.Timeout = undefined;\r\n\r\n drawerOpened: boolean = false;\r\n drawerFocused: boolean = false;\r\n menuButtonOptions: dxButtonOptions;\r\n jobsButtonOptions: dxButtonOptions;\r\n newsButtonOptions: dxButtonOptions;\r\n accountButtonOptions: dxButtonOptions;\r\n warningButtonOptions: dxButtonOptions;\r\n\r\n navigationItems: Array<Record<string, unknown>> = [];\r\n\r\n public newImport: boolean = true;\r\n public newNews: boolean = false;\r\n\r\n loggedInSubscription: any = null;\r\n\r\n\r\n constructor(private router: Router, public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService, public newsService: NewsService,\r\n public userManagemant: UserManagementService) {\r\n this.drawerMouseEnter = this.drawerMouseEnter.bind(this);\r\n this.drawerMouseLeave = this.drawerMouseLeave.bind(this);\r\n this.updateMenuButtons = this.updateMenuButtons.bind(this);\r\n this.onLoggedIn = this.onLoggedIn.bind(this);\r\n this.showNews = this.showNews.bind(this);\r\n this.logout = this.logout.bind(this);\r\n\r\n this.menuButtonOptions = {\r\n icon: \"menu\",\r\n onClick: () => {\r\n this.drawerOpened = !this.drawerOpened;\r\n }\r\n };\r\n\r\n this.accountButtonOptions = {\r\n elementAttr: { id: 'accountToolTip' },\r\n hint: `Account: ${this.account}`,\r\n icon: \"user\",\r\n onClick: this.showAccount.bind(this)\r\n };\r\n\r\n translate.get('Jobs').subscribe(value => {\r\n this.jobsButtonOptions = {\r\n elementAttr: { id: 'jobsToolTip' },\r\n hint: value,\r\n icon: \"runner\",\r\n onClick: this.showJobs.bind(this)\r\n };\r\n });\r\n\r\n this.newsButtonOptions = {\r\n elementAttr: { id: 'newsButtonOptions' },\r\n icon: \"email\",\r\n type: \"normal\",\r\n onClick: this.showNews.bind(this)\r\n };\r\n\r\n this.navigationItems.push({ id: 1, text: this.translate.instant(\"Kataloge\"), icon: \"glyphicon glyphicon-book\", path: \"catalogs\", visible: false });\r\n this.navigationItems.push({ id: 2, text: this.translate.instant(\"Suche\"), icon: \"glyphicon glyphicon-search\", path: \"search\", visible: false });\r\n this.navigationItems.push({ id: 15, text: this.translate.instant(\"Kataloge kombinieren\"), icon: \"glyphicon glyphicon-transfer\", path: \"combineCatalogs\", visible: false });\r\n this.navigationItems.push({ id: 12, text: this.translate.instant(\"Excel Templates\"), icon: \"glyphicon glyphicon-list-alt\", path: \"templates\", visible: false });\r\n this.navigationItems.push({ id: 4, text: this.translate.instant(\"Übersetzungen\"), icon: \"glyphicon glyphicon-random\", path: \"translation\", visible: false });\r\n this.navigationItems.push({ id: 5, text: this.translate.instant(\"Klassifizierung\"), icon: \"glyphicon glyphicon-tasks\", path: \"classification\", visible: false });\r\n this.navigationItems.push({ id: 6, text: this.translate.instant(\"Gefahrstoffklassen\"), icon: \"glyphicon glyphicon-warning-sign\", path: \"hazmatclasses\", visible: false });\r\n this.navigationItems.push({ id: 7, text: this.translate.instant(\"Garantieklassen\"), icon: \"glyphicon glyphicon-list-alt\", path: \"warrantyClasses\", visible: false });\r\n this.navigationItems.push({ id: 8, text: this.translate.instant(\"Update Templates\"), icon: \"glyphicon glyphicon-equalizer\", path: \"updateTemplates\", visible: false });\r\n this.navigationItems.push({ id: 9, text: this.translate.instant(\"Status\"), icon: \"glyphicon glyphicon-filter\", path: \"states\", visible: false });\r\n this.navigationItems.push({ id: 10, text: this.translate.instant(\"Produktdatenblatt Designer\"), icon: \"glyphicon glyphicon-print\", path: \"productReportDesigner\", visible: false });\r\n this.navigationItems.push({ id: 11, text: this.translate.instant(\"Feature Mapping\"), icon: \"glyphicon glyphicon-random\", path: \"featureMapping\", visible: false });\r\n this.navigationItems.push({ id: 14, text: this.translate.instant(\"Artikelnummern Mapping\"), icon: \"glyphicon glyphicon-tag\", path: \"supplierPidMapping\", visible: false });\r\n this.navigationItems.push({ id: 17, text: this.translate.instant(\"EDE Sortiment\"), icon: \"glyphicon glyphicon-book\", path: \"edeSortiment\", visible: false });\r\n this.navigationItems.push({ id: 18, text: this.translate.instant(\"Wawi Listen\"), icon: \"glyphicon glyphicon-book\", path: \"wawiList\", visible: false });\r\n this.navigationItems.push({ id: 19, text: this.translate.instant(\"Anlernsets\"), icon: \"glyphicon glyphicon-cloud\", path: \"teachingSets\", visible: false });\r\n this.navigationItems.push({ id: 20, text: this.translate.instant(\"Multishop Export\"), icon: \"glyphicon glyphicon-export\", path: \"multishopExport\", visible: false });\r\n this.navigationItems.push({ id: 22, text: this.translate.instant(\"Features\"), icon: \"glyphicon glyphicon-book\", path: \"validfeature\", visible: false });\r\n this.navigationItems.push({ id: 21, text: this.translate.instant(\"Validierung\"), icon: \"glyphicon glyphicon-ok-sign\", path: \"validation\", visible: false });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.modelService.loginService.loggedIn)\r\n this.onLoggedIn();\r\n else\r\n this.loggedInSubscription = this.modelService.loginService.onLoggedIn.subscribe(() => this.onLoggedIn());\r\n\r\n if (this.modelService.router.url == \"/\" || this.modelService.router.url == \"\") {\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n try {\r\n if (this.loggedInSubscription != null)\r\n this.loggedInSubscription.unsubscribe();\r\n }\r\n catch{}\r\n }\r\n\r\n isJobWarningVisible: boolean = false;\r\n\r\n ttt() {\r\n this.isJobWarningVisible = !this.isJobWarningVisible;\r\n }\r\n\r\n get isJobRunning(): boolean {\r\n return this.modelService.catalogService.isJobRunning;\r\n }\r\n\r\n drawerMouseEnter(e) {\r\n const self = this;\r\n\r\n this.drawerTimeout = setTimeout(() => {\r\n self.drawerFocused = true;\r\n\r\n clearTimeout(self.drawerTimeout);\r\n self.drawerTimeout = undefined;\r\n }, 1000);\r\n }\r\n\r\n drawerMouseLeave(e) {\r\n const self = this;\r\n\r\n if (this.drawerTimeout) {\r\n clearTimeout(self.drawerTimeout);\r\n self.drawerTimeout = undefined;\r\n }\r\n\r\n this.drawerFocused = false;\r\n }\r\n\r\n loadView(e) {\r\n this.router.navigate([e.addedItems[0].filePath]);\r\n }\r\n\r\n showJobs() {\r\n this.modelService.catalogService.viewService.jobsVisible = true;\r\n }\r\n\r\n public showNews() {\r\n this.modelService.router.navigate([\"/newsArticle\"]);\r\n }\r\n\r\n public switchImport() {\r\n if (this.newImport) {\r\n this.newImport = false;\r\n } else {\r\n this.newImport = true;\r\n }\r\n }\r\n\r\n onLoggedIn() {\r\n this.updateMenuButtons();\r\n this.modelService.loginService.notifyTestAccount();\r\n this.modelService.loginService.onNewNewsAmountChanged.subscribe(() => {\r\n this.newsService.checkNewNews();\r\n });\r\n }\r\n\r\n updateMenuButtons() {\r\n if (this.modelService.loginService.currentCustomer) {\r\n this.accountButtonOptions = {\r\n elementAttr: { id: 'accountToolTip' },\r\n hint: `Account: ${this.account}`,\r\n icon: \"user\",\r\n onClick: this.showAccount.bind(this)\r\n };\r\n } else {\r\n this.accountButtonOptions = {\r\n elementAttr: { id: 'accountToolTip' },\r\n hint: `Account: Not logged in`,\r\n icon: \"user\",\r\n onClick: this.showAccount.bind(this)\r\n };\r\n }\r\n\r\n this.translate.get('Jobs').subscribe(value => {\r\n this.jobsButtonOptions = {\r\n elementAttr: { id: 'jobsToolTip' },\r\n hint: value,\r\n icon: \"runner\",\r\n onClick: this.showJobs.bind(this)\r\n };\r\n });\r\n\r\n this.newsButtonOptions = {\r\n elementAttr: { id: 'newsButtonOptions' },\r\n icon: \"email\",\r\n type: \"normal\",\r\n onClick: this.showNews.bind(this)\r\n };\r\n }\r\n\r\n get navigation() {\r\n const userLoggedIn = (this.modelService.loginService.currentUser) ? true : false;\r\n\r\n this.navigationItems.find(ni => ni.id === 1).visible = userLoggedIn;\r\n this.navigationItems.find(ni => ni.id === 2).visible = userLoggedIn && this.modelService.loginService.hasAddonSEARCH;\r\n\r\n //this.navigationItems.find(ni => ni.id === 3).visible = userLoggedIn && this.modelService.loginService.hasAddonEXCEL_TEMPLATE;\r\n this.navigationItems.find(ni => ni.id === 12).visible = userLoggedIn && this.modelService.loginService.hasAddonEXCEL_TEMPLATE && this.canView(\"menuItems\");\r\n //this.navigationItems.find(ni => ni.id === 13).visible = userLoggedIn && this.modelService.loginService.hasAddonDEVELOPMENT; // Sandbox - KEIN finales Addon!!\r\n this.navigationItems.find(ni => ni.id === 4).visible = userLoggedIn && this.modelService.loginService.hasAddonTranslate && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 5).visible = userLoggedIn && this.isAdmin() && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 6).visible = userLoggedIn && this.modelService.loginService.hasAddonLEGALITY && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 7).visible = userLoggedIn && this.modelService.loginService.hasAddonLEGALITY && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 8).visible = userLoggedIn && this.modelService.loginService.hasAddonACTIONS && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 9).visible = userLoggedIn && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 10).visible = userLoggedIn && this.modelService.loginService.hasAddonREPORTPRODUCTDATASHEET && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 11).visible = userLoggedIn && this.modelService.loginService.hasAddonFEATURE_MAPPING && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 14).visible = userLoggedIn && this.modelService.loginService.hasAddonWawiErp && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 15).visible = userLoggedIn && this.canView(\"menuItems\");\r\n //this.navigationItems.find(ni => ni.id === 16).visible = userLoggedIn && this.modelService.loginService.hasAddonGevis && this.canView(\"gevisMerkmalscodeMappings\");\r\n this.navigationItems.find(ni => ni.id === 17).visible = userLoggedIn && this.modelService.loginService.hasAddonEDESortimentsAbo && this.canView(\"EDESoritmentsAbo\");\r\n this.navigationItems.find(ni => ni.id === 18).visible = userLoggedIn && (this.modelService.loginService.hasAddonWawiErp || this.modelService.loginService.hasAddonEXCEL_TEMPLATE) && this.canView(\"WawiList\");\r\n this.navigationItems.find(ni => ni.id === 19).visible = userLoggedIn && this.modelService.loginService.hasAddonKI_TEXTS && this.modelService.loginService.isAdmin && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 20).visible = userLoggedIn && this.modelService.loginService.hasAddonOSG && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 22).visible = userLoggedIn && this.canView(\"menuItems\");\r\n this.navigationItems.find(ni => ni.id === 21).visible = userLoggedIn && this.canView(\"menuItems\") && this.modelService.loginService.isManager;\r\n return this.navigationItems;\r\n }\r\n\r\n get selectedNavigationItems() {\r\n return this.navigationItems.filter(ni => this.router.url?.startsWith(`/${ni.path}`));\r\n }\r\n\r\n get currentNavigationTitle() {\r\n\r\n if (this.modelService.systemService.currentNavigationTitle)\r\n return this.modelService.systemService.currentNavigationTitle;\r\n\r\n return this.navigationItems.find(ni => this.router.url?.startsWith(`/${ni.path}`))?.text;\r\n }\r\n\r\n get jobsVisible(): boolean {\r\n return this.modelService.catalogService.viewService.jobsVisible;\r\n }\r\n\r\n set jobsVisible(value: boolean) {\r\n this.modelService.catalogService.viewService.jobsVisible = value;\r\n }\r\n\r\n get currentUser() {\r\n if (this.modelService.loginService.currentUser) {\r\n return this.modelService.loginService.currentUser;\r\n } else\r\n return \"\";\r\n };\r\n\r\n get currentAccount() {\r\n if (this.modelService.loginService.currentCustomer?.name) {\r\n return this.modelService.loginService.currentCustomer.name;\r\n }\r\n return \"\";\r\n }\r\n\r\n\r\n get canChangePassword() {\r\n if (this.modelService.loginService.currentUser) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get isNoLayoutPage(): boolean {\r\n if (this.modelService.router.url.startsWith(\"/getProduct\")) {\r\n return true;\r\n }\r\n if (this.modelService.router.url.startsWith(\"/printChart\")) {\r\n return true;\r\n }\r\n\r\n\r\n return false;\r\n\r\n }\r\n\r\n get canLanguages() {\r\n if (this.modelService.loginService.currentUser) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get canAccount() {\r\n if (this.modelService.loginService.currentUser) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get canLayers() {\r\n if (this.modelService.loginService.currentUser) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n //Style\r\n\r\n get getViewPort() {\r\n return this.modelService.loginService.getViewPort();\r\n }\r\n\r\n //ImportTemplate\r\n\r\n get fullScreen() {\r\n return this.modelService.catalogService.viewService.fullScreen;\r\n }\r\n\r\n public toFullScreen() {\r\n this.fullScreen = true;\r\n }\r\n\r\n\r\n public toWindow() {\r\n this.fullScreen = false;\r\n }\r\n\r\n set fullScreen(value) {\r\n this.modelService.catalogService.viewService.fullScreen = value;\r\n }\r\n\r\n get accountMenuVisible() {\r\n return this.modelService.catalogService.accountMenuVisible;\r\n }\r\n\r\n showAccount() {\r\n this.modelService.catalogService.accountMenuVisible = true;\r\n }\r\n\r\n hideAccountMenu() {\r\n this.modelService.catalogService.accountMenuVisible = false;\r\n }\r\n\r\n logout() {\r\n this.modelService.loginService.logout();\r\n this.modelService.router.navigate([\"/login\"]);\r\n }\r\n\r\n set accountMenuVisible(value: boolean) {\r\n this.modelService.catalogService.accountMenuVisible = value;\r\n }\r\n\r\n/* get importTemplateVisible() {\r\n return this.modelService.catalogService.importTemplateVisible;\r\n }\r\n\r\n set importTemplateVisible(value: boolean) {\r\n this.modelService.catalogService.importTemplateVisible = value;\r\n }\r\n\r\n hideImportTemplate() {\r\n this.modelService.catalogService.importTemplateVisible = false;\r\n }\r\n*/\r\n get userName() {\r\n if (this.modelService.loginService.currentUser == null)\r\n return \"\";\r\n var name = this.modelService.loginService.currentUser.firstName + \" \" + this.modelService.loginService.currentUser.lastName;\r\n\r\n if (this.isAdmin()) {\r\n name = name + \" (ADMIN)\";\r\n }\r\n\r\n return name;\r\n }\r\n\r\n isOpened(): boolean {\r\n return this.drawerOpened || this.drawerFocused;\r\n }\r\n\r\n isAdmin(): boolean {\r\n if (this.modelService.loginService.currentUser == null)\r\n return false;\r\n return this.modelService.loginService.currentUser.currentClaim == \"ADMIN\";\r\n }\r\n\r\n get account() {\r\n if (this.modelService.loginService.currentCustomer)\r\n return this.modelService.loginService.currentCustomer.name;\r\n return \"\";\r\n }\r\n\r\n public templateEditorVisible: boolean = false;\r\n\r\n hideTemplateEditor() {\r\n this.templateEditorVisible = false;\r\n }\r\n\r\n showTemplateEditor() {\r\n this.templateEditorVisible = true;\r\n }\r\n\r\n get hasNewNews() {\r\n return this.newsService.newNews;\r\n }\r\n\r\n canView(name: string): boolean {\r\n return this.userManagemant.canView(name);\r\n }\r\n\r\n openSupportPage() {\r\n let email = this.modelService.loginService.currentUser.email;\r\n let lastName = this.modelService.loginService.currentUser.lastName;\r\n let firstName = this.modelService.loginService.currentUser.firstName;\r\n let link = `https://knowledge.nextpim.de/kb-tickets/new?email=${email}&lastname=${lastName}&firstname=${firstName}`;\r\n window.open(link, \"_blank\");\r\n this.hideAccountMenu();\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\n\r\n@Component({\r\n selector: \"impressum\",\r\n templateUrl: \"impressum.component.html\"\r\n})\r\nexport class ImpressumComponent {\r\n\r\n constructor(private modelService: ModelService, public translate: TranslateService) {\r\n this.translate.get('Impressum').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/catalogs']\" look=\"dark\" route=\"['/catalogs']\"></logo> \r\n <div slot=\"content\" class=\"h-100 p-3 w-75 mx-auto\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <h1> {{ 'Impressum' | translate }}</h1>\r\n <br /><br />\r\n {{ 'Verantwortlich für den Inhalt dieser Webseite ist die' | translate }}\r\n </div>\r\n </div>\r\n <br />\r\n <div class=\"row\">\r\n <div class=\"col-md-12 bold\">\r\n <a href=\"http://nextpim.de\" target=\"_blank\">\r\n nextPIM GmbH\r\n </a>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 bold\">\r\n Von Galen Straße 2\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 bold\">\r\n 48477 Hörstel\r\n </div>\r\n </div>\r\n <br />\r\n <div class=\"row\">\r\n <div class=\"col-md-2 bold\">\r\n {{ 'Email' | translate }}:\r\n </div>\r\n <div class=\"col-md-4\">\r\n mail@nextpim.de\r\n </div>\r\n </div>\r\n <br />\r\n <div class=\"row\">\r\n <div class=\"col-md-2 bold\">\r\n {{ 'Rechtsform' | translate }}:\r\n </div>\r\n <div class=\"col-md-4\">\r\n {{ 'Gesellschaft mit beschränkter Haftung' | translate }}\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2 bold\">\r\n {{ 'Geschäftsführer' | translate }}:\r\n </div>\r\n <div class=\"col-md-4\">\r\n Thomas Reimelt\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2 bold\">\r\n {{ 'Registergericht' | translate }}:\r\n </div>\r\n <div class=\"col-md-4\">\r\n Amtsgericht Steinfurt\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2 bold\">\r\n {{ 'Registernummer' | translate }}:\r\n </div>\r\n <div class=\"col-md-4\">\r\n HRB 12233\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { LoginService } from './../login.service';\r\nimport { StringResponse } from '../../Model/Dto/StringResponse';\r\nimport { TransferCatalogItem } from '../../Model/Dto/CombineCatalog/TransferCatalogItem';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CombineCatalogService {\r\n constructor(private http: HttpClient, public loginService: LoginService) { }\r\n\r\n public referenceItems(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/ReferenceItems\", model);\r\n }\r\n\r\n public referenceProducts(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/ReferenceProducts\", model);\r\n }\r\n\r\n public moveItems(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/MoveItems\", model);\r\n }\r\n\r\n public moveProducts(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/MoveProducts\", model);\r\n }\r\n\r\n public copyItems(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/CopyItems\", model);\r\n }\r\n\r\n public copyCategories(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/CopyCategories\", model);\r\n }\r\n\r\n public copyProducts(model: TransferCatalogItem): Observable<StringResponse> {\r\n return this.http.post<StringResponse>(\"api/CombineCatalog/CopyProducts\", model);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ValidFeatureValue } from \"../Model/ValidFeatureValue\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ValidFeature } from \"../Model/ValidFeature\";\r\n\r\n@Component({\r\n selector: \"validFeatureValue\",\r\n templateUrl: \"validFeatureValue.component.html\"\r\n})\r\nexport class ValidFeatureValueComponent implements OnInit{\r\n @Input() validFeature: ValidFeature;\r\n\r\n validFeatureValues: ValidFeatureValue[] = [];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n this.modelService.validFeatureService.getValues(this.validFeature.id, this.modelService.loginService.currentUser.customerId).subscribe(\r\n (result: ValidFeatureValue[]) => {\r\n this.validFeatureValues = result\r\n });\r\n }\r\n\r\n}\r\n","<div slot=\"content\" class=\"h-100 p-2\">\r\n <div class=\"h-100 w-100 mx-auto\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n [dataSource]=\"validFeatureValues\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\">\r\n <dxi-column dataField=\"value\" caption=\"{{ 'Wert' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n</div>\r\n","<div slot=\"content\" class=\"h-100 p-2\">\r\n <div class=\"h-100 w-100 mx-auto\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n [dataSource]=\"ValidFeatures\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"unit\" caption=\"{{ 'Einheit' | translate }}\"></dxi-column>\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n <div *dxTemplate=\"let validFeature of 'detail'\">\r\n <validFeatureValue [validFeature]=\"validFeature.data\" class=\"flex-fill overflow-hidden\"></validFeatureValue>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ValidFeature } from \"../Model/ValidFeature\";\r\nimport { ValidFeatureValue } from \"../Model/ValidFeatureValue\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n@Component({\r\n selector: \"validFeature\",\r\n templateUrl: \"validFeature.component.html\"\r\n})\r\nexport class ValidFeatureComponent {\r\n @Input() ValidFeatures: ValidFeature[];\r\n\r\n validFeatureValues: ValidFeatureValue[] = []\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n }\r\n\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ValidFeatureSystem } from \"../Model/ValidFeatureSystem\";\r\nimport { ValidFeature } from \"../Model/ValidFeature\";\r\n\r\n\r\n@Component({\r\n selector: \"validFeatureSystem\",\r\n templateUrl: \"validFeatureSystem.component.html\"\r\n})\r\nexport class ValidFeatureSystemComponent {\r\n\r\n\r\n validFeatureSystems: ValidFeatureSystem[] = [];\r\n validFeatures: ValidFeature[] = [];\r\n selectedValidFeatureSystem: ValidFeatureSystem = new ValidFeatureSystem()\r\n\r\n constructor(public modelService: ModelService) {\r\n this.modelService.validFeatureService.getSystems(this.modelService.loginService.currentUser.customerId).subscribe(\r\n (result: ValidFeatureSystem[]) => {\r\n this.validFeatureSystems = result\r\n });\r\n }\r\n\r\n onRowClick(event: any) {\r\n this.modelService.validFeatureService.getFeatures(event.data.id, this.modelService.loginService.currentUser.customerId).subscribe(\r\n (result: ValidFeature[]) => {\r\n this.validFeatures = result\r\n });\r\n this.selectedValidFeatureSystem.name = event.data.name\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div slot=\"content\" class=\"h-100 p-2\">\r\n <div class=\"h-100 w-100 mx-auto\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n [dataSource]=\"validFeatureSystems\"\r\n [hoverStateEnabled]=\"true\"\r\n [showBorders]=\"true\"\r\n [selectedRowKeys]=\"[]\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n (onRowClick)=\"onRowClick($event)\">\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"false\" [allowSearch]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Featuresystem suchen' | translate }}\" width=\"250\"></dxo-search-panel>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column>\r\n <div slot=\"content\" class=\"h-100 d-flex flex-column\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ selectedValidFeatureSystem.name }}</h4>\r\n </div>\r\n </div>\r\n <validFeature [ValidFeatures]=\"validFeatures\" class=\"flex-fill overflow-hidden\"></validFeature>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","export class ClassificationSystem {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n public language?: string,\r\n public date?: Date,\r\n public version?: number\r\n ) {\r\n }\r\n}\r\n","<fullscreen-page> \r\n <content-column look=\"dark\"> \r\n <div slot=\"content\" class=\"h-100 p-2\">\r\n <div class=\"h-100 w-100 mx-auto\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"onCsChanged($event)\"\r\n (onRowRemoved)=\"onCsRemoved($event)\">\r\n\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"true\"\r\n [allowDeleting]=\"true\"\r\n [allowAdding]=\"false\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie die Klassifikation wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Klassifikation löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" class=\"treeSearch\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"ClassificationSystemStateNewUIV2\"></dxo-state-storing>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'addClassificationButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Klassifizierung' | translate }}\" (onClick)=\"onInsertCs()\" hint=\"{{ 'Neues Klassifikationssystem' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <dxi-column dataField=\"id\" caption=\"\" [allowEditing]=\"false\" [width]=\"30\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"cellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let d of 'cellTemplate'\">\r\n <a (click)=\"onEditDetailsClicked(d.data)\" class=\"dx-link-edit dx-icon-edit link\" title=\"{{ 'Klassifikation editieren' | translate }}\"></a>\r\n </div>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Klassifizierungssystem' | translate }}\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"version\" caption=\"{{ 'Version' | translate }}\" [allowEditing]=\"false\" [width]=\"65\" [allowFiltering]=\"false\" [allowSorting]=\"false\" ></dxi-column>\r\n \r\n <dxi-column dataField=\"date\" caption=\"{{ 'Datum' | translate }}\" [allowEditing]=\"false\" [width]=\"90\" [allowFiltering]=\"false\" [allowSorting]=\"false\" ></dxi-column>\r\n \r\n <dxi-column dataField=\"language\" caption=\"{{ 'Sprache' | translate }}\" [allowEditing]=\"false\" [width]=\"80\" [allowFiltering]=\"false\" [allowSorting]=\"false\" ></dxi-column>\r\n \r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ClassificationSystem } from \"../Model/classification/ClassificationSystem\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { StartAction } from \"../Model/Dto/StartAction\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"classificationSystem\",\r\n templateUrl: \"classificationSystem.component.html\"\r\n})\r\nexport class ClassificationSystemComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.translate.get('Klassifikationssysteme').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n/* if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }*/\r\n\r\n this.modelService.classificationService.getSystems();\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addClassificationButtonTemplate',\r\n });\r\n }\r\n\r\n onInsertCs() {\r\n\r\n let system = new ClassificationSystem();\r\n system.name = \"\";\r\n this.modelService.classificationService.writeSystem(system).subscribe(\r\n (result: ClassificationSystem) => {\r\n system.id = result.id;\r\n this.model.push(system);\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n\r\nonCsChanged(e) {\r\n\r\n let system = new ClassificationSystem();\r\n\r\n system.id = e.key.id;\r\n system.name = e.key.name;\r\n this.modelService.classificationService.writeSystem(system).subscribe(\r\n (result: ClassificationSystem) => {\r\n\r\n });\r\n\r\n}\r\n\r\nonCsRemoved(e) {\r\n this.modelService.classificationService.deleteSystem(e.data.id);\r\n}\r\n\r\n public onLogoClicked(){\r\n\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n}\r\n\r\nonEditDetailsClicked(data : ClassificationSystem) {\r\n\r\n this.modelService.classificationService.selectedSystem = data;\r\n this.modelService.router.navigate([\"/editclassification\"]);\r\n}\r\n\r\nget model(): ClassificationSystem[] {\r\n return this.modelService.classificationService.classificationSystems;\r\n}\r\n\r\nset model(system: ClassificationSystem[]) {\r\n this.modelService.classificationService.classificationSystems = system;\r\n}\r\n}\r\n\r\n\r\n","export class ClassificationClassTree {\r\n\r\n constructor(\r\n public id?: string,\r\n public classificationSystemId?: string,\r\n public parentId?: string,\r\n public groupId?: string,\r\n public name?: string,\r\n public number?: string,\r\n public notAssignable?: boolean\r\n ) {\r\n }\r\n}\r\n","<div class=\"h-100 d-flex flex-column\">\r\n <div class=\"px-2 flex-fill overflow-hidden\"> \r\n <dx-tree-list class=\"d-block h-100\"\r\n [dataSource]=\"model\"\r\n keyExpr=\"id\"\r\n parentIdExpr=\"parentId\"\r\n [showRowLines]=\"false\"\r\n [showBorders]=\"false\"\r\n rootValue=\"0\"\r\n [columnAutoWidth]=\"true\"\r\n noDataText=\"{{ 'keine Datensätze' | translate }}\"\r\n (onToolbarPreparing)=\"onGridToolbarPreparing($event)\"\r\n (onRowUpdated)=\"onClassTreeChanged($event)\"\r\n (onRowRemoved)=\"onClassTreeRemoved($event)\"\r\n (onRowInserted)=\"onClassTreeAdded($event)\"\r\n (onSelectionChanged)=\"onClassTreeSelectionChanged($event)\">\r\n <dxo-search-panel [visible]=\"true\" width=\"250\"></dxo-search-panel>\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n <div *dxTemplate=\"let toolbaritem of 'createCatalogTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Katalog erzeugen' | translate }}\" (onClick)=\"onCreateCatalog()\" hint=\"{{ 'Ein Katalog zu diesem Klassifizierungssystem wird erzeugt' | translate }}\"></dx-button>\r\n </div>\r\n\r\n\r\n <dxi-column dataField=\"number\" sortOrder=\"asc\" [width]=\"150\" caption=\"Nummer\"></dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"Bezeichnung\"></dxi-column>\r\n\r\n <dxo-editing mode=\"popup\"\r\n [allowUpdating]=\"true\"\r\n [allowDeleting]=\"true\"\r\n [allowAdding]=\"true\"\r\n [useIcons]=\"true\">\r\n\r\n <dxo-popup title=\"{{ 'Klassifikationsgruppe' | translate }}\"\r\n [showTitle]=\"true\"\r\n [width]=\"700\"\r\n [height]=\"250\">\r\n </dxo-popup>\r\n </dxo-editing>\r\n </dx-tree-list>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ClassificationClassTree } from \"../Model/classification/ClassificationClassTree\";\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport {StartAction } from\"../Model/Dto/StartAction\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: \"classificationTree\",\r\n templateUrl: \"classificationTree.component.html\",\r\n styleUrls: [\"./classificationTree.component.css\"]\r\n})\r\nexport class ClassificationTreeComponent implements OnInit {\r\n\r\n @ViewChild(DxTreeListComponent, { static: true })\r\n treeList: DxTreeListComponent;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.refresh();\r\n }\r\n\r\n model: ClassificationClassTree[];\r\n\r\n refresh() {\r\n this.modelService.classificationService.getTree(this.modelService.classificationService.selectedSystem.id).subscribe((classificationClassTree: ClassificationClassTree[]) => {\r\n this.model = classificationClassTree;\r\n });\r\n }\r\n\r\n\r\n onGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'createCatalogTemplate'\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n onCreateCatalog() {\r\n let startAction = new StartAction();\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `CreateClassificationCatalog(${this.modelService.classificationService.selectedSystem.id})`;\r\n\r\n this.modelService.jobService.startJob(startAction)\r\n .subscribe(next => {\r\n\r\n this.translate.get(\"Der Katalog wird per Job erzeugt\").subscribe((text: string) => {\r\n \r\n this.modelService.systemService.notifyInfo(text);\r\n });\r\n\r\n \r\n\r\n });\r\n }\r\n\r\n\r\n onClassTreeChanged(e) {\r\n this.modelService.classificationService.updateClassTree(e.data).subscribe(\r\n (result: ClassificationClassTree) => {\r\n\r\n });\r\n }\r\n\r\n onClassTreeSelectionChanged(e) {\r\n let selected = e.currentSelectedRowKeys;\r\n if (selected)\r\n this.modelService.classificationService.selectedClassId = selected[0];\r\n else\r\n this.modelService.classificationService.selectedClassId = \"\";\r\n }\r\n\r\n\r\n onClassTreeRemoved(e) {\r\n this.modelService.classificationService.deleteClassTree(e.data);\r\n }\r\n onClassTreeAdded(e) {\r\n let kat = new ClassificationClassTree();\r\n kat.name= e.data.name;\r\n kat.parentId = e.data.parentId;\r\n kat.classificationSystemId = this.modelService.classificationService.selectedSystem.id;\r\n kat.number = e.data.number;\r\n this.modelService.classificationService.updateClassTree(kat).subscribe(\r\n (result: ClassificationClassTree) => {\r\n e.data.id = result.id;\r\n });\r\n }\r\n}\r\n","<dx-data-grid class=\"h-100 px-2 pb-2\"\r\n [dataSource]=\"modelService.classificationService.selectedClass.features\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Datensätze' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"update()\"\r\n (onRowInserted)=\"update()\"\r\n [masterDetail]=\"{ enabled: true, template: 'detail' }\">\r\n\r\n <dxo-editing mode=\"cell\"\r\n [allowAdding]=\"true\"\r\n [allowUpdating]=\"true\"\r\n [allowDeleting]=\"true\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie den Eintrag wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Eintrag löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"ClassificationFeaturesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"order\" caption=\"Order\" [width]=\"50\"></dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"Name\"></dxi-column>\r\n <dxi-column dataField=\"unit\" caption=\"Einheit\" [width]=\"80\"></dxi-column>\r\n <dxi-column dataField=\"isRequired\" caption=\"Pflicht\" [width]=\"80\"></dxi-column>\r\n <dxi-column dataField=\"description\" caption=\"Beschreibung\"></dxi-column>\r\n\r\n\r\n <dxi-column dataField=\"valueType\" caption=\"{{ 'Typ' | translate }}\" [allowEditing]=\"false\" cellTemplate=\"responsibleTemplate\" [width]=\"100\"></dxi-column>\r\n <div *dxTemplate=\"let feature of 'responsibleTemplate'\">\r\n\r\n <dx-autocomplete class=\"dataGridAutocomplete\"\r\n [minSearchLength]=\"0\"\r\n [dataSource]=\"valueTypeSource\"\r\n [showDropDownButton]=\"true\"\r\n valueChangeEvent=\"blur\"\r\n [(value)]=\"feature.data.valueType\">\r\n </dx-autocomplete>\r\n </div>\r\n\r\n <div *dxTemplate=\"let feature of 'detail'\">\r\n\r\n\r\n <dx-data-grid class=\"internal-grid\"\r\n [dataSource]=\"feature.data.values\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Werte' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"update()\"\r\n (onRowRemoved)=\"update()\"\r\n (onRowInserted)=\"update()\">\r\n\r\n <dxo-editing mode=\"cell\" [allowUpdating]=\"true\" [allowAdding]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie dieses Wert wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Wert löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"ClassificationFeaturesValuesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"order\" caption=\"{{ 'Nummer' | translate }}\" (onValueChanged)=\"update()\" alignment=\"center\" [width]=\"150\" [dataType]=\"number\"></dxi-column>\r\n <dxi-column dataField=\"value\" caption=\"{{ 'Wert' | translate }}\" (onValueChanged)=\"update()\"></dxi-column>\r\n <dxi-column dataField=\"valueId\" caption=\"{{ 'Id' | translate }}\" (onValueChanged)=\"update()\"></dxi-column>\r\n </dx-data-grid>\r\n\r\n\r\n </div>\r\n</dx-data-grid>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ClassificationClass } from \"../Model/classification/ClassificationClass\";\r\nimport { FeatureValue } from \"../Model/classification/FeatureValue\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\n\r\n@Component({\r\n selector: \"classificationGroup\",\r\n templateUrl: \"classificationGroup.component.html\"\r\n})\r\nexport class ClassificationGroupComponent implements OnInit {\r\n\r\n @ViewChild(DxDataGridComponent)\r\n private dataGrid: DxDataGridComponent;\r\n\r\n\r\n valueTypeSource = [ \"List\", \"Number\",\"String\" ];\r\n\r\n constructor(public modelService: ModelService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n update() {\r\n this.modelService.classificationService.updateClass(this.modelService.classificationService.selectedClass).subscribe(\r\n (result: ClassificationClass) => {\r\n this.modelService.classificationService.selectedClass.features.forEach(x => {\r\n if (!x.values) {\r\n x.values = new Array<FeatureValue>();\r\n }\r\n });\r\n });;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { ClassificationSystem } from \"../Model/classification/ClassificationSystem\";\r\n\r\n@Component({\r\n selector: \"editClassificationSystem\",\r\n templateUrl: \"editClassificationSystem.component.html\"\r\n})\r\nexport class EditClassificationSystemComponent implements OnInit {\r\n\r\n constructor(public modelService: ModelService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n/* if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }*/\r\n\r\n this.modelService.classificationService.getSystems();\r\n }\r\n\r\n onInsertCs(e) {\r\n\r\n let system = new ClassificationSystem();\r\n system.name = e.data.name;\r\n this.modelService.classificationService.writeSystem(system).subscribe(\r\n (result: ClassificationSystem) => {\r\n e.data.id = result.id;\r\n });\r\n }\r\n\r\n onCsChanged(e) {\r\n\r\n let system = new ClassificationSystem();\r\n\r\n system.id = e.key.id;\r\n system.name = e.key.name;\r\n this.modelService.classificationService.writeSystem(system).subscribe(\r\n (result: ClassificationSystem) => {\r\n\r\n });\r\n\r\n }\r\n\r\n onCsRemoved(e) {\r\n this.modelService.classificationService.deleteSystem(e.data.id);\r\n }\r\n\r\n public onLogoClicked() {\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n }\r\n\r\n onEditDetailsClicked(data: ClassificationSystem) {\r\n let x = data;\r\n }\r\n\r\n get model(): ClassificationSystem[] {\r\n return this.modelService.classificationService.classificationSystems;\r\n }\r\n\r\n set model(system: ClassificationSystem[]) {\r\n this.modelService.classificationService.classificationSystems = system;\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"px-2 flex-fill overflow-hidden\">\r\n <classificationTree></classificationTree>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column look=\"light\"> \r\n <div slot=\"content\" class=\"h-100 d-flex flex-column\"> \r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ modelService.classificationService.selectedSystem.name}}</h4>\r\n </div>\r\n </div> \r\n <classificationGroup class=\"flex-fill overflow-hidden\"></classificationGroup> \r\n </div>\r\n</content-column>\r\n</fullscreen-page>\r\n","export class HazmatClass {\r\n\r\n constructor(\r\n public id?: string,\r\n public customerId?: string,\r\n public number?: string,\r\n public name?: string,\r\n public hazardStatements?: string[],\r\n public hazardPictograms?: string[],\r\n public precautionaryStatements?: string[],\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Gefahrenklasse' | translate }}</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelService.hazmatClassService.selectedClass.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"modelService.hazmatClassService.selectedClass.name\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"detailTabs\">\r\n <div *dxTemplate=\"let piktgramm of 'piktoTemplate'\">\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Mögliche Werte' | translate }}:</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.hazardPictograms\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n [searchEnabled]=\"true\"\r\n [showSelectionControls]=\"true\"\r\n (onSelectionChanged)=\"update($event)\"\r\n [(selectedItems)]=\"modelService.hazmatClassService.selectedClass.hazardPictograms\">\r\n <dxo-search-editor-options placeholder=\"{{ 'Suchen' | translate }}\">\r\n </dxo-search-editor-options>\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}}   <img src=\"/images/ghs/{{item}}.png\" height=\"50px\" />  {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Ausgewählt' | translate }}:</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.selectedClass.hazardPictograms\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n noDataText=\"{{ 'kein Element ausgewählt' | translate }}\"\r\n [searchEnabled]=\"false\"\r\n [showSelectionControls]=\"false\">\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}}   <img src=\"/images/ghs/{{item}}.png\" height=\"50px\" />  {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let company of 'hTemplate'\">\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Mögliche Werte' | translate }}:</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.hStatements\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n [searchEnabled]=\"true\"\r\n [showSelectionControls]=\"true\"\r\n (onSelectionChanged)=\"update($event)\"\r\n [(selectedItems)]=\"modelService.hazmatClassService.selectedClass.hazardStatements\">\r\n <dxo-search-editor-options placeholder=\"{{ 'Suchen' | translate }}\">\r\n </dxo-search-editor-options>\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>\r\n {{ 'Ausgewählt' | translate }}:\r\n </h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.selectedClass.hazardStatements\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n noDataText=\"{{ 'kein Element ausgewählt' | translate }}\"\r\n [searchEnabled]=\"false\"\r\n [showSelectionControls]=\"false\">\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let company of 'pTemplate'\">\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Mögliche Werte' | translate }}:</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.pStatements\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n [searchEnabled]=\"true\"\r\n [showSelectionControls]=\"true\"\r\n (onSelectionChanged)=\"update($event)\"\r\n [(selectedItems)]=\"modelService.hazmatClassService.selectedClass.precautionaryStatements\">\r\n <dxo-search-editor-options placeholder=\"{{ 'Suchen' | translate }}\">\r\n </dxo-search-editor-options>\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Ausgewählt' | translate }}:</h4>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-list #list\r\n [dataSource]=\"modelService.hazmatClassService.selectedClass.precautionaryStatements\"\r\n [selectionMode]=\"multiple\"\r\n pageLoadMode=\"scrollBottom\"\r\n noDataText=\"{{ 'kein Element ausgewählt' | translate }}\"\r\n [searchEnabled]=\"false\"\r\n [showSelectionControls]=\"false\">\r\n <div *dxTemplate=\"let item of 'item'\">\r\n {{item}} {{ item | translate }}\r\n </div>\r\n </dx-list>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-tab-panel>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { HazmatClass } from \"../Model/Catalog/HazmatClass\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: \"hazmatclass\",\r\n templateUrl: \"hazmatclass.component.html\"\r\n})\r\nexport class HazmatclassComponent implements OnInit {\r\n pages: ({ id: number; title; template: string } | { id: number; title: string; template: string })[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) { }\r\n\r\n pText = \"\";\r\n hText = \"\";\r\n piktogrammeText = \"\";\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n\r\n this.translate.get('GHS-Piktogramme').subscribe((text: string) => {\r\n this.piktogrammeText = text;\r\n });\r\n\r\n this.translate.get('H-Sätze').subscribe((text: string) => {\r\n this.hText = text;\r\n });\r\n\r\n this.translate.get('P-Sätze').subscribe((text: string) => {\r\n this.pText = text;\r\n });\r\n\r\n this.pages = [\r\n { id: 1, title: this.piktogrammeText, template: \"piktoTemplate\" },\r\n { id: 2, title: this.hText, template: \"hTemplate\" },\r\n { id: 3, title: this.pText, template: \"pTemplate\" },\r\n ];\r\n\r\n\r\n }\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n update(e) {\r\n\r\n\r\n this.modelService.hazmatClassService.updateClass(this.modelService.hazmatClassService.selectedClass).subscribe(\r\n (result: HazmatClass) => {\r\n \r\n });\r\n }\r\n\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Gefahrstoffklasse im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowClick)=\"onSelectionChangedClick($event)\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\">\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newClassButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Gefahrstoffklasse' | translate }}\" (onClick)=\"addClass()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Gefahrstoffklasse suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"HazmatClassStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid> \r\n </div>\r\n </div>\r\n </navigation-column> \r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"h-100 px-3\">\r\n <dx-scroll-view *ngIf=\"modelService.hazmatClassService.selectedClass\" showScrollbar=\"always\">\r\n <hazmatclass></hazmatclass>\r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { HazmatClass } from '../Model/Catalog/HazmatClass';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"hazmatclasses\",\r\n templateUrl: \"hazmatclasses.component.html\"\r\n})\r\nexport class HazmatclassesComponent implements OnInit {\r\n model: HazmatClass[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.translate.get('Gefahrstoffklassen').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n template: 'newClassButtonTemplate'\r\n }); \r\n }\r\n\r\n ngOnInit(): void {\r\n/* if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }*/\r\n\r\n this.modelService.hazmatClassService.getClasses().subscribe(\r\n (result: HazmatClass[]) => {\r\n this.model = result;\r\n });\r\n }\r\n\r\n onSelectionChangedClick(e) {\r\n this.modelService.hazmatClassService.selectedClass = e.data;\r\n }\r\n onDeleteClicked(e) {\r\n this.modelService.hazmatClassService.deleteClass(e.data);\r\n }\r\n\r\n addClass() {\r\n\r\n let hazmatClass = new HazmatClass();\r\n hazmatClass.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n this.modelService.hazmatClassService.addClass(hazmatClass).subscribe(\r\n (result: HazmatClass) => {\r\n this.modelService.hazmatClassService.selectedClass = result;\r\n this.model.push(this.modelService.hazmatClassService.selectedClass);\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n}\r\n","export class WarrantyClass {\r\n\r\n constructor(\r\n public id?: string,\r\n public customerId?: string,\r\n public number?: string,\r\n public month?: number,\r\n public name?: string,\r\n public description?: string,\r\n public descriptionHtml?: string,\r\n\r\n\r\n \r\n ) {\r\n }\r\n}\r\n\r\n\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Garantieklasse' | translate }}</h4>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ modelService.warrantyClassService.selectedClass.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"modelService.warrantyClassService.selectedClass.name\" [showClearButton]=\"true\" (onValueChanged)=\"update($event)\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Garantie in Monaten' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel placeLabelSmall\">MONATH</label>\r\n <dx-number-box [min]=\"0\"\r\n [max]=\"9999\"\r\n [(value)]=\"modelService.warrantyClassService.selectedClass.month\" (valueChange)=\"update($event)\"></dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" class=\"w-100\" [swipeEnabled]=\"false\">\r\n <div *dxTemplate=\"let company of 'htmlTemplate'\">\r\n <dx-html-editor [(value)]=\"modelService.warrantyClassService.selectedClass.descriptionHtml\"\r\n placeholder=\"DESCRIPTION HTML\" class=\"warrantyEditor\"\r\n (onFocusOut)=\"update($event)\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"size\" [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"></dxi-item>\r\n <dxi-item name=\"font\" [acceptedValues]=\"['Arial', 'Courier New', 'Georgia', 'Impact', 'Lucida Console', 'Tahoma', 'Times New Roman', 'Verdana']\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"strike\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"alignJustify\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n </dxo-toolbar>\r\n </dx-html-editor>\r\n </div>\r\n <div *dxTemplate=\"let company of 'plainTemplate'\">\r\n <dx-text-area [(value)]=\"modelService.warrantyClassService.selectedClass.description\" class=\"warrantyEditor\" (onValueChanged)=\"update($event)\"></dx-text-area>\r\n </div>\r\n </dx-tab-panel>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { WarrantyClass } from \"../Model/Catalog/WarrantyClass\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: \"warrantyclass\",\r\n templateUrl: \"warrantyclass.component.html\"\r\n})\r\nexport class WarrantyclassComponent implements OnInit {\r\n \r\n constructor(public modelService: ModelService, public translate: TranslateService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.translateTexts();\r\n this.reset();\r\n }\r\n\r\n pages: { id: number; title: string; template: string; }[] = [];\r\n \r\n txtHtml: string;\r\n txtPlain: string;\r\n \r\n translateTexts() {\r\n this.txtHtml = this.translate.instant(\"HTML-Text\");\r\n this.txtPlain = this.translate.instant(\"Plain-Text\");\r\n }\r\n reset() {\r\n this.pages = [{ id: 1, title: this.txtHtml, template: \"htmlTemplate\" },\r\n { id: 2, title: this.txtPlain, template: \"plainTemplate\"}];\r\n \r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n update(e) {\r\n\r\n\r\n this.modelService.warrantyClassService.updateClass(this.modelService.warrantyClassService.selectedClass).subscribe(\r\n (result: WarrantyClass) => {\r\n \r\n });\r\n }\r\n\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Garantieklasse im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowClick)=\"onSelectionChangedClick($event)\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'newClassButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Garantieklasse' | translate }}\" (onClick)=\"addClass()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Garantieklasse suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"WarrantyClassesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"h-100 px-3\">\r\n <dx-scroll-view *ngIf=\"modelService.warrantyClassService.selectedClass\" showScrollbar=\"always\">\r\n <warrantyclass></warrantyclass> \r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { WarrantyClass } from '../Model/Catalog/WarrantyClass';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"warrantyclasses\",\r\n templateUrl: \"warrantyclasses.component.html\"\r\n})\r\nexport class WarrantyclassesComponent implements OnInit {\r\n model: WarrantyClass[];\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n\r\n this.translate.get('Garantieklassen').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newClassButtonTemplate'\r\n }); \r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.modelService.warrantyClassService.getClasses().subscribe(\r\n (result: WarrantyClass[]) => {\r\n this.model = result;\r\n });\r\n }\r\n\r\n onSelectionChangedClick(e) {\r\n this.modelService.warrantyClassService.selectedClass = e.data;\r\n }\r\n onDeleteClicked(e) {\r\n this.modelService.warrantyClassService.deleteClass(e.data);\r\n }\r\n\r\n addClass() {\r\n\r\n let warrantyClass = new WarrantyClass();\r\n warrantyClass.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n this.modelService.warrantyClassService.addClass(warrantyClass).subscribe(\r\n (result: WarrantyClass) => {\r\n this.modelService.warrantyClassService.selectedClass = result;\r\n this.model.push(this.modelService.warrantyClassService.selectedClass);\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Feedback } from '../Model/Feedback';\r\n\r\n@Injectable()\r\nexport class FeedbackService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n sendFeedback(feedback: Feedback) {\r\n return this.http.post(\"api/feedback/SendFeedback\", feedback);\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { CatalogDataQuality } from \"../../Model/validation/CatalogDataQuality\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"dataQualityPrintChart\",\r\n templateUrl: \"dataQualityPrintChart.component.html\",\r\n styleUrls: []\r\n})\r\n\r\nexport class DataQualityPrintChartComponent implements OnInit {\r\n customerId: string;\r\n catalogId: string;\r\n\r\n dataSource: any[];\r\n colorPalette: string[];\r\n catalogDataQuality: CatalogDataQuality;\r\n\r\n constructor(public modelService: ModelService, activatedRoute: ActivatedRoute) {\r\n activatedRoute.queryParams.subscribe(params => {\r\n this.catalogId = params['catalogId'];\r\n });\r\n activatedRoute.queryParams.subscribe(params => {\r\n this.customerId = params['customerId'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modelService.dataQualityService.getDataQuality(this.customerId, this.catalogId).toPromise().then((catalogDataQuality) => {\r\n this.catalogDataQuality = catalogDataQuality;\r\n\r\n this.dataSource = [];\r\n this.colorPalette = [];\r\n if (this.catalogDataQuality.productsCountInGroups != undefined) {\r\n this.catalogDataQuality.productsCountInGroups.forEach(x => {\r\n this.dataSource.push({ category: x.validationGroup.name, val: x.productCount });\r\n this.colorPalette.push(x.validationGroup.backgroundColor);\r\n });\r\n }\r\n });\r\n }\r\n\r\n customizeText = (arg: any) => {\r\n return arg.valueText + \" %\";\r\n }\r\n\r\n customizeLabel = (arg: any) => {\r\n if (arg.valueText == \"1\")\r\n return \"1 Produkt\";\r\n\r\n return arg.valueText + \" Produkte\";\r\n }\r\n}\r\n","<div style=\"background-color: white\">\r\n <dx-pie-chart type=\"doughnut\"\r\n [startAngle]=\"90\"\r\n [resolveLabelOverlapping]=\"'shift'\"\r\n [palette]=\"colorPalette\"\r\n [dataSource]=\"dataSource\">\r\n <dxi-series argumentField=\"category\">\r\n <dxo-label [visible]=\"true\"\r\n [customizeText]=\"customizeLabel\">\r\n <dxo-connector [visible]=\"true\"></dxo-connector>\r\n </dxo-label>\r\n </dxi-series>\r\n <dxo-export [enabled]=\"false\"></dxo-export>\r\n <dxo-legend [visible]=\"false\"></dxo-legend>\r\n <dxo-tooltip [enabled]=\"true\"\r\n format=\"largeNumber\">\r\n </dxo-tooltip>\r\n </dx-pie-chart>\r\n</div>\r\n\r\n","<dx-data-grid class=\"h-100\" (onToolbarPreparing)=\"onToolbarPreparing($event)\" [dataSource]=\"status\"\r\n [remoteOperations]=\"false\" [allowColumnReordering]=\"true\" [rowAlternationEnabled]=\"true\" [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Status im Account' | translate }}\" [showBorders]=\"true\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\" (onRowRemoving)=\"deleteStatus($event)\"\r\n (onRowUpdated)=\"update($event)\">\r\n <dxo-selection mode=\"multiple\"></dxo-selection>\r\n\r\n <div *dxTemplate=\"let toolbarItem of 'customDeleteButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Auswahl löschen' | translate }}\"\r\n (onClick)=\"deleteMultiple()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newStateButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neuer Status' | translate }}\"\r\n (onClick)=\"addStatus()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"cell\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [useIcons]=\"true\"></dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"\r\n placeholder=\"{{ 'Status suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"ProductStatesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\" (onValueChanged)=\"update($event)\"></dxi-column>\r\n\r\n</dx-data-grid>","import { Component, OnInit } from \"@angular/core\";\r\nimport isString from \"lodash.isstring\";\r\nimport { ModelService } from '../Services/model.service';\r\nimport { ProductState } from '../Model/Catalog/ProductState';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n\r\n@Component({\r\n selector: \"productStates\",\r\n templateUrl: \"productState.component.html\"\r\n})\r\nexport class ProductStateComponent implements OnInit {\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n \r\n this.translate.get('Status').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newStateButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'customDeleteButtonTemplate'\r\n }); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.getStatus();\r\n }\r\n\r\n public status: ProductState[] = [];\r\n public states: any[];\r\n\r\n getStatus() {\r\n this.modelService.productStateService.getStatus().subscribe(\r\n (result: ProductState[]) => {\r\n this.status = result;\r\n });\r\n }\r\n\r\n update(event) {\r\n var status;\r\n if (isString(event)) {\r\n status = this.status.find(item => item.idKey == event);\r\n } else {\r\n if (event.key == null)\r\n return;\r\n status = this.status.find(item => item.idKey == event.key.idKey);\r\n }\r\n this.modelService.productStateService.updateProductState(status).subscribe((_id: string) => {});\r\n }\r\n\r\n deleteMultiple() { \r\n let result = confirm(this.states.length + this.translate.instant(\"Status ausgewählt </br> Sind Sie sich sicher, dass diese gelöscht werden sollen?\"), this.translate.instant(\"Auswahl löschen\"));\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.states.map(state => this.modelService.productStateService.deleteProductState(state.idKey));\r\n this.states.reverse().forEach(x => this.status.splice(this.status.findIndex(y => y.idKey == x.idKey), 1));\r\n }});\r\n }\r\n \r\n onSelectionChanged(e) {\r\n this.states = e.selectedRowKeys\r\n }\r\n\r\n addStatus(status: ProductState = null, id = null) {\r\n if (id == null) {\r\n status = new ProductState();\r\n status.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n this.modelService.productStateService.addProductState(status).subscribe(\r\n (result: ProductState) => {\r\n this.getStatus();\r\n });\r\n\r\n } else {\r\n status.idKey = id;\r\n this.status.push(status);\r\n }\r\n }\r\n\r\n public pimStatus: string[] = [\"New\", \"Updated\", \"Normal\", \"Locked\", \"Deleted\"];\r\n\r\n deleteStatus(event) {\r\n this.modelService.productStateService.deleteProductState(event.data.idKey);\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"dark\"> \r\n <div slot=\"content\" class=\"h-100 p-3 w-100 mx-auto\">\r\n <div class=\"d-block h-100 w-100\">\r\n <iframe class=\"h-100 w-100\" [style]=\"{ 'border-width': '0px' }\" *ngIf=\"showDesigner\" [src]=\"designerUrl\"></iframe>\r\n <!--\r\n <dx-report-designer [reportUrl]=\"reportUrl\" height=\"100%\">\r\n <dxrd-request-options [getDesignerModelAction]=\"getDesignerModelAction\"\r\n [host]=\"hostUrl\">\r\n </dxrd-request-options>\r\n <dxrd-callbacks (CustomizeLocalization)=\"CustomizeLocalization($event)\"\r\n (CustomizeMenuActions)=\"CustomizeMenuActions($event)\">\r\n </dxrd-callbacks>\r\n </dx-report-designer>\r\n -->\r\n </div>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page> \r\n","import { Component, Inject, ViewEncapsulation, ViewChild, OnInit } from '@angular/core';\r\nimport { ModelService } from '../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'productreporting',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './productreporting.component.html',\r\n styleUrls: [\"./productreporting.component.css\"]\r\n})\r\n\r\nexport class ProductReportingComponent implements OnInit {\r\n\r\n constructor(@Inject('BASE_URL') public hostUrl: string, public modelService: ModelService, public translate: TranslateService, private sanitizer: DomSanitizer) {\r\n this.translate.get('Produktdatenblatt Designer').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateTexts();\r\n }\r\n\r\n title: string;\r\n getDesignerModelAction = 'api/ReportDesigner/GetProductReportDesignerModel';\r\n // The report's path. The Report Designer opens it when the application starts.\r\n reportUrl: string;\r\n //hostUrl = 'https://localhost:44302';\r\n\r\n designerUrl: SafeUrl;\r\n showDesigner: boolean;\r\n\r\n\r\n translateTexts() {\r\n this.translate.get(\"Produktdatenblatt Designer\")\r\n .subscribe((text: string) => {\r\n this.title = text;\r\n });\r\n this.translate.get(\"Produktdatenblatt\")\r\n .subscribe((text: string) => {\r\n this.reportUrl = text; // does this really make sense? if a report with this (translated) name does not exist, a blank one is created.\r\n\r\n // wrong language\r\n //this.designerUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`/ReportDesigner?lang=${encodeURIComponent(this.translate.getBrowserLang())}&report=${encodeURIComponent(text)}`);\r\n let lang = this.modelService.loginService.currentUser.frontEndLanguage;\r\n this.designerUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`/ReportDesigner?lang=${encodeURIComponent(lang)}&report=${encodeURIComponent(text)}&token=${encodeURIComponent(this.modelService.loginService.accessToken)}`);\r\n\r\n this.showDesigner = true;\r\n });\r\n }\r\n\r\n public onLogoClicked() {\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n }\r\n\r\n CustomizeLocalization(event) {\r\n\r\n // Auskommentiert, da u.U. BugFix von DXP benötigt\r\n // ==> https://supportcenter.devexpress.com/ticket/details/t970419/angular-web-reporting-with-asp-net-core-backend-missing-properties-for-bands-when\r\n\r\n\r\n\r\n let lang = this.modelService.loginService.currentUser.frontEndLanguage;\r\n //if (lang == \"de\") {\r\n // event.args.LoadMessages(deAnalyticMessages);\r\n // event.args.LoadMessages(deReportingMessages);\r\n //}\r\n //if (lang == \"en\") {\r\n // event.args.LoadMessages(enAnalyticMessages);\r\n // event.args.LoadMessages(enReportingMessages);\r\n //}\r\n //if (lang == \"nl\") {\r\n // event.args.LoadMessages(nlAnalyticMessages);\r\n // event.args.LoadMessages(nldeReportingMessages);\r\n //}\r\n }\r\n\r\n /*\r\n CustomizeMenuActions(event) {\r\n var newReportAction = event.args.GetById(ActionId.NewReport);\r\n if (newReportAction) {\r\n newReportAction.clickAction = function () {\r\n event.component.bindingSender.OpenReport(\"TemplateReport\");\r\n }\r\n }\r\n }\r\n */\r\n}\r\n","export class MappingProfile {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n \r\n ) {\r\n\r\n }\r\n\r\n}\r\n","import {map} from 'rxjs/operators';\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from '../Services/model.service';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { MappingProfile } from '../Model/featureMapping/MappingProfile';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"featureMapping\",\r\n templateUrl: \"featureMapping.component.html\"\r\n})\r\nexport class FeatureMappingComponent implements OnInit {\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.translate.get('Feature Mapping').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getProfiles();\r\n }\r\n\r\n public mappingProfiles: MappingProfile[] = [];\r\n \r\n onContentReady(e) {\r\n e.component.columnOption(\"command:edit\",\r\n {\r\n visibleIndex: -1,\r\n });\r\n }\r\n\r\n\r\n\r\n onEditClicked(e) {\r\n\r\n this.navigateToDetail(e.key.id);\r\n \r\n }\r\n\r\n navigateToDetail(id: string) {\r\n this.modelService.featureMappingService.selectedMappingId = id;\r\n this.modelService.router.navigate([\"/featureMappingDetail\"]);\r\n }\r\n\r\n\r\n getProfiles() {\r\n this.modelService.featureMappingService.getMappingProfiles().subscribe(\r\n (result: MappingProfile[]) => {\r\n this.mappingProfiles = result;\r\n });\r\n }\r\n\r\n update(event) {\r\n \r\n this.modelService.featureMappingService.updateMappingProfile(event.data,this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingProfile) => {\r\n });\r\n\r\n\r\n \r\n }\r\n\r\n addMappingProfile(e ) {\r\n e.cancel = true;\r\n let profile = new MappingProfile();\r\n profile.name = e.data.name;\r\n\r\n this.modelService.featureMappingService.addMappingProfile(profile, this.modelService.loginService.currentCustomer.id)\r\n .subscribe((result: MappingProfile) => this.navigateToDetail(result.id));\r\n \r\n \r\n\r\n }\r\n\r\n \r\n\r\n deleteStatus(event) {\r\n this.modelService.featureMappingService.deleteMappingProfile(event.data.id, this.modelService.loginService.currentCustomer.id);\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n\r\n addProfileToList(mappingProfile: MappingProfile): void {\r\n this.mappingProfiles.push(mappingProfile);\r\n\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\" helpSwitch=\"true\">\r\n <div slot=\"content\" class=\"p-3 flex-fill w-75 mx-auto overflow-hidden\">\r\n <div class=\"dx-fieldset-header\">{{ 'Mapping Profile' | translate }}</div>\r\n <dx-data-grid class=\"h-100\"\r\n [dataSource]=\"mappingProfiles\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'Keine Mapping Profile im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"deleteStatus($event)\"\r\n (onEditingStart)=\"onEditClicked($event)\"\r\n (onRowInserted)=\"addMappingProfile($event)\">\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Profile suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [allowAdding]=\"true\" [useIcons]=\"true\"></dxo-editing>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureMappingProfilesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\" (onValueChanged)=\"update($event)\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { MappingInput } from \"./MappingInput\";\r\n\r\nexport class MappingResult {\r\n\r\n constructor(\r\n public id?: string,\r\n public profileId?: string,\r\n public name?: string,\r\n public value?: string,\r\n public unit?: string,\r\n public mappingInputs?: MappingInput[]\r\n ) {\r\n\r\n }\r\n\r\n}\r\n","\r\nimport { Component, ViewChild } from \"@angular/core\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { Catalog } from \"../../../../Model/Catalog/catalog\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\n\r\n@Component({\r\n selector: \"importfeatureMappingProfil\",\r\n templateUrl: \"featureMappingProfil.component.html\"\r\n})\r\nexport class FeatureMappingProfilComponent {\r\n @ViewChild(DxFileUploaderComponent, { static: true })\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n value: any[] = [];\r\n model: Catalog[];\r\n uploadHeaders: any;\r\n\r\n constructor(private modelService: ModelService, private oAuthService: OAuthService) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.uploadHeaders = {\r\n CustomerId: this.modelService.loginService.currentUser.customerId,\r\n MappingProfileId: this.modelService.featureMappingService.selectedMappingId,\r\n }\r\n }\r\n\r\n onUploaded() {\r\n this.dxfileuploader.instance.reset();\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n}\r\n","<dx-file-uploader\r\n #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/importFeatureMappingsChunky\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n accept=\".xlsx\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\">\r\n</dx-file-uploader>\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"dark\">\r\n <logo slot=\"toolbar\" [routerLink]=\"['/featureMapping']\" look=\"dark\" route=\"['/featureMapping']\"></logo>\r\n <div slot=\"content\" class=\"p-3 flex-fill w-100 mx-auto overflow-hidden\">\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Aktualisieren' | translate, onClick: refresh }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog auswerten' | translate, onClick: onShowAnalyseCatalog }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Katalog mappen' | translate, onClick: onShowMapCatalog }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Profil exportieren' | translate, onClick: onExportProfil }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Profil importieren' | translate, onClick: onImportProfil }\"></dxi-item>\r\n </dx-toolbar>\r\n <dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"450\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Katalog auswerten' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"analyseCatalogVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Account' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomer?.length > 0 ? 'placeLabelSmall' : '' }}\">ACCOUNT</label>\r\n <dx-select-box [(value)]=\"selectedCustomer\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Quellkatalog' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ catalogToAnalyseId?.length > 0 ? 'placeLabelSmall' : '' }}\">SOURCE CATALOG</label>\r\n <dx-select-box [(value)]=\"catalogToAnalyseId\"\r\n [dataSource]=\"catalogs\"\r\n [searchEnabled]=\"true\"\r\n displayExpr=\"catalogName\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt(1)\" (mouseleave)=\"ttt(1)\">{{ 'Hersteller berücksichtigen' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n\r\n <div class=\"flex-fill {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttUseManufacturer\">\r\n\r\n <div class=\"d-flex flex-row pt-2\">\r\n <dx-switch [(value)]=\"useManufacturer\" (onValueChanged)=\"update()\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-tooltip target=\"#ttUseManufacturer\" class=\"toolTip toolTipField\" [(visible)]=\"v[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Soll das Profil abhängig vom Hersteller (MANUFACTURER_NAME) sein' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt(1)\" (mouseleave)=\"ttt(1)\">{{ 'Featuresystem berücksichtigen' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n\r\n <div class=\"flex-fill {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttUseFeatureSystem\">\r\n\r\n <div class=\"d-flex flex-row pt-2\">\r\n <dx-switch [(value)]=\"useFeatureSystem\" (onValueChanged)=\"update()\" switchedOffText=\"{{ 'Nein' | translate }}\" switchedOnText=\"{{ 'Ja' | translate }}\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-tooltip target=\"#ttUseFeatureSystem\" class=\"toolTip toolTipField\" [(visible)]=\"v[1]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Soll das Profil abhängig vom Featuresystem (FEATURE_SYSTEM_NAME) sein' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n\r\n <dx-toolbar *ngIf=\"catalogToAnalyseId\">\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Starten' | translate, onClick: startAnalyse }\"></dxi-item>\r\n </dx-toolbar>\r\n </div>\r\n </dx-popup>\r\n\r\n <dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Katalog mappen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"mapCatalogVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Account' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ selectedCustomer?.length > 0 ? 'placeLabelSmall' : '' }}\">ACCOUNT</label>\r\n <dx-select-box [(value)]=\"selectedCustomer\"\r\n [dataSource]=\"customers\"\r\n [searchEnabled]=\"true\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Katalog' | translate }}</div>\r\n <div class=\"dx-field-value {{ showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ catalogToMapId?.length > 0 ? 'placeLabelSmall' : '' }}\">CATALOG</label>\r\n <dx-select-box [(value)]=\"catalogToMapId\"\r\n [dataSource]=\"catalogs\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n valueExpr=\"id\"\r\n placeholder=\"\"></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <dx-toolbar *ngIf=\"catalogToMapId\">\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Starten' | translate, onClick: startMapping }\"></dxi-item>\r\n </dx-toolbar>\r\n </div>\r\n </dx-popup>\r\n\r\n <dx-popup [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Profil importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importProfileVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importfeatureMappingProfil></importfeatureMappingProfil>\r\n </div>\r\n </dx-popup>\r\n \r\n <div class=\"d-flex flex-row w-100\">\r\n <div class=\"flex-column w-50\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\" (mouseenter)=\"ttt(0)\" (mouseleave)=\"ttt(0)\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n\r\n <div class=\"flex-fill {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"ttName\">\r\n <label class=\"placeLabel {{ model.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"model.name\"\r\n [showClearButton]=\"true\"\r\n (onValueChanged)=\"update()\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <dx-tooltip target=\"#ttName\" class=\"toolTip toolTipField\" [(visible)]=\"v[0]\">\r\n <div *dxTemplate=\"let data = data of 'content'\">\r\n <p>\r\n {{ 'Der Name des Mappingprofiles' | translate }}.\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"flex-column w-50\">\r\n <div class=\"dx-fieldset\">\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"d-flex h-100 flex-row\">\r\n <div class=\"w-50 flex-column px-1 flex-fill overflow-hidden\">\r\n <h6>{{ 'nicht zugeordnet' | translate }}</h6>\r\n\r\n <dx-data-grid #inputGrid\r\n class=\"h-100\"\r\n [dataSource]=\"inputs\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\">\r\n <dxo-row-dragging [onAdd]=\"onAdd\" group=\"inputMapping\"></dxo-row-dragging>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Suchen' | translate }}\"></dxo-search-panel>\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureMappingInputsStateNewUIV2\"></dxo-state-storing>\r\n <dxo-filter-row [visible]=\"true\" applyFilter=\"Immediately\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n\r\n <dxi-column dataField=\"name\" dataType=\"string\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"manufacturer\" dataType=\"string\" caption=\"{{ 'Herteller' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"systemName\" dataType=\"string\" caption=\"{{ 'Featuresystem Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"value\" dataType=\"string\" caption=\"{{ 'Wert' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"unit\" dataType=\"string\" caption=\"{{ 'Einheit' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"isIgnored\" dataType=\"boolean\" cellTemplate=\"isIgnoredcellTemplate\" caption=\"{{ 'Ignorieren' | translate }}\"></dxi-column>\r\n <div *dxTemplate=\"let itemObj of 'isIgnoredcellTemplate'\">\r\n <dx-button *ngIf=\"itemObj.data.isIgnored\" icon=\"isnotblank\" (onClick)=\"isIgnoredClick(itemObj)\"> </dx-button>\r\n <dx-button *ngIf=\"!itemObj.data.isIgnored\" icon=\"isblank\" (onClick)=\"isIgnoredClick(itemObj)\"> </dx-button>\r\n </div>\r\n </dx-data-grid>\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class=\"w-50 flex-column px-1 flex-fill overflow-hidden\">\r\n <h6>{{ 'zugeordnet' | translate }}</h6>\r\n\r\n <dx-data-grid #resultGrid\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onResultGridToolbarPreparing($event)\"\r\n [dataSource]=\"mappingResults\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"onUpdateMappingResult($event)\"\r\n (onEditingStart)=\"startEditing($event)\">\r\n <dxo-editing mode=\"popup\"\r\n [allowUpdating]=\"true\"\r\n [allowAdding]=\"true\"\r\n [allowDeleting]=\"true\">\r\n <dxo-popup title=\"{{ 'Mapping Ergebnis' | translate }}\"\r\n [showTitle]=\"true\"\r\n [width]=\"1200\"\r\n [height]=\"325\">\r\n </dxo-popup>\r\n <dxo-form [colCount]=\"3\">\r\n\r\n <dxi-item dataField=\"name\">\r\n <dxo-label text=\"{{ 'Name' | translate }}\"></dxo-label>\r\n </dxi-item>\r\n <dxi-item dataField=\"value\">\r\n <dxo-label text=\"{{ 'Wert' | translate }}\"></dxo-label>\r\n </dxi-item>\r\n <dxi-item dataField=\"unit\">\r\n <dxo-label text=\"{{ 'Einheit' | translate }}\"></dxo-label>\r\n </dxi-item>\r\n\r\n\r\n\r\n </dxo-form>\r\n </dxo-editing>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-filter-row [visible]=\"true\" applyFilter=\"Immediately\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Suchen' | translate }}\"></dxo-search-panel>\r\n <div *dxTemplate=\"let toolbaritem of 'addMappingResultTemplate'\">\r\n <dx-button stylingMode=\"text\" location=\"after\" type=\"default\" text=\"{{ 'Neues Mapping' | translate }}\" (onClick)=\"addMapping()\" hint=\"{{ 'Legt ein neues Mapping an, dem dann nicht zugeordnete Werte zugewiesen werden können' | translate }}\"></dx-button>\r\n </div>\r\n <dxo-row-dragging [onAdd]=\"onAddResult\" group=\"inputMapping\"></dxo-row-dragging>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureMappingResultsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" dataType=\"string\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"value\" dataType=\"string\" caption=\"{{ 'Wert' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"unit\" dataType=\"string\" caption=\"{{ 'Einheit' | translate }}\"></dxi-column>\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n <div *dxTemplate=\"let results of 'detail'\">\r\n <dx-data-grid [dataSource]=\"results.data.mappingInputs\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onContentReady)=\"contentReady($event,results.data)\"\r\n (onRowRemoving)=\"onDeleteMappingClicked($event)\">\r\n <dxo-editing [allowDeleting]=\"true\"> </dxo-editing>\r\n <dxo-scrolling mode='virtual'></dxo-scrolling>\r\n <dxo-row-dragging [onAdd]=\"onAdd\" group=\"inputMapping\"></dxo-row-dragging>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"FeatureMappingResultInputsStateNewUIV2\"></dxo-state-storing>\r\n <dxi-column dataField=\"name\" dataType=\"string\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"manufacturer\" dataType=\"string\" caption=\"{{ 'Herteller' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"systemName\" dataType=\"string\" caption=\"{{ 'Featuresystem Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"value\" dataType=\"string\" caption=\"{{ 'Wert' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"unit\" dataType=\"string\" caption=\"{{ 'Einheit' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"isRule\" dataType=\"boolean\" caption=\"{{ 'Regel' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n\r\n </div>\r\n </dx-data-grid>\r\n <dx-popup class=\"popup\"\r\n [width]=\"1200\"\r\n [height]=\"900\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Mapping' | translate }}\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"showEditResult\"\r\n contentTemplate=\"popupResultContent\">\r\n <div *dxTemplate=\"let data of 'popupResultContent'\">\r\n\r\n <div *ngIf=\"selectedMappingResult\">\r\n\r\n <div class=\"d-flex h-100 flex-row\">\r\n <div class=\"flex-column px-1 flex-fill overflow-hidden\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-text-box [(value)]=\"selectedMappingResult.name\"\r\n [showClearButton]=\"true\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex h-100 flex-row\">\r\n <div class=\"flex-column px-1 flex-fill overflow-hidden\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Wert' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-text-box [(value)]=\"selectedMappingResult.value\"\r\n [showClearButton]=\"true\">\r\n <dx-validator>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex h-100 flex-row\">\r\n <div class=\"flex-column px-1 flex-fill overflow-hidden\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">{{ 'Einheit' | translate }}</div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-text-box [(value)]=\"selectedMappingResult.unit\"\r\n [showClearButton]=\"true\">\r\n\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-data-grid [dataSource]=\"selectedMappingResult.mappingInputs\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [height]=\"440\"\r\n [showBorders]=\"true\"\r\n (onContentReady)=\"contentReady($event,selectedMappingResult)\"\r\n (onRowRemoving)=\"onDeleteMappingClicked($event)\">\r\n <dxo-editing [allowDeleting]=\"true\"> </dxo-editing>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxi-column dataField=\"name\" dataType=\"string\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"manufacturer\" dataType=\"string\" caption=\"{{ 'Herteller' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"systemName\" dataType=\"string\" caption=\"{{ 'Featuresystem Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"value\" dataType=\"string\" caption=\"{{ 'Wert' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"unit\" dataType=\"string\" caption=\"{{ 'Einheit' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"isRule\" dataType=\"boolean\" caption=\"{{ 'Regel' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"factor\" dataType=\"number\" caption=\"{{ 'Faktor' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n\r\n </div>\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Zu Regel umwandeln' | translate, onClick: createRule }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Speichern' | translate, onClick: saveMappingResult }\"></dxi-item>\r\n <dxi-item location=\"after\" widget=\"dxButton\" [options]=\"{ type: 'default', text: 'Abbrechen' | translate, onClick: closeMappingResultPopUp }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n\r\n </div>\r\n </dx-popup>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-popup [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Artikelnummern Mappings importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importProfileVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importfeatureMappingProfil></importfeatureMappingProfil>\r\n </div>\r\n </dx-popup>\r\n\r\n\r\n </content-column>\r\n</fullscreen-page>\r\n","import { map } from 'rxjs/operators';\r\nimport { Input, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from '../Services/model.service';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { MappingProfile } from '../Model/featureMapping/MappingProfile';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MappingInput } from '../Model/featureMapping/MappingInput';\r\nimport { Customer } from '../Model/user/Customer';\r\nimport { Catalog } from '../Model/Catalog/catalog';\r\nimport { StartAction } from '../Model/Dto/StartAction';\r\nimport { Message } from '../Model/System/Message';\r\nimport { MappingResult } from '../Model/featureMapping/MappingResult';\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\n\r\n\r\n@Component({\r\n selector: \"featureMappingDetail\",\r\n templateUrl: \"featureMappingDetail.component.html\"\r\n})\r\nexport class FeatureMappingDetailComponent implements OnInit {\r\n\r\n @ViewChild('inputGrid') inputGrid: DxDataGridComponent;\r\n @ViewChild('resultGrid') resultGrid: DxDataGridComponent;\r\n @Input() showToolTips: Boolean = true;\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.model = new MappingProfile();\r\n this.update = this.update.bind(this);\r\n this.refresh = this.refresh.bind(this);\r\n this.addMapping = this.addMapping.bind(this);\r\n this.onAdd = this.onAdd.bind(this);\r\n this.onShowAnalyseCatalog = this.onShowAnalyseCatalog.bind(this);\r\n this.startAnalyse = this.startAnalyse.bind(this);\r\n this.onAddResult = this.onAddResult.bind(this);\r\n this.onShowMapCatalog = this.onShowMapCatalog.bind(this);\r\n this.startMapping = this.startMapping.bind(this);\r\n this.saveMappingResult = this.saveMappingResult.bind(this);\r\n this.createRule = this.createRule.bind(this);\r\n this.closeMappingResultPopUp = this.closeMappingResultPopUp.bind(this);\r\n this.onExportProfil = this.onExportProfil.bind(this);\r\n this.onImportProfil = this.onImportProfil.bind(this);\r\n\r\n this.txtStarted = this.translate.instant(\"Die Analyse wurde gestartet\");\r\n\r\n this.txtMapStarted = this.translate.instant(\"Das Mapping wurde gestartet\");\r\n\r\n this.txtExportStarted = this.translate.instant(\"Der Export wurde gestartet\");\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mappingResults = new Array<MappingResult>();\r\n this.refresh();\r\n }\r\n selectedMappingResult: MappingResult;\r\n showEditResult: boolean = false;\r\n startEditing(e) {\r\n\r\n e.cancel = true;\r\n this.selectedMappingResult = e.data;\r\n this.showEditResult = true;\r\n }\r\n\r\n saveMappingResult() {\r\n this.showEditResult = false;\r\n\r\n this.modelService.featureMappingService.addOrUpdateMappingResult(this.selectedMappingResult, this.modelService.loginService.currentCustomer.id).subscribe((mappingResult: MappingResult) => {\r\n\r\n });\r\n }\r\n\r\n closeMappingResultPopUp() {\r\n this.showEditResult = false;\r\n this.refreshInputsForResult(this.selectedMappingResult);\r\n }\r\n\r\n\r\n createRule() {\r\n\r\n this.modelService.featureMappingService.createRule(this.selectedMappingResult, this.modelService.loginService.currentCustomer.id).subscribe((mappingResult: MappingResult) => {\r\n\r\n this.selectedMappingResult = mappingResult;\r\n this.refreshInputsForResult(mappingResult);\r\n this.refreshInputs();\r\n });\r\n }\r\n\r\n\r\n public showPlaceHolders: boolean = true;\r\n\r\n public model: MappingProfile = new MappingProfile();\r\n public inputs: MappingInput[] = new Array<MappingInput>();\r\n public analyseCatalogVisible: boolean = false;\r\n public mapCatalogVisible: boolean = false;\r\n\r\n mappingResults: MappingResult[];\r\n _catalogs: Catalog[];\r\n _customers: Customer[];\r\n _replacePrice: boolean = false;\r\n _selectedCustomer: string;\r\n _sourceCatalog: string = \"\";\r\n\r\n useManufacturer: boolean;\r\n useFeatureSystem: boolean;\r\n\r\n txtStarted: string;\r\n txtMapStarted: string;\r\n txtExportStarted : string;\r\n catalogToAnalyseId: string;\r\n catalogToMapId: string;\r\n\r\n get catalogs(): Catalog[] {\r\n return this._catalogs;\r\n }\r\n\r\n set catalogs(value: Catalog[]) {\r\n this._catalogs = value;\r\n }\r\n\r\n get customers(): Customer[] {\r\n return this._customers;\r\n }\r\n\r\n set customers(value: Customer[]) {\r\n this._customers = value;\r\n }\r\n\r\n get selectedCustomer(): string {\r\n return this._selectedCustomer;\r\n }\r\n\r\n set selectedCustomer(value: string) {\r\n this._selectedCustomer = value;\r\n this.modelService.catalogService.getCatalogs(this._selectedCustomer).subscribe((result: Catalog[]) => this.catalogs = result);;\r\n }\r\n\r\n onShowAnalyseCatalog() {\r\n this.catalogToAnalyseId = null;\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomer = this.modelService.loginService.currentCustomer.id;\r\n });\r\n\r\n\r\n this.analyseCatalogVisible = true;\r\n }\r\n\r\n onShowMapCatalog() {\r\n this.catalogToMapId = null;\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id).subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomer = this.modelService.loginService.currentCustomer.id;\r\n });\r\n this.mapCatalogVisible = true;\r\n }\r\n\r\n onDeleteMappingClicked(e) {\r\n let inputMapping = e.data;\r\n inputMapping.resultId = null;\r\n this.modelService.featureMappingService\r\n .addOrUpdateMappingInput(inputMapping, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (mappingResult: MappingInput) => {\r\n this.inputs.push(mappingResult);\r\n });\r\n }\r\n\r\n\r\n onAdd(e) {\r\n let rows = e.toComponent.getVisibleRows();\r\n let row = rows[e.toIndex];\r\n let dragTarget = row.data;\r\n let draggedInput = e.itemData;\r\n draggedInput.resultId = dragTarget.resultId;\r\n let dataSource = e.toComponent.getDataSource();\r\n dataSource._store._array.push(draggedInput);\r\n\r\n this.modelService.featureMappingService\r\n .addOrUpdateMappingInput(draggedInput, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (mappingResult: MappingInput) => {\r\n this.modelService.featureMappingService.getMappingInput(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingInput[]) => {\r\n this.inputs = result;\r\n });\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n onAddResult(e) {\r\n\r\n let rows = this.resultGrid.instance.getVisibleRows();\r\n let row = rows[e.toIndex];\r\n if (!row) {\r\n this.createResultFromInput(e.itemData);\r\n return;\r\n }\r\n\r\n\r\n let dragTarget = row.data;\r\n let draggedInput = e.itemData;\r\n draggedInput.resultId = dragTarget.id;\r\n if (!dragTarget.mappingInputs) {\r\n dragTarget.mappingInputs = new Array<MappingInput>();\r\n }\r\n dragTarget.mappingInputs.push(draggedInput);\r\n this.modelService.featureMappingService\r\n .addOrUpdateMappingInput(draggedInput, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (mappingResult: MappingInput) => {\r\n });\r\n this.modelService.featureMappingService.getMappingInput(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingInput[]) => {\r\n this.inputs = result;\r\n });\r\n\r\n }\r\n\r\n createResultFromInput(itemData: MappingInput) {\r\n let result = new MappingResult();\r\n result.profileId = this.modelService.featureMappingService.selectedMappingId;\r\n result.name = itemData.name;\r\n result.unit = itemData.unit;\r\n result.value = itemData.value;\r\n result.mappingInputs = new Array<MappingInput>();\r\n result.mappingInputs.push(itemData);\r\n\r\n this.modelService.featureMappingService.addOrUpdateMappingResult(result, this.modelService.loginService.currentCustomer.id).subscribe((mappingResult: MappingResult) => {\r\n itemData.resultId = mappingResult.id;\r\n this.modelService.featureMappingService\r\n .addOrUpdateMappingInput(itemData, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (mappingResult: MappingInput) => {\r\n\r\n this.modelService.featureMappingService.getMappingInput(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingInput[]) => {\r\n this.inputs = result;\r\n });\r\n });\r\n this.mappingResults.push(mappingResult);\r\n });\r\n }\r\n\r\n\r\n addMapping() {\r\n let result = new MappingResult();\r\n result.profileId = this.modelService.featureMappingService.selectedMappingId;\r\n\r\n this.modelService.featureMappingService.addOrUpdateMappingResult(result, this.modelService.loginService.currentCustomer.id).subscribe((mappingResult: MappingResult) => {\r\n this.mappingResults.push(mappingResult);\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n contentReady(e, mappingResult: MappingResult) {\r\n\r\n if (!(mappingResult.mappingInputs.length > 0)) {\r\n this.refreshInputsForResult(mappingResult);\r\n }\r\n }\r\n\r\n refreshInputsForResult(mappingResult: MappingResult) {\r\n this.modelService.featureMappingService.getMappingInputsByResultId(mappingResult.id, mappingResult.profileId, this.modelService.loginService.currentCustomer.id).subscribe((mappingInputs: MappingInput[]) => {\r\n mappingResult.mappingInputs = mappingInputs;\r\n });\r\n }\r\n\r\n onUpdateMappingResult(e) {\r\n this.modelService.featureMappingService.addOrUpdateMappingResult(e.data, this.modelService.loginService.currentCustomer.id).subscribe((mappingResult: MappingResult) => {\r\n\r\n });\r\n }\r\n\r\n private emptyArray = [false, false];\r\n public v: boolean[] = this.emptyArray;\r\n\r\n ttt(id) {\r\n if (this.showToolTips) {\r\n if (!this.v[id]) {\r\n this.v = this.emptyArray;\r\n }\r\n this.v[id] = !this.v[id];\r\n }\r\n }\r\n\r\n\r\n refresh() {\r\n this.modelService.featureMappingService.getMappingProfile(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingProfile) => {\r\n this.model = result;\r\n });\r\n\r\n this.refreshInputs();\r\n\r\n\r\n this.modelService.featureMappingService.getMappingResults(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingResult[]) => {\r\n this.mappingResults = result;\r\n });\r\n }\r\n\r\n refreshInputs() {\r\n this.modelService.featureMappingService.getMappingInput(this.modelService.featureMappingService.selectedMappingId, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingInput[]) => {\r\n this.inputs = result;\r\n });\r\n }\r\n\r\n isIgnoredClick(itemObj) {\r\n itemObj.data.isIgnored = !itemObj.data.isIgnored;\r\n this.modelService.featureMappingService.addOrUpdateMappingInput(itemObj.data, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result) => {\r\n\r\n });\r\n }\r\n\r\n onResultGridToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addMappingResultTemplate'\r\n });\r\n }\r\n\r\n update() {\r\n this.modelService.featureMappingService.updateMappingProfile(this.model, this.modelService.loginService.currentCustomer.id).subscribe(\r\n (result: MappingProfile) => {\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n\r\n\r\n startAnalyse() {\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.catalogToAnalyseId;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `FeatureMappingAnalyse(${this.catalogToAnalyseId}:${this.model.id}:${this.useFeatureSystem}:${this.useManufacturer})`;\r\n this.analyseCatalogVisible = false;\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.catalogToAnalyseId = \"\";\r\n this.modelService.systemService.notifyInfo(this.txtStarted);\r\n\r\n });\r\n\r\n }\r\n\r\n startMapping() {\r\n let startAction = new StartAction();\r\n startAction.catalogId = this.catalogToMapId;\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `FeatureMapping(${this.catalogToMapId}:${this.model.id})`;\r\n this.mapCatalogVisible = false;\r\n this.modelService.jobService.startUserAction(startAction)\r\n .subscribe(next => {\r\n this.catalogToAnalyseId = \"\";\r\n this.modelService.systemService.notifyInfo(this.txtMapStarted);\r\n\r\n });\r\n\r\n }\r\n onExportProfil() {\r\n let startAction = new StartAction();\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionId = `ExportMappingProfil(${this.model.id})`;\r\n\r\n this.modelService.jobService.startJob(startAction)\r\n .subscribe(next => {\r\n this.modelService.systemService.notifyInfo(this.txtExportStarted);\r\n\r\n });\r\n }\r\n importProfileVisible: boolean;\r\n\r\n onImportProfil() {\r\n this.importProfileVisible = true;\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <div slot=\"content\" class=\"h-100 p-2\">\r\n\r\n\r\n\r\n <div class=\"d-flex align-items-center h-100 w-100\">\r\n\r\n <div class=\"d-flex flex-row h-50 w-100 border border-3 border-dark rounded m-2\">\r\n\r\n\r\n\r\n <dx-sortable class=\"sortable-cards\"\r\n group=\"cardsGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [allowReordering]=\"false\"\r\n [data]=\"dummy42\"\r\n (onDragStart)=\"onSingleDragStart($event)\">\r\n\r\n <div class=\"border bg-light border-3 border-dark rounded m-2 p-2 item text-dark\">\r\n {{dummy42.name}}\r\n </div>\r\n\r\n </dx-sortable>\r\n\r\n\r\n\r\n <div class=\"d-flex flex-column w-50 border border-3 border-dark rounded ml-2 mt-2 mr-1 mb-2 p-2\">\r\n\r\n <div class=\"h-100 bg-danger border border-3 border-danger rounded\">\r\n <!--mb-1-->\r\n\r\n\r\n <dx-scroll-view class=\"scrollable-list h-100 w-100\" \r\n direction=\"vertical\"\r\n showScrollbar=\"always\">\r\n <dx-sortable class=\"sortable-cards h-100 w-100\"\r\n group=\"cardsGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [allowReordering]=\"false\"\r\n [data]=\"listLeft1\"\r\n (onDragStart)=\"onLeftDragStart($event)\">\r\n\r\n <div *ngFor=\"let item of listLeft1\" class=\"bg-light border border-3 border-dark rounded m-2 p-2 item text-dark\">\r\n {{item.name}}\r\n </div>\r\n\r\n </dx-sortable>\r\n </dx-scroll-view>\r\n\r\n\r\n </div>\r\n\r\n <!--<div class=\"h-50 border border-3 border-danger rounded ml-2 mt-1 mr-2 mb-2\"></div>-->\r\n\r\n </div>\r\n\r\n\r\n\r\n <div class=\"d-flex flex-column w-50 border border-3 border-dark rounded ml-1 mt-2 mr-2 mb-2 p-2\">\r\n\r\n <div class=\"h-25 bg-dark border border-3 border-dark rounded mb-2\">\r\n\r\n\r\n <dx-sortable class=\"sortable-cards-trash w-100 d-flex justify-content-center align-items-center text-light\"\r\n group=\"cardsGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [allowReordering]=\"false\"\r\n (onAdd)=\"onTrashDrop($event)\">\r\n <!--<h3>\r\n T R A S H\r\n </h3>-->\r\n </dx-sortable>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"h-75 bg-success border border-3 border-success rounded\">\r\n\r\n\r\n <dx-scroll-view class=\"scrollable-list h-100 w-100\"\r\n direction=\"vertical\"\r\n showScrollbar=\"always\">\r\n <dx-sortable class=\"sortable-cards-list w-100\"\r\n group=\"cardsGroup\"\r\n dropFeedbackMode=\"indicate\"\r\n [data]=\"listRight1\"\r\n (onDragStart)=\"onRightDragStart($event)\"\r\n (onAdd)=\"onRightDrop($event)\"\r\n (onReorder)=\"onRightReorder($event)\">\r\n\r\n <!-- [allowReordering]=\"false\" -->\r\n\r\n <div *ngFor=\"let item of listRight1\" class=\"bg-light border border-3 border-dark rounded m-2 p-2 item text-dark\">\r\n {{item.id}} - {{item.name}} - {{item.created}}\r\n </div>\r\n </dx-sortable>\r\n </dx-scroll-view>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { DxDraggableModule } from \"devextreme-angular\";\r\n\r\n@Component({\r\n selector: \"sandbox\",\r\n templateUrl: \"sandbox.component.html\",\r\n styleUrls: [\"./sandbox.component.css\"]\r\n})\r\nexport class SandboxComponent implements OnInit, OnDestroy {\r\n\r\n\r\n\r\n //text42: string;\r\n //content: string;\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n //this.text42 = \"text42\";\r\n //this.content = \"\";\r\n\r\n\r\n\r\n this.dummy42 = new Dummy(42, \"dummy42\", new Date());\r\n this.listLeft1 = [\r\n new Dummy(1, \"listLeft1_1\", new Date()),\r\n new Dummy(2, \"listLeft1_2\", new Date()),\r\n new Dummy(3, \"listLeft1_3\", new Date()),\r\n new Dummy(4, \"listLeft1_4\", new Date()),\r\n new Dummy(5, \"listLeft1_5\", new Date()),\r\n new Dummy(6, \"listLeft1_6\", new Date()),\r\n new Dummy(7, \"listLeft1_7\", new Date()),\r\n new Dummy(8, \"listLeft1_8\", new Date())\r\n ];\r\n this.listRight1 = [];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n //this.text42 = \"\";\r\n //this.content = \"\";\r\n\r\n\r\n\r\n this.dummy42 = new Dummy(42, \"dummy42\", new Date());\r\n this.listLeft1 = [\r\n new Dummy(1, \"listLeft1_1\", new Date()),\r\n new Dummy(2, \"listLeft1_2\", new Date()),\r\n new Dummy(3, \"listLeft1_3\", new Date()),\r\n new Dummy(4, \"listLeft1_4\", new Date()),\r\n new Dummy(5, \"listLeft1_5\", new Date()),\r\n new Dummy(6, \"listLeft1_6\", new Date()),\r\n new Dummy(7, \"listLeft1_7\", new Date()),\r\n new Dummy(8, \"listLeft1_8\", new Date())\r\n ];\r\n this.listRight1 = [];\r\n }\r\n\r\n\r\n\r\n //// test only\r\n //updateText42(e) {\r\n // this.text42 = e.value;\r\n //}\r\n\r\n\r\n\r\n dummy42: Dummy;\r\n listLeft1: Dummy[];\r\n listRight1: Dummy[];\r\n\r\n //listLeft2 = [\"listLeft2_1\", \"listLeft2_2\", \"listLeft2_3\", \"listLeft2_4\", \"listLeft2_5\", \"listLeft2_6\", \"listLeft2_7\", \"listLeft2_8\"];\r\n //listRight2: string[] = [];\r\n\r\n\r\n\r\n onSingleDragStart(e) {\r\n e.itemData = e.fromData;\r\n e.itemData.source = \"single\";\r\n }\r\n\r\n onLeftDragStart(e) {\r\n e.itemData = e.fromData[e.fromIndex];\r\n e.itemData.source = \"left\";\r\n }\r\n\r\n onRightDragStart(e) {\r\n e.itemData = e.fromData[e.fromIndex];\r\n e.itemData.source = \"right\";\r\n }\r\n\r\n\r\n\r\n onRightDrop(e) {\r\n if (e.itemData.name == \"dummy42\") {\r\n this.listRight1.push(e.itemData);\r\n }\r\n\r\n let indexLeft = this.listLeft1.indexOf(e.itemData);\r\n let indexRight = this.listRight1.indexOf(e.itemData);\r\n if (indexLeft >= 0) {\r\n //this.listLeft1.splice(indexLeft, 1); //links entfernen, wenn gewünscht\r\n\r\n if (indexRight < 0) { // nur einfügen, wenn noch nicht drin\r\n this.listRight1.push(e.itemData);\r\n }\r\n }\r\n\r\n // müsste an der richtigen position eingefügt werden...\r\n }\r\n\r\n onTrashDrop(e) {\r\n if (e.itemData.source != \"right\") {\r\n return;\r\n }\r\n\r\n let indexRight = this.listRight1.indexOf(e.itemData);\r\n if (indexRight >= 0) {\r\n this.listRight1.splice(indexRight, 1); //rechts entfernen\r\n }\r\n }\r\n\r\n\r\n\r\n onRightReorder(e) {\r\n this.listRight1.splice(e.fromIndex, 1);\r\n this.listRight1.splice(e.toIndex, 0, e.itemData);\r\n }\r\n}\r\n\r\nexport class Dummy {\r\n constructor(\r\n public id?: number,\r\n public name?: string,\r\n public created?: Date\r\n ) {\r\n\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <div slot=\"content\" class=\"h-100 p-2\">\r\n <div class=\"h-100 w-100 mx-auto\">\r\n <!-- (onRowInserted)=\"rowInserted($event)\" -->\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"templates\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n (onRowUpdated)=\"rowUpdated($event)\"\r\n (onRowRemoved)=\"rowRemoved($event)\">\r\n\r\n <!-- [allowAdding]=\"true\" -->\r\n <dxo-editing mode=\"cell\"\r\n [allowUpdating]=\"true\"\r\n [allowDeleting]=\"true\"\r\n [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie das Template wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Template löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n\r\n\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"TemplateListStateNewUIV3\"></dxo-state-storing>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newTemplateButtonTemplate'\">\r\n <div id=\"addButton\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues Template' | translate }}\" [disabled]=\"!canAddTemplate\" (onClick)=\"showAddTemplate()\"></dx-button>\r\n </div>\r\n <dx-tooltip target=\"#addButton\"\r\n *ngIf=\"!canAddTemplate\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"true\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\"><div> {{ 'Sie haben die maximale Anzahl an Templates in ihrem Account erreicht.' | translate }}</div></div>\r\n </dx-tooltip>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'helpButtonTemplate'\">\r\n <np-help-button>\r\n <np-help-option text=\"Wiki\" icon=\"images/Wiki.svg\" link=\"https://knowledge.nextpim.de/grundlagen?utm_source=app.nextpim.de&utm_medium=affiliate&utm_campaign=wikilink#verwendung-des-template-editors\"></np-help-option>\r\n <np-help-option text=\"YouTube\" icon=\"images/YouTube.svg\" link=\"https://www.youtube.com/watch?v=VtYAW8lhN40\"></np-help-option>\r\n </np-help-button>\r\n </div>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Template' | translate }}\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"remarks\" caption=\"{{ 'Bemerkungen' | translate }}\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"isExportTemplate\" caption=\"{{ 'Export Template' | translate }}?\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"deleteEmptyFeatures\" caption=\"{{ 'Leere Features löschen ' | translate }}?\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"columnCount\" caption=\"{{ 'Anzahl Spalten' | translate }}\" [allowEditing]=\"false\" dataType=\"number\" [width]=\"125\"></dxi-column>\r\n <dxi-column dataField=\"created\" caption=\"{{ 'Angelegt' | translate }}\" [allowEditing]=\"false\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n <dxi-column dataField=\"lastChange\" caption=\"{{ 'Änderung' | translate }}\" [allowEditing]=\"false\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n\r\n <dxi-column caption=\"\" width=\"75\" cellTemplate=\"duplicateTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let d of 'duplicateTemplate'\">\r\n <a (click)=\"duplicateTemplate(d)\" class=\"dx-link glyphicon glyphicon-duplicate mr-2\" title=\"{{ 'Template duplizieren' | translate }}\"></a>\r\n <a (click)=\"editTemplate(d)\" class=\"dx-link dx-link-edit dx-icon-edit dx-link-icon mr-2\" title=\"{{ 'Template bearbeiten' | translate }}\"></a>\r\n </div>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n\r\n\r\n\r\n<template-editor-dialog *ngIf=\"editorVisible\"\r\n [(visible)]=\"editorVisible\"\r\n [showSelector]=\"false\"\r\n [exportMode]=\"exportMode\">\r\n</template-editor-dialog>\r\n\r\n\r\n\r\n<dx-popup class=\"popup\"\r\n [width]=\"600\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Neues Template' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"addTemplateVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <newTemplate (onAdded)=\"addTemplate($event)\"></newTemplate>\r\n </div>\r\n</dx-popup>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Template } from \"../Model/Catalog/Template\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { TemplateService } from \"../Services/template.service\";\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\n\r\n@Component({\r\n selector: \"templateList\",\r\n templateUrl: \"templateList.component.html\",\r\n styleUrls: [\"./templateList.component.css\"]\r\n})\r\nexport class TemplateListComponent implements OnInit {\r\n\r\n exportMode: boolean = false;\r\n editorVisible: boolean = false;\r\n public canAddTemplate: boolean = false;\r\n\r\n txtDuplikat: string = null;\r\n\r\n constructor(public modelService: ModelService, public templateService: TemplateService, public translate: TranslateService) {\r\n this.getAddTemplateHint = this.getAddTemplateHint.bind(this);\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n if (this.modelService.router.url === '/templates') {\r\n this.translate.get('Excel Templates').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n this.templateService.getTemplates();\r\n\r\n this.txtDuplikat = this.translate.instant('Duplikat');\r\n\r\n this.canAddTemplate = await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id));\r\n }\r\n\r\n public onLogoClicked() {\r\n this.modelService.router.navigate([\"/catalogs\"]);\r\n }\r\n\r\n\r\n\r\n get templates(): Template[] {\r\n return this.templateService.templates;\r\n }\r\n\r\n\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newTemplateButtonTemplate'\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'helpButtonTemplate'\r\n });\r\n }\r\n\r\n\r\n\r\n public addTemplateVisible = false;\r\n showAddTemplate() {\r\n this.addTemplateVisible = true;\r\n }\r\n\r\n\r\n\r\n async addTemplate(e) {\r\n this.addTemplateVisible = false;\r\n\r\n let newTemplate = new Template(); // data würde an sich auch gehen... vllt., ABER der CTOR initialisiert noch ein bissel was...\r\n newTemplate.lastChange = newTemplate.created; // Wird nicht vom CTOR gesetzt\r\n newTemplate.isExportTemplate = true;\r\n\r\n newTemplate.name = e;\r\n\r\n await this.templateService.addTemplate(newTemplate);\r\n this.canAddTemplate = await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id));\r\n }\r\n\r\n getAddTemplateHint() {\r\n if (this.canAddTemplate)\r\n return null;\r\n\r\n return this.translate.instant(\"In ihrer Lizenz dürfen Sie keine Templates mehr anlegen.\");\r\n }\r\n\r\n rowUpdated(e) {\r\n let template = e.data as Template;\r\n\r\n template.lastChange = new Date();\r\n\r\n this.templateService.saveTemplate(template, true);\r\n }\r\n\r\n async rowRemoved(e) {\r\n let template = e.data as Template;\r\n\r\n await this.templateService.deleteTemplate(template);\r\n\r\n e.cancel = true;\r\n\r\n this.canAddTemplate = await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id));\r\n }\r\n\r\n\r\n\r\n async duplicateTemplate(e) {\r\n if (!this.canAddTemplate) {\r\n this.modelService.systemService.notifyWarning(this.translate.instant(\"In ihrer Lizenz dürfen Sie keine Templates mehr anlegen.\"));\r\n return;\r\n }\r\n\r\n let templatetemplate = e.data as Template;\r\n\r\n let copiedTemplate = new Template(); // data würde an sich auch gehen... vllt., ABER der CTOR initialisiert noch ein bissel was...\r\n copiedTemplate.lastChange = copiedTemplate.created; // Wird nicht vom CTOR gesetzt\r\n copiedTemplate.isExportTemplate = templatetemplate.isExportTemplate;\r\n\r\n copiedTemplate.customerId = templatetemplate.customerId;\r\n copiedTemplate.name = templatetemplate.name + \" - \" + this.txtDuplikat;\r\n copiedTemplate.remarks = templatetemplate.remarks;\r\n copiedTemplate.isUseable = templatetemplate.isUseable;\r\n copiedTemplate.templateItems = templatetemplate.templateItems;\r\n\r\n await this.templateService.addTemplate(copiedTemplate);\r\n\r\n this.canAddTemplate = await lastValueFrom(this.templateService.canCustomerAddTemplate(this.modelService.loginService.currentCustomer.id));\r\n }\r\n\r\n editTemplate(e) {\r\n let template = e.data as Template;\r\n this.editorVisible = true;\r\n this.templateService.template = template;\r\n\r\n this.exportMode = template.isExportTemplate;\r\n\r\n }\r\n}\r\n","export class SupplierPidMappingInfo {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n public gtin?: string,\r\n public artikelNumber?: string,\r\n ) {\r\n\r\n }\r\n}\r\n","\r\nimport { Component, ViewChild } from \"@angular/core\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\n\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { Catalog } from \"../../../../Model/Catalog/catalog\";\r\nimport { ModelService } from \"../../../../Services/model.service\";\r\n\r\n@Component({\r\n selector: \"importSupplierPidMappings\",\r\n templateUrl: \"supplierPidMappings.component.html\"\r\n})\r\nexport class ImportSupplierPidMappingsComponent {\r\n @ViewChild(DxFileUploaderComponent, { static: true })\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n value: any[] = [];\r\n model: Catalog[];\r\n uploadHeaders: any;\r\n\r\n constructor(private modelService: ModelService, private oAuthService: OAuthService) {\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n\r\n this.uploadHeaders = {\r\n CustomerId: this.modelService.loginService.currentUser.customerId\r\n }\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded() {\r\n this.dxfileuploader.instance.reset();\r\n }\r\n}\r\n","<dx-file-uploader\r\n #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/importSupplierPidMappingsChunky\"\r\n [uploadHeaders]=\"uploadHeaders\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n accept=\".xlsx\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\">\r\n</dx-file-uploader>\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid #mappingsGrid\r\n id=\"mappingsGrid\"\r\n class=\"h-100\"\r\n (onToolbarPreparing)=\"onContentToolbarPreparing($event)\"\r\n [dataSource]=\"supplierPidMappings\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Mappings im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowRemoving)=\"deleteSupplierPidMapping($event)\"\r\n (onRowUpdated)=\"update($event)\"\r\n (onRowUpdating)=\"onRowUpdating($event)\">\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'addMappingButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Artikelnummer' | translate }}\" (onClick)=\"addSupplierPidMapping()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'deleteAllButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"danger\" text=\"{{ 'Alles Löschen' | translate }}\" (onClick)=\"deleteAllSupplierPidMapping()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'excelExportButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Excel Export' | translate }}\" (onClick)=\"exportExcel()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'excelImportButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Excel Import' | translate }}\" (onClick)=\"showImport()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'refreshButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Aktualisieren' | translate }}\" (onClick)=\"loadData()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'supplierSelectTemplate'\" class=\"toolbar-row\">\r\n <div *ngIf=\"modelService.loginService.hasAddonDEVELOPMENT\">\r\n <dx-drop-down-box id=\"suppliers\"\r\n [value]=\"selectedSupplier?.supplierId\"\r\n label=\"{{ 'Supplier' | translate }}\"\r\n valueExpr=\"supplierId\"\r\n displayExpr=\"supplierName\"\r\n width=\"500\"\r\n [dataSource]=\"suppliers\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-data-grid #suppliersGrid\r\n id=\"suppliersGrid\"\r\n [dataSource]=\"suppliers\"\r\n [selection]=\"{ mode: 'single' }\"\r\n [hoverStateEnabled]=\"true\"\r\n [paging]=\"{ enabled: true, pageSize: 10 }\"\r\n [filterRow]=\"{ visible: true }\"\r\n [scrolling]=\"{ mode: 'virtual' }\"\r\n [height]=\"345\"\r\n valueExpr=\"suplierId\"\r\n [(selectedRowKeys)]=\"selectedSupplierKey\"\r\n (onSelectionChanged)=\"supplierSelectionChanged($event)\"\r\n searchExpr=\"supplierName\"\r\n [searchEnabled]=\"true\">\r\n <dxi-column dataField=\"supplierName\" caption=\"{{ 'Lieferant' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"supplierId\" caption=\"{{ 'LieferantenId' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </dx-drop-down-box>\r\n\r\n <dx-load-panel #loadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [position]=\"{ of: '#suppliers' }\"\r\n [(visible)]=\"suppliersLoading\"\r\n [showIndicator]=\"true\"\r\n [showPane]=\"false\"\r\n [shading]=\"false\"\r\n [closeOnOutsideClick]=\"false\">\r\n </dx-load-panel>\r\n </div>\r\n </div>\r\n\r\n\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\" [allowSearch]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Mapping suchen' | translate }}\" width=\"250\"></dxo-search-panel>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-editing mode=\"cell\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie diese Zuordnung wirklich löschen' | translate }}?\" confirmDeleteTitle=\"{{ 'Übersetzung löschen' | translate }}\"></dxo-texts>\r\n </dxo-editing>\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"SupplierPidMappingsState\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"supplierPid\" caption=\"{{ 'Produktnummer' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"internationalPid\" caption=\"{{ 'Internationale ID' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"manufacturerName\" caption=\"{{ 'Herstellername' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"manufacturerAid\" caption=\"{{ 'Herstellernummer' | translate }}\" (onValueChanged)=\"update($event)\" [allowEditing]=\"true\"></dxi-column>\r\n\r\n\r\n <dxi-column dataField=\"usedSuppliers\" caption=\"{{ 'Gepflegte Lieferanten' | translate }}\" [allowEditing]=\"false\" [allowSearch]=\"true\"></dxi-column>\r\n\r\n\r\n <dxi-column *ngIf=\"selectedSupplier != null\" dataField=\"gtin\" caption=\"{{ 'Lieferanten Gtin' | translate }}\"></dxi-column>\r\n <dxi-column *ngIf=\"selectedSupplier != null\" dataField=\"artikelNumber\" caption=\"{{ 'Lieferanten Artikelnummer' | translate }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup *ngIf=\"importSupplierPidMappingsVisible\"\r\n [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Artikelnummern Mappings importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importSupplierPidMappingsVisible\"\r\n contentTemplate=\"popupContent\">\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <importSupplierPidMappings></importSupplierPidMappings>\r\n </div>\r\n</dx-popup>\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\n\r\nimport { AppUser } from \"../Model/user/AppUser\";\r\nimport isString from \"lodash.isstring\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { CustomerWiki } from \"../Model/System/CustomerWiki\";\r\n\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { SupplierPidMapping } from \"../Model/supplierPidMapping/SupplierPidMapping\";\r\nimport { ProductService } from \"../Services/CatalogManagement/product.service\";\r\nimport { ProductSupplier } from \"../Model/Catalog/ProductSupplier\";\r\nimport { SupplierPidMappingInfo } from \"../Model/supplierPidMapping/SupplierPidMappingSupplierInfo\";\r\nimport { DxDataGridComponent } from \"devextreme-angular\";\r\nimport * as dialog from \"devextreme/ui/dialog\";\r\nimport { SystemService } from \"../Services/system.service\";\r\n\r\n\r\n@Component({\r\n selector: \"supplierPidMappings\",\r\n templateUrl: \"supplierPidMapping.component.html\",\r\n styleUrls: [\"./supplierPidMapping.component.css\"]\r\n})\r\nexport class SupplierPidMappingComponent implements OnInit {\r\n @ViewChild(\"mappingsGrid\") mappingsGrid: DxDataGridComponent;\r\n @ViewChild(\"suppliersGrid\") suppliersGrid: DxDataGridComponent;\r\n\r\n user: AppUser;\r\n supplierPidMappings: SupplierPidMapping[];\r\n selectedSupplier: ProductSupplier;\r\n suppliers: ProductSupplier[] = [];\r\n selectedSupplierKey = [0];\r\n\r\n importSupplierPidMappingsVisible: boolean = false;\r\n suppliersLoading: boolean = false;\r\n popupDeleteTranslateVisible: boolean = false;\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public productService: ProductService, public systemService: SystemService) {\r\n this.exportExcel = this.exportExcel.bind(this);\r\n this.showImport = this.showImport.bind(this);\r\n this.addSupplierPidMapping = this.addSupplierPidMapping.bind(this);\r\n this.loadData = this.loadData.bind(this);\r\n this.supplierSelectionChanged = this.supplierSelectionChanged.bind(this);\r\n this.onRowPrepared = this.onRowPrepared.bind(this);\r\n\r\n this.translate.get('Artikelnummern Mapping').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n this.suppliersLoading = true;\r\n productService.getSuppliersInAccount(this.modelService.loginService.currentUser.customerId).toPromise().then(data => {\r\n data.forEach(supplier => {\r\n if (!this.suppliers.some(x => x.supplierName == supplier.supplierName && x.supplierId == supplier.supplierId))\r\n this.suppliers.push(supplier);\r\n });\r\n }).finally(() =>\r\n this.suppliersLoading = false\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.user = this.modelService.loginService.currentUser;\r\n this.loadData();\r\n }\r\n\r\n supplierIsUsed(supplier: ProductSupplier): boolean {\r\n if (!this.mappingsGrid)\r\n return false;\r\n\r\n let visibleMapppings = this.mappingsGrid.instance.getVisibleRows().map(x => x.data);\r\n return visibleMapppings.some(x => x.supplierInfos.some(s => s.id == supplier.supplierId && (s.artikelNumber || s.gtin)));\r\n }\r\n\r\n supplierSelectionChanged(e) {\r\n if (e.selectedRowsData && e.selectedRowsData.length > 0) {\r\n this.selectedSupplier = e.selectedRowsData[0];\r\n this.supplierPidMappings = this.supplierPidMappings.map(x => {\r\n x.gtin = this.getSupplierGtin(x);\r\n x.artikelNumber = this.getSupplierArtikelnumber(x);\r\n return x;\r\n });\r\n this.mappingsGrid.instance.repaint();\r\n }\r\n }\r\n\r\n onRowPrepared(e) {\r\n if (e.rowType == \"data\") {\r\n if (this.supplierIsUsed(e.data)) {\r\n e.rowElement.style.backgroundColor = \"#D6F5F3\";\r\n e.rowElement.className = e.rowElement.className.replace(\"dx-row-alt\", \"\");\r\n }\r\n }\r\n }\r\n\r\n\r\n onContentToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelImportButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelExportButtonTemplate',\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'deleteAllButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addMappingButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'refreshButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'supplierSelectTemplate',\r\n });\r\n }\r\n\r\n loadData() {\r\n this.modelService.supplierPidMappingService.getSupplierPidMappings().subscribe((result: SupplierPidMapping[]) => {\r\n this.supplierPidMappings = result;\r\n this.supplierPidMappings.forEach(x => {\r\n x.supplierInfos.forEach(supplierInfo => {\r\n if (!this.suppliers.some(supplier => supplier.supplierId == supplierInfo.id && supplier.supplierName == supplierInfo.name)) {\r\n var newSupplier = new ProductSupplier();\r\n newSupplier.supplierName = supplierInfo.name;\r\n newSupplier.supplierId = supplierInfo.id;\r\n this.suppliers.push(newSupplier);\r\n }\r\n });\r\n });\r\n\r\n if (this.selectedSupplier) {\r\n this.supplierPidMappings = this.supplierPidMappings.map(x => {\r\n x.gtin = this.getSupplierGtin(x);\r\n x.artikelNumber = this.getSupplierArtikelnumber(x);\r\n return x;\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n showImport() {\r\n\r\n this.importSupplierPidMappingsVisible = true;\r\n }\r\n\r\n update(event) {\r\n var pidMapping;\r\n\r\n if (isString(event)) {\r\n pidMapping = this.supplierPidMappings.find(item => item.id == event);\r\n } else {\r\n if (event.key == null)\r\n return;\r\n pidMapping = this.supplierPidMappings.find(item => item.id == event.key.id);\r\n }\r\n this.updateSupplierPidMapping(pidMapping);\r\n\r\n }\r\n\r\n private updateSupplierPidMapping(mapping: SupplierPidMapping) {\r\n this.modelService.supplierPidMappingService.updateSupplierPidMapping(mapping).subscribe((result: SupplierPidMapping) => {\r\n mapping.usedSuppliers = result.usedSuppliers;\r\n this.suppliersGrid.instance.refresh();\r\n });\r\n }\r\n\r\n addSupplierPidMapping() {\r\n this.modelService.supplierPidMappingService.addSupplierPidMapping().subscribe((result: SupplierPidMapping) => {\r\n this.supplierPidMappings.push(result);\r\n });\r\n }\r\n\r\n deleteSupplierPidMapping(event: MessageEvent<{ id: string }>) {\r\n this.modelService.supplierPidMappingService.deleteSupplierPidMapping(event.data.id).subscribe(() => {\r\n const index = this.supplierPidMappings.findIndex(spm => spm.id === event.data.id);\r\n if (index > -1) {\r\n this.supplierPidMappings.splice(index, this.supplierPidMappings.length);\r\n }\r\n });\r\n }\r\n\r\n async deleteAllSupplierPidMapping() {\r\n try {\r\n const userConfirm = await dialog.confirm(this.translate.instant(\"Sind Sie sicher, dass Sie alle Artikelnummern löschen möchten?\"), this.translate.instant(\"Alle Artikelnummern löschen\"));\r\n if (userConfirm) {\r\n this.modelService.supplierPidMappingService.deleteAllSupplierPidMapping().subscribe(() => {\r\n this.supplierPidMappings.splice(0, this.supplierPidMappings.length);\r\n this.systemService.notifyInfo(this.translate.instant('Alle Artikelnummern wurden gelöscht.'));\r\n });\r\n }\r\n } catch (e) {\r\n this.systemService.notifyWarning(this.translate.instant('Der Löschvorgang konnte nicht durchgeführt werden. Laden Sie die Seite neu und probieren Sie es erneut.'));\r\n }\r\n }\r\n\r\n exportExcel() {\r\n this.modelService.supplierPidMappingService.exportSupplierPidMappings(this.modelService.loginService.currentUser.customerId);\r\n this.modelService.systemService.notify(new Message(\"Der Export wird als Job ausgeführt.\"));\r\n }\r\n\r\n deleteAllTranslations() {\r\n this.popupDeleteTranslateVisible = true;\r\n }\r\n\r\n deleteAllTranslationsClose() {\r\n this.popupDeleteTranslateVisible = false;\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n\r\n\r\n getUsedSuppliers(data) {\r\n return data.data.usedSuppliers;\r\n }\r\n\r\n getSupplierGtin(data) {\r\n let supplierInfo = data.supplierInfos.find((s: SupplierPidMappingInfo) => s.id == this.selectedSupplier.supplierId && s.name == this.selectedSupplier.supplierName);\r\n if (supplierInfo == null) {\r\n supplierInfo = new SupplierPidMappingInfo(this.selectedSupplier.supplierId, this.selectedSupplier.supplierName);\r\n data.supplierInfos.push(supplierInfo);\r\n }\r\n\r\n return supplierInfo.gtin || \"\";\r\n }\r\n\r\n getSupplierArtikelnumber(data) {\r\n let supplierInfo = data.supplierInfos.find((s: SupplierPidMappingInfo) => s.id == this.selectedSupplier.supplierId && s.name == this.selectedSupplier.supplierName);\r\n if (supplierInfo == null) {\r\n supplierInfo = new SupplierPidMappingInfo(this.selectedSupplier.supplierId, this.selectedSupplier.supplierName);\r\n data.supplierInfos.push(supplierInfo);\r\n }\r\n\r\n return supplierInfo.artikelNumber || \"\";\r\n }\r\n\r\n\r\n\r\n onRowUpdating(event) {\r\n let supplierPidMapping = event.key;\r\n if (event.newData.gtin) {\r\n let supplierInfo = supplierPidMapping.supplierInfos.find((s: SupplierPidMappingInfo) => s.id == this.selectedSupplier.supplierId && s.name == this.selectedSupplier.supplierName);\r\n if (supplierInfo == null) {\r\n supplierInfo = new SupplierPidMappingInfo(this.selectedSupplier.supplierId, this.selectedSupplier.supplierName);\r\n supplierPidMapping.supplierInfos.push(supplierInfo);\r\n }\r\n supplierInfo.gtin = event.newData.gtin;\r\n this.updateSupplierPidMapping(supplierPidMapping);\r\n }\r\n if (event.newData.artikelNumber) {\r\n let supplierInfo = supplierPidMapping.supplierInfos.find((s: SupplierPidMappingInfo) => s.id == this.selectedSupplier.supplierId && s.name == this.selectedSupplier.supplierName);\r\n if (supplierInfo == null) {\r\n supplierInfo = new SupplierPidMappingInfo(this.selectedSupplier.supplierId, this.selectedSupplier.supplierName);\r\n supplierPidMapping.supplierInfos.push(supplierInfo);\r\n }\r\n supplierInfo.artikelNumber = event.newData.artikelNumber;\r\n this.updateSupplierPidMapping(supplierPidMapping);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\" helpSwitch=\"true\">\r\n <div slot=\"content\" class=\"p-3 flex-fill w-100 mx-auto overflow-hidden\">\r\n <dx-data-grid id=\"gridContainer\"\r\n class=\"h-100\"\r\n [dataSource]=\"dataSource\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [showBorders]=\"true\"\r\n [showColumnHeaders]=\"false\"\r\n mode=\"multiple\">\r\n\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\"></dxo-search-panel>\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"true\"></dxo-grouping>\r\n\r\n <dxo-editing mode=\"popup\"\r\n [allowUpdating]=\"isAdmin()\"\r\n [allowDeleting]=\"isAdmin()\"\r\n [allowAdding]=\"isAdmin()\">\r\n <dxo-popup title=\"Edit article\"\r\n [showTitle]=\"true\"\r\n width=\"80%\"\r\n height=\"80%\">\r\n </dxo-popup>\r\n <dxo-form class=\"flex-fill w-100\" [colCount]=\"1\">\r\n <dxi-item itemType=\"group\" [colCount]=\"3\">\r\n <dxi-item dataField=\"headLine\"></dxi-item>\r\n <dxi-item dataField=\"releaseDate\" editorType=\"dxDateBox\"></dxi-item>\r\n <dxi-item dataField=\"active\" editorType=\"dxSwitch\"></dxi-item>\r\n </dxi-item>\r\n <dxi-item itemType=\"group\">\r\n <dxi-item dataField=\"content\"\r\n editorType=\"dxHtmlEditor\"\r\n [colSpan]=\"3\"\r\n [editorOptions]=\"{ height: 420 }\">\r\n </dxi-item>\r\n </dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n <div *dxTemplate=\"let article of 'detail'\">\r\n <dx-html-editor readOnly=\"true\" value=\"{{ article.data.content }}\"></dx-html-editor>\r\n </div>\r\n <dxi-column caption=\"new\" [width]=\"25\" [allowEditing]=\"false\" cellTemplate=\"newCellTemplate\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let d of 'newCellTemplate'\">\r\n <span *ngIf=\"needsBadge(d)\" class=\"badge\">0</span>\r\n </div>\r\n\r\n <dxi-column dataField=\"headLine\"></dxi-column>\r\n <dxi-column dataField=\"content\" [visible]=\"false\"></dxi-column>\r\n <dxi-column dataField=\"releaseDate\" dataType=\"date\" name=\"releaseDateGroup\" [groupIndex]=\"0\" sortOrder=\"desc\"\r\n [calculateGroupValue]=\"groupByDate\"\r\n format=\"MMM yyyy\" \r\n ></dxi-column>\r\n <dxi-column dataField=\"releaseDate\" dataType=\"date\" sortOrder=\"desc\" alignment=\"right\"\r\n [allowEditing]=\"false\"\r\n [calculateSortValue]=\"calculateSortValue\"></dxi-column>\r\n\r\n <dxi-column dataField=\"active\" [visible]=\"false\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n\r\n <!--<dx-button text=\"New Article\" type=\"default\" (onClick)=\"clickCreate()\">\r\n </dx-button>-->\r\n </div>\r\n\r\n <!--<dx-popup [width]=\"1000\"\r\n height=\"auto\"\r\n [showTitle]=\"true\"\r\n title=\"Create article\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n position=\"center\"\r\n [(visible)]=\"popupVisible\">\r\n <dxi-toolbar-item widget=\"dxButton\" toolbar=\"bottom\" location=\"before\" [options]=\"saveOption\">\r\n </dxi-toolbar-item>\r\n <dxo-position at=\"bottom\" my=\"center\"> </dxo-position>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field \">\r\n <div class=\"dx-field-label\">HeadLine</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newArticle.headLine\" placeholder=\"HeadLine\" [showClearButton]=\"true\"> </dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">Content</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-area class=\"border\" placeholder=\"Content\" [(value)]=\"newArticle.content\" [showClearButton]=\"true\" height=140 autoResizeEnabled=true> </dx-text-area>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-popup>-->\r\n\r\n\r\n </content-column>\r\n</fullscreen-page>\r\n","import { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { forEach } from \"jszip\";\r\nimport { NewsArticle } from \"../Model/news/newsArticle\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { NewsService } from \"../Services/news.service\";\r\nimport { SystemService } from \"../Services/system.service\";\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"news\",\r\n templateUrl: \"news.component.html\",\r\n styleUrls: [\"news.component.css\"]\r\n})\r\nexport class NewsComponent implements OnDestroy {\r\n public articles: NewsArticle[] = [];\r\n public showBadges: boolean = false;\r\n public lastRead: Date;\r\n dataSource: any = {};\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public newsService: NewsService) {\r\n\r\n this.refreshArticles = this.refreshArticles.bind(this);\r\n this.checkNews = this.checkNews.bind(this);\r\n this.needsBadge = this.needsBadge.bind(this);\r\n\r\n\r\n this.dataSource.store = new CustomStore({\r\n key: \"id\",\r\n load: function (loadOptions: any) {\r\n return newsService.getSection(loadOptions.skip || 0, loadOptions.take || 20, modelService.loginService.isAdmin).toPromise()\r\n .then((data: any) => {\r\n let articles: NewsArticle[] = data;\r\n return articles;\r\n });\r\n },\r\n insert: function (values) {\r\n values.id = 0;\r\n return newsService.update(values).toPromise()\r\n .then((data: any) => {\r\n let articles: NewsArticle[] = data;\r\n newsService.checkNewNews();\r\n return articles;\r\n });\r\n },\r\n update: function (key, values) {\r\n return newsService.getArticles(key).toPromise()\r\n .then((article: NewsArticle) => {\r\n article.headLine = values.headLine || article.headLine;\r\n article.content = values.content || article.content;\r\n article.active = values.active != undefined ? values.active: article.active;\r\n if (values.releaseDate != undefined)\r\n article.releaseDate = new Date(values.releaseDate);\r\n\r\n return newsService.update(article).toPromise()\r\n .then((data: any) => {\r\n let articles: NewsArticle[] = data;\r\n newsService.checkNewNews();\r\n return articles;\r\n });\r\n });\r\n },\r\n remove: function (key) {\r\n return lastValueFrom(newsService.delete(key)).then(() => {\r\n newsService.checkNewNews(); \r\n });\r\n }\r\n });\r\n\r\n /*this.lastRead = new Date(Date.parse(this.modelService.loginService.currentUser.lastNewsRead));*/\r\n\r\n\r\n this.lastRead = this.modelService.loginService.lastNewRead;\r\n this.modelService.loginService.lastNewRead = new Date();\r\n\r\n this.checkNews();\r\n }\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n public isAdmin() {\r\n return this.modelService.loginService.isAdmin;\r\n }\r\n\r\n needsBadge(data) {\r\n if (data == undefined || this.lastRead == undefined)\r\n return false;\r\n\r\n let date = Date.parse(data.data.releaseDate);\r\n\r\n if (date > this.lastRead.getTime() && data.data.active)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n checkNews() {\r\n this.newsService.getNewNewsAmount(this.lastRead).subscribe((amount: number) => {\r\n if (amount > 0)\r\n this.showBadges = true;\r\n }, e => {\r\n console.log(\"error checking news\");\r\n });\r\n }\r\n\r\n refreshArticles() {\r\n var amount = this.articles.length <= 0 ? 50 : this.articles.length;\r\n this.articles = [];\r\n this.newsService.getSection(0, amount, this.modelService.loginService.isAdmin).subscribe((e: NewsArticle[]) => {\r\n this.articles.push(...e);\r\n });\r\n }\r\n\r\n groupByDate(rowData) {\r\n let currentCreatedDate = rowData.releaseDate;\r\n\r\n let groupingCreatedDate = new Date(currentCreatedDate);\r\n groupingCreatedDate.setHours(0, 0, 0, 0);\r\n groupingCreatedDate.setDate(1);\r\n\r\n let result = groupingCreatedDate;\r\n //let month = result.toLocaleString('default', { month: 'long' });\r\n return result; /*result.getMonth() + 1 + \".\" + result.getFullYear()*/ /*month+ \" \" + result.getFullYear()*/\r\n }\r\n\r\n calculateSortValue(rowData) {\r\n let d: Date = new Date(rowData.releaseDate);\r\n return d.getTime();\r\n }\r\n\r\n /* customizeDateText(cellInfo) {\r\n let d: Date = new Date(cellInfo.value);\r\n return d.toLocaleString('default', { month: 'long' }) + \" \" + d.getFullYear();\r\n }*/\r\n\r\n /* createArticle(article: NewsArticle) {\r\n article.id = 0;\r\n this.newsService.update(article).subscribe((result: NewsArticle) => {\r\n this.modelService.systemService.notify(new Message(\"Article created\"));\r\n }, () => {\r\n this.modelService.systemService.notify(new Message(\"Error while createing article\", \"error\"));\r\n });\r\n }\r\n \r\n saveArticle(article: NewsArticle) {\r\n this.newsService.update(article).subscribe((result: NewsArticle) => {\r\n this.modelService.systemService.notify(new Message(\"Article saved\"));\r\n }, () => {\r\n this.modelService.systemService.notify(new Message(\"Error while saveing article\", \"error\"));\r\n });\r\n }\r\n \r\n deleteArticle(id: number) {\r\n this.newsService.delete(id).subscribe((result: NewsArticle) => {\r\n this.modelService.systemService.notify(new Message(\"Article delete\"));\r\n }, () => {\r\n this.modelService.systemService.notify(new Message(\"Error while deleteing article\", \"error\"));\r\n });\r\n }\r\n \r\n onSaved(e) {\r\n const that = this;\r\n e.changes.forEach(function (value) {\r\n switch (value.type) {\r\n case \"remove\":\r\n that.deleteArticle(value.key);\r\n break;\r\n case \"update\":\r\n that.saveArticle(value.data);\r\n break;\r\n case \"insert\":\r\n that.createArticle(value.data);\r\n break;\r\n }\r\n });\r\n }*/\r\n\r\n\r\n\r\n}\r\n","export class CatalogItem {\r\n\r\n constructor(\r\n public ProductId?: string,\r\n public CategoryId?: string,\r\n public CatalogId?: string,\r\n public CustomerId?: string,\r\n ) {\r\n\r\n }\r\n}\r\n","import { CatalogItem } from \"./CatalogItem\";\r\n\r\nexport class TransferCatalogItem {\r\n\r\n constructor(\r\n public itemsToTransfer?: CatalogItem[],\r\n public targetItem?: CatalogItem\r\n ) {\r\n\r\n }\r\n}\r\n","export enum TransferItemModes {\r\n CategoriesAndProducts = \"Kategorien und Produkte\",\r\n OnlyProducts = \"nur Produkte\",\r\n OnlyCategories = \"nur Kategorien\"\r\n}\r\n","<fullscreen-page>\r\n <content-column look=\"dark\">\r\n <div slot=\"content\" class=\"h-100 p-2\">\r\n\r\n <div class=\"d-flex align-items-center h-100 w-100\">\r\n <div class=\"d-flex flex-column h-100 w-100\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"dx-fieldset my-0 flex-fill\">\r\n <div *ngIf=\"!isTargetCatalogVirtual\" class=\"dx-field justify-content-center\">\r\n <dx-radio-group [items]=\"operationsNonVirtual\"\r\n [(value)]=\"selectedOperation\"\r\n layout=\"horizontal\"\r\n [disabled]=\"operationsDisabled\">\r\n </dx-radio-group>\r\n </div>\r\n <div *ngIf=\"isTargetCatalogVirtual\" class=\"dx-field justify-content-center\">\r\n <dx-radio-group [items]=\"operationsVirtual\"\r\n [(value)]=\"selectedOperation\"\r\n layout=\"horizontal\"\r\n [disabled]=\"operationsDisabled\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n <div class=\"dx-field align-items-stretch\">\r\n <dx-select-box [dataSource]=\"transferModeItems\"\r\n displayExpr=\"value\"\r\n valueExpr=\"value\"\r\n [(value)]=\"transferMode\"\r\n label=\"{{ 'Übertragungsmodus' | translate }}\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-row h-100 w-100\">\r\n <div class=\"d-flex flex-column h-100 w-50 mr-1\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">\r\n {{ 'Account' | translate }}\r\n </div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-select-box class=\"w-100\"\r\n [value]=\"modelService?.loginService?.currentUser?.customerId\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n [searchEnabled]=\"true\"\r\n [readOnly]=\"true\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">\r\n {{ 'Quellkatalog' | translate }}\r\n </div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-select-box class=\"w-100\"\r\n [items]=\"sourceCatalogs\"\r\n valueExpr=\"id\"\r\n [value]=\"selectedSourceCatalogId\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n (onSelectionChanged)=\"sourceSelected($event)\"\r\n noDataText=\"{{ 'keine Kataloge im Account' | translate }}\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"px-6 pt-6 align-self-end\" style=\"padding:6px;\">\r\n <a (click)=\"toggleFilter()\"><span class='glyphicon glyphicon-filter' style=\"font-size:20px;\"></span></a>\r\n </div>\r\n\r\n <div class=\"px-3 pb-2\" *ngIf=\"showFilter\">\r\n <productStateOptions\r\n [stateValue]=\"selectedStates\"\r\n (onValueChanged)=\"updateState($event)\"\r\n ></productStateOptions>\r\n <productSearchOptions></productSearchOptions>\r\n </div>\r\n\r\n <div class=\"flex-fill overflow-hidden\">\r\n <dx-tree-list #treeListSource\r\n id=\"treeListSource\"\r\n class=\"tree\"\r\n [dataSource]=\"dataSourceSource\"\r\n [showBorders]=\"false\"\r\n [showColumnHeaders]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [remoteOperations]=\"{ filtering: true }\"\r\n keyExpr=\"treeElementId\"\r\n parentIdExpr=\"parent\"\r\n hasItemsExpr=\"hasChilds\"\r\n rootValue=\"0\"\r\n [(selectedRowKeys)]=\"treeSelectedRowKeysSource\"\r\n (onRowClick)=\"onRowClick($event)\"\r\n (onCellPrepared)=\"onCellPreparedSource($event)\">\r\n <dxo-search-panel [visible]=\"true\" placeholder=\"{{ 'Produkte suchen' | translate }}\" width=\"auto\" class=\"treeSearch\"></dxo-search-panel>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <!--<dxo-selection mode=\"single\"></dxo-selection>-->\r\n <dxo-selection [allowSelectAll]=\"false\"\r\n mode=\"multiple\"\r\n [recursive]=\"false\">\r\n </dxo-selection>\r\n\r\n <dxo-row-dragging [onDragStart]=\"onDragStartSource\"\r\n group=\"catalogs\"\r\n [showDragIcons]=\"false\">\r\n </dxo-row-dragging>\r\n\r\n <dxi-column dataField=\"Title\" cellTemplate=\"cellTemplate\"></dxi-column>\r\n <dxi-column dataField=\"order\" [visible]=false sortOrder=\"asc\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let itemObj of 'cellTemplate'\">\r\n <div class=\"treeitem\" id=\"image{{itemObj.data.treeElementId}}\">\r\n <div class=\"container-fluid h-100\">\r\n <div class=\"row h-100 d-flex\">\r\n <div class=\"col order-0 treeitemimage\">\r\n <span *ngIf=\"!itemObj.data.imageUrl\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 36px;\"></span>\r\n <img *ngIf=\"itemObj.data.imageUrl\" src=\"{{itemObj.data.imageUrl}}\" style=\"height: 40px;\" />\r\n </div>\r\n\r\n <div class=\"col order-1 overflow-hidden treeitemtext\">\r\n\r\n <div class=\"treeitemheader\">\r\n {{itemObj.data.text}}\r\n <!--<span *ngIf=\"hasSpid(itemObj.data.supplierPid)\" class=\"treeitemheader np-green\">\r\n {{itemObj.data.text}}\r\n </span>\r\n <span *ngIf=\"!hasSpid(itemObj.data.supplierPid)\" class=\"treeitemheader\">\r\n {{itemObj.data.text}}\r\n </span>-->\r\n\r\n\r\n </div>\r\n\r\n <div class=\"treeitemdetail\">\r\n <div [ngSwitch]=\"itemObj.data.type\">\r\n <!--CATALOG-->\r\n <div *ngSwitchCase=\"'cat'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n\r\n <!--CATEGORY-->\r\n <div *ngSwitchCase=\"'grp'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n\r\n <!--PRODUCT-->\r\n <div *ngSwitchCase=\"'pro'\">\r\n {{itemObj.data.supplierPid}}\r\n <!--<span *ngIf=\"hasSpid(itemObj.data.supplierPid)\" class=\"np-green\">\r\n {{itemObj.data.supplierPid}}\r\n </span>\r\n <span *ngIf=\"!hasSpid(itemObj.data.supplierPid)\" class=\"\">\r\n {{itemObj.data.supplierPid}}\r\n </span>-->\r\n <i *ngIf=\"hasSpid(itemObj.data.supplierPid)\" class=\"dx-icon dx-icon-check np-icon-check\"></i><!-- np-green -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column h-100 w-50 ml-1\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">\r\n {{ 'Account' | translate }}\r\n </div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-select-box class=\"w-100\"\r\n [(value)]=\"selectedCustomerId\"\r\n [dataSource]=\"customers\"\r\n displayExpr=\"name\"\r\n valueExpr=\"id\"\r\n [searchEnabled]=\"true\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">\r\n {{ 'Zielkatalog' | translate }}\r\n </div>\r\n <div class=\"dx-field-value d-flex flex-row\">\r\n <dx-select-box class=\"w-100\"\r\n [items]=\"targetCatalogs\"\r\n valueExpr=\"id\"\r\n [value]=\"selectedTargetCatalogId\"\r\n displayExpr=\"catalogName\"\r\n [searchEnabled]=\"true\"\r\n (onSelectionChanged)=\"targetSelected($event)\"\r\n noDataText=\"{{ 'keine Kataloge im Account' | translate }}\"\r\n fieldTemplate=\"field\"\r\n itemTemplate=\"item\">\r\n\r\n <div *dxTemplate=\"let data of 'field'\">\r\n <dx-text-box [ngClass]=\"{ 'virtualCatalogColor': data?.isVirtual }\"\r\n [value]=\"data?.catalogName\">\r\n </dx-text-box>\r\n </div>\r\n\r\n <div *dxTemplate=\"let data of 'item'\" [ngClass]=\"{ 'virtualCatalogColor': data.isVirtual }\">\r\n {{ data.catalogName }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"px-6 pt-6 align-self-end\" style=\"padding:6px;\">\r\n <a (click)=\"toggleFilterTarget()\"><span class='glyphicon glyphicon-filter' style=\"font-size:20px;\"></span></a>\r\n </div>\r\n\r\n <div class=\"px-3 pb-2\" *ngIf=\"showFilterTarget\">\r\n <productStateOptions\r\n [stateValue]=\"selectedStatesTarget\"\r\n [isTarget]=\"true\"\r\n (onValueChanged)=\"updateStateTarget($event)\"\r\n ></productStateOptions>\r\n <productSearchOptions [isTarget]=\"true\" ></productSearchOptions>\r\n </div>\r\n <div class=\"flex-fill overflow-hidden\">\r\n <dx-tree-list #treeListTarget\r\n id=\"treeListTarget\"\r\n class=\"tree\"\r\n [dataSource]=\"dataSourceTarget\"\r\n [showBorders]=\"false\"\r\n [showColumnHeaders]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [remoteOperations]=\"{ filtering: true }\"\r\n keyExpr=\"treeElementId\"\r\n parentIdExpr=\"parent\"\r\n hasItemsExpr=\"hasChilds\"\r\n rootValue=\"0\"\r\n (onSelectionChanged)=\"onSelectionChangedTarget($event)\"\r\n [(selectedRowKeys)]=\"treeSelectedRowKeysTarget\"\r\n (onRowClick)=\"onRowClick($event)\"\r\n (onCellPrepared)=\"onCellPreparedSourceTarget($event)\">\r\n\r\n <dxo-search-panel [visible]=\"true\" placeholder=\"{{ 'Produkte suchen' | translate }}\" width=\"auto\" class=\"treeSearch\"></dxo-search-panel>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n\r\n <dxo-row-dragging [onAdd]=\"onAddTarget\"\r\n [onDragStart]=\"onDragStartTarget\"\r\n group=\"catalogs\"\r\n [allowDropInsideItem]=\"true\"\r\n [allowReordering]=\"false\"\r\n [showDragIcons]=\"false\">\r\n </dxo-row-dragging>\r\n\r\n <dxi-column dataField=\"Title\" cellTemplate=\"cellTemplate\"></dxi-column>\r\n <dxi-column dataField=\"order\" [visible]=false sortOrder=\"asc\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let itemObj of 'cellTemplate'\">\r\n <div class=\"treeitem\" id=\"image{{itemObj.data.treeElementId}}\">\r\n <div class=\"container-fluid h-100\">\r\n <div class=\"row h-100 d-flex\">\r\n <div class=\"col order-0 treeitemimage\">\r\n <span *ngIf=\"!itemObj.data.imageUrl\" class=\"glyphicon glyphicon-picture\" style=\"font-size: 36px;\"></span>\r\n <img *ngIf=\"itemObj.data.imageUrl\" src=\"{{itemObj.data.imageUrl}}\" style=\"height: 40px;\" />\r\n </div>\r\n\r\n <div class=\"col order-1 overflow-hidden treeitemtext\">\r\n\r\n <div class=\"treeitemheader\">\r\n {{itemObj.data.text}}\r\n </div>\r\n\r\n <div class=\"treeitemdetail\">\r\n <div [ngSwitch]=\"itemObj.data.type\">\r\n\r\n <!--CATALOG-->\r\n <div *ngSwitchCase=\"'cat'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n\r\n <!--CATEGORY-->\r\n <div *ngSwitchCase=\"'grp'\">\r\n {{ 'Kategorien' | translate }}: {{itemObj.data.categoryCount}} - {{ 'Produkte' | translate }}: {{itemObj.data.productCount}}\r\n </div>\r\n\r\n <!--PRODUCT-->\r\n <div *ngSwitchCase=\"'pro'\">\r\n {{itemObj.data.supplierPid}}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-context-menu [dataSource]=\"menuItems\"\r\n [width]=\"200\"\r\n (onShowing)=\"onContextMenuShowing($event,itemObj)\"\r\n target=\"#image{{itemObj.data.treeElementId}}\"\r\n id=\"context{{itemObj.data.treeElementId}}\"\r\n (onItemClick)=\"itemClick($event,itemObj)\">\r\n <div *dxTemplate=\"let e of 'item'\">\r\n <div>\r\n <span [ngClass]=\"e.icon\"></span>\r\n <span *ngIf=\"e.items\" class=\"dx-icon-spinright\"></span> {{e.text}}\r\n </div>\r\n </div>\r\n </dx-context-menu>\r\n </div>\r\n </dx-tree-list>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </content-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup [width]=\"600\"\r\n [height]=\"400\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Kategorie hinzufügen' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"popupVisible\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <form (submit)=\"onAdd()\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Kategorie' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newCategoryName\" [showClearButton]=\"true\">\r\n <dx-validator (onInitialized)=\"saveValidatorInstance($event)\">\r\n <dxi-validation-rule type=\"required\" message=\"{{ 'Bitte geben Sie einen Kategorienamen an' | translate }}!\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <dx-validation-summary id=\"summary\"></dx-validation-summary>\r\n <div class=\"dx-field d-flex flex-row\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Anlegen' | translate }}\" [useSubmitBehavior]=\"true\"></dx-button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</dx-popup>\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { DxTreeListComponent } from \"devextreme-angular\";\r\nimport { confirm, custom } from \"devextreme/ui/dialog\";\r\nimport Validator from \"devextreme/ui/validator\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Catalog } from \"../../../Model/Catalog/Catalog\";\r\nimport { ProductState } from \"../../../Model/Catalog/ProductState\";\r\nimport { AddItem } from \"../../../Model/Dto/AddItem\";\r\nimport { CatalogItem } from \"../../../Model/Dto/CombineCatalog/CatalogItem\";\r\nimport { TransferCatalogItem } from \"../../../Model/Dto/CombineCatalog/TransferCatalogItem\";\r\nimport { TransferItemModes } from \"../../../Model/Dto/CombineCatalog/TransferItemModes\";\r\nimport { StringResponse } from \"../../../Model/Dto/StringResponse\";\r\nimport { TreeItem } from \"../../../Model/Dto/TreeItem\";\r\nimport { UrlResponse } from \"../../../Model/Dto/UrlResponse\";\r\nimport { Message } from \"../../../Model/System/Message\";\r\nimport { Customer } from \"../../../Model/User/Customer\";\r\nimport { CatalogService } from \"../../../Services/CatalogManagement/catalog.service\";\r\nimport { CombineCatalogService } from \"../../../Services/CatalogManagement/combineCatalog.service\";\r\nimport { ModelService } from \"../../../Services/model.service\";\r\n\r\n@Component({\r\n selector: \"combineCatalogs\",\r\n templateUrl: \"combineCatalogs.component.html\",\r\n styleUrls: [\"combineCatalogs.component.css\"]\r\n})\r\nexport class CombineCatalogsComponent implements OnInit {\r\n\r\n txtAddCategory: string;\r\n txtDeleteCategory: string;\r\n txtDeleteProd: string;\r\n txtLoading: string;\r\n txtNoCategoriesOrCatalogInProd: string;\r\n txtNoProdInChild: string;\r\n txtNoMasterInProd: string;\r\n txtNoMoveCategoriesRecursive: string;\r\n txtNoMoveVarAlone: string;\r\n txtNoProdInCatalog: string;\r\n txtNoRefForCatalog: string;\r\n txtNoRefForVar: string;\r\n txtNoRefInProd: string;\r\n txtOnlyProdCategoriesOrCatalog: string;\r\n txtOnlyMasterOrVar: string;\r\n txtSourceEqualsTarget: string;\r\n\r\n menuItems = [];\r\n isCatalogSelected: boolean;\r\n isCategorySelected: boolean;\r\n isProductSelected: boolean;\r\n selectedCategoryId: string;\r\n selectedProductId: string;\r\n selectedTreeId: string;\r\n\r\n\r\n\r\n // SOURCE - links\r\n @ViewChild('treeListSource') treeListSource: DxTreeListComponent;\r\n sourceCatalogs: Catalog[];\r\n selectedSourceCatalogId: string;\r\n dataSourceSource: any;\r\n treeSelectedRowKeysSource: any[] = [];\r\n\r\n // TARGET - rechts\r\n @ViewChild('treeListTarget') treeListTarget: DxTreeListComponent;\r\n targetCatalogs: Catalog[];\r\n selectedTargetCatalogId: string;\r\n dataSourceTarget: any;\r\n treeSelectedRowKeysTarget: any[] = [];\r\n\r\n transferMode: string;\r\n transferModeItems: any[];\r\n\r\n public showFilter: boolean = false;\r\n public showFilterTarget: boolean = false;\r\n public productStates: string[] = new Array<string>();\r\n\r\n set selectedStatesMode(value: string) {\r\n this.modelService.catalogService.selectedStatesMode = value;\r\n }\r\n\r\n get selectedStatesMode(): string {\r\n return this.modelService.catalogService.selectedStatesMode;\r\n }\r\n\r\n set selectedStates(values: string[]) {\r\n this.modelService.catalogService.selectedStates = values;\r\n }\r\n\r\n get selectedStates(): string[] {\r\n return this.modelService.catalogService.selectedStates;\r\n }\r\n\r\n set selectedStatesTargetMode(value: string) {\r\n this.modelService.catalogService.selectedStatesTargetMode = value;\r\n }\r\n\r\n get selectedStatesTargetMode(): string {\r\n return this.modelService.catalogService.selectedStatesTargetMode;\r\n }\r\n\r\n set selectedStatesTarget(values: string[]) {\r\n this.modelService.catalogService.selectedStatesTarget = values;\r\n }\r\n\r\n get selectedStatesTarget(): string[] {\r\n return this.modelService.catalogService.selectedStatesTarget;\r\n }\r\n\r\n constructor(private http: HttpClient, public modelService: ModelService, public translate: TranslateService, private combineCatalogService: CombineCatalogService, private catalogService: CatalogService) {\r\n this.onAddTarget = this.onAddTarget.bind(this);\r\n this.onDragStartSource = this.onDragStartSource.bind(this);\r\n this.onDragStartTarget = this.onDragStartTarget.bind(this);\r\n\r\n this.transferModeItems = Object.entries(TransferItemModes).map(([key, value]) => ({ key, value: translate.instant(value) }));\r\n this.transferMode = TransferItemModes.CategoriesAndProducts;\r\n \r\n catalogService.treeList = this.treeListSource;\r\n catalogService.treeListTarget = this.treeListTarget;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n if (this.modelService.router.url === '/combineCatalogs') {\r\n this.translate.get('Kataloge kombinieren')\r\n .subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n this.modelService.loginService.customerService.getAllCustomerByUser(this.modelService.loginService.currentUser.id)\r\n .subscribe((customers: Customer[]) => {\r\n this.customers = customers;\r\n this.selectedCustomerId = this.modelService.loginService.currentUser.customerId;\r\n });\r\n\r\n this.modelService.catalogService.getCustomerProductStates(this.modelService.loginService.currentUser.customerId)\r\n .subscribe((states:\r\n ProductState[]) => {\r\n this.modelService.productStateService.productStates = new Array<string>();\r\n\r\n states.forEach(s => {\r\n this.modelService.productStateService.productStates.push(s.name);\r\n });\r\n });\r\n\r\n this.txtAddCategory = this.translate.instant(\"Kategorie hinzufügen\");\r\n this.txtDeleteCategory = this.translate.instant(\"Kategorie löschen\");\r\n this.txtDeleteProd = this.translate.instant(\"Produkt löschen\");\r\n this.txtLoading = this.translate.instant(\"Loading\");\r\n\r\n this.txtNoCategoriesOrCatalogInProd = this.translate.instant(\"Kataloge und Kategorien können nicht in Produkte eingefügt werden.\");\r\n this.txtNoProdInChild = this.translate.instant(\"Produkte können nicht in Varianten eingefügt werden.\");\r\n this.txtNoMasterInProd = this.translate.instant(\"Master-Produkte können nicht in Produkte eingefügt werden.\");\r\n this.txtNoMoveCategoriesRecursive = this.translate.instant(\"Rekursiv selektierte Kategorien können nicht verschoben werden.\");\r\n this.txtNoMoveVarAlone = this.translate.instant(\"Varianten können nicht verschoben werden.\");\r\n this.txtNoProdInCatalog = this.translate.instant(\"Produkte können nicht direkt im Katalog eingefügt werden.\");\r\n this.txtNoRefForCatalog = this.translate.instant(\"Kataloge können nicht referenziert werden.\");\r\n this.txtNoRefForVar = this.translate.instant(\"Varianten können nicht referenziert werden.\");\r\n this.txtNoRefInProd = this.translate.instant(\"Referenzen können nicht in Produkte eingefügt werden.\");\r\n this.txtOnlyProdCategoriesOrCatalog = this.translate.instant(\"Bitte selektieren sie nur Produkte, nur Kategorien ODER den Katalog.\");\r\n this.txtOnlyMasterOrVar = this.translate.instant(\"Bitte selektieren sie nur Produkte ODER Varianten.\");\r\n this.txtSourceEqualsTarget = this.translate.instant(\"Quelle und Ziel sind identisch.\");\r\n\r\n this.txtCopy = this.translate.instant(\"copy\");\r\n this.txtMove = this.translate.instant(\"move\");\r\n this.txtReference = this.translate.instant(\"reference\");\r\n\r\n this.operationsAll = [\r\n { id: 0, text: this.txtCopy },\r\n { id: 1, text: this.txtMove },\r\n { id: 2, text: this.txtReference }\r\n ];\r\n\r\n this.operationsNonVirtualSameCatalog = [\r\n { id: 1, text: this.txtMove },\r\n { id: 2, text: this.txtReference }\r\n ];\r\n\r\n this.operationsNonVirtualNotSameCatalog = [\r\n { id: 0, text: this.txtCopy },\r\n { id: 1, text: this.txtMove }\r\n ];\r\n\r\n this.operationsVirtual = [\r\n { id: 2, text: this.txtReference }\r\n ];\r\n\r\n this.resetOperations();\r\n\r\n this.populateSourceCatalogs();\r\n\r\n // erst setzten (und jedes mal NEU) wenn ein sourceCatalog gewählt wurde\r\n this.targetCatalogs = null;\r\n }\r\n\r\n\r\n\r\n \r\n\r\n // popup\r\n popupVisible = false;\r\n newCategoryName: string;\r\n validatorInstance: Validator;\r\n saveValidatorInstance(e) {\r\n this.validatorInstance = e.component;\r\n }\r\n\r\n async onAdd() {\r\n this.popupVisible = false;\r\n\r\n let customerId = this.selectedCustomerId;\r\n\r\n if (this.isCatalogSelected) {\r\n await this.addCategory(this.selectedTargetCatalogId, customerId, this.selectedTreeId, this.newCategoryName);\r\n }\r\n if (this.isCategorySelected) {\r\n await this.addCategory(this.selectedCategoryId, customerId, this.selectedTreeId, this.newCategoryName);\r\n }\r\n\r\n this.validatorInstance.reset();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // account selection\r\n _customers: Customer[];\r\n get customers(): Customer[] {\r\n return this._customers;\r\n }\r\n set customers(value: Customer[]) {\r\n this._customers = value;\r\n }\r\n\r\n _selectedCustomerId: string;\r\n get selectedCustomerId(): string {\r\n return this._selectedCustomerId;\r\n }\r\n set selectedCustomerId(value: string) {\r\n if (this._selectedCustomerId != value) {\r\n this._selectedCustomerId = value;\r\n this.populateTargetCatalogs();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n sourceSelected(event) {\r\n // ein katalog wurde gelöscht\r\n if (event == null || event.selectedItem == null) {\r\n this.selectedSourceCatalogId = null;\r\n\r\n this.populateSourceCatalogs(); // ein katalog wurde gelöscht ==> muss hier 'raus, neu laden\r\n this.populateTargetCatalogs(); // ein katalog wurde gelöscht ==> muss hier 'raus, neu laden\r\n\r\n this.initDataSourceSource();\r\n\r\n this.resetOperations();\r\n\r\n return;\r\n }\r\n\r\n\r\n\r\n this.selectedSourceCatalogId = event.selectedItem.id;\r\n this.catalogService.selectedCatalogId = this.selectedSourceCatalogId;\r\n \r\n this.populateTargetCatalogs();\r\n\r\n this.initDataSourceSource();\r\n\r\n this.setSelectedOperation();\r\n }\r\n\r\n populateSourceCatalogs() {\r\n this.modelService.catalogService.getCatalogs(this.modelService.loginService.currentUser.customerId)\r\n .subscribe((result: Catalog[]) => {\r\n this.sourceCatalogs = result.filter(c => !c.isVirtual);;\r\n });\r\n }\r\n\r\n initDataSourceSource() {\r\n let that = this;\r\n\r\n this.dataSourceSource = {\r\n load: async function (loadOptions) {\r\n if (that.selectedSourceCatalogId == null) { // Katalog wurde gelöscht\r\n \r\n that.treeListSource.instance.beginUpdate();\r\n that.treeListSource.dataSource = null;\r\n that.treeListSource.instance.endUpdate();\r\n\r\n return null;\r\n }\r\n if (that.catalogService.treeList == undefined)\r\n that.catalogService.treeList = that.treeListSource;\r\n let parentId = \"\";\r\n if (loadOptions.parentIds != null) {\r\n loadOptions.parentIds = loadOptions.parentIds.filter(p => p != undefined);\r\n\r\n parentId = loadOptions.parentIds.join(\",\");\r\n }\r\n this.childs = await that.modelService.catalogService.getChilds(that.selectedSourceCatalogId, parentId, that.modelService.loginService.currentUser.customerId, loadOptions.filter, that.modelService.catalogService.selectedStates,\r\n that.modelService.loginService.productSearchOptions, that.selectedStatesMode);\r\n\r\n return this.childs;\r\n }\r\n };\r\n }\r\n\r\n toggleFilter() {\r\n if (this.showFilter) {\r\n this.selectedStates = new Array<string>();\r\n this.showFilter = false;\r\n } else {\r\n this.showFilter = true;\r\n }\r\n }\r\n toggleFilterTarget() {\r\n if (this.showFilterTarget) {\r\n this.selectedStatesTarget = new Array<string>();\r\n this.showFilterTarget = false;\r\n } else {\r\n this.showFilterTarget = true;\r\n }\r\n }\r\n\r\n updateState({mode, states}) {\r\n this.selectedStates = states;\r\n this.selectedStatesMode = mode;\r\n this.modelService.catalogService.collapsTree();\r\n this.modelService.catalogService.treeFilter();\r\n }\r\n\r\n updateStateTarget({mode, states}) {\r\n this.selectedStatesTarget = states;\r\n this.selectedStatesTargetMode = mode;\r\n this.modelService.catalogService.collapsTreeTarget();\r\n this.modelService.catalogService.treeFilterTarget();\r\n }\r\n\r\n targetSelected(event) {\r\n // sourceCatalog wurde auf den gleichen wie targetCatalog gesetzt, dadurch wurde targetCatalog aus der datasource entfernt <== obsolet?\r\n if (event.selectedItem == null) {\r\n this.selectedTargetCatalogId = null;\r\n this.catalogService.selectedTargetCatalogId = null;\r\n this.dataSourceTarget = null;\r\n } else {\r\n this.selectedTargetCatalogId = event.selectedItem.id;\r\n this.catalogService.selectedTargetCatalogId = this.selectedTargetCatalogId;\r\n this.initDataSourceTarget();\r\n }\r\n\r\n this.isTargetCatalogVirtual = false;\r\n let catalog = this.targetCatalogs.filter(c => c.id == this.selectedTargetCatalogId)[0];\r\n if (catalog != null && catalog.isVirtual) {\r\n this.isTargetCatalogVirtual = true;\r\n }\r\n\r\n this.setSelectedOperation();\r\n }\r\n\r\n populateTargetCatalogs() {\r\n this.modelService.catalogService.getCatalogs(this.selectedCustomerId)\r\n .subscribe((result: Catalog[]) => {\r\n //let allTargetCatalogs = result;\r\n //this.targetCatalogs = allTargetCatalogs.filter(c => c.id != this.selectedSourceCatalogId);\r\n this.targetCatalogs = result;\r\n if (this.modelService?.loginService?.currentUser?.customerId != this.selectedCustomerId) { // virtuelle Kataloge soll es nicht Account-Übergreifend geben (TR)\r\n this.targetCatalogs = result.filter(t => t.isVirtual == false);\r\n }\r\n });\r\n }\r\n\r\n initDataSourceTarget() {\r\n if (!this.selectedTargetCatalogId) {\r\n return;\r\n }\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((response: Array<string>) => {\r\n this.existingSpids = response;\r\n });\r\n\r\n\r\n\r\n let that = this;\r\n\r\n this.dataSourceTarget = {\r\n load: async function (loadOptions) {\r\n let parentId = \"\";\r\n if (loadOptions.parentIds != null) {\r\n loadOptions.parentIds = loadOptions.parentIds.filter(p => p != undefined);\r\n\r\n parentId = loadOptions.parentIds.join(\",\");\r\n }\r\n if (that.catalogService.treeListTarget == undefined)\r\n that.catalogService.treeListTarget = that.treeListTarget;\r\n\r\n this.childs = await that.modelService.catalogService.getChilds(that.selectedTargetCatalogId, parentId, that.selectedCustomerId, loadOptions.filter, that.modelService.catalogService.selectedStatesTarget,\r\n that.modelService.loginService.productSearchOptionsTarget, that.selectedStatesTargetMode);\r\n\r\n return this.childs;\r\n }\r\n };\r\n }\r\n\r\n\r\n\r\n existingSpids = new Array<string>();\r\n\r\n hasSpid(spid): boolean {\r\n let s = this.existingSpids.filter(e => e == spid);\r\n if (s.length == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n\r\n onAddTarget(e) {\r\n switch (this.selectedOperation.id) {\r\n case 0:\r\n this.processCopy(e);\r\n break;\r\n case 1:\r\n this.processMove(e);\r\n break;\r\n case 2:\r\n this.processReference(e);\r\n break;\r\n default: return;\r\n }\r\n\r\n this.treeSelectedRowKeysSource = [];\r\n }\r\n\r\n onDragStartSource(e) {\r\n let i = 1;\r\n }\r\n\r\n onDragStartTarget(e) {\r\n e.cancel = true;\r\n }\r\n\r\n async processCopy(e) {\r\n this.treeListSource.instance.selectRows(e.itemData.treeElementId, true);\r\n await this.copyMany(e);\r\n }\r\n\r\n async processMove(e) {\r\n this.treeListSource.instance.selectRows(e.itemData.treeElementId, true);\r\n await this.moveMany(e);\r\n }\r\n\r\n processReference(e) {\r\n this.treeListSource.instance.selectRows(e.itemData.treeElementId, true);\r\n this.referenceMany(e);\r\n }\r\n\r\n async copyMany(e) {\r\n let sourceSelectedData: TreeItem[] = this.treeListSource.instance.getSelectedRowsData();\r\n\r\n let sourceCatalogs = sourceSelectedData.filter(t => t.type == \"cat\");\r\n let sourceCategories = sourceSelectedData.filter(t => t.type == \"grp\");\r\n let sourceProducts = sourceSelectedData.filter(t => t.type == \"pro\");\r\n let masters = sourceProducts.filter(p => p.hasChilds);\r\n let childs = sourceProducts.filter(p => p.isChild);\r\n\r\n if (sourceCatalogs.length > 0 && sourceCategories.length > 0 ||\r\n sourceCatalogs.length > 0 && sourceProducts.length > 0 ||\r\n sourceCategories.length > 0 && sourceProducts.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyProdCategoriesOrCatalog), 2500);\r\n return;\r\n }\r\n\r\n if (masters.length > 0 && childs.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyMasterOrVar), 2500);\r\n return;\r\n }\r\n\r\n let rows = this.treeListTarget.instance.getVisibleRows();\r\n let targetItem = rows[e.toIndex].node.data;\r\n\r\n if (targetItem.type == \"pro\") {\r\n if (sourceProducts.length > 0 && masters.length > 0) {\r\n // verboten:\r\n // master in prod (master)\r\n // master in prod (child)\r\n this.modelService.systemService.notify(new Message(this.txtNoMasterInProd), 2500);\r\n return;\r\n }\r\n if (sourceCatalogs.length > 0 || sourceCategories.length > 0) {\r\n // verboten:\r\n // katalog in prod\r\n // kategorie in prod\r\n this.modelService.systemService.notify(new Message(this.txtNoCategoriesOrCatalogInProd), 2500);\r\n return;\r\n }\r\n if (targetItem.isChild) {\r\n this.modelService.systemService.notify(new Message(this.txtNoProdInChild), 2500);\r\n return;\r\n }\r\n\r\n let dialogResult = await confirm(this.translate.instant(\"ConfirmVariantCopyText\"), this.translate.instant(\"Variante erstellen\"));\r\n if (!dialogResult) {\r\n return;\r\n }\r\n }\r\n\r\n if (targetItem.type == \"cat\") {\r\n if (sourceProducts.length > 0) {\r\n // verboten:\r\n // prod in katalog\r\n this.modelService.systemService.notify(new Message(this.txtNoProdInCatalog), 2500);\r\n return;\r\n }\r\n }\r\n\r\n if (sourceProducts.length > 0) {\r\n sourceSelectedData.forEach(s => {\r\n this.existingSpids.push(s.supplierPid);\r\n });\r\n }\r\n\r\n let model = new TransferCatalogItem();\r\n model.targetItem = new CatalogItem();\r\n model.targetItem.CatalogId = this.selectedTargetCatalogId;\r\n model.targetItem.CustomerId = this.selectedCustomerId;\r\n switch (targetItem.type) {\r\n case \"pro\":\r\n model.targetItem.ProductId = targetItem.id.toString();\r\n model.targetItem.CategoryId = targetItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n model.targetItem.CategoryId = targetItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer = new Array<CatalogItem>();\r\n sourceSelectedData.forEach(sourceItem => {\r\n let item = new CatalogItem();\r\n item.CustomerId = this.modelService.loginService.currentUser.customerId;\r\n item.CatalogId = this.selectedSourceCatalogId;\r\n switch (sourceItem.type) {\r\n case \"pro\":\r\n item.ProductId = sourceItem.id.toString();\r\n item.CategoryId = sourceItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n item.CategoryId = sourceItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer.push(item);\r\n });\r\n\r\n let response: Observable<StringResponse>;\r\n\r\n switch (this.transferMode) {\r\n case TransferItemModes.CategoriesAndProducts:\r\n response = this.combineCatalogService.copyItems(model);\r\n break;\r\n case TransferItemModes.OnlyCategories:\r\n response = this.combineCatalogService.copyCategories(model);\r\n break;\r\n case TransferItemModes.OnlyProducts:\r\n response = this.combineCatalogService.copyProducts(model);\r\n break;\r\n }\r\n\r\n this.treeListTarget.instance.beginCustomLoading(this.txtLoading);\r\n response.subscribe(() => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((arr: Array<string>) => {\r\n this.existingSpids = arr;\r\n });\r\n\r\n this.refreshTargetTree(targetItem.id);\r\n },\r\n error => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n }\r\n );\r\n }\r\n\r\n async moveMany(e) {\r\n let sourceSelectedData: TreeItem[] = this.treeListSource.instance.getSelectedRowsData();\r\n\r\n let sourceCatalogs = sourceSelectedData.filter(t => t.type == \"cat\");\r\n let sourceCategories = sourceSelectedData.filter(t => t.type == \"grp\");\r\n let sourceProducts = sourceSelectedData.filter(t => t.type == \"pro\");\r\n let masters = sourceProducts.filter(p => p.hasChilds);\r\n let childs = sourceProducts.filter(p => p.isChild);\r\n\r\n if (sourceCatalogs.length > 0 && sourceCategories.length > 0 ||\r\n sourceCatalogs.length > 0 && sourceProducts.length > 0 ||\r\n sourceCategories.length > 0 && sourceProducts.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyProdCategoriesOrCatalog), 2500);\r\n return;\r\n }\r\n\r\n if (masters.length > 0 && childs.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyMasterOrVar), 2500);\r\n return;\r\n }\r\n\r\n let rows = this.treeListTarget.instance.getVisibleRows();\r\n let targetItem = rows[e.toIndex].node.data;\r\n\r\n if (targetItem.type == \"pro\") {\r\n if (sourceProducts.length > 0 && masters.length > 0) {\r\n // verboten:\r\n // master in prod (master)\r\n // master in prod (child)\r\n this.modelService.systemService.notify(new Message(this.txtNoMasterInProd), 2500);\r\n return;\r\n }\r\n if (sourceCatalogs.length > 0 || sourceCategories.length > 0) {\r\n // verboten:\r\n // katalog in prod\r\n // kategorie in prod\r\n this.modelService.systemService.notify(new Message(this.txtNoCategoriesOrCatalogInProd), 2500);\r\n return;\r\n }\r\n if (targetItem.isChild) {\r\n this.modelService.systemService.notify(new Message(this.txtNoProdInChild), 2500);\r\n return;\r\n }\r\n\r\n let dialogResult = await confirm(this.translate.instant(\"ConfirmVariantMoveText\"), this.translate.instant(\"Variante erstellen\"));\r\n if (!dialogResult) {\r\n return;\r\n }\r\n }\r\n\r\n if (targetItem.type == \"cat\") {\r\n if (sourceProducts.length > 0) {\r\n // verboten:\r\n // prod in katalog\r\n this.modelService.systemService.notify(new Message(this.txtNoProdInCatalog), 2500);\r\n return;\r\n }\r\n }\r\n\r\n if (sourceProducts.length > 0) {\r\n sourceSelectedData.forEach(s => {\r\n this.existingSpids.push(s.supplierPid);\r\n });\r\n }\r\n\r\n let model = new TransferCatalogItem();\r\n model.targetItem = new CatalogItem();\r\n model.targetItem.CatalogId = this.selectedTargetCatalogId;\r\n model.targetItem.CustomerId = this.selectedCustomerId;\r\n switch (targetItem.type) {\r\n case \"pro\":\r\n model.targetItem.ProductId = targetItem.id.toString();\r\n model.targetItem.CategoryId = targetItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n model.targetItem.CategoryId = targetItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer = new Array<CatalogItem>();\r\n sourceSelectedData.forEach(sourceItem => {\r\n let item = new CatalogItem();\r\n item.CustomerId = this.modelService.loginService.currentUser.customerId;\r\n item.CatalogId = this.selectedSourceCatalogId;\r\n switch (sourceItem.type) {\r\n case \"pro\":\r\n item.ProductId = sourceItem.id.toString();\r\n item.CategoryId = sourceItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n item.CategoryId = sourceItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer.push(item);\r\n });\r\n\r\n let response: Observable<StringResponse>;\r\n\r\n switch (this.transferMode) {\r\n case TransferItemModes.CategoriesAndProducts:\r\n response = this.combineCatalogService.moveItems(model);\r\n break;\r\n case TransferItemModes.OnlyCategories:\r\n let message = this.translate.instant(\"OnlyCategoriesNotAllowMoving\");\r\n this.modelService.systemService.notify(new Message(message), 2500);\r\n return;\r\n case TransferItemModes.OnlyProducts:\r\n response = this.combineCatalogService.moveProducts(model);\r\n break;\r\n }\r\n\r\n this.treeListTarget.instance.beginCustomLoading(this.txtLoading);\r\n response.subscribe(() => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((arr: Array<string>) => {\r\n this.existingSpids = arr;\r\n });\r\n\r\n this.refreshTargetTree(targetItem.id);\r\n if (this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.refreshSourceTree(targetItem.id);\r\n } else {\r\n this.refreshSourceTree(model.itemsToTransfer[0].CategoryId);\r\n }\r\n },\r\n error => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n }\r\n );\r\n }\r\n\r\n referenceMany(e) {\r\n let sourceSelectedData: TreeItem[] = this.treeListSource.instance.getSelectedRowsData();\r\n\r\n let sourceCatalogs = sourceSelectedData.filter(t => t.type == \"cat\");\r\n let sourceCategories = sourceSelectedData.filter(t => t.type == \"grp\");\r\n let sourceProducts = sourceSelectedData.filter(t => t.type == \"pro\");\r\n let masters = sourceProducts.filter(p => p.hasChilds);\r\n let childs = sourceProducts.filter(p => p.isChild);\r\n\r\n if (sourceCatalogs.length > 0 && sourceCategories.length > 0 ||\r\n sourceCatalogs.length > 0 && sourceProducts.length > 0 ||\r\n sourceCategories.length > 0 && sourceProducts.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyProdCategoriesOrCatalog), 2500);\r\n return;\r\n }\r\n\r\n if (masters.length > 0 && childs.length > 0) {\r\n this.modelService.systemService.notify(new Message(this.txtOnlyMasterOrVar), 2500);\r\n return;\r\n }\r\n\r\n let rows = this.treeListTarget.instance.getVisibleRows();\r\n let targetItem = rows[e.toIndex].node.data;\r\n\r\n if (targetItem.type == \"pro\") {\r\n if (sourceProducts.length > 0) {\r\n // verboten:\r\n // prod in prod\r\n this.modelService.systemService.notify(new Message(this.txtNoRefInProd), 2500);\r\n return;\r\n }\r\n }\r\n\r\n if (sourceCatalogs.length > 0) {\r\n // verboten:\r\n // katalog referenzieren\r\n this.modelService.systemService.notify(new Message(this.txtNoRefForCatalog), 2500);\r\n return;\r\n }\r\n\r\n if (targetItem.type == \"cat\") {\r\n if (sourceProducts.length > 0 || this.transferMode == TransferItemModes.OnlyProducts) {\r\n // verboten:\r\n // prod in katalog\r\n this.modelService.systemService.notify(new Message(this.txtNoProdInCatalog), 2500);\r\n return;\r\n }\r\n }\r\n\r\n if (childs.length > 0) {\r\n // verboten:\r\n // variante referenzieren\r\n this.modelService.systemService.notify(new Message(this.txtNoRefForVar), 2500);\r\n return;\r\n }\r\n\r\n if (sourceProducts.length > 0) {\r\n sourceSelectedData.forEach(s => {\r\n this.existingSpids.push(s.supplierPid);\r\n });\r\n }\r\n\r\n let model = new TransferCatalogItem();\r\n model.targetItem = new CatalogItem();\r\n model.targetItem.CatalogId = this.selectedTargetCatalogId;\r\n model.targetItem.CustomerId = this.selectedCustomerId;\r\n switch (targetItem.type) {\r\n case \"pro\":\r\n model.targetItem.ProductId = targetItem.id.toString();\r\n model.targetItem.CategoryId = targetItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n model.targetItem.CategoryId = targetItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer = new Array<CatalogItem>();\r\n sourceSelectedData.forEach(sourceItem => {\r\n let item = new CatalogItem();\r\n item.CustomerId = this.modelService.loginService.currentUser.customerId;\r\n item.CatalogId = this.selectedSourceCatalogId;\r\n switch (sourceItem.type) {\r\n case \"pro\":\r\n item.ProductId = sourceItem.id.toString();\r\n item.CategoryId = sourceItem.treeElementId.toString().split('_')[1];\r\n break;\r\n case \"grp\":\r\n item.CategoryId = sourceItem.id.toString();\r\n break;\r\n }\r\n\r\n model.itemsToTransfer.push(item);\r\n });\r\n\r\n let response: Observable<StringResponse>;\r\n\r\n switch (this.transferMode) {\r\n case TransferItemModes.CategoriesAndProducts:\r\n response = this.combineCatalogService.referenceItems(model);\r\n break;\r\n case TransferItemModes.OnlyCategories:\r\n response = this.combineCatalogService.copyCategories(model);\r\n break;\r\n case TransferItemModes.OnlyProducts:\r\n response = this.combineCatalogService.referenceProducts(model);\r\n break;\r\n }\r\n\r\n this.treeListTarget.instance.beginCustomLoading(this.txtLoading);\r\n response.subscribe(() => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((arr: Array<string>) => {\r\n this.existingSpids = arr;\r\n });\r\n\r\n this.refreshTargetTree(targetItem.id);\r\n if (this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.refreshSourceTree(targetItem.id);\r\n }\r\n },\r\n error => {\r\n this.treeListTarget.instance.endCustomLoading();\r\n }\r\n );\r\n }\r\n\r\n refreshTargetTree(parentId: string) {\r\n let that = this;\r\n\r\n this.treeListTarget.instance.refresh()\r\n .then(function () {\r\n that.treeListTarget.instance.expandRow(parentId);\r\n });\r\n }\r\n\r\n refreshSourceTree(parentId: string) {\r\n let that = this;\r\n\r\n this.treeListSource.instance.refresh()\r\n .then(function () {\r\n that.treeListSource.instance.expandRow(parentId);\r\n });\r\n }\r\n\r\n\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n onCellPreparedSource(e) {\r\n\r\n // kann eig. nie auftreten, dass hier etwas neues dazwischen kommt??\r\n\r\n if (!e.data.imageUrl) {\r\n let catalog = this.sourceCatalogs.filter(c => c.id == this.selectedSourceCatalogId)[0];\r\n\r\n if (catalog && catalog.lastImageUpload > e.data.lastImageLookup) {\r\n this.modelService.catalogService.getThumbUrl(e.data.id,\r\n e.data.type,\r\n this.modelService.loginService.currentUser.customerId,\r\n this.selectedSourceCatalogId)\r\n .subscribe(\r\n (url: UrlResponse) => {\r\n if (url) e.data.imageUrl = url.url;\r\n e.data.lastImageLookup = new Date().getTime();\r\n });\r\n }\r\n }\r\n }\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n onCellPreparedSourceTarget(e) {\r\n if (!e.data.imageUrl) {\r\n let catalog = this.targetCatalogs.filter(c => c.id == this.selectedTargetCatalogId)[0];\r\n\r\n if (catalog && catalog.lastImageUpload > e.data.lastImageLookup) {\r\n this.modelService.catalogService.getThumbUrl(e.data.id,\r\n e.data.type,\r\n this.selectedCustomerId,\r\n this.selectedTargetCatalogId)\r\n .subscribe(\r\n (url: UrlResponse) => {\r\n if (url) e.data.imageUrl = url.url;\r\n e.data.lastImageLookup = new Date().getTime();\r\n });\r\n }\r\n }\r\n }\r\n\r\n // brauchen wir nicht\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n onRowClick(e) {\r\n //if (e.event.target !== undefined && e.event.target.localName != \"span\") {\r\n // if ((e.event.srcElement.localName == \"img\" && e.event.srcElement.className == \"flag\") ||\r\n // e.event.srcElement.localName == \"dx-select-box\"\r\n // ) {\r\n // return;\r\n // }\r\n // if ((e.event.srcElement.localName == \"i\" && e.event.srcElement.className == \"dx-icon dx-icon-menu\") ||\r\n // (e.event.srcElement.localName == \"div\" && e.event.srcElement.className == \"dx-button-content\")\r\n // ) {\r\n // return;\r\n // }\r\n //}\r\n }\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n onSelectionChangedTarget(e) {\r\n if (e.selectedRowsData.length > 0) {\r\n let selectedRowData = e.selectedRowsData[0];\r\n this.openItem(selectedRowData.type, selectedRowData.id, selectedRowData.isChild);\r\n }\r\n }\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n private openItem(type: string, id: string, isChild: boolean) {\r\n this.isCategorySelected = false;\r\n this.isCatalogSelected = false;\r\n this.isProductSelected = false;\r\n\r\n switch (type) {\r\n case \"cat\":\r\n this.isCatalogSelected = true;\r\n this.menuItems = [\r\n { id: 2, text: this.txtAddCategory, icon: 'glyphicon glyphicon-plus', beginGroup: false }\r\n ];\r\n break;\r\n\r\n case \"grp\":\r\n this.isCategorySelected = true;\r\n this.selectedCategoryId = id;\r\n this.menuItems = [\r\n { id: 2, text: this.txtAddCategory, icon: 'glyphicon glyphicon-plus', beginGroup: false },\r\n { id: 7, text: this.txtDeleteCategory, icon: 'glyphicon glyphicon-trash', beginGroup: true }\r\n ];\r\n break;\r\n\r\n case \"pro\":\r\n this.isProductSelected = true;\r\n this.selectedProductId = id;\r\n this.menuItems = [];\r\n if (!isChild || (isChild && !this.isTargetCatalogVirtual)) {\r\n this.menuItems = [\r\n { id: 0, text: this.txtDeleteProd, icon: 'glyphicon glyphicon-trash', beginGroup: false }\r\n ];\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n onContextMenuShowing(e, item) {\r\n let key = item.key;\r\n\r\n if (key != \"\" && key) {\r\n let keys = new Array<string>();\r\n keys.push(key);\r\n let result = this.treeListTarget.instance.selectRows(keys, false);\r\n }\r\n }\r\n\r\n\r\n\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\catalog\\browse\\browse.component.ts\r\n async itemClick(e, itemClickData) {\r\n this.selectedTreeId = itemClickData.data.treeElementId;\r\n\r\n let txtYes = \"\";\r\n let txtNo = \"\";\r\n let txtMsg = \"\";\r\n let txtTitle = \"\";\r\n let myDialog: any;\r\n\r\n switch (e.itemData.id) {\r\n // Kategorie hinzufügen\r\n case 2:\r\n this.popupVisible = true;\r\n\r\n break;\r\n\r\n\r\n\r\n // Kategorie löschen\r\n case 7:\r\n txtYes = this.translate.instant(\"Ja\");\r\n txtNo = this.translate.instant(\"Nein\");\r\n txtMsg = this.translate.instant(\"Soll die Kategorie wirklich gelöscht werden?\");\r\n txtTitle = this.translate.instant(\"Wirklich löschen?\");\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.http.delete(\"api/category/DeleteCategory/\" + this.selectedCustomerId + \"/\" + this.selectedTreeId)\r\n .subscribe(() => {\r\n\r\n this.treeListTarget.instance.refresh();\r\n\r\n if (this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.treeListSource.instance.refresh();\r\n }\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((response: Array<string>) => {\r\n this.existingSpids = response;\r\n });\r\n });\r\n }\r\n });\r\n\r\n break;\r\n\r\n\r\n\r\n // Produkt löschen\r\n case 0:\r\n txtYes = this.translate.instant(\"Ja\");\r\n txtNo = this.translate.instant(\"Nein\");\r\n txtMsg = this.translate.instant(\"Soll das Produkt wirklich gelöscht werden?\");\r\n txtTitle = this.translate.instant(\"Wirklich löschen?\");\r\n\r\n myDialog = custom({\r\n title: txtTitle,\r\n messageHtml: txtMsg,\r\n buttons: [\r\n {\r\n text: txtYes,\r\n onClick: (e) => {\r\n return { buttonText: true };\r\n }\r\n },\r\n {\r\n text: txtNo,\r\n onClick: (e) => {\r\n return { buttonText: false };\r\n }\r\n }\r\n ]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n if (dialogResult.buttonText == true) {\r\n this.http.delete(\"api/product/DeleteProduct/\" + this.selectedCustomerId + \"/\" + this.selectedTreeId)\r\n .subscribe(() => {\r\n\r\n this.treeListTarget.instance.refresh();\r\n\r\n if (this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.treeListSource.instance.refresh();\r\n }\r\n\r\n this.modelService.catalogService.getSpidsInCatalog(this.selectedTargetCatalogId, this.selectedCustomerId)\r\n .subscribe((response: Array<string>) => {\r\n this.existingSpids = response;\r\n });\r\n });\r\n }\r\n });\r\n\r\n break;\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n // eig. scheisse, duplicate code, aber im catalog.service.ts ist der TREE fest verdrahtet...\r\n // abgekupfert aus: \\Pim\\ClientApp\\src\\app\\Services\\catalog.service.ts\r\n async addCategory(parentId: string, customerId: string, treeId: string, newCategoryName: string) {\r\n let addItemModel = new AddItem();\r\n addItemModel.parentId = parentId;\r\n addItemModel.customerId = customerId;\r\n addItemModel.parentTreeId = treeId;\r\n addItemModel.newCategoryName = newCategoryName;\r\n\r\n this.http.post<StringResponse>(\"api/category/AddCategory\", addItemModel)\r\n .subscribe((response: StringResponse) => {\r\n\r\n this.refreshTargetTree(treeId);\r\n if (this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.refreshSourceTree(treeId);\r\n }\r\n\r\n });\r\n }\r\n\r\n txtCopy: string = \"\";\r\n txtMove: string = \"\";\r\n txtReference: string = \"\";\r\n\r\n selectedOperation: OperationEntity;\r\n\r\n operationsAll: OperationEntity[];\r\n operationsNonVirtualSameCatalog: OperationEntity[];\r\n operationsNonVirtualNotSameCatalog: OperationEntity[];\r\n operationsNonVirtual: OperationEntity[];\r\n operationsVirtual: OperationEntity[];\r\n\r\n isTargetCatalogVirtual: boolean = false;\r\n\r\n operationsDisabled: boolean = false;\r\n\r\n resetOperations() {\r\n this.operationsNonVirtual = this.operationsAll;\r\n this.selectedOperation = this.operationsNonVirtual[0];\r\n this.operationsDisabled = true;\r\n }\r\n\r\n setSelectedOperation() {\r\n if (this.selectedSourceCatalogId == null || this.selectedTargetCatalogId == null) {\r\n return;\r\n }\r\n\r\n\r\n\r\n let catalog = this.targetCatalogs.filter(c => c.id == this.selectedTargetCatalogId)[0];\r\n\r\n if (catalog != null && !catalog.isVirtual && this.selectedSourceCatalogId == this.selectedTargetCatalogId) {\r\n this.operationsNonVirtual = this.operationsNonVirtualSameCatalog;\r\n this.selectedOperation = this.operationsNonVirtualSameCatalog[0];\r\n this.operationsDisabled = false;\r\n }\r\n\r\n if (catalog != null && !catalog.isVirtual && this.selectedSourceCatalogId != this.selectedTargetCatalogId) {\r\n this.operationsNonVirtual = this.operationsNonVirtualNotSameCatalog;\r\n this.selectedOperation = this.operationsNonVirtualNotSameCatalog[0];\r\n this.operationsDisabled = false;\r\n }\r\n\r\n if (catalog != null && catalog.isVirtual) {\r\n this.selectedOperation = this.operationsVirtual[0];\r\n this.operationsDisabled = true;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\nexport class OperationEntity {\r\n id: number;\r\n text: string;\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { last } from \"rxjs/operators\";\r\nimport { TestResult } from \"../Model/Dto/TestResult\";\r\nimport { NewsArticle } from \"../Model/news/newsArticle\";\r\nimport { FtpServer } from \"../Model/ftpServer\";\r\nimport { ModelService } from \"./model.service\";\r\nimport { EdeSortiment } from \"../Model/edeSortimentsAbo/EdeSortiment\";\r\nimport { EdeSortimentVersion } from \"../Model/edeSortimentsAbo/edeSortimentVersion\";\r\n\r\n@Injectable()\r\nexport class EdeSortimentService {\r\n constructor(public modelService: ModelService, private http: HttpClient) { }\r\n\r\n public getAll(customerId: string): Observable<EdeSortiment[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/EdeSortiment/GetAll\", options)) as any;\r\n }\r\n\r\n public parseFtp(): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n }\r\n return (this.http.get(\"api/EdeSortiment/ParseFtp\", options)) as any;\r\n }\r\n\r\n public parseFtpClaims(): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n }\r\n return (this.http.get(\"api/EdeSortiment/ParseFtpClaims\", options)) as any;\r\n }\r\n\r\n public getSortimentsVersions(updateBez: string): Observable<EdeSortimentVersion[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"sortimentsKennung\", updateBez)\r\n }\r\n return (this.http.get(\"api/EdeSortiment/GetSortimentsVersions\", options)) as any;\r\n }\r\n\r\n public startUpdateEDEJob(customerId: string, katalogIdent: string, targetVersion: number): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"katalogIdent\", katalogIdent).append(\"targetVersion\", targetVersion.toString())\r\n }\r\n return (this.http.get(\"api/EdeSortiment/StartUpdateEDEJob\", options)) as any;\r\n }\r\n\r\n public delete(katalogIdent: string, customerId: string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"katalogIdent\", katalogIdent).append(\"customerId\", customerId)\r\n }\r\n return (this.http.get(\"api/EdeSortiment/delete\", options)) as any;\r\n }\r\n\r\n public addEdeInvoice(updateBez: string, customerId: string, catalogIdent :string): Observable<object> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", customerId).append(\"updateBez\", updateBez).append(\"catalogIdent\", catalogIdent)\r\n }\r\n return (this.http.get(\"api/EdeSortiment/addEdeInvoice\", options)) as any;\r\n }\r\n}\r\n","<dx-data-grid [dataSource]=\"versions\"\r\n [showBorders]=\"true\"\r\n keyExpr=\"version\"\r\n [columnAutoWidth]=\"true\"\r\n noDataText=\"{{ 'Keine Dateien für das Sortiment wurden gefunden' | translate }}\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxi-column dataField=\"version\" sortOrder=\"asc\" dataType=\"number\"></dxi-column>\r\n <dxi-column dataField=\"updateBez\" dataType=\"string\"></dxi-column>\r\n <dxi-column dataField=\"date\" dataType=\"date\"></dxi-column>\r\n <dxi-column caption=\"{{ 'Installiert' | translate }}\" cellTemplate=\"cellTemplate\" width=\"10%\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplate'\">\r\n <div class=\"d-flex justify-content-center\">\r\n <!--<i *ngIf=\"isInstalled(data)\" class=\"dx-icon-check dx-icon-custom-style\"></i>-->\r\n\r\n <div *ngIf=\"isInstalled(data)\">\r\n {{ 'Installiert' | translate }}\r\n </div>\r\n\r\n <dx-button *ngIf=\"canUpdateTo(data)\"\r\n id=\"versionbutton\"\r\n stylingMode=\"contained\"\r\n [text]=\"getText()\"\r\n type=\"normal\"\r\n width=\"100%\"\r\n (onClick)=\"install(data)\">\r\n </dx-button>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n</dx-data-grid>\r\n\r\n\r\n<dx-popup [showTitle]=\"true\"\r\n title=\"Information\"\r\n width=\"30%\"\r\n height=\"50%\"\r\n [dragEnabled]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n container=\".dx-viewport\"\r\n [(visible)]=\"popupVisible\">\r\n\r\n\r\n <dxi-toolbar-item widget=\"dxButton\"\r\n toolbar=\"bottom\"\r\n location=\"after\"\r\n [options]=\"closeButtonOptions\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\" [ngStyle]=\"{'overflow-y': 'auto'}\">\r\n <span>{{ 'EdeInstallInfo2' | translate }}</span>\r\n <br />\r\n <br />\r\n <span>{{ 'EdeInstallInfo' | translate }}</span>\r\n </div>\r\n</dx-popup>\r\n","import { Component, Input, AfterViewInit } from '@angular/core';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { EdeSortimentService } from '../../Services/edeSortiment.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModelService } from '../../Services/model.service';\r\nimport { EdeSortiment } from '../../Model/edeSortimentsAbo/EdeSortiment';\r\nimport { EdeSortimentVersion } from '../../Model/edeSortimentsAbo/edeSortimentVersion';\r\n\r\n@Component({\r\n selector: 'edeSortimentsVersion',\r\n templateUrl: 'edeSortimentsVersion.component.html'\r\n})\r\nexport class EdeSortimentsVersionComponent implements AfterViewInit {\r\n @Input() sortiment: EdeSortiment;\r\n versions: DataSource;\r\n closeButtonOptions: any;\r\n popupVisible = false;\r\n selectedVersion = -1;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public edeSortimentsService: EdeSortimentService) {\r\n this.ngAfterViewInit = this.ngAfterViewInit.bind(this);\r\n this.isInstalled = this.isInstalled.bind(this);\r\n this.install = this.install.bind(this);\r\n this.getText = this.getText.bind(this);\r\n let that = this;\r\n this.closeButtonOptions = {\r\n text: 'Accept',\r\n onClick(e) {\r\n that.edeSortimentsService.addEdeInvoice(that.sortiment.updateBez, that.modelService.loginService.currentCustomer.id, that.sortiment.katalogIdent).subscribe(() => {\r\n that.edeSortimentsService.startUpdateEDEJob(that.modelService.loginService.currentCustomer.id, that.sortiment.katalogIdent, that.selectedVersion).subscribe(() => {\r\n that.modelService.systemService.notifyInfo(that.translate.instant(\"Job wurde gestartet\"));\r\n });\r\n });\r\n\r\n\r\n that.popupVisible = false;\r\n },\r\n };\r\n }\r\n\r\n ngAfterViewInit() {\r\n let that = this;\r\n this.versions = new DataSource({\r\n load: function () {\r\n return that.sortiment.versions;\r\n }\r\n });\r\n }\r\n\r\n public isInstalled(data) {\r\n return data.data.version == this.sortiment.installedVersion;\r\n }\r\n\r\n public canUpdateTo(data) {\r\n return data.data.version > this.sortiment.installedVersion;\r\n }\r\n\r\n\r\n public isOwned() {\r\n return this.sortiment.owned;\r\n }\r\n\r\n public install(data) {\r\n if (!this.sortiment.owned) {\r\n this.modelService.systemService.notifyWarning(this.translate.instant(\"Ihrerer Ede Nummer wurden nicht die Rechte für dieses Sortiment zugewiesen. Sollte das nicht stimmen, melden Sie sich bitte bei unserem Support.\"));\r\n return;\r\n }\r\n\r\n if (this.sortiment.installedVersion >= 0) {\r\n this.edeSortimentsService.startUpdateEDEJob(this.modelService.loginService.currentCustomer.id, this.sortiment.katalogIdent, data.key.version).subscribe(() => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Job wurde gestartet\"));\r\n });\r\n } else {\r\n this.selectedVersion = data.key.version;\r\n this.popupVisible = true;\r\n }\r\n }\r\n\r\n public getText() {\r\n if (!this.sortiment.owned)\r\n return this.translate.instant(\"Keinen Zugriff\");\r\n\r\n if (this.sortiment.installedVersion >= 0) {\r\n return this.translate.instant(\"Update\");\r\n } else {\r\n return this.translate.instant(\"Installieren\");\r\n }\r\n\r\n }\r\n}\r\n","<fullscreen-page>\r\n\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onContentToolbarPreparing($event)\"\r\n [dataSource]=\"getDataSource()\"\r\n keyExpr=\"katalogIdent\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Soertimente im System' | translate }}\"\r\n [showBorders]=\"true\">\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" [storageKey]=\"'EdeSortimentsList'\"></dxo-state-storing>\r\n <div *dxTemplate=\"let toolbaritem of 'getAllButtonTemplate'\">\r\n <dx-button icon=\"refresh\" (onClick)=\"getAll()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'parseFtpButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Parse Ede Ftp Server' | translate }}\" (onClick)=\"parseFtp()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'startGenerateEdeInvoiceJobTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Abrechnung' | translate }}\" icon=\"download\" (onClick)=\"startGenerateEdeInvoiceJob()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'archiveTemplate'\">\r\n <dx-button *ngIf=\"!isArchive\" stylingMode=\"text\" type=\"default\" (onClick)=\"toogleArchive()\" text=\"{{ 'Zum Archiv' | translate }}\"></dx-button>\r\n <dx-button *ngIf=\"isArchive\" stylingMode=\"text\" type=\"default\" (onClick)=\"toogleArchive()\" text=\"{{ 'Zurück zu den Sortimenten' | translate }}\"></dx-button>\r\n </div>\r\n\r\n <dxo-search-panel [visible]=\"true\"\r\n [width]=\"240\"></dxo-search-panel>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n\r\n <dxi-column dataField=\"updateBez\" caption=\"{{ 'Sortiment' | translate }}\" width=\"40%\" [allowSearch]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"katalogIdent\" caption=\"{{ 'KatalogIdent' | translate }}\" width=\"40%\" [allowSearch]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"module\" caption=\"{{ 'Module' | translate }}\" [allowSearch]=\"true\"></dxi-column>\r\n <dxi-column dataField=\"language\" caption=\"{{ 'Language' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"sortimentsKennung\" caption=\"{{ 'SortimentsKennung' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"version\" caption=\"{{ 'Installiert' | translate }}\" cellTemplate=\"cellTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplate'\">\r\n <div *ngIf=\"isInstalled(data)\">\r\n <div *ngIf=\"isNewest(data)\">\r\n <span class=\"dx-icon-importselected\" style=\"font-size: 20px; color: #0091d4;\"></span>\r\n </div>\r\n <div *ngIf=\"!isNewest(data)\">\r\n <span class=\"dx-icon-importselected\" style=\"font-size: 20px; color: #ffee9c;\"></span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isInstalled(data)\">\r\n <span class=\"dx-icon-import\" style=\"font-size: 20px; color: grey;\"></span>\r\n </div>\r\n </div>\r\n\r\n <dxi-column caption=\"\" cellTemplate=\"cellTemplate2\" alignment=\"right\"></dxi-column>\r\n <div *dxTemplate=\"let data of 'cellTemplate2'\">\r\n <div *ngIf=\"isInstalled(data)\">\r\n <dx-button icon=\"clearformat\"\r\n hint=\"{{'Verlinkung zum Katalog entfernen'| translate}}\"\r\n (onClick)=\"delete(data)\">\r\n </dx-button>\r\n </div>\r\n </div>\r\n\r\n <dxo-master-detail [enabled]=\"true\" template=\"detail\"></dxo-master-detail>\r\n <div *dxTemplate=\"let sortiment of 'detail'\">\r\n <edeSortimentsVersion [sortiment]=\"sortiment.data\"></edeSortimentsVersion>\r\n </div>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\n\r\nimport { AppUser } from \"../Model/user/AppUser\";\r\nimport isString from \"lodash.isstring\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { CustomerWiki } from \"../Model/System/CustomerWiki\";\r\n\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport CustomStore from \"devextreme/data/custom_store\";\r\nimport { DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { EdeSortimentService } from \"../Services/edeSortiment.service\";\r\nimport { EdeSortiment } from \"../Model/edeSortimentsAbo/EdeSortiment\";\r\nimport { LoginService } from \"../Services/login.service\";\r\nimport { StartAction } from \"../Model/Dto/StartAction\";\r\n\r\n\r\n@Component({\r\n selector: \"edeSortimentsList\",\r\n templateUrl: \"edeSortimentsList.component.html\",\r\n styleUrls: [\"edeSortimentsList.component.css\"]\r\n})\r\nexport class EdeSortimentsListComponent implements OnDestroy {\r\n set edeSortiments(edeSortiments: EdeSortiment[]) {\r\n this.archivedEdeSortiments = edeSortiments.filter(x => !x.owned);\r\n this.currentEdeSortiments = edeSortiments.filter(x => x.owned);\r\n }\r\n\r\n archivedEdeSortiments: EdeSortiment[] = [];\r\n currentEdeSortiments: EdeSortiment[] = [];\r\n\r\n loggedInSubscription: any = null;\r\n public isArchive: boolean = false;\r\n\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public edeSortimentsService: EdeSortimentService) {\r\n this.translate.get('Ede Sortiments Liste').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n\r\n this.getAll = this.getAll.bind(this);\r\n this.parseFtp = this.parseFtp.bind(this);\r\n this.isInstalled = this.isInstalled.bind(this);\r\n this.isNewest = this.isNewest.bind(this);\r\n this.onLoggedIn = this.onLoggedIn.bind(this);\r\n this.getDataSource = this.getDataSource.bind(this);\r\n this.toogleArchive = this.toogleArchive.bind(this);\r\n\r\n if (this.modelService.loginService.loggedIn)\r\n this.onLoggedIn();\r\n else\r\n this.loggedInSubscription = this.modelService.loginService.onLoggedIn.subscribe(() => this.onLoggedIn());\r\n }\r\n\r\n getDataSource(): EdeSortiment[] {\r\n if (this.isArchive) {\r\n return this.archivedEdeSortiments;\r\n }\r\n return this.currentEdeSortiments;\r\n }\r\n\r\n toogleArchive() {\r\n this.isArchive = !this.isArchive;\r\n }\r\n\r\n onLoggedIn() {\r\n this.edeSortimentsService.getAll(this.modelService.loginService.currentCustomer.id).subscribe((result: EdeSortiment[]) => {\r\n this.edeSortiments = result;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n try {\r\n if (this.loggedInSubscription != null)\r\n this.loggedInSubscription.unsubscribe();\r\n }\r\n catch { }\r\n }\r\n\r\n onContentToolbarPreparing(e) {\r\n if (this.modelService.loginService.isAdmin) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'startGenerateEdeInvoiceJobTemplate',\r\n });\r\n }\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'getAllButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'archiveTemplate',\r\n });\r\n if (this.modelService.loginService.isAdmin) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'parseFtpButtonTemplate',\r\n });\r\n }\r\n }\r\n\r\n public getAll() {\r\n this.edeSortimentsService.getAll(this.modelService.loginService.currentCustomer.id).subscribe((result: EdeSortiment[]) => {\r\n this.edeSortiments = result;\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ede Sortimente wurden geladen\"));\r\n });\r\n }\r\n\r\n public delete(data) {\r\n let i = 0;\r\n this.edeSortimentsService.delete(data.data.katalogIdent, this.modelService.loginService.currentCustomer.id).subscribe(() => {\r\n this.edeSortimentsService.getAll(this.modelService.loginService.currentCustomer.id).subscribe((result: EdeSortiment[]) => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Der Verweis auf den Katalog wurde gelöscht\"));\r\n this.edeSortiments = result;\r\n });\r\n });\r\n }\r\n\r\n public parseFtp() {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Claims werden geparst\"));\r\n this.edeSortimentsService.parseFtpClaims().subscribe(() => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ede Ftp Claims wurden geparst. Die Sortimente werden jetzt geparst\"));\r\n this.edeSortimentsService.parseFtp().subscribe(() => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ede Ftp Sortimente wurde geparst\"));\r\n });\r\n });\r\n }\r\n\r\n public isInstalled(data) {\r\n return data.data.installedVersion >= 0;\r\n }\r\n\r\n public isNewest(data) {\r\n return data.data.installedVersion == data.data.versions.length - 1;\r\n }\r\n\r\n startGenerateEdeInvoiceJob() {\r\n this.modelService.catalogService.showUserAction = false;\r\n let startAction = new StartAction();\r\n startAction.customerId = this.modelService.loginService.currentUser.customerId;\r\n startAction.actionType = \"EDEInvoice\";\r\n startAction.actionParameter = \"\";\r\n\r\n this.modelService.jobService.startJob(startAction).subscribe();\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid (onToolbarPreparing)=\"onContentToolbarPreparing($event)\"\r\n [dataSource]=\"wawiListFields\"\r\n keyExpr=\"id\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [noDataText]=\"noDataText\"\r\n [showBorders]=\"true\"\r\n (onRowInserting)=\"onRowInserting($event)\"\r\n (onSaved)=\"onSaved($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'showExportImportDirectionInfoTemplate'\">\r\n <dx-button *ngIf=\"listSelected && isMapping\" id=\"showPopoverInfoButton\" stylingMode=\"text\" type=\"default\" icon=\"info\" (onClick)=\"showExportImportDirectionInfo()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'excelExportButtonTemplate'\">\r\n <dx-button *ngIf=\"listSelected\" stylingMode=\"text\" type=\"default\" icon=\"export\" text=\"{{ 'Excel Export' | translate }}\" (onClick)=\"exportExcel()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'excelImportButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"import\" text=\"{{ 'Excel Reimport' | translate }}\" (onClick)=\"showImport()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'wawiListsTemplate'\">\r\n <dx-select-box [(items)]=\"wawiLists\" displayExpr=\"listName\" [searchEnabled]=\"true\" width=\"250\" [value]=\"currentWawiList\" (onSelectionChanged)=\"wawiListSelected($event)\"></dx-select-box>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'addWawiListsTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"add\" text=\"{{ 'Neue Liste' | translate }}\" (onClick)=\"showAdd()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'editButtonTemplate'\">\r\n <dx-button *ngIf=\"listSelected\" stylingMode=\"text\" type=\"default\" icon=\"edit\" text=\"{{ 'Liste bearbeiten' | translate }}\" (onClick)=\"showEdit()\"></dx-button>\r\n </div>\r\n <div *dxTemplate=\"let toolbaritem of 'deleteButtonTemplate'\">\r\n <dx-button *ngIf=\"listSelected\" stylingMode=\"text\" type=\"default\" icon=\"trash\" text=\"{{ 'Liste löschen' | translate }}\" (onClick)=\"delete()\"></dx-button>\r\n </div>\r\n\r\n <dxo-toolbar>\r\n <dxi-item name=\"addRowButton\" showText=\"always\"></dxi-item>\r\n </dxo-toolbar>\r\n\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Eintrag suchen' | translate }}\" width=\"250\"></dxo-search-panel>\r\n <dxo-load-panel [enabled]=\"false\"></dxo-load-panel>\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-editing mode=\"row\" [allowAdding]=\"listSelected\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [useIcons]=\"true\">\r\n <dxo-texts confirmDeleteMessage=\"{{ 'Wollen Sie diesen Eintrag wirklich löschen' | translate }}?\"\r\n confirmDeleteTitle=\"{{ 'Eintrag löschen' | translate }}\"\r\n addRow=\"{{'Neuen Eintrag erstellen'| translate}}\"></dxo-texts>\r\n </dxo-editing>\r\n\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"WawiListStateV2\"></dxo-state-storing>\r\n\r\n <dxi-column *ngIf=\"isMapping && listSelected\" dataField=\"key\" dataType=\"text\" [caption]=\"key\" [allowEditing]=\"true\"></dxi-column>\r\n <dxi-column *ngIf=\"listSelected\" dataField=\"value\" dataType=\"text\" [caption]=\"value\" [allowEditing]=\"true\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup *ngIf=\"importVisible\"\r\n [width]=\"600\"\r\n [height]=\"350\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Wawi Liste importieren' | translate }}\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"importVisible\"\r\n contentTemplate=\"popupContent2\">\r\n <div *dxTemplate=\"let data of 'popupContent2'\">\r\n <div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label w-50\">{{ 'AlsNeueListeImport' | translate }}</div>\r\n <div class=\"w-50\">\r\n <dx-switch [(value)]=\"importAsNewList\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-file-uploader #fileUploader\r\n name=\"file\"\r\n uploadUrl=\"api/import/ImportWawiListChunky\"\r\n [multiple]=\"false\"\r\n [chunkSize]=\"10000000\"\r\n accept=\".xlsx\"\r\n (onUploaded)=\"onUploaded()\"\r\n uploadMode=\"instantly\"\r\n (onBeforeSend)=\"onBeforeSendUpload($event)\">\r\n </dx-file-uploader>\r\n </div>\r\n</dx-popup>\r\n\r\n\r\n<dx-popup [showTitle]=\"true\"\r\n title=\"{{ 'Wawi Liste erstellen' | translate }}\"\r\n [dragEnabled]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"addVisible\"\r\n contentTemplate=\"popupContent\"\r\n height=\"50%\"\r\n width=\"50%\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Liste Erstellen' | translate, onClick: addWawiList }\"></dxi-toolbar-item>\r\n\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newWawiList.listName\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"hasWawiAddon()\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Typ' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{'Liste'| translate}}</div>\r\n <dx-switch [(value)]=\"newWawiList.isMapping\" switchedOffText=\"{{'Liste'| translate}}\" switchedOnText=\"{{'Mapping'| translate}}\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Mapping\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"newWawiList.isMapping\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Schlüssel-Spalten Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newWawiList.key\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Wert-Spalten Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newWawiList.value\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-popup [showTitle]=\"true\"\r\n title=\"{{ 'Wawi Liste bearbeiten' | translate }}\"\r\n [dragEnabled]=\"true\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [(visible)]=\"editVisible\"\r\n contentTemplate=\"popupContent3\"\r\n height=\"50%\"\r\n width=\"50%\">\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\" widget=\"dxButton\" [options]=\"{ text: 'Aenderungen anwenden' | translate, onClick: renameWawiList }\"></dxi-toolbar-item>\r\n\r\n <div *dxTemplate=\"let data of 'popupContent3'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"editList.listName\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Typ' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <div class=\"d-flex flex-row pt-2\">\r\n <div class=\"dx-field-label switch-left\">{{'Liste'| translate}}</div>\r\n <dx-switch [(value)]=\"editList.isMapping\" switchedOffText=\"{{'Liste'| translate}}\" switchedOnText=\"{{'Mapping'| translate}}\"></dx-switch>\r\n <div class=\"dx-field-label switch-right\">{{ \"Mapping\" | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"editList.isMapping\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Schlüssel-Spalten Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"editList.key\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Wert-Spalten Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"editList.value\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n<dx-popover target=\"#showPopoverInfoButton\"\r\n [width]=\"400\"\r\n position=\"top\"\r\n [(visible)]=\"exportImportInfoPopupVisible\">\r\n <dxo-animation>\r\n <dxo-show type=\"pop\"\r\n [from]=\"{ scale: 0 }\"\r\n [to]=\"{ scale: 1 }\"></dxo-show>\r\n <dxo-hide type=\"fade\" [from]=\"1\" [to]=\"0\"></dxo-hide>\r\n </dxo-animation>\r\n <div *dxTemplate=\"let data = model; of: 'content'\">\r\n {{ 'ExportImportInfoPopoverTextPart1' | translate }}<br /><br />\r\n {{ 'ExportImportInfoPopoverTextPart2' | translate }}<br /><br />\r\n {{ 'ExportImportInfoPopoverTextPart3' | translate }}\r\n </div>\r\n</dx-popover>\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { Message } from \"../Model/System/Message\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { DxDataGridComponent, DxFileUploaderComponent } from \"devextreme-angular\";\r\nimport { WawiListService } from \"../Services/wawiList.service\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { WawiList, WawiListElement } from \"../Model/wawi/WawiList\";\r\n\r\n@Component({\r\n selector: \"wawiLists\",\r\n templateUrl: \"wawiLists.component.html\"\r\n})\r\nexport class WawiListComponent {\r\n @ViewChild(DxFileUploaderComponent, { static: true })\r\n dxfileuploader: DxFileUploaderComponent;\r\n\r\n @ViewChild(DxDataGridComponent, { static: true })\r\n dataGrid: DxDataGridComponent;\r\n\r\n wawiLists: WawiList[] = [];\r\n currentWawiList: WawiList;\r\n newWawiList: WawiList;\r\n importVisible = false;\r\n addVisible = false;\r\n editVisible = false;\r\n isLoading = false;\r\n importAsNewList = false;\r\n exportImportInfoPopupVisible = false;\r\n exportImportDirectionButtonOptions: any;\r\n closeButtonOptions: any;\r\n\r\n constructor(public modelService: ModelService, public translate: TranslateService, public wawiListService: WawiListService, private oAuthService: OAuthService) {\r\n const that = this;\r\n this.translate.get('Wawi Listen').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n this.exportExcel = this.exportExcel.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.startImportListener = this.startImportListener.bind(this);\r\n this.wawiListSelected = this.wawiListSelected.bind(this);\r\n this.addWawiList = this.addWawiList.bind(this);\r\n this.showAdd = this.showAdd.bind(this);\r\n this.onSaved = this.onSaved.bind(this);\r\n this.onRowInserting = this.onRowInserting.bind(this);\r\n this.renameWawiList = this.renameWawiList.bind(this);\r\n this.showEdit = this.showEdit.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.onBeforeSendUpload = this.onBeforeSendUpload.bind(this);\r\n this.showExportImportDirectionInfo = this.showExportImportDirectionInfo.bind(this);\r\n\r\n this.reloadWawiLists(undefined);\r\n }\r\n\r\n get listSelected(): boolean {\r\n return (this.currentWawiList != undefined);\r\n }\r\n\r\n get wawiListFields(): WawiListElement[] {\r\n if (this.currentWawiList != undefined) {\r\n return this.currentWawiList.fields;\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n get isMapping(): boolean {\r\n if (this.currentWawiList != undefined) {\r\n return this.currentWawiList.isMapping;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n get noDataText() {\r\n if (this.wawiLists.length == 0)\r\n return this.translate.instant(\"keine Listen vorhanden\");\r\n return this.translate.instant(\"keine Einträge vorhanden\");\r\n }\r\n\r\n get key() {\r\n if (this.currentWawiList == undefined)\r\n return \"Schlüssel\";\r\n return this.currentWawiList.key;\r\n }\r\n get value() {\r\n if (this.currentWawiList == undefined)\r\n return \"Wert\";\r\n return this.currentWawiList.value;\r\n }\r\n\r\n onContentToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelImportButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'excelExportButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'deleteButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'editButtonTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addWawiListsTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'showExportImportDirectionInfoTemplate',\r\n });\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'wawiListsTemplate',\r\n });\r\n\r\n\r\n }\r\n\r\n onBeforeSendUpload(e: { request: XMLHttpRequest }) {\r\n if (!this.importAsNewList) {\r\n e.request.setRequestHeader(\"currentWawiListId\", this.currentWawiList.id);\r\n }\r\n e.request.setRequestHeader(\"customerId\", this.modelService.loginService.currentUser?.customerId);\r\n e.request.withCredentials = true;\r\n e.request.setRequestHeader('Authorization', 'Bearer ' + this.oAuthService.getAccessToken());\r\n }\r\n\r\n onUploaded() {\r\n let msg = new Message();\r\n msg.message = \"Import Job wurde gestartet\";\r\n this.modelService.systemService.notify(msg);\r\n this.startImportListener();\r\n this.importVisible = false;\r\n }\r\n\r\n startImportListener() {\r\n this.modelService.jobService.isJobRunningThatChangesWawiList(this.modelService.loginService.currentCustomer.id).subscribe(isRunning => {\r\n if (isRunning) {\r\n setTimeout(this.startImportListener, 2000);\r\n }\r\n else\r\n {\r\n this.reloadWawiLists(this.currentWawiList);\r\n }\r\n })\r\n }\r\n\r\n reloadWawiLists(newWawiListSelection: WawiList) {\r\n this.wawiListService.getAllListsWithoutFields(this.modelService.loginService.currentUser.customerId).subscribe(result => {\r\n this.wawiLists = result;\r\n if (this.wawiLists.length > 0) {\r\n let newSelection = this.wawiLists.find(wawiList => this.hasWawiAddon() || wawiList.isMapping);\r\n if (newWawiListSelection) {\r\n newSelection = newWawiListSelection;\r\n }\r\n\r\n this.wawiLists.forEach(wawiList => wawiList.visible = this.hasWawiAddon() || wawiList.isMapping);\r\n\r\n this.wawiListService.getList(newSelection.id, this.modelService.loginService.currentCustomer.id).toPromise()\r\n .then((data: WawiList) => {\r\n if (data != undefined) {\r\n if (data.fields == undefined) {\r\n data.fields = [];\r\n }\r\n var wawiList = this.wawiLists.find(x => x.id == newSelection.id);\r\n wawiList.fields = data.fields;\r\n this.currentWawiList = wawiList;\r\n }\r\n });\r\n } else {\r\n this.currentWawiList = undefined;\r\n }\r\n });\r\n }\r\n\r\n onSaved(e) {\r\n this.wawiListService.update(this.currentWawiList, this.modelService.loginService.currentCustomer.id).subscribe((data: WawiList) => {\r\n var wawiList = this.wawiLists.find(x => x.id == data.id);\r\n wawiList.fields = data.fields;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onRowInserting(e) {\r\n let i = 0;\r\n this.wawiListFields.forEach(element => {\r\n if (element != null && element.id >= i)\r\n i = element.id + 1;\r\n });\r\n e.data.id = i;\r\n }\r\n\r\n exportExcel() {\r\n this.wawiListService.startExport(this.modelService.loginService.currentCustomer.id, this.currentWawiList.id).subscribe();\r\n let msg = new Message();\r\n msg.message = \"Export Job wurde gestartet\";\r\n this.modelService.systemService.notify(msg);\r\n }\r\n\r\n showImport() {\r\n this.importAsNewList = false;\r\n this.importVisible = true;\r\n }\r\n\r\n wawiListSelected(e) {\r\n if (!e.selectedItem) return;\r\n this.wawiListService.getList(e.selectedItem.id, this.modelService.loginService.currentUser.customerId).subscribe((result: WawiList) => {\r\n if (result) {\r\n if (result.fields == undefined) {\r\n result.fields = [];\r\n }\r\n var wawiList = this.wawiLists.find(x => x.id == result.id);\r\n wawiList.fields = result.fields;\r\n this.currentWawiList = wawiList;\r\n }\r\n });\r\n }\r\n\r\n showAdd() {\r\n this.newWawiList = new WawiList(\"\", \"\", \"\", \"\", !this.hasWawiAddon(), []);\r\n this.addVisible = true;\r\n }\r\n\r\n addWawiList() {\r\n if (this.newWawiList.listName == \"\") {\r\n this.modelService.systemService.notifyInfo(\"Bitte eine Listennamen angeben!\");\r\n return;\r\n }\r\n if (this.newWawiList.value == \"\" || (this.newWawiList.key == \"\" && this.newWawiList.isMapping)) {\r\n this.modelService.systemService.notifyInfo(\"Bitte Spaltennamen angeben!\");\r\n return;\r\n }\r\n \r\n this.modelService.systemService.notifyInfo(\"Liste wird erstellt\");\r\n this.wawiListService.create(this.newWawiList, this.modelService.loginService.currentCustomer.id).subscribe((result: WawiList) => {\r\n this.modelService.systemService.notifyInfo(\"Liste wurde erstellt\");\r\n this.reloadWawiLists(result);\r\n });\r\n\r\n this.addVisible = false;\r\n }\r\n\r\n\r\n editList: WawiList;\r\n showEdit() {\r\n this.editList = new WawiList(\"\", \"\", \"\", \"\", false, []);\r\n this.editList.id = this.currentWawiList.id;\r\n this.editList.key = this.currentWawiList.key;\r\n this.editList.value = this.currentWawiList.value;\r\n this.editList.listName = this.currentWawiList.listName;\r\n this.editList.isMapping = this.currentWawiList.isMapping;\r\n this.editVisible = true;\r\n }\r\n\r\n renameWawiList() {\r\n this.wawiListService.updateOnlyList(this.editList, this.modelService.loginService.currentCustomer.id).subscribe((result: WawiList) => {\r\n if (result != undefined) {\r\n this.reloadWawiLists(result);\r\n }\r\n this.editVisible = false;\r\n });\r\n }\r\n\r\n delete() {\r\n this.wawiListService.delete(this.currentWawiList.id, this.modelService.loginService.currentCustomer.id).subscribe(() => {\r\n this.reloadWawiLists(undefined);\r\n });\r\n }\r\n\r\n hasWawiAddon() {\r\n return this.modelService.loginService.hasAddonWawiErp;\r\n }\r\n\r\n showExportImportDirectionInfo() {\r\n this.exportImportInfoPopupVisible = true;\r\n }\r\n}\r\n","import { TeachingSample } from \"./teachingsample\";\r\n\r\nexport enum TeachingSetStates {\r\n Uninitialized = 0,\r\n Requested = 1,\r\n InProgress = 2,\r\n Ready = 3\r\n}\r\n\r\nexport interface TeachingSet {\r\n customerId: string;\r\n id: string;\r\n name: string;\r\n state: TeachingSetStates;\r\n samples: TeachingSample[];\r\n}\r\n","import { FeatureSystem } from \"../Catalog/FeatureModels/FeatureSystem\";\r\n\r\nexport class TeachingSample {\r\n constructor(\r\n public descriptionShort?: string,\r\n public descriptionLong?: string,\r\n public groupString?: string,\r\n public manufacturer?: string,\r\n public keyWords?: string[],\r\n public featureSystem?: FeatureSystem) { }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Training' | translate }}</h4>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ teachingSetService.selectedSet.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"teachingSetService.selectedSet.name\" [showClearButton]=\"true\" (onValueChanged)=\"update()\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Status' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ teachingSetService.selectedSet.name?.length>0 ? 'placeLabelSmall' : '' }}\">STATUS</label>\r\n <dx-text-box [value]=\"getStatus()\" [showClearButton]=\"true\" [readOnly]=\"true\" (onValueChanged)=\"update()\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <dx-toolbar>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Muster hinzufügen' | translate, onClick: addSample }\"></dxi-item>\r\n <dxi-item location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Produkt aus Zwischenablage einfuegen' | translate, onClick: paste }\"></dxi-item>\r\n <dxi-item *ngIf=\"generateEnabled\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Generieren' | translate, onClick: generate }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"dx-field\">\r\n <dx-tab-panel [dataSource]=\"teachingSetService.selectedSet.samples\" [(selectedItem)]=\"teachingSetService.selectedSample\" class=\"w-100\" [swipeEnabled]=\"false\">\r\n <div *dxTemplate=\"let sample of 'title'\">\r\n <span>{{ sample.descriptionShort }}</span>\r\n </div>\r\n <div *dxTemplate=\"let sample of 'item'\">\r\n <dx-tab-panel [dataSource]=\"samplePages\" [selectedIndex]=\"0\" [swipeEnabled]=\"false\">\r\n\r\n <div *dxTemplate=\"let detail of 'sampleDetailTemplate'\">\r\n <div class=\"dx-fieldset mainInfos\" *ngIf=\"sample\">\r\n\r\n <!--descriptionShort-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Produktbeschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt0\">\r\n <label class=\"placeLabel {{ sample.descriptionShort?.length>0 ? 'placeLabelSmall' : '' }}\">DESCRIPTION_SHORT</label>\r\n <dx-text-box id=\"descriptionShort\" [readOnly]=\"false\" [(value)]=\"sample.descriptionShort\" [showClearButton]=\"true\" (onValueChanged)=\"update()\">\r\n <dx-validator validationGroup=\"productValidationGroup\">\r\n <dxi-validation-rule type=\"custom\" [validationCallback]=\"validationService.validateDescriptionShort\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--groupString-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Kategorien' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt0\">\r\n <label class=\"placeLabel {{ sample.descriptionShort?.length>0 ? 'placeLabelSmall' : '' }}\">GROUPSTRING</label>\r\n <dx-text-box id=\"descriptionShort\" [readOnly]=\"false\" [(value)]=\"sample.groupString\" [showClearButton]=\"true\" (onValueChanged)=\"update()\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!--keywords-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Suchbegriffe' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt0\">\r\n <label class=\"placeLabel {{ sample.descriptionShort?.length>0 ? 'placeLabelSmall' : '' }}\">KEYWORDS</label>\r\n <dx-tag-box [(value)]=\"sample.keyWords\" placeholder=\"\" [readOnly]=\"false\" (onValueChanged)=\"update()\" [acceptCustomValue]=\"true\" noDataText=\"\">\r\n </dx-tag-box>\r\n </div>\r\n </div>\r\n\r\n <!--manufacturer-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Hersteller' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt0\">\r\n <label class=\"placeLabel {{ sample.descriptionShort?.length>0 ? 'placeLabelSmall' : '' }}\">MANUFACTURER</label>\r\n <dx-text-box id=\"descriptionShort\" [readOnly]=\"false\" [(value)]=\"sample.manufacturer\" [showClearButton]=\"true\" (onValueChanged)=\"update()\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *dxTemplate=\"let features of 'sampleFeaturesTemplate'\">\r\n <div class=\"dx-fieldset mainInfos\" *ngIf=\"sample\">\r\n\r\n\r\n <!-- Featurevalues -->\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"!teachingSetService.selectedSample?.featureSystem\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Neue Merkmalsgruppe' | translate, onClick: addFeatureSystem }\"></dxi-item>\r\n </dx-toolbar>\r\n <div class=\"dx-field\" *ngIf=\"sample.featureSystem\">\r\n <editfeaturevaluelist [(modelService)]=\"modelService\"\r\n [(featureSystem)]=\"sample.featureSystem\"\r\n (model)=\"sample\"\r\n displayMode=\"edit\"\r\n [showPlaceHolders]=\"showPlaceHolders\"\r\n [showLinkButtons]=\"false\"\r\n [hasAddonCLASSIFICATION]=\"false\"\r\n (onValueChanged)=\"update($event)\"\r\n (elementDeleted)=\"update($event)\">\r\n </editfeaturevaluelist>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *dxTemplate=\"let result of 'sampleResultTemplate'\">\r\n <div class=\"dx-fieldset mainInfos\" *ngIf=\"sample\">\r\n\r\n <!-- Memo-->\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label dx-field-label200\">{{ 'Langbeschreibung' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\" id=\"tt14\" style=\"border: 1px solid #949494;\">\r\n\r\n <dx-html-editor [(value)]=\"sample.descriptionLong\"\r\n placeholder=\"DESCRIPTION_LONG\"\r\n (onValueChanged)=\"update()\"\r\n [readOnly]=\"false\">\r\n <dxo-toolbar>\r\n <dxi-item name=\"undo\"></dxi-item>\r\n <dxi-item name=\"redo\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"bold\"></dxi-item>\r\n <dxi-item name=\"italic\"></dxi-item>\r\n <dxi-item name=\"underline\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"alignLeft\"></dxi-item>\r\n <dxi-item name=\"alignCenter\"></dxi-item>\r\n <dxi-item name=\"alignRight\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"header\" [acceptedValues]=\"[1, 2, 3, 4, 5, false]\"></dxi-item>\r\n <dxi-item name=\"separator\"></dxi-item>\r\n <dxi-item name=\"orderedList\"></dxi-item>\r\n <dxi-item name=\"bulletList\"></dxi-item>\r\n </dxo-toolbar>\r\n </dx-html-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-tab-panel>\r\n </div>\r\n </dx-tab-panel>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TeachingSetService } from \"../Services/teachingSet.service\";\r\nimport { TeachingSample } from \"../Model/OpenAi/teachingsample\";\r\nimport { FeatureSystem } from \"../Model/Catalog/FeatureModels/FeatureSystem\";\r\nimport { TeachingSetStates } from \"../Model/OpenAi/teachingset\";\r\nimport { ValidationService } from \"../Services/Validation/validation.service\";\r\n\r\n@Component({\r\n selector: \"teachingset\",\r\n templateUrl: \"teachingset.component.html\"\r\n})\r\nexport class TeachingSetComponent implements OnInit {\r\n\r\n samplePages: { id: number; title: string; template: string; }[] = [];\r\n\r\n constructor(public modelService: ModelService, public teachingSetService: TeachingSetService, public validationService: ValidationService, public translate: TranslateService) {\r\n this.addSample = this.addSample.bind(this);\r\n this.addFeatureSystem = this.addFeatureSystem.bind(this);\r\n this.generate = this.generate.bind(this);\r\n this.getStatus = this.getStatus.bind(this);\r\n this.paste = this.paste.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n\r\n this.samplePages = [\r\n { id: 1, title: this.translate.instant(\"Details\"), template: \"sampleDetailTemplate\" },\r\n { id: 2, title: this.translate.instant(\"Features\"), template: \"sampleFeaturesTemplate\" },\r\n { id: 2, title: this.translate.instant(\"Ergebnis\"), template: \"sampleResultTemplate\" }\r\n ];\r\n\r\n }\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n get generateEnabled() {\r\n return this.teachingSetService.selectedSet?.state === undefined || this.teachingSetService.selectedSet?.state === TeachingSetStates.Uninitialized || this.teachingSetService.selectedSet?.state === TeachingSetStates.Ready;\r\n }\r\n\r\n generate() {\r\n this.teachingSetService.startGenerationJob(this.teachingSetService.selectedSet).subscribe(result => {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ein Job wurde erzeugt\"));\r\n });\r\n }\r\n\r\n addSample() {\r\n this.teachingSetService.selectedSet.samples.push({\r\n descriptionShort: this.translate.instant(\"Neues Muster\")\r\n } as TeachingSample);\r\n\r\n this.update();\r\n }\r\n\r\n addFeatureSystem() {\r\n const featureSystem = new FeatureSystem();\r\n\r\n featureSystem.order = 1;\r\n\r\n this.teachingSetService.selectedSample.featureSystem = featureSystem;\r\n\r\n this.update();\r\n }\r\n\r\n update() {\r\n this.teachingSetService.updateSingle(this.teachingSetService.selectedSet).subscribe(\r\n result => {\r\n // this.teachingSetService.selectedSet = result;\r\n });\r\n }\r\n\r\n getStatus(): string {\r\n switch (this.teachingSetService.selectedSet.state) {\r\n case TeachingSetStates.InProgress:\r\n return \"InProgress\";\r\n case TeachingSetStates.Ready:\r\n return \"Ready\";\r\n case TeachingSetStates.Requested:\r\n return \"Requested\";\r\n case TeachingSetStates.Uninitialized:\r\n return \"Uninitialized\";\r\n }\r\n }\r\n\r\n\r\n paste() {\r\n this.modelService.catalogService.loadClipboard().subscribe(clipboard => {\r\n if (clipboard.content == \"pro\") {\r\n this.modelService.catalogService.getProductUnchecked(clipboard.objectId, this.modelService.loginService.currentCustomer.id)\r\n .subscribe(product => {\r\n let sample = new TeachingSample();\r\n sample.descriptionShort = product.descriptionShort;\r\n sample.descriptionLong = product.descriptionLong;\r\n sample.featureSystem = product.featureSystems[0];\r\n sample.keyWords = product.keywords;\r\n sample.manufacturer = product.manufacturerName;\r\n this.modelService.catalogService.getCategory(product.catalogMappings[0].categoryId, this.modelService.loginService.currentCustomer.id) // .catalogMappings[0]. ist hier OK\r\n .subscribe(category => {\r\n sample.groupString = category.groupName;\r\n this.teachingSetService.selectedSet.samples.push(sample);\r\n this.update();\r\n });\r\n });\r\n } else {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"In der Zwischenablage befindet sich kein Produkt\"));\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [dataSource]=\"model\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Trainings im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowClick)=\"onSelectionChangedClick($event)\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'addButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neues Training' | translate }}\" (onClick)=\"addSingle()\"></dx-button>\r\n\r\n </div>\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Training suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"TeachingSetsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"state\" caption=\"{{ 'Status' | translate }}\" cellTemplate=\"stateTemplate\"></dxi-column>\r\n <div *dxTemplate=\"let state of 'stateTemplate'\">\r\n {{getStateDesc(state.displayValue)}}\r\n </div>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"h-100 px-3\">\r\n <dx-scroll-view *ngIf=\"teachingSetService.selectedSet\" showScrollbar=\"always\">\r\n <teachingset></teachingset> \r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { TeachingSet, TeachingSetStates } from \"../Model/OpenAi/teachingset\";\r\nimport { TeachingSetService } from \"../Services/teachingSet.service\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"teachingsets\",\r\n templateUrl: \"teachingsets.component.html\"\r\n})\r\nexport class TeachingSetsComponent implements OnInit {\r\n model: TeachingSet[];\r\n\r\n constructor(public modelService: ModelService, public teachingSetService: TeachingSetService, public translate: TranslateService) {\r\n this.translate.get('Description Wizard').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addButtonTemplate'\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.teachingSetService.getAll().subscribe(\r\n result => {\r\n this.model = result;\r\n });\r\n }\r\n\r\n onSelectionChangedClick(e: { data: TeachingSet }) {\r\n this.teachingSetService.selectedSet = e.data;\r\n }\r\n onDeleteClicked(e: { data: TeachingSet }) {\r\n this.teachingSetService.deleteSingle(e.data.id);\r\n }\r\n\r\n addSingle() {\r\n\r\n let teachingSet = {\r\n customerId: this.modelService.loginService.currentUser.customerId\r\n } as TeachingSet;\r\n\r\n this.teachingSetService.addSingle(teachingSet).subscribe(\r\n result => {\r\n this.teachingSetService.selectedSet = result;\r\n this.model.push(result);\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n\r\n getStateDesc(state: TeachingSetStates) {\r\n switch (state) {\r\n case TeachingSetStates.InProgress:\r\n return \"InProgress\";\r\n case TeachingSetStates.Ready:\r\n return \"Ready\";\r\n case TeachingSetStates.Requested:\r\n return \"Requested\";\r\n case TeachingSetStates.Uninitialized:\r\n return \"Uninitialized\";\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { LoginService } from './login.service';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor(private router: Router, private loginService: LoginService) {\r\n this.canActivate = this.canActivate.bind(this)\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\r\n return new Promise((resolve, reject) => {\r\n if (this.loginService.loggedIn) {\r\n resolve(true);\r\n } else {\r\n this.loginService.silentlogin(\"\").subscribe((success) => {\r\n \r\n if (success)\r\n resolve(true);\r\n else {\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n reject(false);\r\n } \r\n }, error => {\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n reject(false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { LoginService } from './login.service';\r\nimport { OsgSender } from \"../Model/osg/osgSender\";\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class OsgSenderService {\r\n\r\n private _OsgSenders?: OsgSender[];\r\n private _selectedSet?: OsgSender;\r\n\r\n osgSenders: OsgSender[];\r\n\r\n\r\n get selectedSet(): OsgSender {\r\n return this._selectedSet;\r\n }\r\n\r\n set selectedSet(value: OsgSender) {\r\n this._selectedSet = value;\r\n }\r\n\r\n\r\n\r\n constructor(private http: HttpClient, public loginService: LoginService) {\r\n\r\n }\r\n\r\n\r\n getSingle(id: string): Observable<OsgSender> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"OsgSenderId\", id).append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<OsgSender>(\"api/OsgSender/GetSingle\", options));\r\n }\r\n\r\n getAll(): Observable<OsgSender[]> {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"customerId\", this.loginService.currentUser.customerId)\r\n }\r\n return (this.http.get<OsgSender[]>(\"api/OsgSender/GetAll\", options));\r\n }\r\n\r\n\r\n\r\n deleteSingle(id: string) {\r\n {\r\n const options = {\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\"),\r\n params: new HttpParams().append(\"id\", id)\r\n }\r\n\r\n this.http.delete(\"api/OsgSender/DeleteSingle\", options)\r\n .subscribe(\r\n result => { },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n updateSingle(item: OsgSender): Observable<OsgSender> {\r\n return (this.http.post<OsgSender>(\"api/OsgSender/UpdateSingle\", item));\r\n }\r\n\r\n addSingle(item: OsgSender): Observable<OsgSender> {\r\n return (this.http.post<OsgSender>(\"api/OsgSender/AddSingle\", item));\r\n }\r\n\r\n startGenerationJob(item: OsgSender, isTest: boolean): Observable<OsgSender> {\r\n item.isTest = isTest;\r\n return (this.http.post<OsgSender>(\"api/OsgSender/StartGenerationJob\", item));\r\n }\r\n}\r\n","<div class=\"dx-fieldset\">\r\n <div class=\"dx-field\">\r\n <h4>{{ 'Katalogauswahl' | translate }}</h4>\r\n </div>\r\n\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label jobListTD\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value {{showPlaceHolders ? 'inputWithPlaceHolder' : 'inputWithOutPlaceHolder' }}\">\r\n <label class=\"placeLabel {{ osgSenderService.selectedSet.name?.length>0 ? 'placeLabelSmall' : '' }}\">NAME</label>\r\n <dx-text-box [(value)]=\"osgSenderService.selectedSet.name\" [showClearButton]=\"true\" (onValueChanged)=\"updateName()\"></dx-text-box>\r\n </div>\r\n </div>\r\n\r\n \r\n\r\n <dx-toolbar>\r\n <dxi-item *ngIf=\"generateEnabled\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Export starten' , onClick: generate }\"></dxi-item>\r\n <dxi-item *ngIf=\"generateEnabled && hasTestConnection\" location=\"before\" widget=\"dxButton\" locateInMenu=\"auto\" [options]=\"{ type: 'default', text: 'Export zum Testshop starten' , onClick: generateTest }\"></dxi-item>\r\n </dx-toolbar>\r\n\r\n <div class=\"dx-field\">\r\n <dx-data-grid [dataSource]=\"catalogs\"\r\n keyExpr=\"id\"\r\n [hoverStateEnabled]=\"true\"\r\n [filterRow]=\"{ visible: true }\"\r\n (onSelectionChanged)=\"update()\"\r\n [(selectedRowKeys)]=\"osgSenderService.selectedSet.catalogs\">\r\n <dxo-group-panel [visible]=\"true\"></dxo-group-panel>\r\n <dxo-load-panel [enabled]=\"true\"></dxo-load-panel>\r\n <dxo-paging [pageSize]=\"1000\"> </dxo-paging>\r\n <dxo-selection mode=\"multiple\"></dxo-selection>\r\n <dxi-column dataField=\"catalogName\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n <dxi-column dataField=\"catalogVersion\" caption=\"{{ 'Version' | translate }}\" [width]=\"100\"></dxi-column>\r\n <dxi-column dataField=\"date\" caption=\"{{ 'Datum' | translate }}\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n <dxi-column dataField=\"lastUpdate\" caption=\"{{ 'Änderung' | translate }}\" dataType=\"date\" [format]=\"{ type: 'dd.MM.yyyy' }\" [width]=\"105\"></dxi-column>\r\n <dxi-column dataField=\"categoryCount\" caption=\"{{ 'Kategorien' | translate }}\" [width]=\"100\"></dxi-column>\r\n <dxi-column dataField=\"productCount\" caption=\"{{ 'Produkte' | translate }}\" [width]=\"100\"></dxi-column>\r\n <dxi-column dataField=\"pimGroup\" caption=\"{{ 'Gruppe' | translate }}\"></dxi-column>\r\n\r\n\r\n </dx-data-grid>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { OsgSenderService } from \"../Services/osgSender.service\";\r\nimport { Catalog } from \"../Model/Catalog/catalog\";\r\nimport { OsgConnection } from \"../Model/Dto/OsgConnection\";\r\n\r\n\r\n@Component({\r\n selector: \"osgSender\",\r\n templateUrl: \"osgSender.component.html\"\r\n})\r\nexport class OsgSenderComponent implements OnInit {\r\n\r\n _catalogs: Catalog[];\r\n hasTestConnection: boolean;\r\n\r\n get catalogs(): Catalog[] {\r\n return this._catalogs;\r\n }\r\n\r\n set catalogs(value: Catalog[]) {\r\n this._catalogs = value;\r\n }\r\n\r\n\r\n constructor(public modelService: ModelService, public osgSenderService: OsgSenderService, public translate: TranslateService) {\r\n\r\n this.generate = this.generate.bind(this);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.refresh();\r\n this.modelService.osgConnectionService.getConnection(this.modelService.loginService.currentCustomer.id, true).subscribe(\r\n (result: OsgConnection) => {\r\n if (result != null && result.shopUrl.length > 0) {\r\n this.hasTestConnection = true;\r\n }\r\n });\r\n\r\n }\r\n\r\n refresh(): void {\r\n this.modelService.catalogService.getCatalogs(this.modelService.loginService.currentCustomer.id)\r\n .subscribe((result: Catalog[]) => {\r\n this.catalogs = result;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n get showPlaceHolders() {\r\n return this.modelService.loginService.showPlaceHolders;\r\n }\r\n\r\n get generateEnabled() {\r\n return this.osgSenderService.selectedSet.catalogs.length > 0;\r\n }\r\n generateTest() {\r\n this.osgSenderService.startGenerationJob(this.osgSenderService.selectedSet, true).subscribe(result => {\r\n if (this.osgSenderService.selectedSet.catalogs.length == 1) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ein Job wurde erzeugt\"));\r\n } else {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Jobs wurden erzeugt\"));\r\n }\r\n });\r\n }\r\n\r\n generate() {\r\n this.osgSenderService.startGenerationJob(this.osgSenderService.selectedSet, false).subscribe(result => {\r\n if (this.osgSenderService.selectedSet.catalogs.length == 1) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Ein Job wurde erzeugt\"));\r\n } else {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Jobs wurden erzeugt\"));\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n updateName() {\r\n this.update();\r\n }\r\n\r\n\r\n isUpdating: boolean;\r\n\r\n update() {\r\n if (this.isUpdating)\r\n return;\r\n this.isUpdating = true;\r\n\r\n this.osgSenderService.updateSingle(this.osgSenderService.selectedSet).subscribe(\r\n result => {\r\n this.osgSenderService.selectedSet = result;\r\n this.isUpdating = false;\r\n });\r\n }\r\n\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"h-100 d-flex flex-column\"> \r\n <div class=\"p-2 flex-fill overflow-hidden\">\r\n <dx-data-grid class=\"h-100\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n [(dataSource)]=\"osgSenderService.osgSenders\"\r\n [remoteOperations]=\"false\"\r\n [allowColumnReordering]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Katalogauswahlen im Account' | translate }}\"\r\n [showBorders]=\"true\"\r\n (onRowClick)=\"onSelectionChangedClick($event)\"\r\n (onRowRemoving)=\"onDeleteClicked($event)\">\r\n <div *dxTemplate=\"let toolbaritem of 'addButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Katalogauswahl' | translate }}\" (onClick)=\"addSingle()\"></dx-button>\r\n </div>\r\n \r\n\r\n <dxo-editing mode=\"row\" [allowDeleting]=\"true\" [allowUpdating]=\"false\" [useIcons]=\"true\"></dxo-editing>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"standard\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\" placeholder=\"{{ 'Auswahl suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"TeachingSetsStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\"></dxi-column>\r\n\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </navigation-column>\r\n <content-column helpSwitch=\"true\" look=\"light\">\r\n <div slot=\"content\" class=\"h-100 px-3\">\r\n <dx-scroll-view *ngIf=\"osgSenderService.selectedSet\" showScrollbar=\"always\">\r\n <osgSender></osgSender> \r\n </dx-scroll-view>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ModelService } from \"../Services/model.service\";\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { OsgSenderService } from \"../Services/osgSender.service\";\r\nimport { OsgSender } from \"../Model/osg/osgSender\";\r\n\r\n\r\n\r\n@Component({\r\n selector: \"osgSenders\",\r\n templateUrl: \"osgSenders.component.html\"\r\n})\r\nexport class OsgSendersComponent implements OnInit {\r\n\r\n\r\n constructor(public modelService: ModelService, public osgSenderService: OsgSenderService, public translate: TranslateService) {\r\n this.translate.get('Multishop Export').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'addButtonTemplate'\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.osgSenderService.getAll().subscribe(\r\n result => {\r\n this.osgSenderService.osgSenders = result;\r\n });\r\n }\r\n\r\n onSelectionChangedClick(e: { data: OsgSender }) {\r\n this.osgSenderService.getSingle(e.data.id).subscribe(\r\n result => {\r\n this.osgSenderService.selectedSet = result;\r\n });\r\n }\r\n onDeleteClicked(e: { data: OsgSender }) {\r\n this.osgSenderService.deleteSingle(e.data.id);\r\n }\r\n\r\n addSingle() {\r\n\r\n let OsgSender = {\r\n customerId: this.modelService.loginService.currentUser.customerId\r\n } as OsgSender;\r\n\r\n this.osgSenderService.addSingle(OsgSender).subscribe(\r\n result => {\r\n this.osgSenderService.selectedSet = result;\r\n this.osgSenderService.osgSenders.push(result);\r\n });\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { ValidationRule } from \"./ValidationRule\";\r\n\r\nexport class ValidationGroup {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n public order?: number,\r\n public backgroundColor?: string,\r\n public stateText?: string,\r\n public ignoreForReport?: boolean,\r\n public rules?: ValidationRule[],\r\n public productCount?: number\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","import { ValidationGroup } from \"./ValidationGroup\";\r\n\r\nexport class ValidationMethod {\r\n\r\n constructor(\r\n public id?: string,\r\n public name?: string,\r\n public createdByCustomerId?: string,\r\n public isGlobal?: boolean,\r\n public isDefault?: boolean,\r\n public isVisible?: boolean,\r\n public groups?: ValidationGroup[]\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","import { ValidationField } from \"./ValidationField\";\r\n\r\nexport class ValidationRule {\r\n\r\n constructor(\r\n public id?: string,\r\n public printName?: string,\r\n public order?: number,\r\n public field?: ValidationField,\r\n public stateText?: string,\r\n public points?: number,\r\n public pointsPerCount?: number,\r\n public maxPoints?: number,\r\n public isRequired?: boolean,\r\n public minLength?: number,\r\n public minCount?: number,\r\n public pattern?: string,\r\n public minWidth?: number,\r\n public minHeight?: number,\r\n public checkIfExists?: boolean,\r\n public area?: string,\r\n public displayMessage?: string,\r\n public groupId?: string,\r\n public featureSystemNameFilter?: string,\r\n public featureNameFilter?: string,\r\n public mimeTypeFilter?: string,\r\n public mimePurposeFilter?: string,\r\n public referenceTypeFilter?: string,\r\n public udxGroupFilter?: string,\r\n public supplierNameFilter?: string,\r\n public packingUnitCodeFilter?: string,\r\n public priceListLiveFilter?: boolean,\r\n public priceTypeFilter?: string,\r\n public isConditional?:boolean,\r\n public conditionalRuleIds?: string[]\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","export class ValidationField {\r\n\r\n constructor(\r\n public fieldName?: string,\r\n public fieldGroup?: string,\r\n public isList?: boolean,\r\n public isBool?: boolean,\r\n public isPicture?: boolean\r\n ) {\r\n }\r\n}\r\n\r\n\r\n","export class TranslatedText {\r\n\r\n constructor(\r\n public value?: string,\r\n public translated?: string\r\n ) { }\r\n}\r\n","<fullscreen-page>\r\n <navigation-column>\r\n <div class=\"p-2 h-100 d-flex flex-column\">\r\n <div class=\"dx-field\" style=\"margin: 0 0 5px;\">\r\n <div class=\"dx-field-label\">{{'Datenqualität-Set' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"validationMethods\"\r\n [(value)]=\"selectedValidationMethod\"\r\n [displayExpr]=\"getValidationMethodDisplayText\"\r\n (onValueChanged)=\"onValidationMethodChanged($event)\">\r\n <dxo-drop-down-options [width]=\"400\"></dxo-drop-down-options>\r\n </dx-select-box>\r\n </div>\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"plus\" (onClick)=\"showCreateValidationMethodPopup()\"></dx-button>\r\n <dx-button stylingMode=\"text\" type=\"default\" icon=\"copy\" (onClick)=\"showDuplicateValidationMethodPopup()\"></dx-button>\r\n <dx-button *ngIf=\"!isReadOnlyForUser(selectedValidationMethod)\"\r\n stylingMode=\"text\" type=\"default\" icon=\"trash\" (onClick)=\"deleteValidationMethod()\"></dx-button>\r\n </div>\r\n <div *ngIf=\"selectedValidationMethod != undefined && !isReadOnlyForUser(selectedValidationMethod)\"\r\n style=\"display: flex; justify-content: flex-end;\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neue Gruppe' | translate }}\" (onClick)=\"createValidationGroup()\"></dx-button>\r\n </div>\r\n <dx-tree-view [dataSource]=\"validationGroups\"\r\n itemsExpr=\"rules\"\r\n [noDataText]=\"noDataText\"\r\n [selectionMode]=\"'single'\"\r\n [selectByClick]=\"true\"\r\n (onSelectionChanged)=\"onValidationItemSelection($event)\">\r\n <div *dxTemplate=\"let item of 'item'\" style=\"width: 100%;\">\r\n <div class=\"d-flex flex-row\" style=\"align-items:center\">\r\n <div *ngIf=\"itemIsValidationGroup(item)\">\r\n {{ item.name }}\r\n </div>\r\n <div *ngIf=\"!itemIsValidationGroup(item) && !item.isConditional\">\r\n {{ item.printName }}\r\n </div>\r\n <div *ngIf=\"!itemIsValidationGroup(item) && item.isConditional\">\r\n {{ item.printName }} {{ '(Bedingung)' | translate }}\r\n </div>\r\n <div class=\"ml-auto\">\r\n <dx-button *ngIf=\"itemIsValidationGroup(item) && !isReadOnlyForUser(selectedValidationMethod)\"\r\n stylingMode=\"text\" type=\"default\" icon=\"plus\" (onClick)=\"createValidationRule(item)\"></dx-button>\r\n <dx-button *ngIf=\"!isReadOnlyForUser(selectedValidationMethod)\"\r\n stylingMode=\"text\" type=\"default\" icon=\"copy\" (onClick)=\"duplicateValidationItem(item)\"></dx-button>\r\n <dx-button *ngIf=\"!isReadOnlyForUser(selectedValidationMethod)\"\r\n stylingMode=\"text\" type=\"default\" icon=\"trash\" (onClick)=\"deleteValidationItem(item)\"></dx-button>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-tree-view>\r\n </div>\r\n </navigation-column>\r\n <content-column helpSwitch=\"true\" look=\"light\"> \r\n <div slot=\"content\" class=\"p-2 flex-fill overflow-hidden\">\r\n <div *ngIf=\"selectedValidationItem == undefined && selectedValidationMethod != undefined\"\r\n class=\"p-2 overflow-hidden h-100\" style=\"display: grid; grid-template-rows: [first] 100px;\">\r\n <h4 style=\"text-align:center\">{{ 'Datenqualität-Set' | translate }}</h4>\r\n <dx-scroll-view [useNative]=\"true\" showScrollbar=\"'always'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationMethod.name\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isAdminUser()\" class=\"dx-field\">\r\n <div id=\"isGlobal\" class=\"dx-field-label\">{{ 'ist Global' | translate }}</div>\r\n <dx-tooltip target=\"#isGlobal\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'isGlobalTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationMethod.isGlobal\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isAdminUser() && selectedValidationMethod.isGlobal\" class=\"dx-field\">\r\n <div id=\"isVisible\" class=\"dx-field-label\">{{ 'ist sichtbar' | translate }}</div>\r\n <dx-tooltip target=\"#isVisible\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'isVisibleTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationMethod.isVisible\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n <div *ngIf=\"selectedValidationItem != undefined && itemIsValidationGroup(selectedValidationItem)\"\r\n class=\"p-2 overflow-hidden h-100\" style=\"display: grid; grid-template-rows: [first] 100px;\">\r\n <h4 style=\"text-align:center\">{{ 'Gruppe' | translate }}</h4>\r\n <dx-scroll-view [useNative]=\"true\" showScrollbar=\"'always'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.name\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"groupOrder\" class=\"dx-field-label\">{{ 'Order' | translate }}</div>\r\n <dx-tooltip target=\"#groupOrder\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'GroupOrderTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.order\"\r\n format=\"0#\"\r\n [showSpinButtons]=\"true\"\r\n [showClearButton]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"groupBackgroundColor\" class=\"dx-field-label\">{{ 'Hintergrundfarbe' | translate }}</div>\r\n <dx-tooltip target=\"#groupBackgroundColor\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'GroupBackgroundColorTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-color-box [(value)]=\"selectedValidationItem.backgroundColor\"\r\n applyButtonText=\"{{ 'Bestätigen' | translate }}\"\r\n cancelButtonText=\"{{ 'Abbrechen' | translate }}\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-color-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"groupInvalidStateText\" class=\"dx-field-label\">{{ 'Invalider Status-Text' | translate }}</div>\r\n <dx-tooltip target=\"#groupInvalidStateText\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'GroupInvalidStateTextTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.stateText\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"groupIgnoreForReport\" class=\"dx-field-label\">{{ 'Für Reports ignorieren' | translate }}</div>\r\n <dx-tooltip target=\"#groupIgnoreForReport\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'GroupIgnoreForReportTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationItem.ignoreForReport\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n <div *ngIf=\"selectedValidationItem != undefined && !itemIsValidationGroup(selectedValidationItem)\"\r\n class=\"p-2 overflow-hidden h-100\" style=\"display: grid; grid-template-rows: [first] 100px;\">\r\n <h4 style=\"text-align:center\">{{ 'Regel' | translate }}</h4>\r\n <dx-scroll-view [useNative]=\"true\" showScrollbar=\"'always'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.printName\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"ruleOrder\" class=\"dx-field-label\">{{ 'Order' | translate }}</div>\r\n <dx-tooltip target=\"#ruleOrder\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleOrderTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.order\"\r\n format=\"0#\"\r\n [showSpinButtons]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"RuleFieldGroup\" class=\"dx-field-label\">{{ 'Feld-Gruppe' | translate }}</div>\r\n <dx-tooltip target=\"#RuleFieldGroup\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleFieldGroupTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"fieldGroups\"\r\n [(value)]=\"selectedValidationItem.field.fieldGroup\"\r\n (onSelectionChanged)=\"onFieldGroupChanged($event)\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n valueExpr=\"value\"\r\n displayExpr=\"translated\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedValidationItem.field.fieldGroup != undefined\" class=\"dx-field\">\r\n <div id=\"RuleFieldName\" class=\"dx-field-label\">{{ 'Feld-Name' | translate }}</div>\r\n <dx-tooltip target=\"#RuleFieldName\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleFieldNameTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"fieldNamesInGroup\"\r\n [(value)]=\"selectedValidationItem.field.fieldName\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n valueExpr=\"value\"\r\n displayExpr=\"translated\"\r\n (onValueChanged)=\"changeFieldNameAndSaveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"RuleInvalidStateText\" class=\"dx-field-label\">{{ 'Invalider Status-Text' | translate }}</div>\r\n <dx-tooltip target=\"#RuleInvalidStateText\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleInvalidStateTextTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.stateText\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled()\" class=\"dx-field\">\r\n <div id=\"RuleWeight\" class=\"dx-field-label\">{{ 'Punkte (Gewichtung)' | translate }}</div>\r\n <dx-tooltip target=\"#RuleWeight\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleWeightTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.points\"\r\n [showSpinButtons]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldIsList()\" class=\"dx-field\">\r\n <div id=\"RuleWeightForElement\" class=\"dx-field-label\">{{ 'Punkte pro Element (Gewichtung)' | translate }}</div>\r\n <dx-tooltip target=\"#RuleWeightForElement\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleWeightForElementTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.pointsPerCount\"\r\n [showSpinButtons]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldIsList()\" class=\"dx-field\">\r\n <div id=\"RuleWeightMax\" class=\"dx-field-label\">{{ 'Maximale Punkte' | translate }}</div>\r\n <dx-tooltip target=\"#RuleWeightMax\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleWeightMaxTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.maxPoints\"\r\n [showSpinButtons]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled()\" class=\"dx-field\">\r\n <div id=\"RuleMandatoryField\" class=\"dx-field-label\">{{ 'Pflichtfeld' | translate }}</div>\r\n <dx-tooltip target=\"#RuleMandatoryField\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleMandatoryFieldTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationItem.isRequired\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled() && selectedItemFieldIsList()\" class=\"dx-field\">\r\n <div id=\"RuleMinListCount\" class=\"dx-field-label\">{{ 'Minimale Anzahl' | translate }}</div>\r\n <dx-tooltip target=\"#RuleMinListCount\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleMinListCountTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.minCount\"\r\n format=\"#\"\r\n [showSpinButtons]=\"true\"\r\n [showClearButton]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled() && !selectedItemFieldIsList() && !selectedItemFieldIsBool()\" class=\"dx-field\">\r\n <div id=\"RuleMinLength\"class=\"dx-field-label\">{{ 'Minimale Länge' | translate }}</div>\r\n <dx-tooltip target=\"#RuleMinLength\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleMinLengthTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.minLength\"\r\n format=\"#\"\r\n [showSpinButtons]=\"true\"\r\n [showClearButton]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldIsPicture()\" class=\"dx-field\">\r\n <div id=\"RuleMinWidth\" class=\"dx-field-label\">{{ 'Minimale Breite' | translate }}</div>\r\n <dx-tooltip target=\"#RuleMinWidth\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleMinWidthTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.minWidth\"\r\n format=\"#\"\r\n [showSpinButtons]=\"true\"\r\n [showClearButton]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldIsPicture()\" class=\"dx-field\">\r\n <div id=\"RuleMinHeight\" class=\"dx-field-label\">{{ 'Minimale Höhe' | translate }}</div>\r\n <dx-tooltip target=\"#RuleMinHeight\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleMinHeightTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-number-box [(value)]=\"selectedValidationItem.minHeight\"\r\n format=\"#\"\r\n [showSpinButtons]=\"true\"\r\n [showClearButton]=\"true\"\r\n [min]=\"0\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled() && !selectedItemFieldIsList()\" class=\"dx-field\">\r\n <div id=\"RulePattern\" class=\"dx-field-label\">{{ 'Muster (Regex)' | translate }}</div>\r\n <dx-tooltip target=\"#RulePattern\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RulePatternTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.pattern\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled()\" class=\"dx-field\">\r\n <div id=\"RuleErrorText\" class=\"dx-field-label\">{{ 'Fehlertext' | translate }}</div>\r\n <dx-tooltip target=\"#RuleErrorText\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleErrorTextTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.displayMessage\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled()\" class=\"dx-field\">\r\n <div id=\"RuleArea\" class=\"dx-field-label\">{{ 'Bereich' | translate }}</div>\r\n <dx-tooltip target=\"#RuleArea\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleAreaTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-select-box [dataSource]=\"dataQualityAreas\"\r\n [(value)]=\"selectedValidationItem.area\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedItemFieldFilled()\" class=\"dx-fieldset\">\r\n <div class=\"dx-fieldset-header\">{{ 'Filter und Bedingungen' | translate }}</div>\r\n <div *ngIf=\"showFeatureSystemNameFilter()\" class=\"dx-field\">\r\n <div id=\"FeatureSystemNameFilter\" class=\"dx-field-label\">{{ 'Featuresystem-Name' | translate }}</div>\r\n <dx-tooltip target=\"#FeatureSystemNameFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'FeatureSystemNameFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.featureSystemNameFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showFeatureNameFilter()\" class=\"dx-field\">\r\n <div id=\"FeatureNameFilter\" class=\"dx-field-label\">{{ 'Feature-Name' | translate }}</div>\r\n <dx-tooltip target=\"#FeatureNameFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'FeatureNameFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.featureNameFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showMimeTypeFilter()\" class=\"dx-field\">\r\n <div id=\"MimeTypeFilter\" class=\"dx-field-label\">{{ 'Mime-Typ' | translate }}</div>\r\n <dx-tooltip target=\"#MimeTypeFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'MimeTypeFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.mimeTypeFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showMimePurposeFilter()\" class=\"dx-field\">\r\n <div id=\"MimePurposeFilter\" class=\"dx-field-label\">{{ 'Mime-Verwendung' | translate }}</div>\r\n <dx-tooltip target=\"#MimePurposeFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'MimePurposeFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.mimePurposeFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showReferenceTypeFilter()\" class=\"dx-field\">\r\n <div id=\"ReferenceTypeFilter\" class=\"dx-field-label\">{{ 'Referenz-Typ' | translate }}</div>\r\n <dx-tooltip target=\"#ReferenceTypeFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'ReferenceTypeFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.referenceTypeFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showUdxGroupFilter()\" class=\"dx-field\">\r\n <div id=\"UdxGroupFilter\" class=\"dx-field-label\">{{ 'Udx-Gruppe' | translate }}</div>\r\n <dx-tooltip target=\"#UdxGroupFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'UdxGroupFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.udxGroupFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showSupplierNameFilter()\" class=\"dx-field\">\r\n <div id=\"SupplierNameFilter\" class=\"dx-field-label\">{{ 'Supplier-Name' | translate }}</div>\r\n <dx-tooltip target=\"#SupplierNameFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'SupplierNameFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.supplierNameFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showPackingUnitCodeFilter()\" class=\"dx-field\">\r\n <div id=\"UnitCodeFilter\" class=\"dx-field-label\">{{ 'Einheiten-Code' | translate }}</div>\r\n <dx-tooltip target=\"#UnitCodeFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'UnitCodeFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.packingUnitCodeFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showPriceListLiveFilter()\" class=\"dx-field\">\r\n <div id=\"CurrentPriceListFilter\" class=\"dx-field-label\">{{ 'Aktuelle Preisliste' | translate }}</div>\r\n <dx-tooltip target=\"#CurrentPriceListFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'CurrentPriceListFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationItem.priceListLiveFilter\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showPriceTypeFilter()\" class=\"dx-field\">\r\n <div id=\"PriceTypeFilter\" class=\"dx-field-label\">{{ 'Preis-Typ' | translate }}</div>\r\n <dx-tooltip target=\"#PriceTypeFilter\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'PriceTypeFilterTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"selectedValidationItem.priceTypeFilter\"\r\n [showClearButton]=\"true\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"RuleIsCondition\" class=\"dx-field-label\">{{ 'ist Bedingung' | translate }}</div>\r\n <dx-tooltip target=\"#RuleIsCondition\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleIsConditionTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"selectedValidationItem.isConditional\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"onIsConditionalChanged($event)\">\r\n </dx-switch>\r\n </div>\r\n </div>\r\n <div class=\"dx-field\">\r\n <div id=\"RuleConditions\" class=\"dx-field-label\">{{ 'Bedingungen' | translate }}</div>\r\n <dx-tooltip target=\"#RuleConditions\" showEvent=\"mouseenter\" hideEvent=\"mouseleave\" [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ 'RuleConditionsTooltip' | translate }}</div>\r\n </dx-tooltip>\r\n <div class=\"dx-field-value\">\r\n <dx-tag-box [dataSource]=\"conditionalRules\"\r\n valueExpr=\"id\"\r\n displayExpr=\"printName\"\r\n [(value)]=\"selectedValidationItem.conditionalRuleIds\"\r\n [readOnly]=\"isReadOnlyForUser(selectedValidationMethod)\"\r\n (onValueChanged)=\"saveValidationMethod(selectedValidationMethod, $event)\">\r\n </dx-tag-box>\r\n </div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n </div> \r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>\r\n\r\n<dx-popup [width]=\"500\"\r\n [height]=\"300\"\r\n [showTitle]=\"true\"\r\n title=\"{{ 'Datenqualität-Set erstellen' | translate }}\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n contentTemplate=\"popupContent\"\r\n [(visible)]=\"createValidationMethodPopupVisible\">\r\n <dxi-toolbar-item widget=\"dxButton\"\r\n toolbar=\"bottom\"\r\n location=\"after\"\r\n [options]=\"{ text: 'Erstellen' | translate, onClick: createValidationMethod }\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'popupContent'\">\r\n <div class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Name' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-text-box [(value)]=\"newValidationMethod.name\" [showClearButton]=\"true\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isAdminUser()\" class=\"dx-field\">\r\n <div class=\"dx-field-label\">{{ 'Global' | translate }}</div>\r\n <div class=\"dx-field-value\">\r\n <dx-switch [(value)]=\"newValidationMethod.isGlobal\"></dx-switch>\r\n </div>\r\n </div>\r\n </div>\r\n</dx-popup>\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ModelService } from \"../../Services/model.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ValidationService } from \"../../Services/Validation/validation.service\";\r\nimport { ValidationGroup } from \"../../Model/validation/ValidationGroup\";\r\nimport { ValidationMethod } from \"../../Model/validation/ValidationMethod\";\r\nimport { ValidationRule } from \"../../Model/validation/ValidationRule\";\r\nimport { confirm } from \"devextreme/ui/dialog\";\r\nimport { DxTreeViewComponent } from \"devextreme-angular/ui/tree-view\";\r\nimport ArrayStore from \"devextreme/data/array_store\";\r\nimport { ValidationField } from \"../../Model/validation/ValidationField\";\r\nimport { FieldNames, fieldNames } from \"../../Model/FieldNames\";\r\nimport { TranslatedText } from \"../../Model/ui/TranslatedText\";\r\n\r\n@Component({\r\n selector: \"validation\",\r\n templateUrl: \"validation.component.html\",\r\n styleUrls: [\"./validation.component.css\"]\r\n})\r\nexport class ValidationComponent implements OnInit {\r\n @ViewChild(DxTreeViewComponent, { static: false }) treeView: DxTreeViewComponent;\r\n\r\n validationMethods: ValidationMethod[];\r\n selectedValidationMethod: ValidationMethod;\r\n newValidationMethod: ValidationMethod;\r\n createValidationMethodPopupVisible: boolean;\r\n\r\n validationGroups: ArrayStore;\r\n selectedValidationItem: any;\r\n fieldNames: string[];\r\n dataQualityAreas: string[];\r\n fieldGroups: TranslatedText[];\r\n fields: ValidationField[];\r\n fieldNamesInGroup: TranslatedText[];\r\n conditionalRules: ValidationRule[];\r\n allFieldNamesAvailable = fieldNames;\r\n\r\n constructor(public modelService: ModelService, private translate: TranslateService, private validationService: ValidationService) {\r\n this.createValidationMethod = this.createValidationMethod.bind(this);\r\n this.getValidationMethodDisplayText = this.getValidationMethodDisplayText.bind(this);\r\n\r\n this.modelService.systemService.currentNavigationTitle = this.translate.instant(\"Validierung\");\r\n\r\n this.modelService.catalogService.loadFields2Subscribe().toPromise().then(() => {\r\n this.fieldNames = this.modelService.catalogService.fields.map((templateItem) => templateItem.field);\r\n });\r\n this.validationService.getDataQualityAreas().toPromise().then((dataQualityAreas) => {\r\n this.dataQualityAreas = dataQualityAreas;\r\n });\r\n this.validationService.getValidationFieldGroups().toPromise().then((validationFieldGroups) => {\r\n this.fieldGroups = validationFieldGroups.map(x => new TranslatedText(x, translate.instant(x)));\r\n });\r\n this.validationService.getValidationFields().toPromise().then((validationFields) => {\r\n this.fields = validationFields;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modelService.loginService.currentUser == null) {\r\n this.modelService.router.navigate([\"/\"]);\r\n return;\r\n }\r\n this.loadValidationMethods();\r\n }\r\n\r\n async createValidationRule(validationGroup) {\r\n var newValidationRule = new ValidationRule();\r\n var foundValidationGroup = await this.validationGroups.byKey(validationGroup.id);\r\n newValidationRule.id = crypto.randomUUID();\r\n newValidationRule.printName = this.translate.instant(\"Neue Regel\");\r\n newValidationRule.groupId = foundValidationGroup.id;\r\n newValidationRule.field = new ValidationField();\r\n foundValidationGroup.rules.push(newValidationRule);\r\n this.validationGroups.push([{\r\n type: \"update\",\r\n data: foundValidationGroup,\r\n key: foundValidationGroup.id\r\n }]);\r\n this.treeView.instance.expandItem(validationGroup);\r\n this.saveValidationMethod(this.selectedValidationMethod);\r\n }\r\n\r\n async duplicateValidationItem(item) {\r\n var newValidationItem = JSON.parse(JSON.stringify(item));\r\n newValidationItem.id = crypto.randomUUID();\r\n if (this.itemIsValidationGroup(item)) {\r\n newValidationItem.name += this.translate.instant(\" - Duplikat\");\r\n newValidationItem.rules.forEach((validationRule) => {\r\n validationRule.id = crypto.randomUUID();\r\n validationRule.groupId = newValidationItem.id;\r\n });\r\n this.validationGroups.push([{\r\n type: \"insert\",\r\n data: newValidationItem,\r\n key: newValidationItem.id\r\n }]);\r\n } else {\r\n newValidationItem.printName += this.translate.instant(\" - Duplikat\");\r\n var foundValidationGroup = await this.validationGroups.byKey(newValidationItem.groupId);\r\n foundValidationGroup.rules.push(newValidationItem);\r\n this.validationGroups.push([{\r\n type: \"update\",\r\n data: foundValidationGroup,\r\n key: foundValidationGroup.id\r\n }]);\r\n this.loadConditionalRules();\r\n }\r\n this.selectedValidationItem = newValidationItem;\r\n this.saveValidationMethod(this.selectedValidationMethod);\r\n }\r\n\r\n async deleteValidationItem(item) {\r\n if (this.selectedValidationItem && this.selectedValidationItem.id == item.id) {\r\n this.selectedValidationItem = undefined;\r\n }\r\n\r\n if (this.itemIsValidationGroup(item)) {\r\n let dialogResult = await confirm(this.translate.instant(\"ConfirmDeleteValidationGroup\"), this.translate.instant(\"Gruppe löschen\"));\r\n if (!dialogResult) {\r\n return;\r\n }\r\n\r\n this.validationGroups.push([{\r\n type: \"remove\",\r\n key: item.id\r\n }]);\r\n } else {\r\n let dialogResult = await confirm(this.translate.instant(\"ConfirmDeleteValidationRule\"), this.translate.instant(\"Regel löschen\"));\r\n if (!dialogResult) {\r\n return;\r\n }\r\n\r\n var foundValidationGroup: ValidationGroup = this.validationGroups.createQuery().toArray().find(\r\n (validationGroup: ValidationGroup) => validationGroup.rules.includes(item));\r\n var index = foundValidationGroup.rules.indexOf(item);\r\n if (index > -1) {\r\n foundValidationGroup.rules.splice(index, 1);\r\n }\r\n this.validationGroups.push([{\r\n type: \"update\",\r\n data: foundValidationGroup,\r\n key: foundValidationGroup.id\r\n }]);\r\n this.loadConditionalRules();\r\n }\r\n this.saveValidationMethod(this.selectedValidationMethod);\r\n }\r\n\r\n selectedItemFieldFilled() {\r\n if (this.selectedValidationItem != undefined &&\r\n this.selectedValidationItem.field != undefined &&\r\n this.selectedValidationItem.field.fieldName != undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n selectedItemFieldIsList() {\r\n if (this.selectedItemFieldFilled() &&\r\n this.selectedValidationItem.field.isList == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n selectedItemFieldIsBool() {\r\n if (this.selectedItemFieldFilled() &&\r\n this.selectedValidationItem.field.isBool == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n selectedItemFieldIsPicture() {\r\n if (this.selectedItemFieldFilled() &&\r\n this.selectedValidationItem.field.isPicture == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onFieldGroupChanged(item) {\r\n if (item.selectedItem != undefined) {\r\n this.updateFieldNamesInGroupList(item.selectedItem.value);\r\n }\r\n }\r\n\r\n onFieldNameChanged(item) {\r\n if (item.selectedItem == undefined) {\r\n return;\r\n }\r\n var foundField = this.fields.find((field) => field.fieldName == item.selectedItem.value)\r\n this.selectedValidationItem.field = JSON.parse(JSON.stringify(foundField));\r\n }\r\n\r\n onIsConditionalChanged(e) {\r\n if (e.event) {\r\n this.loadConditionalRules();\r\n this.saveValidationMethod(this.selectedValidationMethod);\r\n }\r\n }\r\n\r\n updateFieldNamesInGroupList(fieldGroup) {\r\n if (fieldGroup == undefined) {\r\n this.fieldNamesInGroup = undefined;\r\n return;\r\n }\r\n let fieldNames = this.fields.filter((field) => field.fieldGroup === fieldGroup).map((field) => field.fieldName);\r\n this.fieldNamesInGroup = fieldNames.map(x => new TranslatedText(x, this.translate.instant(x)));\r\n }\r\n\r\n onValidationItemSelection(item) {\r\n var selectedNodes = item.component.getSelectedNodes();\r\n if (selectedNodes != undefined && selectedNodes.length > 0) {\r\n var selectedItem = selectedNodes[0].itemData;\r\n this.selectedValidationItem = selectedItem;\r\n if (selectedItem.field != undefined) {\r\n this.updateFieldNamesInGroupList(selectedItem.field.fieldGroup);\r\n }\r\n }\r\n }\r\n\r\n createValidationGroup() {\r\n var newValidationGroup = new ValidationGroup();\r\n newValidationGroup.id = crypto.randomUUID();\r\n newValidationGroup.name = this.translate.instant(\"Neue Gruppe\");\r\n newValidationGroup.rules = new Array<ValidationRule>();\r\n this.validationGroups.push([{\r\n type: \"insert\",\r\n data: newValidationGroup,\r\n key: newValidationGroup.id\r\n }]);\r\n this.saveValidationMethod(this.selectedValidationMethod);\r\n }\r\n\r\n itemIsValidationGroup(item) {\r\n return item.rules != undefined;\r\n }\r\n\r\n loadValidationMethods() {\r\n this.selectedValidationItem = undefined;\r\n this.selectedValidationMethod = undefined;\r\n \r\n this.validationService.getValidationMethods().subscribe((validationMethods) => {\r\n this.validationMethods = validationMethods;\r\n });\r\n }\r\n\r\n loadConditionalRules() {\r\n this.conditionalRules = [];\r\n this.selectedValidationMethod.groups.forEach((validationGroup) => {\r\n this.conditionalRules.push(...validationGroup.rules.filter((validationRule) => validationRule.isConditional));\r\n });\r\n }\r\n\r\n async onValidationMethodChanged(e) {\r\n if (this.selectedValidationMethod != undefined) {\r\n this.validationGroups = new ArrayStore({\r\n key: \"id\",\r\n data: this.selectedValidationMethod.groups\r\n });\r\n this.loadConditionalRules();\r\n } else {\r\n this.validationGroups = new ArrayStore();\r\n }\r\n \r\n this.selectedValidationItem = undefined;\r\n }\r\n\r\n showCreateValidationMethodPopup() {\r\n this.newValidationMethod = new ValidationMethod();\r\n this.createValidationMethodPopupVisible = true;\r\n }\r\n\r\n showDuplicateValidationMethodPopup() {\r\n if (this.selectedValidationMethod == undefined) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Bitte Datenqualität-Set auswählen\"));\r\n return;\r\n } \r\n this.newValidationMethod = JSON.parse(JSON.stringify(this.selectedValidationMethod));\r\n this.newValidationMethod.name += this.translate.instant(\" - Duplikat\");\r\n this.newValidationMethod.isGlobal = false;\r\n this.createValidationMethodPopupVisible = true;\r\n }\r\n\r\n async createValidationMethod() {\r\n this.createValidationMethodPopupVisible = false;\r\n this.newValidationMethod.id = undefined;\r\n this.newValidationMethod.createdByCustomerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n var createdValidationMethod = await this.validationService.createValidationMethod(this.newValidationMethod).toPromise();\r\n\r\n this.validationMethods.push(createdValidationMethod);\r\n this.selectedValidationMethod = createdValidationMethod;\r\n }\r\n\r\n async changeFieldNameAndSaveValidationMethod(validationMethod: ValidationMethod, e: any = undefined) {\r\n if (e == undefined || e.event) {\r\n var foundField = this.fields.find((field) => field.fieldName == e.value)\r\n this.selectedValidationItem.field = JSON.parse(JSON.stringify(foundField));\r\n await this.validationService.updateValidationMethod(validationMethod).toPromise();\r\n }\r\n }\r\n\r\n async saveValidationMethod(validationMethod: ValidationMethod, e: any = undefined) {\r\n if (e == undefined || e.event) {\r\n await this.validationService.updateValidationMethod(validationMethod).toPromise();\r\n }\r\n }\r\n\r\n async deleteValidationMethod() {\r\n if (this.selectedValidationMethod == undefined) {\r\n this.modelService.systemService.notifyInfo(this.translate.instant(\"Bitte Datenqualität-Set auswählen\"));\r\n return;\r\n }\r\n let dialogResult = await confirm(this.translate.instant(\"ConfirmDeleteValidationMethod\"), this.translate.instant(\"Datenqualität-Set löschen\"));\r\n if (!dialogResult) {\r\n return;\r\n }\r\n\r\n this.validationService.deleteValidationMethod(this.selectedValidationMethod).toPromise()\r\n .then(() => {\r\n var index = this.validationMethods.indexOf(this.selectedValidationMethod);\r\n if (index > -1) {\r\n this.validationMethods.splice(index, 1);\r\n this.resetValidationMethodSelectBox();\r\n }\r\n }).catch(() => {\r\n this.modelService.systemService.notifyWarning(this.translate.instant(\"Fehler beim Löschen, Daten werden neu geladen\"));\r\n this.loadValidationMethods();\r\n });\r\n }\r\n\r\n resetValidationMethodSelectBox() {\r\n this.selectedValidationMethod = undefined;\r\n this.validationGroups.clear();\r\n }\r\n\r\n isGlobalValidationMethod(validationMethod: ValidationMethod) {\r\n if (validationMethod != undefined) {\r\n return validationMethod.isGlobal;\r\n }\r\n return false;\r\n }\r\n\r\n getValidationMethodDisplayText(event) {\r\n if (event == null) {\r\n return \"\";\r\n }\r\n var displayText = event.name;\r\n if (event.isGlobal) {\r\n if (this.isAdminUser()) {\r\n displayText += \" (Global)\"\r\n } else {\r\n displayText += \" (Read-Only)\"\r\n }\r\n }\r\n return displayText;\r\n }\r\n\r\n get noDataText() {\r\n if (this.selectedValidationMethod == undefined) {\r\n return this.translate.instant(\"Datenqualität-Set auswählen\");\r\n }\r\n else {\r\n return this.translate.instant(\"Keine Gruppe vorhanden\");\r\n }\r\n }\r\n\r\n isAdminUser() {\r\n return this.modelService.loginService.isAdmin;\r\n }\r\n\r\n showFeatureSystemNameFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Features\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.featureSystemName) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showFeatureNameFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Features\" &&\r\n !validationRule.field.fieldName.includes(\"REFERENCE_FEATURE\") &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.fName) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showMimeTypeFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Mimes\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.mimeType) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showMimePurposeFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Mimes\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.mimePurpose) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showReferenceTypeFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"References\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.productReferencesType) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showUdxGroupFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Udx\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.udxCategory) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showSupplierNameFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Suppliers\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.supplierName) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showPackingUnitCodeFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"PackingUnits\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.packingUnitCode) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showPriceListLiveFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Prices\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.startDate &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.endDate) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showPriceTypeFilter() {\r\n if (this.itemIsValidationGroup(this.selectedValidationItem)) {\r\n return false;\r\n }\r\n\r\n var validationRule: ValidationRule = this.selectedValidationItem;\r\n if (validationRule.field.fieldGroup == \"Prices\" &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.priceLists &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.startDate &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.endDate &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.isDailyPrice &&\r\n validationRule.field.fieldName != this.allFieldNamesAvailable.priceType) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isReadOnlyForUser(validationMethod: ValidationMethod) {\r\n return this.isGlobalValidationMethod(validationMethod) && !this.isAdminUser();\r\n }\r\n}\r\n","import { CanDeactivate } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => boolean | Promise<boolean> | Observable<boolean>;\r\n}\r\n\r\n@Injectable()\r\nexport class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate> {\r\n canDeactivate(component: ComponentCanDeactivate) {\r\n return component.canDeactivate();\r\n }\r\n}\r\n","<dx-data-grid class=\"h-100\" (onToolbarPreparing)=\"onToolbarPreparing($event)\" [dataSource]=\"states\"\r\n [remoteOperations]=\"false\" [allowColumnReordering]=\"true\" [rowAlternationEnabled]=\"true\" [allowColumnResizing]=\"true\"\r\n noDataText=\"{{ 'keine Status im Account' | translate }}\" [showBorders]=\"true\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\" (onRowRemoving)=\"deleteStatus($event)\"\r\n (onRowUpdated)=\"update($event)\">\r\n <dxo-selection mode=\"multiple\"></dxo-selection>\r\n\r\n <div *dxTemplate=\"let toolbarItem of 'customDeleteButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Auswahl löschen' | translate }}\"\r\n (onClick)=\"deleteMultiple()\"></dx-button>\r\n </div>\r\n\r\n <div *dxTemplate=\"let toolbaritem of 'newStateButtonTemplate'\">\r\n <dx-button stylingMode=\"text\" type=\"default\" text=\"{{ 'Neuer Status' | translate }}\"\r\n (onClick)=\"addStatus()\"></dx-button>\r\n </div>\r\n <dxo-editing mode=\"cell\" [allowDeleting]=\"true\" [allowUpdating]=\"true\" [useIcons]=\"true\"></dxo-editing>\r\n\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxo-scrolling mode=\"virtual\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-search-panel [visible]=\"true\" [highlightCaseSensitive]=\"true\"\r\n placeholder=\"{{ 'Status suchen' | translate }}\"></dxo-search-panel>\r\n\r\n <dxo-group-panel [visible]=\"false\"></dxo-group-panel>\r\n <dxo-grouping [autoExpandAll]=\"true\"></dxo-grouping>\r\n\r\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"CatalogStatesStateNewUIV2\"></dxo-state-storing>\r\n\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Name' | translate }}\" (onValueChanged)=\"update($event)\"></dxi-column>\r\n\r\n</dx-data-grid>","import { Component, OnInit } from \"@angular/core\";\r\nimport isString from \"lodash.isstring\";\r\nimport { ModelService } from '../Services/model.service';\r\nimport { CatalogState } from '../Model/Catalog/CatalogState';\r\nimport { CustomerWiki } from '../Model/System/CustomerWiki';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n\r\n@Component({\r\n selector: \"catalogStates\",\r\n templateUrl: \"catalogState.component.html\"\r\n})\r\nexport class CatalogStateComponent implements OnInit {\r\n constructor(public modelService: ModelService, public translate: TranslateService) {\r\n this.translate.get('Status').subscribe((text: string) => {\r\n this.modelService.systemService.currentNavigationTitle = text;\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'before',\r\n locateInMenu: 'auto',\r\n template: 'newStateButtonTemplate'\r\n });\r\n\r\n e.toolbarOptions.items.unshift({\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: 'customDeleteButtonTemplate'\r\n }); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.getStatus();\r\n }\r\n\r\n public states: CatalogState[] = [];\r\n public selectedStates: any[];\r\n\r\n getStatus() {\r\n this.modelService.catalogStateService.getStatus().subscribe(\r\n (result: CatalogState[]) => {\r\n this.states = result;\r\n });\r\n }\r\n\r\n update(event) {\r\n var status;\r\n if (isString(event)) {\r\n status = this.states.find(item => item.idKey == event);\r\n } else {\r\n if (event.key == null)\r\n return;\r\n status = this.states.find(item => item.idKey == event.key.idKey);\r\n }\r\n this.modelService.catalogStateService.updateCatalogState(status).subscribe((_id: string) => {});\r\n }\r\n\r\n deleteMultiple() { \r\n let result = confirm(this.selectedStates.length + this.translate.instant(\"Status ausgewählt </br> Sind Sie sich sicher, dass diese gelöscht werden sollen?\"), this.translate.instant(\"Auswahl löschen\"));\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.selectedStates.map(state => this.modelService.catalogStateService.deleteCatalogState(state.idKey));\r\n this.selectedStates.reverse().forEach(x => this.states.splice(this.states.findIndex(y => y.idKey == x.idKey), 1));\r\n }});\r\n }\r\n \r\n onSelectionChanged(e) {\r\n this.selectedStates = e.selectedRowKeys\r\n }\r\n\r\n addStatus(status: CatalogState = null, id = null) {\r\n if (id == null) {\r\n status = new CatalogState();\r\n status.customerId = this.modelService.loginService.currentUser.customerId;\r\n\r\n this.modelService.catalogStateService.addCatalogState(status).subscribe(\r\n (result: CatalogState) => {\r\n status = result;\r\n this.states.push(status);\r\n });\r\n\r\n } else {\r\n status.idKey = id;\r\n this.states.push(status);\r\n }\r\n }\r\n\r\n public pimStatus: string[] = [\"New\", \"Updated\", \"Normal\", \"Locked\", \"Deleted\"];\r\n\r\n deleteStatus(event) {\r\n this.modelService.catalogStateService.deleteCatalogState(event.data.idKey);\r\n }\r\n\r\n toggleHelp() {\r\n this.modelService.systemService.showHelp = !this.modelService.systemService.showHelp;\r\n if (this.modelService.systemService.showHelp) {\r\n this.modelService.systemService.loadHelp(this.modelService.loginService.currentUser.customerId).subscribe((result: CustomerWiki) => this.modelService.systemService.help = result.entries);\r\n }\r\n }\r\n}\r\n","<fullscreen-page>\r\n <content-column helpSwitch=\"true\" look=\"dark\">\r\n <div slot=\"content\" class=\"p-2 flex-fill w-75 mx-auto overflow-hidden\">\r\n <dx-tab-panel [dataSource]=\"pages\" [selectedIndex]=\"0\" [swipeEnabled]=\"false\" [animationEnabled]=\"true\"\r\n [showNavButtons]=\"true\" [loop]=\"true\">\r\n <div *dxTemplate=\"let data of 'productStateTemplate'\">\r\n <productStates></productStates>\r\n </div>\r\n <div *dxTemplate=\"let data of 'catalogStateTemplate'\">\r\n <catalogStates></catalogStates>\r\n </div>\r\n </dx-tab-panel>\r\n </div>\r\n </content-column>\r\n <help-column class=\"{{modelService.systemService.showHelp ? '' : 'd-none'}}\"></help-column>\r\n</fullscreen-page>","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../Services/model.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-states',\r\n templateUrl: './states.component.html',\r\n})\r\nexport class StatesComponent implements OnInit {\r\n\r\n pages: { id: number; title: string; template: string; }[] = [];\r\n\r\n constructor(public modelService: ModelService, public translateService: TranslateService) {\r\n }\r\n \r\n ngOnInit(): void {\r\n this.pages = [\r\n { id: 1, title: this.translateService.instant('Produktstatus'), template: \"productStateTemplate\" },\r\n { id: 2, title: this.translateService.instant('Katalogstatus'), template: \"catalogStateTemplate\" },\r\n ];\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { UserIdleModule } from \"angular-user-idle\";\r\nimport { DevExtremeModule } from \"devextreme-angular\";\r\nimport { BrowserTransferStateModule } from \"@angular/platform-browser\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { SearchComponent } from \"./search/search.component\";\r\nimport { LoginComponent } from \"./account/login/login.component\";\r\nimport { ForgotPasswordComponent } from \"./account/forgotPassword/forgotPassword.component\";\r\nimport { AccountHomeComponent } from \"./account/home/accounthome.component\";\r\nimport { MyAccountComponent } from \"./account/myAccount/myAccount.component\";\r\nimport { TranslationComponent } from \"./account/translation/translation.component\";\r\nimport { OsgConnectionComponent } from \"./account/osgConnection/osgConnection.component\";\r\nimport { AdminComponent } from \"./account/admin/admin.component\";\r\nimport { AdminLoginsComponent } from \"./account/admin/admin-logins/admin-logins.component\";\r\nimport { ChangePasswordComponent } from \"./account/changePassword/changePassword.component\";\r\nimport { CatListComponent } from \"./catalog/catalogList/catList.component\";\r\nimport { CatalogComponent } from \"./catalog/browse/browse.component\";\r\nimport { MenuComponent } from \"./shared/menu/menu.component\";\r\nimport { HelpComponent } from \"./shared/help/help.component\";\r\nimport { JobListComponent } from \"./Jobs/jobList.component\";\r\nimport { HomeComponent } from \"./home/home.component\";\r\nimport { NewCatalogComponent } from \"./catalog/functions/newCatalog/newCatalog.component\";\r\nimport { ImportMimeComponent } from \"./catalog/functions/import/importMime.component\";\r\nimport { ImportFileComponent } from \"./catalog/functions/import/importFile.component\";\r\nimport { TranslateCatalogComponent } from \"./catalog/functions/translateCatalog/translateCatalog.component\";\r\nimport { ImportMediaComponent } from \"./catalog/functions/import/importMedia.component\";\r\nimport { ImportTranslationsComponent } from \"./catalog/functions/import/importTranslations.component\";\r\nimport { ProductViewComponent } from \"./productView/productView.component\";\r\nimport { ImportCatalogComponent } from \"./catalog/functions/import/importCatalog.component\";\r\nimport { ImportCategoryComponent } from \"./catalog/functions/import/category/importCategory.component\";\r\nimport { MediaPoolComponent } from \"./catalog/mediaPool/mediaPool.component\";\r\nimport { CatalogBuyerComponent } from \"./catalog/catalog/catalogBuyer.component\";\r\nimport { CatalogDetailComponent } from \"./catalog/catalog/catalogDetail.component\";\r\nimport { CatalogClassificationComponent } from \"./catalog/catalog/catalogClassification.component\";\r\nimport { CatalogOsgComponent } from \"./catalog/catalog/catalogOsg.component\";\r\nimport { CatalogPriceListComponent } from \"./catalog/catalog/catalogPriceList.component\";\r\nimport { CatalogPrintComponent } from \"./catalog/catalog/catalogPrint.component\";\r\nimport { CatalogSettingsComponent } from \"./catalog/catalog/catalogSettings.component\";\r\nimport { CatalogShopwareComponent } from \"./catalog/catalog/catalogShopware.component\";\r\nimport { CatalogSupplierComponent } from \"./catalog/catalog/catalogSupplier.component\";\r\nimport { CategoryDetailComponent } from \"./catalog/category/categoryDetail.component\";\r\nimport { ImpressumComponent } from \"./shared/impressum/impressum.component\";\r\nimport { ProductDetailComponent } from \"./catalog/product/productDetail.component\";\r\nimport { ProductDetailValidationComponent } from \"./catalog/product/productDetailValidation.component\";\r\nimport { ExportCatalogComponent } from \"./catalog/functions/export/catalog/exportCatalog.component\";\r\nimport { ExportParameterComponent } from \"./catalog/functions/export/catalog/exportParameter/exportParameter.component\";\r\nimport { ExportCategoryComponent } from './catalog/functions/export/category/exportCategory.component';\r\nimport { BackUpComponent } from \"./catalog/functions/backup/backup.component\";\r\nimport { JobDataComponent } from \"./catalog/functions/jobdata/jobdata.component\";\r\nimport { ModelService } from \"./Services/model.service\";\r\nimport { MediaService } from \"./Services/media.service\";\r\nimport { LoginService } from \"./Services/login.service\";\r\nimport { SystemService } from \"./Services/system.service\";\r\nimport { TranslationService } from \"./Services/translation.service\";\r\nimport { OsgConnectionService } from \"./Services/osgConnection.service\";\r\nimport { HazmatClassService } from \"./Services/hazmatClass.service\";\r\nimport { WarrantyClassService } from \"./Services/warrantyClass.service\";\r\nimport { JobService } from \"./Services/job.service\";\r\nimport { DataQualityService } from \"./Services/dataQuality.service\";\r\nimport { BackupService } from \"./Services/CatalogManagement/backup.service\";\r\nimport { CatalogService } from \"./Services/CatalogManagement/catalog.service\";\r\nimport { CategoryService } from \"./Services/CatalogManagement/category.service\";\r\nimport { ShopService } from \"./Services/shop.service\";\r\nimport { UpdateTemplateService } from \"./Services/updateTemplate.service\";\r\nimport { CombineCatalogService } from \"./Services/CatalogManagement/combineCatalog.service\"\r\nimport { DataQualityComponent } from \"./catalog/dataQuality/dataQuality.component\";\r\nimport { DataQualityFactsComponent } from './catalog/dataQuality/dataQualityFacts.component';\r\nimport { DataQualityExampleComponent } from './catalog/dataQuality/dataQualityExample.component';\r\nimport { DataQualityStatisticComponent } from './catalog/dataQuality/dataQualityStatistic.component';\r\nimport { DataQualityGroupsComponent } from './catalog/dataQuality/dataQualityGroups.component';\r\nimport { TemplateExcelComponent } from \"./catalog/functions/template/templateExcel.component\";\r\nimport { TemplateProductComponent } from \"./catalog/functions/template/templateProduct.component\";\r\nimport { ValidFeatureSystemComponent } from \"./Feature/validFeatureSystem.component\";\r\nimport { ValidFeatureComponent } from \"./Feature/validFeature.component\";\r\nimport { ValidFeatureValueComponent } from \"./Feature/validFeatureValue.component\";\r\nimport { ValidFeatureService } from \"./Services/validFeature.service\";\r\nimport { ClassificationService } from \"./Services/classification.service\";\r\nimport { ClassificationSystemComponent } from \"./classification/classificationSystem.component\";\r\nimport { ClassificationTreeComponent } from \"./classification/classificationTree.component\";\r\nimport { EditClassificationSystemComponent } from \"./classification/editClassificationSystem.component\";\r\nimport { ClassificationGroupComponent } from \"./classification/classificationGroup.component\";\r\nimport { Infos } from \"./catalog/shared/infos\";\r\nimport { Logistic } from \"./catalog/shared/logistic\";\r\nimport { Mimes } from \"./catalog/shared/mimes\";\r\nimport { Misc } from \"./catalog/shared/misc\";\r\nimport { Prices } from \"./catalog/shared/prices\";\r\nimport { References } from \"./catalog/shared/references\";\r\nimport { SEO } from \"./catalog/shared/seo\";\r\nimport { UDX } from \"./catalog/shared/udx\";\r\nimport { ShopView } from \"./catalog/product/shopView.component\";\r\nimport { ShopViewLukas } from \"./catalog/product/shopViewLukas.component\";\r\nimport { UserActionComponent } from \"./catalog/functions/userAction/userAction.component\";\r\nimport { UserActionDeleteFeatureSystemsComponent } from \"./catalog/functions/userAction/userAction-deleteFeatureSystems/userAction-deleteFeatureSystems.component\";\r\nimport { UserActionRenameFeatureSystemComponent } from \"./catalog/functions/userAction/userAction-renameFeatureSystem/userAction-renameFeatureSystem.component\";\r\nimport { UserActionRenameFeaturesComponent } from \"./catalog/functions/userAction/userAction-renameFeatures/userAction-renameFeatures.component\";\r\nimport { UserActionCopyMediaFromOtherCatalogComponent } from \"./catalog/functions/userAction/userAction-copyMediaFromOtherCatalog/userAction-copyMediaFromOtherCatalog.component\";\r\nimport { UserActionCompareCatalogComponent } from './catalog/functions/userAction/userAction-compareCatalog/userAction-compareCatalog.component';\r\nimport { UserActionDeleteFeaturesComponent } from './catalog/functions/userAction/userAction-deleteFeatures/userAction-deleteFeatures.component';\r\nimport { UserActionUpdateCatalogComponent } from './catalog/functions/userAction/userAction-updateCatalog/userAction-updateCatalog.component';\r\nimport { UserActionUpdateToCatalogComponent } from './catalog/functions/userAction/userAction-updateToCatalog/userAction-updateToCatalog.component';\r\nimport { AdminService } from './Services/admin.service';\r\nimport { ProductClassificationComponent } from './classification/productClassification.component';\r\nimport { HazmatclassesComponent } from './hazmatclasses/hazmatclasses.component';\r\nimport { HazmatclassComponent } from './hazmatclasses/hazmatclass.component';\r\nimport { WarrantyclassesComponent } from './warrantyclasses/warrantyclasses.component';\r\nimport { WarrantyclassComponent } from './warrantyclasses/warrantyclass.component';\r\nimport { FeedbackService } from './Services/feedback.service';\r\nimport { DataQualityPrintChartComponent } from './catalog/dataQuality/dataQualityPrintChart.component';\r\nimport { UserActionCreateTechnicalDetailsComponent } from './catalog/functions/userAction/userAction-createTechnicalDetails/userAction-createTechnicalDetails.component';\r\nimport { UserActionSearchByListComponent } from './catalog/functions/userAction/userAction-searchByList/userAction-searchByList.component';\r\nimport { UserActionDeleteByListComponent } from './catalog/functions/userAction/userAction-deleteByList/userAction-deleteByList.component';\r\nimport { UserActionConvertPicturesComponent } from './catalog/functions/userAction/userAction-convertPictures/userAction-convertPictures.component';\r\nimport { UpdateTemplatesComponent } from './updateTemplates/updateTemplates.component';\r\nimport { UpdateTemplateComponent } from './updateTemplates/updateTemplate.component';\r\nimport { CatalogMavisComponent } from './catalog/catalog/catalogMavis.component';\r\nimport { MavisConnectionComponent } from './account/mavisConnection/mavisConnection.component';\r\nimport { MavisConnectionService } from './Services/mavisConnection.service';\r\nimport { UserActionSpreadCatalogComponent } from './catalog/functions/userAction/userAction-spreadCatalog/userAction-spreadCatalog.component';\r\nimport { EasyCatalogComponent } from './account/easyCatalog/easyCatalog.component';\r\nimport { PrintService } from './Services/print.service';\r\nimport { ViewService } from './Services/view.service';\r\nimport { TranslationHelperComponent } from './ui/translationHelper/translationHelper.component';\r\nimport { CatalogShopware6Component } from './catalog/catalog/catalogShopware6.component';\r\nimport { CategoriesComponent } from './catalog/shared/categories.component';\r\nimport { UserActionHarmonizeFeatureSystems } from './catalog/functions/userAction/userAction-harmonizeFeaturesytems/userAction-harmonizeFeatureSystems.component';\r\nimport { UserActionExportReportProductDatasheet } from './catalog/functions/userAction/userAction-exportReportProductDatasheet/userAction-exportReportProductDatasheet.component';\r\nimport { UserActionRemoveUdxOnProducts } from './catalog/functions/userAction/userAction-removeUdxOnProducts/userAction-removeUdxOnProducts.component';\r\nimport { UserActionDeleteMediaByPurpose } from \"./catalog/functions/userAction/userAction-deleteMediaByPurpose/userAction-deleteMediaByPurpose.component\";\r\nimport { SendToNWConfigService } from './Services/sendToNWConfig.service';\r\nimport { SendToNWConfigComponent } from './account/sendToNWConfig/sendToNWConfig.component';\r\nimport { CatalogTemplatesComponent } from './catalog/catalog/catalogTemplates/catalogTemplates.component';\r\nimport { CategoryTemplatesComponent } from './catalog/category/categoryTemplates/categoryTemplates.component';\r\nimport { ProductStateComponent } from './productState/productState.component';\r\nimport { ProductStateService } from './Services/productState.service';\r\nimport { ProductLegalComponent } from './catalog/shared/productLegal.component';\r\nimport { NpBooleanRadioGroupComponent } from './ui/booleanRadioGroup/booleanRadioGroup.component';\r\nimport { EditFeatureSystemList } from './catalog/shared/editfeaturesystemlist.component';\r\nimport { EditFeatureValueList } from './catalog/shared/editfeaturevaluelist.component';\r\nimport { FeatureValueComponent } from './catalog/shared/featurevalue.component';\r\nimport { ProductReportingComponent } from './Reporting/productreporting.component';\r\nimport { ProductReportingService } from './Services/productreporting.service';\r\nimport { FooterComponent } from './shared/footer/footer.component';\r\nimport { LogoComponent } from './shared/logo/logo.component';\r\nimport { FullscreenPageComponent } from './shared/layout/fullscreen-page.component';\r\nimport { ContentColumnComponent } from './shared/layout/content-column.component';\r\nimport { NavigationColumnComponent } from './shared/layout/navigation-column.component';\r\nimport { HelpColumnComponent } from './shared/layout/help-column.component';\r\nimport { FeatureMappingService } from \"./Services/featureMapping.service\";\r\nimport { FeatureMappingComponent } from \"./featureMapping/featureMapping.component\";\r\nimport { FeatureMappingDetailComponent } from \"./featureMapping/featureMappingDetail.component\";\r\nimport { NpDialogComponent, NpDialogButton } from \"./shared/dialog/NpDialog.component\";\r\nimport { OrderDetailComponent } from \"./catalog/shared/orderDetail.component\";\r\nimport { SandboxComponent } from \"./sandbox/sandbox.component\";\r\nimport { TemplateListComponent } from \"./templateEditor/templateList.component\";\r\nimport { TemplateSelectorComponent } from \"./templateEditor/templateSelector.component\";\r\nimport { NpInputControlComponent } from \"./ui/inputControl/inputControl.component\";\r\nimport { NewTemplateEditorComponent } from \"./templateEditor/template-editor.component\";\r\nimport { TemplateEditorDialogComponent } from './templateEditor/template-editor-dialog.component';\r\nimport { UserActionHarmonizeFeaturesComponent } from \"./catalog/functions/userAction/userAction-harmonizeFeatures/userAction-harmonizeFeatures.component\";\r\nimport { NewTemplateComponent } from \"./templateEditor/newTemplate.component\";\r\nimport { WawiSettingsComponent } from \"./account/wawiSettings/wawiSettings.component\";\r\nimport { WawiSettingsService } from \"./Services/wawiSettingsService.service\";\r\nimport { WawiComponent } from \"./catalog/shared/wawi/wawi.component\";\r\nimport { ProductService } from \"./Services/CatalogManagement/product.service\";\r\nimport { PinDataComponent } from \"./Jobs/pindata.component\";\r\nimport { UserActionDeleteDuplicateMimesComponent } from \"./catalog/functions/userAction/userAction-deleteDuplicateMimes/userAction-deleteDuplicateMimes.component\";\r\nimport { SupplierPidMappingComponent } from \"./supplierPidMapping/supplierPidMapping.component\";\r\nimport { SupplierPidMappingService } from \"./Services/supplierPidMapping.service\";\r\nimport { ImportSupplierPidMappingsComponent } from \"./catalog/functions/import/supplierPidMapping/supplierPidMappings.component\";\r\nimport { UserActionSetWawiSupplierPidsComponent } from \"./catalog/functions/userAction/userAction-setWawiSupplierPids/userAction-setWawiSupplierPids.component\";\r\nimport { DeeplConnectionComponent } from \"./account/deeplConnection/deeplConnection.component\";\r\nimport { DeeplConnectionService } from \"./Services/deeplConnection.service\";\r\nimport { ProductReportingDialogComponent } from \"./Reporting/productreportingdialog.component\";\r\nimport { NpHelpButtonComponent } from \"./shared/helpButton/NpHelpButton.component\";\r\nimport { NpHelpOption } from \"./shared/helpButton/NpHelpButton.component\";\r\nimport { NewsComponent } from \"./news/news.component\";\r\nimport { NewsService } from \"./Services/news.service\";\r\nimport { UserManagementService } from \"./Services/userManagment.service\";\r\nimport { RecurringJobsComponent } from \"./account/recurringJobs/recurringJobs.component\";\r\nimport { FtpServerComponent } from \"./recurringJobs/ftpServer/ftpServer.component\";\r\nimport { FtpImportComponent } from \"./recurringJobs/ftpImport/ftpImport.component\";\r\nimport { CombineCatalogsComponent } from \"./catalog/functions/combine/combineCatalogs.component\";\r\nimport { SeoComponent } from \"./catalog/category/setFields/seo.component\";\r\nimport { CustomerService } from \"./Services/customer.service\";\r\nimport { UserService } from \"./Services/user.service\";\r\nimport { GevisComponent } from \"./catalog/gevis/gevis.component\";\r\nimport { UserActionCreateVariantsFeatureSystemComponent } from \"./catalog/functions/userAction/userAction-createVariantsFeatureSystem/userAction-createVariantsFeatureSystem.component\";\r\nimport { FeatureMappingProfilComponent } from \"./catalog/functions/import/featureMappingProfil/featureMappingProfil.component\";\r\nimport { EdeSortimentsAboComponent } from \"./account/edeSortimentsAbo/edeSortimentsAbo.component\";\r\nimport { EdeMemberIdService } from \"./Services/edeMemberId.service\";\r\nimport { CategoryOsgComponent } from \"./catalog/category/osg/categoryOsg.component\";\r\nimport { EdeSortimentsListComponent } from \"./edeSortimentsList/edeSortimentsList.component\";\r\nimport { EdeSortimentService } from \"./Services/edeSortiment.service\";\r\nimport { EdeSortimentsVersionComponent } from \"./edeSortimentsList/edeSortimentsVersion/edeSortimentsVersion.component\";\r\nimport { WawiListService } from \"./Services/wawiList.service\";\r\nimport { WawiListComponent } from \"./wawiLists/wawiLists.component\";\r\nimport { JobDetailComponent } from \"./Jobs/jobDetail/jobDetail.component\";\r\nimport { MassDataChangeComponent } from \"./catalog/browse/massDataChange/massDataChange.component\";\r\nimport { MassDataChangeService } from \"./Services/CatalogManagement/massDataChange.service\";\r\nimport { TeachingSetComponent } from \"./teachingset/teachingset.component\";\r\nimport { TeachingSetsComponent } from \"./teachingset/teachingsets.component\";\r\nimport { TeachingSetService } from \"./Services/teachingSet.service\";\r\nimport { EdcImportService } from \"./Services/edcImport.service\";\r\nimport { InvoiceService } from \"./Services/invoice.service\";\r\nimport { InvoiceComponent } from \"./account/invoice/invoice.component\";\r\nimport { MassGenerateKITextComponent } from \"./catalog/browse/massGenerateKIText/massGenerateKIText.component\";\r\nimport { UserActionCreateEnventaMimeComponent } from \"./catalog/functions/userAction/userAction-createEnventaMime/userAction-createEnventaMime.component\";\r\nimport { AuthGuardService } from \"./Services/authGuard.service\";\r\nimport { CatalogShopware5Component } from \"./catalog/catalog/shopware5/catalogShopware5.component\";\r\nimport { Shopware5Service } from \"./Services/shopware5.service\";\r\nimport { Shopware5FeatureSystemList } from \"./catalog/catalog/shopware5/shopware5FeaturesystemList/shopware5FeaturesystemList.component\";\r\nimport { ProductAsJsonComponent } from \"./catalog/shared/productAsJson/productAsJson.component\";\r\nimport { UserActionSplitFeatureValuesFromUnitComponent } from \"./catalog/functions/userAction/userAction-splitFeatureValuesFromUnit/userAction-splitFeatureValuesFromUnit.component\";\r\nimport { ProductSupplierComponent } from \"./catalog/shared/productSupplier/productSupplier.component\";\r\nimport { OdooService } from \"./Services/odoo.service\";\r\nimport { CatalogOdooComponent } from \"./catalog/catalog/odoo/catalogOdoo.component\";\r\nimport { UserActionDeleteEmptyFeaturesComponent } from \"./catalog/functions/userAction/userAction-deleteEmptyFeatures/userAction-deleteEmptyFeatures.component\";\r\nimport { CategoryShopware6Component } from \"./catalog/category/shopware6/categoryShopware6.component\";\r\nimport { OsgSendersComponent } from \"./osgSender/osgSenders.component\";\r\nimport { OsgSenderComponent } from \"./osgSender/osgSender.component\";\r\nimport { OsgSenderService } from \"./Services/osgSender.service\";\r\nimport { SupplierPackingUnits } from \"./catalog/shared/productSupplier/supplierPackingUnits/supplierPackingUnits.component\";\r\nimport { UserActionFixClassificationComponent } from \"./catalog/functions/userAction/userAction-fixClassification/userAction-fixClassification.component\";\r\nimport { UserActionSetMimePurposeComponent } from \"./catalog/functions/userAction/userAction-setMimePurpose/userAction-setMimePurpose.component\";\r\nimport { UserActionMarkAsChangedComponent } from \"./catalog/functions/userAction/userAction-markAsChanged/userAction-markAsChanged.component\";\r\nimport { ExportConfigurationService } from \"./Services/exportConfiguration.service\";\r\nimport { MaintenanceModeService } from \"./Services/MaintenanceModeService\";\r\nimport { FtpServerService } from \"./Services/ftp/ftpServer.service\";\r\nimport { FtpImportJobService } from \"./Services/ftp/ftpImportJob.service\";\r\nimport { FtpExportJobService } from \"./Services/ftp/ftpExportJob.service\";\r\nimport { FtpExportComponent } from \"./recurringJobs/ftpExport/ftpExport.component\";\r\nimport { DscInfosComponent } from \"./account/dscInfos/dscInfos.component\";\r\nimport { CustomerAddonsOverviewComponent } from \"./account/admin/customer-addons-overview/customer-addons-overview.component\";\r\nimport { CategoryFilterComponent } from './catalog/functions/export/catalog/filter/categoryFilter/categoryFilter.component';\r\nimport { ManufacturerFilterComponent } from './catalog/functions/export/catalog/filter/manufacturerFilter/manufacturerFilter.component';\r\nimport { UdxFilterComponent } from './catalog/functions/export/catalog/filter/udxFilter/udxFilter.component';\r\nimport { DateFilterComponent } from './catalog/functions/export/catalog/filter/dateFilter/dateFilter.component';\r\nimport { FeatureContentFilterComponent } from './catalog/functions/export/catalog/content/feature-content-filter/featureContentFilter.component';\r\nimport { PricelistContentFilterComponent } from './catalog/functions/export/catalog/content/pricelist-content-filter/pricelistContentFilter.component';\r\nimport { UdxContentFilterComponent } from './catalog/functions/export/catalog/content/udx-content-filter/udxContentFilter.component';\r\nimport { ProductStateFilterComponent } from \"./catalog/functions/export/catalog/filter/productStateFilter/productStateFilter.component\";\r\nimport { ExportFilterService } from \"./Services/exportFilter.service\";\r\nimport { ExportConfigurationComponent } from './catalog/functions/export/catalog/configuration/exportConfiguration.component';\r\nimport { UserActionChangeMimePurposeComponent } from \"./catalog/functions/userAction/useraction-changemimepurposes/userAction-changeMimePurposes.component\";\r\nimport { SupplierContentFilterComponent } from './catalog/functions/export/catalog/filter/supplierContentFilter/supplierContentFilter.component';\r\nimport { ProductSearchOptionsComponent } from \"./catalog/catalog/SearchOptions/productSearchOptions.component\";\r\nimport { ValidationService } from \"./Services/Validation/validation.service\";\r\nimport { ValidationComponent } from \"./account/validation/validation.component\";\r\nimport { SearchByListFilterComponent } from \"./catalog/functions/export/catalog/filter/searchByListFilter/searchByListFilter.component\";\r\nimport { Seo_Component } from \"./catalog/shared/seo_sea/seo.component\";\r\nimport { SnippetComponent } from \"./catalog/shared/seo_sea/snippet.component\";\r\nimport { PendingChangesGuard } from \"./ui/pendingChangesGuard/pendingChangesGuard\";\r\nimport { IntershopConnectionComponent } from './catalog/catalog/intershopConnection/intershopConnection.component';\r\nimport { FieldListComponent } from './catalog/functions/export/catalog/fieldList/fieldList.component';\r\nimport { UserManagementComponent } from './account/myAccount/userManagement/userManagement.component';\r\nimport { AddonService } from \"./Services/addon.service\";\r\nimport { ElectronicSalesComponent } from \"./catalog/shared/electronicSales/electronicSales.component\";\r\nimport { ProductStateOptionsComponent } from \"./catalog/catalog/StateOptions/productStateOptions.component\";\r\nimport { CatalogStateService } from \"./Services/catalogState.service\";\r\nimport { CatalogStateComponent } from \"./catalogState/catalogState.component\";\r\nimport { StatesComponent } from \"./states/states.component\";\r\nimport { UserActionGenerateAITextsComponent } from './catalog/functions/userAction/userAction-generateAITexts/userAction-generateAITexts.component';\r\nimport { CsvSettingsComponent } from \"./catalog/functions/export/catalog/csvSettings/csvSettings.component\";\r\nimport { FtpSupplierPidMappingsConponent } from \"./recurringJobs/ftpSupplierPidMappingsImport/ftpSupplierPidMappingsImport.component\";\r\nimport { FtpSupplierPidMappingsImportJobsService } from \"./Services/ftp/ftpSupplierPidMappingsImportJobs.service\";\r\nimport { UserActionApplyWawiMappings } from \"./catalog/functions/userAction/userAction-applyWawiMappings/userAction-applyWawiMappings.component\";\r\nimport { WawiMappingChooserComponent } from \"./catalog/functions/export/catalog/wawiMappingChooser/wawiMappingChooser.component\";\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient);\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n DscInfosComponent,\r\n HomeComponent,\r\n MenuComponent,\r\n HelpComponent,\r\n HazmatclassesComponent,\r\n HazmatclassComponent,\r\n JobListComponent,\r\n LoginComponent,\r\n ForgotPasswordComponent,\r\n WarrantyclassComponent,\r\n WarrantyclassesComponent,\r\n AccountHomeComponent,\r\n MyAccountComponent,\r\n ChangePasswordComponent,\r\n ProductClassificationComponent,\r\n CatListComponent,\r\n CategoryOsgComponent,\r\n CatalogBuyerComponent,\r\n CatalogClassificationComponent,\r\n CatalogOsgComponent,\r\n CatalogMavisComponent,\r\n CatalogPriceListComponent,\r\n CatalogPrintComponent,\r\n CatalogSettingsComponent,\r\n CatalogShopwareComponent,\r\n CatalogShopware6Component,\r\n CatalogSupplierComponent,\r\n NewCatalogComponent,\r\n ImportMimeComponent,\r\n ImportFileComponent,\r\n ImportMediaComponent,\r\n ImportTranslationsComponent,\r\n ClassificationGroupComponent,\r\n TranslationComponent,\r\n ValidationComponent,\r\n AdminComponent,\r\n ClassificationTreeComponent,\r\n AdminLoginsComponent,\r\n ImportCatalogComponent,\r\n ImportCategoryComponent,\r\n ClassificationSystemComponent,\r\n ExportCatalogComponent,\r\n ExportParameterComponent,\r\n ExportCategoryComponent,\r\n EasyCatalogComponent,\r\n DataQualityComponent,\r\n DataQualityFactsComponent,\r\n DataQualityExampleComponent,\r\n DataQualityStatisticComponent,\r\n DataQualityGroupsComponent,\r\n DataQualityPrintChartComponent,\r\n DeeplConnectionComponent,\r\n BackUpComponent,\r\n JobDataComponent,\r\n CatalogComponent,\r\n CatalogDetailComponent,\r\n CategoryDetailComponent,\r\n ProductDetailComponent,\r\n ProductDetailValidationComponent,\r\n TranslateCatalogComponent,\r\n ImpressumComponent,\r\n MediaPoolComponent,\r\n MavisConnectionComponent,\r\n ShopView,\r\n ShopViewLukas,\r\n SearchComponent,\r\n ProductViewComponent,\r\n EditClassificationSystemComponent,\r\n EditFeatureSystemList,\r\n EditFeatureValueList,\r\n FeatureValueComponent,\r\n Infos,\r\n Logistic,\r\n Mimes,\r\n Misc,\r\n Prices,\r\n References,\r\n SEO,\r\n SeoComponent,\r\n Seo_Component,\r\n SnippetComponent,\r\n UDX,\r\n TemplateExcelComponent,\r\n TemplateProductComponent,\r\n TranslationHelperComponent,\r\n UserActionComponent,\r\n UserActionHarmonizeFeaturesComponent,\r\n UserActionCopyMediaFromOtherCatalogComponent,\r\n UserActionDeleteFeatureSystemsComponent,\r\n UserActionDeleteFeaturesComponent,\r\n UserActionDeleteEmptyFeaturesComponent,\r\n UserActionRenameFeatureSystemComponent,\r\n UserActionRenameFeaturesComponent,\r\n UserActionSplitFeatureValuesFromUnitComponent,\r\n UserActionCompareCatalogComponent,\r\n UserActionUpdateCatalogComponent,\r\n UserActionUpdateToCatalogComponent,\r\n UserActionCreateTechnicalDetailsComponent,\r\n UserActionSearchByListComponent,\r\n UserActionDeleteByListComponent,\r\n UserActionConvertPicturesComponent,\r\n UserActionSpreadCatalogComponent,\r\n UserActionExportReportProductDatasheet,\r\n UserActionRemoveUdxOnProducts,\r\n UserActionDeleteMediaByPurpose,\r\n UserActionFixClassificationComponent,\r\n UserActionCreateEnventaMimeComponent,\r\n OsgConnectionComponent,\r\n UpdateTemplatesComponent,\r\n UpdateTemplateComponent,\r\n CategoriesComponent,\r\n UserActionHarmonizeFeatureSystems,\r\n SendToNWConfigComponent,\r\n CategoryTemplatesComponent,\r\n CatalogTemplatesComponent,\r\n ProductStateComponent,\r\n ProductLegalComponent,\r\n NpBooleanRadioGroupComponent,\r\n ProductReportingComponent,\r\n FooterComponent,\r\n LogoComponent,\r\n FullscreenPageComponent,\r\n ContentColumnComponent,\r\n NavigationColumnComponent,\r\n HelpColumnComponent,\r\n FeatureMappingComponent,\r\n FeatureMappingDetailComponent,\r\n NpDialogComponent,\r\n NpDialogButton,\r\n NpHelpOption,\r\n NpHelpButtonComponent,\r\n OrderDetailComponent,\r\n SandboxComponent,\r\n TemplateListComponent,\r\n TemplateSelectorComponent,\r\n NpInputControlComponent,\r\n NewTemplateEditorComponent,\r\n NewTemplateComponent,\r\n TemplateEditorDialogComponent,\r\n WawiSettingsComponent,\r\n PinDataComponent,\r\n ValidFeatureSystemComponent,\r\n ValidFeatureComponent,\r\n ValidFeatureValueComponent,\r\n UserActionDeleteDuplicateMimesComponent,\r\n WawiComponent,\r\n SupplierPidMappingComponent,\r\n ImportSupplierPidMappingsComponent,\r\n UserActionSetWawiSupplierPidsComponent,\r\n ProductReportingDialogComponent,\r\n NewsComponent,\r\n RecurringJobsComponent,\r\n FtpServerComponent,\r\n FtpImportComponent,\r\n CombineCatalogsComponent,\r\n GevisComponent,\r\n UserActionCreateVariantsFeatureSystemComponent,\r\n FeatureMappingProfilComponent,\r\n EdeSortimentsAboComponent,\r\n EdeSortimentsListComponent,\r\n EdeSortimentsVersionComponent,\r\n WawiListComponent,\r\n JobDetailComponent,\r\n MassDataChangeComponent,\r\n TeachingSetComponent,\r\n TeachingSetsComponent,\r\n InvoiceComponent,\r\n MassGenerateKITextComponent,\r\n CatalogShopware5Component,\r\n Shopware5FeatureSystemList,\r\n ProductAsJsonComponent,\r\n ProductSupplierComponent,\r\n CatalogOdooComponent,\r\n CategoryShopware6Component,\r\n OsgSenderComponent,\r\n OsgSendersComponent,\r\n SupplierPackingUnits,\r\n UserActionSetMimePurposeComponent,\r\n UserActionMarkAsChangedComponent,\r\n FtpExportComponent,\r\n CategoryFilterComponent,\r\n ManufacturerFilterComponent,\r\n UdxFilterComponent,\r\n DateFilterComponent,\r\n FeatureContentFilterComponent,\r\n PricelistContentFilterComponent,\r\n UdxContentFilterComponent,\r\n ProductStateFilterComponent,\r\n ExportConfigurationComponent,\r\n CustomerAddonsOverviewComponent,\r\n UserActionChangeMimePurposeComponent,\r\n SupplierContentFilterComponent,\r\n UserActionChangeMimePurposeComponent,\r\n ProductSearchOptionsComponent,\r\n SearchByListFilterComponent,\r\n IntershopConnectionComponent,\r\n FieldListComponent,\r\n UserManagementComponent,\r\n ElectronicSalesComponent,\r\n ProductStateOptionsComponent,\r\n CatalogStateComponent,\r\n StatesComponent,\r\n UserActionGenerateAITextsComponent, \r\n CsvSettingsComponent,\r\n FtpSupplierPidMappingsConponent,\r\n UserActionApplyWawiMappings,\r\n WawiMappingChooserComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: \"ng-cli-universal\" }),\r\n HttpClientModule,\r\n OAuthModule.forRoot({\r\n resourceServer: {\r\n allowedUrls: ['api'],\r\n sendAccessToken: true\r\n }\r\n }),\r\n UserIdleModule.forRoot({\r\n idle: 28800, timeout: 1, ping: 900\r\n }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n CommonModule,\r\n FormsModule,\r\n DevExtremeModule,\r\n BrowserTransferStateModule,\r\n RouterModule.forRoot([\r\n { path: \"getProduct\", component: ProductViewComponent },\r\n { path: \"printChart\", component: DataQualityPrintChartComponent },\r\n { path: \"forgotPassword\", component: ForgotPasswordComponent },\r\n { path: \"login/:customerId\", component: LoginComponent },\r\n { path: \"login\", component: LoginComponent, pathMatch: \"full\" },\r\n {\r\n path: \"\", component: MenuComponent, canActivate: [AuthGuardService], children: [\r\n { path: \"Account\", component: AccountHomeComponent },\r\n { path: \"Account/changePassword\", component: ChangePasswordComponent },\r\n { path: \"Account/myAccount\", component: MyAccountComponent },\r\n { path: \"admin\", component: AdminComponent },\r\n { path: \"catalog/:customerId/:catalogId\", component: CatalogComponent },\r\n { path: \"catalog/:customerId/:catalogId/category/:categoryId\", component: CatalogComponent },\r\n { path: \"catalog/:customerId/:catalogId/product/:productId\", component: CatalogComponent },\r\n { path: \"catalog\", component: CatalogComponent },\r\n { path: \"catalogdetails\", component: CatalogComponent },\r\n { path: \"catalogs\", component: CatListComponent },\r\n { path: \"validfeature\", component: ValidFeatureSystemComponent },\r\n { path: \"classification\", component: ClassificationSystemComponent },\r\n { path: \"editclassification\", component: EditClassificationSystemComponent },\r\n { path: \"hazmatclasses\", component: HazmatclassesComponent },\r\n { path: \"impressum\", component: ImpressumComponent },\r\n { path: \"search\", component: SearchComponent },\r\n { path: \"translation\", component: TranslationComponent },\r\n { path: \"validation\", component: ValidationComponent },\r\n { path: \"warrantyClasses\", component: WarrantyclassesComponent },\r\n { path: \"updateTemplates\", component: UpdateTemplatesComponent },\r\n { path: \"productStates\", component: ProductStateComponent },\r\n { path: \"catalogStates\", component: CatalogStateComponent },\r\n { path: \"states\", component: StatesComponent },\r\n { path: \"productReportDesigner\", component: ProductReportingComponent },\r\n { path: \"featureMapping\", component: FeatureMappingComponent },\r\n { path: \"featureMappingDetail\", component: FeatureMappingDetailComponent },\r\n { path: \"supplierPidMapping\", component: SupplierPidMappingComponent },\r\n { path: \"newsArticle\", component: NewsComponent },\r\n { path: \"combineCatalogs\", component: CombineCatalogsComponent },\r\n { path: \"edeSortiment\", component: EdeSortimentsListComponent },\r\n { path: \"wawiList\", component: WawiListComponent },\r\n { path: \"teachingSets\", component: TeachingSetsComponent },\r\n { path: \"multishopExport\", component: OsgSendersComponent },\r\n { path: \"invoice\", component: InvoiceComponent },\r\n { path: \"templates\", component: TemplateListComponent },\r\n { path: \"sandbox\", component: SandboxComponent },\r\n { path: \"**\", component: CatListComponent }\r\n ]\r\n },\r\n { path: \"**\", redirectTo: \"/\" }\r\n ], { relativeLinkResolution: 'legacy' })\r\n ],\r\n providers: [ModelService, SystemService, HazmatClassService, WarrantyClassService, LoginService, ClassificationService, ValidFeatureService, JobService, CatalogService, CatalogStateService, CategoryService, ValidationService,\r\n MediaService, TranslationService, ShopService, BackupService, DataQualityService, AdminService, OsgConnectionService, FeedbackService,\r\n UpdateTemplateService, MavisConnectionService, PrintService, SendToNWConfigService, ViewService, ProductStateService, ValidationService,\r\n ProductReportingService, FeatureMappingService, WawiSettingsService, ProductService, SupplierPidMappingService,\r\n DeeplConnectionService, NewsService, UserManagementService, FtpServerService, FtpImportJobService, CustomerService, UserService,\r\n EdeMemberIdService, EdeSortimentService, WawiListService, MassDataChangeService, TeachingSetService, EdcImportService, AuthGuardService, PendingChangesGuard,\r\n InvoiceService, Shopware5Service, OdooService, OsgSenderService, ExportConfigurationService, MaintenanceModeService, FtpExportJobService, ExportFilterService, CombineCatalogService,\r\n AddonService, FtpSupplierPidMappingsImportJobsService],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { 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\r\nimport { licenseKey } from './devextreme-license';\r\n\r\nimport devExtremeConfig from \"devextreme/core/config\";\r\nimport themes from 'devextreme/ui/themes';\r\n\r\nimport \"bootstrap-icons/font/bootstrap-icons.css\";\r\nimport \"./styles.css\";\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName(\"base\")[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: \"BASE_URL\", useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nthemes.initialized(() => {\r\n platformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n});\r\n\r\ndevExtremeConfig({\r\n licenseKey: licenseKey\r\n});\r\n","export const licenseKey = 'ewogICJmb3JtYXQiOiAxLAogICJjdXN0b21lcklkIjogIjlmMTU3NDE1LTAwNmEtMTFlNC04MGM3LTAwMTU1ZDYyNDcwMSIsCiAgIm1heFZlcnNpb25BbGxvd2VkIjogMjMyCn0=.haE2Ipu2/u9zSHErexbCdG2heiwll/A10dNgGDIRs72dnEwFLibeGNEckl7U2HaBsI4SmoMpKklPSkYtpPYV6jTkG3LZBOmkvvosJ+uq+c/mJg5yWneXXIfFwn48SbUWufCO1g==';\r\n","/*! For license information please see dx-diagram.min.js.LICENSE.txt */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.DevExpress=e():(t.DevExpress=t.DevExpress||{},t.DevExpress.diagram=e())}(this,(()=>(()=>{\"use strict\";var t={9279:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.IdentUserAgent=function(e,n){void 0===n&&(n=!1);var o=[\"Mozilla\",\"IE\",\"Firefox\",\"Netscape\",\"Safari\",\"Chrome\",\"Opera\",\"Opera10\",\"Edge\"],i=\"IE\",r=\"Win\",s={Safari:2,Chrome:.1,Mozilla:1.9,Netscape:8,Firefox:2,Opera:9,IE:6,Edge:12};if(e&&0!==e.length){e=e.toLowerCase(),t.indentPlatformMajorVersion(e);try{for(var a={Windows:\"Win\",Macintosh:\"Mac\",\"Mac OS\":\"Mac\",Mac_PowerPC:\"Mac\",\"cpu os\":\"MacMobile\",\"cpu iphone os\":\"MacMobile\",Android:\"Android\",\"!Windows Phone\":\"WinPhone\",\"!WPDesktop\":\"WinPhone\",\"!ZuneWP\":\"WinPhone\"},c=\"(?:/|\\\\s*)?\",u=\"(\\\\d+)(?:\\\\.((?:\\\\d+?[1-9])|\\\\d)0*?)?\",h=\"(?:\"+u+\")?\",p={Safari:\"applewebkit(?:.*?(?:version/\"+u+\"[\\\\.\\\\w\\\\d]*?(?:\\\\s+mobile/\\\\S*)?\\\\s+safari))?\",Chrome:\"(?:chrome|crios)(?!frame)\"+c+h,Mozilla:\"mozilla(?:.*rv:\"+h+\".*Gecko)?\",Netscape:\"(?:netscape|navigator)\\\\d*/?\\\\s*\"+h,Firefox:\"firefox\"+c+h,Opera:\"(?:opera|\\\\sopr)\"+c+h,Opera10:\"opera.*\\\\s*version\"+c+h,IE:\"msie\\\\s*\"+h,Edge:\"edge\"+c+h},l=null,d=-1,f=0;f<o.length;f++){var y=o[f],g=new RegExp(p[y],\"i\").exec(e);if(g&&g.index>=0){if(\"IE\"===l&&d>=11&&\"Safari\"===y)continue;\"Opera10\"===(l=y)&&(l=\"Opera\");var m=\"trident\"+c+h;d=t.GetBrowserVersion(e,g,m,t.getIECompatibleVersionString()),\"Mozilla\"===l&&d>=11&&(l=\"IE\")}}l||(l=i);var v=-1!==d;v||(d=s[l]);var P=null,C=Number.MAX_VALUE;for(var S in a)if(Object.prototype.hasOwnProperty.call(a,S)){var x=\"!\"===S.substr(0,1),b=e.indexOf((x?S.substr(1):S).toLowerCase());b>=0&&(b<C||x)&&(C=x?0:b,P=a[S])}var I=e.toUpperCase().match(\"SM-[A-Z]\"),w=I&&I.length>0;\"WinPhone\"===P&&d<9&&(d=Math.floor(t.getVersionFromTrident(e,\"trident\"+c+h))),!n&&\"IE\"===l&&d>7&&document.documentMode<d&&(d=document.documentMode),\"WinPhone\"===P&&(d=Math.max(9,d)),P||(P=r),P!==a[\"cpu os\"]||v||(d=4),t.fillUserAgentInfo(o,l,d,P,w)}catch(e){t.fillUserAgentInfo(o,i,s[i],r)}}else t.fillUserAgentInfo(o,i,s[i],r)},t.GetBrowserVersion=function(e,n,o,i){var r=t.getVersionFromMatches(n);if(i){var s=t.getVersionFromTrident(e,o);if(\"edge\"===i||parseInt(i)===s)return s}return r},t.getIECompatibleVersionString=function(){if(document.compatible)for(var t=0;t<document.compatible.length;t++)if(\"IE\"===document.compatible[t].userAgent&&document.compatible[t].version)return document.compatible[t].version.toLowerCase();return\"\"},t.isTouchEnabled=function(){return t.hasTouchStart()||t.hasMaxTouchPoints()||t.hasMsMaxTouchPoints()},t.hasTouchStart=function(){return\"ontouchstart\"in window},t.hasMaxTouchPoints=function(){return navigator.maxTouchPoints>0},t.hasMsMaxTouchPoints=function(){return navigator.msMaxTouchPoints>0},t.hasNavigator=function(){return\"undefined\"!=typeof navigator},t.fillUserAgentInfo=function(e,n,o,i,r){void 0===r&&(r=!1);for(var s=0;s<e.length;s++){var a=e[s];t[a]=a===n}t.Version=Math.floor(10*o)/10,t.MajorVersion=Math.floor(t.Version),t.WindowsPlatform=\"Win\"===i||\"WinPhone\"===i,t.MacOSMobilePlatform=\"MacMobile\"===i||\"Mac\"===i&&t.isTouchEnabled(),t.MacOSPlatform=\"Mac\"===i&&!t.MacOSMobilePlatform,t.AndroidMobilePlatform=\"Android\"===i,t.WindowsPhonePlatform=\"WinPhone\"===i,t.WebKitFamily=t.Safari||t.Chrome||t.Opera&&t.MajorVersion>=15,t.NetscapeFamily=t.Netscape||t.Mozilla||t.Firefox,t.WebKitTouchUI=t.MacOSMobilePlatform||t.AndroidMobilePlatform;var c=t.IE&&t.MajorVersion>9&&t.WindowsPlatform&&t.UserAgent.toLowerCase().indexOf(\"touch\")>=0;if(t.MSTouchUI=c||t.Edge&&!!window.navigator.maxTouchPoints,t.TouchUI=t.WebKitTouchUI||t.MSTouchUI,t.MobileUI=t.WebKitTouchUI||t.WindowsPhonePlatform,t.AndroidDefaultBrowser=t.AndroidMobilePlatform&&!t.Chrome,t.AndroidChromeBrowser=t.AndroidMobilePlatform&&t.Chrome,r&&(t.SamsungAndroidDevice=r),t.MSTouchUI){var u=t.UserAgent.toLowerCase().indexOf(\"arm;\")>-1;t.VirtualKeyboardSupported=u||t.WindowsPhonePlatform}else t.VirtualKeyboardSupported=t.WebKitTouchUI;t.fillDocumentElementBrowserTypeClassNames(e)},t.indentPlatformMajorVersion=function(e){var n=/(?:(?:windows nt|macintosh|mac os|cpu os|cpu iphone os|android|windows phone|linux) )(\\d+)(?:[-0-9_.])*/.exec(e);n&&(t.PlaformMajorVersion=n[1])},t.getVersionFromMatches=function(t){var e=-1,n=\"\";return t&&(t[1]&&(n+=t[1],t[2]&&(n+=\".\"+t[2])),\"\"!==n&&(e=parseFloat(n),isNaN(e)&&(e=-1))),e},t.getVersionFromTrident=function(e,n){var o=new RegExp(n,\"i\").exec(e);return t.getVersionFromMatches(o)+4},t.fillDocumentElementBrowserTypeClassNames=function(e){for(var n=\"\",o=e.concat([\"WindowsPlatform\",\"MacOSPlatform\",\"MacOSMobilePlatform\",\"AndroidMobilePlatform\",\"WindowsPhonePlatform\",\"WebKitFamily\",\"WebKitTouchUI\",\"MSTouchUI\",\"TouchUI\",\"AndroidDefaultBrowser\"]),i=0;i<o.length;i++){var r=o[i];t[r]&&(n+=\"dx\"+r+\" \")}n+=\"dxBrowserVersion-\"+t.MajorVersion,\"undefined\"!=typeof document&&document&&document.documentElement&&(\"\"!==document.documentElement.className&&(n=\" \"+n),document.documentElement.className+=n,t.Info=n)},t.getUserAgent=function(){return t.hasNavigator()&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\"},t.UserAgent=t.getUserAgent(),t._foo=t.IdentUserAgent(t.UserAgent),t}();e.Browser=n},1772:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){this.suspendUpdateCount=0,this.occurredEvents=0}return t.prototype.beginUpdate=function(){0===this.suspendUpdateCount&&this.onUpdateLocked(),this.suspendUpdateCount<0?this.suspendUpdateCount--:this.suspendUpdateCount++},t.prototype.endUpdate=function(){if(this.suspendUpdateCount<0?this.suspendUpdateCount++:this.suspendUpdateCount>0&&this.suspendUpdateCount--,!this.isUpdateLocked()){var t=this.occurredEvents;this.occurredEvents=0,this.onUpdateUnlocked(t)}},t.prototype.suspendUpdate=function(){if(this.suspendUpdateCount>0){this.suspendUpdateCount*=-1;var t=this.occurredEvents;this.occurredEvents=0,this.onUpdateUnlocked(t)}},t.prototype.continueUpdate=function(){this.suspendUpdateCount<0&&(this.suspendUpdateCount*=-1)},t.prototype.isUpdateLocked=function(){return this.suspendUpdateCount>0},t.prototype.onUpdateLocked=function(){},t.prototype.registerOccurredEvent=function(t){this.occurredEvents|=t},t.prototype.resetOccurredEvents=function(){this.occurredEvents=0},t.prototype.isLocked=function(){return 0!==this.suspendUpdateCount},t}();e.BatchUpdatableObject=n;var o=function(){function t(){}return t.prototype.beginUpdate=function(){},t.prototype.endUpdate=function(){},t}();e.EmptyBatchUpdatableObject=o},7820:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t){void 0===t&&(t=0),this.value=t}return t.prototype.get=function(t){return(this.value&t)===t},t.prototype.set=function(t,e){return(this.value&t)===t!==e&&(e?this.value|=t:this.value^=t),this},t.prototype.add=function(t){this.value|=t},t.prototype.anyOf=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,o=t;n<o.length;n++){var i=o[n];if((this.value&i)===i)return!0}return!1},t.prototype.getValue=function(){return this.value},t.prototype.clone=function(){return new t(this.value)},t}();e.Flag=n},6799:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(655),i=function(t,e){this.minElement=t,this.maxElement=e};e.MinMax=i;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o.__extends(e,t),Object.defineProperty(e.prototype,\"length\",{get:function(){return this.maxElement-this.minElement},enumerable:!0,configurable:!0}),e}(i);e.MinMaxNumber=r;var s=function(t,e){this.minElement=t,this.minValue=e};e.ExtendedMin=s;var a=function(t,e){this.maxElement=t,this.maxValue=e};e.ExtendedMax=a;var c=function(t){function e(e,n,o,i){var r=t.call(this,e,o)||this;return r.minValue=n,r.maxValue=i,r}return o.__extends(e,t),e}(i);e.ExtendedMinMax=c},9291:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.hundredthsOfMillimeterToTwipsRound=function(t){return Math.round(1440*t/2540)},t.documentsToTwips=function(t){return 24*t/5},t.pixelsToTwips=function(e){return Math.round(t.pixelsToTwipsF(e))},t.pixelsToTwipsCustomDpi=function(e,n){return Math.round(t.pixelsToTwipsFCustomDpi(e,n))},t.inchesToTwips=function(e){return Math.round(t.inchesToTwipsF(e))},t.pointsToTwips=function(e){return Math.round(t.pointsToTwipsF(e))},t.picasToTwips=function(e){return Math.round(1440*e/t.PICAS_PER_INCH)},t.centimetersToTwips=function(e){return Math.round(t.centimetersToTwipsF(e))},t.pixelsToTwipsF=function(e){return 1440*e/t.DPI},t.pixelsToTwipsFCustomDpi=function(t,e){return 1440*t/e},t.inchesToTwipsF=function(t){return 1440*t},t.pointsToTwipsF=function(t){return 20*t},t.centimetersToTwipsF=function(e){return 1440*e/t.CENTIMETERS_PER_INCH},t.twipsToDegrees=function(t){return t/6e4},t.twipsToRadians=function(t){return t/6e4*Math.PI/180},t.degreesToTwips=function(t){return 6e4*t},t.radiansToTwips=function(t){return 6e4*t/Math.PI*180},t.radiansToDegrees=function(t){return t/Math.PI*180},t.twipsToFD=function(t){return Math.round(2048*t/1875)},t.fdToTwips=function(t){return Math.round(1875*t/2048)},t.emuToTwips=function(t){return t/635},t.twipsToPixels=function(e){return Math.round(t.twipsToPixelsF(e))},t.inchesToPixels=function(e){return Math.round(t.DPI*e)},t.centimeterToPixel=function(t){return Math.round(this.centimeterToPixelF(t))},t.centimeterToPixelF=function(e){return e*t.DPI/t.CENTIMETERS_PER_INCH},t.millimetersToPixel=function(e){return Math.round(e/(t.CENTIMETERS_PER_INCH/t.DPI)/10)},t.pointsToPixels=function(e){return Math.round(e*t.DPI/72)},t.pointsToPixelsF=function(e){return e*t.DPI/72},t.twipsToPixelsF=function(e){return e*t.DPI/1440},t.pixelsToPoints=function(e){return Math.round(72*e/t.DPI)},t.pixelsToPointsF=function(e){return 72*e/t.DPI},t.twipsToPoints=function(t){return Math.round(this.twipsToPointsF(t))},t.twipsToPointsF=function(t){return t/20},t.twipsToInches=function(t){return t/1440},t.pixelsToInches=function(e){return e/t.DPI},t.twipsToCentimeters=function(e){return e*t.CENTIMETERS_PER_INCH/1440},t.pixelToCentimeters=function(e){return e*t.CENTIMETERS_PER_INCH/t.DPI},t.twipsToHundredthsOfMillimeter=function(t){return Math.round(127*t/72)},t.pixelsToHundredthsOfMillimeter=function(e){return Math.round(2540*e/t.DPI)},t.hundredthsOfMillimeterToTwips=function(t){return 15*t/127},t.twipsToEmu=function(t){return 635*t},t.twipsToDegree=function(t){return t/6e4},t.DPI=96,t.CENTIMETERS_PER_INCH=2.54,t.PICAS_PER_INCH=6,t}();e.UnitConverter=n},5596:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.euclideanDistance=function(t,e){var n=t.x-e.x,o=t.y-e.y;return Math.sqrt(n*n+o*o)},t.manhattanDistance=function(t,e){return Math.abs(t.x-e.x)+Math.abs(t.y-e.y)},t}();e.Metrics=n},4125:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e,n,o){this.left=t,this.right=e,this.top=n,this.bottom=o}return t.empty=function(){return new t(0,0,0,0)},Object.defineProperty(t.prototype,\"horizontal\",{get:function(){return this.left+this.right},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"vertical\",{get:function(){return this.top+this.bottom},enumerable:!0,configurable:!0}),t.fromNumber=function(e){return new t(e,e,e,e)},t.fromOffsets=function(e){return new t(e.left,e.right,e.top,e.bottom)},t.fromSide=function(e,n){return new t(e,e,n,n)},t.prototype.normalize=function(){return this.left=Math.max(0,this.left),this.right=Math.max(0,this.right),this.top=Math.max(0,this.top),this.bottom=Math.max(0,this.bottom),this},t.prototype.toString=function(){return JSON.stringify(this)},t.prototype.isEmpty=function(){return 0===this.left&&0===this.right&&0===this.top&&0===this.bottom},t.prototype.offset=function(t){return this.left+=t.left,this.right+=t.right,this.top+=t.top,this.bottom+=t.bottom,this},t.prototype.multiply=function(t,e,n,o){switch(arguments.length){case 1:return this.left*=t,this.right*=t,this.top*=t,this.bottom*=t,this;case 2:return this.left*=t,this.right*=t,this.top*=e,this.bottom*=e,this;case 4:return this.left*=t,this.right*=e,this.top*=n,this.bottom*=o,this}return this},t.prototype.clone=function(){return new t(this.left,this.right,this.top,this.bottom)},t.prototype.copyFrom=function(t){this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom},t.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.right===t.right&&this.left===t.left},t.prototype.applyConverter=function(t){return this.left=t(this.left),this.right=t(this.right),this.top=t(this.top),this.bottom=t(this.bottom),this},t}();e.Offsets=n},8900:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){this.x=t,this.y=e}return t.zero=function(){return new t(0,0)},t.fromNumber=function(e){return new t(e,e)},t.prototype.isZero=function(){return 0===this.x&&0===this.y},t.prototype.toString=function(){return JSON.stringify(this)},t.prototype.copyFrom=function(t){this.x=t.x,this.y=t.y},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.equals=function(t){return this.x===t.x&&this.y===t.y},t.prototype.offset=function(t,e){return this.x+=t,this.y+=e,this},t.prototype.offsetByPoint=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.multiply=function(t,e){return this.x*=t,this.y*=e,this},t.prototype.negative=function(){return this.x*=-1,this.y*=-1,this},t.prototype.applyConverter=function(t){return this.x=t(this.x),this.y=t(this.y),this},t.plus=function(e,n){return new t(e.x+n.x,e.y+n.y)},t.minus=function(e,n){return new t(e.x-n.x,e.y-n.y)},t.xComparer=function(t,e){return t.x-e.x},t.yComparer=function(t,e){return t.y-e.y},t.equals=function(t,e){return t.x===e.x&&t.y===e.y},t}();e.Point=n},8011:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o,i=n(7820),r=n(1104),s=n(8860),a=n(8900),c=n(6353),u=function(){function t(t,e,n,o){this.x=t,this.y=e,this.width=n,this.height=o}return Object.defineProperty(t.prototype,\"right\",{get:function(){return this.x+this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"bottom\",{get:function(){return this.y+this.height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"center\",{get:function(){return t.center(this)},enumerable:!0,configurable:!0}),t.prototype.createRectangle=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.createSize=function(){return new c.Size(this.width,this.height)},t.prototype.createPosition=function(){return new a.Point(this.x,this.y)},t.prototype.createVerticalInterval=function(){return new s.FixedInterval(this.y,this.height)},t.prototype.createHorizontalInterval=function(){return new s.FixedInterval(this.x,this.width)},t.fromGeometry=function(e,n){return new t(e.x,e.y,n.width,n.height)},t.fromPoints=function(e,n){return new t(Math.min(e.x,n.x),Math.min(e.y,n.y),Math.abs(e.x-n.x),Math.abs(e.y-n.y))},t.fromPositions=function(e,n,o,i){return new t(Math.min(e,o),Math.min(n,i),Math.abs(o-e),Math.abs(i-n))},t.fromCenter=function(e,n){return new t(e.x-n,e.y-n,2*n,2*n)},t.prototype.isCollapsed=function(){return 0===this.width||0===this.height},t.prototype.isEmpty=function(){return 0===this.x&&0===this.y&&0===this.width&&0===this.height},t.prototype.toString=function(){return JSON.stringify(this)},t.prototype.setPosition=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.setSize=function(t){return this.width=t.width,this.height=t.height,this},t.prototype.setGeomerty=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},t.prototype.moveRectangle=function(t,e){return this.x+=t,this.y+=e,this},t.prototype.moveRectangleByPoint=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.resize=function(t,e){return this.width+=t,this.height+=e,this},t.prototype.nonNegativeSize=function(){return this.width<0&&(this.width=0),this.height<0&&(this.height=0),this},t.prototype.multiply=function(t,e){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this},t.prototype.equals=function(e){return t.equals(this,e)},t.prototype.clone=function(){var e=new t(0,0,0,0);return e.copyFrom(this),e},t.prototype.copyFrom=function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},t.prototype.containsPoint=function(e){return t.containsPoint(this,e)},t.prototype.containsRectangle=function(t){return this.x<=t.x&&this.right>=t.right&&this.y<=t.y&&this.bottom>=t.bottom},t.prototype.inflate=function(t,e){return void 0===e&&(e=t),this.x-=t,this.y-=e,this.width+=2*t,this.height+=2*e,this},t.prototype.applyOffsetsInside=function(t){return this.x+=t.left,this.y+=t.top,this.width-=t.left+t.right,this.height-=t.top+t.bottom,this},t.prototype.applyNormalizedOffsetsInside=function(t){var e=Math.max(0,t.left),n=e+Math.max(0,t.right);0!==n&&(n<=this.width?(this.x+=e,this.width-=n):(this.x+=this.width*(e/n),this.width=0));var o=Math.max(0,t.top),i=o+Math.max(0,t.bottom);return 0!==i&&(i<=this.height?(this.y+=o,this.height-=i):(this.y+=this.height*(o/i),this.height=0)),this},t.prototype.applyOffsetsOutside=function(t){return this.x-=t.left,this.y-=t.top,this.width+=t.left+t.right,this.height+=t.top+t.bottom,this},t.prototype.applyConverter=function(t){return this.x=t(this.x),this.y=t(this.y),this.width=t(this.width),this.height=t(this.height),this},t.getHorizIntersection=function(t,e){return r.IntervalAlgorithms.getIntersection(new s.FixedInterval(t.x,t.width),new s.FixedInterval(e.x,e.width))},t.getVertIntersection=function(t,e){return r.IntervalAlgorithms.getIntersection(new s.FixedInterval(t.y,t.height),new s.FixedInterval(e.y,e.height))},t.getIntersection=function(e,n){var o=r.IntervalAlgorithms.getIntersection(new s.FixedInterval(e.x,e.width),new s.FixedInterval(n.x,n.width));if(!o)return null;var i=r.IntervalAlgorithms.getIntersection(new s.FixedInterval(e.y,e.height),new s.FixedInterval(n.y,n.height));return i?new t(o.start,i.start,o.length,i.length):null},t.getHorNonCollapsedIntersection=function(e,n){var o=t.getHorizIntersection(e,n);return o&&!o.isCollapsed()?o:null},t.getVertNonCollapsedIntersection=function(e,n){var o=t.getVertIntersection(e,n);return o&&!o.isCollapsed()?o:null},t.getNonCollapsedIntersection=function(e,n){var o=t.getIntersection(e,n);return o&&!o.isCollapsed()?o:null},t.areIntersected=function(t,e){return!(t.x>e.x+e.width||e.x>t.x+t.width||t.y>e.y+e.height||e.y>t.y+t.height)},t.union=function(e,n){var o=Math.max(e.x+e.width,n.x+n.width),i=Math.max(e.y+e.height,n.y+n.height),r=Math.min(e.x,n.x),s=Math.min(e.y,n.y);return new t(r,s,o-r,i-s)},t.equals=function(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height},t.center=function(t){return new a.Point(t.x+t.width/2,t.y+t.height/2)},t.containsPoint=function(t,e){var n=t.x+t.width,o=t.y+t.height;return e.y>=t.y&&o>=e.y&&e.x>=t.x&&n>=e.x},t}();e.Rectangle=u,function(t){t[t.None=0]=\"None\",t[t.Top=1]=\"Top\",t[t.Bottom=2]=\"Bottom\",t[t.Left=4]=\"Left\",t[t.Right=8]=\"Right\"}(o=e.HitTestDeviation||(e.HitTestDeviation={}));var h=function(){function t(t,e){this.initRectangle=t,this.initPoint=e,this.deviation=new i.Flag(o.None)}return t.prototype.calcDeviation=function(){return this.initPoint.x<this.initRectangle.x?this.deviation.set(o.Left,!0):this.initPoint.x>this.initRectangle.right&&this.deviation.set(o.Right,!0),this.initPoint.y<this.initRectangle.y?this.deviation.set(o.Top,!0):this.initPoint.y>this.initRectangle.bottom&&this.deviation.set(o.Bottom,!0),this},t.prototype.calcAdditionalParams=function(){return this.insidePoint=this.initPoint.clone(),this.offsetToInside=new a.Point(0,0),this.deviation.get(o.Left)?(this.insidePoint.x=this.initRectangle.x,this.offsetToInside.x=this.insidePoint.x-this.initPoint.x):this.deviation.get(o.Right)&&(this.insidePoint.x=this.initRectangle.right,this.offsetToInside.x=this.initPoint.x-this.insidePoint.x),this.deviation.get(o.Top)?(this.insidePoint.y=this.initRectangle.y,this.offsetToInside.y=this.insidePoint.y-this.initPoint.y):this.deviation.get(o.Bottom)&&(this.insidePoint.y=this.initRectangle.bottom,this.offsetToInside.y=this.initPoint.y-this.insidePoint.y),this},t}();e.RectangleDeviation=h},1335:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(8679),i=n(5596),r=n(8900),s=n(8011),a=function(){function t(t,e){this.startPoint=t,this.endPoint=e}return Object.defineProperty(t.prototype,\"length\",{get:function(){return i.Metrics.euclideanDistance(this.startPoint,this.endPoint)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"xLength\",{get:function(){return Math.abs(this.endPoint.x-this.startPoint.x)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"yLength\",{get:function(){return Math.abs(this.endPoint.y-this.startPoint.y)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"center\",{get:function(){return new r.Point(this.startPoint.x+(this.endPoint.x-this.startPoint.x)/2,this.startPoint.y+(this.endPoint.y-this.startPoint.y)/2)},enumerable:!0,configurable:!0}),t.prototype.isIntersected=function(t){return this.startPoint.equals(t.startPoint)||this.endPoint.equals(t.startPoint)||this.startPoint.equals(t.endPoint)||this.endPoint.equals(t.endPoint)||this.intersectCore(t)&&t.intersectCore(this)},t.prototype.containsPoint=function(t,e){return void 0===e&&(e=1e-7),this.startPoint.equals(t)||this.endPoint.equals(t)||o.MathUtils.numberCloseTo(this.length,i.Metrics.euclideanDistance(this.startPoint,t)+i.Metrics.euclideanDistance(this.endPoint,t),e)},t.prototype.isIntersectedByRect=function(e){if(s.Rectangle.containsPoint(e,this.startPoint)||s.Rectangle.containsPoint(e,this.endPoint))return!0;var n=e.x,o=e.x+e.width,i=e.y,a=e.y+e.height;return this.isIntersected(new t(new r.Point(n,i),new r.Point(n,a)))||this.isIntersected(new t(new r.Point(o,i),new r.Point(o,a)))||this.isIntersected(new t(new r.Point(n,i),new r.Point(o,i)))||this.isIntersected(new t(new r.Point(n,a),new r.Point(o,a)))},t.prototype.intersectCore=function(t){if(this.startPoint.x===this.endPoint.x){if(this.startPoint.x-t.endPoint.x!=0)return(this.startPoint.x-t.startPoint.x)/(this.startPoint.x-t.endPoint.x)<=0;if(t.endPoint.y-this.endPoint.y!=0)return(t.endPoint.y-this.startPoint.y)/(t.endPoint.y-this.endPoint.y)<=0}if(this.startPoint.y===this.endPoint.y){if(this.startPoint.y-t.endPoint.y!=0)return(this.startPoint.y-t.startPoint.y)/(this.startPoint.y-t.endPoint.y)<=0;if(t.endPoint.x-this.endPoint.x!=0)return(t.endPoint.x-this.startPoint.x)/(t.endPoint.x-this.endPoint.x)<=0}var e=(this.endPoint.y-this.startPoint.y)/(this.endPoint.x-this.startPoint.x),n=this.startPoint.y+(t.startPoint.x-this.startPoint.x)*e,o=this.startPoint.y+(t.endPoint.x-this.startPoint.x)*e,i=t.startPoint.y-n,r=t.endPoint.y-o;return 0===i&&0===r?(this.startPoint.y-n)/(this.endPoint.y-n)<=0||(this.startPoint.y-o)/(this.endPoint.y-o)<=0:0===i||0===r||i/r<0},t}();e.Segment=a},6353:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){this.width=t,this.height=e}return t.empty=function(){return new t(0,0)},t.fromNumber=function(e){return new t(e,e)},t.initByCommonAction=function(e){var n=function(t){return t.width},o=function(t){return t.height};return new t(e(n,o),e(o,n))},t.prototype.isEmpty=function(){return 0===this.width&&0===this.height},t.prototype.toString=function(){return JSON.stringify(this)},t.prototype.nonNegativeSize=function(){return this.width<0&&(this.width=0),this.height<0&&(this.height=0),this},t.prototype.offset=function(t,e){return this.width=this.width+t,this.height=this.height+e,this},t.prototype.multiply=function(t,e){return this.width*=t,this.height*=e,this},t.prototype.equals=function(t){return this.width===t.width&&this.height===t.height},t.prototype.clone=function(){return new t(this.width,this.height)},t.prototype.copyFrom=function(t){this.width=t.width,this.height=t.height},t.prototype.applyConverter=function(t){return this.width=t(this.width),this.height=t(this.height),this},t.equals=function(t,e){return t.width===e.width&&t.height===e.height},t}();e.Size=n},9716:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.x=t,this.y=e}return Object.defineProperty(t.prototype,\"length\",{get:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},enumerable:!0,configurable:!0}),t.fromPoints=function(e,n){return new t(n.x-e.x,n.y-e.y)},t.fromSegment=function(e){return new t(e.endPoint.x-e.startPoint.x,e.endPoint.y-e.startPoint.y)},t.prototype.normalize=function(){var t=this.length;return 0!==t&&(this.x/=t,this.y/=t),this},t.prototype.negative=function(){return this.x*=-1,this.y*=-1,this},Object.defineProperty(t,\"axisX\",{get:function(){return new t(1,0)},enumerable:!0,configurable:!0}),Object.defineProperty(t,\"axisY\",{get:function(){return new t(0,1)},enumerable:!0,configurable:!0}),t.angleBetween=function(e,n){var o=t.scalarProduct(e,n)/(e.length*n.length);return Math.acos(o)},t.scalarProduct=function(t,e){return t.x*e.x+t.y*e.y},t}();e.Vector=n},1104:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(2940),i=n(2400),r=n(8860),s=n(6102),a=function(){function t(){}return t.oneConstainsOtherArraysOfInterval=function(t,e){for(var n=o.ListUtils.deepCopy(e),i=n.pop();i;){if(!o.ListUtils.unsafeAnyOf(t,(function(t){return t.containsInterval(i)})))return!1;i=n.pop()}return!0},t.getIntersection=function(e,n){return t.getIntersectionTemplate(e,n,e)},t.getIntersectionTemplate=function(t,e,n){var o=Math.max(t.start,e.start),i=Math.min(t.end,e.end);return o>i?null:n.makeByStartEnd(o,i)},t.getIntersectionNonNullLength=function(e,n){return t.getIntersectionNonNullLengthTemplate(e,n,e)},t.getIntersectionNonNullLengthTemplate=function(e,n,o){var i=t.getIntersectionTemplate(e,n,o);return i&&i.length?i:null},t.getIntersectionsTwoArraysOfInterval=function(e,n){return t.getIntersectionsTwoArraysOfIntervalTemplate(e,n,e[0])},t.getIntersectionsTwoArraysOfIntervalTemplate=function(e,n,o){for(var i=[],r=e.length,s=n.length,a=0,c=0,u=e[a],h=n[c],p=null;a<r&&c<s;){var l=t.getIntersectionTemplate(u,h,o);l&&(p&&p.end===l.start?p.length+=l.length:(p=l,i.push(p))),u.end<h.end?u=e[++a]:h=n[++c]}return i},t.getAffectedObjects=function(e,n,o,r){return void 0===o&&(o=function(t){return i.SearchUtils.normedInterpolationIndexOf(e,(function(t){return t.interval.start}),t)}),void 0===r&&(r=function(t,e,n){return t.start===n&&0===e}),t.getAffectedObjectsTemplate(e,n,n[0],o,r)},t.getAffectedObjectsTemplate=function(e,n,o,r,a){void 0===r&&(r=function(t){return i.SearchUtils.normedInterpolationIndexOf(e,(function(t){return t.interval.start}),t)}),void 0===a&&(a=function(t,e,n){return t.start===n&&0===e});for(var c=new s.SparseIntervalsCollector(o),u=0,h=n;u<h.length;u++)for(var p=h[u],l=Math.max(0,r(p.start,e)),d=void 0;d=e[l];l++){var f=d.interval;if(f.start>p.end)break;var y=t.getIntersectionTemplate(f,p,o);y&&(y.length||a(f,p.length,y.start))&&c.add(l)}return c.getIntervals()},t.handleAffectedObjects=function(e,n,o,s){void 0===s&&(s=function(t){return i.SearchUtils.normedInterpolationIndexOf(e,(function(t){return t.interval.start}),t)});for(var a=new r.FixedInterval(0,0),c=0,u=n;c<u.length;c++)for(var h=u[c],p=Math.max(0,s(h.start,e)),l=void 0;l=e[p];p++){var d=l.interval;if(d.start>h.end)break;var f=t.getIntersectionTemplate(d,h,a);f&&o(l,p,h,f)}},t.getMergedIntervals=function(e,n){return t.getMergedIntervalsTemplate(e,n,e[0])},t.getMergedIntervalsTemplate=function(t,e,n){if(t.length<2)return t.length>0?[n.makeByStartLength(t[0].start,t[0].length)]:[];for(var o=e?[].concat(t).sort((function(t,e){return t.start-e.start})):t,i=[],r=0,s=void 0;s=o[r];){var a=s.start,c=s.end;for(++r;void 0!==(s=o[r])&&s.start<=c;r++)s.end>c&&(c=s.end);i.push(n.makeByStartEnd(a,c))}return i},t.reflectIntervals=function(e,n){return t.reflectIntervalsTemplate(e,n,n)},t.reflectIntervalsTemplate=function(e,n,i){if(!e.length)return[i.makeByStartLength(n.start,n.length)];var r=o.ListUtils.last(e).end,s=o.ListUtils.reducedMap(e,(function(o,r){return t.getIntersectionNonNullLengthTemplate(i.makeByStartEnd(e[r-1].end,o.start),n,i)}),1);return n.start<e[0].start&&s.unshift(i.makeByStartEnd(n.start,e[0].start)),n.end>r&&s.push(i.makeByStartEnd(r,n.end)),s},t.reflectionOfPointOnInterval=function(t,e,n){return(t-e.start)/e.length*n.length+n.start},t}();e.IntervalAlgorithms=a},7814:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return Object.defineProperty(t.prototype,\"center\",{get:function(){return this.start+this.length/2},enumerable:!0,configurable:!0}),t.prototype.isNormalized=function(){return this.end>=this.start},t.prototype.isCollapsed=function(){return 0===this.length},t.prototype.equals=function(t){return this.start===t.start&&this.end===t.end},t.isCollapsed=function(t){return!t[1]&&t[0].isCollapsed()},t.prototype.containsInterval=function(t){return this.start<=t.start&&this.end>=t.end},t.prototype.containsIntervalWithoutEnd=function(t){return this.start<=t.start&&this.end>t.end},t.prototype.contains=function(t){return this.start<=t&&t<this.end},t.prototype.containsWithIntervalEnd=function(t){return this.start<=t&&t<=this.end},t.prototype.containsWithoutIntervalEndAndStart=function(t){return this.start<t&&t<this.end},t}();e.ConstInterval=n},8860:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(655),i=function(t){function e(e,n){var o=t.call(this)||this;return o.start=e,o.length=n,o}return o.__extends(e,t),Object.defineProperty(e.prototype,\"end\",{get:function(){return this.start+this.length},set:function(t){this.length=t-this.start},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"center\",{get:function(){return this.start+this.length/2},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(t){this.start=t.start,this.length=t.length},e.prototype.equals=function(t){return t&&this.start===t.start&&this.length===t.length},e.prototype.clone=function(){return new e(this.start,this.length)},e.prototype.makeByStartEnd=function(t,n){return new e(t,n-t)},e.prototype.makeByStartLength=function(t,n){return new e(t,n)},e.prototype.makeByLengthEnd=function(t,n){return new e(n-t,t)},e.fromPositions=function(t,n){return new e(t,n-t)},e.makeByConstInterval=function(t){return new e(t.start,t.length)},e.prototype.expand=function(t){var e=Math.max(t.end,this.end);return this.start=Math.min(t.start,this.start),this.end=e,this},e}(n(8678).MutableInterval);e.FixedInterval=i},8678:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(655),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o.__extends(e,t),e.prototype.normalizeLength=function(){return this.length<0&&(this.length=0),this},e}(n(7814).ConstInterval);e.MutableInterval=i},6102:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(448),i=function(){function t(t){this.intervals=[],this.template=t}return t.prototype.add=function(t){this.curr&&this.curr.end===t?this.curr.length++:(this.curr=this.template.makeByStartLength(t,1),this.intervals.push(this.curr))},t.prototype.getIntervals=function(){return new o.SparseIntervals(this.intervals)},t}();e.SparseIntervalsCollector=i},448:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(8094),i=n(510),r=function(){function t(t){void 0===t&&(t=[]),this.list=t,this._count=0,this._numIntervals=0;for(var e=0,n=t;e<n.length;e++){var o=n[e];this._count+=o.length,this._numIntervals++}}return Object.defineProperty(t.prototype,\"count\",{get:function(){return this._count},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"numIntervals\",{get:function(){return this._numIntervals},enumerable:!0,configurable:!0}),t.prototype.getInterval=function(t){return this.list[t]},t.prototype.getNativeIterator=function(){return new o.SparseIntervalsIterator(this)},t.prototype.getObjectsIterator=function(t){return new i.SparseObjectsIterator(this,t)},t}();e.SparseIntervals=r},8094:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t){this.sparseIntervals=t,this.intervalIndex=-1}return Object.defineProperty(t.prototype,\"isStarted\",{get:function(){return!!this.curr},enumerable:!0,configurable:!0}),t.prototype.moveNext=function(){return this.curr&&this.posInInterval+1<this.curr.length?(this.posInInterval++,this.index++,this.initObject(),!0):this.intervalIndex+1<this.sparseIntervals.numIntervals&&(this.intervalIndex++,this.curr=this.sparseIntervals.getInterval(this.intervalIndex),this.curr.length?(this.posInInterval=0,this.index=this.curr.start,this.initObject(),!0):this.moveNext())},t.prototype.movePrev=function(){return this.curr&&this.posInInterval-1>=this.curr.start?(this.posInInterval--,this.index--,this.initObject(),!0):(this.isStarted||(this.intervalIndex=this.sparseIntervals.numIntervals),this.intervalIndex-1>=0&&(this.intervalIndex--,this.curr=this.sparseIntervals.getInterval(this.intervalIndex),this.posInInterval=Math.max(this.curr.length-1,this.curr.start),this.index=this.curr.start,this.initObject(),!0))},t.prototype.initObject=function(){},t}();e.SparseIntervalsIterator=n},510:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(655),i=function(t){function e(e,n){var o=t.call(this,e)||this;return o.objects=n,o}return o.__extends(e,t),e.prototype.initObject=function(){this.obj=this.objects[this.index]},e}(n(8094).SparseIntervalsIterator);e.SparseObjectsIterator=i},6477:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(2674),i=n(4633),r=function(){function t(){}return t.normalizeToDataUrl=function(e,n){return t.checkPrependDataUrl(e)||(e=t.prependByDataUrl(e,n)),e},t.prependByDataUrl=function(t,e){return\"data:\"+e+\";base64,\"+t},t.checkPrependDataUrl=function(e){return t.dataUrl.test(e)},t.deleteDataUrlPrefix=function(e){return e.replace(t.dataUrl,\"\")},t.getUint8Array=function(t){for(var e=(t=atob(t)).length,n=new Uint8Array(e);e--;)n[e]=t.charCodeAt(e);return n},t.fromArrayBuffer=function(t){for(var e=[],n=new Uint8Array(t),o=n.byteLength,i=0;i<o;i++)e.push(String.fromCharCode(n[i]));return window.btoa(e.join(\"\"))},t.getFileFromBase64=function(e,n,i){void 0===n&&(n=\"\");var r=t.getUint8Array(e);return o.FileUtils.createFile([r],n,i)},t.getMimeTypeAsString=function(e){var n=e.match(t.dataUrl);return n?n[1]:null},t.getKnownMimeType=function(e){var n=e.match(t.dataUrl);return n?i.MimeTypeUtils.stringTypeToType(n[1]):i.DxMimeType.Unknown},t.fromBlobAsArrayBuffer=function(e,n){var o=new FileReader;o.onloadend=function(){return n(t.fromArrayBuffer(o.result))},o.readAsArrayBuffer(e)},t.fromBlobAsDataUrl=function(t,e){var n=new FileReader;n.onloadend=function(){return e(n.result)},n.readAsDataURL(t)},t.dataUrl=/^data:(.*?)(;(.*?))??(;base64)?,/,t}();e.Base64Utils=r},13:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(49),i=function(){function t(){}return t.getAlpha=function(t){return t>>24&255},t.getRed=function(t){return t>>16&255},t.getGreen=function(t){return t>>8&255},t.getBlue=function(t){return 255&t},t.redPartToString=function(e){var n=t.getRed(e).toString(16);return n.length>1?n:\"0\"+n},t.greenPartToString=function(e){var n=t.getGreen(e).toString(16);return n.length>1?n:\"0\"+n},t.bluePartToString=function(e){var n=t.getBlue(e).toString(16);return n.length>1?n:\"0\"+n},t.fromArgbNumber=function(t,e,n,o){return t<<24|e<<16|n<<8|o},t.fromRgbaString=function(t,e){void 0===e&&(e=255);var n=t.replace(/ +/g,\"\").match(/(rgba?)|(\\d+(\\.\\d+)?%?)|(\\.\\d+)/g);if(n&&n.length>3){for(var o=[],i=1,r=void 0;r=n[i];i++){var s=-1!==r.indexOf(\"%\")?Math.round(2.55*parseFloat(r)):parseInt(r);if(s<0||s>255)return null;o.push(s)}if(0===t.indexOf(\"rgba\")){if(isNaN(o[3])||o[3]<0||o[3]>1)return null;o[3]<=1&&(o[3]=Math.round(255*o[3]))}else if(o[3])return null;return(255&o[0])<<16|(255&o[1])<<8|255&o[2]|(255&(o.length>3?o[3]:e))<<24}return null},t.fromHashString=function(e,n){return void 0===n&&(n=255),t.isHashColorString(e)?(\"#\"===e.charAt(0)&&(e=e.substr(1)),3===e.length&&(e=o.StringUtils.repeat(e.charAt(0),2)+o.StringUtils.repeat(e.charAt(1),2)+o.StringUtils.repeat(e.charAt(2),2)),parseInt(e,16)|n<<24):null},t.fromColorName=function(e,n){void 0===n&&(n=255);var o=t.colorNames[e.toLowerCase()];return o?t.fromHashString(o,n):null},t.fromString=function(e,n){void 0===n&&(n=255);var o=t.fromRgbaString(e,n);if(null!==o)return o;var i=t.fromHashString(e,n);return null!==i?i:t.fromColorName(e,n)},t.colorToHash=function(e){return\"#\"+t.redPartToString(e)+t.greenPartToString(e)+t.bluePartToString(e)},t.stringToHash=function(t){var e=this.fromString(t);return null!==e?this.colorToHash(e):null},t.isHashColorString=function(t){return/^#?([0-9a-f]{6})$/i.test(t)||/^#?([0-9a-f]{3})$/i.test(t)},t.isKnownColorName=function(e){return!!t.colorNames[e.toLowerCase()]},t.isGray=function(e){var n=t.getRed(e);return n===t.getGreen(e)&&n===t.getBlue(e)},t.DARK_COLOR=-16777216,t.LIGHT_COLOR=-1,t.colorNames={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dodgerblue:\"#1e90ff\",feldspar:\"#d19275\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#00ff00\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslateblue:\"#8470ff\",lightslategray:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",violetred:\"#d02090\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\",windowtext:\"#000000\"},t}();e.ColorUtils=i},2491:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(49);e.isDefined=function(t){return null!=t},e.boolToInt=function(t){return t?1:0},e.boolToString=function(t){return t?\"1\":\"0\"},e.isNumber=function(t){return\"number\"==typeof t},e.isString=function(t){return\"string\"==typeof t},e.isNonNullString=function(t){return!!t},e.isEven=function(t){return t%2!=0},e.isOdd=function(t){return t%2==0},e.numberToStringBin=function(t,e){return void 0===e&&(e=0),o.StringUtils.padLeft(t.toString(2),e,\"0\")},e.numberToStringHex=function(t,e){return void 0===e&&(e=0),o.StringUtils.padLeft(t.toString(16),e,\"0\")}},4170:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.number=function(t,e){return t-e},t.string=function(t,e){return t===e?0:t>e?1:-1},t.stringIgnoreCase=function(t,e){return(t=t.toLowerCase())===(e=e.toLowerCase())?0:t>e?1:-1},t}();e.Comparers=n;var o=function(){function t(){}return t.simpleType=function(t,e){return t===e},t.object=function(t,e){return t&&e&&(t===e||t.equals(e))},t}();e.Equals=o},6907:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(9279),i=n(2491),r=n(8679),s=n(49),a=function(){function t(){}return t.clearInnerHtml=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},t.setStylePosition=function(t,e){t.left=r.MathUtils.round(e.x,3)+\"px\",t.top=r.MathUtils.round(e.y,3)+\"px\"},t.setStyleSize=function(t,e){t.width=r.MathUtils.round(e.width,3)+\"px\",t.height=r.MathUtils.round(e.height,3)+\"px\"},t.setStyleSizeAndPosition=function(e,n){t.setStylePosition(e,n),t.setStyleSize(e,n)},t.hideNode=function(t){if(t){var e=t.parentNode;e&&e.removeChild(t)}},t.isHTMLElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},t.isTextNode=function(t){return t.nodeType===Node.TEXT_NODE},t.isElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},t.isHTMLTableRowElement=function(t){return\"TR\"===t.tagName},t.isItParent=function(t,e){if(!t||!e)return!1;for(;e;){if(e===t)return!0;if(\"BODY\"===e.tagName)return!1;e=e.parentNode}return!1},t.getParentByTagName=function(t,e){for(e=e.toUpperCase();t;){if(\"BODY\"===t.tagName)return null;if(t.tagName===e)return t;t=t.parentNode}return null},t.getDocumentScrollTop=function(){var e=o.Browser.IE&&\"hidden\"===t.getCurrentStyle(document.body).overflow&&document.body.scrollTop>0;return o.Browser.WebKitFamily||o.Browser.Edge||e?o.Browser.MacOSMobilePlatform?window.pageYOffset:o.Browser.WebKitFamily&&document.documentElement.scrollTop||document.body.scrollTop:document.documentElement.scrollTop},t.getDocumentScrollLeft=function(){var e=o.Browser.IE&&\"hidden\"===t.getCurrentStyle(document.body).overflow&&document.body.scrollLeft>0;return o.Browser.Edge||e?document.body?document.body.scrollLeft:document.documentElement.scrollLeft:o.Browser.WebKitFamily?document.documentElement.scrollLeft||document.body.scrollLeft:document.documentElement.scrollLeft},t.getCurrentStyle=function(t){if(t.currentStyle)return t.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){var e=document.defaultView.getComputedStyle(t,null);if(!e&&o.Browser.Firefox&&window.frameElement){for(var n=[],r=window.frameElement;!(e=document.defaultView.getComputedStyle(t,null));)n.push([r,r.style.display]),r.style.setProperty(\"display\",\"block\",\"important\"),r=\"BODY\"===r.tagName?r.ownerDocument.defaultView.frameElement:r.parentNode;e=function(t){if(\"object\"!=typeof t||!i.isDefined(t))return t;var e={};for(var n in t)e[n]=t[n];return e}(e);for(var s=void 0,a=0;s=n[a];a++)s[0].style.display=s[1];document.body.offsetWidth}return e}return window.getComputedStyle(t,null)},t.setFocus=function(t){function e(){try{t.focus(),o.Browser.IE&&document.activeElement!==t&&t.focus()}catch(t){}}o.Browser.MacOSMobilePlatform?e():setTimeout((function(){e()}),100)},t.hasClassName=function(t,e){try{var n=e.split(\" \"),o=t.classList;if(o){for(var i=n.length-1;i>=0;i--)if(!o.contains(n[i]))return!1}else{var r=t.getAttribute&&t.getAttribute(\"class\");if(!r)return!1;var s=r.split(\" \");for(i=n.length-1;i>=0;i--)if(s.indexOf(n[i])<0)return!1}return!0}catch(t){return!1}},t.addClassName=function(e,n){if(!t.hasClassName(e,n)){var o=e.getAttribute&&e.getAttribute(\"class\");e.setAttribute(\"class\",\"\"===o?n:o+\" \"+n)}},t.removeClassName=function(t,e){var n=\" \"+(t.getAttribute&&t.getAttribute(\"class\"))+\" \",o=n.replace(\" \"+e+\" \",\" \");n.length!==o.length&&t.setAttribute(\"class\",s.StringUtils.trim(o))},t.toggleClassName=function(e,n,o){void 0===o?t.hasClassName(e,n)?t.removeClassName(e,n):t.addClassName(e,n):o?t.addClassName(e,n):t.removeClassName(e,n)},t.pxToInt=function(t){return c(t,parseInt)},t.pxToFloat=function(t){return c(t,parseFloat)},t.getAbsolutePositionY=function(e){function n(e){return Math.round(e.getBoundingClientRect().top+t.getDocumentScrollTop())}return e?o.Browser.IE?function(e){return o.Browser.IE&&null===e.parentNode?0:e.getBoundingClientRect().top+t.getDocumentScrollTop()}(e):o.Browser.Firefox&&o.Browser.Version>=3?n(e):o.Browser.Opera?function(e){var n=!0;e&&t.isHTMLTableRowElement(e)&&e.cells.length>0&&(e=e.cells[0]);for(var o=u(e,!1);null!=e;)o+=e.offsetTop,n||(o-=e.scrollTop),e=e.offsetParent,n=!1;return o+=document.body.scrollTop}(e):o.Browser.NetscapeFamily&&(!o.Browser.Firefox||o.Browser.Version<3)?function(e){for(var n=u(e,!1),i=!0;null!=e;){if(n+=e.offsetTop,i||null==e.offsetParent||(n-=e.scrollTop),!i&&o.Browser.Firefox){var r=t.getCurrentStyle(e);\"DIV\"===e.tagName&&\"visible\"!==r.overflow&&(n+=t.pxToInt(r.borderTopWidth))}i=!1,e=e.offsetParent}return n}(e):o.Browser.WebKitFamily||o.Browser.Edge?n(e):function(t){for(var e=0,n=!0;null!=t;)e+=t.offsetTop,n||null==t.offsetParent||(e-=t.scrollTop),n=!1,t=t.offsetParent;return e}(e):0},t.getAbsolutePositionX=function(e){function n(e){return Math.round(e.getBoundingClientRect().left+t.getDocumentScrollLeft())}return e?o.Browser.IE?function(e){return o.Browser.IE&&null===e.parentNode?0:e.getBoundingClientRect().left+t.getDocumentScrollLeft()}(e):o.Browser.Firefox&&o.Browser.Version>=3?n(e):o.Browser.Opera&&o.Browser.Version<=12?function(t){for(var e=!0,n=u(t,!0);null!=t;)n+=t.offsetLeft,e||(n-=t.scrollLeft),t=t.offsetParent,e=!1;return n+=document.body.scrollLeft}(e):o.Browser.NetscapeFamily&&(!o.Browser.Firefox||o.Browser.Version<3)?function(e){for(var n=u(e,!0),i=!0;null!=e;){if(n+=e.offsetLeft,i||null==e.offsetParent||(n-=e.scrollLeft),!i&&o.Browser.Firefox){var r=t.getCurrentStyle(e);\"DIV\"===e.tagName&&\"visible\"!==r.overflow&&(n+=t.pxToInt(r.borderLeftWidth))}i=!1,e=e.offsetParent}return n}(e):o.Browser.WebKitFamily||o.Browser.Edge?n(e):function(t){for(var e=0,n=!0;null!=t;)e+=t.offsetLeft,n||null==t.offsetParent||(e-=t.scrollLeft),n=!1,t=t.offsetParent;return e}(e):0},t.isInteractiveControl=function(t){return[\"A\",\"INPUT\",\"SELECT\",\"OPTION\",\"TEXTAREA\",\"BUTTON\",\"IFRAME\"].indexOf(t.tagName)>-1},t.getClearClientHeight=function(e){return e.offsetHeight-(t.getTopBottomPaddings(e)+t.getVerticalBordersWidth(e))},t.getTopBottomPaddings=function(e,n){var o=n||t.getCurrentStyle(e);return t.pxToInt(o.paddingTop)+t.pxToInt(o.paddingBottom)},t.getVerticalBordersWidth=function(e,n){i.isDefined(n)||(n=o.Browser.IE&&9!==o.Browser.MajorVersion&&window.getComputedStyle?window.getComputedStyle(e):t.getCurrentStyle(e));var r=0;return\"none\"!==n.borderTopStyle&&(r+=t.pxToFloat(n.borderTopWidth)),\"none\"!==n.borderBottomStyle&&(r+=t.pxToFloat(n.borderBottomWidth)),r},t.getNodes=function(t,e){for(var n=t.all||t.getElementsByTagName(\"*\"),o=[],i=0;i<n.length;i++){var r=n[i];e(r)&&o.push(r)}return o},t.getChildNodes=function(t,e){for(var n=t.childNodes,o=[],i=0;i<n.length;i++){var r=n[i];e(r)&&o.push(r)}return o},t.getNodesByClassName=function(e,n){if(e.querySelectorAll){var o=e.querySelectorAll(\".\"+n),i=[];return o.forEach((function(t){return i.push(t)})),i}return t.getNodes(e,(function(e){return t.hasClassName(e,n)}))},t.getChildNodesByClassName=function(e,n){return e.querySelectorAll?function(t,e){for(var n=[],o=0;o<t.length;o++){var i=t[o];e(i)&&n.push(i)}return n}(e.querySelectorAll(\".\"+n),(function(t){return t.parentNode===e})):t.getChildNodes(e,(function(e){return!!t.isElementNode(e)&&(i.isNonNullString(e.className)&&t.hasClassName(e,e.className))}))},t.getVerticalScrollBarWidth=function(){if(void 0===t.verticalScrollBarWidth){var e=document.createElement(\"DIV\");e.style.cssText=\"position: absolute; top: 0px; left: 0px; visibility: hidden; width: 200px; height: 150px; overflow: hidden; box-sizing: content-box\",document.body.appendChild(e);var n=document.createElement(\"P\");e.appendChild(n),n.style.cssText=\"width: 100%; height: 200px;\";var o=n.offsetWidth;e.style.overflow=\"scroll\";var i=n.offsetWidth;o===i&&(i=e.clientWidth),t.verticalScrollBarWidth=o-i,document.body.removeChild(e)}return t.verticalScrollBarWidth},t.getHorizontalBordersWidth=function(e,n){i.isDefined(n)||(n=o.Browser.IE&&window.getComputedStyle?window.getComputedStyle(e):t.getCurrentStyle(e));var r=0;return\"none\"!==n.borderLeftStyle&&(r+=t.pxToFloat(n.borderLeftWidth)),\"none\"!==n.borderRightStyle&&(r+=t.pxToFloat(n.borderRightWidth)),r},t.getFontFamiliesFromCssString=function(t){return t.split(\",\").map((function(t){return s.StringUtils.trim(t.replace(/'|\"/gi,\"\"))}))},t.getInnerText=function(e){if(o.Browser.Safari&&o.Browser.MajorVersion<=5){null===t.html2PlainTextFilter&&(t.html2PlainTextFilter=document.createElement(\"DIV\"),t.html2PlainTextFilter.style.width=\"0\",t.html2PlainTextFilter.style.height=\"0\",t.html2PlainTextFilter.style.overflow=\"visible\",t.html2PlainTextFilter.style.display=\"none\",document.body.appendChild(t.html2PlainTextFilter));var n=t.html2PlainTextFilter;n.innerHTML=e.innerHTML,n.style.display=\"\";var i=n.innerText;return n.style.display=\"none\",i}return o.Browser.NetscapeFamily||o.Browser.WebKitFamily||o.Browser.IE&&o.Browser.Version>=9||o.Browser.Edge?e.textContent:e.innerText},t.html2PlainTextFilter=null,t.verticalScrollBarWidth=void 0,t}();function c(t,e){var n=0;if(i.isDefined(t)&&\"\"!==t)try{var o=t.indexOf(\"px\");o>-1&&(n=e(t.substr(0,o)))}catch(t){}return n}function u(t,e){for(var n=0,o=!0;null!=t&&\"BODY\"!==t.tagName;){var i=a.getCurrentStyle(t);if(\"absolute\"===i.position)break;o||\"DIV\"!==t.tagName||\"\"!==i.position&&\"static\"!==i.position||(n-=e?t.scrollLeft:t.scrollTop),t=t.parentNode,o=!1}return n}e.DomUtils=a},9712:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.encodeHtml=function(t){return t.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")},t.decodeHtml=function(t){return t.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")},t.prepareTextForRequest=function(t){return t.replace(/%/g,\"%25\").replace(/&/g,\"%26amp;\").replace(/\\+/g,\"%2B\").replace(/</g,\"%26lt;\").replace(/>/g,\"%26gt;\").replace(/\"/g,\"%26quot;\")},t.prepareTextForCallBackRequest=function(t){return t.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/\"/g,\""\")},t.decodeViaTextArea=function(t){var e=document.createElement(\"TEXTAREA\");return e.innerHTML=t,e.value},t}();e.EncodeUtils=n},3714:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(9279),i=n(2491),r=n(6907),s=n(1632),a=function(){function t(){}return t.preventEvent=function(t){t.cancelable&&(t.preventDefault?t.preventDefault():t.returnValue=!1)},t.getEventSource=function(e){return i.isDefined(e)?t.getEventSourceCore(e):null},t.getEventSourceByPosition=function(e){if(!i.isDefined(e))return null;if(!document.elementFromPoint)return t.getEventSourceCore(e);var n=t.getEventX(e)-(t.clientEventRequiresDocScrollCorrection()?r.DomUtils.getDocumentScrollLeft():0),o=t.getEventY(e)-(t.clientEventRequiresDocScrollCorrection()?r.DomUtils.getDocumentScrollTop():0);return void 0===n||void 0===o?t.getEventSourceCore(e):document.elementFromPoint(n,o)},t.getEventSourceCore=function(t){return t.srcElement?t.srcElement:t.target},t.getMouseWheelEventName=function(){return o.Browser.Safari?\"mousewheel\":o.Browser.NetscapeFamily&&o.Browser.MajorVersion<17?\"DOMMouseScroll\":\"wheel\"},t.isLeftButtonPressed=function(e){return!!s.TouchUtils.isTouchEvent(e)||!!(e=o.Browser.IE&&i.isDefined(event)?event:e)&&(o.Browser.IE&&o.Browser.Version<11?!!o.Browser.MSTouchUI||e.button%2==1:o.Browser.WebKitFamily?\"pointermove\"===e.type||\"pointerenter\"===e.type||\"pointerleave\"===e.type?1===e.buttons:1===e.which:o.Browser.NetscapeFamily||o.Browser.Edge||o.Browser.IE&&o.Browser.Version>=11?t.isMoveEventName(e.type)?1===e.buttons:1===e.which:!o.Browser.Opera||0===e.button)},t.isMoveEventName=function(e){return e===s.TouchUtils.touchMouseMoveEventName||e===t.getMoveEventName()},t.getMoveEventName=function(){return window.PointerEvent?\"pointermove\":o.Browser.TouchUI?\"touchmove\":\"mousemove\"},t.preventEventAndBubble=function(e){t.preventEvent(e),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},t.clientEventRequiresDocScrollCorrection=function(){var t=o.Browser.Safari&&o.Browser.Version<3,e=o.Browser.MacOSMobilePlatform&&o.Browser.Version<5.1;return o.Browser.AndroidDefaultBrowser||o.Browser.AndroidChromeBrowser||!(t||e)},t.getEventX=function(e){return s.TouchUtils.isTouchEvent(e)?s.TouchUtils.getEventX(e):e.clientX+(t.clientEventRequiresDocScrollCorrection()?r.DomUtils.getDocumentScrollLeft():0)},t.getEventY=function(e){return s.TouchUtils.isTouchEvent(e)?s.TouchUtils.getEventY(e):e.clientY+(t.clientEventRequiresDocScrollCorrection()?r.DomUtils.getDocumentScrollTop():0)},t.cancelBubble=function(t){t.cancelBubble=!0},t.getWheelDelta=function(t){var e;return e=o.Browser.NetscapeFamily&&o.Browser.MajorVersion<17?-t.detail:o.Browser.Safari?t.wheelDelta:-t.deltaY,o.Browser.Opera&&o.Browser.Version<9&&(e=-e),e},t}();e.EvtUtils=a},2674:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(9279),i=n(6477),r=n(2491),s=function(){function t(){}return t.loadJavascriptFile=function(t,e){var n,o=document.getElementsByTagName(\"head\")[0];if(!o){o=document.createElement(\"head\");var i=document.getElementsByTagName(\"body\")[0];null===(n=i.parentNode)||void 0===n||n.insertBefore(o,i)}var r=document.createElement(\"script\");return r.onload=e,r.src=t,o.appendChild(r),{htmlScriptElement:r}},t.startDownloadFileLocal=function(t,e){if(t instanceof ArrayBuffer&&(t=i.Base64Utils.fromArrayBuffer(t)),r.isString(t)&&(t=i.Base64Utils.getFileFromBase64(t)),window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(t,e);else{var n=document.createElement(\"a\"),o=URL.createObjectURL(t);n.href=o,n.download=e,document.body.appendChild(n),n.click(),setTimeout((function(){document.body.removeChild(n),window.URL.revokeObjectURL(o)}),0)}},t.createFile=function(t,e,n){var i;if(o.Browser.IE||o.Browser.Edge&&o.Browser.MajorVersion<86){var r=new Blob(t,n);return r.lastModifiedDate=null!==(i=null==n?void 0:n.lastModified)&&void 0!==i?i:Date.now(),r.name=e,r}return new File(t,e,n)},t.isFile=function(t){return o.Browser.IE||o.Browser.Edge&&o.Browser.MajorVersion<86?t instanceof File||t instanceof Blob&&r.isDefined(t.name):t instanceof File},t}();e.FileUtils=s},2153:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o,i,r=n(9279),s=n(9712),a=n(49),c=function(){function t(){}return t.getKeyModifiers=function(t){var e=0;return t.altKey&&(e|=o.Alt),t.ctrlKey&&(e|=o.Ctrl),t.shiftKey&&(e|=o.Shift),t.metaKey&&(e|=o.Meta),e},t.getShortcutCode=function(t,e,n,i,r){var s=t;return s|=e?o.Ctrl:0,s|=n?o.Shift:0,s|=i?o.Alt:0,s|=r?o.Meta:0},t.getShortcutCodeByEvent=function(e){return t.getShortcutCode(t.getEventKeyCode(e),e.ctrlKey,e.shiftKey,e.altKey,!!r.Browser.MacOSPlatform&&e.metaKey)},t.getEventKeyCode=function(t){return r.Browser.NetscapeFamily||r.Browser.Opera?t.which:t.keyCode},t.parseShortcutString=function(e){if(!e)return 0;var n=!1,o=!1,r=!1,c=!1,u=null,h=e.toString().split(\"+\");if(h.length>0)for(var p=0;p<h.length;p++){var l=a.StringUtils.trim(h[p].toUpperCase());switch(l){case\"CONTROL\":case\"CONTROLKEY\":case\"CTRL\":n=!0;break;case\"SHIFT\":case\"SHIFTKEY\":o=!0;break;case\"ALT\":r=!0;break;case\"CMD\":c=!0;break;case\"F1\":u=i.F1;break;case\"F2\":u=i.F2;break;case\"F3\":u=i.F3;break;case\"F4\":u=i.F4;break;case\"F5\":u=i.F5;break;case\"F6\":u=i.F6;break;case\"F7\":u=i.F7;break;case\"F8\":u=i.F8;break;case\"F9\":u=i.F9;break;case\"F10\":u=i.F10;break;case\"F11\":u=i.F11;break;case\"F12\":u=i.F12;break;case\"RETURN\":case\"ENTER\":u=i.Enter;break;case\"HOME\":u=i.Home;break;case\"END\":u=i.End;break;case\"LEFT\":u=i.Left;break;case\"RIGHT\":u=i.Right;break;case\"UP\":u=i.Up;break;case\"DOWN\":u=i.Down;break;case\"PAGEUP\":u=i.PageUp;break;case\"PAGEDOWN\":u=i.PageDown;break;case\"SPACE\":u=i.Space;break;case\"TAB\":u=i.Tab;break;case\"BACKSPACE\":case\"BACK\":u=i.Backspace;break;case\"CONTEXT\":u=i.ContextMenu;break;case\"ESCAPE\":case\"ESC\":u=i.Esc;break;case\"DELETE\":case\"DEL\":u=i.Delete;break;case\"INSERT\":case\"INS\":u=i.Insert;break;case\"PLUS\":u=\"+\".charCodeAt(0);break;default:u=l.charCodeAt(0)}}else alert(s.EncodeUtils.decodeViaTextArea(\"Invalid shortcut\"));return t.getShortcutCode(u,n,o,r,c)},t}();e.KeyUtils=c,function(t){t[t.None=0]=\"None\",t[t.Ctrl=65536]=\"Ctrl\",t[t.Shift=262144]=\"Shift\",t[t.Alt=1048576]=\"Alt\",t[t.Meta=16777216]=\"Meta\"}(o=e.ModifierKey||(e.ModifierKey={})),function(t){t[t.Backspace=8]=\"Backspace\",t[t.Tab=9]=\"Tab\",t[t.Enter=13]=\"Enter\",t[t.Pause=19]=\"Pause\",t[t.CapsLock=20]=\"CapsLock\",t[t.Esc=27]=\"Esc\",t[t.Space=32]=\"Space\",t[t.PageUp=33]=\"PageUp\",t[t.PageDown=34]=\"PageDown\",t[t.End=35]=\"End\",t[t.Home=36]=\"Home\",t[t.Left=37]=\"Left\",t[t.Up=38]=\"Up\",t[t.Right=39]=\"Right\",t[t.Down=40]=\"Down\",t[t.Insert=45]=\"Insert\",t[t.Delete=46]=\"Delete\",t[t.Key_0=48]=\"Key_0\",t[t.Key_1=49]=\"Key_1\",t[t.Key_2=50]=\"Key_2\",t[t.Key_3=51]=\"Key_3\",t[t.Key_4=52]=\"Key_4\",t[t.Key_5=53]=\"Key_5\",t[t.Key_6=54]=\"Key_6\",t[t.Key_7=55]=\"Key_7\",t[t.Key_8=56]=\"Key_8\",t[t.Key_9=57]=\"Key_9\",t[t.Key_a=65]=\"Key_a\",t[t.Key_b=66]=\"Key_b\",t[t.Key_c=67]=\"Key_c\",t[t.Key_d=68]=\"Key_d\",t[t.Key_e=69]=\"Key_e\",t[t.Key_f=70]=\"Key_f\",t[t.Key_g=71]=\"Key_g\",t[t.Key_h=72]=\"Key_h\",t[t.Key_i=73]=\"Key_i\",t[t.Key_j=74]=\"Key_j\",t[t.Key_k=75]=\"Key_k\",t[t.Key_l=76]=\"Key_l\",t[t.Key_m=77]=\"Key_m\",t[t.Key_n=78]=\"Key_n\",t[t.Key_o=79]=\"Key_o\",t[t.Key_p=80]=\"Key_p\",t[t.Key_q=81]=\"Key_q\",t[t.Key_r=82]=\"Key_r\",t[t.Key_s=83]=\"Key_s\",t[t.Key_t=84]=\"Key_t\",t[t.Key_u=85]=\"Key_u\",t[t.Key_v=86]=\"Key_v\",t[t.Key_w=87]=\"Key_w\",t[t.Key_x=88]=\"Key_x\",t[t.Key_y=89]=\"Key_y\",t[t.Key_z=90]=\"Key_z\",t[t.Windows=91]=\"Windows\",t[t.ContextMenu=93]=\"ContextMenu\",t[t.Numpad_0=96]=\"Numpad_0\",t[t.Numpad_1=97]=\"Numpad_1\",t[t.Numpad_2=98]=\"Numpad_2\",t[t.Numpad_3=99]=\"Numpad_3\",t[t.Numpad_4=100]=\"Numpad_4\",t[t.Numpad_5=101]=\"Numpad_5\",t[t.Numpad_6=102]=\"Numpad_6\",t[t.Numpad_7=103]=\"Numpad_7\",t[t.Numpad_8=104]=\"Numpad_8\",t[t.Numpad_9=105]=\"Numpad_9\",t[t.Multiply=106]=\"Multiply\",t[t.Add=107]=\"Add\",t[t.Subtract=109]=\"Subtract\",t[t.Decimal=110]=\"Decimal\",t[t.Divide=111]=\"Divide\",t[t.F1=112]=\"F1\",t[t.F2=113]=\"F2\",t[t.F3=114]=\"F3\",t[t.F4=115]=\"F4\",t[t.F5=116]=\"F5\",t[t.F6=117]=\"F6\",t[t.F7=118]=\"F7\",t[t.F8=119]=\"F8\",t[t.F9=120]=\"F9\",t[t.F10=121]=\"F10\",t[t.F11=122]=\"F11\",t[t.F12=123]=\"F12\",t[t.NumLock=144]=\"NumLock\",t[t.ScrollLock=145]=\"ScrollLock\",t[t.Semicolon=186]=\"Semicolon\",t[t.Equals=187]=\"Equals\",t[t.Comma=188]=\"Comma\",t[t.Dash=189]=\"Dash\",t[t.Period=190]=\"Period\",t[t.ForwardSlash=191]=\"ForwardSlash\",t[t.GraveAccent=192]=\"GraveAccent\",t[t.OpenBracket=219]=\"OpenBracket\",t[t.BackSlash=220]=\"BackSlash\",t[t.CloseBracket=221]=\"CloseBracket\",t[t.SingleQuote=222]=\"SingleQuote\"}(i=e.KeyCode||(e.KeyCode={}))},2940:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(6799),i=n(4170),r=function(){function t(){}return t.remove=function(t,e){var n=t.indexOf(e,0);n>=0&&t.splice(n,1)},t.removeBy=function(t,e){for(var n=t.length,o=0;o<n;o++)if(e(t[o],o))return t.splice(o,1)[0];return null},t.shallowCopy=function(t){return t.slice()},t.deepCopy=function(e){return t.map(e,(function(t){return t.clone()}))},t.initByValue=function(t,e){for(var n=[];t>0;t--)n.push(e);return n},t.initByCallback=function(t,e){for(var n=[],o=0;o<t;o++)n.push(e(o));return n},t.forEachOnInterval=function(t,e){for(var n=t.end,o=t.start;o<n;o++)e(o)},t.reverseForEachOnInterval=function(t,e){for(var n=t.start,o=t.end-1;o>=n;o--)e(o)},t.reducedMap=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=[],r=n;r<o;r++){var s=e(t[r],r);null!==s&&i.push(s)}return i},t.filter=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=[],r=n;r<o;r++){var s=t[r];e(s,r)&&i.push(s)}return i},t.map=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=[],r=n;r<o;r++)i.push(e(t[r],r));return i},t.indexBy=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=n;i<o;i++)if(e(t[i],i))return i;return-1},t.reverseIndexBy=function(t,e,n,o){void 0===n&&(n=t.length-1),void 0===o&&(o=0);for(var i=n;i>=o;i--)if(e(t[i],i))return i;return-1},t.elementBy=function(e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=e.length);var r=t.indexBy(e,n,o,i);return r<0?null:e[r]},t.reverseElementBy=function(e,n,o,i){void 0===o&&(o=e.length-1),void 0===i&&(i=0);var r=t.reverseIndexBy(e,n,o,i);return r<0?null:e[r]},t.last=function(t){return t[t.length-1]},t.setLast=function(t,e){return t[t.length-1]=e},t.incLast=function(t){return++t[t.length-1]},t.decLast=function(t){return--t[t.length-1]},t.equals=function(e,n){return e.length===n.length&&t.allOf2(e,n,(function(t,e){return t.equals(e)}))},t.equalsByReference=function(t,e){var n=t.length;if(n!==t.length)return!1;for(var o=0;o<n;o++)if(t[o]!==e[o])return!1;return!0},t.unique=function(e,n,o,i){void 0===o&&(o=n),void 0===i&&(i=function(){});var r=e.length;if(0===r)return[];var s=(e=e.sort(n))[0],a=t.reducedMap(e,(function(t){return 0!==o(s,t)?(s=t,t):(i(t),null)}),1,r);return a.unshift(e[0]),a},t.uniqueNumber=function(t){t=t.sort(i.Comparers.number);for(var e=Number.NaN,n=t.length-1;n>=0;n--)e===t[n]?t.splice(n,1):e=t[n];return t},t.forEach=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=n;i<o;i++)e(t[i],i)},t.forEach2=function(t,e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=t.length);for(var r=o;r<i;r++)n(t[r],e[r],r)},t.reverseForEach=function(t,e,n,o){void 0===n&&(n=t.length-1),void 0===o&&(o=0);for(var i=n;i>=o;i--)e(t[i],i)},t.reverseIndexOf=function(t,e,n,o){void 0===n&&(n=t.length-1),void 0===o&&(o=0);for(var i=n;i>=o;i--)if(t[i]===e)return i;return-1},t.accumulate=function(t,e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=t.length);for(var r=e,s=o;s<i;s++)r=n(r,t[s],s);return r},t.accumulateNumber=function(t,e,n,o,i){void 0===n&&(n=0),void 0===o&&(o=0),void 0===i&&(i=t.length);for(var r=n,s=o;s<i;s++)r+=e(t[s],s,r);return r},t.anyOf=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=n;i<o;i++)if(e(t[i],i))return!0;return!1},t.unsafeAnyOf=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=n;i<o;i++){var r=e(t[i],i);if(r)return r}return null},t.reverseAnyOf=function(t,e,n,o){void 0===n&&(n=t.length-1),void 0===o&&(o=0);for(var i=n;i>=o;i--)if(e(t[i],i))return!0;return!1},t.unsafeReverseAnyOf=function(t,e,n,o){void 0===n&&(n=t.length-1),void 0===o&&(o=0);for(var i=n;i>=o;i--){var r=e(t[i],i);if(r)return r}return null},t.anyOf2=function(t,e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=t.length);for(var r=o;r<i;r++)if(n(t[r],e[r],r))return!0;return!1},t.allOf=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=t.length);for(var i=n;i<o;i++)if(!e(t[i],i))return!1;return!0},t.allOf2=function(t,e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=t.length);for(var r=o;r<i;r++)if(!n(t[r],e[r],r))return!1;return!0},t.allOfOnInterval=function(t,e){for(var n=t.end,o=t.start;o<n;o++)if(!e(o))return!1;return!0},t.addListOnTail=function(t,e){for(var n=0,o=void 0;o=e[n];n++)t.push(o);return t},t.joinLists=function(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return t.accumulate(n,[],(function(n,o){return t.addListOnTail(n,e(o)),n}))},t.push=function(t,e){return t.push(e),t},t.countIf=function(e,n){return t.accumulateNumber(e,(function(t,e){return n(t,e)?1:0}))},t.clear=function(t){t.splice(0)},t.merge=function(t,e,n,o,i,r){if(void 0===i&&(i=0),void 0===r&&(r=t.length),t=t.slice(i,r),r-i<2)return t;for(var s=(t=t.sort(e))[i],a=[s],c=i+1;c<r;c++){var u=t[c];n(s,u)?o(s,u):(s=u,a.push(s))}return a},t.min=function(e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=e.length);var r=t.minExtended(e,n,o,i);return r?r.minElement:null},t.max=function(e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=e.length);var r=t.maxExtended(e,n,o,i);return r?r.maxElement:null},t.minMax=function(e,n,i,r){void 0===i&&(i=0),void 0===r&&(r=e.length);var s=t.minMaxExtended(e,n,i,r);return s?new o.MinMax(s.minElement,s.maxElement):null},t.minExtended=function(t,e,n,i){if(void 0===n&&(n=0),void 0===i&&(i=t.length),0===t.length)return null;for(var r=t[n],s=e(r),a=n+1;a<i;a++){var c=t[a],u=e(c);u<s&&(s=u,r=c)}return new o.ExtendedMin(r,s)},t.maxExtended=function(t,e,n,i){if(void 0===n&&(n=0),void 0===i&&(i=t.length),0===t.length)return null;for(var r=t[n],s=e(r),a=n+1;a<i;a++){var c=t[a],u=e(c);u>s&&(s=u,r=c)}return new o.ExtendedMax(r,s)},t.minMaxExtended=function(t,e,n,i){if(void 0===n&&(n=0),void 0===i&&(i=t.length),0===t.length)return null;for(var r=t[n],s=r,a=e(r),c=a,u=n+1;u<i;u++){var h=t[u],p=e(h);p<a?(a=p,r=h):p>c&&(c=p,s=h)}return new o.ExtendedMinMax(r,a,s,c)},t.minByCmp=function(t,e,n,o){if(void 0===n&&(n=0),void 0===o&&(o=t.length),0===t.length)return null;for(var i=t[n],r=n+1;r<o;r++){var s=t[r];e(s,i)<0&&(i=s)}return i},t.maxByCmp=function(t,e,n,o){if(void 0===n&&(n=0),void 0===o&&(o=t.length),0===t.length)return null;for(var i=t[n],r=n+1;r<o;r++){var s=t[r];e(s,i)>0&&(i=s)}return i},t.minMaxByCmp=function(t,e,n,i){if(void 0===n&&(n=0),void 0===i&&(i=t.length),0===t.length)return null;for(var r=t[n],s=r,a=n+1;a<i;a++){var c=t[a],u=e(c,r);u>0?s=c:u<0&&(r=c)}return new o.MinMax(r,s)},t}();e.ListUtils=r},8679:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(2940),i=function(){function t(){}return t.round=function(e,n){void 0===n&&(n=0);var o=t.powFactor[n];return Math.round(e*o)/o},t.numberCloseTo=function(t,e,n){return void 0===n&&(n=1e-5),Math.abs(t-e)<n},t.restrictValue=function(t,e,n){return n<e&&(n=e),t>n?n:t<e?e:t},t.getRandomInt=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},t.generateGuid=function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return(\"x\"===t?e:3&e|8).toString(16)}))},t.powFactor=o.ListUtils.initByCallback(20,(function(t){return Math.pow(10,t)})),t.somePrimes=[1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003],t}();e.MathUtils=i},4633:(t,e)=>{var n,o,i,r;Object.defineProperty(e,\"__esModule\",{value:!0}),e.OpenXmlMimeType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",e.RtfMimeType=\"application/rtf\",e.PlainTextMimeType=\"text/plain\",e.DocmMimeType=\"application/vnd.ms-word.document.macroEnabled.12\",e.ImagePngMimeType=\"image/png\",e.ImageGifMimeType=\"image/gif\",e.ImageJpegMimeType=\"image/jpeg\",e.ImagePjpegMimeType=\"image/pjpeg\",e.ImageSvgMimeType=\"image/svg+xml\",e.ImageTiffMimeType=\"image/tiff\",e.ImageIcoMimeType=\"image/vnd.microsoft.icon\",e.ImageWbmpMimeType=\"image/vnd.wap.wbmp\",e.ImageWebpMimeType=\"image/webp\",function(t){t[t.Unknown=0]=\"Unknown\",t[t.OpenXml=1]=\"OpenXml\",t[t.Rtf=2]=\"Rtf\",t[t.PlainText=3]=\"PlainText\",t[t.Docm=4]=\"Docm\",t[t.Png=5]=\"Png\",t[t.Gif=6]=\"Gif\",t[t.Jpeg=7]=\"Jpeg\",t[t.Pjpeg=8]=\"Pjpeg\",t[t.Svg=9]=\"Svg\",t[t.Tiff=10]=\"Tiff\",t[t.Ico=11]=\"Ico\",t[t.Wbmp=12]=\"Wbmp\",t[t.Webp=13]=\"Webp\"}(r=e.DxMimeType||(e.DxMimeType={}));var s=function(){function t(){}return t.stringTypeToExtension=function(e){var n=t.stringTypeToTypeMap[e];return void 0===n?\"\":t.typeToExtensionMap[n]},t.typeToExtension=function(e){var n=t.typeToExtensionMap[e];return null!=n?n:\"\"},t.extensionToType=function(e){\".\"!==(e=e.toLowerCase())[0]&&(e+=\".\");var n=t.extensionToTypeMap[e];return null!=n?n:r.Unknown},t.typeToStringType=function(e){var n=t.typeToStringTypeMap[e];return null!=n?n:\"\"},t.stringTypeToType=function(e){var n=t.stringTypeToTypeMap[e];return void 0===n?r.Unknown:n},t.stringTypeToTypeMap=((n={})[e.OpenXmlMimeType]=r.OpenXml,n[e.RtfMimeType]=r.Rtf,n[e.PlainTextMimeType]=r.PlainText,n[e.DocmMimeType]=r.Docm,n[e.ImagePngMimeType]=r.Png,n[e.ImageGifMimeType]=r.Gif,n[e.ImageJpegMimeType]=r.Jpeg,n[e.ImagePjpegMimeType]=r.Pjpeg,n[e.ImageSvgMimeType]=r.Svg,n[e.ImageTiffMimeType]=r.Tiff,n[e.ImageIcoMimeType]=r.Ico,n[e.ImageWbmpMimeType]=r.Wbmp,n[e.ImageWebpMimeType]=r.Webp,n),t.typeToStringTypeMap=((o={})[r.Unknown]=void 0,o[r.OpenXml]=e.OpenXmlMimeType,o[r.Rtf]=e.RtfMimeType,o[r.PlainText]=e.PlainTextMimeType,o[r.Docm]=e.DocmMimeType,o[r.Png]=e.ImagePngMimeType,o[r.Gif]=e.ImageGifMimeType,o[r.Jpeg]=e.ImageJpegMimeType,o[r.Pjpeg]=e.ImagePjpegMimeType,o[r.Svg]=e.ImageSvgMimeType,o[r.Tiff]=e.ImageTiffMimeType,o[r.Ico]=e.ImageIcoMimeType,o[r.Wbmp]=e.ImageWbmpMimeType,o[r.Webp]=e.ImageWebpMimeType,o),t.typeToExtensionMap=((i={})[r.Unknown]=void 0,i[r.OpenXml]=\".docx\",i[r.Rtf]=\".rtf\",i[r.PlainText]=\".txt\",i[r.Docm]=\".docm\",i[r.Png]=\".png\",i[r.Gif]=\".gif\",i[r.Jpeg]=\".jpeg\",i[r.Pjpeg]=\".pjpeg\",i[r.Svg]=\".svg\",i[r.Tiff]=\".tiff\",i[r.Ico]=\".ico\",i[r.Wbmp]=\".wbmp\",i[r.Webp]=\".webp\",i),t.extensionToTypeMap={\".docx\":r.OpenXml,\".rtf\":r.Rtf,\".txt\":r.PlainText,\".docm\":r.Docm,\".png\":r.Png,\".gif\":r.Gif,\".jpeg\":r.Jpeg,\".pjpeg\":r.Pjpeg,\".svg\":r.Svg,\".tiff\":r.Tiff,\".ico\":r.Ico,\".wbmp\":r.Wbmp,\".webp\":r.Webp},t}();e.MimeTypeUtils=s},2400:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.binaryIndexOf=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=-2);var i=0===n;for(-2===o&&(o=t.length-1);n<=o;){var r=n+(o-n>>1),s=e(t[r]);if(s<0)n=r+1;else{if(!(s>0))return r;o=r-1}}return i?~n:-1},t.normedBinaryIndexOf=function(e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=-2);var r=t.binaryIndexOf(e,n,o,i);return t.binaryIndexNormalizator(r)},t.binaryIndexNormalizator=function(t){return t<0?~t-1:t},t.normedInterpolationIndexOf=function(t,e,n,o,i){void 0===o&&(o=0),void 0===i&&(i=-2),-2===i&&(i=t.length-1);var r=t[Math.min(o,i)];if(void 0===r||n<e(r))return-1;for(var s=e(t[o]),a=e(t[i]);;){if(!(n>s&&n<a))return n===s?o:i;var c=o+Math.floor((n-s)*(i-o)/(a-s)),u=e(t[c]);if(n>u){if(n<(s=e(t[o=c+1])))return c}else{if(!(n<u))return c;a=e(t[i=c-1])}}},t}();e.SearchUtils=n},49:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(){}return t.isAlpha=function(t){return t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\"},t.isDigit=function(t){return t>=\"0\"&&t<=\"9\"},t.stringHashCode=function(t){var e=0;if(0===t.length)return e;for(var n=t.length,o=0;o<n;o++)e=(e<<5)-e+t.charCodeAt(o),e|=0;return e},t.endsAt=function(t,e){var n=t.length-1,o=e.length-1,i=n-o;if(i<0)return!1;for(;n>=i;n--,o--)if(t[n]!==e[o])return!1;return!0},t.startsAt=function(t,e){return t.substr(0,e.length)===e},t.stringInLowerCase=function(t){return t.toLowerCase()===t},t.stringInUpperCase=function(t){return t.toUpperCase()===t},t.atLeastOneSymbolInUpperCase=function(e){for(var n=0,o=void 0;o=e[n];n++)if(t.stringInUpperCase(o)&&!t.stringInLowerCase(o))return!0;return!1},t.getSymbolFromEnd=function(t,e){return t[t.length-e]},t.trim=function(e,n){if(void 0===n)return t.trimInternal(e,!0,!0);var o=n.join(\"\");return e.replace(new RegExp(\"(^[\"+o+\"]*)|([\"+o+\"]*$)\",\"g\"),\"\")},t.trimStart=function(e,n){if(void 0===n)return t.trimInternal(e,!0,!1);var o=n.join(\"\");return e.replace(new RegExp(\"^[\"+o+\"]*\",\"g\"),\"\")},t.trimEnd=function(e,n){if(void 0===n)return t.trimInternal(e,!1,!0);var o=n.join(\"\");return e.replace(new RegExp(\"[\"+o+\"]*$\",\"g\"),\"\")},t.getDecimalSeparator=function(){return 1.1.toLocaleString().substr(1,1)},t.repeat=function(t,e){return new Array(e<=0?0:e+1).join(t)},t.isNullOrEmpty=function(t){return!t||!t.length},t.padLeft=function(e,n,o){return t.repeat(o,Math.max(0,n-e.length))+e},t.trimInternal=function(t,e,n){var o=t.length;if(!o)return t;if(o<764833){var i=t;return e&&(i=i.replace(/^\\s+/,\"\")),n&&(i=i.replace(/\\s+$/,\"\")),i}var r=0;if(n)for(;o>0&&/\\s/.test(t[o-1]);)o--;if(e&&o>0)for(;r<o&&/\\s/.test(t[r]);)r++;return t.substring(r,o)},t}();e.StringUtils=n},1632:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(9279),i=n(2491),r=function(){function t(){}return t.onEventAttachingToDocument=function(e,n){return!o.Browser.MacOSMobilePlatform||!t.isTouchEventName(e)||(t.documentTouchHandlers[e]||(t.documentTouchHandlers[e]=[]),t.documentTouchHandlers[e].push(n),t.documentEventAttachingAllowed)},t.isTouchEventName=function(t){return o.Browser.WebKitTouchUI&&(t.indexOf(\"touch\")>-1||t.indexOf(\"gesture\")>-1)},t.isTouchEvent=function(t){return o.Browser.WebKitTouchUI&&i.isDefined(t.changedTouches)},t.getEventX=function(t){return o.Browser.IE?t.pageX:t.changedTouches[0].pageX},t.getEventY=function(t){return o.Browser.IE?t.pageY:t.changedTouches[0].pageY},t.touchMouseDownEventName=o.Browser.WebKitTouchUI?\"touchstart\":o.Browser.Edge&&o.Browser.MSTouchUI&&window.PointerEvent?\"pointerdown\":\"mousedown\",t.touchMouseUpEventName=o.Browser.WebKitTouchUI?\"touchend\":o.Browser.Edge&&o.Browser.MSTouchUI&&window.PointerEvent?\"pointerup\":\"mouseup\",t.touchMouseMoveEventName=o.Browser.WebKitTouchUI?\"touchmove\":o.Browser.Edge&&o.Browser.MSTouchUI&&window.PointerEvent?\"pointermove\":\"mousemove\",t.msTouchDraggableClassName=\"dxMSTouchDraggable\",t.documentTouchHandlers={},t.documentEventAttachingAllowed=!0,t}();e.TouchUtils=r},7097:(t,e,n)=>{n(8091).polyfill()},8091:t=>{function e(t,e){if(null==t)throw new TypeError(\"Cannot convert first argument to object\");for(var n=Object(t),o=1;o<arguments.length;o++){var i=arguments[o];if(null!=i)for(var r=Object.keys(Object(i)),s=0,a=r.length;s<a;s++){var c=r[s],u=Object.getOwnPropertyDescriptor(i,c);void 0!==u&&u.enumerable&&(n[c]=i[c])}}return n}t.exports={assign:e,polyfill:function(){Object.assign||Object.defineProperty(Object,\"assign\",{enumerable:!1,configurable:!0,writable:!0,value:e})}}},8721:(t,e,n)=>{n.r(e)},5656:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ApiController=void 0;var r,s=n(1772),a=n(6031),c=n(4867),u=n(3607),h=function(t){function e(e,n,o){var i=t.call(this)||this;return i.events=e,i.model=o,i.selection=n,i}return i(e,t),e.prototype.notifySelectionChanged=function(t){this.isUpdateLocked()?this.registerOccurredEvent(r.SelectionChanged):this.raiseSelectionChanged()},e.prototype.notifyToolboxDragStart=function(){this.events.raise(\"notifyToolboxItemDragStart\")},e.prototype.notifyToolboxDragEnd=function(){this.events.raise(\"notifyToolboxItemDragEnd\")},e.prototype.notifyToolboxDraggingMouseMove=function(){},e.prototype.notifyClick=function(t){var e=this;this.tryRaiseUserAction(t,(function(t){return e.events.raise(\"notifyItemClick\",t)}))},e.prototype.notifyDblClick=function(t){var e=this;this.tryRaiseUserAction(t,(function(t){return e.events.raise(\"notifyItemDblClick\",t)}))},e.prototype.createNativeItem=function(t){return t&&this.cleanupNativeItem(t.toNative(this.model.units))},e.prototype.createNativeShape=function(t){return this.createNativeItem(t)},e.prototype.createNativeConnector=function(t){return this.createNativeItem(t)},e.prototype.convertUnit=function(t){return c.ModelUtils.getlUnitValue(this.model.units,t)},e.prototype.convertPoint=function(t){return new u.Point(this.convertUnit(t.x),this.convertUnit(t.y))},e.prototype.convertSize=function(t){return new u.Size(this.convertUnit(t.width),this.convertUnit(t.height))},e.prototype.cleanupNativeItem=function(t){var e=this.dataSource;return e&&(e.isAutoGeneratedKey(t.fromKey)&&(t.fromKey=void 0),e.isAutoGeneratedKey(t.key)&&(t.key=void 0),e.isAutoGeneratedKey(t.toKey)&&(t.toKey=void 0)),t},e.prototype.setDataSource=function(t){this.dataSource=t},e.prototype.tryRaiseUserAction=function(t,e){var n=this;if(this.isUserAction(t)){var o=this.model.findItem(t.source.key);o&&this.events.raise1((function(t){return e(n.createNativeItem(o))}))}},e.prototype.isUserAction=function(t){return t.source&&(t.source.type===a.MouseEventElementType.Shape||t.source.type===a.MouseEventElementType.ShapeExpandButton||t.source.type===a.MouseEventElementType.ShapeParameterBox||t.source.type===a.MouseEventElementType.ShapeResizeBox||t.source.type===a.MouseEventElementType.ShapeConnectionPoint||t.source.type===a.MouseEventElementType.Connector||t.source.type===a.MouseEventElementType.ConnectorPoint||t.source.type===a.MouseEventElementType.ConnectorSide||t.source.type===a.MouseEventElementType.ConnectorOrthogonalSide||t.source.type===a.MouseEventElementType.ConnectorText)},e.prototype.onUpdateUnlocked=function(t){t&r.SelectionChanged&&this.raiseSelectionChanged()},e.prototype.raiseSelectionChanged=function(){var t=this,e=this.selection.getKeys().map((function(e){return t.createNativeItem(t.model.findItem(e))}));this.events.raise1((function(t){return t.notifySelectionChanged(e)}))},e}(s.BatchUpdatableObject);e.ApiController=h,function(t){t[t.SelectionChanged=1]=\"SelectionChanged\"}(r||(r={}))},7185:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.NativeConnector=e.NativeShape=e.NativeItem=void 0;var r=n(4867),s=function(){function t(t,e){this.id=t,this.key=e,this.unitsApplied=!1}return t.prototype.applyUnits=function(t){this.unitsApplied||void 0===t||(this.applyUnitsCore(t),this.unitsApplied=!0)},t}();e.NativeItem=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.applyUnitsCore=function(t){this.position.x=r.ModelUtils.getlUnitValue(t,this.position.x),this.position.y=r.ModelUtils.getlUnitValue(t,this.position.y),this.size.width=r.ModelUtils.getlUnitValue(t,this.size.width),this.size.height=r.ModelUtils.getlUnitValue(t,this.size.height)},e}(s);e.NativeShape=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.applyUnitsCore=function(t){this.points.forEach((function(e){e.x=r.ModelUtils.getlUnitValue(t,e.x),e.y=r.ModelUtils.getlUnitValue(t,e.y)}))},e}(s);e.NativeConnector=c},8906:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutCommandBase=void 0;var r=n(4867),s=n(9741),a=n(5503),c=n(7959),u=n(8675),h=n(8011),p=n(7626),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=this;this.control.history.beginTransaction();var o=this.getAffectedShapes(),i=this.getAffectedConnectors(),s=this.createLayoutSettings(),a=r.ModelUtils.getGraphInfoByItems(this.control.model,o,i,!1);if(a.length){var c,l=this.control.model,d=u.GeometryUtils.getCommonRectangle(u.Utils.flatten(a.map((function(t){return t.graph.items.map((function(t){return l.findItem(t.key)}))}))).concat(a.map((function(t){return t.container}))).filter((function(t){return t})).map((function(t){return t.rectangle})));this.control.history.addAndRedo(new p.ScrollIntoViewOnUndoHistoryItem(this.control.view,d)),a.forEach((function(t){var e=n.createLayout(s,t.graph),a=r.ModelUtils.getNonGraphItems(n.control.model,t.container,e.nodeToLayout,o,i),u=r.ModelUtils.applyLayout(n.control.history,n.control.model,t.container,t.graph,e,a,s,n.control.settings.snapToGrid,n.control.settings.gridSize,!1);c=c&&h.Rectangle.union(c,u)||u})),r.ModelUtils.tryUpdateModelRectangle(this.control.history),this.control.history.addAndRedo(new p.ScrollIntoViewOnRedoHistoryItem(this.control.view,c))}return this.control.history.endTransaction(),!0},e.prototype.getAffectedShapes=function(){return this.control.selection.isEmpty()?this.control.model.items.filter((function(t){return t instanceof a.Shape&&!t.locked})):this.control.selection.getSelectedShapes(!1,!0)},e.prototype.getAffectedConnectors=function(){return this.control.selection.isEmpty()?this.control.model.items.filter((function(t){return t instanceof c.Connector&&!t.locked})):this.control.selection.getSelectedConnectors(!1,!0)},e}(s.SimpleCommandBase);e.AutoLayoutCommandBase=l},30:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutLayeredHorizontalCommand=void 0;var r=n(8906),s=n(1256),a=n(8710),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var t=new a.LayoutSettings;return t.orientation=a.DataLayoutOrientation.Horizontal,t},e.prototype.createLayout=function(t,e){return new s.SugiyamaLayoutBuilder(t,e).build()},e}(r.AutoLayoutCommandBase);e.AutoLayoutLayeredHorizontalCommand=c},7826:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutLayeredHorizontalRightToLeftCommand=void 0;var r=n(8710),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var e=t.prototype.createLayoutSettings.call(this);return e.direction=r.LogicalDirectionKind.Backward,e},e}(n(30).AutoLayoutLayeredHorizontalCommand);e.AutoLayoutLayeredHorizontalRightToLeftCommand=s},554:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutLayeredVerticalBottomToTopCommand=void 0;var r=n(8710),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var e=t.prototype.createLayoutSettings.call(this);return e.direction=r.LogicalDirectionKind.Backward,e},e}(n(9427).AutoLayoutLayeredVerticalCommand);e.AutoLayoutLayeredVerticalBottomToTopCommand=s},9427:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutLayeredVerticalCommand=void 0;var r=n(8906),s=n(1256),a=n(8710),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var t=new a.LayoutSettings;return t.orientation=a.DataLayoutOrientation.Vertical,t},e.prototype.createLayout=function(t,e){return new s.SugiyamaLayoutBuilder(t,e).build()},e}(r.AutoLayoutCommandBase);e.AutoLayoutLayeredVerticalCommand=c},7004:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutTreeHorizontalCommand=void 0;var r=n(8906),s=n(9533),a=n(8710),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var t=this.control.settings.snapToGrid?this.control.settings.gridSize:void 0,e=new a.TreeLayoutSettings(t);return e.orientation=a.DataLayoutOrientation.Horizontal,e},e.prototype.createLayout=function(t,e){return new s.TreeLayoutBuilder(t,e).build()},e}(r.AutoLayoutCommandBase);e.AutoLayoutTreeHorizontalCommand=c},5010:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutTreeHorizontalRightToLeftCommand=void 0;var r=n(8710),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var e=t.prototype.createLayoutSettings.call(this);return e.direction=r.LogicalDirectionKind.Backward,e},e}(n(7004).AutoLayoutTreeHorizontalCommand);e.AutoLayoutTreeHorizontalRightToLeftCommand=s},2217:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutTreeVerticalBottomToTopCommand=void 0;var r=n(8710),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var e=t.prototype.createLayoutSettings.call(this);return e.direction=r.LogicalDirectionKind.Backward,e},e}(n(375).AutoLayoutTreeVerticalCommand);e.AutoLayoutTreeVerticalBottomToTopCommand=s},375:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoLayoutTreeVerticalCommand=void 0;var r=n(8906),s=n(9533),a=n(8710),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createLayoutSettings=function(){var t=this.control.settings.snapToGrid?this.control.settings.gridSize:void 0,e=new a.TreeLayoutSettings(t);return e.orientation=a.DataLayoutOrientation.Vertical,e},e.prototype.createLayout=function(t,e){return new s.TreeLayoutBuilder(t,e).build()},e}(r.AutoLayoutCommandBase);e.AutoLayoutTreeVerticalCommand=c},4982:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ClipboardCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.setClipboardData=function(t){this.control.render&&this.control.render.input.setClipboardData(t),e.clipboardData=t},e.prototype.getClipboardData=function(t){this.control.render&&this.isPasteSupportedByBrowser()?this.control.render.input.getClipboardData(t):t(e.clipboardData)},e.prototype.isPasteSupportedByBrowser=function(){return this.control.render&&this.control.render.input.isPasteSupportedByBrowser()},e}(n(9741).SimpleCommandBase);e.ClipboardCommand=r},5827:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CopySelectionCommand=void 0;var r=n(5885),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&!this.control.selection.isEmpty(!0)},e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t){var e=(new r.Exporter).exportItems(this.control.selection.getSelectedItems(!0,!0));return this.setClipboardData(e),!0},e}(n(4982).ClipboardCommand);e.CopySelectionCommand=s},2664:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CutSelectionCommand=void 0;var r=n(5885),s=n(4867),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedItems();return t.prototype.isEnabled.call(this)&&e.length&&(e.length>1||this.permissionsProvider.canDeleteItems(e))},e.prototype.executeCore=function(t){var e=new r.Exporter,n=this.control.selection.getSelectedItems(!0,!0),o=e.exportItems(n);return this.permissionsProvider.beginDeleteItems(n),this.setClipboardData(o),s.ModelUtils.deleteSelection(this.control.history,this.control.model,this.control.selection),this.permissionsProvider.endDeleteItems(),!0},Object.defineProperty(e.prototype,\"isPermissionsRequired\",{get:function(){return!0},enumerable:!1,configurable:!0}),e}(n(4982).ClipboardCommand);e.CutSelectionCommand=a},4200:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PasteSelectionCommand=void 0;var r=n(8900),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getEventPositionOffset=function(t,e){return new r.Point(0,0)},e}(n(7688).PasteSelectionCommandBase);e.PasteSelectionCommand=s},7688:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PasteSelectionCommandBase=void 0;var r=n(4982),s=n(2406),a=n(5503),c=n(4383),u=n(7959),h=n(3849),p=n(4867),l=n(4297),d=n(8900),f=n(9291),y=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&(this.isPasteSupportedByBrowser()||void 0!==r.ClipboardCommand.clipboardData)},e.prototype.isVisible=function(){return this.isPasteSupportedByBrowser()||void 0!==r.ClipboardCommand.clipboardData},e.prototype.parseClipboardData=function(t){var e;e=new s.Importer(this.control.shapeDescriptionManager,t).importItems(this.control.model);var n=this.getEventPositionOffset(e,this.control.contextMenuPosition);n=this.getCorrectedOffsetByModel(e,n);for(var o=0;o<e.length;o++){var i=e[o];i instanceof a.Shape?i.position.offsetByPoint(n):i instanceof u.Connector&&i.points.forEach((function(t){return t.offsetByPoint(n)}))}return e},e.prototype.getCorrectedOffsetByModel=function(t,e){var n=t.reduce((function(t,e){var n=e instanceof a.Shape?e.position.x:e instanceof u.Connector?e.getMinX():Number.MAX_VALUE,o=e instanceof a.Shape?e.position.y:e instanceof u.Connector?e.getMinY():Number.MAX_VALUE;return(o<t.y||o===t.y&&n<t.x)&&(t.topLeftItem=e,t.x=n,t.y=o),t}),{topLeftItem:t[0],x:Number.MAX_VALUE,y:Number.MAX_VALUE}).topLeftItem;if(n instanceof a.Shape){var o=this.getShapeCorrectedPosition(this.control.model,n,e);return new d.Point(o.x-n.position.x,o.y-n.position.y)}if(n instanceof u.Connector){var i=this.getConnectorCorrectedPoints(this.control.model,n,e);return new d.Point(n.points[0].x-i[0].x,n.points[0].y-i[0].y)}},e.prototype.executeCore=function(t,e){var n=this,o=!0;return e?this.performPaste(e):this.getClipboardData((function(t){o=n.execute(t)})),o},e.prototype.addItemForSortingRecursive=function(t,e){if(t[e.key])return t[e.key];if(e instanceof u.Connector)return e.endItem?t[e.key]=this.addItemForSortingRecursive(t,e.endItem)-.5:e.beginItem?t[e.key]=this.addItemForSortingRecursive(t,e.beginItem)+.5:t[e.key]=-1,t[e.key];if(0===e.attachedConnectors.length)return t[e.key]=0;for(var n=0;n<e.attachedConnectors.length;n++){var o=e.attachedConnectors[n].beginItem;return e.attachedConnectors[n].endItem===e&&o&&o!==e.attachedConnectors[n].endItem?t[e.key]=this.addItemForSortingRecursive(t,o)+1:t[e.key]=0}},e.prototype.getSortedPasteItems=function(t){for(var e=[],n=[],o={},i=0;i<t.length;i++){var r=t[i];r instanceof a.Shape?e.push(r):r instanceof u.Connector&&(n.push(r),this.addItemForSortingRecursive(o,r))}return n.sort((function(t,e){return o[e.key]-o[t.key]})),e.concat(n)},e.prototype.performPaste=function(t){this.control.beginUpdateCanvas(),this.control.history.beginTransaction();var e={},n=this.parseClipboardData(t);n=this.getSortedPasteItems(n);for(var o=0;o<n.length;o++){var i=n[o];i instanceof a.Shape?this.control.history.addAndRedo(new c.ImportShapeHistoryItem(i)):i instanceof u.Connector&&this.control.history.addAndRedo(new h.ImportConnectorHistoryItem(i));var r=i.container&&i.container.key;r&&void 0!==e[r]?r&&void 0!==e[r]&&(e[i.key]=!1):e[i.key]=!0}p.ModelUtils.tryUpdateModelRectangle(this.control.history),this.control.history.addAndRedo(new l.SetSelectionHistoryItem(this.control.selection,Object.keys(e).filter((function(t){return e[t]})))),this.control.history.endTransaction(),this.control.endUpdateCanvas(),this.control.barManager.updateItemsState()},e.prototype.getShapeCorrectedPosition=function(t,n,o){for(var i=n.position.clone().offsetByPoint(o);t.findShapeAtPosition(i);)i.offset(e.positionOffset,e.positionOffset);return i},e.prototype.getConnectorCorrectedPoints=function(t,n,o){for(var i=n.points.map((function(t){return t.clone().offsetByPoint(o)}));t.findConnectorAtPoints(i);)i.forEach((function(t){t.x+=e.positionOffset,t.y+=e.positionOffset}));return i},Object.defineProperty(e.prototype,\"isPermissionsRequired\",{get:function(){return!0},enumerable:!1,configurable:!0}),e.positionOffset=f.UnitConverter.pixelsToTwips(10),e}(r.ClipboardCommand);e.PasteSelectionCommandBase=y},437:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PasteSelectionInPositionCommand=void 0;var r=n(7688),s=n(5503),a=n(7959),c=n(8900),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getEventPositionOffset=function(t,e){if(!e)return c.Point.zero();var n=t.reduce((function(t,e){return{x:Math.min(t.x,e instanceof s.Shape?e.position.x:e instanceof a.Connector?e.getMinX():Number.MAX_VALUE),y:Math.min(t.y,e instanceof s.Shape?e.position.y:e instanceof a.Connector?e.getMinY():Number.MAX_VALUE)}}),{x:Number.MAX_VALUE,y:Number.MAX_VALUE}),o=this.control.render.getModelPointByEventPoint(e.x,e.y);return new c.Point(o.x-n.x,o.y-n.y)},e}(r.PasteSelectionCommandBase);e.PasteSelectionInPositionCommand=u},9687:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.CommandBase=void 0;var n=function(){function t(t){this.control=t}return t.prototype.execute=function(t){this.isPermissionsRequired&&this.permissionsProvider.lockPermissions();var e=this.getState();if(this.isPermissionsRequired&&this.permissionsProvider.unlockPermissions(),!e.enabled)return!1;this.control.beginUpdate();var n=!1;return n=this.isPermissionsRequired?this.executeWithPermissions(e,t):this.executeCore(e,t),this.control.endUpdate(),n&&this.updateControlState(),n},t.prototype.executeWithPermissions=function(t,e){var n=!1;return this.permissionsProvider.beginStorePermissions(),this.control.history.beginTransaction(),n=this.executeCore(t,e),this.permissionsProvider.isStoredPermissionsGranted()||(this.permissionsProvider.lockPermissions(),this.control.history.undoTransaction(),this.permissionsProvider.unlockPermissions(),n=!1),this.control.history.endTransaction(),this.permissionsProvider.endStorePermissions(),n},t.prototype.updateControlState=function(){this.lockInputPositionUpdating()||this.control.selection.inputPosition.reset(),this.lockUIUpdating()||this.control.barManager.updateItemsState()},Object.defineProperty(t.prototype,\"permissionsProvider\",{get:function(){return this.control&&this.control.permissionsProvider},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isPermissionsRequired\",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.lockUIUpdating=function(){return!1},t.prototype.lockInputPositionUpdating=function(){return!1},t}();e.CommandBase=n},7156:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.CommandManager=e.DiagramCommand=void 0;var o,i=n(264),r=n(6679),s=n(3614),a=n(6596),c=n(4845),u=n(4378),h=n(7607),p=n(3411),l=n(7480),d=n(4077),f=n(6106),y=n(1649),g=n(3166),m=n(8700),v=n(2301),P=n(7306),C=n(2452),S=n(2153),x=n(375),b=n(4503),I=n(7550),w=n(7649),_=n(1813),T=n(3690),O=n(2276),M=n(1203),E=n(5827),D=n(2664),A=n(4200),R=n(1239),L=n(4624),N=n(3591),z=n(30),j=n(5925),U=n(4522),k=n(9538),B=n(125),H=n(7004),K=n(9427),V=n(9031),F=n(6049),W=n(4999),G=n(4419),Z=n(8016),q=n(72),X=n(6619),Y=n(7795),J=n(9970),Q=n(4281),$=n(437),tt=n(5830),et=n(9158),nt=n(962),ot=n(4643),it=n(4681),rt=n(2217),st=n(5010),at=n(554),ct=n(7826),ut=n(7717);!function(t){t[t.Undo=0]=\"Undo\",t[t.Redo=1]=\"Redo\",t[t.Cut=2]=\"Cut\",t[t.Copy=3]=\"Copy\",t[t.Paste=4]=\"Paste\",t[t.PasteInPosition=5]=\"PasteInPosition\",t[t.SelectAll=6]=\"SelectAll\",t[t.Delete=7]=\"Delete\",t[t.Import=8]=\"Import\",t[t.ImportBPMN=9]=\"ImportBPMN\",t[t.Export=10]=\"Export\",t[t.ExportSvg=11]=\"ExportSvg\",t[t.ExportPng=12]=\"ExportPng\",t[t.ExportJpg=13]=\"ExportJpg\",t[t.BindDocument=14]=\"BindDocument\",t[t.UnbindDocument=15]=\"UnbindDocument\",t[t.Bold=16]=\"Bold\",t[t.Italic=17]=\"Italic\",t[t.Underline=18]=\"Underline\",t[t.FontName=19]=\"FontName\",t[t.FontSize=20]=\"FontSize\",t[t.FontColor=21]=\"FontColor\",t[t.FillColor=22]=\"FillColor\",t[t.StrokeColor=23]=\"StrokeColor\",t[t.TextLeftAlign=24]=\"TextLeftAlign\",t[t.TextCenterAlign=25]=\"TextCenterAlign\",t[t.TextRightAlign=26]=\"TextRightAlign\",t[t.ConnectorLineOption=27]=\"ConnectorLineOption\",t[t.ConnectorStartLineEnding=28]=\"ConnectorStartLineEnding\",t[t.ConnectorEndLineEnding=29]=\"ConnectorEndLineEnding\",t[t.BringToFront=30]=\"BringToFront\",t[t.SendToBack=31]=\"SendToBack\",t[t.MoveLeft=32]=\"MoveLeft\",t[t.MoveStepLeft=33]=\"MoveStepLeft\",t[t.MoveRight=34]=\"MoveRight\",t[t.MoveStepRight=35]=\"MoveStepRight\",t[t.MoveUp=36]=\"MoveUp\",t[t.MoveStepUp=37]=\"MoveStepUp\",t[t.MoveDown=38]=\"MoveDown\",t[t.MoveStepDown=39]=\"MoveStepDown\",t[t.CloneLeft=40]=\"CloneLeft\",t[t.CloneRight=41]=\"CloneRight\",t[t.CloneUp=42]=\"CloneUp\",t[t.CloneDown=43]=\"CloneDown\",t[t.AutoLayoutTree=44]=\"AutoLayoutTree\",t[t.AutoLayoutFlow=45]=\"AutoLayoutFlow\",t[t.AutoLayoutTreeVertical=46]=\"AutoLayoutTreeVertical\",t[t.AutoLayoutTreeHorizontal=47]=\"AutoLayoutTreeHorizontal\",t[t.AutoLayoutLayeredVertical=48]=\"AutoLayoutLayeredVertical\",t[t.AutoLayoutLayeredHorizontal=49]=\"AutoLayoutLayeredHorizontal\",t[t.Lock=50]=\"Lock\",t[t.Unlock=51]=\"Unlock\",t[t.Units=52]=\"Units\",t[t.ViewUnits=53]=\"ViewUnits\",t[t.PageSize=54]=\"PageSize\",t[t.PageLandscape=55]=\"PageLandscape\",t[t.PageColor=56]=\"PageColor\",t[t.GridSize=57]=\"GridSize\",t[t.ShowGrid=58]=\"ShowGrid\",t[t.SnapToGrid=59]=\"SnapToGrid\",t[t.ZoomLevel=60]=\"ZoomLevel\",t[t.Fullscreen=61]=\"Fullscreen\",t[t.ToggleSimpleView=62]=\"ToggleSimpleView\",t[t.ToggleReadOnly=63]=\"ToggleReadOnly\",t[t.EditShapeImage=64]=\"EditShapeImage\",t[t.FitToScreen=65]=\"FitToScreen\",t[t.SwitchAutoZoom=66]=\"SwitchAutoZoom\",t[t.ToggleAutoZoom=67]=\"ToggleAutoZoom\",t[t.FitToWidth=68]=\"FitToWidth\",t[t.ZoomLevelItems=69]=\"ZoomLevelItems\",t[t.GridSizeItems=70]=\"GridSizeItems\",t[t.PageSizeItems=71]=\"PageSizeItems\",t[t.ImportXML=72]=\"ImportXML\",t[t.InsertShapeImage=73]=\"InsertShapeImage\",t[t.DeleteShapeImage=74]=\"DeleteShapeImage\",t[t.StrokeStyle=75]=\"StrokeStyle\",t[t.StrokeWidth=76]=\"StrokeWidth\",t[t.AutoLayoutTreeVerticalBottomToTop=77]=\"AutoLayoutTreeVerticalBottomToTop\",t[t.AutoLayoutTreeHorizontalRightToLeft=78]=\"AutoLayoutTreeHorizontalRightToLeft\",t[t.AutoLayoutLayeredVerticalBottomToTop=79]=\"AutoLayoutLayeredVerticalBottomToTop\",t[t.AutoLayoutLayeredHorizontalRightToLeft=80]=\"AutoLayoutLayeredHorizontalRightToLeft\",t[t.Zoom25=81]=\"Zoom25\",t[t.Zoom50=82]=\"Zoom50\",t[t.Zoom75=83]=\"Zoom75\",t[t.Zoom100=84]=\"Zoom100\",t[t.Zoom125=85]=\"Zoom125\",t[t.Zoom150=86]=\"Zoom150\",t[t.Zoom200=87]=\"Zoom200\",t[t.AutoZoomToContent=88]=\"AutoZoomToContent\",t[t.AutoZoomToWidth=89]=\"AutoZoomToWidth\",t[t.ZoomLevelInPercentage=90]=\"ZoomLevelInPercentage\",t[t.ConnectorRoutingMode=91]=\"ConnectorRoutingMode\"}(o=e.DiagramCommand||(e.DiagramCommand={}));var ht=function(){function t(t){this.commands={},this.shortcutsToCommand={},this.lastCommandsChain=[],this.executingCommandsChain=[],this.executingCommandCounter=0,this.isPublicApiCall=!1,this.createCommand(t,o.Undo,r.UndoCommand,S.ModifierKey.Ctrl|S.KeyCode.Key_z,S.ModifierKey.Meta|S.KeyCode.Key_z),this.createCommand(t,o.Redo,s.RedoCommand,S.ModifierKey.Ctrl|S.KeyCode.Key_y,S.ModifierKey.Ctrl|S.ModifierKey.Shift|S.KeyCode.Key_z,S.ModifierKey.Meta|S.ModifierKey.Shift|S.KeyCode.Key_z),this.createCommand(t,o.Cut,D.CutSelectionCommand,S.KeyCode.Key_x|S.ModifierKey.Ctrl,S.KeyCode.Key_x|S.ModifierKey.Meta,S.KeyCode.Delete|S.ModifierKey.Shift),this.createCommand(t,o.Copy,E.CopySelectionCommand,S.KeyCode.Key_c|S.ModifierKey.Ctrl,S.KeyCode.Key_c|S.ModifierKey.Meta,S.KeyCode.Insert|S.ModifierKey.Ctrl),this.createCommand(t,o.Paste,A.PasteSelectionCommand),this.createCommand(t,o.PasteInPosition,$.PasteSelectionInPositionCommand),this.createCommand(t,o.SelectAll,C.SelectAllCommand,S.KeyCode.Key_a|S.ModifierKey.Ctrl,S.KeyCode.Key_a|S.ModifierKey.Meta),this.createCommand(t,o.Delete,i.DeleteCommand,S.KeyCode.Delete,S.KeyCode.Backspace),this.createCommand(t,o.Import,a.ImportCommand),this.createCommand(t,o.ImportBPMN,R.ImportBPMNCommand),this.createCommand(t,o.ImportXML,tt.ImportXMLCommand),this.createCommand(t,o.Export,c.ExportCommand),this.createCommand(t,o.ExportSvg,O.ExportSvgCommand),this.createCommand(t,o.ExportPng,T.ExportPngCommand),this.createCommand(t,o.ExportJpg,M.ExportJpgCommand),this.createCommand(t,o.BindDocument,k.BindDocumentCommand),this.createCommand(t,o.UnbindDocument,B.UnbindDocumentCommand),this.createCommand(t,o.Bold,u.ToggleFontBoldCommand,S.ModifierKey.Ctrl|S.KeyCode.Key_b,S.ModifierKey.Meta|S.KeyCode.Key_b),this.createCommand(t,o.Italic,h.ToggleFontItalicCommand,S.ModifierKey.Ctrl|S.KeyCode.Key_i,S.ModifierKey.Meta|S.KeyCode.Key_i),this.createCommand(t,o.Underline,p.ToggleFontUnderlineCommand,S.ModifierKey.Ctrl|S.KeyCode.Key_u,S.ModifierKey.Meta|S.KeyCode.Key_u),this.createCommand(t,o.FontName,l.ChangeFontNameCommand),this.createCommand(t,o.FontSize,d.ChangeFontSizeCommand),this.createCommand(t,o.FontColor,f.ChangeFontColorCommand),this.createCommand(t,o.FillColor,y.ChangeFillColorCommand),this.createCommand(t,o.StrokeColor,g.ChangeStrokeColorCommand),this.createCommand(t,o.StrokeStyle,ot.ChangeStrokeStyleCommand),this.createCommand(t,o.StrokeWidth,it.ChangeStrokeWidthCommand),this.createCommand(t,o.TextLeftAlign,m.TextLeftAlignCommand),this.createCommand(t,o.TextCenterAlign,m.TextCenterAlignCommand),this.createCommand(t,o.TextRightAlign,m.TextRightAlignCommand),this.createCommand(t,o.ConnectorLineOption,P.ChangeConnectorLineOptionCommand),this.createCommand(t,o.ConnectorStartLineEnding,v.ChangeConnectorStartLineEndingCommand),this.createCommand(t,o.ConnectorEndLineEnding,v.ChangeConnectorEndLineEndingCommand),this.createCommand(t,o.BringToFront,N.BringToFrontCommand),this.createCommand(t,o.SendToBack,L.SendToBackCommand),this.createCommand(t,o.MoveLeft,j.MoveLeftCommand,S.ModifierKey.Ctrl|S.KeyCode.Left,S.ModifierKey.Ctrl|S.ModifierKey.Shift|S.KeyCode.Left),this.createCommand(t,o.MoveRight,j.MoveRightCommand,S.ModifierKey.Ctrl|S.KeyCode.Right,S.ModifierKey.Ctrl|S.ModifierKey.Shift|S.KeyCode.Right),this.createCommand(t,o.MoveUp,j.MoveUpCommand,S.ModifierKey.Ctrl|S.KeyCode.Up,S.ModifierKey.Ctrl|S.ModifierKey.Shift|S.KeyCode.Up),this.createCommand(t,o.MoveDown,j.MoveDownCommand,S.ModifierKey.Ctrl|S.KeyCode.Down,S.ModifierKey.Ctrl|S.ModifierKey.Shift|S.KeyCode.Down),this.createCommand(t,o.MoveStepLeft,j.MoveStepLeftCommand,S.KeyCode.Left,S.ModifierKey.Shift|S.KeyCode.Left),this.createCommand(t,o.MoveStepRight,j.MoveStepRightCommand,S.KeyCode.Right,S.ModifierKey.Shift|S.KeyCode.Right),this.createCommand(t,o.MoveStepUp,j.MoveStepUpCommand,S.KeyCode.Up,S.ModifierKey.Shift|S.KeyCode.Up),this.createCommand(t,o.MoveStepDown,j.MoveStepDownCommand,S.KeyCode.Down,S.ModifierKey.Shift|S.KeyCode.Down),this.createCommand(t,o.CloneLeft,W.CloneLeftCommand,S.ModifierKey.Alt|S.KeyCode.Left,S.ModifierKey.Alt|S.ModifierKey.Shift|S.KeyCode.Left),this.createCommand(t,o.CloneRight,W.CloneRightCommand,S.ModifierKey.Alt|S.KeyCode.Right,S.ModifierKey.Alt|S.ModifierKey.Shift|S.KeyCode.Right),this.createCommand(t,o.CloneUp,W.CloneUpCommand,S.ModifierKey.Alt|S.KeyCode.Up,S.ModifierKey.Alt|S.ModifierKey.Shift|S.KeyCode.Up),this.createCommand(t,o.CloneDown,W.CloneDownCommand,S.ModifierKey.Alt|S.KeyCode.Down,S.ModifierKey.Alt|S.ModifierKey.Shift|S.KeyCode.Down),this.createCommand(t,o.Lock,V.LockCommand),this.createCommand(t,o.Unlock,F.UnLockCommand),this.createCommand(t,o.AutoLayoutTree,x.AutoLayoutTreeVerticalCommand),this.createCommand(t,o.AutoLayoutFlow,z.AutoLayoutLayeredHorizontalCommand),this.createCommand(t,o.Units,G.ChangeUnitsCommand),this.createCommand(t,o.ViewUnits,G.ChangeViewUnitsCommand),this.createCommand(t,o.PageSize,_.ChangePageSizeCommand),this.createCommand(t,o.PageLandscape,w.ChangePageLandscapeCommand),this.createCommand(t,o.PageColor,Z.ChangePageColorCommand),this.createCommand(t,o.GridSize,I.ChangeGridSizeCommand),this.createCommand(t,o.ShowGrid,q.ChangeShowGridCommand),this.createCommand(t,o.SnapToGrid,b.ChangeSnapToGridCommand),this.createCommand(t,o.ZoomLevel,U.ChangeZoomLevelCommand),this.createCommand(t,o.ZoomLevelInPercentage,U.ChangeZoomLevelInPercentageCommand),this.createCommand(t,o.AutoLayoutTreeVertical,x.AutoLayoutTreeVerticalCommand),this.createCommand(t,o.AutoLayoutTreeVerticalBottomToTop,rt.AutoLayoutTreeVerticalBottomToTopCommand),this.createCommand(t,o.AutoLayoutTreeHorizontal,H.AutoLayoutTreeHorizontalCommand),this.createCommand(t,o.AutoLayoutTreeHorizontalRightToLeft,st.AutoLayoutTreeHorizontalRightToLeftCommand),this.createCommand(t,o.AutoLayoutLayeredVertical,K.AutoLayoutLayeredVerticalCommand),this.createCommand(t,o.AutoLayoutLayeredVerticalBottomToTop,at.AutoLayoutLayeredVerticalBottomToTopCommand),this.createCommand(t,o.AutoLayoutLayeredHorizontal,z.AutoLayoutLayeredHorizontalCommand),this.createCommand(t,o.AutoLayoutLayeredHorizontalRightToLeft,ct.AutoLayoutLayeredHorizontalRightToLeftCommand),this.createCommand(t,o.Fullscreen,X.ToggleFullscreenCommand,S.KeyCode.F11),this.createCommand(t,o.ToggleSimpleView,Y.ToggleSimpleViewCommand),this.createCommand(t,o.ToggleReadOnly,J.ToggleReadOnlyCommand),this.createCommand(t,o.InsertShapeImage,et.InsertShapeImageCommand),this.createCommand(t,o.EditShapeImage,Q.EditShapeImageCommand),this.createCommand(t,o.DeleteShapeImage,nt.DeleteShapeImageCommand),this.createCommand(t,o.FitToScreen,U.FitToScreenCommand),this.createCommand(t,o.FitToWidth,U.FitToWidthCommand),this.createCommand(t,o.SwitchAutoZoom,U.SwitchAutoZoomCommand),this.createCommand(t,o.ToggleAutoZoom,U.ToggleAutoZoomCommand),this.createCommand(t,o.ZoomLevelItems,U.ChangeZoomLevelItemsCommand),this.createCommand(t,o.GridSizeItems,I.ChangeGridSizeItemsCommand),this.createCommand(t,o.PageSizeItems,_.ChangePageSizeItemsCommand),this.createCommand(t,o.Zoom25,U.ChangeZoomLevelTo25Command),this.createCommand(t,o.Zoom50,U.ChangeZoomLevelTo50Command),this.createCommand(t,o.Zoom75,U.ChangeZoomLevelTo75Command),this.createCommand(t,o.Zoom100,U.ChangeZoomLevelTo100Command),this.createCommand(t,o.Zoom125,U.ChangeZoomLevelTo125Command),this.createCommand(t,o.Zoom150,U.ChangeZoomLevelTo150Command),this.createCommand(t,o.Zoom200,U.ChangeZoomLevelTo200Command),this.createCommand(t,o.AutoZoomToContent,U.ToggleAutoZoomToContentCommand),this.createCommand(t,o.AutoZoomToWidth,U.ToggleAutoZoomToWidthCommand),this.createCommand(t,o.ConnectorRoutingMode,ut.ChangeConnectorRoutingModeCommand)}return t.prototype.getCommand=function(t){return this.commands[t]},t.prototype.beforeExecuting=function(t){this.executingCommandsChain.push(t),this.executingCommandCounter++},t.prototype.afterExecuting=function(){this.executingCommandCounter--,0===this.executingCommandCounter&&(this.lastCommandsChain=this.executingCommandsChain,this.executingCommandsChain=[])},t.prototype.processShortcut=function(t){var e=this.shortcutsToCommand[t];return!!e&&e.execute()},t.prototype.processPaste=function(t){var e=this.getCommand(o.Paste);return e&&e.isEnabled()&&e.execute(t),!0},t.prototype.notifySelectionChanged=function(t){this.lastCommandsChain=[]},t.prototype.notifyScrollPositionChanged=function(){},t.prototype.createCommand=function(t,e,n){for(var o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];this.commands[e]=new n(t);for(var r=0;r<o.length;r++){var s=o[r];\"number\"==typeof s&&(this.shortcutsToCommand[s]=this.commands[e])}},t}();e.CommandManager=ht},2102:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.SimpleCommandState=void 0;var n=function(t,e,n,o,i){this.visible=!0,this.denyUpdateValue=!1,this.enabled=t,this.value=e,this.items=o,this.visible=i,this.defaultValue=n};e.SimpleCommandState=n},264:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteCommand=void 0;var r=n(4867),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedItems();return t.prototype.isEnabled.call(this)&&e.length&&(e.length>1||this.permissionsProvider.canDeleteItems(e))},e.prototype.executeCore=function(t){var e=this.control.selection.getSelectedItems(!0,!0);return this.permissionsProvider.beginDeleteItems(e),r.ModelUtils.deleteSelection(this.control.history,this.control.model,this.control.selection),this.permissionsProvider.endDeleteItems(),!0},Object.defineProperty(e.prototype,\"isPermissionsRequired\",{get:function(){return!0},enumerable:!1,configurable:!0}),e}(n(9741).SimpleCommandBase);e.DeleteCommand=s},3614:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedoCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t){return this.control.beginUpdateCanvas(),this.permissionsProvider.lockPermissions(),this.control.history.redo(),this.permissionsProvider.unlockPermissions(),this.control.endUpdateCanvas(),!0},e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&this.control.history.canRedo()},e}(n(9741).SimpleCommandBase);e.RedoCommand=r},2452:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SelectAllCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t,e){var n=[];return this.control.model.iterateItems((function(t){return n.push(t.key)})),this.control.selection.set(n),!0},e}(n(9741).SimpleCommandBase);e.SelectAllCommand=r},6679:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.UndoCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t){return this.control.beginUpdateCanvas(),this.permissionsProvider.lockPermissions(),this.control.history.undo(),this.permissionsProvider.unlockPermissions(),this.control.endUpdateCanvas(),!0},e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&this.control.history.canUndo()},e}(n(9741).SimpleCommandBase);e.UndoCommand=r},9538:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BindDocumentCommand=void 0;var r=n(3503),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t,e){if(!e||!Array.isArray(e.nodeDataSource))throw Error(\"Format exception\");return this.performImportData(e),this.control.updateLayout(!0),!0},e.prototype.performImportData=function(t){var e=this.control.createDocumentDataSource(t.nodeDataSource,t.edgeDataSource,t.dataParameters,t.nodeDataImporter,t.edgeDataImporter);this.control.beginUpdateCanvas(),this.permissionsProvider.lockPermissions();var n=new r.DataLayoutParameters(this.control.settings,t.layoutParameters);e.createModelItems(this.control.history,this.control.model,this.control.shapeDescriptionManager,this.control.selection,n,this.control.settings.snapToGrid,this.control.settings.gridSize,this.control.measurer),this.permissionsProvider.unlockPermissions(),this.control.endUpdateCanvas()},e}(n(9741).SimpleCommandBase);e.BindDocumentCommand=s},125:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.UnbindDocumentCommand=void 0;var r=n(4867),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t){return this.permissionsProvider.lockPermissions(),this.control.deleteDocumentDataSource(),r.ModelUtils.deleteAllItems(this.control.history,this.control.model,this.control.selection),this.control.history.clear(),this.permissionsProvider.unlockPermissions(),!0},e}(n(9741).SimpleCommandBase);e.UnbindDocumentCommand=s},4845:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportCommand=void 0;var r=n(5885),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){return e((new r.Exporter).export(this.control.model)),!0},e}(n(1081).ExportImportCommandBase);e.ExportCommand=s},4012:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportImageCommand=void 0;var r=n(8693),s=n(3872),a=n(1081),c=n(5885),u=n(1114),h=n(1733),p=n(6078),l=n(7176),d=function(t){function e(e){var n=t.call(this,e)||this;return n.exporter=new c.Exporter,n}return i(e,t),e.prototype.isEnabled=function(){return!l.ImageCache.instance.hasNonLoadedImages()},e.prototype.executeCore=function(t,e){var n=this;try{var o=this.getExportManager();this.getExportFunc()(this.control.model.size.clone(),this.control.model.pageColor,o,(function(t){e(t,n.getExtension()),n.tryDispose()}),this.control.settings.useCanvgForExportToImage)}catch(t){throw this.tryDispose(),t}return!0},e.prototype.getExportManager=function(){var t=this.getOrCreateMeasurer(),e=this.control.render&&this.control.render.items||this.createItemsManager(t);return this.exportManager||(this.exportManager=new s.CanvasExportManager(e.itemsContainer,t,this.control.instanceId))},e.prototype.createItemsManager=function(t){this.svgElement=u.RenderHelper.createSvgElement(document.body,!0);var e=new r.CanvasItemsManager(this.svgElement,1,new p.ExportDOMManipulator(t),this.control.instanceId);return this.control.modelManipulator.onModelChanged.add(e),this.control.modelManipulator.commitItemsCreateChanges(),e},e.prototype.tryDispose=function(){this.svgElement&&(document.body.removeChild(this.svgElement),delete this.svgElement),this.tempMeasurer&&(this.tempMeasurer.clean(),this.tempMeasurer=void 0),this.exportManager=void 0},e.prototype.getOrCreateMeasurer=function(){return this.control.measurer||(this.tempMeasurer=new h.TextMeasurer(document.body))},e}(a.ExportImportCommandBase);e.ExportImageCommand=d},1081:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportImportCommandBase=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e}(n(9741).SimpleCommandBase);e.ExportImportCommandBase=r},1203:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportJpgCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getExtension=function(){return\"jpg\"},e.prototype.getExportFunc=function(){return this.exporter.exportJpg},e}(n(4012).ExportImageCommand);e.ExportJpgCommand=r},3690:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportPngCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getExtension=function(){return\"png\"},e.prototype.getExportFunc=function(){return this.exporter.exportPng},e}(n(4012).ExportImageCommand);e.ExportPngCommand=r},2276:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportSvgCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getExtension=function(){return\"svg\"},e.prototype.getExportFunc=function(){return this.exporter.exportSvg},e}(n(4012).ExportImageCommand);e.ExportSvgCommand=r},1239:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportBPMNCommand=void 0;var r=n(5941),s=n(4867),a=n(4145),c=n(8900),u=n(7959),h=n(9603),p=n(3477),l=n(1256),d=n(8710),f=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=new r.BPMNImporter(e).import();return this.updateModel(n),!0},e.prototype.updateModel=function(t){var e=this,n={},o=[],i=[];this.control.history.beginTransaction(),t.items.forEach((function(t){var i=new a.AddShapeHistoryItem(e.getShapeDescription(t.type),new c.Point(0,0),t.text,t.key);e.control.history.addAndRedo(i),n[t.key]=i.shapeKey;var r=e.control.model.findShape(i.shapeKey);o.push(r)})),t.edges.forEach((function(t){var o=e.control.model.findShape(n[t.from]),r=e.control.model.findShape(n[t.to]),s=new h.AddConnectorHistoryItem([o.getConnectionPointPosition(0),r.getConnectionPointPosition(0)]);e.control.history.addAndRedo(s);var a=e.control.model.findConnector(s.connectorKey);e.control.history.addAndRedo(new p.AddConnectionHistoryItem(a,o,0,u.ConnectorPosition.Begin)),e.control.history.addAndRedo(new p.AddConnectionHistoryItem(a,r,0,u.ConnectorPosition.End)),i.push(a)}));var r=new d.LayoutSettings;s.ModelUtils.getGraphInfoByItems(this.control.model,o,i).forEach((function(t){var n=new l.SugiyamaLayoutBuilder(r,t.graph).build(),a=s.ModelUtils.getNonGraphItems(e.control.model,t.container,n.nodeToLayout,o,i);s.ModelUtils.applyLayout(e.control.history,e.control.model,void 0,t.graph,n,a,r,e.control.settings.snapToGrid,e.control.settings.gridSize,!1)})),s.ModelUtils.tryUpdateModelRectangle(this.control.history),this.control.history.endTransaction()},e.prototype.getShapeDescription=function(t){return this.control.shapeDescriptionManager.get(t)},e}(n(1081).ExportImportCommandBase);e.ImportBPMNCommand=f},6596:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportCommand=void 0;var r=n(2406),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){this.permissionsProvider.lockPermissions();var n=e.data?e.data:e,o=new r.Importer(this.control.shapeDescriptionManager,n);if(!0===e.keepExistingItems)o.importItemsData(this.control.model),this.control.importItemsData();else{var i=o.import();this.control.importModel(i)}return this.permissionsProvider.unlockPermissions(),!0},e}(n(1081).ExportImportCommandBase);e.ImportCommand=s},5830:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportXMLCommand=void 0;var r=n(780),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=new r.XmlImporter(this.control.shapeDescriptionManager,e).import();return this.control.importModel(n),!0},e}(n(1081).ExportImportCommandBase);e.ImportXMLCommand=s},4999:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CloneDownCommand=e.CloneUpCommand=e.CloneRightCommand=e.CloneLeftCommand=e.CloneCommand=void 0;var r=n(4867),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedItems();return t.prototype.isEnabled.call(this)&&e.length&&e.length>0&&this.permissionsProvider.canAddItems(e)},e.prototype.executeCore=function(t,e){var n=r.ModelUtils.createRectangle(this.control.selection.getSelectedItems());return r.ModelUtils.cloneSelectionToOffset(this.control.history,this.control.model,void 0,this.control.selection,this.getOffsetX(n),this.getOffsetY(n)),!0},Object.defineProperty(e.prototype,\"isPermissionsRequired\",{get:function(){return!0},enumerable:!1,configurable:!0}),e.prototype.getOffsetX=function(t){return 0},e.prototype.getOffsetY=function(t){return 0},e}(n(9741).SimpleCommandBase);e.CloneCommand=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getOffsetX=function(t){return-t.width},e}(s);e.CloneLeftCommand=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getOffsetX=function(t){return t.width},e}(s);e.CloneRightCommand=c;var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getOffsetY=function(t){return-t.height},e}(s);e.CloneUpCommand=u;var h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getOffsetY=function(t){return t.height},e}(s);e.CloneDownCommand=h},5925:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MoveStepDownCommand=e.MoveDownCommand=e.MoveStepUpCommand=e.MoveUpCommand=e.MoveStepRightCommand=e.MoveRightCommand=e.MoveStepLeftCommand=e.MoveLeftCommand=e.MoveCommand=void 0;var r=n(8900),s=n(4867),a=n(9291),c=n(9741),u=n(4742),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&!this.control.selection.isEmpty()},e.prototype.executeCore=function(t,e){var n=this;this.control.history.beginTransaction();var o=this.control.selection,i=new u.SelectionDragHelper(this.control.history,this.control.model,this.permissionsProvider,new r.Point(0,0),o.getSelectedItems(!0));return i.initDraggingShapes(o.getSelectedShapes(!1,!0),!1),i.initDraggingConnectors(o.getSelectedConnectors(!1,!0),!1),i.move(!1,(function(t){return n.getPosition(t)}),(function(){}),(function(){})),s.ModelUtils.tryUpdateModelRectangle(this.control.history,(function(t,e){return i.onTryUpdateModelSize(t,e)})),this.control.history.endTransaction(),!0},Object.defineProperty(e.prototype,\"isPermissionsRequired\",{get:function(){return!0},enumerable:!1,configurable:!0}),e}(c.SimpleCommandBase);e.MoveCommand=h;var p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return t.clone().offset(-a.UnitConverter.pixelsToTwips(1),0)},e}(h);e.MoveLeftCommand=p;var l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return this.control.settings.snapToGrid?new r.Point(s.ModelUtils.getSnappedPos(this.control.model,this.control.settings.gridSize,t.x-(this.control.settings.gridSize/2+2),!0),t.y):t.clone().offset(-this.control.settings.gridSize,0)},e}(h);e.MoveStepLeftCommand=l;var d=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return t.clone().offset(a.UnitConverter.pixelsToTwips(1),0)},e}(h);e.MoveRightCommand=d;var f=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return this.control.settings.snapToGrid?new r.Point(s.ModelUtils.getSnappedPos(this.control.model,this.control.settings.gridSize,t.x+(this.control.settings.gridSize/2+2),!0),t.y):t.clone().offset(this.control.settings.gridSize,0)},e}(h);e.MoveStepRightCommand=f;var y=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return t.clone().offset(0,-a.UnitConverter.pixelsToTwips(1))},e}(h);e.MoveUpCommand=y;var g=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return this.control.settings.snapToGrid?new r.Point(t.x,s.ModelUtils.getSnappedPos(this.control.model,this.control.settings.gridSize,t.y-(this.control.settings.gridSize/2+2),!1)):t.clone().offset(0,-this.control.settings.gridSize)},e}(h);e.MoveStepUpCommand=g;var m=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return t.clone().offset(0,a.UnitConverter.pixelsToTwips(1))},e}(h);e.MoveDownCommand=m;var v=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPosition=function(t){return this.control.settings.snapToGrid?new r.Point(t.x,s.ModelUtils.getSnappedPos(this.control.model,this.control.settings.gridSize,t.y+(this.control.settings.gridSize/2+2),!1)):t.clone().offset(0,this.control.settings.gridSize)},e}(h);e.MoveStepDownCommand=v},7550:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeGridSizeItemsCommand=e.ChangeGridSizeCommand=void 0;var r=n(9741),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.getModelUnit(this.control.settings.gridSize)},e.prototype.executeCore=function(t,e){return this.control.settings.gridSize=this.getModelUnitTwipsValue(e),!0},e.prototype.getItems=function(){var t=this;return this.control.settings.gridSizeItems.map((function(e){return{value:t.getModelUnit(e),text:t.getViewUnitText(e)}}))},e}(r.SimpleCommandBase);e.ChangeGridSizeCommand=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){var t=this;return this.control.settings.gridSizeItems.map((function(e){return t.getModelUnit(e)}))},e.prototype.executeCore=function(t,e){var n=this;return this.control.settings.gridSizeItems=e.map((function(t){return n.getModelUnitTwipsValue(t)})),!0},e}(r.SimpleCommandBase);e.ChangeGridSizeItemsCommand=a},8016:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageColorCommand=void 0;var r=n(3499),s=n(7195),a=n(6613),c=n(13),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return c.ColorUtils.colorToHash(this.control.model.pageColor)},e.prototype.getDefaultValue=function(){return c.ColorUtils.colorToHash(a.DiagramModel.defaultPageColor)},e.prototype.createHistoryItems=function(t){return[new s.ChangePageColorHistoryItem(c.ColorUtils.fromString(t))]},e}(r.ChangePagePropertyCommand);e.ChangePageColorCommand=u},7649:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageLandscapeCommand=void 0;var r=n(3499),s=n(1380),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.model.pageLandscape},e.prototype.createHistoryItems=function(t){return[new s.ChangePageLandscapeHistoryItem(t)]},e}(r.ChangePagePropertyCommand);e.ChangePageLandscapeCommand=a},3499:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePagePropertyCommand=void 0;var r=n(4867),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=this;return this.control.history.beginTransaction(),this.createHistoryItems(e).forEach((function(t){n.control.history.addAndRedo(t)})),r.ModelUtils.tryUpdateModelRectangle(this.control.history),this.control.history.endTransaction(),!0},e.prototype.getItems=function(){return null},e}(n(9741).SimpleCommandBase);e.ChangePagePropertyCommand=s},1813:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageSizeItemsCommand=e.ChangePageSizeCommand=void 0;var r=n(3499),s=n(6353),a=n(1044),c=n(9741),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.getModelUnitSize(this.control.model.pageSize)},e.prototype.createHistoryItems=function(t){return[new a.ChangePageSizeHistoryItem(new s.Size(this.getModelUnitTwipsValue(t.width),this.getModelUnitTwipsValue(t.height)))]},e.prototype.getItems=function(){var t=this;return this.control.settings.pageSizeItems.map((function(e){return{value:t.getModelUnitSize(e.size),text:e.text.replace(\"{width}\",t.getViewUnitText(e.size.width)).replace(\"{height}\",t.getViewUnitText(e.size.height))}}))},e.prototype.getModelUnitSize=function(t){return new s.Size(this.getModelUnit(t.width),this.getModelUnit(t.height))},e}(r.ChangePagePropertyCommand);e.ChangePageSizeCommand=u;var h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return!0},e.prototype.getValue=function(){var t=this;return this.control.settings.pageSizeItems.map((function(e){return{size:new s.Size(t.getModelUnit(e.width),t.getModelUnit(e.height)),text:e.text}}))},e.prototype.executeCore=function(t,e){var n=this;return this.control.settings.pageSizeItems=e.map((function(t){return{size:new s.Size(n.getModelUnitTwipsValue(t.width),n.getModelUnitTwipsValue(t.height)),text:t.text}})),!0},e}(c.SimpleCommandBase);e.ChangePageSizeItemsCommand=h},72:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShowGridCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t,e){var n=void 0===e?!this.control.settings.showGrid:!!e;return this.control.settings.showGrid!==n&&(this.control.settings.showGrid=n,!0)},e.prototype.getValue=function(){return this.control.settings.showGrid},e}(n(9741).SimpleCommandBase);e.ChangeShowGridCommand=r},4503:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeSnapToGridCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=void 0===e?!this.control.settings.snapToGrid:!!e;return this.control.settings.snapToGrid!==n&&(this.control.settings.snapToGrid=n,!0)},e.prototype.getValue=function(){return this.control.settings.snapToGrid},e}(n(9741).SimpleCommandBase);e.ChangeSnapToGridCommand=r},4419:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeViewUnitsCommand=e.ChangeUnitsCommand=void 0;var r=n(3499),s=n(7479),a=n(9741),c=n(6224),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.model.units},e.prototype.createHistoryItems=function(t){return[new s.ChangeUnitsHistoryItem(t)]},e.prototype.getItems=function(){return Object.keys(c.DiagramLocalizationService.unitItems).map((function(t){return{value:parseInt(t),text:c.DiagramLocalizationService.unitItems[t]}}))},e}(r.ChangePagePropertyCommand);e.ChangeUnitsCommand=u;var h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.viewUnits},e.prototype.executeCore=function(t,e){return this.control.settings.viewUnits=e,!0},e.prototype.getItems=function(){return Object.keys(c.DiagramLocalizationService.unitItems).map((function(t){return{value:parseInt(t),text:c.DiagramLocalizationService.unitItems[t]}}))},e}(a.SimpleCommandBase);e.ChangeViewUnitsCommand=h},4522:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleAutoZoomCommand=e.ToggleAutoZoomToWidthCommand=e.ToggleAutoZoomToContentCommand=e.SwitchAutoZoomCommand=e.FitToWidthCommand=e.FitToScreenCommand=e.ChangeZoomLevelItemsCommand=e.ChangeZoomLevelTo200Command=e.ChangeZoomLevelTo150Command=e.ChangeZoomLevelTo125Command=e.ChangeZoomLevelTo100Command=e.ChangeZoomLevelTo75Command=e.ChangeZoomLevelTo50Command=e.ChangeZoomLevelTo25Command=e.ChangeZoomLevelInPercentageCommand=e.ChangeZoomLevelCommand=void 0;var r=n(9741),s=n(240),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.view.getZoom()},e.prototype.executeCore=function(t,e){return this.control.settings.zoomLevel=e,this.control.settings.autoZoom=s.AutoZoomMode.Disabled,this.control.updateLayout(!0),!0},e.prototype.getItems=function(){return this.control.settings.zoomLevelItems.map((function(t){return{value:t,text:100*t+\"%\"}}))},e}(r.SimpleCommandBase);e.ChangeZoomLevelCommand=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(e,n){return t.prototype.executeCore.call(this,e,n/100)},e.prototype.getValue=function(){return 100*this.control.view.getZoom()},e}(a);e.ChangeZoomLevelInPercentageCommand=c;var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.view.getZoom()===this.exactValue},e.prototype.executeCore=function(e,n){return t.prototype.executeCore.call(this,e,this.exactValue),!0},e.prototype.getItems=function(){},e}(a),h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=.25,e}return i(e,t),e}(u);e.ChangeZoomLevelTo25Command=h;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=.5,e}return i(e,t),e}(u);e.ChangeZoomLevelTo50Command=p;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=.75,e}return i(e,t),e}(u);e.ChangeZoomLevelTo75Command=l;var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=1,e}return i(e,t),e}(u);e.ChangeZoomLevelTo100Command=d;var f=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=1.25,e}return i(e,t),e}(u);e.ChangeZoomLevelTo125Command=f;var y=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=1.5,e}return i(e,t),e}(u);e.ChangeZoomLevelTo150Command=y;var g=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.exactValue=2,e}return i(e,t),e}(u);e.ChangeZoomLevelTo200Command=g;var m=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.zoomLevelItems},e.prototype.executeCore=function(t,e){return this.control.settings.zoomLevelItems=e,!0},e}(r.SimpleCommandBase);e.ChangeZoomLevelItemsCommand=m;var v=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&!!this.control.render},e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.executeCore=function(t){var e=this.getZoomLevel();return this.control.settings.zoomLevel=e,this.control.settings.autoZoom=s.AutoZoomMode.Disabled,this.control.updateLayout(!0),!0},e}(r.SimpleCommandBase),P=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getZoomLevel=function(){return this.control.render.view.getActualAutoZoomLevel(s.AutoZoomMode.FitContent)},e}(v);e.FitToScreenCommand=P;var C=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getZoomLevel=function(){return this.control.render.view.getActualAutoZoomLevel(s.AutoZoomMode.FitToWidth)},e}(v);e.FitToWidthCommand=C;var S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.autoZoom},e.prototype.executeCore=function(t,e){return e=parseInt(e),this.control.settings.autoZoom!==e&&(e===s.AutoZoomMode.Disabled&&(this.control.settings.zoomLevel=this.control.view.getZoom()),this.control.settings.autoZoom=e,this.control.updateLayout(!0),!0)},e}(r.SimpleCommandBase);e.SwitchAutoZoomCommand=S;var x=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.settings.autoZoom===s.AutoZoomMode.FitContent},e.prototype.executeCore=function(e,n){return t.prototype.executeCore.call(this,e,s.AutoZoomMode.FitContent)},e}(S);e.ToggleAutoZoomToContentCommand=x;var b=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.settings.autoZoom===s.AutoZoomMode.FitToWidth},e.prototype.executeCore=function(e,n){return t.prototype.executeCore.call(this,e,s.AutoZoomMode.FitToWidth)},e}(S);e.ToggleAutoZoomToWidthCommand=b;var I=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){return t.prototype.isEnabled.call(this)&&!!this.control.render},e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.autoZoom},e.prototype.executeCore=function(t,e){var n;return n=void 0===e?this.control.settings.autoZoom===s.AutoZoomMode.Disabled?s.AutoZoomMode.FitContent:s.AutoZoomMode.Disabled:e?s.AutoZoomMode.FitContent:s.AutoZoomMode.Disabled,this.control.settings.autoZoom!==n&&(n||(this.control.settings.zoomLevel=this.control.view.getZoom()),this.control.settings.autoZoom=n,this.control.updateLayout(!0),!0)},e}(r.SimpleCommandBase);e.ToggleAutoZoomCommand=I},6619:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleFullscreenCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.fullscreen},e.prototype.executeCore=function(t,e){var n=\"boolean\"==typeof e?e:!t.value;return this.control.settings.fullscreen!==n&&(this.control.settings.fullscreen=!t.value,this.control.notifyToggleFullscreen(this.control.settings.fullscreen)),!0},e}(n(9741).SimpleCommandBase);e.ToggleFullscreenCommand=r},9970:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleReadOnlyCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.readOnly},e.prototype.executeCore=function(t,e){return\"boolean\"==typeof e?this.control.settings.readOnly=e:void 0===e&&(this.control.settings.readOnly=!t.value),!0},e}(n(9741).SimpleCommandBase);e.ToggleReadOnlyCommand=r},7795:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleSimpleViewCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabledInReadOnlyMode=function(){return!0},e.prototype.getValue=function(){return this.control.settings.simpleView},e.prototype.executeCore=function(t,e){return\"boolean\"==typeof e?this.control.settings.simpleView=e:void 0===e&&(this.control.settings.simpleView=!t.value),this.control.updateLayout(!0),!0},e}(n(9741).SimpleCommandBase);e.ToggleSimpleViewCommand=r},3591:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BringToFrontCommand=void 0;var r=n(5982),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedItems();return t.prototype.isEnabled.call(this)&&e.length>0&&this.needBringToFront(e)},e.prototype.executeCore=function(t,e){var n=this;return this.control.history.beginTransaction(),this.control.selection.getSelectedItems().forEach((function(t){var e=n.control.model.getIntersectItemsMaxZIndex(t)+1;n.control.history.addAndRedo(new r.ChangeZindexHistoryItem(t,e))})),this.control.history.endTransaction(),!0},e.prototype.needBringToFront=function(t){for(var e=this,n=function(n){var i=o.control.model.getIntersectItemsMaxZIndex(t[n]);if(i>t[n].zIndex)return{value:!0};if(i===t[n].zIndex){var r=!1;return o.control.model.getIntersectItems(t[n]).filter((function(e){return e.zIndex===t[n].zIndex})).forEach((function(o){e.control.model.getItemIndex(o)>e.control.model.getItemIndex(t[n])&&(r=!0)})),{value:r}}},o=this,i=0;i<t.length;i++){var r=n(i);if(\"object\"==typeof r)return r.value}return!1},e}(n(9741).SimpleCommandBase);e.BringToFrontCommand=s},2301:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorEndLineEndingCommand=e.ChangeConnectorStartLineEndingCommand=void 0;var r=n(7551),s=n(4612),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPropertyName=function(){return\"startLineEnding\"},e.prototype.getPropertyDefaultValue=function(){return s.ConnectorLineEnding.None},e}(r.ChangeConnectorPropertyCommand);e.ChangeConnectorStartLineEndingCommand=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPropertyName=function(){return\"endLineEnding\"},e.prototype.getPropertyDefaultValue=function(){return s.ConnectorLineEnding.Arrow},e}(r.ChangeConnectorPropertyCommand);e.ChangeConnectorEndLineEndingCommand=c},7306:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorLineOptionCommand=void 0;var r=n(7551),s=n(4612),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPropertyName=function(){return\"lineOption\"},e.prototype.getPropertyDefaultValue=function(){return s.ConnectorLineOption.Straight},e}(r.ChangeConnectorPropertyCommand);e.ChangeConnectorLineOptionCommand=a},7551:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorPropertyCommand=void 0;var r=n(8236),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.selection.inputPosition.getCurrentConnectorPropertyValue(this.getPropertyName())},e.prototype.getDefaultValue=function(){return this.getPropertyDefaultValue()},e.prototype.executeCore=function(t,e){var n=this;return this.control.history.beginTransaction(),this.control.selection.getSelectedConnectors().forEach((function(t){var o=n.getPropertyName();n.control.history.addAndRedo(new r.ChangeConnectorPropertyHistoryItem(t.key,o,e))})),this.control.selection.inputPosition.setConnectorPropertyValue(this.getPropertyName(),e),this.control.history.endTransaction(),!0},e.prototype.lockInputPositionUpdating=function(){return!0},e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedConnectors();return t.prototype.isEnabled.call(this)&&e.length>0},e}(n(9741).SimpleCommandBase);e.ChangeConnectorPropertyCommand=s},7717:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorRoutingModeCommand=void 0;var r=n(9741),s=n(240),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.settings.connectorRoutingMode},e.prototype.executeCore=function(t,e){var n=void 0!==e?e:s.ConnectorRoutingMode.None;return this.control.settings.connectorRoutingMode=n,!0},e}(r.SimpleCommandBase);e.ChangeConnectorRoutingModeCommand=a},1307:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeLockedCommand=void 0;var r=n(4867),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this,n=this.control.selection.getSelectedItems(!0),o=!1;return n.forEach((function(t){t.locked!==e.getLockState()&&(o=!0)})),t.prototype.isEnabled.call(this)&&o},e.prototype.executeCore=function(t,e){return r.ModelUtils.changeSelectionLocked(this.control.history,this.control.model,this.control.selection,this.getLockState()),!0},e}(n(9741).SimpleCommandBase);e.ChangeLockedCommand=s},9031:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.LockCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getLockState=function(){return!0},e}(n(1307).ChangeLockedCommand);e.LockCommand=r},4624:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SendToBackCommand=void 0;var r=n(5982),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.control.selection.getSelectedItems();return t.prototype.isEnabled.call(this)&&e.length>0&&this.needSendToBack(e)},e.prototype.executeCore=function(t,e){var n=this;return this.control.history.beginTransaction(),this.control.selection.getSelectedItems().forEach((function(t){var e=n.control.model.getIntersectItemsMinZIndex(t)-1;n.control.history.addAndRedo(new r.ChangeZindexHistoryItem(t,e))})),this.control.history.endTransaction(),!0},e.prototype.needSendToBack=function(t){for(var e=this,n=function(n){var i=o.control.model.getIntersectItemsMinZIndex(t[n]);if(i<t[n].zIndex)return{value:!0};if(i===t[n].zIndex){var r=!1;return o.control.model.getIntersectItems(t[n]).filter((function(e){return e.zIndex===t[n].zIndex})).forEach((function(o){e.control.model.getItemIndex(o)<e.control.model.getItemIndex(t[n])&&(r=!0)})),{value:r}}},o=this,i=0;i<t.length;i++){var r=n(i);if(\"object\"==typeof r)return r.value}return!1},e}(n(9741).SimpleCommandBase);e.SendToBackCommand=s},6049:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.UnLockCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getLockState=function(){return!1},e}(n(1307).ChangeLockedCommand);e.UnLockCommand=r},962:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteShapeImageCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.getSelectedShape();return t.prototype.isEnabled.call(this)&&!e.image.isEmpty},e.prototype.executeCore=function(e,n){return t.prototype.executeCore.call(this,e,void 0)},e}(n(7650).EditShapeImageCommandBase);e.DeleteShapeImageCommand=r},4281:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EditShapeImageCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.getSelectedShape();return t.prototype.isEnabled.call(this)&&!e.image.isEmpty},e}(n(7650).EditShapeImageCommandBase);e.EditShapeImageCommand=r},7650:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EditShapeImageCommandBase=void 0;var r=n(8210),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.getSelectedShape();return t.prototype.isEnabled.call(this)&&!!e&&!e.locked&&e.enableImage&&e.allowEditImage},e.prototype.getValue=function(){var t=this.getSelectedShape();return t?t.image.exportUrl:void 0},e.prototype.getSelectedShape=function(){var t=this.control.selection.getSelectedShapes(!0);return 1===t.length?t[0]:void 0},e.prototype.executeCore=function(t,e){this.control.history.beginTransaction();var n=this.control.selection.getSelectedShapes(!1);return this.control.history.addAndRedo(new r.ChangeShapeImageHistoryItem(n[0],e)),this.control.history.endTransaction(),!0},e}(n(9741).SimpleCommandBase);e.EditShapeImageCommandBase=s},9158:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.InsertShapeImageCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.isEnabled=function(){var e=this.getSelectedShape();return t.prototype.isEnabled.call(this)&&e.image.isEmpty},e}(n(7650).EditShapeImageCommandBase);e.InsertShapeImageCommand=r},9741:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SimpleCommandBase=void 0;var r=n(9687),s=n(2102),a=n(4867),c=n(6224),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getState=function(){return new s.SimpleCommandState(this.isEnabled(),this.getValue(),this.getDefaultValue(),this.getItems(),this.isVisible())},e.prototype.isVisible=function(){return!0},e.prototype.isEnabled=function(){return!this.control.settings.readOnly||this.isEnabledInReadOnlyMode()},e.prototype.isEnabledInReadOnlyMode=function(){return!1},e.prototype.getValue=function(){},e.prototype.getDefaultValue=function(){},e.prototype.getItems=function(){},e.prototype.getModelUnit=function(t){return a.ModelUtils.getlUnitValue(this.control.model.units,t)},e.prototype.getModelUnitText=function(t){return a.ModelUtils.getUnitText(this.control.model.units,c.DiagramLocalizationService.unitItems,c.DiagramLocalizationService.formatUnit,t)},e.prototype.getModelUnitTwipsValue=function(t){return a.ModelUtils.getTwipsValue(this.control.model.units,t)},e.prototype.getViewUnit=function(t){return a.ModelUtils.getlUnitValue(this.control.settings.viewUnits,t)},e.prototype.getViewUnitText=function(t){return a.ModelUtils.getUnitText(this.control.settings.viewUnits,c.DiagramLocalizationService.unitItems,c.DiagramLocalizationService.formatUnit,t)},e.prototype.getViewUnitTwipsValue=function(t){return a.ModelUtils.getTwipsValue(this.control.settings.viewUnits,t)},e}(r.CommandBase);e.SimpleCommandBase=u},1649:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeFillColorCommand=void 0;var r=n(5726),s=n(13),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.processParameter=function(t){return s.ColorUtils.stringToHash(t)},e.prototype.getStyleProperty=function(){return\"fill\"},e}(r.ChangeStylePropertyCommand);e.ChangeFillColorCommand=a},6106:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeFontColorCommand=void 0;var r=n(2722),s=n(13),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.processParameter=function(t){return s.ColorUtils.stringToHash(t)},e.prototype.getStyleProperty=function(){return\"fill\"},e}(r.ChangeStyleTextPropertyCommand);e.ChangeFontColorCommand=a},7480:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeFontNameCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"font-family\"},e}(n(2722).ChangeStyleTextPropertyCommand);e.ChangeFontNameCommand=r},4077:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeFontSizeCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"font-size\"},e}(n(2722).ChangeStyleTextPropertyCommand);e.ChangeFontSizeCommand=r},3166:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStrokeColorCommand=void 0;var r=n(5726),s=n(13),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.processParameter=function(t){return s.ColorUtils.stringToHash(t)},e.prototype.getStyleProperty=function(){return\"stroke\"},e}(r.ChangeStylePropertyCommand);e.ChangeStrokeColorCommand=a},4643:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStrokeStyleCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"stroke-dasharray\"},e}(n(5726).ChangeStylePropertyCommand);e.ChangeStrokeStyleCommand=r},4681:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStrokeWidthCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"stroke-width\"},e}(n(5726).ChangeStylePropertyCommand);e.ChangeStrokeWidthCommand=r},5726:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStylePropertyCommand=void 0;var r=n(521),s=n(4634),a=n(1552),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.selection.inputPosition.getCurrentStylePropertyValue(this.getStyleProperty())},e.prototype.getStyleObj=function(t){return t.style},e.prototype.getDefaultStyleObj=function(){return new a.Style},e.prototype.createHistoryItem=function(t,e,n){return new s.ChangeStyleHistoryItem(t.key,e,n)},e.prototype.updateInputPosition=function(t){this.control.selection.inputPosition.setStylePropertyValue(this.getStyleProperty(),t)},e}(r.ChangeStylePropertyCommandBase);e.ChangeStylePropertyCommand=c},521:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStylePropertyCommandBase=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.executeCore=function(t,e){var n=this;this.control.history.beginTransaction();var o=this.control.selection.getSelectedItems();return e=this.processParameter(e),o.forEach((function(t){var o=n.getStyleProperty();n.control.history.addAndRedo(n.createHistoryItem(t,o,e))})),this.updateInputPosition(e),this.control.history.endTransaction(),!0},e.prototype.getDefaultValue=function(){return this.getDefaultStyleObj()[this.getStyleProperty()]},e.prototype.processParameter=function(t){return t},e}(n(8351).StylePropertyCommandBase);e.ChangeStylePropertyCommandBase=r},2722:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStyleTextPropertyCommand=void 0;var r=n(521),s=n(926),a=n(1552),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.selection.inputPosition.getCurrentTextStylePropertyValue(this.getStyleProperty())},e.prototype.getStyleObj=function(t){return t.styleText},e.prototype.getDefaultStyleObj=function(){return new a.TextStyle},e.prototype.createHistoryItem=function(t,e,n){return new s.ChangeStyleTextHistoryItem(t.key,e,n)},e.prototype.updateInputPosition=function(t){this.control.selection.inputPosition.setTextStylePropertyValue(this.getStyleProperty(),t)},e}(r.ChangeStylePropertyCommandBase);e.ChangeStyleTextPropertyCommand=c},8700:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextRightAlignCommand=e.TextCenterAlignCommand=e.TextLeftAlignCommand=e.ChangeTextAlignCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"text-anchor\"},e}(n(6980).ToggleStyleTextPropertyCommand);e.ChangeTextAlignCommand=r;var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStylePropertyValue=function(){return\"start\"},e}(r);e.TextLeftAlignCommand=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStylePropertyValue=function(){return\"middle\"},e}(r);e.TextCenterAlignCommand=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStylePropertyValue=function(){return\"end\"},e}(r);e.TextRightAlignCommand=c},8351:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.StylePropertyCommandBase=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.lockInputPositionUpdating=function(){return!0},e}(n(9741).SimpleCommandBase);e.StylePropertyCommandBase=r},4378:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleFontBoldCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"font-weight\"},e.prototype.getStylePropertyValue=function(){return\"bold\"},e}(n(6980).ToggleStyleTextPropertyCommand);e.ToggleFontBoldCommand=r},7607:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleFontItalicCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"font-style\"},e.prototype.getStylePropertyValue=function(){return\"italic\"},e}(n(6980).ToggleStyleTextPropertyCommand);e.ToggleFontItalicCommand=r},3411:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleFontUnderlineCommand=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyleProperty=function(){return\"text-decoration\"},e.prototype.getStylePropertyValue=function(){return\"underline\"},e}(n(6980).ToggleStyleTextPropertyCommand);e.ToggleFontUnderlineCommand=r},6980:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleStyleTextPropertyCommand=void 0;var r=n(8351),s=n(926),a=n(1552),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getValue=function(){return this.control.selection.inputPosition.getCurrentTextStylePropertyValue(this.getStyleProperty())===this.getStylePropertyValue()},e.prototype.executeCore=function(t){var e=this;this.control.history.beginTransaction();var n=this.getStyleProperty(),o=t.value?a.TextStyle.defaultInstance[n]:this.getStylePropertyValue();return this.control.selection.getSelectedItems().forEach((function(t){e.control.history.addAndRedo(new s.ChangeStyleTextHistoryItem(t.key,n,o))})),this.control.selection.inputPosition.setTextStylePropertyValue(this.getStyleProperty(),o),this.control.history.endTransaction(),!0},e.prototype.getStyleObj=function(t){return t.styleText},e.prototype.getDefaultStyleObj=function(){return new a.TextStyle},e}(r.StylePropertyCommandBase);e.ToggleStyleTextPropertyCommand=c},5035:function(t,e){var n,o=this&&this.__extends||(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},n(t,e)},function(t,e){function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DataSourceEdgeDataImporter=e.DataSourceNodeDataImporter=e.DataSourceItemDataImporter=void 0;var i=function(){this.getKey=function(t){return t.id},this.setKey=function(t,e){t.id=e},this.getCustomData=void 0,this.setCustomData=void 0,this.getLocked=void 0,this.setLocked=void 0,this.getStyle=void 0,this.setStyle=void 0,this.getStyleText=void 0,this.setStyleText=void 0,this.getZIndex=void 0,this.setZIndex=void 0};e.DataSourceItemDataImporter=i;var r=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.getType=void 0,e.setType=void 0,e.getText=void 0,e.setText=void 0,e.getImage=void 0,e.setImage=void 0,e.getLeft=void 0,e.setLeft=void 0,e.getTop=void 0,e.setTop=void 0,e.getWidth=void 0,e.setWidth=void 0,e.getHeight=void 0,e.setHeight=void 0,e.getChildren=void 0,e.setChildren=void 0,e.getParentKey=void 0,e.setParentKey=void 0,e.getItems=void 0,e.setItems=void 0,e.getContainerKey=void 0,e.setContainerKey=void 0,e}return o(e,t),e}(i);e.DataSourceNodeDataImporter=r;var s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.getFrom=function(t){return t.from},e.setFrom=function(t,e){t.from=e},e.getFromPointIndex=void 0,e.setFromPointIndex=void 0,e.getTo=function(t){return t.to},e.setTo=function(t,e){t.to=e},e.getToPointIndex=void 0,e.setToPointIndex=void 0,e.getPoints=void 0,e.setPoints=void 0,e.getText=void 0,e.setText=void 0,e.getLineOption=void 0,e.setLineOption=void 0,e.getStartLineEnding=void 0,e.setStartLineEnding=void 0,e.getEndLineEnding=void 0,e.setEndLineEnding=void 0,e}return o(e,t),e}(i);e.DataSourceEdgeDataImporter=s},3503:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DataLayoutParameters=e.DataLayoutType=void 0;var o,i=n(8710),r=n(9533),s=n(1256);!function(t){t[t.Tree=0]=\"Tree\",t[t.Sugiyama=1]=\"Sugiyama\"}(o=e.DataLayoutType||(e.DataLayoutType={}));var a=function(){function t(t,e){this.sizeSettings=t,e&&(void 0!==e.type&&(this.layoutType=e.type,this.layoutSettings=this.layoutType===o.Sugiyama?new i.LayoutSettings:new i.TreeLayoutSettings),void 0!==e.orientation&&(this.layoutSettings.orientation=e.orientation),this.skipPointIndices=e.skipPointIndices,this.autoSizeEnabled=e.autoSizeEnabled)}return Object.defineProperty(t.prototype,\"needAutoLayout\",{get:function(){return void 0!==this.layoutType},enumerable:!1,configurable:!0}),t.prototype.getLayoutBuilder=function(t){return this.layoutType===o.Tree?new r.TreeLayoutBuilder(this.layoutSettings,t):new s.SugiyamaLayoutBuilder(this.layoutSettings,t)},t}();e.DataLayoutParameters=a},4225:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DataSource=void 0;var o=n(9291),i=n(8900),r=n(6353),s=n(3477),a=n(9603),c=n(4145),u=n(8930),h=n(4629),p=n(8236),l=n(5144),d=n(9559),f=n(7443),y=n(8210),g=n(6516),m=n(5982),v=n(4634),P=n(926),C=n(7959),S=n(4867),x=n(2259),b=n(4246),I=n(8675),w=n(13),_=n(4914),T=n(8396),O=n(3490),M=n(5035),E=n(5558),D=n(58),A=function(){function t(t,e,n,o,i,r){if(this.key=t,this.nodes=[],this.edges=[],this.autoGeneratedDataKeys={},this.addInternalKeyOnInsert=!1,this.useNodeParentId=!1,this.useNodeContainerId=!1,this.useNodeChildren=!1,this.useNodeItems=!1,this.canUseAutoSize=!1,this.canUpdateEdgeDataSource=!1,this.containers=null,null==t)throw new Error(\"DataSource key must be specified\");this.key=t.toString(),this.loadParameters(o||{}),this.nodeDataImporter=this.createNodeDataImporter(i),this.edgeDataImporter=this.createEdgeDataImporter(r),this.nodeDataSource=e||[],this.edgeDataSource=n||[],this.canUpdateEdgeDataSource=!!n,this.fetchData()}return t.prototype.loadParameters=function(t){this.addInternalKeyOnInsert=!!t.addInternalKeyOnInsert},t.prototype.isAutoGeneratedKey=function(t){return t&&!!this.autoGeneratedDataKeys[t]},t.prototype.createNodeDataImporter=function(t){var e=new M.DataSourceNodeDataImporter;return t&&this.assignNodeDataImporterProperties(t,e),e},t.prototype.createEdgeDataImporter=function(t){var e=new M.DataSourceEdgeDataImporter;return t&&this.assignEdgeDataImporterProperties(t,e),e},t.prototype.assignItemDataImporterProperties=function(t,e){t.getKey&&(e.getKey=t.getKey),t.setKey&&(e.setKey=t.setKey),t.getCustomData&&(e.getCustomData=t.getCustomData),t.setCustomData&&(e.setCustomData=t.setCustomData),t.getLocked&&(e.getLocked=t.getLocked),t.setLocked&&(e.setLocked=t.setLocked),t.getStyle&&(e.getStyle=t.getStyle),t.setStyle&&(e.setStyle=t.setStyle),t.getStyleText&&(e.getStyleText=t.getStyleText),t.setStyleText&&(e.setStyleText=t.setStyleText),t.getZIndex&&(e.getZIndex=t.getZIndex),t.setZIndex&&(e.setZIndex=t.setZIndex)},t.prototype.assignNodeDataImporterProperties=function(t,e){this.assignItemDataImporterProperties(t,e),t.getType&&(e.getType=t.getType),t.setType&&(e.setType=t.setType),t.getImage&&(e.getImage=t.getImage),t.setImage&&(e.setImage=t.setImage),t.getText&&(e.getText=t.getText),t.setText&&(e.setText=t.setText),t.getLeft&&(e.getLeft=t.getLeft),t.setLeft&&(e.setLeft=t.setLeft),t.getTop&&(e.getTop=t.getTop),t.setTop&&(e.setTop=t.setTop),t.getWidth&&(e.getWidth=t.getWidth),t.setWidth&&(e.setWidth=t.setWidth),t.getHeight&&(e.getHeight=t.getHeight),t.setHeight&&(e.setHeight=t.setHeight),t.getChildren&&(e.getChildren=t.getChildren),t.setChildren&&(e.setChildren=t.setChildren),t.getParentKey&&(e.getParentKey=t.getParentKey),t.setParentKey&&(e.setParentKey=t.setParentKey),t.getItems&&(e.getItems=t.getItems),t.setItems&&(e.setItems=t.setItems),t.getContainerKey&&(e.getContainerKey=t.getContainerKey),t.setContainerKey&&(e.setContainerKey=t.setContainerKey)},t.prototype.assignEdgeDataImporterProperties=function(t,e){this.assignItemDataImporterProperties(t,e),t.getFrom&&(e.getFrom=t.getFrom),t.setFrom&&(e.setFrom=t.setFrom),t.getFromPointIndex&&(e.getFromPointIndex=t.getFromPointIndex),t.setFromPointIndex&&(e.setFromPointIndex=t.setFromPointIndex),t.getTo&&(e.getTo=t.getTo),t.setTo&&(e.setTo=t.setTo),t.getToPointIndex&&(e.getToPointIndex=t.getToPointIndex),t.setToPointIndex&&(e.setToPointIndex=t.setToPointIndex),t.getPoints&&(e.getPoints=t.getPoints),t.setPoints&&(e.setPoints=t.setPoints),t.getText&&(e.getText=t.getText),t.setText&&(e.setText=t.setText),t.getLineOption&&(e.getLineOption=t.getLineOption),t.setLineOption&&(e.setLineOption=t.setLineOption),t.getStartLineEnding&&(e.getStartLineEnding=t.getStartLineEnding),t.setStartLineEnding&&(e.setStartLineEnding=t.setStartLineEnding),t.getEndLineEnding&&(e.getEndLineEnding=t.getEndLineEnding),t.setEndLineEnding&&(e.setEndLineEnding=t.setEndLineEnding)},t.prototype.fetchData=function(){var t=this;if(this.nodes=[],this.edges=[],this.autoGeneratedDataKeys={},this.useNodeParentId=void 0!==this.nodeDataImporter.getParentKey,this.useNodeContainerId=void 0!==this.nodeDataImporter.getContainerKey,this.useNodeItems=void 0!==this.nodeDataImporter.getItems,this.useNodeChildren=void 0!==this.nodeDataImporter.getChildren,this.canUseAutoSize=void 0===this.nodeDataImporter.getWidth&&void 0!==this.nodeDataImporter.getText,this.useEdgesArray()&&this.useNodeParentId)throw new Error(\"You cannot use edges array and parentKey simultaneously.\");if(this.useEdgesArray()&&this.useNodeItems)throw new Error(\"You cannot use edges array and items array simultaneously.\");if(this.useNodeParentId&&this.useNodeItems)throw new Error(\"You cannot use parentKey and items array simultaneously.\");if(this.useNodeContainerId&&this.useNodeChildren)throw new Error(\"You cannot use containerKey and children array simultaneously.\");this.nodeDataSource.forEach((function(e){t.addNode(e)})),this.useEdgesArray()?this.edgeDataSource.forEach((function(e){t.addEdge(e)})):this.nodes.forEach((function(e){t.addNodeEdgesByParentId(e)}))},t.prototype.isContainer=function(t){var e=this;return!this.containers&&this.useNodeContainerId&&(this.containers=this.nodeDataSource.map((function(t){return e.nodeDataImporter.getContainerKey(t)})).filter((function(t){return null!=t})).reduce((function(t,e){return t[e]=!0,t}),{})),this.containers&&this.containers[t]},t.prototype.refetchData=function(t,e){var n=this;this.nodeDataSource=t||this.nodeDataSource,this.edgeDataSource=e||this.edgeDataSource;var o=this.nodes.slice(),i=this.edges.slice();return this.fetchData(),{nodes:this.getItemChanges(o,this.nodes,(function(t,e){return t.key===e.key||t.dataObj===e.dataObj})),edges:this.getItemChanges(i,this.edges,(function(t,e){return n.useNodeParentId||n.useNodeItems?t.key===e.key||t.from===e.from&&t.to===e.to:t.key===e.key||t.dataObj===e.dataObj}))}},t.prototype.getItemChanges=function(t,e,n){var o=this,i=t.filter((function(t){return o.containsItem(e,t,n)})),r=t.filter((function(t){return!o.containsItem(e,t,n)})),s=e.filter((function(e){return!o.containsItem(t,e,n)}));return{remained:i.map((function(t){return t.key})),remainedNewKeys:i.map((function(t){var o;return null===(o=e.find((function(e){return n(t,e)})))||void 0===o?void 0:o.key})),removed:r.map((function(t){return t.key})),added:s.map((function(t){return t.key}))}},t.prototype.containsItem=function(t,e,n){var o=!1;return t.forEach((function(t){!o&&n(t,e)&&(o=!0)})),o},t.prototype.useEdgesArray=function(){return Array.isArray(this.edgeDataSource)&&(this.edgeDataSource.length||!(this.useNodeParentId||this.useNodeItems))},t.prototype.addNode=function(t,e,n,o){var i=this,r=this.nodeDataImporter.getChildren&&this.nodeDataImporter.getChildren(t),s=r&&Array.isArray(r)&&r.length,a=s||this.isContainer(this.nodeDataImporter.getKey(t)),c=this.nodeDataImporter.getType&&this.nodeDataImporter.getType(t)||a&&x.ShapeTypes.VerticalContainer||x.ShapeTypes.Rectangle,u=this.nodeDataImporter.getText&&(this.nodeDataImporter.getText(t)||\"\"),h=this.addNodeInternal(t,c,u,e,n,o);if(this.assignNodeProperties(h,t),s&&r.forEach((function(e){i.addNode(e,void 0,h.key,t)})),this.useNodeItems){var p=this.nodeDataImporter.getItems(t);Array.isArray(p)&&p.length&&p.forEach((function(e){var r=i.addNode(e,t,n,o);i.addEdgeInternal(void 0,h.key,r.key)}))}return h},t.prototype.addNodeEdgesByParentId=function(t){if(this.useNodeParentId){var e=this.nodeDataImporter.getParentKey(t.dataObj);if(null!=e)this.findNode(e)&&this.addEdgeInternal(void 0,this.getNodeKey(t.dataObj,this.nodeDataImporter.getParentKey),this.getNodeKey(t.dataObj,this.nodeDataImporter.getKey))}},t.prototype.addNodeInternal=function(t,e,n,o,i,r){var s=this.nodeDataImporter.getKey(t),a=null!=s?s:S.ModelUtils.getGuidItemKey(),c=new E.DataSourceNodeItem(this.key,a,t,e,n,o,i,r);return this.nodes.push(c),null==s&&(s=a,this.autoGeneratedDataKeys[a]=!0),c},t.prototype.addEdge=function(t){var e=this.addEdgeInternal(t,this.getNodeKey(t,this.edgeDataImporter.getFrom),this.getNodeKey(t,this.edgeDataImporter.getTo));return this.assignEdgeProperties(e,t),e},t.prototype.addEdgeInternal=function(t,e,n){var o=t&&this.edgeDataImporter.getKey(t),i=null!=o?o:S.ModelUtils.getGuidItemKey(),r=new E.DataSourceEdgeItem(this.key,i,t,e,n);return this.edges.push(r),null==o&&(o=i,this.autoGeneratedDataKeys[i]=!0),r},t.prototype.assignItemProperties=function(t,e,n){if(n.getCustomData&&(t.customData=I.ObjectUtils.cloneObject(n.getCustomData(e))),n.getLocked&&(t.locked=n.getLocked(e)),n.getStyle){var o=n.getStyle(e);t.style=\"string\"==typeof o?_.Data.cssTextToObject(o):o}if(n.getStyleText){o=n.getStyleText(e);t.styleText=\"string\"==typeof o?_.Data.cssTextToObject(o):o}n.getZIndex&&(t.zIndex=n.getZIndex(e))},t.prototype.assignNodeProperties=function(t,e){this.assignItemProperties(t,e,this.nodeDataImporter),this.nodeDataImporter.getImage&&(t.image=this.nodeDataImporter.getImage(e)),this.nodeDataImporter.getLeft&&(t.left=this.nodeDataImporter.getLeft(e)),this.nodeDataImporter.getTop&&(t.top=this.nodeDataImporter.getTop(e)),this.nodeDataImporter.getWidth&&(t.width=this.nodeDataImporter.getWidth(e)),this.nodeDataImporter.getHeight&&(t.height=this.nodeDataImporter.getHeight(e)),this.nodeDataImporter.getContainerKey&&(t.containerKey=this.nodeDataImporter.getContainerKey(e))},t.prototype.assignEdgeProperties=function(t,e){if(this.assignItemProperties(t,e,this.edgeDataImporter),this.edgeDataImporter.getFromPointIndex&&(t.fromPointIndex=this.edgeDataImporter.getFromPointIndex(e)),this.edgeDataImporter.getToPointIndex&&(t.toPointIndex=this.edgeDataImporter.getToPointIndex(e)),this.edgeDataImporter.getPoints&&(t.points=this.edgeDataImporter.getPoints(e)),this.edgeDataImporter.getText){var n=this.edgeDataImporter.getText(e);if(t.texts={},\"object\"==typeof n){for(var o in n)if(Object.prototype.hasOwnProperty.call(n,o)){var i=parseFloat(o),r=n[o];isNaN(i)||\"string\"!=typeof r||\"\"===r||(i=Math.min(1,Math.max(0,i)),t.texts[i]=r)}}else\"string\"==typeof n&&\"\"!==n&&(t.texts[C.CONNECTOR_DEFAULT_TEXT_POSITION]=n)}this.edgeDataImporter.getLineOption&&(t.lineOption=this.edgeDataImporter.getLineOption(e)),this.edgeDataImporter.getStartLineEnding&&(t.startLineEnding=this.edgeDataImporter.getStartLineEnding(e)),this.edgeDataImporter.getEndLineEnding&&(t.endLineEnding=this.edgeDataImporter.getEndLineEnding(e))},t.prototype.findNode=function(t){return this.nodes.filter((function(e){return void 0!==t&&e.key===t}))[0]},t.prototype.findEdge=function(t){return this.edges.filter((function(e){return void 0!==t&&e.key===t}))[0]},t.prototype.getNodeKey=function(t,e){return e(t)},t.prototype.createModelItems=function(t,e,n,o,r,s,a,c){var u=this;this.beginChangesNotification(),t.clear(),t.beginTransaction(),S.ModelUtils.deleteAllItems(t,e,o),e.initializeKeyCounter();var h=s?Math.max(1,Math.floor(2e3/a))*a:2e3,p=0,l=0,d={},f=[],y=[];this.nodes.forEach((function(y){var g=new i.Point(l++*h,p*h),m=u.createShapeByNode(t,e,o,n,y,g,r,s,a,c);void 0!==y.key&&(d[y.key]=m.key),l>4&&(l=0,p++),f.push(m)})),this.nodes.forEach((function(n){if(void 0!==n.containerKey&&null!==n.containerKey){var o=d[n.key],i=e.findShape(o),r=d[n.containerKey],s=e.findShape(r);s&&S.ModelUtils.insertToContainer(t,e,i,s)}})),this.edges.forEach((function(n){var i=e.findShape(d[n.to]),r=e.findShape(d[n.from]),s=u.createConnectorByEdge(t,e,o,n,r,i);s&&(y.push(s),S.ModelUtils.updateConnectorContainer(t,e,s))})),r.needAutoLayout&&this.applyLayout(t,e,f,y,r,s,a),S.ModelUtils.tryUpdateModelRectangle(t),t.endTransaction(!0),this.endChangesNotification(!0)},t.prototype.updateModelItems=function(t,e,n,o,r,s,a,c,u,h,p,l){var d=this;this.beginChangesNotification(),t.beginTransaction();var f=[],y=[],g=[],m=u.nodes.removed.map((function(t){return e.findShapeByDataKey(t)})).filter((function(t){return t}));m.forEach((function(t){t.attachedConnectors.forEach((function(e){e.beginItem&&e.beginItem!==t&&y.push(e.beginItem),e.endItem&&e.endItem!==t&&y.push(e.endItem)}))})),S.ModelUtils.deleteItems(t,e,o,m,!0);var v=u.edges.removed.map((function(t){return e.findConnectorByDataKey(t)})).filter((function(t){return t}));v.forEach((function(t){t.beginItem&&y.push(t.beginItem),t.endItem&&y.push(t.endItem)})),S.ModelUtils.deleteItems(t,e,o,v,!0),y=this.purgeLayoutShapes(y,m),(a||[]).forEach((function(s){if(-1!==u.nodes.remained.indexOf(s)){var a=d.findNode(s);if(a){var c=e.findShapeByDataKey(s);if(c){var g=c.position.clone();d.changeShapeByDataItem(t,e,c,a,g),d.changeItemByDataItem(t,c,a)}else c=d.createShapeByNode(t,e,o,n,a,new i.Point(0,0),r,h,p,l);d.updateShapeContainer(t,e,c,a),y.push(c),f.push(c)}}})),u.nodes.remained.forEach((function(t,n){var o=e.findShapeByDataKey(t);o&&(o.dataKey=u.nodes.remainedNewKeys[n])})),u.nodes.added.forEach((function(s){var a=d.findNode(s),c=d.createShapeByNode(t,e,o,n,a,new i.Point(0,0),r,h,p,l);d.updateShapeContainer(t,e,c,a),y.push(c)})),u.edges.added.forEach((function(n){var i=d.findEdge(n),r=e.findShapeByDataKey(i.from),s=e.findShapeByDataKey(i.to),a=d.createConnectorByEdge(t,e,o,i,r,s);a&&(S.ModelUtils.updateConnectorContainer(t,e,a),g.push(a))}));var P=a||[];u.edges.remained.forEach((function(t){var e=d.findEdge(t);!e||-1===u.nodes.added.indexOf(e.from)&&-1===u.nodes.added.indexOf(e.to)||P.push(t)})),P.forEach((function(n){if(-1!==u.edges.remained.indexOf(n)){var i=d.findEdge(n);if(i){var r=e.findShapeByDataKey(i.from),s=e.findShapeByDataKey(i.to),a=e.findConnectorByDataKey(n);a?(d.changeConnectorPointsByDataItem(t,a,d.getConnectorPointsByEdge(e,i,r,s,!1)),d.changeConnectorByDataItem(t,e,a,r,s,i),d.changeItemByDataItem(t,a,i)):a=d.createConnectorByEdge(t,e,o,i,r,s),a&&(S.ModelUtils.updateConnectorContainer(t,e,a),g.push(a),f.push(a))}}})),u.edges.remained.forEach((function(t,n){var o=e.findConnectorByDataKey(t);o&&(o.dataKey=u.edges.remainedNewKeys[n])})),f.length&&c&&f.forEach((function(t){t.hasTemplate&&c(t)})),r.needAutoLayout&&(y.length||g.length)&&this.applyLayout(t,e,y,g,r,h,p),S.ModelUtils.tryUpdateModelRectangle(t),t.endTransaction(!s),this.endChangesNotification(!1)},t.prototype.purgeLayoutShapes=function(t,e){var n=e.reduce((function(t,e){return(t[e.key]=!0)&&t}),{});return t.reduce((function(t,e){return void 0===t.keySet[e.key]&&void 0===n[e.key]&&(t.uniqueShapes.push(e),t.keySet[e.key]=!0),t}),{uniqueShapes:[],keySet:{}}).uniqueShapes},t.prototype.applyShapeAutoSize=function(t,e,n,i,s,a){if(i.description.enableText){var c=i.textRectangle.createSize(),u=i.size,p=c.width-u.width,l=c.height-u.height,d=i.getMaxWidth(n.shapeMaxWidth),f=i.getMaxHeight(n.shapeMaxHeight),y=function(t,e){return\"number\"==typeof t?o.UnitConverter.twipsToPixelsF(t+(e?p:l)):void 0},g=O.getOptimalTextRectangle(i.text,i.styleText,b.TextOwner.Shape,e,c.clone().applyConverter(o.UnitConverter.twipsToPixelsF),i.description.keepRatioOnAutoSize,y(i.getMinWidth(n.shapeMinWidth),!0),y(d,!0),y(i.getMinHeight(n.shapeMinHeight),!1),y(f,!1)).clone().applyConverter(o.UnitConverter.pixelsToTwips);if(!g.equals(c)){var m=i.description.getSizeByText(g,i);s&&a&&(m=new r.Size(Math.min(a*Math.ceil(m.width/a),d||Number.MAX_VALUE),Math.min(a*Math.ceil(m.height/a),f||Number.MAX_VALUE))),t.addAndRedo(new h.ResizeShapeHistoryItem(i.key,i.position,m))}}},t.prototype.applyLayout=function(t,e,n,o,i,r,s){S.ModelUtils.getGraphInfoByItems(e,n,o).forEach((function(a){var c=i.getLayoutBuilder(a.graph).build(),u=S.ModelUtils.getNonGraphItems(e,a.container,c.nodeToLayout,n,o);S.ModelUtils.applyLayout(t,e,a.container,a.graph,c,u,i.layoutSettings,r,s,i.skipPointIndices)}))},t.prototype.changeItemByDataItem=function(t,e,n){if(void 0===n.customData||I.ObjectUtils.compareObjects(n.customData,e.customData)||t.addAndRedo(new d.ChangeCustomDataHistoryItem(e.key,n.customData)),void 0!==n.zIndex&&n.zIndex!==e.zIndex&&t.addAndRedo(new m.ChangeZindexHistoryItem(e,n.zIndex)),void 0!==n.style)for(var o in n.style){if(Object.prototype.hasOwnProperty.call(n.style,o))(r=this.getPreparedStyleValue(n.style[o],T.isColorProperty(o)))!==e.style[o]&&t.addAndRedo(new v.ChangeStyleHistoryItem(e.key,o,r))}var i=e.style.getDefaultInstance();if(e.style.forEach((function(o){n.style&&void 0===n.style[o]&&e.style[o]!==i[o]&&t.addAndRedo(new v.ChangeStyleHistoryItem(e.key,o,i[o]))})),void 0!==n.styleText)for(var o in n.styleText){var r;if(Object.prototype.hasOwnProperty.call(n.styleText,o))(r=this.getPreparedStyleValue(n.styleText[o],T.isColorProperty(o)))!==e.styleText[o]&&t.addAndRedo(new P.ChangeStyleTextHistoryItem(e.key,o,r))}var s=e.styleText.getDefaultInstance();e.styleText.forEach((function(o){n.styleText&&void 0===n.styleText[o]&&e.styleText[o]!==s[o]&&t.addAndRedo(new P.ChangeStyleTextHistoryItem(e.key,o,s[o]))})),void 0!==n.locked&&n.locked!==e.locked&&t.addAndRedo(new f.ChangeLockedHistoryItem(e,n.locked))},t.prototype.getPreparedStyleValue=function(t,e){if(e){var n=w.ColorUtils.stringToHash(t);null!==n&&(t=n)}return t},t.prototype.createShapeByNode=function(t,e,n,o,i,r,s,a,u,h){var p=new c.AddShapeHistoryItem(o.get(i.type),r,\"\",i.key);t.addAndRedo(p);var l=e.findShape(p.shapeKey);return S.ModelUtils.updateNewShapeProperties(t,n,p.shapeKey),this.changeShapeByDataItem(t,e,l,i,r),this.changeItemByDataItem(t,l,i),h&&this.canUseAutoSize&&s.autoSizeEnabled&&this.applyShapeAutoSize(t,h,s.sizeSettings,l,a,u),l},t.prototype.changeShapeByDataItem=function(t,e,n,o,i){void 0!==o.left&&(i.x=S.ModelUtils.getTwipsValue(e.units,o.left)),void 0!==o.top&&(i.y=S.ModelUtils.getTwipsValue(e.units,o.top)),S.ModelUtils.setShapePosition(t,e,n,i,!1),void 0!==o.type&&S.ModelUtils.changeShapeType(t,e,n,o.type);var r=n.size.clone();void 0!==o.width&&(r.width=S.ModelUtils.getTwipsValue(e.units,o.width)),void 0!==o.height&&(r.height=S.ModelUtils.getTwipsValue(e.units,o.height)),S.ModelUtils.setShapeSize(t,e,n,i,r),S.ModelUtils.updateShapeAttachedConnectors(t,e,n),void 0!==o.text&&o.text!==n.text&&t.addAndRedo(new g.ChangeShapeTextHistoryItem(n,o.text)),void 0!==o.image&&o.image!==n.image.actualUrl&&t.addAndRedo(new y.ChangeShapeImageHistoryItem(n,o.image))},t.prototype.updateShapeContainer=function(t,e,n,o){var i=void 0!==o.containerKey?e.findShapeByDataKey(o.containerKey):void 0;i!==n.container&&(i?S.ModelUtils.insertToContainer(t,e,n,i):S.ModelUtils.removeFromContainer(t,e,n))},t.prototype.getConnectorPointsByEdge=function(t,e,n,o,i){var r=[],s=this.createModelPointFromDataSourceEdgeItemPoints(t.units,e);if(s&&s.length>1)for(var a=s.length-1,c=0;c<=a;c++){var u=s[c];if(null!==u)r.push(u);else{if(!n&&!o)return;0===c&&n?r.push(n.position.clone()):c===a&&o&&r.push(o.position.clone())}}else i&&(n&&r.push(n.position.clone()),o&&r.push(o.position.clone()));return r},t.prototype.createModelPointFromDataSourceEdgeItemPoints=function(t,e){var n=this,o=[];if(Array.isArray(e.points))return e.points.forEach((function(e){return o.push(n.isValidDataSourceEdgeItemPoint(e)?n.createModelPoint(t,e):null)})),o},t.prototype.createModelPoint=function(t,e){return new i.Point(S.ModelUtils.getTwipsValue(t,e.x),S.ModelUtils.getTwipsValue(t,e.y))},t.prototype.isValidDataSourceEdgeItemPoint=function(t){return null!=t&&void 0!==t.x&&void 0!==t.y&&null!==t.x&&null!==t.y},t.prototype.createConnectorByEdge=function(t,e,n,o,i,r){var s,c=o.key,u=this.getConnectorPointsByEdge(e,o,i,r,!0);if(u&&u.length>1){var h=new a.AddConnectorHistoryItem(u,c);t.addAndRedo(h),s=e.findConnector(h.connectorKey),S.ModelUtils.updateNewConnectorProperties(t,n,h.connectorKey),this.changeConnectorByDataItem(t,e,s,i,r,o),this.changeItemByDataItem(t,s,o)}return s},t.prototype.changeConnectorByDataItem=function(t,e,n,o,i,r){var a=void 0!==r.fromPointIndex?r.fromPointIndex:n.beginConnectionPointIndex;n.beginItem===o&&n.beginConnectionPointIndex===a||(n.beginItem&&t.addAndRedo(new u.DeleteConnectionHistoryItem(n,C.ConnectorPosition.Begin)),o&&t.addAndRedo(new s.AddConnectionHistoryItem(n,o,a,C.ConnectorPosition.Begin)));var c=void 0!==r.toPointIndex?r.toPointIndex:n.endConnectionPointIndex;if(n.endItem===i&&n.endConnectionPointIndex===c||(n.endItem&&t.addAndRedo(new u.DeleteConnectionHistoryItem(n,C.ConnectorPosition.End)),i&&t.addAndRedo(new s.AddConnectionHistoryItem(n,i,c,C.ConnectorPosition.End))),S.ModelUtils.updateConnectorAttachedPoints(t,e,n),void 0!==r.texts&&!this.compareTexts(r,n))for(var h in n.texts.forEach((function(e){t.addAndRedo(new l.ChangeConnectorTextHistoryItem(n,e.position,void 0))})),r.texts)if(Object.prototype.hasOwnProperty.call(r.texts,h)){var d=parseFloat(h);t.addAndRedo(new l.ChangeConnectorTextHistoryItem(n,d,r.texts[h]))}void 0!==r.lineOption&&r.lineOption!==n.properties.lineOption&&t.addAndRedo(new p.ChangeConnectorPropertyHistoryItem(n.key,\"lineOption\",r.lineOption)),void 0!==r.startLineEnding&&r.startLineEnding!==n.properties.startLineEnding&&t.addAndRedo(new p.ChangeConnectorPropertyHistoryItem(n.key,\"startLineEnding\",r.startLineEnding)),void 0!==r.endLineEnding&&r.endLineEnding!==n.properties.endLineEnding&&t.addAndRedo(new p.ChangeConnectorPropertyHistoryItem(n.key,\"endLineEnding\",r.endLineEnding))},t.prototype.changeConnectorPointsByDataItem=function(t,e,n){n&&n.length>1&&n.join(\",\")!==e.points.join(\",\")&&t.addAndRedo(new D.ReplaceConnectorPointsHistoryItem(e.key,n))},t.prototype.compareTexts=function(t,e){var n=t.texts||{},o=Object.keys(n).length===e.getTextCount();if(o)for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=parseFloat(i);this.compareStrings(e.getText(r),n[i])||(o=!1)}return o},t.prototype.compareStrings=function(t,e){return\"string\"==typeof t&&\"string\"==typeof e?t===e:this.isEmptyString(t)&&this.isEmptyString(e)},t.prototype.isEmptyString=function(t){return\"\"===t||null==t},t}();e.DataSource=A},5558:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DataSourceEdgeItem=e.DataSourceNodeItem=e.DataSourceItem=void 0;var r=n(7959),s=function(t,e,n){this.sourceKey=t,this.key=e,this.dataObj=n};e.DataSourceItem=s;var a=function(t){function e(e,n,o,i,r,s,a,c){var u=t.call(this,e,n,o)||this;return u.type=i,u.text=r,u.parentDataObj=s,u.containerKey=a,u.containerDataObj=c,u}return i(e,t),e}(s);e.DataSourceNodeItem=a;var c=function(t){function e(e,n,o,i,r){var s=t.call(this,e,n,o)||this;return s.sourceKey=e,s.from=i,s.to=r,s}return i(e,t),Object.defineProperty(e.prototype,\"text\",{get:function(){return this.texts&&this.texts[r.CONNECTOR_DEFAULT_TEXT_POSITION]},enumerable:!1,configurable:!0}),e}(s);e.DataSourceEdgeItem=c},8717:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DocumentDataSource=e.UpdateNodeKeyRelatedObjectsStackAction=e.UpdateNodeKeyRelatedObjectsStackItem=void 0;var r=n(2259),s=n(5503),a=n(7959),c=n(4225),u=n(4867),h=n(4914),p=n(8675),l=n(49),d=n(8679),f=function(t,e){this.shape=t,this.nodeObj=e};e.UpdateNodeKeyRelatedObjectsStackItem=f;var y=function(t,e){this.kind=t,this.nodeObj=e};e.UpdateNodeKeyRelatedObjectsStackAction=y;var g=function(t){function e(e,n,o,i,r,s){var a=t.call(this,\"Document\",n,o,i,r,s)||this;return a.changesListener=e,a.nodeInsertingLockCount=0,a.updateNodeKeyRelatedObjectsCount=0,a.updateNodeKeyRelatedObjectsStack=[],a.updateNodeKeyRelatedObjectsStackActions=[],a}return i(e,t),e.prototype.updateItemsByModel=function(t){var e=this;this.beginChangesNotification(),this.deleteNodes(t),this.deleteEdges(t),t.items.forEach((function(n){n instanceof s.Shape&&e.updateNode(t,n),n instanceof a.Connector&&e.updateEdge(t,n)})),this.endChangesNotification(!1)},e.prototype.isItemObjectModified=function(t,e,n){var o=n.setLocked&&e.locked!==t.locked||n.setZIndex&&e.zIndex!==t.zIndex||n.setCustomData&&!p.ObjectUtils.compareObjects(e.customData,t.customData);if(!o&&n.setStyle){var i=t.style.getDefaultInstance();t.style.forEach((function(n){t.style[n]!==i[n]&&t.style[n]!==(e.style&&e.style[n])&&(o=!0)}))}if(!o&&n.setStyleText){var r=t.styleText.getDefaultInstance();t.styleText.forEach((function(n){t.styleText[n]!==r[n]&&t.styleText[n]!==(e.styleText&&e.styleText[n])&&(o=!0)}))}return o},e.prototype.setDataObjectKeyRelatedProperty=function(t,e,n,o){(o||void 0===this.autoGeneratedDataKeys[n])&&t(e,n)},e.prototype.updateItemObjectProperties=function(t,e,n){if(n.setCustomData&&(t.customData=p.ObjectUtils.cloneObject(e.customData),t.dataObj&&void 0!==t.customData&&n.setCustomData(t.dataObj,e.customData)),n.setLocked&&(t.locked=e.locked,t.dataObj&&void 0!==t.locked&&n.setLocked(t.dataObj,e.locked)),n.setStyle){var o=e.style.toObject();t.style=o,t.dataObj&&void 0!==t.style&&n.setStyle(t.dataObj,h.Data.objectToCssText(o))}if(n.setStyleText){var i=e.styleText.toObject();t.styleText=i,t.dataObj&&void 0!==t.styleText&&n.setStyleText(t.dataObj,h.Data.objectToCssText(i))}n.setZIndex&&(t.zIndex=e.zIndex,t.dataObj&&void 0!==t.zIndex&&n.setZIndex(t.dataObj,e.zIndex))},e.prototype.deleteItems=function(t,e,n,o){t.slice().forEach((function(t){if(void 0!==t.key&&null!==t.key&&!e(t.key)){var i=n(t),r=i.indexOf(t.dataObj);i.splice(r,1),o(t,r>-1)}}))},e.prototype.updateNode=function(t,e){var n=this,o=this.findNode(e.dataKey);if(o)this.isNodeObjectModified(e,o,t.units)?(this.updateNodeObjectProperties(e,o,t.units),this.updateNodeObjectConnectedProperties(e,o),this.beginChangesNotification(),this.changesListener.notifyNodeUpdated.call(this.changesListener,this.nodeDataImporter.getKey(o.dataObj||o.key),o.dataObj,(function(t,e){n.endChangesNotification(!1)}),(function(t){n.endChangesNotification(!1)}))):this.updateNodeObjectConnectedProperties(e,o,this.changesListener);else{var i={};void 0!==e.dataKey&&null!==e.dataKey&&this.nodeDataImporter.setKey(i,e.dataKey),o=this.addNodeInternal(i,e.description.key,e.text),this.nodeDataSource.push(o.dataObj),this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setKey,i,o.key,this.addInternalKeyOnInsert),this.updateNodeObjectProperties(e,o,t.units),this.updateNodeObjectConnectedProperties(e,o),this.updateNodeObjectKey(e,o,o.dataObj),this.beginChangesNotification(),this.beginNodeInserting(),this.changesListener.notifyNodeInserted.call(this.changesListener,o.dataObj,(function(t){n.updateNodeObjectKey(e,o,t),n.endNodeInserting(),n.endChangesNotification(!1)}),(function(t){n.endNodeInserting(),n.endChangesNotification(!1)}))}},e.prototype.areImageUrlsEqual=function(t,e){return t===e||l.StringUtils.isNullOrEmpty(t)&&l.StringUtils.isNullOrEmpty(e)},e.prototype.isNodeObjectModified=function(t,e,n){return this.isItemObjectModified(t,e,this.nodeDataImporter)||e.type!==t.description.key&&!(void 0===e.type&&t.description.key===r.ShapeTypes.Rectangle)||!this.compareStrings(e.text,t.text)||this.nodeDataImporter.setImage&&!this.areImageUrlsEqual(e.image,t.image.actualUrl)||this.nodeDataImporter.setLeft&&!d.MathUtils.numberCloseTo(e.left,u.ModelUtils.getlUnitValue(n,t.position.x))||this.nodeDataImporter.setTop&&!d.MathUtils.numberCloseTo(e.top,u.ModelUtils.getlUnitValue(n,t.position.y))||this.nodeDataImporter.setWidth&&!d.MathUtils.numberCloseTo(e.width,u.ModelUtils.getlUnitValue(n,t.size.width))||this.nodeDataImporter.setHeight&&!d.MathUtils.numberCloseTo(e.height,u.ModelUtils.getlUnitValue(n,t.size.height))},e.prototype.updateNodeObjectProperties=function(t,e,n){if(this.updateItemObjectProperties(e,t,this.nodeDataImporter),this.nodeDataImporter.setType&&(e.type=t.description.key,this.nodeDataImporter.setType(e.dataObj,t.description.key)),this.nodeDataImporter.setText&&(e.text=t.text,this.nodeDataImporter.setText(e.dataObj,t.text)),this.nodeDataImporter.setImage&&(e.image=t.image.actualUrl,this.nodeDataImporter.setImage(e.dataObj,void 0===t.image.actualUrl?null:t.image.actualUrl)),this.nodeDataImporter.setLeft){var o=u.ModelUtils.getlUnitValue(n,t.position.x);e.left=o,this.nodeDataImporter.setLeft(e.dataObj,o)}if(this.nodeDataImporter.setTop){var i=u.ModelUtils.getlUnitValue(n,t.position.y);e.top=i,this.nodeDataImporter.setTop(e.dataObj,i)}if(this.nodeDataImporter.setWidth){var r=u.ModelUtils.getlUnitValue(n,t.size.width);e.width=r,this.nodeDataImporter.setWidth(e.dataObj,r)}if(this.nodeDataImporter.setHeight){var s=u.ModelUtils.getlUnitValue(n,t.size.height);e.height=s,this.nodeDataImporter.setHeight(e.dataObj,s)}},e.prototype.updateNodeObjectConnectedProperties=function(t,e,n){if(this.useNodeParentId&&void 0!==this.nodeDataImporter.setParentKey){var o=this.getParentItemKey(t),i=this.findNode(o);this.updateNodeObjectParentKey(e,i,n)}if(this.useNodeContainerId&&void 0!==this.nodeDataImporter.setContainerKey){var r=this.getContainerShapeKey(t),s=this.findNode(r);this.updateNodeObjectContainerKey(e,s,n)}if(this.useNodeItems&&void 0!==this.nodeDataImporter.setItems){o=this.getParentItemKey(t),i=this.findNode(o);this.updateNodeObjectItems(e,i,n)}if(this.useNodeChildren&&void 0!==this.nodeDataImporter.setChildren){r=this.getContainerShapeKey(t),s=this.findNode(r);this.updateNodeObjectChildren(e,s,n)}},e.prototype.IsNodeParentIdMode=function(){return this.useNodeParentId&&void 0!==this.nodeDataImporter.setParentKey},e.prototype.IsNodeItemsMode=function(){return this.useNodeItems&&void 0!==this.nodeDataImporter.setItems},e.prototype.updateNodeObjectParentKey=function(t,e,n){var o=this.nodeDataImporter.getParentKey(t.dataObj),i=e?this.nodeDataImporter.getKey(e.dataObj):void 0;o===i||this.isRootParentKey(o)&&this.isRootParentKey(i)||(this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setParentKey,t.dataObj,i,!1),n&&(this.isInUpdateNodeKeyRelatedObjects()?this.addToUpdateNodeKeyRelatedObjectsStackAction(\"shape\",t):this.updateNodeObjectContainerOrParentKeyInternal(t,n)))},e.prototype.updateNodeObjectParentKeyInternal=function(t,e){var n=this;this.beginChangesNotification(),e.notifyNodeUpdated.call(e,this.nodeDataImporter.getKey(t.dataObj)||t.key,t.dataObj,(function(t,e){n.endChangesNotification(!1)}),(function(t){n.endChangesNotification(!1)}))},e.prototype.updateNodeObjectContainerKey=function(t,e,n){var o=this.nodeDataImporter.getContainerKey(t.dataObj),i=e?this.nodeDataImporter.getKey(e.dataObj):void 0;o===i||this.isRootParentKey(o)&&this.isRootParentKey(i)||(this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setContainerKey,t.dataObj,i,!1),n&&(this.isInUpdateNodeKeyRelatedObjects()?this.addToUpdateNodeKeyRelatedObjectsStackAction(\"shape\",t):this.updateNodeObjectContainerOrParentKeyInternal(t,n)))},e.prototype.updateNodeObjectContainerOrParentKeyInternal=function(t,e){var n=this;this.beginChangesNotification(),e.notifyNodeUpdated.call(e,this.nodeDataImporter.getKey(t.dataObj)||t.key,t.dataObj,(function(t,e){n.endChangesNotification(!1)}),(function(t){n.endChangesNotification(!1)}))},e.prototype.isRootParentKey=function(t){return null==t||!this.findNode(t)},e.prototype.updateNodeObjectItems=function(t,e,n){var o=this;if((e&&t.parentDataObj!==e.dataObj||!e&&t.parentDataObj)&&(!e||!this.checkNodeCyrcleItems(t.dataObj,e.dataObj))){var i=t.parentDataObj?this.nodeDataImporter.getItems(t.parentDataObj):this.nodeDataSource,r=i.indexOf(t.dataObj);i.splice(r,1);var s=e?this.nodeDataImporter.getItems(e.dataObj):this.nodeDataSource;s?s.push(t.dataObj):this.nodeDataImporter.setItems(e.dataObj,[t.dataObj]),t.parentDataObj=e&&e.dataObj,n&&(this.beginChangesNotification(),n.notifyNodeUpdated.call(n,this.nodeDataImporter.getKey(t.dataObj)||t.key,t.dataObj,(function(t,e){o.endChangesNotification(!1)}),(function(t){o.endChangesNotification(!1)})))}},e.prototype.updateNodeObjectChildren=function(t,e,n){var o=this;if(e&&t.containerDataObj!==e.dataObj||!e&&t.containerDataObj){var i=t.containerDataObj?this.nodeDataImporter.getChildren(t.containerDataObj):this.nodeDataSource,r=i.indexOf(t.dataObj);i.splice(r,1);var s=e?this.nodeDataImporter.getChildren(e.dataObj):this.nodeDataSource;s?s.push(t.dataObj):this.nodeDataImporter.setChildren(e.dataObj,[t.dataObj]),t.containerDataObj=e&&e.dataObj,n&&(this.beginChangesNotification(),n.notifyNodeUpdated.call(n,this.nodeDataImporter.getKey(t.dataObj)||t.key,t.dataObj,(function(t,e){o.endChangesNotification(!1)}),(function(t){o.endChangesNotification(!1)})))}},e.prototype.checkNodeCyrcleItems=function(t,e){var n=this,o=!1,i=this.nodeDataImporter.getItems(t);return i&&i.forEach((function(t){o=o||t===e||n.checkNodeCyrcleItems(t,e)})),o},e.prototype.updateNodeObjectKey=function(t,e,n){var o=this.nodeDataImporter.getKey(n),i=!1;if(null!=o&&o!==e.key&&(delete this.autoGeneratedDataKeys[e.key],e.key=o,i=!0),t.dataKey=e.key,e.dataObj!==n){var r=this.getNodeArray(e),s=r.indexOf(e.dataObj);r.splice(s,1,n),e.dataObj=n}i&&this.updateNodeKeyRelatedObjects(t,e)},e.prototype.updateNodeKeyRelatedObjects=function(t,e){var n=this;if(this.isInNodeInserting())this.addToUpdateNodeKeyRelatedObjectsStack(t,e);else{if(this.useNodeParentId&&void 0!==this.nodeDataImporter.setParentKey)this.getChildItems(t).forEach((function(t){var o=n.findNode(t.dataKey);o&&n.updateNodeObjectParentKey(o,e,n.changesListener)}));this.useNodeContainerId&&void 0!==this.nodeDataImporter.setContainerKey&&t.children.forEach((function(t){var o=t instanceof s.Shape?n.findNode(t.dataKey):void 0;o&&n.updateNodeObjectContainerKey(o,e,n.changesListener)})),this.useEdgesArray()&&t.attachedConnectors.forEach((function(o){var i=n.findEdge(o.dataKey);i&&(t===o.beginItem&&n.updateEdgeObjectFromProperty(e,i,n.changesListener),t===o.endItem&&n.updateEdgeObjectToProperty(e,i,n.changesListener))}))}},e.prototype.deleteNodes=function(t){var e=this;this.deleteItems(this.nodes,(function(e){return t.findShapeByDataKey(e)}),(function(t){return e.getNodeArray(t)}),(function(t,n){var o=t.dataObj&&e.nodeDataImporter.getKey(t.dataObj)||t.key,i=e.findNode(o);i&&e.nodes.splice(e.nodes.indexOf(i),1),n&&(e.beginChangesNotification(),e.changesListener.notifyNodeRemoved.call(e.changesListener,o,t.dataObj,(function(t,n){e.endChangesNotification(!1)}),(function(t){e.endChangesNotification(!1)})))}))},e.prototype.getParentItem=function(t){for(var e=0;e<t.attachedConnectors.length;e++)if(t.attachedConnectors[e].endItem===t)return t.attachedConnectors[e].beginItem},e.prototype.getParentItemKey=function(t){var e=this.getParentItem(t);return e&&e.dataKey},e.prototype.getNodeArray=function(t){var e;return this.useNodeItems&&t.parentDataObj?e=this.nodeDataImporter.getItems(t.parentDataObj):t.containerDataObj&&(e=this.nodeDataImporter.getChildren(t.containerDataObj)),e||this.nodeDataSource},e.prototype.getContainerShapeKey=function(t){return t.container&&t.container.dataKey},e.prototype.getChildItems=function(t){for(var e=[],n=0;n<t.attachedConnectors.length;n++)t.attachedConnectors[n].beginItem===t&&t.attachedConnectors[n].endItem&&e.push(t.attachedConnectors[n].endItem);return e},e.prototype.updateEdge=function(t,e){var n=this,o=e.beginItem?e.beginItem.dataKey:void 0,i=e.endItem?e.endItem.dataKey:void 0,r=this.findEdge(e.dataKey);if(r)this.isEdgeObjectModified(e,r,t.units)&&(this.updateEdgeObjectProperties(e,r,t.units),r.dataObj&&(this.beginChangesNotification(),this.changesListener.notifyEdgeUpdated.call(this.changesListener,this.edgeDataImporter.getKey(r.dataObj)||r.key,r.dataObj,(function(t,e){n.endChangesNotification(!1)}),(function(t){n.endChangesNotification(!1)}))));else{var s=this.useEdgesArray()&&this.canUpdateEdgeDataSource?{}:void 0;s&&void 0!==e.dataKey&&null!==e.dataKey&&this.edgeDataImporter.setKey(s,e.dataKey),r=this.addEdgeInternal(s,o,i),s&&(this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setKey,s,r.key,this.addInternalKeyOnInsert),this.edgeDataSource.push(r.dataObj)),this.updateEdgeObjectProperties(e,r,t.units),this.updateEdgeObjectKey(e,r,r.dataObj),s&&(this.beginChangesNotification(),this.beginNodeInserting(),this.changesListener.notifyEdgeInserted.call(this.changesListener,r.dataObj,(function(t){n.updateEdgeObjectKey(e,r,t),n.endNodeInserting(),n.endChangesNotification(!1)}),(function(t){n.endNodeInserting(),n.endChangesNotification(!1)})))}},e.prototype.isEdgeObjectModified=function(t,e,n){return this.isItemObjectModified(t,e,this.edgeDataImporter)||(null!==e.from?e.from:void 0)!==(t.beginItem?t.beginItem.dataKey:void 0)||(null===e.to?void 0:e.to)!==(t.endItem?t.endItem.dataKey:void 0)||this.edgeDataImporter.setFromPointIndex&&e.fromPointIndex!==t.beginConnectionPointIndex||this.edgeDataImporter.setToPointIndex&&e.toPointIndex!==t.endConnectionPointIndex||this.edgeDataImporter.setPoints&&(!e.points||!this.pointsAreEqual(e.points.map((function(t){return t.x})),t.points.map((function(t){return u.ModelUtils.getlUnitValue(n,t.x)})))||!this.pointsAreEqual(e.points.map((function(t){return t.y})),t.points.map((function(t){return u.ModelUtils.getlUnitValue(n,t.y)}))))||this.edgeDataImporter.setText&&!this.compareTexts(e,t)||this.edgeDataImporter.setLineOption&&e.lineOption!==t.properties.lineOption||this.edgeDataImporter.setStartLineEnding&&e.startLineEnding!==t.properties.startLineEnding||this.edgeDataImporter.setEndLineEnding&&e.endLineEnding!==t.properties.endLineEnding},e.prototype.pointsAreEqual=function(t,e){var n=t.length;if(n!==t.length)return!1;for(var o=0;o<n;o++)if(!d.MathUtils.numberCloseTo(t[o],e[o]))return!1;return!0},e.prototype.updateEdgeObjectFromProperty=function(t,e,n){if(e.from=t&&t.key,e.dataObj){var o=t&&t.dataObj&&this.nodeDataImporter.getKey(t.dataObj);this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setFrom,e.dataObj,o,!1),n&&(this.isInUpdateNodeKeyRelatedObjects()?this.addToUpdateNodeKeyRelatedObjectsStackAction(\"edge\",e):this.updateEdgeObjectFromOrToPropertyInternal(e,n))}},e.prototype.updateEdgeObjectFromOrToPropertyInternal=function(t,e){var n=this;this.beginChangesNotification(),e.notifyEdgeUpdated.call(e,this.nodeDataImporter.getKey(t.dataObj)||t.key,t.dataObj,(function(t,e){n.endChangesNotification(!1)}),(function(t){n.endChangesNotification(!1)}))},e.prototype.updateEdgeObjectToProperty=function(t,e,n){if(e.to=t&&t.key,e.dataObj){var o=t&&t.dataObj&&this.nodeDataImporter.getKey(t.dataObj);this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setTo,e.dataObj,o,!1),n&&(this.isInUpdateNodeKeyRelatedObjects()?this.addToUpdateNodeKeyRelatedObjectsStackAction(\"edge\",e):this.updateEdgeObjectFromOrToPropertyInternal(e,n))}},e.prototype.updateEdgeObjectProperties=function(t,e,n){if(this.updateItemObjectProperties(e,t,this.edgeDataImporter),this.edgeDataImporter.setFrom){var o=this.findNode(t.beginItem&&t.beginItem.dataKey);this.updateEdgeObjectFromProperty(o,e)}if(this.edgeDataImporter.setTo){var i=this.findNode(t.endItem&&t.endItem.dataKey);this.updateEdgeObjectToProperty(i,e)}if(this.edgeDataImporter.setFromPointIndex&&(e.fromPointIndex=t.beginConnectionPointIndex,e.dataObj&&this.edgeDataImporter.setFromPointIndex(e.dataObj,t.beginConnectionPointIndex)),this.edgeDataImporter.setToPointIndex&&(e.toPointIndex=t.endConnectionPointIndex,e.dataObj&&this.edgeDataImporter.setToPointIndex(e.dataObj,t.endConnectionPointIndex)),this.edgeDataImporter.setPoints){var r=t.points.map((function(t){return{x:u.ModelUtils.getlUnitValue(n,t.x),y:u.ModelUtils.getlUnitValue(n,t.y)}}));e.points=r,e.dataObj&&this.edgeDataImporter.setPoints(e.dataObj,r)}if(this.edgeDataImporter.setText){var s=void 0;1===t.getTextCount()&&t.getText()&&(s=t.getText());var a={};if(t.texts.forEach((function(t){a[t.position]=t.value})),e.texts=a,e.dataObj){var c=\"\";s?c=s:a&&Object.keys(a).length&&(c=a),this.edgeDataImporter.setText(e.dataObj,c)}}this.edgeDataImporter.setLineOption&&(e.lineOption=t.properties.lineOption,e.dataObj&&this.edgeDataImporter.setLineOption(e.dataObj,t.properties.lineOption)),this.edgeDataImporter.setStartLineEnding&&(e.startLineEnding=t.properties.startLineEnding,e.dataObj&&this.edgeDataImporter.setStartLineEnding(e.dataObj,t.properties.startLineEnding)),this.edgeDataImporter.setEndLineEnding&&(e.endLineEnding=t.properties.endLineEnding,e.dataObj&&this.edgeDataImporter.setEndLineEnding(e.dataObj,t.properties.endLineEnding))},e.prototype.updateEdgeObjectKey=function(t,e,n){var o=n&&this.edgeDataImporter.getKey(n);if(null!=o&&o!==e.key&&(delete this.autoGeneratedDataKeys[e.key],e.key=o),t.dataKey=e.key,e.dataObj!==n){var i=this.edgeDataSource,r=i.indexOf(e.dataObj);i.splice(r,1,n),e.dataObj=n}},e.prototype.deleteEdges=function(t){var e=this;this.deleteItems(this.edges,(function(e){return t.findConnectorByDataKey(e)}),(function(t){return e.edgeDataSource}),(function(t,n){var o=t.dataObj&&e.edgeDataImporter.getKey(t.dataObj)||t.key,i=e.findEdge(o);i&&e.edges.splice(e.edges.indexOf(i),1),n&&(e.beginChangesNotification(),e.changesListener.notifyEdgeRemoved.call(e.changesListener,o,t.dataObj,(function(t,n){e.endChangesNotification(!1)}),(function(t){e.endChangesNotification(!1)})))}))},e.prototype.beginNodeInserting=function(){this.nodeInsertingLockCount++},e.prototype.endNodeInserting=function(){this.nodeInsertingLockCount--,0===this.nodeInsertingLockCount&&this.raiseNodeInsertingStack()},e.prototype.isInNodeInserting=function(){return this.nodeInsertingLockCount>0},e.prototype.addToUpdateNodeKeyRelatedObjectsStack=function(t,e){var n=new f(t,e);this.updateNodeKeyRelatedObjectsStack.push(n)},e.prototype.raiseNodeInsertingStack=function(){for(this.beginUpdateNodeKeyRelatedObjects();this.updateNodeKeyRelatedObjectsStack.length>0;){var t=this.updateNodeKeyRelatedObjectsStack[0];this.updateNodeKeyRelatedObjects(t.shape,t.nodeObj),this.updateNodeKeyRelatedObjectsStack.splice(0,1),t.shape.description.hasTemplate&&t.nodeObj&&this.changesListener.reloadInsertedItem(t.nodeObj.key)}this.endUpdateNodeKeyRelatedObjects()},e.prototype.beginUpdateNodeKeyRelatedObjects=function(){this.updateNodeKeyRelatedObjectsCount++},e.prototype.endUpdateNodeKeyRelatedObjects=function(){this.updateNodeKeyRelatedObjectsCount--,0===this.updateNodeKeyRelatedObjectsCount&&this.raiseUpdateNodeKeyRelatedObjectsStack()},e.prototype.isInUpdateNodeKeyRelatedObjects=function(){return this.updateNodeKeyRelatedObjectsCount>0},e.prototype.addToUpdateNodeKeyRelatedObjectsStackAction=function(t,e){for(var n=new y(t,e),o=0;o<this.updateNodeKeyRelatedObjectsStackActions.length;o++)if(this.updateNodeKeyRelatedObjectsStackActions[o].kind===t&&this.updateNodeKeyRelatedObjectsStackActions[o].nodeObj===e)return;this.updateNodeKeyRelatedObjectsStackActions.push(n)},e.prototype.raiseUpdateNodeKeyRelatedObjectsStack=function(){for(;this.updateNodeKeyRelatedObjectsStackActions.length>0;){var t=this.updateNodeKeyRelatedObjectsStackActions[0];switch(t.kind){case\"shape\":this.updateNodeObjectContainerOrParentKeyInternal(t.nodeObj,this.changesListener);break;case\"edge\":this.updateEdgeObjectFromOrToPropertyInternal(t.nodeObj,this.changesListener)}this.updateNodeKeyRelatedObjectsStackActions.splice(0,1)}},e.prototype.beginChangesNotification=function(){this.changesListener.beginChangesNotification()},e.prototype.endChangesNotification=function(t){this.changesListener.endChangesNotification(t)},e}(c.DataSource);e.DocumentDataSource=g},9463:(t,e)=>{var n;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Diagnostics=void 0,function(t){t[t.Disabled=0]=\"Disabled\",t[t.Console=1]=\"Console\",t[t.Document=2]=\"Document\"}(n||(n={}));var o=function(){function t(){}return t.beginAverage=function(t){this.enableLogsAndTimers&&(this.lastAverageGroupName=t)},t.endAverage=function(){this.enableLogsAndTimers&&(this.lastAverageGroupName=null)},t.tryLogAverage=function(t){var e=this;if(this.lastAverageGroupName!==t){var n=Object.keys(this.timers).map((function(t){return e.timers[t]})).filter((function(e){return e.groupName===t}));if(!n.filter((function(t){return!t.endTime})).length){var o=n.reduce((function(t,e){return t+(e.endTime-e.startTime)}),0)/n.length;this.log(\"average: \"+o)}}},t.timer=function(t){this.enableLogsAndTimers&&(this.lastCreatedTimer={message:t,startTime:performance.now(),groupName:this.lastAverageGroupName})},t.endTimer=function(){var t=this;if(this.enableLogsAndTimers){var e=this.lastCreatedTimer,n=setTimeout((function(){e.endTime=performance.now(),t.showMessage('timer \"'+e.message+'\": '+(e.endTime-e.startTime)),e.groupName&&t.tryLogAverage(e.groupName)}),0);this.timers[n]=e,this.lastCreatedTimer=null}},t.logPerfInfo=function(){var t=document.querySelector(\".dxdi-control > svg\").querySelectorAll(\"*\").length,e=performance.memory;this.log(\"nodes: \"+t.toLocaleString()+(e?\" memory: \":\"\")+(e?e.usedJSHeapSize.toLocaleString():\"\"))},t.log=function(t){this.showMessage(t)},t.showMessage=function(e){switch(t.mode){case n.Console:console.log(e);break;case n.Document:var o=this.getElement().value;if(this.lastMessage===e){var i=o.indexOf(\"\\r\\n\");i<0&&(i=o.indexOf(\"\\n\"));var r=o.substr(0,i);/( \\()([0-9]+)(\\))$/.test(r)?r=r.replace(/( \\()([0-9]+)(\\))$/,(function(t,e,n,o){return e+ ++n+o})):r+=\" (1)\",this.getElement().value=r+o.substr(i)}else this.getElement().value=e+\"\\r\\n\"+o,this.lastMessage=e}},t.getElement=function(){var t=this;if(!this.el){this.el=document.createElement(\"textarea\"),this.el.style.top=\"0px\",this.el.style.right=\"0px\",this.el.style.position=\"fixed\",this.el.style.background=\"transparent\",this.el.style.fontSize=\"11px\",this.el.style.fontFamily=\"monospace\",this.el.style.overflow=\"auto\",this.el.style.width=\"400px\",document.body.appendChild(this.el);var e=document.createElement(\"button\");e.innerHTML=\"x\",e.addEventListener(\"click\",(function(){t.el.value=\"\",t.lastMessage=\"\"})),e.style.top=\"0px\",e.style.right=\"400px\",e.style.position=\"fixed\",e.style.opacity=\"0.1\",document.body.appendChild(e)}return this.el},t.mode=n.Document,t.optimizeUsingRAF=!0,t.optimizeLayers=!0,t.timers={},t.enableLogsAndTimers=!1,t}();e.Diagnostics=o},2106:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramControl=void 0;var o=n(8900),i=n(1118),r=n(7156),s=n(82),a=n(6613),c=n(9021),u=n(1864),h=n(2230),p=n(8098),l=n(8397),d=n(8717),f=n(240),y=n(6879),g=n(6734),m=n(4867),v=n(3298),P=n(8675),C=n(5656),S=n(7176),x=n(2883),b=n(5714),I=n(1733),w=n(7959),_=n(3503),T=n(6214),O=n(3500),M=n(3607),E=n(8679),D=function(){function t(){this.updateLockCount=0,this.shouldUpdateItemsByModel=!1,this.reloadContentNeeded=!1,this.reloadContentParameters=new T.ReloadContentParameters,this.reloadContentByExternalChangesParameters=new T.ReloadContentParameters,this.instanceId=E.MathUtils.generateGuid(),this.settings=new f.DiagramSettings,this.shapeDescriptionManager=new l.ShapeDescriptionManager,this.shapeDescriptionManager.onShapeDecriptionChanged.add(this),this.model=new a.DiagramModel,this.selection=new c.Selection(this.model),this.onNativeAction=new P.EventDispatcher,this.apiController=new C.ApiController(this.onNativeAction,this.selection,this.model),this.permissionsProvider=new x.PermissionsProvider(this.apiController),this.permissionsProvider.onRequestOperation.add(this),this.routingModel=new b.ConnectorRoutingModel,this.modelManipulator=new i.ModelManipulator(this.model,this.routingModel,this.permissionsProvider,this.shapeDescriptionManager),this.modelManipulator.onModelChanged.add(this.permissionsProvider),this.history=new u.History(this.modelManipulator,this),this.barManager=new h.BarManager(this),this.view=new g.ViewController(this.settings,this.barManager),this.commandManager=new r.CommandManager(this),this.eventManager=new s.EventManager(this),this.settings.onReadOnlyChanged.add(this.eventManager.mouseHandler),this.settings.onReadOnlyChanged.add(this.eventManager.visualizersManager),this.selection.onChanged.add(this.barManager),this.selection.onChanged.add(this.apiController),this.selection.onChanged.add(this.permissionsProvider),this.modelManipulator.commitItemsCreateChanges(),this.history.onChanged.add(this),this.toolboxManager=new v.ToolboxManager(this.shapeDescriptionManager),this.settings.onConnectorRoutingModeChanged.add(this.routingModel),S.ImageCache.instance.onReadyStateChanged.add(this)}return Object.defineProperty(t.prototype,\"operationSettings\",{get:function(){return this.permissionsProvider.operationSettings},enumerable:!1,configurable:!0}),t.prototype.cleanMarkup=function(t){t=t||function(t){O.RenderUtils.removeElement(t)},this.toolboxManager.clean(t),this.barManager.clean(),this.render&&(this.settings.onZoomChanged.remove(this.render.view),this.settings.onViewChanged.remove(this.render.page),this.settings.onViewChanged.remove(this.render.view),this.settings.onReadOnlyChanged.remove(this.render),this.settings.onReadOnlyChanged.remove(this.render.selection),this.eventManager.cleanToolboxes(this.settings.onReadOnlyChanged),this.eventManager.onTextInputOperation.remove(this.render.input),this.eventManager.onTextInputOperation.remove(this.render.items),this.eventManager.onTextInputOperation.remove(this.render.selection),this.eventManager.onMouseOperation.remove(this.render.items),this.eventManager.onMouseOperation.remove(this.render.selection),this.eventManager.onMouseOperation.remove(this.render.view),this.eventManager.onMouseOperation.remove(this.render),this.eventManager.onVisualizersUpdate.remove(this.render.selection),this.modelManipulator.onModelSizeChanged.remove(this.render.view),this.modelManipulator.onModelSizeChanged.remove(this.render.page),this.modelManipulator.onModelChanged.remove(this.render.items),this.modelManipulator.onModelChanged.remove(this.render.page),this.modelManipulator.onModelChanged.remove(this.render.selection),this.selection.onChanged.remove(this.render.selection),this.selection.onChanged.remove(this.render.items),this.render.clean(t),this.render=void 0),this.measurer&&this.measurer instanceof I.TextMeasurer&&this.measurer.clean()},t.prototype.dispose=function(){S.ImageCache.instance.onReadyStateChanged.remove(this)},t.prototype.createDocument=function(t,e,n){this.measurer||this.initMeasurer(t),this.render?this.render.replaceParent(t,e):(this.render=new p.RenderManager(t,this.eventManager,this.measurer,{pageColor:this.model.pageColor,modelSize:this.model.size,pageLandscape:this.model.pageLandscape,pageSize:this.model.pageSize,simpleView:this.settings.simpleView,readOnly:this.settings.readOnly,contextMenuEnabled:this.settings.contextMenuEnabled,gridSize:this.settings.gridSize,gridVisible:this.settings.showGrid,zoomLevel:this.settings.zoomLevel,autoZoom:this.settings.autoZoom,rectangle:this.model.getRectangle(!0)},this.instanceId,e,n),this.settings.onZoomChanged.add(this.render.view),this.settings.onViewChanged.add(this.render.page),this.settings.onViewChanged.add(this.render.view),this.settings.onReadOnlyChanged.add(this.render),this.settings.onReadOnlyChanged.add(this.render.selection),this.eventManager.onTextInputOperation.add(this.render.input),this.eventManager.onTextInputOperation.add(this.render.items),this.eventManager.onTextInputOperation.add(this.render.selection),this.eventManager.onTextInputOperation.add(this),this.eventManager.onMouseOperation.add(this.render.items),this.eventManager.onMouseOperation.add(this.render.selection),this.eventManager.onMouseOperation.add(this.render.view),this.eventManager.onMouseOperation.add(this.render),this.eventManager.onVisualizersUpdate.add(this.render.selection),this.modelManipulator.onModelSizeChanged.add(this.render.view),this.modelManipulator.onModelSizeChanged.add(this.render.page),this.modelManipulator.onModelChanged.add(this.render.items),this.modelManipulator.onModelChanged.add(this.render.page),this.modelManipulator.onModelChanged.add(this.render.selection),this.selection.onChanged.add(this.render.selection),this.selection.onChanged.add(this.render.items),this.render.update(!1),this.render.onNewModel(this.model.items),this.modelManipulator.commitItemsCreateChanges(),this.view.initialize(this.render.view),this.settings.zoomLevelWasChanged&&this.raiseCanvasViewActualZoomChanged(),this.selection.raiseSelectionChanged())},t.prototype.createToolbox=function(t,e,n,o){var i=this.toolboxManager.create(t,this.settings.readOnly,!0,e,n,this.getToolboxAllowedShapeTypes.bind(this),this.instanceId,o);this.settings.onReadOnlyChanged.add(i),i.onDragOperation.add(this),i.onDragOperation.add(this.apiController),this.eventManager.registerToolbox(i)},t.prototype.createContextToolbox=function(t,e,n,o,i){this.cleanContextToolbox(),this.contextToolbox=this.toolboxManager.create(t,this.settings.readOnly,!1,e,n,this.getToolboxAllowedShapeTypes.bind(this),this.instanceId,o),this.contextToolbox.onClickOperation.add(this),this.contextToolboxOnClick=i},t.prototype.getToolboxAllowedShapeTypes=function(t){var e=this,n=[];return this.permissionsProvider.beginUpdateUI(),t.forEach((function(t){e.permissionsProvider.canAddShapeFromToolbox(t)&&n.push(t)})),this.permissionsProvider.endUpdateUI(),n},t.prototype.cleanContextToolbox=function(){this.contextToolbox&&(this.toolboxManager.clean(void 0,this.contextToolbox),this.contextToolbox=void 0,this.contextToolboxOnClick=void 0)},t.prototype.refreshToolbox=function(t){this.permissionsProvider.clearCache(y.DiagramModelOperation.AddShapeFromToolbox),this.toolboxManager.refresh(t)},t.prototype.applyToolboxFilter=function(t,e){return this.toolboxManager.applyFilter(t,e)},t.prototype.notifyToolboxClick=function(t){this.contextToolboxOnClick&&this.contextToolboxOnClick(t)},t.prototype.initMeasurer=function(t){this.measurer=new I.TextMeasurer(t)},t.prototype.onDimensionChanged=function(){M.Browser.TouchUI||this.updateLayout(!0)},t.prototype.updateLayout=function(t){void 0===t&&(t=!1),this.render&&this.render.update(!t)},t.prototype.captureFocus=function(){this.render&&this.render.input.captureFocus()},t.prototype.isFocused=function(){return!this.render||this.render.input.isFocused()},t.prototype.registerBar=function(t){this.barManager.registerBar(t)},t.prototype.updateBarItemsState=function(t,e){this.barManager.updateBarItemsState(t,e)},t.prototype.getCommand=function(t){return this.commandManager.getCommand(t)},t.prototype.getNativeItemByKey=function(t){var e=this.model.findItem(t);return e&&this.apiController.createNativeItem(e)},t.prototype.getNativeItemByDataKey=function(t){var e=this.model.findItemByDataKey(t);return e&&this.apiController.createNativeItem(e)},t.prototype.getNativeItems=function(){var t=this;return this.model.items.map((function(e){return t.apiController.createNativeItem(e)}))},t.prototype.getNativeSelectedItems=function(){var t=this;return this.selection.getKeys().map((function(e){return t.apiController.createNativeItem(t.model.findItem(e))}))},t.prototype.setSelectedItems=function(t){this.selection.set(t)},t.prototype.scrollToItems=function(t){var e=this,n=P.GeometryUtils.getCommonRectangle(t.map((function(t){return e.model.findItem(t).rectangle})));this.view.scrollIntoView(n)},t.prototype.setInitialStyleProperties=function(t){this.selection.inputPosition.setInitialStyleProperties(t)},t.prototype.setInitialTextStyleProperties=function(t){this.selection.inputPosition.setInitialTextStyleProperties(t)},t.prototype.setInitialConnectorProperties=function(t){this.selection.inputPosition.setInitialConnectorProperties(t)},t.prototype.addCustomShapes=function(t){var e=this;t.forEach((function(t){t.apiController=e.apiController,t.defaultWidth&&(t.defaultWidth=m.ModelUtils.getTwipsValue(e.model.units,t.defaultWidth)),t.defaultHeight&&(t.defaultHeight=m.ModelUtils.getTwipsValue(e.model.units,t.defaultHeight)),t.minWidth&&(t.minWidth=m.ModelUtils.getTwipsValue(e.model.units,t.minWidth)),t.minHeight&&(t.minHeight=m.ModelUtils.getTwipsValue(e.model.units,t.minHeight)),t.maxWidth&&(t.maxWidth=m.ModelUtils.getTwipsValue(e.model.units,t.maxWidth)),t.maxHeight&&(t.maxHeight=m.ModelUtils.getTwipsValue(e.model.units,t.maxHeight)),e.shapeDescriptionManager.registerCustomShape(t)}))},t.prototype.removeCustomShapes=function(t){var e=this;t.forEach((function(t){e.shapeDescriptionManager.unregisterCustomShape(t)}))},t.prototype.removeAllCustomShapes=function(){this.shapeDescriptionManager.unregisterAllCustomShapes()},t.prototype.importModel=function(t){t.units=this.model.units,this.model=t,this.model.initializeKeyCounter(),this.apiController.model=t,this.onImportData()},t.prototype.importItemsData=function(){this.onImportData()},t.prototype.onImportData=function(){this.render&&(this.render.clear(),this.render.onNewModel(this.model.items)),this.permissionsProvider.clearCache(),this.selection.initialize(this.model),this.modelManipulator.initialize(this.model,this.routingModel),this.history.clear(),this.eventManager.initialize(),this.modelManipulator.commitPageChanges(),this.modelManipulator.commitItemsCreateChanges(),this.notifyViewChanged(),this.notifyHistoryChanged()},t.prototype.createDocumentDataSource=function(t,e,n,o,i){return this.documentDataSource=new d.DocumentDataSource(this,t,e,n,o,i),this.apiController.setDataSource(this.documentDataSource),this.documentDataSource},t.prototype.deleteDocumentDataSource=function(){this.apiController.setDataSource(null),delete this.documentDataSource},t.prototype.applyShapeSizeSettings=function(t){this.settings.applyShapeSizeSettings(t,this.model.units)},t.prototype.applyOperationSettings=function(t){this.permissionsProvider.operationSettings.applySettings(t)},t.prototype.beginUpdateCanvas=function(){this.render&&(this.render.items.beginUpdate(),this.render.selection.beginUpdate())},t.prototype.endUpdateCanvas=function(){this.render&&(this.render.items.endUpdate(),this.render.selection.endUpdate())},t.prototype.beginUpdate=function(){this.barManager.beginUpdate(),this.apiController.beginUpdate(),this.eventManager.beginUpdate()},t.prototype.endUpdate=function(){this.barManager.endUpdate(),this.apiController.endUpdate(),this.eventManager.endUpdate()},t.prototype.notifyEdgeInserted=function(t,e,n){this.onEdgeInserted?this.onEdgeInserted(t,e,n):e(t)},t.prototype.notifyEdgeUpdated=function(t,e,n,o){this.onEdgeUpdated?this.onEdgeUpdated(t,e,n,o):n(t,e)},t.prototype.notifyEdgeRemoved=function(t,e,n,o){this.onEdgeUpdated?this.onEdgeRemoved(t,e,n,o):n(t,e)},t.prototype.notifyNodeInserted=function(t,e,n){this.onNodeInserted?this.onNodeInserted(t,e,n):e(t)},t.prototype.notifyNodeUpdated=function(t,e,n,o){this.onNodeUpdated?this.onNodeUpdated(t,e,n,o):n(t,e)},t.prototype.notifyNodeRemoved=function(t,e,n,o){this.onNodeRemoved?this.onNodeRemoved(t,e,n,o):n(t,e)},t.prototype.reloadInsertedItem=function(t){this.settings.reloadInsertedItemRequired&&this.reloadContent(t)},t.prototype.reloadContent=function(t,e,n,o){if(this.documentDataSource){this.isChangesLocked()&&(this.reloadContentNeeded=!0);var i=!0===o||void 0===o&&!this.reloadContentNeeded,r=i?this.reloadContentByExternalChangesParameters:this.reloadContentParameters;r.add(t,e,n),this.isChangesLocked()||(this.reloadContentCore(r,i),this.barManager.updateItemsState())}},t.prototype.reloadContentCore=function(t,e){var n=this,o=t.getData&&t.getData(),i=this.documentDataSource.refetchData(o&&o.nodeDataSource,o&&o.edgeDataSource);this.beginUpdateCanvas(),this.permissionsProvider.lockPermissions(),this.documentDataSource.updateModelItems(this.history,this.model,this.shapeDescriptionManager,this.selection,new _.DataLayoutParameters(this.settings,t.layoutParameters),e,t.dataKeys,(function(t){n.modelManipulator.commitItemUpdateChanges(t)}),i,this.settings.snapToGrid,this.settings.gridSize,this.measurer),this.permissionsProvider.unlockPermissions(),this.endUpdateCanvas(),t.clear()},t.prototype.notifyHistoryChanged=function(){this.documentDataSource?(this.shouldUpdateItemsByModel=!0,this.settings.readOnly||this.notifyDataChanges()):this.raiseOnChanged()},t.prototype.notifyViewChanged=function(){this.settings.notifyViewChanged()},t.prototype.notifyToolboxDragStart=function(t){this.render.notifyToolboxDragStart(t),this.onToolboxDragStart&&this.onToolboxDragStart()},t.prototype.notifyToolboxDragEnd=function(t){this.render.notifyToolboxDragEnd(t),this.onToolboxDragEnd&&this.onToolboxDragEnd()},t.prototype.notifyToolboxDraggingMouseMove=function(t){this.render&&this.render.notifyToolboxDraggingMouseMove(t)},t.prototype.notifyTextInputStart=function(t,e,n,o){this.onTextInputStart&&this.onTextInputStart()},t.prototype.notifyTextInputEnd=function(t,e){this.onTextInputEnd&&this.onTextInputEnd()},t.prototype.notifyTextInputPermissionsCheck=function(t,e){},t.prototype.notifyToggleFullscreen=function(t){this.onToggleFullscreen&&this.onToggleFullscreen(t)},t.prototype.notifyShowContextMenu=function(t,e){if(this.onShowContextMenu&&this.render){var n=void 0;if(this.selection.getSelectedItems(!0).length>0){var i=m.ModelUtils.createRectangle(this.selection.getSelectedItems(!0)),r=this.render.getEventPointByModelPoint(i.createPosition()),s=this.render.view.getAbsoluteSize(i.createSize());n={x:r.x,y:r.y,width:s.width,height:s.height}}if(t)this.contextMenuPosition=new o.Point(t.x,t.y),this.onShowContextMenu(t.x,t.y,n);else if(e){var a=this.render.getEventPointByModelPoint(e);this.contextMenuPosition=a.clone(),this.onShowContextMenu(a.x,a.y,n)}}},t.prototype.notifyHideContextMenu=function(){this.onHideContextMenu&&this.render&&this.onHideContextMenu()},t.prototype.notifyShowContextToolbox=function(t,e,n,o,i){if(this.onShowContextToolbox&&this.render){var r=this.render.getEventPointByModelPoint(t);this.onShowContextToolbox(r.x,r.y,n,o,i),this.render.view.notifyShowContextToolbox()}},t.prototype.notifyHideContextToolbox=function(){this.onHideContextToolbox&&this.render&&(this.onHideContextToolbox(),this.render.view.notifyHideContextToolbox()),this.cleanContextToolbox()},t.prototype.notifyShapeDescriptionChanged=function(t){this.modelManipulator.updateShapeDescription(t)},t.prototype.notifyImageCacheReadyStateChanged=function(t){this.barManager.updateItemsState()},t.prototype.raiseCanvasViewActualZoomChanged=function(){this.render.view.raiseActualZoomChanged()},t.prototype.notifyRequestOperation=function(t,e){this.requestOperationByDataSource(t,e)||this.onRequestOperation&&this.onRequestOperation(t,e)},t.prototype.requestOperationByDataSource=function(t,e){if(!this.documentDataSource||!this.documentDataSource.IsNodeParentIdMode()&&!this.documentDataSource.IsNodeItemsMode())return!1;if(t===y.DiagramModelOperation.ChangeConnection){var n=e,o=n.shape&&this.model.findItem(n.shape.id),i=n.connector&&this.model.findItem(n.connector.id);if(!o||!i)return;if(n.position===w.ConnectorPosition.End)for(var r=0;r<o.attachedConnectors.length;r++){var s=o.attachedConnectors[r];if(s!==i&&s.endItem&&s.endItem===o){n.allowed=!1;break}}n.allowed&&i.beginItem&&i.endItem&&this.isShapeParent(i.endItem,i.beginItem)&&(n.allowed=!1)}return!e.allowed},t.prototype.isShapeParent=function(t,e){if(t===e)return!0;for(var n=0;n<t.attachedConnectors.length;n++){var o=t.attachedConnectors[n];if(o.beginItem===t&&o.endItem){var i=o.endItem;if(i===e||this.isShapeParent(i,e))return!0}}return!1},t.prototype.isChangesLocked=function(){return this.updateLockCount>0},t.prototype.beginChangesNotification=function(){this.isChangesLocked()||this.changesLockChanged&&this.changesLockChanged(!0),this.updateLockCount++},t.prototype.endChangesNotification=function(t){var e=this;this.updateLockCount--,this.isChangesLocked()||(this.changesLockChanged(!1),t||setTimeout((function(){e.notifyReloadContent(),e.notifyDataChanges()}),0))},t.prototype.changesLockChanged=function(t){t?this.lockedReadOnly=this.settings.readOnly:t=this.lockedReadOnly,this.commandManager.getCommand(r.DiagramCommand.ToggleReadOnly).execute(t)},t.prototype.notifyDataChanges=function(){this.isChangesLocked()||(this.shouldUpdateItemsByModel&&(this.documentDataSource.updateItemsByModel(this.model),this.shouldUpdateItemsByModel=!1),this.raiseOnChanged())},t.prototype.notifyReloadContent=function(){this.reloadContentNeeded&&(this.reloadContentParameters.empty||this.reloadContentCore(this.reloadContentParameters,!1),this.reloadContentByExternalChangesParameters.empty||this.reloadContentCore(this.reloadContentByExternalChangesParameters,!0),this.reloadContentNeeded=!1)},t.prototype.raiseOnChanged=function(){this.onChanged&&this.onChanged()},t}();e.DiagramControl=D},5383:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.PageOrientation=e.DiagramUnit=void 0,function(t){t[t.In=0]=\"In\",t[t.Cm=1]=\"Cm\",t[t.Px=2]=\"Px\"}(e.DiagramUnit||(e.DiagramUnit={})),function(t){t[t.Portrait=0]=\"Portrait\",t[t.Landscape=1]=\"Landscape\"}(e.PageOrientation||(e.PageOrientation={}))},9946:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ContextMenuHandler=void 0;var r=n(8675),s=n(6031),a=n(2153),c=n(1772),u=n(9279),h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.contextMenuVisible=!1,e.textInputStarted=!1,e.canHideContextMenu=!0,e.onVisibilityChanged=new r.EventDispatcher,e}return i(e,t),e.prototype.onMouseDown=function(t){t.button===s.MouseButton.Left&&t.source.type!==s.MouseEventElementType.Undefined&&this.hideContextMenu()},e.prototype.onMouseUp=function(t){(!u.Browser.MacOSPlatform||u.Browser.MacOSPlatform&&this.canHideContextMenu)&&this.hideContextMenu(),this.canHideContextMenu=!0},e.prototype.onContextMenu=function(t){u.Browser.MacOSPlatform&&(this.canHideContextMenu=!1),this.showContextMenu(t.eventPoint,t.modelPoint)},e.prototype.onFocus=function(t){},e.prototype.onBlur=function(t){},e.prototype.onTextInputFocus=function(t){},e.prototype.onTextInputBlur=function(t){},e.prototype.onLongTouch=function(t){},e.prototype.onKeyDown=function(t){t.keyCode===a.KeyCode.Esc&&this.hideContextMenu()},e.prototype.onShortcut=function(t){this.hideContextMenu()},e.prototype.showContextMenu=function(t,e){var n=this;this.textInputStarted||window.setTimeout((function(){n.onVisibilityChanged.raise1((function(n){return n.notifyShowContextMenu(t,e)})),n.contextMenuVisible=!0}),0)},e.prototype.hideContextMenu=function(){var t=this;this.contextMenuVisible&&window.setTimeout((function(){t.onVisibilityChanged.raise1((function(t){return t.notifyHideContextMenu()})),t.contextMenuVisible=!1}),0)},e.prototype.notifyDragStart=function(t){},e.prototype.notifyDragEnd=function(t){},e.prototype.notifyDragScrollStart=function(){},e.prototype.notifyDragScrollEnd=function(){},e.prototype.notifyShowContextToolbox=function(t,e,n,o,i){},e.prototype.notifyHideContextToolbox=function(){},e.prototype.notifyTextInputStart=function(t,e,n,o){this.textInputStarted=!0},e.prototype.notifyTextInputEnd=function(t,e){this.textInputStarted=!1},e.prototype.notifyTextInputPermissionsCheck=function(t,e){},e.prototype.onUpdateUnlocked=function(t){},e}(c.BatchUpdatableObject);e.ContextMenuHandler=h},151:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ContextMenuTouchHandler=void 0;var r=n(6031),s=n(9946),a=n(4867),c=function(t){function e(e){var n=t.call(this)||this;return n.selection=e,n.contextToolboxVisible=!1,n.selection.onChanged.add(n),n}return i(e,t),e.prototype.onMouseDown=function(t){void 0===t.source.key&&this.hideContextMenu()},e.prototype.onMouseUp=function(t){},e.prototype.onFocus=function(t){var e=this;setTimeout((function(){e.showContextMenuAtSelection()}),1)},e.prototype.onBlur=function(t){var e=this;setTimeout((function(){e.hideContextMenu()}),1)},e.prototype.onTextInputFocus=function(t){var e=this;setTimeout((function(){e.hideContextMenu()}),1)},e.prototype.onTextInputBlur=function(t){var e=this;setTimeout((function(){e.showContextMenuAtSelection()}),1)},e.prototype.onLongTouch=function(t){t.source.type===r.MouseEventElementType.Document&&this.showContextMenuAtEmptySelection(t.modelPoint)},e.prototype.onKeyDown=function(t){},e.prototype.onShortcut=function(t){},e.prototype.getSelectedItems=function(){return this.selection.getSelectedItems(!0)},e.prototype.showContextMenuAtSelection=function(){if(!this.contextToolboxVisible){var t=this.getSelectedItems();0!==t.length&&this.showContextMenu(void 0,a.ModelUtils.createRectangle(t).createPosition())}},e.prototype.showContextMenuAtEmptySelection=function(t){this.contextToolboxVisible||0===this.getSelectedItems().length&&this.showContextMenu(void 0,t)},e.prototype.notifyDragStart=function(t){this.hideContextMenu()},e.prototype.notifyDragEnd=function(t){this.showContextMenuAtSelection()},e.prototype.notifySelectionChanged=function(t){this.isUpdateLocked()?this.registerOccurredEvent(1):this.raiseSelectionChanged()},e.prototype.raiseSelectionChanged=function(){0!==this.getSelectedItems().length?this.showContextMenuAtSelection():this.hideContextMenu()},e.prototype.onUpdateUnlocked=function(t){1&t&&this.raiseSelectionChanged()},e.prototype.notifyShowContextToolbox=function(t,e,n,o,i){this.contextToolboxVisible=!0,this.hideContextMenu()},e.prototype.notifyHideContextToolbox=function(){this.contextToolboxVisible=!1,this.showContextMenuAtSelection()},e}(s.ContextMenuHandler);e.ContextMenuTouchHandler=c},4426:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ContextToolboxHandler=void 0;var o=n(6031),i=n(8675),r=n(2153),s=n(9279),a=function(){function t(){this.contextToolboxVisible=!1,this.onVisibilityChanged=new i.EventDispatcher}return t.prototype.onMouseDown=function(t){t.source.type!==o.MouseEventElementType.Undefined&&this.hideContextToolbox()},t.prototype.onMouseUp=function(t){t.source.type===o.MouseEventElementType.Undefined&&s.Browser.TouchUI||this.hideContextToolbox()},t.prototype.onFocus=function(t){},t.prototype.onBlur=function(t){},t.prototype.onKeyDown=function(t){t.keyCode===r.KeyCode.Esc&&this.hideContextToolbox()},t.prototype.onShortcut=function(t){this.hideContextToolbox()},t.prototype.showContextToolbox=function(t,e,n,o,i,r){this.onVisibilityChanged.raise1((function(r){return r.notifyShowContextToolbox(t,e,n,o,i)})),this.contextToolboxVisible=!0,this.contextToolboxCancelCallback=r},t.prototype.hideContextToolbox=function(t){this.contextToolboxVisible&&(this.onVisibilityChanged.raise1((function(t){return t.notifyHideContextToolbox()})),this.contextToolboxCancelCallback&&(t||this.contextToolboxCancelCallback(),this.contextToolboxCancelCallback=void 0),this.contextToolboxVisible=!1)},t}();e.ContextToolboxHandler=a},6031:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramClipboardEvent=e.DiagramKeyboardEvent=e.DiagramContextMenuEvent=e.DiagramWheelEvent=e.DiagramMouseEvent=e.DiagramMouseEventBase=e.DiagramMouseEventTouch=e.DiagramFocusEvent=e.DiagramEvent=e.ResizeEventSource=e.MouseEventSource=e.MouseEventElementType=e.MouseButton=void 0;var r=n(2153);!function(t){t[t.None=0]=\"None\",t[t.Left=1]=\"Left\",t[t.Right=2]=\"Right\",t[t.Middle=4]=\"Middle\"}(e.MouseButton||(e.MouseButton={})),function(t){t[t.Undefined=0]=\"Undefined\",t[t.Background=1]=\"Background\",t[t.Document=2]=\"Document\",t[t.Connector=3]=\"Connector\",t[t.ConnectorPoint=4]=\"ConnectorPoint\",t[t.ConnectorSide=5]=\"ConnectorSide\",t[t.ConnectorOrthogonalSide=6]=\"ConnectorOrthogonalSide\",t[t.ConnectorText=7]=\"ConnectorText\",t[t.Shape=8]=\"Shape\",t[t.ShapeResizeBox=9]=\"ShapeResizeBox\",t[t.ShapeParameterBox=10]=\"ShapeParameterBox\",t[t.SelectionRect=11]=\"SelectionRect\",t[t.ShapeConnectionPoint=12]=\"ShapeConnectionPoint\",t[t.ShapeExpandButton=13]=\"ShapeExpandButton\"}(e.MouseEventElementType||(e.MouseEventElementType={}));var s=function(t,e,n){this.type=t,this.key=e,this.value=n};e.MouseEventSource=s,function(t){t[t.Undefined=0]=\"Undefined\",t[t.ResizeBox_NW=1]=\"ResizeBox_NW\",t[t.ResizeBox_NE=2]=\"ResizeBox_NE\",t[t.ResizeBox_SE=3]=\"ResizeBox_SE\",t[t.ResizeBox_SW=4]=\"ResizeBox_SW\",t[t.ResizeBox_N=5]=\"ResizeBox_N\",t[t.ResizeBox_E=6]=\"ResizeBox_E\",t[t.ResizeBox_S=7]=\"ResizeBox_S\",t[t.ResizeBox_W=8]=\"ResizeBox_W\"}(e.ResizeEventSource||(e.ResizeEventSource={}));var a=function(t){this.modifiers=t};e.DiagramEvent=a;var c=function(t){function e(e){var n=t.call(this,r.ModifierKey.None)||this;return n.inputText=e,n}return i(e,t),e}(a);e.DiagramFocusEvent=c;var u=function(t,e){this.offsetPoint=t,this.modelPoint=e};e.DiagramMouseEventTouch=u;var h=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.offsetPoint=n,r.modelPoint=o,r.source=i,r}return i(e,t),e}(a);e.DiagramMouseEventBase=h;var p=function(t){function e(e,n,o,i,r,s,a){void 0===s&&(s=[]);var c=t.call(this,e,o,i,r)||this;return c.button=n,c.touches=s,c.isTouchMode=a,c.scrollX=0,c.scrollY=0,c}return i(e,t),e}(h);e.DiagramMouseEvent=p;var l=function(t){function e(e,n,o,i,r,s){var a=t.call(this,e,i,r,s)||this;return a.deltaX=n,a.deltaY=o,a}return i(e,t),e}(h);e.DiagramWheelEvent=l;var d=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.eventPoint=n,i.modelPoint=o,i}return i(e,t),e}(a);e.DiagramContextMenuEvent=d;var f=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.keyCode=n,i.inputText=o,i}return i(e,t),e.prototype.getShortcutCode=function(){return this.modifiers|this.keyCode},e}(a);e.DiagramKeyboardEvent=f;var y=function(t){function e(e){var n=t.call(this,r.ModifierKey.None)||this;return n.clipboardData=e,n}return i(e,t),e}(a);e.DiagramClipboardEvent=y},82:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.EventManager=void 0;var o=n(5689),i=n(8675),r=n(8376),s=n(9946),a=n(151),c=n(7733),u=n(7459),h=n(4426),p=n(9279),l=n(2153),d=function(){function t(t){this.onMouseOperation=new i.EventDispatcher,this.onTextInputOperation=new i.EventDispatcher,this.toolboxes=[],this.control=t,this.visualizersManager=i.EventUtils.isTouchMode()?new u.VisualizerTouchManager(t.selection,t.model,this,t.settings):new c.VisualizerManager(t.selection,t.model,this,t.settings),this.onMouseOperation.add(this.visualizersManager),this.contextMenuHandler=p.Browser.TouchUI?new a.ContextMenuTouchHandler(t.selection):new s.ContextMenuHandler,this.contextMenuHandler.onVisibilityChanged.add(t),this.onMouseOperation.add(this.contextMenuHandler),this.onTextInputOperation.add(this.contextMenuHandler),this.contextToolboxHandler=new h.ContextToolboxHandler,this.contextToolboxHandler.onVisibilityChanged.add(t),this.contextToolboxHandler.onVisibilityChanged.add(this.contextMenuHandler),this.mouseHandler=new o.MouseHandler(t.history,t.selection,t.model,this,t.settings.readOnly,t.view,this.visualizersManager,this.contextToolboxHandler,t.shapeDescriptionManager,t.settings,t.permissionsProvider),this.textInputHandler=new r.TextInputHandler(t),this.visualizersManager.onVisualizersUpdate.add(this.mouseHandler)}return Object.defineProperty(t.prototype,\"onVisualizersUpdate\",{get:function(){return this.visualizersManager.onVisualizersUpdate},enumerable:!1,configurable:!0}),t.prototype.registerToolbox=function(t){this.toolboxes.push(t)},t.prototype.cleanToolboxes=function(t){this.toolboxes.forEach((function(e){t.remove(e)})),this.toolboxes=[]},t.prototype.initialize=function(){this.visualizersManager.initialize(this.control.model),this.mouseHandler.initialize(this.control.model)},t.prototype.beginUpdate=function(t){this.contextMenuHandler.beginUpdate(),this.visualizersManager.beginUpdate()},t.prototype.endUpdate=function(){this.contextMenuHandler.endUpdate(),this.visualizersManager.endUpdate()},t.prototype.onMouseDown=function(t){this.mouseHandler.onMouseDown(t),this.contextMenuHandler.onMouseDown(t),this.visualizersManager.onMouseDown(t),this.contextToolboxHandler.onMouseDown(t)},t.prototype.onMouseMove=function(t){this.processDragging(t),this.mouseHandler.onMouseMove(t)},t.prototype.onMouseUp=function(t){this.contextToolboxHandler.onMouseUp(t),this.mouseHandler.onMouseUp(t),this.contextMenuHandler.onMouseUp(t),this.visualizersManager.onMouseUp(t),this.processDragging(t)},t.prototype.onMouseEnter=function(t){this.visualizersManager.onMouseEnter(t)},t.prototype.onMouseLeave=function(t){this.visualizersManager.onMouseLeave(t)},t.prototype.onDblClick=function(t){this.mouseHandler.onMouseDblClick(t),this.textInputHandler.onDblClick(t),this.control.apiController.notifyDblClick(t)},t.prototype.onClick=function(t){this.mouseHandler.onMouseClick(t),this.control.apiController.notifyClick(t)},t.prototype.onContextMenu=function(t){this.contextMenuHandler.onContextMenu(t)},t.prototype.onLongTouch=function(t){this.mouseHandler.onLongTouch(t),this.contextMenuHandler.onLongTouch(t)},t.prototype.onBlur=function(t){this.contextMenuHandler.onBlur(t),this.contextToolboxHandler.onBlur(t),this.visualizersManager.onBlur(t)},t.prototype.onFocus=function(t){this.contextMenuHandler.onFocus(t),this.contextToolboxHandler.onFocus(t),this.visualizersManager.onFocus(t)},t.prototype.onKeyDown=function(t){var e=t.getShortcutCode();this.onShortcut(e)?(this.visualizersManager.updateConnectionPoints(),this.contextMenuHandler.onShortcut(t),this.contextToolboxHandler.onShortcut(t),t.preventDefault=!0):this.isShortcutForFocusInput(e)&&(t.preventDefault=!0),this.contextMenuHandler.onKeyDown(t),this.contextToolboxHandler.onKeyDown(t),this.mouseHandler.onKeyDown(t)},t.prototype.onKeyUp=function(t){this.mouseHandler.onKeyUp(t)},t.prototype.onTextInputBlur=function(t){this.textInputHandler.onBlur(t),this.contextMenuHandler.onTextInputBlur(t)},t.prototype.onTextInputFocus=function(t){this.textInputHandler.onFocus(t),this.contextMenuHandler.onTextInputFocus(t)},t.prototype.onTextInputKeyDown=function(t){this.textInputHandler.onKeyDown(t)},t.prototype.onShortcut=function(t){return!!this.control.commandManager.processShortcut(t)||(!!this.mouseHandler.onShortcut(t)||void 0)},t.prototype.isShortcutForFocusInput=function(t){return t===l.KeyCode.Delete||t===(l.KeyCode.Delete|l.ModifierKey.Ctrl)||t===(l.KeyCode.Delete|l.ModifierKey.Meta)||t===l.KeyCode.Backspace||t===(l.KeyCode.Backspace|l.ModifierKey.Ctrl)||t===(l.KeyCode.Backspace|l.ModifierKey.Shift)||t===(l.KeyCode.Backspace|l.ModifierKey.Meta)||t===l.KeyCode.Home||t===l.KeyCode.End||t===l.KeyCode.Up||t===(l.KeyCode.Up|l.ModifierKey.Ctrl)||t===(l.KeyCode.Up|l.ModifierKey.Meta)||t===l.KeyCode.Down||t===(l.KeyCode.Down|l.ModifierKey.Ctrl)||t===(l.KeyCode.Down|l.ModifierKey.Meta)||t===l.KeyCode.Left||t===(l.KeyCode.Left|l.ModifierKey.Ctrl)||t===(l.KeyCode.Left|l.ModifierKey.Meta)||t===l.KeyCode.Right||t===(l.KeyCode.Right|l.ModifierKey.Ctrl)||t===(l.KeyCode.Right|l.ModifierKey.Meta)},t.prototype.onPaste=function(t){!this.textInputHandler.isTextInputActive()&&this.control.commandManager.processPaste(t.clipboardData)&&(this.visualizersManager.updateConnectionPoints(),t.preventDefault=!0)},t.prototype.onMouseWheel=function(t){this.mouseHandler.onWheel(t)&&(t.preventDefault=!0)},t.prototype.isFocused=function(){return this.control.isFocused()},t.prototype.processDragging=function(t){var e=this.getDraggingEvent();e&&this.draggingEvent!==e?(this.draggingEvent=e,this.mouseHandler.onDragStart(this.draggingEvent),this.control.captureFocus()):!e&&this.draggingEvent&&(delete this.draggingEvent,this.mouseHandler.onDragEnd(t))},t.prototype.getDraggingEvent=function(){return this.toolboxes.filter((function(t){return t.draggingObject})).map((function(t){return t.draggingObject.evt}))[0]},t.prototype.onDocumentDragStart=function(t){this.control.beginUpdate(),this.control.captureFocus(),this.onMouseOperation.raise(\"notifyDragStart\",t)},t.prototype.onDocumentDragEnd=function(t){this.onMouseOperation.raise(\"notifyDragEnd\",t),this.control.endUpdate(),this.control.barManager.updateItemsState()},t.prototype.onDocumentDragScrollStart=function(){this.onMouseOperation.raise1((function(t){return t.notifyDragScrollStart()}))},t.prototype.onDocumentDragScrollEnd=function(){this.onMouseOperation.raise1((function(t){return t.notifyDragScrollEnd()}))},t.prototype.onDocumentClick=function(t){this.control.beginUpdate(),this.control.endUpdate(),this.control.barManager.updateItemsState()},t.prototype.raiseTextInputStart=function(t,e,n,o){this.onTextInputOperation.raise(\"notifyTextInputStart\",t,e,n,o)},t.prototype.raiseTextInputEnd=function(t,e){this.onTextInputOperation.raise(\"notifyTextInputEnd\",t,e)},t.prototype.raiseTextInputPermissionsCheck=function(t,e){this.onTextInputOperation.raise(\"notifyTextInputPermissionsCheck\",t,e)},t.prototype.canFinishTextEditing=function(){return this.textInputHandler.canFinishTextEditing()},t}();e.EventManager=d},5689:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandler=void 0;var o=n(3250),i=n(6031),r=n(8900),s=n(4867),a=n(8032),c=n(7286),u=n(8502),h=n(2153),p=n(8675),l=function(){function t(t,e,n,o,i,r,s,a,c,u,h){this.history=t,this.selection=e,this.model=n,this.eventManager=o,this.readOnly=i,this.view=r,this.visualizerManager=s,this.contextToolboxHandler=a,this.shapeDescriptionManager=c,this.settings=u,this.permissionsProvider=h,this.finishStateLock=0,this.initialize(n),this.selection.onChanged.add(this)}return t.prototype.initialize=function(t){this.model=t,this.allowMultipleSelection=!0,this.allowCopyDiagramItems=!0,this.allowSnapToCellOnDragDiagramItem=!0,this.allowSnapToCellOnDragPoint=!0,this.allowSnapToCellOnResizeShape=!0,this.allowFixedDrag=!0,this.allowZoomOnWheel=!0,this.allowScrollPage=!0,this.shouldScrollPage=!1,this.copyDiagramItemsByCtrlAndShift=!1,this.startScrollingPageByCtrl=!1,this.initializeDefaultState()},t.prototype.initializeDefaultState=function(){this.defaultState=this.readOnly?p.EventUtils.isTouchMode()?new a.MouseHandlerDefaultReadOnlyTouchState(this,this.history,this.selection,this.model,this.view,this.visualizerManager,this.shapeDescriptionManager,this.settings):new c.MouseHandlerDefaultReadOnlyState(this,this.history,this.selection,this.model,this.view,this.visualizerManager,this.shapeDescriptionManager,this.settings):p.EventUtils.isTouchMode()?new u.MouseHandlerDefaultTouchState(this,this.history,this.selection,this.model,this.view,this.visualizerManager,this.shapeDescriptionManager,this.settings):new o.MouseHandlerDefaultState(this,this.history,this.selection,this.model,this.view,this.visualizerManager,this.shapeDescriptionManager,this.settings),this.switchToDefaultState()},t.prototype.onMouseDown=function(t){this.mouseDownEvent=t,this.state.onMouseDown(t)},t.prototype.onMouseMove=function(t){this.state.onMouseMove(t)},t.prototype.onMouseUp=function(t){this.state.onMouseUp(t)},t.prototype.onMouseDblClick=function(t){this.state.onMouseDblClick(t)},t.prototype.onMouseClick=function(t){this.state.onMouseClick(t)},t.prototype.onLongTouch=function(t){if(t.touches&&!(t.touches.length>1)){var e=t.source.key;void 0===e?this.selection.clear():this.selection.hasKey(e)?this.selection.remove(e):this.selection.add(e)}},t.prototype.onShortcut=function(t){return this.state.onShortcut(t)},t.prototype.onWheel=function(t){return this.state.onMouseWheel(t)},t.prototype.onDragStart=function(t){this.state.onDragStart(t)},t.prototype.onDragEnd=function(t){this.state.onDragEnd(t)},t.prototype.onKeyDown=function(t){this.state.onKeyDown(t)},t.prototype.onKeyUp=function(t){this.state.onKeyUp(t)},t.prototype.showContextToolbox=function(t,e,n,o,i,r){this.contextToolboxHandler.showContextToolbox(t,e,n,o,i,r)},t.prototype.hideContextToolbox=function(t){this.contextToolboxHandler.hideContextToolbox(t)},t.prototype.canScrollPage=function(t){return this.startScrollingPageByCtrl?!!this.hasCtrlModifier(t.modifiers)&&(!this.copyDiagramItemsByCtrlAndShift||t.source.type!==i.MouseEventElementType.Shape&&t.source.type!==i.MouseEventElementType.Connector):this.allowScrollPage&&this.shouldScrollPage},t.prototype.canMultipleSelection=function(t){return this.allowMultipleSelection&&this.hasCtrlOrShiftModifier(t.modifiers)},t.prototype.canCopySelectedItems=function(t){return!!this.allowCopyDiagramItems&&(this.copyDiagramItemsByCtrlAndShift?this.hasCtrlAndShiftModifier(t.modifiers):this.hasAltModifier(t.modifiers))},t.prototype.canCalculateFixedPosition=function(t){return!(!this.allowFixedDrag||!this.hasShiftModifier(t.modifiers))&&(!this.copyDiagramItemsByCtrlAndShift||!this.hasCtrlModifier(t.modifiers))},t.prototype.canStartZoomOnWheel=function(t){return this.allowZoomOnWheel&&this.hasCtrlModifier(t.modifiers)},t.prototype.canFinishZoomOnWheel=function(t){return this.allowZoomOnWheel&&!this.hasCtrlModifier(t.modifiers)},t.prototype.onStartScrollPageByKeyboard=function(t){this.canStartScrollingPageByKeyboard(t)&&(this.raiseDragScrollStart(),this.shouldScrollPage=!0)},t.prototype.onFinishScrollPageByKeyboard=function(t){this.canEndScrollingPageByKeyboard(t)&&this.finishScrollingPage()},t.prototype.onFinishScrollPageByMouse=function(t){this.canEndScrollingPage(t)&&this.finishScrollingPage()},t.prototype.finishScrollingPage=function(){this.shouldScrollPage=!1,this.raiseDragScrollEnd(),this.switchToDefaultState()},t.prototype.hasCtrlOrShiftModifier=function(t){return this.hasCtrlModifier(t)||this.hasShiftModifier(t)},t.prototype.hasCtrlAndShiftModifier=function(t){return this.hasCtrlModifier(t)&&this.hasShiftModifier(t)},t.prototype.hasCtrlModifier=function(t){return(t&h.ModifierKey.Ctrl)>0},t.prototype.hasAltModifier=function(t){return(t&h.ModifierKey.Alt)>0},t.prototype.hasShiftModifier=function(t){return(t&h.ModifierKey.Shift)>0},t.prototype.canStartScrollingPageByKeyboard=function(t){return!this.startScrollingPageByCtrl&&!this.shouldScrollPage&&t.keyCode===h.KeyCode.Space},t.prototype.canEndScrollingPageByKeyboard=function(t){return!this.startScrollingPageByCtrl&&t.keyCode===h.KeyCode.Space},t.prototype.canEndScrollingPage=function(t){return!this.startScrollingPageByCtrl||this.hasCtrlModifier(t.modifiers)},t.prototype.getSnappedPointOnDragDiagramItem=function(t,e,n,o,i){var s=this.getSnapToCellOnDragDiagramItem(t);return new r.Point(this.getSnappedPos(this.getFixedXPosition(t,e,n,i),!0,s),this.getSnappedPos(this.getFixedYPosition(t,e,o,i),!1,s))},t.prototype.getSnappedPointOnDragPoint=function(t,e,n){var o=this.getSnapToCellOnDragPoint(t),i=this.getSnappedPos(e.x,!0,o),s=this.getSnappedPos(e.y,!1,o);return void 0===n||Math.pow(e.x-i,2)+Math.pow(e.y-s,2)<Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)?new r.Point(i,s):n},t.prototype.getSnappedOffsetOnDragPoint=function(t,e){var n=this.getSnapToCellOnDragPoint(t);return new r.Point(this.getSnappedPos(t.modelPoint.x-e.x,!0,n),this.getSnappedPos(t.modelPoint.y-e.y,!1,n))},t.prototype.lockAspectRatioOnShapeResize=function(t){return this.hasShiftModifier(t.modifiers)},t.prototype.getSnappedPositionOnResizeShape=function(t,e,n){return this.getSnapToCellOnResizeShape(t)?s.ModelUtils.getSnappedPos(this.model,this.settings.gridSize,e,n):e},t.prototype.getSnappedPos=function(t,e,n){return n?s.ModelUtils.getSnappedPos(this.model,this.settings.gridSize,t,e):t},t.prototype.getFixedXPosition=function(t,e,n,o){return n?e.x:e.x+t.modelPoint.x-o.x},t.prototype.getFixedYPosition=function(t,e,n,o){return n?e.y:e.y+t.modelPoint.y-o.y},t.prototype.getSnapToCellOnDragDiagramItem=function(t){return this.allowSnapToCellOnDragDiagramItem&&this.settings.snapToGrid&&!this.hasCtrlModifier(t.modifiers)},t.prototype.getSnapToCellOnDragPoint=function(t){return this.allowSnapToCellOnDragPoint&&this.settings.snapToGrid&&!this.hasCtrlModifier(t.modifiers)},t.prototype.getSnapToCellOnResizeShape=function(t){return this.allowSnapToCellOnResizeShape&&this.settings.snapToGrid&&!this.hasCtrlModifier(t.modifiers)},t.prototype.tryUpdateModelSize=function(t){this.lockPermissions(),s.ModelUtils.tryUpdateModelRectangle(this.history,t),this.unlockPermissions()},t.prototype.canAddDiagramItemToSelection=function(t){return t.source.key&&(t.button===i.MouseButton.Left||t.button===i.MouseButton.Right)},t.prototype.addDiagramItemToSelection=function(t){this.pressedDiagramItemKey=t.source.key,this.pressedDiagramItemInSelection=this.selection.hasKey(this.pressedDiagramItemKey),this.canMultipleSelection(t)?this.selection.add(t.source.key):this.changeSingleSelection(t.source.key)},t.prototype.canRemoveDiagramItemToSelection=function(t){return this.pressedDiagramItemKey&&t.source.key&&this.pressedDiagramItemKey===t.source.key&&(t.button===i.MouseButton.Left||t.button===i.MouseButton.Right)},t.prototype.removeDiagramItemFromSelection=function(t,e){this.pressedDiagramItemInSelection&&this.selection.getKeys().length>1&&t===i.MouseButton.Left&&this.selection.remove(e)},t.prototype.changeSingleSelection=function(t){this.selection.hasKey(t)||this.selection.set([t])},t.prototype.notifySelectionChanged=function(t){this.pressedDiagramItemKey&&!this.selection.hasKey(this.pressedDiagramItemKey)&&(this.pressedDiagramItemKey=void 0,this.pressedDiagramItemInSelection=!1)},t.prototype.raiseDragStart=function(t){this.eventManager.onDocumentDragStart(t)},t.prototype.raiseDragEnd=function(t){this.eventManager.onDocumentDragEnd(t)},t.prototype.raiseDragScrollStart=function(){this.eventManager.onDocumentDragScrollStart()},t.prototype.raiseDragScrollEnd=function(){this.eventManager.onDocumentDragScrollEnd()},t.prototype.raiseClick=function(t){this.eventManager.onDocumentClick(t)},t.prototype.beginStorePermissions=function(){this.permissionsProvider.beginStorePermissions()},t.prototype.endStorePermissions=function(){this.permissionsProvider.endStorePermissions()},t.prototype.isStoredPermissionsGranted=function(){return this.permissionsProvider.isStoredPermissionsGranted()},t.prototype.lockPermissions=function(){this.permissionsProvider.lockPermissions()},t.prototype.unlockPermissions=function(){this.permissionsProvider.unlockPermissions()},t.prototype.canPerformChangeConnection=function(t,e){var n=!0;return t?n=this.permissionsProvider.canChangeConnection(t,e.item,e.oldItem,e.position,e.connectionPointIndex):e.item&&(n=this.permissionsProvider.canChangeConnection(void 0,e.item,e.oldItem,e.position,e.connectionPointIndex)),n},t.prototype.canPerformChangeConnectionOnUpdateUI=function(t,e){this.permissionsProvider.beginUpdateUI();var n=this.canPerformChangeConnection(t,e);return this.permissionsProvider.endUpdateUI(),n},t.prototype.canFinishTextEditing=function(){return this.eventManager.canFinishTextEditing()},t.prototype.restartState=function(){this.state&&!this.finishStateLock&&(this.finishStateLock++,this.state.finish(),this.finishStateLock--),this.state.start()},t.prototype.switchToDefaultState=function(){this.switchState(this.defaultState)},t.prototype.switchState=function(t){this.newState=t,this.state&&!this.finishStateLock&&(this.finishStateLock++,this.state.finish(),this.finishStateLock--),this.newState&&(this.state=this.newState,this.state.start(),this.newState=void 0)},t.prototype.addInteractingItem=function(t,e){this.permissionsProvider.addInteractingItem(t,e)},t.prototype.clearInteractingItems=function(){this.permissionsProvider.clearInteractingItems()},t.prototype.notifyReadOnlyChanged=function(t){this.readOnly=t,this.initializeDefaultState()},t.prototype.notifySelectionRectShow=function(t){},t.prototype.notifySelectionRectHide=function(){},t.prototype.notifyResizeInfoShow=function(t,e){},t.prototype.notifyResizeInfoHide=function(){},t.prototype.notifyConnectionPointsShow=function(t,e,n,o){this.state.onConnectionPointsShow(t,e)},t.prototype.notifyConnectionPointsHide=function(){},t.prototype.notifyConnectionTargetShow=function(t,e){this.state.onConnectionTargetShow(t,e)},t.prototype.notifyConnectionTargetHide=function(){},t.prototype.notifyContainerTargetShow=function(t,e){},t.prototype.notifyContainerTargetHide=function(){},t.prototype.notifyExtensionLinesShow=function(t){},t.prototype.notifyExtensionLinesHide=function(){},t}();e.MouseHandler=l},5627:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerCreateConnectorState=void 0;var r=n(7959),s=n(3477),a=n(9603),c=n(3742),u=n(7060),h=n(4297),p=n(4145),l=n(4867),d=n(8930),f=n(9143),y=function(t){function e(e,n,o,i,r,s,a){var c=t.call(this,e,n,o,i)||this;return c.shapeDescriptionManager=r,c.selection=s,c.connectionPointIndex=a,c}return i(e,t),e.prototype.onMouseDown=function(e){void 0===this.connectionPointIndex&&(this.connectionPointIndex=parseInt(e.source.value)),this.connectedItem=this.model.findItem(e.source.key),this.pointIndex=1,this.pointPosition=r.ConnectorPosition.End,t.prototype.onMouseDown.call(this,e)},e.prototype.onMouseUp=function(e){this.connector&&!this.connector.endItem&&this.createNewShapeAtConnectorEnd(e),t.prototype.onMouseUp.call(this,e)},e.prototype.onApplyChanges=function(e){var n=this.getSnappedPoint(e,e.modelPoint);if(this.connector)t.prototype.onApplyChanges.call(this,e);else{var o=new a.AddConnectorHistoryItem([this.connectedItem.getConnectionPointPosition(this.connectionPointIndex,n),n]);this.history.addAndRedo(o),this.connector=this.model.findConnector(o.connectorKey),this.handler.addInteractingItem(this.connector),this.history.addAndRedo(new s.AddConnectionHistoryItem(this.connector,this.connectedItem,this.connectionPointIndex,r.ConnectorPosition.Begin)),l.ModelUtils.updateNewConnectorProperties(this.history,this.selection,this.connector.key)}},e.prototype.checkStoredPermissionsOnFinish=function(){this.connector&&this.connector.endItem&&t.prototype.checkStoredPermissionsOnFinish.call(this)},e.prototype.onFinishWithChanges=function(){t.prototype.onFinishWithChanges.call(this),this.history.addAndRedo(new h.SetSelectionHistoryItem(this.selection,[this.connector.key]))},e.prototype.createNewShapeAtConnectorEnd=function(t){var e=this,n=this.connector&&this.connector.beginItem;if(n)if(!this.connector||this.handler.canPerformChangeConnection(this.connector,{position:r.ConnectorPosition.End,connectionPointIndex:-1})){var o=this.getNewShapeSide(this.connector),i=this.getSnappedPoint(t,t.modelPoint),a=this.shapeDescriptionManager.getCategoryByDescription(n.description);this.handler.showContextToolbox(i,(function(n){var r=n.clone();r.position=i.clone();var s=e.getNewShapePosition(r,o);return e.handler.getSnappedPointOnDragPoint(t,s)}),o,a,(function(n){if(n){e.handler.beginStorePermissions(),e.history.beginTransaction();var a=new p.AddShapeHistoryItem(e.shapeDescriptionManager.get(n),i);e.history.addAndRedo(a);var c=e.model.findShape(a.shapeKey),u=e.targetItem&&e.model.findNearestContainer(e.targetItem.key);u&&l.ModelUtils.insertToContainer(e.history,e.model,c,u);var d=e.getNewShapePosition(c,o);l.ModelUtils.setShapePosition(e.history,e.model,c,e.getSnappedPoint(t,d)),l.ModelUtils.updateNewShapeProperties(e.history,e.selection,c.key),e.history.addAndRedo(new s.AddConnectionHistoryItem(e.connector,c,c.getConnectionPointIndexForSide(o),r.ConnectorPosition.End)),u&&l.ModelUtils.updateConnectorContainer(e.history,e.model,e.connector),l.ModelUtils.updateShapeAttachedConnectors(e.history,e.model,c),e.handler.isStoredPermissionsGranted()?(e.handler.tryUpdateModelSize(),e.history.addAndRedo(new h.SetSelectionHistoryItem(e.selection,[c.key]))):(e.handler.lockPermissions(),e.history.undoTransaction(),e.handler.unlockPermissions(),e.checkNewConnectorPermissions()),e.history.endTransaction(),e.handler.endStorePermissions(),e.handler.hideContextToolbox(!0)}}),(function(){e.checkNewConnectorPermissions()}))}else this.cancelChanges()},e.prototype.checkNewConnectorPermissions=function(){this.connector&&!this.handler.canPerformChangeConnection(this.connector,{position:r.ConnectorPosition.End,connectionPointIndex:-1})&&(this.handler.lockPermissions(),this.history.beginTransaction(),this.history.addAndRedo(new h.SetSelectionHistoryItem(this.selection,[])),this.connector.beginItem&&this.history.addAndRedo(new d.DeleteConnectionHistoryItem(this.connector,r.ConnectorPosition.Begin)),this.connector.endItem&&this.history.addAndRedo(new d.DeleteConnectionHistoryItem(this.connector,r.ConnectorPosition.End)),this.history.addAndRedo(new f.DeleteConnectorHistoryItem(this.connector.key)),this.history.endTransaction(),this.handler.unlockPermissions())},e.prototype.getNewShapePosition=function(t,e){switch(e){case c.ConnectionPointSide.North:return t.position.clone().offset(-t.size.width/2,0);case c.ConnectionPointSide.South:return t.position.clone().offset(-t.size.width/2,-t.size.height);case c.ConnectionPointSide.East:return t.position.clone().offset(-t.size.width,-t.size.height/2);case c.ConnectionPointSide.West:return t.position.clone().offset(0,-t.size.height/2)}},e.prototype.getNewShapeSide=function(t){var n=t.getRenderPoints();return e.getNewShapeSideByConnectorPoints(n[n.length-1],n[n.length-2])},e.prototype.getSourceItem=function(){return this.connectedItem},e.getNewShapeSideByConnectorPoints=function(t,e){return t.x===e.x?t.y>e.y?c.ConnectionPointSide.North:c.ConnectionPointSide.South:t.x>e.x?t.y===e.y?c.ConnectionPointSide.West:t.y>e.y?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?c.ConnectionPointSide.West:c.ConnectionPointSide.North:Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?c.ConnectionPointSide.West:c.ConnectionPointSide.South:t.y===e.y?c.ConnectionPointSide.East:t.y>e.y?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?c.ConnectionPointSide.East:c.ConnectionPointSide.North:Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?c.ConnectionPointSide.East:c.ConnectionPointSide.South},e}(u.MouseHandlerMoveConnectorPointStateBase);e.MouseHandlerCreateConnectorState=y},7286:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDefaultReadOnlyState=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.canDragObjectOnMouseDown=function(t){return!1},e.prototype.canExpandContainerOnMouseDown=function(t){return!1},e.prototype.canClearSelectionOnMouseDown=function(){return!1},e.prototype.canSelectOnMouseUp=function(t){return!0},e.prototype.canClearSelectionOnMouseUp=function(){return!0},e.prototype.updateConnectionsOnMouseMove=function(t){},e}(n(8213).MouseHandlerDefaultStateBase);e.MouseHandlerDefaultReadOnlyState=r},8032:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDefaultReadOnlyTouchState=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.canDragObjectOnMouseDown=function(t){return!1},e.prototype.canExpandContainerOnMouseDown=function(t){return!1},e.prototype.canClearSelectionOnMouseDown=function(){return!0},e.prototype.canSelectOnMouseUp=function(t){return!this.inSelection(t)},e.prototype.canClearSelectionOnMouseUp=function(){return!1},e}(n(7286).MouseHandlerDefaultReadOnlyState);e.MouseHandlerDefaultReadOnlyTouchState=r},3250:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDefaultState=void 0;var r=n(6031),s=n(4402),a=n(5609),c=n(481),u=n(4908),h=n(5627),p=n(5209),l=n(6918),d=n(5391),f=n(8213),y=n(9979),g=n(7959),m=n(5168),v=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.finish=function(){this.visualizerManager.resetConnectionPoints(),t.prototype.finish.call(this)},e.prototype.onMouseDownCore=function(e){this.handler.canScrollPage(e)?this.startScrolling(e):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ConnectorText?(this.handler.changeSingleSelection(e.source.key),this.handler.switchState(new d.MouseHandlerMoveConnectorTextState(this.handler,this.history,this.model))):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ShapeResizeBox?this.handler.switchState(new a.MouseHandlerResizeShapeState(this.handler,this.history,this.model,this.selection,this.visualizerManager,this.settings)):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ShapeParameterBox?this.handler.switchState(new u.MouseHandlerDragParameterPointState(this.handler,this.history,this.model)):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ConnectorPoint?this.handler.switchState(new s.MouseHandlerMoveConnectorPointState(this.handler,this.history,this.model,this.visualizerManager)):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ConnectorSide?this.handler.switchState(new c.MouseHandlerMoveConnectorSideState(this.handler,this.history,this.model)):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ConnectorOrthogonalSide?this.handler.switchState(new p.MouseHandlerMoveConnectorOrthogonalSideState(this.handler,this.history,this.model)):e.button===r.MouseButton.Left&&e.source.type===r.MouseEventElementType.ShapeConnectionPoint?this.handler.switchState(new h.MouseHandlerCreateConnectorState(this.handler,this.history,this.model,this.visualizerManager,this.shapeDescriptionManager,this.selection)):t.prototype.onMouseDownCore.call(this,e)},e.prototype.onDragDiagramItemOnMouseDown=function(e){this.handler.canAddDiagramItemToSelection(e)?e.source.type===r.MouseEventElementType.Shape?this.handler.switchState(new y.MouseHandlerMoveShapeState(this.handler,this.history,this.model,this.selection,this.visualizerManager)):e.source.type===r.MouseEventElementType.Connector&&this.handler.switchState(new m.MouseHandlerMoveConnectorState(this.handler,this.history,this.model,this.selection,this.visualizerManager)):t.prototype.onDragDiagramItemOnMouseDown.call(this,e)},e.prototype.onDragStart=function(t){this.handler.switchState(new l.MouseHandlerBeforeToolboxDraggingState(this.handler,this.history,this.model,this.selection,this.visualizerManager,this.shapeDescriptionManager)),this.handler.state.onDragStart(t)},e.prototype.onMouseMoveCore=function(e){this.updateConnectionsOnMouseMove(e),t.prototype.onMouseMoveCore.call(this,e)},e.prototype.onMouseUp=function(e){this.handler.canRemoveDiagramItemToSelection(e)?this.handler.removeDiagramItemFromSelection(e.button,e.source.key):t.prototype.onMouseUp.call(this,e)},e.prototype.updateConnectionsOnMouseMove=function(t){var e=this.model.findItem(t.source.key);this.visualizerManager.updateConnections(e,t.source.type,t.source.value)},e.prototype.canDragObjectOnMouseDown=function(t){return!0},e.prototype.canExpandContainerOnMouseDown=function(t){return!0},e.prototype.canClearSelectionOnMouseDown=function(){return!1},e.prototype.canSelectOnMouseUp=function(t){return!1},e.prototype.canClearSelectionOnMouseUp=function(){return!0},e.prototype.onConnectionPointsShow=function(t,e){var n=this,o=this.model.findShape(t);o&&e.forEach((function(t,e){t.allowed=n.handler.canPerformChangeConnectionOnUpdateUI(void 0,{item:o,position:g.ConnectorPosition.Begin,connectionPointIndex:e})}))},e}(f.MouseHandlerDefaultStateBase);e.MouseHandlerDefaultState=v},8213:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDefaultStateBase=void 0;var r=n(5434),s=n(6031),a=n(5752),c=n(4869),u=n(7189),h=n(9582),p=n(9291),l=n(8461),d=function(t){function e(e,n,o,i,r,s,a,c){var u=t.call(this,e)||this;return u.history=n,u.selection=o,u.model=i,u.view=r,u.visualizerManager=s,u.shapeDescriptionManager=a,u.settings=c,u}return i(e,t),e.prototype.onKeyDown=function(t){this.handler.onStartScrollPageByKeyboard(t)},e.prototype.onKeyUp=function(t){this.handler.onFinishScrollPageByKeyboard(t)},e.prototype.onMouseDown=function(t){this.handler.canFinishTextEditing()&&(this.onMouseDownCore(t),this.handler.state!==this&&this.handler.state.onMouseDown(t))},e.prototype.onMouseDownCore=function(t){this.handler.canScrollPage(t)?this.startScrolling(t):this.hasDiagramItem(t)&&this.canDragObjectOnMouseDown(t.source.key)?this.onDragDiagramItemOnMouseDown(t):t.button===s.MouseButton.Left&&t.source.type===s.MouseEventElementType.ShapeExpandButton&&this.canExpandContainerOnMouseDown(t.source.key)?this.onShapeExpandBtnMouseDown(t):(!this.hasDiagramItem(t)&&this.canClearSelectionOnMouseDown()&&this.clearSelection(),this.startPoint=t.modelPoint)},e.prototype.onDragDiagramItemOnMouseDown=function(t){this.replaceSelection(t)},e.prototype.onMouseMove=function(t){this.onMouseMoveCore(t),this.handler.state!==this&&(this.handler.state.onMouseDown(this.handler.mouseDownEvent),this.handler.state.onMouseMove(t))},e.prototype.onMouseMoveCore=function(t){this.startPoint&&(Math.abs(this.startPoint.x-t.modelPoint.x)>e.startLimit||Math.abs(this.startPoint.y-t.modelPoint.y)>e.startLimit)&&(this.processOnMouseMoveAfterLimit(t),this.startPoint=void 0)},e.prototype.processOnMouseMoveAfterLimit=function(t){t.isTouchMode?t.touches.length>1?this.startZooming(t):this.startScrolling(t):this.startSelection(t)},e.prototype.onMouseUp=function(t){this.onMouseUpCore(t),this.handler.state!==this&&this.handler.state.onMouseUp(t)},e.prototype.onMouseUpCore=function(t){t.source.type===s.MouseEventElementType.Shape&&this.canSelectOnMouseUp(t.source.key)||t.source.type===s.MouseEventElementType.Connector&&this.canSelectOnMouseUp(t.source.key)||t.source.type===s.MouseEventElementType.ShapeExpandButton&&this.canSelectOnMouseUp(t.source.key)?this.replaceSelection(t):this.startPoint&&this.canClearSelectionOnMouseUp()&&this.clearSelection(),this.startPoint=void 0},e.prototype.onMouseWheel=function(t){return!!this.handler.canStartZoomOnWheel(t)&&(this.handler.switchState(new u.MouseHandlerZoomOnWheelState(this.handler,this.settings,this.view)),this.handler.state.onMouseWheel(t),!0)},e.prototype.onLongTouch=function(t){this.replaceMultipleSelection(t.source.key)},e.prototype.finish=function(){this.startPoint=void 0},e.prototype.startSelection=function(t){t.button===s.MouseButton.Left&&this.handler.switchState(new c.MouseHandlerSelectionState(this.handler,this.selection,this.visualizerManager))},e.prototype.startScrolling=function(t){t.button===s.MouseButton.Left&&(this.handler.raiseDragScrollStart(),this.handler.switchState(new h.MouseHandlerScrollingState(this.handler,this.view,this.selection)))},e.prototype.startZooming=function(t){this.handler.switchState(new l.MouseHandlerZoomOnPinchState(this.handler,this.selection,this.settings,this.view))},e.prototype.inSelection=function(t){return this.selection.hasKey(t)},e.prototype.hasDiagramItem=function(t){return t.source.type===s.MouseEventElementType.Shape||t.source.type===s.MouseEventElementType.Connector},e.prototype.onShapeExpandBtnMouseDown=function(t){this.handler.addDiagramItemToSelection(t),this.handler.switchState(new a.MouseHandlerToggleShapeExpandedState(this.handler,this.history,this.model,this.selection))},e.prototype.replaceSelection=function(t){this.handler.canMultipleSelection(t)?this.replaceMultipleSelection(t.source.key):this.handler.changeSingleSelection(t.source.key)},e.prototype.replaceMultipleSelection=function(t){this.selection.hasKey(t)?this.selection.remove(t):this.selection.add(t)},e.prototype.clearSelection=function(){this.selection.set([])},e.startLimit=p.UnitConverter.pixelsToTwips(1),e}(r.MouseHandlerStateBase);e.MouseHandlerDefaultStateBase=d},8502:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDefaultTouchState=void 0;var r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.updateConnectionsOnMouseMove=function(t){},e.prototype.canDragObjectOnMouseDown=function(t){return this.inSelection(t)},e.prototype.canExpandContainerOnMouseDown=function(t){return!0},e.prototype.canClearSelectionOnMouseDown=function(){return!0},e.prototype.canSelectOnMouseUp=function(t){return!this.inSelection(t)},e.prototype.canClearSelectionOnMouseUp=function(){return!1},e}(n(3250).MouseHandlerDefaultState);e.MouseHandlerDefaultTouchState=r},1717:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDragDiagramItemStateBase=e.DraggingConnector=void 0;var r=n(4867),s=n(6879),a=n(6031),c=n(8816),u=n(4742),h=function(t){this.connector=t,this.startPoints=t.points.map((function(t){return t.clone()})),this.startRenderContext=t.tryCreateRenderPointsContext()};e.DraggingConnector=h;var p=function(t){function e(e,n,o,i,r){var s=t.call(this,e,n)||this;return s.model=o,s.selection=i,s.visualizerManager=r,s.startScrollLeft=0,s.startScrollTop=0,s}return i(e,t),e.prototype.finish=function(){this.visualizerManager.resetExtensionLines(),this.visualizerManager.resetContainerTarget(),this.visualizerManager.resetConnectionTarget(),this.visualizerManager.resetConnectionPoints(),t.prototype.finish.call(this)},e.prototype.onMouseDown=function(e){this.handler.addDiagramItemToSelection(e),this.shouldClone=this.handler.canCopySelectedItems(e),this.startPoint=e.modelPoint,this.initDrag(),this.lockInitDrag=!1,t.prototype.onMouseDown.call(this,e)},e.prototype.onMouseMove=function(t){if(this.mouseMoveEvent=t,t.button!==a.MouseButton.Left)return this.cancelChanges(),void this.handler.switchToDefaultState();this.canApplyChangesOnMouseMove(this.startPoint,t.modelPoint)&&(this.handler.canCopySelectedItems(t)&&(this.lockInitDrag||(this.cancelChanges(),this.shouldClone=!0,this.copySelection(),this.initDrag(),this.lockInitDrag=!0)),this.onApplyChanges(t),this.onAfterApplyChanges(),this.updateContainers(t))},e.prototype.updateContainers=function(t){this.visualizerManager.setExtensionLines(this.selection.getSelectedShapes(!1,!0));var e=r.ModelUtils.findContainerByEventKey(this.model,this.selection,t.source.key);e&&this.allowInsertToContainer(t,e)?this.visualizerManager.setContainerTarget(e,t.source.type):this.visualizerManager.resetContainerTarget()},e.prototype.onMouseUp=function(e){t.prototype.onMouseUp.call(this,e),this.handler.canRemoveDiagramItemToSelection(e)&&this.handler.canMultipleSelection(e)&&this.handler.removeDiagramItemFromSelection(e.button,e.source.key)},e.prototype.onApplyChanges=function(t){var e=this;this.calculateFixedPosition(t),this.dragHelper.move(this.shouldClone,(function(n){return e.getSnappedPoint(t,n)}),(function(){e.visualizerManager.resetConnectionTarget(),e.visualizerManager.resetConnectionPoints()}),(function(t,n){e.visualizerManager.setConnectionTarget(t,a.MouseEventElementType.Shape),e.visualizerManager.setConnectionPoints(t,a.MouseEventElementType.Shape,n,!0)}));var n=r.ModelUtils.findContainerByEventKey(this.model,this.selection,t.source.key);n&&this.allowInsertToContainer(t,n)?r.ModelUtils.insertSelectionToContainer(this.history,this.model,this.selection,n):r.ModelUtils.removeSelectionFromContainer(this.history,this.model,this.selection),this.handler.tryUpdateModelSize((function(t,n){return e.dragHelper.onTryUpdateModelSize(t,n)}))},e.prototype.getDraggingElementKeys=function(){return this.dragHelper.draggingShapes.map((function(t){return t.shape.key})).concat(this.dragHelper.draggingConnectors.map((function(t){return t.connector.key})))},e.prototype.getSnappedPoint=function(t,e){return this.handler.getSnappedPointOnDragDiagramItem(t,e,this.fixedX,this.fixedY,this.startPoint)},e.prototype.initDrag=function(){this.dragHelper=new u.SelectionDragHelper(this.history,this.model,this.handler.permissionsProvider,this.startPoint,this.selection.getSelectedItems(!0)),this.initDraggingShapes(),this.areValidDraggingShapes?(this.initDraggingConnectors(),this.areValidDraggingConnectors||this.handler.switchToDefaultState()):this.handler.switchToDefaultState()},e.prototype.initDraggingShapes=function(){this.dragHelper.initDraggingShapes(this.selection.getSelectedShapes(!1,!0),this.shouldClone)},e.prototype.initDraggingConnectors=function(){this.dragHelper.initDraggingConnectors(this.selection.getSelectedConnectors(!1,!0),this.shouldClone)},e.prototype.copySelection=function(){var t=this;r.ModelUtils.cloneSelectionToOffset(this.history,this.model,(function(e){var n=t.model.findItem(e);n&&t.handler.addInteractingItem(n,s.DiagramModelOperation.AddShape)}),this.selection,0,0)},e.prototype.calculateFixedPosition=function(t){(this.fixedX=!1,this.fixedY=!1,this.handler.canCalculateFixedPosition(t))&&(Math.abs(this.startPoint.x-t.modelPoint.x)<Math.abs(this.startPoint.y-t.modelPoint.y)?this.fixedX=!0:this.fixedY=!0)},e.prototype.allowInsertToContainer=function(t,e){return!this.handler.canMultipleSelection(t)&&(e&&e.expanded&&r.ModelUtils.canInsertSelectionToContainer(this.model,this.selection,e))},e}(c.MouseHandlerDraggingState);e.MouseHandlerDragDiagramItemStateBase=p},4908:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDragParameterPointState=void 0;var r=n(8816),s=n(329),a=function(t){function e(e,n,o){var i=t.call(this,e,n)||this;return i.model=o,i.startScrollLeft=0,i.startScrollTop=0,i}return i(e,t),e.prototype.onMouseDown=function(e){this.startPoint=e.modelPoint,this.shape=this.model.findShape(e.source.key),this.parameterPointKey=e.source.value,this.startParameters=this.shape.parameters.clone(),t.prototype.onMouseDown.call(this,e)},e.prototype.onApplyChanges=function(t){var e=this.handler.getSnappedOffsetOnDragPoint(t,this.startPoint),n=this.startParameters.clone();this.shape.description.modifyParameters(this.shape,n,e.x,e.y),this.history.addAndRedo(new s.ChangeShapeParametersHistoryItem(this.shape.key,n))},e.prototype.getDraggingElementKeys=function(){return[this.shape.key]},e}(r.MouseHandlerDraggingState);e.MouseHandlerDragParameterPointState=a},8816:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerDraggingState=void 0;var r=n(5434),s=n(6031),a=n(9291),c=function(t){function e(e,n){var o=t.call(this,e)||this;return o.history=n,o}return i(e,t),e.prototype.canApplyChangesOnMouseMove=function(t,n){return!t||!n||Math.abs(t.x-n.x)>e.dragStartLimit||Math.abs(t.y-n.y)>e.dragStartLimit},e.prototype.onAfterApplyChanges=function(){this.modified||this.handler.raiseDragStart(this.getDraggingElementKeys()),this.modified=!0,this.mouseDownPoint=void 0},e.prototype.onMouseDown=function(t){this.mouseDownPoint=t.modelPoint.clone()},e.prototype.onMouseMove=function(t){this.mouseMoveEvent=t,t.button!==s.MouseButton.Left?(this.cancelChanges(),this.handler.switchToDefaultState()):t.button===s.MouseButton.Left&&this.canApplyChangesOnMouseMove(this.mouseDownPoint,t.modelPoint)&&(this.onApplyChanges(t),this.onAfterApplyChanges())},e.prototype.onKeyDown=function(t){!this.mouseMoveEvent||16!==t.keyCode&&17!==t.keyCode&&18!==t.keyCode||this.performMouseMoveEvent(t.modifiers)},e.prototype.onKeyUp=function(t){!this.mouseMoveEvent||16!==t.keyCode&&17!==t.keyCode&&18!==t.keyCode||this.performMouseMoveEvent(t.modifiers)},e.prototype.onMouseUp=function(t){this.mouseDownPoint=void 0,this.mouseMoveEvent=void 0,this.handler.switchToDefaultState()},e.prototype.performMouseMoveEvent=function(t){this.mouseMoveEvent.modifiers=t,this.onMouseMove(this.mouseMoveEvent)},e.prototype.start=function(){this.handler.beginStorePermissions(),this.history.beginTransaction()},e.prototype.finish=function(){this.checkStoredPermissionsOnFinish(),this.modified?(this.onFinishWithChanges(),this.modified=!1,this.history.endTransaction(),this.handler.raiseDragEnd(this.getDraggingElementKeys())):this.history.endTransaction(),this.handler.endStorePermissions(),this.handler.clearInteractingItems()},e.prototype.checkStoredPermissionsOnFinish=function(){this.handler.isStoredPermissionsGranted()||(this.cancelChanges(),this.modified=!1)},e.prototype.onFinishWithChanges=function(){},e.prototype.cancelChanges=function(){this.handler.lockPermissions(),this.history.undoTransaction(),this.handler.unlockPermissions(),this.modified&&this.handler.raiseDragEnd(this.getDraggingElementKeys()),this.modified=!1},e.prototype.getSnappedPoint=function(t,e){return this.handler.getSnappedPointOnDragPoint(t,e)},e.dragStartLimit=a.UnitConverter.pixelsToTwips(4),e}(r.MouseHandlerCancellableState);e.MouseHandlerDraggingState=c},5209:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorOrthogonalSideState=void 0;var r=n(8900),s=n(7959),a=n(3742),c=n(4867),u=n(8816),h=n(8675),p=function(t){function e(e,n,o){var i=t.call(this,e,n)||this;return i.model=o,i.canCreatePoints=!0,i}return i(e,t),e.prototype.saveSidePoints=function(t,e){var n=this,o=this.connector.getRenderPoints(!0);this.isHorizontal=o[t].y===o[e].y,this.iterateRenderPoints(o,t,!1,(function(t,e){-1!==t.pointIndex&&(n.leftPointIndex=t.pointIndex),n.leftRenderPointIndex=e}),(function(e){return!h.GeometryUtils.arePointsOfOrthogonalLine(o[t],e,n.isHorizontal)})),this.iterateRenderPoints(o,this.leftRenderPointIndex,!0,(function(t,e){-1!==t.pointIndex&&(n.rightPointIndex=t.pointIndex),n.rightRenderPointIndex=e}),(function(e){return!h.GeometryUtils.arePointsOfOrthogonalLine(o[t],e,n.isHorizontal)}))},e.prototype.iterateRenderPoints=function(t,e,n,o,i){for(var r=e;n?r<t.length:r>=0;n?r++:r--){var s=t[r];if(i&&i(s,r))break;o(s,r)}},e.prototype.onMouseDown=function(e){this.startPoint=e.modelPoint,this.connector=this.model.findConnector(e.source.key),this.handler.addInteractingItem(this.connector);var n=e.source.value.split(\"_\");this.saveSidePoints(parseInt(n[0]),parseInt(n[1])),t.prototype.onMouseDown.call(this,e)},e.prototype.shouldCreatePoint=function(t){if(!this.canCreatePoints)return!1;if(t&&(void 0===this.leftPointIndex||0===this.leftPointIndex))return!0;if(!t&&(void 0===this.rightPointIndex||this.rightPointIndex===this.connector.points.length-1))return!0;var e=this.connector.getRenderPoints(!0);return!(!t||this.connector.points[this.leftPointIndex].equals(e[this.leftRenderPointIndex]))||!t&&!this.connector.points[this.rightPointIndex].equals(e[this.rightRenderPointIndex])},e.prototype.onApplyChanges=function(t){var e=this;if(this.shouldCreatePoint(!0)||this.shouldCreatePoint(!1)){var n=this.connector.getRenderPoints(!0),o=n[this.leftRenderPointIndex],i=n[this.rightRenderPointIndex];if(this.shouldCreatePoint(!0)){var s=new r.Point(o.x,o.y);0===this.leftPointIndex?(this.leftPointIndex=1,this.correctEdgePoint(s,i,this.connector.beginItem,this.connector.beginConnectionPointIndex)):void 0===this.leftPointIndex&&this.iterateRenderPoints(n,this.leftRenderPointIndex,!0,(function(t){-1!==t.pointIndex&&(e.leftPointIndex=t.pointIndex)}),(function(){return void 0!==e.leftPointIndex})),c.ModelUtils.addConnectorPoint(this.history,this.connector.key,this.leftPointIndex,s),void 0!==this.rightPointIndex&&this.rightPointIndex++}if(this.shouldCreatePoint(!1)){n=this.connector.getRenderPoints(!0);var a=new r.Point(i.x,i.y);this.rightPointIndex===this.connector.points.length-1?(this.correctEdgePoint(a,o,this.connector.endItem,this.connector.endConnectionPointIndex),this.rightPointIndex--):void 0===this.rightPointIndex&&this.iterateRenderPoints(n,this.rightRenderPointIndex,!1,(function(t){-1!==t.pointIndex&&(e.rightPointIndex=t.pointIndex)}),(function(){return e.rightPointIndex===e.leftPointIndex})),this.rightPointIndex++,c.ModelUtils.addConnectorPoint(this.history,this.connector.key,this.rightPointIndex,a)}}this.canCreatePoints=!1;var u=this.getSnappedPoint(t,t.modelPoint);c.ModelUtils.moveConnectorRightAnglePoints(this.history,this.connector,this.leftPointIndex,this.rightPointIndex,this.isHorizontal?void 0:u.x,this.isHorizontal?u.y:void 0),this.handler.tryUpdateModelSize()},e.prototype.onFinishWithChanges=function(){c.ModelUtils.deleteConnectorUnnecessaryPoints(this.history,this.connector),c.ModelUtils.fixConnectorBeginEndConnectionIndex(this.history,this.connector),this.handler.tryUpdateModelSize()},e.prototype.correctEdgePoint=function(t,e,n,o){var i=0;if(n){var r=n.getConnectionPointSideByIndex(o),c=n.rectangle;switch(i=s.Connector.minOffset,r){case a.ConnectionPointSide.South:i+=c.bottom-t.y;break;case a.ConnectionPointSide.North:i+=t.y-c.y;break;case a.ConnectionPointSide.East:i+=c.right-t.x;break;case a.ConnectionPointSide.West:i+=t.x-c.x}}this.isHorizontal?t.x>e.x?t.x-=Math.min(i,t.x-e.x):t.x+=Math.min(i,e.x-t.x):t.y>e.y?t.y-=Math.min(i,t.y-e.y):t.y+=Math.min(i,e.y-t.y)},e.prototype.getDraggingElementKeys=function(){return[this.connector.key]},e}(u.MouseHandlerDraggingState);e.MouseHandlerMoveConnectorOrthogonalSideState=p},4402:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorPointState=void 0;var r=n(8900),s=n(7060),a=n(7959),c=n(4867),u=n(4612),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.onMouseDown=function(e){this.connector=this.model.findConnector(e.source.key),this.pointIndex=parseInt(e.source.value),0===this.pointIndex?this.pointPosition=a.ConnectorPosition.Begin:this.pointIndex===this.connector.points.length-1&&(this.pointPosition=a.ConnectorPosition.End),this.handler.addInteractingItem(this.connector),t.prototype.onMouseDown.call(this,e)},e.prototype.onApplyChanges=function(e){this.connector.properties.lineOption===u.ConnectorLineOption.Orthogonal&&0!==this.pointIndex&&this.pointIndex!==this.connector.points.length-1||t.prototype.onApplyChanges.call(this,e)},e.prototype.onFinishWithChanges=function(){t.prototype.onFinishWithChanges.call(this),c.ModelUtils.deleteConnectorUnnecessaryPoints(this.history,this.connector),this.handler.tryUpdateModelSize()},e.prototype.getSnappedPoint=function(t,e){var n=this.connector.points,o=this.pointIndex;if(0<o&&o<n.length-1){var i=(n[o+1].y-n[o-1].y)/(n[o+1].x-n[o-1].x),s=e.x,a=n[o+1].y-(n[o+1].x-s)*i;return this.handler.getSnappedPointOnDragPoint(t,e,new r.Point(s,a))}return this.handler.getSnappedPointOnDragPoint(t,e)},e}(s.MouseHandlerMoveConnectorPointStateBase);e.MouseHandlerMoveConnectorPointState=h},7060:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorPointStateBase=void 0;var r=n(7959),s=n(6031),a=n(8816),c=n(8930),u=n(3477),h=n(4867),p=function(t){function e(e,n,o,i){var r=t.call(this,e,n)||this;return r.model=o,r.visualizerManager=i,r}return i(e,t),e.prototype.finish=function(){this.visualizerManager.resetConnectionTarget(),this.visualizerManager.resetConnectionPoints(),t.prototype.finish.call(this)},e.prototype.onMouseDown=function(e){t.prototype.onMouseDown.call(this,e),this.connector&&this.handler.addInteractingItem(this.connector)},e.prototype.onMouseMove=function(e){if(t.prototype.onMouseMove.call(this,e),this.allowAttachToObjects(e,!1,!1)){if(this.connector){var n=this.connector.getExtremeItem(this.pointPosition);this.visualizerManager.setConnectionTarget(n,e.source.type);var o=this.connector.getExtremeConnectionPointIndex(this.pointPosition);(n||-1===this.oppositeConnectionPointIndex)&&this.allowAttachToObjects(e,!0,!1)||(n=this.model.findItem(e.source.key)),this.visualizerManager.setConnectionPoints(n,e.source.type,o,!0)}}else this.visualizerManager.resetConnectionTarget(),this.visualizerManager.resetConnectionPoints()},e.prototype.onApplyChanges=function(t){var e=this.getSnappedPoint(t,t.modelPoint);if(void 0!==this.pointPosition){void 0===this.oppositePointPosition&&(this.oppositePointPosition=this.getOppositePointPosition(),this.oppositeItem=this.connector.getExtremeItem(this.oppositePointPosition),this.oppositeConnectionPointIndex=this.connector.getExtremeConnectionPointIndex(this.oppositePointPosition)),this.targetItem=this.model.findItem(t.source.key);var n=this.allowAttachToObjects(t,!0,!0)?this.targetItem:void 0,o=-1;t.source.type===s.MouseEventElementType.ShapeConnectionPoint&&(o=parseInt(t.source.value)),!n||t.source.type!==s.MouseEventElementType.Shape&&t.source.type!==s.MouseEventElementType.ShapeConnectionPoint||this.connector.getExtremeItem(this.oppositePointPosition)===n&&(-1===o||-1===this.oppositeConnectionPointIndex||o===this.oppositeConnectionPointIndex)?this.connector.getExtremeItem(this.pointPosition)&&(this.history.addAndRedo(new c.DeleteConnectionHistoryItem(this.connector,this.pointPosition)),this.oppositeItem&&this.updateOppositeItemConnectionPointIndex(this.oppositeConnectionPointIndex)):(this.connector.getExtremeItem(this.pointPosition)===n&&this.connector.getExtremeConnectionPointIndex(this.pointPosition)===o||(this.connector.getExtremeItem(this.pointPosition)&&this.history.addAndRedo(new c.DeleteConnectionHistoryItem(this.connector,this.pointPosition)),this.history.addAndRedo(new u.AddConnectionHistoryItem(this.connector,n,o,this.pointPosition)),this.oppositeItem&&this.updateOppositeItemConnectionPointIndex(o)),e=n.getConnectionPointPosition(o,this.connector.points[this.pointIndex+(this.pointPosition===r.ConnectorPosition.End?-1:1)]),this.visualizerManager.setConnectionPointIndex(o))}h.ModelUtils.moveConnectorPoint(this.history,this.connector,this.pointIndex,e),h.ModelUtils.updateConnectorAttachedPoints(this.history,this.model,this.connector),this.handler.tryUpdateModelSize()},e.prototype.updateOppositeItemConnectionPointIndex=function(t){var e=-1===t?-1:this.oppositeConnectionPointIndex;e!==this.connector.getExtremeConnectionPointIndex(this.oppositePointPosition)&&(this.history.addAndRedo(new c.DeleteConnectionHistoryItem(this.connector,this.oppositePointPosition)),this.history.addAndRedo(new u.AddConnectionHistoryItem(this.connector,this.oppositeItem,e,this.oppositePointPosition)))},e.prototype.onFinishWithChanges=function(){h.ModelUtils.updateConnectorContainer(this.history,this.model,this.connector),h.ModelUtils.deleteConnectorUnnecessaryPoints(this.history,this.connector),this.handler.tryUpdateModelSize()},e.prototype.getDraggingElementKeys=function(){return this.connector?[this.connector.key]:[]},e.prototype.getOppositePointPosition=function(){return this.pointPosition===r.ConnectorPosition.Begin?r.ConnectorPosition.End:r.ConnectorPosition.Begin},e.prototype.allowAttachToObjects=function(t,e,n){if(this.handler.canMultipleSelection(t))return!1;var o=this.connector;if(o&&t.source.type===s.MouseEventElementType.Shape){var i=this.model.findItem(t.source.key);if(e&&this.model.findItemContainerCore(o,(function(t){return t===i})))return!1;if(e&&this.oppositeItem&&this.model.findItemContainerCore(this.oppositeItem,(function(t){return t===i})))return!1;if(n&&this.oppositeItem===i&&-1===this.oppositeConnectionPointIndex)return!1}return!0},e.prototype.onConnectionPointsShow=function(t,e){var n=this;if(this.connector&&void 0!==this.pointPosition&&(this.connector.endItem&&this.connector.endItem.key===t||this.connector.beginItem&&this.connector.beginItem.key===t)){var o=this.connector.beginItem&&this.connector.beginItem.key===t?r.ConnectorPosition.Begin:r.ConnectorPosition.End;e.forEach((function(t,e){t.allowed=n.handler.canPerformChangeConnectionOnUpdateUI(n.connector,{item:n.connector.getExtremeItem(o),position:o,connectionPointIndex:e})}))}},e.prototype.onConnectionTargetShow=function(t,e){if(this.connector&&void 0!==this.pointPosition&&(this.connector.endItem&&this.connector.endItem.key===t||this.connector.beginItem&&this.connector.beginItem.key===t)){var n=this.connector.beginItem&&this.connector.beginItem.key===t?r.ConnectorPosition.Begin:r.ConnectorPosition.End;e.allowed=this.handler.canPerformChangeConnectionOnUpdateUI(this.connector,{item:this.connector.getExtremeItem(n),position:n,connectionPointIndex:-1})}},e}(a.MouseHandlerDraggingState);e.MouseHandlerMoveConnectorPointStateBase=p},481:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorSideState=void 0;var r=n(8816),s=n(4867),a=function(t){function e(e,n,o){var i=t.call(this,e,n)||this;return i.model=o,i}return i(e,t),e.prototype.onMouseDown=function(e){this.startPoint=e.modelPoint,this.connectorKey=e.source.key,this.pointIndex=parseInt(e.source.value)+1,t.prototype.onMouseDown.call(this,e)},e.prototype.onApplyChanges=function(t){var e=this.getSnappedPoint(t,t.modelPoint),n=this.model.findConnector(this.connectorKey);this.pointCreated?s.ModelUtils.moveConnectorPoint(this.history,n,this.pointIndex,e):(this.handler.addInteractingItem(n),s.ModelUtils.addConnectorPoint(this.history,this.connectorKey,this.pointIndex,e.clone()),this.pointCreated=!0),this.handler.tryUpdateModelSize()},e.prototype.onFinishWithChanges=function(){var t=this.model.findConnector(this.connectorKey);s.ModelUtils.deleteConnectorUnnecessaryPoints(this.history,t),s.ModelUtils.fixConnectorBeginEndConnectionIndex(this.history,t),this.handler.tryUpdateModelSize()},e.prototype.getDraggingElementKeys=function(){return[this.connectorKey]},e}(r.MouseHandlerDraggingState);e.MouseHandlerMoveConnectorSideState=a},5168:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorState=void 0;var r=n(4867),s=function(t){function e(e,n,o,i,r){var s=t.call(this,e,n,o,i,r)||this;return s.model=o,s.selection=i,s.visualizerManager=r,s}return i(e,t),Object.defineProperty(e.prototype,\"areValidDraggingShapes\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"areValidDraggingConnectors\",{get:function(){var t=this;return this.shouldClone?this.dragHelper.draggingShapes.length>0||this.dragHelper.draggingConnectors.length>0:!!this.dragHelper.draggingConnectors.length&&(this.dragHelper.draggingShapes.length?r.ModelUtils.canMoveConnector(this.dragHelper.selectedItems,this.dragHelper.draggingConnectors[this.dragHelper.draggingConnectorsIndexByKey[this.handler.mouseDownEvent.source.key]].connector):!this.dragHelper.draggingConnectors.some((function(e){return!r.ModelUtils.canMoveConnector(t.dragHelper.selectedItems,e.connector)})))},enumerable:!1,configurable:!0}),e}(n(1717).MouseHandlerDragDiagramItemStateBase);e.MouseHandlerMoveConnectorState=s},5391:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveConnectorTextState=void 0;var r=n(8816),s=n(45),a=n(5144),c=function(t){function e(e,n,o){var i=t.call(this,e,n)||this;return i.model=o,i}return i(e,t),e.prototype.onMouseDown=function(e){this.connector=this.model.findConnector(e.source.key),this.position=parseFloat(e.source.value),this.text=this.connector.getText(this.position),this.savedText=\"\",t.prototype.onMouseDown.call(this,e)},e.prototype.onApplyChanges=function(t){var e=this.connector.getTextPositionByPoint(t.modelPoint);if(e!==this.position){var n=this.connector.getText(e);\"\"!==n&&n!==this.text&&(this.history.addAndRedo(new a.ChangeConnectorTextHistoryItem(this.connector,e,\"\")),this.savedText=n),this.history.addAndRedo(new s.ChangeConnectorTextPositionHistoryItem(this.connector,this.position,e)),\"\"!==this.savedText&&this.savedText!==n&&(this.history.addAndRedo(new a.ChangeConnectorTextHistoryItem(this.connector,this.position,this.savedText)),this.savedText=\"\"),this.position=e}},e.prototype.getDraggingElementKeys=function(){return[this.connector.key]},e}(r.MouseHandlerDraggingState);e.MouseHandlerMoveConnectorTextState=c},9979:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerMoveShapeState=void 0;var r=function(t){function e(e,n,o,i,r){var s=t.call(this,e,n,o,i,r)||this;return s.model=o,s.selection=i,s.visualizerManager=r,s}return i(e,t),Object.defineProperty(e.prototype,\"areValidDraggingShapes\",{get:function(){return this.shouldClone||this.dragHelper.draggingShapes.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"areValidDraggingConnectors\",{get:function(){return!0},enumerable:!1,configurable:!0}),e}(n(1717).MouseHandlerDragDiagramItemStateBase);e.MouseHandlerMoveShapeState=r},5609:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerResizeShapeState=void 0;var r=n(6353),s=n(8900),a=n(6031),c=n(8816),u=n(4867),h=n(6794),p=n(6879),l=function(t){function e(e,n,o,i,r,s){var a=t.call(this,e,n)||this;return a.model=o,a.selection=i,a.visualizerManager=r,a.settings=s,a.startScrollLeft=0,a.startScrollTop=0,a.rotation=0,a}return i(e,t),e.prototype.finish=function(){this.visualizerManager.resetResizeInfo(),this.visualizerManager.resetExtensionLines(),t.prototype.finish.call(this)},e.prototype.onMouseDown=function(e){var n=this,o=parseInt(e.source.value);this.resizeEventSource=o,this.startPoint=e.modelPoint,this.lockH=o===a.ResizeEventSource.ResizeBox_S||o===a.ResizeEventSource.ResizeBox_N,this.lockV=o===a.ResizeEventSource.ResizeBox_E||o===a.ResizeEventSource.ResizeBox_W,this.sideH=o===a.ResizeEventSource.ResizeBox_E||o===a.ResizeEventSource.ResizeBox_NE||o===a.ResizeEventSource.ResizeBox_SE,this.sideV=o===a.ResizeEventSource.ResizeBox_SE||o===a.ResizeEventSource.ResizeBox_S||o===a.ResizeEventSource.ResizeBox_SW,this.shapes=this.selection.getSelectedShapes(),0!==this.shapes.length?(this.shapes.forEach((function(t){n.handler.addInteractingItem(t,p.DiagramModelOperation.ResizeShape),n.handler.addInteractingItem(t,p.DiagramModelOperation.MoveShape)})),this.connectors=this.selection.getSelectedConnectors(),this.startRectangle=u.ModelUtils.createRectangle(this.shapes),this.startShapeSizes=this.shapes.map((function(t){return t.size.clone()})),this.startShapePositions=this.shapes.map((function(t){return t.position.clone()})),this.startConnectorPoints=this.connectors.map((function(t){return t.points.map((function(t){return t.clone()}))})),t.prototype.onMouseDown.call(this,e)):this.handler.switchToDefaultState()},e.prototype.onMouseMove=function(e){t.prototype.onMouseMove.call(this,e);var n=this.selection.getSelectedShapes();this.visualizerManager.setExtensionLines(n)},e.prototype.onApplyChanges=function(t){var e=this,n=u.ModelUtils.createRectangle(this.shapes),o=1===this.shapes.length?this.shapes[0].getMinWidth(this.settings.shapeMinWidth):h.ShapeMinDimension,i=1===this.shapes.length?this.shapes[0].getMinHeight(this.settings.shapeMinHeight):h.ShapeMinDimension,a=1===this.shapes.length?this.shapes[0].getMaxWidth(this.settings.shapeMaxWidth):void 0,c=1===this.shapes.length?this.shapes[0].getMaxHeight(this.settings.shapeMaxHeight):void 0,p=this.getSize(t,n.createPosition(),this.startRectangle.createSize(),o,i,a,c,this.handler.lockAspectRatioOnShapeResize(t)),l=this.getPosition(t,p,this.startRectangle.createSize(),this.startRectangle.createPosition()),d=p.width/this.startRectangle.width,f=p.height/this.startRectangle.height;this.shapes.forEach((function(t,n){var o=e.startShapeSizes[n].width*(t.allowResizeHorizontally?d:1);o=e.getNormalizedSize(o,t.getMinWidth(e.settings.shapeMinWidth),t.getMaxWidth(e.settings.shapeMaxWidth));var i=e.startShapeSizes[n].height*(t.allowResizeVertically?f:1);i=e.getNormalizedSize(i,t.getMinHeight(e.settings.shapeMinHeight),t.getMaxHeight(e.settings.shapeMaxHeight));var a=t.allowResizeHorizontally?l.x+(e.startShapePositions[n].x-e.startRectangle.x)*d:e.startShapePositions[n].x,c=t.allowResizeVertically?l.y+(e.startShapePositions[n].y-e.startRectangle.y)*f:e.startShapePositions[n].y;u.ModelUtils.setShapeSize(e.history,e.model,t,new s.Point(a,c),new r.Size(o,i))})),this.connectors.forEach((function(t,n){for(var o=t.beginItem?1:0,i=t.endItem?t.points.length-2:t.points.length-1,r=o;r<=i;r++){var a=new s.Point(l.x+(e.startConnectorPoints[n][r].x-e.startRectangle.x)*d,l.y+(e.startConnectorPoints[n][r].y-e.startRectangle.y)*f);u.ModelUtils.moveConnectorPoint(e.history,t,r,a)}})),this.selection.getSelectedShapes(!1,!0).forEach((function(t){u.ModelUtils.updateShapeAttachedConnectors(e.history,e.model,t)})),this.tryUpdateModelSize(),this.visualizerManager.setResizeInfo(this.shapes)},e.prototype.tryUpdateModelSize=function(){var t=this;this.handler.tryUpdateModelSize((function(e,n){t.startShapePositions.forEach((function(t){t.x+=e,t.y+=n})),t.startConnectorPoints.forEach((function(t){t.forEach((function(t){t.x+=e,t.y+=n}))})),t.startRectangle.x+=e,t.startRectangle.y+=n,t.startPoint.x+=e,t.startPoint.y+=n}))},e.prototype.getDraggingElementKeys=function(){return this.shapes.map((function(t){return t.key}))},e.prototype.getNormalizedSize=function(t,e,n){return void 0!==e&&(t=Math.max(t,e)),void 0!==n&&(t=Math.min(t,n)),t},e.prototype.getSize=function(t,e,n,o,i,s,a,c){var u,h,p=t.modelPoint.x-(this.startScrollLeft-t.scrollX)-this.startPoint.x,l=t.modelPoint.y-(this.startScrollTop-t.scrollY)-this.startPoint.y,d=p*Math.cos(this.rotation)- -l*Math.sin(this.rotation),f=-(p*Math.sin(this.rotation)+-l*Math.cos(this.rotation));return f=!this.sideV&&f>0?Math.min(n.height+1,f):f,d=!this.sideH&&d>0?Math.min(n.width+1,d):d,this.lockH||this.lockV||!c?(d=this.lockH?0:d,f=this.lockV?0:f,u=this.getNormalizedSize(this.sideH?n.width+d:n.width-d,o,s),h=this.getNormalizedSize(this.sideV?n.height+f:n.height-f,i,a)):Math.abs(d)>Math.abs(f)?(u=this.getNormalizedSize(this.sideH?n.width+d:n.width-d,o,s),h=n.height*(u/n.width)):(h=this.getNormalizedSize(this.sideV?n.height+f:n.height-f,i,a),u=n.width*(h/n.height)),this.lockH||(u=this.getSnappedPosition(t,e.x+u,!0)-e.x),this.lockV||(h=this.getSnappedPosition(t,e.y+h,!1)-e.y),new r.Size(u,h)},e.prototype.getPosition=function(t,e,n,o){var i=o.x,r=o.y;if(this.resizeEventSource===a.ResizeEventSource.ResizeBox_N||this.resizeEventSource===a.ResizeEventSource.ResizeBox_NE||this.resizeEventSource===a.ResizeEventSource.ResizeBox_NW){r+=n.height-e.height;var c=this.getSnappedPosition(t,r,!1);e.height+=r-c,r=c}if(this.resizeEventSource===a.ResizeEventSource.ResizeBox_W||this.resizeEventSource===a.ResizeEventSource.ResizeBox_NW||this.resizeEventSource===a.ResizeEventSource.ResizeBox_SW){i+=n.width-e.width;var u=this.getSnappedPosition(t,i,!0);e.width+=i-u,i=u}return new s.Point(i,r)},e.prototype.getSnappedPosition=function(t,e,n){return this.handler.getSnappedPositionOnResizeShape(t,e,n)},e}(c.MouseHandlerDraggingState);e.MouseHandlerResizeShapeState=l},9582:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerScrollingState=void 0;var r=n(5434),s=n(6031),a=n(8900),c=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.view=n,i.selection=o,i.lastOffset=new a.Point(0,0),i}return i(e,t),e.prototype.onKeyUp=function(t){this.handler.onFinishScrollPageByKeyboard(t)},e.prototype.onMouseDown=function(t){t.preventDefault=!0,this.startPoint=this.getPointByEvent(t)},e.prototype.onMouseMove=function(t){if(t.button===s.MouseButton.Left){var e=this.currentPoint||this.startPoint;t.preventDefault=!0;var n=this.getPointByEvent(t),o=this.view.scrollBy(new a.Point(n.x-e.x,n.y-e.y));this.lastOffset=this.lastOffset.clone().offset(o.x,o.y),this.currentPoint=n}else this.handler.onFinishScrollPageByMouse(t)},e.prototype.onMouseUp=function(t){t.button===s.MouseButton.Left&&this.handler.onFinishScrollPageByMouse(t),this.handler.switchToDefaultState()},e.prototype.cancelChanges=function(){this.currentPoint&&this.view.scrollBy(this.lastOffset.clone().multiply(-1,-1))},e.prototype.finish=function(){this.currentPoint&&this.startPoint&&!this.currentPoint.equals(this.startPoint)||this.selection.set([]),t.prototype.finish.call(this)},e.prototype.getPointByEvent=function(t){return t.offsetPoint},e}(r.MouseHandlerCancellableState);e.MouseHandlerScrollingState=c},4869:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerSelectionState=void 0;var r=n(6031),s=n(8011),a=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.selection=n,i.visualizerManager=o,i}return i(e,t),e.prototype.finish=function(){this.handler.raiseDragEnd([]),this.visualizerManager.resetSelectionRectangle(),t.prototype.finish.call(this)},e.prototype.cancelChanges=function(){},e.prototype.onMouseDown=function(t){this.startPoint=t.modelPoint,this.handler.raiseDragStart([])},e.prototype.onMouseMove=function(t){t.button!==r.MouseButton.Left?this.handler.switchToDefaultState():(this.rectangle=s.Rectangle.fromPoints(this.startPoint,t.modelPoint),this.visualizerManager.setSelectionRectangle(this.rectangle))},e.prototype.onMouseUp=function(t){void 0!==this.rectangle?this.selection.selectRect(this.rectangle):this.selection.set([]),this.rectangle=void 0,this.handler.switchToDefaultState()},e}(n(5434).MouseHandlerCancellableState);e.MouseHandlerSelectionState=a},5434:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerCancellableState=e.MouseHandlerStateBase=void 0;var r=n(2153),s=function(){function t(t){this.handler=t}return t.prototype.start=function(){},t.prototype.finish=function(){},t.prototype.onMouseClick=function(t){},t.prototype.onMouseDblClick=function(t){this.handler.switchToDefaultState()},t.prototype.onMouseDown=function(t){},t.prototype.onMouseUp=function(t){},t.prototype.onMouseMove=function(t){},t.prototype.onMouseWheel=function(t){return!1},t.prototype.onDragStart=function(t){},t.prototype.onDragEnd=function(t){},t.prototype.onShortcut=function(t){return!1},t.prototype.onKeyDown=function(t){},t.prototype.onKeyUp=function(t){},t.prototype.onConnectionPointsShow=function(t,e){},t.prototype.onConnectionTargetShow=function(t,e){},t}();e.MouseHandlerStateBase=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.onShortcut=function(t){return t===r.KeyCode.Esc&&(this.cancelChanges(),this.handler.switchToDefaultState(),!0)},e}(s);e.MouseHandlerCancellableState=a},5752:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerToggleShapeExpandedState=void 0;var r=n(5434),s=n(442),a=n(4867),c=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.history=n,r.model=o,r.selection=i,r}return i(e,t),e.prototype.onMouseUp=function(t){var e=this.model.findShape(t.source.key);e&&!e.isLocked&&(this.history.beginTransaction(),this.history.addAndRedo(new s.ToggleShapeExpandedHistoryItem(e)),a.ModelUtils.updateShapeAttachedConnectors(this.history,this.model,e),a.ModelUtils.updateContainerConnectorsAttachedPoints(this.history,this.model,e),a.ModelUtils.updateSelection(this.history,this.selection),this.handler.tryUpdateModelSize(),this.history.endTransaction(),this.handler.raiseClick([e.key])),this.handler.switchToDefaultState()},e}(r.MouseHandlerStateBase);e.MouseHandlerToggleShapeExpandedState=c},6918:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerToolboxDraggingState=e.MouseHandlerBeforeToolboxDraggingState=void 0;var r=n(6031),s=n(8900),a=n(4145),c=n(4297),u=n(8816),h=n(1704),p=n(4867),l=n(5434),d=n(6879),f=function(t){function e(e,n,o,i,r,s){var a=t.call(this,e)||this;return a.history=n,a.model=o,a.selection=i,a.visualizerManager=r,a.shapeDescriptionManager=s,a.isModelEmpty=0===o.items.length,a}return i(e,t),e.prototype.cancelChanges=function(){this.tryRemoveTimer()},e.prototype.onDragStart=function(t){this.dragging=t},e.prototype.onDragEnd=function(t){this.cancelChanges(),this.handler.switchToDefaultState()},e.prototype.onMouseMove=function(t){var e=this;t.source.type>r.MouseEventElementType.Background?(this.tryRemoveTimer(),this.switchToDraggingState(t,!1)):t.source.type!==r.MouseEventElementType.Background||this.isModelEmpty?void 0!==this.nonPageAreaTimer&&this.tryRemoveTimer():(this.savedEvt=t,void 0===this.nonPageAreaTimer&&(this.nonPageAreaTimer=setTimeout((function(){return e.switchToDraggingState(e.savedEvt,!0)}),500)))},e.prototype.switchToDraggingState=function(t,e){this.handler.switchState(new y(this.handler,this.history,this.model,this.selection,this.visualizerManager,this.shapeDescriptionManager,e)),this.handler.state.onDragStart(this.dragging),this.handler.state.onMouseMove(t)},e.prototype.tryRemoveTimer=function(){void 0!==this.nonPageAreaTimer&&(clearTimeout(this.nonPageAreaTimer),delete this.nonPageAreaTimer)},e.prototype.finish=function(){this.tryRemoveTimer()},e}(l.MouseHandlerCancellableState);e.MouseHandlerBeforeToolboxDraggingState=f;var y=function(t){function e(e,n,o,i,r,s,a){var c=t.call(this,e,n)||this;return c.model=o,c.selection=i,c.visualizerManager=r,c.shapeDescriptionManager=s,a||(c.updatePageSizeTimer=setTimeout((function(){c.processAndRemoveUpdatePageSizeTimer()}),300)),c}return i(e,t),e.prototype.cancelChanges=function(){this.tryRemoveUpdatePageSizeTimer(),t.prototype.cancelChanges.call(this)},e.prototype.tryRemoveUpdatePageSizeTimer=function(){void 0!==this.updatePageSizeTimer&&(clearTimeout(this.updatePageSizeTimer),delete this.updatePageSizeTimer)},e.prototype.processAndRemoveUpdatePageSizeTimer=function(){void 0!==this.updatePageSizeTimer&&(this.handler.tryUpdateModelSize(),delete this.updatePageSizeTimer)},e.prototype.onMouseMove=function(e){t.prototype.onMouseMove.call(this,e);var n=this.model.findShape(this.shapeKey);if(n){this.visualizerManager.setExtensionLines([n]);var o=p.ModelUtils.findContainerByEventKey(this.model,this.selection,e.source.key);o&&this.allowInsertToContainer(e,n,o)?this.visualizerManager.setContainerTarget(o,e.source.type):this.visualizerManager.resetContainerTarget()}},e.prototype.getDraggingElementKeys=function(){return void 0===this.shapeKey?[]:[this.shapeKey]},e.prototype.onApplyChanges=function(t){var e=this;if(t.source.type===r.MouseEventElementType.Undefined){if(this.dragging.onCaptured(!1),void 0!==this.shapeKey&&!this.deleteHistoryItem){var n=this.model.findShape(this.shapeKey);p.ModelUtils.detachConnectors(this.history,n),p.ModelUtils.removeFromContainer(this.history,this.model,n),this.deleteHistoryItem=new h.DeleteShapeHistoryItem(this.shapeKey,!0),this.history.addAndRedo(this.deleteHistoryItem)}}else{if(this.dragging.onCaptured(!0),void 0===this.shapeKey){this.startPoint=t.modelPoint,this.shapeKey=this.insertToolboxItem(t);var o=this.model.findShape(this.shapeKey);o&&this.handler.addInteractingItem(o,d.DiagramModelOperation.AddShape)}this.deleteHistoryItem&&(this.history.undoTransactionTo(this.deleteHistoryItem),delete this.deleteHistoryItem);var i=this.getPosition(t,this.startShapePosition);n=this.model.findShape(this.shapeKey);p.ModelUtils.setShapePosition(this.history,this.model,n,i),p.ModelUtils.updateMovingShapeConnections(this.history,n,this.connectorsWithoutBeginItemInfo,this.connectorsWithoutEndItemInfo,(function(){e.visualizerManager.resetConnectionTarget(),e.visualizerManager.resetConnectionPoints()}),(function(t,n){e.visualizerManager.setConnectionTarget(t,r.MouseEventElementType.Shape),e.visualizerManager.setConnectionPoints(t,r.MouseEventElementType.Shape,n,!0)}),(function(t){return e.handler.addInteractingItem(t)})),p.ModelUtils.updateShapeAttachedConnectors(this.history,this.model,n);var s=p.ModelUtils.findContainerByEventKey(this.model,this.selection,t.source.key);n&&s&&this.allowInsertToContainer(t,n,s)?p.ModelUtils.insertToContainer(this.history,this.model,n,s):p.ModelUtils.removeFromContainer(this.history,this.model,n),void 0===this.updatePageSizeTimer&&this.handler.tryUpdateModelSize((function(t,n){e.connectorsWithoutBeginItemInfo.forEach((function(e){e.point.x+=t,e.point.y+=n})),e.connectorsWithoutEndItemInfo.forEach((function(e){e.point.x+=t,e.point.y+=n}))}))}},e.prototype.onFinishWithChanges=function(){this.deleteHistoryItem||this.history.addAndRedo(new c.SetSelectionHistoryItem(this.selection,[this.shapeKey]))},e.prototype.onDragStart=function(t){this.dragging=t,this.connectorsWithoutBeginItemInfo=p.ModelUtils.getConnectorsWithoutBeginItemInfo(this.model),this.connectorsWithoutEndItemInfo=p.ModelUtils.getConnectorsWithoutEndItemInfo(this.model)},e.prototype.onDragEnd=function(t){void 0!==this.shapeKey&&t.source.type===r.MouseEventElementType.Undefined&&this.cancelChanges(),this.handler.switchToDefaultState()},e.prototype.finish=function(){this.visualizerManager.resetExtensionLines(),this.visualizerManager.resetContainerTarget(),this.visualizerManager.resetConnectionTarget(),this.visualizerManager.resetConnectionPoints(),this.processAndRemoveUpdatePageSizeTimer(),this.dragging.onFinishDragging(),t.prototype.finish.call(this)},e.prototype.insertToolboxItem=function(t){var e=this.shapeDescriptionManager.get(this.dragging.data);this.startShapePosition=this.getSnappedPoint(t,new s.Point(t.modelPoint.x-e.defaultSize.width/2,t.modelPoint.y-e.defaultSize.height/2));var n=new a.AddShapeHistoryItem(e,this.startShapePosition);return this.history.addAndRedo(n),p.ModelUtils.updateNewShapeProperties(this.history,this.selection,n.shapeKey),n.shapeKey},e.prototype.allowInsertToContainer=function(t,e,n){return!this.handler.canMultipleSelection(t)&&(n&&n.expanded&&p.ModelUtils.canInsertToContainer(this.model,e,n))},e.prototype.getPosition=function(t,e){return this.getSnappedPoint(t,new s.Point(e.x+t.modelPoint.x-this.startPoint.x,e.y+t.modelPoint.y-this.startPoint.y))},e}(u.MouseHandlerDraggingState);e.MouseHandlerToolboxDraggingState=y},8461:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerZoomOnPinchState=void 0;var r=n(240),s=n(8900),a=n(9582),c=n(5596),u=function(t){function e(e,n,o,i){var r=t.call(this,e,i,n)||this;return r.selection=n,r.settings=o,r.view=i,r}return i(e,t),e.prototype.onMouseDown=function(e){t.prototype.onMouseDown.call(this,e),e.touches.length>1&&(this.startDistance=this.getTouchDistance(e),this.startZoomLevel=this.settings.zoomLevel,this.prevDistance=this.startDistance)},e.prototype.onMouseMove=function(e){if(e.touches.length>1){var n=this.getTouchDistance(e);Math.abs(this.prevDistance-n)>1&&(this.settings.zoomLevel=this.startZoomLevel*(n/this.startDistance),this.view.scrollTo(this.getMiddleLayoutPoint(e),this.getMiddleAbsPoint(e)),this.view.normalize(),this.prevDistance=n)}t.prototype.onMouseMove.call(this,e)},e.prototype.onMouseUp=function(t){0===t.touches.length&&setTimeout(function(){this.handler.switchToDefaultState()}.bind(this),1)},e.prototype.start=function(){t.prototype.start.call(this),this.settings.zoomLevel=this.view.getZoom(),this.settings.autoZoom=r.AutoZoomMode.Disabled},e.prototype.getTouchDistance=function(t){var e=new s.Point(t.touches[0].offsetPoint.x,t.touches[0].offsetPoint.y),n=new s.Point(t.touches[1].offsetPoint.x,t.touches[1].offsetPoint.y);return c.Metrics.euclideanDistance(e,n)},e.prototype.getPointByEvent=function(t){return this.getMiddleAbsPoint(t)},e.prototype.getMiddleAbsPoint=function(t){return t.touches.length>1?e.getMiddlePointByEvent(t,(function(t){return t.offsetPoint})):t.offsetPoint},e.prototype.getMiddleLayoutPoint=function(t){return t.touches.length>1?e.getMiddlePointByEvent(t,(function(t){return t.modelPoint})):t.modelPoint},e.getMiddlePointByEvent=function(t,e){if(t.touches.length>1)return new s.Point((e(t.touches[0]).x+e(t.touches[1]).x)/2,(e(t.touches[0]).y+e(t.touches[1]).y)/2)},e}(a.MouseHandlerScrollingState);e.MouseHandlerZoomOnPinchState=u},7189:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MouseHandlerZoomOnWheelState=void 0;var r=n(5434),s=n(6031),a=n(240),c=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.settings=n,i.view=o,i}return i(e,t),e.prototype.onMouseWheel=function(t){return this.trySwitchToDefault(t)?this.handler.state.onMouseWheel(t):(this.settings.zoomLevel=this.view.getNextStepZoom(t.deltaY<0),t.source.type===s.MouseEventElementType.Background?this.view.resetScroll():(this.view.scrollTo(t.modelPoint,t.offsetPoint),this.view.normalize()),t.preventDefault=!0,!0)},e.prototype.onMouseUp=function(t){this.handler.switchToDefaultState(),this.handler.state.onMouseUp(t)},e.prototype.onMouseDown=function(t){this.handler.switchToDefaultState(),this.handler.state.onMouseDown(t)},e.prototype.onMouseMove=function(t){this.trySwitchToDefault(t)&&this.handler.state.onMouseMove(t)},e.prototype.trySwitchToDefault=function(t){return!!this.handler.canFinishZoomOnWheel(t)&&(this.handler.switchToDefaultState(),!0)},e.prototype.start=function(){t.prototype.start.call(this),this.settings.zoomLevel=this.view.getZoom(),this.settings.autoZoom=a.AutoZoomMode.Disabled},e}(r.MouseHandlerStateBase);e.MouseHandlerZoomOnWheelState=c},8376:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextInputHandler=void 0;var o=n(6516),i=n(6031),r=n(2153),s=n(5503),a=n(7959),c=n(5144),u=function(){function t(t){this.control=t}return t.prototype.startTextInput=function(t,e){if(!t.isLocked&&t.enableText&&t.allowEditText&&!this.control.settings.readOnly&&this.canFinishTextEditing()){this.control.beginUpdate(),this.textInputItem=t;var n=!0;if(this.textInputItem instanceof s.Shape){var o=this.textInputItem.textEditRectangle;(n=this.control.permissionsProvider.canChangeShapeText(this.textInputItem))&&this.control.eventManager.raiseTextInputStart(this.textInputItem,this.textInputItem.text,o.createPosition(),o.createSize())}else this.textInputItem instanceof a.Connector&&(this.textInputPosition=e,(n=this.control.permissionsProvider.canChangeConnectorText(this.textInputItem,this.textInputPosition))&&this.control.eventManager.raiseTextInputStart(this.textInputItem,this.textInputItem.getText(this.textInputPosition),this.textInputItem.getTextPoint(this.textInputPosition)));n||(delete this.textInputItem,this.control.endUpdate())}},t.prototype.endTextInput=function(t){var e=this.textInputItem;delete this.textInputItem,this.control.eventManager.raiseTextInputEnd(e,t),this.control.endUpdate(),this.control.barManager.updateItemsState()},t.prototype.raiseTextInputPermissionsCheck=function(t){this.control.eventManager.raiseTextInputPermissionsCheck(this.textInputItem,t)},t.prototype.applyTextInput=function(t,e){if(this.canFinishTextEditing(t)){var n=this.textInputItem,i=this.textInputPosition;this.endTextInput(e),n instanceof s.Shape?n.text!==t&&this.control.history.addAndRedo(new o.ChangeShapeTextHistoryItem(n,t)):n instanceof a.Connector&&n.getText(i)!==t&&this.control.history.addAndRedo(new c.ChangeConnectorTextHistoryItem(n,i,t))}},t.prototype.canFinishTextEditing=function(t){var e=!0;if(this.isTextInputActive()){var n=t||this.getTextInputElementValue();this.textInputItem instanceof s.Shape?e=this.control.permissionsProvider.canApplyShapeTextChange(this.textInputItem,n):this.textInputItem instanceof a.Connector&&(e=this.control.permissionsProvider.canApplyConnectorTextChange(this.textInputItem,this.textInputPosition,n)),this.raiseTextInputPermissionsCheck(e)}return e},t.prototype.getTextInputElementValue=function(){return this.control.render?this.control.render.input.getTextInputElementValue():\"\"},t.prototype.cancelTextInput=function(){this.raiseTextInputPermissionsCheck(!0),this.endTextInput(!0)},t.prototype.isTextInputActive=function(){return void 0!==this.textInputItem},t.prototype.processDblClick=function(t){if(t.source.type===i.MouseEventElementType.Shape){var e=this.control.model.findShape(t.source.key);this.startTextInput(e)}else if(t.source.type===i.MouseEventElementType.Connector){var n=(o=this.control.model.findConnector(t.source.key)).getTextPositionByPoint(t.modelPoint);this.startTextInput(o,n)}else if(t.source.type===i.MouseEventElementType.ConnectorText){var o=this.control.model.findConnector(t.source.key);n=parseFloat(t.source.value);this.startTextInput(o,n)}},t.prototype.onDblClick=function(t){var e=this;setTimeout((function(){e.processDblClick(t)}),10)},t.prototype.onKeyDown=function(t){this.isTextInputActive()&&(13===t.keyCode&&this.hasCtrlModifier(t.modifiers)&&(t.preventDefault=!0,this.applyTextInput(t.inputText,!0)),27===t.keyCode&&this.cancelTextInput())},t.prototype.onBlur=function(t){this.isTextInputActive()&&this.applyTextInput(t.inputText)},t.prototype.onFocus=function(t){},t.prototype.hasCtrlModifier=function(t){return(t&r.ModifierKey.Ctrl)>0},t}();e.TextInputHandler=u},3541:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectionPointsVisualizer=e.ConnectionPointInfo=void 0;var n=function(t,e){this.point=t,this.side=e,this.allowed=!0};e.ConnectionPointInfo=n;var o=function(){function t(t){this.dispatcher=t}return t.prototype.getKey=function(){return this.key},t.prototype.setPoints=function(t,e,n,o){this.key===t&&this.pointIndex===n||(this.key=t,this.points=e,this.pointIndex=n,this.outsideRectangle=o,this.raiseShow())},t.prototype.setPointIndex=function(t){0<=t&&t<this.points.length&&this.pointIndex!==t&&(this.pointIndex=t,this.raiseShow())},t.prototype.update=function(){this.raiseShow()},t.prototype.reset=function(){\"-1\"!==this.key&&(this.key=\"-1\",this.points=[],this.pointIndex=-1,this.outsideRectangle=void 0,this.raiseHide())},t.prototype.raiseShow=function(){var t=this;this.dispatcher.raise1((function(e){return e.notifyConnectionPointsShow(t.key,t.points,t.pointIndex,t.outsideRectangle)}))},t.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifyConnectionPointsHide()}))},t}();e.ConnectionPointsVisualizer=o},3702:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectionTargetVisualizer=e.ConnectionTargetInfo=void 0;var r=n(3785),s=function(t,e){this.rect=t,this.strokeWidth=e,this.allowed=!0};e.ConnectionTargetInfo=s;var a=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.raiseShow=function(){var t=this,e=new s(this.targetRect,this.targetStrokeWidth);this.dispatcher.raise1((function(n){return n.notifyConnectionTargetShow(t.key,e)}))},e.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifyConnectionTargetHide()}))},e}(r.TargetVisualizerBase);e.ConnectionTargetVisualizer=a},9198:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ContainerTargetVisualizer=e.ContainerTargetInfo=void 0;var r=n(3785),s=function(t,e){this.rect=t,this.strokeWidth=e};e.ContainerTargetInfo=s;var a=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.raiseShow=function(){var t=this,e=new s(this.targetRect,this.targetStrokeWidth);this.dispatcher.raise1((function(n){return n.notifyContainerTargetShow(t.key,e)}))},e.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifyContainerTargetHide()}))},e}(r.TargetVisualizerBase);e.ContainerTargetVisualizer=a},371:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExtensionLinesVisualizer=e.ExtensionLine=e.ExtensionLineType=void 0,function(t){t[t.LeftToLeftAbove=0]=\"LeftToLeftAbove\",t[t.LeftToLeftBelow=1]=\"LeftToLeftBelow\",t[t.RightToRightAbove=2]=\"RightToRightAbove\",t[t.RightToRightBelow=3]=\"RightToRightBelow\",t[t.LeftToRightAbove=4]=\"LeftToRightAbove\",t[t.LeftToRightBelow=5]=\"LeftToRightBelow\",t[t.RightToLeftAbove=6]=\"RightToLeftAbove\",t[t.RightToLeftBelow=7]=\"RightToLeftBelow\",t[t.TopToTopBefore=8]=\"TopToTopBefore\",t[t.TopToTopAfter=9]=\"TopToTopAfter\",t[t.BottomToBottomBefore=10]=\"BottomToBottomBefore\",t[t.BottomToBottomAfter=11]=\"BottomToBottomAfter\",t[t.TopToBottomBefore=12]=\"TopToBottomBefore\",t[t.TopToBottomAfter=13]=\"TopToBottomAfter\",t[t.BottomToTopBefore=14]=\"BottomToTopBefore\",t[t.BottomToTopAfter=15]=\"BottomToTopAfter\",t[t.HorizontalCenterAbove=16]=\"HorizontalCenterAbove\",t[t.HorizontalCenterBelow=17]=\"HorizontalCenterBelow\",t[t.VerticalCenterBefore=18]=\"VerticalCenterBefore\",t[t.VerticalCenterAfter=19]=\"VerticalCenterAfter\",t[t.VerticalCenterToPageCenter=20]=\"VerticalCenterToPageCenter\",t[t.HorizontalCenterToPageCenter=21]=\"HorizontalCenterToPageCenter\",t[t.LeftToPageCenter=22]=\"LeftToPageCenter\",t[t.RightToPageCenter=23]=\"RightToPageCenter\",t[t.TopToPageCenter=24]=\"TopToPageCenter\",t[t.BottomToPageCenter=25]=\"BottomToPageCenter\"}(e.ExtensionLineType||(e.ExtensionLineType={}));var n=function(t,e,n){this.type=t,this.segment=e,this.text=n};e.ExtensionLine=n;var o=function(){function t(t){this.dispatcher=t,this.lines=[],this.lineIndexByType={}}return t.prototype.addSegment=function(t,e,o){var i=this.lineIndexByType[t];if(void 0===i){var r=new n(t,e,o),s=this.lines.push(r);this.lineIndexByType[r.type]=s-1,this.raiseShow()}else if(e.length<this.lines[i].segment.length){r=new n(t,e,o);this.lines.splice(i,1,r),this.raiseShow()}},t.prototype.update=function(){this.raiseShow()},t.prototype.reset=function(){this.lines.length&&(this.lines=[],this.lineIndexByType={},this.raiseHide())},t.prototype.raiseShow=function(){var t=this;this.dispatcher.raise1((function(e){return e.notifyExtensionLinesShow(t.lines)}))},t.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifyExtensionLinesHide()}))},t}();e.ExtensionLinesVisualizer=o},6569:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ResizeInfoVisualizer=void 0;var n=function(){function t(t){this.dispatcher=t}return t.prototype.set=function(t,e){this.point=t,this.text=e,this.raiseShow()},t.prototype.reset=function(){void 0!==this.point&&(this.point=void 0,this.text=void 0,this.raiseHide())},t.prototype.raiseShow=function(){var t=this;this.dispatcher.raise1((function(e){return e.notifyResizeInfoShow(t.point,t.text)}))},t.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifyResizeInfoHide()}))},t}();e.ResizeInfoVisualizer=n},4753:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.SelectionRectVisualizer=void 0;var n=function(){function t(t){this.dispatcher=t}return t.prototype.setRectangle=function(t){this.rect=t,this.raiseShow()},t.prototype.reset=function(){this.rect=void 0,this.raiseHide()},t.prototype.raiseShow=function(){var t=this;this.dispatcher.raise1((function(e){return e.notifySelectionRectShow(t.rect)}))},t.prototype.raiseHide=function(){this.dispatcher.raise1((function(t){return t.notifySelectionRectHide()}))},t}();e.SelectionRectVisualizer=n},3785:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.TargetVisualizerBase=void 0;var n=function(){function t(t){this.dispatcher=t}return t.prototype.getKey=function(){return this.key},t.prototype.setTargetRect=function(t,e,n){this.key!==t&&(this.key=t,this.targetRect=e,this.targetStrokeWidth=n,this.raiseShow())},t.prototype.reset=function(){\"-1\"!==this.key&&(this.key=\"-1\",this.targetRect=void 0,this.targetStrokeWidth=0,this.raiseHide())},t}();e.TargetVisualizerBase=n},7733:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.VisualizerManager=void 0;var r=n(3702),s=n(9198),a=n(371),c=n(6031),u=n(3541),h=n(5503),p=n(8675),l=n(1335),d=n(8900),f=n(4e3),y=n(4867),g=n(6569),m=n(4753),v=n(1772),P=n(6224),C=function(t){function e(e,n,o,i,c){void 0===c&&(c=i.readOnly);var h=t.call(this)||this;return h.selection=e,h.model=n,h.eventManager=o,h.settings=i,h.readOnly=c,h.onVisualizersUpdate=new p.EventDispatcher,h.connectionPointsVisualizer=new u.ConnectionPointsVisualizer(h.onVisualizersUpdate),h.connectionPointsVisualizer=new u.ConnectionPointsVisualizer(h.onVisualizersUpdate),h.connectionTargetVisualizer=new r.ConnectionTargetVisualizer(h.onVisualizersUpdate),h.containerTargetVisualizer=new s.ContainerTargetVisualizer(h.onVisualizersUpdate),h.extensionLinesVisualizer=new a.ExtensionLinesVisualizer(h.onVisualizersUpdate),h.resizeInfoVisualizer=new g.ResizeInfoVisualizer(h.onVisualizersUpdate),h.selectionRectangleVisualizer=new m.SelectionRectVisualizer(h.onVisualizersUpdate),h}return i(e,t),e.prototype.initialize=function(t){this.model=t},e.prototype.onMouseDown=function(t){},e.prototype.onMouseUp=function(t){},e.prototype.onMouseEnter=function(t){},e.prototype.onMouseLeave=function(t){this.resetConnectionPoints(),this.resetConnectionTarget(),this.resetExtensionLines(),this.resetContainerTarget(),this.resetResizeInfo(),this.resetSelectionRectangle()},e.prototype.onBlur=function(t){},e.prototype.onFocus=function(t){},e.prototype.updateConnections=function(t,e,n){var o=-1;n&&e===c.MouseEventElementType.ShapeConnectionPoint&&(o=parseInt(n));var i=t&&(!t.allowResizeHorizontally&&!t.allowResizeVertically||t.isLocked);this.setConnectionPoints(t,e,o,i)},e.prototype.setConnectionPoints=function(t,e,n,o){if(this.eventManager.isFocused())if(!t||e!==c.MouseEventElementType.Shape&&e!==c.MouseEventElementType.ShapeResizeBox&&e!==c.MouseEventElementType.ShapeConnectionPoint||void 0===t)this.connectionPointsVisualizer.reset();else{var i=t.key,r=this.selection.hasKey(i),s=t.getConnectionPoints();this.connectionPointsVisualizer.setPoints(i,s.map((function(e){return new u.ConnectionPointInfo(e,t.getConnectionPointSide(e))})),n,r&&!o&&t.rectangle)}},e.prototype.setConnectionPointIndex=function(t){this.connectionPointsVisualizer.setPointIndex(t)},e.prototype.updateConnectionPoints=function(){void 0!==this.model.findItem(this.connectionPointsVisualizer.getKey())?this.connectionPointsVisualizer.update():this.connectionPointsVisualizer.reset()},e.prototype.resetConnectionPoints=function(){this.connectionPointsVisualizer.reset()},e.prototype.setConnectionTarget=function(t,e){!t||e!==c.MouseEventElementType.Shape&&e!==c.MouseEventElementType.ShapeConnectionPoint?this.connectionTargetVisualizer.reset():this.connectionTargetVisualizer.setTargetRect(t.key,t.rectangle,t.strokeWidth)},e.prototype.resetConnectionTarget=function(){this.connectionTargetVisualizer.reset()},e.prototype.setContainerTarget=function(t,e){t&&!t.isLocked&&e===c.MouseEventElementType.Shape&&t.enableChildren?this.containerTargetVisualizer.setTargetRect(t.key,t.rectangle,t.strokeWidth):this.containerTargetVisualizer.reset()},e.prototype.resetContainerTarget=function(){this.containerTargetVisualizer.reset()},e.prototype.setExtensionLines=function(t){var e=this;if(this.eventManager.isFocused()){this.extensionLinesVisualizer.reset();var n=y.ModelUtils.createRectangle(t.filter((function(t){return t})));this.addPageExtensionLines(n),this.model.items.forEach((function(o){t.indexOf(o)>-1||o instanceof h.Shape&&e.addShapeExtensionLines(o,n)}))}},e.prototype.addPageExtensionLines=function(t){for(var e=Math.round(this.model.size.width/this.model.pageWidth),n=Math.round(this.model.size.height/this.model.pageHeight),o=0;o<e;o++)for(var i=0;i<n;i++){var r=new d.Point(o*this.model.pageWidth+this.model.pageWidth/2,i*this.model.pageHeight+this.model.pageHeight/2);if(Math.abs(t.center.x-r.x)<this.settings.gridSize/2){var s=new l.Segment(new d.Point(t.center.x,0),new d.Point(t.center.x,this.model.size.height));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.HorizontalCenterToPageCenter,s,\"\")}if(Math.abs(t.center.y-r.y)<this.settings.gridSize/2){s=new l.Segment(new d.Point(0,t.center.y),new d.Point(this.model.size.width,t.center.y));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.VerticalCenterToPageCenter,s,\"\")}if(Math.abs(t.x-r.x)<this.settings.gridSize/2){s=new l.Segment(new d.Point(t.x,0),new d.Point(t.x,this.model.size.height));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.LeftToPageCenter,s,\"\")}if(Math.abs(t.y-r.y)<this.settings.gridSize/2){s=new l.Segment(new d.Point(0,t.y),new d.Point(this.model.size.width,t.y));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.TopToPageCenter,s,\"\")}if(Math.abs(t.right-r.x)<this.settings.gridSize/2){s=new l.Segment(new d.Point(t.right,0),new d.Point(t.right,this.model.size.height));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.RightToPageCenter,s,\"\")}if(Math.abs(t.bottom-r.y)<this.settings.gridSize/2){s=new l.Segment(new d.Point(0,t.bottom),new d.Point(this.model.size.width,t.bottom));this.extensionLinesVisualizer.addSegment(a.ExtensionLineType.BottomToPageCenter,s,\"\")}}},e.prototype.addShapeExtensionLines=function(t,e){var n,o,i,r,s,c,u,h,p=t.rectangle,y=t.strokeWidth-f.CanvasSelectionManager.extensionLineWidth,g=!0;if(e.right<p.x?(n=e.right,i=p.x,s=n+y+f.CanvasSelectionManager.extensionLineOffset,u=i-f.CanvasSelectionManager.extensionLineOffset):e.x>p.right&&(n=e.x,i=p.right,s=n-f.CanvasSelectionManager.extensionLineOffset,u=i+y+f.CanvasSelectionManager.extensionLineOffset),e.bottom<p.y?(o=e.bottom,r=p.y,c=o+y+f.CanvasSelectionManager.extensionLineOffset,h=r-f.CanvasSelectionManager.extensionLineOffset):e.y>p.bottom&&(o=e.y,r=p.bottom,c=o-f.CanvasSelectionManager.extensionLineOffset,h=r+y+f.CanvasSelectionManager.extensionLineOffset),void 0!==s&&void 0!==u){var m=this.getViewUnitText(Math.abs(n-i));if(e.center.y===p.center.y){var v=new l.Segment(new d.Point(s,e.center.y),new d.Point(u,p.center.y));this.extensionLinesVisualizer.addSegment(s>u?a.ExtensionLineType.VerticalCenterAfter:a.ExtensionLineType.VerticalCenterBefore,v,g?m:\"\"),g=!1}if(e.y===p.y){v=new l.Segment(new d.Point(s,e.y),new d.Point(u,p.y));this.extensionLinesVisualizer.addSegment(s>u?a.ExtensionLineType.TopToTopAfter:a.ExtensionLineType.TopToTopBefore,v,g?m:\"\")}if(e.bottom===p.bottom){v=new l.Segment(new d.Point(s,e.bottom+y),new d.Point(u,p.bottom+y));this.extensionLinesVisualizer.addSegment(s>u?a.ExtensionLineType.BottomToBottomAfter:a.ExtensionLineType.BottomToBottomBefore,v,g?m:\"\")}if(e.y===p.bottom){v=new l.Segment(new d.Point(s,e.y),new d.Point(u,p.bottom+y));this.extensionLinesVisualizer.addSegment(s>u?a.ExtensionLineType.TopToBottomAfter:a.ExtensionLineType.TopToBottomBefore,v,g?m:\"\")}if(e.bottom===p.y){v=new l.Segment(new d.Point(s,e.bottom+y),new d.Point(u,p.y));this.extensionLinesVisualizer.addSegment(s>u?a.ExtensionLineType.BottomToTopAfter:a.ExtensionLineType.BottomToTopBefore,v,g?m:\"\")}}if(void 0!==c&&void 0!==h){m=this.getViewUnitText(Math.abs(o-r));if(e.center.x===p.center.x){v=new l.Segment(new d.Point(e.center.x,c),new d.Point(p.center.x,h));this.extensionLinesVisualizer.addSegment(c>h?a.ExtensionLineType.HorizontalCenterBelow:a.ExtensionLineType.HorizontalCenterAbove,v,g?m:\"\"),g=!1}if(e.x===p.x){v=new l.Segment(new d.Point(e.x,c),new d.Point(p.x,h));this.extensionLinesVisualizer.addSegment(c>h?a.ExtensionLineType.LeftToLeftBelow:a.ExtensionLineType.LeftToLeftAbove,v,g?m:\"\")}if(e.right===p.right){v=new l.Segment(new d.Point(e.right+y,c),new d.Point(p.right+y,h));this.extensionLinesVisualizer.addSegment(c>h?a.ExtensionLineType.RightToRightBelow:a.ExtensionLineType.RightToRightAbove,v,g?m:\"\")}if(e.x===p.right){v=new l.Segment(new d.Point(e.x,c),new d.Point(p.right+y,h));this.extensionLinesVisualizer.addSegment(c>h?a.ExtensionLineType.LeftToRightBelow:a.ExtensionLineType.LeftToRightAbove,v,g?m:\"\")}if(e.right===p.x){v=new l.Segment(new d.Point(e.right+y,c),new d.Point(p.x,h));this.extensionLinesVisualizer.addSegment(c>h?a.ExtensionLineType.RightToLeftBelow:a.ExtensionLineType.RightToLeftAbove,v,g?m:\"\")}}},e.prototype.resetExtensionLines=function(){this.extensionLinesVisualizer.reset()},e.prototype.setResizeInfo=function(t){var e=y.ModelUtils.createRectangle(t),n=new d.Point(e.center.x,e.bottom+f.CanvasSelectionManager.resizeInfoOffset),o=this.getViewUnitText(e.width)+\" x \"+this.getViewUnitText(e.height);this.resizeInfoVisualizer.set(n,o)},e.prototype.resetResizeInfo=function(){this.resizeInfoVisualizer.reset()},e.prototype.setSelectionRectangle=function(t){this.selectionRectangleVisualizer.setRectangle(t)},e.prototype.resetSelectionRectangle=function(){this.selectionRectangleVisualizer.reset()},e.prototype.getViewUnitText=function(t){return y.ModelUtils.getUnitText(this.settings.viewUnits,P.DiagramLocalizationService.unitItems,P.DiagramLocalizationService.formatUnit,t)},e.prototype.notifyReadOnlyChanged=function(t){this.readOnly=t,this.readOnly&&(this.resetConnectionPoints(),this.resetConnectionTarget(),this.resetExtensionLines(),this.resetContainerTarget(),this.resetResizeInfo(),this.resetSelectionRectangle())},e.prototype.notifyDragStart=function(t){},e.prototype.notifyDragEnd=function(t){},e.prototype.notifyDragScrollStart=function(){},e.prototype.notifyDragScrollEnd=function(){},e.prototype.onUpdateUnlocked=function(t){},e}(v.BatchUpdatableObject);e.VisualizerManager=C},7459:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.VisualizerTouchManager=void 0;var r=n(7733),s=n(6031),a=function(t){function e(e,n,o,i,r){void 0===r&&(r=i.readOnly);var s=t.call(this,e,n,o,i,r)||this;return e.onChanged.add(s),s}return i(e,t),e.prototype.onBlur=function(t){var e=this;setTimeout((function(){e.hideConnections()}),1)},e.prototype.onFocus=function(t){var e=this;setTimeout((function(){e.showConnections()}),1)},e.prototype.hideConnections=function(){this.readOnly||this.resetConnectionPoints()},e.prototype.showConnections=function(){if(!this.readOnly&&this.needShowConnections()){var t=this.selection.getSelectedShapes();1===t.length&&this.setConnectionPoints(t[0],s.MouseEventElementType.ShapeConnectionPoint,-1,!t[0].allowResizeHorizontally&&!t[0].allowResizeVertically||t[0].isLocked)}},e.prototype.needShowConnections=function(){var t=this.selection.getSelectedItems(),e=this.selection.getSelectedShapes();return 1===t.length&&1===e.length},e.prototype.notifySelectionChanged=function(t){this.isUpdateLocked()?this.registerOccurredEvent(1):this.raiseSelectionChanged()},e.prototype.raiseSelectionChanged=function(){this.needShowConnections()?this.showConnections():this.hideConnections()},e.prototype.onUpdateUnlocked=function(t){1&t&&this.raiseSelectionChanged()},e.prototype.notifyDragStart=function(t){this.hideConnections()},e.prototype.notifyDragEnd=function(t){this.showConnections()},e}(r.VisualizerManager);e.VisualizerTouchManager=a},3477:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SetConnectionPointIndexHistoryItem=e.AddConnectionHistoryItem=void 0;var r=n(4412),s=n(7959),a=function(t){function e(e,n,o,i){var r=t.call(this)||this;return r.connectorKey=e.key,r.itemKey=n.key,r.connectionPointIndex=o,r.position=i,r}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey),n=t.model.findItem(this.itemKey);t.addConnection(e,n,this.connectionPointIndex,this.position)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.deleteConnection(e,this.position)},e}(r.HistoryItem);e.AddConnectionHistoryItem=a;var c=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e.key,i.connectionPointIndex=n,i.position=o,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);this.oldConnectionPointIndex=this.position===s.ConnectorPosition.Begin?e.beginConnectionPointIndex:e.endConnectionPointIndex,t.setConnectionPointIndex(e,this.connectionPointIndex,this.position)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.setConnectionPointIndex(e,this.oldConnectionPointIndex,this.position)},e}(r.HistoryItem);e.SetConnectionPointIndexHistoryItem=c},9603:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AddConnectorHistoryItem=void 0;var r=n(4412),s=n(7959),a=function(t){function e(e,n,o){var i=t.call(this)||this;return i.points=e,i.dataKey=n,i.renderPointsContext=o,i}return i(e,t),e.prototype.redo=function(t){var e=new s.Connector(this.points);void 0!==this.dataKey&&(e.dataKey=this.dataKey),void 0!==this.renderPointsContext&&e.replaceRenderPoints(this.renderPointsContext),t.addConnector(e,this.connectorKey),this.connectorKey=e.key},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.deleteConnector(e)},e}(r.HistoryItem);e.AddConnectorHistoryItem=a},4430:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AddConnectorPointHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e,i.pointIndex=n,i.point=o,i}return i(e,t),e.prototype.redo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);this.renderContext=n.tryCreateRenderPointsContext(),t.addDeleteConnectorPoint(n,(function(t){t.addPoint(e.pointIndex,e.point),t.onAddPoint(e.pointIndex,e.point)}))},e.prototype.undo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);t.addDeleteConnectorPoint(n,(function(t){t.deletePoint(e.pointIndex),t.replaceRenderPoints(e.renderContext)}))},e}(n(4412).HistoryItem);e.AddConnectorPointHistoryItem=r},4145:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AddShapeHistoryItem=void 0;var r=n(4412),s=n(5503),a=function(t){function e(e,n,o,i){var r=t.call(this)||this;return r.shapeDescription=e,r.position=n,r.text=o,r.dataKey=i,r}return i(e,t),e.prototype.redo=function(t){var e=new s.Shape(this.shapeDescription,this.position);\"string\"==typeof this.text&&(e.text=this.text),void 0!==this.dataKey&&(e.dataKey=this.dataKey),t.addShape(e,this.shapeKey),this.shapeKey=e.key},e.prototype.undo=function(t){t.deleteShape(t.model.findShape(this.shapeKey),!0)},e}(r.HistoryItem);e.AddShapeHistoryItem=a},58:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ReplaceConnectorPointsHistoryItem=e.ChangeConnectorPointsHistoryItem=e.UpdateConnectorPointsHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.connectorKey=e,o.newPoints=n,o}return i(e,t),e.prototype.redo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);this.oldRenderContext=n.tryCreateRenderPointsContext(),this.oldPoints=n.points.map((function(t){return t.clone()})),t.changeConnectorPoints(n,(function(t){t.points=e.newPoints,e.updateRenderPoints(t)}))},e.prototype.undo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);t.changeConnectorPoints(n,(function(t){t.points=e.oldPoints,t.replaceRenderPoints(e.oldRenderContext)}))},e}(n(4412).HistoryItem);e.UpdateConnectorPointsHistoryItem=r;var s=function(t){function e(e,n,o){var i=t.call(this,e,n)||this;return i.connectorKey=e,i.newPoints=n,i.newRenderContext=o,i}return i(e,t),e.prototype.updateRenderPoints=function(t){t.replaceRenderPoints(this.newRenderContext)},e}(r);e.ChangeConnectorPointsHistoryItem=s;var a=function(t){function e(e,n){var o=t.call(this,e,n)||this;return o.connectorKey=e,o.newPoints=n,o}return i(e,t),e.prototype.updateRenderPoints=function(t){t.clearRenderPoints()},e}(r);e.ReplaceConnectorPointsHistoryItem=a},329:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShapeParametersHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.shapeKey=e,o.parameters=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldParameters=e.parameters.clone(),t.changeShapeParameters(e,this.parameters)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.changeShapeParameters(e,this.oldParameters)},e}(n(4412).HistoryItem);e.ChangeShapeParametersHistoryItem=r},56:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShapeTypeHistoryItem=void 0;var r=n(6629),s=function(t){function e(e,n){var o=t.call(this)||this;return o.shapeKey=e.key,o.newType=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldType=e.description.key,this.oldParameters=e.parameters.clone(),t.updateShapeType(e,this.newType,new r.ShapeParameters)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.updateShapeType(e,this.oldType,this.oldParameters)},e}(n(4412).HistoryItem);e.ChangeShapeTypeHistoryItem=s},8930:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteConnectionHistoryItem=void 0;var r=n(4412),s=n(7959),a=function(t){function e(e,n){var o=t.call(this)||this;return o.connectorKey=e.key,o.position=n,o.itemKey=e.getExtremeItem(o.position).key,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);this.oldConnectionPointIndex=this.position===s.ConnectorPosition.Begin?e.beginConnectionPointIndex:e.endConnectionPointIndex,t.deleteConnection(e,this.position)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey),n=t.model.findItem(this.itemKey);t.addConnection(e,n,this.oldConnectionPointIndex,this.position)},e}(r.HistoryItem);e.DeleteConnectionHistoryItem=a},9143:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteConnectorHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.connectorKey=e,n}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);this.connector=e.clone(),t.deleteConnector(e)},e.prototype.undo=function(t){t.addConnector(this.connector,this.connector.key)},e}(n(4412).HistoryItem);e.DeleteConnectorHistoryItem=r},1704:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteShapeHistoryItem=void 0;var r=function(t){function e(e,n){void 0===n&&(n=!0);var o=t.call(this)||this;return o.shapeKey=e,o.allowed=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.shape=e.clone(),t.deleteShape(e,this.allowed)},e.prototype.undo=function(t){t.addShape(this.shape,this.shape.key)},e}(n(4412).HistoryItem);e.DeleteShapeHistoryItem=r},3849:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportConnectorHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.connector=e,n}return i(e,t),e.prototype.redo=function(t){this.connectorKey=this.connector.key,t.insertConnector(this.connector)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.removeConnector(e)},e}(n(4412).HistoryItem);e.ImportConnectorHistoryItem=r},4383:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportShapeHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.shape=e,n}return i(e,t),e.prototype.redo=function(t){this.shapeKey=this.shape.key,t.insertShape(this.shape)},e.prototype.undo=function(t){t.removeShape(t.model.findShape(this.shapeKey),!0)},e}(n(4412).HistoryItem);e.ImportShapeHistoryItem=r},9310:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.InsertToContainerHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.containerKey=n.key,o.itemKey=e.key,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey),n=t.model.findShape(this.containerKey);t.insertToContainer(e,n)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.removeFromContainer(e)},e}(n(4412).HistoryItem);e.InsertToContainerHistoryItem=r},8338:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MoveConnectorRightAnglePointsHistoryItem=e.MoveConnectorPointHistoryItem=void 0;var r=n(8900),s=n(4412),a=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e,i.pointIndex=n,i.newPoint=o,i}return i(e,t),e.prototype.redo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);this.oldPoint=n.points[this.pointIndex].clone(),this.renderContext=n.tryCreateRenderPointsContext(),t.moveConnectorPoint(n,this.pointIndex,(function(t){t.movePoint(e.pointIndex,e.newPoint),t.onMovePoint(e.pointIndex,e.newPoint)}))},e.prototype.undo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);t.moveConnectorPoint(n,this.pointIndex,(function(t){t.movePoint(e.pointIndex,e.oldPoint),t.replaceRenderPoints(e.renderContext)}))},e}(s.HistoryItem);e.MoveConnectorPointHistoryItem=a;var c=function(t){function e(e,n,o,i,r){var s=t.call(this)||this;return s.connectorKey=e,s.beginPointIndex=n,s.lastPointIndex=o,s.newX=i,s.newY=r,s.oldPoints=[],s}return i(e,t),e.prototype.redo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);this.renderContext=n.tryCreateRenderPointsContext(),this.oldPoints=n.points.slice(this.beginPointIndex,this.lastPointIndex+1).map((function(t){return t.clone()}));var o=[];t.changeConnectorPoints(n,(function(t){for(var n=e.beginPointIndex;n<=e.lastPointIndex;n++){var i=new r.Point(void 0===e.newX?t.points[n].x:e.newX,void 0===e.newY?t.points[n].y:e.newY);o.push(i),t.movePoint(n,i)}t.onMovePoints(e.beginPointIndex,e.lastPointIndex,o)}))},e.prototype.undo=function(t){var e=this,n=t.model.findConnector(this.connectorKey);t.changeConnectorPoints(n,(function(t){for(var n=e.beginPointIndex;n<=e.lastPointIndex;n++)t.movePoint(n,e.oldPoints[n-e.beginPointIndex]);t.replaceRenderPoints(e.renderContext)}))},e}(s.HistoryItem);e.MoveConnectorRightAnglePointsHistoryItem=c},4160:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MoveShapeHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.shapeKey=e,o.position=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldPosition=e.position.clone(),t.moveShape(e,this.position)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.moveShape(e,this.oldPosition)},e}(n(4412).HistoryItem);e.MoveShapeHistoryItem=r},9753:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.RemoveFromContainerHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.itemKey=e.key,n}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.containerKey=e.container&&e.container.key,t.removeFromContainer(e)},e.prototype.undo=function(t){var e=t.model.findContainer(this.containerKey),n=t.model.findItem(this.itemKey);t.insertToContainer(n,e)},e}(n(4412).HistoryItem);e.RemoveFromContainerHistoryItem=r},4629:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ResizeShapeHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.shapeKey=e,i.position=n,i.size=o,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldPosition=e.position.clone(),this.oldSize=e.size.clone(),t.resizeShape(e,this.position,this.size)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.resizeShape(e,this.oldPosition,this.oldSize)},e}(n(4412).HistoryItem);e.ResizeShapeHistoryItem=r},7626:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ScrollIntoViewOnUndoHistoryItem=e.ScrollIntoViewOnRedoHistoryItem=void 0;var r=n(4412),s=function(t){function e(e,n){var o=t.call(this)||this;return o.view=e,o.rectangle=n,o.view=e,o.rectangle=n.clone(),o}return i(e,t),e.prototype.redo=function(t){this.view.scrollIntoView(this.rectangle)},e.prototype.undo=function(t){},e}(r.HistoryItem);e.ScrollIntoViewOnRedoHistoryItem=s;var a=function(t){function e(e,n){var o=t.call(this)||this;return o.view=e,o.rectangle=n,o.view=e,o.rectangle=n.clone(),o}return i(e,t),e.prototype.redo=function(t){},e.prototype.undo=function(t){this.view.scrollIntoView(this.rectangle)},e}(r.HistoryItem);e.ScrollIntoViewOnUndoHistoryItem=a},4297:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SetSelectionHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.selectedKeys=n,i.selection=e,i.forceChange=o,i}return i(e,t),e.prototype.redo=function(){this.oldSelection=this.selection.getKeys().slice(0),this.selection.set(this.selectedKeys,this.forceChange)},e.prototype.undo=function(){this.selection.set(this.oldSelection,this.forceChange)},e}(n(4412).HistoryItem);e.SetSelectionHistoryItem=r},1864:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.History=void 0;var o=n(4412),i=n(8675),r=function(){function t(t,e){this.modelManipulator=t,this.diagram=e,this.historyItems=[],this.currentIndex=-1,this.incrementalId=-1,this.transactionLevel=-1,this.unmodifiedIndex=-1,this.currTransactionId=0,this.onChanged=new i.EventDispatcher}return t.prototype.isModified=function(){if(this.unmodifiedIndex===this.currentIndex)return!1;for(var t=Math.min(this.unmodifiedIndex,this.currentIndex),e=Math.max(this.unmodifiedIndex,this.currentIndex),n=t+1;n<=e;n++)if(this.historyItems[n].changeModified())return!0;return!1},t.prototype.undo=function(){this.canUndo()&&(this.historyItems[this.currentIndex].undo(this.modelManipulator),this.currentIndex--,this.raiseChanged())},t.prototype.redo=function(){this.canRedo()&&(this.startDataSyncItem&&(this.startDataSyncItem.undo(this.modelManipulator),this.startDataSyncItem=void 0),this.currentIndex++,this.historyItems[this.currentIndex].redo(this.modelManipulator),this.raiseChanged())},t.prototype.canUndo=function(){return this.currentIndex>=0},t.prototype.canRedo=function(){return this.currentIndex<this.historyItems.length-1},t.prototype.beginTransaction=function(){return this.transactionLevel++,0===this.transactionLevel&&(this.transaction=new o.CompositionHistoryItem),this.currTransactionId++},t.prototype.endTransaction=function(t){if(!(--this.transactionLevel>=0)){var e=this.transaction.historyItems.length;if(e>0){var n=e>1?this.transaction:this.transaction.historyItems.pop();t?this.addDataSyncItem(n):this.addInternal(n)}e>0&&!t&&this.raiseChanged(),delete this.transaction}},t.prototype.addAndRedo=function(t){this.add(t),t.redo(this.modelManipulator),this.raiseChanged()},t.prototype.add=function(t){this.transactionLevel>=0?this.transaction.add(t):this.addInternal(t)},t.prototype.addInternal=function(t){this.currentIndex<this.historyItems.length-1&&(this.historyItems.splice(this.currentIndex+1),this.unmodifiedIndex=Math.min(this.unmodifiedIndex,this.currentIndex)),this.historyItems.push(t),this.currentIndex++,this.deleteOldItems()},t.prototype.addDataSyncItem=function(t){var e=this.historyItems[this.currentIndex];if(e){var n=void 0;e instanceof o.CompositionHistoryItem?n=e:(this.historyItems.splice(this.currentIndex,1),n=new o.CompositionHistoryItem,this.historyItems.push(n),n.historyItems.push(e)),n.dataSyncItems.push(t)}else this.historyItems.length&&(this.startDataSyncItem=t)},t.prototype.deleteOldItems=function(){var e=this.historyItems.length-t.MAX_HISTORY_ITEM_COUNT;e>0&&this.currentIndex>e&&(this.historyItems.splice(0,e),this.currentIndex-=e)},t.prototype.getNextId=function(){return this.incrementalId++,this.incrementalId},t.prototype.clear=function(){this.currentIndex=-1,this.unmodifiedIndex=-1,this.incrementalId=-1,this.historyItems=[],delete this.transaction,this.transactionLevel=-1},t.prototype.resetModified=function(){this.unmodifiedIndex=this.currentIndex},t.prototype.getCurrentItemId=function(){if(-1===this.currentIndex)return-1;var t=this.historyItems[this.currentIndex];return-1===t.uniqueId&&(t.uniqueId=this.getNextId()),t.uniqueId},t.prototype.undoTransaction=function(){this.diagram.beginUpdateCanvas();for(var t=this.transaction.historyItems;t.length;)t.pop().undo(this.modelManipulator);this.diagram.endUpdateCanvas()},t.prototype.undoTransactionTo=function(t){this.diagram.beginUpdateCanvas();for(var e=this.transaction.historyItems;e.length;){var n=e.pop();if(n.undo(this.modelManipulator),n===t)break}this.diagram.endUpdateCanvas()},t.prototype.raiseChanged=function(){-1===this.transactionLevel&&this.onChanged.raise(\"notifyHistoryChanged\")},t.MAX_HISTORY_ITEM_COUNT=100,t}();e.History=r},4412:function(t,e){var n,o=this&&this.__extends||(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},n(t,e)},function(t,e){function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CompositionHistoryItem=e.HistoryItem=void 0;var i=function(){function t(){this.uniqueId=-1}return t.prototype.changeModified=function(){return!0},t.prototype.getName=function(){return this.constructor.name},t}();e.HistoryItem=i;var r=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.historyItems=[],e.dataSyncItems=[],e}return o(e,t),e.prototype.changeModified=function(){for(var t,e=0;t=this.historyItems[e];e++)if(t.changeModified())return!0;return!1},e.prototype.redo=function(t){for(var e,n=0;e=this.historyItems[n];n++)e.redo(t)},e.prototype.undo=function(t){for(var e,n=this.dataSyncItems.length-1;e=this.dataSyncItems[n];n--)e.undo(t);this.dataSyncItems=[];for(n=this.historyItems.length-1;e=this.historyItems[n];n--)e.undo(t)},e.prototype.add=function(t){if(null==t)throw new Error(\"cannot be null\");this.historyItems.push(t)},e}(i);e.CompositionHistoryItem=r},7195:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageColorHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.value=e,n}return i(e,t),e.prototype.redo=function(t){this.oldValue=t.model.pageColor,t.changePageColor(this.value)},e.prototype.undo=function(t){t.changePageColor(this.oldValue)},e}(n(4412).HistoryItem);e.ChangePageColorHistoryItem=r},1380:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageLandscapeHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.value=e,n}return i(e,t),e.prototype.redo=function(t){this.oldValue=t.model.pageLandscape,t.changePageLandscape(this.value)},e.prototype.undo=function(t){t.changePageLandscape(this.oldValue)},e}(n(4412).HistoryItem);e.ChangePageLandscapeHistoryItem=r},1044:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangePageSizeHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.size=e,n}return i(e,t),e.prototype.redo=function(t){this.oldSize=t.model.pageSize,t.changePageSize(this.size)},e.prototype.undo=function(t){t.changePageSize(this.oldSize)},e}(n(4412).HistoryItem);e.ChangePageSizeHistoryItem=r},7479:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeUnitsHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.units=e,n}return i(e,t),e.prototype.redo=function(t){this.oldUnits=t.model.units,t.model.units=this.units},e.prototype.undo=function(t){t.model.units=this.oldUnits},e}(n(4412).HistoryItem);e.ChangeUnitsHistoryItem=r},1729:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ModelResizeHistoryItem=void 0;var r=n(4412),s=n(4125),a=n(6353),c=function(t){function e(e){var n=t.call(this)||this;return n.offset=e,n}return i(e,t),e.prototype.redo=function(t){this.oldSize=t.model.size.clone(),this.backOffset=new s.Offsets(-this.offset.left,-this.offset.right,-this.offset.top,-this.offset.bottom);var e=Math.max(this.oldSize.width+this.offset.left+this.offset.right,t.model.pageWidth),n=Math.max(this.oldSize.height+this.offset.top+this.offset.bottom,t.model.pageHeight);t.changeModelSize(new a.Size(e,n),this.offset)},e.prototype.undo=function(t){t.changeModelSize(this.oldSize,this.backOffset)},e}(r.HistoryItem);e.ModelResizeHistoryItem=c},4518:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.UpdatePositionsOnPageResizeHistoryItem=void 0;var r=n(7959),s=n(5503),a=function(t){function e(e){var n=t.call(this)||this;return n.offset=e,n}return i(e,t),e.prototype.redo=function(t){var e=this;t.model.iterateItems((function(n){n instanceof s.Shape&&t.moveShape(n,e.applyOffset(n.position,e.offset.x,e.offset.y)),n instanceof r.Connector&&t.changeConnectorPoints(n,(function(t){return t.updatePointsOnPageResize(e.offset.x,e.offset.y)}))}))},e.prototype.undo=function(t){var e=this;t.model.iterateItems((function(n){n instanceof s.Shape&&t.moveShape(n,e.applyOffset(n.position,-e.offset.x,-e.offset.y)),n instanceof r.Connector&&t.changeConnectorPoints(n,(function(t){return t.updatePointsOnPageResize(-e.offset.x,-e.offset.y)}))}))},e.prototype.applyOffset=function(t,e,n){return t.clone().offset(e,n)},e}(n(4412).HistoryItem);e.UpdatePositionsOnPageResizeHistoryItem=a},8236:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorPropertyHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e,i.propertyName=n,i.value=o,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);this.oldValue=e.properties[this.propertyName],t.changeConnectorProperty(e,this.propertyName,this.value)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.changeConnectorProperty(e,this.propertyName,this.oldValue)},e}(n(4412).HistoryItem);e.ChangeConnectorPropertyHistoryItem=r},5144:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorTextHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e.key,i.text=o,i.position=n,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);this.oldText=e.getText(this.position),t.changeConnectorText(e,this.text,this.position)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.changeConnectorText(e,this.oldText,this.position)},e}(n(4412).HistoryItem);e.ChangeConnectorTextHistoryItem=r},45:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorTextPositionHistoryItem=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connectorKey=e.key,i.position=n,i.newPosition=o,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findConnector(this.connectorKey);t.changeConnectorTextPosition(e,this.position,this.newPosition)},e.prototype.undo=function(t){var e=t.model.findConnector(this.connectorKey);t.changeConnectorTextPosition(e,this.newPosition,this.position)},e}(n(4412).HistoryItem);e.ChangeConnectorTextPositionHistoryItem=r},9559:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeCustomDataHistoryItem=void 0;var r=n(4412),s=n(8675),a=function(t){function e(e,n){var o=t.call(this)||this;return o.itemKey=e,o.customData=s.ObjectUtils.cloneObject(n),o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldCustomData=s.ObjectUtils.cloneObject(e.customData),t.changeCustomData(e,this.customData)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeCustomData(e,this.oldCustomData)},e}(r.HistoryItem);e.ChangeCustomDataHistoryItem=a},7443:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeLockedHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.itemKey=e.key,o.locked=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldLocked=e.locked,t.changeLocked(e,this.locked)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeLocked(e,this.oldLocked)},e}(n(4412).HistoryItem);e.ChangeLockedHistoryItem=r},8210:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShapeImageHistoryItem=void 0;var r=n(4412),s=n(6617),a=function(t){function e(e,n){var o=t.call(this)||this;return o.shapeKey=e.key,o.imageUrl=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldImage=e.image,t.changeShapeImage(e,new s.ImageInfo(this.imageUrl))},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.changeShapeImage(e,this.oldImage)},e}(r.HistoryItem);e.ChangeShapeImageHistoryItem=a},6516:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShapeTextHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.shapeKey=e.key,o.text=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);this.oldText=e.text,t.changeShapeText(e,this.text)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.changeShapeText(e,this.oldText)},e}(n(4412).HistoryItem);e.ChangeShapeTextHistoryItem=r},5982:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeZindexHistoryItem=void 0;var r=function(t){function e(e,n){var o=t.call(this)||this;return o.itemKey=e.key,o.zIndex=n,o}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldZIndex=e.zIndex,t.changeZIndex(e,this.zIndex)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeZIndex(e,this.oldZIndex)},e}(n(4412).HistoryItem);e.ChangeZindexHistoryItem=r},442:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToggleShapeExpandedHistoryItem=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.shapeKey=e.key,n.expanded=e.expanded,n}return i(e,t),e.prototype.redo=function(t){var e=t.model.findShape(this.shapeKey);t.changeShapeExpanded(e,!this.expanded)},e.prototype.undo=function(t){var e=t.model.findShape(this.shapeKey);t.changeShapeExpanded(e,this.expanded)},e}(n(4412).HistoryItem);e.ToggleShapeExpandedHistoryItem=r},4634:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStyleHistoryItem=void 0;var r=function(t){function e(e,n,o){return t.call(this,e,n,o)||this}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldStyleValue=e.style[this.styleProperty],t.changeStyle(e,this.styleProperty,this.styleValue)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeStyle(e,this.styleProperty,this.oldStyleValue)},e}(n(3259).ChangeStyleHistoryItemBase);e.ChangeStyleHistoryItem=r},3259:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStyleHistoryItemBase=void 0;var r=function(t){function e(e,n,o){var i=t.call(this)||this;return i.itemKey=e,i.styleProperty=n,i.styleValue=o,i}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldStyleValue=e.style[this.styleProperty],t.changeStyle(e,this.styleProperty,this.styleValue)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeStyle(e,this.styleProperty,this.oldStyleValue)},e}(n(4412).HistoryItem);e.ChangeStyleHistoryItemBase=r},926:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeStyleTextHistoryItem=void 0;var r=function(t){function e(e,n,o){return t.call(this,e,n,o)||this}return i(e,t),e.prototype.redo=function(t){var e=t.model.findItem(this.itemKey);this.oldStyleValue=e.styleText[this.styleProperty],t.changeStyleText(e,this.styleProperty,this.styleValue)},e.prototype.undo=function(t){var e=t.model.findItem(this.itemKey);t.changeStyleText(e,this.styleProperty,this.oldStyleValue)},e}(n(3259).ChangeStyleHistoryItemBase);e.ChangeStyleTextHistoryItem=r},7176:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImageCache=e.CacheImageInfo=void 0;var o=n(6477),i=n(6617),r=n(8675),s=function(){function t(t,e,n,i,r){this._base64=void 0!==t?o.Base64Utils.normalizeToDataUrl(t,\"image/png\"):void 0,this.actualId=e,this._referenceInfo=i,this._isLoaded=void 0!==r&&r,this.imageUrl=n}return Object.defineProperty(t.prototype,\"isLoaded\",{get:function(){return this._referenceInfo?this._referenceInfo._isLoaded:this._isLoaded},set:function(t){this._isLoaded=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"base64\",{get:function(){return this._base64},set:function(t){this._base64=o.Base64Utils.normalizeToDataUrl(t,\"image/png\")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"referenceInfo\",{get:function(){return this._referenceInfo},set:function(t){this._referenceInfo=t,this._base64=void 0,this._isLoaded=void 0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isLoading\",{get:function(){return this._referenceInfo?this.referenceInfo._isLoading:this._isLoading},enumerable:!1,configurable:!0}),t.prototype.startLoading=function(){this._referenceInfo?this._referenceInfo.startLoading():this._isLoading=!0},t.prototype.finalizeLoading=function(){this._referenceInfo?this._referenceInfo.finalizeLoading():this._isLoading=!1},t}();e.CacheImageInfo=s;var a=function(){function t(){this.emptyImageId=0,this.lastActualId=0,this.onReadyStateChanged=new r.EventDispatcher,this.cache=[],this.nonLoadedImages=[],this.createUnloadedInfoByBase64(i.ImageInfo.transparentOnePixelImage).isLoaded=!0}return t.prototype.reset=function(){this.cache.splice(1),this.nonLoadedImages=[],this.lastActualId=1},Object.defineProperty(t.prototype,\"emptyImage\",{get:function(){return this.cache[this.emptyImageId]},enumerable:!1,configurable:!0}),t.prototype.getImageData=function(t){return this.cache[t]},t.prototype.createUnloadedInfoByUrl=function(t){var e=this.findInfoByUrl(t);return e||this.registerImageData(new s(void 0,this.getNextActualId(),t))},t.prototype.createUnloadedInfoByBase64=function(t){var e=this.findInfoByBase64(t);return e||this.registerImageData(new s(t,this.getNextActualId()))},t.prototype.createUnloadedInfoByShapeImageInfo=function(t){var e=t.exportUrl;return o.Base64Utils.checkPrependDataUrl(e)?this.createUnloadedInfoByBase64(e):this.createUnloadedInfoByUrl(e)},t.prototype.registerImageData=function(t){var e=this.cache[t.actualId];return e||(e=t),void 0!==t.actualId&&(this.cache[t.actualId]=e),0!==t.actualId&&(this.nonLoadedImages.push(t),1===this.nonLoadedImages.length&&this.raiseReadyStateChanged(!1)),e},t.prototype.loadAllImages=function(t){var e=this;this.cache.forEach((function(n){e.emptyImageId===n.actualId||n.isLoaded||n.isLoading||t.load(n)}))},t.prototype.finalizeLoading=function(t,e){t.finalizeLoading(),t.isLoaded=!0;var n=this.nonLoadedImages.indexOf(t);if(this.nonLoadedImages.splice(n,1),0===this.nonLoadedImages.length&&this.raiseReadyStateChanged(!0),!t.referenceInfo&&e.base64){var i=o.Base64Utils.normalizeToDataUrl(e.base64,\"image/png\");this.cache.forEach((function(e){var n=e.base64===i&&e!==t&&e.isLoaded;return n&&(t.referenceInfo=e.referenceInfo?e.referenceInfo:e),n})),t.base64=i}},t.prototype.hasNonLoadedImages=function(){return 0!==this.nonLoadedImages.length},t.prototype.getNextActualId=function(){return this.lastActualId++},t.prototype.findInfoByBase64=function(t){return t=o.Base64Utils.normalizeToDataUrl(t,\"image/png\"),this.findInfoCore((function(e){return e.base64===t}))},t.prototype.findInfoByUrl=function(t){return this.findInfoCore((function(e){return e.imageUrl===t}))},t.prototype.findInfoCore=function(t){var e;return this.cache.forEach((function(n){t(n)&&(e=n)})),e},t.prototype.raiseReadyStateChanged=function(t){this.onReadyStateChanged.raise1((function(e){return e.notifyImageCacheReadyStateChanged(t)}))},t.instance=new t,t}();e.ImageCache=a},6617:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImageInfo=void 0;var o=n(6477),i=function(){function t(t){this.url=void 0,this.base64=void 0,t&&(o.Base64Utils.checkPrependDataUrl(t)?this.base64=t:this.url=t),this.loadFailed=!1}return t.prototype.clone=function(){var e=new t;return e.url=this.url,e.base64=this.base64,e},Object.defineProperty(t.prototype,\"isEmpty\",{get:function(){return void 0===this.url&&void 0===this.base64},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"unableToLoad\",{get:function(){return this.loadFailed},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"renderUrl\",{get:function(){return this.base64||\"\"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"exportUrl\",{get:function(){return this.base64?this.base64:this.url},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"actualUrl\",{get:function(){return this.url?this.url:this.base64},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"transparentOnePixelImage\",{get:function(){return this.transparentWhiteImage1_1},enumerable:!1,configurable:!0}),t.prototype.loadBase64Content=function(t){this.base64=o.Base64Utils.normalizeToDataUrl(t,\"image/png\")},t.prototype.setUnableToLoadFlag=function(){this.loadFailed=!0},t.transparentWhiteImage1_1=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAANSURBVBhXY/j///9/AAn7A/0FQ0XKAAAAAElFTkSuQmCC\",t}();e.ImageInfo=i},590:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImageLoader=void 0;var o=n(7176),i=function(){function t(t){this.loadedCallback=t}return t.prototype.load=function(t){t.isLoaded?this.loadedCallback(t):t.isLoading||this.loadInner(t)},t.prototype.loadInner=function(t){var e=this;return t.imageUrl?this.loadPictureByUrl(t,(function(){return e.finalizeLoading(t,t)})):t.base64&&this.loadPictureByBase64(t,(function(){return e.finalizeLoading(t,t)})),t},t.prototype.finalizeLoading=function(t,e){e||(e=o.ImageCache.instance.getImageData(t.actualId)),e.isLoaded||o.ImageCache.instance.finalizeLoading(e,t),this.loadedCallback(e)},t.prototype.loadPictureByBase64=function(t,e){var n=new Image;n.onload=function(){e(t)},n.src=t.base64},t.prototype.loadPictureByUrl=function(t,e){var n=this,o=new XMLHttpRequest;try{o.onload=function(){var i=new FileReader;i.onloadend=function(){t.base64=i.result,n.loadPictureByBase64(t,(function(t){return e(t)}))},i.readAsDataURL(o.response)},o.onerror=function(){return e(t)},o.onloadend=function(){404===o.status&&e(t)},o.open(\"GET\",t.imageUrl,!0),o.responseType=\"blob\",t.startLoading(),o.send()}catch(t){}},t}();e.ImageLoader=i},5941:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BPMNNode=e.BPMNImporter=void 0;var r=n(213),s=n(2259),a=n(8217),c=n(6572),u=function(){function t(t){this.doc=c.ImportUtils.createDocument(t),this.graph=new r.Graph([],[])}return t.prototype.import=function(){for(var t=void 0,e=0;t=this.doc.children[e];e++)\"DEFINITIONS\"===t.nodeName.toUpperCase()&&this.onDefinitionsElement(t);return this.validate(),this.graph},t.prototype.validate=function(){var t={};this.graph.nodes.forEach((function(e){return t[e]=!0}));for(var e=0,n=void 0;n=this.graph.edges[e];e++)t[n.from]&&t[n.to]||(this.graph.edges.splice(e,1),e--)},t.prototype.onDefinitionsElement=function(t){this.dataSourceKey=t.getAttribute(\"id\");for(var e=void 0,n=0;e=t.children[n];n++)\"PROCESS\"===e.nodeName.toUpperCase()&&this.onProcessElement(e)},t.prototype.onProcessElement=function(t){for(var e=void 0,n=0;e=t.children[n];n++)switch(e.nodeName.toUpperCase()){case\"STARTEVENT\":this.onStartEventElement(e);break;case\"SEQUENCEFLOW\":this.onSequenceFlowElement(e);break;case\"SCRIPTTASK\":this.onScriptTaskElement(e);break;case\"USERTASK\":this.onUserTaskElement(e);break;case\"SERVICETASK\":this.onServiceTaskElement(e);break;case\"SENDTASK\":this.onSendTaskElement(e);break;case\"EXCLUSIVEGATEWAY\":this.onExclusiveGateway(e);break;case\"ENDEVENT\":this.onEndEventGateway(e)}},t.prototype.onStartEventElement=function(t){var e=this.createNode(t);e.type=s.ShapeTypes.Ellipse,e.text=t.getAttribute(\"name\"),this.graph.addNode(e)},t.prototype.onSequenceFlowElement=function(t){var e=t.getAttribute(\"sourceRef\"),n=t.getAttribute(\"targetRef\"),o=this.createEdge(t,e,n);t.hasAttribute(\"name\")&&(o.text=t.getAttribute(\"name\")),this.graph.addEdge(o)},t.prototype.onScriptTaskElement=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),this.graph.addNode(e)},t.prototype.onUserTaskElement=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),this.graph.addNode(e)},t.prototype.onServiceTaskElement=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),this.graph.addNode(e)},t.prototype.onSendTaskElement=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),this.graph.addNode(e)},t.prototype.onExclusiveGateway=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),e.type=s.ShapeTypes.Decision,this.graph.addNode(e)},t.prototype.onEndEventGateway=function(t){var e=this.createNode(t);e.text=t.getAttribute(\"name\"),e.type=s.ShapeTypes.Ellipse,this.graph.addNode(e)},t.prototype.createNode=function(t){return new h(this.dataSourceKey,t.getAttribute(\"id\"))},t.prototype.createEdge=function(t,e,n){return new p(this.dataSourceKey,t.getAttribute(\"id\"),e,n)},t}();e.BPMNImporter=u;var h=function(t,e){this.sourceKey=t,this.key=e,this.type=s.ShapeTypes.Rectangle};e.BPMNNode=h;var p=function(t){function e(e,n,o,i){var r=t.call(this,n,o,i)||this;return r.sourceKey=e,r}return i(e,t),e}(a.Edge)},5885:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Exporter=void 0;var o=n(5503),i=n(7959),r=n(8675),s=function(){function t(){}return t.prototype.export=function(t){var e={page:{},connectors:[],shapes:[]};return e.page={width:t.size.width,height:t.size.height,pageColor:t.pageColor,pageWidth:t.pageSize.width,pageHeight:t.pageSize.height,pageLandscape:t.pageLandscape},this.exportItemsCore(t.items,e),JSON.stringify(e)},t.prototype.exportItems=function(t){var e={connectors:[],shapes:[]};return this.exportItemsCore(t,e),JSON.stringify(e)},t.prototype.exportItemsCore=function(t,e){var n=this;t.forEach((function(t){if(t instanceof o.Shape)e.shapes.push(n.exportShape(t));else if(t instanceof i.Connector){var r=n.exportConnector(t);t.beginItem&&(r.beginItemKey=t.beginItem.key,r.beginConnectionPointIndex=t.beginConnectionPointIndex),t.endItem&&(r.endItemKey=t.endItem.key,r.endConnectionPointIndex=t.endConnectionPointIndex),e.connectors.push(r)}}))},t.prototype.exportItem=function(t){return{key:t.key,dataKey:t.dataKey,customData:r.ObjectUtils.cloneObject(t.customData),locked:t.locked,zIndex:t.zIndex}},t.prototype.exportShape=function(t){var e=this.exportItem(t);e.type=t.description.key,e.text=t.text,t.image.isEmpty||(e.imageUrl=t.image.exportUrl),e.x=t.position.x,e.y=t.position.y,e.width=t.size.width,e.height=t.size.height;var n=t.parameters.toObject();n&&(e.parameters=n);var o=t.style.toObject();o&&(e.style=o);var i=t.styleText.toObject();return i&&(e.styleText=i),t.children.length&&(e.childKeys=t.children.map((function(t){return t.key}))),t.expanded||(e.expanded=!1),t.expandedSize&&(e.expandedWidth=t.expandedSize.width,e.expandedHeight=t.expandedSize.height),e},t.prototype.exportConnector=function(t){var e=this.exportItem(t);e.points=t.points.map((function(t){return{x:t.x,y:t.y}}));var n=t.texts.toObject();n&&(e.texts=n);var o=t.properties.toObject();o&&(e.properties=o);var i=t.style.toObject();i&&(e.style=i);var r=t.styleText.toObject();r&&(e.styleText=r);var s=t.tryCreateRenderPointsContext();return s&&(e.context=s.toObject()),e},t.prototype.exportSvg=function(t,e,n,o){n.exportSvgImage(t,e,o)},t.prototype.exportPng=function(t,e,n,o,i){n.exportPngImage(t,e,o,i)},t.prototype.exportJpg=function(t,e,n,o,i){n.exportJpgImage(t,e,o,i)},t}();e.Exporter=s},6572:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImportUtils=void 0;var n=function(){function t(){}return t.parseJSON=function(t){if(!t||\"\"===t)return{};try{return JSON.parse(t)}catch(t){return{}}},t.createDocument=function(t){return(new DOMParser).parseFromString(t,\"application/xml\")},t}();e.ImportUtils=n},2406:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Importer=void 0;var r=n(5503),s=n(8675),a=n(6353),c=n(8900),u=n(8397),h=n(7959),p=n(6617),l=n(8577),d=n(6572),f=n(13),y=n(1510),g=function(t){function e(e,n){var o=t.call(this,e)||this;return o.obj=d.ImportUtils.parseJSON(n),o}return i(e,t),e.prototype.getObject=function(){return this.obj},e.prototype.getPageObject=function(t){return t.page},e.prototype.getShapeObjects=function(t){return t.shapes},e.prototype.getConnectorObjects=function(t){return t.connectors},e.prototype.importPageSettings=function(t,e){e&&(this.assert(e.width,\"number\"),this.assert(e.height,\"number\"),\"number\"==typeof e.width&&(t.size.width=e.width),\"number\"==typeof e.height&&(t.size.height=e.height),\"number\"==typeof e.pageColor?t.pageColor=e.pageColor:\"string\"==typeof e.pageColor&&(t.pageColor=f.ColorUtils.fromString(e.pageColor)),\"number\"==typeof e.pageWidth&&(t.pageSize.width=e.pageWidth),\"number\"==typeof e.pageHeight&&(t.pageSize.height=e.pageHeight),\"boolean\"==typeof e.pageLandscape&&(t.pageLandscape=e.pageLandscape))},e.prototype.importShape=function(t){this.assert(t.key,\"string\"),this.assert(t.x,\"number\"),this.assert(t.y,\"number\"),this.assert(t.type,\"string\");var e=t.type,n=this.shapeDescriptionManager.get(e),o=new c.Point(t.x,t.y),i=new r.Shape(n||u.ShapeDescriptionManager.default,o);return i.key=t.key,\"string\"!=typeof t.dataKey&&\"number\"!=typeof t.dataKey||(i.dataKey=t.dataKey),\"object\"==typeof t.customData&&(i.customData=s.ObjectUtils.cloneObject(t.customData)),\"boolean\"==typeof t.locked&&(i.locked=t.locked),\"number\"==typeof t.width&&(i.size.width=t.width),\"number\"==typeof t.height&&(i.size.height=t.height),\"string\"==typeof t.text&&(i.text=t.text),\"string\"==typeof t.imageUrl&&(i.image=new p.ImageInfo(t.imageUrl)),t.parameters&&(i.parameters.fromObject(t.parameters),i.description.normalizeParameters(i,i.parameters)),t.style&&i.style.fromObject(t.style),t.styleText&&i.styleText.fromObject(t.styleText),\"number\"==typeof t.zIndex&&(i.zIndex=t.zIndex),Array.isArray(t.childKeys)&&(i.childKeys=t.childKeys.slice()),\"boolean\"==typeof t.expanded&&(i.expanded=t.expanded),\"number\"==typeof t.expandedWidth&&\"number\"==typeof t.expandedHeight&&(i.expandedSize=new a.Size(t.expandedWidth,t.expandedHeight)),i},e.prototype.importShapeChildren=function(t,e){return[]},e.prototype.importConnector=function(t){var e=this;if(this.assert(t.key,\"string\"),!Array.isArray(t.points))throw Error(\"Invalid Format\");var n=t.points.map((function(t){return e.assert(t.x,\"number\"),e.assert(t.y,\"number\"),new c.Point(t.x,t.y)})),o=new h.Connector(n);return o.key=t.key,\"string\"!=typeof t.dataKey&&\"number\"!=typeof t.dataKey||(o.dataKey=t.dataKey),\"object\"==typeof t.customData&&(o.customData=s.ObjectUtils.cloneObject(t.customData)),\"boolean\"==typeof t.locked&&(o.locked=t.locked),o.endConnectionPointIndex=\"number\"==typeof t.endConnectionPointIndex?t.endConnectionPointIndex:-1,o.beginConnectionPointIndex=\"number\"==typeof t.beginConnectionPointIndex?t.beginConnectionPointIndex:-1,void 0!==t.endItemKey&&this.assert(t.endItemKey,\"string\"),void 0!==t.beginItemKey&&this.assert(t.beginItemKey,\"string\"),o.endItemKey=t.endItemKey,o.beginItemKey=t.beginItemKey,t.texts&&o.texts.fromObject(t.texts),t.properties&&o.properties.fromObject(t.properties),t.style&&o.style.fromObject(t.style),t.styleText&&o.styleText.fromObject(t.styleText),\"number\"==typeof t.zIndex&&(o.zIndex=t.zIndex),void 0!==t.context&&o.replaceRenderPoints(y.ConnectorRenderPointsContext.fromObject(t.context),!1),o},e}(l.ImporterBase);e.Importer=g},8577:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImporterBase=void 0;var o=n(6613),i=n(5503),r=function(){function t(t){this.shapeDescriptionManager=t}return t.prototype.import=function(){var t=new o.DiagramModel,e=this.getObject();this.importPageSettings(t,this.getPageObject(e));for(var n=this.importShapes(this.getShapeObjects(e)),i=0;i<n.length;i++){var r=n[i];if(t.findItem(r.key))throw Error(\"Item key is duplicated\");t.pushItem(r)}var s=this.importConnectors(this.getConnectorObjects(e));for(i=0;i<s.length;i++){var a=s[i];if(a.endItem=t.findItem(a.endItemKey)||void 0,delete a.endItemKey,a.beginItem=t.findItem(a.beginItemKey)||void 0,delete a.beginItemKey,t.findItem(a.key))throw Error(\"Item key is duplicated\");t.pushItem(a),this.updateConnections(a)}return this.updateChildren(t.items,(function(e){return t.findItem(e)})),t},t.prototype.importItems=function(t){for(var e,n=[],o=this.getObject(),i={},r=this.importShapes(this.getShapeObjects(o)),s=0;s<r.length;s++){var a=r[s],c=a.key;e=t.getNextKey(),a.key=e,i[c]=a,void 0!==a.dataKey&&(a.dataKey=void 0),n.push(a)}var u=this.importConnectors(this.getConnectorObjects(o));for(s=0;s<u.length;s++){var h=u[s];c=h.key;e=t.getNextKey(),h.key=e,i[c]=h,void 0!==h.dataKey&&(h.dataKey=void 0);var p=h.endItemKey;h.endItem=i[p],delete h.endItemKey;var l=h.beginItemKey;h.beginItem=i[l],delete h.beginItemKey,n.push(h),this.updateConnections(h)}return this.updateChildren(n,(function(t){return i[t]})),n},t.prototype.importItemsData=function(t){for(var e=this.getObject(),n=this.importShapes(this.getShapeObjects(e)),o={},i=0;i<n.length;i++){var r=n[i],s=void 0;void 0!==r.dataKey&&(s=t.findShapeByDataKey(r.dataKey)),s&&(s.dataKey=r.dataKey,o[r.key]=r.dataKey,s.locked=r.locked,s.position=r.position.clone(),s.expanded=r.expanded,r.expandedSize&&(s.expandedSize=r.expandedSize.clone()),s.size=r.size.clone(),s.parameters=r.parameters.clone(),s.style=r.style.clone(),s.styleText=r.styleText.clone(),s.zIndex=r.zIndex,s.text=r.text,s.description=r.description,s.image=r.image.clone())}var a=this.importConnectors(this.getConnectorObjects(e));for(i=0;i<a.length;i++){var c=a[i],u=void 0;void 0!==c.dataKey&&(u=t.findConnectorByDataKey(c.dataKey)),u||(u=t.findConnectorByBeginEndDataKeys(o[c.beginItemKey],o[c.endItemKey])),u&&(u.dataKey=c.dataKey,u.locked=c.locked,u.points=c.points.slice(),u.properties=c.properties.clone(),u.style=c.style.clone(),u.endConnectionPointIndex=c.endConnectionPointIndex,u.beginConnectionPointIndex=c.beginConnectionPointIndex,u.texts=c.texts.clone(),u.styleText=c.styleText.clone(),u.zIndex=c.zIndex)}},t.prototype.importShapes=function(t){var e=[];if(!t)return e;if(!Array.isArray(t))throw Error(\"Invalid Format\");for(var n=0;n<t.length;n++){var o=t[n],i=this.importShape(o);e.push(i),e=e.concat(this.importShapeChildren(o,i))}return e},t.prototype.importConnectors=function(t){var e=[];if(!t)return e;if(!Array.isArray(t))throw Error(\"Invalid Format\");for(var n=0;n<t.length;n++){var o=t[n];e.push(this.importConnector(o))}return e},t.prototype.updateChildren=function(t,e){t.forEach((function(t){t instanceof i.Shape&&t.childKeys&&(t.childKeys.forEach((function(n){var o=e(n);o&&(-1===t.children.indexOf(o)&&t.children.push(o),o.container=t)})),delete t.childKeys)}))},t.prototype.updateConnections=function(t){t.endItem&&(t.endItem instanceof i.Shape?(t.endItem.attachedConnectors.push(t),t.points[t.points.length-1]=t.endItem.getConnectionPointPosition(t.endConnectionPointIndex,t.points[t.points.length-2])):(t.endItem=void 0,t.endConnectionPointIndex=-1)),t.beginItem&&(t.beginItem instanceof i.Shape?(t.beginItem.attachedConnectors.push(t),t.points[0]=t.beginItem.getConnectionPointPosition(t.beginConnectionPointIndex,t.points[1])):(t.beginItem=void 0,t.beginConnectionPointIndex=-1))},t.prototype.assert=function(t,e){if(void 0===t)throw Error(\"Invalid Format\");if(void 0!==e&&typeof t!==e)throw Error(\"Invalid Format\")},t}();e.ImporterBase=r},780:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.XmlImporter=void 0;var r=n(7959),s=n(5503),a=n(8577),c=n(2259),u=n(8397),h=n(6353),p=n(8900),l=n(6572),d=n(13),f=n(9291),y=function(t){function e(e,n){var o=t.call(this,e)||this;return o.doc=l.ImportUtils.createDocument(n),o}return i(e,t),e.prototype.getObject=function(){return this.doc},e.prototype.getPageObject=function(t){var e=this.doc.querySelectorAll(\"[ItemKind='DiagramRoot']\");return e&&e[0]},e.prototype.getShapeObjects=function(t){var e=[];return this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramShape']\").forEach((function(t){e.push(t)})),this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramContainer']\").forEach((function(t){e.push(t)})),e},e.prototype.getConnectorObjects=function(t){var e=[];return this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramConnector']\").forEach((function(t){e.push(t)})),e},e.prototype.importPageSettings=function(t,e){if(e){var n=e.getAttribute(\"PageSize\"),o=this.getSize(n);o&&(t.size=o.clone(),t.pageSize=o.clone())}},e.prototype.importShape=function(t){var e=t.getAttribute(\"Position\"),n=this.getPoint(e),o=t.getAttribute(\"Shape\"),i=this.getShapeType(o),r=this.shapeDescriptionManager.get(i),a=new s.Shape(r||u.ShapeDescriptionManager.default,n);a.key=this.getItemKey(t);var c=t.getAttribute(\"Size\"),h=this.getSize(c);h&&(a.size=h);var p=t.getAttribute(\"Content\");if(\"string\"==typeof p)a.text=p;else{var l=t.getAttribute(\"Header\");\"string\"==typeof l&&(a.text=l)}return this.importStyle(t,a),a},e.prototype.importShapeChildren=function(t,e){var n=[];t.setAttribute(\"dxDiagram\",\"\"),this.doc.querySelectorAll(\"[dxDiagram] > Children > [ItemKind='DiagramShape']\").forEach((function(t){n.push(t)})),this.doc.querySelectorAll(\"[dxDiagram] > Children > [ItemKind='DiagramContainer']\").forEach((function(t){n.push(t)})),t.removeAttribute(\"dxDiagram\");var o=[];if(!n)return o;for(var i=0;i<n.length;i++){var r=n[i],s=this.importShape(r);s.key=e.key+\",\"+s.key;var a=e.clientRectangle;s.position=s.position.clone().offset(a.x,a.y),e.childKeys||(e.childKeys=[]),e.childKeys.push(s.key),o.push(s),o=o.concat(this.importShapeChildren(r,s))}return o},e.prototype.importConnector=function(t){var e=this,n=[],o=t.getAttribute(\"BeginPoint\"),i=this.getPoint(o);i&&n.push(i),t.getAttribute(\"Points\").split(\" \").forEach((function(t){var o=e.getPoint(t);o&&n.push(o)}));var s=t.getAttribute(\"EndPoint\"),a=this.getPoint(s);a&&n.push(a);var c=new r.Connector(n);c.key=this.getItemKey(t);var u=t.getAttribute(\"EndItemPointIndex\"),h=parseInt(u);c.endConnectionPointIndex=isNaN(h)?-1:h;var p=t.getAttribute(\"BeginItemPointIndex\"),l=parseInt(p);c.beginConnectionPointIndex=isNaN(l)?-1:l;var d=t.getAttribute(\"EndItem\");void 0!==d&&this.assert(d,\"string\");var f=t.getAttribute(\"BeginItem\");void 0!==f&&this.assert(f,\"string\"),c.endItemKey=d,c.beginItemKey=f;var y=t.getAttribute(\"Content\");return\"string\"==typeof y&&c.setText(y),this.importStyle(t,c),c},e.prototype.importStyle=function(t,e){var n=t.getAttribute(\"Background\");\"string\"==typeof n&&(e.style.fill=this.getColor(n));var o=t.getAttribute(\"Stroke\");\"string\"==typeof o&&(e.style.stroke=this.getColor(o));var i=t.getAttribute(\"Foreground\");\"string\"==typeof i&&(e.styleText.fill=this.getColor(i));var r=t.getAttribute(\"FontFamily\");\"string\"==typeof r&&(e.styleText[\"font-family\"]=r);var s=t.getAttribute(\"FontSize\");\"string\"==typeof s&&(e.styleText[\"font-size\"]=s),\"Bold\"===t.getAttribute(\"FontWeight\")&&(e.styleText[\"font-weight\"]=\"bold\"),\"Italic\"===t.getAttribute(\"FontStyle\")&&(e.styleText[\"font-style\"]=\"italic\"),\"Underline\"===t.getAttribute(\"TextDecorations\")&&(e.styleText[\"text-decoration\"]=\"underline\");var a=t.getAttribute(\"TextAlignment\");\"Left\"===a?e.styleText[\"text-anchor\"]=\"start\":\"Right\"===a?e.styleText[\"text-anchor\"]=\"end\":\"Center\"===a&&(e.styleText[\"text-anchor\"]=\"middle\")},e.prototype.getShapeType=function(t){return e.shapeTypes[t]?e.shapeTypes[t]:t&&t.toLowerCase().indexOf(\"container\")>-1?c.ShapeTypes.VerticalContainer:c.ShapeTypes.Rectangle},e.prototype.getItemKey=function(t){return(parseInt(t.tagName.replace(\"Item\",\"\"))-1).toString()},e.prototype.getNumbers=function(t){var e=t.split(\",\");return e&&e.length?e.map((function(t){return+t})):[]},e.prototype.getSize=function(t){if(t){var e=this.getNumbers(t);if(e.length>=2)return this.assert(e[0],\"number\"),this.assert(e[1],\"number\"),new h.Size(f.UnitConverter.pixelsToTwips(e[0]),f.UnitConverter.pixelsToTwips(e[1]))}},e.prototype.getPoint=function(t){if(t){var e=this.getNumbers(t);if(e.length>=2)return this.assert(e[0],\"number\"),this.assert(e[1],\"number\"),new p.Point(f.UnitConverter.pixelsToTwips(e[0]),f.UnitConverter.pixelsToTwips(e[1]))}},e.prototype.getColor=function(t){t=\"#\"===t.charAt(0)?t.substr(1):t;var e=parseInt(t,16);return isNaN(e)?void 0:d.ColorUtils.colorToHash(e)},e.shapeTypes={\"BasicShapes.Rectangle\":c.ShapeTypes.Rectangle,\"BasicShapes.Ellipse\":c.ShapeTypes.Ellipse,\"BasicShapes.Triangle\":c.ShapeTypes.Triangle,\"BasicShapes.Pentagon\":c.ShapeTypes.Pentagon,\"BasicShapes.Hexagon\":c.ShapeTypes.Hexagon,\"BasicShapes.Octagon\":c.ShapeTypes.Octagon,\"BasicShapes.Diamond\":c.ShapeTypes.Diamond,\"BasicShapes.Cross\":c.ShapeTypes.Cross,\"BasicShapes.Star5\":c.ShapeTypes.Star,\"BasicFlowchartShapes.StartEnd\":c.ShapeTypes.Terminator,\"BasicFlowchartShapes.Data\":c.ShapeTypes.Data,\"BasicFlowchartShapes.Database\":c.ShapeTypes.Database,\"BasicFlowchartShapes.ExternalData\":c.ShapeTypes.StoredData,\"BasicFlowchartShapes.Process\":c.ShapeTypes.Process,\"BasicFlowchartShapes.Decision\":c.ShapeTypes.Decision,\"BasicFlowchartShapes.Subprocess\":c.ShapeTypes.PredefinedProcess,\"BasicFlowchartShapes.Document\":c.ShapeTypes.Document,\"BasicFlowchartShapes.Custom1\":c.ShapeTypes.ManualInput,\"BasicFlowchartShapes.Custom2\":c.ShapeTypes.ManualOperation,\"ArrowShapes.SimpleArrow\":c.ShapeTypes.ArrowLeft,\"ArrowShapes.SimpleDoubleArrow\":c.ShapeTypes.ArrowLeftRight},e}(a.ImporterBase);e.XmlImporter=y},5227:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.LayoutBuilder=void 0;var o=n(8710),i=function(){function t(t,e){this.settings=t,this.graph=e}return t.prototype.getBreadthNodeSizeCore=function(t,e){var n=this.settings.orientation===o.DataLayoutOrientation.Vertical?t.size.width:t.size.height;return e||(n+=this.settings.orientation===o.DataLayoutOrientation.Vertical?t.margin.left+t.margin.right:t.margin.top+t.margin.bottom),n},t.prototype.getDepthNodeSizeCore=function(t){return this.settings.orientation===o.DataLayoutOrientation.Horizontal?t.size.width+t.margin.left+t.margin.right:t.size.height+t.margin.top+t.margin.bottom},t.prototype.chooseDirectionValue=function(t,e){return this.settings.direction===o.LogicalDirectionKind.Forward?t:e},t.prototype.getDirectionValue=function(t){return this.settings.direction===o.LogicalDirectionKind.Forward?t:-t},t.prototype.getComponentOffset=function(t){var e=t.getRectangle(!0);return(this.settings.orientation===o.DataLayoutOrientation.Vertical?e.width:e.height)+this.settings.componentSpacing},t.prototype.setComponentOffset=function(t,e){return this.settings.orientation===o.DataLayoutOrientation.Vertical?t.offsetNodes(e):t.offsetNodes(0,e)},t}();e.LayoutBuilder=i},1256:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EdgeOnLayer=e.NodeOnLayer=e.SugiyamaNodesOrderer=e.SugiyamaLayerDistributor=e.SugiyamaLayoutBuilder=void 0;var r=n(5227),s=n(213),a=n(617),c=n(8217),u=n(701),h=n(2400),p=n(8900),l=n(8710),d=n(8119),f=n(7959),y=n(7309),g=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.build=function(){var t=this,e=0,n=new d.GraphLayout,o=new v;return this.graph.getConnectedComponents().forEach((function(i){var r=y.CycleRemover.removeCycles(i),s=m.getLayers(r.graph),a=o.orderNodes(r.graph,s),c=Object.keys(r.removedEdges).map((function(t){return i.getEdge(t)})),u=o.assignAbsCoordinates(a),h=t.createInfoGraphLayout(u,r.reversedEdges,c);n.extend(t.setComponentOffset(h,e)),e+=t.getComponentOffset(h)})),n},e.prototype.createInfoGraphLayout=function(t,e,n){for(var o=this,i=new p.Point(0,0),r=t.items,s=new u.HashSet(r.map((function(t){return t.layer})).sort((function(t,e){return t-e}))),a=this.getAbsOffsetInfo(t.items),c={},h=0,f=Number.MAX_SAFE_INTEGER||Number.MAX_VALUE,y=Number.MIN_SAFE_INTEGER||Number.MAX_VALUE,g=function(t){var e=s.item(t),n=0;r.filter((function(t){return t.layer===e})).sort((function(t,e){return t.position-e.position})).forEach((function(t){var e=o.getDepthNodeSize(t),r=o.chooseDirectionValue(0,e),s=o.getAbsPosition(t.position,o.getBreadthNodeSize(t),a);i=o.setBreadth(i,s);var u=o.setDepthOffset(i,-r);if(c[t.key]=u,!t.isDummy){var h=o.settings.orientation===l.DataLayoutOrientation.Horizontal?u.y:u.x;f=Math.min(f,h),y=Math.max(y,h+o.getBreadthNodeSize(t)),n=Math.max(n,o.getDepthNodeSize(t))}})),h+=n,i=m.setBreadth(i,0),i=m.setDepthOffset(i,m.getDirectionValue(n+m.settings.layerSpacing))},m=this,v=0;v<s.length;v++)g(v);h+=(s.length-1)*this.settings.layerSpacing;var P=new d.GraphLayout;return this.createNodesLayout(t,P,f,h,c),this.createEdgesLayout(t,P,e,n),P},e.prototype.createNodesLayout=function(t,e,n,o,i){var r=this,s=this.settings.orientation===l.DataLayoutOrientation.Vertical?new p.Point(-n,this.chooseDirectionValue(0,o)):new p.Point(this.chooseDirectionValue(0,o),-n);t.items.forEach((function(t){if(!t.isDummy){var n=r.graph.getNode(t.key);e.addNode(new a.NodeLayout(n,i[t.key].clone().offset(s.x,s.y)))}}))},e.prototype.createEdgesLayout=function(t,e,n,o){var i=this.getDirectEdgeLayout(),r=this.getDiffLevelEdgeLayout(!0),s=this.getDiffLevelEdgeLayout(!1),c=this.getSameLevelEdgeLayout(!0),u=this.getSameLevelEdgeLayout(!1),h={};t.edges.filter((function(t){return!t.isDummy})).concat(o.map((function(t){return new S(t.key,!1,t.from,t.to)}))).sort((function(e,n){return t.getNode(e.originFrom).layer-t.getNode(n.originFrom).layer||t.getNode(e.to).layer-t.getNode(n.to).layer})).forEach((function(o){var p=n[o.key],l=t.getNode(p?o.to:o.originFrom),d=t.getNode(p?o.originFrom:o.to);if(d.layer-l.layer==1)e.addEdge(new a.EdgeLayout(o.key,i.from,i.to));else{var y=[];if(d.position-l.position>=1)y.push(r),y.push({from:i.from,to:r.to}),y.push({from:r.from,to:i.to});else if(d.position-l.position<=-1)y.push(s),y.push({from:i.from,to:s.to}),y.push({from:s.from,to:i.to});else{var g=l.position===d.position&&0===d.position?[c,u]:[u,c];g.forEach((function(t){return y.push(t)})),g.forEach((function(t){y.push({from:t.from,to:i.to}),y.push({from:i.from,to:t.to})}))}y.push(i);for(var m=0,v=void 0;v=y[m];m++){var P=l.key+\"_\"+v.from,C=d.key+\"_\"+v.to;if(h[P]!==f.ConnectorPosition.End&&h[C]!==f.ConnectorPosition.Begin){e.addEdge(new a.EdgeLayout(o.key,v.from,v.to)),h[P]=f.ConnectorPosition.Begin,h[C]=f.ConnectorPosition.End;break}}}}))},e.prototype.getDirectEdgeLayout=function(){return this.settings.orientation===l.DataLayoutOrientation.Horizontal?this.settings.direction===l.LogicalDirectionKind.Forward?{from:1,to:3}:{from:3,to:1}:this.settings.direction===l.LogicalDirectionKind.Forward?{from:2,to:0}:{from:0,to:2}},e.prototype.getDiffLevelEdgeLayout=function(t){return this.settings.orientation===l.DataLayoutOrientation.Horizontal?t?{from:2,to:0}:{from:0,to:2}:t?{from:3,to:1}:{from:1,to:3}},e.prototype.getSameLevelEdgeLayout=function(t){return this.settings.orientation===l.DataLayoutOrientation.Horizontal?t?{from:0,to:0}:{from:2,to:2}:t?{from:3,to:3}:{from:1,to:1}},e.prototype.getAbsOffsetInfo=function(t){var e=this,n={},o=function(t,o){void 0===n[o]&&(n[o]=e.getBreadthNodeSize(t)),n[o]=Math.max(n[o],e.getBreadthNodeSize(t))};t.forEach((function(t){var e=x(t.position);o(t,e),n[e]%1!=0&&o(t,e+1)}));var i={},r=0;return Object.keys(n).sort((function(t,e){return parseFloat(t)-parseFloat(e)})).forEach((function(t){i[t]={leftOffset:r,width:n[t]},r+=n[t]+e.settings.columnSpacing})),i},e.prototype.setBreadth=function(t,e){return this.settings.orientation===l.DataLayoutOrientation.Vertical?new p.Point(e,t.y):new p.Point(t.x,e)},e.prototype.setDepthOffset=function(t,e){return this.settings.orientation===l.DataLayoutOrientation.Horizontal?new p.Point(t.x+e,t.y):new p.Point(t.x,t.y+e)},e.prototype.getAbsPosition=function(t,e,n){var o=x(t),i=n[o].leftOffset,r=n[o].width;return t%1==0?i+(r-e)/2:i+r-(e-this.settings.columnSpacing)/2},e.prototype.getBreadthNodeSize=function(t){return t.isDummy?0:this.getBreadthNodeSizeCore(this.graph.getNode(t.key))},e.prototype.getDepthNodeSize=function(t){return t.isDummy?0:this.getDepthNodeSizeCore(this.graph.getNode(t.key))},e}(r.LayoutBuilder);e.SugiyamaLayoutBuilder=g;var m=function(){function t(){}return t.getLayers=function(t){var e=this.getFeasibleTree(t);return this.calcNodesLayers(e)},t.getFeasibleTree=function(t){var e=this.initLayerAssignment(t);return t.getSpanningGraph(t.nodes[0],c.ConnectionMode.OutgoingAndIncoming,(function(t){return e[t.to]-e[t.from]}))},t.initLayerAssignment=function(t){for(var e={},n=0,o={},i=t.nodes.filter((function(e){return!t.getAdjacentEdges(e,c.ConnectionMode.Incoming).length})),r=function(){i.forEach((function(t){e[t]=n,o[t]=!0})),Object.keys(o).forEach((function(n){0===t.getAdjacentEdges(n,c.ConnectionMode.Outgoing).filter((function(t){return void 0===e[t.to]})).length&&delete o[n]}));var r={};Object.keys(o).forEach((function(n){t.getAdjacentEdges(n,c.ConnectionMode.Outgoing).map((function(t){return t.to})).filter((function(n){return void 0===e[n]&&t.getAdjacentEdges(n,c.ConnectionMode.Incoming).reduce((function(t,n){return t&&void 0!==e[n.from]}),!0)})).forEach((function(t){return r[t]=!0}))})),i=Object.keys(r),n++};i.length;)r();return e},t.calcNodesLayers=function(t){var e={},n=Number.MAX_SAFE_INTEGER||Number.MAX_VALUE,o=0,i=t.createIterator(c.ConnectionMode.OutgoingAndIncoming);for(var r in i.visitEachEdgeOnce=!1,i.onNode=function(t){e[t.key]=o,n=Math.min(n,o)},i.skipNode=function(t){return void 0!==e[t.key]},i.skipEdge=function(t){return void 0!==e[t.from]&&void 0!==e[t.to]},i.onEdge=function(t,n){o=n?e[t.from]+1:e[t.to]-1},i.iterate(t.nodes[0]),e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]-=n);return e},t}();e.SugiyamaLayerDistributor=m;var v=function(){function t(){this.idCounter=-1e4}return t.prototype.orderNodes=function(t,e){for(var n=1,o=this.initGraphInfo(t,e),i=o.items,r=this.initOrder(i),s=this.getNodeToPositionMap(i),a=this.getCrossCount(r,o),c=!0;n<14&&0!==a;){r=this.getNodesOrder(r,o,c);var u=this.getCrossCount(r,o);u<a&&(s=this.getNodeToPositionMap(o.items),a=u),c=!c,n++}return o.items.forEach((function(t){return t.position=s[t.key]})),o},t.prototype.getNodesOrder=function(t,e,n){var o=this,i={},r=function(r){if(!Object.prototype.hasOwnProperty.call(t,r))return\"continue\";var a={},c=[];t[r].forEach((function(t){var i=(n?e.getChildren(t.key):e.getParents(t.key)).map((function(t){return e.getNode(t).position}));c.push(t.key),a[t.key]=o.getNodePosition(i)})),i[r]=s.sortNodes(c,a,e)},s=this;for(var a in t)r(a);return i},t.prototype.sortNodes=function(t,e,n){return t.sort((function(t,n){return e[t]-e[n]})).map((function(t,e){var o=n.getNode(t);return o.position=e,o}))},t.prototype.getNodePosition=function(t){if(!(t=t.sort((function(t,e){return t-e}))).length)return 0;var e=Math.floor(t.length/2);if(2===t.length||t.length%2==1)return t[e];var n=t[e-1]-t[0],o=t[t.length-1]-t[e];return Math.floor((t[e-1]*o+t[e]*n)/(n+o))},t.prototype.initOrder=function(t){var e={};return t.forEach((function(t){return(e[t.layer]||(e[t.layer]=[])).push(t)})),e},t.prototype.getCrossCount=function(t,e){var n=0,o=function(o){if(!Object.prototype.hasOwnProperty.call(t,o))return\"continue\";var i=[];t[o].forEach((function(t){var o=e.getChildren(t.key).map((function(t){return e.getNode(t).position}));o.forEach((function(t){n+=i.filter((function(e){return t<e})).length})),i=i.concat(o)}))};for(var i in t)o(i);return n},t.prototype.initGraphInfo=function(t,e){var n=this,o={},i={},r=[],a=[];return t.nodes.forEach((function(t){var n=e[t];void 0===o[n]&&(o[n]=0);var s=new P(t,!1,n,o[n]++);i[t]=s,r.push(s)})),t.edges.forEach((function(t){var s=e[t.to]-e[t.from];if(s>1){for(var c=i[t.from],u=1;u<s;u++){var h=new P(n.createDummyID(),!0,e[t.from]+u,o[e[t.from]+u]++);a.push(new S(n.createDummyID(),!0,c.key,h.key)),r.push(h),c=h}a.push(new S(t.key,!1,c.key,i[t.to].key,i[t.from].key))}else a.push(new S(t.key,!1,i[t.from].key,i[t.to].key))})),new s.FastGraph(r,a)},t.prototype.createDummyID=function(){return\"dummy_\"+--this.idCounter},t.prototype.getNodeToPositionMap=function(t){return t.reduce((function(t,e){return t[e.key]=e.position,t}),{})},t.prototype.assignAbsCoordinates=function(t){var e=this.getAbsCoodinate(t);return new s.FastGraph(t.items.map((function(t){return new P(t.key,t.isDummy,t.layer,e[t.key])})),t.edges.slice(0))},t.prototype.getAbsCoodinate=function(t){var e=this,n=t.items.reduce((function(t,e){t[e.layer]=t[e.layer]||[];var n=h.SearchUtils.binaryIndexOf(t[e.layer],(function(t){return t.position-e.position}));return t[e.layer].splice(n<0?~n:n,0,e),t}),{}),o=[C.TopLeft,C.TopRight,C.BottomLeft,C.BottomRight].map((function(o){return e.getPositionByMedian(t,o,n)})),i={};return t.items.forEach((function(t){var e=o.map((function(e){return e[t.key]})).sort((function(t,e){return t-e}));i[t.key]=(e[1]+e[2])/2})),i},t.prototype.getPositionByMedian=function(t,e,n){var o=t.items,i=this.getNodeToPositionMap(o),r=this.getMedians(t,o,e);return r=this.resolveMedianConflicts(t,n,r,e),this.getSortedBlocks(t,o,r,e).forEach((function(t){var e=t.reduce((function(t,e){return i[e.key]>t?i[e.key]:t}),-2);t.forEach((function(t){var o=e-i[t.key];o>0&&n[t.layer].filter((function(e){return e.position>t.position})).forEach((function(t){return i[t.key]+=o})),i[t.key]=e}))})),i},t.prototype.getSortedBlocks=function(t,e,n,o){for(var i=[],r=o===C.BottomLeft||o===C.BottomRight,s=new u.HashSet(e.slice(0).sort((function(t,e){return r?t.layer-e.layer:e.layer-t.layer})),(function(t){return t.key}));s.length;){var a=s.item(0),c=this.getBlock(t,a,n,o);i.push(c),c.forEach((function(t){return s.remove(t)}))}return i.sort((function(t,e){var n=t.reduce((function(t,e){return e.position<t.position?e:t}),t[0]),o=e.filter((function(t){return t.layer===n.layer}))[0];if(o)return n.position>o.position?1:-1;var i=e.reduce((function(t,e){return e.position<t.position?e:t}),e[0]),r=t.filter((function(t){return t.layer===i.layer}))[0];return r?r.position>i.position?1:-1:n.layer>i.layer?1:-1})),i},t.prototype.getBlock=function(t,e,n,o){var i=[],r=null;do{r&&(e=o===C.TopLeft||o===C.TopRight?t.getNode(r.from):t.getNode(r.to)),i.push(e),r=n[e.key]}while(r);return i},t.prototype.resolveMedianConflicts=function(t,e,n,o){var i=this,r={},s=function(s){if(!Object.prototype.hasOwnProperty.call(e,s))return\"continue\";var a,c,u=e[s];o!==C.TopRight&&o!==C.BottomRight||(u=u.slice(0).sort((function(t,e){return e.position-t.position}))),u.forEach((function(e){var s=n[e.key];if(s){var u=o===C.TopLeft||o===C.TopRight?s.from:s.to,h=t.getNode(u).position;i.checkMedianConfict(a,c,h,o)?r[e.key]=null:(a=void 0===a?h:Math.min(a,h),c=void 0===c?h:Math.max(c,h),r[e.key]=s)}else r[e.key]=null}))};for(var a in e)s(a);return r},t.prototype.checkMedianConfict=function(t,e,n,o){return void 0!==t&&void 0!==e&&(o===C.TopLeft||o===C.BottomLeft?e>=n:t<=n)},t.prototype.getMedians=function(t,e,n){var o=this,i={};return e.forEach((function(e){var r=o.getActualAdjacentEdges(t,e,n),s=o.getMedianPosition(r.length,n);i[e.key]=r[s]})),i},t.prototype.getMedianPosition=function(t,e){if(0===t)return-1;if(t%2!=0)return Math.floor(t/2);if(e===C.TopLeft||e===C.BottomLeft)return Math.floor(t/2)-1;if(e===C.TopRight||e===C.BottomRight)return Math.floor(t/2);throw new Error(\"Invalid Operation\")},t.prototype.getActualAdjacentEdges=function(t,e,n){return n===C.TopLeft||n===C.TopRight?t.getAdjacentEdges(e.key,c.ConnectionMode.Incoming).sort((function(e,n){return t.getNode(e.from).position-t.getNode(n.from).position})):t.getAdjacentEdges(e.key,c.ConnectionMode.Outgoing).sort((function(e,n){return t.getNode(e.to).position-t.getNode(n.to).position}))},t}();e.SugiyamaNodesOrderer=v;var P=function(){function t(t,e,n,o){this.key=t,this.isDummy=e,this.layer=n,this.position=o}return t.prototype.getHashCode=function(){return this.key.toString()},t}();e.NodeOnLayer=P;var C,S=function(){function t(t,e,n,o,i){this.key=t,this.isDummy=e,this.from=n,this.to=o,this._originFrom=i}return t.prototype.getHashCode=function(){return this.from+\"-\"+this.to},Object.defineProperty(t.prototype,\"originFrom\",{get:function(){return void 0!==this._originFrom?this._originFrom:this.from},enumerable:!1,configurable:!0}),t}();function x(t){return Math.trunc?Math.trunc(t):isFinite(t)?t-t%1||(t<0?-0:0===t?t:0):t}e.EdgeOnLayer=S,function(t){t[t.TopLeft=0]=\"TopLeft\",t[t.TopRight=1]=\"TopRight\",t[t.BottomLeft=2]=\"BottomLeft\",t[t.BottomRight=3]=\"BottomRight\"}(C||(C={}))},9533:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TreeLayoutBuilder=void 0;var r=n(8119),s=n(5148),a=n(617),c=n(8675),u=n(8900),h=n(5227),p=n(8217),l=n(3742),d=n(8710),f=n(213),y=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.nodeToLevel={},e.levelDepthSize={},e}return i(e,t),e.prototype.build=function(){var t=this,e=new r.GraphLayout,n=0;return this.graph.getConnectedComponents().forEach((function(o){for(var i=s.Tree.createSpanningTree(o),r=t.processTree(i),a=t.getComponentOffset(r);r.nodeKeys.length<o.nodes.length;){var c=new f.Graph(o.nodes.filter((function(t){return!r.nodeToLayout[t]})).map((function(t){return o.getNode(t)})),o.edges.filter((function(t){return!r.edgeToPosition[t.key]}))),u=s.Tree.createSpanningTree(c),h=t.processTree(u);r.extend(t.setComponentOffset(h,a)),a+=t.getComponentOffset(h)}e.extend(t.setComponentOffset(r,n)),n+=t.getComponentOffset(r)})),e},e.prototype.preProcessTree=function(t,e,n){var o=this;if((e=e.filter((function(t){return(void 0===o.nodeToLevel[t.key]?o.nodeToLevel[t.key]=n:-1)>=0}))).length){var i=this.getMaxDepthSize(e);this.levelDepthSize[n]=i,this.preProcessTree(t,[].concat.apply([],e.map((function(e){return t.getChildren(e)}))),n+1)}},e.prototype.loadNodes=function(t,e,n){return n?t.getChildren(n.info).map((function(t){return e.hasNode(t.key)?void 0:e.addNode(new a.NodeLayout(t,u.Point.zero()))})).filter((function(t){return t})):[e.addNode(new a.NodeLayout(t.root,u.Point.zero()))]},e.prototype.processTree=function(t){var e=this,n=new r.GraphLayout;if(this.preProcessTree(t,[t.root],0),this.processLevel(t,n,0,new c.Range(0),0),this.settings.direction===d.LogicalDirectionKind.Backward){var o=Object.keys(this.levelDepthSize).map((function(t){return e.levelDepthSize[t]})),i=o.reduce((function(t,e){return t+e}),0)+(o.length-1)*this.settings.layerSpacing;n.forEachNode((function(t){return e.setDepthPos(t,e.getDepthPos(t)+i)}))}return n},e.prototype.processLevel=function(t,e,n,o,i,r){var s,a=this,u=this.addNodes(t,e,i,r),h=r?this.graph.getAdjacentEdges(r.key,p.ConnectionMode.Outgoing):[],l=this.getDirectionValue(this.levelDepthSize[i]),d=this.getDirectionValue(this.settings.layerSpacing);if(u.forEach((function(r){var u=c.Range.fromLength(s?s.to+a.settings.columnSpacing:o.from,a.getBreadthNodeSizeCore(r.info));r.position=a.getNodePosition(u.from,n,l).clone().offset(r.info.margin.left,r.info.margin.top),a.processLevel(t,e,n+l+d,u,i+1,r),a.updateEdgeConnections(e,h,r),o.extend(u),s=u})),r&&u.length){var f=u[u.length-1],y=new c.Range(this.getBreadthPos(u[0]),this.getBreadthPos(f)+this.getBreadthNodeSizeCore(f.info,!0));this.alignParent(r,y,o)}},e.prototype.addNodes=function(t,e,n,o){var i=this;return 0===n?[e.addNode(new a.NodeLayout(t.root,u.Point.zero()))]:t.getChildren(o.info).reduce((function(t,o){return i.nodeToLevel[o.key]!==n||e.hasNode(o.key)||t.push(e.addNode(new a.NodeLayout(o,u.Point.zero()))),t}),[])},e.prototype.getMaxDepthSize=function(t){var e=this;return t.reduce((function(t,n){return Math.max(t,e.getDepthNodeSizeCore(n))}),0)},e.prototype.getNodePosition=function(t,e,n){return this.settings.direction===d.LogicalDirectionKind.Forward?this.settings.orientation===d.DataLayoutOrientation.Vertical?new u.Point(t,e):new u.Point(e,t):this.settings.orientation===d.DataLayoutOrientation.Vertical?new u.Point(t,e+n):new u.Point(e+n,t)},e.prototype.updateEdgeConnections=function(t,e,n){var o=this;e.filter((function(t){return t.to===n.key})).forEach((function(e){var n=o.getBeginEdgeIndex(),i=o.getEndEdgeIndex();t.addEdge(new a.EdgeLayout(e.key,n,i))}))},e.prototype.getBeginEdgeIndex=function(){return this.settings.direction===d.LogicalDirectionKind.Forward?this.isVertical()?l.ConnectionPointSide.South:l.ConnectionPointSide.East:this.isVertical()?l.ConnectionPointSide.North:l.ConnectionPointSide.West},e.prototype.getEndEdgeIndex=function(){return this.settings.direction===d.LogicalDirectionKind.Forward?this.isVertical()?l.ConnectionPointSide.North:l.ConnectionPointSide.West:this.isVertical()?l.ConnectionPointSide.South:l.ConnectionPointSide.East},e.prototype.alignParent=function(t,e,n){if(this.settings.alignment===d.Alignment.Center){var o=e.from+e.length/2-this.getBreadthNodeSizeCore(t.info,!0)/2;this.settings.orientation===d.DataLayoutOrientation.Vertical?(t.position.x=Math.max(n.from+t.info.margin.left,o),t.position.x=Math.min(n.to-t.info.size.width-t.info.margin.right,t.position.x)):(t.position.y=Math.max(n.from+t.info.margin.top,o),t.position.y=Math.min(n.to-t.info.size.height-t.info.margin.bottom,t.position.y))}},e.prototype.getDepthPos=function(t){return this.settings.orientation===d.DataLayoutOrientation.Vertical?t.position.y:t.position.x},e.prototype.getBreadthPos=function(t){return this.settings.orientation===d.DataLayoutOrientation.Vertical?t.position.x:t.position.y},e.prototype.setDepthPos=function(t,e){this.settings.orientation===d.DataLayoutOrientation.Vertical?t.position.y=e:t.position.x=e},e.prototype.isVertical=function(){return this.settings.orientation===d.DataLayoutOrientation.Vertical},e}(h.LayoutBuilder);e.TreeLayoutBuilder=y},213:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.GraphIterator=e.FastGraph=e.Graph=void 0;var r=n(8217),s=n(5503),a=n(2400),c=n(701),u=function(){function t(t,e){this.nodeMap={},this.edgeMap={},this.nodes=[],this.edges=[],this.onInit(),t.forEach(this.addNode.bind(this)),e.forEach(this.addEdge.bind(this))}return Object.defineProperty(t.prototype,\"items\",{get:function(){return this.nodes.map(this.getNode.bind(this))},enumerable:!1,configurable:!0}),t.prototype.onInit=function(){},t.prototype.addEdge=function(t){this.edgeMap[t.key]=t,this.edges.push(t)},t.prototype.addNode=function(t){this.nodeMap[t.key]=t,this.nodes.push(t.key)},t.prototype.getNode=function(t){return this.nodeMap[t]},t.prototype.getEdge=function(t){return this.edgeMap[t]},t.prototype.isEmpty=function(){return!this.nodes.length&&!this.edges.length},t.prototype.getAdjacentEdges=function(t,e){return void 0===e&&(e=r.ConnectionMode.OutgoingAndIncoming),this.edges.filter((function(n){return e&r.ConnectionMode.Incoming&&n.to===t||e&r.ConnectionMode.Outgoing&&n.from===t}))},t}(),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.cast=function(t,n){var o=this;return new e(this.nodes.map((function(e){return t(o.getNode(e))})),this.edges.map((function(t){return n?n(t):t})))},e.prototype.getConnectedComponents=function(){var t=this.createIterator(r.ConnectionMode.OutgoingAndIncoming);t.visitEachEdgeOnce=!0;for(var n=[],o=function(o){var r=[],s=[];t.onNode=function(t){return r.push(t)},t.onEdge=function(t){return s.push(t)},t.iterate(i.nodes[o]),r.length&&n.push(new e(r,s))},i=this,s=0;s<this.nodes.length;s++)o(s);return n},e.prototype.createIterator=function(t){var e=new l(this,t);return e.comparer=function(t,e){return t.weight-e.weight},e},e.prototype.getSpanningGraph=function(t,n,o){var i=this;if(void 0===o&&(o=void 0),!this.nodes.length)return new e([],[]);o||(o=function(t){return t.weight});var r=[],s=new c.HashSet,a=new c.HashSet([],(function(t){return t.getHashKey()}));for(this.addNodeToSpanningGraph(t,n,r,s,a,o);r.length&&s.length!==this.nodes.length;){var u=r.shift();a.tryPush(u);var h=s.contains(u.from)?u.to:u.from;this.addNodeToSpanningGraph(h,n,r,s,a,o),r=r.filter((function(t){return!s.contains(t.from)||!s.contains(t.to)}))}return new e(s.list().map((function(t){return i.getNode(t)})),a.list())},e.prototype.addNodeToSpanningGraph=function(t,e,n,o,i,s){o.tryPush(t),this.getAdjacentEdges(t,e).filter((function(t){return!i.contains(t)})).forEach((function(t){var e=s(t),o=a.SearchUtils.binaryIndexOf(n,(function(t){return t.weight-e}));for(o=o<0?~o:o;o<n.length&&s(n[o])===e;)o++;n.splice(o,0,new r.Edge(t.key,t.from,t.to,e))}))},e.create=function(t,n){return new e(t,n.filter((function(t){return t.beginItem&&t.endItem instanceof s.Shape&&t.endItem&&t.endItem instanceof s.Shape&&t.beginItem!==t.endItem})).map((function(t){return new r.Edge(t.key,t.beginItem&&t.beginItem.key,t.endItem&&t.endItem.key)})))},e}(u);e.Graph=h;var p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.onInit=function(){this.parentToChildren={},this.childToParents={}},e.prototype.addEdge=function(e){t.prototype.addEdge.call(this,e),(this.parentToChildren[e.from]||(this.parentToChildren[e.from]=[])).push(e.to),(this.childToParents[e.to]||(this.childToParents[e.to]=[])).push(e.from)},e.prototype.getChildren=function(t){return this.parentToChildren[t]||[]},e.prototype.getParents=function(t){return this.childToParents[t]||[]},e.prototype.createIterator=function(t){return new l(this,t)},e}(u);e.FastGraph=p;var l=function(){function t(t,e){void 0===e&&(e=r.ConnectionMode.OutgoingAndIncoming),this.graph=t,this.connectionMode=e,this.visitEachEdgeOnce=!0,this.visitEachNodeOnce=!0,this.visitedNodes={},this.visitedEdges={}}return t.prototype.iterate=function(t){if(!this.visitEachNodeOnce&&!this.visitEachEdgeOnce&&!this.skipNode)throw\"skipNode or visitEachNodeOnce or visitEachEdgeOnce must be set to avoid SOF\";this.iterateCore(t)},t.prototype.iterateCore=function(t){var e=this,n=this.graph.getNode(t);if(!(!n||this.skipNode&&this.skipNode(n)||this.visitEachNodeOnce&&this.isNodeVisited(t))){this.visitedNodes[t]=!0,this.onNode&&this.onNode(n);var o=this.graph.getAdjacentEdges(t,this.connectionMode);if(this.skipEdge&&(o=o.filter((function(t){return!e.skipEdge(t)}))),this.connectionMode&r.ConnectionMode.Outgoing){var i=o.filter((function(e){return e.from===t}));this.comparer&&i.sort(this.comparer),i.forEach((function(t){e.visitEachEdgeOnce&&e.visitedEdges[t.key]||(e.visitedEdges[t.key]=!0,e.onEdge&&e.onEdge(t,!0),e.iterateCore(t.to),e.onAfterEdge&&e.onAfterEdge(t,!0))}))}if(this.onAllEdges&&this.onAllEdges(n,!0),this.connectionMode&r.ConnectionMode.Incoming){var s=o.filter((function(e){return e.to===t}));this.comparer&&s.sort(this.comparer),s.forEach((function(t){e.visitEachEdgeOnce&&e.visitedEdges[t.key]||(e.visitedEdges[t.key]=!0,e.onEdge&&e.onEdge(t,!1),e.iterateCore(t.from),e.onAfterEdge&&e.onAfterEdge(t,!1))}))}this.onAllEdges&&this.onAllEdges(n,!1)}},t.prototype.isNodeVisited=function(t){return!!this.visitedNodes[t]},t.prototype.isEdgeVisited=function(t){return!!this.visitedEdges[t]},t}();e.GraphIterator=l},7819:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.GraphInfo=void 0;var o=n(1755),i=function(){function t(t,e){this.container=t,this.sourceGraph=e}return Object.defineProperty(t.prototype,\"graph\",{get:function(){return this._graph||(this._graph=this.getNodeInfoGraph())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"level\",{get:function(){return void 0!==this._level?this._level:this._level=this.getLevel()},enumerable:!1,configurable:!0}),t.prototype.getNodeInfoGraph=function(){return this.sourceGraph.cast(o.LayoutUtils.shapeToLayout)},t.prototype.getLevel=function(){var t=0;return this.container&&(t=this.getContainerLevel(this.container)),t},t.prototype.getContainerLevel=function(t){var e=1,n=t.container;return n&&(e+=this.getContainerLevel(n)),e},t}();e.GraphInfo=i},8119:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.GraphLayout=void 0;var o=n(8675),i=n(617),r=function(){function t(){this.nodeKeys=[],this.nodeToLayout={},this.edgeToPosition={}}return t.prototype.forEachNode=function(t){var e=this;this.nodeKeys.forEach((function(n){return t(e.nodeToLayout[n],n)}))},t.prototype.reduce=function(t,e){var n=this;return this.nodeKeys.reduce((function(e,o,i){return t(e,n.nodeToLayout[o],i)}),e)},t.prototype.addNode=function(t){if(this.nodeToLayout[t.key])throw Error(\"Node layout is already registered\");return this.nodeKeys.push(t.key),this.nodeToLayout[t.key]=t,t},t.prototype.hasNode=function(t){return!!this.nodeToLayout[t]},t.prototype.addEdge=function(t){if(this.edgeToPosition[t.key])throw Error(\"Edge layout is already registered\");this.edgeToPosition[t.key]=t},t.prototype.getRectangle=function(t){var e=this;return o.GeometryUtils.getCommonRectangle(this.nodeKeys.map((function(t){return e.nodeToLayout[t].rectangle})))},t.prototype.offsetNodes=function(e,n){var o=this;void 0===e&&(e=0),void 0===n&&(n=0);var r=new t;return this.nodeKeys.forEach((function(t){var s=o.nodeToLayout[t];r.addNode(new i.NodeLayout(s.info,s.position.clone().offset(e,n)))})),r.copyEdges(this),r},t.prototype.extend=function(t){var e=this;t.forEachNode((function(t){return e.addNode(t)})),this.copyEdges(t)},t.prototype.copyEdges=function(t){var e=this;Object.keys(t.edgeToPosition).forEach((function(n){var o=t.edgeToPosition[n];e.addEdge(new i.EdgeLayout(o.key,o.beginIndex,o.endIndex))}))},t}();e.GraphLayout=r},8710:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Alignment=e.DataLayoutOrientation=e.LogicalDirectionKind=e.TreeLayoutSettings=e.LayoutSettings=void 0;var r=n(7959),s=function(t){this.orientation=c.Vertical,this.direction=a.Forward;var e=t&&2*t>r.Connector.minOffset?2*t:r.Connector.minOffset;this.columnSpacing=e,this.layerSpacing=2*e,this.containerPadding=2*e,this.componentSpacing=2*e};e.LayoutSettings=s;var a,c,u,h=function(t){function e(e){var n=t.call(this,e)||this;return n.alignment=u.Center,n.subTreeColumnSpacing=n.componentSpacing/2,n}return i(e,t),e}(s);e.TreeLayoutSettings=h,function(t){t[t.Backward=0]=\"Backward\",t[t.Forward=1]=\"Forward\"}(a=e.LogicalDirectionKind||(e.LogicalDirectionKind={})),function(t){t[t.Horizontal=0]=\"Horizontal\",t[t.Vertical=1]=\"Vertical\"}(c=e.DataLayoutOrientation||(e.DataLayoutOrientation={})),function(t){t[t.Left=0]=\"Left\",t[t.Center=1]=\"Center\"}(u=e.Alignment||(e.Alignment={}))},1755:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.LayoutUtils=void 0;var o=n(617),i=function(){function t(){}return t.shapeToLayout=function(t){var e=new o.Margin(0),n=t.rectangle;t.attachedConnectors.filter((function(t){return!t.beginItem||!t.endItem})).forEach((function(t){var o=t.rectangle;e.left=Math.max(e.left,n.x-o.x),e.right=Math.max(e.right,o.right-n.right),e.top=Math.max(e.top,n.y-o.y),e.bottom=Math.max(e.bottom,o.bottom-n.bottom)}));var i=new o.NodeInfo(t.key,e,t.size.clone());return i.connectionPoints=t.description.getConnectionPoints(),i},t}();e.LayoutUtils=i},617:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Margin=e.EdgeLayout=e.NodeLayout=e.NodeInfo=void 0;var o=n(8011),i=function(t,e,n,o){void 0===o&&(o=[]),this.key=t,this.margin=e,this.size=n,this.connectionPoints=o};e.NodeInfo=i;var r=function(){function t(t,e){this.info=t,this.position=e}return Object.defineProperty(t.prototype,\"key\",{get:function(){return this.info.key},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rectangle\",{get:function(){return o.Rectangle.fromGeometry(this.position,this.info.size)},enumerable:!1,configurable:!0}),t}();e.NodeLayout=r;var s=function(t,e,n){this.key=t,this.beginIndex=e,this.endIndex=n};e.EdgeLayout=s;var a=function(){function t(t,e,n,o){void 0===e&&(e=t),void 0===n&&(n=t),void 0===o&&(o=t),this.top=t,this.right=e,this.bottom=n,this.left=o}return t.empty=function(){return new t(0)},t}();e.Margin=a},8217:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectionMode=e.PositionInfo=e.Edge=void 0;var n=function(){function t(t,e,n,o){void 0===o&&(o=1),this.weight=o,this.key=t,this.from=e,this.to=n}return t.prototype.getHashKey=function(){return this.from+\"_\"+this.to},t.prototype.reverse=function(){return new t(this.key,this.to,this.from,this.weight)},t}();e.Edge=n;var o=function(t,e){this.item=t,this.position=e};e.PositionInfo=o,function(t){t[t.Outgoing=1]=\"Outgoing\",t[t.Incoming=2]=\"Incoming\",t[t.OutgoingAndIncoming=3]=\"OutgoingAndIncoming\"}(e.ConnectionMode||(e.ConnectionMode={}))},5148:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Tree=void 0;var o=n(8217),i=function(){function t(t,e){var n=this;this.childToParent={},this.root=t,this.parentToChildren=e;var o=function(t){if(!Object.prototype.hasOwnProperty.call(e,t))return\"continue\";e[t].forEach((function(e){return n.childToParent[e.key]=t}))};for(var i in e)o(i)}return t.prototype.getChildren=function(t){return t&&this.parentToChildren[t.key]?this.parentToChildren[t.key]:[]},t.prototype.hasChildren=function(t){return this.parentToChildren[t.key]&&this.parentToChildren[t.key].length>0},t.prototype.iterate=function(t){this.iterateCore(this.root,0,t)},t.createSpanningTree=function(e){var n=t.findRoot(e),i=e.createIterator(o.ConnectionMode.Outgoing),r={};return i.skipEdge=function(t){return void 0===t.to||i.isNodeVisited(t.to)},i.onNode=function(t){return r[t.key]=[]},i.onEdge=function(t){var n=e.getNode(t.to);n&&r[t.from].push(n)},i.iterate(n),new t(e.getNode(n),r)},t.prototype.iterateCore=function(t,e,n){var o=this;n(t,e),this.getChildren(t).forEach((function(t){return o.iterateCore(t,e+1,n)}))},t.findRoot=function(t){return t.nodes.reduce((function(e,n){var o=t.getAdjacentEdges(n),i=o.filter((function(t){return t.to===n})).length,r=o.filter((function(t){return t.from===n})).length;return(void 0===e.candidate||0===i&&e.inc>0||0!==e.inc&&e.out-e.inc<r-i)&&(e.candidate=n,e.inc=i,e.out=r),e}),{inc:-1,out:-1,candidate:void 0}).candidate},t}();e.Tree=i},7309:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.CycleRemover=void 0;var o=n(213),i=n(8217),r=n(701),s=function(){function t(){}return t.removeCycles=function(t){var e=this.getFeedbackSet(t);return this.reverseEdges(t,e)},t.getFeedbackSet=function(t){for(var e=this,n={},o=this.getNonTrivialStronglyConnectedComponents(t);o.length;)o.forEach((function(t){var o=e.getMaxCyclicEdges(t);o.forEach((function(t){return delete n[t.reverse().getHashKey()]})),o.forEach((function(t){return n[t.getHashKey()]=!0}))})),o=this.getNonTrivialStronglyConnectedComponents(this.reverseEdges(t,n).graph);return n},t.getMaxCyclicEdges=function(t){var e={},n={},o={},s=[],a=[],c=t.createIterator(i.ConnectionMode.Outgoing);c.visitEachEdgeOnce=!1,c.onNode=function(t){n[t.key]=!0},c.skipNode=function(t){if(n[t.key]){for(var i=[],r=0;r<s.length;r++){var c=s[r];if(void 0===o[c.key]&&(o[c.key]=0),o[c.key]++,i.push(c),c.from===t.key)break}a.push(i)}return n[t.key]||e[t.key]},c.skipEdge=function(t){return!1},c.onEdge=function(t){s.splice(0,0,t)},c.onAfterEdge=function(t){s.splice(0,1)},c.onAllEdges=function(t){e[t.key]=!0,n[t.key]=!1},c.iterate(t.nodes[0]);var u=new r.HashSet([],(function(t){return t.key}));return a.forEach((function(t){u.tryPush(t.reduce((function(t,e){return o[e.key]>o[t.key]?e:t}),t[0]))})),u.list()},t.reverseEdges=function(t,e){var n=new r.HashSet([],(function(t){return t.getHashKey()})),i={},s={};return t.edges.forEach((function(t){e[t.getHashKey()]&&(t=t.reverse(),i[t.key]=!0),n.tryPush(t)||(s[t.key]=!0,delete i[t.key])})),{graph:new o.Graph(t.nodes.map((function(e){return t.getNode(e)})),n.list()),reversedEdges:i,removedEdges:s}},t.getNonTrivialStronglyConnectedComponents=function(t){return this.getStronglyConnectedComponents(t).filter((function(t){return t.edges.length}))},t.getStronglyConnectedComponents=function(t){for(var e=this,n=[],o=0,r={},s={},a={},c=[],u={},h=0;h<t.nodes.length;h++){var p=t.nodes[h],l=t.createIterator(i.ConnectionMode.Outgoing);l.visitEachEdgeOnce=!1,l.visitEachNodeOnce=!1,l.onNode=function(t){u[t.key]=!0,n.push(t),a[t.key]=!0,s[t.key]=o,r[t.key]=o,o++},l.skipNode=function(t){return u[t.key]},l.skipEdge=function(t){var e=u[t.to];return e&&a[t.to]&&(s[t.from]=Math.min(s[t.from],r[t.to])),e},l.onAfterEdge=function(t){s[t.from]=Math.min(s[t.from],s[t.to])},l.onAllEdges=function(o,i){i&&s[o.key]===r[o.key]&&c.push(e.getStronglyConnectedComponent(t,o,n,a))},l.iterate(p)}return c},t.getStronglyConnectedComponent=function(t,e,n,r){var s,a={},c=[],u=[];do{s=n.pop(),a[s.key]||c.push(s),a[s.key]=!0,r[s.key]=!1}while(s!==e);return c.forEach((function(e){var n=t.getAdjacentEdges(e.key,i.ConnectionMode.Outgoing);u=u.concat(n.filter((function(t){return!a[t.key]&&a[t.to]}))),n.forEach((function(t){return a[t.key]=!0}))})),new o.Graph(c,u)},t}();e.CycleRemover=s},701:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.HashSet=void 0;var n=function(){function t(t,e){var n=this;void 0===t&&(t=[]),void 0===e&&(e=function(t){return t.toString()}),this.items=[],this.map={},this.getHashCode=e,t.forEach((function(t){return n.tryPush(t)}))}return t.prototype.tryPush=function(t){var e=this.getHashCode(t);return void 0===this.map[e]&&(this.map[e]=this.items.push(t)-1,!0)},t.prototype.contains=function(t){return void 0!==this.map[this.getHashCode(t)]},t.prototype.forEach=function(t){this.items.forEach(t)},t.prototype.filter=function(t){return this.items.filter(t)},t.prototype.list=function(){return this.items.slice(0)},t.prototype.item=function(t){return this.items[t]},t.prototype.first=function(){return this.items[0]},t.prototype.remove=function(t){var e=this.getHashCode(t),n=this.map[e];if(\"number\"!=typeof n)throw\"Item not found\";delete this.map[e],this.items.splice(n,1);for(var o=n;o<this.items.length;o++)this.map[this.getHashCode(this.items[o])]--},Object.defineProperty(t.prototype,\"length\",{get:function(){return this.items.length},enumerable:!1,configurable:!0}),t}();e.HashSet=n},6224:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramLocalizationService=void 0;var o=n(2259),i=n(5383),r=function(){function t(){}return t.unitItems={},t.formatUnit=function(t){return t.toString()},t.shapeTexts={},t}();e.DiagramLocalizationService=r,r.unitItems[i.DiagramUnit.In]=\"in\",r.unitItems[i.DiagramUnit.Cm]=\"cm\",r.unitItems[i.DiagramUnit.Px]=\"px\",r.shapeTexts[o.ShapeTypes.Text]=\"Text\",r.shapeTexts[o.ShapeTypes.Rectangle]=\"Rectangle\",r.shapeTexts[o.ShapeTypes.Ellipse]=\"Ellipse\",r.shapeTexts[o.ShapeTypes.Cross]=\"Cross\",r.shapeTexts[o.ShapeTypes.Triangle]=\"Triangle\",r.shapeTexts[o.ShapeTypes.Diamond]=\"Diamond\",r.shapeTexts[o.ShapeTypes.Heart]=\"Heart\",r.shapeTexts[o.ShapeTypes.Pentagon]=\"Pentagon\",r.shapeTexts[o.ShapeTypes.Hexagon]=\"Hexagon\",r.shapeTexts[o.ShapeTypes.Octagon]=\"Octagon\",r.shapeTexts[o.ShapeTypes.Star]=\"Star\",r.shapeTexts[o.ShapeTypes.ArrowLeft]=\"Left Arrow\",r.shapeTexts[o.ShapeTypes.ArrowUp]=\"Up Arrow\",r.shapeTexts[o.ShapeTypes.ArrowRight]=\"Right Arrow\",r.shapeTexts[o.ShapeTypes.ArrowDown]=\"Down Arrow\",r.shapeTexts[o.ShapeTypes.ArrowUpDown]=\"Up Down Arrow\",r.shapeTexts[o.ShapeTypes.ArrowLeftRight]=\"Left Right Arrow\",r.shapeTexts[o.ShapeTypes.Process]=\"Process\",r.shapeTexts[o.ShapeTypes.Decision]=\"Decision\",r.shapeTexts[o.ShapeTypes.Terminator]=\"Terminator\",r.shapeTexts[o.ShapeTypes.PredefinedProcess]=\"Predefined Process\",r.shapeTexts[o.ShapeTypes.Document]=\"Document\",r.shapeTexts[o.ShapeTypes.MultipleDocuments]=\"Multiple Documents\",r.shapeTexts[o.ShapeTypes.ManualInput]=\"Manual Input\",r.shapeTexts[o.ShapeTypes.Preparation]=\"Preparation\",r.shapeTexts[o.ShapeTypes.Data]=\"Data\",r.shapeTexts[o.ShapeTypes.Database]=\"Database\",r.shapeTexts[o.ShapeTypes.HardDisk]=\"Hard Disk\",r.shapeTexts[o.ShapeTypes.InternalStorage]=\"Internal Storage\",r.shapeTexts[o.ShapeTypes.PaperTape]=\"Paper Tape\",r.shapeTexts[o.ShapeTypes.ManualOperation]=\"Manual Operation\",r.shapeTexts[o.ShapeTypes.Delay]=\"Delay\",r.shapeTexts[o.ShapeTypes.StoredData]=\"Stored Data\",r.shapeTexts[o.ShapeTypes.Display]=\"Display\",r.shapeTexts[o.ShapeTypes.Merge]=\"Merge\",r.shapeTexts[o.ShapeTypes.Connector]=\"Connector\",r.shapeTexts[o.ShapeTypes.Or]=\"Or\",r.shapeTexts[o.ShapeTypes.SummingJunction]=\"Summing Junction\",r.shapeTexts[o.ShapeTypes.Container]=\"Container\",r.shapeTexts[o.ShapeTypes.VerticalContainer]=\"Vertical Container\",r.shapeTexts[o.ShapeTypes.HorizontalContainer]=\"Horizontal Container\",r.shapeTexts[o.ShapeTypes.Card]=\"Person's Name\",r.shapeTexts[o.ShapeTypes.CardWithImageOnLeft]=\"Card with Image on the Left\",r.shapeTexts[o.ShapeTypes.CardWithImageOnTop]=\"Card with Image on the Top\",r.shapeTexts[o.ShapeTypes.CardWithImageOnRight]=\"Card with Image on the Right\"},6879:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramModelOperation=e.ModelOperationSettings=void 0;var n=function(){function t(){this._addShape=!0,this._addShapeFromToolbox=!0,this._deleteShape=!0,this._deleteConnector=!0,this._changeConnection=!0,this._changeConnectorPoints=!0,this._changeShapeText=!0,this._changeConnectorText=!0,this._resizeShape=!0,this._moveShape=!0}return Object.defineProperty(t.prototype,\"addShape\",{get:function(){return this._addShape},set:function(t){t!==this._addShape&&(this._addShape=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"addShapeFromToolbox\",{get:function(){return this._addShapeFromToolbox},set:function(t){t!==this._addShapeFromToolbox&&(this._addShapeFromToolbox=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"deleteShape\",{get:function(){return this._deleteShape},set:function(t){t!==this._deleteShape&&(this._deleteShape=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"deleteConnector\",{get:function(){return this._deleteConnector},set:function(t){t!==this._deleteConnector&&(this._deleteConnector=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"changeConnection\",{get:function(){return this._changeConnection},set:function(t){t!==this._changeConnection&&(this._changeConnection=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"changeConnectorPoints\",{get:function(){return this._changeConnectorPoints},set:function(t){t!==this._changeConnectorPoints&&(this._changeConnectorPoints=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"changeShapeText\",{get:function(){return this._changeShapeText},set:function(t){t!==this._changeShapeText&&(this._changeShapeText=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"changeConnectorText\",{get:function(){return this._changeConnectorText},set:function(t){t!==this._changeConnectorText&&(this._changeConnectorText=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"resizeShape\",{get:function(){return this._resizeShape},set:function(t){t!==this._resizeShape&&(this._resizeShape=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"moveShape\",{get:function(){return this._moveShape},set:function(t){t!==this._moveShape&&(this._moveShape=t)},enumerable:!1,configurable:!0}),t.prototype.applySettings=function(t){t&&(\"boolean\"==typeof t.addShape&&(this.addShape=t.addShape),\"boolean\"==typeof t.addShapeFromToolbox&&(this.addShapeFromToolbox=t.addShapeFromToolbox),\"boolean\"==typeof t.deleteShape&&(this.deleteShape=t.deleteShape),\"boolean\"==typeof t.deleteConnector&&(this.deleteConnector=t.deleteConnector),\"boolean\"==typeof t.changeConnection&&(this.changeConnection=t.changeConnection),\"boolean\"==typeof t.changeConnectorPoints&&(this.changeConnectorPoints=t.changeConnectorPoints),\"boolean\"==typeof t.changeShapeText&&(this.changeShapeText=t.changeShapeText),\"boolean\"==typeof t.changeConnectorText&&(this.changeConnectorText=t.changeConnectorText),\"boolean\"==typeof t.resizeShape&&(this.resizeShape=t.resizeShape),\"boolean\"==typeof t.moveShape&&(this.moveShape=t.moveShape))},t}();e.ModelOperationSettings=n,function(t){t[t.AddShape=0]=\"AddShape\",t[t.AddShapeFromToolbox=1]=\"AddShapeFromToolbox\",t[t.DeleteShape=2]=\"DeleteShape\",t[t.DeleteConnector=3]=\"DeleteConnector\",t[t.ChangeConnection=4]=\"ChangeConnection\",t[t.ChangeConnectorPoints=5]=\"ChangeConnectorPoints\",t[t.BeforeChangeShapeText=6]=\"BeforeChangeShapeText\",t[t.ChangeShapeText=7]=\"ChangeShapeText\",t[t.BeforeChangeConnectorText=8]=\"BeforeChangeConnectorText\",t[t.ChangeConnectorText=9]=\"ChangeConnectorText\",t[t.ResizeShape=10]=\"ResizeShape\",t[t.MoveShape=11]=\"MoveShape\"}(e.DiagramModelOperation||(e.DiagramModelOperation={}))},7228:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectionPoint=void 0;var r=n(8900),s=n(3742),a=function(t){function e(e,n,o){void 0===o&&(o=s.ConnectionPointSide.Undefined);var i=t.call(this,e,n)||this;return i.side=o,i}return i(e,t),e.prototype.offset=function(e,n){return t.prototype.offset.call(this,e,n),this.side=s.ConnectionPointSide.Undefined,this},e.prototype.multiply=function(e,n){return t.prototype.multiply.call(this,e,n),this.side=s.ConnectionPointSide.Undefined,this},e.prototype.clone=function(){return new e(this.x,this.y,this.side)},e.prototype.toPoint=function(){return new r.Point(this.x,this.y)},e}(r.Point);e.ConnectionPoint=a},5800:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsCalculator=void 0;var r=n(7595),s=n(4717),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getPoints=function(){return this.connector.points.map((function(t,e){return new s.ConnectorRenderPoint(t.x,t.y,e)}))},e}(r.ConnectorPointsCalculatorBase);e.ConnectorPointsCalculator=a},7595:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsCalculatorBase=void 0;var n=function(t){this.connector=t};e.ConnectorPointsCalculatorBase=n},2342:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalCalculator=void 0;var r=n(8011),s=n(3742),a=n(7595),c=n(1686),u=n(1774),h=n(993),p=n(2290),l=n(7369),d=n(4717),f=n(4867),y=function(t){function e(e){var n=t.call(this,e)||this;return n.sideCalculators={},n.sideCalculators[s.ConnectionPointSide.Undefined]=new c.ConnectorPointsOrthogonalUndefinedSideCalculator(n),n.sideCalculators[s.ConnectionPointSide.South]=new u.ConnectorPointsOrthogonalSouthSideCalculator(n),n.sideCalculators[s.ConnectionPointSide.North]=new h.ConnectorPointsOrthogonalNorthSideCalculator(n),n.sideCalculators[s.ConnectionPointSide.East]=new p.ConnectorPointsOrthogonalEastSideCalculator(n),n.sideCalculators[s.ConnectionPointSide.West]=new l.ConnectorPointsOrthogonalWestSideCalculator(n),n}return i(e,t),Object.defineProperty(e.prototype,\"beginRect\",{get:function(){return this.connector.beginItem?this.connector.beginItem.rectangle:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"endRect\",{get:function(){return this.connector.endItem?this.connector.endItem.rectangle:void 0},enumerable:!1,configurable:!0}),e.prototype.getPoints=function(){var t=this.connector.points.map((function(t,e){return new d.ConnectorRenderPoint(t.x,t.y,e)}));f.ModelUtils.skipUnnecessaryRenderPoints(t,!0);var e=0,n=t.length-1,o=this.getPointSide(t,0),i=this.getPointSide(t,1),r=this.getPointSide(t,t.length-1),s=this.getPointSide(t,t.length-1-1),a=this.getSideCalculator(o),c=this.getSideCalculator(r),u=this.beginRect,h=a.getCorrectOriginPoint(t[e],u),p=t[e+1];if(2===t.length&&a.isOnSidePoint(h,p)&&a.isDirectConnectionAllowed(i,h,p)){a.getDirectConnectionPoints(h,p).forEach((function(o){t.splice(e+1,0,o),e++,n++}))}else{var l=a.getBeginOffsetPoints(i,t[e],t[e+1],this.beginRect);l.forEach((function(n){t.splice(e+1,0,n)})),e+=l.length,n+=l.length,c.getEndOffsetPoints(s,t[n],t[n-1],this.endRect).forEach((function(e,o){t.splice(n+o,0,e)})),this.addMiddlePoints(t,e,n)}return f.ModelUtils.skipUnnecessaryRenderPoints(t,!0),t},e.prototype.getSideCalculator=function(t){return this.sideCalculators[t]},e.prototype.getPointSide=function(t,e){if(0===e&&this.connector.beginItem){var n=this.connector.beginConnectionPointIndex;return this.connector.beginItem.getConnectionPointSideByIndex(n,t[1])}if(e===t.length-1&&this.connector.endItem){n=this.connector.endConnectionPointIndex;return this.connector.endItem.getConnectionPointSideByIndex(n,t[t.length-2])}return s.ConnectionPointSide.Undefined},e.prototype.addMiddlePoints=function(t,e,n){for(var o=e;o<n;o++){var i=o+1,r=this.getMiddlePoint(t[o],t[o-1],o-1==0,t[i],t[i+1],i+1===t.length-1);void 0!==r&&(t.splice(o+1,0,r),o++,n++)}},e.prototype.getMiddlePoints=function(t,e){return t.x===e.x||t.y===e.y?[]:[new d.ConnectorRenderPoint(t.x,e.y),new d.ConnectorRenderPoint(e.x,t.y)]},e.prototype.getMiddlePoint=function(t,e,n,o,i,s){var a,c=this,u=this.getMiddlePoints(t,o);return u.forEach((function(n){var s=c.createPointsRect(t,n),u=c.createPointsRect(n,o),h=c.connector.beginItem?c.connector.beginItem.rectangle:void 0,p=c.connector.endItem?c.connector.endItem.rectangle:void 0;h&&(r.Rectangle.areIntersected(h,s)||r.Rectangle.areIntersected(h,u))||p&&(r.Rectangle.areIntersected(p,s)||r.Rectangle.areIntersected(p,u))||c.isReturnPoint(n,t,e)&&!c.isIntermediatePoints(t,e)||c.isReturnPoint(n,o,i)&&!c.isIntermediatePoints(o,i)||(void 0===a||c.isPriorMiddlePoint(n,t,e,o,i))&&(a=n)})),void 0===a&&u.length>0&&(a=u[0]),a},e.prototype.createPointsRect=function(t,e){var n=r.Rectangle.fromPoints(t,e);return n.width>0&&(n=n.clone().inflate(-1,0)),n.height>0&&(n=n.clone().inflate(0,-1)),n},e.prototype.isPriorMiddlePoint=function(t,e,n,o,i){return!(!n||t.x!==n.x&&t.y!==n.y)||!(!i||t.x!==i.x&&t.y!==i.y)},e.prototype.isReturnPoint=function(t,e,n){if(void 0!==e&&void 0!==n){if(t.x===n.x&&(e.y<t.y&&t.y<n.y||e.y>t.y&&t.y>n.y))return!0;if(t.y===n.y&&(e.x<t.x&&t.x<n.x||e.x>t.x&&t.x>n.x))return!0}return!1},e.prototype.isIntermediatePoints=function(t,e){return 0<t.pointIndex&&t.pointIndex<this.connector.points.length-1&&0<e.pointIndex&&e.pointIndex<this.connector.points.length-1},e}(a.ConnectorPointsCalculatorBase);e.ConnectorPointsOrthogonalCalculator=y},2290:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalEastSideCalculator=void 0;var r=n(3742),s=n(1816),a=n(4717),c=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.getCorrectOriginPoint=function(t,e){return t.x<e.right&&(t=t.clone().offset(e.right-t.x,0)),t},e.prototype.getSameShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.North:case r.ConnectionPointSide.South:case r.ConnectionPointSide.East:return[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.West:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset())}},e.prototype.getOverlappedPointsOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.West:return[e.clone().offset(-this.getMinOffset(),0)]}return[]},e.prototype.getBeginOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.North:return e.x<n.x?e.y<n.y?[]:[e.clone().offset(this.getMinOffset(),0)]:e.x>this.endRect.right?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.South:return e.x<n.x?e.y>n.y?[]:[e.clone().offset(this.getMinOffset(),0)]:e.x>this.endRect.right?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.East:return[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.West:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),e.y<n.y)}},e.prototype.getEndOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.West:var i=this.getMinOffset();return this.beginRect.right>e.x&&(i+=this.beginRect.right-e.x),[e.clone().offset(i,0)];case r.ConnectionPointSide.North:return n.x<e.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):e.y>n.y?[e.clone().offset(this.getMinOffset(),0)]:[];case r.ConnectionPointSide.South:return n.x<e.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):e.y<n.y?[e.clone().offset(this.getMinOffset(),0)]:[]}},e.prototype.getBeginOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(this.getScaleableOffsetX(e,n,!1),0)]},e.prototype.getEndOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(this.getScaleableOffsetX(e,n,!0),0)]},e.prototype.getBeginOffSideOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.South:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!1);break;case r.ConnectionPointSide.North:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!0);break;case r.ConnectionPointSide.East:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1);break;case r.ConnectionPointSide.Undefined:case r.ConnectionPointSide.West:return this.getScaleableAsideOffsetPoints(e,n,o,!1)}return[e.clone().offset(this.getScaleableOffsetX(e,n,!1),0)]},e.prototype.getEndOffSideOffsetPoints=function(t,e,n,o){if(t===r.ConnectionPointSide.Undefined)return this.getScaleableAsideOffsetPoints(e,n,o,!0);if(this.isBeginEndOverlappedY()){var i=this.beginRect.center.y>this.endRect.center.y;return this.getScaleableAsideOffsetPoints(e,n,o,!0,i)}return[e.clone().offset(this.getScaleableOffsetX(e,n,!0),0)]},e.prototype.getAsideOffsetPoints=function(t,e,n,o,i,r){var s=[];return void 0!==n&&(void 0===r&&(r=e.y<t.y),r?s.push(t.clone().offset(o,-(t.y-n.y+i))):s.push(t.clone().offset(o,n.bottom-t.y+i))),s.push(t.clone().offset(o,0)),s},e.prototype.getScaleableAsideOffsetPoints=function(t,e,n,o,i){var r=this.getScaleableOffsetX(t,e,o),s=this.getScaleableOffsetY(t,e,o);return this.getAsideOffsetPoints(t,e,n,r,s,i)},e.prototype.getScaleableOffsetX=function(t,e,n){if(this.beginRect&&this.endRect){var o=n?this.beginRect.x-t.x:this.endRect.x-t.x;if(o>0&&o<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.getScaleableOffsetY=function(t,e,n){if(this.beginRect&&this.endRect&&!n&&!this.isBeginEndOverlappedY()){var o=void 0;if((o=e.y<t.y?this.beginRect.y-this.endRect.bottom:this.endRect.y-this.beginRect.bottom)<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.isOnSidePoint=function(t,e){return e.x>t.x},e.prototype.isDirectConnectionAllowed=function(t,e,n){return t===r.ConnectionPointSide.West||t===r.ConnectionPointSide.Undefined},e.prototype.getDirectConnectionPoints=function(t,e){var n=t.x+(e.x-t.x)/2;return[new a.ConnectorRenderPoint(n,t.y),new a.ConnectorRenderPoint(n,e.y)]},e}(s.ConnectorPointsOrthogonalSideCalculatorBase);e.ConnectorPointsOrthogonalEastSideCalculator=c},993:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalNorthSideCalculator=void 0;var r=n(3742),s=n(1816),a=n(4717),c=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.getCorrectOriginPoint=function(t,e){return t.y>e.y&&(t=t.clone().offset(0,e.y-t.y)),t},e.prototype.getSameShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:case r.ConnectionPointSide.West:case r.ConnectionPointSide.North:return[e.clone().offset(0,-this.getMinOffset())];case r.ConnectionPointSide.South:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset())}},e.prototype.getOverlappedPointsOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.South:return[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.North:return[e.clone().offset(0,-this.getMinOffset())]}return[]},e.prototype.getBeginOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return e.y>n.y?e.x>n.x?[]:[e.clone().offset(0,-this.getMinOffset())]:e.y<this.endRect.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):[e.clone().offset(0,-this.getMinOffset())];case r.ConnectionPointSide.West:return e.y>n.y?e.x<n.x?[]:[e.clone().offset(0,-this.getMinOffset())]:e.y<this.endRect.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):[e.clone().offset(0,-this.getMinOffset())];case r.ConnectionPointSide.North:return[e.clone().offset(0,-this.getMinOffset())];case r.ConnectionPointSide.South:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),e.x<n.x)}},e.prototype.getEndOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return n.y>e.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):e.x<n.x?[e.clone().offset(0,-this.getMinOffset())]:[];case r.ConnectionPointSide.West:return n.y>e.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):e.x>n.x?[e.clone().offset(0,-this.getMinOffset())]:[];case r.ConnectionPointSide.North:return[e.clone().offset(0,-this.getMinOffset())];case r.ConnectionPointSide.South:var i=-this.getMinOffset();return this.beginRect.y<e.y&&(i-=e.y-this.beginRect.y),[e.clone().offset(0,i)]}},e.prototype.getBeginOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(0,-this.getScaleableOffsetY(e,n,!1))]},e.prototype.getEndOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(0,-this.getScaleableOffsetY(e,n,!0))]},e.prototype.getBeginOffSideOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!1);break;case r.ConnectionPointSide.West:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!0);break;case r.ConnectionPointSide.North:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1);break;case r.ConnectionPointSide.Undefined:case r.ConnectionPointSide.South:return this.getScaleableAsideOffsetPoints(e,n,o,!1)}return[e.clone().offset(0,-this.getScaleableOffsetY(e,n,!1))]},e.prototype.getEndOffSideOffsetPoints=function(t,e,n,o){if(t===r.ConnectionPointSide.Undefined)return this.getScaleableAsideOffsetPoints(e,n,o,!0);if(this.isBeginEndOverlappedX()){var i=this.beginRect.center.x>this.endRect.center.x;return this.getScaleableAsideOffsetPoints(e,n,o,!0,i)}return[e.clone().offset(0,-this.getScaleableOffsetY(e,n,!0))]},e.prototype.getAsideOffsetPoints=function(t,e,n,o,i,r){var s=[];return void 0!==n&&(void 0===r&&(r=e.x<t.x),r?s.push(t.clone().offset(-(t.x-n.x+i),-o)):s.push(t.clone().offset(n.right-t.x+i,-o))),s.push(t.clone().offset(0,-o)),s},e.prototype.getScaleableAsideOffsetPoints=function(t,e,n,o,i){var r=this.getScaleableOffsetY(t,e,o),s=this.getScaleableOffsetX(t,e,o);return this.getAsideOffsetPoints(t,e,n,r,s,i)},e.prototype.getScaleableOffsetX=function(t,e,n){if(this.beginRect&&this.endRect&&!n&&!this.isBeginEndOverlappedX()){var o=void 0;if((o=e.x<t.x?this.beginRect.x-this.endRect.right:this.endRect.x-this.beginRect.right)<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.getScaleableOffsetY=function(t,e,n){if(this.beginRect&&this.endRect){var o=n?t.y-this.beginRect.bottom:t.y-this.endRect.bottom;if(o>0&&o<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.isOnSidePoint=function(t,e){return e.y<t.y},e.prototype.isDirectConnectionAllowed=function(t,e,n){return t===r.ConnectionPointSide.South||t===r.ConnectionPointSide.Undefined},e.prototype.getDirectConnectionPoints=function(t,e){var n=e.y+(t.y-e.y)/2;return[new a.ConnectorRenderPoint(t.x,n),new a.ConnectorRenderPoint(e.x,n)]},e}(s.ConnectorPointsOrthogonalSideCalculatorBase);e.ConnectorPointsOrthogonalNorthSideCalculator=c},1816:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalSideCalculatorBase=void 0;var o=n(8011),i=n(3742),r=n(7959),s=function(){function t(t){this.parent=t}return Object.defineProperty(t.prototype,\"connector\",{get:function(){return this.parent.connector},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"beginRect\",{get:function(){return this.parent.beginRect},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"endRect\",{get:function(){return this.parent.endRect},enumerable:!1,configurable:!0}),t.prototype.getBeginOffsetPoints=function(t,e,n,o){if(e=this.getCorrectOriginPoint(e,o),t!==i.ConnectionPointSide.Undefined){if(this.isBeginEndSame())return this.getSameShapeOffsetPoints(t,e,n,o);if(this.isBeginEndOverlappedPoints(e,n))return this.getOverlappedPointsOffsetPoints(t,e,n,o);if(this.isBeginEndOverlapped())return this.getBeginOverlappedShapeOffsetPoints(t,e,n,o)}else if(this.isOriginRectContainsTargetPoint(o,n))return this.getOverlappedPointsOffsetPoints(t,e,n,o);return this.isOnSidePoint(e,n)?this.getBeginOnSideOffsetPoints(t,e,n,o):this.getBeginOffSideOffsetPoints(t,e,n,o)},t.prototype.getEndOffsetPoints=function(t,e,n,o){if(e=this.getCorrectOriginPoint(e,o),t!==i.ConnectionPointSide.Undefined){if(this.isBeginEndSame())return this.getSameShapeOffsetPoints(t,e,n,o);if(this.isBeginEndOverlappedPoints(n,e))return this.getOverlappedPointsOffsetPoints(t,e,n,o);if(this.isBeginEndOverlapped())return this.getEndOverlappedShapeOffsetPoints(t,e,n,o)}else if(this.isOriginRectContainsTargetPoint(o,n))return this.getOverlappedPointsOffsetPoints(t,e,n,o);return this.isOnSidePoint(e,n)?this.getEndOnSideOffsetPoints(t,e,n,o):this.getEndOffSideOffsetPoints(t,e,n,o)},t.prototype.getSide=function(t,e){return Math.abs(e.x-t.x)>Math.abs(e.y-t.y)?e.x>t.x?i.ConnectionPointSide.East:i.ConnectionPointSide.West:e.y>t.y?i.ConnectionPointSide.South:i.ConnectionPointSide.North},t.prototype.getSideCalculator=function(t,e){return this.parent.getSideCalculator(this.getSide(t,e))},t.prototype.getMinOffset=function(){return r.Connector.minOffset},t.prototype.isBeginEndSame=function(){return this.connector.beginItem===this.connector.endItem},t.prototype.isBeginEndOverlapped=function(){return this.beginRect&&this.endRect&&o.Rectangle.areIntersected(this.beginRect,this.endRect)},t.prototype.isBeginEndOverlappedX=function(){return this.beginRect&&this.endRect&&!!o.Rectangle.getHorizIntersection(this.beginRect,this.endRect)},t.prototype.isBeginEndOverlappedY=function(){return this.beginRect&&this.endRect&&!!o.Rectangle.getVertIntersection(this.beginRect,this.endRect)},t.prototype.isBeginEndOverlappedPoints=function(t,e){return this.beginRect&&this.endRect&&(this.beginRect.containsPoint(e)||this.endRect.containsPoint(t))},t.prototype.isOriginRectContainsTargetPoint=function(t,e){return t&&e&&t.containsPoint(e)},t}();e.ConnectorPointsOrthogonalSideCalculatorBase=s},1774:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalSouthSideCalculator=void 0;var r=n(3742),s=n(1816),a=n(4717),c=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.getCorrectOriginPoint=function(t,e){return t.y<e.bottom&&(t=t.clone().offset(0,e.bottom-t.y)),t},e.prototype.getSameShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:case r.ConnectionPointSide.West:case r.ConnectionPointSide.South:return[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.North:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset())}},e.prototype.getOverlappedPointsOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.South:return[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.North:return[e.clone().offset(0,-this.getMinOffset())]}return[]},e.prototype.getBeginOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return e.y<n.y?e.x>n.x?[]:[e.clone().offset(0,this.getMinOffset())]:e.y>this.endRect.bottom?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.West:return e.y<n.y?e.x<n.x?[]:[e.clone().offset(0,this.getMinOffset())]:e.y>this.endRect.bottom?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.South:return[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.North:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),e.x<n.x)}},e.prototype.getEndOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return n.y<e.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):e.x<n.x?[e.clone().offset(0,this.getMinOffset())]:[];case r.ConnectionPointSide.West:return n.y<e.y?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):e.x>n.x?[e.clone().offset(0,this.getMinOffset())]:[];case r.ConnectionPointSide.South:return[e.clone().offset(0,this.getMinOffset())];case r.ConnectionPointSide.North:var i=this.getMinOffset();return this.beginRect.bottom>e.y&&(i+=this.beginRect.bottom-e.y),[e.clone().offset(0,i)]}},e.prototype.getBeginOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(0,this.getScaleableOffsetY(e,n,!1))]},e.prototype.getEndOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(0,this.getScaleableOffsetY(e,n,!0))]},e.prototype.getBeginOffSideOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!1);break;case r.ConnectionPointSide.West:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!0);break;case r.ConnectionPointSide.South:if(this.isBeginEndOverlappedX())return this.getScaleableAsideOffsetPoints(e,n,o,!1);break;case r.ConnectionPointSide.Undefined:case r.ConnectionPointSide.North:return this.getScaleableAsideOffsetPoints(e,n,o,!1)}return[e.clone().offset(0,this.getScaleableOffsetY(e,n,!1))]},e.prototype.getEndOffSideOffsetPoints=function(t,e,n,o){if(t===r.ConnectionPointSide.Undefined)return this.getScaleableAsideOffsetPoints(e,n,o,!0);if(this.isBeginEndOverlappedX()){var i=this.beginRect.center.x>this.endRect.center.x;return this.getScaleableAsideOffsetPoints(e,n,o,!0,i)}return[e.clone().offset(0,this.getScaleableOffsetY(e,n,!0))]},e.prototype.getAsideOffsetPoints=function(t,e,n,o,i,r){var s=[];return void 0!==n&&(void 0===r&&(r=e.x<t.x),r?s.push(t.clone().offset(-(t.x-n.x+i),o)):s.push(t.clone().offset(n.right-t.x+i,o))),s.push(t.clone().offset(0,o)),s},e.prototype.getScaleableAsideOffsetPoints=function(t,e,n,o,i){var r=this.getScaleableOffsetY(t,e,o),s=this.getScaleableOffsetX(t,e,o);return this.getAsideOffsetPoints(t,e,n,r,s,i)},e.prototype.getScaleableOffsetX=function(t,e,n){if(this.beginRect&&this.endRect&&!n&&!this.isBeginEndOverlappedX()){var o=void 0;if((o=e.x<t.x?this.beginRect.x-this.endRect.right:this.endRect.x-this.beginRect.right)<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.getScaleableOffsetY=function(t,e,n){if(this.beginRect&&this.endRect){var o=n?this.beginRect.y-t.y:this.endRect.y-t.y;if(o>0&&o<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.isOnSidePoint=function(t,e){return e.y>t.y},e.prototype.isDirectConnectionAllowed=function(t,e,n){return t===r.ConnectionPointSide.North||t===r.ConnectionPointSide.Undefined},e.prototype.getDirectConnectionPoints=function(t,e){var n=t.y+(e.y-t.y)/2;return[new a.ConnectorRenderPoint(t.x,n),new a.ConnectorRenderPoint(e.x,n)]},e}(s.ConnectorPointsOrthogonalSideCalculatorBase);e.ConnectorPointsOrthogonalSouthSideCalculator=c},1686:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalUndefinedSideCalculator=void 0;var r=n(1816),s=n(4717),a=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.getCorrectOriginPoint=function(t,e){return t},e.prototype.getSameShapeOffsetPoints=function(t,e,n,o){return[]},e.prototype.getOverlappedPointsOffsetPoints=function(t,e,n,o){return[]},e.prototype.getBeginOverlappedShapeOffsetPoints=function(t,e,n,o){return[]},e.prototype.getEndOverlappedShapeOffsetPoints=function(t,e,n,o){return[]},e.prototype.getBeginOnSideOffsetPoints=function(t,e,n,o){return[]},e.prototype.getEndOnSideOffsetPoints=function(t,e,n,o){return[]},e.prototype.getBeginOffSideOffsetPoints=function(t,e,n,o){return[]},e.prototype.getEndOffSideOffsetPoints=function(t,e,n,o){return[]},e.prototype.isOnSidePoint=function(t,e){return!0},e.prototype.isDirectConnectionAllowed=function(t,e,n){var o=this.getSideCalculator(e,n);return void 0===o||o.isDirectConnectionAllowed(t,e,n)},e.prototype.getDirectConnectionPoints=function(t,e){var n=Math.abs(e.x-t.x),o=Math.abs(e.y-t.y);if(n>o){var i=Math.min(t.x,e.x)+n/2;return[new s.ConnectorRenderPoint(i,t.y),new s.ConnectorRenderPoint(i,e.y)]}var r=Math.min(t.y,e.y)+o/2;return[new s.ConnectorRenderPoint(t.x,r),new s.ConnectorRenderPoint(e.x,r)]},e}(r.ConnectorPointsOrthogonalSideCalculatorBase);e.ConnectorPointsOrthogonalUndefinedSideCalculator=a},7369:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorPointsOrthogonalWestSideCalculator=void 0;var r=n(3742),s=n(1816),a=n(4717),c=function(t){function e(e){return t.call(this,e)||this}return i(e,t),e.prototype.getCorrectOriginPoint=function(t,e){return t.x>e.x&&(t=t.clone().offset(e.x-t.x,0)),t},e.prototype.getSameShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.North:case r.ConnectionPointSide.South:case r.ConnectionPointSide.West:return[e.clone().offset(-this.getMinOffset(),0)];case r.ConnectionPointSide.East:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset())}},e.prototype.getOverlappedPointsOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:return[e.clone().offset(this.getMinOffset(),0)];case r.ConnectionPointSide.West:return[e.clone().offset(-this.getMinOffset(),0)]}return[]},e.prototype.getBeginOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.North:return e.x>n.x?e.y<n.y?[]:[e.clone().offset(-this.getMinOffset(),0)]:e.x<this.endRect.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):[e.clone().offset(-this.getMinOffset(),0)];case r.ConnectionPointSide.South:return e.x>n.x?e.y>n.y?[]:[e.clone().offset(-this.getMinOffset(),0)]:e.x<this.endRect.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):[e.clone().offset(-this.getMinOffset(),0)];case r.ConnectionPointSide.West:return[e.clone().offset(-this.getMinOffset(),0)];case r.ConnectionPointSide.East:return this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),e.y<n.y)}},e.prototype.getEndOverlappedShapeOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.East:var i=-this.getMinOffset();return this.beginRect.x<e.x&&(i-=e.x-this.beginRect.x),[e.clone().offset(i,0)];case r.ConnectionPointSide.West:return[e.clone().offset(-this.getMinOffset(),0)];case r.ConnectionPointSide.North:return n.x>e.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!0):e.y>n.y?[e.clone().offset(-this.getMinOffset(),0)]:[];case r.ConnectionPointSide.South:return n.x>e.x?this.getAsideOffsetPoints(e,n,o,this.getMinOffset(),this.getMinOffset(),!1):e.y<n.y?[e.clone().offset(-this.getMinOffset(),0)]:[]}},e.prototype.getBeginOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(-this.getScaleableOffsetX(e,!1),0)]},e.prototype.getEndOnSideOffsetPoints=function(t,e,n,o){return[e.clone().offset(-this.getScaleableOffsetX(e,!0),0)]},e.prototype.getBeginOffSideOffsetPoints=function(t,e,n,o){switch(t){case r.ConnectionPointSide.South:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!1);break;case r.ConnectionPointSide.North:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1,!0);break;case r.ConnectionPointSide.West:if(this.isBeginEndOverlappedY())return this.getScaleableAsideOffsetPoints(e,n,o,!1);break;case r.ConnectionPointSide.Undefined:case r.ConnectionPointSide.East:return this.getScaleableAsideOffsetPoints(e,n,o,!1)}return[e.clone().offset(-this.getScaleableOffsetX(e,!1),0)]},e.prototype.getEndOffSideOffsetPoints=function(t,e,n,o){if(t===r.ConnectionPointSide.Undefined)return this.getScaleableAsideOffsetPoints(e,n,o,!0);if(this.isBeginEndOverlappedY()){var i=this.beginRect.center.y>this.endRect.center.y;return this.getScaleableAsideOffsetPoints(e,n,o,!0,i)}return[e.clone().offset(-this.getScaleableOffsetX(e,!0),0)]},e.prototype.getAsideOffsetPoints=function(t,e,n,o,i,r){var s=[];return void 0!==n&&(void 0===r&&(r=e.y<t.y),r?s.push(t.clone().offset(-o,-(t.y-n.y+i))):s.push(t.clone().offset(-o,n.bottom-t.y+i))),s.push(t.clone().offset(-o,0)),s},e.prototype.getScaleableAsideOffsetPoints=function(t,e,n,o,i){var r=this.getScaleableOffsetX(t,o),s=this.getScaleableOffsetY(t,e,o);return this.getAsideOffsetPoints(t,e,n,r,s,i)},e.prototype.getScaleableOffsetX=function(t,e){if(this.beginRect&&this.endRect){var n=e?t.x-this.beginRect.right:t.x-this.endRect.right;if(n>0&&n<2*this.getMinOffset())return n/2}return this.getMinOffset()},e.prototype.getScaleableOffsetY=function(t,e,n){if(this.beginRect&&this.endRect&&!n&&!this.isBeginEndOverlappedY()){var o=void 0;if((o=e.y<t.y?this.beginRect.y-this.endRect.bottom:this.endRect.y-this.beginRect.bottom)<2*this.getMinOffset())return o/2}return this.getMinOffset()},e.prototype.isOnSidePoint=function(t,e){return e.x<t.x},e.prototype.isDirectConnectionAllowed=function(t,e,n){return t===r.ConnectionPointSide.East||t===r.ConnectionPointSide.Undefined},e.prototype.getDirectConnectionPoints=function(t,e){var n=e.x+(t.x-e.x)/2;return[new a.ConnectorRenderPoint(n,t.y),new a.ConnectorRenderPoint(n,e.y)]},e}(s.ConnectorPointsOrthogonalSideCalculatorBase);e.ConnectorPointsOrthogonalWestSideCalculator=c},7959:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Connector=e.CONNECTOR_DEFAULT_TEXT_POSITION=e.ConnectorPosition=void 0;var r,s=n(9291),a=n(8011),c=n(1335),u=n(6353),h=n(7716),p=n(7185),l=n(6031),d=n(4246),f=n(7724),y=n(9416),g=n(3500),m=n(240),v=n(8675),P=n(3742),C=n(4867),S=n(5800),x=n(2342),b=n(5454),I=n(4612),w=n(4351),_=n(1510);!function(t){t[t.Begin=0]=\"Begin\",t[t.End=1]=\"End\"}(r=e.ConnectorPosition||(e.ConnectorPosition={})),e.CONNECTOR_DEFAULT_TEXT_POSITION=.5;var T=function(t){function n(e){var n=t.call(this)||this;if(n.beginConnectionPointIndex=-1,n.endConnectionPointIndex=-1,n.properties=new I.ConnectorProperties,n.points=e.map((function(t){return t.clone()})),e.length<2)throw Error(\"Points count should be greater than 1\");return n.texts=new w.ConnectorTexts,n}return i(n,t),Object.defineProperty(n.prototype,\"rectangle\",{get:function(){return v.GeometryUtils.createRectagle(this.getRenderPoints(!0))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"skippedRenderPoints\",{get:function(){return this.renderPoints?this.renderPoints.filter((function(t){return t.skipped})):void 0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"shouldChangeRenderPoints\",{get:function(){return void 0!==this.renderPoints&&void 0!==this.routingStrategy},enumerable:!1,configurable:!0}),n.prototype.assign=function(e){t.prototype.assign.call(this,e),e.beginItem=this.beginItem,e.beginConnectionPointIndex=this.beginConnectionPointIndex,e.endItem=this.endItem,e.endConnectionPointIndex=this.endConnectionPointIndex,e.properties=this.properties.clone(),e.texts=this.texts.clone(),void 0!==this.routingStrategy&&(e.routingStrategy=this.routingStrategy.clone()),void 0!==this.renderPoints&&(e.renderPoints=this.renderPoints.map((function(t){return t.clone()}))),void 0!==this.renderPointsWithoutSkipped&&(e.renderPointsWithoutSkipped=this.renderPointsWithoutSkipped.map((function(t){return t.clone()}))),void 0!==this.actualRoutingMode&&(e.actualRoutingMode=this.actualRoutingMode),void 0!==this.lockCreateRenderPoints&&(e.lockCreateRenderPoints=this.lockCreateRenderPoints),void 0!==this.shouldInvalidateRenderPoints&&(e.shouldInvalidateRenderPoints=this.shouldInvalidateRenderPoints)},n.prototype.clone=function(){var t=new n(this.points);return this.assign(t),t},n.prototype.getTextCount=function(){return this.texts.count()},n.prototype.getText=function(t){void 0===t&&(t=e.CONNECTOR_DEFAULT_TEXT_POSITION);var n=this.texts.get(t);return n?n.value:\"\"},n.prototype.setText=function(t,n){void 0===n&&(n=e.CONNECTOR_DEFAULT_TEXT_POSITION),t&&\"\"!==t?this.texts.set(n,new w.ConnectorText(n,t)):this.texts.remove(n)},n.prototype.getTextPoint=function(t){var e=this.getRenderPoints();return v.GeometryUtils.getPathPointByPosition(e,t)[0]},n.prototype.getTextPositionByPoint=function(t){var e=this.getRenderPoints(),n=v.GeometryUtils.getPathLength(e),o=v.GeometryUtils.getPathPositionByPoint(e,t),i=s.UnitConverter.pointsToTwips(parseInt(this.styleText[\"font-size\"]));return i>o*n?i/n:i>n-o*n?(n-i)/n:o},n.prototype.getTextRectangle=function(t){return a.Rectangle.fromGeometry(this.getTextPoint(t),new u.Size(0,0))},n.prototype.changeRoutingStrategy=function(t){this.routingStrategy=t,this.invalidateRenderPoints()},n.prototype.clearRoutingStrategy=function(){delete this.routingStrategy,delete this.renderPoints,delete this.renderPointsWithoutSkipped,delete this.lockCreateRenderPoints,delete this.actualRoutingMode,delete this.shouldInvalidateRenderPoints,this.invalidateRenderPoints()},n.prototype.getCustomRenderPoints=function(t){void 0===t&&(t=!1);var e=this.getRenderPoints(t),n=[];return e.forEach((function(t,o){o>0&&o<e.length-1&&n.push(t)})),n},n.prototype.getRenderPoints=function(t){if(void 0===t&&(t=!1),(void 0===this.shouldInvalidateRenderPoints||this.shouldInvalidateRenderPoints)&&(this.shouldInvalidateRenderPoints=!1,this.routingStrategy&&this.lockCreateRenderPoints||this.changeRenderPoints(this.getCalculator().getPoints()),this.routingStrategy&&!this.lockCreateRenderPoints&&this.actualRoutingMode!==m.ConnectorRoutingMode.None&&this.points&&this.renderPoints)){var e=this.points[0],n=this.points[this.points.length-1];if(!e.equals(n)){var o=this.routingStrategy.createRenderPoints(this.points,this.renderPoints,this.beginItem,this.endItem,this.beginConnectionPointIndex,this.endConnectionPointIndex,C.ModelUtils.getConnectorContainer(this));o?(this.changeRenderPoints(o),this.actualRoutingMode=m.ConnectorRoutingMode.AllShapesOnly):this.actualRoutingMode=m.ConnectorRoutingMode.None}}return t?this.renderPoints:this.renderPointsWithoutSkipped},n.prototype.tryCreateRenderPointsContext=function(t){return t||this.shouldChangeRenderPoints?new _.ConnectorRenderPointsContext(this.renderPoints.map((function(t){return t.clone()})),this.lockCreateRenderPoints,this.actualRoutingMode):void 0},n.prototype.updatePointsOnPageResize=function(t,e){this.points=this.points.map((function(n){return n.clone().offset(t,e)})),this.renderPoints&&this.changeRenderPoints(this.renderPoints.map((function(n){var o=n.clone().offset(t,e);return o.pointIndex=n.pointIndex,o.skipped=n.skipped,o})))},n.prototype.addPoint=function(t,e){this.points.splice(t,0,e)},n.prototype.deletePoint=function(t){this.points.splice(t,1)},n.prototype.movePoint=function(t,e){this.points[t]=e},n.prototype.onAddPoint=function(t,e){this.shouldChangeRenderPoints?this.replaceRenderPointsCore(this.routingStrategy.onAddPoint(this.points,t,e,this.renderPoints),!0,m.ConnectorRoutingMode.AllShapesOnly):this.invalidateRenderPoints()},n.prototype.onDeletePoint=function(t){this.shouldChangeRenderPoints?this.replaceRenderPointsCore(this.routingStrategy.onDeletePoint(this.points,t,this.renderPoints),this.points.length>2,m.ConnectorRoutingMode.AllShapesOnly):this.invalidateRenderPoints()},n.prototype.onMovePoint=function(t,e){this.shouldChangeRenderPoints?(0!==t&&t!==this.points.length-1||(this.lockCreateRenderPoints=!1),this.replaceRenderPointsCore(this.routingStrategy.onMovePoint(this.points,t,e,this.renderPoints),this.lockCreateRenderPoints,m.ConnectorRoutingMode.AllShapesOnly)):this.invalidateRenderPoints()},n.prototype.onMovePoints=function(t,e,n){this.shouldChangeRenderPoints?(0!==t&&e!==this.points.length-1||(this.lockCreateRenderPoints=!1),this.replaceRenderPointsCore(this.routingStrategy.onMovePoints(this.points,t,e,n,this.renderPoints),this.lockCreateRenderPoints,m.ConnectorRoutingMode.AllShapesOnly)):this.invalidateRenderPoints()},n.prototype.replaceRenderPoints=function(t,e){void 0!==t?(this.replaceRenderPointsCore(t.renderPoints,t.lockCreateRenderPoints,t.actualRoutingMode),void 0!==e&&(this.shouldInvalidateRenderPoints=e)):this.invalidateRenderPoints()},n.prototype.clearRenderPoints=function(){this.changeRenderPoints(void 0),this.lockCreateRenderPoints=!1,this.actualRoutingMode=void 0,this.invalidateRenderPoints()},n.prototype.replaceRenderPointsCore=function(t,e,n){this.changeRenderPoints(t),this.lockCreateRenderPoints=e,this.actualRoutingMode=n,this.invalidateRenderPoints()},n.prototype.changeRenderPoints=function(t){this.renderPoints=t,this.renderPointsWithoutSkipped=t?this.renderPoints.filter((function(t){return!t.skipped})):void 0},n.prototype.getCalculator=function(){return this.properties.lineOption===I.ConnectorLineOption.Straight?new S.ConnectorPointsCalculator(this):new x.ConnectorPointsOrthogonalCalculator(this)},n.prototype.invalidateRenderPoints=function(){this.shouldInvalidateRenderPoints=!0},n.prototype.createPrimitives=function(t){var e=[],n=this.getRenderPoints(),o=new f.PathPrimitive(n.map((function(t,e){return 0===e?new f.PathPrimitiveMoveToCommand(t.x,t.y):new f.PathPrimitiveLineToCommand(t.x,t.y)})),this.style);return e.push(o),e=(e=e.concat(this.createLineEndingPrimitives(n,o))).concat(this.createTextPrimitives(t))},n.prototype.createLineEndingPrimitives=function(t,e){var n=[];t.length>1&&[{strategy:this.createLineEndingStrategy(this.properties.startLineEnding),point1:t[0],point2:t[1]},{strategy:this.createLineEndingStrategy(this.properties.endLineEnding),point1:t[t.length-1],point2:t[t.length-2]}].forEach((function(t){var o=t.strategy;if(o.hasCommands()){var i=e;o.needCreateSeparatePrimitive()&&n.push(i=o.createPrimitive()),i.commands=i.commands.concat(o.createCommands(t.point1,t.point2))}}));return n},n.prototype.createLineEndingStrategy=function(t){switch(t){case I.ConnectorLineEnding.None:return new b.ConnectorLineEndingNoneStrategy(this.style);case I.ConnectorLineEnding.Arrow:return new b.ConnectorLineEndingArrowStrategy(this.style);case I.ConnectorLineEnding.OutlinedTriangle:return new b.ConnectorLineEndingOutlinedTriangleStrategy(this.style);case I.ConnectorLineEnding.FilledTriangle:return new b.ConnectorLineEndingFilledTriangleStrategy(this.style);default:return new b.ConnectorLineEndingStrategy(this.style)}},n.prototype.createSelectorPrimitives=function(){var t=[],e=this.getRenderPoints();return t.push(new f.PathPrimitive(e.map((function(t,e){return 0===e?new f.PathPrimitiveMoveToCommand(t.x,t.y):new f.PathPrimitiveLineToCommand(t.x,t.y)})),null,\"selector\")),t},n.prototype.createTextPrimitives=function(t){var e=this;if(!this.enableText)return[];var n=[];return this.texts.forEach((function(o){var i=e.getText(o.position);if(i&&\"\"!==i){var r=e.getTextPoint(o.position);n=n.concat([new y.TextPrimitive(r.x,r.y,i,d.TextOwner.Connector,void 0,void 0,void 0,e.styleText,!0,null,h.PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX+t,void 0,(function(t){g.RenderUtils.setElementEventData(t,l.MouseEventElementType.ConnectorText,e.key,o.position)}))])}})),n},n.prototype.getExtremeItem=function(t){return t===r.Begin?this.beginItem:t===r.End?this.endItem:null},n.prototype.getExtremeConnectionPointIndex=function(t){return t===r.Begin?this.beginConnectionPointIndex:t===r.End?this.endConnectionPointIndex:-1},n.prototype.getMinX=function(){return this.getRenderPoints().map((function(t){return t.x})).reduce((function(t,e){return Math.min(t,e)}),Number.MAX_VALUE)},n.prototype.getMinY=function(){return this.getRenderPoints().map((function(t){return t.y})).reduce((function(t,e){return Math.min(t,e)}),Number.MAX_VALUE)},n.prototype.getConnectionPoints=function(){return[]},n.prototype.getConnectionPointSide=function(t,e){return P.ConnectionPointSide.Undefined},n.prototype.getSegments=function(){var t=[],e=this.getRenderPoints();return e.forEach((function(n,o){o>0&&t.push(new c.Segment(e[o-1],n))})),t},n.prototype.intersectedByRect=function(t){return this.getSegments().some((function(e){return e.isIntersectedByRect(t)}))},n.prototype.toNative=function(t){var e=new p.NativeConnector(this.key,this.dataKey);return e.fromKey=this.beginItem&&this.beginItem.dataKey,e.toKey=this.endItem&&this.endItem.dataKey,e.texts=this.texts.map((function(t){return t})).sort((function(t,e){return t.position-e.position})).map((function(t){return t.value})),e.fromId=this.beginItem&&this.beginItem.key,e.fromPointIndex=this.beginConnectionPointIndex,e.toId=this.endItem&&this.endItem.key,e.toPointIndex=this.endConnectionPointIndex,e.points=this.points.map((function(t){return t.clone()})),e.applyUnits(t),e},n.minOffset=s.UnitConverter.pixelsToTwips(24),n.minTextHeight=s.UnitConverter.pixelsToTwips(12),n}(P.DiagramItem);e.Connector=T},5454:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorLineEndingFilledTriangleStrategy=e.ConnectorLineEndingOutlinedTriangleStrategy=e.ConnectorLineEndingArrowStrategy=e.ConnectorLineEndingNoneStrategy=e.ConnectorLineEndingStrategy=void 0;var r=n(8675),s=n(7724),a=function(){function t(t){this.style=t}return t.prototype.hasCommands=function(){return!0},t.prototype.needCreateSeparatePrimitive=function(){return!1},t.prototype.createPrimitive=function(){return new s.PathPrimitive([],this.getStyle(),this.getCssClass())},t.prototype.createCommands=function(t,e){return[]},t.prototype.getStyle=function(){var t=this.style.clone();return t.resetStrokeDashArray(),t},t.prototype.getCssClass=function(){},t}();e.ConnectorLineEndingStrategy=a;var c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.hasCommands=function(){return!1},e}(a);e.ConnectorLineEndingNoneStrategy=c;var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"arrowHeight\",{get:function(){return 6*this.style.strokeWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"arrowWidth\",{get:function(){return 2*this.style.strokeWidth},enumerable:!1,configurable:!0}),e.prototype.needCreateSeparatePrimitive=function(){return!this.style.isDefaultStrokeDashArray()},e.prototype.createCommands=function(t,e){var n=this.getArrowPoints(t,e),o=[new s.PathPrimitiveMoveToCommand(n.point1.x,n.point1.y),new s.PathPrimitiveLineToCommand(t.x,t.y),new s.PathPrimitiveLineToCommand(n.point2.x,n.point2.y)];return this.style.isDefaultStrokeDashArray()||(o=o.concat([new s.PathPrimitiveMoveToCommand(t.x,t.y),new s.PathPrimitiveLineToCommand(n.point3.x,n.point3.y)])),o},e.prototype.getArrowPoints=function(t,e){var n,o=this.arrowHeight;t.x===e.x&&((n=Math.abs(t.y-e.y))<o&&(o=n));t.y===e.y&&((n=Math.abs(t.x-e.x))<o&&(o=n));return r.GeometryUtils.getArrowPoints(t,e,o,this.arrowWidth)},e}(a);e.ConnectorLineEndingArrowStrategy=u;var h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.needCreateSeparatePrimitive=function(){return!0},e.prototype.createCommands=function(t,e){var n=this.getArrowPoints(t,e);return[new s.PathPrimitiveMoveToCommand(n.point1.x,n.point1.y),new s.PathPrimitiveLineToCommand(t.x,t.y),new s.PathPrimitiveLineToCommand(n.point2.x,n.point2.y),new s.PathPrimitiveClosePathCommand]},e.prototype.getCssClass=function(){return\"outlined-line-ending\"},e}(u);e.ConnectorLineEndingOutlinedTriangleStrategy=h;var p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.getStyle=function(){var e=t.prototype.getStyle.call(this);return e.fill=e.stroke,e},e.prototype.getCssClass=function(){return\"filled-line-ending\"},e}(h);e.ConnectorLineEndingFilledTriangleStrategy=p},4612:(t,e)=>{var n,o;Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorProperties=e.DEFAULT_CONNECTOR_ENDLINEENDING=e.DEFAULT_CONNECTOR_STARTLINEENDING=e.DEFAULT_CONNECTOR_LINEOPTION=e.ConnectorLineEnding=e.ConnectorLineOption=void 0,function(t){t[t.Straight=0]=\"Straight\",t[t.Orthogonal=1]=\"Orthogonal\"}(n=e.ConnectorLineOption||(e.ConnectorLineOption={})),function(t){t[t.None=0]=\"None\",t[t.Arrow=1]=\"Arrow\",t[t.OutlinedTriangle=2]=\"OutlinedTriangle\",t[t.FilledTriangle=3]=\"FilledTriangle\"}(o=e.ConnectorLineEnding||(e.ConnectorLineEnding={})),e.DEFAULT_CONNECTOR_LINEOPTION=n.Orthogonal,e.DEFAULT_CONNECTOR_STARTLINEENDING=o.None,e.DEFAULT_CONNECTOR_ENDLINEENDING=o.Arrow;var i=function(){function t(){this.lineOption=e.DEFAULT_CONNECTOR_LINEOPTION,this.startLineEnding=e.DEFAULT_CONNECTOR_STARTLINEENDING,this.endLineEnding=e.DEFAULT_CONNECTOR_ENDLINEENDING}return t.prototype.clone=function(){var e=new t;return e.lineOption=this.lineOption,e.startLineEnding=this.startLineEnding,e.endLineEnding=this.endLineEnding,e},t.prototype.forEach=function(t){for(var e in this)Object.prototype.hasOwnProperty.call(this,e)&&t(e)},t.prototype.toObject=function(){var t={},n=!1;return this.lineOption!==e.DEFAULT_CONNECTOR_LINEOPTION&&(t.lineOption=this.lineOption,n=!0),this.startLineEnding!==e.DEFAULT_CONNECTOR_STARTLINEENDING&&(t.startLineEnding=this.startLineEnding,n=!0),this.endLineEnding!==e.DEFAULT_CONNECTOR_ENDLINEENDING&&(t.endLineEnding=this.endLineEnding,n=!0),n?t:null},t.prototype.fromObject=function(t){\"number\"==typeof t.lineOption&&(this.lineOption=t.lineOption),\"number\"==typeof t.startLineEnding&&(this.startLineEnding=t.startLineEnding),\"number\"==typeof t.endLineEnding&&(this.endLineEnding=t.endLineEnding)},t}();e.ConnectorProperties=i},4717:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorRenderPoint=void 0;var r=function(t){function e(e,n,o,i){void 0===o&&(o=-1),void 0===i&&(i=!1);var r=t.call(this,e,n)||this;return r.pointIndex=o,r.skipped=i,r}return i(e,t),e.prototype.offset=function(e,n){return t.prototype.offset.call(this,e,n),this.pointIndex=-1,this.skipped=!1,this},e.prototype.multiply=function(e,n){return t.prototype.multiply.call(this,e,n),this.pointIndex=-1,this.skipped=!1,this},e.prototype.clone=function(){return new e(this.x,this.y,this.pointIndex,this.skipped)},e.equal=function(t,e){return t.equals(e)&&t.pointIndex===e.pointIndex&&t.skipped===e.skipped},e.prototype.toObject=function(){return{x:this.x,y:this.y,pointIndex:this.pointIndex,skipped:this.skipped}},e.fromObject=function(t){return new e(t.x,t.y,t.pointIndex,t.skipped)},e}(n(8900).Point);e.ConnectorRenderPoint=r},4351:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorTexts=e.ConnectorText=void 0;var n=function(t,e){this.position=t,this.value=e};e.ConnectorText=n;var o=function(){function t(){this.items={}}return t.prototype.get=function(t){return this.items[t]},t.prototype.set=function(t,e){this.items[t]=e},t.prototype.remove=function(t){delete this.items[t]},t.prototype.map=function(t){var e=[];return this.forEach((function(n){return e.push(t(n))})),e},t.prototype.forEach=function(t){for(var e in this.items)Object.prototype.hasOwnProperty.call(this.items,e)&&t(this.items[e])},t.prototype.count=function(){return Object.keys(this.items).length},t.prototype.clone=function(){var e=new t;return this.forEach((function(t){e.set(t.position,new n(t.position,t.value))})),e},t.prototype.toObject=function(){var t={},e=!1;return this.forEach((function(n){t[n.position]=n.value,e=!0})),e?t:null},t.prototype.fromObject=function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var o=parseFloat(e);isNaN(o)||\"string\"!=typeof t[e]||this.set(o,new n(o,t[e]))}},t}();e.ConnectorTexts=o},3975:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.AStarCalculator=void 0;var n=function(){function t(){}return t.calculate=function(t){if(t)for(var e=this.start(t);e;)e=e(t)},t.start=function(e){return e.start(),e.shouldStartContinue?t.startContinue:t.finishWithPath},t.startContinue=function(e){return e.startContinue(),e.shouldFinish?t.finishWithPath:t.endContinue},t.endContinue=function(e){return e.endContinue(),e.shouldStartContinue?t.startContinue:t.finishWithoutPath},t.finishWithPath=function(t){t.finishWithPath()},t.finishWithoutPath=function(t){t.finishWithoutPath()},t}();e.AStarCalculator=n},2180:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AStarContext=e.AStarContextBase=void 0;var r=n(3225),s=n(1039),a=n(684),c=n(1335),u=n(5074),h=n(8675),p=function(){function t(t,e,n){this.startPosition=t,this.targetPosition=e,this.maxStepsCount=n,this.prohibitedPoints={}}return Object.defineProperty(t.prototype,\"shouldStartContinue\",{get:function(){return this.updatableSet.count>0&&this.stepsCount<this.maxStepsCount},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shouldFinish\",{get:function(){return this.currentNode.position.equals(this.targetPosition)},enumerable:!1,configurable:!0}),t.prototype.start=function(){this.generalSet=new r.SortedQueues((function(t){return t.key})),this.updatableSet=new s.UniqueAStarNodePositions;var t=new a.AStarNode(this.startPosition,this.getDistance(this.startPosition,this.targetPosition));this.currentNode=t,this.generalSet.enqueue(t),this.updatableSet.add(t.position,t),this.stepsCount=0,this.openNode=void 0},t.prototype.startContinue=function(){this.currentNode=this.generalSet.dequeueMin()},t.prototype.endContinue=function(){var t=this,e=this.currentNode.position;this.updatableSet.remove(e),this.addProhibitedPoint(e),this.getNeighborPoints(e).forEach((function(e){var n=t.getPenalty(t.currentNode,e),o=t.updatableSet.getNode(e);if(void 0===o)(o=new a.AStarNode(e,t.getDistance(e,t.targetPosition))).parent=t.currentNode,o.penalty=n,t.generalSet.enqueue(o),t.updatableSet.add(e,o);else if(o.penalty>n){var i=t.generalSet;i.remove(o),o.parent=t.currentNode,o.penalty=n,i.enqueue(o)}t.openNode=o})),this.stepsCount++},t.prototype.finishWithPath=function(){this.path=this.currentNode.getPath()},t.prototype.finishWithoutPath=function(){this.path=[]},t}();e.AStarContextBase=p;var l=function(t){function e(e,n,o,i,r,s){var a=t.call(this,n,o,1e4)||this;return a.routingContext=e,a.startPosition=n,a.targetPosition=o,a.prohibitedSegments=i,a.grid=r,a.metrics=s,a}return i(e,t),e.prototype.addProhibitedPoint=function(t){this.prohibitedPoints[t.toString()]=t},e.prototype.getNeighborPoints=function(t){var e=this;return this.grid.getNeighborPoints(t).filter((function(t){return e.allowPoint(t)}))},e.prototype.getDistance=function(t,e){return this.metrics.distance(t,e)},e.prototype.getPenalty=function(t,e){var n=t.parent,o=t.position,i=this.getTurnDirection(n?h.GeometryUtils.createAngle(n.position,o,e):0),r=this.getDistance(o,e),s=new c.Segment(o,e).center;return t.penalty+this.metrics.penalty(r,s,i,this.getIntersectedItems(s))},e.prototype.allowPoint=function(t){return void 0===this.prohibitedPoints[t.toString()]&&(!this.prohibitedSegments||this.prohibitedSegments.allowPoint(t))},e.prototype.getTurnDirection=function(t){return u.RightAngleConnectorRoutingMathOperations.getTurnDirection(t)},e.prototype.getIntersectedItems=function(t){var e=this,n=this.routingContext.shapeMargins;return this.routingContext.getIntersectedItems(t,(function(t,o){return e.hasIntersectedItem(t,o,n)}))},e.prototype.hasIntersectedItem=function(t,e,n){return!!this.isIntersectedWithExtendedRectangle(t,e,n)&&(!!this.hasOneShapeConnection(e)||!this.itemContainsConnectionPoints(e))},e.prototype.isIntersectedWithExtendedRectangle=function(t,e,n){return e.rectangle.clone().inflate(n).containsPoint(t)},e.prototype.itemContainsConnectionPoints=function(t){var e=t.rectangle;return e.containsPoint(this.routingContext.beginPoint)&&e.containsPoint(this.routingContext.endPoint)},e.prototype.hasOneShapeConnection=function(t){var e=t.getConnectionPoints();return this.isConnectionPoint(e,this.routingContext.beginPoint)&&this.isConnectionPoint(e,this.routingContext.endPoint)},e.prototype.isConnectionPoint=function(t,e){return t.filter((function(t){return t.equals(e)})).length>0},e}(p);e.AStarContext=l},9927:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.IntersectedShapeZone=e.AStarMetrics=e.IntersectedShapesMetrics=e.TurnDirectionMetrics=e.IntersectedShapeMetrics=e.RightAngleTurnDirection=void 0;var o,i=n(8900),r=n(5596);!function(t){t[t.Straight=0]=\"Straight\",t[t.Left=1]=\"Left\",t[t.Right=2]=\"Right\",t[t.Backwards=3]=\"Backwards\"}(o=e.RightAngleTurnDirection||(e.RightAngleTurnDirection={}));var s=function(){function t(t,e){this.description=t,this.shapeMargin=e}return t.prototype.penalty=function(t,e,n,o){var i=o.rectangle;if(i.containsPoint(n))return t+this.description.shape*e;var r=this.createRelativeMarginPenalty(n,i,this.shapeMargin);return r>0?t+this.description.margin*r*e:t},t.prototype.createRelativeMarginPenalty=function(t,e,n){var o=this.isTopPosition(t,e,n),s=this.isLeftPosition(t,e,n),a=this.isBottomPosition(t,e,n),c=this.isRightPosition(t,e,n);if(o){if(s){var u=(l=e.clone().inflate(n)).createPosition(),h=e.createPosition(),p=r.Metrics.euclideanDistance(h,u);return 1-r.Metrics.euclideanDistance(h,t)/p}if(c){var l=e.clone().inflate(n),d=new i.Point(l.right,l.y),f=new i.Point(e.right,e.y),y=r.Metrics.euclideanDistance(f,d);return 1-r.Metrics.euclideanDistance(f,t)/y}return 1-(e.y-t.y)/n}if(a){if(s){l=e.clone().inflate(n);var g=new i.Point(l.x,l.bottom),m=new i.Point(e.x,e.bottom),v=r.Metrics.euclideanDistance(m,g);return 1-r.Metrics.euclideanDistance(m,t)/v}if(c){l=e.clone().inflate(n);var P=new i.Point(l.right,l.bottom),C=new i.Point(e.right,e.bottom),S=r.Metrics.euclideanDistance(C,P);return 1-r.Metrics.euclideanDistance(C,t)/S}return 1-(t.y-e.bottom)/n}return s?1-(e.x-t.x)/n:c?1-(t.x-e.right)/n:0},t.prototype.isTopPosition=function(t,e,n){return t.x>e.x-n&&t.x<e.right+n&&t.y>e.y-n&&t.y<e.y},t.prototype.isBottomPosition=function(t,e,n){return t.x>e.x-n&&t.x<e.right+n&&t.y>e.bottom&&t.y<e.bottom+n},t.prototype.isLeftPosition=function(t,e,n){return t.x>e.x-n&&t.x<e.x&&t.y>e.y-n&&t.y<e.bottom+n},t.prototype.isRightPosition=function(t,e,n){return t.x>e.right&&t.x<e.right+n&&t.y>e.y-n&&t.y<e.bottom+n},t}();e.IntersectedShapeMetrics=s;var a=function(){function t(t){this.description=t}return t.prototype.penalty=function(t,e){switch(e){case o.Backwards:return t*this.description.turnBack;case o.Left:return t*this.description.turnLeft;case o.Right:return t*this.description.turnRight}return t},t}();e.TurnDirectionMetrics=a;var c=function(){function t(t){this.shapeMetrics=t}return t.prototype.penalty=function(t,e,n,o){var i=this;if(!o||!o.length)return t;var r=t;return o.forEach((function(t){return r=i.shapeMetrics.penalty(r,e,n,t)})),r},t}();e.IntersectedShapesMetrics=c;var u=function(){function t(t,e){this.turnDirectionMetrics=t,this.shapesMetrics=e}return t.prototype.distance=function(t,e){return r.Metrics.manhattanDistance(t,e)},t.prototype.penalty=function(t,e,n,o){var i=t;return i=this.shapesMetrics.penalty(i,t,e,o),i=this.turnDirectionMetrics.penalty(i,n)},t}();e.AStarMetrics=u,function(t){t[t.None=0]=\"None\",t[t.Shape=1]=\"Shape\",t[t.Margin=2]=\"Margin\"}(e.IntersectedShapeZone||(e.IntersectedShapeZone={}))},684:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.AStarNode=void 0;var n=function(){function t(t,e){this.position=t,this.distance=e,this.penalty=0}return Object.defineProperty(t.prototype,\"key\",{get:function(){return this.distance+this.penalty},enumerable:!1,configurable:!0}),t.prototype.getPath=function(){for(var t=[],e=this;void 0!==e;)t.splice(0,0,e.position),e=e.parent;return t},t}();e.AStarNode=n},3225:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.SortedQueues=void 0;var o=n(2400),i=function(){function t(t){this.getKey=t,this._itemsArrays={},this._sortedKeys=[]}return Object.defineProperty(t.prototype,\"sortedKeys\",{get:function(){return this._sortedKeys},enumerable:!1,configurable:!0}),t.prototype.getQueue=function(t){return this._itemsArrays[t]},t.prototype.enqueue=function(t){var e=this.getKey(t);void 0===this._itemsArrays[e]?(this._itemsArrays[e]=[t],this.addSortedKey(e)):this._itemsArrays[e].push(t)},t.prototype.remove=function(t){var e=this.getKey(t),n=this._itemsArrays[e];void 0!==n&&(n.length?n[0]===t?(n.shift(),n.length||this.removeCore(e)):this._itemsArrays[e]=n.filter((function(e){return e!==t})):this.removeCore(e))},t.prototype.dequeueMin=function(){if(this._sortedKeys.length){var t=this._sortedKeys[0],e=this._itemsArrays[t],n=e.shift();return e.length||this.removeCore(t),n}},t.prototype.removeCore=function(t){delete this._itemsArrays[t],this.removeSortedKey(t)},t.prototype.removeSortedKey=function(t){var e=o.SearchUtils.binaryIndexOf(this._sortedKeys,(function(e){return e-t}));e>=0&&this.sortedKeys.splice(e,1)},t.prototype.addSortedKey=function(t){var e=o.SearchUtils.binaryIndexOf(this._sortedKeys,(function(e){return e-t}));e<0&&this._sortedKeys.splice(-(e+1),0,t)},t}();e.SortedQueues=i},1039:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.UniqueAStarNodePositions=void 0;var n=function(){function t(t){void 0===t&&(t=function(t){return t.toString()}),this.getKey=t,this.items={}}return Object.defineProperty(t.prototype,\"count\",{get:function(){return Object.keys(this.items).length},enumerable:!1,configurable:!0}),t.prototype.getNode=function(t){var e=this.items[this.getKey(t)];return void 0!==e?e.node:void 0},t.prototype.add=function(t,e){var n=this.getKey(t);void 0===this.items[n]&&(this.items[n]={position:t,node:e})},t.prototype.remove=function(t){var e=this.getKey(t);void 0!==this.items[e]&&delete this.items[e]},t}();e.UniqueAStarNodePositions=n},1768:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorProhibitedSegments=void 0;var n=function(){function t(){this.segments=[],this.exludedPoints={}}return t.prototype.addSegment=function(t){this.segments.push(t)},t.prototype.addExludedPoint=function(t){this.exludedPoints[t.toString()]=t},t.prototype.allowPoint=function(t){if(void 0===this.exludedPoints[t.toString()])for(var e=0;e<this.segments.length;e++)if(this.segments[e].containsPoint(t))return!1;return!0},t}();e.ConnectorProhibitedSegments=n},1510:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorRenderPointsContext=void 0;var o=n(4717),i=function(){function t(t,e,n){this.renderPoints=t,this.lockCreateRenderPoints=e,this.actualRoutingMode=n}return t.prototype.toObject=function(){return{actualRoutingMode:this.actualRoutingMode,lockCreateRenderPoints:this.lockCreateRenderPoints,renderPoints:this.renderPoints.map((function(t){return t.toObject()}))}},t.fromObject=function(e){return new t(e.renderPoints.map((function(t){return o.ConnectorRenderPoint.fromObject(t)})),e.lockCreateRenderPoints,e.actualRoutingMode)},t}();e.ConnectorRenderPointsContext=i},2868:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorRenderSegment=void 0;var o=n(1335),i=n(1768),r=function(){function t(t,e,n,o){this.startInfo=t,this.endInfo=e,this.startPointIndex=n,this.previousCustomSegment=o}return Object.defineProperty(t.prototype,\"startPathPoint\",{get:function(){return this.startInfo instanceof o.Segment?this.startInfo.endPoint:this.startInfo},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"endPathPoint\",{get:function(){return this.endInfo instanceof o.Segment?this.endInfo.startPoint:this.endInfo},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"startPoint\",{get:function(){return this.startInfo instanceof o.Segment?this.startInfo.startPoint:this.startInfo},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"endPoint\",{get:function(){return this.endInfo instanceof o.Segment?this.endInfo.endPoint:this.endInfo},enumerable:!1,configurable:!0}),t.prototype.createGridPoints=function(){var t=[];return this.endInfo instanceof o.Segment?(t.push(this.endInfo.startPoint),t.push(this.endInfo.endPoint)):t.push(this.endInfo),t},t.prototype.createProhibitedSegments=function(){if(this.startInfo instanceof o.Segment){var t=this.createProhibitedSegmentsCore(this.startInfo);return this.endInfo instanceof o.Segment&&(t.addSegment(this.endInfo),t.addExludedPoint(this.endInfo.startPoint)),this.previousCustomSegment&&t.addSegment(this.previousCustomSegment),t}return this.endInfo instanceof o.Segment?((t=this.createProhibitedSegmentsCore(this.endInfo)).addExludedPoint(this.endInfo.startPoint),this.previousCustomSegment&&t.addSegment(this.previousCustomSegment),t):this.previousCustomSegment?this.createProhibitedSegmentsCore(this.previousCustomSegment):void 0},t.prototype.createProhibitedSegmentsCore=function(t){var e=new i.ConnectorProhibitedSegments;return e.addSegment(t),e},t}();e.ConnectorRenderSegment=r},5714:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorRoutingModel=e.ConnectorRoutingPenaltyDescription=void 0;var o=n(240),i=n(5503),r=n(7959),s=n(4612),a=n(3597),c=function(){this.shape=20,this.margin=2,this.turnBack=20,this.turnLeft=3.1,this.turnRight=3};e.ConnectorRoutingPenaltyDescription=c;var u=function(){function t(){this.connectorRoutingMode=o.ConnectorRoutingMode.AllShapesOnly,this.shapeMargins=r.Connector.minOffset,this.shouldReverseConnections=!0,this.shouldResizeConnections=!0,this.penaltyDescription=new c}return t.prototype.initialize=function(t){this.model=t},t.prototype.createStrategy=function(t){if(void 0!==this.model&&this.connectorRoutingMode!==o.ConnectorRoutingMode.None&&t===s.ConnectorLineOption.Orthogonal)return new a.RightAngleConnectorRoutingStrategy(this)},t.prototype.getItems=function(t,e){return this.getShapes(t,e)},t.prototype.notifyConnectorRoutingModeChanged=function(t){this.connectorRoutingMode=t},t.prototype.getShapes=function(t,e){return void 0===this.model||void 0===this.connectorRoutingMode||this.connectorRoutingMode===o.ConnectorRoutingMode.None?[]:this.connectorRoutingMode===o.ConnectorRoutingMode.AllShapesOnly?this.model.items.filter((function(t){return t instanceof i.Shape})):this.getConnectorShapes(t,e)},t.prototype.getConnectorShapes=function(t,e){var n=[];return t&&n.push(t),e&&t!==e&&n.push(e),n},t}();e.ConnectorRoutingModel=u},1254:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RoutingGrid=void 0;var o=n(2400),i=function(){function t(t,e,n){this.verticalGridLines=t,this.horizontalGridLines=e,this.createPoint=n}return t.create=function(e,n,o){var i=this,r=[],s=[],a={},c={};return n.forEach((function(t){i.addLine(t.x,r,a),i.addLine(t.right,r,a),i.addLine(t.y,s,c),i.addLine(t.bottom,s,c)})),e.forEach((function(t){i.addLine(t.x,r,a),i.addLine(t.y,s,c)})),r.sort((function(t,e){return t-e})),s.sort((function(t,e){return t-e})),new t(r,s,o)},t.addLine=function(t,e,n){n[t]||(e.push(t),n[t]=!0)},t.prototype.getNeighborPoints=function(t){var e=[];if(!(this.horizontalGridLines&&this.horizontalGridLines.length&&this.verticalGridLines&&this.verticalGridLines.length))return e;var n=o.SearchUtils.binaryIndexOf(this.verticalGridLines,(function(e){return e-t.x}));n<0?(n=~n,this.isValidArrayIndex(this.verticalGridLines,n)&&e.push(this.createPoint(this.verticalGridLines[n],t.y))):this.isValidArrayIndex(this.verticalGridLines,n+1)&&e.push(this.createPoint(this.verticalGridLines[n+1],t.y)),this.isValidArrayIndex(this.verticalGridLines,n-1)&&e.push(this.createPoint(this.verticalGridLines[n-1],t.y));var i=o.SearchUtils.binaryIndexOf(this.horizontalGridLines,(function(e){return e-t.y}));return i<0?(i=~i,this.isValidArrayIndex(this.horizontalGridLines,i)&&e.push(this.createPoint(t.x,this.horizontalGridLines[i]))):this.isValidArrayIndex(this.horizontalGridLines,i+1)&&e.push(this.createPoint(t.x,this.horizontalGridLines[i+1])),this.isValidArrayIndex(this.horizontalGridLines,i-1)&&e.push(this.createPoint(t.x,this.horizontalGridLines[i-1])),e},t.prototype.isValidArrayIndex=function(t,e){return t&&e>=0&&e<t.length},t}();e.RoutingGrid=i},1794:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RightAngleConnectorRoutingContext=e.IntersectingItemsByPointsContext=e.CuttingItemsContext=void 0;var o=n(8900),i=n(1335),r=n(9716),s=n(3742),a=n(5074),c=n(2868),u=n(1254),h=n(4867),p=n(9927),l=n(2180),d=n(3975),f=n(8675),y=function(){function t(){this.cuttingItemKeys=[]}return Object.defineProperty(t.prototype,\"isEmpty\",{get:function(){return 0===this.cuttingItemKeys.length},enumerable:!1,configurable:!0}),t.prototype.registerShape=function(t,e,n){return!!f.GeometryUtils.areSegmentsCutRectangle(n,e)&&(this.cuttingItemKeys.push(t),!0)},t}();e.CuttingItemsContext=y;var g=function(){function t(){this.items={}}return t.prototype.getOrAddItems=function(t,e){if(t){var n=t.toString(),o=this.items[n];if(void 0!==o)return o.items;if(e){var i=e(t);return this.items[n]={point:t,items:i},i}}},t}();e.IntersectingItemsByPointsContext=g;var m=function(){function t(t,e,n,o,i,r,s){this.routingModel=t,this.points=e,this.supportRenderPoints=n,this.beginConnectionShape=o,this.endConnectionShape=i,this.beginConnectionSide=this.getConnectionSide(this.beginConnectionShape,r,this.beginPoint),this.endConnectionSide=this.getConnectionSide(this.endConnectionShape,s,this.endPoint),this.ignorableItemKeys={},this.cuttingShapesContext=new y,this.intersectedItemsByPointsContext=new g,this.isInvalidRenderSegments=!0}return Object.defineProperty(t.prototype,\"shapeMargins\",{get:function(){return this.routingModel.shapeMargins},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"beginPoint\",{get:function(){return this.points[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"endPoint\",{get:function(){return this.points[this.points.length-1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasIntersecting\",{get:function(){return!this.cuttingShapesContext.isEmpty},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shouldCreateRenderPoints\",{get:function(){return this.isInvalidRenderSegments||!this.isSmallPath&&(this.hasIntersecting||this.isReversedStartConnection||this.isReversedEndConnection)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"beginPathPoint\",{get:function(){return this.beginConnectionSegment instanceof i.Segment?this.beginConnectionSegment.startPoint:this.beginConnectionSegment},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"endPathPoint\",{get:function(){return this.endConnectionSegment instanceof i.Segment?this.endConnectionSegment.endPoint:this.endConnectionSegment},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isReversedStartConnection\",{get:function(){if(!this.beginConnectionShape||this.beginConnectionSide===s.ConnectionPointSide.Undefined)return!1;var t=this.beginConnectionSegment;return!(t instanceof o.Point)&&this.isReversedConnectionSegment(this.supportSegments[0],t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isReversedEndConnection\",{get:function(){if(!this.endConnectionShape||this.endConnectionSide===s.ConnectionPointSide.Undefined)return!1;var t=this.endConnectionSegment;return!(t instanceof o.Point)&&this.isReversedConnectionSegment(this.supportSegments[this.supportSegments.length-1],t)},enumerable:!1,configurable:!0}),t.prototype.isReversedConnectionSegment=function(t,e){return r.Vector.scalarProduct(r.Vector.fromSegment(t),r.Vector.fromPoints(e.startPoint,e.endPoint))<=0},Object.defineProperty(t.prototype,\"isSmallPath\",{get:function(){var t=2*this.routingModel.shapeMargins;return Math.abs(this.beginPathPoint.x-this.endPathPoint.x)<t&&Math.abs(this.beginPathPoint.y-this.endPathPoint.y)<t},enumerable:!1,configurable:!0}),t.prototype.initialize=function(t){this.processContainers(t),this.processSupportSegments(),this.processIntersection(),this.processConnections(),this.processRenderSegments()},t.prototype.setup=function(){this.processRoutingGrid(),this.processRoutingMetrics()},t.prototype.createRoutedPoints=function(t,e,n){var i=t instanceof o.Point?t:t.endPoint,r=e instanceof o.Point?e:e.startPoint,s=this.createAStarContext(i,r,n);d.AStarCalculator.calculate(s);var c=s.path;return this.addConnectionRoutedPoints(c,t,e),a.RightAngleConnectorRoutingMathOperations.unionPoints(c),c},t.prototype.getIntersectedItems=function(t,e){var n=this;return this.intersectedItemsByPointsContext.getOrAddItems(t,(function(t){return n.routingModel.getItems(n.beginConnectionShape,n.endConnectionShape).filter((function(o){return!n.isIgnorableItem(o)&&e(t,o)}))}))},t.prototype.validateRenderPoints=function(t){this.isInvalidRenderSegments&&(a.RightAngleConnectorRoutingMathOperations.unionPoints(t),h.ModelUtils.validateRenderPointIndexes(this.points,t,0)),h.ModelUtils.skipUnnecessaryRightAngleRenderPoints(t)},t.prototype.processContainers=function(t){if(t&&this.registerIgnorableShape(t),this.beginConnectionShape){var e=this.beginConnectionShape.container;e&&this.registerIgnorableShape(e)}if(this.endConnectionShape){var n=this.endConnectionShape.container;n&&this.registerIgnorableShape(n)}},t.prototype.processSupportSegments=function(){this.supportSegments=this.createSupportSegments()},t.prototype.processIntersection=function(){var t=this,e=this.routingModel.getItems(this.beginConnectionShape,this.endConnectionShape);e&&e.forEach((function(e){var n=e.key,o=e.rectangle;t.cuttingShapesContext.registerShape(n,o,t.supportSegments)?void 0!==t.ignorableItemKeys[n]&&delete t.ignorableItemKeys[n]:(!t.isConnectedByStart(e)&&o.containsPoint(t.beginPoint)||!t.isConnectedByEnd(e)&&o.containsPoint(t.endPoint))&&t.registerIgnorableShape(e)}))},t.prototype.processConnections=function(){var t=!1,e=!1;this.beginConnectionShape!==this.endConnectionShape&&(t=this.shapeContainsOtherConnection(this.beginConnectionShape,this.endConnectionShape,this.endPoint),e=this.shapeContainsOtherConnection(this.endConnectionShape,this.beginConnectionShape,this.beginPoint),t&&this.registerIgnorableShape(this.beginConnectionShape),e&&this.registerIgnorableShape(this.endConnectionShape));var n=this.routingModel.shapeMargins;this.beginConnectionSegment=this.createBeginConnectionSegment(n,t),this.endConnectionSegment=this.createEndConnectionSegment(n,e)},t.prototype.processRenderSegments=function(){this.isInvalidRenderSegments=!1,this.renderSegments=this.createRenderSegments();for(var t=0;t<this.renderSegments.length-1;t++){var e=this.renderSegments[t],n=this.renderSegments[t+1];if(e.endPoint.equals(n.startPoint))return void(this.isInvalidRenderSegments=!0)}},t.prototype.createGridPoints=function(){var t=[];return this.renderSegments.forEach((function(e){return e.createGridPoints().forEach((function(e){return t.push(e)}))})),t},t.prototype.processRoutingGrid=function(){this.routingGrid=this.createGrid()},t.prototype.processRoutingMetrics=function(){this.metrics=this.createAStarMetrics()},t.prototype.createAStarMetrics=function(){return new p.AStarMetrics(new p.TurnDirectionMetrics(this.routingModel.penaltyDescription),new p.IntersectedShapesMetrics(new p.IntersectedShapeMetrics(this.routingModel.penaltyDescription,this.routingModel.shapeMargins)))},t.prototype.createAStarContext=function(t,e,n){return new l.AStarContext(this,t,e,n,this.routingGrid,this.metrics)},t.prototype.addConnectionRoutedPoints=function(t,e,n){e instanceof i.Segment&&t.splice(0,0,e.startPoint),n instanceof i.Segment&&t.push(n.endPoint)},t.prototype.createSupportSegments=function(){var t=this;return this.supportRenderPoints.length<=1?[]:f.GeometryUtils.createSegments(this.supportRenderPoints).filter((function(e){return!t.isCustomSegment(e,t.supportRenderPoints[0],t.supportRenderPoints[t.supportRenderPoints.length-1])}))},t.prototype.isCustomSegment=function(t,e,n){var o=t.startPoint;if(o.equals(e))return!1;var i=t.endPoint;return!i.equals(n)&&i.pointIndex-o.pointIndex==1},t.prototype.createRenderSegments=function(){var t=this,e=a.RightAngleConnectorRoutingMathOperations.createUnionSegments(this.supportSegments,(function(e,n){return t.shouldCreateSegment(e,n)})),n=e.length-1;return e.map((function(e,i){return new c.ConnectorRenderSegment(i>0?new o.Point(e.startPoint.x,e.startPoint.y):t.beginConnectionSegment,i<n?new o.Point(e.endPoint.x,e.endPoint.y):t.endConnectionSegment,e.startPoint.pointIndex,t.createPreviousCustomSegment(e.startPoint))}))},t.prototype.createPreviousCustomSegment=function(t){var e=t.pointIndex-1;return e>=0?new i.Segment(this.points[e].clone(),new o.Point(t.x,t.y)):void 0},t.prototype.shouldCreateSegment=function(t,e){return!t.equals(e)||e.pointIndex>0},t.prototype.isPathNormal=function(t){return t===s.ConnectionPointSide.Undefined||a.RightAngleConnectorRoutingMathOperations.isSegmentNormal(new i.Segment(this.beginPoint,this.endPoint),t===s.ConnectionPointSide.East||t===s.ConnectionPointSide.West)},t.prototype.registerIgnorableShape=function(t){this.ignorableItemKeys[t.key]=!0},t.prototype.isConnectedByStart=function(t){return this.beginConnectionShape&&this.beginConnectionShape.key===t.key&&this.beginConnectionSide!==s.ConnectionPointSide.Undefined},t.prototype.isConnectedByEnd=function(t){return this.endConnectionShape&&this.endConnectionShape.key===t.key&&this.endConnectionSide!==s.ConnectionPointSide.Undefined},t.prototype.getConnectionSide=function(t,e,n){return t?t.getConnectionPointSideByIndex(e,n):s.ConnectionPointSide.Undefined},t.prototype.shapeContainsOtherConnection=function(t,e,n){if(!t)return!1;var o=t.rectangle;return o.containsPoint(n)&&(!e||!e.rectangle.equals(o))},t.prototype.createBeginConnectionSegment=function(t,e){if(this.beginConnectionSide===s.ConnectionPointSide.Undefined)return this.createBeginConnectionSegmentCore(t);if(!e||!this.routingModel.shouldReverseConnections){var n=this.createBeginConnectionSegmentCore(t);if(n instanceof o.Point||!this.routingModel.shouldResizeConnections)return n;for(var i=n.startPoint,r=n.endPoint,a=t;this.hasIntersectedItemsByPoint(r,i,this.beginConnectionShape);)a/=2,r=(n=this.createBeginConnectionSegmentCore(a)).endPoint;return n}if(!this.endConnectionShape)return this.createBeginConnectionSegmentCore(-t);if(this.isPathNormal(this.endConnectionSide))return this.createBeginConnectionSegmentCore(-t);var c=this.createBeginConnectionSegmentCore(-2*t);return this.isEndConnectionRectanleLineIntersected(c,!1,!0)?this.createBeginConnectionSegmentCore(t):this.createBeginConnectionSegmentCore(-t)},t.prototype.hasIntersectedItemsByPoint=function(t,e,n){var o=this.getIntersectedItems(t,(function(t,o){return o.rectangle.containsPoint(t)&&!o.rectangle.containsPoint(e)&&o.key!==n.key}));return void 0!==o&&o.length>0},t.prototype.createEndConnectionSegment=function(t,e){if(this.endConnectionSide===s.ConnectionPointSide.Undefined)return this.createEndConnectionSegmentCore(t);if(!e||!this.routingModel.shouldReverseConnections){var n=this.createEndConnectionSegmentCore(t);if(n instanceof o.Point||!this.routingModel.shouldResizeConnections)return n;for(var i=n.endPoint,r=n.startPoint,a=t;this.hasIntersectedItemsByPoint(r,i,this.endConnectionShape);)a/=2,r=(n=this.createEndConnectionSegmentCore(a)).startPoint;return n}if(!this.beginConnectionShape)return this.createEndConnectionSegmentCore(-t);if(this.isPathNormal(this.beginConnectionSide))return this.createEndConnectionSegmentCore(-t);var c=this.createEndConnectionSegmentCore(-2*t);return this.isBeginConnectionRectanleLineIntersected(c,!0,!1)?this.createEndConnectionSegmentCore(t):this.createEndConnectionSegmentCore(-t)},t.prototype.createBeginConnectionSegmentCore=function(t){return a.RightAngleConnectorRoutingMathOperations.createBeginConnectionSegment(this.beginConnectionSide,this.beginPoint,t,(function(t,e){return new o.Point(t,e)}))},t.prototype.createEndConnectionSegmentCore=function(t){return a.RightAngleConnectorRoutingMathOperations.createEndConnectionSegment(this.endConnectionSide,this.endPoint,t,(function(t,e){return new o.Point(t,e)}))},t.prototype.isBeginConnectionRectanleLineIntersected=function(t,e,n){return a.RightAngleConnectorRoutingMathOperations.isConnectionRectanleLineIntersected(this.beginConnectionShape.rectangle,t,this.beginConnectionSide,e,n,(function(t,e){return new o.Point(t,e)}))},t.prototype.isEndConnectionRectanleLineIntersected=function(t,e,n){return a.RightAngleConnectorRoutingMathOperations.isConnectionRectanleLineIntersected(this.endConnectionShape.rectangle,t,this.endConnectionSide,e,n,(function(t,e){return new o.Point(t,e)}))},t.prototype.isIgnorableItem=function(t){return void 0!==this.ignorableItemKeys[t.key]},t.prototype.createExtendedShapesBounds=function(){var t=this;return this.routingModel.getItems(this.beginConnectionShape,this.endConnectionShape).map((function(e){return e.rectangle.clone().inflate(t.routingModel.shapeMargins)}))},t.prototype.createGrid=function(){return u.RoutingGrid.create(this.createGridPoints(),this.createExtendedShapesBounds(),(function(t,e){return new o.Point(t,e)}))},t}();e.RightAngleConnectorRoutingContext=m},5074:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RightAngleConnectorRoutingMathOperations=void 0;var o=n(1335),i=n(8679),r=n(9927),s=n(8675),a=n(3742),c=function(){function t(){}return t.createUnionSegments=function(t,e){for(var n=[],i=t[0].startPoint,r=t[0].endPoint,s=1;s<t.length;s++){var a=t[s];e(r,a.startPoint)&&(n.push(new o.Segment(i.clone(),r.clone())),i=a.startPoint),r=a.endPoint}return n.push(new o.Segment(i,r)),n},t.unionPoints=function(t){for(var e=0;e<t.length-2;)s.GeometryUtils.isCorner(t[e],t[e+1],t[e+2])?e++:(t.splice(e+1,1),e=Math.max(0,e-1))},t.getTurnDirection=function(t){return i.MathUtils.numberCloseTo(t,0)?r.RightAngleTurnDirection.Straight:i.MathUtils.numberCloseTo(t,Math.PI)?r.RightAngleTurnDirection.Backwards:t<Math.PI?r.RightAngleTurnDirection.Left:r.RightAngleTurnDirection.Right},t.isSegmentNormal=function(t,e){return e?i.MathUtils.numberCloseTo(t.startPoint.y,t.endPoint.y):i.MathUtils.numberCloseTo(t.startPoint.x,t.endPoint.x)},t.isConnectionRectanleLineIntersected=function(t,e,n,o,i,r){switch(n){case a.ConnectionPointSide.North:return s.GeometryUtils.isLineIntersected(r(t.x,t.y),r(t.right,t.y),e,o,i);case a.ConnectionPointSide.South:return s.GeometryUtils.isLineIntersected(r(t.right,t.bottom),r(t.x,t.bottom),e,o,i);case a.ConnectionPointSide.West:return s.GeometryUtils.isLineIntersected(r(t.x,t.y),r(t.x,t.bottom),e,o,i);case a.ConnectionPointSide.East:return s.GeometryUtils.isLineIntersected(r(t.right,t.y),r(t.right,t.bottom),e,o,i);default:return!1}},t.createBeginConnectionSegment=function(t,e,n,i){switch(t){case a.ConnectionPointSide.North:return new o.Segment(e,i(e.x,e.y-n));case a.ConnectionPointSide.South:return new o.Segment(e,i(e.x,e.y+n));case a.ConnectionPointSide.West:return new o.Segment(e,i(e.x-n,e.y));case a.ConnectionPointSide.East:return new o.Segment(e,i(e.x+n,e.y));default:return e}},t.createEndConnectionSegment=function(t,e,n,i){switch(t){case a.ConnectionPointSide.North:return new o.Segment(i(e.x,e.y-n),e);case a.ConnectionPointSide.South:return new o.Segment(i(e.x,e.y+n),e);case a.ConnectionPointSide.West:return new o.Segment(i(e.x-n,e.y),e);case a.ConnectionPointSide.East:return new o.Segment(i(e.x+n,e.y),e);default:return e}},t}();e.RightAngleConnectorRoutingMathOperations=c},3597:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RightAngleConnectorRoutingStrategy=void 0;var o=n(1335),i=n(4717),r=n(1794),s=n(4867),a=function(){function t(t){this.model=t}return t.prototype.createRenderPoints=function(t,e,n,o,i,s,a){if(e.length>1){var c=new r.RightAngleConnectorRoutingContext(this.model,t,e,n,o,i,s);if(c.initialize(a),c.shouldCreateRenderPoints)return this.createRenderPointsCore(c)}},t.prototype.clone=function(){return new t(this.model)},t.prototype.onAddPoint=function(t,e,n,r){var a=r.map((function(t){return new i.ConnectorRenderPoint(t.x,t.y,t.pointIndex)})),c=s.ModelUtils.findFirstPointIndex(a,(function(t){return t.equals(n)}));if(0===c)return a.splice(1,0,new i.ConnectorRenderPoint(n.x,n.y,e)),s.ModelUtils.validateRenderPointIndexes(t,a,2);var u=a.length-1;if(c===u)return a.splice(u,0,new i.ConnectorRenderPoint(n.x,n.y,e)),a[u+1].pointIndex=e+1,a;if(c>0){var h=a[c];return a[c]=new i.ConnectorRenderPoint(h.x,h.y,e,h.skipped),s.ModelUtils.validateRenderPointIndexes(t,a,c+1)}var p=new o.Segment(a[0],a[1]),l=new i.ConnectorRenderPoint(n.x,n.y);return p.containsPoint(l)?(a.splice(1,0,new i.ConnectorRenderPoint(l.x,l.y,-1)),a.splice(2,0,new i.ConnectorRenderPoint(l.x,l.y,e)),s.ModelUtils.validateRenderPointIndexes(t,a,3)):new o.Segment(a[u-1],a[u]).containsPoint(l)?(a.splice(u,0,new i.ConnectorRenderPoint(l.x,l.y,e)),a.splice(u+1,0,new i.ConnectorRenderPoint(l.x,l.y,-1)),a[u+2].pointIndex=e+1,a):r},t.prototype.onDeletePoint=function(t,e,n){var o=n.map((function(t){return new i.ConnectorRenderPoint(t.x,t.y,t.pointIndex)})),r=this.getRenderPointIndexByPointIndex(o,e);if(1===r){var a=o[0],c=o[1];return a.equals(c)?(o.splice(1,1),s.ModelUtils.validateRenderPointIndexes(t,o,1)):(o[1]=new i.ConnectorRenderPoint(c.x,c.y,-1,c.skipped),s.ModelUtils.validateRenderPointIndexes(t,o,2))}if(2===r){a=o[1];var u=o[2];return a.equals(u)?(o.splice(1,2),s.ModelUtils.validateRenderPointIndexes(t,o,1)):(o[2]=new i.ConnectorRenderPoint(u.x,u.y,-1,u.skipped),s.ModelUtils.validateRenderPointIndexes(t,o,3))}var h=o.length-1;if(r===h-1){var p=o[h-1],l=o[h];return p.equals(l)?(o.splice(h-1,1),s.ModelUtils.validateRenderPointIndexes(t,o,h-1)):(o[h-1]=new i.ConnectorRenderPoint(p.x,p.y,-1,p.skipped),s.ModelUtils.validateRenderPointIndexes(t,o,h))}if(r===h-2){var d=o[h-2];l=o[h-1];return d.equals(l)?(o.splice(h-2,2),s.ModelUtils.validateRenderPointIndexes(t,o,h-2)):(o[h-2]=new i.ConnectorRenderPoint(d.x,d.y,-1,d.skipped),s.ModelUtils.validateRenderPointIndexes(t,o,h-1))}var f=o[r];return o[r]=new i.ConnectorRenderPoint(f.x,f.y,-1,f.skipped),s.ModelUtils.validateRenderPointIndexes(t,o,r+1)},t.prototype.onMovePoint=function(t,e,n,o){if(0===e||e===t.length-1)return o;var r=o.map((function(t){return new i.ConnectorRenderPoint(t.x,t.y,t.pointIndex)}));return this.onMovePointCore(r,e,n),s.ModelUtils.skipUnnecessaryRightAngleRenderPoints(r),r},t.prototype.onMovePoints=function(t,e,n,o,r){if(0===e||n===t.length-1)return r;for(var a=r.map((function(t){return new i.ConnectorRenderPoint(t.x,t.y,t.pointIndex)})),c=e;c<=n;c++)this.onMovePointCore(a,c,o[c-e]);return s.ModelUtils.skipUnnecessaryRightAngleRenderPoints(a),a},t.prototype.onMovePointCore=function(t,e,n){var o=this.getRenderPointIndexByPointIndex(t,e);if(o>=0){var r=t[o];t[o]=new i.ConnectorRenderPoint(n.x,n.y,e,r.skipped)}},t.prototype.createRenderPointsCore=function(t){var e,n=[],o=-1,i=-1;t.setup();var r=t.renderSegments,s=r[r.length-1].endPoint,a=t.points;do{this.registerCustomPoints(n,a,i+2,r[o+1].startPointIndex-1),i=(e=r[++o]).startPointIndex,this.registerRenderPoints(n,t.createRoutedPoints(e.startInfo,e.endInfo,e.createProhibitedSegments()),i)}while(!e.endPoint.equals(s));return t.validateRenderPoints(n),n},t.prototype.getRenderPointIndexByPointIndex=function(t,e){return s.ModelUtils.findFirstPointIndex(t,(function(t){return t.pointIndex===e}))},t.prototype.registerRenderPoints=function(t,e,n){var o=this;e.forEach((function(i,r){var s=0===r?n:r===e.length-1?n+1:-1;o.registerPoint(t,i,s)}))},t.prototype.registerCustomPoints=function(t,e,n,o){for(var i=n;i<=o;i++)this.registerPoint(t,e[i],i)},t.prototype.registerPoint=function(t,e,n){t.push(new i.ConnectorRenderPoint(e.x,e.y,n))},t}();e.RightAngleConnectorRoutingStrategy=a},3742:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramItem=e.DEFAULT_ZINDEX=e.ConnectionPointSide=void 0;var o,i=n(8011),r=n(5596),s=n(8675),a=n(1552);!function(t){t[t.Undefined=-1]=\"Undefined\",t[t.North=0]=\"North\",t[t.East=1]=\"East\",t[t.South=2]=\"South\",t[t.West=3]=\"West\"}(o=e.ConnectionPointSide||(e.ConnectionPointSide={})),e.DEFAULT_ZINDEX=0;var c=function(){function t(){this.key=void 0,this.dataKey=void 0,this.customData=void 0,this.attachedConnectors=[],this.zIndex=e.DEFAULT_ZINDEX,this.locked=!1,this.container=void 0,this.style=new a.Style,this.styleText=new a.TextStyle}return t.prototype.assign=function(t){t.key=this.key,t.dataKey=this.dataKey,t.customData=s.ObjectUtils.cloneObject(this.customData),t.locked=this.locked,t.attachedConnectors=this.attachedConnectors.slice(),t.style=this.style.clone(),t.styleText=this.styleText.clone(),t.zIndex=this.zIndex,t.container=this.container},t.prototype.getConnectionPointPosition=function(t,e){return this.getConnectionPoint(t,e).toPoint()},t.prototype.getConnectionPoint=function(t,e){t<0&&e&&(t=this.getNearestConnectionPoint(e));var n=this.getConnectionPoints();return n[t]||n[0]},t.prototype.getNearestConnectionPoint=function(t){var e,n=Number.MAX_VALUE;return this.getConnectionPoints().forEach((function(o,i){var s=r.Metrics.euclideanDistance(o,t);s<n&&(n=s,e=i)})),e},t.prototype.getConnectionPointIndex=function(t){var e=this.getConnectionPoints();return e.reduce((function(n,i,r){return t===o.North&&i.y<e[n].y||t===o.South&&i.y>e[n].y||t===o.West&&i.x<e[n].x||t===o.East&&i.x>e[n].x?r:n}),0)},t.prototype.getConnectionPointSideByIndex=function(t,e){var n=this.getConnectionPoint(t,e);return this.getConnectionPointSide(n,e)},t.prototype.getConnectionPointIndexForSide=function(t){return t},Object.defineProperty(t.prototype,\"enableText\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"allowEditText\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasTemplate\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"enableChildren\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isLocked\",{get:function(){return this.locked||this.container&&this.container.isLocked},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"allowResizeHorizontally\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"allowResizeVertically\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"strokeWidth\",{get:function(){return this.style.strokeWidth},enumerable:!1,configurable:!0}),t.prototype.intersectedByRect=function(t){return i.Rectangle.areIntersected(this.rectangle,t)},t}();e.DiagramItem=c},4742:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DraggingConnector=e.SelectionDragHelper=void 0;var o=n(9716),i=n(58),r=n(1510),s=n(4867),a=n(4717),c=n(6879),u=function(){function t(t,e,n,o,i){var r=this;this.history=t,this.model=e,this.permissionsProvider=n,this.startPoint=o,this.draggingShapes=[],this.draggingConnectors=[],this.selectedItems={},this.draggingConnectorsIndexByKey={},i.forEach((function(t){return r.selectedItems[t.key]=t}))}return t.prototype.initDraggingShapes=function(t,e){var n=this;this.draggingShapes=t.map((function(t){return new p(t)})),e||this.draggingShapes.forEach((function(t){return n.permissionsProvider.addInteractingItem(t.shape,c.DiagramModelOperation.MoveShape)}))},t.prototype.initDraggingConnectors=function(t,e){var n=this;this.draggingConnectors=[],this.draggingConnectorsIndexByKey={},t.forEach((function(t){return n.registerConnector(t)})),e||this.draggingShapes.forEach((function(t){var e=t.shape.attachedConnectors;e&&e.forEach((function(t){n.containsDraggingConnectorByKey(t.key)||n.registerConnector(t)}))})),this.modelConnectorsWithoutBeginItemInfo=this.createModelConnectorsWithoutBeginItemInfo(),this.modelConnectorsWithoutEndItemInfo=this.createModelConnectorsWithoutEndItemInfo()},t.prototype.move=function(t,e,n,i){var r=this;if(this.draggingShapes.length){var s=this.draggingShapes.map((function(t){return t.shape}));this.draggingShapes.forEach((function(t){for(var o=t.shape;o.container;){if(-1!==s.indexOf(o.container))return!1;o=o.container}r.moveShape(t,e,n,i)}));var a=this.draggingShapes[0],c=o.Vector.fromPoints(a.startPosition.clone(),a.shape.position.clone());(c.x||c.y)&&this.draggingConnectors.forEach((function(e){return r.moveConnectorCore(e.connector,e.startPoints,e.startRenderContext,c,t)}))}else this.draggingConnectors.forEach((function(n){return r.moveConnector(n,t,e)}))},t.prototype.containsDraggingConnectorByKey=function(t){return void 0!==this.draggingConnectorsIndexByKey[t]},t.prototype.onTryUpdateModelSize=function(t,e){this.modelConnectorsWithoutBeginItemInfo.forEach((function(n){n.point.x+=t,n.point.y+=e})),this.modelConnectorsWithoutEndItemInfo.forEach((function(n){n.point.x+=t,n.point.y+=e}))},t.prototype.moveConnector=function(t,e,n){var i=t.startPoints,r=o.Vector.fromPoints(i[0].clone(),n(i[0]).clone());(r.x||r.y)&&this.moveConnectorCore(t.connector,i,t.startRenderContext,r,e)},t.prototype.moveConnectorCore=function(t,e,n,o,i){i||s.ModelUtils.canMoveConnector(this.selectedItems,t)?this.offsetConnector(t,e,n,o):this.changeConnector(t)},t.prototype.moveShape=function(t,e,n,o){var i=this,r=t.shape,a=e(t.startPosition);s.ModelUtils.setShapePosition(this.history,this.model,r,a),s.ModelUtils.updateMovingShapeConnections(this.history,r,this.modelConnectorsWithoutBeginItemInfo,this.modelConnectorsWithoutEndItemInfo,n,o,(function(t){return i.permissionsProvider.addInteractingItem(t)})),this.draggingConnectors.filter((function(t){return!!i.selectedItems[t.connector.key]})).length||s.ModelUtils.updateShapeAttachedConnectors(this.history,this.model,r)},t.prototype.offsetConnector=function(t,e,n,o){var r=this,s=e.map((function(t){return r.offsetPoint(t,o)}));s[0].equals(t.points[0])||this.history.addAndRedo(new i.ChangeConnectorPointsHistoryItem(t.key,s,this.offsetRenderContext(n,o)))},t.prototype.offsetRenderContext=function(t,e){var n=this;if(void 0!==t)return new r.ConnectorRenderPointsContext(t.renderPoints.map((function(t){var o=n.offsetPoint(t,e);return new a.ConnectorRenderPoint(o.x,o.y,t.pointIndex,t.skipped)})),!0,t.actualRoutingMode)},t.prototype.offsetPoint=function(t,e){var n=o.Vector.fromPoints(t,this.startPoint);return this.startPoint.clone().offset(e.x-n.x,e.y-n.y)},t.prototype.changeConnector=function(t){s.ModelUtils.tryRemoveConnectorIntermediatePoints(this.history,t),s.ModelUtils.updateConnectorAttachedPoints(this.history,this.model,t)},t.prototype.registerConnector=function(t){this.draggingConnectorsIndexByKey[t.key]=this.draggingConnectors.push(new h(t))-1},t.prototype.createModelConnectorsWithoutBeginItemInfo=function(){var t=this;return this.model.findConnectorsCore((function(e){return!e.beginItem&&!t.containsDraggingConnectorByKey(e.key)})).map((function(t){return{connector:t,point:t.points[0].clone()}}))},t.prototype.createModelConnectorsWithoutEndItemInfo=function(){var t=this;return this.model.findConnectorsCore((function(e){return!e.endItem&&!t.containsDraggingConnectorByKey(e.key)})).map((function(t){return{connector:t,point:t.points[t.points.length-1].clone()}}))},t}();e.SelectionDragHelper=u;var h=function(t){this.connector=t,this.startPoints=t.points.map((function(t){return t.clone()})),this.startRenderContext=t.tryCreateRenderPointsContext()};e.DraggingConnector=h;var p=function(t){this.shape=t,this.startPosition=t.position.clone()}},6613:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramModel=void 0;var o=n(5503),i=n(7959),r=n(8675),s=n(8011),a=n(6353),c=n(8900),u=n(7176),h=n(13),p=n(5383),l=n(4867),d=function(){function t(e){void 0===e&&(e=new a.Size(8391,11906)),this.items=[],this.itemIndexByKey={},this.keyCounter=0,this.pageSize=new a.Size(8391,11906),this.pageLandscape=!1,this.pageColor=t.defaultPageColor,this.units=p.DiagramUnit.In,this.snapStartPoint=new c.Point(0,0),this.pageSize=e,this.size=this.pageSize.clone(),this.rectangle=s.Rectangle.fromGeometry(new c.Point(0,0),new a.Size(0,0)),this.initializeKeyCounter()}return Object.defineProperty(t.prototype,\"pageWidth\",{get:function(){return this.pageLandscape?this.pageSize.height:this.pageSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"pageHeight\",{get:function(){return this.pageLandscape?this.pageSize.width:this.pageSize.height},enumerable:!1,configurable:!0}),t.prototype.getRectangle=function(t){return t&&(this.rectangle=l.ModelUtils.createRectangle(this.items)),this.rectangle},t.prototype.pushItem=function(t){var e=this.items.push(t);this.itemIndexByKey[t.key]=e-1,t instanceof o.Shape&&!t.image.isEmpty&&this.cacheShapeImage(t)},t.prototype.removeItem=function(t){var e=this.getItemIndex(t);delete this.itemIndexByKey[t.key],this.items.splice(e,1),this.updateIndicesHash(e)},t.prototype.updateIndicesHash=function(t){for(var e=t;e<this.items.length;e++)this.itemIndexByKey[this.items[e].key]=e},t.prototype.getItemIndex=function(t){return this.itemIndexByKey[t.key]},t.prototype.findShape=function(t){var e=this.findItem(t);return e instanceof o.Shape?e:void 0},t.prototype.findShapesCore=function(t){var e=[];return this.items.forEach((function(n){n instanceof o.Shape&&t(n)&&e.push(n)})),e},t.prototype.findShapeCore=function(t){for(var e=0;e<this.items.length;e++){var n=this.items[e];if(n instanceof o.Shape&&t(n))return n}},t.prototype.findShapeAtPosition=function(t){return this.findShapeCore((function(e){return e.position.equals(t)}))},t.prototype.findShapeByDataKey=function(t){return this.findShapeCore((function(e){return e.dataKey===t}))},t.prototype.findShapesByImageUrl=function(t){return this.findShapesCore((function(e){return e.image.url===t}))},t.prototype.findShapesByDescription=function(t){return this.findShapesCore((function(e){return e.description.key===t.key}))},t.prototype.cacheShapeImage=function(t){var e=u.ImageCache.instance.createUnloadedInfoByShapeImageInfo(t.image);e.isLoaded&&t.image.loadBase64Content(e.base64)},t.prototype.loadAllImages=function(t){u.ImageCache.instance.loadAllImages(t)},t.prototype.findContainer=function(t){var e=this.findShape(t);return e&&e.enableChildren?e:void 0},t.prototype.findNearestContainer=function(t){var e=this.findShape(t);return e?e.enableChildren?e:e.container:void 0},t.prototype.getChildren=function(t){var e=this;return t.children.map((function(t){return e.findItem(t.key)})).filter((function(t){return t}))},t.prototype.findChild=function(t,e,n){var i,r=this;return void 0===n&&(n=!0),t.children.forEach((function(t){i||(t.key!==e?n&&t instanceof o.Shape&&(i=r.findChild(t,e,n)):i=t)})),i},t.prototype.findItemContainerCore=function(t,e){for(var n=t.container;n&&e&&!e(n);)n=n.container;return n},t.prototype.findItemContainer=function(t){return this.findItemContainerCore(t)},t.prototype.findItemCollapsedContainer=function(t){return this.findItemContainerCore(t,(function(t){return!t.expanded}))},t.prototype.findItemTopCollapsedContainer=function(t){for(var e,n=t.container;n;)n.expanded||(e=n),n=n.container;return e},t.prototype.isContainerItem=function(t,e){return void 0!==this.findItemContainerCore(e,(function(e){return e.key===t.key}))},t.prototype.findConnector=function(t){var e=this.findItem(t);return e instanceof i.Connector?e:void 0},t.prototype.findConnectorCore=function(t){for(var e=0;e<this.items.length;e++){var n=this.items[e];if(n instanceof i.Connector&&t(n))return n}},t.prototype.findConnectorAtPoints=function(t){return this.findConnectorCore((function(e){return r.GeometryUtils.arePointsEqual(e.points,t)}))},t.prototype.findConnectorByDataKey=function(t){return this.findConnectorCore((function(e){return e.dataKey===t}))},t.prototype.findConnectorByBeginEndDataKeys=function(t,e){return this.findConnectorCore((function(n){return n.beginItem&&n.beginItem.dataKey===t&&n.endItem&&n.endItem.dataKey===e}))},t.prototype.findConnectorsCore=function(t){var e=[];return this.items.forEach((function(n){n instanceof i.Connector&&t(n)&&e.push(n)})),e},t.prototype.findConnectorsWithoutBeginItem=function(){return this.findConnectorsCore((function(t){return!t.beginItem}))},t.prototype.findConnectorsWithoutEndItem=function(){return this.findConnectorsCore((function(t){return!t.endItem}))},t.prototype.findItem=function(t){return this.items[this.itemIndexByKey[t]]},t.prototype.findItemByDataKey=function(t){return this.findItemCore((function(e){return e.dataKey===t}))},t.prototype.findItemCore=function(t){for(var e=0;e<this.items.length;e++)if(t(this.items[e]))return this.items[e]},t.isIntersectedItems=function(t,e){var n=!1;return t instanceof o.Shape?n=e.intersectedByRect(t.rectangle):t instanceof i.Connector&&t.getSegments().forEach((function(t){e instanceof o.Shape?n=n||t.isIntersectedByRect(e.rectangle):e instanceof i.Connector&&e.getSegments().forEach((function(e){n=n||t.isIntersected(e)}))})),n},t.prototype.getIntersectItems=function(e){var n=[];return this.items.forEach((function(o){o.container===e.container&&(e===o||o instanceof i.Connector&&-1!==e.attachedConnectors.indexOf(o)||!t.isIntersectedItems(o,e)||n.push(o))})),n},t.prototype.getIntersectItemsMinZIndex=function(t){return this.getIntersectItems(t).map((function(t){return t.zIndex})).reduce((function(t,e){return Math.min(t,e)}),Number.MAX_VALUE)},t.prototype.getIntersectItemsMaxZIndex=function(t){return this.getIntersectItems(t).map((function(t){return t.zIndex})).reduce((function(t,e){return Math.max(t,e)}),-Number.MAX_VALUE)},t.prototype.iterateItems=function(t){this.items.forEach(t)},t.prototype.getNextKey=function(){return(this.keyCounter++).toString()},t.prototype.initializeKeyCounter=function(){this.keyCounter=this.items.reduce((function(t,e){var n=parseInt(e.key);return Math.max(t,isNaN(n)?0:n+1)}),this.items.length)},t.defaultPageColor=h.ColorUtils.LIGHT_COLOR,t}();e.DiagramModel=d},2004:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ItemChange=e.ItemChangeType=void 0,function(t){t[t.Create=0]=\"Create\",t[t.UpdateProperties=1]=\"UpdateProperties\",t[t.UpdateStructure=2]=\"UpdateStructure\",t[t.Update=3]=\"Update\",t[t.Remove=4]=\"Remove\",t[t.UpdateClassName=5]=\"UpdateClassName\"}(e.ItemChangeType||(e.ItemChangeType={}));var n=function(){function t(t,e,n){void 0===n&&(n=!0),this.item=t,this.type=e,this.isValid=n}return Object.defineProperty(t.prototype,\"key\",{get:function(){return this.item.key},enumerable:!1,configurable:!0}),t}();e.ItemChange=n},1118:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ModelManipulator=void 0;var o=n(4125),i=n(6353),r=n(9463),s=n(7176),a=n(590),c=n(6879),u=n(8675),h=n(7959),p=n(2004),l=n(4867),d=function(){function t(t,e,n,o){this.onModelChanged=new u.EventDispatcher,this.onModelSizeChanged=new u.EventDispatcher,this.initializeCore(t,e),this.permissionsProvider=n,this.descriptionManager=o,this.imageLoader=new a.ImageLoader(this.updateShapeImage.bind(this))}return t.prototype.initialize=function(t,e){this.initializeCore(t,e),this.model.loadAllImages(this.imageLoader),this.updateModelSize()},t.prototype.initializeCore=function(t,e){var n=this;this.model=t,this.routingModel=e,this.routingModel&&(this.routingModel.initialize(t),t.iterateItems((function(t){if(t instanceof h.Connector){var e=n.routingModel.createStrategy(t.properties.lineOption);e?t.changeRoutingStrategy(e):t.invalidateRenderPoints()}})))},t.prototype.commitPageChanges=function(){this.raisePageSizeChanged(this.model.pageSize.clone(),this.model.pageLandscape),this.raiseModelSizeChanged(this.model.size.clone()),this.raisePageColorChanged(this.model.pageColor),this.raiseModelRectangleChanged(l.ModelUtils.createRectangle(this.model.items))},t.prototype.commitItemsCreateChanges=function(){r.Diagnostics.timer(\"new model: model changes\"),this.commitItemsChangesCore(p.ItemChangeType.Create,this.model.items),r.Diagnostics.endTimer()},t.prototype.commitItemUpdateChanges=function(t){this.commitItemsChangesCore(p.ItemChangeType.UpdateStructure,[t])},t.prototype.commitItemsChangesCore=function(t,e){var n=[];e.forEach((function(e){n.push(new p.ItemChange(e,t))})),n.length&&this.raiseModelChanged(n)},t.prototype.insertToContainer=function(t,e){if(t.container&&e&&t.container.key!==e.key)throw Error(\"To insert an item to a container it's necessary to remove it from the current container.\");e&&(-1===e.children.indexOf(t)&&e.children.push(t),t.container=e,this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Update)]))},t.prototype.removeFromContainer=function(t){if(t.container){var e=t.container.children.indexOf(t);t.container.children.splice(e,1),t.container=void 0,this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Update)])}},t.prototype.changeStyle=function(t,e,n){this.changeStyleCore(t,t.style,e,n)},t.prototype.changeStyleText=function(t,e,n){this.changeStyleCore(t,t.styleText,e,n)},t.prototype.changeStyleCore=function(t,e,n,o){void 0!==o?e[n]=o:delete e[n],this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties)])},t.prototype.changeZIndex=function(t,e){t.zIndex=e,this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Update)])},t.prototype.changeLocked=function(t,e){t.locked=e,this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateClassName)])},t.prototype.changeCustomData=function(t,e){t.customData=u.ObjectUtils.cloneObject(e),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.addShape=function(t,e){if(t.attachedConnectors.length)throw Error(\"A creating shape should not contain existing connectors.\");return t.key=void 0!==e?e:this.model.getNextKey(),this.insertShape(t)},t.prototype.insertShape=function(t){this.model.pushItem(t);var e=this.permissionsProvider.canAddItems([t]);return this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Create,e)]),this.model.loadAllImages(this.imageLoader),t},t.prototype.resizeShape=function(t,e,n){t.position=e,t.size=n;var o=this.permissionsProvider.isStoredPermissionsGranted(),i=this.getInteractingItem(t,c.DiagramModelOperation.ResizeShape);if(i){var r=i.size.clone(),s=t.size.clone();s.equals(r)||(o=this.permissionsProvider.canResizeShapes([{shape:t,size:s,oldSize:r}]))}var a=this.getInteractingItem(t,c.DiagramModelOperation.MoveShape);if(a){var u=a.position.clone(),h=t.position.clone();h.equals(u)||(o=this.permissionsProvider.canMoveShapes([{shape:t,position:h,oldPosition:u}]))}this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,o)])},t.prototype.moveShape=function(t,e){t.position=e;var n=this.permissionsProvider.isStoredPermissionsGranted();this.getInteractingItem(t,c.DiagramModelOperation.AddShape)&&(n=this.permissionsProvider.canAddItems([t]));var o=this.getInteractingItem(t,c.DiagramModelOperation.MoveShape);if(o){var i=o.position.clone(),r=t.position.clone();r.equals(i)||(n=this.permissionsProvider.canMoveShapes([{shape:t,position:r,oldPosition:i}]))}this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,n)])},t.prototype.changeShapeParameters=function(t,e){t.parameters.forEach((function(t){var n=e.get(t.key);n&&(t.value=n.value)})),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties)])},t.prototype.changeShapeText=function(t,e){t.text=e,this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.changeShapeImage=function(t,e){t.image=e;var n=s.ImageCache.instance.createUnloadedInfoByShapeImageInfo(e);this.imageLoader.load(n),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.changeShapeExpanded=function(t,e){t.expanded=e,t.toggleExpandedSize(),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.deleteShape=function(t,e){if(t.attachedConnectors.length)throw Error(\"A removing shape should not contain existing connectors.\");this.removeShape(t,e)},t.prototype.removeShape=function(t,e){this.model.removeItem(t),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Remove,e)])},t.prototype.updateShapeImage=function(t){if(t.imageUrl){var e=this.model.findShapesByImageUrl(t.imageUrl);e.forEach((function(e){t.base64?e.image.loadBase64Content(t.base64):e.image.setUnableToLoadFlag()})),this.commitItemsChangesCore(p.ItemChangeType.UpdateStructure,e)}},t.prototype.updateShapeDescription=function(t){var e=this.model.findShapesByDescription(t);this.commitItemsChangesCore(p.ItemChangeType.UpdateProperties,e)},t.prototype.updateShapeType=function(t,e,n){var o=this.descriptionManager.get(e);t.description=o,t.parameters=n,o.createParameters(n),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.addConnector=function(t,e){if(t.beginItem||t.endItem)throw Error(\"Creating connector should not contain begin/end items\");return t.key=void 0!==e?e:this.model.getNextKey(),this.insertConnector(t)},t.prototype.insertConnector=function(t){this.model.pushItem(t);var e=this.routingModel.createStrategy(t.properties.lineOption);e?t.changeRoutingStrategy(e):t.clearRoutingStrategy();var n=this.permissionsProvider.canAddItems([t]);return this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Create,n)]),t},t.prototype.deleteConnector=function(t){if(t.beginItem||t.endItem)throw Error(\"Creating connector should not contain begin/end items\");this.removeConnector(t)},t.prototype.removeConnector=function(t){this.model.removeItem(t);var e=this.permissionsProvider.canDeleteItems([t]);this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.Remove,e)])},t.prototype.addDeleteConnectorPoint=function(t,e){var n=this.getConnectorInteractingPoints(t);e(t),this.addDeleteConnectorPointCore(t,n)},t.prototype.moveConnectorPoint=function(t,e,n){n(t),this.moveConnectorPointCore(t,e)},t.prototype.changeConnectorPoints=function(t,e){var n=this;e(t),t.points.forEach((function(e,o){return n.moveConnectorPointCore(t,o)}))},t.prototype.moveConnectorPointCore=function(t,e){var n=this.getInteractingItem(t),o=this.permissionsProvider.isStoredPermissionsGranted();if(n){var i=0<e&&e<t.points.length-1;if(i=(i=i||0===e&&!t.beginItem)||e===t.points.length-1&&!t.endItem){var r=n.points.map((function(t){return t.clone()})),s=t.points.map((function(t){return t.clone()}));u.GeometryUtils.arePointsEqual(r,s)||(o=this.permissionsProvider.canChangeConnectorPoints(t,r,s))}}this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,o)])},t.prototype.getConnectorInteractingPoints=function(t){var e=this.getInteractingItem(t);return e?e.points.map((function(t){return t.clone()})):t.points.map((function(t){return t.clone()}))},t.prototype.addDeleteConnectorPointCore=function(t,e){var n=this.permissionsProvider.isStoredPermissionsGranted(),o=t.points.map((function(t){return t.clone()}));u.GeometryUtils.arePointsEqual(e,o)||(n=this.permissionsProvider.canChangeConnectorPoints(t,e,o)),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,n)])},t.prototype.addConnection=function(t,e,n,o){var i=t.getExtremeItem(o),r=t.getExtremeConnectionPointIndex(o);if(i!==e||r!==n){if(i)throw Error(\"Connector is already connected\");e.attachedConnectors.push(t),o===h.ConnectorPosition.Begin?(t.beginItem=e,t.beginConnectionPointIndex=n):(t.endItem=e,t.endConnectionPointIndex=n),t.invalidateRenderPoints();var s=this.permissionsProvider.canChangeConnection(t,e,void 0,o,n);this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,s)])}},t.prototype.setConnectionPointIndex=function(t,e,n){if(!t.getExtremeItem(n))throw Error(\"Connection should be connected\");n===h.ConnectorPosition.Begin?t.beginConnectionPointIndex=e:t.endConnectionPointIndex=e,t.invalidateRenderPoints();var o=t.getExtremeItem(n),i=this.permissionsProvider.canChangeConnection(t,o,o,n,e);this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,i)])},t.prototype.deleteConnection=function(t,e){var n=t.getExtremeItem(e);if(n){n.attachedConnectors.splice(n.attachedConnectors.indexOf(t),1),e===h.ConnectorPosition.Begin?(t.beginItem=null,t.beginConnectionPointIndex=-1):(t.endItem=null,t.endConnectionPointIndex=-1),t.invalidateRenderPoints();var o=this.permissionsProvider.canChangeConnection(t,void 0,n,e,-1);this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties,o)])}},t.prototype.changeConnectorProperty=function(t,e,n){if(t.properties[e]=n,\"lineOption\"===e){var o=this.routingModel?this.routingModel.createStrategy(t.properties.lineOption):void 0;o?t.changeRoutingStrategy(o):t.clearRoutingStrategy()}else t.invalidateRenderPoints();this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties)])},t.prototype.changeConnectorText=function(t,e,n){t.setText(e,n),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateStructure)])},t.prototype.changeConnectorTextPosition=function(t,e,n){var o=t.getText(e);t.setText(null,e),t.setText(o,n),this.raiseModelChanged([new p.ItemChange(t,p.ItemChangeType.UpdateProperties)])},t.prototype.changeModelSize=function(t,e){this.model.size.width=t.width,this.model.size.height=t.height,this.raiseModelSizeChanged(this.model.size.clone(),e),(e.left||e.top)&&(this.model.snapStartPoint=this.model.snapStartPoint.clone().offset(e.left,e.top),this.raiseSnapPointChange(this.model.snapStartPoint))},t.prototype.changePageSize=function(t){this.model.pageSize.equals(t)||(this.model.pageSize=t,this.model.size=new i.Size(this.model.pageWidth,this.model.pageHeight),this.raiseModelSizeChanged(this.model.size.clone()),this.raisePageSizeChanged(this.model.pageSize,this.model.pageLandscape))},t.prototype.changePageLandscape=function(t){this.model.pageLandscape!==t&&(this.model.pageLandscape=t,this.model.pageSize.width!==this.model.pageSize.height&&(this.model.size=new i.Size(this.model.pageWidth,this.model.pageHeight),this.raiseModelSizeChanged(this.model.size.clone()),this.raisePageSizeChanged(this.model.pageSize,this.model.pageLandscape)))},t.prototype.changePageColor=function(t){this.model.pageColor!==t&&(this.model.pageColor=t,this.raisePageColorChanged(t))},t.prototype.updateModelSize=function(){var t=this.getModelSizeUpdateOffset();if(!t.isEmpty()){var e=Math.max(this.model.size.width+t.left+t.right,this.model.pageWidth),n=Math.max(this.model.size.height+t.top+t.bottom,this.model.pageHeight);this.model.size=new i.Size(e,n)}},t.prototype.getModelSizeUpdateOffset=function(){var t=this.model.getRectangle(!1),e=this.model.getRectangle(!0);return e.equals(t)||this.raiseModelRectangleChanged(e),this.createModelRectangleOffset(e)},t.prototype.createModelRectangleOffset=function(t){var e=this.model.pageWidth,n=this.model.pageHeight,i=this.model.size;return new o.Offsets(-Math.floor(t.x/e)*e,-Math.floor((i.width-t.right)/e)*e,-Math.floor(t.y/n)*this.model.pageHeight,-Math.floor((i.height-t.bottom)/n)*n)},t.prototype.raiseModelChanged=function(t){this.onModelChanged.raise1((function(e){return e.notifyModelChanged(t)}))},t.prototype.raisePageColorChanged=function(t){this.onModelChanged.raise1((function(e){return e.notifyPageColorChanged(t)}))},t.prototype.raisePageSizeChanged=function(t,e){this.onModelChanged.raise1((function(n){return n.notifyPageSizeChanged(t,e)}))},t.prototype.raiseModelSizeChanged=function(t,e){this.onModelSizeChanged.raise1((function(n){return n.notifyModelSizeChanged(t,e)}))},t.prototype.raiseModelRectangleChanged=function(t){this.onModelSizeChanged.raise1((function(e){return e.notifyModelRectangleChanged(t)}))},t.prototype.raiseSnapPointChange=function(t){this.onModelSizeChanged.raise1((function(e){return e.notifySnapPointPositionChanged(t)}))},t.prototype.getInteractingItem=function(t,e){return this.permissionsProvider.getInteractingItem(t,e)},t}();e.ModelManipulator=d},4867:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ModelUtils=void 0;var o=n(9291),i=n(5596),r=n(8900),s=n(8011),a=n(6353),c=n(9716),u=n(8679),h=n(5383),p=n(3477),l=n(9603),d=n(4430),f=n(4145),y=n(58),g=n(329),m=n(8930),v=n(9143),P=n(1704),C=n(9310),S=n(8338),x=n(4160),b=n(9753),I=n(4629),w=n(4297),_=n(1729),T=n(4518),O=n(8236),M=n(5144),E=n(9559),D=n(7443),A=n(4634),R=n(926),L=n(213),N=n(7819),z=n(8217),j=n(8675),U=n(7959),k=n(4612),B=n(4717),H=n(1510),K=n(5503),V=n(56),F=function(){function t(){}return t.setShapePosition=function(e,n,o,i,r){if(void 0===r&&(r=!0),!o.position.equals(i)){var s=i.clone().offset(-o.position.x,-o.position.y);e.addAndRedo(new x.MoveShapeHistoryItem(o.key,i)),r&&o.children.forEach((function(o){if(o instanceof K.Shape){var i=o.position.clone().offset(s.x,s.y);t.setShapePosition(e,n,o,i)}}))}},t.setShapeSize=function(t,e,n,o,i){n.size.equals(i)&&n.position.equals(o)||t.addAndRedo(new I.ResizeShapeHistoryItem(n.key,o,i))},t.addConnectorPoint=function(t,e,n,o){t.addAndRedo(new d.AddConnectorPointHistoryItem(e,n,o))},t.deleteConnectorCustomPoints=function(t,e){if(e.points.length>2){var n=e.tryCreateRenderPointsContext();if(e.properties.lineOption!==k.ConnectorLineOption.Straight&&n){var o=e.points[0].clone(),i=e.points[e.points.length-1].clone();t.addAndRedo(new y.ChangeConnectorPointsHistoryItem(e.key,[o,i],new H.ConnectorRenderPointsContext([new B.ConnectorRenderPoint(o.x,o.y,0),new B.ConnectorRenderPoint(i.x,i.y,1)],!1,n.actualRoutingMode)))}else t.addAndRedo(new y.ReplaceConnectorPointsHistoryItem(e.key,[e.points[0].clone(),e.points[e.points.length-1].clone()]))}},t.deleteConnectorUnnecessaryPoints=function(e,n){var o=n.getRenderPoints(!0).map((function(t){return t.clone()}));if(n.properties.lineOption===k.ConnectorLineOption.Straight){var i=t.createUnnecessaryRenderPoints(o.filter((function(t){return!t.skipped})).map((function(t){return t.clone()})),n.skippedRenderPoints,(function(e){return t.findFirstPointIndex(o,(function(t){return B.ConnectorRenderPoint.equal(t,e)}))}));Object.keys(i).length&&e.addAndRedo(new y.ReplaceConnectorPointsHistoryItem(n.key,t.createNecessaryPoints(n.points.map((function(t){return t.clone()})),i)))}else{var r=n.tryCreateRenderPointsContext(!0),s=o.filter((function(t){return!t.skipped})).map((function(t){return t.clone()}));i=t.createUnnecessaryRightAngleRenderPoints(s,n.skippedRenderPoints,(function(e){return t.findFirstPointIndex(o,(function(t){return B.ConnectorRenderPoint.equal(t,e)}))}));if(Object.keys(i).length){var a=t.createNecessaryPoints(n.points.map((function(t){return t.clone()})),i),c=new H.ConnectorRenderPointsContext(t.validateRenderPointIndexes(a,s,0),r.lockCreateRenderPoints,r.actualRoutingMode);e.addAndRedo(new y.ChangeConnectorPointsHistoryItem(n.key,a,c))}}},t.fixConnectorBeginEndConnectionIndex=function(t,e){if(e.beginItem&&-1===e.beginConnectionPointIndex){var n=e.beginItem.getNearestConnectionPoint(e.points[0]);t.addAndRedo(new p.SetConnectionPointIndexHistoryItem(e,n,U.ConnectorPosition.Begin))}if(e.endItem&&-1===e.endConnectionPointIndex){var o=e.endItem.getNearestConnectionPoint(e.points[e.points.length-1]);t.addAndRedo(new p.SetConnectionPointIndexHistoryItem(e,o,U.ConnectorPosition.End))}},t.skipUnnecessaryRenderPoints=function(e,n){j.GeometryUtils.removeUnnecessaryPoints(e,(function(o,i){return t.removeUnnecessaryPoint(e,o,i,n)}),(function(t){return void 0!==t&&!t.skipped})),e[0].skipped=!1,e[e.length-1].skipped=!1},t.skipUnnecessaryRightAngleRenderPoints=function(e,n){j.GeometryUtils.removeUnnecessaryRightAnglePoints(e,(function(o,i){return t.removeUnnecessaryPoint(e,o,i,n)}),(function(t){return void 0!==t&&!t.skipped})),e[0].skipped=!1,e[e.length-1].skipped=!1},t.createUnnecessaryRenderPoints=function(e,n,o,i){void 0===i&&(i=function(t){return!0});var r={};return j.GeometryUtils.removeUnnecessaryPoints(e,(function(n,s){return t.collectNotSkippedRenderPoints(r,e,n,s,o,i)})),t.collectSkippedRenderPoints(r,n,o,i),r},t.createUnnecessaryRightAngleRenderPoints=function(e,n,o,i){void 0===i&&(i=function(t){return!0});var r={};return j.GeometryUtils.removeUnnecessaryRightAnglePoints(e,(function(n,s){return t.collectNotSkippedRenderPoints(r,e,n,s,o,i)})),t.collectSkippedRenderPoints(r,n,o,i),r},t.createNecessaryPoints=function(t,e){var n=this,o=[],i=t.length-1;return t.forEach((function(t,r){(0===r||r===i||n.isNecessaryPoint(t,r,e))&&o.push(t.clone())})),o},t.isNecessaryPoint=function(t,e,n){return!Object.keys(n).some((function(o){var i=n[o];return i.pointIndex===e&&j.GeometryUtils.areDuplicatedPoints(t,i)}))},t.collectSkippedRenderPoints=function(t,e,n,o){void 0===o&&(o=function(t){return!0}),e&&e.forEach((function(e){if(o(e)){var i=n(e);void 0===t[i]&&(t[i]=e)}}))},t.collectNotSkippedRenderPoints=function(t,e,n,o,i,r){if(void 0===r&&(r=function(t){return!0}),r(n)){var s=i(n);if(void 0===t[s])return t[s]=n,n.skipped=!0,e.splice(o,1),!0}return!1},t.removeUnnecessaryPoint=function(t,e,n,o){return o&&-1===e.pointIndex?(t.splice(n,1),!0):(e.skipped=!0,!1)},t.validateRenderPointIndexes=function(t,e,n){var o=this,i=e.map((function(e,i){return new B.ConnectorRenderPoint(e.x,e.y,i>=n&&e.pointIndex>=0?o.findFirstPointIndex(t,(function(t){return t.equals(e)})):e.pointIndex,e.skipped)}));return i[0].skipped=!1,i[i.length-1].skipped=!1,i},t.findFirstPointIndex=function(t,e){if(!t||!e)return-1;for(var n=0;n<t.length;n++)if(e(t[n]))return n;return-1},t.moveConnectorRightAnglePoints=function(t,e,n,o,i,s){e.points.slice(n,o+1).some((function(t){return!j.GeometryUtils.areDuplicatedPoints(t,new r.Point(void 0===i?t.x:i,void 0===s?t.y:s))}))&&t.addAndRedo(new S.MoveConnectorRightAnglePointsHistoryItem(e.key,n,o,i,s))},t.moveConnectorPoint=function(t,e,n,o){return!e.points[n].equals(o)&&(t.addAndRedo(new S.MoveConnectorPointHistoryItem(e.key,n,o)),!0)},t.updateConnectorAttachedPoints=function(t,e,n){t.beginTransaction();var o=n.beginItem&&e.findItemCollapsedContainer(n.beginItem),i=o&&(!n.endItem||!e.isContainerItem(o,n.endItem)),r=n.endItem&&e.findItemCollapsedContainer(n.endItem),s=r&&(!n.beginItem||!e.isContainerItem(r,n.beginItem)),a=!1;return a=i?this.updateConnectorBeginPoint(t,n,o,s&&r||n.endItem,(function(t){return o.getConnectionPointIndexForItem(n.beginItem,t)}))||a:this.updateConnectorBeginPoint(t,n,n.beginItem,s&&r||n.endItem)||a,a=s?this.updateConnectorEndPoint(t,n,r,(function(t){return r.getConnectionPointIndexForItem(n.beginItem,t)}))||a:this.updateConnectorEndPoint(t,n,n.endItem)||a,t.endTransaction(),a},t.updateConnectorBeginPoint=function(t,e,n,o,i){if(n){var s=void 0!==i?i(e.beginConnectionPointIndex):e.beginConnectionPointIndex,a=e.points[1];o&&2===e.points.length&&(a=-1!==e.endConnectionPointIndex?o.getConnectionPointPosition(e.endConnectionPointIndex,r.Point.zero()):o.rectangle.center);var c=n.getConnectionPointPosition(s,a);return this.moveConnectorPoint(t,e,0,c.clone())}},t.updateConnectorEndPoint=function(t,e,n,o){if(n){var i=void 0!==o?o(e.endConnectionPointIndex):e.endConnectionPointIndex,r=n.getConnectionPointPosition(i,e.points[e.points.length-2]);return this.moveConnectorPoint(t,e,e.points.length-1,r)}},t.updateContainerConnectorsAttachedPoints=function(t,e,n,o){var i=this;void 0===o&&(o=n),t.beginTransaction(),e.getChildren(o).forEach((function(r){r instanceof K.Shape&&(r.attachedConnectors.forEach((function(r){var s=r.beginItem&&e.isContainerItem(o,r.beginItem),a=r.endItem&&e.isContainerItem(o,r.endItem);if(s&&!a){var c=e.findItemTopCollapsedContainer(r.beginItem),u=r.endItem&&e.findItemTopCollapsedContainer(r.endItem);c?i.updateConnectorBeginPoint(t,r,c,u||r.endItem,(function(t){return n.getConnectionPointIndexForItem(r.beginItem,t)})):i.updateConnectorBeginPoint(t,r,r.beginItem,u||r.endItem)}a&&!s&&((c=e.findItemTopCollapsedContainer(r.endItem))?i.updateConnectorEndPoint(t,r,c,(function(t){return n.getConnectionPointIndexForItem(r.endItem,t)})):i.updateConnectorEndPoint(t,r,r.endItem))})),i.updateContainerConnectorsAttachedPoints(t,e,n,r))})),t.endTransaction()},t.getConnectorsWithoutBeginItemInfo=function(t){return t.findConnectorsWithoutBeginItem().map((function(t){return{connector:t,point:t.points[0].clone()}}))},t.getConnectorsWithoutEndItemInfo=function(t){return t.findConnectorsWithoutEndItem().map((function(t){return{connector:t,point:t.points[t.points.length-1].clone()}}))},t.updateShapeAttachedConnectors=function(t,e,n){var o=this;n.attachedConnectors.forEach((function(n){o.tryRemoveConnectorIntermediatePoints(t,n),o.updateConnectorAttachedPoints(t,e,n)}))},t.updateMovingShapeConnections=function(t,e,n,o,i,r,s){var a=this;i(),n.forEach((function(n){var o=a.getMovingShapeConnectionPointIndex(e,n.point);e.rectangle.containsPoint(n.point)||o>-1?(r(e,o),o!==n.connector.beginConnectionPointIndex&&n.connector.beginItem&&t.addAndRedo(new m.DeleteConnectionHistoryItem(n.connector,U.ConnectorPosition.Begin)),s(n.connector),t.addAndRedo(new p.AddConnectionHistoryItem(n.connector,e,o,U.ConnectorPosition.Begin))):n.connector.beginItem&&(t.addAndRedo(new m.DeleteConnectionHistoryItem(n.connector,U.ConnectorPosition.Begin)),t.addAndRedo(new S.MoveConnectorPointHistoryItem(n.connector.key,0,n.point)))})),o.forEach((function(n){var o=a.getMovingShapeConnectionPointIndex(e,n.point);e.rectangle.containsPoint(n.point)||o>-1?(r(e,o),o!==n.connector.endConnectionPointIndex&&n.connector.endItem&&t.addAndRedo(new m.DeleteConnectionHistoryItem(n.connector,U.ConnectorPosition.End)),s(n.connector),t.addAndRedo(new p.AddConnectionHistoryItem(n.connector,e,o,U.ConnectorPosition.End))):n.connector.endItem&&(t.addAndRedo(new m.DeleteConnectionHistoryItem(n.connector,U.ConnectorPosition.End)),t.addAndRedo(new S.MoveConnectorPointHistoryItem(n.connector.key,n.connector.points.length-1,n.point)))}))},t.getMovingShapeConnectionPointIndex=function(t,e){var n=this,o=-1;return t.getConnectionPoints().forEach((function(t,r){i.Metrics.euclideanDistance(e,t)<n.connectionPointActionSize&&(o=r)})),o},t.shouldRemoveConnectorIntermediatePoints=function(t,e){if(t.properties.lineOption!==k.ConnectorLineOption.Orthogonal||2===t.points.length||!e||!e.length)return!1;for(var n,o=0;n=e[o];){if(this.isShapeIntersectConnectorCustomPoints(n,t))return!0;o++}return!1},t.tryRemoveConnectorIntermediatePoints=function(t,e){this.shouldRemoveConnectorIntermediatePoints(e,[e.beginItem,e.endItem])&&this.deleteConnectorCustomPoints(t,e)},t.isShapeIntersectConnectorCustomPoints=function(t,e){if(!t)return!1;var n=e.getCustomRenderPoints(!0);if(!n.length)return!1;var i=U.Connector.minOffset-o.UnitConverter.pixelsToTwips(1);return j.GeometryUtils.areIntersectedSegments(j.GeometryUtils.createSegments(n),j.GeometryUtils.createSegmentsFromRectangle(t.rectangle.clone().inflate(i,i)))},t.getSnappedPos=function(t,e,n,o){var i=o?t.snapStartPoint.x:t.snapStartPoint.y;return Math.round((n-i)/e)*e+i},t.tryUpdateModelRectangle=function(t,e){var n=t.modelManipulator.getModelSizeUpdateOffset();n.isEmpty()||(t.addAndRedo(new _.ModelResizeHistoryItem(n)),(n.left||n.top)&&(t.addAndRedo(new T.UpdatePositionsOnPageResizeHistoryItem(new c.Vector(n.left,n.top))),void 0!==e&&e(n.left,n.top)),t.modelManipulator.raiseModelRectangleChanged(t.modelManipulator.model.getRectangle(!0)))},t.deleteItems=function(t,e,n,o,i){t.beginTransaction();var r={};o.forEach((function(t){return r[t.key]=t}));var s=n.getKeys().filter((function(t){return!r[t]}));t.addAndRedo(new w.SetSelectionHistoryItem(n,s)),this.deleteItemsCore(t,e,o,i),this.tryUpdateModelRectangle(t),t.endTransaction()},t.deleteItemsCore=function(t,e,n,o){var i=this;n.sort((function(t,e){return(t instanceof U.Connector?0:1)-(e instanceof U.Connector?0:1)})),n.forEach((function(n){if(n.container&&i.removeFromContainer(t,e,n),n instanceof K.Shape){var r=e.getChildren(n);r.length&&(r.forEach((function(n){t.addAndRedo(new b.RemoveFromContainerHistoryItem(n)),i.updateAttachedConnectorsContainer(t,e,n)})),i.deleteItemsCore(t,e,r.filter((function(t){return!t.locked||o})),o)),e.findItem(n.key)&&i.deleteShape(t,n)}n instanceof U.Connector&&e.findItem(n.key)&&i.deleteConnector(t,n)}))},t.detachConnectors=function(t,e){for(t.beginTransaction();e.attachedConnectors.length>0;){var n=e.attachedConnectors[0];t.addAndRedo(new m.DeleteConnectionHistoryItem(n,n.beginItem===e?U.ConnectorPosition.Begin:U.ConnectorPosition.End))}t.endTransaction()},t.deleteShape=function(t,e){var n=t.modelManipulator.permissionsProvider.canDeleteItems([e]);t.beginTransaction(),this.detachConnectors(t,e),t.addAndRedo(new P.DeleteShapeHistoryItem(e.key,n)),t.endTransaction()},t.deleteConnector=function(t,e){t.beginTransaction(),e.beginItem&&t.addAndRedo(new m.DeleteConnectionHistoryItem(e,U.ConnectorPosition.Begin)),e.endItem&&t.addAndRedo(new m.DeleteConnectionHistoryItem(e,U.ConnectorPosition.End)),t.addAndRedo(new v.DeleteConnectorHistoryItem(e.key)),t.endTransaction()},t.deleteAllItems=function(t,e,n){this.deleteItems(t,e,n,e.items.slice(),!0)},t.deleteSelection=function(t,e,n){this.deleteItems(t,e,n,n.getSelectedItems())},t.changeSelectionLocked=function(e,n,o,i){e.beginTransaction(),o.getSelectedItems(!0).forEach((function(t){e.addAndRedo(new D.ChangeLockedHistoryItem(t,i))})),t.updateSelection(e,o),e.endTransaction()},t.copyStylesToItem=function(t,e,n,o){var i=e.findItem(o);n.styleText.forEach((function(e){n.styleText[e]!==i.styleText[e]&&t.addAndRedo(new R.ChangeStyleTextHistoryItem(o,e,n.styleText[e]))})),n.style.forEach((function(e){n.style[e]!==i.style[e]&&t.addAndRedo(new A.ChangeStyleHistoryItem(o,e,n.style[e]))}))},t.updateSelection=function(t,e){t.addAndRedo(new w.SetSelectionHistoryItem(e,e.getKeys(),!0))},t.cloneShapeToOffset=function(t,e,n,o,i){t.beginTransaction();var r=n.position.clone().offset(o,i),s=new f.AddShapeHistoryItem(n.description,r,n.text);t.addAndRedo(s);var a=s.shapeKey;return t.addAndRedo(new I.ResizeShapeHistoryItem(a,r,n.size.clone())),t.addAndRedo(new E.ChangeCustomDataHistoryItem(a,j.ObjectUtils.cloneObject(n.customData))),t.addAndRedo(new g.ChangeShapeParametersHistoryItem(a,n.parameters.clone())),this.copyStylesToItem(t,e,n,a),t.endTransaction(),a},t.applyOffsetToConnectorRenderPointsContext=function(t,e,n){return t&&t.renderPoints?new H.ConnectorRenderPointsContext(t.renderPoints.map((function(t){return t.clone().offset(e,n)})),!0,t.actualRoutingMode):void 0},t.cloneConnectorToOffset=function(t,e,n,o,i,r,s){t.beginTransaction();var a=n.points.map((function(t){return t.clone().offset(r,s)})),c=new l.AddConnectorHistoryItem(a,void 0,this.applyOffsetToConnectorRenderPointsContext(n.tryCreateRenderPointsContext(),r,s));t.addAndRedo(c);var u=c.connectorKey,h=e.findConnector(u);if(n.properties.forEach((function(e){n.properties[e]!==h.properties[e]&&t.addAndRedo(new O.ChangeConnectorPropertyHistoryItem(u,e,n.properties[e]))})),o){var d=e.findShape(o);t.addAndRedo(new p.AddConnectionHistoryItem(h,d,n.beginConnectionPointIndex,U.ConnectorPosition.Begin))}if(i){var f=e.findShape(i);t.addAndRedo(new p.AddConnectionHistoryItem(h,f,n.endConnectionPointIndex,U.ConnectorPosition.End))}return n.texts.clone().forEach((function(e){t.addAndRedo(new M.ChangeConnectorTextHistoryItem(h,e.position,e.value))})),this.copyStylesToItem(t,e,n,u),t.endTransaction(),u},t.cloneSelectionToOffset=function(e,n,o,i,r,s){var a=this;e.beginTransaction();var c={},u=[];i.getSelectedShapes().forEach((function(t){var i=a.cloneShapeToOffset(e,n,t,r,s);c[t.key]=i,u.push(i),o&&o(i)})),i.getSelectedConnectors().forEach((function(t){var i=t.beginItem?c[t.beginItem.key]:null,h=t.endItem?c[t.endItem.key]:null,p=a.cloneConnectorToOffset(e,n,t,i,h,r,s);u.push(p),o&&o(p)})),e.addAndRedo(new w.SetSelectionHistoryItem(i,u)),t.tryUpdateModelRectangle(e),e.endTransaction()},t.findContainerByEventKey=function(e,n,o){var i=e.findContainer(o);if(i&&!i.isLocked)return i;var r=e.findShape(o);return r&&r.container&&!n.hasKey(r.key)?t.findContainerByEventKey(e,n,r.container.key):void 0},t.canInsertToContainer=function(t,e,n){return e!==n&&!(e instanceof K.Shape&&t.findChild(e,n.key))},t.canInsertSelectionToContainer=function(t,e,n){var o=!0;return e.getSelectedItems().forEach((function(e){e!==n?e instanceof K.Shape&&t.findChild(e,n.key)&&(o=!1):o=!1})),o},t.insertToContainer=function(t,e,n,o){if(!o.enableChildren)throw Error(\"Inpossible to add children to non-container shape.\");if(this.canInsertToContainer(e,n,o)){var i=n.container;i!==o&&(t.beginTransaction(),i&&(t.addAndRedo(new b.RemoveFromContainerHistoryItem(n)),n.attachedConnectors.forEach((function(e){e.container&&t.addAndRedo(new b.RemoveFromContainerHistoryItem(e))}))),t.addAndRedo(new C.InsertToContainerHistoryItem(n,o)),this.updateAttachedConnectorsContainer(t,e,n),t.endTransaction())}},t.removeFromContainer=function(t,e,n){n.container&&(t.beginTransaction(),t.addAndRedo(new b.RemoveFromContainerHistoryItem(n)),this.updateAttachedConnectorsContainer(t,e,n),t.endTransaction())},t.insertSelectionToContainer=function(t,e,n,o){var i=this;t.beginTransaction();var r=n.getSelectedItems();r.filter((function(t){return!t.container||-1===r.indexOf(t.container)})).forEach((function(n){i.insertToContainer(t,e,n,o)})),t.endTransaction()},t.removeSelectionFromContainer=function(t,e,n){var o=this;t.beginTransaction(),n.getSelectedItems().forEach((function(i){i.container&&!n.hasKey(i.container.key)&&(t.addAndRedo(new b.RemoveFromContainerHistoryItem(i)),o.updateAttachedConnectorsContainer(t,e,i))})),t.endTransaction()},t.getConnectorContainer=function(t){if(t.beginItem&&t.endItem){for(var e={},n=t.beginItem.container;n;)e[n.key]=!0,n=n.container;for(var o=t.endItem.container;o;){if(void 0!==e[o.key])return o;o=o.container}}},t.updateAttachedConnectorsContainer=function(t,e,n){var o=this;t.beginTransaction(),n.attachedConnectors.forEach((function(n){o.updateConnectorContainer(t,e,n)})),t.endTransaction()},t.updateConnectorContainer=function(t,e,n){var o=this.getConnectorContainer(n);o?t.addAndRedo(new C.InsertToContainerHistoryItem(n,o)):n.container&&t.addAndRedo(new b.RemoveFromContainerHistoryItem(n))},t.updateNewShapeProperties=function(t,e,n){e.inputPosition.getDefaultStyle().forEach((function(o){t.addAndRedo(new A.ChangeStyleHistoryItem(n,o,e.inputPosition.getDefaultStylePropertyValue(o)))})),e.inputPosition.getDefaultTextStyle().forEach((function(o){t.addAndRedo(new R.ChangeStyleTextHistoryItem(n,o,e.inputPosition.getDefaultTextStylePropertyValue(o)))}))},t.updateNewConnectorProperties=function(t,e,n){e.inputPosition.getDefaultConnectorProperties().forEach((function(o){t.addAndRedo(new O.ChangeConnectorPropertyHistoryItem(n,o,e.inputPosition.getDefaultConnectorPropertyValue(o)))})),e.inputPosition.getDefaultStyle().forEach((function(o){t.addAndRedo(new A.ChangeStyleHistoryItem(n,o,e.inputPosition.getDefaultStylePropertyValue(o)))})),e.inputPosition.getDefaultTextStyle().forEach((function(o){t.addAndRedo(new R.ChangeStyleTextHistoryItem(n,o,e.inputPosition.getDefaultTextStylePropertyValue(o)))}))},t.applyLayout=function(t,e,n,o,i,r,s,a,c,u){t.beginTransaction();var h=this.getOccupiedRectangles(r,n);return i=this.offsetLayoutToFreeSpace(i,n&&n.clientRectangle,h,s.containerPadding),a&&this.adjustLayoutToSnapGrid(e,i,c),n&&this.resizeContainerOnLayout(t,e,i,n,s.containerPadding),this.applyLayoutToNodes(t,e,i,o.edges.map((function(t){return e.findConnector(t.key)}))),this.applyLayoutToConnectors(t,e,i,o.edges.map((function(t){return e.findConnector(t.key)})),u),t.endTransaction(),i.getRectangle(!0)},t.getNonGraphItems=function(t,e,n,o,i){return(e?t.getChildren(e):t.items.filter((function(t){return!t.container}))).filter((function(t){return t instanceof U.Connector?!(t.beginItem&&n[t.beginItem.key]||t.endItem&&n[t.endItem.key]||-1!==i.indexOf(t)):t instanceof K.Shape?!n[t.key]&&-1===o.indexOf(t):void 0}))},t.getOccupiedRectangles=function(t,e){var n=t.map((function(t){return t.rectangle}));if(e&&n.length){var o=e.clientRectangle;n.push(new s.Rectangle(o.right,o.y,1,1)),n.push(new s.Rectangle(o.right,o.bottom,1,1))}return n},t.offsetLayoutToFreeSpace=function(t,e,n,o){var i=t.getRectangle(!0),r=j.GeometryUtils.findFreeSpace(n,i.createSize().offset(o,o).nonNegativeSize(),!1,e);if(r){var s=r.x+o,a=r.y+o;return t.offsetNodes(s,a)}var c=n&&n.length?n.reduce((function(t,e){return e.right>t?e.right:t}),0):e?e.x:0,u=e?e.y:Math.max(0,i.y);return t.offsetNodes(c+o,u+o)},t.resizeContainerOnLayout=function(e,n,o,i,r){var s=o.getRectangle(!0),c=i.children.filter((function(t){return t instanceof K.Shape?-1===o.nodeKeys.indexOf(t.key):!!(t instanceof U.Connector&&t.beginItem&&t.endItem)&&(-1===o.nodeKeys.indexOf(t.beginItem.key)&&-1===o.nodeKeys.indexOf(t.endItem.key))})).map((function(t){return t.rectangle})),u=c.map((function(t){return t.right})).reduce((function(t,e){return Math.max(t,e)}),s.right),h=c.map((function(t){return t.bottom})).reduce((function(t,e){return Math.max(t,e)}),s.bottom),p=i.rectangle.width+u+r-i.rectangle.right,l=i.rectangle.height+h+r-i.rectangle.bottom;t.setShapeSize(e,n,i,i.position,new a.Size(p,l)),t.updateShapeAttachedConnectors(e,n,i)},t.applyLayoutToNodes=function(t,e,n,o){var i=this,r=o.reduce((function(t,e){return t[e.key]=t}),{});n.forEachNode((function(n,o){var s=e.findShape(o);i.applyLayoutToNode(t,e,s,n.position,r)}))},t.applyLayoutToNode=function(e,n,o,i,r){var s=this,a=i.clone().offset(-o.position.x,-o.position.y);t.setShapePosition(e,n,o,i,!1),0===a.x&&0===a.y||(o.attachedConnectors.filter((function(t){return!r[t.key]})).forEach((function(t){s.updateConnectorAttachedPoints(e,n,t);for(var o=t.beginItem?1:0,i=t.endItem?t.points.length-2:t.points.length-1,r=o;r<=i;r++)s.moveConnectorPoint(e,t,r,t.points[r].offset(a.x,a.y))})),n.getChildren(o).forEach((function(t){if(t instanceof K.Shape){var o=t.position.clone().offset(a.x,a.y);s.applyLayoutToNode(e,n,t,o,r)}})))},t.applyLayoutToConnectors=function(t,e,n,o,i){var r=this;o.filter((function(t){return t.beginItem||t.endItem})).forEach((function(o){var s=n.edgeToPosition[o.key];if(o.beginItem&&o.endItem&&!i&&s){var a=o.beginItem.getConnectionPointIndexForSide(s.beginIndex);a!==o.beginConnectionPointIndex&&t.addAndRedo(new p.SetConnectionPointIndexHistoryItem(o,a,U.ConnectorPosition.Begin));var c=o.endItem.getConnectionPointIndexForSide(s.endIndex);c!==o.endConnectionPointIndex&&t.addAndRedo(new p.SetConnectionPointIndexHistoryItem(o,c,U.ConnectorPosition.End))}r.updateConnectorAttachedPoints(t,e,o),s&&r.deleteConnectorCustomPoints(t,o)}))},t.adjustLayoutToSnapGrid=function(t,e,n){var o=this;e.nodeKeys.forEach((function(i){e.nodeToLayout[i].position.x=o.getSnappedPos(t,n,e.nodeToLayout[i].position.x,!0),e.nodeToLayout[i].position.y=o.getSnappedPos(t,n,e.nodeToLayout[i].position.y,!1)}))},t.getGraphInfoByItems=function(t,e,n,o){void 0===o&&(o=!0);var i={};[].concat(e).concat(n).forEach((function(t){var e=t.container&&t.container.key;i[e]||(i[e]=[]),i[e].push(t)}));var r=[];for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var a=s&&t.findContainer(s);if(!a||a.expanded&&!t.findItemCollapsedContainer(a)){var c=a&&a.key,u=this.getGraphByItems(t,i[s],c,!o),h=!1;(u.nodes.length>1||u.nodes.length&&(o||a&&i[a.container&&a.container.key]))&&(h=!0),h&&r.push(new N.GraphInfo(a,u))}}return r.sort((function(t,e){return e.level-t.level}))},t.getGraphByItems=function(t,e,n,o){var i=this,r=new L.Graph([],[]),s={};return e.forEach((function(t){i.extendByConnectedComponents(t,r,n,s,o)})),r.nodes.sort((function(e,n){return t.getItemIndex(t.findItem(e))-t.getItemIndex(t.findItem(n))})),r.edges.sort((function(e,n){return t.getItemIndex(t.findItem(e.key))-t.getItemIndex(t.findItem(n.key))})),r.edges=r.edges.filter((function(t){return r.getNode(t.from)&&r.getNode(t.to)})),r},t.extendByConnectedComponents=function(t,e,n,o,i){var r=this;!t||i&&t.locked||o[t.key]||(o[t.key]=!0,!(t instanceof U.Connector&&(t.container&&t.container.key)===n&&t.beginItem)||t.beginItem.locked&&i||!t.endItem||t.endItem.locked&&i||t.beginItem===t.endItem?t instanceof K.Shape&&(t.container&&t.container.key)===n&&(e.addNode(t),t.attachedConnectors.forEach((function(t){return r.extendByConnectedComponents(t,e,n,o,i)}))):(e.addEdge(new z.Edge(t.key,t.beginItem&&t.beginItem.key,t.endItem&&t.endItem.key)),this.extendByConnectedComponents(t.beginItem,e,n,o,i),this.extendByConnectedComponents(t.endItem,e,n,o,i)))},t.getlUnitValue=function(t,e){switch(t){case h.DiagramUnit.Cm:return o.UnitConverter.twipsToCentimeters(e);case h.DiagramUnit.In:return o.UnitConverter.twipsToInches(e);case h.DiagramUnit.Px:return o.UnitConverter.twipsToPixels(e)}},t.getUnitText=function(t,e,n,o,i){void 0===i&&(i=2);var r=e[t]?\" \"+e[t]:\"\",s=this.getlUnitValue(t,o);switch(t){case h.DiagramUnit.Cm:case h.DiagramUnit.In:return n(+s.toFixed(i))+r;case h.DiagramUnit.Px:return n(+s.toFixed(0))+r}},t.getTwipsValue=function(t,e){switch(t){case h.DiagramUnit.Cm:return o.UnitConverter.centimetersToTwips(e);case h.DiagramUnit.In:return o.UnitConverter.inchesToTwips(e);case h.DiagramUnit.Px:return o.UnitConverter.pixelsToTwips(e)}},t.getGuidItemKey=function(){return u.MathUtils.generateGuid()},t.createSelectedItems=function(t){var e={};return t.getSelectedItems(!0).forEach((function(t){return e[t.key]=t})),e},t.canMoveConnector=function(t,e){var n=e.beginItem,o=e.endItem;return n||o?!!t[e.key]&&(n===o?!!t[n.key]:n?o?!!t[n.key]&&!!t[o.key]:!!t[n.key]:!!t[o.key]):!e.isLocked},t.createRectangle=function(t){return j.GeometryUtils.getCommonRectangle(t.map((function(t){return t.rectangle})))},t.changeShapeType=function(t,e,n,o){if(n.description.key!==o){t.beginTransaction();var i=n.getConnectionPoints(),r=i.map((function(t){return n.getConnectionPointSide(t)}));t.addAndRedo(new V.ChangeShapeTypeHistoryItem(n,o));for(var s=n.getConnectionPoints(),a=s.map((function(t){return n.getConnectionPointSide(t)})),c=0,u=void 0;u=n.attachedConnectors[c];c++)u.beginItem===n&&this.updateConnectionIndexByNewShapeType(t,u,U.ConnectorPosition.Begin,u.beginConnectionPointIndex,i,r,s,a),u.endItem===n&&this.updateConnectionIndexByNewShapeType(t,u,U.ConnectorPosition.End,u.endConnectionPointIndex,i,r,s,a),this.updateConnectorAttachedPoints(t,e,u);t.endTransaction()}},t.updateConnectionIndexByNewShapeType=function(t,e,n,o,i,r,s,a){if(!(o<0)){var c=r[o],u=i[o];if(!(o<s.length&&c===a[o])){var h=this.findNearestPointIndex(s,u,(function(t){return a[t]===c}));-1===h&&(h=this.findNearestPointIndex(s,u,(function(){return!0}))),h!==o&&t.addAndRedo(new p.SetConnectionPointIndexHistoryItem(e,h,n))}}},t.findNearestPointIndex=function(t,e,n){return t.reduce((function(o,r,s){if(n(s)){var a=i.Metrics.euclideanDistance(e,t[s]);(-1===o.index||o.distance>a)&&(o.index=s,o.distance=a)}return o}),{distance:Number.MAX_SAFE_INTEGER,index:-1}).index},t.connectionPointActionSize=o.UnitConverter.pixelsToTwips(8),t}();e.ModelUtils=F},6469:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AddShapeEventArgs=e.AddShapeRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n){var o=t.call(this,e)||this;return o.shape=n,o}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.AddShape},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape),this.apiController.convertPoint(this.shape.position))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"addShape\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.shape===t.shape&&this.shape.position.equals(t.shape.position))},e}(s.RequestedEntity);e.AddShapeRequestedEntity=a;var c=function(t){function e(e,n){var o=t.call(this)||this;return o.shape=e,o.position=n,o}return i(e,t),e}(s.PermissionRequestEventArgs);e.AddShapeEventArgs=c},1110:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.AddShapeFromToolboxEventArgs=e.AddShapeFromToolboxRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n){var o=t.call(this,e)||this;return o.shapeType=n,o}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.AddShapeFromToolbox},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.shapeType)},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"addShapeFromToolbox\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+this.shapeType},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&this.shapeType===t.shapeType},e}(s.RequestedEntity);e.AddShapeFromToolboxRequestedEntity=a;var c=function(t){function e(e){var n=t.call(this)||this;return n.shapeType=e,n}return i(e,t),e}(s.PermissionRequestEventArgs);e.AddShapeFromToolboxEventArgs=c},4829:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BeforeChangeConnectorTextEventArgs=e.BeforeChangeConnectorTextRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.connector=n,i.position=o,i}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.BeforeChangeConnectorText},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeConnector(this.connector),this.position,this.connector.texts.map((function(t){return t})).sort((function(t,e){return t.position-e.position})).indexOf(this.connector.texts.get(this.position)))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeConnectorText\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return\"before\"+this.settingsKey+\"_\"+(this.connector&&this.connector.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.connector===t.connector&&this.position===t.position&&this.connector.texts.get(this.position)===t.connector.texts.get(t.position))},e}(s.RequestedEntity);e.BeforeChangeConnectorTextRequestedEntity=a;var c=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connector=e,i.position=n,i.index=o,i}return i(e,t),e}(s.PermissionRequestEventArgs);e.BeforeChangeConnectorTextEventArgs=c},2345:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BeforeChangeShapeTextEventArgs=e.BeforeChangeShapeTextRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n){var o=t.call(this,e)||this;return o.shape=n,o}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.BeforeChangeShapeText},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeShapeText\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return\"before\"+this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.shape===t.shape&&this.shape.text===t.shape.text)},e}(s.RequestedEntity);e.BeforeChangeShapeTextRequestedEntity=a;var c=function(t){function e(e){var n=t.call(this)||this;return n.shape=e,n}return i(e,t),e}(s.PermissionRequestEventArgs);e.BeforeChangeShapeTextEventArgs=c},6466:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectionEventArgs=e.ChangeConnectionRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o,i,r,s){var a=t.call(this,e)||this;return a.connector=n,a.shape=o,a.oldShape=i,a.position=r,a.connectionPointIndex=s,a}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.ChangeConnection},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeConnector(this.connector),this.apiController.createNativeShape(this.shape),this.apiController.createNativeShape(this.oldShape),this.position,this.connectionPointIndex)},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeConnection\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.connector&&this.connector.key)+\"_\"+this.position},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){if(t instanceof e){var n=!this.connector&&!t.connector||this.connector&&t.connector&&this.connector===t.connector,o=!this.shape&&!t.shape||this.shape&&t.shape&&this.shape===t.shape,i=!this.oldShape&&!t.oldShape||this.oldShape&&t.oldShape&&this.oldShape===t.oldShape;return o&&i&&n&&this.position===t.position&&this.connectionPointIndex===t.connectionPointIndex}return!1},e}(s.RequestedEntity);e.ChangeConnectionRequestedEntity=a;var c=function(t){function e(e,n,o,i,r){var s=t.call(this)||this;return s.connector=e,s.shape=n,s.oldShape=o,s.position=i,s.connectionPointIndex=r,s}return i(e,t),e}(s.PermissionRequestEventArgs);e.ChangeConnectionEventArgs=c},6354:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorPointsEventArgs=e.ChangeConnectorPointsRequestedEntity=void 0;var r=n(6879),s=n(8532),a=n(8675),c=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.connector=n,r.oldPoints=o,r.points=i,r}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.ChangeConnectorPoints},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){var t=this;return new u(this.apiController.createNativeConnector(this.connector),this.oldPoints.map((function(e){return t.apiController.convertPoint(e)})),this.points.map((function(e){return t.apiController.convertPoint(e)})))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeConnectorPoints\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.connector&&this.connector.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.connector===t.connector&&a.GeometryUtils.arePointsEqual(this.oldPoints,t.oldPoints)&&a.GeometryUtils.arePointsEqual(this.points,t.points))},e}(s.RequestedEntity);e.ChangeConnectorPointsRequestedEntity=c;var u=function(t){function e(e,n,o){var i=t.call(this)||this;return i.connector=e,i.oldPoints=n,i.points=o,i}return i(e,t),e}(s.PermissionRequestEventArgs);e.ChangeConnectorPointsEventArgs=u},2249:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeConnectorTextEventArgs=e.ChangeConnectorTextRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.connector=n,r.position=o,r.text=i,r}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.ChangeConnectorText},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeConnector(this.connector),this.position,this.connector.texts.map((function(t){return t})).sort((function(t,e){return t.position-e.position})).indexOf(this.connector.texts.get(this.position)),this.text)},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeConnectorText\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.connector&&this.connector.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.connector===t.connector&&this.position===t.position&&this.text===t.text)},e}(s.RequestedEntity);e.ChangeConnectorTextRequestedEntity=a;var c=function(t){function e(e,n,o,i){var r=t.call(this)||this;return r.connector=e,r.position=n,r.index=o,r.text=i,r}return i(e,t),e}(s.PermissionRequestEventArgs);e.ChangeConnectorTextEventArgs=c},5560:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChangeShapeTextEventArgs=e.ChangeShapeTextRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o){var i=t.call(this,e)||this;return i.shape=n,i.text=o,i}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.ChangeShapeText},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape),this.text)},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"changeShapeText\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.shape===t.shape&&this.text===t.text)},e}(s.RequestedEntity);e.ChangeShapeTextRequestedEntity=a;var c=function(t){function e(e,n){var o=t.call(this)||this;return o.shape=e,o.text=n,o}return i(e,t),e}(s.PermissionRequestEventArgs);e.ChangeShapeTextEventArgs=c},6580:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteConnectorEventArgs=e.DeleteConnectorRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n){var o=t.call(this,e)||this;return o.connector=n,o}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.DeleteConnector},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeConnector(this.connector))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"deleteConnector\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.connector&&this.connector.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&this.connector===t.connector},e}(s.RequestedEntity);e.DeleteConnectorRequestedEntity=a;var c=function(t){function e(e){var n=t.call(this)||this;return n.connector=e,n}return i(e,t),e}(s.PermissionRequestEventArgs);e.DeleteConnectorEventArgs=c},8825:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DeleteShapeEventArgs=e.DeleteShapeRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n){var o=t.call(this,e)||this;return o.shape=n,o}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.DeleteShape},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"deleteShape\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&this.shape===t.shape},e}(s.RequestedEntity);e.DeleteShapeRequestedEntity=a;var c=function(t){function e(e){var n=t.call(this)||this;return n.shape=e,n}return i(e,t),e}(s.PermissionRequestEventArgs);e.DeleteShapeEventArgs=c},4864:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MoveShapeEventArgs=e.MoveShapeRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.shape=n,r.oldPosition=o,r.position=i,r}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.MoveShape},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape),this.apiController.convertPoint(this.oldPosition),this.apiController.convertPoint(this.position))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"moveShape\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.shape===t.shape&&this.oldPosition.equals(t.oldPosition)&&this.position.equals(t.position))},e}(s.RequestedEntity);e.MoveShapeRequestedEntity=a;var c=function(t){function e(e,n,o){var i=t.call(this)||this;return i.shape=e,i.oldPosition=n,i.position=o,i}return i(e,t),e}(s.PermissionRequestEventArgs);e.MoveShapeEventArgs=c},8532:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.PermissionRequestEventArgs=e.RequestedEntity=void 0;var n=function(){function t(t){this.apiController=t}return Object.defineProperty(t.prototype,\"allowed\",{get:function(){return this.eventArgs.allowed},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"updateUI\",{get:function(){return this.eventArgs.updateUI},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"eventArgs\",{get:function(){return this._eventArgs||(this._eventArgs=this.createEventArgs()),this._eventArgs},enumerable:!1,configurable:!0}),t}();e.RequestedEntity=n;var o=function(){this.allowed=!0,this.updateUI=!1};e.PermissionRequestEventArgs=o},3214:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ResizeShapeEventArgs=e.ResizeShapeRequestedEntity=void 0;var r=n(6879),s=n(8532),a=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.shape=n,r.oldSize=o,r.size=i,r}return i(e,t),Object.defineProperty(e.prototype,\"operation\",{get:function(){return r.DiagramModelOperation.ResizeShape},enumerable:!1,configurable:!0}),e.prototype.createEventArgs=function(){return new c(this.apiController.createNativeShape(this.shape),this.apiController.convertSize(this.oldSize),this.apiController.convertSize(this.size))},Object.defineProperty(e.prototype,\"settingsKey\",{get:function(){return\"resizeShape\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"storageKey\",{get:function(){return this.settingsKey+\"_\"+(this.shape&&this.shape.key)},enumerable:!1,configurable:!0}),e.prototype.equals=function(t){return t instanceof e&&(this.shape===t.shape&&this.oldSize.equals(t.oldSize)&&this.size.equals(t.size))},e}(s.RequestedEntity);e.ResizeShapeRequestedEntity=a;var c=function(t){function e(e,n,o){var i=t.call(this)||this;return i.shape=e,i.oldSize=n,i.size=o,i}return i(e,t),e}(s.PermissionRequestEventArgs);e.ResizeShapeEventArgs=c},2883:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.PermissionsProvider=void 0;var o=n(5503),i=n(8675),r=n(6879),s=n(7959),a=n(6469),c=n(8825),u=n(6580),h=n(1110),p=n(6466),l=n(6354),d=n(2345),f=n(4829),y=n(5560),g=n(2249),m=n(9187),v=n(3214),P=n(4864),C=function(){function t(t){this.onRequestOperation=new i.EventDispatcher,this.cache=[],this.permissionsLockCount=0,this.requestDeleteItems={},this.updateUICount=0,this.apiController=t,this.operationSettings=new r.ModelOperationSettings,this.storage=new m.PermissionsProviderStorage}return t.prototype.notifySelectionChanged=function(t){this.clearCache()},t.prototype.notifyModelChanged=function(t){this.clearCache()},t.prototype.notifyPageColorChanged=function(t){},t.prototype.notifyPageSizeChanged=function(t,e){},t.prototype.clearCache=function(t){this.cache=void 0!==t?this.cache.filter((function(e){return e.operation!==t})):[]},t.prototype.canDeleteItems=function(t){var e=this,n=!0;return t.forEach((function(t){var i;t instanceof o.Shape&&(i=new c.DeleteShapeRequestedEntity(e.apiController,t)),t instanceof s.Connector&&(i=new u.DeleteConnectorRequestedEntity(e.apiController,t)),n=n&&e.requestOperation(i)})),n},t.prototype.canAddItems=function(t){var e=this,n=!0;return t.forEach((function(t){t instanceof o.Shape&&(n=n&&e.requestOperation(new a.AddShapeRequestedEntity(e.apiController,t))),t instanceof s.Connector&&(n=(n=n&&e.canChangeConnection(t,t.beginItem,void 0,s.ConnectorPosition.Begin,t.beginConnectionPointIndex))&&e.canChangeConnection(t,t.endItem,void 0,s.ConnectorPosition.End,t.endConnectionPointIndex))})),n},t.prototype.canAddShapeFromToolbox=function(t){return this.requestOperation(new h.AddShapeFromToolboxRequestedEntity(this.apiController,t))},t.prototype.canChangeConnection=function(t,e,n,i,r){return!(!t||!this.requestDeleteItems[t.key])||(!(null==e||e instanceof o.Shape)||this.requestOperation(new p.ChangeConnectionRequestedEntity(this.apiController,t,e,n,i,r)))},t.prototype.canChangeConnectorPoints=function(t,e,n){return!(!t||!this.requestDeleteItems[t.key])||this.requestOperation(new l.ChangeConnectorPointsRequestedEntity(this.apiController,t,e,n))},t.prototype.canChangeShapeText=function(t){return this.requestOperation(new d.BeforeChangeShapeTextRequestedEntity(this.apiController,t))},t.prototype.canChangeConnectorText=function(t,e){return this.requestOperation(new f.BeforeChangeConnectorTextRequestedEntity(this.apiController,t,e))},t.prototype.canApplyShapeTextChange=function(t,e){return this.requestOperation(new y.ChangeShapeTextRequestedEntity(this.apiController,t,e))},t.prototype.canApplyConnectorTextChange=function(t,e,n){return this.requestOperation(new g.ChangeConnectorTextRequestedEntity(this.apiController,t,e,n))},t.prototype.canResizeShapes=function(t){var e=this,n=!0;return t.forEach((function(t){n=n&&e.requestOperation(new v.ResizeShapeRequestedEntity(e.apiController,t.shape,t.oldSize,t.size))})),n},t.prototype.canMoveShapes=function(t){var e=this,n=!0;return t.forEach((function(t){n=n&&e.requestOperation(new P.MoveShapeRequestedEntity(e.apiController,t.shape,t.oldPosition,t.position))})),n},t.prototype.requestOperation=function(t){var e,n=!0;if(!this.permissionsLockCount&&(this.updateUICount>0&&this.cache.forEach((function(n){n.equals(t)&&(e=n)})),e?n=e.allowed:(this.requestOperationCore(t),this.updateUICount>0&&this.cache.push(t),n=t.allowed),0===this.updateUICount&&this.storage.needStorePermissions()))return this.storage.storePermission(t.storageKey,n),this.storage.isStoredPermissionsGranted();return n},t.prototype.requestOperationCore=function(t){t.eventArgs.allowed=this.operationSettings[t.settingsKey],t.eventArgs.updateUI=this.updateUICount>0,t.allowed&&this.onRequestOperation.raise(\"notifyRequestOperation\",t.operation,t.eventArgs)},t.prototype.lockPermissions=function(){this.permissionsLockCount++},t.prototype.unlockPermissions=function(){this.permissionsLockCount--},t.prototype.beginDeleteItems=function(t){var e=this;t.forEach((function(t){return e.requestDeleteItems[t.key]=t}))},t.prototype.endDeleteItems=function(){this.requestDeleteItems={}},t.prototype.beginUpdateUI=function(){this.updateUICount++},t.prototype.endUpdateUI=function(){this.updateUICount--},t.prototype.addInteractingItem=function(t,e){this.storage.addInteractingItem(t,e)},t.prototype.getInteractingItem=function(t,e){return this.storage.getInteractingItem(t,e)},t.prototype.getInteractingItemCount=function(){return this.storage.getInteractingItemCount()},t.prototype.clearInteractingItems=function(){this.storage.clearInteractingItems()},t.prototype.beginStorePermissions=function(){this.storage.beginStorePermissions()},t.prototype.endStorePermissions=function(){this.storage.endStorePermissions()},t.prototype.isStoredPermissionsGranted=function(){return this.permissionsLockCount>0||this.storage.isStoredPermissionsGranted()},t}();e.PermissionsProvider=C},9187:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.PermissionsProviderStorage=void 0;var o=n(5503),i=n(7959),r=function(){function t(){this.interactingItems={},this.storedPermissions={}}return t.prototype.addInteractingItem=function(t,e){var n=this.getInteractingItemKey(t,e);void 0===this.interactingItems[n]&&(t instanceof o.Shape||t instanceof i.Connector)&&(this.interactingItems[n]=t.clone())},t.prototype.getInteractingItem=function(t,e){var n=this.getInteractingItemKey(t,e);return this.interactingItems[n]},t.prototype.getInteractingItemCount=function(){return Object.keys(this.interactingItems).length},t.prototype.clearInteractingItems=function(){this.interactingItems={}},t.prototype.getInteractingItemKey=function(t,e){return t.key+(void 0!==e?\"_\"+e.toString():\"\")},t.prototype.needStorePermissions=function(){return this.storePermissions},t.prototype.beginStorePermissions=function(){this.storePermissions=!0},t.prototype.endStorePermissions=function(){this.storePermissions=!1,this.storedPermissions={}},t.prototype.isStoredPermissionsGranted=function(){for(var t=Object.keys(this.storedPermissions),e=!0,n=0;n<t.length;n++)e=e&&this.storedPermissions[t[n]];return e},t.prototype.storePermission=function(t,e){this.storedPermissions[t]=e},t}();e.PermissionsProviderStorage=r},7255:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ContainerDescription=e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO=e.CONTAINER_EXPAND_BUTTON_RECT_RATIO=e.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO=e.CONTAINER_HEADER_SIZE=void 0;var r=n(6794),s=n(6353),a=n(2259),c=n(4716),u=n(7724),h=n(3500),p=n(6031),l=n(5329),d=n(7228),f=n(3742),y=n(6224);e.CONTAINER_HEADER_SIZE=360,e.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO=.2,e.CONTAINER_EXPAND_BUTTON_RECT_RATIO=.5,e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO=.3;var g=function(t){function n(e){return void 0===e&&(e=new s.Size(2*r.ShapeDefaultDimension,1.5*r.ShapeDefaultDimension)),t.call(this,e,!0)||this}return i(n,t),Object.defineProperty(n.prototype,\"enableChildren\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),n.prototype.getDefaultText=function(){return y.DiagramLocalizationService.shapeTexts[a.ShapeTypes.Container]},n.prototype.createConnectionPoints=function(){return[new d.ConnectionPoint(.25,0,f.ConnectionPointSide.North),new d.ConnectionPoint(.5,0,f.ConnectionPointSide.North),new d.ConnectionPoint(.75,0,f.ConnectionPointSide.North),new d.ConnectionPoint(1,.25,f.ConnectionPointSide.East),new d.ConnectionPoint(1,.5,f.ConnectionPointSide.East),new d.ConnectionPoint(1,.75,f.ConnectionPointSide.East),new d.ConnectionPoint(.75,1,f.ConnectionPointSide.South),new d.ConnectionPoint(.5,1,f.ConnectionPointSide.South),new d.ConnectionPoint(.25,1,f.ConnectionPointSide.South),new d.ConnectionPoint(0,.75,f.ConnectionPointSide.West),new d.ConnectionPoint(0,.5,f.ConnectionPointSide.West),new d.ConnectionPoint(0,.25,f.ConnectionPointSide.West)]},n.prototype.getConnectionPointIndexForItem=function(t,e){return 4===(t&&t.getConnectionPoints()).length?3*e+1:e},n.prototype.getConnectionPointIndexForSide=function(t){return 3*t+1},n.prototype.createShapePrimitives=function(t,e){var n=t.rectangle,o=n.x,i=n.y,r=n.width,s=n.height,a=[];return t.expanded&&(a=a.concat([new c.RectanglePrimitive(o,i,r,s,t.style)])),a.concat(this.createHeaderPrimitives(t,e))},n.prototype.createExpandButtonPrimitives=function(t,n){var o=[new u.PathPrimitiveMoveToCommand(n.x+n.width*((1-e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO)/2),n.center.y),new u.PathPrimitiveLineToCommand(n.x+n.width*((1-e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO)/2+e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO),n.center.y)];t.expanded||(o=o.concat([new u.PathPrimitiveMoveToCommand(n.center.x,n.y+n.height*((1-e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO)/2)),new u.PathPrimitiveLineToCommand(n.center.x,n.y+n.height*((1-e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO)/2+e.CONTAINER_EXPAND_BUTTON_SIGN_RATIO))]));var i=n.clone().inflate(-n.width*(1-e.CONTAINER_EXPAND_BUTTON_RECT_RATIO)/2,-n.height*(1-e.CONTAINER_EXPAND_BUTTON_RECT_RATIO)/2);return[new l.GroupPrimitive([new c.RectanglePrimitive(i.x,i.y,i.width,i.height,t.style),new u.PathPrimitive(o,t.style)],\"shape-expand-btn\",null,null,(function(e){h.RenderUtils.setElementEventData(e,p.MouseEventElementType.ShapeExpandButton,t.key)}))]},n}(r.ShapeDescription);e.ContainerDescription=g},944:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.HorizontalContainerDescription=void 0;var r=n(6794),s=n(8011),a=n(6353),c=n(8900),u=n(2259),h=n(7255),p=n(4716),l=n(9416),d=function(t){function e(){return t.call(this,new a.Size(2*r.ShapeDefaultDimension,1.5*r.ShapeDefaultDimension))||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.HorizontalContainer},enumerable:!1,configurable:!0}),e.prototype.getExpandedSize=function(t){return new a.Size(t.expandedSize.width,t.size.height)},e.prototype.getCollapsedSize=function(t){return new a.Size(h.CONTAINER_HEADER_SIZE+2*t.strokeWidth,t.size.height)},e.prototype.allowResizeHorizontally=function(t){return t.expanded},e.prototype.createHeaderPrimitives=function(t,e){var n=t.rectangle,o=n.x,i=n.y,r=n.height,a=this.getHeaderSize(t,e),c=[];return c=c.concat([new p.RectanglePrimitive(o,i,a,r,t.style)]),e||(c=c.concat(this.createExpandButtonPrimitives(t,new s.Rectangle(o,i,a,a)))),c},e.prototype.getClientRectangle=function(t){var e=t.rectangle,n=this.getHeaderSize(t);return s.Rectangle.fromGeometry(new c.Point(e.x+n,e.y),new a.Size(e.width-n,e.height))},e.prototype.getTextRectangle=function(t){var e=t.rectangle,n=this.getHeaderSize(t);return s.Rectangle.fromGeometry(new c.Point(e.x,e.y+n),new a.Size(n,e.height-n)).nonNegativeSize()},e.prototype.getSizeByText=function(t,e){var n=this.getHeaderSize(e);return new a.Size(e.size.width,Math.max(e.size.height,Math.max(t.width+n,e.size.height)))},e.prototype.getTextEditRectangle=function(t){var e=this.getTextRectangle(t);return s.Rectangle.fromGeometry(new c.Point(e.x,e.y+e.height),new a.Size(e.height,e.width))},e.prototype.getTextAngle=function(){return l.TextAngle.Angle270deg},e.prototype.getHeaderSize=function(t,e){var n=t.rectangle;return e?n.height*h.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO:h.CONTAINER_HEADER_SIZE+2*t.strokeWidth},e}(h.ContainerDescription);e.HorizontalContainerDescription=d},5759:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.VerticalContainerDescription=void 0;var r=n(8900),s=n(6353),a=n(4716),c=n(8011),u=n(2259),h=n(6794),p=n(7255),l=function(t){function e(){return t.call(this,new s.Size(2*h.ShapeDefaultDimension,1.5*h.ShapeDefaultDimension))||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.VerticalContainer},enumerable:!1,configurable:!0}),e.prototype.getExpandedSize=function(t){return new s.Size(t.size.width,t.expandedSize.height)},e.prototype.getCollapsedSize=function(t){return new s.Size(t.size.width,p.CONTAINER_HEADER_SIZE+2*t.strokeWidth)},e.prototype.allowResizeVertically=function(t){return t.expanded},e.prototype.createHeaderPrimitives=function(t,e){var n=t.rectangle,o=n.x,i=n.y,r=n.width,s=this.getHeaderSize(t,e),u=[];return u=u.concat([new a.RectanglePrimitive(o,i,r,s,t.style)]),e||(u=u.concat(this.createExpandButtonPrimitives(t,new c.Rectangle(o,i,s,s)))),u},e.prototype.getClientRectangle=function(t){var e=t.rectangle,n=this.getHeaderSize(t);return c.Rectangle.fromGeometry(new r.Point(e.x,e.y+n),new s.Size(e.width,e.height-n))},e.prototype.getTextRectangle=function(t){var e=t.rectangle,n=this.getHeaderSize(t);return c.Rectangle.fromGeometry(new r.Point(e.x+n,e.y),new s.Size(e.width-n,n))},e.prototype.getSizeByText=function(t,e){var n=this.getHeaderSize(e);return new s.Size(Math.max(e.size.width,t.width+n),e.size.height)},e.prototype.getHeaderSize=function(t,e){var n=t.rectangle;return e?n.height*p.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO:p.CONTAINER_HEADER_SIZE+2*t.strokeWidth},e}(p.ContainerDescription);e.VerticalContainerDescription=l},6688:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CustomShapeDescription=void 0;var r=n(1995),s=n(8011),a=n(6353),c=n(8900),u=n(7228),h=n(3742),p=n(4083),l=n(6794),d=n(6617),f=n(7176),y=n(590),g=n(1248),m=function(t){function e(e,n){var o=t.call(this,new a.Size(e.defaultWidth||n&&n.defaultSize.width||l.ShapeDefaultDimension,e.defaultHeight||n&&n.defaultSize.height||l.ShapeDefaultDimension))||this;if(o.properties=e,o.baseDescription=n,o.imageLoader=new y.ImageLoader(o.updateSvgImage.bind(o)),o.defaultText=void 0!==e.defaultText?e.defaultText:n&&n.getDefaultText(),o.defaultImageUrl=e.defaultImageUrl||n&&n.getDefaultImageUrl(),o.title=e.title||n&&n.getTitle()||o.defaultText||\"\",o.connectionPoints=o.createConnectionPoints(),e.svgUrl){o.svgImage=new d.ImageInfo(e.svgUrl);var i=f.ImageCache.instance.createUnloadedInfoByShapeImageInfo(o.svgImage);o.imageLoader.load(i)}if(e.svgToolboxUrl){o.svgToolboxImage=new d.ImageInfo(e.svgToolboxUrl);i=f.ImageCache.instance.createUnloadedInfoByShapeImageInfo(o.svgToolboxImage);o.imageLoader.load(i)}return o}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return this.properties.type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allowEditText\",{get:function(){return!1!==this.properties.allowEditText},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allowEditImage\",{get:function(){return this.baseDescription?this.baseDescription.allowEditImage:!0===this.properties.allowEditImage},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableChildren\",{get:function(){return this.baseDescription&&this.baseDescription.enableChildren},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasTemplate\",{get:function(){return!!this.properties.createTemplate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minWidth\",{get:function(){return this.properties.minWidth||this.baseDescription&&this.baseDescription.minWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minHeight\",{get:function(){return this.properties.minHeight||this.baseDescription&&this.baseDescription.minHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maxWidth\",{get:function(){return this.properties.maxWidth||this.baseDescription&&this.baseDescription.maxWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maxHeight\",{get:function(){return this.properties.maxHeight||this.baseDescription&&this.baseDescription.maxHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return this.properties.keepRatioOnAutoSize},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"toolboxSize\",{get:function(){return this.properties.toolboxWidthToHeightRatio?new a.Size(this.defaultSize.width,this.defaultSize.width/this.properties.toolboxWidthToHeightRatio):this.defaultSize},enumerable:!1,configurable:!0}),e.prototype.getTextAngle=function(){return this.baseDescription&&this.baseDescription.getTextAngle()||t.prototype.getTextAngle.call(this)},e.prototype.getTitle=function(){return void 0!==this.title?this.title:t.prototype.getTitle.call(this)},e.prototype.getDefaultText=function(){return void 0!==this.defaultText?this.defaultText:t.prototype.getDefaultText.call(this)},e.prototype.getDefaultImageUrl=function(){return void 0!==this.defaultImageUrl?this.defaultImageUrl:t.prototype.getDefaultImageUrl.call(this)},e.prototype.allowResizeHorizontally=function(e){return!1!==this.properties.allowResize&&(this.baseDescription?this.baseDescription.allowResizeHorizontally(e):t.prototype.allowResizeHorizontally.call(this,e))},e.prototype.allowResizeVertically=function(e){return!1!==this.properties.allowResize&&(this.baseDescription?this.baseDescription.allowResizeVertically(e):t.prototype.allowResizeVertically.call(this,e))},e.prototype.createConnectionPoints=function(){return this.properties&&this.properties.connectionPoints&&this.properties.connectionPoints.length?this.properties.connectionPoints.map((function(t){if(t&&\"number\"==typeof t.x&&\"number\"==typeof t.y){var e=\"number\"==typeof t.side?t.side:h.ConnectionPointSide.Undefined;return new u.ConnectionPoint(t.x,t.y,e)}})).filter((function(t){return t})):t.prototype.createConnectionPoints.call(this)},e.prototype.getConnectionPointSides=function(){for(var t={},e=0;e<this.connectionPoints.length;e++){var n=l.ShapeDescription.getConnectionPointSideByGeometry(this.connectionPoints[e]);t[n]||(t[n]=[]),t[n].push(e)}return t},e.prototype.getConnectionPointIndexForSide=function(t){var e=this.getConnectionPointSides(),n=e[t];if(n){var o=Math.floor(n.length/2);return n.length%2==0&&o--,n[o]}return(n=e[(t+1)%4])?n[0]:(n=e[(t+3)%4])?n[n.length-1]:(n=e[(t+2)%4])?n[0]:t},e.prototype.createImagePrimitives=function(e,n){return this.baseDescription?this.baseDescription.createImagePrimitives(e,n):t.prototype.createImagePrimitives.call(this,e,n)},e.prototype.createShapePrimitives=function(t,e){var n=[],o=t.rectangle,i=o.x,s=o.y,a=o.width,c=o.height;if(this.baseDescription)n=this.baseDescription.createShapePrimitives(t,e);else{var u=e&&this.svgToolboxImage?this.svgToolboxImage:this.svgImage;if(u){var h=i+(this.properties.svgLeft&&!e?this.properties.svgLeft*a:0),p=s+(this.properties.svgTop&&!e?this.properties.svgTop*c:0),l=this.properties.svgWidth&&!e?this.properties.svgWidth*a:a,d=this.properties.svgHeight&&!e?this.properties.svgHeight*c:c;n=n.concat([new r.ImagePrimitive(h,p,l,d,u.exportUrl)])}}var f=e&&this.properties.createToolboxTemplate||this.properties.createTemplate;if(f){var y=i+(this.properties.templateLeft&&!e?this.properties.templateLeft*a:0),m=s+(this.properties.templateTop&&!e?this.properties.templateTop*c:0),v=this.properties.templateWidth&&!e?this.properties.templateWidth*a:a,P=this.properties.templateHeight&&!e?this.properties.templateHeight*c:c,C=this.properties.apiController?this.properties.apiController.createNativeShape(t):t.toNative();n=n.concat([new g.SvgElementPrimitive(y,m,v,P,f,this.properties.destroyTemplate,C)])}return n},e.prototype.createParameters=function(e){return this.baseDescription?this.baseDescription.createParameters(e):t.prototype.createParameters.call(this,e)},e.prototype.normalizeParameters=function(e,n){this.baseDescription?this.baseDescription.normalizeParameters(e,n):t.prototype.normalizeParameters.call(this,e,n)},e.prototype.modifyParameters=function(e,n,o,i){this.baseDescription?this.baseDescription.modifyParameters(e,n,o,i):t.prototype.modifyParameters.call(this,e,n,o,i)},e.prototype.getParameterPoints=function(e){return this.baseDescription?this.baseDescription.getParameterPoints(e):t.prototype.getParameterPoints.call(this,e)},e.prototype.getTextRectangle=function(t){if(this.baseDescription)return this.baseDescription.getTextRectangle(t);var e=t.rectangle,n=e.x,o=e.y,i=e.width,r=e.height;return new s.Rectangle(n+(this.properties.textLeft?this.properties.textLeft*i:0),o+(this.properties.textTop?this.properties.textTop*r:0),this.properties.textWidth?this.properties.textWidth*i:i,this.properties.textHeight?this.properties.textHeight*r:r)},e.prototype.getSizeByText=function(t,e){if(this.baseDescription)return this.baseDescription.getSizeByText(t,e);var n=this.properties.textWidth;n||(n=1);var o=this.properties.textHeight;return o||(o=1),new a.Size(t.width/n,t.height/o)},e.prototype.getImageSize=function(t,e,n){return this.baseDescription?this.baseDescription instanceof p.ShapeWithImageDescription?this.baseDescription.getImageSize(t,e,n):a.Size.empty():new a.Size(this.properties.imageWidth?this.properties.imageWidth*t.width:t.width,this.properties.imageHeight?this.properties.imageHeight*t.height:t.height).nonNegativeSize()},e.prototype.getImagePlacementRectangle=function(t,e){if(this.baseDescription)return this.baseDescription instanceof p.ShapeWithImageDescription?this.baseDescription.getImagePlacementRectangle(t,e):s.Rectangle.fromGeometry(c.Point.zero(),a.Size.empty());var n=t.x,o=t.y,i=t.width,r=t.height;return new s.Rectangle(n+(this.properties.imageLeft&&!e?this.properties.imageLeft*i:0),o+(this.properties.imageTop&&!e?this.properties.imageTop*r:0),this.properties.imageWidth&&!e?this.properties.imageWidth*i:i,this.properties.imageHeight&&!e?this.properties.imageHeight*r:r)},e.prototype.updateSvgImage=function(t){var e=t.imageUrl&&t.imageUrl===this.properties.svgToolboxUrl,n=e?this.svgToolboxImage:this.svgImage;t.base64?n.loadBase64Content(t.base64):n.setUnableToLoadFlag(),e||this.raiseShapeDescriptionChanged(this)},e}(p.ShapeWithImageDescription);e.CustomShapeDescription=m},7552:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorShapeDescription=void 0;var r=n(2259),s=n(6353),a=n(6794),c=function(t){function e(){var e=t.call(this,!1)||this;return e.defaultSize=new s.Size(.5*a.ShapeDefaultDimension,.5*a.ShapeDefaultDimension),e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.Connector},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),e}(n(7768).EllipseShapeDescription);e.ConnectorShapeDescription=c},4941:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DataShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(3742),u=n(6794),h=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Data},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,c=n.width,u=n.height,h=Math.min(Math.max(0,u/Math.tan(e.slopeAngle)),c),p=o+h,l=r-h;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(p,i),new a.PathPrimitiveLineToCommand(r,i),new a.PathPrimitiveLineToCommand(l,s),new a.PathPrimitiveLineToCommand(o,s),new a.PathPrimitiveClosePathCommand],t.style)]},e.prototype.processConnectionPoint=function(t,n){var o=t.size.height/Math.tan(e.slopeAngle),i=t.getConnectionPointSide(n);i===c.ConnectionPointSide.East?n.x-=o/2:i===c.ConnectionPointSide.West&&(n.x+=o/2)},e.prototype.getTextRectangle=function(t){var n=Math.min(Math.max(0,t.size.height/Math.tan(e.slopeAngle)),t.size.width);return t.rectangle.clone().moveRectangle(n,u.ShapeTextPadding).resize(2*-n,2*-u.ShapeTextPadding)},e.slopeAngle=81*Math.PI/180,e}(r.RectangleShapeDescription);e.DataShapeDescription=h},1034:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DatabaseShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(418),u=function(t){function e(){var e=t.call(this,void 0,!0)||this;return e.defaultSize.width=e.defaultSize.height,e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Database},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,u=n.height,h=n.center.x,p=u*e.arcWidthRatio;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(r,i+p/2),new a.PathPrimitiveLineToCommand(r,s-p/2),new a.PathPrimitiveArcToCommand((r-o)/2,p/2,0,!1,!0,o,s-p/2),new a.PathPrimitiveLineToCommand(o,i+p/2)],t.style),new c.EllipsePrimitive(h,i+p/2,(r-o)/2,p/2,t.style)]},e.prototype.getTextRectangle=function(t){var n=t.rectangle,o=n.height*e.arcWidthRatio;return n.clone().resize(0,-o).clone().moveRectangle(0,o)},e.arcWidthRatio=.2,e}(r.RectangleShapeDescription);e.DatabaseShapeDescription=u},6825:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DecisionShapeDescription=void 0;var r=n(5303),s=n(2259),a=n(6353),c=n(6794),u=function(t){function e(){return t.call(this,new a.Size(c.ShapeDefaultDimension,.75*c.ShapeDefaultDimension),!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Decision},enumerable:!1,configurable:!0}),e}(r.DiamondShapeDescription);e.DecisionShapeDescription=u},9229:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DelayShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(8675),u=n(6794),h=n(6353),p=function(t){function e(){var e=t.call(this,void 0,!0)||this;return e.defaultSize.width=e.defaultSize.height,e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Delay},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,r=e.bottom,s=e.center.x;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(n,o),new a.PathPrimitiveLineToCommand(s,o),new a.PathPrimitiveArcToCommand((i-n)/2,(r-o)/2,0,!1,!0,s,r),new a.PathPrimitiveLineToCommand(n,r),new a.PathPrimitiveClosePathCommand],t.style)]},e.prototype.getTextRectangle=function(t){var e=c.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return t.rectangle.clone().moveRectangle(u.ShapeTextPadding,u.ShapeTextPadding).setSize({width:e.width/2+t.size.width/2-u.ShapeTextPadding,height:e.height/2+t.size.height/2-u.ShapeTextPadding}).nonNegativeSize()},e.prototype.getSizeByText=function(t,e){var n=c.GeometryUtils.getEllipseByEnscribedRectangle(t);return new h.Size(n.width/2+t.width/2+u.ShapeTextPadding,n.height/2+t.height/2+u.ShapeTextPadding)},e.arcWidthRatio=.2,e}(r.RectangleShapeDescription);e.DelayShapeDescription=p},2650:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DisplayShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(6794),u=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Display},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,c=n.width,u=n.center.y,h=c*e.arcWidthRatio;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(r-h/2,i),new a.PathPrimitiveLineToCommand(o+h/2,i),new a.PathPrimitiveLineToCommand(o,u),new a.PathPrimitiveLineToCommand(o+h/2,s),new a.PathPrimitiveLineToCommand(r-h/2,s),new a.PathPrimitiveArcToCommand(h/2,(s-i)/2,0,!1,!1,r-h/2,i)],t.style)]},e.prototype.getTextRectangle=function(t){var n=t.size.width*e.arcWidthRatio;return t.rectangle.clone().moveRectangle(n/2,c.ShapeTextPadding).resize(-n,2*-c.ShapeTextPadding).nonNegativeSize()},e.arcWidthRatio=.2,e}(r.RectangleShapeDescription);e.DisplayShapeDescription=u},3525:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DocumentShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(3742),u=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Document},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){return this.createDocumentPrimitives(t.rectangle,t.style)},e.prototype.createDocumentPrimitives=function(t,n){var o=t.x,i=t.y,r=t.right,s=t.bottom,c=t.width,u=t.height,h=t.center.x,p=u*e.curveOffsetRatio;return[].concat([new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(o,i),new a.PathPrimitiveLineToCommand(r,i),new a.PathPrimitiveLineToCommand(r,s),new a.PathPrimitiveQuadraticCurveToCommand(r-.25*c,s-2*p,h,s-p),new a.PathPrimitiveQuadraticCurveToCommand(o+.25*c,s+p,o,s-p),new a.PathPrimitiveClosePathCommand],n)])},e.prototype.processConnectionPoint=function(t,n){t.getConnectionPointSide(n)===c.ConnectionPointSide.South&&(n.y-=t.size.height*e.curveOffsetRatio)},e.prototype.getTextRectangle=function(t){var n=t.rectangle;return n.clone().resize(0,-n.height*e.curveOffsetRatio)},e.curveOffsetRatio=.1,e}(r.RectangleShapeDescription);e.DocumentShapeDescription=u},1314:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.HardDiskShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(418),u=n(6794),h=n(6353),p=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.HardDisk},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,u=n.width,h=n.center.y,p=u*e.arcWidthRatio;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(r-p/2,i),new a.PathPrimitiveLineToCommand(o+p/2,i),new a.PathPrimitiveArcToCommand(p/2,(s-i)/2,0,!1,!1,o+p/2,s),new a.PathPrimitiveLineToCommand(r-p/2,s)],t.style),new c.EllipsePrimitive(r-p/2,h,p/2,(s-i)/2,t.style)]},e.prototype.getTextRectangle=function(t){var n=t.rectangle,o=n.width*e.arcWidthRatio*1.5;return n.clone().resize(-o-2*u.ShapeTextPadding,-2*u.ShapeTextPadding).moveRectangle(u.ShapeTextPadding,u.ShapeTextPadding).nonNegativeSize()},e.prototype.getSizeByText=function(t,n){return new h.Size((t.width+2*u.ShapeTextPadding)/(1-1.5*e.arcWidthRatio),n.size.height+u.ShapeTextPadding)},e.arcWidthRatio=.2,e}(r.RectangleShapeDescription);e.HardDiskShapeDescription=p},2751:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.InternalStorageShapeDescription=e.InternalStorageVerticalEdgeParameterName=e.InternalStorageHorizontalEdgeParameterName=void 0;var r=n(1561),s=n(2259),a=n(6629),c=n(1852),u=n(8900),h=n(7724);e.InternalStorageHorizontalEdgeParameterName=\"he\",e.InternalStorageVerticalEdgeParameterName=\"ve\";var p=function(t){function n(){return t.call(this,void 0,!0)||this}return i(n,t),Object.defineProperty(n.prototype,\"key\",{get:function(){return s.ShapeTypes.InternalStorage},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),n.prototype.createShapePrimitives=function(n){var o=n.rectangle,i=o.x,r=o.y,s=o.right,a=o.bottom,c=i+n.parameters.get(e.InternalStorageHorizontalEdgeParameterName).value,u=r+n.parameters.get(e.InternalStorageVerticalEdgeParameterName).value;return t.prototype.createShapePrimitives.call(this,n).concat([new h.PathPrimitive([new h.PathPrimitiveMoveToCommand(c,r),new h.PathPrimitiveLineToCommand(c,a),new h.PathPrimitiveMoveToCommand(i,u),new h.PathPrimitiveLineToCommand(s,u)],n.style)])},n.prototype.createParameters=function(t){t.addRangeIfNotExists([new a.ShapeParameter(e.InternalStorageHorizontalEdgeParameterName,.1*this.defaultSize.width),new a.ShapeParameter(e.InternalStorageVerticalEdgeParameterName,.1*this.defaultSize.width)])},n.prototype.normalizeParameters=function(t,o){this.changeParameterValue(o,e.InternalStorageHorizontalEdgeParameterName,(function(e){return Math.max(n.minEdge,Math.min(.3*t.size.width,e.value))})),this.changeParameterValue(o,e.InternalStorageVerticalEdgeParameterName,(function(e){return Math.max(n.minEdge,Math.min(.3*t.size.height,e.value))}))},n.prototype.modifyParameters=function(t,n,o,i){this.changeParameterValue(n,e.InternalStorageHorizontalEdgeParameterName,(function(t){return t.value+o})),this.changeParameterValue(n,e.InternalStorageVerticalEdgeParameterName,(function(t){return t.value+i})),this.normalizeParameters(t,n)},n.prototype.getParameterPoints=function(t){return[new c.ShapeParameterPoint(\"c\",new u.Point(t.normalizeX(t.position.x+t.parameters.get(e.InternalStorageHorizontalEdgeParameterName).value),t.normalizeY(t.position.y+t.parameters.get(e.InternalStorageVerticalEdgeParameterName).value)))]},n.prototype.getTextRectangle=function(t){var n=t.rectangle,o=t.parameters.get(e.InternalStorageHorizontalEdgeParameterName).value;return n.clone().resize(-o,0).clone().moveRectangle(o,0)},n.minEdge=72,n}(r.RectangleShapeDescription);e.InternalStorageShapeDescription=p},9144:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ManualInputShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(3742),u=n(6794),h=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.ManualInput},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,c=i+n.height*e.slopeHeightRatio;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(o,c),new a.PathPrimitiveLineToCommand(r,i),new a.PathPrimitiveLineToCommand(r,s),new a.PathPrimitiveLineToCommand(o,s),new a.PathPrimitiveClosePathCommand],t.style)]},e.prototype.processConnectionPoint=function(t,n){t.getConnectionPointSide(n)===c.ConnectionPointSide.North&&(n.y+=e.slopeHeightRatio/2*t.size.height)},e.prototype.getTextRectangle=function(t){var n=t.size.height*e.slopeHeightRatio;return t.rectangle.clone().moveRectangle(u.ShapeTextPadding,n).resize(2*-u.ShapeTextPadding,-n-u.ShapeTextPadding).nonNegativeSize()},e.slopeHeightRatio=.1,e}(r.RectangleShapeDescription);e.ManualInputShapeDescription=h},1643:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ManualOperationShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(3742),u=n(6794),h=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.ManualOperation},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=t.rectangle,i=o.x,r=o.y,s=o.right,c=o.bottom,u=o.width,h=o.height,p=Math.min(Math.max(0,h/Math.tan(e.slopeAngle)),u),l=n.center.x,d=Math.min(i+p,l),f=Math.max(s-p,l);return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(i,r),new a.PathPrimitiveLineToCommand(s,r),new a.PathPrimitiveLineToCommand(f,c),new a.PathPrimitiveLineToCommand(d,c),new a.PathPrimitiveClosePathCommand],t.style)]},e.prototype.processConnectionPoint=function(t,n){var o=t.size.height/Math.tan(e.slopeAngle),i=t.getConnectionPointSide(n);i===c.ConnectionPointSide.East?n.x-=o/2:i===c.ConnectionPointSide.West&&(n.x+=o/2)},e.prototype.getTextRectangle=function(t){var n=Math.min(Math.max(0,t.size.height/Math.tan(e.slopeAngle)),t.size.width);return t.rectangle.clone().moveRectangle(n,u.ShapeTextPadding).resize(2*-n,2*-u.ShapeTextPadding).nonNegativeSize()},e.slopeAngle=81*Math.PI/180,e}(r.RectangleShapeDescription);e.ManualOperationShapeDescription=h},3046:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MergeShapeDescription=void 0;var r=n(2259),s=n(8011),a=n(2117),c=n(7724),u=n(6794),h=n(6353),p=function(t){function e(){return t.call(this,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.Merge},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,r=e.bottom;return[new c.PathPrimitive([new c.PathPrimitiveMoveToCommand(n,o),new c.PathPrimitiveLineToCommand(i,o),new c.PathPrimitiveLineToCommand(e.center.x,r),new c.PathPrimitiveClosePathCommand],t.style)]},e.prototype.calculateHeight=function(t){return.75*t},e.prototype.getTextRectangle=function(t){return s.Rectangle.fromGeometry(t.position.clone().offset(t.size.width/4,u.ShapeTextPadding),new h.Size(t.size.width/2,t.size.height/2-u.ShapeTextPadding))},e.prototype.getSizeByText=function(t,e){return new h.Size(2*t.width,2*(t.height+u.ShapeTextPadding))},e}(a.TriangleShapeDescription);e.MergeShapeDescription=p},2850:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MultipleDocumentsShapeDescription=void 0;var r=n(2259),s=n(7724),a=n(3525),c=n(4593),u=n(3500),h=n(6794),p=n(6353),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.MultipleDocuments},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t,n){var o=t.rectangle,i=t.rectangle,r=i.width,s=i.height,a=n?e.documentsOffsetRatioForToolbox:e.documentsOffsetRatio,c=Math.ceil(r*a),h=Math.ceil(s*a),p=(o=o.clone().inflate(-c,-h).clone().moveRectangle(-c,-h)).clone().moveRectangle(c,h),l=p.clone().moveRectangle(c,h),d=u.RenderUtils.generateSvgElementId(\"clipRect\");return[].concat(this.createDocumentPrimitives(o,t.style,d+\"1\",p)).concat(this.createDocumentPrimitives(p,t.style,d+\"2\",l)).concat(this.createDocumentPrimitives(l,t.style))},e.prototype.createDocumentPrimitives=function(t,e,n,o){var i=t.x,r=t.y,u=t.right,h=t.bottom,p=t.width,l=t.height,d=t.center.x,f=l*a.DocumentShapeDescription.curveOffsetRatio,y=[];return y=y.concat([new s.PathPrimitive([new s.PathPrimitiveMoveToCommand(i,r),new s.PathPrimitiveLineToCommand(u,r),new s.PathPrimitiveLineToCommand(u,h),new s.PathPrimitiveQuadraticCurveToCommand(u-.25*p,h-2*f,d,h-f),new s.PathPrimitiveQuadraticCurveToCommand(i+.25*p,h+f,i,h-f),new s.PathPrimitiveClosePathCommand],e,void 0,o&&n)]),o&&n&&(y=y.concat([new c.ClipPathPrimitive(n,[new s.PathPrimitive([new s.PathPrimitiveMoveToCommand(i-e.strokeWidth,r-e.strokeWidth),new s.PathPrimitiveLineToCommand(u+e.strokeWidth,r-e.strokeWidth),new s.PathPrimitiveLineToCommand(u+e.strokeWidth,o.y),new s.PathPrimitiveLineToCommand(o.x,o.y),new s.PathPrimitiveLineToCommand(o.x,h+e.strokeWidth),new s.PathPrimitiveLineToCommand(i-e.strokeWidth,h+e.strokeWidth),new s.PathPrimitiveClosePathCommand])])])),y},e.prototype.getTextRectangle=function(t){var n=t.rectangle,o=n.width*e.documentsOffsetRatio,i=n.height*e.documentsOffsetRatio;return(n=n.clone().inflate(-o,-i).clone().moveRectangle(-o,-i)).clone().moveRectangle(2*o+h.ShapeTextPadding,2*i+h.ShapeTextPadding).clone().resize(-2*h.ShapeTextPadding,-n.height*a.DocumentShapeDescription.curveOffsetRatio-2*h.ShapeTextPadding)},e.prototype.getSizeByText=function(t,n){return new p.Size((t.width+2*h.ShapeTextPadding)/(1-2*e.documentsOffsetRatio),(t.height+2*h.ShapeTextPadding)/((1-a.DocumentShapeDescription.curveOffsetRatio)*(1-e.documentsOffsetRatio))).nonNegativeSize()},e.documentsOffsetRatio=.1,e.documentsOffsetRatioForToolbox=.16,e}(a.DocumentShapeDescription);e.MultipleDocumentsShapeDescription=l},2019:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.OrShapeDescription=void 0;var r=n(2259),s=n(6353),a=n(6794),c=n(7768),u=n(7724),h=function(t){function e(){var e=t.call(this,!0)||this;return e.defaultSize=new s.Size(.5*a.ShapeDefaultDimension,.5*a.ShapeDefaultDimension),e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.Or},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableText\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(e){var n=e.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,a=n.center,c=a.x,h=a.y;return[].concat(t.prototype.createShapePrimitives.call(this,e)).concat([new u.PathPrimitive([new u.PathPrimitiveMoveToCommand(c,i),new u.PathPrimitiveLineToCommand(c,s),new u.PathPrimitiveMoveToCommand(o,h),new u.PathPrimitiveLineToCommand(r,h)],e.style)])},e}(c.EllipseShapeDescription);e.OrShapeDescription=h},8110:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PaperTapeShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(3742),u=n(6794),h=n(6353),p=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.PaperTape},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){return this.createDocumentPrimitives(t.rectangle,t.style)},e.prototype.createDocumentPrimitives=function(t,n){var o=t.x,i=t.y,r=t.right,s=t.bottom,c=t.width,u=t.height,h=t.center.x,p=u*e.curveOffsetRatio;return[].concat([new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(o,i),new a.PathPrimitiveQuadraticCurveToCommand(o+.25*c,i+2*p,h,i+p),new a.PathPrimitiveQuadraticCurveToCommand(r-.25*c,i-p,r,i+p),new a.PathPrimitiveLineToCommand(r,s),new a.PathPrimitiveQuadraticCurveToCommand(r-.25*c,s-2*p,h,s-p),new a.PathPrimitiveQuadraticCurveToCommand(o+.25*c,s+p,o,s-p),new a.PathPrimitiveClosePathCommand],n)])},e.prototype.processConnectionPoint=function(t,n){var o=t.getConnectionPointSide(n);o===c.ConnectionPointSide.North&&(n.y+=t.size.height*e.curveOffsetRatio),o===c.ConnectionPointSide.South&&(n.y-=t.size.height*e.curveOffsetRatio)},e.prototype.getTextRectangle=function(t){var n=t.rectangle;return n.clone().inflate(u.ShapeTextPadding,-n.height*e.curveOffsetRatio)},e.prototype.getSizeByText=function(t,n){return new h.Size(t.width+2*u.ShapeTextPadding,t.height/(1-2*e.curveOffsetRatio))},e.curveOffsetRatio=.1,e}(r.RectangleShapeDescription);e.PaperTapeShapeDescription=p},6508:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PredefinedProcessShapeDescription=e.PredefinedProcessEdgeParameterName=void 0;var r=n(1561),s=n(2259),a=n(6629),c=n(1852),u=n(8900),h=n(7724);e.PredefinedProcessEdgeParameterName=\"e\";var p=function(t){function n(){return t.call(this,void 0,!0)||this}return i(n,t),Object.defineProperty(n.prototype,\"key\",{get:function(){return s.ShapeTypes.PredefinedProcess},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),n.prototype.createShapePrimitives=function(n){var o=n.rectangle,i=o.x,r=o.y,s=o.right,a=o.bottom,c=i+n.parameters.get(e.PredefinedProcessEdgeParameterName).value,u=s-n.parameters.get(e.PredefinedProcessEdgeParameterName).value;return t.prototype.createShapePrimitives.call(this,n).concat([new h.PathPrimitive([new h.PathPrimitiveMoveToCommand(c,r),new h.PathPrimitiveLineToCommand(c,a),new h.PathPrimitiveMoveToCommand(u,r),new h.PathPrimitiveLineToCommand(u,a)],n.style)])},n.prototype.createParameters=function(t){t.addIfNotExists(new a.ShapeParameter(e.PredefinedProcessEdgeParameterName,.1*this.defaultSize.width))},n.prototype.normalizeParameters=function(t,o){this.changeParameterValue(o,e.PredefinedProcessEdgeParameterName,(function(e){return Math.max(n.minEdge,Math.min(.3*t.size.width,e.value))}))},n.prototype.modifyParameters=function(t,n,o,i){this.changeParameterValue(n,e.PredefinedProcessEdgeParameterName,(function(t){return t.value+o})),this.normalizeParameters(t,n)},n.prototype.getParameterPoints=function(t){return[new c.ShapeParameterPoint(\"c\",new u.Point(t.normalizeX(t.position.x+t.parameters.get(e.PredefinedProcessEdgeParameterName).value),t.position.y))]},n.prototype.getTextRectangle=function(t){var n=t.rectangle,o=t.parameters.get(e.PredefinedProcessEdgeParameterName).value;return n.clone().resize(-2*o,0).clone().moveRectangle(o,0)},n.minEdge=72,n}(r.RectangleShapeDescription);e.PredefinedProcessShapeDescription=p},4112:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PreparationShapeDescription=void 0;var r=n(2259),s=n(6353),a=n(6794),c=function(t){function e(){var e=t.call(this,!0)||this;return e.defaultSize=new s.Size(a.ShapeDefaultDimension,.75*a.ShapeDefaultDimension),e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.Preparation},enumerable:!1,configurable:!0}),e}(n(2953).HexagonShapeDescription);e.PreparationShapeDescription=c},5331:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ProcessShapeDescription=void 0;var r=n(1561),s=n(2259),a=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Process},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e}(r.RectangleShapeDescription);e.ProcessShapeDescription=a},4810:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.StoredDataShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(6794),u=n(6353),h=function(t){function e(){return t.call(this,void 0,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.StoredData},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,c=n.width*e.arcWidthRatio;return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(r,i),new a.PathPrimitiveLineToCommand(o+c/2,i),new a.PathPrimitiveArcToCommand(c/2,(s-i)/2,0,!1,!1,o+c/2,s),new a.PathPrimitiveLineToCommand(r,s),new a.PathPrimitiveArcToCommand(c/2,(s-i)/2,0,!1,!0,r,i)],t.style)]},e.prototype.getTextRectangle=function(t){var n=t.rectangle,o=n.width*e.arcWidthRatio/2;return n.clone().resize(-o-2*c.ShapeTextPadding,-2*c.ShapeTextPadding).moveRectangle(c.ShapeTextPadding,c.ShapeTextPadding).nonNegativeSize()},e.prototype.getSizeByText=function(t,n){return new u.Size((t.width+2*c.ShapeTextPadding)/(1-e.arcWidthRatio/2),t.height+2*c.ShapeTextPadding)},e.arcWidthRatio=.2,e}(r.RectangleShapeDescription);e.StoredDataShapeDescription=h},6182:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SummingJunctionShapeDescription=void 0;var r=n(2259),s=n(6353),a=n(6794),c=n(7768),u=n(7724),h=function(t){function e(){var e=t.call(this,!0)||this;return e.defaultSize=new s.Size(.5*a.ShapeDefaultDimension,.5*a.ShapeDefaultDimension),e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return r.ShapeTypes.SummingJunction},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableText\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(e){var n=e.rectangle,o=n.width,i=n.height,r=n.center,s=r.x,a=r.y,c=o/2,h=i/2,p=Math.atan(h/c),l=1/Math.sqrt(1/Math.pow(c,2)+Math.pow(Math.tan(p),2)/Math.pow(h,2)),d=l*Math.tan(p);return[].concat(t.prototype.createShapePrimitives.call(this,e)).concat([new u.PathPrimitive([new u.PathPrimitiveMoveToCommand(s-l,a-d),new u.PathPrimitiveLineToCommand(s+l,a+d),new u.PathPrimitiveMoveToCommand(s-l,a+d),new u.PathPrimitiveLineToCommand(s+l,a-d)],e.style)])},e}(c.EllipseShapeDescription);e.SummingJunctionShapeDescription=h},6242:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TerminatorShapeDescription=void 0;var r=n(1561),s=n(2259),a=n(7724),c=n(6353),u=n(6794),h=n(8011),p=n(8675),l=function(t){function e(){return t.call(this,new c.Size(u.ShapeDefaultDimension,.5*u.ShapeDefaultDimension),!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Terminator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,c=n.width,u=n.center.y,h=o+c*e.curveWidthRatio,p=o+c*(1-e.curveWidthRatio);return[new a.PathPrimitive([new a.PathPrimitiveMoveToCommand(h,i),new a.PathPrimitiveLineToCommand(p,i),new a.PathPrimitiveQuadraticCurveToCommand(r,i,r,u),new a.PathPrimitiveQuadraticCurveToCommand(r,s,p,s),new a.PathPrimitiveLineToCommand(h,s),new a.PathPrimitiveQuadraticCurveToCommand(o,s,o,u),new a.PathPrimitiveQuadraticCurveToCommand(o,i,h,i),new a.PathPrimitiveClosePathCommand],t.style)]},e.prototype.getTextRectangle=function(t){var e=p.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return h.Rectangle.fromGeometry(t.position.clone().offset((t.size.width-e.width)/2,(t.size.height-e.height)/2),e)},e.prototype.getSizeByText=function(t,e){return p.GeometryUtils.getEllipseByEnscribedRectangle(t)},e.curveWidthRatio=.3,e}(r.RectangleShapeDescription);e.TerminatorShapeDescription=l},4958:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowDownShapeDescription=void 0;var r=n(7724),s=n(1852),a=n(8900),c=n(731),u=n(2259),h=n(3742),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowDown},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,u=e.height,h=e.center.x,p=(a-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2,l=u-t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value,d=t.normalizeX(n+p),f=t.normalizeY(o+l),y=t.normalizeX(i-p);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(d,o),new r.PathPrimitiveLineToCommand(y,o),new r.PathPrimitiveLineToCommand(y,f),new r.PathPrimitiveLineToCommand(i,f),new r.PathPrimitiveLineToCommand(h,s),new r.PathPrimitiveLineToCommand(n,f),new r.PathPrimitiveLineToCommand(d,f),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,c.ArrowVerticalTriangleHeightParameterName,(function(t){return t.value-o})),this.changeParameterValue(e,c.ArrowVerticalLineWidthParameterName,(function(t){return t.value-2*n})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new s.ShapeParameterPoint(\"c\",new a.Point(t.normalizeX(t.position.x+(t.size.width-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2),t.normalizeY(t.position.y+t.size.height-t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value)))]},e.prototype.processConnectionPoint=function(e,n){var o=e.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value;if(n.y>e.position.y+e.size.height-o){var i=e.size.width/2/o,r=(n.y-(e.position.y+e.size.height-o))*i,s=e.getConnectionPointSide(n);s===h.ConnectionPointSide.East?n.x-=r:s===h.ConnectionPointSide.West&&(n.x+=r)}else t.prototype.processConnectionPoint.call(this,e,n)},e}(c.ArrowVerticalShapeDescription);e.ArrowDownShapeDescription=p},4493:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowHorizontalShapeDescription=e.ArrowVerticalLineHeightParameterName=e.ArrowVerticalTriangleWidthParameterName=void 0;var r=n(6794),s=n(6353),a=n(6629),c=n(3742);e.ArrowVerticalTriangleWidthParameterName=\"tw\",e.ArrowVerticalLineHeightParameterName=\"lh\";var u=function(t){function n(){return t.call(this,new s.Size(r.ShapeDefaultDimension,.375*r.ShapeDefaultDimension))||this}return i(n,t),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),n.prototype.createParameters=function(t){t.addRangeIfNotExists([new a.ShapeParameter(e.ArrowVerticalTriangleWidthParameterName,Math.sqrt(Math.pow(this.defaultSize.height,2)-Math.pow(this.defaultSize.height/2,2))),new a.ShapeParameter(e.ArrowVerticalLineHeightParameterName,this.defaultSize.height/3)])},n.prototype.normalizeParameters=function(t,n){this.changeParameterValue(n,e.ArrowVerticalTriangleWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.width,e.value))})),this.changeParameterValue(n,e.ArrowVerticalLineHeightParameterName,(function(e){return Math.max(0,Math.min(t.size.height,e.value))}))},n.prototype.processConnectionPoint=function(t,n){var o=(t.size.height-t.parameters.get(e.ArrowVerticalLineHeightParameterName).value)/2,i=t.getConnectionPointSide(n);i===c.ConnectionPointSide.North?n.y+=o:i===c.ConnectionPointSide.South&&(n.y-=o)},n.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding)},n.prototype.getSizeByText=function(t,e){return t.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding)},n}(r.ShapeDescription);e.ArrowHorizontalShapeDescription=u},8800:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowLeftRightShapeDescription=void 0;var r=n(7724),s=n(4493),a=n(1852),c=n(8900),u=n(2259),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowLeftRight},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,a=e.bottom,c=e.height,u=e.center.y,h=t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value,p=(c-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2,l=t.normalizeX(n+h),d=t.normalizeY(o+p),f=t.normalizeX(i-h),y=t.normalizeY(a-p);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(n,u),new r.PathPrimitiveLineToCommand(l,o),new r.PathPrimitiveLineToCommand(l,d),new r.PathPrimitiveLineToCommand(f,d),new r.PathPrimitiveLineToCommand(f,o),new r.PathPrimitiveLineToCommand(i,u),new r.PathPrimitiveLineToCommand(f,a),new r.PathPrimitiveLineToCommand(f,y),new r.PathPrimitiveLineToCommand(l,y),new r.PathPrimitiveLineToCommand(l,a),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.normalizeParameters=function(t,e){this.changeParameterValue(e,s.ArrowVerticalTriangleWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.width/2-2*t.strokeWidth,e.value))})),this.changeParameterValue(e,s.ArrowVerticalLineHeightParameterName,(function(e){return Math.max(0,Math.min(t.size.height,e.value))}))},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,s.ArrowVerticalTriangleWidthParameterName,(function(t){return t.value+n})),this.changeParameterValue(e,s.ArrowVerticalLineHeightParameterName,(function(t){return t.value-2*o})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new a.ShapeParameterPoint(\"c\",new c.Point(t.normalizeX(t.position.x+t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value),t.normalizeY(t.position.y+(t.size.height-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2)))]},e}(s.ArrowHorizontalShapeDescription);e.ArrowLeftRightShapeDescription=h},6023:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowLeftShapeDescription=void 0;var r=n(7724),s=n(4493),a=n(1852),c=n(8900),u=n(2259),h=n(3742),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowLeft},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,a=e.bottom,c=e.height,u=e.center.y,h=t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value,p=(c-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2,l=t.normalizeX(n+h),d=t.normalizeY(o+p),f=t.normalizeY(a-p);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(n,u),new r.PathPrimitiveLineToCommand(l,o),new r.PathPrimitiveLineToCommand(l,d),new r.PathPrimitiveLineToCommand(i,d),new r.PathPrimitiveLineToCommand(i,f),new r.PathPrimitiveLineToCommand(l,f),new r.PathPrimitiveLineToCommand(l,a),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,s.ArrowVerticalTriangleWidthParameterName,(function(t){return t.value+n})),this.changeParameterValue(e,s.ArrowVerticalLineHeightParameterName,(function(t){return t.value-2*o})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new a.ShapeParameterPoint(\"c\",new c.Point(t.normalizeX(t.position.x+t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value),t.normalizeY(t.position.y+(t.size.height-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2)))]},e.prototype.processConnectionPoint=function(e,n){var o=e.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value;if(n.x<e.position.x+o){var i=e.size.height/2/o,r=(e.position.x+o-n.x)*i,a=e.getConnectionPointSide(n);a===h.ConnectionPointSide.North?n.y+=r:a===h.ConnectionPointSide.South&&(n.y-=r)}else t.prototype.processConnectionPoint.call(this,e,n)},e}(s.ArrowHorizontalShapeDescription);e.ArrowLeftShapeDescription=p},6599:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowRightShapeDescription=void 0;var r=n(7724),s=n(4493),a=n(1852),c=n(8900),u=n(2259),h=n(3742),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowRight},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,a=e.bottom,c=e.width,u=e.height,h=e.center.y,p=c-t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value,l=(u-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2,d=t.normalizeX(n+p),f=t.normalizeY(o+l),y=t.normalizeY(a-l);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(n,f),new r.PathPrimitiveLineToCommand(d,f),new r.PathPrimitiveLineToCommand(d,o),new r.PathPrimitiveLineToCommand(i,h),new r.PathPrimitiveLineToCommand(d,a),new r.PathPrimitiveLineToCommand(d,y),new r.PathPrimitiveLineToCommand(n,y),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,s.ArrowVerticalTriangleWidthParameterName,(function(t){return t.value-n})),this.changeParameterValue(e,s.ArrowVerticalLineHeightParameterName,(function(t){return t.value-2*o})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new a.ShapeParameterPoint(\"c\",new c.Point(t.normalizeX(t.position.x+t.size.width-t.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value),t.normalizeY(t.position.y+(t.size.height-t.parameters.get(s.ArrowVerticalLineHeightParameterName).value)/2)))]},e.prototype.processConnectionPoint=function(e,n){var o=e.parameters.get(s.ArrowVerticalTriangleWidthParameterName).value;if(n.x>e.position.x+e.size.width-o){var i=e.size.height/2/o,r=(n.x-(e.position.x+e.size.width-o))*i,a=e.getConnectionPointSide(n);a===h.ConnectionPointSide.North?n.y+=r:a===h.ConnectionPointSide.South&&(n.y-=r)}else t.prototype.processConnectionPoint.call(this,e,n)},e}(s.ArrowHorizontalShapeDescription);e.ArrowRightShapeDescription=p},9089:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowUpDownShapeDescription=void 0;var r=n(7724),s=n(1852),a=n(8900),c=n(731),u=n(2259),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowUpDown},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,u=e.center.x,h=(a-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2,p=t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value,l=t.normalizeX(n+h),d=t.normalizeY(o+p),f=t.normalizeX(i-h),y=t.normalizeY(s-p);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(u,o),new r.PathPrimitiveLineToCommand(i,d),new r.PathPrimitiveLineToCommand(f,d),new r.PathPrimitiveLineToCommand(f,y),new r.PathPrimitiveLineToCommand(i,y),new r.PathPrimitiveLineToCommand(u,s),new r.PathPrimitiveLineToCommand(n,y),new r.PathPrimitiveLineToCommand(l,y),new r.PathPrimitiveLineToCommand(l,d),new r.PathPrimitiveLineToCommand(n,d),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.normalizeParameters=function(t,e){this.changeParameterValue(e,c.ArrowVerticalTriangleHeightParameterName,(function(e){return Math.max(0,Math.min(t.size.height/2-2*t.strokeWidth,e.value))})),this.changeParameterValue(e,c.ArrowVerticalLineWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.width,e.value))}))},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,c.ArrowVerticalTriangleHeightParameterName,(function(t){return t.value+o})),this.changeParameterValue(e,c.ArrowVerticalLineWidthParameterName,(function(t){return t.value-2*n})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new s.ShapeParameterPoint(\"c\",new a.Point(t.normalizeX(t.position.x+(t.size.width-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2),t.normalizeY(t.position.y+t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value)))]},e}(c.ArrowVerticalShapeDescription);e.ArrowUpDownShapeDescription=h},8327:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowUpShapeDescription=void 0;var r=n(7724),s=n(1852),a=n(8900),c=n(731),u=n(2259),h=n(3742),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return u.ShapeTypes.ArrowUp},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,u=e.center.x,h=(a-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2,p=t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value,l=t.normalizeX(n+h),d=t.normalizeY(o+p),f=t.normalizeX(i-h);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(u,o),new r.PathPrimitiveLineToCommand(i,d),new r.PathPrimitiveLineToCommand(f,d),new r.PathPrimitiveLineToCommand(f,s),new r.PathPrimitiveLineToCommand(l,s),new r.PathPrimitiveLineToCommand(l,d),new r.PathPrimitiveLineToCommand(n,d),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.modifyParameters=function(t,e,n,o){this.changeParameterValue(e,c.ArrowVerticalTriangleHeightParameterName,(function(t){return t.value+o})),this.changeParameterValue(e,c.ArrowVerticalLineWidthParameterName,(function(t){return t.value-2*n})),this.normalizeParameters(t,e)},e.prototype.getParameterPoints=function(t){return[new s.ShapeParameterPoint(\"c\",new a.Point(t.normalizeX(t.position.x+(t.size.width-t.parameters.get(c.ArrowVerticalLineWidthParameterName).value)/2),t.normalizeY(t.position.y+t.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value)))]},e.prototype.processConnectionPoint=function(e,n){var o=e.parameters.get(c.ArrowVerticalTriangleHeightParameterName).value;if(n.y<e.position.y+o){var i=e.size.width/2/o,r=(e.position.y+o-n.y)*i,s=e.getConnectionPointSide(n);s===h.ConnectionPointSide.East?n.x-=r:s===h.ConnectionPointSide.West&&(n.x+=r)}else t.prototype.processConnectionPoint.call(this,e,n)},e}(c.ArrowVerticalShapeDescription);e.ArrowUpShapeDescription=p},731:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ArrowVerticalShapeDescription=e.ArrowVerticalLineWidthParameterName=e.ArrowVerticalTriangleHeightParameterName=void 0;var r=n(6794),s=n(6353),a=n(6629),c=n(3742);e.ArrowVerticalTriangleHeightParameterName=\"th\",e.ArrowVerticalLineWidthParameterName=\"lw\";var u=function(t){function n(){return t.call(this,new s.Size(.375*r.ShapeDefaultDimension,r.ShapeDefaultDimension))||this}return i(n,t),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),n.prototype.createParameters=function(t){t.addRangeIfNotExists([new a.ShapeParameter(e.ArrowVerticalTriangleHeightParameterName,Math.sqrt(Math.pow(this.defaultSize.width,2)-Math.pow(this.defaultSize.width/2,2))),new a.ShapeParameter(e.ArrowVerticalLineWidthParameterName,this.defaultSize.width/3)])},n.prototype.normalizeParameters=function(t,n){this.changeParameterValue(n,e.ArrowVerticalTriangleHeightParameterName,(function(e){return Math.max(0,Math.min(t.size.height,e.value))})),this.changeParameterValue(n,e.ArrowVerticalLineWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.width,e.value))}))},n.prototype.processConnectionPoint=function(t,n){var o=(t.size.width-t.parameters.get(e.ArrowVerticalLineWidthParameterName).value)/2,i=t.getConnectionPointSide(n);i===c.ConnectionPointSide.East?n.x-=o:i===c.ConnectionPointSide.West&&(n.x+=o)},n.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding)},n.prototype.getSizeByText=function(t,e){return t.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding)},n}(r.ShapeDescription);e.ArrowVerticalShapeDescription=u},2281:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CrossShapeDescription=e.CrossVerticalWidthParameterName=e.CrossHorizontalWidthParameterName=void 0;var r=n(6794),s=n(8900),a=n(6629),c=n(1852),u=n(7724),h=n(2259);e.CrossHorizontalWidthParameterName=\"chw\",e.CrossVerticalWidthParameterName=\"cvw\";var p=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),Object.defineProperty(n.prototype,\"key\",{get:function(){return h.ShapeTypes.Cross},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),n.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,r=n.right,s=n.bottom,a=n.width,c=n.height,h=(a-t.parameters.get(e.CrossHorizontalWidthParameterName).value)/2,p=(c-t.parameters.get(e.CrossVerticalWidthParameterName).value)/2,l=t.normalizeX(o+h),d=t.normalizeY(i+p),f=t.normalizeX(r-h),y=t.normalizeY(s-p);return[new u.PathPrimitive([new u.PathPrimitiveMoveToCommand(o,d),new u.PathPrimitiveLineToCommand(l,d),new u.PathPrimitiveLineToCommand(l,i),new u.PathPrimitiveLineToCommand(f,i),new u.PathPrimitiveLineToCommand(f,d),new u.PathPrimitiveLineToCommand(r,d),new u.PathPrimitiveLineToCommand(r,y),new u.PathPrimitiveLineToCommand(f,y),new u.PathPrimitiveLineToCommand(f,s),new u.PathPrimitiveLineToCommand(l,s),new u.PathPrimitiveLineToCommand(l,y),new u.PathPrimitiveLineToCommand(o,y),new u.PathPrimitiveClosePathCommand],t.style)]},n.prototype.createParameters=function(t){t.addRangeIfNotExists([new a.ShapeParameter(e.CrossHorizontalWidthParameterName,.2*this.defaultSize.width),new a.ShapeParameter(e.CrossVerticalWidthParameterName,.2*this.defaultSize.height)])},n.prototype.normalizeParameters=function(t,n){this.changeParameterValue(n,e.CrossHorizontalWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.width,e.value))})),this.changeParameterValue(n,e.CrossVerticalWidthParameterName,(function(e){return Math.max(0,Math.min(t.size.height,e.value))}))},n.prototype.modifyParameters=function(t,n,o,i){this.changeParameterValue(n,e.CrossHorizontalWidthParameterName,(function(t){return t.value-2*o})),this.changeParameterValue(n,e.CrossVerticalWidthParameterName,(function(t){return t.value-2*i})),this.normalizeParameters(t,n)},n.prototype.getParameterPoints=function(t){return[new c.ShapeParameterPoint(\"c\",new s.Point(t.normalizeX(t.position.x+(t.size.width-t.parameters.get(e.CrossHorizontalWidthParameterName).value)/2),t.normalizeY(t.position.y+(t.size.height-t.parameters.get(e.CrossVerticalWidthParameterName).value)/2)))]},n.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding)},n.prototype.getSizeByText=function(t,e){return t.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding)},n}(r.ShapeDescription);e.CrossShapeDescription=p},5303:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiamondShapeDescription=void 0;var r=n(6794),s=n(7724),a=n(2259),c=function(t){function e(e,n){return void 0===e&&(e=r.ShapeDefaultSize.clone()),t.call(this,e,n)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return a.ShapeTypes.Diamond},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,r=e.bottom,a=e.center,c=a.x,u=a.y;return[new s.PathPrimitive([new s.PathPrimitiveMoveToCommand(c,o),new s.PathPrimitiveLineToCommand(i,u),new s.PathPrimitiveLineToCommand(c,r),new s.PathPrimitiveLineToCommand(n,u),new s.PathPrimitiveClosePathCommand],t.style)]},e.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-t.size.width/4,-t.size.height/4)},e.prototype.getSizeByText=function(t,e){return t.clone().multiply(2,2)},e}(r.ShapeDescription);e.DiamondShapeDescription=c},7768:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EllipseShapeDescription=void 0;var r=n(6794),s=n(6353),a=n(418),c=n(2259),u=n(8675),h=n(8011),p=function(t){function e(e){return t.call(this,new s.Size(r.ShapeDefaultDimension,.75*r.ShapeDefaultDimension),e)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return c.ShapeTypes.Ellipse},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.getTextRectangle=function(t){var e=u.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return h.Rectangle.fromGeometry(t.position.clone().offset((t.size.width-e.width)/2,(t.size.height-e.height)/2),e)},e.prototype.getSizeByText=function(t,e){return u.GeometryUtils.getEllipseByEnscribedRectangle(t)},e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.width,o=e.height,i=e.center,r=i.x,s=i.y;return[new a.EllipsePrimitive(r,s,n/2,o/2,t.style)]},e}(r.ShapeDescription);e.EllipseShapeDescription=p},8628:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.HeartShapeDescription=void 0;var r=n(6794),s=n(7724),a=n(2259),c=n(7228),u=n(3742),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return a.ShapeTypes.Heart},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),e.prototype.createConnectionPoints=function(){return[new c.ConnectionPoint(.5,.15,u.ConnectionPointSide.North),new c.ConnectionPoint(1,.25,u.ConnectionPointSide.East),new c.ConnectionPoint(.5,1,u.ConnectionPointSide.South),new c.ConnectionPoint(0,.25,u.ConnectionPointSide.West)]},e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,r=e.bottom,a=e.width,c=e.height;return[new s.PathPrimitive([new s.PathPrimitiveMoveToCommand(i-.25*a,o),new s.PathPrimitiveCubicCurveToCommand(i-.15*a,o,i,o+.1*c,i,o+.25*c),new s.PathPrimitiveCubicCurveToCommand(i,o+.3*c,i-.02*a,o+.35*c,i-.05*a,o+.4*c),new s.PathPrimitiveLineToCommand(e.center.x,r),new s.PathPrimitiveLineToCommand(n+.05*a,o+.4*c),new s.PathPrimitiveCubicCurveToCommand(n+.02*a,o+.35*c,n,o+.3*c,n,o+.25*c),new s.PathPrimitiveCubicCurveToCommand(n,o+.1*c,n+.15*a,o,n+.25*a,o),new s.PathPrimitiveCubicCurveToCommand(n+.3*a,o,n+.45*a,o+.03*c,n+.5*a,o+.15*c),new s.PathPrimitiveCubicCurveToCommand(i-.45*a,o+.03*c,i-.3*a,o,i-.25*a,o),new s.PathPrimitiveClosePathCommand],t.style)]},e.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding)},e.prototype.getSizeByText=function(t,e){return e.size.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding)},e}(r.ShapeDescription);e.HeartShapeDescription=h},2953:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.HexagonShapeDescription=void 0;var r=n(7724),s=n(2259),a=n(7314),c=n(8675),u=n(8011),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Hexagon},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"angleCount\",{get:function(){return 6},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,c=e.center.y,u=Math.PI-this.angle,h=a/(1+2*Math.cos(u)),p=n+(a-h)/2,l=p+h;return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(p,o),new r.PathPrimitiveLineToCommand(l,o),new r.PathPrimitiveLineToCommand(i,c),new r.PathPrimitiveLineToCommand(l,s),new r.PathPrimitiveLineToCommand(p,s),new r.PathPrimitiveLineToCommand(n,c),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.calculateHeight=function(t){var e=Math.PI-this.angle;return 2*(t/(1+2*Math.cos(e)))*Math.sin(e)},e.prototype.getTextRectangle=function(t){var e=c.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return u.Rectangle.fromGeometry(t.position.clone().offset((t.size.width-e.width)/2,(t.size.height-e.height)/2),e)},e.prototype.getSizeByText=function(t,e){return c.GeometryUtils.getEllipseByEnscribedRectangle(t)},e}(a.PolygonShapeDescription);e.HexagonShapeDescription=h},1412:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.OctagonShapeDescription=void 0;var r=n(7724),s=n(2259),a=n(7314),c=n(8675),u=n(8011),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Octagon},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"angleCount\",{get:function(){return 8},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,c=e.height,u=Math.PI-this.angle,h=a/(1+2*Math.cos(u)),p=c/(1+2*Math.cos(u)),l=n+(a-h)/2,d=l+h,f=o+(c-p)/2,y=f+p;return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(l,o),new r.PathPrimitiveLineToCommand(d,o),new r.PathPrimitiveLineToCommand(i,f),new r.PathPrimitiveLineToCommand(i,y),new r.PathPrimitiveLineToCommand(d,s),new r.PathPrimitiveLineToCommand(l,s),new r.PathPrimitiveLineToCommand(n,y),new r.PathPrimitiveLineToCommand(n,f),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.calculateHeight=function(t){return t},e.prototype.getTextRectangle=function(t){var e=c.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return u.Rectangle.fromGeometry(t.position.clone().offset((t.size.width-e.width)/2,(t.size.height-e.height)/2),e)},e.prototype.getSizeByText=function(t,e){return c.GeometryUtils.getEllipseByEnscribedRectangle(t)},e}(a.PolygonShapeDescription);e.OctagonShapeDescription=h},8761:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PentagonShapeDescription=void 0;var r=n(7724),s=n(2259),a=n(7314),c=n(3742),u=n(8675),h=n(8011),p=function(t){function e(e){var n=t.call(this,e)||this;return n.defaultRatio=n.defaultSize.height/n.defaultSize.width,n}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.Pentagon},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"angleCount\",{get:function(){return 5},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,s=e.bottom,a=e.width,c=e.height,u=e.center.x,h=c/a/this.defaultRatio,p=Math.PI-this.angle,l=a/2*Math.tan(p/2)*h,d=o+l,f=(c-l)/Math.tan(p)/h,y=n+f,g=i-f;return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(u,o),new r.PathPrimitiveLineToCommand(i,d),new r.PathPrimitiveLineToCommand(g,s),new r.PathPrimitiveLineToCommand(y,s),new r.PathPrimitiveLineToCommand(n,d),new r.PathPrimitiveClosePathCommand],t.style)]},e.prototype.processConnectionPoint=function(t,e){var n=t.getConnectionPointSide(e);if(n===c.ConnectionPointSide.East||n===c.ConnectionPointSide.West){var o=t.rectangle,i=o.y,r=o.width,s=o.height/r/this.defaultRatio,a=Math.PI-this.angle,u=i+r/2*Math.tan(a/2)*s;(n===c.ConnectionPointSide.East||n===c.ConnectionPointSide.West)&&(e.y=u)}},e.prototype.calculateHeight=function(t){var e=Math.PI-this.angle;return t/2*Math.tan(e/2)+t/2/Math.cos(e/2)*Math.sin(e)},e.prototype.getTextRectangle=function(t){var e=u.GeometryUtils.getMaxRectangleEnscribedInEllipse(t.size);return h.Rectangle.fromGeometry(t.position.clone().offset((t.size.width-e.width)/2,(t.size.height-e.height)/2),e)},e.prototype.getSizeByText=function(t,e){return u.GeometryUtils.getEllipseByEnscribedRectangle(t)},e}(a.PolygonShapeDescription);e.PentagonShapeDescription=p},7314:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PolygonShapeDescription=void 0;var r=n(6794),s=function(t){function e(e){var n=t.call(this,void 0,e)||this;return n.defaultSize.height=n.calculateHeight(r.ShapeDefaultDimension),n}return i(e,t),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"angle\",{get:function(){return Math.PI*(this.angleCount-2)/this.angleCount},enumerable:!1,configurable:!0}),e}(r.ShapeDescription);e.PolygonShapeDescription=s},1561:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.RectangleShapeDescription=void 0;var r=n(6794),s=n(6353),a=n(4716),c=n(2259),u=function(t){function e(e,n){return void 0===e&&(e=new s.Size(r.ShapeDefaultDimension,.75*r.ShapeDefaultDimension)),t.call(this,e,n)||this}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return c.ShapeTypes.Rectangle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.width,r=e.height;return[new a.RectanglePrimitive(n,o,i,r,t.style)]},e.prototype.getTextRectangle=function(t){return t.rectangle.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding)},e.prototype.getSizeByText=function(t,e){return t.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding)},e}(r.ShapeDescription);e.RectangleShapeDescription=u},8772:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.StarShapeDescription=e.StarConvexParameterName=void 0;var r=n(7724),s=n(2259),a=n(8761),c=n(6629),u=n(1852),h=n(8900),p=n(3742);e.StarConvexParameterName=\"sc\";var l=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),Object.defineProperty(n.prototype,\"key\",{get:function(){return s.ShapeTypes.Star},enumerable:!1,configurable:!0}),n.prototype.createShapePrimitives=function(t){var n=t.rectangle,o=n.x,i=n.y,s=n.right,a=n.width,c=n.height,u=this.getActualBottom(i,n.bottom,a,c),h=n.center.x,p=i+(u-i)/2,l=c/a,d=Math.PI-this.angle,f=a/2*Math.tan(d/2)*l,y=i+f,g=(c-f)/Math.tan(d)/l,m=o+g,v=s-g,P=t.parameters.get(e.StarConvexParameterName).value,C=this.getInnerPointDistance(h,h,s,p,i,y);return[new r.PathPrimitive([new r.PathPrimitiveMoveToCommand(h,i),new r.PathPrimitiveLineToCommand(this.getInnerPointPos(h,h,s,P,C),this.getInnerPointPos(p,i,y,P,C)),new r.PathPrimitiveLineToCommand(s,y),new r.PathPrimitiveLineToCommand(this.getInnerPointPos(h,s,v,P,C),this.getInnerPointPos(p,y,u,P,C)),new r.PathPrimitiveLineToCommand(v,u),new r.PathPrimitiveLineToCommand(this.getInnerPointPos(h,v,m,P,C),this.getInnerPointPos(p,u,u,P,C)),new r.PathPrimitiveLineToCommand(m,u),new r.PathPrimitiveLineToCommand(this.getInnerPointPos(h,m,o,P,C),this.getInnerPointPos(p,u,y,P,C)),new r.PathPrimitiveLineToCommand(o,y),new r.PathPrimitiveLineToCommand(this.getInnerPointPos(h,o,h,P,C),this.getInnerPointPos(p,y,i,P,C)),new r.PathPrimitiveClosePathCommand],t.style)]},n.prototype.createParameters=function(t){t.addRangeIfNotExists([new c.ShapeParameter(e.StarConvexParameterName,300)])},n.prototype.normalizeParameters=function(t,n){var o=t.rectangle,i=o.y,r=o.right,s=o.width,a=o.height,c=this.getActualBottom(i,o.bottom,s,a),u=o.center.x,h=i+(c-i)/2,p=a/s,l=Math.PI-this.angle,d=i+s/2*Math.tan(l/2)*p,f=this.getInnerPointDistance(u,u,r,h,i,d);this.changeParameterValue(n,e.StarConvexParameterName,(function(t){return Math.max(0,Math.min(f,t.value))}))},n.prototype.modifyParameters=function(t,n,o,i){var r=Math.sqrt(Math.pow(o,2)+Math.pow(i,2));(o<0||i>0)&&(r=-r),this.changeParameterValue(n,e.StarConvexParameterName,(function(t){return t.value+r})),this.normalizeParameters(t,n)},n.prototype.getParameterPoints=function(t){var n=t.rectangle,o=n.y,i=n.right,r=n.width,s=n.height,a=this.getActualBottom(o,n.bottom,r,s),c=n.center.x,p=o+(a-o)/2,l=s/r,d=Math.PI-this.angle,f=o+r/2*Math.tan(d/2)*l,y=t.parameters.get(e.StarConvexParameterName).value,g=this.getInnerPointDistance(c,c,i,p,o,f),m=this.getInnerPointPos(c,c,i,y,g),v=this.getInnerPointPos(p,o,f,y,g);return[new u.ShapeParameterPoint(\"c\",new h.Point(m,v))]},n.prototype.processConnectionPoint=function(n,o){if(t.prototype.processConnectionPoint.call(this,n,o),n.getConnectionPointSide(o)===p.ConnectionPointSide.South){var i=n.rectangle,r=i.y,s=i.right,a=i.width,c=i.height,u=this.getActualBottom(r,i.bottom,a,c),h=i.center.x,l=r+(u-r)/2,d=c/a,f=Math.PI-this.angle,y=r+a/2*Math.tan(f/2)*d,g=n.parameters.get(e.StarConvexParameterName).value,m=this.getInnerPointDistance(h,h,s,l,r,y);o.y=this.getInnerPointPos(l,u,u,g,m)}},n.prototype.getInnerPointDistanceByAxis=function(t,e,n){return Math.min(e,n)+Math.abs(e-n)/2-t},n.prototype.getInnerPointPos=function(t,e,n,o,i){var r=Math.min(1,o/i);return t+this.getInnerPointDistanceByAxis(t,e,n)*r},n.prototype.getInnerPointDistance=function(t,e,n,o,i,r){var s=this.getInnerPointDistanceByAxis(t,e,n),a=this.getInnerPointDistanceByAxis(o,i,r);return Math.sqrt(Math.pow(s,2)+Math.pow(a,2))},n.prototype.getActualBottom=function(e,n,o,i){var r=e+t.prototype.calculateHeight.call(this,o)*i/o;return r<n?r:n},n.prototype.calculateHeight=function(t){return t},n}(a.PentagonShapeDescription);e.StarShapeDescription=l},1669:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextShapeDescription=void 0;var r=n(6794),s=n(6353),a=n(2259),c=n(4593),u=n(4716),h=n(3500),p=function(t){function e(){var e=t.call(this,new s.Size(r.ShapeDefaultDimension,.5*r.ShapeDefaultDimension),!0)||this;return e.textClipPathId=h.RenderUtils.generateSvgElementId(\"clipRect\"),e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return a.ShapeTypes.Text},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createShapePrimitives=function(t,e){if(e){var n=t.rectangle,o=n.x,i=n.y,r=n.width,s=n.height;return[new c.ClipPathPrimitive(this.getTextClipPathId(e),[new u.RectanglePrimitive(o,i,r,s)])]}return[]},e.prototype.getTextClipPathId=function(t){return t?this.textClipPathId:void 0},e.prototype.getSizeByTextRectangle=function(t){return t},e.prototype.getSizeByText=function(t,e){return t.clone()},e.prototype.getTextRectangle=function(t){return t.rectangle},e}(r.ShapeDescription);e.TextShapeDescription=p},2117:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TriangleShapeDescription=void 0;var r=n(6794),s=n(7724),a=n(2259),c=n(7228),u=n(3742),h=n(8011),p=n(6353),l=function(t){function e(e){var n=t.call(this,void 0,e)||this;return n.defaultSize.height=n.calculateHeight(r.ShapeDefaultDimension),n}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return a.ShapeTypes.Triangle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.createConnectionPoints=function(){return[new c.ConnectionPoint(.5,0,u.ConnectionPointSide.North),new c.ConnectionPoint(.75,.5,u.ConnectionPointSide.East),new c.ConnectionPoint(.5,1,u.ConnectionPointSide.South),new c.ConnectionPoint(.25,.5,u.ConnectionPointSide.West)]},e.prototype.createShapePrimitives=function(t){var e=t.rectangle,n=e.x,o=e.y,i=e.right,r=e.bottom;return[new s.PathPrimitive([new s.PathPrimitiveMoveToCommand(e.center.x,o),new s.PathPrimitiveLineToCommand(i,r),new s.PathPrimitiveLineToCommand(n,r),new s.PathPrimitiveClosePathCommand],t.style)]},e.prototype.calculateHeight=function(t){return Math.sqrt(Math.pow(t,2)-Math.pow(t/2,2))},e.prototype.getTextRectangle=function(t){return new h.Rectangle(t.position.x+t.size.width/4,t.position.y+t.size.height/2,t.size.width/2,t.size.height/2-r.ShapeTextPadding).nonNegativeSize()},e.prototype.getSizeByText=function(t,e){return new p.Size(2*t.width,2*t.height+r.ShapeTextPadding)},e}(r.ShapeDescription);e.TriangleShapeDescription=l},3233:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CardBaseDescription=void 0;var r=n(6794),s=n(8011),a=n(6353),c=n(4083),u=n(4538),h=n(7724),p=n(5329),l=n(6411),d=n(2259),f=n(6224),y=n(9291),g=n(8900),m=function(t){function e(e){return void 0===e&&(e=new a.Size(r.ShapeDefaultDimension,26/46*r.ShapeDefaultDimension)),t.call(this,e,!0)||this}return i(e,t),Object.defineProperty(e.prototype,\"keepRatioOnAutoSize\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.getDefaultText=function(){return f.DiagramLocalizationService.shapeTexts[d.ShapeTypes.Card]},e.prototype.createShapePrimitives=function(t,e){var n=t.rectangle,o=n.x,i=n.y,r=n.width,s=n.height;return[new u.RoundedRectanglePrimitive(o,i,r,s,e?30:60,e?30:60,t.style)]},e.prototype.createImagePlaceholder=function(t){return[new u.RoundedRectanglePrimitive(t.x,t.y,t.width,t.height,y.UnitConverter.pixelsToTwips(2),y.UnitConverter.pixelsToTwips(2),void 0,c.SHAPE_IMAGE_CLASSNAMES.IMAGE_PLACEHOLDER)]},e.prototype.createEmptyImagePrimitive=function(t){return l.ShapeImageIndicator.createUserIconPrimitives(t.x,t.y,this.defaultIconSize,y.UnitConverter.pixelsToTwips(1),c.SHAPE_IMAGE_CLASSNAMES.USER_PIC)},e.prototype.createWarningPrimitive=function(t){return l.ShapeImageIndicator.createWarningIconPrimitives(t.x+this.defaultIconSize/2,t.y+this.defaultIconSize/2,this.defaultIconSize/2,c.SHAPE_IMAGE_CLASSNAMES.WARNING_MARK)},e.prototype.getTextRectangle=function(t){var e=t.rectangle,n=e.clone().inflate(-r.ShapeTextPadding,-r.ShapeTextPadding),o=this.getImageSize(e.createSize(),!0);return this.isTextAfterImage&&n.moveRectangle(this.isHorizontal?o.width:0,this.isHorizontal?0:o.height),n.resize(this.isHorizontal?-o.width:0,this.isHorizontal?0:-o.height),n.nonNegativeSize()},e.prototype.getSizeByText=function(t,e){var n=t.clone().offset(2*r.ShapeTextPadding,2*r.ShapeTextPadding),o=this.getImageSizeByTextBlockSize(n);return this.isHorizontal?n.width+=o.width:n.height+=o.height,n},e.prototype.createTextPrimitives=function(e,n){return n?this.createGraphicalTextRepresentation(e.rectangle):t.prototype.createTextPrimitives.call(this,e,n)},e.prototype.createGraphicalTextRepresentation=function(t){var e=new s.Rectangle(0,0,0,0),n=this.getImageSize(t.createSize(),!0,!0);if(this.isHorizontal){var o=this.isTextAfterImage?t.width/2-y.UnitConverter.pixelsToTwips(2):0;e.x=t.x+o+y.UnitConverter.pixelsToTwips(4),e.y=t.y+y.UnitConverter.pixelsToTwips(5),e.width=n.width-y.UnitConverter.pixelsToTwips(4),e.height=t.height-y.UnitConverter.pixelsToTwips(6)}else{var i=this.isTextAfterImage?t.height/2-y.UnitConverter.pixelsToTwips(2):0;e.x=t.x+t.width/4,e.y=t.y+i+y.UnitConverter.pixelsToTwips(4),e.width=t.width/2,e.height=n.height-y.UnitConverter.pixelsToTwips(2)}return this.createTextRepresentationPrimitives(e)},e.prototype.getImagePlacementRectangle=function(t,e){var n=this.getImageSize(t.createSize(),!1,e),o=s.Rectangle.fromGeometry(new g.Point(t.x,t.y),n),i=this.getImageSize(t.createSize(),!0,e);return this.isHorizontal&&this.isTextAfterImage?o.x+=this.getImageMargin(e):this.isHorizontal&&(o.x=t.right-i.width-this.getImageMargin(e)),this.isHorizontal||this.isTextAfterImage?o.y+=this.getImageMargin(e):o.y=t.bottom-i.height-this.getImageMargin(e),this.isHorizontal||(o.x+=(t.width-o.width)/2),o},e.prototype.createTextRepresentationPrimitives=function(t){var e=y.UnitConverter.pixelsToTwips(y.UnitConverter.twipsToPixels(t.height/3));return[new p.GroupPrimitive([new h.PathPrimitive([new h.PathPrimitiveMoveToCommand(t.x,t.y),new h.PathPrimitiveLineToCommand(t.x+t.width,t.y)]),new h.PathPrimitive([new h.PathPrimitiveMoveToCommand(t.x,t.y+e),new h.PathPrimitiveLineToCommand(t.x+t.width,t.y+e)]),new h.PathPrimitive([new h.PathPrimitiveMoveToCommand(t.x,t.y+2*e),new h.PathPrimitiveLineToCommand(t.x+.66*t.width,t.y+2*e)])],\"dxdi-shape-text\")]},e}(c.ShapeWithImageDescription);e.CardBaseDescription=m},3107:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CardWithImageOnRightDescription=e.CardWithImageOnLeftDescription=void 0;var r=n(6794),s=n(2259),a=n(3233),c=n(6353),u=function(t){function e(){var e=t.call(this,new c.Size(1.5*r.ShapeDefaultDimension,.5*r.ShapeDefaultDimension))||this;return e.isHorizontal=!0,e}return i(e,t),e.prototype.getToolboxHeightToWidthRatio=function(t,e){return 26/46},e.prototype.getImageSize=function(t,e,n){var o=Math.min(t.height,t.width);return e||(o=Math.max(0,o-2*this.getImageMargin(n))),new c.Size(o,o)},e.prototype.getImageSizeByTextBlockSize=function(t){return this.getImageSize(new c.Size(Number.MAX_VALUE,t.height),!0)},e}(a.CardBaseDescription),h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.isTextAfterImage=!0,e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.CardWithImageOnLeft},enumerable:!1,configurable:!0}),e}(u);e.CardWithImageOnLeftDescription=h;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.isTextAfterImage=!1,e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return s.ShapeTypes.CardWithImageOnRight},enumerable:!1,configurable:!0}),e}(u);e.CardWithImageOnRightDescription=p},2816:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CardWithImageOnTopDescription=void 0;var r=n(6794),s=n(6353),a=n(2259),c=n(3233),u=n(9291),h=function(t){function e(){var e=t.call(this,new s.Size(.8*r.ShapeDefaultDimension,r.ShapeDefaultDimension))||this;return e.isTextAfterImage=!0,e.isHorizontal=!1,e}return i(e,t),Object.defineProperty(e.prototype,\"key\",{get:function(){return a.ShapeTypes.CardWithImageOnTop},enumerable:!1,configurable:!0}),e.prototype.getImageSize=function(t,e,n){var o=t.width/2;u.UnitConverter.twipsToPixels(o)%2==1&&(o-=u.UnitConverter.pixelsToTwips(1));var i=Math.max(0,t.height-(e?0:2*this.getImageMargin(n)));return i=Math.min(o,i),new s.Size(i,i)},e.prototype.getImageSizeByTextBlockSize=function(t){return this.getImageSize(new s.Size(t.width,Number.MAX_VALUE),!0)},e}(c.CardBaseDescription);e.CardWithImageOnTopDescription=h},6794:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeDescription=e.ShapeTextPadding=e.ShapeDefaultSize=e.ShapeMinDimension=e.ShapeDefaultDimension=void 0;var o=n(9291),i=n(6353),r=n(6224),s=n(4246),a=n(4716),c=n(9416),u=n(8675),h=n(7228),p=n(3742);e.ShapeDefaultDimension=1440,e.ShapeMinDimension=360,e.ShapeDefaultSize=new i.Size(e.ShapeDefaultDimension,e.ShapeDefaultDimension),e.ShapeTextPadding=o.UnitConverter.pixelsToTwips(10);var l=function(){function t(t,n){void 0===t&&(t=e.ShapeDefaultSize.clone()),this.defaultSize=t,this.hasDefaultText=n,this.onChanged=new u.EventDispatcher,this.connectionPoints=this.createConnectionPoints()}return Object.defineProperty(t.prototype,\"enableText\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"allowEditText\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"enableImage\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"allowEditImage\",{get:function(){return!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasTemplate\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"enableChildren\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"minWidth\",{get:function(){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"minHeight\",{get:function(){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"maxWidth\",{get:function(){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"maxHeight\",{get:function(){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"toolboxSize\",{get:function(){return this.defaultSize},enumerable:!1,configurable:!0}),t.prototype.getTitle=function(){return r.DiagramLocalizationService.shapeTexts[this.key]},t.prototype.getDefaultText=function(){return this.hasDefaultText?r.DiagramLocalizationService.shapeTexts[this.key]:\"\"},t.prototype.getDefaultImageUrl=function(){return\"\"},t.prototype.getConnectionPoints=function(){return this.connectionPoints},t.prototype.createConnectionPoints=function(){return[new h.ConnectionPoint(.5,0,p.ConnectionPointSide.North),new h.ConnectionPoint(1,.5,p.ConnectionPointSide.East),new h.ConnectionPoint(.5,1,p.ConnectionPointSide.South),new h.ConnectionPoint(0,.5,p.ConnectionPointSide.West)]},t.prototype.processConnectionPoint=function(t,e){},t.prototype.getConnectionPointIndexForItem=function(t,e){return e},t.prototype.getConnectionPointIndexForSide=function(t){return t},t.getConnectionPointSideByGeometry=function(t){return t.x>=t.y&&(t.x>0||t.y>0)?t.x<.5||1-t.x>=t.y?p.ConnectionPointSide.North:p.ConnectionPointSide.East:t.x>.5||1-t.x<=t.y?p.ConnectionPointSide.South:p.ConnectionPointSide.West},t.prototype.createParameters=function(t){},t.prototype.normalizeParameters=function(t,e){},t.prototype.modifyParameters=function(t,e,n,o){throw Error(\"Not implemented\")},t.prototype.changeParameterValue=function(t,e,n){var o=t.get(e);o.value=n(o)},t.prototype.getParameterPoints=function(t){return[]},t.prototype.getExpandedSize=function(t){return t.size},t.prototype.getCollapsedSize=function(t){return t.size},t.prototype.getToolboxHeightToWidthRatio=function(t,e){return e/t},t.prototype.allowResizeHorizontally=function(t){return!0},t.prototype.allowResizeVertically=function(t){return!0},t.prototype.createPrimitives=function(t,e,n){var o=[];return o=o.concat(this.createShapePrimitives(t,n)),this.enableImage&&(o=o.concat(this.createImagePrimitives(t,n))),this.enableText&&(o=o.concat(this.createTextPrimitives(t,n))),o},t.prototype.createImagePrimitives=function(t,e){return[]},t.prototype.createTextPrimitives=function(e,n){if(void 0===e.text||\"\"===e.text)return[];var o=this.getTextRectangle(e);return[new c.TextPrimitive(o.x,o.y,e.text,s.TextOwner.Shape,o.width,o.height,t.textSpacing,e.styleText,!1,this.getTextClipPathId(n),void 0,this.getTextAngle())]},t.prototype.getTextClipPathId=function(t){},t.prototype.getTextAngle=function(){return c.TextAngle.Angle0deg},t.prototype.getClientRectangle=function(t){return t.rectangle},t.prototype.getTextEditRectangle=function(t){return this.getTextRectangle(t)},t.prototype.createSelectorPrimitives=function(t){return[new a.RectanglePrimitive(t.position.x,t.position.y,t.size.width,t.size.height,null,\"selector\")]},t.prototype.raiseShapeDescriptionChanged=function(t){this.onChanged.raise1((function(e){return e.notifyShapeDescriptionChanged(t)}))},t.textSpacing=o.UnitConverter.pixelsToTwips(2),t}();e.ShapeDescription=l},8397:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeDescriptionManager=void 0;var o=n(5331),i=n(6825),r=n(9144),s=n(4941),a=n(6242),c=n(6508),u=n(9089),h=n(6599),p=n(8327),l=n(2281),d=n(5303),f=n(7768),y=n(8628),g=n(1561),m=n(1669),v=n(8761),P=n(2953),C=n(1412),S=n(8772),x=n(4958),b=n(8800),I=n(6023),w=n(2117),_=n(3525),T=n(2850),O=n(4112),M=n(1314),E=n(1034),D=n(2751),A=n(8110),R=n(1643),L=n(9229),N=n(4810),z=n(3046),j=n(2650),U=n(2019),k=n(6182),B=n(6688),H=n(5759),K=n(944),V=n(2816),F=n(2259),W=n(7552),G=n(8675),Z=n(3107),q=function(){function t(){this.descriptions={},this.descriptionTypes={},this.descriptionCategories={},this.onShapeDecriptionChanged=new G.EventDispatcher,this.register(new m.TextShapeDescription,F.ShapeCategories.General),this.register(new g.RectangleShapeDescription,F.ShapeCategories.General),this.register(new f.EllipseShapeDescription,F.ShapeCategories.General),this.register(new l.CrossShapeDescription,F.ShapeCategories.General),this.register(new w.TriangleShapeDescription,F.ShapeCategories.General),this.register(new d.DiamondShapeDescription,F.ShapeCategories.General),this.register(new y.HeartShapeDescription,F.ShapeCategories.General),this.register(new v.PentagonShapeDescription,F.ShapeCategories.General),this.register(new P.HexagonShapeDescription,F.ShapeCategories.General),this.register(new C.OctagonShapeDescription,F.ShapeCategories.General),this.register(new S.StarShapeDescription,F.ShapeCategories.General),this.register(new p.ArrowUpShapeDescription,F.ShapeCategories.General),this.register(new x.ArrowDownShapeDescription,F.ShapeCategories.General),this.register(new I.ArrowLeftShapeDescription,F.ShapeCategories.General),this.register(new h.ArrowRightShapeDescription,F.ShapeCategories.General),this.register(new u.ArrowUpDownShapeDescription,F.ShapeCategories.General),this.register(new b.ArrowLeftRightShapeDescription,F.ShapeCategories.General),this.register(new o.ProcessShapeDescription,F.ShapeCategories.Flowchart),this.register(new i.DecisionShapeDescription,F.ShapeCategories.Flowchart),this.register(new a.TerminatorShapeDescription,F.ShapeCategories.Flowchart),this.register(new c.PredefinedProcessShapeDescription,F.ShapeCategories.Flowchart),this.register(new _.DocumentShapeDescription,F.ShapeCategories.Flowchart),this.register(new T.MultipleDocumentsShapeDescription,F.ShapeCategories.Flowchart),this.register(new r.ManualInputShapeDescription,F.ShapeCategories.Flowchart),this.register(new O.PreparationShapeDescription,F.ShapeCategories.Flowchart),this.register(new s.DataShapeDescription,F.ShapeCategories.Flowchart),this.register(new E.DatabaseShapeDescription,F.ShapeCategories.Flowchart),this.register(new M.HardDiskShapeDescription,F.ShapeCategories.Flowchart),this.register(new D.InternalStorageShapeDescription,F.ShapeCategories.Flowchart),this.register(new A.PaperTapeShapeDescription,F.ShapeCategories.Flowchart),this.register(new R.ManualOperationShapeDescription,F.ShapeCategories.Flowchart),this.register(new L.DelayShapeDescription,F.ShapeCategories.Flowchart),this.register(new N.StoredDataShapeDescription,F.ShapeCategories.Flowchart),this.register(new j.DisplayShapeDescription,F.ShapeCategories.Flowchart),this.register(new z.MergeShapeDescription,F.ShapeCategories.Flowchart),this.register(new W.ConnectorShapeDescription,F.ShapeCategories.Flowchart),this.register(new U.OrShapeDescription,F.ShapeCategories.Flowchart),this.register(new k.SummingJunctionShapeDescription,F.ShapeCategories.Flowchart),this.register(new Z.CardWithImageOnLeftDescription,F.ShapeCategories.OrgChart),this.register(new Z.CardWithImageOnRightDescription,F.ShapeCategories.OrgChart),this.register(new V.CardWithImageOnTopDescription,F.ShapeCategories.OrgChart),this.register(new H.VerticalContainerDescription,F.ShapeCategories.Containers),this.register(new K.HorizontalContainerDescription,F.ShapeCategories.Containers)}return Object.defineProperty(t,\"default\",{get:function(){return t.defaultInstance},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"defaultContainer\",{get:function(){return t.defaultContainerInstance},enumerable:!1,configurable:!0}),t.prototype.get=function(t){return this.descriptions[t]},t.prototype.getTypesByCategory=function(t){return this.descriptionTypes[t]||[]},t.prototype.getCategoryByType=function(t){return this.descriptionCategories[t]},t.prototype.getCategoryByDescription=function(t){return this.getCategoryByType(t.key)},t.prototype.register=function(t,e,n){if(void 0===n&&(n=t.key),void 0!==this.descriptions[n])throw Error(\"Description key is duplicated\");this.descriptions[n]=t,this.descriptionTypes[e]||(this.descriptionTypes[e]=[]),this.descriptionTypes[e].push(n),this.descriptionCategories[n]=e,t.onChanged.add(this)},t.prototype.registerCustomShape=function(t){if(void 0===t.type)throw Error(\"Custom shape type is not defined\");if(void 0!==this.descriptions[t.type])throw Error(\"Custom shape type is duplicated\");var e=t.baseType&&this.descriptions[t.baseType];t.minWidth>t.maxWidth&&(t.maxWidth=t.minWidth),t.minHeight>t.maxHeight&&(t.maxHeight=t.minHeight),this.register(new B.CustomShapeDescription(t,e),t.category||F.ShapeCategories.Custom)},t.prototype.unregisterCustomShape=function(t){var e=this.descriptions[t];if(e instanceof B.CustomShapeDescription){e.onChanged.remove(this);var n=this.descriptionCategories[t];delete this.descriptions[t],delete this.descriptionCategories[t];var o=this.descriptionTypes[n].indexOf(t);this.descriptionTypes[n].splice(o,1),0===this.descriptionTypes[n].length&&delete this.descriptionTypes[n]}},t.prototype.unregisterAllCustomShapes=function(){var t=this;Object.keys(this.descriptions).forEach((function(e){t.unregisterCustomShape(e)}))},t.prototype.notifyShapeDescriptionChanged=function(t){this.onShapeDecriptionChanged.raise1((function(e){return e.notifyShapeDescriptionChanged(t)}))},t.defaultInstance=new g.RectangleShapeDescription,t.defaultContainerInstance=new H.VerticalContainerDescription,t}();e.ShapeDescriptionManager=q},4083:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeWithImageDescription=e.SHAPE_IMAGE_CLASSNAMES=e.ShapeDefaultSize=e.ShapeDefaultDimension=void 0;var r=n(6794),s=n(8011),a=n(6353),c=n(8900),u=n(9291),h=n(1995),p=n(4716),l=n(5329),d=n(3500),f=n(4593),y=n(6411);e.ShapeDefaultDimension=1440,e.ShapeDefaultSize=new a.Size(e.ShapeDefaultDimension,e.ShapeDefaultDimension),e.SHAPE_IMAGE_CLASSNAMES={IMAGE:\"dxdi-image\",IMAGE_PLACEHOLDER:\"dxdi-image-placeholder\",LOADING_INDICATOR:\"dxdi-spinner\",USER_PIC:\"dxdi-user\",WARNING_MARK:\"dxdi-warning\"};var g=function(t){function n(n,o){void 0===n&&(n=e.ShapeDefaultSize.clone());var i=t.call(this,n,o)||this;return i.hasDefaultText=o,i.defaultIconSize=480,i}return i(n,t),Object.defineProperty(n.prototype,\"enableImage\",{get:function(){return!0},enumerable:!1,configurable:!0}),n.prototype.getImageMargin=function(t){return t?u.UnitConverter.pixelsToTwips(2):u.UnitConverter.pixelsToTwips(3)},n.prototype.createImagePrimitives=function(t,n){if(!this.enableImage)return[];var o=this.getImagePlacementRectangle(t.rectangle,n);if(n)return this.createImagePlaceholder(o);var i=[];if(i=t.image.isEmpty||t.image.unableToLoad?i.concat(this.createEmptyImagePrimitives(o,t.image.unableToLoad)):\"\"===t.image.renderUrl?i.concat(this.createLoadingImagePrimitives(o)):i.concat(this.createLoadedImagePrimitives(o,t.image.renderUrl)),\"\"===t.image.renderUrl){var r=d.RenderUtils.generateSvgElementId(\"clipImage\");return[].concat([new l.GroupPrimitive(i,e.SHAPE_IMAGE_CLASSNAMES.IMAGE,void 0,r),new f.ClipPathPrimitive(r,[new p.RectanglePrimitive(o.x,o.y,o.width,o.height)])])}return i},n.prototype.createImagePlaceholder=function(t){return[]},n.prototype.createLoadedImagePrimitives=function(t,o){return[new h.ImagePrimitive(t.x,t.y,t.width,t.height,o,n.imageScalingRule,void 0,e.SHAPE_IMAGE_CLASSNAMES.IMAGE)]},n.prototype.createLoadingImagePrimitives=function(t){var n=this.getIconPlacementRectangle(t);return[y.ShapeImageIndicator.createLoadingIndicatorPrimitives(n.x,n.y,this.defaultIconSize,u.UnitConverter.pixelsToTwips(5),e.SHAPE_IMAGE_CLASSNAMES.LOADING_INDICATOR)]},n.prototype.createEmptyImagePrimitives=function(t,e){var n=this.getIconPlacementRectangle(t),o=[];return o=o.concat(this.createEmptyImagePrimitive(n)),e&&(o=o.concat(this.createWarningPrimitive(n))),o},n.prototype.createEmptyImagePrimitive=function(t){return new l.GroupPrimitive([])},n.prototype.createWarningPrimitive=function(t){return new l.GroupPrimitive([])},n.prototype.getIconPlacementRectangle=function(t){var e=s.Rectangle.fromGeometry(new c.Point(t.x,t.y),new a.Size(this.defaultIconSize,this.defaultIconSize));return e.width<t.width&&(e.x=t.x+(t.width-e.width)/2),e.height<t.height&&(e.y=t.y+(t.height-e.height)/2),e},n.imageScalingRule=\"xMidYMid meet\",n}(r.ShapeDescription);e.ShapeWithImageDescription=g},5503:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Shape=void 0;var r=n(8011),s=n(6794),a=n(6629),c=n(3742),u=n(7228),h=n(6617),p=n(7185),l=function(t){function e(e,n,o){var i=t.call(this)||this;if(i.description=e,i.children=[],i.expanded=!0,i.expandedSize=void 0,!e)throw Error(\"Shape type is incorrect\");i.position=n.clone();var r=o?e.toolboxSize:e.defaultSize;return i.size=r.clone(),i.text=e.getDefaultText(),i.image=new h.ImageInfo(e.getDefaultImageUrl()),i.parameters=new a.ShapeParameters,e.createParameters(i.parameters),i}return i(e,t),e.prototype.assign=function(e){t.prototype.assign.call(this,e),e.size=this.size.clone(),e.text=this.text,e.image=this.image.clone(),e.parameters=this.parameters.clone(),e.children=this.children.slice(),e.expanded=this.expanded,this.expandedSize&&(e.expandedSize=this.expandedSize.clone())},e.prototype.clone=function(){var t=new e(this.description,this.position.clone());return this.assign(t),t},Object.defineProperty(e.prototype,\"enableText\",{get:function(){return this.description.enableText},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allowEditText\",{get:function(){return this.description.allowEditText},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasTemplate\",{get:function(){return this.description.hasTemplate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableChildren\",{get:function(){return this.description.enableChildren},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableImage\",{get:function(){return this.description.enableImage},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allowEditImage\",{get:function(){return this.description.allowEditImage},enumerable:!1,configurable:!0}),e.prototype.getMinWidth=function(t){return\"number\"==typeof this.description.minWidth?this.description.minWidth:\"number\"==typeof t?t:s.ShapeMinDimension},e.prototype.getMinHeight=function(t){return\"number\"==typeof this.description.minHeight?this.description.minHeight:\"number\"==typeof t?t:s.ShapeMinDimension},e.prototype.getMaxWidth=function(t){return\"number\"==typeof this.description.maxWidth?this.description.maxWidth:\"number\"==typeof t?t:void 0},e.prototype.getMaxHeight=function(t){return\"number\"==typeof this.description.maxHeight?this.description.maxHeight:\"number\"==typeof t?t:void 0},e.prototype.createPrimitives=function(t){return this.description.createPrimitives(this,t)},e.prototype.createSelectorPrimitives=function(){return this.description.createSelectorPrimitives(this)},e.prototype.normalizeX=function(t){return Math.max(this.position.x,Math.min(t,this.position.x+this.size.width))},e.prototype.normalizeY=function(t){return Math.max(this.position.y,Math.min(t,this.position.y+this.size.height))},e.prototype.getConnectionPoints=function(){var t=this;return this.description.getConnectionPoints().map((function(e){var n=new u.ConnectionPoint(t.position.x+e.x*t.size.width,t.position.y+e.y*t.size.height,e.side);return t.description.processConnectionPoint(t,n),n}))},e.prototype.getConnectionPointSide=function(t,e){return t.side!==c.ConnectionPointSide.Undefined?t.side:this.getConnectionPointSideByGeometry(t)},e.prototype.getConnectionPointSideByGeometry=function(t){var e=t.clone().offset(-this.position.x,-this.position.y).multiply(1/this.size.width,1/this.size.height);return s.ShapeDescription.getConnectionPointSideByGeometry(e)},e.prototype.getConnectionPointIndexForItem=function(t,e){return this.description.getConnectionPointIndexForItem(t,e)},e.prototype.getConnectionPointIndexForSide=function(t){return this.description.getConnectionPointIndexForSide(t)},e.prototype.toggleExpandedSize=function(){this.expanded?(this.size=this.getExpandedSize(),this.expandedSize=void 0):(this.expandedSize=this.size.clone(),this.size=this.getCollapsedSize())},e.prototype.getExpandedSize=function(){return this.description.getExpandedSize(this)},e.prototype.getCollapsedSize=function(){return this.description.getCollapsedSize(this)},e.prototype.getToolboxHeightToWidthRatio=function(){return this.description.getToolboxHeightToWidthRatio(this.size.width,this.size.height)},Object.defineProperty(e.prototype,\"allowResizeHorizontally\",{get:function(){return this.description.allowResizeHorizontally(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allowResizeVertically\",{get:function(){return this.description.allowResizeVertically(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rectangle\",{get:function(){return r.Rectangle.fromGeometry(this.position,this.size)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"clientRectangle\",{get:function(){return this.description.getClientRectangle(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"textRectangle\",{get:function(){return this.description.getTextRectangle(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"textEditRectangle\",{get:function(){return this.description.getTextEditRectangle(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"textAngle\",{get:function(){return this.description.getTextAngle()},enumerable:!1,configurable:!0}),e.prototype.toNative=function(t){var e=new p.NativeShape(this.key,this.dataKey);return e.type=this.description.key,e.text=this.text,e.position=this.position.clone(),e.size=this.size.clone(),e.attachedConnectorIds=this.attachedConnectors.map((function(t){return t.key})),e.applyUnits(t),e.containerId=this.container?this.container.key:null,e.containerChildItemIds=this.children.map((function(t){return t.key})),e.containerExpanded=this.expanded,e},e}(c.DiagramItem);e.Shape=l},1852:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeParameterPoint=void 0;var n=function(t,e){this.key=t,this.point=e};e.ShapeParameterPoint=n},6629:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeParameters=e.ShapeParameter=void 0;var n=function(t,e){this.key=t,this.value=e};e.ShapeParameter=n;var o=function(){function t(){this.items={}}return t.prototype.addIfNotExists=function(t){t.key in this.items||this.set(t)},t.prototype.set=function(t){this.items[t.key]=t},t.prototype.addRangeIfNotExists=function(t){for(var e=0;e<t.length;e++)this.addIfNotExists(t[e])},t.prototype.get=function(t){return this.items[t]},t.prototype.forEach=function(t){for(var e in this.items)Object.prototype.hasOwnProperty.call(this.items,e)&&t(this.items[e])},t.prototype.clone=function(){var e=new t;return this.forEach((function(t){e.addIfNotExists(new n(t.key,t.value))})),e},t.prototype.toObject=function(){var t={},e=!1;return this.forEach((function(n){t[n.key]={value:n.value},e=!0})),e?t:null},t.prototype.fromObject=function(t){this.forEach((function(e){var n=t[e.key];n&&\"number\"==typeof n.value&&(e.value=n.value)}))},t}();e.ShapeParameters=o},2259:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeType=e.ShapeTypes=e.ShapeCategories=void 0;var n=function(){function t(){}return t.General=\"general\",t.Flowchart=\"flowchart\",t.OrgChart=\"orgChart\",t.Containers=\"containers\",t.Custom=\"custom\",t}();e.ShapeCategories=n;var o=function(){function t(){}return t.Text=\"text\",t.Rectangle=\"rectangle\",t.Ellipse=\"ellipse\",t.Cross=\"cross\",t.Triangle=\"triangle\",t.Diamond=\"diamond\",t.Heart=\"heart\",t.Pentagon=\"pentagon\",t.Hexagon=\"hexagon\",t.Octagon=\"octagon\",t.Star=\"star\",t.ArrowLeft=\"arrowLeft\",t.ArrowUp=\"arrowTop\",t.ArrowRight=\"arrowRight\",t.ArrowDown=\"arrowBottom\",t.ArrowUpDown=\"arrowNorthSouth\",t.ArrowLeftRight=\"arrowEastWest\",t.Process=\"process\",t.Decision=\"decision\",t.Terminator=\"terminator\",t.PredefinedProcess=\"predefinedProcess\",t.Document=\"document\",t.MultipleDocuments=\"multipleDocuments\",t.ManualInput=\"manualInput\",t.Preparation=\"preparation\",t.Data=\"data\",t.Database=\"database\",t.HardDisk=\"hardDisk\",t.InternalStorage=\"internalStorage\",t.PaperTape=\"paperTape\",t.ManualOperation=\"manualOperation\",t.Delay=\"delay\",t.StoredData=\"storedData\",t.Display=\"display\",t.Merge=\"merge\",t.Connector=\"connector\",t.Or=\"or\",t.SummingJunction=\"summingJunction\",t.Container=\"container\",t.VerticalContainer=\"verticalContainer\",t.HorizontalContainer=\"horizontalContainer\",t.Card=\"card\",t.CardWithImageOnLeft=\"cardWithImageOnLeft\",t.CardWithImageOnTop=\"cardWithImageOnTop\",t.CardWithImageOnRight=\"cardWithImageOnRight\",t}();e.ShapeTypes=o,function(t){t[t.text=0]=\"text\",t[t.rectangle=1]=\"rectangle\",t[t.ellipse=2]=\"ellipse\",t[t.cross=3]=\"cross\",t[t.triangle=4]=\"triangle\",t[t.diamond=5]=\"diamond\",t[t.heart=6]=\"heart\",t[t.pentagon=7]=\"pentagon\",t[t.hexagon=8]=\"hexagon\",t[t.octagon=9]=\"octagon\",t[t.star=10]=\"star\",t[t.arrowLeft=11]=\"arrowLeft\",t[t.arrowTop=12]=\"arrowTop\",t[t.arrowRight=13]=\"arrowRight\",t[t.arrowBottom=14]=\"arrowBottom\",t[t.arrowNorthSouth=15]=\"arrowNorthSouth\",t[t.arrowEastWest=16]=\"arrowEastWest\",t[t.process=17]=\"process\",t[t.decision=18]=\"decision\",t[t.terminator=19]=\"terminator\",t[t.predefinedProcess=20]=\"predefinedProcess\",t[t.document=21]=\"document\",t[t.multipleDocuments=22]=\"multipleDocuments\",t[t.manualInput=23]=\"manualInput\",t[t.preparation=24]=\"preparation\",t[t.data=25]=\"data\",t[t.database=26]=\"database\",t[t.hardDisk=27]=\"hardDisk\",t[t.internalStorage=28]=\"internalStorage\",t[t.paperTape=29]=\"paperTape\",t[t.manualOperation=30]=\"manualOperation\",t[t.delay=31]=\"delay\",t[t.storedData=32]=\"storedData\",t[t.display=33]=\"display\",t[t.merge=34]=\"merge\",t[t.connector=35]=\"connector\",t[t.or=36]=\"or\",t[t.summingJunction=37]=\"summingJunction\",t[t.verticalContainer=38]=\"verticalContainer\",t[t.horizontalContainer=39]=\"horizontalContainer\",t[t.cardWithImageOnLeft=40]=\"cardWithImageOnLeft\",t[t.cardWithImageOnTop=41]=\"cardWithImageOnTop\",t[t.cardWithImageOnRight=42]=\"cardWithImageOnRight\"}(e.ShapeType||(e.ShapeType={}))},1552:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EmptyStyle=e.StrokeStyle=e.TextAlignment=e.TextStyle=e.Style=e.DEFAULT_STROKE_DASHARRAY=e.DEFAULT_STROKE_WIDTH=e.StyleBase=void 0;var r=n(13),s=n(8396),a=n(9291),c=function(){function t(){this.createDefaultProperties()}return t.prototype.clone=function(){var t=this,e=this.createInstance();return this.forEach((function(n){e[n]=t[n]})),e},t.prototype.forEach=function(t){for(var e in this)Object.prototype.hasOwnProperty.call(this,e)&&t(e)},Object.defineProperty(t.prototype,\"strokeWidthPx\",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"strokeWidth\",{get:function(){return a.UnitConverter.pixelsToTwips(this.strokeWidthPx)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"strokeOffset\",{get:function(){return.5},enumerable:!1,configurable:!0}),t.prototype.toHash=function(){var t=this.toObject();return t?Object.keys(t).map((function(e){return e+\"|\"+t[e]})).join(\"\"):\"\"},t.prototype.toObject=function(){var t=this,e={},n=!1,o=this.getDefaultInstance();return this.forEach((function(i){t[i]!==o[i]&&(e[i]=t[i],n=!0)})),n?e:null},t.prototype.fromObject=function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var n=s.isColorProperty(e)?r.ColorUtils.stringToHash(t[e]):t[e];this[e]=n}},t}();e.StyleBase=c,e.DEFAULT_STROKE_WIDTH=2,e.DEFAULT_STROKE_DASHARRAY=\"\";var u=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i(n,t),n.prototype.createInstance=function(){return new n},n.prototype.createDefaultProperties=function(){this.fill=\"#ffffff\",this.stroke=\"#000000\",this[\"stroke-width\"]=e.DEFAULT_STROKE_WIDTH.toString(),this[\"stroke-dasharray\"]=e.DEFAULT_STROKE_DASHARRAY},n.prototype.getDefaultInstance=function(){return n.defaultInstance},n.prototype.isDefaultStrokeDashArray=function(){return this[\"stroke-dasharray\"]===e.DEFAULT_STROKE_DASHARRAY},n.prototype.resetStrokeDashArray=function(){this[\"stroke-dasharray\"]=e.DEFAULT_STROKE_DASHARRAY},Object.defineProperty(n.prototype,\"strokeWidthPx\",{get:function(){return parseInt(this[\"stroke-width\"])},enumerable:!1,configurable:!0}),n.defaultInstance=new n,n}(c);e.Style=u;var h,p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createInstance=function(){return new e},e.prototype.createDefaultProperties=function(){this.fill=\"#000000\",this[\"font-family\"]=\"Arial\",this[\"font-size\"]=\"10pt\",this[\"font-weight\"]=\"\",this[\"font-style\"]=\"\",this[\"text-decoration\"]=\"\",this[\"text-anchor\"]=\"middle\"},e.prototype.getDefaultInstance=function(){return e.defaultInstance},e.prototype.getAlignment=function(){switch(this[\"text-anchor\"]){case\"left\":return h.Left;case\"right\":return h.Right;default:return h.Center}},e.defaultInstance=new e,e}(c);e.TextStyle=p,function(t){t[t.Left=0]=\"Left\",t[t.Right=1]=\"Right\",t[t.Center=2]=\"Center\"}(h=e.TextAlignment||(e.TextAlignment={}));var l=function(t){function e(e,n){var o=t.call(this)||this;return o._strokeWidthPx=e,o._strokeOffset=n,o}return i(e,t),e.prototype.createInstance=function(){return new e},e.prototype.createDefaultProperties=function(){},e.prototype.getDefaultInstance=function(){return p.defaultInstance},Object.defineProperty(e.prototype,\"strokeWidthPx\",{get:function(){return this._strokeWidthPx||0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"strokeOffset\",{get:function(){return this._strokeOffset||0},enumerable:!1,configurable:!0}),e.default1pxInstance=new e(1,.5),e.default1pxNegativeOffsetInstance=new e(1,-.5),e.default2pxInstance=new e(2),e}(u);e.StrokeStyle=l;var d=function(t){function e(e){var n=t.call(this)||this;return e&&Object.keys(e).forEach((function(t){return n[t]=e[t]})),n}return i(e,t),e.prototype.createInstance=function(){return new e},e.prototype.createDefaultProperties=function(){},e.prototype.getDefaultInstance=function(){return p.defaultInstance},e.defaultInstance=new e,e}(u);e.EmptyStyle=d},6214:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ReloadContentParameters=void 0;var n=function(){function t(){this.isEmpty=!0}return t.prototype.add=function(t,e,n){void 0!==t&&(void 0===this._dataKeys&&(this._dataKeys=[]),Array.isArray(t)?this._dataKeys=this._dataKeys.concat(t):this._dataKeys.push(t)),this._getData=this._getData||e,this._layoutParameters=this._layoutParameters||n,this.isEmpty=!1},t.prototype.clear=function(){this.isEmpty=!0,this._dataKeys=void 0,this._getData=void 0,this._layoutParameters=void 0},Object.defineProperty(t.prototype,\"empty\",{get:function(){return this.isEmpty},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dataKeys\",{get:function(){return this._dataKeys},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"getData\",{get:function(){return this._getData},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"layoutParameters\",{get:function(){return this._layoutParameters},enumerable:!1,configurable:!0}),t}();e.ReloadContentParameters=n},6557:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.AutoScrollController=void 0;var o=n(1114),i=n(6907),r=n(6353),s=n(8675),a=function(){function t(t,e,n,o){this.scroll=t,this.svgElement=e,this.view=n,this.dom=o,this.leftButtonPressed=!1,this.scrollDragging=!1,this.scrollTimer=-1,this.scrollBarWidth=i.DomUtils.getVerticalScrollBarWidth()}return t.prototype.onMouseMove=function(t,e){this.clearScrollTimer(),s.EventUtils.isLeftButtonPressed(t)||(this.leftButtonPressed=!1),this.canAutoScroll()&&this.changeScrollPosition(t,e,!1)},t.prototype.onMouseDown=function(t){this.leftButtonPressed=!!s.EventUtils.isLeftButtonPressed(t)},t.prototype.onMouseUp=function(t){this.clearScrollTimer(),this.leftButtonPressed=!1},t.prototype.onMouseEnter=function(t){var e=this;s.EventUtils.isLeftButtonPressed(t)&&setTimeout((function(){e.leftButtonPressed=!0}),500)},t.prototype.onDragScrollStart=function(){this.scrollDragging=!0},t.prototype.onDragScrollEnd=function(){this.scrollDragging=!1},t.prototype.canAutoScroll=function(){return this.leftButtonPressed&&!this.scrollDragging},t.prototype.changeScrollPosition=function(t,e,n){var o=this,s=!1;if(!this.view.isAutoScrollLocked()){var a=this.scroll.getScrollContainer(),c=t.pageX-i.DomUtils.getAbsolutePositionX(a),u=t.pageY-i.DomUtils.getAbsolutePositionY(a),h=this.scroll.getSize(),p=new r.Size(parseFloat(this.svgElement.style.width),parseFloat(this.svgElement.style.height)),l=h.width;h.width<p.width&&(l-=this.scrollBarWidth);var d=h.height;h.height<p.height&&(d-=this.scrollBarWidth),c<=40?(this.dom.changeByFunc(null,(function(){o.view.isAutoScrollLocked()||o.scroll.offsetScroll(-o.getScrollingOffset(c),0)})),s=!0):l-40<=c&&(this.dom.changeByFunc(null,(function(){o.view.isAutoScrollLocked()||o.scroll.offsetScroll(o.getScrollingOffset(l-c),0)})),s=!0),u<=40?(this.dom.changeByFunc(null,(function(){o.view.isAutoScrollLocked()||o.scroll.offsetScroll(0,-o.getScrollingOffset(u))})),s=!0):d-40<=u&&(this.dom.changeByFunc(null,(function(){o.view.isAutoScrollLocked()||o.scroll.offsetScroll(0,o.getScrollingOffset(d-u))})),s=!0)}(s||this.view.isAutoScrollLocked())&&(this.scrollTimer=window.setTimeout((function(){return o.changeScrollPosition(t,e,s)}),50)),n&&e()},t.prototype.clearScrollTimer=function(){this.scrollTimer>-1&&(window.clearTimeout(this.scrollTimer),this.scrollTimer=-1)},t.prototype.getScrollingOffset=function(t){var e=Math.pow((40-t)/5,2);return Math.round(Math.min(e,5))},t.createMainElement=function(t){var e=document.createElement(\"div\");return e.setAttribute(\"class\",\"dxdi-control\"),t.appendChild(e),e},t.createSvgElement=function(t,e){void 0===e&&(e=!1);var n=document.createElementNS(o.svgNS,\"svg\");return n.className.baseVal=\"dxdi-canvas\"+(e?\" export\":\"\"),t.appendChild(n),n},t}();e.AutoScrollController=a},3872:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),r=this&&this.__awaiter||function(t,e,n,o){return new(n||(n=Promise))((function(i,r){function s(t){try{c(o.next(t))}catch(t){r(t)}}function a(t){try{c(o.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((o=o.apply(t,e||[])).next())}))},s=this&&this.__generator||function(t,e){var n,o,i,r,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(r){return function(a){return function(r){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,o=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){s.label=r[1];break}if(6===r[0]&&s.label<i[1]){s.label=i[1],i=r;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(r);break}i[2]&&s.ops.pop(),s.trys.pop();continue}r=e.call(t,s)}catch(t){r=[6,t],o=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,a])}}};Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasExportManager=void 0;var a=n(9291),c=n(9279),u=n(3500),h=n(7716),p=n(1114),l=n(6078),d=n(13),f=function(t){function e(e,n,o){var i=t.call(this,1,new l.ExportDOMManipulator(n),o)||this;return i.itemsContainer=e,i}return i(e,t),e.prototype.getSvgImage=function(t,e,n,o){var i=p.RenderHelper.createSvgElement(void 0,!0),r=t.clone().applyConverter(a.UnitConverter.twipsToPixelsF).clone().applyConverter(Math.ceil);u.RenderUtils.updateSvgElementSize(i,r.width,r.height,!0),i.style.backgroundColor=d.ColorUtils.colorToHash(e),this.createTextFloodFilter(this.instanceId,void 0,i,e);var s=!n&&!c.Browser.IE&&this.getExportCssRules();if(s){var h=document.createElementNS(p.svgNS,\"style\");h.innerHTML=s,i.appendChild(h)}if(o){var l=document.createElementNS(p.svgNS,\"rect\");l.setAttributeNS(null,\"x\",\"0\"),l.setAttributeNS(null,\"y\",\"0\"),l.setAttributeNS(null,\"height\",r.height.toString()),l.setAttributeNS(null,\"width\",r.width.toString()),l.setAttributeNS(null,\"fill\",i.style.backgroundColor),i.appendChild(l)}for(var f=0;f<this.itemsContainer.childNodes.length;f++){var y=this.itemsContainer.childNodes[f].cloneNode(!0);s||this.inlineStyle(y,this.itemsContainer.childNodes[f]),i.appendChild(y)}return i},e.prototype.getSvgImageUrl=function(t,e,n){var o=this.getSvgImage(t,e,n,!1);return this.getSvgBase64String(o)},e.prototype.getSvgString=function(t){return(new XMLSerializer).serializeToString(t)},e.prototype.getSvgBase64String=function(t){var n=this.getSvgString(t);return e.base64Start+this.getBase64EncodeUnicode(n)},e.prototype.getBase64EncodeUnicode=function(t){return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(function(t,e){return String.fromCharCode(parseInt(\"0x\"+e,16))})))},e.prototype.getExportCssRules=function(){for(var t=0;t<document.styleSheets.length;t++){var e=this.getRules(document.styleSheets[t]);if(e){for(var n=\"\",o=0;o<e.length;o++){var i=e[o],r=this.isCSSStyleRule(i)?i.selectorText:null;r&&this.checkSelector(r)&&(n+=i.cssText+\"\\n\")}if(n.length>0)return\"\\n\"+n}}},e.prototype.checkSelector=function(t){for(var n=0;n<e.exportStyleRules.length;n++)if(0===t.indexOf(e.exportStyleRules[n]))return!0;return!1},e.prototype.getRules=function(t){try{return this.isCSSStyleSheet(t)?t.rules||t.cssRules:null}catch(t){}},e.prototype.isCSSStyleSheet=function(t){return void 0!==t.rules},e.prototype.isCSSStyleRule=function(t){return void 0!==t.selectorText},e.prototype.inlineStyle=function(t,n){for(var o=0;o<t.childNodes.length;o++){var i=t.childNodes[o];if(i.tagName)if(\"g\"===i.tagName)this.inlineStyle(i,n.childNodes[o]);else if(i.style){var r=window.getComputedStyle(n.childNodes[o]);if(void 0!==r)for(var s=0;s<e.exportStyleAttributes.length;s++){var a=e.exportStyleAttributes[s];i.style.setProperty(a,r.getPropertyValue(a))}this.inlineStyle(i,n.childNodes[o])}}},e.prototype.exportSvgImage=function(t,e,n){n(this.getSvgImageUrl(t,e,!0))},e.prototype.exportBinaryImage=function(t,e,n,o,i){var r=this.getAbsoluteSize(t).clone().applyConverter(Math.ceil),s=document.createElement(\"canvas\");s.width=r.width,s.height=r.height;var a=s.getContext(\"2d\");if(a.fillStyle=d.ColorUtils.colorToHash(e),a.fillRect(0,0,r.width,r.height),(i||c.Browser.IE)&&\"object\"==typeof canvg)this.exportBinaryImageCanvgAsync(t,e,s,a,n).then((function(t){return o(t)}));else if(c.Browser.IE&&\"function\"==typeof canvg)this.exportBinaryImageCanvgOld(t,e,s,a,n,o);else{var u=new Image;u.width=r.width,u.height=r.height,u.setAttribute(\"crossOrigin\",\"anonymous\"),u.onload=function(){a.drawImage(u,0,0),o(s.toDataURL(n,1))},u.src=this.getSvgImageUrl(t,e,!0)}},e.prototype.exportBinaryImageCanvgOld=function(t,e,n,o,i,r){var s=this.getSvgImage(t,e,!0,!1),a=this.getSvgString(s);o.drawSvg(a,0,0,null,null,{renderCallback:function(){r(n.toDataURL(i,1))}})},e.prototype.exportBinaryImageCanvgAsync=function(t,e,n,o,i){return r(this,void 0,void 0,(function(){var r,a;return s(this,(function(s){switch(s.label){case 0:return r=this.getSvgImage(t,e,!0,!0),a=this.getSvgString(r),[4,canvg.Canvg.fromString(o,a).render()];case 1:return s.sent(),[2,n.toDataURL(i,1)]}}))}))},e.prototype.exportPngImage=function(t,e,n,o){this.exportBinaryImage(t,e,\"image/png\",n,o)},e.prototype.exportJpgImage=function(t,e,n,o){this.exportBinaryImage(t,e,\"image/jpeg\",n,o)},e.prototype.notifyModelChanged=function(t){},e.prototype.notifyPageColorChanged=function(t){},e.prototype.notifyPageSizeChanged=function(t,e){},e.base64Start=\"data:image/svg+xml;base64,\",e.exportStyleRules=[\".dxdi-canvas .shape \",\".dxdi-canvas .connector \",\".dxdi-canvas text\",\".dxdi-canvas.export\"],e.exportStyleAttributes=[\"fill\",\"stroke\",\"stroke-width\",\"stroke-linejoin\",\"font-family\",\"font-size\",\"font-weight\",\"font-style\",\"text-decoration\",\"text-anchor\"],e}(h.CanvasManagerBase);e.CanvasExportManager=f},8693:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasItemsManager=e.CONNECTOR_CAN_MOVE=e.NOT_VALID_CSSCLASS=void 0;var r=n(2004),s=n(6031),a=n(5329),c=n(3500),u=n(5503),h=n(7959),p=n(6907),l=n(916),d=n(4867);e.NOT_VALID_CSSCLASS=\"not-valid\",e.CONNECTOR_CAN_MOVE=\"can-move\";var f=function(t){function n(e,n,o,i){var r=t.call(this,n,o,i)||this;return r.itemSelectorGroupContainers={},r.itemSelectorElements={},r.itemGroupContainers={},r.itemElements={},r.itemChildElements={},r.primitives={},r.selectorPrimitives={},r.selectedItems={},r.initializeContainerElements(e),r}return i(n,t),n.prototype.initializeContainerElements=function(t){this.itemSelectorsContainer=this.createAndChangePrimitiveElement(new a.GroupPrimitive([],null),t),this.itemsContainer=this.createAndChangePrimitiveElement(new a.GroupPrimitive([],null),t)},n.prototype.clear=function(){this.primitives={},this.selectorPrimitives={},c.RenderUtils.removeContent(this.itemSelectorsContainer),c.RenderUtils.removeContent(this.itemsContainer),this.itemSelectorGroupContainers={},this.itemSelectorElements={},this.itemGroupContainers={},this.itemElements={},this.itemChildElements={},this.selectedItems={}},n.prototype.applyChange=function(t){var e=t.item;return!!this.getItemParent(e.zIndex,e.container&&e.container.key)&&(e instanceof u.Shape?this.applyShapeChange(e,t.type,t.isValid):e instanceof h.Connector&&this.applyConnectorChange(e,t.type,t.isValid),!0)},n.prototype.setPointerEventsNone=function(t,e){var n=t.style;void 0!==n&&void 0!==n.pointerEvents&&(n.pointerEvents=e?\"none\":\"\");for(var o=t.childNodes,i=0;i<o.length;i++)this.setPointerEventsNone(o[i],e)},n.prototype.notifyDragStart=function(t){var e=this;t.forEach((function(t){e.itemElements[t]&&e.setPointerEventsNone(e.itemElements[t],!0),e.itemChildElements[t]&&e.setPointerEventsNone(e.itemChildElements[t],!0),e.itemSelectorElements[t]&&e.setPointerEventsNone(e.itemSelectorElements[t],!0)}))},n.prototype.notifyDragEnd=function(t){var e=this;t.forEach((function(t){e.itemElements[t]&&e.setPointerEventsNone(e.itemElements[t],!1),e.itemChildElements[t]&&e.setPointerEventsNone(e.itemChildElements[t],!1),e.itemSelectorElements[t]&&e.setPointerEventsNone(e.itemSelectorElements[t],!1)}))},n.prototype.notifyDragScrollStart=function(){},n.prototype.notifyDragScrollEnd=function(){},n.prototype.notifyTextInputStart=function(t,e,n,o){var i=this.itemElements[t.key];p.DomUtils.addClassName(i,\"text-input\")},n.prototype.notifyTextInputEnd=function(t,e){var n=this.itemElements[t.key];p.DomUtils.removeClassName(n,\"text-input\")},n.prototype.notifyTextInputPermissionsCheck=function(t,n){var o=this.itemElements[t.key];n?p.DomUtils.removeClassName(o,e.NOT_VALID_CSSCLASS):p.DomUtils.addClassName(o,e.NOT_VALID_CSSCLASS)},n.prototype.notifyActualZoomChanged=function(t){var e=\"scale(\"+t+\")\";this.dom.changeByFunc(this.itemsContainer,(function(t){return t.setAttribute(\"transform\",e)})),this.dom.changeByFunc(this.itemSelectorsContainer,(function(t){return t.setAttribute(\"transform\",e)})),this.actualZoom=t},n.prototype.notifyViewAdjusted=function(t){},n.prototype.invalidatePrimitives=function(t){this.primitives[t.key]&&(this.primitives[t.key].forEach((function(t){t.dispose()})),delete this.primitives[t.key]),this.selectorPrimitives[t.key]&&(this.selectorPrimitives[t.key].forEach((function(t){t.dispose()})),delete this.selectorPrimitives[t.key])},n.prototype.getPrimitives=function(t,e){return this.primitives[t.key]||(this.primitives[t.key]=t.createPrimitives(e)),this.primitives[t.key]},n.prototype.getSelectorPrimitives=function(t){return this.selectorPrimitives[t.key]||(this.selectorPrimitives[t.key]=t.createSelectorPrimitives()),this.selectorPrimitives[t.key]},n.prototype.getShapeSelectorClassName=function(t){var e=\"shape\";return t.enableChildren&&(e+=\" container\"),t.isLocked&&(e+=\" locked\"),e},n.prototype.getShapeClassName=function(t,n){var o=this.getShapeSelectorClassName(t);return n?o:o+\" \"+e.NOT_VALID_CSSCLASS},n.prototype.applyShapeChange=function(t,e,n){var o=t.key,i=t.container&&t.container.key,a=this.getItemSelectorGroupContainer(t.zIndex,i),c=this.getItemGroupContainer(t.zIndex,i),u=this.getShapeClassName(t,n);switch(e){case r.ItemChangeType.Create:this.itemSelectorElements[o]=this.createItemElements(o,this.getSelectorPrimitives(t),a,this.getShapeSelectorClassName(t),s.MouseEventElementType.Shape),this.itemElements[o]=this.createItemElements(o,this.getPrimitives(t,this.instanceId),c,u,s.MouseEventElementType.Shape),t.enableChildren&&(this.itemChildElements[o]=this.createItemElements(o,[],c,\"container-children\",s.MouseEventElementType.Undefined),this.changeItemChildrenVisibility(this.itemChildElements[o],t.expanded));break;case r.ItemChangeType.Remove:this.removeItemCustomContent(this.itemSelectorElements[o],this.getSelectorPrimitives(t)),this.removeItemCustomContent(this.itemElements[o],this.getPrimitives(t,this.instanceId)),this.invalidatePrimitives(t),this.removeItemElements(this.itemSelectorElements[o]),delete this.itemSelectorElements[o],this.removeItemElements(this.itemElements[o]),delete this.itemElements[o],this.itemChildElements[o]&&(this.removeItemElements(this.itemChildElements[o]),delete this.itemChildElements[o],delete this.itemGroupContainers[o],delete this.itemSelectorGroupContainers[o]);break;case r.ItemChangeType.UpdateStructure:case r.ItemChangeType.UpdateProperties:case r.ItemChangeType.Update:e!==r.ItemChangeType.Update&&(e===r.ItemChangeType.UpdateStructure&&(this.removeItemCustomContent(this.itemSelectorElements[o],this.getSelectorPrimitives(t)),this.removeItemCustomContent(this.itemElements[o],this.getPrimitives(t,this.instanceId))),this.invalidatePrimitives(t)),this.changeItemElements(this.getSelectorPrimitives(t),this.itemSelectorElements[o],e===r.ItemChangeType.UpdateStructure),this.changeItemElements(this.getPrimitives(t,this.instanceId),this.itemElements[o],e===r.ItemChangeType.UpdateStructure),this.changeItemClassName(this.itemElements[o],u),this.itemChildElements[o]&&this.changeItemChildrenVisibility(this.itemChildElements[o],t.expanded),a!==(this.itemSelectorElements[o]&&this.itemSelectorElements[o].parentNode)&&this.moveItemElements(a,this.itemSelectorElements[o]),c!==(this.itemElements[o]&&this.itemElements[o].parentNode)&&this.moveItemElements(c,this.itemElements[o]),this.itemChildElements[o]&&c!==this.itemChildElements[o].parentNode&&this.moveItemElements(c,this.itemChildElements[o]);break;case r.ItemChangeType.UpdateClassName:this.changeItemClassName(this.itemElements[o],u)}},n.prototype.getConnectorSelectorClassName=function(t){var n=\"connector\";return d.ModelUtils.canMoveConnector(this.selectedItems,t)?n+\" \"+e.CONNECTOR_CAN_MOVE:n},n.prototype.getConnectorClassName=function(t,n){var o=this.getConnectorSelectorClassName(t);return n?o:o+\" \"+e.NOT_VALID_CSSCLASS},n.prototype.applyConnectorChange=function(t,e,n){var o=t.key,i=t.container&&t.container.key,a=this.getItemSelectorGroupContainer(t.zIndex,i),c=this.getItemGroupContainer(t.zIndex,i),u=this.getConnectorClassName(t,n);switch(e){case r.ItemChangeType.Create:this.itemSelectorElements[o]=this.createItemElements(o,this.getSelectorPrimitives(t),a,this.getConnectorSelectorClassName(t),s.MouseEventElementType.Connector),this.itemElements[o]=this.createItemElements(o,this.getPrimitives(t,this.instanceId),c,u,s.MouseEventElementType.Connector);break;case r.ItemChangeType.Remove:this.removeItemCustomContent(this.itemSelectorElements[o],this.getSelectorPrimitives(t)),this.removeItemCustomContent(this.itemElements[o],this.getPrimitives(t,this.instanceId)),this.invalidatePrimitives(t),this.removeItemElements(this.itemSelectorElements[o]),delete this.itemSelectorElements[o],this.removeItemElements(this.itemElements[o]),delete this.itemElements[o];break;case r.ItemChangeType.UpdateStructure:case r.ItemChangeType.UpdateProperties:case r.ItemChangeType.Update:e!==r.ItemChangeType.Update&&(e===r.ItemChangeType.UpdateStructure&&(this.removeItemCustomContent(this.itemSelectorElements[o],this.getSelectorPrimitives(t)),this.removeItemCustomContent(this.itemElements[o],this.getPrimitives(t,this.instanceId))),this.invalidatePrimitives(t)),this.changeItemElements(this.getSelectorPrimitives(t),this.itemSelectorElements[o],e===r.ItemChangeType.UpdateStructure),this.changeItemClassName(this.itemSelectorElements[o],this.getConnectorSelectorClassName(t)),this.changeItemElements(this.getPrimitives(t,this.instanceId),this.itemElements[o],e===r.ItemChangeType.UpdateStructure),this.changeItemClassName(this.itemElements[o],u),a!==(this.itemSelectorElements[o]&&this.itemSelectorElements[o].parentNode)&&this.moveItemElements(a,this.itemSelectorElements[o]),c!==(this.itemElements[o]&&this.itemElements[o].parentNode)&&this.moveItemElements(c,this.itemElements[o]);break;case r.ItemChangeType.UpdateClassName:this.changeItemClassName(this.itemSelectorElements[o],this.getConnectorSelectorClassName(t)),this.changeItemClassName(this.itemElements[o],u)}},n.prototype.createItemElements=function(t,e,n,o,i){var r=this.createAndChangePrimitiveElement(new a.GroupPrimitive([],o,void 0,void 0,(function(e){return c.RenderUtils.setElementEventData(e,i,t)})),n);return this.createAndChangePrimitivesElements(e,r),r},n.prototype.changeItemElements=function(t,e,n){n||t.length!==e.childNodes.length?(c.RenderUtils.removeContent(e),this.createAndChangePrimitivesElements(t,e)):this.dom.changeChildrenByPrimitives(t,e)},n.prototype.changeItemClassName=function(t,e){e&&t&&this.changePrimitiveElement(new a.GroupPrimitive([],e),t)},n.prototype.removeItemElements=function(t){t&&t.parentNode&&t.parentNode.removeChild(t)},n.prototype.removeItemCustomContent=function(t,e){t&&e&&e.length===t.childNodes.length&&e.forEach((function(e,n){e.destroyCustomContent(t.childNodes[n])}))},n.prototype.moveItemElements=function(t,e,n){e&&t&&(n?t.insertBefore(e,n):t.appendChild(e))},n.prototype.changeItemChildrenVisibility=function(t,e){t.style.display=e?\"\":\"none\"},n.prototype.getItemGroupContainerKey=function(t,e){return void 0!==e?t+\"_\"+e:t.toString()},n.prototype.getItemGroupContainer=function(t,e){var n=void 0!==e?this.getItemParent(t,e):this.itemsContainer,o=e||\"Main\";if(void 0===this.itemGroupContainers[o]||void 0===this.itemGroupContainers[o][t]){void 0===this.itemGroupContainers[o]&&(this.itemGroupContainers[o]=[]);var i=Object.keys(this.itemGroupContainers[o]).map((function(t){return+t})).sort().filter((function(e){return e>t}))[0];this.itemGroupContainers[o][t]=this.createAndChangePrimitiveElement(new a.GroupPrimitive([],null,t),n,this.itemGroupContainers[o][i])}return this.itemGroupContainers[o][t]},n.prototype.getItemSelectorGroupContainer=function(t,e){var n=void 0!==e?this.getItemSelectorParent(t,e):this.itemSelectorsContainer,o=e||\"Main\";if(void 0===this.itemSelectorGroupContainers[o]||void 0===this.itemSelectorGroupContainers[o][t]){void 0===this.itemSelectorGroupContainers[o]&&(this.itemSelectorGroupContainers[o]=[]);var i=Object.keys(this.itemSelectorGroupContainers[o]).map((function(t){return+t})).sort().filter((function(e){return e>t}))[0];this.itemSelectorGroupContainers[o][t]=this.createAndChangePrimitiveElement(new a.GroupPrimitive([],null,t),n,this.itemSelectorGroupContainers[o][i])}return this.itemSelectorGroupContainers[o][t]},n.prototype.getItemParent=function(t,e){return void 0!==e?this.itemChildElements[e]:this.getItemGroupContainer(t)},n.prototype.getItemSelectorParent=function(t,e){return void 0!==e?this.itemChildElements[e]:this.getItemSelectorGroupContainer(t)},n.prototype.notifySelectionChanged=function(t){var e=this,n=d.ModelUtils.createSelectedItems(t),o=[];this.populateItems(o,n,this.selectedItems),this.populateItems(o,this.selectedItems,n),this.selectedItems=n,o.forEach((function(t){t instanceof h.Connector&&e.applyOrPostponeChanges([new r.ItemChange(t,r.ItemChangeType.UpdateClassName,!0)])}))},n.prototype.populateItems=function(t,e,n){Object.keys(e).forEach((function(o){n[o]||t.push(e[o])}))},n}(l.CanvasManager);e.CanvasItemsManager=f},916:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasManager=void 0;var r=n(2004),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.pendingChanges={},e.pendingRemoveChanges={},e.updatesLock=0,e}return i(e,t),e.prototype.beginUpdate=function(){this.updatesLock++},e.prototype.endUpdate=function(){this.updatesLock--,0===this.updatesLock&&this.applyPendingChanges()},e.prototype.getPendingChanges=function(){var t=this;return Object.keys(this.pendingChanges).map((function(e){return t.pendingChanges[e]}))},e.prototype.getPendingRemoveChanges=function(){var t=this;return Object.keys(this.pendingRemoveChanges).map((function(e){return t.pendingRemoveChanges[e]}))},e.prototype.applyPendingChanges=function(){var t=this.getPendingRemoveChanges();t.length&&(this.applyChangesCore(t),this.pendingRemoveChanges={});var e=this.getPendingChanges();e.length&&(this.applyChangesCore(e),this.pendingChanges={})},e.prototype.applyChangesCore=function(t){var e=this,n=[];t.forEach((function(t){e.applyChange(t)||n.push(t)})),n.length&&n.length!==t.length&&this.applyChangesCore(n)},e.prototype.postponeChanges=function(t){var e=this;t.forEach((function(t){if(t.type===r.ItemChangeType.Remove)e.pendingRemoveChanges[t.key]=t,delete e.pendingChanges[t.key];else if(e.pendingChanges[t.key])t.type===r.ItemChangeType.Create?e.pendingChanges[t.key]=t:t.type===r.ItemChangeType.UpdateStructure?e.pendingChanges[t.key].type===r.ItemChangeType.UpdateProperties&&(e.pendingChanges[t.key]=t):t.type===r.ItemChangeType.UpdateProperties?e.pendingChanges[t.key].type===r.ItemChangeType.Update&&(e.pendingChanges[t.key]=t):t.type===r.ItemChangeType.UpdateClassName&&e.pendingChanges[t.key].type===r.ItemChangeType.UpdateClassName&&(e.pendingChanges[t.key]=t);else{if(e.pendingRemoveChanges[t.key]&&t.type!==r.ItemChangeType.Create)throw new Error(\"Incorrect model changes sequence.\");e.pendingChanges[t.key]=t}}))},e.prototype.applyOrPostponeChanges=function(t){0===this.updatesLock?this.applyChangesCore(t):this.postponeChanges(t)},e.prototype.notifyModelChanged=function(t){this.applyOrPostponeChanges(t)},e.prototype.notifyPageColorChanged=function(t){},e.prototype.notifyPageSizeChanged=function(t,e){},e}(n(7716).CanvasManagerBase);e.CanvasManager=s},7716:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasManagerBase=e.PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX=void 0;var o=n(3360),i=n(9291);e.PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX=\"page-text-flood\";var r=function(){function t(t,e,n){this.elements={},this.instanceId=n,this.actualZoom=t,this.dom=e}return t.prototype.createAndChangePrimitivesElements=function(t,e){var n=this;t.forEach((function(t){n.createAndChangePrimitiveElement(t,e)}))},t.prototype.createPrimitiveElement=function(t,e,n){return this.dom.createElement(t,e,n)},t.prototype.createAndChangePrimitiveElement=function(t,e,n){var o=this.createPrimitiveElement(t,e,n);return this.dom.changeByPrimitive(o,t),o},t.prototype.changePrimitiveElement=function(t,e){this.dom.changeByPrimitive(e,t)},t.prototype.getOrCreateElement=function(t,e,n,o){var i=t&&this.elements[t]||(this.elements[t]=this.createPrimitiveElement(e,n,o));return this.changePrimitiveElement(e,i),i},t.prototype.createTextFloodFilter=function(t,n,i,r){this.getOrCreateElement(n,new o.TextFloodFilterPrimitive(e.PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX+t,r),i)},t.prototype.getAbsoluteSize=function(t){return t.clone().applyConverter(i.UnitConverter.twipsToPixelsF).clone().multiply(this.actualZoom,this.actualZoom)},t}();e.CanvasManagerBase=r},6043:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasPageManager=void 0;var r=n(1552),s=n(4716),a=n(7724),c=n(1932),u=n(4593),h=n(7716),p=n(6353),l=n(8900),d=n(3500),f=n(13),y=n(9291),g=function(t){function e(e,n,o,i){var r=t.call(this,n.zoomLevel,o,i)||this;return r.snapPoint=new l.Point(0,0),r.gridPatternId=d.RenderUtils.generateSvgElementId(\"gridPattern\"),r.pagesGridPatternId=d.RenderUtils.generateSvgElementId(\"pagesGridPattern\"),r.pagesGridClipId=d.RenderUtils.generateSvgElementId(\"pagesGridClip\"),r.pageColor=n.pageColor,r.modelSize=n.modelSize,r.simpleView=n.simpleView,r.gridSize=n.gridSize,r.gridVisible=n.gridVisible,r.pageSize=n.pageLandscape?new p.Size(n.pageSize.height,n.pageSize.width):n.pageSize,r.canvasViewOffset=new l.Point(0,0),r.initContainers(e),r}return i(e,t),e.prototype.initContainers=function(t){this.backgroundContainer=t},e.prototype.redraw=function(){this.redrawPage(this.pageColor),this.redrawGrid()},e.prototype.redrawPage=function(t){var e=new r.Style;e.fill=f.ColorUtils.colorToHash(t),this.getOrCreateElement(\"page-bg\",new s.RectanglePrimitive(0,0,\"100%\",\"100%\",e,\"page\"),this.backgroundContainer),this.createTextFloodFilter(this.instanceId,\"page-bg-textflood-filter\",this.backgroundContainer,t)},e.prototype.redrawGrid=function(){this.updateGridElements(),this.updatePagesGridElements()},e.prototype.getGridRectElement=function(t){return void 0===this.gridRectElement&&(this.gridRectElement=this.createPrimitiveElement(t,this.backgroundContainer)),this.gridRectElement},e.prototype.getGridPatternElement=function(t){return void 0===this.gridPatternElement&&(this.gridPatternElement=this.createPrimitiveElement(t,this.backgroundContainer)),this.gridPatternElement},e.prototype.updateGridElements=function(){var t=this,e=new s.RectanglePrimitive(\"0\",\"0\",\"100%\",\"100%\",null,\"grid\",null,(function(e){e.style.setProperty(\"fill\",d.RenderUtils.getUrlPathById(t.gridPatternId))})),n=this.getGridRectElement(e);if(this.gridVisible){n.style.display=\"\",this.changePrimitiveElement(e,n);for(var o=y.UnitConverter.twipsToPixelsF(this.gridSize)*this.actualZoom,i=[0,1,2,3,4].map((function(t){return Math.round(o*t)})),r=[new a.PathPrimitiveMoveToCommand(i[4].toString(),\"0\"),new a.PathPrimitiveLineToCommand(i[4].toString(),i[4].toString()),new a.PathPrimitiveLineToCommand(\"0\",i[4].toString())],u=[],h=1;h<=3;h++)u.push(new a.PathPrimitiveMoveToCommand(i[h].toString(),\"0\")),u.push(new a.PathPrimitiveLineToCommand(i[h].toString(),i[4].toString()));for(h=1;h<=3;h++)u.push(new a.PathPrimitiveMoveToCommand(\"0\",i[h].toString())),u.push(new a.PathPrimitiveLineToCommand(i[4].toString(),i[h].toString()));var p=4*o,f=this.simpleView?this.canvasViewOffset:l.Point.zero(),g=new c.PatternPrimitive(this.gridPatternId,[this.createGridPathPrimitive(r,\"grid-outer-line\"),this.createGridPathPrimitive(u,\"grid-inner-line\")],this.createGridPatternPrimitivePosition(f.x,this.snapPoint.x,p),this.createGridPatternPrimitivePosition(f.y,this.snapPoint.y,p),p.toString(),p.toString());this.changePrimitiveElement(g,this.getGridPatternElement(g))}else n.style.display=\"none\"},e.prototype.createGridPatternPrimitivePosition=function(t,e,n){return(((t+e*this.actualZoom)%n-n)%n).toString()},e.prototype.createGridPathPrimitive=function(t,e){return new a.PathPrimitive(t,r.StrokeStyle.default1pxNegativeOffsetInstance,e)},e.prototype.getPagesGridRectElement=function(t){return this.getOrCreateElement(\"grid-pages-rect\",t,this.backgroundContainer)},e.prototype.getPagesGridClipPathElement=function(t){return void 0===this.pagesGridClipPathElement&&(this.pagesGridClipPathElement=this.createPrimitiveElement(t,this.backgroundContainer)),this.pagesGridClipPathElement},e.prototype.getPagesGridPatternElement=function(t){return void 0===this.pagesGridPatternElement&&(this.pagesGridPatternElement=this.createPrimitiveElement(t,this.backgroundContainer)),this.pagesGridPatternElement},e.prototype.updatePagesGridElements=function(){var t=this,e=this.getAbsoluteSize(this.pageSize),n=new s.RectanglePrimitive(\"0\",\"0\",\"100%\",\"100%\",null,\"grid-page\",this.pagesGridClipId,(function(e){e.style.setProperty(\"fill\",d.RenderUtils.getUrlPathById(t.pagesGridPatternId)),e.style.setProperty(\"display\",t.simpleView?\"none\":\"\")}));if(this.getPagesGridRectElement(n),!this.simpleView){var o=this.modelSize.clone().multiply(this.actualZoom,this.actualZoom),i=[new a.PathPrimitiveMoveToCommand((e.width-1).toString(),\"0\"),new a.PathPrimitiveLineToCommand((e.width-1).toString(),(e.height-1).toString()),new a.PathPrimitiveLineToCommand(\"0\",(e.height-1).toString())],r=new c.PatternPrimitive(this.pagesGridPatternId,[new a.PathPrimitive(i,null,\"pages-grid-line\")],0,0,e.width.toString(),e.height.toString());this.changePrimitiveElement(r,this.getPagesGridPatternElement(r));var h=new u.ClipPathPrimitive(this.pagesGridClipId,[new s.RectanglePrimitive(0,0,(y.UnitConverter.twipsToPixelsF(o.width)-4).toString(),(y.UnitConverter.twipsToPixelsF(o.height)-4).toString())]);this.changePrimitiveElement(h,this.getPagesGridClipPathElement(h))}},e.prototype.notifyModelSizeChanged=function(t,e){this.modelSize=t.clone(),this.redraw()},e.prototype.notifyModelRectangleChanged=function(t){},e.prototype.notifySnapPointPositionChanged=function(t){this.snapPoint=t.clone().applyConverter(y.UnitConverter.twipsToPixelsF),this.redrawGrid()},e.prototype.notifyPageColorChanged=function(t){this.pageColor=t,this.redrawPage(this.pageColor)},e.prototype.notifyModelChanged=function(t){},e.prototype.notifyPageSizeChanged=function(t,e){this.pageSize=e?new p.Size(t.height,t.width):t.clone(),this.redraw()},e.prototype.notifyActualZoomChanged=function(t){this.actualZoom=t,this.redraw()},e.prototype.notifyViewAdjusted=function(t){this.canvasViewOffset.equals(t)||(this.canvasViewOffset=t,this.simpleView&&this.redraw())},e.prototype.notifyViewChanged=function(t){this.simpleView=t,this.redraw()},e.prototype.notifyGridChanged=function(t,e){this.gridVisible=t,this.gridSize=e,this.redraw()},e}(h.CanvasManagerBase);e.CanvasPageManager=g},4e3:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasSelectionManager=e.ACTIVE_SELECTION_CSSCLASS=e.SELECTION_ELEMENT_CLASSNAMES=void 0;var r=n(7716),s=n(5329),a=n(3500),c=n(6031),u=n(3742),h=n(8675),p=n(8900),l=n(371),d=n(5503),f=n(7959),y=n(4612),g=n(4716),m=n(7724),v=n(9416),P=n(418),C=n(1552),S=n(9291),x=n(4246),b=n(9279),I=n(6907),w=n(8693),_=n(916),T=n(5596),O=n(8679),M=n(4867),E=\"-1\";e.SELECTION_ELEMENT_CLASSNAMES={SELECTION_RECTANGLE:\"selection-rect\",CONNECTION_POINT:\"connection-point\",ACTIVE:\"active\",CONTAINER_TARGET:\"container-target\",CONNECTION_TARGET:\"connection-target\",EXTENSION_LINE:\"extension-line\",CONNECTION_MARK:\"connection-mark\",SELECTION_MARK:\"selection-mark\",LOCKED_SELECTION_MARK:\"locked-selection-mark\",ITEMS_SELECTION_RECT:\"items-selection-rect\",CONNECTOR_MULTI_SELECTION:\"connector-multi-selection\",CONNECTOR_SELECTION:\"connector-selection\",CONNECTOR_POINT_MARK:\"connector-point-mark\",CONNECTOR_SELECTION_MASK:\"connector-selection-mask\",CONNECTOR_SIDE_MARK:\"connector-side-mark\",ITEM_SELECTION_RECT:\"item-selection-rect\",ITEM_MULTI_SELECTION:\"item-multi-selection-rect\"},e.ACTIVE_SELECTION_CSSCLASS=\"dxdi-active-selection\";var D=function(t){function n(e,n,o,i,r){var s=t.call(this,n,i,r)||this;return s.readOnly=o,s.connectionPointElements=[],s.extensionLineElements=[],s.selectionMap={},s.parentContainer=e,s.initializeContainerElements(e),s}return i(n,t),n.prototype.initializeContainerElements=function(t){this.itemSelectionContainer=this.createAndChangePrimitiveElement(new s.GroupPrimitive([],null),t),this.visualizersContainer=this.createAndChangePrimitiveElement(new s.GroupPrimitive([],null),t),this.selectionMarksContainer=this.createAndChangePrimitiveElement(new s.GroupPrimitive([],null),t)},n.prototype.clear=function(){a.RenderUtils.removeContent(this.itemSelectionContainer),a.RenderUtils.removeContent(this.selectionMarksContainer),a.RenderUtils.removeContent(this.visualizersContainer),this.selectionRectElement=void 0,this.resizeInfoElement=void 0,this.connectionPointElements=[],this.connectionTargetElement=void 0,this.containerTargetElement=void 0,this.extensionLineElements=[],this.selectionMap={}},n.prototype.showSelectionRect=function(t){I.DomUtils.addClassName(this.parentContainer,e.ACTIVE_SELECTION_CSSCLASS);var n=new g.RectanglePrimitive(t.x,t.y,t.width,t.height,C.StrokeStyle.default1pxInstance,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_RECTANGLE),o=this.getSelectionRectElement(n);this.changePrimitiveElement(n,o)},n.prototype.hideSelectionRect=function(){I.DomUtils.removeClassName(this.parentContainer,e.ACTIVE_SELECTION_CSSCLASS),void 0!==this.selectionRectElement&&this.dom.changeByFunc(this.selectionRectElement,(function(t){return t.style.display=\"none\"}))},n.prototype.getSelectionRectElement=function(t){return void 0!==this.selectionRectElement?this.dom.changeByFunc(this.selectionRectElement,(function(t){return t.style.display=\"\"})):this.selectionRectElement=this.createPrimitiveElement(t,this.visualizersContainer),this.selectionRectElement},n.prototype.showResizeInfo=function(t,e){var o=new g.RectanglePrimitive(t.x,t.y,0,0,C.StrokeStyle.default1pxInstance),i=new s.GroupPrimitive([o,new v.TextPrimitive(t.x,t.y,e,x.TextOwner.Resize)],\"resize-info\"),r=this.getResizeInfoElement(i);this.changePrimitiveElement(i,r);var a=this.dom.measurer.measureTextLine(e,null,x.TextOwner.Resize).applyConverter(S.UnitConverter.pixelsToTwips);o.width=a.width+2*n.resizeInfoTextOffset,o.height=a.height+2*n.resizeInfoTextOffset,o.x=t.x-a.width/2-n.resizeInfoTextOffset,o.y=t.y-a.height/2-n.resizeInfoTextOffset,this.changePrimitiveElement(i,r)},n.prototype.hideResizeInfo=function(){void 0!==this.resizeInfoElement&&this.dom.changeByFunc(this.resizeInfoElement,(function(t){return t.style.display=\"none\"}))},n.prototype.getResizeInfoElement=function(t){return void 0!==this.resizeInfoElement?this.dom.changeByFunc(this.resizeInfoElement,(function(t){return t.style.display=\"\"})):this.resizeInfoElement=this.createPrimitiveElement(t,this.visualizersContainer),this.resizeInfoElement},n.prototype.getConnectionPointClassName=function(t,n){var o=e.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_POINT;return t&&(o+=\" \"+e.SELECTION_ELEMENT_CLASSNAMES.ACTIVE),n||(o+=\" \"+w.NOT_VALID_CSSCLASS),o},n.prototype.showConnectionPoint=function(t,o,i,r,s,a){this.showConnectionPointCore(2*t,o.x,o.y,n.connectionPointLargeSize,n.connectionPointLargeSize,c.MouseEventElementType.ShapeConnectionPoint,i,r,e.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_POINT+\" selector\"+(a?\"\":\" \"+w.NOT_VALID_CSSCLASS)),this.showConnectionPointCore(2*t+1,o.x,o.y,n.connectionPointSmallSize,n.connectionPointSmallSize,c.MouseEventElementType.ShapeConnectionPoint,i,r,this.getConnectionPointClassName(s,a))},n.prototype.showConnectionPointCore=function(t,e,n,o,i,r,s,c,u){var h=new P.EllipsePrimitive(e,n,o,i,null,u,(function(t){return a.RenderUtils.setElementEventData(t,r,s,c)})),p=this.getConnectionPointElement(h,t);this.changePrimitiveElement(h,p)},n.prototype.hideConnectionPoints=function(){for(var t=0;t<this.connectionPointElements.length;t++)this.dom.changeByFunc(this.connectionPointElements[t],(function(t){return t.style.display=\"none\"}))},n.prototype.getConnectionPointElement=function(t,e){var n=this.connectionPointElements[e];return void 0!==n?this.dom.changeByFunc(n,(function(t){return t.style.display=\"\"})):(n=this.createPrimitiveElement(t,this.visualizersContainer),this.connectionPointElements[e]=n),n},n.prototype.showContainerTarget=function(t,n){var o=new g.RectanglePrimitive(n.x,n.y,n.width,n.height,null,e.SELECTION_ELEMENT_CLASSNAMES.CONTAINER_TARGET),i=this.getContainerTargetElement(o);this.changePrimitiveElement(o,i)},n.prototype.hideContainerTarget=function(){this.containerTargetElement&&this.dom.changeByFunc(this.containerTargetElement,(function(t){return t.style.display=\"none\"}))},n.prototype.getContainerTargetElement=function(t){return void 0!==this.containerTargetElement?this.dom.changeByFunc(this.containerTargetElement,(function(t){return t.style.display=\"\"})):this.containerTargetElement=this.createPrimitiveElement(t,this.itemSelectionContainer),this.containerTargetElement},n.prototype.showConnectionTarget=function(t,n){var o=new g.RectanglePrimitive(n.x,n.y,n.width,n.height,null,e.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_TARGET),i=this.getConnectionTargetElement(o);this.changePrimitiveElement(o,i)},n.prototype.hideConnectionTarget=function(){this.connectionTargetElement&&this.dom.changeByFunc(this.connectionTargetElement,(function(t){return t.style.display=\"none\"}))},n.prototype.getConnectionTargetElement=function(t){return void 0!==this.connectionTargetElement?this.dom.changeByFunc(this.connectionTargetElement,(function(t){return t.style.display=\"\"})):this.connectionTargetElement=this.createPrimitiveElement(t,this.itemSelectionContainer),this.connectionTargetElement},n.prototype.showExtensionLine=function(t,o,i,a,c){var u=e.SELECTION_ELEMENT_CLASSNAMES.EXTENSION_LINE;o!==l.ExtensionLineType.VerticalCenterAfter&&o!==l.ExtensionLineType.VerticalCenterBefore&&o!==l.ExtensionLineType.HorizontalCenterAbove&&o!==l.ExtensionLineType.HorizontalCenterBelow||(u+=\" center\"),o!==l.ExtensionLineType.VerticalCenterToPageCenter&&o!==l.ExtensionLineType.HorizontalCenterToPageCenter&&o!==l.ExtensionLineType.LeftToPageCenter&&o!==l.ExtensionLineType.RightToPageCenter&&o!==l.ExtensionLineType.TopToPageCenter&&o!==l.ExtensionLineType.BottomToPageCenter||(u+=\" page\");var h=0,p=0,d=0,f=0,y=0,g=0,P=0,S=0;i.y===a.y?(h=i.x-n.extensionLineWidth,p=i.y-n.extensionLineEndingSize,d=i.x-n.extensionLineWidth,f=i.y+n.extensionLineEndingSize,y=a.x-n.extensionLineWidth,g=i.y-n.extensionLineEndingSize,P=a.x-n.extensionLineWidth,S=i.y+n.extensionLineEndingSize):i.x===a.x&&(h=i.x-n.extensionLineEndingSize,p=i.y-n.extensionLineWidth,d=i.x+n.extensionLineEndingSize,f=i.y-n.extensionLineWidth,y=i.x-n.extensionLineEndingSize,g=a.y-n.extensionLineWidth,P=i.x+n.extensionLineEndingSize,S=a.y-n.extensionLineWidth);var b=0,I=0;o!==l.ExtensionLineType.RightToRightAbove&&o!==l.ExtensionLineType.RightToRightBelow||(b-=n.extensionLineWidth),o!==l.ExtensionLineType.BottomToBottomAfter&&o!==l.ExtensionLineType.BottomToBottomBefore||(I-=n.extensionLineWidth);var w=[new m.PathPrimitive([m.PathPrimitiveMoveToCommand.fromPoint(i.clone().offset(b,I)),m.PathPrimitiveLineToCommand.fromPoint(a.clone().offset(b,I))],C.StrokeStyle.default1pxInstance,\"size-line\"),new m.PathPrimitive([new m.PathPrimitiveMoveToCommand(h,p),new m.PathPrimitiveLineToCommand(d,f),new m.PathPrimitiveMoveToCommand(y,g),new m.PathPrimitiveLineToCommand(P,S)],C.StrokeStyle.default1pxInstance),new v.TextPrimitive((a.x+i.x)/2,(a.y+i.y)/2,c,x.TextOwner.ExtensionLine,void 0,void 0,void 0,null,void 0,null,r.PAGE_BG_TEXTFLOOR_FILTER_IDPREFIX+this.instanceId)],_=new s.GroupPrimitive(w,u),T=this.getExtensionLineElement(_,t);this.changePrimitiveElement(_,T)},n.prototype.hideExtensionLines=function(){for(var t=0;t<this.extensionLineElements.length;t++)this.extensionLineElements[t]&&this.dom.changeByFunc(this.extensionLineElements[t],(function(t){return t.style.display=\"none\"}))},n.prototype.getExtensionLineElement=function(t,e){var n=this.extensionLineElements[e];return void 0!==n?this.dom.changeByFunc(n,(function(t){return t.style.display=\"\"})):(n=this.createPrimitiveElement(t,this.visualizersContainer),this.extensionLineElements[e]=n),n},n.prototype.getOrCreateShapeSelection=function(t,e){var n=this.selectionMap[t.key];return n||(n=new N(this.itemSelectionContainer,this.selectionMarksContainer,this.actualZoom,this.readOnly,this.dom,t.key,t.isLocked,t.rectangle,t.style,t.allowResizeHorizontally,t.allowResizeVertically,t.description.getParameterPoints(t)),this.selectionMap[t.key]=n),e&&(e[t.key]=!0),n},n.prototype.getOrCreateConnectorSelection=function(t,e){var n=this.selectionMap[t.key],o=t.getRenderPoints(!0),i=t.getRenderPoints(!1);return n||(n=new z(this.itemSelectionContainer,this.selectionMarksContainer,this.actualZoom,this.readOnly,this.dom,t.key,t.isLocked,t.rectangle,o,t.style,t.styleText,t.enableText,t.texts.map((function(e){var n=h.GeometryUtils.getPathPointByPosition(i,e.position);return{text:t.getText(e.position),point:n[0],pointIndex:n[1],pos:e.position}})).sort((function(t,e){return t.pos-e.pos})),t.points,t.properties.lineOption),this.selectionMap[t.key]=n),e&&(e[t.key]=!0),n},n.prototype.getOrCreateMultipleSelection=function(t){var e=this.selectionMap[E];return e||(e=new L(this.itemSelectionContainer,this.selectionMarksContainer,this.actualZoom,this.readOnly,this.dom),this.selectionMap[E]=e),t[E]=!0,e},n.prototype.getMultipleSelection=function(){return this.selectionMap[E]},n.prototype.updateShapeSelection=function(t,e){t.key in this.selectionMap&&(this.getOrCreateShapeSelection(t).onModelChanged(t.isLocked,t.rectangle,t.style,t.allowResizeHorizontally,t.allowResizeVertically,t.description.getParameterPoints(t)),e&&e.onModelItemChanged(t.key,t.rectangle))},n.prototype.updateConnectorSelection=function(t,e){if(t.key in this.selectionMap){var n=t.getRenderPoints(!0),o=t.getRenderPoints(!1);this.getOrCreateConnectorSelection(t).onModelChanged(t.isLocked,t.rectangle,n,t.style,t.styleText,t.enableText,t.texts.map((function(e){var n=h.GeometryUtils.getPathPointByPosition(o,e.position);return{text:t.getText(e.position),pointIndex:n[1],pos:e.position,point:n[0]}})).sort((function(t,e){return t.pos-e.pos})),t.points,t.properties.lineOption),e&&e.onModelItemChanged(t.key,t.rectangle)}},n.prototype.hideOutdatedSelection=function(t){var e=this;Object.keys(this.selectionMap).filter((function(e){return!t[e]})).forEach((function(t){e.selectionMap[t].destroy(),delete e.selectionMap[t]}))},n.prototype.selectionCanBeDrawn=function(t){return!t.container||t.container.expanded&&this.selectionCanBeDrawn(t.container)},n.prototype.notifySelectionChanged=function(t){var e=this,n=t.getSelectedItems(!0).filter((function(t){return e.selectionCanBeDrawn(t)})),o={},i=n.length>1,r=t.getSelectedShapes(!0).filter((function(t){return e.selectionCanBeDrawn(t)})),s=t.getSelectedConnectors(!0).filter((function(t){return e.selectionCanBeDrawn(t)}));if(r.forEach((function(t){return e.getOrCreateShapeSelection(t,o).onSelectionChanged(i)})),s.forEach((function(t){return e.getOrCreateConnectorSelection(t,o).onSelectionChanged(i)})),i){var a=n.length>0?n[0].strokeWidth:0,c={};n.filter((function(t){return!t.isLocked})).forEach((function(t){return c[t.key]=t.rectangle})),this.getOrCreateMultipleSelection(o).onSelectionChanged(!!r.filter((function(t){return!t.isLocked})).length,a,c)}this.hideOutdatedSelection(o)},n.prototype.applyChangesCore=function(e){t.prototype.applyChangesCore.call(this,e);var n=this.getMultipleSelection();n&&n.onModelChanged()},n.prototype.applyChange=function(t){var e=this.getMultipleSelection();t.item instanceof d.Shape?this.updateShapeSelection(t.item,e):t.item instanceof f.Connector&&this.updateConnectorSelection(t.item,e)},n.prototype.notifyPageColorChanged=function(t){},n.prototype.notifyPageSizeChanged=function(t,e){},n.prototype.notifyActualZoomChanged=function(t){var e=this;Object.keys(this.selectionMap).forEach((function(n){return e.selectionMap[n].notifyZoomChanged(t)})),this.actualZoom=t},n.prototype.notifyViewAdjusted=function(t){},n.prototype.notifyReadOnlyChanged=function(t){var e=this;this.readOnly=t,Object.keys(this.selectionMap).forEach((function(n){return e.selectionMap[n].notifyReadOnlyChanged(t)}))},n.prototype.notifySelectionRectShow=function(t){this.showSelectionRect(t.clone().multiply(this.actualZoom,this.actualZoom))},n.prototype.notifySelectionRectHide=function(){this.hideSelectionRect()},n.prototype.notifyResizeInfoShow=function(t,e){this.showResizeInfo(t.clone().multiply(this.actualZoom,this.actualZoom),e)},n.prototype.notifyResizeInfoHide=function(){this.hideResizeInfo()},n.prototype.notifyConnectionPointsShow=function(t,e,o,i){var r=this;this.hideConnectionPoints(),e.forEach((function(e,s){var a=e.point.clone().multiply(r.actualZoom,r.actualZoom);if(i)switch(e.side){case u.ConnectionPointSide.North:a.y=i.y*r.actualZoom-n.connectionPointShift;break;case u.ConnectionPointSide.South:a.y=i.bottom*r.actualZoom+n.connectionPointShift;break;case u.ConnectionPointSide.West:a.x=i.x*r.actualZoom-n.connectionPointShift;break;case u.ConnectionPointSide.East:a.x=i.right*r.actualZoom+n.connectionPointShift}r.showConnectionPoint(s,a,t,s,s===o,e.allowed)}))},n.prototype.notifyConnectionPointsHide=function(){this.hideConnectionPoints()},n.prototype.notifyConnectionTargetShow=function(t,e){if(e.allowed){var o=n.correctSelectionRect(e.rect.clone().multiply(this.actualZoom,this.actualZoom),e.strokeWidth,n.connectionTargetBorderWidth,this.actualZoom,0);this.showConnectionTarget(0,o)}},n.prototype.notifyConnectionTargetHide=function(){this.hideConnectionTarget()},n.prototype.notifyContainerTargetShow=function(t,e){var o=n.correctSelectionRect(e.rect.clone().multiply(this.actualZoom,this.actualZoom),e.strokeWidth,n.connectionTargetBorderWidth,this.actualZoom,0);this.showContainerTarget(0,o)},n.prototype.notifyContainerTargetHide=function(){this.hideContainerTarget()},n.prototype.notifyExtensionLinesShow=function(t){var e=this;this.hideExtensionLines(),t.forEach((function(t,n){e.showExtensionLine(n,t.type,t.segment.startPoint.clone().multiply(e.actualZoom,e.actualZoom),t.segment.endPoint.clone().multiply(e.actualZoom,e.actualZoom),t.text)}))},n.prototype.notifyExtensionLinesHide=function(){this.hideExtensionLines()},n.prototype.notifyDragStart=function(t){this.dom.changeByFunc(this.selectionMarksContainer,(function(t){return t.style.display=\"none\"}))},n.prototype.notifyDragEnd=function(t){this.dom.changeByFunc(this.selectionMarksContainer,(function(t){return t.style.display=\"\"}))},n.prototype.notifyDragScrollStart=function(){},n.prototype.notifyDragScrollEnd=function(){},n.prototype.notifyTextInputStart=function(t,e,n,o){this.dom.changeByFunc(this.visualizersContainer,(function(t){return t.style.display=\"none\"}))},n.prototype.notifyTextInputEnd=function(t,e){this.dom.changeByFunc(this.visualizersContainer,(function(t){return t.style.display=\"\"}))},n.prototype.notifyTextInputPermissionsCheck=function(t,e){},n.correctSelectionRect=function(t,e,o,i,r){void 0===r&&(r=n.selectionOffset);var s=S.UnitConverter.twipsToPixels(e)%2!=S.UnitConverter.twipsToPixels(o)%2,a=Math.ceil(e/2*i);t=t.clone().inflate(a,a);var c=Math.floor(o/2);if(t.x-=c,t.y-=c,t.width+=o,t.height+=o,s){var u=n.evenOddSelectionCorrection*(S.UnitConverter.twipsToPixels(o)%2==1?-1:1);t=t.clone().moveRectangle(u,u)}return t.clone().inflate(r,r)},n.selectionMarkSize=S.UnitConverter.pixelsToTwips(10),n.lockedSelectionMarkSize=S.UnitConverter.pixelsToTwips(8),n.selectionOffset=S.UnitConverter.pixelsToTwips(2),n.selectionRectLineWidth=S.UnitConverter.pixelsToTwips(1),n.multiSelectionRectLineWidth=S.UnitConverter.pixelsToTwips(1),n.connectionPointSmallSize=S.UnitConverter.pixelsToTwips(5),n.connectionPointLargeSize=S.UnitConverter.pixelsToTwips(12),n.connectionPointShift=S.UnitConverter.pixelsToTwips(16),n.connectionTargetBorderWidth=S.UnitConverter.pixelsToTwips(2),n.geomertyMarkSize=S.UnitConverter.pixelsToTwips(8),n.connectorPointMarkSize=S.UnitConverter.pixelsToTwips(6),n.connectorSideMarkSize=S.UnitConverter.pixelsToTwips(6),n.extensionLineWidth=S.UnitConverter.pixelsToTwips(1),n.extensionLineOffset=S.UnitConverter.pixelsToTwips(1),n.extensionLineEndingSize=S.UnitConverter.pixelsToTwips(6),n.resizeInfoOffset=S.UnitConverter.pixelsToTwips(16),n.resizeInfoTextOffset=S.UnitConverter.pixelsToTwips(2),n.resizeInfoLineWidth=S.UnitConverter.pixelsToTwips(1),n.evenOddSelectionCorrection=S.UnitConverter.pixelsToTwips(1),n}(_.CanvasManager);e.CanvasSelectionManager=D;var A=function(){function t(t,e,n,o,i,r){this.rectsContainer=t,this.marksContainer=e,this.key=n,this.zoomLevel=o,this.readOnly=i,this.dom=r,this.elements={},this.updatedElements={}}return t.prototype.notifyZoomChanged=function(t){this.zoomLevel!==t&&(this.zoomLevel=t,this.redraw())},t.prototype.notifyReadOnlyChanged=function(t){this.readOnly=t,this.redraw()},t.prototype.destroy=function(){var t=this;Object.keys(this.elements).forEach((function(e){t.elements[e].parentNode.removeChild(t.elements[e]),delete t.elements[e]}))},t.prototype.redraw=function(){var t=this;this.updatedElements={},this.redrawCore(),Object.keys(this.elements).filter((function(e){return!t.updatedElements[e]})).forEach((function(e){t.elements[e].parentNode.removeChild(t.elements[e]),delete t.elements[e]})),this.updatedElements={}},t.prototype.drawSelectionMarks=function(t,n,o){if(!this.readOnly){var i=n&&t.height>3*D.selectionMarkSize,r=o&&t.width>3*D.selectionMarkSize,s=n||o;s&&this.drawSelectionMark(0,new p.Point(t.x,t.y),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_NW,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),r&&!b.Browser.TouchUI&&this.drawSelectionMark(1,new p.Point(t.x+t.width/2,t.y),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_N,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),s&&this.drawSelectionMark(2,new p.Point(t.right,t.y),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_NE,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),i&&!b.Browser.TouchUI&&this.drawSelectionMark(3,new p.Point(t.right,t.y+t.height/2),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_E,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),s&&this.drawSelectionMark(4,new p.Point(t.right,t.bottom),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_SE,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),r&&!b.Browser.TouchUI&&this.drawSelectionMark(5,new p.Point(t.x+t.width/2,t.bottom),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_S,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),s&&this.drawSelectionMark(6,new p.Point(t.x,t.bottom),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_SW,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK),i&&!b.Browser.TouchUI&&this.drawSelectionMark(7,new p.Point(t.x,t.y+t.height/2),D.selectionMarkSize,c.MouseEventElementType.ShapeResizeBox,c.ResizeEventSource.ResizeBox_W,e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK)}},t.prototype.drawSelectionMark=function(t,e,n,o,i,r){var s=this;this.getOrCreateElement(\"SM\"+t,new g.RectanglePrimitive(e.x-n/2,e.y-n/2,n,n,null,r,void 0,(function(t){a.RenderUtils.setElementEventData(t,o,s.key,i)})),this.marksContainer)},t.prototype.drawSelectionRect=function(t,e,n){var o=new g.RectanglePrimitive(t.x,t.y,t.width,t.height,C.StrokeStyle.default1pxInstance,n,void 0,(function(t){a.RenderUtils.setElementEventData(t,e,\"-1\",-1)}));this.getOrCreateElement(\"shapeSelection\",o,this.rectsContainer)},t.prototype.getOrCreateElement=function(t,e,n){var o=this.elements[t];return o||(o=e.createElement((function(t){return n.appendChild(t)})),this.elements[t]=o),this.updatedElements[t]=!0,this.dom.changeByPrimitive(o,e),o},t}(),R=function(t){function e(e,n,o,i,r,s,a,c){var u=t.call(this,e,n,o,i,r,s)||this;return u.isLocked=a,u.rectangle=c,u}return i(e,t),e.prototype.onSelectionChanged=function(t){this.isMultipleSelection!==t&&(this.isMultipleSelection=t,this.redraw())},e.prototype.isLockedRender=function(){return this.isLocked&&!this.readOnly},e.prototype.drawLockedSelectionMark=function(t,e,n,o){var i=new m.PathPrimitive([new m.PathPrimitiveMoveToCommand(e.x-n/2,e.y-n/2),new m.PathPrimitiveLineToCommand(e.x+n/2,e.y+n/2),new m.PathPrimitiveMoveToCommand(e.x+n/2,e.y-n/2),new m.PathPrimitiveLineToCommand(e.x-n/2,e.y+n/2)],null,o);this.getOrCreateElement(\"LSM\"+t,i,this.marksContainer)},e}(A),L=function(t){function n(e,n,o,i,r){var s=t.call(this,e,n,\"-1\",o,i,r)||this;return s.rectangles={},s}return i(n,t),n.prototype.onModelItemChanged=function(t,e){t in this.rectangles&&(this.rectangles[t]=e)},n.prototype.onModelChanged=function(){this.redraw()},n.prototype.onSelectionChanged=function(t,e,n){this.needDrawSelectionMarks=t,this.strokeWidth=e,this.rectangles=n,this.redraw()},n.prototype.redrawCore=function(){var t=this,n=Object.keys(this.rectangles);if(n.length){var o=h.GeometryUtils.getCommonRectangle(n.map((function(e){return t.rectangles[e]}))).clone().multiply(this.zoomLevel,this.zoomLevel),i=D.correctSelectionRect(o,this.strokeWidth,D.selectionRectLineWidth,this.zoomLevel);this.drawSelectionRect(i,c.MouseEventElementType.SelectionRect,e.SELECTION_ELEMENT_CLASSNAMES.ITEMS_SELECTION_RECT),this.needDrawSelectionMarks&&this.drawSelectionMarks(o,!0,!0)}},n}(A),N=function(t){function n(e,n,o,i,r,s,a,c,u,h,p,l){var d=t.call(this,e,n,s,o,i,r,a,c)||this;return d.style=u,d.allowResizeHorizontally=h,d.allowResizeVertically=p,d.shapeParameterPoints=l,d}return i(n,t),n.prototype.onModelChanged=function(t,e,n,o,i,r){this.isLocked=t,this.rectangle=e,this.style=n,this.allowResizeHorizontally=o,this.allowResizeVertically=i,this.shapeParameterPoints=r,this.redraw()},n.prototype.redrawCore=function(){var t=this.rectangle.clone().multiply(this.zoomLevel,this.zoomLevel);this.isLockedRender()?this.drawLockedSelection(t):this.drawUnlockedSelection(t)},n.prototype.drawLockedSelection=function(t){this.drawLockedSelectionMark(0,new p.Point(t.x,t.y),D.lockedSelectionMarkSize,e.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK),this.drawLockedSelectionMark(1,new p.Point(t.right,t.y),D.lockedSelectionMarkSize,e.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK),this.drawLockedSelectionMark(2,new p.Point(t.right,t.bottom),D.lockedSelectionMarkSize,e.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK),this.drawLockedSelectionMark(3,new p.Point(t.x,t.bottom),D.lockedSelectionMarkSize,e.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK)},n.prototype.drawUnlockedSelection=function(t){var n=D.correctSelectionRect(t,this.style.strokeWidth,D.selectionRectLineWidth,this.zoomLevel);this.drawSelectionRect(n,c.MouseEventElementType.SelectionRect,this.isMultipleSelection?e.SELECTION_ELEMENT_CLASSNAMES.ITEM_MULTI_SELECTION:e.SELECTION_ELEMENT_CLASSNAMES.ITEM_SELECTION_RECT),this.isMultipleSelection||this.drawSelectionMarks(t,this.allowResizeHorizontally,this.allowResizeVertically),this.drawShapeParameterPoints()},n.prototype.drawShapeParameterPoints=function(){var t=this;this.readOnly||this.shapeParameterPoints.forEach((function(e,n){var o=e.point.clone().multiply(t.zoomLevel,t.zoomLevel);t.drawShapeParameterPoint(o,n,e.key)}))},n.prototype.drawShapeParameterPoint=function(t,e,n){var o=this,i=D.geomertyMarkSize,r=new g.RectanglePrimitive(t.x-i/2,t.y-i/2,i,i,null,\"geometry-mark\",void 0,(function(t){a.RenderUtils.setElementEventData(t,c.MouseEventElementType.ShapeParameterBox,o.key,n)}));this.getOrCreateElement(\"pp\"+e.toString(),r,this.marksContainer)},n}(R),z=function(t){function n(e,n,o,i,r,s,a,c,u,h,p,l,d,f,y){var g=t.call(this,e,n,s,o,i,r,a,c)||this;return g.renderPoints=u,g.style=h,g.styleText=p,g.enableText=l,g.texts=d,g.points=f,g.lineType=y,g}return i(n,t),n.prototype.onModelChanged=function(t,e,n,o,i,r,s,a,c){this.isLocked=t,this.rectangle=e,this.renderPoints=n,this.style=o,this.styleText=i,this.enableText=r,this.texts=s,this.points=a,this.lineType=c,this.redraw()},n.prototype.redrawCore=function(){this.isLockedRender()?this.drawLockedSelection():this.drawUnlockedSelection()},n.prototype.drawLockedSelection=function(){var t=this;this.renderPoints.forEach((function(n,o){t.drawLockedSelectionMark(o,n,D.lockedSelectionMarkSize,e.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK)}))},n.prototype.drawUnlockedSelection=function(){this.drawConnectorSelection(),this.isMultipleSelection||this.readOnly||this.drawConnectorSelectionMarks()},n.prototype.drawConnectorSelection=function(){var t=[],n=[],o=this.isMultipleSelection?e.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_MULTI_SELECTION:e.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_SELECTION;this.populateSelectionPrimitiveCommands(t,n);var i=new m.PathPrimitive(t.concat(n.reverse()),C.StrokeStyle.default1pxInstance,o);this.getOrCreateElement(\"CS\",i,this.rectsContainer)},n.prototype.populateSelectionPrimitiveCommands=function(t,e){for(var n,o,i,r,s=this.texts,a=this.styleText.getAlignment(),c=this.createNotSkippedRenderPoints(),u=this.zoomLevel,p=this.style.strokeWidthPx,l=this.getSelectionOffset(p),d=p%2==0,f=c[0],y=0,g=1,v=void 0;v=c[g];g++){var P=c[g+1];if(void 0===n){if(o=T.Metrics.euclideanDistance(f,v),O.MathUtils.numberCloseTo(o,0))continue;n=h.GeometryUtils.getSelectionOffsetPoint(f,v,o).multiply(l,l)}if(P){if(r=T.Metrics.euclideanDistance(v,P),O.MathUtils.numberCloseTo(r,0))continue;i=h.GeometryUtils.getSelectionOffsetPoint(v,P,r).multiply(l,l)}var C=n.x,S=n.y,x=-C,b=-S,I=i&&i.x,w=i&&i.y,_=i&&-i.x,M=i&&-i.y;for(d&&(x>0?x-=D.evenOddSelectionCorrection:C>0&&(C-=D.evenOddSelectionCorrection),b>0?b-=D.evenOddSelectionCorrection:S>0&&(S-=D.evenOddSelectionCorrection),_>0?_-=D.evenOddSelectionCorrection:I>0&&(I-=D.evenOddSelectionCorrection),M>0?M-=D.evenOddSelectionCorrection:w>0&&(w-=D.evenOddSelectionCorrection));s[y]&&s[y].pointIndex<=g;){var E=s[y],A=this.getConnectorSelectionTextSize(E.text,l),R=h.GeometryUtils.getSelectionTextStartEndPoints(f,v,o,E.point,A,a);s[y].pointIndex<g?(f=R[1],t.push(m.PathPrimitiveMoveToCommand.fromPoint(f.clone().offset(C,S).multiply(u,u))),e.push(m.PathPrimitiveLineToCommand.fromPoint(f.clone().offset(x,b).multiply(u,u)))):(t.length||(t.push(m.PathPrimitiveMoveToCommand.fromPoint(f.clone().offset(C,S).multiply(u,u))),e.push(m.PathPrimitiveLineToCommand.fromPoint(f.clone().offset(x,b).multiply(u,u)))),t.push(m.PathPrimitiveLineToCommand.fromPoint(R[0].clone().offset(C,S).multiply(u,u))),t.push(m.PathPrimitiveMoveToCommand.fromPoint(R[1].clone().offset(C,S).multiply(u,u))),e.push(m.PathPrimitiveMoveToCommand.fromPoint(R[0].clone().offset(x,b).multiply(u,u))),e.push(m.PathPrimitiveLineToCommand.fromPoint(R[1].clone().offset(x,b).multiply(u,u))),f=R[1]),y++}t.length||(t.push(m.PathPrimitiveMoveToCommand.fromPoint(f.clone().offset(C,S).multiply(u,u))),e.push(m.PathPrimitiveLineToCommand.fromPoint(f.clone().offset(x,b).multiply(u,u)))),P?(h.GeometryUtils.addSelectedLinesTo(f,v,P,C,S,x,b,I,w,_,M,(function(e,n){return t.push(new m.PathPrimitiveLineToCommand(e*u,n*u))}),(function(t,n){return e.push(new m.PathPrimitiveLineToCommand(t*u,n*u))})),n=i,o=r):(t.push(m.PathPrimitiveLineToCommand.fromPoint(v.clone().offset(C,S).multiply(u,u))),e.push(m.PathPrimitiveMoveToCommand.fromPoint(v.clone().offset(x,b).multiply(u,u)))),f=v}},n.prototype.createNotSkippedRenderPoints=function(){var t=this.renderPoints.map((function(t){return t.clone()}));return this.lineType===y.ConnectorLineOption.Straight?M.ModelUtils.skipUnnecessaryRenderPoints(t):M.ModelUtils.skipUnnecessaryRightAngleRenderPoints(t),t.filter((function(t){return!t.skipped}))},n.prototype.getSelectionOffset=function(t){return D.selectionOffset+S.UnitConverter.pixelsToTwips(Math.round(t/2)+(t+1)%2)},n.prototype.getConnectorSelectionTextSize=function(t,e){return this.dom.measurer.measureTextLine(t,this.styleText,x.TextOwner.Connector).applyConverter(S.UnitConverter.pixelsToTwips).clone().offset(e,e).nonNegativeSize()},n.prototype.drawConnectorSelectionMarks=function(){var t=this,n=this.points.length-1;this.points.forEach((function(o,i){var r=0===i||i===n,s=r?e.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK:e.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_POINT_MARK,a=r?D.selectionMarkSize:D.connectorPointMarkSize;r||t.lineType===y.ConnectorLineOption.Straight?t.drawSelectionMark(i,o.clone().multiply(t.zoomLevel,t.zoomLevel),a,c.MouseEventElementType.ConnectorPoint,i,s):t.drawSelectionMark(i,o.clone().multiply(t.zoomLevel,t.zoomLevel),a,c.MouseEventElementType.Undefined,-1,s+\" disabled\")})),this.drawConnectorSideMarks()},n.prototype.drawConnectorSideMarks=function(){var t,n,o=this,i=this.lineType===y.ConnectorLineOption.Straight?c.MouseEventElementType.ConnectorSide:c.MouseEventElementType.ConnectorOrthogonalSide;this.renderPoints.forEach((function(r,s){if(!r.skipped){if(void 0!==t&&o.canDrawConnectorSideMark(r,t)){var a=o.lineType===y.ConnectorLineOption.Orthogonal?r.x-t.x==0?\"vertical\":\"horizontal\":\"\";o.drawSelectionMark(o.points.length+s-1,new p.Point(t.x+(r.x-t.x)/2,t.y+(r.y-t.y)/2).clone().multiply(o.zoomLevel,o.zoomLevel),D.connectorSideMarkSize,i,n+\"_\"+s,e.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_SIDE_MARK+\" \"+a)}t=r,n=s}}))},n.prototype.canDrawConnectorSideMark=function(t,e){if(this.lineType===y.ConnectorLineOption.Straight){var n=D.selectionMarkSize+D.connectorSideMarkSize;return T.Metrics.euclideanDistance(t,e)>n}if(this.lineType===y.ConnectorLineOption.Orthogonal){var o=0===e.pointIndex,i=h.GeometryUtils.areDuplicatedPoints(this.points[this.points.length-1],t);if(o&&i)return T.Metrics.euclideanDistance(t,e)>2*f.Connector.minOffset;if(!o&&i||o&&!i)return T.Metrics.euclideanDistance(t,e)>f.Connector.minOffset;n=D.selectionMarkSize+D.connectorSideMarkSize;return T.Metrics.euclideanDistance(t,e)>n}return!1},n}(R)},9757:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.CanvasViewManager=e.CROP_OFFSET=e.CANVAS_SCROLL_PADDING=e.CANVAS_MIN_PADDING=void 0;var r=n(7716),s=n(240),a=n(8675),c=n(4125),u=n(6353),h=n(8900),p=n(5329),l=n(4593),d=n(4716),f=n(3500),y=n(3281),g=n(1552),m=n(6907),v=n(9291);e.CANVAS_MIN_PADDING=8,e.CANVAS_SCROLL_PADDING=18,e.CROP_OFFSET=40;var P=\"dxdi-drag-scroll\",C=\"dxdi-drag-item\",S=function(t){function n(e,n,o,i,r,s,u,p,l){var d=t.call(this,i,p,l)||this;return d.svgElement=n,d.paddings=new c.Offsets(0,0,0,0),d.scroll=new h.Point(0,0),d.crop=c.Offsets.empty(),d.lockAutoZoom=!1,d.autoScrollLocker=0,d.pageClipPathId=f.RenderUtils.generateSvgElementId(\"page-clip\"),d.pageShadowId=f.RenderUtils.generateSvgElementId(\"page-shadow\"),d.onViewChanged=new a.EventDispatcher,e.onScroll.add(d),o=o.clone().applyConverter(v.UnitConverter.twipsToPixelsF),d.scrollView=e,d.modelSize=o,d.simpleView=s,d.fixedZoomLevel=i,d.autoZoom=r,d.crop=d.rectangleToCrop(u,o),d.updateElements(o.clone().multiply(i,i),h.Point.zero(),s),d.getOrCreateElement(\"shadow\",new y.ShadowFilterPrimitive(d.pageShadowId),d.svgElement),d.containerSize=e.getSize(),d}return i(n,t),n.prototype.adjust=function(t,e){var n;t||(t={vertical:!1,horizontal:!1},n=c.Offsets.empty()),this.containerSize=this.scrollView.getSize(),this.adjustCore(this.modelSize,this.fixedZoomLevel,this.autoZoom,this.simpleView,this.crop,t,this.containerSize,n,e),this.tryNormalizePaddings()},n.prototype.notifyModelSizeChanged=function(t,e){t=t.clone().applyConverter(v.UnitConverter.twipsToPixelsF);var n={horizontal:!e,vertical:!e};this.adjustCore(t,this.fixedZoomLevel,this.autoZoom,this.simpleView,this.crop,n,this.containerSize,e&&e.clone().applyConverter(v.UnitConverter.twipsToPixelsF)),this.modelSize=t},n.prototype.notifyModelRectangleChanged=function(t){var e=this.rectangleToCrop(t,this.modelSize);this.crop&&this.crop.equals(e)||(this.simpleView&&this.adjustCore(this.modelSize,this.fixedZoomLevel,this.autoZoom,this.simpleView,e,{horizontal:!1,vertical:!1},this.containerSize,c.Offsets.empty()),this.crop=e)},n.prototype.notifySnapPointPositionChanged=function(t){},n.prototype.notifyZoomChanged=function(t,e){this.adjustCore(this.modelSize,t,e,this.simpleView,this.crop,{horizontal:!1,vertical:!1},this.containerSize),this.fixedZoomLevel=t,this.autoZoom=e},n.prototype.notifyViewChanged=function(t){this.adjustCore(this.modelSize,this.fixedZoomLevel,this.autoZoom,t,this.crop,{vertical:!0,horizontal:!0},this.containerSize),this.simpleView=t},n.prototype.notifyGridChanged=function(t,e){},n.prototype.notifyDragStart=function(t){this.lockAutoZoom=!0,m.DomUtils.addClassName(this.svgElement,C)},n.prototype.notifyDragEnd=function(t){this.lockAutoZoom=!1,m.DomUtils.removeClassName(this.svgElement,C),this.adjustAfterDragEnd()},n.prototype.adjustAfterDragEnd=function(){this.autoZoom&&!this.autoZoomLocked&&this.adjust({horizontal:!0,vertical:this.autoZoom===s.AutoZoomMode.FitContent},this.autoZoom===s.AutoZoomMode.FitToWidth)},n.prototype.notifyShowContextToolbox=function(){this.autoZoomLocked=!0},n.prototype.notifyHideContextToolbox=function(){this.autoZoomLocked=!1,this.adjustAfterDragEnd()},n.prototype.notifyDragScrollStart=function(){m.DomUtils.addClassName(this.svgElement,P)},n.prototype.notifyDragScrollEnd=function(){m.DomUtils.removeClassName(this.svgElement,P)},n.prototype.notifyScrollChanged=function(t){this.scroll=t()},n.prototype.checkFitToCanvas=function(t){t=t||this.containerSize;var n=this.scrollView.getScrollBarWidth();t=t.clone().offset(2*-e.CANVAS_MIN_PADDING,2*-e.CANVAS_MIN_PADDING).nonNegativeSize();var o=this.getActualModelSizeWithoutZoom(this.modelSize,this.simpleView,this.crop).clone().multiply(this.actualZoom,this.actualZoom),i=this.checkScrollBars(t,n,o,c.Offsets.empty());return{vertical:(t=t.clone().offset(i.vertical?-n:0,i.horizontal?-n:0).nonNegativeSize()).height>=o.height,horizontal:t.width>=o.width}},n.prototype.rectangleToCrop=function(t,e){var n=t.clone().applyConverter(v.UnitConverter.twipsToPixelsF);return new c.Offsets(this.correctCrop(n.x),this.correctCrop(e.width-n.right),this.correctCrop(n.y),this.correctCrop(e.height-n.bottom))},n.prototype.correctCrop=function(t){return e.CROP_OFFSET*Math.floor(t/e.CROP_OFFSET)},n.prototype.setActualZoom=function(t){this.actualZoom!==t&&(this.actualZoom=t,this.raiseActualZoomChanged())},n.prototype.getActualAutoZoomLevel=function(t){if(t===s.AutoZoomMode.Disabled)return this.actualZoom;var e=this.containerSize,n=this.scrollView.getScrollBarWidth(),o=this.getActualModelSizeWithoutZoom(this.modelSize,this.simpleView,this.crop);return this.getActualAutoZoom(e,n,o,t)},n.prototype.getActualZoom=function(t,e,n,o,i){return this.lockAutoZoom?this.actualZoom:i===s.AutoZoomMode.Disabled?o:this.getActualAutoZoom(t,e,n,i)},n.prototype.getActualAutoZoom=function(t,n,o,i){return 0===t.width||0===t.height?1:i===s.AutoZoomMode.FitContent?Math.min((t.width-2*e.CANVAS_MIN_PADDING)/o.width,(t.height-2*e.CANVAS_MIN_PADDING)/o.height,1):Math.min((t.width-2*e.CANVAS_MIN_PADDING-n)/o.width,1)},n.prototype.raiseActualZoomChanged=function(){var t=this;this.onViewChanged.raise1((function(e){return e.notifyActualZoomChanged(t.actualZoom)}))},n.prototype.tryNormalizePaddings=function(){var t=this.scrollView.getScrollBarWidth(),e=this.getActualModelSizeWithoutZoom(this.modelSize,this.simpleView,this.crop).clone().multiply(this.actualZoom,this.actualZoom),n=new h.Point(this.paddings.left,this.paddings.top),o=new u.Size(this.paddings.right,this.paddings.bottom),i=this.getTailSpace(n,this.scroll,e,this.containerSize,t);i.equals(o)||this.applyChanges(new c.Offsets(n.x,i.width,n.y,i.height),e,this.simpleView,this.crop.clone().multiply(this.actualZoom))},n.prototype.scrollBy=function(t){var e,n,o,i=this.scroll,r=this.containerSize,s=this.scrollView.getScrollBarWidth(),a=this.getActualModelSizeWithoutZoom(this.modelSize,this.simpleView,this.crop).clone().multiply(this.actualZoom,this.actualZoom),p=this.checkScrollBars(r,s,a,this.paddings),l=new h.Point(this.paddings.left,this.paddings.top),d=new u.Size(this.paddings.right,this.paddings.bottom);return i=(e=this.changeScrollByOffset(l,i,d,a,t,r,p)).scroll,t=e.offset,l=(n=this.changeTranslateByOffset(l,d,t,p)).translate,t=n.offset,l=(o=this.cropHiddenHead(l,i)).translate,i=o.scroll,d=this.getTailSpace(l,i,a,r,s),this.applyChanges(new c.Offsets(l.x,d.width,l.y,d.height),a,this.simpleView,this.crop.clone().multiply(this.actualZoom),i),t},n.prototype.changeScrollByOffset=function(t,e,n,o,i,r,s){var a=e.clone(),c=i.clone();return i.x&&s.horizontal&&(a.x-=c.x=-this.getScrollDeltaByOffset(i.x,e.x,t.x+o.width+n.width,r.width,s.vertical)),i.y&&s.vertical&&(a.y-=c.y=-this.getScrollDeltaByOffset(i.y,e.y,t.y+o.height+n.height,r.height,s.horizontal)),{scroll:a,offset:c}},n.prototype.changeTranslateByOffset=function(t,e,n,o){var i=t.clone(),r=n.clone();return n.x&&!o.horizontal&&(i.x+=r.x=this.getTranslateDeltaByOffset(n.x,i.x,e.width)),n.y&&!o.vertical&&(i.y+=r.y=this.getTranslateDeltaByOffset(n.y,i.y,e.height)),{translate:i,offset:r}},n.prototype.getScrollDeltaByOffset=function(t,e,n,o,i){if(t>0)return-Math.min(e,t);var r=n-(o-(i?this.scrollView.getScrollBarWidth():0));return Math.min(r-e,-t)},n.prototype.getTranslateDeltaByOffset=function(t,n,o){return t?t<0?-Math.min(n-e.CANVAS_MIN_PADDING,-t):Math.min(o-e.CANVAS_MIN_PADDING,t):0},n.prototype.getActualModelSizeWithoutZoom=function(t,e,n){return e&&n?t.clone().offset(-n.horizontal,-n.vertical).nonNegativeSize():t},n.prototype.setScrollTo=function(t,n){var o=this.containerSize,i=this.getVisibileAreaAbsShift(),r=t.clone().applyConverter(v.UnitConverter.twipsToPixelsF).clone().multiply(this.actualZoom,this.actualZoom).clone().offset(i.x,i.y),s=this.scroll;n?(s.x+=r.x-n.x,s.y+=r.y-n.y):(r.x<0&&(s.x+=r.x-e.CANVAS_MIN_PADDING),r.y<0&&(s.y+=r.y-e.CANVAS_MIN_PADDING),r.x>o.width&&(s.x+=r.x-o.width+e.CANVAS_MIN_PADDING),r.y>o.height&&(s.y+=r.y-o.height+e.CANVAS_MIN_PADDING)),this.setScroll(s)},n.prototype.scrollIntoView=function(t){t=t.clone().applyConverter(v.UnitConverter.twipsToPixelsF).multiply(this.actualZoom,this.actualZoom).moveRectangle(this.paddings.left,this.paddings.top);var n=this.scroll,o=this.containerSize;if(!(t.x>=n.x&&t.y>=n.y&&t.right<=n.x+o.width&&t.bottom<=n.y+o.height)){var i=n.clone();t.x<n.x?i.x=t.x-e.CANVAS_SCROLL_PADDING:t.right>n.x+o.width&&(i.x=Math.min(t.x-e.CANVAS_SCROLL_PADDING,t.right+e.CANVAS_SCROLL_PADDING-o.width)),t.y<n.y?i.y=t.y-e.CANVAS_SCROLL_PADDING:i.y=Math.min(t.y-e.CANVAS_SCROLL_PADDING,t.bottom+e.CANVAS_SCROLL_PADDING-o.height),this.setScroll(i)}},n.prototype.setScroll=function(t){var e=this,n=this.modelSize.clone().multiply(this.actualZoom,this.actualZoom);t.x=Math.max(0,Math.min(t.x,n.width+this.paddings.horizontal-this.containerSize.width)),t.y=Math.max(0,Math.min(t.y,n.height+this.paddings.vertical-this.containerSize.height)),this.dom.changeByFunc(null,(function(){e.scrollView.setScroll(t.x,t.y)})),this.scroll=t.clone()},n.prototype.updateElements=function(t,e,n){this.updatePageElement(t,e,n),this.updateCanvasElement(e)},n.prototype.updateCanvasElement=function(t){this.canvasElement=this.getOrCreateElement(\"dxdi-main\",new p.GroupPrimitive([],\"dxdi-main\",null,null,(function(e){e.setAttribute(\"transform\",\"translate(\"+Math.round(t.x)+\", \"+Math.round(t.y)+\")\")})),this.svgElement)},n.prototype.updatePageElement=function(t,e,n){if(n)this.updatePageElementCore(\"\",0,0,t.width,t.height);else{var o=e.x,i=e.y,r=t.width,s=t.height;this.createPageShadow(o,i,r,s),this.updatePageElementCore(this.pageClipPathId,Math.round(o),Math.round(i),r,s)}},n.prototype.createPageShadow=function(t,e,n,o){this.getOrCreateElement(\"pageShadowRect\",new d.RectanglePrimitive(t.toString(),e.toString(),n.toString(),o.toString(),new g.EmptyStyle({filter:f.RenderUtils.getUrlPathById(this.pageShadowId)}),\"dxdi-page-shadow\"),this.svgElement,this.svgElement.firstChild)},n.prototype.updatePageElementCore=function(t,e,n,o,i){this.pageElement=this.getOrCreateElement(\"page\",new p.GroupPrimitive([],\"dxdi-page\",null,t,(function(t){t.setAttribute(\"transform\",\"translate(\"+e+\", \"+n+\")\")})),this.svgElement),this.getOrCreateElement(\"pageClip\",this.createPageClipPathPrimitive(o,i),this.svgElement)},n.prototype.createPageClipPathPrimitive=function(t,e){return new l.ClipPathPrimitive(this.pageClipPathId,[new d.RectanglePrimitive(0,0,t.toString(),e.toString())])},n.prototype.adjustCore=function(t,e,n,o,i,r,s,a,u){var h=this.getActualModelSizeWithoutZoom(t,o,i);if(this.lockAutoZoom||!n&&a&&this.modelSize)this.resizeView(h,this.actualZoom,s,o,i,a);else{var p=this.scrollView.getScrollBarWidth(),l=this.getActualZoom(s,p,h,e,n);!n||l!==this.actualZoom||r.horizontal&&(r.vertical||u)?(this.resetView(h,l,s,o,i,r),this.setActualZoom(l)):this.resizeView(h,l,s,o,i,a||c.Offsets.empty())}},n.prototype.resetView=function(t,n,o,i,r,s){var a=t.clone().multiply(n,n),u=c.Offsets.fromNumber(e.CANVAS_MIN_PADDING);!(s=s||{horizontal:!0,vertical:!0}).horizontal&&this.paddings&&(u.left=this.paddings.left,u.right=this.paddings.right),!s.vertical&&this.paddings&&(u.top=this.paddings.top,u.bottom=this.paddings.bottom);var h=this.checkScrollBars(o,this.scrollView.getScrollBarWidth(),a,u),p=this.scrollView.getScrollBarWidth(),l=s.horizontal||s.vertical?this.scroll:void 0;if(s.horizontal){var d=Math.max((o.width-(h.vertical?p:0)-a.width)/2,e.CANVAS_MIN_PADDING);u.left=d,u.right=d,l.x=0}if(s.vertical){var f=Math.max((o.height-(h.horizontal?p:0)-a.height)/2,e.CANVAS_MIN_PADDING);u.top=f,u.bottom=f,l.y=0}this.applyChanges(u,a,i,r.clone().multiply(n),l)},n.prototype.resizeView=function(t,n,o,i,r,s){var a,u,p=this.actualZoom,l=this.simpleView&&this.crop?this.crop.clone().multiply(p):c.Offsets.empty(),d=t.clone().multiply(n,n);s=s.clone().multiply(n);var f=i&&r?r.clone().multiply(n):c.Offsets.empty(),y=new h.Point(this.paddings.left,this.paddings.top),g=this.scroll;y=(a=this.applyOffset(y,g,l,f,s)).translate,g=a.scroll,y=(u=this.cropHiddenHead(y,g)).translate,g=u.scroll;var m=this.getTailSpace(y,g,d,o,this.scrollView.getScrollBarWidth());if(!i){var v=o.width-e.CANVAS_SCROLL_PADDING,P=o.height-e.CANVAS_SCROLL_PADDING;s.left<0&&y.x>v&&(y.x=v,g.x=0),s.right<0&&m.width>v&&(m.width=v,g.x>d.width&&(g.x=d.width)),s.top<0&&y.y>P&&(y.y=P,g.y=0),s.bottom<0&&m.height>P&&(m.height=P,g.y>d.height&&(g.y=d.height))}var C=new c.Offsets(y.x,m.width,y.y,m.height);this.applyChanges(C,d,i,f,g)},n.prototype.applyChanges=function(t,e,n,o,i){var r=this,s=new h.Point(t.left,t.top);n&&o&&(s=s.clone().offset(-o.left,-o.top)),this.updateElements(e,s,n),this.setSvgSize(e.width+t.horizontal,e.height+t.vertical),this.onViewChanged.raise1((function(t){return t.notifyViewAdjusted(new h.Point(s.x,s.y))})),i&&(this.lockAutoScroll(),i&&this.dom.changeByFunc(this.scrollView,(function(t){t.setScroll(i.x,i.y),r.unlockAutoScroll()})),this.scroll=i),this.paddings=t},n.prototype.isAutoScrollLocked=function(){return 0!==this.autoScrollLocker},n.prototype.lockAutoScroll=function(){this.autoScrollLocker++},n.prototype.unlockAutoScroll=function(){this.autoScrollLocker--},n.prototype.applyOffset=function(t,n,o,i,r){var s=t.clone(),a=n.clone(),c=this.getActualOffset(o,i,r);return c.left&&(s.x=Math.max(e.CANVAS_MIN_PADDING,s.x-c.left),a.x+=c.left-(t.x-s.x)),c.top&&(s.y=Math.max(e.CANVAS_MIN_PADDING,s.y-c.top),a.y+=c.top-(t.y-s.y)),{translate:s,scroll:a}},n.prototype.cropHiddenHead=function(t,n){var o=n.clone(),i=t.clone();if(o.x&&i.x>e.CANVAS_MIN_PADDING){var r=i.x-Math.max(e.CANVAS_MIN_PADDING,i.x-o.x);i.x-=r,o.x-=r}if(o.y&&i.y>e.CANVAS_MIN_PADDING){r=i.y-Math.max(e.CANVAS_MIN_PADDING,i.y-o.y);i.y-=r,o.y-=r}return{translate:i,scroll:o}},n.prototype.getTailSpace=function(t,n,o,i,r){var s=t.clone(),a=n.clone(),h=Math.max(i.width+a.x-(s.x+o.width),e.CANVAS_MIN_PADDING),p=Math.max(i.height+a.y-(s.y+o.height),e.CANVAS_MIN_PADDING),l=this.checkScrollBars(i,r,o,new c.Offsets(s.x,h,s.y,p));return l.vertical&&(h=Math.max(e.CANVAS_MIN_PADDING,h-r)),l.horizontal&&(p=Math.max(e.CANVAS_MIN_PADDING,p-r)),new u.Size(h,p)},n.prototype.getActualOffset=function(t,e,n){return new c.Offsets(-(e.left-t.left)+n.left,-(e.right-t.right)+n.right,-(e.top-t.top)+n.top,-(e.bottom-t.bottom)+n.bottom)},n.prototype.checkScrollBars=function(t,e,n,o){var i=t.width<n.width+o.horizontal,r=t.height<n.height+o.vertical;return i&&!r&&(r=t.height-e<n.height+o.vertical),r&&!i&&(i=t.width-e<n.width+o.horizontal),{horizontal:i,vertical:r}},n.prototype.setSvgSize=function(t,e){t===this.lastWidth&&e===this.lastHeight||(this.dom.changeByFunc(this.svgElement,(function(n){return f.RenderUtils.updateSvgElementSize(n,t,e)})),this.lastWidth=t,this.lastHeight=e)},n.prototype.getVisibileAreaAbsShift=function(t){var e=this.scroll,n=this.paddings.clone(),o=this.simpleView,i=o&&this.crop?this.crop.left*this.actualZoom:0,r=o&&this.crop?this.crop.top*this.actualZoom:0;return new h.Point(n.left-i-(t?0:e.x),n.top-r-(t?0:e.y))},n.prototype.getModelPoint=function(t,e){var n=this.getVisibileAreaAbsShift(),o=t.clone().offset(-n.x,-n.y).multiply(1/this.actualZoom,1/this.actualZoom);if(e){var i=this.containerSize;if(t.x<0||t.y<0||t.x>i.width||t.y>i.height)return null;if(o.x<0||o.y<0)return null;if(o.x>this.modelSize.width||o.y>this.modelSize.height)return null}return o.clone().applyConverter(v.UnitConverter.pixelsToTwips)},n.prototype.getAbsolutePoint=function(t,e,n){var o=this.getVisibileAreaAbsShift(e),i=t.clone().multiply(this.actualZoom,this.actualZoom).clone().applyConverter(v.UnitConverter.twipsToPixelsF).clone().offset(o.x,o.y);if(n){if(i.x<0||i.y<0)return null;var r=this.containerSize;if(i.x>r.width||i.y>r.height)return null}return i},n}(r.CanvasManagerBase);e.CanvasViewManager=S},6078:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ExportDOMManipulator=e.DOMManipulator=void 0;var r=n(9463),s=function(){function t(t){this.measurer=t,this.queue=[]}return t.prototype.createElement=function(t,e,n){return t.createElement((function(t){null!=e&&(void 0!==n?e.insertBefore(t,n):e.appendChild(t))}))},t.prototype.changeChildrenByPrimitives=function(t,e){var n=this;t.forEach((function(t,o){var i=e.childNodes[o];n.changeByPrimitive(i,t)}))},t.prototype.changeByFunc=function(t,e){this.doChange(t,e)},t.prototype.changeByPrimitive=function(t,e){this.doChange(t,e)},t.prototype.cancelAnimation=function(){void 0!==this.rafId&&(cancelAnimationFrame(this.rafId),this.queue=[])},t.prototype.doChange=function(t,e){r.Diagnostics.optimizeUsingRAF?(this.queue.push([t,e]),this.requestAnimation()):this.doChangeSync(t,e)},t.prototype.doChangeSync=function(t,e){\"function\"==typeof e?e(t):e.applyElementProperties(t,this.measurer)},t.prototype.requestAnimation=function(){var t=this;if(!this.rafRequested){this.rafRequested=!0;var e=function(){t.queue.splice(0,2e3).forEach((function(e){return t.doChangeSync(e[0],e[1])})),t.queue.length?t.rafId=requestAnimationFrame(e):(t.rafRequested=!1,t.rafId=void 0)};this.rafId=requestAnimationFrame(e)}},t}();e.DOMManipulator=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.doChange=function(t,e){this.doChangeSync(t,e)},e}(s);e.ExportDOMManipulator=a},741:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.InputManager=void 0;var o=n(2153),i=n(6907),r=n(3500),s=n(6031),a=n(5503),c=n(7959),u=n(3714),h=n(4246),p=n(9279),l=n(9291),d=n(1114),f=n(3490),y=n(8675),g=\"dxdi-text-input\",m=function(){function t(t,e,n,o,i,r){this.mainElement=t,this.layoutPointResolver=e,this.eventManager=n,this.textMeasurer=o,this.actualZoom=i,this.focusElementsParent=r,this.focused=!1,this.focusLocked=!1,this.createInputElements(this.mainElement,this.focusElementsParent)}return t.prototype.detachEvents=function(){this.detachInputElementEvents(),this.detachTextInputElementEvents()},t.prototype.isFocused=function(){return this.focused},t.prototype.captureFocus=function(t){t&&document.activeElement===this.textInputElement?y.HtmlFocusUtils.focusWithPreventScroll(this.textInputElement||this.inputElement):y.HtmlFocusUtils.focusWithPreventScroll(this.inputElement)},t.prototype.setClipboardData=function(t){this.clipboardInputElement.value=t,y.HtmlFocusUtils.focusWithPreventScroll(this.clipboardInputElement),this.clipboardInputElement.select(),document.execCommand(\"copy\"),this.captureFocus()},t.prototype.getClipboardData=function(t){var e=this;navigator&&navigator.clipboard?navigator.clipboard.readText().then((function(n){t(n),e.captureFocus()})).catch((function(){t(\"\"),e.captureFocus()})):p.Browser.IE&&(this.clipboardInputElement.value=\"\",y.HtmlFocusUtils.focusWithPreventScroll(this.clipboardInputElement),this.clipboardInputElement.select(),document.execCommand(\"Paste\"),t(this.clipboardInputElement.value),this.captureFocus())},t.prototype.isPasteSupportedByBrowser=function(){return p.Browser.IE||p.Browser.WebKitFamily&&navigator&&void 0!==navigator.clipboard},t.prototype.createInputElements=function(t,e){this.createFocusInputElement(e||t),this.createTextInputElement(t),this.createClipboardInputElement(e||t),this.attachInputElementEvents()},t.prototype.setInputElementFocusHandlerMode=function(t){this.textInputElementContainer.setAttribute(\"class\",\"dxdi-text-input-container\"),t&&this.captureFocus()},t.prototype.setInputElementTextInputMode=function(t,e,n,o,i,r){this.textInputElementContainer.setAttribute(\"class\",\"dxdi-text-input-container \"+i),this.textInputElement.value=t,this.setTextInputElementBounds(e,n,r),this.setTextInputElementStyle(o),this.updateTextInputPadding();var s=this.textInputElement||this.inputElement;y.HtmlFocusUtils.focusWithPreventScroll(s),s.select&&s.select()},t.prototype.setTextInputElementBounds=function(t,e,n){this.savedTextInputPosition=t,this.savedTextInputSize=e,this.savedTextInputAngle=n;var o=this.layoutPointResolver.getAbsolutePoint(t,!0);this.textInputElementContainer.style.left=o.x+\"px\",this.textInputElementContainer.style.top=o.y+\"px\",this.textInputElementContainer.style.width=e&&e.width+\"px\"||\"0px\",this.textInputElementContainer.style.height=e&&e.height+\"px\"||\"0px\";var i=[];this.textInputElementContainer.style.transform=\"\",1!==this.actualZoom&&i.push(\"scale(\"+this.actualZoom+\")\"),n&&i.push(\"rotate(\"+n+\"deg)\"),this.textInputElementContainer.style.transform=i.join(\" \"),this.textInputElement.style.width=e&&e.width+\"px\"||\"\",this.textInputElement.style.height=e&&e.height+\"px\"||\"auto\"},t.prototype.setTextInputElementStyle=function(t){this.savedTextInputStyle=t,r.RenderUtils.applyStyleToElement(t,this.textInputElement)},t.prototype.createFocusInputElement=function(t){this.inputElement=document.createElement(\"textarea\"),this.inputElement.readOnly=p.Browser.TouchUI,this.inputElement.setAttribute(\"class\",\"dxdi-focus-input\"),t.appendChild(this.inputElement)},t.prototype.attachInputElementEvents=function(){this.onInputBlurHandler=this.onInputBlur.bind(this),this.onInputFocusHandler=this.onInputFocus.bind(this),this.onInputKeyDownHandler=this.onInputKeyDown.bind(this),this.onInputKeyPressHandler=this.onInputKeyPress.bind(this),this.onInputKeyUpHandler=this.onInputKeyUp.bind(this),this.onPasteHandler=this.onPaste.bind(this),d.RenderHelper.addEventListener(this.inputElement,\"blur\",this.onInputBlurHandler),d.RenderHelper.addEventListener(this.inputElement,\"focus\",this.onInputFocusHandler),d.RenderHelper.addEventListener(this.inputElement,\"keydown\",this.onInputKeyDownHandler),d.RenderHelper.addEventListener(this.inputElement,\"keypress\",this.onInputKeyPressHandler),d.RenderHelper.addEventListener(this.inputElement,\"keyup\",this.onInputKeyUpHandler),d.RenderHelper.addEventListener(this.inputElement,\"paste\",this.onPasteHandler)},t.prototype.detachInputElementEvents=function(){d.RenderHelper.removeEventListener(this.inputElement,\"blur\",this.onInputBlurHandler),d.RenderHelper.removeEventListener(this.inputElement,\"focus\",this.onInputFocusHandler),d.RenderHelper.removeEventListener(this.inputElement,\"keydown\",this.onInputKeyDownHandler),d.RenderHelper.removeEventListener(this.inputElement,\"keypress\",this.onInputKeyPressHandler),d.RenderHelper.removeEventListener(this.inputElement,\"keyup\",this.onInputKeyUpHandler),d.RenderHelper.removeEventListener(this.inputElement,\"paste\",this.onPasteHandler)},t.prototype.createTextInputElement=function(t){this.textInputElementContainer=document.createElement(\"div\"),this.textInputElementContainer.setAttribute(\"class\",\"dxdi-text-input-container\"),t.appendChild(this.textInputElementContainer),this.textInputElement=document.createElement(\"textarea\"),this.textInputElement.setAttribute(\"class\",g),this.attachTextInputElementEvents(),this.textInputElementContainer.appendChild(this.textInputElement)},t.prototype.attachTextInputElementEvents=function(){this.onTextInputBlurHandler=this.onTextInputBlur.bind(this),this.onTextInputFocusHandler=this.onTextInputFocus.bind(this),this.onTextInputKeyDownHandler=this.onTextInputKeyDown.bind(this),this.onTextInputMouseWheelHandler=this.onTextInputMouseWheel.bind(this),this.onTextInputMouseUpHandler=this.onTextInputMouseUp.bind(this),this.onTextInputKeyUpHandler=this.onTextInputKeyUp.bind(this),this.onTextInputChangeHandler=this.onTextInputChange.bind(this),d.RenderHelper.addEventListener(this.textInputElement,\"mousewheel\",this.onTextInputMouseWheelHandler),d.RenderHelper.addEventListener(this.textInputElement,\"mouseup\",this.onTextInputMouseUpHandler),d.RenderHelper.addEventListener(this.textInputElement,\"blur\",this.onTextInputBlurHandler),d.RenderHelper.addEventListener(this.textInputElement,\"focus\",this.onTextInputFocusHandler),d.RenderHelper.addEventListener(this.textInputElement,\"keydown\",this.onTextInputKeyDownHandler),d.RenderHelper.addEventListener(this.textInputElement,\"keyup\",this.onTextInputKeyUpHandler),d.RenderHelper.addEventListener(this.textInputElement,\"change\",this.onTextInputChangeHandler)},t.prototype.detachTextInputElementEvents=function(){d.RenderHelper.removeEventListener(this.textInputElement,\"mousewheel\",this.onTextInputMouseWheelHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"mouseup\",this.onTextInputMouseUpHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"blur\",this.onTextInputBlurHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"focus\",this.onTextInputFocusHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"keydown\",this.onTextInputKeyDownHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"keyup\",this.onTextInputKeyUpHandler),d.RenderHelper.removeEventListener(this.textInputElement,\"change\",this.onTextInputChangeHandler)},t.prototype.createClipboardInputElement=function(t){this.clipboardInputElement=document.createElement(\"textarea\"),this.clipboardInputElement.setAttribute(\"class\",\"dxdi-clipboard-input\"),t.appendChild(this.clipboardInputElement)},t.prototype.blurControl=function(){this.focusLocked||(this.focused=!1,i.DomUtils.removeClassName(this.mainElement,\"focused\"))},t.prototype.focusControl=function(){this.focused=!0,this.focusLocked=!1,i.DomUtils.addClassName(this.mainElement,\"focused\")},t.prototype.updateTextInputPadding=function(){var t=this.textInputElement.value;if(this.savedTextInputSize){n=this.textMeasurer.measureWords(t,this.savedTextInputStyle,h.TextOwner.Shape),o=f.getTextHeight(t,this.savedTextInputSize.width,n,!0);var e=Math.max(0,.5*(this.savedTextInputSize.height-o));this.textInputElement.style.paddingTop=Math.ceil(e)+\"px\",this.textInputElement.style.height=Math.floor(this.savedTextInputSize.height)+\"px\"}else{var n=this.textMeasurer.measureWords(\" \",this.savedTextInputStyle,h.TextOwner.Connector),o=f.getLineHeight(n)*((f.textToParagraphs(t).length||1)+1);this.textInputElement.style.height=Math.ceil(o)+\"px\"}},t.prototype.onInputBlur=function(t){var e=this;this.blurControl(),r.raiseEvent(t,this.getDiagramFocusEvent(t),(function(t){return e.eventManager.onBlur(t)}))},t.prototype.onInputFocus=function(t){var e=this;this.focusControl(),r.raiseEvent(t,this.getDiagramFocusEvent(t),(function(t){return e.eventManager.onFocus(t)}))},t.prototype.onInputKeyDown=function(t){var e=this;r.raiseEvent(t,this.getDiagramKeyboardEvent(t),(function(t){return e.eventManager.onKeyDown(t)}))},t.prototype.onInputKeyPress=function(t){!t.preventDefault||p.Browser.Safari&&\"KeyV\"===t.code||t.preventDefault()},t.prototype.onInputKeyUp=function(t){var e=this;r.raiseEvent(t,this.getDiagramKeyboardEvent(t),(function(t){return e.eventManager.onKeyUp(t)}))},t.prototype.onTextInputBlur=function(t){var e=this;if(this.eventManager.canFinishTextEditing())this.blurControl(),r.raiseEvent(t,this.getDiagramFocusEvent(t),(function(t){return e.eventManager.onTextInputBlur(t)}));else{var n=u.EvtUtils.getEventSource(t);document.activeElement!==n&&n.focus()}},t.prototype.onTextInputFocus=function(t){var e=this;this.focusControl(),r.raiseEvent(t,this.getDiagramFocusEvent(t),(function(t){return e.eventManager.onTextInputFocus(t)}))},t.prototype.onTextInputKeyDown=function(t){var e=this;r.raiseEvent(t,this.getDiagramKeyboardEvent(t),(function(t){return e.eventManager.onTextInputKeyDown(t)}))},t.prototype.onTextInputKeyUp=function(t){this.updateTextInputPadding()},t.prototype.onTextInputChange=function(t){this.updateTextInputPadding()},t.prototype.onPaste=function(t){var e=this;r.raiseEvent(t,this.getDiagramClipboardEvent(t),(function(t){return e.eventManager.onPaste(t)}))},t.prototype.onTextInputMouseWheel=function(t){this.mouseWheelHandler&&this.mouseWheelHandler(t)},t.prototype.onTextInputMouseUp=function(t){t.stopPropagation&&t.stopPropagation(),u.EvtUtils.cancelBubble(t)},t.prototype.getDiagramKeyboardEvent=function(t){return new s.DiagramKeyboardEvent(o.KeyUtils.getKeyModifiers(t),o.KeyUtils.getEventKeyCode(t),this.textInputElement.value)},t.prototype.getTextInputElementValue=function(){return this.textInputElement.value},t.prototype.getDiagramFocusEvent=function(t){return new s.DiagramFocusEvent(t.target.value)},t.prototype.getDiagramClipboardEvent=function(t){var e,n=t.clipboardData||t.originalEvent&&t.originalEvent.clipboardData;return e=void 0!==n?n.getData(\"text/plain\"):window.clipboardData.getData(\"Text\"),new s.DiagramClipboardEvent(e)},t.prototype.isTextInputElement=function(t){return\"string\"==typeof t.className&&t.className.indexOf(g)>-1},t.prototype.lockFocus=function(){var t=this;this.focusLocked=!0,setTimeout((function(){return t.focusLocked=!1}),10)},t.prototype.notifyViewAdjusted=function(t){},t.prototype.notifyActualZoomChanged=function(t){this.actualZoom=t,this.savedTextInputPosition&&this.savedTextInputSize&&this.setTextInputElementBounds(this.savedTextInputPosition,this.savedTextInputSize,this.savedTextInputAngle)},t.prototype.notifyTextInputStart=function(t,e,n,o){var i,r=\"\";t instanceof a.Shape?(r=\"shape-text\",i=t.textAngle):t instanceof c.Connector&&(r=\"connector-text\"),o=o&&o.clone().applyConverter(l.UnitConverter.twipsToPixels),this.setInputElementTextInputMode(e,n,o,t.styleText,r,i)},t.prototype.notifyTextInputEnd=function(t,e){this.setInputElementFocusHandlerMode(e)},t.prototype.notifyTextInputPermissionsCheck=function(t,e){},t}();e.InputManager=m},4246:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextOwner=void 0,function(t){t[t.Shape=0]=\"Shape\",t[t.Connector=1]=\"Connector\",t[t.ExtensionLine=2]=\"ExtensionLine\",t[t.Resize=3]=\"Resize\"}(e.TextOwner||(e.TextOwner={}))},1733:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextMeasurer=void 0;var o=n(6353),i=n(3500),r=n(5503),s=n(7959),a=n(4246),c=n(1114),u=n(3490),h=function(){function t(t){this.cache={},this.fontSizeCache={},this.containers={},this.parent=t,this.createNodes()}return t.prototype.measureWords=function(t,e,n){var o=this,i={words:{},fontSize:-1},r=\"string\"==typeof t?this.splitToWords(t,!1):t.reduce((function(t,e){return t.concat(o.splitToWords(e,!1))}),[]);r.push(\" \");var s=this.getStyleHash(e,n),a=this.tryLoadWordsToMeasurer(r,e,s,n,void 0,void 0,void 0,void 0,i);if(a){var c=this.containers[n];this.putElementsInDOM(c,a),this.beforeMeasureInDOM(),this.measureElementsInDOM(a,i),this.afterMeasureInDOM()}return i},t.prototype.measureTextLine=function(t,e,n){var o=this.measureWords(t,e,n);return u.getTextLineSize(t,o)},t.prototype.onNewModel=function(t,e){var n=this;e.changeByFunc(null,(function(){return n.onNewModelCore(t)}))},t.prototype.onNewModelCore=function(t){var e=t.filter((function(t){return t instanceof r.Shape})),n=t.filter((function(t){return t instanceof s.Connector})),o=this.tryLoadShapeTexts(e),i=this.tryLoadConnectorTexts(n);(o||i)&&(o&&this.putElementsInDOM(this.containers[a.TextOwner.Shape],o),i&&this.putElementsInDOM(this.containers[a.TextOwner.Connector],i),this.beforeMeasureInDOM(),o&&this.measureElementsInDOM(o),i&&this.measureElementsInDOM(i),this.afterMeasureInDOM())},t.prototype.replaceParent=function(t){this.parent!==t&&(this.mainElement.parentNode&&t.appendChild(this.mainElement),this.parent=t)},t.prototype.clean=function(){i.RenderUtils.removeElement(this.mainElement)},t.prototype.tryLoadShapeTexts=function(t){var e=this,n={},o=[],i=[],r=[];return t.forEach((function(t){var s=e.getStyleHash(t.styleText,a.TextOwner.Shape);e.tryLoadWordsToMeasurer(e.splitToWords(t.text,!0),t.styleText,s,a.TextOwner.Shape,n,o,i,r)})),o.length?{elements:o,hashes:i,styleHashes:r}:null},t.prototype.tryLoadConnectorTexts=function(t){var e=this,n={},o=[],i=[],r=[];return t.forEach((function(t){var s=t.texts.map((function(t){return t.value})).reduce((function(t,n){return t.concat(e.splitToWords(n,!1))}),[]);if(s.length){s.push(\" \");var c=e.getStyleHash(t.styleText,a.TextOwner.Connector);e.tryLoadWordsToMeasurer(s,t.styleText,c,a.TextOwner.Connector,n,o,i,r)}})),o.length?{elements:o,hashes:i,styleHashes:r}:null},t.prototype.tryLoadWordsToMeasurer=function(t,e,n,o,i,r,s,a,c){var u=this,h=[];return r=r||[],s=s||[],a=a||[],i=i||{},t.forEach((function(t){return u.tryLoadWordToMeasurer(t,e,n,o,i,r,s,a,h,c)})),r.length?{elements:r,hashes:s,styleHashes:a,newWords:h}:null},t.prototype.putElementsInDOM=function(t,e){for(t.parentNode&&t.parentNode.removeChild(t);t.firstChild;)t.removeChild(t.firstChild);e.elements.forEach((function(e){return t.appendChild(e)})),this.svgElement.appendChild(t)},t.prototype.measureElementsInDOM=function(t,e){for(var n=t.hashes,o=t.elements,i=t.newWords,r=n.length,s=0;s<r;s++){var a=this.getDomElementSize(o[s]);a&&(a.isEmpty()||(this.cache[n[s]]=a),e&&(e.words[i[s]]=a));var c=t.styleHashes[s];void 0===this.fontSizeCache[c]&&(this.fontSizeCache[c]=this.getDomFontSize(o[s])),e&&e.fontSize<0&&(e.fontSize=this.fontSizeCache[c])}},t.prototype.beforeMeasureInDOM=function(){this.parent.appendChild(this.mainElement)},t.prototype.afterMeasureInDOM=function(){this.mainElement.parentNode&&this.mainElement.parentNode.removeChild(this.mainElement)},t.prototype.tryLoadWordToMeasurer=function(t,e,n,o,i,r,s,a,c,u){var h=this.getHash(t,e,o),p=this.cache[h];p||i[h]?p&&u&&(u.words[t]=p,u.fontSize=this.fontSizeCache[n]):(i[h]=!0,s.push(h),r.push(this.createElement(t,e)),a.push(n),c.push(t))},t.prototype.getHash=function(t,e,n){return n+\"|\"+(e&&e.toHash())+\"|\"+t},t.prototype.getStyleHash=function(t,e){return this.getHash(\" \",t,e)},t.prototype.createElement=function(t,e){var n=document.createElementNS(c.svgNS,\"text\");return\" \"===t&&n.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),n.textContent=t,e&&i.RenderUtils.applyStyleToElement(e,n),n},t.prototype.splitToWords=function(t,e){var n=u.textToWords(t);return e&&n.push(\" \"),n},t.prototype.getDomFontSize=function(t){return parseFloat(window.getComputedStyle(t).fontSize)},t.prototype.getDomElementSize=function(t){var e;try{e=t.getBBox()}catch(t){}return e?new o.Size(e.width,e.height):new o.Size(0,0)},t.prototype.createNodes=function(){this.mainElement=c.RenderHelper.createMainElement(void 0,!0),this.svgElement=c.RenderHelper.createSvgElement(this.mainElement,!1),this.createContainer(a.TextOwner.Shape,\"shape\"),this.createContainer(a.TextOwner.Connector,\"connector\"),this.createContainer(a.TextOwner.ExtensionLine,\"extension-line\"),this.createContainer(a.TextOwner.Resize,\"resize-info\")},t.prototype.createContainer=function(t,e){var n=document.createElementNS(c.svgNS,\"g\");n.setAttribute(\"class\",e),this.containers[t]=n},t}();e.TextMeasurer=h},4593:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ClipPathPrimitive=void 0;var r=n(1114),s=function(t){function e(e,n){var o=t.call(this)||this;return o.id=e,o.children=n,o}return i(e,t),e.prototype.createMainElement=function(){var t=document.createElementNS(r.svgNS,\"clipPath\");return t.setAttribute(\"id\",this.id),t},e.prototype.applyElementProperties=function(e,n){this.id&&e.setAttribute(\"id\",this.id),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.ClipPathPrimitive=s},418:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.EllipsePrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a){var c=t.call(this,r,s,void 0,a)||this;return c.cx=e,c.cy=n,c.rx=o,c.ry=i,c}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"ellipse\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"cx\",this.cx),this.setUnitAttribute(e,\"cy\",this.cy),this.setUnitAttribute(e,\"rx\",this.rx),this.setUnitAttribute(e,\"ry\",this.ry),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.EllipsePrimitive=s},4628:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.FilterPrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r){var s=t.call(this)||this;return s.id=e,s.x=n,s.y=o,s.width=i,s.height=r,s}return i(e,t),e.prototype.createMainElement=function(){var t=document.createElementNS(r.svgNS,\"filter\");return t.setAttribute(\"id\",this.id),t},e.prototype.applyElementProperties=function(e,n){this.id&&e.setAttribute(\"id\",this.id),this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.setUnitAttribute(e,\"width\",this.width),this.setUnitAttribute(e,\"height\",this.height),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.FilterPrimitive=s},5329:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.GroupPrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s){var a=t.call(this,null,n,i,r)||this;return a.zIndex=o,a.onBeforeDispose=s,a.children=e,a}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"g\")},e.prototype.applyElementProperties=function(e,n){(this.zIndex||0===this.zIndex)&&e.style.setProperty(\"z-index\",this.zIndex.toString()),t.prototype.applyElementProperties.call(this,e,n)},e.prototype.dispose=function(){this.onBeforeDispose&&this.onBeforeDispose(),t.prototype.dispose.call(this)},e}(n(4178).SvgPrimitive);e.GroupPrimitive=s},1995:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ImagePrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a,c){void 0===s&&(s=\"none\");var u=t.call(this,a,c)||this;return u.x=e,u.y=n,u.width=o,u.height=i,u.url=r,u.preserveAspectRatio=s,u}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"image\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.setUnitAttribute(e,\"width\",this.width),this.setUnitAttribute(e,\"height\",this.height),this.setPositionCorrectionAttribute(e),e.setAttribute(\"href\",this.url),e.setAttribute(\"preserveAspectRatio\",this.preserveAspectRatio),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.ImagePrimitive=s},7724:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PathPrimitiveClosePathCommand=e.PathPrimitiveArcToCommand=e.PathPrimitiveQuadraticCurveToCommand=e.PathPrimitiveCubicCurveToCommand=e.PathPrimitiveLineToCommand=e.PathPrimitiveMoveToCommand=e.PathPrimitiveCommand=e.PathPrimitive=void 0;var r=n(1114),s=n(4178),a=n(9886),c=function(t){function e(e,n,o,i,r){var s=t.call(this,n,o,i,r)||this;return s.commands=e.map((function(t){return t.style=n,t})),s}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"path\")},e.prototype.applyElementProperties=function(e,n){e.setAttribute(\"d\",this.commands.map((function(t){return t.toString()})).join(\" \")),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e}(s.SvgPrimitive);e.PathPrimitive=c;var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e}(a.PrimitiveObject);e.PathPrimitiveCommand=u;var h=function(t){function e(e,n){var o=t.call(this)||this;return o.x=e,o.y=n,o}return i(e,t),e.prototype.toString=function(){return\"M \"+this.getUnitVaue(this.x)+\" \"+this.getUnitVaue(this.y)},e.fromPoint=function(t){return new e(t.x,t.y)},e}(u);e.PathPrimitiveMoveToCommand=h;var p=function(t){function e(e,n){var o=t.call(this)||this;return o.x=e,o.y=n,o}return i(e,t),e.prototype.toString=function(){return\"L \"+this.getUnitVaue(this.x)+\" \"+this.getUnitVaue(this.y)},e.fromPoint=function(t){return new e(t.x,t.y)},e}(u);e.PathPrimitiveLineToCommand=p;var l=function(t){function e(e,n,o,i,r,s){var a=t.call(this)||this;return a.x1=e,a.y1=n,a.x2=o,a.y2=i,a.x3=r,a.y3=s,a}return i(e,t),e.prototype.toString=function(){return\"C \"+this.getUnitVaue(this.x1)+\" \"+this.getUnitVaue(this.y1)+\",\"+this.getUnitVaue(this.x2)+\" \"+this.getUnitVaue(this.y2)+\",\"+this.getUnitVaue(this.x3)+\" \"+this.getUnitVaue(this.y3)},e}(u);e.PathPrimitiveCubicCurveToCommand=l;var d=function(t){function e(e,n,o,i){var r=t.call(this)||this;return r.x1=e,r.y1=n,r.x2=o,r.y2=i,r}return i(e,t),e.prototype.toString=function(){return\"Q \"+this.getUnitVaue(this.x1)+\" \"+this.getUnitVaue(this.y1)+\",\"+this.getUnitVaue(this.x2)+\" \"+this.getUnitVaue(this.y2)},e}(u);e.PathPrimitiveQuadraticCurveToCommand=d;var f=function(t){function e(e,n,o,i,r,s,a){var c=t.call(this)||this;return c.rx=e,c.ry=n,c.xAxisRotation=o,c.largeArcFlag=i,c.sweepFag=r,c.x=s,c.y=a,c}return i(e,t),e.prototype.toString=function(){return\"A \"+this.getUnitVaue(this.rx)+\" \"+this.getUnitVaue(this.ry)+\" \"+this.getUnitVaue(this.xAxisRotation)+\" \"+(this.largeArcFlag?\"1\":\"0\")+\" \"+(this.sweepFag?\"1\":\"0\")+this.getUnitVaue(this.x)+\",\"+this.getUnitVaue(this.y)},e}(u);e.PathPrimitiveArcToCommand=f;var y=function(t){function e(){return t.call(this)||this}return i(e,t),e.prototype.toString=function(){return\"z\"},e}(u);e.PathPrimitiveClosePathCommand=y},1932:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.PatternPrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a){var c=t.call(this,a)||this;return c.id=e,c.x=o,c.y=i,c.width=r,c.height=s,c.children=n,c}return i(e,t),e.prototype.createMainElement=function(){var t=document.createElementNS(r.svgNS,\"pattern\");return t.setAttribute(\"patternUnits\",\"userSpaceOnUse\"),t.setAttribute(\"id\",this.id),t},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.setUnitAttribute(e,\"width\",this.width),this.setUnitAttribute(e,\"height\",this.height),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.PatternPrimitive=s},4178:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SvgPrimitive=void 0;var r=n(3500),s=function(t){function e(e,n,o,i){var r=t.call(this,e)||this;return r.className=n,r.clipPathId=o,r.onApplyProperties=i,r.children=[],r}return i(e,t),e.prototype.createElement=function(t){var e=this.createMainElement();return this.createChildElements(e),t(e),this.createCustomContent(e),e},e.prototype.createChildElements=function(t){for(var e=0;e<this.children.length;e++)this.children[e].createElement((function(e){return t.appendChild(e)}))},e.prototype.applyElementProperties=function(t,e){this.applyElementStyleProperties(t),this.className&&t.setAttribute(\"class\",this.className),\"string\"==typeof this.clipPathId&&(this.clipPathId?t.setAttribute(\"clip-path\",r.RenderUtils.getUrlPathById(this.clipPathId)):t.removeAttribute(\"clip-path\")),this.onApplyProperties&&this.onApplyProperties(t),this.applyChildrenProperties(t,e)},e.prototype.applyChildrenProperties=function(t,e){for(var n=0;n<this.children.length;n++)this.children[n].applyElementProperties(t.childNodes[n],e)},e.prototype.applyElementStyleProperties=function(t){this.applyElementStylePropertiesCore(t)},e.prototype.applyElementStylePropertiesCore=function(t,e){void 0===e&&(e=!1),this.style&&r.RenderUtils.applyStyleToElement(this.style,t,e)},e.prototype.createCustomContent=function(t){},e.prototype.destroyCustomContent=function(t){},e.prototype.dispose=function(){this.children&&this.children.forEach((function(t){return t.dispose()}))},e}(n(9886).PrimitiveObject);e.SvgPrimitive=s},9886:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.PrimitiveObject=void 0;var o=n(9291),i=function(){function t(t){this.style=t}return Object.defineProperty(t.prototype,\"strokeWidthPx\",{get:function(){return this.style?this.style.strokeWidthPx:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"strokeOffset\",{get:function(){return this.style?this.style.strokeOffset:0},enumerable:!1,configurable:!0}),t.prototype.getUnitVaue=function(t){return\"number\"==typeof t?o.UnitConverter.twipsToPixels(t).toString():t},t.prototype.setUnitAttribute=function(t,e,n){null!=n&&t.setAttribute(e,this.getUnitVaue(n))},t.prototype.setPositionCorrectionAttribute=function(t){var e=this.strokeWidthPx%2==1?\"translate(\"+this.strokeOffset+\", \"+this.strokeOffset+\")\":\"\";t.setAttribute(\"transform\",e)},t}();e.PrimitiveObject=i},4716:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.RectanglePrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a,c){var u=t.call(this,r,s,a,c)||this;return u.x=e,u.y=n,u.width=o,u.height=i,u}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"rect\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.setUnitAttribute(e,\"width\",this.width),this.setUnitAttribute(e,\"height\",this.height),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4178).SvgPrimitive);e.RectanglePrimitive=s},4538:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.RoundedRectanglePrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a,c,u,h){void 0===r&&(r=0),void 0===s&&(s=0);var p=t.call(this,e,n,o,i,a,c,u,h)||this;return p.x=e,p.y=n,p.width=o,p.height=i,p.rx=r,p.ry=s,p}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"rect\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"rx\",this.rx),this.setUnitAttribute(e,\"ry\",this.ry),t.prototype.applyElementProperties.call(this,e,n)},e}(n(4716).RectanglePrimitive);e.RoundedRectanglePrimitive=s},3281:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShadowFilterPrimitive=void 0;var r=n(4628),s=n(1114),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.createChildElements=function(t){var e=document.createElementNS(s.svgNS,\"feGaussianBlur\");e.setAttribute(\"in\",\"SourceGraphic\"),e.setAttribute(\"stdDeviation\",\"4.6\"),t.appendChild(e);var n=document.createElementNS(s.svgNS,\"feOffset\");n.setAttribute(\"dx\",\"0\"),n.setAttribute(\"dy\",\"0\"),t.appendChild(n);var o=document.createElementNS(s.svgNS,\"feMerge\");t.appendChild(o);var i=document.createElementNS(s.svgNS,\"feMergeNode\");o.appendChild(i);var r=document.createElementNS(s.svgNS,\"feMergeNode\");r.setAttribute(\"in\",\"SourceGraphic\"),o.appendChild(r)},e}(r.FilterPrimitive);e.ShadowFilterPrimitive=a},1248:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.SvgElementPrimitive=void 0;var r=n(1114),s=function(t){function e(e,n,o,i,r,s,a,c,u){var h=t.call(this,null,c,void 0,u)||this;return h.x=e,h.y=n,h.width=o,h.height=i,h.createContent=r,h.destroyContent=s,h.data=a,h}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(r.svgNS,\"svg\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.setUnitAttribute(e,\"width\",this.width),this.setUnitAttribute(e,\"height\",this.height),this.setPositionCorrectionAttribute(e),t.prototype.applyElementProperties.call(this,e,n)},e.prototype.createCustomContent=function(t){this.createContent&&this.createContent(t,this.data)},e.prototype.destroyCustomContent=function(t){this.destroyContent&&this.destroyContent(t)},e}(n(4178).SvgPrimitive);e.SvgElementPrimitive=s},3360:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextFloodFilterPrimitive=e.TextFilterPrimitive=void 0;var r=n(1114),s=n(4628),a=n(6613),c=n(13),u=function(t){function e(e,n,o,i,r){void 0===n&&(n=\"-0.05\"),void 0===o&&(o=\"-0.05\"),void 0===i&&(i=\"1.1\"),void 0===r&&(r=\"1.1\");var s=t.call(this,e,n,o,i,r)||this;return s.id=e,s.x=n,s.y=o,s.width=i,s.height=r,s}return i(e,t),e.prototype.createChildElements=function(t){var e=document.createElementNS(r.svgNS,\"feFlood\");t.appendChild(e);var n=document.createElementNS(r.svgNS,\"feComposite\");n.setAttribute(\"in\",\"SourceGraphic\"),n.setAttribute(\"operator\",\"atop\"),t.appendChild(n)},e}(s.FilterPrimitive);e.TextFilterPrimitive=u;var h=function(t){function e(e,n,o,i,r,s){void 0===o&&(o=\"-0.05\"),void 0===i&&(i=\"-0.05\"),void 0===r&&(r=\"1.1\"),void 0===s&&(s=\"1.1\");var a=t.call(this,e,o,i,r,s)||this;return a.id=e,a.floodColor=n,a.x=o,a.y=i,a.width=r,a.height=s,a}return i(e,t),e.prototype.applyChildrenProperties=function(t){for(var e=void 0,n=0;e=t.childNodes[n];n++)if(e.nodeName&&\"FEFLOOD\"===e.nodeName.toUpperCase()){this.prepareFEFloodNode(e);break}},e.prototype.prepareFEFloodNode=function(t){var e=c.ColorUtils.colorToHash(this.floodColor);t.setAttribute(\"flood-color\",e),t.setAttribute(\"class\",\"text-filter-flood\"),this.floodColor!==a.DiagramModel.defaultPageColor?t.style.setProperty(\"flood-color\",e):t.style.setProperty(\"flood-color\",\"\")},e}(u);e.TextFloodFilterPrimitive=h},9416:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextPrimitive270degRenderHelper=e.TextPrimitive180degRenderHelper=e.TextPrimitive90degRenderHelper=e.TextPrimitiveRenderHelper=e.TextPrimitive=e.TextAngle=void 0;var r,s=n(9291),a=n(1114),c=n(4178),u=n(3500),h=n(3490);!function(t){t[t.Angle0deg=0]=\"Angle0deg\",t[t.Angle90deg=90]=\"Angle90deg\",t[t.Angle180deg=180]=\"Angle180deg\",t[t.Angle270deg=270]=\"Angle270deg\"}(r=e.TextAngle||(e.TextAngle={}));var p=function(t){function e(e,n,o,i,r,s,a,c,u,p,l,d,f){var y=t.call(this,c,\"\",p,f)||this;return y.x=e,y.y=n,y.text=o,y.owner=i,y.textWidth=r,y.textHeight=s,y.textSpacing=a,y.reverseTextAhchor=u,y.angle=d,y.filterId=l,y.textSegmens=h.textToParagraphs(y.text),y.renderHelper=y.createRenderHelper(),void 0!==y.textWidth&&void 0!==y.textWidth&&(y.x=y.renderHelper.getTextX(y.x),y.y=y.renderHelper.getTextY(y.y)),y}return i(e,t),e.prototype.createMainElement=function(){return document.createElementNS(a.svgNS,\"text\")},e.prototype.applyElementProperties=function(e,n){this.setUnitAttribute(e,\"x\",this.x),this.setUnitAttribute(e,\"y\",this.y),this.filterId&&e.setAttribute(\"filter\",u.RenderUtils.getUrlPathById(this.filterId)),t.prototype.applyElementProperties.call(this,e,n),e.getAttribute(\"appliedText\")!==this.text||e.getAttribute(\"appliedSize\")!==(this.fitToSize&&this.fitToSize.toString())?(this.createTSpanElements(e,n),e.setAttribute(\"appliedText\",this.text),e.setAttribute(\"appliedSize\",this.fitToSize&&this.fitToSize.toString())):this.prepareTSpanElements(e),this.renderHelper.prepareMainElement(e,this.x,this.y)},e.prototype.createTSpanElements=function(t,e){var n=this;u.RenderUtils.removeContent(t),this.textSegmens.forEach((function(o,i){if(!o&&n.textSegmens.length>1)n.createTSpanElement(t).textContent=\" \";else if(n.fitToSize){var r=h.textToWords(o),a=h.wordsByLines(s.UnitConverter.twipsToPixels(n.fitToSize),r,(function(){return e.measureWords(r,n.style,n.owner)}));if(a.forEach((function(e){n.createTSpanElement(t).textContent=e})),!a.length)n.createTSpanElement(t).textContent=\" \"}else{n.createTSpanElement(t).textContent=o}}));var o=t.firstChild;o&&this.prepareFirstTSpanElement(o,t.childNodes.length)},e.prototype.createTSpanElement=function(t){var e=document.createElementNS(a.svgNS,\"tspan\");return t.appendChild(e),this.prepareTSpanElement(e),e},e.prototype.prepareTSpanElements=function(t){for(var e=0;e<t.childNodes.length;e++){var n=t.childNodes[e];this.prepareTSpanElement(n)}var o=t.firstChild;o&&this.prepareFirstTSpanElement(o,t.childNodes.length)},e.prototype.prepareTSpanElement=function(t){this.renderHelper.prepareTSpanElement(t,this.x,this.y)},e.prototype.prepareFirstTSpanElement=function(t,e){this.renderHelper.prepareFirstTSpanElement(t,e)},e.prototype.applyElementStyleProperties=function(t){this.applyElementStylePropertiesCore(t,this.reverseTextAhchor)},Object.defineProperty(e.prototype,\"fitToSize\",{get:function(){return this.renderHelper.fitToSize},enumerable:!1,configurable:!0}),e.prototype.createRenderHelper=function(){switch(this.angle){case r.Angle90deg:return new d(this);case r.Angle180deg:return new f(this);case r.Angle270deg:return new y(this);default:return new l(this)}},e.baselineCorrection=.35,e}(c.SvgPrimitive);e.TextPrimitive=p;var l=function(){function t(t){this.primitive=t}return Object.defineProperty(t.prototype,\"textWidth\",{get:function(){return this.primitive.textWidth},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"textHeight\",{get:function(){return this.primitive.textHeight},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"fitToSize\",{get:function(){return this.textWidth},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"textAnchor\",{get:function(){return this.primitive.style[\"text-anchor\"]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"textSpacing\",{get:function(){return this.primitive.textSpacing},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"angle\",{get:function(){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"needRotation\",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.prepareMainElement=function(t,e,n){this.needRotation&&t.setAttribute(\"transform\",\"rotate(\"+this.angle+\", \"+s.UnitConverter.twipsToPixels(e)+\", \"+s.UnitConverter.twipsToPixels(n)+\")\")},t.prototype.prepareTSpanElement=function(t,e,n){this.primitive.setUnitAttribute(t,\"x\",e),t.setAttribute(\"dy\",h.LINE_HEIGHT+\"em\")},t.prototype.prepareFirstTSpanElement=function(t,e){var n=-(e-1)/2+p.baselineCorrection;t.setAttribute(\"dy\",n.toFixed(2)+\"em\")},t.prototype.getTextX=function(t){return this.textAnchor&&\"middle\"!==this.textAnchor?\"end\"===this.textAnchor?t+this.textWidth-this.textSpacing:\"start\"===this.textAnchor?t+this.textSpacing:t:t+this.textWidth/2},t.prototype.getTextY=function(t){return t+this.textHeight/2},t.prototype.setUnitAttribute=function(t,e,n){this.primitive.setUnitAttribute(t,e,n)},t}();e.TextPrimitiveRenderHelper=l;var d=function(t){function e(e){return t.call(this,e)||this}return i(e,t),Object.defineProperty(e.prototype,\"fitToSize\",{get:function(){return this.textHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"angle\",{get:function(){return 90},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"needRotation\",{get:function(){return!0},enumerable:!1,configurable:!0}),e.prototype.getTextX=function(t){return t+this.textWidth/2},e.prototype.getTextY=function(t){return this.textAnchor&&\"middle\"!==this.textAnchor?\"end\"===this.textAnchor?t+this.textHeight-this.textSpacing:\"start\"===this.textAnchor?t+this.textSpacing:t:t+this.textHeight/2},e}(l);e.TextPrimitive90degRenderHelper=d;var f=function(t){function e(e){return t.call(this,e)||this}return i(e,t),Object.defineProperty(e.prototype,\"angle\",{get:function(){return 180},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"needRotation\",{get:function(){return!0},enumerable:!1,configurable:!0}),e.prototype.getTextX=function(t){return this.textAnchor&&\"middle\"!==this.textAnchor?\"start\"===this.textAnchor?t+this.textWidth-this.textSpacing:\"end\"===this.textAnchor?t+this.textSpacing:t:t+this.textWidth/2},e}(l);e.TextPrimitive180degRenderHelper=f;var y=function(t){function e(e){return t.call(this,e)||this}return i(e,t),Object.defineProperty(e.prototype,\"angle\",{get:function(){return 270},enumerable:!1,configurable:!0}),e.prototype.getTextY=function(t){return this.textAnchor&&\"middle\"!==this.textAnchor?\"start\"===this.textAnchor?t+this.textHeight-this.textSpacing:\"end\"===this.textAnchor?t+this.textSpacing:t:t+this.textHeight/2},e}(d);e.TextPrimitive270degRenderHelper=y},1114:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RenderHelper=e.svgNS=void 0;var o=n(9463);e.svgNS=\"http://www.w3.org/2000/svg\";var i=function(){function t(){}return t.createSvgElement=function(t,n){void 0===n&&(n=!1);var o=document.createElementNS(e.svgNS,\"svg\");return o.className.baseVal=\"dxdi-canvas\"+(n?\" export\":\"\"),t&&t.appendChild(o),o},t.createMainElement=function(t,e){void 0===e&&(e=!1);var n=document.createElement(\"div\");return n.setAttribute(\"class\",\"dxdi-control\"+(e?\" measurer\":\"\")),o.Diagnostics.optimizeLayers&&(n.style.transform=\"translateZ(0)\"),t&&t.appendChild(n),n},t.addEventListener=function(t,e,n){t.addEventListener(e,n)},t.removeEventListener=function(t,e,n){t.removeEventListener(e,n)},t}();e.RenderHelper=i},8098:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.RenderManager=e.DBL_CLICK_TIMEOUT=e.LONG_TOUCH_TIMEOUT=void 0;var o=n(6031),i=n(3714),r=n(6907),s=n(8900),a=n(2153),c=n(9279),u=n(3500),h=n(8693),p=n(7376),l=n(240),d=n(741),f=n(6043),y=n(9757),g=n(4e3),m=n(6557),v=n(1733),P=n(1114),C=n(6078),S=n(8675),x=\"dxdi-touch-action\";e.LONG_TOUCH_TIMEOUT=500,e.DBL_CLICK_TIMEOUT=500;var b=function(){function t(t,e,n,o,i,r,s){this.moveLocked=!1,this.lockMouseMoveTimer=-1,this.lastClickElement=void 0,this.longTouchTimer=void 0,this.dblTouchTimer=void 0,this.pointers={};var a=P.RenderHelper.createMainElement(t),c=P.RenderHelper.createSvgElement(a);this.instanceId=i,this.scroll=r||new p.NativeScrollView(t),this.measurer=n,this.dom=new C.DOMManipulator(this.measurer),this.view=new y.CanvasViewManager(this.scroll,c,o.modelSize,o.zoomLevel,o.autoZoom,o.simpleView,o.rectangle,this.dom,this.instanceId),this.input=new d.InputManager(a,this.view,e,this.measurer,o.zoomLevel,s),this.items=new h.CanvasItemsManager(this.view.canvasElement,o.zoomLevel,this.dom,this.instanceId),this.page=new f.CanvasPageManager(this.view.pageElement,o,this.dom,this.instanceId),this.selection=new g.CanvasSelectionManager(this.view.canvasElement,o.zoomLevel,o.readOnly,this.dom,this.instanceId),this.contextMenuEnabled=o.contextMenuEnabled,this.view.onViewChanged.add(this.page),this.view.onViewChanged.add(this.items),this.view.onViewChanged.add(this.selection),this.view.onViewChanged.add(this.input),this.autoScroll=new m.AutoScrollController(this.scroll,c,this.view,this.dom),this.attachEvents(c),this.mainElement=a,this.svgElement=c,this.events=e,this.notifyReadOnlyChanged(o.readOnly)}return t.prototype.clean=function(t){this.killLockMouseMoveTimer(),this.clearLastMouseDownEvent(),this.detachEvents(this.svgElement),this.scroll.detachEvents(),this.input.detachEvents(),this.dom.cancelAnimation(),t&&t(this.mainElement)},t.prototype.replaceParent=function(t,e){this.mainElement&&this.mainElement.parentNode!==t&&t.appendChild(this.mainElement),e&&e!==this.scroll&&(this.scroll&&this.scroll.detachEvents(),this.scroll=e),this.measurer instanceof v.TextMeasurer&&this.measurer.replaceParent(t)},t.prototype.update=function(t){this.view.adjust({horizontal:!t,vertical:!t}),this.page.redraw()},t.prototype.onNewModel=function(t){this.measurer.onNewModel(t,this.dom)},t.prototype.clear=function(){this.items.clear(),this.selection.clear()},t.prototype.attachPointerEvents=function(t){r.DomUtils.addClassName(t,x),P.RenderHelper.addEventListener(t,\"pointerdown\",this.onPointerDownHandler),P.RenderHelper.addEventListener(c.Browser.TouchUI?t:document,\"pointerup\",this.onPointerUpHandler),P.RenderHelper.addEventListener(c.Browser.TouchUI?t:document,\"pointermove\",this.onPointerMoveHandler),P.RenderHelper.addEventListener(t,\"pointercancel\",this.onPointerCancelHandler),P.RenderHelper.addEventListener(t,\"pointerleave\",this.onPointerLeaveHandler)},t.prototype.detachPointerEvents=function(t){P.RenderHelper.removeEventListener(t,\"pointerdown\",this.onPointerDownHandler),P.RenderHelper.removeEventListener(c.Browser.TouchUI?t:document,\"pointerup\",this.onPointerUpHandler),P.RenderHelper.removeEventListener(c.Browser.TouchUI?t:document,\"pointermove\",this.onPointerMoveHandler),P.RenderHelper.removeEventListener(t,\"pointercancel\",this.onPointerCancelHandler),P.RenderHelper.removeEventListener(t,\"pointerleave\",this.onPointerLeaveHandler),r.DomUtils.removeClassName(t,x)},t.prototype.attachMouseTouchEvents=function(t){P.RenderHelper.addEventListener(t,this.mouseDownEventName,this.onMouseDownHandler),P.RenderHelper.addEventListener(document,this.mouseMoveEventName,this.onMouseMoveHandler),P.RenderHelper.addEventListener(document,this.mouseUpEventName,this.onMouseUpHandler)},t.prototype.detachMouseTouchEvents=function(t){P.RenderHelper.removeEventListener(t,this.mouseDownEventName,this.onMouseDownHandler),P.RenderHelper.removeEventListener(document,this.mouseMoveEventName,this.onMouseMoveHandler),P.RenderHelper.removeEventListener(document,this.mouseUpEventName,this.onMouseUpHandler)},t.prototype.attachEvents=function(t){this.mouseDownEventName=c.Browser.TouchUI?\"touchstart\":\"mousedown\",this.mouseMoveEventName=c.Browser.TouchUI?\"touchmove\":\"mousemove\",this.mouseUpEventName=c.Browser.TouchUI?\"touchend\":\"mouseup\",this.onPointerDownHandler=this.onPointerDown.bind(this),this.onPointerUpHandler=this.onPointerUp.bind(this),this.onPointerMoveHandler=this.onPointerMove.bind(this),this.onPointerCancelHandler=this.onPointerCancel.bind(this),this.onPointerLeaveHandler=this.onPointerLeave.bind(this),this.onMouseDownHandler=this.onMouseDown.bind(this),this.onMouseEnterHandler=this.onMouseEnter.bind(this),this.onMouseLeaveHandler=this.onMouseLeave.bind(this),this.onMouseWheelHandler=this.onMouseWheel.bind(this),this.onMouseDblClickHandler=this.onMouseDblClick.bind(this),this.onContextMenuHandler=this.onContextMenu.bind(this),this.onMouseMoveHandler=this.onMouseMove.bind(this),this.onMouseUpHandler=this.onMouseUp.bind(this),this.onWindowResizelHandler=this.onWindowResize.bind(this),this.onOrientationChangeHandler=this.onOrientationChange.bind(this),this.onMouseClickHandler=this.onMouseClick.bind(this),S.EventUtils.isPointerEvents()?this.attachPointerEvents(t):(this.attachMouseTouchEvents(t),P.RenderHelper.addEventListener(t,\"mouseenter\",this.onMouseEnterHandler),P.RenderHelper.addEventListener(t,\"mouseleave\",this.onMouseLeaveHandler)),P.RenderHelper.addEventListener(t,\"wheel\",this.onMouseWheelHandler),P.RenderHelper.addEventListener(t,\"dblclick\",this.onMouseDblClickHandler),P.RenderHelper.addEventListener(t,\"click\",this.onMouseClickHandler),P.RenderHelper.addEventListener(t,\"contextmenu\",this.onContextMenuHandler),P.RenderHelper.addEventListener(window,\"resize\",this.onWindowResizelHandler),P.RenderHelper.addEventListener(window,\"orientationchange\",this.onOrientationChangeHandler),this.input.mouseWheelHandler=this.onMouseWheelHandler},t.prototype.detachEvents=function(t){S.EventUtils.isPointerEvents()?this.detachPointerEvents(t):(this.detachMouseTouchEvents(t),P.RenderHelper.removeEventListener(t,\"mouseenter\",this.onMouseEnterHandler),P.RenderHelper.removeEventListener(t,\"mouseleave\",this.onMouseLeaveHandler)),P.RenderHelper.removeEventListener(t,\"wheel\",this.onMouseWheelHandler),P.RenderHelper.removeEventListener(t,\"dblclick\",this.onMouseDblClickHandler),P.RenderHelper.removeEventListener(t,\"contextmenu\",this.onContextMenuHandler),P.RenderHelper.removeEventListener(t,\"click\",this.onMouseClickHandler),P.RenderHelper.removeEventListener(window,\"resize\",this.onWindowResizelHandler),P.RenderHelper.removeEventListener(window,\"orientationchange\",this.onOrientationChangeHandler)},t.prototype.setPointerPosition=function(t){this.pointers[t.pointerId]={clientX:t.clientX,clientY:t.clientY}},t.prototype.clearPointerPosition=function(t){delete this.pointers[t.pointerId]},t.prototype.onPointerDown=function(t){this.setPointerPosition(t),this.getPointerCount()>2&&(this.pointers={}),this.onMouseDown(t)},t.prototype.onPointerUp=function(t){this.clearPointerPosition(t),this.onMouseUp(t)},t.prototype.onPointerMove=function(t){(c.Browser.TouchUI&&!S.EventUtils.isMousePointer(t)||S.EventUtils.isLeftButtonPressed(t))&&this.setPointerPosition(t),this.onMouseMove(t)},t.prototype.onPointerCancel=function(t){this.clearPointerPosition(t)},t.prototype.onPointerLeave=function(t){S.EventUtils.isMousePointer(t)&&this.onMouseLeave(t),this.clearPointerPosition(t)},t.prototype.onMouseDown=function(t){var e=this;this.lockMouseMove(),this.input.lockFocus(),this.autoScroll.onMouseDown(t),this.lastDownMouseEvent=this.createDiagramMouseEvent(t),u.raiseEvent(t,this.lastDownMouseEvent,(function(t){return e.events.onMouseDown(t)})),this.events.canFinishTextEditing()&&this.input.captureFocus(),S.EventUtils.isTouchEvent(t)&&this.processTouchDown(t);var n=i.EvtUtils.getEventSource(t),o=n&&n.tagName;if(c.Browser.TouchUI||\"img\"===o.toLowerCase()||\"image\"===o.toLowerCase())return i.EvtUtils.preventEventAndBubble(t),!1},t.prototype.onMouseMove=function(t){var e=this;this.moveLocked||(this.autoScroll.onMouseMove(t,(function(){return e.onMouseMoveCore(t)})),this.onMouseMoveCore(t),c.Browser.IE&&this.lockMouseMove(),S.EventUtils.isTouchEvent(t)&&this.processTouchMove(t))},t.prototype.onMouseMoveCore=function(t){var e=this;u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return e.events.onMouseMove(t)}))},t.prototype.onMouseUp=function(t){var e=this;this.lockMouseMove();var n=this.createDiagramMouseEvent(t);u.raiseEvent(t,n,(function(t){return e.events.onMouseUp(t)})),this.autoScroll.onMouseUp(t),n.source.type!==o.MouseEventElementType.Undefined&&this.input.captureFocus(!0),S.EventUtils.isTouchEvent(t)&&this.processTouchUp(t)},t.prototype.onMouseEnter=function(t){var e=this;this.autoScroll.onMouseEnter(t),u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return e.events.onMouseEnter(t)}))},t.prototype.onMouseLeave=function(t){var e=this;u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return e.events.onMouseLeave(t)}))},t.prototype.onMouseDblClick=function(t){var e=this;u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return e.events.onDblClick(t)}))},t.prototype.onMouseClick=function(t){var e=this;S.EventUtils.isTouchEvent(t)?S.EventUtils.isMousePointer(t)||this.input.captureFocus():u.raiseEvent(t,this.createActualMouseClickEvent(t),(function(t){return e.events.onClick(t)}))},t.prototype.createActualMouseClickEvent=function(t){return this.lastDownMouseEvent?new o.DiagramMouseEvent(this.lastDownMouseEvent.modifiers,this.lastDownMouseEvent.button,this.lastDownMouseEvent.offsetPoint.clone(),this.lastDownMouseEvent.modelPoint.clone(),this.lastDownMouseEvent.source,this.createDiagramMouseEventTouches(t)):this.createDiagramMouseEvent(t)},t.prototype.onContextMenu=function(t){var e=this;if(this.contextMenuEnabled)return 1!==t.buttons&&u.raiseEvent(t,this.createDiagramContextMenuEvent(t),(function(t){return e.events.onContextMenu(t)})),this.input.captureFocus(),i.EvtUtils.preventEventAndBubble(t)},t.prototype.processTouchDown=function(t){var n=this;this.touchDownPoint=this.getTouchPointFromEvent(t),this.resetLongTouch(),this.longTouchTimer=setTimeout((function(){u.raiseEvent(t,n.createDiagramMouseEvent(t),(function(t){return n.events.onLongTouch(t)})),n.resetLongTouch(),n.resetDblClick()}),e.LONG_TOUCH_TIMEOUT)},t.prototype.processTouchMove=function(e){var n=this.getTouchPointFromEvent(e);this.touchDownPoint&&n&&(Math.abs(this.touchDownPoint.x-n.x)>t.touchPositionLimit||Math.abs(this.touchDownPoint.y-n.y)>t.touchPositionLimit)&&(this.resetLongTouch(),this.resetDblClick())},t.prototype.getPointers=function(){var t=this;return Object.keys(this.pointers).map((function(e){return t.pointers[e]}))},t.prototype.getPointerCount=function(){return Object.keys(this.pointers).length},t.prototype.getTouchPointFromEvent=function(t){var e,n=t.touches;if(n&&n.length>0)e=new s.Point(n[0].clientX,n[0].clientY);else{var o=this.getPointers();o.length&&(e=new s.Point(o[0].clientX,o[0].clientY))}return e},t.prototype.processTouchUp=function(t){var n=this;if(void 0!==this.longTouchTimer){u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return n.events.onClick(t)}));var o=i.EvtUtils.getEventSource(t);void 0!==this.dblTouchTimer&&this.lastClickElement===o?(u.raiseEvent(t,this.createDiagramMouseEvent(t),(function(t){return n.events.onDblClick(t)})),this.resetDblClick()):(this.resetDblClick(),this.dblTouchTimer=setTimeout((function(){return n.dblTouchTimer=void 0}),e.DBL_CLICK_TIMEOUT)),this.lastClickElement=o}this.resetLongTouch(),this.touchDownPoint=void 0},t.prototype.resetLongTouch=function(){void 0!==this.longTouchTimer&&clearTimeout(this.longTouchTimer),this.longTouchTimer=void 0},t.prototype.resetDblClick=function(){void 0!==this.dblTouchTimer&&clearTimeout(this.dblTouchTimer),this.dblTouchTimer=void 0},t.prototype.onOrientationChange=function(){var t=this;setTimeout((function(){return t.onWindowResize()}),100)},t.prototype.onWindowResize=function(){var t={horizontal:!1,vertical:!1};if(this.view.autoZoom!==l.AutoZoomMode.Disabled)t.horizontal=!0,t.vertical=!0;else{var e=this.view.checkFitToCanvas(),n=this.view.checkFitToCanvas(this.scroll.getSize());t={horizontal:e.horizontal!==n.horizontal||n.horizontal,vertical:e.vertical!==n.vertical||n.vertical}}this.view.adjust(t)},t.prototype.onMouseWheel=function(t){var e=this;u.raiseEvent(t,this.createDiagramWheelEvent(t),(function(t){return e.events.onMouseWheel(t)}))},t.prototype.notifyModelSizeChanged=function(t,e){this.view.notifyModelSizeChanged(t,e)},t.prototype.notifyModelRectangleChanged=function(t){this.view.notifyModelRectangleChanged(t)},t.prototype.notifyReadOnlyChanged=function(t){r.DomUtils.toggleClassName(this.mainElement,\"dxdi-read-only\",t)},t.prototype.notifyDragStart=function(t){},t.prototype.notifyDragEnd=function(t){},t.prototype.notifyDragScrollStart=function(){this.autoScroll.onDragScrollStart()},t.prototype.notifyDragScrollEnd=function(){this.autoScroll.onDragScrollEnd()},t.prototype.notifyToolboxDragStart=function(t){this.onMouseEnter(t)},t.prototype.notifyToolboxDragEnd=function(t){t&&S.EventUtils.isPointerEvents()&&this.onMouseUp(t)},t.prototype.notifyToolboxDraggingMouseMove=function(t){this.onMouseMove(t)},t.prototype.createDiagramMouseEvent=function(t){var e=a.KeyUtils.getKeyModifiers(t),n=function(t){return c.Browser.MSTouchUI?2!==t.button:S.EventUtils.isLeftButtonPressed(t)}(t)?o.MouseButton.Left:o.MouseButton.Right,i=this.getOffsetPointByEvent(t),r=this.getModelPoint(i),s=S.EventUtils.isTouchEvent(t),u=this.getEventSource(t,s),h=this.createDiagramMouseEventTouches(t);return new o.DiagramMouseEvent(e,n,i,r,u,h,s)},t.prototype.createDiagramMouseEventTouches=function(t){var e=[];if(t.touches)for(var n=0;n<t.touches.length;n++){var i=t.touches[n].clientX,r=t.touches[n].clientY,s=this.getOffsetPointByEventPoint(i,r),a=this.getModelPoint(s);e.push(new o.DiagramMouseEventTouch(s,a))}else{var c=this.getPointers();for(n=0;n<c.length;n++){i=c[n].clientX,r=c[n].clientY,s=this.getOffsetPointByEventPoint(i,r),a=this.getModelPoint(s);e.push(new o.DiagramMouseEventTouch(s,a))}}return e},t.prototype.createDiagramContextMenuEvent=function(t){var e=a.KeyUtils.getKeyModifiers(t),n=new s.Point(t.pageX,t.pageY),i=this.getOffsetPointByEvent(t),r=this.getModelPoint(i);return new o.DiagramContextMenuEvent(e,n,r)},t.prototype.createDiagramWheelEvent=function(t){var e=a.KeyUtils.getKeyModifiers(t),n=this.getOffsetPointByEvent(t),i=this.view.getModelPoint(n),r=this.getEventSource(t),s=t.deltaX||t.originalEvent&&t.originalEvent.deltaX,c=t.deltaY||t.originalEvent&&t.originalEvent.deltaY;return new o.DiagramWheelEvent(e,s,c,n,i,r)},t.prototype.getEventSource=function(t,e){var n=e?i.EvtUtils.getEventSourceByPosition(t):i.EvtUtils.getEventSource(t);if(this.isDiagramControl(n))for(;n&&!this.isDocumentContainer(n);){var r=u.RenderUtils.getElementEventData(n);if(void 0!==r)return r;if(this.input.isTextInputElement(n))return new o.MouseEventSource(o.MouseEventElementType.Document);n=n.parentNode}var s=new o.MouseEventSource(o.MouseEventElementType.Undefined);return n&&this.isDocumentContainer(n)&&(s.type=o.MouseEventElementType.Background),s},t.prototype.isDiagramControl=function(t){for(;t;){if(this.isDocumentContainer(t))return!0;t=t.parentNode}return!1},t.prototype.isDocumentContainer=function(t){return t===this.mainElement},t.prototype.lockMouseMove=function(){var t=this;this.moveLocked=!0,this.lockMouseMoveTimer=setTimeout((function(){t.moveLocked=!1,t.lockMouseMoveTimer=-1}),10)},t.prototype.killLockMouseMoveTimer=function(){-1!==this.lockMouseMoveTimer&&(clearTimeout(this.lockMouseMoveTimer),this.lockMouseMoveTimer=-1)},t.prototype.clearLastMouseDownEvent=function(){this.lastDownMouseEvent=void 0},t.prototype.getModelPoint=function(t){return this.view.getModelPoint(t)},t.prototype.getOffsetPointByEvent=function(t){var e=i.EvtUtils.getEventX(t),n=i.EvtUtils.getEventY(t);return this.getOffsetPointByEventPoint(e,n)},t.prototype.getOffsetPointByEventPoint=function(t,e){var n=this.scroll.getScrollContainer(),o=r.DomUtils.getAbsolutePositionX(n),i=r.DomUtils.getAbsolutePositionY(n);return new s.Point(t-o,e-i)},t.prototype.getModelPointByEventPoint=function(t,e){var n=this.getOffsetPointByEventPoint(t,e);return this.view.getModelPoint(n)},t.prototype.getEventPointByModelPoint=function(t){var e=this.view.getAbsolutePoint(t),n=this.scroll.getScrollContainer();return new s.Point(r.DomUtils.getAbsolutePositionX(n)+e.x,r.DomUtils.getAbsolutePositionY(n)+e.y)},t.touchPositionLimit=4,t}();e.RenderManager=b},7376:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.NativeScrollView=void 0;var o=n(8675),i=n(6353),r=n(8900),s=n(6907),a=n(1114),c=function(){function t(t){this.onScroll=new o.EventDispatcher,this.scrollBarWidth=s.DomUtils.getVerticalScrollBarWidth(),this.mainElement=t,this.attachEvents()}return t.prototype.attachEvents=function(){var t=this;this.onScrollHandler=function(){return t.onScroll.raise1((function(e){return e.notifyScrollChanged((function(){return t.getScroll()}))}))},a.RenderHelper.addEventListener(this.mainElement,\"scroll\",this.onScrollHandler)},t.prototype.detachEvents=function(){a.RenderHelper.removeEventListener(this.mainElement,\"scroll\",this.onScrollHandler)},t.prototype.getScrollContainer=function(){return this.mainElement},t.prototype.setScroll=function(t,e){var n=this;this.mainElement.style.overflow=\"scroll\",this.mainElement.scrollLeft=t,this.mainElement.scrollTop=e,this.mainElement.style.overflow=\"\",this.onScroll.raise1((function(t){return t.notifyScrollChanged((function(){return n.getScroll()}))}))},t.prototype.offsetScroll=function(t,e){var n=this;t&&(this.mainElement.scrollLeft+=t),e&&(this.mainElement.scrollTop+=e),this.onScroll.raise1((function(t){return t.notifyScrollChanged((function(){return n.getScroll()}))}))},t.prototype.getScroll=function(){return new r.Point(this.mainElement.scrollLeft,this.mainElement.scrollTop)},t.prototype.getSize=function(){var t=this.mainElement.getBoundingClientRect();return new i.Size(Math.floor(t.width),Math.floor(t.height))},t.prototype.getScrollBarWidth=function(){return this.scrollBarWidth},t}();e.NativeScrollView=c},6411:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ShapeImageIndicator=void 0;var o=n(418),i=n(7724),r=n(5329),s=n(9279),a=n(4716),c=n(9291),u=function(){function t(t,e,n,o,i){this.x=t,this.y=e,this.size=n,this.borderThickness=o,this.className=i,this.animationStarted=!1}return t.createLoadingIndicatorPrimitives=function(e,n,o,i,r){return new t(e,n,o,i,r).createLoadingIndicatorPrimitive()},t.createUserIconPrimitives=function(e,n,o,i,r){return new t(e,n,o,i,r).createUserIconPrimitive()},t.createWarningIconPrimitives=function(e,n,o,i){return new t(e,n,o,void 0,i).createWarningIconPrimitive()},t.prototype.rotate=function(t,e,n,o){if(this.animationStarted){var i=\"rotate(\"+Math.round(o)%1080/3+\" \"+e+\" \"+n+\")\";t.setAttribute(\"transform\",i),this.animationRequestId=requestAnimationFrame(function(o){this.rotate(t,e,n,o)}.bind(this))}},t.prototype.onApplyLoadingIndicatorElementProperties=function(t){var e=[c.UnitConverter.twipsToPixelsF(this.x+this.size/2),c.UnitConverter.twipsToPixelsF(this.y+this.size/2)],n=e[0],o=e[1];s.Browser.IE?(this.animationRequestId=requestAnimationFrame(function(e){this.rotate(t,n,o,e)}.bind(this)),this.animationStarted=!0):t.style.setProperty(\"transform-origin\",n+\"px \"+o+\"px\")},t.prototype.center=function(){return[c.UnitConverter.twipsToPixelsF(this.x+this.size/2),c.UnitConverter.twipsToPixelsF(this.y+this.size/2)]},t.prototype.createLoadingIndicatorPrimitive=function(){var t=this.center(),e=t[0],n=t[1],s=c.UnitConverter.twipsToPixelsF(this.size/2-this.borderThickness/2);return new r.GroupPrimitive([new o.EllipsePrimitive(e+\"\",n+\"\",s+\"\",s+\"\"),new i.PathPrimitive([new i.PathPrimitiveMoveToCommand(e+s+\"\",n+\"\"),new i.PathPrimitiveArcToCommand(s+\"\",s+\"\",0,!1,!1,e+\"\",n-s+\"\")])],this.className,void 0,void 0,this.onApplyLoadingIndicatorElementProperties.bind(this),this.onBeforeDispose.bind(this))},t.prototype.createUserIconPrimitive=function(){var t=this.center(),e=t[0],n=t[1],s=c.UnitConverter.twipsToPixelsF(this.size/2-this.borderThickness/2),a=c.UnitConverter.twipsToPixelsF(this.size);return new r.GroupPrimitive([new o.EllipsePrimitive(e+\"\",n+\"\",s+\"\",s+\"\",void 0,\"dxdi-background\"),new o.EllipsePrimitive(e+\"\",n-a/8+\"\",a/8+\"\",a/8+\"\"),new i.PathPrimitive([new i.PathPrimitiveMoveToCommand(e+\"\",n+a/16+\"\"),new i.PathPrimitiveCubicCurveToCommand(e+.1375*a+\"\",n+a/16+\"\",e+a/4+\"\",n+.11875*a+\"\",e+a/4+\"\",n+.1875*a+\"\"),new i.PathPrimitiveLineToCommand(e+a/4+\"\",n+a/4+\"\"),new i.PathPrimitiveLineToCommand(e-a/4+\"\",n+a/4+\"\"),new i.PathPrimitiveLineToCommand(e-a/4+\"\",n+.1875*a+\"\"),new i.PathPrimitiveCubicCurveToCommand(e-a/4+\"\",n+.11875*a+\"\",e-.1375*a+\"\",n+a/16+\"\",e+\"\",n+a/16+\"\"),new i.PathPrimitiveClosePathCommand])],this.className)},t.prototype.createWarningIconPrimitive=function(){var t=this.center(),e=t[0],n=t[1],i=c.UnitConverter.twipsToPixelsF(this.size/2)-1,s=c.UnitConverter.twipsToPixelsF(this.size/8);return new r.GroupPrimitive([new o.EllipsePrimitive(e+\"\",n+\"\",i+\"\",i+\"\"),new a.RectanglePrimitive(e-s/2+.5+\"\",n+i-c.UnitConverter.twipsToPixelsF(this.size/4)+\"\",s+\"\",s+\"\"),new a.RectanglePrimitive(e-s/2+.5+\"\",n-i+c.UnitConverter.twipsToPixelsF(this.size/4)-s+\"\",s+\"\",i+\"\")],this.className)},t.prototype.onBeforeDispose=function(){this.animationRequestId&&cancelAnimationFrame(this.animationRequestId),this.animationStarted=!1},t}();e.ShapeImageIndicator=u},4724:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.IconToolbox=void 0;var r=n(4602),s=n(1114),a=n(5503),c=n(9291),u=n(8900),h=n(1669),p=n(1552),l=n(6688),d=n(4716),f=function(t){function e(e,n,o,i,r,s,a,c,u){var h=t.call(this,e,n,o,i,r,s)||this;return h.options=a,h.measurer=c,h.instanceId=u,h}return i(e,t),e.prototype.createElements=function(t,e){var n=document.createElementNS(s.svgNS,\"svg\");n.className.baseVal=\"dxdi-canvas\",t.appendChild(n),this.drawShapeIcons(n,e,this.options.toolboxWidth||n.getBoundingClientRect().width)},e.prototype.drawShapeIcons=function(t,e,n){var o=this,i=p.DEFAULT_STROKE_WIDTH,r=n-2*i,s=this.options.shapeIconSize;!s&&this.options.shapeIconSpacing&&this.options.shapeIconCountInRow&&(s=Math.floor((r-(this.options.shapeIconCountInRow-1)*this.options.shapeIconSpacing)/this.options.shapeIconCountInRow)),s||(s=32);var a=s=Math.max(s,this.options.shapeIconSpacing/2),u=this.options.shapeIconCountInRow;if(!u)for(u=1;a<r;)(a+=this.options.shapeIconSpacing+s)<r&&u++;var h=u>1?(r-s*u)/(u-1):0,l=i,d=i,f=c.UnitConverter.pixelsToTwips(s);e.forEach((function(e,n){n>0&&n%u==0&&(l=i,d+=s+h);var r=o.shapeDescriptionManager.get(e),a=o.createShape(r,l,d,s<26);o.updateShapeIconBounds(a,s);var p=o.drawShape(t,a);o.drawSelector(p,c.UnitConverter.pixelsToTwips(l),c.UnitConverter.pixelsToTwips(d),f),l+=s+h})),t.style.height=d+s+i+\"px\",t.style.width=n+\"px\"},e.prototype.drawShape=function(t,e){var n=this,o=e.description.createPrimitives(e,this.instanceId,!0),i=document.createElementNS(s.svgNS,\"g\");if(i.setAttribute(\"data-tb-type\",e.description.key.toString()),i.setAttribute(\"class\",\"toolbox-item\"),i.setAttribute(\"title\",e.description.getTitle()),this.options.shapeIconAttributes)for(var r in this.options.shapeIconAttributes)Object.prototype.hasOwnProperty.call(this.options.shapeIconAttributes,r)&&i.setAttribute(r,this.options.shapeIconAttributes[r]);return t.appendChild(i),o.forEach((function(t){var e=t.createElement((function(t){return i.appendChild(t)}));t.applyElementProperties(e,n.measurer)})),i},e.prototype.drawSelector=function(t,e,n,o){var i=this,r=new d.RectanglePrimitive(e,n,o,o,void 0,\"selector\");r.createElement((function(e){r.applyElementProperties(e,i.measurer),t.appendChild(e)}))},e.prototype.createShape=function(t,e,n,o){var i=c.UnitConverter.pixelsToTwips(e),r=c.UnitConverter.pixelsToTwips(n),s=new a.Shape(t,new u.Point(i,r),!0);return this.needResetShapeText(t)?s.text=\"\":o&&(s.text=\"T\"),s},e.prototype.needResetShapeText=function(t){return!(t instanceof h.TextShapeDescription)&&!(t instanceof l.CustomShapeDescription&&t.baseDescription instanceof h.TextShapeDescription)},e.prototype.updateShapeIconBounds=function(t,e){var n=c.UnitConverter.pixelsToTwips(e);if(t.size.height=t.size.width*t.getToolboxHeightToWidthRatio(),t.size.width>t.size.height){var o=t.size.height/t.size.width;t.size.width=n,t.size.height=n*o,t.position.y=t.position.y+(n-t.size.height)/2,t.parameters.forEach((function(e){e.value=e.value*n/t.description.defaultSize.width}))}else if(t.size.width<t.size.height){o=t.size.width/t.size.height;t.size.height=n,t.size.width=n*o,t.position.x=t.position.x+(n-t.size.width)/2,t.parameters.forEach((function(e){e.value=e.value*n/t.description.defaultSize.height}))}else t.size.width=n,t.size.height=n,t.parameters.forEach((function(e){e.value=e.value*n/t.description.defaultSize.width}))},e.prototype.createDraggingElement=function(t){var e=document.createElement(\"DIV\");e.setAttribute(\"class\",\"dxdi-toolbox-drag-item\"),document.body.appendChild(e);var n=document.createElementNS(s.svgNS,\"svg\");n.className.baseVal=\"dxdi-canvas\",e.appendChild(n);var o=this.shapeDescriptionManager.get(t.evt.data),i=this.createShape(o,p.DEFAULT_STROKE_WIDTH,p.DEFAULT_STROKE_WIDTH);return this.drawShape(n,i),e.style.width=c.UnitConverter.twipsToPixels(i.size.width)+2*p.DEFAULT_STROKE_WIDTH+\"px\",e.style.height=c.UnitConverter.twipsToPixels(i.size.height)+2*p.DEFAULT_STROKE_WIDTH+\"px\",e},e}(r.Toolbox);e.IconToolbox=f},5947:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.TextToolbox=void 0;var r=function(t){function e(e,n,o,i,r,s){return t.call(this,e,n,o,i,r,s)||this}return i(e,t),e.prototype.createElements=function(t,e){var n=this;e.forEach((function(e){var o=n.shapeDescriptionManager.get(e),i=document.createElement(\"div\");i.setAttribute(\"class\",\"toolbox-text-item\"),i.setAttribute(\"data-tb-type\",e),i.textContent=o.getDefaultText()||o.getTitle(),t.appendChild(i)}))},e.prototype.createDraggingElement=function(t){var e=document.createElement(\"DIV\");e.setAttribute(\"class\",\"dxdi-toolbox-drag-text-item\");var n=this.shapeDescriptionManager.get(t.evt.data);return e.textContent=n.getDefaultText()||n.getTitle(),document.body.appendChild(e),e},e}(n(4602).Toolbox);e.TextToolbox=r},4602:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramDraggingEvent=e.ToolboxDraggingObject=e.Toolbox=void 0;var o,i=n(8675),r=n(8900),s=n(3714),a=n(4914),c=n(6907),u=n(9279),h=n(1114),p=n(8693),l=\"dxdi-toolbox\",d=\"dxdi-tb-start-drag-flag\",f=function(){function t(t,e,n,r,s,a){this.readOnly=e,this.allowDragging=n,this.shapeDescriptionManager=r,this.shapeTypes=s,this.getAllowedShapeTypes=a,this.dragPrepareTimeout=-1,this.dragState=o.None,this.emulateDragEvents=u.Browser.WebKitTouchUI,this.onDragOperation=new i.EventDispatcher,this.onClickOperation=new i.EventDispatcher,t&&(this.mainElement=this.createMainElement(t),this.attachHandlers(this.mainElement))}return t.prototype.clean=function(t){this.detachHandlers(this.mainElement),t&&t(this.mainElement)},t.prototype.createMainElement=function(t){var e=document.createElement(\"div\");return e.setAttribute(\"class\",l),e.draggable=!0,this.emulateDragEvents&&(e.tabIndex=0),t.appendChild(e),e},t.prototype.attachHandlers=function(t){this.onElementMouseDownHandler=this.onElementMouseDown.bind(this),this.onElementMouseUpHandler=this.onElementMouseUp.bind(this),this.onMouseDownHandler=this.onMouseDown.bind(this),this.onMouseMoveHandler=this.onMouseMove.bind(this),this.onMouseUpHandler=this.onMouseUp.bind(this),this.onDragStartHandler=this.onDragStart.bind(this),this.onTouchMoveHandler=this.onTouchMove.bind(this),this.emulateDragEvents||h.RenderHelper.addEventListener(t,\"dragstart\",this.onDragStartHandler),i.EventUtils.isPointerEvents()?(this.mouseDownEventName=\"pointerdown\",this.mouseMoveEventName=\"pointermove\",this.mouseUpEventName=\"pointerup\"):(this.mouseDownEventName=u.Browser.TouchUI?\"touchstart\":\"mousedown\",this.mouseMoveEventName=u.Browser.TouchUI?\"touchmove\":\"mousemove\",this.mouseUpEventName=u.Browser.TouchUI?\"touchend\":\"mouseup\"),h.RenderHelper.addEventListener(t,\"touchmove\",this.onTouchMoveHandler),h.RenderHelper.addEventListener(t,this.mouseDownEventName,this.onElementMouseDownHandler),h.RenderHelper.addEventListener(t,this.mouseUpEventName,this.onElementMouseUpHandler),h.RenderHelper.addEventListener(t,this.mouseDownEventName,this.onMouseDownHandler),h.RenderHelper.addEventListener(document,this.mouseMoveEventName,this.onMouseMoveHandler),h.RenderHelper.addEventListener(document,this.mouseUpEventName,this.onMouseUpHandler)},t.prototype.detachHandlers=function(t){this.emulateDragEvents||h.RenderHelper.removeEventListener(t,\"dragstart\",this.onDragStartHandler),h.RenderHelper.removeEventListener(t,\"touchmove\",this.onTouchMoveHandler),h.RenderHelper.removeEventListener(t,this.mouseDownEventName,this.onElementMouseDownHandler),h.RenderHelper.removeEventListener(t,this.mouseUpEventName,this.onElementMouseUpHandler),h.RenderHelper.removeEventListener(t,this.mouseDownEventName,this.onMouseDownHandler),h.RenderHelper.removeEventListener(document,this.mouseMoveEventName,this.onMouseMoveHandler),h.RenderHelper.removeEventListener(document,this.mouseUpEventName,this.onMouseUpHandler)},t.prototype.render=function(t){this.mainElement.childNodes&&(this.mainElement.innerHTML=\"\");var e=this.shapeTypes;return e=this.getAllowedShapeTypes?this.getAllowedShapeTypes(e):e,(e=t?e.filter(t):e).length&&this.createElements(this.mainElement,e),!!e.length},t.prototype.createDraggingObject=function(t){var e=new g;return e.data=t,e.onFinishDragging=this.resetDragState.bind(this),e.onCaptured=this.capture.bind(this),new y(e)},t.prototype.getDragShapeType=function(t){for(;t&&!c.DomUtils.hasClassName(t,l);){if(t.getAttribute&&t.getAttribute(\"data-tb-type\"))return t.getAttribute(\"data-tb-type\");t=t.parentNode}},t.prototype.getTouchPointFromEvent=function(t){var e,n=t.touches;return n&&n.length>0?e=new r.Point(n[0].clientX,n[0].clientY):t.clientX&&t.clientY&&(e=new r.Point(t.clientX,t.clientY)),e},t.prototype.onElementMouseDown=function(t){this.mouseDownShapeType=this.getDragShapeType(s.EvtUtils.getEventSource(t)),this.touchDownPoint=this.getTouchPointFromEvent(t)},t.prototype.onElementMouseUp=function(t){var e=this.getDragShapeType(s.EvtUtils.getEventSource(t));e&&e===this.mouseDownShapeType&&this.onClickOperation.raise(\"notifyToolboxClick\",e),this.mouseDownShapeType=void 0,this.touchDownPoint=void 0},t.prototype.onMouseDown=function(t){this.setDragState(o.Prepare,t),u.Browser.TouchUI&&i.EventUtils.isMousePointer(t)&&this.setDragState(o.Start,t)},t.prototype.onDragStart=function(t){this.setDragState(o.Start,t),t.preventDefault()},t.prototype.onTouchMove=function(t){this.draggingObject&&t.preventDefault()},t.prototype.isLeftButtonPressed=function(t){return s.EvtUtils.isLeftButtonPressed(t)||\"pointermove\"===t.type&&u.Browser.TouchUI&&u.Browser.MacOSMobilePlatform&&i.EventUtils.isMousePointer(t)},t.prototype.onMouseMove=function(t){if(u.Browser.TouchUI&&u.Browser.MacOSMobilePlatform){var e=this.getTouchPointFromEvent(t);if(this.touchDownPoint&&e&&this.touchDownPoint.x===e.x&&this.touchDownPoint.y===e.y)return}this.setDragState(this.isLeftButtonPressed(t)?o.Dragging:o.None,t),i.EventUtils.isPointerEvents()&&this.raiseDraggingMouseMove(t)},t.prototype.onMouseUp=function(t){this.setDragState(o.None,t)},t.prototype.updateDraggingElementPosition=function(t,e){var n=this.draggingObject.element,o=t-n.offsetWidth/2,i=e-n.offsetHeight/2;a.SetAbsoluteX(n,o),a.SetAbsoluteY(n,i)},t.prototype.setDragState=function(t,e){if(!this.readOnly&&this.allowDragging&&!(t===o.None&&t===this.dragState||(this.dragPrepareTimeout>-1&&(clearTimeout(this.dragPrepareTimeout),this.dragPrepareTimeout=-1,this.dragPrepareEvent=void 0),t-this.dragState>1||t!==o.None&&t<this.dragState)))switch(this.dragState=t,t){case o.Prepare:this.prepareDragging(e)||this.setDragState(o.None,e),!this.emulateDragEvents&&i.EventUtils.isMousePointer(e)||(this.dragPrepareTimeout=setTimeout(this.onDragPrepareTimeout.bind(this),800),this.dragPrepareEvent=e);break;case o.Start:c.DomUtils.addClassName(document.body,\"dxdi-dragging\"),this.startDragging(e);break;case o.Dragging:this.doDragging(e);break;case o.None:this.finishDragging(e)}},t.prototype.resetDragState=function(){this.setDragState(o.None,void 0)},t.prototype.onDragPrepareTimeout=function(){this.dragPrepareTimeout=-1,this.dragState===o.Prepare&&this.setDragState(o.Start,this.dragPrepareEvent),this.dragPrepareEvent=void 0},t.prototype.prepareDragging=function(t){return this.dragStartPoint=new r.Point(s.EvtUtils.getEventX(t),s.EvtUtils.getEventY(t)),this.dragStartShapeType=this.getDragShapeType(s.EvtUtils.getEventSource(t)),i.EventUtils.isMousePointer(t)&&c.DomUtils.addClassName(this.mainElement,d),!this.emulateDragEvents&&i.EventUtils.isMousePointer(t)||i.HtmlFocusUtils.focusWithPreventScroll(this.mainElement),!!this.dragStartShapeType},t.prototype.startDragging=function(t){this.draggingObject=this.createDraggingObject(this.dragStartShapeType),this.dragStartShapeType?(this.raiseDragStart(t),this.draggingObject.element=this.createDraggingElement(this.draggingObject),void 0!==this.draggingObject.captured&&this.capture(this.draggingObject.captured,!0),this.updateDraggingElementPosition(this.dragStartPoint.x,this.dragStartPoint.y)):c.DomUtils.addClassName(document.body,p.NOT_VALID_CSSCLASS)},t.prototype.doDragging=function(t){this.draggingObject.element&&this.updateDraggingElementPosition(s.EvtUtils.getEventX(t),s.EvtUtils.getEventY(t))},t.prototype.finishDragging=function(t){if(this.draggingObject){this.raiseDragEnd(t);var e=this.draggingObject.element;e&&e.parentNode.removeChild(e),delete this.draggingObject}this.dragStartPoint=void 0,this.dragStartShapeType=void 0,c.DomUtils.removeClassName(this.mainElement,d),c.DomUtils.removeClassName(document.body,p.NOT_VALID_CSSCLASS),setTimeout((function(){return c.DomUtils.removeClassName(document.body,\"dxdi-dragging\")}),500)},t.prototype.capture=function(t,e){this.draggingObject&&(this.draggingObject.captured!==t||e)&&(this.draggingObject.captured=t,this.draggingObject.element&&c.DomUtils.toggleClassName(this.draggingObject.element,\"dxdi-tb-drag-captured\",t))},t.prototype.raiseDragStart=function(t){this.onDragOperation.raise(\"notifyToolboxDragStart\",t)},t.prototype.raiseDragEnd=function(t){this.onDragOperation.raise(\"notifyToolboxDragEnd\",t)},t.prototype.raiseDraggingMouseMove=function(t){this.onDragOperation.raise(\"notifyToolboxDraggingMouseMove\",t)},t.prototype.notifyReadOnlyChanged=function(t){this.readOnly=t},t}();e.Toolbox=f,function(t){t[t.None=-1]=\"None\",t[t.Prepare=0]=\"Prepare\",t[t.Start=1]=\"Start\",t[t.Dragging=2]=\"Dragging\"}(o||(o={}));var y=function(t){this.evt=t};e.ToolboxDraggingObject=y;var g=function(){};e.DiagramDraggingEvent=g},3298:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ToolboxManager=void 0;var o=n(5947),i=n(4724),r=n(1733),s=n(8679),a=function(){function t(t){this.shapeDescriptionManager=t,this.toolboxes=[],this.measurers={}}return t.prototype.create=function(t,e,n,r,s,a,c,u){var h=Array.isArray(s)?s:this.shapeDescriptionManager.getTypesByCategory(s),p=r?new o.TextToolbox(t,e,n,this.shapeDescriptionManager,h,a):new i.IconToolbox(t,e,n,this.shapeDescriptionManager,h,a,u,this.getOrCreateMeasurer(t),c);return p.render(),this.toolboxes.push(p),p},t.prototype.clean=function(t,e){var n=this;if(e)e.clean(t),this.toolboxes.splice(this.toolboxes.indexOf(e),1),Object.keys(this.measurers).forEach((function(t){n.measurers[t]===e.measurer&&delete n.measurers[t]}));else{for(var o=0;o<this.toolboxes.length;o++)this.toolboxes[o].clean(t);this.toolboxes=[],this.measurers={}}},t.prototype.refresh=function(t){this.toolboxes.forEach((function(e,n){(!t||Array.isArray(t)&&t.indexOf(n)>-1||n===t)&&e.render()}))},t.prototype.applyFilter=function(t,e){var n=this;return this.toolboxes.reduce((function(o,i,r){return(!e||Array.isArray(e)&&e.indexOf(r)>-1||r===e)&&i.render((function(e){return n.searchFilter(e,t,r)}))&&o.push(r),o}),[])},t.prototype.searchFilter=function(t,e,n,o){if(!e||o&&-1===o.indexOf(n))return!0;e=e.toLowerCase();var i=this.shapeDescriptionManager.get(t);return i.getTitle().toLowerCase().indexOf(e)>-1||i.getDefaultText().toLowerCase().indexOf(e)>-1},t.prototype.getOrCreateMeasurer=function(t){var e=t.getAttribute(\"data-dxdiMeasurerID\");return e&&this.measurers[e]||(e=s.MathUtils.generateGuid(),this.measurers[e]=new r.TextMeasurer(t),t.setAttribute(\"data-dxdiMeasurerID\",e)),this.measurers[e]},t}();e.ToolboxManager=a},3500:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.raiseEvent=e.RenderUtils=void 0;var o=n(6031),i=n(8679),r=function(){function t(){}return t.updateSvgElementSize=function(t,e,n,o){t.style.width=e+\"px\",t.style.height=n+\"px\",t.setAttribute(\"viewBox\",\"0 0 \"+e+\" \"+n),o&&(t.setAttribute(\"width\",e.toString()),t.setAttribute(\"height\",n.toString()))},t.removeElement=function(t){t&&t.parentNode&&t.parentNode.removeChild(t)},t.removeContent=function(t){for(;t&&t.firstChild;)t.removeChild(t.firstChild)},t.setElementEventData=function(t,e,n,i){e!==o.MouseEventElementType.Undefined&&(t.setAttribute(\"data-type\",e.toString()),void 0!==n&&t.setAttribute(\"data-key\",n.toString()),void 0!==i&&t.setAttribute(\"data-value\",i.toString()))},t.getElementEventData=function(t){if(t.getAttribute&&t.getAttribute(\"data-type\"))return new o.MouseEventSource(parseInt(t.getAttribute(\"data-type\")),t.getAttribute(\"data-key\"),t.getAttribute(\"data-value\"));var e=t.getAttribute&&t.getAttribute(\"class\");return\"dxdi-page\"===e||\"dxdi-main\"===e?new o.MouseEventSource(o.MouseEventElementType.Document):void 0},t.getHtmlElementStylePropertyName=function(t){switch(t){case\"fill\":return\"color\";case\"text-anchor\":return\"text-align\"}return t},t.getTextAnchorValue=function(t,e){if(void 0===e&&(e=!1),e){if(\"start\"===t)return\"end\";if(\"end\"===t)return\"start\"}return t},t.getStrokeDasharrayValue=function(t,e){if(e){var n=t&&t.toString();return(n?n.split(/[\\s,]+/):[]).map((function(t){return parseInt(t)/2*e})).join(\",\")}return t},t.applyStyleToElement=function(t,e,n){var o=this;void 0===n&&(n=!1);var i=t.getDefaultInstance();t.forEach((function(r){var s=t[r],a=e instanceof HTMLElement?o.getHtmlElementStylePropertyName(r):r;if(void 0!==s&&\"\"!==s&&s!==i[r]){switch(r){case\"text-anchor\":s=o.getTextAnchorValue(s,n);break;case\"stroke-dasharray\":s=o.getStrokeDasharrayValue(s,parseInt(t[\"stroke-width\"]))}e.style.setProperty(a,s)}else e.style.setProperty(a,\"\")}))},t.generateSvgElementId=function(t){return t+\"_\"+i.MathUtils.generateGuid()},t.getUrlPathById=function(t){return\"url(#\"+t+\")\"},t}();e.RenderUtils=r,e.raiseEvent=function(t,e,n){n(e),e.preventDefault&&t.preventDefault()}},5401:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.InputPosition=void 0;var o=n(6823),i=n(4914),r=function(){function t(t){this.selection=t,this.initialProperties=new o.InputPositionProperties(this.selection),this.defaultProperties=new o.InputPositionProperties(this.selection,this.initialProperties,!0),this.currentProperties=new o.InputPositionProperties(this.selection,this.defaultProperties)}return t.prototype.initialize=function(){this.reset(),this.defaultProperties.reset()},t.prototype.reset=function(){this.currentProperties.reset()},t.prototype.getDefaultConnectorProperties=function(){return this.defaultProperties.getConnectorProperties()},t.prototype.getDefaultConnectorPropertyValue=function(t){return this.defaultProperties.getConnectorPropertyValue(t)},t.prototype.getCurrentConnectorPropertyValue=function(t){return this.currentProperties.getConnectorPropertyValue(t)},t.prototype.setConnectorPropertyValue=function(t,e){this.currentProperties.setConnectorPropertyValue(t,e),this.selection.isEmpty(!0)&&this.defaultProperties.setConnectorPropertyValue(t,e)},t.prototype.setInitialConnectorProperties=function(t){for(var e in this.defaultProperties.reset(),this.currentProperties.reset(),t)Object.prototype.hasOwnProperty.call(t,e)&&this.initialProperties.setConnectorPropertyValue(e,t[e])},t.prototype.getDefaultStyle=function(){return this.defaultProperties.getStyle()},t.prototype.getDefaultStylePropertyValue=function(t){return this.defaultProperties.getStylePropertyValue(t)},t.prototype.getDefaultTextStyle=function(){return this.defaultProperties.getTextStyle()},t.prototype.getDefaultTextStylePropertyValue=function(t){return this.defaultProperties.getTextStylePropertyValue(t)},t.prototype.getCurrentStylePropertyValue=function(t){return this.currentProperties.getStylePropertyValue(t)},t.prototype.getCurrentTextStylePropertyValue=function(t){return this.currentProperties.getTextStylePropertyValue(t)},t.prototype.setStylePropertyValue=function(t,e){this.currentProperties.setStylePropertyValue(t,e),this.selection.isEmpty(!0)&&this.defaultProperties.setStylePropertyValue(t,e)},t.prototype.setTextStylePropertyValue=function(t,e){this.currentProperties.setTextStylePropertyValue(t,e),this.selection.isEmpty(!0)&&this.defaultProperties.setTextStylePropertyValue(t,e)},t.prototype.setInitialStyleProperties=function(t){this.defaultProperties.reset(),this.currentProperties.reset();var e=\"string\"==typeof t?i.Data.cssTextToObject(t):t;for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.initialProperties.setStylePropertyValue(n,e[n])},t.prototype.setInitialTextStyleProperties=function(t){this.defaultProperties.reset(),this.currentProperties.reset();var e=\"string\"==typeof t?i.Data.cssTextToObject(t):t;for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.initialProperties.setTextStylePropertyValue(n,e[n])},t.prototype.notifySelectionChanged=function(t){this.reset()},t}();e.InputPosition=r},6823:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.InputPositionProperties=void 0;var o=n(4612),i=n(1552),r=function(){function t(t,e,n){this.selection=t,this.baseProperties=e,this.disableMergingStyles=n,this.selection=t}return t.prototype.reset=function(){this.connectorProperties=null,this.style=null,this.textStyle=null},t.prototype.getConnectorProperties=function(){return this.connectorProperties||(this.connectorProperties=this.baseProperties?this.baseProperties.getConnectorProperties().clone():new o.ConnectorProperties,this.updateConnectorProperties(this.connectorProperties)),this.connectorProperties},t.prototype.getConnectorPropertyValue=function(t){return this.getConnectorProperties()[t]},t.prototype.setConnectorPropertyValue=function(t,e){this.getConnectorProperties()[t]=e},t.prototype.getStyle=function(){return this.style||(this.style=this.baseProperties?this.baseProperties.getStyle().clone():new i.Style,this.disableMergingStyles||this.updateStyle(this.style,\"style\")),this.style},t.prototype.getStylePropertyValue=function(t){return this.getStyle()[t]},t.prototype.setStylePropertyValue=function(t,e){this.getStyle()[t]=e},t.prototype.getTextStyle=function(){return this.textStyle||(this.textStyle=this.baseProperties?this.baseProperties.getTextStyle().clone():new i.TextStyle,this.disableMergingStyles||this.updateStyle(this.textStyle,\"styleText\")),this.textStyle},t.prototype.getTextStylePropertyValue=function(t){return this.getTextStyle()[t]},t.prototype.setTextStylePropertyValue=function(t,e){this.getTextStyle()[t]=e},t.prototype.updateConnectorProperties=function(t){var e=this,n=this.selection.getSelectedConnectors(!0);t.forEach((function(o){e.updatePropertyValue(t,n,(function(t){return t.properties}),o)}))},t.prototype.updateStyle=function(t,e){var n=this,o=this.selection.getSelectedItems(!0);t.forEach((function(i){n.updatePropertyValue(t,o,(function(t){return t[e]}),i)}))},t.prototype.updatePropertyValue=function(t,e,n,o){var i,r=!1;e.forEach((function(t){var e=n(t)[o];if(void 0===i&&void 0!==e)i=e,r=!0;else if(r&&i!==e)return void(i=void 0)})),r&&(t[o]=i)},t}();e.InputPositionProperties=r},9021:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Selection=void 0;var o=n(8675),i=n(5401),r=n(5503),s=n(7959),a=n(4914),c=function(){function t(t){this.onChanged=new o.EventDispatcher,this.inputPosition=new i.InputPosition(this),this.onChanged.add(this.inputPosition),this.initialize(t)}return t.prototype.initialize=function(t){this.model=t,this.keys=[],this.inputPosition.initialize()},t.prototype.add=function(t){this.keys.indexOf(t)<0&&(this.keys.push(t),this.raiseSelectionChanged())},t.prototype.remove=function(t){this.keys.indexOf(t)>=0&&(this.keys.splice(this.keys.indexOf(t),1),this.raiseSelectionChanged())},t.prototype.clear=function(){this.keys.length>0&&(this.keys=[],this.raiseSelectionChanged())},t.prototype.set=function(t,e){!e&&a.Data.ArrayEqual(t,this.keys)||(this.keys=t,this.raiseSelectionChanged())},t.prototype.getKeys=function(){return this.keys},t.prototype.getKey=function(t){return this.keys[t]},t.prototype.getSelectedItemsInsideContainers=function(t){var e=this,n=t.slice();return t.forEach((function(t){t instanceof r.Shape&&e.getSelectedItemsInsideContainers(e.model.getChildren(t)).forEach((function(t){-1!==n.indexOf(t)||e.hasKey(t.key)||n.push(t)}))})),n},t.prototype.getSelectedItemsCore=function(t){var e=this;return this.keys.map((function(t){return e.model.findItem(t)})).filter((function(e){return e&&(t||!e.isLocked)}))},t.prototype.getSelectedItems=function(t,e){return e?this.getSelectedItemsInsideContainers(this.getSelectedItemsCore(t)):this.getSelectedItemsCore(t)},t.prototype.getSelectedShapes=function(t,e){var n=this;if(e){var o=this.getSelectedItemsCore(t);return this.getSelectedItemsInsideContainers(o).map((function(t){return t instanceof r.Shape?t:void 0})).filter((function(t){return t}))}return this.keys.map((function(t){return n.model.findShape(t)})).filter((function(e){return e&&(t||!e.isLocked)}))},t.prototype.getSelectedConnectors=function(t,e){var n=this;if(e){var o=this.keys.map((function(t){return n.model.findItem(t)}));return this.getSelectedItemsInsideContainers(o).map((function(t){return t instanceof s.Connector?t:void 0})).filter((function(e){return e&&(t||!e.isLocked)}))}return this.keys.map((function(t){return n.model.findConnector(t)})).filter((function(e){return e&&(t||!e.isLocked)}))},t.prototype.hasKey=function(t){return this.keys.indexOf(t)>=0},t.prototype.isEmpty=function(t){return!this.getSelectedItems(t).length},t.prototype.selectRect=function(t){var e=[];this.model.iterateItems((function(n){n.intersectedByRect(t)&&e.push(n.key)})),this.set(e)},t.prototype.raiseSelectionChanged=function(){this.onChanged.raise(\"notifySelectionChanged\",this)},t}();e.Selection=c},240:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ConnectorRoutingMode=e.AutoZoomMode=e.DiagramSettings=void 0;var o,i,r=n(8675),s=n(6353),a=n(5383),c=n(4867),u=function(){function t(){this.onZoomChanged=new r.EventDispatcher,this.onViewChanged=new r.EventDispatcher,this.onReadOnlyChanged=new r.EventDispatcher,this.onConnectorRoutingModeChanged=new r.EventDispatcher,this._zoomLevel=1,this._zoomLevelWasChanged=!1,this._zoomLevelItems=[.5,.75,1,1.25,1.5,2,3],this._simpleView=!1,this._fullscreen=!1,this._readOnly=!1,this._autoZoom=o.Disabled,this._snapToGrid=!0,this._showGrid=!0,this._contextMenuEnabled=!0,this._gridSize=180,this._gridSizeItems=[90,180,360,720],this._pageSizeItems=[{size:new s.Size(12240,15840),text:\"US-Letter ({width} x {height})\"},{size:new s.Size(12240,20160),text:\"US-Legal ({width} x {height})\"},{size:new s.Size(15817,24491),text:\"US-Tabloid ({width} x {height})\"},{size:new s.Size(47679,67408),text:\"A0 ({width} x {height})\"},{size:new s.Size(33676,47679),text:\"A1 ({width} x {height})\"},{size:new s.Size(23811,33676),text:\"A2 ({width} x {height})\"},{size:new s.Size(16838,23811),text:\"A3 ({width} x {height})\"},{size:new s.Size(11906,16838),text:\"A4 ({width} x {height})\"},{size:new s.Size(8391,11906),text:\"A5 ({width} x {height})\"},{size:new s.Size(5953,8391),text:\"A6 ({width} x {height})\"},{size:new s.Size(4195,5953),text:\"A7 ({width} x {height})\"}],this._viewUnits=a.DiagramUnit.In,this._connectorRoutingMode=i.AllShapesOnly,this._reloadInsertedItemRequired=!1,this._useCanvgForExportToImage=!0}return Object.defineProperty(t.prototype,\"zoomLevel\",{get:function(){return this._zoomLevel},set:function(e){var n=this;(e=t.correctZoomLevel(e))!==this._zoomLevel&&(this._zoomLevel=e,this._zoomLevelWasChanged=!0,this.onZoomChanged.raise1((function(t){return t.notifyZoomChanged(e,n._autoZoom)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"zoomLevelWasChanged\",{get:function(){return this._zoomLevelWasChanged},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"zoomLevelItems\",{get:function(){return this._zoomLevelItems},set:function(e){(e=e.map((function(e){return t.correctZoomLevel(e)})))!==this._zoomLevelItems&&(this._zoomLevelItems=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"autoZoom\",{get:function(){return this._autoZoom},set:function(t){var e=this;t!==this._autoZoom&&(this._autoZoom=t,this.onZoomChanged.raise1((function(n){return n.notifyZoomChanged(e._zoomLevel,t)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"simpleView\",{get:function(){return this._simpleView},set:function(t){t!==this._simpleView&&(this._simpleView=t,this.notifyViewChanged())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"readOnly\",{get:function(){return this._readOnly},set:function(t){t!==this._readOnly&&(this._readOnly=t,this.onReadOnlyChanged.raise1((function(e){return e.notifyReadOnlyChanged(t)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"fullscreen\",{get:function(){return this._fullscreen},set:function(t){this._fullscreen=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"snapToGrid\",{get:function(){return this._snapToGrid},set:function(t){this._snapToGrid=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"showGrid\",{get:function(){return this._showGrid},set:function(t){var e=this;t!==this._showGrid&&(this._showGrid=t,this.onViewChanged.raise1((function(t){return t.notifyGridChanged(e.showGrid,e.gridSize)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"contextMenuEnabled\",{get:function(){return this._contextMenuEnabled},set:function(t){this._contextMenuEnabled=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"gridSize\",{get:function(){return this._gridSize},set:function(t){var e=this;t!==this._gridSize&&(this._gridSize=t,this.onViewChanged.raise1((function(t){return t.notifyGridChanged(e.showGrid,e.gridSize)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"gridSizeItems\",{get:function(){return this._gridSizeItems},set:function(t){t!==this._gridSizeItems&&(this._gridSizeItems=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"pageSizeItems\",{get:function(){return this._pageSizeItems},set:function(t){t!==this._pageSizeItems&&(this._pageSizeItems=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"viewUnits\",{get:function(){return this._viewUnits},set:function(t){this._viewUnits=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"connectorRoutingMode\",{get:function(){return this._connectorRoutingMode},set:function(t){t!==this._connectorRoutingMode&&(this._connectorRoutingMode=t,this.onConnectorRoutingModeChanged.raise1((function(e){return e.notifyConnectorRoutingModeChanged(t)})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"reloadInsertedItemRequired\",{get:function(){return this._reloadInsertedItemRequired},set:function(t){this._reloadInsertedItemRequired=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useCanvgForExportToImage\",{get:function(){return this._useCanvgForExportToImage},set:function(t){this._useCanvgForExportToImage=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shapeMinWidth\",{get:function(){return this._shapeMinWidth},set:function(t){this._shapeMinWidth=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shapeMinHeight\",{get:function(){return this._shapeMinHeight},set:function(t){this._shapeMinHeight=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shapeMaxWidth\",{get:function(){return this._shapeMaxWidth},set:function(t){this._shapeMaxWidth=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shapeMaxHeight\",{get:function(){return this._shapeMaxHeight},set:function(t){this._shapeMaxHeight=t},enumerable:!1,configurable:!0}),t.prototype.applyShapeSizeSettings=function(t,e){t&&(\"number\"==typeof t.shapeMaxHeight&&(this.shapeMaxHeight=c.ModelUtils.getTwipsValue(e,t.shapeMaxHeight)),\"number\"==typeof t.shapeMinHeight&&(this.shapeMinHeight=c.ModelUtils.getTwipsValue(e,t.shapeMinHeight)),\"number\"==typeof t.shapeMaxWidth&&(this.shapeMaxWidth=c.ModelUtils.getTwipsValue(e,t.shapeMaxWidth)),\"number\"==typeof t.shapeMinWidth&&(this.shapeMinWidth=c.ModelUtils.getTwipsValue(e,t.shapeMinWidth)))},t.prototype.notifyViewChanged=function(){var t=this;this.onViewChanged.raise1((function(e){return e.notifyViewChanged(t._simpleView)}))},t.correctZoomLevel=function(t){return Math.min(10,Math.max(t,.01))},t}();e.DiagramSettings=u,function(t){t[t.Disabled=0]=\"Disabled\",t[t.FitContent=1]=\"FitContent\",t[t.FitToWidth=2]=\"FitToWidth\"}(o=e.AutoZoomMode||(e.AutoZoomMode={})),function(t){t[t.None=0]=\"None\",t[t.ConnectorShapesOnly=1]=\"ConnectorShapesOnly\",t[t.AllShapesOnly=2]=\"AllShapesOnly\"}(i=e.ConnectorRoutingMode||(e.ConnectorRoutingMode={}))},2230:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},o(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.BarManager=void 0;var r=function(t){function e(e){var n=t.call(this)||this;return n.bars=[],n.control=e,n}return i(e,t),e.prototype.clean=function(){var t=this;this.bars.forEach((function(e){return e.onChanged.remove(t)})),this.bars=[]},e.prototype.registerBar=function(t){this.bars.push(t),t.onChanged.add(this),this.updateBarItemsState(t)},e.prototype.updateItemsState=function(t){if(!this.isUpdateLocked())for(var e=0,n=void 0;n=this.bars[e];e++)this.updateBarItemsState(n,t)},e.prototype.updateBarItemsState=function(t,e){if(!this.isUpdateLocked()){if(this.control.permissionsProvider.beginUpdateUI(),t.isVisible()){var n=void 0;if(e){var o=t.getCommandKeys().reduce((function(t,e){return t[e]=!0,t}),{});n=e.filter((function(t){return o[t]}))}else n=t.getCommandKeys();for(var i=n.length,r=0;r<i;r++)this.updateBarItem(t,n[r])}this.control.permissionsProvider.endUpdateUI()}},e.prototype.updateBarItem=function(t,e){var n=this.control.commandManager.getCommand(e);if(n){var o=n.getState();if(t.setItemVisible(e,o.visible),o.visible&&(t.setItemEnabled(e,o.enabled),!o.denyUpdateValue)){var i=this.getItemValue(o.value);o.items&&t.setItemSubItems(e,o.items),t.setItemValue(e,i,this.getDefaultItemValue(o.defaultValue))}}},e.prototype.setEnabled=function(t){for(var e=0,n=void 0;n=this.bars[e];e++)n.setEnabled(t)},e.prototype.notifyBarCommandExecuted=function(t,e){this.control.commandManager.getCommand(t).execute(e)||this.updateItemsState([t])},e.prototype.notifyBarUpdateRequested=function(){this.updateItemsState()},e.prototype.notifySelectionChanged=function(t){this.updateItemsState()},e.prototype.onUpdateUnlocked=function(t){},e.prototype.getItemValue=function(t){return t},e.prototype.getDefaultItemValue=function(t){return t},e}(n(1772).BatchUpdatableObject);e.BarManager=r},8675:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.EventUtils=e.HtmlFocusUtils=e.ObjectUtils=e.GeometryUtils=e.Utils=e.EventDispatcher=e.Range=e.LineEquation=void 0,n(7097);var o=n(6353),i=n(8900),r=n(8011),s=n(2400),a=n(5596),c=n(8679),u=n(9716),h=n(1335),p=n(1552),l=n(9279),d=n(3714),f=function(){function t(t,e,n){this.aParam=t,this.bParam=e,this.cParam=n}return t.fromPoints=function(e,n,o){return void 0===o&&(o=1e-5),v.areDuplicatedPoints(e,n,o)?void 0:new t(n.y-e.y,e.x-n.x,n.x*e.y-e.x*n.y)},t.prototype.getPointIntersection=function(t,e){void 0===e&&(e=1e-5);var n=this.aParam,o=this.bParam,i=this.cParam,r=t.aParam,s=t.bParam,a=t.cParam,u=r*o-n*s;if(c.MathUtils.numberCloseTo(u,0,e))return null;if(0===n){var h=(s*i-a*o)/(o*r);return this.createPoint(h,-i/o)}var p=(a*n-i*r)/u;return this.createPoint((-o*p-i)/n,p)},t.prototype.containsPoint=function(t,e){return void 0===e&&(e=1e-5),c.MathUtils.numberCloseTo(this.aParam*t.x+this.bParam*t.y+this.cParam,0,e)},t.prototype.createPoint=function(t,e,n){return void 0===n&&(n=1e-5),new i.Point(c.MathUtils.numberCloseTo(t,0,n)?0:t,c.MathUtils.numberCloseTo(e,0,n)?0:e)},t}();e.LineEquation=f;var y=function(){function t(t,e){this.from=t,this.to=void 0!==e?e:t}return Object.defineProperty(t.prototype,\"length\",{get:function(){return Math.abs(this.to-this.from)},enumerable:!1,configurable:!0}),t.prototype.extend=function(t){this.from=Math.min(t.from,this.from),this.to=Math.max(t.to,this.to)},t.prototype.includes=function(t){return t>=this.from&&t<=this.to},t.fromLength=function(e,n){return new t(e,e+n)},t}();e.Range=y;var g=function(){function t(){this.listeners=[]}return t.prototype.add=function(t){if(!t)throw new Error(\"Not Implemented\");this.hasEventListener(t)||this.listeners.push(t)},t.prototype.remove=function(t){for(var e=0,n=void 0;n=this.listeners[e];e++)if(n===t){this.listeners.splice(e,1);break}},t.prototype.raise=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];for(var o=0,i=void 0;i=this.listeners[o];o++){var r=i[t];r&&r.apply(i,e)}},t.prototype.raise1=function(t){for(var e=0,n=void 0;n=this.listeners[e];e++)t(n)},t.prototype.hasEventListener=function(t){for(var e=0,n=this.listeners.length;e<n;e++)if(this.listeners[e]===t)return!0;return!1},t}();e.EventDispatcher=g;var m=function(){function t(){}return t.flatten=function(t){return[].concat.apply([],t)},t}();e.Utils=m;var v=function(){function t(){}return t.arePointsOfOrthogonalLine=function(t,e,n){return n?t.y===e.y:t.x===e.x},t.getCommonRectangle=function(t){if(!t.length)return new r.Rectangle(0,0,0,0);var e=Number.MAX_VALUE,n=-Number.MAX_VALUE,o=Number.MAX_VALUE,i=-Number.MAX_VALUE;return t.forEach((function(t){e=Math.min(e,t.x),n=Math.max(n,t.right),o=Math.min(o,t.y),i=Math.max(i,t.bottom)})),new r.Rectangle(e,o,n-e,i-o)},t.findFreeSpace=function(t,e,n,o){var r=[o?o.x:0],a=[o?o.y:0];t.forEach((function(t){r.push(t.x),r.push(t.right),a.push(t.y),a.push(t.bottom)})),r=r.sort((function(t,e){return t-e})).reduce((function(t,e,n){return r[n-1]!==e&&t.push(e)&&t||t}),[]);for(var c=(a=a.sort((function(t,e){return t-e})).reduce((function(t,e,n){return a[n-1]!==e&&t.push(e)&&t||t}),[])).map((function(t){return r.map((function(t,e){return r[e+1]-t}))})),u=function(t,e){for(var n=s.SearchUtils.binaryIndexOf(r,(function(t){return t-e.x})),o=s.SearchUtils.binaryIndexOf(r,(function(t){return t-e.right})),i=s.SearchUtils.binaryIndexOf(a,(function(t){return t-e.y})),u=s.SearchUtils.binaryIndexOf(a,(function(t){return t-e.bottom})),h=i;h<u;h++)for(var p=n;p<o;p++)c[h][p]*=-1},h=0,p=void 0;p=t[h];h++)u(0,p);for(var l=0;l<a.length;l++)for(var d=0;d<r.length-1;d++){var f=this.checkRect(c,a,r,l,d,e,n);if(f>0)d=f;else if(0===f)return new i.Point(r[d],a[l])}return null},t.checkRect=function(t,e,n,o,i,r,s){for(var a=0,c=0,u=n.length-2,h=o;h<e.length;h++){a=e[h+1]-e[o];for(var p=i;p<=u;p++){if(t[h][p]<0)return 0===p?-1:p;if(c=n[p+1]-n[i],r.width<=c||!s&&p===n.length-2&&r.width/2<=c){if(r.height<=a||!s&&h===e.length-2&&r.height/2<=a)return 0;u=p}}}},t.getArrowPoints=function(t,e,n,o){if(t.x===e.x&&t.y===e.y)return{point1:t.clone(),point2:t.clone(),point3:t.clone()};var r=e.x-t.x,s=e.y-t.y,a=Math.sqrt(Math.pow(r,2)+Math.pow(s,2)),c=r/a,u=s/a,h=t.x+n*c+o*u,p=t.y+n*u-o*c,l=t.x+n*c-o*u,d=t.y+n*u+o*c,f=t.x+n*c,y=t.y+n*u;return{point1:new i.Point(h,p),point2:new i.Point(l,d),point3:new i.Point(f,y)}},t.createSegments=function(t){for(var e=[],n=1;n<t.length;n++)e.push(new h.Segment(t[n-1],t[n]));return e},t.createRectagle=function(t){var e=t.map((function(t){return t.x})),n=t.map((function(t){return t.y})),o=e.reduce((function(t,e){return Math.min(t,e)}),Number.MAX_VALUE),i=e.reduce((function(t,e){return Math.max(t,e)}),-Number.MAX_VALUE),s=n.reduce((function(t,e){return Math.min(t,e)}),Number.MAX_VALUE),a=n.reduce((function(t,e){return Math.max(t,e)}),-Number.MAX_VALUE);return new r.Rectangle(o,s,i-o,a-s)},t.createSegmentsFromRectangle=function(t){var e=[],n=new i.Point(t.x,t.y),o=new i.Point(t.right,t.y),r=new i.Point(t.right,t.bottom),s=new i.Point(t.x,t.bottom);return e.push(new h.Segment(n,o)),e.push(new h.Segment(o,r)),e.push(new h.Segment(r,s)),e.push(new h.Segment(s,n)),e},t.areSegmentsCutRectangle=function(e,n){if(!n)return!1;for(var o=t.createSegmentsFromRectangle(n),i=!1,r=!1,s=function(t){if(i&&r)return{value:!0};var s=e[t];if(s.isIntersectedByRect(n)){var a=s.startPoint,c=s.endPoint,u=n.containsPoint(a),h=n.containsPoint(c);if(!u&&!h)return{value:!0};if(u&&!h){var p=o.filter((function(t){return t.containsPoint(a)}));if(p.length>0)o.filter((function(t){return 1===p.length?!t.containsPoint(p[0].startPoint)&&!t.containsPoint(p[0].endPoint):t!==p[0]&&t!==p[1]})).some((function(t){return s.isIntersected(t)}))&&!i&&(i=!0);return r||(r=!0),\"continue\"}if(!u&&h){i||(i=!0,r&&(r=!1));var l=o.filter((function(t){return t.containsPoint(c)}));if(l.length>0)o.filter((function(t){return 1===l.length?!t.containsPoint(l[0].startPoint)&&!t.containsPoint(l[0].endPoint):t!==l[0]&&t!==l[1]})).some((function(t){return s.isIntersected(t)}))&&!r&&(r=!0);return\"continue\"}var d=o.filter((function(t){return t.containsPoint(a)})),f=o.filter((function(t){return t.containsPoint(c)}));if(2===d.length&&2===f.length)return{value:!0};if(1===d.length&&1===f.length&&d[0]!==f[0])return{value:!0};r||1!==f.length||d.length||(r=!0),i||1!==d.length||f.length||(i=!0,r&&(r=!1))}},a=0;a<e.length;a++){var c=s(a);if(\"object\"==typeof c)return c.value}return i&&r},t.areIntersectedSegments=function(t,e){if(!e)return!1;for(var n,o=0;n=t[o];){for(var i=0,r=void 0;r=e[i];){if(r.isIntersected(n))return!0;i++}o++}return!1},t.isLineIntersected=function(e,n,o,i,r){var s=f.fromPoints(e,n),a=o.startPoint,c=o.endPoint;if(s.containsPoint(a)&&s.containsPoint(c))return!i&&!r;var u=f.fromPoints(a,c).getPointIntersection(s);return!(!u||!o.containsPoint(u))&&(i?!t.areDuplicatedPoints(a,u):!r||!t.areDuplicatedPoints(c,u))},t.removeUnnecessaryPoints=function(t,e,n,o){void 0===n&&(n=function(t){return void 0!==t}),void 0===o&&(o=1e-5),this.removeUnnecessaryPointsCore(t,e,n,o),this.removeBackwardPoints(t,e,n,o),this.removeUnnecessaryPointsCore(t,e,n,o)},t.removeUnnecessaryRightAnglePoints=function(t,e,n,o){void 0===n&&(n=function(t){return void 0!==t}),void 0===o&&(o=1e-5),this.removeUnnecessaryPointsCore(t,e,n,o),this.removeBackwardPoints(t,e,n,o),this.removeNotRightAnglePoints(t,e,n,o),this.removeUnnecessaryPointsCore(t,e,n,o)},t.removeUnnecessaryPointsCore=function(t,e,n,o){void 0===n&&(n=function(t){return void 0!==t}),void 0===o&&(o=1e-5),this.removeDuplicatedPoints(t,e,n,o),this.removeNotCornersPoints(t,e,n,o)},t.removeNotRightAnglePoints=function(e,n,o,i){void 0===o&&(o=function(t){return void 0!==t}),void 0===i&&(i=1e-5);for(var r,s=0;(r=e[s])&&e.length>2;){var a=this.getNextPoint(e,s,1,o),c=this.getNextPoint(e,s,-1,o);c&&a&&!t.isRightAngleCorner(c,r,a,i)&&n(r,s)||s++}},t.removeDuplicatedPoints=function(e,n,o,i){void 0===o&&(o=function(t){return void 0!==t}),void 0===i&&(i=1e-5);for(var r,s=0;(r=e[s])&&e.length>2;){var a=this.getNextPoint(e,s,1,o);if(a&&t.areDuplicatedPoints(r,a,i)){var c=s===e.length-2?s:s+1;if(n(e[c],c))continue}s++}},t.removeNotCornersPoints=function(e,n,o,i){void 0===o&&(o=function(t){return void 0!==t}),void 0===i&&(i=1e-5);for(var r,s=0;(r=e[s])&&e.length>2;){var a=this.getNextPoint(e,s,1,o),c=this.getNextPoint(e,s,-1,o);c&&a&&!t.isCorner(c,r,a,i)&&n(r,s)||s++}},t.removeBackwardPoints=function(e,n,o,i){void 0===o&&(o=function(t){return void 0!==t}),void 0===i&&(i=1e-5);for(var r,s=0;(r=e[s])&&e.length>2;){var a=this.getNextPoint(e,s,1,o),c=this.getNextPoint(e,s,-1,o);c&&a&&t.isBackwardPoint(c,r,a,i)&&n(r,s)||s++}},t.isRightAngleCorner=function(e,n,o,i){return void 0===i&&(i=1e-5),c.MathUtils.numberCloseTo(t.createAngle(e,n,o),Math.PI/2,i)||c.MathUtils.numberCloseTo(t.createAngle(e,n,o),Math.PI,i)||c.MathUtils.numberCloseTo(t.createAngle(e,n,o),3*Math.PI/2,i)},t.isCorner=function(e,n,o,i){return void 0===i&&(i=1e-5),!c.MathUtils.numberCloseTo(t.createAngle(e,n,o),0,i)},t.areDuplicatedPoints=function(t,e,n){return void 0===n&&(n=1e-5),c.MathUtils.numberCloseTo(t.x,e.x,n)&&c.MathUtils.numberCloseTo(t.y,e.y,n)},t.isBackwardPoint=function(e,n,o,i){return void 0===i&&(i=1e-5),c.MathUtils.numberCloseTo(t.createAngle(e,n,o),Math.PI,i)},t.createAngle=function(t,e,n){var o=u.Vector.fromPoints(e,n),i=u.Vector.fromPoints(t,e),r=o.x,s=o.y,a=i.x,c=i.y,h=Math.atan2(r*c-a*s,r*a+s*c);return h<0?2*Math.PI+h:h},t.getNextPoint=function(t,e,n,o){for(var i,r=e+n;i=t[r];){if(o(i))return i;r+=n}},t.addSelectedLinesTo=function(t,e,n,o,i,r,s,a,u,h,p,l,d,f){void 0===f&&(f=1e-5);var y=e.y-t.y,g=n.y-e.y,m=t.x-e.x,v=e.x-n.x,P=y*v-g*m;if(!c.MathUtils.numberCloseTo(P,0,f)){var C=y*(t.x+o)+m*(t.y+i),S=g*(e.x+a)+v*(e.y+u);l((v*C-m*S)/P,(y*S-g*C)/P);var x=y*(t.x+r)+m*(t.y+s),b=g*(e.x+h)+v*(e.y+p);d((v*x-m*b)/P,(y*b-g*x)/P)}},t.getSelectionOffsetPoint=function(t,e,n){return new i.Point((t.y-e.y)/n,(e.x-t.x)/n)},t.getSelectionTextStartEndPoints=function(t,e,n,o,r,s){var a=(e.x-t.x)/n,c=(e.y-t.y)/n,u=r.width*a+r.height*c;switch(s){case p.TextAlignment.Left:return[o,new i.Point(o.x+a*u,o.y+c*u)];case p.TextAlignment.Right:return[new i.Point(o.x-a*u,o.y-c*u),o];default:return[new i.Point(o.x-.5*a*u,o.y-.5*c*u),new i.Point(o.x+.5*a*u,o.y+.5*c*u)]}},t.getPathLength=function(t){var e,n=0;return t.forEach((function(t){void 0!==e&&(n+=a.Metrics.euclideanDistance(t,e)),e=t})),n},t.getPathPointByPosition=function(t,e){if(!t.length)throw new Error(\"Invalid points\");if(0>e||e>1)throw new Error(\"Invalid relative position\");var n=this.getPathLength(t);if(t.length<=2&&0===n||0===e)return[t[0],0];for(var o=n*e,r=0,s=1;s<t.length;s++){var c=a.Metrics.euclideanDistance(t[s],t[s-1]);if(r+c>=o){var u=o-r,h=(t[s].x-t[s-1].x)/c,p=(t[s].y-t[s-1].y)/c;return[new i.Point(t[s-1].x+h*u,t[s-1].y+p*u),s]}r+=c}return[t[t.length-1],t.length-1]},t.getLineAngle=function(t,e){return Math.atan2(e.y-t.y,e.x-t.x)},t.getTriangleBeginAngle=function(t,e,n){var o=this.getLineAngle(t,e),i=this.getLineAngle(t,n);return Math.abs(i-o)},t.getTriangleEndAngle=function(t,e,n){var o=this.getLineAngle(t,e),i=this.getLineAngle(n,e);return Math.abs(o-i)},t.getPathPointByPoint=function(t,e){if(!t.length)throw new Error(\"Invalid points\");if(1===t.length)return t[0];for(var n,o=Number.MAX_VALUE,i=1;i<t.length;i++){var r=t[i-1],s=t[i];if(e.equals(r)){n=r.clone();break}if(e.equals(s)){n=s.clone();break}var c=this.getTriangleBeginAngle(r,s,e),u=this.getTriangleEndAngle(r,s,e),h=a.Metrics.euclideanDistance(e,r),p=a.Metrics.euclideanDistance(e,s),l=h*Math.sin(c),d=void 0;if((d=Math.PI/2<=c&&c<=3*Math.PI/2?h:Math.PI/2<=u&&u<=3*Math.PI/2?p:Math.abs(l))<o)if(o=d,Math.PI/2<=c&&c<=3*Math.PI/2)n=r.clone();else if(Math.PI/2<=u&&u<=3*Math.PI/2)n=s.clone();else{var f=Math.fround||Math.round,y=this.getLineAngle(r,s),g=f(Math.abs(l*Math.sin(y))),m=f(Math.abs(l*Math.cos(y))),v=e.y-r.y<f((e.x-r.x)*Math.tan(y));0<=y&&y<=Math.PI/2?(g*=v?-1:1,m*=v?1:-1):Math.PI/2<=y&&y<=Math.PI||0>=y&&y>=-Math.PI/2?(g*=v?1:-1,m*=v?1:-1):-Math.PI/2>=y&&y>=-Math.PI&&(g*=v?-1:1,m*=v?1:-1),n=e.clone().offset(g,m)}}return n},t.getPathPositionByPoint=function(t,e,n){void 0===n&&(n=100),e=this.getPathPointByPoint(t,e);for(var o=this.getPathLength(t),i=0,r=1;r<t.length;r++){var s=t[r-1],c=t[r],u=a.Metrics.euclideanDistance(c,s),h=Math.atan((c.y-s.y)/(c.x-s.x)),p=Math.fround||Math.round;if(e.x===c.x&&e.x===s.x||e.y===c.y&&e.y===s.y||p(e.y-s.y)===p((e.x-s.x)*Math.tan(h)))return 0!==Math.sin(h)?i+=Math.abs((e.y-s.y)/Math.sin(h)):i+=Math.abs(e.x-s.x),Math.round(i*n/o)/n;i+=u}return 1},t.arePointsEqual=function(t,e){var n=t.length;if(n!==e.length)return!1;for(var o=0;o<n;o++)if(!t[o].equals(e[o]))return!1;return!0},t.getMaxRectangleEnscribedInEllipse=function(t){var e=t.width*Math.sqrt(2)/2,n=t.height*Math.sqrt(2)/2;return new o.Size(e,n)},t.getEllipseByEnscribedRectangle=function(t){return new o.Size(2*t.width/Math.sqrt(2),2*t.height/Math.sqrt(2))},t}();e.GeometryUtils=v;var P=function(){function t(){}return t.cloneObject=function(t){return t&&Object.assign({},t)},t.compareObjects=function(t,e){return t===e||\"object\"==typeof t&&\"object\"==typeof e&&this.isDeepEqual(t,e)},t.isDeepEqual=function(t,e){var n=t?Object.getOwnPropertyNames(t):[],o=e?Object.getOwnPropertyNames(e):[];if(n.length!==o.length)return!1;for(var i=0;i<n.length;i++){var r=n[i];switch(typeof t[r]){case\"object\":if(!this.isDeepEqual(t[r],e[r]))return!1;break;case\"number\":if(!(isNaN(t[r])&&isNaN(e[r])||t[r]===e[r]))return!1;break;default:if(t[r]!==e[r])return!1}}return!0},t}();e.ObjectUtils=P;var C=function(){function t(){}return t.focusWithPreventScroll=function(t){try{var e=l.Browser.Safari,n=e&&this.getHtmlScrollPosition();if(e){var o=t.parentElement&&t.parentElement.getBoundingClientRect();if(o){var i=o.left<0?1-o.left:0,r=o.top<0?1-o.top:0,s=window.frameElement&&window.frameElement.getBoundingClientRect();s&&(s.top<0&&-s.top>o.top&&(r=-s.top-o.top+1),s.left<0&&-s.left>o.left&&(i=-s.left-o.left+1)),t.style.setProperty(\"left\",i+\"px\",\"important\"),t.style.setProperty(\"top\",r+\"px\",\"important\")}}if(t.focus({preventScroll:!0}),e){var a=this.getHtmlScrollPosition();P.compareObjects(n,a)||this.setHtmlScrollPosition(n),t.style.setProperty(\"left\",\"-1000px\",\"important\"),t.style.setProperty(\"top\",\"-1000px\",\"important\")}}catch(t){}},t.getHtmlScrollPosition=function(){return{pos:this.getDocumentScrollPosition(window,document),iframePos:window.top!==window&&this.getDocumentScrollPosition(window.top,window.top.document)}},t.getDocumentScrollPosition=function(t,e){return{left:t.pageXOffset||e.documentElement.scrollLeft||e.body.scrollLeft,top:t.pageYOffset||e.documentElement.scrollTop||e.body.scrollTop}},t.setHtmlScrollPosition=function(t){this.setDocumentScrollPosition(document,t.pos),window.top!==window&&t.iframePos&&this.setDocumentScrollPosition(window.top.document,t.iframePos)},t.setDocumentScrollPosition=function(t,e){t.documentElement.scrollTop=e.top,t.documentElement.scrollLeft=e.left,t.body.scrollTop=e.top,t.body.scrollLeft=e.left},t}();e.HtmlFocusUtils=C;var S=function(){function t(){}return t.isLeftButtonPressed=function(t){return d.EvtUtils.isLeftButtonPressed(t)},t.isPointerEvents=function(){return window.PointerEvent},t.isMousePointer=function(t){return this.isPointerEvents()&&(t.pointerType&&\"mouse\"===t.pointerType||l.Browser.Firefox&&\"click\"===t.type)},t.isTouchMode=function(){return l.Browser.TouchUI||window.navigator&&window.navigator.maxTouchPoints>0},t.isTouchEvent=function(e){return l.Browser.TouchUI||!t.isMousePointer(e)},t}();e.EventUtils=S},4914:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Data=e.SetAbsoluteY=e.SetAbsoluteX=void 0;var o=n(6907),i=n(2491);function r(t){return!isNaN(parseFloat(t))&&isFinite(t)}function s(t,e,n){return t-=function(t,e){var n=function(t){var e=document.createElement(\"DIV\");return e.style.top=\"0px\",e.style.left=\"0px\",e.style.visibility=\"hidden\",e.style.position=o.DomUtils.getCurrentStyle(t).position,e}(t);\"static\"===n.style.position&&(n.style.position=\"absolute\");t.parentNode.appendChild(n);var i=e?o.DomUtils.getAbsolutePositionX(n):o.DomUtils.getAbsolutePositionY(n);return t.parentNode.removeChild(n),Math.round(i)}(e,n),t}e.SetAbsoluteX=function(t,e){t.style.left=s(e,t,!0)+\"px\"},e.SetAbsoluteY=function(t,e){t.style.top=s(e,t,!1)+\"px\"};var a=function(){function t(){}return t.ArrayInsert=function(t,e,n){if(0<=n&&n<t.length){for(var o=t.length;o>n;o--)t[o]=t[o-1];t[n]=e}else t.push(e)},t.ArrayRemove=function(e,n){var o=t.ArrayIndexOf(e,n);o>-1&&t.ArrayRemoveAt(e,o)},t.ArrayRemoveAt=function(t,e){if(e>=0&&e<t.length){for(var n=e;n<t.length-1;n++)t[n]=t[n+1];t.pop()}},t.ArrayClear=function(t){for(;t.length>0;)t.pop()},t.ArrayIndexOf=function(t,e,n){if(n){for(o=0;o<t.length;o++)if(n(t[o],e))return o}else for(var o=0;o<t.length;o++)if(t[o]===e)return o;return-1},t.ArrayContains=function(e,n){return t.ArrayIndexOf(e,n)>=0},t.ArrayEqual=function(t,e){var n=t.length;if(n!==e.length)return!1;for(var o=0;o<n;o++)if(t[o]!==e[o])return!1;return!0},t.ArraySame=function(e,n){return e.length===n.length&&e.every((function(e){return t.ArrayContains(n,e)}))},t.ArrayGetIntegerEdgeValues=function(e){var n=t.CollectionToArray(e);return t.ArrayIntegerAscendingSort(n),{start:n[0],end:n[n.length-1]}},t.ArrayIntegerAscendingSort=function(e){t.ArrayIntegerSort(e,!1)},t.ArrayIntegerSort=function(t,e){t.sort((function(t,n){var o=0;return t>n?o=1:t<n&&(o=-1),e&&(o*=-1),o}))},t.CollectionsUnionToArray=function(t,e){for(var n=[],o=t.length,i=e.length,r=0;r<o+i;r++)r<o?n.push(t[r]):n.push(e[r-o]);return n},t.CollectionToArray=function(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n]);return e},t.CreateHashTableFromArray=function(t){for(var e=[],n=0;n<t.length;n++)e[t[n]]=1;return e},t.CreateIndexHashTableFromArray=function(t){for(var e=[],n=0;n<t.length;n++)e[t[n]]=n;return e},t.ArrayToHash=function(t,e,n){return t instanceof Array?t.reduce((function(t,o,i){var r=e(o,i),s=n(o,i);return t[r]=s,t}),{}):{}},t.Sum=function(t,e){return t instanceof Array?t.reduce((function(t,n){var o=e?e(n):n;return r(o)||(o=0),t+o}),0):0},t.Min=function(e,n){return t.CalculateArrayMinMax(e,n,!1)},t.Max=function(e,n){return t.CalculateArrayMinMax(e,n,!0)},t.NearestLeftBinarySearchComparer=function(t,e,n){var o=t[e],i=o<n;return i&&e===t.length-1||i&&t[e+1]>=n?0:o<n?-1:1},t.ArrayBinarySearch=function(e,n,o,r,s){o||(o=t.defaultBinarySearchComparer),i.isDefined(r)||(r=0),i.isDefined(s)||(s=e.length-r);for(var a=r+s-1;r<=a;){var c=r+(a-r>>1),u=o(e,c,n);if(0===u)return c;u<0?r=c+1:a=c-1}return-(r+1)},t.ArrayFlatten=function(t){var e=[];return t.forEach((function(t){e=e.concat(t)})),e},t.GetDistinctArray=function(e){for(var n=[],o=0;o<e.length;o++){var i=e[o];-1===t.ArrayIndexOf(n,i)&&n.push(i)}return n},t.ForEach=function(t,e){if(Array.prototype.forEach)Array.prototype.forEach.call(t,e);else for(var n=0,o=t.length;n<o;n++)e(t[n],n,t)},t.MergeHashTables=function(t,e){if(!e||\"string\"==typeof e)return t;for(var n in t||(t={}),e)n&&!(n in t)&&(t[n]=e[n]);return t},t.Range=function(t,e){return(t=parseInt(t)||0)<0&&(t=0),(e=parseInt(e)||0)<0&&(e=0),Array(t).map((function(t,n){return e+n}))},t.CalculateArrayMinMax=function(t,e,n){if(!(t instanceof Array))return 0;var o=n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;return t.reduce((function(t,i){var s=e?e(i):i;return r(s)||(s=o),(n?Math.max:Math.min)(s,t)}),o)},t.byRange=function(t,e,n){return Math.min(Math.max(t,e),n)},t.defaultBinarySearchComparer=function(t,e,n){var o=t[e];return o===n?0:o<n?-1:1},t.cssTextToObject=function(t){return t?(t=t.replace(/\\/\\*(.|\\s)*?\\*\\//g,\"\").replace(/\\s+/g,\" \")).split(\";\").reduce((function(t,e){if(e){var n=/\\s*([^:]+?)\\s*:\\s*([^;]*)\\s*$/.exec(e);if(n){var o=n[1],i=n[2];o&&i&&(t[o.trim()]=i.trim())}return t}return t}),{}):{}},t.objectToCssText=function(t){return t?Object.keys(t).reduce((function(e,n){var o=n.trim(),i=t[n];return o&&i&&e.push(o+\": \"+i.toString().trim()),e}),[]).join(\"; \"):\"\"},t}();e.Data=a},8396:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.isColorProperty=void 0;var n={stroke:!0,fill:!0};e.isColorProperty=function(t){return n[t]}},3490:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.getLineHeight=e.getTextHeight=e.getTextLineSize=e.getOptimalTextRectangle=e.TEXTRECT_RATIO_EPS=e.textToParagraphs=e.textToWords=e.wordsByLines=e.LINE_HEIGHT=void 0;var o=n(8675),i=n(6353),r=n(4914),s=/\\s/gm;function a(t,e,n){if(1===e.length)return e;for(var o=n(),i=o.words[\" \"].width,r=[],s=0,a=-1,c=0;c<e.length;c++){var u=e[c],h=o.words[u].width;-1===a||s+i+h>t?(a=r.push(u)-1,s=h):(s+=i+h,r[a]+=\" \"+u)}return r}function c(t){return t.split(s).filter((function(t){return t.length}))}function u(t){return t.split(\"\\n\")}e.LINE_HEIGHT=1.05,e.wordsByLines=a,e.textToWords=c,e.textToParagraphs=u,e.TEXTRECT_RATIO_EPS=1.2;var h=1;function p(t,e,n){var o=t<1?1/t:t,i=e<1?1/e:e,r=o/i;return(r<1?1/r:r)<=n?0:i>o?1:-1}function l(t,e,n,o){return d(y(t,e,n,!1),o)}function d(t,e){return[r.Data.byRange(t,e.from,e.to),t<=e.to]}function f(t,e){return c(t).reduce((function(t,n,o){var i=e.words[n];return t.width+=i.width,t.height=Math.max(t.height,i.height),o>0&&(t.width+=e.words[\" \"].width),t}),new i.Size(0,0))}function y(t,e,n,o){var i=Array.isArray(t)?t:u(t);return!o||i.length&&(1!==i.length||i[0].length)?i.reduce((function(t,o){return t+a(e,c(o),(function(){return n})).length}),0)*g(n):g(n)}function g(t){return t.fontSize*e.LINE_HEIGHT}e.getOptimalTextRectangle=function(t,n,s,a,c,g,m,v,P,C){if(void 0===m&&(m=0),void 0===v&&(v=Number.MAX_SAFE_INTEGER||Number.MAX_VALUE),void 0===P&&(P=0),void 0===C&&(C=Number.MAX_SAFE_INTEGER||Number.MAX_VALUE),!t)return new i.Size(r.Data.byRange(c.width,m,v),r.Data.byRange(c.height,P,C));if(m>v||P>C)throw new Error(\"Min size cannot exceed max size\");if(m===v&&P===C)return new i.Size(m,P);var S=a.measureWords(t,n,s),x=u(t),b=Object.keys(S.words).reduce((function(t,e){return Math.max(t,S.words[e].width)}),0),I=new o.Range(r.Data.byRange(Math.max(c.width,b),m,v),v),w=new o.Range(r.Data.byRange(c.height,P,C),C);if(b<=c.width&&y(x,c.width,S,!1)<=c.height&&I.includes(c.width)&&w.includes(c.height))return c;var _=c.width/c.height;return function(t,n,o,s,a,c){for(var u,y,g=t.reduce((function(t,e){return Math.max(t,f(e,n).width)}),0),m=new i.Size(0,0),v=new i.Size(0,0),P=0,C=0,S=0;S<5;S++){if(0===S)v.width=d(g,s)[0];else{if(!(Math.abs(P)>h))break;v.width=d(m.width+P,s)[0]}if(u=l(t,v.width,n,a),v.height=u[0],y=u[1],0===S&&(C=(m=v.clone()).width/m.height/o),0===S&&!y)break;var x=v.width/v.height,b=x/o;if(0===S)P=(v.width/b-v.width)/2;else if(y){if(!p(o,x,e.TEXTRECT_RATIO_EPS)){m=v.clone(),C=b;break}if(!(p(C,b,1)<0))break;m=v.clone(),C=b,P=(v.width/b-v.width)/2,b<1&&(P/=2)}else P/=2}c&&(m.height=r.Data.byRange(m.width/o,m.height,a.to));return m}(x,S,_,I,w,g)},e.getTextLineSize=f,e.getTextHeight=y,e.getLineHeight=g},6734:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.ViewController=void 0;var o=n(7156),i=Math.log(.05),r=Math.log(3),s=h(1),a=[o.DiagramCommand.ZoomLevel,o.DiagramCommand.ZoomLevelInPercentage,o.DiagramCommand.Zoom100,o.DiagramCommand.Zoom125,o.DiagramCommand.Zoom200,o.DiagramCommand.Zoom25,o.DiagramCommand.Zoom50,o.DiagramCommand.Zoom75],c=[o.DiagramCommand.SwitchAutoZoom,o.DiagramCommand.ToggleAutoZoom,o.DiagramCommand.AutoZoomToContent,o.DiagramCommand.AutoZoomToWidth],u=function(){function t(t,e){this.settings=t,this.bars=e,t.onZoomChanged.add(this),this.autoZoom=t.autoZoom}return t.prototype.initialize=function(t){this.view=t,this.view.onViewChanged.add(this)},t.prototype.scrollTo=function(t,e){this.view&&this.view.setScrollTo(t,e)},t.prototype.scrollBy=function(t){return!this.view||0===t.x&&0===t.y?t:this.view.scrollBy(t)},t.prototype.scrollIntoView=function(t){this.view&&this.view.scrollIntoView(t)},t.prototype.normalize=function(){this.view.tryNormalizePaddings()},t.prototype.getNextStepZoom=function(t){var e=this.getNearestCurrentZoomStep(),n=t?1:-1,o=Math.min(39,Math.max(0,e+n));if(o!==s){var a=i+(r-i)*o/39;return Math.exp(a)}return 1},t.prototype.getNearestCurrentZoomStep=function(){return h(this.getZoom())},t.prototype.getZoom=function(){return this.view?this.view.actualZoom:this.settings.zoomLevel},t.prototype.resetScroll=function(){this.view.adjust({horizontal:!0,vertical:!0})},t.prototype.notifyViewAdjusted=function(t){},t.prototype.notifyActualZoomChanged=function(t){this.bars.updateItemsState(a)},t.prototype.notifyZoomChanged=function(t,e){this.autoZoom!==e&&(this.autoZoom=e,this.bars.updateItemsState(c))},t}();function h(t){var e=Math.log(t);return Math.round(39*(e-i)/(r-i))}e.ViewController=u},3607:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.DiagramModelOperation=e.Diagnostics=e.RenderHelper=e.DiagramLocalizationService=e.NativeConnector=e.NativeShape=e.ShapeType=e.ColorUtils=e.PageOrientation=e.ConnectorPosition=e.ConnectorLineOption=e.ConnectorLineEnding=e.AutoZoomMode=e.Browser=e.UnitConverter=e.EventDispatcher=e.DataLayoutOrientation=e.DataLayoutType=e.ShapeCategories=e.ShapeTypes=e.DiagramUnit=e.default=e.DiagramControl=e.DiagramCommand=e.Point=e.Size=void 0;var o=n(7156);Object.defineProperty(e,\"DiagramCommand\",{enumerable:!0,get:function(){return o.DiagramCommand}});var i=n(2106);Object.defineProperty(e,\"DiagramControl\",{enumerable:!0,get:function(){return i.DiagramControl}}),Object.defineProperty(e,\"default\",{enumerable:!0,get:function(){return i.DiagramControl}});var r=n(6353);Object.defineProperty(e,\"Size\",{enumerable:!0,get:function(){return r.Size}});var s=n(8900);Object.defineProperty(e,\"Point\",{enumerable:!0,get:function(){return s.Point}});var a=n(8675);Object.defineProperty(e,\"EventDispatcher\",{enumerable:!0,get:function(){return a.EventDispatcher}});var c=n(2259);Object.defineProperty(e,\"ShapeTypes\",{enumerable:!0,get:function(){return c.ShapeTypes}}),Object.defineProperty(e,\"ShapeCategories\",{enumerable:!0,get:function(){return c.ShapeCategories}}),Object.defineProperty(e,\"ShapeType\",{enumerable:!0,get:function(){return c.ShapeType}});var u=n(9291);Object.defineProperty(e,\"UnitConverter\",{enumerable:!0,get:function(){return u.UnitConverter}});var h=n(9279);Object.defineProperty(e,\"Browser\",{enumerable:!0,get:function(){return h.Browser}});var p=n(240);Object.defineProperty(e,\"AutoZoomMode\",{enumerable:!0,get:function(){return p.AutoZoomMode}});var l=n(3503);Object.defineProperty(e,\"DataLayoutType\",{enumerable:!0,get:function(){return l.DataLayoutType}});var d=n(8710);Object.defineProperty(e,\"DataLayoutOrientation\",{enumerable:!0,get:function(){return d.DataLayoutOrientation}}),n(8721);var f=n(4612);Object.defineProperty(e,\"ConnectorLineEnding\",{enumerable:!0,get:function(){return f.ConnectorLineEnding}}),Object.defineProperty(e,\"ConnectorLineOption\",{enumerable:!0,get:function(){return f.ConnectorLineOption}});var y=n(13);Object.defineProperty(e,\"ColorUtils\",{enumerable:!0,get:function(){return y.ColorUtils}});var g=n(9463);Object.defineProperty(e,\"Diagnostics\",{enumerable:!0,get:function(){return g.Diagnostics}});var m=n(7185);Object.defineProperty(e,\"NativeShape\",{enumerable:!0,get:function(){return m.NativeShape}}),Object.defineProperty(e,\"NativeConnector\",{enumerable:!0,get:function(){return m.NativeConnector}});var v=n(6224);Object.defineProperty(e,\"DiagramLocalizationService\",{enumerable:!0,get:function(){return v.DiagramLocalizationService}});var P=n(1114);Object.defineProperty(e,\"RenderHelper\",{enumerable:!0,get:function(){return P.RenderHelper}});var C=n(5383);Object.defineProperty(e,\"DiagramUnit\",{enumerable:!0,get:function(){return C.DiagramUnit}}),Object.defineProperty(e,\"PageOrientation\",{enumerable:!0,get:function(){return C.PageOrientation}});var S=n(6879);Object.defineProperty(e,\"DiagramModelOperation\",{enumerable:!0,get:function(){return S.DiagramModelOperation}});var x=n(7959);Object.defineProperty(e,\"ConnectorPosition\",{enumerable:!0,get:function(){return x.ConnectorPosition}})},655:(t,e,n)=>{n.r(e),n.d(e,{__assign:()=>r,__asyncDelegator:()=>C,__asyncGenerator:()=>P,__asyncValues:()=>S,__await:()=>v,__awaiter:()=>h,__classPrivateFieldGet:()=>_,__classPrivateFieldSet:()=>T,__createBinding:()=>l,__decorate:()=>a,__exportStar:()=>d,__extends:()=>i,__generator:()=>p,__importDefault:()=>w,__importStar:()=>I,__makeTemplateObject:()=>x,__metadata:()=>u,__param:()=>c,__read:()=>y,__rest:()=>s,__spread:()=>g,__spreadArrays:()=>m,__values:()=>f});var o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)};function i(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var r=function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},r.apply(this,arguments)};function s(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(t);i<o.length;i++)e.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(t,o[i])&&(n[o[i]]=t[o[i]])}return n}function a(t,e,n,o){var i,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,o);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(s=(r<3?i(s):r>3?i(e,n,s):i(e,n))||s);return r>3&&s&&Object.defineProperty(e,n,s),s}function c(t,e){return function(n,o){e(n,o,t)}}function u(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function h(t,e,n,o){return new(n||(n=Promise))((function(i,r){function s(t){try{c(o.next(t))}catch(t){r(t)}}function a(t){try{c(o.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((o=o.apply(t,e||[])).next())}))}function p(t,e){var n,o,i,r,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(r){return function(a){return function(r){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,o=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){s.label=r[1];break}if(6===r[0]&&s.label<i[1]){s.label=i[1],i=r;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(r);break}i[2]&&s.ops.pop(),s.trys.pop();continue}r=e.call(t,s)}catch(t){r=[6,t],o=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,a])}}}var l=Object.create?function(t,e,n,o){void 0===o&&(o=n),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,o){void 0===o&&(o=n),t[o]=e[n]};function d(t,e){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(e,n)||l(e,t,n)}function f(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function y(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,r=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return s}function g(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(y(arguments[e]));return t}function m(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var o=Array(t),i=0;for(e=0;e<n;e++)for(var r=arguments[e],s=0,a=r.length;s<a;s++,i++)o[i]=r[s];return o}function v(t){return this instanceof v?(this.v=t,this):new v(t)}function P(t,e,n){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var o,i=n.apply(t,e||[]),r=[];return o={},s(\"next\"),s(\"throw\"),s(\"return\"),o[Symbol.asyncIterator]=function(){return this},o;function s(t){i[t]&&(o[t]=function(e){return new Promise((function(n,o){r.push([t,e,n,o])>1||a(t,e)}))})}function a(t,e){try{(n=i[t](e)).value instanceof v?Promise.resolve(n.value.v).then(c,u):h(r[0][2],n)}catch(t){h(r[0][3],t)}var n}function c(t){a(\"next\",t)}function u(t){a(\"throw\",t)}function h(t,e){t(e),r.shift(),r.length&&a(r[0][0],r[0][1])}}function C(t){var e,n;return e={},o(\"next\"),o(\"throw\",(function(t){throw t})),o(\"return\"),e[Symbol.iterator]=function(){return this},e;function o(o,i){e[o]=t[o]?function(e){return(n=!n)?{value:v(t[o](e)),done:\"return\"===o}:i?i(e):e}:i}}function S(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=f(t),e={},o(\"next\"),o(\"throw\"),o(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function o(n){e[n]=t[n]&&function(e){return new Promise((function(o,i){(function(t,e,n,o){Promise.resolve(o).then((function(e){t({value:e,done:n})}),e)})(o,i,(e=t[n](e)).done,e.value)}))}}}function x(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t}var b=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e};function I(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)\"default\"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&l(e,t,n);return b(e,t),e}function w(t){return t&&t.__esModule?t:{default:t}}function _(t,e){if(!e.has(t))throw new TypeError(\"attempted to get private field on non-instance\");return e.get(t)}function T(t,e,n){if(!e.has(t))throw new TypeError(\"attempted to set private field on non-instance\");return e.set(t,n),n}}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}return n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n(3607)})()));","/*! For license information please see dx-gantt.min.js.LICENSE.txt */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.DevExpress=t():(e.DevExpress=e.DevExpress||{},e.DevExpress.Gantt=t())}(this,(()=>(()=>{\"use strict\";var e={9279:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Browser=void 0;var n=function(){function e(){}return e.IdentUserAgent=function(t,n){void 0===n&&(n=!1);var r=[\"Mozilla\",\"IE\",\"Firefox\",\"Netscape\",\"Safari\",\"Chrome\",\"Opera\",\"Opera10\",\"Edge\"],i=\"IE\",o=\"Win\",s={Safari:2,Chrome:.1,Mozilla:1.9,Netscape:8,Firefox:2,Opera:9,IE:6,Edge:12};if(t&&0!==t.length){t=t.toLowerCase(),e.indentPlatformMajorVersion(t);try{for(var a={Windows:\"Win\",Macintosh:\"Mac\",\"Mac OS\":\"Mac\",Mac_PowerPC:\"Mac\",\"cpu os\":\"MacMobile\",\"cpu iphone os\":\"MacMobile\",Android:\"Android\",\"!Windows Phone\":\"WinPhone\",\"!WPDesktop\":\"WinPhone\",\"!ZuneWP\":\"WinPhone\"},l=\"(?:/|\\\\s*)?\",c=\"(\\\\d+)(?:\\\\.((?:\\\\d+?[1-9])|\\\\d)0*?)?\",u=\"(?:\"+c+\")?\",d={Safari:\"applewebkit(?:.*?(?:version/\"+c+\"[\\\\.\\\\w\\\\d]*?(?:\\\\s+mobile/\\\\S*)?\\\\s+safari))?\",Chrome:\"(?:chrome|crios)(?!frame)\"+l+u,Mozilla:\"mozilla(?:.*rv:\"+u+\".*Gecko)?\",Netscape:\"(?:netscape|navigator)\\\\d*/?\\\\s*\"+u,Firefox:\"firefox\"+l+u,Opera:\"(?:opera|\\\\sopr)\"+l+u,Opera10:\"opera.*\\\\s*version\"+l+u,IE:\"msie\\\\s*\"+u,Edge:\"edge\"+l+u},p=null,h=-1,f=0;f<r.length;f++){var g=r[f],y=new RegExp(d[g],\"i\").exec(t);if(y&&y.index>=0){if(\"IE\"===p&&h>=11&&\"Safari\"===g)continue;\"Opera10\"===(p=g)&&(p=\"Opera\");var m=\"trident\"+l+u;h=e.GetBrowserVersion(t,y,m,e.getIECompatibleVersionString()),\"Mozilla\"===p&&h>=11&&(p=\"IE\")}}p||(p=i);var v=-1!==h;v||(h=s[p]);var T=null,b=Number.MAX_VALUE;for(var k in a)if(Object.prototype.hasOwnProperty.call(a,k)){var S=\"!\"===k.substr(0,1),_=t.indexOf((S?k.substr(1):k).toLowerCase());_>=0&&(_<b||S)&&(b=S?0:_,T=a[k])}var w=t.toUpperCase().match(\"SM-[A-Z]\"),E=w&&w.length>0;\"WinPhone\"===T&&h<9&&(h=Math.floor(e.getVersionFromTrident(t,\"trident\"+l+u))),!n&&\"IE\"===p&&h>7&&document.documentMode<h&&(h=document.documentMode),\"WinPhone\"===T&&(h=Math.max(9,h)),T||(T=o),T!==a[\"cpu os\"]||v||(h=4),e.fillUserAgentInfo(r,p,h,T,E)}catch(t){e.fillUserAgentInfo(r,i,s[i],o)}}else e.fillUserAgentInfo(r,i,s[i],o)},e.GetBrowserVersion=function(t,n,r,i){var o=e.getVersionFromMatches(n);if(i){var s=e.getVersionFromTrident(t,r);if(\"edge\"===i||parseInt(i)===s)return s}return o},e.getIECompatibleVersionString=function(){if(document.compatible)for(var e=0;e<document.compatible.length;e++)if(\"IE\"===document.compatible[e].userAgent&&document.compatible[e].version)return document.compatible[e].version.toLowerCase();return\"\"},e.isTouchEnabled=function(){return e.hasTouchStart()||e.hasMaxTouchPoints()||e.hasMsMaxTouchPoints()},e.hasTouchStart=function(){return\"ontouchstart\"in window},e.hasMaxTouchPoints=function(){return navigator.maxTouchPoints>0},e.hasMsMaxTouchPoints=function(){return navigator.msMaxTouchPoints>0},e.hasNavigator=function(){return\"undefined\"!=typeof navigator},e.fillUserAgentInfo=function(t,n,r,i,o){void 0===o&&(o=!1);for(var s=0;s<t.length;s++){var a=t[s];e[a]=a===n}e.Version=Math.floor(10*r)/10,e.MajorVersion=Math.floor(e.Version),e.WindowsPlatform=\"Win\"===i||\"WinPhone\"===i,e.MacOSMobilePlatform=\"MacMobile\"===i||\"Mac\"===i&&e.isTouchEnabled(),e.MacOSPlatform=\"Mac\"===i&&!e.MacOSMobilePlatform,e.AndroidMobilePlatform=\"Android\"===i,e.WindowsPhonePlatform=\"WinPhone\"===i,e.WebKitFamily=e.Safari||e.Chrome||e.Opera&&e.MajorVersion>=15,e.NetscapeFamily=e.Netscape||e.Mozilla||e.Firefox,e.WebKitTouchUI=e.MacOSMobilePlatform||e.AndroidMobilePlatform;var l=e.IE&&e.MajorVersion>9&&e.WindowsPlatform&&e.UserAgent.toLowerCase().indexOf(\"touch\")>=0;if(e.MSTouchUI=l||e.Edge&&!!window.navigator.maxTouchPoints,e.TouchUI=e.WebKitTouchUI||e.MSTouchUI,e.MobileUI=e.WebKitTouchUI||e.WindowsPhonePlatform,e.AndroidDefaultBrowser=e.AndroidMobilePlatform&&!e.Chrome,e.AndroidChromeBrowser=e.AndroidMobilePlatform&&e.Chrome,o&&(e.SamsungAndroidDevice=o),e.MSTouchUI){var c=e.UserAgent.toLowerCase().indexOf(\"arm;\")>-1;e.VirtualKeyboardSupported=c||e.WindowsPhonePlatform}else e.VirtualKeyboardSupported=e.WebKitTouchUI;e.fillDocumentElementBrowserTypeClassNames(t)},e.indentPlatformMajorVersion=function(t){var n=/(?:(?:windows nt|macintosh|mac os|cpu os|cpu iphone os|android|windows phone|linux) )(\\d+)(?:[-0-9_.])*/.exec(t);n&&(e.PlaformMajorVersion=n[1])},e.getVersionFromMatches=function(e){var t=-1,n=\"\";return e&&(e[1]&&(n+=e[1],e[2]&&(n+=\".\"+e[2])),\"\"!==n&&(t=parseFloat(n),isNaN(t)&&(t=-1))),t},e.getVersionFromTrident=function(t,n){var r=new RegExp(n,\"i\").exec(t);return e.getVersionFromMatches(r)+4},e.fillDocumentElementBrowserTypeClassNames=function(t){for(var n=\"\",r=t.concat([\"WindowsPlatform\",\"MacOSPlatform\",\"MacOSMobilePlatform\",\"AndroidMobilePlatform\",\"WindowsPhonePlatform\",\"WebKitFamily\",\"WebKitTouchUI\",\"MSTouchUI\",\"TouchUI\",\"AndroidDefaultBrowser\"]),i=0;i<r.length;i++){var o=r[i];e[o]&&(n+=\"dx\"+o+\" \")}n+=\"dxBrowserVersion-\"+e.MajorVersion,\"undefined\"!=typeof document&&document&&document.documentElement&&(\"\"!==document.documentElement.className&&(n=\" \"+n),document.documentElement.className+=n,e.Info=n)},e.getUserAgent=function(){return e.hasNavigator()&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\"},e.UserAgent=e.getUserAgent(),e._foo=e.IdentUserAgent(e.UserAgent),e}();t.Browser=n},6799:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedMinMax=t.ExtendedMax=t.ExtendedMin=t.MinMaxNumber=t.MinMax=void 0;var r=n(655),i=function(e,t){this.minElement=e,this.maxElement=t};t.MinMax=i;var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),Object.defineProperty(t.prototype,\"length\",{get:function(){return this.maxElement-this.minElement},enumerable:!1,configurable:!0}),t}(i);t.MinMaxNumber=o;var s=function(e,t){this.minElement=e,this.minValue=t};t.ExtendedMin=s;var a=function(e,t){this.maxElement=e,this.maxValue=t};t.ExtendedMax=a;var l=function(e){function t(t,n,r,i){var o=e.call(this,t,r)||this;return o.minValue=n,o.maxValue=i,o}return r.__extends(t,e),t}(i);t.ExtendedMinMax=l},3604:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Margins=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.empty=function(){return new t(0,0,0,0)},t.prototype.clone=function(){return new t(this.left,this.right,this.top,this.bottom)},t}(n(4125).Offsets);t.Margins=i},5596:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Metrics=void 0;var n=function(){function e(){}return e.euclideanDistance=function(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)},e.manhattanDistance=function(e,t){return Math.abs(e.x-t.x)+Math.abs(e.y-t.y)},e}();t.Metrics=n},4125:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Offsets=void 0;var n=function(){function e(e,t,n,r){this.left=e,this.right=t,this.top=n,this.bottom=r}return e.empty=function(){return new e(0,0,0,0)},Object.defineProperty(e.prototype,\"horizontal\",{get:function(){return this.left+this.right},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"vertical\",{get:function(){return this.top+this.bottom},enumerable:!1,configurable:!0}),e.fromNumber=function(t){return new e(t,t,t,t)},e.fromOffsets=function(t){return new e(t.left,t.right,t.top,t.bottom)},e.fromSide=function(t,n){return new e(t,t,n,n)},e.prototype.normalize=function(){return this.left=Math.max(0,this.left),this.right=Math.max(0,this.right),this.top=Math.max(0,this.top),this.bottom=Math.max(0,this.bottom),this},e.prototype.toString=function(){return JSON.stringify(this)},e.prototype.isEmpty=function(){return 0===this.left&&0===this.right&&0===this.top&&0===this.bottom},e.prototype.offset=function(e){return this.left+=e.left,this.right+=e.right,this.top+=e.top,this.bottom+=e.bottom,this},e.prototype.multiply=function(e,t,n,r){switch(arguments.length){case 1:return this.left*=e,this.right*=e,this.top*=e,this.bottom*=e,this;case 2:return this.left*=e,this.right*=e,this.top*=t,this.bottom*=t,this;case 4:return this.left*=e,this.right*=t,this.top*=n,this.bottom*=r,this}return this},e.prototype.clone=function(){return new e(this.left,this.right,this.top,this.bottom)},e.prototype.copyFrom=function(e){this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom},e.prototype.equals=function(e){return this.top===e.top&&this.bottom===e.bottom&&this.right===e.right&&this.left===e.left},e.prototype.applyConverter=function(e){return this.left=e(this.left),this.right=e(this.right),this.top=e(this.top),this.bottom=e(this.bottom),this},e}();t.Offsets=n},8900:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Point=void 0;var n=function(){function e(e,t){this.x=e,this.y=t}return e.zero=function(){return new e(0,0)},e.fromNumber=function(t){return new e(t,t)},e.prototype.isZero=function(){return 0===this.x&&0===this.y},e.prototype.toString=function(){return JSON.stringify(this)},e.prototype.copyFrom=function(e){this.x=e.x,this.y=e.y},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.equals=function(e){return this.x===e.x&&this.y===e.y},e.prototype.offset=function(e,t){return this.x+=e,this.y+=t,this},e.prototype.offsetByPoint=function(e){return this.x+=e.x,this.y+=e.y,this},e.prototype.multiply=function(e,t){return this.x*=e,this.y*=t,this},e.prototype.negative=function(){return this.x*=-1,this.y*=-1,this},e.prototype.applyConverter=function(e){return this.x=e(this.x),this.y=e(this.y),this},e.plus=function(t,n){return new e(t.x+n.x,t.y+n.y)},e.minus=function(t,n){return new e(t.x-n.x,t.y-n.y)},e.xComparer=function(e,t){return e.x-t.x},e.yComparer=function(e,t){return e.y-t.y},e.equals=function(e,t){return e.x===t.x&&e.y===t.y},e}();t.Point=n},6353:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Size=void 0;var n=function(){function e(e,t){this.width=e,this.height=t}return e.empty=function(){return new e(0,0)},e.fromNumber=function(t){return new e(t,t)},e.initByCommonAction=function(t){var n=function(e){return e.width},r=function(e){return e.height};return new e(t(n,r),t(r,n))},e.prototype.isEmpty=function(){return 0===this.width&&0===this.height},e.prototype.toString=function(){return JSON.stringify(this)},e.prototype.nonNegativeSize=function(){return this.width<0&&(this.width=0),this.height<0&&(this.height=0),this},e.prototype.offset=function(e,t){return this.width=this.width+e,this.height=this.height+t,this},e.prototype.multiply=function(e,t){return this.width*=e,this.height*=t,this},e.prototype.equals=function(e){return this.width===e.width&&this.height===e.height},e.prototype.clone=function(){return new e(this.width,this.height)},e.prototype.copyFrom=function(e){this.width=e.width,this.height=e.height},e.prototype.applyConverter=function(e){return this.width=e(this.width),this.height=e(this.height),this},e.equals=function(e,t){return e.width===t.width&&e.height===t.height},e}();t.Size=n},2217:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AttrUtils=void 0;var r=n(9279),i=function(){function e(){}return e.setElementAttribute=function(e,t,n){e.setAttribute&&(r.Browser.IE&&r.Browser.MajorVersion>=11&&\"src\"===t.toLowerCase()&&e.setAttribute(t,\"\"),e.setAttribute(t,n))},e.setStyleAttribute=function(e,t,n){e.setProperty&&e.setProperty(t,n,\"\")},e.getElementAttribute=function(e,t){return e.getAttribute(t)},e.getStyleAttribute=function(e,t){if(e.getPropertyValue){if(r.Browser.Firefox)try{return e.getPropertyValue(t)}catch(n){return e[t]}return e.getPropertyValue(t)}return null},e.removeElementAttribute=function(e,t){e.removeAttribute&&e.removeAttribute(t)},e.removeStyleAttribute=function(e,t){e.removeProperty&&e.removeProperty(t)},e.changeElementStyleAttribute=function(t,n,r){e.saveStyleAttributeInElement(t,n),e.setStyleAttribute(t.style,n,r)},e.restoreElementStyleAttribute=function(t,n){var r=\"dxwu_saved\"+n,i=t.style;if(e.isExistsAttributeInElement(t,r)){var o=e.getElementAttribute(t,r);return o===e.emptyObject||null===o?e.removeStyleAttribute(i,n):e.setStyleAttribute(i,n,o),e.removeElementAttribute(t,r),!0}return!1},e.saveStyleAttributeInElement=function(t,n){var r=\"dxwu_saved\"+n,i=t.style;if(!e.isExistsAttributeInElement(t,r)){var o=e.getStyleAttribute(i,n);e.setElementAttribute(t,r,e.isAttributeExists(o)?o:e.emptyObject)}},e.isExistsAttributeInElement=function(t,n){var r=e.getElementAttribute(t,n);return e.isAttributeExists(r)},e.isAttributeExists=function(e){return null!==e&&\"\"!==e},e.emptyObject=\"DxEmptyValue\",e}();t.AttrUtils=i},2491:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.numberToStringHex=t.numberToStringBin=t.isOdd=t.isEven=t.isNonNullString=t.isString=t.isNumber=t.boolToString=t.boolToInt=t.isDefined=void 0;var r=n(49);t.isDefined=function(e){return null!=e},t.boolToInt=function(e){return e?1:0},t.boolToString=function(e){return e?\"1\":\"0\"},t.isNumber=function(e){return\"number\"==typeof e},t.isString=function(e){return\"string\"==typeof e},t.isNonNullString=function(e){return!!e},t.isEven=function(e){return e%2!=0},t.isOdd=function(e){return e%2==0},t.numberToStringBin=function(e,t){return void 0===t&&(t=0),r.StringUtils.padLeft(e.toString(2),t,\"0\")},t.numberToStringHex=function(e,t){return void 0===t&&(t=0),r.StringUtils.padLeft(e.toString(16),t,\"0\")}},4170:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Equals=t.Comparers=void 0;var n=function(){function e(){}return e.number=function(e,t){return e-t},e.string=function(e,t){return e===t?0:e>t?1:-1},e.stringIgnoreCase=function(e,t){return(e=e.toLowerCase())===(t=t.toLowerCase())?0:e>t?1:-1},e}();t.Comparers=n;var r=function(){function e(){}return e.simpleType=function(e,t){return e===t},e.object=function(e,t){return e&&t&&(e===t||e.equals(t))},e}();t.Equals=r},6907:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomUtils=void 0;var r=n(9279),i=n(2491),o=n(8679),s=n(49),a=function(){function e(){}return e.clearInnerHtml=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},e.setStylePosition=function(e,t){e.left=o.MathUtils.round(t.x,3)+\"px\",e.top=o.MathUtils.round(t.y,3)+\"px\"},e.setStyleSize=function(e,t){e.width=o.MathUtils.round(t.width,3)+\"px\",e.height=o.MathUtils.round(t.height,3)+\"px\"},e.setStyleSizeAndPosition=function(t,n){e.setStylePosition(t,n),e.setStyleSize(t,n)},e.hideNode=function(e){if(e){var t=e.parentNode;t&&t.removeChild(e)}},e.isHTMLElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},e.isTextNode=function(e){return e.nodeType===Node.TEXT_NODE},e.isElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},e.isHTMLTableRowElement=function(e){return\"TR\"===e.tagName},e.isItParent=function(e,t){if(!e||!t)return!1;for(;t;){if(t===e)return!0;if(\"BODY\"===t.tagName)return!1;t=t.parentNode}return!1},e.getParentByTagName=function(e,t){for(t=t.toUpperCase();e;){if(\"BODY\"===e.tagName)return null;if(e.tagName===t)return e;e=e.parentNode}return null},e.getDocumentScrollTop=function(){var t=r.Browser.IE&&\"hidden\"===e.getCurrentStyle(document.body).overflow&&document.body.scrollTop>0;return r.Browser.WebKitFamily||r.Browser.Edge||t?r.Browser.MacOSMobilePlatform?window.pageYOffset:r.Browser.WebKitFamily&&document.documentElement.scrollTop||document.body.scrollTop:document.documentElement.scrollTop},e.getDocumentScrollLeft=function(){var t=r.Browser.IE&&\"hidden\"===e.getCurrentStyle(document.body).overflow&&document.body.scrollLeft>0;return r.Browser.Edge||t?document.body?document.body.scrollLeft:document.documentElement.scrollLeft:r.Browser.WebKitFamily?document.documentElement.scrollLeft||document.body.scrollLeft:document.documentElement.scrollLeft},e.getCurrentStyle=function(e){if(e.currentStyle)return e.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){var t=document.defaultView.getComputedStyle(e,null);if(!t&&r.Browser.Firefox&&window.frameElement){for(var n=[],o=window.frameElement;!(t=document.defaultView.getComputedStyle(e,null));)n.push([o,o.style.display]),o.style.setProperty(\"display\",\"block\",\"important\"),o=\"BODY\"===o.tagName?o.ownerDocument.defaultView.frameElement:o.parentNode;t=function(e){if(\"object\"!=typeof e||!i.isDefined(e))return e;var t={};for(var n in e)t[n]=e[n];return t}(t);for(var s=void 0,a=0;s=n[a];a++)s[0].style.display=s[1];document.body.offsetWidth}return t}return window.getComputedStyle(e,null)},e.setFocus=function(e){function t(){try{e.focus(),r.Browser.IE&&document.activeElement!==e&&e.focus()}catch(e){}}r.Browser.MacOSMobilePlatform?t():setTimeout((function(){t()}),100)},e.hasClassName=function(e,t){try{var n=t.split(\" \"),r=e.classList;if(r){for(var i=n.length-1;i>=0;i--)if(!r.contains(n[i]))return!1}else{var o=e.getAttribute&&e.getAttribute(\"class\");if(!o)return!1;var s=o.split(\" \");for(i=n.length-1;i>=0;i--)if(s.indexOf(n[i])<0)return!1}return!0}catch(e){return!1}},e.addClassName=function(t,n){if(!e.hasClassName(t,n)){var r=t.getAttribute&&t.getAttribute(\"class\");t.setAttribute(\"class\",\"\"===r?n:r+\" \"+n)}},e.removeClassName=function(e,t){var n=\" \"+(e.getAttribute&&e.getAttribute(\"class\"))+\" \",r=n.replace(\" \"+t+\" \",\" \");n.length!==r.length&&e.setAttribute(\"class\",s.StringUtils.trim(r))},e.toggleClassName=function(t,n,r){void 0===r?e.hasClassName(t,n)?e.removeClassName(t,n):e.addClassName(t,n):r?e.addClassName(t,n):e.removeClassName(t,n)},e.pxToInt=function(e){return l(e,parseInt)},e.pxToFloat=function(e){return l(e,parseFloat)},e.getAbsolutePositionY=function(t){function n(t){return Math.round(t.getBoundingClientRect().top+e.getDocumentScrollTop())}return t?r.Browser.IE?function(t){return r.Browser.IE&&null===t.parentNode?0:t.getBoundingClientRect().top+e.getDocumentScrollTop()}(t):r.Browser.Firefox&&r.Browser.Version>=3?n(t):r.Browser.Opera?function(t){var n=!0;t&&e.isHTMLTableRowElement(t)&&t.cells.length>0&&(t=t.cells[0]);for(var r=c(t,!1);null!=t;)r+=t.offsetTop,n||(r-=t.scrollTop),t=t.offsetParent,n=!1;return r+=document.body.scrollTop}(t):r.Browser.NetscapeFamily&&(!r.Browser.Firefox||r.Browser.Version<3)?function(t){for(var n=c(t,!1),i=!0;null!=t;){if(n+=t.offsetTop,i||null==t.offsetParent||(n-=t.scrollTop),!i&&r.Browser.Firefox){var o=e.getCurrentStyle(t);\"DIV\"===t.tagName&&\"visible\"!==o.overflow&&(n+=e.pxToInt(o.borderTopWidth))}i=!1,t=t.offsetParent}return n}(t):r.Browser.WebKitFamily||r.Browser.Edge?n(t):function(e){for(var t=0,n=!0;null!=e;)t+=e.offsetTop,n||null==e.offsetParent||(t-=e.scrollTop),n=!1,e=e.offsetParent;return t}(t):0},e.getAbsolutePositionX=function(t){function n(t){return Math.round(t.getBoundingClientRect().left+e.getDocumentScrollLeft())}return t?r.Browser.IE?function(t){return r.Browser.IE&&null===t.parentNode?0:t.getBoundingClientRect().left+e.getDocumentScrollLeft()}(t):r.Browser.Firefox&&r.Browser.Version>=3?n(t):r.Browser.Opera&&r.Browser.Version<=12?function(e){for(var t=!0,n=c(e,!0);null!=e;)n+=e.offsetLeft,t||(n-=e.scrollLeft),e=e.offsetParent,t=!1;return n+=document.body.scrollLeft}(t):r.Browser.NetscapeFamily&&(!r.Browser.Firefox||r.Browser.Version<3)?function(t){for(var n=c(t,!0),i=!0;null!=t;){if(n+=t.offsetLeft,i||null==t.offsetParent||(n-=t.scrollLeft),!i&&r.Browser.Firefox){var o=e.getCurrentStyle(t);\"DIV\"===t.tagName&&\"visible\"!==o.overflow&&(n+=e.pxToInt(o.borderLeftWidth))}i=!1,t=t.offsetParent}return n}(t):r.Browser.WebKitFamily||r.Browser.Edge?n(t):function(e){for(var t=0,n=!0;null!=e;)t+=e.offsetLeft,n||null==e.offsetParent||(t-=e.scrollLeft),n=!1,e=e.offsetParent;return t}(t):0},e.isInteractiveControl=function(e){return[\"A\",\"INPUT\",\"SELECT\",\"OPTION\",\"TEXTAREA\",\"BUTTON\",\"IFRAME\"].indexOf(e.tagName)>-1},e.getClearClientHeight=function(t){return t.offsetHeight-(e.getTopBottomPaddings(t)+e.getVerticalBordersWidth(t))},e.getTopBottomPaddings=function(t,n){var r=n||e.getCurrentStyle(t);return e.pxToInt(r.paddingTop)+e.pxToInt(r.paddingBottom)},e.getVerticalBordersWidth=function(t,n){i.isDefined(n)||(n=r.Browser.IE&&9!==r.Browser.MajorVersion&&window.getComputedStyle?window.getComputedStyle(t):e.getCurrentStyle(t));var o=0;return\"none\"!==n.borderTopStyle&&(o+=e.pxToFloat(n.borderTopWidth)),\"none\"!==n.borderBottomStyle&&(o+=e.pxToFloat(n.borderBottomWidth)),o},e.getNodes=function(e,t){for(var n=e.all||e.getElementsByTagName(\"*\"),r=[],i=0;i<n.length;i++){var o=n[i];t(o)&&r.push(o)}return r},e.getChildNodes=function(e,t){for(var n=e.childNodes,r=[],i=0;i<n.length;i++){var o=n[i];t(o)&&r.push(o)}return r},e.getNodesByClassName=function(t,n){if(t.querySelectorAll){var r=t.querySelectorAll(\".\"+n),i=[];return r.forEach((function(e){return i.push(e)})),i}return e.getNodes(t,(function(t){return e.hasClassName(t,n)}))},e.getChildNodesByClassName=function(t,n){return t.querySelectorAll?function(e,t){for(var n=[],r=0;r<e.length;r++){var i=e[r];t(i)&&n.push(i)}return n}(t.querySelectorAll(\".\"+n),(function(e){return e.parentNode===t})):e.getChildNodes(t,(function(t){return!!e.isElementNode(t)&&(i.isNonNullString(t.className)&&e.hasClassName(t,t.className))}))},e.getVerticalScrollBarWidth=function(){if(void 0===e.verticalScrollBarWidth){var t=document.createElement(\"DIV\");t.style.cssText=\"position: absolute; top: 0px; left: 0px; visibility: hidden; width: 200px; height: 150px; overflow: hidden; box-sizing: content-box\",document.body.appendChild(t);var n=document.createElement(\"P\");t.appendChild(n),n.style.cssText=\"width: 100%; height: 200px;\";var r=n.offsetWidth;t.style.overflow=\"scroll\";var i=n.offsetWidth;r===i&&(i=t.clientWidth),e.verticalScrollBarWidth=r-i,document.body.removeChild(t)}return e.verticalScrollBarWidth},e.getHorizontalBordersWidth=function(t,n){i.isDefined(n)||(n=r.Browser.IE&&window.getComputedStyle?window.getComputedStyle(t):e.getCurrentStyle(t));var o=0;return\"none\"!==n.borderLeftStyle&&(o+=e.pxToFloat(n.borderLeftWidth)),\"none\"!==n.borderRightStyle&&(o+=e.pxToFloat(n.borderRightWidth)),o},e.getFontFamiliesFromCssString=function(e){return e.split(\",\").map((function(e){return s.StringUtils.trim(e.replace(/'|\"/gi,\"\"))}))},e.getInnerText=function(t){if(r.Browser.Safari&&r.Browser.MajorVersion<=5){null===e.html2PlainTextFilter&&(e.html2PlainTextFilter=document.createElement(\"DIV\"),e.html2PlainTextFilter.style.width=\"0\",e.html2PlainTextFilter.style.height=\"0\",e.html2PlainTextFilter.style.overflow=\"visible\",e.html2PlainTextFilter.style.display=\"none\",document.body.appendChild(e.html2PlainTextFilter));var n=e.html2PlainTextFilter;n.innerHTML=t.innerHTML,n.style.display=\"\";var i=n.innerText;return n.style.display=\"none\",i}return r.Browser.NetscapeFamily||r.Browser.WebKitFamily||r.Browser.IE&&r.Browser.Version>=9||r.Browser.Edge?t.textContent:t.innerText},e.html2PlainTextFilter=null,e.verticalScrollBarWidth=void 0,e}();function l(e,t){var n=0;if(i.isDefined(e)&&\"\"!==e)try{var r=e.indexOf(\"px\");r>-1&&(n=t(e.substr(0,r)))}catch(e){}return n}function c(e,t){for(var n=0,r=!0;null!=e&&\"BODY\"!==e.tagName;){var i=a.getCurrentStyle(e);if(\"absolute\"===i.position)break;r||\"DIV\"!==e.tagName||\"\"!==i.position&&\"static\"!==i.position||(n-=t?e.scrollLeft:e.scrollTop),e=e.parentNode,r=!1}return n}t.DomUtils=a},9712:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EncodeUtils=void 0;var n=function(){function e(){}return e.encodeHtml=function(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")},e.decodeHtml=function(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")},e.prepareTextForRequest=function(e){return e.replace(/%/g,\"%25\").replace(/&/g,\"%26amp;\").replace(/\\+/g,\"%2B\").replace(/</g,\"%26lt;\").replace(/>/g,\"%26gt;\").replace(/\"/g,\"%26quot;\")},e.prepareTextForCallBackRequest=function(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/\"/g,\""\")},e.decodeViaTextArea=function(e){var t=document.createElement(\"TEXTAREA\");return t.innerHTML=e,t.value},e}();t.EncodeUtils=n},3714:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EvtUtils=void 0;var r=n(9279),i=n(2491),o=n(6907),s=n(1632),a=function(){function e(){}return e.preventEvent=function(e){e.cancelable&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},e.getEventSource=function(t){return i.isDefined(t)?e.getEventSourceCore(t):null},e.getEventSourceByPosition=function(t){if(!i.isDefined(t))return null;if(!document.elementFromPoint)return e.getEventSourceCore(t);var n=e.getEventX(t)-(e.clientEventRequiresDocScrollCorrection()?o.DomUtils.getDocumentScrollLeft():0),r=e.getEventY(t)-(e.clientEventRequiresDocScrollCorrection()?o.DomUtils.getDocumentScrollTop():0);return void 0===n||void 0===r?e.getEventSourceCore(t):document.elementFromPoint(n,r)},e.getEventSourceCore=function(e){return e.srcElement?e.srcElement:e.target},e.getMouseWheelEventName=function(){return r.Browser.Safari?\"mousewheel\":r.Browser.NetscapeFamily&&r.Browser.MajorVersion<17?\"DOMMouseScroll\":\"wheel\"},e.isLeftButtonPressed=function(t){return!!s.TouchUtils.isTouchEvent(t)||!!(t=r.Browser.IE&&i.isDefined(event)?event:t)&&(r.Browser.IE&&r.Browser.Version<11?!!r.Browser.MSTouchUI||t.button%2==1:r.Browser.WebKitFamily?\"pointermove\"===t.type||\"pointerenter\"===t.type||\"pointerleave\"===t.type?1===t.buttons:1===t.which:r.Browser.NetscapeFamily||r.Browser.Edge||r.Browser.IE&&r.Browser.Version>=11?e.isMoveEventName(t.type)?1===t.buttons:1===t.which:!r.Browser.Opera||0===t.button)},e.isMoveEventName=function(t){return t===s.TouchUtils.touchMouseMoveEventName||t===e.getMoveEventName()},e.getMoveEventName=function(){return window.PointerEvent?\"pointermove\":r.Browser.TouchUI?\"touchmove\":\"mousemove\"},e.preventEventAndBubble=function(t){e.preventEvent(t),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0},e.clientEventRequiresDocScrollCorrection=function(){var e=r.Browser.Safari&&r.Browser.Version<3,t=r.Browser.MacOSMobilePlatform&&r.Browser.Version<5.1;return r.Browser.AndroidDefaultBrowser||r.Browser.AndroidChromeBrowser||!(e||t)},e.getEventX=function(t){return s.TouchUtils.isTouchEvent(t)?s.TouchUtils.getEventX(t):t.clientX+(e.clientEventRequiresDocScrollCorrection()?o.DomUtils.getDocumentScrollLeft():0)},e.getEventY=function(t){return s.TouchUtils.isTouchEvent(t)?s.TouchUtils.getEventY(t):t.clientY+(e.clientEventRequiresDocScrollCorrection()?o.DomUtils.getDocumentScrollTop():0)},e.cancelBubble=function(e){e.cancelBubble=!0},e.getWheelDelta=function(e){var t;return t=r.Browser.NetscapeFamily&&r.Browser.MajorVersion<17?-e.detail:r.Browser.Safari?e.wheelDelta:-e.deltaY,r.Browser.Opera&&r.Browser.Version<9&&(t=-t),t},e}();t.EvtUtils=a},9937:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.JsonUtils=void 0;var n=function(){function e(){}return e.isValid=function(e){return!/[^,:{}[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/.test(e.replace(/\"(\\\\.|[^\"\\\\])*\"/g,\"\"))},e}();t.JsonUtils=n},2153:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.KeyCode=t.ModifierKey=t.KeyUtils=void 0;var r,i,o=n(9279),s=n(9712),a=n(49),l=function(){function e(){}return e.getKeyModifiers=function(e){var t=0;return e.altKey&&(t|=r.Alt),e.ctrlKey&&(t|=r.Ctrl),e.shiftKey&&(t|=r.Shift),e.metaKey&&(t|=r.Meta),t},e.getShortcutCode=function(e,t,n,i,o){var s=e;return s|=t?r.Ctrl:0,s|=n?r.Shift:0,s|=i?r.Alt:0,s|=o?r.Meta:0},e.getShortcutCodeByEvent=function(t){return e.getShortcutCode(e.getEventKeyCode(t),t.ctrlKey,t.shiftKey,t.altKey,!!o.Browser.MacOSPlatform&&t.metaKey)},e.getEventKeyCode=function(e){return o.Browser.NetscapeFamily||o.Browser.Opera?e.which:e.keyCode},e.parseShortcutString=function(t){if(!t)return 0;var n=!1,r=!1,o=!1,l=!1,c=null,u=t.toString().split(\"+\");if(u.length>0)for(var d=0;d<u.length;d++){var p=a.StringUtils.trim(u[d].toUpperCase());switch(p){case\"CONTROL\":case\"CONTROLKEY\":case\"CTRL\":n=!0;break;case\"SHIFT\":case\"SHIFTKEY\":r=!0;break;case\"ALT\":o=!0;break;case\"CMD\":l=!0;break;case\"F1\":c=i.F1;break;case\"F2\":c=i.F2;break;case\"F3\":c=i.F3;break;case\"F4\":c=i.F4;break;case\"F5\":c=i.F5;break;case\"F6\":c=i.F6;break;case\"F7\":c=i.F7;break;case\"F8\":c=i.F8;break;case\"F9\":c=i.F9;break;case\"F10\":c=i.F10;break;case\"F11\":c=i.F11;break;case\"F12\":c=i.F12;break;case\"RETURN\":case\"ENTER\":c=i.Enter;break;case\"HOME\":c=i.Home;break;case\"END\":c=i.End;break;case\"LEFT\":c=i.Left;break;case\"RIGHT\":c=i.Right;break;case\"UP\":c=i.Up;break;case\"DOWN\":c=i.Down;break;case\"PAGEUP\":c=i.PageUp;break;case\"PAGEDOWN\":c=i.PageDown;break;case\"SPACE\":c=i.Space;break;case\"TAB\":c=i.Tab;break;case\"BACKSPACE\":case\"BACK\":c=i.Backspace;break;case\"CONTEXT\":c=i.ContextMenu;break;case\"ESCAPE\":case\"ESC\":c=i.Esc;break;case\"DELETE\":case\"DEL\":c=i.Delete;break;case\"INSERT\":case\"INS\":c=i.Insert;break;case\"PLUS\":c=\"+\".charCodeAt(0);break;default:c=p.charCodeAt(0)}}else alert(s.EncodeUtils.decodeViaTextArea(\"Invalid shortcut\"));return e.getShortcutCode(c,n,r,o,l)},e}();t.KeyUtils=l,function(e){e[e.None=0]=\"None\",e[e.Ctrl=65536]=\"Ctrl\",e[e.Shift=262144]=\"Shift\",e[e.Alt=1048576]=\"Alt\",e[e.Meta=16777216]=\"Meta\"}(r=t.ModifierKey||(t.ModifierKey={})),function(e){e[e.Backspace=8]=\"Backspace\",e[e.Tab=9]=\"Tab\",e[e.Enter=13]=\"Enter\",e[e.Pause=19]=\"Pause\",e[e.CapsLock=20]=\"CapsLock\",e[e.Esc=27]=\"Esc\",e[e.Space=32]=\"Space\",e[e.PageUp=33]=\"PageUp\",e[e.PageDown=34]=\"PageDown\",e[e.End=35]=\"End\",e[e.Home=36]=\"Home\",e[e.Left=37]=\"Left\",e[e.Up=38]=\"Up\",e[e.Right=39]=\"Right\",e[e.Down=40]=\"Down\",e[e.Insert=45]=\"Insert\",e[e.Delete=46]=\"Delete\",e[e.Key_0=48]=\"Key_0\",e[e.Key_1=49]=\"Key_1\",e[e.Key_2=50]=\"Key_2\",e[e.Key_3=51]=\"Key_3\",e[e.Key_4=52]=\"Key_4\",e[e.Key_5=53]=\"Key_5\",e[e.Key_6=54]=\"Key_6\",e[e.Key_7=55]=\"Key_7\",e[e.Key_8=56]=\"Key_8\",e[e.Key_9=57]=\"Key_9\",e[e.Key_a=65]=\"Key_a\",e[e.Key_b=66]=\"Key_b\",e[e.Key_c=67]=\"Key_c\",e[e.Key_d=68]=\"Key_d\",e[e.Key_e=69]=\"Key_e\",e[e.Key_f=70]=\"Key_f\",e[e.Key_g=71]=\"Key_g\",e[e.Key_h=72]=\"Key_h\",e[e.Key_i=73]=\"Key_i\",e[e.Key_j=74]=\"Key_j\",e[e.Key_k=75]=\"Key_k\",e[e.Key_l=76]=\"Key_l\",e[e.Key_m=77]=\"Key_m\",e[e.Key_n=78]=\"Key_n\",e[e.Key_o=79]=\"Key_o\",e[e.Key_p=80]=\"Key_p\",e[e.Key_q=81]=\"Key_q\",e[e.Key_r=82]=\"Key_r\",e[e.Key_s=83]=\"Key_s\",e[e.Key_t=84]=\"Key_t\",e[e.Key_u=85]=\"Key_u\",e[e.Key_v=86]=\"Key_v\",e[e.Key_w=87]=\"Key_w\",e[e.Key_x=88]=\"Key_x\",e[e.Key_y=89]=\"Key_y\",e[e.Key_z=90]=\"Key_z\",e[e.Windows=91]=\"Windows\",e[e.ContextMenu=93]=\"ContextMenu\",e[e.Numpad_0=96]=\"Numpad_0\",e[e.Numpad_1=97]=\"Numpad_1\",e[e.Numpad_2=98]=\"Numpad_2\",e[e.Numpad_3=99]=\"Numpad_3\",e[e.Numpad_4=100]=\"Numpad_4\",e[e.Numpad_5=101]=\"Numpad_5\",e[e.Numpad_6=102]=\"Numpad_6\",e[e.Numpad_7=103]=\"Numpad_7\",e[e.Numpad_8=104]=\"Numpad_8\",e[e.Numpad_9=105]=\"Numpad_9\",e[e.Multiply=106]=\"Multiply\",e[e.Add=107]=\"Add\",e[e.Subtract=109]=\"Subtract\",e[e.Decimal=110]=\"Decimal\",e[e.Divide=111]=\"Divide\",e[e.F1=112]=\"F1\",e[e.F2=113]=\"F2\",e[e.F3=114]=\"F3\",e[e.F4=115]=\"F4\",e[e.F5=116]=\"F5\",e[e.F6=117]=\"F6\",e[e.F7=118]=\"F7\",e[e.F8=119]=\"F8\",e[e.F9=120]=\"F9\",e[e.F10=121]=\"F10\",e[e.F11=122]=\"F11\",e[e.F12=123]=\"F12\",e[e.NumLock=144]=\"NumLock\",e[e.ScrollLock=145]=\"ScrollLock\",e[e.Semicolon=186]=\"Semicolon\",e[e.Equals=187]=\"Equals\",e[e.Comma=188]=\"Comma\",e[e.Dash=189]=\"Dash\",e[e.Period=190]=\"Period\",e[e.ForwardSlash=191]=\"ForwardSlash\",e[e.GraveAccent=192]=\"GraveAccent\",e[e.OpenBracket=219]=\"OpenBracket\",e[e.BackSlash=220]=\"BackSlash\",e[e.CloseBracket=221]=\"CloseBracket\",e[e.SingleQuote=222]=\"SingleQuote\"}(i=t.KeyCode||(t.KeyCode={}))},2940:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ListUtils=void 0;var r=n(6799),i=n(4170),o=function(){function e(){}return e.remove=function(e,t){var n=e.indexOf(t,0);n>=0&&e.splice(n,1)},e.removeBy=function(e,t){for(var n=e.length,r=0;r<n;r++)if(t(e[r],r))return e.splice(r,1)[0];return null},e.shallowCopy=function(e){return e.slice()},e.deepCopy=function(t){return e.map(t,(function(e){return e.clone()}))},e.initByValue=function(e,t){for(var n=[];e>0;e--)n.push(t);return n},e.initByCallback=function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},e.forEachOnInterval=function(e,t){for(var n=e.end,r=e.start;r<n;r++)t(r)},e.reverseForEachOnInterval=function(e,t){for(var n=e.start,r=e.end-1;r>=n;r--)t(r)},e.reducedMap=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=[],o=n;o<r;o++){var s=t(e[o],o);null!==s&&i.push(s)}return i},e.filter=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=[],o=n;o<r;o++){var s=e[o];t(s,o)&&i.push(s)}return i},e.map=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=[],o=n;o<r;o++)i.push(t(e[o],o));return i},e.indexBy=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=n;i<r;i++)if(t(e[i],i))return i;return-1},e.reverseIndexBy=function(e,t,n,r){void 0===n&&(n=e.length-1),void 0===r&&(r=0);for(var i=n;i>=r;i--)if(t(e[i],i))return i;return-1},e.elementBy=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=t.length);var o=e.indexBy(t,n,r,i);return o<0?null:t[o]},e.reverseElementBy=function(t,n,r,i){void 0===r&&(r=t.length-1),void 0===i&&(i=0);var o=e.reverseIndexBy(t,n,r,i);return o<0?null:t[o]},e.last=function(e){return e[e.length-1]},e.setLast=function(e,t){return e[e.length-1]=t},e.incLast=function(e){return++e[e.length-1]},e.decLast=function(e){return--e[e.length-1]},e.equals=function(t,n){return t.length===n.length&&e.allOf2(t,n,(function(e,t){return e.equals(t)}))},e.equalsByReference=function(e,t){var n=e.length;if(n!==e.length)return!1;for(var r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0},e.unique=function(t,n,r,i){void 0===r&&(r=n),void 0===i&&(i=function(){});var o=t.length;if(0===o)return[];var s=(t=t.sort(n))[0],a=e.reducedMap(t,(function(e){return 0!==r(s,e)?(s=e,e):(i(e),null)}),1,o);return a.unshift(t[0]),a},e.uniqueNumber=function(e){e=e.sort(i.Comparers.number);for(var t=Number.NaN,n=e.length-1;n>=0;n--)t===e[n]?e.splice(n,1):t=e[n];return e},e.forEach=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=n;i<r;i++)t(e[i],i)},e.forEach2=function(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=e.length);for(var o=r;o<i;o++)n(e[o],t[o],o)},e.reverseForEach=function(e,t,n,r){void 0===n&&(n=e.length-1),void 0===r&&(r=0);for(var i=n;i>=r;i--)t(e[i],i)},e.reverseIndexOf=function(e,t,n,r){void 0===n&&(n=e.length-1),void 0===r&&(r=0);for(var i=n;i>=r;i--)if(e[i]===t)return i;return-1},e.accumulate=function(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=e.length);for(var o=t,s=r;s<i;s++)o=n(o,e[s],s);return o},e.accumulateNumber=function(e,t,n,r,i){void 0===n&&(n=0),void 0===r&&(r=0),void 0===i&&(i=e.length);for(var o=n,s=r;s<i;s++)o+=t(e[s],s,o);return o},e.anyOf=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=n;i<r;i++)if(t(e[i],i))return!0;return!1},e.unsafeAnyOf=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=n;i<r;i++){var o=t(e[i],i);if(o)return o}return null},e.reverseAnyOf=function(e,t,n,r){void 0===n&&(n=e.length-1),void 0===r&&(r=0);for(var i=n;i>=r;i--)if(t(e[i],i))return!0;return!1},e.unsafeReverseAnyOf=function(e,t,n,r){void 0===n&&(n=e.length-1),void 0===r&&(r=0);for(var i=n;i>=r;i--){var o=t(e[i],i);if(o)return o}return null},e.anyOf2=function(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=e.length);for(var o=r;o<i;o++)if(n(e[o],t[o],o))return!0;return!1},e.allOf=function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=e.length);for(var i=n;i<r;i++)if(!t(e[i],i))return!1;return!0},e.allOf2=function(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=e.length);for(var o=r;o<i;o++)if(!n(e[o],t[o],o))return!1;return!0},e.allOfOnInterval=function(e,t){for(var n=e.end,r=e.start;r<n;r++)if(!t(r))return!1;return!0},e.addListOnTail=function(e,t){for(var n=0,r=void 0;r=t[n];n++)e.push(r);return e},e.joinLists=function(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return e.accumulate(n,[],(function(n,r){return e.addListOnTail(n,t(r)),n}))},e.push=function(e,t){return e.push(t),e},e.countIf=function(t,n){return e.accumulateNumber(t,(function(e,t){return n(e,t)?1:0}))},e.clear=function(e){e.splice(0)},e.merge=function(e,t,n,r,i,o){if(void 0===i&&(i=0),void 0===o&&(o=e.length),e=e.slice(i,o),o-i<2)return e;for(var s=(e=e.sort(t))[i],a=[s],l=i+1;l<o;l++){var c=e[l];n(s,c)?r(s,c):(s=c,a.push(s))}return a},e.min=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=t.length);var o=e.minExtended(t,n,r,i);return o?o.minElement:null},e.max=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=t.length);var o=e.maxExtended(t,n,r,i);return o?o.maxElement:null},e.minMax=function(t,n,i,o){void 0===i&&(i=0),void 0===o&&(o=t.length);var s=e.minMaxExtended(t,n,i,o);return s?new r.MinMax(s.minElement,s.maxElement):null},e.minExtended=function(e,t,n,i){if(void 0===n&&(n=0),void 0===i&&(i=e.length),0===e.length)return null;for(var o=e[n],s=t(o),a=n+1;a<i;a++){var l=e[a],c=t(l);c<s&&(s=c,o=l)}return new r.ExtendedMin(o,s)},e.maxExtended=function(e,t,n,i){if(void 0===n&&(n=0),void 0===i&&(i=e.length),0===e.length)return null;for(var o=e[n],s=t(o),a=n+1;a<i;a++){var l=e[a],c=t(l);c>s&&(s=c,o=l)}return new r.ExtendedMax(o,s)},e.minMaxExtended=function(e,t,n,i){if(void 0===n&&(n=0),void 0===i&&(i=e.length),0===e.length)return null;for(var o=e[n],s=o,a=t(o),l=a,c=n+1;c<i;c++){var u=e[c],d=t(u);d<a?(a=d,o=u):d>l&&(l=d,s=u)}return new r.ExtendedMinMax(o,a,s,l)},e.minByCmp=function(e,t,n,r){if(void 0===n&&(n=0),void 0===r&&(r=e.length),0===e.length)return null;for(var i=e[n],o=n+1;o<r;o++){var s=e[o];t(s,i)<0&&(i=s)}return i},e.maxByCmp=function(e,t,n,r){if(void 0===n&&(n=0),void 0===r&&(r=e.length),0===e.length)return null;for(var i=e[n],o=n+1;o<r;o++){var s=e[o];t(s,i)>0&&(i=s)}return i},e.minMaxByCmp=function(e,t,n,i){if(void 0===n&&(n=0),void 0===i&&(i=e.length),0===e.length)return null;for(var o=e[n],s=o,a=n+1;a<i;a++){var l=e[a],c=t(l,o);c>0?s=l:c<0&&(o=l)}return new r.MinMax(o,s)},e}();t.ListUtils=o},8679:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.MathUtils=void 0;var r=n(2940),i=function(){function e(){}return e.round=function(t,n){void 0===n&&(n=0);var r=e.powFactor[n];return Math.round(t*r)/r},e.numberCloseTo=function(e,t,n){return void 0===n&&(n=1e-5),Math.abs(e-t)<n},e.restrictValue=function(e,t,n){return n<t&&(n=t),e>n?n:e<t?t:e},e.getRandomInt=function(e,t){return Math.floor(Math.random()*(t-e+1))+e},e.generateGuid=function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)}))},e.powFactor=r.ListUtils.initByCallback(20,(function(e){return Math.pow(10,e)})),e.somePrimes=[1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003],e}();t.MathUtils=i},49:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.StringUtils=void 0;var n=function(){function e(){}return e.isAlpha=function(e){return e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"},e.isDigit=function(e){return e>=\"0\"&&e<=\"9\"},e.stringHashCode=function(e){var t=0;if(0===e.length)return t;for(var n=e.length,r=0;r<n;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return t},e.endsAt=function(e,t){var n=e.length-1,r=t.length-1,i=n-r;if(i<0)return!1;for(;n>=i;n--,r--)if(e[n]!==t[r])return!1;return!0},e.startsAt=function(e,t){return e.substr(0,t.length)===t},e.stringInLowerCase=function(e){return e.toLowerCase()===e},e.stringInUpperCase=function(e){return e.toUpperCase()===e},e.atLeastOneSymbolInUpperCase=function(t){for(var n=0,r=void 0;r=t[n];n++)if(e.stringInUpperCase(r)&&!e.stringInLowerCase(r))return!0;return!1},e.getSymbolFromEnd=function(e,t){return e[e.length-t]},e.trim=function(t,n){if(void 0===n)return e.trimInternal(t,!0,!0);var r=n.join(\"\");return t.replace(new RegExp(\"(^[\"+r+\"]*)|([\"+r+\"]*$)\",\"g\"),\"\")},e.trimStart=function(t,n){if(void 0===n)return e.trimInternal(t,!0,!1);var r=n.join(\"\");return t.replace(new RegExp(\"^[\"+r+\"]*\",\"g\"),\"\")},e.trimEnd=function(t,n){if(void 0===n)return e.trimInternal(t,!1,!0);var r=n.join(\"\");return t.replace(new RegExp(\"[\"+r+\"]*$\",\"g\"),\"\")},e.getDecimalSeparator=function(){return 1.1.toLocaleString().substr(1,1)},e.repeat=function(e,t){return new Array(t<=0?0:t+1).join(e)},e.isNullOrEmpty=function(e){return!e||!e.length},e.padLeft=function(t,n,r){return e.repeat(r,Math.max(0,n-t.length))+t},e.trimInternal=function(e,t,n){var r=e.length;if(!r)return e;if(r<764833){var i=e;return t&&(i=i.replace(/^\\s+/,\"\")),n&&(i=i.replace(/\\s+$/,\"\")),i}var o=0;if(n)for(;r>0&&/\\s/.test(e[r-1]);)r--;if(t&&r>0)for(;o<r&&/\\s/.test(e[o]);)o++;return e.substring(o,r)},e}();t.StringUtils=n},1632:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TouchUtils=void 0;var r=n(9279),i=n(2491),o=function(){function e(){}return e.onEventAttachingToDocument=function(t,n){return!r.Browser.MacOSMobilePlatform||!e.isTouchEventName(t)||(e.documentTouchHandlers[t]||(e.documentTouchHandlers[t]=[]),e.documentTouchHandlers[t].push(n),e.documentEventAttachingAllowed)},e.isTouchEventName=function(e){return r.Browser.WebKitTouchUI&&(e.indexOf(\"touch\")>-1||e.indexOf(\"gesture\")>-1)},e.isTouchEvent=function(e){return r.Browser.WebKitTouchUI&&i.isDefined(e.changedTouches)},e.getEventX=function(e){return r.Browser.IE?e.pageX:e.changedTouches[0].pageX},e.getEventY=function(e){return r.Browser.IE?e.pageY:e.changedTouches[0].pageY},e.touchMouseDownEventName=r.Browser.WebKitTouchUI?\"touchstart\":r.Browser.Edge&&r.Browser.MSTouchUI&&window.PointerEvent?\"pointerdown\":\"mousedown\",e.touchMouseUpEventName=r.Browser.WebKitTouchUI?\"touchend\":r.Browser.Edge&&r.Browser.MSTouchUI&&window.PointerEvent?\"pointerup\":\"mouseup\",e.touchMouseMoveEventName=r.Browser.WebKitTouchUI?\"touchmove\":r.Browser.Edge&&r.Browser.MSTouchUI&&window.PointerEvent?\"pointermove\":\"mousemove\",e.msTouchDraggableClassName=\"dxMSTouchDraggable\",e.documentTouchHandlers={},e.documentEventAttachingAllowed=!0,e}();t.TouchUtils=o},8721:(e,t,n)=>{n.r(t)},639:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BarManager=void 0;var n=function(){function e(e,t){this.commandManager=e,this.bars=t}return e.prototype.updateContextMenu=function(){for(var e=0,t=void 0;t=this.bars[e];e++)if(t.isContextMenu()){t.updateItemsList();for(var n=t.getCommandKeys(),r=0;r<n.length;r++)this.updateBarItem(t,n[r])}},e.prototype.updateItemsState=function(e){for(var t=!!e.length,n=function(n,i){if(i.isVisible()){for(var o=i.getCommandKeys(),s=function(n){if(t&&!e.filter((function(e){return e==o[n]})).length)return\"continue\";r.updateBarItem(i,o[n])},a=0;a<o.length;a++)s(a);i.completeUpdate()}},r=this,i=0,o=void 0;o=this.bars[i];i++)n(0,o)},e.prototype.updateBarItem=function(e,t){var n=this.commandManager.getCommand(t);if(n){var r=n.getState();e.setItemVisible(t,r.visible),r.visible&&(e.setItemEnabled(t,r.enabled),e.setItemValue(t,r.value))}},e}();t.BarManager=n},3290:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttClientCommand=void 0,function(e){e[e.CreateTask=0]=\"CreateTask\",e[e.CreateSubTask=1]=\"CreateSubTask\",e[e.RemoveTask=2]=\"RemoveTask\",e[e.RemoveDependency=3]=\"RemoveDependency\",e[e.TaskInformation=4]=\"TaskInformation\",e[e.TaskAddContextItem=5]=\"TaskAddContextItem\",e[e.Undo=6]=\"Undo\",e[e.Redo=7]=\"Redo\",e[e.ZoomIn=8]=\"ZoomIn\",e[e.ZoomOut=9]=\"ZoomOut\",e[e.FullScreen=10]=\"FullScreen\",e[e.CollapseAll=11]=\"CollapseAll\",e[e.ExpandAll=12]=\"ExpandAll\",e[e.ResourceManager=13]=\"ResourceManager\",e[e.ToggleResources=14]=\"ToggleResources\",e[e.ToggleDependencies=15]=\"ToggleDependencies\"}(t.GanttClientCommand||(t.GanttClientCommand={}))},3756:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CollapseAllCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.collapseAll(),!0},t.prototype.isEnabled=function(){return!0},t}(i.CommandBase);t.CollapseAllCommand=s},6585:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExpandAllCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.expandAll(),!0},t.prototype.isEnabled=function(){return!0},t}(i.CommandBase);t.ExpandAllCommand=s},9687:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CommandBase=void 0;var n=function(){function e(e){this.control=e}return Object.defineProperty(e.prototype,\"modelManipulator\",{get:function(){return this.control.modelManipulator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"history\",{get:function(){return this.control.history},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"validationController\",{get:function(){return this.control.validationController},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"state\",{get:function(){return this._state||(this._state=this.getState()),this._state},enumerable:!1,configurable:!0}),e.prototype.execute=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!this.state.enabled)return!1;var n=this.executeInternal.apply(this,e);return n&&this.control.barManager.updateItemsState([]),n},e.prototype.isEnabled=function(){return this.control.settings.editing.enabled},e.prototype.executeInternal=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];throw new Error(\"Not implemented\")},e}();t.CommandBase=n},7156:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CommandManager=void 0;var r=n(5237),i=n(126),o=n(5477),s=n(6152),a=n(3290),l=n(3756),c=n(6585),u=n(4118),d=n(3044),p=n(9762),h=n(7823),f=n(3250),g=n(9072),y=n(1955),m=n(1757),v=n(7977),T=n(9793),b=n(358),k=n(9791),S=n(3936),_=n(5258),w=n(2018),E=n(4195),D=n(2714),I=n(299),C=n(2231),P=function(){function e(e){this.control=e,this.commands={},this.createCommand(a.GanttClientCommand.CreateTask,this.createTaskCommand),this.createCommand(a.GanttClientCommand.CreateSubTask,this.createSubTaskCommand),this.createCommand(a.GanttClientCommand.RemoveTask,this.removeTaskCommand),this.createCommand(a.GanttClientCommand.RemoveDependency,this.removeDependencyCommand),this.createCommand(a.GanttClientCommand.TaskInformation,this.showTaskEditDialog),this.createCommand(a.GanttClientCommand.ResourceManager,this.showResourcesDialog),this.createCommand(a.GanttClientCommand.TaskAddContextItem,new D.TaskAddContextItemCommand(this.control)),this.createCommand(a.GanttClientCommand.Undo,new g.UndoCommand(this.control)),this.createCommand(a.GanttClientCommand.Redo,new f.RedoCommand(this.control)),this.createCommand(a.GanttClientCommand.ZoomIn,new I.ZoomInCommand(this.control)),this.createCommand(a.GanttClientCommand.ZoomOut,new C.ZoomOutCommand(this.control)),this.createCommand(a.GanttClientCommand.FullScreen,new h.ToggleFullScreenCommand(this.control)),this.createCommand(a.GanttClientCommand.CollapseAll,new l.CollapseAllCommand(this.control)),this.createCommand(a.GanttClientCommand.ExpandAll,new c.ExpandAllCommand(this.control)),this.createCommand(a.GanttClientCommand.ToggleResources,this.toggleResources),this.createCommand(a.GanttClientCommand.ToggleDependencies,this.toggleDependencies)}return Object.defineProperty(e.prototype,\"createTaskCommand\",{get:function(){return new _.CreateTaskCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"createSubTaskCommand\",{get:function(){return new S.CreateSubTaskCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"removeTaskCommand\",{get:function(){return new E.RemoveTaskCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"updateTaskCommand\",{get:function(){return new w.UpdateTaskCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"createDependencyCommand\",{get:function(){return new u.CreateDependencyCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"removeDependencyCommand\",{get:function(){return new d.RemoveDependencyCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"createResourceCommand\",{get:function(){return new m.CreateResourceCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"removeResourceCommand\",{get:function(){return new b.RemoveResourceCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"assignResourceCommand\",{get:function(){return new y.AssignResourceCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"deassignResourceCommand\",{get:function(){return new v.DeassignResourceCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"changeResourceColorCommand\",{get:function(){return new T.ResourceColorCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showTaskEditDialog\",{get:function(){return new s.TaskEditDialogCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showConstraintViolationDialog\",{get:function(){return new i.ConstraintViolationDialogCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showConfirmationDialog\",{get:function(){return new r.ConfirmationDialog(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showResourcesDialog\",{get:function(){return new o.ResourcesDialogCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"toggleResources\",{get:function(){return new k.ToggleResourceCommand(this.control)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"toggleDependencies\",{get:function(){return new p.ToggleDependenciesCommand(this.control)},enumerable:!1,configurable:!0}),e.prototype.getCommand=function(e){return this.commands[e]},e.prototype.createCommand=function(e,t){this.commands[e]=t},e}();t.CommandManager=P},4118:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateDependencyCommand=void 0;var r=n(655),i=n(5950),o=n(3279),s=n(1211),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n,r){return e.prototype.execute.call(this,t,n,r)},t.prototype.executeInternal=function(e,t,n){if(this.control.viewModel.dependencies.items.filter((function(n){return n.predecessorId===e&&n.successorId===t||n.successorId===e&&n.predecessorId===t})).length)return!1;var r=new o.DependencyInsertingArguments(e,t,n);if(this.modelManipulator.dispatcher.notifyDependencyInserting(r),r.cancel)return!1;if(e=r.predecessorId,t=r.successorId,n=r.type,this.control.history.beginTransaction(),this.history.addAndRedo(new s.InsertDependencyHistoryItem(this.modelManipulator,e,t,n)),this.control.isValidateDependenciesRequired()){var a=this.control.viewModel.tasks.getItemById(e);n===i.DependencyType.SF||n===i.DependencyType.SS?this.control.validationController.moveStartDependTasks(e,a.start):this.control.validationController.moveEndDependTasks(e,a.end)}return this.control.history.endTransaction(),!0},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowDependencyInsert},t}(n(2291).DependencyCommandBase);t.CreateDependencyCommand=a},2291:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DependencyCommandBase=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t}(i.CommandBase);t.DependencyCommandBase=s},3044:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveDependencyCommand=void 0;var r=n(655),i=n(9544),o=n(5139),s=n(4797),a=n(5865),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n){var r=this;return void 0===n&&(n=!0),n?(this.control.commandManager.showConfirmationDialog.execute(new o.ConfirmationDialogParameters(i.ConfirmationType.DependencyDelete,(function(){r.executeInternal(t)}))),!1):e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(e){if(null!=(e=e||this.control.taskEditController.dependencyId)){var t=this.control.viewModel.dependencies.items.filter((function(t){return t.internalId===e}))[0];if(t){var n=new s.DependencyRemovingArguments(t);if(this.modelManipulator.dispatcher.notifyDependencyRemoving(n),!n.cancel)return this.history.addAndRedo(new a.RemoveDependencyHistoryItem(this.modelManipulator,e)),e===this.control.taskEditController.dependencyId&&this.control.taskEditController.selectDependency(null),this.control.barManager.updateItemsState([]),!0}}return!1},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowDependencyDelete},t.prototype.getState=function(){var t=e.prototype.getState.call(this);return t.visible=t.enabled&&null!=this.control.taskEditController.dependencyId,t},t}(n(2291).DependencyCommandBase);t.RemoveDependencyCommand=l},9762:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ToggleDependenciesCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(!0)},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.toggleDependencies(),!0},t}(i.CommandBase);t.ToggleDependenciesCommand=s},7823:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ToggleFullScreenCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.isInFullScreenMode=!1,t.fullScreenTempVars={},t}return r.__extends(t,e),t.prototype.getState=function(){var e=new o.SimpleCommandState(!0);return e.value=this.control.fullScreenModeHelper.isInFullScreenMode,e},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.fullScreenModeHelper.toggle(),!0},t}(i.CommandBase);t.ToggleFullScreenCommand=s},3250:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RedoCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){var e=new o.SimpleCommandState(this.isEnabled());return e.visible=this.control.settings.editing.enabled,e},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.history.redo(),!0},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.history.canRedo()},t}(i.CommandBase);t.RedoCommand=s},9072:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UndoCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){var e=new o.SimpleCommandState(this.isEnabled());return e.visible=this.control.settings.editing.enabled,e},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.history.undo(),!0},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.history.canUndo()},t}(i.CommandBase);t.UndoCommand=s},1955:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AssignResourceCommand=void 0;var r=n(655),i=n(1389),o=n(3683),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n){return e.prototype.execute.call(this,t,n)},t.prototype.executeInternal=function(e,t){if(!this.control.viewModel.assignments.items.filter((function(n){return n.resourceId===e&&n.taskId===t}))[0]){var n=this.control.viewModel,r=new i.ResourceAssigningArguments(n.convertInternalToPublicKey(\"resource\",e),n.convertInternalToPublicKey(\"task\",t));if(this.modelManipulator.dispatcher.notifyResourceAssigning(r),!r.cancel)return this.history.addAndRedo(new o.AssignResourceHistoryItem(this.modelManipulator,n.convertPublicToInternalKey(\"resource\",r.resourceId),n.convertPublicToInternalKey(\"task\",r.taskId))),!0}return!1},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowTaskResourceUpdate},t}(n(200).ResourceCommandBase);t.AssignResourceCommand=s},1757:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateResourceCommand=void 0;var r=n(655),i=n(990),o=n(2961),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n,r){return void 0===n&&(n=\"\"),e.prototype.execute.call(this,t,n,r)},t.prototype.executeInternal=function(e,t,n){void 0===t&&(t=\"\");var r=new i.ResourceInsertingArguments(e,t);return this.modelManipulator.dispatcher.notifyResourceCreating(r),r.cancel||this.history.addAndRedo(new o.CreateResourceHistoryItem(this.modelManipulator,r.text,r.color,n)),!r.cancel},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowResourceInsert},t}(n(200).ResourceCommandBase);t.CreateResourceCommand=s},7977:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DeassignResourceCommand=void 0;var r=n(655),i=n(1493),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t){return e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(e){var t=this.control.viewModel.assignments.items.filter((function(t){return t.internalId===e}))[0];return!(!t||!this.modelManipulator.dispatcher.fireResourceUnassigning(t))&&(this.history.addAndRedo(new i.DeassignResourceHistoryItem(this.modelManipulator,e)),!0)},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowTaskResourceUpdate},t}(n(200).ResourceCommandBase);t.DeassignResourceCommand=o},9793:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceColorCommand=void 0;var r=n(655),i=n(4641),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n){return e.prototype.execute.call(this,t,n)},t.prototype.executeInternal=function(e,t){return this.control.viewModel.resources.getItemById(e).color!==t&&(this.history.addAndRedo(new i.ResourceColorHistoryItem(this.modelManipulator,e,t)),!0)},t}(n(9876).ResourcePropertyCommandBase);t.ResourceColorCommand=o},9876:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcePropertyCommandBase=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowResourceUpdate},t}(i.CommandBase);t.ResourcePropertyCommandBase=s},358:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveResourceCommand=void 0;var r=n(655),i=n(9748),o=n(7466),s=n(1493),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t){return e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(e){var t=this,n=this.control.viewModel.resources.items.filter((function(t){return t.internalId===e}))[0];if(n){var r=new i.ResourceRemovingArguments(n);if(this.modelManipulator.dispatcher.notifyResourceRemoving(r),!r.cancel){var a=new o.RemoveResourceHistoryItem(this.modelManipulator,e);return this.control.viewModel.assignments.items.filter((function(t){return t.resourceId===e})).forEach((function(e){t.modelManipulator.dispatcher.fireResourceUnassigning(e)&&a.add(new s.DeassignResourceHistoryItem(t.modelManipulator,e.internalId))})),this.history.addAndRedo(a),!0}}return!1},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowResourceDelete},t}(n(200).ResourceCommandBase);t.RemoveResourceCommand=a},200:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceCommandBase=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t}(i.CommandBase);t.ResourceCommandBase=s},9791:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ToggleResourceCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(!0)},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.toggleResources(),!0},t}(i.CommandBase);t.ToggleResourceCommand=s},4409:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SimpleCommandState=void 0;var n=function(e,t){this.visible=!0,this.enabled=e,this.value=t};t.SimpleCommandState=n},3936:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateSubTaskCommand=void 0;var r=n(655),i=n(4605),o=n(1284),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t){return e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(t){t=t||this.control.currentSelectedTaskID;var n=this.control.viewModel.findItem(t);if(n.selected){var r={start:new Date(n.task.start.getTime()),end:new Date(n.task.end.getTime()),title:\"New task\",progress:0,parentId:t},s=new i.TaskInsertingArguments(null,r);if(this.modelManipulator.dispatcher.notifyTaskCreating(s),!s.cancel){this.history.addAndRedo(new o.CreateTaskHistoryItem(this.modelManipulator,s));var a=this.control.viewModel.findItem(r.parentId);e.prototype.updateParent.call(this,a)}return!s.cancel}return!1},t.prototype.isEnabled=function(){var t=this.control,n=t.viewModel.findItem(t.currentSelectedTaskID);return e.prototype.isEnabled.call(this)&&!!n&&n.selected},t.prototype.getState=function(){var t=e.prototype.getState.call(this),n=this.control;return t.visible=t.visible&&n.settings.editing.allowTaskInsert,t},t}(n(9254).TaskCommandBase);t.CreateSubTaskCommand=s},5258:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateTaskCommand=void 0;var r=n(655),i=n(4605),o=n(1284),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t){return e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(t){var n,r;if(null!=t||(t={}),!t.parentId){var s=this.control.viewModel.findItem(this.control.currentSelectedTaskID),a=s&&s.task;a&&(t.parentId=a.parentId)}var l=this.control.viewModel.findItem(t.parentId)||this.control.viewModel.items[0],c=l&&l.task;t.start||(t.start=c?new Date(c.start.getTime()):new Date(this.control.range.start.getTime())),t.end||(t.end=c?new Date(c.end.getTime()):new Date(this.control.range.end.getTime())),null!==(n=t.title)&&void 0!==n||(t.title=\"New task\"),null!==(r=t.progress)&&void 0!==r||(t.progress=0);var u=new i.TaskInsertingArguments(null,t);if(this.modelManipulator.dispatcher.notifyTaskCreating(u),!u.cancel){this.history.addAndRedo(new o.CreateTaskHistoryItem(this.modelManipulator,u));var d=this.control.viewModel.findItem(t.parentId);e.prototype.updateParent.call(this,d)}return!u.cancel},t.prototype.getState=function(){var t=e.prototype.getState.call(this);return t.visible=t.visible&&this.control.settings.editing.allowTaskInsert,t},t}(n(9254).TaskCommandBase);t.CreateTaskCommand=s},4195:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveTaskCommand=void 0;var r=n(655),i=n(9544),o=n(5139),s=n(4642),a=n(5865),l=n(1493),c=n(9599),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n,r,s,a,l){var c=this;return void 0===n&&(n=!0),void 0===r&&(r=!1),void 0===s&&(s=!0),this.isApiCall=r,this.isUpdateParentTaskRequired=s,n?(this.control.commandManager.showConfirmationDialog.execute(new o.ConfirmationDialogParameters(i.ConfirmationType.TaskDelete,(function(){c.executeInternal(t,a,l)}))),!1):e.prototype.execute.call(this,t,a,l)},t.prototype.executeInternal=function(n,r,i){var o=this,u=i||[];n=n||this.control.currentSelectedTaskID;var d=this.control.viewModel.findItem(n),p=d?d.task:this.control.viewModel.tasks.getItemById(n),h=new s.TaskRemovingArguments(p);if(this.modelManipulator.dispatcher.notifyTaskRemoving(h),h.cancel)return!1;var f=this.history,g=this.control.viewModel;f.beginTransaction(),g.beginUpdate();var y=!!r,m=new c.RemoveTaskHistoryItem(this.modelManipulator,n),v=g.tasks.items.filter((function(e){return e.parentId===n})),T=v.map((function(e){return e.internalId})),b=g.dependencies.items.filter((function(e){return-1===u.indexOf(e.internalId)&&(e.predecessorId===n||e.successorId===n)&&!T.some((function(t){return e.predecessorId===t||e.successorId===t}))}));if(b.length){if(!this.control.settings.editing.allowDependencyDelete)return!1;b.forEach((function(e){m.add(new a.RemoveDependencyHistoryItem(o.modelManipulator,e.internalId)),u.push(e.internalId)}))}if(g.assignments.items.filter((function(e){return e.taskId===n})).forEach((function(e){o.modelManipulator.dispatcher.fireResourceUnassigning(e)&&m.add(new l.DeassignResourceHistoryItem(o.modelManipulator,e.internalId))})),v.reverse().forEach((function(e){return new t(o.control).execute(e.internalId,!1,!0,!1,m,u)})),y?r.add(m):f.addAndRedo(m),this.isUpdateParentTaskRequired){var k=this.control.viewModel.findItem(p.parentId);e.prototype.updateParent.call(this,k)}return f.endTransaction(),g.endUpdate(),!0},t.prototype.isEnabled=function(){var t=this.control,n=t.viewModel.findItem(t.currentSelectedTaskID);return e.prototype.isEnabled.call(this)&&(!!n&&n.selected||this.isApiCall)},t.prototype.getState=function(){var t=e.prototype.getState.call(this),n=this.control;return t.visible=t.visible&&n.settings.editing.allowTaskDelete,t},t}(n(9254).TaskCommandBase);t.RemoveTaskCommand=u},2714:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAddContextItemCommand=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){var t=e.prototype.getState.call(this);return t.visible=t.visible&&this.control.settings.editing.allowTaskInsert,t},t.prototype.execute=function(){return!1},t}(n(9254).TaskCommandBase);t.TaskAddContextItemCommand=i},9254:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskCommandBase=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.isApiCall=!1,t}return r.__extends(t,e),t.prototype.getState=function(){var e=new o.SimpleCommandState(this.isEnabled());return e.visible=this.control.settings.editing.enabled&&!this.control.taskEditController.dependencyId,e},t.prototype.updateParent=function(e){this.validationController._parentAutoCalc&&e&&e.children.length>0&&this.control.validationController.updateParentsIfRequired(e.children[0].task.internalId)},t}(i.CommandBase);t.TaskCommandBase=s},2018:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UpdateTaskCommand=void 0;var r=n(655),i=n(2491),o=n(9544),s=n(3433),a=n(5865),l=n(9496),c=n(9201),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.execute=function(t,n){return e.prototype.execute.call(this,t,n)},t.prototype.executeInternal=function(e,t){var n=this.control.viewModel.tasks.getItemById(e);if(!n)return!1;var r=this.control.modelManipulator.dispatcher.raiseTaskUpdating(n,t,(function(e){t.title=e.title,t.progress=e.progress,t.start=e.start,t.end=e.end,t.color=e.color}));if(r){(0,i.isDefined)(t.start)&&(0,i.isDefined)(t.end)&&t.end.getTime()<t.start.getTime()&&(t.end=t.start),(0,i.isDefined)(t.progress)&&(t.progress=Math.max(Math.min(t.progress,100),0));var o=this.filterChangedValues(t,n);this.processDependecyValidation(o,n)}return r},t.prototype.isEnabled=function(){return e.prototype.isEnabled.call(this)&&this.control.settings.editing.allowTaskUpdate},t.prototype.filterChangedValues=function(e,t){if(!e)return null;var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(0,i.isDefined)(e[r])&&t[r]!==e[r]&&(n[r]=e[r]);return n},t.prototype.processDependecyValidation=function(e,t){var n=this,r=function(r){n.onAfterValidationCallback(e,t,r)},o=this.control.isValidateDependenciesRequired();if(o){var a=[],l=(0,i.isDefined)(e.start)&&e.start!==t.start,c=(0,i.isDefined)(e.end)&&e.end!==t.end;l&&o&&(a=a.concat(this.control.validationController.checkStartDependencies(t.internalId,e.start))),c&&o&&(a=a.concat(this.control.validationController.checkEndDependencies(t.internalId,e.end))),a.length>0?this.control.commandManager.showConstraintViolationDialog.execute(new s.ConstraintViolationDialogParameters(a,r)):r(null)}else r(null)},t.prototype.onAfterValidationCallback=function(e,t,n){var r=this;if(!n||n.option!==o.ConstraintViolationOption.DoNothing||(delete e.start,delete e.end),Object.keys(e).length>0){this.history.beginTransaction(),(null==n?void 0:n.option)===o.ConstraintViolationOption.RemoveDependency&&n.validationErrors.forEach((function(e){return r.history.addAndRedo(new a.RemoveDependencyHistoryItem(r.modelManipulator,e.dependencyId))}));var s=this.control.isValidateDependenciesRequired(),c=t.internalId,u=t.start,d=t.end;this.history.addAndRedo(new l.UpdateTaskHistoryItem(this.modelManipulator,c,e)),(0,i.isDefined)(e.start)&&s&&this.control.validationController.moveStartDependTasks(c,u),(0,i.isDefined)(e.end)&&s&&this.control.validationController.moveEndDependTasks(c,d),this.processAutoParentUpdate(c,e,u,d),this.history.endTransaction(),(null==n?void 0:n.option)!==o.ConstraintViolationOption.RemoveDependency&&(null==n?void 0:n.option)!==o.ConstraintViolationOption.KeepDependency||this.control.updateBarManager(),this.control.updateViewDataRange()}},t.prototype.processAutoParentUpdate=function(e,t,n,r){var o=(0,i.isDefined)(t.start),s=(0,i.isDefined)(t.end),a=(0,i.isDefined)(t.progress)||o||s,l=o?t.start.getTime()-n.getTime():null,u=s?t.end.getTime()-r.getTime():null,d=o&&0!==c.DateUtils.getTimezoneOffsetDiff(n,t.start),p=s&&0!==c.DateUtils.getTimezoneOffsetDiff(r,t.end),h=(d||p)&&Math.abs(u-l)===c.DateUtils.msPerHour;a?0!==l&&(l===u||h)?this.validationController.correctParentsOnChildMoving(e,l):this.validationController.updateParentsIfRequired(e):this.control.updateOwnerInAutoParentMode()},t}(n(9254).TaskCommandBase);t.UpdateTaskCommand=u},299:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ZoomInCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(!0)},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.zoomIn(),!0},t}(i.CommandBase);t.ZoomInCommand=s},2231:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ZoomOutCommand=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getState=function(){return new o.SimpleCommandState(!0)},t.prototype.execute=function(){return e.prototype.execute.call(this)},t.prototype.executeInternal=function(){return this.control.zoomOut(),!0},t}(i.CommandBase);t.ZoomOutCommand=s},5237:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConfirmationDialog=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.applyParameters=function(e,t){return this.history.beginTransaction(),t.callback(),this.history.endTransaction(),this.control.barManager.updateItemsState([]),!0},t.prototype.createParameters=function(e){return e},t.prototype.getDialogName=function(){return\"Confirmation\"},t}(n(4730).DialogBase);t.ConfirmationDialog=i},126:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConstraintViolationDialogCommand=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.applyParameters=function(e,t){return t.callback(e),!0},t.prototype.createParameters=function(e){return e},t.prototype.getDialogName=function(){return\"ConstraintViolation\"},t}(n(4730).DialogBase);t.ConstraintViolationDialogCommand=i},4730:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DialogBase=void 0;var r=n(655),i=n(9687),o=n(4409),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.isApiCall=!1,t._canRefresh=!0,t}return r.__extends(t,e),t.prototype.execute=function(t,n){return void 0===t&&(t=void 0),void 0===n&&(n=!1),this.isApiCall=n,e.prototype.execute.call(this,t)},t.prototype.executeInternal=function(e){return this.options=e,this.showDialog(e)},Object.defineProperty(t.prototype,\"canRefresh\",{get:function(){return this._canRefresh},enumerable:!1,configurable:!0}),t.prototype.refresh=function(){this.showDialog(this.options)},t.prototype.showDialog=function(e){var n=this,r=this.createParameters(e),i=r.clone();return!!this.onBeforeDialogShow(r)&&(t.activeInstance=this,this.control.showDialog(this.getDialogName(),r,(function(e){e&&(n._canRefresh=!1,n.applyParameters(e,i),n._canRefresh=!0)}),(function(){delete t.activeInstance,n.afterClosing()})),!0)},t.prototype.onBeforeDialogShow=function(e){return!0},t.prototype.applyParameters=function(e,t){return!1},t.prototype.afterClosing=function(){},t.prototype.getState=function(){return new o.SimpleCommandState(this.isEnabled())},t.activeInstance=null,t}(i.CommandBase);t.DialogBase=s},9544:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConstraintViolationOption=t.ConfirmationType=void 0,function(e){e[e.TaskDelete=0]=\"TaskDelete\",e[e.DependencyDelete=1]=\"DependencyDelete\",e[e.ResourcesDelete=2]=\"ResourcesDelete\"}(t.ConfirmationType||(t.ConfirmationType={})),function(e){e[e.DoNothing=0]=\"DoNothing\",e[e.RemoveDependency=1]=\"RemoveDependency\",e[e.KeepDependency=2]=\"KeepDependency\"}(t.ConstraintViolationOption||(t.ConstraintViolationOption={}))},5139:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConfirmationDialogParameters=void 0;var r=n(655),i=function(e){function t(t,n){var r=e.call(this)||this;return r.type=t,r.callback=n,r}return r.__extends(t,e),t.prototype.clone=function(){var e=new t(this.type,this.callback);return e.message=this.message,e},t}(n(9705).DialogParametersBase);t.ConfirmationDialogParameters=i},3433:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConstraintViolationDialogParameters=void 0;var r=n(655),i=function(e){function t(t,n){var r=e.call(this)||this;return r.validationErrors=t,r.callback=n,r}return r.__extends(t,e),t.prototype.clone=function(){var e=new t(this.validationErrors,this.callback);return e.option=this.option,e},Object.defineProperty(t.prototype,\"hasCriticalErrors\",{get:function(){var e;return null===(e=this.validationErrors)||void 0===e?void 0:e.some((function(e){return e.critical}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"errorsCount\",{get:function(){var e;return null===(e=this.validationErrors)||void 0===e?void 0:e.length},enumerable:!1,configurable:!0}),t}(n(9705).DialogParametersBase);t.ConstraintViolationDialogParameters=i},9705:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DialogParametersBase=void 0;var n=function(){};t.DialogParametersBase=n},6711:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcesDialogParameters=void 0;var r=n(655),i=n(8828),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.clone=function(){var e=new t;return e.resources=new i.ResourceCollection,e.resources.addRange(this.resources.items),e},t}(n(9705).DialogParametersBase);t.ResourcesDialogParameters=o},1563:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditParameters=void 0;var r=n(655),i=n(8828),o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.enableEdit=!0,t.enableRangeEdit=!0,t.isValidationRequired=!1,t.hiddenFields=[],t.readOnlyFields=[],t}return r.__extends(t,e),t.prototype.clone=function(){var e=new t;return e.id=this.id,e.title=this.title,e.progress=this.progress,e.start=this.start,e.end=this.end,e.assigned=new i.ResourceCollection,e.assigned.addRange(this.assigned.items),e.resources=new i.ResourceCollection,e.resources.addRange(this.resources.items),e.showResourcesDialogCommand=this.showResourcesDialogCommand,e.showTaskEditDialogCommand=this.showTaskEditDialogCommand,e.enableEdit=this.enableEdit,e.enableRangeEdit=this.enableRangeEdit,e.hiddenFields=this.hiddenFields.slice(),e.readOnlyFields=this.readOnlyFields.slice(),e.isValidationRequired=this.isValidationRequired,e.getCorrectDateRange=this.getCorrectDateRange,e},t}(n(9705).DialogParametersBase);t.TaskEditParameters=o},5477:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcesDialogCommand=void 0;var r=n(655),i=n(8828),o=n(4730),s=n(9544),a=n(5139),l=n(6711),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resourcesForDelete=[],t}return r.__extends(t,e),t.prototype.onBeforeDialogShow=function(e){return this.modelManipulator.dispatcher.raiseResourceManagerDialogShowing(e,(function(t){e.resources=t.values.resources}))},t.prototype.applyParameters=function(e,t){this.history.beginTransaction();for(var n=0;n<e.resources.length;n++){t.resources.getItemById(e.resources.getItem(n).internalId)||this.control.commandManager.createResourceCommand.execute(e.resources.getItem(n).text)}for(n=0;n<t.resources.length;n++){e.resources.getItemById(t.resources.getItem(n).internalId)||this.resourcesForDelete.push(t.resources.getItem(n))}return this.history.endTransaction(),!1},t.prototype.createParameters=function(e){this.callBack=e;var t=new l.ResourcesDialogParameters;return t.resources=new i.ResourceCollection,t.resources.addRange(this.control.viewModel.resources.items),t},t.prototype.afterClosing=function(){var e=this;if(this.resourcesForDelete.length){var t=this.control.commandManager.showConfirmationDialog,n=new a.ConfirmationDialogParameters(s.ConfirmationType.ResourcesDelete,(function(){e.history.beginTransaction();for(var t=0;t<e.resourcesForDelete.length;t++)e.control.commandManager.removeResourceCommand.execute(e.resourcesForDelete[t].internalId);e.history.endTransaction()}));n.message=this.resourcesForDelete.reduce((function(e,t){return r.__spreadArray(r.__spreadArray([],e,!0),[t.text],!1)}),[]).join(\", \"),this.callBack&&(t.afterClosing=function(){delete o.DialogBase.activeInstance,e.callBack()}),t.execute(n)}else this.callBack&&this.callBack()},t.prototype.getDialogName=function(){return\"Resources\"},t}(o.DialogBase);t.ResourcesDialogCommand=c},6152:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditDialogCommand=void 0;var r=n(655),i=n(8828),o=n(1389),s=n(3683),a=n(1493),l=n(4730),c=n(1563),u=n(2491),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.onBeforeDialogShow=function(e){return this.modelManipulator.dispatcher.raiseTaskTaskEditDialogShowing(e,(function(t){var n=t.values;e.start=n.start,e.end=n.end,e.progress=n.progress,e.title=n.title,e.readOnlyFields=t.readOnlyFields,e.hiddenFields=t.hiddenFields}))},t.prototype.applyParameters=function(e,t){var n=this;this.history.beginTransaction();var r=this.getUpdatedTaskData(e,t);Object.keys(r).length>0&&setTimeout((function(){return n.control.commandManager.updateTaskCommand.execute(t.id,r)}),0);for(var i=0;i<e.assigned.length;i++){if(!t.assigned.getItemById(e.assigned.getItem(i).internalId)){var l=e.assigned.getItem(i).internalId,c=t.id,u=new o.ResourceAssigningArguments(l,c);this.modelManipulator.dispatcher.notifyResourceAssigning(u),u.cancel||this.history.addAndRedo(new s.AssignResourceHistoryItem(this.modelManipulator,u.resourceId,u.taskId))}}var d=function(n){var r=t.assigned.getItem(n);if(!e.assigned.getItemById(r.internalId)){var i=p.control.viewModel.assignments.items.filter((function(e){return e.resourceId===r.internalId&&e.taskId===t.id}))[0];p.modelManipulator.dispatcher.fireResourceUnassigning(i)&&p.history.addAndRedo(new a.DeassignResourceHistoryItem(p.modelManipulator,i.internalId))}},p=this;for(i=0;i<t.assigned.length;i++)d(i);return this.history.endTransaction(),!1},t.prototype.getUpdatedTaskData=function(e,t){var n={};return(0,u.isDefined)(e.title)&&t.title!==e.title&&(n.title=e.title),(0,u.isDefined)(e.progress)&&t.progress!==e.progress&&(n.progress=e.progress),(0,u.isDefined)(e.start)&&t.start!==e.start&&(n.start=e.start),(0,u.isDefined)(e.end)&&t.end!==e.end&&(n.end=e.end),n},t.prototype.createParameters=function(e){var t=this;e=e||this.control.viewModel.tasks.getItemById(this.control.currentSelectedTaskID);var n=new c.TaskEditParameters;return n.id=e.internalId,n.title=e.title,n.progress=e.progress,n.start=e.start,n.end=e.end,n.assigned=this.control.viewModel.getAssignedResources(e),n.resources=new i.ResourceCollection,n.resources.addRange(this.control.viewModel.resources.items),n.showResourcesDialogCommand=this.control.commandManager.showResourcesDialog,n.showTaskEditDialogCommand=this.control.commandManager.showTaskEditDialog,n.enableEdit=this.isTaskEditEnabled(),n.enableRangeEdit=this.isTaskRangeEditEnabled(e),n.isValidationRequired=this.control.isValidateDependenciesRequired(),n.getCorrectDateRange=function(e,n,r){return t.control.validationController.getCorrectDateRange(e,n,r)},n},t.prototype.isTaskEditEnabled=function(){var e=this.control.settings;return e.editing.enabled&&e.editing.allowTaskUpdate},t.prototype.isTaskRangeEditEnabled=function(e){return!this.control.viewModel.isTaskToCalculateByChildren(e.internalId)},t.prototype.isEnabled=function(){var e=this.control,t=e.viewModel.findItem(e.currentSelectedTaskID);return!!t&&t.selected||this.isApiCall},t.prototype.getState=function(){var t=e.prototype.getState.call(this);return t.visible=t.visible&&!this.control.taskEditController.dependencyId,t},t.prototype.getDialogName=function(){return\"TaskEdit\"},t}(l.DialogBase);t.TaskEditDialogCommand=d},6893:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttExportCalculator=void 0;var r=n(8900),i=n(6907),o=n(2449),s=n(1855),a=n(4991),l=n(2485),c=n(3917),u=n(405),d=n(6995),p=n(5063),h=n(6032),f=n(8603),g=n(6997),y=n(8935),m=n(6353),v=n(3424),T=n(5763),b=n(7802),k=n(9895),S=n(2642),_=function(){function e(t,n){var r,i;this._owner=t,this._props=new g.GanttPdfExportProps(n),null!==(r=(i=this._props).margins)&&void 0!==r||(i.margins=new p.Margin(e._defaultPageMargin))}return Object.defineProperty(e.prototype,\"chartTableScaleTopMatrix\",{get:function(){var e;return null!==(e=this._chartTableScaleTopMatrix)&&void 0!==e||(this._chartTableScaleTopMatrix=this.calculateChartScaleMatrix(0)),this._chartTableScaleTopMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"chartTableScaleBottomMatrix\",{get:function(){var e;return null!==(e=this._chartTableScaleBottomMatrix)&&void 0!==e||(this._chartTableScaleBottomMatrix=this.calculateChartScaleMatrix(1)),this._chartTableScaleBottomMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"chartTableBodyMatrix\",{get:function(){return this._chartTableBodyMatrix||this.calculateChartTableBodyMatrix(),this._chartTableBodyMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"treeListHeaderMatrix\",{get:function(){return this._treeListHeaderMatrix||this.calculateTreeListTableHeaderMatrix(),this._treeListHeaderMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"treeListBodyMatrix\",{get:function(){return this._treeListBodyMatrix||this.calculateTreeListTableBodyMatrix(),this._treeListBodyMatrix},enumerable:!1,configurable:!0}),e.prototype.getPages=function(e){return new v.PdfGanttPaginator(e,this.settings,this.createGlobalInfo()).getPages()},Object.defineProperty(e.prototype,\"settings\",{get:function(){return this.settingsForPaging},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"layoutCalculator\",{get:function(){return this._taskAreaHelper.layoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaHelper\",{get:function(){var e;return null!==(e=this._taskAreaHelper)&&void 0!==e||(this._taskAreaHelper=new f.TaskAreaExportHelper(this._owner,this._props)),this._taskAreaHelper},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scalingHelper\",{get:function(){var e,t;return null!==(e=this._scalingHelper)&&void 0!==e||(this._scalingHelper=new T.ScalingHelper(null===(t=this._props)||void 0===t?void 0:t.pdfDoc)),this._scalingHelper},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"visibleTaskIndices\",{get:function(){return this.taskAreaHelper.visibleTaskIndices},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"baseCellWidth\",{get:function(){return this.taskAreaHelper.baseCellSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"baseCellHeight\",{get:function(){return this.taskAreaHelper.baseCellHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"chartScaleTableStyle\",{get:function(){var e;return null!==(e=this._chartScaleTableStyle)&&void 0!==e||(this._chartScaleTableStyle=this.getChartScaleTableStyle()),this._chartScaleTableStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"chartMainTableStyle\",{get:function(){var e;return null!==(e=this._chartMainTableStyle)&&void 0!==e||(this._chartMainTableStyle=this.getChartMainTableStyle()),this._chartMainTableStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"treeListTableStyle\",{get:function(){return this._treeListTableStyle||this.calculateTreeListTableStyle(),this._treeListTableStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageTopMargin\",{get:function(){return this._props.margins.top},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageLeftMargin\",{get:function(){return this._props.margins.left},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageRightMargin\",{get:function(){return this._props.margins.right},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageBottomMargin\",{get:function(){return this._props.margins.bottom},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"headerTableTop\",{get:function(){var e;return null!==(e=this._headerTableTop)&&void 0!==e||(this._headerTableTop=this.pageTopMargin),this._headerTableTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"mainTableTop\",{get:function(){var e;return null!==(e=this._mainTableTop)&&void 0!==e||(this._mainTableTop=this.getMainTableTop()),this._mainTableTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"exportDataMode\",{get:function(){return this._props.exportDataMode},enumerable:!1,configurable:!0}),e.prototype.getMainTableTop=function(){return this.headerTableTop+this.headerTableHeight-this.taskAreaHelper.offsetTop},Object.defineProperty(e.prototype,\"chartLeft\",{get:function(){var e;return null!==(e=this._chartLeft)&&void 0!==e||(this._chartLeft=this.getChartLeft()),this._chartLeft},enumerable:!1,configurable:!0}),e.prototype.getChartLeft=function(){var e;return(((null===(e=this._props)||void 0===e?void 0:e.exportMode)||k.ExportMode.all)===k.ExportMode.chart?this.pageLeftMargin:this.treeListLeft+this.treeListWidth)-this.taskAreaHelper.offsetLeft},Object.defineProperty(e.prototype,\"treeListLeft\",{get:function(){var e;return null!==(e=this._treeListLeft)&&void 0!==e||(this._treeListLeft=this.pageLeftMargin),this._treeListLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"headerTableHeight\",{get:function(){return 2*this.taskAreaHelper.headerRowHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"mainTableHeight\",{get:function(){var e;return null!==(e=this._mainTableHeight)&&void 0!==e||(this._mainTableHeight=this.taskAreaHelper.taskAreaHeight),this._mainTableHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"treeListWidth\",{get:function(){var e;return null!==(e=this._treeListWidth)&&void 0!==e||(this._treeListWidth=this.getTreeListTableWidth()),this._treeListWidth},enumerable:!1,configurable:!0}),e.prototype.getTreeListTableWidth=function(){var e,t=this,n=this.treeListHeaderMatrix[0].map((function(e,n){return t.getTreeListColumnWidth(n)}));return null!==(e=null==n?void 0:n.reduce((function(e,t){return e+t}),0))&&void 0!==e?e:0},Object.defineProperty(e.prototype,\"chartWidth\",{get:function(){var e=this;if(!this._chartWidth){var t=this.chartTableScaleBottomMatrix[0];this._chartWidth=t.reduce((function(t,n){return t+(n.styles.cellWidth.hasValue()?n.styles.cellWidth.getValue():e.baseCellWidth)}),0)}return this._chartWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"settingsForPaging\",{get:function(){return this._settingsForPaging||(this._settingsForPaging=new g.GanttPdfExportProps(this._props),this.prepareAutoFormat(this._settingsForPaging),this.scalingHelper.scalePageMargins(this._settingsForPaging)),this._settingsForPaging},enumerable:!1,configurable:!0}),e.prototype.prepareAutoFormat=function(e){if(e.format===g.GanttPdfExportProps.autoFormatKey){e.format=null;var t=e.landscape,n=this.autoFormatWidth,r=this.autoFormatHeight;(t&&r>n||!t&&r<n)&&(e.landscape=!t),e.pageSize=new m.Size(n,r)}},Object.defineProperty(e.prototype,\"autoFormatWidth\",{get:function(){var t,n=((null===(t=this._props)||void 0===t?void 0:t.exportMode)||k.ExportMode.all)!==k.ExportMode.treeList,r=this.pageRightMargin;return(r+=n?this.chartLeft+this.chartWidth:this.treeListLeft+this.treeListWidth)+e._autoFormatWidthAddStock},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"autoFormatHeight\",{get:function(){return this.mainTableTop+this.mainTableHeight+this.pageBottomMargin},enumerable:!1,configurable:!0}),e.prototype.createGlobalInfo=function(){var e={objects:this._canExportChart()?this.getGanttObjectsInfo():null,tables:this.getTablesInfo()};return this.scalingHelper.scaleSizes(e),e},e.prototype.getTablesInfo=function(){var e={};return this._canExportTreelist()&&(e[y.PdfPageTableNames.treeListHeader]=this.createTreeListHeaderTableInfo(),e[y.PdfPageTableNames.treeListMain]=this.createTreeListMainTableInfo()),this._canExportChart()&&(e[y.PdfPageTableNames.chartMain]=this.createChartMainTableInfo(),e[y.PdfPageTableNames.chartScaleTop]=this._createChartScaleTopInfo(),e[y.PdfPageTableNames.chartScaleBottom]=this._createChartScaleBottomInfo()),e},Object.defineProperty(e.prototype,\"exportMode\",{get:function(){var e,t;return null!==(t=null===(e=this._props)||void 0===e?void 0:e.exportMode)&&void 0!==t?t:k.ExportMode.all},enumerable:!1,configurable:!0}),e.prototype._canExportTreelist=function(){return this.exportMode===k.ExportMode.all||this.exportMode===k.ExportMode.treeList},e.prototype._canExportChart=function(){return this.exportMode===k.ExportMode.all||this.exportMode===k.ExportMode.chart},Object.defineProperty(e.prototype,\"_predefinedFont\",{get:function(){var e,t,n,r,i=null===(t=null===(e=this._props)||void 0===e?void 0:e.pdfDoc)||void 0===t?void 0:t.getFont();return(null==i?void 0:i.fontName)||(null===(r=null===(n=this._props)||void 0===n?void 0:n.font)||void 0===r?void 0:r.name)},enumerable:!1,configurable:!0}),e.prototype._createChartScaleTopInfo=function(){return{name:y.PdfPageTableNames.chartScaleTop,size:new m.Size(this.chartWidth,this.taskAreaHelper.headerRowHeight),position:new r.Point(this.chartLeft,this.headerTableTop),style:this.chartScaleTableStyle,baseCellSize:new m.Size(this.baseCellWidth,this.taskAreaHelper.headerRowHeight),cells:this.chartTableScaleTopMatrix}},e.prototype._createChartScaleBottomInfo=function(){var e=this.taskAreaHelper.headerRowHeight;return{name:y.PdfPageTableNames.chartScaleBottom,size:new m.Size(this.chartWidth,e),position:new r.Point(this.chartLeft,this.headerTableTop+e),style:this.chartScaleTableStyle,baseCellSize:new m.Size(this.baseCellWidth,e),cells:this.chartTableScaleBottomMatrix}},e.prototype.createChartMainTableInfo=function(){return{name:y.PdfPageTableNames.chartMain,size:new m.Size(this.chartWidth,this.mainTableHeight),position:new r.Point(this.chartLeft,this.mainTableTop),style:this.chartMainTableStyle,baseCellSize:new m.Size(this.baseCellWidth,this.baseCellHeight),cells:this.chartTableBodyMatrix,hideRowLines:!this._owner.settings.areHorizontalBordersEnabled}},e.prototype.createTreeListHeaderTableInfo=function(){return{name:y.PdfPageTableNames.treeListHeader,size:new m.Size(this.treeListWidth,this.headerTableHeight),position:new r.Point(this.treeListLeft,this.headerTableTop),style:this.treeListTableStyle,baseCellSize:new m.Size(null,this.headerTableHeight),cells:this.treeListHeaderMatrix}},e.prototype.createTreeListMainTableInfo=function(){return{name:y.PdfPageTableNames.treeListMain,size:new m.Size(this.treeListWidth,this.mainTableHeight),position:new r.Point(this.treeListLeft,this.mainTableTop),style:this.treeListTableStyle,baseCellSize:new m.Size(null,this.baseCellHeight),cells:this.treeListBodyMatrix,hideRowLines:!this._owner.settings.areHorizontalBordersEnabled}},e.prototype.calculateChartScaleMatrix=function(e){for(var t=this.taskAreaHelper,n=t.scaleRanges,r=new Array,i=n[e][0],o=n[e][1],s=i;s<=o;s++){var a=this.layoutCalculator.getScaleItemStart(s,t.scales[e]),l=new h.CellDef(this._owner.renderHelper.getScaleItemTextByStart(a,t.scales[e]));l.styles.cellPadding.assign(0),l.styles.minCellHeight=this.taskAreaHelper.headerRowHeight;var c=0===e?t.scaleTopWidths[s]:t.scaleBottomWidths[s];l.styles.cellWidth.assign(c),r.push(l)}return[r]},e.prototype.calculateChartTableBodyMatrix=function(){var e=this;this._chartTableBodyMatrix=new Array,this.visibleTaskIndices.length>0?this.visibleTaskIndices.forEach((function(t){return e._chartTableBodyMatrix.push(e.createChartTableBodyRow(t))})):this._chartTableBodyMatrix.push(this.createChartTableBodyRow(-1))},e.prototype.createChartTableBodyRow=function(e){var t=new h.CellDef;return this.rowHasChildren(e)&&t.styles.fillColor.assign(this.taskAreaHelper.parentRowBackColor),this.chartTableScaleBottomMatrix[0].map((function(e){var n=new h.CellDef(t);return n.styles.cellWidth.assign(e.styles.cellWidth),n}))},e.prototype.rowHasSelection=function(e){return this._owner.rowHasSelection(e)},e.prototype.rowHasChildren=function(e){return this._owner.rowHasChildren(e)},e.prototype.calculateTreeListTableHeaderMatrix=function(){this._treeListHeaderMatrix=new Array;for(var e=this._owner,t=e.getTreeListColCount(),n=new Array,r=0;r<t;r++){var i=new h.CellDef(e.getTreeListHeaderInfo(r));i.styles.minCellHeight=2*this.taskAreaHelper.headerRowHeight,n.push(i)}this._treeListHeaderMatrix.push(n)},e.prototype.calculateTreeListTableBodyMatrix=function(){this._treeListBodyMatrix=new Array,this.visibleTaskIndices.length>0?this.fillTreeListTableBodyMatrix(this._treeListBodyMatrix):this.fillTreeListEmptyTableBodyMatrix(this._treeListBodyMatrix)},e.prototype.fillTreeListTableBodyMatrix=function(e){for(var t,n=this.visibleTaskIndices,r=this.treeListHeaderMatrix[0].length,i=0;i<n.length;i++){for(var o=new Array,s=n[i],a=null===(t=this._owner.getTask(s))||void 0===t?void 0:t.id,l=0;l<r;l++){var c=new h.CellDef(this._owner.getTreeListCellInfo(s,l,a));c.styles.cellWidth.hasValue()||c.styles.cellWidth.assign(this.getTreeListColumnWidth(l)),this.rowHasChildren(n[i])&&c.styles.fillColor.assign(this.taskAreaHelper.parentRowBackColor),o.push(c)}e.push(o)}},e.prototype.fillTreeListEmptyTableBodyMatrix=function(e){var t=new Array,n=new h.CellDef(this._owner.getTreeListEmptyDataCellInfo());n.styles.cellWidth.assign(this.treeListWidth),n.styles.halign=S.PredefinedStyles.horizontalAlign[1],n.styles.valign=S.PredefinedStyles.verticalAlign[1],t.push(n),e.push(t)},e.prototype.getTreeListColumnWidth=function(e){var t=this.treeListHeaderMatrix[0][e],n=t&&t.styles;return n.cellWidth.getValue()||n.minCellWidth||0},e.prototype.getObjectsLeftOffset=function(e){void 0===e&&(e=!1);var t=this.dataObjectLeftDelta;return e||(t+=this.taskAreaHelper.customRangeLeftOffset),t},Object.defineProperty(e.prototype,\"dataObjectLeftDelta\",{get:function(){var e;return null!==(e=this._dataObjectLeftDelta)&&void 0!==e||(this._dataObjectLeftDelta=this.getDataObjectLeftDelta()),this._dataObjectLeftDelta},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"dataObjectTopDelta\",{get:function(){var e;return null!==(e=this._dataObjectTopDelta)&&void 0!==e||(this._dataObjectTopDelta=this.getDataObjectTopDelta()),this._dataObjectTopDelta},enumerable:!1,configurable:!0}),e.prototype.getChartScaleTableStyle=function(){var e=new d.StyleDef(this.taskAreaHelper.scaleTableStyle);return this._predefinedFont&&(e.font=this._predefinedFont),e},e.prototype.getChartMainTableStyle=function(){var e=new d.StyleDef(this.taskAreaHelper.chartMainTableStyle);return this._predefinedFont&&(e.font=this._predefinedFont),e},e.prototype.calculateTreeListTableStyle=function(){this._treeListTableStyle=new d.StyleDef(this._owner.getTreeListTableStyle()),this._treeListTableStyle.fillColor.assign(this.chartMainTableStyle.fillColor),this._treeListTableStyle.lineColor.assign(this.chartMainTableStyle.lineColor),this._predefinedFont&&(this._treeListTableStyle.font=this._predefinedFont)},e.prototype.getGanttObjectsInfo=function(){return{tasks:this.tasksInfo,dependencies:this.dependenciesInfo,resources:this.resourcesInfo,timeMarkers:this.timeMarkersInfo}},Object.defineProperty(e.prototype,\"tasksInfo\",{get:function(){var e;return null!==(e=this._tasksInfo)&&void 0!==e||(this._tasksInfo=this.calculateTasksInfo()),this._tasksInfo},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"dependenciesInfo\",{get:function(){var e;return null!==(e=this._dependenciesInfo)&&void 0!==e||(this._dependenciesInfo=this.calculateDependenciesInfo()),this._dependenciesInfo},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"resourcesInfo\",{get:function(){var e;return null!==(e=this._resourcesInfo)&&void 0!==e||(this._resourcesInfo=this.calculateResourcesInfo()),this._resourcesInfo},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"timeMarkersInfo\",{get:function(){var e;return null!==(e=this._timeMarkersInfo)&&void 0!==e||(this._timeMarkersInfo=this.calculateTimeMarkersInfoInfo()),this._timeMarkersInfo},enumerable:!1,configurable:!0}),e.prototype.getDataObjectLeftDelta=function(){return this.chartLeft-this.taskAreaHelper.objectsLeftDelta},e.prototype.getDataObjectTopDelta=function(){return this.headerTableTop+this.headerTableHeight-this.taskAreaHelper.objectsTopDelta},e.prototype.calculateTasksInfo=function(){var e=this,t=new Array;return this.visibleTaskIndices.forEach((function(n){return t.push(e.calculateTaskInfo(n))})),t},e.prototype.calculateTaskInfo=function(e){var t=new c.PdfTaskInfo,n=this.layoutCalculator.getTaskElementInfo(e);return t.taskColor=this.getTaskColor(e),t.sidePoints=this.getTaskSidePoints(e),t.isMilestone=n.className.indexOf(s.GridLayoutCalculator.milestoneClassName)>0,t.isMilestone||(t.isSmallTask=n.className.indexOf(s.GridLayoutCalculator.smallTaskClassName)>0,t.isParent=n.className.indexOf(s.GridLayoutCalculator.parentTaskClassName)>0,this.appendTaskTitle(t,e),this.appendTaskProgress(t,e)),t},e.prototype.appendTaskTitle=function(e,t){var n=this._owner.settings.taskTitlePosition;e.isSmallTask&&n!==o.TaskTitlePosition.Outside||n===o.TaskTitlePosition.None||(e.text=this._owner.getTaskText(t),e.textPosition=n,e.textStyle=this.getTaskTextStyle(t))},e.prototype.appendTaskProgress=function(e,t){var n=this.layoutCalculator.getTaskProgressElementInfo(t);e.progressWidth=n.size.width,e.progressColor=this.getTaskProgressColor(t),e.progressColor.applyOpacityToBackground(e.taskColor)},e.prototype.getTaskSidePoints=function(e){var t=this,n=this.layoutCalculator.getTaskSidePoints(e);return n.forEach((function(e){e.x+=t.getObjectsLeftOffset(!0),e.y+=t.dataObjectTopDelta})),n},e.prototype.getTaskColor=function(e){var t=this.taskAreaHelper.getTaskElementBackColor(e,s.GridLayoutCalculator.taskClassName);return new u.Color(t)},e.prototype.getTaskProgressColor=function(e){return new u.Color(this.taskAreaHelper.getTaskElementBackColor(e,s.GridLayoutCalculator.taskProgressClassName))},e.prototype.getTaskTextStyle=function(e){var t=new d.StyleDef;return t.cellPadding.assign(0),t.assign(this.taskAreaHelper.getTaskElementStyle(e,s.GridLayoutCalculator.taskTitleClassName)),t},e.prototype.calculateDependenciesInfo=function(){var e=this,t=new Array,n=this.taskAreaHelper,r=new u.Color(n.dependencyColor);return n.connectorLines.forEach((function(i){return t.push(e.createLineInfo(i,r,n.arrowWidth))})),t},e.prototype.createLineInfo=function(e,t,n){var r=new a.PdfDependencyLineInfo;if(r.fillColor=t,e.className.indexOf(s.GridLayoutCalculator.arrowClassName)>-1){var i=this.layoutCalculator.getArrowPositionByClassName(e.className);r.arrowInfo={position:i,width:n},r.points=[this.getArrowTopCorner(e,i,n)]}else r.points=this.getLinePoints(e);return r},e.prototype.getArrowTopCorner=function(e,t,n){var i=e.position.x+this.getObjectsLeftOffset(),s=e.position.y+this.dataObjectTopDelta;switch(t){case o.Position.Left:i+=n;break;case o.Position.Top:s+=n}return new r.Point(i,s)},e.prototype.getLinePoints=function(e){var t=e.position.x+this.getObjectsLeftOffset(),n=e.position.y+this.dataObjectTopDelta,i=t+e.size.width,o=n+e.size.height;return[new r.Point(t,n),new r.Point(i,o)]},e.prototype.calculateResourcesInfo=function(){var e=this,t=new Array;return this.taskAreaHelper.resourcesElements.forEach((function(n){return t=t.concat(e.calculateResourcesInLine(n))})),t},e.prototype.calculateResourcesInLine=function(e){var t=new Array;if(e)for(var n=i.DomUtils.pxToInt(e.style.left)+this.getObjectsLeftOffset(),r=i.DomUtils.pxToInt(e.style.top)+this.dataObjectTopDelta,o=e.getElementsByClassName(s.GridLayoutCalculator.taskResourceClassName),a=0;a<o.length;a++){var c=o[a];if(this.taskAreaHelper.isElementVisible(c)){var u=getComputedStyle(c);n+=this.getMargin(u).left,t.push(new l.PdfTaskResourcesInfo(c.textContent,new d.StyleDef(u),n,r)),n+=i.DomUtils.pxToInt(u.width)}}return t},e.prototype.calculateTimeMarkersInfoInfo=function(){var e=this,t=new Array;return this.taskAreaHelper.stripLinesElements.forEach((function(n){return t.push(e.createTimeMarkerInfo(n,!0))})),this.taskAreaHelper.noWorkingIntervalsElements.forEach((function(n){return t.push(e.createTimeMarkerInfo(n,!1))})),t},e.prototype.createTimeMarkerInfo=function(e,t){var n=getComputedStyle(e),o=i.DomUtils.pxToInt(n.left)+this.getObjectsLeftOffset(),s=i.DomUtils.pxToInt(n.top)+this.dataObjectTopDelta,a=i.DomUtils.pxToInt(n.width),l=i.DomUtils.pxToInt(n.height);return new b.PdfTimeMarkerInfo(new r.Point(o,s),new m.Size(a,l),new u.Color(n.backgroundColor),new u.Color(n.borderLeftColor),t)},e.prototype.getMargin=function(e){var t=new p.Margin(0);if(e){var n=e.margin;n||(n+=e.marginTop||\"0\",n+=\" \"+e.marginRight||0,n+=\" \"+e.marginBottom||0,n+=\" \"+e.marginLeft||0),t.assign(n)}return t},e._defaultPageMargin=10,e._autoFormatWidthAddStock=1,e}();t.GanttExportCalculator=_},4991:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfDependencyLineInfo=void 0;var r=n(8900),i=n(405),o=function(){function e(){}return e.prototype.assign=function(e){var t;this._copyPoints(e.points),this.arrowInfo=e.arrowInfo,null!==(t=this.fillColor)&&void 0!==t||(this.fillColor=new i.Color),this.fillColor.assign(e.fillColor)},e.prototype._copyPoints=function(e){var t=this;this.points=new Array,null==e||e.forEach((function(e){return t.points.push(new r.Point(e.x,e.y))}))},e}();t.PdfDependencyLineInfo=o},266:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfObjectDrawer=void 0;var r=n(2449),i=n(817),o=n(3917),s=function(){function e(e,t){this._FONT_ROW_RATIO=1.15,this._info=t,this._pdfDoc=e}return e.prototype.draw=function(){this.drawTimeMarkers(),this.drawDependencies(),this.drawTasks(),this.drawResources()},e.prototype.drawTasks=function(){var e,t=this,n=null===(e=this._info)||void 0===e?void 0:e.tasks;n&&n.forEach((function(e){return t.drawTask(e)}))},e.prototype.drawTask=function(e){var t=this._pdfDoc;t.setFillColor.apply(t,e.taskColor.getRBGColor()),t.setDrawColor.apply(t,e.taskColor.getRBGColor()),e.isMilestone?this.drawMilestone(e):this.drawRegularTask(e)},e.prototype.drawMilestone=function(e){var t=this._pdfDoc,n=e.sidePoints[0].x,r=e.sidePoints[0].y,i=e.sidePoints[1].x,o=e.sidePoints[1].y,s=e.sidePoints[2].x,a=e.sidePoints[2].y,l=e.sidePoints[3].x,c=e.sidePoints[3].y;t.triangle(n,r,i,o,s,a,\"FD\"),t.triangle(n,r,l,c,s,a,\"FD\")},e.prototype.drawRegularTask=function(e){var t=this._pdfDoc;t.rect(e.left,e.top,e.width,e.height,\"FD\"),e.isParent&&this.drawParentBorder(e),e.progressWidth&&(t.setFillColor.apply(t,e.progressColor.getRBGColor()),t.rect(e.left,e.top,e.progressWidth,e.height,\"F\")),e.text&&this.printTaskTitle(e)},e.prototype.drawParentBorder=function(e){var t=this._pdfDoc,n=e.sidePoints[0].x,r=e.sidePoints[1].y,i=e.sidePoints[3].y,o=e.sidePoints[2].x,s=e.sidePoints[3].y-e.sidePoints[1].y,a=e.progressWidth>s?e.progressColor.getRBGColor():e.taskColor.getRBGColor();t.setFillColor.apply(t,a),t.triangle(n,r,n,i,n+s,r,\"FD\"),t.setFillColor.apply(t,e.taskColor.getRBGColor()),t.triangle(o,r,o,i,o-s,r,\"FD\")},e.prototype.printTaskTitle=function(e){var t,n=this._pdfDoc,s=e.textStyle,a=s&&s.textColor.getRBGColor(),l=s&&s.fontSize;n.setTextColor.apply(n,a),n.setFontSize(l);var c=e.top+l*this._FONT_ROW_RATIO/n.internal.scaleFactor;e.isParent&&(c-=o.PdfTaskInfo.defaultParentHeightCorrection);var u=s&&s.cellPadding.left||0,d=s&&s.cellPadding.right||0;if(e.textPosition===r.TaskTitlePosition.Inside){var p=e.width-u-d;t=e.left+u,n.text(i.EllipsisHelper.limitPdfTextWithEllipsis(e.text,n,p),t,c)}else t=e.left-d,n.text(e.text,t,c,{align:\"right\"})},e.prototype.drawDependencies=function(){var e,t=this,n=null===(e=this._info)||void 0===e?void 0:e.dependencies;n&&n.forEach((function(e){return t.drawDependencyLine(e)}))},e.prototype.drawDependencyLine=function(e){var t,n;if((t=this._pdfDoc).setFillColor.apply(t,e.fillColor.getRBGColor()),(n=this._pdfDoc).setDrawColor.apply(n,e.fillColor.getRBGColor()),e.arrowInfo)this.drawArrow(e);else{var r=e.points;this._pdfDoc.line(r[0].x,r[0].y,r[1].x,r[1].y)}},e.prototype.isValidLine=function(e){var t=e.points;return!(isNaN(t[0].x)||isNaN(t[0].y)||isNaN(t[1].x)||isNaN(t[1].y))},e.prototype.drawArrow=function(e){var t=e.arrowInfo.width||0,n=e.points[0].x,i=e.points[0].y;switch(e.arrowInfo.position){case r.Position.Left:this._pdfDoc.triangle(n,i+t,n+t,i,n+t,i+2*t,\"FD\");break;case r.Position.Right:this._pdfDoc.triangle(n,i,n,i+2*t,n+t,i+t,\"FD\");break;case r.Position.Top:this._pdfDoc.triangle(n,i+t,n+t,i,n+2*t,i+t,\"FD\");break;case r.Position.Bottom:this._pdfDoc.triangle(n,i,n+t,i+t,n+2*t,i,\"FD\")}},e.prototype.drawResources=function(){var e,t=this,n=this._pdfDoc,r=null===(e=this._info)||void 0===e?void 0:e.resources;r&&r.forEach((function(e){var r,i,o;n.setFontSize(null!==(r=e.style.fontSize)&&void 0!==r?r:11);var s=e.y+e.style.fontSize*t._FONT_ROW_RATIO/n.internal.scaleFactor,a=null!==(i=e.style.cellPadding.left)&&void 0!==i?i:0,l=null!==(o=e.style.cellPadding.right)&&void 0!==o?o:1,c=Math.max(e.style.cellWidth.getValue(),a+n.getTextWidth(e.text)+l);n.setFillColor.apply(n,e.style.fillColor.getRBGColor()),n.rect(e.x,e.y,c,e.style.minCellHeight,\"F\"),n.setTextColor.apply(n,e.style.textColor.getRBGColor()),n.text(e.text,e.x+a,s)}))},e.prototype.drawTimeMarkers=function(){var e,t=this,n=null===(e=this._info)||void 0===e?void 0:e.timeMarkers;null==n||n.forEach((function(e){return t.drawTimeMarker(e)}))},e.prototype.drawTimeMarker=function(e){var t,n,r=this._pdfDoc,i=e.size.width>1,o=e.start.x,s=e.start.y,a=e.size.width,l=e.size.height,c=e.isStripLine;i&&(r.setFillColor.apply(r,e.color.getRBGColor()),r.saveGraphicsState(),r.setGState(new r.GState({opacity:null!==(n=e.color.opacity)&&void 0!==n?n:1})),r.rect(o,s,a,l,\"F\"),r.restoreGraphicsState()),c&&(this._pdfDoc.setLineDashPattern([3]),(t=this._pdfDoc).setDrawColor.apply(t,e.lineColor.getRBGColor()),i&&this._pdfDoc.line(o+a,s,o+a,s+l,\"S\"),this._pdfDoc.line(o,s,o,s+l,\"S\"),this._pdfDoc.setLineDashPattern())},e}();t.PdfObjectDrawer=s},3917:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfTaskInfo=void 0;var r=n(8900),i=n(405),o=n(6995),s=function(){function e(){}return Object.defineProperty(e.prototype,\"left\",{get:function(){var e;return(null===(e=this.sidePoints)||void 0===e?void 0:e.length)>3?this.sidePoints[0].x:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"top\",{get:function(){var e;return(null===(e=this.sidePoints)||void 0===e?void 0:e.length)>3?this.sidePoints[1].y:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"right\",{get:function(){var e;return(null===(e=this.sidePoints)||void 0===e?void 0:e.length)>3?this.sidePoints[2].x:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"bottom\",{get:function(){var e;return(null===(e=this.sidePoints)||void 0===e?void 0:e.length)>3?this.sidePoints[3].y:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"width\",{get:function(){return this.right-this.left},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"height\",{get:function(){var t=this.bottom-this.top;return this.isParent&&(t-=e.defaultParentHeightCorrection),t},enumerable:!1,configurable:!0}),e.prototype.assign=function(e){var t,n,r;this.isMilestone=e.isMilestone,this._copyPoints(e.sidePoints),this.progressWidth=e.progressWidth,this.isSmallTask=e.isSmallTask,this.text=e.text,this.textPosition=e.textPosition,null!==(t=this.progressColor)&&void 0!==t||(this.progressColor=new i.Color),this.progressColor.assign(e.progressColor),null!==(n=this.taskColor)&&void 0!==n||(this.taskColor=new i.Color),this.taskColor.assign(e.taskColor),null!==(r=this.textStyle)&&void 0!==r||(this.textStyle=new o.StyleDef),this.textStyle.assign(e.textStyle),this.isParent=e.isParent},e.prototype._copyPoints=function(e){var t=this;this.sidePoints=new Array,null==e||e.forEach((function(e){return t.sidePoints.push(new r.Point(e.x,e.y))}))},e.defaultParentHeightCorrection=4,e}();t.PdfTaskInfo=s},2485:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfTaskResourcesInfo=void 0;var r=n(2491),i=n(6995),o=function(){function e(e,t,n,o){e&&(this.text=e),t&&(this.style=new i.StyleDef(t)),(0,r.isDefined)(n)&&(this.x=n),(0,r.isDefined)(o)&&(this.y=o)}return e.prototype.assign=function(e){this.text=e.text,this.style=new i.StyleDef(e.style),this.x=e.x,this.y=e.y},e}();t.PdfTaskResourcesInfo=o},7802:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfTimeMarkerInfo=void 0;var r=n(8900),i=n(6353),o=n(2491),s=n(405),a=function(){function e(e,t,n,a,l){this.lineColor=new s.Color,this.color=new s.Color,e&&(this.start=new r.Point(e.x,e.y)),t&&(this.size=new i.Size(t.width,t.height)),n&&this.color.assign(n),a&&this.lineColor.assign(a),(0,o.isDefined)(l)&&(this.isStripLine=l)}return e.prototype.assign=function(e){var t,n,o,s;e&&(this.start=new r.Point(null===(t=e.start)||void 0===t?void 0:t.x,null===(n=e.start)||void 0===n?void 0:n.y),this.size=new i.Size(null===(o=e.size)||void 0===o?void 0:o.width,null===(s=e.size)||void 0===s?void 0:s.height),this.isStripLine=e.isStripLine,this.color.assign(e.color),this.lineColor.assign(e.lineColor))},e}();t.PdfTimeMarkerInfo=a},2978:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfGanttExporter=void 0;var r=n(4970),i=function(){function e(e){if(!e.settings.pdfDoc&&!e.settings.docCreateMethod)throw new Error(\"Cannot convert gantt to pdf without document instance!\");this._info=e}return e.prototype.export=function(){var e,t,n=this.pdfDoc;this.applyCustomFont();for(var i=this._info,o=new r.PdfGanttPageDrawer(n,i.settings),s=i.getPages(n),a=s.length,l=0;l<a;l++){l>0&&n.addPage(this.getDocumentFormat(),this.getOrientation());var c=s[l];o.drawPage(c)}return(null===(e=this.props)||void 0===e?void 0:e.fileName)&&n.save(null===(t=this.props)||void 0===t?void 0:t.fileName),n},Object.defineProperty(e.prototype,\"pdfDoc\",{get:function(){var e,t;return null!==(e=this._pdfDoc)&&void 0!==e||(this._pdfDoc=null!==(t=this._info.settings.pdfDoc)&&void 0!==t?t:this.createDoc()),this._pdfDoc},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"props\",{get:function(){return this._info.settings},enumerable:!1,configurable:!0}),e.prototype.createDoc=function(){var e=this.getJsPDFProps();return this._info.settings.docCreateMethod(e)},e.prototype.getJsPDFProps=function(){var e={putOnlyUsedFonts:!0,unit:\"px\",hotfixes:[\"px_scaling\"]};return e.orientation=this.getOrientation(),e.format=this.getDocumentFormat(),e},e.prototype.getOrientation=function(){var e;return(null===(e=this.props)||void 0===e?void 0:e.landscape)?\"l\":\"p\"},e.prototype.getDocumentFormat=function(){var e,t,n,r;return(null===(e=this.props)||void 0===e?void 0:e.format)||(null===(t=this.props)||void 0===t?void 0:t.pageSize)?(null===(n=this.props)||void 0===n?void 0:n.pageSize)?[this.props.pageSize.height,this.props.pageSize.width]:null===(r=this.props)||void 0===r?void 0:r.format:\"a4\"},e.prototype.applyCustomFont=function(){this.props.font&&this.props.font.applyToDoc(this.pdfDoc)},e}();t.PdfGanttExporter=i},8935:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfPageTableNames=void 0;var n=function(){function e(){}return e.treeListHeader=\"treeListHeader\",e.treeListMain=\"treeListMain\",e.chartMain=\"chartMain\",e.chartScaleTop=\"chartScaleTop\",e.chartScaleBottom=\"chartScaleBottom\",e}();t.PdfPageTableNames=n},4970:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfGanttPageDrawer=void 0;var r=n(8900),i=n(266),o=n(8935),s=n(9895),a=n(5510),l=function(){function e(e,t){this._pdfDoc=e,this._props=t}return e.prototype.drawPage=function(e){var t=this._pdfDoc,n=new a.PdfGanttTableDrawer(t);this.needDrawChart()&&(n.drawTable(e.tables[o.PdfPageTableNames.chartMain]),new i.PdfObjectDrawer(t,e.objects).draw(),n.drawTable(e.tables[o.PdfPageTableNames.chartScaleTop]),n.drawTable(e.tables[o.PdfPageTableNames.chartScaleBottom]));return this.needDrawTreeList()&&(n.drawTable(e.tables[o.PdfPageTableNames.treeListMain]),n.drawTable(e.tables[o.PdfPageTableNames.treeListHeader])),this.drawMargins(e),t},e.prototype.needDrawChart=function(){return!this._props||this._props.exportMode===s.ExportMode.all||this._props.exportMode===s.ExportMode.chart},e.prototype.needDrawTreeList=function(){return!this._props||this._props.exportMode===s.ExportMode.all||this._props.exportMode===s.ExportMode.treeList},e.prototype.getContentRightBottom=function(e){var t=new r.Point(0,0);for(var n in e.tables)if(Object.prototype.hasOwnProperty.call(e.tables,n)){var i=e.tables[n];t.x=Math.max(t.x,i.position.x+i.size.width),t.y=Math.max(t.y,i.position.y+i.size.height)}return t},e.prototype.drawMargins=function(e){var t=this._pdfDoc,n=this._props,r=t.getPageWidth(),i=t.getPageHeight(),o=this.getContentRightBottom(e);t.setFillColor(255,255,255),t.rect(0,0,n.margins.left,i,\"F\"),t.rect(0,0,r,n.margins.top,\"F\"),t.rect(o.x,0,r,i,\"F\"),t.rect(0,o.y,r,i,\"F\")},e}();t.PdfGanttPageDrawer=l},4429:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PageNavigation=void 0;var n=function(){function e(e,t,n,r,i,o){this._correctedBottoms=new Array,this.vIndex=0,this.hIndex=0,this.pageX=0,this.pageY=0,this._top=null==e?void 0:e.top,this._left=null==e?void 0:e.left,this._bottom=null==e?void 0:e.bottom,this._right=null==e?void 0:e.right,this.vIndex=null!=t?t:this.vIndex,this.hIndex=null!=n?n:this.hIndex,this.pageX=null!=r?r:this.pageX,this.pageY=null!=i?i:this.pageY,o&&(this._correctedBottoms=o)}return e.prototype.offset=function(e,t){e&&this.offsetOneD(e),t&&this.offsetOneD(t,!0)},e.prototype.offsetOneD=function(e,t){for(var n=e,r=this.getSpaceToBorder(t);r<n;)t?(this.vIndex++,this.pageY=this._top):(this.hIndex++,this.pageX=this._left),n-=r,r=this.getSpaceToBorder(t);t?this.pageY+=n:this.pageX+=n},Object.defineProperty(e.prototype,\"defaultPageHeight\",{get:function(){return this.getCurrentPageBottom()-this._top},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"defaultPageWidth\",{get:function(){return this._right-this._left},enumerable:!1,configurable:!0}),e.prototype.getPageEnd=function(e){return e?this.getCurrentPageBottom():this._right},e.prototype.getPageStart=function(e){return e?this._top:this._left},e.prototype.getPageSize=function(e,t){return e?this.getPageHeight(t):this.defaultPageWidth},e.prototype.getSpaceToBorder=function(e){return e?this.getCurrentPageBottom()-this.pageY:this._right-this.pageX},e.prototype.getPageGlobalOffset=function(e,t){if(!t)return e*this.defaultPageWidth;for(var n=0,r=1;r<=e;r++)n+=this.getPageHeight(r-1);return n},e.prototype.assign=function(e){this._top=e._top,this._left=e._left,this._bottom=e._bottom,this._right=e._right,this._correctedBottoms=e._correctedBottoms,this.vIndex=e.vIndex,this.hIndex=e.hIndex,this.pageX=e.pageX,this.pageY=e.pageY},e.createFrom=function(t){var n=new e;return n.assign(t),n},e.prototype.clone=function(){var t=new e;return t.assign(this),t},e.prototype.getCurrentPageBottom=function(){return this.getPageBottom(this.vIndex)},e.prototype.getPageBottom=function(e){var t;return null!==(t=this._correctedBottoms[e])&&void 0!==t?t:this._bottom},e.prototype.getPageHeight=function(e){return this.getPageBottom(e)-this._top},e}();t.PageNavigation=n},3424:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfGanttPaginator=void 0;var r=n(8900),i=n(6353),o=n(4991),s=n(3917),a=n(2485),l=n(7802),c=n(8935),u=n(6032),d=n(4429),p=function(e,t,n,r,i){this.pageVerIndex=t,this.pageHorIndex=e,this.cellRowIndexOnPage=n,this.cellColIndexOnPage=r,this.cell=i},h=function(){function e(e,t,n,r){this.pageIndex=e,this.globalCellIndex=t,this.pageOffset=n,this.cutSize=r}return Object.defineProperty(e.prototype,\"isCutted\",{get:function(){return this.cutSize>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cellIndexOnPage\",{get:function(){return this.globalCellIndex-this.pageOffset},enumerable:!1,configurable:!0}),e}(),f=function(){function e(e,t,n){this._pdfDoc=e,this._props=t,this._globalInfo=n}return e.prototype.getPages=function(){return delete this._pages,this._paginateTables(),this._paginateObjects(),this.pageMatrixToArray},e.prototype._paginateTables=function(){this._paginateTable(c.PdfPageTableNames.treeListHeader),this._paginateTable(c.PdfPageTableNames.treeListMain),this._paginateTable(c.PdfPageTableNames.chartScaleBottom),this._paginateTable(c.PdfPageTableNames.chartScaleTop),this._paginateTable(c.PdfPageTableNames.chartMain)},e.prototype._paginateObjects=function(){this._paginateTasks(),this._paginateDependencies(),this._paginateResources(),this._paginateTimeMarkers()},Object.defineProperty(e.prototype,\"pageMatrixToArray\",{get:function(){var e,t=new Array;return null===(e=this._pages)||void 0===e||e.forEach((function(e){t=t.concat(e)})),t},enumerable:!1,configurable:!0}),e.prototype._paginateTasks=function(){var e,t,n=this;null===(t=null===(e=this._globalInfo.objects)||void 0===e?void 0:e.tasks)||void 0===t||t.forEach((function(e){return n._paginateTask(e)}))},e.prototype._paginateDependencies=function(){var e,t,n=this;null===(t=null===(e=this._globalInfo.objects)||void 0===e?void 0:e.dependencies)||void 0===t||t.forEach((function(e){e.arrowInfo?n._paginateArrow(e):n._paginateDependencyLine(e)}))},e.prototype._paginateResources=function(){var e,t,n=this;null===(t=null===(e=this._globalInfo.objects)||void 0===e?void 0:e.resources)||void 0===t||t.forEach((function(e){return n._paginateResource(e)}))},e.prototype._paginateTimeMarkers=function(){var e,t,n=this;null===(t=null===(e=this._globalInfo.objects)||void 0===e?void 0:e.timeMarkers)||void 0===t||t.forEach((function(e){return n._paginateTimeMarker(e)}))},e.prototype._paginateTable=function(e){var t,n=null===(t=this._globalInfo)||void 0===t?void 0:t.tables[e];if(n){for(var r=this._getTableStart(n),i=this._preparePagesNavigationMatrixForTable(r,n),o=i.length,s=0;s<o;s++)for(var a=i[s].length,l=0;l<a;l++){var c=i[s][l],u=this._getPage(c.pageVerIndex,c.pageHorIndex,!0),d=c.pageHorIndex===r.hIndex?r.pageX:this.pageLeft,p=c.pageVerIndex===r.vIndex?r.pageY:this.pageTop;this._setTablePositionOnPage(u,e,d,p),this._addCellToPage(u,e,c)}this._updateTableSizeOnPages(e)}},e.prototype._paginateTask=function(e){for(var t=this._getTaskPagination(e),n=this._getTaskPagination(e,!0),r=0;r<n.length;r++)for(var i=0;i<t.length;i++){var o=new s.PdfTaskInfo;o.assign(e),this._offsetPoints(o.sidePoints,t[i].offset,n[r].offset),this._addTaskToPage(n[r].pageIndex,t[i].pageIndex,o)}},e.prototype._paginateArrow=function(e){var t=this._getPointPageInfo(e.points[0]),n=new o.PdfDependencyLineInfo;n.assign(e),this._offsetPoints(n.points,t.offsetX,t.offsetY),this._addDependencyToPage(t.pageVerIndex,t.pageHorIndex,n)},e.prototype._paginateDependencyLine=function(e){for(var t=this._getDependencyLinePagination(e),n=this._getDependencyLinePagination(e,!0),r=0;r<n.length;r++)for(var i=0;i<t.length;i++){var s=new o.PdfDependencyLineInfo;s.assign(e),this._offsetPoints(s.points,t[i].offset,n[r].offset),this._addDependencyToPage(n[r].pageIndex,t[i].pageIndex,s)}},e.prototype._paginateResource=function(e){var t=this._getPointPageInfo(new r.Point(e.x,e.y)),n=new a.PdfTaskResourcesInfo;n.assign(e),n.x-=t.offsetX,n.y-=t.offsetY,this._addResourceToPage(t.pageVerIndex,t.pageHorIndex,n)},e.prototype._paginateTimeMarker=function(e){for(var t=this._getTimeMarkerPagination(e),n=this._getTimeMarkerPagination(e,!0),r=0;r<n.length;r++)for(var i=0;i<t.length;i++){var o=new l.PdfTimeMarkerInfo;o.assign(e),o.start.x-=t[i].offset,o.start.y-=n[r].offset,this._addTimeMarkerToPage(n[r].pageIndex,t[i].pageIndex,o)}},e.prototype._getTableStart=function(e){var t=new d.PageNavigation(this.pageBorders,0,0,0,0,this.correctedPageBottoms);return t.offset(e.position.x,e.position.y),t},e.prototype._getPage=function(e,t,n){return n&&this._extendPageMatrixIfRequired(e,t),this._pages[e]&&this._pages[e][t]},e.prototype._getTableOrCreate=function(e,t){var n,r;return null!==(n=(r=e.tables)[t])&&void 0!==n||(r[t]=this._createTable(t)),e.tables[t]},e.prototype._preparePagesNavigationMatrixForTable=function(e,t){for(var n=new Array,r=this._getTableNavigationVector(e,t,!0),i=r.length,o=0;o<i;o++){for(var s=new Array,a=r[o],l=this._getTableNavigationVector(e,t,!1,a.globalCellIndex),u=l.length,d=0;d<u;d++){var h=l[d],f=t.name===c.PdfPageTableNames.chartScaleTop,g=this._prepareCuttedCell(t.cells[a.globalCellIndex][h.globalCellIndex],h,a,f),y=new p(h.pageIndex,a.pageIndex,a.cellIndexOnPage,h.cellIndexOnPage,g);s.push(y)}n.push(s)}return n},e.prototype._setTablePositionOnPage=function(e,t,n,i){this._getTableOrCreate(e,t).position=new r.Point(n,i)},e.prototype._extendPageMatrixIfRequired=function(e,t){var n;null!==(n=this._pages)&&void 0!==n||(this._pages=new Array);for(var r=this._pages.length;r<=e;r++)this._pages.push(new Array);var i=this._pages[e];for(r=i.length;r<=t;r++)i.push(this._createPage())},e.prototype._getTableAndExtendIfRequired=function(e,t,n,r){for(var i=this._getTableOrCreate(e,t),o=i.cells,s=o.length;s<=n;s++)o.push(new Array);var a=o[n];for(s=a.length;s<=r;s++)a.push(new u.CellDef);return i},e.prototype._createPage=function(){return{objects:{tasks:null,dependencies:null,resources:null,timeMarkers:null},tables:{}}},e.prototype._createTable=function(e){var t,n=null===(t=this._globalInfo)||void 0===t?void 0:t.tables[e];return{name:e,size:null,position:null,style:n.style,baseCellSize:n.baseCellSize,cells:new Array,hideRowLines:n.hideRowLines}},e.prototype._addCellToPage=function(e,t,n){var r=n.cellRowIndexOnPage,i=n.cellColIndexOnPage;this._getTableAndExtendIfRequired(e,t,r,i).cells[r][i].assign(n.cell)},e.prototype._updateTableSizeOnPages=function(e){for(var t,n=null===(t=this._pages[0])||void 0===t?void 0:t.length,r=this._pages.length,i=0;i<r;i++)for(var o=0;o<n;o++)this._updateTableSizeOnPage(this._pages[i][o],e)},e.prototype._updateTableSizeOnPage=function(e,t){var n,r=this,o=null==e?void 0:e.tables[t];if(o){var s=o.cells.length*o.baseCellSize.height||0,a=(null===(n=o.cells[0])||void 0===n?void 0:n.reduce((function(e,t,n){return e+r._getCellWidth(o,0,n)}),0))||0;o.size=new i.Size(a,s)}},e.prototype._getTableNavigationVector=function(e,t,n,r){var i,o;void 0===n&&(n=!1),void 0===r&&(r=0);for(var s=new Array,a=d.PageNavigation.createFrom(e),l=n?null===(i=t.cells)||void 0===i?void 0:i.length:null===(o=t.cells[r])||void 0===o?void 0:o.length,c=0;c<l;c++){var u=n?t.baseCellSize.height:this._getCellWidth(t,r,c);this._placeCell(s,a,c,u,n)}return s},e.prototype._placeCell=function(e,t,n,r,i){var o,s,a=i?t.vIndex:t.hIndex,l=null!==(s=null===(o=e[e.length-1])||void 0===o?void 0:o.pageOffset)&&void 0!==s?s:n,c=r,u=t.getSpaceToBorder(i);t.offsetOneD(r,i);var d=i?t.vIndex:t.hIndex;if(!i)for(var p=a;p<d;p++){var f=new h(p,n,l,u);l=n,e.push(f),c-=u,u=t.getPageSize(i)}d!==a&&(l=n);var g=new h(d,n,l,c!==r?c:null);e.push(g)},e.prototype._prepareCuttedCell=function(e,t,n,r){var i=new u.CellDef(e);if(t.isCutted){var o=t.cutSize;if(!r){var s=i.content,a=e.styles,l=o-(a&&a.cellPadding.left||0)-(a&&a.cellPadding.right||0),c=this._pdfDoc.splitTextToSize(s,l);e.content=s.replace(c[0],\"\"),i.content=c[0]}i.styles.cellWidth.assign(o)}return n.isCutted&&(i.styles.minCellHeight=n.cutSize),i},e.prototype._getCellWidth=function(e,t,n){var r,i=e.cells[t][n],o=i.styles,s=o.cellWidth.getValue(),a=null!=s?s:o.minCellWidth;return null!=a?a:e.baseCellSize.width*(null!==(r=i.colSpan)&&void 0!==r?r:1)},e.prototype._getTaskPagination=function(e,t){var n=t?e.height:e.width,r=t?e.top:e.left;return this._getLinePagination(r,n,t)},e.prototype._getDependencyLinePagination=function(e,t){var n=e.points[0],r=e.points[1],i=t?r.y-n.y:r.x-n.x,o=t?n.y:n.x;return this._getLinePagination(o,i,t)},e.prototype._getTimeMarkerPagination=function(e,t){var n=t?e.size.height:e.size.width,r=t?e.start.y:e.start.x;return this._getLinePagination(r,n,t)},e.prototype._getLinePagination=function(e,t,n){var r=new Array,i=this.pageNavigator.clone();i.offsetOneD(e,n);var o=n?i.vIndex:i.hIndex;i.offsetOneD(t,n);for(var s=n?i.vIndex:i.hIndex,a=o;a<=s;a++)r.push({offset:i.getPageGlobalOffset(a,n),pageIndex:a});return r},e.prototype._getPointPageInfo=function(e){var t=this.pageNavigator.clone();return t.offset(e.x,e.y),{offsetX:t.getPageGlobalOffset(t.hIndex),offsetY:t.getPageGlobalOffset(t.vIndex,!0),pageHorIndex:t.hIndex,pageVerIndex:t.vIndex}},Object.defineProperty(e.prototype,\"pageWidth\",{get:function(){var e;return null===(e=this._pdfDoc)||void 0===e?void 0:e.getPageWidth()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageHeight\",{get:function(){var e;return null===(e=this._pdfDoc)||void 0===e?void 0:e.getPageHeight()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageLeftMargin\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.margins.left},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageTopMargin\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.margins.top},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageRightMargin\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.margins.right},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageBottomMargin\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.margins.bottom},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageLeft\",{get:function(){var e;return null!==(e=this._pageLeft)&&void 0!==e||(this._pageLeft=this.pageLeftMargin),this._pageLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageRight\",{get:function(){var e;return null!==(e=this._pageRight)&&void 0!==e||(this._pageRight=this.pageWidth-this.pageRightMargin),this._pageRight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageTop\",{get:function(){var e;return null!==(e=this._pageTop)&&void 0!==e||(this._pageTop=this.pageTopMargin),this._pageTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageBottom\",{get:function(){var e;return null!==(e=this._pageBottom)&&void 0!==e||(this._pageBottom=this.pageHeight-this.pageBottomMargin),this._pageBottom},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageBorders\",{get:function(){return{left:this.pageLeft,top:this.pageTop,bottom:this.pageBottom,right:this.pageRight}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"correctedPageBottoms\",{get:function(){var e;return null!==(e=this._correctedPageBottoms)&&void 0!==e||(this._correctedPageBottoms=this._getCorrectedPagesBottom()),this._correctedPageBottoms},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pageNavigator\",{get:function(){var e;return null!==(e=this._pageNavigator)&&void 0!==e||(this._pageNavigator=new d.PageNavigation(this.pageBorders,0,0,0,0,this.correctedPageBottoms)),this._pageNavigator},enumerable:!1,configurable:!0}),e.prototype._getCorrectedPagesBottom=function(){var e,t,n,r,i=new Array,o=null===(e=this._globalInfo)||void 0===e?void 0:e.tables,s=null!==(t=o[c.PdfPageTableNames.treeListMain])&&void 0!==t?t:o[c.PdfPageTableNames.chartMain],a=new d.PageNavigation(this.pageBorders);a.pageY=s.position.y;for(var l=0;l<s.cells.length;l++){var u=null!==(r=null===(n=s.cells[l][0].styles)||void 0===n?void 0:n.minCellHeight)&&void 0!==r?r:s.baseCellSize.height,p=a.vIndex,h=a.pageY;a.offsetOneD(u,!0),p!==a.vIndex&&(i.push(h),a.pageY=a.getPageStart(!0)+u)}return i},e.prototype._addTaskToPage=function(e,t,n){var r,i,o=this._getPage(e,t);o&&(null!==(r=(i=o.objects).tasks)&&void 0!==r||(i.tasks=new Array),o.objects.tasks.push(n))},e.prototype._addDependencyToPage=function(e,t,n){var r,i,o=this._getPage(e,t);o&&(null!==(r=(i=o.objects).dependencies)&&void 0!==r||(i.dependencies=new Array),o.objects.dependencies.push(n))},e.prototype._addResourceToPage=function(e,t,n){var r,i,o=this._getPage(e,t);o&&(null!==(r=(i=o.objects).resources)&&void 0!==r||(i.resources=new Array),o.objects.resources.push(n))},e.prototype._addTimeMarkerToPage=function(e,t,n){var r,i,o=this._getPage(e,t);o&&(null!==(r=(i=o.objects).timeMarkers)&&void 0!==r||(i.timeMarkers=new Array),o.objects.timeMarkers.push(n))},e.prototype._offsetPoints=function(e,t,n){e.forEach((function(e){e.x-=t,e.y-=n}))},e}();t.PdfGanttPaginator=f},5763:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ScalingHelper=void 0;var r=n(8935),i=function(){function e(e){this._doc=e}return Object.defineProperty(e.prototype,\"_docScaleFactor\",{get:function(){var e,t;return null===(t=null===(e=this._doc)||void 0===e?void 0:e.internal)||void 0===t?void 0:t.scaleFactor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"_correctScaleNeeded\",{get:function(){return this._docScaleFactor&&Math.abs(this._docScaleFactor-e._defaultScaleFactor)>Number.EPSILON},enumerable:!1,configurable:!0}),e.prototype.getScaledSize=function(t){return t*e._defaultScaleFactor/this._docScaleFactor},e.prototype.scalePageMargins=function(e){var t,n,r,i;this._correctScaleNeeded&&((null===(t=null==e?void 0:e.margins)||void 0===t?void 0:t.left)&&(e.margins.left=this.getScaledSize(e.margins.left)),(null===(n=null==e?void 0:e.margins)||void 0===n?void 0:n.right)&&(e.margins.right=this.getScaledSize(e.margins.right)),(null===(r=null==e?void 0:e.margins)||void 0===r?void 0:r.top)&&(e.margins.top=this.getScaledSize(e.margins.top)),(null===(i=null==e?void 0:e.margins)||void 0===i?void 0:i.bottom)&&(e.margins.bottom=this.getScaledSize(e.margins.bottom)))},e.prototype.scaleSizes=function(e){this._correctScaleNeeded&&(this.scaleTables(e),this.scaleObjects(e.objects))},e.prototype.scaleTables=function(e){(null==e?void 0:e.tables)&&(this.scaleTable(e.tables[r.PdfPageTableNames.treeListHeader]),this.scaleTable(e.tables[r.PdfPageTableNames.treeListMain]),this.scaleTable(e.tables[r.PdfPageTableNames.chartMain]),this.scaleTable(e.tables[r.PdfPageTableNames.chartScaleTop]),this.scaleTable(e.tables[r.PdfPageTableNames.chartScaleBottom]))},e.prototype.scaleTable=function(e){var t,n,r,i,o,s;if(e&&((null===(t=e.size)||void 0===t?void 0:t.width)&&(e.size.width=this.getScaledSize(e.size.width)),(null===(n=e.size)||void 0===n?void 0:n.height)&&(e.size.height=this.getScaledSize(e.size.height)),(null===(r=e.position)||void 0===r?void 0:r.x)&&(e.position.x=this.getScaledSize(e.position.x)),(null===(i=e.position)||void 0===i?void 0:i.y)&&(e.position.y=this.getScaledSize(e.position.y)),(null===(o=e.baseCellSize)||void 0===o?void 0:o.width)&&(e.baseCellSize.width=this.getScaledSize(e.baseCellSize.width)),(null===(s=e.baseCellSize)||void 0===s?void 0:s.height)&&(e.baseCellSize.height=this.getScaledSize(e.baseCellSize.height)),e.cells))for(var a=0;a<e.cells.length;a++)for(var l=e.cells[a],c=0;c<l.length;c++){var u=l[c];this.scaleStyle(u.styles)}},e.prototype.scaleObjects=function(e){this.scaleTasks(null==e?void 0:e.tasks),this.scaleDependencies(null==e?void 0:e.dependencies),this.scaleResources(null==e?void 0:e.resources),this.scaleTimeMarkers(null==e?void 0:e.timeMarkers)},e.prototype.scaleTasks=function(e){var t=this;null==e||e.forEach((function(e){t.scalePoints(e.sidePoints),e.progressWidth=t.getScaledSize(e.progressWidth),t.scaleStyle(e.textStyle)}))},e.prototype.scaleDependencies=function(e){var t=this;null==e||e.forEach((function(e){var n;t.scalePoints(e.points),(null===(n=e.arrowInfo)||void 0===n?void 0:n.width)&&(e.arrowInfo.width=t.getScaledSize(e.arrowInfo.width))}))},e.prototype.scaleResources=function(e){var t=this;null==e||e.forEach((function(e){e.x=t.getScaledSize(e.x),e.y=t.getScaledSize(e.y),t.scaleStyle(e.style)}))},e.prototype.scaleTimeMarkers=function(e){var t=this;null==e||e.forEach((function(e){e.start.x=t.getScaledSize(e.start.x),e.start.y=t.getScaledSize(e.start.y),e.size.width=t.getScaledSize(e.size.width),e.size.height=t.getScaledSize(e.size.height)}))},e.prototype.scaleStyle=function(e){var t,n,r,i;if(e){var o=e.cellWidth;if(null==o?void 0:o.hasValue()){var s=this.getScaledSize(Number(o.getValue()));o.assign(s)}e.minCellHeight&&(e.minCellHeight=this.getScaledSize(e.minCellHeight)),e.minCellWidth&&(e.minCellWidth=this.getScaledSize(e.minCellWidth)),(null===(t=e.cellPadding)||void 0===t?void 0:t.left)&&(e.cellPadding.left=this.getScaledSize(e.cellPadding.left)),(null===(n=e.cellPadding)||void 0===n?void 0:n.right)&&(e.cellPadding.right=this.getScaledSize(e.cellPadding.right)),(null===(r=e.cellPadding)||void 0===r?void 0:r.top)&&(e.cellPadding.top=this.getScaledSize(e.cellPadding.top)),(null===(i=e.cellPadding)||void 0===i?void 0:i.bottom)&&(e.cellPadding.bottom=this.getScaledSize(e.cellPadding.bottom))}},e.prototype.scalePoints=function(e){var t=this;null==e||e.forEach((function(e){e.x=t.getScaledSize(e.x),e.y=t.getScaledSize(e.y)}))},e._defaultScaleFactor=.75,e}();t.ScalingHelper=i},7223:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfCustomFontSettings=void 0;var r=n(2491),i=function(){function e(e){this.style=\"normal\",e&&this.assign(e)}return e.prototype.assign=function(e){(0,r.isDefined)(e.fontObject)&&(this.fontObject=e.fontObject),(0,r.isDefined)(e.name)&&(this.name=e.name),(0,r.isDefined)(e.style)&&(this.style=e.style),(0,r.isDefined)(e.weight)&&(this.weight=e.weight)},e.prototype.applyToDoc=function(e){try{if(e&&this.fontObject&&this.name){var t=this.name+\"-\"+this.style+\".ttf\";e.addFileToVFS(t,this.fontObject),e.addFont(t,this.name,this.style,this.weight),e.setFont(this.name)}}catch(e){}},e}();t.PdfCustomFontSettings=i},6431:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfDataRange=void 0;var r=n(2491),i=function(){function e(e,t,n,r){var i=!e||e instanceof Date?{startDate:e,endDate:t,startIndex:n,endIndex:r}:e;i&&this.assign(i)}return e.prototype.assign=function(e){(0,r.isDefined)(e.startDate)&&(this.startDate=e.startDate instanceof Date?e.startDate:new Date(e.startDate)),(0,r.isDefined)(e.endDate)&&(this.endDate=e.endDate instanceof Date?e.endDate:new Date(e.endDate)),(0,r.isDefined)(e.startIndex)&&(this.startIndex=parseInt(e.startIndex)),(0,r.isDefined)(e.endIndex)&&(this.endIndex=parseInt(e.endIndex))},e}();t.PdfDataRange=i},9895:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DataExportMode=t.ExportMode=void 0,function(e){e[e.all=0]=\"all\",e[e.treeList=1]=\"treeList\",e[e.chart=2]=\"chart\"}(t.ExportMode||(t.ExportMode={})),function(e){e[e.all=0]=\"all\",e[e.visible=1]=\"visible\"}(t.DataExportMode||(t.DataExportMode={}))},6997:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttPdfExportProps=void 0;var r=n(6353),i=n(2491),o=n(5063),s=n(6431),a=n(7223),l=n(9895),c=function(){function e(e){this.landscape=!1,this.margins=null,this.exportMode=l.ExportMode.all,this.exportDataMode=l.DataExportMode.visible,e&&this.assign(e)}return e.prototype.assign=function(e){if(e){if((0,i.isDefined)(e.pdfDocument)&&(this.pdfDoc=e.pdfDocument),(0,i.isDefined)(e.pdfDoc)&&(this.pdfDoc=e.pdfDoc),this.docCreateMethod=e.docCreateMethod,(0,i.isDefined)(e.fileName)&&(this.fileName=e.fileName),this.landscape=!!e.landscape,(0,i.isDefined)(e.margins)&&(this.margins=new o.Margin(e.margins)),(0,i.isDefined)(e.format)){var t=e.format;if(\"string\"==typeof t)this.format=t;else{var n=parseInt(t.width),c=parseInt(t.height);this.pageSize=new r.Size(n,c)}}else if((0,i.isDefined)(e.pageSize)){var u=e.pageSize;this.pageSize=u instanceof r.Size?u.clone():new r.Size(u.width,u.height)}if((0,i.isDefined)(e.exportMode)&&(this.exportMode=this.getEnumValue(l.ExportMode,e.exportMode)),(0,i.isDefined)(e.dateRange)){var d=e.dateRange;\"number\"==typeof d||\"string\"==typeof d?this.exportDataMode=this.getEnumValue(l.DataExportMode,d):this.dateRange=new s.PdfDataRange(d)}(0,i.isDefined)(e.font)&&(this.font=new a.PdfCustomFontSettings(e.font))}},e.prototype.getEnumValue=function(e,t){if(!(0,i.isDefined)(e[t]))return null;var n=parseInt(t);return isNaN(n)?e[t]:n},e.autoFormatKey=\"auto\",e}();t.GanttPdfExportProps=c},6032:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellDef=void 0;var r=n(2491),i=n(6995),o=function(){function e(e,t,n){this.content=\"\",\"string\"==typeof e?(this.content=e,this.colSpan=t,n&&this.appendStyles(n)):e&&this.assign(e)}return Object.defineProperty(e.prototype,\"styles\",{get:function(){return this._styles||(this._styles=new i.StyleDef),this._styles},enumerable:!1,configurable:!0}),e.prototype.assign=function(e){(0,r.isDefined)(e.content)&&(this.content=e.content),(0,r.isDefined)(e.colSpan)&&(this.colSpan=e.colSpan),e.styles&&this.appendStyles(e.styles)},e.prototype.appendStyles=function(e){e&&this.styles.assign(e)},e.prototype.hasValue=function(){return!0},e.prototype.getValue=function(){var e={};return e.content=this.content,this.colSpan>1&&(e.colSpan=this.colSpan),this._styles&&(e.styles=this._styles.getValue()),e},e}();t.CellDef=o},405:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Color=void 0;var r=n(2491),i=function(){function e(e){this._num=null,this._opacity=1,this._rgb=null,this.assign(e)}return Object.defineProperty(e.prototype,\"opacity\",{get:function(){return this._opacity},enumerable:!1,configurable:!0}),e.prototype.hasValue=function(){return(0,r.isDefined)(this._num)||!!this._rgb||0===this._opacity},e.prototype.getValue=function(){return!(0===this._opacity&&!this._rgb)&&((0,r.isDefined)(this._num)?this._num:this._rgb?this.getRBGColor():null)},e.prototype.assign=function(t){this.reset(),\"string\"==typeof t&&this.assignFromString(t),\"number\"==typeof t&&(this._num=t),t instanceof Array&&this.assignFromRgbArray(t),t instanceof e&&this.assignFromColor(t)},e.prototype.reset=function(){this._opacity=1,this._num=null,this._rgb=null},e.prototype.assignFromString=function(e){e&&(\"transparent\"===e&&(this._opacity=0),0===e.indexOf(\"#\")&&this.assignFromHexString(e),\"rgb\"===e.substr(0,3).toLowerCase()&&this.assignFromRgbString(e))},e.prototype.assignFromHexString=function(e){if(4===e.length&&(e=\"#\"+e[1].repeat(2)+e[2].repeat(2)+e[3].repeat(2)),e.length>6){var t=parseInt(e.substr(1,2),16),n=parseInt(e.substr(3,2),16),r=parseInt(e.substr(5,2),16);this._rgb=[t,n,r]}},e.prototype.assignFromRgbString=function(t){var n=\"rgba\"===t.substr(0,4).toLowerCase(),r=t.toLowerCase().match(n?e.rgbaRegexp:e.rgbRegexp);if(r){var i=parseInt(r[1]),o=parseInt(r[2]),s=parseInt(r[3]);this._rgb=[i,o,s],n&&(this._opacity=parseFloat(r[4]))}},e.prototype.assignFromRgbArray=function(e){e&&e.length>2&&(this._rgb=[e[0],e[1],e[2]],(0,r.isDefined)(e[3])&&(this._opacity=e[3]))},e.prototype.assignFromColor=function(e){this._opacity=e._opacity,this._num=e._num,this._rgb=e._rgb},e.prototype.getRBGColor=function(){return this._rgb?this._rgb:[0,0,0]},e.prototype.applyOpacityToBackground=function(t){if(1!==this._opacity){var n=(t instanceof e?t:new e(t)).getValue();if(n instanceof Array){var r=this.opacity,i=Math.round((1-r)*n[0]+r*this._rgb[0]),o=Math.round((1-r)*n[1]+r*this._rgb[1]),s=Math.round((1-r)*n[2]+r*this._rgb[2]);this._rgb=[i,o,s]}}},e.rgbRegexp=/rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/,e.rgbaRegexp=/rgba?\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,?\\s*([0-9]*\\.?[0-9]*)\\s*\\)/,e}();t.Color=i},5510:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PdfGanttTableDrawer=void 0;var r=n(2491),i=n(8935),o=n(817),s=n(7624),a=function(){function e(e){this._pdfDoc=e}return e.prototype.drawTable=function(e){var t,n;if(e){var r=this.createTableOptions(e);(null===(t=e.style)||void 0===t?void 0:t.fontSize)&&this._pdfDoc.setFontSize(null===(n=e.style)||void 0===n?void 0:n.fontSize),this._pdfDoc.autoTable(r.getValue())}},e.prototype.createTableOptions=function(e){var t=this.createDefaultTableOptions();return this.addTableCommonSettings(e,t),this.addCommonTableStyles(e,t),this.prepareBodyCells(e),t.addBody(e.cells),e.hideRowLines&&this.hideRowLines(t),t},e.prototype.createDefaultTableOptions=function(){var e=new s.TableOptions;return e.pageBreak=\"auto\",e.margin.assign(0),e.tableWidth.assign(\"auto\"),e.styles.cellPadding.assign(0),e.styles.halign=\"center\",e.styles.valign=\"middle\",e.styles.lineWidth=1,e.styles.overflow=\"hidden\",e},e.prototype.addTableCommonSettings=function(e,t){t.startY=e.position.y,t.margin.assign({left:e.position.x}),t.tableWidth.assign(e.size.width)},e.prototype.addCommonTableStyles=function(e,t){var n=t.styles;n.assign(e.style),0===n.fillColor.opacity&&n.fillColor.assign(\"#FFFFFF\"),n.minCellHeight=e.baseCellSize.height,t.alternateRowStyles.minCellHeight=t.styles.minCellHeight,t.alternateRowStyles.fillColor.assign(t.styles.fillColor),(0,r.isDefined)(e.baseCellSize.width)&&n.cellWidth.assign(e.baseCellSize.width)},e.prototype.prepareBodyCells=function(t){var n,r,s;if(t.name===i.PdfPageTableNames.treeListMain||t.name===i.PdfPageTableNames.chartScaleTop||t.name===i.PdfPageTableNames.chartScaleBottom)for(var a=t.cells,l=0;l<a.length;l++)for(var c=a[l],u=0;u<c.length;u++){var d=c[u],p=d.styles,h=(null===(n=null==p?void 0:p.cellWidth)||void 0===n?void 0:n.getValue())||t.baseCellSize.width||0,f=null!==(r=null==p?void 0:p.cellPadding.left)&&void 0!==r?r:0,g=null!==(s=null==p?void 0:p.cellPadding.right)&&void 0!==s?s:0,y=Math.max(h-f-g-e.cellEllipsisSpace,0);d.content=o.EllipsisHelper.limitPdfTextWithEllipsis(d.content,this._pdfDoc,y)}},e.prototype.hideRowLines=function(e){e.styles.lineWidth=0,e.onDrawCellCallback=function(e){var t=e.cell,n=e.doc,r=t.styles.lineColor,i=t.x,o=t.x+t.styles.cellWidth,s=t.y,a=t.y+e.row.height,l=e.column.index===e.table.columns.length-1,c=e.row.index===e.table.body.length-1,u=0===e.row.index;n.setDrawColor(r[0],r[1],r[2]),n.setLineWidth(1),n.line(i,a,i,s),l&&n.line(o,a,o,s),u&&n.line(i,s,o,s),c&&n.line(i,a,o,a)}},e.cellEllipsisSpace=3,e}();t.PdfGanttTableDrawer=a},817:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EllipsisHelper=void 0;var n=function(){function e(){}return e.limitPdfTextWithEllipsis=function(t,n,r){if(!(null==n?void 0:n.getTextWidth)||!r)return t;if(n.getTextWidth(t.toString())>r){for(var i=t,o=t.length-1;n.getTextWidth(i)>r&&o>0;)i=i.substring(0,o)+e.ellipsis,o--;return i}return t},e.ellipsis=\"...\",e}();t.EllipsisHelper=n},5063:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Margin=void 0;var r=n(2491),i=n(6907),o=function(){function e(e){this.assign(e)}return e.prototype.assign=function(e){if((0,r.isDefined)(e))if(\"string\"==typeof e)this.assignFromString(e);else if(\"number\"==typeof e||e instanceof Array)this.assignWithValues(e);else{var t=e||e;this.assignWithMargin(t)}},e.prototype.assignFromString=function(e){var t=e.split(\" \").map((function(e){return i.DomUtils.pxToInt(e)}));this.assignWithValues(t)},e.prototype.assignWithMargin=function(e){(0,r.isDefined)(e.top)&&(this.top=e.top),(0,r.isDefined)(e.right)&&(this.right=e.right),(0,r.isDefined)(e.bottom)&&(this.bottom=e.bottom),(0,r.isDefined)(e.left)&&(this.left=e.left)},e.prototype.assignWithValues=function(e){var t=this.getCorrectedValues(e);this.top=t[0],this.right=t[1],this.bottom=t[2],this.left=t[3]},e.prototype.getCorrectedValues=function(e){var t=[this.top,this.right,this.bottom,this.left];if(\"number\"==typeof e){t=[e,e,e,e]}else{var n=e;switch(n.length){case 1:t=[n[0],n[0],n[0],n[0]];break;case 2:t=[n[0],n[1],n[0],n[1]];break;case 3:t=[n[0],n[1],n[2],n[1]];break;default:n.forEach((function(e,n){return t[n]=e}))}}return t},e.prototype.hasValue=function(){return(0,r.isDefined)(this.top)||(0,r.isDefined)(this.left)||(0,r.isDefined)(this.right)||(0,r.isDefined)(this.bottom)},e.prototype.getValue=function(){if(!this.hasValue())return null;if(this.top===this.bottom&&this.left===this.right&&this.top===this.left)return this.top;var e={};return(0,r.isDefined)(this.top)&&(e.top=this.top),(0,r.isDefined)(this.left)&&(e.left=this.left),(0,r.isDefined)(this.right)&&(e.right=this.right),(0,r.isDefined)(this.bottom)&&(e.bottom=this.bottom),e},e}();t.Margin=o},2642:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PredefinedStyles=void 0;var n=function(){function e(){}return e.getPredefinedStringOrUndefined=function(e,t){var n=e&&t&&e.toLowerCase()||void 0;return n&&(t.filter((function(e){return e.toLowerCase()===n}))[0]||t.filter((function(e){return n.indexOf(e.toLowerCase())>-1}))[0])},e.fontFamilies=[\"helvetica\",\"times\",\"courier\"],e.fontStyles=[\"normal\",\"bold\",\"italic\",\"bolditalic\"],e.headerFooterVisibility=[\"everyPage\",\"firstPage\",\"never\"],e.horizontalAlign=[\"left\",\"center\",\"right\"],e.overflow=[\"linebreak\",\"ellipsize\",\"visible\",\"hidden\"],e.pageBreak=[\"auto\",\"avoid\",\"always\"],e.rowPageBreak=[\"auto\",\"avoid\"],e.verticalAlign=[\"top\",\"middle\",\"bottom\"],e.width=[\"auto\",\"wrap\"],e}();t.PredefinedStyles=n},6995:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.StyleDef=void 0;var r=n(2491),i=n(6907),o=n(405),s=n(2642),a=n(5063),l=n(7343),c=function(){function e(e){this._fillColor=new o.Color,this._textColor=new o.Color,this._lineColor=new o.Color,this._cellWidth=new l.Width,this._cellPadding=new a.Margin,e&&this.assign(e)}return Object.defineProperty(e.prototype,\"font\",{get:function(){return this._fontFamily},set:function(e){this._fontFamily=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.fontFamilies)||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fontStyle\",{get:function(){return this._fontStyle},set:function(e){this._fontStyle=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.fontStyles)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fontSize\",{get:function(){return this._fontSize},set:function(e){this._fontSize=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"overflow\",{get:function(){return this._overflow},set:function(e){this._overflow=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.overflow)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"halign\",{get:function(){return this._horizontalAlign},set:function(e){this._horizontalAlign=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.horizontalAlign)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"valign\",{get:function(){return this._verticalAlign},set:function(e){this._verticalAlign=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.verticalAlign)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fillColor\",{get:function(){return this._fillColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"textColor\",{get:function(){return this._textColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"lineColor\",{get:function(){return this._lineColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cellWidth\",{get:function(){return this._cellWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cellPadding\",{get:function(){return this._cellPadding},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"lineWidth\",{get:function(){return this._lineWidth},set:function(e){this._lineWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minCellWidth\",{get:function(){return this._minCellWidth},set:function(e){this._minCellWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minCellHeight\",{get:function(){return this._minCellHeight},set:function(e){this._minCellHeight=e},enumerable:!1,configurable:!0}),e.prototype.assign=function(t){t&&(t instanceof e?((0,r.isDefined)(t.font)&&(this.font=t.font),(0,r.isDefined)(t.fontStyle)&&(this.fontStyle=t.fontStyle),(0,r.isDefined)(t.overflow)&&(this.overflow=t.overflow),(0,r.isDefined)(t.halign)&&(this.halign=t.halign),(0,r.isDefined)(t.valign)&&(this.valign=t.valign),(0,r.isDefined)(t.fontSize)&&(this.fontSize=t.fontSize),(0,r.isDefined)(t.lineWidth)&&(this.lineWidth=t.lineWidth),(0,r.isDefined)(t.minCellWidth)&&(this.minCellWidth=t.minCellWidth),(0,r.isDefined)(t.minCellHeight)&&(this.minCellHeight=t.minCellHeight),(0,r.isDefined)(t.fillColor)&&this.fillColor.assign(t.fillColor),(0,r.isDefined)(t.textColor)&&this.textColor.assign(t.textColor),(0,r.isDefined)(t.lineColor)&&this.lineColor.assign(t.lineColor),(0,r.isDefined)(t.cellWidth)&&this.cellWidth.assign(t.cellWidth),(0,r.isDefined)(t.cellPadding)&&this.cellPadding.assign(t.cellPadding)):this.assignFromCssStyle(t))},e.prototype.assignFromCssStyle=function(e){if(e.fontFamily&&(this.font=this.getPdfFontFamily(e)),this.fontStyle=this.getPdfFontStyle(e),(0,r.isDefined)(e.fontSize)&&(this.fontSize=this.getPfrFontSize(e.fontSize)),e.textAlign&&(this.halign=e.textAlign),e.verticalAlign&&(this.valign=e.verticalAlign),(0,r.isDefined)(e.borderWidth)&&(this.lineWidth=e.borderWidth),(0,r.isDefined)(e.cellWidth)&&this.cellWidth.assign(e.cellWidth),(0,r.isDefined)(e.width)&&(this.minCellWidth=\"number\"==typeof e.width?e.width:i.DomUtils.pxToInt(e.width)),(0,r.isDefined)(e.height)&&(this.minCellHeight=\"number\"==typeof e.height?e.height:i.DomUtils.pxToInt(e.height)),e.backgroundColor&&this.fillColor.assign(e.backgroundColor),e.color&&this.textColor.assign(e.color),e.borderColor&&this.lineColor.assign(e.borderColor),(0,r.isDefined)(e.width)&&this.cellWidth.assign(e.width),this.assignPaddingFromCss(e),(0,r.isDefined)(e.extraLeftPadding)){var t=this._cellPadding.left;this._cellPadding.left=t?t+e.extraLeftPadding:e.extraLeftPadding}},e.prototype.getPdfFontStyle=function(e){var t=e.fontWeight,n=parseInt(t),r=\"bold\"===t||!isNaN(n)&&n>500,i=r?\"bold\":\"normal\";return\"italic\"===e.fontStyle&&(i=r?\"bolditalic\":\"italic\"),i},e.prototype.getPdfFontFamily=function(e){var t=e.fontFamily&&e.fontFamily.toLowerCase(),n=\"helvetica\";return t.indexOf(\"times\")>-1&&(n=\"times\"),t.indexOf(\"courier\")>-1&&(n=\"courier\"),n},e.prototype.getPfrFontSize=function(e){var t=i.DomUtils.pxToInt(e);if(!isNaN(t))return Math.ceil(t/96*72)},e.prototype.assignPaddingFromCss=function(e){if(e.padding)this._cellPadding.assign(e.padding);else{var t={};e.paddingLeft&&(t.left=i.DomUtils.pxToInt(e.paddingLeft)),e.paddingTop&&(t.top=i.DomUtils.pxToInt(e.paddingTop)),e.paddingRight&&(t.right=i.DomUtils.pxToInt(e.paddingRight)),e.paddingBottom&&(t.bottom=i.DomUtils.pxToInt(e.paddingBottom)),this._cellPadding.assign(t)}},e.prototype.hasValue=function(){return!0},e.prototype.getValue=function(){var e=this,t={};return(0,r.isDefined)(this.font)&&(t.font=this.font),(0,r.isDefined)(this.fontStyle)&&(t.fontStyle=this.fontStyle),(0,r.isDefined)(this.fontSize)&&(t.fontSize=this.fontSize),(0,r.isDefined)(this.overflow)&&(t.overflow=this.overflow),(0,r.isDefined)(this.halign)&&(t.halign=this.halign),(0,r.isDefined)(this.valign)&&(t.valign=this.valign),(0,r.isDefined)(this.lineWidth)&&(t.lineWidth=this.lineWidth),(0,r.isDefined)(this.minCellWidth)&&(t.minCellWidth=this.minCellWidth),(0,r.isDefined)(this.minCellHeight)&&(t.minCellHeight=this.minCellHeight),this.getJsPdfProviderProps().forEach((function(n){var r=e[n];r&&r.hasValue()&&(t[n]=r.getValue())})),t},e.prototype.getJsPdfProviderProps=function(){return[\"fillColor\",\"textColor\",\"lineColor\",\"cellWidth\",\"cellPadding\"]},e}();t.StyleDef=c},7624:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TableOptions=void 0;var r=n(2491),i=n(6032),o=n(405),s=n(2642),a=n(5063),l=n(6995),c=n(7343),u=function(){function e(){this._margin=new a.Margin,this._tableLineColor=new o.Color,this._tableWidth=new c.Width,this._styles=new l.StyleDef,this._alternateRowStyles=new l.StyleDef}return Object.defineProperty(e.prototype,\"pageBreak\",{get:function(){return this._pageBreak},set:function(e){this._pageBreak=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.pageBreak)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rowPageBreak\",{get:function(){return this._rowPageBreak},set:function(e){this._rowPageBreak=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.rowPageBreak)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showHead\",{get:function(){return this._showHead},set:function(e){this._showHead=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.headerFooterVisibility)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showFoot\",{get:function(){return this._showFoot},set:function(e){this._showFoot=s.PredefinedStyles.getPredefinedStringOrUndefined(e,s.PredefinedStyles.headerFooterVisibility)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"startY\",{get:function(){return this._startY},set:function(e){this._startY=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tableLineWidth\",{get:function(){return this._tableLineWidth},set:function(e){this._tableLineWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"margin\",{get:function(){return this._margin},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tableLineColor\",{get:function(){return this._tableLineColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tableWidth\",{get:function(){return this._tableWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"body\",{get:function(){return this._body},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"styles\",{get:function(){return this._styles},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"alternateRowStyles\",{get:function(){return this._alternateRowStyles},enumerable:!1,configurable:!0}),e.prototype.hasValue=function(){return!0},e.prototype.getValue=function(){var e=this,t={};return t.pageBreak=this.pageBreak,t.rowPageBreak=this.rowPageBreak,t.showFoot=this.showFoot,t.showHead=this.showHead,t.startY=this.startY,t.tableLineWidth=this.tableLineWidth,this.getJsPdfProviderProps().forEach((function(n){var r=e[n];r&&r.hasValue()&&(t[n]=r.getValue())})),t.body=this.getBodyForJsPdf(),t.columnStyles=this.getColumnStylesForJsPdf(),this.onDrawCellCallback&&(t.didDrawCell=this.onDrawCellCallback),t},e.prototype.getJsPdfProviderProps=function(){return[\"margin\",\"tableLineColor\",\"tableWidth\",\"styles\",\"alternateRowStyles\"]},e.prototype.getBodyForJsPdf=function(){for(var e=[],t=0;t<this._body.length;t++){for(var n=this._body[t],r=[],i=0;i<n.length;i++)r.push(n[i].getValue());e.push(r)}return e},e.prototype.assign=function(e){e&&((0,r.isDefined)(e.margin)&&this.margin.assign(e.margin),(0,r.isDefined)(e.pageBreak)&&(this.pageBreak=e.pageBreak),(0,r.isDefined)(e.rowPageBreak)&&(this.rowPageBreak=e.rowPageBreak),(0,r.isDefined)(e.showFoot)&&(this.showFoot=e.showFoot),(0,r.isDefined)(e.showHead)&&(this.showHead=e.showHead),(0,r.isDefined)(e.startY)&&(this.startY=e.startY),(0,r.isDefined)(e.tableLineWidth)&&(this.tableLineWidth=e.tableLineWidth),(0,r.isDefined)(e.tableLineColor)&&this.tableLineColor.assign(e.tableLineColor),(0,r.isDefined)(e.tableWidth)&&this.tableWidth.assign(e.tableWidth))},e.prototype.addBody=function(e){e&&(this._body=new Array,this.addCells(e,this._body))},e.prototype.addCells=function(e,t){for(var n=this.styles.fillColor,r=0;r<e.length;r++){for(var o=e[r],s=new Array,a=0;a<o.length;a++){var l=new i.CellDef(o[a]);n.hasValue()&&l.styles&&l.styles.fillColor.hasValue()&&l.styles.fillColor.applyOpacityToBackground(n),s.push(l)}t.push(s)}},e.prototype.applyColumnStyle=function(e,t){var n;null!==(n=this._columnStyles)&&void 0!==n||(this._columnStyles=new Array),this._columnStyles[e]=new l.StyleDef(t)},e.prototype.getColumnStylesForJsPdf=function(){if(this._columnStyles){var e={};return this._columnStyles.forEach((function(t,n){t&&(e[n]=t.getValue())})),e}return null},e}();t.TableOptions=u},7343:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Width=void 0;var r=n(2642),i=n(6907),o=function(){function e(e){this.assign(e)}return e.prototype.assign=function(t){if(t instanceof e)this._widthInternal=t._widthInternal;else{var n=\"number\"==typeof t?t:parseInt(t);isNaN(n)?this.assignFromString(t):this._widthInternal=n}},e.prototype.assignFromString=function(e){if(e){var t=i.DomUtils.pxToInt(e);this._widthInternal=t||r.PredefinedStyles.getPredefinedStringOrUndefined(e,r.PredefinedStyles.width)}},e.prototype.hasValue=function(){return!!this._widthInternal},e.prototype.getValue=function(){return this._widthInternal},e}();t.Width=o},8603:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaExportHelper=void 0;var r=n(6907),i=n(858),o=n(1855),s=n(9201),a=n(405),l=n(9895),c=function(){function e(e,t){this._owner=e,this._props=t}return Object.defineProperty(e.prototype,\"customRangeLeftOffset\",{get:function(){var e;return null!==(e=this._customRangeLeftOffset)&&void 0!==e||(this._customRangeLeftOffset=this.layoutCalculator.getWidthByDateRange(this.startDate,this.ownerStartDate)),this._customRangeLeftOffset},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"baseCellSize\",{get:function(){return this._owner.tickSize},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"objectsLeftDelta\",{get:function(){return this.renderedScaleLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"objectsTopDelta\",{get:function(){if(!this.hasTasks)return 0;var e=this.visibleTaskIndices[0];return this.getCellTop(e)+this.getTaskCellOffsetTop(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"offsetLeft\",{get:function(){var e;return null!==(e=this._offsetLeft)&&void 0!==e||(this._offsetLeft=Math.max(this.visibleLeft-this.renderedScaleLeft,0)),this._offsetLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"offsetTop\",{get:function(){var e;return null!==(e=this._offsetTop)&&void 0!==e||(this._offsetTop=this.getOffsetTop()),this._offsetTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scales\",{get:function(){var e=this.settings.viewType;return[s.DateUtils.ViewTypeToScaleMap[e],e]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleRanges\",{get:function(){var e;return null!==(e=this._scaleRanges)&&void 0!==e||(this._scaleRanges=this.layoutCalculator.getScaleRangesInArea(this.scaleLeft,this.scaleRight)),this._scaleRanges},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBottomStartIndex\",{get:function(){return this.scaleRanges[1][0]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBottomEndIndex\",{get:function(){return this.scaleRanges[1][1]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleTopStartIndex\",{get:function(){return this.scaleRanges[0][0]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleTopEndIndex\",{get:function(){return this.scaleRanges[0][1]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleTopWidths\",{get:function(){var e;return null!==(e=this._scaleTopWidths)&&void 0!==e||(this._scaleTopWidths=this.getScaleTopWidths()),this._scaleTopWidths},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBottomWidths\",{get:function(){var e;return null!==(e=this._scaleBottomWidths)&&void 0!==e||(this._scaleBottomWidths=this.getScaleBottomWidths()),this._scaleBottomWidths},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"headerRowHeight\",{get:function(){if(!this._headerRowHeight){var e=this.scaleElements[0].filter((function(e){return!!e}))[0];this._headerRowHeight=null==e?void 0:e.offsetHeight}return this._headerRowHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"visibleTaskIndices\",{get:function(){var e;return null!==(e=this._visibleTaskIndices)&&void 0!==e||(this._visibleTaskIndices=this.getTaskIndices()),this._visibleTaskIndices},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"baseCellHeight\",{get:function(){return this.hasTasks?this.baseCellSize.height:this.taskAreaHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaHeight\",{get:function(){return this.hasTasks?this.visibleTaskIndices.length*this.baseCellHeight:this._owner.renderHelper.taskArea.offsetHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleTableStyle\",{get:function(){var e;return null!==(e=this._scaleTableStyle)&&void 0!==e||(this._scaleTableStyle=this.getScaleTableStyle()),this._scaleTableStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"chartMainTableStyle\",{get:function(){var e;return null!==(e=this._chartMainTableStyle)&&void 0!==e||(this._chartMainTableStyle=this.getChartMainTableStyle()),this._chartMainTableStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"parentRowBackColor\",{get:function(){var e;return null!==(e=this._parentRowBackColor)&&void 0!==e||(this._parentRowBackColor=this.getParentBackColor()),this._parentRowBackColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"arrowWidth\",{get:function(){var e;return null!==(e=this._arrowWidth)&&void 0!==e||(this._arrowWidth=this.getArrowWidth()),this._arrowWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"dependencyColor\",{get:function(){var e;return null!==(e=this._dependencyColor)&&void 0!==e||(this._dependencyColor=this.getDependencyColor()),this._dependencyColor},enumerable:!1,configurable:!0}),e.prototype.getTaskElementBackColor=function(e,t){var n=this.getTaskElementStyle(e,t);return null==n?void 0:n.backgroundColor},e.prototype.getTaskElementStyle=function(e,t){var n=this.getTaskWrapper(e);return this.getElementStyle(n.getElementsByClassName(t)[0])},e.prototype.isElementVisible=function(e){return e&&\"none\"!==getComputedStyle(e).display},Object.defineProperty(e.prototype,\"hasTasks\",{get:function(){return this.visibleTaskIndices.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"visibleLeft\",{get:function(){var e;return null!==(e=this._visibleLeft)&&void 0!==e||(this._visibleLeft=this.isVisibleMode?this.container.scrollLeft:0),this._visibleLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"visibleTop\",{get:function(){var e;return null!==(e=this._visibleTop)&&void 0!==e||(this._visibleTop=this.isVisibleMode?this.container.scrollTop:0),this._visibleTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"visibleRight\",{get:function(){var e;return null!==(e=this._visibleRight)&&void 0!==e||(this._visibleRight=this.getVisibleRight()),this._visibleRight},enumerable:!1,configurable:!0}),e.prototype.getVisibleRight=function(){var e=this.container.getElement().offsetWidth;return this.visibleLeft+e},Object.defineProperty(e.prototype,\"visibleBottom\",{get:function(){var e;return null!==(e=this._visibleBottom)&&void 0!==e||(this._visibleBottom=this.getVisibleBottom()),this._visibleBottom},enumerable:!1,configurable:!0}),e.prototype.getVisibleBottom=function(){return this.isVisibleMode?this.visibleTop+this.container.getHeight():this.visibleTaskIndices.length*this.baseCellSize.height},Object.defineProperty(e.prototype,\"scaleLeft\",{get:function(){var e;return null!==(e=this._scaleLeft)&&void 0!==e||(this._scaleLeft=this.isVisibleMode?this.visibleLeft:this.getPosByDate(this.startDate)),this._scaleLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleRight\",{get:function(){var e;return null!==(e=this._scaleRight)&&void 0!==e||(this._scaleRight=this.isVisibleMode?this.visibleRight:this.getPosByDate(this.endDate)-1),this._scaleRight},enumerable:!1,configurable:!0}),e.prototype.getScaleTopWidths=function(){var e=this.getScaleWidths(this.scaleTopStartIndex,this.scaleTopEndIndex,this.scales[0]),t=this.layoutCalculator,n=t.getScaleItemInfo(this.scaleBottomStartIndex,this.scales[1]),r=t.getScaleItemInfo(this.scaleTopStartIndex,this.scales[0]),i=Math.max(n.position.x-r.position.x,0);e[this.scaleTopStartIndex]-=i;var o=t.getScaleItemInfo(this.scaleTopEndIndex,this.scales[0]),s=t.getScaleItemInfo(this.scaleBottomEndIndex,this.scales[1]);return i=Math.max(o.position.x+o.size.width-s.position.x-s.size.width,0),e[this.scaleTopEndIndex]-=i,e},e.prototype.getScaleBottomWidths=function(){return this.getScaleWidths(this.scaleBottomStartIndex,this.scaleBottomEndIndex,this.scales[1])},e.prototype.getScaleWidths=function(e,t,n){for(var r=new Array,i=e;i<=t;i++)r[i]=this.layoutCalculator.getScaleItemInfo(i,n).size.width;return r},e.prototype.getOffsetTop=function(){return this.isVisibleMode&&this.hasTasks?this.getTaskCellOffsetTop(this.visibleTaskIndices[0]):0},Object.defineProperty(e.prototype,\"renderedScaleLeft\",{get:function(){return this.getCellLeft(this.scaleBottomStartIndex)},enumerable:!1,configurable:!0}),e.prototype.getTaskCellOffsetTop=function(e){var t=this.getCellTop(e);return Math.max(this.visibleTop-t,0)},e.prototype.getCellTop=function(e){return this.layoutCalculator.getGridBorderPosition(e-1,!1).y},e.prototype.getCellLeft=function(e){return this.layoutCalculator.getScaleItemInfo(e,this.scales[1]).position.x},e.prototype.getTaskIndices=function(){var e,t;return this.dataMode===l.DataExportMode.all||this.exportRange?this._owner.getAllVisibleTaskIndices(null===(e=this.exportRange)||void 0===e?void 0:e.startIndex,null===(t=this.exportRange)||void 0===t?void 0:t.endIndex):this.getVisibleTaskIndices()},e.prototype.getVisibleTaskIndices=function(){var e=this,t=[];return this.taskElements.forEach((function(n,i){if(n){var o=r.DomUtils.pxToInt(n.style.top),s=o+n.offsetHeight,a=o>=e.visibleTop&&o<=e.visibleBottom,l=s>=e.visibleTop&&s<=e.visibleBottom;(a||l)&&t.push(i)}})),t},Object.defineProperty(e.prototype,\"scaleElements\",{get:function(){return this._owner.renderHelper.scaleElements.slice()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBorders\",{get:function(){return this._owner.renderHelper.scaleBorders.slice()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hlRowElements\",{get:function(){return this._owner.renderHelper.hlRowElements.filter((function(e){return!!e}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"selectionElements\",{get:function(){return this._owner.renderHelper.selectionElements.filter((function(e){return!!e}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskElements\",{get:function(){return this._owner.renderHelper.taskElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"connectorLines\",{get:function(){var e,t=this;return null!==(e=this._connectorLines)&&void 0!==e||(this._connectorLines=this._owner.renderHelper.allConnectorLines.filter((function(e){return t.isLineVisible(e)}))),this._connectorLines},enumerable:!1,configurable:!0}),e.prototype.isLineVisible=function(e){if(this.dataMode===l.DataExportMode.all)return!0;var t=e.attr[\"dependency-id\"];return this.visibleDependencyKeys.indexOf(t)>-1},Object.defineProperty(e.prototype,\"visibleDependencyKeys\",{get:function(){var e;return null!==(e=this._visibleDependencyKeys)&&void 0!==e||(this._visibleDependencyKeys=this._owner.getVisibleDependencyKeysByTaskRange(this.visibleTaskIndices)),this._visibleDependencyKeys},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"resourcesElements\",{get:function(){var e,t=this;return null!==(e=this._resourcesElements)&&void 0!==e||(this._resourcesElements=this.visibleTaskIndices.map((function(e){return t._owner.renderHelper.resourcesElements[e]})).filter((function(e){return t.isElementVisible(e)&&e.parentElement}))),this._resourcesElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stripLinesElements\",{get:function(){if(!this._stripLinesElements){var e=this._owner.renderHelper.stripLinesMap.filter((function(e){return!!e})).map((function(e){return e}));this._stripLinesElements=e.map((function(e){return e}))}return this._stripLinesElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"noWorkingIntervalsElements\",{get:function(){if(!this._noWorkingIntervalsElements){this._noWorkingIntervalsElements=[];var e=this._owner.renderHelper.noWorkingIntervalsToElementsMap;for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&this._noWorkingIntervalsElements.push(e[t])}return this._noWorkingIntervalsElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._owner.renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"settings\",{get:function(){return this._owner.settings},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"dataMode\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.exportDataMode},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"exportRange\",{get:function(){var e;return null===(e=this._props)||void 0===e?void 0:e.dateRange},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isVisibleMode\",{get:function(){return this.dataMode===l.DataExportMode.visible&&!this.exportRange},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ownerStartDate\",{get:function(){return this._owner.range.start},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ownerEndDate\",{get:function(){return this._owner.range.end},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"startDate\",{get:function(){var e,t,n,r;if((null===(e=this.exportRange)||void 0===e?void 0:e.startDate)&&(null===(t=this.exportRange)||void 0===t?void 0:t.endDate)){var i=Math.min(null===(n=this.exportRange)||void 0===n?void 0:n.startDate.getTime(),null===(r=this.exportRange)||void 0===r?void 0:r.endDate.getTime());return new Date(i)}return this.ownerStartDate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"endDate\",{get:function(){var e,t,n,r;if((null===(e=this.exportRange)||void 0===e?void 0:e.startDate)&&(null===(t=this.exportRange)||void 0===t?void 0:t.endDate)){var i=Math.max(null===(n=this.exportRange)||void 0===n?void 0:n.startDate.getTime(),null===(r=this.exportRange)||void 0===r?void 0:r.endDate.getTime());return new Date(i)}return this.ownerEndDate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasCustomRangeOutOfRender\",{get:function(){return this.startDate.getTime()!==this.ownerStartDate.getTime()||this.endDate.getTime()!==this.ownerEndDate.getTime()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"layoutCalculator\",{get:function(){if(!this._layoutCalculator){var e=this._owner.renderHelper.gridLayoutCalculator;this.hasCustomRangeOutOfRender?(this._layoutCalculator=new o.GridLayoutCalculator,this._layoutCalculator.setSettings(e.visibleTaskAreaSize,e.tickSize,e.elementSizeValues,new i.DateRange(this.startDate,this.endDate),e.viewModel,e.viewType,e.scrollBarHeight,this._owner.settings.firstDayOfWeek)):this._layoutCalculator=e}return this._layoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"container\",{get:function(){return this._owner.renderHelper.taskAreaContainer},enumerable:!1,configurable:!0}),e.prototype.getPosByDate=function(e){return this.layoutCalculator.getPosByDate(e)},e.prototype.getScaleTableStyle=function(){var e={},t=this.scaleElements[0].filter((function(e){return!!e}))[0],n=this.getElementStyle(t);return e.backgroundColor=this.findElementBackColor(t),e.borderColor=this.getChartTableBorderColor(),e.verticalAlign=\"middle\",e.textAlign=\"center\",e.fontSize=n.fontSize,e.fontFamily=n.fontFamily,e.fontWeight=n.fontWeight,e.fontStyle=n.fontStyle,e.color=n.color,e},e.prototype.getChartMainTableStyle=function(){var e={};return e.backgroundColor=this.findElementBackColor(this.taskArea),e.borderColor=this.getChartTableBorderColor(),e},e.prototype.findElementBackColor=function(e){if(!e)return null;for(var t=e,n=new a.Color(\"transparent\");0===n.opacity&&t;){var r=this.getElementStyle(t);n.assign(r.backgroundColor),t=t.parentElement}return n},e.prototype.getChartTableBorderColor=function(){var e=this.getElementStyle(this.scaleBorders[0].filter((function(e){return!!e}))[0]);return null==e?void 0:e.borderColor},e.prototype.getParentBackColor=function(){var e=this.getElementStyle(this.hlRowElements[0]);return null==e?void 0:e.backgroundColor},e.prototype.getArrowWidth=function(){var e=this.getDependencyLineStyle(o.GridLayoutCalculator.arrowClassName),t=e.borderWidth||e.borderLeftWidth||e.borderRightWidth||e.borderTopWidth||e.borderBottomWidth;return e&&r.DomUtils.pxToInt(t)},e.prototype.getDependencyColor=function(){var e=this.getDependencyLineStyle(o.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL);return null==e?void 0:e.borderColor},e.prototype.getDependencyLineStyle=function(e){return this.getElementStyle(this.taskArea.getElementsByClassName(e)[0])},e.prototype.getElementStyle=function(e){return e&&getComputedStyle(e)},e.prototype.getTaskWrapper=function(e){return this.isTaskTemplateMode?this._owner.renderHelper.fakeTaskWrapper:(this.taskElements[e]||this._owner.renderHelper.createDefaultTaskElement(e),this.taskElements[e])},Object.defineProperty(e.prototype,\"isTaskTemplateMode\",{get:function(){return!!this._owner.settings.taskContentTemplate},enumerable:!1,configurable:!0}),e}();t.TaskAreaExportHelper=c},6057:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CollectionBase=void 0;var r=n(2491),i=n(2601),o=function(){function e(){this._items=new Array,this._isGanttCollection=!0}return e.prototype.add=function(e){if((0,r.isDefined)(e)){if(this.getItemById(e.internalId))throw\"The collection item with id ='\"+e.internalId+\"' already exists.\";this._addItem(e)}},e.prototype.addRange=function(e){for(var t=0;t<e.length;t++)this.add(e[t])},e.prototype.remove=function(e){var t=this._items.indexOf(e);t>-1&&t<this._items.length&&this._removeItems(t,1)},e.prototype.clear=function(){this._removeItems(0,this._items.length)},e.prototype.invalidate=function(){delete this._invertedItems},e.prototype._addItem=function(e){this._items.push(e),delete this._invertedItems},e.prototype._removeItems=function(e,t){this._items.splice(e,t),delete this._invertedItems},Object.defineProperty(e.prototype,\"items\",{get:function(){return this._items.slice()},set:function(e){e&&(this._items=e.slice())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"length\",{get:function(){return this._items.length},enumerable:!1,configurable:!0}),e.prototype.getItem=function(e){return e>-1&&e<this._items.length?this._items[e]:null},Object.defineProperty(e.prototype,\"invertedItems\",{get:function(){var e;return null!==(e=this._invertedItems)&&void 0!==e||(this._invertedItems=this._createInvertedItems()),this._invertedItems},enumerable:!1,configurable:!0}),e.prototype._createInvertedItems=function(){for(var e={},t=0;t<this._items.length;t++){var n=this._items[t];e[n.internalId]=n}return e},e.prototype.getItemById=function(e){return this.invertedItems[e]},e.prototype.getItemByPublicId=function(e){return this._items.filter((function(t){return t.id===e||t.id.toString()===e}))[0]},e.prototype.assign=function(e){(0,r.isDefined)(e)&&(this.items=e.items)},e.prototype.importFromObject=function(e){(0,r.isDefined)(e)&&(this.clear(),e._isGanttCollection?this.assign(e):e instanceof Array?this.importFromArray(e):this.createItemFromObjectAndAdd(e))},e.prototype.createItemFromObjectAndAdd=function(e){if((0,r.isDefined)(e)&&Object.keys(e).length>0){var t=this.createItem();t.assignFromObject(e),this.add(t)}},e.prototype.importFromArray=function(e){for(var t=0;t<e.length;t++)this.createItemFromObjectAndAdd(e[t])},e.prototype.importFromJSON=function(e){this.importFromObject(i.GanttJsonUtils.parseJson(e))},e}();t.CollectionBase=o},7380:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DependencyCollection=void 0;var r=n(655),i=n(6057),o=n(7352),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.createItem=function(){return new o.Dependency},t}(i.CollectionBase);t.DependencyCollection=s},4432:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WorkingDayRuleCollection=void 0;var r=n(655),i=n(6057),o=n(8401),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.createItem=function(){return new o.WorkingTimeRule},t}(i.CollectionBase);t.WorkingDayRuleCollection=s},9883:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceAssignmentCollection=void 0;var r=n(655),i=n(6057),o=n(7437),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.createItem=function(){return new o.ResourceAssignment},t}(i.CollectionBase);t.ResourceAssignmentCollection=s},8828:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceCollection=void 0;var r=n(655),i=n(6057),o=n(2301),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.createItem=function(){return new o.Resource},t}(i.CollectionBase);t.ResourceCollection=s},9504:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskCollection=void 0;var r=n(655),i=n(8492),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.createItem=function(){return new i.Task},t}(n(6057).CollectionBase);t.TaskCollection=o},5594:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EventDispatcher=void 0;var n=function(){function e(){this.listeners=[]}return e.prototype.add=function(e){if(!e)throw new Error(\"Error\");this.hasEventListener(e)||this.listeners.push(e)},e.prototype.remove=function(e){for(var t=0,n=void 0;n=this.listeners[t];t++)if(n===e){this.listeners.splice(t,1);break}},e.prototype.raise=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var r=0,i=void 0;i=this.listeners[r];r++){var o=i[e];null==o||o.apply(i,t)}},e.prototype.hasEventListener=function(e){for(var t=0,n=this.listeners.length;t<n;t++)if(this.listeners[t]===e)return!0;return!1},e}();t.EventDispatcher=n},3452:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ModelChangesDispatcher=void 0;var r=n(255),i=n(8403),o=n(8738),s=n(9669),a=n(5594),l=function(){function e(){this.onModelChanged=new a.EventDispatcher,this.isLocked=!1}return e.prototype.notifyTaskCreating=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyTaskCreating\",e)},e.prototype.notifyTaskCreated=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyTaskCreated\",e,t,n)},e.prototype.notifyTaskRemoving=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyTaskRemoving\",e)},e.prototype.notifyTaskRemoved=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyTaskRemoved\",e,t,n)},e.prototype.notifyTaskUpdating=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyTaskUpdating\",e)},e.prototype.notifyTaskMoving=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyTaskMoving\",e)},e.prototype.notifyTaskEditDialogShowing=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyTaskEditDialogShowing\",e)},e.prototype.notifyResourceManagerDialogShowing=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyResourceManagerDialogShowing\",e)},e.prototype.notifyTaskUpdated=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyTaskUpdated\",e,t,n)},e.prototype.notifyParentTaskUpdated=function(e,t){this.isLocked||this.onModelChanged.raise(\"NotifyParentTaskUpdated\",e,t)},e.prototype.notifyDependencyInserting=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyDependencyInserting\",e)},e.prototype.notifyDependencyInserted=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyDependencyInserted\",e,t,n)},e.prototype.notifyDependencyRemoving=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyDependencyRemoving\",e)},e.prototype.notifyDependencyRemoved=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyDependencyRemoved\",e,t,n)},e.prototype.notifyResourceCreating=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyResourceCreating\",e)},e.prototype.notifyResourceCreated=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyResourceCreated\",e,t,n)},e.prototype.notifyResourceRemoving=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyResourceRemoving\",e)},e.prototype.notifyResourceRemoved=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyResourceRemoved\",e,t,n)},e.prototype.notifyResourceColorChanged=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyResourceColorChanged\",e,t,n)},e.prototype.notifyResourceAssigning=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyResourceAssigning\",e)},e.prototype.notifyResourceAssigned=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyResourceAssigned\",e,t,n)},e.prototype.notifyResourceUnassigning=function(e){this.isLocked||this.onModelChanged.raise(\"NotifyResourceUnassigning\",e)},e.prototype.notifyResourceUnassigned=function(e,t,n){this.isLocked||this.onModelChanged.raise(\"NotifyResourceUnassigned\",e,t,n)},e.prototype.notifyParentDataRecalculated=function(e){this.onModelChanged.raise(\"NotifyParentDataRecalculated\",e)},e.prototype.notifyScaleCellPrepared=function(e){this.onModelChanged.raise(\"NotifyScaleCellPrepared\",e)},e.prototype.notifyGanttViewUpdated=function(){this.onModelChanged.raise(\"NotifyGanttViewUpdated\")},e.prototype.fireResourceUnassigning=function(e){var t=new o.ResourceUnassigningArguments(e);return this.notifyResourceUnassigning(t),!t.cancel},e.prototype.raiseTaskUpdating=function(e,t,n){var r=new s.TaskUpdatingArguments(e,t);return this.notifyTaskUpdating(r),!r.cancel&&(n(r.newValues),!0)},e.prototype.raiseTaskMoving=function(e,t,n,r){var i=new s.TaskUpdatingArguments(e,{start:t,end:n});return this.notifyTaskMoving(i),!i.cancel&&(r(i.start,i.end),!0)},e.prototype.raiseTaskTaskEditDialogShowing=function(e,t){var n=new i.TaskEditDialogShowingArguments(e);return this.notifyTaskEditDialogShowing(n),!n.cancel&&(t(n),!0)},e.prototype.raiseResourceManagerDialogShowing=function(e,t){var n=new r.ResourceManagerDialogShowingArguments(e);return this.notifyResourceManagerDialogShowing(n),!n.cancel&&(t(n),!0)},e.prototype.lock=function(){this.isLocked=!0},e.prototype.unlock=function(){this.isLocked=!1},e}();t.ModelChangesDispatcher=l},6124:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttDataObjectNames=t.DataObject=void 0;var r=n(2491),i=n(8679),o=function(){function e(){this.internalId=i.MathUtils.generateGuid()}return e.prototype.assignFromObject=function(e){(0,r.isDefined)(e)&&(0,r.isDefined)(e.id)&&this.updateId(e.id)},e.prototype.updateId=function(e){this.id=e,this.internalId=String(e)},e}();t.DataObject=o,t.GanttDataObjectNames={task:\"task\",dependency:\"dependency\",resource:\"resource\",resourceAssignment:\"assignment\"}},7352:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Dependency=void 0;var r=n(655),i=n(2491),o=n(6124),s=n(5950),a=function(e){function t(){var t=e.call(this)||this;return t.predecessorId=\"\",t.successorId=\"\",t.type=null,t}return r.__extends(t,e),Object.defineProperty(t.prototype,\"isStartDependency\",{get:function(){return this.type===s.DependencyType.SS||this.type===s.DependencyType.SF},enumerable:!1,configurable:!0}),t.prototype.assignFromObject=function(t){(0,i.isDefined)(t)&&(e.prototype.assignFromObject.call(this,t),this.predecessorId=String(t.predecessorId),this.successorId=String(t.successorId),this.type=this.parseType(t.type))},t.prototype.parseType=function(e){if(!(0,i.isDefined)(e))return s.DependencyType.FS;switch(e.toString().toUpperCase()){case\"SS\":case\"1\":return s.DependencyType.SS;case\"FF\":case\"2\":return s.DependencyType.FF;case\"SF\":case\"3\":return s.DependencyType.SF;default:return s.DependencyType.FS}},t}(o.DataObject);t.Dependency=a},5950:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DependencyType=t.TaskType=void 0,function(e){e[e.Regular=0]=\"Regular\",e[e.Summary=1]=\"Summary\",e[e.Milestone=2]=\"Milestone\"}(t.TaskType||(t.TaskType={})),function(e){e[e.FS=0]=\"FS\",e[e.SS=1]=\"SS\",e[e.FF=2]=\"FF\",e[e.SF=3]=\"SF\"}(t.DependencyType||(t.DependencyType={}))},2301:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Resource=void 0;var r=n(655),i=n(2491),o=function(e){function t(){var t=e.call(this)||this;return t.text=\"\",t.color=\"\",t}return r.__extends(t,e),t.prototype.assignFromObject=function(t){(0,i.isDefined)(t)&&(e.prototype.assignFromObject.call(this,t),this.text=t.text,(0,i.isDefined)(t.color)&&(this.color=t.color))},t}(n(6124).DataObject);t.Resource=o},7437:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceAssignment=void 0;var r=n(655),i=n(2491),o=function(e){function t(){var t=e.call(this)||this;return t.taskId=\"\",t.resourceId=\"\",t}return r.__extends(t,e),t.prototype.assignFromObject=function(t){(0,i.isDefined)(t)&&(e.prototype.assignFromObject.call(this,t),this.taskId=String(t.taskId),this.resourceId=String(t.resourceId))},t}(n(6124).DataObject);t.ResourceAssignment=o},8492:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Task=void 0;var r=n(655),i=n(2491),o=n(6124),s=-8e15,a=function(e){function t(){var t=e.call(this)||this;return t.start=null,t.end=null,t.duration=null,t.description=\"\",t.parentId=null,t.title=\"\",t.owner=null,t.progress=0,t.taskType=null,t.customFields={},t.expanded=!0,t.color=\"\",t}return r.__extends(t,e),Object.defineProperty(t.prototype,\"normalizedProgress\",{get:function(){return Math.max(Math.min(this.progress,100),0)},enumerable:!1,configurable:!0}),t.prototype.assignFromObject=function(t){(0,i.isDefined)(t)&&(e.prototype.assignFromObject.call(this,t),this.owner=t.owner,this.parentId=(0,i.isDefined)(t.parentId)?String(t.parentId):null,this.description=t.description,this.title=t.title,this.start=\"string\"==typeof t.start?new Date(t.start):t.start||this.createInvalidDate(),this.end=\"string\"==typeof t.end?new Date(t.end):t.end||this.createInvalidDate(),this.duration=t.duration,this.progress=t.progress,this.taskType=t.taskType,(0,i.isDefined)(t.expanded)&&(this.expanded=!!t.expanded),(0,i.isDefined)(t.color)&&(this.color=t.color),this.assignCustomFields(t.customFields))},t.prototype.assignCustomFields=function(e){if(e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.customFields[t]=e[t])},t.prototype.isMilestone=function(){return this.start.getTime()===this.end.getTime()},t.prototype.getDuration=function(){return this.end.getTime()-this.start.getTime()},t.prototype.isValidStart=function(){return this.isValidTaskaDte(this.start)},t.prototype.isValidEnd=function(){return this.isValidTaskaDte(this.end)},t.prototype.isValid=function(){return this.isValidStart()&&this.isValidEnd()},t.prototype.createInvalidDate=function(){return new Date(s)},t.prototype.isValidTaskaDte=function(e){return!!e&&e.getTime()!==s},t}(o.DataObject);t.Task=a},8774:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BaseArguments=void 0;var n=function(e){this.cancel=!1,this.values={},this.key=e};t.BaseArguments=n},3279:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DependencyInsertingArguments=void 0;var r=n(655),i=function(e){function t(t,n,r){var i=e.call(this,null)||this;return i.values={predecessorId:t,successorId:n,type:r},i}return r.__extends(t,e),Object.defineProperty(t.prototype,\"predecessorId\",{get:function(){return this.values.predecessorId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"successorId\",{get:function(){return this.values.successorId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"type\",{get:function(){return this.values.type},enumerable:!1,configurable:!0}),t}(n(8774).BaseArguments);t.DependencyInsertingArguments=i},4797:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DependencyRemovingArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,t.id)||this;return n.values=t,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.DependencyRemovingArguments=i},255:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceManagerDialogShowingArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,void 0)||this;return n.values.resources=t.resources,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.ResourceManagerDialogShowingArguments=i},8403:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditDialogShowingArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,t.id)||this;return n.values={start:t.start,end:t.end,title:t.title,progress:t.progress},n.hiddenFields=t.hiddenFields,n.readOnlyFields=t.readOnlyFields,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.TaskEditDialogShowingArguments=i},1389:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceAssigningArguments=void 0;var r=n(655),i=function(e){function t(t,n){var r=e.call(this,null)||this;return r.values={resourceId:t,taskId:n},r}return r.__extends(t,e),Object.defineProperty(t.prototype,\"resourceId\",{get:function(){return this.values.resourceId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"taskId\",{get:function(){return this.values.taskId},enumerable:!1,configurable:!0}),t}(n(8774).BaseArguments);t.ResourceAssigningArguments=i},8738:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceUnassigningArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,t.internalId)||this;return n.values=t,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.ResourceUnassigningArguments=i},990:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceInsertingArguments=void 0;var r=n(655),i=function(e){function t(t,n){void 0===n&&(n=\"\");var r=e.call(this,null)||this;return r.values={text:t,color:n},r}return r.__extends(t,e),Object.defineProperty(t.prototype,\"text\",{get:function(){return this.values.text},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"color\",{get:function(){return this.values.color},enumerable:!1,configurable:!0}),t}(n(8774).BaseArguments);t.ResourceInsertingArguments=i},9748:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceRemovingArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,t.id)||this;return n.values=t,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.ResourceRemovingArguments=i},4605:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskInsertingArguments=void 0;var r=n(655),i=function(e){function t(t,n){var r=e.call(this,t)||this;return r.values=null!=n?n:{},r}return r.__extends(t,e),Object.defineProperty(t.prototype,\"start\",{get:function(){return this.values.start},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"end\",{get:function(){return this.values.end},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"title\",{get:function(){return this.values.title},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"progress\",{get:function(){return this.values.progress},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"parentId\",{get:function(){return this.values.parentId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"color\",{get:function(){return this.values.color},enumerable:!1,configurable:!0}),t}(n(8774).BaseArguments);t.TaskInsertingArguments=i},4642:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskRemovingArguments=void 0;var r=n(655),i=function(e){function t(t){var n=e.call(this,t.id)||this;return n.values=t,n}return r.__extends(t,e),t}(n(8774).BaseArguments);t.TaskRemovingArguments=i},9669:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskUpdatingArguments=void 0;var r=n(655),i=function(e){function t(t,n){var r=e.call(this,t.id)||this;return r.values=t,r.createNewValues(n),r}return r.__extends(t,e),t.prototype.createNewValues=function(e){var t=this;this.newValues={};var n=function(n){Object.prototype.hasOwnProperty.call(e,n)&&(r.newValues[n]=e[n],Object.defineProperty(r,n,{get:function(){return t.newValues[n]}}))},r=this;for(var i in e)n(i)},t}(n(8774).BaseArguments);t.TaskUpdatingArguments=i},8725:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.History=void 0;var r=n(5221),i=n(9751),o=function(){function e(e){this.historyItems=[],this.currentIndex=-1,this.currentProcessingItemInfo=null,this.transaction=null,this.transactionLevel=-1,this._listener=e}return e.prototype.undo=function(){this.canUndo()&&(this.activateItem(this.historyItems[this.currentIndex],!0),this.currentIndex--)},e.prototype.redo=function(){this.canRedo()&&(this.currentIndex++,this.activateItem(this.historyItems[this.currentIndex]))},e.prototype.beginTransaction=function(){var e;this.transactionLevel++,0==this.transactionLevel&&(this.transaction=new i.CompositionHistoryItem,null===(e=this._listener)||void 0===e||e.onTransactionStart())},e.prototype.endTransaction=function(){var e;if(!(--this.transactionLevel>=0)){var t=this.transaction.historyItems.length;t>1?this.addInternal(this.transaction):1==t&&this.addInternal(this.transaction.historyItems.pop()),this.transaction=null,null===(e=this._listener)||void 0===e||e.onTransactionEnd()}},e.prototype.addAndRedo=function(e){this.add(e),this.activateItem(e)},e.prototype.add=function(e){this.transactionLevel>=0?this.transaction.add(e):this.addInternal(e)},e.prototype.canUndo=function(){return this.currentIndex>=0},e.prototype.canRedo=function(){return this.currentIndex<this.historyItems.length-1},e.prototype.addInternal=function(e){this.currentIndex<this.historyItems.length-1&&this.historyItems.splice(this.currentIndex+1),this.historyItems.push(e),this.currentIndex++,this.deleteOldItems()},e.prototype.deleteOldItems=function(){var t=this.historyItems.length-e.MAX_HISTORY_ITEM_COUNT;t>0&&this.currentIndex>t&&(this.historyItems.splice(0,t),this.currentIndex-=t)},e.prototype.clear=function(){this.currentIndex=-1,this.historyItems=[]},e.prototype.activateItem=function(e,t){void 0===t&&(t=!1),this.currentProcessingItemInfo=new r.HistoryItemInfo(e,t),t?e.undo():e.redo(),this.currentProcessingItemInfo=null},e.prototype.getCurrentProcessingItemInfo=function(){return this.currentProcessingItemInfo},e.prototype.rollBackAndRemove=function(e){var t=e.item;this.checkAndRemoveItem(t)&&(e.isUndo?t.redo():t instanceof i.CompositionHistoryItem?t.undoItemsQuery():t.undo())},e.prototype.checkAndRemoveItem=function(e){var t=this.historyItems.indexOf(e);return t>-1?(this.historyItems.splice(t,1),this.currentIndex--):this.transaction&&(t=this.transaction.historyItems.indexOf(e))>-1&&this.transaction.historyItems.splice(t,1),t>-1},e.prototype.updateObsoleteInsertedKey=function(e,t,n){this.transaction&&this.updateItemsObsoleteInsertedKey(e,t,n,[this.transaction]),this.updateItemsObsoleteInsertedKey(e,t,n,this.historyItems)},e.prototype.updateItemsObsoleteInsertedKey=function(e,t,n,r){if(r)for(var o=0;o<r.length;o++){var s=r[o];s.keyUpdaters.filter((function(t){return t.getKey()===e&&t.objectType===n})).forEach((function(e){return e.updateKey(t)})),s instanceof i.CompositionHistoryItem&&this.updateItemsObsoleteInsertedKey(e,t,n,s.historyItems)}},e.MAX_HISTORY_ITEM_COUNT=100,e}();t.History=o},9751:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CompositionHistoryItem=void 0;var r=n(655),i=function(e){function t(){var t=e.call(this,null)||this;return t.historyItems=[],t}return r.__extends(t,e),t.prototype.redo=function(){for(var e,t=0;e=this.historyItems[t];t++)e.redo()},t.prototype.undo=function(){for(var e,t=this.historyItems.length-1;e=this.historyItems[t];t--)e.undo()},t.prototype.add=function(e){if(null==e)throw new Error(\"Can't add null HistoryItem\");this.historyItems.push(e)},t.prototype.undoItemsQuery=function(){this.undo()},t.prototype.setModelManipulator=function(t){if(e.prototype.setModelManipulator.call(this,t),this.historyItems)for(var n=0;n<this.historyItems.length;n++)this.historyItems[n].setModelManipulator(t)},t}(n(7917).HistoryItem);t.CompositionHistoryItem=i},1211:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.InsertDependencyHistoryItem=void 0;var r=n(655),i=n(8679),o=n(6124),s=function(e){function t(t,n,r,i){var o=e.call(this,t)||this;return o.predecessorId=n,o.successorId=r,o.type=i,o}return r.__extends(t,e),t.prototype.redo=function(){var e;null!==(e=this.insertedKey)&&void 0!==e||(this.insertedKey=i.MathUtils.generateGuid()),this.modelManipulator.dependency.insertDependency(this.predecessorId,this.successorId,this.type,this.insertedKey)},t.prototype.undo=function(){this.modelManipulator.dependency.removeDependency(this.insertedKey)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:o.GanttDataObjectNames.dependency,getKey:function(){return e.insertedKey},updateKey:function(t){return e.insertedKey=t}},{objectType:o.GanttDataObjectNames.task,getKey:function(){return e.predecessorId},updateKey:function(t){return e.predecessorId=t}},{objectType:o.GanttDataObjectNames.task,getKey:function(){return e.successorId},updateKey:function(t){return e.successorId=t}}]},enumerable:!1,configurable:!0}),t}(n(7917).HistoryItem);t.InsertDependencyHistoryItem=s},5865:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveDependencyHistoryItem=void 0;var r=n(655),i=n(6124),o=function(e){function t(t,n){var r=e.call(this,t)||this;return r.dependencyId=n,r}return r.__extends(t,e),t.prototype.redo=function(){this.dependency=this.modelManipulator.dependency.removeDependency(this.dependencyId)},t.prototype.undo=function(){this.modelManipulator.dependency.insertDependency(this.dependency.predecessorId,this.dependency.successorId,this.dependency.type,this.dependencyId)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:i.GanttDataObjectNames.dependency,getKey:function(){return e.dependencyId},updateKey:function(t){return e.dependencyId=t}},{objectType:i.GanttDataObjectNames.task,getKey:function(){var t;return null===(t=e.dependency)||void 0===t?void 0:t.predecessorId},updateKey:function(t){return e.dependency.predecessorId=t}},{objectType:i.GanttDataObjectNames.task,getKey:function(){var t;return null===(t=e.dependency)||void 0===t?void 0:t.successorId},updateKey:function(t){return e.dependency.successorId=t}}]},enumerable:!1,configurable:!0}),t}(n(7917).HistoryItem);t.RemoveDependencyHistoryItem=o},7917:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.HistoryItem=void 0;var n=function(){function e(e){this.setModelManipulator(e)}return e.prototype.setModelManipulator=function(e){this.modelManipulator=e},Object.defineProperty(e.prototype,\"keyUpdaters\",{get:function(){return[]},enumerable:!1,configurable:!0}),e}();t.HistoryItem=n},5221:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.HistoryItemInfo=void 0;var n=function(e,t){void 0===t&&(t=!1),this.item=e,this.isUndo=t};t.HistoryItemInfo=n},3064:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.HistoryItemState=void 0;var n=function(e,t){this.id=e,this.value=t};t.HistoryItemState=n},3683:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AssignResourceHistoryItem=void 0;var r=n(655),i=n(7917),o=n(6124),s=n(8679),a=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.resourceId=n,i.taskId=r,i}return r.__extends(t,e),t.prototype.redo=function(){var e;null!==(e=this.insertedKey)&&void 0!==e||(this.insertedKey=s.MathUtils.generateGuid()),this.modelManipulator.resource.assign(this.resourceId,this.taskId,this.insertedKey)},t.prototype.undo=function(){this.modelManipulator.resource.deassig(this.insertedKey)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:o.GanttDataObjectNames.resourceAssignment,getKey:function(){return e.insertedKey},updateKey:function(t){return e.insertedKey=t}},{objectType:o.GanttDataObjectNames.task,getKey:function(){return e.taskId},updateKey:function(t){return e.taskId=t}},{objectType:o.GanttDataObjectNames.resource,getKey:function(){return e.resourceId},updateKey:function(t){return e.resourceId=t}}]},enumerable:!1,configurable:!0}),t}(i.HistoryItem);t.AssignResourceHistoryItem=a},1493:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DeassignResourceHistoryItem=void 0;var r=n(655),i=n(7917),o=n(6124),s=function(e){function t(t,n){var r=e.call(this,t)||this;return r.assignmentId=n,r}return r.__extends(t,e),t.prototype.redo=function(){this.assignment=this.modelManipulator.resource.deassig(this.assignmentId)},t.prototype.undo=function(){this.modelManipulator.resource.assign(this.assignment.resourceId,this.assignment.taskId,this.assignmentId)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:o.GanttDataObjectNames.resourceAssignment,getKey:function(){return e.assignmentId},updateKey:function(t){return e.assignmentId=t}},{objectType:o.GanttDataObjectNames.task,getKey:function(){var t;return null===(t=e.assignment)||void 0===t?void 0:t.taskId},updateKey:function(t){return e.assignment.taskId=t}},{objectType:o.GanttDataObjectNames.resource,getKey:function(){var t;return null===(t=e.assignment)||void 0===t?void 0:t.resourceId},updateKey:function(t){return e.assignment.resourceId=t}}]},enumerable:!1,configurable:!0}),t}(i.HistoryItem);t.DeassignResourceHistoryItem=s},2961:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateResourceHistoryItem=void 0;var r=n(655),i=n(7917),o=n(6124),s=n(8679),a=function(e){function t(t,n,r,i){void 0===r&&(r=\"\");var o=e.call(this,t)||this;return o.text=n,o.color=r,o.createCallback=i,o}return r.__extends(t,e),t.prototype.redo=function(){var e;null!==(e=this.insertedKey)&&void 0!==e||(this.insertedKey=s.MathUtils.generateGuid()),this.modelManipulator.resource.create(this.text,this.color,this.insertedKey,this.createCallback)},t.prototype.undo=function(){this.modelManipulator.resource.remove(this.insertedKey)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:o.GanttDataObjectNames.resource,getKey:function(){return e.insertedKey},updateKey:function(t){return e.insertedKey=t}}]},enumerable:!1,configurable:!0}),t}(i.HistoryItem);t.CreateResourceHistoryItem=a},4641:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceColorHistoryItem=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getPropertiesManipulator=function(){return this.modelManipulator.resource.properties.color},t}(n(7049).ResourcePropertiesHistoryItemBase);t.ResourceColorHistoryItem=i},7049:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcePropertiesHistoryItemBase=void 0;var r=n(655),i=n(6124),o=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.resourceId=n,i.newValue=r,i}return r.__extends(t,e),t.prototype.redo=function(){this.oldState=this.getPropertiesManipulator().setValue(this.resourceId,this.newValue)},t.prototype.undo=function(){this.getPropertiesManipulator().restoreValue(this.oldState)},t.prototype.getPropertiesManipulator=function(){throw new Error(\"Not Implemented\")},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:i.GanttDataObjectNames.resource,getKey:function(){return e.resourceId},updateKey:function(t){return e.resourceId=t}}]},enumerable:!1,configurable:!0}),t}(n(7917).HistoryItem);t.ResourcePropertiesHistoryItemBase=o},7466:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveResourceHistoryItem=void 0;var r=n(655),i=n(9751),o=n(6124),s=function(e){function t(t,n){var r=e.call(this)||this;return r.modelManipulator=t,r.resourceId=n,r}return r.__extends(t,e),t.prototype.redo=function(){e.prototype.redo.call(this),this.resource=this.modelManipulator.resource.remove(this.resourceId)},t.prototype.undo=function(){var t=this;this.modelManipulator.resource.create(this.resource.text,this.resource.color,this.resourceId,(function(){t.resource.color&&t.modelManipulator.resource.properties.color.setValue(t.resource.internalId,t.resource.color),window.setTimeout((function(){return e.prototype.undo.call(t)}),0)}))},t.prototype.undoItemsQuery=function(){this.modelManipulator.resource.create(this.resource.text,this.resource.color,this.resourceId,(function(){})),this.resource.color&&this.modelManipulator.resource.properties.color.setValue(this.resource.internalId,this.resource.color),e.prototype.undo.call(this)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:o.GanttDataObjectNames.resource,getKey:function(){return e.resourceId},updateKey:function(t){return e.resourceId=t}}]},enumerable:!1,configurable:!0}),t}(i.CompositionHistoryItem);t.RemoveResourceHistoryItem=s},1284:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateTaskHistoryItem=void 0;var r=n(655),i=n(8679),o=n(6124),s=function(e){function t(t,n){var r=e.call(this,t)||this;return r.data=n,r}return r.__extends(t,e),t.prototype.redo=function(){var e;null!==(e=this.insertedKey)&&void 0!==e||(this.insertedKey=i.MathUtils.generateGuid()),this.modelManipulator.task.create(this.data,this.insertedKey)},t.prototype.undo=function(){this.modelManipulator.task.remove(this.insertedKey)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e,t=this,n=[{objectType:o.GanttDataObjectNames.task,getKey:function(){return t.insertedKey},updateKey:function(e){return t.insertedKey=e}}];return(null===(e=this.data)||void 0===e?void 0:e.parentId)&&n.push({objectType:o.GanttDataObjectNames.task,getKey:function(){var e;return null===(e=t.data)||void 0===e?void 0:e.parentId},updateKey:function(e){return t.data.parentId=e}}),n},enumerable:!1,configurable:!0}),t}(n(7917).HistoryItem);t.CreateTaskHistoryItem=s},9599:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveTaskHistoryItem=void 0;var r=n(655),i=n(6124),o=n(9751),s=function(e){function t(t,n){var r=e.call(this)||this;return r.modelManipulator=t,r.taskId=n,r}return r.__extends(t,e),t.prototype.redo=function(){e.prototype.redo.call(this),this.task=this.modelManipulator.task.remove(this.taskId)},t.prototype.undo=function(){var t=this;this.modelManipulator.task.create(this.task,this.taskId,(function(){window.setTimeout((function(){return e.prototype.undo.call(t)}),0)}))},t.prototype.undoItemsQuery=function(){var e;this.modelManipulator.task.create(this.task,this.taskId);for(var t=this.historyItems.length-1;e=this.historyItems[t];t--)e instanceof o.CompositionHistoryItem?e.undoItemsQuery():e.undo()},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:i.GanttDataObjectNames.task,getKey:function(){return e.taskId},updateKey:function(t){return e.taskId=t}},{objectType:i.GanttDataObjectNames.task,getKey:function(){var t;return null===(t=e.task)||void 0===t?void 0:t.parentId},updateKey:function(t){return e.task.parentId=t}}]},enumerable:!1,configurable:!0}),t}(o.CompositionHistoryItem);t.RemoveTaskHistoryItem=s},9496:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UpdateTaskHistoryItem=void 0;var r=n(655),i=n(6124),o=n(7917),s=n(3064),a=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.taskId=n,i.newValues=r,i}return r.__extends(t,e),t.prototype.redo=function(){var e=this.modelManipulator.task.update(this.taskId,this.newValues);this.oldState=new s.HistoryItemState(this.taskId,e)},t.prototype.undo=function(){this.modelManipulator.task.update(this.taskId,this.oldState.value)},Object.defineProperty(t.prototype,\"keyUpdaters\",{get:function(){var e=this;return[{objectType:i.GanttDataObjectNames.task,getKey:function(){return e.taskId},updateKey:function(t){return e.taskId=t}}]},enumerable:!1,configurable:!0}),t}(o.HistoryItem);t.UpdateTaskHistoryItem=a},6382:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BaseManipulator=void 0;var n=function(){function e(e,t){this.viewModel=e,this.dispatcher=t}return e.prototype.getErrorCallback=function(){return this.viewModel.getDataUpdateErrorCallback()},Object.defineProperty(e.prototype,\"renderHelper\",{get:function(){return this.viewModel.owner.renderHelper},enumerable:!1,configurable:!0}),e}();t.BaseManipulator=n},1178:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskDependencyManipulator=void 0;var r=n(655),i=n(6124),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.insertDependency=function(e,t,n,r){var o=this.viewModel;o.onBeginDataObjectCreate();var s=o.dependencies.createItem();s.predecessorId=e,s.successorId=t,s.type=n,r&&(s.internalId=r),s.id=s.internalId,o.dependencies.add(s);return o.updateVisibleItemDependencies(),this.renderHelper.recreateConnectorLineElement(s.internalId,!0),this.dispatcher.notifyDependencyInserted(this.getObjectForDataSource(s),(function(e){var t=s.internalId;s.updateId(e),o.processServerInsertedKey(t,s.internalId,i.GanttDataObjectNames.dependency)}),this.getErrorCallback()),o.onEndDataObjectCreate(),s},t.prototype.removeDependency=function(e){var t=this.viewModel.dependencies.getItemById(e);return this.viewModel.dependencies.remove(t),this.dispatcher.notifyDependencyRemoved(t.id,this.getErrorCallback(),this.viewModel.getDependencyObjectForDataSource(t)),this.viewModel.updateVisibleItemDependencies(),this.renderHelper.recreateConnectorLineElement(t.internalId),t},t.prototype.getObjectForDataSource=function(e){var t=this.viewModel.tasks.getItemById(e.predecessorId),n=this.viewModel.tasks.getItemById(e.successorId);return{id:e.id,predecessorId:t.id,successorId:n.id,type:e.type}},t}(n(6382).BaseManipulator);t.TaskDependencyManipulator=o},9650:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ModelManipulator=void 0;var r=n(1178),i=n(7518),o=n(728),s=function(e,t){this.task=new o.TaskManipulator(e,t),this.dependency=new r.TaskDependencyManipulator(e,t),this.resource=new i.ResourcesManipulator(e,t),this.dispatcher=t};t.ModelManipulator=s},4596:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourceColorManipulator=void 0;var r=n(655),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.getPropertyValue=function(e){return e.color},t.prototype.setPropertyValue=function(e,t){e.color=t,this.dispatcher.notifyResourceColorChanged(e.id,t,this.getErrorCallback())},t}(n(7470).ResourcePropertyManipulator);t.ResourceColorManipulator=i},79:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcePropertiesManipulator=void 0;var r=n(655),i=n(6382),o=n(4596),s=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.color=new o.ResourceColorManipulator(t,n),r}return r.__extends(t,e),t}(i.BaseManipulator);t.ResourcePropertiesManipulator=s},7470:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcePropertyManipulator=void 0;var r=n(655),i=n(3064),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.setValue=function(e,t){var n=this,r=this.viewModel.resources.getItemById(e),o=new i.HistoryItemState(e,this.getPropertyValue(r));return this.setPropertyValue(r,t),this.viewModel.assignments.items.filter((function(e){return e.resourceId===r.internalId})).forEach((function(e){var t=n.viewModel.findItem(e.taskId).visibleIndex;n.renderHelper.recreateTaskElement(t)})),o},t.prototype.restoreValue=function(e){var t=this;if(e){var n=e.value,r=this.viewModel.resources.getItemById(e.id);this.setPropertyValue(r,n),this.viewModel.assignments.items.filter((function(e){return e.resourceId===r.internalId})).forEach((function(e){var n=t.viewModel.findItem(e.taskId).visibleIndex;t.renderHelper.recreateTaskElement(n)}))}},t}(n(6382).BaseManipulator);t.ResourcePropertyManipulator=o},7518:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourcesManipulator=void 0;var r=n(655),i=n(6124),o=n(6382),s=n(79),a=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.properties=new s.ResourcePropertiesManipulator(t,n),r}return r.__extends(t,e),t.prototype.create=function(e,t,n,r){var o=this.viewModel;o.onBeginDataObjectCreate();var s=o.resources.createItem();return s.text=e,t&&(s.color=t),n&&(s.internalId=n),s.id=s.internalId,this.viewModel.resources.add(s),this.dispatcher.notifyResourceCreated(this.getResourceObjectForDataSource(s),(function(e){var t=s.internalId;s.updateId(e),o.processServerInsertedKey(t,s.internalId,i.GanttDataObjectNames.resource),r&&r(e)}),this.getErrorCallback()),o.onEndDataObjectCreate(),s},t.prototype.remove=function(e){var t=this.viewModel.resources.getItemById(e);if(!t)throw new Error(\"Invalid resource id\");if(this.viewModel.assignments.items.filter((function(t){return t.resourceId===e})).length)throw new Error(\"Can't delete assigned resource\");return this.viewModel.resources.remove(t),this.dispatcher.notifyResourceRemoved(t.id,this.getErrorCallback(),this.viewModel.getResourceObjectForDataSource(t)),t},t.prototype.assign=function(e,t,n){var r=this.viewModel;r.onBeginDataObjectCreate();var o=r.assignments.createItem();return o.resourceId=e,o.taskId=t,n&&(o.internalId=n),o.id=o.internalId,this.viewModel.assignments.add(o),this.dispatcher.notifyResourceAssigned(this.getResourceAssignmentObjectForDataSource(o),(function(e){var t=o.internalId;o.updateId(e),r.processServerInsertedKey(t,o.internalId,i.GanttDataObjectNames.resourceAssignment)}),this.getErrorCallback()),this.viewModel.updateModel(),r.onEndDataObjectCreate(),this.viewModel.owner.resetAndUpdate(),o},t.prototype.deassig=function(e){var t=this.viewModel.assignments.getItemById(e);return this.viewModel.assignments.remove(t),this.dispatcher.notifyResourceUnassigned(t.id,this.getErrorCallback(),this.viewModel.getResourceAssignmentObjectForDataSource(t)),this.viewModel.updateModel(),this.viewModel.owner.resetAndUpdate(),t},t.prototype.getResourceObjectForDataSource=function(e){return{id:e.id,text:e.text}},t.prototype.getResourceAssignmentObjectForDataSource=function(e){return{id:e.id,taskId:this.viewModel.tasks.getItemById(e.taskId).id,resourceId:this.viewModel.resources.getItemById(e.resourceId).id}},t}(o.BaseManipulator);t.ResourcesManipulator=a},728:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskManipulator=void 0;var r=n(655),i=n(2491),o=n(6124),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.create=function(e,t,n){var r=this,i=this.viewModel;i.onBeginDataObjectCreate();var s=i.tasks.createItem();s.start=e.start,s.end=e.end,s.title=e.title,s.progress=e.progress,e.color&&(s.color=e.color);var a=i.tasks.getItemById(e.parentId);return a&&(a.expanded=!0),s.parentId=e.parentId,t&&(s.internalId=t),s.id=s.internalId,i.tasks.add(s),i.updateModel(),this.dispatcher.notifyTaskCreated(this.getObjectForDataSource(s),(function(e){var t=s.internalId;if(s.updateId(e),i.processServerInsertedKey(t,s.internalId,o.GanttDataObjectNames.task),n&&n(),r.viewModel.requireFirstLoadParentAutoCalc){var a=i.getCurrentTaskData().map((function(e){return\"\"===e.parentId&&(e.parentId=null),e}));r.dispatcher.notifyParentDataRecalculated(a)}}),this.getErrorCallback()),i.onEndDataObjectCreate(),i.owner.resetAndUpdate(),s},t.prototype.remove=function(e){var t=this.viewModel.tasks.getItemById(e);if(!t)throw new Error(\"Invalid task id\");if(this.viewModel.dependencies.items.filter((function(t){return t.predecessorId==e||t.successorId==e})).length)throw new Error(\"Can't delete task with dependency\");if(this.viewModel.assignments.items.filter((function(t){return t.taskId==e})).length)throw new Error(\"Can't delete task with assigned resource\");return this.viewModel.tasks.remove(t),this.dispatcher.notifyTaskRemoved(t.id,this.getErrorCallback(),this.viewModel.getTaskObjectForDataSource(t)),this.viewModel.updateModel(),this.viewModel.owner.resetAndUpdate(),t},t.prototype.update=function(e,t){var n=this.viewModel.tasks.getItemById(e),r={};Object.keys(t).forEach((function(e){(0,i.isDefined)(n[e])&&(r[e]=n[e],n[e]=t[e])}));var o=this.viewModel.findItem(e);return o&&this.renderHelper.recreateTaskElement(o.visibleIndex),this.dispatcher.notifyTaskUpdated(n.id,t,this.getErrorCallback()),r},t.prototype.getObjectForDataSource=function(e){return this.viewModel.getTaskObjectForDataSource(e)},t}(n(6382).BaseManipulator);t.TaskManipulator=s},2601:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttJsonUtils=void 0;var r=n(9937),i=function(){function e(){}return e.parseJson=function(e){return r.JsonUtils.isValid(e)?JSON.parse(e):null},e}();t.GanttJsonUtils=i},8478:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ValidationController=void 0;var r=n(655),i=n(2491),o=n(9201),s=n(5950),a=n(9496),l=n(858),c=n(7880),u=n(4927),d=function(){function e(e){this.lockPredecessorToSuccessor=!0,this.settings=e}return Object.defineProperty(e.prototype,\"viewModel\",{get:function(){return this.settings.getViewModel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"history\",{get:function(){return this.settings.getHistory()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"modelManipulator\",{get:function(){return this.settings.getModelManipulator()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"range\",{get:function(){return this.settings.getRange()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"validationSettings\",{get:function(){return this.settings.getValidationSettings()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"_parentAutoCalc\",{get:function(){return this.viewModel.parentAutoCalc},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enablePredecessorGap\",{get:function(){return this.viewModel.enablePredecessorGap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isValidateDependenciesRequired\",{get:function(){return this.settings.getIsValidateDependenciesRequired()},enumerable:!1,configurable:!0}),e.prototype.updateOwnerInAutoParentMode=function(){this.settings.updateOwnerInAutoParentMode()},e.prototype.checkStartDependencies=function(e,t){var n=this,r=[],i=this.viewModel.tasks.getItemById(e);return this.viewModel.dependencies.items.filter((function(t){return t.successorId===e})).forEach((function(e){var o=n.viewModel.tasks.getItemById(e.predecessorId);(e.type===s.DependencyType.FS&&o.end>t||e.type===s.DependencyType.SS&&o.start>t)&&r.push(new u.ValidationError(e.internalId,!0)),(e.type===s.DependencyType.FS&&o.end.valueOf()===i.start.valueOf()&&t>o.end||e.type===s.DependencyType.SS&&o.start.valueOf()===i.start.valueOf()&&t>o.start)&&r.push(new u.ValidationError(e.internalId))})),r},e.prototype.checkEndDependencies=function(e,t){var n=this,r=[],i=this.viewModel.tasks.getItemById(e);return this.viewModel.dependencies.items.filter((function(t){return t.successorId===e})).forEach((function(e){var o=n.viewModel.tasks.getItemById(e.predecessorId);(e.type===s.DependencyType.SF&&o.start>t||e.type===s.DependencyType.FF&&o.end>t)&&r.push(new u.ValidationError(e.internalId,!0)),(e.type===s.DependencyType.SF&&o.start.valueOf()===i.end.valueOf()&&t>o.start||e.type===s.DependencyType.FF&&o.end.valueOf()===i.end.valueOf()&&t>o.end)&&r.push(new u.ValidationError(e.internalId))})),r},e.prototype.moveEndDependTasks=function(e,t,n){var r=this;void 0===n&&(n=null);var i=this.viewModel.dependencies.items.filter((function(t){return t.predecessorId===e&&!t.isStartDependency})),o=this.viewModel.tasks.getItemById(e);i.forEach((function(e){var i=r.viewModel.tasks.getItemById(e.successorId);if(!(!i||n&&r.viewModel.checkParent(i.internalId,n)||i.parentId===o.id)){var c=new l.DateRange(new Date(i.start.getTime()),new Date(i.end.getTime())),u=new l.DateRange(new Date(i.start.getTime()),new Date(i.end.getTime())),d=o.end.getTime()-t.getTime(),p=r.enablePredecessorGap?o.end:t;if(e.type===s.DependencyType.FS&&(i.start<p||r.lockPredecessorToSuccessor&&i.start.getTime()===t.getTime())?(u.start.setTime(o.end.getTime()),u.end.setTime(u.start.getTime()+(i.end.getTime()-i.start.getTime())),r.correctMoving(i.internalId,u)):e.type===s.DependencyType.FF&&(i.end<p||r.lockPredecessorToSuccessor&&i.end.getTime()===t.getTime())?(u.start.setTime(o.end.getTime()-(i.end.getTime()-i.start.getTime())),u.end.setTime(o.end.getTime()),r.correctMoving(i.internalId,u)):r.enablePredecessorGap||(u.start.setTime(i.start.getTime()+d),u.end.setTime(i.end.getTime()+d)),!c.equal(u)){var h={start:u.start,end:u.end};r.history.addAndRedo(new a.UpdateTaskHistoryItem(r.modelManipulator,e.successorId,h)),r.moveRelatedTasks(e,c,i,u)}}}))},e.prototype.moveStartDependTasks=function(e,t,n){var r=this;void 0===n&&(n=null);var i=this.viewModel.dependencies.items.filter((function(t){return t.predecessorId===e&&t.isStartDependency})),o=this.viewModel.tasks.getItemById(e);i.forEach((function(e){var i=r.viewModel.tasks.getItemById(e.successorId);if(!(!i||n&&r.viewModel.checkParent(i.internalId,n)||i.parentId===o.id)){var c=new l.DateRange(new Date(i.start.getTime()),new Date(i.end.getTime())),u=new l.DateRange(new Date(i.start.getTime()),new Date(i.end.getTime())),d=o.start.getTime()-t.getTime(),p=r.enablePredecessorGap?o.start:t;if(e.type===s.DependencyType.SF&&(i.end<p||r.lockPredecessorToSuccessor&&i.end.getTime()===t.getTime())?(u.start.setTime(o.start.getTime()-(i.end.getTime()-i.start.getTime())),u.end.setTime(o.start.getTime()),r.correctMoving(i.internalId,u)):e.type===s.DependencyType.SS&&(i.start<p||r.lockPredecessorToSuccessor&&i.start.getTime()===t.getTime())?(u.start.setTime(o.start.getTime()),u.end.setTime(o.start.getTime()+(i.end.getTime()-i.start.getTime())),r.correctMoving(i.internalId,u)):r.enablePredecessorGap||(u.start.setTime(i.start.getTime()+d),u.end.setTime(i.end.getTime()+d)),!c.equal(u)){var h={start:u.start,end:u.end};r.history.addAndRedo(new a.UpdateTaskHistoryItem(r.modelManipulator,e.successorId,h)),r.moveRelatedTasks(e,c,i,u)}}}))},e.prototype.moveRelatedTasks=function(e,t,n,r){var i=r.start.getTime()-t.start.getTime();this.correctParentsOnChildMoving(n.internalId,i),this.moveStartDependTasks(e.successorId,t.start),this.moveEndDependTasks(e.successorId,t.end)},e.prototype.getCorrectDateRange=function(e,t,n){var i=this,o=new l.DateRange(new Date(t),new Date(n));return r.__spreadArray(r.__spreadArray([],this.checkStartDependencies(e,o.start),!0),this.checkEndDependencies(e,o.end),!0).filter((function(e){return e.critical})).forEach((function(e){var t=i.viewModel.dependencies.getItemById(e.dependencyId),n=i.viewModel.tasks.getItemById(t.predecessorId);t.type===s.DependencyType.FS&&o.start<n.end&&o.start.setTime(n.end.getTime()),t.type===s.DependencyType.SS&&o.start<n.start&&o.start.setTime(n.start.getTime()),t.type===s.DependencyType.FF&&o.end<n.end&&o.end.setTime(n.end.getTime()),t.type===s.DependencyType.SF&&o.end<n.start&&o.end.setTime(n.start.getTime())})),o},e.prototype.correctMoving=function(e,t){var n=this,i=t.end.getTime()-t.start.getTime();return r.__spreadArray(r.__spreadArray([],this.checkStartDependencies(e,t.start),!0),this.checkEndDependencies(e,t.end),!0).filter((function(e){return e.critical})).forEach((function(e){var r=n.viewModel.dependencies.getItemById(e.dependencyId),o=n.viewModel.tasks.getItemById(r.predecessorId);r.type===s.DependencyType.FS&&t.start<o.end&&(t.start.setTime(o.end.getTime()),t.end.setTime(t.start.getTime()+i)),r.type===s.DependencyType.SS&&t.start<o.start&&(t.start.setTime(o.start.getTime()),t.end.setTime(t.start.getTime()+i)),r.type===s.DependencyType.FF&&t.end<o.end&&(t.end.setTime(o.end.getTime()),t.start.setTime(t.end.getTime()-i)),r.type===s.DependencyType.SF&&t.end<o.start&&(t.end.setTime(o.start.getTime()),t.start.setTime(t.end.getTime()-i))})),t},e.prototype.recalculateParents=function(e,t){for(var n=e&&e.parent;n&&n.task;){for(var r=n.children,i=this.range.end,o=this.range.start,s=0,a=0,l={id:n.task.internalId},u=0;u<r.length;u++){var d=r[u].task;if(d.isValid()){i=c.DateTimeUtils.getMinDate(i,d.start),o=c.DateTimeUtils.getMaxDate(o,d.end);var p=d.getDuration();s+=d.progress*p,a+=p}}c.DateTimeUtils.areDatesEqual(n.task.start,i)||(l.start=i),c.DateTimeUtils.areDatesEqual(n.task.end,o)||(l.end=o),l.oldStart=n.task.start,l.oldEnd=n.task.end,(s=a>0?Math.round(s/a):0)!==n.task.progress&&(l.progress=s),t(l),n=n.parent}},e.prototype.updateParentsRangeByChild=function(e){var t=this;this.recalculateParents(this.viewModel.findItem(e),(function(e){if((0,i.isDefined)(e.id)){var n=t.history,r=t.modelManipulator;(0,i.isDefined)(e.start)&&(n.addAndRedo(new a.UpdateTaskHistoryItem(r,e.id,{start:e.start})),t.moveStartDependTasks(e.id,e.oldStart)),(0,i.isDefined)(e.end)&&(n.addAndRedo(new a.UpdateTaskHistoryItem(r,e.id,{end:e.end})),t.moveEndDependTasks(e.id,e.oldEnd)),(0,i.isDefined)(e.progress)&&n.addAndRedo(new a.UpdateTaskHistoryItem(r,e.id,{progress:e.progress}))}}))},e.prototype.updateChildRangeByParent=function(e,t,n){var r=this.viewModel.findItem(e);if(r&&0!==r.children.length)for(var i=r.children,s=0;s<i.length;s++){var l=i[s].task,c=new Date(l.start.getTime()+t),u=o.DateUtils.getRangeMSPeriod(l.start,l.end),d=o.DateUtils.getDSTCorrectedTaskEnd(c,u);n.push({id:l.internalId,start:l.start,end:l.end}),this.history.addAndRedo(new a.UpdateTaskHistoryItem(this.modelManipulator,l.internalId,{start:c,end:d})),this.updateChildRangeByParent(l.internalId,t,n)}},e.prototype.updateParentsIfRequired=function(e){this._parentAutoCalc&&(this.updateParentsRangeByChild(e),this.updateOwnerInAutoParentMode())},e.prototype.correctParentsOnChildMoving=function(e,t){var n=this;if(this._parentAutoCalc&&0!==t){this.updateParentsRangeByChild(e);var r=[];this.updateChildRangeByParent(e,t,r),this.isValidateDependenciesRequired&&r.forEach((function(t){n.moveStartDependTasks(t.id,t.start,e),n.moveEndDependTasks(t.id,t.end,e)})),this.updateOwnerInAutoParentMode()}},e.prototype.canCreateDependency=function(e,t){return this.viewModel.canCreateDependency(e,t)},e}();t.ValidationController=d},4927:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ValidationError=void 0;var n=function(e,t){void 0===t&&(t=!1),this.dependencyId=e,this.critical=t};t.ValidationError=n},6350:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ViewVisualModelDependencyInfo=void 0;var n=function(e,t,n){this.id=e,this.predecessor=t,this.type=n};t.ViewVisualModelDependencyInfo=n},3562:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ViewVisualModelItem=void 0;var r=n(2491),i=n(6353),o=function(){function e(e,t){this.dependencies=new Array,this.parent=null,this.visible=!0,this.selected=!1,this.visibleIndex=-1,this.task=e,this.resources=t,this.children=new Array,this.isCustom=!1,this.size=new i.Size(0,0)}return Object.defineProperty(e.prototype,\"resourceText\",{get:function(){var e=\"\";return this.resources.items.forEach((function(t){return e+=t.text+\" \"})),e},enumerable:!1,configurable:!0}),e.prototype.addChild=function(e){(0,r.isDefined)(e)&&this.children.indexOf(e)<0&&this.children.push(e)},e.prototype.removeChild=function(e){var t=this.children.indexOf(e);t>-1&&this.children.splice(t,1)},e.prototype.getExpanded=function(){return!!this.task&&this.task.expanded},e.prototype.getVisible=function(){if(!this.visible)return!1;for(var e=this.parent;e;){if(!e.visible)return!1;e=e.parent}return!0},e.prototype.changeVisibility=function(e){this.visible=e},e.prototype.changeSelection=function(e){this.selected=e},e.prototype.setDependencies=function(e){e&&(this.dependencies=e.slice())},e}();t.ViewVisualModelItem=o},1408:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ViewVisualModel=void 0;var r=n(8828),i=n(9504),o=n(7380),s=n(9883),a=n(3562),l=n(6350),c=n(21),u=n(2491),d=n(6124),p=n(7352),h=n(2301),f=n(7437),g=function(){function e(e,t,n,a,l,u,d){this._fLockCount=0,this.lockChangesProcessing=!1,this.owner=e,this.tasks=new i.TaskCollection,this.tasks.importFromObject(t),this.dependencies=new o.DependencyCollection,this.dependencies.importFromObject(n),this.resources=new r.ResourceCollection,this.resources.importFromObject(a),this.assignments=new s.ResourceAssignmentCollection,this.assignments.importFromObject(l),this._itemList=new Array,this._viewItemList=new Array,this._workTimeCalculator=new c.WorkingTimeCalculator(u,d),this.updateModel(!0)}return Object.defineProperty(e.prototype,\"renderHelper\",{get:function(){return this.owner.renderHelper},enumerable:!1,configurable:!0}),e.prototype.updateModel=function(e){this._itemList.splice(0,this._itemList.length);for(var t=this.tasks.items,n=0;n<t.length;n++){var r=t[n];r&&this._itemList.push(new a.ViewVisualModelItem(r,this.getAssignedResources(r)))}this.createHierarchy(e),this.populateItemsForView(),this.owner&&this.owner.currentSelectedTaskID&&this.changeTaskSelected(this.owner.currentSelectedTaskID,!0)},e.prototype.createHierarchy=function(e){var t=this;this.root=new a.ViewVisualModelItem(null,null);for(var n=this._itemList,r=n.reduce((function(e,t){var n,r=null===(n=t.task)||void 0===n?void 0:n.internalId;return(0,u.isDefined)(r)&&(e[r]=t),e}),{}),i=this.requireFirstLoadParentAutoCalc&&e,o=0;o<n.length;o++){var s=n[o],l=r[s.task.parentId]||this.root;s.parent=l,l.addChild(s),i&&this.owner.validationController.recalculateParents(s,(function(e){if((0,u.isDefined)(e.id)){var n=t.tasks.getItemById(e.id);(0,u.isDefined)(e.start)&&(n.start=e.start),(0,u.isDefined)(e.end)&&(n.end=e.end),(0,u.isDefined)(e.progress)&&(n.progress=e.progress)}}))}i&&this.owner.dispatcher.notifyParentDataRecalculated(this.getCurrentTaskData())},e.prototype.getCurrentTaskData=function(){var e=this;return this.tasks.items.map((function(t){return e.getTaskObjectForDataSource(t)}))},e.prototype.getTaskObjectForDataSource=function(e){var t=e.parentId&&this.tasks.getItemById(e.parentId),n=this.getRootTaskId(),r=n&&e.parentId===n?e.parentId:null==t?void 0:t.id;return{id:e.id,start:e.isValidStart()?e.start:null,end:e.isValidEnd()?e.end:null,duration:e.duration,description:e.description,parentId:r,progress:e.progress,color:e.color,taskType:e.taskType,title:e.title,customFields:e.customFields,expanded:e.expanded}},e.prototype.getDependencyObjectForDataSource=function(e){var t=e instanceof p.Dependency?e:this.getItemByPublicId(\"dependency\",e);if(t){var n=this.convertInternalToPublicKey(\"task\",t.predecessorId),r=this.convertInternalToPublicKey(\"task\",t.successorId);return{id:t.id,predecessorId:(0,u.isDefined)(n)?n:t.predecessorId,successorId:(0,u.isDefined)(r)?r:t.successorId,type:t.type}}return null},e.prototype.getResourceObjectForDataSource=function(e){var t=e instanceof h.Resource?e:this.getItemByPublicId(\"resource\",e);return t?{id:t.id,text:t.text,color:t.color}:null},e.prototype.getResourceAssignmentObjectForDataSource=function(e){var t=e instanceof f.ResourceAssignment?e:this.getItemByPublicId(\"assignment\",e);if(t){var n=this.convertInternalToPublicKey(\"task\",t.taskId),r=this.convertInternalToPublicKey(\"resource\",t.resourceId);return{id:t.id,taskId:(0,u.isDefined)(n)?n:t.taskId,resourceId:(0,u.isDefined)(r)?r:t.resourceId}}return null},e.prototype.populateItemsForView=function(){this._viewItemList.splice(0,this._viewItemList.length),this.populateVisibleItems(this.root),this.updateVisibleItemDependencies()},e.prototype.populateVisibleItems=function(e){var t=this,n=e===this.root;e&&(e.task||n)&&(n||(this._viewItemList.push(e),e.visibleIndex=this._viewItemList.length-1),(e.getExpanded()||e===this.root)&&e.children.forEach((function(e){return t.populateVisibleItems(e)})))},e.prototype.updateVisibleItemDependencies=function(){for(var e=this._viewItemList,t=0;t<e.length;t++){var n=e[t],r=this.getTasVisibleDependencies(n.task);n.setDependencies(r)}},e.prototype.getAssignedResources=function(e){var t=this,n=new r.ResourceCollection;return this.assignments.items.filter((function(t){return t.taskId==e.internalId})).forEach((function(e){n.add(t.resources.getItemById(e.resourceId))})),n},e.prototype.getTasVisibleDependencies=function(e){for(var t=new Array,n=e.internalId,r=this.dependencies.items.filter((function(e){return e.successorId==n})),i=0;i<r.length;i++){var o=r[i],s=this.findItem(o.predecessorId);s&&s.getVisible()&&t.push(new l.ViewVisualModelDependencyInfo(o.internalId,s,o.type))}return t},e.prototype.changeTaskExpanded=function(e,t){var n=this.tasks.getItemById(String(e));n&&(n.expanded=t,this.changed())},e.prototype.changeTaskVisibility=function(e,t){var n=this.findItem(e);n&&(n.visible=t,this.changed())},e.prototype.changeTaskSelected=function(e,t){var n=this._itemList.filter((function(t){return t.task&&t.task.internalId===e}))[0];if(n){n.selected=t;var r=this.findItem(e),i=r&&r.visibleIndex;i>-1&&this.renderHelper.recreateTaskElement(i)}},e.prototype.beginUpdate=function(){this._fLockCount++},e.prototype.endUpdate=function(){this._fLockCount--,0==this._fLockCount&&this.changed()},e.prototype.compareTaskOrder=function(e){var t=new i.TaskCollection;t.importFromObject(e);var n=t.items,r=this.tasks.items;if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++){var s=n[o],a=r[o];if(s.id!==a.id)return!1}return!0},e.prototype.refreshTaskDataIfRequires=function(e){var t=!this.lockChangesProcessing&&!this.compareTaskOrder(e);if(t){var n=this.saveTaskInternalIds();this.tasks.importFromObject(e),this.restoreTaskInternalIds(n),this.updateModel()}return t},e.prototype.saveTaskInternalIds=function(){var e={};return this.tasks.items.map((function(t){return e[t.id]=t.internalId})),e},e.prototype.restoreTaskInternalIds=function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=this.tasks.getItemByPublicId(t);n&&(n.internalId=e[t])}},e.prototype.canCreateDependency=function(e,t){if(!e||!t||e===t)return!1;var n=!1;if(this.enableDependencyValidation){var r=this.getDependentTasksHash();n=this.parentAutoCalc?this.checkTasksInterdependence(e,t,r)||this.checkParent(e,t)||this.checkParent(t,e):this.checkDependencyChain([e],[t],r,[])}return!n},e.prototype.checkParent=function(e,t){return this.getTaskTreeLine(e).indexOf(t)>-1},e.prototype.getTaskTreeLine=function(e){var t=[e],n=this.findItem(e);if(n)for(n=n.parent;null==n?void 0:n.task;)t.push(null==n?void 0:n.task.internalId),n=n.parent;else for(var r=this.tasks.getItemById(e),i=this.tasks.getItemById(null==r?void 0:r.parentId);i;)t.push(i.id),i=this.tasks.getItemById(i.parentId);return t},e.prototype.getDependentTasksHash=function(){var e={};return this.dependencies.items.forEach((function(t){var n,r,i=t.predecessorId,o=t.successorId;null!==(n=e[i])&&void 0!==n||(e[i]=[]),e[i].indexOf(o)<0&&e[i].push(o),null!==(r=e[o])&&void 0!==r||(e[o]=[]),e[o].indexOf(i)<0&&e[o].push(i)})),e},e.prototype.checkTasksInterdependence=function(e,t,n){for(var r,i,o=this.getTaskTreeLine(e).reverse(),s=this.getTaskTreeLine(t).reverse(),a=0;a<o.length-1;a++){var l=o[a],c=s.indexOf(l);c>-1&&(r=o[a+1],i=s[c+1])}return r||i||(r=o[0],i=s[0]),this.checkDependencyChain(this.getBranchIds(r),this.getBranchIds(i),n,[])},e.prototype.checkDependencyChain=function(e,t,n,r){if(e.some((function(e){return t.indexOf(e)>-1})))return!0;r.push.apply(r,e);for(var i=0;i<e.length;i++){var o=n[e[i]];if(o&&this.checkDependencyChain(o.filter((function(e){return-1===r.indexOf(e)})),t,n,r))return!0}return!1},e.prototype.getBranchIds=function(e){var t=this,n=[e],r=this.findItem(e),i=null==r?void 0:r.children;return i&&i.forEach((function(e){var r,i=null===(r=e.task)||void 0===r?void 0:r.internalId;i&&(n=n.concat(t.getBranchIds(i)))})),n},e.prototype.getTasksExpandedState=function(){var e=this.tasks.items,t={};return e.forEach((function(e){return t[e.id]=e.expanded})),t},e.prototype.applyTasksExpandedState=function(e){if(e){for(var t in this.beginUpdate(),e)Object.prototype.hasOwnProperty.call(e,t)&&this.changeTaskExpanded(t,e[t]);this.endUpdate()}},e.prototype.changed=function(){0===this._fLockCount&&(this.populateItemsForView(),this.owner&&this.owner.onVisualModelChanged&&this.owner.onVisualModelChanged())},e.prototype.findItem=function(e){return this._viewItemList.filter((function(t){return t.task&&t.task.internalId===e}))[0]},Object.defineProperty(e.prototype,\"items\",{get:function(){return this._viewItemList},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"itemCount\",{get:function(){return this.items.length},enumerable:!1,configurable:!0}),e.prototype.getTaskVisibility=function(e){var t=this.findItem(e);return!!t&&t.getVisible()},e.prototype.getTaskSelected=function(e){var t=this.findItem(e);return!!t&&t.selected},Object.defineProperty(e.prototype,\"noWorkingIntervals\",{get:function(){return this._workTimeCalculator.noWorkingIntervals},enumerable:!1,configurable:!0}),e.prototype.updateRange=function(e){this._workTimeCalculator.updateRange(e)},e.prototype.taskHasChildrenByIndex=function(e){return this._viewItemList[e].children.length>0},e.prototype.taskHasChildren=function(e){var t=this.findItem(e);return t&&t.children.length>0},Object.defineProperty(e.prototype,\"enableDependencyValidation\",{get:function(){var e,t=this.owner&&this.owner.settings;return null===(e=null==t?void 0:t.validation)||void 0===e?void 0:e.validateDependencies},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"parentAutoCalc\",{get:function(){var e=this.owner&&this.owner.settings;return e&&e.validation&&e.validation.autoUpdateParentTasks},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enablePredecessorGap\",{get:function(){var e=this.owner&&this.owner.settings;return e&&e.validation&&e.validation.enablePredecessorGap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"requireFirstLoadParentAutoCalc\",{get:function(){return this.parentAutoCalc&&this.owner.requireFirstLoadParentAutoCalc()},enumerable:!1,configurable:!0}),e.prototype.isTaskToCalculateByChildren=function(e){return this.parentAutoCalc&&this.taskHasChildren(e)},e.prototype.hasTasks=function(){return this.tasks.length>0},e.prototype.getDataUpdateErrorCallback=function(){return this.owner.getDataUpdateErrorCallback&&this.owner.getDataUpdateErrorCallback()},e.prototype.convertPublicToInternalKey=function(e,t){var n=this.getItemByPublicId(e,t);return n&&n.internalId},e.prototype.convertInternalToPublicKey=function(e,t){var n=this.getItemByInternalId(e,t);return n&&n.id},e.prototype.getItemByPublicId=function(e,t){var n=t.toString();switch(e){case\"task\":return this.tasks.getItemByPublicId(n);case\"dependency\":return this.dependencies.getItemByPublicId(n);case\"resource\":return this.resources.getItemByPublicId(n);case\"assignment\":return this.assignments.getItemByPublicId(n)}return null},e.prototype.getItemByInternalId=function(e,t){switch(e){case\"task\":return this.tasks.getItemById(t);case\"dependency\":return this.dependencies.getItemById(t);case\"resource\":return this.resources.getItemById(t);case\"assignment\":return this.assignments.getItemById(t)}return null},e.prototype.findAssignment=function(e,t){var n=this.convertPublicToInternalKey(\"resource\",e),r=this.convertPublicToInternalKey(\"task\",t);return this.assignments.items.filter((function(e){return e.resourceId===n&&e.taskId===r}))[0]},e.prototype.findAllTaskAssignments=function(e){return this.assignments.items.filter((function(t){return t.taskId===e}))},e.prototype.getAllVisibleTaskIndices=function(e,t){var n,r=[];null!=e||(e=0),null!=t||(t=this._viewItemList.length-1);for(var i=e;i<=t;i++){var o=this._viewItemList[i];(null==o?void 0:o.getVisible())&&(null===(n=null==o?void 0:o.task)||void 0===n?void 0:n.isValid())&&r.push(i)}return r},e.prototype.getVisibleTasks=function(){var e=this;return this.tasks.items.filter((function(t){return t&&e.getTaskVisibility(t.internalId)&&t.isValid()}))},e.prototype.getVisibleDependencies=function(){var e=this.getVisibleTasks().map((function(e){return e.internalId}));return this.dependencies.items.filter((function(t){return t&&e.indexOf(t.successorId)>-1&&e.indexOf(t.predecessorId)>-1}))},e.prototype.getVisibleResourceAssignments=function(){var e=this.getVisibleTasks().map((function(e){return e.internalId}));return this.assignments.items.filter((function(t){return t&&e.indexOf(t.taskId)>-1}))},e.prototype.getVisibleResources=function(){for(var e=[],t=this.getVisibleResourceAssignments(),n=0;n<t.length;n++){var r=this.getItemByInternalId(\"resource\",t[n].resourceId);r&&-1===e.indexOf(r)&&e.push(r)}return e},e.prototype.getRootTaskId=function(){var e;return null!==(e=this.rootTaskId)&&void 0!==e||(this.rootTaskId=this.calculateRootTaskId()),this.rootTaskId},e.prototype.calculateRootTaskId=function(){var e=this.items[0];if(!e)return null;for(;e.parent&&e.task;)e=e.parent;return e.children[0].task.parentId},e.prototype.getTaskMinStart=function(){var e=this.owner.dataRange.start;return this.tasks.items.forEach((function(t){t.isValid()&&t.start.getTime()<e.getTime()&&(e=t.start)})),e},e.prototype.getTaskMaxEnd=function(){var e=this.owner.dataRange.end;return this.tasks.items.forEach((function(t){t.isValid()&&t.end.getTime()>e.getTime()&&(e=t.end)})),e},e.prototype.processServerInsertedKey=function(e,t,n){var r;n===d.GanttDataObjectNames.task&&this.tasks.invalidate(),n===d.GanttDataObjectNames.dependency&&(this.dependencies.invalidate(),this.updateVisibleItemDependencies()),n===d.GanttDataObjectNames.resource&&this.resources.invalidate(),n===d.GanttDataObjectNames.resourceAssignment&&this.assignments.invalidate(),null===(r=this.owner)||void 0===r||r.updateHistoryObsoleteInsertedKey(e,t,n)},e.prototype.onBeginDataObjectCreate=function(){var e,t;null===(t=(e=this.owner).lockUpdateWithReload)||void 0===t||t.call(e)},e.prototype.onEndDataObjectCreate=function(){var e,t;null===(t=(e=this.owner).unlockUpdateWithReload)||void 0===t||t.call(e)},e}();t.ViewVisualModel=g},858:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DateRange=void 0;var n=function(){function e(e,t){this.start=e,this.end=t}return e.prototype.equal=function(e){var t=!0;return t=(t=t&&this.start.getTime()===e.start.getTime())&&this.end.getTime()===e.end.getTime()},e}();t.DateRange=n},7880:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DateTimeUtils=void 0;var r=n(2753),i=n(9331),o=n(2491),s=n(858),a=n(7812),l=function(){function e(){}return e.compareDates=function(e,t){return e&&t?t.getTime()-e.getTime():-1},e.areDatesEqual=function(e,t){return 0==this.compareDates(e,t)},e.getMaxDate=function(e,t){return e||t?e?t&&this.compareDates(e,t)>0?t:e:t:null},e.getMinDate=function(e,t){return e||t?e?t?this.compareDates(e,t)>0?e:t:e:t:null},e.getDaysBetween=function(e,t){var n=Math.abs(t.getTime()-e.getTime());return Math.ceil(n/this.msInDay)},e.getWeeksBetween=function(e,t){var n=this.getDaysBetween(e,t),r=Math.floor(n/7);return e.getDay()>t.getDay()&&r++,r},e.getMonthsDifference=function(e,t){var n=this.compareDates(e,t),r=n>=0?e:t,i=n>=0?t:e;return 12*(i.getFullYear()-r.getFullYear())+(i.getMonth()-r.getMonth())},e.getYearsDifference=function(e,t){return Math.abs(t.getFullYear()-e.getFullYear())},e.getDayNumber=function(e){return Math.ceil(e.getTime()/this.msInDay)},e.getDateByDayNumber=function(e){var t=new Date(e*this.msInDay);return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t},e.addDays=function(e,t){return new Date(e.getTime()+t*this.msInDay)},e.checkDayOfMonth=function(e,t){return e==t.getDate()},e.checkDayOfWeek=function(e,t){return e==t.getDay()},e.checkMonth=function(e,t){return e==t.getMonth()},e.checkYear=function(e,t){return e==t.getFullYear()},e.checkDayOfWeekOccurrenceInMonth=function(e,t,n){var r=this.getSpecificDayOfWeekInMonthDates(t,e.getFullYear(),e.getMonth());return n==a.DayOfWeekMonthlyOccurrence.Last?this.areDatesEqual(e,r[r.length-1]):this.areDatesEqual(e,r[n])},e.getFirstDayOfWeekInMonth=function(e,t){return new Date(e,t,1).getDay()},e.getSpecificDayOfWeekInMonthDates=function(e,t,n){for(var r=this.getFirstDayOfWeekInMonth(t,n),i=e>=r?e-r:e+7-r,o=new Array,s=new Date(t,n,i+1);s.getMonth()==n;)o.push(s),s=this.addDays(s,7);return o},e.getSpecificDayOfWeekInMonthDate=function(e,t,n,r){var i=this.getSpecificDayOfWeekInMonthDates(e,t,n);return r==a.DayOfWeekMonthlyOccurrence.Last?i[i.length-1]:i[r]},e.checkValidDayInMonth=function(e,t,n){return!(n<1||n>31||new Date(e,t,n).getMonth()!=t)},e.getNextMonth=function(e,t){return void 0===t&&(t=1),(e+t)%12},e.convertToDate=function(e){if(e instanceof Date)return new Date(e);var t=Date.parse(e);return isNaN(t)?null:new Date(t)},e.convertTimeRangeToDateRange=function(e,t){var n=this.getDateByDayNumber(t),r=n.getFullYear(),i=n.getMonth(),o=n.getDate(),a=e.start,l=new Date(r,i,o,a.hour,a.min,a.sec,a.msec),c=e.end,u=new Date(r,i,o,c.hour,c.min,c.sec,c.msec);return new s.DateRange(l,u)},e.convertToTimeRanges=function(e){var t=this;return e instanceof Array?e.map((function(e){return t.convertToTimeRange(e)})):this.parseTimeRanges(e)},e.convertToTimeRange=function(e){return e?e instanceof i.TimeRange?e:(0,o.isDefined)(e.start)&&(0,o.isDefined)(e.end)?new i.TimeRange(this.convertToTime(e.start),this.convertToTime(e.end)):this.parseTimeRange(e):null},e.convertToTime=function(e){return e?e instanceof r.Time?e:e instanceof Date?this.getTimeGromJsDate(e):this.parseTime(e):null},e.parseTimeRanges=function(e){var t=this;return e?e.split(/;|,/).map((function(e){return t.parseTimeRange(e)})).filter((function(e){return!!e})):null},e.parseTimeRange=function(e){if(!e)return null;var t=e.split(\"-\"),n=t[0],r=t[1];return(0,o.isDefined)(n)&&(0,o.isDefined)(r)?new i.TimeRange(this.parseTime(n),this.parseTime(r)):null},e.parseTime=function(e){if(!e)return null;var t=e.split(\":\"),n=parseInt(t[0])||0,i=parseInt(t[1])||0,o=parseInt(t[2])||0,s=parseInt(t[3])||0;return new r.Time(n,i,o,s)},e.getTimeGromJsDate=function(e){if(!e)return null;var t=e.getHours(),n=e.getMinutes(),i=e.getSeconds(),o=e.getMilliseconds();return new r.Time(t,n,i,o)},e.caclTimeDifference=function(e,t){return t.getTimeInMilleconds()-e.getTimeInMilleconds()},e.areTimesEqual=function(e,t){return 0==this.caclTimeDifference(e,t)},e.getMaxTime=function(e,t){return e||t?e?t&&this.caclTimeDifference(e,t)>0?t:e:t:null},e.getMinTime=function(e,t){return e||t?e?t?this.caclTimeDifference(e,t)>0?e:t:e:t:null},e.getLastTimeOfDay=function(){return new r.Time(23,59,59,999)},e.msInDay=864e5,e}();t.DateTimeUtils=l},8719:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DayOfWeek=void 0,function(e){e[e.Sunday=0]=\"Sunday\",e[e.Monday=1]=\"Monday\",e[e.Tuesday=2]=\"Tuesday\",e[e.Wednesday=3]=\"Wednesday\",e[e.Thursday=4]=\"Thursday\",e[e.Friday=5]=\"Friday\",e[e.Saturday=6]=\"Saturday\"}(t.DayOfWeek||(t.DayOfWeek={}))},7812:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DayOfWeekMonthlyOccurrence=void 0,function(e){e[e.First=0]=\"First\",e[e.Second=1]=\"Second\",e[e.Third=2]=\"Third\",e[e.Forth=3]=\"Forth\",e[e.Last=4]=\"Last\"}(t.DayOfWeekMonthlyOccurrence||(t.DayOfWeekMonthlyOccurrence={}))},1805:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DayWorkingTimeInfo=void 0;var r=n(9331),i=n(7880),o=n(2753),s=function(){function e(e,t,n){void 0===e&&(e=0),void 0===t&&(t=!0),void 0===n&&(n=null),this._workingIntervals=new Array,this.dayNumber=e,this.isWorkDay=t,this.addWorkingIntervals(n)}return e.prototype.addWorkingIntervals=function(e){e&&(this._workingIntervals=this._workingIntervals.concat(e.filter((function(e){return!!e}))),this.rearrangeWorkingIntervals())},e.prototype.rearrangeWorkingIntervals=function(){for(var e=0;e<this._workingIntervals.length;e++)this.concatWithIntersectedRanges(this._workingIntervals[e]);this.sortIntervals()},e.prototype.concatWithIntersectedRanges=function(e){var t=this;this.getIntersectedIntervals(e).forEach((function(n){e.concatWith(n),t.removeInterval(n)}))},e.prototype.getIntersectedIntervals=function(e){return this._workingIntervals.filter((function(t){return t.hasIntersect(e)&&t!==e}))},e.prototype.sortIntervals=function(){this._workingIntervals.sort((function(e,t){return i.DateTimeUtils.caclTimeDifference(t.start,e.start)}))},e.prototype.removeInterval=function(e){var t=this._workingIntervals.indexOf(e);t>-1&&t<this._workingIntervals.length&&this._workingIntervals.splice(t,1)},e.prototype.clearIntervals=function(){this._workingIntervals.splice(0,this._workingIntervals.length)},Object.defineProperty(e.prototype,\"workingIntervals\",{get:function(){return this._workingIntervals.slice()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"noWorkingIntervals\",{get:function(){var e=new Array;if(this.isWorkDay&&0===this._workingIntervals.length)return e;var t=this._workingIntervals.map((function(e){return e.end}));t.splice(0,0,new o.Time);var n=this._workingIntervals.map((function(e){return e.start}));n.push(i.DateTimeUtils.getLastTimeOfDay());for(var s=0;s<t.length;s++){var a=t[s],l=n[s];i.DateTimeUtils.areTimesEqual(a,l)||e.push(new r.TimeRange(a,l))}return e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isWorkDay\",{get:function(){return this._isWorkDay},set:function(e){this._isWorkDay=e,e||this.clearIntervals()},enumerable:!1,configurable:!0}),e}();t.DayWorkingTimeInfo=s},3110:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Month=void 0,function(e){e[e.January=0]=\"January\",e[e.February=1]=\"February\",e[e.March=2]=\"March\",e[e.April=3]=\"April\",e[e.May=4]=\"May\",e[e.June=5]=\"June\",e[e.July=6]=\"July\",e[e.August=7]=\"August\",e[e.September=8]=\"September\",e[e.October=9]=\"October\",e[e.November=10]=\"November\",e[e.December=11]=\"December\"}(t.Month||(t.Month={}))},7872:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.MonthInfo=void 0;var r=n(7880),i=function(){function e(e,t){this.month=e,this.year=t}return e.prototype.addMonths=function(e){var t=r.DateTimeUtils.getNextMonth(this.month,e),n=Math.floor(e/12);t<this.month&&++n,this.month=t,this.year+=n},e}();t.MonthInfo=i},4902:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Daily=void 0;var r=n(655),i=n(1789),o=n(7880),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.checkDate=function(e){return!0},t.prototype.checkInterval=function(e){return o.DateTimeUtils.getDaysBetween(this.start,e)%this.interval==0},t.prototype.calculatePointByInterval=function(e){var t=this.interval;return this.isRecurrencePoint(e)||(t-=o.DateTimeUtils.getDaysBetween(this.start,e)%this.interval),o.DateTimeUtils.addDays(e,t)},t.prototype.calculateNearestPoint=function(e){return o.DateTimeUtils.addDays(e,1)},t}(i.RecurrenceBase);t.Daily=s},4390:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Monthly=void 0;var r=n(655),i=n(1789),o=n(7880),s=n(7872),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.checkDate=function(e){return this._calculateByDayOfWeek?o.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(e,this.dayOfWeekInternal,this.dayOfWeekOccurrenceInternal):o.DateTimeUtils.checkDayOfMonth(this.dayInternal,e)},t.prototype.checkInterval=function(e){return o.DateTimeUtils.getMonthsDifference(this.start,e)%this.interval==0},t.prototype.calculatePointByInterval=function(e){var t=this.start,n=o.DateTimeUtils.getMonthsDifference(t,e),r=Math.floor(n/this.interval)*this.interval,i=new s.MonthInfo(t.getMonth(),t.getFullYear());i.addMonths(r);var a=this.getSpecDayInMonth(i.year,i.month);return o.DateTimeUtils.compareDates(a,e)>=0&&(i.addMonths(this.interval),a=this.getSpecDayInMonth(i.year,i.month)),a},t.prototype.calculateNearestPoint=function(e){var t=e.getMonth(),n=e.getFullYear(),r=this.getSpecDayInMonth(n,t);if(o.DateTimeUtils.compareDates(r,e)>=0){var i=new s.MonthInfo(t,n);i.addMonths(1),r=this.getSpecDayInMonth(i.year,i.month)}return r},Object.defineProperty(t.prototype,\"day\",{get:function(){return this.dayInternal},set:function(e){this.dayInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeek\",{get:function(){return this.dayOfWeekInternal},set:function(e){this.dayOfWeekInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeekOccurrence\",{get:function(){return this.dayOfWeekOccurrenceInternal},set:function(e){this.dayOfWeekOccurrenceInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"calculateByDayOfWeek\",{get:function(){return this._calculateByDayOfWeek},set:function(e){this._calculateByDayOfWeek=e},enumerable:!1,configurable:!0}),t}(i.RecurrenceBase);t.Monthly=a},1789:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RecurrenceBase=void 0;var r=n(655),i=n(8719),o=n(7812),s=n(3110),a=n(2491),l=n(7880),c=n(9612),u=function(e){function t(t,n,r,i){void 0===t&&(t=null),void 0===n&&(n=null),void 0===r&&(r=1),void 0===i&&(i=0);var o=e.call(this)||this;return o._start=null,o._end=null,o._interval=1,o._occurrenceCount=0,o._dayOfWeek=0,o._day=1,o._dayOfWeekOccurrence=0,o._month=0,o._calculateByDayOfWeek=!1,o.start=t,o.end=n,o.interval=r,o.occurrenceCount=i,o}return r.__extends(t,e),t.prototype.assignFromObject=function(t){(0,a.isDefined)(t)&&(e.prototype.assignFromObject.call(this,t),this.start=l.DateTimeUtils.convertToDate(t.start),this.end=l.DateTimeUtils.convertToDate(t.end),(0,a.isDefined)(t.interval)&&(this.interval=t.interval),(0,a.isDefined)(t.occurrenceCount)&&(this.occurrenceCount=t.occurrenceCount),(0,a.isDefined)(t.dayOfWeek)&&(this.dayOfWeekInternal=c.RecurrenceFactory.getEnumValue(i.DayOfWeek,t.dayOfWeek)),(0,a.isDefined)(t.day)&&(this.dayInternal=t.day),(0,a.isDefined)(t.dayOfWeekOccurrence)&&(this.dayOfWeekOccurrenceInternal=c.RecurrenceFactory.getEnumValue(o.DayOfWeekMonthlyOccurrence,t.dayOfWeekOccurrence)),(0,a.isDefined)(t.month)&&(this.monthInternal=c.RecurrenceFactory.getEnumValue(s.Month,t.month)),(0,a.isDefined)(t.calculateByDayOfWeek)&&(this._calculateByDayOfWeek=!!t.calculateByDayOfWeek))},t.prototype.calculatePoints=function(e,t){if(!e||!t)return new Array;var n=l.DateTimeUtils.getMaxDate(e,this._start),r=l.DateTimeUtils.getMinDate(t,this._end);return this._occurrenceCount>0?this.calculatePointsByOccurrenceCount(n,r):this.calculatePointsByDateRange(n,r)},t.prototype.calculatePointsByOccurrenceCount=function(e,t){for(var n=new Array,r=this.getFirstPoint(e);r&&n.length<this._occurrenceCount&&l.DateTimeUtils.compareDates(r,t)>=0;)this.isRecurrencePoint(r)&&n.push(r),r=this.getNextPoint(r);return n},t.prototype.calculatePointsByDateRange=function(e,t){for(var n=new Array,r=this.getFirstPoint(e);r&&l.DateTimeUtils.compareDates(r,t)>=0;)this.isRecurrencePoint(r)&&n.push(r),r=this.getNextPoint(r);return n},t.prototype.getFirstPoint=function(e){return this.isRecurrencePoint(e)?e:this.getNextPoint(e)},t.prototype.isRecurrencePoint=function(e){return this.isDateInRange(e)&&this.checkDate(e)&&(!this.useIntervalInCalc()||this.checkInterval(e))},t.prototype.isDateInRange=function(e){return!!e&&(!(this._start&&l.DateTimeUtils.compareDates(this.start,e)<0)&&!(0==this._occurrenceCount&&this.end&&l.DateTimeUtils.compareDates(e,this.end)<0))},t.prototype.useIntervalInCalc=function(){return this.interval>1&&!!this._start},t.prototype.getNextPoint=function(e){return this.isDateInRange(e)?this.useIntervalInCalc()?this.calculatePointByInterval(e):this.calculateNearestPoint(e):null},t.prototype.getSpecDayInMonth=function(e,t){return this._calculateByDayOfWeek?l.DateTimeUtils.getSpecificDayOfWeekInMonthDate(this.dayOfWeekInternal,e,t,this.dayOfWeekOccurrenceInternal):new Date(e,t,this.dayInternal)},Object.defineProperty(t.prototype,\"dayInternal\",{get:function(){return this._day},set:function(e){e>0&&e<=31&&(this._day=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeekInternal\",{get:function(){return this._dayOfWeek},set:function(e){e>=i.DayOfWeek.Sunday&&e<=i.DayOfWeek.Saturday&&(this._dayOfWeek=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeekOccurrenceInternal\",{get:function(){return this._dayOfWeekOccurrence},set:function(e){e>=o.DayOfWeekMonthlyOccurrence.First&&e<=o.DayOfWeekMonthlyOccurrence.Last&&(this._dayOfWeekOccurrence=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"monthInternal\",{get:function(){return this._month},set:function(e){e>=s.Month.January&&e<=s.Month.December&&(this._month=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"start\",{get:function(){return this._start},set:function(e){e&&(this._start=e,this._end&&e>this._end&&(this._end=e))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"end\",{get:function(){return this._end},set:function(e){e&&(this._end=e,this._start&&e<this._start&&(this._start=e))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"occurrenceCount\",{get:function(){return this._occurrenceCount},set:function(e){e<0&&(e=0),this._occurrenceCount=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"interval\",{get:function(){return this._interval},set:function(e){e>0&&(this._interval=e)},enumerable:!1,configurable:!0}),t}(n(6124).DataObject);t.RecurrenceBase=u},9612:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RecurrenceFactory=void 0;var r=n(2491),i=n(4902),o=n(5475),s=n(4390),a=n(7515),l=function(){function e(){}return e.createRecurrenceByType=function(e){if(!e)return null;switch(e.toLowerCase()){case\"daily\":return new i.Daily;case\"weekly\":return new o.Weekly;case\"monthly\":return new s.Monthly;case\"yearly\":return new a.Yearly}return null},e.createRecurrenceFromObject=function(e){if(!e)return null;var t=this.createRecurrenceByType(e.type);return t&&t.assignFromObject(e),t},e.getEnumValue=function(e,t){if(!(0,r.isDefined)(e[t]))return null;var n=parseInt(t);return isNaN(n)?e[t]:n},e}();t.RecurrenceFactory=l},5475:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Weekly=void 0;var r=n(655),i=n(1789),o=n(7880),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.checkDate=function(e){return o.DateTimeUtils.checkDayOfWeek(this.dayOfWeekInternal,e)},t.prototype.checkInterval=function(e){return o.DateTimeUtils.getWeeksBetween(this.start,e)%this.interval==0},t.prototype.calculatePointByInterval=function(e){var t=o.DateTimeUtils.getWeeksBetween(this.start,e),n=Math.floor(t/this.interval);(t%this.interval>0||e.getDay()>=this.dayOfWeekInternal)&&n++;var r=n*this.interval;return this.calcNextPointWithWeekCount(this.start,r)},t.prototype.calculateNearestPoint=function(e){var t=this.dayOfWeekInternal-e.getDay();return t>0?o.DateTimeUtils.addDays(new Date(e),t):this.calcNextPointWithWeekCount(e,1)},t.prototype.calcNextPointWithWeekCount=function(e,t){void 0===t&&(t=1);var n=7*t+this.dayOfWeekInternal-e.getDay();return o.DateTimeUtils.addDays(new Date(e),n)},Object.defineProperty(t.prototype,\"dayOfWeek\",{get:function(){return this.dayOfWeekInternal},set:function(e){this.dayOfWeekInternal=e},enumerable:!1,configurable:!0}),t}(i.RecurrenceBase);t.Weekly=s},7515:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Yearly=void 0;var r=n(655),i=n(1789),o=n(7880),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.checkDate=function(e){return!!o.DateTimeUtils.checkMonth(this.month,e)&&(this._calculateByDayOfWeek?o.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(e,this.dayOfWeekInternal,this.dayOfWeekOccurrenceInternal):o.DateTimeUtils.checkDayOfMonth(this.dayInternal,e))},t.prototype.checkInterval=function(e){return o.DateTimeUtils.getYearsDifference(this.start,e)%this.interval==0},t.prototype.calculatePointByInterval=function(e){var t=o.DateTimeUtils.getYearsDifference(this.start,e),n=Math.floor(t/this.interval)*this.interval,r=this.start.getFullYear()+n,i=this.getSpecDayInMonth(r,this.monthInternal);return o.DateTimeUtils.compareDates(i,e)>=0&&(r+=this.interval,i=this.getSpecDayInMonth(r,this.monthInternal)),i},t.prototype.calculateNearestPoint=function(e){var t=e.getFullYear(),n=this.getSpecDayInMonth(t,this.monthInternal);return o.DateTimeUtils.compareDates(n,e)>=0&&(n=this.getSpecDayInMonth(++t,this.monthInternal)),n},Object.defineProperty(t.prototype,\"month\",{get:function(){return this.monthInternal},set:function(e){this.monthInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"day\",{get:function(){return this.dayInternal},set:function(e){this.dayInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeek\",{get:function(){return this.dayOfWeekInternal},set:function(e){this.dayOfWeekInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dayOfWeekOccurrence\",{get:function(){return this.dayOfWeekOccurrenceInternal},set:function(e){this.dayOfWeekOccurrenceInternal=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"calculateByDayOfWeek\",{get:function(){return this._calculateByDayOfWeek},set:function(e){this._calculateByDayOfWeek=e},enumerable:!1,configurable:!0}),t}(i.RecurrenceBase);t.Yearly=s},2753:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Time=void 0;var n=function(){function e(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),this._hour=0,this._min=0,this._sec=0,this._msec=0,this._fullmsec=0,this.hour=e,this.min=t,this.sec=n,this.msec=r}return Object.defineProperty(e.prototype,\"hour\",{get:function(){return this._hour},set:function(e){e>=0&&e<24&&(this._hour=e,this.updateFullMilleconds())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"min\",{get:function(){return this._min},set:function(e){e>=0&&e<60&&(this._min=e,this.updateFullMilleconds())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"sec\",{get:function(){return this._sec},set:function(e){e>=0&&e<60&&(this._sec=e,this.updateFullMilleconds())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"msec\",{get:function(){return this._msec},set:function(e){e>=0&&e<1e3&&(this._msec=e,this.updateFullMilleconds())},enumerable:!1,configurable:!0}),e.prototype.updateFullMilleconds=function(){var e=60*(60*this._hour+this._min)+this._sec;this._fullmsec=1e3*e+this._msec},e.prototype.getTimeInMilleconds=function(){return this._fullmsec},e}();t.Time=n},9331:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TimeRange=void 0;var r=n(7880),i=function(){function e(e,t){r.DateTimeUtils.caclTimeDifference(e,t)>=0?(this._start=e,this._end=t):(this._start=t,this._end=e)}return Object.defineProperty(e.prototype,\"start\",{get:function(){return this._start},set:function(e){e&&r.DateTimeUtils.caclTimeDifference(e,this._end)>=0&&(this._start=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"end\",{get:function(){return this._end},set:function(e){e&&r.DateTimeUtils.caclTimeDifference(this._start,e)>=0&&(this._end=e)},enumerable:!1,configurable:!0}),e.prototype.isTimeInRange=function(e){return r.DateTimeUtils.caclTimeDifference(this._start,e)>=0&&r.DateTimeUtils.caclTimeDifference(e,this._end)>=0},e.prototype.hasIntersect=function(e){return this.isTimeInRange(e.start)||this.isTimeInRange(e.end)||e.isTimeInRange(this.start)||e.isTimeInRange(this.end)},e.prototype.concatWith=function(e){return!!this.hasIntersect(e)&&(this.start=r.DateTimeUtils.getMinTime(this.start,e.start),this.end=r.DateTimeUtils.getMaxTime(this.end,e.end),!0)},e}();t.TimeRange=i},21:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WorkingTimeCalculator=void 0;var r=n(4432),i=n(1805),o=n(7880),s=function(){function e(e,t){this._workingRules=new r.WorkingDayRuleCollection,this._workDayList=new Array,this._calculationRange=e,this._workingRules.importFromObject(t)}return e.prototype.calculateWorkDayList=function(){if(this._calculationRange){this.clearList();for(var e=this._workingRules.items,t=0;t<e.length;t++)this.processRule(e[t]);this.sortList()}},e.prototype.processRule=function(e){for(var t=e.recurrence.calculatePoints(this._calculationRange.start,this._calculationRange.end),n=function(n){var s=t[n],a=o.DateTimeUtils.getDayNumber(s),l=r._workDayList.filter((function(e){return e.dayNumber==a}))[0];l?(l.isWorkDay=l.isWorkDay&&e.isWorkDay,l.addWorkingIntervals(e.workTimeRanges)):r._workDayList.push(new i.DayWorkingTimeInfo(a,e.isWorkDay,e.workTimeRanges))},r=this,s=0;s<t.length;s++)n(s)},e.prototype.sortList=function(){this._workDayList.sort((function(e,t){return e.dayNumber-t.dayNumber}))},e.prototype.clearList=function(){this._workDayList.splice(0,this._workDayList.length)},e.prototype.calculateNoWorkTimeIntervals=function(){var e=this,t=new Array;return 0==this._workDayList.length&&this.calculateWorkDayList(),this._workDayList.forEach((function(n){return t=t.concat(e.getNoWorkTimeRangesFromDay(n))})),this.concatJointedRanges(t)},e.prototype.concatJointedRanges=function(e){for(var t=new Array,n=0;n<e.length;n++){var r=e[n];t.length>0&&o.DateTimeUtils.compareDates(t[t.length-1].end,r.start)<2?t[t.length-1].end=r.end:t.push(r)}return t},e.prototype.getNoWorkTimeRangesFromDay=function(e){return e.noWorkingIntervals.map((function(t){return o.DateTimeUtils.convertTimeRangeToDateRange(t,e.dayNumber)}))},Object.defineProperty(e.prototype,\"noWorkingIntervals\",{get:function(){return this._noWorkingIntervals||(this._noWorkingIntervals=this.calculateNoWorkTimeIntervals()),this._noWorkingIntervals.slice()},enumerable:!1,configurable:!0}),e.prototype.updateRange=function(e){this._calculationRange=e,this.invalidate()},e.prototype.invalidate=function(){this._noWorkingIntervals=null,this.clearList()},e}();t.WorkingTimeCalculator=s},8401:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WorkingTimeRule=void 0;var r=n(655),i=n(6124),o=n(2491),s=n(7880),a=n(9612),l=n(4902),c=function(e){function t(t,n,r){void 0===t&&(t=null),void 0===n&&(n=!0),void 0===r&&(r=null);var i=e.call(this)||this;return i.isWorkDay=!0,i.workTimeRanges=new Array,i.recurrence=t,i.isWorkDay=n,r&&i.workTimeRanges.concat(r),i}return r.__extends(t,e),t.prototype.assignFromObject=function(t){if((0,o.isDefined)(t)){e.prototype.assignFromObject.call(this,t),this.recurrence=a.RecurrenceFactory.createRecurrenceByType(t.recurrenceType)||new l.Daily,(0,o.isDefined)(t.recurrence)&&this.recurrence.assignFromObject(t.recurrence),(0,o.isDefined)(t.isWorkDay)&&(this.isWorkDay=!!t.isWorkDay);var n=s.DateTimeUtils.convertToTimeRanges(t.workTimeRanges);n&&(this.workTimeRanges=n)}},t}(i.DataObject);t.WorkingTimeRule=c},6626:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttViewApi=void 0;var n=function(){function e(e){this.maxZoom=3,this._ganttView=e}return Object.defineProperty(e.prototype,\"currentZoom\",{get:function(){return this._ganttView.currentZoom},set:function(e){this._ganttView.currentZoom=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderHelper\",{get:function(){return this._ganttView.renderHelper},enumerable:!1,configurable:!0}),e.prototype.getTaskAreaContainerWidth=function(){return this.renderHelper.getTaskAreaContainerWidth()},e.prototype.updateTickSizeWidth=function(){this._ganttView.updateTickSizeWidth()},Object.defineProperty(e.prototype,\"settings\",{get:function(){return this._ganttView.settings},enumerable:!1,configurable:!0}),e.prototype.resetAndUpdate=function(){this._ganttView.resetAndUpdate()},e.prototype.scrollToDateCore=function(e,t){this._ganttView.scrollToDateCore(e,t)},Object.defineProperty(e.prototype,\"ganttOwner\",{get:function(){return this._ganttView.ganttOwner},enumerable:!1,configurable:!0}),e.prototype.scrollLeftByViewType=function(){this._ganttView.scrollLeftByViewType()},Object.defineProperty(e.prototype,\"dataRange\",{get:function(){return this._ganttView.dataRange},enumerable:!1,configurable:!0}),e.prototype.calculateAutoViewType=function(e,t){return this._ganttView.calculateAutoViewType(e,t)},e.prototype.zoomIn=function(e){void 0===e&&(e=this.getTaskAreaContainerWidth()/2);var t=this.renderHelper.getTargetDateByPos(e),n=this.settings.viewTypeRange.min;this.currentZoom<this.maxZoom?(this.currentZoom++,this.updateTickSizeWidth(),this.resetAndUpdate()):this.settings.viewType>n&&(this.currentZoom=1,this.setViewType(this.settings.viewType-1,!1)),this.scrollToDateCore(t,-e)},e.prototype.zoomOut=function(e){void 0===e&&(e=this.renderHelper.getTaskAreaContainerWidth()/2);var t=this.renderHelper.getTargetDateByPos(e),n=this.settings.viewTypeRange.max;this.currentZoom>1?(this.currentZoom--,this.updateTickSizeWidth(),this.resetAndUpdate()):this.settings.viewType<n&&(this.currentZoom=this.maxZoom,this.setViewType(this.settings.viewType+1,!1)),this.scrollToDateCore(t,-e)},e.prototype.setViewType=function(e,t){void 0===t&&(t=!0),null==e&&(e=this.calculateAutoViewType(this.dataRange.start,this.dataRange.end)),this.settings.viewType!==e&&(this.settings.viewType=e,this.updateTickSizeWidth(),this.resetAndUpdate(),t&&this.scrollLeftByViewType(),this.ganttOwner.updateGanttViewType&&this.ganttOwner.updateGanttViewType(e))},e.prototype.setViewTypeRange=function(e,t){void 0!==e&&(this.settings.viewTypeRange.min=Math.min(e,t)),void 0!==t&&(this.settings.viewTypeRange.max=Math.max(e,t));var n=this.settings.viewTypeRange.min,r=this.settings.viewTypeRange.max,i=this.settings.viewType;n>i?this.setViewType(n):r<i&&this.setViewType(r)},e}();t.GanttViewApi=n},5098:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditController=void 0;var r=n(2449),i=n(858),o=n(6907),s=n(9279),a=n(1886),l=n(9080),c=n(9201),u=function(){function e(e){this.showInfoDelay=1e3,this.taskIndex=-1,this.successorIndex=-1,this.isEditingInProgress=!1,this.disableTaskEditBox=!1,this.isTaskEditBoxShown=!1,this.settings=e,this.createElements()}return Object.defineProperty(e.prototype,\"taskId\",{get:function(){return this.viewModel.items[this.taskIndex].task.internalId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"successorId\",{get:function(){return this.viewModel.items[this.successorIndex].task.internalId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"task\",{get:function(){return this.viewItem.task},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewItem\",{get:function(){return this.viewModel.items[this.taskIndex]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderHelper\",{get:function(){return this.settings.getRenderHelper()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ganttSettings\",{get:function(){return this.settings.getGanttSettings()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewModel\",{get:function(){return this.settings.getViewModel()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"commandManager\",{get:function(){return this.settings.getCommandManager()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"updateTaskCommand\",{get:function(){return this.commandManager.updateTaskCommand},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"validationController\",{get:function(){return this.settings.getValidationController()},enumerable:!1,configurable:!0}),e.prototype.raiseTaskMoving=function(e,t,n,r){return this.settings.getModelManipulator().dispatcher.raiseTaskMoving(e,t,n,r)},Object.defineProperty(e.prototype,\"tooltip\",{get:function(){var e;return null!==(e=this._tooltip)&&void 0!==e||(this._tooltip=new a.TaskEditTooltip(this.baseElement,this.tooltipSettings,this.renderHelper.elementTextHelperCultureInfo)),this._tooltip.tooltipSettings=this.tooltipSettings,this._tooltip},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tooltipSettings\",{get:function(){var e=this;return l.TooltipSettings.parse({getHeaderHeight:this.settings.getRenderHelper().header.clientHeight,getTaskProgressTooltipContentTemplate:this.ganttSettings.taskProgressTooltipContentTemplate,getTaskTimeTooltipContentTemplate:this.ganttSettings.taskTimeTooltipContentTemplate,getTaskTooltipContentTemplate:this.ganttSettings.taskTooltipContentTemplate,destroyTemplate:function(t){e.settings.destroyTemplate(t)},formatDate:function(t){return e.settings.formatDate(t)},getTaskAreaContainer:function(){return e.settings.getRenderHelper().taskAreaContainer}})},enumerable:!1,configurable:!0}),e.prototype.show=function(t){if(!this.isEditingInProgress&&!this.disableTaskEditBox){this.taskIndex=t,this.hide(),this.changeWrapInfo(),this.baseElement.className=e.CLASSNAMES.TASK_EDIT_BOX,this.displayDependency(),this.task.isMilestone()&&!this.viewItem.isCustom?this.baseElement.className=this.baseElement.className+\" milestone\":(this.isTaskUpdateAllowed()||(this.baseElement.className=this.baseElement.className+\" \"+e.CLASSNAMES.TASK_EDIT_HIDE_UPDATING),this.viewItem.isCustom&&this.baseElement.classList.add(e.CLASSNAMES.TASK_EDIT_BOX_CUSTOM));var n=this.settings.getGanttSettings().editing.taskHoverDelay||0;this.taskDateRange=new i.DateRange(this.task.start,this.task.end),this.displayTaskEditBox(n),this.displayProgressEdit(),this.displayStartEndEditElements()}},e.prototype.displayStartEndEditElements=function(){!this.task.isMilestone()&&this.isTaskUpdateAllowed()&&this.canUpdateTask()?(this.startEdit.style.display=\"block\",this.endEdit.style.display=\"block\"):(this.startEdit.style.display=\"none\",this.endEdit.style.display=\"none\")},e.prototype.displayProgressEdit=function(){!this.viewItem.isCustom&&this.canUpdateTask()&&this.isTaskUpdateAllowed()&&this.wrapInfo.size.width>this.wrapInfo.size.height?(this.progressEdit.style.display=\"block\",this.progressEdit.style.left=this.task.normalizedProgress/100*this.wrapInfo.size.width-this.progressEdit.offsetWidth/2+\"px\"):this.progressEdit.style.display=\"none\"},e.prototype.displayDependency=function(){this.ganttSettings.editing.enabled&&this.ganttSettings.editing.allowDependencyInsert&&this.ganttSettings.showDependencies||(this.baseElement.className=this.baseElement.className+\" hide-dependency\")},e.prototype.changeWrapInfo=function(){this.updateWrapInfo(),this.wrapInfo.assignPosition(this.baseElement),this.wrapInfo.assignSize(this.baseElement)},e.prototype.displayTaskEditBox=function(e){var t=this;void 0===e&&(e=0);var n=function(){t.renderHelper.taskArea.appendChild(t.baseElement),t.isTaskEditBoxShown=!0};e?this.timerId=setTimeout(n,e):n()},e.prototype.endEditing=function(){this.isEditingInProgress=!1,this.hide()},e.prototype.hide=function(){this.isTaskEditBoxShown=!1;var e=this.baseElement.parentNode;e&&e.removeChild(this.baseElement),this.tooltip.hide(),clearTimeout(this.timerId)},e.prototype.cancel=function(){clearTimeout(this.timerId)},e.prototype.showTaskInfo=function(e,t){void 0===t&&(t=500),this.timerId&&(t=this.showInfoDelay),this.tooltip.showInfo(this.task,e,t)},e.prototype.updateWrapInfo=function(){this.wrapInfo=this.getTaskWrapperElementInfo(this.taskIndex),this.wrapInfo.position.x--},e.prototype.isAllowedToConnectTasks=function(e){var t,n=this.viewModel.items[e];return this.validationController.canCreateDependency(this.taskId,null===(t=n.task)||void 0===t?void 0:t.internalId)},e.prototype.showDependencySuccessor=function(e){if(this.isAllowedToConnectTasks(e)){this.successorIndex=e;var t=this.getTaskWrapperElementInfo(e);t.assignPosition(this.dependencySuccessorBaseElement),t.assignSize(this.dependencySuccessorBaseElement),t.assignSize(this.dependencySuccessorFrame),this.renderHelper.taskArea.appendChild(this.dependencySuccessorBaseElement)}},e.prototype.hideDependencySuccessor=function(){var e=this.dependencySuccessorBaseElement.parentNode;e&&e.removeChild(this.dependencySuccessorBaseElement),this.successorIndex=-1},e.prototype.processProgress=function(e){if(this.isTaskUpdateAllowed()){this.isEditingInProgress=!0;var t=e.x-this.wrapInfo.position.x,n=0;e.x>this.wrapInfo.position.x&&(n=e.x<this.wrapInfo.position.x+this.wrapInfo.size.width?Math.round(t/this.baseElement.clientWidth*100):100),this.progressEdit.style.left=n/100*this.wrapInfo.size.width-this.progressEdit.offsetWidth/2+\"px\",this.tooltip.showProgress(n,o.DomUtils.getAbsolutePositionX(this.progressEdit)+this.progressEdit.offsetWidth/2)}},e.prototype.confirmProgress=function(){if(this.isTaskUpdateAllowed()){this.isEditingInProgress=!1;var e=Math.round((this.progressEdit.offsetLeft+this.progressEdit.offsetWidth/2)/this.wrapInfo.size.width*100);this.updateTaskCommand.execute(this.taskId,{progress:e})}},e.prototype.processEnd=function(e){if(this.isTaskUpdateAllowed()){this.baseElement.className=this.baseElement.className+\" move\",this.isEditingInProgress=!0;var t=e.x>this.wrapInfo.position.x?e.x:this.wrapInfo.position.x,n=t-this.wrapInfo.position.x;this.baseElement.style.width=(n<1?0:n)+\"px\";var r=this.task.start,i=this.renderHelper.gridLayoutCalculator.getDateByPos(t);i.setSeconds(0),i<r||n<1?this.taskDateRange.end.setTime(r.getTime()):this.taskDateRange.end=this.getCorrectedDate(this.task.end,i),this.tooltip.showTime(r,this.taskDateRange.end,o.DomUtils.getAbsolutePositionX(this.baseElement)+this.baseElement.clientWidth)}},e.prototype.confirmEnd=function(){this.isTaskUpdateAllowed()&&(this.baseElement.className=e.CLASSNAMES.TASK_EDIT_BOX,this.isEditingInProgress=!1,this.updateTaskCommand.execute(this.taskId,{end:this.taskDateRange.end}),this.hide(),this.updateWrapInfo())},e.prototype.processStart=function(e){if(this.isTaskUpdateAllowed()){this.baseElement.className=this.baseElement.className+\" move\",this.isEditingInProgress=!0;var t=e.x<this.wrapInfo.position.x+this.wrapInfo.size.width?e.x:this.wrapInfo.position.x+this.wrapInfo.size.width,n=this.wrapInfo.size.width-(t-this.wrapInfo.position.x);this.baseElement.style.left=t+\"px\",this.baseElement.style.width=(n<1?0:n)+\"px\";var r=this.task.end,i=this.renderHelper.gridLayoutCalculator.getDateByPos(t);i.setSeconds(0),i>r||n<1?this.taskDateRange.start.setTime(r.getTime()):this.taskDateRange.start=this.getCorrectedDate(this.task.start,i),this.tooltip.showTime(this.taskDateRange.start,r,o.DomUtils.getAbsolutePositionX(this.baseElement))}},e.prototype.confirmStart=function(){this.isTaskUpdateAllowed()&&(this.baseElement.className=e.CLASSNAMES.TASK_EDIT_BOX,this.isEditingInProgress=!1,this.updateTaskCommand.execute(this.taskId,{start:this.taskDateRange.start}),this.hide(),this.updateWrapInfo())},e.prototype.processMove=function(e){if(this.isTaskUpdateAllowed()&&this.isTaskEditBoxShown){this.baseElement.className=this.baseElement.className+\" move\";var t=this.baseElement.offsetLeft+e;this.baseElement.style.left=t+\"px\";var n=this.renderHelper.gridLayoutCalculator.getDateByPos(t);this.taskDateRange.start=this.getCorrectedDate(this.task.start,n);var r=c.DateUtils.getRangeMSPeriod(this.task.start,this.task.end);return this.taskDateRange.end=c.DateUtils.getDSTCorrectedTaskEnd(this.taskDateRange.start,r),this.isEditingInProgress=this.raiseTaskMoving(this.task,this.taskDateRange.start,this.taskDateRange.end,this.onTaskMovingCallback.bind(this)),this.isEditingInProgress&&this.tooltip.showTime(this.taskDateRange.start,this.taskDateRange.end,o.DomUtils.getAbsolutePositionX(this.baseElement)),this.isEditingInProgress}return!0},e.prototype.onTaskMovingCallback=function(e,t){if(this.taskDateRange.start!==e||this.taskDateRange.end!==t){var n=this.renderHelper.gridLayoutCalculator,r=n.getPosByDate(e),i=n.getPosByDate(t)-r;this.baseElement.style.left=r+\"px\",this.baseElement.style.width=(i<1?0:i)+\"px\",this.taskDateRange.start=e,this.taskDateRange.end=t}},e.prototype.confirmMove=function(){this.isTaskUpdateAllowed()&&(this.ganttSettings.editing.allowDependencyInsert||(this.baseElement.className=this.baseElement.className+\" hide-dependency\"),this.isEditingInProgress&&(this.baseElement.className=e.CLASSNAMES.TASK_EDIT_BOX,this.updateTaskCommand.execute(this.taskId,{start:this.taskDateRange.start,end:this.taskDateRange.end}),this.updateWrapInfo(),this.hide(),this.isEditingInProgress=!1))},e.prototype.getCorrectedDate=function(e,t){if(this.ganttSettings.viewType>r.ViewType.SixHours){var n=t.getFullYear(),i=t.getMonth(),o=t.getDate(),s=this.ganttSettings.viewType===r.ViewType.Days?t.getHours():e.getHours(),a=e.getMinutes(),l=e.getSeconds(),c=e.getMilliseconds();return new Date(n,i,o,s,a,l,c)}return t},e.prototype.startDependency=function(t){this.dependencyLine=document.createElement(\"DIV\"),this.dependencyLine.className=e.CLASSNAMES.TASK_EDIT_DEPENDENCY_LINE,this.renderHelper.taskArea.appendChild(this.dependencyLine),this.startPosition=t},e.prototype.processDependency=function(e){this.isEditingInProgress=!0,this.drawline(this.startPosition,e)},e.prototype.endDependency=function(e){this.isEditingInProgress=!1,null!=e&&this.commandManager.createDependencyCommand.execute(this.task.internalId,this.successorId,e);var t=this.dependencyLine.parentNode;t&&t.removeChild(this.dependencyLine),this.dependencyLine=null,this.hideDependencySuccessor(),this.hide()},e.prototype.selectDependency=function(e){this.ganttSettings.editing.allowDependencyDelete&&(this.dependencyId=e)},e.prototype.isDependencySelected=function(e){return this.dependencyId&&this.dependencyId===e},e.prototype.deleteSelectedDependency=function(){this.dependencyId&&this.commandManager.removeDependencyCommand.execute(this.dependencyId)},e.prototype.getTaskWrapperElementInfo=function(e){var t=this.renderHelper.gridLayoutCalculator,n=t.getTaskWrapperElementInfo(e);return n.size.width=t.getTaskWidth(e),n.size.height=t.getTaskHeight(e),n},e.prototype.createElements=function(){this.baseElement=document.createElement(\"DIV\"),this.baseFrame=document.createElement(\"DIV\"),this.baseFrame.className=e.CLASSNAMES.TASK_EDIT_FRAME,this.baseElement.appendChild(this.baseFrame),this.progressEdit=document.createElement(\"DIV\"),this.progressEdit.className=e.CLASSNAMES.TASK_EDIT_PROGRESS,this.baseFrame.appendChild(this.progressEdit),this.progressEdit.appendChild(document.createElement(\"DIV\")),this.dependencyFinish=document.createElement(\"DIV\"),this.dependencyFinish.classList.add(e.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH),s.Browser.TouchUI&&this.dependencyFinish.classList.add(e.CLASSNAMES.TASK_EDIT_TOUCH),this.baseFrame.appendChild(this.dependencyFinish),this.dependencyStart=document.createElement(\"DIV\"),this.dependencyStart.classList.add(e.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT),s.Browser.TouchUI&&this.dependencyStart.classList.add(e.CLASSNAMES.TASK_EDIT_TOUCH),this.baseFrame.appendChild(this.dependencyStart),this.startEdit=document.createElement(\"DIV\"),this.startEdit.className=e.CLASSNAMES.TASK_EDIT_START,this.baseFrame.appendChild(this.startEdit),this.endEdit=document.createElement(\"DIV\"),this.endEdit.className=e.CLASSNAMES.TASK_EDIT_END,this.baseFrame.appendChild(this.endEdit),this.dependencySuccessorBaseElement=document.createElement(\"DIV\"),this.dependencySuccessorBaseElement.className=e.CLASSNAMES.TASK_EDIT_BOX_SUCCESSOR,this.dependencySuccessorFrame=document.createElement(\"DIV\"),this.dependencySuccessorFrame.className=e.CLASSNAMES.TASK_EDIT_FRAME_SUCCESSOR,this.dependencySuccessorBaseElement.appendChild(this.dependencySuccessorFrame),this.dependencySuccessorStart=document.createElement(\"DIV\"),this.dependencySuccessorStart.classList.add(e.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH),s.Browser.TouchUI&&this.dependencySuccessorStart.classList.add(e.CLASSNAMES.TASK_EDIT_TOUCH),this.dependencySuccessorFrame.appendChild(this.dependencySuccessorStart),this.dependencySuccessorFinish=document.createElement(\"DIV\"),this.dependencySuccessorFinish.classList.add(e.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT),s.Browser.TouchUI&&this.dependencySuccessorFinish.classList.add(e.CLASSNAMES.TASK_EDIT_TOUCH),this.dependencySuccessorFrame.appendChild(this.dependencySuccessorFinish),this._tooltip=new a.TaskEditTooltip(this.baseElement,this.tooltipSettings,this.renderHelper.elementTextHelperCultureInfo),this.attachEvents()},e.prototype.attachEvents=function(){this.onMouseLeaveHandler=function(){this.isEditingInProgress||this.hide()}.bind(this),this.baseElement.addEventListener(\"mouseleave\",this.onMouseLeaveHandler)},e.prototype.drawline=function(e,t){if(e.x>t.x){var n=t;t=e,e=n}var r=Math.atan((e.y-t.y)/(t.x-e.x));r=-(r=180*r/Math.PI);var i=Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y));this.dependencyLine.style.left=e.x+\"px\",this.dependencyLine.style.top=e.y+\"px\",this.dependencyLine.style.width=i+\"px\",this.dependencyLine.style.transform=\"rotate(\"+r+\"deg)\"},e.prototype.canUpdateTask=function(){return!this.viewModel.isTaskToCalculateByChildren(this.task.internalId)},e.prototype.isTaskUpdateAllowed=function(){var e=this.ganttSettings.editing;return e.enabled&&e.allowTaskUpdate},e.prototype.detachEvents=function(){var e;null===(e=this.baseElement)||void 0===e||e.removeEventListener(\"mouseleave\",this.onMouseLeaveHandler)},e.CLASSNAMES={TASK_EDIT_BOX:\"dx-gantt-task-edit-wrapper\",TASK_EDIT_BOX_CUSTOM:\"dx-gantt-task-edit-wrapper-custom\",TASK_EDIT_FRAME:\"dx-gantt-task-edit-frame\",TASK_EDIT_PROGRESS:\"dx-gantt-task-edit-progress\",TASK_EDIT_DEPENDENCY_RIGTH:\"dx-gantt-task-edit-dependency-r\",TASK_EDIT_DEPENDENCY_LEFT:\"dx-gantt-task-edit-dependency-l\",TASK_EDIT_START:\"dx-gantt-task-edit-start\",TASK_EDIT_END:\"dx-gantt-task-edit-end\",TASK_EDIT_DEPENDENCY_LINE:\"dx-gantt-task-edit-dependency-line\",TASK_EDIT_BOX_SUCCESSOR:\"dx-gantt-task-edit-wrapper-successor\",TASK_EDIT_FRAME_SUCCESSOR:\"dx-gantt-task-edit-frame-successor\",TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH:\"dx-gantt-task-edit-successor-dependency-r\",TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT:\"dx-gantt-task-edit-successor-dependency-l\",TASK_EDIT_TOUCH:\"dx-gantt-edit-touch\",TASK_EDIT_HIDE_UPDATING:\"hide-updating\"},e}();t.TaskEditController=u},1886:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditTooltip=void 0;var r=n(6907),i=function(){function e(e,t,n){this.parentElement=e,this.cultureInfo=n,this.tooltipSettings=t}return Object.defineProperty(e.prototype,\"baseElement\",{get:function(){return this._baseElement||this.createTooltipContainer(),this._baseElement},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"headerHeight\",{get:function(){return this.tooltipSettings.getHeaderHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainer\",{get:function(){return this.tooltipSettings.getTaskAreaContainer()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTooltipContentTemplate\",{get:function(){return this.tooltipSettings.getTaskTooltipContentTemplate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskProgressTooltipContentTemplate\",{get:function(){return this.tooltipSettings.getTaskProgressTooltipContentTemplate},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTimeTooltipContentTemplate\",{get:function(){return this.tooltipSettings.getTaskTimeTooltipContentTemplate},enumerable:!1,configurable:!0}),e.prototype.destroyTemplate=function(e){this.tooltipSettings.destroyTemplate(e)},e.prototype.formatDate=function(e){return this.tooltipSettings.formatDate(e)},e.prototype.createTooltipContainer=function(){this._baseElement=document.createElement(\"DIV\"),this._baseElement.className=e.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS,this.parentElement.appendChild(this._baseElement)},e.prototype.setDefaultTooltip=function(t){this.defaultTooltip=document.createElement(\"DIV\"),this.defaultTooltip.className=e.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;var n=document.createElement(\"DIV\");n.className=e.CLASSNAMES.TASK_EDIT_TASK_TITLE;var r=document.createElement(\"SPAN\");if(n.appendChild(r),this.defaultTooltip.appendChild(n),r.innerText=t.title,this.defaultTooltip.appendChild(this.getTimeContent(t.start,t.end)),!isNaN(t.progress)){var i=document.createElement(\"DIV\");i.className=e.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;var o=document.createElement(\"SPAN\"),s=document.createElement(\"SPAN\");i.appendChild(o),i.appendChild(s),this.defaultTooltip.appendChild(i),o.innerText=(this.cultureInfo.progress?this.cultureInfo.progress:\"Progress\")+\": \",s.innerText=t.progress+\"%\"}this.baseElement.appendChild(this.defaultTooltip)},e.prototype.setDefaultProgressTooltip=function(t){this.defaultTooltip=document.createElement(\"DIV\"),this.defaultTooltip.className=e.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT,this.defaultTooltip.innerText=t+\"%\",this.baseElement.appendChild(this.defaultTooltip)},e.prototype.setDefaultTimeTooltip=function(t,n){this.defaultTooltip=document.createElement(\"DIV\"),this.defaultTooltip.className=e.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT,this.defaultTooltip.appendChild(this.getTimeContent(t,n)),this.baseElement.appendChild(this.defaultTooltip)},e.prototype.showInfo=function(e,t,n){var r=this;void 0===n&&(n=0);var i=this.taskTooltipContentTemplate;this.destroyTemplate(this.baseElement),i?i(this.baseElement,e,(function(){r.showTooltip(t,!1,n)})):(this.setDefaultTooltip(e),this.showTooltip(t,!1,n))},e.prototype.showProgress=function(e,t){var n=this,r=this.taskProgressTooltipContentTemplate;this.destroyTemplate(this.baseElement),r?r(this.baseElement,{progress:e},(function(){n.showTooltip(t)})):(this.setDefaultProgressTooltip(e),this.show(t))},e.prototype.showTime=function(e,t,n){var r=this,i=this.taskTimeTooltipContentTemplate;this.destroyTemplate(this.baseElement),i?i(this.baseElement,{start:e,end:t},(function(){r.showTooltip(n)})):(this.setDefaultTimeTooltip(e,t),this.show(n))},e.prototype.showTooltip=function(e,t,n){var r,i=this;if(void 0===t&&(t=!0),void 0===n&&(n=0),null===(r=this.baseElement)||void 0===r?void 0:r.innerHTML){var o=function(){i.show(e,t)};n?this.timerId=setTimeout(o,n):o()}},e.prototype.show=function(t,n){var r,i,o,s=this;void 0===n&&(n=!0),null===(r=this.defaultTooltip)||void 0===r||r.classList.remove(e.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER),null===(i=this.defaultTooltip)||void 0===i||i.classList.remove(e.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE),this.baseElement.style.display=\"block\";var a=this.getLeftPosition(t),l=this.needToShowUnderParent(),c=this.getTopPosition(l),u=l?e.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER:e.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE;null===(o=this.defaultTooltip)||void 0===o||o.classList.add(u),this.baseElement.style.left=a+\"px\",this.baseElement.style.top=c+\"px\",n&&(this.timerId&&clearTimeout(this.timerId),this.timerId=setTimeout((function(){s.hide()}),1500))},e.prototype.hide=function(){this.baseElement.style.display=\"none\",this.destroyTemplate(this.baseElement),clearTimeout(this.timerId)},e.prototype.getTimeContent=function(t,n){var r=document.createElement(\"TABLE\");r.className=e.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;var i=document.createElement(\"TBODY\");r.appendChild(i);var o=document.createElement(\"TR\"),s=document.createElement(\"TD\"),a=document.createElement(\"TD\"),l=document.createElement(\"TR\"),c=document.createElement(\"TD\"),u=document.createElement(\"TD\");return o.appendChild(s),o.appendChild(a),l.appendChild(c),l.appendChild(u),i.appendChild(o),i.appendChild(l),s.innerText=(this.cultureInfo.start?this.cultureInfo.start:\"Start\")+\": \",a.innerText=this.formatDate(t),c.innerText=(this.cultureInfo.end?this.cultureInfo.end:\"End\")+\": \",u.innerText=this.formatDate(n),r},e.prototype.getLeftPosition=function(t){var n=t-r.DomUtils.getAbsolutePositionX(this.parentElement)-2*e.defaultArrowHeight;if(this.taskAreaContainer){var i=r.DomUtils.getAbsolutePositionX(this.taskAreaContainer.getElement())+this.taskAreaContainer.getWidth(),o=t+this.baseElement.clientWidth-i;o>0&&(n-=o)}return n},e.prototype.getTopPosition=function(t){return t?this.parentElement.clientHeight+e.defaultArrowHeight:-this.baseElement.clientHeight-e.defaultArrowHeight},e.prototype.needToShowUnderParent=function(){var t,n=r.DomUtils.getAbsolutePositionY(this.parentElement)-this.headerHeight-r.DomUtils.getDocumentScrollTop()-e.defaultHeightOffset,i=(null===(t=this.taskAreaContainer)||void 0===t?void 0:t.scrollTop)||0,o=this.parentElement.offsetTop-i;return this.baseElement.clientHeight>n||this.baseElement.clientHeight>o},e.CLASSNAMES={TASK_EDIT_PROGRESS_STATUS:\"dx-gantt-task-edit-tooltip\",TASK_EDIT_TOOLTIP_DEFAULT:\"dx-gantt-task-edit-tooltip-default\",TASK_EDIT_TASK_TITLE:\"dx-gantt-task-title\",TASK_EDIT_PROGRESS_STATUS_TIME:\"dx-gantt-status-time\",TASK_EDIT_TOOLTIP_ARROW_BEFORE:\"dx-gantt-task-edit-tooltip-before\",TASK_EDIT_TOOLTIP_ARROW_AFTER:\"dx-gantt-task-edit-tooltip-after\"},e.defaultArrowHeight=5,e.defaultHeightOffset=15,e}();t.TaskEditTooltip=i},3336:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttMovingHelper=void 0;var r=n(9279),i=n(3714),o=function(){function e(e){this.taskAreaContainer=e,this.movingInfo=null}return e.prototype.startMoving=function(e){this.movingInfo=this.calcMovingInfo(e),this.updateGanttAreaCursor(!0)},e.prototype.cancelMoving=function(){this.movingInfo=null},e.prototype.onMouseMove=function(e){this.move(e)},e.prototype.onMouseUp=function(e){this.cancelMoving(),this.updateGanttAreaCursor(!1)},e.prototype.move=function(e){this.updateScrollPosition(e)},e.prototype.updateScrollPosition=function(e){var t=Math.round(i.EvtUtils.getEventX(e)),n=Math.round(i.EvtUtils.getEventY(e)),r=t-this.movingInfo.eventX,o=n-this.movingInfo.eventY,s=r<0?-1:1,a=o<0?-1:1,l=s<0?this.movingInfo.maxRightDelta:this.movingInfo.maxLeftDelta,c=a<0?this.movingInfo.maxBottomDelta:this.movingInfo.maxTopDelta;Math.abs(r)>l&&(r=l*s),Math.abs(o)>c&&(o=c*a);var u=this.movingInfo.scrollLeft-r,d=this.movingInfo.scrollTop-o,p=this.taskAreaContainer;p.scrollLeft!==u&&(p.scrollLeft=u),p.scrollTop!==d&&(p.scrollTop=d)},e.prototype.calcMovingInfo=function(e){var t=this.taskAreaContainer;return{eventX:i.EvtUtils.getEventX(e),eventY:i.EvtUtils.getEventY(e),scrollLeft:t.scrollLeft,scrollTop:t.scrollTop,maxLeftDelta:t.scrollLeft,maxRightDelta:t.scrollWidth-t.scrollLeft-t.getElement().offsetWidth,maxTopDelta:t.scrollTop,maxBottomDelta:t.scrollHeight-t.scrollTop-t.getElement().offsetHeight}},e.prototype.updateGanttAreaCursor=function(e){var t=r.Browser.IE?\"move\":\"grabbing\";this.taskAreaContainer.getElement().style.cursor=e?t:\"default\"},e}();t.GanttMovingHelper=o},6958:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaStateController=void 0;var r=n(8900),i=n(6907),o=n(3714),s=n(5098),a=n(2449),l=n(5376),c=n(4264),u=n(9155),d=n(125),p=n(1404),h=n(6591),f=n(2395),g=n(7295),y=function(){function e(e,t,n){var i=this;this.position=new r.Point(-1,-1),this._pointers={},this._listener=e,this._listener.setHandler(p.TaskAreaStateEventNames.STATE_EXIT,(function(){i.switchToDefaultState()})),this._listener.setHandler(p.TaskAreaStateEventNames.GET_POINTERS_INFO,(function(e){return i.getPointersInfo(e.triggerEvent)})),this._taskArea=t,this._cellSize=n,this.switchToDefaultState()}return e.prototype.onKeyDown=function(e){this._state.onKeyDown(e)},e.prototype.onScroll=function(e){this._state.onScroll(e)},e.prototype.onContextMenu=function(e){this._state.onContextMenu(e)},e.prototype.onMouseWheel=function(e){e.ctrlKey&&(e.preventDefault(),e.stopPropagation(),this.switchState(h.TaskAreaZoomState)),this._state.onMouseWheel(e)},Object.defineProperty(e.prototype,\"currentState\",{get:function(){return this._state},enumerable:!1,configurable:!0}),e.prototype.onTaskPointerEnter=function(e){this._state.onTaskPointerEnter(e)},e.prototype.onTaskAreaPointerLeave=function(e){this._state.onTaskAreaLeave(e)},e.prototype.onDocumentPointerCancel=function(e){this._clearPointerInfo(e)},e.prototype.onDocumentPointerDown=function(e){this._updatePinterInfo(e),this.toggleStateOnPointerDown(e),this._state.onDocumentPointerDown(e)},e.prototype.onDocumentPointerMove=function(e){this._updatePinterInfo(e),this.toggleStateOnPointerMove(e),this._state.onDocumentPointerMove(e)},e.prototype.onDocumentPointerUp=function(e){this._clearPointerInfo(e),this._state.onDocumentPointerUp(e)},e.prototype.onTaskTouchStart=function(e){this._state.onTaskTouchStart(e)},e.prototype.onTouchStart=function(e){this.toggleStateOnPointerDown(e),this._state.onTouchStart(e)},e.prototype.onTouchEnd=function(e){this._state.onTouchEnd(e)},e.prototype.onTouchMove=function(e){this.toggleStateOnPointerMove(e),this._state.onTouchMove(e)},e.prototype.onClick=function(e){this._state.onClick(e)},e.prototype.onDblClick=function(e){this._state.onDblClick(e)},e.prototype.onTaskAreaMouseLeave=function(e){this._state.onTaskAreaLeave(e)},e.prototype.onTaskElementHover=function(e){this._state.onTaskHover(e)},e.prototype.onTaskElementLeave=function(e){this._state.onTaskLeave(e)},e.prototype.onMouseUp=function(e){this._state.onMouseUp(e)},e.prototype.onMouseMove=function(e){this._state.onMouseMove(e)},e.prototype.onMouseDown=function(e){switch(this.getTaskAreaEventSource(e)){case a.TaskAreaEventSource.TaskArea:this.processMouseDownOnTaskArea(e);break;case a.TaskAreaEventSource.TaskEdit_Frame:this.switchState(g.TaskMoveState);break;case a.TaskAreaEventSource.TaskEdit_Progress:case a.TaskAreaEventSource.TaskEdit_Start:case a.TaskAreaEventSource.TaskEdit_End:this.switchState(f.TaskEditState);break;case a.TaskAreaEventSource.TaskEdit_DependencyStart:case a.TaskAreaEventSource.TaskEdit_DependencyFinish:this.switchState(c.TaskAreaDependencyState)}this._state.onMouseDown(e)},Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._taskArea},enumerable:!1,configurable:!0}),e.prototype.switchToDefaultState=function(){this._state=new l.TaskAreaDefaultState(this._listener,this.taskArea,this._cellSize)},e.prototype.switchState=function(e){this._state instanceof e||(this._state&&this._state.finish(),this._state=new e(this._listener,this.taskArea,this._cellSize),this._state.start())},e.prototype.processMouseDownOnTaskArea=function(e){o.EvtUtils.isLeftButtonPressed(e)&&!u.TaskAreaDomHelper.isConnectorLine(e)&&this.switchState(d.TaskAreaScrollState)},e.prototype.toggleStateOnPointerDown=function(e){var t=this.toggleStateWhenMultiOrOutsideTouch(e);if(this.position=new r.Point(o.EvtUtils.getEventX(e),o.EvtUtils.getEventY(e)),!t&&this._canStartDrag(e))switch(this.getTaskAreaEventSource(e)){case a.TaskAreaEventSource.TaskEdit_DependencyStart:case a.TaskAreaEventSource.TaskEdit_DependencyFinish:this.switchState(c.TaskAreaDependencyState);break;case a.TaskAreaEventSource.TaskEdit_Progress:case a.TaskAreaEventSource.TaskEdit_Start:case a.TaskAreaEventSource.TaskEdit_End:this.switchState(f.TaskEditState)}},e.prototype.toggleStateOnPointerMove=function(e){var t=this.toggleStateWhenMultiOrOutsideTouch(e),n=Math.abs(this.position.x-o.EvtUtils.getEventX(e))>1||Math.abs(this.position.y-o.EvtUtils.getEventY(e))>1;if(!t&&n&&this._canStartDrag(e)&&this._state instanceof l.TaskAreaDefaultState)switch(this.getTaskAreaEventSource(e)){case a.TaskAreaEventSource.TaskArea:this.checkEventInTaskEditFrameArea(e)?this.switchState(g.TaskMoveState):this.switchState(d.TaskAreaScrollState);break;case a.TaskAreaEventSource.TaskEdit_Frame:this.isTaskUpdateDisabled()?this.switchState(d.TaskAreaScrollState):this.switchState(g.TaskMoveState);break;case a.TaskAreaEventSource.TaskEdit_Progress:case a.TaskAreaEventSource.TaskEdit_Start:case a.TaskAreaEventSource.TaskEdit_End:this.switchState(f.TaskEditState)}},e.prototype.toggleStateWhenMultiOrOutsideTouch=function(e){var t=this._getActivePointersCount(e),n=!this.isInTaskArea(e),r=t>=2||n;return t>2||n?this.switchState(l.TaskAreaDefaultState):2===t&&this.switchState(h.TaskAreaZoomState),r},e.prototype.checkEventInTaskEditFrameArea=function(e){var t,n,r=this.getTaskEditFrameElement();if(this.isTaskUpdateDisabled()||!r)return!1;var i=(null==e?void 0:e.clientX)||(null===(t=null==e?void 0:e.touches[0])||void 0===t?void 0:t.clientX),o=(null==e?void 0:e.clientY)||(null===(n=null==e?void 0:e.touches[0])||void 0===n?void 0:n.clientY),s=r.getBoundingClientRect();return i>=s.left&&i<=s.left+s.width&&o>=s.top&&o<=s.top+s.height},e.prototype.isTaskUpdateDisabled=function(){return\"false\"===this._taskArea.getAttribute(\"task-edit-enabled\")},e.prototype.isInTaskArea=function(e){return i.DomUtils.isItParent(this._taskArea,o.EvtUtils.getEventSource(e))},e.prototype.getTaskEditFrameElement=function(){return this._taskArea.getElementsByClassName(s.TaskEditController.CLASSNAMES.TASK_EDIT_FRAME)[0]},e.prototype._updatePinterInfo=function(e){var t=e.pointerId;this._pointers[t]={pageX:e.pageX,pageY:e.pageY,pointerType:e.pointerType}},e.prototype._clearPointerInfo=function(e){var t=e.pointerId;delete this._pointers[t]},e.prototype.isTouchEvent=function(e){return u.TaskAreaDomHelper.isTouchEvent(e)},e.prototype.isPointerEvent=function(e){return u.TaskAreaDomHelper.isPointerEvent(e)},e.prototype._getActivePointersCount=function(e){var t=this;return this.isTouchEvent(e)?e.touches.length:Object.keys(this._pointers).filter((function(n){return t._pointers[n].pointerType===e.pointerType})).length},e.prototype.getPointersInfo=function(e){var t=this,n=null==e?void 0:e.pointerType,r=Object.keys(this._pointers).map((function(e){return t._pointers[e]}));return n&&(r=r.filter((function(e){return e.pointerType===n}))),r},e.prototype._canStartDrag=function(e){return!(this._getActivePointersCount(e)>1)&&((!u.TaskAreaDomHelper.isMousePointer(e)||1===e.buttons)&&!u.TaskAreaDomHelper.isConnectorLine(e))},e.prototype.getTaskAreaEventSource=function(e){return u.TaskAreaDomHelper.getEventSource(o.EvtUtils.getEventSource(e))},e}();t.TaskAreaStateController=y},5376:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaDefaultState=void 0;var r=n(655),i=n(3714),o=n(9155),s=n(5867),a=n(1404),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.finish=function(){this.clearTimers(),this.raiseEvent(a.TaskAreaStateEventNames.CONTEXTMENU_HIDE)},t.prototype.onMouseDownInternal=function(e){this.onPointerDownBase(e)},t.prototype.onDocumentPointerDownInternal=function(e){this.onPointerDownBase(e)},t.prototype.onDocumentPointerUpInternal=function(e){this.onPointerUpBase(e)},t.prototype.onDocumentPointerMoveInternal=function(e){this.clearTimers()},t.prototype.onTouchStartInternal=function(e){this.onPointerDownBase(e)},t.prototype.onTouchEndInternal=function(e){this.onPointerUpBase(e)},t.prototype.onTouchMoveInternal=function(e){this.clearTimers()},t.prototype.onPointerDownBase=function(e){var n=this;e.preventDefault(),this._lastTouchRowIndex=this.getClickedRowIndex(e),(this.isPointerEvent(e)?o.TaskAreaDomHelper.isMousePointer(e):this.isMouseEvent(e))?this.changeSelectionOnTouchDown(e):(setTimeout((function(){o.TaskAreaDomHelper.isMousePointer(e)||n.raiseEvent(a.TaskAreaStateEventNames.CONTEXTMENU_HIDE,e),n.changeSelectionOnTouchDown(e)}),0),clearTimeout(this._contextMenuTimer),this._contextMenuTimer=setTimeout((function(){return n.showContextMenuOnTouchDown(e)}),t.defaultContextMenuTimeout))},t.prototype.onPointerUpBase=function(e){var n=this;if(clearTimeout(this._contextMenuTimer),e.preventDefault(),this.canToEmulateClick(e)){var r=this.getClickedRowIndex(e),i=new Date;if(this._lastEmulatedClickTime)i.getTime()-this._lastEmulatedClickTime.getTime()<t.defaultDblClickTimeout&&(this.raiseEvent(a.TaskAreaStateEventNames.TASK_AREA_DBLCLICK,e,r),delete this._lastEmulatedClickTime);else{var s=!this.raiseEvent(a.TaskAreaStateEventNames.TASK_AREA_CLICK,e,r);clearTimeout(this._dblClickClearTimer),o.TaskAreaDomHelper.isMousePointer(e)&&this.raiseEvent(a.TaskAreaStateEventNames.CONTEXTMENU_HIDE,e),s||(this._lastEmulatedClickTime=i,this._dblClickClearTimer=setTimeout((function(){delete n._lastEmulatedClickTime}),t.defaultDblClickClearTimeout))}}},t.prototype.canToEmulateClick=function(e){var t=!o.TaskAreaDomHelper.isConnectorLine(e)&&this.getClickedRowIndex(e)===this._lastTouchRowIndex;return t&&o.TaskAreaDomHelper.isMousePointer(e)&&t&&(t=2!==e.button),t},t.prototype.changeSelectionOnTouchDown=function(e){var t=o.TaskAreaDomHelper.isConnectorLine(e);t||this.raiseTaskSelection(e,this.getClickedRowIndex(e)),this.raiseDependencySelection(e,t?i.EvtUtils.getEventSource(e).getAttribute(\"dependency-id\"):null)},t.prototype.showContextMenuOnTouchDown=function(e){var t=o.TaskAreaDomHelper.isConnectorLine(e);this.raiseEvent(a.TaskAreaStateEventNames.CONTEXTMENU_SHOW,e,this.getClickedRowIndex(e),{type:t?\"dependency\":\"task\"})},t.prototype.clearTimers=function(){clearTimeout(this._contextMenuTimer),clearTimeout(this._dblClickClearTimer),delete this._lastEmulatedClickTime},t.defaultContextMenuTimeout=3e3,t.defaultDblClickTimeout=500,t.defaultDblClickClearTimeout=t.defaultDblClickTimeout+100,t}(s.TaskAreaStateBase);t.TaskAreaDefaultState=l},4264:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaDependencyState=t.dependencyMap=void 0;var r=n(655),i=n(8900),o=n(6907),s=n(3714),a=n(5950),l=n(2449),c=n(9155),u=n(5867),d=n(1404);t.dependencyMap=[],t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyStart]=[],t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyFinish]=[],t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyStart][l.TaskAreaEventSource.Successor_DependencyStart]=a.DependencyType.SS,t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyStart][l.TaskAreaEventSource.Successor_DependencyFinish]=a.DependencyType.SF,t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyFinish][l.TaskAreaEventSource.Successor_DependencyStart]=a.DependencyType.FS,t.dependencyMap[l.TaskAreaEventSource.TaskEdit_DependencyFinish][l.TaskAreaEventSource.Successor_DependencyFinish]=a.DependencyType.FF;var p=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(n,e),n.prototype.onMouseUp=function(e){this.onDependencyEndByMouse(e)},n.prototype.onMouseDownInternal=function(e){this.onDependencyStart(e)},n.prototype.onMouseMoveInternal=function(e){this.onDependencyMoveStep(e)},n.prototype.onTouchStartInternal=function(e){this.onDependencyStart(e)},n.prototype.onTouchEndInternal=function(e){this.onDependencyEndByTouch(e)},n.prototype.onTouchMoveInternal=function(e){this.onDependencyMoveStep(e)},n.prototype.onDocumentPointerDownInternal=function(e){this.onDependencyStart(e)},n.prototype.onDocumentPointerUpInternal=function(e){this.onDependencyEndByTouch(e)},n.prototype.onDocumentPointerMoveInternal=function(e){this.onDependencyMoveStep(e)},n.prototype.onDependencyStart=function(e){var t=s.EvtUtils.getEventSource(e);this.source=c.TaskAreaDomHelper.getEventSource(t);var n=this.getRelativePos(new i.Point(o.DomUtils.getAbsolutePositionX(t)+t.clientWidth/2,o.DomUtils.getAbsolutePositionY(t)+t.clientHeight/2));this.raiseEvent(d.TaskAreaStateEventNames.DEPENDENCY_START,e,null,{pos:n})},n.prototype.onDependencyMoveStep=function(e){e.preventDefault();var t=this.getRelativePos(new i.Point(s.EvtUtils.getEventX(e),s.EvtUtils.getEventY(e)));this.raiseEvent(d.TaskAreaStateEventNames.DEPENDENCY_PROCESS,e,this.getClickedRowIndex(e),{pos:t})},n.prototype.onDependencyEndByMouse=function(e){var n=c.TaskAreaDomHelper.getEventSource(s.EvtUtils.getEventSource(e)),r=n===l.TaskAreaEventSource.Successor_DependencyStart||n===l.TaskAreaEventSource.Successor_DependencyFinish?t.dependencyMap[this.source][n]:null;this.processEndDependency(e,r)},n.prototype.onDependencyEndByTouch=function(e){var n=this.raiseEvent(d.TaskAreaStateEventNames.GET_DEPENDENCY_POINTS,e),r=this.getRelativePos(n.successorStart),o=this.getRelativePos(n.successorFinish),a=this.getRelativePos(new i.Point(s.EvtUtils.getEventX(e),s.EvtUtils.getEventY(e))),c=this.isTouchNearby(a,r)?l.TaskAreaEventSource.Successor_DependencyStart:this.isTouchNearby(a,o)?l.TaskAreaEventSource.Successor_DependencyFinish:null,u=c===l.TaskAreaEventSource.Successor_DependencyStart||c===l.TaskAreaEventSource.Successor_DependencyFinish?t.dependencyMap[this.source][c]:null;this.processEndDependency(e,u)},n.prototype.onTaskAreaLeaveInternal=function(e){this.processEndDependency(e,null)},n.prototype.processEndDependency=function(e,t){this.raiseEvent(d.TaskAreaStateEventNames.DEPENDENCY_END,e,null,{type:t}),this.raiseEvent(d.TaskAreaStateEventNames.STATE_EXIT,e)},n.prototype.isTouchNearby=function(e,t){return Math.abs(t.x-e.x)<=20&&Math.abs(t.y-e.y)<=20},n}(u.TaskAreaStateBase);t.TaskAreaDependencyState=p},9155:(e,t,n)=>{var r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaDomHelper=void 0;var i=n(6907),o=n(3714),s=n(5098),a=n(2449),l=n(1855),c=function(){function e(){}return e.getEventSource=function(t){var n,r=(t.nodeType===(null===(n=null===window||void 0===window?void 0:window.Node)||void 0===n?void 0:n.ELEMENT_NODE)?t:t.parentNode).classList[0];return e.classToSource[r]||a.TaskAreaEventSource.TaskArea},e.isConnectorLine=function(e){var t=o.EvtUtils.getEventSource(e);return i.DomUtils.hasClassName(t,l.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL)||i.DomUtils.hasClassName(t,l.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL)},e.isTaskElement=function(t){var n=o.EvtUtils.getEventSource(t),r=e.classToSource[n.classList[0]];return r===a.TaskAreaEventSource.TaskEdit_Frame||r===a.TaskAreaEventSource.TaskEdit_Progress||r===a.TaskAreaEventSource.TaskEdit_Start||r===a.TaskAreaEventSource.TaskEdit_End||r===a.TaskAreaEventSource.TaskEdit_DependencyStart||r===a.TaskAreaEventSource.TaskEdit_DependencyFinish},e.isMouseEvent=function(e){return e instanceof MouseEvent},e.isTouchEvent=function(e){return window.TouchEvent&&e instanceof TouchEvent},e.isPointerEvent=function(e){return window.PointerEvent&&e instanceof PointerEvent},e.isMousePointer=function(e){return this.isPointerEvent(e)&&\"mouse\"===e.pointerType},e.classToSource=((r={})[s.TaskEditController.CLASSNAMES.TASK_EDIT_PROGRESS]=a.TaskAreaEventSource.TaskEdit_Progress,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_START]=a.TaskAreaEventSource.TaskEdit_Start,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_END]=a.TaskAreaEventSource.TaskEdit_End,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_FRAME]=a.TaskAreaEventSource.TaskEdit_Frame,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH]=a.TaskAreaEventSource.TaskEdit_DependencyStart,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT]=a.TaskAreaEventSource.TaskEdit_DependencyFinish,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH]=a.TaskAreaEventSource.Successor_DependencyStart,r[s.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT]=a.TaskAreaEventSource.Successor_DependencyFinish,r),e}();t.TaskAreaDomHelper=c},125:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaScrollState=void 0;var r=n(655),i=n(5867),o=n(1404),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._isStarted=!1,t}return r.__extends(t,e),t.prototype.finish=function(){this.raiseEvent(o.TaskAreaStateEventNames.TASK_AREA_END_MOVE,null)},t.prototype.onMouseUp=function(e){this.onEnd(e)},t.prototype.onMouseDownInternal=function(e){this.onBeforeStart(e)},t.prototype.onMouseMoveInternal=function(e){this.onMove(e)},t.prototype.onDocumentPointerUpInternal=function(e){this.onEnd(e)},t.prototype.onDocumentPointerMoveInternal=function(e){this.onMoveByPointer(e)},t.prototype.onTouchEndInternal=function(e){this.onEnd(e)},t.prototype.onTouchMoveInternal=function(e){this.onMoveByPointer(e)},t.prototype.onBeforeStart=function(e){e.preventDefault(),this.raiseDependencySelection(e,null),this.raiseEvent(o.TaskAreaStateEventNames.TASK_EDIT_END,e),this.raiseEvent(o.TaskAreaStateEventNames.TASK_AREA_START_MOVE,e),this._isStarted=!0},t.prototype.onMoveByPointer=function(e){this._isStarted?this.onMove(e):this.onBeforeStart(e)},t.prototype.onMove=function(e){e.preventDefault(),this.raiseEvent(o.TaskAreaStateEventNames.TASK_AREA_PROCESS_MOVE,e)},t.prototype.onEnd=function(e){e.preventDefault(),this.raiseEvent(o.TaskAreaStateEventNames.TASK_AREA_END_MOVE,e),this.raiseEvent(o.TaskAreaStateEventNames.STATE_EXIT,e),this._isStarted=!1},t}(i.TaskAreaStateBase);t.TaskAreaScrollState=s},5867:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaStateBase=void 0;var r=n(9279),i=n(8900),o=n(6907),s=n(3714),a=n(2153),l=n(3461),c=n(9155),u=n(1404),d=function(){function e(e,t,n){this.position=new i.Point(-1,-1),this.isCursorInArea=!1,this._listener=e,this._taskArea=t,this._cellSize=n}return e.prototype.start=function(){},e.prototype.finish=function(){},e.prototype.isTouchEvent=function(e){return c.TaskAreaDomHelper.isTouchEvent(e)},e.prototype.isPointerEvent=function(e){return c.TaskAreaDomHelper.isPointerEvent(e)},e.prototype.isMouseEvent=function(e){return c.TaskAreaDomHelper.isMouseEvent(e)},e.prototype.onMouseWheel=function(e){},e.prototype.onScroll=function(e){this.raiseEvent(u.TaskAreaStateEventNames.TASK_AREA_SCROLL)},e.prototype.onKeyDown=function(e){this.isCursorInArea&&this.raiseEvent(u.TaskAreaStateEventNames.TASK_AREA_KEY_DOWN,e,null,{code:this.getShortcutCode(e)})},e.prototype.onContextMenu=function(e){var t=this.getClickedRowIndex(e),n=c.TaskAreaDomHelper.isConnectorLine(e);n||this.raiseTaskSelection(e,t),e.stopPropagation(),e.preventDefault(),r.Browser.WebKitFamily&&(e.returnValue=!1),this.raiseEvent(u.TaskAreaStateEventNames.CONTEXTMENU_SHOW,e,t,{type:n?\"dependency\":\"task\"})},e.prototype.onTaskPointerEnter=function(e){this.onTaskPointerEnterBase(e)},e.prototype.onDocumentPointerMove=function(e){this.processPointerMove(e)},e.prototype.onDocumentPointerDown=function(e){this.processPointerDown(e)},e.prototype.onDocumentPointerUp=function(e){this.processPointerUp(e)},e.prototype.onTaskTouchStart=function(e){this.onTaskPointerEnterBase(e)},e.prototype.onTouchMove=function(e){this.processPointerMove(e)},e.prototype.onTouchStart=function(e){this.processPointerDown(e)},e.prototype.onTouchEnd=function(e){this.processPointerUp(e)},e.prototype.onMouseDown=function(e){this.processPointerDown(e)},e.prototype.onMouseUp=function(e){},e.prototype.onMouseMove=function(e){this.processPointerMove(e)},e.prototype.onTaskHover=function(e){this.onTaskPointerEnterBase(e)},e.prototype.onTaskLeave=function(e){this.raiseEvent(u.TaskAreaStateEventNames.TASK_LEAVE,e,this.getClickedRowIndex(e))},e.prototype.onClick=function(e){var t=this.getClickedRowIndex(e);this.raiseTaskSelection(e,t),this.raiseEvent(u.TaskAreaStateEventNames.TASK_AREA_CLICK,e,t)},e.prototype.onDblClick=function(e){e.preventDefault(),this.raiseEvent(u.TaskAreaStateEventNames.TASK_AREA_DBLCLICK,e,this.getClickedRowIndex(e))},e.prototype.onTaskAreaLeave=function(e){(!this.isPointerEvent(e)||c.TaskAreaDomHelper.isMousePointer(e))&&(this.isCursorInArea=!1,this.raiseEvent(u.TaskAreaStateEventNames.TASK_EDIT_END,e)),this.onTaskAreaLeaveInternal(e)},e.prototype.onTaskPointerEnterBase=function(e){this.isTouchEvent(e)||this.isPointerEvent(e)||e.preventDefault(),this.raiseEvent(u.TaskAreaStateEventNames.TASK_EDIT_START,e,this.getClickedRowIndex(e))},e.prototype.processPointerDown=function(e){var t=this.isTouchEvent(e),n=this.isPointerEvent(e);(t||n)&&this.checkAndProcessTouchOutsideArea(e)||(this.position=new i.Point(s.EvtUtils.getEventX(e),s.EvtUtils.getEventY(e)),(t||n)&&e.preventDefault(),t?this.onTouchStartInternal(e):n?this.onDocumentPointerDownInternal(e):this.onMouseDownInternal(e))},e.prototype.processPointerMove=function(e){var t,n=this.isTouchEvent(e),r=this.isPointerEvent(e);null!==(t=this.position)&&void 0!==t||(this.position=new i.Point(s.EvtUtils.getEventX(e),s.EvtUtils.getEventY(e)));var o=Math.abs(this.position.x-s.EvtUtils.getEventX(e))>2||Math.abs(this.position.y-s.EvtUtils.getEventY(e))>2;!((n||r)&&this.checkAndProcessTouchOutsideArea(e))&&o&&((n||r)&&e.preventDefault(),this.isTouchEvent(e)?this.onTouchMoveInternal(e):this.isPointerEvent(e)?this.onDocumentPointerMoveInternal(e):(this.isCursorInArea=!0,this.onMouseMoveInternal(e)))},e.prototype.processPointerUp=function(e){this.checkAndProcessTouchOutsideArea(e)||(e.preventDefault(),this.isTouchEvent(e)?this.onTouchEndInternal(e):this.onDocumentPointerUpInternal(e))},e.prototype.onMouseDownInternal=function(e){},e.prototype.onMouseMoveInternal=function(e){},e.prototype.onDocumentPointerUpInternal=function(e){},e.prototype.onDocumentPointerDownInternal=function(e){},e.prototype.onDocumentPointerMoveInternal=function(e){},e.prototype.onTouchStartInternal=function(e){},e.prototype.onTouchEndInternal=function(e){},e.prototype.onTouchMoveInternal=function(e){},e.prototype.onTaskAreaLeaveInternal=function(e){},e.prototype.checkAndProcessTouchOutsideArea=function(e){var t=!this.isInTaskArea(e);return t&&this.raiseEvent(u.TaskAreaStateEventNames.TASK_EDIT_END,e),this.isCursorInArea=!t,t},e.prototype.raiseEvent=function(e,t,n,r){var i=new l.TaskAreaEventArgs(e,t,n,r),o=this._listener.getHandler(e);return o&&o(i)},e.prototype.raiseDependencySelection=function(e,t){this.raiseEvent(u.TaskAreaStateEventNames.DEPENDENCY_SELECTION,e,null,{key:t})},e.prototype.raiseTaskSelection=function(e,t){o.DomUtils.isItParent(this._taskArea,s.EvtUtils.getEventSource(e))&&!c.TaskAreaDomHelper.isConnectorLine(e)&&this.raiseEvent(u.TaskAreaStateEventNames.TASK_SELECTION,e,t)},e.prototype.getClickedRowIndex=function(e){if(!e)return-1;var t=s.EvtUtils.getEventY(e)-o.DomUtils.getAbsolutePositionY(this._taskArea);return Math.floor(t/this._cellSize.height)},e.prototype.getRelativePos=function(e){var t=o.DomUtils.getAbsolutePositionX(this._taskArea),n=o.DomUtils.getAbsolutePositionY(this._taskArea);return new i.Point(e.x-t,e.y-n)},e.prototype.isInTaskArea=function(e){return o.DomUtils.isItParent(this._taskArea,s.EvtUtils.getEventSource(e))},e.prototype.getShortcutCode=function(e){var t=a.KeyUtils.getEventKeyCode(e),n=0;return e.altKey&&(n|=a.ModifierKey.Alt),e.ctrlKey&&(n|=a.ModifierKey.Ctrl),e.shiftKey&&(n|=a.ModifierKey.Shift),e.metaKey&&r.Browser.MacOSPlatform&&(n|=a.ModifierKey.Meta),n|t},e}();t.TaskAreaStateBase=d},1404:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaStateEventNames=void 0;var n=function(){function e(){}return e.TASK_AREA_CLICK=\"taskAreaClick\",e.TASK_AREA_DBLCLICK=\"taskAreaDblClick\",e.TASK_AREA_SCROLL=\"taskAreaScroll\",e.TASK_AREA_START_MOVE=\"taskAreaStartMove\",e.TASK_AREA_PROCESS_MOVE=\"taskAreaProcessMove\",e.TASK_AREA_END_MOVE=\"taskAreaEndMove\",e.TASK_AREA_ZOOM_IN=\"taskAreaZoomIn\",e.TASK_AREA_ZOOM_OUT=\"taskAreaZoomOut\",e.CONTEXTMENU_SHOW=\"contextMenuShow\",e.CONTEXTMENU_HIDE=\"contextMenuHide\",e.DEPENDENCY_SELECTION=\"dependencySelection\",e.STATE_EXIT=\"stateExit\",e.TASK_SELECTION=\"taskSelection\",e.TASK_EDIT_START=\"taskEditStart\",e.TASK_EDIT_END=\"taskEditEnd\",e.TASK_LEAVE=\"taskLeave\",e.TASK_PROCESS_MOVE=\"taskProcessMove\",e.TASK_END_MOVE=\"taskEndMove\",e.TASK_PROCESS_PROGRESS=\"taskProcessProgress\",e.TASK_END_PROGRESS=\"taskEndProgress\",e.TASK_PROCESS_START=\"taskProcessStart\",e.TASK_CONFIRM_START=\"taskConfirmStart\",e.TASK_PROCESS_END=\"taskProcessEnd\",e.TASK_CONFIRM_END=\"taskConfirmEnd\",e.GET_DEPENDENCY_POINTS=\"getDependencyPoints\",e.DEPENDENCY_START=\"dependencyStart\",e.DEPENDENCY_PROCESS=\"dependencyProcess\",e.DEPENDENCY_END=\"dependencyEnd\",e.TASK_AREA_KEY_DOWN=\"taskAreaKeyDown\",e.GET_POINTERS_INFO=\"getPointersInfo\",e.GET_COORDINATES_REF_POINT=\"getCoordinatesRefPoint\",e}();t.TaskAreaStateEventNames=n},6591:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaZoomState=void 0;var r=n(655),i=n(8900),o=n(3714),s=n(5596),a=n(5867),l=n(1404),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._isInZooming=!1,t}return r.__extends(t,e),t.prototype.onMouseWheel=function(e){e.ctrlKey&&(e.preventDefault(),e.stopPropagation(),this._isInZooming||this.processZoom(e,o.EvtUtils.getWheelDelta(e)>0,50))},t.prototype.onDocumentPointerUpInternal=function(e){this.onEndZoom(e)},t.prototype.onDocumentPointerMoveInternal=function(e){this.onTouchZoom(e)},t.prototype.onTouchEndInternal=function(e){this.onEndZoom(e)},t.prototype.onTouchMoveInternal=function(e){this.onTouchZoom(e)},t.prototype.onTouchZoom=function(e){var t;if(e.stopPropagation(),e.preventDefault(),!this._isInZooming){var n=this.getTouchDistance(e);null!==(t=this.prevDistance)&&void 0!==t||(this.prevDistance=n);var r=this.prevDistance-n;Math.abs(r)>3&&(this.processZoom(e,r>0,1e3),this.prevDistance=n)}},t.prototype.processZoom=function(e,t,n){var r=this;this._isInZooming=!0,setTimeout((function(){r._isInZooming=!1}),n);var i=t?l.TaskAreaStateEventNames.TASK_AREA_ZOOM_IN:l.TaskAreaStateEventNames.TASK_AREA_ZOOM_OUT;this.raiseEvent(i,e,null,{leftPos:this.getLeftPosition(e)})},t.prototype.onEndZoom=function(e){this.prevDistance=null,this.raiseEvent(l.TaskAreaStateEventNames.STATE_EXIT,e)},t.prototype.getTouchDistance=function(e){var t=this.GetTouchPoints(e);return this.getDistance(t[0],t[1])},t.prototype.GetTouchPoints=function(e){var t,n,r,o;if(this.isTouchEvent(e)){var s=e.touches;return[new i.Point(s[0].pageX,s[0].pageY),new i.Point(s[1].pageX,s[1].pageY)]}var a=this.raiseEvent(l.TaskAreaStateEventNames.GET_POINTERS_INFO,e);return[new i.Point(null===(t=a[0])||void 0===t?void 0:t.pageX,null===(n=a[0])||void 0===n?void 0:n.pageY),new i.Point(null===(r=a[1])||void 0===r?void 0:r.pageX,null===(o=a[1])||void 0===o?void 0:o.pageY)]},t.prototype.getDistance=function(e,t){return s.Metrics.euclideanDistance(e,t)},t.prototype.getLeftPosition=function(e){var t=0;return this.isTouchEvent(e)||this.isPointerEvent(e)?t=this.getZoomMiddlePoint(e).x:this.isMouseEvent(e)&&(t=this.getMouseZoomLeftPos(e)),t},t.prototype.getMouseZoomLeftPos=function(e){var t=this.raiseEvent(l.TaskAreaStateEventNames.GET_COORDINATES_REF_POINT);return o.EvtUtils.getEventX(e)-t.x},t.prototype.getZoomMiddlePoint=function(e){var t=this.raiseEvent(l.TaskAreaStateEventNames.GET_COORDINATES_REF_POINT),n=this.GetTouchPoints(e),r=this.convertScreenToChartCoordinates(n[0],t),o=this.convertScreenToChartCoordinates(n[1],t);return new i.Point((r.x+o.x)/2,(r.y+o.y)/2)},t.prototype.convertScreenToChartCoordinates=function(e,t){return new i.Point(e.x-t.x,e.y-t.y)},t}(a.TaskAreaStateBase);t.TaskAreaZoomState=c},6262:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskDragBaseState=void 0;var r=n(655),i=n(8900),o=n(3714),s=n(5867),a=n(1404),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.onMouseDownInternal=function(e){this.onStart(e)},t.prototype.onMouseUp=function(e){this.onEnd(e)},t.prototype.onMouseMoveInternal=function(e){this.onDrag(e)},t.prototype.onTouchStartInternal=function(e){this.onStart(e)},t.prototype.onTouchEndInternal=function(e){this.onEnd(e)},t.prototype.onTouchMoveInternal=function(e){this.onDrag(e)},t.prototype.onDocumentPointerDownInternal=function(e){this.onStart(e)},t.prototype.onDocumentPointerUpInternal=function(e){this.onEnd(e)},t.prototype.onDocumentPointerMoveInternal=function(e){this.onDrag(e)},t.prototype.onStart=function(e){this.currentPosition=new i.Point(o.EvtUtils.getEventX(e),o.EvtUtils.getEventY(e)),this.raiseDependencySelection(e,null),this.onStartInternal(e)},t.prototype.onDrag=function(e){var t;e.preventDefault();var n=new i.Point(o.EvtUtils.getEventX(e),o.EvtUtils.getEventY(e));null!==(t=this.currentPosition)&&void 0!==t||(this.currentPosition=n),this.onDragInternal(n),this.currentPosition=n},t.prototype.onEnd=function(e){this.onEndInternal(e),this.raiseEvent(a.TaskAreaStateEventNames.STATE_EXIT,e)},t.prototype.onStartInternal=function(e){},t.prototype.onEndInternal=function(e){},t.prototype.onDragInternal=function(e){},t.prototype.finish=function(){this.raiseEvent(a.TaskAreaStateEventNames.TASK_EDIT_END)},t}(s.TaskAreaStateBase);t.TaskDragBaseState=l},2395:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditState=void 0;var r=n(655),i=n(3714),o=n(2449),s=n(9155),a=n(1404),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.onStartInternal=function(e){var t;null!==(t=this._source)&&void 0!==t||(this._source=s.TaskAreaDomHelper.getEventSource(i.EvtUtils.getEventSource(e)))},t.prototype.onEndInternal=function(e){this.raiseEvent(this.getEventOnEndKey(),e)},t.prototype.onDragInternal=function(e){var t=this.getRelativePos(e);this.raiseEvent(this.getEventOnDragKey(),null,null,{position:t})},t.prototype.getEventOnDragKey=function(){switch(this._source){case o.TaskAreaEventSource.TaskEdit_Start:return a.TaskAreaStateEventNames.TASK_PROCESS_START;case o.TaskAreaEventSource.TaskEdit_End:return a.TaskAreaStateEventNames.TASK_PROCESS_END;case o.TaskAreaEventSource.TaskEdit_Progress:return a.TaskAreaStateEventNames.TASK_PROCESS_PROGRESS}},t.prototype.getEventOnEndKey=function(){switch(this._source){case o.TaskAreaEventSource.TaskEdit_Start:return a.TaskAreaStateEventNames.TASK_CONFIRM_START;case o.TaskAreaEventSource.TaskEdit_End:return a.TaskAreaStateEventNames.TASK_CONFIRM_END;case o.TaskAreaEventSource.TaskEdit_Progress:return a.TaskAreaStateEventNames.TASK_END_PROGRESS}},t}(n(6262).TaskDragBaseState);t.TaskEditState=l},7295:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskMoveState=void 0;var r=n(655),i=n(1404),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.onEndInternal=function(e){this.raiseEvent(i.TaskAreaStateEventNames.TASK_END_MOVE,e)},t.prototype.onDragInternal=function(e){this.raiseEvent(i.TaskAreaStateEventNames.TASK_PROCESS_MOVE,null,null,{delta:e.x-this.currentPosition.x})||this.raiseEvent(i.TaskAreaStateEventNames.STATE_EXIT)},t}(n(6262).TaskDragBaseState);t.TaskMoveState=o},3461:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaEventArgs=void 0;var r=n(2491),i=function(e,t,n,i){this.rowIndex=-1,this.info={},this.eventName=e,this.triggerEvent=t,(0,r.isDefined)(n)&&(this.rowIndex=n),i&&(this.info=i)};t.TaskAreaEventArgs=i},8269:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaEventsListener=void 0;var r=n(8900),i=n(2491),o=n(6907),s=n(3714),a=n(2153),l=n(3336),c=n(1404),u=function(){function e(e){this._owner=e}return Object.defineProperty(e.prototype,\"taskEditController\",{get:function(){var e;return null===(e=this._owner)||void 0===e?void 0:e.taskEditController},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderHelper\",{get:function(){var e;return null===(e=this._owner)||void 0===e?void 0:e.renderHelper},enumerable:!1,configurable:!0}),e.prototype.getHandler=function(e){return this.handlers[e]},e.prototype.setHandler=function(e,t){this.handlers[e]=t},Object.defineProperty(e.prototype,\"handlers\",{get:function(){var e;return null!==(e=this._handlers)&&void 0!==e||(this._handlers=this.createTaskAreaEventHandlers()),this._handlers},enumerable:!1,configurable:!0}),e.prototype.createTaskAreaEventHandlers=function(){var e={};return e[c.TaskAreaStateEventNames.TASK_AREA_CLICK]=this.taskAreaClickHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_DBLCLICK]=this.taskAreaDblClickHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_SCROLL]=this.taskAreaScrollHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_START_MOVE]=this.taskAreaStartMoveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_PROCESS_MOVE]=this.taskAreaProcessMoveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_END_MOVE]=this.taskAreaEndMoveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_ZOOM_IN]=this.taskAreaZoomInHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_ZOOM_OUT]=this.taskAreaZoomOutHandler.bind(this),e[c.TaskAreaStateEventNames.CONTEXTMENU_SHOW]=this.taskAreaContextMenuShowHandler.bind(this),e[c.TaskAreaStateEventNames.CONTEXTMENU_HIDE]=this.taskAreaContextMenuHideHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_SELECTION]=this.taskSelectionHandler.bind(this),e[c.TaskAreaStateEventNames.DEPENDENCY_SELECTION]=this.dependencySelectionHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_EDIT_START]=this.taskEditStartHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_EDIT_END]=this.taskEditEndHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_LEAVE]=this.taskLeaveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_PROCESS_MOVE]=this.taskProcessMoveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_END_MOVE]=this.taskEndMoveHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_PROCESS_PROGRESS]=this.taskProcessProgressHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_END_PROGRESS]=this.taskEndProgressHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_PROCESS_START]=this.taskProcessStartHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_CONFIRM_START]=this.taskConfirmStartHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_PROCESS_END]=this.taskProcessEndHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_CONFIRM_END]=this.taskConfirmEndHandler.bind(this),e[c.TaskAreaStateEventNames.GET_DEPENDENCY_POINTS]=this.getDependencyPoints.bind(this),e[c.TaskAreaStateEventNames.DEPENDENCY_START]=this.dependencyStartHandler.bind(this),e[c.TaskAreaStateEventNames.DEPENDENCY_END]=this.dependencyEndHandler.bind(this),e[c.TaskAreaStateEventNames.DEPENDENCY_PROCESS]=this.dependencyProcessHandler.bind(this),e[c.TaskAreaStateEventNames.TASK_AREA_KEY_DOWN]=this.onTaskAreaKeyDown.bind(this),e[c.TaskAreaStateEventNames.GET_COORDINATES_REF_POINT]=this.getCoordinatesRefPoint.bind(this),e[c.TaskAreaStateEventNames.STATE_EXIT]=function(){},e},e.prototype.taskAreaClickHandler=function(e){return this._owner.onTaskAreaClick(e.rowIndex,e.triggerEvent)},e.prototype.taskAreaDblClickHandler=function(e){this._owner.onTaskAreaDblClick(e.rowIndex,e.triggerEvent)},e.prototype.taskSelectionHandler=function(e){this._owner.onTaskSelectionChanged(e.rowIndex,e.triggerEvent)},e.prototype.taskAreaContextMenuShowHandler=function(e){this._owner.onTaskAreaContextMenu(e.rowIndex,e.triggerEvent,e.info.type)},e.prototype.taskAreaContextMenuHideHandler=function(){this._owner.hidePopupMenu()},e.prototype.taskAreaScrollHandler=function(e){this._owner.updateView()},e.prototype.dependencySelectionHandler=function(e){var t=e.info.key,n=this.taskEditController.dependencyId;(t!==n||!t&&(0,i.isDefined)(n))&&this._owner.selectDependency(t)},Object.defineProperty(e.prototype,\"ganttMovingHelper\",{get:function(){var e;return null!==(e=this._ganttMovingHelper)&&void 0!==e||(this._ganttMovingHelper=new l.GanttMovingHelper(this._owner.renderHelper.taskAreaContainer)),this._ganttMovingHelper},enumerable:!1,configurable:!0}),e.prototype.taskAreaStartMoveHandler=function(e){this.ganttMovingHelper.startMoving(e.triggerEvent)},e.prototype.taskAreaProcessMoveHandler=function(e){this.ganttMovingHelper.movingInfo&&(this.ganttMovingHelper.onMouseMove(e.triggerEvent),e.triggerEvent.preventDefault())},e.prototype.taskAreaEndMoveHandler=function(e){this.ganttMovingHelper.onMouseUp(e.triggerEvent)},e.prototype.taskAreaZoomInHandler=function(e){this._owner.zoomIn(e.info.leftPos)},e.prototype.taskAreaZoomOutHandler=function(e){this._owner.zoomOut(e.info.leftPos)},e.prototype.getCoordinatesRefPoint=function(e){var t=o.DomUtils.getAbsolutePositionX(this.renderHelper.taskAreaContainer.getElement()),n=o.DomUtils.getAbsolutePositionY(this.renderHelper.taskAreaContainer.getElement());return new r.Point(t,n)},e.prototype.taskEditStartHandler=function(e){this.taskEditController.show(e.rowIndex),this.taskEditController.showTaskInfo(s.EvtUtils.getEventX(e.triggerEvent))},e.prototype.taskLeaveHandler=function(e){this.taskEditController.cancel()},e.prototype.taskEditEndHandler=function(e){this.taskEditController.endEditing()},e.prototype.taskEndMoveHandler=function(e){this.taskEditController.confirmMove()},e.prototype.taskProcessMoveHandler=function(e){var t;return this.taskEditController.processMove(null!==(t=e.info.delta)&&void 0!==t?t:0)},e.prototype.taskEndProgressHandler=function(e){this.taskEditController.confirmProgress()},e.prototype.taskProcessProgressHandler=function(e){this.taskEditController.processProgress(e.info.position)},e.prototype.taskProcessStartHandler=function(e){this.taskEditController.processStart(e.info.position)},e.prototype.taskConfirmStartHandler=function(e){this.taskEditController.confirmStart()},e.prototype.taskProcessEndHandler=function(e){this.taskEditController.processEnd(e.info.position)},e.prototype.taskConfirmEndHandler=function(e){this.taskEditController.confirmEnd()},e.prototype.getDependencyPoints=function(e){var t={};return t.successorStart=new r.Point(o.DomUtils.getAbsolutePositionX(this.taskEditController.dependencySuccessorStart)+this.taskEditController.dependencySuccessorStart.clientWidth/2,o.DomUtils.getAbsolutePositionY(this.taskEditController.dependencySuccessorStart)+this.taskEditController.dependencySuccessorStart.clientHeight/2),t.successorFinish=new r.Point(o.DomUtils.getAbsolutePositionX(this.taskEditController.dependencySuccessorFinish)+this.taskEditController.dependencySuccessorFinish.clientWidth/2,o.DomUtils.getAbsolutePositionY(this.taskEditController.dependencySuccessorFinish)+this.taskEditController.dependencySuccessorFinish.clientHeight/2),t},e.prototype.dependencyStartHandler=function(e){this.taskEditController.startDependency(e.info.pos)},e.prototype.dependencyEndHandler=function(e){this.taskEditController.endDependency(e.info.type)},e.prototype.dependencyProcessHandler=function(e){this.taskEditController.processDependency(e.info.pos),this._owner.viewModel.tasks.items[e.rowIndex]&&this.taskEditController.showDependencySuccessor(e.rowIndex)},e.prototype.onTaskAreaKeyDown=function(e){var t=e.info.code;t==(a.ModifierKey.Ctrl|a.KeyCode.Key_z)&&this._owner.history.undo(),t==(a.ModifierKey.Ctrl|a.KeyCode.Key_y)&&this._owner.history.redo(),t==a.KeyCode.Delete&&this.taskEditController.deleteSelectedDependency()},e}();t.TaskAreaEventsListener=u},3682:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaManager=t.TOUCH_ACTION_NONE=void 0;var r=n(9279),i=n(6907),o=n(3714),s=n(6958);t.TOUCH_ACTION_NONE=\"dx-gantt-touch-action\";var a=function(){function e(e,t,n){this._eventListener=e,this._taskArea=t,this._cellSize=n,this.attachEvents()}return e.prototype.attachEvents=function(){window.PointerEvent?this.attachPointerEvents():r.Browser.TouchUI?this.attachTouchEvents():this.attachMouseEvents(),this.attachCommonEvents()},e.prototype.detachEvents=function(){window.PointerEvent?this.detachPointerEvents():r.Browser.TouchUI?this.detachTouchEvents():this.detachMouseEvents(),this.detachCommonEvents()},e.prototype.attachEventsOnTask=function(e){window.PointerEvent?null==e||e.addEventListener(\"pointerenter\",this.onTaskPointerEnterHandler):r.Browser.TouchUI?null==e||e.addEventListener(\"touchstart\",this.onTaskTouchStartHandler):(null==e||e.addEventListener(\"mouseenter\",this.onTaskMouseEnterHandler),null==e||e.addEventListener(\"mouseleave\",this.onTaskMouseLeaveHandler))},e.prototype.detachEventsOnTask=function(e){window.PointerEvent?null==e||e.removeEventListener(\"pointerenter\",this.onTaskPointerEnterHandler):r.Browser.TouchUI?null==e||e.removeEventListener(\"touchstart\",this.onTaskTouchStartHandler):(null==e||e.removeEventListener(\"mouseenter\",this.onTaskMouseEnterHandler),null==e||e.removeEventListener(\"mouseleave\",this.onTaskMouseLeaveHandler))},e.prototype.attachCommonEvents=function(){this.taskAreaAddEventListener(\"contextmenu\",this.onContextMenuHandler),this.taskAreaAddEventListener(o.EvtUtils.getMouseWheelEventName(),this.onMouseWheelHandler),this.taskAreaAddEventListener(\"scroll\",this.onScrollHandler),document.addEventListener(\"keydown\",this.onKeyDownHandler)},e.prototype.detachCommonEvents=function(){this.taskAreaRemoveEventListener(\"contextmenu\",this.onContextMenuHandler),this.taskAreaRemoveEventListener(o.EvtUtils.getMouseWheelEventName(),this.onMouseWheelHandler),this.taskAreaRemoveEventListener(\"scroll\",this.onScrollHandler),document.removeEventListener(\"keydown\",this.onKeyDownHandler)},e.prototype.attachPointerEvents=function(){i.DomUtils.addClassName(this.taskArea,t.TOUCH_ACTION_NONE),document.addEventListener(\"pointerdown\",this.onDocumentPointerDownHandler),document.addEventListener(\"pointerup\",this.onDocumentPointerUpHandler),document.addEventListener(\"pointermove\",this.onDocumentPointerMoveHandler),document.addEventListener(\"pointercancel\",this.onDocumentPointerCancelUpHandler),this.taskAreaAddEventListener(\"pointerleave\",this.onTaskAreaPointerLeaveHandler)},e.prototype.detachPointerEvents=function(){document.removeEventListener(\"pointerdown\",this.onDocumentPointerDownHandler),document.removeEventListener(\"pointerup\",this.onDocumentPointerUpHandler),document.removeEventListener(\"pointermove\",this.onDocumentPointerMoveHandler),document.removeEventListener(\"pointercancel \",this.onDocumentPointerCancelUpHandler),this.taskAreaRemoveEventListener(\"pointerleave\",this.onTaskAreaPointerLeaveHandler),i.DomUtils.removeClassName(this.taskArea,t.TOUCH_ACTION_NONE)},e.prototype.attachTouchEvents=function(){i.DomUtils.addClassName(this.taskArea,t.TOUCH_ACTION_NONE),document.addEventListener(\"touchstart\",this.onTouchStartHandler),document.addEventListener(\"touchend\",this.onTouchEndHandler),document.addEventListener(\"touchmove\",this.onTouchMoveHandler)},e.prototype.detachTouchEvents=function(){document.removeEventListener(\"touchstart\",this.onTouchStartHandler),document.removeEventListener(\"touchend\",this.onTouchEndHandler),document.removeEventListener(\"touchmove\",this.onTouchMoveHandler),i.DomUtils.removeClassName(this.taskArea,t.TOUCH_ACTION_NONE)},e.prototype.attachMouseEvents=function(){this.taskAreaAddEventListener(\"click\",this.onMouseClickHandler),this.taskAreaAddEventListener(\"dblclick\",this.onMouseDblClickHandler),this.taskAreaAddEventListener(\"mousedown\",this.onMouseDownHandler),this.taskAreaAddEventListener(\"mouseleave\",this.onTaskAreaMouseLeaveHandler),document.addEventListener(\"mousemove\",this.onMouseMoveHandler),document.addEventListener(\"mouseup\",this.onMouseUpHandler)},e.prototype.detachMouseEvents=function(){this.taskAreaRemoveEventListener(\"click\",this.onMouseClickHandler),this.taskAreaRemoveEventListener(\"dblclick\",this.onMouseDblClickHandler),this.taskAreaRemoveEventListener(\"mouseleave\",this.onTaskAreaMouseLeaveHandler),this.taskAreaRemoveEventListener(\"mousedown\",this.onMouseDownHandler),document.removeEventListener(\"mousemove\",this.onMouseMoveHandler),document.removeEventListener(\"mouseup\",this.onMouseUpHandler)},Object.defineProperty(e.prototype,\"stateController\",{get:function(){var e;return null!==(e=this._stateController)&&void 0!==e||(this._stateController=new s.TaskAreaStateController(this._eventListener,this._taskArea,this._cellSize)),this._stateController},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._taskArea},enumerable:!1,configurable:!0}),e.prototype.taskAreaAddEventListener=function(e,t){this.taskArea.addEventListener(e,t)},e.prototype.taskAreaRemoveEventListener=function(e,t){this.taskArea.removeEventListener(e,t)},Object.defineProperty(e.prototype,\"onContextMenuHandler\",{get:function(){var e,t=this;return null!==(e=this._onContextMenuHandler)&&void 0!==e||(this._onContextMenuHandler=function(e){t.stateController.onContextMenu(e)}),this._onContextMenuHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseWheelHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseWheelHandler)&&void 0!==e||(this._onMouseWheelHandler=function(e){t.stateController.onMouseWheel(e)}),this._onMouseWheelHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onScrollHandler\",{get:function(){var e,t=this;return null!==(e=this._onScrollHandler)&&void 0!==e||(this._onScrollHandler=function(e){t.stateController.onScroll(e)}),this._onScrollHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onKeyDownHandler\",{get:function(){var e,t=this;return null!==(e=this._onKeyDownHandler)&&void 0!==e||(this._onKeyDownHandler=function(e){t.stateController.onKeyDown(e)}),this._onKeyDownHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskPointerEnterHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskPointerEnterHandler)&&void 0!==e||(this._onTaskPointerEnterHandler=function(e){t.stateController.onTaskPointerEnter(e)}),this._onTaskPointerEnterHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskAreaPointerLeaveHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskAreaPointerLeaveHandler)&&void 0!==e||(this._onTaskAreaPointerLeaveHandler=function(e){t.stateController.onTaskAreaPointerLeave(e)}),this._onTaskAreaPointerLeaveHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onDocumentPointerDownHandler\",{get:function(){var e,t=this;return null!==(e=this._onDocumentPointerDownHandler)&&void 0!==e||(this._onDocumentPointerDownHandler=function(e){t.stateController.onDocumentPointerDown(e)}),this._onDocumentPointerDownHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onDocumentPointerUpHandler\",{get:function(){var e,t=this;return null!==(e=this._onDocumentPointerUpHandler)&&void 0!==e||(this._onDocumentPointerUpHandler=function(e){t.stateController.onDocumentPointerUp(e)}),this._onDocumentPointerUpHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onDocumentPointerCancelUpHandler\",{get:function(){var e,t=this;return null!==(e=this._onDocumentPointerCancelHandler)&&void 0!==e||(this._onDocumentPointerCancelHandler=function(e){t.stateController.onDocumentPointerCancel(e)}),this._onDocumentPointerCancelHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onDocumentPointerMoveHandler\",{get:function(){var e,t=this;return null!==(e=this._onDocumentPointerMoveHandler)&&void 0!==e||(this._onDocumentPointerMoveHandler=function(e){t.stateController.onDocumentPointerMove(e)}),this._onDocumentPointerMoveHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchStartHandler\",{get:function(){var e,t=this;return null!==(e=this._onTouchStartHandler)&&void 0!==e||(this._onTouchStartHandler=function(e){t.stateController.onTouchStart(e)}),this._onTouchStartHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchEndHandler\",{get:function(){var e,t=this;return null!==(e=this._onTouchEndHandler)&&void 0!==e||(this._onTouchEndHandler=function(e){t.stateController.onTouchEnd(e)}),this._onTouchEndHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchMoveHandler\",{get:function(){var e,t=this;return null!==(e=this._onTouchMoveHandler)&&void 0!==e||(this._onTouchMoveHandler=function(e){t.stateController.onTouchMove(e)}),this._onTouchMoveHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskTouchStartHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskTouchStartHandler)&&void 0!==e||(this._onTaskTouchStartHandler=function(e){t.stateController.onTaskTouchStart(e)}),this._onTaskTouchStartHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseClickHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseClickHandler)&&void 0!==e||(this._onMouseClickHandler=function(e){t.stateController.onClick(e)}),this._onMouseClickHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDblClickHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseDblClickHandler)&&void 0!==e||(this._onMouseDblClickHandler=function(e){t.stateController.onDblClick(e)}),this._onMouseDblClickHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDownHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseDownHandler)&&void 0!==e||(this._onMouseDownHandler=function(e){t.stateController.onMouseDown(e)}),this._onMouseDownHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskAreaMouseLeaveHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskAreaMouseLeaveHandler)&&void 0!==e||(this._onTaskAreaMouseLeaveHandler=function(e){t.stateController.onTaskAreaMouseLeave(e)}),this._onTaskAreaMouseLeaveHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseMoveHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseMoveHandler)&&void 0!==e||(this._onMouseMoveHandler=function(e){t.stateController.onMouseMove(e)}),this._onMouseMoveHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseUpHandler\",{get:function(){var e,t=this;return null!==(e=this._onMouseUpHandler)&&void 0!==e||(this._onMouseUpHandler=function(e){t.stateController.onMouseUp(e)}),this._onMouseUpHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskMouseEnterHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskMouseEnterHandler)&&void 0!==e||(this._onTaskMouseEnterHandler=function(e){t.stateController.onTaskElementHover(e)}),this._onTaskMouseEnterHandler},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onTaskMouseLeaveHandler\",{get:function(){var e,t=this;return null!==(e=this._onTaskMouseLeaveHandler)&&void 0!==e||(this._onTaskMouseLeaveHandler=function(e){t.stateController.onTaskElementLeave(e)}),this._onTaskMouseLeaveHandler},enumerable:!1,configurable:!0}),e.DBLCLICK_INTERVAL=300,e.MS_POINTER_ACTIVE_CLASS=\"ms-pointer-active\",e}();t.TaskAreaManager=a},2366:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GanttView=void 0;var r=n(639),i=n(9279),o=n(7156),s=n(1284),a=n(858),l=n(7880),c=n(9201),u=n(9954),d=n(8695),p=n(6893),h=n(8725),f=n(2491),g=n(3452),y=n(9650),m=n(2978),v=n(1074),T=n(5351),b=n(6353),k=n(9057),S=n(5098),_=n(9640),w=n(8478),E=n(5846),D=n(2449),I=n(1408),C=n(6626),P=n(3714),M=n(6907),A=n(8900),O=n(8269),x=n(4730),R=n(6124),L=function(){function e(e,t,n){var i=this;this.currentSelectedTaskID=\"\",this.isFocus=!1,this._updateWithModelReloadLockedCounter=0,this.scaleCount=2,this.tickSize=new b.Size(0,0),this.currentZoom=1,this.stripLinesUpdaterId=null,this.ganttOwner=t,this.settings=T.Settings.parse(n),this.initValidationController(),this.renderHelper=new v.RenderHelper(this),this.renderHelper.initMarkup(e),this.loadOptionsFromGanttOwner(),this.renderHelper.init(this.tickSize,this.range,this.settings.viewType,this.viewModel,this.settings.firstDayOfWeek),this.commandManager=new o.CommandManager(this),this.barManager=new r.BarManager(this.commandManager,this.ganttOwner.bars),this.initTaskEditController(),this.history=new h.History(this._getHistoryListener()),this.initFullScreenModeHelper(),this.updateView(),this._scrollTimeOut=setTimeout((function(){i.scrollLeftByViewType()}),0),this.initializeStripLinesUpdater(),this.initGanttViewApi()}return e.prototype.initGanttViewApi=function(){this.ganttViewApi=new C.GanttViewApi(this)},e.prototype._getHistoryListener=function(){return{onTransactionStart:this.onHistoryTransactionStart.bind(this),onTransactionEnd:this.onHistoryTransactionEnd.bind(this)}},e.prototype.onHistoryTransactionStart=function(){this.lockUpdateWithReload()},e.prototype.onHistoryTransactionEnd=function(){this.unlockUpdateWithReload()},e.prototype.lockUpdateWithReload=function(){this._updateWithModelReloadLockedCounter++},e.prototype.unlockUpdateWithReload=function(){this._updateWithModelReloadLockedCounter--,0===this._updateWithModelReloadLockedCounter&&this._pendingUpdateInfo&&(this.updateWithDataReload(this._pendingUpdateInfo.keepExpandState),this._pendingUpdateInfo=null)},e.prototype.initValidationController=function(){var e=this,t=E.ValidationControllerSettings.parse({getViewModel:function(){return e.viewModel},getHistory:function(){return e.history},getModelManipulator:function(){return e.modelManipulator},getRange:function(){return e.range},getValidationSettings:function(){return e.settings.validation},updateOwnerInAutoParentMode:function(){e.updateOwnerInAutoParentMode()},getIsValidateDependenciesRequired:function(){return e.isValidateDependenciesRequired()}});this.validationController=new w.ValidationController(t)},e.prototype.initTaskEditController=function(){var e=this,t=_.TaskEditSettings.parse({destroyTemplate:function(t){e.destroyTemplate(t)},formatDate:function(t){return e.getDateFormat(t)},getRenderHelper:function(){return e.renderHelper},getGanttSettings:function(){return e.settings},getViewModel:function(){return e.viewModel},getCommandManager:function(){return e.commandManager},getModelManipulator:function(){return e.modelManipulator},getValidationController:function(){return e.validationController}});this.taskEditController=new S.TaskEditController(t)},Object.defineProperty(e.prototype,\"taskAreaEventsListener\",{get:function(){var e;return null!==(e=this._taskAreaEventsListener)&&void 0!==e||(this._taskAreaEventsListener=new O.TaskAreaEventsListener(this)),this._taskAreaEventsListener},enumerable:!1,configurable:!0}),e.prototype.initFullScreenModeHelper=function(){var e=this,t=u.FullScreenHelperSettings.parse({getMainElement:function(){return e.getOwnerControlMainElement()},adjustControl:function(){e.adjustOwnerControl()}});this.fullScreenModeHelper=new d.FullScreenModeHelper(t)},e.prototype.getDateRange=function(e,t){var n=this.getVisibleAreaTime(),r=this.settings.startDateRange||c.DateUtils.adjustStartDateByViewType(new Date(e.getTime()-n),this.settings.viewType,this.settings.firstDayOfWeek),i=this.settings.endDateRange||c.DateUtils.adjustEndDateByViewType(new Date(t.getTime()+n),this.settings.viewType,this.settings.firstDayOfWeek);return this.settings.startDateRange&&r>i?i=r:this.settings.endDateRange&&r>i&&(r=i),new a.DateRange(r,i)},e.prototype.getVisibleAreaTime=function(){return Math.ceil(this.renderHelper.getTaskAreaContainerWidth()/this.tickSize.width)*c.DateUtils.getTickTimeSpan(this.settings.viewType)},e.prototype.zoomIn=function(e){void 0===e&&(e=this.renderHelper.getTaskAreaContainerWidth()/2),this.ganttViewApi.zoomIn(e)},e.prototype.zoomOut=function(e){void 0===e&&(e=this.renderHelper.getTaskAreaContainerWidth()/2),this.ganttViewApi.zoomOut(e)},e.prototype.scrollToDate=function(e){if(e){var t=e instanceof Date?c.DateUtils.getOrCreateUTCDate(e):c.DateUtils.parse(e);this.scrollToDateCore(t,0)}},e.prototype.showDialog=function(e,t,n,r){this.ganttOwner.showDialog(e,t,n,r)},e.prototype.showPopupMenu=function(e){this.ganttOwner.showPopupMenu(e)},e.prototype.hidePopupMenu=function(){this.ganttOwner.hidePopupMenu&&this.ganttOwner.hidePopupMenu()},e.prototype.collapseAll=function(){this.ganttOwner.collapseAll()},e.prototype.expandAll=function(){this.ganttOwner.expandAll()},e.prototype.onGanttViewContextMenu=function(e,t,n){return this.ganttOwner.onGanttViewContextMenu(e,t,n)},e.prototype.changeGanttTaskSelection=function(e,t){this.ganttOwner.changeGanttTaskSelection(e,t)},e.prototype.hideTaskEditControl=function(){this.taskEditController.hide()},e.prototype.scrollLeftByViewType=function(){var e=c.DateUtils.roundStartDate(this.dataRange.start,this.settings.viewType);this.scrollToDateCore(e,1)},e.prototype.scrollToDateCore=function(e,t){this.renderHelper.setTaskAreaContainerScrollLeftToDate(e,t)},e.prototype.onVisualModelChanged=function(){this.resetAndUpdate()},e.prototype.initializeStripLinesUpdater=function(){var e=this;this.settings.stripLines.showCurrentTime&&(this.stripLinesUpdaterId=setInterval((function(){e.renderHelper.recreateStripLines()}),Math.max(this.settings.stripLines.currentTimeUpdateInterval,100)))},e.prototype.clearStripLinesUpdater=function(){this.stripLinesUpdaterId&&clearInterval(this.stripLinesUpdaterId),this.stripLinesUpdaterId=null},e.prototype.getGanttViewStartDate=function(e){if(!e)return new Date;var t=e.map((function(e){return\"string\"==typeof e.start?new Date(e.start):e.start})).filter((function(e){return(0,f.isDefined)(e)}));return t.length>0?t.reduce((function(e,t){return t<e?t:e}),t[0]):new Date},e.prototype.getGanttViewEndDate=function(e){if(!e)return new Date;var t=e.map((function(e){return\"string\"==typeof e.end?new Date(e.end):e.end})).filter((function(e){return(0,f.isDefined)(e)}));return t.length>0?t.reduce((function(e,t){return t>e?t:e}),t[0]):new Date},e.prototype.getTask=function(e){var t=this.getViewItem(e);return null==t?void 0:t.task},e.prototype.getViewItem=function(e){var t;return null===(t=this.viewModel)||void 0===t?void 0:t.items[e]},e.prototype.isValidateDependenciesRequired=function(){return this.settings.validation.validateDependencies&&this.settings.showDependencies},e.prototype.updateTickSizeWidth=function(){this.tickSize.width=this.renderHelper.etalonScaleItemWidths*this.currentZoom},e.prototype.updateView=function(){this.onBeginUpdateView(),this.renderHelper.setTimeScaleContainerScrollLeft(this.taskAreaContainerScrollLeft),this.processScroll(!1),this.processScroll(!0),this.ganttOwner.onGanttScroll(this.taskAreaContainerScrollTop),this.onEndUpdateView()},e.prototype.onBeginUpdateView=function(){this[e.taskAreaScrollTopKey]=this.renderHelper.taskAreaContainerScrollTop,this[e.taskAreaScrollLeftKey]=this.renderHelper.taskAreaContainerScrollLeft},e.prototype.onEndUpdateView=function(){delete this[e.taskAreaScrollTopKey],delete this[e.taskAreaScrollLeftKey],delete this[e.taskTextHeightKey]},Object.defineProperty(e.prototype,\"taskAreaContainerScrollTop\",{get:function(){var t;return null!==(t=this[e.taskAreaScrollTopKey])&&void 0!==t?t:this.renderHelper.taskAreaContainerScrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollLeft\",{get:function(){var t;return null!==(t=this[e.taskAreaScrollLeftKey])&&void 0!==t?t:this.renderHelper.taskAreaContainerScrollLeft},enumerable:!1,configurable:!0}),e.prototype.processScroll=function(e){this.hideTaskEditControl(),this.renderHelper.processScroll(e)},e.prototype.allowTaskAreaBorders=function(e){return e?this.settings.areHorizontalBordersEnabled:this.settings.areVerticalBordersEnabled},e.prototype.getScaleItemText=function(e,t){return this.renderHelper.getScaleItemText(e,t)},e.prototype.getTaskText=function(e){return this.renderHelper.getTaskText(e)},e.prototype.rowHasChildren=function(e){var t=this.getViewItem(e);return(null==t?void 0:t.children.length)>0},e.prototype.rowHasSelection=function(e){var t=this.getViewItem(e);return null==t?void 0:t.selected},e.prototype.getAllVisibleTaskIndices=function(e,t){return this.viewModel.getAllVisibleTaskIndices(e,t)},e.prototype.getVisibleDependencyKeysByTaskRange=function(e){if(!this.settings.showDependencies)return[];var t=this.viewModel,n=e.map((function(e){return t.tasks.items[e].internalId}));return t.dependencies.items.filter((function(e){return n.indexOf(e.successorId)>-1||n.indexOf(e.predecessorId)>-1})).map((function(e){return e.internalId}))},e.prototype.getTreeListTableStyle=function(){var e,t;return null===(t=(e=this.ganttOwner).getTreeListTableStyle)||void 0===t?void 0:t.call(e)},e.prototype.getTreeListColCount=function(){var e,t;return null===(t=(e=this.ganttOwner).getTreeListColCount)||void 0===t?void 0:t.call(e)},e.prototype.getTreeListHeaderInfo=function(e){var t,n;return null===(n=(t=this.ganttOwner).getTreeListHeaderInfo)||void 0===n?void 0:n.call(t,e)},e.prototype.getTreeListCellInfo=function(e,t,n){var r,i;return null===(i=(r=this.ganttOwner).getTreeListCellInfo)||void 0===i?void 0:i.call(r,e,t,n)},e.prototype.getTreeListEmptyDataCellInfo=function(){var e,t;return null===(t=(e=this.ganttOwner).getTreeListEmptyDataCellInfo)||void 0===t?void 0:t.call(e)},e.prototype.exportToPdf=function(e){var t;return null!==(t=e.docCreateMethod)&&void 0!==t||(e.docCreateMethod=this.getDefaultPdfDocCreateMethod()),new m.PdfGanttExporter(new p.GanttExportCalculator(this,e)).export()},e.prototype.getDefaultPdfDocCreateMethod=function(){var e;return null===(e=window.jspdf)||void 0===e?void 0:e.jsPDF},e.prototype.getTaskDependencies=function(e){return this.viewModel.dependencies.items.filter((function(t){return t.predecessorId==e||t.successorId==e}))},e.prototype.isHighlightRowElementAllowed=function(e){var t=this.getViewItem(e);return e%2!=0&&this.settings.areAlternateRowsEnabled||(null==t?void 0:t.children.length)>0},e.prototype.calculateAutoViewType=function(e,t){var n=(t.getTime()-e.getTime())/36e5;return n>8760?D.ViewType.Years:n>720?D.ViewType.Months:n>168?D.ViewType.Weeks:n>24?D.ViewType.Days:n>6?D.ViewType.SixHours:n>1?D.ViewType.Hours:D.ViewType.TenMinutes},e.prototype.getExternalTaskAreaContainer=function(e){return this.ganttOwner.getExternalTaskAreaContainer(e)},e.prototype.prepareExternalTaskAreaContainer=function(e,t){return this.ganttOwner.prepareExternalTaskAreaContainer(e,t)},e.prototype.getHeaderHeight=function(){return this.ganttOwner.getHeaderHeight()},e.prototype.changeTaskExpanded=function(e,t){var n=this.getTaskByPublicId(e);n&&this.viewModel.changeTaskExpanded(n.internalId,t)},e.prototype.expandTask=function(e){this.viewModel.changeTaskExpanded(e,!0)},e.prototype.collapseTask=function(e){this.viewModel.changeTaskExpanded(e,!1)},e.prototype.showTask=function(e){this.viewModel.changeTaskVisibility(e,!0)},e.prototype.hideTask=function(e){this.viewModel.changeTaskVisibility(e,!1)},e.prototype.getTaskVisibility=function(e){return this.viewModel.getTaskVisibility(e)},e.prototype.unselectCurrentSelectedTask=function(){this.unselectTask(this.currentSelectedTaskID)},e.prototype.getTaskSelected=function(e){return this.viewModel.getTaskSelected(e)},e.prototype.setViewType=function(e,t){void 0===t&&(t=!0),this.ganttViewApi.setViewType(e,t)},e.prototype.setViewTypeRange=function(e,t){this.ganttViewApi.setViewTypeRange(e,t)},e.prototype.setTaskTitlePosition=function(e){this.settings.taskTitlePosition!==e&&(this.settings.taskTitlePosition=e,this.resetAndUpdate())},e.prototype.setShowResources=function(e){this.settings.showResources!==e&&(this.settings.showResources=e,this.resetAndUpdate())},e.prototype.toggleResources=function(){this.setShowResources(!this.settings.showResources)},e.prototype.setShowDependencies=function(e){this.settings.showDependencies!==e&&(this.settings.showDependencies=e,this.resetAndUpdate())},e.prototype.toggleDependencies=function(){this.setShowDependencies(!this.settings.showDependencies)},e.prototype.setFirstDayOfWeek=function(e){this.settings.firstDayOfWeek!==e&&(this.settings.firstDayOfWeek=e,this.resetAndUpdate())},e.prototype.setStartDateRange=function(e){l.DateTimeUtils.areDatesEqual(this.settings.startDateRange,e)||(this.settings.startDateRange=new Date(e),this.resetAndUpdate())},e.prototype.setEndDateRange=function(e){l.DateTimeUtils.areDatesEqual(this.settings.endDateRange,e)||(this.settings.endDateRange=new Date(e),this.resetAndUpdate())},e.prototype.loadOptionsFromGanttOwner=function(){var e,t=this;this.tickSize.height=this.ganttOwner.getRowHeight();var n=this.ganttOwner.getGanttTasksData();this.dataRange=new a.DateRange(this.getGanttViewStartDate(n),this.getGanttViewEndDate(n)),null==this.settings.viewType&&(this.settings.viewType=this.calculateAutoViewType(this.dataRange.start,this.dataRange.end)),this.updateTickSizeWidth(),this.range=this.getDateRange(this.dataRange.start,this.dataRange.end),this.dispatcher=new g.ModelChangesDispatcher;var r=this.ganttOwner.getModelChangesListener();r&&this.dispatcher.onModelChanged.add(r),this.viewModel=new I.ViewVisualModel(this,n,this.ganttOwner.getGanttDependenciesData(),this.ganttOwner.getGanttResourcesData(),this.ganttOwner.getGanttResourceAssignmentsData(),this.range,this.ganttOwner.getGanttWorkTimeRules()),this.modelManipulator=new y.ModelManipulator(this.viewModel,this.dispatcher),null===(e=this.history)||void 0===e||e.historyItems.forEach((function(e){return e.setModelManipulator(t.modelManipulator)}))},e.prototype.resetAndUpdate=function(){this.range=this.getDateRange(this.dataRange.start,this.dataRange.end),this.viewModel.updateRange(this.range),this.renderHelper.resetAndUpdate(this.tickSize,this.range,this.settings.viewType,this.viewModel,this.settings.firstDayOfWeek),i.Browser.IE&&this.taskEditController.createElements(),this.updateView()},e.prototype.cleanMarkup=function(){this.renderHelper.taskAreaManagerDetachEvents(),this.taskEditController.detachEvents(),this.clearStripLinesUpdater(),this.renderHelper.reset(),clearTimeout(this._scrollTimeOut)},e.prototype.checkAndProcessModelChanges=function(){var e=this.ganttOwner.getGanttTasksData(),t=this.viewModel.refreshTaskDataIfRequires(e);return t&&this.resetAndUpdate(),t},e.prototype.updateHistoryObsoleteInsertedKey=function(e,t,n){var r;null===(r=this.history)||void 0===r||r.updateObsoleteInsertedKey(e,t,n),n===R.GanttDataObjectNames.dependency&&this.renderHelper.updateRenderedConnectorLinesId(e,t)},e.prototype.updateRowHeights=function(e){if(this.tickSize.height!==e){this.tickSize.height=e;var t=this.renderHelper.getTaskAreaContainerScrollLeft();this.resetAndUpdate(),this.renderHelper.setTaskAreaContainerScrollLeft(t)}},e.prototype.selectTask=function(e){this.selectDependency(null),this.viewModel.changeTaskSelected(e,!0),this.currentSelectedTaskID=e,this.updateBarManager()},e.prototype.unselectTask=function(e){this.viewModel.changeTaskSelected(e,!1),this.updateBarManager()},e.prototype.selectTaskById=function(e){this.unselectCurrentSelectedTask();var t=this.getTaskByPublicId(e);t&&this.selectTask(t.internalId)},e.prototype.selectDependency=function(e){this.taskEditController.selectDependency(e),this.renderHelper.createConnectorLines()},e.prototype.getTaskAreaContainer=function(){return this.renderHelper.taskAreaContainer},e.prototype.setWidth=function(e){this.renderHelper.setMainElementWidth(e)},e.prototype.setHeight=function(e){this.renderHelper.setMainElementHeight(e)},e.prototype.setAllowSelection=function(e){this.settings.allowSelectTask=e},e.prototype.setEditingSettings=function(e){this.settings.editing=e,this.updateBarManager()},e.prototype.setValidationSettings=function(e){this.settings.validation=e},e.prototype.setRowLinesVisible=function(e){this.settings.areHorizontalBordersEnabled=e,this.renderHelper.prepareTaskAreaContainer(),this.resetAndUpdate()},e.prototype.setStripLines=function(e){this.settings.stripLines=k.StripLineSettings.parse(e),this.clearStripLinesUpdater(),this.initializeStripLinesUpdater(),this.renderHelper.recreateStripLines()},e.prototype.deleteTask=function(e){var t=this.getTaskByPublicId(e.toString());t&&this.commandManager.removeTaskCommand.execute(t.internalId,!1,!0)},e.prototype.insertTask=function(e){if(e){var t=null!=e.parentId?String(e.parentId):null,n=this.getTaskByPublicId(t),r=this.viewModel.getRootTaskId(),i=\"string\"==typeof e.start?new Date(e.start):e.start,o=\"string\"==typeof e.end?new Date(e.end):e.end,s={parentId:r&&t===r?t:null==n?void 0:n.internalId,title:e.title,start:i,end:o,progress:parseInt(e.progress)||0,color:e.color};if(this.commandManager.createTaskCommand.execute(s))return this.getLastInsertedTaskId()}return\"\"},e.prototype.updateTask=function(e,t){var n=this.getTaskByPublicId(e.toString()),r=this._getTaskDataForUpdate(t,n);r&&this.commandManager.updateTaskCommand.execute(n.internalId,r)},e.prototype.getTaskData=function(e){var t=this.getTaskByPublicId(e.toString());if(t)return this.viewModel.getTaskObjectForDataSource(t)},e.prototype.insertDependency=function(e){if(e){var t=String(e.predecessorId),n=this.getTaskByPublicId(t),r=String(e.successorId),i=this.getTaskByPublicId(r),o=e.type;n&&i&&this.validationController.canCreateDependency(t,r)&&this.commandManager.createDependencyCommand.execute(n.internalId,i.internalId,o)}},e.prototype.deleteDependency=function(e){var t=this.viewModel.convertPublicToInternalKey(\"dependency\",e);(0,f.isDefined)(t)&&this.commandManager.removeDependencyCommand.execute(t)},e.prototype.getDependencyData=function(e){return this.viewModel.getDependencyObjectForDataSource(e)},e.prototype.insertResource=function(e,t){var n=this;if(e){this.commandManager.createResourceCommand.execute(String(e.text),e.color&&String(e.color),(function(e){if((0,f.isDefined)(t))for(var r=0;r<t.length;r++)n.assignResourceToTask(e,t[r])}))}},e.prototype.deleteResource=function(e){var t=this.viewModel.convertPublicToInternalKey(\"resource\",e);(0,f.isDefined)(t)&&this.commandManager.removeResourceCommand.execute(t)},e.prototype.assignResourceToTask=function(e,t){var n=this.viewModel.convertPublicToInternalKey(\"resource\",e),r=this.viewModel.convertPublicToInternalKey(\"task\",t);(0,f.isDefined)(n)&&(0,f.isDefined)(r)&&this.commandManager.assignResourceCommand.execute(n,r)},e.prototype.unassignResourceFromTask=function(e,t){var n=this.viewModel.findAssignment(e,t);n&&this.commandManager.deassignResourceCommand.execute(n.internalId)},e.prototype.unassignAllResourcesFromTask=function(e){var t=this,n=this.viewModel.convertPublicToInternalKey(\"task\",e);this.viewModel.findAllTaskAssignments(n).forEach((function(e){return t.commandManager.deassignResourceCommand.execute(e.internalId)}))},e.prototype.getResourceData=function(e){return this.viewModel.getResourceObjectForDataSource(e)},e.prototype.getResourceAssignmentData=function(e){return this.viewModel.getResourceAssignmentObjectForDataSource(e)},e.prototype.getTaskResources=function(e){var t=this.viewModel,n=t.getItemByPublicId(\"task\",e);return n&&t.getAssignedResources(n).items},e.prototype.getVisibleTaskKeys=function(){return this.viewModel.getVisibleTasks().map((function(e){return e.id}))},e.prototype.getVisibleDependencyKeys=function(){return this.viewModel.getVisibleDependencies().map((function(e){return e.id}))},e.prototype.getVisibleResourceKeys=function(){return this.viewModel.getVisibleResources().map((function(e){return e.id}))},e.prototype.getVisibleResourceAssignmentKeys=function(){return this.viewModel.getVisibleResourceAssignments().map((function(e){return e.id}))},e.prototype.getTasksExpandedState=function(){return this.viewModel.getTasksExpandedState()},e.prototype.applyTasksExpandedState=function(e){this.viewModel.applyTasksExpandedState(e)},e.prototype.updateWithDataReload=function(e){if(this._updateWithModelReloadLockedCounter>0)this._pendingUpdateInfo={keepExpandState:e};else{var t=e&&this.getTasksExpandedState();this.loadOptionsFromGanttOwner(),e?this.applyTasksExpandedState(t):this.resetAndUpdate();var n=x.DialogBase.activeInstance;n&&n.canRefresh&&\"TaskEdit\"===n.getDialogName()&&n.refresh(),this.dispatcher.notifyGanttViewUpdated()}},e.prototype.onBrowserWindowResize=function(){this.fullScreenModeHelper.isInFullScreenMode?this.fullScreenModeHelper.adjustControlInFullScreenMode():this.adjustOwnerControl()},e.prototype.getTaskTreeLine=function(e){return this.viewModel.getTaskTreeLine(e).reverse()},e.prototype.setTaskValue=function(e,t,n){var r=this.commandManager.updateTaskCommand,i=this.getTaskByPublicId(e),o={};return i&&(\"title\"===t&&(o[t]=n||\"\"),\"progress\"===t&&(o[t]=n),\"start\"===t&&(o[t]=l.DateTimeUtils.getMinDate(n,i.end)),\"end\"===t&&(o[t]=l.DateTimeUtils.getMaxDate(n,i.start))),Object.keys(o).length>0&&r.execute(i.internalId,o)},e.prototype.getLastInsertedTaskId=function(){var e=this.history.historyItems.filter((function(e){return e instanceof s.CreateTaskHistoryItem})),t=e[e.length-1];return t&&t.insertedKey},e.prototype.getTaskByPublicId=function(e){return this.viewModel.tasks.getItemByPublicId(e)},e.prototype.getPrevTask=function(e){var t=this.viewModel.findItem(e);if(!t)return null;var n=(t.parent||this.viewModel.root).children.indexOf(t)-1;return n>-1?t.parent.children[n].task:t.parent.task},e.prototype.getTaskIdByInternalId=function(e){var t=this.viewModel.findItem(e),n=t&&t.task;return n?n.id:null},e.prototype.isTaskHasChildren=function(e){var t=this.viewModel.findItem(e);return t&&t.children.length>0},e.prototype.requireFirstLoadParentAutoCalc=function(){var e=this.ganttOwner;return e.getRequireFirstLoadParentAutoCalc&&e.getRequireFirstLoadParentAutoCalc()},e.prototype.updateOwnerInAutoParentMode=function(){this.viewModel.parentAutoCalc&&this.dispatcher.notifyParentDataRecalculated(this.viewModel.getCurrentTaskData())},e.prototype.getOwnerControlMainElement=function(){var e=this.ganttOwner;return e.getMainElement&&e.getMainElement()},e.prototype.adjustOwnerControl=function(){var e=this.ganttOwner;e.adjustControl&&e.adjustControl()},e.prototype.applySettings=function(e,t){void 0===t&&(t=!1);var n=T.Settings.parse(e),r=t||this.settings.equal(n);this.settings=n,r||this.resetAndUpdate()},e.prototype.getDataUpdateErrorCallback=function(){var e=this,t=this.history,n=t.getCurrentProcessingItemInfo();return function(){e.dispatcher.lock(),t.rollBackAndRemove(n),e.dispatcher.unlock(),e.updateBarManager()}},e.prototype.setTaskTooltipContentTemplate=function(e){this.settings.taskTooltipContentTemplate=e},e.prototype.setTaskProgressTooltipContentTemplate=function(e){this.settings.taskProgressTooltipContentTemplate=e},e.prototype.setTaskTimeTooltipContentTemplate=function(e){this.settings.taskTimeTooltipContentTemplate=e},e.prototype.setTaskContentTemplate=function(e){this.settings.taskContentTemplate=e},e.prototype.updateBarManager=function(){this.barManager.updateItemsState([])},e.prototype.onTaskAreaClick=function(e,t){var n,r=this.viewModel.items[e];return r&&this.onTaskClick(null===(n=r.task)||void 0===n?void 0:n.id,t)},e.prototype.onTaskAreaDblClick=function(e,t){var n=this.viewModel.items[e];n&&this.onTaskDblClick(n.task.id,t)&&this.commandManager.showTaskEditDialog.execute(n.task)},e.prototype.onTaskAreaContextMenu=function(e,t,n){var r,i,o=\"dependency\"===n,s=t,a=this.viewModel,l=o?a.convertInternalToPublicKey(\"dependency\",P.EvtUtils.getEventSource(t).getAttribute(\"dependency-id\")):null===(i=null===(r=a.items[e])||void 0===r?void 0:r.task)||void 0===i?void 0:i.id;if(this.onGanttViewContextMenu(t,l,n)){var c={event:t,type:n,key:l,position:new A.Point(P.EvtUtils.getEventX(s),P.EvtUtils.getEventY(s))};this.showPopupMenu(c)}},e.prototype.onTaskSelectionChanged=function(e,t){var n=this,r=this.viewModel.items[e];this.isFocus=M.DomUtils.isItParent(this.renderHelper.taskArea,P.EvtUtils.getEventSource(t)),r&&this.isFocus&&this.settings.allowSelectTask&&setTimeout((function(){n.changeGanttTaskSelection(r.task.id,!0)}),0)},e.prototype.onTaskClick=function(e,t){return!this.ganttOwner.onTaskClick||this.ganttOwner.onTaskClick(e,t)},e.prototype.onTaskDblClick=function(e,t){return!this.ganttOwner.onTaskDblClick||this.ganttOwner.onTaskDblClick(e,t)},e.prototype.getDateFormat=function(e){return this.ganttOwner.getFormattedDateText?this.ganttOwner.getFormattedDateText(e):this.getDefaultDateFormat(e)},e.prototype.getDefaultDateFormat=function(e){return(\"0\"+e.getDate()).slice(-2)+\"/\"+(\"0\"+(e.getMonth()+1)).slice(-2)+\"/\"+e.getFullYear()+\" \"+(\"0\"+e.getHours()).slice(-2)+\":\"+(\"0\"+e.getMinutes()).slice(-2)},e.prototype.destroyTemplate=function(e){this.ganttOwner.destroyTemplate?this.ganttOwner.destroyTemplate(e):e.innerHTML=\"\"},e.prototype.onTaskAreaSizeChanged=function(e){this.ganttOwner.onTaskAreaSizeChanged&&this.ganttOwner.onTaskAreaSizeChanged(e)},e.prototype.showTaskEditDialog=function(){this.commandManager.showTaskEditDialog.execute()},e.prototype.showTaskDetailsDialog=function(e){var t=this.getTaskByPublicId(e);t&&this.commandManager.showTaskEditDialog.execute(t,!0)},e.prototype.showResourcesDialog=function(){this.commandManager.showResourcesDialog.execute()},e.prototype.getCommandByKey=function(e){return this.commandManager.getCommand(e)},e.prototype._getTaskDataForUpdate=function(e,t){var n={};return t&&e&&((0,f.isDefined)(e.title)&&e.title!==t.title&&(n.title=e.title),(0,f.isDefined)(e.progress)&&e.progress!==t.progress&&(n.progress=e.progress),(0,f.isDefined)(e.start)&&e.start!==t.start&&(n.start=e.start),(0,f.isDefined)(e.end)&&e.end!==t.end&&(n.end=e.end),(0,f.isDefined)(e.color)&&e.color!==t.color&&(n.color=e.color)),Object.keys(n).length>0?n:null},e.prototype.updateViewDataRange=function(){var e=this.viewModel,t=e.getTaskMinStart(),n=e.getTaskMaxEnd(),r=t.getTime()<this.dataRange.start.getTime(),i=n.getTime()>this.dataRange.end.getTime();r&&(this.dataRange.start=t),i&&(this.dataRange.end=n),(r||i)&&this.resetAndUpdate()},e.cachedPrefix=\"cached_\",e.taskAreaScrollLeftKey=e.cachedPrefix+\"taskAreaScrollLeft\",e.taskAreaScrollTopKey=e.cachedPrefix+\"taskAreaScrollTop\",e.taskTextHeightKey=e.cachedPrefix+\"taskTextHeight\",e}();t.GanttView=L},2449:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaEventSource=t.TaskTitlePosition=t.Position=t.ViewType=void 0,function(e){e[e.TenMinutes=0]=\"TenMinutes\",e[e.Hours=1]=\"Hours\",e[e.SixHours=2]=\"SixHours\",e[e.Days=3]=\"Days\",e[e.Weeks=4]=\"Weeks\",e[e.Months=5]=\"Months\",e[e.Quarter=6]=\"Quarter\",e[e.Years=7]=\"Years\",e[e.FiveYears=8]=\"FiveYears\"}(t.ViewType||(t.ViewType={})),function(e){e[e.Left=0]=\"Left\",e[e.Top=1]=\"Top\",e[e.Right=2]=\"Right\",e[e.Bottom=3]=\"Bottom\"}(t.Position||(t.Position={})),function(e){e[e.Inside=0]=\"Inside\",e[e.Outside=1]=\"Outside\",e[e.None=2]=\"None\"}(t.TaskTitlePosition||(t.TaskTitlePosition={})),function(e){e[e.TaskArea=0]=\"TaskArea\",e[e.TaskEdit_Frame=1]=\"TaskEdit_Frame\",e[e.TaskEdit_Progress=2]=\"TaskEdit_Progress\",e[e.TaskEdit_Start=3]=\"TaskEdit_Start\",e[e.TaskEdit_End=4]=\"TaskEdit_End\",e[e.TaskEdit_DependencyStart=5]=\"TaskEdit_DependencyStart\",e[e.TaskEdit_DependencyFinish=6]=\"TaskEdit_DependencyFinish\",e[e.Successor_Wrapper=7]=\"Successor_Wrapper\",e[e.Successor_DependencyStart=8]=\"Successor_DependencyStart\",e[e.Successor_DependencyFinish=9]=\"Successor_DependencyFinish\"}(t.TaskAreaEventSource||(t.TaskAreaEventSource={}))},8877:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EtalonSizeValues=void 0;var n=function(){this.scaleItemWidths={}};t.EtalonSizeValues=n},8695:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FullScreenModeHelper=void 0;var r=n(9279),i=n(2217),o=n(6907),s=function(){function e(e){this._isInFullScreenMode=!1,this.fullScreenTempVars={},this.settings=e}return Object.defineProperty(e.prototype,\"isInFullScreenMode\",{get:function(){return this._isInFullScreenMode},enumerable:!1,configurable:!0}),e.prototype.getMainElement=function(){return this.settings.getMainElement()},e.prototype.adjustControl=function(){this.settings.adjustControl()},e.prototype.toggle=function(){return this._isInFullScreenMode=!this._isInFullScreenMode,this._isInFullScreenMode?this.setFullScreenMode():this.setNormalMode(),!0},e.prototype.setFullScreenMode=function(){this.prepareFullScreenMode(),this.adjustControlInFullScreenMode()},e.prototype.prepareFullScreenMode=function(){var e=this.getMainElement();i.AttrUtils.changeElementStyleAttribute(e,\"border-top-width\",\"0px\"),i.AttrUtils.changeElementStyleAttribute(e,\"border-left-width\",\"0px\"),i.AttrUtils.changeElementStyleAttribute(e,\"border-right-width\",\"0px\"),i.AttrUtils.changeElementStyleAttribute(e,\"border-bottom-width\",\"0px\"),this.fullScreenTempVars.scrollTop=o.DomUtils.getDocumentScrollTop(),this.fullScreenTempVars.scrollLeft=o.DomUtils.getDocumentScrollLeft(),i.AttrUtils.changeElementStyleAttribute(e,\"background-color\",\"white\"),i.AttrUtils.changeElementStyleAttribute(e,\"position\",\"fixed\"),i.AttrUtils.changeElementStyleAttribute(e,\"top\",\"0px\"),i.AttrUtils.changeElementStyleAttribute(e,\"left\",\"0px\"),i.AttrUtils.changeElementStyleAttribute(e,\"z-index\",\"1010\"),i.AttrUtils.changeElementStyleAttribute(document.documentElement,\"position\",\"static\"),i.AttrUtils.changeElementStyleAttribute(document.documentElement,\"overflow\",\"hidden\"),this.fullScreenTempVars.bodyMargin=document.body.style.margin,document.body.style.margin=\"0\",this.fullScreenTempVars.width=e.style.width,this.fullScreenTempVars.height=e.style.height||e.clientHeight,window.self!==window.top&&this.requestFullScreen(document.body)},e.prototype.setNormalMode=function(){this.cancelFullScreen(document);var e=this.getMainElement();i.AttrUtils.restoreElementStyleAttribute(e,\"left\"),i.AttrUtils.restoreElementStyleAttribute(e,\"top\"),i.AttrUtils.restoreElementStyleAttribute(e,\"background-color\"),i.AttrUtils.restoreElementStyleAttribute(document.documentElement,\"overflow\"),i.AttrUtils.restoreElementStyleAttribute(document.documentElement,\"position\"),i.AttrUtils.restoreElementStyleAttribute(e,\"z-index\"),document.body.style.margin=this.fullScreenTempVars.bodyMargin,i.AttrUtils.restoreElementStyleAttribute(e,\"position\"),i.AttrUtils.restoreElementStyleAttribute(e,\"border-top-width\"),i.AttrUtils.restoreElementStyleAttribute(e,\"border-left-width\"),i.AttrUtils.restoreElementStyleAttribute(e,\"border-right-width\"),i.AttrUtils.restoreElementStyleAttribute(e,\"border-bottom-width\"),this.setHeight(this.fullScreenTempVars.height),this.setWidth(this.fullScreenTempVars.width),document.documentElement.scrollTop=this.fullScreenTempVars.scrollTop,document.documentElement.scrollLeft=this.fullScreenTempVars.scrollLeft,this.adjustControl()},e.prototype.adjustControlInFullScreenMode=function(){var e=0==document.documentElement.clientWidth?document.body.clientWidth:document.documentElement.clientWidth,t=0==document.documentElement.clientHeight?document.body.clientHeight:document.documentElement.clientHeight;this.setWidth(e),this.setHeight(t),this.adjustControl()},e.prototype.requestFullScreen=function(e){e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()},e.prototype.cancelFullScreen=function(e){r.Browser.Firefox&&!this.getFullScreenElement(e)||(e.webkitExitFullscreen?e.webkitExitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.msExitFullscreen?e.msExitFullscreen():e.exitFullscreen&&e.exitFullscreen())},e.prototype.getFullScreenElement=function(e){return e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement},e.prototype.setWidth=function(e){this.getMainElement().style.width=this.isNumber(e)?e+\"px\":e},e.prototype.setHeight=function(e){this.getMainElement().style.height=this.isNumber(e)?e+\"px\":e},e.prototype.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},e}();t.FullScreenModeHelper=s},1391:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GridElementInfo=void 0;var r=n(8900),i=n(6353),o=n(3604),s=function(){function e(t,n,s){this.id=e.id++,this.position=new r.Point(void 0,void 0),this.size=new i.Size(0,0),this.margins=new o.Margins(void 0,void 0,void 0,void 0),this.attr={},this.style={},this.additionalInfo={},t&&(this.className=t),n&&this.setPosition(n),s&&this.setSize(s)}return e.prototype.setSize=function(e){this.size.width=e.width,this.size.height=e.height},e.prototype.setPosition=function(e){this.position.x=e.x,this.position.y=e.y},e.prototype.assignToElement=function(e){this.assignPosition(e),this.assignSize(e),this.assignMargins(e),this.className&&(e.className=this.className)},e.prototype.assignPosition=function(e){null!=this.position.x&&(e.style.left=this.position.x+\"px\"),null!=this.position.y&&(e.style.top=this.position.y+\"px\")},e.prototype.assignSize=function(e){this.size.width&&(e.style.width=this.size.width+\"px\"),this.size.height&&(e.style.height=this.size.height+\"px\")},e.prototype.assignMargins=function(e){this.margins.left&&(e.style.marginLeft=this.margins.left+\"px\"),this.margins.top&&(e.style.marginTop=this.margins.top+\"px\"),this.margins.right&&(e.style.marginRight=this.margins.right+\"px\"),this.margins.bottom&&(e.style.marginBottom=this.margins.bottom+\"px\")},e.prototype.setAttribute=function(e,t){this.attr[e]=t},e.id=0,e}();t.GridElementInfo=s},1855:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.GridLayoutCalculator=void 0;var r=n(6353),i=n(858),o=n(2449),s=n(1391),a=n(8900),l=n(9201),c=n(1442),u=n(5950),d=n(7072),p=n(2491),h=function(){function e(){this.tileToDependencyMap=[],this.tileToNoWorkingIntervalsMap=[],this.minLineLength=10,this.resourceMaxWidth=500,this.minTaskWidth=2,this._taskWrapperPoints=Array(),this._taskElementInfoList=Array(),this._scaleCalculator=new d.ScaleCalculator}return e.prototype.setSettings=function(e,t,n,i,o,s,a,c){void 0===a&&(a=0),void 0===c&&(c=0),this.visibleTaskAreaSize=e,this.tickSize=t,this._viewType=s,this.range=i,this.verticalTickCount=o.itemCount,this.viewModel=o,this.elementSizeValues=n,this.taskHeight=n.taskHeight,this.parentTaskHeight=n.parentTaskHeight,this.milestoneWidth=n.milestoneWidth,this.scaleHeight=n.scaleItemHeight,this.arrowSize=new r.Size(n.connectorArrowWidth,n.connectorArrowWidth),this.lineThickness=n.connectorLineThickness,this.minConnectorSpaceFromTask=(this.tickSize.height-this.taskHeight)/2,this.tickTimeSpan=l.DateUtils.getTickTimeSpan(s),this.scrollBarHeight=a,this.createTileToNonWorkingIntervalsMap(),this._scaleCalculator.setSettings(i,s,t,c),this.reset()},Object.defineProperty(e.prototype,\"viewType\",{get:function(){return this._viewType},set:function(e){this._viewType!==e&&(this._viewType=e,this._scaleCalculator.setViewType(e))},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._taskWrapperPoints=new Array,this._taskElementInfoList=Array()},e.prototype.resetTaskInfo=function(e){delete this._taskWrapperPoints[e],delete this._taskElementInfoList[e]},e.prototype.getTaskAreaBorderInfo=function(e,t){var n=t?this.getVerticalGridLineHeight():this.getTotalWidth();return this.getGridBorderInfo(e,t,n)},e.prototype.getTotalWidth=function(){return this._scaleCalculator.scaleWidth},e.prototype.getScaleBorderInfo=function(e,t){var n=new s.GridElementInfo,i=this._scaleCalculator;return n.setPosition(new a.Point(i.getScaleBorderPosition(e,t),void 0)),n.setSize(new r.Size(0,this.scaleHeight)),n.className=\"dx-gantt-vb\",n},e.prototype.getGridBorderInfo=function(e,t,n){var r=new s.GridElementInfo;return r.setPosition(this.getGridBorderPosition(e,t)),n&&r.setSize(this.getGridBorderSize(t,n)),r.className=t?\"dx-gantt-vb\":\"dx-gantt-hb\",r},e.prototype.getGridBorderPosition=function(e,t){var n=new a.Point(void 0,void 0),r=this._scaleCalculator,i=t?r.getScaleBorderPosition(e,this.viewType):(e+1)*this.tickSize.height;return t?n.x=i:n.y=i,n},e.prototype.getGridBorderSize=function(e,t){var n=new r.Size(0,0);return e?n.height=t:n.width=t,n},e.prototype.getScaleElementInfo=function(e,t){var n=new s.GridElementInfo,r=this.getScaleItemInfo(e,t);if(r){n.setPosition(r.position),n.setSize(r.size),n.className=this.getScaleItemClassName(t,n,this.getRenderedNoWorkingIntervals(n.position.x));var o=this._scaleCalculator.getScaleItems(t);(0===e||e===o.length-1)&&(n.style.overflowX=\"hidden\",n.style.textOverflow=\"ellipsis\"),n.additionalInfo.range=new i.DateRange(r.start,r.end)}return n},e.prototype.getScaleItemStart=function(e,t){return this._scaleCalculator.getScaleItemAdjustedStart(e,t)},e.prototype.getScaleItemClassName=function(e,t,n){var r=\"dx-gantt-si\";return e.valueOf()==this.viewType.valueOf()&&this.isScaleItemInsideNoWorkingInterval(t,n)&&(r+=\" dx-gantt-holiday-scaleItem\"),r},e.prototype.getScaleItemInfo=function(e,t){return this._scaleCalculator.getScaleItem(e,t)},e.prototype.getScaleRangesInArea=function(e,t){var n=l.DateUtils.ViewTypeToScaleMap[this.viewType],r=this._scaleCalculator,i=Math.max(r.getScaleIndexByPos(e,n),0),o=r.getScaleIndexByPos(t,n);-1===o&&(o=r.topScaleItems.length-1);var s=Math.max(r.getScaleIndexByPos(e),0),a=r.getScaleIndexByPos(t);return-1===a&&(a=r.bottomScaleItems.length-1),[[i,o],[s,a]]},e.prototype.isScaleItemInsideNoWorkingInterval=function(e,t){for(var n=e.position.x,r=e.position.x+e.size.width,i=0;i<t.length;i++){var o=t[i].position.x,s=t[i].position.x+t[i].size.width;if(n>=o&&r<=s)return!0}return!1},e.prototype.getScaleItemColSpan=function(e){return this._scaleCalculator.getScaleItemColSpan(e)},e.prototype.getTaskWrapperElementInfo=function(e){var t=new s.GridElementInfo;return t.className=this.getTaskWrapperClassName(e),t.setPosition(this.getTaskWrapperPoint(e)),t.setAttribute(\"task-index\",e),t},e.prototype.getTaskWrapperClassName=function(e){var t=\"dx-gantt-taskWrapper\",n=this.getViewItem(e);return n.task.isMilestone()&&!n.isCustom&&(t=\"dx-gantt-milestoneWrapper\"),n.selected&&(t+=\" dx-gantt-selectedTask\"),t},e.prototype.getTaskWrapperPoint=function(e){if(!(0,p.isDefined)(this._taskWrapperPoints[e])){var t=this.getViewItem(e),n=this.getTaskHeight(e),r=e*this.tickSize.height+(this.tickSize.height-n)/2,i=new a.Point(this.getPosByDate(t.task.start),r);t.task.isMilestone()&&!t.isCustom&&(i.x-=n/2),this._taskWrapperPoints[e]=i}return this._taskWrapperPoints[e].clone()},e.prototype.getTaskElementInfo=function(e,t){if(void 0===t&&(t=!1),!(0,p.isDefined)(this._taskElementInfoList[e])){var n=new s.GridElementInfo,r=this.getTask(e),i=this.viewModel.parentAutoCalc&&this.viewModel.taskHasChildrenByIndex(e);if(!r.isMilestone()){var o=this.getTaskWidth(e);n.size.width=this.getCorrectedTaskWidthByRange(e,o),n.size.width<o&&(n.additionalInfo.taskCut=!0),t&&(n.size.height=this.getTaskHeight(e))}n.className=this.getTaskClassName(e,n.size.width),r.color&&(n.style.backgroundColor=r.color,i&&(n.style.borderLeftColor=r.color,n.style.borderRightColor=r.color,n.style.borderTopColor=r.color)),this._taskElementInfoList[e]=n}return this._taskElementInfoList[e]},e.prototype.getTaskClassName=function(t,n){var r=e.taskClassName,i=this.getViewItem(t),o=this.viewModel.parentAutoCalc&&this.viewModel.taskHasChildrenByIndex(t);return i.task.isMilestone()&&!i.isCustom?r+=\" \"+e.milestoneClassName:(n<=this.elementSizeValues.smallTaskWidth&&(r+=\" \"+e.smallTaskClassName),o&&(r+=this.getAutoCalcParentTaskClassName(i.task))),r},e.prototype.getAutoCalcParentTaskClassName=function(t){var n=\" \"+e.parentTaskClassName;return 0==t.progress&&(n+=\" dx-gantt-noPrg\"),t.progress>=100&&(n+=\" dx-gantt-cmpl\"),n},e.prototype.getTaskPoint=function(e){var t=this.getTaskWrapperPoint(e);return this.getTask(e).isMilestone()||(t.y+=this.elementSizeValues.taskWrapperTopPadding),t},e.prototype.getTaskSize=function(e){return new r.Size(this.getTaskWidth(e),this.getTaskHeight(e))},e.prototype.getTaskWidth=function(e){var t=this.getViewItem(e);return t.isCustom&&t.size.width?t.size.width:t.task.isMilestone()&&!t.isCustom?this.getTaskHeight(e):Math.max(this.getWidthByDateRange(t.task.start,t.task.end),this.minTaskWidth)},e.prototype.getTaskHeight=function(e){var t=this.getViewItem(e);return t.task.isMilestone()&&!t.isCustom?this.milestoneWidth:this.viewModel.isTaskToCalculateByChildren(t.task.internalId)?this.parentTaskHeight:t.isCustom&&t.size.height?t.size.height:this.taskHeight},e.prototype.getTask=function(e){var t=this.getViewItem(e);return null==t?void 0:t.task},e.prototype.getViewItem=function(e){return this.viewModel.items[e]},e.prototype.getTaskProgressElementInfo=function(t){var n=new s.GridElementInfo;return n.className=e.taskProgressClassName,n.setSize(this.getTaskProgressSize(t)),n},e.prototype.getTaskProgressSize=function(e){var t=this.getTaskProgressWidth(e);return this.isTaskCutByRange(e)&&(t=this.getCorrectedTaskWidthByRange(e,t)),new r.Size(t,0)},e.prototype.getTaskProgressWidth=function(e){return this.getTaskWidth(e)*this.getTask(e).normalizedProgress/100},e.prototype.getTaskTextElementInfo=function(e,t){var n=new s.GridElementInfo;if(n.className=this.getTaskTextElementClassName(t),!t){var r=this.getTaskPoint(e).x;if(r<this.elementSizeValues.outsideTaskTextDefaultWidth){var i=Math.max(r,0);n.size.width=i,i>0?n.margins.left=-i:n.additionalInfo.hidden=!0}}return n},e.prototype.getTaskTextElementClassName=function(t){return e.taskTitleClassName.concat(\" \",t?e.titleInClassName:e.titleOutClassName)},e.prototype.getTaskResourcesWrapperElementInfo=function(e){var t=new s.GridElementInfo,n=this.getTaskSize(e).width;return t.className=\"dx-gantt-taskResWrapper\",t.setPosition(this.getTaskWrapperPoint(e)),t.position.x=t.position.x+n,t},e.prototype.getTaskResourceElementInfo=function(){var t=new s.GridElementInfo;return t.className=e.taskResourceClassName,t},e.prototype.getSelectionElementInfo=function(e){return this.getRowElementInfo(e,\"dx-gantt-sel\")},e.prototype.getSelectionPosition=function(e){var t=new a.Point(void 0,void 0);return t.y=e*this.tickSize.height,t},e.prototype.getSelectionSize=function(){return new r.Size(this.getTotalWidth(),this.tickSize.height)},e.prototype.getHighlightRowInfo=function(e){return this.getRowElementInfo(e,\"dx-gantt-altRow\")},e.prototype.getRowElementInfo=function(e,t){var n=new s.GridElementInfo;return n.className=t,n.setPosition(this.getSelectionPosition(e)),n.setSize(this.getSelectionSize()),n},e.prototype.getNoWorkingIntervalInfo=function(e){var t=new s.GridElementInfo;return t.className=\"dx-gantt-nwi\",t.setPosition(this.getNoWorkingIntervalPosition(e.start)),t.setSize(this.getNoWorkingIntervalSize(e)),t},e.prototype.getNoWorkingIntervalPosition=function(e){var t=new a.Point(void 0,void 0);return t.x=this.getPosByDate(e),t},e.prototype.getNoWorkingIntervalSize=function(e){return new r.Size(this.getWidthByDateRange(e.start,e.end),this.getVerticalGridLineHeight())},e.prototype.getVerticalGridLineHeight=function(){return Math.max(this.visibleTaskAreaSize.height-this.scrollBarHeight,this.tickSize.height*this.verticalTickCount)},e.prototype.getConnectorInfo=function(e,t,n,r){for(var i=new Array,o=this.getConnectorPoints(t,n,r),s=0;s<o.length-1;s++)i.push(this.getConnectorLineInfo(e,o[s],o[s+1],0==s||s==o.length-2));return i.push(this.getArrowInfo(e,o,i,t,n)),this.checkAndCorrectConnectorLinesByRange(i),i.filter((function(e){return!!e}))},e.prototype.getConnectorLineInfo=function(e,t,n,r){var i=new s.GridElementInfo,o=t.x==n.x;return i.className=this.getConnectorClassName(o),i.setPosition(this.getConnectorPosition(t,n)),i.setSize(this.getConnectorSize(t,n,o,r)),i.setAttribute(\"dependency-id\",e),i},e.prototype.getConnectorClassName=function(t){return t?e.CLASSNAMES.CONNECTOR_VERTICAL:e.CLASSNAMES.CONNECTOR_HORIZONTAL},e.prototype.getConnectorPosition=function(e,t){return new a.Point(Math.min(e.x,t.x),Math.min(e.y,t.y))},e.prototype.getConnectorSize=function(e,t,n,i){var o=new r.Size(0,0),s=i?0:1;return n?o.height=Math.abs(t.y-e.y)+s:o.width=Math.abs(t.x-e.x)+s,o},e.prototype.getArrowInfo=function(e,t,n,r,i){var o=new s.GridElementInfo,a=this.findArrowLineInfo(n,r,i),l=this.getArrowPosition(t,r,i);return o.className=this.getArrowClassName(l),o.setPosition(this.getArrowPoint(a,l)),o.setAttribute(\"dependency-id\",e),o},e.prototype.findArrowLineInfo=function(e,t,n){return e[t<n?e.length-1:0]},e.prototype.getArrowPosition=function(e,t,n){var r=e[t<n?e.length-2:1],i=e[t<n?e.length-1:0];return r.x==i.x?r.y>i.y?o.Position.Top:o.Position.Bottom:r.x>i.x?o.Position.Left:o.Position.Right},e.prototype.getArrowClassName=function(t){var n=e.arrowClassName;switch(t){case o.Position.Left:n=n.concat(\" \",e.leftArrowClassName);break;case o.Position.Top:n=n.concat(\" \",e.topArrowClassName);break;case o.Position.Right:n=n.concat(\" \",e.rightArrowClassName);break;case o.Position.Bottom:n=n.concat(\" \",e.bottomArrowClassName)}return n},e.prototype.getArrowPositionByClassName=function(t){return t.indexOf(e.leftArrowClassName)>-1?o.Position.Left:t.indexOf(e.topArrowClassName)>-1?o.Position.Top:t.indexOf(e.rightArrowClassName)>-1?o.Position.Right:t.indexOf(e.bottomArrowClassName)>-1?o.Position.Bottom:void 0},e.prototype.getArrowPoint=function(e,t){return new a.Point(this.getArrowX(e,t),this.getArrowY(e,t))},e.prototype.getArrowX=function(e,t){switch(t){case o.Position.Left:return e.position.x-this.arrowSize.width/2;case o.Position.Right:return e.position.x+e.size.width-this.arrowSize.width/2;case o.Position.Top:case o.Position.Bottom:return e.position.x-(this.arrowSize.width-this.lineThickness)/2}},e.prototype.getArrowY=function(e,t){switch(t){case o.Position.Top:return e.position.y-this.arrowSize.height/2;case o.Position.Bottom:return e.position.y+e.size.height-this.arrowSize.height/2;case o.Position.Left:case o.Position.Right:return e.position.y-(this.arrowSize.height-this.lineThickness)/2}},e.prototype.getPosByDate=function(e){return this.getWidthByDateRange(this.range.start,e)},e.prototype.getWidthByDateRange=function(e,t){return l.DateUtils.getRangeTickCount(e,t,this.viewType)*this.tickSize.width},e.prototype.getDateByPos=function(e){if(this.viewType===o.ViewType.Months||this.viewType===o.ViewType.Quarter)return this.getDateByPosInMonthBasedViewTypes(e);var t=e/this.tickSize.width,n=new Date(this.range.start);return l.DateUtils.getDSTCorrectedTaskEnd(n,t*this.tickTimeSpan)},e.prototype.getDateByPosInMonthBasedViewTypes=function(e){return this._scaleCalculator.getDateInScale(e)},e.prototype.getConnectorPoints=function(e,t,n){switch(n){case u.DependencyType.FS:return this.getFinishToStartConnectorPoints(e,t);case u.DependencyType.SF:return this.getStartToFinishConnectorPoints(e,t);case u.DependencyType.SS:return this.getStartToStartConnectorPoints(e,t);case u.DependencyType.FF:return this.getFinishToFinishConnectorPoints(e,t);default:return new Array}},e.prototype.getFinishToStartConnectorPoints=function(e,t){return e<t?this.getTask(e).end<=this.getTask(t).start?this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide(e,t,!1):this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(e,t,!1):this.getTask(e).end<=this.getTask(t).start?this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide(t,e,!1):this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(t,e,!0)},e.prototype.getFinishToFinishConnectorPoints=function(e,t){return e<t?this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(e,t):this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(t,e)},e.prototype.getStartToStartConnectorPoints=function(e,t){return e<t?this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(e,t):this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(t,e)},e.prototype.getStartToFinishConnectorPoints=function(e,t){return e<t?this.getTask(e).start>=this.getTask(t).end?this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide(e,t,!0):this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(e,t,!1):this.getTask(e).start>=this.getTask(t).end?this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide(t,e,!0):this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(t,e,!0)},e.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskRightCenter(i,e),l=this.getTask(t).isMilestone(),c=this.getTaskTopCenter(o,t),u=this.getHorizontalIndentFromTaskEdge(t,n);return r.push(new a.Point(Math.floor(s.x),Math.floor(s.y))),r.push(new a.Point(Math.floor(l?c.x:o.x+u),Math.floor(r[0].y))),r.push(new a.Point(Math.floor(r[1].x),Math.floor(c.y))),r},e.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide=function(e,t){var n=new Array,r=this.getTaskPoint(e),i=this.getTaskPoint(t),o=this.getTaskRightCenter(r,e),s=this.getTaskRightCenter(i,t);return n.push(new a.Point(Math.floor(o.x),Math.floor(o.y))),n.push(new a.Point(Math.floor(Math.max(o.x,s.x)+this.minLineLength),Math.floor(n[0].y))),n.push(new a.Point(Math.floor(n[1].x),Math.floor(s.y))),n.push(new a.Point(Math.floor(s.x),Math.floor(s.y))),n},e.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskRightCenter(i,e),l=this.getTaskBottomCenter(i,e),c=this.getTaskLeftCenter(o,t),u=this.getTaskTopCenter(o,t),d=n?this.getViewItem(e):this.getViewItem(t),p=d.isCustom?(this.tickSize.height-d.size.height)/2:this.minConnectorSpaceFromTask;return r.push(new a.Point(Math.floor(s.x),Math.floor(s.y))),r.push(new a.Point(Math.floor(r[0].x+this.minLineLength),Math.floor(r[0].y))),r.push(new a.Point(Math.floor(r[1].x),Math.floor(n?l.y+p:u.y-p))),r.push(new a.Point(Math.floor(c.x-this.minLineLength),Math.floor(r[2].y))),r.push(new a.Point(Math.floor(r[3].x),Math.floor(c.y))),r.push(new a.Point(Math.floor(c.x),Math.floor(c.y))),r},e.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskBottomCenter(i,e),l=this.getTask(e).isMilestone(),c=this.getTaskRightCenter(o,t),u=this.getHorizontalIndentFromTaskEdge(e,n);return r.push(new a.Point(Math.floor(l?s.x:i.x+u),Math.floor(s.y))),r.push(new a.Point(Math.floor(r[0].x),Math.floor(c.y))),r.push(new a.Point(Math.floor(c.x),Math.floor(c.y))),r},e.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskBottomCenter(i,e),l=this.getTask(e).isMilestone(),c=this.getTaskLeftCenter(o,t),u=this.getHorizontalIndentFromTaskEdge(e,n);return r.push(new a.Point(Math.floor(l?s.x:i.x+u),Math.floor(s.y))),r.push(new a.Point(Math.floor(r[0].x),Math.floor(c.y))),r.push(new a.Point(Math.floor(c.x),Math.floor(c.y))),r},e.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskLeftCenter(i,e),l=this.getTaskTopCenter(o,t),c=this.getTask(t).isMilestone(),u=this.getHorizontalIndentFromTaskEdge(t,n);return r.push(new a.Point(Math.floor(s.x),Math.floor(s.y))),r.push(new a.Point(Math.floor(c?l.x:o.x+u),Math.floor(r[0].y))),r.push(new a.Point(Math.floor(r[1].x),Math.floor(l.y))),r},e.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide=function(e,t,n){var r=new Array,i=this.getTaskPoint(e),o=this.getTaskPoint(t),s=this.getTaskLeftCenter(i,e),l=this.getTaskBottomCenter(i,e),c=this.getTaskRightCenter(o,t),u=this.getTaskTopCenter(o,t),d=n?this.getViewItem(e):this.getViewItem(t),p=d.isCustom?(this.tickSize.height-d.size.height)/2:this.minConnectorSpaceFromTask;return r.push(new a.Point(Math.floor(s.x),s.y)),r.push(new a.Point(Math.floor(r[0].x-this.minLineLength),r[0].y)),r.push(new a.Point(Math.floor(r[1].x),Math.floor(n?l.y+p:u.y-p))),r.push(new a.Point(Math.floor(c.x+this.minLineLength),Math.floor(r[2].y))),r.push(new a.Point(Math.floor(r[3].x),Math.floor(c.y))),r.push(new a.Point(Math.floor(c.x),Math.floor(c.y))),r},e.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide=function(e,t){var n=new Array,r=this.getTaskPoint(e),i=this.getTaskPoint(t),o=this.getTaskLeftCenter(r,e),s=this.getTaskLeftCenter(i,t);return n.push(new a.Point(Math.floor(o.x),Math.floor(o.y))),n.push(new a.Point(Math.floor(Math.min(o.x,s.x)-this.minLineLength),Math.floor(n[0].y))),n.push(new a.Point(Math.floor(n[1].x),Math.floor(s.y))),n.push(new a.Point(Math.floor(s.x),Math.floor(s.y))),n},e.prototype.getTaskSidePoints=function(e){var t=this.getTaskPoint(e);return[this.getTaskLeftCenter(t,e),this.getTaskTopCenter(t,e),this.getTaskRightCenter(t,e),this.getTaskBottomCenter(t,e)]},e.prototype.getTaskLeftCenter=function(e,t){return new a.Point(e.x-this.getTaskEdgeCorrection(t),e.y+this.getTaskHeight(t)/2)},e.prototype.getTaskRightCenter=function(e,t){return new a.Point(e.x+this.getTaskWidth(t)+this.getTaskEdgeCorrection(t),e.y+this.getTaskHeight(t)/2)},e.prototype.getTaskTopCenter=function(e,t){return new a.Point(e.x+this.getTaskWidth(t)/2,e.y-this.getTaskEdgeCorrection(t))},e.prototype.getTaskBottomCenter=function(e,t){return new a.Point(e.x+this.getTaskWidth(t)/2,e.y+this.getTaskHeight(t)+this.getTaskEdgeCorrection(t))},e.prototype.getTaskEdgeCorrection=function(e){var t=this.getViewItem(e);return t.task.isMilestone()&&!t.isCustom?this.getTaskHeight(e)*(Math.sqrt(2)-1)/2:0},e.prototype.getHorizontalIndentFromTaskEdge=function(e,t){void 0===t&&(t=!1);var n=this.getTaskWidth(e),r=this.minLineLength<n/3?this.minLineLength:.2*n;return t?n-r:r},e.prototype.getRenderedRowColumnIndices=function(e,t){for(var n=t?this.visibleTaskAreaSize.height:this.visibleTaskAreaSize.width,r=t?this.getFirstVisibleGridCellIndex(e,this.tickSize.height):this.getFirstScaleVisibleIndex(e),i=t?this.getLastVisibleGridCellIndex(e,this.tickSize.height,n,this.verticalTickCount):this.getLastScaleVisibleIndex(e),o=new Array,s=r;s<=i;s++)o.push(s);return o},e.prototype.getRenderedScaleItemIndices=function(e,t){for(var n=e===this.viewType,r=this._scaleCalculator,i=t[0],o=t[t.length-1],s=n?i:r.getTopScaleIndexByBottomIndex(i),a=n?o:r.getTopScaleIndexByBottomIndex(o),l=new Array,c=s;c<=a;c++)l.push(c);return l},e.prototype.getFirstScaleVisibleIndex=function(e){return this._scaleCalculator.getFirstScaleIndexForRender(e)},e.prototype.getLastScaleVisibleIndex=function(e){return this._scaleCalculator.getLastScaleIndexForRender(e+this.visibleTaskAreaSize.width)},e.prototype.getFirstVisibleGridCellIndex=function(e,t){var n=Math.floor(e/t);return n=Math.max(n-10,0)},e.prototype.getLastVisibleGridCellIndex=function(e,t,n,r){var i=Math.floor((e+n)/t);return i=Math.min(i+10,r-1)},e.prototype.createTileToConnectorLinesMap=function(){this.tileToDependencyMap=[];for(var e=0;e<this.viewModel.items.length;e++)for(var t=0;t<this.viewModel.items[e].dependencies.length;t++)this.createConnecotInfo(this.viewModel.items[e].dependencies[t],this.viewModel.items[e].visibleIndex)},e.prototype.updateTileToConnectorLinesMap=function(e){this.tileToDependencyMap.forEach((function(t,n,r){r[n]=t.filter((function(t){return t.attr[\"dependency-id\"]!=e}))}));var t=[],n=this.viewModel.items.filter((function(t){return t.dependencies.filter((function(t){return t.id==e})).length>0}))[0];if(n){var r=n.dependencies.filter((function(t){return t.id===e}))[0];t=this.createConnecotInfo(r,n.visibleIndex)}return t},e.prototype.createConnecotInfo=function(e,t){var n=this,r=e.predecessor.visibleIndex,i=e.type,o=e.id,s=this.getConnectorInfo(o,r,t,i);return s.forEach((function(e){n.addElementInfoToTileMap(e,n.tileToDependencyMap,!0)})),s},e.prototype.createTileToNonWorkingIntervalsMap=function(){this.tileToNoWorkingIntervalsMap=[];for(var e=0;e<this.viewModel.noWorkingIntervals.length;e++){var t=this.getAdjustedNoWorkingInterval(this.viewModel.noWorkingIntervals[e]);if(t){var n=this.getNoWorkingIntervalInfo(t);this.addElementInfoToTileMap(n,this.tileToNoWorkingIntervalsMap,!1)}}},e.prototype.getAdjustedNoWorkingInterval=function(e){return e.end.getTime()-e.start.getTime()<this.tickTimeSpan-1?null:new i.DateRange(l.DateUtils.getNearestScaleTickDate(e.start,this.range,this.tickTimeSpan,this.viewType),l.DateUtils.getNearestScaleTickDate(e.end,this.range,this.tickTimeSpan,this.viewType))},e.prototype.addElementInfoToTileMap=function(e,t,n){var r=n?e.position.y:e.position.x,i=n?e.size.height:e.size.width,o=2*(n?this.visibleTaskAreaSize.height:this.visibleTaskAreaSize.width);if(o>0)for(var s=Math.floor(r/o),a=Math.floor((r+i)/o),l=s;l<=a;l++)t[l]||(t[l]=new Array),t[l].push(e)},e.prototype.getRenderedConnectorLines=function(e){return this.getElementsInRenderedTiles(this.tileToDependencyMap,!0,e)},e.prototype.getRenderedNoWorkingIntervals=function(e){return this.getElementsInRenderedTiles(this.tileToNoWorkingIntervalsMap,!1,e)},e.prototype.getRenderedStripLines=function(e){var t=new Array,n=e.stripLines.map((function(e){return e.clone()}));e.showCurrentTime&&n.push(new c.StripLine(new Date,null,e.currentTimeTitle,e.currentTimeCssClass,!0));for(var r=0,i=void 0;i=n[r];r++){var o=l.DateUtils.parse(i.start),a=i.end?l.DateUtils.parse(i.end):null;if(o>=this.range.start&&o<=this.range.end||a&&a>=this.range.start&&a<=this.range.end){var u=o>this.range.start?o:this.range.start,d=new s.GridElementInfo;d.size.height=this.getVerticalGridLineHeight(),d.position.x=this.getPosByDate(u),d.size.width=a?this.getWidthByDateRange(u,a<this.range.end?a:this.range.end):0,d.className=i.isCurrent?\"dx-gantt-tc\":a?\"dx-gantt-ti\":\"dx-gantt-tm\",d.className+=i.cssClass?\" \"+i.cssClass:\"\",d.attr.title=i.title,t.push(d)}}return t},e.prototype.getElementsInRenderedTiles=function(e,t,n){var r=new Array,i=t?this.visibleTaskAreaSize.height:this.visibleTaskAreaSize.width;if(i>0)for(var o=Math.floor(n/(2*i)),s=Math.floor((n+i)/(2*i)),a=o;a<=s;a++)e[a]&&e[a].forEach((function(e){-1===r.indexOf(e)&&r.push(e)}));return r},e.prototype.isTaskInRenderedRange=function(e){var t=this.getViewItem(e),n=this.getTaskPoint(e);return t.task.isMilestone()?n.x+this.getTaskWidth(e)<this.getTotalWidth():n.x<this.getTotalWidth()},e.prototype.isTaskCutByRange=function(e){return!!this.getTaskElementInfo(e).additionalInfo.taskCut},e.prototype.checkAndCorrectElementDisplayByRange=function(e){e.parentElement.offsetLeft+e.offsetLeft+e.offsetWidth>this.getTotalWidth()&&(e.style.display=\"none\")},e.prototype.checkAndCorrectArrowElementDisplayByRange=function(e){e.offsetLeft+e.offsetWidth>this.getTotalWidth()&&(e.style.display=\"none\")},e.prototype.checkAndCorrectConnectorLinesByRange=function(e){if(null==e?void 0:e.length)for(var t=this.getTotalWidth(),n=0;n<e.length;n++){var r=e[n],i=!r.size.width;r.position.x>t?delete e[n]:!i&&r.position.x+r.size.width>t&&(r.size.width=t-r.position.x)}},e.prototype.getCorrectedTaskWidthByRange=function(e,t){var n=this.getTotalWidth()-this.getTaskPoint(e).x;return Math.min(n,t)},e.dxGanttPrefix=\"dx-gantt-\",e.taskClassName=e.dxGanttPrefix+\"task\",e.milestoneClassName=e.dxGanttPrefix+\"milestone\",e.smallTaskClassName=e.dxGanttPrefix+\"smallTask\",e.parentTaskClassName=e.dxGanttPrefix+\"parent\",e.taskProgressClassName=e.dxGanttPrefix+\"tPrg\",e.taskTitleClassName=e.dxGanttPrefix+\"taskTitle\",e.titleInClassName=e.dxGanttPrefix+\"titleIn\",e.titleOutClassName=e.dxGanttPrefix+\"titleOut\",e.taskResourceClassName=e.dxGanttPrefix+\"taskRes\",e.arrowClassName=e.dxGanttPrefix+\"arrow\",e.leftArrowClassName=e.dxGanttPrefix+\"LA\",e.topArrowClassName=e.dxGanttPrefix+\"TA\",e.rightArrowClassName=e.dxGanttPrefix+\"RA\",e.bottomArrowClassName=e.dxGanttPrefix+\"BA\",e.CLASSNAMES={CONNECTOR_VERTICAL:\"dx-gantt-conn-v\",CONNECTOR_HORIZONTAL:\"dx-gantt-conn-h\"},e}();t.GridLayoutCalculator=h},7072:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ScaleCalculator=t.ScaleItemInfo=void 0;var r=n(8900),i=n(6353),o=n(9201),s=n(2449),a=function(e,t,n,r){this.start=e,this.end=t,this.position=n,this.size=r};t.ScaleItemInfo=a;var l=function(){function e(){this.firstDayOfWeek=0}return e.prototype.setSettings=function(e,t,n,r){void 0===r&&(r=0),this.range=e,this.viewType=t,this.tickSize=n,this.firstDayOfWeek=r,this.reset()},e.prototype.setViewType=function(e){this.viewType=e,this.reset()},e.prototype.reset=function(){delete this._bottomScaleItems,delete this._topScaleItems,delete this._scaleWidth},e.prototype.getScaleIndexByPos=function(e,t){null!=t||(t=this.viewType);var n=t===this.viewType?this.bottomScaleItems:this.topScaleItems,r=-1;if(n.findIndex)r=n.findIndex((function(t){return e>=t.position.x&&e<=t.position.x+t.size.width}));else{var i=n.filter((function(t){return e>=t.position.x&&e<=t.position.x+t.size.width}))[0];i&&(r=n.indexOf(i))}return r},e.prototype.getScaleBorderPosition=function(e,t){var n=this.getScaleItems(t)[e];if(n)return n.position.x+n.size.width},e.prototype.getScaleItems=function(e){return e===this.viewType?this.bottomScaleItems:e===o.DateUtils.ViewTypeToScaleMap[this.viewType]?this.topScaleItems:null},e.prototype.getScaleItem=function(e,t){return this.getScaleItems(t)[e]},e.prototype.getScaleItemAdjustedStart=function(e,t){var n=this.getScaleItems(t)[e];if(e>0)return n.start;var r=t!==this.viewType,i=r?o.DateUtils.adjustStartDateByViewType(this.range.start,this.viewType,this.firstDayOfWeek):this.getAdjustedBottomScaleItemStart(n.start,t,this.firstDayOfWeek);if(r&&t===s.ViewType.Months){var a=this.range.start;i=new Date(a.getFullYear(),a.getMonth(),1)}if(r&&t===s.ViewType.FiveYears){var l=5*Math.trunc(i.getFullYear()/5);i=new Date(l,i.getMonth(),i.getDate())}return i},Object.defineProperty(e.prototype,\"topScaleItems\",{get:function(){var e;return null!==(e=this._topScaleItems)&&void 0!==e||(this._topScaleItems=this.calculateTopScale(o.DateUtils.ViewTypeToScaleMap[this.viewType])),this._topScaleItems},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"bottomScaleItems\",{get:function(){var e;return null!==(e=this._bottomScaleItems)&&void 0!==e||(this._bottomScaleItems=this.calculateBottomScale(this.viewType)),this._bottomScaleItems},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleWidth\",{get:function(){var e;return null!==(e=this._scaleWidth)&&void 0!==e||(this._scaleWidth=this.calculateScaleWidth()),this._scaleWidth},enumerable:!1,configurable:!0}),e.prototype.getFirstScaleIndexForRender=function(e){var t=this.getScaleIndexByPos(e);return t=Math.max(t-10,0)},e.prototype.getLastScaleIndexForRender=function(e){var t=this.getScaleIndexByPos(e);return t=-1===t?this.bottomScaleItems.length-1:Math.min(t+10,this.bottomScaleItems.length-1)},e.prototype.getTopScaleIndexByBottomIndex=function(e){var t=this.bottomScaleItems[e];return t?this.getScaleIndexByPos(t.position.x,o.DateUtils.ViewTypeToScaleMap[this.viewType]):-1},e.prototype.calculateBottomScale=function(e){for(var t=new Array,n=this.tickSize.width,l=this.range.start,c=0;l.getTime()<this.range.end.getTime();){var u=this.getNextScaleDate(l,e),d=l.getTime()===this.range.start.getTime(),p=u.getTime()>=this.range.end.getTime(),h=d||p||e>s.ViewType.Hours&&o.DateUtils.hasDST()?this.getRangeTickCount(l,u)*n:n;t.push(new a(l,u,new r.Point(c,void 0),new i.Size(h,0))),l=u,c+=h}return t},e.prototype.calculateTopScale=function(e){for(var t=new Array,n=this.range.end.getTime(),o=this.range.start,s=0,l=0;o.getTime()<n;)for(var c=this.getNextScaleDate(o,e),u=c.getTime(),d=l;d<this.bottomScaleItems.length;d++){var p=this.bottomScaleItems[d],h=p.start.getTime(),f=p.end.getTime();if(u>=h&&u<=f){var g=(u-h)/(f-h)*p.size.width+p.position.x;t.push(new a(o,c,new r.Point(s,void 0),new i.Size(g-s,0))),l=d,s=g,o=c;break}}return t},e.prototype.getDateInScale=function(e){for(var t=0;t<this.bottomScaleItems.length;t++){var n=this.bottomScaleItems[t],r=n.size.width,i=n.position.x;if(e>=i&&e<=i+r){var o=n.start.getTime(),s=(e-i)/r*(n.end.getTime()-o);return new Date(n.start.getTime()+s)}}return new Date(this.range.end)},e.prototype.getNextScaleDate=function(e,t){var n;switch(t){case s.ViewType.TenMinutes:n=this.getNextDateInTenMinutesScale(e);break;case s.ViewType.Hours:n=this.getNextDateInHoursScale(e);break;case s.ViewType.SixHours:n=this.getNextDateInSixHoursScale(e);break;case s.ViewType.Days:n=this.getNextDateInDaysScale(e);break;case s.ViewType.Weeks:n=this.getNextDateInWeeksScale(e,this.firstDayOfWeek);break;case s.ViewType.Months:n=this.getNextDateInMonthsScale(e);break;case s.ViewType.Quarter:n=this.getNextDateInQuartersScale(e);break;case s.ViewType.Years:n=this.getNextDateInYearsScale(e);break;case s.ViewType.FiveYears:n=this.getNextDateInFiveYearsScale(e)}return n.getTime()>this.range.end.getTime()&&(n=this.range.end),n},e.prototype.getNextTimeBySpan=function(e,t){return(Math.trunc(e/t)+1)*t},e.prototype.getNextDateInTenMinutesScale=function(e){var t=this.getNextTimeBySpan(e.getMinutes(),10);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),t)},e.prototype.getNextDateInHoursScale=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()+1)},e.prototype.getNextDateInSixHoursScale=function(e){var t=this.getNextTimeBySpan(e.getHours(),6);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t)},e.prototype.getNextDateInDaysScale=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1)},e.prototype.getNextDateInWeeksScale=function(e,t){return void 0===t&&(t=0),new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay()+t+7)},e.prototype.getNextDateInMonthsScale=function(e){return new Date(e.getFullYear(),e.getMonth()+1,1)},e.prototype.getNextDateInQuartersScale=function(e){var t=this.getNextTimeBySpan(e.getMonth(),3);return new Date(e.getFullYear(),t,1)},e.prototype.getNextDateInYearsScale=function(e){return new Date(e.getFullYear()+1,0,1)},e.prototype.getNextDateInFiveYearsScale=function(e){var t=this.getNextTimeBySpan(e.getFullYear(),5);return new Date(t,0,1)},e.prototype.getAdjustedBottomScaleItemStart=function(e,t,n){switch(void 0===n&&(n=0),t){case s.ViewType.TenMinutes:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),10*Math.floor(e.getMinutes()/10));case s.ViewType.SixHours:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),6*Math.floor(e.getHours()/6));case s.ViewType.Hours:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours());case s.ViewType.Days:return new Date(e.getFullYear(),e.getMonth(),e.getDate());case s.ViewType.Weeks:return new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay()+n);case s.ViewType.Months:return new Date(e.getFullYear(),e.getMonth(),1);case s.ViewType.Quarter:return new Date(e.getFullYear(),3*Math.floor(e.getMonth()/3),1);case s.ViewType.Years:return new Date(e.getFullYear(),0,1);default:return new Date}},e.prototype.calculateScaleWidth=function(){return this.bottomScaleItems.reduce((function(e,t){return e+t.size.width}),0)},e.prototype.getScaleItemColSpan=function(e){return e.valueOf()===this.viewType.valueOf()?1:this.viewType===s.ViewType.TenMinutes?6:this.viewType===s.ViewType.Hours?24:this.viewType===s.ViewType.SixHours?4:this.viewType===s.ViewType.Days?7:this.viewType===s.ViewType.Weeks?4.29:this.viewType===s.ViewType.Months?12:this.viewType===s.ViewType.Quarter?4:this.viewType===s.ViewType.Years?5:1},e.prototype.getRangeTickCount=function(e,t){return o.DateUtils.getRangeTickCount(e,t,this.viewType)},e}();t.ScaleCalculator=l},9377:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaContainer=void 0;var n=function(){function e(e,t){this.element=e,this.onScrollHandler=function(){t.updateView()},this.element.addEventListener(\"scroll\",this.onScrollHandler)}return Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.element.scrollTop},set:function(e){this.element.scrollTop=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scrollLeft\",{get:function(){return this.element.scrollLeft},set:function(e){this.element.scrollLeft=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scrollWidth\",{get:function(){return this.element.scrollWidth},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scrollHeight\",{get:function(){return this.element.scrollHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isExternal\",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.getWidth=function(){return this.element.offsetWidth},e.prototype.getHeight=function(){return this.element.offsetHeight},e.prototype.getElement=function(){return this.element},e.prototype.detachEvents=function(){this.element.removeEventListener(\"scroll\",this.onScrollHandler)},e}();t.TaskAreaContainer=n},6923:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ConnectorLinesRender=void 0;var r=n(658),i=n(1855),o=function(){function e(e){this._connectorLinesToElementsMap={},this._renderedConnectorLines=[],this._renderHelper=e}return Object.defineProperty(e.prototype,\"taskEditController\",{get:function(){return this._renderHelper.taskEditController},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollTop\",{get:function(){return this._renderHelper.ganttViewTaskAreaContainerScrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"connectorLinesToElementsMap\",{get:function(){return this._connectorLinesToElementsMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"invalidTaskDependencies\",{get:function(){return this._renderHelper.invalidTaskDependencies},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showDependencies\",{get:function(){return this._renderHelper.showDependencies},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedConnectorLines\",{get:function(){return this._renderedConnectorLines},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._connectorLinesToElementsMap={},this._renderedConnectorLines=[]},e.prototype.createConnectorLineElement=function(e){if(this.showDependencies){var t=e.attr[\"dependency-id\"];if(!this.invalidTaskDependencies.some((function(e){return e.id==t}))){this.taskEditController.isDependencySelected(t)&&(e.className=e.className+\" active\");var n=e.className.indexOf(i.GridLayoutCalculator.arrowClassName)>-1,o=r.RenderElementUtils.create(e,null,this.taskArea,this.connectorLinesToElementsMap);return n&&this.gridLayoutCalculator.checkAndCorrectArrowElementDisplayByRange(o),o}}},e.prototype.removeConnectorLineElement=function(e){r.RenderElementUtils.remove(e,null,this.taskArea,this.connectorLinesToElementsMap)},e.prototype.recreateConnectorLineElement=function(e,t){var n=this;void 0===t&&(t=!1);var r=[];this._renderedConnectorLines=this.renderedConnectorLines.filter((function(t){return t.attr[\"dependency-id\"]!=e||(r.push(t),!1)}));var i=r.length>0;r.forEach((function(e){n.removeConnectorLineElement(e)})),r=this.gridLayoutCalculator.updateTileToConnectorLinesMap(e),(i||t)&&r.forEach((function(e){n.createConnectorLineElement(e),n.renderedConnectorLines.push(e)}))},e.prototype.recreateConnectorLineElements=function(){var e=this,t=this.gridLayoutCalculator.getRenderedConnectorLines(this.taskAreaContainerScrollTop);r.RenderElementUtils.recreate(this.renderedConnectorLines,t,(function(t){e.removeConnectorLineElement(t)}),(function(t){e.createConnectorLineElement(t)})),this._renderedConnectorLines=t},e.prototype.updateRenderedConnectorLinesId=function(e,t){for(var n in this._renderedConnectorLines.forEach((function(n){n.attr[\"dependency-id\"]===e&&(n.attr[\"dependency-id\"]=t)})),this.connectorLinesToElementsMap)if(Object.prototype.hasOwnProperty.call(this.connectorLinesToElementsMap,n)){var r=this.connectorLinesToElementsMap[n];r.getAttribute(\"dependency-id\")===e&&r.setAttribute(\"dependency-id\",t)}this.gridLayoutCalculator.updateTileToConnectorLinesMap(e),this.gridLayoutCalculator.updateTileToConnectorLinesMap(t)},e}();t.ConnectorLinesRender=o},1419:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CustomTaskRender=void 0;var r=n(2449),i=n(658),o=function(){function e(e,t){this._pendingTemplateFuncsToRender=[],this._renderHelper=e,this._taskRender=t}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tickSize\",{get:function(){return this._renderHelper.tickSize},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTitlePosition\",{get:function(){return this._renderHelper.taskTitlePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskElements\",{get:function(){return this._taskRender.taskElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),e.prototype.getViewItem=function(e){return this._renderHelper.getViewItem(e)},e.prototype.getTask=function(e){return this._renderHelper.getTask(e)},e.prototype.destroyTemplate=function(e){this._renderHelper.destroyTemplate(e)},e.prototype.getTaskDependencies=function(e){return this._renderHelper.getTaskDependencies(e)},e.prototype.getTaskResources=function(e){return this._renderHelper.getTaskResources(e)},e.prototype.attachEventsOnTask=function(e){this._renderHelper.attachEventsOnTask(e)},e.prototype.recreateConnectorLineElement=function(e,t){void 0===t&&(t=!1),this._renderHelper.recreateConnectorLineElement(e,t)},e.prototype.createTaskSelectionElement=function(e){this._taskRender.createTaskSelectionElement(e)},e.prototype.createCustomTaskElement=function(e,t){if(this._saveTemplateFuncToStack(e,t),!this._hasRepeatedTemplateRenderCall(e)){var n=this.getViewItem(e);n.isCustom=!1;var r=document.createElement(\"DIV\"),i=this.createCustomTaskInformation(e);n.isCustom=!0,t(r,i,this.onTaskTemplateContainerRendered.bind(this),e)}},e.prototype.onTaskTemplateContainerRendered=function(e,t){var n=this;if(this._hasRepeatedTemplateRenderCall(t)){e&&this._renderHelper.destroyTemplate(e);var r=this._getLastPendingTemplateFunc(t);setTimeout((function(){return n.createCustomTaskElement(t,r)}))}else this.drawCustomTask(e,t);this._clearTemplateFuncsStack(t)},e.prototype._saveTemplateFuncToStack=function(e,t){var n,r;null!==(n=(r=this._pendingTemplateFuncsToRender)[e])&&void 0!==n||(r[e]=[]),this._pendingTemplateFuncsToRender[e].push(t)},e.prototype._clearTemplateFuncsStack=function(e){this._pendingTemplateFuncsToRender[e]=[]},e.prototype._hasRepeatedTemplateRenderCall=function(e){return this._pendingTemplateFuncsToRender[e].length>1},e.prototype._getLastPendingTemplateFunc=function(e){var t=this._pendingTemplateFuncsToRender[e];return t[t.length-1]},e.prototype.createCustomTaskWrapperElement=function(e,t){i.RenderElementUtils.create(t,e,this.taskArea,this.taskElements)},e.prototype.createCustomTaskVisualElement=function(e,t){return i.RenderElementUtils.create(t,e,this.taskElements[e])},e.prototype.drawCustomTask=function(e,t){var n=this;if(this.taskElements[t]){var r=this.getViewItem(t);if(r.visible=!!e.innerHTML,this.taskElements[t].innerHTML=e.innerHTML,r.size.height=this.taskElements[t].offsetHeight,r.size.width=this.taskElements[t].offsetWidth,this.destroyTemplate(this.taskElements[t]),this._taskRender.removeTaskElement(t),r.visible){var i=this.gridLayoutCalculator.getTaskWrapperElementInfo(t);this.createCustomTaskWrapperElement(t,i),this.taskElements[t].appendChild(e),this.attachEventsOnTask(t)}else{var o=this.getTaskDependencies(r.task.internalId);o.length&&(this._taskRender.addInvalidTaskDependencies(o),o.forEach((function(e){return n.recreateConnectorLineElement(e.internalId,!0)})))}this._taskRender.isHighlightRowElementAllowed(t)&&this._taskRender.createHighlightRowElement(t),r.selected&&this.createTaskSelectionElement(t)}},e.prototype.createCustomTaskInformation=function(e){var t=this.getTask(e),n=this.getViewItem(e),i=this.gridLayoutCalculator.getTaskWrapperElementInfo(e),o=this.gridLayoutCalculator.getTaskElementInfo(e,this.taskTitlePosition!==r.TaskTitlePosition.Inside);this.createCustomTaskWrapperElement(e,i);var s=this.createCustomTaskVisualElement(e,o);this._taskRender.createTaskTextElement(e,s);var a=this.getTaskResources(t.id);return{cellSize:this.tickSize,isMilestone:t.isMilestone(),isParent:!!(null==n?void 0:n.children.length),taskData:t,taskHTML:s,taskPosition:i.position,taskResources:a,taskSize:o.size}},e}();t.CustomTaskRender=o},9385:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EtalonsHelper=void 0;var r=n(6907),i=n(2449),o=n(1391),s=n(658),a=function(){function e(e){this._renderHelper=e}return Object.defineProperty(e.prototype,\"mainElement\",{get:function(){return this._renderHelper.mainElement},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"etalonSizeValues\",{get:function(){return this._renderHelper.etalonSizeValues},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleCount\",{get:function(){return this._renderHelper.scaleCount},enumerable:!1,configurable:!0}),e.prototype.getScaleItemTextTemplate=function(e){return this._renderHelper.getScaleItemTextTemplate(e)},e.prototype.getHeaderHeight=function(){return this._renderHelper.getHeaderHeight()},e.prototype.getSmallTaskWidth=function(e){return this._renderHelper.getSmallTaskWidth(e)},e.prototype.createEtalonElementsContainer=function(){var e=document.createElement(\"DIV\");return e.style.visibility=\"hidden\",e.style.position=\"absolute\",e.style.left=\"-1000px\",this.mainElement.appendChild(e),e},e.prototype.createEtalonElements=function(e){var t=[],n=s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-taskWrapper\"),null,e),r=s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-task\"),null,n);s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"),null,r).innerText=\"WWW\",t.push(n);var i=s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-taskWrapper\"),null,e);s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-task dx-gantt-milestone\"),null,i),t.push(i);for(var a=[\"dx-gantt-conn-h\",\"dx-gantt-arrow\",\"dx-gantt-si\",\"dx-gantt-taskTitle dx-gantt-titleOut\"],l=0;l<a.length;l++){var c=new o.GridElementInfo(a[l]);t.push(s.RenderElementUtils.create(c,null,e))}var u=s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-taskWrapper\"),null,e),d=s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-task dx-gantt-parent\"),null,u);return s.RenderElementUtils.create(new o.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"),null,d).innerText=\"WWW\",t.push(u),t},e.prototype.calculateEtalonSizeValues=function(){var e=this.createEtalonElementsContainer(),t=this.createEtalonElements(e);this.calculateEtalonSizeValuesCore(t),this.mainElement.removeChild(e)},e.prototype.calculateEtalonSizeValuesCore=function(e){this.etalonSizeValues.taskHeight=e[0].firstChild.offsetHeight,this.etalonSizeValues.milestoneWidth=e[1].firstChild.offsetWidth,this.etalonSizeValues.taskWrapperTopPadding=r.DomUtils.pxToInt(r.DomUtils.getCurrentStyle(e[0]).paddingTop),this.etalonSizeValues.connectorLineThickness=r.DomUtils.getVerticalBordersWidth(e[2]),this.etalonSizeValues.connectorArrowWidth=r.DomUtils.getHorizontalBordersWidth(e[3]);for(var t=0;t<=i.ViewType.Years;t++)e[4].innerText=this.getScaleItemTextTemplate(t),this.etalonSizeValues.scaleItemWidths[t]=e[4].offsetWidth;this.etalonSizeValues.smallTaskWidth=this.getSmallTaskWidth(r.DomUtils.getCurrentStyle(e[0].firstChild.firstChild).paddingLeft),this.etalonSizeValues.outsideTaskTextDefaultWidth=r.DomUtils.pxToFloat(r.DomUtils.getCurrentStyle(e[5]).width),this.etalonSizeValues.scaleItemHeight=this.getHeaderHeight()/this.scaleCount,this.etalonSizeValues.parentTaskHeight=e[e.length-1].firstChild.offsetHeight},e}();t.EtalonsHelper=a},4289:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ScaleCellPreparedArguments=void 0;var n=function(){function e(e){this.info=e}return Object.defineProperty(e.prototype,\"scaleIndex\",{get:function(){var e;return null===(e=this.info)||void 0===e?void 0:e.scaleIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleType\",{get:function(){var e;return null===(e=this.info)||void 0===e?void 0:e.scaleType},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"start\",{get:function(){var e,t;return null===(t=null===(e=this.info)||void 0===e?void 0:e.range)||void 0===t?void 0:t.start},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"end\",{get:function(){var e,t;return null===(t=null===(e=this.info)||void 0===e?void 0:e.range)||void 0===t?void 0:t.end},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleElement\",{get:function(){var e;return null===(e=this.info)||void 0===e?void 0:e.scaleElement},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"separatorElement\",{get:function(){var e;return null===(e=this.info)||void 0===e?void 0:e.separatorElement},enumerable:!1,configurable:!0}),e}();t.ScaleCellPreparedArguments=n},2121:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.MainElementsRender=void 0;var n=function(){function e(){}return e.prototype.createMainElement=function(e){var t=document.createElement(\"DIV\");return t.style.width=e.offsetWidth+\"px\",t.style.height=e.offsetHeight+\"px\",t},e.prototype.createHeader=function(){var e=document.createElement(\"DIV\");return e.className=\"dx-gantt-header\",e},e}();t.MainElementsRender=n},1027:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.NoWorkingIntervalRender=void 0;var r=n(658),i=function(){function e(e){this._noWorkingIntervalsToElementsMap={},this._renderedNoWorkingIntervals=[],this._renderHelper=e}return Object.defineProperty(e.prototype,\"noWorkingIntervalsToElementsMap\",{get:function(){return this._noWorkingIntervalsToElementsMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollLeft\",{get:function(){return this._renderHelper.ganttTaskAreaContainerScrollLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedNoWorkingIntervals\",{get:function(){return this._renderedNoWorkingIntervals},set:function(e){this._renderedNoWorkingIntervals=e},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._noWorkingIntervalsToElementsMap={},this._renderedNoWorkingIntervals=[]},e.prototype.createNoWorkingIntervalElement=function(e){return r.RenderElementUtils.create(e,null,this.taskArea,this.noWorkingIntervalsToElementsMap)},e.prototype.removeNoWorkingIntervalElement=function(e){r.RenderElementUtils.remove(e,null,this.taskArea,this.noWorkingIntervalsToElementsMap)},e.prototype.recreateNoWorkingIntervalElements=function(){var e=this,t=this.gridLayoutCalculator.getRenderedNoWorkingIntervals(this.taskAreaContainerScrollLeft);r.RenderElementUtils.recreate(this.renderedNoWorkingIntervals,t,(function(t){e.removeNoWorkingIntervalElement(t)}),(function(t){e.createNoWorkingIntervalElement(t)})),this.renderedNoWorkingIntervals=t},e}();t.NoWorkingIntervalRender=i},658:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderElementUtils=void 0;var n=function(){function e(){}return e.create=function(e,t,n,r){var i=document.createElement(\"DIV\");for(var o in e.assignToElement(i),n.appendChild(i),r&&(r instanceof Array&&null!==t?r[t]=i:r[e.id]=i),e.attr)Object.prototype.hasOwnProperty.call(e.attr,o)&&i.setAttribute(o,e.attr[o]);for(var o in e.style)Object.prototype.hasOwnProperty.call(e.style,o)&&(i.style[o]=e.style[o]);return i},e.remove=function(e,t,n,r){var i;r instanceof Array&&null!==t?(i=r[t],delete r[t]):(i=r[e.id],delete r[e.id]),i&&i.parentNode==n&&n.removeChild(i)},e.recreate=function(e,t,n,r){e.filter((function(e){return-1===t.indexOf(e)})).forEach((function(e){n(e)})),t.filter((function(t){return-1===e.indexOf(t)})).forEach((function(e){r(e)}))},e}();t.RenderElementUtils=n},1074:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderHelper=void 0;var r=n(6923),i=n(9385),o=n(8877),s=n(2366),a=n(1855),l=n(1027),c=n(4966),u=n(6700),d=n(8148),p=n(3682),h=n(2349),f=n(2290),g=n(2121),y=n(6353),m=n(9377),v=n(8380),T=function(){function e(e){this.hlRowElements=[],this.renderedColIndices=[],this.renderedRowIndices=[],this.invalidTaskDependencies=[],this.etalonSizeValues=new o.EtalonSizeValues,this._gridLayoutCalculator=new a.GridLayoutCalculator,this._ganttView=e,this._connectorLinesRender=new r.ConnectorLinesRender(this),this._etalonsHelper=new i.EtalonsHelper(this),this._noWorkingIntervalRender=new l.NoWorkingIntervalRender(this),this._resourceRender=new c.ResourseRender(this),this._scaleRender=new u.ScaleRender(this),this._stripLinesRender=new d.StripLinesRender(this),this._taskAreaRender=new h.TaskAreaRender(this),this._taskRender=new f.TaskRender(this),this._mainElementsRender=new g.MainElementsRender}return e.prototype.reset=function(){this.invalidTaskDependencies=[],this._taskAreaRender.reset(),this._taskRender.reset(),this._taskArea.innerHTML=\"\",this._scaleRender.reset(),this.hlRowElements=[],this.renderedRowIndices=[],this.renderedColIndices=[],this._connectorLinesRender.reset(),this._stripLinesRender.reset(),this._noWorkingIntervalRender.reset()},e.prototype.createMainElement=function(e){this.mainElement=this._mainElementsRender.createMainElement(e),e.appendChild(this.mainElement)},e.prototype.createHeader=function(){this.header=this._mainElementsRender.createHeader(),this.mainElement.appendChild(this.header)},e.prototype.init=function(e,t,n,r,i){void 0===i&&(i=0),this._elementTextHelper.setFont(this.mainElement),this.setupHelpers(e,t,n,r,i),this.setSizeForTaskArea(),this.createTimeScale(),this._taskAreaManager=new p.TaskAreaManager(this._ganttView.taskAreaEventsListener,this.taskArea,this.tickSize)},e.prototype.initMarkup=function(e){this._elementTextHelper=new v.ElementTextHelper(this.ganttViewSettings.cultureInfo),this.createMainElement(e),this.createHeader(),this._etalonsHelper.calculateEtalonSizeValues(),this._taskAreaRender.createTaskAreaContainer()},e.prototype.processScroll=function(e){this._taskAreaRender.recreateTaskAreaBordersAndTaskElements(e),e?this._connectorLinesRender.recreateConnectorLineElements():(this._noWorkingIntervalRender.recreateNoWorkingIntervalElements(),this._stripLinesRender.recreateStripLines(),this._scaleRender.recreateScalesElements())},Object.defineProperty(e.prototype,\"ganttViewSettings\",{get:function(){return this._ganttView.settings},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTextHeightKey\",{get:function(){return s.GanttView.taskTextHeightKey},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showResources\",{get:function(){return this.ganttViewSettings.showResources},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showDependencies\",{get:function(){return this.ganttViewSettings.showDependencies},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewModelItems\",{get:function(){return this._ganttView.viewModel.items},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stripLines\",{get:function(){return this.ganttViewSettings.stripLines},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"range\",{get:function(){return this._ganttView.range},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewType\",{get:function(){return this.ganttViewSettings.viewType},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTitlePosition\",{get:function(){return this.ganttViewSettings.taskTitlePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tickSize\",{get:function(){return this._ganttView.tickSize},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ganttViewTaskAreaContainerScrollTop\",{get:function(){return this._ganttView.taskAreaContainerScrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ganttTaskAreaContainerScrollLeft\",{get:function(){return this._ganttView.taskAreaContainerScrollLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleCount\",{get:function(){return this._ganttView.scaleCount},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"areHorizontalBordersEnabled\",{get:function(){return this.ganttViewSettings.areHorizontalBordersEnabled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskEditController\",{get:function(){return this._ganttView.taskEditController},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"dispatcher\",{get:function(){return this._ganttView.dispatcher},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaManager\",{get:function(){var e;return null!==(e=this._taskAreaManager)&&void 0!==e||(this._taskAreaManager=new p.TaskAreaManager(this._ganttView.taskAreaEventsListener,this.taskArea,this.tickSize)),this._taskAreaManager},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollTop\",{get:function(){return this._taskAreaRender.taskAreaContainer.scrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollLeft\",{get:function(){return this._taskAreaRender.taskAreaContainer.scrollLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainer\",{get:function(){return this._taskAreaRender.taskAreaContainer},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isExternalTaskAreaContainer\",{get:function(){return this._taskAreaRender.taskAreaContainer.isExternal},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fakeTaskWrapper\",{get:function(){return this._taskRender.fakeTaskWrapper},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskElements\",{get:function(){return this._taskRender.taskElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"selectionElements\",{get:function(){return this._taskRender.selectionElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleElements\",{get:function(){return this._scaleRender.scaleElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBorders\",{get:function(){return this._scaleRender.scaleBorders},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"timeScaleContainer\",{get:function(){return this._scaleRender.timeScaleContainer},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"etalonScaleItemWidths\",{get:function(){return this.etalonSizeValues.scaleItemWidths[this.viewType]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"elementTextHelperCultureInfo\",{get:function(){return this._elementTextHelper.cultureInfo},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"noWorkingIntervalsToElementsMap\",{get:function(){return this._noWorkingIntervalRender.noWorkingIntervalsToElementsMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stripLinesMap\",{get:function(){return this._stripLinesRender.stripLinesMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedConnectorLines\",{get:function(){return this._connectorLinesRender.renderedConnectorLines},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"allConnectorLines\",{get:function(){return this.gridLayoutCalculator.tileToDependencyMap.reduce((function(e,t){return e.concat(t)}),[])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"resourcesElements\",{get:function(){return this._resourceRender.resourcesElements},enumerable:!1,configurable:!0}),e.prototype.setupHelpers=function(e,t,n,r,i){void 0===i&&(i=0);var o=new y.Size(this._taskAreaRender.taskAreaContainer.getWidth(),this._taskAreaRender.taskAreaContainer.getHeight()),s=this._taskAreaRender.taskAreaContainer.getHeight()-this._taskAreaRender.taskAreaContainer.getElement().clientHeight;this._gridLayoutCalculator.setSettings(o,e,this.etalonSizeValues,t,r,n,s,i),this._elementTextHelper.setSettings(t.start.getTime(),n,r.items)},e.prototype.resetAndUpdate=function(e,t,n,r,i){void 0===i&&(i=0);var o=this.getTaskAreaContainerScrollLeft();this.reset(),this.setupHelpers(e,t,n,r,i),this._scaleRender.createTimeScaleAreas(),this.setSizeForTaskArea(),this.setTaskAreaContainerScrollLeft(o)},e.prototype.createConnectorLines=function(){this._gridLayoutCalculator.createTileToConnectorLinesMap(),this._connectorLinesRender.recreateConnectorLineElements()},e.prototype.getTargetDateByPos=function(e){return this._gridLayoutCalculator.getDateByPos(this._taskAreaRender.taskAreaContainer.scrollLeft+e)},e.prototype.getExternalTaskAreaContainer=function(e){return this._ganttView.getExternalTaskAreaContainer(e)},e.prototype.prepareExternalTaskAreaContainer=function(e,t){return this._ganttView.prepareExternalTaskAreaContainer(e,t)},e.prototype.isAllowTaskAreaBorders=function(e){return this._ganttView.allowTaskAreaBorders(e)},e.prototype.getHeaderHeight=function(){return this._ganttView.getHeaderHeight()},e.prototype.getViewItem=function(e){return this._ganttView.getViewItem(e)},e.prototype.getTask=function(e){return this._ganttView.getTask(e)},e.prototype.hasTaskTemplate=function(){return!!this._ganttView.settings.taskContentTemplate},e.prototype.destroyTemplate=function(e){this._ganttView.destroyTemplate(e)},e.prototype.getTaskDependencies=function(e){return this._ganttView.getTaskDependencies(e)},e.prototype.getTaskResources=function(e){return this._ganttView.getTaskResources(e)},e.prototype.isHighlightRowElementAllowed=function(e){return this._ganttView.isHighlightRowElementAllowed(e)},e.prototype.updateRenderedConnectorLinesId=function(e,t){this._connectorLinesRender.updateRenderedConnectorLinesId(e,t)},e.prototype.recreateConnectorLineElement=function(e,t){void 0===t&&(t=!1),this._connectorLinesRender.recreateConnectorLineElement(e,t)},e.prototype.recreateConnectorLineElemensts=function(){this._connectorLinesRender.recreateConnectorLineElements()},e.prototype.setMainElementWidth=function(e){this.mainElement.style.width=e+\"px\"},e.prototype.setMainElementHeight=function(e){this.mainElement.style.height=e+\"px\"},e.prototype.createResources=function(e){this._resourceRender.createResourcesWrapperElement(e),this._resourceRender.createResources(e)},e.prototype.createTimeScale=function(){this._scaleRender.createTimeScaleContainer(this.header),this._scaleRender.createTimeScaleAreas()},e.prototype.setTimeScaleContainerScrollLeft=function(e){this._scaleRender.setTimeScaleContainerScrollLeft(e)},e.prototype.recreateStripLines=function(){this._stripLinesRender.recreateStripLines&&this._stripLinesRender.recreateStripLines()},e.prototype.createTaskArea=function(e){this._taskArea=this._taskAreaRender.createTaskArea(),this._taskArea.setAttribute(\"task-edit-enabled\",this.isTaskUpdateAllowed().toString()),e.appendChild(this._taskArea)},e.prototype.isTaskUpdateAllowed=function(){var e=this.ganttViewSettings.editing;return e.enabled&&e.allowTaskUpdate},e.prototype.setSizeForTaskArea=function(){var e=this.getTaskAreaWidth(),t=this.getTaskAreaHeight();this._taskAreaRender.setSizeForTaskArea(e,t),this._ganttView.onTaskAreaSizeChanged({width:e,height:t})},e.prototype.getTaskAreaWidth=function(){return this.gridLayoutCalculator.getTotalWidth()},e.prototype.getTaskAreaHeight=function(){return this.gridLayoutCalculator.getVerticalGridLineHeight()},e.prototype.getTaskAreaContainerScrollLeft=function(){return this._taskAreaRender.taskAreaContainer.scrollLeft},e.prototype.setTaskAreaContainerScrollLeft=function(e){this._taskAreaRender.taskAreaContainer.scrollLeft=e},e.prototype.setTaskAreaContainerScrollLeftToDate=function(e,t){this._taskAreaRender.taskAreaContainer.scrollLeft=Math.round(this._gridLayoutCalculator.getPosByDate(e))+t},e.prototype.getTaskAreaContainer=function(e){return new m.TaskAreaContainer(e,this._ganttView)},e.prototype.prepareTaskAreaContainer=function(){this._taskAreaRender.prepareTaskAreaContainer()},e.prototype.getTaskAreaContainerWidth=function(){return this._taskAreaRender.taskAreaContainer.getWidth()},e.prototype.createHighlightRowElement=function(e){this._taskAreaRender.createHighlightRowElement(e)},e.prototype.getSmallTaskWidth=function(e){return this._taskRender.getSmallTaskWidth(e)},e.prototype.createTaskElement=function(e){this._taskRender.createTaskElement(e,this._ganttView.settings.taskContentTemplate)},e.prototype.removeTaskElement=function(e){this._taskRender.removeTaskElement(e)},e.prototype.recreateTaskElement=function(e){this._taskRender.recreateTaskElement(e)},e.prototype.createDefaultTaskElement=function(e){this._taskRender.createDefaultTaskElement(e)},e.prototype.getScaleItemText=function(e,t){var n=this._gridLayoutCalculator.getScaleItemStart(e,t);return this.getScaleItemTextByStart(n,t)},e.prototype.getScaleItemTextByStart=function(e,t){return this._elementTextHelper.getScaleItemText(e,t)},e.prototype.getTextWidth=function(e){return this._elementTextHelper.getTextWidth(e)},e.prototype.getTaskVisibility=function(e){return this.gridLayoutCalculator.isTaskInRenderedRange(e)&&this._elementTextHelper.getTaskVisibility(e)},e.prototype.getTaskResourcesVisibility=function(e){return this.getTaskVisibility(e)&&!this.gridLayoutCalculator.isTaskCutByRange(e)},e.prototype.getScaleItemTextTemplate=function(e){return this._elementTextHelper.getScaleItemTextTemplate(e)},e.prototype.getTaskText=function(e){return this._elementTextHelper.getTaskText(e)},e.prototype.taskAreaManagerDetachEvents=function(){this.taskAreaManager.detachEvents()},e.prototype.attachEventsOnTask=function(e){this.taskAreaManager.attachEventsOnTask(this._taskRender.taskElements[e])},e.prototype.detachEventsOnTask=function(e){this.taskAreaManager.detachEventsOnTask(this._taskRender.taskElements[e])},e}();t.RenderHelper=T},4966:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResourseRender=void 0;var r=n(658),i=function(){function e(e){this._resourcesElements=[],this._renderHelper=e}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"resourcesElements\",{get:function(){return this._resourcesElements},enumerable:!1,configurable:!0}),e.prototype.getViewItem=function(e){return this._renderHelper.getViewItem(e)},e.prototype.getTaskResourcesVisibility=function(e){return this._renderHelper.getTaskResourcesVisibility(e)},e.prototype.createResources=function(e){for(var t=this.getViewItem(e).resources.items,n=0;n<t.length;n++)this.createResourceElement(e,t[n])},e.prototype.createResourcesWrapperElement=function(e){var t=this.gridLayoutCalculator.getTaskResourcesWrapperElementInfo(e);r.RenderElementUtils.create(t,e,this.taskArea,this.resourcesElements),this.resourcesElements[e].style.display=this.getTaskResourcesVisibility(e)?\"\":\"none\"},e.prototype.createResourceElement=function(e,t){var n=this.gridLayoutCalculator.getTaskResourceElementInfo();t.color&&(n.style.backgroundColor=t.color);var i=r.RenderElementUtils.create(n,e,this.resourcesElements[e]);i.innerText=t.text,this.gridLayoutCalculator.checkAndCorrectElementDisplayByRange(i)},e}();t.ResourseRender=i},6700:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ScaleRender=void 0;var r=n(6907),i=n(2449),o=n(9201),s=n(4289),a=n(658),l=function(){function e(e){this._scaleBorders=[],this._scaleElements=[],this._renderedScaleItemIndices=[],this._timeScaleAreas=new Array,this._renderHelper=e}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"etalonSizeValues\",{get:function(){return this._renderHelper.etalonSizeValues},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"timeScaleContainer\",{get:function(){return this._timeScaleContainer},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleCount\",{get:function(){return this._renderHelper.scaleCount},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"range\",{get:function(){return this._renderHelper.range},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewType\",{get:function(){return this._renderHelper.viewType},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"timeScaleAreas\",{get:function(){return this._timeScaleAreas},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleElements\",{get:function(){return this._scaleElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleBorders\",{get:function(){return this._scaleBorders},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedColIndices\",{get:function(){return this._renderHelper.renderedColIndices},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedScaleItemIndices\",{get:function(){return this._renderedScaleItemIndices},enumerable:!1,configurable:!0}),e.prototype.getScaleItemText=function(e,t){return this._renderHelper.getScaleItemText(e,t)},e.prototype.getTaskAreaWidth=function(){return this._renderHelper.getTaskAreaWidth()},e.prototype.reset=function(){this._scaleBorders=[],this._scaleElements=[],this._renderedScaleItemIndices=[],this._timeScaleAreas=[],this._timeScaleContainer.innerHTML=\"\"},e.prototype.setTimeScaleContainerScrollLeft=function(e){this._timeScaleContainer.scrollLeft=e},e.prototype.createTimeScaleContainer=function(e){var t=document.createElement(\"DIV\");t.className=\"dx-gantt-tsac\",t.style.height=this.etalonSizeValues.scaleItemHeight*this.scaleCount+\"px\",this._timeScaleContainer=t,e.appendChild(this.timeScaleContainer)},e.prototype.createTimeScaleArea=function(){var e=document.createElement(\"DIV\");return e.className=\"dx-gantt-tsa\",e.style.width=this.getTaskAreaWidth()+\"px\",e.style.height=this.etalonSizeValues.scaleItemHeight+\"px\",this.timeScaleContainer.appendChild(e),this.timeScaleAreas.unshift(e),e},e.prototype.createTimeScaleAreas=function(){for(var e=0;e<this.scaleCount;e++)this.createTimeScaleArea()},e.prototype.createScaleElementCore=function(e,t,n,r){return r[n]||(r[n]=[]),a.RenderElementUtils.create(t,e,this.timeScaleAreas[n],r[n])},e.prototype.createScaleElement=function(e,t,n,o){var s=this._renderHelper.getTextWidth(\"a\"),a=this.createScaleElementCore(e,o,t,this.scaleElements);if(a.style.lineHeight=this.etalonSizeValues.scaleItemHeight+\"px\",(null==o?void 0:o.size.width)>5*s){var l=this.getScaleItemText(e,n);a.innerText=l,n===i.ViewType.Quarter&&(a.style.padding=\"0\");var c=getComputedStyle(a);o.size.width-r.DomUtils.pxToInt(c.paddingLeft)-r.DomUtils.pxToInt(c.paddingRight)<this._renderHelper.getTextWidth(l)&&(a.title=l)}return a},e.prototype.createScaleBorder=function(e,t,n){var r=this.gridLayoutCalculator.getScaleBorderInfo(e,n);return this.createScaleElementCore(e,r,t,this.scaleBorders)},e.prototype.createScaleElementAndBorder=function(e,t,n){var r=this.gridLayoutCalculator.getScaleElementInfo(e,n),i=this.createScaleElement(e,t,n,r),o=this.createScaleBorder(e,t,n);this.onScaleCellPrepared(n,t,i,o,r.additionalInfo.range)},e.prototype.removeScaleElementAndBorder=function(e,t){a.RenderElementUtils.remove(null,e,this.timeScaleAreas[t],this.scaleElements[t]),a.RenderElementUtils.remove(null,e,this.timeScaleAreas[t],this.scaleBorders[t])},e.prototype.recreateScalesElements=function(){this.recreateScaleElements(this.viewType,0),this.recreateScaleElements(o.DateUtils.ViewTypeToScaleMap[this.viewType],1)},e.prototype.recreateScaleElements=function(e,t){var n=this,r=this.gridLayoutCalculator.getRenderedScaleItemIndices(e,this.renderedColIndices),i=this.renderedScaleItemIndices[e-this.viewType]||[];a.RenderElementUtils.recreate(i,r,(function(e){n.removeScaleElementAndBorder(e,t)}),(function(r){n.createScaleElementAndBorder(r,t,e)})),this.renderedScaleItemIndices[e-this.viewType]=r},Object.defineProperty(e.prototype,\"dispatcher\",{get:function(){return this._renderHelper.dispatcher},enumerable:!1,configurable:!0}),e.prototype.onScaleCellPrepared=function(e,t,n,r,i){var o=new s.ScaleCellPreparedArguments({scaleType:e,scaleIndex:t,range:i,scaleElement:n,separatorElement:r});this.dispatcher.notifyScaleCellPrepared(o)},e}();t.ScaleRender=l},8148:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.StripLinesRender=void 0;var r=n(658),i=function(){function e(e){this._stripLinesMap=[],this._renderedStripLines=[],this._renderHelper=e}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stripLinesMap\",{get:function(){return this._stripLinesMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedStripLines\",{get:function(){return this._renderedStripLines},set:function(e){this._renderedStripLines=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stripLines\",{get:function(){return this._renderHelper.stripLines},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._renderedStripLines=[]},e.prototype.recreateStripLines=function(){var e=this,t=this.gridLayoutCalculator.getRenderedStripLines(this.stripLines);r.RenderElementUtils.recreate(this.renderedStripLines,t,(function(t){r.RenderElementUtils.remove(t,null,e.taskArea,e.stripLinesMap)}),(function(t){return r.RenderElementUtils.create(t,null,e.taskArea,e.stripLinesMap)})),this.renderedStripLines=t},e}();t.StripLinesRender=i},2349:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskAreaRender=void 0;var r=n(6907),i=n(658),o=function(){function e(e){this._vertTaskAreaBorders=[],this._horTaskAreaBorders=[],this._isExternalTaskAreaContainer=!1,this._renderHelper=e}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"mainElement\",{get:function(){return this._renderHelper.mainElement},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"etalonSizeValues\",{get:function(){return this._renderHelper.etalonSizeValues},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scaleCount\",{get:function(){return this._renderHelper.scaleCount},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"tickSize\",{get:function(){return this._renderHelper.tickSize},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollTop\",{get:function(){return this._renderHelper.ganttViewTaskAreaContainerScrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainerScrollLeft\",{get:function(){return this._renderHelper.ganttTaskAreaContainerScrollLeft},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"areHorizontalBordersEnabled\",{get:function(){return this._renderHelper.areHorizontalBordersEnabled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedRowIndices\",{get:function(){return this._renderHelper.renderedRowIndices},set:function(e){this._renderHelper.renderedRowIndices=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedColIndices\",{get:function(){return this._renderHelper.renderedColIndices},set:function(e){this._renderHelper.renderedColIndices=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"vertTaskAreaBorders\",{get:function(){return this._vertTaskAreaBorders},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"horTaskAreaBorders\",{get:function(){return this._horTaskAreaBorders},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hlRowElements\",{get:function(){return this._renderHelper.hlRowElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskAreaContainer\",{get:function(){return this._taskAreaContainer},enumerable:!1,configurable:!0}),e.prototype.getExternalTaskAreaContainer=function(e){return this._renderHelper.getExternalTaskAreaContainer(e)},e.prototype.prepareExternalTaskAreaContainer=function(e,t){return this._renderHelper.prepareExternalTaskAreaContainer(e,t)},e.prototype.isAllowTaskAreaBorders=function(e){return this._renderHelper.isAllowTaskAreaBorders(e)},e.prototype.getTaskAreaContainerElement=function(){return this._taskAreaContainer.getElement()},e.prototype.initTaskAreaContainer=function(e){this._renderHelper.createTaskArea(e),this._taskAreaContainer=this.getExternalTaskAreaContainer(e),this._isExternalTaskAreaContainer=!!this._taskAreaContainer,null==this.taskAreaContainer&&(this._taskAreaContainer=this._renderHelper.getTaskAreaContainer(e))},e.prototype.createTaskElement=function(e){this._renderHelper.createTaskElement(e)},e.prototype.removeTaskElement=function(e){this._renderHelper.removeTaskElement(e)},e.prototype.reset=function(){this._horTaskAreaBorders=[],this._vertTaskAreaBorders=[]},e.prototype.prepareTaskAreaContainer=function(){var e=\"dx-gantt-tac-hb\",t=this.getTaskAreaContainerElement();this.areHorizontalBordersEnabled?r.DomUtils.addClassName(t,e):r.DomUtils.removeClassName(t,e);var n=parseInt(getComputedStyle(t).getPropertyValue(\"margin-top\"))||0,i=\"calc(100% - \".concat(this.etalonSizeValues.scaleItemHeight*this.scaleCount+n,\"px)\");this._isExternalTaskAreaContainer?this.prepareExternalTaskAreaContainer(t,{height:i}):t.style.height=i},e.prototype.createTaskAreaContainer=function(){var e=document.createElement(\"DIV\");e.className=\"dx-gantt-tac\",this.mainElement.appendChild(e),this.initTaskAreaContainer(e),this.prepareTaskAreaContainer()},e.prototype.createTaskAreaBorder=function(e,t){var n=this.gridLayoutCalculator.getTaskAreaBorderInfo(e,t);i.RenderElementUtils.create(n,e,this.taskArea,this.getTaskAreaBordersDictionary(t))},e.prototype.createTaskArea=function(){var e=document.createElement(\"DIV\");return e.id=\"dx-gantt-ta\",e},e.prototype.removeTaskAreaBorder=function(e,t){i.RenderElementUtils.remove(null,e,this.taskArea,this.getTaskAreaBordersDictionary(t))},e.prototype.createTaskAreaBorderAndTaskElement=function(e,t){this.isAllowTaskAreaBorders(t)&&this.createTaskAreaBorder(e,!t),t&&this.createTaskElement(e)},e.prototype.removeTaskAreaBorderAndTaskElement=function(e,t){this.isAllowTaskAreaBorders(t)&&this.removeTaskAreaBorder(e,!t),t&&this.removeTaskElement(e)},e.prototype.recreateTaskAreaBordersAndTaskElements=function(e){var t=this,n=e?this.taskAreaContainerScrollTop:this.taskAreaContainerScrollLeft,r=this.gridLayoutCalculator.getRenderedRowColumnIndices(n,e),o=e?this.renderedRowIndices:this.renderedColIndices;i.RenderElementUtils.recreate(o,r,(function(n){t.removeTaskAreaBorderAndTaskElement(n,e)}),(function(n){t.createTaskAreaBorderAndTaskElement(n,e)})),e?this.renderedRowIndices=r:this.renderedColIndices=r,this.gridLayoutCalculator.createTileToConnectorLinesMap()},e.prototype.getTaskAreaBordersDictionary=function(e){return e?this.vertTaskAreaBorders:this.horTaskAreaBorders},e.prototype.setSizeForTaskArea=function(e,t){this.taskArea.style.width=e+\"px\",this.taskArea.style.height=t+\"px\"},e.prototype.createHighlightRowElement=function(e){var t=this.gridLayoutCalculator.getHighlightRowInfo(e);i.RenderElementUtils.create(t,e,this.taskArea,this.hlRowElements)},e}();t.TaskAreaRender=o},2290:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskRender=void 0;var r=n(6907),i=n(2449),o=n(1419),s=n(658),a=function(){function e(e){this._selectionElements=[],this._taskElements=[],this._renderHelper=e,this.customTaskRender=new o.CustomTaskRender(e,this)}return Object.defineProperty(e.prototype,\"gridLayoutCalculator\",{get:function(){return this._renderHelper.gridLayoutCalculator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskElements\",{get:function(){return this._taskElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"selectionElements\",{get:function(){return this._selectionElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskArea\",{get:function(){return this._renderHelper.taskArea},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isExternalTaskAreaContainer\",{get:function(){return this._renderHelper.isExternalTaskAreaContainer},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"resourcesElements\",{get:function(){return this._renderHelper.resourcesElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hlRowElements\",{get:function(){return this._renderHelper.hlRowElements},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderedRowIndices\",{get:function(){return this._renderHelper.renderedRowIndices},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTitlePosition\",{get:function(){return this._renderHelper.taskTitlePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"showResources\",{get:function(){return this._renderHelper.showResources},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"areHorizontalBordersEnabled\",{get:function(){return this._renderHelper.areHorizontalBordersEnabled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"taskTextHeightKey\",{get:function(){return this._renderHelper.taskTextHeightKey},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"viewModelItems\",{get:function(){return this._renderHelper.viewModelItems},enumerable:!1,configurable:!0}),e.prototype.isHighlightRowElementAllowed=function(e){return this._renderHelper.isHighlightRowElementAllowed(e)},e.prototype.getTaskVisibility=function(e){return this._renderHelper.getTaskVisibility(e)},e.prototype.getTaskText=function(e){return this._renderHelper.getTaskText(e)},Object.defineProperty(e.prototype,\"invalidTaskDependencies\",{get:function(){return this._renderHelper.invalidTaskDependencies},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fakeTaskWrapper\",{get:function(){var e;return null!==(e=this._fakeTaskWrapper)&&void 0!==e||(this._fakeTaskWrapper=this.createFakeTaskWrapper()),this._fakeTaskWrapper},enumerable:!1,configurable:!0}),e.prototype.getViewItem=function(e){return this._renderHelper.getViewItem(e)},e.prototype.getTask=function(e){return this._renderHelper.getTask(e)},e.prototype.createHighlightRowElement=function(e){this._renderHelper.createHighlightRowElement(e)},e.prototype.getTaskDependencies=function(e){return this._renderHelper.getTaskDependencies(e)},e.prototype.addInvalidTaskDependencies=function(e){this._renderHelper.invalidTaskDependencies=this._renderHelper.invalidTaskDependencies.concat(e)},e.prototype.removeInvalidTaskDependencies=function(e){this._renderHelper.invalidTaskDependencies=this._renderHelper.invalidTaskDependencies.filter((function(t){return t.predecessorId!=e||t.successorId!=e}))},e.prototype.createResources=function(e){this.showResources&&this._renderHelper.createResources(e)},e.prototype.attachEventsOnTask=function(e){this._renderHelper.attachEventsOnTask(e)},e.prototype.detachEventsOnTask=function(e){this._renderHelper.detachEventsOnTask(e)},e.prototype.recreateConnectorLineElement=function(e,t){void 0===t&&(t=!1),this._renderHelper.recreateConnectorLineElement(e,t)},e.prototype.renderTaskElement=function(e){this._renderHelper.createTaskElement(e)},e.prototype.reset=function(){var e=this;this._taskElements.forEach((function(t,n){return e.removeTaskElement(n)})),this._selectionElements=[],this._taskElements=[]},e.prototype.createTaskWrapperElement=function(e){var t=this.gridLayoutCalculator.getTaskWrapperElementInfo(e);s.RenderElementUtils.create(t,e,this.taskArea,this.taskElements),this.taskElements[e].style.display=this.getTaskVisibility(e)?\"\":\"none\"},e.prototype.createTaskElement=function(e,t){var n=this.getViewItem(e);if(t&&this.customTaskRender.createCustomTaskElement(e,t),!n.task.isValid()||!n.visible){var r=this.getTaskDependencies(n.task.internalId);return this.addInvalidTaskDependencies(r),void(n.selected&&this.createTaskSelectionElement(e))}n.isCustom||this.createDefaultTaskElement(e)},e.prototype.createTaskVisualElement=function(e){var t=this.gridLayoutCalculator.getTaskElementInfo(e,this.taskTitlePosition!==i.TaskTitlePosition.Inside),n=s.RenderElementUtils.create(t,e,this.taskElements[e]);return this.attachEventsOnTask(e),n},e.prototype.createDefaultTaskElement=function(e){var t=this.getViewItem(e);this.isHighlightRowElementAllowed(e)&&this.createHighlightRowElement(e),t.selected&&this.createTaskSelectionElement(e),this.createTaskWrapperElement(e),this.taskTitlePosition===i.TaskTitlePosition.Outside&&this.createTaskTextElement(e,this.taskElements[e]);var n=this.createTaskVisualElement(e);t.task.isMilestone()||(this.taskTitlePosition===i.TaskTitlePosition.Inside&&this.createTaskTextElement(e,n),this.createTaskProgressElement(e,n)),this.createResources(e)},e.prototype.removeTaskElement=function(e){var t=this.getTask(e);if(t&&this.removeInvalidTaskDependencies(t.id),this.detachEventsOnTask(e),this._renderHelper.hasTaskTemplate()){var n=this.taskElements[e],r=null==n?void 0:n.firstElementChild;r&&(this._renderHelper.destroyTemplate(r),n.removeChild(r))}s.RenderElementUtils.remove(null,e,this.taskArea,this.taskElements),s.RenderElementUtils.remove(null,e,this.taskArea,this.resourcesElements),s.RenderElementUtils.remove(null,e,this.taskArea,this.selectionElements),this.isHighlightRowElementAllowed(e)&&s.RenderElementUtils.remove(null,e,this.taskArea,this.hlRowElements),this.gridLayoutCalculator.resetTaskInfo(e)},e.prototype.recreateTaskElement=function(e){var t=this,n=this.renderedRowIndices.filter((function(t){return t===e})).length>0,r=this.getTask(e);if(r){n&&(this.removeTaskElement(e),this.renderTaskElement(e));var i=this.getTaskDependencies(r.internalId);i.length&&i.forEach((function(e){return t.recreateConnectorLineElement(e.internalId,!0)}))}},e.prototype.createFakeTaskWrapper=function(){var e,t,n=null!==(t=null===(e=this.viewModelItems.filter((function(e){return e.task&&!e.task.isMilestone}))[0])||void 0===e?void 0:e.visibleIndex)&&void 0!==t?t:0,r=this.gridLayoutCalculator,i=s.RenderElementUtils.create(r.getTaskWrapperElementInfo(n),null,this.taskArea),o=s.RenderElementUtils.create(r.getTaskElementInfo(n),null,i);return this.createTaskTextElement(n,o),this.createTaskProgressElement(n,o),i.style.display=\"none\",i},e.prototype.createTaskProgressElement=function(e,t){var n=this.gridLayoutCalculator.getTaskProgressElementInfo(e);s.RenderElementUtils.create(n,e,t)},e.prototype.getTextWidth=function(e){return this._renderHelper.getTextWidth(e)},Object.defineProperty(e.prototype,\"minTextWidth\",{get:function(){var e;return null!==(e=this._minTextWidth)&&void 0!==e||(this._minTextWidth=5*this.getTextWidth(\"a\")),this._minTextWidth},enumerable:!1,configurable:!0}),e.prototype.createTaskTextElement=function(t,n){var o,a,l=this.gridLayoutCalculator.getTaskTextElementInfo(t,this.taskTitlePosition===i.TaskTitlePosition.Inside);if(!l.additionalInfo.hidden){var c=s.RenderElementUtils.create(l,t,n),u=this.getTaskText(t);if(this.taskTitlePosition===i.TaskTitlePosition.Outside&&l.size.width>0){var d=getComputedStyle(c),p=l.size.width-r.DomUtils.pxToInt(d.paddingLeft);if(p>=this.minTextWidth){var h=r.DomUtils.pxToInt(d.paddingRight),f=u?this.getTextWidth(u):0;h&&f>p-h&&(h=Math.min(e.minTitleOutRightPadding,p-this.minTextWidth),c.style.paddingRight=h+\"px\"),f>p-h&&(c.style.overflowX=\"hidden\",c.style.textOverflow=\"ellipsis\")}else c.style.display=\"none\"}u||(null!==(o=this[a=this.taskTextHeightKey])&&void 0!==o||(this[a]=this.getTaskTextHeight(c)),c.style.height=this[this.taskTextHeightKey]),c.innerText=u}},e.prototype.createTaskSelectionElement=function(e){var t=this.gridLayoutCalculator.getSelectionElementInfo(e);this.isExternalTaskAreaContainer&&!this.areHorizontalBordersEnabled&&t.size.height++,s.RenderElementUtils.create(t,e,this.taskArea,this.selectionElements)},e.prototype.getTaskTextHeight=function(e){e.innerText=\"WWW\";var t=getComputedStyle(e).height;return e.innerText=\"\",t},e.prototype.getSmallTaskWidth=function(e){var t=0;if(null!=e&&\"\"!==e){var n=e.indexOf(\"rem\");if(n>-1)try{t=parseFloat(e.substr(0,n))*parseFloat(getComputedStyle(document.documentElement).fontSize)}catch(e){}else t=r.DomUtils.pxToInt(e)}return 2*t},e.minTitleOutRightPadding=5,e}();t.TaskRender=a},2990:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EditingSettings=void 0;var r=n(2491),i=function(){function e(){this.enabled=!1,this.allowDependencyDelete=!0,this.allowDependencyInsert=!0,this.allowTaskDelete=!0,this.allowTaskInsert=!0,this.allowTaskUpdate=!0,this.allowResourceDelete=!0,this.allowResourceInsert=!0,this.allowResourceUpdate=!0,this.allowTaskResourceUpdate=!0,this.taskHoverDelay=0}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.enabled)&&(n.enabled=t.enabled),(0,r.isDefined)(t.allowDependencyDelete)&&(n.allowDependencyDelete=t.allowDependencyDelete),(0,r.isDefined)(t.allowDependencyInsert)&&(n.allowDependencyInsert=t.allowDependencyInsert),(0,r.isDefined)(t.allowTaskDelete)&&(n.allowTaskDelete=t.allowTaskDelete),(0,r.isDefined)(t.allowTaskInsert)&&(n.allowTaskInsert=t.allowTaskInsert),(0,r.isDefined)(t.allowTaskUpdate)&&(n.allowTaskUpdate=t.allowTaskUpdate),(0,r.isDefined)(t.allowResourceDelete)&&(n.allowResourceDelete=t.allowResourceDelete),(0,r.isDefined)(t.allowResourceInsert)&&(n.allowResourceInsert=t.allowResourceInsert),(0,r.isDefined)(t.allowResourceUpdate)&&(n.allowResourceUpdate=t.allowResourceUpdate),(0,r.isDefined)(t.allowTaskResourceUpdate)&&(n.allowTaskResourceUpdate=t.allowTaskResourceUpdate),(0,r.isDefined)(t.taskHoverDelay)&&(n.taskHoverDelay=t.taskHoverDelay)),n},e.prototype.equal=function(e){var t=!0;return t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t&&this.enabled===e.enabled)&&this.allowDependencyDelete===e.allowDependencyDelete)&&this.allowDependencyInsert===e.allowDependencyInsert)&&this.allowTaskDelete===e.allowTaskDelete)&&this.allowTaskInsert===e.allowTaskInsert)&&this.allowTaskUpdate===e.allowTaskUpdate)&&this.allowResourceDelete===e.allowResourceDelete)&&this.allowResourceInsert===e.allowResourceInsert)&&this.allowResourceUpdate===e.allowResourceUpdate)&&this.allowTaskResourceUpdate===e.allowTaskResourceUpdate},e}();t.EditingSettings=i},9954:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FullScreenHelperSettings=void 0;var r=n(2491),i=function(){function e(){}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.getMainElement)&&(n.getMainElement=t.getMainElement),(0,r.isDefined)(t.adjustControl)&&(n.adjustControl=t.adjustControl)),n},e}();t.FullScreenHelperSettings=i},9640:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TaskEditSettings=void 0;var r=n(655),i=n(2491),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.parse=function(e){var n=new t;return e&&((0,i.isDefined)(e.getCommandManager)&&(n.getCommandManager=e.getCommandManager),(0,i.isDefined)(e.getViewModel)&&(n.getViewModel=e.getViewModel),(0,i.isDefined)(e.getGanttSettings)&&(n.getGanttSettings=e.getGanttSettings),(0,i.isDefined)(e.getRenderHelper)&&(n.getRenderHelper=e.getRenderHelper),(0,i.isDefined)(e.destroyTemplate)&&(n.destroyTemplate=e.destroyTemplate),(0,i.isDefined)(e.formatDate)&&(n.formatDate=e.formatDate),(0,i.isDefined)(e.getModelManipulator)&&(n.getModelManipulator=e.getModelManipulator),(0,i.isDefined)(e.getValidationController)&&(n.getValidationController=e.getValidationController)),n},t}(n(9080).TooltipSettings);t.TaskEditSettings=o},9080:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TooltipSettings=void 0;var r=n(2491),i=function(){function e(){}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.getHeaderHeight)&&(n.getHeaderHeight=t.getHeaderHeight),(0,r.isDefined)(t.getTaskTooltipContentTemplate)&&(n.getTaskTooltipContentTemplate=t.getTaskTooltipContentTemplate),(0,r.isDefined)(t.getTaskProgressTooltipContentTemplate)&&(n.getTaskProgressTooltipContentTemplate=t.getTaskProgressTooltipContentTemplate),(0,r.isDefined)(t.getTaskTimeTooltipContentTemplate)&&(n.getTaskTimeTooltipContentTemplate=t.getTaskTimeTooltipContentTemplate),(0,r.isDefined)(t.destroyTemplate)&&(n.destroyTemplate=t.destroyTemplate),(0,r.isDefined)(t.formatDate)&&(n.formatDate=t.formatDate),(0,r.isDefined)(t.getTaskAreaContainer)&&(n.getTaskAreaContainer=t.getTaskAreaContainer)),n},e}();t.TooltipSettings=i},5846:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ValidationControllerSettings=void 0;var r=n(2491),i=function(){function e(){}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.getViewModel)&&(n.getViewModel=t.getViewModel),(0,r.isDefined)(t.getHistory)&&(n.getHistory=t.getHistory),(0,r.isDefined)(t.getModelManipulator)&&(n.getModelManipulator=t.getModelManipulator),(0,r.isDefined)(t.getRange)&&(n.getRange=t.getRange),(0,r.isDefined)(t.getValidationSettings)&&(n.getValidationSettings=t.getValidationSettings),(0,r.isDefined)(t.updateOwnerInAutoParentMode)&&(n.updateOwnerInAutoParentMode=t.updateOwnerInAutoParentMode),(0,r.isDefined)(t.getIsValidateDependenciesRequired)&&(n.getIsValidateDependenciesRequired=t.getIsValidateDependenciesRequired)),n},e}();t.ValidationControllerSettings=i},5351:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Settings=void 0;var r=n(2491),i=n(7880),o=n(2449),s=n(2990),a=n(9057),l=n(2762),c=n(9820),u=function(){function e(){this.viewType=void 0,this.taskTitlePosition=o.TaskTitlePosition.Inside,this.showResources=!0,this.showDependencies=!0,this.areHorizontalBordersEnabled=!0,this.areVerticalBordersEnabled=!0,this.areAlternateRowsEnabled=!0,this.allowSelectTask=!0,this.firstDayOfWeek=0,this.editing=new s.EditingSettings,this.validation=new l.ValidationSettings,this.stripLines=new a.StripLineSettings,this.viewTypeRange=new c.ViewTypeRangeSettings}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.viewType)&&(n.viewType=t.viewType),(0,r.isDefined)(t.taskTitlePosition)&&(n.taskTitlePosition=t.taskTitlePosition),(0,r.isDefined)(t.showResources)&&(n.showResources=t.showResources),(0,r.isDefined)(t.showDependencies)&&(n.showDependencies=t.showDependencies),(0,r.isDefined)(t.areHorizontalBordersEnabled)&&(n.areHorizontalBordersEnabled=t.areHorizontalBordersEnabled),(0,r.isDefined)(t.areVerticalBordersEnabled)&&(n.areHorizontalBordersEnabled=t.areHorizontalBordersEnabled),(0,r.isDefined)(t.areAlternateRowsEnabled)&&(n.areAlternateRowsEnabled=t.areAlternateRowsEnabled),(0,r.isDefined)(t.allowSelectTask)&&(n.allowSelectTask=t.allowSelectTask),(0,r.isDefined)(t.firstDayOfWeek)&&(n.firstDayOfWeek=t.firstDayOfWeek),(0,r.isDefined)(t.startDateRange)&&(n.startDateRange=new Date(t.startDateRange)),(0,r.isDefined)(t.endDateRange)&&(n.endDateRange=new Date(t.endDateRange)),(0,r.isDefined)(t.editing)&&(n.editing=s.EditingSettings.parse(t.editing)),(0,r.isDefined)(t.validation)&&(n.validation=l.ValidationSettings.parse(t.validation)),(0,r.isDefined)(t.stripLines)&&(n.stripLines=a.StripLineSettings.parse(t.stripLines)),(0,r.isDefined)(t.viewTypeRange)&&(n.viewTypeRange=c.ViewTypeRangeSettings.parse(t.viewTypeRange)),(0,r.isDefined)(t.taskTooltipContentTemplate)&&(n.taskTooltipContentTemplate=t.taskTooltipContentTemplate),(0,r.isDefined)(t.taskProgressTooltipContentTemplate)&&(n.taskProgressTooltipContentTemplate=t.taskProgressTooltipContentTemplate),(0,r.isDefined)(t.taskTimeTooltipContentTemplate)&&(n.taskTimeTooltipContentTemplate=t.taskTimeTooltipContentTemplate),(0,r.isDefined)(t.taskContentTemplate)&&(n.taskContentTemplate=t.taskContentTemplate),(0,r.isDefined)(t.cultureInfo)&&(n.cultureInfo=t.cultureInfo)),n},e.prototype.equal=function(e){var t=!0;return t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t&&this.viewType===e.viewType)&&this.taskTitlePosition===e.taskTitlePosition)&&this.showResources===e.showResources)&&this.showDependencies===e.showDependencies)&&this.areHorizontalBordersEnabled===e.areHorizontalBordersEnabled)&&this.areAlternateRowsEnabled===e.areAlternateRowsEnabled)&&this.allowSelectTask===e.allowSelectTask)&&this.editing.equal(e.editing))&&this.validation.equal(e.validation))&&this.stripLines.equal(e.stripLines))&&i.DateTimeUtils.areDatesEqual(this.startDateRange,e.startDateRange))&&i.DateTimeUtils.areDatesEqual(this.endDateRange,e.endDateRange)},e}();t.Settings=u},1442:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.StripLine=void 0;var r=n(2491),i=function(){function e(e,t,n,r,i){this.isCurrent=!1,this.start=e,this.end=t,this.title=n,this.cssClass=r,this.isCurrent=i}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.start)&&(n.start=t.start),(0,r.isDefined)(t.end)&&(n.end=t.end),(0,r.isDefined)(t.title)&&(n.title=t.title),(0,r.isDefined)(t.cssClass)&&(n.cssClass=t.cssClass)),n},e.prototype.clone=function(){return new e(this.start,this.end,this.title,this.cssClass,this.isCurrent)},e.prototype.equal=function(e){var t=!0;return t=(t=(t=(t=t&&this.start==e.start)&&this.end==e.end)&&this.title==e.title)&&this.cssClass==e.cssClass},e}();t.StripLine=i},9057:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.StripLineSettings=void 0;var r=n(2491),i=n(1442),o=function(){function e(){this.showCurrentTime=!1,this.currentTimeUpdateInterval=6e4,this.stripLines=[]}return e.parse=function(t){var n=new e;if(t&&((0,r.isDefined)(t.showCurrentTime)&&(n.showCurrentTime=t.showCurrentTime),(0,r.isDefined)(t.currentTimeUpdateInterval)&&(n.currentTimeUpdateInterval=t.currentTimeUpdateInterval),(0,r.isDefined)(t.currentTimeTitle)&&(n.currentTimeTitle=t.currentTimeTitle),(0,r.isDefined)(t.currentTimeCssClass)&&(n.currentTimeCssClass=t.currentTimeCssClass),(0,r.isDefined)(t.stripLines)))for(var o=0;o<t.stripLines.length;o++)n.stripLines.push(i.StripLine.parse(t.stripLines[o]));return n},e.prototype.equal=function(e){var t=!0;if(t=(t=(t=(t=(t=t&&this.showCurrentTime==e.showCurrentTime)&&this.currentTimeUpdateInterval==e.currentTimeUpdateInterval)&&this.currentTimeTitle==e.currentTimeTitle)&&this.currentTimeCssClass==e.currentTimeCssClass)&&this.stripLines.length===e.stripLines.length)for(var n=0;n<e.stripLines.length;n++)t=t&&this.stripLines[n].equal(e.stripLines[n]);return t},e}();t.StripLineSettings=o},2762:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ValidationSettings=void 0;var r=n(2491),i=function(){function e(){this.validateDependencies=!1,this.autoUpdateParentTasks=!1,this.enablePredecessorGap=!1}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.validateDependencies)&&(n.validateDependencies=t.validateDependencies),(0,r.isDefined)(t.autoUpdateParentTasks)&&(n.autoUpdateParentTasks=t.autoUpdateParentTasks),(0,r.isDefined)(t.enablePredecessorGap)&&(n.enablePredecessorGap=t.enablePredecessorGap)),n},e.prototype.equal=function(e){var t=!0;return t=(t=(t=t&&this.validateDependencies===e.validateDependencies)&&this.autoUpdateParentTasks===e.autoUpdateParentTasks)&&this.enablePredecessorGap===e.enablePredecessorGap},e}();t.ValidationSettings=i},9820:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ViewTypeRangeSettings=void 0;var r=n(2491),i=n(2449),o=function(){function e(){this.min=i.ViewType.TenMinutes,this.max=i.ViewType.Years}return e.parse=function(t){var n=new e;return t&&((0,r.isDefined)(t.min)&&(n.min=t.min),(0,r.isDefined)(t.max)&&(n.max=t.max)),n},e.prototype.equal=function(e){var t=!0;return t=(t=t&&this.min===e.min)&&this.max===e.max},e}();t.ViewTypeRangeSettings=o},9201:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DateUtils=void 0;var r=n(2449),i=function(){function e(){}var t;return e.getDaysInQuarter=function(t){var n=3*Math.floor(t.getMonth()/3);return[n,n+1,n+2].reduce((function(n,r){return n+e.getDaysInMonth(r,t.getFullYear())}),0)},e.getDaysInMonth=function(e,t){return new Date(t,e+1,0).getDate()},e.getOffsetInMonths=function(e,t){return 12*(t.getFullYear()-e.getFullYear())+t.getMonth()-e.getMonth()},e.getOffsetInQuarters=function(e,t){return 4*(t.getFullYear()-e.getFullYear())+Math.floor(t.getMonth()/3)-Math.floor(e.getMonth()/3)},e.getNearestScaleTickDate=function(e,t,n,r){var i=new Date,o=t.start.getTime(),s=t.end.getTime();if(i.setTime(e.getTime()),e.getTime()<o)i.setTime(o);else if(e.getTime()>s)i.setTime(s);else if(this.needCorrectDate(e,o,n,r)){var a=this.getNearestLeftTickTime(e,o,n,r),l=this.getNextTickTime(a,n,r);Math.abs(e.getTime()-a)>Math.abs(e.getTime()-l)?i.setTime(l):i.setTime(a)}return i},e.needCorrectDate=function(e,t,n,i){return i==r.ViewType.Months?e.getTime()!==new Date(e.getFullYear(),e.getMonth(),1).getTime():(e.getTime()-t)%n!=0},e.getNearestLeftTickTime=function(e,t,n,i){return i==r.ViewType.Months?new Date(e.getFullYear(),e.getMonth(),1).getTime():t+Math.floor((e.getTime()-t)/n)*n},e.getNextTickTime=function(e,t,n){if(n==r.ViewType.Months){var i=new Date;return i.setTime(e),i.setMonth(i.getMonth()+1),i.getTime()}return e+t},e.adjustStartDateByViewType=function(e,t,n){switch(void 0===n&&(n=0),t){case r.ViewType.TenMinutes:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours());case r.ViewType.SixHours:case r.ViewType.Hours:return new Date(e.getFullYear(),e.getMonth(),e.getDate());case r.ViewType.Days:case r.ViewType.Weeks:return new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay()+n);case r.ViewType.Months:case r.ViewType.Quarter:case r.ViewType.Years:return new Date(e.getFullYear(),0,1);default:return new Date}},e.adjustEndDateByViewType=function(e,t,n){switch(void 0===n&&(n=0),t){case r.ViewType.TenMinutes:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()+1);case r.ViewType.SixHours:case r.ViewType.Hours:return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1);case r.ViewType.Days:case r.ViewType.Weeks:return new Date(e.getFullYear(),e.getMonth(),e.getDate()+7-e.getDay()+n);case r.ViewType.Months:case r.ViewType.Quarter:case r.ViewType.Years:return new Date(e.getFullYear()+1,0,1);default:return new Date}},e.roundStartDate=function(e,t){switch(t){case r.ViewType.TenMinutes:case r.ViewType.Hours:return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()-1);case r.ViewType.SixHours:case r.ViewType.Days:return new Date(e.getFullYear(),e.getMonth(),e.getDate()-1);case r.ViewType.Weeks:return new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay());case r.ViewType.Months:return new Date(e.getFullYear(),e.getMonth()-1);case r.ViewType.Quarter:case r.ViewType.Years:return new Date(e.getFullYear()-1,0,1);default:return new Date}},e.getTickTimeSpan=function(t){switch(t){case r.ViewType.TenMinutes:return e.msPerHour/6;case r.ViewType.Hours:return e.msPerHour;case r.ViewType.SixHours:return 6*e.msPerHour;case r.ViewType.Days:return e.msPerDay;case r.ViewType.Weeks:return e.msPerWeek;case r.ViewType.Months:return e.msPerMonth;case r.ViewType.Quarter:return 3*e.msPerMonth;case r.ViewType.Years:return e.msPerYear}},e.getRangeTickCount=function(t,n,i){return i===r.ViewType.Months?this.getRangeTickCountInMonthsViewType(t,n):i===r.ViewType.Quarter?this.getRangeTickCountInQuarterViewType(t,n):e.getRangeMSPeriod(t,n)/e.getTickTimeSpan(i)},e.getRangeMSPeriod=function(t,n){return n.getTime()-e.getDSTTotalDelta(t,n)-t.getTime()},e.getRangeTickCountInMonthsViewType=function(t,n){var r=new Date(t.getFullYear(),t.getMonth(),1),i=new Date(n.getFullYear(),n.getMonth(),1);return e.getOffsetInMonths(r,i)+(n.getTime()-i.getTime())/(e.getDaysInMonth(n.getMonth(),n.getFullYear())*e.msPerDay)-(t.getTime()-r.getTime())/(e.getDaysInMonth(t.getMonth(),t.getFullYear())*e.msPerDay)},e.getRangeTickCountInQuarterViewType=function(t,n){var r=new Date(t.getFullYear(),3*Math.floor(t.getMonth()/3),1),i=new Date(n.getFullYear(),3*Math.floor(n.getMonth()/3),1);return e.getOffsetInQuarters(r,i)+(n.getTime()-i.getTime())/(e.getDaysInQuarter(i)*e.msPerDay)-(t.getTime()-r.getTime())/(e.getDaysInQuarter(r)*e.msPerDay)},e.parse=function(e){return\"function\"==typeof e?new Date(e()):new Date(e)},e.getOrCreateUTCDate=function(e){var t=e.getTimezoneOffset();return t?new Date(e.valueOf()+6e4*t):e},e.getTimezoneOffsetDiff=function(e,t){return t.getTimezoneOffset()-e.getTimezoneOffset()},e.getDSTDelta=function(t,n){var r=e.getTimezoneOffsetDiff(t,n)*e.msPerMinute;return r>0?r:0},e.getDSTTotalDelta=function(t,n){if(!e.hasDST())return 0;for(var r=t,i=0,o=r.getFullYear(),s=r.getMonth();r<n;){s>=5?(o++,s=0):s=5;var a=new Date(o,s,1);a>n&&(a=n),i+=e.getDSTDelta(r,a),r=a}return i},e.getDSTCorrectedTaskEnd=function(t,n){var r=t.getTime()+n,i=e.getDSTTotalDelta(t,new Date(r));return new Date(r+i)},e.hasDST=function(){var t=(new Date).getFullYear(),n=new Date(t,0,1),r=new Date(t,5,1);return 0!==e.getTimezoneOffsetDiff(n,r)},e.msPerMinute=6e4,e.msPerHour=36e5,e.msPerDay=24*e.msPerHour,e.msPerWeek=7*e.msPerDay,e.msPerMonth=30*e.msPerDay,e.msPerYear=365*e.msPerDay,e.ViewTypeToScaleMap=((t={})[r.ViewType.TenMinutes]=r.ViewType.Hours,t[r.ViewType.Hours]=r.ViewType.Days,t[r.ViewType.SixHours]=r.ViewType.Days,t[r.ViewType.Days]=r.ViewType.Weeks,t[r.ViewType.Weeks]=r.ViewType.Months,t[r.ViewType.Months]=r.ViewType.Years,t[r.ViewType.Quarter]=r.ViewType.Years,t[r.ViewType.Years]=r.ViewType.FiveYears,t),e}();t.DateUtils=i},8380:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ElementTextHelper=void 0;var r=n(6907),i=n(2449),o=n(9201),s=function(){function e(e){this.longestAbbrMonthName=null,this.longestMonthName=null,this.longestAbbrDayName=null;var t=document.createElement(\"canvas\");this.textMeasureContext=t.getContext(\"2d\"),this.cultureInfo=e}return e.prototype.setFont=function(e){var t=r.DomUtils.getCurrentStyle(e),n=t.font?t.font:t.fontStyle+\" \"+t.fontVariant+\" \"+t.fontWeight+\" \"+t.fontSize+\" / \"+t.lineHeight+\" \"+t.fontFamily;this.textMeasureContext.font=n},e.prototype.setSettings=function(e,t,n){this.startTime=e,this.viewType=t,this.modelItems=n},e.prototype.getScaleItemText=function(e,t){var n=this.viewType.valueOf()===t.valueOf();switch(t){case i.ViewType.TenMinutes:return this.getTenMinutesScaleItemText(e);case i.ViewType.Hours:case i.ViewType.SixHours:return this.getHoursScaleItemText(e);case i.ViewType.Days:return this.getDaysScaleItemText(e,n);case i.ViewType.Weeks:return this.getWeeksScaleItemText(e,n);case i.ViewType.Months:return this.getMonthsScaleItemText(e,n);case i.ViewType.Quarter:return this.getQuarterScaleItemText(e,n);case i.ViewType.Years:return this.getYearsScaleItemText(e);case i.ViewType.FiveYears:return this.getFiveYearsScaleItemText(e)}},e.prototype.getTenMinutesScaleItemText=function(e){var t=e.getMinutes()+1;return(10*Math.ceil(t/10)).toString()},e.prototype.getThirtyMinutesScaleItemText=function(e){return e.getMinutes()<30?\"30\":\"60\"},e.prototype.getHoursScaleItemText=function(e){var t=e.getHours(),n=this.getHourDisplayText(t),r=t<12?this.getAmText():this.getPmText();return this.getHoursScaleItemTextCore(n,r)},e.prototype.getDaysScaleItemText=function(e,t){return this.getDayTotalText(e,!0,t,t,!t)},e.prototype.getWeeksScaleItemText=function(e,t){var n=o.DateUtils.getDSTCorrectedTaskEnd(e,o.DateUtils.msPerWeek-o.DateUtils.msPerDay);return this.getWeeksScaleItemTextCore(this.getDayTotalText(e,t,!0,t,!t),this.getDayTotalText(n,t,!0,t,!t))},e.prototype.getMonthsScaleItemText=function(e,t){var n=this.getMonthNames(),r=t?\"\":e.getFullYear().toString();return this.getMonthsScaleItemTextCore(n[e.getMonth()],r)},e.prototype.getQuarterScaleItemText=function(e,t){var n=this.getQuarterNames(),r=t?\"\":e.getFullYear().toString();return this.getMonthsScaleItemTextCore(n[Math.floor(e.getMonth()/3)],r)},e.prototype.getYearsScaleItemText=function(e){return e.getFullYear().toString()},e.prototype.getFiveYearsScaleItemText=function(e){return e.getFullYear().toString()+\" - \"+(e.getFullYear()+4).toString()},e.prototype.getHourDisplayText=function(e){return this.hasAmPm()?(0==e?12:e<=12?e:e-12).toString():e<10?\"0\"+e:e.toString()},e.prototype.getDayTotalText=function(e,t,n,r,i){var o=r?this.getAbbrMonthNames():this.getMonthNames(),s=n?this.getAbbrDayNames():this.getDayNames(),a=t?s[e.getDay()]:\"\",l=e.getDate(),c=o[e.getMonth()],u=i?e.getFullYear().toString():\"\";return this.getDayTotalTextCore(a,l.toString(),c,u)},e.prototype.getTaskText=function(e){var t=this.modelItems[e];return t?t.task.title:\"\"},e.prototype.getTaskVisibility=function(e){var t=this.modelItems[e];return!!t&&t.getVisible()},e.prototype.hasAmPm=function(){return this.getAmText().length>0||this.getPmText().length>0},e.prototype.getScaleItemTextTemplate=function(e){switch(e){case i.ViewType.TenMinutes:return\"00\";case i.ViewType.Hours:case i.ViewType.SixHours:return this.getHoursScaleItemTextCore(\"00\",this.getAmText());case i.ViewType.Days:return this.getDayTextTemplate();case i.ViewType.Weeks:return this.getWeekTextTemplate();case i.ViewType.Months:return this.getMonthsScaleItemTextCore(this.getLongestMonthName(),\"\");case i.ViewType.Quarter:return\"Q4\";case i.ViewType.Years:return\"0000\"}},e.prototype.getDayTextTemplate=function(){return this.getDayTotalTextCore(this.getLongestAbbrDayName(),\"00\",this.getLongestAbbrMonthName(),\"\")},e.prototype.getWeekTextTemplate=function(){var e=this.getDayTextTemplate();return this.getWeeksScaleItemTextCore(e,e)},e.prototype.getHoursScaleItemTextCore=function(e,t){return e+\":00\"+(this.hasAmPm()?\" \"+t:\"\")},e.prototype.getDayTotalTextCore=function(e,t,n,r){var i=e.length>0?e+\", \":\"\";return i+=t+\" \"+n,i+=r.length>0?\" \"+r:\"\"},e.prototype.getWeeksScaleItemTextCore=function(e,t){return e+\" - \"+t},e.prototype.getMonthsScaleItemTextCore=function(e,t){var n=e;return t.length>0&&(n+=\" \"+t),n},e.prototype.getLongestAbbrMonthName=function(){return null==this.longestAbbrMonthName&&(this.longestAbbrMonthName=this.getLongestText(this.getAbbrMonthNames())),this.longestAbbrMonthName},e.prototype.getLongestMonthName=function(){return null==this.longestMonthName&&(this.longestMonthName=this.getLongestText(this.getMonthNames())),this.longestMonthName},e.prototype.getLongestAbbrDayName=function(){return null==this.longestAbbrDayName&&(this.longestAbbrDayName=this.getLongestText(this.getAbbrDayNames())),this.longestAbbrDayName},e.prototype.getLongestText=function(e){var t=this,n=\"\",r=0;return e.forEach((function(e){var i=t.getTextWidth(e);i>r&&(r=i,n=e)})),n},e.prototype.getTextWidth=function(e){return Math.round(this.textMeasureContext.measureText(e).width)},e.prototype.getAmText=function(){return this.cultureInfo.amText},e.prototype.getPmText=function(){return this.cultureInfo.pmText},e.prototype.getQuarterNames=function(){return this.cultureInfo.quarterNames},e.prototype.getMonthNames=function(){return this.cultureInfo.monthNames},e.prototype.getDayNames=function(){return this.cultureInfo.dayNames},e.prototype.getAbbrMonthNames=function(){return this.cultureInfo.abbrMonthNames},e.prototype.getAbbrDayNames=function(){return this.cultureInfo.abbrDayNames},e}();t.ElementTextHelper=s},655:(e,t,n)=>{n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>k,__asyncGenerator:()=>b,__asyncValues:()=>S,__await:()=>T,__awaiter:()=>u,__classPrivateFieldGet:()=>I,__classPrivateFieldSet:()=>C,__createBinding:()=>p,__decorate:()=>a,__exportStar:()=>h,__extends:()=>i,__generator:()=>d,__importDefault:()=>D,__importStar:()=>E,__makeTemplateObject:()=>_,__metadata:()=>c,__param:()=>l,__read:()=>g,__rest:()=>s,__spread:()=>y,__spreadArray:()=>v,__spreadArrays:()=>m,__values:()=>f});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function i(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},o.apply(this,arguments)};function s(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}function a(e,t,n,r){var i,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function l(e,t){return function(n,r){t(n,r,e)}}function c(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))}function d(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}var p=Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function h(e,t){for(var n in e)\"default\"===n||Object.prototype.hasOwnProperty.call(t,n)||p(t,e,n)}function f(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function g(e,t){var n=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r}function v(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function T(e){return this instanceof T?(this.v=e,this):new T(e)}function b(e,t,n){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var r,i=n.apply(e,t||[]),o=[];return r={},s(\"next\"),s(\"throw\"),s(\"return\"),r[Symbol.asyncIterator]=function(){return this},r;function s(e){i[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{(n=i[e](t)).value instanceof T?Promise.resolve(n.value.v).then(l,c):u(o[0][2],n)}catch(e){u(o[0][3],e)}var n}function l(e){a(\"next\",e)}function c(e){a(\"throw\",e)}function u(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function k(e){var t,n;return t={},r(\"next\"),r(\"throw\",(function(e){throw e})),r(\"return\"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:T(e[r](t)),done:\"return\"===r}:i?i(t):t}:i}}function S(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=f(e),t={},r(\"next\"),r(\"throw\"),r(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,i){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,i,(t=e[n](t)).done,t.value)}))}}}function _(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}var w=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};function E(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)\"default\"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&p(t,e,n);return w(t,e),t}function D(e){return e&&e.__esModule?e:{default:e}}function I(e,t,n,r){if(\"a\"===n&&!r)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!r:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===n?r:\"a\"===n?r.call(e):r?r.value:t.get(e)}function C(e,t,n,r,i){if(\"m\"===r)throw new TypeError(\"Private method is not writable\");if(\"a\"===r&&!i)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!i:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===r?i.call(e,n):i?i.value=n:t.set(e,n),n}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};return(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:!0}),e.GanttView=e.default=void 0,n(8721);var t=n(2366);Object.defineProperty(e,\"default\",{enumerable:!0,get:function(){return t.GanttView}}),Object.defineProperty(e,\"GanttView\",{enumerable:!0,get:function(){return t.GanttView}})})(),r})()));","// Version: 2.8.6\r\n// https://github.com/DevExpress/DevExtreme.AspNet.Data\r\n// Copyright (c) Developer Express Inc.\r\n\r\n/* global define, module, require */\r\n\r\n(function(factory) {\r\n \"use strict\";\r\n\r\n function unwrapESModule(module) {\r\n return module && module.__esModule && module.default ? module.default : module;\r\n }\r\n\r\n if(typeof define === \"function\" && define.amd) {\r\n define(function(require, exports, module) {\r\n module.exports = factory(\r\n unwrapESModule(require(\"devextreme/core/utils/ajax\")),\r\n require(\"devextreme/core/utils/deferred\").Deferred,\r\n require(\"devextreme/core/utils/extend\").extend,\r\n unwrapESModule(require(\"devextreme/data/custom_store\")),\r\n unwrapESModule(require(\"devextreme/data/utils\"))\r\n );\r\n });\r\n } else if (typeof module === \"object\" && module.exports) {\r\n module.exports = factory(\r\n unwrapESModule(require(\"devextreme/core/utils/ajax\")),\r\n require(\"devextreme/core/utils/deferred\").Deferred,\r\n require(\"devextreme/core/utils/extend\").extend,\r\n unwrapESModule(require(\"devextreme/data/custom_store\")),\r\n unwrapESModule(require(\"devextreme/data/utils\"))\r\n );\r\n } else {\r\n throw \"This script should be used with an AMD or CommonJS loader\";\r\n }\r\n\r\n})(function(ajaxUtility, Deferred, extend, CustomStore, dataUtils) {\r\n \"use strict\";\r\n\r\n var CUSTOM_STORE_OPTIONS = [\r\n \"onLoading\", \"onLoaded\",\r\n \"onInserting\", \"onInserted\",\r\n \"onUpdating\", \"onUpdated\",\r\n \"onRemoving\", \"onRemoved\",\r\n \"onModifying\", \"onModified\",\r\n \"onPush\",\r\n \"loadMode\", \"cacheRawData\",\r\n \"errorHandler\"\r\n ];\r\n\r\n function createStoreConfig(options) {\r\n var keyExpr = options.key,\r\n loadUrl = options.loadUrl,\r\n loadMethod = options.loadMethod || \"GET\",\r\n loadParams = options.loadParams,\r\n isRawLoadMode = options.loadMode === \"raw\",\r\n updateUrl = options.updateUrl,\r\n insertUrl = options.insertUrl,\r\n deleteUrl = options.deleteUrl,\r\n onBeforeSend = options.onBeforeSend,\r\n onAjaxError = options.onAjaxError;\r\n\r\n function send(operation, requiresKey, ajaxSettings, customSuccessHandler) {\r\n var d = Deferred(),\r\n thenable,\r\n beforeSendResult;\r\n\r\n function sendCore() {\r\n ajaxUtility.sendRequest(ajaxSettings).then(\r\n function(res, textStatus, xhr) {\r\n if(customSuccessHandler)\r\n customSuccessHandler(d, res, xhr);\r\n else\r\n d.resolve();\r\n },\r\n function(xhr, textStatus) {\r\n var error = getErrorMessageFromXhr(xhr);\r\n\r\n if(onAjaxError) {\r\n var e = { xhr: xhr, error: error };\r\n onAjaxError(e);\r\n error = e.error;\r\n }\r\n\r\n if(error)\r\n d.reject(error);\r\n else\r\n d.reject(xhr, textStatus);\r\n }\r\n );\r\n }\r\n\r\n if(requiresKey && !keyExpr) {\r\n d.reject(new Error(\"Primary key is not specified (operation: '\" + operation + \"', url: '\" + ajaxSettings.url + \"')\"));\r\n } else {\r\n if(operation === \"load\") {\r\n ajaxSettings.cache = false;\r\n ajaxSettings.dataType = \"json\";\r\n } else {\r\n ajaxSettings.dataType = \"text\";\r\n }\r\n\r\n if(onBeforeSend) {\r\n beforeSendResult = onBeforeSend(operation, ajaxSettings);\r\n if(beforeSendResult && typeof beforeSendResult.then === \"function\")\r\n thenable = beforeSendResult;\r\n }\r\n\r\n if(thenable)\r\n thenable.then(sendCore, function(error) { d.reject(error); });\r\n else\r\n sendCore();\r\n }\r\n\r\n return d.promise();\r\n }\r\n\r\n function filterByKey(keyValue) {\r\n if(!Array.isArray(keyExpr))\r\n return [keyExpr, keyValue];\r\n\r\n return keyExpr.map(function(i) {\r\n return [i, keyValue[i]];\r\n });\r\n }\r\n\r\n function loadOptionsToActionParams(options, isCountQuery) {\r\n var result = {};\r\n\r\n if(isCountQuery)\r\n result.isCountQuery = isCountQuery;\r\n\r\n if(options) {\r\n\r\n [\"skip\", \"take\", \"requireTotalCount\", \"requireGroupCount\"].forEach(function(i) {\r\n if(options[i] !== undefined)\r\n result[i] = options[i];\r\n });\r\n\r\n var normalizeSorting = dataUtils.normalizeSortingInfo,\r\n group = options.group,\r\n filter = options.filter,\r\n select = options.select;\r\n\r\n if(options.sort)\r\n result.sort = JSON.stringify(normalizeSorting(options.sort));\r\n\r\n if(group) {\r\n if(!isAdvancedGrouping(group))\r\n group = normalizeSorting(group);\r\n result.group = JSON.stringify(group);\r\n }\r\n\r\n if(Array.isArray(filter)) {\r\n filter = extend(true, [], filter);\r\n stringifyDatesInFilter(filter);\r\n result.filter = JSON.stringify(filter);\r\n }\r\n\r\n if(options.totalSummary)\r\n result.totalSummary = JSON.stringify(options.totalSummary);\r\n\r\n if(options.groupSummary)\r\n result.groupSummary = JSON.stringify(options.groupSummary);\r\n\r\n if(select) {\r\n if(!Array.isArray(select))\r\n select = [ select ];\r\n result.select = JSON.stringify(select);\r\n }\r\n }\r\n\r\n extend(result, loadParams);\r\n\r\n return result;\r\n }\r\n\r\n function handleInsertUpdateSuccess(d, res, xhr) {\r\n var mime = xhr.getResponseHeader(\"Content-Type\"),\r\n isJSON = mime && mime.indexOf(\"application/json\") > -1;\r\n d.resolve(isJSON ? JSON.parse(res) : res);\r\n }\r\n\r\n var result = {\r\n key: keyExpr,\r\n useDefaultSearch: true,\r\n\r\n load: function(loadOptions) {\r\n return send(\r\n \"load\",\r\n false,\r\n {\r\n url: loadUrl,\r\n method: loadMethod,\r\n data: loadOptionsToActionParams(loadOptions)\r\n },\r\n function(d, res) {\r\n processLoadResponse(d, res, function(res) {\r\n return [ res.data, createLoadExtra(res) ];\r\n });\r\n }\r\n );\r\n },\r\n\r\n totalCount: !isRawLoadMode && function(loadOptions) {\r\n return send(\r\n \"load\",\r\n false,\r\n {\r\n url: loadUrl,\r\n method: loadMethod,\r\n data: loadOptionsToActionParams(loadOptions, true)\r\n },\r\n function(d, res) {\r\n processLoadResponse(d, res, function(res) {\r\n return [ res.totalCount ];\r\n });\r\n }\r\n );\r\n },\r\n\r\n byKey: !isRawLoadMode && function(key) {\r\n return send(\r\n \"load\",\r\n true,\r\n {\r\n url: loadUrl,\r\n method: loadMethod,\r\n data: loadOptionsToActionParams({ filter: filterByKey(key) })\r\n },\r\n function(d, res) {\r\n processLoadResponse(d, res, function(res) {\r\n return [ res.data[0] ];\r\n });\r\n }\r\n );\r\n },\r\n\r\n update: updateUrl && function(key, values) {\r\n return send(\r\n \"update\",\r\n true,\r\n {\r\n url: updateUrl,\r\n method: options.updateMethod || \"PUT\",\r\n data: {\r\n key: serializeKey(key),\r\n values: JSON.stringify(values)\r\n }\r\n },\r\n handleInsertUpdateSuccess\r\n );\r\n },\r\n\r\n insert: insertUrl && function(values) {\r\n return send(\r\n \"insert\",\r\n true,\r\n {\r\n url: insertUrl,\r\n method: options.insertMethod || \"POST\",\r\n data: { values: JSON.stringify(values) }\r\n },\r\n handleInsertUpdateSuccess\r\n );\r\n },\r\n\r\n remove: deleteUrl && function(key) {\r\n return send(\"delete\", true, {\r\n url: deleteUrl,\r\n method: options.deleteMethod || \"DELETE\",\r\n data: { key: serializeKey(key) }\r\n });\r\n }\r\n\r\n };\r\n\r\n CUSTOM_STORE_OPTIONS.forEach(function(name) {\r\n var value = options[name];\r\n if(value !== undefined)\r\n result[name] = value;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n function processLoadResponse(d, res, getResolveArgs) {\r\n res = expandLoadResponse(res);\r\n\r\n if(!res || typeof res !== \"object\")\r\n d.reject(new Error(\"Unexpected response received\"));\r\n else\r\n d.resolve.apply(d, getResolveArgs(res));\r\n }\r\n\r\n function expandLoadResponse(value) {\r\n if(Array.isArray(value))\r\n return { data: value };\r\n\r\n if(typeof value === \"number\")\r\n return { totalCount: value };\r\n\r\n return value;\r\n }\r\n\r\n function createLoadExtra(res) {\r\n return {\r\n totalCount: \"totalCount\" in res ? res.totalCount : -1,\r\n groupCount: \"groupCount\" in res ? res.groupCount : -1,\r\n summary: res.summary || null\r\n };\r\n }\r\n\r\n function serializeKey(key) {\r\n if(typeof key === \"object\")\r\n return JSON.stringify(key);\r\n\r\n return key;\r\n }\r\n\r\n function serializeDate(date) {\r\n\r\n function zpad(text, len) {\r\n text = String(text);\r\n while(text.length < len)\r\n text = \"0\" + text;\r\n return text;\r\n }\r\n\r\n var builder = [1 + date.getMonth(), \"/\", date.getDate(), \"/\", date.getFullYear()],\r\n h = date.getHours(),\r\n m = date.getMinutes(),\r\n s = date.getSeconds(),\r\n f = date.getMilliseconds();\r\n\r\n if(h + m + s + f > 0)\r\n builder.push(\" \", zpad(h, 2), \":\", zpad(m, 2), \":\", zpad(s, 2), \".\", zpad(f, 3));\r\n\r\n return builder.join(\"\");\r\n }\r\n\r\n function stringifyDatesInFilter(crit) {\r\n crit.forEach(function(v, k) {\r\n if(Array.isArray(v)) {\r\n stringifyDatesInFilter(v);\r\n } else if(Object.prototype.toString.call(v) === \"[object Date]\") {\r\n crit[k] = serializeDate(v);\r\n }\r\n });\r\n }\r\n\r\n function isAdvancedGrouping(expr) {\r\n if(!Array.isArray(expr))\r\n return false;\r\n\r\n for(var i = 0; i < expr.length; i++) {\r\n if(\"groupInterval\" in expr[i] || \"isExpanded\" in expr[i])\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getErrorMessageFromXhr(xhr) {\r\n var mime = xhr.getResponseHeader(\"Content-Type\"),\r\n responseText = xhr.responseText;\r\n\r\n if(!mime)\r\n return null;\r\n\r\n if(mime.indexOf(\"text/plain\") === 0)\r\n return responseText;\r\n\r\n if(mime.indexOf(\"application/json\") === 0) {\r\n var jsonObj = safeParseJSON(responseText);\r\n\r\n if(typeof jsonObj === \"string\")\r\n return jsonObj;\r\n\r\n if(typeof jsonObj === \"object\") {\r\n for(var key in jsonObj) {\r\n if(typeof jsonObj[key] === \"string\")\r\n return jsonObj[key];\r\n }\r\n }\r\n\r\n return responseText;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function safeParseJSON(json) {\r\n try {\r\n return JSON.parse(json);\r\n } catch(x) {\r\n return null;\r\n }\r\n }\r\n\r\n return {\r\n createStore: function(options) {\r\n return new CustomStore(createStoreConfig(options));\r\n }\r\n };\r\n});\r\n","/*!\n * DevExtreme-Quill Editor v.1.6.4\n * https://js.devexpress.com/\n * Copyright (c) 2020, Developer Express Inc.\n * Copyright (c) 2017, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DevExpress\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Quill\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 1674:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ OverriddenAttributor)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3866);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3398);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar OverriddenAttributor = /*#__PURE__*/function (_Attributor) {\n _inherits(OverriddenAttributor, _Attributor);\n var _super = _createSuper(OverriddenAttributor);\n function OverriddenAttributor(attrName, keyName) {\n var _options$allowedTags;\n var _this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n allowedTags: []\n };\n _classCallCheck(this, OverriddenAttributor);\n _this = _super.call(this, attrName, keyName, options);\n _this.allowedTags = (_options$allowedTags = options.allowedTags) !== null && _options$allowedTags !== void 0 ? _options$allowedTags : [];\n return _this;\n }\n _createClass(OverriddenAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenAttributor.prototype), \"add\", this), node, value);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenAttributor.prototype), \"remove\", this), node);\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenAttributor.prototype), \"value\", this), node);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateCanAdd.call */ .ud.call(this, _get(_getPrototypeOf(OverriddenAttributor.prototype), \"canAdd\", this), node, value);\n }\n }], [{\n key: \"keys\",\n value: function keys(node) {\n return (0,_decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateKeys */ .dj)(_get(_getPrototypeOf(OverriddenAttributor), \"keys\", this), node, _utils__WEBPACK_IMPORTED_MODULE_2__/* .KeyNameType.attribute */ .WT.attribute);\n }\n }]);\n return OverriddenAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor);\n\n\n/***/ }),\n\n/***/ 3866:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Mx\": () => (/* binding */ decorateMethodWithKeyName),\n/* harmony export */ \"dj\": () => (/* binding */ decorateKeys),\n/* harmony export */ \"ud\": () => (/* binding */ decorateCanAdd)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3398);\n\nfunction decorateMethodWithKeyName(method) {\n var originalKeyName = this.keyName;\n this.keyName = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .removeCustomPrefixFromKeyName */ .mQ)(this.keyName);\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var result = method.call.apply(method, [this].concat(args));\n this.keyName = originalKeyName;\n return result;\n}\nfunction decorateCanAdd(originCanAdd, node, value) {\n var isNodeAllowed = this.allowedTags.indexOf(node.tagName) > -1;\n return isNodeAllowed && originCanAdd.call(this, node, value);\n}\nfunction decorateKeys(originKeys, node, keyType) {\n return originKeys(node).map(function (keyName) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .getKeyNameWithCustomPrefix */ .jf)(node.tagName, keyName, keyType);\n });\n}\n\n/***/ }),\n\n/***/ 4569:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ OverriddenStyleAttributor)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3866);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3398);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar OverriddenStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(OverriddenStyleAttributor, _StyleAttributor);\n var _super = _createSuper(OverriddenStyleAttributor);\n function OverriddenStyleAttributor(attrName, keyName) {\n var _options$allowedTags;\n var _this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n allowedTags: []\n };\n _classCallCheck(this, OverriddenStyleAttributor);\n _this = _super.call(this, attrName, keyName, options);\n _this.allowedTags = (_options$allowedTags = options.allowedTags) !== null && _options$allowedTags !== void 0 ? _options$allowedTags : [];\n return _this;\n }\n _createClass(OverriddenStyleAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenStyleAttributor.prototype), \"add\", this), node, value);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenStyleAttributor.prototype), \"remove\", this), node);\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateMethodWithKeyName.call */ .Mx.call(this, _get(_getPrototypeOf(OverriddenStyleAttributor.prototype), \"value\", this), node);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateCanAdd.call */ .ud.call(this, _get(_getPrototypeOf(OverriddenStyleAttributor.prototype), \"canAdd\", this), node, value);\n }\n }], [{\n key: \"keys\",\n value: function keys(node) {\n return (0,_decorators__WEBPACK_IMPORTED_MODULE_1__/* .decorateKeys */ .dj)(_get(_getPrototypeOf(OverriddenStyleAttributor), \"keys\", this), node, _utils__WEBPACK_IMPORTED_MODULE_2__/* .KeyNameType.style */ .WT.style);\n }\n }]);\n return OverriddenStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor);\n\n\n/***/ }),\n\n/***/ 3398:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"WT\": () => (/* binding */ KeyNameType),\n/* harmony export */ \"jf\": () => (/* binding */ getKeyNameWithCustomPrefix),\n/* harmony export */ \"mQ\": () => (/* binding */ removeCustomPrefixFromKeyName)\n/* harmony export */ });\n/* harmony import */ var _formats_table_attributors_table_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);\n/* harmony import */ var _formats_table_attributors_cell_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8252);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\n\nvar KeyNameType = {\n attribute: 'attr',\n style: 'style'\n};\nvar OVERRIDDEN_ATTRIBUTORS_TAG_INFO = _objectSpread(_objectSpread({}, _formats_table_attributors_table_config__WEBPACK_IMPORTED_MODULE_0__/* .tableConfig.allowedTags.reduce */ .Sp.allowedTags.reduce(function (result, tag) {\n result[tag] = {\n name: _formats_table_attributors_table_config__WEBPACK_IMPORTED_MODULE_0__/* .tableConfig.name */ .Sp.name,\n keyNamesSet: _formats_table_attributors_table_config__WEBPACK_IMPORTED_MODULE_0__/* .TABLE_KEY_NAME_SET */ .bc\n };\n return result;\n}, {})), _formats_table_attributors_cell_config__WEBPACK_IMPORTED_MODULE_1__/* .cellConfig.allowedTags.reduce */ .Pw.allowedTags.reduce(function (result, tag) {\n result[tag] = {\n name: _formats_table_attributors_cell_config__WEBPACK_IMPORTED_MODULE_1__/* .cellConfig.name */ .Pw.name,\n keyNamesSet: _formats_table_attributors_cell_config__WEBPACK_IMPORTED_MODULE_1__/* .TABLE_CELL_KEY_NAME_SET */ .fU\n };\n return result;\n}, {}));\nfunction getKeyNameWithCustomPrefix(tagName, keyName, keyType) {\n var tagInfo = OVERRIDDEN_ATTRIBUTORS_TAG_INFO[tagName];\n if (!tagInfo) {\n return keyName;\n }\n return tagInfo.keyNamesSet.has(keyName) ? \"\".concat(keyType).concat(tagInfo.name, \"_\").concat(keyName) : keyName;\n}\nfunction removeCustomPrefixFromKeyName(keyNameWithPrefix) {\n return keyNameWithPrefix.replace(/([^]*_)/, '');\n}\n\n/***/ }),\n\n/***/ 6446:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"i2\": () => (/* binding */ BlockEmbed),\n \"qz\": () => (/* binding */ blockDelta),\n \"E2\": () => (/* binding */ bubbleFormats),\n \"ZP\": () => (/* binding */ Block)\n});\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(9098);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(1233);\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(4122);\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(6603);\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(8222);\n// EXTERNAL MODULE: ./attributors/utils.js\nvar utils = __webpack_require__(3398);\n;// CONCATENATED MODULE: ./parchment/override.js\n\n\n\nfunction fillAttributes(tagName, blot, keyNames, keyType) {\n return keyNames.map((keyName) => {\n const normalizedKeyName = keyType\n ? (0,utils/* getKeyNameWithCustomPrefix */.jf)(tagName, keyName, keyType)\n : keyName;\n return blot.scroll.query(normalizedKeyName, parchment.Scope.ATTRIBUTE);\n }).filter((attributor) => attributor instanceof parchment.Attributor)\n .reduce((result, attributor) => {\n result[attributor.attrName] = attributor;\n return result;\n }, {});\n}\n\nfunction overrideParchment() {\n // eslint-disable-next-line no-undef, func-names\n parchment.AttributorStore.prototype.build = function () {\n const { tagName } = this.domNode;\n const blot = parchment.Registry.find(this.domNode);\n if (blot == null) {\n return;\n }\n\n const attributes = parchment.Attributor.keys(this.domNode);\n const classes = parchment.ClassAttributor.keys(this.domNode);\n const styles = parchment.StyleAttributor.keys(this.domNode);\n\n this.attributes = {\n ...fillAttributes(tagName, blot, attributes, utils/* KeyNameType.attribute */.WT.attribute),\n ...fillAttributes(tagName, blot, classes),\n ...fillAttributes(tagName, blot, styles, utils/* KeyNameType.style */.WT.style),\n };\n };\n}\n\n;// CONCATENATED MODULE: ./blots/block.js\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\noverrideParchment();\nvar NEWLINE_LENGTH = 1;\nvar Block = /*#__PURE__*/function (_BlockBlot) {\n _inherits(Block, _BlockBlot);\n var _super = _createSuper(Block);\n function Block(scroll, domNode) {\n var _this;\n _classCallCheck(this, Block);\n _this = _super.call(this, scroll, domNode);\n _this.cache = {};\n return _this;\n }\n _createClass(Block, [{\n key: \"delta\",\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = blockDelta(this);\n }\n return this.cache.delta;\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n _get(_getPrototypeOf(Block.prototype), \"deleteAt\", this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (this.scroll.query(name, parchment.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(_getPrototypeOf(Block.prototype), \"formatAt\", this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (def != null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, index, value, def);\n this.cache = {};\n return;\n }\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (lineIndex, line) {\n block = block.split(lineIndex, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(_getPrototypeOf(Block.prototype), \"insertBefore\", this).call(this, blot, ref);\n if (head instanceof blots_break/* default */.Z) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: \"length\",\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(_getPrototypeOf(Block.prototype), \"length\", this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: \"moveChildren\",\n value: function moveChildren(target, ref) {\n _get(_getPrototypeOf(Block.prototype), \"moveChildren\", this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Block.prototype), \"optimize\", this).call(this, context);\n this.cache = {};\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Block.prototype), \"path\", this).call(this, index, true);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n _get(_getPrototypeOf(Block.prototype), \"removeChild\", this).call(this, child);\n this.cache = {};\n }\n }, {\n key: \"split\",\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n }\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n var next = _get(_getPrototypeOf(Block.prototype), \"split\", this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }]);\n return Block;\n}(parchment.BlockBlot);\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = blots_break/* default */.Z;\nBlock.allowedChildren = [blots_break/* default */.Z, inline/* default */.Z, parchment.EmbedBlot, blots_text/* default */.Z];\nvar BlockEmbed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(BlockEmbed, _EmbedBlot);\n var _super2 = _createSuper(BlockEmbed);\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n return _super2.apply(this, arguments);\n }\n _createClass(BlockEmbed, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"attach\", this).call(this);\n this.attributes = new parchment.AttributorStore(this.domNode);\n }\n }, {\n key: \"delta\",\n value: function delta() {\n return new (Delta_default())().insert(this.value(), _objectSpread(_objectSpread({}, this.formats()), this.attributes.values()));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var attribute = this.scroll.query(name, parchment.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = this.scroll.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n }\n }]);\n return BlockEmbed;\n}(parchment.EmbedBlot);\nBlockEmbed.scope = parchment.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return blot.descendants(parchment.LeafBlot).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n }\n return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n }, new (Delta_default())()).insert('\\n', bubbleFormats(blot));\n}\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = _objectSpread(_objectSpread({}, formats), blot.formats());\n if (filter) {\n // exclude syntax highlighting from deltas and getFormat()\n delete formats['code-token'];\n }\n }\n if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats, filter);\n}\n\n\n/***/ }),\n\n/***/ 4122:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Break = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Break, _EmbedBlot);\n var _super = _createSuper(Break);\n function Break() {\n _classCallCheck(this, Break);\n return _super.apply(this, arguments);\n }\n _createClass(Break, [{\n key: \"optimize\",\n value: function optimize() {\n if (this.prev || this.next) {\n this.remove();\n }\n }\n }, {\n key: \"length\",\n value: function length() {\n return 0;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n return Break;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot);\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Break);\n\n/***/ }),\n\n/***/ 3553:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Container = /*#__PURE__*/function (_ContainerBlot) {\n _inherits(Container, _ContainerBlot);\n var _super = _createSuper(Container);\n function Container() {\n _classCallCheck(this, Container);\n return _super.apply(this, arguments);\n }\n return _createClass(Container);\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.ContainerBlot);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Container);\n\n/***/ }),\n\n/***/ 3657:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8222);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar Cursor = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Cursor, _EmbedBlot);\n var _super = _createSuper(Cursor);\n function Cursor(scroll, domNode, selection) {\n var _this;\n _classCallCheck(this, Cursor);\n _this = _super.call(this, scroll, domNode);\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this.savedLength = 0;\n return _this;\n }\n _createClass(Cursor, [{\n key: \"detach\",\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (this.savedLength !== 0) {\n _get(_getPrototypeOf(Cursor.prototype), \"format\", this).call(this, name, value);\n return;\n }\n var target = this;\n var index = 0;\n while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this.savedLength = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this.savedLength = 0;\n }\n }\n }, {\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(_getPrototypeOf(Cursor.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"length\",\n value: function length() {\n return this.savedLength;\n }\n }, {\n key: \"position\",\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: \"remove\",\n value: function remove() {\n _get(_getPrototypeOf(Cursor.prototype), \"remove\", this).call(this);\n this.parent = null;\n }\n }, {\n key: \"restore\",\n value: function restore() {\n if (this.selection.composing || this.parent == null) return null;\n var range = this.selection.getNativeRange();\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n var prevTextBlot = this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z ? this.prev : null;\n var prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n var nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z ? this.next : null;\n var nextText = nextTextBlot ? nextTextBlot.text : '';\n var textNode = this.textNode;\n // take text from inside this blot and reset it\n var newText = textNode.data.split(Cursor.CONTENTS).join('');\n textNode.data = Cursor.CONTENTS;\n\n // proactively merge TextBlots around cursor so that optimization\n // doesn't lose the cursor. the reason we are here in cursor.restore\n // could be that the user clicked in prevTextBlot or nextTextBlot, or\n // the user typed something.\n var mergedTextBlot;\n if (prevTextBlot) {\n mergedTextBlot = prevTextBlot;\n if (newText || nextTextBlot) {\n prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n if (nextTextBlot) {\n nextTextBlot.remove();\n }\n }\n } else if (nextTextBlot) {\n mergedTextBlot = nextTextBlot;\n nextTextBlot.insertAt(0, newText);\n } else {\n var newTextNode = document.createTextNode(newText);\n mergedTextBlot = this.scroll.create(newTextNode);\n this.parent.insertBefore(mergedTextBlot, this);\n }\n this.remove();\n if (range) {\n // calculate selection to restore\n var remapOffset = function remapOffset(node, offset) {\n if (prevTextBlot && node === prevTextBlot.domNode) {\n return offset;\n }\n if (node === textNode) {\n return prevTextLength + offset - 1;\n }\n if (nextTextBlot && node === nextTextBlot.domNode) {\n return prevTextLength + newText.length + offset;\n }\n return null;\n };\n var start = remapOffset(range.start.node, range.start.offset);\n var end = remapOffset(range.end.node, range.end.offset);\n if (start !== null && end !== null) {\n return {\n startNode: mergedTextBlot.domNode,\n startOffset: start,\n endNode: mergedTextBlot.domNode,\n endOffset: end\n };\n }\n }\n return null;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n return Cursor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot);\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Cursor);\n\n/***/ }),\n\n/***/ 7452:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8222);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar GUARD_TEXT = \"\\uFEFF\";\nvar Embed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Embed, _EmbedBlot);\n var _super = _createSuper(Embed);\n function Embed(scroll, node) {\n var _this;\n _classCallCheck(this, Embed);\n _this = _super.call(this, scroll, node);\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n Array.from(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n _createClass(Embed, [{\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(_getPrototypeOf(Embed.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"restore\",\n value: function restore(node) {\n var range;\n var textNode;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n return Embed;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Embed);\n\n/***/ }),\n\n/***/ 6603:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4122);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8222);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Inline = /*#__PURE__*/function (_InlineBlot) {\n _inherits(Inline, _InlineBlot);\n var _super = _createSuper(Inline);\n function Inline() {\n _classCallCheck(this, Inline);\n return _super.apply(this, arguments);\n }\n _createClass(Inline, [{\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(_getPrototypeOf(Inline.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Inline.prototype), \"optimize\", this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: \"compare\",\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n }\n if (self === other) {\n return 0;\n }\n if (self < other) {\n return -1;\n }\n return 1;\n }\n }]);\n return Inline;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.InlineBlot);\nInline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z, parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot, _text__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline',\n// Must be lower\n'link',\n// Chrome wants <a> to be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n];\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Inline);\n\n/***/ }),\n\n/***/ 3272:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2069);\n/* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6446);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4122);\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3553);\n/* harmony import */ var _formats_table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1969);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nfunction isLine(blot) {\n return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .ZP || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__/* .BlockEmbed */ .i2;\n}\nvar Scroll = /*#__PURE__*/function (_ScrollBlot) {\n _inherits(Scroll, _ScrollBlot);\n var _super = _createSuper(Scroll);\n function Scroll(registry, domNode, _ref) {\n var _this;\n var emitter = _ref.emitter,\n toggleBlankClass = _ref.toggleBlankClass;\n _classCallCheck(this, Scroll);\n _this = _super.call(this, registry, domNode);\n _this.emitter = emitter;\n _this.toggleBlankClass = toggleBlankClass;\n _this.batch = false;\n _this.optimize();\n _this.enable();\n _this.domNode.addEventListener('dragstart', function (e) {\n return _this.handleDragStart(e);\n });\n return _this;\n }\n _createClass(Scroll, [{\n key: \"batchStart\",\n value: function batchStart() {\n if (!Array.isArray(this.batch)) {\n this.batch = [];\n }\n }\n }, {\n key: \"batchEnd\",\n value: function batchEnd() {\n var mutations = this.batch;\n this.batch = false;\n this.update(mutations);\n }\n }, {\n key: \"emitMount\",\n value: function emitMount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.SCROLL_BLOT_MOUNT */ .Z.events.SCROLL_BLOT_MOUNT, blot);\n }\n }, {\n key: \"emitUnmount\",\n value: function emitUnmount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.SCROLL_BLOT_UNMOUNT */ .Z.events.SCROLL_BLOT_UNMOUNT, blot);\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n var _this$line = this.line(index),\n _this$line2 = _slicedToArray(_this$line, 2),\n first = _this$line2[0],\n offset = _this$line2[1];\n var _this$line3 = this.line(index + length),\n _this$line4 = _slicedToArray(_this$line3, 1),\n last = _this$line4[0];\n _get(_getPrototypeOf(Scroll.prototype), \"deleteAt\", this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n var isCrossCellDelete = (first instanceof _formats_table__WEBPACK_IMPORTED_MODULE_5__/* .CellLine */ .zW || last instanceof _formats_table__WEBPACK_IMPORTED_MODULE_5__/* .CellLine */ .zW) && first.parent !== last.parent;\n var includesEmbedBlock = first instanceof _block__WEBPACK_IMPORTED_MODULE_2__/* .BlockEmbed */ .i2 || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__/* .BlockEmbed */ .i2;\n if (!includesEmbedBlock && !isCrossCellDelete) {\n var ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n }\n this.optimize();\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, format, value) {\n _get(_getPrototypeOf(Scroll.prototype), \"formatAt\", this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(event) {\n event.preventDefault();\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (index >= this.length()) {\n if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK) == null) {\n var blot = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n blot.insertAt(0, value.slice(0, -1), def);\n } else {\n blot.insertAt(0, value, def);\n }\n } else {\n var embed = this.scroll.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE_BLOT) {\n var wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n wrapper.appendChild(blot);\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, wrapper, ref);\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, blot, ref);\n }\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.domNode.getAttribute('contenteditable') === 'true';\n }\n }, {\n key: \"leaf\",\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: \"line\",\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: \"lines\",\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n var getLines = function getLines(blot, blotIndex, blotLength) {\n var lines = [];\n var lengthLeft = blotLength;\n blot.children.forEachAt(blotIndex, blotLength, function (child, childIndex, childLength) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.ContainerBlot) {\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\n }\n lengthLeft -= childLength;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch) return;\n _get(_getPrototypeOf(Scroll.prototype), \"optimize\", this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.SCROLL_OPTIMIZE */ .Z.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Scroll.prototype), \"path\", this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: \"remove\",\n value: function remove() {\n // Never remove self\n }\n }, {\n key: \"update\",\n value: function update(mutations) {\n var _this2 = this;\n if (this.batch) {\n if (Array.isArray(mutations)) {\n this.batch = this.batch.concat(mutations);\n this.toggleBlankClass();\n }\n return;\n }\n var source = _core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .Z.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n mutations = mutations.filter(function (_ref2) {\n var target = _ref2.target;\n var blot = _this2.find(target, true);\n return blot && blot.scroll === _this2;\n });\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.SCROLL_BEFORE_UPDATE */ .Z.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(_getPrototypeOf(Scroll.prototype), \"update\", this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.SCROLL_UPDATE */ .Z.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n return Scroll;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.ScrollBlot);\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .ZP;\nScroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .ZP, _block__WEBPACK_IMPORTED_MODULE_2__/* .BlockEmbed */ .i2, _container__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Scroll);\n\n/***/ }),\n\n/***/ 8222:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ Text),\n/* harmony export */ \"b\": () => (/* binding */ escapeText)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Text = /*#__PURE__*/function (_TextBlot) {\n _inherits(Text, _TextBlot);\n var _super = _createSuper(Text);\n function Text() {\n _classCallCheck(this, Text);\n return _super.apply(this, arguments);\n }\n return _createClass(Text);\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.TextBlot);\nfunction escapeText(text) {\n return text.replace(/[&<>\"']/g, function (s) {\n // https://lodash.com/docs#escape\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return entityMap[s];\n });\n}\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 2432:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(281);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6446);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4122);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3553);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3657);\n/* harmony import */ var _blots_embed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7452);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6603);\n/* harmony import */ var _blots_scroll__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3272);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8222);\n/* harmony import */ var _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(5635);\n/* harmony import */ var _modules_history__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2613);\n/* harmony import */ var _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3071);\n/* harmony import */ var _modules_uploader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(3859);\n\n\n\n\n\n\n\n\n\n\n\n\n\n_core_quill__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"].register */ .ZP.register({\n 'blots/block': _blots_block__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .ZP,\n 'blots/block/embed': _blots_block__WEBPACK_IMPORTED_MODULE_1__/* .BlockEmbed */ .i2,\n 'blots/break': _blots_break__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z,\n 'blots/container': _blots_container__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z,\n 'blots/cursor': _blots_cursor__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z,\n 'blots/embed': _blots_embed__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z,\n 'blots/inline': _blots_inline__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z,\n 'blots/scroll': _blots_scroll__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z,\n 'blots/text': _blots_text__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"] */ .Z,\n 'modules/clipboard': _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"] */ .ZP,\n 'modules/history': _modules_history__WEBPACK_IMPORTED_MODULE_10__/* [\"default\"] */ .Z,\n 'modules/keyboard': _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .ZP,\n 'modules/uploader': _modules_uploader__WEBPACK_IMPORTED_MODULE_12__/* [\"default\"] */ .Z\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_core_quill__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .ZP);\n\n/***/ }),\n\n/***/ 2861:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": () => (/* binding */ editor)\n});\n\n// EXTERNAL MODULE: ./node_modules/lodash.clonedeep/index.js\nvar lodash_clonedeep = __webpack_require__(8805);\nvar lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);\n// EXTERNAL MODULE: ./node_modules/lodash.isequal/index.js\nvar lodash_isequal = __webpack_require__(2722);\nvar lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);\n// EXTERNAL MODULE: ./node_modules/lodash.merge/index.js\nvar lodash_merge = __webpack_require__(732);\nvar lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(9098);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(1233);\n// EXTERNAL MODULE: ./core/selection.js\nvar selection = __webpack_require__(7800);\n// EXTERNAL MODULE: ./blots/cursor.js\nvar cursor = __webpack_require__(3657);\n// EXTERNAL MODULE: ./blots/block.js + 1 modules\nvar blots_block = __webpack_require__(6446);\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(4122);\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(8222);\n;// CONCATENATED MODULE: ./utils/remove_class.js\nfunction removeClass(node, className) {\n node.classList.remove(className);\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n}\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5874);\n;// CONCATENATED MODULE: ./core/editor.js\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\n\n\n\n\n\n\n\n\n\n\n\nvar ASCII = /^[ -~]*$/;\nvar Editor = /*#__PURE__*/function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n this.scroll = scroll;\n this.delta = this.getDelta();\n this.immediateFormats = new Set();\n }\n _createClass(Editor, [{\n key: \"addImmediateFormat\",\n value: function addImmediateFormat(name) {\n this.immediateFormats.add(name);\n }\n }, {\n key: \"applyDelta\",\n value: function applyDelta(delta) {\n var _this = this;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n var normalizedDelta = normalizeDelta(delta);\n var deleteDelta = new (Delta_default())();\n normalizedDelta.reduce(function (index, op) {\n var length = Delta.Op.length(op);\n var attributes = op.attributes || {};\n var addedNewline = false;\n if (op.insert != null) {\n deleteDelta.retain(length);\n if (typeof op.insert === 'string') {\n var text = op.insert;\n addedNewline = !text.endsWith('\\n') && (scrollLength <= index || _this.scroll.descendant(blots_block/* BlockEmbed */.i2, index)[0]);\n _this.scroll.insertAt(index, text);\n var _this$scroll$line = _this.scroll.line(index),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 2),\n line = _this$scroll$line2[0],\n offset = _this$scroll$line2[1];\n var formats = lodash_merge_default()({}, (0,blots_block/* bubbleFormats */.E2)(line));\n if (line instanceof blots_block/* default */.ZP) {\n var _line$descendant = line.descendant(parchment.LeafBlot, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n formats = lodash_merge_default()(formats, (0,blots_block/* bubbleFormats */.E2)(leaf));\n }\n attributes = Delta.AttributeMap.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n addedNewline = _this.scroll.query(key, parchment.Scope.INLINE) != null && (scrollLength <= index || _this.scroll.descendant(blots_block/* BlockEmbed */.i2, index)[0]);\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n } else {\n deleteDelta.push(op);\n }\n var keys = Object.keys(attributes);\n _this.immediateFormats.forEach(function (format) {\n if (keys.indexOf(format) > -1) {\n _this.scroll.formatAt(index, length, format, attributes[format]);\n delete attributes[format];\n }\n });\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n var addedLength = addedNewline ? 1 : 0;\n scrollLength += addedLength;\n deleteDelta.delete(addedLength);\n return index + length + addedLength;\n }, 0);\n deleteDelta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + Delta.Op.length(op);\n }, 0);\n this.scroll.batchEnd();\n this.scroll.optimize();\n return this.update(normalizedDelta);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new (Delta_default())().retain(index).delete(length));\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length) {\n var _this2 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n _this2.scroll.lines(index, Math.max(length, 1)).forEach(function (line) {\n line.format(format, formats[format]);\n });\n });\n this.scroll.optimize();\n var delta = new (Delta_default())().retain(index).retain(length, lodash_clonedeep_default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length) {\n var _this3 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n var delta = new (Delta_default())().retain(index).retain(length, lodash_clonedeep_default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"getContents\",\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: \"getDelta\",\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new (Delta_default())());\n }\n }, {\n key: \"getFormat\",\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var lines = [];\n var leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n if (blot instanceof blots_block/* default */.ZP) {\n lines.push(blot);\n } else if (blot instanceof parchment.LeafBlot) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(parchment.LeafBlot, index, length);\n }\n var _map = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0,blots_block/* bubbleFormats */.E2)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0,blots_block/* bubbleFormats */.E2)(blot), formats);\n }\n return formats;\n });\n var _map2 = _slicedToArray(_map, 2);\n lines = _map2[0];\n leaves = _map2[1];\n return _objectSpread(_objectSpread({}, lines), leaves);\n }\n }, {\n key: \"getHTML\",\n value: function getHTML(index, length) {\n var _this$scroll$line3 = this.scroll.line(index),\n _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 2),\n line = _this$scroll$line4[0],\n lineOffset = _this$scroll$line4[1];\n if (line.length() > lineOffset + length) {\n return convertHTML(line, lineOffset, length, true);\n }\n return convertHTML(this.scroll, index, length, true);\n }\n }, {\n key: \"getText\",\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new (Delta_default())().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text) {\n var _this4 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new (Delta_default())().retain(index).insert(text, lodash_clonedeep_default()(formats)));\n }\n }, {\n key: \"isBlank\",\n value: function isBlank() {\n var isComposing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (this.scroll.children.length === 0) return true;\n if (isComposing) return false;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== blots_block/* default.blotName */.ZP.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof blots_break/* default */.Z;\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n var _this$scroll$line5 = this.scroll.line(index + length),\n _this$scroll$line6 = _slicedToArray(_this$scroll$line5, 2),\n line = _this$scroll$line6[0],\n offset = _this$scroll$line6[1];\n var suffixLength = 0;\n var suffix = new (Delta_default())();\n if (line != null) {\n suffixLength = line.length() - offset;\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new (Delta_default())().insert(text).concat(suffix));\n var delta = new (Delta_default())().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: \"update\",\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = this.scroll.find(mutations[0].target);\n var formats = (0,blots_block/* bubbleFormats */.E2)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(cursor/* default.CONTENTS */.Z.CONTENTS, '');\n var oldText = new (Delta_default())().insert(oldValue);\n var newText = new (Delta_default())().insert(textBlot.value());\n var relativeSelectionInfo = selectionInfo && {\n oldRange: shiftRange(selectionInfo.oldRange, -index),\n newRange: shiftRange(selectionInfo.newRange, -index)\n };\n var diffDelta = new (Delta_default())().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n }\n return delta.push(op);\n }, new (Delta_default())());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !lodash_isequal_default()(oldDelta.compose(change), this.delta)) {\n if (!this.deltaContainsRetain(oldDelta)) {\n change = oldDelta.diff(this.delta, selectionInfo);\n }\n }\n }\n return change;\n }\n\n // T1200561\n }, {\n key: \"deltaContainsRetain\",\n value: function deltaContainsRetain(delta) {\n return delta.ops.some(function (op) {\n return (0,is_defined/* default */.Z)(op.retain);\n });\n }\n }]);\n return Editor;\n}();\nfunction convertListHTML(items, lastIndent, types) {\n if (items.length === 0) {\n var _getListType = getListType(types.pop()),\n _getListType2 = _slicedToArray(_getListType, 1),\n _endTag = _getListType2[0];\n if (lastIndent <= 0) {\n return \"</li></\".concat(_endTag, \">\");\n }\n return \"</li></\".concat(_endTag, \">\").concat(convertListHTML([], lastIndent - 1, types));\n }\n var _items = _toArray(items),\n _items$ = _items[0],\n child = _items$.child,\n offset = _items$.offset,\n length = _items$.length,\n indent = _items$.indent,\n type = _items$.type,\n rest = _items.slice(1);\n var _getListType3 = getListType(type, child),\n _getListType4 = _slicedToArray(_getListType3, 2),\n tag = _getListType4[0],\n attribute = _getListType4[1];\n if (indent > lastIndent) {\n types.push(type);\n if (indent === lastIndent + 1) {\n return \"<\".concat(tag, \"><li\").concat(attribute, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n return \"<\".concat(tag, \"><li>\").concat(convertListHTML(items, lastIndent + 1, types));\n }\n var previousType = types[types.length - 1];\n if (indent === lastIndent && type === previousType) {\n return \"</li><li\".concat(attribute, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n var _getListType5 = getListType(types.pop()),\n _getListType6 = _slicedToArray(_getListType5, 1),\n endTag = _getListType6[0];\n return \"</li></\".concat(endTag, \">\").concat(convertListHTML(items, lastIndent - 1, types));\n}\nfunction convertHTML(blot, index, length) {\n var isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (typeof blot.html === 'function') {\n return blot.html(index, length);\n }\n if (blot instanceof blots_text/* default */.Z) {\n return (0,blots_text/* escapeText */.b)(blot.value().slice(index, index + length));\n }\n if (blot.children) {\n // TODO fix API\n if (blot.statics.blotName === 'list-container') {\n var items = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n var formats = child.formats();\n items.push({\n child: child,\n offset: offset,\n length: childLength,\n indent: formats.indent || 0,\n type: formats.list\n });\n });\n return convertListHTML(items, -1, []);\n }\n var parts = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n parts.push(convertHTML(child, offset, childLength));\n });\n handleBreakLine(blot.children, parts);\n if (isRoot || blot.statics.blotName === 'list') {\n return parts.join('');\n }\n var domNode = extractNodeFromBlot(blot);\n var outerHTML = domNode.outerHTML,\n innerHTML = domNode.innerHTML;\n var _outerHTML$split = outerHTML.split(\">\".concat(innerHTML, \"<\")),\n _outerHTML$split2 = _slicedToArray(_outerHTML$split, 2),\n start = _outerHTML$split2[0],\n end = _outerHTML$split2[1];\n if (start.indexOf('<table') === 0) {\n return \"\".concat(start.replace(/(\\sdata-.+?=[\"'].*?[\"'])/g, ''), \">\").concat(parts.join('').replace(/(\\sdata-table.+?=[\"'].*?[\"'])/g, ''), \"<\").concat(end);\n }\n return \"\".concat(start, \">\").concat(parts.join(''), \"<\").concat(end);\n }\n return blot.domNode.outerHTML;\n}\nfunction handleBreakLine(linkedList, parts) {\n if (linkedList.length === 1 && linkedList.head instanceof blots_break/* default */.Z) {\n parts.push('<br>');\n }\n}\nfunction extractNodeFromBlot(blot) {\n var domNode = blot.domNode.cloneNode(true);\n return removeTableServiceClasses(blot, domNode);\n}\nfunction removeTableServiceClasses(blot, domNode) {\n var BLOTS_WITH_SERVICE_CLASS = ['tableCellLine', 'tableHeaderCellLine', 'tableCell', 'tableHeaderCell'];\n if (BLOTS_WITH_SERVICE_CLASS.includes(blot.statics.blotName)) {\n removeClass(domNode, blot.statics.className);\n }\n return domNode;\n}\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\nfunction getListType(type, child) {\n var tag = type === 'ordered' ? 'ol' : 'ul';\n var attributes = child ? \"\".concat(getBlotNodeAttributes(child)) : '';\n switch (type) {\n case 'checked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"checked\\\"\")];\n case 'unchecked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"unchecked\\\"\")];\n default:\n return [tag, attributes];\n }\n}\nfunction getBlotNodeAttributes(_ref) {\n var domNode = _ref.domNode;\n if (!domNode.hasAttributes()) {\n return '';\n }\n var attributes = domNode.attributes;\n var attributesString = ' ';\n for (var i = 0; i < attributes.length; i += 1) {\n var name = attributes[i].name;\n var value = attributes[i].value;\n if (name === 'class') {\n value = removeIndentClass(value);\n }\n if (value.length && name.indexOf('data-') === -1) {\n attributesString += \"\".concat(name, \"=\\\"\").concat(value, \"\\\"\");\n }\n }\n return attributesString.length > 1 ? attributesString : '';\n}\nfunction removeIndentClass(classString) {\n return classString.replace(/ql-indent-\\d/g, '').trim();\n}\nfunction normalizeDelta(delta) {\n return delta.reduce(function (normalizedDelta, op) {\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return normalizedDelta.insert(text, op.attributes);\n }\n return normalizedDelta.push(op);\n }, new (Delta_default())());\n}\nfunction shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new selection/* Range */.e(index + amount, length);\n}\n/* harmony default export */ const editor = (Editor);\n\n/***/ }),\n\n/***/ 2069:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3034);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8034);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2598);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3122);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar debug = (0,_logger__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z)('quill:events');\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nif ((0,_utils_has_window__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)()) {\n EVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n Array.from(document.querySelectorAll('.ql-container')).forEach(function (node) {\n var quill = _instances__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].get */ .Z.get(node);\n if (quill && quill.emitter) {\n var _quill$emitter;\n (_quill$emitter = quill.emitter).handleDOM.apply(_quill$emitter, args);\n }\n });\n });\n });\n}\nvar Emitter = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n var _super = _createSuper(Emitter);\n function Emitter() {\n var _this;\n _classCallCheck(this, Emitter);\n _this = _super.call(this);\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n _createClass(Emitter, [{\n key: \"emit\",\n value: function emit() {\n var _debug$log, _get2;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n (_debug$log = debug.log).call.apply(_debug$log, [debug].concat(args));\n (_get2 = _get(_getPrototypeOf(Emitter.prototype), \"emit\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"handleDOM\",\n value: function handleDOM(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n if (event.target === node || node.contains(event.target)) {\n handler.apply(void 0, [event].concat(args));\n }\n });\n }\n }, {\n key: \"listenDOM\",\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n return Emitter;\n}((eventemitter3__WEBPACK_IMPORTED_MODULE_0___default()));\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change',\n CONTENT_SETTED: 'content-setted'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Emitter);\n\n/***/ }),\n\n/***/ 2598:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new WeakMap());\n\n/***/ }),\n\n/***/ 3122:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\nnamespace.level = function (newLevel) {\n level = newLevel;\n};\ndebug.level = namespace.level;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (namespace);\n\n/***/ }),\n\n/***/ 7094:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar Module = /*#__PURE__*/_createClass(function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Module);\n this.quill = quill;\n this.options = options;\n});\nModule.DEFAULTS = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Module);\n\n/***/ }),\n\n/***/ 281:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZP\": () => (/* binding */ Quill)\n/* harmony export */ });\n/* unused harmony exports globalRegistry, expandConfig, overload */\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8805);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(732);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1233);\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2861);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2069);\n/* harmony import */ var _module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7094);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7800);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2598);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(3122);\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1690);\n/* harmony import */ var _utils_is_defined__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5874);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = (0,_logger__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"] */ .Z)('quill');\nvar globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_3__.Registry();\nparchment__WEBPACK_IMPORTED_MODULE_3__.ParentBlot.uiClass = 'ql-ui';\nvar Quill = /*#__PURE__*/function () {\n function Quill(container) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Quill);\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n // eslint-disable-next-line no-constructor-return\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n _instances__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"].set */ .Z.set(this.container, this);\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z();\n var ScrollBlot = this.options.registry.query(parchment__WEBPACK_IMPORTED_MODULE_3__.ScrollBlot.blotName);\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\n emitter: this.emitter,\n toggleBlankClass: this.toggleBlankClass.bind(this)\n });\n this.editor = new _editor__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z(this.scroll);\n this.selection = new _selection__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.uploader = this.theme.addModule('uploader');\n this.theme.init();\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events.EDITOR_CHANGE */ .Z.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events.TEXT_CHANGE */ .Z.events.TEXT_CHANGE) {\n _this.toggleBlankClass();\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events.SCROLL_UPDATE */ .Z.events.SCROLL_UPDATE, function (source, mutations) {\n var oldRange = _this.selection.lastRange;\n var _this$selection$getRa = _this.selection.getRange(),\n _this$selection$getRa2 = _slicedToArray(_this$selection$getRa, 1),\n newRange = _this$selection$getRa2[0];\n var selectionInfo = oldRange && newRange ? {\n oldRange: oldRange,\n newRange: newRange\n } : undefined;\n modify.call(_this, function () {\n return _this.editor.update(null, mutations, selectionInfo);\n }, source);\n });\n this.setContents(this.getInitialContent(html));\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n this.allowReadOnlyEdits = false;\n }\n _createClass(Quill, [{\n key: \"getInitialContent\",\n value: function getInitialContent(html) {\n return this.clipboard.convert({\n html: \"\".concat(html, \"<p><br></p>\"),\n text: '\\n'\n });\n }\n }, {\n key: \"toggleBlankClass\",\n value: function toggleBlankClass() {\n var isComposing = this.selection.composing;\n this.root.classList.toggle('ql-blank', this.editor.isBlank(isComposing));\n }\n }, {\n key: \"addContainer\",\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length, source) {\n var _this2 = this;\n var _overload = overload(index, length, source);\n var _overload2 = _slicedToArray(_overload, 4);\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n return modify.call(this, function () {\n return _this2.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: \"editReadOnly\",\n value: function editReadOnly(modifier) {\n this.allowReadOnlyEdits = true;\n var value = modifier();\n this.allowReadOnlyEdits = false;\n return value;\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var _this3 = this;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.API */ .Z.sources.API;\n return modify.call(this, function () {\n var range = _this3.getSelection(true);\n var change = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())();\n if (range == null) return change;\n if (_this3.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_3__.Scope.BLOCK)) {\n change = _this3.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this3.selection.format(name, value);\n return change;\n } else {\n change = _this3.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this3.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length, name, value, source) {\n var _this4 = this;\n var formats;\n // eslint-disable-next-line prefer-const\n var _overload3 = overload(index, length, name, value, source);\n var _overload4 = _slicedToArray(_overload3, 4);\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n return modify.call(this, function () {\n return _this4.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length, name, value, source) {\n var _this5 = this;\n var formats;\n // eslint-disable-next-line prefer-const\n var _overload5 = overload(index, length, name, value, source);\n var _overload6 = _slicedToArray(_overload5, 4);\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n return modify.call(this, function () {\n return _this5.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var bounds;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: \"getContents\",\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n var _overload7 = overload(index, length);\n var _overload8 = _slicedToArray(_overload7, 2);\n index = _overload8[0];\n length = _overload8[1];\n return this.editor.getContents(index, length);\n }\n }, {\n key: \"getFormat\",\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(index)) {\n return {};\n }\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n }\n return this.editor.getFormat(index.index, index.length);\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: \"getLength\",\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: \"getLeaf\",\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: \"getLine\",\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: \"getLines\",\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n }\n return this.scroll.lines(index, length);\n }\n }, {\n key: \"getModule\",\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: \"getSelection\",\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: \"getSemanticHTML\",\n value: function getSemanticHTML() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n var _overload9 = overload(index, length);\n var _overload10 = _slicedToArray(_overload9, 2);\n index = _overload10[0];\n length = _overload10[1];\n return this.editor.getHTML(index, length);\n }\n }, {\n key: \"getText\",\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n var _overload11 = overload(index, length);\n var _overload12 = _slicedToArray(_overload11, 2);\n index = _overload12[0];\n length = _overload12[1];\n return this.editor.getText(index, length);\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n var _this6 = this;\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this6.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text, name, value, source) {\n var _this7 = this;\n var formats;\n // eslint-disable-next-line prefer-const\n var _overload13 = overload(index, 0, name, value, source);\n var _overload14 = _slicedToArray(_overload13, 4);\n index = _overload14[0];\n formats = _overload14[2];\n source = _overload14[3];\n return modify.call(this, function () {\n return _this7.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.scroll.isEnabled();\n }\n }, {\n key: \"off\",\n value: function off() {\n var _this$emitter;\n return (_this$emitter = this.emitter).off.apply(_this$emitter, arguments);\n }\n }, {\n key: \"on\",\n value: function on() {\n var _this$emitter2;\n return (_this$emitter2 = this.emitter).on.apply(_this$emitter2, arguments);\n }\n }, {\n key: \"once\",\n value: function once() {\n var _this$emitter3;\n return (_this$emitter3 = this.emitter).once.apply(_this$emitter3, arguments);\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length, source) {\n var _this8 = this;\n var _overload15 = overload(index, length, source);\n var _overload16 = _slicedToArray(_overload15, 4);\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n return modify.call(this, function () {\n return _this8.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: \"setContents\",\n value: function setContents(delta) {\n var _this9 = this;\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.API */ .Z.sources.API;\n return modify.call(this, function () {\n delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())(delta);\n var length = _this9.getLength();\n // Quill will set empty editor to \\n\n var delete1 = _this9.editor.deleteText(0, length);\n // delta always applied before existing content\n var applied = _this9.editor.applyDelta(delta);\n // Remove extra \\n from empty editor initialization\n var delete2 = _this9.editor.deleteText(_this9.getLength() - 1, 1);\n _this9.emitter.emit(Quill.events.CONTENT_SETTED);\n return delete1.compose(applied).compose(delete2);\n }, source);\n }\n }, {\n key: \"setSelection\",\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload17 = overload(index, length, source);\n var _overload18 = _slicedToArray(_overload17, 4);\n index = _overload18[0];\n length = _overload18[1];\n source = _overload18[3];\n this.selection.setRange(new _selection__WEBPACK_IMPORTED_MODULE_7__/* .Range */ .e(Math.max(0, index), length), source);\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: \"setText\",\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.API */ .Z.sources.API;\n var delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.USER */ .Z.sources.USER;\n // Will update selection before selection.update() does if text changes\n var change = this.scroll.update(source);\n this.selection.update(source);\n // TODO this is usually undefined\n return change;\n }\n }, {\n key: \"updateContents\",\n value: function updateContents(delta) {\n var _this10 = this;\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.API */ .Z.sources.API;\n return modify.call(this, function () {\n delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())(delta);\n return _this10.editor.applyDelta(delta, source);\n }, source, true);\n }\n }], [{\n key: \"debug\",\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"].level */ .Z.level(limit);\n }\n }, {\n key: \"find\",\n value: function find(node) {\n return _instances__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"].get */ .Z.get(node) || globalRegistry.find(node);\n }\n }, {\n key: \"import\",\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error(\"Cannot import \".concat(name, \". Are you sure it was registered?\"));\n }\n return this.imports[name];\n }\n }, {\n key: \"register\",\n value: function register(path, target) {\n var _this11 = this;\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register(\"formats/\".concat(name), path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this11.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(\"Overwriting \".concat(path, \" with\"), target);\n }\n this.imports[path] = target;\n if ((path.indexOf('blots/') === 0 || path.indexOf('formats/') === 0) && target.blotName !== 'abstract') {\n globalRegistry.register(target);\n }\n if (typeof target.register === 'function') {\n target.register(globalRegistry);\n }\n }\n }\n }]);\n return Quill;\n}();\nQuill.DEFAULTS = {\n bounds: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n scrollingContainer: null,\n theme: 'default'\n};\nQuill.events = _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events */ .Z.events;\nQuill.sources = _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources */ .Z.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 0 : \"1.6.4\";\nQuill.imports = {\n delta: (quill_delta__WEBPACK_IMPORTED_MODULE_0___default()),\n parchment: parchment__WEBPACK_IMPORTED_MODULE_3__,\n 'core/module': _module__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z,\n 'core/theme': _theme__WEBPACK_IMPORTED_MODULE_10__/* [\"default\"] */ .Z\n};\nfunction expandConfig(container, userConfig) {\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true,\n uploader: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme__WEBPACK_IMPORTED_MODULE_10__/* [\"default\"] */ .Z;\n } else {\n userConfig.theme = Quill.import(\"themes/\".concat(userConfig.theme));\n if (userConfig.theme == null) {\n throw new Error(\"Invalid theme \".concat(userConfig.theme, \". Did you register it?\"));\n }\n }\n var themeConfig = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import(\"modules/\".concat(name));\n if (moduleClass == null) {\n debug.error(\"Cannot load \".concat(name, \" module. Are you sure you registered it?\"));\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.USER */ .Z.sources.USER && !this.allowReadOnlyEdits) {\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) {\n index = range.index; // eslint-disable-line prefer-destructuring\n }\n\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n }\n if (change.length() > 0) {\n var _this$emitter4;\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events.TEXT_CHANGE */ .Z.events.TEXT_CHANGE, change, oldDelta, source];\n (_this$emitter4 = this.emitter).emit.apply(_this$emitter4, [_emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].events.EDITOR_CHANGE */ .Z.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT) {\n var _this$emitter5;\n (_this$emitter5 = this.emitter).emit.apply(_this$emitter5, args);\n }\n }\n return change;\n}\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = index.length; // eslint-disable-line prefer-destructuring\n index = index.index; // eslint-disable-line prefer-destructuring\n } else {\n length = index.length; // eslint-disable-line prefer-destructuring\n index = index.index; // eslint-disable-line prefer-destructuring\n }\n } else if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if (_typeof(name) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.API */ .Z.sources.API;\n return [index, length, formats, source];\n}\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start;\n var end;\n if (index instanceof (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.USER */ .Z.sources.USER);\n });\n var _map2 = _slicedToArray(_map, 2);\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"].sources.USER */ .Z.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n }\n return Math.max(index, pos + length);\n });\n var _map4 = _slicedToArray(_map3, 2);\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection__WEBPACK_IMPORTED_MODULE_7__/* .Range */ .e(start, end - start);\n}\n\n\n/***/ }),\n\n/***/ 7800:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ Selection),\n/* harmony export */ \"e\": () => (/* binding */ Range)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8805);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2722);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2069);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3122);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\nvar debug = (0,_logger__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)('quill:selection');\nvar Range = /*#__PURE__*/_createClass(function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n _classCallCheck(this, Range);\n this.index = index;\n this.length = length;\n});\nvar Selection = /*#__PURE__*/function () {\n function Selection(scroll, emitter) {\n var _this = this;\n _classCallCheck(this, Selection);\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = this.scroll.create('cursor', this);\n // savedRange is last non-null range\n this.savedRange = new Range(0, 0);\n this.lastRange = this.savedRange;\n this.lastNative = null;\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown && !_this.composing) {\n setTimeout(_this.update.bind(_this, _emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.USER */ .Z.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SCROLL_BEFORE_UPDATE */ .Z.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n _this.emitter.once(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SCROLL_UPDATE */ .Z.events.SCROLL_UPDATE, function () {\n try {\n if (_this.root.contains(native.start.node) && _this.root.contains(native.end.node)) {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n }\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n } catch (ignored) {\n // ignore\n }\n });\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SCROLL_OPTIMIZE */ .Z.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n }\n });\n this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n }\n _createClass(Selection, [{\n key: \"handleComposition\",\n value: function handleComposition() {\n var _this2 = this;\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n _this2.scroll.batchStart();\n });\n this.root.addEventListener('compositionend', function () {\n _this2.scroll.batchEnd();\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: \"handleDragging\",\n value: function handleDragging() {\n var _this3 = this;\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.USER */ .Z.sources.USER);\n });\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: \"format\",\n value: function format(_format, value) {\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(_format, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = this.scroll.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node;\n var _this$scroll$leaf = this.scroll.leaf(index),\n _this$scroll$leaf2 = _slicedToArray(_this$scroll$leaf, 2),\n leaf = _this$scroll$leaf2[0],\n offset = _this$scroll$leaf2[1];\n if (leaf == null) return null;\n var _this$getPositionData = this.getPositionData(leaf, offset, true);\n var _this$getPositionData2 = _slicedToArray(_this$getPositionData, 2);\n node = _this$getPositionData2[0];\n offset = _this$getPositionData2[1];\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n var _this$scroll$leaf3 = this.scroll.leaf(index + length);\n var _this$scroll$leaf4 = _slicedToArray(_this$scroll$leaf3, 2);\n leaf = _this$scroll$leaf4[0];\n offset = _this$scroll$leaf4[1];\n if (leaf == null) return null;\n var _this$getPositionData3 = this.getPositionData(leaf, offset, true);\n var _this$getPositionData4 = _slicedToArray(_this$getPositionData3, 2);\n node = _this$getPositionData4[0];\n offset = _this$getPositionData4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n }\n var side = 'left';\n var rect;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }, {\n key: \"getNativeRange\",\n value: function getNativeRange() {\n var _ownerDocument$getSel, _ownerDocument$getSel2;\n var ownerDocument = this.root.getRootNode();\n var selection = (_ownerDocument$getSel = (_ownerDocument$getSel2 = ownerDocument.getSelection) === null || _ownerDocument$getSel2 === void 0 ? void 0 : _ownerDocument$getSel2.call(ownerDocument)) !== null && _ownerDocument$getSel !== void 0 ? _ownerDocument$getSel : document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n var ownerDocument = this.root.getRootNode();\n return ownerDocument.activeElement === this.root || contains(this.root, ownerDocument.activeElement);\n }\n }, {\n key: \"normalizedToRange\",\n value: function normalizedToRange(range) {\n var _this4 = this;\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n var blot = _this4.scroll.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n }\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot) {\n return index + blot.index(node, offset);\n }\n return index + blot.length();\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: \"normalizeNative\",\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n if (node instanceof Text) {\n offset = node.data.length;\n } else if (node.childNodes.length > 0) {\n // Container case\n offset = node.childNodes.length;\n } else {\n // Embed case\n offset = node.childNodes.length + 1;\n }\n } else {\n break;\n }\n }\n position.node = node;\n position.offset = offset;\n });\n return range;\n }\n }, {\n key: \"rangeToNative\",\n value: function rangeToNative(range) {\n var _this5 = this;\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var _this5$scroll$leaf = _this5.scroll.leaf(index),\n _this5$scroll$leaf2 = _slicedToArray(_this5$scroll$leaf, 2),\n leaf = _this5$scroll$leaf2[0],\n leafOffset = _this5$scroll$leaf2[1];\n var _this5$getPositionDat = _this5.getPositionData(leaf, leafOffset, i !== 0),\n _this5$getPositionDat2 = _slicedToArray(_this5$getPositionDat, 2),\n node = _this5$getPositionDat2[0],\n offset = _this5$getPositionDat2[1];\n args.push(node, offset);\n });\n if (args.length < 2) {\n return args.concat(args);\n }\n return args;\n }\n }, {\n key: \"getPositionData\",\n value: function getPositionData(leaf, offset, inclusive) {\n if (leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot) {\n return leaf.position(offset, inclusive);\n }\n return [leaf.domNode, offset];\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n var _this$scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 1),\n first = _this$scroll$line2[0];\n var last = first;\n if (range.length > 0) {\n var _this$scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n var _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 1);\n last = _this$scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: \"setNativeRange\",\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var _ref = this.getNativeRange() || {},\n native = _ref.native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode.tagName === 'BR') {\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName === 'BR') {\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough for IE11\n }\n }\n }, {\n key: \"setRange\",\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.API */ .Z.sources.API;\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.USER */ .Z.sources.USER;\n var oldRange = this.lastRange;\n var _this$getRange = this.getRange(),\n _this$getRange2 = _slicedToArray(_this$getRange, 2),\n lastRange = _this$getRange2[0],\n nativeRange = _this$getRange2[1];\n this.lastRange = lastRange;\n this.lastNative = nativeRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(oldRange, this.lastRange)) {\n var _this$emitter;\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n var range = this.cursor.restore();\n if (range) {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }\n }\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SELECTION_CHANGE */ .Z.events.SELECTION_CHANGE, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(this.lastRange), lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(oldRange), source];\n (_this$emitter = this.emitter).emit.apply(_this$emitter, [_emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.EDITOR_CHANGE */ .Z.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT) {\n var _this$emitter2;\n (_this$emitter2 = this.emitter).emit.apply(_this$emitter2, args);\n }\n }\n }\n }]);\n return Selection;\n}();\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode; // eslint-disable-line no-unused-expressions\n } catch (e) {\n return false;\n }\n\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 1690:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar Theme = /*#__PURE__*/function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n _createClass(Theme, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: \"addModule\",\n value: function addModule(name) {\n var ModuleClass = this.quill.constructor.import(\"modules/\".concat(name));\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n return Theme;\n}();\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n default: Theme\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Theme);\n\n/***/ }),\n\n/***/ 715:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HE\": () => (/* binding */ AlignStyle),\n/* harmony export */ \"dk\": () => (/* binding */ AlignClass),\n/* harmony export */ \"if\": () => (/* binding */ AlignAttribute)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\nvar AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor('align', 'align', config);\nvar AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('align', 'ql-align', config);\nvar AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('align', 'text-align', config);\n\n\n/***/ }),\n\n/***/ 7898:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Y\": () => (/* binding */ BackgroundClass),\n/* harmony export */ \"w\": () => (/* binding */ BackgroundStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6039);\n\n\nvar BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('background', 'ql-bg', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\nvar BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__/* .ColorAttributor */ .OO('background', 'background-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\n\n\n/***/ }),\n\n/***/ 3991:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6603);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Bold = /*#__PURE__*/function (_Inline) {\n _inherits(Bold, _Inline);\n var _super = _createSuper(Bold);\n function Bold() {\n _classCallCheck(this, Bold);\n return _super.apply(this, arguments);\n }\n _createClass(Bold, [{\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Bold.prototype), \"optimize\", this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: \"create\",\n value: function create() {\n return _get(_getPrototypeOf(Bold), \"create\", this).call(this);\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return true;\n }\n }]);\n return Bold;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z);\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Bold);\n\n/***/ }),\n\n/***/ 7309:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EK\": () => (/* binding */ Code),\n/* harmony export */ \"ZP\": () => (/* binding */ CodeBlock),\n/* harmony export */ \"se\": () => (/* binding */ CodeBlockContainer)\n/* harmony export */ });\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6446);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4122);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3657);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6603);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8222);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3553);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(281);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nvar CodeBlockContainer = /*#__PURE__*/function (_Container) {\n _inherits(CodeBlockContainer, _Container);\n var _super = _createSuper(CodeBlockContainer);\n function CodeBlockContainer() {\n _classCallCheck(this, CodeBlockContainer);\n return _super.apply(this, arguments);\n }\n _createClass(CodeBlockContainer, [{\n key: \"code\",\n value: function code(index, length) {\n var text = this.children.map(function (child) {\n return child.length() <= 1 ? '' : child.domNode.textContent;\n }).join('\\n').slice(index, index + length);\n return (0,_blots_text__WEBPACK_IMPORTED_MODULE_4__/* .escapeText */ .b)(text);\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n // `\\n`s are needed in order to support empty lines at the beginning and the end.\n // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n return \"<pre>\\n\".concat(this.code(index, length), \"\\n</pre>\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(CodeBlockContainer), \"create\", this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }]);\n return CodeBlockContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z);\nvar CodeBlock = /*#__PURE__*/function (_Block) {\n _inherits(CodeBlock, _Block);\n var _super2 = _createSuper(CodeBlock);\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n return _super2.apply(this, arguments);\n }\n _createClass(CodeBlock, null, [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"].register */ .ZP.register(CodeBlockContainer);\n }\n }]);\n return CodeBlock;\n}(_blots_block__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .ZP);\nvar Code = /*#__PURE__*/function (_Inline) {\n _inherits(Code, _Inline);\n var _super3 = _createSuper(Code);\n function Code() {\n _classCallCheck(this, Code);\n return _super3.apply(this, arguments);\n }\n return _createClass(Code);\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z);\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z, _blots_break__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z, _blots_cursor__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z];\nCodeBlock.requiredContainer = CodeBlockContainer;\nCodeBlock.TAB = ' ';\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 6039:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HQ\": () => (/* binding */ ColorStyle),\n/* harmony export */ \"Hn\": () => (/* binding */ ColorClass),\n/* harmony export */ \"OO\": () => (/* binding */ ColorAttributor)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ColorAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(ColorAttributor, _StyleAttributor);\n var _super = _createSuper(ColorAttributor);\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n return _super.apply(this, arguments);\n }\n _createClass(ColorAttributor, [{\n key: \"value\",\n value: function value(domNode) {\n var value = _get(_getPrototypeOf(ColorAttributor.prototype), \"value\", this).call(this, domNode);\n if (value.indexOf('rgb(') !== 0) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n var hex = value.split(',').map(function (component) {\n return \"00\".concat(parseInt(component, 10).toString(16)).slice(-2);\n }).join('');\n return \"#\".concat(hex);\n }\n }]);\n return ColorAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor);\nvar ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('color', 'ql-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\n\n\n/***/ }),\n\n/***/ 4048:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"H8\": () => (/* binding */ DirectionStyle),\n/* harmony export */ \"IF\": () => (/* binding */ DirectionAttribute),\n/* harmony export */ \"hY\": () => (/* binding */ DirectionClass)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK,\n whitelist: ['rtl']\n};\nvar DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor('direction', 'dir', config);\nvar DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('direction', 'ql-direction', config);\nvar DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('direction', 'direction', config);\n\n\n/***/ }),\n\n/***/ 5832:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"H\": () => (/* binding */ FontStyle),\n/* harmony export */ \"_\": () => (/* binding */ FontClass)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\nvar FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('font', 'ql-font', config);\nvar FontStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(FontStyleAttributor, _StyleAttributor);\n var _super = _createSuper(FontStyleAttributor);\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n return _super.apply(this, arguments);\n }\n _createClass(FontStyleAttributor, [{\n key: \"value\",\n value: function value(node) {\n return _get(_getPrototypeOf(FontStyleAttributor.prototype), \"value\", this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n return FontStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor);\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\n\n/***/ }),\n\n/***/ 7256:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"N\": () => (/* binding */ _sanitize),\n/* harmony export */ \"Z\": () => (/* binding */ Link)\n/* harmony export */ });\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6603);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Link = /*#__PURE__*/function (_Inline) {\n _inherits(Link, _Inline);\n var _super = _createSuper(Link);\n function Link() {\n _classCallCheck(this, Link);\n return _super.apply(this, arguments);\n }\n _createClass(Link, [{\n key: \"format\",\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) {\n _get(_getPrototypeOf(Link.prototype), \"format\", this).call(this, name, value);\n } else {\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(Link), \"create\", this).call(this, value);\n node.setAttribute('href', this.sanitize(value));\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n return Link;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z);\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 1629:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ SizeStyle),\n/* harmony export */ \"m\": () => (/* binding */ SizeClass)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n\nvar SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('size', 'ql-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('size', 'font-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\n\n/***/ }),\n\n/***/ 1342:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Du\": () => (/* binding */ CELL_FORMATS),\n/* harmony export */ \"h6\": () => (/* binding */ CELL_ATTRIBUTORS),\n/* harmony export */ \"kk\": () => (/* binding */ TABLE_CELL_STYLE_ATTRIBUTORS),\n/* harmony export */ \"yA\": () => (/* binding */ TABLE_CELL_ATTR_ATTRIBUTORS)\n/* harmony export */ });\n/* harmony import */ var _prepare_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6062);\n/* harmony import */ var _prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1801);\n/* harmony import */ var _cell_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8252);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\n\n\nvar TABLE_CELL_ATTR_ATTRIBUTORS = _cell_config__WEBPACK_IMPORTED_MODULE_2__/* .TABLE_CELL_ATTRIBUTES.map */ .F1.map(function (attrName) {\n return (0,_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z)(_cell_config__WEBPACK_IMPORTED_MODULE_2__/* .cellConfig */ .Pw, attrName);\n});\nvar TABLE_CELL_STYLE_ATTRIBUTORS = _cell_config__WEBPACK_IMPORTED_MODULE_2__/* .TABLE_CELL_STYLES.map */ .Mu.map(function (styleName) {\n return (0,_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z)(_cell_config__WEBPACK_IMPORTED_MODULE_2__/* .cellConfig */ .Pw, styleName);\n});\nvar CELL_FORMATS = TABLE_CELL_STYLE_ATTRIBUTORS.reduce(function (result, attributor) {\n result[attributor.attrName] = attributor;\n return result;\n}, {});\nvar CELL_ATTRIBUTORS = [].concat(_toConsumableArray(TABLE_CELL_ATTR_ATTRIBUTORS), _toConsumableArray(TABLE_CELL_STYLE_ATTRIBUTORS)).reduce(function (result, attributor) {\n result[attributor.keyName] = attributor;\n return result;\n}, {});\n\n/***/ }),\n\n/***/ 8252:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"F1\": () => (/* binding */ TABLE_CELL_ATTRIBUTES),\n/* harmony export */ \"Mu\": () => (/* binding */ TABLE_CELL_STYLES),\n/* harmony export */ \"Pw\": () => (/* binding */ cellConfig),\n/* harmony export */ \"fU\": () => (/* binding */ TABLE_CELL_KEY_NAME_SET)\n/* harmony export */ });\nvar cellConfig = {\n name: 'cell',\n allowedTags: ['TH', 'TD', 'TR']\n};\nvar TABLE_CELL_ATTRIBUTES = ['height', 'width'];\nvar TABLE_CELL_STYLES = ['height', 'width', 'vertical-align', 'text-align', 'background-color', 'border', 'border-style', 'border-width', 'border-color', 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left'];\nvar TABLE_CELL_KEY_NAME_SET = new Set([].concat(TABLE_CELL_ATTRIBUTES, TABLE_CELL_STYLES));\n\n/***/ }),\n\n/***/ 6062:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ prepareAttributor)\n/* harmony export */ });\n/* harmony import */ var _attributors_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1674);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2141);\n/* harmony import */ var _attributors_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3398);\nvar _excluded = [\"name\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nfunction prepareAttributor(_ref, domAttrName) {\n var name = _ref.name,\n elementConfig = _objectWithoutProperties(_ref, _excluded);\n var attrName = \"\".concat(name).concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z)(domAttrName));\n var keyName = \"\".concat(_attributors_utils__WEBPACK_IMPORTED_MODULE_1__/* .KeyNameType.attribute */ .WT.attribute).concat(name, \"_\").concat(domAttrName);\n return new _attributors_attributor__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z(attrName, keyName, elementConfig);\n}\n\n/***/ }),\n\n/***/ 1801:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ prepareStyleAttributor)\n/* harmony export */ });\n/* harmony import */ var _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4569);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2141);\n/* harmony import */ var _attributors_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3398);\nvar _excluded = [\"name\", \"formatName\"];\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nfunction prepareStyleAttributor(_ref, prop) {\n var name = _ref.name,\n formatName = _ref.formatName,\n elementConfig = _objectWithoutProperties(_ref, _excluded);\n var _prop$split = prop.split('-'),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n propName = _prop$split2[0],\n propSubName = _prop$split2[1];\n var attrName = \"\".concat(name).concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z)(formatName !== null && formatName !== void 0 ? formatName : propName)).concat(propSubName ? (0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z)(propSubName) : '');\n var keyName = \"\".concat(_attributors_utils__WEBPACK_IMPORTED_MODULE_1__/* .KeyNameType.style */ .WT.style).concat(name, \"_\").concat(prop);\n return new _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z(attrName, keyName, elementConfig);\n}\n\n/***/ }),\n\n/***/ 319:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Qu\": () => (/* binding */ TABLE_ATTR_ATTRIBUTORS),\n/* harmony export */ \"VT\": () => (/* binding */ TABLE_STYLE_ATTRIBUTORS),\n/* harmony export */ \"Zt\": () => (/* binding */ TABLE_ATTRIBUTORS),\n/* harmony export */ \"li\": () => (/* binding */ TABLE_FORMATS)\n/* harmony export */ });\n/* harmony import */ var _prepare_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6062);\n/* harmony import */ var _prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1801);\n/* harmony import */ var _table_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\n\n\nvar TABLE_ATTR_ATTRIBUTORS = _table_config__WEBPACK_IMPORTED_MODULE_2__/* .TABLE_ATTRIBUTES.map */ .N2.map(function (attrName) {\n return (0,_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z)(_table_config__WEBPACK_IMPORTED_MODULE_2__/* .tableConfig */ .Sp, attrName);\n});\nvar TABLE_STYLE_ATTRIBUTORS = _table_config__WEBPACK_IMPORTED_MODULE_2__/* .TABLE_STYLES.map */ .GX.map(function (styleName) {\n return (0,_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z)(_table_config__WEBPACK_IMPORTED_MODULE_2__/* .tableConfig */ .Sp, styleName);\n});\nvar TABLE_FORMATS = TABLE_STYLE_ATTRIBUTORS.reduce(function (result, attributor) {\n result[attributor.attrName] = attributor;\n return result;\n}, {});\nvar TABLE_ATTRIBUTORS = [].concat(_toConsumableArray(TABLE_ATTR_ATTRIBUTORS), _toConsumableArray(TABLE_STYLE_ATTRIBUTORS)).reduce(function (result, attributor) {\n result[attributor.keyName] = attributor;\n return result;\n}, {});\n\n/***/ }),\n\n/***/ 19:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"GX\": () => (/* binding */ TABLE_STYLES),\n/* harmony export */ \"N2\": () => (/* binding */ TABLE_ATTRIBUTES),\n/* harmony export */ \"Sp\": () => (/* binding */ tableConfig),\n/* harmony export */ \"bc\": () => (/* binding */ TABLE_KEY_NAME_SET)\n/* harmony export */ });\nvar tableConfig = {\n name: 'table',\n allowedTags: ['TABLE']\n};\nvar TABLE_ATTRIBUTES = ['height', 'width'];\nvar TABLE_STYLES = ['height', 'width', 'text-align', 'background-color', 'border', 'border-style', 'border-width', 'border-color'];\nvar TABLE_KEY_NAME_SET = new Set([].concat(TABLE_ATTRIBUTES, TABLE_STYLES));\n\n/***/ }),\n\n/***/ 8536:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ getId)\n/* harmony export */ });\nfunction getId() {\n return Math.random().toString(36).slice(2, 6);\n}\n\n/***/ }),\n\n/***/ 1969:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KA\": () => (/* binding */ TableHeaderRow),\n/* harmony export */ \"Lv\": () => (/* binding */ tableId),\n/* harmony export */ \"RM\": () => (/* binding */ TableBody),\n/* harmony export */ \"SC\": () => (/* binding */ TableRow),\n/* harmony export */ \"iD\": () => (/* binding */ HeaderCellLine),\n/* harmony export */ \"pj\": () => (/* binding */ TableCell),\n/* harmony export */ \"xD\": () => (/* binding */ TableHeader),\n/* harmony export */ \"xJ\": () => (/* binding */ TableContainer),\n/* harmony export */ \"xs\": () => (/* binding */ TableHeaderCell),\n/* harmony export */ \"zW\": () => (/* binding */ CellLine)\n/* harmony export */ });\n/* unused harmony export TABLE_TAGS */\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6446);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4122);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3553);\n/* harmony import */ var _utils_is_defined__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5874);\n/* harmony import */ var _attributors_cell__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1342);\n/* harmony import */ var _attributors_table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(319);\n/* harmony import */ var _get_id__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8536);\n/* harmony import */ var _toggle_attribute__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2795);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\nvar CELL_IDENTITY_KEYS = ['row', 'cell'];\nvar TABLE_TAGS = (/* unused pure expression or super */ null && (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE']));\nvar DATA_PREFIX = 'data-table-';\nfunction deleteChildrenAt(children, index, length) {\n children.forEachAt(index, length, function (child, offset, childLength) {\n child.deleteAt(offset, childLength);\n });\n}\nvar CellLine = /*#__PURE__*/function (_Block) {\n _inherits(CellLine, _Block);\n var _super = _createSuper(CellLine);\n function CellLine() {\n _classCallCheck(this, CellLine);\n return _super.apply(this, arguments);\n }\n _createClass(CellLine, [{\n key: \"optimize\",\n value: function optimize() {\n var _get2;\n var rowId = this.domNode.getAttribute(\"\".concat(DATA_PREFIX, \"row\"));\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var domNode = this.domNode;\n var formats = {\n row: rowId\n };\n Object.keys(_attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n this.wrap(this.statics.requiredContainer.blotName, formats);\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_get2 = _get(_getPrototypeOf(CellLine.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var isCellLine = name === 'tableCellLine';\n if (isCellLine && value === null) {\n value = this.formats().tableCellLine;\n }\n var isCell = CELL_IDENTITY_KEYS.indexOf(name) > -1;\n if (isCell || _attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li[name] || _attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du[name]) {\n var attrName = \"data-\".concat(isCell ? 'table-' : '').concat(name.toLowerCase());\n (0,_toggle_attribute__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z)(this.domNode, attrName, value);\n if (_attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du[name]) {\n var _this$cell;\n (_this$cell = this.cell()) === null || _this$cell === void 0 || _this$cell.format(name, value);\n }\n if (_attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li[name]) {\n var _this$cell2;\n (_this$cell2 = this.cell()) === null || _this$cell2 === void 0 || (_this$cell2 = _this$cell2.table()) === null || _this$cell2 === void 0 || _this$cell2.format(name, value);\n }\n } else {\n _get(_getPrototypeOf(CellLine.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"cell\",\n value: function cell() {\n return 'row' in this.parent ? this.parent : null;\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(CellLine), \"create\", this).call(this, value);\n CELL_IDENTITY_KEYS.forEach(function (key) {\n var _value$key;\n var identityMarker = key === 'row' ? tableId : cellId;\n node.setAttribute(\"\".concat(DATA_PREFIX).concat(key), (_value$key = value === null || value === void 0 ? void 0 : value[key]) !== null && _value$key !== void 0 ? _value$key : identityMarker());\n });\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return CELL_IDENTITY_KEYS.reduce(function (formats, attribute) {\n var attrName = \"\".concat(DATA_PREFIX).concat(attribute);\n if (domNode.hasAttribute(attrName)) {\n formats[attribute] = domNode.getAttribute(attrName) || undefined;\n }\n return formats;\n }, {});\n }\n }]);\n return CellLine;\n}(_blots_block__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .ZP);\nCellLine.blotName = 'tableCellLine';\nCellLine.className = 'ql-table-cell-line';\nCellLine.tagName = 'P';\nvar HeaderCellLine = /*#__PURE__*/function (_CellLine) {\n _inherits(HeaderCellLine, _CellLine);\n var _super2 = _createSuper(HeaderCellLine);\n function HeaderCellLine() {\n _classCallCheck(this, HeaderCellLine);\n return _super2.apply(this, arguments);\n }\n return _createClass(HeaderCellLine);\n}(CellLine);\nHeaderCellLine.blotName = 'tableHeaderCellLine';\nHeaderCellLine.className = 'ql-table-header-cell-line';\nvar BaseCell = /*#__PURE__*/function (_Container) {\n _inherits(BaseCell, _Container);\n var _super3 = _createSuper(BaseCell);\n function BaseCell() {\n _classCallCheck(this, BaseCell);\n return _super3.apply(this, arguments);\n }\n _createClass(BaseCell, [{\n key: \"format\",\n value: function format(name, value) {\n var _CELL_FORMATS$name;\n (_CELL_FORMATS$name = _attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du[name]) === null || _CELL_FORMATS$name === void 0 || _CELL_FORMATS$name.add(this.domNode, value);\n }\n }, {\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseCell.prototype), \"checkMerge\", this).call(this) && this.next.children.head != null) {\n var thisHead = this.children.head.formats()[this.children.head.statics.blotName];\n var thisTail = this.children.tail.formats()[this.children.tail.statics.blotName];\n var nextHead = this.next.children.head.formats()[this.next.children.head.statics.blotName];\n var nextTail = this.next.children.tail.formats()[this.next.children.tail.statics.blotName];\n return thisHead.cell === thisTail.cell && thisHead.cell === nextHead.cell && thisHead.cell === nextTail.cell;\n }\n return false;\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return BaseCell.cellFormats(this.domNode);\n }\n }, {\n key: \"cellOffset\",\n value: function cellOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n }, {\n key: \"row\",\n value: function row() {\n return 'table' in this.parent ? this.parent : null;\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.row()) {\n return this.row().rowOffset();\n }\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n var _this$row;\n return (_this$row = this.row()) === null || _this$row === void 0 ? void 0 : _this$row.table();\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _this$domNode$getAttr, _get3;\n var rowId = (_this$domNode$getAttr = this.domNode.getAttribute(\"\".concat(DATA_PREFIX, \"row\"))) !== null && _this$domNode$getAttr !== void 0 ? _this$domNode$getAttr : this.domNode.getAttribute(\"\".concat(DATA_PREFIX, \"header-row\"));\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName, {\n row: rowId\n });\n }\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n (_get3 = _get(_getPrototypeOf(BaseCell.prototype), \"optimize\", this)).call.apply(_get3, [this].concat(args));\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n deleteChildrenAt(this.children, index, length);\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseCell), \"create\", this).call(this, value);\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _CELL_FORMATS$format;\n (_CELL_FORMATS$format = _attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du[format]) === null || _CELL_FORMATS$format === void 0 || _CELL_FORMATS$format.add(node, value[format]);\n });\n }\n return node;\n }\n }, {\n key: \"cellFormats\",\n value: function cellFormats(domNode) {\n var formats = {};\n if (domNode.hasAttribute(\"\".concat(DATA_PREFIX, \"row\")) || domNode.hasAttribute(\"\".concat(DATA_PREFIX, \"header-row\"))) {\n var _domNode$getAttribute;\n formats.row = (_domNode$getAttribute = domNode.getAttribute(\"\".concat(DATA_PREFIX, \"row\"))) !== null && _domNode$getAttribute !== void 0 ? _domNode$getAttribute : domNode.getAttribute(\"\".concat(DATA_PREFIX, \"header-row\"));\n }\n Object.keys(_attributors_cell__WEBPACK_IMPORTED_MODULE_3__/* .CELL_FORMATS */ .Du).forEach(function (format) {\n var _domNode$firstElement;\n var value = (_domNode$firstElement = domNode.firstElementChild) === null || _domNode$firstElement === void 0 ? void 0 : _domNode$firstElement.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }]);\n return BaseCell;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nBaseCell.tagName = ['TD', 'TH'];\nvar TableCell = /*#__PURE__*/function (_BaseCell) {\n _inherits(TableCell, _BaseCell);\n var _super4 = _createSuper(TableCell);\n function TableCell() {\n _classCallCheck(this, TableCell);\n return _super4.apply(this, arguments);\n }\n _createClass(TableCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === 'row') {\n this.domNode.setAttribute(\"\".concat(DATA_PREFIX).concat(name), value);\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n } else {\n _get(_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableCell), \"create\", this).call(this, value);\n var attrName = \"\".concat(DATA_PREFIX, \"row\");\n if (value !== null && value !== void 0 && value.row) {\n node.setAttribute(attrName, value.row);\n }\n return node;\n }\n }]);\n return TableCell;\n}(BaseCell);\nTableCell.blotName = 'tableCell';\nTableCell.className = 'ql-table-data-cell';\nTableCell.dataAttribute = \"\".concat(DATA_PREFIX, \"row\");\nTableCell.defaultChild = CellLine;\nvar TableHeaderCell = /*#__PURE__*/function (_BaseCell2) {\n _inherits(TableHeaderCell, _BaseCell2);\n var _super5 = _createSuper(TableHeaderCell);\n function TableHeaderCell() {\n _classCallCheck(this, TableHeaderCell);\n return _super5.apply(this, arguments);\n }\n _createClass(TableHeaderCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === 'row') {\n this.domNode.setAttribute(\"\".concat(DATA_PREFIX).concat(name), value);\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n } else {\n _get(_getPrototypeOf(TableHeaderCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableHeaderCell), \"create\", this).call(this, value);\n var attrName = \"\".concat(DATA_PREFIX, \"header-row\");\n if (value && value.row) {\n node.setAttribute(attrName, value.row);\n }\n return node;\n }\n }]);\n return TableHeaderCell;\n}(BaseCell);\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.className = 'ql-table-header-cell';\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = \"\".concat(DATA_PREFIX, \"header-row\");\nTableHeaderCell.defaultChild = HeaderCellLine;\nvar BaseRow = /*#__PURE__*/function (_Container2) {\n _inherits(BaseRow, _Container2);\n var _super6 = _createSuper(BaseRow);\n function BaseRow() {\n _classCallCheck(this, BaseRow);\n return _super6.apply(this, arguments);\n }\n _createClass(BaseRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseRow.prototype), \"checkMerge\", this).call(this) && (0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(this.next.children.head)) {\n var formatName = 'row';\n var thisHead = this.children.head.formats();\n var thisTail = this.children.tail.formats();\n var nextHead = this.next.children.head.formats();\n var nextTail = this.next.children.tail.formats();\n return thisHead[formatName] === thisTail[formatName] && thisHead[formatName] === nextHead[formatName] && thisHead[formatName] === nextTail[formatName];\n }\n return false;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get4,\n _this = this;\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n (_get4 = _get(_getPrototypeOf(BaseRow.prototype), \"optimize\", this)).call.apply(_get4, [this].concat(args));\n var formatName = this.childFormatName;\n this.children.forEach(function (child) {\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(child.next)) {\n return;\n }\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n if (childFormats[formatName] !== nextFormats[formatName]) {\n var next = _this.splitAfter(child);\n if (next) {\n next.optimize();\n }\n if (_this.prev) {\n _this.prev.optimize();\n }\n }\n });\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n var _this$parent;\n return (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.parent;\n }\n }, {\n key: \"formats\",\n value: function formats() {\n var formats = {};\n var attrName = \"\".concat(DATA_PREFIX, \"row\");\n if (this.domNode.hasAttribute(attrName)) {\n formats[attrName] = this.domNode.getAttribute(attrName);\n }\n return formats;\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseRow), \"create\", this).call(this, value);\n if (value !== null && value !== void 0 && value.row) {\n node.setAttribute(\"\".concat(DATA_PREFIX, \"row\"), value.row);\n }\n return node;\n }\n }]);\n return BaseRow;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nBaseRow.tagName = 'TR';\nvar TableRow = /*#__PURE__*/function (_BaseRow) {\n _inherits(TableRow, _BaseRow);\n var _super7 = _createSuper(TableRow);\n function TableRow(scroll, domNode) {\n var _this2;\n _classCallCheck(this, TableRow);\n _this2 = _super7.call(this, scroll, domNode);\n _this2.childFormatName = 'table';\n return _this2;\n }\n _createClass(TableRow, [{\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n deleteChildrenAt(this.children, index, length);\n }\n }]);\n return TableRow;\n}(BaseRow);\nTableRow.blotName = 'tableRow';\nvar TableHeaderRow = /*#__PURE__*/function (_BaseRow2) {\n _inherits(TableHeaderRow, _BaseRow2);\n var _super8 = _createSuper(TableHeaderRow);\n function TableHeaderRow(scroll, domNode) {\n var _this3;\n _classCallCheck(this, TableHeaderRow);\n _this3 = _super8.call(this, scroll, domNode);\n _this3.childFormatName = 'tableHeaderCell';\n return _this3;\n }\n return _createClass(TableHeaderRow);\n}(BaseRow);\nTableHeaderRow.blotName = 'tableHeaderRow';\nvar RowContainer = /*#__PURE__*/function (_Container3) {\n _inherits(RowContainer, _Container3);\n var _super9 = _createSuper(RowContainer);\n function RowContainer() {\n _classCallCheck(this, RowContainer);\n return _super9.apply(this, arguments);\n }\n _createClass(RowContainer, [{\n key: \"optimize\",\n value: function optimize() {\n var _get5;\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var _this$children$head$c;\n var domNode = ((_this$children$head$c = this.children.head.children.head.children) === null || _this$children$head$c === void 0 || (_this$children$head$c = _this$children$head$c.head) === null || _this$children$head$c === void 0 ? void 0 : _this$children$head$c.domNode) || null;\n var formats = {};\n if (domNode) {\n Object.keys(_attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n }\n this.wrap(this.statics.requiredContainer.blotName, formats);\n }\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_get5 = _get(_getPrototypeOf(RowContainer.prototype), \"optimize\", this)).call.apply(_get5, [this].concat(args));\n }\n }]);\n return RowContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nvar TableBody = /*#__PURE__*/function (_RowContainer) {\n _inherits(TableBody, _RowContainer);\n var _super10 = _createSuper(TableBody);\n function TableBody() {\n _classCallCheck(this, TableBody);\n return _super10.apply(this, arguments);\n }\n return _createClass(TableBody);\n}(RowContainer);\nTableBody.blotName = 'tableBody';\nTableBody.tagName = 'TBODY';\nvar TableHeader = /*#__PURE__*/function (_RowContainer2) {\n _inherits(TableHeader, _RowContainer2);\n var _super11 = _createSuper(TableHeader);\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n return _super11.apply(this, arguments);\n }\n return _createClass(TableHeader);\n}(RowContainer);\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = 'THEAD';\nvar TableContainer = /*#__PURE__*/function (_Container4) {\n _inherits(TableContainer, _Container4);\n var _super12 = _createSuper(TableContainer);\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n return _super12.apply(this, arguments);\n }\n _createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var headerRows = this.descendants(TableHeaderRow);\n var bodyRows = this.descendants(TableRow);\n var maxColCount = this.getMaxTableColCount(headerRows, bodyRows);\n this.balanceRows(maxColCount, headerRows, TableHeaderCell);\n this.balanceRows(maxColCount, bodyRows, TableCell);\n }\n }, {\n key: \"getMaxTableColCount\",\n value: function getMaxTableColCount(headerRows, bodyRows) {\n return Math.max(this.getMaxRowColCount(headerRows), this.getMaxRowColCount(bodyRows));\n }\n }, {\n key: \"getMaxRowColCount\",\n value: function getMaxRowColCount(rows) {\n return Math.max.apply(Math, _toConsumableArray(rows.map(function (row) {\n return row.children.length;\n })));\n }\n }, {\n key: \"balanceRows\",\n value: function balanceRows(maxColCount, rows, CellClass) {\n var _this4 = this;\n rows.forEach(function (row) {\n new Array(maxColCount - row.children.length).fill(0).forEach(function () {\n var value;\n if ((0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(row.children.head)) {\n value = CellClass.cellFormats(row.children.head.domNode);\n }\n var blot = _this4.scroll.create(CellClass.blotName, value);\n var cellLine = _this4.scroll.create(CellClass.allowedChildren[0].blotName, value);\n blot.appendChild(cellLine);\n row.appendChild(blot);\n blot.optimize(); // Add break blot\n });\n });\n }\n }, {\n key: \"cells\",\n value: function cells(column) {\n return this.rows().map(function (row) {\n return row.children.at(column);\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn(index) {\n var _this5 = this;\n [TableHeader, TableBody].forEach(function (blot) {\n var _this5$descendants = _this5.descendants(blot),\n _this5$descendants2 = _slicedToArray(_this5$descendants, 1),\n tablePart = _this5$descendants2[0];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(tablePart) || !(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(tablePart.children.head)) {\n return;\n }\n tablePart.children.forEach(function (row) {\n var cell = row.children.at(index);\n if ((0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(cell)) {\n cell.remove();\n }\n });\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this6 = this;\n [TableHeader, TableBody].forEach(function (blot) {\n var _this6$descendants = _this6.descendants(blot),\n _this6$descendants2 = _slicedToArray(_this6$descendants, 1),\n tablePart = _this6$descendants2[0];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(tablePart) || !(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(tablePart.children.head)) {\n return;\n }\n var CellBlot = blot === TableHeader ? TableHeaderCell : TableCell;\n var CellLineBlot = blot === TableHeader ? HeaderCellLine : CellLine;\n tablePart.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = CellLineBlot.formats(row.children.head.children.head.domNode);\n var cell = _this6.scroll.create(CellBlot.blotName, {\n row: value.row\n });\n var cellLine = _this6.scroll.create(CellLineBlot.blotName, {\n row: value.row\n });\n var emptyLine = _this6.scroll.create(_blots_break__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].blotName */ .Z.blotName);\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.insertBefore(cell, ref);\n });\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this7 = this;\n var _this$descendants = this.descendants(TableBody),\n _this$descendants2 = _slicedToArray(_this$descendants, 1),\n body = _this$descendants2[0];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(body) || !(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(body.children.head)) {\n return;\n }\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName, {\n row: id\n });\n body.children.head.children.forEach(function () {\n var cell = _this7.scroll.create(TableCell.blotName, {\n row: id\n });\n var cellLine = _this7.scroll.create(CellLine.blotName, {\n row: id\n });\n var emptyLine = _this7.scroll.create(_blots_break__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].blotName */ .Z.blotName);\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.appendChild(cell);\n });\n var ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var _this8 = this;\n var _this$descendants3 = this.descendants(TableHeader),\n _this$descendants4 = _slicedToArray(_this$descendants3, 1),\n header = _this$descendants4[0];\n var _this$descendants5 = this.descendants(TableBody),\n _this$descendants6 = _slicedToArray(_this$descendants5, 1),\n body = _this$descendants6[0];\n if ((0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(header) || !(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(body) || !(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(body.children.head)) {\n return;\n }\n var id = tableId();\n var newHeader = this.scroll.create(TableHeader.blotName);\n var row = this.scroll.create(TableHeaderRow.blotName);\n var ref = this.children.at(0);\n newHeader.appendChild(row);\n body.children.head.children.forEach(function () {\n var cell = _this8.scroll.create(TableHeaderCell.blotName, {\n row: id\n });\n var cellLine = _this8.scroll.create(HeaderCellLine.blotName, {\n row: id\n });\n var emptyLine = _this8.scroll.create(_blots_break__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].blotName */ .Z.blotName);\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.appendChild(cell);\n cell.optimize();\n });\n this.insertBefore(newHeader, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n return (0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(body) ? body.children.map(function (row) {\n return row;\n }) : [];\n }\n }, {\n key: \"formats\",\n value: function formats() {\n var formats = {};\n var childElem = this.cells()[0].domNode.firstElementChild;\n Object.keys(_attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li).forEach(function (format) {\n var value = childElem === null || childElem === void 0 ? void 0 : childElem.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var tableFormat = _attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li[name];\n if (tableFormat) {\n var attrName = \"data-\".concat(name.toLowerCase());\n this.cells().forEach(function (cell) {\n (0,_toggle_attribute__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z)(cell.children.head.domNode, attrName, value);\n });\n tableFormat.add(this.domNode, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableContainer), \"create\", this).call(this, value);\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _TABLE_FORMATS$format;\n (_TABLE_FORMATS$format = _attributors_table__WEBPACK_IMPORTED_MODULE_4__/* .TABLE_FORMATS */ .li[format]) === null || _TABLE_FORMATS$format === void 0 || _TABLE_FORMATS$format.add(node, value[format]);\n });\n }\n return node;\n }\n }]);\n return TableContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nTableContainer.blotName = 'tableContainer';\nTableContainer.tagName = 'TABLE';\nTableContainer.allowedChildren = [TableHeader, TableBody];\nTableBody.requiredContainer = TableContainer;\nTableHeader.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nCellLine.requiredContainer = TableCell;\nTableCell.allowedChildren = [CellLine];\nTableHeader.allowedChildren = [TableHeaderRow];\nTableHeaderRow.requiredContainer = TableHeader;\nHeaderCellLine.requiredContainer = TableHeaderCell;\nTableHeaderCell.allowedChildren = [HeaderCellLine];\nTableHeaderRow.allowedChildren = [TableHeaderCell];\nTableHeaderCell.requiredContainer = TableHeaderRow;\nfunction tableId() {\n return \"row-\".concat((0,_get_id__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z)());\n}\nfunction cellId() {\n return \"cell-\".concat((0,_get_id__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z)());\n}\n\n\n/***/ }),\n\n/***/ 2795:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ toggleAttribute)\n/* harmony export */ });\nfunction toggleAttribute(domNode, attrName, value) {\n if (value) {\n domNode.setAttribute(attrName, value);\n } else {\n domNode.removeAttribute(attrName);\n }\n}\n\n/***/ }),\n\n/***/ 5635:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HI\": () => (/* binding */ applyFormat),\n/* harmony export */ \"PF\": () => (/* binding */ deltaEndsWith),\n/* harmony export */ \"ZP\": () => (/* binding */ Clipboard),\n/* harmony export */ \"fw\": () => (/* binding */ traverse)\n/* harmony export */ });\n/* unused harmony exports matchAttributor, matchBlot, matchNewline, matchText */\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1233);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6446);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(281);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3122);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7094);\n/* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(715);\n/* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7898);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7309);\n/* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6039);\n/* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4048);\n/* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5832);\n/* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1629);\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(3071);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(2141);\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = (0,_core_logger__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)('quill:clipboard');\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar CLIPBOARD_CONFIG = [[TEXT_NODE, matchText], [TEXT_NODE, matchNewline], ['br', matchBreak], [ELEMENT_NODE, matchNewline], [ELEMENT_NODE, matchBlot], [ELEMENT_NODE, matchAttributor], [ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['strike', matchAlias.bind(matchAlias, 'strike')], ['style', matchIgnore]];\nvar HTML_TEXT_MATCHERS = [matchText, matchNewline];\nvar ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__/* .AlignAttribute */ [\"if\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__/* .DirectionAttribute */ .IF].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__/* .AlignStyle */ .HE, _formats_background__WEBPACK_IMPORTED_MODULE_7__/* .BackgroundStyle */ .w, _formats_color__WEBPACK_IMPORTED_MODULE_9__/* .ColorStyle */ .HQ, _formats_direction__WEBPACK_IMPORTED_MODULE_10__/* .DirectionStyle */ .H8, _formats_font__WEBPACK_IMPORTED_MODULE_11__/* .FontStyle */ .H, _formats_size__WEBPACK_IMPORTED_MODULE_12__/* .SizeStyle */ .Z].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar Clipboard = /*#__PURE__*/function (_Module) {\n _inherits(Clipboard, _Module);\n var _super = _createSuper(Clipboard);\n function Clipboard(quill, options) {\n var _options$tableBlots;\n var _this;\n _classCallCheck(this, Clipboard);\n _this = _super.call(this, quill, options);\n _this.quill.root.addEventListener('copy', function (e) {\n return _this.onCaptureCopy(e, false);\n });\n _this.quill.root.addEventListener('cut', function (e) {\n return _this.onCaptureCopy(e, true);\n });\n _this.quill.root.addEventListener('paste', _this.onCapturePaste.bind(_assertThisInitialized(_this)));\n _this.matchers = [];\n _this.tableBlots = (_options$tableBlots = options.tableBlots) !== null && _options$tableBlots !== void 0 ? _options$tableBlots : [];\n _this.multilineParagraph = false;\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n _createClass(Clipboard, [{\n key: \"addMatcher\",\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: \"addTableBlot\",\n value: function addTableBlot(blotName) {\n this.tableBlots.push(blotName);\n }\n }, {\n key: \"convert\",\n value: function convert(_ref3) {\n var html = _ref3.html,\n text = _ref3.text,\n keepLastNewLine = _ref3.keepLastNewLine;\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"].blotName */ .ZP.blotName]) {\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().insert(text, _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"].blotName */ .ZP.blotName, formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"].blotName */ .ZP.blotName]));\n }\n return html ? this.applyMatchers(html, keepLastNewLine, formats) : this.applyTextMatchers(text);\n }\n }, {\n key: \"applyTextMatchers\",\n value: function applyTextMatchers() {\n var _this2 = this;\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (text.length === 0) {\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())();\n }\n var matchers = this.prepareTextMatching();\n var element = this.quill.root.ownerDocument.createElement('div');\n element.textContent = text;\n var node = element.childNodes[0];\n return matchers.reduce(function (delta, matcher) {\n return matcher(node, delta, _this2.quill.scroll);\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n }\n }, {\n key: \"applyMatchers\",\n value: function applyMatchers(html, keepLastNewLine) {\n var _this3 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var doc = new DOMParser().parseFromString(html, 'text/html');\n var container = doc.body;\n var nodeMatches = new WeakMap();\n var _this$prepareMatching = this.prepareMatching(container, nodeMatches),\n _this$prepareMatching2 = _slicedToArray(_this$prepareMatching, 2),\n elementMatchers = _this$prepareMatching2[0],\n textMatchers = _this$prepareMatching2[1];\n var delta = traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches, this.multilineParagraph);\n // Remove trailing newline\n if (!keepLastNewLine && deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || Object.values(formats).some(function (blotName) {\n return _this3.tableBlots.includes(blotName);\n }))) {\n return delta.compose(new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(delta.length() - 1).delete(1));\n }\n return delta;\n }\n }, {\n key: \"dangerouslyPasteHTML\",\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.API */ .ZP.sources.API;\n if (typeof index === 'string') {\n var delta = this.convert({\n html: index,\n text: ''\n });\n this.quill.setContents(delta, html);\n this.quill.setSelection(0, _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n } else {\n var paste = this.convert({\n html: html,\n text: ''\n });\n this.quill.updateContents(new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n }\n }\n }, {\n key: \"onCaptureCopy\",\n value: function onCaptureCopy(e) {\n var isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (e.defaultPrevented) return;\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n var _this$quill$selection = this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0];\n if (range == null) return;\n var _this$onCopy = this.onCopy(range, isCut),\n html = _this$onCopy.html,\n text = _this$onCopy.text;\n e.clipboardData.setData('text/plain', text);\n e.clipboardData.setData('text/html', html);\n if (isCut) {\n this.raiseCallback('onCut', e);\n (0,_keyboard__WEBPACK_IMPORTED_MODULE_13__/* .deleteRange */ .WQ)({\n range: range,\n quill: this.quill\n });\n }\n }\n }, {\n key: \"onCapturePaste\",\n value: function onCapturePaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) {\n return;\n }\n this.raiseCallback('onPaste', e);\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n var range = this.quill.getSelection(true);\n if (range == null) {\n return;\n }\n var html = e.clipboardData.getData('text/html');\n var files = Array.from(e.clipboardData.files || []);\n if (!html && files.length > 0) {\n this.quill.uploader.upload(range, files);\n return;\n }\n if (html && files.length > 0) {\n var _DOMParser$parseFromS = new DOMParser().parseFromString(html, 'text/html'),\n body = _DOMParser$parseFromS.body;\n var documentContainsImage = body.childElementCount === 1 && body.firstElementChild.tagName === 'IMG';\n if (documentContainsImage) {\n this.quill.uploader.upload(range, files);\n return;\n }\n }\n var text = e.clipboardData.getData('text/plain');\n this.onPaste(range, {\n html: html,\n text: text,\n keepLastNewLine: true\n });\n }\n }, {\n key: \"raiseCallback\",\n value: function raiseCallback(name, event) {\n var callback = this.options[name];\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"onCopy\",\n value: function onCopy(_ref4) {\n var index = _ref4.index,\n length = _ref4.length;\n var text = this.quill.getText(index, length);\n var html = this.quill.getSemanticHTML(index, length);\n return {\n html: html,\n text: text\n };\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(range, _ref5) {\n var text = _ref5.text,\n html = _ref5.html,\n keepLastNewLine = _ref5.keepLastNewLine;\n var formats = this.quill.getFormat(range.index);\n var pastedDelta = this.convert({\n text: text,\n html: html,\n keepLastNewLine: keepLastNewLine\n }, formats);\n debug.log('onPaste', pastedDelta, {\n text: text,\n html: html\n });\n var delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(range.index).delete(range.length).concat(pastedDelta);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n // range.length contributes to delta.length()\n this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n this.quill.scrollIntoView();\n }\n }, {\n key: \"prepareMatching\",\n value: function prepareMatching(container, nodeMatches) {\n var elementMatchers = [];\n var textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n switch (selector) {\n case TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n Array.from(container.querySelectorAll(selector)).forEach(function (node) {\n if (nodeMatches.has(node)) {\n var matches = nodeMatches.get(node);\n matches.push(matcher);\n } else {\n nodeMatches.set(node, [matcher]);\n }\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }, {\n key: \"prepareTextMatching\",\n value: function prepareTextMatching() {\n var textMatchers = [matchPlainText];\n this.matchers.forEach(function (pair) {\n var _pair2 = _slicedToArray(pair, 2),\n selector = _pair2[0],\n matcher = _pair2[1];\n if (HTML_TEXT_MATCHERS.indexOf(matcher) === -1 && selector === TEXT_NODE) {\n textMatchers.push(matcher);\n }\n });\n return textMatchers;\n }\n }]);\n return Clipboard;\n}(_core_module__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z);\nClipboard.DEFAULTS = {\n matchers: []\n};\nfunction applyFormat(delta, format, value) {\n if (_typeof(format) === 'object') {\n return Object.keys(format).reduce(function (newDelta, key) {\n return applyFormat(newDelta, key, format[key]);\n }, delta);\n }\n return delta.reduce(function (newDelta, op) {\n if (op.attributes && op.attributes[format]) {\n return newDelta.push(op);\n }\n var formats = value ? _defineProperty({}, format, value) : {};\n return newDelta.insert(op.insert, _objectSpread(_objectSpread({}, formats), op.attributes));\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n}\nfunction deltaEndsWith(delta, text) {\n var endText = '';\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n ) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].indexOf(node.tagName.toLowerCase()) !== -1;\n}\nvar preNodes = new WeakMap();\nfunction isPre(node) {\n if (node == null) return false;\n if (!preNodes.has(node)) {\n if (node.tagName === 'PRE') {\n preNodes.set(node, true);\n } else {\n preNodes.set(node, isPre(node.parentNode));\n }\n }\n return preNodes.get(node);\n}\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches, multilineParagraph) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta, scroll);\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n return Array.from(node.childNodes || []).reduce(function (delta, childNode, idx, allNodes) {\n var childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches, multilineParagraph);\n var nextNode = idx < allNodes.length - 1 && allNodes[idx + 1];\n var isNextNodeList = nextNode && nextNode.nodeType === node.ELEMENT_NODE && ['ul', 'ol'].indexOf(nextNode.tagName.toLowerCase()) > -1;\n if (childNode.nodeType === node.ELEMENT_NODE) {\n multilineParagraph = childNode.tagName.toLowerCase() === 'br';\n childrenDelta = elementMatchers.reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n childrenDelta = (nodeMatches.get(childNode) || []).reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n }\n var newDelta = delta.concat(childrenDelta);\n if (multilineParagraph && isNextNodeList) {\n newDelta.insert('\\n');\n }\n return newDelta;\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n }\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())();\n}\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\nfunction matchAttributor(node, delta, scroll) {\n if (['TD', 'TH', 'TR', 'TABLE'].indexOf(node.tagName) === -1) {\n var attributes = parchment__WEBPACK_IMPORTED_MODULE_1__.Attributor.keys(node);\n var classes = parchment__WEBPACK_IMPORTED_MODULE_1__.ClassAttributor.keys(node);\n var styles = parchment__WEBPACK_IMPORTED_MODULE_1__.StyleAttributor.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n return applyFormat(delta, formats);\n }\n }\n return delta;\n}\nfunction matchBlot(node, delta, scroll) {\n var match = scroll.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__.EmbedBlot) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().insert(embed, match.formats(node, scroll));\n }\n } else {\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__.BlockBlot && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n if (typeof match.formats === 'function') {\n return applyFormat(delta, match.blotName, match.formats(node, scroll));\n }\n }\n return delta;\n}\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\nfunction matchCodeBlock(node, delta, scroll) {\n var match = scroll.query('code-block');\n var language = match ? match.formats(node, scroll) : true;\n return applyFormat(delta, 'code-block', language);\n}\nfunction matchIgnore() {\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())();\n}\nfunction matchIndent(node, delta, scroll) {\n var match = scroll.query(node);\n if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1;\n var parent = node.parentNode;\n while (parent != null) {\n if (['OL', 'UL'].indexOf(parent.tagName) !== -1) {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.reduce(function (composed, op) {\n if (op.attributes && typeof op.attributes.indent === 'number') {\n return composed.push(op);\n }\n return composed.insert(op.insert, _objectSpread({\n indent: indent\n }, op.attributes || {}));\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n}\nfunction matchList(node, delta) {\n var list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n return applyFormat(delta, 'list', list);\n}\nfunction matchNewline(node, delta, scroll) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node)) {\n return delta.insert('\\n');\n }\n if (delta.length() > 0 && node.nextSibling) {\n var nextSibling = node.nextSibling;\n while (nextSibling != null) {\n if (isLine(nextSibling)) {\n return delta.insert('\\n');\n }\n var match = scroll.query(nextSibling);\n if ((match === null || match === void 0 ? void 0 : match.prototype) instanceof _blots_block__WEBPACK_IMPORTED_MODULE_2__/* .BlockEmbed */ .i2) {\n return delta.insert('\\n');\n }\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n return delta;\n}\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n ['height', 'width'].forEach(function (dimension) {\n var isCell = ['TD', 'TH'].indexOf(node.tagName) !== -1;\n var isTable = node.tagName === 'TABLE';\n if ((isCell || isTable) && style[dimension]) {\n var name = \"\".concat(isTable ? 'table' : 'cell').concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_14__/* [\"default\"] */ .Z)(dimension));\n formats[name] = style[dimension];\n }\n });\n if (style.fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.textDecoration.indexOf('underline') !== -1) {\n formats.underline = true;\n }\n if (style.textDecoration.indexOf('line-through') !== -1) {\n formats.strike = true;\n }\n if (style.fontWeight.indexOf('bold') === 0 || parseInt(style.fontWeight, 10) >= 700) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n return new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().insert('\\t').concat(delta);\n }\n return delta;\n}\nfunction matchPlainText(node, delta) {\n var text = node.data || '';\n text = text.replace(/\\r\\n/g, '\\n');\n return delta.insert(text);\n}\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && text.indexOf('\\n') !== -1) {\n return delta;\n }\n if (!isPre(node)) {\n var replacer = function replacer(collapse, match) {\n var replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return replaced.length < 1 && collapse ? ' ' : replaced;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\n\n/***/ }),\n\n/***/ 2613:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ History)\n/* harmony export */ });\n/* unused harmony export getLastChangeIndex */\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(281);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7094);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8034);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar History = /*#__PURE__*/function (_Module) {\n _inherits(History, _Module);\n var _super = _createSuper(History);\n function History(quill, options) {\n var _this;\n _classCallCheck(this, History);\n _this = _super.call(this, quill, options);\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.EDITOR_CHANGE */ .ZP.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].events.TEXT_CHANGE */ .ZP.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .ZP.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true\n }, _this.undo.bind(_assertThisInitialized(_this)));\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n if ((0,_utils_has_window__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)() && /Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'y',\n shortKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n }\n _this.quill.root.addEventListener('beforeinput', function (event) {\n if (event.inputType === 'historyUndo') {\n _this.undo();\n event.preventDefault();\n } else if (event.inputType === 'historyRedo') {\n _this.redo();\n event.preventDefault();\n }\n });\n return _this;\n }\n _createClass(History, [{\n key: \"change\",\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n var base = this.quill.getContents();\n var inverseDelta = delta.invert(base);\n this.stack[dest].push(inverseDelta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(this.quill.scroll, delta);\n this.quill.setSelection(index);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: \"cutoff\",\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: \"record\",\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = changeDelta.invert(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta);\n } else {\n this.lastRecorded = timestamp;\n }\n if (undoDelta.length() === 0) return;\n this.stack.undo.push(undoDelta);\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: \"redo\",\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: \"transform\",\n value: function transform(delta) {\n transformStack(this.stack.undo, delta);\n transformStack(this.stack.redo, delta);\n }\n }, {\n key: \"undo\",\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n return History;\n}(_core_module__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\nfunction transformStack(stack, delta) {\n var remoteDelta = delta;\n for (var i = stack.length - 1; i >= 0; i -= 1) {\n var oldDelta = stack[i];\n stack[i] = remoteDelta.transform(oldDelta, true);\n remoteDelta = oldDelta.transform(remoteDelta);\n if (stack[i].length() === 0) {\n stack.splice(i, 1);\n }\n }\n}\nfunction endsWithNewlineChange(scroll, delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK) != null;\n });\n }\n return false;\n}\nfunction getLastChangeIndex(scroll, delta) {\n var deleteLength = delta.reduce(function (length, op) {\n return length + (op.delete || 0);\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(scroll, delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 3071:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"ZP\": () => (/* binding */ Keyboard),\n \"WQ\": () => (/* binding */ deleteRange)\n});\n\n// UNUSED EXPORTS: SHORTKEY, normalize\n\n// EXTERNAL MODULE: ./node_modules/lodash.clonedeep/index.js\nvar lodash_clonedeep = __webpack_require__(8805);\nvar lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);\n// EXTERNAL MODULE: ./node_modules/lodash.isequal/index.js\nvar lodash_isequal = __webpack_require__(2722);\nvar lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(9098);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(1233);\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(281);\n// EXTERNAL MODULE: ./core/logger.js\nvar logger = __webpack_require__(3122);\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(7094);\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(8034);\n;// CONCATENATED MODULE: ./utils/get_scroll_into_view_config.js\nfunction getScrollIntoViewConfig(element) {\n var _window = window,\n windowHeight = _window.innerHeight;\n var _element$getBoundingC = element.getBoundingClientRect(),\n elemTop = _element$getBoundingC.y,\n elemBottom = _element$getBoundingC.bottom;\n if (elemTop < 0) {\n return true; // scroll to the top\n }\n\n if (elemBottom >= windowHeight) {\n return false; // scroll to the bottom\n }\n\n return null;\n}\n;// CONCATENATED MODULE: ./modules/keyboard.js\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar debug = (0,logger/* default */.Z)('quill:keyboard');\nvar KEY_NAMES = {\n backspace: 'backspace',\n tab: 'tab',\n enter: 'enter',\n escape: 'escape',\n pageup: 'pageUp',\n pagedown: 'pageDown',\n end: 'end',\n home: 'home',\n arrowleft: 'leftArrow',\n arrowup: 'upArrow',\n arrowright: 'rightArrow',\n arrowdown: 'downArrow',\n delete: 'del',\n ' ': 'space',\n '*': 'asterisk',\n '-': 'minus',\n alt: 'alt',\n control: 'control',\n shift: 'shift',\n // IE11:\n left: 'leftArrow',\n up: 'upArrow',\n right: 'rightArrow',\n down: 'downArrow',\n multiply: 'asterisk',\n spacebar: 'space',\n del: 'del',\n subtract: 'minus',\n esc: 'escape'\n};\nvar KEY_CODES = {\n // iOS 10.2 and lower didn't supports KeyboardEvent.key\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 27: 'escape',\n 33: 'pageUp',\n 34: 'pageDown',\n 35: 'end',\n 36: 'home',\n 37: 'leftArrow',\n 38: 'upArrow',\n 39: 'rightArrow',\n 40: 'downArrow',\n 46: 'del',\n 32: 'space',\n 106: 'asterisk',\n 109: 'minus',\n 189: 'minus',\n 173: 'minus',\n 16: 'shift',\n 17: 'control',\n 18: 'alt'\n};\nvar SHORTKEY = (0,has_window/* default */.Z)() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\nvar Keyboard = /*#__PURE__*/function (_Module) {\n _inherits(Keyboard, _Module);\n var _super = _createSuper(Keyboard);\n function Keyboard(quill, options) {\n var _this;\n _classCallCheck(this, Keyboard);\n _this = _super.call(this, quill, options);\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addInternalBindings();\n _this.listen();\n return _this;\n }\n _createClass(Keyboard, [{\n key: \"addInternalBindings\",\n value: function addInternalBindings() {\n var _this2 = this;\n this.quill.once(core_quill/* default.events.CONTENT_SETTED */.ZP.events.CONTENT_SETTED, function () {\n _this2.addBinding({\n key: 'enter',\n shiftKey: null\n }, _this2.handleEnter);\n _this2.addBinding({\n key: 'enter',\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n if ((0,has_window/* default */.Z)() && /Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: true\n }, _this2.handleBackspace);\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: true\n }, _this2.handleDelete);\n } else {\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, _this2.handleBackspace);\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, _this2.handleDelete);\n }\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: false\n }, _this2.handleDeleteRange);\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: false\n }, _this2.handleDeleteRange);\n _this2.addBinding({\n key: 'backspace',\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, _this2.handleBackspace);\n });\n }\n }, {\n key: \"addBinding\",\n value: function addBinding(keyBinding) {\n var _this3 = this;\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var binding = normalize(keyBinding);\n if (binding == null) {\n debug.warn('Attempted to add invalid keyboard binding', binding);\n return;\n }\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n if (typeof handler === 'function') {\n handler = {\n handler: handler\n };\n }\n var keyPropery = binding.which ? 'which' : 'key';\n var keys = Array.isArray(binding[keyPropery]) ? binding[keyPropery] : [binding[keyPropery]];\n keys.forEach(function (key) {\n var singleBinding = _objectSpread(_objectSpread(_objectSpread({}, binding), {}, {\n key: key\n }, context), handler);\n _this3.bindings[singleBinding.key] = _this3.bindings[singleBinding.key] || [];\n _this3.bindings[singleBinding.key].push(singleBinding);\n });\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this4 = this;\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented || evt.isComposing) return;\n _this4.raiseOnKeydownCallback(evt);\n var keyName = Keyboard.normalizeKeyName(evt);\n var bindings = (_this4.bindings[keyName] || []).concat(_this4.bindings[evt.which] || []);\n var matches = bindings.filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (matches.length === 0) return;\n var range = _this4.quill.getSelection();\n if (range == null || !_this4.quill.hasFocus()) return;\n var _this4$quill$getLine = _this4.quill.getLine(range.index),\n _this4$quill$getLine2 = _slicedToArray(_this4$quill$getLine, 2),\n line = _this4$quill$getLine2[0],\n offset = _this4$quill$getLine2[1];\n var _this4$quill$getLeaf = _this4.quill.getLeaf(range.index),\n _this4$quill$getLeaf2 = _slicedToArray(_this4$quill$getLeaf, 2),\n leafStart = _this4$quill$getLeaf2[0],\n offsetStart = _this4$quill$getLeaf2[1];\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this4.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n var prefixText = leafStart instanceof parchment.TextBlot ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof parchment.TextBlot ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this4.quill.getFormat(range),\n line: line,\n offset: offset,\n prefix: prefixText,\n suffix: suffixText,\n event: evt\n };\n var prevented = false;\n matches.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n return false;\n }\n if (binding.empty != null && binding.empty !== curContext.empty) {\n return false;\n }\n if (binding.offset != null && binding.offset !== curContext.offset) {\n return false;\n }\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return lodash_isequal_default()(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n return false;\n }\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n return false;\n }\n var handlerResult = binding.handler.call(_this4, range, curContext, binding);\n var preventAfterAllMatches = handlerResult === null || handlerResult === void 0 ? void 0 : handlerResult.preventAfterAllMatches;\n prevented = handlerResult !== true || preventAfterAllMatches;\n return prevented && !preventAfterAllMatches;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }, {\n key: \"raiseOnKeydownCallback\",\n value: function raiseOnKeydownCallback(event) {\n var callback = this.options.onKeydown;\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"handleBackspace\",\n value: function handleBackspace(range, context) {\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n var formats = {};\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 1),\n line = _this$quill$getLine2[0];\n var delta = new (Delta_default())().retain(range.index - length).delete(length);\n if (context.offset === 0) {\n // Always deleting newline here, length always 1\n var _this$quill$getLine3 = this.quill.getLine(range.index - 1),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 1),\n prev = _this$quill$getLine4[0];\n if (prev) {\n var isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n var isPrevLineTable = prev.statics.blotName.startsWith('table');\n var isLineEmpty = line.statics.blotName === 'block' && line.length() <= 1;\n if (isPrevLineTable) {\n if (isLineEmpty) {\n line.remove();\n }\n this.quill.setSelection(range.index - 1);\n }\n if (!isPrevLineEmpty && !isPrevLineTable) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = Delta.AttributeMap.diff(curFormats, prevFormats) || {};\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n var formatDelta = new (Delta_default())().retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDelete\",\n value: function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {};\n var _this$quill$getLine5 = this.quill.getLine(range.index),\n _this$quill$getLine6 = _slicedToArray(_this$quill$getLine5, 1),\n line = _this$quill$getLine6[0];\n var delta = new (Delta_default())().retain(range.index).delete(length);\n if (context.offset >= line.length() - 1) {\n var _this$quill$getLine7 = this.quill.getLine(range.index + 1),\n _this$quill$getLine8 = _slicedToArray(_this$quill$getLine7, 1),\n next = _this$quill$getLine8[0];\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = Delta.AttributeMap.diff(curFormats, nextFormats) || {};\n if (Object.keys(formats).length > 0) {\n delta = delta.retain(next.length() - 1).retain(1, formats);\n }\n }\n }\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDeleteRange\",\n value: function handleDeleteRange(range, context) {\n this.raiseOnKeydownCallback(context.event);\n deleteRange({\n range: range,\n quill: this.quill\n });\n this.quill.focus();\n }\n }, {\n key: \"handleEnter\",\n value: function handleEnter(range, context) {\n var _this5 = this;\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this5.quill.scroll.query(format, parchment.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n return formats;\n }, {});\n var delta = new (Delta_default())().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(range.index + 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n this.quill.focus();\n var _this$quill$getLine9 = this.quill.getLine(range.index + 1),\n _this$quill$getLine10 = _slicedToArray(_this$quill$getLine9, 1),\n line = _this$quill$getLine10[0];\n var scrollConfig = getScrollIntoViewConfig(line.domNode);\n if (scrollConfig !== null) {\n line.domNode.scrollIntoView(scrollConfig);\n }\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'code' || name === 'link') return;\n _this5.raiseOnKeydownCallback(context.event);\n _this5.quill.format(name, context.format[name], core_quill/* default.sources.USER */.ZP.sources.USER);\n });\n }\n }], [{\n key: \"match\",\n value: function match(evt, binding) {\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === Keyboard.normalizeKeyName(evt) || binding.key === evt.which;\n }\n }, {\n key: \"normalizeKeyName\",\n value: function normalizeKeyName(_ref3) {\n var key = _ref3.key,\n which = _ref3.which;\n var isKeySupported = !!key;\n var normalizedKey = isKeySupported ? key : which;\n if (normalizedKey) {\n if (isKeySupported) {\n normalizedKey = KEY_NAMES[normalizedKey.toLowerCase()] || normalizedKey;\n } else {\n normalizedKey = KEY_CODES[normalizedKey] || String.fromCharCode(normalizedKey);\n }\n }\n return normalizedKey;\n }\n }]);\n return Keyboard;\n}(core_module/* default */.Z);\nKeyboard.DEFAULTS = {\n bindings: {\n bold: makeFormatHandler('bold', 66),\n italic: makeFormatHandler('italic', 73),\n underline: makeFormatHandler('underline', 85),\n indent: {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 'tab',\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', core_quill/* default.sources.USER */.ZP.sources.USER);\n return false;\n }\n },\n outdent: {\n key: 'tab',\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', core_quill/* default.sources.USER */.ZP.sources.USER);\n return false;\n }\n },\n 'outdent backspace': {\n key: 'backspace',\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', core_quill/* default.sources.USER */.ZP.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: 'tab',\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n },\n tab: {\n key: 'tab',\n handler: function handler(range, _ref4) {\n var format = _ref4.format;\n var isInTable = format.tableCellLine || format.tableHeaderCellLine || format.tableHeaderCell || format.table;\n if (isInTable) return true;\n this.quill.history.cutoff();\n var delta = new (Delta_default())().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n return false;\n }\n },\n 'blockquote empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['blockquote'],\n empty: true,\n handler: function handler() {\n this.quill.format('blockquote', false, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n },\n 'list empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n var formats = {\n list: false\n };\n if (context.format.indent) {\n formats.indent = false;\n }\n this.quill.formatLine(range.index, range.length, formats, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n },\n 'checklist enter': {\n key: 'enter',\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler: function handler(range) {\n var _this$quill$getLine11 = this.quill.getLine(range.index),\n _this$quill$getLine12 = _slicedToArray(_this$quill$getLine11, 2),\n line = _this$quill$getLine12[0],\n offset = _this$quill$getLine12[1];\n var formats = _objectSpread(_objectSpread({}, line.formats()), {}, {\n list: 'checked'\n });\n var delta = new (Delta_default())().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(range.index + 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: 'enter',\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _this$quill$getLine13 = this.quill.getLine(range.index),\n _this$quill$getLine14 = _slicedToArray(_this$quill$getLine13, 2),\n line = _this$quill$getLine14[0],\n offset = _this$quill$getLine14[1];\n var delta = new (Delta_default())().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(range.index + 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: 'space',\n shiftKey: null,\n collapsed: true,\n format: {\n 'code-block': false,\n blockquote: false,\n table: false\n },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n if (this.quill.scroll.query('list') == null) return true;\n var length = context.prefix.length;\n var _this$quill$getLine15 = this.quill.getLine(range.index),\n _this$quill$getLine16 = _slicedToArray(_this$quill$getLine15, 2),\n line = _this$quill$getLine16[0],\n offset = _this$quill$getLine16[1];\n if (offset > length) return true;\n var value;\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':\n case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.history.cutoff();\n var delta = new (Delta_default())().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.raiseOnKeydownCallback(context.event);\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n return false;\n }\n },\n 'code exit': {\n key: 'enter',\n collapsed: true,\n format: ['code-block'],\n prefix: /^$/,\n suffix: /^\\s*$/,\n handler: function handler(range) {\n var _this$quill$getLine17 = this.quill.getLine(range.index),\n _this$quill$getLine18 = _slicedToArray(_this$quill$getLine17, 2),\n line = _this$quill$getLine18[0],\n offset = _this$quill$getLine18[1];\n var numLines = 2;\n var cur = line;\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n cur = cur.prev;\n numLines -= 1;\n // Requisite prev lines are empty\n if (numLines <= 0) {\n var delta = new (Delta_default())().retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(range.index - 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n return false;\n }\n }\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('leftArrow', false),\n 'embed left shift': makeEmbedArrowHandler('leftArrow', true),\n 'embed right': makeEmbedArrowHandler('rightArrow', false),\n 'embed right shift': makeEmbedArrowHandler('rightArrow', true)\n }\n};\nfunction makeCodeBlockHandler(indent) {\n return {\n key: 'tab',\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = this.quill.scroll.query('code-block');\n var lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n var index = range.index,\n length = range.length;\n lines.forEach(function (line, i) {\n if (indent) {\n line.insertAt(0, CodeBlock.TAB);\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.domNode.textContent.indexOf(CodeBlock.TAB) === 0) {\n line.deleteAt(0, CodeBlock.TAB.length);\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n });\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(index, length, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n }\n };\n}\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var where = key === 'leftArrow' ? 'prefix' : 'suffix';\n return _defineProperty(_defineProperty({\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, where, /^$/), \"handler\", function handler(range) {\n var index = range.index;\n if (key === 'rightArrow') {\n index += range.length + 1;\n }\n var _this$quill$getLeaf = this.quill.getLeaf(index),\n _this$quill$getLeaf2 = _slicedToArray(_this$quill$getLeaf, 1),\n leaf = _this$quill$getLeaf2[0];\n if (!(leaf instanceof parchment.EmbedBlot)) return true;\n if (key === 'leftArrow') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n return false;\n });\n}\nfunction makeFormatHandler(format, which) {\n return {\n key: format[0],\n which: which,\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], core_quill/* default.sources.USER */.ZP.sources.USER);\n return {\n preventAfterAllMatches: true\n };\n }\n };\n}\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n binding = {\n key: binding\n };\n } else if (_typeof(binding) === 'object') {\n binding = lodash_clonedeep_default()(binding);\n } else {\n return null;\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\nfunction deleteRange(_ref6) {\n var quill = _ref6.quill,\n range = _ref6.range;\n var lines = quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = Delta.AttributeMap.diff(lastFormats, firstFormats) || {};\n }\n quill.deleteText(range, core_quill/* default.sources.USER */.ZP.sources.USER);\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n quill.setSelection(range.index, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n}\n\n\n/***/ }),\n\n/***/ 9072:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZP\": () => (/* binding */ Syntax)\n/* harmony export */ });\n/* unused harmony exports CodeBlock, CodeToken */\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1233);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6603);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(281);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7094);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6446);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4122);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3657);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8222);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7309);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5635);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8034);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\nvar TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__.ClassAttributor('code-token', 'hljs', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.INLINE\n});\nvar CodeToken = /*#__PURE__*/function (_Inline) {\n _inherits(CodeToken, _Inline);\n var _super = _createSuper(CodeToken);\n function CodeToken(scroll, domNode, value) {\n var _this;\n _classCallCheck(this, CodeToken);\n _this = _super.call(this, scroll, domNode, value);\n TokenAttributor.add(_this.domNode, value);\n return _this;\n }\n _createClass(CodeToken, [{\n key: \"format\",\n value: function format(_format, value) {\n if (_format !== CodeToken.blotName) {\n _get(_getPrototypeOf(CodeToken.prototype), \"format\", this).call(this, _format, value);\n } else if (value) {\n TokenAttributor.add(this.domNode, value);\n } else {\n TokenAttributor.remove(this.domNode);\n this.domNode.classList.remove(this.statics.className);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_get2 = _get(_getPrototypeOf(CodeToken.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n if (!TokenAttributor.value(this.domNode)) {\n this.unwrap();\n }\n }\n }], [{\n key: \"formats\",\n value: function formats(node, scroll) {\n while (node != null && node !== scroll.domNode) {\n if (node.classList && node.classList.contains(_formats_code__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"].className */ .ZP.className)) {\n return _get(_getPrototypeOf(CodeToken), \"formats\", this).call(this, node, scroll);\n }\n node = node.parentNode;\n }\n return undefined;\n }\n }]);\n return CodeToken;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\nvar SyntaxCodeBlock = /*#__PURE__*/function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n var _super2 = _createSuper(SyntaxCodeBlock);\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n return _super2.apply(this, arguments);\n }\n _createClass(SyntaxCodeBlock, [{\n key: \"format\",\n value:\n // Syntax module will register\n\n function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-language', value);\n } else {\n _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"replaceWith\",\n value: function replaceWith(name, value) {\n this.formatAt(0, this.length(), CodeToken.blotName, false);\n return _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"replaceWith\", this).call(this, name, value);\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(SyntaxCodeBlock), \"create\", this).call(this, value);\n if (typeof value === 'string') {\n domNode.setAttribute('data-language', value);\n }\n return domNode;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-language') || 'plain';\n }\n }, {\n key: \"register\",\n value: function register() {}\n }]);\n return SyntaxCodeBlock;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"] */ .ZP);\nvar SyntaxCodeBlockContainer = /*#__PURE__*/function (_CodeBlockContainer) {\n _inherits(SyntaxCodeBlockContainer, _CodeBlockContainer);\n var _super3 = _createSuper(SyntaxCodeBlockContainer);\n function SyntaxCodeBlockContainer() {\n _classCallCheck(this, SyntaxCodeBlockContainer);\n return _super3.apply(this, arguments);\n }\n _createClass(SyntaxCodeBlockContainer, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"attach\", this).call(this);\n this.forceNext = false;\n this.scroll.emitMount(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n }\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }, {\n key: \"highlight\",\n value: function highlight(_highlight) {\n var _this2 = this;\n var forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.children.head == null) return;\n var nodes = Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this2.uiNode;\n });\n var text = \"\".concat(nodes.map(function (node) {\n return node.textContent;\n }).join('\\n'), \"\\n\");\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n if (forced || this.forceNext || this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n var oldDelta = this.children.reduce(function (delta, child) {\n return delta.concat((0,_blots_block__WEBPACK_IMPORTED_MODULE_5__/* .blockDelta */ .qz)(child, false));\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n var delta = _highlight(text, language);\n oldDelta.diff(delta).reduce(function (index, _ref) {\n var retain = _ref.retain,\n attributes = _ref.attributes;\n // Should be all retains\n if (!retain) return index;\n if (attributes) {\n Object.keys(attributes).forEach(function (format) {\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].indexOf(format) !== -1) {\n _this2.formatAt(index, retain, format, attributes[format]);\n }\n });\n }\n return index + retain;\n }, 0);\n }\n this.cachedText = text;\n this.forceNext = false;\n }\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n var _this$children$find = this.children.find(index),\n _this$children$find2 = _slicedToArray(_this$children$find, 1),\n codeBlock = _this$children$find2[0];\n var language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n return \"<pre data-language=\\\"\".concat(language, \"\\\">\\n\").concat(this.code(index, length), \"\\n</pre>\");\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"optimize\", this).call(this, context);\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n if (language !== this.uiNode.value) {\n this.uiNode.value = language;\n }\n }\n }\n }]);\n return SyntaxCodeBlockContainer;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__/* .CodeBlockContainer */ .se);\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z, _blots_text__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"] */ .Z, _blots_break__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z];\nvar Syntax = /*#__PURE__*/function (_Module) {\n _inherits(Syntax, _Module);\n var _super4 = _createSuper(Syntax);\n function Syntax(quill, options) {\n var _this3;\n _classCallCheck(this, Syntax);\n _this3 = _super4.call(this, quill, options);\n if (_this3.options.hljs == null) {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n _this3.languages = _this3.options.languages.reduce(function (memo, _ref2) {\n var key = _ref2.key;\n memo[key] = true;\n return memo;\n }, {});\n _this3.highlightBlot = _this3.highlightBlot.bind(_assertThisInitialized(_this3));\n _this3.initListener();\n _this3.initTimer();\n return _this3;\n }\n _createClass(Syntax, [{\n key: \"initListener\",\n value: function initListener() {\n var _this4 = this;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SCROLL_BLOT_MOUNT */ .ZP.events.SCROLL_BLOT_MOUNT, function (blot) {\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n var select = _this4.quill.root.ownerDocument.createElement('select');\n _this4.options.languages.forEach(function (_ref3) {\n var key = _ref3.key,\n label = _ref3.label;\n var option = select.ownerDocument.createElement('option');\n option.textContent = label;\n option.setAttribute('value', key);\n select.appendChild(option);\n });\n select.addEventListener('change', function () {\n blot.format(SyntaxCodeBlock.blotName, select.value);\n _this4.quill.root.focus(); // Prevent scrolling\n _this4.highlight(blot, true);\n });\n if (blot.uiNode == null) {\n blot.attachUI(select);\n if (blot.children.head) {\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n }\n }\n });\n }\n }, {\n key: \"initTimer\",\n value: function initTimer() {\n var _this5 = this;\n var timer = null;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].events.SCROLL_OPTIMIZE */ .ZP.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this5.highlight();\n timer = null;\n }, _this5.options.interval);\n });\n }\n }, {\n key: \"highlight\",\n value: function highlight() {\n var _this6 = this;\n var blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.quill.selection.composing) return;\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n var range = this.quill.getSelection();\n var blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n blots.forEach(function (container) {\n container.highlight(_this6.highlightBlot, force);\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n }\n }\n }, {\n key: \"highlightBlot\",\n value: function highlightBlot(text) {\n var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n language = this.languages[language] ? language : 'plain';\n if (language === 'plain') {\n return (0,_blots_text__WEBPACK_IMPORTED_MODULE_8__/* .escapeText */ .b)(text).split('\\n').reduce(function (delta, line, i) {\n if (i !== 0) {\n delta.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"].blotName */ .ZP.blotName, language));\n }\n return delta.insert(line);\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())());\n }\n var container = this.quill.root.ownerDocument.createElement('div');\n container.classList.add(_formats_code__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"].className */ .ZP.className);\n container.innerHTML = this.options.hljs.highlight(language, text).value;\n return (0,_clipboard__WEBPACK_IMPORTED_MODULE_10__/* .traverse */ .fw)(this.quill.scroll, container, [function (node, delta) {\n var value = TokenAttributor.value(node);\n if (value) {\n return delta.compose(new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(delta.length(), _defineProperty({}, CodeToken.blotName, value)));\n }\n return delta;\n }], [function (node, delta) {\n return node.data.split('\\n').reduce(function (memo, nodeText, i) {\n if (i !== 0) memo.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__/* [\"default\"].blotName */ .ZP.blotName, language));\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n }], [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].register */ .ZP.register(CodeToken, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].register */ .ZP.register(SyntaxCodeBlock, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"].register */ .ZP.register(SyntaxCodeBlockContainer, true);\n }\n }]);\n return Syntax;\n}(_core_module__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z);\nSyntax.DEFAULTS = {\n hljs: function () {\n if ((0,_utils_has_window__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)()) {\n return window.hljs;\n }\n return null;\n }(),\n interval: 1000,\n languages: [{\n key: 'plain',\n label: 'Plain'\n }, {\n key: 'bash',\n label: 'Bash'\n }, {\n key: 'cpp',\n label: 'C++'\n }, {\n key: 'cs',\n label: 'C#'\n }, {\n key: 'css',\n label: 'CSS'\n }, {\n key: 'diff',\n label: 'Diff'\n }, {\n key: 'xml',\n label: 'HTML/XML'\n }, {\n key: 'java',\n label: 'Java'\n }, {\n key: 'javascript',\n label: 'Javascript'\n }, {\n key: 'markdown',\n label: 'Markdown'\n }, {\n key: 'php',\n label: 'PHP'\n }, {\n key: 'python',\n label: 'Python'\n }, {\n key: 'ruby',\n label: 'Ruby'\n }, {\n key: 'sql',\n label: 'SQL'\n }]\n};\n\n// eslint-disable-next-line no-restricted-exports\n\n\n/***/ }),\n\n/***/ 867:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1233);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(281);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7094);\n/* harmony import */ var _formats_table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1969);\n/* harmony import */ var _utils_is_defined__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5874);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5635);\n/* harmony import */ var _utils_make_table_arrow_handler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9466);\n/* harmony import */ var _utils_prepare_attr_matcher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7896);\n/* harmony import */ var _formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(319);\n/* harmony import */ var _formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1342);\n/* harmony import */ var _utils_insert_pr_above__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2480);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\nvar EMPTY_RESULT = [null, null, null, -1];\nvar ELEMENT_NODE = 1;\nvar Table = /*#__PURE__*/function (_Module) {\n _inherits(Table, _Module);\n var _super = _createSuper(Table);\n function Table() {\n var _this;\n _classCallCheck(this, Table);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.tableBlots = [_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .CellLine.blotName */ .zW.blotName, _formats_table__WEBPACK_IMPORTED_MODULE_4__/* .HeaderCellLine.blotName */ .iD.blotName];\n _this.tableBlots.forEach(function (blotName) {\n _this.quill.editor.addImmediateFormat(blotName);\n });\n _this.integrateClipboard();\n _this.addKeyboardHandlers();\n _this.listenBalanceCells();\n return _this;\n }\n _createClass(Table, [{\n key: \"integrateClipboard\",\n value: function integrateClipboard() {\n var _this2 = this;\n this.tableBlots.forEach(function (blotName) {\n _this2.quill.clipboard.addTableBlot(blotName);\n });\n this.quill.clipboard.addMatcher('td, th', matchCell);\n this.quill.clipboard.addMatcher('table', (0,_utils_prepare_attr_matcher__WEBPACK_IMPORTED_MODULE_7__/* .prepareAttributeMatcher */ .F)(_formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_8__/* .TABLE_ATTRIBUTORS */ .Zt));\n this.quill.clipboard.addMatcher('td, th', (0,_utils_prepare_attr_matcher__WEBPACK_IMPORTED_MODULE_7__/* .prepareCellAttributeMatcher */ .a)(_formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_9__/* .CELL_ATTRIBUTORS */ .h6));\n }\n }, {\n key: \"addKeyboardHandlers\",\n value: function addKeyboardHandlers() {\n var _this3 = this;\n var bindings = Table.keyboardBindings;\n Object.keys(bindings).forEach(function (name) {\n if (bindings[name]) {\n _this3.quill.keyboard.addBinding(bindings[name]);\n }\n });\n }\n }, {\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableContainer */ .xJ).forEach(function (table) {\n table.balanceCells();\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn() {\n var _this$getTable = this.getTable(),\n _this$getTable2 = _slicedToArray(_this$getTable, 3),\n table = _this$getTable2[0],\n cell = _this$getTable2[2];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(cell)) {\n return;\n }\n table.deleteColumn(cell.cellOffset());\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = _slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(row)) {\n return;\n }\n row.remove();\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = _slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(table)) {\n return;\n }\n var offset = table.offset();\n table.remove();\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n this.quill.setSelection(offset, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(range)) {\n return EMPTY_RESULT;\n }\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 2),\n cellLine = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(cellLine) || this.tableBlots.indexOf(cellLine.statics.blotName) === -1) {\n return EMPTY_RESULT;\n }\n var cell = cellLine.parent;\n var row = cell.parent;\n var table = row.parent.parent;\n return [table, row, cell, offset];\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(offset) {\n var range = this.quill.getSelection();\n var _this$getTable7 = this.getTable(range),\n _this$getTable8 = _slicedToArray(_this$getTable7, 3),\n table = _this$getTable8[0],\n row = _this$getTable8[1],\n cell = _this$getTable8[2];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(cell)) {\n return;\n }\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n var shift = row.rowOffset();\n if (offset === 0) {\n shift += 1;\n }\n this.quill.setSelection(range.index + shift, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = _slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(cell)) {\n return;\n }\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n if (offset > 0) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var range = this.quill.getSelection();\n var _this$getTable11 = this.getTable(range),\n _this$getTable12 = _slicedToArray(_this$getTable11, 3),\n table = _this$getTable12[0],\n cell = _this$getTable12[2];\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(cell)) {\n return;\n }\n table.insertHeaderRow();\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n if (!(0,_utils_is_defined__WEBPACK_IMPORTED_MODULE_11__/* [\"default\"] */ .Z)(range)) {\n return;\n }\n var delta = new Array(rows).fill(0).reduce(function (memo) {\n var rowId = (0,_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .tableId */ .Lv)();\n new Array(columns).fill('\\n').forEach(function (text) {\n memo.insert(text, {\n tableCellLine: {\n row: rowId,\n cell: (0,_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .tableId */ .Lv)()\n }\n });\n });\n return memo;\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(range.index));\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n this.quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"tableFormats\",\n value: function tableFormats() {\n return this.tableBlots;\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this4 = this;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].events.SCROLL_OPTIMIZE */ .ZP.events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this4.quill.once(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].events.TEXT_CHANGE */ .ZP.events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER) return;\n _this4.balanceTables();\n });\n return true;\n }\n return false;\n });\n });\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].events.CONTENT_SETTED */ .ZP.events.CONTENT_SETTED, function () {\n _this4.quill.once(_core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].events.TEXT_CHANGE */ .ZP.events.TEXT_CHANGE, function () {\n _this4.balanceTables();\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .CellLine */ .zW, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .HeaderCellLine */ .iD, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableHeaderCell */ .xs, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableCell */ .pj, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableHeaderRow */ .KA, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableRow */ .SC, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableBody */ .RM, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableHeader */ .xD, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_formats_table__WEBPACK_IMPORTED_MODULE_4__/* .TableContainer */ .xJ, true);\n [_formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_8__/* .TABLE_FORMATS */ .li, _formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_9__/* .CELL_FORMATS */ .Du].forEach(function (formats) {\n Object.keys(formats).forEach(function (name) {\n _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].register */ .ZP.register(_defineProperty({}, \"formats/\".concat(name), formats[name]), true);\n });\n });\n }\n }]);\n return Table;\n}(_core_module__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z);\nTable.keyboardBindings = {\n 'table backspace': {\n key: 'backspace',\n format: ['tableCellLine', 'tableHeaderCellLine'],\n collapsed: true,\n offset: 0,\n handler: function handler(range) {\n var _this$quill$getLine3 = this.quill.getLine(range.index),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 1),\n line = _this$quill$getLine4[0];\n if (!line.prev || ['tableCellLine', 'tableHeaderCellLine'].indexOf(line.prev.statics.blotName) === -1) {\n return false;\n }\n return true;\n }\n },\n 'table delete': {\n key: 'del',\n format: ['tableCellLine', 'tableHeaderCellLine'],\n collapsed: true,\n suffix: /^$/,\n handler: function handler() {}\n },\n 'table enter': {\n key: 'enter',\n shiftKey: null,\n format: ['tableCellLine', 'tableHeaderCellLine'],\n handler: function handler(range, context) {\n var _this$quill$selection,\n _this$quill$selection2,\n _this5 = this;\n var module = this.quill.getModule('table');\n if (!module) {\n return;\n }\n var quill = this.quill;\n var _module$getTable = module.getTable(range),\n _module$getTable2 = _slicedToArray(_module$getTable, 1),\n table = _module$getTable2[0];\n var isCaretPositionAfterTable = ((_this$quill$selection = this.quill.selection) === null || _this$quill$selection === void 0 ? void 0 : _this$quill$selection.lastNative.native.endContainer.nodeType) === ELEMENT_NODE;\n if (isCaretPositionAfterTable) {\n var index = table.offset();\n (0,_utils_insert_pr_above__WEBPACK_IMPORTED_MODULE_10__/* [\"default\"] */ .Z)({\n quill: quill,\n index: index,\n table: table\n });\n return;\n }\n if ((_this$quill$selection2 = this.quill.selection) !== null && _this$quill$selection2 !== void 0 && _this$quill$selection2.composing) return;\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length);\n }\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this5.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n return formats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats.tableCellLine, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.SILENT */ .ZP.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this5.quill.format(name, context.format[name], _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n });\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['tableCellLine', 'tableHeaderCellLine'],\n handler: function handler(range, context) {\n var event = context.event,\n cell = context.line;\n var offset = cell.offset(this.quill.scroll);\n if (event.shiftKey) {\n this.quill.setSelection(offset - 1, _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), _core_quill__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n }\n },\n 'table down': (0,_utils_make_table_arrow_handler__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(false, ['tableCellLine', 'tableHeaderCellLine']),\n 'table up': (0,_utils_make_table_arrow_handler__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)(true, ['tableCellLine', 'tableHeaderCellLine'])\n};\nfunction matchCell(node, delta) {\n var row = node.parentNode;\n var table = row.parentNode.tagName === 'TABLE' ? row.parentNode : row.parentNode.parentNode;\n var isHeaderRow = row.parentNode.tagName === 'THEAD' ? true : null;\n var rows = Array.from(table.querySelectorAll('tr'));\n var cells = Array.from(row.querySelectorAll('th,td'));\n var rowId = rows.indexOf(row) + 1;\n var cellId = cells.indexOf(node) + 1;\n var cellLineBlotName = isHeaderRow ? 'tableHeaderCellLine' : 'tableCellLine';\n if (delta.length() === 0) {\n delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().insert('\\n', _defineProperty({}, cellLineBlotName, {\n row: rowId,\n cell: cellId\n }));\n return delta;\n }\n if (!(0,_clipboard__WEBPACK_IMPORTED_MODULE_5__/* .deltaEndsWith */ .PF)(delta, '\\n')) {\n delta.insert('\\n');\n }\n return (0,_clipboard__WEBPACK_IMPORTED_MODULE_5__/* .applyFormat */ .HI)(delta, cellLineBlotName, {\n row: rowId,\n cell: cellId\n });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Table);\n\n/***/ }),\n\n/***/ 6054:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": () => (/* binding */ lite)\n});\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(9098);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(281);\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(7094);\n// EXTERNAL MODULE: ./blots/block.js + 1 modules\nvar block = __webpack_require__(6446);\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(3553);\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5874);\n// EXTERNAL MODULE: ./formats/table/attributors/table.js\nvar table = __webpack_require__(319);\n// EXTERNAL MODULE: ./formats/table/get_id.js\nvar get_id = __webpack_require__(8536);\n// EXTERNAL MODULE: ./formats/table/toggle_attribute.js\nvar toggle_attribute = __webpack_require__(2795);\n;// CONCATENATED MODULE: ./formats/table/lite.js\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar TABLE_TAGS = (/* unused pure expression or super */ null && (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE']));\nvar DATA_PREFIX = 'data-tablelite-';\nvar BaseCell = /*#__PURE__*/function (_Block) {\n _inherits(BaseCell, _Block);\n var _super = _createSuper(BaseCell);\n function BaseCell() {\n _classCallCheck(this, BaseCell);\n return _super.apply(this, arguments);\n }\n _createClass(BaseCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (table/* TABLE_FORMATS */.li[name]) {\n var _this$row;\n var attrName = \"data-\".concat(name.toLowerCase());\n (0,toggle_attribute/* default */.Z)(this.domNode, attrName, value);\n (_this$row = this.row()) === null || _this$row === void 0 || (_this$row = _this$row.table()) === null || _this$row === void 0 || _this$row.format(name, value);\n } else {\n _get(_getPrototypeOf(BaseCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"cellOffset\",\n value: function cellOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n }, {\n key: \"row\",\n value: function row() {\n return 'table' in this.parent ? this.parent : null;\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.row()) {\n return this.row().rowOffset();\n }\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n var _this$row2;\n return (_this$row2 = this.row()) === null || _this$row2 === void 0 ? void 0 : _this$row2.table();\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseCell), \"create\", this).call(this);\n var attrName = this.dataAttribute;\n (0,toggle_attribute/* default */.Z)(node, attrName, value !== null && value !== void 0 ? value : tableId());\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n var attrName = this.dataAttribute;\n if (domNode.hasAttribute(attrName)) {\n return domNode.getAttribute(attrName);\n }\n return undefined;\n }\n }]);\n return BaseCell;\n}(block/* default */.ZP);\nBaseCell.tagName = ['TD', 'TH'];\nvar TableCell = /*#__PURE__*/function (_BaseCell) {\n _inherits(TableCell, _BaseCell);\n var _super2 = _createSuper(TableCell);\n function TableCell() {\n _classCallCheck(this, TableCell);\n return _super2.apply(this, arguments);\n }\n _createClass(TableCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === TableCell.blotName && value) {\n this.domNode.setAttribute(TableCell.dataAttribute, value);\n } else {\n _get(_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }]);\n return TableCell;\n}(BaseCell);\nTableCell.blotName = 'table';\nTableCell.dataAttribute = \"\".concat(DATA_PREFIX, \"row\");\nvar TableHeaderCell = /*#__PURE__*/function (_BaseCell2) {\n _inherits(TableHeaderCell, _BaseCell2);\n var _super3 = _createSuper(TableHeaderCell);\n function TableHeaderCell() {\n _classCallCheck(this, TableHeaderCell);\n return _super3.apply(this, arguments);\n }\n _createClass(TableHeaderCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === TableHeaderCell.blotName && value) {\n this.domNode.setAttribute(TableHeaderCell.dataAttribute, value);\n } else {\n _get(_getPrototypeOf(TableHeaderCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }]);\n return TableHeaderCell;\n}(BaseCell);\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = \"\".concat(DATA_PREFIX, \"header-row\");\nvar BaseRow = /*#__PURE__*/function (_Container) {\n _inherits(BaseRow, _Container);\n var _super4 = _createSuper(BaseRow);\n function BaseRow() {\n _classCallCheck(this, BaseRow);\n return _super4.apply(this, arguments);\n }\n _createClass(BaseRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseRow.prototype), \"checkMerge\", this).call(this) && (0,is_defined/* default */.Z)(this.next.children.head)) {\n var formatName = this.childFormatName;\n var thisHead = this.children.head.formats();\n var thisTail = this.children.tail.formats();\n var nextHead = this.next.children.head.formats();\n var nextTail = this.next.children.tail.formats();\n return thisHead[formatName] === thisTail[formatName] && thisHead[formatName] === nextHead[formatName] && thisHead[formatName] === nextTail[formatName];\n }\n return false;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2,\n _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_get2 = _get(_getPrototypeOf(BaseRow.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n var formatName = this.childFormatName;\n this.children.forEach(function (child) {\n if (!(0,is_defined/* default */.Z)(child.next)) {\n return;\n }\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n if (childFormats[formatName] !== nextFormats[formatName]) {\n var next = _this.splitAfter(child);\n if (next) {\n next.optimize();\n }\n // We might be able to merge with prev now\n if (_this.prev) {\n _this.prev.optimize();\n }\n }\n });\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n var _this$parent;\n return (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.parent;\n }\n }]);\n return BaseRow;\n}(container/* default */.Z);\nBaseRow.tagName = 'TR';\nvar TableRow = /*#__PURE__*/function (_BaseRow) {\n _inherits(TableRow, _BaseRow);\n var _super5 = _createSuper(TableRow);\n function TableRow(scroll, domNode) {\n var _this2;\n _classCallCheck(this, TableRow);\n _this2 = _super5.call(this, scroll, domNode);\n _this2.childFormatName = 'table';\n return _this2;\n }\n return _createClass(TableRow);\n}(BaseRow);\nTableRow.blotName = 'tableRow';\nvar TableHeaderRow = /*#__PURE__*/function (_BaseRow2) {\n _inherits(TableHeaderRow, _BaseRow2);\n var _super6 = _createSuper(TableHeaderRow);\n function TableHeaderRow(scroll, domNode) {\n var _this3;\n _classCallCheck(this, TableHeaderRow);\n _this3 = _super6.call(this, scroll, domNode);\n _this3.childFormatName = 'tableHeaderCell';\n return _this3;\n }\n return _createClass(TableHeaderRow);\n}(BaseRow);\nTableHeaderRow.blotName = 'tableHeaderRow';\nvar RowContainer = /*#__PURE__*/function (_Container2) {\n _inherits(RowContainer, _Container2);\n var _super7 = _createSuper(RowContainer);\n function RowContainer() {\n _classCallCheck(this, RowContainer);\n return _super7.apply(this, arguments);\n }\n _createClass(RowContainer, [{\n key: \"optimize\",\n value: function optimize() {\n var _get3;\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var domNode = this.children.head.children.head.domNode;\n var formats = {};\n Object.keys(table/* TABLE_FORMATS */.li).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n this.wrap(this.statics.requiredContainer.blotName, formats);\n }\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n (_get3 = _get(_getPrototypeOf(RowContainer.prototype), \"optimize\", this)).call.apply(_get3, [this].concat(args));\n }\n }]);\n return RowContainer;\n}(container/* default */.Z);\nvar TableBody = /*#__PURE__*/function (_RowContainer) {\n _inherits(TableBody, _RowContainer);\n var _super8 = _createSuper(TableBody);\n function TableBody() {\n _classCallCheck(this, TableBody);\n return _super8.apply(this, arguments);\n }\n return _createClass(TableBody);\n}(RowContainer);\nTableBody.blotName = 'tableBody';\nTableBody.tagName = ['TBODY'];\nvar TableHeader = /*#__PURE__*/function (_RowContainer2) {\n _inherits(TableHeader, _RowContainer2);\n var _super9 = _createSuper(TableHeader);\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n return _super9.apply(this, arguments);\n }\n return _createClass(TableHeader);\n}(RowContainer);\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = ['THEAD'];\nvar TableContainer = /*#__PURE__*/function (_Container3) {\n _inherits(TableContainer, _Container3);\n var _super10 = _createSuper(TableContainer);\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n return _super10.apply(this, arguments);\n }\n _createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var headerRows = this.descendants(TableHeaderRow);\n var bodyRows = this.descendants(TableRow);\n var maxColCount = this.getMaxTableColCount(headerRows, bodyRows);\n this.balanceRows(maxColCount, headerRows, TableHeaderCell);\n this.balanceRows(maxColCount, bodyRows, TableCell);\n }\n }, {\n key: \"getMaxTableColCount\",\n value: function getMaxTableColCount(headerRows, bodyRows) {\n return Math.max(this.getMaxRowColCount(headerRows), this.getMaxRowColCount(bodyRows));\n }\n }, {\n key: \"getMaxRowColCount\",\n value: function getMaxRowColCount(rows) {\n return Math.max.apply(Math, _toConsumableArray(rows.map(function (row) {\n return row.children.length;\n })));\n }\n }, {\n key: \"balanceRows\",\n value: function balanceRows(maxColCount, rows, CellClass) {\n var _this4 = this;\n rows.forEach(function (row) {\n new Array(maxColCount - row.children.length).fill(0).forEach(function () {\n var value;\n if ((0,is_defined/* default */.Z)(row.children.head)) {\n value = CellClass.formats(row.children.head.domNode);\n }\n var blot = _this4.scroll.create(CellClass.blotName, value);\n row.appendChild(blot);\n blot.optimize(); // Add break blot\n });\n });\n }\n }, {\n key: \"cells\",\n value: function cells(column) {\n return this.rows().map(function (row) {\n return row.children.at(column);\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn(index) {\n var _this5 = this;\n [TableHeader, TableBody].forEach(function (blot) {\n var _this5$descendants = _this5.descendants(blot),\n _this5$descendants2 = _slicedToArray(_this5$descendants, 1),\n tablePart = _this5$descendants2[0];\n if (!(0,is_defined/* default */.Z)(tablePart) || !(0,is_defined/* default */.Z)(tablePart.children.head)) {\n return;\n }\n tablePart.children.forEach(function (row) {\n var cell = row.children.at(index);\n if ((0,is_defined/* default */.Z)(cell)) {\n cell.remove();\n }\n });\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this6 = this;\n [TableHeader, TableBody].forEach(function (blot) {\n var _this6$descendants = _this6.descendants(blot),\n _this6$descendants2 = _slicedToArray(_this6$descendants, 1),\n tablePart = _this6$descendants2[0];\n if (!(0,is_defined/* default */.Z)(tablePart) || !(0,is_defined/* default */.Z)(tablePart.children.head)) {\n return;\n }\n var CellBlot = blot === TableHeader ? TableHeaderCell : TableCell;\n tablePart.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = CellBlot.formats(row.children.head.domNode);\n var cell = _this6.scroll.create(CellBlot.blotName, value);\n row.insertBefore(cell, ref);\n });\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this7 = this;\n var _this$descendants = this.descendants(TableBody),\n _this$descendants2 = _slicedToArray(_this$descendants, 1),\n body = _this$descendants2[0];\n if (!(0,is_defined/* default */.Z)(body) || !(0,is_defined/* default */.Z)(body.children.head)) {\n return;\n }\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName);\n body.children.head.children.forEach(function () {\n var cell = _this7.scroll.create(TableCell.blotName, id);\n row.appendChild(cell);\n });\n var ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var _this8 = this;\n var _this$descendants3 = this.descendants(TableHeader),\n _this$descendants4 = _slicedToArray(_this$descendants3, 1),\n header = _this$descendants4[0];\n var _this$descendants5 = this.descendants(TableBody),\n _this$descendants6 = _slicedToArray(_this$descendants5, 1),\n body = _this$descendants6[0];\n if ((0,is_defined/* default */.Z)(header) || !(0,is_defined/* default */.Z)(body) || !(0,is_defined/* default */.Z)(body.children.head)) {\n return;\n }\n var id = tableId();\n var newHeader = this.scroll.create(TableHeader.blotName);\n var row = this.scroll.create(TableHeaderRow.blotName);\n var ref = this.children.at(0);\n newHeader.appendChild(row);\n body.children.head.children.forEach(function () {\n var cell = _this8.scroll.create(TableHeaderCell.blotName, id);\n row.appendChild(cell);\n cell.optimize();\n });\n this.insertBefore(newHeader, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n return (0,is_defined/* default */.Z)(body) ? body.children.map(function (row) {\n return row;\n }) : [];\n }\n }, {\n key: \"formats\",\n value: function formats() {\n var formats = {};\n var childElem = this.cells()[0].domNode;\n Object.keys(table/* TABLE_FORMATS */.li).forEach(function (format) {\n var value = childElem.dataset[format.toLowerCase()];\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var tableFormat = table/* TABLE_FORMATS */.li[name];\n if (tableFormat) {\n var attrName = \"data-\".concat(name.toLowerCase());\n this.cells().forEach(function (cell) {\n (0,toggle_attribute/* default */.Z)(cell.domNode, attrName, value);\n });\n tableFormat.add(this.domNode, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableContainer), \"create\", this).call(this, value);\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _TABLE_FORMATS$format;\n (_TABLE_FORMATS$format = table/* TABLE_FORMATS */.li[format]) === null || _TABLE_FORMATS$format === void 0 || _TABLE_FORMATS$format.add(node, value[format]);\n });\n }\n return node;\n }\n }]);\n return TableContainer;\n}(container/* default */.Z);\nTableContainer.blotName = 'tableContainer';\nTableContainer.tagName = 'TABLE';\nTableContainer.allowedChildren = [TableHeader, TableBody];\nTableBody.requiredContainer = TableContainer;\nTableHeader.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nTableHeader.allowedChildren = [TableHeaderRow];\nTableHeaderRow.requiredContainer = TableHeader;\nTableHeaderRow.allowedChildren = [TableHeaderCell];\nTableHeaderCell.requiredContainer = TableHeaderRow;\nfunction tableId() {\n return \"row-\".concat((0,get_id/* default */.Z)());\n}\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(5635);\n// EXTERNAL MODULE: ./modules/table/utils/make_table_arrow_handler.js\nvar make_table_arrow_handler = __webpack_require__(9466);\n;// CONCATENATED MODULE: ./modules/table/utils/insert_pr_below.js\n\n\nfunction insertParagraphAbove(_ref) {\n var quill = _ref.quill,\n index = _ref.index,\n range = _ref.range;\n var insertIndex = index - 1;\n var delta = new (Delta_default())().retain(insertIndex).insert('\\n');\n quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n quill.setSelection(range.index + 1, range.length, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n}\n// EXTERNAL MODULE: ./modules/table/utils/insert_pr_above.js\nvar insert_pr_above = __webpack_require__(2480);\n;// CONCATENATED MODULE: ./modules/table/utils/table_side.js\nfunction tableSide(row, cell, offset) {\n if (row.prev == null && row.next == null) {\n if (cell.prev == null && cell.next == null) {\n return offset === 0 ? -1 : 1;\n }\n return cell.prev == null ? -1 : 1;\n }\n if (row.prev == null) {\n return -1;\n }\n if (row.next == null) {\n return 1;\n }\n return null;\n}\n// EXTERNAL MODULE: ./modules/table/utils/prepare_attr_matcher.js\nvar prepare_attr_matcher = __webpack_require__(7896);\n// EXTERNAL MODULE: ./formats/table/attributors/cell.js\nvar cell = __webpack_require__(1342);\n;// CONCATENATED MODULE: ./modules/table/lite.js\nfunction lite_typeof(o) { \"@babel/helpers - typeof\"; return lite_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, lite_typeof(o); }\nfunction _defineProperty(obj, key, value) { key = lite_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction lite_slicedToArray(arr, i) { return lite_arrayWithHoles(arr) || lite_iterableToArrayLimit(arr, i) || lite_unsupportedIterableToArray(arr, i) || lite_nonIterableRest(); }\nfunction lite_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction lite_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return lite_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return lite_arrayLikeToArray(o, minLen); }\nfunction lite_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction lite_iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction lite_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction lite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction lite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, lite_toPropertyKey(descriptor.key), descriptor); } }\nfunction lite_createClass(Constructor, protoProps, staticProps) { if (protoProps) lite_defineProperties(Constructor.prototype, protoProps); if (staticProps) lite_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction lite_toPropertyKey(arg) { var key = lite_toPrimitive(arg, \"string\"); return lite_typeof(key) === \"symbol\" ? key : String(key); }\nfunction lite_toPrimitive(input, hint) { if (lite_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (lite_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction lite_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) lite_setPrototypeOf(subClass, superClass); }\nfunction lite_setPrototypeOf(o, p) { lite_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return lite_setPrototypeOf(o, p); }\nfunction lite_createSuper(Derived) { var hasNativeReflectConstruct = lite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = lite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = lite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return lite_possibleConstructorReturn(this, result); }; }\nfunction lite_possibleConstructorReturn(self, call) { if (call && (lite_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return lite_assertThisInitialized(self); }\nfunction lite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction lite_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction lite_getPrototypeOf(o) { lite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return lite_getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar EMPTY_RESULT = [null, null, null, -1];\nvar TableLite = /*#__PURE__*/function (_Module) {\n lite_inherits(TableLite, _Module);\n var _super = lite_createSuper(TableLite);\n function TableLite() {\n var _this;\n lite_classCallCheck(this, TableLite);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.tableBlots = [TableCell.blotName, TableHeaderCell.blotName];\n _this.tableBlots.forEach(function (blotName) {\n _this.quill.editor.addImmediateFormat(blotName);\n });\n _this.integrateClipboard();\n _this.addKeyboardHandlers();\n _this.listenBalanceCells();\n return _this;\n }\n lite_createClass(TableLite, [{\n key: \"integrateClipboard\",\n value: function integrateClipboard() {\n var _this2 = this;\n this.tableBlots.forEach(function (blotName) {\n return _this2.quill.clipboard.addTableBlot(blotName);\n });\n this.quill.clipboard.addMatcher('tr', matchTable);\n this.quill.clipboard.addMatcher('table', (0,prepare_attr_matcher/* prepareAttributeMatcher */.F)(table/* TABLE_ATTRIBUTORS */.Zt));\n this.quill.clipboard.addMatcher('td, th', (0,prepare_attr_matcher/* prepareCellAttributeMatcher */.a)(cell/* CELL_ATTRIBUTORS */.h6));\n }\n }, {\n key: \"addKeyboardHandlers\",\n value: function addKeyboardHandlers() {\n var _this3 = this;\n var bindings = TableLite.keyboardBindings;\n Object.keys(bindings).forEach(function (name) {\n if (bindings[name]) {\n _this3.quill.keyboard.addBinding(bindings[name]);\n }\n });\n }\n }, {\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(TableContainer).forEach(function (table) {\n table.balanceCells();\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn() {\n var _this$getTable = this.getTable(),\n _this$getTable2 = lite_slicedToArray(_this$getTable, 3),\n table = _this$getTable2[0],\n cell = _this$getTable2[2];\n if (!(0,is_defined/* default */.Z)(cell)) {\n return;\n }\n table.deleteColumn(cell.cellOffset());\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = lite_slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n if (!(0,is_defined/* default */.Z)(row)) {\n return;\n }\n row.remove();\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = lite_slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n if (!(0,is_defined/* default */.Z)(table)) {\n return;\n }\n var offset = table.offset();\n table.remove();\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(offset, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n if (!(0,is_defined/* default */.Z)(range)) {\n return EMPTY_RESULT;\n }\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = lite_slicedToArray(_this$quill$getLine, 2),\n cell = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n if (!(0,is_defined/* default */.Z)(cell) || this.tableBlots.indexOf(cell.statics.blotName) === -1) {\n return EMPTY_RESULT;\n }\n var row = cell.parent;\n var table = row.parent.parent;\n return [table, row, cell, offset];\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(offset) {\n var range = this.quill.getSelection();\n var _this$getTable7 = this.getTable(range),\n _this$getTable8 = lite_slicedToArray(_this$getTable7, 3),\n table = _this$getTable8[0],\n row = _this$getTable8[1],\n cell = _this$getTable8[2];\n if (!(0,is_defined/* default */.Z)(cell)) {\n return;\n }\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n var shift = row.rowOffset();\n if (offset === 0) {\n shift += 1;\n }\n this.quill.setSelection(range.index + shift, range.length, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = lite_slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n if (!(0,is_defined/* default */.Z)(cell)) {\n return;\n }\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n if (offset > 0) {\n this.quill.setSelection(range, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var range = this.quill.getSelection();\n var _this$getTable11 = this.getTable(range),\n _this$getTable12 = lite_slicedToArray(_this$getTable11, 3),\n table = _this$getTable12[0],\n cell = _this$getTable12[2];\n if (!(0,is_defined/* default */.Z)(cell)) {\n return;\n }\n table.insertHeaderRow();\n this.quill.update(core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n if (!(0,is_defined/* default */.Z)(range)) {\n return;\n }\n var delta = new Array(rows).fill(0).reduce(function (memo) {\n var text = new Array(columns).fill('\\n').join('');\n return memo.insert(text, {\n table: tableId()\n });\n }, new (Delta_default())().retain(range.index));\n this.quill.updateContents(delta, core_quill/* default.sources.USER */.ZP.sources.USER);\n this.quill.setSelection(range.index, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"tableFormats\",\n value: function tableFormats() {\n return this.tableBlots;\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this4 = this;\n this.quill.on(core_quill/* default.events.SCROLL_OPTIMIZE */.ZP.events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this4.quill.once(core_quill/* default.events.TEXT_CHANGE */.ZP.events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== core_quill/* default.sources.USER */.ZP.sources.USER) return;\n _this4.balanceTables();\n });\n return true;\n }\n return false;\n });\n });\n this.quill.on(core_quill/* default.events.CONTENT_SETTED */.ZP.events.CONTENT_SETTED, function () {\n _this4.quill.once(core_quill/* default.events.TEXT_CHANGE */.ZP.events.TEXT_CHANGE, function () {\n _this4.balanceTables();\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n core_quill/* default.register */.ZP.register(TableHeaderCell, true);\n core_quill/* default.register */.ZP.register(TableCell, true);\n core_quill/* default.register */.ZP.register(TableHeaderRow, true);\n core_quill/* default.register */.ZP.register(TableRow, true);\n core_quill/* default.register */.ZP.register(TableBody, true);\n core_quill/* default.register */.ZP.register(TableHeader, true);\n core_quill/* default.register */.ZP.register(TableContainer, true);\n [table/* TABLE_FORMATS */.li, cell/* CELL_FORMATS */.Du].forEach(function (formats) {\n Object.keys(formats).forEach(function (name) {\n core_quill/* default.register */.ZP.register(_defineProperty({}, \"formats/\".concat(name), formats[name]), true);\n });\n });\n }\n }]);\n return TableLite;\n}(core_module/* default */.Z);\nTableLite.keyboardBindings = {\n 'table backspace': {\n key: 'backspace',\n format: ['table', 'tableHeaderCell'],\n collapsed: true,\n offset: 0,\n handler: function handler() {}\n },\n 'table delete': {\n key: 'del',\n format: ['table', 'tableHeaderCell'],\n collapsed: true,\n suffix: /^$/,\n handler: function handler() {}\n },\n 'table enter': {\n key: 'enter',\n shiftKey: null,\n format: ['table'],\n handler: function handler(range) {\n var module = this.quill.getModule('table');\n if (module) {\n var quill = this.quill;\n var _module$getTable = module.getTable(range),\n _module$getTable2 = lite_slicedToArray(_module$getTable, 4),\n table = _module$getTable2[0],\n row = _module$getTable2[1],\n cell = _module$getTable2[2],\n offset = _module$getTable2[3];\n var shift = tableSide(row, cell, offset);\n var hasHead = table.children.length > 1 && table.children.head;\n if (shift == null || shift < 0 && hasHead) {\n return;\n }\n var index = table.offset();\n if (shift < 0) {\n insertParagraphAbove({\n quill: quill,\n index: index,\n range: range\n });\n } else {\n (0,insert_pr_above/* default */.Z)({\n quill: quill,\n index: index,\n table: table\n });\n }\n }\n }\n },\n 'table header enter': {\n key: 'enter',\n shiftKey: null,\n format: ['tableHeaderCell'],\n handler: function handler(range) {\n var module = this.quill.getModule('table');\n if (module) {\n var quill = this.quill;\n var _module$getTable3 = module.getTable(range),\n _module$getTable4 = lite_slicedToArray(_module$getTable3, 4),\n table = _module$getTable4[0],\n row = _module$getTable4[1],\n cell = _module$getTable4[2],\n offset = _module$getTable4[3];\n var shift = tableSide(row, cell, offset);\n if (shift == null) {\n return;\n }\n var index = table.offset();\n var hasBody = table.children.length > 1 && table.children.tail;\n if (shift < 0 || shift > 0 && hasBody) {\n insertParagraphAbove({\n quill: quill,\n index: index,\n range: range\n });\n } else {\n (0,insert_pr_above/* default */.Z)({\n quill: quill,\n index: index,\n table: table\n });\n }\n }\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['table', 'tableHeaderCell'],\n handler: function handler(range, context) {\n var event = context.event,\n cell = context.line;\n var offset = cell.offset(this.quill.scroll);\n if (event.shiftKey) {\n this.quill.setSelection(offset - 1, core_quill/* default.sources.USER */.ZP.sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), core_quill/* default.sources.USER */.ZP.sources.USER);\n }\n }\n },\n 'table down': (0,make_table_arrow_handler/* default */.Z)(false, ['table', 'tableHeaderCell']),\n 'table up': (0,make_table_arrow_handler/* default */.Z)(true, ['table', 'tableHeaderCell'])\n};\nfunction matchTable(node, delta) {\n var table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\n var isHeaderRow = node.parentNode.tagName === 'THEAD' ? true : null;\n var rows = Array.from(table.querySelectorAll('tr'));\n var row = rows.indexOf(node) + 1;\n return (0,clipboard/* applyFormat */.HI)(delta, isHeaderRow ? 'tableHeaderCell' : 'table', row);\n}\n/* harmony default export */ const lite = (TableLite);\n\n/***/ }),\n\n/***/ 2480:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ insertParagraphBelow)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(281);\n\n\nfunction insertParagraphBelow(_ref) {\n var quill = _ref.quill,\n index = _ref.index,\n table = _ref.table;\n var insertIndex = index + table.length();\n var delta = new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(insertIndex).insert('\\n');\n quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n quill.setSelection(insertIndex, _core_quill__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n}\n\n/***/ }),\n\n/***/ 9466:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ makeTableArrowHandler)\n/* harmony export */ });\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(281);\n\nfunction makeTableArrowHandler(up, formats) {\n return {\n key: up ? 'upArrow' : 'downArrow',\n collapsed: true,\n format: formats,\n handler: function handler(range, context) {\n var key = up ? 'prev' : 'next';\n var line = context.line;\n var cell = line.statics.blotName.indexOf('Line') > -1 ? line.parent : line;\n var targetTablePart = cell.parent.parent[key];\n var targetRow = cell.parent[key] || (targetTablePart === null || targetTablePart === void 0 ? void 0 : targetTablePart.children.head);\n if (targetRow != null) {\n if (targetRow.statics.blotName === 'tableRow' || targetRow.statics.blotName === 'tableHeaderRow') {\n var targetCell = targetRow.children.head;\n var cur = cell;\n while (cur.prev != null) {\n cur = cur.prev;\n targetCell = targetCell.next;\n }\n var index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n this.quill.setSelection(index, 0, _core_quill__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n } else {\n var targetLine = cell.table()[key];\n if (targetLine != null) {\n if (up) {\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"].sources.USER */ .ZP.sources.USER);\n }\n }\n }\n return false;\n }\n };\n}\n\n/***/ }),\n\n/***/ 7896:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"F\": () => (/* binding */ prepareAttributeMatcher),\n/* harmony export */ \"a\": () => (/* binding */ prepareCellAttributeMatcher)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1233);\n/* harmony import */ var _attributors_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1674);\n/* harmony import */ var _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4569);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5635);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\n\n\n\nfunction writeToRecord(record, key, value, override) {\n record[key] = !override && record[key] ? record[key] : value;\n}\nfunction fillFormats(attributes, node, scroll, attributors, result, override) {\n attributes.filter(function (name) {\n return !!name;\n }).forEach(function (name) {\n var queryAttr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.ATTRIBUTE);\n if (queryAttr !== null) {\n var queryAttrValue = queryAttr.value(node);\n if (queryAttrValue) {\n writeToRecord(result, queryAttr.attrName, queryAttrValue, override);\n return;\n }\n }\n var attr = attributors[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n var attrValue = attr.value(node) || undefined;\n writeToRecord(result, attr.attrName, attrValue, override);\n }\n });\n return result;\n}\nfunction prepareAttributeMatcher(attributors) {\n return function (node, delta, scroll) {\n var attributes = _attributors_attributor__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].keys */ .Z.keys(node);\n var styles = _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].keys */ .Z.keys(node);\n var formats = _objectSpread(_objectSpread({}, fillFormats(attributes, node, scroll, attributors, {}, true)), fillFormats(styles, node, scroll, attributors, {}, true));\n if (Object.keys(formats).length > 0) {\n return (0,_clipboard__WEBPACK_IMPORTED_MODULE_3__/* .applyFormat */ .HI)(delta, formats);\n }\n return delta;\n };\n}\nfunction prepareCellAttributeMatcher(attributors) {\n return function (node, delta, scroll) {\n var _node$parentNode;\n var attributes = _attributors_attributor__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].keys */ .Z.keys(node);\n var styles = _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].keys */ .Z.keys(node);\n var parentTrNode = ((_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.tagName) === 'TR' ? node.parentNode : undefined;\n var formats = _objectSpread(_objectSpread({}, fillFormats(attributes, node, scroll, attributors, {}, true)), fillFormats(styles, node, scroll, attributors, {}, true));\n if (parentTrNode) {\n var parentStyles = _attributors_style_attributor__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"].keys */ .Z.keys(parentTrNode);\n formats = fillFormats(parentStyles, parentTrNode, scroll, attributors, formats, false);\n }\n if (Object.keys(formats).length > 0) {\n return (0,_clipboard__WEBPACK_IMPORTED_MODULE_3__/* .applyFormat */ .HI)(delta, formats);\n }\n return delta;\n };\n}\n\n/***/ }),\n\n/***/ 3859:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9098);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2069);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7094);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8034);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Uploader = /*#__PURE__*/function (_Module) {\n _inherits(Uploader, _Module);\n var _super = _createSuper(Uploader);\n function Uploader(quill, options) {\n var _this;\n _classCallCheck(this, Uploader);\n _this = _super.call(this, quill, options);\n _this.preventImageUploading(false);\n _this.addDragOverHandler();\n _this.addDropHandler();\n return _this;\n }\n _createClass(Uploader, [{\n key: \"addDragOverHandler\",\n value: function addDragOverHandler() {\n if ((0,_utils_has_window__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)()) {\n var ua = window.navigator.userAgent.toLowerCase();\n var isMsIe = ua.indexOf('msie ') !== -1 || ua.indexOf('trident/') !== -1 || ua.indexOf('edge/') !== -1;\n if (isMsIe) {\n this.quill.root.addEventListener('dragover', function (e) {\n e.preventDefault();\n });\n }\n }\n }\n }, {\n key: \"addDropHandler\",\n value: function addDropHandler() {\n var _this2 = this;\n this.quill.root.addEventListener('drop', function (e) {\n var noFiles = e.dataTransfer.files.length === 0;\n var onDrop = _this2.options.onDrop;\n if (onDrop && typeof onDrop === 'function') {\n onDrop(e);\n }\n if (noFiles || _this2.preventImageUpload) {\n return;\n }\n e.preventDefault();\n var native;\n if (document.caretRangeFromPoint) {\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\n } else if (document.caretPositionFromPoint) {\n var position = document.caretPositionFromPoint(e.clientX, e.clientY);\n native = document.createRange();\n native.setStart(position.offsetNode, position.offset);\n native.setEnd(position.offsetNode, position.offset);\n } else {\n return;\n }\n var normalized = _this2.quill.selection.normalizeNative(native);\n var range = _this2.quill.selection.normalizedToRange(normalized);\n _this2.upload(range, e.dataTransfer.files);\n });\n }\n }, {\n key: \"preventImageUploading\",\n value: function preventImageUploading(value) {\n if (typeof value !== 'undefined') {\n this.preventImageUpload = value;\n }\n return this.preventImageUpload;\n }\n }, {\n key: \"upload\",\n value: function upload(range, files, force) {\n var _this3 = this;\n if (this.preventImageUpload && !force) {\n return;\n }\n var uploads = [];\n Array.from(files).forEach(function (file) {\n if (file && _this3.options.mimetypes.indexOf(file.type) !== -1) {\n uploads.push(file);\n }\n });\n if (uploads.length > 0) {\n this.options.handler.call(this, range, uploads, this.options.imageBlot);\n }\n }\n }]);\n return Uploader;\n}(_core_module__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z);\nUploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/webp', 'image/bmp', 'image/svg+xml', 'image/vnd.microsoft.icon'],\n imageBlot: 'image',\n handler: function handler(range, files, blotName) {\n var _this4 = this;\n var promises = files.map(function (file) {\n return new Promise(function (resolve) {\n var reader = new FileReader();\n reader.onload = function (e) {\n resolve(e.target.result);\n };\n reader.readAsDataURL(file);\n });\n });\n Promise.all(promises).then(function (images) {\n var update = images.reduce(function (delta, image) {\n return delta.insert(_defineProperty({}, blotName, image));\n }, new (quill_delta__WEBPACK_IMPORTED_MODULE_0___default())().retain(range.index).delete(range.length));\n _this4.quill.updateContents(update, _core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.USER */ .Z.sources.USER);\n _this4.quill.setSelection(range.index + images.length, _core_emitter__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].sources.SILENT */ .Z.sources.SILENT);\n });\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Uploader);\n\n/***/ }),\n\n/***/ 2141:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ capitalize)\n/* harmony export */ });\nfunction capitalize(text) {\n return text ? text.substring(0, 1).toUpperCase() + text.substring(1) : '';\n}\n\n/***/ }),\n\n/***/ 8034:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar hasWindow = function hasWindow() {\n return typeof window !== 'undefined';\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hasWindow);\n\n/***/ }),\n\n/***/ 5874:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": () => (/* binding */ isDefined)\n/* harmony export */ });\nfunction isDefined(object) {\n return object !== null && object !== undefined;\n}\n\n/***/ }),\n\n/***/ 1233:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Attributor\": () => (/* reexport */ attributor),\n \"AttributorStore\": () => (/* reexport */ store),\n \"BlockBlot\": () => (/* reexport */ block),\n \"ClassAttributor\": () => (/* reexport */ attributor_class),\n \"ContainerBlot\": () => (/* reexport */ container),\n \"EmbedBlot\": () => (/* reexport */ blot_embed),\n \"InlineBlot\": () => (/* reexport */ inline),\n \"LeafBlot\": () => (/* reexport */ leaf),\n \"ParentBlot\": () => (/* reexport */ abstract_parent),\n \"Registry\": () => (/* reexport */ registry),\n \"Scope\": () => (/* reexport */ src_scope),\n \"ScrollBlot\": () => (/* reexport */ blot_scroll),\n \"StyleAttributor\": () => (/* reexport */ style),\n \"TextBlot\": () => (/* reexport */ blot_text)\n});\n\n;// CONCATENATED MODULE: ./node_modules/parchment/src/scope.ts\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope || (Scope = {}));\n/* harmony default export */ const src_scope = (Scope);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/collection/linked-list.ts\nvar LinkedList = /** @class */function () {\n function LinkedList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n var rest = nodes.slice(1);\n this.append.apply(this, rest);\n }\n };\n LinkedList.prototype.at = function (index) {\n var next = this.iterator();\n var cur = next();\n while (cur && index > 0) {\n index -= 1;\n cur = next();\n }\n return cur;\n };\n LinkedList.prototype.contains = function (node) {\n var next = this.iterator();\n var cur = next();\n while (cur) {\n if (cur === node) {\n return true;\n }\n cur = next();\n }\n return false;\n };\n LinkedList.prototype.indexOf = function (node) {\n var next = this.iterator();\n var cur = next();\n var index = 0;\n while (cur) {\n if (cur === node) {\n return index;\n }\n index += 1;\n cur = next();\n }\n return -1;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (node == null) {\n return;\n }\n this.remove(node);\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0;\n var cur = this.head;\n while (cur != null) {\n if (cur === target) {\n return index;\n }\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) {\n return;\n }\n if (node.prev != null) {\n node.prev.next = node.next;\n }\n if (node.next != null) {\n node.next.prev = node.prev;\n }\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null) {\n curNode = curNode.next;\n }\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n var next = this.iterator();\n var cur = next();\n while (cur) {\n var length = cur.length();\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n index -= length;\n cur = next();\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var next = this.iterator();\n var cur = next();\n while (cur) {\n callback(cur);\n cur = next();\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) {\n return;\n }\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n var curIndex = index - offset;\n var next = this.iterator(startNode);\n var cur = next();\n while (cur && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n cur = next();\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var next = this.iterator();\n var cur = next();\n while (cur) {\n memo = callback(memo, cur);\n cur = next();\n }\n return memo;\n };\n return LinkedList;\n}();\n/* harmony default export */ const linked_list = (LinkedList);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar ParchmentError = /** @class */function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error);\n/* harmony default export */ const error = (ParchmentError);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n\nvar Registry = /** @class */function () {\n function Registry() {\n this.attributes = {};\n this.classes = {};\n this.tags = {};\n this.types = {};\n }\n Registry.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n if (node == null) {\n return null;\n }\n if (this.blots.has(node)) {\n return this.blots.get(node) || null;\n }\n if (bubble) {\n var parentNode = null;\n try {\n parentNode = node.parentNode;\n } catch (err) {\n // Probably hit a permission denied error.\n // A known case is in Firefox, event targets can be anonymous DIVs\n // inside an input element.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n return null;\n }\n return this.find(parentNode, bubble);\n }\n return null;\n };\n Registry.prototype.create = function (scroll, input, value) {\n var match = this.query(input);\n if (match == null) {\n throw new error(\"Unable to create \".concat(input, \" blot\"));\n }\n var blotClass = match;\n var node =\n // @ts-expect-error\n input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value);\n var blot = new blotClass(scroll, node, value);\n Registry.blots.set(blot.domNode, blot);\n return blot;\n };\n Registry.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n return Registry.find(node, bubble);\n };\n Registry.prototype.query = function (query, scope) {\n var _this = this;\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n var match;\n if (typeof query === 'string') {\n match = this.types[query] || this.attributes[query];\n // @ts-expect-error\n } else if (query instanceof Text || query.nodeType === Node.TEXT_NODE) {\n match = this.types.text;\n } else if (typeof query === 'number') {\n if (query & src_scope.LEVEL & src_scope.BLOCK) {\n match = this.types.block;\n } else if (query & src_scope.LEVEL & src_scope.INLINE) {\n match = this.types.inline;\n }\n } else if (query instanceof Element) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n names.some(function (name) {\n match = _this.classes[name];\n if (match) {\n return true;\n }\n return false;\n });\n match = match || this.tags[query.tagName];\n }\n if (match == null) {\n return null;\n }\n // @ts-expect-error\n if (scope & src_scope.LEVEL & match.scope && scope & src_scope.TYPE & match.scope) {\n return match;\n }\n return null;\n };\n Registry.prototype.register = function () {\n var _this = this;\n var definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n if (definitions.length > 1) {\n return definitions.map(function (d) {\n return _this.register(d);\n });\n }\n var definition = definitions[0];\n if (typeof definition.blotName !== 'string' && typeof definition.attrName !== 'string') {\n throw new error('Invalid definition');\n } else if (definition.blotName === 'abstract') {\n throw new error('Cannot register abstract class');\n }\n this.types[definition.blotName || definition.attrName] = definition;\n if (typeof definition.keyName === 'string') {\n this.attributes[definition.keyName] = definition;\n } else {\n if (definition.className != null) {\n this.classes[definition.className] = definition;\n }\n if (definition.tagName != null) {\n if (Array.isArray(definition.tagName)) {\n definition.tagName = definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n definition.tagName = definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName];\n tagNames.forEach(function (tag) {\n if (_this.tags[tag] == null || definition.className == null) {\n _this.tags[tag] = definition;\n }\n });\n }\n }\n return definition;\n };\n Registry.blots = new WeakMap();\n return Registry;\n}();\n/* harmony default export */ const registry = (Registry);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n\n\nvar ShadowBlot = /** @class */function () {\n function ShadowBlot(scroll, domNode) {\n this.scroll = scroll;\n this.domNode = domNode;\n registry.blots.set(domNode, this);\n this.prev = null;\n this.next = null;\n }\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new error('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value, 10).toString() === value) {\n value = parseInt(value, 10);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function get() {\n return this.constructor;\n },\n enumerable: false,\n configurable: true\n });\n ShadowBlot.prototype.attach = function () {\n // Nothing to do\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return this.scroll.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null) {\n this.parent.removeChild(this);\n }\n registry.blots[\"delete\"](this.domNode);\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (this.scroll.query(name, src_scope.BLOT) != null && value) {\n blot.wrap(name, value);\n } else if (this.scroll.query(name, src_scope.ATTRIBUTE) != null) {\n var parent = this.scroll.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref || undefined);\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n if (target == null) {\n throw new Error('Attempt to isolate at end');\n }\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) {\n root = this.parent;\n }\n if (this.parent == null || this === root) {\n return 0;\n }\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (_context) {\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName);\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(replacement, this.next || undefined);\n this.remove();\n }\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, _force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (_mutations, _context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? this.scroll.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next || undefined);\n }\n if (typeof wrapper.appendChild !== 'function') {\n throw new error(\"Cannot wrap \".concat(name));\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}();\n/* harmony default export */ const shadow = (ShadowBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/parent.ts\nvar parent_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nfunction makeAttachedBlot(node, scroll) {\n var blot = scroll.find(node);\n if (blot == null) {\n try {\n blot = scroll.create(node);\n } catch (e) {\n blot = scroll.create(src_scope.INLINE);\n Array.from(node.childNodes).forEach(function (child) {\n // @ts-expect-error\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nvar ParentBlot = /** @class */function (_super) {\n parent_extends(ParentBlot, _super);\n function ParentBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n _this.uiNode = null;\n _this.build();\n return _this;\n }\n ParentBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ParentBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ParentBlot.prototype.attachUI = function (node) {\n if (this.uiNode != null) {\n this.uiNode.remove();\n }\n this.uiNode = node;\n if (ParentBlot.uiClass) {\n this.uiNode.classList.add(ParentBlot.uiClass);\n }\n this.uiNode.setAttribute('contenteditable', 'false');\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n };\n ParentBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list();\n // Need to be reversed for if DOM nodes already in order\n Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this.uiNode;\n }).reverse().forEach(function (node) {\n try {\n var child = makeAttachedBlot(node, _this.scroll);\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof error) {\n return;\n } else {\n throw err;\n }\n }\n });\n };\n ParentBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.deleteAt(offset, childLength);\n });\n };\n ParentBlot.prototype.descendant = function (criteria, index) {\n if (index === void 0) {\n index = 0;\n }\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ParentBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n ParentBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, childIndex, childLength) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n if (child instanceof ParentBlot) {\n descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft));\n }\n lengthLeft -= childLength;\n });\n return descendants;\n };\n ParentBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ParentBlot.prototype.enforceAllowedChildren = function () {\n var _this = this;\n var done = false;\n this.children.forEach(function (child) {\n if (done) {\n return;\n }\n var allowed = _this.statics.allowedChildren.some(function (def) {\n return child instanceof def;\n });\n if (allowed) {\n return;\n }\n if (child.statics.scope === src_scope.BLOCK_BLOT) {\n if (child.next != null) {\n _this.splitAfter(child);\n }\n if (child.prev != null) {\n _this.splitAfter(child.prev);\n }\n child.parent.unwrap();\n done = true;\n } else if (child instanceof ParentBlot) {\n child.unwrap();\n } else {\n child.remove();\n }\n });\n };\n ParentBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.formatAt(offset, childLength, name, value);\n });\n };\n ParentBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n this.appendChild(blot);\n }\n };\n ParentBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (childBlot.parent != null) {\n childBlot.parent.children.remove(childBlot);\n }\n var refDomNode = null;\n this.children.insertBefore(childBlot, refBlot || null);\n childBlot.parent = this;\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) {\n this.domNode.insertBefore(childBlot.domNode, refDomNode);\n }\n childBlot.attach();\n };\n ParentBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ParentBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ParentBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.enforceAllowedChildren();\n if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n }\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(child);\n // TODO double check if necessary\n // child.optimize(context);\n } else {\n this.remove();\n }\n }\n };\n ParentBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ParentBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ParentBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ParentBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n if (replacement instanceof ParentBlot) {\n this.moveChildren(replacement);\n }\n return _super.prototype.replaceWith.call(this, replacement);\n };\n ParentBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n if (!force) {\n if (index === 0) {\n return this;\n }\n if (index === this.length()) {\n return this.next;\n }\n }\n var after = this.clone();\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n this.children.forEachAt(index, this.length(), function (child, offset, _length) {\n var split = child.split(offset, force);\n if (split != null) {\n after.appendChild(split);\n }\n });\n return after;\n };\n ParentBlot.prototype.splitAfter = function (child) {\n var after = this.clone();\n while (child.next != null) {\n after.appendChild(child.next);\n }\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n return after;\n };\n ParentBlot.prototype.unwrap = function () {\n if (this.parent) {\n this.moveChildren(this.parent, this.next || undefined);\n }\n this.remove();\n };\n ParentBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-expect-error\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = _this.scroll.find(node);\n if (blot == null) {\n return;\n }\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode === _this.domNode || node === _this.uiNode;\n }).sort(function (a, b) {\n if (a === b) {\n return 0;\n }\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = _this.scroll.find(node.nextSibling);\n }\n var blot = makeAttachedBlot(node, _this.scroll);\n if (blot.next !== refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n this.enforceAllowedChildren();\n };\n ParentBlot.uiClass = '';\n return ParentBlot;\n}(shadow);\n/* harmony default export */ const abstract_parent = (ParentBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\nvar container_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\nvar ContainerBlot = /** @class */function (_super) {\n container_extends(ContainerBlot, _super);\n function ContainerBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ContainerBlot.prototype.checkMerge = function () {\n return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n _super.prototype.deleteAt.call(this, index, length);\n this.enforceAllowedChildren();\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n _super.prototype.formatAt.call(this, index, length, name, value);\n this.enforceAllowedChildren();\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n _super.prototype.insertAt.call(this, index, value, def);\n this.enforceAllowedChildren();\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length > 0 && this.next != null && this.checkMerge()) {\n this.next.moveChildren(this);\n this.next.remove();\n }\n };\n ContainerBlot.blotName = 'container';\n ContainerBlot.scope = src_scope.BLOCK_BLOT;\n return ContainerBlot;\n}(abstract_parent);\n/* harmony default export */ const container = (ContainerBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\nvar leaf_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\nvar LeafBlot = /** @class */function (_super) {\n leaf_extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (_domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, _inclusive) {\n var childNodes = Array.from(this.parent.domNode.childNodes);\n var offset = childNodes.indexOf(this.domNode);\n if (index > 0) {\n offset += 1;\n }\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = src_scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow);\n/* harmony default export */ const leaf = (LeafBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\nvar Attributor = /** @class */function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = src_scope.TYPE & src_scope.ATTRIBUTE;\n this.scope = options.scope != null ?\n // Ignore type bits, force attribute bit\n options.scope & src_scope.LEVEL | attributeBit : src_scope.ATTRIBUTE;\n if (options.whitelist != null) {\n this.whitelist = options.whitelist;\n }\n }\n Attributor.keys = function (node) {\n return Array.from(node.attributes).map(function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (_node, value) {\n if (this.whitelist == null) {\n return true;\n }\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}();\n/* harmony default export */ const attributor = (Attributor);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\nvar class_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(\"\".concat(prefix, \"-\")) === 0;\n });\n}\nvar ClassAttributor = /** @class */function (_super) {\n class_extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n this.remove(node);\n node.classList.add(\"\".concat(this.keyName, \"-\").concat(value));\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor);\n/* harmony default export */ const attributor_class = (ClassAttributor);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\nvar style_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */function (_super) {\n style_extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n // @ts-expect-error\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-expect-error\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-expect-error\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor);\n/* harmony default export */ const style = (StyleAttributor);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n\n\n\n\nvar AttributorStore = /** @class */function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var blot = registry.find(this.domNode);\n if (blot == null) {\n return;\n }\n var attributes = attributor.keys(this.domNode);\n var classes = attributor_class.keys(this.domNode);\n var styles = style.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = blot.scroll.query(name, src_scope.ATTRIBUTE);\n if (attr instanceof attributor) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}();\n/* harmony default export */ const store = (AttributorStore);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\nvar inline_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n for (var prop in obj1) {\n // @ts-expect-error\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n return true;\n}\nvar InlineBlot = /** @class */function (_super) {\n inline_extends(InlineBlot, _super);\n function InlineBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n InlineBlot.formats = function (domNode, scroll) {\n var match = scroll.query(InlineBlot.blotName);\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof InlineBlot)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n var format = this.scroll.query(name, src_scope.INLINE);\n if (format == null) {\n return;\n }\n if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n InlineBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || this.scroll.query(name, src_scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n InlineBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n InlineBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof InlineBlot) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n InlineBlot.allowedChildren = [InlineBlot, leaf];\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = src_scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(abstract_parent);\n/* harmony default export */ const inline = (InlineBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\nvar block_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nvar BlockBlot = /** @class */function (_super) {\n block_extends(BlockBlot, _super);\n function BlockBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n BlockBlot.formats = function (domNode, scroll) {\n var match = scroll.query(BlockBlot.blotName);\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n };\n BlockBlot.prototype.format = function (name, value) {\n var format = this.scroll.query(name, src_scope.BLOCK);\n if (format == null) {\n return;\n } else if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n };\n BlockBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.scroll.query(name, src_scope.BLOCK) != null) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || this.scroll.query(value, src_scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n if (after != null) {\n var blot = this.scroll.create(value, def);\n after.parent.insertBefore(blot, after);\n } else {\n throw new Error('Attempt to insertAt after block boundaries');\n }\n }\n };\n BlockBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n BlockBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = src_scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n BlockBlot.allowedChildren = [inline, BlockBlot, leaf];\n return BlockBlot;\n}(abstract_parent);\n/* harmony default export */ const block = (BlockBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\nvar embed_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar EmbedBlot = /** @class */function (_super) {\n embed_extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (_domNode, _scroll) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode, this.scroll);\n };\n return EmbedBlot;\n}(leaf);\n/* harmony default export */ const blot_embed = (EmbedBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\nvar scroll_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */function (_super) {\n scroll_extends(ScrollBlot, _super);\n function ScrollBlot(registry, node) {\n var _this =\n // @ts-expect-error\n _super.call(this, null, node) || this;\n _this.registry = registry;\n _this.scroll = _this;\n _this.build();\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.create = function (input, value) {\n return this.registry.create(this, input, value);\n };\n ScrollBlot.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n var blot = this.registry.find(node, bubble);\n if (!blot) {\n return null;\n }\n if (blot.scroll === this) {\n return blot;\n }\n return bubble ? this.find(blot.scroll.domNode.parentNode, true) : null;\n };\n ScrollBlot.prototype.query = function (query, scope) {\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n return this.registry.query(query, scope);\n };\n ScrollBlot.prototype.register = function () {\n var _a;\n var definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n return (_a = this.registry).register.apply(_a, definitions);\n };\n ScrollBlot.prototype.build = function () {\n if (this.scroll == null) {\n return;\n }\n _super.prototype.build.call(this);\n };\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) {\n mutations = [];\n }\n if (context === void 0) {\n context = {};\n }\n _super.prototype.optimize.call(this, context);\n var mutationsMap = context.mutationsMap || new WeakMap();\n // We must modify mutations directly, cannot make copy and then modify\n var records = Array.from(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n var mark = function mark(blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n if (blot == null || blot === _this) {\n return;\n }\n if (blot.domNode.parentNode == null) {\n return;\n }\n if (!mutationsMap.has(blot.domNode)) {\n mutationsMap.set(blot.domNode, []);\n }\n if (markParent) {\n mark(blot.parent);\n }\n };\n var optimize = function optimize(blot) {\n // Post-order traversal\n if (!mutationsMap.has(blot.domNode)) {\n return;\n }\n if (blot instanceof abstract_parent) {\n blot.children.forEach(optimize);\n }\n mutationsMap.delete(blot.domNode);\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = _this.find(mutation.target, true);\n if (blot == null) {\n return;\n }\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(_this.find(mutation.previousSibling, false));\n Array.from(mutation.addedNodes).forEach(function (node) {\n var child = _this.find(node, false);\n mark(child, false);\n if (child instanceof abstract_parent) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = Array.from(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) {\n context = {};\n }\n mutations = mutations || this.observer.takeRecords();\n var mutationsMap = new WeakMap();\n mutations.map(function (mutation) {\n var blot = _this.find(mutation.target, true);\n if (blot == null) {\n return null;\n }\n if (mutationsMap.has(blot.domNode)) {\n mutationsMap.get(blot.domNode).push(mutation);\n return null;\n } else {\n mutationsMap.set(blot.domNode, [mutation]);\n return blot;\n }\n }).forEach(function (blot) {\n if (blot != null && blot !== _this && mutationsMap.has(blot.domNode)) {\n blot.update(mutationsMap.get(blot.domNode) || [], context);\n }\n });\n context.mutationsMap = mutationsMap;\n if (mutationsMap.has(this.domNode)) {\n _super.prototype.update.call(this, mutationsMap.get(this.domNode), context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = block;\n ScrollBlot.allowedChildren = [block, container];\n ScrollBlot.scope = src_scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(abstract_parent);\n/* harmony default export */ const blot_scroll = (ScrollBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\nvar text_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\nvar TextBlot = /** @class */function (_super) {\n text_extends(TextBlot, _super);\n function TextBlot(scroll, node) {\n var _this = _super.call(this, scroll, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n return domNode.data;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, _inclusive) {\n if (_inclusive === void 0) {\n _inclusive = false;\n }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n if (!force) {\n if (index === 0) {\n return this;\n }\n if (index === this.length()) {\n return this.next;\n }\n }\n var after = this.scroll.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next || undefined);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = src_scope.INLINE_BLOT;\n return TextBlot;\n}(leaf);\n/* harmony default export */ const blot_text = (TextBlot);\n;// CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 3034:\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n\n/***/ 1456:\n/***/ ((module) => {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n\n/***/ }),\n\n/***/ 8805:\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\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\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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 objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n\n\n/***/ }),\n\n/***/ 2722:\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\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\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\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/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\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\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\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\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\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\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\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\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\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n\n/***/ }),\n\n/***/ 732:\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\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\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\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/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\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\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\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\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\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\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\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\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\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n\n/***/ }),\n\n/***/ 5143:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst cloneDeep = __webpack_require__(8805);\nconst isEqual = __webpack_require__(2722);\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a = {}, b = {}, keepNull = false) {\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n let attributes = cloneDeep(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce((copy, key) => {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (const key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.compose = compose;\n function diff(a = {}, b = {}) {\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n const attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce((attrs, key) => {\n if (!isEqual(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr = {}, base = {}) {\n attr = attr || {};\n const baseInverted = Object.keys(base).reduce((memo, key) => {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce((memo, key) => {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority = false) {\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n const attributes = Object.keys(b).reduce((attrs, key) => {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports[\"default\"] = AttributeMap;\n\n\n/***/ }),\n\n/***/ 9098:\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AttributeMap = exports.OpIterator = exports.Op = void 0;\nconst diff = __webpack_require__(1456);\nconst cloneDeep = __webpack_require__(8805);\nconst isEqual = __webpack_require__(2722);\nconst AttributeMap_1 = __webpack_require__(5143);\nexports.AttributeMap = AttributeMap_1.default;\nconst Op_1 = __webpack_require__(6237);\nexports.Op = Op_1.default;\nconst OpIterator_1 = __webpack_require__(2849);\nexports.OpIterator = OpIterator_1.default;\nconst NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nconst getEmbedTypeAndData = (a, b) => {\n if (typeof a !== 'object' || a === null) {\n throw new Error(`cannot retain a ${typeof a}`);\n }\n if (typeof b !== 'object' || b === null) {\n throw new Error(`cannot retain a ${typeof b}`);\n }\n const embedType = Object.keys(a)[0];\n if (!embedType || embedType !== Object.keys(b)[0]) {\n throw new Error(`embed types not matched: ${embedType} != ${Object.keys(b)[0]}`);\n }\n return [embedType, a[embedType], b[embedType]];\n};\nclass Delta {\n constructor(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n static registerEmbed(embedType, handler) {\n this.handlers[embedType] = handler;\n }\n static unregisterEmbed(embedType) {\n delete this.handlers[embedType];\n }\n static getHandler(embedType) {\n const handler = this.handlers[embedType];\n if (!handler) {\n throw new Error(`no handlers for embed type \"${embedType}\"`);\n }\n return handler;\n }\n insert(arg, attributes) {\n const newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n }\n delete(length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n }\n retain(length, attributes) {\n if (typeof length === 'number' && length <= 0) {\n return this;\n }\n const newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n }\n push(newOp) {\n let index = this.ops.length;\n let lastOp = this.ops[index - 1];\n newOp = cloneDeep(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number') {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (isEqual(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n }\n chop() {\n const lastOp = this.ops[this.ops.length - 1];\n if (lastOp && typeof lastOp.retain === 'number' && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n }\n filter(predicate) {\n return this.ops.filter(predicate);\n }\n forEach(predicate) {\n this.ops.forEach(predicate);\n }\n map(predicate) {\n return this.ops.map(predicate);\n }\n partition(predicate) {\n const passed = [];\n const failed = [];\n this.forEach((op) => {\n const target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n }\n reduce(predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n }\n changeLength() {\n return this.reduce((length, elem) => {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n }\n length() {\n return this.reduce((length, elem) => {\n return length + Op_1.default.length(elem);\n }, 0);\n }\n slice(start = 0, end = Infinity) {\n const ops = [];\n const iter = new OpIterator_1.default(this.ops);\n let index = 0;\n while (index < end && iter.hasNext()) {\n let nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n }\n compose(other) {\n const thisIter = new OpIterator_1.default(this.ops);\n const otherIter = new OpIterator_1.default(other.ops);\n const ops = [];\n const firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n let firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n const delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n const thisOp = thisIter.next(length);\n const otherOp = otherIter.next(length);\n if (otherOp.retain) {\n const newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain =\n typeof otherOp.retain === 'number' ? length : otherOp.retain;\n }\n else {\n if (typeof otherOp.retain === 'number') {\n if (thisOp.retain == null) {\n newOp.insert = thisOp.insert;\n }\n else {\n newOp.retain = thisOp.retain;\n }\n }\n else {\n const action = thisOp.retain == null ? 'insert' : 'retain';\n const [embedType, thisData, otherData] = getEmbedTypeAndData(thisOp[action], otherOp.retain);\n const handler = Delta.getHandler(embedType);\n newOp[action] = {\n [embedType]: handler.compose(thisData, otherData, action === 'retain'),\n };\n }\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n const attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n isEqual(delta.ops[delta.ops.length - 1], newOp)) {\n const rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n (typeof thisOp.retain === 'number' ||\n (typeof thisOp.retain === 'object' && thisOp.retain !== null))) {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n }\n concat(other) {\n const delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n }\n diff(other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n const strings = [this, other].map((delta) => {\n return delta\n .map((op) => {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n const prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n const retDelta = new Delta();\n const diffResult = diff(strings[0], strings[1], cursor);\n const thisIter = new OpIterator_1.default(this.ops);\n const otherIter = new OpIterator_1.default(other.ops);\n diffResult.forEach((component) => {\n let length = component[1].length;\n while (length > 0) {\n let opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n const thisOp = thisIter.next(opLength);\n const otherOp = otherIter.next(opLength);\n if (isEqual(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n }\n eachLine(predicate, newline = '\\n') {\n const iter = new OpIterator_1.default(this.ops);\n let line = new Delta();\n let i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n const thisOp = iter.peek();\n const start = Op_1.default.length(thisOp) - iter.peekLength();\n const index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\n else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n }\n invert(base) {\n const inverted = new Delta();\n this.reduce((baseIndex, op) => {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (typeof op.retain === 'number' && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || typeof op.retain === 'number') {\n const length = (op.delete || op.retain);\n const slice = base.slice(baseIndex, baseIndex + length);\n slice.forEach((baseOp) => {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length;\n }\n else if (typeof op.retain === 'object' && op.retain !== null) {\n const slice = base.slice(baseIndex, baseIndex + 1);\n const baseOp = new OpIterator_1.default(slice.ops).next();\n const [embedType, opData, baseOpData] = getEmbedTypeAndData(op.retain, baseOp.insert);\n const handler = Delta.getHandler(embedType);\n inverted.retain({ [embedType]: handler.invert(opData, baseOpData) }, AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n return baseIndex + 1;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n }\n transform(arg, priority = false) {\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n const other = arg;\n const thisIter = new OpIterator_1.default(this.ops);\n const otherIter = new OpIterator_1.default(other.ops);\n const delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n const thisOp = thisIter.next(length);\n const otherOp = otherIter.next(length);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n const thisData = thisOp.retain;\n const otherData = otherOp.retain;\n let transformedData = typeof otherData === 'object' && otherData !== null\n ? otherData\n : length;\n if (typeof thisData === 'object' &&\n thisData !== null &&\n typeof otherData === 'object' &&\n otherData !== null) {\n const embedType = Object.keys(thisData)[0];\n if (embedType === Object.keys(otherData)[0]) {\n const handler = Delta.getHandler(embedType);\n if (handler) {\n transformedData = {\n [embedType]: handler.transform(thisData[embedType], otherData[embedType], priority),\n };\n }\n }\n }\n // We retain either their retain or insert\n delta.retain(transformedData, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n }\n transformPosition(index, priority = false) {\n priority = !!priority;\n const thisIter = new OpIterator_1.default(this.ops);\n let offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n const length = thisIter.peekLength();\n const nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n }\n}\nDelta.Op = Op_1.default;\nDelta.OpIterator = OpIterator_1.default;\nDelta.AttributeMap = AttributeMap_1.default;\nDelta.handlers = {};\nexports[\"default\"] = Delta;\nif (true) {\n module.exports = Delta;\n module.exports[\"default\"] = Delta;\n}\n\n\n/***/ }),\n\n/***/ 6237:\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar Op;\n(function (Op) {\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else if (typeof op.retain === 'object' && op.retain !== null) {\n return 1;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports[\"default\"] = Op;\n\n\n/***/ }),\n\n/***/ 2849:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst Op_1 = __webpack_require__(6237);\nclass Iterator {\n constructor(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n hasNext() {\n return this.peekLength() < Infinity;\n }\n next(length) {\n if (!length) {\n length = Infinity;\n }\n const nextOp = this.ops[this.index];\n if (nextOp) {\n const offset = this.offset;\n const opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\n else {\n const retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n }\n else if (typeof nextOp.retain === 'object' &&\n nextOp.retain !== null) {\n // offset should === 0, length should === 1\n retOp.retain = nextOp.retain;\n }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n }\n peek() {\n return this.ops[this.index];\n }\n peekLength() {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n }\n peekType() {\n const op = this.ops[this.index];\n if (op) {\n if (typeof op.delete === 'number') {\n return 'delete';\n }\n else if (typeof op.retain === 'number' ||\n (typeof op.retain === 'object' && op.retain !== null)) {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n }\n rest() {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n const offset = this.offset;\n const index = this.index;\n const next = this.next();\n const rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n }\n}\nexports[\"default\"] = Iterator;\n\n\n/***/ }),\n\n/***/ 1863:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(9731);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 6572:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(4401);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 2318:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(3661);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 576:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(5606);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 2327:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n__webpack_require__(5445);\nvar entryUnbind = __webpack_require__(6731);\n\nmodule.exports = entryUnbind('Array', 'fill');\n\n\n/***/ }),\n\n/***/ 3274:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n__webpack_require__(9477);\n__webpack_require__(6272);\nvar path = __webpack_require__(577);\n\nmodule.exports = path.Array.from;\n\n\n/***/ }),\n\n/***/ 5339:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n__webpack_require__(2947);\nvar path = __webpack_require__(577);\n\nmodule.exports = path.Object.values;\n\n\n/***/ }),\n\n/***/ 1189:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n__webpack_require__(538);\nvar entryUnbind = __webpack_require__(6731);\n\nmodule.exports = entryUnbind('String', 'endsWith');\n\n\n/***/ }),\n\n/***/ 5142:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* unused reexport */ __webpack_require__(297);\n\n\n/***/ }),\n\n/***/ 1019:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* unused reexport */ __webpack_require__(4660);\n\n\n/***/ }),\n\n/***/ 1183:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* unused reexport */ __webpack_require__(5275);\n\n\n/***/ }),\n\n/***/ 2570:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* unused reexport */ __webpack_require__(2839);\n\n\n/***/ }),\n\n/***/ 297:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(1863);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 4660:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(6572);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 5275:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(2318);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 2839:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(576);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 6324:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(2539);\nvar tryToString = __webpack_require__(7471);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ }),\n\n/***/ 2162:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(2539);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ }),\n\n/***/ 2572:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(5485);\nvar create = __webpack_require__(3830);\nvar defineProperty = (__webpack_require__(8503).f);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ 8874:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(3988);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ }),\n\n/***/ 9236:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(6015);\nvar toAbsoluteIndex = __webpack_require__(7234);\nvar lengthOfArrayLike = __webpack_require__(3235);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 8459:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar bind = __webpack_require__(9794);\nvar call = __webpack_require__(2977);\nvar toObject = __webpack_require__(6015);\nvar callWithSafeIterationClosing = __webpack_require__(9154);\nvar isArrayIteratorMethod = __webpack_require__(7024);\nvar isConstructor = __webpack_require__(6467);\nvar lengthOfArrayLike = __webpack_require__(3235);\nvar createProperty = __webpack_require__(3003);\nvar getIterator = __webpack_require__(2387);\nvar getIteratorMethod = __webpack_require__(7874);\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ 5644:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(7625);\nvar toAbsoluteIndex = __webpack_require__(7234);\nvar lengthOfArrayLike = __webpack_require__(3235);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 9154:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(8874);\nvar iteratorClose = __webpack_require__(8880);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n/***/ }),\n\n/***/ 3346:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ 4545:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ }),\n\n/***/ 2702:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1923);\nvar isCallable = __webpack_require__(2539);\nvar classofRaw = __webpack_require__(4545);\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ 1358:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar hasOwn = __webpack_require__(2623);\nvar ownKeys = __webpack_require__(3054);\nvar getOwnPropertyDescriptorModule = __webpack_require__(3037);\nvar definePropertyModule = __webpack_require__(8503);\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n\n/***/ }),\n\n/***/ 6775:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n\n\n/***/ }),\n\n/***/ 6141:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar fails = __webpack_require__(5202);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ 3585:\n/***/ ((module) => {\n\n\"use strict\";\n\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n\n\n/***/ }),\n\n/***/ 8868:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar definePropertyModule = __webpack_require__(8503);\nvar createPropertyDescriptor = __webpack_require__(4238);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ 4238:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ 3003:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(3164);\nvar definePropertyModule = __webpack_require__(8503);\nvar createPropertyDescriptor = __webpack_require__(4238);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ 916:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(2539);\nvar definePropertyModule = __webpack_require__(8503);\nvar makeBuiltIn = __webpack_require__(6614);\nvar defineGlobalProperty = __webpack_require__(2136);\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n\n\n/***/ }),\n\n/***/ 2136:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n\n/***/ 5007:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar fails = __webpack_require__(5202);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n\n\n/***/ }),\n\n/***/ 8629:\n/***/ ((module) => {\n\n\"use strict\";\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n\n\n/***/ }),\n\n/***/ 2215:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar isObject = __webpack_require__(3988);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ 932:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n\n\n/***/ }),\n\n/***/ 7626:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar userAgent = __webpack_require__(932);\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n\n\n/***/ }),\n\n/***/ 6731:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar uncurryThis = __webpack_require__(4038);\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n\n\n/***/ }),\n\n/***/ 8552:\n/***/ ((module) => {\n\n\"use strict\";\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ 2189:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar getOwnPropertyDescriptor = (__webpack_require__(3037).f);\nvar createNonEnumerableProperty = __webpack_require__(8868);\nvar defineBuiltIn = __webpack_require__(916);\nvar defineGlobalProperty = __webpack_require__(2136);\nvar copyConstructorProperties = __webpack_require__(1358);\nvar isForced = __webpack_require__(3455);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ 5202:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ 9794:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(6192);\nvar aCallable = __webpack_require__(6324);\nvar NATIVE_BIND = __webpack_require__(2865);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ 2865:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar fails = __webpack_require__(5202);\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ }),\n\n/***/ 2977:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar NATIVE_BIND = __webpack_require__(2865);\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n\n/***/ }),\n\n/***/ 9895:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar hasOwn = __webpack_require__(2623);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ }),\n\n/***/ 6589:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar aCallable = __webpack_require__(6324);\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n\n\n/***/ }),\n\n/***/ 6192:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar classofRaw = __webpack_require__(4545);\nvar uncurryThis = __webpack_require__(4038);\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n/***/ }),\n\n/***/ 4038:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar NATIVE_BIND = __webpack_require__(2865);\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ 7300:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar isCallable = __webpack_require__(2539);\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ 7874:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar classof = __webpack_require__(2702);\nvar getMethod = __webpack_require__(3923);\nvar isNullOrUndefined = __webpack_require__(2219);\nvar Iterators = __webpack_require__(7817);\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ 2387:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar call = __webpack_require__(2977);\nvar aCallable = __webpack_require__(6324);\nvar anObject = __webpack_require__(8874);\nvar tryToString = __webpack_require__(7471);\nvar getIteratorMethod = __webpack_require__(7874);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ }),\n\n/***/ 3923:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar aCallable = __webpack_require__(6324);\nvar isNullOrUndefined = __webpack_require__(2219);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ }),\n\n/***/ 730:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ 2623:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar toObject = __webpack_require__(6015);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ }),\n\n/***/ 7467:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 845:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(7300);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ 2470:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar fails = __webpack_require__(5202);\nvar createElement = __webpack_require__(2215);\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n\n\n/***/ }),\n\n/***/ 6854:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar fails = __webpack_require__(5202);\nvar classof = __webpack_require__(4545);\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ }),\n\n/***/ 7821:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar isCallable = __webpack_require__(2539);\nvar store = __webpack_require__(6838);\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ 5378:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar NATIVE_WEAK_MAP = __webpack_require__(2543);\nvar global = __webpack_require__(730);\nvar isObject = __webpack_require__(3988);\nvar createNonEnumerableProperty = __webpack_require__(8868);\nvar hasOwn = __webpack_require__(2623);\nvar shared = __webpack_require__(6838);\nvar sharedKey = __webpack_require__(3511);\nvar hiddenKeys = __webpack_require__(7467);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ 7024:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(5485);\nvar Iterators = __webpack_require__(7817);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ 2539:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $documentAll = __webpack_require__(8629);\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n\n\n/***/ }),\n\n/***/ 6467:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar fails = __webpack_require__(5202);\nvar isCallable = __webpack_require__(2539);\nvar classof = __webpack_require__(2702);\nvar getBuiltIn = __webpack_require__(7300);\nvar inspectSource = __webpack_require__(7821);\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n/***/ }),\n\n/***/ 3455:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar fails = __webpack_require__(5202);\nvar isCallable = __webpack_require__(2539);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ 2219:\n/***/ ((module) => {\n\n\"use strict\";\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n\n\n/***/ }),\n\n/***/ 3988:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isCallable = __webpack_require__(2539);\nvar $documentAll = __webpack_require__(8629);\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n\n/***/ 4708:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ 184:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(3988);\nvar classof = __webpack_require__(4545);\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ 8820:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(7300);\nvar isCallable = __webpack_require__(2539);\nvar isPrototypeOf = __webpack_require__(7676);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3713);\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ }),\n\n/***/ 8880:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar call = __webpack_require__(2977);\nvar anObject = __webpack_require__(8874);\nvar getMethod = __webpack_require__(3923);\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n/***/ }),\n\n/***/ 3450:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar IteratorPrototype = (__webpack_require__(344).IteratorPrototype);\nvar create = __webpack_require__(3830);\nvar createPropertyDescriptor = __webpack_require__(4238);\nvar setToStringTag = __webpack_require__(3506);\nvar Iterators = __webpack_require__(7817);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ 3174:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2189);\nvar call = __webpack_require__(2977);\nvar IS_PURE = __webpack_require__(4708);\nvar FunctionName = __webpack_require__(9895);\nvar isCallable = __webpack_require__(2539);\nvar createIteratorConstructor = __webpack_require__(3450);\nvar getPrototypeOf = __webpack_require__(8059);\nvar setPrototypeOf = __webpack_require__(5502);\nvar setToStringTag = __webpack_require__(3506);\nvar createNonEnumerableProperty = __webpack_require__(8868);\nvar defineBuiltIn = __webpack_require__(916);\nvar wellKnownSymbol = __webpack_require__(5485);\nvar Iterators = __webpack_require__(7817);\nvar IteratorsCore = __webpack_require__(344);\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ 344:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar fails = __webpack_require__(5202);\nvar isCallable = __webpack_require__(2539);\nvar isObject = __webpack_require__(3988);\nvar create = __webpack_require__(3830);\nvar getPrototypeOf = __webpack_require__(8059);\nvar defineBuiltIn = __webpack_require__(916);\nvar wellKnownSymbol = __webpack_require__(5485);\nvar IS_PURE = __webpack_require__(4708);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ 7817:\n/***/ ((module) => {\n\n\"use strict\";\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 3235:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toLength = __webpack_require__(3627);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n/***/ }),\n\n/***/ 6614:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar fails = __webpack_require__(5202);\nvar isCallable = __webpack_require__(2539);\nvar hasOwn = __webpack_require__(2623);\nvar DESCRIPTORS = __webpack_require__(5007);\nvar CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(9895).CONFIGURABLE);\nvar inspectSource = __webpack_require__(7821);\nvar InternalStateModule = __webpack_require__(5378);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ }),\n\n/***/ 3041:\n/***/ ((module) => {\n\n\"use strict\";\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ }),\n\n/***/ 50:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isRegExp = __webpack_require__(184);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 3830:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(8874);\nvar definePropertiesModule = __webpack_require__(3944);\nvar enumBugKeys = __webpack_require__(8552);\nvar hiddenKeys = __webpack_require__(7467);\nvar html = __webpack_require__(845);\nvar documentCreateElement = __webpack_require__(2215);\nvar sharedKey = __webpack_require__(3511);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ 3944:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(2268);\nvar definePropertyModule = __webpack_require__(8503);\nvar anObject = __webpack_require__(8874);\nvar toIndexedObject = __webpack_require__(7625);\nvar objectKeys = __webpack_require__(4254);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ 8503:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar IE8_DOM_DEFINE = __webpack_require__(2470);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(2268);\nvar anObject = __webpack_require__(8874);\nvar toPropertyKey = __webpack_require__(3164);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 3037:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar call = __webpack_require__(2977);\nvar propertyIsEnumerableModule = __webpack_require__(6251);\nvar createPropertyDescriptor = __webpack_require__(4238);\nvar toIndexedObject = __webpack_require__(7625);\nvar toPropertyKey = __webpack_require__(3164);\nvar hasOwn = __webpack_require__(2623);\nvar IE8_DOM_DEFINE = __webpack_require__(2470);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ 5974:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar internalObjectKeys = __webpack_require__(7862);\nvar enumBugKeys = __webpack_require__(8552);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ 1526:\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ 8059:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar hasOwn = __webpack_require__(2623);\nvar isCallable = __webpack_require__(2539);\nvar toObject = __webpack_require__(6015);\nvar sharedKey = __webpack_require__(3511);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(6141);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ 7676:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ }),\n\n/***/ 7862:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar hasOwn = __webpack_require__(2623);\nvar toIndexedObject = __webpack_require__(7625);\nvar indexOf = (__webpack_require__(5644).indexOf);\nvar hiddenKeys = __webpack_require__(7467);\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ 4254:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar internalObjectKeys = __webpack_require__(7862);\nvar enumBugKeys = __webpack_require__(8552);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ 6251:\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ 5502:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = __webpack_require__(6589);\nvar anObject = __webpack_require__(8874);\nvar aPossiblePrototype = __webpack_require__(2162);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ 7830:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar fails = __webpack_require__(5202);\nvar uncurryThis = __webpack_require__(4038);\nvar objectGetPrototypeOf = __webpack_require__(8059);\nvar objectKeys = __webpack_require__(4254);\nvar toIndexedObject = __webpack_require__(7625);\nvar $propertyIsEnumerable = (__webpack_require__(6251).f);\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 532:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar call = __webpack_require__(2977);\nvar isCallable = __webpack_require__(2539);\nvar isObject = __webpack_require__(3988);\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ 3054:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(7300);\nvar uncurryThis = __webpack_require__(4038);\nvar getOwnPropertyNamesModule = __webpack_require__(5974);\nvar getOwnPropertySymbolsModule = __webpack_require__(1526);\nvar anObject = __webpack_require__(8874);\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ 577:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ 6373:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar isNullOrUndefined = __webpack_require__(2219);\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ 3506:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar defineProperty = (__webpack_require__(8503).f);\nvar hasOwn = __webpack_require__(2623);\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n\n/***/ 3511:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar shared = __webpack_require__(6568);\nvar uid = __webpack_require__(2858);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ 6838:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar defineGlobalProperty = __webpack_require__(2136);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ 6568:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar IS_PURE = __webpack_require__(4708);\nvar store = __webpack_require__(6838);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.34.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.34.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ }),\n\n/***/ 6365:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\nvar toIntegerOrInfinity = __webpack_require__(3550);\nvar toString = __webpack_require__(2532);\nvar requireObjectCoercible = __webpack_require__(6373);\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 3370:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(7626);\nvar fails = __webpack_require__(5202);\nvar global = __webpack_require__(730);\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n\n/***/ 7234:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(3550);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ 7625:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(6854);\nvar requireObjectCoercible = __webpack_require__(6373);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ 3550:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar trunc = __webpack_require__(3041);\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ }),\n\n/***/ 3627:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toIntegerOrInfinity = __webpack_require__(3550);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ 6015:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar requireObjectCoercible = __webpack_require__(6373);\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ 634:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar call = __webpack_require__(2977);\nvar isObject = __webpack_require__(3988);\nvar isSymbol = __webpack_require__(8820);\nvar getMethod = __webpack_require__(3923);\nvar ordinaryToPrimitive = __webpack_require__(532);\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n\n/***/ 3164:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(634);\nvar isSymbol = __webpack_require__(8820);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ }),\n\n/***/ 1923:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar wellKnownSymbol = __webpack_require__(5485);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ 2532:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar classof = __webpack_require__(2702);\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n\n\n/***/ }),\n\n/***/ 7471:\n/***/ ((module) => {\n\n\"use strict\";\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ }),\n\n/***/ 2858:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar uncurryThis = __webpack_require__(4038);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ }),\n\n/***/ 3713:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(3370);\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ 2268:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(5007);\nvar fails = __webpack_require__(5202);\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n\n\n/***/ }),\n\n/***/ 2543:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar isCallable = __webpack_require__(2539);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ }),\n\n/***/ 5485:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar global = __webpack_require__(730);\nvar shared = __webpack_require__(6568);\nvar hasOwn = __webpack_require__(2623);\nvar uid = __webpack_require__(2858);\nvar NATIVE_SYMBOL = __webpack_require__(3370);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3713);\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ 5445:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2189);\nvar fill = __webpack_require__(9236);\nvar addToUnscopables = __webpack_require__(2572);\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n\n\n/***/ }),\n\n/***/ 6272:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2189);\nvar from = __webpack_require__(8459);\nvar checkCorrectnessOfIteration = __webpack_require__(3346);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n/***/ }),\n\n/***/ 2947:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2189);\nvar $values = (__webpack_require__(7830).values);\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n\n\n/***/ }),\n\n/***/ 538:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2189);\nvar uncurryThis = __webpack_require__(6192);\nvar getOwnPropertyDescriptor = (__webpack_require__(3037).f);\nvar toLength = __webpack_require__(3627);\nvar toString = __webpack_require__(2532);\nvar notARegExp = __webpack_require__(50);\nvar requireObjectCoercible = __webpack_require__(6373);\nvar correctIsRegExpLogic = __webpack_require__(6775);\nvar IS_PURE = __webpack_require__(4708);\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ 9477:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar charAt = (__webpack_require__(6365).charAt);\nvar toString = __webpack_require__(2532);\nvar InternalStateModule = __webpack_require__(5378);\nvar defineIterator = __webpack_require__(3174);\nvar createIterResultObject = __webpack_require__(3585);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n\n\n/***/ }),\n\n/***/ 9731:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(2327);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 4401:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(3274);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 3661:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(5339);\n\nmodule.exports = parent;\n\n\n/***/ }),\n\n/***/ 5606:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar parent = __webpack_require__(1189);\n\nmodule.exports = parent;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/node module decorator */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.nmd = (module) => {\n/******/ \t\t\tmodule.paths = [];\n/******/ \t\t\tif (!module.children) module.children = [];\n/******/ \t\t\treturn module;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ quill)\n});\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/from.js\nvar from = __webpack_require__(1019);\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\nvar fill = __webpack_require__(5142);\n// EXTERNAL MODULE: ./node_modules/core-js/features/object/values.js\nvar values = __webpack_require__(1183);\n// EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\nvar ends_with = __webpack_require__(2570);\n;// CONCATENATED MODULE: ./polyfills.js\n// IE11 support\n\n\n\n\n\n// EXTERNAL MODULE: ./core.js\nvar core = __webpack_require__(2432);\n// EXTERNAL MODULE: ./formats/align.js\nvar align = __webpack_require__(715);\n// EXTERNAL MODULE: ./formats/direction.js\nvar direction = __webpack_require__(4048);\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(1233);\n;// CONCATENATED MODULE: ./formats/indent.js\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar IndentAttributor = /*#__PURE__*/function (_ClassAttributor) {\n _inherits(IndentAttributor, _ClassAttributor);\n var _super = _createSuper(IndentAttributor);\n function IndentAttributor() {\n _classCallCheck(this, IndentAttributor);\n return _super.apply(this, arguments);\n }\n _createClass(IndentAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n }\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"add\", this).call(this, node, value);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, value) || _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, parseInt(value, 10));\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return parseInt(_get(_getPrototypeOf(IndentAttributor.prototype), \"value\", this).call(this, node), 10) || undefined; // Don't return NaN\n }\n }]);\n return IndentAttributor;\n}(parchment.ClassAttributor);\nvar IndentClass = new IndentAttributor('indent', 'ql-indent', {\n scope: parchment.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n/* harmony default export */ const indent = (IndentClass);\n// EXTERNAL MODULE: ./blots/block.js + 1 modules\nvar block = __webpack_require__(6446);\n;// CONCATENATED MODULE: ./formats/blockquote.js\nfunction blockquote_typeof(o) { \"@babel/helpers - typeof\"; return blockquote_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, blockquote_typeof(o); }\nfunction blockquote_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, blockquote_toPropertyKey(descriptor.key), descriptor); } }\nfunction blockquote_createClass(Constructor, protoProps, staticProps) { if (protoProps) blockquote_defineProperties(Constructor.prototype, protoProps); if (staticProps) blockquote_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction blockquote_toPropertyKey(arg) { var key = blockquote_toPrimitive(arg, \"string\"); return blockquote_typeof(key) === \"symbol\" ? key : String(key); }\nfunction blockquote_toPrimitive(input, hint) { if (blockquote_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (blockquote_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction blockquote_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction blockquote_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) blockquote_setPrototypeOf(subClass, superClass); }\nfunction blockquote_setPrototypeOf(o, p) { blockquote_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return blockquote_setPrototypeOf(o, p); }\nfunction blockquote_createSuper(Derived) { var hasNativeReflectConstruct = blockquote_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = blockquote_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = blockquote_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return blockquote_possibleConstructorReturn(this, result); }; }\nfunction blockquote_possibleConstructorReturn(self, call) { if (call && (blockquote_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return blockquote_assertThisInitialized(self); }\nfunction blockquote_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction blockquote_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction blockquote_getPrototypeOf(o) { blockquote_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return blockquote_getPrototypeOf(o); }\n\nvar Blockquote = /*#__PURE__*/function (_Block) {\n blockquote_inherits(Blockquote, _Block);\n var _super = blockquote_createSuper(Blockquote);\n function Blockquote() {\n blockquote_classCallCheck(this, Blockquote);\n return _super.apply(this, arguments);\n }\n return blockquote_createClass(Blockquote);\n}(block/* default */.ZP);\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n/* harmony default export */ const blockquote = (Blockquote);\n;// CONCATENATED MODULE: ./formats/header.js\nfunction header_typeof(o) { \"@babel/helpers - typeof\"; return header_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, header_typeof(o); }\nfunction header_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction header_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, header_toPropertyKey(descriptor.key), descriptor); } }\nfunction header_createClass(Constructor, protoProps, staticProps) { if (protoProps) header_defineProperties(Constructor.prototype, protoProps); if (staticProps) header_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction header_toPropertyKey(arg) { var key = header_toPrimitive(arg, \"string\"); return header_typeof(key) === \"symbol\" ? key : String(key); }\nfunction header_toPrimitive(input, hint) { if (header_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (header_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction header_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) header_setPrototypeOf(subClass, superClass); }\nfunction header_setPrototypeOf(o, p) { header_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return header_setPrototypeOf(o, p); }\nfunction header_createSuper(Derived) { var hasNativeReflectConstruct = header_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = header_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = header_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return header_possibleConstructorReturn(this, result); }; }\nfunction header_possibleConstructorReturn(self, call) { if (call && (header_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return header_assertThisInitialized(self); }\nfunction header_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction header_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction header_getPrototypeOf(o) { header_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return header_getPrototypeOf(o); }\n\nvar Header = /*#__PURE__*/function (_Block) {\n header_inherits(Header, _Block);\n var _super = header_createSuper(Header);\n function Header() {\n header_classCallCheck(this, Header);\n return _super.apply(this, arguments);\n }\n header_createClass(Header, null, [{\n key: \"formats\",\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n return Header;\n}(block/* default */.ZP);\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n/* harmony default export */ const header = (Header);\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(3553);\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(281);\n;// CONCATENATED MODULE: ./formats/list.js\nfunction list_typeof(o) { \"@babel/helpers - typeof\"; return list_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, list_typeof(o); }\nfunction list_get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { list_get = Reflect.get.bind(); } else { list_get = function _get(target, property, receiver) { var base = list_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return list_get.apply(this, arguments); }\nfunction list_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = list_getPrototypeOf(object); if (object === null) break; } return object; }\nfunction list_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, list_toPropertyKey(descriptor.key), descriptor); } }\nfunction list_createClass(Constructor, protoProps, staticProps) { if (protoProps) list_defineProperties(Constructor.prototype, protoProps); if (staticProps) list_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction list_toPropertyKey(arg) { var key = list_toPrimitive(arg, \"string\"); return list_typeof(key) === \"symbol\" ? key : String(key); }\nfunction list_toPrimitive(input, hint) { if (list_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (list_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction list_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction list_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) list_setPrototypeOf(subClass, superClass); }\nfunction list_setPrototypeOf(o, p) { list_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return list_setPrototypeOf(o, p); }\nfunction list_createSuper(Derived) { var hasNativeReflectConstruct = list_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = list_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = list_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return list_possibleConstructorReturn(this, result); }; }\nfunction list_possibleConstructorReturn(self, call) { if (call && (list_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return list_assertThisInitialized(self); }\nfunction list_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction list_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction list_getPrototypeOf(o) { list_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return list_getPrototypeOf(o); }\n\n\n\nvar ListContainer = /*#__PURE__*/function (_Container) {\n list_inherits(ListContainer, _Container);\n var _super = list_createSuper(ListContainer);\n function ListContainer() {\n list_classCallCheck(this, ListContainer);\n return _super.apply(this, arguments);\n }\n return list_createClass(ListContainer);\n}(container/* default */.Z);\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\nvar ListItem = /*#__PURE__*/function (_Block) {\n list_inherits(ListItem, _Block);\n var _super2 = list_createSuper(ListItem);\n function ListItem(scroll, domNode) {\n var _this;\n list_classCallCheck(this, ListItem);\n _this = _super2.call(this, scroll, domNode);\n var ui = domNode.ownerDocument.createElement('span');\n var listEventHandler = function listEventHandler(e) {\n if (!scroll.isEnabled()) return;\n var format = _this.statics.formats(domNode, scroll);\n if (format === 'checked') {\n _this.format('list', 'unchecked');\n e.preventDefault();\n } else if (format === 'unchecked') {\n _this.format('list', 'checked');\n e.preventDefault();\n }\n };\n ui.addEventListener('mousedown', listEventHandler);\n ui.addEventListener('touchstart', listEventHandler);\n _this.attachUI(ui);\n return _this;\n }\n list_createClass(ListItem, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-list', value);\n } else {\n list_get(list_getPrototypeOf(ListItem.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = list_get(list_getPrototypeOf(ListItem), \"create\", this).call(this);\n node.setAttribute('data-list', value);\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-list') || undefined;\n }\n }, {\n key: \"register\",\n value: function register() {\n core_quill/* default.register */.ZP.register(ListContainer);\n }\n }]);\n return ListItem;\n}(block/* default */.ZP);\nListItem.blotName = 'list';\nListItem.tagName = 'LI';\nListContainer.allowedChildren = [ListItem];\nListItem.requiredContainer = ListContainer;\n\n// eslint-disable-next-line no-restricted-exports\n\n// EXTERNAL MODULE: ./formats/background.js\nvar background = __webpack_require__(7898);\n// EXTERNAL MODULE: ./formats/color.js\nvar color = __webpack_require__(6039);\n// EXTERNAL MODULE: ./formats/font.js\nvar font = __webpack_require__(5832);\n// EXTERNAL MODULE: ./formats/size.js\nvar size = __webpack_require__(1629);\n// EXTERNAL MODULE: ./formats/bold.js\nvar bold = __webpack_require__(3991);\n;// CONCATENATED MODULE: ./formats/italic.js\nfunction italic_typeof(o) { \"@babel/helpers - typeof\"; return italic_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, italic_typeof(o); }\nfunction italic_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, italic_toPropertyKey(descriptor.key), descriptor); } }\nfunction italic_createClass(Constructor, protoProps, staticProps) { if (protoProps) italic_defineProperties(Constructor.prototype, protoProps); if (staticProps) italic_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction italic_toPropertyKey(arg) { var key = italic_toPrimitive(arg, \"string\"); return italic_typeof(key) === \"symbol\" ? key : String(key); }\nfunction italic_toPrimitive(input, hint) { if (italic_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (italic_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction italic_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction italic_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) italic_setPrototypeOf(subClass, superClass); }\nfunction italic_setPrototypeOf(o, p) { italic_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return italic_setPrototypeOf(o, p); }\nfunction italic_createSuper(Derived) { var hasNativeReflectConstruct = italic_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = italic_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = italic_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return italic_possibleConstructorReturn(this, result); }; }\nfunction italic_possibleConstructorReturn(self, call) { if (call && (italic_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return italic_assertThisInitialized(self); }\nfunction italic_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction italic_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction italic_getPrototypeOf(o) { italic_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return italic_getPrototypeOf(o); }\n\nvar Italic = /*#__PURE__*/function (_Bold) {\n italic_inherits(Italic, _Bold);\n var _super = italic_createSuper(Italic);\n function Italic() {\n italic_classCallCheck(this, Italic);\n return _super.apply(this, arguments);\n }\n return italic_createClass(Italic);\n}(bold/* default */.Z);\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n/* harmony default export */ const italic = (Italic);\n// EXTERNAL MODULE: ./formats/link.js\nvar formats_link = __webpack_require__(7256);\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(6603);\n;// CONCATENATED MODULE: ./formats/script.js\nfunction script_typeof(o) { \"@babel/helpers - typeof\"; return script_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, script_typeof(o); }\nfunction script_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction script_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, script_toPropertyKey(descriptor.key), descriptor); } }\nfunction script_createClass(Constructor, protoProps, staticProps) { if (protoProps) script_defineProperties(Constructor.prototype, protoProps); if (staticProps) script_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction script_toPropertyKey(arg) { var key = script_toPrimitive(arg, \"string\"); return script_typeof(key) === \"symbol\" ? key : String(key); }\nfunction script_toPrimitive(input, hint) { if (script_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (script_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction script_get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { script_get = Reflect.get.bind(); } else { script_get = function _get(target, property, receiver) { var base = script_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return script_get.apply(this, arguments); }\nfunction script_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = script_getPrototypeOf(object); if (object === null) break; } return object; }\nfunction script_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) script_setPrototypeOf(subClass, superClass); }\nfunction script_setPrototypeOf(o, p) { script_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return script_setPrototypeOf(o, p); }\nfunction script_createSuper(Derived) { var hasNativeReflectConstruct = script_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = script_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = script_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return script_possibleConstructorReturn(this, result); }; }\nfunction script_possibleConstructorReturn(self, call) { if (call && (script_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return script_assertThisInitialized(self); }\nfunction script_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction script_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction script_getPrototypeOf(o) { script_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return script_getPrototypeOf(o); }\n\nvar Script = /*#__PURE__*/function (_Inline) {\n script_inherits(Script, _Inline);\n var _super = script_createSuper(Script);\n function Script() {\n script_classCallCheck(this, Script);\n return _super.apply(this, arguments);\n }\n script_createClass(Script, null, [{\n key: \"create\",\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n }\n if (value === 'sub') {\n return document.createElement('sub');\n }\n return script_get(script_getPrototypeOf(Script), \"create\", this).call(this, value);\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n return Script;\n}(inline/* default */.Z);\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n/* harmony default export */ const script = (Script);\n;// CONCATENATED MODULE: ./formats/strike.js\nfunction strike_typeof(o) { \"@babel/helpers - typeof\"; return strike_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, strike_typeof(o); }\nfunction strike_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, strike_toPropertyKey(descriptor.key), descriptor); } }\nfunction strike_createClass(Constructor, protoProps, staticProps) { if (protoProps) strike_defineProperties(Constructor.prototype, protoProps); if (staticProps) strike_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction strike_toPropertyKey(arg) { var key = strike_toPrimitive(arg, \"string\"); return strike_typeof(key) === \"symbol\" ? key : String(key); }\nfunction strike_toPrimitive(input, hint) { if (strike_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (strike_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction strike_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction strike_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) strike_setPrototypeOf(subClass, superClass); }\nfunction strike_setPrototypeOf(o, p) { strike_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return strike_setPrototypeOf(o, p); }\nfunction strike_createSuper(Derived) { var hasNativeReflectConstruct = strike_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = strike_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = strike_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return strike_possibleConstructorReturn(this, result); }; }\nfunction strike_possibleConstructorReturn(self, call) { if (call && (strike_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return strike_assertThisInitialized(self); }\nfunction strike_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction strike_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction strike_getPrototypeOf(o) { strike_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return strike_getPrototypeOf(o); }\n\nvar Strike = /*#__PURE__*/function (_Bold) {\n strike_inherits(Strike, _Bold);\n var _super = strike_createSuper(Strike);\n function Strike() {\n strike_classCallCheck(this, Strike);\n return _super.apply(this, arguments);\n }\n return strike_createClass(Strike);\n}(bold/* default */.Z);\nStrike.blotName = 'strike';\nStrike.tagName = ['S', 'STRIKE'];\n/* harmony default export */ const strike = (Strike);\n;// CONCATENATED MODULE: ./formats/underline.js\nfunction underline_typeof(o) { \"@babel/helpers - typeof\"; return underline_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, underline_typeof(o); }\nfunction underline_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, underline_toPropertyKey(descriptor.key), descriptor); } }\nfunction underline_createClass(Constructor, protoProps, staticProps) { if (protoProps) underline_defineProperties(Constructor.prototype, protoProps); if (staticProps) underline_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction underline_toPropertyKey(arg) { var key = underline_toPrimitive(arg, \"string\"); return underline_typeof(key) === \"symbol\" ? key : String(key); }\nfunction underline_toPrimitive(input, hint) { if (underline_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (underline_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction underline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction underline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) underline_setPrototypeOf(subClass, superClass); }\nfunction underline_setPrototypeOf(o, p) { underline_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return underline_setPrototypeOf(o, p); }\nfunction underline_createSuper(Derived) { var hasNativeReflectConstruct = underline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = underline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = underline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return underline_possibleConstructorReturn(this, result); }; }\nfunction underline_possibleConstructorReturn(self, call) { if (call && (underline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return underline_assertThisInitialized(self); }\nfunction underline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction underline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction underline_getPrototypeOf(o) { underline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return underline_getPrototypeOf(o); }\n\nvar Underline = /*#__PURE__*/function (_Inline) {\n underline_inherits(Underline, _Inline);\n var _super = underline_createSuper(Underline);\n function Underline() {\n underline_classCallCheck(this, Underline);\n return _super.apply(this, arguments);\n }\n return underline_createClass(Underline);\n}(inline/* default */.Z);\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n/* harmony default export */ const underline = (Underline);\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(7452);\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(8034);\n;// CONCATENATED MODULE: ./formats/formula.js\nfunction formula_typeof(o) { \"@babel/helpers - typeof\"; return formula_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, formula_typeof(o); }\nfunction formula_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction formula_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, formula_toPropertyKey(descriptor.key), descriptor); } }\nfunction formula_createClass(Constructor, protoProps, staticProps) { if (protoProps) formula_defineProperties(Constructor.prototype, protoProps); if (staticProps) formula_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction formula_toPropertyKey(arg) { var key = formula_toPrimitive(arg, \"string\"); return formula_typeof(key) === \"symbol\" ? key : String(key); }\nfunction formula_toPrimitive(input, hint) { if (formula_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (formula_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction formula_get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { formula_get = Reflect.get.bind(); } else { formula_get = function _get(target, property, receiver) { var base = formula_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return formula_get.apply(this, arguments); }\nfunction formula_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = formula_getPrototypeOf(object); if (object === null) break; } return object; }\nfunction formula_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) formula_setPrototypeOf(subClass, superClass); }\nfunction formula_setPrototypeOf(o, p) { formula_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return formula_setPrototypeOf(o, p); }\nfunction formula_createSuper(Derived) { var hasNativeReflectConstruct = formula_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = formula_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = formula_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return formula_possibleConstructorReturn(this, result); }; }\nfunction formula_possibleConstructorReturn(self, call) { if (call && (formula_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return formula_assertThisInitialized(self); }\nfunction formula_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction formula_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction formula_getPrototypeOf(o) { formula_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return formula_getPrototypeOf(o); }\n\n\nvar Formula = /*#__PURE__*/function (_Embed) {\n formula_inherits(Formula, _Embed);\n var _super = formula_createSuper(Formula);\n function Formula() {\n formula_classCallCheck(this, Formula);\n return _super.apply(this, arguments);\n }\n formula_createClass(Formula, [{\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n formula = _this$value.formula;\n return \"<span>\".concat(formula, \"</span>\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var katex = null;\n if ((0,has_window/* default */.Z)()) {\n katex = window.katex;\n }\n if (katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n var node = formula_get(formula_getPrototypeOf(Formula), \"create\", this).call(this, value);\n if (typeof value === 'string') {\n katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n return Formula;\n}(blots_embed/* default */.Z);\nFormula.blotName = 'formula';\nFormula.className = 'ql-formula';\nFormula.tagName = 'SPAN';\n/* harmony default export */ const formula = (Formula);\n;// CONCATENATED MODULE: ./formats/image.js\nfunction image_typeof(o) { \"@babel/helpers - typeof\"; return image_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, image_typeof(o); }\nfunction image_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction image_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, image_toPropertyKey(descriptor.key), descriptor); } }\nfunction image_createClass(Constructor, protoProps, staticProps) { if (protoProps) image_defineProperties(Constructor.prototype, protoProps); if (staticProps) image_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction image_toPropertyKey(arg) { var key = image_toPrimitive(arg, \"string\"); return image_typeof(key) === \"symbol\" ? key : String(key); }\nfunction image_toPrimitive(input, hint) { if (image_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (image_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction image_get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { image_get = Reflect.get.bind(); } else { image_get = function _get(target, property, receiver) { var base = image_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return image_get.apply(this, arguments); }\nfunction image_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = image_getPrototypeOf(object); if (object === null) break; } return object; }\nfunction image_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) image_setPrototypeOf(subClass, superClass); }\nfunction image_setPrototypeOf(o, p) { image_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return image_setPrototypeOf(o, p); }\nfunction image_createSuper(Derived) { var hasNativeReflectConstruct = image_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = image_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = image_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return image_possibleConstructorReturn(this, result); }; }\nfunction image_possibleConstructorReturn(self, call) { if (call && (image_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return image_assertThisInitialized(self); }\nfunction image_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction image_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction image_getPrototypeOf(o) { image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return image_getPrototypeOf(o); }\n\n\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\nvar Image = /*#__PURE__*/function (_EmbedBlot) {\n image_inherits(Image, _EmbedBlot);\n var _super = image_createSuper(Image);\n function Image() {\n image_classCallCheck(this, Image);\n return _super.apply(this, arguments);\n }\n image_createClass(Image, [{\n key: \"format\",\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n image_get(image_getPrototypeOf(Image.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = image_get(image_getPrototypeOf(Image), \"create\", this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: \"match\",\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: \"register\",\n value: function register() {\n if ((0,has_window/* default */.Z)() && /Firefox/i.test(navigator.userAgent)) {\n setTimeout(function () {\n // Disable image resizing in Firefox\n document.execCommand('enableObjectResizing', false, false);\n }, 1);\n }\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return (0,formats_link/* sanitize */.N)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n return Image;\n}(parchment.EmbedBlot);\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n/* harmony default export */ const formats_image = (Image);\n;// CONCATENATED MODULE: ./formats/video.js\nfunction video_typeof(o) { \"@babel/helpers - typeof\"; return video_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, video_typeof(o); }\nfunction video_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction video_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, video_toPropertyKey(descriptor.key), descriptor); } }\nfunction video_createClass(Constructor, protoProps, staticProps) { if (protoProps) video_defineProperties(Constructor.prototype, protoProps); if (staticProps) video_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction video_toPropertyKey(arg) { var key = video_toPrimitive(arg, \"string\"); return video_typeof(key) === \"symbol\" ? key : String(key); }\nfunction video_toPrimitive(input, hint) { if (video_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (video_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction video_get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { video_get = Reflect.get.bind(); } else { video_get = function _get(target, property, receiver) { var base = video_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return video_get.apply(this, arguments); }\nfunction video_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = video_getPrototypeOf(object); if (object === null) break; } return object; }\nfunction video_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) video_setPrototypeOf(subClass, superClass); }\nfunction video_setPrototypeOf(o, p) { video_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return video_setPrototypeOf(o, p); }\nfunction video_createSuper(Derived) { var hasNativeReflectConstruct = video_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = video_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = video_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return video_possibleConstructorReturn(this, result); }; }\nfunction video_possibleConstructorReturn(self, call) { if (call && (video_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return video_assertThisInitialized(self); }\nfunction video_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction video_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction video_getPrototypeOf(o) { video_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return video_getPrototypeOf(o); }\n\n\nvar video_ATTRIBUTES = ['height', 'width'];\nvar Video = /*#__PURE__*/function (_BlockEmbed) {\n video_inherits(Video, _BlockEmbed);\n var _super = video_createSuper(Video);\n function Video() {\n video_classCallCheck(this, Video);\n return _super.apply(this, arguments);\n }\n video_createClass(Video, [{\n key: \"format\",\n value: function format(name, value) {\n if (video_ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n video_get(video_getPrototypeOf(Video.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n video = _this$value.video;\n return \"<a href=\\\"\".concat(video, \"\\\">\").concat(video, \"</a>\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = video_get(video_getPrototypeOf(Video), \"create\", this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return video_ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return formats_link/* default.sanitize */.Z.sanitize(url); // eslint-disable-line import/no-named-as-default-member\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n return Video;\n}(block/* BlockEmbed */.i2);\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n/* harmony default export */ const video = (Video);\n// EXTERNAL MODULE: ./formats/code.js\nvar code = __webpack_require__(7309);\n// EXTERNAL MODULE: ./modules/syntax.js\nvar syntax = __webpack_require__(9072);\n// EXTERNAL MODULE: ./modules/table/index.js\nvar table = __webpack_require__(867);\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(9098);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n;// CONCATENATED MODULE: ./blots/multiline_break.js\nfunction multiline_break_typeof(o) { \"@babel/helpers - typeof\"; return multiline_break_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, multiline_break_typeof(o); }\nfunction multiline_break_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction multiline_break_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, multiline_break_toPropertyKey(descriptor.key), descriptor); } }\nfunction multiline_break_createClass(Constructor, protoProps, staticProps) { if (protoProps) multiline_break_defineProperties(Constructor.prototype, protoProps); if (staticProps) multiline_break_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction multiline_break_toPropertyKey(arg) { var key = multiline_break_toPrimitive(arg, \"string\"); return multiline_break_typeof(key) === \"symbol\" ? key : String(key); }\nfunction multiline_break_toPrimitive(input, hint) { if (multiline_break_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (multiline_break_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction multiline_break_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) multiline_break_setPrototypeOf(subClass, superClass); }\nfunction multiline_break_setPrototypeOf(o, p) { multiline_break_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multiline_break_setPrototypeOf(o, p); }\nfunction multiline_break_createSuper(Derived) { var hasNativeReflectConstruct = multiline_break_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multiline_break_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multiline_break_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multiline_break_possibleConstructorReturn(this, result); }; }\nfunction multiline_break_possibleConstructorReturn(self, call) { if (call && (multiline_break_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return multiline_break_assertThisInitialized(self); }\nfunction multiline_break_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction multiline_break_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction multiline_break_getPrototypeOf(o) { multiline_break_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multiline_break_getPrototypeOf(o); }\n\nvar MultilineBreak = /*#__PURE__*/function (_EmbedBlot) {\n multiline_break_inherits(MultilineBreak, _EmbedBlot);\n var _super = multiline_break_createSuper(MultilineBreak);\n function MultilineBreak() {\n multiline_break_classCallCheck(this, MultilineBreak);\n return _super.apply(this, arguments);\n }\n multiline_break_createClass(MultilineBreak, [{\n key: \"length\",\n value: function length() {\n return 1;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n if (!this.prev && !this.next) {\n this.remove();\n }\n }\n }], [{\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }]);\n return MultilineBreak;\n}(parchment.EmbedBlot);\nMultilineBreak.blotName = 'multilineBreak';\nMultilineBreak.tagName = 'BR';\n/* harmony default export */ const multiline_break = (MultilineBreak);\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(7094);\n;// CONCATENATED MODULE: ./modules/multiline.js\nfunction multiline_typeof(o) { \"@babel/helpers - typeof\"; return multiline_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, multiline_typeof(o); }\nfunction _defineProperty(obj, key, value) { key = multiline_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction multiline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction multiline_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, multiline_toPropertyKey(descriptor.key), descriptor); } }\nfunction multiline_createClass(Constructor, protoProps, staticProps) { if (protoProps) multiline_defineProperties(Constructor.prototype, protoProps); if (staticProps) multiline_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction multiline_toPropertyKey(arg) { var key = multiline_toPrimitive(arg, \"string\"); return multiline_typeof(key) === \"symbol\" ? key : String(key); }\nfunction multiline_toPrimitive(input, hint) { if (multiline_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (multiline_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction multiline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) multiline_setPrototypeOf(subClass, superClass); }\nfunction multiline_setPrototypeOf(o, p) { multiline_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multiline_setPrototypeOf(o, p); }\nfunction multiline_createSuper(Derived) { var hasNativeReflectConstruct = multiline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multiline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multiline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multiline_possibleConstructorReturn(this, result); }; }\nfunction multiline_possibleConstructorReturn(self, call) { if (call && (multiline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return multiline_assertThisInitialized(self); }\nfunction multiline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction multiline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction multiline_getPrototypeOf(o) { multiline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multiline_getPrototypeOf(o); }\n\n\n\n\nfunction breakMatcher(node) {\n if (!(node.nextSibling || node.previousSibling)) {\n return new (Delta_default())().insert('\\n');\n }\n return new (Delta_default())().insert({\n multilineBreak: ''\n });\n}\nvar Multiline = /*#__PURE__*/function (_Module) {\n multiline_inherits(Multiline, _Module);\n var _super = multiline_createSuper(Multiline);\n function Multiline(quill, options) {\n var _this;\n multiline_classCallCheck(this, Multiline);\n var path = 'blots/multilineBreak';\n _this = _super.call(this, quill, options);\n core_quill/* default.register */.ZP.register(_defineProperty({}, path, multiline_break), true);\n quill.keyboard.addBinding({\n key: 'enter',\n shiftKey: true\n }, _this.enterHandler.bind(multiline_assertThisInitialized(_this)));\n quill.keyboard.bindings.enter.unshift(quill.keyboard.bindings.enter.pop());\n quill.clipboard.addMatcher('BR', breakMatcher);\n return _this;\n }\n multiline_createClass(Multiline, [{\n key: \"enterHandler\",\n value: function enterHandler(range) {\n var currentLeaf = this.quill.getLeaf(range.index)[0];\n var nextLeaf = this.quill.getLeaf(range.index + 1)[0];\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n }\n this.quill.setSelection(range.index + 1, core_quill/* default.sources.SILENT */.ZP.sources.SILENT);\n }\n }]);\n return Multiline;\n}(core_module/* default */.Z);\n/* harmony default export */ const multiline = (Multiline);\n// EXTERNAL MODULE: ./modules/table/lite.js + 3 modules\nvar lite = __webpack_require__(6054);\n// EXTERNAL MODULE: ./formats/table/attributors/cell.js\nvar cell = __webpack_require__(1342);\n// EXTERNAL MODULE: ./formats/table/attributors/table.js\nvar attributors_table = __webpack_require__(319);\n;// CONCATENATED MODULE: ./quill.js\nfunction quill_typeof(o) { \"@babel/helpers - typeof\"; return quill_typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, quill_typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { quill_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction quill_defineProperty(obj, key, value) { key = quill_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction quill_toPropertyKey(arg) { var key = quill_toPrimitive(arg, \"string\"); return quill_typeof(key) === \"symbol\" ? key : String(key); }\nfunction quill_toPrimitive(input, hint) { if (quill_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (quill_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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\nfunction registerAttributorArray(path, attributorArray) {\n return attributorArray.reduce(function (result, attributor) {\n var key = \"\".concat(path).concat(attributor.attrName);\n result[key] = attributor;\n return result;\n }, {});\n}\ncore[\"default\"].register(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n 'attributors/attribute/direction': direction/* DirectionAttribute */.IF\n}, registerAttributorArray('attributors/attribute/', attributors_table/* TABLE_ATTR_ATTRIBUTORS */.Qu)), registerAttributorArray('attributors/attribute/', cell/* TABLE_CELL_ATTR_ATTRIBUTORS */.yA)), {}, {\n 'attributors/class/align': align/* AlignClass */.dk,\n 'attributors/class/background': background/* BackgroundClass */.Y,\n 'attributors/class/color': color/* ColorClass */.Hn,\n 'attributors/class/direction': direction/* DirectionClass */.hY,\n 'attributors/class/font': font/* FontClass */._,\n 'attributors/class/size': size/* SizeClass */.m,\n 'attributors/style/align': align/* AlignStyle */.HE,\n 'attributors/style/background': background/* BackgroundStyle */.w,\n 'attributors/style/color': color/* ColorStyle */.HQ,\n 'attributors/style/direction': direction/* DirectionStyle */.H8,\n 'attributors/style/font': font/* FontStyle */.H,\n 'attributors/style/size': size/* SizeStyle */.Z\n}, registerAttributorArray('attributors/style/', attributors_table/* TABLE_STYLE_ATTRIBUTORS */.VT)), registerAttributorArray('attributors/style/', cell/* TABLE_CELL_STYLE_ATTRIBUTORS */.kk)), true);\ncore[\"default\"].register({\n 'formats/align': align/* AlignClass */.dk,\n 'formats/direction': direction/* DirectionClass */.hY,\n 'formats/indent': indent,\n 'formats/background': background/* BackgroundStyle */.w,\n 'formats/color': color/* ColorStyle */.HQ,\n 'formats/font': font/* FontClass */._,\n 'formats/size': size/* SizeClass */.m,\n 'formats/blockquote': blockquote,\n 'formats/code-block': code/* default */.ZP,\n 'formats/header': header,\n 'formats/list': ListItem,\n 'formats/bold': bold/* default */.Z,\n 'formats/code': code/* Code */.EK,\n 'formats/italic': italic,\n 'formats/link': formats_link/* default */.Z,\n 'formats/script': script,\n 'formats/strike': strike,\n 'formats/underline': underline,\n 'formats/formula': formula,\n 'formats/image': formats_image,\n 'formats/video': video,\n 'tableModules/lite': lite/* default */.Z,\n 'tableModules/main': table/* default */.Z,\n 'modules/syntax': syntax/* default */.ZP,\n 'modules/multiline': multiline,\n 'modules/table': table/* default */.Z\n}, true);\n/* harmony default export */ const quill = (core[\"default\"]);\n})();\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","/**\r\n * DevExtreme (esm/core/class.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"./errors\";\r\nimport {\r\n isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n defaultUseCurrencyAccountingStyle: true,\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return JSON.parse(optionsString)\r\n } catch (ex) {\r\n try {\r\n return JSON.parse(normalizeToJSONString(optionsString))\r\n } catch (exNormalize) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n }\r\n};\r\nvar normalizeToJSONString = optionsString => optionsString.replace(/'/g, '\"').replace(/,\\s*([\\]}])/g, \"$1\").replace(/([{,])\\s*([^\":\\s]+)\\s*:/g, '$1\"$2\":');\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getShadowElementsFromPoint\r\n} from \"./utils/shadow_dom\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar DOCUMENT_FRAGMENT_NODE = 11;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n createAttribute(text, context) {\r\n context = context || this._document;\r\n return context.createAttribute(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n isDocumentFragment: element => element && element.nodeType === DOCUMENT_FRAGMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n if (\"style\" === name) {\r\n element.style.cssText = value\r\n } else {\r\n element.setAttribute(name, value)\r\n }\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement(element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n return activeElementHolder.activeElement\r\n },\r\n getRootNode(element) {\r\n var _element$getRootNode, _element$getRootNode2;\r\n return null !== (_element$getRootNode = null === element || void 0 === element ? void 0 : null === (_element$getRootNode2 = element.getRootNode) || void 0 === _element$getRootNode2 ? void 0 : _element$getRootNode2.call(element)) && void 0 !== _element$getRootNode ? _element$getRootNode : this._document\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y, element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n if (activeElementHolder.host) {\r\n return getShadowElementsFromPoint(x, y, activeElementHolder)\r\n }\r\n return activeElementHolder.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/core/element_data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/errors.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2',\r\n W0019: \"DevExtreme: Unable to Locate a Valid License Key.\\n\\nIf you are using a 30-day trial version of DevExtreme, you must uninstall all copies of DevExtreme once your 30-day trial period expires. For terms and conditions that govern use of DevExtreme UI components/libraries, please refer to the DevExtreme End User License Agreement: https://js.devexpress.com/EULAs/DevExtremeComplete.\\n\\nTo use DevExtreme in a commercial project, you must purchase a license. For pricing/licensing options, please visit: https://js.devexpress.com/Buy.\\n\\nIf you have licensing-related questions or need help with a purchase, please email clientservices@devexpress.com.\\n\\n\",\r\n W0020: \"DevExtreme: License Key Has Expired.\\n\\nA mismatch exists between the license key used and the DevExtreme version referenced in this project.\\n\\nTo proceed, you can:\\n\\u2022 use a version of DevExtreme linked to your license key: https://www.devexpress.com/ClientCenter/DownloadManager\\n\\u2022 renew your DevExpress Subscription: https://www.devexpress.com/buy/renew (once you renew your subscription, you will be entitled to product updates and support service as defined in the DevExtreme End User License Agreement)\\n\\nIf you have licensing-related questions or need help with a renewal, please email clientservices@devexpress.com.\\n\\n\",\r\n W0021: \"DevExtreme: License Key Verification Has Failed.\\n\\nTo verify your DevExtreme license, make certain to specify a correct key in the GlobalConfig. If you continue to encounter this error, please visit https://www.devexpress.com/ClientCenter/DownloadManager to obtain a valid license key.\\n\\nIf you have a valid license and this problem persists, please submit a support ticket via the DevExpress Support Center. We will be happy to follow-up: https://supportcenter.devexpress.com/ticket/create.\\n\\n\",\r\n W0022: \"DevExtreme: Pre-release software. Not suitable for commercial use.\\n\\nPre-release software may contain deficiencies and as such, should not be considered for use or integrated in any mission critical application.\\n\\n\"\r\n});\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value && false !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element) || domAdapter.isDocumentFragment(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n var _element$host;\r\n element = null !== (_element$host = element.host) && void 0 !== _element$host ? _element$host : element;\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.select = function() {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].select && this[i].select()\r\n }\r\n return this\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar compareArrays = (array1, array2, depth, options) => {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n return !array1.some((item, idx) => !compareByValue(item, array2[idx], depth + 1, _extends({}, options, {\r\n strict: true\r\n })))\r\n};\r\nvar compareObjects = (object1, object2, depth, options) => {\r\n var keys1 = Object.keys(object1);\r\n var keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false\r\n }\r\n var keys2Set = new Set(keys2);\r\n return !keys1.some(key => !keys2Set.has(key) || !compareByValue(object1[key], object2[key], depth + 1, options))\r\n};\r\nvar DEFAULT_EQUAL_BY_VALUE_OPTS = {\r\n maxDepth: 3,\r\n strict: true\r\n};\r\nvar compareByValue = (value1, value2, depth, options) => {\r\n var {\r\n strict: strict,\r\n maxDepth: maxDepth\r\n } = options;\r\n var comparable1 = toComparable(value1, true);\r\n var comparable2 = toComparable(value2, true);\r\n var comparisonResult = strict ? comparable1 === comparable2 : comparable1 == comparable2;\r\n switch (true) {\r\n case comparisonResult:\r\n case depth >= maxDepth:\r\n return true;\r\n case isObject(comparable1) && isObject(comparable2):\r\n return compareObjects(comparable1, comparable2, depth, options);\r\n case Array.isArray(comparable1) && Array.isArray(comparable2):\r\n return compareArrays(comparable1, comparable2, depth, options);\r\n default:\r\n return false\r\n }\r\n};\r\nexport var equalByValue = function(value1, value2) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : DEFAULT_EQUAL_BY_VALUE_OPTS;\r\n var compareOptions = _extends({}, DEFAULT_EQUAL_BY_VALUE_OPTS, options);\r\n return compareByValue(value1, value2, 0, compareOptions)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/console.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n log: getConsoleMethod(\"log\"),\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n var _options$collatorOpti;\r\n if (\"base\" === (null === options || void 0 === options ? void 0 : null === (_options$collatorOpti = options.collatorOptions) || void 0 === _options$collatorOpti ? void 0 : _options$collatorOpti.sensitivity)) {\r\n var REMOVE_DIACRITICAL_MARKS_REGEXP = /[\\u0300-\\u036f]/g;\r\n value = value.normalize(\"NFD\").replace(REMOVE_DIACRITICAL_MARKS_REGEXP, \"\")\r\n }\r\n return null !== options && void 0 !== options && options.locale ? value.toLocaleLowerCase(options.locale) : value.toLowerCase()\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/deferred.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = Callbacks();\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args)\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"https://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n var kind = null !== id && void 0 !== id && id.startsWith(\"W\") ? \"warning\" : \"error\";\r\n return format.apply(this, [\"{0} - {1}.\\n\\nFor additional information on this {2} message, see: {3}\", id, details, kind, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/extend.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"<table>\",\r\n endTags: \"</table>\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"<table><tbody><tr>\",\r\n endTags: \"</tr></tbody></table>\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"<table><colgroup>\",\r\n endTags: \"</colgroup></table>\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"<table><tbody>\",\r\n endTags: \"</tbody></table>\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return [...container.childNodes]\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/shadow_dom.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar DX_RULE_PREFIX = \"dx-\";\r\nvar ownerDocumentStyleSheet = null;\r\n\r\nfunction createConstructedStyleSheet(rootNode) {\r\n try {\r\n return new CSSStyleSheet\r\n } catch (err) {\r\n var styleElement = rootNode.ownerDocument.createElement(\"style\");\r\n rootNode.appendChild(styleElement);\r\n return styleElement.sheet\r\n }\r\n}\r\n\r\nfunction processRules(targetStyleSheet, styleSheets, needApplyAllStyles) {\r\n for (var i = 0; i < styleSheets.length; i++) {\r\n var sheet = styleSheets[i];\r\n try {\r\n for (var j = 0; j < sheet.cssRules.length; j++) {\r\n insertRule(targetStyleSheet, sheet.cssRules[j], needApplyAllStyles)\r\n }\r\n } catch (err) {}\r\n }\r\n}\r\n\r\nfunction insertRule(targetStyleSheet, rule, needApplyAllStyles) {\r\n var _rule$selectorText, _rule$cssRules, _rule$cssRules$, _rule$cssRules$$selec, _rule$name, _rule$style;\r\n var isDxRule = needApplyAllStyles || (null === (_rule$selectorText = rule.selectorText) || void 0 === _rule$selectorText ? void 0 : _rule$selectorText.includes(DX_RULE_PREFIX)) || (null === (_rule$cssRules = rule.cssRules) || void 0 === _rule$cssRules ? void 0 : null === (_rule$cssRules$ = _rule$cssRules[0]) || void 0 === _rule$cssRules$ ? void 0 : null === (_rule$cssRules$$selec = _rule$cssRules$.selectorText) || void 0 === _rule$cssRules$$selec ? void 0 : _rule$cssRules$$selec.includes(DX_RULE_PREFIX)) || (null === (_rule$name = rule.name) || void 0 === _rule$name ? void 0 : _rule$name.startsWith(DX_RULE_PREFIX)) || \"DXIcons\" === (null === (_rule$style = rule.style) || void 0 === _rule$style ? void 0 : _rule$style.fontFamily);\r\n if (isDxRule) {\r\n targetStyleSheet.insertRule(rule.cssText, targetStyleSheet.cssRules.length)\r\n }\r\n}\r\nexport function addShadowDomStyles($element) {\r\n var _el$getRootNode;\r\n var el = $element.get(0);\r\n var root = null === (_el$getRootNode = el.getRootNode) || void 0 === _el$getRootNode ? void 0 : _el$getRootNode.call(el);\r\n if (!(null !== root && void 0 !== root && root.host)) {\r\n return\r\n }\r\n if (!ownerDocumentStyleSheet) {\r\n ownerDocumentStyleSheet = createConstructedStyleSheet(root);\r\n processRules(ownerDocumentStyleSheet, el.ownerDocument.styleSheets, false)\r\n }\r\n var currentShadowDomStyleSheet = createConstructedStyleSheet(root);\r\n processRules(currentShadowDomStyleSheet, root.styleSheets, true);\r\n root.adoptedStyleSheets = [ownerDocumentStyleSheet, currentShadowDomStyleSheet]\r\n}\r\n\r\nfunction isPositionInElementRectangle(element, x, y) {\r\n var rect = element.getBoundingClientRect();\r\n return rect && x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom\r\n}\r\n\r\nfunction createQueue() {\r\n var shiftIndex = 0;\r\n var items = [];\r\n return {\r\n push(item) {\r\n items.push(item);\r\n return this\r\n },\r\n shift() {\r\n shiftIndex++;\r\n return items[shiftIndex - 1]\r\n },\r\n get length() {\r\n return items.length - shiftIndex\r\n },\r\n get items() {\r\n return items\r\n }\r\n }\r\n}\r\nexport function getShadowElementsFromPoint(x, y, root) {\r\n var elementQueue = createQueue().push(root);\r\n while (elementQueue.length) {\r\n var el = elementQueue.shift();\r\n for (var i = 0; i < el.childNodes.length; i++) {\r\n var childNode = el.childNodes[i];\r\n if (childNode.nodeType === Node.ELEMENT_NODE && isPositionInElementRectangle(childNode, x, y) && \"none\" !== getComputedStyle(childNode).pointerEvents) {\r\n elementQueue.push(childNode)\r\n }\r\n }\r\n }\r\n var result = elementQueue.items.reverse();\r\n result.pop();\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container, element) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n } else if (element && value.indexOf(\"em\") > 0) {\r\n value = parseFloat(value.replace(\"em\", \"\")) * parseFloat(window.getComputedStyle(element).fontSize)\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/string.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var replaceAll = function(text, searchToken, replacementToken) {\r\n return text.replace(new RegExp(\"(\" + (str = searchToken, (str + \"\").replace(/([\\\\+*?.[^\\]$(){}><|=!:])/g, \"\\\\$1\")) + \")\", \"gi\"), replacementToken);\r\n var str\r\n};\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nvar setStyle = function(element, styleString) {\r\n var resetStyle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n if (resetStyle) {\r\n var styleList = [].slice.call(element.style);\r\n styleList.forEach(propertyName => {\r\n element.style.removeProperty(propertyName)\r\n })\r\n }\r\n styleString.split(\";\").forEach(style => {\r\n var parts = style.split(\":\").map(stylePart => stylePart.trim());\r\n if (2 === parts.length) {\r\n var [property, value] = parts;\r\n element.style[property] = value\r\n }\r\n })\r\n};\r\nexport {\r\n styleProp,\r\n setStyle,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/type.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar types = {\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object Object]\": \"object\",\r\n \"[object String]\": \"string\"\r\n};\r\nvar type = function(object) {\r\n if (null === object) {\r\n return \"null\"\r\n }\r\n var typeOfObject = Object.prototype.toString.call(object);\r\n return \"object\" === typeof object ? types[typeOfObject] || \"object\" : typeof object\r\n};\r\nvar isBoolean = function(object) {\r\n return \"boolean\" === typeof object\r\n};\r\nvar isExponential = function(value) {\r\n return isNumeric(value) && -1 !== value.toString().indexOf(\"e\")\r\n};\r\nvar isDate = function(object) {\r\n return \"date\" === type(object)\r\n};\r\nvar isDefined = function(object) {\r\n return null !== object && void 0 !== object\r\n};\r\nvar isFunction = function(object) {\r\n return \"function\" === typeof object\r\n};\r\nvar isString = function(object) {\r\n return \"string\" === typeof object\r\n};\r\nvar isNumeric = function(object) {\r\n return \"number\" === typeof object && isFinite(object) || !isNaN(object - parseFloat(object))\r\n};\r\nvar isObject = function(object) {\r\n return \"object\" === type(object)\r\n};\r\nvar isEmptyObject = function(object) {\r\n var property;\r\n for (property in object) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar isPlainObject = function(object) {\r\n if (!object || \"object\" !== type(object)) {\r\n return false\r\n }\r\n var proto = Object.getPrototypeOf(object);\r\n if (!proto) {\r\n return true\r\n }\r\n var ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\r\n return \"function\" === typeof ctor && Object.toString.call(ctor) === Object.toString.call(Object)\r\n};\r\nvar isPrimitive = function(value) {\r\n return -1 === [\"object\", \"array\", \"function\"].indexOf(type(value))\r\n};\r\nvar isWindow = function(object) {\r\n return null != object && object === object.window\r\n};\r\nvar isRenderer = function(object) {\r\n return !!object && !!(object.jquery || object.dxRenderer)\r\n};\r\nvar isPromise = function(object) {\r\n return !!object && isFunction(object.then)\r\n};\r\nvar isDeferred = function(object) {\r\n return !!object && isFunction(object.done) && isFunction(object.fail)\r\n};\r\nvar isEvent = function(object) {\r\n return !!(object && object.preventDefault)\r\n};\r\nexport {\r\n isBoolean,\r\n isExponential,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isNumeric,\r\n isObject,\r\n isEmptyObject,\r\n isPlainObject,\r\n isPrimitive,\r\n isWindow,\r\n isRenderer,\r\n isPromise,\r\n isDeferred,\r\n type,\r\n isEvent\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/variable_wrapper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"23.2.4\";\r\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n _langParams: {},\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _clearCache: noop,\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n if (!isEmptyObject(this._langParams)) {\r\n options = options || {};\r\n options._langParams = _extends({}, this._langParams, options._langParams)\r\n }\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePushAggregation\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"beforePush\", [{\r\n changes: changes\r\n }]);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue, options) {\r\n if (isString(xValue) && isString(yValue) && (null !== options && void 0 !== options && options.locale || null !== options && void 0 !== options && options.collatorOptions)) {\r\n return new Intl.Collator((null === options || void 0 === options ? void 0 : options.locale) || void 0, (null === options || void 0 === options ? void 0 : options.collatorOptions) || void 0).compare(xValue, yValue)\r\n }\r\n xValue = toComparable(xValue, false, options);\r\n yValue = toComparable(yValue, false, options);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n this.langParams = iter.langParams;\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap);\r\n iter.langParams = this.langParams\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare,\r\n langParams: this.langParams\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _getDefaultCompare: langParams => (xValue, yValue) => defaultCompare(xValue, yValue, langParams),\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || this._getDefaultCompare(rule.langParams);\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var langParams = {};\r\n var _toComparable = value => toComparable(value, false, langParams);\r\n var toString = function(value) {\r\n var _langParams;\r\n return isDefined(value) ? null !== (_langParams = langParams) && void 0 !== _langParams && _langParams.locale ? value.toLocaleString(langParams.locale) : value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = _toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit, options) {\r\n langParams = options || {};\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this, langParams));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1], langParams);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = _toComparable(value);\r\n var compare = (obj, operatorFn) => {\r\n obj = _toComparable(getter(obj));\r\n return (null == value || null == obj) && value !== obj ? false : operatorFn(obj, value)\r\n };\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return obj => compare(obj, (a, b) => a > b);\r\n case \"<\":\r\n return obj => compare(obj, (a, b) => a < b);\r\n case \">=\":\r\n return obj => compare(obj, (a, b) => a >= b);\r\n case \"<=\":\r\n return obj => compare(obj, (a, b) => a <= b);\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === _toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = _toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return _toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === _toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.langParams = iter.langParams;\r\n this.criteria = compileCriteria(criteria, this.langParams)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n if (queryOptions.langParams) {\r\n iter.langParams = queryOptions.langParams\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n setLangParams(options) {\r\n iter.langParams = options\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstanceWithChangedPaths(instance, changes, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = _extends({}, instance);\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var name in instanceWithoutPrototype) {\r\n var value = instanceWithoutPrototype[name];\r\n var change = null === changes || void 0 === changes ? void 0 : changes[name];\r\n if (isObject(value) && !isPlainObject(value) && isObject(change) && !clonedInstances.has(value)) {\r\n result[name] = cloneInstanceWithChangedPaths(value, change, clonedInstances)\r\n }\r\n }\r\n for (var _name in result) {\r\n var prop = result[_name];\r\n if (isObject(prop) && clonedInstances.has(prop)) {\r\n result[_name] = clonedInstances.get(prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstanceWithChangedPaths(target, changes);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError,\r\n skipCopying: skipCopying\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError, skipCopying);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError, skipCopying) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) && !skipCopying ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n _clearCache() {\r\n delete this.__rawData\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n this._clearCache()\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n var _options;\r\n options = options || {};\r\n var filter = options.filter;\r\n if (null !== (_options = options) && void 0 !== _options && _options.langParams) {\r\n var _query$setLangParams, _query;\r\n null === (_query$setLangParams = (_query = query).setLangParams) || void 0 === _query$setLangParams ? void 0 : _query$setLangParams.call(_query, options.langParams)\r\n }\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], {\r\n strict: false\r\n })) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, {\r\n strict: false\r\n })\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n return function() {\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n func.call(this)\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 23.2.4\r\n * Build date: Mon Jan 29 2024\r\n *\r\n * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var _element$parentNode;\r\n var parent = null !== (_element$parentNode = element.parentNode) && void 0 !== _element$parentNode ? _element$parentNode : isObject(element.host) ? element.host : null;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/*! ExcelJS 21-08-2021 */\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).ExcelJS=t()}}((function(){return function t(e,r,n){function i(a,s){if(!r[a]){if(!e[a]){var u=\"function\"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var c=new Error(\"Cannot find module '\"+a+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var f=r[a]={exports:{}};e[a][0].call(f.exports,(function(t){return i(e[a][1][t]||t)}),f,f.exports,t,e,r,n)}return r[a].exports}for(var o=\"function\"==typeof require&&require,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function s(t){i(a,n,o,s,u,\"next\",t)}function u(t){i(a,n,o,s,u,\"throw\",t)}s(void 0)}))}}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var s=t(\"fs\"),u=t(\"fast-csv\"),c=t(\"dayjs/plugin/customParseFormat\"),f=t(\"dayjs/plugin/utc\"),l=t(\"dayjs\").extend(c).extend(f),h=t(\"../utils/stream-buf\"),d=t(\"../utils/utils\").fs.exists,p={true:!0,false:!1,\"#N/A\":{error:\"#N/A\"},\"#REF!\":{error:\"#REF!\"},\"#NAME?\":{error:\"#NAME?\"},\"#DIV/0!\":{error:\"#DIV/0!\"},\"#NULL!\":{error:\"#NULL!\"},\"#VALUE!\":{error:\"#VALUE!\"},\"#NUM!\":{error:\"#NUM!\"}},m=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.workbook=e,this.worksheet=null}var e,r,i,c,f;return e=t,(r=[{key:\"readFile\",value:(f=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=r||{},t.next=3,d(e);case 3:if(t.sent){t.next=5;break}throw new Error(\"File not found: \".concat(e));case 5:return n=s.createReadStream(e),t.next=8,this.read(n,r);case 8:return i=t.sent,n.close(),t.abrupt(\"return\",i);case 11:case\"end\":return t.stop()}}),t,this)}))),function(t,e){return f.apply(this,arguments)})},{key:\"read\",value:function(t,e){var r=this;return e=e||{},new Promise((function(n,i){var o=r.workbook.addWorksheet(e.sheetName),a=e.dateFormats||[\"YYYY-MM-DD[T]HH:mm:ssZ\",\"YYYY-MM-DD[T]HH:mm:ss\",\"MM-DD-YYYY\",\"YYYY-MM-DD\"],s=e.map||function(t){if(\"\"===t)return null;var e=Number(t);if(!Number.isNaN(e)&&e!==1/0)return e;var r=a.reduce((function(e,r){if(e)return e;var n=l(t,r,!0);return n.isValid()?n:null}),null);if(r)return new Date(r.valueOf());var n=p[t];return void 0!==n?n:t},c=u.parse(e.parserOptions).on(\"data\",(function(t){o.addRow(t.map(s))})).on(\"end\",(function(){c.emit(\"worksheet\",o)}));c.on(\"worksheet\",n).on(\"error\",i),t.pipe(c)}))}},{key:\"createInputStream\",value:function(){throw new Error(\"`CSV#createInputStream` is deprecated. You should use `CSV#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\")}},{key:\"write\",value:function(t,e){var r=this;return new Promise((function(i,o){e=e||{};var a=r.workbook.getWorksheet(e.sheetName||e.sheetId),s=u.format(e.formatterOptions);t.on(\"finish\",(function(){i()})),s.on(\"error\",o),s.pipe(t);var c=e,f=c.dateFormat,h=c.dateUTC,d=e.map||function(t){if(t){if(t.text||t.hyperlink)return t.hyperlink||t.text||\"\";if(t.formula||t.result)return t.result||\"\";if(t instanceof Date)return f?h?l.utc(t).format(f):l(t).format(f):h?l.utc(t).format():l(t).format();if(t.error)return t.error;if(\"object\"===n(t))return JSON.stringify(t)}return t},p=void 0===e.includeEmptyRows||e.includeEmptyRows,m=1;a&&a.eachRow((function(t,e){if(p)for(;m++<e-1;)s.write([]);var r=t.values;r.shift(),s.write(r.map(d)),m=e})),s.end()}))}},{key:\"writeFile\",value:function(t,e){var r={encoding:(e=e||{}).encoding||\"utf8\"},n=s.createWriteStream(t,r);return this.write(n,e)}},{key:\"writeBuffer\",value:(c=o(regeneratorRuntime.mark((function t(e){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=new h,t.next=3,this.write(r,e);case 3:return t.abrupt(\"return\",r.read());case 4:case\"end\":return t.stop()}}),t,this)}))),function(t){return c.apply(this,arguments)})}])&&a(e.prototype,r),i&&a(e,i),t}();e.exports=m},{\"../utils/stream-buf\":23,\"../utils/utils\":26,dayjs:336,\"dayjs/plugin/customParseFormat\":337,\"dayjs/plugin/utc\":338,\"fast-csv\":369,fs:215}],2:[function(t,e,r){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var o=t(\"../utils/col-cache\"),a=function(){function t(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(n(this,t),r)if(\"string\"==typeof r){var a=o.decodeAddress(r);this.nativeCol=a.col+i,this.nativeColOff=0,this.nativeRow=a.row+i,this.nativeRowOff=0}else void 0!==r.nativeCol?(this.nativeCol=r.nativeCol||0,this.nativeColOff=r.nativeColOff||0,this.nativeRow=r.nativeRow||0,this.nativeRowOff=r.nativeRowOff||0):void 0!==r.col?(this.col=r.col+i,this.row=r.row+i):(this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0);else this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0;this.worksheet=e}var e,r,a;return e=t,a=[{key:\"asInstance\",value:function(e){return e instanceof t||null==e?e:new t(e)}}],(r=[{key:\"col\",get:function(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth},set:function(t){this.nativeCol=Math.floor(t),this.nativeColOff=Math.floor((t-this.nativeCol)*this.colWidth)}},{key:\"row\",get:function(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight},set:function(t){this.nativeRow=Math.floor(t),this.nativeRowOff=Math.floor((t-this.nativeRow)*this.rowHeight)}},{key:\"colWidth\",get:function(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(1e4*this.worksheet.getColumn(this.nativeCol+1).width):64e4}},{key:\"rowHeight\",get:function(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(1e4*this.worksheet.getRow(this.nativeRow+1).height):18e4}},{key:\"model\",get:function(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff}},set:function(t){this.nativeCol=t.nativeCol,this.nativeColOff=t.nativeColOff,this.nativeRow=t.nativeRow,this.nativeRowOff=t.nativeRowOff}}])&&i(e.prototype,r),a&&i(e,a),t}();e.exports=a},{\"../utils/col-cache\":19}],3:[function(t,e,r){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,r){return e&&i(t.prototype,e),r&&i(t,r),t}var a=t(\"../utils/col-cache\"),s=t(\"../utils/under-dash\"),u=t(\"./enums\"),c=t(\"../utils/shared-formula\").slideFormula,f=t(\"./note\"),l=function(){function t(e,r,i){if(n(this,t),!e||!r)throw new Error(\"A Cell needs a Row\");this._row=e,this._column=r,a.validateAddress(i),this._address=i,this._value=S.create(t.Types.Null,this),this.style=this._mergeStyle(e.style,r.style,{}),this._mergeCount=0}return o(t,[{key:\"destroy\",value:function(){delete this.style,delete this._value,delete this._row,delete this._column,delete this._address}},{key:\"_mergeStyle\",value:function(t,e,r){var n=t&&t.numFmt||e&&e.numFmt;n&&(r.numFmt=n);var i=t&&t.font||e&&e.font;i&&(r.font=i);var o=t&&t.alignment||e&&e.alignment;o&&(r.alignment=o);var a=t&&t.border||e&&e.border;a&&(r.border=a);var s=t&&t.fill||e&&e.fill;s&&(r.fill=s);var u=t&&t.protection||e&&e.protection;return u&&(r.protection=u),r}},{key:\"toCsvString\",value:function(){return this._value.toCsvString()}},{key:\"addMergeRef\",value:function(){this._mergeCount++}},{key:\"releaseMergeRef\",value:function(){this._mergeCount--}},{key:\"merge\",value:function(e,r){this._value.release(),this._value=S.create(t.Types.Merge,this,e),r||(this.style=e.style)}},{key:\"unmerge\",value:function(){this.type===t.Types.Merge&&(this._value.release(),this._value=S.create(t.Types.Null,this),this.style=this._mergeStyle(this._row.style,this._column.style,{}))}},{key:\"isMergedTo\",value:function(e){return this._value.type===t.Types.Merge&&this._value.isMergedTo(e)}},{key:\"toString\",value:function(){return this.text}},{key:\"_upgradeToHyperlink\",value:function(e){this.type===t.Types.String&&(this._value=S.create(t.Types.Hyperlink,this,{text:this._value.value,hyperlink:e}))}},{key:\"addName\",value:function(t){this.workbook.definedNames.addEx(this.fullAddress,t)}},{key:\"removeName\",value:function(t){this.workbook.definedNames.removeEx(this.fullAddress,t)}},{key:\"removeAllNames\",value:function(){this.workbook.definedNames.removeAllNames(this.fullAddress)}},{key:\"worksheet\",get:function(){return this._row.worksheet}},{key:\"workbook\",get:function(){return this._row.worksheet.workbook}},{key:\"numFmt\",get:function(){return this.style.numFmt},set:function(t){this.style.numFmt=t}},{key:\"font\",get:function(){return this.style.font},set:function(t){this.style.font=t}},{key:\"alignment\",get:function(){return this.style.alignment},set:function(t){this.style.alignment=t}},{key:\"border\",get:function(){return this.style.border},set:function(t){this.style.border=t}},{key:\"fill\",get:function(){return this.style.fill},set:function(t){this.style.fill=t}},{key:\"protection\",get:function(){return this.style.protection},set:function(t){this.style.protection=t}},{key:\"address\",get:function(){return this._address}},{key:\"row\",get:function(){return this._row.number}},{key:\"col\",get:function(){return this._column.number}},{key:\"$col$row\",get:function(){return\"$\".concat(this._column.letter,\"$\").concat(this.row)}},{key:\"type\",get:function(){return this._value.type}},{key:\"effectiveType\",get:function(){return this._value.effectiveType}},{key:\"isMerged\",get:function(){return this._mergeCount>0||this.type===t.Types.Merge}},{key:\"master\",get:function(){return this.type===t.Types.Merge?this._value.master:this}},{key:\"isHyperlink\",get:function(){return this._value.type===t.Types.Hyperlink}},{key:\"hyperlink\",get:function(){return this._value.hyperlink}},{key:\"value\",get:function(){return this._value.value},set:function(e){this.type!==t.Types.Merge?(this._value.release(),this._value=S.create(S.getType(e),this,e)):this._value.master.value=e}},{key:\"note\",get:function(){return this._comment&&this._comment.note},set:function(t){this._comment=new f(t)}},{key:\"text\",get:function(){return this._value.toString()}},{key:\"html\",get:function(){return s.escapeHtml(this.text)}},{key:\"formula\",get:function(){return this._value.formula}},{key:\"result\",get:function(){return this._value.result}},{key:\"formulaType\",get:function(){return this._value.formulaType}},{key:\"fullAddress\",get:function(){return{sheetName:this._row.worksheet.name,address:this.address,row:this.row,col:this.col}}},{key:\"name\",get:function(){return this.names[0]},set:function(t){this.names=[t]}},{key:\"names\",get:function(){return this.workbook.definedNames.getNamesEx(this.fullAddress)},set:function(t){var e=this,r=this.workbook.definedNames;r.removeAllNames(this.fullAddress),t.forEach((function(t){r.addEx(e.fullAddress,t)}))}},{key:\"_dataValidations\",get:function(){return this.worksheet.dataValidations}},{key:\"dataValidation\",get:function(){return this._dataValidations.find(this.address)},set:function(t){this._dataValidations.add(this.address,t)}},{key:\"model\",get:function(){var t=this._value.model;return t.style=this.style,this._comment&&(t.comment=this._comment.model),t},set:function(t){if(this._value.release(),this._value=S.create(t.type,this),this._value.model=t,t.comment)switch(t.comment.type){case\"note\":this._comment=f.fromModel(t.comment)}t.style?this.style=t.style:this.style={}}}]),t}();l.Types=u.ValueType;var h=function(){function t(e){n(this,t),this.model={address:e.address,type:l.Types.Null}}return o(t,[{key:\"toCsvString\",value:function(){return\"\"}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return\"\"}},{key:\"value\",get:function(){return null},set:function(t){}},{key:\"type\",get:function(){return l.Types.Null}},{key:\"effectiveType\",get:function(){return l.Types.Null}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),d=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Number,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.model.value.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.Number}},{key:\"effectiveType\",get:function(){return l.Types.Number}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),p=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return'\"'.concat(this.model.value.replace(/\"/g,'\"\"'),'\"')}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.String}},{key:\"effectiveType\",get:function(){return l.Types.String}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),m=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:r}}return o(t,[{key:\"toString\",value:function(){return this.model.value.richText.map((function(t){return t.text})).join(\"\")}},{key:\"toCsvString\",value:function(){return'\"'.concat(this.text.replace(/\"/g,'\"\"'),'\"')}},{key:\"release\",value:function(){}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.RichText}},{key:\"effectiveType\",get:function(){return l.Types.RichText}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),y=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Date,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.model.value.toISOString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.Date}},{key:\"effectiveType\",get:function(){return l.Types.Date}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),b=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Hyperlink,text:r?r.text:void 0,hyperlink:r?r.hyperlink:void 0},r&&r.tooltip&&(this.model.tooltip=r.tooltip)}return o(t,[{key:\"toCsvString\",value:function(){return this.model.hyperlink}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.text}},{key:\"value\",get:function(){var t={text:this.model.text,hyperlink:this.model.hyperlink};return this.model.tooltip&&(t.tooltip=this.model.tooltip),t},set:function(t){this.model={text:t.text,hyperlink:t.hyperlink},t.tooltip&&(this.model.tooltip=t.tooltip)}},{key:\"text\",get:function(){return this.model.text},set:function(t){this.model.text=t}},{key:\"hyperlink\",get:function(){return this.model.hyperlink},set:function(t){this.model.hyperlink=t}},{key:\"type\",get:function(){return l.Types.Hyperlink}},{key:\"effectiveType\",get:function(){return l.Types.Hyperlink}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),v=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Merge,master:r?r.address:void 0},this._master=r,r&&r.addMergeRef()}return o(t,[{key:\"isMergedTo\",value:function(t){return t===this._master}},{key:\"toCsvString\",value:function(){return\"\"}},{key:\"release\",value:function(){this._master.releaseMergeRef()}},{key:\"toString\",value:function(){return this.value.toString()}},{key:\"value\",get:function(){return this._master.value},set:function(t){t instanceof l?(this._master&&this._master.releaseMergeRef(),t.addMergeRef(),this._master=t):this._master.value=t}},{key:\"master\",get:function(){return this._master}},{key:\"type\",get:function(){return l.Types.Merge}},{key:\"effectiveType\",get:function(){return this._master.effectiveType}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),g=function(){function t(e,r){n(this,t),this.cell=e,this.model={address:e.address,type:l.Types.Formula,shareType:r?r.shareType:void 0,ref:r?r.ref:void 0,formula:r?r.formula:void 0,sharedFormula:r?r.sharedFormula:void 0,result:r?r.result:void 0}}return o(t,[{key:\"_copyModel\",value:function(t){var e={},r=function(r){var n=t[r];n&&(e[r]=n)};return r(\"formula\"),r(\"result\"),r(\"ref\"),r(\"shareType\"),r(\"sharedFormula\"),e}},{key:\"validate\",value:function(t){switch(S.getType(t)){case l.Types.Null:case l.Types.String:case l.Types.Number:case l.Types.Date:break;case l.Types.Hyperlink:case l.Types.Formula:default:throw new Error(\"Cannot process that type of result value\")}}},{key:\"_getTranslatedFormula\",value:function(){if(!this._translatedFormula&&this.model.sharedFormula){var t=this.cell.worksheet.findCell(this.model.sharedFormula);this._translatedFormula=t&&c(t.formula,t.address,this.model.address)}return this._translatedFormula}},{key:\"toCsvString\",value:function(){return\"\".concat(this.model.result||\"\")}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.result?this.model.result.toString():\"\"}},{key:\"value\",get:function(){return this._copyModel(this.model)},set:function(t){this.model=this._copyModel(t)}},{key:\"dependencies\",get:function(){return{ranges:this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g),cells:this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g,\"\").match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g)}}},{key:\"formula\",get:function(){return this.model.formula||this._getTranslatedFormula()},set:function(t){this.model.formula=t}},{key:\"formulaType\",get:function(){return this.model.formula?u.FormulaType.Master:this.model.sharedFormula?u.FormulaType.Shared:u.FormulaType.None}},{key:\"result\",get:function(){return this.model.result},set:function(t){this.model.result=t}},{key:\"type\",get:function(){return l.Types.Formula}},{key:\"effectiveType\",get:function(){var t=this.model.result;return null==t?u.ValueType.Null:t instanceof String||\"string\"==typeof t?u.ValueType.String:\"number\"==typeof t?u.ValueType.Number:t instanceof Date?u.ValueType.Date:t.text&&t.hyperlink?u.ValueType.Hyperlink:t.formula?u.ValueType.Formula:u.ValueType.Null}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),w=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.SharedString,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.model.value.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.SharedString}},{key:\"effectiveType\",get:function(){return l.Types.SharedString}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),_=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Boolean,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.model.value?1:0}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.Boolean}},{key:\"effectiveType\",get:function(){return l.Types.Boolean}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),k=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.Error,value:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.error.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(t){this.model.value=t}},{key:\"type\",get:function(){return l.Types.Error}},{key:\"effectiveType\",get:function(){return l.Types.Error}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),x=function(){function t(e,r){n(this,t),this.model={address:e.address,type:l.Types.String,value:JSON.stringify(r),rawValue:r}}return o(t,[{key:\"toCsvString\",value:function(){return this.model.value}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value}},{key:\"value\",get:function(){return this.model.rawValue},set:function(t){this.model.rawValue=t,this.model.value=JSON.stringify(t)}},{key:\"type\",get:function(){return l.Types.String}},{key:\"effectiveType\",get:function(){return l.Types.String}},{key:\"address\",get:function(){return this.model.address},set:function(t){this.model.address=t}}]),t}(),S={getType:function(t){return null==t?l.Types.Null:t instanceof String||\"string\"==typeof t?l.Types.String:\"number\"==typeof t?l.Types.Number:\"boolean\"==typeof t?l.Types.Boolean:t instanceof Date?l.Types.Date:t.text&&t.hyperlink?l.Types.Hyperlink:t.formula||t.sharedFormula?l.Types.Formula:t.richText?l.Types.RichText:t.sharedString?l.Types.SharedString:t.error?l.Types.Error:l.Types.JSON},types:[{t:l.Types.Null,f:h},{t:l.Types.Number,f:d},{t:l.Types.String,f:p},{t:l.Types.Date,f:y},{t:l.Types.Hyperlink,f:b},{t:l.Types.Formula,f:g},{t:l.Types.Merge,f:v},{t:l.Types.JSON,f:x},{t:l.Types.SharedString,f:w},{t:l.Types.RichText,f:m},{t:l.Types.Boolean,f:_},{t:l.Types.Error,f:k}].reduce((function(t,e){return t[e.t]=e.f,t}),[]),create:function(t,e,r){var n=this.types[t];if(!n)throw new Error(\"Could not create Value of type \".concat(t));return new n(e,r)}};e.exports=l},{\"../utils/col-cache\":19,\"../utils/shared-formula\":22,\"../utils/under-dash\":25,\"./enums\":7,\"./note\":9}],4:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"../utils/under-dash\"),o=t(\"./enums\"),a=t(\"../utils/col-cache\"),s=function(){function t(e,r,n){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._worksheet=e,this._number=r,!1!==n&&(this.defn=n)}var e,r,s;return e=t,s=[{key:\"toModel\",value:function(t){var e=[],r=null;return t&&t.forEach((function(t,n){t.isDefault?r&&(r=null):r&&t.equivalentTo(r)?r.max=n+1:(r={min:n+1,max:n+1,width:void 0!==t.width?t.width:9,style:t.style,isCustomWidth:t.isCustomWidth,hidden:t.hidden,outlineLevel:t.outlineLevel,collapsed:t.collapsed},e.push(r))})),e.length?e:void 0}},{key:\"fromModel\",value:function(e,r){r=r||[];for(var n=[],i=1,o=0;o<r.length;){for(var a=r[o++];i<a.min;)n.push(new t(e,i++));for(;i<=a.max;)n.push(new t(e,i++,a))}return n.length?n:null}}],(r=[{key:\"toString\",value:function(){return JSON.stringify({key:this.key,width:this.width,headers:this.headers.length?this.headers:void 0})}},{key:\"equivalentTo\",value:function(t){return this.width===t.width&&this.hidden===t.hidden&&this.outlineLevel===t.outlineLevel&&i.isEqual(this.style,t.style)}},{key:\"eachCell\",value:function(t,e){var r=this.number;e||(e=t,t=null),this._worksheet.eachRow(t,(function(t,n){e(t.getCell(r),n)}))}},{key:\"_applyStyle\",value:function(t,e){return this.style[t]=e,this.eachCell((function(r){r[t]=e})),e}},{key:\"number\",get:function(){return this._number}},{key:\"worksheet\",get:function(){return this._worksheet}},{key:\"letter\",get:function(){return a.n2l(this._number)}},{key:\"isCustomWidth\",get:function(){return void 0!==this.width&&9!==this.width}},{key:\"defn\",get:function(){return{header:this._header,key:this.key,width:this.width,style:this.style,hidden:this.hidden,outlineLevel:this.outlineLevel}},set:function(t){t?(this.key=t.key,this.width=void 0!==t.width?t.width:9,this.outlineLevel=t.outlineLevel,t.style?this.style=t.style:this.style={},this.header=t.header,this._hidden=!!t.hidden):(delete this._header,delete this._key,delete this.width,this.style={},this.outlineLevel=0)}},{key:\"headers\",get:function(){return this._header&&this._header instanceof Array?this._header:[this._header]}},{key:\"header\",get:function(){return this._header},set:function(t){var e=this;void 0!==t?(this._header=t,this.headers.forEach((function(t,r){e._worksheet.getCell(r+1,e.number).value=t}))):this._header=void 0}},{key:\"key\",get:function(){return this._key},set:function(t){(this._key&&this._worksheet.getColumnKey(this._key))===this&&this._worksheet.deleteColumnKey(this._key),this._key=t,t&&this._worksheet.setColumnKey(this._key,this)}},{key:\"hidden\",get:function(){return!!this._hidden},set:function(t){this._hidden=t}},{key:\"outlineLevel\",get:function(){return this._outlineLevel||0},set:function(t){this._outlineLevel=t}},{key:\"collapsed\",get:function(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelCol)}},{key:\"isDefault\",get:function(){if(this.isCustomWidth)return!1;if(this.hidden)return!1;if(this.outlineLevel)return!1;var t=this.style;return!t||!(t.font||t.numFmt||t.alignment||t.border||t.fill||t.protection)}},{key:\"headerCount\",get:function(){return this.headers.length}},{key:\"values\",get:function(){var t=[];return this.eachCell((function(e,r){e&&e.type!==o.ValueType.Null&&(t[r]=e.value)})),t},set:function(t){var e=this;if(t){var r=this.number,n=0;t.hasOwnProperty(\"0\")&&(n=1),t.forEach((function(t,i){e._worksheet.getCell(i+n,r).value=t}))}}},{key:\"numFmt\",get:function(){return this.style.numFmt},set:function(t){this._applyStyle(\"numFmt\",t)}},{key:\"font\",get:function(){return this.style.font},set:function(t){this._applyStyle(\"font\",t)}},{key:\"alignment\",get:function(){return this.style.alignment},set:function(t){this._applyStyle(\"alignment\",t)}},{key:\"protection\",get:function(){return this.style.protection},set:function(t){this._applyStyle(\"protection\",t)}},{key:\"border\",get:function(){return this.style.border},set:function(t){this._applyStyle(\"border\",t)}},{key:\"fill\",get:function(){return this.style.fill},set:function(t){this._applyStyle(\"fill\",t)}}])&&n(e.prototype,r),s&&n(e,s),t}();e.exports=s},{\"../utils/col-cache\":19,\"../utils/under-dash\":25,\"./enums\":7}],5:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.model=e||{}}var e,r,i;return e=t,(r=[{key:\"add\",value:function(t,e){return this.model[t]=e}},{key:\"find\",value:function(t){return this.model[t]}},{key:\"remove\",value:function(t){this.model[t]=void 0}}])&&n(e.prototype,r),i&&n(e,i),t}();e.exports=i},{}],6:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"../utils/under-dash\"),o=t(\"../utils/col-cache\"),a=t(\"../utils/cell-matrix\"),s=t(\"./range\"),u=/[$](\\w+)[$](\\d+)(:[$](\\w+)[$](\\d+))?/,c=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.matrixMap={}}var e,r,c;return e=t,(r=[{key:\"getMatrix\",value:function(t){return this.matrixMap[t]||(this.matrixMap[t]=new a)}},{key:\"add\",value:function(t,e){var r=o.decodeEx(t);this.addEx(r,e)}},{key:\"addEx\",value:function(t,e){var r=this.getMatrix(e);if(t.top)for(var n=t.left;n<=t.right;n++)for(var i=t.top;i<=t.bottom;i++){var a={sheetName:t.sheetName,address:o.n2l(n)+i,row:i,col:n};r.addCellEx(a)}else r.addCellEx(t)}},{key:\"remove\",value:function(t,e){var r=o.decodeEx(t);this.removeEx(r,e)}},{key:\"removeEx\",value:function(t,e){this.getMatrix(e).removeCellEx(t)}},{key:\"removeAllNames\",value:function(t){i.each(this.matrixMap,(function(e){e.removeCellEx(t)}))}},{key:\"forEach\",value:function(t){i.each(this.matrixMap,(function(e,r){e.forEach((function(e){t(r,e)}))}))}},{key:\"getNames\",value:function(t){return this.getNamesEx(o.decodeEx(t))}},{key:\"getNamesEx\",value:function(t){return i.map(this.matrixMap,(function(e,r){return e.findCellEx(t)&&r})).filter(Boolean)}},{key:\"_explore\",value:function(t,e){e.mark=!1;var r,n,i=e.sheetName,o=new s(e.row,e.col,e.row,e.col,i);function a(r,n){var a=t.findCellAt(i,r,e.col);return!(!a||!a.mark||(o[n]=r,a.mark=!1,0))}for(n=e.row-1;a(n,\"top\");n--);for(n=e.row+1;a(n,\"bottom\");n++);function u(e,r){var a=[];for(n=o.top;n<=o.bottom;n++){var s=t.findCellAt(i,n,e);if(!s||!s.mark)return!1;a.push(s)}o[r]=e;for(var u=0;u<a.length;u++)a[u].mark=!1;return!0}for(r=e.col-1;u(r,\"left\");r--);for(r=e.col+1;u(r,\"right\");r++);return o}},{key:\"getRanges\",value:function(t,e){var r=this;return(e=e||this.matrixMap[t])?(e.forEach((function(t){t.mark=!0})),{name:t,ranges:e.map((function(t){return t.mark&&r._explore(e,t)})).filter(Boolean).map((function(t){return t.$shortRange}))}):{name:t,ranges:[]}}},{key:\"normaliseMatrix\",value:function(t,e){t.forEachInSheet(e,(function(t,e,r){t&&(t.row===e&&t.col===r||(t.row=e,t.col=r,t.address=o.n2l(r)+e))}))}},{key:\"spliceRows\",value:function(t,e,r,n){var o=this;i.each(this.matrixMap,(function(i){i.spliceRows(t,e,r,n),o.normaliseMatrix(i,t)}))}},{key:\"spliceColumns\",value:function(t,e,r,n){var o=this;i.each(this.matrixMap,(function(i){i.spliceColumns(t,e,r,n),o.normaliseMatrix(i,t)}))}},{key:\"model\",get:function(){var t=this;return i.map(this.matrixMap,(function(e,r){return t.getRanges(r,e)})).filter((function(t){return t.ranges.length}))},set:function(t){var e=this.matrixMap={};t.forEach((function(t){var r=e[t.name]=new a;t.ranges.forEach((function(t){u.test(t.split(\"!\").pop()||\"\")&&r.addCell(t)}))}))}}])&&n(e.prototype,r),c&&n(e,c),t}();e.exports=c},{\"../utils/cell-matrix\":18,\"../utils/col-cache\":19,\"../utils/under-dash\":25,\"./range\":10}],7:[function(t,e,r){\"use strict\";e.exports={ValueType:{Null:0,Merge:1,Number:2,String:3,Date:4,Hyperlink:5,Formula:6,SharedString:7,RichText:8,Boolean:9,Error:10},FormulaType:{None:0,Master:1,Shared:2},RelationshipType:{None:0,OfficeDocument:1,Worksheet:2,CalcChain:3,SharedStrings:4,Styles:5,Theme:6,Hyperlink:7},DocumentType:{Xlsx:1},ReadingOrder:{LeftToRight:1,RightToLeft:2},ErrorValue:{NotApplicable:\"#N/A\",Ref:\"#REF!\",Name:\"#NAME?\",DivZero:\"#DIV/0!\",Null:\"#NULL!\",Value:\"#VALUE!\",Num:\"#NUM!\"}}},{}],8:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"../utils/col-cache\"),o=t(\"./anchor\"),a=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.worksheet=e,this.model=r}var e,r,a;return e=t,(r=[{key:\"model\",get:function(){switch(this.type){case\"background\":return{type:this.type,imageId:this.imageId};case\"image\":return{type:this.type,imageId:this.imageId,hyperlinks:this.range.hyperlinks,range:{tl:this.range.tl.model,br:this.range.br&&this.range.br.model,ext:this.range.ext,editAs:this.range.editAs}};default:throw new Error(\"Invalid Image Type\")}},set:function(t){var e=t.type,r=t.imageId,n=t.range,a=t.hyperlinks;if(this.type=e,this.imageId=r,\"image\"===e)if(\"string\"==typeof n){var s=i.decode(n);this.range={tl:new o(this.worksheet,{col:s.left,row:s.top},-1),br:new o(this.worksheet,{col:s.right,row:s.bottom},0),editAs:\"oneCell\"}}else this.range={tl:new o(this.worksheet,n.tl,0),br:n.br&&new o(this.worksheet,n.br,0),ext:n.ext,editAs:n.editAs,hyperlinks:a||n.hyperlinks}}}])&&n(e.prototype,r),a&&n(e,a),t}();e.exports=a},{\"../utils/col-cache\":19,\"./anchor\":2}],9:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var o=t(\"../utils/under-dash\"),a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.note=e}var e,r,a;return e=t,a=[{key:\"fromModel\",value:function(e){var r=new t;return r.model=e,r}}],(r=[{key:\"model\",get:function(){var e=null;switch(n(this.note)){case\"string\":e={type:\"note\",note:{texts:[{text:this.note}]}};break;default:e={type:\"note\",note:this.note}}return o.deepMerge({},t.DEFAULT_CONFIGS,e)},set:function(t){var e=t.note,r=e.texts;1===r.length&&1===Object.keys(r[0]).length?this.note=r[0].text:this.note=e}}])&&i(e.prototype,r),a&&i(e,a),t}();a.DEFAULT_CONFIGS={note:{margins:{insetmode:\"auto\",inset:[.13,.13,.25,.25]},protection:{locked:\"True\",lockText:\"True\"},editAs:\"absolute\"}},e.exports=a},{\"../utils/under-dash\":25}],10:[function(t,e,r){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var o=t(\"../utils/col-cache\"),a=function(){function t(){n(this,t),this.decode(arguments)}var e,r,a;return e=t,(r=[{key:\"setTLBR\",value:function(t,e,r,n,i){if(arguments.length<4){var a=o.decodeAddress(t),s=o.decodeAddress(e);this.model={top:Math.min(a.row,s.row),left:Math.min(a.col,s.col),bottom:Math.max(a.row,s.row),right:Math.max(a.col,s.col),sheetName:r},this.setTLBR(a.row,a.col,s.row,s.col,i)}else this.model={top:Math.min(t,r),left:Math.min(e,n),bottom:Math.max(t,r),right:Math.max(e,n),sheetName:i}}},{key:\"decode\",value:function(e){switch(e.length){case 5:this.setTLBR(e[0],e[1],e[2],e[3],e[4]);break;case 4:this.setTLBR(e[0],e[1],e[2],e[3]);break;case 3:this.setTLBR(e[0],e[1],e[2]);break;case 2:this.setTLBR(e[0],e[1]);break;case 1:var r=e[0];if(r instanceof t)this.model={top:r.model.top,left:r.model.left,bottom:r.model.bottom,right:r.model.right,sheetName:r.sheetName};else if(r instanceof Array)this.decode(r);else if(r.top&&r.left&&r.bottom&&r.right)this.model={top:r.top,left:r.left,bottom:r.bottom,right:r.right,sheetName:r.sheetName};else{var n=o.decodeEx(r);n.top?this.model={top:n.top,left:n.left,bottom:n.bottom,right:n.right,sheetName:n.sheetName}:this.model={top:n.row,left:n.col,bottom:n.row,right:n.col,sheetName:n.sheetName}}break;case 0:this.model={top:0,left:0,bottom:0,right:0};break;default:throw new Error(\"Invalid number of arguments to _getDimensions() - \".concat(e.length))}}},{key:\"expand\",value:function(t,e,r,n){(!this.model.top||t<this.top)&&(this.top=t),(!this.model.left||e<this.left)&&(this.left=e),(!this.model.bottom||r>this.bottom)&&(this.bottom=r),(!this.model.right||n>this.right)&&(this.right=n)}},{key:\"expandRow\",value:function(t){if(t){var e=t.dimensions,r=t.number;e&&this.expand(r,e.min,r,e.max)}}},{key:\"expandToAddress\",value:function(t){var e=o.decodeEx(t);this.expand(e.row,e.col,e.row,e.col)}},{key:\"toString\",value:function(){return this.range}},{key:\"intersects\",value:function(t){return!(t.sheetName&&this.sheetName&&t.sheetName!==this.sheetName||t.bottom<this.top||t.top>this.bottom||t.right<this.left||t.left>this.right)}},{key:\"contains\",value:function(t){var e=o.decodeEx(t);return this.containsEx(e)}},{key:\"containsEx\",value:function(t){return(!t.sheetName||!this.sheetName||t.sheetName===this.sheetName)&&t.row>=this.top&&t.row<=this.bottom&&t.col>=this.left&&t.col<=this.right}},{key:\"forEachAddress\",value:function(t){for(var e=this.left;e<=this.right;e++)for(var r=this.top;r<=this.bottom;r++)t(o.encodeAddress(r,e),r,e)}},{key:\"top\",get:function(){return this.model.top||1},set:function(t){this.model.top=t}},{key:\"left\",get:function(){return this.model.left||1},set:function(t){this.model.left=t}},{key:\"bottom\",get:function(){return this.model.bottom||1},set:function(t){this.model.bottom=t}},{key:\"right\",get:function(){return this.model.right||1},set:function(t){this.model.right=t}},{key:\"sheetName\",get:function(){return this.model.sheetName},set:function(t){this.model.sheetName=t}},{key:\"_serialisedSheetName\",get:function(){var t=this.model.sheetName;return t?/^[a-zA-Z0-9]*$/.test(t)?\"\".concat(t,\"!\"):\"'\".concat(t,\"'!\"):\"\"}},{key:\"tl\",get:function(){return o.n2l(this.left)+this.top}},{key:\"$t$l\",get:function(){return\"$\".concat(o.n2l(this.left),\"$\").concat(this.top)}},{key:\"br\",get:function(){return o.n2l(this.right)+this.bottom}},{key:\"$b$r\",get:function(){return\"$\".concat(o.n2l(this.right),\"$\").concat(this.bottom)}},{key:\"range\",get:function(){return\"\".concat(this._serialisedSheetName+this.tl,\":\").concat(this.br)}},{key:\"$range\",get:function(){return\"\".concat(this._serialisedSheetName+this.$t$l,\":\").concat(this.$b$r)}},{key:\"shortRange\",get:function(){return this.count>1?this.range:this._serialisedSheetName+this.tl}},{key:\"$shortRange\",get:function(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l}},{key:\"count\",get:function(){return(1+this.bottom-this.top)*(1+this.right-this.left)}}])&&i(e.prototype,r),a&&i(e,a),t}();e.exports=a},{\"../utils/col-cache\":19}],11:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"../utils/under-dash\"),o=t(\"./enums\"),a=t(\"../utils/col-cache\"),s=t(\"./cell\"),u=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._worksheet=e,this._number=r,this._cells=[],this.style={},this.outlineLevel=0}var e,r,u;return e=t,(r=[{key:\"commit\",value:function(){this._worksheet._commitRow(this)}},{key:\"destroy\",value:function(){delete this._worksheet,delete this._cells,delete this.style}},{key:\"findCell\",value:function(t){return this._cells[t-1]}},{key:\"getCellEx\",value:function(t){var e=this._cells[t.col-1];if(!e){var r=this._worksheet.getColumn(t.col);e=new s(this,r,t.address),this._cells[t.col-1]=e}return e}},{key:\"getCell\",value:function(t){if(\"string\"==typeof t){var e=this._worksheet.getColumnKey(t);t=e?e.number:a.l2n(t)}return this._cells[t-1]||this.getCellEx({address:a.encodeAddress(this._number,t),row:this._number,col:t})}},{key:\"splice\",value:function(t,e){for(var r=t+e,n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];var a,s,u,c=i.length-e,f=this._cells.length;if(c<0)for(a=t+i.length;a<=f;a++)u=this._cells[a-1],(s=this._cells[a-c-1])?((u=this.getCell(a)).value=s.value,u.style=s.style,u._comment=s._comment):u&&(u.value=null,u.style={},u._comment=void 0);else if(c>0)for(a=f;a>=r;a--)(s=this._cells[a-1])?((u=this.getCell(a+c)).value=s.value,u.style=s.style,u._comment=s._comment):this._cells[a+c-1]=void 0;for(a=0;a<i.length;a++)(u=this.getCell(t+a)).value=i[a],u.style={},u._comment=void 0}},{key:\"eachCell\",value:function(t,e){if(e||(e=t,t=null),t&&t.includeEmpty)for(var r=this._cells.length,n=1;n<=r;n++)e(this.getCell(n),n);else this._cells.forEach((function(t,r){t&&t.type!==o.ValueType.Null&&e(t,r+1)}))}},{key:\"addPageBreak\",value:function(t,e){var r=this._worksheet,n=Math.max(0,t-1)||0,i=Math.max(0,e-1)||16838,o={id:this._number,max:i,man:1};n&&(o.min=n),r.rowBreaks.push(o)}},{key:\"_applyStyle\",value:function(t,e){return this.style[t]=e,this._cells.forEach((function(r){r&&(r[t]=e)})),e}},{key:\"number\",get:function(){return this._number}},{key:\"worksheet\",get:function(){return this._worksheet}},{key:\"values\",get:function(){var t=[];return this._cells.forEach((function(e){e&&e.type!==o.ValueType.Null&&(t[e.col]=e.value)})),t},set:function(t){var e=this;if(this._cells=[],t)if(t instanceof Array){var r=0;t.hasOwnProperty(\"0\")&&(r=1),t.forEach((function(t,n){void 0!==t&&(e.getCellEx({address:a.encodeAddress(e._number,n+r),row:e._number,col:n+r}).value=t)}))}else this._worksheet.eachColumnKey((function(r,n){void 0!==t[n]&&(e.getCellEx({address:a.encodeAddress(e._number,r.number),row:e._number,col:r.number}).value=t[n])}))}},{key:\"hasValues\",get:function(){return i.some(this._cells,(function(t){return t&&t.type!==o.ValueType.Null}))}},{key:\"cellCount\",get:function(){return this._cells.length}},{key:\"actualCellCount\",get:function(){var t=0;return this.eachCell((function(){t++})),t}},{key:\"dimensions\",get:function(){var t=0,e=0;return this._cells.forEach((function(r){r&&r.type!==o.ValueType.Null&&((!t||t>r.col)&&(t=r.col),e<r.col&&(e=r.col))})),t>0?{min:t,max:e}:null}},{key:\"numFmt\",get:function(){return this.style.numFmt},set:function(t){this._applyStyle(\"numFmt\",t)}},{key:\"font\",get:function(){return this.style.font},set:function(t){this._applyStyle(\"font\",t)}},{key:\"alignment\",get:function(){return this.style.alignment},set:function(t){this._applyStyle(\"alignment\",t)}},{key:\"protection\",get:function(){return this.style.protection},set:function(t){this._applyStyle(\"protection\",t)}},{key:\"border\",get:function(){return this.style.border},set:function(t){this._applyStyle(\"border\",t)}},{key:\"fill\",get:function(){return this.style.fill},set:function(t){this._applyStyle(\"fill\",t)}},{key:\"hidden\",get:function(){return!!this._hidden},set:function(t){this._hidden=t}},{key:\"outlineLevel\",get:function(){return this._outlineLevel||0},set:function(t){this._outlineLevel=t}},{key:\"collapsed\",get:function(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow)}},{key:\"model\",get:function(){var t=[],e=0,r=0;return this._cells.forEach((function(n){if(n){var i=n.model;i&&((!e||e>n.col)&&(e=n.col),r<n.col&&(r=n.col),t.push(i))}})),this.height||t.length?{cells:t,number:this.number,min:e,max:r,height:this.height,style:this.style,hidden:this.hidden,outlineLevel:this.outlineLevel,collapsed:this.collapsed}:null},set:function(t){var e,r=this;if(t.number!==this._number)throw new Error(\"Invalid row number in model\");this._cells=[],t.cells.forEach((function(t){switch(t.type){case s.Types.Merge:break;default:var n;if(t.address)n=a.decodeAddress(t.address);else if(e){var i=e.row,o=e.col+1;n={row:i,col:o,address:a.encodeAddress(i,o),$col$row:\"$\".concat(a.n2l(o),\"$\").concat(i)}}e=n,r.getCellEx(n).model=t}})),t.height?this.height=t.height:delete this.height,this.hidden=t.hidden,this.outlineLevel=t.outlineLevel||0,this.style=t.style&&JSON.parse(JSON.stringify(t.style))||{}}}])&&n(e.prototype,r),u&&n(e,u),t}();e.exports=u},{\"../utils/col-cache\":19,\"../utils/under-dash\":25,\"./cell\":3,\"./enums\":7}],12:[function(t,e,r){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,r){return e&&i(t.prototype,e),r&&i(t,r),t}var a=t(\"../utils/col-cache\"),s=function(){function t(e,r,i){n(this,t),this.table=e,this.column=r,this.index=i}return o(t,[{key:\"_set\",value:function(t,e){this.table.cacheState(),this.column[t]=e}},{key:\"name\",get:function(){return this.column.name},set:function(t){this._set(\"name\",t)}},{key:\"filterButton\",get:function(){return this.column.filterButton},set:function(t){this.column.filterButton=t}},{key:\"style\",get:function(){return this.column.style},set:function(t){this.column.style=t}},{key:\"totalsRowLabel\",get:function(){return this.column.totalsRowLabel},set:function(t){this._set(\"totalsRowLabel\",t)}},{key:\"totalsRowFunction\",get:function(){return this.column.totalsRowFunction},set:function(t){this._set(\"totalsRowFunction\",t)}},{key:\"totalsRowResult\",get:function(){return this.column.totalsRowResult},set:function(t){this._set(\"totalsRowResult\",t)}},{key:\"totalsRowFormula\",get:function(){return this.column.totalsRowFormula},set:function(t){this._set(\"totalsRowFormula\",t)}}]),t}(),u=function(){function t(e,r){n(this,t),this.worksheet=e,r&&(this.table=r,this.validate(),this.store())}return o(t,[{key:\"getFormula\",value:function(t){switch(t.totalsRowFunction){case\"none\":return null;case\"average\":return\"SUBTOTAL(101,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"countNums\":return\"SUBTOTAL(102,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"count\":return\"SUBTOTAL(103,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"max\":return\"SUBTOTAL(104,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"min\":return\"SUBTOTAL(105,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"stdDev\":return\"SUBTOTAL(106,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"var\":return\"SUBTOTAL(107,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"sum\":return\"SUBTOTAL(109,\".concat(this.table.name,\"[\").concat(t.name,\"])\");case\"custom\":return t.totalsRowFormula;default:throw new Error(\"Invalid Totals Row Function: \".concat(t.totalsRowFunction))}}},{key:\"validate\",value:function(){var t=this,e=this.table,r=function(t,e,r){void 0===t[e]&&(t[e]=r)};r(e,\"headerRow\",!0),r(e,\"totalsRow\",!1),r(e,\"style\",{}),r(e.style,\"theme\",\"TableStyleMedium2\"),r(e.style,\"showFirstColumn\",!1),r(e.style,\"showLastColumn\",!1),r(e.style,\"showRowStripes\",!1),r(e.style,\"showColumnStripes\",!1);var n=function(t,e){if(!t)throw new Error(e)};n(e.ref,\"Table must have ref\"),n(e.columns,\"Table must have column definitions\"),n(e.rows,\"Table must have row definitions\"),e.tl=a.decodeAddress(e.ref);var i=e.tl,o=i.row,s=i.col;n(o>0,\"Table must be on valid row\"),n(s>0,\"Table must be on valid col\");var u=this.width,c=this.filterHeight,f=this.tableHeight;e.autoFilterRef=a.encode(o,s,o+c-1,s+u-1),e.tableRef=a.encode(o,s,o+f-1,s+u-1),e.columns.forEach((function(e,i){n(e.name,\"Column \".concat(i,\" must have a name\")),0===i?r(e,\"totalsRowLabel\",\"Total\"):(r(e,\"totalsRowFunction\",\"none\"),e.totalsRowFormula=t.getFormula(e))}))}},{key:\"store\",value:function(){var t=this,e=function(t,e){e&&Object.keys(e).forEach((function(r){t[r]=e[r]}))},r=this.worksheet,n=this.table,i=n.tl,o=i.row,a=i.col,s=0;if(n.headerRow){var u=r.getRow(o+s++);n.columns.forEach((function(t,r){var n=t.style,i=t.name,o=u.getCell(a+r);o.value=i,e(o,n)}))}if(n.rows.forEach((function(t){var i=r.getRow(o+s++);t.forEach((function(t,r){var o=i.getCell(a+r);o.value=t,e(o,n.columns[r].style)}))})),n.totalsRow){var c=r.getRow(o+s++);n.columns.forEach((function(r,n){var i=c.getCell(a+n);if(0===n)i.value=r.totalsRowLabel;else{var o=t.getFormula(r);i.value=o?{formula:r.totalsRowFormula,result:r.totalsRowResult}:null}e(i,r.style)}))}}},{key:\"load\",value:function(t){var e=this,r=this.table,n=r.tl,i=n.row,o=n.col,a=0;if(r.headerRow){var s=t.getRow(i+a++);r.columns.forEach((function(t,e){s.getCell(o+e).value=t.name}))}if(r.rows.forEach((function(e){var r=t.getRow(i+a++);e.forEach((function(t,e){r.getCell(o+e).value=t}))})),r.totalsRow){var u=t.getRow(i+a++);r.columns.forEach((function(t,r){var n=u.getCell(o+r);0===r?n.value=t.totalsRowLabel:e.getFormula(t)&&(n.value={formula:t.totalsRowFormula,result:t.totalsRowResult})}))}}},{key:\"cacheState\",value:function(){this._cache||(this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight})}},{key:\"commit\",value:function(){if(this._cache){this.validate();var t=a.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref)for(var e=0;e<this._cache.tableHeight;e++)for(var r=this.worksheet.getRow(t.row+e),n=0;n<this._cache.width;n++){r.getCell(t.col+n).value=null}else{for(var i=this.tableHeight;i<this._cache.tableHeight;i++)for(var o=this.worksheet.getRow(t.row+i),s=0;s<this._cache.width;s++){o.getCell(t.col+s).value=null}for(var u=0;u<this.tableHeight;u++)for(var c=this.worksheet.getRow(t.row+u),f=this.width;f<this._cache.width;f++){c.getCell(t.col+f).value=null}}this.store()}}},{key:\"addRow\",value:function(t,e){this.cacheState(),void 0===e?this.table.rows.push(t):this.table.rows.splice(e,0,t)}},{key:\"removeRows\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.rows.splice(t,e)}},{key:\"getColumn\",value:function(t){var e=this.table.columns[t];return new s(this,e,t)}},{key:\"addColumn\",value:function(t,e,r){this.cacheState(),void 0===r?(this.table.columns.push(t),this.table.rows.forEach((function(t,r){t.push(e[r])}))):(this.table.columns.splice(r,0,t),this.table.rows.forEach((function(t,n){t.splice(r,0,e[n])})))}},{key:\"removeColumns\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.columns.splice(t,e),this.table.rows.forEach((function(r){r.splice(t,e)}))}},{key:\"_assign\",value:function(t,e,r){this.cacheState(),t[e]=r}},{key:\"width\",get:function(){return this.table.columns.length}},{key:\"height\",get:function(){return this.table.rows.length}},{key:\"filterHeight\",get:function(){return this.height+(this.table.headerRow?1:0)}},{key:\"tableHeight\",get:function(){return this.filterHeight+(this.table.totalsRow?1:0)}},{key:\"model\",get:function(){return this.table},set:function(t){this.table=t}},{key:\"ref\",get:function(){return this.table.ref},set:function(t){this._assign(this.table,\"ref\",t)}},{key:\"name\",get:function(){return this.table.name},set:function(t){this.table.name=t}},{key:\"displayName\",get:function(){return this.table.displyName||this.table.name}},{key:\"displayNamename\",set:function(t){this.table.displayName=t}},{key:\"headerRow\",get:function(){return this.table.headerRow},set:function(t){this._assign(this.table,\"headerRow\",t)}},{key:\"totalsRow\",get:function(){return this.table.totalsRow},set:function(t){this._assign(this.table,\"totalsRow\",t)}},{key:\"theme\",get:function(){return this.table.style.name},set:function(t){this.table.style.name=t}},{key:\"showFirstColumn\",get:function(){return this.table.style.showFirstColumn},set:function(t){this.table.style.showFirstColumn=t}},{key:\"showLastColumn\",get:function(){return this.table.style.showLastColumn},set:function(t){this.table.style.showLastColumn=t}},{key:\"showRowStripes\",get:function(){return this.table.style.showRowStripes},set:function(t){this.table.style.showRowStripes=t}},{key:\"showColumnStripes\",get:function(){return this.table.style.showColumnStripes},set:function(t){this.table.style.showColumnStripes=t}}]),t}();e.exports=u},{\"../utils/col-cache\":19}],13:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"./worksheet\"),o=t(\"./defined-names\"),a=t(\"../xlsx/xlsx\"),s=t(\"../csv/csv\"),u=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.category=\"\",this.company=\"\",this.created=new Date,this.description=\"\",this.keywords=\"\",this.manager=\"\",this.modified=this.created,this.properties={},this.calcProperties={},this._worksheets=[],this.subject=\"\",this.title=\"\",this.views=[],this.media=[],this._definedNames=new o}var e,r,u;return e=t,(r=[{key:\"addWorksheet\",value:function(t,e){var r=this.nextId;if(t&&t.length>31&&console.warn(\"Worksheet name \".concat(t,\" exceeds 31 chars. This will be truncated\")),/[*?:/\\\\[\\]]/.test(t))throw new Error(\"Worksheet name \".concat(t,\" cannot include any of the following characters: * ? : \\\\ / [ ]\"));if(/(^')|('$)/.test(t))throw new Error(\"The first or last character of worksheet name cannot be a single quotation mark: \".concat(t));if(t=(t||\"sheet\".concat(r)).substring(0,31),this._worksheets.find((function(e){return e&&e.name.toLowerCase()===t.toLowerCase()})))throw new Error(\"Worksheet name already exists: \".concat(t));e&&(\"string\"==typeof e?(console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: \"rbg value\" } }'),e={properties:{tabColor:{argb:e}}}):(e.argb||e.theme||e.indexed)&&(console.trace(\"tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }\"),e={properties:{tabColor:e}}));var n=this._worksheets.reduce((function(t,e){return(e&&e.orderNo)>t?e.orderNo:t}),0),o=Object.assign({},e,{id:r,name:t,orderNo:n+1,workbook:this}),a=new i(o);return this._worksheets[r]=a,a}},{key:\"removeWorksheetEx\",value:function(t){delete this._worksheets[t.id]}},{key:\"removeWorksheet\",value:function(t){var e=this.getWorksheet(t);e&&e.destroy()}},{key:\"getWorksheet\",value:function(t){return void 0===t?this._worksheets.find(Boolean):\"number\"==typeof t?this._worksheets[t]:\"string\"==typeof t?this._worksheets.find((function(e){return e&&e.name===t})):void 0}},{key:\"eachSheet\",value:function(t){this.worksheets.forEach((function(e){t(e,e.id)}))}},{key:\"clearThemes\",value:function(){this._themes=void 0}},{key:\"addImage\",value:function(t){var e=this.media.length;return this.media.push(Object.assign({},t,{type:\"image\"})),e}},{key:\"getImage\",value:function(t){return this.media[t]}},{key:\"xlsx\",get:function(){return this._xlsx||(this._xlsx=new a(this)),this._xlsx}},{key:\"csv\",get:function(){return this._csv||(this._csv=new s(this)),this._csv}},{key:\"nextId\",get:function(){for(var t=1;t<this._worksheets.length;t++)if(!this._worksheets[t])return t;return this._worksheets.length||1}},{key:\"worksheets\",get:function(){return this._worksheets.slice(1).sort((function(t,e){return t.orderNo-e.orderNo})).filter(Boolean)}},{key:\"definedNames\",get:function(){return this._definedNames}},{key:\"model\",get:function(){return{creator:this.creator||\"Unknown\",lastModifiedBy:this.lastModifiedBy||\"Unknown\",lastPrinted:this.lastPrinted,created:this.created,modified:this.modified,properties:this.properties,worksheets:this.worksheets.map((function(t){return t.model})),sheets:this.worksheets.map((function(t){return t.model})).filter(Boolean),definedNames:this._definedNames.model,views:this.views,company:this.company,manager:this.manager,title:this.title,subject:this.subject,keywords:this.keywords,category:this.category,description:this.description,language:this.language,revision:this.revision,contentStatus:this.contentStatus,themes:this._themes,media:this.media,calcProperties:this.calcProperties}},set:function(t){var e=this;this.creator=t.creator,this.lastModifiedBy=t.lastModifiedBy,this.lastPrinted=t.lastPrinted,this.created=t.created,this.modified=t.modified,this.company=t.company,this.manager=t.manager,this.title=t.title,this.subject=t.subject,this.keywords=t.keywords,this.category=t.category,this.description=t.description,this.language=t.language,this.revision=t.revision,this.contentStatus=t.contentStatus,this.properties=t.properties,this.calcProperties=t.calcProperties,this._worksheets=[],t.worksheets.forEach((function(r){var n=r.id,o=r.name,a=r.state,s=t.sheets&&t.sheets.findIndex((function(t){return t.id===n}));(e._worksheets[n]=new i({id:n,name:o,orderNo:s,state:a,workbook:e})).model=r})),this._definedNames.model=t.definedNames,this.views=t.views,this._themes=t.themes,this.media=t.media||[]}}])&&n(e.prototype,r),u&&n(e,u),t}();e.exports=u},{\"../csv/csv\":1,\"../xlsx/xlsx\":141,\"./defined-names\":6,\"./worksheet\":14}],14:[function(t,e,r){\"use strict\";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function o(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if(\"string\"==typeof t)return s(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(t,e)}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var c=t(\"../utils/under-dash\"),f=t(\"../utils/col-cache\"),l=t(\"./range\"),h=t(\"./row\"),d=t(\"./column\"),p=t(\"./enums\"),m=t(\"./image\"),y=t(\"./table\"),b=t(\"./data-validations\"),v=t(\"../utils/encryptor\"),g=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),e=e||{},this.id=e.id,this.orderNo=e.orderNo,this.name=e.name||\"Sheet\".concat(this.id),this.state=e.state||\"visible\",this._rows=[],this._columns=null,this._keys={},this._merges={},this.rowBreaks=[],this._workbook=e.workbook,this.properties=Object.assign({},{defaultRowHeight:15,dyDescent:55,outlineLevelCol:0,outlineLevelRow:0},e.properties),this.pageSetup=Object.assign({},{margins:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3},orientation:\"portrait\",horizontalDpi:4294967295,verticalDpi:4294967295,fitToPage:!(!e.pageSetup||!e.pageSetup.fitToWidth&&!e.pageSetup.fitToHeight||e.pageSetup.scale),pageOrder:\"downThenOver\",blackAndWhite:!1,draft:!1,cellComments:\"None\",errors:\"displayed\",scale:100,fitToWidth:1,fitToHeight:1,paperSize:void 0,showRowColHeaders:!1,showGridLines:!1,firstPageNumber:void 0,horizontalCentered:!1,verticalCentered:!1,rowBreaks:null,colBreaks:null},e.pageSetup),this.headerFooter=Object.assign({},{differentFirst:!1,differentOddEven:!1,oddHeader:null,oddFooter:null,evenHeader:null,evenFooter:null,firstHeader:null,firstFooter:null},e.headerFooter),this.dataValidations=new b,this.views=e.views||[],this.autoFilter=e.autoFilter||null,this._media=[],this.sheetProtection=null,this.tables={},this.conditionalFormattings=[]}var e,r,n;return e=t,(r=[{key:\"destroy\",value:function(){this._workbook.removeWorksheetEx(this)}},{key:\"getColumnKey\",value:function(t){return this._keys[t]}},{key:\"setColumnKey\",value:function(t,e){this._keys[t]=e}},{key:\"deleteColumnKey\",value:function(t){delete this._keys[t]}},{key:\"eachColumnKey\",value:function(t){c.each(this._keys,t)}},{key:\"getColumn\",value:function(t){if(\"string\"==typeof t){var e=this._keys[t];if(e)return e;t=f.l2n(t)}if(this._columns||(this._columns=[]),t>this._columns.length)for(var r=this._columns.length+1;r<=t;)this._columns.push(new d(this,r++));return this._columns[t-1]}},{key:\"spliceColumns\",value:function(t,e){for(var r=this,n=this._rows,i=n.length,o=arguments.length,a=new Array(o>2?o-2:0),s=2;s<o;s++)a[s-2]=arguments[s];if(a.length>0)for(var u=function(n){var i=[t,e];a.forEach((function(t){i.push(t[n]||null)}));var o=r.getRow(n+1);o.splice.apply(o,i)},c=0;c<i;c++)u(c);else this._rows.forEach((function(r){r&&r.splice(t,e)}));var f=a.length-e,l=t+e,h=this._columns.length;if(f<0)for(var d=t+a.length;d<=h;d++)this.getColumn(d).defn=this.getColumn(d-f).defn;else if(f>0)for(var p=h;p>=l;p--)this.getColumn(p+f).defn=this.getColumn(p).defn;for(var m=t;m<t+a.length;m++)this.getColumn(m).defn=null;this.workbook.definedNames.spliceColumns(this.name,t,e,a.length)}},{key:\"_commitRow\",value:function(){}},{key:\"findRow\",value:function(t){return this._rows[t-1]}},{key:\"findRows\",value:function(t,e){return this._rows.slice(t-1,t-1+e)}},{key:\"getRow\",value:function(t){var e=this._rows[t-1];return e||(e=this._rows[t-1]=new h(this,t)),e}},{key:\"getRows\",value:function(t,e){if(!(e<1)){for(var r=[],n=t;n<t+e;n++)r.push(this.getRow(n));return r}}},{key:\"addRow\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\",r=this._nextRow,n=this.getRow(r);return n.values=t,this._setStyleOption(r,\"i\"===e[0]?e:\"n\"),n}},{key:\"addRows\",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\",n=[];return t.forEach((function(t){n.push(e.addRow(t,r))})),n}},{key:\"insertRow\",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"n\";return this.spliceRows(t,0,e),this._setStyleOption(t,r),this.getRow(t)}},{key:\"insertRows\",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"n\";if(this.spliceRows.apply(this,[t,0].concat(a(e))),\"n\"!==r)for(var n=0;n<e.length;n++)\"o\"===r[0]&&void 0!==this.findRow(e.length+t+n)?this._copyStyle(e.length+t+n,t+n,\"+\"===r[1]):\"i\"===r[0]&&void 0!==this.findRow(t-1)&&this._copyStyle(t-1,t+n,\"+\"===r[1]);return this.getRows(t,e.length)}},{key:\"_setStyleOption\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\";\"o\"===e[0]&&void 0!==this.findRow(t+1)?this._copyStyle(t+1,t,\"+\"===e[1]):\"i\"===e[0]&&void 0!==this.findRow(t-1)&&this._copyStyle(t-1,t,\"+\"===e[1])}},{key:\"_copyStyle\",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.getRow(t),o=this.getRow(e);o.style=Object.freeze(i({},n.style)),n.eachCell({includeEmpty:r},(function(t,e){o.getCell(e).style=Object.freeze(i({},t.style))})),o.height=n.height}},{key:\"duplicateRow\",value:function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this._rows[t-1],o=new Array(e).fill(i.values);this.spliceRows.apply(this,[t+1,n?0:e].concat(a(o)));for(var s=function(e){var n=r._rows[t+e];n.style=i.style,n.height=i.height,i.eachCell({includeEmpty:!0},(function(t,e){n.getCell(e).style=t.style}))},u=0;u<e;u++)s(u)}},{key:\"spliceRows\",value:function(t,e){for(var r=this,n=t+e,i=arguments.length,o=new Array(i>2?i-2:0),a=2;a<i;a++)o[a-2]=arguments[a];var s,u,c=o.length,f=c-e,l=this._rows.length;if(f<0)for(s=n;s<=l;s++)(u=this._rows[s-1])?function(){var t=r.getRow(s+f);t.values=u.values,t.style=u.style,t.height=u.height,u.eachCell({includeEmpty:!0},(function(e,r){t.getCell(r).style=e.style})),r._rows[s-1]=void 0}():this._rows[s+f-1]=void 0;else if(f>0)for(s=l;s>=n;s--)(u=this._rows[s-1])?function(){var t=r.getRow(s+f);t.values=u.values,t.style=u.style,t.height=u.height,u.eachCell({includeEmpty:!0},(function(e,n){if(t.getCell(n).style=e.style,\"MergeValue\"===e._value.constructor.name){var i=r.getRow(e._row._number+c).getCell(n),o=e._value._master,a=r.getRow(o._row._number+c).getCell(o._column._number);i.merge(a)}}))}():this._rows[s+f-1]=void 0;for(s=0;s<c;s++){var h=this.getRow(t+s);h.style={},h.values=o[s]}this.workbook.definedNames.spliceRows(this.name,t,e,c)}},{key:\"eachRow\",value:function(t,e){if(e||(e=t,t=void 0),t&&t.includeEmpty)for(var r=this._rows.length,n=1;n<=r;n++)e(this.getRow(n),n);else this._rows.forEach((function(t){t&&t.hasValues&&e(t,t.number)}))}},{key:\"getSheetValues\",value:function(){var t=[];return this._rows.forEach((function(e){e&&(t[e.number]=e.values)})),t}},{key:\"findCell\",value:function(t,e){var r=f.getAddress(t,e),n=this._rows[r.row-1];return n?n.findCell(r.col):void 0}},{key:\"getCell\",value:function(t,e){var r=f.getAddress(t,e);return this.getRow(r.row).getCellEx(r)}},{key:\"mergeCells\",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n=new l(e);this._mergeCellsInternal(n)}},{key:\"mergeCellsWithoutStyle\",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n=new l(e);this._mergeCellsInternal(n,!0)}},{key:\"_mergeCellsInternal\",value:function(t,e){c.each(this._merges,(function(e){if(e.intersects(t))throw new Error(\"Cannot merge already merged cells\")}));for(var r=this.getCell(t.top,t.left),n=t.top;n<=t.bottom;n++)for(var i=t.left;i<=t.right;i++)(n>t.top||i>t.left)&&this.getCell(n,i).merge(r,e);this._merges[r.address]=t}},{key:\"_unMergeMaster\",value:function(t){var e=this._merges[t.address];if(e){for(var r=e.top;r<=e.bottom;r++)for(var n=e.left;n<=e.right;n++)this.getCell(r,n).unmerge();delete this._merges[t.address]}}},{key:\"unMergeCells\",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];for(var n=new l(e),i=n.top;i<=n.bottom;i++)for(var o=n.left;o<=n.right;o++){var a=this.findCell(i,o);a&&(a.type===p.ValueType.Merge?this._unMergeMaster(a.master):this._merges[a.address]&&this._unMergeMaster(a))}}},{key:\"fillFormula\",value:function(t,e,r){var n,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"shared\",o=f.decode(t),a=o.top,s=o.left,u=o.bottom,c=o.right,l=c-s+1,h=f.encodeAddress(a,s),d=\"shared\"===i;n=\"function\"==typeof r?r:Array.isArray(r)?Array.isArray(r[0])?function(t,e){return r[t-a][e-s]}:function(t,e){return r[(t-a)*l+(e-s)]}:function(){};for(var p=!0,m=a;m<=u;m++)for(var y=s;y<=c;y++)p?(this.getCell(m,y).value={shareType:i,formula:e,ref:t,result:n(m,y)},p=!1):this.getCell(m,y).value=d?{sharedFormula:h,result:n(m,y)}:n(m,y)}},{key:\"addImage\",value:function(t,e){var r={type:\"image\",imageId:t,range:e};this._media.push(new m(this,r))}},{key:\"getImages\",value:function(){return this._media.filter((function(t){return\"image\"===t.type}))}},{key:\"addBackgroundImage\",value:function(t){var e={type:\"background\",imageId:t};this._media.push(new m(this,e))}},{key:\"getBackgroundImageId\",value:function(){var t=this._media.find((function(t){return\"background\"===t.type}));return t&&t.imageId}},{key:\"protect\",value:function(t,e){var r=this;return new Promise((function(n){r.sheetProtection={sheet:!0},e&&\"spinCount\"in e&&(e.spinCount=Number.isFinite(e.spinCount)?Math.round(Math.max(0,e.spinCount)):1e5),t&&(r.sheetProtection.algorithmName=\"SHA-512\",r.sheetProtection.saltValue=v.randomBytes(16).toString(\"base64\"),r.sheetProtection.spinCount=e&&\"spinCount\"in e?e.spinCount:1e5,r.sheetProtection.hashValue=v.convertPasswordToHash(t,\"SHA512\",r.sheetProtection.saltValue,r.sheetProtection.spinCount)),e&&(r.sheetProtection=Object.assign(r.sheetProtection,e),!t&&\"spinCount\"in e&&delete r.sheetProtection.spinCount),n()}))}},{key:\"unprotect\",value:function(){this.sheetProtection=null}},{key:\"addTable\",value:function(t){var e=new y(this,t);return this.tables[t.name]=e,e}},{key:\"getTable\",value:function(t){return this.tables[t]}},{key:\"removeTable\",value:function(t){delete this.tables[t]}},{key:\"getTables\",value:function(){return Object.values(this.tables)}},{key:\"addConditionalFormatting\",value:function(t){this.conditionalFormattings.push(t)}},{key:\"removeConditionalFormatting\",value:function(t){\"number\"==typeof t?this.conditionalFormattings.splice(t,1):this.conditionalFormattings=t instanceof Function?this.conditionalFormattings.filter(t):[]}},{key:\"_parseRows\",value:function(t){var e=this;this._rows=[],t.rows.forEach((function(t){var r=new h(e,t.number);e._rows[r.number-1]=r,r.model=t}))}},{key:\"_parseMergeCells\",value:function(t){var e=this;c.each(t.mergeCells,(function(t){e.mergeCellsWithoutStyle(t)}))}},{key:\"workbook\",get:function(){return this._workbook}},{key:\"dimensions\",get:function(){var t=new l;return this._rows.forEach((function(e){if(e){var r=e.dimensions;r&&t.expand(e.number,r.min,e.number,r.max)}})),t}},{key:\"columns\",get:function(){return this._columns},set:function(t){var e=this;this._headerRowCount=t.reduce((function(t,e){var r=(e.header?1:e.headers&&e.headers.length)||0;return Math.max(t,r)}),0);var r=1,n=this._columns=[];t.forEach((function(t){var i=new d(e,r++,!1);n.push(i),i.defn=t}))}},{key:\"lastColumn\",get:function(){return this.getColumn(this.columnCount)}},{key:\"columnCount\",get:function(){var t=0;return this.eachRow((function(e){t=Math.max(t,e.cellCount)})),t}},{key:\"actualColumnCount\",get:function(){var t=[],e=0;return this.eachRow((function(r){r.eachCell((function(r){var n=r.col;t[n]||(t[n]=!0,e++)}))})),e}},{key:\"_lastRowNumber\",get:function(){for(var t=this._rows,e=t.length;e>0&&void 0===t[e-1];)e--;return e}},{key:\"_nextRow\",get:function(){return this._lastRowNumber+1}},{key:\"lastRow\",get:function(){if(this._rows.length)return this._rows[this._rows.length-1]}},{key:\"rowCount\",get:function(){return this._lastRowNumber}},{key:\"actualRowCount\",get:function(){var t=0;return this.eachRow((function(){t++})),t}},{key:\"hasMerges\",get:function(){return c.some(this._merges,Boolean)}},{key:\"tabColor\",get:function(){return console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor},set:function(t){console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor=t}},{key:\"model\",get:function(){var t={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map((function(t){return t.model})),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map((function(t){return t.model})),conditionalFormattings:this.conditionalFormattings};t.cols=d.toModel(this.columns);var e=t.rows=[],r=t.dimensions=new l;return this._rows.forEach((function(t){var n=t&&t.model;n&&(r.expand(n.number,n.min,n.number,n.max),e.push(n))})),t.merges=[],c.each(this._merges,(function(e){t.merges.push(e.range)})),t},set:function(t){var e=this;this.name=t.name,this._columns=d.fromModel(this,t.cols),this._parseRows(t),this._parseMergeCells(t),this.dataValidations=new b(t.dataValidations),this.properties=t.properties,this.pageSetup=t.pageSetup,this.headerFooter=t.headerFooter,this.views=t.views,this.autoFilter=t.autoFilter,this._media=t.media.map((function(t){return new m(e,t)})),this.sheetProtection=t.sheetProtection,this.tables=t.tables.reduce((function(t,e){var r=new y;return r.model=e,t[e.name]=r,t}),{}),this.conditionalFormattings=t.conditionalFormattings}}])&&u(e.prototype,r),n&&u(e,n),t}();e.exports=g},{\"../utils/col-cache\":19,\"../utils/encryptor\":20,\"../utils/under-dash\":25,\"./column\":4,\"./data-validations\":5,\"./enums\":7,\"./image\":8,\"./range\":10,\"./row\":11,\"./table\":12}],15:[function(t,e,r){\"use strict\";t(\"core-js/modules/es.promise\"),t(\"core-js/modules/es.object.assign\"),t(\"core-js/modules/es.object.keys\"),t(\"core-js/modules/es.object.values\"),t(\"core-js/modules/es.symbol\"),t(\"core-js/modules/es.symbol.async-iterator\"),t(\"core-js/modules/es.array.iterator\"),t(\"core-js/modules/es.array.includes\"),t(\"core-js/modules/es.array.find-index\"),t(\"core-js/modules/es.array.find\"),t(\"core-js/modules/es.string.from-code-point\"),t(\"core-js/modules/es.string.includes\"),t(\"core-js/modules/es.number.is-nan\"),t(\"regenerator-runtime/runtime\");var n={Workbook:t(\"./doc/workbook\")},i=t(\"./doc/enums\");Object.keys(i).forEach((function(t){n[t]=i[t]})),e.exports=n},{\"./doc/enums\":7,\"./doc/workbook\":13,\"core-js/modules/es.array.find\":316,\"core-js/modules/es.array.find-index\":315,\"core-js/modules/es.array.includes\":317,\"core-js/modules/es.array.iterator\":318,\"core-js/modules/es.number.is-nan\":319,\"core-js/modules/es.object.assign\":320,\"core-js/modules/es.object.keys\":321,\"core-js/modules/es.object.values\":322,\"core-js/modules/es.promise\":323,\"core-js/modules/es.string.from-code-point\":324,\"core-js/modules/es.string.includes\":325,\"core-js/modules/es.symbol\":327,\"core-js/modules/es.symbol.async-iterator\":326,\"regenerator-runtime/runtime\":492}],16:[function(t,e,r){\"use strict\";var n=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf-8\");r.bufferToString=function(t){return\"string\"==typeof t?t:n?n.decode(t):t.toString()}},{}],17:[function(t,e,r){\"use strict\";var n=\"undefined\"==typeof TextEncoder?null:new TextEncoder(\"utf-8\"),i=t(\"buffer\").Buffer;r.stringToBuffer=function(t){return\"string\"!=typeof t?t:n?i.from(n.encode(t).buffer):i.from(t)}},{buffer:216}],18:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"./under-dash\"),o=t(\"./col-cache\"),a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.template=e,this.sheets={}}var e,r,a;return e=t,(r=[{key:\"addCell\",value:function(t){this.addCellEx(o.decodeEx(t))}},{key:\"getCell\",value:function(t){return this.findCellEx(o.decodeEx(t),!0)}},{key:\"findCell\",value:function(t){return this.findCellEx(o.decodeEx(t),!1)}},{key:\"findCellAt\",value:function(t,e,r){var n=this.sheets[t],i=n&&n[e];return i&&i[r]}},{key:\"addCellEx\",value:function(t){if(t.top)for(var e=t.top;e<=t.bottom;e++)for(var r=t.left;r<=t.right;r++)this.getCellAt(t.sheetName,e,r);else this.findCellEx(t,!0)}},{key:\"getCellEx\",value:function(t){return this.findCellEx(t,!0)}},{key:\"findCellEx\",value:function(t,e){var r=this.findSheet(t,e),n=this.findSheetRow(r,t,e);return this.findRowCell(n,t,e)}},{key:\"getCellAt\",value:function(t,e,r){var n=this.sheets[t]||(this.sheets[t]=[]),i=n[e]||(n[e]=[]);return i[r]||(i[r]={sheetName:t,address:o.n2l(r)+e,row:e,col:r})}},{key:\"removeCellEx\",value:function(t){var e=this.findSheet(t);if(e){var r=this.findSheetRow(e,t);r&&delete r[t.col]}}},{key:\"forEachInSheet\",value:function(t,e){var r=this.sheets[t];r&&r.forEach((function(t,r){t&&t.forEach((function(t,n){t&&e(t,r,n)}))}))}},{key:\"forEach\",value:function(t){var e=this;i.each(this.sheets,(function(r,n){e.forEachInSheet(n,t)}))}},{key:\"map\",value:function(t){var e=[];return this.forEach((function(r){e.push(t(r))})),e}},{key:\"findSheet\",value:function(t,e){var r=t.sheetName;return this.sheets[r]?this.sheets[r]:e?this.sheets[r]=[]:void 0}},{key:\"findSheetRow\",value:function(t,e,r){var n=e.row;return t&&t[n]?t[n]:r?t[n]=[]:void 0}},{key:\"findRowCell\",value:function(t,e,r){var n=e.col;return t&&t[n]?t[n]:r?t[n]=this.template?Object.assign(e,JSON.parse(JSON.stringify(this.template))):e:void 0}},{key:\"spliceRows\",value:function(t,e,r,n){var i=this.sheets[t];if(i){for(var o=[],a=0;a<n;a++)o.push([]);i.splice.apply(i,[e,r].concat(o))}}},{key:\"spliceColumns\",value:function(t,e,r,n){var o=this.sheets[t];if(o){for(var a=[],s=0;s<n;s++)a.push(null);i.each(o,(function(t){t.splice.apply(t,[e,r].concat(a))}))}}}])&&n(e.prototype,r),a&&n(e,a),t}();e.exports=a},{\"./col-cache\":19,\"./under-dash\":25}],19:[function(t,e,r){\"use strict\";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(t,e)||function(t,e){if(!t)return;if(\"string\"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var s=/^[A-Z]+\\d+$/,u={_dictionary:[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],_l2nFill:0,_l2n:{},_n2l:[],_level:function(t){return t<=26?1:t<=676?2:3},_fill:function(t){var e,r,n,i,o,a=1;if(t>=4)throw new Error(\"Out of bounds. Excel supports columns from 1 to 16384\");if(this._l2nFill<1&&t>=1){for(;a<=26;)e=this._dictionary[a-1],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=1}if(this._l2nFill<2&&t>=2){for(a=27;a<=702;)n=(r=a-27)%26,i=Math.floor(r/26),e=this._dictionary[i]+this._dictionary[n],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=2}if(this._l2nFill<3&&t>=3){for(a=703;a<=16384;)n=(r=a-703)%26,i=Math.floor(r/26)%26,o=Math.floor(r/676),e=this._dictionary[o]+this._dictionary[i]+this._dictionary[n],this._n2l[a]=e,this._l2n[e]=a,a++;this._l2nFill=3}},l2n:function(t){if(this._l2n[t]||this._fill(t.length),!this._l2n[t])throw new Error(\"Out of bounds. Invalid column letter: \".concat(t));return this._l2n[t]},n2l:function(t){if(t<1||t>16384)throw new Error(\"\".concat(t,\" is out of bounds. Excel supports columns from 1 to 16384\"));return this._n2l[t]||this._fill(this._level(t)),this._n2l[t]},_hash:{},validateAddress:function(t){if(!s.test(t))throw new Error(\"Invalid Address: \".concat(t));return!0},decodeAddress:function(t){var e=t.length<5&&this._hash[t];if(e)return e;for(var r,n=!1,i=\"\",o=0,a=!1,s=\"\",u=0,c=0;c<t.length;c++)if(r=t.charCodeAt(c),!a&&r>=65&&r<=90)n=!0,i+=t[c],o=26*o+r-64;else if(r>=48&&r<=57)a=!0,s+=t[c],u=10*u+r-48;else if(a&&n&&36!==r)break;if(n){if(o>16384)throw new Error(\"Out of bounds. Invalid column letter: \".concat(i))}else o=void 0;a||(u=void 0);var f={address:t=i+s,col:o,row:u,$col$row:\"$\".concat(i,\"$\").concat(s)};return o<=100&&u<=100&&(this._hash[t]=f,this._hash[f.$col$row]=f),f},getAddress:function(t,e){if(e){var r=this.n2l(e)+t;return this.decodeAddress(r)}return this.decodeAddress(t)},decode:function(t){var e=t.split(\":\");if(2===e.length){var r=this.decodeAddress(e[0]),n=this.decodeAddress(e[1]),i={top:Math.min(r.row,n.row),left:Math.min(r.col,n.col),bottom:Math.max(r.row,n.row),right:Math.max(r.col,n.col)};return i.tl=this.n2l(i.left)+i.top,i.br=this.n2l(i.right)+i.bottom,i.dimensions=\"\".concat(i.tl,\":\").concat(i.br),i}return this.decodeAddress(t)},decodeEx:function(t){var e=t.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/),r=e[1]||e[2],n=e[3],i=n.split(\":\");if(i.length>1){var s=this.decodeAddress(i[0]),u=this.decodeAddress(i[1]),c=Math.min(s.row,u.row),f=Math.min(s.col,u.col),l=Math.max(s.row,u.row),h=Math.max(s.col,u.col);return s=this.n2l(f)+c,u=this.n2l(h)+l,{top:c,left:f,bottom:l,right:h,sheetName:r,tl:{address:s,col:f,row:c,$col$row:\"$\".concat(this.n2l(f),\"$\").concat(c),sheetName:r},br:{address:u,col:h,row:l,$col$row:\"$\".concat(this.n2l(h),\"$\").concat(l),sheetName:r},dimensions:\"\".concat(s,\":\").concat(u)}}if(n.startsWith(\"#\"))return r?{sheetName:r,error:n}:{error:n};var d=this.decodeAddress(n);return r?function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({sheetName:r},d):d},encodeAddress:function(t,e){return u.n2l(e)+t},encode:function(){switch(arguments.length){case 2:return u.encodeAddress(arguments[0],arguments[1]);case 4:return\"\".concat(u.encodeAddress(arguments[0],arguments[1]),\":\").concat(u.encodeAddress(arguments[2],arguments[3]));default:throw new Error(\"Can only encode with 2 or 4 arguments\")}},inRange:function(t,e){var r=n(t,5),i=r[0],o=r[1],a=r[3],s=r[4],u=n(e,2),c=u[0],f=u[1];return c>=i&&c<=a&&f>=o&&f<=s}};e.exports=u},{}],20:[function(t,e,r){(function(r){\"use strict\";var n=t(\"crypto\"),i={hash:function(t){for(var e=n.createHash(t),i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];return e.update(r.concat(o)),e.digest()},convertPasswordToHash:function(t,e,i,o){if(e=e.toLowerCase(),n.getHashes().indexOf(e)<0)throw new Error(\"Hash algorithm '\".concat(e,\"' not supported!\"));for(var a=r.from(t,\"utf16le\"),s=this.hash(e,r.from(i,\"base64\"),a),u=0;u<o;u++){var c=r.alloc(4);c.writeUInt32LE(u,0),s=this.hash(e,s,c)}return s.toString(\"base64\")},randomBytes:function(t){return n.randomBytes(t)}};e.exports=i}).call(this,t(\"buffer\").Buffer)},{buffer:216,crypto:335}],21:[function(t,e,r){\"use strict\";function n(t){return new o(t)}function i(t){var e,r;function n(e,r){try{var a=t[e](r),s=a.value,u=s instanceof o;Promise.resolve(u?s.wrapped:s).then((function(t){u?n(\"return\"===e?\"return\":\"next\",t):i(a.done?\"return\":\"normal\",t)}),(function(t){n(\"throw\",t)}))}catch(t){i(\"throw\",t)}}function i(t,i){switch(t){case\"return\":e.resolve({value:i,done:!0});break;case\"throw\":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?n(e.key,e.arg):r=null}this._invoke=function(t,i){return new Promise((function(o,a){var s={key:t,arg:i,resolve:o,reject:a,next:null};r?r=r.next=s:(e=r=s,n(t,i))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function o(t){this.wrapped=t}function a(t){var e;if(\"undefined\"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(e=t[Symbol.asyncIterator]))return e.call(t);if(Symbol.iterator&&null!=(e=t[Symbol.iterator]))return e.call(t)}throw new TypeError(\"Object is not async iterable\")}\"function\"==typeof Symbol&&Symbol.asyncIterator&&(i.prototype[Symbol.asyncIterator]=function(){return this}),i.prototype.next=function(t){return this._invoke(\"next\",t)},i.prototype.throw=function(t){return this._invoke(\"throw\",t)},i.prototype.return=function(t){return this._invoke(\"return\",t)};var s=t(\"saxes\").SaxesParser,u=t(\"readable-stream\").PassThrough,c=t(\"./browser-buffer-decode\").bufferToString;e.exports=function(){var t,e=(t=regeneratorRuntime.mark((function t(e){var r,i,o,f,l,h,d,p,m,y;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.pipe&&!e[Symbol.asyncIterator]&&(e=e.pipe(new u)),(r=new s).on(\"error\",(function(t){i=t})),o=[],r.on(\"opentag\",(function(t){return o.push({eventType:\"opentag\",value:t})})),r.on(\"text\",(function(t){return o.push({eventType:\"text\",value:t})})),r.on(\"closetag\",(function(t){return o.push({eventType:\"closetag\",value:t})})),f=!0,l=!1,t.prev=9,d=a(e);case 11:return t.next=13,n(d.next());case 13:return p=t.sent,f=p.done,t.next=17,n(p.value);case 17:if(m=t.sent,f){t.next=29;break}if(y=m,r.write(c(y)),!i){t.next=23;break}throw i;case 23:return t.next=25,o;case 25:o=[];case 26:f=!0,t.next=11;break;case 29:t.next=35;break;case 31:t.prev=31,t.t0=t.catch(9),l=!0,h=t.t0;case 35:if(t.prev=35,t.prev=36,f||null==d.return){t.next=40;break}return t.next=40,n(d.return());case 40:if(t.prev=40,!l){t.next=43;break}throw h;case 43:return t.finish(40);case 44:return t.finish(35);case 45:case\"end\":return t.stop()}}),t,null,[[9,31,35,45],[36,,40,44]])})),function(){return new i(t.apply(this,arguments))});return function(t){return e.apply(this,arguments)}}()},{\"./browser-buffer-decode\":16,\"readable-stream\":491,saxes:496}],22:[function(t,e,r){\"use strict\";var n=t(\"./col-cache\"),i=/(([a-z_\\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi,o=/^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;e.exports={slideFormula:function(t,e,r){var a=n.decode(e),s=n.decode(r);return t.replace(i,(function(t,e,r,i,u){if(u)return t;var c=o.exec(i);if(c){var f=c[1],l=c[2].toUpperCase(),h=c[3],d=c[4];if(l.length>3||3===l.length&&l>\"XFD\")return t;var p=n.l2n(l),m=parseInt(d,10);return f||(p+=s.col-a.col),h||(m+=s.row-a.row),(e||\"\")+(f||\"\")+n.n2l(p)+(h||\"\")+m}return t}))}}},{\"./col-cache\":19}],23:[function(t,e,r){(function(r,n){\"use strict\";function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function s(t){i(a,n,o,s,u,\"next\",t)}function u(t){i(a,n,o,s,u,\"throw\",t)}s(void 0)}))}}function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function u(t,e,r){return e&&s(t.prototype,e),r&&s(t,r),t}var c=t(\"readable-stream\"),f=t(\"./utils\"),l=t(\"./string-buf\"),h=function(){function t(e,r){a(this,t),this._data=e,this._encoding=r}return u(t,[{key:\"copy\",value:function(t,e,r,n){return this.toBuffer().copy(t,e,r,n)}},{key:\"toBuffer\",value:function(){return this._buffer||(this._buffer=n.from(this._data,this._encoding)),this._buffer}},{key:\"length\",get:function(){return this.toBuffer().length}}]),t}(),d=function(){function t(e){a(this,t),this._data=e}return u(t,[{key:\"copy\",value:function(t,e,r,n){return this._data._buf.copy(t,e,r,n)}},{key:\"toBuffer\",value:function(){return this._data.toBuffer()}},{key:\"length\",get:function(){return this._data.length}}]),t}(),p=function(){function t(e){a(this,t),this._data=e}return u(t,[{key:\"copy\",value:function(t,e,r,n){this._data.copy(t,e,r,n)}},{key:\"toBuffer\",value:function(){return this._data}},{key:\"length\",get:function(){return this._data.length}}]),t}(),m=function(){function t(e){a(this,t),this.size=e,this.buffer=n.alloc(e),this.iRead=0,this.iWrite=0}return u(t,[{key:\"toBuffer\",value:function(){if(0===this.iRead&&this.iWrite===this.size)return this.buffer;var t=n.alloc(this.iWrite-this.iRead);return this.buffer.copy(t,0,this.iRead,this.iWrite),t}},{key:\"read\",value:function(t){var e;return 0===t?null:void 0===t||t>=this.length?(e=this.toBuffer(),this.iRead=this.iWrite,e):(e=n.alloc(t),this.buffer.copy(e,0,this.iRead,t),this.iRead+=t,e)}},{key:\"write\",value:function(t,e,r){var n=Math.min(r,this.size-this.iWrite);return t.copy(this.buffer,this.iWrite,e,e+n),this.iWrite+=n,n}},{key:\"length\",get:function(){return this.iWrite-this.iRead}},{key:\"eod\",get:function(){return this.iRead===this.iWrite}},{key:\"full\",get:function(){return this.iWrite===this.size}}]),t}(),y=function(t){t=t||{},this.bufSize=t.bufSize||1048576,this.buffers=[],this.batch=t.batch||!1,this.corked=!1,this.inPos=0,this.outPos=0,this.pipes=[],this.paused=!1,this.encoding=null};f.inherits(y,c.Duplex,{toBuffer:function(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return n.concat(this.buffers.map((function(t){return t.toBuffer()})))}},_getWritableBuffer:function(){if(this.buffers.length){var t=this.buffers[this.buffers.length-1];if(!t.full)return t}var e=new m(this.bufSize);return this.buffers.push(e),e},_pipe:function(t){var e=this;return o(regeneratorRuntime.mark((function r(){var n;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=function(e){return new Promise((function(r){e.write(t.toBuffer(),(function(){r()}))}))},r.next=3,Promise.all(e.pipes.map(n));case 3:case\"end\":return r.stop()}}),r)})))()},_writeToBuffers:function(t){for(var e=0,r=t.length;e<r;){e+=this._getWritableBuffer().write(t,e,r-e)}},write:function(t,e,i){var a=this;return o(regeneratorRuntime.mark((function o(){var s;return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(e instanceof Function&&(i=e,e=\"utf8\"),i=i||f.nop,!(t instanceof l)){o.next=6;break}s=new d(t),o.next=15;break;case 6:if(!(t instanceof n)){o.next=10;break}s=new p(t),o.next=15;break;case 10:if(!(\"string\"==typeof t||t instanceof String||t instanceof ArrayBuffer)){o.next=14;break}s=new h(t,e),o.next=15;break;case 14:throw new Error(\"Chunk must be one of type String, Buffer or StringBuf.\");case 15:if(!a.pipes.length){o.next=31;break}if(!a.batch){o.next=21;break}for(a._writeToBuffers(s);!a.corked&&a.buffers.length>1;)a._pipe(a.buffers.shift());o.next=29;break;case 21:if(a.corked){o.next=27;break}return o.next=24,a._pipe(s);case 24:i(),o.next=29;break;case 27:a._writeToBuffers(s),r.nextTick(i);case 29:o.next=34;break;case 31:a.paused||a.emit(\"data\",s.toBuffer()),a._writeToBuffers(s),a.emit(\"readable\");case 34:return o.abrupt(\"return\",!0);case 35:case\"end\":return o.stop()}}),o)})))()},cork:function(){this.corked=!0},_flush:function(){if(this.pipes.length)for(;this.buffers.length;)this._pipe(this.buffers.shift())},uncork:function(){this.corked=!1,this._flush()},end:function(t,e,r){var n=this,i=function(t){t?r(t):(n._flush(),n.pipes.forEach((function(t){t.end()})),n.emit(\"finish\"))};t?this.write(t,e,i):i()},read:function(t){var e;if(t){for(e=[];t&&this.buffers.length&&!this.buffers[0].eod;){var r=this.buffers[0],i=r.read(t);t-=i.length,e.push(i),r.eod&&r.full&&this.buffers.shift()}return n.concat(e)}return e=this.buffers.map((function(t){return t.toBuffer()})).filter(Boolean),this.buffers=[],n.concat(e)},setEncoding:function(t){this.encoding=t},pause:function(){this.paused=!0},resume:function(){this.paused=!1},isPaused:function(){return!!this.paused},pipe:function(t){this.pipes.push(t),!this.paused&&this.buffers.length&&this.end()},unpipe:function(t){this.pipes=this.pipes.filter((function(e){return e!==t}))},unshift:function(){throw new Error(\"Not Implemented\")},wrap:function(){throw new Error(\"Not Implemented\")}}),e.exports=y}).call(this,t(\"_process\"),t(\"buffer\").Buffer)},{\"./string-buf\":24,\"./utils\":26,_process:467,buffer:216,\"readable-stream\":491}],24:[function(t,e,r){(function(t){\"use strict\";function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var n=function(){function e(r){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._buf=t.alloc(r&&r.size||16384),this._encoding=r&&r.encoding||\"utf8\",this._inPos=0,this._buffer=void 0}var n,i,o;return n=e,(i=[{key:\"toBuffer\",value:function(){return this._buffer||(this._buffer=t.alloc(this.length),this._buf.copy(this._buffer,0,0,this.length)),this._buffer}},{key:\"reset\",value:function(t){t=t||0,this._buffer=void 0,this._inPos=t}},{key:\"_grow\",value:function(e){for(var r=2*this._buf.length;r<e;)r*=2;var n=t.alloc(r);this._buf.copy(n,0),this._buf=n}},{key:\"addText\",value:function(t){this._buffer=void 0;for(var e=this._inPos+this._buf.write(t,this._inPos,this._encoding);e>=this._buf.length-4;)this._grow(this._inPos+t.length),e=this._inPos+this._buf.write(t,this._inPos,this._encoding);this._inPos=e}},{key:\"addStringBuf\",value:function(t){t.length&&(this._buffer=void 0,this.length+t.length>this.capacity&&this._grow(this.length+t.length),t._buf.copy(this._buf,this._inPos,0,t.length),this._inPos+=t.length)}},{key:\"length\",get:function(){return this._inPos}},{key:\"capacity\",get:function(){return this._buf.length}},{key:\"buffer\",get:function(){return this._buf}}])&&r(n.prototype,i),o&&r(n,o),e}();e.exports=n}).call(this,t(\"buffer\").Buffer)},{buffer:216}],25:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=Object.prototype.toString,o=/[\"&<>]/,a={each:function(t,e){t&&(Array.isArray(t)?t.forEach(e):Object.keys(t).forEach((function(r){e(t[r],r)})))},some:function(t,e){return!!t&&(Array.isArray(t)?t.some(e):Object.keys(t).some((function(r){return e(t[r],r)})))},every:function(t,e){return!t||(Array.isArray(t)?t.every(e):Object.keys(t).every((function(r){return e(t[r],r)})))},map:function(t,e){return t?Array.isArray(t)?t.map(e):Object.keys(t).map((function(r){return e(t[r],r)})):[]},keyBy:function(t,e){return t.reduce((function(t,r){return t[r[e]]=r,t}),{})},isEqual:function(t,e){var r=n(t),i=n(e),o=Array.isArray(t),s=Array.isArray(e);if(r!==i)return!1;switch(n(t)){case\"object\":return o||s?!(!o||!s)&&(t.length===e.length&&t.every((function(t,r){var n=e[r];return a.isEqual(t,n)}))):a.every(t,(function(t,r){var n=e[r];return a.isEqual(t,n)}));default:return t===e}},escapeHtml:function(t){var e=o.exec(t);if(!e)return t;for(var r=\"\",n=\"\",i=0,a=e.index;a<t.length;a++){switch(t.charAt(a)){case'\"':n=\""\";break;case\"&\":n=\"&\";break;case\"'\":n=\"'\";break;case\"<\":n=\"<\";break;case\">\":n=\">\";break;default:continue}i!==a&&(r+=t.substring(i,a)),i=a+1,r+=n}return i!==a?r+t.substring(i,a):r},strcmp:function(t,e){return t<e?-1:t>e?1:0},isUndefined:function(t){return\"[object Undefined]\"===i.call(t)},isObject:function(t){return\"[object Object]\"===i.call(t)},deepMerge:function(){var t,e,r,n=arguments[0]||{},i=arguments.length;function o(i,o){t=n[o],r=Array.isArray(i),a.isObject(i)||r?(r?(r=!1,e=t&&Array.isArray(t)?t:[]):e=t&&a.isObject(t)?t:{},n[o]=a.deepMerge(e,i)):a.isUndefined(i)||(n[o]=i)}for(var s=0;s<i;s++)a.each(arguments[s],o);return n}};e.exports=a},{}],26:[function(t,e,r){(function(r,n){\"use strict\";var i=t(\"fs\"),o=/[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/,a={nop:function(){},promiseImmediate:function(t){return new Promise((function(e){r.setImmediate?n((function(){e(t)})):setTimeout((function(){e(t)}),1)}))},inherits:function(t,e,r,n){t.super_=e,n||(n=r,r=null),r&&Object.keys(r).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}));var i={constructor:{value:t,enumerable:!1,writable:!1,configurable:!0}};n&&Object.keys(n).forEach((function(t){i[t]=Object.getOwnPropertyDescriptor(n,t)})),t.prototype=Object.create(e.prototype,i)},dateToExcel:function(t,e){return 25569+t.getTime()/864e5-(e?1462:0)},excelToDate:function(t,e){var r=Math.round(24*(t-25569+(e?1462:0))*3600*1e3);return new Date(r)},parsePath:function(t){var e=t.lastIndexOf(\"/\");return{path:t.substring(0,e),name:t.substring(e+1)}},getRelsPath:function(t){var e=a.parsePath(t);return\"\".concat(e.path,\"/_rels/\").concat(e.name,\".rels\")},xmlEncode:function(t){var e=o.exec(t);if(!e)return t;for(var r=\"\",n=\"\",i=0,a=e.index;a<t.length;a++){var s=t.charCodeAt(a);switch(s){case 34:n=\""\";break;case 38:n=\"&\";break;case 39:n=\"'\";break;case 60:n=\"<\";break;case 62:n=\">\";break;case 127:n=\"\";break;default:if(s<=31&&(s<=8||s>=11&&13!==s)){n=\"\";break}continue}i!==a&&(r+=t.substring(i,a)),i=a+1,n&&(r+=n)}return i!==a?r+t.substring(i,a):r},xmlDecode:function(t){return t.replace(/&([a-z]*);/g,(function(t){switch(t){case\"<\":return\"<\";case\">\":return\">\";case\"&\":return\"&\";case\"'\":return\"'\";case\""\":return'\"';default:return t}}))},validInt:function(t){var e=parseInt(t,10);return Number.isNaN(e)?0:e},isDateFmt:function(t){return!!t&&null!==(t=(t=t.replace(/\\[[^\\]]*]/g,\"\")).replace(/\"[^\"]*\"/g,\"\")).match(/[ymdhMsb]+/)},fs:{exists:function(t){return new Promise((function(e){i.access(t,i.constants.F_OK,(function(t){e(!t)}))}))}},toIsoDateString:function(t){return t.toIsoString().subsstr(0,10)}};e.exports=a}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},t(\"timers\").setImmediate)},{fs:215,timers:521}],27:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"./under-dash\"),o=t(\"./utils\");function a(t,e,r){t.push(\" \"),t.push(e),t.push('=\"'),t.push(o.xmlEncode(r.toString())),t.push('\"')}function s(t,e){e&&i.each(e,(function(e,r){void 0!==e&&a(t,r,e)}))}var u=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._xml=[],this._stack=[],this._rollbacks=[]}var e,r,i;return e=t,(r=[{key:\"openXml\",value:function(t){var e=this._xml;e.push(\"<?xml\"),s(e,t),e.push(\"?>\\n\")}},{key:\"openNode\",value:function(t,e){var r=this.tos,n=this._xml;r&&this.open&&n.push(\">\"),this._stack.push(t),n.push(\"<\"),n.push(t),s(n,e),this.leaf=!0,this.open=!0}},{key:\"addAttribute\",value:function(t,e){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");void 0!==e&&a(this._xml,t,e)}},{key:\"addAttributes\",value:function(t){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");s(this._xml,t)}},{key:\"writeText\",value:function(t){var e=this._xml;this.open&&(e.push(\">\"),this.open=!1),this.leaf=!1,e.push(o.xmlEncode(t.toString()))}},{key:\"writeXml\",value:function(t){this.open&&(this._xml.push(\">\"),this.open=!1),this.leaf=!1,this._xml.push(t)}},{key:\"closeNode\",value:function(){var t=this._stack.pop(),e=this._xml;this.leaf?e.push(\"/>\"):(e.push(\"</\"),e.push(t),e.push(\">\")),this.open=!1,this.leaf=!1}},{key:\"leafNode\",value:function(t,e,r){this.openNode(t,e),void 0!==r&&this.writeText(r),this.closeNode()}},{key:\"closeAll\",value:function(){for(;this._stack.length;)this.closeNode()}},{key:\"addRollback\",value:function(){return this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open}),this.cursor}},{key:\"commit\",value:function(){this._rollbacks.pop()}},{key:\"rollback\",value:function(){var t=this._rollbacks.pop();this._xml.length>t.xml&&this._xml.splice(t.xml,this._xml.length-t.xml),this._stack.length>t.stack&&this._stack.splice(t.stack,this._stack.length-t.stack),this.leaf=t.leaf,this.open=t.open}},{key:\"tos\",get:function(){return this._stack.length?this._stack[this._stack.length-1]:void 0}},{key:\"cursor\",get:function(){return this._xml.length}},{key:\"xml\",get:function(){return this.closeAll(),this._xml.join(\"\")}}])&&n(e.prototype,r),i&&n(e,i),t}();u.StdDocAttributes={version:\"1.0\",encoding:\"UTF-8\",standalone:\"yes\"},e.exports=u},{\"./under-dash\":25,\"./utils\":26}],28:[function(t,e,r){(function(r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"events\"),l=t(\"jszip\"),h=t(\"./stream-buf\"),d=t(\"./browser-buffer-encode\").stringToBuffer,p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(m,t);var e,n,u,c,f,p=s(m);function m(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,m),(e=p.call(this)).options=Object.assign({type:\"nodebuffer\",compression:\"DEFLATE\"},t),e.zip=new l,e.stream=new h,e}return e=m,(n=[{key:\"append\",value:function(t,e){e.hasOwnProperty(\"base64\")&&e.base64?this.zip.file(e.name,t,{base64:!0}):(r.browser&&\"string\"==typeof t&&(t=d(t)),this.zip.file(e.name,t))}},{key:\"finalize\",value:(c=regeneratorRuntime.mark((function t(){var e;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.zip.generateAsync(this.options);case 2:e=t.sent,this.stream.end(e),this.emit(\"finish\");case 5:case\"end\":return t.stop()}}),t,this)})),f=function(){var t=this,e=arguments;return new Promise((function(r,n){var o=c.apply(t,e);function a(t){i(o,r,n,a,s,\"next\",t)}function s(t){i(o,r,n,a,s,\"throw\",t)}a(void 0)}))},function(){return f.apply(this,arguments)})},{key:\"read\",value:function(t){return this.stream.read(t)}},{key:\"setEncoding\",value:function(t){return this.stream.setEncoding(t)}},{key:\"pause\",value:function(){return this.stream.pause()}},{key:\"resume\",value:function(){return this.stream.resume()}},{key:\"isPaused\",value:function(){return this.stream.isPaused()}},{key:\"pipe\",value:function(t,e){return this.stream.pipe(t,e)}},{key:\"unpipe\",value:function(t){return this.stream.unpipe(t)}},{key:\"unshift\",value:function(t){return this.stream.unshift(t)}},{key:\"wrap\",value:function(t){return this.stream.wrap(t)}}])&&o(e.prototype,n),u&&o(e,u),m}(f.EventEmitter);e.exports={ZipWriter:p}}).call(this,t(\"_process\"))},{\"./browser-buffer-encode\":17,\"./stream-buf\":23,_process:467,events:367,jszip:399}],29:[function(t,e,r){\"use strict\";e.exports={0:{f:\"General\"},1:{f:\"0\"},2:{f:\"0.00\"},3:{f:\"#,##0\"},4:{f:\"#,##0.00\"},9:{f:\"0%\"},10:{f:\"0.00%\"},11:{f:\"0.00E+00\"},12:{f:\"# ?/?\"},13:{f:\"# ??/??\"},14:{f:\"mm-dd-yy\"},15:{f:\"d-mmm-yy\"},16:{f:\"d-mmm\"},17:{f:\"mmm-yy\"},18:{f:\"h:mm AM/PM\"},19:{f:\"h:mm:ss AM/PM\"},20:{f:\"h:mm\"},21:{f:\"h:mm:ss\"},22:{f:'m/d/yy \"h\":mm'},27:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},28:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},29:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},30:{\"zh-tw\":\"m/d/yy \",\"zh-cn\":\"m-d-yy\",\"ja-jp\":\"m/d/yy\",\"ko-kr\":\"mm-dd-yy\"},31:{\"zh-tw\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":'yyyy\"\\ub144\" mm\"\\uc6d4\" dd\"\\uc77c\"'},32:{\"zh-tw\":'hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'h\"\\u6642\"mm\"\\u5206\"',\"ko-kr\":'h\"\\uc2dc\" mm\"\\ubd84\"'},33:{\"zh-tw\":'hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'h\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"ko-kr\":'h\"\\uc2dc\" mm\"\\ubd84\" ss\"\\ucd08\"'},34:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},35:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},36:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},37:{f:\"#,##0 ;(#,##0)\"},38:{f:\"#,##0 ;[Red](#,##0)\"},39:{f:\"#,##0.00 ;(#,##0.00)\"},40:{f:\"#,##0.00 ;[Red](#,##0.00)\"},45:{f:\"mm:ss\"},46:{f:\"[h]:mm:ss\"},47:{f:\"mmss.0\"},48:{f:\"##0.0E+0\"},49:{f:\"@\"},50:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},51:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},52:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},53:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},54:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},55:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},56:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},57:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},58:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},59:{\"th-th\":\"t0\"},60:{\"th-th\":\"t0.00\"},61:{\"th-th\":\"t#,##0\"},62:{\"th-th\":\"t#,##0.00\"},67:{\"th-th\":\"t0%\"},68:{\"th-th\":\"t0.00%\"},69:{\"th-th\":\"t# ?/?\"},70:{\"th-th\":\"t# ??/??\"},81:{\"th-th\":\"d/m/bb\"}}},{}],30:[function(t,e,r){\"use strict\";e.exports={OfficeDocument:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",Worksheet:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",CalcChain:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain\",SharedStrings:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",Styles:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",Theme:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",Hyperlink:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",Image:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",CoreProperties:\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",ExtenderProperties:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",Comments:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",VmlDrawing:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",Table:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table\"}},{}],31:[function(t,e,r){\"use strict\";function n(t,e){var r;if(\"undefined\"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if(\"string\"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t))||e&&t&&\"number\"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function s(t){o(a,n,i,s,u,\"next\",t)}function u(t){o(a,n,i,s,u,\"throw\",t)}s(void 0)}))}}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function u(t){var e;if(\"undefined\"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(e=t[Symbol.asyncIterator]))return e.call(t);if(Symbol.iterator&&null!=(e=t[Symbol.iterator]))return e.call(t)}throw new TypeError(\"Object is not async iterable\")}var c=t(\"../../utils/parse-sax\"),f=t(\"../../utils/xml-stream\"),l=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}var e,r,i,o,l;return e=t,r=[{key:\"prepare\",value:function(){}},{key:\"render\",value:function(){}},{key:\"parseOpen\",value:function(t){}},{key:\"parseText\",value:function(t){}},{key:\"parseClose\",value:function(t){}},{key:\"reconcile\",value:function(t,e){}},{key:\"reset\",value:function(){this.model=null,this.map&&Object.values(this.map).forEach((function(e){e instanceof t?e.reset():e.xform&&e.xform.reset()}))}},{key:\"mergeModel\",value:function(t){this.model=Object.assign(this.model||{},t)}},{key:\"parse\",value:(l=a(regeneratorRuntime.mark((function t(e){var r,i,o,a,s,c,f,l,h,d,p;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=!0,i=!1,t.prev=2,a=u(e);case 4:return t.next=6,a.next();case 6:return s=t.sent,r=s.done,t.next=10,s.value;case 10:if(c=t.sent,r){t.next=42;break}f=n(c),t.prev=14,f.s();case 16:if((l=f.n()).done){t.next=31;break}if(h=l.value,d=h.eventType,p=h.value,\"opentag\"!==d){t.next=22;break}this.parseOpen(p),t.next=29;break;case 22:if(\"text\"!==d){t.next=26;break}this.parseText(p),t.next=29;break;case 26:if(\"closetag\"!==d){t.next=29;break}if(this.parseClose(p.name)){t.next=29;break}return t.abrupt(\"return\",this.model);case 29:t.next=16;break;case 31:t.next=36;break;case 33:t.prev=33,t.t0=t.catch(14),f.e(t.t0);case 36:return t.prev=36,f.f(),t.finish(36);case 39:r=!0,t.next=4;break;case 42:t.next=48;break;case 44:t.prev=44,t.t1=t.catch(2),i=!0,o=t.t1;case 48:if(t.prev=48,t.prev=49,r||null==a.return){t.next=53;break}return t.next=53,a.return();case 53:if(t.prev=53,!i){t.next=56;break}throw o;case 56:return t.finish(53);case 57:return t.finish(48);case 58:return t.abrupt(\"return\",this.model);case 59:case\"end\":return t.stop()}}),t,this,[[2,44,48,58],[14,33,36,39],[49,,53,57]])}))),function(t){return l.apply(this,arguments)})},{key:\"parseStream\",value:(o=a(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(\"return\",this.parse(c(e)));case 1:case\"end\":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:\"toXml\",value:function(t){var e=new f;return this.render(e,t),e.xml}},{key:\"xml\",get:function(){return this.toXml(this.model)}}],i=[{key:\"toAttribute\",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===t){if(r)return e}else if(r||t!==e)return t.toString()}},{key:\"toStringAttribute\",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:\"toStringValue\",value:function(t,e){return void 0===t?e:t}},{key:\"toBoolAttribute\",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===t){if(r)return e}else if(r||t!==e)return t?\"1\":\"0\"}},{key:\"toBoolValue\",value:function(t,e){return void 0===t?e:\"1\"===t}},{key:\"toIntAttribute\",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:\"toIntValue\",value:function(t,e){return void 0===t?e:parseInt(t,10)}},{key:\"toFloatAttribute\",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.toAttribute(e,r,n)}},{key:\"toFloatValue\",value:function(t,e){return void 0===t?e:parseFloat(t)}}],r&&s(e.prototype,r),i&&s(e,i),t}();e.exports=l},{\"../../utils/parse-sax\":21,\"../../utils/xml-stream\":27}],32:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../base-xform\"),l=t(\"../../../utils/col-cache\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.openNode(\"definedName\",{name:e.name,localSheetId:e.localSheetId}),t.writeText(e.ranges.join(\",\")),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"definedName\":return this._parsedName=t.attributes.name,this._parsedLocalSheetId=t.attributes.localSheetId,this._parsedText=[],!0;default:return!1}}},{key:\"parseText\",value:function(t){this._parsedText.push(t)}},{key:\"parseClose\",value:function(){return this.model={name:this._parsedName,ranges:p(this._parsedText.join(\"\"))},void 0!==this._parsedLocalSheetId&&(this.model.localSheetId=parseInt(this._parsedLocalSheetId,10)),!1}}])&&o(e.prototype,r),n&&o(e,n),c}(f);function d(t){try{return l.decodeEx(t),!0}catch(t){return!1}}function p(t){var e=[],r=!1,n=\"\";return t.split(\",\").forEach((function(t){if(t){var i=(t.match(/'/g)||[]).length;if(i){var o=i%2==0;!r&&o&&d(t)?e.push(t):r&&!o?(r=!1,d(n+t)&&e.push(n+t),n=\"\"):(r=!0,n+=\"\".concat(t,\",\"))}else r?n+=\"\".concat(t,\",\"):d(t)&&e.push(t)}})),e}e.exports=h},{\"../../../utils/col-cache\":19,\"../base-xform\":31}],33:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/utils\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"sheet\",{sheetId:e.id,name:e.name,state:e.state,\"r:id\":e.rId})}},{key:\"parseOpen\",value:function(t){return\"sheet\"===t.name&&(this.model={name:f.xmlDecode(t.attributes.name),id:parseInt(t.attributes.sheetId,10),state:t.attributes.state,rId:t.attributes[\"r:id\"]},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=l},{\"../../../utils/utils\":26,\"../base-xform\":31}],34:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"calcPr\",{calcId:171027,fullCalcOnLoad:e.fullCalcOnLoad?1:void 0})}},{key:\"parseOpen\",value:function(t){return\"calcPr\"===t.name&&(this.model={},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],35:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"workbookPr\",{date1904:e.date1904?1:void 0,defaultThemeVersion:164011,filterPrivacy:1})}},{key:\"parseOpen\",value:function(t){return\"workbookPr\"===t.name&&(this.model={date1904:\"1\"===t.attributes.date1904},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],36:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){var r={xWindow:e.x||0,yWindow:e.y||0,windowWidth:e.width||12e3,windowHeight:e.height||24e3,firstSheet:e.firstSheet,activeTab:e.activeTab};e.visibility&&\"visible\"!==e.visibility&&(r.visibility=e.visibility),t.leafNode(\"workbookView\",r)}},{key:\"parseOpen\",value:function(t){if(\"workbookView\"===t.name){var e=this.model={},r=function(t,r,n){var i=void 0!==r?e[t]=parseInt(r,10):n;void 0!==i&&(e[t]=i)};return r(\"x\",t.attributes.xWindow,0),r(\"y\",t.attributes.yWindow,0),r(\"width\",t.attributes.windowWidth,25e3),r(\"height\",t.attributes.windowHeight,1e4),n=\"visibility\",i=t.attributes.visibility,o=\"visible\",void 0!==(a=void 0!==i?e[n]=i:o)&&(e[n]=a),r(\"activeTab\",t.attributes.activeTab,void 0),r(\"firstSheet\",t.attributes.firstSheet,void 0),!0}var n,i,o,a;return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],37:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/under-dash\"),f=t(\"../../../utils/col-cache\"),l=t(\"../../../utils/xml-stream\"),h=t(\"../base-xform\"),d=t(\"../static-xform\"),p=t(\"../list-xform\"),m=t(\"./defined-name-xform\"),y=t(\"./sheet-xform\"),b=t(\"./workbook-view-xform\"),v=t(\"./workbook-properties-xform\"),g=t(\"./workbook-calc-properties-xform\"),w=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={fileVersion:u.STATIC_XFORMS.fileVersion,workbookPr:new v,bookViews:new p({tag:\"bookViews\",count:!1,childXform:new b}),sheets:new p({tag:\"sheets\",count:!1,childXform:new y}),definedNames:new p({tag:\"definedNames\",count:!1,childXform:new m}),calcPr:new g},t}return e=u,(r=[{key:\"prepare\",value:function(t){t.sheets=t.worksheets;var e=[],r=0;t.sheets.forEach((function(t){if(t.pageSetup&&t.pageSetup.printArea&&t.pageSetup.printArea.split(\"&&\").forEach((function(n){var i=n.split(\":\"),o={name:\"_xlnm.Print_Area\",ranges:[\"'\".concat(t.name,\"'!$\").concat(i[0],\":$\").concat(i[1])],localSheetId:r};e.push(o)})),t.pageSetup&&(t.pageSetup.printTitlesRow||t.pageSetup.printTitlesColumn)){var n=[];if(t.pageSetup.printTitlesColumn){var i=t.pageSetup.printTitlesColumn.split(\":\");n.push(\"'\".concat(t.name,\"'!$\").concat(i[0],\":$\").concat(i[1]))}if(t.pageSetup.printTitlesRow){var o=t.pageSetup.printTitlesRow.split(\":\");n.push(\"'\".concat(t.name,\"'!$\").concat(o[0],\":$\").concat(o[1]))}var a={name:\"_xlnm.Print_Titles\",ranges:n,localSheetId:r};e.push(a)}r++})),e.length&&(t.definedNames=t.definedNames.concat(e)),(t.media||[]).forEach((function(t,e){t.name=t.type+(e+1)}))}},{key:\"render\",value:function(t,e){t.openXml(l.StdDocAttributes),t.openNode(\"workbook\",u.WORKBOOK_ATTRIBUTES),this.map.fileVersion.render(t),this.map.workbookPr.render(t,e.properties),this.map.bookViews.render(t,e.views),this.map.sheets.render(t,e.sheets),this.map.definedNames.render(t,e.definedNames),this.map.calcPr.render(t,e.calcProperties),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"workbook\":return!0;default:return this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t),!0}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case\"workbook\":return this.model={sheets:this.map.sheets.model,properties:this.map.workbookPr.model||{},views:this.map.bookViews.model,calcProperties:{}},this.map.definedNames.model&&(this.model.definedNames=this.map.definedNames.model),!1;default:return!0}}},{key:\"reconcile\",value:function(t){var e,r=(t.workbookRels||[]).reduce((function(t,e){return t[e.Id]=e,t}),{}),n=[],i=0;(t.sheets||[]).forEach((function(o){var a=r[o.rId];a&&(e=t.worksheetHash[\"xl/\".concat(a.Target.replace(/^(\\s|\\/xl\\/)+/,\"\"))])&&(e.name=o.name,e.id=o.id,e.state=o.state,n[i++]=e)}));var o=[];c.each(t.definedNames,(function(t){if(\"_xlnm.Print_Area\"===t.name){if(e=n[t.localSheetId]){e.pageSetup||(e.pageSetup={});var r=f.decodeEx(t.ranges[0]);e.pageSetup.printArea=e.pageSetup.printArea?\"\".concat(e.pageSetup.printArea,\"&&\").concat(r.dimensions):r.dimensions}}else if(\"_xlnm.Print_Titles\"===t.name){if(e=n[t.localSheetId]){e.pageSetup||(e.pageSetup={});var i=t.ranges.join(\",\"),a=/\\$/g,s=i.match(/\\$\\d+:\\$\\d+/);if(s&&s.length){var u=s[0];e.pageSetup.printTitlesRow=u.replace(a,\"\")}var c=i.match(/\\$[A-Z]+:\\$[A-Z]+/);if(c&&c.length){var l=c[0];e.pageSetup.printTitlesColumn=l.replace(a,\"\")}}}else o.push(t)})),t.definedNames=o,t.media.forEach((function(t,e){t.index=e}))}}])&&i(e.prototype,r),n&&i(e,n),u}(h);w.WORKBOOK_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x15\",\"xmlns:x15\":\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"},w.STATIC_XFORMS={fileVersion:new d({tag:\"fileVersion\",$:{appName:\"xl\",lastEdited:5,lowestEdited:5,rupBuild:9303}})},e.exports=w},{\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":25,\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"../list-xform\":70,\"../static-xform\":119,\"./defined-name-xform\":32,\"./sheet-xform\":33,\"./workbook-calc-properties-xform\":34,\"./workbook-properties-xform\":35,\"./workbook-view-xform\":36}],38:[function(t,e,r){\"use strict\";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=t(\"../strings/rich-text-xform\"),a=t(\"../../../utils/utils\"),s=t(\"../base-xform\"),u=e.exports=function(t){this.model=t};a.inherits(u,s,{get tag(){return\"r\"},get richTextXform(){return this._richTextXform||(this._richTextXform=new o),this._richTextXform},render:function(t,e){var r=this;e=e||this.model,t.openNode(\"comment\",{ref:e.ref,authorId:0}),t.openNode(\"text\"),e&&e.note&&e.note.texts&&e.note.texts.forEach((function(e){r.richTextXform.render(t,e)})),t.closeNode(),t.closeNode()},parseOpen:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"comment\":return this.model=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({type:\"note\",note:{texts:[]}},t.attributes),!0;case\"r\":return this.parser=this.richTextXform,this.parser.parseOpen(t),!0;default:return!1}},parseText:function(t){this.parser&&this.parser.parseText(t)},parseClose:function(t){switch(t){case\"comment\":return!1;case\"r\":return this.model.note.texts.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(t),!0}}})},{\"../../../utils/utils\":26,\"../base-xform\":31,\"../strings/rich-text-xform\":121}],39:[function(t,e,r){\"use strict\";var n=t(\"../../../utils/xml-stream\"),i=t(\"../../../utils/utils\"),o=t(\"../base-xform\"),a=t(\"./comment-xform\"),s=e.exports=function(){this.map={comment:new a}};i.inherits(s,o,{COMMENTS_ATTRIBUTES:{xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"}},{render:function(t,e){var r=this;e=e||this.model,t.openXml(n.StdDocAttributes),t.openNode(\"comments\",s.COMMENTS_ATTRIBUTES),t.openNode(\"authors\"),t.leafNode(\"author\",null,\"Author\"),t.closeNode(),t.openNode(\"commentList\"),e.comments.forEach((function(e){r.map.comment.render(t,e)})),t.closeNode(),t.closeNode()},parseOpen:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"commentList\":return this.model={comments:[]},!0;case\"comment\":return this.parser=this.map.comment,this.parser.parseOpen(t),!0;default:return!1}},parseText:function(t){this.parser&&this.parser.parseText(t)},parseClose:function(t){switch(t){case\"commentList\":return!1;case\"comment\":return this.model.comments.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(t),!0}}})},{\"../../../utils/utils\":26,\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"./comment-xform\":38}],40:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this))._model=t,e}return e=u,(r=[{key:\"render\",value:function(t,e,r){(e===r[2]||\"x:SizeWithCells\"===this.tag&&e===r[1])&&t.leafNode(this.tag)}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={},this.model[this.tag]=!0,!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return this._model&&this._model.tag}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../../base-xform\"));e.exports=c},{\"../../base-xform\":31}],41:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this))._model=t,e}return e=u,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,null,e)}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.text=\"\",!0;default:return!1}}},{key:\"parseText\",value:function(t){this.text=t}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return this._model&&this._model.tag}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../../base-xform\"));e.exports=c},{\"../../base-xform\":31}],42:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"getAnchorRect\",value:function(t){var e=Math.floor(t.left),r=Math.floor(68*(t.left-e)),n=Math.floor(t.top),i=Math.floor(18*(t.top-n)),o=Math.floor(t.right),a=Math.floor(68*(t.right-o)),s=Math.floor(t.bottom);return[e,r,n,i,o,a,s,Math.floor(18*(t.bottom-s))]}},{key:\"getDefaultRect\",value:function(t){var e=t.col,r=Math.max(t.row-2,0);return[e,6,r,14,e+2,2,r+4,16]}},{key:\"render\",value:function(t,e){var r=e.anchor?this.getAnchorRect(e.anchor):this.getDefaultRect(e.refAddress);t.leafNode(\"x:Anchor\",null,r.join(\", \"))}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.text=\"\",!0;default:return!1}}},{key:\"parseText\",value:function(t){this.text=t}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"x:Anchor\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],43:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./vml-anchor-xform\"),l=t(\"./style/vml-protection-xform\"),h=t(\"./style/vml-position-xform\"),d=[\"twoCells\",\"oneCells\",\"absolute\"],p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"x:Anchor\":new f,\"x:Locked\":new l({tag:\"x:Locked\"}),\"x:LockText\":new l({tag:\"x:LockText\"}),\"x:SizeWithCells\":new h({tag:\"x:SizeWithCells\"}),\"x:MoveWithCells\":new h({tag:\"x:MoveWithCells\"})},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=e.note,n=r.protection,i=r.editAs;t.openNode(this.tag,{ObjectType:\"Note\"}),this.map[\"x:MoveWithCells\"].render(t,i,d),this.map[\"x:SizeWithCells\"].render(t,i,d),this.map[\"x:Anchor\"].render(t,e),this.map[\"x:Locked\"].render(t,n.locked),t.leafNode(\"x:AutoFill\",null,\"False\"),this.map[\"x:LockText\"].render(t,n.lockText),t.leafNode(\"x:Row\",null,e.refAddress.row-1),t.leafNode(\"x:Column\",null,e.refAddress.col-1),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:this.reset(),this.model={anchor:[],protection:{},editAs:\"\"};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.normalizeModel(),!1;default:return!0}}},{key:\"normalizeModel\",value:function(){var t=Object.assign({},this.map[\"x:MoveWithCells\"].model,this.map[\"x:SizeWithCells\"].model),e=Object.keys(t).length;this.model.editAs=d[e],this.model.anchor=this.map[\"x:Anchor\"].text,this.model.protection.locked=this.map[\"x:Locked\"].text,this.model.protection.lockText=this.map[\"x:LockText\"].text}},{key:\"tag\",get:function(){return\"x:ClientData\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=p},{\"../base-xform\":31,\"./style/vml-position-xform\":40,\"./style/vml-protection-xform\":41,\"./vml-anchor-xform\":42}],44:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/xml-stream\"),f=t(\"../base-xform\"),l=t(\"./vml-shape-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"v:shape\":new l},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;t.openXml(c.StdDocAttributes),t.openNode(this.tag,u.DRAWING_ATTRIBUTES),t.openNode(\"o:shapelayout\",{\"v:ext\":\"edit\"}),t.leafNode(\"o:idmap\",{\"v:ext\":\"edit\",data:1}),t.closeNode(),t.openNode(\"v:shapetype\",{id:\"_x0000_t202\",coordsize:\"21600,21600\",\"o:spt\":202,path:\"m,l,21600r21600,l21600,xe\"}),t.leafNode(\"v:stroke\",{joinstyle:\"miter\"}),t.leafNode(\"v:path\",{gradientshapeok:\"t\",\"o:connecttype\":\"rect\"}),t.closeNode(),e.comments.forEach((function(e,n){r.map[\"v:shape\"].render(t,e,n)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset(),this.model={comments:[]};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.model.comments.push(this.parser.model),this.parser=void 0),!0;switch(t){case this.tag:return!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){var r=this;t.anchors.forEach((function(t){t.br?r.map[\"xdr:twoCellAnchor\"].reconcile(t,e):r.map[\"xdr:oneCellAnchor\"].reconcile(t,e)}))}},{key:\"tag\",get:function(){return\"xml\"}}])&&i(e.prototype,r),n&&i(e,n),u}(f);h.DRAWING_ATTRIBUTES={\"xmlns:v\":\"urn:schemas-microsoft-com:vml\",\"xmlns:o\":\"urn:schemas-microsoft-com:office:office\",\"xmlns:x\":\"urn:schemas-microsoft-com:office:excel\"},e.exports=h},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"./vml-shape-xform\":45}],45:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./vml-textbox-xform\"),l=t(\"./vml-client-data-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"v:textbox\":new f,\"x:ClientData\":new l},t}return e=u,(r=[{key:\"render\",value:function(t,e,r){t.openNode(\"v:shape\",u.V_SHAPE_ATTRIBUTES(e,r)),t.leafNode(\"v:fill\",{color2:\"infoBackground [80]\"}),t.leafNode(\"v:shadow\",{color:\"none [81]\",obscured:\"t\"}),t.leafNode(\"v:path\",{\"o:connecttype\":\"none\"}),this.map[\"v:textbox\"].render(t,e),this.map[\"x:ClientData\"].render(t,e),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset(),this.model={margins:{insetmode:t.attributes[\"o:insetmode\"]},anchor:\"\",editAs:\"\",protection:{}};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model.margins.inset=this.map[\"v:textbox\"].model&&this.map[\"v:textbox\"].model.inset,this.model.protection=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.protection,this.model.anchor=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.anchor,this.model.editAs=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.editAs,!1;default:return!0}}},{key:\"tag\",get:function(){return\"v:shape\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);h.V_SHAPE_ATTRIBUTES=function(t,e){return{id:\"_x0000_s\".concat(1025+e),type:\"#_x0000_t202\",style:\"position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden\",fillcolor:\"infoBackground [80]\",strokecolor:\"none [81]\",\"o:insetmode\":t.note.margins&&t.note.margins.insetmode}},e.exports=h},{\"../base-xform\":31,\"./vml-client-data-xform\":43,\"./vml-textbox-xform\":46}],46:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"conversionUnit\",value:function(t,e,r){return\"\".concat(parseFloat(t)*e.toFixed(2)).concat(r)}},{key:\"reverseConversionUnit\",value:function(t){var e=this;return(t||\"\").split(\",\").map((function(t){return Number(parseFloat(e.conversionUnit(parseFloat(t),.1,\"\")).toFixed(2))}))}},{key:\"render\",value:function(t,e){var r=this,n={style:\"mso-direction-alt:auto\"};if(e&&e.note){var i=(e.note&&e.note.margins).inset;Array.isArray(i)&&(i=i.map((function(t){return r.conversionUnit(t,10,\"mm\")})).join(\",\")),i&&(n.inset=i)}t.openNode(\"v:textbox\",n),t.leafNode(\"div\",{style:\"text-align:left\"}),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={inset:this.reverseConversionUnit(t.attributes.inset)},!0;default:return!0}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"v:textbox\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],47:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"createNewModel\",value:function(t){return{}}},{key:\"parseOpen\",value:function(t){return this.parser=this.parser||this.map[t.name],this.parser?(this.parser.parseOpen(t),!0):t.name===this.tag&&(this.model=this.createNewModel(t),!0)}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"onParserClose\",value:function(t,e){this.model[t]=e.model}},{key:\"parseClose\",value:function(t){return this.parser?(this.parser.parseClose(t)||(this.onParserClose(t,this.parser),this.parser=void 0),!0):t!==this.tag}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"./base-xform\"));e.exports=f},{\"./base-xform\":31}],48:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.openNode(\"HeadingPairs\"),t.openNode(\"vt:vector\",{size:2,baseType:\"variant\"}),t.openNode(\"vt:variant\"),t.leafNode(\"vt:lpstr\",void 0,\"Worksheets\"),t.closeNode(),t.openNode(\"vt:variant\"),t.leafNode(\"vt:i4\",void 0,e.length),t.closeNode(),t.closeNode(),t.closeNode()}},{key:\"parseOpen\",value:function(t){return\"HeadingPairs\"===t.name}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){return\"HeadingPairs\"!==t}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],49:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.openNode(\"TitlesOfParts\"),t.openNode(\"vt:vector\",{size:e.length,baseType:\"lpstr\"}),e.forEach((function(e){t.leafNode(\"vt:lpstr\",void 0,e.name)})),t.closeNode(),t.closeNode()}},{key:\"parseOpen\",value:function(t){return\"TitlesOfParts\"===t.name}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){return\"TitlesOfParts\"!==t}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],50:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/xml-stream\"),f=t(\"../base-xform\"),l=t(\"../simple/string-xform\"),h=t(\"./app-heading-pairs-xform\"),d=t(\"./app-titles-of-parts-xform\"),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={Company:new l({tag:\"Company\"}),Manager:new l({tag:\"Manager\"}),HeadingPairs:new h,TitleOfParts:new d},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openXml(c.StdDocAttributes),t.openNode(\"Properties\",u.PROPERTY_ATTRIBUTES),t.leafNode(\"Application\",void 0,\"Microsoft Excel\"),t.leafNode(\"DocSecurity\",void 0,\"0\"),t.leafNode(\"ScaleCrop\",void 0,\"false\"),this.map.HeadingPairs.render(t,e.worksheets),this.map.TitleOfParts.render(t,e.worksheets),this.map.Company.render(t,e.company||\"\"),this.map.Manager.render(t,e.manager),t.leafNode(\"LinksUpToDate\",void 0,\"false\"),t.leafNode(\"SharedDoc\",void 0,\"false\"),t.leafNode(\"HyperlinksChanged\",void 0,\"false\"),t.leafNode(\"AppVersion\",void 0,\"16.0300\"),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"Properties\":return!0;default:return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case\"Properties\":return this.model={worksheets:this.map.TitleOfParts.model,company:this.map.Company.model,manager:this.map.Manager.model},!1;default:return!0}}}])&&i(e.prototype,r),n&&i(e,n),u}(f);p.DateFormat=function(t){return t.toISOString().replace(/[.]\\d{3,6}/,\"\")},p.DateAttrs={\"xsi:type\":\"dcterms:W3CDTF\"},p.PROPERTY_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\"xmlns:vt\":\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\"},e.exports=p},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"../simple/string-xform\":118,\"./app-heading-pairs-xform\":48,\"./app-titles-of-parts-xform\":49}],51:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/xml-stream\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.openXml(f.StdDocAttributes),t.openNode(\"Types\",c.PROPERTY_ATTRIBUTES);var r={};(e.media||[]).forEach((function(e){if(\"image\"===e.type){var n=e.extension;r[n]||(r[n]=!0,t.leafNode(\"Default\",{Extension:n,ContentType:\"image/\".concat(n)}))}})),t.leafNode(\"Default\",{Extension:\"rels\",ContentType:\"application/vnd.openxmlformats-package.relationships+xml\"}),t.leafNode(\"Default\",{Extension:\"xml\",ContentType:\"application/xml\"}),t.leafNode(\"Override\",{PartName:\"/xl/workbook.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"}),e.worksheets.forEach((function(e){var r=\"/xl/worksheets/sheet\".concat(e.id,\".xml\");t.leafNode(\"Override\",{PartName:r,ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"})})),t.leafNode(\"Override\",{PartName:\"/xl/theme/theme1.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.theme+xml\"}),t.leafNode(\"Override\",{PartName:\"/xl/styles.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"}),e.sharedStrings&&e.sharedStrings.count&&t.leafNode(\"Override\",{PartName:\"/xl/sharedStrings.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\"}),e.tables&&e.tables.forEach((function(e){t.leafNode(\"Override\",{PartName:\"/xl/tables/\".concat(e.target),ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\"})})),e.drawings&&e.drawings.forEach((function(e){t.leafNode(\"Override\",{PartName:\"/xl/drawings/\".concat(e.name,\".xml\"),ContentType:\"application/vnd.openxmlformats-officedocument.drawing+xml\"})})),e.commentRefs&&(t.leafNode(\"Default\",{Extension:\"vml\",ContentType:\"application/vnd.openxmlformats-officedocument.vmlDrawing\"}),e.commentRefs.forEach((function(e){var r=e.commentName;t.leafNode(\"Override\",{PartName:\"/xl/\".concat(r,\".xml\"),ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\"})}))),t.leafNode(\"Override\",{PartName:\"/docProps/core.xml\",ContentType:\"application/vnd.openxmlformats-package.core-properties+xml\"}),t.leafNode(\"Override\",{PartName:\"/docProps/app.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"}),t.closeNode()}},{key:\"parseOpen\",value:function(){return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));l.PROPERTY_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/package/2006/content-types\"},e.exports=l},{\"../../../utils/xml-stream\":27,\"../base-xform\":31}],52:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/xml-stream\"),f=t(\"../base-xform\"),l=t(\"../simple/date-xform\"),h=t(\"../simple/string-xform\"),d=t(\"../simple/integer-xform\"),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"dc:creator\":new h({tag:\"dc:creator\"}),\"dc:title\":new h({tag:\"dc:title\"}),\"dc:subject\":new h({tag:\"dc:subject\"}),\"dc:description\":new h({tag:\"dc:description\"}),\"dc:identifier\":new h({tag:\"dc:identifier\"}),\"dc:language\":new h({tag:\"dc:language\"}),\"cp:keywords\":new h({tag:\"cp:keywords\"}),\"cp:category\":new h({tag:\"cp:category\"}),\"cp:lastModifiedBy\":new h({tag:\"cp:lastModifiedBy\"}),\"cp:lastPrinted\":new l({tag:\"cp:lastPrinted\",format:u.DateFormat}),\"cp:revision\":new d({tag:\"cp:revision\"}),\"cp:version\":new h({tag:\"cp:version\"}),\"cp:contentStatus\":new h({tag:\"cp:contentStatus\"}),\"cp:contentType\":new h({tag:\"cp:contentType\"}),\"dcterms:created\":new l({tag:\"dcterms:created\",attrs:u.DateAttrs,format:u.DateFormat}),\"dcterms:modified\":new l({tag:\"dcterms:modified\",attrs:u.DateAttrs,format:u.DateFormat})},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openXml(c.StdDocAttributes),t.openNode(\"cp:coreProperties\",u.CORE_PROPERTY_ATTRIBUTES),this.map[\"dc:creator\"].render(t,e.creator),this.map[\"dc:title\"].render(t,e.title),this.map[\"dc:subject\"].render(t,e.subject),this.map[\"dc:description\"].render(t,e.description),this.map[\"dc:identifier\"].render(t,e.identifier),this.map[\"dc:language\"].render(t,e.language),this.map[\"cp:keywords\"].render(t,e.keywords),this.map[\"cp:category\"].render(t,e.category),this.map[\"cp:lastModifiedBy\"].render(t,e.lastModifiedBy),this.map[\"cp:lastPrinted\"].render(t,e.lastPrinted),this.map[\"cp:revision\"].render(t,e.revision),this.map[\"cp:version\"].render(t,e.version),this.map[\"cp:contentStatus\"].render(t,e.contentStatus),this.map[\"cp:contentType\"].render(t,e.contentType),this.map[\"dcterms:created\"].render(t,e.created),this.map[\"dcterms:modified\"].render(t,e.modified),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"cp:coreProperties\":case\"coreProperties\":return!0;default:if(this.parser=this.map[t.name],this.parser)return this.parser.parseOpen(t),!0;throw new Error(\"Unexpected xml node in parseOpen: \".concat(JSON.stringify(t)))}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case\"cp:coreProperties\":case\"coreProperties\":return this.model={creator:this.map[\"dc:creator\"].model,title:this.map[\"dc:title\"].model,subject:this.map[\"dc:subject\"].model,description:this.map[\"dc:description\"].model,identifier:this.map[\"dc:identifier\"].model,language:this.map[\"dc:language\"].model,keywords:this.map[\"cp:keywords\"].model,category:this.map[\"cp:category\"].model,lastModifiedBy:this.map[\"cp:lastModifiedBy\"].model,lastPrinted:this.map[\"cp:lastPrinted\"].model,revision:this.map[\"cp:revision\"].model,contentStatus:this.map[\"cp:contentStatus\"].model,contentType:this.map[\"cp:contentType\"].model,created:this.map[\"dcterms:created\"].model,modified:this.map[\"dcterms:modified\"].model},!1;default:throw new Error(\"Unexpected xml node in parseClose: \".concat(t))}}}])&&i(e.prototype,r),n&&i(e,n),u}(f);p.DateFormat=function(t){return t.toISOString().replace(/[.]\\d{3}/,\"\")},p.DateAttrs={\"xsi:type\":\"dcterms:W3CDTF\"},p.CORE_PROPERTY_ATTRIBUTES={\"xmlns:cp\":\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:dcterms\":\"http://purl.org/dc/terms/\",\"xmlns:dcmitype\":\"http://purl.org/dc/dcmitype/\",\"xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\"},e.exports=p},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"../simple/date-xform\":116,\"../simple/integer-xform\":117,\"../simple/string-xform\":118}],53:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"Relationship\",e)}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"Relationship\":return this.model=t.attributes,!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],54:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/xml-stream\"),f=t(\"../base-xform\"),l=t(\"./relationship-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={Relationship:new l},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;e=e||this._values,t.openXml(c.StdDocAttributes),t.openNode(\"Relationships\",u.RELATIONSHIPS_ATTRIBUTES),e.forEach((function(e){r.map.Relationship.render(t,e)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"Relationships\":return this.model=[],!0;default:if(this.parser=this.map[t.name],this.parser)return this.parser.parseOpen(t),!0;throw new Error(\"Unexpected xml node in parseOpen: \".concat(JSON.stringify(t)))}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.model.push(this.parser.model),this.parser=void 0),!0;switch(t){case\"Relationships\":return!1;default:throw new Error(\"Unexpected xml node in parseClose: \".concat(t))}}}])&&i(e.prototype,r),n&&i(e,n),u}(f);h.RELATIONSHIPS_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/package/2006/relationships\"},e.exports=h},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"./relationship-xform\":53}],55:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset(),this.model={range:{editAs:t.attributes.editAs||\"oneCell\"}};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"reconcilePicture\",value:function(t,e){if(t&&t.rId){var r=e.rels[t.rId].Target.match(/.*\\/media\\/(.+[.][a-zA-Z]{3,4})/);if(r){var n=r[1],i=e.mediaIndex[n];return e.media[i]}}}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],56:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./blip-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"a:blip\":new f},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag),this.map[\"a:blip\"].render(t,e),t.openNode(\"a:stretch\"),t.leafNode(\"a:fillRect\"),t.closeNode(),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset();break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model=this.map[\"a:blip\"].model,!1;default:return!0}}},{key:\"tag\",get:function(){return\"xdr:blipFill\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../base-xform\":31,\"./blip-xform\":57}],57:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,{\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"r:embed\":e.rId,cstate:\"print\"})}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={rId:t.attributes[\"r:embed\"]},!0;default:return!0}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"a:blip\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],58:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t){t.openNode(this.tag),t.leafNode(\"a:picLocks\",{noChangeAspect:\"1\"}),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:default:return!0}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"xdr:cNvPicPr\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],59:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./hlink-click-xform\"),l=t(\"./ext-lst-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"a:hlinkClick\":new f,\"a:extLst\":new l},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag,{id:e.index,name:\"Picture \".concat(e.index)}),this.map[\"a:hlinkClick\"].render(t,e),this.map[\"a:extLst\"].render(t,e),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset();break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model=this.map[\"a:hlinkClick\"].model,!1;default:return!0}}},{key:\"tag\",get:function(){return\"xdr:cNvPr\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../base-xform\":31,\"./ext-lst-xform\":62,\"./hlink-click-xform\":64}],60:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"../simple/integer-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.map={\"xdr:col\":new f({tag:\"xdr:col\",zero:!0}),\"xdr:colOff\":new f({tag:\"xdr:colOff\",zero:!0}),\"xdr:row\":new f({tag:\"xdr:row\",zero:!0}),\"xdr:rowOff\":new f({tag:\"xdr:rowOff\",zero:!0})},e}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag),this.map[\"xdr:col\"].render(t,e.nativeCol),this.map[\"xdr:colOff\"].render(t,e.nativeColOff),this.map[\"xdr:row\"].render(t,e.nativeRow),this.map[\"xdr:rowOff\"].render(t,e.nativeRowOff),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset();break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model={nativeCol:this.map[\"xdr:col\"].model,nativeColOff:this.map[\"xdr:colOff\"].model,nativeRow:this.map[\"xdr:row\"].model,nativeRowOff:this.map[\"xdr:rowOff\"].model},!1;default:return!0}}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../base-xform\":31,\"../simple/integer-xform\":117}],61:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/col-cache\"),f=t(\"../../../utils/xml-stream\"),l=t(\"../base-xform\"),h=t(\"./two-cell-anchor-xform\"),d=t(\"./one-cell-anchor-xform\");var p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xdr:twoCellAnchor\":new h,\"xdr:oneCellAnchor\":new d},t}return e=u,(r=[{key:\"prepare\",value:function(t){var e=this;t.anchors.forEach((function(t,r){t.anchorType=function(t){return(\"string\"==typeof t.range?c.decode(t.range):t.range).br?\"xdr:twoCellAnchor\":\"xdr:oneCellAnchor\"}(t),e.map[t.anchorType].prepare(t,{index:r})}))}},{key:\"render\",value:function(t,e){var r=this;t.openXml(f.StdDocAttributes),t.openNode(this.tag,u.DRAWING_ATTRIBUTES),e.anchors.forEach((function(e){r.map[e.anchorType].render(t,e)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset(),this.model={anchors:[]};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.model.anchors.push(this.parser.model),this.parser=void 0),!0;switch(t){case this.tag:return!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){var r=this;t.anchors.forEach((function(t){t.br?r.map[\"xdr:twoCellAnchor\"].reconcile(t,e):r.map[\"xdr:oneCellAnchor\"].reconcile(t,e)}))}},{key:\"tag\",get:function(){return\"xdr:wsDr\"}}])&&i(e.prototype,r),n&&i(e,n),u}(l);p.DRAWING_ATTRIBUTES={\"xmlns:xdr\":\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\",\"xmlns:a\":\"http://schemas.openxmlformats.org/drawingml/2006/main\"},e.exports=p},{\"../../../utils/col-cache\":19,\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"./one-cell-anchor-xform\":66,\"./two-cell-anchor-xform\":69}],62:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t){t.openNode(this.tag),t.openNode(\"a:ext\",{uri:\"{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}\"}),t.leafNode(\"a16:creationId\",{\"xmlns:a16\":\"http://schemas.microsoft.com/office/drawing/2014/main\",id:\"{00000000-0008-0000-0000-000002000000}\"}),t.closeNode(),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:default:return!0}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"a:extLst\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],63:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.map={},e}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag);var r=Math.floor(9525*e.width),n=Math.floor(9525*e.height);t.addAttribute(\"cx\",r),t.addAttribute(\"cy\",n),t.closeNode()}},{key:\"parseOpen\",value:function(t){return t.name===this.tag&&(this.model={width:parseInt(t.attributes.cx||\"0\",10)/9525,height:parseInt(t.attributes.cy||\"0\",10)/9525},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=f},{\"../base-xform\":31}],64:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){e.hyperlinks&&e.hyperlinks.rId&&t.leafNode(this.tag,{\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"r:id\":e.hyperlinks.rId,tooltip:e.hyperlinks.tooltip})}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={hyperlinks:{rId:t.attributes[\"r:id\"],tooltip:t.attributes.tooltip}},!0;default:return!0}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"a:hlinkClick\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],65:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./c-nv-pr-xform\"),l=t(\"./c-nv-pic-pr-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xdr:cNvPr\":new f,\"xdr:cNvPicPr\":new l},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag),this.map[\"xdr:cNvPr\"].render(t,e),this.map[\"xdr:cNvPicPr\"].render(t,e),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset();break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model=this.map[\"xdr:cNvPr\"].model,!1;default:return!0}}},{key:\"tag\",get:function(){return\"xdr:nvPicPr\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../base-xform\":31,\"./c-nv-pic-pr-xform\":58,\"./c-nv-pr-xform\":59}],66:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./base-cell-anchor-xform\"),f=t(\"../static-xform\"),l=t(\"./cell-position-xform\"),h=t(\"./ext-xform\"),d=t(\"./pic-xform\"),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xdr:from\":new l({tag:\"xdr:from\"}),\"xdr:ext\":new h({tag:\"xdr:ext\"}),\"xdr:pic\":new d,\"xdr:clientData\":new f({tag:\"xdr:clientData\"})},t}return e=u,(r=[{key:\"prepare\",value:function(t,e){this.map[\"xdr:pic\"].prepare(t.picture,e)}},{key:\"render\",value:function(t,e){t.openNode(this.tag,{editAs:e.range.editAs||\"oneCell\"}),this.map[\"xdr:from\"].render(t,e.range.tl),this.map[\"xdr:ext\"].render(t,e.range.ext),this.map[\"xdr:pic\"].render(t,e.picture),this.map[\"xdr:clientData\"].render(t,{}),t.closeNode()}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model.range.tl=this.map[\"xdr:from\"].model,this.model.range.ext=this.map[\"xdr:ext\"].model,this.model.picture=this.map[\"xdr:pic\"].model,!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){t.medium=this.reconcilePicture(t.picture,e)}},{key:\"tag\",get:function(){return\"xdr:oneCellAnchor\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=p},{\"../static-xform\":119,\"./base-cell-anchor-xform\":55,\"./cell-position-xform\":60,\"./ext-xform\":63,\"./pic-xform\":67}],67:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"../static-xform\"),l=t(\"./blip-fill-xform\"),h=t(\"./nv-pic-pr-xform\"),d=t(\"./sp-pr\"),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xdr:nvPicPr\":new h,\"xdr:blipFill\":new l,\"xdr:spPr\":new f(d)},t}return e=u,(r=[{key:\"prepare\",value:function(t,e){t.index=e.index+1}},{key:\"render\",value:function(t,e){t.openNode(this.tag),this.map[\"xdr:nvPicPr\"].render(t,e),this.map[\"xdr:blipFill\"].render(t,e),this.map[\"xdr:spPr\"].render(t,e),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:this.reset();break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.mergeModel(this.parser.model),this.parser=void 0),!0;switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"xdr:pic\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=p},{\"../base-xform\":31,\"../static-xform\":119,\"./blip-fill-xform\":56,\"./nv-pic-pr-xform\":65,\"./sp-pr\":68}],68:[function(t,e,r){\"use strict\";e.exports={tag:\"xdr:spPr\",c:[{tag:\"a:xfrm\",c:[{tag:\"a:off\",$:{x:\"0\",y:\"0\"}},{tag:\"a:ext\",$:{cx:\"0\",cy:\"0\"}}]},{tag:\"a:prstGeom\",$:{prst:\"rect\"},c:[{tag:\"a:avLst\"}]}]}},{}],69:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./base-cell-anchor-xform\"),f=t(\"../static-xform\"),l=t(\"./cell-position-xform\"),h=t(\"./pic-xform\"),d=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xdr:from\":new l({tag:\"xdr:from\"}),\"xdr:to\":new l({tag:\"xdr:to\"}),\"xdr:pic\":new h,\"xdr:clientData\":new f({tag:\"xdr:clientData\"})},t}return e=u,(r=[{key:\"prepare\",value:function(t,e){this.map[\"xdr:pic\"].prepare(t.picture,e)}},{key:\"render\",value:function(t,e){t.openNode(this.tag,{editAs:e.range.editAs||\"oneCell\"}),this.map[\"xdr:from\"].render(t,e.range.tl),this.map[\"xdr:to\"].render(t,e.range.br),this.map[\"xdr:pic\"].render(t,e.picture),this.map[\"xdr:clientData\"].render(t,{}),t.closeNode()}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model.range.tl=this.map[\"xdr:from\"].model,this.model.range.br=this.map[\"xdr:to\"].model,this.model.picture=this.map[\"xdr:pic\"].model,!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){t.medium=this.reconcilePicture(t.picture,e)}},{key:\"tag\",get:function(){return\"xdr:twoCellAnchor\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=d},{\"../static-xform\":119,\"./base-cell-anchor-xform\":55,\"./cell-position-xform\":60,\"./pic-xform\":67}],70:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.always=!!t.always,e.count=t.count,e.empty=t.empty,e.$count=t.$count||\"count\",e.$=t.$,e.childXform=t.childXform,e.maxItems=t.maxItems,e}return e=u,(r=[{key:\"prepare\",value:function(t,e){var r=this.childXform;t&&t.forEach((function(t,n){e.index=n,r.prepare(t,e)}))}},{key:\"render\",value:function(t,e){if(this.always||e&&e.length){t.openNode(this.tag,this.$),this.count&&t.addAttribute(this.$count,e&&e.length||0);var r=this.childXform;(e||[]).forEach((function(e,n){r.render(t,e,n)})),t.closeNode()}else this.empty&&t.leafNode(this.tag)}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:return this.model=[],!0;default:return!!this.childXform.parseOpen(t)&&(this.parser=this.childXform,!0)}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser){if(!this.parser.parseClose(t)&&(this.model.push(this.parser.model),this.parser=void 0,this.maxItems&&this.model.length>this.maxItems))throw new Error(\"Max \".concat(this.childXform.tag,\" count (\").concat(this.maxItems,\") exceeded\"));return!0}return!1}},{key:\"reconcile\",value:function(t,e){if(t){var r=this.childXform;t.forEach((function(t){r.reconcile(t,e)}))}}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"./base-xform\"));e.exports=c},{\"./base-xform\":31}],71:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/col-cache\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e)if(\"string\"==typeof e)t.leafNode(\"autoFilter\",{ref:e});else{var r=function(t){return\"string\"==typeof t?t:f.getAddress(t.row,t.column).address},n=r(e.from),i=r(e.to);n&&i&&t.leafNode(\"autoFilter\",{ref:\"\".concat(n,\":\").concat(i)})}}},{key:\"parseOpen\",value:function(t){\"autoFilter\"===t.name&&(this.model=t.attributes.ref)}},{key:\"tag\",get:function(){return\"autoFilter\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=l},{\"../../../utils/col-cache\":19,\"../base-xform\":31}],72:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?i(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../../../utils/utils\"),d=t(\"../base-xform\"),p=t(\"../../../doc/range\"),m=t(\"../../../doc/enums\"),y=t(\"../strings/rich-text-xform\");function b(t){if(null==t)return m.ValueType.Null;if(t instanceof String||\"string\"==typeof t)return m.ValueType.String;if(\"number\"==typeof t)return m.ValueType.Number;if(\"boolean\"==typeof t)return m.ValueType.Boolean;if(t instanceof Date)return m.ValueType.Date;if(t.text&&t.hyperlink)return m.ValueType.Hyperlink;if(t.formula)return m.ValueType.Formula;if(t.error)return m.ValueType.Error;throw new Error(\"I could not understand type of value\")}var v=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(a,t);var e,r,n,i=c(a);function a(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,a),(t=i.call(this)).richTextXForm=new y,t}return e=a,(r=[{key:\"prepare\",value:function(t,e){var r=e.styles.addStyleModel(t.style||{},function(t){switch(t.type){case m.ValueType.Formula:return b(t.result);default:return t.type}}(t));switch(r&&(t.styleId=r),t.comment&&e.comments.push(o(o({},t.comment),{},{ref:t.address})),t.type){case m.ValueType.String:case m.ValueType.RichText:e.sharedStrings&&(t.ssId=e.sharedStrings.add(t.value));break;case m.ValueType.Date:e.date1904&&(t.date1904=!0);break;case m.ValueType.Hyperlink:e.sharedStrings&&void 0!==t.text&&null!==t.text&&(t.ssId=e.sharedStrings.add(t.text)),e.hyperlinks.push({address:t.address,target:t.hyperlink,tooltip:t.tooltip});break;case m.ValueType.Merge:e.merges.add(t);break;case m.ValueType.Formula:if(e.date1904&&(t.date1904=!0),\"shared\"===t.shareType&&(t.si=e.siFormulae++),t.formula)e.formulae[t.address]=t;else if(t.sharedFormula){var n=e.formulae[t.sharedFormula];if(!n)throw new Error(\"Shared Formula master must exist above and or left of clone for cell \".concat(t.address));void 0===n.si?(n.shareType=\"shared\",n.si=e.siFormulae++,n.range=new p(n.address,t.address)):n.range&&n.range.expandToAddress(t.address),t.si=n.si}}}},{key:\"renderFormula\",value:function(t,e){var r=null;switch(e.shareType){case\"shared\":r={t:\"shared\",ref:e.ref||e.range.range,si:e.si};break;case\"array\":r={t:\"array\",ref:e.ref};break;default:void 0!==e.si&&(r={t:\"shared\",si:e.si})}switch(b(e.result)){case m.ValueType.Null:t.leafNode(\"f\",r,e.formula);break;case m.ValueType.String:t.addAttribute(\"t\",\"str\"),t.leafNode(\"f\",r,e.formula),t.leafNode(\"v\",null,e.result);break;case m.ValueType.Number:t.leafNode(\"f\",r,e.formula),t.leafNode(\"v\",null,e.result);break;case m.ValueType.Boolean:t.addAttribute(\"t\",\"b\"),t.leafNode(\"f\",r,e.formula),t.leafNode(\"v\",null,e.result?1:0);break;case m.ValueType.Error:t.addAttribute(\"t\",\"e\"),t.leafNode(\"f\",r,e.formula),t.leafNode(\"v\",null,e.result.error);break;case m.ValueType.Date:t.leafNode(\"f\",r,e.formula),t.leafNode(\"v\",null,h.dateToExcel(e.result,e.date1904));break;default:throw new Error(\"I could not understand type of value\")}}},{key:\"render\",value:function(t,e){var r=this;if(e.type!==m.ValueType.Null||e.styleId){switch(t.openNode(\"c\"),t.addAttribute(\"r\",e.address),e.styleId&&t.addAttribute(\"s\",e.styleId),e.type){case m.ValueType.Null:break;case m.ValueType.Number:t.leafNode(\"v\",null,e.value);break;case m.ValueType.Boolean:t.addAttribute(\"t\",\"b\"),t.leafNode(\"v\",null,e.value?\"1\":\"0\");break;case m.ValueType.Error:t.addAttribute(\"t\",\"e\"),t.leafNode(\"v\",null,e.value.error);break;case m.ValueType.String:case m.ValueType.RichText:void 0!==e.ssId?(t.addAttribute(\"t\",\"s\"),t.leafNode(\"v\",null,e.ssId)):e.value&&e.value.richText?(t.addAttribute(\"t\",\"inlineStr\"),t.openNode(\"is\"),e.value.richText.forEach((function(e){r.richTextXForm.render(t,e)})),t.closeNode(\"is\")):(t.addAttribute(\"t\",\"str\"),t.leafNode(\"v\",null,e.value));break;case m.ValueType.Date:t.leafNode(\"v\",null,h.dateToExcel(e.value,e.date1904));break;case m.ValueType.Hyperlink:void 0!==e.ssId?(t.addAttribute(\"t\",\"s\"),t.leafNode(\"v\",null,e.ssId)):(t.addAttribute(\"t\",\"str\"),t.leafNode(\"v\",null,e.text));break;case m.ValueType.Formula:this.renderFormula(t,e);break;case m.ValueType.Merge:}t.closeNode()}}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"c\":return this.model={address:t.attributes.r},this.t=t.attributes.t,t.attributes.s&&(this.model.styleId=parseInt(t.attributes.s,10)),!0;case\"f\":return this.currentNode=\"f\",this.model.si=t.attributes.si,this.model.shareType=t.attributes.t,this.model.ref=t.attributes.ref,!0;case\"v\":return this.currentNode=\"v\",!0;case\"t\":return this.currentNode=\"t\",!0;case\"r\":return this.parser=this.richTextXForm,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){if(this.parser)this.parser.parseText(t);else switch(this.currentNode){case\"f\":this.model.formula=this.model.formula?this.model.formula+t:t;break;case\"v\":case\"t\":this.model.value&&this.model.value.richText?this.model.value.richText.text=this.model.value.richText.text?this.model.value.richText.text+t:t:this.model.value=this.model.value?this.model.value+t:t}}},{key:\"parseClose\",value:function(t){switch(t){case\"c\":var e=this.model;if(e.formula||e.shareType)e.type=m.ValueType.Formula,e.value&&(\"str\"===this.t?e.result=h.xmlDecode(e.value):\"b\"===this.t?e.result=0!==parseInt(e.value,10):\"e\"===this.t?e.result={error:e.value}:e.result=parseFloat(e.value),e.value=void 0);else if(void 0!==e.value)switch(this.t){case\"s\":e.type=m.ValueType.String,e.value=parseInt(e.value,10);break;case\"str\":e.type=m.ValueType.String,e.value=h.xmlDecode(e.value);break;case\"inlineStr\":e.type=m.ValueType.String;break;case\"b\":e.type=m.ValueType.Boolean,e.value=0!==parseInt(e.value,10);break;case\"e\":e.type=m.ValueType.Error,e.value={error:e.value};break;default:e.type=m.ValueType.Number,e.value=parseFloat(e.value)}else e.styleId?e.type=m.ValueType.Null:e.type=m.ValueType.Merge;return!1;case\"f\":case\"v\":case\"is\":return this.currentNode=void 0,!0;case\"t\":return this.parser?(this.parser.parseClose(t),!0):(this.currentNode=void 0,!0);case\"r\":return this.model.value=this.model.value||{},this.model.value.richText=this.model.value.richText||[],this.model.value.richText.push(this.parser.model),this.parser=void 0,this.currentNode=void 0,!0;default:return!!this.parser&&(this.parser.parseClose(t),!0)}}},{key:\"reconcile\",value:function(t,e){var r=t.styleId&&e.styles&&e.styles.getStyleModel(t.styleId);switch(r&&(t.style=r),void 0!==t.styleId&&(t.styleId=void 0),t.type){case m.ValueType.String:\"number\"==typeof t.value&&e.sharedStrings&&(t.value=e.sharedStrings.getString(t.value)),t.value.richText&&(t.type=m.ValueType.RichText);break;case m.ValueType.Number:r&&h.isDateFmt(r.numFmt)&&(t.type=m.ValueType.Date,t.value=h.excelToDate(t.value,e.date1904));break;case m.ValueType.Formula:void 0!==t.result&&r&&h.isDateFmt(r.numFmt)&&(t.result=h.excelToDate(t.result,e.date1904)),\"shared\"===t.shareType&&(t.ref?e.formulae[t.si]=t.address:(t.sharedFormula=e.formulae[t.si],delete t.shareType),delete t.si)}var n=e.hyperlinkMap[t.address];n&&(t.type===m.ValueType.Formula?(t.text=t.result,t.result=void 0):(t.text=t.value,t.value=void 0),t.type=m.ValueType.Hyperlink,t.hyperlink=n);var i=e.commentsMap&&e.commentsMap[t.address];i&&(t.comment=i)}},{key:\"tag\",get:function(){return\"c\"}}])&&s(e.prototype,r),n&&s(e,n),a}(d);e.exports=v},{\"../../../doc/enums\":7,\"../../../doc/range\":10,\"../../../utils/utils\":26,\"../base-xform\":31,\"../strings/rich-text-xform\":121}],73:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../base-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,{iconSet:e.iconSet,iconId:e.iconId})}},{key:\"parseOpen\",value:function(t){var e=t.attributes;this.model={iconSet:e.iconSet,iconId:f.toIntValue(e.iconId)}}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"x14:cfIcon\"}}])&&o(e.prototype,r),n&&o(e,n),c}(f);e.exports=l},{\"../../base-xform\":31}],74:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"uuid\").v4,f=t(\"../../base-xform\"),l=t(\"../../composite-xform\"),h=t(\"./databar-ext-xform\"),d=t(\"./icon-set-ext-xform\"),p={\"3Triangles\":!0,\"3Stars\":!0,\"5Boxes\":!0},m=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"x14:dataBar\":t.databarXform=new h,\"x14:iconSet\":t.iconSetXform=new d},t}return e=u,n=[{key:\"isExt\",value:function(t){return\"dataBar\"===t.type?h.isExt(t):!(\"iconSet\"!==t.type||!t.custom&&!p[t.iconSet])}}],(r=[{key:\"prepare\",value:function(t){u.isExt(t)&&(t.x14Id=\"{\".concat(c(),\"}\").toUpperCase())}},{key:\"render\",value:function(t,e){if(u.isExt(e))switch(e.type){case\"dataBar\":this.renderDataBar(t,e);break;case\"iconSet\":this.renderIconSet(t,e)}}},{key:\"renderDataBar\",value:function(t,e){t.openNode(this.tag,{type:\"dataBar\",id:e.x14Id}),this.databarXform.render(t,e),t.closeNode()}},{key:\"renderIconSet\",value:function(t,e){t.openNode(this.tag,{type:\"iconSet\",priority:e.priority,id:e.x14Id||\"{\".concat(c(),\"}\")}),this.iconSetXform.render(t,e),t.closeNode()}},{key:\"createNewModel\",value:function(t){var e=t.attributes;return{type:e.type,x14Id:e.id,priority:f.toIntValue(e.priority)}}},{key:\"onParserClose\",value:function(t,e){Object.assign(this.model,e.model)}},{key:\"tag\",get:function(){return\"x14:cfRule\"}}])&&i(e.prototype,r),n&&i(e,n),u}(l);e.exports=m},{\"../../base-xform\":31,\"../../composite-xform\":47,\"./databar-ext-xform\":78,\"./icon-set-ext-xform\":80,uuid:526}],75:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"./f-ext-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xm:f\":t.fExtXform=new f},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag,{type:e.type}),void 0!==e.value&&this.fExtXform.render(t,e.value),t.closeNode()}},{key:\"createNewModel\",value:function(t){return{type:t.attributes.type}}},{key:\"onParserClose\",value:function(t,e){switch(t){case\"xm:f\":this.model.value=e.model?parseFloat(e.model):0}}},{key:\"tag\",get:function(){return\"x14:cfvo\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../../composite-xform\":47,\"./f-ext-xform\":79}],76:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"./sqref-ext-xform\"),l=t(\"./cf-rule-ext-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"xm:sqref\":t.sqRef=new f,\"x14:cfRule\":t.cfRule=new l},t}return e=u,(r=[{key:\"prepare\",value:function(t,e){var r=this;t.rules.forEach((function(t){r.cfRule.prepare(t,e)}))}},{key:\"render\",value:function(t,e){var r=this;e.rules.some(l.isExt)&&(t.openNode(this.tag,{\"xmlns:xm\":\"http://schemas.microsoft.com/office/excel/2006/main\"}),e.rules.filter(l.isExt).forEach((function(e){return r.cfRule.render(t,e)})),this.sqRef.render(t,e.ref),t.closeNode())}},{key:\"createNewModel\",value:function(){return{rules:[]}}},{key:\"onParserClose\",value:function(t,e){switch(t){case\"xm:sqref\":this.model.ref=e.model;break;case\"x14:cfRule\":this.model.rules.push(e.model)}}},{key:\"tag\",get:function(){return\"x14:conditionalFormatting\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../../composite-xform\":47,\"./cf-rule-ext-xform\":74,\"./sqref-ext-xform\":81}],77:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"./cf-rule-ext-xform\"),l=t(\"./conditional-formatting-ext-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={\"x14:conditionalFormatting\":t.cfXform=new l},t}return e=u,(r=[{key:\"hasContent\",value:function(t){return void 0===t.hasExtContent&&(t.hasExtContent=t.some((function(t){return t.rules.some(f.isExt)}))),t.hasExtContent}},{key:\"prepare\",value:function(t,e){var r=this;t.forEach((function(t){r.cfXform.prepare(t,e)}))}},{key:\"render\",value:function(t,e){var r=this;this.hasContent(e)&&(t.openNode(this.tag),e.forEach((function(e){return r.cfXform.render(t,e)})),t.closeNode())}},{key:\"createNewModel\",value:function(){return[]}},{key:\"onParserClose\",value:function(t,e){this.model.push(e.model)}},{key:\"tag\",get:function(){return\"x14:conditionalFormattings\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../../composite-xform\":47,\"./cf-rule-ext-xform\":74,\"./conditional-formatting-ext-xform\":76}],78:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(t,e)||function(t,e){if(!t)return;if(\"string\"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(t,e)}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=f(t);if(e){var i=f(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return c(this,r)}}function c(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var l=t(\"../../base-xform\"),h=t(\"../../composite-xform\"),d=t(\"../../style/color-xform\"),p=t(\"./cfvo-ext-xform\"),m=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(c,t);var e,r,n,o=u(c);function c(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,c),(t=o.call(this)).map={\"x14:cfvo\":t.cfvoXform=new p,\"x14:borderColor\":t.borderColorXform=new d(\"x14:borderColor\"),\"x14:negativeBorderColor\":t.negativeBorderColorXform=new d(\"x14:negativeBorderColor\"),\"x14:negativeFillColor\":t.negativeFillColorXform=new d(\"x14:negativeFillColor\"),\"x14:axisColor\":t.axisColorXform=new d(\"x14:axisColor\")},t}return e=c,n=[{key:\"isExt\",value:function(t){return!t.gradient}}],(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag,{minLength:l.toIntAttribute(e.minLength,0,!0),maxLength:l.toIntAttribute(e.maxLength,100,!0),border:l.toBoolAttribute(e.border,!1),gradient:l.toBoolAttribute(e.gradient,!0),negativeBarColorSameAsPositive:l.toBoolAttribute(e.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:l.toBoolAttribute(e.negativeBarBorderColorSameAsPositive,!0),axisPosition:l.toAttribute(e.axisPosition,\"auto\"),direction:l.toAttribute(e.direction,\"leftToRight\")}),e.cfvo.forEach((function(e){r.cfvoXform.render(t,e)})),this.borderColorXform.render(t,e.borderColor),this.negativeBorderColorXform.render(t,e.negativeBorderColor),this.negativeFillColorXform.render(t,e.negativeFillColor),this.axisColorXform.render(t,e.axisColor),t.closeNode()}},{key:\"createNewModel\",value:function(t){var e=t.attributes;return{cfvo:[],minLength:l.toIntValue(e.minLength,0),maxLength:l.toIntValue(e.maxLength,100),border:l.toBoolValue(e.border,!1),gradient:l.toBoolValue(e.gradient,!0),negativeBarColorSameAsPositive:l.toBoolValue(e.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:l.toBoolValue(e.negativeBarBorderColorSameAsPositive,!0),axisPosition:l.toStringValue(e.axisPosition,\"auto\"),direction:l.toStringValue(e.direction,\"leftToRight\")}}},{key:\"onParserClose\",value:function(t,e){var r=i(t.split(\":\"),2)[1];switch(r){case\"cfvo\":this.model.cfvo.push(e.model);break;default:this.model[r]=e.model}}},{key:\"tag\",get:function(){return\"x14:dataBar\"}}])&&a(e.prototype,r),n&&a(e,n),c}(h);e.exports=m},{\"../../base-xform\":31,\"../../composite-xform\":47,\"../../style/color-xform\":127,\"./cfvo-ext-xform\":75}],79:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,null,e)}},{key:\"parseOpen\",value:function(){this.model=\"\"}},{key:\"parseText\",value:function(t){this.model+=t}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"xm:f\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../../base-xform\"));e.exports=f},{\"../../base-xform\":31}],80:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(t,e)||function(t,e){if(!t)return;if(\"string\"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(t,e)}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=f(t);if(e){var i=f(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return c(this,r)}}function c(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var l=t(\"../../base-xform\"),h=t(\"../../composite-xform\"),d=t(\"./cfvo-ext-xform\"),p=t(\"./cf-icon-ext-xform\"),m=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(c,t);var e,r,n,o=u(c);function c(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,c),(t=o.call(this)).map={\"x14:cfvo\":t.cfvoXform=new d,\"x14:cfIcon\":t.cfIconXform=new p},t}return e=c,(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag,{iconSet:l.toStringAttribute(e.iconSet),reverse:l.toBoolAttribute(e.reverse,!1),showValue:l.toBoolAttribute(e.showValue,!0),custom:l.toBoolAttribute(e.icons,!1)}),e.cfvo.forEach((function(e){r.cfvoXform.render(t,e)})),e.icons&&e.icons.forEach((function(e,n){e.iconId=n,r.cfIconXform.render(t,e)})),t.closeNode()}},{key:\"createNewModel\",value:function(t){var e=t.attributes;return{cfvo:[],iconSet:l.toStringValue(e.iconSet,\"3TrafficLights\"),reverse:l.toBoolValue(e.reverse,!1),showValue:l.toBoolValue(e.showValue,!0)}}},{key:\"onParserClose\",value:function(t,e){var r=i(t.split(\":\"),2)[1];switch(r){case\"cfvo\":this.model.cfvo.push(e.model);break;case\"cfIcon\":this.model.icons||(this.model.icons=[]),this.model.icons.push(e.model);break;default:this.model[r]=e.model}}},{key:\"tag\",get:function(){return\"x14:iconSet\"}}])&&a(e.prototype,r),n&&a(e,n),c}(h);e.exports=m},{\"../../base-xform\":31,\"../../composite-xform\":47,\"./cf-icon-ext-xform\":73,\"./cfvo-ext-xform\":75}],81:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,null,e)}},{key:\"parseOpen\",value:function(){this.model=\"\"}},{key:\"parseText\",value:function(t){this.model+=t}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"xm:sqref\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../../base-xform\"));e.exports=f},{\"../../base-xform\":31}],82:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?i(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../../base-xform\"),d=t(\"../../composite-xform\"),p=t(\"../../../../doc/range\"),m=t(\"./databar-xform\"),y=t(\"./ext-lst-ref-xform\"),b=t(\"./formula-xform\"),v=t(\"./color-scale-xform\"),g=t(\"./icon-set-xform\"),w={\"3Triangles\":!0,\"3Stars\":!0,\"5Boxes\":!0},_=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(a,t);var e,r,n,i=c(a);function a(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,a),(t=i.call(this)).map={dataBar:t.databarXform=new m,extLst:t.extLstRefXform=new y,formula:t.formulaXform=new b,colorScale:t.colorScaleXform=new v,iconSet:t.iconSetXform=new g},t}return e=a,n=[{key:\"isPrimitive\",value:function(t){return\"iconSet\"!==t.type||!t.custom&&!w[t.iconSet]}}],(r=[{key:\"render\",value:function(t,e){switch(e.type){case\"expression\":this.renderExpression(t,e);break;case\"cellIs\":this.renderCellIs(t,e);break;case\"top10\":this.renderTop10(t,e);break;case\"aboveAverage\":this.renderAboveAverage(t,e);break;case\"dataBar\":this.renderDataBar(t,e);break;case\"colorScale\":this.renderColorScale(t,e);break;case\"iconSet\":this.renderIconSet(t,e);break;case\"containsText\":this.renderText(t,e);break;case\"timePeriod\":this.renderTimePeriod(t,e)}}},{key:\"renderExpression\",value:function(t,e){t.openNode(this.tag,{type:\"expression\",dxfId:e.dxfId,priority:e.priority}),this.formulaXform.render(t,e.formulae[0]),t.closeNode()}},{key:\"renderCellIs\",value:function(t,e){var r=this;t.openNode(this.tag,{type:\"cellIs\",dxfId:e.dxfId,priority:e.priority,operator:e.operator}),e.formulae.forEach((function(e){r.formulaXform.render(t,e)})),t.closeNode()}},{key:\"renderTop10\",value:function(t,e){t.leafNode(this.tag,{type:\"top10\",dxfId:e.dxfId,priority:e.priority,percent:h.toBoolAttribute(e.percent,!1),bottom:h.toBoolAttribute(e.bottom,!1),rank:h.toIntValue(e.rank,10,!0)})}},{key:\"renderAboveAverage\",value:function(t,e){t.leafNode(this.tag,{type:\"aboveAverage\",dxfId:e.dxfId,priority:e.priority,aboveAverage:h.toBoolAttribute(e.aboveAverage,!0)})}},{key:\"renderDataBar\",value:function(t,e){t.openNode(this.tag,{type:\"dataBar\",priority:e.priority}),this.databarXform.render(t,e),this.extLstRefXform.render(t,e),t.closeNode()}},{key:\"renderColorScale\",value:function(t,e){t.openNode(this.tag,{type:\"colorScale\",priority:e.priority}),this.colorScaleXform.render(t,e),t.closeNode()}},{key:\"renderIconSet\",value:function(t,e){a.isPrimitive(e)&&(t.openNode(this.tag,{type:\"iconSet\",priority:e.priority}),this.iconSetXform.render(t,e),t.closeNode())}},{key:\"renderText\",value:function(t,e){t.openNode(this.tag,{type:e.operator,dxfId:e.dxfId,priority:e.priority,operator:h.toStringAttribute(e.operator,\"containsText\")});var r=function(t){if(t.formulae&&t.formulae[0])return t.formulae[0];var e=new p(t.ref).tl;switch(t.operator){case\"containsText\":return'NOT(ISERROR(SEARCH(\"'.concat(t.text,'\",').concat(e,\")))\");case\"containsBlanks\":return\"LEN(TRIM(\".concat(e,\"))=0\");case\"notContainsBlanks\":return\"LEN(TRIM(\".concat(e,\"))>0\");case\"containsErrors\":return\"ISERROR(\".concat(e,\")\");case\"notContainsErrors\":return\"NOT(ISERROR(\".concat(e,\"))\");default:return}}(e);r&&this.formulaXform.render(t,r),t.closeNode()}},{key:\"renderTimePeriod\",value:function(t,e){t.openNode(this.tag,{type:\"timePeriod\",dxfId:e.dxfId,priority:e.priority,timePeriod:e.timePeriod});var r=function(t){if(t.formulae&&t.formulae[0])return t.formulae[0];var e=new p(t.ref).tl;switch(t.timePeriod){case\"thisWeek\":return\"AND(TODAY()-ROUNDDOWN(\".concat(e,\",0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(\").concat(e,\",0)-TODAY()<=7-WEEKDAY(TODAY()))\");case\"lastWeek\":return\"AND(TODAY()-ROUNDDOWN(\".concat(e,\",0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(\").concat(e,\",0)<(WEEKDAY(TODAY())+7))\");case\"nextWeek\":return\"AND(ROUNDDOWN(\".concat(e,\",0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(\").concat(e,\",0)-TODAY()<(15-WEEKDAY(TODAY())))\");case\"yesterday\":return\"FLOOR(\".concat(e,\",1)=TODAY()-1\");case\"today\":return\"FLOOR(\".concat(e,\",1)=TODAY()\");case\"tomorrow\":return\"FLOOR(\".concat(e,\",1)=TODAY()+1\");case\"last7Days\":return\"AND(TODAY()-FLOOR(\".concat(e,\",1)<=6,FLOOR(\").concat(e,\",1)<=TODAY())\");case\"lastMonth\":return\"AND(MONTH(\".concat(e,\")=MONTH(EDATE(TODAY(),0-1)),YEAR(\").concat(e,\")=YEAR(EDATE(TODAY(),0-1)))\");case\"thisMonth\":return\"AND(MONTH(\".concat(e,\")=MONTH(TODAY()),YEAR(\").concat(e,\")=YEAR(TODAY()))\");case\"nextMonth\":return\"AND(MONTH(\".concat(e,\")=MONTH(EDATE(TODAY(),0+1)),YEAR(\").concat(e,\")=YEAR(EDATE(TODAY(),0+1)))\");default:return}}(e);r&&this.formulaXform.render(t,r),t.closeNode()}},{key:\"createNewModel\",value:function(t){var e=t.attributes;return o(o({},function(t){var e=t.type,r=t.operator;switch(e){case\"containsText\":case\"containsBlanks\":case\"notContainsBlanks\":case\"containsErrors\":case\"notContainsErrors\":return{type:\"containsText\",operator:e};default:return{type:e,operator:r}}}(e)),{},{dxfId:h.toIntValue(e.dxfId),priority:h.toIntValue(e.priority),timePeriod:e.timePeriod,percent:h.toBoolValue(e.percent),bottom:h.toBoolValue(e.bottom),rank:h.toIntValue(e.rank),aboveAverage:h.toBoolValue(e.aboveAverage)})}},{key:\"onParserClose\",value:function(t,e){switch(t){case\"dataBar\":case\"extLst\":case\"colorScale\":case\"iconSet\":Object.assign(this.model,e.model);break;case\"formula\":this.model.formulae=this.model.formulae||[],this.model.formulae.push(e.model)}}},{key:\"tag\",get:function(){return\"cfRule\"}}])&&s(e.prototype,r),n&&s(e,n),a}(d);e.exports=_},{\"../../../../doc/range\":10,\"../../base-xform\":31,\"../../composite-xform\":47,\"./color-scale-xform\":84,\"./databar-xform\":87,\"./ext-lst-ref-xform\":88,\"./formula-xform\":89,\"./icon-set-xform\":90}],83:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../base-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,{type:e.type,val:e.value})}},{key:\"parseOpen\",value:function(t){this.model={type:t.attributes.type,value:f.toFloatValue(t.attributes.val)}}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"cfvo\"}}])&&o(e.prototype,r),n&&o(e,n),c}(f);e.exports=l},{\"../../base-xform\":31}],84:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"../../style/color-xform\"),l=t(\"./cfvo-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={cfvo:t.cfvoXform=new l,color:t.colorXform=new f},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag),e.cfvo.forEach((function(e){r.cfvoXform.render(t,e)})),e.color.forEach((function(e){r.colorXform.render(t,e)})),t.closeNode()}},{key:\"createNewModel\",value:function(t){return{cfvo:[],color:[]}}},{key:\"onParserClose\",value:function(t,e){this.model[t].push(e.model)}},{key:\"tag\",get:function(){return\"colorScale\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../../composite-xform\":47,\"../../style/color-xform\":127,\"./cfvo-xform\":83}],85:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"./cf-rule-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={cfRule:new f},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;e.rules.some(f.isPrimitive)&&(t.openNode(this.tag,{sqref:e.ref}),e.rules.forEach((function(n){f.isPrimitive(n)&&(n.ref=e.ref,r.map.cfRule.render(t,n))})),t.closeNode())}},{key:\"createNewModel\",value:function(t){return{ref:t.attributes.sqref,rules:[]}}},{key:\"onParserClose\",value:function(t,e){this.model.rules.push(e.model)}},{key:\"tag\",get:function(){return\"conditionalFormatting\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../../composite-xform\":47,\"./cf-rule-xform\":82}],86:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if(\"string\"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===r&&t.constructor&&(r=t.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(t);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(t,e)}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=f(t);if(e){var i=f(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return c(this,r)}}function c(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var l=t(\"../../base-xform\"),h=t(\"./conditional-formatting-xform\"),d=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(c,t);var e,r,n,o=u(c);function c(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,c),(t=o.call(this)).cfXform=new h,t}return e=c,(r=[{key:\"reset\",value:function(){this.model=[]}},{key:\"prepare\",value:function(t,e){var r=t.reduce((function(t,e){return Math.max.apply(Math,[t].concat(i(e.rules.map((function(t){return t.priority||0})))))}),1);t.forEach((function(t){t.rules.forEach((function(t){t.priority||(t.priority=r++),t.style&&(t.dxfId=e.styles.addDxfStyle(t.style))}))}))}},{key:\"render\",value:function(t,e){var r=this;e.forEach((function(e){r.cfXform.render(t,e)}))}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"conditionalFormatting\":return this.parser=this.cfXform,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return!(!this.parser||!this.parser.parseClose(t)&&(this.model.push(this.parser.model),this.parser=void 0,1))}},{key:\"reconcile\",value:function(t,e){t.forEach((function(t){t.rules.forEach((function(t){void 0!==t.dxfId&&(t.style=e.styles.getDxfStyle(t.dxfId),delete t.dxfId)}))}))}},{key:\"tag\",get:function(){return\"conditionalFormatting\"}}])&&a(e.prototype,r),n&&a(e,n),c}(l);e.exports=d},{\"../../base-xform\":31,\"./conditional-formatting-xform\":85}],87:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../composite-xform\"),f=t(\"../../style/color-xform\"),l=t(\"./cfvo-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={cfvo:t.cfvoXform=new l,color:t.colorXform=new f},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag),e.cfvo.forEach((function(e){r.cfvoXform.render(t,e)})),this.colorXform.render(t,e.color),t.closeNode()}},{key:\"createNewModel\",value:function(){return{cfvo:[]}}},{key:\"onParserClose\",value:function(t,e){switch(t){case\"cfvo\":this.model.cfvo.push(e.model);break;case\"color\":this.model.color=e.model}}},{key:\"tag\",get:function(){return\"dataBar\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../../composite-xform\":47,\"../../style/color-xform\":127,\"./cfvo-xform\":83}],88:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),t}function s(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../../base-xform\"),d=t(\"../../composite-xform\"),p=function(t){s(r,t);var e=c(r);function r(){return i(this,r),e.apply(this,arguments)}return a(r,[{key:\"render\",value:function(t,e){t.leafNode(this.tag,null,e)}},{key:\"parseOpen\",value:function(){this.model=\"\"}},{key:\"parseText\",value:function(t){this.model+=t}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"x14:id\"}}]),r}(h),m=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={\"x14:id\":t.idXform=new p},t}return a(r,[{key:\"render\",value:function(t,e){t.openNode(this.tag,{uri:\"{B025F937-C7B1-47D3-B67F-A62EFF666E3E}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"}),this.idXform.render(t,e.x14Id),t.closeNode()}},{key:\"createNewModel\",value:function(){return{}}},{key:\"onParserClose\",value:function(t,e){this.model.x14Id=e.model}},{key:\"tag\",get:function(){return\"ext\"}}]),r}(d),y=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={ext:new m},t}return a(r,[{key:\"render\",value:function(t,e){t.openNode(this.tag),this.map.ext.render(t,e),t.closeNode()}},{key:\"createNewModel\",value:function(){return{}}},{key:\"onParserClose\",value:function(t,e){Object.assign(this.model,e.model)}},{key:\"tag\",get:function(){return\"extLst\"}}]),r}(d);e.exports=y},{\"../../base-xform\":31,\"../../composite-xform\":47}],89:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(this.tag,null,e)}},{key:\"parseOpen\",value:function(){this.model=\"\"}},{key:\"parseText\",value:function(t){this.model+=t}},{key:\"parseClose\",value:function(t){return t!==this.tag}},{key:\"tag\",get:function(){return\"formula\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../../base-xform\"));e.exports=f},{\"../../base-xform\":31}],90:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../base-xform\"),f=t(\"../../composite-xform\"),l=t(\"./cfvo-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={cfvo:t.cfvoXform=new l},t}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag,{iconSet:c.toStringAttribute(e.iconSet,\"3TrafficLights\"),reverse:c.toBoolAttribute(e.reverse,!1),showValue:c.toBoolAttribute(e.showValue,!0)}),e.cfvo.forEach((function(e){r.cfvoXform.render(t,e)})),t.closeNode()}},{key:\"createNewModel\",value:function(t){var e=t.attributes;return{iconSet:c.toStringValue(e.iconSet,\"3TrafficLights\"),reverse:c.toBoolValue(e.reverse),showValue:c.toBoolValue(e.showValue),cfvo:[]}}},{key:\"onParserClose\",value:function(t,e){this.model[t].push(e.model)}},{key:\"tag\",get:function(){return\"iconSet\"}}])&&i(e.prototype,r),n&&i(e,n),u}(f);e.exports=h},{\"../../base-xform\":31,\"../../composite-xform\":47,\"./cfvo-xform\":83}],91:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"prepare\",value:function(t,e){var r=e.styles.addStyleModel(t.style||{});r&&(t.styleId=r)}},{key:\"render\",value:function(t,e){t.openNode(\"col\"),t.addAttribute(\"min\",e.min),t.addAttribute(\"max\",e.max),e.width&&t.addAttribute(\"width\",e.width),e.styleId&&t.addAttribute(\"style\",e.styleId),e.hidden&&t.addAttribute(\"hidden\",\"1\"),e.bestFit&&t.addAttribute(\"bestFit\",\"1\"),e.outlineLevel&&t.addAttribute(\"outlineLevel\",e.outlineLevel),e.collapsed&&t.addAttribute(\"collapsed\",\"1\"),t.addAttribute(\"customWidth\",\"1\"),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(\"col\"===t.name){var e=this.model={min:parseInt(t.attributes.min||\"0\",10),max:parseInt(t.attributes.max||\"0\",10),width:void 0===t.attributes.width?void 0:parseFloat(t.attributes.width||\"0\")};return t.attributes.style&&(e.styleId=parseInt(t.attributes.style,10)),!0!==t.attributes.hidden&&\"true\"!==t.attributes.hidden&&1!==t.attributes.hidden&&\"1\"!==t.attributes.hidden||(e.hidden=!0),t.attributes.bestFit&&(e.bestFit=!0),t.attributes.outlineLevel&&(e.outlineLevel=parseInt(t.attributes.outlineLevel,10)),t.attributes.collapsed&&(e.collapsed=!0),!0}return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"reconcile\",value:function(t,e){t.styleId&&(t.style=e.styles.getStyleModel(t.styleId))}},{key:\"tag\",get:function(){return\"col\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],92:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function f(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?f(Object(r),!0).forEach((function(e){h(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function h(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var d=t(\"../../../utils/under-dash\"),p=t(\"../../../utils/utils\"),m=t(\"../../../utils/col-cache\"),y=t(\"../base-xform\"),b=t(\"../../../doc/range\");function v(t,e,r,n){var i=e[r];void 0!==i?t[r]=i:void 0!==n&&(t[r]=n)}function g(t,e,r,n){var i=e[r];void 0!==i?t[r]=function(t){switch(t){case\"1\":case\"true\":return!0;default:return!1}}(i):void 0!==n&&(t[r]=n)}var w=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){var r=function(t){var e=d.map(t,(function(t,e){return{address:e,dataValidation:t,marked:!1}})).sort((function(t,e){return d.strcmp(t.address,e.address)})),r=d.keyBy(e,\"address\"),n=function(e,r,n){for(var i=0;i<r;i++){var o=m.encodeAddress(e.row+i,n);if(!t[o]||!d.isEqual(t[e.address],t[o]))return!1}return!0};return e.map((function(e){if(!e.marked){var i=m.decodeEx(e.address);if(i.dimensions)return r[i.dimensions].marked=!0,l(l({},e.dataValidation),{},{sqref:e.address});for(var o=1,a=m.encodeAddress(i.row+o,i.col);t[a]&&d.isEqual(e.dataValidation,t[a]);)o++,a=m.encodeAddress(i.row+o,i.col);for(var s=1;n(i,o,i.col+s);)s++;for(var u=0;u<o;u++)for(var c=0;c<s;c++)a=m.encodeAddress(i.row+u,i.col+c),r[a].marked=!0;if(o>1||s>1){var f=i.row+(o-1),h=i.col+(s-1);return l(l({},e.dataValidation),{},{sqref:\"\".concat(e.address,\":\").concat(m.encodeAddress(f,h))})}return l(l({},e.dataValidation),{},{sqref:e.address})}return null})).filter(Boolean)}(e);r.length&&(t.openNode(\"dataValidations\",{count:r.length}),r.forEach((function(e){t.openNode(\"dataValidation\"),\"any\"!==e.type&&(t.addAttribute(\"type\",e.type),e.operator&&\"list\"!==e.type&&\"between\"!==e.operator&&t.addAttribute(\"operator\",e.operator),e.allowBlank&&t.addAttribute(\"allowBlank\",\"1\")),e.showInputMessage&&t.addAttribute(\"showInputMessage\",\"1\"),e.promptTitle&&t.addAttribute(\"promptTitle\",e.promptTitle),e.prompt&&t.addAttribute(\"prompt\",e.prompt),e.showErrorMessage&&t.addAttribute(\"showErrorMessage\",\"1\"),e.errorStyle&&t.addAttribute(\"errorStyle\",e.errorStyle),e.errorTitle&&t.addAttribute(\"errorTitle\",e.errorTitle),e.error&&t.addAttribute(\"error\",e.error),t.addAttribute(\"sqref\",e.sqref),(e.formulae||[]).forEach((function(r,n){t.openNode(\"formula\".concat(n+1)),\"date\"===e.type?t.writeText(p.dateToExcel(new Date(r))):t.writeText(r),t.closeNode()})),t.closeNode()})),t.closeNode())}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"dataValidations\":return this.model={},!0;case\"dataValidation\":this._address=t.attributes.sqref;var e={type:t.attributes.type||\"any\",formulae:[]};switch(t.attributes.type&&g(e,t.attributes,\"allowBlank\"),g(e,t.attributes,\"showInputMessage\"),g(e,t.attributes,\"showErrorMessage\"),e.type){case\"any\":case\"list\":case\"custom\":break;default:v(e,t.attributes,\"operator\",\"between\")}return v(e,t.attributes,\"promptTitle\"),v(e,t.attributes,\"prompt\"),v(e,t.attributes,\"errorStyle\"),v(e,t.attributes,\"errorTitle\"),v(e,t.attributes,\"error\"),this._dataValidation=e,!0;case\"formula1\":case\"formula2\":return this._formula=[],!0;default:return!1}}},{key:\"parseText\",value:function(t){this._formula&&this._formula.push(t)}},{key:\"parseClose\",value:function(t){var e=this;switch(t){case\"dataValidations\":return!1;case\"dataValidation\":return this._dataValidation.formulae&&this._dataValidation.formulae.length||(delete this._dataValidation.formulae,delete this._dataValidation.operator),(this._address.split(/\\s+/g)||[]).forEach((function(t){t.includes(\":\")?new b(t).forEachAddress((function(t){e.model[t]=e._dataValidation})):e.model[t]=e._dataValidation})),!0;case\"formula1\":case\"formula2\":var r=this._formula.join(\"\");switch(this._dataValidation.type){case\"whole\":case\"textLength\":r=parseInt(r,10);break;case\"decimal\":r=parseFloat(r);break;case\"date\":r=p.excelToDate(parseFloat(r))}return this._dataValidation.formulae.push(r),this._formula=void 0,!0;default:return!0}}},{key:\"tag\",get:function(){return\"dataValidations\"}}])&&o(e.prototype,r),n&&o(e,n),c}(y);e.exports=w},{\"../../../doc/range\":10,\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":25,\"../../../utils/utils\":26,\"../base-xform\":31}],93:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){e&&t.leafNode(\"dimension\",{ref:e})}},{key:\"parseOpen\",value:function(t){return\"dimension\"===t.name&&(this.model=t.attributes.ref,!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"dimension\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],94:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){e&&t.leafNode(this.tag,{\"r:id\":e.rId})}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={rId:t.attributes[\"r:id\"]},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"drawing\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],95:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),t}function s(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../composite-xform\"),d=t(\"./cf-ext/conditional-formattings-ext-xform\"),p=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={\"x14:conditionalFormattings\":t.conditionalFormattings=new d},t}return a(r,[{key:\"hasContent\",value:function(t){return this.conditionalFormattings.hasContent(t.conditionalFormattings)}},{key:\"prepare\",value:function(t,e){this.conditionalFormattings.prepare(t.conditionalFormattings,e)}},{key:\"render\",value:function(t,e){t.openNode(\"ext\",{uri:\"{78C0D931-6437-407d-A8EE-F0AAD7539E65}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"}),this.conditionalFormattings.render(t,e.conditionalFormattings),t.closeNode()}},{key:\"createNewModel\",value:function(){return{}}},{key:\"onParserClose\",value:function(t,e){this.model[t]=e.model}},{key:\"tag\",get:function(){return\"ext\"}}]),r}(h),m=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={ext:t.ext=new p},t}return a(r,[{key:\"prepare\",value:function(t,e){this.ext.prepare(t,e)}},{key:\"hasContent\",value:function(t){return this.ext.hasContent(t)}},{key:\"render\",value:function(t,e){this.hasContent(e)&&(t.openNode(\"extLst\"),this.ext.render(t,e),t.closeNode())}},{key:\"createNewModel\",value:function(){return{}}},{key:\"onParserClose\",value:function(t,e){Object.assign(this.model,e.model)}},{key:\"tag\",get:function(){return\"extLst\"}}]),r}(h);e.exports=m},{\"../composite-xform\":47,\"./cf-ext/conditional-formattings-ext-xform\":77}],96:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){t.addRollback();var r=!1;t.openNode(\"headerFooter\"),e.differentFirst&&(t.addAttribute(\"differentFirst\",\"1\"),r=!0),e.differentOddEven&&(t.addAttribute(\"differentOddEven\",\"1\"),r=!0),e.oddHeader&&\"string\"==typeof e.oddHeader&&(t.leafNode(\"oddHeader\",null,e.oddHeader),r=!0),e.oddFooter&&\"string\"==typeof e.oddFooter&&(t.leafNode(\"oddFooter\",null,e.oddFooter),r=!0),e.evenHeader&&\"string\"==typeof e.evenHeader&&(t.leafNode(\"evenHeader\",null,e.evenHeader),r=!0),e.evenFooter&&\"string\"==typeof e.evenFooter&&(t.leafNode(\"evenFooter\",null,e.evenFooter),r=!0),e.firstHeader&&\"string\"==typeof e.firstHeader&&(t.leafNode(\"firstHeader\",null,e.firstHeader),r=!0),e.firstFooter&&\"string\"==typeof e.firstFooter&&(t.leafNode(\"firstFooter\",null,e.firstFooter),r=!0),r?(t.closeNode(),t.commit()):t.rollback()}}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"headerFooter\":return this.model={},t.attributes.differentFirst&&(this.model.differentFirst=1===parseInt(t.attributes.differentFirst,0)),t.attributes.differentOddEven&&(this.model.differentOddEven=1===parseInt(t.attributes.differentOddEven,0)),!0;case\"oddHeader\":return this.currentNode=\"oddHeader\",!0;case\"oddFooter\":return this.currentNode=\"oddFooter\",!0;case\"evenHeader\":return this.currentNode=\"evenHeader\",!0;case\"evenFooter\":return this.currentNode=\"evenFooter\",!0;case\"firstHeader\":return this.currentNode=\"firstHeader\",!0;case\"firstFooter\":return this.currentNode=\"firstFooter\",!0;default:return!1}}},{key:\"parseText\",value:function(t){switch(this.currentNode){case\"oddHeader\":this.model.oddHeader=t;break;case\"oddFooter\":this.model.oddFooter=t;break;case\"evenHeader\":this.model.evenHeader=t;break;case\"evenFooter\":this.model.evenFooter=t;break;case\"firstHeader\":this.model.firstHeader=t;break;case\"firstFooter\":this.model.firstFooter=t}}},{key:\"parseClose\",value:function(){switch(this.currentNode){case\"oddHeader\":case\"oddFooter\":case\"evenHeader\":case\"evenFooter\":case\"firstHeader\":case\"firstFooter\":return this.currentNode=void 0,!0;default:return!1}}},{key:\"tag\",get:function(){return\"headerFooter\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],97:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"hyperlink\",{ref:e.address,\"r:id\":e.rId,tooltip:e.tooltip})}},{key:\"parseOpen\",value:function(t){return\"hyperlink\"===t.name&&(this.model={address:t.attributes.ref,rId:t.attributes[\"r:id\"],tooltip:t.attributes.tooltip},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"hyperlink\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],98:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"mergeCell\",{ref:e})}},{key:\"parseOpen\",value:function(t){return\"mergeCell\"===t.name&&(this.model=t.attributes.ref,!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"mergeCell\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],99:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=t(\"../../../utils/under-dash\"),o=t(\"../../../doc/range\"),a=t(\"../../../utils/col-cache\"),s=t(\"../../../doc/enums\"),u=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.merges={}}var e,r,u;return e=t,(r=[{key:\"add\",value:function(t){if(this.merges[t.master])this.merges[t.master].expandToAddress(t.address);else{var e=\"\".concat(t.master,\":\").concat(t.address);this.merges[t.master]=new o(e)}}},{key:\"reconcile\",value:function(t,e){i.each(t,(function(t){for(var r=a.decode(t),n=r.top;n<=r.bottom;n++)for(var i=e[n-1],o=r.left;o<=r.right;o++){var u=i.cells[o-1];u?u.type===s.ValueType.Merge&&(u.master=r.tl):i.cells[o]={type:s.ValueType.Null,address:a.encodeAddress(n,o)}}}))}},{key:\"getMasterAddress\",value:function(t){var e=this.hash[t];return e&&e.tl}},{key:\"mergeCells\",get:function(){return i.map(this.merges,(function(t){return t.range}))}}])&&n(e.prototype,r),u&&n(e,u),t}();e.exports=u},{\"../../../doc/enums\":7,\"../../../doc/range\":10,\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":25}],100:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../base-xform\"),l=function(t){return void 0!==t},h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){return!(!e||!l(e.summaryBelow)&&!l(e.summaryRight)||(t.leafNode(this.tag,{summaryBelow:l(e.summaryBelow)?Number(e.summaryBelow):void 0,summaryRight:l(e.summaryRight)?Number(e.summaryRight):void 0}),0))}},{key:\"parseOpen\",value:function(t){return t.name===this.tag&&(this.model={summaryBelow:l(t.attributes.summaryBelow)?Boolean(Number(t.attributes.summaryBelow)):void 0,summaryRight:l(t.attributes.summaryRight)?Boolean(Number(t.attributes.summaryRight)):void 0},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"outlinePr\"}}])&&o(e.prototype,r),n&&o(e,n),c}(f);e.exports=h},{\"../base-xform\":31}],101:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"brk\",e)}},{key:\"parseOpen\",value:function(t){return\"brk\"===t.name&&(this.model=t.attributes.ref,!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"brk\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],102:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/under-dash\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){var r={left:e.left,right:e.right,top:e.top,bottom:e.bottom,header:e.header,footer:e.footer};f.some(r,(function(t){return void 0!==t}))&&t.leafNode(this.tag,r)}}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={left:parseFloat(t.attributes.left||.7),right:parseFloat(t.attributes.right||.7),top:parseFloat(t.attributes.top||.75),bottom:parseFloat(t.attributes.bottom||.75),header:parseFloat(t.attributes.header||.3),footer:parseFloat(t.attributes.footer||.3)},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"pageMargins\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=l},{\"../../../utils/under-dash\":25,\"../base-xform\":31}],103:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){return!(!e||!e.fitToPage||(t.leafNode(this.tag,{fitToPage:e.fitToPage?\"1\":void 0}),0))}},{key:\"parseOpen\",value:function(t){return t.name===this.tag&&(this.model={fitToPage:\"1\"===t.attributes.fitToPage},!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"pageSetUpPr\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],104:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/under-dash\");function l(t){return t?\"1\":void 0}function h(t){switch(t){case\"overThenDown\":return t;default:return}}function d(t){switch(t){case\"atEnd\":case\"asDisplyed\":return t;default:return}}function p(t){switch(t){case\"dash\":case\"blank\":case\"NA\":return t;default:return}}var m=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){var r={paperSize:e.paperSize,orientation:e.orientation,horizontalDpi:e.horizontalDpi,verticalDpi:e.verticalDpi,pageOrder:h(e.pageOrder),blackAndWhite:l(e.blackAndWhite),draft:l(e.draft),cellComments:d(e.cellComments),errors:p(e.errors),scale:e.scale,fitToWidth:e.fitToWidth,fitToHeight:e.fitToHeight,firstPageNumber:e.firstPageNumber,useFirstPageNumber:l(e.firstPageNumber),usePrinterDefaults:l(e.usePrinterDefaults),copies:e.copies};f.some(r,(function(t){return void 0!==t}))&&t.leafNode(this.tag,r)}}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={paperSize:(e=t.attributes.paperSize,void 0!==e?parseInt(e,10):void 0),orientation:t.attributes.orientation||\"portrait\",horizontalDpi:parseInt(t.attributes.horizontalDpi||\"4294967295\",10),verticalDpi:parseInt(t.attributes.verticalDpi||\"4294967295\",10),pageOrder:t.attributes.pageOrder||\"downThenOver\",blackAndWhite:\"1\"===t.attributes.blackAndWhite,draft:\"1\"===t.attributes.draft,cellComments:t.attributes.cellComments||\"None\",errors:t.attributes.errors||\"displayed\",scale:parseInt(t.attributes.scale||\"100\",10),fitToWidth:parseInt(t.attributes.fitToWidth||\"1\",10),fitToHeight:parseInt(t.attributes.fitToHeight||\"1\",10),firstPageNumber:parseInt(t.attributes.firstPageNumber||\"1\",10),useFirstPageNumber:\"1\"===t.attributes.useFirstPageNumber,usePrinterDefaults:\"1\"===t.attributes.usePrinterDefaults,copies:parseInt(t.attributes.copies||\"1\",10)},!0;default:return!1}var e}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"pageSetup\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=m},{\"../../../utils/under-dash\":25,\"../base-xform\":31}],105:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){e&&t.leafNode(this.tag,{\"r:id\":e.rId})}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={rId:t.attributes[\"r:id\"]},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"picture\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],106:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/under-dash\");function l(t){return t?\"1\":void 0}var h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){var r={headings:l(e.showRowColHeaders),gridLines:l(e.showGridLines),horizontalCentered:l(e.horizontalCentered),verticalCentered:l(e.verticalCentered)};f.some(r,(function(t){return void 0!==t}))&&t.leafNode(this.tag,r)}}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={showRowColHeaders:\"1\"===t.attributes.headings,showGridLines:\"1\"===t.attributes.gridLines,horizontalCentered:\"1\"===t.attributes.horizontalCentered,verticalCentered:\"1\"===t.attributes.verticalCentered},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"printOptions\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=h},{\"../../../utils/under-dash\":25,\"../base-xform\":31}],107:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./page-breaks-xform\"),f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u);var t={tag:\"rowBreaks\",count:!0,childXform:new c};return s.call(this,t)}return e=u,(r=[{key:\"render\",value:function(t,e){if(e&&e.length){t.openNode(this.tag,this.$),this.count&&(t.addAttribute(this.$count,e.length),t.addAttribute(\"manualBreakCount\",e.length));var r=this.childXform;e.forEach((function(e){r.render(t,e)})),t.closeNode()}else this.empty&&t.leafNode(this.tag)}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../list-xform\"));e.exports=f},{\"../list-xform\":70,\"./page-breaks-xform\":101}],108:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./cell-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).maxItems=t&&t.maxItems,e.map={c:new f},e}return e=u,(r=[{key:\"prepare\",value:function(t,e){var r=e.styles.addStyleModel(t.style);r&&(t.styleId=r);var n=this.map.c;t.cells.forEach((function(t){n.prepare(t,e)}))}},{key:\"render\",value:function(t,e,r){t.openNode(\"row\"),t.addAttribute(\"r\",e.number),e.height&&(t.addAttribute(\"ht\",e.height),t.addAttribute(\"customHeight\",\"1\")),e.hidden&&t.addAttribute(\"hidden\",\"1\"),e.min>0&&e.max>0&&e.min<=e.max&&t.addAttribute(\"spans\",\"\".concat(e.min,\":\").concat(e.max)),e.styleId&&(t.addAttribute(\"s\",e.styleId),t.addAttribute(\"customFormat\",\"1\")),t.addAttribute(\"x14ac:dyDescent\",\"0.25\"),e.outlineLevel&&t.addAttribute(\"outlineLevel\",e.outlineLevel),e.collapsed&&t.addAttribute(\"collapsed\",\"1\");var n=this.map.c;e.cells.forEach((function(e){n.render(t,e,r)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;if(\"row\"===t.name){this.numRowsSeen+=1;var e=t.attributes.spans?t.attributes.spans.split(\":\").map((function(t){return parseInt(t,10)})):[void 0,void 0],r=this.model={number:parseInt(t.attributes.r,10),min:e[0],max:e[1],cells:[]};return t.attributes.s&&(r.styleId=parseInt(t.attributes.s,10)),!0!==t.attributes.hidden&&\"true\"!==t.attributes.hidden&&1!==t.attributes.hidden&&\"1\"!==t.attributes.hidden||(r.hidden=!0),t.attributes.bestFit&&(r.bestFit=!0),t.attributes.ht&&(r.height=parseFloat(t.attributes.ht)),t.attributes.outlineLevel&&(r.outlineLevel=parseInt(t.attributes.outlineLevel,10)),t.attributes.collapsed&&(r.collapsed=!0),!0}return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser){if(!this.parser.parseClose(t)){if(this.model.cells.push(this.parser.model),this.maxItems&&this.model.cells.length>this.maxItems)throw new Error(\"Max column count (\".concat(this.maxItems,\") exceeded\"));this.parser=void 0}return!0}return!1}},{key:\"reconcile\",value:function(t,e){t.style=t.styleId?e.styles.getStyleModel(t.styleId):{},void 0!==t.styleId&&(t.styleId=void 0);var r=this.map.c;t.cells.forEach((function(t){r.reconcile(t,e)}))}},{key:\"tag\",get:function(){return\"row\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../base-xform\":31,\"./cell-xform\":72}],109:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/under-dash\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){var r={defaultRowHeight:e.defaultRowHeight,outlineLevelRow:e.outlineLevelRow,outlineLevelCol:e.outlineLevelCol,\"x14ac:dyDescent\":e.dyDescent};e.defaultColWidth&&(r.defaultColWidth=e.defaultColWidth),e.defaultRowHeight&&15===e.defaultRowHeight||(r.customHeight=\"1\"),f.some(r,(function(t){return void 0!==t}))&&t.leafNode(\"sheetFormatPr\",r)}}},{key:\"parseOpen\",value:function(t){return\"sheetFormatPr\"===t.name&&(this.model={defaultRowHeight:parseFloat(t.attributes.defaultRowHeight||\"0\"),dyDescent:parseFloat(t.attributes[\"x14ac:dyDescent\"]||\"0\"),outlineLevelRow:parseInt(t.attributes.outlineLevelRow||\"0\",10),outlineLevelCol:parseInt(t.attributes.outlineLevelCol||\"0\",10)},t.attributes.defaultColWidth&&(this.model.defaultColWidth=parseFloat(t.attributes.defaultColWidth)),!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"sheetFormatPr\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=l},{\"../../../utils/under-dash\":25,\"../base-xform\":31}],110:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"../style/color-xform\"),l=t(\"./page-setup-properties-xform\"),h=t(\"./outline-properties-xform\"),d=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={tabColor:new f(\"tabColor\"),pageSetUpPr:new l,outlinePr:new h},t}return e=u,(r=[{key:\"render\",value:function(t,e){if(e){t.addRollback(),t.openNode(\"sheetPr\");var r=!1;r=this.map.tabColor.render(t,e.tabColor)||r,r=this.map.pageSetUpPr.render(t,e.pageSetup)||r,(r=this.map.outlinePr.render(t,e.outlineProperties)||r)?(t.closeNode(),t.commit()):t.rollback()}}},{key:\"parseOpen\",value:function(t){return this.parser?(this.parser.parseOpen(t),!0):t.name===this.tag?(this.reset(),!0):!!this.map[t.name]&&(this.parser=this.map[t.name],this.parser.parseOpen(t),!0)}},{key:\"parseText\",value:function(t){return!!this.parser&&(this.parser.parseText(t),!0)}},{key:\"parseClose\",value:function(t){return this.parser?(this.parser.parseClose(t)||(this.parser=void 0),!0):(this.map.tabColor.model||this.map.pageSetUpPr.model||this.map.outlinePr.model?(this.model={},this.map.tabColor.model&&(this.model.tabColor=this.map.tabColor.model),this.map.pageSetUpPr.model&&(this.model.pageSetup=this.map.pageSetUpPr.model),this.map.outlinePr.model&&(this.model.outlineProperties=this.map.outlinePr.model)):this.model=null,!1)}},{key:\"tag\",get:function(){return\"sheetPr\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=d},{\"../base-xform\":31,\"../style/color-xform\":127,\"./outline-properties-xform\":100,\"./page-setup-properties-xform\":103}],111:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/under-dash\");function l(t,e){return t?e:void 0}function h(t,e){return t===e||void 0}var d=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){if(e){var r={sheet:l(e.sheet,\"1\"),selectLockedCells:!1===e.selectLockedCells?\"1\":void 0,selectUnlockedCells:!1===e.selectUnlockedCells?\"1\":void 0,formatCells:l(e.formatCells,\"0\"),formatColumns:l(e.formatColumns,\"0\"),formatRows:l(e.formatRows,\"0\"),insertColumns:l(e.insertColumns,\"0\"),insertRows:l(e.insertRows,\"0\"),insertHyperlinks:l(e.insertHyperlinks,\"0\"),deleteColumns:l(e.deleteColumns,\"0\"),deleteRows:l(e.deleteRows,\"0\"),sort:l(e.sort,\"0\"),autoFilter:l(e.autoFilter,\"0\"),pivotTables:l(e.pivotTables,\"0\")};e.sheet&&(r.algorithmName=e.algorithmName,r.hashValue=e.hashValue,r.saltValue=e.saltValue,r.spinCount=e.spinCount,r.objects=l(!1===e.objects,\"1\"),r.scenarios=l(!1===e.scenarios,\"1\")),f.some(r,(function(t){return void 0!==t}))&&t.leafNode(this.tag,r)}}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={sheet:h(t.attributes.sheet,\"1\"),objects:\"1\"!==t.attributes.objects&&void 0,scenarios:\"1\"!==t.attributes.scenarios&&void 0,selectLockedCells:\"1\"!==t.attributes.selectLockedCells&&void 0,selectUnlockedCells:\"1\"!==t.attributes.selectUnlockedCells&&void 0,formatCells:h(t.attributes.formatCells,\"0\"),formatColumns:h(t.attributes.formatColumns,\"0\"),formatRows:h(t.attributes.formatRows,\"0\"),insertColumns:h(t.attributes.insertColumns,\"0\"),insertRows:h(t.attributes.insertRows,\"0\"),insertHyperlinks:h(t.attributes.insertHyperlinks,\"0\"),deleteColumns:h(t.attributes.deleteColumns,\"0\"),deleteRows:h(t.attributes.deleteRows,\"0\"),sort:h(t.attributes.sort,\"0\"),autoFilter:h(t.attributes.autoFilter,\"0\"),pivotTables:h(t.attributes.pivotTables,\"0\")},t.attributes.algorithmName&&(this.model.algorithmName=t.attributes.algorithmName,this.model.hashValue=t.attributes.hashValue,this.model.saltValue=t.attributes.saltValue,this.model.spinCount=parseInt(t.attributes.spinCount,10)),!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"sheetProtection\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=d},{\"../../../utils/under-dash\":25,\"../base-xform\":31}],112:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../utils/col-cache\"),l=t(\"../base-xform\"),h={frozen:\"frozen\",frozenSplit:\"frozen\",split:\"split\"},d=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"prepare\",value:function(t){switch(t.state){case\"frozen\":case\"split\":break;default:t.state=\"normal\"}}},{key:\"render\",value:function(t,e){t.openNode(\"sheetView\",{workbookViewId:e.workbookViewId||0});var r,n,i,o,a=function(e,r,n){n&&t.addAttribute(e,r)};switch(a(\"rightToLeft\",\"1\",!0===e.rightToLeft),a(\"tabSelected\",\"1\",e.tabSelected),a(\"showRuler\",\"0\",!1===e.showRuler),a(\"showRowColHeaders\",\"0\",!1===e.showRowColHeaders),a(\"showGridLines\",\"0\",!1===e.showGridLines),a(\"zoomScale\",e.zoomScale,e.zoomScale),a(\"zoomScaleNormal\",e.zoomScaleNormal,e.zoomScaleNormal),a(\"view\",e.style,e.style),e.state){case\"frozen\":n=e.xSplit||0,i=e.ySplit||0,r=e.topLeftCell||f.getAddress(i+1,n+1).address,o=(e.xSplit&&e.ySplit?\"bottomRight\":e.xSplit&&\"topRight\")||\"bottomLeft\",t.leafNode(\"pane\",{xSplit:e.xSplit||void 0,ySplit:e.ySplit||void 0,topLeftCell:r,activePane:o,state:\"frozen\"}),t.leafNode(\"selection\",{pane:o,activeCell:e.activeCell,sqref:e.activeCell});break;case\"split\":\"topLeft\"===e.activePane&&(e.activePane=void 0),t.leafNode(\"pane\",{xSplit:e.xSplit||void 0,ySplit:e.ySplit||void 0,topLeftCell:e.topLeftCell,activePane:e.activePane}),t.leafNode(\"selection\",{pane:e.activePane,activeCell:e.activeCell,sqref:e.activeCell});break;case\"normal\":e.activeCell&&t.leafNode(\"selection\",{activeCell:e.activeCell,sqref:e.activeCell})}t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"sheetView\":return this.sheetView={workbookViewId:parseInt(t.attributes.workbookViewId,10),rightToLeft:\"1\"===t.attributes.rightToLeft,tabSelected:\"1\"===t.attributes.tabSelected,showRuler:!(\"0\"===t.attributes.showRuler),showRowColHeaders:!(\"0\"===t.attributes.showRowColHeaders),showGridLines:!(\"0\"===t.attributes.showGridLines),zoomScale:parseInt(t.attributes.zoomScale||\"100\",10),zoomScaleNormal:parseInt(t.attributes.zoomScaleNormal||\"100\",10),style:t.attributes.view},this.pane=void 0,this.selections={},!0;case\"pane\":return this.pane={xSplit:parseInt(t.attributes.xSplit||\"0\",10),ySplit:parseInt(t.attributes.ySplit||\"0\",10),topLeftCell:t.attributes.topLeftCell,activePane:t.attributes.activePane||\"topLeft\",state:t.attributes.state},!0;case\"selection\":var e=t.attributes.pane||\"topLeft\";return this.selections[e]={pane:e,activeCell:t.attributes.activeCell},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){var e,r;switch(t){case\"sheetView\":return this.sheetView&&this.pane?(e=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:h[this.pane.state]||\"split\",xSplit:this.pane.xSplit,ySplit:this.pane.ySplit,topLeftCell:this.pane.topLeftCell,showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},\"split\"===this.model.state&&(e.activePane=this.pane.activePane),(r=this.selections[this.pane.activePane])&&r.activeCell&&(e.activeCell=r.activeCell),this.sheetView.style&&(e.style=this.sheetView.style)):(e=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:\"normal\",showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},(r=this.selections.topLeft)&&r.activeCell&&(e.activeCell=r.activeCell),this.sheetView.style&&(e.style=this.sheetView.style)),!1;default:return!0}}},{key:\"reconcile\",value:function(){}},{key:\"tag\",get:function(){return\"sheetView\"}}])&&o(e.prototype,r),n&&o(e,n),c}(l);e.exports=d},{\"../../../utils/col-cache\":19,\"../base-xform\":31}],113:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){e&&t.leafNode(this.tag,{\"r:id\":e.rId})}},{key:\"parseOpen\",value:function(t){switch(t.name){case this.tag:return this.model={rId:t.attributes[\"r:id\"]},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"tablePart\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],114:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/under-dash\"),f=t(\"../../../utils/col-cache\"),l=t(\"../../../utils/xml-stream\"),h=t(\"../../rel-type\"),d=t(\"./merges\"),p=t(\"../base-xform\"),m=t(\"../list-xform\"),y=t(\"./row-xform\"),b=t(\"./col-xform\"),v=t(\"./dimension-xform\"),g=t(\"./hyperlink-xform\"),w=t(\"./merge-cell-xform\"),_=t(\"./data-validations-xform\"),k=t(\"./sheet-properties-xform\"),x=t(\"./sheet-format-properties-xform\"),S=t(\"./sheet-view-xform\"),O=t(\"./sheet-protection-xform\"),j=t(\"./page-margins-xform\"),E=t(\"./page-setup-xform\"),R=t(\"./print-options-xform\"),T=t(\"./auto-filter-xform\"),C=t(\"./picture-xform\"),P=t(\"./drawing-xform\"),M=t(\"./table-part-xform\"),A=t(\"./row-breaks-xform\"),I=t(\"./header-footer-xform\"),N=t(\"./cf/conditional-formattings-xform\"),D=t(\"./ext-lst-xform\"),B=function(t,e){if(!e||!e.length)return t;if(!t||!t.length)return e;var r={},n={};return t.forEach((function(t){r[t.ref]=t,t.rules.forEach((function(t){var e=t.x14Id;e&&(n[e]=t)}))})),e.forEach((function(e){e.rules.forEach((function(i){var o=n[i.x14Id];o?function(t,e){Object.keys(e).forEach((function(r){var n=t[r],i=e[r];void 0===n&&void 0!==i&&(t[r]=i)}))}(o,i):r[e.ref]?r[e.ref].rules.push(i):t.push({ref:e.ref,rules:[i]})}))})),t},F=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),e=s.call(this);var r=t||{},n=r.maxRows,i=r.maxCols;return e.map={sheetPr:new k,dimension:new v,sheetViews:new m({tag:\"sheetViews\",count:!1,childXform:new S}),sheetFormatPr:new x,cols:new m({tag:\"cols\",count:!1,childXform:new b}),sheetData:new m({tag:\"sheetData\",count:!1,empty:!0,childXform:new y({maxItems:i}),maxItems:n}),autoFilter:new T,mergeCells:new m({tag:\"mergeCells\",count:!0,childXform:new w}),rowBreaks:new A,hyperlinks:new m({tag:\"hyperlinks\",count:!1,childXform:new g}),pageMargins:new j,dataValidations:new _,pageSetup:new E,headerFooter:new I,printOptions:new R,picture:new C,drawing:new P,sheetProtection:new O,tableParts:new m({tag:\"tableParts\",count:!0,childXform:new M}),conditionalFormatting:new N,extLst:new D},e}return e=u,(r=[{key:\"prepare\",value:function(t,e){var r=this;e.merges=new d,t.hyperlinks=e.hyperlinks=[],t.comments=e.comments=[],e.formulae={},e.siFormulae=0,this.map.cols.prepare(t.cols,e),this.map.sheetData.prepare(t.rows,e),this.map.conditionalFormatting.prepare(t.conditionalFormattings,e),t.mergeCells=e.merges.mergeCells;var n=t.rels=[];function i(t){return\"rId\".concat(t.length+1)}if(t.hyperlinks.forEach((function(t){var e=i(n);t.rId=e,n.push({Id:e,Type:h.Hyperlink,Target:t.target,TargetMode:\"External\"})})),t.comments.length>0){var o={Id:i(n),Type:h.Comments,Target:\"../comments\".concat(t.id,\".xml\")};n.push(o);var a={Id:i(n),Type:h.VmlDrawing,Target:\"../drawings/vmlDrawing\".concat(t.id,\".vml\")};n.push(a),t.comments.forEach((function(t){t.refAddress=f.decodeAddress(t.ref)})),e.commentRefs.push({commentName:\"comments\".concat(t.id),vmlDrawing:\"vmlDrawing\".concat(t.id)})}var s,u=[];t.media.forEach((function(o){if(\"background\"===o.type){var a=i(n);s=e.media[o.imageId],n.push({Id:a,Type:h.Image,Target:\"../media/\".concat(s.name,\".\").concat(s.extension)}),t.background={rId:a},t.image=e.media[o.imageId]}else if(\"image\"===o.type){var c=t.drawing;s=e.media[o.imageId],c||(c=t.drawing={rId:i(n),name:\"drawing\".concat(++e.drawingsCount),anchors:[],rels:[]},e.drawings.push(c),n.push({Id:c.rId,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",Target:\"../drawings/\".concat(c.name,\".xml\")}));var f=r.preImageId===o.imageId?u[o.imageId]:u[c.rels.length];f||(f=i(c.rels),u[c.rels.length]=f,c.rels.push({Id:f,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",Target:\"../media/\".concat(s.name,\".\").concat(s.extension)}));var l={picture:{rId:f},range:o.range};if(o.hyperlinks&&o.hyperlinks.hyperlink){var d=i(c.rels);u[c.rels.length]=d,l.picture.hyperlinks={tooltip:o.hyperlinks.tooltip,rId:d},c.rels.push({Id:d,Type:h.Hyperlink,Target:o.hyperlinks.hyperlink,TargetMode:\"External\"})}r.preImageId=o.imageId,c.anchors.push(l)}})),t.tables.forEach((function(t){var r=i(n);t.rId=r,n.push({Id:r,Type:h.Table,Target:\"../tables/\".concat(t.target)}),t.columns.forEach((function(t){var r=t.style;r&&(t.dxfId=e.styles.addDxfStyle(r))}))})),this.map.extLst.prepare(t,e)}},{key:\"render\",value:function(t,e){t.openXml(l.StdDocAttributes),t.openNode(\"worksheet\",u.WORKSHEET_ATTRIBUTES);var r=e.properties?{defaultRowHeight:e.properties.defaultRowHeight,dyDescent:e.properties.dyDescent,outlineLevelCol:e.properties.outlineLevelCol,outlineLevelRow:e.properties.outlineLevelRow}:void 0;e.properties&&e.properties.defaultColWidth&&(r.defaultColWidth=e.properties.defaultColWidth);var n={outlineProperties:e.properties&&e.properties.outlineProperties,tabColor:e.properties&&e.properties.tabColor,pageSetup:e.pageSetup&&e.pageSetup.fitToPage?{fitToPage:e.pageSetup.fitToPage}:void 0},i=e.pageSetup&&e.pageSetup.margins,o={showRowColHeaders:e.pageSetup&&e.pageSetup.showRowColHeaders,showGridLines:e.pageSetup&&e.pageSetup.showGridLines,horizontalCentered:e.pageSetup&&e.pageSetup.horizontalCentered,verticalCentered:e.pageSetup&&e.pageSetup.verticalCentered},a=e.sheetProtection;this.map.sheetPr.render(t,n),this.map.dimension.render(t,e.dimensions),this.map.sheetViews.render(t,e.views),this.map.sheetFormatPr.render(t,r),this.map.cols.render(t,e.cols),this.map.sheetData.render(t,e.rows),this.map.sheetProtection.render(t,a),this.map.autoFilter.render(t,e.autoFilter),this.map.mergeCells.render(t,e.mergeCells),this.map.conditionalFormatting.render(t,e.conditionalFormattings),this.map.dataValidations.render(t,e.dataValidations),this.map.hyperlinks.render(t,e.hyperlinks),this.map.printOptions.render(t,o),this.map.pageMargins.render(t,i),this.map.pageSetup.render(t,e.pageSetup),this.map.headerFooter.render(t,e.headerFooter),this.map.rowBreaks.render(t,e.rowBreaks),this.map.drawing.render(t,e.drawing),this.map.picture.render(t,e.background),this.map.tableParts.render(t,e.tables),this.map.extLst.render(t,e),e.rels&&e.rels.forEach((function(e){e.Type===h.VmlDrawing&&t.leafNode(\"legacyDrawing\",{\"r:id\":e.Id})})),t.closeNode()}},{key:\"parseOpen\",value:function(t){return this.parser?(this.parser.parseOpen(t),!0):\"worksheet\"===t.name?(c.each(this.map,(function(t){t.reset()})),!0):(this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t),!0)}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case\"worksheet\":var e=this.map.sheetFormatPr.model||{};this.map.sheetPr.model&&this.map.sheetPr.model.tabColor&&(e.tabColor=this.map.sheetPr.model.tabColor),this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties&&(e.outlineProperties=this.map.sheetPr.model.outlineProperties);var r={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||!1,margins:this.map.pageMargins.model},n=Object.assign(r,this.map.pageSetup.model,this.map.printOptions.model),i=B(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model[\"x14:conditionalFormattings\"]);return this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:e,views:this.map.sheetViews.model,pageSetup:n,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:i},this.map.autoFilter.model&&(this.model.autoFilter=this.map.autoFilter.model),this.map.sheetProtection.model&&(this.model.sheetProtection=this.map.sheetProtection.model),!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){var r=(t.relationships||[]).reduce((function(r,n){if(r[n.Id]=n,n.Type===h.Comments&&(t.comments=e.comments[n.Target].comments),n.Type===h.VmlDrawing&&t.comments&&t.comments.length){var i=e.vmlDrawings[n.Target].comments;t.comments.forEach((function(t,e){t.note=Object.assign({},t.note,i[e])}))}return r}),{});if(e.commentsMap=(t.comments||[]).reduce((function(t,e){return e.ref&&(t[e.ref]=e),t}),{}),e.hyperlinkMap=(t.hyperlinks||[]).reduce((function(t,e){return e.rId&&(t[e.address]=r[e.rId].Target),t}),{}),e.formulae={},t.rows=t.rows&&t.rows.filter(Boolean)||[],t.rows.forEach((function(t){t.cells=t.cells&&t.cells.filter(Boolean)||[]})),this.map.cols.reconcile(t.cols,e),this.map.sheetData.reconcile(t.rows,e),this.map.conditionalFormatting.reconcile(t.conditionalFormattings,e),t.media=[],t.drawing){var n=r[t.drawing.rId].Target.match(/\\/drawings\\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(n){var i=n[1];e.drawings[i].anchors.forEach((function(e){if(e.medium){var r={type:\"image\",imageId:e.medium.index,range:e.range,hyperlinks:e.picture.hyperlinks};t.media.push(r)}}))}}var o=t.background&&r[t.background.rId];if(o){var a=o.Target.split(\"/media/\")[1],s=e.mediaIndex&&e.mediaIndex[a];void 0!==s&&t.media.push({type:\"background\",imageId:s})}t.tables=(t.tables||[]).map((function(t){var n=r[t.rId];return e.tables[n.Target]})),delete t.relationships,delete t.hyperlinks,delete t.comments}}])&&i(e.prototype,r),n&&i(e,n),u}(p);F.WORKSHEET_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x14ac\",\"xmlns:x14ac\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\"},e.exports=F},{\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":25,\"../../../utils/xml-stream\":27,\"../../rel-type\":30,\"../base-xform\":31,\"../list-xform\":70,\"./auto-filter-xform\":71,\"./cf/conditional-formattings-xform\":86,\"./col-xform\":91,\"./data-validations-xform\":92,\"./dimension-xform\":93,\"./drawing-xform\":94,\"./ext-lst-xform\":95,\"./header-footer-xform\":96,\"./hyperlink-xform\":97,\"./merge-cell-xform\":98,\"./merges\":99,\"./page-margins-xform\":102,\"./page-setup-xform\":104,\"./picture-xform\":105,\"./print-options-xform\":106,\"./row-breaks-xform\":107,\"./row-xform\":108,\"./sheet-format-properties-xform\":109,\"./sheet-properties-xform\":110,\"./sheet-protection-xform\":111,\"./sheet-view-xform\":112,\"./table-part-xform\":113}],115:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.attr=t.attr,e}return e=u,(r=[{key:\"render\",value:function(t,e){e&&(t.openNode(this.tag),t.closeNode())}},{key:\"parseOpen\",value:function(t){t.name===this.tag&&(this.model=!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=c},{\"../base-xform\":31}],116:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.attr=t.attr,e.attrs=t.attrs,e._format=t.format||function(t){try{return Number.isNaN(t.getTime())?\"\":t.toISOString()}catch(t){return\"\"}},e._parse=t.parse||function(t){return new Date(t)},e}return e=u,(r=[{key:\"render\",value:function(t,e){e&&(t.openNode(this.tag),this.attrs&&t.addAttributes(this.attrs),this.attr?t.addAttribute(this.attr,this._format(e)):t.writeText(this._format(e)),t.closeNode())}},{key:\"parseOpen\",value:function(t){t.name===this.tag&&(this.attr?this.model=this._parse(t.attributes[this.attr]):this.text=[])}},{key:\"parseText\",value:function(t){this.attr||this.text.push(t)}},{key:\"parseClose\",value:function(){return this.attr||(this.model=this._parse(this.text.join(\"\"))),!1}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=c},{\"../base-xform\":31}],117:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.attr=t.attr,e.attrs=t.attrs,e.zero=t.zero,e}return e=u,(r=[{key:\"render\",value:function(t,e){(e||this.zero)&&(t.openNode(this.tag),this.attrs&&t.addAttributes(this.attrs),this.attr?t.addAttribute(this.attr,e):t.writeText(e),t.closeNode())}},{key:\"parseOpen\",value:function(t){return t.name===this.tag&&(this.attr?this.model=parseInt(t.attributes[this.attr],10):this.text=[],!0)}},{key:\"parseText\",value:function(t){this.attr||this.text.push(t)}},{key:\"parseClose\",value:function(){return this.attr||(this.model=parseInt(this.text.join(\"\")||0,10)),!1}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=c},{\"../base-xform\":31}],118:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).tag=t.tag,e.attr=t.attr,e.attrs=t.attrs,e}return e=u,(r=[{key:\"render\",value:function(t,e){void 0!==e&&(t.openNode(this.tag),this.attrs&&t.addAttributes(this.attrs),this.attr?t.addAttribute(this.attr,e):t.writeText(e),t.closeNode())}},{key:\"parseOpen\",value:function(t){t.name===this.tag&&(this.attr?this.model=t.attributes[this.attr]:this.text=[])}},{key:\"parseText\",value:function(t){this.attr||this.text.push(t)}},{key:\"parseClose\",value:function(){return this.attr||(this.model=this.text.join(\"\")),!1}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=c},{\"../base-xform\":31}],119:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./base-xform\"),f=t(\"../../utils/xml-stream\");var l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this))._model=t,e}return e=u,(r=[{key:\"render\",value:function(t){if(!this._xml){var e=new f;!function t(e,r){e.openNode(r.tag,r.$),r.c&&r.c.forEach((function(r){t(e,r)})),r.t&&e.writeText(r.t),e.closeNode()}(e,this._model),this._xml=e.xml}t.writeXml(this._xml)}},{key:\"parseOpen\",value:function(){return!0}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){switch(t){case this._model.tag:return!1;default:return!0}}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../../utils/xml-stream\":27,\"./base-xform\":31}],120:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./text-xform\"),f=t(\"./rich-text-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={r:new f,t:new c},t}return e=u,(r=[{key:\"render\",value:function(t,e){if(t.openNode(this.tag,{sb:e.sb||0,eb:e.eb||0}),e&&e.hasOwnProperty(\"richText\")&&e.richText){var r=this.map.r;e.richText.forEach((function(e){r.render(t,e)}))}else e&&this.map.t.render(t,e.text);t.closeNode()}},{key:\"parseOpen\",value:function(t){var e=t.name;return this.parser?(this.parser.parseOpen(t),!0):e===this.tag?(this.model={sb:parseInt(t.attributes.sb,10),eb:parseInt(t.attributes.eb,10)},!0):(this.parser=this.map[e],!!this.parser&&(this.parser.parseOpen(t),!0))}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser){if(!this.parser.parseClose(t)){switch(t){case\"r\":var e=this.model.richText;e||(e=this.model.richText=[]),e.push(this.parser.model);break;case\"t\":this.model.text=this.parser.model}this.parser=void 0}return!0}switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"rPh\"}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=l},{\"../base-xform\":31,\"./rich-text-xform\":121,\"./text-xform\":124}],121:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./text-xform\"),f=t(\"../style/font-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).model=t,e}return e=u,(r=[{key:\"render\",value:function(t,e){e=e||this.model,t.openNode(\"r\"),e.font&&this.fontXform.render(t,e.font),this.textXform.render(t,e.text),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"r\":return this.model={},!0;case\"t\":return this.parser=this.textXform,this.parser.parseOpen(t),!0;case\"rPr\":return this.parser=this.fontXform,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){switch(t){case\"r\":return!1;case\"t\":return this.model.text=this.parser.model,this.parser=void 0,!0;case\"rPr\":return this.model.font=this.parser.model,this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(t),!0}}},{key:\"tag\",get:function(){return\"r\"}},{key:\"textXform\",get:function(){return this._textXform||(this._textXform=new c)}},{key:\"fontXform\",get:function(){return this._fontXform||(this._fontXform=new f(u.FONT_OPTIONS))}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));l.FONT_OPTIONS={tagName:\"rPr\",fontNameTag:\"rFont\"},e.exports=l},{\"../base-xform\":31,\"../style/font-xform\":130,\"./text-xform\":124}],122:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./text-xform\"),f=t(\"./rich-text-xform\"),l=t(\"./phonetic-text-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).model=t,e.map={r:new f,t:new c,rPh:new l},e}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this;t.openNode(this.tag),e&&e.hasOwnProperty(\"richText\")&&e.richText?e.richText.length?e.richText.forEach((function(e){r.map.r.render(t,e)})):this.map.t.render(t,\"\"):null!=e&&this.map.t.render(t,e),t.closeNode()}},{key:\"parseOpen\",value:function(t){var e=t.name;return this.parser?(this.parser.parseOpen(t),!0):e===this.tag?(this.model={},!0):(this.parser=this.map[e],!!this.parser&&(this.parser.parseOpen(t),!0))}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser){if(!this.parser.parseClose(t)){switch(t){case\"r\":var e=this.model.richText;e||(e=this.model.richText=[]),e.push(this.parser.model);break;case\"t\":this.model=this.parser.model}this.parser=void 0}return!0}switch(t){case this.tag:return!1;default:return!0}}},{key:\"tag\",get:function(){return\"si\"}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=h},{\"../base-xform\":31,\"./phonetic-text-xform\":120,\"./rich-text-xform\":121,\"./text-xform\":124}],123:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/xml-stream\"),f=t(\"../base-xform\"),l=t(\"./shared-string-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).model=t||{values:[],count:0},e.hash=Object.create(null),e.rich=Object.create(null),e}return e=u,(r=[{key:\"getString\",value:function(t){return this.model.values[t]}},{key:\"add\",value:function(t){return t.richText?this.addRichText(t):this.addText(t)}},{key:\"addText\",value:function(t){var e=this.hash[t];return void 0===e&&(e=this.hash[t]=this.model.values.length,this.model.values.push(t)),this.model.count++,e}},{key:\"addRichText\",value:function(t){var e=this.sharedStringXform.toXml(t),r=this.rich[e];return void 0===r&&(r=this.rich[e]=this.model.values.length,this.model.values.push(t)),this.model.count++,r}},{key:\"render\",value:function(t,e){e=e||this._values,t.openXml(c.StdDocAttributes),t.openNode(\"sst\",{xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",count:e.count,uniqueCount:e.values.length});var r=this.sharedStringXform;e.values.forEach((function(e){r.render(t,e)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"sst\":return!0;case\"si\":return this.parser=this.sharedStringXform,this.parser.parseOpen(t),!0;default:throw new Error(\"Unexpected xml node in parseOpen: \".concat(JSON.stringify(t)))}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.model.values.push(this.parser.model),this.model.count++,this.parser=void 0),!0;switch(t){case\"sst\":return!1;default:throw new Error(\"Unexpected xml node in parseClose: \".concat(t))}}},{key:\"sharedStringXform\",get:function(){return this._sharedStringXform||(this._sharedStringXform=new l)}},{key:\"values\",get:function(){return this.model.values}},{key:\"uniqueCount\",get:function(){return this.model.values.length}},{key:\"count\",get:function(){return this.model.count}}])&&i(e.prototype,r),n&&i(e,n),u}(f);e.exports=h},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"./shared-string-xform\":122}],124:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.openNode(\"t\"),/^\\s|\\n|\\s$/.test(e)&&t.addAttribute(\"xml:space\",\"preserve\"),t.writeText(e),t.closeNode()}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"t\":return this._text=[],!0;default:return!1}}},{key:\"parseText\",value:function(t){this._text.push(t)}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"t\"}},{key:\"model\",get:function(){return this._text.join(\"\").replace(/_x([0-9A-F]{4})_/g,(function(t,e){return String.fromCharCode(parseInt(e,16))}))}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],125:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../../../doc/enums\"),l=t(\"../../../utils/utils\"),h=t(\"../base-xform\"),d={horizontalValues:[\"left\",\"center\",\"right\",\"fill\",\"centerContinuous\",\"distributed\",\"justify\"].reduce((function(t,e){return t[e]=!0,t}),{}),horizontal:function(t){return this.horizontalValues[t]?t:void 0},verticalValues:[\"top\",\"middle\",\"bottom\",\"distributed\",\"justify\"].reduce((function(t,e){return t[e]=!0,t}),{}),vertical:function(t){return\"middle\"===t?\"center\":this.verticalValues[t]?t:void 0},wrapText:function(t){return!!t||void 0},shrinkToFit:function(t){return!!t||void 0},textRotation:function(t){switch(t){case\"vertical\":return t;default:return(t=l.validInt(t))>=-90&&t<=90?t:void 0}},indent:function(t){return t=l.validInt(t),Math.max(0,t)},readingOrder:function(t){switch(t){case\"ltr\":return f.ReadingOrder.LeftToRight;case\"rtl\":return f.ReadingOrder.RightToLeft;default:return}}},p=function(t){if(t=d.textRotation(t)){if(\"vertical\"===t)return 255;var e=Math.round(t);if(e>=0&&e<=90)return e;if(e<0&&e>=-90)return 90-e}},m=function(t){var e=l.validInt(t);if(void 0!==e){if(255===e)return\"vertical\";if(e>=0&&e<=90)return e;if(e>90&&e<=180)return 90-e}},y=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.addRollback(),t.openNode(\"alignment\");var r=!1;function n(e,n){n&&(t.addAttribute(e,n),r=!0)}n(\"horizontal\",d.horizontal(e.horizontal)),n(\"vertical\",d.vertical(e.vertical)),n(\"wrapText\",!!d.wrapText(e.wrapText)&&\"1\"),n(\"shrinkToFit\",!!d.shrinkToFit(e.shrinkToFit)&&\"1\"),n(\"indent\",d.indent(e.indent)),n(\"textRotation\",p(e.textRotation)),n(\"readingOrder\",d.readingOrder(e.readingOrder)),t.closeNode(),r?t.commit():t.rollback()}},{key:\"parseOpen\",value:function(t){var e={},r=!1;function n(t,n,i){t&&(e[n]=i,r=!0)}n(t.attributes.horizontal,\"horizontal\",t.attributes.horizontal),n(t.attributes.vertical,\"vertical\",\"center\"===t.attributes.vertical?\"middle\":t.attributes.vertical),n(t.attributes.wrapText,\"wrapText\",!!t.attributes.wrapText),n(t.attributes.shrinkToFit,\"shrinkToFit\",!!t.attributes.shrinkToFit),n(t.attributes.indent,\"indent\",parseInt(t.attributes.indent,10)),n(t.attributes.textRotation,\"textRotation\",m(t.attributes.textRotation)),n(t.attributes.readingOrder,\"readingOrder\",\"2\"===t.attributes.readingOrder?\"rtl\":\"ltr\"),this.model=r?e:null}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"alignment\"}}])&&o(e.prototype,r),n&&o(e,n),c}(h);e.exports=y},{\"../../../doc/enums\":7,\"../../../utils/utils\":26,\"../base-xform\":31}],126:[function(t,e,r){\"use strict\";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function o(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t){return(a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function c(t,e,r){return e&&u(t.prototype,e),r&&u(t,r),t}function f(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var i=p(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return d(this,r)}}function d(t,e){return!e||\"object\"!==a(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var m=t(\"../base-xform\"),y=t(\"./color-xform\"),b=function(t){f(r,t);var e=h(r);function r(t){var n;return s(this,r),(n=e.call(this)).name=t,n.map={color:new y},n}return c(r,[{key:\"render\",value:function(t,e,r){var n=e&&e.color||r||this.defaultColor;t.openNode(this.name),e&&e.style&&(t.addAttribute(\"style\",e.style),n&&this.map.color.render(t,n)),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.name:var e=t.attributes.style;return this.model=e?{style:e}:void 0,!0;case\"color\":return this.parser=this.map.color,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return this.parser?(this.parser.parseClose(t)||(this.parser=void 0),!0):(t===this.name&&this.map.color.model&&(this.model||(this.model={}),this.model.color=this.map.color.model),!1)}},{key:\"validStyle\",value:function(t){return r.validStyleValues[t]}},{key:\"tag\",get:function(){return this.name}}]),r}(m);b.validStyleValues=[\"thin\",\"dotted\",\"dashDot\",\"hair\",\"dashDotDot\",\"slantDashDot\",\"mediumDashed\",\"mediumDashDotDot\",\"mediumDashDot\",\"medium\",\"double\",\"thick\"].reduce((function(t,e){return t[e]=!0,t}),{});var v=function(t){f(r,t);var e=h(r);function r(){var t;return s(this,r),(t=e.call(this)).map={top:new b(\"top\"),left:new b(\"left\"),bottom:new b(\"bottom\"),right:new b(\"right\"),diagonal:new b(\"diagonal\")},t}return c(r,[{key:\"render\",value:function(t,e){var r=e.color;function n(n,o){n&&!n.color&&e.color&&(n=i(i({},n),{},{color:e.color})),o.render(t,n,r)}t.openNode(\"border\"),e.diagonal&&e.diagonal.style&&(e.diagonal.up&&t.addAttribute(\"diagonalUp\",\"1\"),e.diagonal.down&&t.addAttribute(\"diagonalDown\",\"1\")),n(e.left,this.map.left),n(e.right,this.map.right),n(e.top,this.map.top),n(e.bottom,this.map.bottom),n(e.diagonal,this.map.diagonal),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"border\":return this.reset(),this.diagonalUp=!!t.attributes.diagonalUp,this.diagonalDown=!!t.attributes.diagonalDown,!0;default:return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;if(\"border\"===t){var e=this.model={},r=function(t,r,n){r&&(n&&Object.assign(r,n),e[t]=r)};r(\"left\",this.map.left.model),r(\"right\",this.map.right.model),r(\"top\",this.map.top.model),r(\"bottom\",this.map.bottom.model),r(\"diagonal\",this.map.diagonal.model,{up:this.diagonalUp,down:this.diagonalDown})}return!1}}]),r}(m);e.exports=v},{\"../base-xform\":31,\"./color-xform\":127}],127:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).name=t||\"color\",e}return e=u,(r=[{key:\"render\",value:function(t,e){return!!e&&(t.openNode(this.name),e.argb?t.addAttribute(\"rgb\",e.argb):void 0!==e.theme?(t.addAttribute(\"theme\",e.theme),void 0!==e.tint&&t.addAttribute(\"tint\",e.tint)):void 0!==e.indexed?t.addAttribute(\"indexed\",e.indexed):t.addAttribute(\"auto\",\"1\"),t.closeNode(),!0)}},{key:\"parseOpen\",value:function(t){return t.name===this.name&&(t.attributes.rgb?this.model={argb:t.attributes.rgb}:t.attributes.theme?(this.model={theme:parseInt(t.attributes.theme,10)},t.attributes.tint&&(this.model.tint=parseFloat(t.attributes.tint))):t.attributes.indexed?this.model={indexed:parseInt(t.attributes.indexed,10)}:this.model=void 0,!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return this.name}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));e.exports=c},{\"../base-xform\":31}],128:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./alignment-xform\"),l=t(\"./border-xform\"),h=t(\"./fill-xform\"),d=t(\"./font-xform\"),p=t(\"./numfmt-xform\"),m=t(\"./protection-xform\"),y=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={alignment:new f,border:new l,fill:new h,font:new d,numFmt:new p,protection:new m},t}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(this.tag),e.font&&this.map.font.render(t,e.font),e.numFmt&&this.map.numFmt.render(t,e.numFmt),e.fill&&this.map.fill.render(t,e.fill),e.alignment&&this.map.alignment.render(t,e.alignment),e.border&&this.map.border.render(t,e.border),e.protection&&this.map.protection.render(t,e.protection),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:return this.reset(),!0;default:return this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t),!0}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return this.parser?(this.parser.parseClose(t)||(this.parser=void 0),!0):t!==this.tag||(this.model={alignment:this.map.alignment.model,border:this.map.border.model,fill:this.map.fill.model,font:this.map.font.model,numFmt:this.map.numFmt.model,protection:this.map.protection.model},!1)}},{key:\"tag\",get:function(){return\"dxf\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=y},{\"../base-xform\":31,\"./alignment-xform\":125,\"./border-xform\":126,\"./fill-xform\":129,\"./font-xform\":130,\"./numfmt-xform\":131,\"./protection-xform\":132}],129:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),t}function s(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../base-xform\"),d=t(\"./color-xform\"),p=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={color:new d},t}return a(r,[{key:\"render\",value:function(t,e){t.openNode(\"stop\"),t.addAttribute(\"position\",e.position),this.map.color.render(t,e.color),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"stop\":return this.model={position:parseFloat(t.attributes.position)},!0;case\"color\":return this.parser=this.map.color,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(t){return!!this.parser&&(this.parser.parseClose(t)||(this.model.color=this.parser.model,this.parser=void 0),!0)}},{key:\"tag\",get:function(){return\"stop\"}}]),r}(h),m=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={fgColor:new d(\"fgColor\"),bgColor:new d(\"bgColor\")},t}return a(r,[{key:\"render\",value:function(t,e){t.openNode(\"patternFill\"),t.addAttribute(\"patternType\",e.pattern),e.fgColor&&this.map.fgColor.render(t,e.fgColor),e.bgColor&&this.map.bgColor.render(t,e.bgColor),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"patternFill\":return this.model={type:\"pattern\",pattern:t.attributes.patternType},!0;default:return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return!!this.parser&&(this.parser.parseClose(t)||(this.parser.model&&(this.model[t]=this.parser.model),this.parser=void 0),!0)}},{key:\"name\",get:function(){return\"pattern\"}},{key:\"tag\",get:function(){return\"patternFill\"}}]),r}(h),y=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={stop:new p},t}return a(r,[{key:\"render\",value:function(t,e){switch(t.openNode(\"gradientFill\"),e.gradient){case\"angle\":t.addAttribute(\"degree\",e.degree);break;case\"path\":t.addAttribute(\"type\",\"path\"),e.center.left&&(t.addAttribute(\"left\",e.center.left),void 0===e.center.right&&t.addAttribute(\"right\",e.center.left)),e.center.right&&t.addAttribute(\"right\",e.center.right),e.center.top&&(t.addAttribute(\"top\",e.center.top),void 0===e.center.bottom&&t.addAttribute(\"bottom\",e.center.top)),e.center.bottom&&t.addAttribute(\"bottom\",e.center.bottom)}var r=this.map.stop;e.stops.forEach((function(e){r.render(t,e)})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"gradientFill\":var e=this.model={stops:[]};return t.attributes.degree?(e.gradient=\"angle\",e.degree=parseInt(t.attributes.degree,10)):\"path\"===t.attributes.type&&(e.gradient=\"path\",e.center={left:t.attributes.left?parseFloat(t.attributes.left):0,top:t.attributes.top?parseFloat(t.attributes.top):0},t.attributes.right!==t.attributes.left&&(e.center.right=t.attributes.right?parseFloat(t.attributes.right):0),t.attributes.bottom!==t.attributes.top&&(e.center.bottom=t.attributes.bottom?parseFloat(t.attributes.bottom):0)),!0;case\"stop\":return this.parser=this.map.stop,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return!!this.parser&&(this.parser.parseClose(t)||(this.model.stops.push(this.parser.model),this.parser=void 0),!0)}},{key:\"name\",get:function(){return\"gradient\"}},{key:\"tag\",get:function(){return\"gradientFill\"}}]),r}(h),b=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).map={patternFill:new m,gradientFill:new y},t}return a(r,[{key:\"render\",value:function(t,e){switch(t.addRollback(),t.openNode(\"fill\"),e.type){case\"pattern\":this.map.patternFill.render(t,e);break;case\"gradient\":this.map.gradientFill.render(t,e);break;default:return void t.rollback()}t.closeNode(),t.commit()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"fill\":return this.model={},!0;default:return this.parser=this.map[t.name],!!this.parser&&(this.parser.parseOpen(t),!0)}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return!!this.parser&&(this.parser.parseClose(t)||(this.model=this.parser.model,this.model.type=this.parser.name,this.parser=void 0),!0)}},{key:\"validStyle\",value:function(t){return r.validPatternValues[t]}},{key:\"tag\",get:function(){return\"fill\"}}]),r}(h);b.validPatternValues=[\"none\",\"solid\",\"darkVertical\",\"darkGray\",\"mediumGray\",\"lightGray\",\"gray125\",\"gray0625\",\"darkHorizontal\",\"darkVertical\",\"darkDown\",\"darkUp\",\"darkGrid\",\"darkTrellis\",\"lightHorizontal\",\"lightVertical\",\"lightDown\",\"lightUp\",\"lightGrid\",\"lightTrellis\",\"lightGrid\"].reduce((function(t,e){return t[e]=!0,t}),{}),b.StopXform=p,b.PatternFillXform=m,b.GradientFillXform=y,e.exports=b},{\"../base-xform\":31,\"./color-xform\":127}],130:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"./color-xform\"),f=t(\"../simple/boolean-xform\"),l=t(\"../simple/integer-xform\"),h=t(\"../simple/string-xform\"),d=t(\"./underline-xform\"),p=t(\"../../../utils/under-dash\"),m=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).options=t||u.OPTIONS,e.map={b:{prop:\"bold\",xform:new f({tag:\"b\",attr:\"val\"})},i:{prop:\"italic\",xform:new f({tag:\"i\",attr:\"val\"})},u:{prop:\"underline\",xform:new d},charset:{prop:\"charset\",xform:new l({tag:\"charset\",attr:\"val\"})},color:{prop:\"color\",xform:new c},condense:{prop:\"condense\",xform:new f({tag:\"condense\",attr:\"val\"})},extend:{prop:\"extend\",xform:new f({tag:\"extend\",attr:\"val\"})},family:{prop:\"family\",xform:new l({tag:\"family\",attr:\"val\"})},outline:{prop:\"outline\",xform:new f({tag:\"outline\",attr:\"val\"})},vertAlign:{prop:\"vertAlign\",xform:new h({tag:\"vertAlign\",attr:\"val\"})},scheme:{prop:\"scheme\",xform:new h({tag:\"scheme\",attr:\"val\"})},shadow:{prop:\"shadow\",xform:new f({tag:\"shadow\",attr:\"val\"})},strike:{prop:\"strike\",xform:new f({tag:\"strike\",attr:\"val\"})},sz:{prop:\"size\",xform:new l({tag:\"sz\",attr:\"val\"})}},e.map[e.options.fontNameTag]={prop:\"name\",xform:new h({tag:e.options.fontNameTag,attr:\"val\"})},e}return e=u,(r=[{key:\"render\",value:function(t,e){var r=this.map;t.openNode(this.options.tagName),p.each(this.map,(function(n,i){r[i].xform.render(t,e[n.prop])})),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;if(this.map[t.name])return this.parser=this.map[t.name].xform,this.parser.parseOpen(t);switch(t.name){case this.options.tagName:return this.model={},!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser&&!this.parser.parseClose(t)){var e=this.map[t];return this.parser.model&&(this.model[e.prop]=this.parser.model),this.parser=void 0,!0}switch(t){case this.options.tagName:return!1;default:return!0}}},{key:\"tag\",get:function(){return this.options.tagName}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));m.OPTIONS={tagName:\"font\",fontNameTag:\"name\"},e.exports=m},{\"../../../utils/under-dash\":25,\"../base-xform\":31,\"../simple/boolean-xform\":115,\"../simple/integer-xform\":117,\"../simple/string-xform\":118,\"./color-xform\":127,\"./underline-xform\":135}],131:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../../../utils/under-dash\"),f=t(\"../../defaultnumformats\"),l=t(\"../base-xform\");var h,d=(h={},c.each(f,(function(t,e){t.f&&(h[t.f]=parseInt(e,10))})),h),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t,e){var r;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(r=s.call(this)).id=t,r.formatCode=e,r}return e=u,(r=[{key:\"render\",value:function(t,e){t.leafNode(\"numFmt\",{numFmtId:e.id,formatCode:e.formatCode})}},{key:\"parseOpen\",value:function(t){switch(t.name){case\"numFmt\":return this.model={id:parseInt(t.attributes.numFmtId,10),formatCode:t.attributes.formatCode.replace(/[\\\\](.)/g,\"$1\")},!0;default:return!1}}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"numFmt\"}}])&&i(e.prototype,r),n&&i(e,n),u}(l);p.getDefaultFmtId=function(t){return d[t]},p.getDefaultFmtCode=function(t){return f[t]&&f[t].f},e.exports=p},{\"../../../utils/under-dash\":25,\"../../defaultnumformats\":29,\"../base-xform\":31}],132:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=t(\"../base-xform\"),l=function(t,e){return void 0===t?e:t},h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){t.addRollback(),t.openNode(\"protection\");var r=!1;function n(e,n){void 0!==n&&(t.addAttribute(e,n),r=!0)}n(\"locked\",l(e.locked,!0)?void 0:\"0\"),n(\"hidden\",l(e.hidden,!1)?\"1\":void 0),t.closeNode(),r?t.commit():t.rollback()}},{key:\"parseOpen\",value:function(t){var e={locked:!(\"0\"===t.attributes.locked),hidden:\"1\"===t.attributes.hidden},r=!e.locked||e.hidden;this.model=r?e:null}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"protection\"}}])&&o(e.prototype,r),n&&o(e,n),c}(f);e.exports=h},{\"../base-xform\":31}],133:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./alignment-xform\"),l=t(\"./protection-xform\"),h=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).xfId=!(!t||!t.xfId),e.map={alignment:new f,protection:new l},e}return e=u,(r=[{key:\"render\",value:function(t,e){t.openNode(\"xf\",{numFmtId:e.numFmtId||0,fontId:e.fontId||0,fillId:e.fillId||0,borderId:e.borderId||0}),this.xfId&&t.addAttribute(\"xfId\",e.xfId||0),e.numFmtId&&t.addAttribute(\"applyNumberFormat\",\"1\"),e.fontId&&t.addAttribute(\"applyFont\",\"1\"),e.fillId&&t.addAttribute(\"applyFill\",\"1\"),e.borderId&&t.addAttribute(\"applyBorder\",\"1\"),e.alignment&&t.addAttribute(\"applyAlignment\",\"1\"),e.protection&&t.addAttribute(\"applyProtection\",\"1\"),e.alignment&&this.map.alignment.render(t,e.alignment),e.protection&&this.map.protection.render(t,e.protection),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"xf\":return this.model={numFmtId:parseInt(t.attributes.numFmtId,10),fontId:parseInt(t.attributes.fontId,10),fillId:parseInt(t.attributes.fillId,10),borderId:parseInt(t.attributes.borderId,10)},this.xfId&&(this.model.xfId=parseInt(t.attributes.xfId,10)),!0;case\"alignment\":return this.parser=this.map.alignment,this.parser.parseOpen(t),!0;case\"protection\":return this.parser=this.map.protection,this.parser.parseOpen(t),!0;default:return!1}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){return this.parser?(this.parser.parseClose(t)||(this.map.protection===this.parser?this.model.protection=this.parser.model:this.model.alignment=this.parser.model,this.parser=void 0),!0):\"xf\"!==t}},{key:\"tag\",get:function(){return\"xf\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=h},{\"../base-xform\":31,\"./alignment-xform\":125,\"./protection-xform\":132}],134:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),t}function s(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../../../doc/enums\"),d=t(\"../../../utils/xml-stream\"),p=t(\"../base-xform\"),m=t(\"../static-xform\"),y=t(\"../list-xform\"),b=t(\"./font-xform\"),v=t(\"./fill-xform\"),g=t(\"./border-xform\"),w=t(\"./numfmt-xform\"),_=t(\"./style-xform\"),k=t(\"./dxf-xform\"),x=function(t){s(r,t);var e=c(r);function r(t){var n;return i(this,r),(n=e.call(this)).map={numFmts:new y({tag:\"numFmts\",count:!0,childXform:new w}),fonts:new y({tag:\"fonts\",count:!0,childXform:new b,$:{\"x14ac:knownFonts\":1}}),fills:new y({tag:\"fills\",count:!0,childXform:new v}),borders:new y({tag:\"borders\",count:!0,childXform:new g}),cellStyleXfs:new y({tag:\"cellStyleXfs\",count:!0,childXform:new _}),cellXfs:new y({tag:\"cellXfs\",count:!0,childXform:new _({xfId:!0})}),dxfs:new y({tag:\"dxfs\",always:!0,count:!0,childXform:new k}),numFmt:new w,font:new b,fill:new v,border:new g,style:new _({xfId:!0}),cellStyles:r.STATIC_XFORMS.cellStyles,tableStyles:r.STATIC_XFORMS.tableStyles,extLst:r.STATIC_XFORMS.extLst},t&&n.init(),n}return a(r,[{key:\"initIndex\",value:function(){this.index={style:{},numFmt:{},numFmtNextId:164,font:{},border:{},fill:{}}}},{key:\"init\",value:function(){this.model={styles:[],numFmts:[],fonts:[],borders:[],fills:[],dxfs:[]},this.initIndex(),this._addBorder({}),this._addStyle({numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}),this._addFill({type:\"pattern\",pattern:\"none\"}),this._addFill({type:\"pattern\",pattern:\"gray125\"}),this.weakMap=new WeakMap}},{key:\"render\",value:function(t,e){e=e||this.model,t.openXml(d.StdDocAttributes),t.openNode(\"styleSheet\",r.STYLESHEET_ATTRIBUTES),this.index?(e.numFmts&&e.numFmts.length&&(t.openNode(\"numFmts\",{count:e.numFmts.length}),e.numFmts.forEach((function(e){t.writeXml(e)})),t.closeNode()),e.fonts.length||this._addFont({size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}),t.openNode(\"fonts\",{count:e.fonts.length,\"x14ac:knownFonts\":1}),e.fonts.forEach((function(e){t.writeXml(e)})),t.closeNode(),t.openNode(\"fills\",{count:e.fills.length}),e.fills.forEach((function(e){t.writeXml(e)})),t.closeNode(),t.openNode(\"borders\",{count:e.borders.length}),e.borders.forEach((function(e){t.writeXml(e)})),t.closeNode(),this.map.cellStyleXfs.render(t,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),t.openNode(\"cellXfs\",{count:e.styles.length}),e.styles.forEach((function(e){t.writeXml(e)})),t.closeNode()):(this.map.numFmts.render(t,e.numFmts),this.map.fonts.render(t,e.fonts),this.map.fills.render(t,e.fills),this.map.borders.render(t,e.borders),this.map.cellStyleXfs.render(t,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),this.map.cellXfs.render(t,e.styles)),r.STATIC_XFORMS.cellStyles.render(t),this.map.dxfs.render(t,e.dxfs),r.STATIC_XFORMS.tableStyles.render(t),r.STATIC_XFORMS.extLst.render(t),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case\"styleSheet\":return this.initIndex(),!0;default:return this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t),!0}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){var e=this;if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case\"styleSheet\":this.model={};var r=function(t,r){r.model&&r.model.length&&(e.model[t]=r.model)};if(r(\"numFmts\",this.map.numFmts),r(\"fonts\",this.map.fonts),r(\"fills\",this.map.fills),r(\"borders\",this.map.borders),r(\"styles\",this.map.cellXfs),r(\"dxfs\",this.map.dxfs),this.index={model:[],numFmt:[]},this.model.numFmts){var n=this.index.numFmt;this.model.numFmts.forEach((function(t){n[t.id]=t.formatCode}))}return!1;default:return!0}}},{key:\"addStyleModel\",value:function(t,e){if(!t)return 0;if(this.model.fonts.length||this._addFont({size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}),this.weakMap&&this.weakMap.has(t))return this.weakMap.get(t);var r={};if(e=e||h.ValueType.Number,t.numFmt)r.numFmtId=this._addNumFmtStr(t.numFmt);else switch(e){case h.ValueType.Number:r.numFmtId=this._addNumFmtStr(\"General\");break;case h.ValueType.Date:r.numFmtId=this._addNumFmtStr(\"mm-dd-yy\")}t.font&&(r.fontId=this._addFont(t.font)),t.border&&(r.borderId=this._addBorder(t.border)),t.fill&&(r.fillId=this._addFill(t.fill)),t.alignment&&(r.alignment=t.alignment),t.protection&&(r.protection=t.protection);var n=this._addStyle(r);return this.weakMap&&this.weakMap.set(t,n),n}},{key:\"getStyleModel\",value:function(t){var e=this.model.styles[t];if(!e)return null;var r=this.index.model[t];if(r)return r;if(r=this.index.model[t]={},e.numFmtId){var n=this.index.numFmt[e.numFmtId]||w.getDefaultFmtCode(e.numFmtId);n&&(r.numFmt=n)}function i(t,e,n){if(n||0===n){var i=e[n];i&&(r[t]=i)}}return i(\"font\",this.model.fonts,e.fontId),i(\"border\",this.model.borders,e.borderId),i(\"fill\",this.model.fills,e.fillId),e.alignment&&(r.alignment=e.alignment),e.protection&&(r.protection=e.protection),r}},{key:\"addDxfStyle\",value:function(t){return this.model.dxfs.push(t),this.model.dxfs.length-1}},{key:\"getDxfStyle\",value:function(t){return this.model.dxfs[t]}},{key:\"_addStyle\",value:function(t){var e=this.map.style.toXml(t),r=this.index.style[e];return void 0===r&&(r=this.index.style[e]=this.model.styles.length,this.model.styles.push(e)),r}},{key:\"_addNumFmtStr\",value:function(t){var e=w.getDefaultFmtId(t);if(void 0!==e)return e;if(void 0!==(e=this.index.numFmt[t]))return e;e=this.index.numFmt[t]=164+this.model.numFmts.length;var r=this.map.numFmt.toXml({id:e,formatCode:t});return this.model.numFmts.push(r),e}},{key:\"_addFont\",value:function(t){var e=this.map.font.toXml(t),r=this.index.font[e];return void 0===r&&(r=this.index.font[e]=this.model.fonts.length,this.model.fonts.push(e)),r}},{key:\"_addBorder\",value:function(t){var e=this.map.border.toXml(t),r=this.index.border[e];return void 0===r&&(r=this.index.border[e]=this.model.borders.length,this.model.borders.push(e)),r}},{key:\"_addFill\",value:function(t){var e=this.map.fill.toXml(t),r=this.index.fill[e];return void 0===r&&(r=this.index.fill[e]=this.model.fills.length,this.model.fills.push(e)),r}}]),r}(p);x.STYLESHEET_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x14ac x16r2\",\"xmlns:x14ac\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\",\"xmlns:x16r2\":\"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main\"},x.STATIC_XFORMS={cellStyles:new m({tag:\"cellStyles\",$:{count:1},c:[{tag:\"cellStyle\",$:{name:\"Normal\",xfId:0,builtinId:0}}]}),dxfs:new m({tag:\"dxfs\",$:{count:0}}),tableStyles:new m({tag:\"tableStyles\",$:{count:0,defaultTableStyle:\"TableStyleMedium2\",defaultPivotStyle:\"PivotStyleLight16\"}}),extLst:new m({tag:\"extLst\",c:[{tag:\"ext\",$:{uri:\"{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"},c:[{tag:\"x14:slicerStyles\",$:{defaultSlicerStyle:\"SlicerStyleLight1\"}}]},{tag:\"ext\",$:{uri:\"{9260A510-F301-46a8-8635-F512D64BE5F5}\",\"xmlns:x15\":\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"},c:[{tag:\"x15:timelineStyles\",$:{defaultTimelineStyle:\"TimeSlicerStyleLight1\"}}]}]})};var S=function(t){s(r,t);var e=c(r);function r(){var t;return i(this,r),(t=e.call(this)).model={styles:[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}],numFmts:[],fonts:[{size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}],borders:[{}],fills:[{type:\"pattern\",pattern:\"none\"},{type:\"pattern\",pattern:\"gray125\"}]},t}return a(r,[{key:\"parseStream\",value:function(t){return t.autodrain(),Promise.resolve()}},{key:\"addStyleModel\",value:function(t,e){switch(e){case h.ValueType.Date:return this.dateStyleId;default:return 0}}},{key:\"getStyleModel\",value:function(){return{}}},{key:\"dateStyleId\",get:function(){if(!this._dateStyleId){var t={numFmtId:w.getDefaultFmtId(\"mm-dd-yy\")};this._dateStyleId=this.model.styles.length,this.model.styles.push(t)}return this._dateStyleId}}]),r}(x);x.Mock=S,e.exports=x},{\"../../../doc/enums\":7,\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"../list-xform\":70,\"../static-xform\":119,\"./border-xform\":126,\"./dxf-xform\":128,\"./fill-xform\":129,\"./font-xform\":130,\"./numfmt-xform\":131,\"./style-xform\":133}],135:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=s.call(this)).model=t,e}return e=u,(r=[{key:\"render\",value:function(t,e){if(!0===(e=e||this.model))t.leafNode(\"u\");else{var r=u.Attributes[e];r&&t.leafNode(\"u\",r)}}},{key:\"parseOpen\",value:function(t){\"u\"===t.name&&(this.model=t.attributes.val||!0)}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"u\"}}])&&i(e.prototype,r),n&&i(e,n),u}(t(\"../base-xform\"));c.Attributes={single:{},double:{val:\"double\"},singleAccounting:{val:\"singleAccounting\"},doubleAccounting:{val:\"doubleAccounting\"}},e.exports=c},{\"../base-xform\":31}],136:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var c=t(\"../base-xform\"),f=t(\"./filter-column-xform\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(u,t);var e,r,n,s=a(u);function u(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(t=s.call(this)).map={filterColumn:new f},t}return e=u,(r=[{key:\"prepare\",value:function(t){var e=this;t.columns.forEach((function(t,r){e.map.filterColumn.prepare(t,{index:r})}))}},{key:\"render\",value:function(t,e){var r=this;return t.openNode(this.tag,{ref:e.autoFilterRef}),e.columns.forEach((function(e){r.map.filterColumn.render(t,e)})),t.closeNode(),!0}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;switch(t.name){case this.tag:return this.model={autoFilterRef:t.attributes.ref,columns:[]},!0;default:if(this.parser=this.map[t.name],this.parser)return this.parseOpen(t),!0;throw new Error(\"Unexpected xml node in parseOpen: \".concat(JSON.stringify(t)))}}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){if(this.parser)return this.parser.parseClose(t)||(this.model.columns.push(this.parser.model),this.parser=void 0),!0;switch(t){case this.tag:return!1;default:throw new Error(\"Unexpected xml node in parseClose: \".concat(t))}}},{key:\"tag\",get:function(){return\"autoFilter\"}}])&&i(e.prototype,r),n&&i(e,n),u}(c);e.exports=l},{\"../base-xform\":31,\"./filter-column-xform\":137}],137:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"prepare\",value:function(t,e){t.colId=e.index.toString()}},{key:\"render\",value:function(t,e){return t.leafNode(this.tag,{colId:e.colId,hiddenButton:e.filterButton?\"0\":\"1\"}),!0}},{key:\"parseOpen\",value:function(t){if(t.name===this.tag){var e=t.attributes;return this.model={filterButton:\"0\"===e.hiddenButton},!0}return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"filterColumn\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],138:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"prepare\",value:function(t,e){t.id=e.index+1}},{key:\"render\",value:function(t,e){return t.leafNode(this.tag,{id:e.id.toString(),name:e.name,totalsRowLabel:e.totalsRowLabel,totalsRowFunction:e.totalsRowFunction,dxfId:e.dxfId}),!0}},{key:\"parseOpen\",value:function(t){if(t.name===this.tag){var e=t.attributes;return this.model={name:e.name,totalsRowLabel:e.totalsRowLabel,totalsRowFunction:e.totalsRowFunction,dxfId:e.dxfId},!0}return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"tableColumn\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],139:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(c,t);var e,r,n,u=s(c);function c(){return i(this,c),u.apply(this,arguments)}return e=c,(r=[{key:\"render\",value:function(t,e){return t.leafNode(this.tag,{name:e.theme?e.theme:void 0,showFirstColumn:e.showFirstColumn?\"1\":\"0\",showLastColumn:e.showLastColumn?\"1\":\"0\",showRowStripes:e.showRowStripes?\"1\":\"0\",showColumnStripes:e.showColumnStripes?\"1\":\"0\"}),!0}},{key:\"parseOpen\",value:function(t){if(t.name===this.tag){var e=t.attributes;return this.model={theme:e.name?e.name:null,showFirstColumn:\"1\"===e.showFirstColumn,showLastColumn:\"1\"===e.showLastColumn,showRowStripes:\"1\"===e.showRowStripes,showColumnStripes:\"1\"===e.showColumnStripes},!0}return!1}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"tableStyleInfo\"}}])&&o(e.prototype,r),n&&o(e,n),c}(t(\"../base-xform\"));e.exports=f},{\"../base-xform\":31}],140:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?i(Object(r),!0).forEach((function(e){a(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h=t(\"../../../utils/xml-stream\"),d=t(\"../base-xform\"),p=t(\"../list-xform\"),m=t(\"./auto-filter-xform\"),y=t(\"./table-column-xform\"),b=t(\"./table-style-info-xform\"),v=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(a,t);var e,r,n,i=c(a);function a(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,a),(t=i.call(this)).map={autoFilter:new m,tableColumns:new p({tag:\"tableColumns\",count:!0,empty:!0,childXform:new y}),tableStyleInfo:new b},t}return e=a,(r=[{key:\"prepare\",value:function(t,e){this.map.autoFilter.prepare(t),this.map.tableColumns.prepare(t.columns,e)}},{key:\"render\",value:function(t,e){t.openXml(h.StdDocAttributes),t.openNode(this.tag,o(o({},a.TABLE_ATTRIBUTES),{},{id:e.id,name:e.name,displayName:e.displayName||e.name,ref:e.tableRef,totalsRowCount:e.totalsRow?\"1\":void 0,totalsRowShown:e.totalsRow?void 0:\"1\",headerRowCount:e.headerRow?\"1\":\"0\"})),this.map.autoFilter.render(t,e),this.map.tableColumns.render(t,e.columns),this.map.tableStyleInfo.render(t,e.style),t.closeNode()}},{key:\"parseOpen\",value:function(t){if(this.parser)return this.parser.parseOpen(t),!0;var e=t.name,r=t.attributes;switch(e){case this.tag:this.reset(),this.model={name:r.name,displayName:r.displayName||r.name,tableRef:r.ref,totalsRow:\"1\"===r.totalsRowCount,headerRow:\"1\"===r.headerRowCount};break;default:this.parser=this.map[t.name],this.parser&&this.parser.parseOpen(t)}return!0}},{key:\"parseText\",value:function(t){this.parser&&this.parser.parseText(t)}},{key:\"parseClose\",value:function(t){var e=this;if(this.parser)return this.parser.parseClose(t)||(this.parser=void 0),!0;switch(t){case this.tag:return this.model.columns=this.map.tableColumns.model,this.map.autoFilter.model&&(this.model.autoFilterRef=this.map.autoFilter.model.autoFilterRef,this.map.autoFilter.model.columns.forEach((function(t,r){e.model.columns[r].filterButton=t.filterButton}))),this.model.style=this.map.tableStyleInfo.model,!1;default:return!0}}},{key:\"reconcile\",value:function(t,e){t.columns.forEach((function(t){void 0!==t.dxfId&&(t.style=e.styles.getDxfStyle(t.dxfId))}))}},{key:\"tag\",get:function(){return\"table\"}}])&&s(e.prototype,r),n&&s(e,n),a}(d);v.TABLE_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"xr xr3\",\"xmlns:xr\":\"http://schemas.microsoft.com/office/spreadsheetml/2014/revision\",\"xmlns:xr3\":\"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3\"},e.exports=v},{\"../../../utils/xml-stream\":27,\"../base-xform\":31,\"../list-xform\":70,\"./auto-filter-xform\":136,\"./table-column-xform\":138,\"./table-style-info-xform\":139}],141:[function(t,e,r){(function(r,n){\"use strict\";function i(t,e,r,n,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function s(t){i(a,n,o,s,u,\"next\",t)}function u(t){i(a,n,o,s,u,\"throw\",t)}s(void 0)}))}}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t){var e;if(\"undefined\"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(e=t[Symbol.asyncIterator]))return e.call(t);if(Symbol.iterator&&null!=(e=t[Symbol.iterator]))return e.call(t)}throw new TypeError(\"Object is not async iterable\")}var u=t(\"fs\"),c=t(\"jszip\"),f=t(\"readable-stream\").PassThrough,l=t(\"../utils/zip-stream\"),h=t(\"../utils/stream-buf\"),d=t(\"../utils/utils\"),p=t(\"../utils/xml-stream\"),m=t(\"../utils/browser-buffer-decode\").bufferToString,y=t(\"./xform/style/styles-xform\"),b=t(\"./xform/core/core-xform\"),v=t(\"./xform/strings/shared-strings-xform\"),g=t(\"./xform/core/relationships-xform\"),w=t(\"./xform/core/content-types-xform\"),_=t(\"./xform/core/app-xform\"),k=t(\"./xform/book/workbook-xform\"),x=t(\"./xform/sheet/worksheet-xform\"),S=t(\"./xform/drawing/drawing-xform\"),O=t(\"./xform/table/table-xform\"),j=t(\"./xform/comment/comments-xform\"),E=t(\"./xform/comment/vml-notes-xform\"),R=t(\"./xml/theme1.js\");function T(t,e){return new Promise((function(r,n){u.readFile(t,e,(function(t,e){t?n(t):r(e)}))}))}var C=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.workbook=e}var e,i,C,P,M,A,I,N,D,B,F,L,z,U,H,V,q,W,$,X,K,Z,Y,G,J,Q,tt,et;return e=t,(i=[{key:\"readFile\",value:(et=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d.fs.exists(e);case 2:if(t.sent){t.next=4;break}throw new Error(\"File not found: \".concat(e));case 4:return n=u.createReadStream(e),t.prev=5,t.next=8,this.read(n,r);case 8:return i=t.sent,n.close(),t.abrupt(\"return\",i);case 13:throw t.prev=13,t.t0=t.catch(5),n.close(),t.t0;case 17:case\"end\":return t.stop()}}),t,this,[[5,13]])}))),function(t,e){return et.apply(this,arguments)})},{key:\"parseRels\",value:function(t){return(new g).parseStream(t)}},{key:\"parseWorkbook\",value:function(t){return(new k).parseStream(t)}},{key:\"parseSharedStrings\",value:function(t){return(new v).parseStream(t)}},{key:\"reconcile\",value:function(t,e){var r=new k,n=new x(e),i=new S,o=new O;r.reconcile(t);var a={media:t.media,mediaIndex:t.mediaIndex};Object.keys(t.drawings).forEach((function(e){var r=t.drawings[e],n=t.drawingRels[e];n&&(a.rels=n.reduce((function(t,e){return t[e.Id]=e,t}),{}),(r.anchors||[]).forEach((function(t){var e=t.picture&&t.picture.hyperlinks;e&&a.rels[e.rId]&&(e.hyperlink=a.rels[e.rId].Target,delete e.rId)})),i.reconcile(r,a))}));var s={styles:t.styles};Object.values(t.tables).forEach((function(t){o.reconcile(t,s)}));var u={styles:t.styles,sharedStrings:t.sharedStrings,media:t.media,mediaIndex:t.mediaIndex,date1904:t.properties&&t.properties.date1904,drawings:t.drawings,comments:t.comments,tables:t.tables,vmlDrawings:t.vmlDrawings};t.worksheets.forEach((function(e){e.relationships=t.worksheetRels[e.sheetNo],n.reconcile(e,u)})),delete t.worksheetHash,delete t.worksheetRels,delete t.globalRels,delete t.sharedStrings,delete t.workbookRels,delete t.sheetDefs,delete t.styles,delete t.mediaIndex,delete t.drawings,delete t.drawingRels,delete t.vmlDrawings}},{key:\"_processWorksheetEntry\",value:(tt=o(regeneratorRuntime.mark((function t(e,r,n,i,o){var a,s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=new x(i),t.next=3,a.parseStream(e);case 3:(s=t.sent).sheetNo=n,r.worksheetHash[o]=s,r.worksheets.push(s);case 7:case\"end\":return t.stop()}}),t)}))),function(t,e,r,n,i){return tt.apply(this,arguments)})},{key:\"_processCommentEntry\",value:(Q=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new j,t.next=3,i.parseStream(e);case 3:o=t.sent,r.comments[\"../\".concat(n,\".xml\")]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return Q.apply(this,arguments)})},{key:\"_processTableEntry\",value:(J=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new O,t.next=3,i.parseStream(e);case 3:o=t.sent,r.tables[\"../tables/\".concat(n,\".xml\")]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return J.apply(this,arguments)})},{key:\"_processWorksheetRelsEntry\",value:(G=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new g,t.next=3,i.parseStream(e);case 3:o=t.sent,r.worksheetRels[n]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return G.apply(this,arguments)})},{key:\"_processMediaEntry\",value:(Y=o(regeneratorRuntime.mark((function t(e,r,n){var i,o,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!((i=n.lastIndexOf(\".\"))>=1)){t.next=6;break}return o=n.substr(i+1),a=n.substr(0,i),t.next=6,new Promise((function(t,i){var s=new h;s.on(\"finish\",(function(){r.mediaIndex[n]=r.media.length,r.mediaIndex[a]=r.media.length;var e={type:\"image\",name:a,extension:o,buffer:s.toBuffer()};r.media.push(e),t()})),e.on(\"error\",(function(t){i(t)})),e.pipe(s)}));case 6:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return Y.apply(this,arguments)})},{key:\"_processDrawingEntry\",value:(Z=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new S,t.next=3,i.parseStream(e);case 3:o=t.sent,r.drawings[n]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return Z.apply(this,arguments)})},{key:\"_processDrawingRelsEntry\",value:(K=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new g,t.next=3,i.parseStream(e);case 3:o=t.sent,r.drawingRels[n]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return K.apply(this,arguments)})},{key:\"_processVmlDrawingEntry\",value:(X=o(regeneratorRuntime.mark((function t(e,r,n){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new E,t.next=3,i.parseStream(e);case 3:o=t.sent,r.vmlDrawings[\"../drawings/\".concat(n,\".vml\")]=o;case 5:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return X.apply(this,arguments)})},{key:\"_processThemeEntry\",value:($=o(regeneratorRuntime.mark((function t(e,r,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,new Promise((function(t,i){var o=new h;e.on(\"error\",i),o.on(\"error\",i),o.on(\"finish\",(function(){r.themes[n]=o.read().toString(),t()})),e.pipe(o)}));case 2:case\"end\":return t.stop()}}),t)}))),function(t,e,r){return $.apply(this,arguments)})},{key:\"createInputStream\",value:function(){throw new Error(\"`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\")}},{key:\"read\",value:(W=o(regeneratorRuntime.mark((function t(e,r){var i,o,a,u,c,l,h,d;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:!e[Symbol.asyncIterator]&&e.pipe&&(e=e.pipe(new f)),i=[],o=!0,a=!1,t.prev=4,c=s(e);case 6:return t.next=8,c.next();case 8:return l=t.sent,o=l.done,t.next=12,l.value;case 12:if(h=t.sent,o){t.next=19;break}d=h,i.push(d);case 16:o=!0,t.next=6;break;case 19:t.next=25;break;case 21:t.prev=21,t.t0=t.catch(4),a=!0,u=t.t0;case 25:if(t.prev=25,t.prev=26,o||null==c.return){t.next=30;break}return t.next=30,c.return();case 30:if(t.prev=30,!a){t.next=33;break}throw u;case 33:return t.finish(30);case 34:return t.finish(25);case 35:return t.abrupt(\"return\",this.load(n.concat(i),r));case 36:case\"end\":return t.stop()}}),t,this,[[4,21,25,35],[26,,30,34]])}))),function(t,e){return W.apply(this,arguments)})},{key:\"load\",value:(q=o(regeneratorRuntime.mark((function t(e,i){var o,a,s,u,l,h,d,p,g,w,k,x,S,O,j,E;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=i&&i.base64?n.from(e.toString(),\"base64\"):e,a={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}},t.next=4,c.loadAsync(o);case 4:s=t.sent,u=0,l=Object.values(s.files);case 6:if(!(u<l.length)){t.next=126;break}if((h=l[u]).dir){t.next=123;break}if(\"/\"===(d=h.name)[0]&&(d=d.substr(1)),p=void 0,!d.match(/xl\\/media\\//)&&!d.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/)){t.next=21;break}return p=new f,t.t0=p,t.next=17,h.async(\"nodebuffer\");case 17:t.t1=t.sent,t.t0.write.call(t.t0,t.t1),t.next=36;break;case 21:if(p=new f({writableObjectMode:!0,readableObjectMode:!0}),g=void 0,!r.browser){t.next=31;break}return t.t2=m,t.next=27,h.async(\"nodebuffer\");case 27:t.t3=t.sent,g=(0,t.t2)(t.t3),t.next=34;break;case 31:return t.next=33,h.async(\"string\");case 33:g=t.sent;case 34:for(w=0;w<g.length;w+=16384)p.write(g.substring(w,w+16384));case 36:p.end(),t.t4=d,t.next=\"_rels/.rels\"===t.t4?40:\"xl/workbook.xml\"===t.t4?44:\"xl/_rels/workbook.xml.rels\"===t.t4?53:\"xl/sharedStrings.xml\"===t.t4?57:\"xl/styles.xml\"===t.t4?61:\"docProps/app.xml\"===t.t4?65:\"docProps/core.xml\"===t.t4?72:78;break;case 40:return t.next=42,this.parseRels(p);case 42:return a.globalRels=t.sent,t.abrupt(\"break\",123);case 44:return t.next=46,this.parseWorkbook(p);case 46:return k=t.sent,a.sheets=k.sheets,a.definedNames=k.definedNames,a.views=k.views,a.properties=k.properties,a.calcProperties=k.calcProperties,t.abrupt(\"break\",123);case 53:return t.next=55,this.parseRels(p);case 55:return a.workbookRels=t.sent,t.abrupt(\"break\",123);case 57:return a.sharedStrings=new v,t.next=60,a.sharedStrings.parseStream(p);case 60:return t.abrupt(\"break\",123);case 61:return a.styles=new y,t.next=64,a.styles.parseStream(p);case 64:return t.abrupt(\"break\",123);case 65:return x=new _,t.next=68,x.parseStream(p);case 68:return S=t.sent,a.company=S.company,a.manager=S.manager,t.abrupt(\"break\",123);case 72:return O=new b,t.next=75,O.parseStream(p);case 75:return j=t.sent,Object.assign(a,j),t.abrupt(\"break\",123);case 78:if(!(E=d.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/))){t.next=83;break}return t.next=82,this._processWorksheetEntry(p,a,E[1],i,d);case 82:return t.abrupt(\"break\",123);case 83:if(!(E=d.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/))){t.next=88;break}return t.next=87,this._processWorksheetRelsEntry(p,a,E[1]);case 87:return t.abrupt(\"break\",123);case 88:if(!(E=d.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/))){t.next=93;break}return t.next=92,this._processThemeEntry(p,a,E[1]);case 92:return t.abrupt(\"break\",123);case 93:if(!(E=d.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/))){t.next=98;break}return t.next=97,this._processMediaEntry(p,a,E[1]);case 97:return t.abrupt(\"break\",123);case 98:if(!(E=d.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/))){t.next=103;break}return t.next=102,this._processDrawingEntry(p,a,E[1]);case 102:return t.abrupt(\"break\",123);case 103:if(!(E=d.match(/xl\\/(comments\\d+)[.]xml/))){t.next=108;break}return t.next=107,this._processCommentEntry(p,a,E[1]);case 107:return t.abrupt(\"break\",123);case 108:if(!(E=d.match(/xl\\/tables\\/(table\\d+)[.]xml/))){t.next=113;break}return t.next=112,this._processTableEntry(p,a,E[1]);case 112:return t.abrupt(\"break\",123);case 113:if(!(E=d.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/))){t.next=118;break}return t.next=117,this._processDrawingRelsEntry(p,a,E[1]);case 117:return t.abrupt(\"break\",123);case 118:if(!(E=d.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/))){t.next=123;break}return t.next=122,this._processVmlDrawingEntry(p,a,E[1]);case 122:return t.abrupt(\"break\",123);case 123:u++,t.next=6;break;case 126:return this.reconcile(a,i),this.workbook.model=a,t.abrupt(\"return\",this.workbook);case 129:case\"end\":return t.stop()}}),t,this)}))),function(t,e){return q.apply(this,arguments)})},{key:\"addMedia\",value:(V=o(regeneratorRuntime.mark((function t(e,r){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all(r.media.map(function(){var t=o(regeneratorRuntime.mark((function t(r){var n,i,o,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(\"image\"!==r.type){t.next=13;break}if(n=\"xl/media/\".concat(r.name,\".\").concat(r.extension),!r.filename){t.next=7;break}return t.next=5,T(r.filename);case 5:return i=t.sent,t.abrupt(\"return\",e.append(i,{name:n}));case 7:if(!r.buffer){t.next=9;break}return t.abrupt(\"return\",e.append(r.buffer,{name:n}));case 9:if(!r.base64){t.next=13;break}return o=r.base64,a=o.substring(o.indexOf(\",\")+1),t.abrupt(\"return\",e.append(a,{name:n,base64:!0}));case 13:throw new Error(\"Unsupported media\");case 14:case\"end\":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 2:case\"end\":return t.stop()}}),t)}))),function(t,e){return V.apply(this,arguments)})},{key:\"addDrawings\",value:function(t,e){var r=new S,n=new g;e.worksheets.forEach((function(e){var i=e.drawing;if(i){r.prepare(i,{});var o=r.toXml(i);t.append(o,{name:\"xl/drawings/\".concat(i.name,\".xml\")}),o=n.toXml(i.rels),t.append(o,{name:\"xl/drawings/_rels/\".concat(i.name,\".xml.rels\")})}}))}},{key:\"addTables\",value:function(t,e){var r=new O;e.worksheets.forEach((function(e){e.tables.forEach((function(e){r.prepare(e,{});var n=r.toXml(e);t.append(n,{name:\"xl/tables/\".concat(e.target)})}))}))}},{key:\"addContentTypes\",value:(H=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new w,i=n.toXml(r),e.append(i,{name:\"[Content_Types].xml\"});case 3:case\"end\":return t.stop()}}),t)}))),function(t,e){return H.apply(this,arguments)})},{key:\"addApp\",value:(U=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new _,i=n.toXml(r),e.append(i,{name:\"docProps/app.xml\"});case 3:case\"end\":return t.stop()}}),t)}))),function(t,e){return U.apply(this,arguments)})},{key:\"addCore\",value:(z=o(regeneratorRuntime.mark((function t(e,r){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new b,e.append(n.toXml(r),{name:\"docProps/core.xml\"});case 2:case\"end\":return t.stop()}}),t)}))),function(t,e){return z.apply(this,arguments)})},{key:\"addThemes\",value:(L=o(regeneratorRuntime.mark((function t(e,r){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.themes||{theme1:R},Object.keys(n).forEach((function(t){var r=n[t],i=\"xl/theme/\".concat(t,\".xml\");e.append(r,{name:i})}));case 2:case\"end\":return t.stop()}}),t)}))),function(t,e){return L.apply(this,arguments)})},{key:\"addOfficeRels\",value:(F=o(regeneratorRuntime.mark((function e(r){var n,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new g,i=n.toXml([{Id:\"rId1\",Type:t.RelType.OfficeDocument,Target:\"xl/workbook.xml\"},{Id:\"rId2\",Type:t.RelType.CoreProperties,Target:\"docProps/core.xml\"},{Id:\"rId3\",Type:t.RelType.ExtenderProperties,Target:\"docProps/app.xml\"}]),r.append(i,{name:\"_rels/.rels\"});case 3:case\"end\":return e.stop()}}),e)}))),function(t){return F.apply(this,arguments)})},{key:\"addWorkbookRels\",value:(B=o(regeneratorRuntime.mark((function e(r,n){var i,o,a,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=1,o=[{Id:\"rId\".concat(i++),Type:t.RelType.Styles,Target:\"styles.xml\"},{Id:\"rId\".concat(i++),Type:t.RelType.Theme,Target:\"theme/theme1.xml\"}],n.sharedStrings.count&&o.push({Id:\"rId\".concat(i++),Type:t.RelType.SharedStrings,Target:\"sharedStrings.xml\"}),n.worksheets.forEach((function(e){e.rId=\"rId\".concat(i++),o.push({Id:e.rId,Type:t.RelType.Worksheet,Target:\"worksheets/sheet\".concat(e.id,\".xml\")})})),a=new g,s=a.toXml(o),r.append(s,{name:\"xl/_rels/workbook.xml.rels\"});case 7:case\"end\":return e.stop()}}),e)}))),function(t,e){return B.apply(this,arguments)})},{key:\"addSharedStrings\",value:(D=o(regeneratorRuntime.mark((function t(e,r){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r.sharedStrings&&r.sharedStrings.count&&e.append(r.sharedStrings.xml,{name:\"xl/sharedStrings.xml\"});case 1:case\"end\":return t.stop()}}),t)}))),function(t,e){return D.apply(this,arguments)})},{key:\"addStyles\",value:(N=o(regeneratorRuntime.mark((function t(e,r){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(n=r.styles.xml)&&e.append(n,{name:\"xl/styles.xml\"});case 2:case\"end\":return t.stop()}}),t)}))),function(t,e){return N.apply(this,arguments)})},{key:\"addWorkbook\",value:(I=o(regeneratorRuntime.mark((function t(e,r){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new k,e.append(n.toXml(r),{name:\"xl/workbook.xml\"});case 2:case\"end\":return t.stop()}}),t)}))),function(t,e){return I.apply(this,arguments)})},{key:\"addWorksheets\",value:(A=o(regeneratorRuntime.mark((function t(e,r){var n,i,o,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new x,i=new g,o=new j,a=new E,r.worksheets.forEach((function(t){var r=new p;n.render(r,t),e.append(r.xml,{name:\"xl/worksheets/sheet\".concat(t.id,\".xml\")}),t.rels&&t.rels.length&&(r=new p,i.render(r,t.rels),e.append(r.xml,{name:\"xl/worksheets/_rels/sheet\".concat(t.id,\".xml.rels\")})),t.comments.length>0&&(r=new p,o.render(r,t),e.append(r.xml,{name:\"xl/comments\".concat(t.id,\".xml\")}),r=new p,a.render(r,t),e.append(r.xml,{name:\"xl/drawings/vmlDrawing\".concat(t.id,\".vml\")}))}));case 5:case\"end\":return t.stop()}}),t)}))),function(t,e){return A.apply(this,arguments)})},{key:\"_finalize\",value:function(t){var e=this;return new Promise((function(r,n){t.on(\"finish\",(function(){r(e)})),t.on(\"error\",n),t.finalize()}))}},{key:\"prepareModel\",value:function(t,e){t.creator=t.creator||\"ExcelJS\",t.lastModifiedBy=t.lastModifiedBy||\"ExcelJS\",t.created=t.created||new Date,t.modified=t.modified||new Date,t.useSharedStrings=void 0===e.useSharedStrings||e.useSharedStrings,t.useStyles=void 0===e.useStyles||e.useStyles,t.sharedStrings=new v,t.styles=t.useStyles?new y(!0):new y.Mock;var r=new k,n=new x;r.prepare(t);var i={sharedStrings:t.sharedStrings,styles:t.styles,date1904:t.properties.date1904,drawingsCount:0,media:t.media};i.drawings=t.drawings=[],i.commentRefs=t.commentRefs=[];var o=0;t.tables=[],t.worksheets.forEach((function(e){e.tables.forEach((function(e){o++,e.target=\"table\".concat(o,\".xml\"),e.id=o,t.tables.push(e)})),n.prepare(e,i)}))}},{key:\"write\",value:(M=o(regeneratorRuntime.mark((function t(e,r){var n,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=r||{},n=this.workbook.model,(i=new l.ZipWriter(r.zip)).pipe(e),this.prepareModel(n,r),t.next=7,this.addContentTypes(i,n);case 7:return t.next=9,this.addOfficeRels(i,n);case 9:return t.next=11,this.addWorkbookRels(i,n);case 11:return t.next=13,this.addWorksheets(i,n);case 13:return t.next=15,this.addSharedStrings(i,n);case 15:return t.next=17,this.addDrawings(i,n);case 17:return t.next=19,this.addTables(i,n);case 19:return t.next=21,Promise.all([this.addThemes(i,n),this.addStyles(i,n)]);case 21:return t.next=23,this.addMedia(i,n);case 23:return t.next=25,Promise.all([this.addApp(i,n),this.addCore(i,n)]);case 25:return t.next=27,this.addWorkbook(i,n);case 27:return t.abrupt(\"return\",this._finalize(i));case 28:case\"end\":return t.stop()}}),t,this)}))),function(t,e){return M.apply(this,arguments)})},{key:\"writeFile\",value:function(t,e){var r=this,n=u.createWriteStream(t);return new Promise((function(t,i){n.on(\"finish\",(function(){t()})),n.on(\"error\",(function(t){i(t)})),r.write(n,e).then((function(){n.end()}))}))}},{key:\"writeBuffer\",value:(P=o(regeneratorRuntime.mark((function t(e){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=new h,t.next=3,this.write(r,e);case 3:return t.abrupt(\"return\",r.read());case 4:case\"end\":return t.stop()}}),t,this)}))),function(t){return P.apply(this,arguments)})}])&&a(e.prototype,i),C&&a(e,C),t}();C.RelType=t(\"./rel-type\"),e.exports=C}).call(this,t(\"_process\"),t(\"buffer\").Buffer)},{\"../utils/browser-buffer-decode\":16,\"../utils/stream-buf\":23,\"../utils/utils\":26,\"../utils/xml-stream\":27,\"../utils/zip-stream\":28,\"./rel-type\":30,\"./xform/book/workbook-xform\":37,\"./xform/comment/comments-xform\":39,\"./xform/comment/vml-notes-xform\":44,\"./xform/core/app-xform\":50,\"./xform/core/content-types-xform\":51,\"./xform/core/core-xform\":52,\"./xform/core/relationships-xform\":54,\"./xform/drawing/drawing-xform\":61,\"./xform/sheet/worksheet-xform\":114,\"./xform/strings/shared-strings-xform\":123,\"./xform/style/styles-xform\":134,\"./xform/table/table-xform\":140,\"./xml/theme1.js\":142,_process:467,buffer:216,fs:215,jszip:399,\"readable-stream\":491}],142:[function(t,e,r){\"use strict\";e.exports='<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"> <a:themeElements> <a:clrScheme name=\"Office\"> <a:dk1> <a:sysClr val=\"windowText\" lastClr=\"000000\"/> </a:dk1> <a:lt1> <a:sysClr val=\"window\" lastClr=\"FFFFFF\"/> </a:lt1> <a:dk2> <a:srgbClr val=\"1F497D\"/> </a:dk2> <a:lt2> <a:srgbClr val=\"EEECE1\"/> </a:lt2> <a:accent1> <a:srgbClr val=\"4F81BD\"/> </a:accent1> <a:accent2> <a:srgbClr val=\"C0504D\"/> </a:accent2> <a:accent3> <a:srgbClr val=\"9BBB59\"/> </a:accent3> <a:accent4> <a:srgbClr val=\"8064A2\"/> </a:accent4> <a:accent5> <a:srgbClr val=\"4BACC6\"/> </a:accent5> <a:accent6> <a:srgbClr val=\"F79646\"/> </a:accent6> <a:hlink> <a:srgbClr val=\"0000FF\"/> </a:hlink> <a:folHlink> <a:srgbClr val=\"800080\"/> </a:folHlink> </a:clrScheme> <a:fontScheme name=\"Office\"> <a:majorFont> <a:latin typeface=\"Cambria\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"\\uff2d\\uff33 \\uff30\\u30b4\\u30b7\\u30c3\\u30af\"/> <a:font script=\"Hang\" typeface=\"\\ub9d1\\uc740 \\uace0\\ub515\"/> <a:font script=\"Hans\" typeface=\"\\u5b8b\\u4f53\"/> <a:font script=\"Hant\" typeface=\"\\u65b0\\u7d30\\u660e\\u9ad4\"/> <a:font script=\"Arab\" typeface=\"Times New Roman\"/> <a:font script=\"Hebr\" typeface=\"Times New Roman\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"MoolBoran\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Times New Roman\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:majorFont> <a:minorFont> <a:latin typeface=\"Calibri\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"\\uff2d\\uff33 \\uff30\\u30b4\\u30b7\\u30c3\\u30af\"/> <a:font script=\"Hang\" typeface=\"\\ub9d1\\uc740 \\uace0\\ub515\"/> <a:font script=\"Hans\" typeface=\"\\u5b8b\\u4f53\"/> <a:font script=\"Hant\" typeface=\"\\u65b0\\u7d30\\u660e\\u9ad4\"/> <a:font script=\"Arab\" typeface=\"Arial\"/> <a:font script=\"Hebr\" typeface=\"Arial\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"DaunPenh\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Arial\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:minorFont> </a:fontScheme> <a:fmtScheme name=\"Office\"> <a:fillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"35000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"37000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"15000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"1\"/> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"100000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"130000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"0\"/> </a:gradFill> </a:fillStyleLst> <a:lnStyleLst> <a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"> <a:shade val=\"95000\"/> <a:satMod val=\"105000\"/> </a:schemeClr> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> </a:lnStyleLst> <a:effectStyleLst> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"38000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> <a:scene3d> <a:camera prst=\"orthographicFront\"> <a:rot lat=\"0\" lon=\"0\" rev=\"0\"/> </a:camera> <a:lightRig rig=\"threePt\" dir=\"t\"> <a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/> </a:lightRig> </a:scene3d> <a:sp3d> <a:bevelT w=\"63500\" h=\"25400\"/> </a:sp3d> </a:effectStyle> </a:effectStyleLst> <a:bgFillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"40000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"40000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"45000\"/> <a:shade val=\"99000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"20000\"/> <a:satMod val=\"255000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/> </a:path> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"80000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"30000\"/> <a:satMod val=\"200000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/> </a:path> </a:gradFill> </a:bgFillStyleLst> </a:fmtScheme> </a:themeElements> <a:objectDefaults> <a:spDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"3\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"lt1\"/> </a:fontRef> </a:style> </a:spDef> <a:lnDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"0\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"tx1\"/> </a:fontRef> </a:style> </a:lnDef> </a:objectDefaults> <a:extraClrSchemeLst/> </a:theme>'},{}],143:[function(t,e,r){(function(e){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var i=u(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return s(this,r)}}function s(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}Object.defineProperty(r,\"__esModule\",{value:!0}),r.CsvFormatterStream=void 0;var c=t(\"stream\"),f=t(\"./formatter\"),l=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(c,t);var r,n,s,u=a(c);function c(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,c),(e=u.call(this,{writableObjectMode:t.objectMode})).hasWrittenBOM=!1,e.formatterOptions=t,e.rowFormatter=new f.RowFormatter(t),e.hasWrittenBOM=!t.writeBOM,e}return r=c,(n=[{key:\"transform\",value:function(t){return this.rowFormatter.rowTransform=t,this}},{key:\"_transform\",value:function(t,r,n){var i=this,o=!1;try{this.hasWrittenBOM||(this.push(this.formatterOptions.BOM),this.hasWrittenBOM=!0),this.rowFormatter.format(t,(function(t,r){return t?(o=!0,n(t)):(r&&r.forEach((function(t){i.push(e.from(t,\"utf8\"))})),o=!0,n())}))}catch(t){if(o)throw t;n(t)}}},{key:\"_flush\",value:function(t){var r=this;this.rowFormatter.finish((function(n,i){return n?t(n):(i&&i.forEach((function(t){r.push(e.from(t,\"utf8\"))})),t())}))}}])&&i(r.prototype,n),s&&i(r,s),c}(c.Transform);r.CsvFormatterStream=l}).call(this,t(\"buffer\").Buffer)},{\"./formatter\":147,buffer:216,stream:506}],144:[function(t,e,r){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(r,\"__esModule\",{value:!0}),r.FormatterOptions=void 0;r.FormatterOptions=function t(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n(this,t),this.objectMode=!0,this.delimiter=\",\",this.rowDelimiter=\"\\n\",this.quote='\"',this.escape=this.quote,this.quoteColumns=!1,this.quoteHeaders=this.quoteColumns,this.headers=null,this.includeEndRowDelimiter=!1,this.writeBOM=!1,this.BOM=\"\\ufeff\",this.alwaysWriteHeaders=!1,Object.assign(this,r||{}),void 0===(null==r?void 0:r.quoteHeaders)&&(this.quoteHeaders=this.quoteColumns),!0===(null==r?void 0:r.quote)?this.quote='\"':!1===(null==r?void 0:r.quote)&&(this.quote=\"\"),\"string\"!=typeof(null==r?void 0:r.escape)&&(this.escape=this.quote),this.shouldWriteHeaders=!!this.headers&&(null===(e=r.writeHeaders)||void 0===e||e),this.headers=Array.isArray(this.headers)?this.headers:null,this.escapedQuote=\"\".concat(this.escape).concat(this.quote)}},{}],145:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.FieldFormatter=void 0;var o=i(t(\"lodash.isboolean\")),a=i(t(\"lodash.isnil\")),s=i(t(\"lodash.escaperegexp\")),u=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._headers=null,this.formatterOptions=e,null!==e.headers&&(this.headers=e.headers),this.REPLACE_REGEXP=new RegExp(e.quote,\"g\");var r=\"[\".concat(e.delimiter).concat(s.default(e.rowDelimiter),\"|\\r|\\n']\");this.ESCAPE_REGEXP=new RegExp(r)}var e,r,i;return e=t,(r=[{key:\"shouldQuote\",value:function(t,e){var r=e?this.formatterOptions.quoteHeaders:this.formatterOptions.quoteColumns;return o.default(r)?r:Array.isArray(r)?r[t]:null!==this._headers&&r[this._headers[t]]}},{key:\"format\",value:function(t,e,r){var n=\"\".concat(a.default(t)?\"\":t).replace(/\\0/g,\"\"),i=this.formatterOptions;return\"\"!==i.quote&&-1!==n.indexOf(i.quote)?this.quoteField(n.replace(this.REPLACE_REGEXP,i.escapedQuote)):-1!==n.search(this.ESCAPE_REGEXP)||this.shouldQuote(e,r)?this.quoteField(n):n}},{key:\"quoteField\",value:function(t){var e=this.formatterOptions.quote;return\"\".concat(e).concat(t).concat(e)}},{key:\"headers\",set:function(t){this._headers=t}}])&&n(e.prototype,r),i&&n(e,i),t}();r.FieldFormatter=u},{\"lodash.escaperegexp\":426,\"lodash.isboolean\":428,\"lodash.isnil\":431}],146:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowFormatter=void 0;var o=i(t(\"lodash.isfunction\")),a=i(t(\"lodash.isequal\")),s=t(\"./FieldFormatter\"),u=t(\"../types\"),c=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.rowCount=0,this.formatterOptions=e,this.fieldFormatter=new s.FieldFormatter(e),this.headers=e.headers,this.shouldWriteHeaders=e.shouldWriteHeaders,this.hasWrittenHeaders=!1,null!==this.headers&&(this.fieldFormatter.headers=this.headers),e.transform&&(this.rowTransform=e.transform)}var e,r,i;return e=t,i=[{key:\"isHashArray\",value:function(t){return!!Array.isArray(t)&&Array.isArray(t[0])&&2===t[0].length}},{key:\"gatherHeaders\",value:function(e){return t.isHashArray(e)?e.map((function(t){return t[0]})):Array.isArray(e)?e:Object.keys(e)}},{key:\"createTransform\",value:function(t){return u.isSyncTransform(t)?function(e,r){var n=null;try{n=t(e)}catch(t){return r(t)}return r(null,n)}:function(e,r){t(e,r)}}}],(r=[{key:\"format\",value:function(t,e){var r=this;this.callTransformer(t,(function(n,i){if(n)return e(n);if(!t)return e(null);var o=[];if(i){var a=r.checkHeaders(i),s=a.shouldFormatColumns,u=a.headers;if(r.shouldWriteHeaders&&u&&!r.hasWrittenHeaders&&(o.push(r.formatColumns(u,!0)),r.hasWrittenHeaders=!0),s){var c=r.gatherColumns(i);o.push(r.formatColumns(c,!1))}}return e(null,o)}))}},{key:\"finish\",value:function(t){var e=[];if(this.formatterOptions.alwaysWriteHeaders&&0===this.rowCount){if(!this.headers)return t(new Error(\"`alwaysWriteHeaders` option is set to true but `headers` option not provided.\"));e.push(this.formatColumns(this.headers,!0))}return this.formatterOptions.includeEndRowDelimiter&&e.push(this.formatterOptions.rowDelimiter),t(null,e)}},{key:\"checkHeaders\",value:function(e){if(this.headers)return{shouldFormatColumns:!0,headers:this.headers};var r=t.gatherHeaders(e);return this.headers=r,this.fieldFormatter.headers=r,this.shouldWriteHeaders?{shouldFormatColumns:!a.default(r,e),headers:r}:{shouldFormatColumns:!0,headers:null}}},{key:\"gatherColumns\",value:function(e){if(null===this.headers)throw new Error(\"Headers is currently null\");return Array.isArray(e)?t.isHashArray(e)?this.headers.map((function(t,r){var n=e[r];return n?n[1]:\"\"})):this.headers.map((function(t,r){return e[r]})):this.headers.map((function(t){return e[t]}))}},{key:\"callTransformer\",value:function(t,e){return this._rowTransform?this._rowTransform(t,e):e(null,t)}},{key:\"formatColumns\",value:function(t,e){var r=this,n=t.map((function(t,n){return r.fieldFormatter.format(t,n,e)})).join(this.formatterOptions.delimiter),i=this.rowCount;return this.rowCount+=1,i?[this.formatterOptions.rowDelimiter,n].join(\"\"):n}},{key:\"rowTransform\",set:function(e){if(!o.default(e))throw new TypeError(\"The transform should be a function\");this._rowTransform=t.createTransform(e)}}])&&n(e.prototype,r),i&&n(e,i),t}();r.RowFormatter=c},{\"../types\":149,\"./FieldFormatter\":145,\"lodash.isequal\":429,\"lodash.isfunction\":430}],147:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"./RowFormatter\");Object.defineProperty(r,\"RowFormatter\",{enumerable:!0,get:function(){return n.RowFormatter}});var i=t(\"./FieldFormatter\");Object.defineProperty(r,\"FieldFormatter\",{enumerable:!0,get:function(){return i.FieldFormatter}})},{\"./FieldFormatter\":145,\"./RowFormatter\":146}],148:[function(t,e,r){(function(e){\"use strict\";var n=Object.create?function(t,e,r,n){void 0===n&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]},i=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e},o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)\"default\"!==r&&Object.hasOwnProperty.call(t,r)&&n(e,t,r);return i(e,t),e},a=function(t,e){for(var r in t)\"default\"===r||e.hasOwnProperty(r)||n(e,t,r)};Object.defineProperty(r,\"__esModule\",{value:!0}),r.writeToPath=r.writeToString=r.writeToBuffer=r.writeToStream=r.write=r.format=void 0;var s=t(\"util\"),u=t(\"stream\"),c=o(t(\"fs\")),f=t(\"./FormatterOptions\"),l=t(\"./CsvFormatterStream\");a(t(\"./types\"),r);var h=t(\"./CsvFormatterStream\");Object.defineProperty(r,\"CsvFormatterStream\",{enumerable:!0,get:function(){return h.CsvFormatterStream}});var d=t(\"./FormatterOptions\");Object.defineProperty(r,\"FormatterOptions\",{enumerable:!0,get:function(){return d.FormatterOptions}}),r.format=function(t){return new l.CsvFormatterStream(new f.FormatterOptions(t))},r.write=function(t,e){var n=r.format(e),i=s.promisify((function(t,e){n.write(t,void 0,e)}));return t.reduce((function(t,e){return t.then((function(){return i(e)}))}),Promise.resolve()).then((function(){return n.end()})).catch((function(t){n.emit(\"error\",t)})),n},r.writeToStream=function(t,e,n){return r.write(e,n).pipe(t)},r.writeToBuffer=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=[],o=new u.Writable({write:function(t,e,r){i.push(t),r()}});return new Promise((function(a,s){o.on(\"error\",s).on(\"finish\",(function(){return a(e.concat(i))})),r.write(t,n).pipe(o)}))},r.writeToString=function(t,e){return r.writeToBuffer(t,e).then((function(t){return t.toString()}))},r.writeToPath=function(t,e,n){var i=c.createWriteStream(t,{encoding:\"utf8\"});return r.write(e,n).pipe(i)}}).call(this,t(\"buffer\").Buffer)},{\"./CsvFormatterStream\":143,\"./FormatterOptions\":144,\"./types\":149,buffer:216,fs:215,stream:506,util:525}],149:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.isSyncTransform=void 0,r.isSyncTransform=function(t){return 1===t.length}},{}],150:[function(t,e,r){(function(e){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,r){return(o=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=c(t)););return t}(t,e);if(n){var i=Object.getOwnPropertyDescriptor(n,e);return i.get?i.get.call(r):i.value}})(t,e,r||t)}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=c(t);if(e){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return u(this,r)}}function u(t,e){return!e||\"object\"!==n(e)&&\"function\"!=typeof e?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):e}function c(t){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}Object.defineProperty(r,\"__esModule\",{value:!0}),r.CsvParserStream=void 0;var f=t(\"string_decoder\"),l=t(\"stream\"),h=t(\"./transforms\"),d=t(\"./parser\"),p=function(t){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(p,t);var r,n,u,l=s(p);function p(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,p),(e=l.call(this,{objectMode:t.objectMode})).lines=\"\",e.rowCount=0,e.parsedRowCount=0,e.parsedLineCount=0,e.endEmitted=!1,e.headersEmitted=!1,e.parserOptions=t,e.parser=new d.Parser(t),e.headerTransformer=new h.HeaderTransformer(t),e.decoder=new f.StringDecoder(t.encoding),e.rowTransformerValidator=new h.RowTransformerValidator,e}return r=p,(n=[{key:\"transform\",value:function(t){return this.rowTransformerValidator.rowTransform=t,this}},{key:\"validate\",value:function(t){return this.rowTransformerValidator.rowValidator=t,this}},{key:\"emit\",value:function(t){var e;if(\"end\"===t)return this.endEmitted||(this.endEmitted=!0,o(c(p.prototype),\"emit\",this).call(this,\"end\",this.rowCount)),!1;for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return(e=o(c(p.prototype),\"emit\",this)).call.apply(e,[this,t].concat(n))}},{key:\"_transform\",value:function(t,e,r){if(this.hasHitRowLimit)return r();try{var n=this.lines+this.decoder.write(t),i=this.parse(n,!0);return this.processRows(i,r)}catch(t){return r(t)}}},{key:\"_flush\",value:function(t){if(this.hasHitRowLimit)return t();try{var e=this.lines+this.decoder.end(),r=this.parse(e,!1);return this.processRows(r,t)}catch(e){return t(e)}}},{key:\"parse\",value:function(t,e){if(!t)return[];var r=this.parser.parse(t,e),n=r.line,i=r.rows;return this.lines=n,i}},{key:\"processRows\",value:function(t,r){var n=this,i=t.length;!function o(a){var s=function(t){return t?r(t):a%100!=0?o(a+1):void e((function(){return o(a+1)}))};if(n.checkAndEmitHeaders(),a>=i||n.hasHitRowLimit)return r();if(n.parsedLineCount+=1,n.shouldSkipLine)return s();var u=t[a];n.rowCount+=1,n.parsedRowCount+=1;var c=n.rowCount;return n.transformRow(u,(function(t,e){if(t)return n.rowCount-=1,s(t);if(!e)return s(new Error(\"expected transform result\"));if(e.isValid){if(e.row)return n.pushRow(e.row,s)}else n.emit(\"data-invalid\",e.row,c,e.reason);return s()}))}(0)}},{key:\"transformRow\",value:function(t,e){var r=this;try{this.headerTransformer.transform(t,(function(n,i){return n?e(n):i?i.isValid?i.row?r.shouldEmitRows?r.rowTransformerValidator.transformAndValidate(i.row,e):r.skipRow(e):(r.rowCount-=1,r.parsedRowCount-=1,e(null,{row:null,isValid:!0})):r.shouldEmitRows?e(null,{isValid:!1,row:t}):r.skipRow(e):e(new Error(\"Expected result from header transform\"))}))}catch(t){e(t)}}},{key:\"checkAndEmitHeaders\",value:function(){!this.headersEmitted&&this.headerTransformer.headers&&(this.headersEmitted=!0,this.emit(\"headers\",this.headerTransformer.headers))}},{key:\"skipRow\",value:function(t){return this.rowCount-=1,t(null,{row:null,isValid:!0})}},{key:\"pushRow\",value:function(t,e){try{this.parserOptions.objectMode?this.push(t):this.push(JSON.stringify(t)),e()}catch(t){e(t)}}},{key:\"hasHitRowLimit\",get:function(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows}},{key:\"shouldEmitRows\",get:function(){return this.parsedRowCount>this.parserOptions.skipRows}},{key:\"shouldSkipLine\",get:function(){return this.parsedLineCount<=this.parserOptions.skipLines}}])&&i(r.prototype,n),u&&i(r,u),p}(l.Transform);r.CsvParserStream=p}).call(this,t(\"timers\").setImmediate)},{\"./parser\":162,\"./transforms\":165,stream:506,string_decoder:520,timers:521}],151:[function(t,e,r){\"use strict\";var n=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.ParserOptions=void 0;var i=n(t(\"lodash.escaperegexp\")),o=n(t(\"lodash.isnil\"));r.ParserOptions=function t(e){var r;if(function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.objectMode=!0,this.delimiter=\",\",this.ignoreEmpty=!1,this.quote='\"',this.escape=null,this.escapeChar=this.quote,this.comment=null,this.supportsComments=!1,this.ltrim=!1,this.rtrim=!1,this.trim=!1,this.headers=null,this.renameHeaders=!1,this.strictColumnHandling=!1,this.discardUnmappedColumns=!1,this.carriageReturn=\"\\r\",this.encoding=\"utf8\",this.limitRows=!1,this.maxRows=0,this.skipLines=0,this.skipRows=0,Object.assign(this,e||{}),this.delimiter.length>1)throw new Error(\"delimiter option must be one character long\");this.escapedDelimiter=i.default(this.delimiter),this.escapeChar=null!==(r=this.escape)&&void 0!==r?r:this.quote,this.supportsComments=!o.default(this.comment),this.NEXT_TOKEN_REGEXP=new RegExp(\"([^\\\\s]|\\\\r\\\\n|\\\\n|\\\\r|\".concat(this.escapedDelimiter,\")\")),this.maxRows>0&&(this.limitRows=!0)}},{\"lodash.escaperegexp\":426,\"lodash.isnil\":431}],152:[function(t,e,r){\"use strict\";var n=Object.create?function(t,e,r,n){void 0===n&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]},i=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e},o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)\"default\"!==r&&Object.hasOwnProperty.call(t,r)&&n(e,t,r);return i(e,t),e},a=function(t,e){for(var r in t)\"default\"===r||e.hasOwnProperty(r)||n(e,t,r)};Object.defineProperty(r,\"__esModule\",{value:!0}),r.parseString=r.parseFile=r.parseStream=r.parse=void 0;var s=o(t(\"fs\")),u=t(\"stream\"),c=t(\"./ParserOptions\"),f=t(\"./CsvParserStream\");a(t(\"./types\"),r);var l=t(\"./CsvParserStream\");Object.defineProperty(r,\"CsvParserStream\",{enumerable:!0,get:function(){return l.CsvParserStream}});var h=t(\"./ParserOptions\");Object.defineProperty(r,\"ParserOptions\",{enumerable:!0,get:function(){return h.ParserOptions}}),r.parse=function(t){return new f.CsvParserStream(new c.ParserOptions(t))},r.parseStream=function(t,e){return t.pipe(new f.CsvParserStream(new c.ParserOptions(e)))},r.parseFile=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s.createReadStream(t).pipe(new f.CsvParserStream(new c.ParserOptions(e)))},r.parseString=function(t,e){var r=new u.Readable;return r.push(t),r.push(null),r.pipe(new f.CsvParserStream(new c.ParserOptions(e)))}},{\"./CsvParserStream\":150,\"./ParserOptions\":151,\"./types\":166,fs:215,stream:506}],153:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.Parser=void 0;var i=t(\"./Scanner\"),o=t(\"./RowParser\"),a=t(\"./Token\"),s=/^\\s*(?:''|\"\")?\\s*(?:,\\s*(?:''|\"\")?\\s*)*$/,u=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.parserOptions=e,this.rowParser=new o.RowParser(this.parserOptions)}var e,r,u;return e=t,u=[{key:\"removeBOM\",value:function(t){return t&&65279===t.charCodeAt(0)?t.slice(1):t}}],(r=[{key:\"parse\",value:function(e,r){var n=new i.Scanner({line:t.removeBOM(e),parserOptions:this.parserOptions,hasMoreData:r});return this.parserOptions.supportsComments?this.parseWithComments(n):this.parseWithoutComments(n)}},{key:\"parseWithoutComments\",value:function(t){for(var e=[],r=!0;r;)r=this.parseRow(t,e);return{line:t.line,rows:e}}},{key:\"parseWithComments\",value:function(t){for(var e=this.parserOptions,r=[],n=t.nextCharacterToken;null!==n;n=t.nextCharacterToken)if(a.Token.isTokenComment(n,e)){if(null===t.advancePastLine())return{line:t.lineFromCursor,rows:r};if(!t.hasMoreCharacters)return{line:t.lineFromCursor,rows:r};t.truncateToCursor()}else if(!this.parseRow(t,r))break;return{line:t.line,rows:r}}},{key:\"parseRow\",value:function(t,e){if(!t.nextNonSpaceToken)return!1;var r=this.rowParser.parse(t);return null!==r&&(this.parserOptions.ignoreEmpty&&s.test(r.join(\"\"))||e.push(r),!0)}}])&&n(e.prototype,r),u&&n(e,u),t}();r.Parser=u},{\"./RowParser\":154,\"./Scanner\":155,\"./Token\":156}],154:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowParser=void 0;var i=t(\"./column\"),o=t(\"./Token\").Token,a=o.isTokenRowDelimiter,s=o.isTokenCarriageReturn,u=o.isTokenDelimiter,c=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.parserOptions=e,this.columnParser=new i.ColumnParser(e)}var e,r,o;return e=t,(r=[{key:\"parse\",value:function(t){for(var e=this.parserOptions,r=t.hasMoreData,n=t,i=[],o=this.getStartToken(n,i);o;){if(a(o))return n.advancePastToken(o),!n.hasMoreCharacters&&s(o,e)&&r?null:(n.truncateToCursor(),i);if(!this.shouldSkipColumnParse(n,o,i)){var u=this.columnParser.parse(n);if(null===u)return null;i.push(u)}o=n.nextNonSpaceToken}return r?null:(n.truncateToCursor(),i)}},{key:\"getStartToken\",value:function(t,e){var r=t.nextNonSpaceToken;return null!==r&&u(r,this.parserOptions)?(e.push(\"\"),t.nextNonSpaceToken):r}},{key:\"shouldSkipColumnParse\",value:function(t,e,r){var n=this.parserOptions;if(u(e,n)){t.advancePastToken(e);var i=t.nextCharacterToken;if(!t.hasMoreCharacters||null!==i&&a(i))return r.push(\"\"),!0;if(null!==i&&u(i,n))return r.push(\"\"),!0}return!1}}])&&n(e.prototype,r),o&&n(e,o),t}();r.RowParser=c},{\"./Token\":156,\"./column\":161}],155:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.Scanner=void 0;var i=t(\"./Token\"),o=/((?:\\r\\n)|\\n|\\r)/,a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.cursor=0,this.line=e.line,this.lineLength=this.line.length,this.parserOptions=e.parserOptions,this.hasMoreData=e.hasMoreData,this.cursor=e.cursor||0}var e,r,a;return e=t,(r=[{key:\"advancePastLine\",value:function(){var t=o.exec(this.lineFromCursor);return t?(this.cursor+=(t.index||0)+t[0].length,this):this.hasMoreData?null:(this.cursor=this.lineLength,this)}},{key:\"advanceTo\",value:function(t){return this.cursor=t,this}},{key:\"advanceToToken\",value:function(t){return this.cursor=t.startCursor,this}},{key:\"advancePastToken\",value:function(t){return this.cursor=t.endCursor+1,this}},{key:\"truncateToCursor\",value:function(){return this.line=this.lineFromCursor,this.lineLength=this.line.length,this.cursor=0,this}},{key:\"hasMoreCharacters\",get:function(){return this.lineLength>this.cursor}},{key:\"nextNonSpaceToken\",get:function(){var t=this.lineFromCursor,e=this.parserOptions.NEXT_TOKEN_REGEXP;if(-1===t.search(e))return null;var r=e.exec(t);if(null==r)return null;var n=r[1],o=this.cursor+(r.index||0);return new i.Token({token:n,startCursor:o,endCursor:o+n.length-1})}},{key:\"nextCharacterToken\",get:function(){var t=this.cursor;return this.lineLength<=t?null:new i.Token({token:this.line[t],startCursor:t,endCursor:t})}},{key:\"lineFromCursor\",get:function(){return this.line.substr(this.cursor)}}])&&n(e.prototype,r),a&&n(e,a),t}();r.Scanner=a},{\"./Token\":156}],156:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.Token=void 0;var i=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.token=e.token,this.startCursor=e.startCursor,this.endCursor=e.endCursor}var e,r,i;return e=t,i=[{key:\"isTokenRowDelimiter\",value:function(t){var e=t.token;return\"\\r\"===e||\"\\n\"===e||\"\\r\\n\"===e}},{key:\"isTokenCarriageReturn\",value:function(t,e){return t.token===e.carriageReturn}},{key:\"isTokenComment\",value:function(t,e){return e.supportsComments&&!!t&&t.token===e.comment}},{key:\"isTokenEscapeCharacter\",value:function(t,e){return t.token===e.escapeChar}},{key:\"isTokenQuote\",value:function(t,e){return t.token===e.quote}},{key:\"isTokenDelimiter\",value:function(t,e){return t.token===e.delimiter}}],(r=null)&&n(e.prototype,r),i&&n(e,i),t}();r.Token=i},{}],157:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.ColumnFormatter=void 0;r.ColumnFormatter=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),e.trim?this.format=function(t){return t.trim()}:e.ltrim?this.format=function(t){return t.trimLeft()}:e.rtrim?this.format=function(t){return t.trimRight()}:this.format=function(t){return t}}},{}],158:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.ColumnParser=void 0;var i=t(\"./NonQuotedColumnParser\"),o=t(\"./QuotedColumnParser\"),a=t(\"../Token\"),s=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.parserOptions=e,this.quotedColumnParser=new o.QuotedColumnParser(e),this.nonQuotedColumnParser=new i.NonQuotedColumnParser(e)}var e,r,s;return e=t,(r=[{key:\"parse\",value:function(t){var e=t.nextNonSpaceToken;return null!==e&&a.Token.isTokenQuote(e,this.parserOptions)?(t.advanceToToken(e),this.quotedColumnParser.parse(t)):this.nonQuotedColumnParser.parse(t)}}])&&n(e.prototype,r),s&&n(e,s),t}();r.ColumnParser=s},{\"../Token\":156,\"./NonQuotedColumnParser\":159,\"./QuotedColumnParser\":160}],159:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.NonQuotedColumnParser=void 0;var i=t(\"./ColumnFormatter\"),o=t(\"../Token\").Token,a=o.isTokenDelimiter,s=o.isTokenRowDelimiter,u=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.parserOptions=e,this.columnFormatter=new i.ColumnFormatter(e)}var e,r,o;return e=t,(r=[{key:\"parse\",value:function(t){if(!t.hasMoreCharacters)return null;for(var e=this.parserOptions,r=[],n=t.nextCharacterToken;n&&!a(n,e)&&!s(n);n=t.nextCharacterToken)r.push(n.token),t.advancePastToken(n);return this.columnFormatter.format(r.join(\"\"))}}])&&n(e.prototype,r),o&&n(e,o),t}();r.NonQuotedColumnParser=u},{\"../Token\":156,\"./ColumnFormatter\":157}],160:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.QuotedColumnParser=void 0;var i=t(\"./ColumnFormatter\"),o=t(\"../Token\").Token,a=o.isTokenDelimiter,s=o.isTokenRowDelimiter,u=o.isTokenEscapeCharacter,c=o.isTokenQuote,f=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.parserOptions=e,this.columnFormatter=new i.ColumnFormatter(e)}var e,r,o;return e=t,(r=[{key:\"parse\",value:function(t){if(!t.hasMoreCharacters)return null;var e=t.cursor,r=this.gatherDataBetweenQuotes(t),n=r.foundClosingQuote,i=r.col;if(!n){if(t.advanceTo(e),!t.hasMoreData)throw new Error(\"Parse Error: missing closing: '\".concat(this.parserOptions.quote||\"\",\"' in line: at '\").concat(t.lineFromCursor.replace(/[\\r\\n]/g,\"\\\\n'\"),\"'\"));return null}return this.checkForMalformedColumn(t),i}},{key:\"gatherDataBetweenQuotes\",value:function(t){for(var e=this.parserOptions,r=!1,n=!1,i=[],o=t.nextCharacterToken;!n&&null!==o;o=t.nextCharacterToken){var a=c(o,e);if(!r&&a)r=!0;else if(r)if(u(o,e)){t.advancePastToken(o);var s=t.nextCharacterToken;null!==s&&(c(s,e)||u(s,e))?(i.push(s.token),o=s):a?n=!0:i.push(o.token)}else a?n=!0:i.push(o.token);t.advancePastToken(o)}return{col:this.columnFormatter.format(i.join(\"\")),foundClosingQuote:n}}},{key:\"checkForMalformedColumn\",value:function(t){var e=this.parserOptions,r=t.nextNonSpaceToken;if(r){var n=a(r,e),i=s(r);if(!n&&!i){var o=t.lineFromCursor.substr(0,10).replace(/[\\r\\n]/g,\"\\\\n'\");throw new Error(\"Parse Error: expected: '\".concat(e.escapedDelimiter,\"' OR new line got: '\").concat(r.token,\"'. at '\").concat(o))}t.advanceToToken(r)}else t.hasMoreData||t.advancePastLine()}}])&&n(e.prototype,r),o&&n(e,o),t}();r.QuotedColumnParser=f},{\"../Token\":156,\"./ColumnFormatter\":157}],161:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"./ColumnParser\");Object.defineProperty(r,\"ColumnParser\",{enumerable:!0,get:function(){return n.ColumnParser}});var i=t(\"./NonQuotedColumnParser\");Object.defineProperty(r,\"NonQuotedColumnParser\",{enumerable:!0,get:function(){return i.NonQuotedColumnParser}});var o=t(\"./QuotedColumnParser\");Object.defineProperty(r,\"QuotedColumnParser\",{enumerable:!0,get:function(){return o.QuotedColumnParser}});var a=t(\"./ColumnFormatter\");Object.defineProperty(r,\"ColumnFormatter\",{enumerable:!0,get:function(){return a.ColumnFormatter}})},{\"./ColumnFormatter\":157,\"./ColumnParser\":158,\"./NonQuotedColumnParser\":159,\"./QuotedColumnParser\":160}],162:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"./Parser\");Object.defineProperty(r,\"Parser\",{enumerable:!0,get:function(){return n.Parser}});var i=t(\"./RowParser\");Object.defineProperty(r,\"RowParser\",{enumerable:!0,get:function(){return i.RowParser}});var o=t(\"./Scanner\");Object.defineProperty(r,\"Scanner\",{enumerable:!0,get:function(){return o.Scanner}});var a=t(\"./Token\");Object.defineProperty(r,\"Token\",{enumerable:!0,get:function(){return a.Token}});var s=t(\"./column\");Object.defineProperty(r,\"ColumnParser\",{enumerable:!0,get:function(){return s.ColumnParser}}),Object.defineProperty(r,\"NonQuotedColumnParser\",{enumerable:!0,get:function(){return s.NonQuotedColumnParser}}),Object.defineProperty(r,\"QuotedColumnParser\",{enumerable:!0,get:function(){return s.QuotedColumnParser}})},{\"./Parser\":153,\"./RowParser\":154,\"./Scanner\":155,\"./Token\":156,\"./column\":161}],163:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.HeaderTransformer=void 0;var o=i(t(\"lodash.isundefined\")),a=i(t(\"lodash.isfunction\")),s=i(t(\"lodash.uniq\")),u=i(t(\"lodash.groupby\")),c=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.headers=null,this.receivedHeaders=!1,this.shouldUseFirstRow=!1,this.processedFirstRow=!1,this.headersLength=0,this.parserOptions=e,!0===e.headers?this.shouldUseFirstRow=!0:Array.isArray(e.headers)?this.setHeaders(e.headers):a.default(e.headers)&&(this.headersTransform=e.headers)}var e,r,i;return e=t,(r=[{key:\"transform\",value:function(t,e){return this.shouldMapRow(t)?e(null,this.processRow(t)):e(null,{row:null,isValid:!0})}},{key:\"shouldMapRow\",value:function(t){var e=this.parserOptions;if(!this.headersTransform&&e.renameHeaders&&!this.processedFirstRow){if(!this.receivedHeaders)throw new Error(\"Error renaming headers: new headers must be provided in an array\");return this.processedFirstRow=!0,!1}if(!this.receivedHeaders&&Array.isArray(t)){if(this.headersTransform)this.setHeaders(this.headersTransform(t));else{if(!this.shouldUseFirstRow)return!0;this.setHeaders(t)}return!1}return!0}},{key:\"processRow\",value:function(t){if(!this.headers)return{row:t,isValid:!0};var e=this.parserOptions;if(!e.discardUnmappedColumns&&t.length>this.headersLength){if(!e.strictColumnHandling)throw new Error(\"Unexpected Error: column header mismatch expected: \".concat(this.headersLength,\" columns got: \").concat(t.length));return{row:t,isValid:!1,reason:\"Column header mismatch expected: \".concat(this.headersLength,\" columns got: \").concat(t.length)}}return e.strictColumnHandling&&t.length<this.headersLength?{row:t,isValid:!1,reason:\"Column header mismatch expected: \".concat(this.headersLength,\" columns got: \").concat(t.length)}:{row:this.mapHeaders(t),isValid:!0}}},{key:\"mapHeaders\",value:function(t){for(var e={},r=this.headers,n=this.headersLength,i=0;i<n;i+=1){var a=r[i];if(!o.default(a)){var s=t[i];o.default(s)?e[a]=\"\":e[a]=s}}return e}},{key:\"setHeaders\",value:function(t){var e,r=t.filter((function(t){return!!t}));if(s.default(r).length!==r.length){var n=u.default(r),i=Object.keys(n).filter((function(t){return n[t].length>1}));throw new Error(\"Duplicate headers found \".concat(JSON.stringify(i)))}this.headers=t,this.receivedHeaders=!0,this.headersLength=(null===(e=this.headers)||void 0===e?void 0:e.length)||0}}])&&n(e.prototype,r),i&&n(e,i),t}();r.HeaderTransformer=c},{\"lodash.groupby\":427,\"lodash.isfunction\":430,\"lodash.isundefined\":432,\"lodash.uniq\":433}],164:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowTransformerValidator=void 0;var o=i(t(\"lodash.isfunction\")),a=t(\"../types\"),s=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._rowTransform=null,this._rowValidator=null}var e,r,i;return e=t,i=[{key:\"createTransform\",value:function(t){return a.isSyncTransform(t)?function(e,r){var n=null;try{n=t(e)}catch(t){return r(t)}return r(null,n)}:t}},{key:\"createValidator\",value:function(t){return a.isSyncValidate(t)?function(e,r){r(null,{row:e,isValid:t(e)})}:function(e,r){t(e,(function(t,n,i){return t?r(t):r(null,n?{row:e,isValid:n,reason:i}:{row:e,isValid:!1,reason:i})}))}}}],(r=[{key:\"transformAndValidate\",value:function(t,e){var r=this;return this.callTransformer(t,(function(t,n){return t?e(t):n?r.callValidator(n,(function(t,r){return t?e(t):r&&!r.isValid?e(null,{row:n,isValid:!1,reason:r.reason}):e(null,{row:n,isValid:!0})})):e(null,{row:null,isValid:!0})}))}},{key:\"callTransformer\",value:function(t,e){return this._rowTransform?this._rowTransform(t,e):e(null,t)}},{key:\"callValidator\",value:function(t,e){return this._rowValidator?this._rowValidator(t,e):e(null,{row:t,isValid:!0})}},{key:\"rowTransform\",set:function(e){if(!o.default(e))throw new TypeError(\"The transform should be a function\");this._rowTransform=t.createTransform(e)}},{key:\"rowValidator\",set:function(e){if(!o.default(e))throw new TypeError(\"The validate should be a function\");this._rowValidator=t.createValidator(e)}}])&&n(e.prototype,r),i&&n(e,i),t}();r.RowTransformerValidator=s},{\"../types\":166,\"lodash.isfunction\":430}],165:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"./RowTransformerValidator\");Object.defineProperty(r,\"RowTransformerValidator\",{enumerable:!0,get:function(){return n.RowTransformerValidator}});var i=t(\"./HeaderTransformer\");Object.defineProperty(r,\"HeaderTransformer\",{enumerable:!0,get:function(){return i.HeaderTransformer}})},{\"./HeaderTransformer\":163,\"./RowTransformerValidator\":164}],166:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.isSyncValidate=r.isSyncTransform=void 0,r.isSyncTransform=function(t){return 1===t.length},r.isSyncValidate=function(t){return 1===t.length}},{}],167:[function(t,e,r){\"use strict\";var n=r;n.bignum=t(\"bn.js\"),n.define=t(\"./asn1/api\").define,n.base=t(\"./asn1/base\"),n.constants=t(\"./asn1/constants\"),n.decoders=t(\"./asn1/decoders\"),n.encoders=t(\"./asn1/encoders\")},{\"./asn1/api\":168,\"./asn1/base\":170,\"./asn1/constants\":174,\"./asn1/decoders\":176,\"./asn1/encoders\":179,\"bn.js\":181}],168:[function(t,e,r){\"use strict\";var n=t(\"./encoders\"),i=t(\"./decoders\"),o=t(\"inherits\");function a(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}r.define=function(t,e){return new a(t,e)},a.prototype._createNamed=function(t){var e=this.name;function r(t){this._initNamed(t,e)}return o(r,t),r.prototype._initNamed=function(e,r){t.call(this,e,r)},new r(this)},a.prototype._getDecoder=function(t){return t=t||\"der\",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(i[t])),this.decoders[t]},a.prototype.decode=function(t,e,r){return this._getDecoder(e).decode(t,r)},a.prototype._getEncoder=function(t){return t=t||\"der\",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(n[t])),this.encoders[t]},a.prototype.encode=function(t,e,r){return this._getEncoder(e).encode(t,r)}},{\"./decoders\":176,\"./encoders\":179,inherits:387}],169:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"inherits\"),o=t(\"../base/reporter\").Reporter,a=t(\"safer-buffer\").Buffer;function s(t,e){o.call(this,e),a.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error(\"Input not Buffer\")}function u(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return u.isEncoderBuffer(t)||(t=new u(t,e)),this.length+=t.length,t}),this);else if(\"number\"==typeof t){if(!(0<=t&&t<=255))return e.error(\"non-byte EncoderBuffer value\");this.value=t,this.length=1}else if(\"string\"==typeof t)this.value=t,this.length=a.byteLength(t);else{if(!a.isBuffer(t))return e.error(\"Unsupported type: \"+n(t));this.value=t,this.length=t.length}}i(s,o),r.DecoderBuffer=s,s.isDecoderBuffer=function(t){return t instanceof s||\"object\"===n(t)&&a.isBuffer(t.base)&&\"DecoderBuffer\"===t.constructor.name&&\"number\"==typeof t.offset&&\"number\"==typeof t.length&&\"function\"==typeof t.save&&\"function\"==typeof t.restore&&\"function\"==typeof t.isEmpty&&\"function\"==typeof t.readUInt8&&\"function\"==typeof t.skip&&\"function\"==typeof t.raw},s.prototype.save=function(){return{offset:this.offset,reporter:o.prototype.save.call(this)}},s.prototype.restore=function(t){var e=new s(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,o.prototype.restore.call(this,t.reporter),e},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||\"DecoderBuffer overrun\")},s.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||\"DecoderBuffer overrun\");var r=new s(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},s.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},r.EncoderBuffer=u,u.isEncoderBuffer=function(t){return t instanceof u||\"object\"===n(t)&&\"EncoderBuffer\"===t.constructor.name&&\"number\"==typeof t.length&&\"function\"==typeof t.join},u.prototype.join=function(t,e){return t||(t=a.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):(\"number\"==typeof this.value?t[e]=this.value:\"string\"==typeof this.value?t.write(this.value,e):a.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},{\"../base/reporter\":172,inherits:387,\"safer-buffer\":495}],170:[function(t,e,r){\"use strict\";var n=r;n.Reporter=t(\"./reporter\").Reporter,n.DecoderBuffer=t(\"./buffer\").DecoderBuffer,n.EncoderBuffer=t(\"./buffer\").EncoderBuffer,n.Node=t(\"./node\")},{\"./buffer\":169,\"./node\":171,\"./reporter\":172}],171:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"../base/reporter\").Reporter,o=t(\"../base/buffer\").EncoderBuffer,a=t(\"../base/buffer\").DecoderBuffer,s=t(\"minimalistic-assert\"),u=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"],c=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(u);function f(t,e,r){var n={};this._baseState=n,n.name=r,n.enc=t,n.parent=e||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=f;var l=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];f.prototype.clone=function(){var t=this._baseState,e={};l.forEach((function(r){e[r]=t[r]}));var r=new this.constructor(e.parent);return r._baseState=e,r},f.prototype._wrap=function(){var t=this._baseState;c.forEach((function(e){this[e]=function(){var r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},f.prototype._init=function(t){var e=this._baseState;s(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),s.equal(e.children.length,1,\"Root node can have only one child\")},f.prototype._useArgs=function(t){var e=this._baseState,r=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==r.length&&(s(null===e.children),e.children=r,r.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(s(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if(\"object\"!==n(t)||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(r){r==(0|r)&&(r|=0);var n=t[r];e[n]=r})),e})))},[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"].forEach((function(t){f.prototype[t]=function(){var e=this._baseState;throw new Error(t+\" not implemented for encoding: \"+e.enc)}})),u.forEach((function(t){f.prototype[t]=function(){var e=this._baseState,r=Array.prototype.slice.call(arguments);return s(null===e.tag),e.tag=t,this._useArgs(r),this}})),f.prototype.use=function(t){s(t);var e=this._baseState;return s(null===e.use),e.use=t,this},f.prototype.optional=function(){return this._baseState.optional=!0,this},f.prototype.def=function(t){var e=this._baseState;return s(null===e.default),e.default=t,e.optional=!0,this},f.prototype.explicit=function(t){var e=this._baseState;return s(null===e.explicit&&null===e.implicit),e.explicit=t,this},f.prototype.implicit=function(t){var e=this._baseState;return s(null===e.explicit&&null===e.implicit),e.implicit=t,this},f.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},f.prototype.key=function(t){var e=this._baseState;return s(null===e.key),e.key=t,this},f.prototype.any=function(){return this._baseState.any=!0,this},f.prototype.choice=function(t){var e=this._baseState;return s(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},f.prototype.contains=function(t){var e=this._baseState;return s(null===e.use),e.contains=t,this},f.prototype._decode=function(t,e){var r=this._baseState;if(null===r.parent)return t.wrapResult(r.children[0]._decode(t,e));var n,i=r.default,o=!0,s=null;if(null!==r.key&&(s=t.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(o=this._peekTag(t,u,r.any),t.isError(o))return o}else{var c=t.save();try{null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),o=!0}catch(t){o=!1}t.restore(c)}}if(r.obj&&o&&(n=t.enterObject()),o){if(null!==r.explicit){var f=this._decodeTag(t,r.explicit);if(t.isError(f))return f;t=f}var l=t.offset;if(null===r.use&&null===r.choice){var h;r.any&&(h=t.save());var d=this._decodeTag(t,null!==r.implicit?r.implicit:r.tag,r.any);if(t.isError(d))return d;r.any?i=t.raw(h):t=d}if(e&&e.track&&null!==r.tag&&e.track(t.path(),l,t.length,\"tagged\"),e&&e.track&&null!==r.tag&&e.track(t.path(),t.offset,t.length,\"content\"),r.any||(i=null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e)),t.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(t,e)})),r.contains&&(\"octstr\"===r.tag||\"bitstr\"===r.tag)){var p=new a(i);i=this._getUse(r.contains,t._reporterState.obj)._decode(p,e)}}return r.obj&&o&&(i=t.leaveObject(n)),null===r.key||null===i&&!0!==o?null!==s&&t.exitKey(s):t.leaveKey(s,r.key,i),i},f.prototype._decodeGeneric=function(t,e,r){var n=this._baseState;return\"seq\"===t||\"set\"===t?null:\"seqof\"===t||\"setof\"===t?this._decodeList(e,t,n.args[0],r):/str$/.test(t)?this._decodeStr(e,t,r):\"objid\"===t&&n.args?this._decodeObjid(e,n.args[0],n.args[1],r):\"objid\"===t?this._decodeObjid(e,null,null,r):\"gentime\"===t||\"utctime\"===t?this._decodeTime(e,t,r):\"null_\"===t?this._decodeNull(e,r):\"bool\"===t?this._decodeBool(e,r):\"objDesc\"===t?this._decodeStr(e,t,r):\"int\"===t||\"enum\"===t?this._decodeInt(e,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,e._reporterState.obj)._decode(e,r):e.error(\"unknown tag: \"+t)},f.prototype._getUse=function(t,e){var r=this._baseState;return r.useDecoder=this._use(t,e),s(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},f.prototype._decodeChoice=function(t,e){var r=this._baseState,n=null,i=!1;return Object.keys(r.choice).some((function(o){var a=t.save(),s=r.choice[o];try{var u=s._decode(t,e);if(t.isError(u))return!1;n={type:o,value:u},i=!0}catch(e){return t.restore(a),!1}return!0}),this),i?n:t.error(\"Choice not matched\")},f.prototype._createEncoderBuffer=function(t){return new o(t,this.reporter)},f.prototype._encode=function(t,e,r){var n=this._baseState;if(null===n.default||n.default!==t){var i=this._encodeValue(t,e,r);if(void 0!==i&&!this._skipDefault(i,e,r))return i}},f.prototype._encodeValue=function(t,e,r){var o=this._baseState;if(null===o.parent)return o.children[0]._encode(t,e||new i);var a=null;if(this.reporter=e,o.optional&&void 0===t){if(null===o.default)return;t=o.default}var s=null,u=!1;if(o.any)a=this._createEncoderBuffer(t);else if(o.choice)a=this._encodeChoice(t,e);else if(o.contains)s=this._getUse(o.contains,r)._encode(t,e),u=!0;else if(o.children)s=o.children.map((function(r){if(\"null_\"===r._baseState.tag)return r._encode(null,e,t);if(null===r._baseState.key)return e.error(\"Child should have a key\");var i=e.enterKey(r._baseState.key);if(\"object\"!==n(t))return e.error(\"Child expected, but input is not object\");var o=r._encode(t[r._baseState.key],e,t);return e.leaveKey(i),o}),this).filter((function(t){return t})),s=this._createEncoderBuffer(s);else if(\"seqof\"===o.tag||\"setof\"===o.tag){if(!o.args||1!==o.args.length)return e.error(\"Too many args for : \"+o.tag);if(!Array.isArray(t))return e.error(\"seqof/setof, but data is not Array\");var c=this.clone();c._baseState.implicit=null,s=this._createEncoderBuffer(t.map((function(r){var n=this._baseState;return this._getUse(n.args[0],t)._encode(r,e)}),c))}else null!==o.use?a=this._getUse(o.use,r)._encode(t,e):(s=this._encodePrimitive(o.tag,t),u=!0);if(!o.any&&null===o.choice){var f=null!==o.implicit?o.implicit:o.tag,l=null===o.implicit?\"universal\":\"context\";null===f?null===o.use&&e.error(\"Tag could be omitted only for .use()\"):null===o.use&&(a=this._encodeComposite(f,u,l,s))}return null!==o.explicit&&(a=this._encodeComposite(o.explicit,!1,\"context\",a)),a},f.prototype._encodeChoice=function(t,e){var r=this._baseState,n=r.choice[t.type];return n||s(!1,t.type+\" not found in \"+JSON.stringify(Object.keys(r.choice))),n._encode(t.value,e)},f.prototype._encodePrimitive=function(t,e){var r=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if(\"objid\"===t&&r.args)return this._encodeObjid(e,r.reverseArgs[0],r.args[1]);if(\"objid\"===t)return this._encodeObjid(e,null,null);if(\"gentime\"===t||\"utctime\"===t)return this._encodeTime(e,t);if(\"null_\"===t)return this._encodeNull();if(\"int\"===t||\"enum\"===t)return this._encodeInt(e,r.args&&r.reverseArgs[0]);if(\"bool\"===t)return this._encodeBool(e);if(\"objDesc\"===t)return this._encodeStr(e,t);throw new Error(\"Unsupported tag: \"+t)},f.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},f.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(t)}},{\"../base/buffer\":169,\"../base/reporter\":172,\"minimalistic-assert\":437}],172:[function(t,e,r){\"use strict\";var n=t(\"inherits\");function i(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}r.Reporter=i,i.prototype.isError=function(t){return t instanceof o},i.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},i.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},i.prototype.enterKey=function(t){return this._reporterState.path.push(t)},i.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},i.prototype.leaveKey=function(t,e,r){var n=this._reporterState;this.exitKey(t),null!==n.obj&&(n.obj[e]=r)},i.prototype.path=function(){return this._reporterState.path.join(\"/\")},i.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},i.prototype.leaveObject=function(t){var e=this._reporterState,r=e.obj;return e.obj=t,r},i.prototype.error=function(t){var e,r=this._reporterState,n=t instanceof o;if(e=n?t:new o(r.path.map((function(t){return\"[\"+JSON.stringify(t)+\"]\"})).join(\"\"),t.message||t,t.stack),!r.options.partial)throw e;return n||r.errors.push(e),e},i.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},n(o,Error),o.prototype.rethrow=function(t){if(this.message=t+\" at: \"+(this.path||\"(shallow)\"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this}},{inherits:387}],173:[function(t,e,r){\"use strict\";function n(t){var e={};return Object.keys(t).forEach((function(r){(0|r)==r&&(r|=0);var n=t[r];e[n]=r})),e}r.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"},r.tagClassByName=n(r.tagClass),r.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"},r.tagByName=n(r.tag)},{}],174:[function(t,e,r){\"use strict\";var n=r;n._reverse=function(t){var e={};return Object.keys(t).forEach((function(r){(0|r)==r&&(r|=0);var n=t[r];e[n]=r})),e},n.der=t(\"./der\")},{\"./der\":173}],175:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"bn.js\"),o=t(\"../base/buffer\").DecoderBuffer,a=t(\"../base/node\"),s=t(\"../constants/der\");function u(t){this.enc=\"der\",this.name=t.name,this.entity=t,this.tree=new c,this.tree._init(t.body)}function c(t){a.call(this,\"der\",t)}function f(t,e){var r=t.readUInt8(e);if(t.isError(r))return r;var n=s.tagClass[r>>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:s.tag[r]}}function l(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return t.error(\"length octect is too long\");n=0;for(var o=0;o<i;o++){n<<=8;var a=t.readUInt8(r);if(t.isError(a))return a;n|=a}return n}e.exports=u,u.prototype.decode=function(t,e){return o.isDecoderBuffer(t)||(t=new o(t,e)),this.tree._decode(t,e)},n(c,a),c.prototype._peekTag=function(t,e,r){if(t.isEmpty())return!1;var n=t.save(),i=f(t,'Failed to peek tag: \"'+e+'\"');return t.isError(i)?i:(t.restore(n),i.tag===e||i.tagStr===e||i.tagStr+\"of\"===e||r)},c.prototype._decodeTag=function(t,e,r){var n=f(t,'Failed to decode tag of \"'+e+'\"');if(t.isError(n))return n;var i=l(t,n.primitive,'Failed to get length of \"'+e+'\"');if(t.isError(i))return i;if(!r&&n.tag!==e&&n.tagStr!==e&&n.tagStr+\"of\"!==e)return t.error('Failed to match tag: \"'+e+'\"');if(n.primitive||null!==i)return t.skip(i,'Failed to match body of: \"'+e+'\"');var o=t.save(),a=this._skipUntilEnd(t,'Failed to skip indefinite length body: \"'+this.tag+'\"');return t.isError(a)?a:(i=t.offset-o.offset,t.restore(o),t.skip(i,'Failed to match body of: \"'+e+'\"'))},c.prototype._skipUntilEnd=function(t,e){for(;;){var r=f(t,e);if(t.isError(r))return r;var n=l(t,r.primitive,e);if(t.isError(n))return n;var i=void 0;if(i=r.primitive||null!==n?t.skip(n):this._skipUntilEnd(t,e),t.isError(i))return i;if(\"end\"===r.tagStr)break}},c.prototype._decodeList=function(t,e,r,n){for(var i=[];!t.isEmpty();){var o=this._peekTag(t,\"end\");if(t.isError(o))return o;var a=r.decode(t,\"der\",n);if(t.isError(a)&&o)break;i.push(a)}return i},c.prototype._decodeStr=function(t,e){if(\"bitstr\"===e){var r=t.readUInt8();return t.isError(r)?r:{unused:r,data:t.raw()}}if(\"bmpstr\"===e){var n=t.raw();if(n.length%2==1)return t.error(\"Decoding of string type: bmpstr length mismatch\");for(var i=\"\",o=0;o<n.length/2;o++)i+=String.fromCharCode(n.readUInt16BE(2*o));return i}if(\"numstr\"===e){var a=t.raw().toString(\"ascii\");return this._isNumstr(a)?a:t.error(\"Decoding of string type: numstr unsupported characters\")}if(\"octstr\"===e)return t.raw();if(\"objDesc\"===e)return t.raw();if(\"printstr\"===e){var s=t.raw().toString(\"ascii\");return this._isPrintstr(s)?s:t.error(\"Decoding of string type: printstr unsupported characters\")}return/str$/.test(e)?t.raw().toString():t.error(\"Decoding of string type: \"+e+\" unsupported\")},c.prototype._decodeObjid=function(t,e,r){for(var n,i=[],o=0,a=0;!t.isEmpty();)o<<=7,o|=127&(a=t.readUInt8()),0==(128&a)&&(i.push(o),o=0);128&a&&i.push(o);var s=i[0]/40|0,u=i[0]%40;if(n=r?i:[s,u].concat(i.slice(1)),e){var c=e[n.join(\" \")];void 0===c&&(c=e[n.join(\".\")]),void 0!==c&&(n=c)}return n},c.prototype._decodeTime=function(t,e){var r,n,i,o,a,s,u=t.raw().toString();if(\"gentime\"===e)r=0|u.slice(0,4),n=0|u.slice(4,6),i=0|u.slice(6,8),o=0|u.slice(8,10),a=0|u.slice(10,12),s=0|u.slice(12,14);else{if(\"utctime\"!==e)return t.error(\"Decoding \"+e+\" time is not supported yet\");r=0|u.slice(0,2),n=0|u.slice(2,4),i=0|u.slice(4,6),o=0|u.slice(6,8),a=0|u.slice(8,10),s=0|u.slice(10,12),r=r<70?2e3+r:1900+r}return Date.UTC(r,n-1,i,o,a,s,0)},c.prototype._decodeNull=function(){return null},c.prototype._decodeBool=function(t){var e=t.readUInt8();return t.isError(e)?e:0!==e},c.prototype._decodeInt=function(t,e){var r=t.raw(),n=new i(r);return e&&(n=e[n.toString(10)]||n),n},c.prototype._use=function(t,e){return\"function\"==typeof t&&(t=t(e)),t._getDecoder(\"der\").tree}},{\"../base/buffer\":169,\"../base/node\":171,\"../constants/der\":173,\"bn.js\":181,inherits:387}],176:[function(t,e,r){\"use strict\";var n=r;n.der=t(\"./der\"),n.pem=t(\"./pem\")},{\"./der\":175,\"./pem\":177}],177:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"safer-buffer\").Buffer,o=t(\"./der\");function a(t){o.call(this,t),this.enc=\"pem\"}n(a,o),e.exports=a,a.prototype.decode=function(t,e){for(var r=t.toString().split(/[\\r\\n]+/g),n=e.label.toUpperCase(),a=/^-----(BEGIN|END) ([^-]+)-----$/,s=-1,u=-1,c=0;c<r.length;c++){var f=r[c].match(a);if(null!==f&&f[2]===n){if(-1!==s){if(\"END\"!==f[1])break;u=c;break}if(\"BEGIN\"!==f[1])break;s=c}}if(-1===s||-1===u)throw new Error(\"PEM section not found for: \"+n);var l=r.slice(s+1,u).join(\"\");l.replace(/[^a-z0-9+/=]+/gi,\"\");var h=i.from(l,\"base64\");return o.prototype.decode.call(this,h,e)}},{\"./der\":175,inherits:387,\"safer-buffer\":495}],178:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"safer-buffer\").Buffer,o=t(\"../base/node\"),a=t(\"../constants/der\");function s(t){this.enc=\"der\",this.name=t.name,this.entity=t,this.tree=new u,this.tree._init(t.body)}function u(t){o.call(this,\"der\",t)}function c(t){return t<10?\"0\"+t:t}e.exports=s,s.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},n(u,o),u.prototype._encodeComposite=function(t,e,r,n){var o=function(t,e,r,n){var i;\"seqof\"===t?t=\"seq\":\"setof\"===t&&(t=\"set\");if(a.tagByName.hasOwnProperty(t))i=a.tagByName[t];else{if(\"number\"!=typeof t||(0|t)!==t)return n.error(\"Unknown tag: \"+t);i=t}if(i>=31)return n.error(\"Multi-octet tag encoding unsupported\");e||(i|=32);return i|=a.tagClassByName[r||\"universal\"]<<6}(t,e,r,this.reporter);if(n.length<128){var s=i.alloc(2);return s[0]=o,s[1]=n.length,this._createEncoderBuffer([s,n])}for(var u=1,c=n.length;c>=256;c>>=8)u++;var f=i.alloc(2+u);f[0]=o,f[1]=128|u;for(var l=1+u,h=n.length;h>0;l--,h>>=8)f[l]=255&h;return this._createEncoderBuffer([f,n])},u.prototype._encodeStr=function(t,e){if(\"bitstr\"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if(\"bmpstr\"===e){for(var r=i.alloc(2*t.length),n=0;n<t.length;n++)r.writeUInt16BE(t.charCodeAt(n),2*n);return this._createEncoderBuffer(r)}return\"numstr\"===e?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error(\"Encoding of string type: numstr supports only digits and space\"):\"printstr\"===e?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error(\"Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark\"):/str$/.test(e)||\"objDesc\"===e?this._createEncoderBuffer(t):this.reporter.error(\"Encoding of string type: \"+e+\" unsupported\")},u.prototype._encodeObjid=function(t,e,r){if(\"string\"==typeof t){if(!e)return this.reporter.error(\"string objid given, but no values map found\");if(!e.hasOwnProperty(t))return this.reporter.error(\"objid not found in values map\");t=e[t].split(/[\\s.]+/g);for(var n=0;n<t.length;n++)t[n]|=0}else if(Array.isArray(t)){t=t.slice();for(var o=0;o<t.length;o++)t[o]|=0}if(!Array.isArray(t))return this.reporter.error(\"objid() should be either array or string, got: \"+JSON.stringify(t));if(!r){if(t[1]>=40)return this.reporter.error(\"Second objid identifier OOB\");t.splice(0,2,40*t[0]+t[1])}for(var a=0,s=0;s<t.length;s++){var u=t[s];for(a++;u>=128;u>>=7)a++}for(var c=i.alloc(a),f=c.length-1,l=t.length-1;l>=0;l--){var h=t[l];for(c[f--]=127&h;(h>>=7)>0;)c[f--]=128|127&h}return this._createEncoderBuffer(c)},u.prototype._encodeTime=function(t,e){var r,n=new Date(t);return\"gentime\"===e?r=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),\"Z\"].join(\"\"):\"utctime\"===e?r=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),\"Z\"].join(\"\"):this.reporter.error(\"Encoding \"+e+\" time is not supported yet\"),this._encodeStr(r,\"octstr\")},u.prototype._encodeNull=function(){return this._createEncoderBuffer(\"\")},u.prototype._encodeInt=function(t,e){if(\"string\"==typeof t){if(!e)return this.reporter.error(\"String int or enum given, but no values map\");if(!e.hasOwnProperty(t))return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(t));t=e[t]}if(\"number\"!=typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=i.from(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=i.alloc(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);for(var a=1,s=t;s>=256;s>>=8)a++;for(var u=new Array(a),c=u.length-1;c>=0;c--)u[c]=255&t,t>>=8;return 128&u[0]&&u.unshift(0),this._createEncoderBuffer(i.from(u))},u.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},u.prototype._use=function(t,e){return\"function\"==typeof t&&(t=t(e)),t._getEncoder(\"der\").tree},u.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n<o.length;n++)if(o[n]!==i.defaultBuffer[n])return!1;return!0}},{\"../base/node\":171,\"../constants/der\":173,inherits:387,\"safer-buffer\":495}],179:[function(t,e,r){\"use strict\";var n=r;n.der=t(\"./der\"),n.pem=t(\"./pem\")},{\"./der\":178,\"./pem\":180}],180:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./der\");function o(t){i.call(this,t),this.enc=\"pem\"}n(o,i),e.exports=o,o.prototype.encode=function(t,e){for(var r=i.prototype.encode.call(this,t).toString(\"base64\"),n=[\"-----BEGIN \"+e.label+\"-----\"],o=0;o<r.length;o+=64)n.push(r.slice(o,o+64));return n.push(\"-----END \"+e.label+\"-----\"),n.join(\"\\n\")}},{\"./der\":178,inherits:387}],181:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(e,r){function i(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\"le\"!==e&&\"be\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\"be\"))}var s;\"object\"===n(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=t(\"buffer\").Buffer}catch(t){}function u(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o<i;o++){var a=t.charCodeAt(o)-48;n<<=4,n|=a>=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function c(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a<o;a++){var s=t.charCodeAt(a)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&\"object\"===n(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if(\"number\"==typeof t)return this._initNumber(t,e,r);if(\"object\"===n(t))return this._initArray(t,e,r);\"hex\"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36);var o=0;\"-\"===(t=t.toString().replace(/\\s+/g,\"\"))[0]&&o++,16===e?this._parseHex(t,o):this._parseBase(t,e,o),\"-\"===t[0]&&(this.negative=1),this.strip(),\"le\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i(\"number\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if(\"be\"===r)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if(\"le\"===r)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,i,o=0;for(r=t.length-6,n=0;r>=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<<o&67108863,this.words[n+1]|=i>>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<<o&67108863,this.words[n+1]|=i>>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f<s;f+=n)u=c(t,f,f+n,e),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==a){var l=1;for(u=c(t,f,t.length,e),f=0;f<a;f++)l*=e;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"};var f=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var f=u>>>26,l=67108863&u,h=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=h;d++){var p=c-d|0;f+=(a=(i=0|t.words[p])*(o=0|e.words[d])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||\"hex\"===t){r=\"\";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],u=(16777215&(s<<n|o)).toString(16);r=0!==(o=s>>>24-n&16777215)||a!==this.length-1?f[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=l[t],d=h[t];r=\"\";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(d).toString(t);r=(p=p.idivn(d)).isZero()?m+r:f[c-m.length]+m+r}for(this.isZero()&&(r=\"0\"+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}i(!1,\"Base should be between 2 and 36\")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,\"byte array longer than desired length\"),i(o>0,\"Requested array length <= 0\"),this.strip();var a,s,u=\"le\"===e,c=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[s]=a;for(;s<o;s++)c[s]=0}else{for(s=0;s<o-n;s++)c[s]=0;for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[o-s-1]=a}return c},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},a.prototype.ior=function(t){return i(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},a.prototype.iand=function(t){return i(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},a.prototype.ixor=function(t){return i(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i(\"number\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return r>0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i(\"number\"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<n:this.words[r]&~(1<<n),this.strip()},a.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a<n.length;a++)o=(e=(0|r.words[a])-(0|n.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<r.length;a++)o=(e=(0|r.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<r.length&&r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this.length=Math.max(this.length,a),r!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,r){var n,i,o,a=t.words,s=e.words,u=r.words,c=0,f=0|a[0],l=8191&f,h=f>>>13,d=0|a[1],p=8191&d,m=d>>>13,y=0|a[2],b=8191&y,v=y>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],x=8191&k,S=k>>>13,O=0|a[5],j=8191&O,E=O>>>13,R=0|a[6],T=8191&R,C=R>>>13,P=0|a[7],M=8191&P,A=P>>>13,I=0|a[8],N=8191&I,D=I>>>13,B=0|a[9],F=8191&B,L=B>>>13,z=0|s[0],U=8191&z,H=z>>>13,V=0|s[1],q=8191&V,W=V>>>13,$=0|s[2],X=8191&$,K=$>>>13,Z=0|s[3],Y=8191&Z,G=Z>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ct=st>>>13,ft=0|s[8],lt=8191&ft,ht=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(c+(n=Math.imul(l,U))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(h,U)|0))<<13)|0;c=((o=Math.imul(h,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,H))+Math.imul(m,U)|0,o=Math.imul(m,H);var bt=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(h,q)|0))<<13)|0;c=((o=o+Math.imul(h,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,H))+Math.imul(v,U)|0,o=Math.imul(v,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,W)|0;var vt=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(h,X)|0))<<13)|0;c=((o=o+Math.imul(h,K)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,H))+Math.imul(_,U)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,W)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,K)|0;var gt=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(i=(i=i+Math.imul(l,G)|0)+Math.imul(h,Y)|0))<<13)|0;c=((o=o+Math.imul(h,G)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,H))+Math.imul(S,U)|0,o=Math.imul(S,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,X)|0,o=o+Math.imul(v,K)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,G)|0;var wt=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((o=o+Math.imul(h,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,H))+Math.imul(E,U)|0,o=Math.imul(E,H),n=n+Math.imul(x,q)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(S,q)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(v,Y)|0,o=o+Math.imul(v,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0;var _t=(c+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((o=o+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,H))+Math.imul(C,U)|0,o=Math.imul(C,H),n=n+Math.imul(j,q)|0,i=(i=i+Math.imul(j,W)|0)+Math.imul(E,q)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,K)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,G)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var kt=(c+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,at)|0)+Math.imul(h,ot)|0))<<13)|0;c=((o=o+Math.imul(h,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,H))+Math.imul(A,U)|0,o=Math.imul(A,H),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(C,q)|0,o=o+Math.imul(C,W)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,K)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var xt=(c+(n=n+Math.imul(l,ut)|0)|0)+((8191&(i=(i=i+Math.imul(l,ct)|0)+Math.imul(h,ut)|0))<<13)|0;c=((o=o+Math.imul(h,ct)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(N,U),i=(i=Math.imul(N,H))+Math.imul(D,U)|0,o=Math.imul(D,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,W)|0,n=n+Math.imul(T,X)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul(j,Y)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var St=(c+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ht)|0)+Math.imul(h,lt)|0))<<13)|0;c=((o=o+Math.imul(h,ht)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,H))+Math.imul(L,U)|0,o=Math.imul(L,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,W)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,W)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(b,ut)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ct)|0,n=n+Math.imul(p,lt)|0,i=(i=i+Math.imul(p,ht)|0)+Math.imul(m,lt)|0,o=o+Math.imul(m,ht)|0;var Ot=(c+(n=n+Math.imul(l,pt)|0)|0)+((8191&(i=(i=i+Math.imul(l,mt)|0)+Math.imul(h,pt)|0))<<13)|0;c=((o=o+Math.imul(h,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,q),i=(i=Math.imul(F,W))+Math.imul(L,q)|0,o=Math.imul(L,W),n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul(j,rt)|0,i=(i=i+Math.imul(j,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ct)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ct)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(v,lt)|0,o=o+Math.imul(v,ht)|0;var jt=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,o=Math.imul(L,K),n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,G)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,G)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul(j,ot)|0,i=(i=i+Math.imul(j,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ct)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,lt)|0,i=(i=i+Math.imul(w,ht)|0)+Math.imul(_,lt)|0,o=o+Math.imul(_,ht)|0;var Et=(c+(n=n+Math.imul(b,pt)|0)|0)+((8191&(i=(i=i+Math.imul(b,mt)|0)+Math.imul(v,pt)|0))<<13)|0;c=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,G))+Math.imul(L,Y)|0,o=Math.imul(L,G),n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,tt)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul(j,ut)|0,i=(i=i+Math.imul(j,ct)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ct)|0,n=n+Math.imul(x,lt)|0,i=(i=i+Math.imul(x,ht)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ht)|0;var Rt=(c+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,mt)|0)+Math.imul(_,pt)|0))<<13)|0;c=((o=o+Math.imul(_,mt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(L,Q)|0,o=Math.imul(L,tt),n=n+Math.imul(N,rt)|0,i=(i=i+Math.imul(N,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,at)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,at)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(C,ut)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul(j,lt)|0,i=(i=i+Math.imul(j,ht)|0)+Math.imul(E,lt)|0,o=o+Math.imul(E,ht)|0;var Tt=(c+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(S,pt)|0))<<13)|0;c=((o=o+Math.imul(S,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(L,rt)|0,o=Math.imul(L,nt),n=n+Math.imul(N,ot)|0,i=(i=i+Math.imul(N,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(C,lt)|0,o=o+Math.imul(C,ht)|0;var Ct=(c+(n=n+Math.imul(j,pt)|0)|0)+((8191&(i=(i=i+Math.imul(j,mt)|0)+Math.imul(E,pt)|0))<<13)|0;c=((o=o+Math.imul(E,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,ot),i=(i=Math.imul(F,at))+Math.imul(L,ot)|0,o=Math.imul(L,at),n=n+Math.imul(N,ut)|0,i=(i=i+Math.imul(N,ct)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,ct)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(A,lt)|0,o=o+Math.imul(A,ht)|0;var Pt=(c+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(C,pt)|0))<<13)|0;c=((o=o+Math.imul(C,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(F,ut),i=(i=Math.imul(F,ct))+Math.imul(L,ut)|0,o=Math.imul(L,ct),n=n+Math.imul(N,lt)|0,i=(i=i+Math.imul(N,ht)|0)+Math.imul(D,lt)|0,o=o+Math.imul(D,ht)|0;var Mt=(c+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ht))+Math.imul(L,lt)|0,o=Math.imul(L,ht);var At=(c+(n=n+Math.imul(N,pt)|0)|0)+((8191&(i=(i=i+Math.imul(N,mt)|0)+Math.imul(D,pt)|0))<<13)|0;c=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863;var It=(c+(n=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,mt))+Math.imul(L,pt)|0))<<13)|0;return c=((o=Math.imul(L,mt))+(i>>>13)|0)+(It>>>26)|0,It&=67108863,u[0]=yt,u[1]=bt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=xt,u[8]=St,u[9]=Ot,u[10]=jt,u[11]=Et,u[12]=Rt,u[13]=Tt,u[14]=Ct,u[15]=Pt,u[16]=Mt,u[17]=At,u[18]=It,0!==c&&(u[19]=c,r.length++),r};function m(t,e,r){return(new y).mulp(t,e,r)}function y(t,e){this.x=t,this.y=e}Math.imul||(p=d),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?d(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var a=i;i=0;for(var s=67108863&n,u=Math.min(o,e.length-1),c=Math.max(0,o-t.length+1);c<=u;c++){var f=o-c,l=(0|t.words[f])*(0|e.words[c]),h=67108863&l;s=67108863&(h=h+s|0),i+=(a=(a=a+(l/67108864|0)|0)+(h>>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):m(this,t,e)},y.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},y.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},y.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a<o;a++)n[a]=e[t[a]],i[a]=r[t[a]]},y.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var a=1;a<i;a<<=1)for(var s=a<<1,u=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),f=0;f<i;f+=s)for(var l=u,h=c,d=0;d<a;d++){var p=r[f+d],m=n[f+d],y=r[f+d+a],b=n[f+d+a],v=l*y-h*b;b=l*b+h*y,y=v,r[f+d]=p+y,n[f+d]=m+b,r[f+d+a]=p-y,n[f+d+a]=m-b,d!==s&&(v=u*l-c*h,h=u*h+c*l,l=v)}},y.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},y.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},y.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},y.prototype.convert13b=function(t,e,r,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],r[2*a]=8191&o,o>>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)r[a]=0;i(0===o),i(0==(-8192&o))},y.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},y.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),a=new Array(n),s=new Array(n),u=new Array(n),c=new Array(n),f=new Array(n),l=new Array(n),h=r.words;h.length=n,this.convert13b(t.words,t.length,a,n),this.convert13b(e.words,e.length,c,n),this.transform(a,o,s,u,n,i),this.transform(c,o,f,l,n,i);for(var d=0;d<n;d++){var p=s[d]*f[d]-u[d]*l[d];u[d]=s[d]*l[d]+u[d]*f[d],s[d]=p}return this.conjugate(s,u,n),this.transform(s,u,h,o,n,i),this.conjugate(h,o,n),this.normalize13b(h,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),m(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){i(\"number\"==typeof t),i(t<67108864);for(var e=0,r=0;r<this.length;r++){var n=(0|this.words[r])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},a.prototype.iushln=function(t){i(\"number\"==typeof t&&t>=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,u=(0|this.words[e])-s<<r;this.words[e]=u|a,a=s>>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},a.prototype.ishln=function(t){return i(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,r){var n;i(\"number\"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,u=r;if(n-=a,n=Math.max(0,n),u){for(var c=0;c<a;c++)u.words[c]=this.words[c];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,c=0;c<this.length;c++)this.words[c]=this.words[c+a];else this.words[0]=0,this.length=1;var f=0;for(c=this.length-1;c>=0&&(0!==f||c>=n);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<<e;return!(this.length<=r)&&!!(this.words[r]&n)},a.prototype.imaskn=function(t){i(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return i(\"number\"==typeof t),i(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i(\"number\"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,r){var n,o,a=t.length+r;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+r])+s;var u=(0|t.words[n])*e;s=((o-=67108863&u)>>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n<this.length-r;n++)s=(o=(0|this.words[n+r])+s)>>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if(\"mod\"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var f=n.clone()._ishlnsubmul(i,1,u);0===f.negative&&(n=f,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var h=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,l);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=h)}return s&&s.strip(),n.strip(),\"div\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\"mod\"!==e&&(n=s.div.neg()),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\"mod\"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,\"div\",!1).div},a.prototype.mod=function(t){return this.divmod(t,\"mod\",!1).mod},a.prototype.umod=function(t){return this.divmod(t,\"mod\",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=e.clone();!e.isZero();){for(var h=0,d=1;0==(e.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(f),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(e.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,h=1;0==(r.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i(\"number\"==typeof t);var e=t%26,r=(t-e)/26,n=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=n,this;for(var o=n,a=r;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,\"Number is too big\");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new x(t)},a.prototype.toRed=function(t){return i(!this.red,\"Already a number in reduction context\"),i(0===this.negative,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function w(){v.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function _(){v.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function k(){v.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function x(t){if(\"string\"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),\"modulus must be greater than 1\"),this.m=t,this.prime=null}function S(t){x.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,n=10;n<t.length;n++){var o=0|t.words[n];t.words[n-10]=(4194303&o)<<4|i>>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},o(w,v),o(_,v),o(k,v),k.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(b[t])return b[t];var e;if(\"k256\"===t)e=new g;else if(\"p224\"===t)e=new w;else if(\"p192\"===t)e=new _;else{if(\"p25519\"!==t)throw new Error(\"Unknown prime \"+t);e=new k}return b[t]=e,e},x.prototype._verify1=function(t){i(0===t.negative,\"red works only with positives\"),i(t.red,\"red works only with red numbers\")},x.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),\"red works only with positives\"),i(t.red&&t.red===e.red,\"red works only with red numbers\")},x.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},x.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},x.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},x.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},x.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},x.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},x.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},x.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},x.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},x.prototype.isqr=function(t){return this.imul(t,t.clone())},x.prototype.sqr=function(t){return this.mul(t,t)},x.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,n),h=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=o;0!==d.cmp(s);){for(var m=d,y=0;0!==m.cmp(s);y++)m=m.redSqr();i(y<p);var b=this.pow(l,new a(1).iushln(p-y-1));h=h.redMul(b),l=b.redSqr(),d=d.redMul(l),p=y}return h},x.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},x.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,s=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===n&&0===f)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},x.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},x.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,x),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e)},{buffer:185}],182:[function(t,e,r){\"use strict\";r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r.toByteArray=function(t){var e,r,n=c(t),a=n[0],s=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,a,s)),f=0,l=s>0?a-4:a;for(r=0;r<l;r+=4)e=i[t.charCodeAt(r)]<<18|i[t.charCodeAt(r+1)]<<12|i[t.charCodeAt(r+2)]<<6|i[t.charCodeAt(r+3)],u[f++]=e>>16&255,u[f++]=e>>8&255,u[f++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[f++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e);return u},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],a=0,s=r-i;a<s;a+=16383)o.push(f(t,a,a+16383>s?s:a+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+\"==\")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\"=\"));return o.join(\"\")};for(var n=[],i=[],o=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",s=0,u=a.length;s<u;++s)n[s]=a[s],i[a.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function f(t,e,r){for(var i,o,a=[],s=e;s<r;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),a.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join(\"\")}i[\"-\".charCodeAt(0)]=62,i[\"_\".charCodeAt(0)]=63},{}],183:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(e,r){function i(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\"le\"!==e&&\"be\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\"be\"))}var s;\"object\"===n(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=t(\"buffer\").Buffer}catch(t){}function u(t,e,r){for(var n=0,o=Math.min(t.length,r),a=0,s=e;s<o;s++){var u,c=t.charCodeAt(s)-48;n<<=4,n|=u=c>=49&&c<=54?c-49+10:c>=17&&c<=22?c-17+10:c,a|=u}return i(!(240&a),\"Invalid character in \"+t),n}function c(t,e,r,n){for(var o=0,a=0,s=Math.min(t.length,r),u=e;u<s;u++){var c=t.charCodeAt(u)-48;o*=n,a=c>=49?c-49+10:c>=17?c-17+10:c,i(c>=0&&a<n,\"Invalid character\"),o+=a}return o}function f(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(a.isBN=function(t){return t instanceof a||null!==t&&\"object\"===n(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if(\"number\"==typeof t)return this._initNumber(t,e,r);if(\"object\"===n(t))return this._initArray(t,e,r);\"hex\"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36);var o=0;\"-\"===(t=t.toString().replace(/\\s+/g,\"\"))[0]&&o++,16===e?this._parseHex(t,o):this._parseBase(t,e,o),\"-\"===t[0]&&(this.negative=1),this._strip(),\"le\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i(\"number\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if(\"be\"===r)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if(\"le\"===r)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,i,o=0;for(r=t.length-6,n=0;r>=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<<o&67108863,this.words[n+1]|=i>>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<<o&67108863,this.words[n+1]|=i>>>26-o&4194303),this._strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f<s;f+=n)u=c(t,f,f+n,e),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==a){var l=1;for(u=c(t,f,t.length,e),f=0;f<a;f++)l*=e;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype._move=function(t){f(t,this)},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},\"undefined\"!=typeof Symbol&&\"function\"==typeof Symbol.for)try{a.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=l}catch(t){a.prototype.inspect=l}else a.prototype.inspect=l;function l(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"}var h=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||\"hex\"===t){r=\"\";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],u=(16777215&(s<<n|o)).toString(16);r=0!==(o=s>>>24-n&16777215)||a!==this.length-1?h[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=d[t],f=p[t];r=\"\";var l=this.clone();for(l.negative=0;!l.isZero();){var m=l.modrn(f).toString(t);r=(l=l.idivn(f)).isZero()?m+r:h[c-m.length]+m+r}for(this.isZero()&&(r=\"0\"+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}i(!1,\"Base should be between 2 and 36\")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(t,e){return this.toArrayLike(s,t,e)}),a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function m(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var f=u>>>26,l=67108863&u,h=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=h;d++){var p=c-d|0;f+=(a=(i=0|t.words[p])*(o=0|e.words[d])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}a.prototype.toArrayLike=function(t,e,r){this._strip();var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,\"byte array longer than desired length\"),i(o>0,\"Requested array length <= 0\");var a=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this[\"_toArrayLike\"+(\"le\"===e?\"LE\":\"BE\")](a,n),a},a.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var a=this.words[i]<<o|n;t[r++]=255&a,r<t.length&&(t[r++]=a>>8&255),r<t.length&&(t[r++]=a>>16&255),6===o?(r<t.length&&(t[r++]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},a.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var a=this.words[i]<<o|n;t[r--]=255&a,r>=0&&(t[r--]=a>>8&255),r>=0&&(t[r--]=a>>16&255),6===o?(r>=0&&(t[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},a.prototype.ior=function(t){return i(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},a.prototype.iand=function(t){return i(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},a.prototype.ixor=function(t){return i(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i(\"number\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return r>0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i(\"number\"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<n:this.words[r]&~(1<<n),this._strip()},a.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)e=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<r.length;o++)e=(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a<n.length;a++)o=(e=(0|r.words[a])-(0|n.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<r.length;a++)o=(e=(0|r.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<r.length&&r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this.length=Math.max(this.length,a),r!==this&&(this.negative=1),this._strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var y=function(t,e,r){var n,i,o,a=t.words,s=e.words,u=r.words,c=0,f=0|a[0],l=8191&f,h=f>>>13,d=0|a[1],p=8191&d,m=d>>>13,y=0|a[2],b=8191&y,v=y>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],x=8191&k,S=k>>>13,O=0|a[5],j=8191&O,E=O>>>13,R=0|a[6],T=8191&R,C=R>>>13,P=0|a[7],M=8191&P,A=P>>>13,I=0|a[8],N=8191&I,D=I>>>13,B=0|a[9],F=8191&B,L=B>>>13,z=0|s[0],U=8191&z,H=z>>>13,V=0|s[1],q=8191&V,W=V>>>13,$=0|s[2],X=8191&$,K=$>>>13,Z=0|s[3],Y=8191&Z,G=Z>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ct=st>>>13,ft=0|s[8],lt=8191&ft,ht=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(c+(n=Math.imul(l,U))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(h,U)|0))<<13)|0;c=((o=Math.imul(h,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,H))+Math.imul(m,U)|0,o=Math.imul(m,H);var bt=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(h,q)|0))<<13)|0;c=((o=o+Math.imul(h,W)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,H))+Math.imul(v,U)|0,o=Math.imul(v,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,W)|0;var vt=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(h,X)|0))<<13)|0;c=((o=o+Math.imul(h,K)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,H))+Math.imul(_,U)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,W)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,K)|0;var gt=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(i=(i=i+Math.imul(l,G)|0)+Math.imul(h,Y)|0))<<13)|0;c=((o=o+Math.imul(h,G)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(x,U),i=(i=Math.imul(x,H))+Math.imul(S,U)|0,o=Math.imul(S,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,X)|0,o=o+Math.imul(v,K)|0,n=n+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,G)|0;var wt=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((o=o+Math.imul(h,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,H))+Math.imul(E,U)|0,o=Math.imul(E,H),n=n+Math.imul(x,q)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(S,q)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(v,Y)|0,o=o+Math.imul(v,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0;var _t=(c+(n=n+Math.imul(l,rt)|0)|0)+((8191&(i=(i=i+Math.imul(l,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((o=o+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,H))+Math.imul(C,U)|0,o=Math.imul(C,H),n=n+Math.imul(j,q)|0,i=(i=i+Math.imul(j,W)|0)+Math.imul(E,q)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,K)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,G)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var kt=(c+(n=n+Math.imul(l,ot)|0)|0)+((8191&(i=(i=i+Math.imul(l,at)|0)+Math.imul(h,ot)|0))<<13)|0;c=((o=o+Math.imul(h,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,H))+Math.imul(A,U)|0,o=Math.imul(A,H),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(C,q)|0,o=o+Math.imul(C,W)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,K)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var xt=(c+(n=n+Math.imul(l,ut)|0)|0)+((8191&(i=(i=i+Math.imul(l,ct)|0)+Math.imul(h,ut)|0))<<13)|0;c=((o=o+Math.imul(h,ct)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(N,U),i=(i=Math.imul(N,H))+Math.imul(D,U)|0,o=Math.imul(D,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,W)|0,n=n+Math.imul(T,X)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul(j,Y)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,G)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(b,ot)|0,i=(i=i+Math.imul(b,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ct)|0;var St=(c+(n=n+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ht)|0)+Math.imul(h,lt)|0))<<13)|0;c=((o=o+Math.imul(h,ht)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,H))+Math.imul(L,U)|0,o=Math.imul(L,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,W)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,W)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,n=n+Math.imul(x,rt)|0,i=(i=i+Math.imul(x,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(b,ut)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ct)|0,n=n+Math.imul(p,lt)|0,i=(i=i+Math.imul(p,ht)|0)+Math.imul(m,lt)|0,o=o+Math.imul(m,ht)|0;var Ot=(c+(n=n+Math.imul(l,pt)|0)|0)+((8191&(i=(i=i+Math.imul(l,mt)|0)+Math.imul(h,pt)|0))<<13)|0;c=((o=o+Math.imul(h,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(F,q),i=(i=Math.imul(F,W))+Math.imul(L,q)|0,o=Math.imul(L,W),n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,G)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul(j,rt)|0,i=(i=i+Math.imul(j,nt)|0)+Math.imul(E,rt)|0,o=o+Math.imul(E,nt)|0,n=n+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ct)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ct)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(v,lt)|0,o=o+Math.imul(v,ht)|0;var jt=(c+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(jt>>>26)|0,jt&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,o=Math.imul(L,K),n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,G)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,G)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul(j,ot)|0,i=(i=i+Math.imul(j,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,n=n+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ct)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,lt)|0,i=(i=i+Math.imul(w,ht)|0)+Math.imul(_,lt)|0,o=o+Math.imul(_,ht)|0;var Et=(c+(n=n+Math.imul(b,pt)|0)|0)+((8191&(i=(i=i+Math.imul(b,mt)|0)+Math.imul(v,pt)|0))<<13)|0;c=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,G))+Math.imul(L,Y)|0,o=Math.imul(L,G),n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,tt)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(A,rt)|0,o=o+Math.imul(A,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul(j,ut)|0,i=(i=i+Math.imul(j,ct)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ct)|0,n=n+Math.imul(x,lt)|0,i=(i=i+Math.imul(x,ht)|0)+Math.imul(S,lt)|0,o=o+Math.imul(S,ht)|0;var Rt=(c+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,mt)|0)+Math.imul(_,pt)|0))<<13)|0;c=((o=o+Math.imul(_,mt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(L,Q)|0,o=Math.imul(L,tt),n=n+Math.imul(N,rt)|0,i=(i=i+Math.imul(N,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,at)|0)+Math.imul(A,ot)|0,o=o+Math.imul(A,at)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(C,ut)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul(j,lt)|0,i=(i=i+Math.imul(j,ht)|0)+Math.imul(E,lt)|0,o=o+Math.imul(E,ht)|0;var Tt=(c+(n=n+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,mt)|0)+Math.imul(S,pt)|0))<<13)|0;c=((o=o+Math.imul(S,mt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(L,rt)|0,o=Math.imul(L,nt),n=n+Math.imul(N,ot)|0,i=(i=i+Math.imul(N,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ct)|0)+Math.imul(A,ut)|0,o=o+Math.imul(A,ct)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(C,lt)|0,o=o+Math.imul(C,ht)|0;var Ct=(c+(n=n+Math.imul(j,pt)|0)|0)+((8191&(i=(i=i+Math.imul(j,mt)|0)+Math.imul(E,pt)|0))<<13)|0;c=((o=o+Math.imul(E,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,ot),i=(i=Math.imul(F,at))+Math.imul(L,ot)|0,o=Math.imul(L,at),n=n+Math.imul(N,ut)|0,i=(i=i+Math.imul(N,ct)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,ct)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(A,lt)|0,o=o+Math.imul(A,ht)|0;var Pt=(c+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(C,pt)|0))<<13)|0;c=((o=o+Math.imul(C,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(F,ut),i=(i=Math.imul(F,ct))+Math.imul(L,ut)|0,o=Math.imul(L,ct),n=n+Math.imul(N,lt)|0,i=(i=i+Math.imul(N,ht)|0)+Math.imul(D,lt)|0,o=o+Math.imul(D,ht)|0;var Mt=(c+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(A,pt)|0))<<13)|0;c=((o=o+Math.imul(A,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,lt),i=(i=Math.imul(F,ht))+Math.imul(L,lt)|0,o=Math.imul(L,ht);var At=(c+(n=n+Math.imul(N,pt)|0)|0)+((8191&(i=(i=i+Math.imul(N,mt)|0)+Math.imul(D,pt)|0))<<13)|0;c=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863;var It=(c+(n=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,mt))+Math.imul(L,pt)|0))<<13)|0;return c=((o=Math.imul(L,mt))+(i>>>13)|0)+(It>>>26)|0,It&=67108863,u[0]=yt,u[1]=bt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=xt,u[8]=St,u[9]=Ot,u[10]=jt,u[11]=Et,u[12]=Rt,u[13]=Tt,u[14]=Ct,u[15]=Pt,u[16]=Mt,u[17]=At,u[18]=It,0!==c&&(u[19]=c,r.length++),r};function b(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var a=i;i=0;for(var s=67108863&n,u=Math.min(o,e.length-1),c=Math.max(0,o-t.length+1);c<=u;c++){var f=o-c,l=(0|t.words[f])*(0|e.words[c]),h=67108863&l;s=67108863&(h=h+s|0),i+=(a=(a=a+(l/67108864|0)|0)+(h>>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function v(t,e,r){return b(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(y=m),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?y(this,t,e):r<63?m(this,t,e):r<1024?b(this,t,e):v(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},g.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},g.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a<o;a++)n[a]=e[t[a]],i[a]=r[t[a]]},g.prototype.transform=function(t,e,r,n,i,o){this.permute(o,t,e,r,n,i);for(var a=1;a<i;a<<=1)for(var s=a<<1,u=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),f=0;f<i;f+=s)for(var l=u,h=c,d=0;d<a;d++){var p=r[f+d],m=n[f+d],y=r[f+d+a],b=n[f+d+a],v=l*y-h*b;b=l*b+h*y,y=v,r[f+d]=p+y,n[f+d]=m+b,r[f+d+a]=p-y,n[f+d+a]=m-b,d!==s&&(v=u*l-c*h,h=u*h+c*l,l=v)}},g.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},g.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},g.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},g.prototype.convert13b=function(t,e,r,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],r[2*a]=8191&o,o>>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)r[a]=0;i(0===o),i(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},g.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),o=this.stub(n),a=new Array(n),s=new Array(n),u=new Array(n),c=new Array(n),f=new Array(n),l=new Array(n),h=r.words;h.length=n,this.convert13b(t.words,t.length,a,n),this.convert13b(e.words,e.length,c,n),this.transform(a,o,s,u,n,i),this.transform(c,o,f,l,n,i);for(var d=0;d<n;d++){var p=s[d]*f[d]-u[d]*l[d];u[d]=s[d]*l[d]+u[d]*f[d],s[d]=p}return this.conjugate(s,u,n),this.transform(s,u,h,o,n,i),this.conjugate(h,o,n),this.normalize13b(h,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r._strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),v(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){var e=t<0;e&&(t=-t),i(\"number\"==typeof t),i(t<67108864);for(var r=0,n=0;n<this.length;n++){var o=(0|this.words[n])*t,a=(67108863&o)+(67108863&r);r>>=26,r+=o/67108864|0,r+=a>>>26,this.words[n]=67108863&a}return 0!==r&&(this.words[n]=r,this.length++),e?this.ineg():this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=t.words[n]>>>i&1}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},a.prototype.iushln=function(t){i(\"number\"==typeof t&&t>=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,u=(0|this.words[e])-s<<r;this.words[e]=u|a,a=s>>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this._strip()},a.prototype.ishln=function(t){return i(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,r){var n;i(\"number\"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,u=r;if(n-=a,n=Math.max(0,n),u){for(var c=0;c<a;c++)u.words[c]=this.words[c];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,c=0;c<this.length;c++)this.words[c]=this.words[c+a];else this.words[0]=0,this.length=1;var f=0;for(c=this.length-1;c>=0&&(0!==f||c>=n);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<<e;return!(this.length<=r)&&!!(this.words[r]&n)},a.prototype.imaskn=function(t){i(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this._strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return i(\"number\"==typeof t),i(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i(\"number\"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,r){var n,o,a=t.length+r;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+r])+s;var u=(0|t.words[n])*e;s=((o-=67108863&u)>>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n<this.length-r;n++)s=(o=(0|this.words[n+r])+s)>>26,this.words[n+r]=67108863&o;if(0===s)return this._strip();for(i(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this._strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if(\"mod\"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var f=n.clone()._ishlnsubmul(i,1,u);0===f.negative&&(n=f,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var h=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,l);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=h)}return s&&s._strip(),n._strip(),\"div\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\"mod\"!==e&&(n=s.div.neg()),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\"mod\"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new a(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modrn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,\"div\",!1).div},a.prototype.mod=function(t){return this.divmod(t,\"mod\",!1).mod},a.prototype.umod=function(t){return this.divmod(t,\"mod\",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modrn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=(1<<26)%t,n=0,o=this.length-1;o>=0;o--)n=(r*n+(0|this.words[o]))%t;return e?-n:n},a.prototype.modn=function(t){return this.modrn(t)},a.prototype.idivn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*r;this.words[n]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=e.clone();!e.isZero();){for(var h=0,d=1;0==(e.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(f),o.isub(l)),n.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(e.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,h=1;0==(r.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i(\"number\"==typeof t);var e=t%26,r=(t-e)/26,n=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=n,this;for(var o=n,a=r;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,\"Number is too big\");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new j(t)},a.prototype.toRed=function(t){return i(!this.red,\"Already a number in reduction context\"),i(0===this.negative,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var w={k256:null,p224:null,p192:null,p25519:null};function _(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function k(){_.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function x(){_.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function S(){_.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function O(){_.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function j(t){if(\"string\"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),\"modulus must be greater than 1\"),this.m=t,this.prime=null}function E(t){j.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},_.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(t,e){t.iushrn(this.n,0,e)},_.prototype.imulK=function(t){return t.imul(this.k)},o(k,_),k.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,n=10;n<t.length;n++){var o=0|t.words[n];t.words[n-10]=(4194303&o)<<4|i>>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},k.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},o(x,_),o(S,_),o(O,_),O.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(w[t])return w[t];var e;if(\"k256\"===t)e=new k;else if(\"p224\"===t)e=new x;else if(\"p192\"===t)e=new S;else{if(\"p25519\"!==t)throw new Error(\"Unknown prime \"+t);e=new O}return w[t]=e,e},j.prototype._verify1=function(t){i(0===t.negative,\"red works only with positives\"),i(t.red,\"red works only with red numbers\")},j.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),\"red works only with positives\"),i(t.red&&t.red===e.red,\"red works only with red numbers\")},j.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(f(t,t.umod(this.m)._forceRed(this)),t)},j.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},j.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},j.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},j.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},j.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},j.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},j.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},j.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},j.prototype.isqr=function(t){return this.imul(t,t.clone())},j.prototype.sqr=function(t){return this.mul(t,t)},j.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,n),h=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=o;0!==d.cmp(s);){for(var m=d,y=0;0!==m.cmp(s);y++)m=m.redSqr();i(y<p);var b=this.pow(l,new a(1).iushln(p-y-1));h=h.redMul(b),l=b.redSqr(),d=d.redMul(l),p=y}return h},j.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},j.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,s=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===n&&0===f)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},j.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},j.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new E(t)},o(E,j),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e)},{buffer:185}],184:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i;function o(t){this.rand=t}if(e.exports=function(t){return i||(i=new o(null)),i.generate(t)},e.exports.Rand=o,o.prototype.generate=function(t){return this._rand(t)},o.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r<e.length;r++)e[r]=this.rand.getByte();return e},\"object\"===(\"undefined\"==typeof self?\"undefined\":n(self)))self.crypto&&self.crypto.getRandomValues?o.prototype._rand=function(t){var e=new Uint8Array(t);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?o.prototype._rand=function(t){var e=new Uint8Array(t);return self.msCrypto.getRandomValues(e),e}:\"object\"===(\"undefined\"==typeof window?\"undefined\":n(window))&&(o.prototype._rand=function(){throw new Error(\"Not implemented yet\")});else try{var a=t(\"crypto\");if(\"function\"!=typeof a.randomBytes)throw new Error(\"Not supported\");o.prototype._rand=function(t){return a.randomBytes(t)}}catch(t){}},{crypto:185}],185:[function(t,e,r){},{}],186:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i<e;i++)r[i]=t.readUInt32BE(4*i);return r}function o(t){for(;0<t.length;t++)t[0]=0}function a(t,e,r,n,i){for(var o,a,s,u,c=r[0],f=r[1],l=r[2],h=r[3],d=t[0]^e[0],p=t[1]^e[1],m=t[2]^e[2],y=t[3]^e[3],b=4,v=1;v<i;v++)o=c[d>>>24]^f[p>>>16&255]^l[m>>>8&255]^h[255&y]^e[b++],a=c[p>>>24]^f[m>>>16&255]^l[y>>>8&255]^h[255&d]^e[b++],s=c[m>>>24]^f[y>>>16&255]^l[d>>>8&255]^h[255&p]^e[b++],u=c[y>>>24]^f[d>>>16&255]^l[p>>>8&255]^h[255&m]^e[b++],d=o,p=a,m=s,y=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&y])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[y>>>8&255]<<8|n[255&d])^e[b++],s=(n[m>>>24]<<24|n[y>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[b++],u=(n[y>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],[o>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,r[a]=c,n[c]=a;var f=t[a],l=t[f],h=t[l],d=257*t[c]^16843008*c;i[0][a]=d<<24|d>>>8,i[1][a]=d<<16|d>>>16,i[2][a]=d<<8|d>>>24,i[3][a]=d,d=16843009*h^65537*l^257*f^16843008*a,o[0][c]=d<<24|d>>>8,o[1][c]=d<<16|d>>>16,o[2][c]=d<<8|d>>>24,o[3][c]=d,0===a?a=s=1:(a=f^t[t[t[h^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function c(t){this._key=i(t),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o<e;o++)i[o]=t[o];for(o=e;o<n;o++){var a=i[o-1];o%e==0?(a=a<<8|a>>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var c=[],f=0;f<n;f++){var l=n-f,h=i[l-(f%4?0:4)];c[f]=f<4||l<=4?h:u.INV_SUB_MIX[0][u.SBOX[h>>>24]]^u.INV_SUB_MIX[1][u.SBOX[h>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[h>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&h]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(t){return a(t=i(t),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},c.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},c.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=c},{\"safe-buffer\":494}],187:[function(t,e,r){\"use strict\";var n=t(\"./aes\"),i=t(\"safe-buffer\").Buffer,o=t(\"cipher-base\"),a=t(\"inherits\"),s=t(\"./ghash\"),u=t(\"buffer-xor\"),c=t(\"./incr32\");function f(t,e,r,a){o.call(this);var u=i.alloc(4,0);this._cipher=new n.AES(e);var f=this._cipher.encryptBlock(u);this._ghash=new s(f),r=function(t,e,r){if(12===e.length)return t._finID=i.concat([e,i.from([0,0,0,1])]),i.concat([e,i.from([0,0,0,2])]);var n=new s(r),o=e.length,a=o%16;n.update(e),a&&(a=16-a,n.update(i.alloc(a,0))),n.update(i.alloc(8,0));var u=8*o,f=i.alloc(8);f.writeUIntBE(u,0,8),n.update(f),t._finID=n.state;var l=i.from(t._finID);return c(l),l}(this,r,f),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}a(f,o),f.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=i.alloc(e,0),this._ghash.update(e))}this._called=!0;var r=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(r),this._len+=t.length,r},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error(\"Unsupported state or unable to authenticate data\");var t=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i<n;++i)r+=t[i]^e[i];return r}(t,this._authTag))throw new Error(\"Unsupported state or unable to authenticate data\");this._authTag=t,this._cipher.scrub()},f.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error(\"Attempting to get auth tag in unsupported state\");return this._authTag},f.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error(\"Attempting to set auth tag in unsupported state\");this._authTag=t},f.prototype.setAAD=function(t){if(this._called)throw new Error(\"Attempting to set AAD in unsupported state\");this._ghash.update(t),this._alen+=t.length},e.exports=f},{\"./aes\":186,\"./ghash\":191,\"./incr32\":192,\"buffer-xor\":217,\"cipher-base\":218,inherits:387,\"safe-buffer\":494}],188:[function(t,e,r){\"use strict\";var n=t(\"./encrypter\"),i=t(\"./decrypter\"),o=t(\"./modes/list.json\");r.createCipher=r.Cipher=n.createCipher,r.createCipheriv=r.Cipheriv=n.createCipheriv,r.createDecipher=r.Decipher=i.createDecipher,r.createDecipheriv=r.Decipheriv=i.createDecipheriv,r.listCiphers=r.getCiphers=function(){return Object.keys(o)}},{\"./decrypter\":189,\"./encrypter\":190,\"./modes/list.json\":200}],189:[function(t,e,r){\"use strict\";var n=t(\"./authCipher\"),i=t(\"safe-buffer\").Buffer,o=t(\"./modes\"),a=t(\"./streamCipher\"),s=t(\"cipher-base\"),u=t(\"./aes\"),c=t(\"evp_bytestokey\");function f(t,e,r){s.call(this),this._cache=new l,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function l(){this.cache=i.allocUnsafe(0)}function h(t,e,r){var s=o[t.toLowerCase()];if(!s)throw new TypeError(\"invalid suite type\");if(\"string\"==typeof r&&(r=i.from(r)),\"GCM\"!==s.mode&&r.length!==s.iv)throw new TypeError(\"invalid iv length \"+r.length);if(\"string\"==typeof e&&(e=i.from(e)),e.length!==s.key/8)throw new TypeError(\"invalid key length \"+e.length);return\"stream\"===s.type?new a(s.module,e,r,!0):\"auth\"===s.type?new n(s.module,e,r,!0):new f(s.module,e,r)}t(\"inherits\")(f,s),f.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,e),n.push(r);return i.concat(n)},f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error(\"unable to decrypt data\");var r=-1;for(;++r<e;)if(t[r+(16-e)]!==e)throw new Error(\"unable to decrypt data\");if(16===e)return;return t.slice(0,16-e)}(this._mode.decrypt(this,t));if(t)throw new Error(\"data not multiple of block length\")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},l.prototype.add=function(t){this.cache=i.concat([this.cache,t])},l.prototype.get=function(t){var e;if(t){if(this.cache.length>16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(t,e){var r=o[t.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var n=c(e,!1,r.key,r.iv);return h(t,n.key,n.iv)},r.createDecipheriv=h},{\"./aes\":186,\"./authCipher\":187,\"./modes\":199,\"./streamCipher\":202,\"cipher-base\":218,evp_bytestokey:368,inherits:387,\"safe-buffer\":494}],190:[function(t,e,r){\"use strict\";var n=t(\"./modes\"),i=t(\"./authCipher\"),o=t(\"safe-buffer\").Buffer,a=t(\"./streamCipher\"),s=t(\"cipher-base\"),u=t(\"./aes\"),c=t(\"evp_bytestokey\");function f(t,e,r){s.call(this),this._cache=new h,this._cipher=new u.AES(e),this._prev=o.from(r),this._mode=t,this._autopadding=!0}t(\"inherits\")(f,s),f.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get();)r=this._mode.encrypt(this,e),n.push(r);return o.concat(n)};var l=o.alloc(16,16);function h(){this.cache=o.allocUnsafe(0)}function d(t,e,r){var s=n[t.toLowerCase()];if(!s)throw new TypeError(\"invalid suite type\");if(\"string\"==typeof e&&(e=o.from(e)),e.length!==s.key/8)throw new TypeError(\"invalid key length \"+e.length);if(\"string\"==typeof r&&(r=o.from(r)),\"GCM\"!==s.mode&&r.length!==s.iv)throw new TypeError(\"invalid iv length \"+r.length);return\"stream\"===s.type?new a(s.module,e,r):\"auth\"===s.type?new i(s.module,e,r):new f(s.module,e,r)}f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(l))throw this._cipher.scrub(),new Error(\"data not multiple of block length\")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},h.prototype.add=function(t){this.cache=o.concat([this.cache,t])},h.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},h.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;++r<t;)e.writeUInt8(t,r);return o.concat([this.cache,e])},r.createCipheriv=d,r.createCipher=function(t,e){var r=n[t.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var i=c(e,!1,r.key,r.iv);return d(t,i.key,i.iv)}},{\"./aes\":186,\"./authCipher\":187,\"./modes\":199,\"./streamCipher\":202,\"cipher-base\":218,evp_bytestokey:368,inherits:387,\"safe-buffer\":494}],191:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=n.alloc(16,0);function o(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function a(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(t){for(var e=-1;++e<t.length;)this.state[e]^=t[e];this._multiply()},a.prototype._multiply=function(){for(var t,e,r,n=[(t=this.h).readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)],i=[0,0,0,0],a=-1;++a<128;){for(0!=(this.state[~~(a/8)]&1<<7-a%8)&&(i[0]^=n[0],i[1]^=n[1],i[2]^=n[2],i[3]^=n[3]),r=0!=(1&n[3]),e=3;e>0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},a.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},a.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,t,0,e])),this.state},e.exports=a},{\"safe-buffer\":494}],192:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e,r=t.length;r--;){if(255!==(e=t.readUInt8(r))){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}},{}],193:[function(t,e,r){\"use strict\";var n=t(\"buffer-xor\");r.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},r.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},{\"buffer-xor\":217}],194:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"buffer-xor\");function o(t,e,r){var o=e.length,a=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:a]),a}r.encrypt=function(t,e,r){for(var i,a=n.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){a=n.concat([a,o(t,e,r)]);break}i=t._cache.length,a=n.concat([a,o(t,e.slice(0,i),r)]),e=e.slice(i)}return a}},{\"buffer-xor\":217,\"safe-buffer\":494}],195:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer;function i(t,e,r){for(var n,i,a=-1,s=0;++a<8;)n=e&1<<7-a?128:0,s+=(128&(i=t._cipher.encryptBlock(t._prev)[0]^n))>>a%8,t._prev=o(t._prev,r?n:i);return s}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++i<r;)o[i]=t[i]<<1|t[i+1]>>7;return o}r.encrypt=function(t,e,r){for(var o=e.length,a=n.allocUnsafe(o),s=-1;++s<o;)a[s]=i(t,e[s],r);return a}},{\"safe-buffer\":494}],196:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer;function i(t,e,r){var i=t._cipher.encryptBlock(t._prev)[0]^e;return t._prev=n.concat([t._prev.slice(1),n.from([r?e:i])]),i}r.encrypt=function(t,e,r){for(var o=e.length,a=n.allocUnsafe(o),s=-1;++s<o;)a[s]=i(t,e[s],r);return a}},{\"safe-buffer\":494}],197:[function(t,e,r){\"use strict\";var n=t(\"buffer-xor\"),i=t(\"safe-buffer\").Buffer,o=t(\"../incr32\");function a(t){var e=t._cipher.encryptBlockRaw(t._prev);return o(t._prev),e}r.encrypt=function(t,e){var r=Math.ceil(e.length/16),o=t._cache.length;t._cache=i.concat([t._cache,i.allocUnsafe(16*r)]);for(var s=0;s<r;s++){var u=a(t),c=o+16*s;t._cache.writeUInt32BE(u[0],c+0),t._cache.writeUInt32BE(u[1],c+4),t._cache.writeUInt32BE(u[2],c+8),t._cache.writeUInt32BE(u[3],c+12)}var f=t._cache.slice(0,e.length);return t._cache=t._cache.slice(e.length),n(e,f)}},{\"../incr32\":192,\"buffer-xor\":217,\"safe-buffer\":494}],198:[function(t,e,r){\"use strict\";r.encrypt=function(t,e){return t._cipher.encryptBlock(e)},r.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},{}],199:[function(t,e,r){\"use strict\";var n={ECB:t(\"./ecb\"),CBC:t(\"./cbc\"),CFB:t(\"./cfb\"),CFB8:t(\"./cfb8\"),CFB1:t(\"./cfb1\"),OFB:t(\"./ofb\"),CTR:t(\"./ctr\"),GCM:t(\"./ctr\")},i=t(\"./list.json\");for(var o in i)i[o].module=n[i[o].mode];e.exports=i},{\"./cbc\":193,\"./cfb\":194,\"./cfb1\":195,\"./cfb8\":196,\"./ctr\":197,\"./ecb\":198,\"./list.json\":200,\"./ofb\":201}],200:[function(t,e,r){e.exports={\"aes-128-ecb\":{cipher:\"AES\",key:128,iv:0,mode:\"ECB\",type:\"block\"},\"aes-192-ecb\":{cipher:\"AES\",key:192,iv:0,mode:\"ECB\",type:\"block\"},\"aes-256-ecb\":{cipher:\"AES\",key:256,iv:0,mode:\"ECB\",type:\"block\"},\"aes-128-cbc\":{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},\"aes-192-cbc\":{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},\"aes-256-cbc\":{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},aes128:{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},aes192:{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},aes256:{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},\"aes-128-cfb\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-192-cfb\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-256-cfb\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-128-cfb8\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-192-cfb8\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-256-cfb8\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-128-cfb1\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-192-cfb1\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-256-cfb1\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-128-ofb\":{cipher:\"AES\",key:128,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-192-ofb\":{cipher:\"AES\",key:192,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-256-ofb\":{cipher:\"AES\",key:256,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-128-ctr\":{cipher:\"AES\",key:128,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-192-ctr\":{cipher:\"AES\",key:192,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-256-ctr\":{cipher:\"AES\",key:256,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-128-gcm\":{cipher:\"AES\",key:128,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-192-gcm\":{cipher:\"AES\",key:192,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-256-gcm\":{cipher:\"AES\",key:256,iv:12,mode:\"GCM\",type:\"auth\"}}},{}],201:[function(t,e,r){(function(e){\"use strict\";var n=t(\"buffer-xor\");function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}r.encrypt=function(t,r){for(;t._cache.length<r.length;)t._cache=e.concat([t._cache,i(t)]);var o=t._cache.slice(0,r.length);return t._cache=t._cache.slice(r.length),n(r,o)}}).call(this,t(\"buffer\").Buffer)},{buffer:216,\"buffer-xor\":217}],202:[function(t,e,r){\"use strict\";var n=t(\"./aes\"),i=t(\"safe-buffer\").Buffer,o=t(\"cipher-base\");function a(t,e,r,a){o.call(this),this._cipher=new n.AES(e),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=a,this._mode=t}t(\"inherits\")(a,o),a.prototype._update=function(t){return this._mode.encrypt(this,t,this._decrypt)},a.prototype._final=function(){this._cipher.scrub()},e.exports=a},{\"./aes\":186,\"cipher-base\":218,inherits:387,\"safe-buffer\":494}],203:[function(t,e,r){\"use strict\";var n=t(\"browserify-des\"),i=t(\"browserify-aes/browser\"),o=t(\"browserify-aes/modes\"),a=t(\"browserify-des/modes\"),s=t(\"evp_bytestokey\");function u(t,e,r){if(t=t.toLowerCase(),o[t])return i.createCipheriv(t,e,r);if(a[t])return new n({key:e,iv:r,mode:t});throw new TypeError(\"invalid suite type\")}function c(t,e,r){if(t=t.toLowerCase(),o[t])return i.createDecipheriv(t,e,r);if(a[t])return new n({key:e,iv:r,mode:t,decrypt:!0});throw new TypeError(\"invalid suite type\")}r.createCipher=r.Cipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!a[t])throw new TypeError(\"invalid suite type\");r=8*a[t].key,n=a[t].iv}var i=s(e,!1,r,n);return u(t,i.key,i.iv)},r.createCipheriv=r.Cipheriv=u,r.createDecipher=r.Decipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!a[t])throw new TypeError(\"invalid suite type\");r=8*a[t].key,n=a[t].iv}var i=s(e,!1,r,n);return c(t,i.key,i.iv)},r.createDecipheriv=r.Decipheriv=c,r.listCiphers=r.getCiphers=function(){return Object.keys(a).concat(i.getCiphers())}},{\"browserify-aes/browser\":188,\"browserify-aes/modes\":199,\"browserify-des\":204,\"browserify-des/modes\":205,evp_bytestokey:368}],204:[function(t,e,r){\"use strict\";var n=t(\"cipher-base\"),i=t(\"des.js\"),o=t(\"inherits\"),a=t(\"safe-buffer\").Buffer,s={\"des-ede3-cbc\":i.CBC.instantiate(i.EDE),\"des-ede3\":i.EDE,\"des-ede-cbc\":i.CBC.instantiate(i.EDE),\"des-ede\":i.EDE,\"des-cbc\":i.CBC.instantiate(i.DES),\"des-ecb\":i.DES};function u(t){n.call(this);var e,r=t.mode.toLowerCase(),i=s[r];e=t.decrypt?\"decrypt\":\"encrypt\";var o=t.key;a.isBuffer(o)||(o=a.from(o)),\"des-ede\"!==r&&\"des-ede-cbc\"!==r||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:e})}s.des=s[\"des-cbc\"],s.des3=s[\"des-ede3-cbc\"],e.exports=u,o(u,n),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},{\"cipher-base\":218,\"des.js\":339,inherits:387,\"safe-buffer\":494}],205:[function(t,e,r){\"use strict\";r[\"des-ecb\"]={key:8,iv:0},r[\"des-cbc\"]=r.des={key:8,iv:8},r[\"des-ede3-cbc\"]=r.des3={key:24,iv:8},r[\"des-ede3\"]={key:24,iv:0},r[\"des-ede-cbc\"]={key:16,iv:8},r[\"des-ede\"]={key:16,iv:0}},{}],206:[function(t,e,r){(function(r){\"use strict\";var n=t(\"bn.js\"),i=t(\"randombytes\");function o(t,e){var i=function(t){var e=a(t);return{blinder:e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed(),unblinder:e.invm(t.modulus)}}(e),o=e.modulus.byteLength(),s=(n.mont(e.modulus),new n(t).mul(i.blinder).umod(e.modulus)),u=s.toRed(n.mont(e.prime1)),c=s.toRed(n.mont(e.prime2)),f=e.coefficient,l=e.prime1,h=e.prime2,d=u.redPow(e.exponent1),p=c.redPow(e.exponent2);d=d.fromRed(),p=p.fromRed();var m=d.isub(p).imul(f).umod(l);return m.imul(h),p.iadd(m),new r(p.imul(i.unblinder).umod(e.modulus).toArray(!1,o))}function a(t){for(var e=t.modulus.byteLength(),r=new n(i(e));r.cmp(t.modulus)>=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new n(i(e));return r}e.exports=o,o.getr=a}).call(this,t(\"buffer\").Buffer)},{\"bn.js\":207,buffer:216,randombytes:475}],207:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],208:[function(t,e,r){\"use strict\";e.exports=t(\"./browser/algorithms.json\")},{\"./browser/algorithms.json\":209}],209:[function(t,e,r){e.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}}},{}],210:[function(t,e,r){e.exports={\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}},{}],211:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"create-hash\"),o=t(\"readable-stream\"),a=t(\"inherits\"),s=t(\"./sign\"),u=t(\"./verify\"),c=t(\"./algorithms.json\");function f(t){o.Writable.call(this);var e=c[t];if(!e)throw new Error(\"Unknown message digest\");this._hashType=e.hash,this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=c[t];if(!e)throw new Error(\"Unknown message digest\");this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function h(t){return new f(t)}function d(t){return new l(t)}Object.keys(c).forEach((function(t){c[t].id=n.from(c[t].id,\"hex\"),c[t.toLowerCase()]=c[t]})),a(f,o.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return\"string\"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},f.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},a(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return\"string\"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},l.prototype.verify=function(t,e,r){\"string\"==typeof e&&(e=n.from(e,r)),this.end();var i=this._hash.digest();return u(e,i,t,this._signType,this._tag)},e.exports={Sign:h,Verify:d,createSign:h,createVerify:d}},{\"./algorithms.json\":209,\"./sign\":212,\"./verify\":213,\"create-hash\":331,inherits:387,\"readable-stream\":491,\"safe-buffer\":214}],212:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"create-hmac\"),o=t(\"browserify-rsa\"),a=t(\"elliptic\").ec,s=t(\"bn.js\"),u=t(\"parse-asn1\"),c=t(\"./curves.json\");function f(t,e,r,o){if((t=n.from(t.toArray())).length<e.byteLength()){var a=n.alloc(e.byteLength()-t.length);t=n.concat([a,t])}var s=r.length,u=function(t,e){t=(t=l(t,e)).mod(e);var r=n.from(t.toArray());if(r.length<e.byteLength()){var i=n.alloc(e.byteLength()-r.length);r=n.concat([i,r])}return r}(r,e),c=n.alloc(s);c.fill(1);var f=n.alloc(s);return f=i(o,f).update(c).update(n.from([0])).update(t).update(u).digest(),c=i(o,f).update(c).digest(),{k:f=i(o,f).update(c).update(n.from([1])).update(t).update(u).digest(),v:c=i(o,f).update(c).digest()}}function l(t,e){var r=new s(t),n=(t.length<<3)-e.bitLength();return n>0&&r.ishrn(n),r}function h(t,e,r){var o,a;do{for(o=n.alloc(0);8*o.length<t.bitLength();)e.v=i(r,e.k).update(e.v).digest(),o=n.concat([o,e.v]);a=l(o,t),e.k=i(r,e.k).update(e.v).update(n.from([0])).digest(),e.v=i(r,e.k).update(e.v).digest()}while(-1!==a.cmp(t));return a}function d(t,e,r,n){return t.toRed(s.mont(r)).redPow(e).fromRed().mod(n)}e.exports=function(t,e,r,i,p){var m=u(e);if(m.curve){if(\"ecdsa\"!==i&&\"ecdsa/rsa\"!==i)throw new Error(\"wrong private key type\");return function(t,e){var r=c[e.curve.join(\".\")];if(!r)throw new Error(\"unknown curve \"+e.curve.join(\".\"));var i=new a(r).keyFromPrivate(e.privateKey).sign(t);return n.from(i.toDER())}(t,m)}if(\"dsa\"===m.type){if(\"dsa\"!==i)throw new Error(\"wrong private key type\");return function(t,e,r){var i,o=e.params.priv_key,a=e.params.p,u=e.params.q,c=e.params.g,p=new s(0),m=l(t,u).mod(u),y=!1,b=f(o,u,t,r);for(;!1===y;)i=h(u,b,r),p=d(c,i,a,u),0===(y=i.invm(u).imul(m.add(o.mul(p))).mod(u)).cmpn(0)&&(y=!1,p=new s(0));return function(t,e){t=t.toArray(),e=e.toArray(),128&t[0]&&(t=[0].concat(t));128&e[0]&&(e=[0].concat(e));var r=[48,t.length+e.length+4,2,t.length];return r=r.concat(t,[2,e.length],e),n.from(r)}(p,y)}(t,m,r)}if(\"rsa\"!==i&&\"ecdsa/rsa\"!==i)throw new Error(\"wrong private key type\");t=n.concat([p,t]);for(var y=m.modulus.byteLength(),b=[0,1];t.length+b.length+1<y;)b.push(255);b.push(0);for(var v=-1;++v<t.length;)b.push(t[v]);return o(b,m)},e.exports.getKey=f,e.exports.makeKey=h},{\"./curves.json\":210,\"bn.js\":183,\"browserify-rsa\":206,\"create-hmac\":333,elliptic:350,\"parse-asn1\":459,\"safe-buffer\":214}],213:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"bn.js\"),o=t(\"elliptic\").ec,a=t(\"parse-asn1\"),s=t(\"./curves.json\");function u(t,e){if(t.cmpn(0)<=0)throw new Error(\"invalid sig\");if(t.cmp(e)>=e)throw new Error(\"invalid sig\")}e.exports=function(t,e,r,c,f){var l=a(r);if(\"ec\"===l.type){if(\"ecdsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");return function(t,e,r){var n=s[r.data.algorithm.curve.join(\".\")];if(!n)throw new Error(\"unknown curve \"+r.data.algorithm.curve.join(\".\"));var i=new o(n),a=r.data.subjectPrivateKey.data;return i.verify(e,t,a)}(t,e,l)}if(\"dsa\"===l.type){if(\"dsa\"!==c)throw new Error(\"wrong public key type\");return function(t,e,r){var n=r.data.p,o=r.data.q,s=r.data.g,c=r.data.pub_key,f=a.signature.decode(t,\"der\"),l=f.s,h=f.r;u(l,o),u(h,o);var d=i.mont(n),p=l.invm(o);return 0===s.toRed(d).redPow(new i(e).mul(p).mod(o)).fromRed().mul(c.toRed(d).redPow(h.mul(p).mod(o)).fromRed()).mod(n).mod(o).cmp(h)}(t,e,l)}if(\"rsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");e=n.concat([f,e]);for(var h=l.modulus.byteLength(),d=[1],p=0;e.length+d.length+2<h;)d.push(255),p++;d.push(0);for(var m=-1;++m<e.length;)d.push(e[m]);d=n.from(d);var y=i.mont(l.modulus);t=(t=new i(t).toRed(y)).redPow(new i(l.publicExponent)),t=n.from(t.fromRed().toArray());var b=p<8?1:0;for(h=Math.min(t.length,d.length),t.length!==d.length&&(b=1),m=-1;++m<h;)b|=t[m]^d[m];return 0===b}},{\"./curves.json\":210,\"bn.js\":183,elliptic:350,\"parse-asn1\":459,\"safe-buffer\":214}],214:[function(t,e,r){\"use strict\";\n/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var n=t(\"buffer\"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,r),r.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError(\"Argument must not be a number\");return i(t,e,r)},a.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");var n=i(t);return void 0!==e?\"string\"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return i(t)},a.allocUnsafeSlow=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(t)}},{buffer:216}],215:[function(t,e,r){arguments[4][185][0].apply(r,arguments)},{dup:185}],216:[function(t,e,r){(function(e){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"base64-js\"),o=t(\"ieee754\");r.Buffer=e,r.SlowBuffer=function(t){+t!=t&&(t=0);return e.alloc(+t)},r.INSPECT_MAX_BYTES=50;function a(t){if(t>2147483647)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var r=new Uint8Array(t);return r.__proto__=e.prototype,r}function e(t,e,r){if(\"number\"==typeof t){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return c(t)}return s(t,e,r)}function s(t,r,i){if(\"string\"==typeof t)return function(t,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!e.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r);var n=0|h(t,r),i=a(n),o=i.write(t,r);o!==n&&(i=i.slice(0,o));return i}(t,r);if(ArrayBuffer.isView(t))return f(t);if(null==t)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+n(t));if(L(t,ArrayBuffer)||t&&L(t.buffer,ArrayBuffer))return function(t,r,n){if(r<0||t.byteLength<r)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<r+(n||0))throw new RangeError('\"length\" is outside of buffer bounds');var i;i=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);return i.__proto__=e.prototype,i}(t,r,i);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var o=t.valueOf&&t.valueOf();if(null!=o&&o!==t)return e.from(o,r,i);var s=function(t){if(e.isBuffer(t)){var r=0|l(t.length),n=a(r);return 0===n.length||t.copy(n,0,0,r),n}if(void 0!==t.length)return\"number\"!=typeof t.length||z(t.length)?a(0):f(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return f(t.data)}(t);if(s)return s;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return e.from(t[Symbol.toPrimitive](\"string\"),r,i);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+n(t))}function u(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function c(t){return u(t),a(t<0?0:0|l(t))}function f(t){for(var e=t.length<0?0:0|l(t.length),r=a(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function l(t){if(t>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|t}function h(t,r){if(e.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||L(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+n(t));var i=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===i)return 0;for(var a=!1;;)switch(r){case\"ascii\":case\"latin1\":case\"binary\":return i;case\"utf8\":case\"utf-8\":return D(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*i;case\"hex\":return i>>>1;case\"base64\":return B(t).length;default:if(a)return o?-1:D(t).length;r=(\"\"+r).toLowerCase(),a=!0}}function d(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return E(this,e,r);case\"utf8\":case\"utf-8\":return S(this,e,r);case\"ascii\":return O(this,e,r);case\"latin1\":case\"binary\":return j(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return R(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function m(t,r,n,i,o){if(0===t.length)return-1;if(\"string\"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),z(n=+n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if(\"string\"==typeof r&&(r=e.from(r,i)),e.isBuffer(r))return 0===r.length?-1:y(t,r,n,i,o);if(\"number\"==typeof r)return r&=255,\"function\"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,r,n):Uint8Array.prototype.lastIndexOf.call(t,r,n):y(t,[r],n,i,o);throw new TypeError(\"val must be string, number or Buffer\")}function y(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=r;o<s;o++)if(c(t,o)===c(e,-1===f?0:o-f)){if(-1===f&&(f=o),o-f+1===u)return f*a}else-1!==f&&(o-=o-f),f=-1}else for(r+u>s&&(r=s-u),o=r;o>=0;o--){for(var l=!0,h=0;h<u;h++)if(c(t,o+h)!==c(e,h)){l=!1;break}if(l)return o}return-1}function b(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=e.length;n>o/2&&(n=o/2);for(var a=0;a<n;++a){var s=parseInt(e.substr(2*a,2),16);if(z(s))return a;t[r+a]=s}return a}function v(t,e,r,n){return F(D(e,t.length-r),t,r,n)}function g(t,e,r,n){return F(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function w(t,e,r,n){return g(t,e,r,n)}function _(t,e,r,n){return F(B(e),t,r,n)}function k(t,e,r,n){return F(function(t,e){for(var r,n,i,o=[],a=0;a<t.length&&!((e-=2)<0);++a)r=t.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,r))}function S(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var o,a,s,u,c=t[i],f=null,l=c>239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=l}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=4096));return r}(n)}r.kMaxLength=2147483647,e.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}(),e.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(e.prototype,\"parent\",{enumerable:!0,get:function(){if(e.isBuffer(this))return this.buffer}}),Object.defineProperty(e.prototype,\"offset\",{enumerable:!0,get:function(){if(e.isBuffer(this))return this.byteOffset}}),\"undefined\"!=typeof Symbol&&null!=Symbol.species&&e[Symbol.species]===e&&Object.defineProperty(e,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),e.poolSize=8192,e.from=function(t,e,r){return s(t,e,r)},e.prototype.__proto__=Uint8Array.prototype,e.__proto__=Uint8Array,e.alloc=function(t,e,r){return function(t,e,r){return u(t),t<=0?a(t):void 0!==e?\"string\"==typeof r?a(t).fill(e,r):a(t).fill(e):a(t)}(t,e,r)},e.allocUnsafe=function(t){return c(t)},e.allocUnsafeSlow=function(t){return c(t)},e.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==e.prototype},e.compare=function(t,r){if(L(t,Uint8Array)&&(t=e.from(t,t.offset,t.byteLength)),L(r,Uint8Array)&&(r=e.from(r,r.offset,r.byteLength)),!e.isBuffer(t)||!e.isBuffer(r))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;for(var n=t.length,i=r.length,o=0,a=Math.min(n,i);o<a;++o)if(t[o]!==r[o]){n=t[o],i=r[o];break}return n<i?-1:i<n?1:0},e.isEncoding=function(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},e.concat=function(t,r){if(!Array.isArray(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return e.alloc(0);var n;if(void 0===r)for(r=0,n=0;n<t.length;++n)r+=t[n].length;var i=e.allocUnsafe(r),o=0;for(n=0;n<t.length;++n){var a=t[n];if(L(a,Uint8Array)&&(a=e.from(a)),!e.isBuffer(a))throw new TypeError('\"list\" argument must be an Array of Buffers');a.copy(i,o),o+=a.length}return i},e.byteLength=h,e.prototype._isBuffer=!0,e.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var e=0;e<t;e+=2)p(this,e,e+1);return this},e.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var e=0;e<t;e+=4)p(this,e,e+3),p(this,e+1,e+2);return this},e.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var e=0;e<t;e+=8)p(this,e,e+7),p(this,e+1,e+6),p(this,e+2,e+5),p(this,e+3,e+4);return this},e.prototype.toString=function(){var t=this.length;return 0===t?\"\":0===arguments.length?S(this,0,t):d.apply(this,arguments)},e.prototype.toLocaleString=e.prototype.toString,e.prototype.equals=function(t){if(!e.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===e.compare(this,t)},e.prototype.inspect=function(){var t=\"\",e=r.INSPECT_MAX_BYTES;return t=this.toString(\"hex\",0,e).replace(/(.{2})/g,\"$1 \").trim(),this.length>e&&(t+=\" ... \"),\"<Buffer \"+t+\">\"},e.prototype.compare=function(t,r,i,o,a){if(L(t,Uint8Array)&&(t=e.from(t,t.offset,t.byteLength)),!e.isBuffer(t))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+n(t));if(void 0===r&&(r=0),void 0===i&&(i=t?t.length:0),void 0===o&&(o=0),void 0===a&&(a=this.length),r<0||i>t.length||o<0||a>this.length)throw new RangeError(\"out of range index\");if(o>=a&&r>=i)return 0;if(o>=a)return-1;if(r>=i)return 1;if(this===t)return 0;for(var s=(a>>>=0)-(o>>>=0),u=(i>>>=0)-(r>>>=0),c=Math.min(s,u),f=this.slice(o,a),l=t.slice(r,i),h=0;h<c;++h)if(f[h]!==l[h]){s=f[h],u=l[h];break}return s<u?-1:u<s?1:0},e.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},e.prototype.indexOf=function(t,e,r){return m(this,t,e,r,!0)},e.prototype.lastIndexOf=function(t,e,r){return m(this,t,e,r,!1)},e.prototype.write=function(t,e,r,n){if(void 0===e)n=\"utf8\",r=this.length,e=0;else if(void 0===r&&\"string\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return b(this,t,e,r);case\"utf8\":case\"utf-8\":return v(this,t,e,r);case\"ascii\":return g(this,t,e,r);case\"latin1\":case\"binary\":return w(this,t,e,r);case\"base64\":return _(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return k(this,t,e,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},e.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function O(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function j(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function E(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",o=e;o<r;++o)i+=N(t[o]);return i}function R(t,e,r){for(var n=t.slice(e,r),i=\"\",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function T(t,e,r){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function C(t,r,n,i,o,a){if(!e.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>o||r<a)throw new RangeError('\"value\" argument is out of bounds');if(n+i>t.length)throw new RangeError(\"Index out of range\")}function P(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function M(t,e,r,n,i){return e=+e,r>>>=0,i||P(t,0,r,4),o.write(t,e,r,n,23,4),r+4}function A(t,e,r,n,i){return e=+e,r>>>=0,i||P(t,0,r,8),o.write(t,e,r,n,52,8),r+8}e.prototype.slice=function(t,r){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r<t&&(r=t);var i=this.subarray(t,r);return i.__proto__=e.prototype,i},e.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t],i=1,o=0;++o<e&&(i*=256);)n+=this[t+o]*i;return n},e.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},e.prototype.readUInt8=function(t,e){return t>>>=0,e||T(t,1,this.length),this[t]},e.prototype.readUInt16LE=function(t,e){return t>>>=0,e||T(t,2,this.length),this[t]|this[t+1]<<8},e.prototype.readUInt16BE=function(t,e){return t>>>=0,e||T(t,2,this.length),this[t]<<8|this[t+1]},e.prototype.readUInt32LE=function(t,e){return t>>>=0,e||T(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},e.prototype.readUInt32BE=function(t,e){return t>>>=0,e||T(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},e.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=this[t],i=1,o=0;++o<e&&(i*=256);)n+=this[t+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},e.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||T(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},e.prototype.readInt8=function(t,e){return t>>>=0,e||T(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},e.prototype.readInt16LE=function(t,e){t>>>=0,e||T(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt16BE=function(t,e){t>>>=0,e||T(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt32LE=function(t,e){return t>>>=0,e||T(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},e.prototype.readInt32BE=function(t,e){return t>>>=0,e||T(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},e.prototype.readFloatLE=function(t,e){return t>>>=0,e||T(t,4,this.length),o.read(this,t,!0,23,4)},e.prototype.readFloatBE=function(t,e){return t>>>=0,e||T(t,4,this.length),o.read(this,t,!1,23,4)},e.prototype.readDoubleLE=function(t,e){return t>>>=0,e||T(t,8,this.length),o.read(this,t,!0,52,8)},e.prototype.readDoubleBE=function(t,e){return t>>>=0,e||T(t,8,this.length),o.read(this,t,!1,52,8)},e.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},e.prototype.writeUIntBE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},e.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,255,0),this[e]=255&t,e+1},e.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},e.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o<r&&(a*=256);)t<0&&0===s&&0!==this[e+o-1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},e.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},e.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},e.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},e.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeFloatLE=function(t,e,r){return M(this,t,e,!0,r)},e.prototype.writeFloatBE=function(t,e,r){return M(this,t,e,!1,r)},e.prototype.writeDoubleLE=function(t,e,r){return A(this,t,e,!0,r)},e.prototype.writeDoubleBE=function(t,e,r){return A(this,t,e,!1,r)},e.prototype.copy=function(t,r,n,i){if(!e.isBuffer(t))throw new TypeError(\"argument should be a Buffer\");if(n||(n=0),i||0===i||(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===t.length||0===this.length)return 0;if(r<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"Index out of range\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),t.length-r<i-n&&(i=t.length-r+n);var o=i-n;if(this===t&&\"function\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(r,n,i);else if(this===t&&n<r&&r<i)for(var a=o-1;a>=0;--a)t[a+r]=this[a+n];else Uint8Array.prototype.set.call(t,this.subarray(n,i),r);return o},e.prototype.fill=function(t,r,n,i){if(\"string\"==typeof t){if(\"string\"==typeof r?(i=r,r=0,n=this.length):\"string\"==typeof n&&(i=n,n=this.length),void 0!==i&&\"string\"!=typeof i)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof i&&!e.isEncoding(i))throw new TypeError(\"Unknown encoding: \"+i);if(1===t.length){var o=t.charCodeAt(0);(\"utf8\"===i&&o<128||\"latin1\"===i)&&(t=o)}}else\"number\"==typeof t&&(t&=255);if(r<0||this.length<r||this.length<n)throw new RangeError(\"Out of range index\");if(n<=r)return this;var a;if(r>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),\"number\"==typeof t)for(a=r;a<n;++a)this[a]=t;else{var s=e.isBuffer(t)?t:e.from(t,i),u=s.length;if(0===u)throw new TypeError('The value \"'+t+'\" is invalid for argument \"value\"');for(a=0;a<n-r;++a)this[a+r]=s[a%u]}return this};var I=/[^+/0-9A-Za-z-_]/g;function N(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function D(t,e){var r;e=e||1/0;for(var n=t.length,i=null,o=[],a=0;a<n;++a){if((r=t.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function B(t){return i.toByteArray(function(t){if((t=(t=t.split(\"=\")[0]).trim().replace(I,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function F(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function L(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function z(t){return t!=t}}).call(this,t(\"buffer\").Buffer)},{\"base64-js\":182,buffer:216,ieee754:385}],217:[function(t,e,r){(function(t){\"use strict\";e.exports=function(e,r){for(var n=Math.min(e.length,r.length),i=new t(n),o=0;o<n;++o)i[o]=e[o]^r[o];return i}}).call(this,t(\"buffer\").Buffer)},{buffer:216}],218:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"stream\").Transform,o=t(\"string_decoder\").StringDecoder;function a(t){i.call(this),this.hashMode=\"string\"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}t(\"inherits\")(a,i),a.prototype.update=function(t,e,r){\"string\"==typeof t&&(t=n.from(t,e));var i=this._update(t);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error(\"trying to get auth tag in unsupported state\")},a.prototype.setAuthTag=function(){throw new Error(\"trying to set auth tag in unsupported state\")},a.prototype.setAAD=function(){throw new Error(\"trying to set aad in unsupported state\")},a.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},a.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},a.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},a.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error(\"can't switch encodings\");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},e.exports=a},{inherits:387,\"safe-buffer\":494,stream:506,string_decoder:520}],219:[function(t,e,r){e.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},{}],220:[function(t,e,r){var n=t(\"../internals/is-object\");e.exports=function(t){if(!n(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},{\"../internals/is-object\":263}],221:[function(t,e,r){var n=t(\"../internals/well-known-symbol\"),i=t(\"../internals/object-create\"),o=t(\"../internals/object-define-property\"),a=n(\"unscopables\"),s=Array.prototype;null==s[a]&&o.f(s,a,{configurable:!0,value:i(null)}),e.exports=function(t){s[a][t]=!0}},{\"../internals/object-create\":276,\"../internals/object-define-property\":278,\"../internals/well-known-symbol\":314}],222:[function(t,e,r){e.exports=function(t,e,r){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(r?r+\" \":\"\")+\"invocation\");return t}},{}],223:[function(t,e,r){var n=t(\"../internals/is-object\");e.exports=function(t){if(!n(t))throw TypeError(String(t)+\" is not an object\");return t}},{\"../internals/is-object\":263}],224:[function(t,e,r){var n=t(\"../internals/to-indexed-object\"),i=t(\"../internals/to-length\"),o=t(\"../internals/to-absolute-index\"),a=function(t){return function(e,r,a){var s,u=n(e),c=i(u.length),f=o(a,c);if(t&&r!=r){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},{\"../internals/to-absolute-index\":304,\"../internals/to-indexed-object\":305,\"../internals/to-length\":307}],225:[function(t,e,r){var n=t(\"../internals/function-bind-context\"),i=t(\"../internals/indexed-object\"),o=t(\"../internals/to-object\"),a=t(\"../internals/to-length\"),s=t(\"../internals/array-species-create\"),u=[].push,c=function(t){var e=1==t,r=2==t,c=3==t,f=4==t,l=6==t,h=5==t||l;return function(d,p,m,y){for(var b,v,g=o(d),w=i(g),_=n(p,m,3),k=a(w.length),x=0,S=y||s,O=e?S(d,k):r?S(d,0):void 0;k>x;x++)if((h||x in w)&&(v=_(b=w[x],x,g),t))if(e)O[x]=v;else if(v)switch(t){case 3:return!0;case 5:return b;case 6:return x;case 2:u.call(O,b)}else if(f)return!1;return l?-1:c||f?f:O}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},{\"../internals/array-species-create\":227,\"../internals/function-bind-context\":248,\"../internals/indexed-object\":257,\"../internals/to-length\":307,\"../internals/to-object\":308}],226:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/fails\"),o=t(\"../internals/has\"),a=Object.defineProperty,s={},u=function(t){throw t};e.exports=function(t,e){if(o(s,t))return s[t];e||(e={});var r=[][t],c=!!o(e,\"ACCESSORS\")&&e.ACCESSORS,f=o(e,0)?e[0]:u,l=o(e,1)?e[1]:void 0;return s[t]=!!r&&!i((function(){if(c&&!n)return!0;var t={length:-1};c?a(t,1,{enumerable:!0,get:u}):t[1]=1,r.call(t,f,l)}))}},{\"../internals/descriptors\":240,\"../internals/fails\":247,\"../internals/has\":252}],227:[function(t,e,r){var n=t(\"../internals/is-object\"),i=t(\"../internals/is-array\"),o=t(\"../internals/well-known-symbol\")(\"species\");e.exports=function(t,e){var r;return i(t)&&(\"function\"!=typeof(r=t.constructor)||r!==Array&&!i(r.prototype)?n(r)&&null===(r=r[o])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)}},{\"../internals/is-array\":261,\"../internals/is-object\":263,\"../internals/well-known-symbol\":314}],228:[function(t,e,r){var n=t(\"../internals/an-object\");e.exports=function(t,e,r,i){try{return i?e(n(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&n(o.call(t)),e}}},{\"../internals/an-object\":223}],229:[function(t,e,r){var n=t(\"../internals/well-known-symbol\")(\"iterator\"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[n]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}e.exports=function(t,e){if(!e&&!i)return!1;var r=!1;try{var o={};o[n]=function(){return{next:function(){return{done:r=!0}}}},t(o)}catch(t){}return r}},{\"../internals/well-known-symbol\":314}],230:[function(t,e,r){var n={}.toString;e.exports=function(t){return n.call(t).slice(8,-1)}},{}],231:[function(t,e,r){var n=t(\"../internals/to-string-tag-support\"),i=t(\"../internals/classof-raw\"),o=t(\"../internals/well-known-symbol\")(\"toStringTag\"),a=\"Arguments\"==i(function(){return arguments}());e.exports=n?i:function(t){var e,r,n;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:a?i(e):\"Object\"==(n=i(e))&&\"function\"==typeof e.callee?\"Arguments\":n}},{\"../internals/classof-raw\":230,\"../internals/to-string-tag-support\":310,\"../internals/well-known-symbol\":314}],232:[function(t,e,r){var n=t(\"../internals/has\"),i=t(\"../internals/own-keys\"),o=t(\"../internals/object-get-own-property-descriptor\"),a=t(\"../internals/object-define-property\");e.exports=function(t,e){for(var r=i(e),s=a.f,u=o.f,c=0;c<r.length;c++){var f=r[c];n(t,f)||s(t,f,u(e,f))}}},{\"../internals/has\":252,\"../internals/object-define-property\":278,\"../internals/object-get-own-property-descriptor\":279,\"../internals/own-keys\":289}],233:[function(t,e,r){var n=t(\"../internals/well-known-symbol\")(\"match\");e.exports=function(t){var e=/./;try{\"/./\"[t](e)}catch(r){try{return e[n]=!1,\"/./\"[t](e)}catch(t){}}return!1}},{\"../internals/well-known-symbol\":314}],234:[function(t,e,r){var n=t(\"../internals/fails\");e.exports=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},{\"../internals/fails\":247}],235:[function(t,e,r){\"use strict\";var n=t(\"../internals/iterators-core\").IteratorPrototype,i=t(\"../internals/object-create\"),o=t(\"../internals/create-property-descriptor\"),a=t(\"../internals/set-to-string-tag\"),s=t(\"../internals/iterators\"),u=function(){return this};e.exports=function(t,e,r){var c=e+\" Iterator\";return t.prototype=i(n,{next:o(1,r)}),a(t,c,!1,!0),s[c]=u,t}},{\"../internals/create-property-descriptor\":237,\"../internals/iterators\":268,\"../internals/iterators-core\":267,\"../internals/object-create\":276,\"../internals/set-to-string-tag\":298}],236:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/object-define-property\"),o=t(\"../internals/create-property-descriptor\");e.exports=n?function(t,e,r){return i.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},{\"../internals/create-property-descriptor\":237,\"../internals/descriptors\":240,\"../internals/object-define-property\":278}],237:[function(t,e,r){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],238:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/create-iterator-constructor\"),o=t(\"../internals/object-get-prototype-of\"),a=t(\"../internals/object-set-prototype-of\"),s=t(\"../internals/set-to-string-tag\"),u=t(\"../internals/create-non-enumerable-property\"),c=t(\"../internals/redefine\"),f=t(\"../internals/well-known-symbol\"),l=t(\"../internals/is-pure\"),h=t(\"../internals/iterators\"),d=t(\"../internals/iterators-core\"),p=d.IteratorPrototype,m=d.BUGGY_SAFARI_ITERATORS,y=f(\"iterator\"),b=function(){return this};e.exports=function(t,e,r,f,d,v,g){i(r,e,f);var w,_,k,x=function(t){if(t===d&&R)return R;if(!m&&t in j)return j[t];switch(t){case\"keys\":case\"values\":case\"entries\":return function(){return new r(this,t)}}return function(){return new r(this)}},S=e+\" Iterator\",O=!1,j=t.prototype,E=j[y]||j[\"@@iterator\"]||d&&j[d],R=!m&&E||x(d),T=\"Array\"==e&&j.entries||E;if(T&&(w=o(T.call(new t)),p!==Object.prototype&&w.next&&(l||o(w)===p||(a?a(w,p):\"function\"!=typeof w[y]&&u(w,y,b)),s(w,S,!0,!0),l&&(h[S]=b))),\"values\"==d&&E&&\"values\"!==E.name&&(O=!0,R=function(){return E.call(this)}),l&&!g||j[y]===R||u(j,y,R),h[e]=R,d)if(_={values:x(\"values\"),keys:v?R:x(\"keys\"),entries:x(\"entries\")},g)for(k in _)(m||O||!(k in j))&&c(j,k,_[k]);else n({target:e,proto:!0,forced:m||O},_);return _}},{\"../internals/create-iterator-constructor\":235,\"../internals/create-non-enumerable-property\":236,\"../internals/export\":246,\"../internals/is-pure\":264,\"../internals/iterators\":268,\"../internals/iterators-core\":267,\"../internals/object-get-prototype-of\":283,\"../internals/object-set-prototype-of\":287,\"../internals/redefine\":294,\"../internals/set-to-string-tag\":298,\"../internals/well-known-symbol\":314}],239:[function(t,e,r){var n=t(\"../internals/path\"),i=t(\"../internals/has\"),o=t(\"../internals/well-known-symbol-wrapped\"),a=t(\"../internals/object-define-property\").f;e.exports=function(t){var e=n.Symbol||(n.Symbol={});i(e,t)||a(e,t,{value:o.f(t)})}},{\"../internals/has\":252,\"../internals/object-define-property\":278,\"../internals/path\":290,\"../internals/well-known-symbol-wrapped\":313}],240:[function(t,e,r){var n=t(\"../internals/fails\");e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},{\"../internals/fails\":247}],241:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/is-object\"),o=n.document,a=i(o)&&i(o.createElement);e.exports=function(t){return a?o.createElement(t):{}}},{\"../internals/global\":251,\"../internals/is-object\":263}],242:[function(t,e,r){var n=t(\"../internals/engine-user-agent\");e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},{\"../internals/engine-user-agent\":243}],243:[function(t,e,r){var n=t(\"../internals/get-built-in\");e.exports=n(\"navigator\",\"userAgent\")||\"\"},{\"../internals/get-built-in\":249}],244:[function(t,e,r){var n,i,o=t(\"../internals/global\"),a=t(\"../internals/engine-user-agent\"),s=o.process,u=s&&s.versions,c=u&&u.v8;c?i=(n=c.split(\".\"))[0]+n[1]:a&&(!(n=a.match(/Edge\\/(\\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\\/(\\d+)/))&&(i=n[1]),e.exports=i&&+i},{\"../internals/engine-user-agent\":243,\"../internals/global\":251}],245:[function(t,e,r){e.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},{}],246:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/object-get-own-property-descriptor\").f,o=t(\"../internals/create-non-enumerable-property\"),a=t(\"../internals/redefine\"),s=t(\"../internals/set-global\"),u=t(\"../internals/copy-constructor-properties\"),c=t(\"../internals/is-forced\");e.exports=function(t,e){var r,f,l,h,d,p=t.target,m=t.global,y=t.stat;if(r=m?n:y?n[p]||s(p,{}):(n[p]||{}).prototype)for(f in e){if(h=e[f],l=t.noTargetGet?(d=i(r,f))&&d.value:r[f],!c(m?f:p+(y?\".\":\"#\")+f,t.forced)&&void 0!==l){if(typeof h==typeof l)continue;u(h,l)}(t.sham||l&&l.sham)&&o(h,\"sham\",!0),a(r,f,h,t)}}},{\"../internals/copy-constructor-properties\":232,\"../internals/create-non-enumerable-property\":236,\"../internals/global\":251,\"../internals/is-forced\":262,\"../internals/object-get-own-property-descriptor\":279,\"../internals/redefine\":294,\"../internals/set-global\":296}],247:[function(t,e,r){e.exports=function(t){try{return!!t()}catch(t){return!0}}},{}],248:[function(t,e,r){var n=t(\"../internals/a-function\");e.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}}},{\"../internals/a-function\":219}],249:[function(t,e,r){var n=t(\"../internals/path\"),i=t(\"../internals/global\"),o=function(t){return\"function\"==typeof t?t:void 0};e.exports=function(t,e){return arguments.length<2?o(n[t])||o(i[t]):n[t]&&n[t][e]||i[t]&&i[t][e]}},{\"../internals/global\":251,\"../internals/path\":290}],250:[function(t,e,r){var n=t(\"../internals/classof\"),i=t(\"../internals/iterators\"),o=t(\"../internals/well-known-symbol\")(\"iterator\");e.exports=function(t){if(null!=t)return t[o]||t[\"@@iterator\"]||i[n(t)]}},{\"../internals/classof\":231,\"../internals/iterators\":268,\"../internals/well-known-symbol\":314}],251:[function(t,e,r){(function(t){var r=function(t){return t&&t.Math==Math&&t};e.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof t&&t)||Function(\"return this\")()}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],252:[function(t,e,r){var n={}.hasOwnProperty;e.exports=function(t,e){return n.call(t,e)}},{}],253:[function(t,e,r){e.exports={}},{}],254:[function(t,e,r){var n=t(\"../internals/global\");e.exports=function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}},{\"../internals/global\":251}],255:[function(t,e,r){var n=t(\"../internals/get-built-in\");e.exports=n(\"document\",\"documentElement\")},{\"../internals/get-built-in\":249}],256:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/fails\"),o=t(\"../internals/document-create-element\");e.exports=!n&&!i((function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a}))},{\"../internals/descriptors\":240,\"../internals/document-create-element\":241,\"../internals/fails\":247}],257:[function(t,e,r){var n=t(\"../internals/fails\"),i=t(\"../internals/classof-raw\"),o=\"\".split;e.exports=n((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==i(t)?o.call(t,\"\"):Object(t)}:Object},{\"../internals/classof-raw\":230,\"../internals/fails\":247}],258:[function(t,e,r){var n=t(\"../internals/shared-store\"),i=Function.toString;\"function\"!=typeof n.inspectSource&&(n.inspectSource=function(t){return i.call(t)}),e.exports=n.inspectSource},{\"../internals/shared-store\":300}],259:[function(t,e,r){var n,i,o,a=t(\"../internals/native-weak-map\"),s=t(\"../internals/global\"),u=t(\"../internals/is-object\"),c=t(\"../internals/create-non-enumerable-property\"),f=t(\"../internals/has\"),l=t(\"../internals/shared-key\"),h=t(\"../internals/hidden-keys\"),d=s.WeakMap;if(a){var p=new d,m=p.get,y=p.has,b=p.set;n=function(t,e){return b.call(p,t,e),e},i=function(t){return m.call(p,t)||{}},o=function(t){return y.call(p,t)}}else{var v=l(\"state\");h[v]=!0,n=function(t,e){return c(t,v,e),e},i=function(t){return f(t,v)?t[v]:{}},o=function(t){return f(t,v)}}e.exports={set:n,get:i,has:o,enforce:function(t){return o(t)?i(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=i(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return r}}}},{\"../internals/create-non-enumerable-property\":236,\"../internals/global\":251,\"../internals/has\":252,\"../internals/hidden-keys\":253,\"../internals/is-object\":263,\"../internals/native-weak-map\":272,\"../internals/shared-key\":299}],260:[function(t,e,r){var n=t(\"../internals/well-known-symbol\"),i=t(\"../internals/iterators\"),o=n(\"iterator\"),a=Array.prototype;e.exports=function(t){return void 0!==t&&(i.Array===t||a[o]===t)}},{\"../internals/iterators\":268,\"../internals/well-known-symbol\":314}],261:[function(t,e,r){var n=t(\"../internals/classof-raw\");e.exports=Array.isArray||function(t){return\"Array\"==n(t)}},{\"../internals/classof-raw\":230}],262:[function(t,e,r){var n=t(\"../internals/fails\"),i=/#|\\.prototype\\./,o=function(t,e){var r=s[a(t)];return r==c||r!=u&&(\"function\"==typeof e?n(e):!!e)},a=o.normalize=function(t){return String(t).replace(i,\".\").toLowerCase()},s=o.data={},u=o.NATIVE=\"N\",c=o.POLYFILL=\"P\";e.exports=o},{\"../internals/fails\":247}],263:[function(t,e,r){e.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},{}],264:[function(t,e,r){e.exports=!1},{}],265:[function(t,e,r){var n=t(\"../internals/is-object\"),i=t(\"../internals/classof-raw\"),o=t(\"../internals/well-known-symbol\")(\"match\");e.exports=function(t){var e;return n(t)&&(void 0!==(e=t[o])?!!e:\"RegExp\"==i(t))}},{\"../internals/classof-raw\":230,\"../internals/is-object\":263,\"../internals/well-known-symbol\":314}],266:[function(t,e,r){var n=t(\"../internals/an-object\"),i=t(\"../internals/is-array-iterator-method\"),o=t(\"../internals/to-length\"),a=t(\"../internals/function-bind-context\"),s=t(\"../internals/get-iterator-method\"),u=t(\"../internals/call-with-safe-iteration-closing\"),c=function(t,e){this.stopped=t,this.result=e};(e.exports=function(t,e,r,f,l){var h,d,p,m,y,b,v,g=a(e,r,f?2:1);if(l)h=t;else{if(\"function\"!=typeof(d=s(t)))throw TypeError(\"Target is not iterable\");if(i(d)){for(p=0,m=o(t.length);m>p;p++)if((y=f?g(n(v=t[p])[0],v[1]):g(t[p]))&&y instanceof c)return y;return new c(!1)}h=d.call(t)}for(b=h.next;!(v=b.call(h)).done;)if(\"object\"==typeof(y=u(h,g,v.value,f))&&y&&y instanceof c)return y;return new c(!1)}).stop=function(t){return new c(!0,t)}},{\"../internals/an-object\":223,\"../internals/call-with-safe-iteration-closing\":228,\"../internals/function-bind-context\":248,\"../internals/get-iterator-method\":250,\"../internals/is-array-iterator-method\":260,\"../internals/to-length\":307}],267:[function(t,e,r){\"use strict\";var n,i,o,a=t(\"../internals/object-get-prototype-of\"),s=t(\"../internals/create-non-enumerable-property\"),u=t(\"../internals/has\"),c=t(\"../internals/well-known-symbol\"),f=t(\"../internals/is-pure\"),l=c(\"iterator\"),h=!1;[].keys&&(\"next\"in(o=[].keys())?(i=a(a(o)))!==Object.prototype&&(n=i):h=!0),null==n&&(n={}),f||u(n,l)||s(n,l,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},{\"../internals/create-non-enumerable-property\":236,\"../internals/has\":252,\"../internals/is-pure\":264,\"../internals/object-get-prototype-of\":283,\"../internals/well-known-symbol\":314}],268:[function(t,e,r){arguments[4][253][0].apply(r,arguments)},{dup:253}],269:[function(t,e,r){var n,i,o,a,s,u,c,f,l=t(\"../internals/global\"),h=t(\"../internals/object-get-own-property-descriptor\").f,d=t(\"../internals/classof-raw\"),p=t(\"../internals/task\").set,m=t(\"../internals/engine-is-ios\"),y=l.MutationObserver||l.WebKitMutationObserver,b=l.process,v=l.Promise,g=\"process\"==d(b),w=h(l,\"queueMicrotask\"),_=w&&w.value;_||(n=function(){var t,e;for(g&&(t=b.domain)&&t.exit();i;){e=i.fn,i=i.next;try{e()}catch(t){throw i?a():o=void 0,t}}o=void 0,t&&t.enter()},g?a=function(){b.nextTick(n)}:y&&!m?(s=!0,u=document.createTextNode(\"\"),new y(n).observe(u,{characterData:!0}),a=function(){u.data=s=!s}):v&&v.resolve?(c=v.resolve(void 0),f=c.then,a=function(){f.call(c,n)}):a=function(){p.call(l,n)}),e.exports=_||function(t){var e={fn:t,next:void 0};o&&(o.next=e),i||(i=e,a()),o=e}},{\"../internals/classof-raw\":230,\"../internals/engine-is-ios\":242,\"../internals/global\":251,\"../internals/object-get-own-property-descriptor\":279,\"../internals/task\":303}],270:[function(t,e,r){var n=t(\"../internals/global\");e.exports=n.Promise},{\"../internals/global\":251}],271:[function(t,e,r){var n=t(\"../internals/fails\");e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},{\"../internals/fails\":247}],272:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/inspect-source\"),o=n.WeakMap;e.exports=\"function\"==typeof o&&/native code/.test(i(o))},{\"../internals/global\":251,\"../internals/inspect-source\":258}],273:[function(t,e,r){\"use strict\";var n=t(\"../internals/a-function\"),i=function(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw TypeError(\"Bad Promise constructor\");e=t,r=n})),this.resolve=n(e),this.reject=n(r)};e.exports.f=function(t){return new i(t)}},{\"../internals/a-function\":219}],274:[function(t,e,r){var n=t(\"../internals/is-regexp\");e.exports=function(t){if(n(t))throw TypeError(\"The method doesn't accept regular expressions\");return t}},{\"../internals/is-regexp\":265}],275:[function(t,e,r){\"use strict\";var n=t(\"../internals/descriptors\"),i=t(\"../internals/fails\"),o=t(\"../internals/object-keys\"),a=t(\"../internals/object-get-own-property-symbols\"),s=t(\"../internals/object-property-is-enumerable\"),u=t(\"../internals/to-object\"),c=t(\"../internals/indexed-object\"),f=Object.assign,l=Object.defineProperty;e.exports=!f||i((function(){if(n&&1!==f({b:1},f(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol();return t[r]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){e[t]=t})),7!=f({},t)[r]||\"abcdefghijklmnopqrst\"!=o(f({},e)).join(\"\")}))?function(t,e){for(var r=u(t),i=arguments.length,f=1,l=a.f,h=s.f;i>f;)for(var d,p=c(arguments[f++]),m=l?o(p).concat(l(p)):o(p),y=m.length,b=0;y>b;)d=m[b++],n&&!h.call(p,d)||(r[d]=p[d]);return r}:f},{\"../internals/descriptors\":240,\"../internals/fails\":247,\"../internals/indexed-object\":257,\"../internals/object-get-own-property-symbols\":282,\"../internals/object-keys\":285,\"../internals/object-property-is-enumerable\":286,\"../internals/to-object\":308}],276:[function(t,e,r){var n,i=t(\"../internals/an-object\"),o=t(\"../internals/object-define-properties\"),a=t(\"../internals/enum-bug-keys\"),s=t(\"../internals/hidden-keys\"),u=t(\"../internals/html\"),c=t(\"../internals/document-create-element\"),f=t(\"../internals/shared-key\"),l=f(\"IE_PROTO\"),h=function(){},d=function(t){return\"<script>\"+t+\"<\\/script>\"},p=function(){try{n=document.domain&&new ActiveXObject(\"htmlfile\")}catch(t){}var t,e;p=n?function(t){t.write(d(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(n):((e=c(\"iframe\")).style.display=\"none\",u.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(d(\"document.F=Object\")),t.close(),t.F);for(var r=a.length;r--;)delete p.prototype[a[r]];return p()};s[l]=!0,e.exports=Object.create||function(t,e){var r;return null!==t?(h.prototype=i(t),r=new h,h.prototype=null,r[l]=t):r=p(),void 0===e?r:o(r,e)}},{\"../internals/an-object\":223,\"../internals/document-create-element\":241,\"../internals/enum-bug-keys\":245,\"../internals/hidden-keys\":253,\"../internals/html\":255,\"../internals/object-define-properties\":277,\"../internals/shared-key\":299}],277:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/object-define-property\"),o=t(\"../internals/an-object\"),a=t(\"../internals/object-keys\");e.exports=n?Object.defineProperties:function(t,e){o(t);for(var r,n=a(e),s=n.length,u=0;s>u;)i.f(t,r=n[u++],e[r]);return t}},{\"../internals/an-object\":223,\"../internals/descriptors\":240,\"../internals/object-define-property\":278,\"../internals/object-keys\":285}],278:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/ie8-dom-define\"),o=t(\"../internals/an-object\"),a=t(\"../internals/to-primitive\"),s=Object.defineProperty;r.f=n?s:function(t,e,r){if(o(t),e=a(e,!0),o(r),i)try{return s(t,e,r)}catch(t){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(t[e]=r.value),t}},{\"../internals/an-object\":223,\"../internals/descriptors\":240,\"../internals/ie8-dom-define\":256,\"../internals/to-primitive\":309}],279:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/object-property-is-enumerable\"),o=t(\"../internals/create-property-descriptor\"),a=t(\"../internals/to-indexed-object\"),s=t(\"../internals/to-primitive\"),u=t(\"../internals/has\"),c=t(\"../internals/ie8-dom-define\"),f=Object.getOwnPropertyDescriptor;r.f=n?f:function(t,e){if(t=a(t),e=s(e,!0),c)try{return f(t,e)}catch(t){}if(u(t,e))return o(!i.f.call(t,e),t[e])}},{\"../internals/create-property-descriptor\":237,\"../internals/descriptors\":240,\"../internals/has\":252,\"../internals/ie8-dom-define\":256,\"../internals/object-property-is-enumerable\":286,\"../internals/to-indexed-object\":305,\"../internals/to-primitive\":309}],280:[function(t,e,r){var n=t(\"../internals/to-indexed-object\"),i=t(\"../internals/object-get-own-property-names\").f,o={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(t){return a&&\"[object Window]\"==o.call(t)?function(t){try{return i(t)}catch(t){return a.slice()}}(t):i(n(t))}},{\"../internals/object-get-own-property-names\":281,\"../internals/to-indexed-object\":305}],281:[function(t,e,r){var n=t(\"../internals/object-keys-internal\"),i=t(\"../internals/enum-bug-keys\").concat(\"length\",\"prototype\");r.f=Object.getOwnPropertyNames||function(t){return n(t,i)}},{\"../internals/enum-bug-keys\":245,\"../internals/object-keys-internal\":284}],282:[function(t,e,r){r.f=Object.getOwnPropertySymbols},{}],283:[function(t,e,r){var n=t(\"../internals/has\"),i=t(\"../internals/to-object\"),o=t(\"../internals/shared-key\"),a=t(\"../internals/correct-prototype-getter\"),s=o(\"IE_PROTO\"),u=Object.prototype;e.exports=a?Object.getPrototypeOf:function(t){return t=i(t),n(t,s)?t[s]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},{\"../internals/correct-prototype-getter\":234,\"../internals/has\":252,\"../internals/shared-key\":299,\"../internals/to-object\":308}],284:[function(t,e,r){var n=t(\"../internals/has\"),i=t(\"../internals/to-indexed-object\"),o=t(\"../internals/array-includes\").indexOf,a=t(\"../internals/hidden-keys\");e.exports=function(t,e){var r,s=i(t),u=0,c=[];for(r in s)!n(a,r)&&n(s,r)&&c.push(r);for(;e.length>u;)n(s,r=e[u++])&&(~o(c,r)||c.push(r));return c}},{\"../internals/array-includes\":224,\"../internals/has\":252,\"../internals/hidden-keys\":253,\"../internals/to-indexed-object\":305}],285:[function(t,e,r){var n=t(\"../internals/object-keys-internal\"),i=t(\"../internals/enum-bug-keys\");e.exports=Object.keys||function(t){return n(t,i)}},{\"../internals/enum-bug-keys\":245,\"../internals/object-keys-internal\":284}],286:[function(t,e,r){\"use strict\";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!n.call({1:2},1);r.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},{}],287:[function(t,e,r){var n=t(\"../internals/an-object\"),i=t(\"../internals/a-possible-prototype\");e.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,o){return n(r),i(o),e?t.call(r,o):r.__proto__=o,r}}():void 0)},{\"../internals/a-possible-prototype\":220,\"../internals/an-object\":223}],288:[function(t,e,r){var n=t(\"../internals/descriptors\"),i=t(\"../internals/object-keys\"),o=t(\"../internals/to-indexed-object\"),a=t(\"../internals/object-property-is-enumerable\").f,s=function(t){return function(e){for(var r,s=o(e),u=i(s),c=u.length,f=0,l=[];c>f;)r=u[f++],n&&!a.call(s,r)||l.push(t?[r,s[r]]:s[r]);return l}};e.exports={entries:s(!0),values:s(!1)}},{\"../internals/descriptors\":240,\"../internals/object-keys\":285,\"../internals/object-property-is-enumerable\":286,\"../internals/to-indexed-object\":305}],289:[function(t,e,r){var n=t(\"../internals/get-built-in\"),i=t(\"../internals/object-get-own-property-names\"),o=t(\"../internals/object-get-own-property-symbols\"),a=t(\"../internals/an-object\");e.exports=n(\"Reflect\",\"ownKeys\")||function(t){var e=i.f(a(t)),r=o.f;return r?e.concat(r(t)):e}},{\"../internals/an-object\":223,\"../internals/get-built-in\":249,\"../internals/object-get-own-property-names\":281,\"../internals/object-get-own-property-symbols\":282}],290:[function(t,e,r){var n=t(\"../internals/global\");e.exports=n},{\"../internals/global\":251}],291:[function(t,e,r){e.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},{}],292:[function(t,e,r){var n=t(\"../internals/an-object\"),i=t(\"../internals/is-object\"),o=t(\"../internals/new-promise-capability\");e.exports=function(t,e){if(n(t),i(e)&&e.constructor===t)return e;var r=o.f(t);return(0,r.resolve)(e),r.promise}},{\"../internals/an-object\":223,\"../internals/is-object\":263,\"../internals/new-promise-capability\":273}],293:[function(t,e,r){var n=t(\"../internals/redefine\");e.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},{\"../internals/redefine\":294}],294:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/create-non-enumerable-property\"),o=t(\"../internals/has\"),a=t(\"../internals/set-global\"),s=t(\"../internals/inspect-source\"),u=t(\"../internals/internal-state\"),c=u.get,f=u.enforce,l=String(String).split(\"String\");(e.exports=function(t,e,r,s){var u=!!s&&!!s.unsafe,c=!!s&&!!s.enumerable,h=!!s&&!!s.noTargetGet;\"function\"==typeof r&&(\"string\"!=typeof e||o(r,\"name\")||i(r,\"name\",e),f(r).source=l.join(\"string\"==typeof e?e:\"\")),t!==n?(u?!h&&t[e]&&(c=!0):delete t[e],c?t[e]=r:i(t,e,r)):c?t[e]=r:a(e,r)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&c(this).source||s(this)}))},{\"../internals/create-non-enumerable-property\":236,\"../internals/global\":251,\"../internals/has\":252,\"../internals/inspect-source\":258,\"../internals/internal-state\":259,\"../internals/set-global\":296}],295:[function(t,e,r){e.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},{}],296:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/create-non-enumerable-property\");e.exports=function(t,e){try{i(n,t,e)}catch(r){n[t]=e}return e}},{\"../internals/create-non-enumerable-property\":236,\"../internals/global\":251}],297:[function(t,e,r){\"use strict\";var n=t(\"../internals/get-built-in\"),i=t(\"../internals/object-define-property\"),o=t(\"../internals/well-known-symbol\"),a=t(\"../internals/descriptors\"),s=o(\"species\");e.exports=function(t){var e=n(t),r=i.f;a&&e&&!e[s]&&r(e,s,{configurable:!0,get:function(){return this}})}},{\"../internals/descriptors\":240,\"../internals/get-built-in\":249,\"../internals/object-define-property\":278,\"../internals/well-known-symbol\":314}],298:[function(t,e,r){var n=t(\"../internals/object-define-property\").f,i=t(\"../internals/has\"),o=t(\"../internals/well-known-symbol\")(\"toStringTag\");e.exports=function(t,e,r){t&&!i(t=r?t:t.prototype,o)&&n(t,o,{configurable:!0,value:e})}},{\"../internals/has\":252,\"../internals/object-define-property\":278,\"../internals/well-known-symbol\":314}],299:[function(t,e,r){var n=t(\"../internals/shared\"),i=t(\"../internals/uid\"),o=n(\"keys\");e.exports=function(t){return o[t]||(o[t]=i(t))}},{\"../internals/shared\":301,\"../internals/uid\":311}],300:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/set-global\"),o=n[\"__core-js_shared__\"]||i(\"__core-js_shared__\",{});e.exports=o},{\"../internals/global\":251,\"../internals/set-global\":296}],301:[function(t,e,r){var n=t(\"../internals/is-pure\"),i=t(\"../internals/shared-store\");(e.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:n?\"pure\":\"global\",copyright:\"\\xa9 2020 Denis Pushkarev (zloirock.ru)\"})},{\"../internals/is-pure\":264,\"../internals/shared-store\":300}],302:[function(t,e,r){var n=t(\"../internals/an-object\"),i=t(\"../internals/a-function\"),o=t(\"../internals/well-known-symbol\")(\"species\");e.exports=function(t,e){var r,a=n(t).constructor;return void 0===a||null==(r=n(a)[o])?e:i(r)}},{\"../internals/a-function\":219,\"../internals/an-object\":223,\"../internals/well-known-symbol\":314}],303:[function(t,e,r){var n,i,o,a=t(\"../internals/global\"),s=t(\"../internals/fails\"),u=t(\"../internals/classof-raw\"),c=t(\"../internals/function-bind-context\"),f=t(\"../internals/html\"),l=t(\"../internals/document-create-element\"),h=t(\"../internals/engine-is-ios\"),d=a.location,p=a.setImmediate,m=a.clearImmediate,y=a.process,b=a.MessageChannel,v=a.Dispatch,g=0,w={},_=function(t){if(w.hasOwnProperty(t)){var e=w[t];delete w[t],e()}},k=function(t){return function(){_(t)}},x=function(t){_(t.data)},S=function(t){a.postMessage(t+\"\",d.protocol+\"//\"+d.host)};p&&m||(p=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return w[++g]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},n(g),g},m=function(t){delete w[t]},\"process\"==u(y)?n=function(t){y.nextTick(k(t))}:v&&v.now?n=function(t){v.now(k(t))}:b&&!h?(o=(i=new b).port2,i.port1.onmessage=x,n=c(o.postMessage,o,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||s(S)||\"file:\"===d.protocol?n=\"onreadystatechange\"in l(\"script\")?function(t){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),_(t)}}:function(t){setTimeout(k(t),0)}:(n=S,a.addEventListener(\"message\",x,!1))),e.exports={set:p,clear:m}},{\"../internals/classof-raw\":230,\"../internals/document-create-element\":241,\"../internals/engine-is-ios\":242,\"../internals/fails\":247,\"../internals/function-bind-context\":248,\"../internals/global\":251,\"../internals/html\":255}],304:[function(t,e,r){var n=t(\"../internals/to-integer\"),i=Math.max,o=Math.min;e.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):o(r,e)}},{\"../internals/to-integer\":306}],305:[function(t,e,r){var n=t(\"../internals/indexed-object\"),i=t(\"../internals/require-object-coercible\");e.exports=function(t){return n(i(t))}},{\"../internals/indexed-object\":257,\"../internals/require-object-coercible\":295}],306:[function(t,e,r){var n=Math.ceil,i=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},{}],307:[function(t,e,r){var n=t(\"../internals/to-integer\"),i=Math.min;e.exports=function(t){return t>0?i(n(t),9007199254740991):0}},{\"../internals/to-integer\":306}],308:[function(t,e,r){var n=t(\"../internals/require-object-coercible\");e.exports=function(t){return Object(n(t))}},{\"../internals/require-object-coercible\":295}],309:[function(t,e,r){var n=t(\"../internals/is-object\");e.exports=function(t,e){if(!n(t))return t;var r,i;if(e&&\"function\"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;if(\"function\"==typeof(r=t.valueOf)&&!n(i=r.call(t)))return i;if(!e&&\"function\"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;throw TypeError(\"Can't convert object to primitive value\")}},{\"../internals/is-object\":263}],310:[function(t,e,r){var n={};n[t(\"../internals/well-known-symbol\")(\"toStringTag\")]=\"z\",e.exports=\"[object z]\"===String(n)},{\"../internals/well-known-symbol\":314}],311:[function(t,e,r){var n=0,i=Math.random();e.exports=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++n+i).toString(36)}},{}],312:[function(t,e,r){var n=t(\"../internals/native-symbol\");e.exports=n&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},{\"../internals/native-symbol\":271}],313:[function(t,e,r){var n=t(\"../internals/well-known-symbol\");r.f=n},{\"../internals/well-known-symbol\":314}],314:[function(t,e,r){var n=t(\"../internals/global\"),i=t(\"../internals/shared\"),o=t(\"../internals/has\"),a=t(\"../internals/uid\"),s=t(\"../internals/native-symbol\"),u=t(\"../internals/use-symbol-as-uid\"),c=i(\"wks\"),f=n.Symbol,l=u?f:f&&f.withoutSetter||a;e.exports=function(t){return o(c,t)||(s&&o(f,t)?c[t]=f[t]:c[t]=l(\"Symbol.\"+t)),c[t]}},{\"../internals/global\":251,\"../internals/has\":252,\"../internals/native-symbol\":271,\"../internals/shared\":301,\"../internals/uid\":311,\"../internals/use-symbol-as-uid\":312}],315:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/array-iteration\").findIndex,o=t(\"../internals/add-to-unscopables\"),a=t(\"../internals/array-method-uses-to-length\"),s=!0,u=a(\"findIndex\");\"findIndex\"in[]&&Array(1).findIndex((function(){s=!1})),n({target:\"Array\",proto:!0,forced:s||!u},{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(\"findIndex\")},{\"../internals/add-to-unscopables\":221,\"../internals/array-iteration\":225,\"../internals/array-method-uses-to-length\":226,\"../internals/export\":246}],316:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/array-iteration\").find,o=t(\"../internals/add-to-unscopables\"),a=t(\"../internals/array-method-uses-to-length\"),s=!0,u=a(\"find\");\"find\"in[]&&Array(1).find((function(){s=!1})),n({target:\"Array\",proto:!0,forced:s||!u},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(\"find\")},{\"../internals/add-to-unscopables\":221,\"../internals/array-iteration\":225,\"../internals/array-method-uses-to-length\":226,\"../internals/export\":246}],317:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/array-includes\").includes,o=t(\"../internals/add-to-unscopables\");n({target:\"Array\",proto:!0,forced:!t(\"../internals/array-method-uses-to-length\")(\"indexOf\",{ACCESSORS:!0,1:0})},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(\"includes\")},{\"../internals/add-to-unscopables\":221,\"../internals/array-includes\":224,\"../internals/array-method-uses-to-length\":226,\"../internals/export\":246}],318:[function(t,e,r){\"use strict\";var n=t(\"../internals/to-indexed-object\"),i=t(\"../internals/add-to-unscopables\"),o=t(\"../internals/iterators\"),a=t(\"../internals/internal-state\"),s=t(\"../internals/define-iterator\"),u=a.set,c=a.getterFor(\"Array Iterator\");e.exports=s(Array,\"Array\",(function(t,e){u(this,{type:\"Array Iterator\",target:n(t),index:0,kind:e})}),(function(){var t=c(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==r?{value:n,done:!1}:\"values\"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},{\"../internals/add-to-unscopables\":221,\"../internals/define-iterator\":238,\"../internals/internal-state\":259,\"../internals/iterators\":268,\"../internals/to-indexed-object\":305}],319:[function(t,e,r){t(\"../internals/export\")({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}})},{\"../internals/export\":246}],320:[function(t,e,r){var n=t(\"../internals/export\"),i=t(\"../internals/object-assign\");n({target:\"Object\",stat:!0,forced:Object.assign!==i},{assign:i})},{\"../internals/export\":246,\"../internals/object-assign\":275}],321:[function(t,e,r){var n=t(\"../internals/export\"),i=t(\"../internals/to-object\"),o=t(\"../internals/object-keys\");n({target:\"Object\",stat:!0,forced:t(\"../internals/fails\")((function(){o(1)}))},{keys:function(t){return o(i(t))}})},{\"../internals/export\":246,\"../internals/fails\":247,\"../internals/object-keys\":285,\"../internals/to-object\":308}],322:[function(t,e,r){var n=t(\"../internals/export\"),i=t(\"../internals/object-to-array\").values;n({target:\"Object\",stat:!0},{values:function(t){return i(t)}})},{\"../internals/export\":246,\"../internals/object-to-array\":288}],323:[function(t,e,r){\"use strict\";var n,i,o,a,s=t(\"../internals/export\"),u=t(\"../internals/is-pure\"),c=t(\"../internals/global\"),f=t(\"../internals/get-built-in\"),l=t(\"../internals/native-promise-constructor\"),h=t(\"../internals/redefine\"),d=t(\"../internals/redefine-all\"),p=t(\"../internals/set-to-string-tag\"),m=t(\"../internals/set-species\"),y=t(\"../internals/is-object\"),b=t(\"../internals/a-function\"),v=t(\"../internals/an-instance\"),g=t(\"../internals/classof-raw\"),w=t(\"../internals/inspect-source\"),_=t(\"../internals/iterate\"),k=t(\"../internals/check-correctness-of-iteration\"),x=t(\"../internals/species-constructor\"),S=t(\"../internals/task\").set,O=t(\"../internals/microtask\"),j=t(\"../internals/promise-resolve\"),E=t(\"../internals/host-report-errors\"),R=t(\"../internals/new-promise-capability\"),T=t(\"../internals/perform\"),C=t(\"../internals/internal-state\"),P=t(\"../internals/is-forced\"),M=t(\"../internals/well-known-symbol\"),A=t(\"../internals/engine-v8-version\"),I=M(\"species\"),N=\"Promise\",D=C.get,B=C.set,F=C.getterFor(N),L=l,z=c.TypeError,U=c.document,H=c.process,V=f(\"fetch\"),q=R.f,W=q,$=\"process\"==g(H),X=!!(U&&U.createEvent&&c.dispatchEvent),K=P(N,(function(){if(!(w(L)!==String(L))){if(66===A)return!0;if(!$&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(u&&!L.prototype.finally)return!0;if(A>=51&&/native code/.test(L))return!1;var t=L.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[I]=e,!(t.then((function(){}))instanceof e)})),Z=K||!k((function(t){L.all(t).catch((function(){}))})),Y=function(t){var e;return!(!y(t)||\"function\"!=typeof(e=t.then))&&e},G=function(t,e,r){if(!e.notified){e.notified=!0;var n=e.reactions;O((function(){for(var i=e.value,o=1==e.state,a=0;n.length>a;){var s,u,c,f=n[a++],l=o?f.ok:f.fail,h=f.resolve,d=f.reject,p=f.domain;try{l?(o||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?s=i:(p&&p.enter(),s=l(i),p&&(p.exit(),c=!0)),s===f.promise?d(z(\"Promise-chain cycle\")):(u=Y(s))?u.call(s,h,d):h(s)):d(i)}catch(t){p&&!c&&p.exit(),d(t)}}e.reactions=[],e.notified=!1,r&&!e.rejection&&Q(t,e)}))}},J=function(t,e,r){var n,i;X?((n=U.createEvent(\"Event\")).promise=e,n.reason=r,n.initEvent(t,!1,!0),c.dispatchEvent(n)):n={promise:e,reason:r},(i=c[\"on\"+t])?i(n):\"unhandledrejection\"===t&&E(\"Unhandled promise rejection\",r)},Q=function(t,e){S.call(c,(function(){var r,n=e.value;if(tt(e)&&(r=T((function(){$?H.emit(\"unhandledRejection\",n,t):J(\"unhandledrejection\",t,n)})),e.rejection=$||tt(e)?2:1,r.error))throw r.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(c,(function(){$?H.emit(\"rejectionHandled\",t):J(\"rejectionhandled\",t,e.value)}))},rt=function(t,e,r,n){return function(i){t(e,r,i,n)}},nt=function(t,e,r,n){e.done||(e.done=!0,n&&(e=n),e.value=r,e.state=2,G(t,e,!0))},it=function(t,e,r,n){if(!e.done){e.done=!0,n&&(e=n);try{if(t===r)throw z(\"Promise can't be resolved itself\");var i=Y(r);i?O((function(){var n={done:!1};try{i.call(r,rt(it,t,n,e),rt(nt,t,n,e))}catch(r){nt(t,n,r,e)}})):(e.value=r,e.state=1,G(t,e,!1))}catch(r){nt(t,{done:!1},r,e)}}};K&&(L=function(t){v(this,L,N),b(t),n.call(this);var e=D(this);try{t(rt(it,this,e),rt(nt,this,e))}catch(t){nt(this,e,t)}},(n=function(t){B(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=d(L.prototype,{then:function(t,e){var r=F(this),n=q(x(this,L));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=$?H.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&G(this,r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new n,e=D(t);this.promise=t,this.resolve=rt(it,t,e),this.reject=rt(nt,t,e)},R.f=q=function(t){return t===L||t===o?new i(t):W(t)},u||\"function\"!=typeof l||(a=l.prototype.then,h(l.prototype,\"then\",(function(t,e){var r=this;return new L((function(t,e){a.call(r,t,e)})).then(t,e)}),{unsafe:!0}),\"function\"==typeof V&&s({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return j(L,V.apply(c,arguments))}}))),s({global:!0,wrap:!0,forced:K},{Promise:L}),p(L,N,!1,!0),m(N),o=f(N),s({target:N,stat:!0,forced:K},{reject:function(t){var e=q(this);return e.reject.call(void 0,t),e.promise}}),s({target:N,stat:!0,forced:u||K},{resolve:function(t){return j(u&&this===o?L:this,t)}}),s({target:N,stat:!0,forced:Z},{all:function(t){var e=this,r=q(e),n=r.resolve,i=r.reject,o=T((function(){var r=b(e.resolve),o=[],a=0,s=1;_(t,(function(t){var u=a++,c=!1;o.push(void 0),s++,r.call(e,t).then((function(t){c||(c=!0,o[u]=t,--s||n(o))}),i)})),--s||n(o)}));return o.error&&i(o.value),r.promise},race:function(t){var e=this,r=q(e),n=r.reject,i=T((function(){var i=b(e.resolve);_(t,(function(t){i.call(e,t).then(r.resolve,n)}))}));return i.error&&n(i.value),r.promise}})},{\"../internals/a-function\":219,\"../internals/an-instance\":222,\"../internals/check-correctness-of-iteration\":229,\"../internals/classof-raw\":230,\"../internals/engine-v8-version\":244,\"../internals/export\":246,\"../internals/get-built-in\":249,\"../internals/global\":251,\"../internals/host-report-errors\":254,\"../internals/inspect-source\":258,\"../internals/internal-state\":259,\"../internals/is-forced\":262,\"../internals/is-object\":263,\"../internals/is-pure\":264,\"../internals/iterate\":266,\"../internals/microtask\":269,\"../internals/native-promise-constructor\":270,\"../internals/new-promise-capability\":273,\"../internals/perform\":291,\"../internals/promise-resolve\":292,\"../internals/redefine\":294,\"../internals/redefine-all\":293,\"../internals/set-species\":297,\"../internals/set-to-string-tag\":298,\"../internals/species-constructor\":302,\"../internals/task\":303,\"../internals/well-known-symbol\":314}],324:[function(t,e,r){var n=t(\"../internals/export\"),i=t(\"../internals/to-absolute-index\"),o=String.fromCharCode,a=String.fromCodePoint;n({target:\"String\",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,a=0;n>a;){if(e=+arguments[a++],i(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");r.push(e<65536?o(e):o(55296+((e-=65536)>>10),e%1024+56320))}return r.join(\"\")}})},{\"../internals/export\":246,\"../internals/to-absolute-index\":304}],325:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/not-a-regexp\"),o=t(\"../internals/require-object-coercible\");n({target:\"String\",proto:!0,forced:!t(\"../internals/correct-is-regexp-logic\")(\"includes\")},{includes:function(t){return!!~String(o(this)).indexOf(i(t),arguments.length>1?arguments[1]:void 0)}})},{\"../internals/correct-is-regexp-logic\":233,\"../internals/export\":246,\"../internals/not-a-regexp\":274,\"../internals/require-object-coercible\":295}],326:[function(t,e,r){t(\"../internals/define-well-known-symbol\")(\"asyncIterator\")},{\"../internals/define-well-known-symbol\":239}],327:[function(t,e,r){\"use strict\";var n=t(\"../internals/export\"),i=t(\"../internals/global\"),o=t(\"../internals/get-built-in\"),a=t(\"../internals/is-pure\"),s=t(\"../internals/descriptors\"),u=t(\"../internals/native-symbol\"),c=t(\"../internals/use-symbol-as-uid\"),f=t(\"../internals/fails\"),l=t(\"../internals/has\"),h=t(\"../internals/is-array\"),d=t(\"../internals/is-object\"),p=t(\"../internals/an-object\"),m=t(\"../internals/to-object\"),y=t(\"../internals/to-indexed-object\"),b=t(\"../internals/to-primitive\"),v=t(\"../internals/create-property-descriptor\"),g=t(\"../internals/object-create\"),w=t(\"../internals/object-keys\"),_=t(\"../internals/object-get-own-property-names\"),k=t(\"../internals/object-get-own-property-names-external\"),x=t(\"../internals/object-get-own-property-symbols\"),S=t(\"../internals/object-get-own-property-descriptor\"),O=t(\"../internals/object-define-property\"),j=t(\"../internals/object-property-is-enumerable\"),E=t(\"../internals/create-non-enumerable-property\"),R=t(\"../internals/redefine\"),T=t(\"../internals/shared\"),C=t(\"../internals/shared-key\"),P=t(\"../internals/hidden-keys\"),M=t(\"../internals/uid\"),A=t(\"../internals/well-known-symbol\"),I=t(\"../internals/well-known-symbol-wrapped\"),N=t(\"../internals/define-well-known-symbol\"),D=t(\"../internals/set-to-string-tag\"),B=t(\"../internals/internal-state\"),F=t(\"../internals/array-iteration\").forEach,L=C(\"hidden\"),z=A(\"toPrimitive\"),U=B.set,H=B.getterFor(\"Symbol\"),V=Object.prototype,q=i.Symbol,W=o(\"JSON\",\"stringify\"),$=S.f,X=O.f,K=k.f,Z=j.f,Y=T(\"symbols\"),G=T(\"op-symbols\"),J=T(\"string-to-symbol-registry\"),Q=T(\"symbol-to-string-registry\"),tt=T(\"wks\"),et=i.QObject,rt=!et||!et.prototype||!et.prototype.findChild,nt=s&&f((function(){return 7!=g(X({},\"a\",{get:function(){return X(this,\"a\",{value:7}).a}})).a}))?function(t,e,r){var n=$(V,e);n&&delete V[e],X(t,e,r),n&&t!==V&&X(V,e,n)}:X,it=function(t,e){var r=Y[t]=g(q.prototype);return U(r,{type:\"Symbol\",tag:t,description:e}),s||(r.description=e),r},ot=c?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof q},at=function(t,e,r){t===V&&at(G,e,r),p(t);var n=b(e,!0);return p(r),l(Y,n)?(r.enumerable?(l(t,L)&&t[L][n]&&(t[L][n]=!1),r=g(r,{enumerable:v(0,!1)})):(l(t,L)||X(t,L,v(1,{})),t[L][n]=!0),nt(t,n,r)):X(t,n,r)},st=function(t,e){p(t);var r=y(e),n=w(r).concat(lt(r));return F(n,(function(e){s&&!ut.call(r,e)||at(t,e,r[e])})),t},ut=function(t){var e=b(t,!0),r=Z.call(this,e);return!(this===V&&l(Y,e)&&!l(G,e))&&(!(r||!l(this,e)||!l(Y,e)||l(this,L)&&this[L][e])||r)},ct=function(t,e){var r=y(t),n=b(e,!0);if(r!==V||!l(Y,n)||l(G,n)){var i=$(r,n);return!i||!l(Y,n)||l(r,L)&&r[L][n]||(i.enumerable=!0),i}},ft=function(t){var e=K(y(t)),r=[];return F(e,(function(t){l(Y,t)||l(P,t)||r.push(t)})),r},lt=function(t){var e=t===V,r=K(e?G:y(t)),n=[];return F(r,(function(t){!l(Y,t)||e&&!l(V,t)||n.push(Y[t])})),n};(u||(R((q=function(){if(this instanceof q)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=M(t),r=function(t){this===V&&r.call(G,t),l(this,L)&&l(this[L],e)&&(this[L][e]=!1),nt(this,e,v(1,t))};return s&&rt&&nt(V,e,{configurable:!0,set:r}),it(e,t)}).prototype,\"toString\",(function(){return H(this).tag})),R(q,\"withoutSetter\",(function(t){return it(M(t),t)})),j.f=ut,O.f=at,S.f=ct,_.f=k.f=ft,x.f=lt,I.f=function(t){return it(A(t),t)},s&&(X(q.prototype,\"description\",{configurable:!0,get:function(){return H(this).description}}),a||R(V,\"propertyIsEnumerable\",ut,{unsafe:!0}))),n({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:q}),F(w(tt),(function(t){N(t)})),n({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=String(t);if(l(J,e))return J[e];var r=q(e);return J[e]=r,Q[r]=e,r},keyFor:function(t){if(!ot(t))throw TypeError(t+\" is not a symbol\");if(l(Q,t))return Q[t]},useSetter:function(){rt=!0},useSimple:function(){rt=!1}}),n({target:\"Object\",stat:!0,forced:!u,sham:!s},{create:function(t,e){return void 0===e?g(t):st(g(t),e)},defineProperty:at,defineProperties:st,getOwnPropertyDescriptor:ct}),n({target:\"Object\",stat:!0,forced:!u},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),n({target:\"Object\",stat:!0,forced:f((function(){x.f(1)}))},{getOwnPropertySymbols:function(t){return x.f(m(t))}}),W)&&n({target:\"JSON\",stat:!0,forced:!u||f((function(){var t=q();return\"[null]\"!=W([t])||\"{}\"!=W({a:t})||\"{}\"!=W(Object(t))}))},{stringify:function(t,e,r){for(var n,i=[t],o=1;arguments.length>o;)i.push(arguments[o++]);if(n=e,(d(e)||void 0!==t)&&!ot(t))return h(e)||(e=function(t,e){if(\"function\"==typeof n&&(e=n.call(this,t,e)),!ot(e))return e}),i[1]=e,W.apply(null,i)}});q.prototype[z]||E(q.prototype,z,q.prototype.valueOf),D(q,\"Symbol\"),P[L]=!0},{\"../internals/an-object\":223,\"../internals/array-iteration\":225,\"../internals/create-non-enumerable-property\":236,\"../internals/create-property-descriptor\":237,\"../internals/define-well-known-symbol\":239,\"../internals/descriptors\":240,\"../internals/export\":246,\"../internals/fails\":247,\"../internals/get-built-in\":249,\"../internals/global\":251,\"../internals/has\":252,\"../internals/hidden-keys\":253,\"../internals/internal-state\":259,\"../internals/is-array\":261,\"../internals/is-object\":263,\"../internals/is-pure\":264,\"../internals/native-symbol\":271,\"../internals/object-create\":276,\"../internals/object-define-property\":278,\"../internals/object-get-own-property-descriptor\":279,\"../internals/object-get-own-property-names\":281,\"../internals/object-get-own-property-names-external\":280,\"../internals/object-get-own-property-symbols\":282,\"../internals/object-keys\":285,\"../internals/object-property-is-enumerable\":286,\"../internals/redefine\":294,\"../internals/set-to-string-tag\":298,\"../internals/shared\":301,\"../internals/shared-key\":299,\"../internals/to-indexed-object\":305,\"../internals/to-object\":308,\"../internals/to-primitive\":309,\"../internals/uid\":311,\"../internals/use-symbol-as-uid\":312,\"../internals/well-known-symbol\":314,\"../internals/well-known-symbol-wrapped\":313}],328:[function(t,e,r){(function(t){\"use strict\";function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(t){return Object.prototype.toString.call(t)}r.isArray=function(t){return Array.isArray?Array.isArray(t):\"[object Array]\"===n(t)},r.isBoolean=function(t){return\"boolean\"==typeof t},r.isNull=function(t){return null===t},r.isNullOrUndefined=function(t){return null==t},r.isNumber=function(t){return\"number\"==typeof t},r.isString=function(t){return\"string\"==typeof t},r.isSymbol=function(t){return\"symbol\"===e(t)},r.isUndefined=function(t){return void 0===t},r.isRegExp=function(t){return\"[object RegExp]\"===n(t)},r.isObject=function(t){return\"object\"===e(t)&&null!==t},r.isDate=function(t){return\"[object Date]\"===n(t)},r.isError=function(t){return\"[object Error]\"===n(t)||t instanceof Error},r.isFunction=function(t){return\"function\"==typeof t},r.isPrimitive=function(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"===e(t)||void 0===t},r.isBuffer=t.isBuffer}).call(this,{isBuffer:t(\"../../is-buffer/index.js\")})},{\"../../is-buffer/index.js\":388}],329:[function(t,e,r){(function(r){\"use strict\";var n=t(\"elliptic\"),i=t(\"bn.js\");e.exports=function(t){return new a(t)};var o={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};function a(t){this.curveType=o[t],this.curveType||(this.curveType={name:t}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function s(t,e,n){Array.isArray(t)||(t=t.toArray());var i=new r(t);if(n&&i.length<n){var o=new r(n-i.length);o.fill(0),i=r.concat([o,i])}return e?i.toString(e):i}o.p224=o.secp224r1,o.p256=o.secp256r1=o.prime256v1,o.p192=o.secp192r1=o.prime192v1,o.p384=o.secp384r1,o.p521=o.secp521r1,a.prototype.generateKeys=function(t,e){return this.keys=this.curve.genKeyPair(),this.getPublicKey(t,e)},a.prototype.computeSecret=function(t,e,n){return e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e)),s(this.curve.keyFromPublic(t).getPublic().mul(this.keys.getPrivate()).getX(),n,this.curveType.byteLength)},a.prototype.getPublicKey=function(t,e){var r=this.keys.getPublic(\"compressed\"===e,!0);return\"hybrid\"===e&&(r[r.length-1]%2?r[0]=7:r[0]=6),s(r,t)},a.prototype.getPrivateKey=function(t){return s(this.keys.getPrivate(),t)},a.prototype.setPublicKey=function(t,e){return e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e)),this.keys._importPublic(t),this},a.prototype.setPrivateKey=function(t,e){e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e));var n=new i(t);return n=n.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(n),this}}).call(this,t(\"buffer\").Buffer)},{\"bn.js\":330,buffer:216,elliptic:350}],330:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],331:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"md5.js\"),o=t(\"ripemd160\"),a=t(\"sha.js\"),s=t(\"cipher-base\");function u(t){s.call(this,\"digest\"),this._hash=t}n(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(t){return\"md5\"===(t=t.toLowerCase())?new i:\"rmd160\"===t||\"ripemd160\"===t?new o:new u(a(t))}},{\"cipher-base\":218,inherits:387,\"md5.js\":434,ripemd160:493,\"sha.js\":499}],332:[function(t,e,r){\"use strict\";var n=t(\"md5.js\");e.exports=function(t){return(new n).update(t).digest()}},{\"md5.js\":434}],333:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./legacy\"),o=t(\"cipher-base\"),a=t(\"safe-buffer\").Buffer,s=t(\"create-hash/md5\"),u=t(\"ripemd160\"),c=t(\"sha.js\"),f=a.alloc(128);function l(t,e){o.call(this,\"digest\"),\"string\"==typeof e&&(e=a.from(e));var r=\"sha512\"===t||\"sha384\"===t?128:64;(this._alg=t,this._key=e,e.length>r)?e=(\"rmd160\"===t?new u:c(t)).update(e).digest():e.length<r&&(e=a.concat([e,f],r));for(var n=this._ipad=a.allocUnsafe(r),i=this._opad=a.allocUnsafe(r),s=0;s<r;s++)n[s]=54^e[s],i[s]=92^e[s];this._hash=\"rmd160\"===t?new u:c(t),this._hash.update(n)}n(l,o),l.prototype._update=function(t){this._hash.update(t)},l.prototype._final=function(){var t=this._hash.digest();return(\"rmd160\"===this._alg?new u:c(this._alg)).update(this._opad).update(t).digest()},e.exports=function(t,e){return\"rmd160\"===(t=t.toLowerCase())||\"ripemd160\"===t?new l(\"rmd160\",e):\"md5\"===t?new i(s,e):new l(t,e)}},{\"./legacy\":334,\"cipher-base\":218,\"create-hash/md5\":332,inherits:387,ripemd160:493,\"safe-buffer\":494,\"sha.js\":499}],334:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"safe-buffer\").Buffer,o=t(\"cipher-base\"),a=i.alloc(128);function s(t,e){o.call(this,\"digest\"),\"string\"==typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>64?e=t(e):e.length<64&&(e=i.concat([e,a],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),s=0;s<64;s++)r[s]=54^e[s],n[s]=92^e[s];this._hash=[r]}n(s,o),s.prototype._update=function(t){this._hash.push(t)},s.prototype._final=function(){var t=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,t]))},e.exports=s},{\"cipher-base\":218,inherits:387,\"safe-buffer\":494}],335:[function(t,e,r){\"use strict\";r.randomBytes=r.rng=r.pseudoRandomBytes=r.prng=t(\"randombytes\"),r.createHash=r.Hash=t(\"create-hash\"),r.createHmac=r.Hmac=t(\"create-hmac\");var n=t(\"browserify-sign/algos\"),i=Object.keys(n),o=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(i);r.getHashes=function(){return o};var a=t(\"pbkdf2\");r.pbkdf2=a.pbkdf2,r.pbkdf2Sync=a.pbkdf2Sync;var s=t(\"browserify-cipher\");r.Cipher=s.Cipher,r.createCipher=s.createCipher,r.Cipheriv=s.Cipheriv,r.createCipheriv=s.createCipheriv,r.Decipher=s.Decipher,r.createDecipher=s.createDecipher,r.Decipheriv=s.Decipheriv,r.createDecipheriv=s.createDecipheriv,r.getCiphers=s.getCiphers,r.listCiphers=s.listCiphers;var u=t(\"diffie-hellman\");r.DiffieHellmanGroup=u.DiffieHellmanGroup,r.createDiffieHellmanGroup=u.createDiffieHellmanGroup,r.getDiffieHellman=u.getDiffieHellman,r.createDiffieHellman=u.createDiffieHellman,r.DiffieHellman=u.DiffieHellman;var c=t(\"browserify-sign\");r.createSign=c.createSign,r.Sign=c.Sign,r.createVerify=c.createVerify,r.Verify=c.Verify,r.createECDH=t(\"create-ecdh\");var f=t(\"public-encrypt\");r.publicEncrypt=f.publicEncrypt,r.privateEncrypt=f.privateEncrypt,r.publicDecrypt=f.publicDecrypt,r.privateDecrypt=f.privateDecrypt;var l=t(\"randomfill\");r.randomFill=l.randomFill,r.randomFillSync=l.randomFillSync,r.createCredentials=function(){throw new Error([\"sorry, createCredentials is not implemented yet\",\"we accept pull requests\",\"https://github.com/crypto-browserify/crypto-browserify\"].join(\"\\n\"))},r.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{\"browserify-cipher\":203,\"browserify-sign\":211,\"browserify-sign/algos\":208,\"create-ecdh\":329,\"create-hash\":331,\"create-hmac\":333,\"diffie-hellman\":345,pbkdf2:460,\"public-encrypt\":468,randombytes:475,randomfill:476}],336:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(t,i){\"object\"==(void 0===r?\"undefined\":n(r))&&void 0!==e?e.exports=i():(void 0).dayjs=i()}(0,(function(){var t=\"millisecond\",e=\"second\",r=\"minute\",i=\"hour\",o=\"day\",a=\"week\",s=\"month\",u=\"quarter\",c=\"year\",f=\"date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d+)?$/,h=/\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(t,e,r){var n=String(t);return!n||n.length>=e?t:\"\"+Array(e+1-n.length).join(r)+t},p={s:d,z:function(t){var e=-t.utcOffset(),r=Math.abs(e),n=Math.floor(r/60),i=r%60;return(e<=0?\"+\":\"-\")+d(n,2,\"0\")+\":\"+d(i,2,\"0\")},m:function t(e,r){if(e.date()<r.date())return-t(r,e);var n=12*(r.year()-e.year())+(r.month()-e.month()),i=e.add(n,s),o=r-i<0,a=e.add(n+(o?-1:1),s);return+(-(n+(r-i)/(o?i-a:a-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(n){return{M:s,y:c,w:a,d:o,D:f,h:i,m:r,s:e,ms:t,Q:u}[n]||String(n||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},m={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},y=\"en\",b={};b[y]=m;var v=function(t){return t instanceof k},g=function(t,e,r){var n;if(!t)return y;if(\"string\"==typeof t)b[t]&&(n=t),e&&(b[t]=e,n=t);else{var i=t.name;b[i]=t,n=i}return!r&&n&&(y=n),n||!r&&y},w=function(t,e){if(v(t))return t.clone();var r=\"object\"==n(e)?e:{};return r.date=t,r.args=arguments,new k(r)},_=p;_.l=g,_.i=v,_.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,$offset:e.$offset})};var k=function(){function n(t){this.$L=this.$L||g(t.locale,null,!0),this.parse(t)}var d=n.prototype;return d.parse=function(t){this.$d=function(t){var e=t.date,r=t.utc;if(null===e)return new Date(NaN);if(_.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var n=e.match(l);if(n){var i=n[2]-1||0,o=(n[7]||\"0\").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)}}return new Date(e)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return _},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,e){var r=w(t);return this.startOf(e)<=r&&r<=this.endOf(e)},d.isAfter=function(t,e){return w(t)<this.startOf(e)},d.isBefore=function(t,e){return this.endOf(e)<w(t)},d.$g=function(t,e,r){return _.u(t)?this[e]:this.set(r,t)},d.unix=function(){return Math.floor(this.valueOf()/1e3)},d.valueOf=function(){return this.$d.getTime()},d.startOf=function(t,n){var u=this,l=!!_.u(n)||n,h=_.p(t),d=function(t,e){var r=_.w(u.$u?Date.UTC(u.$y,e,t):new Date(u.$y,e,t),u);return l?r:r.endOf(o)},p=function(t,e){return _.w(u.toDate()[t].apply(u.toDate(\"s\"),(l?[0,0,0,0]:[23,59,59,999]).slice(e)),u)},m=this.$W,y=this.$M,b=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return l?d(1,0):d(31,11);case s:return l?d(1,y):d(0,y+1);case a:var g=this.$locale().weekStart||0,w=(m<g?m+7:m)-g;return d(l?b-w:b+(6-w),y);case o:case f:return p(v+\"Hours\",0);case i:return p(v+\"Minutes\",1);case r:return p(v+\"Seconds\",2);case e:return p(v+\"Milliseconds\",3);default:return this.clone()}},d.endOf=function(t){return this.startOf(t,!1)},d.$set=function(n,a){var u,l=_.p(n),h=\"set\"+(this.$u?\"UTC\":\"\"),d=(u={},u[o]=h+\"Date\",u[f]=h+\"Date\",u[s]=h+\"Month\",u[c]=h+\"FullYear\",u[i]=h+\"Hours\",u[r]=h+\"Minutes\",u[e]=h+\"Seconds\",u[t]=h+\"Milliseconds\",u)[l],p=l===o?this.$D+(a-this.$W):a;if(l===s||l===c){var m=this.clone().set(f,1);m.$d[d](p),m.init(),this.$d=m.set(f,Math.min(this.$D,m.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},d.set=function(t,e){return this.clone().$set(t,e)},d.get=function(t){return this[_.p(t)]()},d.add=function(t,n){var u,f=this;t=Number(t);var l=_.p(n),h=function(e){var r=w(f);return _.w(r.date(r.date()+Math.round(e*t)),f)};if(l===s)return this.set(s,this.$M+t);if(l===c)return this.set(c,this.$y+t);if(l===o)return h(1);if(l===a)return h(7);var d=(u={},u[r]=6e4,u[i]=36e5,u[e]=1e3,u)[l]||1,p=this.$d.getTime()+t*d;return _.w(p,this)},d.subtract=function(t,e){return this.add(-1*t,e)},d.format=function(t){var e=this;if(!this.isValid())return\"Invalid Date\";var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",n=_.z(this),i=this.$locale(),o=this.$H,a=this.$m,s=this.$M,u=i.weekdays,c=i.months,f=function(t,n,i,o){return t&&(t[n]||t(e,r))||i[n].substr(0,o)},l=function(t){return _.s(o%12||12,t,\"0\")},d=i.meridiem||function(t,e,r){var n=t<12?\"AM\":\"PM\";return r?n.toLowerCase():n},p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:_.s(s+1,2,\"0\"),MMM:f(i.monthsShort,s,c,3),MMMM:f(c,s),D:this.$D,DD:_.s(this.$D,2,\"0\"),d:String(this.$W),dd:f(i.weekdaysMin,this.$W,u,2),ddd:f(i.weekdaysShort,this.$W,u,3),dddd:u[this.$W],H:String(o),HH:_.s(o,2,\"0\"),h:l(1),hh:l(2),a:d(o,a,!0),A:d(o,a,!1),m:String(a),mm:_.s(a,2,\"0\"),s:String(this.$s),ss:_.s(this.$s,2,\"0\"),SSS:_.s(this.$ms,3,\"0\"),Z:n};return r.replace(h,(function(t,e){return e||p[t]||n.replace(\":\",\"\")}))},d.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},d.diff=function(t,n,f){var l,h=_.p(n),d=w(t),p=6e4*(d.utcOffset()-this.utcOffset()),m=this-d,y=_.m(this,d);return y=(l={},l[c]=y/12,l[s]=y,l[u]=y/3,l[a]=(m-p)/6048e5,l[o]=(m-p)/864e5,l[i]=m/36e5,l[r]=m/6e4,l[e]=m/1e3,l)[h]||m,f?y:_.a(y)},d.daysInMonth=function(){return this.endOf(s).$D},d.$locale=function(){return b[this.$L]},d.locale=function(t,e){if(!t)return this.$L;var r=this.clone(),n=g(t,e,!0);return n&&(r.$L=n),r},d.clone=function(){return _.w(this.$d,this)},d.toDate=function(){return new Date(this.valueOf())},d.toJSON=function(){return this.isValid()?this.toISOString():null},d.toISOString=function(){return this.$d.toISOString()},d.toString=function(){return this.$d.toUTCString()},n}(),x=k.prototype;return w.prototype=x,[[\"$ms\",t],[\"$s\",e],[\"$m\",r],[\"$H\",i],[\"$W\",o],[\"$M\",s],[\"$y\",c],[\"$D\",f]].forEach((function(t){x[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t(e,k,w),w},w.locale=g,w.isDayjs=v,w.unix=function(t){return w(1e3*t)},w.en=b[y],w.Ls=b,w}))},{}],337:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(t,i){\"object\"==(void 0===r?\"undefined\":n(r))&&void 0!==e?e.exports=i():(void 0).dayjs_plugin_customParseFormat=i()}(0,(function(){var t,e=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\\d\\d/,n=/\\d\\d?/,i=/\\d*[^\\s\\d-:/()]+/,o=function(t){return function(e){this[t]=+e}},a=[/[+-]\\d\\d:?\\d\\d/,function(t){var e,r;(this.zone||(this.zone={})).offset=0==(r=60*(e=t.match(/([+-]|\\d\\d)/g))[1]+ +e[2])?0:\"+\"===e[0]?-r:r}],s=function(e){var r=t[e];return r&&(r.indexOf?r:r.s.concat(r.f))},u={A:[/[AP]M/,function(t){this.afternoon=\"PM\"===t}],a:[/[ap]m/,function(t){this.afternoon=\"pm\"===t}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[r,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[n,o(\"seconds\")],ss:[n,o(\"seconds\")],m:[n,o(\"minutes\")],mm:[n,o(\"minutes\")],H:[n,o(\"hours\")],h:[n,o(\"hours\")],HH:[n,o(\"hours\")],hh:[n,o(\"hours\")],D:[n,o(\"day\")],DD:[r,o(\"day\")],Do:[i,function(e){var r=t.ordinal,n=e.match(/\\d+/);if(this.day=n[0],r)for(var i=1;i<=31;i+=1)r(i).replace(/\\[|\\]/g,\"\")===e&&(this.day=i)}],M:[n,o(\"month\")],MM:[r,o(\"month\")],MMM:[i,function(t){var e=s(\"months\"),r=(s(\"monthsShort\")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(r<1)throw new Error;this.month=r%12||r}],MMMM:[i,function(t){var e=s(\"months\").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\\d+/,o(\"year\")],YY:[r,function(t){t=+t,this.year=t+(t>68?1900:2e3)}],YYYY:[/\\d{4}/,o(\"year\")],Z:a,ZZ:a},c=function(t,r,n){try{var i=function(t){for(var r=t.match(e),n=r.length,i=0;i<n;i+=1){var o=r[i],a=u[o],s=a&&a[0],c=a&&a[1];r[i]=c?{regex:s,parser:c}:o.replace(/^\\[|\\]$/g,\"\")}return function(t){for(var e={},i=0,o=0;i<n;i+=1){var a=r[i];if(\"string\"==typeof a)o+=a.length;else{var s=a.regex,u=a.parser,c=t.substr(o),f=s.exec(c)[0];u.call(e,f),t=t.replace(f,\"\")}}return function(t){var e=t.afternoon;if(void 0!==e){var r=t.hours;e?r<12&&(t.hours+=12):12===r&&(t.hours=0),delete t.afternoon}}(e),e}}(r)(t),o=i.year,a=i.month,s=i.day,c=i.hours,f=i.minutes,l=i.seconds,h=i.milliseconds,d=i.zone,p=new Date,m=s||(o||a?1:p.getDate()),y=o||p.getFullYear(),b=0;o&&!a||(b=a>0?a-1:p.getMonth());var v=c||0,g=f||0,w=l||0,_=h||0;return d?new Date(Date.UTC(y,b,m,v,g,w,_+60*d.offset*1e3)):n?new Date(Date.UTC(y,b,m,v,g,w,_)):new Date(y,b,m,v,g,w,_)}catch(t){return new Date(\"\")}};return function(e,r,n){var i=r.prototype,o=i.parse;i.parse=function(e){var r=e.date,i=e.utc,a=e.args;this.$u=i;var s=a[1];if(\"string\"==typeof s){var u=!0===a[2],f=!0===a[3],l=u||f,h=a[2];f&&(h=a[2]),u||(t=h?n.Ls[h]:this.$locale()),this.$d=c(r,s,i),this.init(),h&&!0!==h&&(this.$L=this.locale(h).$L),l&&r!==this.format(s)&&(this.$d=new Date(\"\"))}else if(s instanceof Array)for(var d=s.length,p=1;p<=d;p+=1){a[1]=s[p-1];var m=n.apply(this,a);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===d&&(this.$d=new Date(\"\"))}else o.call(this,e)}}}))},{}],338:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i;i=function(){return function(t,e,r){var n=(new Date).getTimezoneOffset(),i=e.prototype;r.utc=function(t){return new e({date:t,utc:!0,args:arguments})},i.utc=function(){return r(this.toDate(),{locale:this.$L,utc:!0})},i.local=function(){return r(this.toDate(),{locale:this.$L,utc:!1})};var o=i.parse;i.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var a=i.init;i.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else a.call(this)};var s=i.utcOffset;i.utcOffset=function(t,e){var r=this.$utils().u;if(r(t))return this.$u?0:r(this.$offset)?s.call(this):this.$offset;var i=Math.abs(t)<=16?60*t:t,o=this;return e?(o.$offset=i,o.$u=0===t,o):(0!==t?(o=this.local().add(i+n,\"minute\")).$offset=i:o=this.utc(),o)};var u=i.format;i.format=function(t){var e=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return u.call(this,e)},i.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+n;return this.$d.valueOf()-6e4*t},i.isUTC=function(){return!!this.$u},i.toISOString=function(){return this.toDate().toISOString()},i.toString=function(){return this.toDate().toUTCString()};var c=i.toDate;i.toDate=function(t){return\"s\"===t&&this.$offset?r(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():c.call(this)};var f=i.diff;i.diff=function(t,e,n){var i=this.local(),o=r(t).local();return f.call(i,o,e,n)}}},\"object\"==(void 0===r?\"undefined\":n(r))&&void 0!==e?e.exports=i():(void 0).dayjs_plugin_utc=i()},{}],339:[function(t,e,r){\"use strict\";r.utils=t(\"./des/utils\"),r.Cipher=t(\"./des/cipher\"),r.DES=t(\"./des/des\"),r.CBC=t(\"./des/cbc\"),r.EDE=t(\"./des/ede\")},{\"./des/cbc\":340,\"./des/cipher\":341,\"./des/des\":342,\"./des/ede\":343,\"./des/utils\":344}],340:[function(t,e,r){\"use strict\";var n=t(\"minimalistic-assert\"),i=t(\"inherits\"),o={};function a(t){n.equal(t.length,8,\"Invalid IV length\"),this.iv=new Array(8);for(var e=0;e<this.iv.length;e++)this.iv[e]=t[e]}r.instantiate=function(t){function e(e){t.call(this,e),this._cbcInit()}i(e,t);for(var r=Object.keys(o),n=0;n<r.length;n++){var a=r[n];e.prototype[a]=o[a]}return e.create=function(t){return new e(t)},e},o._cbcInit=function(){var t=new a(this.options.iv);this._cbcState=t},o._update=function(t,e,r,n){var i=this._cbcState,o=this.constructor.super_.prototype,a=i.iv;if(\"encrypt\"===this.type){for(var s=0;s<this.blockSize;s++)a[s]^=t[e+s];o._update.call(this,a,0,r,n);for(s=0;s<this.blockSize;s++)a[s]=r[n+s]}else{o._update.call(this,t,e,r,n);for(s=0;s<this.blockSize;s++)r[n+s]^=a[s];for(s=0;s<this.blockSize;s++)a[s]=t[e+s]}}},{inherits:387,\"minimalistic-assert\":437}],341:[function(t,e,r){\"use strict\";var n=t(\"minimalistic-assert\");function i(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(t){return 0===t.length?[]:\"decrypt\"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},i.prototype._buffer=function(t,e){for(var r=Math.min(this.buffer.length-this.bufferOff,t.length-e),n=0;n<r;n++)this.buffer[this.bufferOff+n]=t[e+n];return this.bufferOff+=r,r},i.prototype._flushBuffer=function(t,e){return this._update(this.buffer,0,t,e),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(t){var e=0,r=0,n=(this.bufferOff+t.length)/this.blockSize|0,i=new Array(n*this.blockSize);0!==this.bufferOff&&(e+=this._buffer(t,e),this.bufferOff===this.buffer.length&&(r+=this._flushBuffer(i,r)));for(var o=t.length-(t.length-e)%this.blockSize;e<o;e+=this.blockSize)this._update(t,e,i,r),r+=this.blockSize;for(;e<t.length;e++,this.bufferOff++)this.buffer[this.bufferOff]=t[e];return i},i.prototype._updateDecrypt=function(t){for(var e=0,r=0,n=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,i=new Array(n*this.blockSize);n>0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r=\"encrypt\"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},i.prototype._pad=function(t,e){if(0===e)return!1;for(;e<t.length;)t[e++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t},i.prototype._unpad=function(t){return t},i.prototype._finalDecrypt=function(){n.equal(this.bufferOff,this.blockSize,\"Not enough data to decrypt\");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)}},{\"minimalistic-assert\":437}],342:[function(t,e,r){\"use strict\";var n=t(\"minimalistic-assert\"),i=t(\"inherits\"),o=t(\"./utils\"),a=t(\"./cipher\");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}i(u,a),e.exports=u,u.create=function(t){return new u(t)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,\"Invalid key length\");var r=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(r,i,t.tmp,0),r=t.tmp[0],i=t.tmp[1];for(var a=0;a<t.keys.length;a+=2){var s=c[a>>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,t.keys,a)}},u.prototype._update=function(t,e,r,n){var i=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],\"encrypt\"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n<t.length;n++)t[n]=r;return!0},u.prototype._unpad=function(t){for(var e=t[t.length-1],r=t.length-e;r<t.length;r++)n.equal(t[r],e);return t.slice(0,t.length-e)},u.prototype._encrypt=function(t,e,r,n,i){for(var a=e,s=r,u=0;u<t.keys.length;u+=2){var c=t.keys[u],f=t.keys[u+1];o.expand(s,t.tmp,0),c^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(c,f),h=s;s=(a^o.permute(l))>>>0,a=h}o.rip(s,a,n,i)},u.prototype._decrypt=function(t,e,r,n,i){for(var a=r,s=e,u=t.keys.length-2;u>=0;u-=2){var c=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),c^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(c,f),h=a;a=(s^o.permute(l))>>>0,s=h}o.rip(a,s,n,i)}},{\"./cipher\":341,\"./utils\":344,inherits:387,\"minimalistic-assert\":437}],343:[function(t,e,r){\"use strict\";var n=t(\"minimalistic-assert\"),i=t(\"inherits\"),o=t(\"./cipher\"),a=t(\"./des\");function s(t,e){n.equal(e.length,24,\"Invalid key length\");var r=e.slice(0,8),i=e.slice(8,16),o=e.slice(16,24);this.ciphers=\"encrypt\"===t?[a.create({type:\"encrypt\",key:r}),a.create({type:\"decrypt\",key:i}),a.create({type:\"encrypt\",key:o})]:[a.create({type:\"decrypt\",key:o}),a.create({type:\"encrypt\",key:i}),a.create({type:\"decrypt\",key:r})]}function u(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}i(u,o),e.exports=u,u.create=function(t){return new u(t)},u.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},{\"./cipher\":341,\"./des\":342,inherits:387,\"minimalistic-assert\":437}],344:[function(t,e,r){\"use strict\";r.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},r.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},r.ip=function(t,e,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},r.rip=function(t,e,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+a&1,i<<=1,i|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.pc1=function(t,e,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},r.r28shl=function(t,e){return t<<e&268435455|t>>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];r.pc2=function(t,e,r,i){for(var o=0,a=0,s=n.length>>>1,u=0;u<s;u++)o<<=1,o|=t>>>n[u]&1;for(u=s;u<n.length;u++)a<<=1,a|=e>>>n[u]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},r.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];r.substitute=function(t,e){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(t>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(e>>>18-6*n&63)]}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];r.permute=function(t){for(var e=0,r=0;r<o.length;r++)e<<=1,e|=t>>>o[r]&1;return e>>>0},r.padSplit=function(t,e,r){for(var n=t.toString(2);n.length<e;)n=\"0\"+n;for(var i=[],o=0;o<e;o+=r)i.push(n.slice(o,o+r));return i.join(\" \")}},{}],345:[function(t,e,r){(function(e){\"use strict\";var n=t(\"./lib/generatePrime\"),i=t(\"./lib/primes.json\"),o=t(\"./lib/dh\");var a={binary:!0,hex:!0,base64:!0};r.DiffieHellmanGroup=r.createDiffieHellmanGroup=r.getDiffieHellman=function(t){var r=new e(i[t].prime,\"hex\"),n=new e(i[t].gen,\"hex\");return new o(r,n)},r.createDiffieHellman=r.DiffieHellman=function t(r,i,s,u){return e.isBuffer(i)||void 0===a[i]?t(r,\"binary\",i,s):(i=i||\"binary\",u=u||\"binary\",s=s||new e([2]),e.isBuffer(s)||(s=new e(s,u)),\"number\"==typeof r?new o(n(r,s),s,!0):(e.isBuffer(r)||(r=new e(r,i)),new o(r,s,!0)))}}).call(this,t(\"buffer\").Buffer)},{\"./lib/dh\":346,\"./lib/generatePrime\":347,\"./lib/primes.json\":348,buffer:216}],346:[function(t,e,r){(function(r){\"use strict\";var n=t(\"bn.js\"),i=new(t(\"miller-rabin\")),o=new n(24),a=new n(11),s=new n(10),u=new n(3),c=new n(7),f=t(\"./generatePrime\"),l=t(\"randombytes\");function h(t,e){return e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e)),this._pub=new n(t),this}function d(t,e){return e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e)),this._priv=new n(t),this}e.exports=m;var p={};function m(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=h,this.setPrivateKey=d):this._primeCode=8}function y(t,e){var n=new r(t.toArray());return e?n.toString(e):n}Object.defineProperty(m.prototype,\"verifyError\",{enumerable:!0,get:function(){return\"number\"!=typeof this._primeCode&&(this._primeCode=function(t,e){var r=e.toString(\"hex\"),n=[r,t.toString(16)].join(\"_\");if(n in p)return p[n];var l,h=0;if(t.isEven()||!f.simpleSieve||!f.fermatTest(t)||!i.test(t))return h+=1,h+=\"02\"===r||\"05\"===r?8:4,p[n]=h,h;switch(i.test(t.shrn(1))||(h+=2),r){case\"02\":t.mod(o).cmp(a)&&(h+=8);break;case\"05\":(l=t.mod(s)).cmp(u)&&l.cmp(c)&&(h+=8);break;default:h+=4}return p[n]=h,h}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new n(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(t){var e=(t=(t=new n(t)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new r(e.toArray()),o=this.getPrime();if(i.length<o.length){var a=new r(o.length-i.length);a.fill(0),i=r.concat([a,i])}return i},m.prototype.getPublicKey=function(t){return y(this._pub,t)},m.prototype.getPrivateKey=function(t){return y(this._priv,t)},m.prototype.getPrime=function(t){return y(this.__prime,t)},m.prototype.getGenerator=function(t){return y(this._gen,t)},m.prototype.setGenerator=function(t,e){return e=e||\"utf8\",r.isBuffer(t)||(t=new r(t,e)),this.__gen=t,this._gen=new n(t),this}}).call(this,t(\"buffer\").Buffer)},{\"./generatePrime\":347,\"bn.js\":349,buffer:216,\"miller-rabin\":435,randombytes:475}],347:[function(t,e,r){\"use strict\";var n=t(\"randombytes\");e.exports=v,v.simpleSieve=y,v.fermatTest=b;var i=t(\"bn.js\"),o=new i(24),a=new(t(\"miller-rabin\")),s=new i(1),u=new i(2),c=new i(5),f=(new i(16),new i(8),new i(10)),l=new i(3),h=(new i(7),new i(11)),d=new i(4),p=(new i(12),null);function m(){if(null!==p)return p;var t=[];t[0]=2;for(var e=1,r=3;r<1048576;r+=2){for(var n=Math.ceil(Math.sqrt(r)),i=0;i<e&&t[i]<=n&&r%t[i]!=0;i++);e!==i&&t[i]<=n||(t[e++]=r)}return p=t,t}function y(t){for(var e=m(),r=0;r<e.length;r++)if(0===t.modn(e[r]))return 0===t.cmpn(e[r]);return!0}function b(t){var e=i.mont(t);return 0===u.toRed(e).redPow(t.subn(1)).fromRed().cmpn(1)}function v(t,e){if(t<16)return new i(2===e||5===e?[140,123]:[140,39]);var r,p;for(e=new i(e);;){for(r=new i(n(Math.ceil(t/8)));r.bitLength()>t;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),e.cmp(u)){if(!e.cmp(c))for(;r.mod(f).cmp(l);)r.iadd(d)}else for(;r.mod(o).cmp(h);)r.iadd(d);if(y(p=r.shrn(1))&&y(r)&&b(p)&&b(r)&&a.test(p)&&a.test(r))return r}}},{\"bn.js\":349,\"miller-rabin\":435,randombytes:475}],348:[function(t,e,r){e.exports={modp1:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},modp2:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},modp5:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},modp14:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},modp15:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},modp16:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},modp17:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},modp18:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}},{}],349:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],350:[function(t,e,r){\"use strict\";var n=r;n.version=t(\"../package.json\").version,n.utils=t(\"./elliptic/utils\"),n.rand=t(\"brorand\"),n.curve=t(\"./elliptic/curve\"),n.curves=t(\"./elliptic/curves\"),n.ec=t(\"./elliptic/ec\"),n.eddsa=t(\"./elliptic/eddsa\")},{\"../package.json\":366,\"./elliptic/curve\":353,\"./elliptic/curves\":356,\"./elliptic/ec\":357,\"./elliptic/eddsa\":360,\"./elliptic/utils\":364,brorand:184}],351:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"../utils\"),o=i.getNAF,a=i.getJSF,s=i.assert;function u(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(t,e){this.curve=t,this.type=e,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error(\"Not implemented\")},u.prototype.validate=function(){throw new Error(\"Not implemented\")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;for(var a=[],u=0;u<n.length;u+=r.step){var c=0;for(e=u+r.step-1;e>=u;e--)c=(c<<1)+n[e];a.push(c)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),h=i;h>0;h--){for(u=0;u<a.length;u++){(c=a[u])===h?l=l.mixedAdd(r.points[u]):c===-h&&(l=l.mixedAdd(r.points[u].neg()))}f=f.add(l)}return f.toP()},u.prototype._wnafMul=function(t,e){var r=4,n=t._getNAFPoints(r);r=n.wnd;for(var i=n.points,a=o(e,r,this._bitLength),u=this.jpoint(null,null,null),c=a.length-1;c>=0;c--){for(e=0;c>=0&&0===a[c];c--)e++;if(c>=0&&e++,u=u.dblp(e),c<0)break;var f=a[c];s(0!==f),u=\"affine\"===t.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return\"affine\"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){for(var s=this._wnafT1,u=this._wnafT2,c=this._wnafT3,f=0,l=0;l<n;l++){var h=(O=e[l])._getNAFPoints(t);s[l]=h.wnd,u[l]=h.points}for(l=n-1;l>=1;l-=2){var d=l-1,p=l;if(1===s[d]&&1===s[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],b=a(r[d],r[p]);f=Math.max(b[0].length,f),c[d]=new Array(f),c[p]=new Array(f);for(var v=0;v<f;v++){var g=0|b[0][v],w=0|b[1][v];c[d][v]=y[3*(g+1)+(w+1)],c[p][v]=0,u[d]=m}}else c[d]=o(r[d],s[d],this._bitLength),c[p]=o(r[p],s[p],this._bitLength),f=Math.max(c[d].length,f),f=Math.max(c[p].length,f)}var _=this.jpoint(null,null,null),k=this._wnafT4;for(l=f;l>=0;l--){for(var x=0;l>=0;){var S=!0;for(v=0;v<n;v++)k[v]=0|c[v][l],0!==k[v]&&(S=!1);if(!S)break;x++,l--}if(l>=0&&x++,_=_.dblp(x),l<0)break;for(v=0;v<n;v++){var O,j=k[v];0!==j&&(j>0?O=u[v][j-1>>1]:j<0&&(O=u[v][-j-1>>1].neg()),_=\"affine\"===O.type?_.mixedAdd(O):_.add(O))}}for(l=0;l<n;l++)u[l]=null;return i?_:_.toP()},u.BasePoint=c,c.prototype.eq=function(){throw new Error(\"Not implemented\")},c.prototype.validate=function(){return this.curve.validate(this)},u.prototype.decodePoint=function(t,e){t=i.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?s(t[t.length-1]%2==0):7===t[0]&&s(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error(\"Unknown point format\")},c.prototype.encodeCompressed=function(t){return this.encode(t,!0)},c.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray(\"be\",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray(\"be\",e))},c.prototype.encode=function(t,e){return i.encode(this._encode(e),t)},c.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},c.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},c.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},c.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},c.prototype._getBeta=function(){return null},c.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e}},{\"../utils\":364,\"bn.js\":365}],352:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"bn.js\"),o=t(\"inherits\"),a=t(\"./base\"),s=n.assert;function u(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,a.call(this,\"edwards\",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function c(t,e,r,n,o){a.BasePoint.call(this,t,\"projective\"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),e.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error(\"invalid point\");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error(\"invalid point\");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error(\"invalid point\");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(c,a.BasePoint),u.prototype.pointFromJSON=function(t){return c.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new c(this,t,e,r,n)},c.fromJSON=function(t,e){return new c(t,e[0],e[1],e[2])},c.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),c=o.redMul(s),f=i.redMul(s),l=a.redMul(o);return this.curve.point(u,c,l,f)},c.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(c=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),e=a.redMul(c.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),u=a.redSub(s).redISub(s);t=n.redSub(i).redISub(o).redMul(u),e=a.redMul(c.redSub(o)),r=a.redMul(u)}}else{var c=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),u=c.redSub(s).redSub(s);t=this.curve._mulC(n.redISub(c)).redMul(u),e=this.curve._mulC(c).redMul(i.redISub(o)),r=c.redMul(u)}return this.curve.point(t,e,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),c=o.redMul(a),f=s.redMul(u),l=o.redMul(u),h=a.redMul(s);return this.curve.point(c,f,h,l)},c.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),c=i.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(e=n.redMul(c).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(c)):(e=n.redMul(c).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(c)),this.curve.point(l,e,r)},c.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},c.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},c.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},c.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},{\"../utils\":364,\"./base\":351,\"bn.js\":365,inherits:387}],353:[function(t,e,r){\"use strict\";var n=r;n.base=t(\"./base\"),n.short=t(\"./short\"),n.mont=t(\"./mont\"),n.edwards=t(\"./edwards\")},{\"./base\":351,\"./edwards\":352,\"./mont\":354,\"./short\":355}],354:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"inherits\"),o=t(\"./base\"),a=t(\"../utils\");function s(t){o.call(this,\"mont\",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){o.BasePoint.call(this,t,\"projective\"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),e.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},i(u,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray(\"be\",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},u.prototype.add=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),a=i.redMul(n),s=e.z.redMul(o.redAdd(a).redSqr()),u=e.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.jumlAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{\"../utils\":364,\"./base\":351,\"bn.js\":365,inherits:387}],355:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"bn.js\"),o=t(\"inherits\"),a=t(\"./base\"),s=n.assert;function u(t){a.call(this,\"short\",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(t,e,r,n){a.BasePoint.call(this,t,\"affine\"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(t,e,r,n){a.BasePoint.call(this,t,\"jacobian\"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),e.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new i(t.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(e))?r=o[0]:(r=o[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:r,basis:t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),r=new i(2).toRed(e).redInvm(),n=r.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(o).fromRed(),n.redSub(o).fromRed()]},u.prototype._getEndoBasis=function(t){for(var e,r,n,o,a,s,u,c,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=t,d=this.n.clone(),p=new i(1),m=new i(0),y=new i(0),b=new i(1),v=0;0!==h.cmpn(0);){var g=d.div(h);c=d.sub(g.mul(h)),f=y.sub(g.mul(p));var w=b.sub(g.mul(m));if(!n&&c.cmp(l)<0)e=u.neg(),r=p,n=c.neg(),o=f;else if(n&&2==++v)break;u=c,d=h,h=c,y=p,p=f,b=m,m=w}a=c.neg(),s=f;var _=n.sqr().add(o.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=e,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),c=o.mul(n.b);return{k1:t.sub(a).sub(s),k2:u.add(c).neg()}},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error(\"invalid point\");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var a=this._endoSplit(e[o]),s=t[o],u=s._getBeta();a.k1.negative&&(a.k1.ineg(),s=s.neg(!0)),a.k2.negative&&(a.k2.ineg(),u=u.neg(!0)),n[2*o]=s,n[2*o+1]=u,i[2*o]=a.k1,i[2*o+1]=a.k2}for(var c=this._wnafMulAdd(1,n,i,2*o,r),f=0;f<2*o;f++)n[f]=null,i[f]=null;return c},o(c,a.BasePoint),u.prototype.point=function(t,e,r){return new c(this,t,e,r)},u.prototype.pointFromJSON=function(t,e){return c.fromJSON(this,t,e)},c.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},c.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},c.fromJSON=function(t,e,r){\"string\"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},c.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\">\"},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},c.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(f,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new f(this,t,e,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),f=c.redMul(s),l=n.redMul(c),h=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(h)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(h,d,p)},f.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),c=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(c).redISub(f).redISub(f),h=s.redMul(f.redISub(l)).redISub(i.redMul(c)),d=this.z.redMul(a);return this.curve.jpoint(l,h,d)},f.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r<t;r++)e=e.dbl();return e}var n=this.curve.a,i=this.curve.tinv,o=this.x,a=this.y,s=this.z,u=s.redSqr().redSqr(),c=a.redAdd(a);for(r=0;r<t;r++){var f=o.redSqr(),l=c.redSqr(),h=l.redSqr(),d=f.redAdd(f).redIAdd(f).redIAdd(n.redMul(u)),p=o.redMul(l),m=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(m),b=d.redMul(y);b=b.redIAdd(b).redISub(h);var v=c.redMul(s);r+1<t&&(u=u.redMul(h)),o=m,s=v,c=b}return this.curve.jpoint(o,c.redMul(i),s)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},f.prototype._zeroDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(n).redISub(o);a=a.redIAdd(a);var s=n.redAdd(n).redIAdd(n),u=s.redSqr().redISub(a).redISub(a),c=o.redIAdd(o);c=(c=c.redIAdd(c)).redIAdd(c),t=u,e=s.redMul(a.redISub(u)).redISub(c),r=this.y.redAdd(this.y)}else{var f=this.x.redSqr(),l=this.y.redSqr(),h=l.redSqr(),d=this.x.redAdd(l).redSqr().redISub(f).redISub(h);d=d.redIAdd(d);var p=f.redAdd(f).redIAdd(f),m=p.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),t=m.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},f.prototype._threeDbl=function(){var t,e,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(n).redISub(o);a=a.redIAdd(a);var s=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=s.redSqr().redISub(a).redISub(a);t=u;var c=o.redIAdd(o);c=(c=c.redIAdd(c)).redIAdd(c),e=s.redMul(a.redISub(u)).redISub(c),r=this.y.redAdd(this.y)}else{var f=this.z.redSqr(),l=this.y.redSqr(),h=this.x.redMul(l),d=this.x.redSub(f).redMul(this.x.redAdd(f));d=d.redAdd(d).redIAdd(d);var p=h.redIAdd(h),m=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(l).redISub(f);var y=l.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,r)},f.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),a=r.redSqr(),s=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),c=(u=u.redIAdd(u)).redMul(a),f=s.redSqr().redISub(c.redAdd(c)),l=c.redISub(f),h=a.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var d=s.redMul(l).redISub(h),p=r.redAdd(r).redMul(n);return this.curve.jpoint(f,d,p)},f.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),a=this.x.redAdd(e).redSqr().redISub(t).redISub(n),s=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(a).redSqr().redISub(o).redISub(s).redISub(u),f=e.redMul(c);f=(f=f.redIAdd(f)).redIAdd(f);var l=this.x.redMul(s).redISub(f);l=(l=l.redIAdd(l)).redIAdd(l);var h=this.y.redMul(c.redMul(u.redISub(c)).redISub(a.redMul(s)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var d=this.z.redAdd(a).redSqr().redISub(r).redISub(s);return this.curve.jpoint(l,h,d)},f.prototype.mul=function(t,e){return t=new i(t,e),this.curve._wnafMul(this,t)},f.prototype.eq=function(t){if(\"affine\"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},f.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?\"<EC JPoint Infinity>\":\"<EC JPoint x: \"+this.x.toString(16,2)+\" y: \"+this.y.toString(16,2)+\" z: \"+this.z.toString(16,2)+\">\"},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{\"../utils\":364,\"./base\":351,\"bn.js\":365,inherits:387}],356:[function(t,e,r){\"use strict\";var n,i=r,o=t(\"hash.js\"),a=t(\"./curve\"),s=t(\"./utils\").assert;function u(t){\"short\"===t.type?this.curve=new a.short(t):\"edwards\"===t.type?this.curve=new a.edwards(t):this.curve=new a.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,s(this.g.validate(),\"Invalid curve\"),s(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}function c(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var r=new u(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=u,c(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:o.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]}),c(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:o.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]}),c(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:o.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]}),c(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:o.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]}),c(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:o.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]}),c(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:o.sha256,gRed:!1,g:[\"9\"]}),c(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:o.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});try{n=t(\"./precomputed/secp256k1\")}catch(t){n=void 0}c(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:o.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",n]})},{\"./curve\":353,\"./precomputed/secp256k1\":363,\"./utils\":364,\"hash.js\":372}],357:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"bn.js\"),o=t(\"hmac-drbg\"),a=t(\"../utils\"),s=t(\"../curves\"),u=t(\"brorand\"),c=a.assert,f=t(\"./key\"),l=t(\"./signature\");function h(t){if(!(this instanceof h))return new h(t);\"string\"==typeof t&&(c(s.hasOwnProperty(t),\"Unknown curve \"+t),t=s[t]),t instanceof s.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}e.exports=h,h.prototype.keyPair=function(t){return new f(this,t)},h.prototype.keyFromPrivate=function(t,e){return f.fromPrivate(this,t,e)},h.prototype.keyFromPublic=function(t,e){return f.fromPublic(this,t,e)},h.prototype.genKeyPair=function(t){t||(t={});for(var e=new o({hash:this.hash,pers:t.pers,persEnc:t.persEnc||\"utf8\",entropy:t.entropy||u(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||\"utf8\",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new i(2));;){var a=new i(e.generate(r));if(!(a.cmp(n)>0))return a.iaddn(1),this.keyFromPrivate(a)}},h.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},h.prototype.sign=function(t,e,r,a){\"object\"===n(r)&&(a=r,r=null),a||(a={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new i(t,16));for(var s=this.n.byteLength(),u=e.getPrivate().toArray(\"be\",s),c=t.toArray(\"be\",s),f=new o({hash:this.hash,entropy:u,nonce:c,pers:a.pers,persEnc:a.persEnc||\"utf8\"}),h=this.n.sub(new i(1)),d=0;;d++){var p=a.k?a.k(d):new i(f.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(h)>=0)){var m=this.g.mul(p);if(!m.isInfinity()){var y=m.getX(),b=y.umod(this.n);if(0!==b.cmpn(0)){var v=p.invm(this.n).mul(b.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var g=(m.getY().isOdd()?1:0)|(0!==y.cmp(b)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),g^=1),new l({r:b,s:v,recoveryParam:g})}}}}}},h.prototype.verify=function(t,e,r,n){t=this._truncateToN(new i(t,16)),r=this.keyFromPublic(r,n);var o=(e=new l(e,\"hex\")).r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),c=u.mul(t).umod(this.n),f=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,r.getPublic(),f)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(c,r.getPublic(),f)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},h.prototype.recoverPubKey=function(t,e,r,n){c((3&r)===r,\"The recovery param is more than two bits\"),e=new l(e,n);var o=this.n,a=new i(t),s=e.r,u=e.s,f=1&r,h=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error(\"Unable to find sencond key candinate\");s=h?this.curve.pointFromX(s.add(this.curve.n),f):this.curve.pointFromX(s,f);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),m=u.mul(d).umod(o);return this.g.mulAdd(p,s,m)},h.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new l(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error(\"Unable to find valid recovery factor\")}},{\"../curves\":356,\"../utils\":364,\"./key\":358,\"./signature\":359,\"bn.js\":365,brorand:184,\"hmac-drbg\":384}],358:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"../utils\").assert;function o(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}e.exports=o,o.fromPublic=function(t,e,r){return e instanceof o?e:new o(t,{pub:e,pubEnc:r})},o.fromPrivate=function(t,e,r){return e instanceof o?e:new o(t,{priv:e,privEnc:r})},o.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:\"Invalid public key\"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:\"Public key * N != O\"}:{result:!1,reason:\"Public key is not a point\"}},o.prototype.getPublic=function(t,e){return\"string\"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},o.prototype.getPrivate=function(t){return\"hex\"===t?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(t,e){if(t.x||t.y)return\"mont\"===this.ec.curve.type?i(t.x,\"Need x coordinate\"):\"short\"!==this.ec.curve.type&&\"edwards\"!==this.ec.curve.type||i(t.x&&t.y,\"Need both x and y coordinate\"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},o.prototype.derive=function(t){return t.mul(this.priv).getX()},o.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},o.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},o.prototype.inspect=function(){return\"<Key priv: \"+(this.priv&&this.priv.toString(16,2))+\" pub: \"+(this.pub&&this.pub.inspect())+\" >\"}},{\"../utils\":364,\"bn.js\":365}],359:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"../utils\"),o=i.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,\"Signature without r or s\"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o<n;o++,a++)i<<=8,i|=t[a],i>>>=0;return!(i<=127)&&(e.place=a,i)}function c(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function f(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}e.exports=a,a.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var c=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var f=u(t,r);if(!1===f)return!1;if(t.length!==f+r.place)return!1;var l=t.slice(r.place,f+r.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(c),this.s=new n(l),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=c(e),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];f(n,e.length),(n=n.concat(e)).push(2),f(n,r.length);var o=n.concat(r),a=[48];return f(a,o.length),a=a.concat(o),i.encode(a,t)}},{\"../utils\":364,\"bn.js\":365}],360:[function(t,e,r){\"use strict\";var n=t(\"hash.js\"),i=t(\"../curves\"),o=t(\"../utils\"),a=o.assert,s=o.parseBytes,u=t(\"./key\"),c=t(\"./signature\");function f(t){if(a(\"ed25519\"===t,\"only tested with ed25519 so far\"),!(this instanceof f))return new f(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}e.exports=f,f.prototype.sign=function(t,e){t=s(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},f.prototype.verify=function(t,e,r){t=s(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},f.prototype.hashInt=function(){for(var t=this.hash(),e=0;e<arguments.length;e++)t.update(arguments[e]);return o.intFromLE(t.digest()).umod(this.curve.n)},f.prototype.keyFromPublic=function(t){return u.fromPublic(this,t)},f.prototype.keyFromSecret=function(t){return u.fromSecret(this,t)},f.prototype.makeSignature=function(t){return t instanceof c?t:new c(this,t)},f.prototype.encodePoint=function(t){var e=t.getY().toArray(\"le\",this.encodingLength);return e[this.encodingLength-1]|=t.getX().isOdd()?128:0,e},f.prototype.decodePoint=function(t){var e=(t=o.parseBytes(t)).length-1,r=t.slice(0,e).concat(-129&t[e]),n=0!=(128&t[e]),i=o.intFromLE(r);return this.curve.pointFromY(i,n)},f.prototype.encodeInt=function(t){return t.toArray(\"le\",this.encodingLength)},f.prototype.decodeInt=function(t){return o.intFromLE(t)},f.prototype.isPoint=function(t){return t instanceof this.pointClass}},{\"../curves\":356,\"../utils\":364,\"./key\":361,\"./signature\":362,\"hash.js\":372}],361:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=n.assert,o=n.parseBytes,a=n.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,\"pubBytes\",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,\"pub\",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,\"privBytes\",(function(){var t=this.eddsa,e=this.hash(),r=t.encodingLength-1,n=e.slice(0,t.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),a(s,\"priv\",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,\"hash\",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,\"messagePrefix\",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return i(this._secret,\"KeyPair can only verify\"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return i(this._secret,\"KeyPair is public only\"),n.encode(this.secret(),t)},s.prototype.getPublic=function(t){return n.encode(this.pubBytes(),t)},e.exports=s},{\"../utils\":364}],362:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"bn.js\"),o=t(\"../utils\"),a=o.assert,s=o.cachedProperty,u=o.parseBytes;function c(t,e){this.eddsa=t,\"object\"!==n(e)&&(e=u(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),a(e.R&&e.S,\"Signature without R or S\"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof i&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}s(c,\"S\",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(c,\"R\",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(c,\"Rencoded\",(function(){return this.eddsa.encodePoint(this.R())})),s(c,\"Sencoded\",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return o.encode(this.toBytes(),\"hex\").toUpperCase()},e.exports=c},{\"../utils\":364,\"bn.js\":365}],363:[function(t,e,r){\"use strict\";e.exports={doubles:{step:4,points:[[\"e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a\",\"f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821\"],[\"8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508\",\"11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf\"],[\"175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739\",\"d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695\"],[\"363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640\",\"4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9\"],[\"8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c\",\"4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36\"],[\"723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda\",\"96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f\"],[\"eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa\",\"5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999\"],[\"100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0\",\"cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09\"],[\"e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d\",\"9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d\"],[\"feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d\",\"e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088\"],[\"da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1\",\"9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d\"],[\"53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0\",\"5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8\"],[\"8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047\",\"10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a\"],[\"385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862\",\"283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453\"],[\"6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7\",\"7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160\"],[\"3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd\",\"56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0\"],[\"85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83\",\"7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6\"],[\"948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a\",\"53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589\"],[\"6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8\",\"bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17\"],[\"e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d\",\"4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda\"],[\"e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725\",\"7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd\"],[\"213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754\",\"4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2\"],[\"4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c\",\"17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6\"],[\"fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6\",\"6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f\"],[\"76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39\",\"c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01\"],[\"c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891\",\"893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3\"],[\"d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b\",\"febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f\"],[\"b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03\",\"2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7\"],[\"e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d\",\"eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78\"],[\"a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070\",\"7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1\"],[\"90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4\",\"e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150\"],[\"8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da\",\"662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82\"],[\"e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11\",\"1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc\"],[\"8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e\",\"efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b\"],[\"e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41\",\"2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51\"],[\"b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef\",\"67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45\"],[\"d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8\",\"db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120\"],[\"324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d\",\"648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84\"],[\"4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96\",\"35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d\"],[\"9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd\",\"ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d\"],[\"6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5\",\"9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8\"],[\"a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266\",\"40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8\"],[\"7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71\",\"34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac\"],[\"928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac\",\"c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f\"],[\"85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751\",\"1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962\"],[\"ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e\",\"493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907\"],[\"827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241\",\"c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec\"],[\"eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3\",\"be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d\"],[\"e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f\",\"4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414\"],[\"1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19\",\"aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd\"],[\"146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be\",\"b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0\"],[\"fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9\",\"6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811\"],[\"da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2\",\"8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1\"],[\"a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13\",\"7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c\"],[\"174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c\",\"ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73\"],[\"959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba\",\"2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd\"],[\"d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151\",\"e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405\"],[\"64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073\",\"d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589\"],[\"8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458\",\"38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e\"],[\"13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b\",\"69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27\"],[\"bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366\",\"d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1\"],[\"8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa\",\"40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482\"],[\"8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0\",\"620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945\"],[\"dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787\",\"7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573\"],[\"f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e\",\"ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82\"]]},naf:{wnd:7,points:[[\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\",\"388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672\"],[\"2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4\",\"d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6\"],[\"5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc\",\"6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da\"],[\"acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe\",\"cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37\"],[\"774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb\",\"d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b\"],[\"f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8\",\"ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81\"],[\"d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e\",\"581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58\"],[\"defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34\",\"4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77\"],[\"2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c\",\"85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a\"],[\"352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5\",\"321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c\"],[\"2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f\",\"2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67\"],[\"9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714\",\"73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402\"],[\"daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729\",\"a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55\"],[\"c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db\",\"2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482\"],[\"6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4\",\"e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82\"],[\"1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5\",\"b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396\"],[\"605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479\",\"2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49\"],[\"62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d\",\"80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf\"],[\"80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f\",\"1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a\"],[\"7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb\",\"d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7\"],[\"d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9\",\"eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933\"],[\"49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963\",\"758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a\"],[\"77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74\",\"958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6\"],[\"f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530\",\"e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37\"],[\"463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b\",\"5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e\"],[\"f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247\",\"cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6\"],[\"caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1\",\"cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476\"],[\"2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120\",\"4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40\"],[\"7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435\",\"91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61\"],[\"754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18\",\"673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683\"],[\"e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8\",\"59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5\"],[\"186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb\",\"3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b\"],[\"df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f\",\"55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417\"],[\"5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143\",\"efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868\"],[\"290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba\",\"e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a\"],[\"af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45\",\"f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6\"],[\"766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a\",\"744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996\"],[\"59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e\",\"c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e\"],[\"f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8\",\"e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d\"],[\"7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c\",\"30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2\"],[\"948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519\",\"e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e\"],[\"7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab\",\"100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437\"],[\"3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca\",\"ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311\"],[\"d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf\",\"8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4\"],[\"1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610\",\"68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575\"],[\"733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4\",\"f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d\"],[\"15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c\",\"d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d\"],[\"a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940\",\"edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629\"],[\"e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980\",\"a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06\"],[\"311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3\",\"66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374\"],[\"34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf\",\"9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee\"],[\"f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63\",\"4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1\"],[\"d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448\",\"fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b\"],[\"32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf\",\"5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661\"],[\"7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5\",\"8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6\"],[\"ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6\",\"8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e\"],[\"16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5\",\"5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d\"],[\"eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99\",\"f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc\"],[\"78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51\",\"f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4\"],[\"494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5\",\"42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c\"],[\"a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5\",\"204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b\"],[\"c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997\",\"4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913\"],[\"841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881\",\"73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154\"],[\"5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5\",\"39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865\"],[\"36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66\",\"d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc\"],[\"336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726\",\"ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224\"],[\"8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede\",\"6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e\"],[\"1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94\",\"60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6\"],[\"85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31\",\"3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511\"],[\"29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51\",\"b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b\"],[\"a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252\",\"ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2\"],[\"4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5\",\"cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c\"],[\"d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b\",\"6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3\"],[\"ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4\",\"322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d\"],[\"af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f\",\"6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700\"],[\"e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889\",\"2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4\"],[\"591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246\",\"b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196\"],[\"11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984\",\"998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4\"],[\"3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a\",\"b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257\"],[\"cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030\",\"bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13\"],[\"c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197\",\"6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096\"],[\"c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593\",\"c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38\"],[\"a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef\",\"21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f\"],[\"347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38\",\"60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448\"],[\"da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a\",\"49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a\"],[\"c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111\",\"5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4\"],[\"4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502\",\"7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437\"],[\"3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea\",\"be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7\"],[\"cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26\",\"8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d\"],[\"b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986\",\"39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a\"],[\"d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e\",\"62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54\"],[\"48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4\",\"25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77\"],[\"dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda\",\"ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517\"],[\"6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859\",\"cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10\"],[\"e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f\",\"f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125\"],[\"eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c\",\"6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e\"],[\"13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942\",\"fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1\"],[\"ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a\",\"1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2\"],[\"b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80\",\"5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423\"],[\"ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d\",\"438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8\"],[\"8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1\",\"cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758\"],[\"52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63\",\"c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375\"],[\"e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352\",\"6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d\"],[\"7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193\",\"ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec\"],[\"5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00\",\"9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0\"],[\"32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58\",\"ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c\"],[\"e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7\",\"d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4\"],[\"8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8\",\"c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f\"],[\"4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e\",\"67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649\"],[\"3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d\",\"cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826\"],[\"674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b\",\"299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5\"],[\"d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f\",\"f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87\"],[\"30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6\",\"462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b\"],[\"be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297\",\"62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc\"],[\"93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a\",\"7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c\"],[\"b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c\",\"ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f\"],[\"d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52\",\"4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a\"],[\"d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb\",\"bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46\"],[\"463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065\",\"bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f\"],[\"7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917\",\"603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03\"],[\"74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9\",\"cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08\"],[\"30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3\",\"553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8\"],[\"9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57\",\"712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373\"],[\"176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66\",\"ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3\"],[\"75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8\",\"9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8\"],[\"809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721\",\"9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1\"],[\"1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180\",\"4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9\"]]}}},{}],364:[function(t,e,r){\"use strict\";var n=r,i=t(\"bn.js\"),o=t(\"minimalistic-assert\"),a=t(\"minimalistic-crypto-utils\");n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<<e+1,o=t.clone(),a=0;a<n.length;a++){var s,u=o.andln(i-1);o.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n=0,i=0;t.cmpn(-n)>0||e.cmpn(-i)>0;){var o,a,s,u=t.andln(3)+n&3,c=e.andln(3)+i&3;if(3===u&&(u=-1),3===c&&(c=-1),0==(1&u))o=0;else o=3!==(s=t.andln(7)+n&7)&&5!==s||2!==c?u:-u;if(r[0].push(o),0==(1&c))a=0;else a=3!==(s=e.andln(7)+i&7)&&5!==s||2!==u?c:-c;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n=\"_\"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return\"string\"==typeof t?n.toArray(t,\"hex\"):t},n.intFromLE=function(t){return new i(t,\"hex\",\"le\")}},{\"bn.js\":365,\"minimalistic-assert\":437,\"minimalistic-crypto-utils\":438}],365:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],366:[function(t,e,r){e.exports={_from:\"elliptic@^6.5.3\",_id:\"elliptic@6.5.3\",_inBundle:!1,_integrity:\"sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==\",_location:\"/elliptic\",_phantomChildren:{},_requested:{type:\"range\",registry:!0,raw:\"elliptic@^6.5.3\",name:\"elliptic\",escapedName:\"elliptic\",rawSpec:\"^6.5.3\",saveSpec:null,fetchSpec:\"^6.5.3\"},_requiredBy:[\"/browserify-sign\",\"/create-ecdh\"],_resolved:\"https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz\",_shasum:\"cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6\",_spec:\"elliptic@^6.5.3\",_where:\"/mnt/d/dev/git/exceljs/node_modules/browserify-sign\",author:{name:\"Fedor Indutny\",email:\"fedor@indutny.com\"},bugs:{url:\"https://github.com/indutny/elliptic/issues\"},bundleDependencies:!1,dependencies:{\"bn.js\":\"^4.4.0\",brorand:\"^1.0.1\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.0\",inherits:\"^2.0.1\",\"minimalistic-assert\":\"^1.0.0\",\"minimalistic-crypto-utils\":\"^1.0.0\"},deprecated:!1,description:\"EC cryptography\",devDependencies:{brfs:\"^1.4.3\",coveralls:\"^3.0.8\",grunt:\"^1.0.4\",\"grunt-browserify\":\"^5.0.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-connect\":\"^1.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^1.0.1\",\"grunt-mocha-istanbul\":\"^3.0.1\",\"grunt-saucelabs\":\"^9.0.1\",istanbul:\"^0.4.2\",jscs:\"^3.0.7\",jshint:\"^2.10.3\",mocha:\"^6.2.2\"},files:[\"lib\"],homepage:\"https://github.com/indutny/elliptic\",keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],license:\"MIT\",main:\"lib/elliptic.js\",name:\"elliptic\",repository:{type:\"git\",url:\"git+ssh://git@github.com/indutny/elliptic.git\"},scripts:{jscs:\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",jshint:\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",lint:\"npm run jscs && npm run jshint\",test:\"npm run lint && npm run unit\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",version:\"grunt dist && git add dist/\"},version:\"6.5.3\"}},{}],367:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=Object.create||function(t){var e=function(){};return e.prototype=t,new e},o=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return r},a=Function.prototype.bind||function(t){var e=this;return function(){return e.apply(t,arguments)}};function s(){this._events&&Object.prototype.hasOwnProperty.call(this,\"_events\")||(this._events=i(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._maxListeners=void 0;var u,c=10;try{var f={};Object.defineProperty&&Object.defineProperty(f,\"x\",{value:0}),u=0===f.x}catch(t){u=!1}function l(t){return void 0===t._maxListeners?s.defaultMaxListeners:t._maxListeners}function h(t,e,r){if(e)t.call(r);else for(var n=t.length,i=k(t,n),o=0;o<n;++o)i[o].call(r)}function d(t,e,r,n){if(e)t.call(r,n);else for(var i=t.length,o=k(t,i),a=0;a<i;++a)o[a].call(r,n)}function p(t,e,r,n,i){if(e)t.call(r,n,i);else for(var o=t.length,a=k(t,o),s=0;s<o;++s)a[s].call(r,n,i)}function m(t,e,r,n,i,o){if(e)t.call(r,n,i,o);else for(var a=t.length,s=k(t,a),u=0;u<a;++u)s[u].call(r,n,i,o)}function y(t,e,r,n){if(e)t.apply(r,n);else for(var i=t.length,o=k(t,i),a=0;a<i;++a)o[a].apply(r,n)}function b(t,e,r,o){var a,s,u;if(\"function\"!=typeof r)throw new TypeError('\"listener\" argument must be a function');if((s=t._events)?(s.newListener&&(t.emit(\"newListener\",e,r.listener?r.listener:r),s=t._events),u=s[e]):(s=t._events=i(null),t._eventsCount=0),u){if(\"function\"==typeof u?u=s[e]=o?[r,u]:[u,r]:o?u.unshift(r):u.push(r),!u.warned&&(a=l(t))&&a>0&&u.length>a){u.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+u.length+' \"'+String(e)+'\" listeners added. Use emitter.setMaxListeners() to increase limit.');c.name=\"MaxListenersExceededWarning\",c.emitter=t,c.type=e,c.count=u.length,\"object\"===(\"undefined\"==typeof console?\"undefined\":n(console))&&console.warn&&console.warn(\"%s: %s\",c.name,c.message)}}else u=s[e]=r,++t._eventsCount;return t}function v(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var t=new Array(arguments.length),e=0;e<t.length;++e)t[e]=arguments[e];this.listener.apply(this.target,t)}}function g(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=a.call(v,n);return i.listener=r,n.wrapFn=i,i}function w(t,e,r){var n=t._events;if(!n)return[];var i=n[e];return i?\"function\"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):k(i,i.length):[]}function _(t){var e=this._events;if(e){var r=e[t];if(\"function\"==typeof r)return 1;if(r)return r.length}return 0}function k(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}u?Object.defineProperty(s,\"defaultMaxListeners\",{enumerable:!0,get:function(){return c},set:function(t){if(\"number\"!=typeof t||t<0||t!=t)throw new TypeError('\"defaultMaxListeners\" must be a positive number');c=t}}):s.defaultMaxListeners=c,s.prototype.setMaxListeners=function(t){if(\"number\"!=typeof t||t<0||isNaN(t))throw new TypeError('\"n\" argument must be a positive number');return this._maxListeners=t,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(t){var e,r,n,i,o,a,s=\"error\"===t;if(a=this._events)s=s&&null==a.error;else if(!s)return!1;if(s){if(arguments.length>1&&(e=arguments[1]),e instanceof Error)throw e;var u=new Error('Unhandled \"error\" event. ('+e+\")\");throw u.context=e,u}if(!(r=a[t]))return!1;var c=\"function\"==typeof r;switch(n=arguments.length){case 1:h(r,c,this);break;case 2:d(r,c,this,arguments[1]);break;case 3:p(r,c,this,arguments[1],arguments[2]);break;case 4:m(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o<n;o++)i[o-1]=arguments[o];y(r,c,this,i)}return!0},s.prototype.addListener=function(t,e){return b(this,t,e,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(t,e){return b(this,t,e,!0)},s.prototype.once=function(t,e){if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');return this.on(t,g(this,t,e)),this},s.prototype.prependOnceListener=function(t,e){if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');return this.prependListener(t,g(this,t,e)),this},s.prototype.removeListener=function(t,e){var r,n,o,a,s;if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');if(!(n=this._events))return this;if(!(r=n[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=i(null):(delete n[t],n.removeListener&&this.emit(\"removeListener\",t,r.listener||e));else if(\"function\"!=typeof r){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===e||r[a].listener===e){s=r[a].listener,o=a;break}if(o<0)return this;0===o?r.shift():function(t,e){for(var r=e,n=r+1,i=t.length;n<i;r+=1,n+=1)t[r]=t[n];t.pop()}(r,o),1===r.length&&(n[t]=r[0]),n.removeListener&&this.emit(\"removeListener\",t,s||e)}return this},s.prototype.removeAllListeners=function(t){var e,r,n;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=i(null),this._eventsCount=0):r[t]&&(0==--this._eventsCount?this._events=i(null):delete r[t]),this;if(0===arguments.length){var a,s=o(r);for(n=0;n<s.length;++n)\"removeListener\"!==(a=s[n])&&this.removeAllListeners(a);return this.removeAllListeners(\"removeListener\"),this._events=i(null),this._eventsCount=0,this}if(\"function\"==typeof(e=r[t]))this.removeListener(t,e);else if(e)for(n=e.length-1;n>=0;n--)this.removeListener(t,e[n]);return this},s.prototype.listeners=function(t){return w(this,t,!0)},s.prototype.rawListeners=function(t){return w(this,t,!1)},s.listenerCount=function(t,e){return\"function\"==typeof t.listenerCount?t.listenerCount(e):_.call(t,e)},s.prototype.listenerCount=_,s.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],368:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"md5.js\");e.exports=function(t,e,r,o){if(n.isBuffer(t)||(t=n.from(t,\"binary\")),e&&(n.isBuffer(e)||(e=n.from(e,\"binary\")),8!==e.length))throw new RangeError(\"salt should be Buffer with 8 byte length\");for(var a=r/8,s=n.alloc(a),u=n.alloc(o||0),c=n.alloc(0);a>0||o>0;){var f=new i;f.update(c),f.update(t),e&&f.update(e),c=f.digest();var l=0;if(a>0){var h=s.length-a;l=Math.min(a,c.length),c.copy(s,h,0,l),a-=l}if(l<c.length&&o>0){var d=u.length-o,p=Math.min(o,c.length-l);c.copy(u,d,l,l+p),o-=p}}return c.fill(0),{key:s,iv:u}}},{\"md5.js\":434,\"safe-buffer\":494}],369:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"@fast-csv/format\");Object.defineProperty(r,\"format\",{enumerable:!0,get:function(){return n.format}}),Object.defineProperty(r,\"write\",{enumerable:!0,get:function(){return n.write}}),Object.defineProperty(r,\"writeToStream\",{enumerable:!0,get:function(){return n.writeToStream}}),Object.defineProperty(r,\"writeToBuffer\",{enumerable:!0,get:function(){return n.writeToBuffer}}),Object.defineProperty(r,\"writeToString\",{enumerable:!0,get:function(){return n.writeToString}}),Object.defineProperty(r,\"writeToPath\",{enumerable:!0,get:function(){return n.writeToPath}}),Object.defineProperty(r,\"CsvFormatterStream\",{enumerable:!0,get:function(){return n.CsvFormatterStream}}),Object.defineProperty(r,\"FormatterOptions\",{enumerable:!0,get:function(){return n.FormatterOptions}});var i=t(\"@fast-csv/parse\");Object.defineProperty(r,\"parse\",{enumerable:!0,get:function(){return i.parse}}),Object.defineProperty(r,\"parseString\",{enumerable:!0,get:function(){return i.parseString}}),Object.defineProperty(r,\"parseStream\",{enumerable:!0,get:function(){return i.parseStream}}),Object.defineProperty(r,\"parseFile\",{enumerable:!0,get:function(){return i.parseFile}}),Object.defineProperty(r,\"ParserOptions\",{enumerable:!0,get:function(){return i.ParserOptions}}),Object.defineProperty(r,\"CsvParserStream\",{enumerable:!0,get:function(){return i.CsvParserStream}})},{\"@fast-csv/format\":148,\"@fast-csv/parse\":152}],370:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"readable-stream\").Transform;function o(t){i.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}t(\"inherits\")(o,i),o.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!n.isBuffer(t)&&\"string\"!=typeof t)throw new TypeError(e+\" must be a string or a buffer\")}(t,\"Data\"),this._finalized)throw new Error(\"Digest already called\");n.isBuffer(t)||(t=n.from(t,e));for(var r=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)r[o++]=t[i++];this._update(),this._blockOffset=0}for(;i<t.length;)r[this._blockOffset++]=t[i++];for(var a=0,s=8*t.length;s>0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error(\"_update is not implemented\")},o.prototype.digest=function(t){if(this._finalized)throw new Error(\"Digest already called\");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error(\"_digest is not implemented\")},e.exports=o},{inherits:387,\"readable-stream\":491,\"safe-buffer\":371}],371:[function(t,e,r){arguments[4][214][0].apply(r,arguments)},{buffer:216,dup:214}],372:[function(t,e,r){\"use strict\";var n=r;n.utils=t(\"./hash/utils\"),n.common=t(\"./hash/common\"),n.sha=t(\"./hash/sha\"),n.ripemd=t(\"./hash/ripemd\"),n.hmac=t(\"./hash/hmac\"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{\"./hash/common\":373,\"./hash/hmac\":374,\"./hash/ripemd\":375,\"./hash/sha\":376,\"./hash/utils\":383}],373:[function(t,e,r){\"use strict\";var n=t(\"./utils\"),i=t(\"minimalistic-assert\");function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}r.BlockHash=o,o.prototype.update=function(t,e){if(t=n.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=3,\"big\"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n}},{\"./utils\":383,\"minimalistic-assert\":437}],374:[function(t,e,r){\"use strict\";var n=t(\"./utils\"),i=t(\"minimalistic-assert\");function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,r))}e.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},o.prototype.update=function(t,e){return this.inner.update(t,e),this},o.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},{\"./utils\":383,\"minimalistic-assert\":437}],375:[function(t,e,r){\"use strict\";var n=t(\"./utils\"),i=t(\"./common\"),o=n.rotl32,a=n.sum32,s=n.sum32_3,u=n.sum32_4,c=i.BlockHash;function f(){if(!(this instanceof f))return new f;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian=\"little\"}function l(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function h(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}n.inherits(f,c),r.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],c=this.h[3],f=this.h[4],v=r,g=n,w=i,_=c,k=f,x=0;x<80;x++){var S=a(o(u(r,l(x,n,i,c),t[p[x]+e],h(x)),y[x]),f);r=f,f=c,c=o(i,10),i=n,n=S,S=a(o(u(v,l(79-x,g,w,_),t[m[x]+e],d(x)),b[x]),k),v=k,k=_,_=o(w,10),w=g,g=S}S=s(this.h[1],i,_),this.h[1]=s(this.h[2],c,k),this.h[2]=s(this.h[3],f,v),this.h[3]=s(this.h[4],r,g),this.h[4]=s(this.h[0],n,w),this.h[0]=S},f.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h,\"little\"):n.split32(this.h,\"little\")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},{\"./common\":373,\"./utils\":383}],376:[function(t,e,r){\"use strict\";r.sha1=t(\"./sha/1\"),r.sha224=t(\"./sha/224\"),r.sha256=t(\"./sha/256\"),r.sha384=t(\"./sha/384\"),r.sha512=t(\"./sha/512\")},{\"./sha/1\":377,\"./sha/224\":378,\"./sha/256\":379,\"./sha/384\":380,\"./sha/512\":381}],377:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../common\"),o=t(\"./common\"),a=n.rotl32,s=n.sum32,u=n.sum32_5,c=o.ft_1,f=i.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function h(){if(!(this instanceof h))return new h;f.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(h,f),e.exports=h,h.blockSize=512,h.outSize=160,h.hmacStrength=80,h.padLength=64,h.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=a(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],f=this.h[2],h=this.h[3],d=this.h[4];for(n=0;n<r.length;n++){var p=~~(n/20),m=u(a(i,5),c(p,o,f,h),d,r[n],l[p]);d=h,h=f,f=a(o,30),o=i,i=m}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],f),this.h[3]=s(this.h[3],h),this.h[4]=s(this.h[4],d)},h.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":373,\"../utils\":383,\"./common\":382}],378:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"./256\");function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(o,i),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h.slice(0,7),\"big\"):n.split32(this.h.slice(0,7),\"big\")}},{\"../utils\":383,\"./256\":379}],379:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../common\"),o=t(\"./common\"),a=t(\"minimalistic-assert\"),s=n.sum32,u=n.sum32_4,c=n.sum32_5,f=o.ch32,l=o.maj32,h=o.s0_256,d=o.s1_256,p=o.g0_256,m=o.g1_256,y=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}n.inherits(v,y),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=u(m(r[n-2]),r[n-7],p(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],y=this.h[2],b=this.h[3],v=this.h[4],g=this.h[5],w=this.h[6],_=this.h[7];for(a(this.k.length===r.length),n=0;n<r.length;n++){var k=c(_,d(v),f(v,g,w),this.k[n],r[n]),x=s(h(i),l(i,o,y));_=w,w=g,g=v,v=s(b,k),b=y,y=o,o=i,i=s(k,x)}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],y),this.h[3]=s(this.h[3],b),this.h[4]=s(this.h[4],v),this.h[5]=s(this.h[5],g),this.h[6]=s(this.h[6],w),this.h[7]=s(this.h[7],_)},v.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":373,\"../utils\":383,\"./common\":382,\"minimalistic-assert\":437}],380:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"./512\");function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(o,i),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h.slice(0,12),\"big\"):n.split32(this.h.slice(0,12),\"big\")}},{\"../utils\":383,\"./512\":381}],381:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../common\"),o=t(\"minimalistic-assert\"),a=n.rotr64_hi,s=n.rotr64_lo,u=n.shr64_hi,c=n.shr64_lo,f=n.sum64,l=n.sum64_hi,h=n.sum64_lo,d=n.sum64_4_hi,p=n.sum64_4_lo,m=n.sum64_5_hi,y=n.sum64_5_lo,b=i.BlockHash,v=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function g(){if(!(this instanceof g))return new g;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=v,this.W=new Array(160)}function w(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function _(t,e,r,n,i,o){var a=e&n^~e&o;return a<0&&(a+=4294967296),a}function k(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function x(t,e,r,n,i,o){var a=e&n^e&o^n&o;return a<0&&(a+=4294967296),a}function S(t,e){var r=a(t,e,28)^a(e,t,2)^a(e,t,7);return r<0&&(r+=4294967296),r}function O(t,e){var r=s(t,e,28)^s(e,t,2)^s(e,t,7);return r<0&&(r+=4294967296),r}function j(t,e){var r=a(t,e,14)^a(t,e,18)^a(e,t,9);return r<0&&(r+=4294967296),r}function E(t,e){var r=s(t,e,14)^s(t,e,18)^s(e,t,9);return r<0&&(r+=4294967296),r}function R(t,e){var r=a(t,e,1)^a(t,e,8)^u(t,e,7);return r<0&&(r+=4294967296),r}function T(t,e){var r=s(t,e,1)^s(t,e,8)^c(t,e,7);return r<0&&(r+=4294967296),r}function C(t,e){var r=a(t,e,19)^a(e,t,29)^u(t,e,6);return r<0&&(r+=4294967296),r}function P(t,e){var r=s(t,e,19)^s(e,t,29)^c(t,e,6);return r<0&&(r+=4294967296),r}n.inherits(g,b),e.exports=g,g.blockSize=1024,g.outSize=512,g.hmacStrength=192,g.padLength=128,g.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=C(r[n-4],r[n-3]),o=P(r[n-4],r[n-3]),a=r[n-14],s=r[n-13],u=R(r[n-30],r[n-29]),c=T(r[n-30],r[n-29]),f=r[n-32],l=r[n-31];r[n]=d(i,o,a,s,u,c,f,l),r[n+1]=p(i,o,a,s,u,c,f,l)}},g.prototype._update=function(t,e){this._prepareBlock(t,e);var r=this.W,n=this.h[0],i=this.h[1],a=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],d=this.h[6],p=this.h[7],b=this.h[8],v=this.h[9],g=this.h[10],R=this.h[11],T=this.h[12],C=this.h[13],P=this.h[14],M=this.h[15];o(this.k.length===r.length);for(var A=0;A<r.length;A+=2){var I=P,N=M,D=j(b,v),B=E(b,v),F=w(b,v,g,R,T),L=_(b,v,g,R,T,C),z=this.k[A],U=this.k[A+1],H=r[A],V=r[A+1],q=m(I,N,D,B,F,L,z,U,H,V),W=y(I,N,D,B,F,L,z,U,H,V);I=S(n,i),N=O(n,i),D=k(n,i,a,s,u),B=x(n,i,a,s,u,c);var $=l(I,N,D,B),X=h(I,N,D,B);P=T,M=C,T=g,C=R,g=b,R=v,b=l(d,p,q,W),v=h(p,p,q,W),d=u,p=c,u=a,c=s,a=n,s=i,n=l(q,W,$,X),i=h(q,W,$,X)}f(this.h,0,n,i),f(this.h,2,a,s),f(this.h,4,u,c),f(this.h,6,d,p),f(this.h,8,b,v),f(this.h,10,g,R),f(this.h,12,T,C),f(this.h,14,P,M)},g.prototype._digest=function(t){return\"hex\"===t?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":373,\"../utils\":383,\"minimalistic-assert\":437}],382:[function(t,e,r){\"use strict\";var n=t(\"../utils\").rotr32;function i(t,e,r){return t&e^~t&r}function o(t,e,r){return t&e^t&r^e&r}function a(t,e,r){return t^e^r}r.ft_1=function(t,e,r,n){return 0===t?i(e,r,n):1===t||3===t?a(e,r,n):2===t?o(e,r,n):void 0},r.ch32=i,r.maj32=o,r.p32=a,r.s0_256=function(t){return n(t,2)^n(t,13)^n(t,22)},r.s1_256=function(t){return n(t,6)^n(t,11)^n(t,25)},r.g0_256=function(t){return n(t,7)^n(t,18)^t>>>3},r.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},{\"../utils\":383}],383:[function(t,e,r){\"use strict\";var n=t(\"minimalistic-assert\"),i=t(\"inherits\");function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function a(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?\"0\"+t:t}function u(t){return 7===t.length?\"0\"+t:6===t.length?\"00\"+t:5===t.length?\"000\"+t:4===t.length?\"0000\"+t:3===t.length?\"00000\"+t:2===t.length?\"000000\"+t:1===t.length?\"0000000\"+t:t}r.inherits=i,r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(\"string\"==typeof t)if(e){if(\"hex\"===e)for((t=t.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(t=\"0\"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var a=t.charCodeAt(i);a<128?r[n++]=a:a<2048?(r[n++]=a>>6|192,r[n++]=63&a|128):o(t,i)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i<t.length;i++)r[i]=0|t[i];return r},r.toHex=function(t){for(var e=\"\",r=0;r<t.length;r++)e+=s(t[r].toString(16));return e},r.htonl=a,r.toHex32=function(t,e){for(var r=\"\",n=0;n<t.length;n++){var i=t[n];\"little\"===e&&(i=a(i)),r+=u(i.toString(16))}return r},r.zero2=s,r.zero8=u,r.join32=function(t,e,r,i){var o=r-e;n(o%4==0);for(var a=new Array(o/4),s=0,u=e;s<a.length;s++,u+=4){var c;c=\"big\"===i?t[u]<<24|t[u+1]<<16|t[u+2]<<8|t[u+3]:t[u+3]<<24|t[u+2]<<16|t[u+1]<<8|t[u],a[s]=c>>>0}return a},r.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];\"big\"===e?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},r.rotr32=function(t,e){return t>>>e|t<<32-e},r.rotl32=function(t,e){return t<<e|t>>>32-e},r.sum32=function(t,e){return t+e>>>0},r.sum32_3=function(t,e,r){return t+e+r>>>0},r.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},r.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},r.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,a=(o<n?1:0)+r+i;t[e]=a>>>0,t[e+1]=o},r.sum64_hi=function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},r.sum64_lo=function(t,e,r,n){return e+n>>>0},r.sum64_4_hi=function(t,e,r,n,i,o,a,s){var u=0,c=e;return u+=(c=c+n>>>0)<e?1:0,u+=(c=c+o>>>0)<o?1:0,t+r+i+a+(u+=(c=c+s>>>0)<s?1:0)>>>0},r.sum64_4_lo=function(t,e,r,n,i,o,a,s){return e+n+o+s>>>0},r.sum64_5_hi=function(t,e,r,n,i,o,a,s,u,c){var f=0,l=e;return f+=(l=l+n>>>0)<e?1:0,f+=(l=l+o>>>0)<o?1:0,f+=(l=l+s>>>0)<s?1:0,t+r+i+a+u+(f+=(l=l+c>>>0)<c?1:0)>>>0},r.sum64_5_lo=function(t,e,r,n,i,o,a,s,u,c){return e+n+o+s+c>>>0},r.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},r.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},r.shr64_hi=function(t,e,r){return t>>>r},r.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},{inherits:387,\"minimalistic-assert\":437}],384:[function(t,e,r){\"use strict\";var n=t(\"hash.js\"),i=t(\"minimalistic-crypto-utils\"),o=t(\"minimalistic-assert\");function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||\"hex\"),r=i.toArray(t.nonce,t.nonceEnc||\"hex\"),n=i.toArray(t.pers,t.persEnc||\"hex\");o(e.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(e,r,n)}e.exports=a,a.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},a.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},a.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},a.prototype.reseed=function(t,e,r,n){\"string\"!=typeof e&&(n=r,r=e,e=null),t=i.toArray(t,e),r=i.toArray(r,n),o(t.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(t.concat(r||[])),this._reseed=1},a.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error(\"Reseed is required\");\"string\"!=typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||\"hex\"),this._update(r));for(var o=[];o.length<t;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var a=o.slice(0,t);return this._update(r),this._reseed++,i.encode(a,e)}},{\"hash.js\":372,\"minimalistic-assert\":437,\"minimalistic-crypto-utils\":438}],385:[function(t,e,r){\"use strict\";r.read=function(t,e,r,n,i){var o,a,s=8*i-n-1,u=(1<<s)-1,c=u>>1,f=-7,l=r?i-1:0,h=r?-1:1,d=t[e+l];for(l+=h,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=h,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+t[e+l],l+=h,f-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=c}return(d?-1:1)*a*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var a,s,u,c=8*o-i-1,f=(1<<c)-1,l=f>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+l>=1?h/u:h*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;t[r+d]=255&a,d+=p,a/=256,c-=8);t[r+d-p]|=128*m}},{}],386:[function(t,e,r){(function(t){\"use strict\";var r,n,i=t.MutationObserver||t.WebKitMutationObserver;if(i){var o=0,a=new i(f),s=t.document.createTextNode(\"\");a.observe(s,{characterData:!0}),r=function(){s.data=o=++o%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){f(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(f,0)};else{var u=new t.MessageChannel;u.port1.onmessage=f,r=function(){u.port2.postMessage(0)}}var c=[];function f(){var t,e;n=!0;for(var r=c.length;r;){for(e=c,c=[],t=-1;++t<r;)e[t]();r=c.length}n=!1}e.exports=function(t){1!==c.push(t)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],387:[function(t,e,r){\"use strict\";\"function\"==typeof Object.create?e.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},{}],388:[function(t,e,r){\"use strict\";\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */function n(t){return!!t.constructor&&\"function\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}e.exports=function(t){return null!=t&&(n(t)||function(t){return\"function\"==typeof t.readFloatLE&&\"function\"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],389:[function(t,e,r){\"use strict\";var n={}.toString;e.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},{}],390:[function(t,e,r){\"use strict\";var n=t(\"./utils\"),i=t(\"./support\"),o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(t){for(var e,r,i,a,s,u,c,f=[],l=0,h=t.length,d=h,p=\"string\"!==n.getTypeOf(t);l<t.length;)d=h-l,p?(e=t[l++],r=l<h?t[l++]:0,i=l<h?t[l++]:0):(e=t.charCodeAt(l++),r=l<h?t.charCodeAt(l++):0,i=l<h?t.charCodeAt(l++):0),a=e>>2,s=(3&e)<<4|r>>4,u=d>1?(15&r)<<2|i>>6:64,c=d>2?63&i:64,f.push(o.charAt(a)+o.charAt(s)+o.charAt(u)+o.charAt(c));return f.join(\"\")},r.decode=function(t){var e,r,n,a,s,u,c=0,f=0;if(\"data:\"===t.substr(0,\"data:\".length))throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,h=3*(t=t.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(t.charAt(t.length-1)===o.charAt(64)&&h--,t.charAt(t.length-2)===o.charAt(64)&&h--,h%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=i.uint8array?new Uint8Array(0|h):new Array(0|h);c<t.length;)e=o.indexOf(t.charAt(c++))<<2|(a=o.indexOf(t.charAt(c++)))>>4,r=(15&a)<<4|(s=o.indexOf(t.charAt(c++)))>>2,n=(3&s)<<6|(u=o.indexOf(t.charAt(c++))),l[f++]=e,64!==s&&(l[f++]=r),64!==u&&(l[f++]=n);return l}},{\"./support\":419,\"./utils\":421}],391:[function(t,e,r){\"use strict\";var n=t(\"./external\"),i=t(\"./stream/DataWorker\"),o=t(\"./stream/DataLengthProbe\"),a=t(\"./stream/Crc32Probe\");o=t(\"./stream/DataLengthProbe\");function s(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}s.prototype={getContentWorker:function(){var t=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o(\"data_length\")),e=this;return t.on(\"end\",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")})),t},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},s.createWorkerFrom=function(t,e,r){return t.pipe(new a).pipe(new o(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new o(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=s},{\"./external\":395,\"./stream/Crc32Probe\":414,\"./stream/DataLengthProbe\":415,\"./stream/DataWorker\":416}],392:[function(t,e,r){\"use strict\";var n=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":396,\"./stream/GenericWorker\":417}],393:[function(t,e,r){\"use strict\";var n=t(\"./utils\");var i=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==n.getTypeOf(t)?function(t,e,r,n){var o=i,a=n+r;t^=-1;for(var s=n;s<a;s++)t=t>>>8^o[255&(t^e[s])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var o=i,a=n+r;t^=-1;for(var s=n;s<a;s++)t=t>>>8^o[255&(t^e.charCodeAt(s))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":421}],394:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],395:[function(t,e,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:n}},{lie:425}],396:[function(t,e,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=t(\"pako\"),o=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),s=n?\"uint8array\":\"array\";function u(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",o.inherits(u,a),u.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(o.transformTo(s,t.data),!1)},u.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(t){return new u(\"Deflate\",t)},r.uncompressWorker=function(){return new u(\"Inflate\",{})}},{\"./stream/GenericWorker\":417,\"./utils\":421,pako:439}],397:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../stream/GenericWorker\"),o=t(\"../utf8\"),a=t(\"../crc32\"),s=t(\"../signature\"),u=function(t,e){var r,n=\"\";for(r=0;r<e;r++)n+=String.fromCharCode(255&t),t>>>=8;return n},c=function(t,e,r,i,c,f){var l,h,d=t.file,p=t.compression,m=f!==o.utf8encode,y=n.transformTo(\"string\",f(d.name)),b=n.transformTo(\"string\",o.utf8encode(d.name)),v=d.comment,g=n.transformTo(\"string\",f(v)),w=n.transformTo(\"string\",o.utf8encode(v)),_=b.length!==d.name.length,k=w.length!==v.length,x=\"\",S=\"\",O=\"\",j=d.dir,E=d.date,R={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(R.crc32=t.crc32,R.compressedSize=t.compressedSize,R.uncompressedSize=t.uncompressedSize);var T=0;e&&(T|=8),m||!_&&!k||(T|=2048);var C,P,M,A=0,I=0;j&&(A|=16),\"UNIX\"===c?(I=798,A|=(C=d.unixPermissions,P=j,M=C,C||(M=P?16893:33204),(65535&M)<<16)):(I=20,A|=63&(d.dosPermissions||0)),l=E.getUTCHours(),l<<=6,l|=E.getUTCMinutes(),l<<=5,l|=E.getUTCSeconds()/2,h=E.getUTCFullYear()-1980,h<<=4,h|=E.getUTCMonth()+1,h<<=5,h|=E.getUTCDate(),_&&(S=u(1,1)+u(a(y),4)+b,x+=\"up\"+u(S.length,2)+S),k&&(O=u(1,1)+u(a(g),4)+w,x+=\"uc\"+u(O.length,2)+O);var N=\"\";return N+=\"\\n\\0\",N+=u(T,2),N+=p.magic,N+=u(l,2),N+=u(h,2),N+=u(R.crc32,4),N+=u(R.compressedSize,4),N+=u(R.uncompressedSize,4),N+=u(y.length,2),N+=u(x.length,2),{fileRecord:s.LOCAL_FILE_HEADER+N+y+x,dirRecord:s.CENTRAL_FILE_HEADER+u(I,2)+N+u(g.length,2)+\"\\0\\0\\0\\0\"+u(A,4)+u(i,4)+y+x+g}},f=function(t){return s.DATA_DESCRIPTOR+u(t.crc32,4)+u(t.compressedSize,4)+u(t.uncompressedSize,4)};function l(t,e,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}n.inherits(l,i),l.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,i.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},l.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=c(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=c(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:f(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var r=this.bytesWritten-t,i=function(t,e,r,i,o){var a=n.transformTo(\"string\",o(i));return s.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+u(t,2)+u(t,2)+u(e,4)+u(r,4)+u(a.length,2)+a}(this.dirRecords.length,r,t,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},l.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},l.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on(\"data\",(function(t){e.processChunk(t)})),t.on(\"end\",(function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()})),t.on(\"error\",(function(t){e.error(t)})),this},l.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},l.prototype.error=function(t){var e=this._sources;if(!i.prototype.error.call(this,t))return!1;for(var r=0;r<e.length;r++)try{e[r].error(t)}catch(t){}return!0},l.prototype.lock=function(){i.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=l},{\"../crc32\":393,\"../signature\":412,\"../stream/GenericWorker\":417,\"../utf8\":420,\"../utils\":421}],398:[function(t,e,r){\"use strict\";var n=t(\"../compressions\"),i=t(\"./ZipFileWorker\");r.generateWorker=function(t,e,r){var o=new i(e.streamFiles,r,e.platform,e.encodeFileName),a=0;try{t.forEach((function(t,r){a++;var i=function(t,e){var r=t||e,i=n[r];if(!i)throw new Error(r+\" is not a valid compression method !\");return i}(r.options.compression,e.compression),s=r.options.compressionOptions||e.compressionOptions||{},u=r.dir,c=r.date;r._compressWorker(i,s).withStreamInfo(\"file\",{name:t,dir:u,date:c,comment:r.comment||\"\",unixPermissions:r.unixPermissions,dosPermissions:r.dosPermissions}).pipe(o)})),o.entriesCount=a}catch(t){o.error(t)}return o}},{\"../compressions\":392,\"./ZipFileWorker\":397}],399:[function(t,e,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files={},this.comment=null,this.root=\"\",this.clone=function(){var t=new n;for(var e in this)\"function\"!=typeof this[e]&&(t[e]=this[e]);return t}}n.prototype=t(\"./object\"),n.prototype.loadAsync=t(\"./load\"),n.support=t(\"./support\"),n.defaults=t(\"./defaults\"),n.version=\"3.5.0\",n.loadAsync=function(t,e){return(new n).loadAsync(t,e)},n.external=t(\"./external\"),e.exports=n},{\"./defaults\":394,\"./external\":395,\"./load\":400,\"./object\":404,\"./support\":419}],400:[function(t,e,r){\"use strict\";var n=t(\"./utils\"),i=t(\"./external\"),o=t(\"./utf8\"),a=(n=t(\"./utils\"),t(\"./zipEntries\")),s=t(\"./stream/Crc32Probe\"),u=t(\"./nodejsUtils\");function c(t){return new i.Promise((function(e,r){var n=t.decompressed.getContentWorker().pipe(new s);n.on(\"error\",(function(t){r(t)})).on(\"end\",(function(){n.streamInfo.crc32!==t.decompressed.crc32?r(new Error(\"Corrupted zip : CRC32 mismatch\")):e()})).resume()}))}e.exports=function(t,e){var r=this;return e=n.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),u.isNode&&u.isStream(t)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):n.prepareContent(\"the loaded zip file\",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var r=new a(e);return r.load(t),r})).then((function(t){var r=[i.Promise.resolve(t)],n=t.files;if(e.checkCRC32)for(var o=0;o<n.length;o++)r.push(c(n[o]));return i.Promise.all(r)})).then((function(t){for(var n=t.shift(),i=n.files,o=0;o<i.length;o++){var a=i[o];r.file(a.fileNameStr,a.decompressed,{binary:!0,optimizedBinaryString:!0,date:a.date,dir:a.dir,comment:a.fileCommentStr.length?a.fileCommentStr:null,unixPermissions:a.unixPermissions,dosPermissions:a.dosPermissions,createFolders:e.createFolders})}return n.zipComment.length&&(r.comment=n.zipComment),r}))}},{\"./external\":395,\"./nodejsUtils\":403,\"./stream/Crc32Probe\":414,\"./utf8\":420,\"./utils\":421,\"./zipEntries\":422}],401:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../stream/GenericWorker\");function o(t,e){i.call(this,\"Nodejs stream input adapter for \"+t),this._upstreamEnded=!1,this._bindStream(e)}n.inherits(o,i),o.prototype._bindStream=function(t){var e=this;this._stream=t,t.pause(),t.on(\"data\",(function(t){e.push({data:t,meta:{percent:0}})})).on(\"error\",(function(t){e.isPaused?this.generatedError=t:e.error(t)})).on(\"end\",(function(){e.isPaused?e._upstreamEnded=!0:e.end()}))},o.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},o.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=o},{\"../stream/GenericWorker\":417,\"../utils\":421}],402:[function(t,e,r){\"use strict\";var n=t(\"readable-stream\").Readable;function i(t,e,r){n.call(this,e),this._helper=t;var i=this;t.on(\"data\",(function(t,e){i.push(t)||i._helper.pause(),r&&r(e)})).on(\"error\",(function(t){i.emit(\"error\",t)})).on(\"end\",(function(){i.push(null)}))}t(\"../utils\").inherits(i,n),i.prototype._read=function(){this._helper.resume()},e.exports=i},{\"../utils\":421,\"readable-stream\":405}],403:[function(t,e,r){(function(t){\"use strict\";e.exports={isNode:void 0!==t,newBufferFrom:function(e,r){if(t.from&&t.from!==Uint8Array.from)return t.from(e,r);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new t(e,r)},allocBuffer:function(e){if(t.alloc)return t.alloc(e);var r=new t(e);return r.fill(0),r},isBuffer:function(e){return t.isBuffer(e)},isStream:function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.pause&&\"function\"==typeof t.resume}}}).call(this,t(\"buffer\").Buffer)},{buffer:216}],404:[function(t,e,r){\"use strict\";var n=t(\"./utf8\"),i=t(\"./utils\"),o=t(\"./stream/GenericWorker\"),a=t(\"./stream/StreamHelper\"),s=t(\"./defaults\"),u=t(\"./compressedObject\"),c=t(\"./zipObject\"),f=t(\"./generate\"),l=t(\"./nodejsUtils\"),h=t(\"./nodejs/NodejsStreamInputAdapter\"),d=function(t,e,r){var n,a=i.getTypeOf(e),f=i.extend(r||{},s);f.date=f.date||new Date,null!==f.compression&&(f.compression=f.compression.toUpperCase()),\"string\"==typeof f.unixPermissions&&(f.unixPermissions=parseInt(f.unixPermissions,8)),f.unixPermissions&&16384&f.unixPermissions&&(f.dir=!0),f.dosPermissions&&16&f.dosPermissions&&(f.dir=!0),f.dir&&(t=m(t)),f.createFolders&&(n=p(t))&&y.call(this,n,!0);var d=\"string\"===a&&!1===f.binary&&!1===f.base64;r&&void 0!==r.binary||(f.binary=!d),(e instanceof u&&0===e.uncompressedSize||f.dir||!e||0===e.length)&&(f.base64=!1,f.binary=!0,e=\"\",f.compression=\"STORE\",a=\"string\");var b=null;b=e instanceof u||e instanceof o?e:l.isNode&&l.isStream(e)?new h(t,e):i.prepareContent(t,e,f.binary,f.optimizedBinaryString,f.base64);var v=new c(t,b,f);this.files[t]=v},p=function(t){\"/\"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf(\"/\");return e>0?t.substring(0,e):\"\"},m=function(t){return\"/\"!==t.slice(-1)&&(t+=\"/\"),t},y=function(t,e){return e=void 0!==e?e:s.createFolders,t=m(t),this.files[t]||d.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function b(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)}var v={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(t){var e,r,n;for(e in this.files)this.files.hasOwnProperty(e)&&(n=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,n))},filter:function(t){var e=[];return this.forEach((function(r,n){t(r,n)&&e.push(n)})),e},file:function(t,e,r){if(1===arguments.length){if(b(t)){var n=t;return this.filter((function(t,e){return!e.dir&&n.test(t)}))}var i=this.files[this.root+t];return i&&!i.dir?i:null}return t=this.root+t,d.call(this,t,e,r),this},folder:function(t){if(!t)return this;if(b(t))return this.filter((function(e,r){return r.dir&&t.test(e)}));var e=this.root+t,r=y.call(this,e),n=this.clone();return n.root=r.name,n},remove:function(t){t=this.root+t;var e=this.files[t];if(e||(\"/\"!==t.slice(-1)&&(t+=\"/\"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var r=this.filter((function(e,r){return r.name.slice(0,t.length)===t})),n=0;n<r.length;n++)delete this.files[r[n].name];return this},generate:function(t){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(t){var e,r={};try{if((r=i.extend(t||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:n.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");i.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var s=r.comment||this.comment||\"\";e=f.generateWorker(this,r,s)}catch(t){(e=new o(\"error\")).error(t)}return new a(e,r.type||\"string\",r.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type=\"nodebuffer\"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=v},{\"./compressedObject\":391,\"./defaults\":394,\"./generate\":398,\"./nodejs/NodejsStreamInputAdapter\":401,\"./nodejsUtils\":403,\"./stream/GenericWorker\":417,\"./stream/StreamHelper\":418,\"./utf8\":420,\"./utils\":421,\"./zipObject\":424}],405:[function(t,e,r){\"use strict\";e.exports=t(\"stream\")},{stream:506}],406:[function(t,e,r){\"use strict\";var n=t(\"./DataReader\");function i(t){n.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t(\"../utils\").inherits(i,n),i.prototype.byteAt=function(t){return this.data[this.zero+t]},i.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),o=this.length-4;o>=0;--o)if(this.data[o]===e&&this.data[o+1]===r&&this.data[o+2]===n&&this.data[o+3]===i)return o-this.zero;return-1},i.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),o=this.readData(4);return e===o[0]&&r===o[1]&&n===o[2]&&i===o[3]},i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{\"../utils\":421,\"./DataReader\":407}],407:[function(t,e,r){\"use strict\";var n=t(\"../utils\");function i(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+t+\"). Corrupted zip ?\")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return n.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=i},{\"../utils\":421}],408:[function(t,e,r){\"use strict\";var n=t(\"./Uint8ArrayReader\");function i(t){n.call(this,t)}t(\"../utils\").inherits(i,n),i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{\"../utils\":421,\"./Uint8ArrayReader\":410}],409:[function(t,e,r){\"use strict\";var n=t(\"./DataReader\");function i(t){n.call(this,t)}t(\"../utils\").inherits(i,n),i.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},i.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},i.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{\"../utils\":421,\"./DataReader\":407}],410:[function(t,e,r){\"use strict\";var n=t(\"./ArrayReader\");function i(t){n.call(this,t)}t(\"../utils\").inherits(i,n),i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{\"../utils\":421,\"./ArrayReader\":406}],411:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"../support\"),o=t(\"./ArrayReader\"),a=t(\"./StringReader\"),s=t(\"./NodeBufferReader\"),u=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=n.getTypeOf(t);return n.checkSupport(e),\"string\"!==e||i.uint8array?\"nodebuffer\"===e?new s(t):i.uint8array?new u(n.transformTo(\"uint8array\",t)):new o(n.transformTo(\"array\",t)):new a(t)}},{\"../support\":419,\"../utils\":421,\"./ArrayReader\":406,\"./NodeBufferReader\":408,\"./StringReader\":409,\"./Uint8ArrayReader\":410}],412:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\\x03\\x04\",r.CENTRAL_FILE_HEADER=\"PK\\x01\\x02\",r.CENTRAL_DIRECTORY_END=\"PK\\x05\\x06\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\\x06\\x07\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\\x06\\x06\",r.DATA_DESCRIPTOR=\"PK\\x07\\b\"},{}],413:[function(t,e,r){\"use strict\";var n=t(\"./GenericWorker\"),i=t(\"../utils\");function o(t){n.call(this,\"ConvertWorker to \"+t),this.destType=t}i.inherits(o,n),o.prototype.processChunk=function(t){this.push({data:i.transformTo(this.destType,t.data),meta:t.meta})},e.exports=o},{\"../utils\":421,\"./GenericWorker\":417}],414:[function(t,e,r){\"use strict\";var n=t(\"./GenericWorker\"),i=t(\"../crc32\");function o(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(o,n),o.prototype.processChunk=function(t){this.streamInfo.crc32=i(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=o},{\"../crc32\":393,\"../utils\":421,\"./GenericWorker\":417}],415:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"./GenericWorker\");function o(t){i.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}n.inherits(o,i),o.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}i.prototype.processChunk.call(this,t)},e.exports=o},{\"../utils\":421,\"./GenericWorker\":417}],416:[function(t,e,r){\"use strict\";var n=t(\"../utils\"),i=t(\"./GenericWorker\");function o(t){i.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then((function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=n.getTypeOf(t),e.isPaused||e._tickAndRepeat()}),(function(t){e.error(t)}))}n.inherits(o,i),o.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=o},{\"../utils\":421,\"./GenericWorker\":417}],417:[function(t,e,r){\"use strict\";function n(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r<this._listeners[t].length;r++)this._listeners[t][r].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on(\"data\",(function(t){e.processChunk(t)})),t.on(\"end\",(function(){e.end()})),t.on(\"error\",(function(t){e.error(t)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var t=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+t:t}},e.exports=n},{}],418:[function(t,e,r){(function(r){\"use strict\";var n=t(\"../utils\"),i=t(\"./ConvertWorker\"),o=t(\"./GenericWorker\"),a=t(\"../base64\"),s=t(\"../support\"),u=t(\"../external\"),c=null;if(s.nodestream)try{c=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function f(t,e){return new u.Promise((function(i,o){var s=[],u=t._internalType,c=t._outputType,f=t._mimeType;t.on(\"data\",(function(t,r){s.push(t),e&&e(r)})).on(\"error\",(function(t){s=[],o(t)})).on(\"end\",(function(){try{var t=function(t,e,r){switch(t){case\"blob\":return n.newBlob(n.transformTo(\"arraybuffer\",e),r);case\"base64\":return a.encode(e);default:return n.transformTo(t,e)}}(c,function(t,e){var n,i=0,o=null,a=0;for(n=0;n<e.length;n++)a+=e[n].length;switch(t){case\"string\":return e.join(\"\");case\"array\":return Array.prototype.concat.apply([],e);case\"uint8array\":for(o=new Uint8Array(a),n=0;n<e.length;n++)o.set(e[n],i),i+=e[n].length;return o;case\"nodebuffer\":return r.concat(e);default:throw new Error(\"concat : unsupported type '\"+t+\"'\")}}(u,s),f);i(t)}catch(t){o(t)}s=[]})).resume()}))}function l(t,e,r){var a=e;switch(e){case\"blob\":case\"arraybuffer\":a=\"uint8array\";break;case\"base64\":a=\"string\"}try{this._internalType=a,this._outputType=e,this._mimeType=r,n.checkSupport(a),this._worker=t.pipe(new i(a)),t.lock()}catch(t){this._worker=new o(\"error\"),this._worker.error(t)}}l.prototype={accumulate:function(t){return f(this,t)},on:function(t,e){var r=this;return\"data\"===t?this._worker.on(t,(function(t){e.call(r,t.data,t.meta)})):this._worker.on(t,(function(){n.delay(e,arguments,r)})),this},resume:function(){return n.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(n.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new c(this,{objectMode:\"nodebuffer\"!==this._outputType},t)}},e.exports=l}).call(this,t(\"buffer\").Buffer)},{\"../base64\":390,\"../external\":395,\"../nodejs/NodejsStreamOutputAdapter\":402,\"../support\":419,\"../utils\":421,\"./ConvertWorker\":413,\"./GenericWorker\":417,buffer:216}],419:[function(t,e,r){(function(e){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=void 0!==e,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(t){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(t){r.blob=!1}}}try{r.nodestream=!!t(\"readable-stream\").Readable}catch(t){r.nodestream=!1}}).call(this,t(\"buffer\").Buffer)},{buffer:216,\"readable-stream\":405}],420:[function(t,e,r){\"use strict\";for(var n=t(\"./utils\"),i=t(\"./support\"),o=t(\"./nodejsUtils\"),a=t(\"./stream/GenericWorker\"),s=new Array(256),u=0;u<256;u++)s[u]=u>=252?6:u>=248?5:u>=240?4:u>=224?3:u>=192?2:1;s[254]=s[254]=1;function c(){a.call(this,\"utf-8 decode\"),this.leftOver=null}function f(){a.call(this,\"utf-8 encode\")}r.utf8encode=function(t){return i.nodebuffer?o.newBufferFrom(t,\"utf-8\"):function(t){var e,r,n,o,a,s=t.length,u=0;for(o=0;o<s;o++)55296==(64512&(r=t.charCodeAt(o)))&&o+1<s&&56320==(64512&(n=t.charCodeAt(o+1)))&&(r=65536+(r-55296<<10)+(n-56320),o++),u+=r<128?1:r<2048?2:r<65536?3:4;for(e=i.uint8array?new Uint8Array(u):new Array(u),a=0,o=0;a<u;o++)55296==(64512&(r=t.charCodeAt(o)))&&o+1<s&&56320==(64512&(n=t.charCodeAt(o+1)))&&(r=65536+(r-55296<<10)+(n-56320),o++),r<128?e[a++]=r:r<2048?(e[a++]=192|r>>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e}(t)},r.utf8decode=function(t){return i.nodebuffer?n.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,o,a=t.length,u=new Array(2*a);for(r=0,e=0;e<a;)if((i=t[e++])<128)u[r++]=i;else if((o=s[i])>4)u[r++]=65533,e+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&e<a;)i=i<<6|63&t[e++],o--;o>1?u[r++]=65533:i<65536?u[r++]=i:(i-=65536,u[r++]=55296|i>>10&1023,u[r++]=56320|1023&i)}return u.length!==r&&(u.subarray?u=u.subarray(0,r):u.length=r),n.applyFromCharCode(u)}(t=n.transformTo(i.uint8array?\"uint8array\":\"array\",t))},n.inherits(c,a),c.prototype.processChunk=function(t){var e=n.transformTo(i.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var o=e;(e=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),e.set(o,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var a=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+s[t[r]]>e?r:e}(e),u=e;a!==e.length&&(i.uint8array?(u=e.subarray(0,a),this.leftOver=e.subarray(a,e.length)):(u=e.slice(0,a),this.leftOver=e.slice(a,e.length))),this.push({data:r.utf8decode(u),meta:t.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=c,n.inherits(f,a),f.prototype.processChunk=function(t){this.push({data:r.utf8encode(t.data),meta:t.meta})},r.Utf8EncodeWorker=f},{\"./nodejsUtils\":403,\"./stream/GenericWorker\":417,\"./support\":419,\"./utils\":421}],421:[function(t,e,r){\"use strict\";var n=t(\"./support\"),i=t(\"./base64\"),o=t(\"./nodejsUtils\"),a=t(\"set-immediate-shim\"),s=t(\"./external\");function u(t){return t}function c(t,e){for(var r=0;r<t.length;++r)e[r]=255&t.charCodeAt(r);return e}r.newBlob=function(t,e){r.checkSupport(\"blob\");try{return new Blob([t],{type:e})}catch(r){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(e)}catch(t){throw new Error(\"Bug : can't construct the Blob.\")}}};var f={stringifyByChunk:function(t,e,r){var n=[],i=0,o=t.length;if(o<=r)return String.fromCharCode.apply(null,t);for(;i<o;)\"array\"===e||\"nodebuffer\"===e?n.push(String.fromCharCode.apply(null,t.slice(i,Math.min(i+r,o)))):n.push(String.fromCharCode.apply(null,t.subarray(i,Math.min(i+r,o)))),i+=r;return n.join(\"\")},stringifyByChar:function(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},applyCanBeUsed:{uint8array:function(){try{return n.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return n.nodebuffer&&1===String.fromCharCode.apply(null,o.allocBuffer(1)).length}catch(t){return!1}}()}};function l(t){var e=65536,n=r.getTypeOf(t),i=!0;if(\"uint8array\"===n?i=f.applyCanBeUsed.uint8array:\"nodebuffer\"===n&&(i=f.applyCanBeUsed.nodebuffer),i)for(;e>1;)try{return f.stringifyByChunk(t,n,e)}catch(t){e=Math.floor(e/2)}return f.stringifyByChar(t)}function h(t,e){for(var r=0;r<t.length;r++)e[r]=t[r];return e}r.applyFromCharCode=l;var d={};d.string={string:u,array:function(t){return c(t,new Array(t.length))},arraybuffer:function(t){return d.string.uint8array(t).buffer},uint8array:function(t){return c(t,new Uint8Array(t.length))},nodebuffer:function(t){return c(t,o.allocBuffer(t.length))}},d.array={string:l,array:u,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return o.newBufferFrom(t)}},d.arraybuffer={string:function(t){return l(new Uint8Array(t))},array:function(t){return h(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:u,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return o.newBufferFrom(new Uint8Array(t))}},d.uint8array={string:l,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:u,nodebuffer:function(t){return o.newBufferFrom(t)}},d.nodebuffer={string:l,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return d.nodebuffer.uint8array(t).buffer},uint8array:function(t){return h(t,new Uint8Array(t.length))},nodebuffer:u},r.transformTo=function(t,e){if(e||(e=\"\"),!t)return e;r.checkSupport(t);var n=r.getTypeOf(e);return d[n][t](e)},r.getTypeOf=function(t){return\"string\"==typeof t?\"string\":\"[object Array]\"===Object.prototype.toString.call(t)?\"array\":n.nodebuffer&&o.isBuffer(t)?\"nodebuffer\":n.uint8array&&t instanceof Uint8Array?\"uint8array\":n.arraybuffer&&t instanceof ArrayBuffer?\"arraybuffer\":void 0},r.checkSupport=function(t){if(!n[t.toLowerCase()])throw new Error(t+\" is not supported by this platform\")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(t){var e,r,n=\"\";for(r=0;r<(t||\"\").length;r++)n+=\"\\\\x\"+((e=t.charCodeAt(r))<16?\"0\":\"\")+e.toString(16).toUpperCase();return n},r.delay=function(t,e,r){a((function(){t.apply(r||null,e||[])}))},r.inherits=function(t,e){var r=function(){};r.prototype=e.prototype,t.prototype=new r},r.extend=function(){var t,e,r={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&void 0===r[e]&&(r[e]=arguments[t][e]);return r},r.prepareContent=function(t,e,o,a,u){return s.Promise.resolve(e).then((function(t){return n.blob&&(t instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(t)))&&\"undefined\"!=typeof FileReader?new s.Promise((function(e,r){var n=new FileReader;n.onload=function(t){e(t.target.result)},n.onerror=function(t){r(t.target.error)},n.readAsArrayBuffer(t)})):t})).then((function(e){var f,l=r.getTypeOf(e);return l?(\"arraybuffer\"===l?e=r.transformTo(\"uint8array\",e):\"string\"===l&&(u?e=i.decode(e):o&&!0!==a&&(e=c(f=e,n.uint8array?new Uint8Array(f.length):new Array(f.length)))),e):s.Promise.reject(new Error(\"Can't read the data of '\"+t+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))}))}},{\"./base64\":390,\"./external\":395,\"./nodejsUtils\":403,\"./support\":419,\"set-immediate-shim\":497}],422:[function(t,e,r){\"use strict\";var n=t(\"./reader/readerFor\"),i=t(\"./utils\"),o=t(\"./signature\"),a=t(\"./zipEntry\"),s=(t(\"./utf8\"),t(\"./support\"));function u(t){this.files=[],this.loadOptions=t}u.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(e)+\", expected \"+i.pretty(t)+\")\")}},isSignature:function(t,e){var r=this.reader.index;this.reader.setIndex(t);var n=this.reader.readString(4)===e;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=s.uint8array?\"uint8array\":\"array\",r=i.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,r,n=this.zip64EndOfCentralSize-44;0<n;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(o.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);if(t<0)throw!this.isSignature(0,o.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(t);var e=t;if(this.checkSignature(o.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(t),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,o.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=e-r;if(n>0)this.isSignature(e,o.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(t){this.reader=n(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=u},{\"./reader/readerFor\":411,\"./signature\":412,\"./support\":419,\"./utf8\":420,\"./utils\":421,\"./zipEntry\":423}],423:[function(t,e,r){\"use strict\";var n=t(\"./reader/readerFor\"),i=t(\"./utils\"),o=t(\"./compressedObject\"),a=t(\"./crc32\"),s=t(\"./utf8\"),u=t(\"./compressions\"),c=t(\"./support\");function f(t,e){this.options=t,this.loadOptions=e}f.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(e=function(t){for(var e in u)if(u.hasOwnProperty(e)&&u[e].magic===t)return u[e];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+i.pretty(this.compressionMethod)+\" unknown (inner file : \"+i.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===t&&(this.dosPermissions=63&this.externalFileAttributes),3===t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<i;)e=t.readInt(2),r=t.readInt(2),n=t.readData(r),this.extraFields[e]={id:e,length:r,value:n};t.setIndex(i)},handleUTF8:function(){var t=c.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=s.utf8decode(this.fileName),this.fileCommentStr=s.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var r=i.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var o=i.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(o)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=n(t.value);return 1!==e.readInt(1)||a(this.fileName)!==e.readInt(4)?null:s.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=n(t.value);return 1!==e.readInt(1)||a(this.fileComment)!==e.readInt(4)?null:s.utf8decode(e.readData(t.length-5))}return null}},e.exports=f},{\"./compressedObject\":391,\"./compressions\":392,\"./crc32\":393,\"./reader/readerFor\":411,\"./support\":419,\"./utf8\":420,\"./utils\":421}],424:[function(t,e,r){\"use strict\";var n=t(\"./stream/StreamHelper\"),i=t(\"./stream/DataWorker\"),o=t(\"./utf8\"),a=t(\"./compressedObject\"),s=t(\"./stream/GenericWorker\"),u=function(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}};u.prototype={internalStream:function(t){var e=null,r=\"string\";try{if(!t)throw new Error(\"No output type specified.\");var i=\"string\"===(r=t.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),e=this._decompressWorker();var a=!this._dataBinary;a&&!i&&(e=e.pipe(new o.Utf8EncodeWorker)),!a&&i&&(e=e.pipe(new o.Utf8DecodeWorker))}catch(t){(e=new s(\"error\")).error(t)}return new n(e,r,\"\")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||\"nodebuffer\").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof a&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new o.Utf8EncodeWorker)),a.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof a?this._data.getContentWorker():this._data instanceof s?this._data:new i(this._data)}};for(var c=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],f=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},l=0;l<c.length;l++)u.prototype[c[l]]=f;e.exports=u},{\"./compressedObject\":391,\"./stream/DataWorker\":416,\"./stream/GenericWorker\":417,\"./stream/StreamHelper\":418,\"./utf8\":420}],425:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"immediate\");function o(){}var a={},s=[\"REJECTED\"],u=[\"FULFILLED\"],c=[\"PENDING\"];function f(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=c,this.queue=[],this.outcome=void 0,t!==o&&p(this,t)}function l(t,e,r){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function h(t,e,r){i((function(){var n;try{n=e(r)}catch(e){return a.reject(t,e)}n===t?a.reject(t,new TypeError(\"Cannot resolve promise with itself\")):a.resolve(t,n)}))}function d(t){var e=t&&t.then;if(t&&(\"object\"===n(t)||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function p(t,e){var r=!1;function n(e){r||(r=!0,a.reject(t,e))}function i(e){r||(r=!0,a.resolve(t,e))}var o=m((function(){e(i,n)}));\"error\"===o.status&&n(o.value)}function m(t,e){var r={};try{r.value=t(e),r.status=\"success\"}catch(t){r.status=\"error\",r.value=t}return r}e.exports=f,f.prototype.finally=function(t){if(\"function\"!=typeof t)return this;var e=this.constructor;return this.then((function(r){return e.resolve(t()).then((function(){return r}))}),(function(r){return e.resolve(t()).then((function(){throw r}))}))},f.prototype.catch=function(t){return this.then(null,t)},f.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===u||\"function\"!=typeof e&&this.state===s)return this;var r=new this.constructor(o);this.state!==c?h(r,this.state===u?t:e,this.outcome):this.queue.push(new l(r,t,e));return r},l.prototype.callFulfilled=function(t){a.resolve(this.promise,t)},l.prototype.otherCallFulfilled=function(t){h(this.promise,this.onFulfilled,t)},l.prototype.callRejected=function(t){a.reject(this.promise,t)},l.prototype.otherCallRejected=function(t){h(this.promise,this.onRejected,t)},a.resolve=function(t,e){var r=m(d,e);if(\"error\"===r.status)return a.reject(t,r.value);var n=r.value;if(n)p(t,n);else{t.state=u,t.outcome=e;for(var i=-1,o=t.queue.length;++i<o;)t.queue[i].callFulfilled(e)}return t},a.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,n=t.queue.length;++r<n;)t.queue[r].callRejected(e);return t},f.resolve=function(t){if(t instanceof this)return t;return a.resolve(new this(o),t)},f.reject=function(t){var e=new this(o);return a.reject(e,t)},f.all=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var r=t.length,n=!1;if(!r)return this.resolve([]);var i=new Array(r),s=0,u=-1,c=new this(o);for(;++u<r;)f(t[u],u);return c;function f(t,o){e.resolve(t).then((function(t){i[o]=t,++s!==r||n||(n=!0,a.resolve(c,i))}),(function(t){n||(n=!0,a.reject(c,t))}))}},f.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var r=t.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(o);for(;++i<r;)u=t[i],e.resolve(u).then((function(t){n||(n=!0,a.resolve(s,t))}),(function(t){n||(n=!0,a.reject(s,t))}));var u;return s}},{immediate:386}],426:[function(t,e,r){(function(t){\"use strict\";function r(t){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var n=/[\\\\^$.*+?()[\\]{}|]/g,i=RegExp(n.source),o=\"object\"==(void 0===t?\"undefined\":r(t))&&t&&t.Object===Object&&t,a=\"object\"==(\"undefined\"==typeof self?\"undefined\":r(self))&&self&&self.Object===Object&&self,s=o||a||Function(\"return this\")(),u=Object.prototype.toString,c=s.Symbol,f=c?c.prototype:void 0,l=f?f.toString:void 0;function h(t){if(\"string\"==typeof t)return t;if(function(t){return\"symbol\"==r(t)||function(t){return!!t&&\"object\"==r(t)}(t)&&\"[object Symbol]\"==u.call(t)}(t))return l?l.call(t):\"\";var e=t+\"\";return\"0\"==e&&1/t==-1/0?\"-0\":e}e.exports=function(t){var e;return(t=null==(e=t)?\"\":h(e))&&i.test(t)?t.replace(n,\"\\\\$&\"):t}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],427:[function(t,e,r){(function(t){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=\"[object Arguments]\",o=\"[object Map]\",a=\"[object Object]\",s=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,f=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,h=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,m={};m[\"[object Float32Array]\"]=m[\"[object Float64Array]\"]=m[\"[object Int8Array]\"]=m[\"[object Int16Array]\"]=m[\"[object Int32Array]\"]=m[\"[object Uint8Array]\"]=m[\"[object Uint8ClampedArray]\"]=m[\"[object Uint16Array]\"]=m[\"[object Uint32Array]\"]=!0,m[i]=m[\"[object Array]\"]=m[\"[object ArrayBuffer]\"]=m[\"[object Boolean]\"]=m[\"[object DataView]\"]=m[\"[object Date]\"]=m[\"[object Error]\"]=m[\"[object Function]\"]=m[o]=m[\"[object Number]\"]=m[a]=m[\"[object RegExp]\"]=m[s]=m[\"[object String]\"]=m[\"[object WeakMap]\"]=!1;var y=\"object\"==(void 0===t?\"undefined\":n(t))&&t&&t.Object===Object&&t,b=\"object\"==(\"undefined\"==typeof self?\"undefined\":n(self))&&self&&self.Object===Object&&self,v=y||b||Function(\"return this\")(),g=\"object\"==(void 0===r?\"undefined\":n(r))&&r&&!r.nodeType&&r,w=g&&\"object\"==(void 0===e?\"undefined\":n(e))&&e&&!e.nodeType&&e,_=w&&w.exports===g&&y.process,k=function(){try{return _&&_.binding(\"util\")}catch(t){}}(),x=k&&k.isTypedArray;function S(t,e,r,n){for(var i=-1,o=t?t.length:0;++i<o;){var a=t[i];e(n,a,r(a),t)}return n}function O(t,e){for(var r=-1,n=t?t.length:0;++r<n;)if(e(t[r],r,t))return!0;return!1}function j(t){var e=!1;if(null!=t&&\"function\"!=typeof t.toString)try{e=!!(t+\"\")}catch(t){}return e}function E(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function R(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}var T,C,P,M=Array.prototype,A=Function.prototype,I=Object.prototype,N=v[\"__core-js_shared__\"],D=(T=/[^.]+$/.exec(N&&N.keys&&N.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+T:\"\",B=A.toString,F=I.hasOwnProperty,L=I.toString,z=RegExp(\"^\"+B.call(F).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),U=v.Symbol,H=v.Uint8Array,V=I.propertyIsEnumerable,q=M.splice,W=(C=Object.keys,P=Object,function(t){return C(P(t))}),$=Et(v,\"DataView\"),X=Et(v,\"Map\"),K=Et(v,\"Promise\"),Z=Et(v,\"Set\"),Y=Et(v,\"WeakMap\"),G=Et(Object,\"create\"),J=Nt($),Q=Nt(X),tt=Nt(K),et=Nt(Z),rt=Nt(Y),nt=U?U.prototype:void 0,it=nt?nt.valueOf:void 0,ot=nt?nt.toString:void 0;function at(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function st(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function ut(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function ct(t){var e=-1,r=t?t.length:0;for(this.__data__=new ut;++e<r;)this.add(t[e])}function ft(t){this.__data__=new st(t)}function lt(t,e){var r=Ht(t)||Ut(t)?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],n=r.length,i=!!n;for(var o in t)!e&&!F.call(t,o)||i&&(\"length\"==o||Tt(o,n))||r.push(o);return r}function ht(t,e){for(var r=t.length;r--;)if(zt(t[r][0],e))return r;return-1}function dt(t,e,r,n){return yt(t,(function(t,i,o){e(n,t,r(t),o)})),n}at.prototype.clear=function(){this.__data__=G?G(null):{}},at.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},at.prototype.get=function(t){var e=this.__data__;if(G){var r=e[t];return\"__lodash_hash_undefined__\"===r?void 0:r}return F.call(e,t)?e[t]:void 0},at.prototype.has=function(t){var e=this.__data__;return G?void 0!==e[t]:F.call(e,t)},at.prototype.set=function(t,e){return this.__data__[t]=G&&void 0===e?\"__lodash_hash_undefined__\":e,this},st.prototype.clear=function(){this.__data__=[]},st.prototype.delete=function(t){var e=this.__data__,r=ht(e,t);return!(r<0)&&(r==e.length-1?e.pop():q.call(e,r,1),!0)},st.prototype.get=function(t){var e=this.__data__,r=ht(e,t);return r<0?void 0:e[r][1]},st.prototype.has=function(t){return ht(this.__data__,t)>-1},st.prototype.set=function(t,e){var r=this.__data__,n=ht(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},ut.prototype.clear=function(){this.__data__={hash:new at,map:new(X||st),string:new at}},ut.prototype.delete=function(t){return jt(this,t).delete(t)},ut.prototype.get=function(t){return jt(this,t).get(t)},ut.prototype.has=function(t){return jt(this,t).has(t)},ut.prototype.set=function(t,e){return jt(this,t).set(t,e),this},ct.prototype.add=ct.prototype.push=function(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this},ct.prototype.has=function(t){return this.__data__.has(t)},ft.prototype.clear=function(){this.__data__=new st},ft.prototype.delete=function(t){return this.__data__.delete(t)},ft.prototype.get=function(t){return this.__data__.get(t)},ft.prototype.has=function(t){return this.__data__.has(t)},ft.prototype.set=function(t,e){var r=this.__data__;if(r instanceof st){var n=r.__data__;if(!X||n.length<199)return n.push([t,e]),this;r=this.__data__=new ut(n)}return r.set(t,e),this};var pt,mt,yt=(pt=function(t,e){return t&&bt(t,e,Yt)},function(t,e){if(null==t)return t;if(!Vt(t))return pt(t,e);for(var r=t.length,n=mt?r:-1,i=Object(t);(mt?n--:++n<r)&&!1!==e(i[n],n,i););return t}),bt=function(t){return function(e,r,n){for(var i=-1,o=Object(e),a=n(e),s=a.length;s--;){var u=a[t?s:++i];if(!1===r(o[u],u,o))break}return e}}();function vt(t,e){for(var r=0,n=(e=Ct(e,t)?[e]:St(e)).length;null!=t&&r<n;)t=t[It(e[r++])];return r&&r==n?t:void 0}function gt(t,e){return null!=t&&e in Object(t)}function wt(t,e,r,n,u){return t===e||(null==t||null==e||!$t(t)&&!Xt(e)?t!=t&&e!=e:function(t,e,r,n,u,c){var f=Ht(t),l=Ht(e),h=\"[object Array]\",d=\"[object Array]\";f||(h=(h=Rt(t))==i?a:h);l||(d=(d=Rt(e))==i?a:d);var p=h==a&&!j(t),m=d==a&&!j(e),y=h==d;if(y&&!p)return c||(c=new ft),f||Zt(t)?Ot(t,e,r,n,u,c):function(t,e,r,n,i,a,u){switch(r){case\"[object DataView]\":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case\"[object ArrayBuffer]\":return!(t.byteLength!=e.byteLength||!n(new H(t),new H(e)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return zt(+t,+e);case\"[object Error]\":return t.name==e.name&&t.message==e.message;case\"[object RegExp]\":case\"[object String]\":return t==e+\"\";case o:var c=E;case s:var f=2&a;if(c||(c=R),t.size!=e.size&&!f)return!1;var l=u.get(t);if(l)return l==e;a|=1,u.set(t,e);var h=Ot(c(t),c(e),n,i,a,u);return u.delete(t),h;case\"[object Symbol]\":if(it)return it.call(t)==it.call(e)}return!1}(t,e,h,r,n,u,c);if(!(2&u)){var b=p&&F.call(t,\"__wrapped__\"),v=m&&F.call(e,\"__wrapped__\");if(b||v){var g=b?t.value():t,w=v?e.value():e;return c||(c=new ft),r(g,w,n,u,c)}}if(!y)return!1;return c||(c=new ft),function(t,e,r,n,i,o){var a=2&i,s=Yt(t),u=s.length,c=Yt(e).length;if(u!=c&&!a)return!1;var f=u;for(;f--;){var l=s[f];if(!(a?l in e:F.call(e,l)))return!1}var h=o.get(t);if(h&&o.get(e))return h==e;var d=!0;o.set(t,e),o.set(e,t);var p=a;for(;++f<u;){l=s[f];var m=t[l],y=e[l];if(n)var b=a?n(y,m,l,e,t,o):n(m,y,l,t,e,o);if(!(void 0===b?m===y||r(m,y,n,i,o):b)){d=!1;break}p||(p=\"constructor\"==l)}if(d&&!p){var v=t.constructor,g=e.constructor;v==g||!(\"constructor\"in t)||!(\"constructor\"in e)||\"function\"==typeof v&&v instanceof v&&\"function\"==typeof g&&g instanceof g||(d=!1)}return o.delete(t),o.delete(e),d}(t,e,r,n,u,c)}(t,e,wt,r,n,u))}function _t(t){return!(!$t(t)||function(t){return!!D&&D in t}(t))&&(qt(t)||j(t)?z:d).test(Nt(t))}function kt(t){return\"function\"==typeof t?t:null==t?Gt:\"object\"==n(t)?Ht(t)?function(t,e){if(Ct(t)&&Pt(e))return Mt(It(t),e);return function(r){var n=function(t,e,r){var n=null==t?void 0:vt(t,e);return void 0===n?r:n}(r,t);return void 0===n&&n===e?function(t,e){return null!=t&&function(t,e,r){e=Ct(e,t)?[e]:St(e);var n,i=-1,o=e.length;for(;++i<o;){var a=It(e[i]);if(!(n=null!=t&&r(t,a)))break;t=t[a]}if(n)return n;return!!(o=t?t.length:0)&&Wt(o)&&Tt(a,o)&&(Ht(t)||Ut(t))}(t,e,gt)}(r,t):wt(e,n,void 0,3)}}(t[0],t[1]):function(t){var e=function(t){var e=Yt(t),r=e.length;for(;r--;){var n=e[r],i=t[n];e[r]=[n,i,Pt(i)]}return e}(t);if(1==e.length&&e[0][2])return Mt(e[0][0],e[0][1]);return function(r){return r===t||function(t,e,r,n){var i=r.length,o=i,a=!n;if(null==t)return!o;for(t=Object(t);i--;){var s=r[i];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++i<o;){var u=(s=r[i])[0],c=t[u],f=s[1];if(a&&s[2]){if(void 0===c&&!(u in t))return!1}else{var l=new ft;if(n)var h=n(c,f,u,t,e,l);if(!(void 0===h?wt(f,c,n,3,l):h))return!1}}return!0}(r,t,e)}}(t):Ct(e=t)?(r=It(e),function(t){return null==t?void 0:t[r]}):function(t){return function(e){return vt(e,t)}}(e);var e,r}function xt(t){if(r=(e=t)&&e.constructor,n=\"function\"==typeof r&&r.prototype||I,e!==n)return W(t);var e,r,n,i=[];for(var o in Object(t))F.call(t,o)&&\"constructor\"!=o&&i.push(o);return i}function St(t){return Ht(t)?t:At(t)}function Ot(t,e,r,n,i,o){var a=2&i,s=t.length,u=e.length;if(s!=u&&!(a&&u>s))return!1;var c=o.get(t);if(c&&o.get(e))return c==e;var f=-1,l=!0,h=1&i?new ct:void 0;for(o.set(t,e),o.set(e,t);++f<s;){var d=t[f],p=e[f];if(n)var m=a?n(p,d,f,e,t,o):n(d,p,f,t,e,o);if(void 0!==m){if(m)continue;l=!1;break}if(h){if(!O(e,(function(t,e){if(!h.has(e)&&(d===t||r(d,t,n,i,o)))return h.add(e)}))){l=!1;break}}else if(d!==p&&!r(d,p,n,i,o)){l=!1;break}}return o.delete(t),o.delete(e),l}function jt(t,e){var r,i,o=t.__data__;return(\"string\"==(i=n(r=e))||\"number\"==i||\"symbol\"==i||\"boolean\"==i?\"__proto__\"!==r:null===r)?o[\"string\"==typeof e?\"string\":\"hash\"]:o.map}function Et(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return _t(r)?r:void 0}var Rt=function(t){return L.call(t)};function Tt(t,e){return!!(e=null==e?9007199254740991:e)&&(\"number\"==typeof t||p.test(t))&&t>-1&&t%1==0&&t<e}function Ct(t,e){if(Ht(t))return!1;var r=n(t);return!(\"number\"!=r&&\"symbol\"!=r&&\"boolean\"!=r&&null!=t&&!Kt(t))||(c.test(t)||!u.test(t)||null!=e&&t in Object(e))}function Pt(t){return t==t&&!$t(t)}function Mt(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}($&&\"[object DataView]\"!=Rt(new $(new ArrayBuffer(1)))||X&&Rt(new X)!=o||K&&\"[object Promise]\"!=Rt(K.resolve())||Z&&Rt(new Z)!=s||Y&&\"[object WeakMap]\"!=Rt(new Y))&&(Rt=function(t){var e=L.call(t),r=e==a?t.constructor:void 0,n=r?Nt(r):void 0;if(n)switch(n){case J:return\"[object DataView]\";case Q:return o;case tt:return\"[object Promise]\";case et:return s;case rt:return\"[object WeakMap]\"}return e});var At=Lt((function(t){var e;t=null==(e=t)?\"\":function(t){if(\"string\"==typeof t)return t;if(Kt(t))return ot?ot.call(t):\"\";var e=t+\"\";return\"0\"==e&&1/t==-1/0?\"-0\":e}(e);var r=[];return f.test(t)&&r.push(\"\"),t.replace(l,(function(t,e,n,i){r.push(n?i.replace(h,\"$1\"):e||t)})),r}));function It(t){if(\"string\"==typeof t||Kt(t))return t;var e=t+\"\";return\"0\"==e&&1/t==-1/0?\"-0\":e}function Nt(t){if(null!=t){try{return B.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}var Dt,Bt,Ft=(Dt=function(t,e,r){F.call(t,r)?t[r].push(e):t[r]=[e]},function(t,e){var r=Ht(t)?S:dt,n=Bt?Bt():{};return r(t,Dt,kt(e),n)});function Lt(t,e){if(\"function\"!=typeof t||e&&\"function\"!=typeof e)throw new TypeError(\"Expected a function\");var r=function r(){var n=arguments,i=e?e.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=t.apply(this,n);return r.cache=o.set(i,a),a};return r.cache=new(Lt.Cache||ut),r}function zt(t,e){return t===e||t!=t&&e!=e}function Ut(t){return function(t){return Xt(t)&&Vt(t)}(t)&&F.call(t,\"callee\")&&(!V.call(t,\"callee\")||L.call(t)==i)}Lt.Cache=ut;var Ht=Array.isArray;function Vt(t){return null!=t&&Wt(t.length)&&!qt(t)}function qt(t){var e=$t(t)?L.call(t):\"\";return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e}function Wt(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function $t(t){var e=n(t);return!!t&&(\"object\"==e||\"function\"==e)}function Xt(t){return!!t&&\"object\"==n(t)}function Kt(t){return\"symbol\"==n(t)||Xt(t)&&\"[object Symbol]\"==L.call(t)}var Zt=x?function(t){return function(e){return t(e)}}(x):function(t){return Xt(t)&&Wt(t.length)&&!!m[L.call(t)]};function Yt(t){return Vt(t)?lt(t):xt(t)}function Gt(t){return t}e.exports=Ft}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],428:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=Object.prototype.toString;e.exports=function(t){return!0===t||!1===t||function(t){return!!t&&\"object\"==n(t)}(t)&&\"[object Boolean]\"==i.call(t)}},{}],429:[function(t,e,r){(function(t){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=\"[object Arguments]\",o=\"[object Map]\",a=\"[object Object]\",s=\"[object Set]\",u=/^\\[object .+?Constructor\\]$/,c=/^(?:0|[1-9]\\d*)$/,f={};f[\"[object Float32Array]\"]=f[\"[object Float64Array]\"]=f[\"[object Int8Array]\"]=f[\"[object Int16Array]\"]=f[\"[object Int32Array]\"]=f[\"[object Uint8Array]\"]=f[\"[object Uint8ClampedArray]\"]=f[\"[object Uint16Array]\"]=f[\"[object Uint32Array]\"]=!0,f[i]=f[\"[object Array]\"]=f[\"[object ArrayBuffer]\"]=f[\"[object Boolean]\"]=f[\"[object DataView]\"]=f[\"[object Date]\"]=f[\"[object Error]\"]=f[\"[object Function]\"]=f[o]=f[\"[object Number]\"]=f[a]=f[\"[object RegExp]\"]=f[s]=f[\"[object String]\"]=f[\"[object WeakMap]\"]=!1;var l=\"object\"==(void 0===t?\"undefined\":n(t))&&t&&t.Object===Object&&t,h=\"object\"==(\"undefined\"==typeof self?\"undefined\":n(self))&&self&&self.Object===Object&&self,d=l||h||Function(\"return this\")(),p=\"object\"==(void 0===r?\"undefined\":n(r))&&r&&!r.nodeType&&r,m=p&&\"object\"==(void 0===e?\"undefined\":n(e))&&e&&!e.nodeType&&e,y=m&&m.exports===p,b=y&&l.process,v=function(){try{return b&&b.binding&&b.binding(\"util\")}catch(t){}}(),g=v&&v.isTypedArray;function w(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}function _(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function k(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}var x,S,O,j=Array.prototype,E=Function.prototype,R=Object.prototype,T=d[\"__core-js_shared__\"],C=E.toString,P=R.hasOwnProperty,M=(x=/[^.]+$/.exec(T&&T.keys&&T.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+x:\"\",A=R.toString,I=RegExp(\"^\"+C.call(P).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),N=y?d.Buffer:void 0,D=d.Symbol,B=d.Uint8Array,F=R.propertyIsEnumerable,L=j.splice,z=D?D.toStringTag:void 0,U=Object.getOwnPropertySymbols,H=N?N.isBuffer:void 0,V=(S=Object.keys,O=Object,function(t){return S(O(t))}),q=vt(d,\"DataView\"),W=vt(d,\"Map\"),$=vt(d,\"Promise\"),X=vt(d,\"Set\"),K=vt(d,\"WeakMap\"),Z=vt(Object,\"create\"),Y=kt(q),G=kt(W),J=kt($),Q=kt(X),tt=kt(K),et=D?D.prototype:void 0,rt=et?et.valueOf:void 0;function nt(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function it(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function ot(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function at(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new ot;++e<r;)this.add(t[e])}function st(t){var e=this.__data__=new it(t);this.size=e.size}function ut(t,e){var r=Ot(t),n=!r&&St(t),i=!r&&!n&&jt(t),o=!r&&!n&&!i&&Pt(t),a=r||n||i||o,s=a?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],u=s.length;for(var c in t)!e&&!P.call(t,c)||a&&(\"length\"==c||i&&(\"offset\"==c||\"parent\"==c)||o&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||_t(c,u))||s.push(c);return s}function ct(t,e){for(var r=t.length;r--;)if(xt(t[r][0],e))return r;return-1}function ft(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":z&&z in Object(t)?function(t){var e=P.call(t,z),r=t[z];try{t[z]=void 0;var n=!0}catch(t){}var i=A.call(t);n&&(e?t[z]=r:delete t[z]);return i}(t):function(t){return A.call(t)}(t)}function lt(t){return Ct(t)&&ft(t)==i}function ht(t,e,r,n,u){return t===e||(null==t||null==e||!Ct(t)&&!Ct(e)?t!=t&&e!=e:function(t,e,r,n,u,c){var f=Ot(t),l=Ot(e),h=f?\"[object Array]\":wt(t),d=l?\"[object Array]\":wt(e),p=(h=h==i?a:h)==a,m=(d=d==i?a:d)==a,y=h==d;if(y&&jt(t)){if(!jt(e))return!1;f=!0,p=!1}if(y&&!p)return c||(c=new st),f||Pt(t)?mt(t,e,r,n,u,c):function(t,e,r,n,i,a,u){switch(r){case\"[object DataView]\":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case\"[object ArrayBuffer]\":return!(t.byteLength!=e.byteLength||!a(new B(t),new B(e)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return xt(+t,+e);case\"[object Error]\":return t.name==e.name&&t.message==e.message;case\"[object RegExp]\":case\"[object String]\":return t==e+\"\";case o:var c=_;case s:var f=1&n;if(c||(c=k),t.size!=e.size&&!f)return!1;var l=u.get(t);if(l)return l==e;n|=2,u.set(t,e);var h=mt(c(t),c(e),n,i,a,u);return u.delete(t),h;case\"[object Symbol]\":if(rt)return rt.call(t)==rt.call(e)}return!1}(t,e,h,r,n,u,c);if(!(1&r)){var b=p&&P.call(t,\"__wrapped__\"),v=m&&P.call(e,\"__wrapped__\");if(b||v){var g=b?t.value():t,w=v?e.value():e;return c||(c=new st),u(g,w,r,n,c)}}if(!y)return!1;return c||(c=new st),function(t,e,r,n,i,o){var a=1&r,s=yt(t),u=s.length,c=yt(e).length;if(u!=c&&!a)return!1;var f=u;for(;f--;){var l=s[f];if(!(a?l in e:P.call(e,l)))return!1}var h=o.get(t);if(h&&o.get(e))return h==e;var d=!0;o.set(t,e),o.set(e,t);var p=a;for(;++f<u;){l=s[f];var m=t[l],y=e[l];if(n)var b=a?n(y,m,l,e,t,o):n(m,y,l,t,e,o);if(!(void 0===b?m===y||i(m,y,r,n,o):b)){d=!1;break}p||(p=\"constructor\"==l)}if(d&&!p){var v=t.constructor,g=e.constructor;v==g||!(\"constructor\"in t)||!(\"constructor\"in e)||\"function\"==typeof v&&v instanceof v&&\"function\"==typeof g&&g instanceof g||(d=!1)}return o.delete(t),o.delete(e),d}(t,e,r,n,u,c)}(t,e,r,n,ht,u))}function dt(t){return!(!Tt(t)||function(t){return!!M&&M in t}(t))&&(Et(t)?I:u).test(kt(t))}function pt(t){if(r=(e=t)&&e.constructor,n=\"function\"==typeof r&&r.prototype||R,e!==n)return V(t);var e,r,n,i=[];for(var o in Object(t))P.call(t,o)&&\"constructor\"!=o&&i.push(o);return i}function mt(t,e,r,n,i,o){var a=1&r,s=t.length,u=e.length;if(s!=u&&!(a&&u>s))return!1;var c=o.get(t);if(c&&o.get(e))return c==e;var f=-1,l=!0,h=2&r?new at:void 0;for(o.set(t,e),o.set(e,t);++f<s;){var d=t[f],p=e[f];if(n)var m=a?n(p,d,f,e,t,o):n(d,p,f,t,e,o);if(void 0!==m){if(m)continue;l=!1;break}if(h){if(!w(e,(function(t,e){if(a=e,!h.has(a)&&(d===t||i(d,t,r,n,o)))return h.push(e);var a}))){l=!1;break}}else if(d!==p&&!i(d,p,r,n,o)){l=!1;break}}return o.delete(t),o.delete(e),l}function yt(t){return function(t,e,r){var n=e(t);return Ot(t)?n:function(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}(n,r(t))}(t,Mt,gt)}function bt(t,e){var r,i,o=t.__data__;return(\"string\"==(i=n(r=e))||\"number\"==i||\"symbol\"==i||\"boolean\"==i?\"__proto__\"!==r:null===r)?o[\"string\"==typeof e?\"string\":\"hash\"]:o.map}function vt(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return dt(r)?r:void 0}nt.prototype.clear=function(){this.__data__=Z?Z(null):{},this.size=0},nt.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},nt.prototype.get=function(t){var e=this.__data__;if(Z){var r=e[t];return\"__lodash_hash_undefined__\"===r?void 0:r}return P.call(e,t)?e[t]:void 0},nt.prototype.has=function(t){var e=this.__data__;return Z?void 0!==e[t]:P.call(e,t)},nt.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Z&&void 0===e?\"__lodash_hash_undefined__\":e,this},it.prototype.clear=function(){this.__data__=[],this.size=0},it.prototype.delete=function(t){var e=this.__data__,r=ct(e,t);return!(r<0)&&(r==e.length-1?e.pop():L.call(e,r,1),--this.size,!0)},it.prototype.get=function(t){var e=this.__data__,r=ct(e,t);return r<0?void 0:e[r][1]},it.prototype.has=function(t){return ct(this.__data__,t)>-1},it.prototype.set=function(t,e){var r=this.__data__,n=ct(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this},ot.prototype.clear=function(){this.size=0,this.__data__={hash:new nt,map:new(W||it),string:new nt}},ot.prototype.delete=function(t){var e=bt(this,t).delete(t);return this.size-=e?1:0,e},ot.prototype.get=function(t){return bt(this,t).get(t)},ot.prototype.has=function(t){return bt(this,t).has(t)},ot.prototype.set=function(t,e){var r=bt(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},at.prototype.add=at.prototype.push=function(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this},at.prototype.has=function(t){return this.__data__.has(t)},st.prototype.clear=function(){this.__data__=new it,this.size=0},st.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},st.prototype.get=function(t){return this.__data__.get(t)},st.prototype.has=function(t){return this.__data__.has(t)},st.prototype.set=function(t,e){var r=this.__data__;if(r instanceof it){var n=r.__data__;if(!W||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new ot(n)}return r.set(t,e),this.size=r.size,this};var gt=U?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var r=-1,n=null==t?0:t.length,i=0,o=[];++r<n;){var a=t[r];e(a,r,t)&&(o[i++]=a)}return o}(U(t),(function(e){return F.call(t,e)})))}:function(){return[]},wt=ft;function _t(t,e){return!!(e=null==e?9007199254740991:e)&&(\"number\"==typeof t||c.test(t))&&t>-1&&t%1==0&&t<e}function kt(t){if(null!=t){try{return C.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}function xt(t,e){return t===e||t!=t&&e!=e}(q&&\"[object DataView]\"!=wt(new q(new ArrayBuffer(1)))||W&&wt(new W)!=o||$&&\"[object Promise]\"!=wt($.resolve())||X&&wt(new X)!=s||K&&\"[object WeakMap]\"!=wt(new K))&&(wt=function(t){var e=ft(t),r=e==a?t.constructor:void 0,n=r?kt(r):\"\";if(n)switch(n){case Y:return\"[object DataView]\";case G:return o;case J:return\"[object Promise]\";case Q:return s;case tt:return\"[object WeakMap]\"}return e});var St=lt(function(){return arguments}())?lt:function(t){return Ct(t)&&P.call(t,\"callee\")&&!F.call(t,\"callee\")},Ot=Array.isArray;var jt=H||function(){return!1};function Et(t){if(!Tt(t))return!1;var e=ft(t);return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e||\"[object AsyncFunction]\"==e||\"[object Proxy]\"==e}function Rt(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Tt(t){var e=n(t);return null!=t&&(\"object\"==e||\"function\"==e)}function Ct(t){return null!=t&&\"object\"==n(t)}var Pt=g?function(t){return function(e){return t(e)}}(g):function(t){return Ct(t)&&Rt(t.length)&&!!f[ft(t)]};function Mt(t){return null!=(e=t)&&Rt(e.length)&&!Et(e)?ut(t):pt(t);var e}e.exports=function(t,e){return ht(t,e)}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],430:[function(t,e,r){(function(t){\"use strict\";function r(t){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var n=\"object\"==(void 0===t?\"undefined\":r(t))&&t&&t.Object===Object&&t,i=\"object\"==(\"undefined\"==typeof self?\"undefined\":r(self))&&self&&self.Object===Object&&self,o=n||i||Function(\"return this\")(),a=Object.prototype,s=a.hasOwnProperty,u=a.toString,c=o.Symbol,f=c?c.toStringTag:void 0;function l(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":f&&f in Object(t)?function(t){var e=s.call(t,f),r=t[f];try{t[f]=void 0;var n=!0}catch(t){}var i=u.call(t);n&&(e?t[f]=r:delete t[f]);return i}(t):function(t){return u.call(t)}(t)}e.exports=function(t){if(!function(t){var e=r(t);return null!=t&&(\"object\"==e||\"function\"==e)}(t))return!1;var e=l(t);return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e||\"[object AsyncFunction]\"==e||\"[object Proxy]\"==e}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],431:[function(t,e,r){\"use strict\";e.exports=function(t){return null==t}},{}],432:[function(t,e,r){\"use strict\";e.exports=function(t){return void 0===t}},{}],433:[function(t,e,r){(function(t){\"use strict\";function r(t){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var n=/^\\[object .+?Constructor\\]$/,i=\"object\"==(void 0===t?\"undefined\":r(t))&&t&&t.Object===Object&&t,o=\"object\"==(\"undefined\"==typeof self?\"undefined\":r(self))&&self&&self.Object===Object&&self,a=i||o||Function(\"return this\")();function s(t,e){return!!(t?t.length:0)&&function(t,e,r){if(e!=e)return function(t,e,r,n){var i=t.length,o=r+(n?1:-1);for(;n?o--:++o<i;)if(e(t[o],o,t))return o;return-1}(t,c,r);var n=r-1,i=t.length;for(;++n<i;)if(t[n]===e)return n;return-1}(t,e,0)>-1}function u(t,e,r){for(var n=-1,i=t?t.length:0;++n<i;)if(r(e,t[n]))return!0;return!1}function c(t){return t!=t}function f(t,e){return t.has(e)}function l(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}var h,d=Array.prototype,p=Function.prototype,m=Object.prototype,y=a[\"__core-js_shared__\"],b=(h=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+h:\"\",v=p.toString,g=m.hasOwnProperty,w=m.toString,_=RegExp(\"^\"+v.call(g).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),k=d.splice,x=I(a,\"Map\"),S=I(a,\"Set\"),O=I(Object,\"create\");function j(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function E(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function R(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function T(t){var e=-1,r=t?t.length:0;for(this.__data__=new R;++e<r;)this.add(t[e])}function C(t,e){for(var r,n,i=t.length;i--;)if((r=t[i][0])===(n=e)||r!=r&&n!=n)return i;return-1}function P(t){return!(!N(t)||(e=t,b&&b in e))&&(function(t){var e=N(t)?w.call(t):\"\";return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e}(t)||function(t){var e=!1;if(null!=t&&\"function\"!=typeof t.toString)try{e=!!(t+\"\")}catch(t){}return e}(t)?_:n).test(function(t){if(null!=t){try{return v.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}(t));var e}j.prototype.clear=function(){this.__data__=O?O(null):{}},j.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},j.prototype.get=function(t){var e=this.__data__;if(O){var r=e[t];return\"__lodash_hash_undefined__\"===r?void 0:r}return g.call(e,t)?e[t]:void 0},j.prototype.has=function(t){var e=this.__data__;return O?void 0!==e[t]:g.call(e,t)},j.prototype.set=function(t,e){return this.__data__[t]=O&&void 0===e?\"__lodash_hash_undefined__\":e,this},E.prototype.clear=function(){this.__data__=[]},E.prototype.delete=function(t){var e=this.__data__,r=C(e,t);return!(r<0)&&(r==e.length-1?e.pop():k.call(e,r,1),!0)},E.prototype.get=function(t){var e=this.__data__,r=C(e,t);return r<0?void 0:e[r][1]},E.prototype.has=function(t){return C(this.__data__,t)>-1},E.prototype.set=function(t,e){var r=this.__data__,n=C(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},R.prototype.clear=function(){this.__data__={hash:new j,map:new(x||E),string:new j}},R.prototype.delete=function(t){return A(this,t).delete(t)},R.prototype.get=function(t){return A(this,t).get(t)},R.prototype.has=function(t){return A(this,t).has(t)},R.prototype.set=function(t,e){return A(this,t).set(t,e),this},T.prototype.add=T.prototype.push=function(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this},T.prototype.has=function(t){return this.__data__.has(t)};var M=S&&1/l(new S([,-0]))[1]==1/0?function(t){return new S(t)}:function(){};function A(t,e){var n,i,o=t.__data__;return(\"string\"==(i=r(n=e))||\"number\"==i||\"symbol\"==i||\"boolean\"==i?\"__proto__\"!==n:null===n)?o[\"string\"==typeof e?\"string\":\"hash\"]:o.map}function I(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return P(r)?r:void 0}function N(t){var e=r(t);return!!t&&(\"object\"==e||\"function\"==e)}e.exports=function(t){return t&&t.length?function(t,e,r){var n=-1,i=s,o=t.length,a=!0,c=[],h=c;if(r)a=!1,i=u;else if(o>=200){var d=e?null:M(t);if(d)return l(d);a=!1,i=f,h=new T}else h=e?[]:c;t:for(;++n<o;){var p=t[n],m=e?e(p):p;if(p=r||0!==p?p:0,a&&m==m){for(var y=h.length;y--;)if(h[y]===m)continue t;e&&h.push(m),c.push(p)}else i(h,m,r)||(h!==c&&h.push(m),c.push(p))}return c}(t):[]}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],434:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"hash-base\"),o=t(\"safe-buffer\").Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(t,e){return t<<e|t>>>32-e}function c(t,e,r,n,i,o,a){return u(t+(e&r|~e&n)+i+o|0,a)+e|0}function f(t,e,r,n,i,o,a){return u(t+(e&n|r&~n)+i+o|0,a)+e|0}function l(t,e,r,n,i,o,a){return u(t+(e^r^n)+i+o|0,a)+e|0}function h(t,e,r,n,i,o,a){return u(t+(r^(e|~n))+i+o|0,a)+e|0}n(s,i),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=c(r,n,i,o,t[0],3614090360,7),o=c(o,r,n,i,t[1],3905402710,12),i=c(i,o,r,n,t[2],606105819,17),n=c(n,i,o,r,t[3],3250441966,22),r=c(r,n,i,o,t[4],4118548399,7),o=c(o,r,n,i,t[5],1200080426,12),i=c(i,o,r,n,t[6],2821735955,17),n=c(n,i,o,r,t[7],4249261313,22),r=c(r,n,i,o,t[8],1770035416,7),o=c(o,r,n,i,t[9],2336552879,12),i=c(i,o,r,n,t[10],4294925233,17),n=c(n,i,o,r,t[11],2304563134,22),r=c(r,n,i,o,t[12],1804603682,7),o=c(o,r,n,i,t[13],4254626195,12),i=c(i,o,r,n,t[14],2792965006,17),r=f(r,n=c(n,i,o,r,t[15],1236535329,22),i,o,t[1],4129170786,5),o=f(o,r,n,i,t[6],3225465664,9),i=f(i,o,r,n,t[11],643717713,14),n=f(n,i,o,r,t[0],3921069994,20),r=f(r,n,i,o,t[5],3593408605,5),o=f(o,r,n,i,t[10],38016083,9),i=f(i,o,r,n,t[15],3634488961,14),n=f(n,i,o,r,t[4],3889429448,20),r=f(r,n,i,o,t[9],568446438,5),o=f(o,r,n,i,t[14],3275163606,9),i=f(i,o,r,n,t[3],4107603335,14),n=f(n,i,o,r,t[8],1163531501,20),r=f(r,n,i,o,t[13],2850285829,5),o=f(o,r,n,i,t[2],4243563512,9),i=f(i,o,r,n,t[7],1735328473,14),r=l(r,n=f(n,i,o,r,t[12],2368359562,20),i,o,t[5],4294588738,4),o=l(o,r,n,i,t[8],2272392833,11),i=l(i,o,r,n,t[11],1839030562,16),n=l(n,i,o,r,t[14],4259657740,23),r=l(r,n,i,o,t[1],2763975236,4),o=l(o,r,n,i,t[4],1272893353,11),i=l(i,o,r,n,t[7],4139469664,16),n=l(n,i,o,r,t[10],3200236656,23),r=l(r,n,i,o,t[13],681279174,4),o=l(o,r,n,i,t[0],3936430074,11),i=l(i,o,r,n,t[3],3572445317,16),n=l(n,i,o,r,t[6],76029189,23),r=l(r,n,i,o,t[9],3654602809,4),o=l(o,r,n,i,t[12],3873151461,11),i=l(i,o,r,n,t[15],530742520,16),r=h(r,n=l(n,i,o,r,t[2],3299628645,23),i,o,t[0],4096336452,6),o=h(o,r,n,i,t[7],1126891415,10),i=h(i,o,r,n,t[14],2878612391,15),n=h(n,i,o,r,t[5],4237533241,21),r=h(r,n,i,o,t[12],1700485571,6),o=h(o,r,n,i,t[3],2399980690,10),i=h(i,o,r,n,t[10],4293915773,15),n=h(n,i,o,r,t[1],2240044497,21),r=h(r,n,i,o,t[8],1873313359,6),o=h(o,r,n,i,t[15],4264355552,10),i=h(i,o,r,n,t[6],2734768916,15),n=h(n,i,o,r,t[13],1309151649,21),r=h(r,n,i,o,t[4],4149444226,6),o=h(o,r,n,i,t[11],3174756917,10),i=h(i,o,r,n,t[2],718787259,15),n=h(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},e.exports=s},{\"hash-base\":370,inherits:387,\"safe-buffer\":494}],435:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"brorand\");function o(t){this.rand=t||new i.Rand}e.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(t)>=0);return i},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var i=t.bitLength(),o=n.mont(t),a=new n(1).toRed(o);e||(e=Math.max(1,i/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var c=t.shrn(u),f=s.toRed(o);e>0;e--){var l=this._randrange(new n(2),s);r&&r(l);var h=l.toRed(o).redPow(c);if(0!==h.cmp(a)&&0!==h.cmp(f)){for(var d=1;d<u;d++){if(0===(h=h.redSqr()).cmp(a))return!1;if(0===h.cmp(f))break}if(d===u)return!1}}return!0},o.prototype.getDivisor=function(t,e){var r=t.bitLength(),i=n.mont(t),o=new n(1).toRed(i);e||(e=Math.max(1,r/48|0));for(var a=t.subn(1),s=0;!a.testn(s);s++);for(var u=t.shrn(s),c=a.toRed(i);e>0;e--){var f=this._randrange(new n(2),a),l=t.gcd(f);if(0!==l.cmpn(1))return l;var h=f.toRed(i).redPow(u);if(0!==h.cmp(o)&&0!==h.cmp(c)){for(var d=1;d<s;d++){if(0===(h=h.redSqr()).cmp(o))return h.fromRed().subn(1).gcd(t);if(0===h.cmp(c))break}if(d===s)return(h=h.redSqr()).fromRed().subn(1).gcd(t)}}return!1}},{\"bn.js\":436,brorand:184}],436:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],437:[function(t,e,r){\"use strict\";function n(t,e){if(!t)throw new Error(e||\"Assertion failed\")}e.exports=n,n.equal=function(t,e,r){if(t!=e)throw new Error(r||\"Assertion failed: \"+t+\" != \"+e)}},{}],438:[function(t,e,r){\"use strict\";var n=r;function i(t){return 1===t.length?\"0\"+t:t}function o(t){for(var e=\"\",r=0;r<t.length;r++)e+=i(t[r].toString(16));return e}n.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(\"string\"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if(\"hex\"===e){(t=t.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(t=\"0\"+t);for(n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16))}else for(n=0;n<t.length;n++){var i=t.charCodeAt(n),o=i>>8,a=255&i;o?r.push(o,a):r.push(a)}return r},n.zero2=i,n.toHex=o,n.encode=function(t,e){return\"hex\"===e?o(t):t}},{}],439:[function(t,e,r){\"use strict\";var n={};(0,t(\"./lib/utils/common\").assign)(n,t(\"./lib/deflate\"),t(\"./lib/inflate\"),t(\"./lib/zlib/constants\")),e.exports=n},{\"./lib/deflate\":440,\"./lib/inflate\":441,\"./lib/utils/common\":442,\"./lib/zlib/constants\":445}],440:[function(t,e,r){\"use strict\";var n=t(\"./zlib/deflate\"),i=t(\"./utils/common\"),o=t(\"./utils/strings\"),a=t(\"./zlib/messages\"),s=t(\"./zlib/zstream\"),u=Object.prototype.toString;function c(t){if(!(this instanceof c))return new c(t);this.options=i.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:\"\"},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error(a[r]);if(e.header&&n.deflateSetHeader(this.strm,e.header),e.dictionary){var f;if(f=\"string\"==typeof e.dictionary?o.string2buf(e.dictionary):\"[object ArrayBuffer]\"===u.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=n.deflateSetDictionary(this.strm,f)))throw new Error(a[r]);this._dict_set=!0}}function f(t,e){var r=new c(e);if(r.push(t,!0),r.err)throw r.msg||a[r.err];return r.result}c.prototype.push=function(t,e){var r,a,s=this.strm,c=this.options.chunkSize;if(this.ended)return!1;a=e===~~e?e:!0===e?4:0,\"string\"==typeof t?s.input=o.string2buf(t):\"[object ArrayBuffer]\"===u.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new i.Buf8(c),s.next_out=0,s.avail_out=c),1!==(r=n.deflate(s,a))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==s.avail_out&&(0!==s.avail_in||4!==a&&2!==a)||(\"string\"===this.options.to?this.onData(o.buf2binstring(i.shrinkBuf(s.output,s.next_out))):this.onData(i.shrinkBuf(s.output,s.next_out)))}while((s.avail_in>0||0===s.avail_out)&&1!==r);return 4===a?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==a||(this.onEnd(0),s.avail_out=0,!0)},c.prototype.onData=function(t){this.chunks.push(t)},c.prototype.onEnd=function(t){0===t&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Deflate=c,r.deflate=f,r.deflateRaw=function(t,e){return(e=e||{}).raw=!0,f(t,e)},r.gzip=function(t,e){return(e=e||{}).gzip=!0,f(t,e)}},{\"./utils/common\":442,\"./utils/strings\":443,\"./zlib/deflate\":447,\"./zlib/messages\":452,\"./zlib/zstream\":454}],441:[function(t,e,r){\"use strict\";var n=t(\"./zlib/inflate\"),i=t(\"./utils/common\"),o=t(\"./utils/strings\"),a=t(\"./zlib/constants\"),s=t(\"./zlib/messages\"),u=t(\"./zlib/zstream\"),c=t(\"./zlib/gzheader\"),f=Object.prototype.toString;function l(t){if(!(this instanceof l))return new l(t);this.options=i.assign({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new u,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,e.windowBits);if(r!==a.Z_OK)throw new Error(s[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),e.dictionary&&(\"string\"==typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):\"[object ArrayBuffer]\"===f.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=n.inflateSetDictionary(this.strm,e.dictionary))!==a.Z_OK))throw new Error(s[r])}function h(t,e){var r=new l(e);if(r.push(t,!0),r.err)throw r.msg||s[r.err];return r.result}l.prototype.push=function(t,e){var r,s,u,c,l,h=this.strm,d=this.options.chunkSize,p=this.options.dictionary,m=!1;if(this.ended)return!1;s=e===~~e?e:!0===e?a.Z_FINISH:a.Z_NO_FLUSH,\"string\"==typeof t?h.input=o.binstring2buf(t):\"[object ArrayBuffer]\"===f.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new i.Buf8(d),h.next_out=0,h.avail_out=d),(r=n.inflate(h,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&p&&(r=n.inflateSetDictionary(this.strm,p)),r===a.Z_BUF_ERROR&&!0===m&&(r=a.Z_OK,m=!1),r!==a.Z_STREAM_END&&r!==a.Z_OK)return this.onEnd(r),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&r!==a.Z_STREAM_END&&(0!==h.avail_in||s!==a.Z_FINISH&&s!==a.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(u=o.utf8border(h.output,h.next_out),c=h.next_out-u,l=o.buf2string(h.output,u),h.next_out=c,h.avail_out=d-c,c&&i.arraySet(h.output,h.output,u,c,0),this.onData(l)):this.onData(i.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(m=!0)}while((h.avail_in>0||0===h.avail_out)&&r!==a.Z_STREAM_END);return r===a.Z_STREAM_END&&(s=a.Z_FINISH),s===a.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===a.Z_OK):s!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),h.avail_out=0,!0)},l.prototype.onData=function(t){this.chunks.push(t)},l.prototype.onEnd=function(t){t===a.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Inflate=l,r.inflate=h,r.inflateRaw=function(t,e){return(e=e||{}).raw=!0,h(t,e)},r.ungzip=h},{\"./utils/common\":442,\"./utils/strings\":443,\"./zlib/constants\":445,\"./zlib/gzheader\":448,\"./zlib/inflate\":450,\"./zlib/messages\":452,\"./zlib/zstream\":454}],442:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(\"object\"!==n(r))throw new TypeError(r+\"must be non-object\");for(var i in r)o(r,i)&&(t[i]=r[i])}}return t},r.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var a={arraySet:function(t,e,r,n,i){if(e.subarray&&t.subarray)t.set(e.subarray(r,r+n),i);else for(var o=0;o<n;o++)t[i+o]=e[r+o]},flattenChunks:function(t){var e,r,n,i,o,a;for(n=0,e=0,r=t.length;e<r;e++)n+=t[e].length;for(a=new Uint8Array(n),i=0,e=0,r=t.length;e<r;e++)o=t[e],a.set(o,i),i+=o.length;return a}},s={arraySet:function(t,e,r,n,i){for(var o=0;o<n;o++)t[i+o]=e[r+o]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,a)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],443:[function(t,e,r){\"use strict\";var n=t(\"./common\"),i=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(t){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){o=!1}for(var a=new n.Buf8(256),s=0;s<256;s++)a[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;function u(t,e){if(e<65534&&(t.subarray&&o||!t.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(t,e));for(var r=\"\",a=0;a<e;a++)r+=String.fromCharCode(t[a]);return r}a[254]=a[254]=1,r.string2buf=function(t){var e,r,i,o,a,s=t.length,u=0;for(o=0;o<s;o++)55296==(64512&(r=t.charCodeAt(o)))&&o+1<s&&56320==(64512&(i=t.charCodeAt(o+1)))&&(r=65536+(r-55296<<10)+(i-56320),o++),u+=r<128?1:r<2048?2:r<65536?3:4;for(e=new n.Buf8(u),a=0,o=0;a<u;o++)55296==(64512&(r=t.charCodeAt(o)))&&o+1<s&&56320==(64512&(i=t.charCodeAt(o+1)))&&(r=65536+(r-55296<<10)+(i-56320),o++),r<128?e[a++]=r:r<2048?(e[a++]=192|r>>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e},r.buf2binstring=function(t){return u(t,t.length)},r.binstring2buf=function(t){for(var e=new n.Buf8(t.length),r=0,i=e.length;r<i;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,n,i,o,s=e||t.length,c=new Array(2*s);for(n=0,r=0;r<s;)if((i=t[r++])<128)c[n++]=i;else if((o=a[i])>4)c[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r<s;)i=i<<6|63&t[r++],o--;o>1?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i)}return u(c,n)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}},{\"./common\":442}],444:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,n){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{o=o+(i=i+e[n++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}},{}],445:[function(t,e,r){\"use strict\";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],446:[function(t,e,r){\"use strict\";var n=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var o=n,a=i+r;t^=-1;for(var s=i;s<a;s++)t=t>>>8^o[255&(t^e[s])];return-1^t}},{}],447:[function(t,e,r){\"use strict\";var n,i=t(\"../utils/common\"),o=t(\"./trees\"),a=t(\"./adler32\"),s=t(\"./crc32\"),u=t(\"./messages\");function c(t,e){return t.msg=u[e],e}function f(t){return(t<<1)-(t>4?9:0)}function l(t){for(var e=t.length;--e>=0;)t[e]=0}function h(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(i.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function d(t,e){o._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,h(t.strm)}function p(t,e){t.pending_buf[t.pending++]=e}function m(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function y(t,e){var r,n,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,c=t.window,f=t.w_mask,l=t.prev,h=t.strstart+258,d=c[o+a-1],p=c[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(c[(r=e)+a]===p&&c[r+a-1]===d&&c[r]===c[o]&&c[++r]===c[o+1]){o+=2,r++;do{}while(c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&o<h);if(n=258-(h-o),o=h-258,n>a){if(t.match_start=e,a=n,n>=s)break;d=c[o+a-1],p=c[o+a]}}}while((e=l[e&f])>u&&0!=--i);return a<=t.lookahead?a:t.lookahead}function b(t){var e,r,n,o,u,c,f,l,h,d,p=t.w_size;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=p+(p-262)){i.arraySet(t.window,t.window,p,p,0),t.match_start-=p,t.strstart-=p,t.block_start-=p,e=r=t.hash_size;do{n=t.head[--e],t.head[e]=n>=p?n-p:0}while(--r);e=r=p;do{n=t.prev[--e],t.prev[e]=n>=p?n-p:0}while(--r);o+=p}if(0===t.strm.avail_in)break;if(c=t.strm,f=t.window,l=t.strstart+t.lookahead,h=o,d=void 0,(d=c.avail_in)>h&&(d=h),r=0===d?0:(c.avail_in-=d,i.arraySet(f,c.input,c.next_in,d,l),1===c.state.wrap?c.adler=a(c.adler,f,d,l):2===c.state.wrap&&(c.adler=s(c.adler,f,d,l)),c.next_in+=d,c.total_in+=d,d),t.lookahead+=r,t.lookahead+t.insert>=3)for(u=t.strstart-t.insert,t.ins_h=t.window[u],t.ins_h=(t.ins_h<<t.hash_shift^t.window[u+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[u+3-1])&t.hash_mask,t.prev[u&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=u,u++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<262&&0!==t.strm.avail_in)}function v(t,e){for(var r,n;;){if(t.lookahead<262){if(b(t),t.lookahead<262&&0===e)return 1;if(0===t.lookahead)break}if(r=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==r&&t.strstart-r<=t.w_size-262&&(t.match_length=y(t,r)),t.match_length>=3)if(n=o._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else n=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}function g(t,e){for(var r,n,i;;){if(t.lookahead<262){if(b(t),t.lookahead<262&&0===e)return 1;if(0===t.lookahead)break}if(r=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==r&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-262&&(t.match_length=y(t,r),t.match_length<=5&&(1===t.strategy||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,n=o._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(d(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((n=o._tr_tally(t,0,t.window[t.strstart-1]))&&d(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=o._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}function w(t,e,r,n,i){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=n,this.func=i}function _(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i.Buf16(1146),this.dyn_dtree=new i.Buf16(122),this.bl_tree=new i.Buf16(78),l(this.dyn_ltree),l(this.dyn_dtree),l(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i.Buf16(16),this.heap=new i.Buf16(573),l(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.Buf16(573),l(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function k(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=2,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:113,t.adler=2===e.wrap?0:1,e.last_flush=0,o._tr_init(e),0):c(t,-2)}function x(t){var e,r=k(t);return 0===r&&((e=t.state).window_size=2*e.w_size,l(e.head),e.max_lazy_match=n[e.level].max_lazy,e.good_match=n[e.level].good_length,e.nice_match=n[e.level].nice_length,e.max_chain_length=n[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0),r}function S(t,e,r,n,o,a){if(!t)return-2;var s=1;if(-1===e&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),o<1||o>9||8!==r||n<8||n>15||e<0||e>9||a<0||a>4)return c(t,-2);8===n&&(n=9);var u=new _;return t.state=u,u.strm=t,u.wrap=s,u.gzhead=null,u.w_bits=n,u.w_size=1<<u.w_bits,u.w_mask=u.w_size-1,u.hash_bits=o+7,u.hash_size=1<<u.hash_bits,u.hash_mask=u.hash_size-1,u.hash_shift=~~((u.hash_bits+3-1)/3),u.window=new i.Buf8(2*u.w_size),u.head=new i.Buf16(u.hash_size),u.prev=new i.Buf16(u.w_size),u.lit_bufsize=1<<o+6,u.pending_buf_size=4*u.lit_bufsize,u.pending_buf=new i.Buf8(u.pending_buf_size),u.d_buf=1*u.lit_bufsize,u.l_buf=3*u.lit_bufsize,u.level=e,u.strategy=a,u.method=r,x(t)}n=[new w(0,0,0,0,(function(t,e){var r=65535;for(r>t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(b(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,d(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(d(t,!1),t.strm.avail_out),1)})),new w(4,4,8,4,v),new w(4,5,16,8,v),new w(4,6,32,32,v),new w(4,4,16,16,g),new w(8,16,32,32,g),new w(8,16,128,128,g),new w(8,32,128,256,g),new w(32,128,258,1024,g),new w(32,258,258,4096,g)],r.deflateInit=function(t,e){return S(t,e,8,15,8,0)},r.deflateInit2=S,r.deflateReset=x,r.deflateResetKeep=k,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},r.deflate=function(t,e){var r,i,a,u;if(!t||!t.state||e>5||e<0)return t?c(t,-2):-2;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&4!==e)return c(t,0===t.avail_out?-5:-2);if(i.strm=t,r=i.last_flush,i.last_flush=e,42===i.status)if(2===i.wrap)t.adler=0,p(i,31),p(i,139),p(i,8),i.gzhead?(p(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),p(i,255&i.gzhead.time),p(i,i.gzhead.time>>8&255),p(i,i.gzhead.time>>16&255),p(i,i.gzhead.time>>24&255),p(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),p(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(p(i,255&i.gzhead.extra.length),p(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=s(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(p(i,0),p(i,0),p(i,0),p(i,0),p(i,0),p(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),p(i,3),i.status=113);else{var y=8+(i.w_bits-8<<4)<<8;y|=(i.strategy>=2||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(y|=32),y+=31-y%31,i.status=113,m(i,y),0!==i.strstart&&(m(i,t.adler>>>16),m(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),h(t),a=i.pending,i.pending!==i.pending_buf_size));)p(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),h(t),a=i.pending,i.pending===i.pending_buf_size)){u=1;break}u=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,p(i,u)}while(0!==u);i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),0===u&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),h(t),a=i.pending,i.pending===i.pending_buf_size)){u=1;break}u=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,p(i,u)}while(0!==u);i.gzhead.hcrc&&i.pending>a&&(t.adler=s(t.adler,i.pending_buf,i.pending-a,a)),0===u&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&h(t),i.pending+2<=i.pending_buf_size&&(p(i,255&t.adler),p(i,t.adler>>8&255),t.adler=0,i.status=113)):i.status=113),0!==i.pending){if(h(t),0===t.avail_out)return i.last_flush=-1,0}else if(0===t.avail_in&&f(e)<=f(r)&&4!==e)return c(t,-5);if(666===i.status&&0!==t.avail_in)return c(t,-5);if(0!==t.avail_in||0!==i.lookahead||0!==e&&666!==i.status){var v=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(b(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}(i,e):3===i.strategy?function(t,e){for(var r,n,i,a,s=t.window;;){if(t.lookahead<=258){if(b(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=s[i=t.strstart-1])===s[++i]&&n===s[++i]&&n===s[++i]){a=t.strstart+258;do{}while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&i<a);t.match_length=258-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=o._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}(i,e):n[i.level].func(i,e);if(3!==v&&4!==v||(i.status=666),1===v||3===v)return 0===t.avail_out&&(i.last_flush=-1),0;if(2===v&&(1===e?o._tr_align(i):5!==e&&(o._tr_stored_block(i,0,0,!1),3===e&&(l(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),h(t),0===t.avail_out))return i.last_flush=-1,0}return 4!==e?0:i.wrap<=0?1:(2===i.wrap?(p(i,255&t.adler),p(i,t.adler>>8&255),p(i,t.adler>>16&255),p(i,t.adler>>24&255),p(i,255&t.total_in),p(i,t.total_in>>8&255),p(i,t.total_in>>16&255),p(i,t.total_in>>24&255)):(m(i,t.adler>>>16),m(i,65535&t.adler)),h(t),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?0:1)},r.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?c(t,-2):(t.state=null,113===e?c(t,-3):0):-2},r.deflateSetDictionary=function(t,e){var r,n,o,s,u,c,f,h,d=e.length;if(!t||!t.state)return-2;if(2===(s=(r=t.state).wrap)||1===s&&42!==r.status||r.lookahead)return-2;for(1===s&&(t.adler=a(t.adler,e,d,0)),r.wrap=0,d>=r.w_size&&(0===s&&(l(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new i.Buf8(r.w_size),i.arraySet(h,e,d-r.w_size,r.w_size,0),e=h,d=r.w_size),u=t.avail_in,c=t.next_in,f=t.input,t.avail_in=d,t.next_in=0,t.input=e,b(r);r.lookahead>=3;){n=r.strstart,o=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++}while(--o);r.strstart=n,r.lookahead=2,b(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,t.next_in=c,t.input=f,t.avail_in=u,r.wrap=s,0},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":442,\"./adler32\":444,\"./crc32\":446,\"./messages\":452,\"./trees\":453}],448:[function(t,e,r){\"use strict\";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],449:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r,n,i,o,a,s,u,c,f,l,h,d,p,m,y,b,v,g,w,_,k,x,S,O,j;r=t.state,n=t.next_in,O=t.input,i=n+(t.avail_in-5),o=t.next_out,j=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),u=r.dmax,c=r.wsize,f=r.whave,l=r.wnext,h=r.window,d=r.hold,p=r.bits,m=r.lencode,y=r.distcode,b=(1<<r.lenbits)-1,v=(1<<r.distbits)-1;t:do{p<15&&(d+=O[n++]<<p,p+=8,d+=O[n++]<<p,p+=8),g=m[d&b];e:for(;;){if(d>>>=w=g>>>24,p-=w,0===(w=g>>>16&255))j[o++]=65535&g;else{if(!(16&w)){if(0==(64&w)){g=m[(65535&g)+(d&(1<<w)-1)];continue e}if(32&w){r.mode=12;break t}t.msg=\"invalid literal/length code\",r.mode=30;break t}_=65535&g,(w&=15)&&(p<w&&(d+=O[n++]<<p,p+=8),_+=d&(1<<w)-1,d>>>=w,p-=w),p<15&&(d+=O[n++]<<p,p+=8,d+=O[n++]<<p,p+=8),g=y[d&v];r:for(;;){if(d>>>=w=g>>>24,p-=w,!(16&(w=g>>>16&255))){if(0==(64&w)){g=y[(65535&g)+(d&(1<<w)-1)];continue r}t.msg=\"invalid distance code\",r.mode=30;break t}if(k=65535&g,p<(w&=15)&&(d+=O[n++]<<p,(p+=8)<w&&(d+=O[n++]<<p,p+=8)),(k+=d&(1<<w)-1)>u){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(d>>>=w,p-=w,k>(w=o-a)){if((w=k-w)>f&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(x=0,S=h,0===l){if(x+=c-w,w<_){_-=w;do{j[o++]=h[x++]}while(--w);x=o-k,S=j}}else if(l<w){if(x+=c+l-w,(w-=l)<_){_-=w;do{j[o++]=h[x++]}while(--w);if(x=0,l<_){_-=w=l;do{j[o++]=h[x++]}while(--w);x=o-k,S=j}}}else if(x+=l-w,w<_){_-=w;do{j[o++]=h[x++]}while(--w);x=o-k,S=j}for(;_>2;)j[o++]=S[x++],j[o++]=S[x++],j[o++]=S[x++],_-=3;_&&(j[o++]=S[x++],_>1&&(j[o++]=S[x++]))}else{x=o-k;do{j[o++]=j[x++],j[o++]=j[x++],j[o++]=j[x++],_-=3}while(_>2);_&&(j[o++]=j[x++],_>1&&(j[o++]=j[x++]))}break}}break}}while(n<i&&o<s);n-=_=p>>3,d&=(1<<(p-=_<<3))-1,t.next_in=n,t.next_out=o,t.avail_in=n<i?i-n+5:5-(n-i),t.avail_out=o<s?s-o+257:257-(o-s),r.hold=d,r.bits=p}},{}],450:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\"),i=t(\"./adler32\"),o=t(\"./crc32\"),a=t(\"./inffast\"),s=t(\"./inftrees\");function u(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new n.Buf32(852),e.distcode=e.distdyn=new n.Buf32(592),e.sane=1,e.back=-1,0):-2}function l(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,f(t)):-2}function h(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,l(t))):-2}function d(t,e){var r,n;return t?(n=new c,t.state=n,n.window=null,0!==(r=h(t,e))&&(t.state=null),r):-2}var p,m,y=!0;function b(t){if(y){var e;for(p=new n.Buf32(512),m=new n.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(s(1,t.lens,0,288,p,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;s(2,t.lens,0,32,m,0,t.work,{bits:5}),y=!1}t.lencode=p,t.lenbits=9,t.distcode=m,t.distbits=5}function v(t,e,r,i){var o,a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new n.Buf8(a.wsize)),i>=a.wsize?(n.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((o=a.wsize-a.wnext)>i&&(o=i),n.arraySet(a.window,e,r-i,o,a.wnext),(i-=o)?(n.arraySet(a.window,e,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=o))),0}r.inflateReset=l,r.inflateReset2=h,r.inflateResetKeep=f,r.inflateInit=function(t){return d(t,15)},r.inflateInit2=d,r.inflate=function(t,e){var r,c,f,l,h,d,p,m,y,g,w,_,k,x,S,O,j,E,R,T,C,P,M,A,I=0,N=new n.Buf8(4),D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return-2;12===(r=t.state).mode&&(r.mode=13),h=t.next_out,f=t.output,p=t.avail_out,l=t.next_in,c=t.input,d=t.avail_in,m=r.hold,y=r.bits,g=d,w=p,P=0;t:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;y<16;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(2&r.wrap&&35615===m){r.check=0,N[0]=255&m,N[1]=m>>>8&255,r.check=o(r.check,N,2,0),m=0,y=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&m)){t.msg=\"unknown compression method\",r.mode=30;break}if(y-=4,C=8+(15&(m>>>=4)),0===r.wbits)r.wbits=C;else if(C>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<C,t.adler=r.check=1,r.mode=512&m?10:12,m=0,y=0;break;case 2:for(;y<16;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(r.flags=m,8!=(255&r.flags)){t.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){t.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=m>>8&1),512&r.flags&&(N[0]=255&m,N[1]=m>>>8&255,r.check=o(r.check,N,2,0)),m=0,y=0,r.mode=3;case 3:for(;y<32;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.head&&(r.head.time=m),512&r.flags&&(N[0]=255&m,N[1]=m>>>8&255,N[2]=m>>>16&255,N[3]=m>>>24&255,r.check=o(r.check,N,4,0)),m=0,y=0,r.mode=4;case 4:for(;y<16;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.head&&(r.head.xflags=255&m,r.head.os=m>>8),512&r.flags&&(N[0]=255&m,N[1]=m>>>8&255,r.check=o(r.check,N,2,0)),m=0,y=0,r.mode=5;case 5:if(1024&r.flags){for(;y<16;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.length=m,r.head&&(r.head.extra_len=m),512&r.flags&&(N[0]=255&m,N[1]=m>>>8&255,r.check=o(r.check,N,2,0)),m=0,y=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((_=r.length)>d&&(_=d),_&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,l,_,C)),512&r.flags&&(r.check=o(r.check,c,_,l)),d-=_,l+=_,r.length-=_),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===d)break t;_=0;do{C=c[l+_++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C))}while(C&&_<d);if(512&r.flags&&(r.check=o(r.check,c,_,l)),d-=_,l+=_,C)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===d)break t;_=0;do{C=c[l+_++],r.head&&C&&r.length<65536&&(r.head.comment+=String.fromCharCode(C))}while(C&&_<d);if(512&r.flags&&(r.check=o(r.check,c,_,l)),d-=_,l+=_,C)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;y<16;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(m!==(65535&r.check)){t.msg=\"header crc mismatch\",r.mode=30;break}m=0,y=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;y<32;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}t.adler=r.check=u(m),m=0,y=0,r.mode=11;case 11:if(0===r.havedict)return t.next_out=h,t.avail_out=p,t.next_in=l,t.avail_in=d,r.hold=m,r.bits=y,2;t.adler=r.check=1,r.mode=12;case 12:if(5===e||6===e)break t;case 13:if(r.last){m>>>=7&y,y-=7&y,r.mode=27;break}for(;y<3;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}switch(r.last=1&m,y-=1,3&(m>>>=1)){case 0:r.mode=14;break;case 1:if(b(r),r.mode=20,6===e){m>>>=2,y-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}m>>>=2,y-=2;break;case 14:for(m>>>=7&y,y-=7&y;y<32;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if((65535&m)!=(m>>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&m,m=0,y=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(_=r.length){if(_>d&&(_=d),_>p&&(_=p),0===_)break t;n.arraySet(f,c,l,_,h),d-=_,l+=_,p-=_,h+=_,r.length-=_;break}r.mode=12;break;case 17:for(;y<14;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(r.nlen=257+(31&m),m>>>=5,y-=5,r.ndist=1+(31&m),m>>>=5,y-=5,r.ncode=4+(15&m),m>>>=4,y-=4,r.nlen>286||r.ndist>30){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;y<3;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.lens[D[r.have++]]=7&m,m>>>=3,y-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,M={bits:r.lenbits},P=s(0,r.lens,0,19,r.lencode,0,r.work,M),r.lenbits=M.bits,P){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;O=(I=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,j=65535&I,!((S=I>>>24)<=y);){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(j<16)m>>>=S,y-=S,r.lens[r.have++]=j;else{if(16===j){for(A=S+2;y<A;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(m>>>=S,y-=S,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}C=r.lens[r.have-1],_=3+(3&m),m>>>=2,y-=2}else if(17===j){for(A=S+3;y<A;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}y-=S,C=0,_=3+(7&(m>>>=S)),m>>>=3,y-=3}else{for(A=S+7;y<A;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}y-=S,C=0,_=11+(127&(m>>>=S)),m>>>=7,y-=7}if(r.have+_>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;_--;)r.lens[r.have++]=C}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,M={bits:r.lenbits},P=s(1,r.lens,0,r.nlen,r.lencode,0,r.work,M),r.lenbits=M.bits,P){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,M={bits:r.distbits},P=s(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,M),r.distbits=M.bits,P){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(d>=6&&p>=258){t.next_out=h,t.avail_out=p,t.next_in=l,t.avail_in=d,r.hold=m,r.bits=y,a(t,w),h=t.next_out,f=t.output,p=t.avail_out,l=t.next_in,c=t.input,d=t.avail_in,m=r.hold,y=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;O=(I=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,j=65535&I,!((S=I>>>24)<=y);){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(O&&0==(240&O)){for(E=S,R=O,T=j;O=(I=r.lencode[T+((m&(1<<E+R)-1)>>E)])>>>16&255,j=65535&I,!(E+(S=I>>>24)<=y);){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}m>>>=E,y-=E,r.back+=E}if(m>>>=S,y-=S,r.back+=S,r.length=j,0===O){r.mode=26;break}if(32&O){r.back=-1,r.mode=12;break}if(64&O){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&O,r.mode=22;case 22:if(r.extra){for(A=r.extra;y<A;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.length+=m&(1<<r.extra)-1,m>>>=r.extra,y-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;O=(I=r.distcode[m&(1<<r.distbits)-1])>>>16&255,j=65535&I,!((S=I>>>24)<=y);){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(0==(240&O)){for(E=S,R=O,T=j;O=(I=r.distcode[T+((m&(1<<E+R)-1)>>E)])>>>16&255,j=65535&I,!(E+(S=I>>>24)<=y);){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}m>>>=E,y-=E,r.back+=E}if(m>>>=S,y-=S,r.back+=S,64&O){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=j,r.extra=15&O,r.mode=24;case 24:if(r.extra){for(A=r.extra;y<A;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}r.offset+=m&(1<<r.extra)-1,m>>>=r.extra,y-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===p)break t;if(_=w-p,r.offset>_){if((_=r.offset-_)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}_>r.wnext?(_-=r.wnext,k=r.wsize-_):k=r.wnext-_,_>r.length&&(_=r.length),x=r.window}else x=f,k=h-r.offset,_=r.length;_>p&&(_=p),p-=_,r.length-=_;do{f[h++]=x[k++]}while(--_);0===r.length&&(r.mode=21);break;case 26:if(0===p)break t;f[h++]=r.length,p--,r.mode=21;break;case 27:if(r.wrap){for(;y<32;){if(0===d)break t;d--,m|=c[l++]<<y,y+=8}if(w-=p,t.total_out+=w,r.total+=w,w&&(t.adler=r.check=r.flags?o(r.check,f,w,h-w):i(r.check,f,w,h-w)),w=p,(r.flags?m:u(m))!==r.check){t.msg=\"incorrect data check\",r.mode=30;break}m=0,y=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;y<32;){if(0===d)break t;d--,m+=c[l++]<<y,y+=8}if(m!==(4294967295&r.total)){t.msg=\"incorrect length check\",r.mode=30;break}m=0,y=0}r.mode=29;case 29:P=1;break t;case 30:P=-3;break t;case 31:return-4;case 32:default:return-2}return t.next_out=h,t.avail_out=p,t.next_in=l,t.avail_in=d,r.hold=m,r.bits=y,(r.wsize||w!==t.avail_out&&r.mode<30&&(r.mode<27||4!==e))&&v(t,t.output,t.next_out,w-t.avail_out)?(r.mode=31,-4):(g-=t.avail_in,w-=t.avail_out,t.total_in+=g,t.total_out+=w,r.total+=w,r.wrap&&w&&(t.adler=r.check=r.flags?o(r.check,f,w,t.next_out-w):i(r.check,f,w,t.next_out-w)),t.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0===g&&0===w||4===e)&&0===P&&(P=-5),P)},r.inflateEnd=function(t){if(!t||!t.state)return-2;var e=t.state;return e.window&&(e.window=null),t.state=null,0},r.inflateGetHeader=function(t,e){var r;return t&&t.state?0==(2&(r=t.state).wrap)?-2:(r.head=e,e.done=!1,0):-2},r.inflateSetDictionary=function(t,e){var r,n=e.length;return t&&t.state?0!==(r=t.state).wrap&&11!==r.mode?-2:11===r.mode&&i(1,e,n,0)!==r.check?-3:v(t,e,n,n)?(r.mode=31,-4):(r.havedict=1,0):-2},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":442,\"./adler32\":444,\"./crc32\":446,\"./inffast\":449,\"./inftrees\":451}],451:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\"),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],s=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,r,u,c,f,l,h){var d,p,m,y,b,v,g,w,_,k=h.bits,x=0,S=0,O=0,j=0,E=0,R=0,T=0,C=0,P=0,M=0,A=null,I=0,N=new n.Buf16(16),D=new n.Buf16(16),B=null,F=0;for(x=0;x<=15;x++)N[x]=0;for(S=0;S<u;S++)N[e[r+S]]++;for(E=k,j=15;j>=1&&0===N[j];j--);if(E>j&&(E=j),0===j)return c[f++]=20971520,c[f++]=20971520,h.bits=1,0;for(O=1;O<j&&0===N[O];O++);for(E<O&&(E=O),C=1,x=1;x<=15;x++)if(C<<=1,(C-=N[x])<0)return-1;if(C>0&&(0===t||1!==j))return-1;for(D[1]=0,x=1;x<15;x++)D[x+1]=D[x]+N[x];for(S=0;S<u;S++)0!==e[r+S]&&(l[D[e[r+S]]++]=S);if(0===t?(A=B=l,v=19):1===t?(A=i,I-=257,B=o,F-=257,v=256):(A=a,B=s,v=-1),M=0,S=0,x=O,b=f,R=E,T=0,m=-1,y=(P=1<<E)-1,1===t&&P>852||2===t&&P>592)return 1;for(;;){g=x-T,l[S]<v?(w=0,_=l[S]):l[S]>v?(w=B[F+l[S]],_=A[I+l[S]]):(w=96,_=0),d=1<<x-T,O=p=1<<R;do{c[b+(M>>T)+(p-=d)]=g<<24|w<<16|_|0}while(0!==p);for(d=1<<x-1;M&d;)d>>=1;if(0!==d?(M&=d-1,M+=d):M=0,S++,0==--N[x]){if(x===j)break;x=e[r+l[S]]}if(x>E&&(M&y)!==m){for(0===T&&(T=E),b+=O,C=1<<(R=x-T);R+T<j&&!((C-=N[R+T])<=0);)R++,C<<=1;if(P+=1<<R,1===t&&P>852||2===t&&P>592)return 1;c[m=M&y]=E<<24|R<<16|b-f|0}}return 0!==M&&(c[b+M]=x-T<<24|64<<16|0),h.bits=E,0}},{\"../utils/common\":442}],452:[function(t,e,r){\"use strict\";e.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],453:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\");function i(t){for(var e=t.length;--e>=0;)t[e]=0}var o=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],a=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],u=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],c=new Array(576);i(c);var f=new Array(60);i(f);var l=new Array(512);i(l);var h=new Array(256);i(h);var d=new Array(29);i(d);var p,m,y,b=new Array(30);function v(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}function g(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function w(t){return t<256?l[t]:l[256+(t>>>7)]}function _(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function k(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<<t.bi_valid&65535,_(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=r)}function x(t,e,r){k(t,r[2*e],r[2*e+1])}function S(t,e){var r=0;do{r|=1&t,t>>>=1,r<<=1}while(--e>0);return r>>>1}function O(t,e,r){var n,i,o=new Array(16),a=0;for(n=1;n<=15;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=S(o[s]++,s))}}function j(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function E(t){t.bi_valid>8?_(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function R(t,e,r,n){var i=2*e,o=2*r;return t[i]<t[o]||t[i]===t[o]&&n[e]<=n[r]}function T(t,e,r){for(var n=t.heap[r],i=r<<1;i<=t.heap_len&&(i<t.heap_len&&R(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!R(e,n,t.heap[i],t.depth));)t.heap[r]=t.heap[i],r=i,i<<=1;t.heap[r]=n}function C(t,e,r){var n,i,s,u,c=0;if(0!==t.last_lit)do{n=t.pending_buf[t.d_buf+2*c]<<8|t.pending_buf[t.d_buf+2*c+1],i=t.pending_buf[t.l_buf+c],c++,0===n?x(t,i,e):(x(t,(s=h[i])+256+1,e),0!==(u=o[s])&&k(t,i-=d[s],u),x(t,s=w(--n),r),0!==(u=a[s])&&k(t,n-=b[s],u))}while(c<t.last_lit);x(t,256,e)}function P(t,e){var r,n,i,o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.has_stree,u=e.stat_desc.elems,c=-1;for(t.heap_len=0,t.heap_max=573,r=0;r<u;r++)0!==o[2*r]?(t.heap[++t.heap_len]=c=r,t.depth[r]=0):o[2*r+1]=0;for(;t.heap_len<2;)o[2*(i=t.heap[++t.heap_len]=c<2?++c:0)]=1,t.depth[i]=0,t.opt_len--,s&&(t.static_len-=a[2*i+1]);for(e.max_code=c,r=t.heap_len>>1;r>=1;r--)T(t,o,r);i=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],T(t,o,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,o[2*i]=o[2*r]+o[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,o[2*r+1]=o[2*n+1]=i,t.heap[1]=i++,T(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,o,a,s,u=e.dyn_tree,c=e.max_code,f=e.stat_desc.static_tree,l=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(o=0;o<=15;o++)t.bl_count[o]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(o=u[2*u[2*(n=t.heap[r])+1]+1]+1)>p&&(o=p,m++),u[2*n+1]=o,n>c||(t.bl_count[o]++,a=0,n>=d&&(a=h[n-d]),s=u[2*n],t.opt_len+=s*(o+a),l&&(t.static_len+=s*(f[2*n+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(n=t.bl_count[o];0!==n;)(i=t.heap[--r])>c||(u[2*i+1]!==o&&(t.opt_len+=(o-u[2*i+1])*u[2*i],u[2*i+1]=o),n--)}}(t,e),O(o,c,t.bl_count)}function M(t,e,r){var n,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),e[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=e[2*(n+1)+1],++s<u&&i===a||(s<c?t.bl_tree[2*i]+=s:0!==i?(i!==o&&t.bl_tree[2*i]++,t.bl_tree[32]++):s<=10?t.bl_tree[34]++:t.bl_tree[36]++,s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4))}function A(t,e,r){var n,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),n=0;n<=r;n++)if(i=a,a=e[2*(n+1)+1],!(++s<u&&i===a)){if(s<c)do{x(t,i,t.bl_tree)}while(0!=--s);else 0!==i?(i!==o&&(x(t,i,t.bl_tree),s--),x(t,16,t.bl_tree),k(t,s-3,2)):s<=10?(x(t,17,t.bl_tree),k(t,s-3,3)):(x(t,18,t.bl_tree),k(t,s-11,7));s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4)}}i(b);var I=!1;function N(t,e,r,i){k(t,0+(i?1:0),3),function(t,e,r,i){E(t),i&&(_(t,r),_(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}r._tr_init=function(t){I||(!function(){var t,e,r,n,i,u=new Array(16);for(r=0,n=0;n<28;n++)for(d[n]=r,t=0;t<1<<o[n];t++)h[r++]=n;for(h[r-1]=n,i=0,n=0;n<16;n++)for(b[n]=i,t=0;t<1<<a[n];t++)l[i++]=n;for(i>>=7;n<30;n++)for(b[n]=i<<7,t=0;t<1<<a[n]-7;t++)l[256+i++]=n;for(e=0;e<=15;e++)u[e]=0;for(t=0;t<=143;)c[2*t+1]=8,t++,u[8]++;for(;t<=255;)c[2*t+1]=9,t++,u[9]++;for(;t<=279;)c[2*t+1]=7,t++,u[7]++;for(;t<=287;)c[2*t+1]=8,t++,u[8]++;for(O(c,287,u),t=0;t<30;t++)f[2*t+1]=5,f[2*t]=S(t,5);p=new v(c,o,257,286,15),m=new v(f,a,0,30,15),y=new v(new Array(0),s,0,19,7)}(),I=!0),t.l_desc=new g(t.dyn_ltree,p),t.d_desc=new g(t.dyn_dtree,m),t.bl_desc=new g(t.bl_tree,y),t.bi_buf=0,t.bi_valid=0,j(t)},r._tr_stored_block=N,r._tr_flush_block=function(t,e,r,n){var i,o,a=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),P(t,t.l_desc),P(t,t.d_desc),a=function(t){var e;for(M(t,t.dyn_ltree,t.l_desc.max_code),M(t,t.dyn_dtree,t.d_desc.max_code),P(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*u[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==e?N(t,e,r,n):4===t.strategy||o===i?(k(t,2+(n?1:0),3),C(t,c,f)):(k(t,4+(n?1:0),3),function(t,e,r,n){var i;for(k(t,e-257,5),k(t,r-1,5),k(t,n-4,4),i=0;i<n;i++)k(t,t.bl_tree[2*u[i]+1],3);A(t,t.dyn_ltree,e-1),A(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),C(t,t.dyn_ltree,t.dyn_dtree)),j(t),n&&E(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(h[r]+256+1)]++,t.dyn_dtree[2*w(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){k(t,2,3),x(t,256,c),function(t){16===t.bi_valid?(_(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":442}],454:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],455:[function(t,e,r){e.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}},{}],456:[function(t,e,r){\"use strict\";var n=t(\"asn1.js\");r.certificate=t(\"./certificate\");var i=n.define(\"RSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())}));r.RSAPrivateKey=i;var o=n.define(\"RSAPublicKey\",(function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())}));r.RSAPublicKey=o;var a=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(s),this.key(\"subjectPublicKey\").bitstr())}));r.PublicKey=a;var s=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())})),u=n.define(\"PrivateKeyInfo\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(s),this.key(\"subjectPrivateKey\").octstr())}));r.PrivateKey=u;var c=n.define(\"EncryptedPrivateKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())}));r.EncryptedPrivateKey=c;var f=n.define(\"DSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())}));r.DSAPrivateKey=f,r.DSAparam=n.define(\"DSAparam\",(function(){this.int()}));var l=n.define(\"ECPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(h),this.key(\"publicKey\").optional().explicit(1).bitstr())}));r.ECPrivateKey=l;var h=n.define(\"ECParameters\",(function(){this.choice({namedCurve:this.objid()})}));r.signature=n.define(\"signature\",(function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())}))},{\"./certificate\":457,\"asn1.js\":167}],457:[function(t,e,r){\"use strict\";var n=t(\"asn1.js\"),i=n.define(\"Time\",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),o=n.define(\"AttributeTypeValue\",(function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())})),a=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())})),s=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(a),this.key(\"subjectPublicKey\").bitstr())})),u=n.define(\"RelativeDistinguishedName\",(function(){this.setof(o)})),c=n.define(\"RDNSequence\",(function(){this.seqof(u)})),f=n.define(\"Name\",(function(){this.choice({rdnSequence:this.use(c)})})),l=n.define(\"Validity\",(function(){this.seq().obj(this.key(\"notBefore\").use(i),this.key(\"notAfter\").use(i))})),h=n.define(\"Extension\",(function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(!1),this.key(\"extnValue\").octstr())})),d=n.define(\"TBSCertificate\",(function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(a),this.key(\"issuer\").use(f),this.key(\"validity\").use(l),this.key(\"subject\").use(f),this.key(\"subjectPublicKeyInfo\").use(s),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(h).optional())})),p=n.define(\"X509Certificate\",(function(){this.seq().obj(this.key(\"tbsCertificate\").use(d),this.key(\"signatureAlgorithm\").use(a),this.key(\"signatureValue\").bitstr())}));e.exports=p},{\"asn1.js\":167}],458:[function(t,e,r){\"use strict\";var n=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m,a=t(\"evp_bytestokey\"),s=t(\"browserify-aes\"),u=t(\"safe-buffer\").Buffer;e.exports=function(t,e){var r,c=t.toString(),f=c.match(n);if(f){var l=\"aes\"+f[1],h=u.from(f[2],\"hex\"),d=u.from(f[3].replace(/[\\r\\n]/g,\"\"),\"base64\"),p=a(e,h.slice(0,8),parseInt(f[1],10)).key,m=[],y=s.createDecipheriv(l,p,h);m.push(y.update(d)),m.push(y.final()),r=u.concat(m)}else{var b=c.match(o);r=u.from(b[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}return{tag:c.match(i)[1],data:r}}},{\"browserify-aes\":188,evp_bytestokey:368,\"safe-buffer\":494}],459:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=t(\"./asn1\"),o=t(\"./aesid.json\"),a=t(\"./fixProc\"),s=t(\"browserify-aes\"),u=t(\"pbkdf2\"),c=t(\"safe-buffer\").Buffer;function f(t){var e;\"object\"!==n(t)||c.isBuffer(t)||(e=t.passphrase,t=t.key),\"string\"==typeof t&&(t=c.from(t));var r,f,l=a(t,e),h=l.tag,d=l.data;switch(h){case\"CERTIFICATE\":f=i.certificate.decode(d,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":switch(f||(f=i.PublicKey.decode(d,\"der\")),r=f.algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return i.RSAPublicKey.decode(f.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":return f.subjectPrivateKey=f.subjectPublicKey,{type:\"ec\",data:f};case\"1.2.840.10040.4.1\":return f.algorithm.params.pub_key=i.DSAparam.decode(f.subjectPublicKey.data,\"der\"),{type:\"dsa\",data:f.algorithm.params};default:throw new Error(\"unknown key id \"+r)}case\"ENCRYPTED PRIVATE KEY\":d=function(t,e){var r=t.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),i=o[t.algorithm.decrypt.cipher.algo.join(\".\")],a=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,l=parseInt(i.split(\"-\")[1],10)/8,h=u.pbkdf2Sync(e,r,n,l,\"sha1\"),d=s.createDecipheriv(i,h,a),p=[];return p.push(d.update(f)),p.push(d.final()),c.concat(p)}(d=i.EncryptedPrivateKey.decode(d,\"der\"),e);case\"PRIVATE KEY\":switch(r=(f=i.PrivateKey.decode(d,\"der\")).algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return i.RSAPrivateKey.decode(f.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:f.algorithm.curve,privateKey:i.ECPrivateKey.decode(f.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":return f.algorithm.params.priv_key=i.DSAparam.decode(f.subjectPrivateKey,\"der\"),{type:\"dsa\",params:f.algorithm.params};default:throw new Error(\"unknown key id \"+r)}case\"RSA PUBLIC KEY\":return i.RSAPublicKey.decode(d,\"der\");case\"RSA PRIVATE KEY\":return i.RSAPrivateKey.decode(d,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:i.DSAPrivateKey.decode(d,\"der\")};case\"EC PRIVATE KEY\":return{curve:(d=i.ECPrivateKey.decode(d,\"der\")).parameters.value,privateKey:d.privateKey};default:throw new Error(\"unknown key type \"+h)}}e.exports=f,f.signature=i.signature},{\"./aesid.json\":455,\"./asn1\":456,\"./fixProc\":458,\"browserify-aes\":188,pbkdf2:460,\"safe-buffer\":494}],460:[function(t,e,r){\"use strict\";r.pbkdf2=t(\"./lib/async\"),r.pbkdf2Sync=t(\"./lib/sync\")},{\"./lib/async\":461,\"./lib/sync\":464}],461:[function(t,e,r){(function(r,n){\"use strict\";var i,o=t(\"safe-buffer\").Buffer,a=t(\"./precondition\"),s=t(\"./default-encoding\"),u=t(\"./sync\"),c=t(\"./to-buffer\"),f=n.crypto&&n.crypto.subtle,l={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"},h=[];function d(t,e,r,n,i){return f.importKey(\"raw\",t,{name:\"PBKDF2\"},!1,[\"deriveBits\"]).then((function(t){return f.deriveBits({name:\"PBKDF2\",salt:e,iterations:r,hash:{name:i}},t,n<<3)})).then((function(t){return o.from(t)}))}e.exports=function(t,e,p,m,y,b){\"function\"==typeof y&&(b=y,y=void 0);var v=l[(y=y||\"sha1\").toLowerCase()];if(!v||\"function\"!=typeof n.Promise)return r.nextTick((function(){var r;try{r=u(t,e,p,m,y)}catch(t){return b(t)}b(null,r)}));if(a(p,m),t=c(t,s,\"Password\"),e=c(e,s,\"Salt\"),\"function\"!=typeof b)throw new Error(\"No callback provided to pbkdf2\");!function(t,e){t.then((function(t){r.nextTick((function(){e(null,t)}))}),(function(t){r.nextTick((function(){e(t)}))}))}(function(t){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==h[t])return h[t];var e=d(i=i||o.alloc(8),i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return h[t]=e,e}(v).then((function(r){return r?d(t,e,p,m,v):u(t,e,p,m,y)})),b)}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./default-encoding\":462,\"./precondition\":463,\"./sync\":464,\"./to-buffer\":465,_process:467,\"safe-buffer\":494}],462:[function(t,e,r){(function(t){\"use strict\";var r;if(t.browser)r=\"utf-8\";else if(t.version){r=parseInt(t.version.split(\".\")[0].slice(1),10)>=6?\"utf-8\":\"binary\"}else r=\"utf-8\";e.exports=r}).call(this,t(\"_process\"))},{_process:467}],463:[function(t,e,r){\"use strict\";var n=Math.pow(2,30)-1;e.exports=function(t,e){if(\"number\"!=typeof t)throw new TypeError(\"Iterations not a number\");if(t<0)throw new TypeError(\"Bad iterations\");if(\"number\"!=typeof e)throw new TypeError(\"Key length not a number\");if(e<0||e>n||e!=e)throw new TypeError(\"Bad key length\")}},{}],464:[function(t,e,r){\"use strict\";var n=t(\"create-hash/md5\"),i=t(\"ripemd160\"),o=t(\"sha.js\"),a=t(\"safe-buffer\").Buffer,s=t(\"./precondition\"),u=t(\"./default-encoding\"),c=t(\"./to-buffer\"),f=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function h(t,e,r){var s=function(t){function e(e){return o(t).update(e).digest()}return\"rmd160\"===t||\"ripemd160\"===t?function(t){return(new i).update(t).digest()}:\"md5\"===t?n:e}(t),u=\"sha512\"===t||\"sha384\"===t?128:64;e.length>u?e=s(e):e.length<u&&(e=a.concat([e,f],u));for(var c=a.allocUnsafe(u+l[t]),h=a.allocUnsafe(u+l[t]),d=0;d<u;d++)c[d]=54^e[d],h[d]=92^e[d];var p=a.allocUnsafe(u+r+4);c.copy(p,0,0,u),this.ipad1=p,this.ipad2=c,this.opad=h,this.alg=t,this.blocksize=u,this.hash=s,this.size=l[t]}h.prototype.run=function(t,e){return t.copy(e,this.blocksize),this.hash(e).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(t,e,r,n,i){s(r,n);var o=new h(i=i||\"sha1\",t=c(t,u,\"Password\"),(e=c(e,u,\"Salt\")).length),f=a.allocUnsafe(n),d=a.allocUnsafe(e.length+4);e.copy(d,0,0,e.length);for(var p=0,m=l[i],y=Math.ceil(n/m),b=1;b<=y;b++){d.writeUInt32BE(b,e.length);for(var v=o.run(d,o.ipad1),g=v,w=1;w<r;w++){g=o.run(g,o.ipad2);for(var _=0;_<m;_++)v[_]^=g[_]}v.copy(f,p),p+=m}return f}},{\"./default-encoding\":462,\"./precondition\":463,\"./to-buffer\":465,\"create-hash/md5\":332,ripemd160:493,\"safe-buffer\":494,\"sha.js\":499}],465:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer;e.exports=function(t,e,r){if(n.isBuffer(t))return t;if(\"string\"==typeof t)return n.from(t,e);if(ArrayBuffer.isView(t))return n.from(t.buffer);throw new TypeError(r+\" must be a string, a Buffer, a typed array or a DataView\")}},{\"safe-buffer\":494}],466:[function(t,e,r){(function(t){\"use strict\";void 0===t||!t.version||0===t.version.indexOf(\"v0.\")||0===t.version.indexOf(\"v1.\")&&0!==t.version.indexOf(\"v1.8.\")?e.exports={nextTick:function(e,r,n,i){if(\"function\"!=typeof e)throw new TypeError('\"callback\" argument must be a function');var o,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,r)}));case 3:return t.nextTick((function(){e.call(null,r,n)}));case 4:return t.nextTick((function(){e.call(null,r,n,i)}));default:for(o=new Array(s-1),a=0;a<o.length;)o[a++]=arguments[a];return t.nextTick((function(){e.apply(null,o)}))}}}:e.exports=t}).call(this,t(\"_process\"))},{_process:467}],467:[function(t,e,r){\"use strict\";var n,i,o=e.exports={};function a(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function u(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{i=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var c,f=[],l=!1,h=-1;function d(){l&&c&&(l=!1,c.length?f=c.concat(f):h=-1,f.length&&p())}function p(){if(!l){var t=u(d);l=!0;for(var e=f.length;e;){for(c=f,f=[];++h<e;)c&&c[h].run();h=-1,e=f.length}c=null,l=!1,function(t){if(i===clearTimeout)return clearTimeout(t);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}(t)}}function m(t,e){this.fun=t,this.array=e}function y(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];f.push(new m(t,e)),1!==f.length||l||u(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(t){return[]},o.binding=function(t){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return\"/\"},o.chdir=function(t){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0}},{}],468:[function(t,e,r){\"use strict\";r.publicEncrypt=t(\"./publicEncrypt\"),r.privateDecrypt=t(\"./privateDecrypt\"),r.privateEncrypt=function(t,e){return r.publicEncrypt(t,e,!0)},r.publicDecrypt=function(t,e){return r.privateDecrypt(t,e,!0)}},{\"./privateDecrypt\":471,\"./publicEncrypt\":472}],469:[function(t,e,r){\"use strict\";var n=t(\"create-hash\"),i=t(\"safe-buffer\").Buffer;function o(t){var e=i.allocUnsafe(4);return e.writeUInt32BE(t,0),e}e.exports=function(t,e){for(var r,a=i.alloc(0),s=0;a.length<e;)r=o(s++),a=i.concat([a,n(\"sha1\").update(t).update(r).digest()]);return a.slice(0,e)}},{\"create-hash\":331,\"safe-buffer\":494}],470:[function(t,e,r){arguments[4][181][0].apply(r,arguments)},{buffer:185,dup:181}],471:[function(t,e,r){\"use strict\";var n=t(\"parse-asn1\"),i=t(\"./mgf\"),o=t(\"./xor\"),a=t(\"bn.js\"),s=t(\"browserify-rsa\"),u=t(\"create-hash\"),c=t(\"./withPublic\"),f=t(\"safe-buffer\").Buffer;e.exports=function(t,e,r){var l;l=t.padding?t.padding:r?1:4;var h,d=n(t),p=d.modulus.byteLength();if(e.length>p||new a(e).cmp(d.modulus)>=0)throw new Error(\"decryption error\");h=r?c(new a(e),d):s(e,d);var m=f.alloc(p-h.length);if(h=f.concat([m,h],p),4===l)return function(t,e){var r=t.modulus.byteLength(),n=u(\"sha1\").update(f.alloc(0)).digest(),a=n.length;if(0!==e[0])throw new Error(\"decryption error\");var s=e.slice(1,a+1),c=e.slice(a+1),l=o(s,i(c,a)),h=o(c,i(l,r-a-1));if(function(t,e){t=f.from(t),e=f.from(e);var r=0,n=t.length;t.length!==e.length&&(r++,n=Math.min(t.length,e.length));var i=-1;for(;++i<n;)r+=t[i]^e[i];return r}(n,h.slice(0,a)))throw new Error(\"decryption error\");var d=a;for(;0===h[d];)d++;if(1!==h[d++])throw new Error(\"decryption error\");return h.slice(d)}(d,h);if(1===l)return function(t,e,r){var n=e.slice(0,2),i=2,o=0;for(;0!==e[i++];)if(i>=e.length){o++;break}var a=e.slice(2,i-1);(\"0002\"!==n.toString(\"hex\")&&!r||\"0001\"!==n.toString(\"hex\")&&r)&&o++;a.length<8&&o++;if(o)throw new Error(\"decryption error\");return e.slice(i)}(0,h,r);if(3===l)return h;throw new Error(\"unknown padding\")}},{\"./mgf\":469,\"./withPublic\":473,\"./xor\":474,\"bn.js\":470,\"browserify-rsa\":206,\"create-hash\":331,\"parse-asn1\":459,\"safe-buffer\":494}],472:[function(t,e,r){\"use strict\";var n=t(\"parse-asn1\"),i=t(\"randombytes\"),o=t(\"create-hash\"),a=t(\"./mgf\"),s=t(\"./xor\"),u=t(\"bn.js\"),c=t(\"./withPublic\"),f=t(\"browserify-rsa\"),l=t(\"safe-buffer\").Buffer;e.exports=function(t,e,r){var h;h=t.padding?t.padding:r?1:4;var d,p=n(t);if(4===h)d=function(t,e){var r=t.modulus.byteLength(),n=e.length,c=o(\"sha1\").update(l.alloc(0)).digest(),f=c.length,h=2*f;if(n>r-h-2)throw new Error(\"message too long\");var d=l.alloc(r-n-h-2),p=r-f-1,m=i(f),y=s(l.concat([c,d,l.alloc(1,1),e],p),a(m,p)),b=s(m,a(y,f));return new u(l.concat([l.alloc(1),b,y],r))}(p,e);else if(1===h)d=function(t,e,r){var n,o=e.length,a=t.modulus.byteLength();if(o>a-11)throw new Error(\"message too long\");n=r?l.alloc(a-o-3,255):function(t){var e,r=l.allocUnsafe(t),n=0,o=i(2*t),a=0;for(;n<t;)a===o.length&&(o=i(2*t),a=0),(e=o[a++])&&(r[n++]=e);return r}(a-o-3);return new u(l.concat([l.from([0,r?1:2]),n,l.alloc(1),e],a))}(p,e,r);else{if(3!==h)throw new Error(\"unknown padding\");if((d=new u(e)).cmp(p.modulus)>=0)throw new Error(\"data too long for modulus\")}return r?f(d,p):c(d,p)}},{\"./mgf\":469,\"./withPublic\":473,\"./xor\":474,\"bn.js\":470,\"browserify-rsa\":206,\"create-hash\":331,\"parse-asn1\":459,randombytes:475,\"safe-buffer\":494}],473:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),i=t(\"safe-buffer\").Buffer;e.exports=function(t,e){return i.from(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}},{\"bn.js\":470,\"safe-buffer\":494}],474:[function(t,e,r){\"use strict\";e.exports=function(t,e){for(var r=t.length,n=-1;++n<r;)t[n]^=e[n];return t}},{}],475:[function(t,e,r){(function(r,n){\"use strict\";var i=t(\"safe-buffer\").Buffer,o=n.crypto||n.msCrypto;o&&o.getRandomValues?e.exports=function(t,e){if(t>4294967295)throw new RangeError(\"requested too many random bytes\");var n=i.allocUnsafe(t);if(t>0)if(t>65536)for(var a=0;a<t;a+=65536)o.getRandomValues(n.slice(a,a+65536));else o.getRandomValues(n);if(\"function\"==typeof e)return r.nextTick((function(){e(null,n)}));return n}:e.exports=function(){throw new Error(\"Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11\")}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:467,\"safe-buffer\":494}],476:[function(t,e,r){(function(e,n){\"use strict\";function i(){throw new Error(\"secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11\")}var o=t(\"safe-buffer\"),a=t(\"randombytes\"),s=o.Buffer,u=o.kMaxLength,c=n.crypto||n.msCrypto,f=Math.pow(2,32)-1;function l(t,e){if(\"number\"!=typeof t||t!=t)throw new TypeError(\"offset must be a number\");if(t>f||t<0)throw new TypeError(\"offset must be a uint32\");if(t>u||t>e)throw new RangeError(\"offset out of range\")}function h(t,e,r){if(\"number\"!=typeof t||t!=t)throw new TypeError(\"size must be a number\");if(t>f||t<0)throw new TypeError(\"size must be a uint32\");if(t+e>r||t>u)throw new RangeError(\"buffer too small\")}function d(t,r,n,i){if(e.browser){var o=t.buffer,s=new Uint8Array(o,r,n);return c.getRandomValues(s),i?void e.nextTick((function(){i(null,t)})):t}if(!i)return a(n).copy(t,r),t;a(n,(function(e,n){if(e)return i(e);n.copy(t,r),i(null,t)}))}c&&c.getRandomValues||!e.browser?(r.randomFill=function(t,e,r,i){if(!(s.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(\"function\"==typeof e)i=e,e=0,r=t.length;else if(\"function\"==typeof r)i=r,r=t.length-e;else if(\"function\"!=typeof i)throw new TypeError('\"cb\" argument must be a function');return l(e,t.length),h(r,e,t.length),d(t,e,r,i)},r.randomFillSync=function(t,e,r){void 0===e&&(e=0);if(!(s.isBuffer(t)||t instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');l(e,t.length),void 0===r&&(r=t.length-e);return h(r,e,t.length),d(t,e,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:467,randombytes:475,\"safe-buffer\":494}],477:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i={};function o(t,e,r){r||(r=Error);var n=function(t){var r,n;function i(r,n,i){return t.call(this,function(t,r,n){return\"string\"==typeof e?e:e(t,r,n)}(r,n,i))||this}return n=t,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);n.prototype.name=r.name,n.prototype.code=t,i[t]=n}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?\"one of \".concat(e,\" \").concat(t.slice(0,r-1).join(\", \"),\", or \")+t[r-1]:2===r?\"one of \".concat(e,\" \").concat(t[0],\" or \").concat(t[1]):\"of \".concat(e,\" \").concat(t[0])}return\"of \".concat(e,\" \").concat(String(t))}o(\"ERR_INVALID_OPT_VALUE\",(function(t,e){return'The value \"'+e+'\" is invalid for option \"'+t+'\"'}),TypeError),o(\"ERR_INVALID_ARG_TYPE\",(function(t,e,r){var i,o,s,u;if(\"string\"==typeof e&&(o=\"not \",e.substr(!s||s<0?0:+s,o.length)===o)?(i=\"must not be\",e=e.replace(/^not /,\"\")):i=\"must be\",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}(t,\" argument\"))u=\"The \".concat(t,\" \").concat(i,\" \").concat(a(e,\"type\"));else{var c=function(t,e,r){return\"number\"!=typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}(t,\".\")?\"property\":\"argument\";u='The \"'.concat(t,'\" ').concat(c,\" \").concat(i,\" \").concat(a(e,\"type\"))}return u+=\". Received type \".concat(n(r))}),TypeError),o(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\"),o(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(t){return\"The \"+t+\" method is not implemented\"})),o(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\"),o(\"ERR_STREAM_DESTROYED\",(function(t){return\"Cannot call \"+t+\" after a stream was destroyed\"})),o(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\"),o(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\"),o(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\"),o(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError),o(\"ERR_UNKNOWN_ENCODING\",(function(t){return\"Unknown encoding: \"+t}),TypeError),o(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\"),e.exports.codes=i},{}],478:[function(t,e,r){(function(r){\"use strict\";var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};e.exports=c;var i=t(\"./_stream_readable\"),o=t(\"./_stream_writable\");t(\"inherits\")(c,i);for(var a=n(o.prototype),s=0;s<a.length;s++){var u=a[s];c.prototype[u]||(c.prototype[u]=o.prototype[u])}function c(t){if(!(this instanceof c))return new c(t);i.call(this,t),o.call(this,t),this.allowHalfOpen=!0,t&&(!1===t.readable&&(this.readable=!1),!1===t.writable&&(this.writable=!1),!1===t.allowHalfOpen&&(this.allowHalfOpen=!1,this.once(\"end\",f)))}function f(){this._writableState.ended||r.nextTick(l,this)}function l(t){t.end()}Object.defineProperty(c.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}})}).call(this,t(\"_process\"))},{\"./_stream_readable\":480,\"./_stream_writable\":482,_process:467,inherits:387}],479:[function(t,e,r){\"use strict\";e.exports=i;var n=t(\"./_stream_transform\");function i(t){if(!(this instanceof i))return new i(t);n.call(this,t)}t(\"inherits\")(i,n),i.prototype._transform=function(t,e,r){r(null,t)}},{\"./_stream_transform\":481,inherits:387}],480:[function(t,e,r){(function(r,n){\"use strict\";var i;e.exports=O,O.ReadableState=S;t(\"events\").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=t(\"./internal/streams/stream\"),s=t(\"buffer\").Buffer,u=n.Uint8Array||function(){};var c,f=t(\"util\");c=f&&f.debuglog?f.debuglog(\"stream\"):function(){};var l,h,d,p=t(\"./internal/streams/buffer_list\"),m=t(\"./internal/streams/destroy\"),y=t(\"./internal/streams/state\").getHighWaterMark,b=t(\"../errors\").codes,v=b.ERR_INVALID_ARG_TYPE,g=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,_=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;t(\"inherits\")(O,a);var k=m.errorOrDestroy,x=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function S(e,r,n){i=i||t(\"./_stream_duplex\"),e=e||{},\"boolean\"!=typeof n&&(n=r instanceof i),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=y(this,e,\"readableHighWaterMark\",n),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=t(\"string_decoder/\").StringDecoder),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function O(e){if(i=i||t(\"./_stream_duplex\"),!(this instanceof O))return new O(e);var r=this instanceof i;this._readableState=new S(e,this,r),this.readable=!0,e&&(\"function\"==typeof e.read&&(this._read=e.read),\"function\"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function j(t,e,r,n,i){c(\"readableAddChunk\",e);var o,a=t._readableState;if(null===e)a.reading=!1,function(t,e){if(c(\"onEofChunk\"),e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?T(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,C(t)))}(t,a);else if(i||(o=function(t,e){var r;n=e,s.isBuffer(n)||n instanceof u||\"string\"==typeof e||void 0===e||t.objectMode||(r=new v(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],e));var n;return r}(a,e)),o)k(t,o);else if(a.objectMode||e&&e.length>0)if(\"string\"==typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(t){return s.from(t)}(e)),n)a.endEmitted?k(t,new _):E(t,a,e,!0);else if(a.ended)k(t,new g);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?E(t,a,e,!1):P(t,a)):E(t,a,e,!1)}else n||(a.reading=!1,P(t,a));return!a.ended&&(a.length<a.highWaterMark||0===a.length)}function E(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,t.emit(\"data\",r)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&T(t)),P(t,e)}Object.defineProperty(O.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),O.prototype.destroy=m.destroy,O.prototype._undestroy=m.undestroy,O.prototype._destroy=function(t,e){e(t)},O.prototype.push=function(t,e){var r,n=this._readableState;return n.objectMode?r=!0:\"string\"==typeof t&&((e=e||n.defaultEncoding)!==n.encoding&&(t=s.from(t,e),e=\"\"),r=!0),j(this,t,e,!1,r)},O.prototype.unshift=function(t){return j(this,t,null,!0,!1)},O.prototype.isPaused=function(){return!1===this._readableState.flowing},O.prototype.setEncoding=function(e){l||(l=t(\"string_decoder/\").StringDecoder);var r=new l(e);this._readableState.decoder=r,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,i=\"\";null!==n;)i+=r.write(n.data),n=n.next;return this._readableState.buffer.clear(),\"\"!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};function R(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=1073741824?t=1073741824:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function T(t){var e=t._readableState;c(\"emitReadable\",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(c(\"emitReadable\",e.flowing),e.emittedReadable=!0,r.nextTick(C,t))}function C(t){var e=t._readableState;c(\"emitReadable_\",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit(\"readable\"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,D(t)}function P(t,e){e.readingMore||(e.readingMore=!0,r.nextTick(M,t,e))}function M(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var r=e.length;if(c(\"maybeReadMore read 0\"),t.read(0),r===e.length)break}e.readingMore=!1}function A(t){var e=t._readableState;e.readableListening=t.listenerCount(\"readable\")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount(\"data\")>0&&t.resume()}function I(t){c(\"readable nexttick read 0\"),t.read(0)}function N(t,e){c(\"resume\",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit(\"resume\"),D(t),e.flowing&&!e.reading&&t.read(0)}function D(t){var e=t._readableState;for(c(\"flow\",e.flowing);e.flowing&&null!==t.read(););}function B(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(\"\"):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function F(t){var e=t._readableState;c(\"endReadable\",e.endEmitted),e.endEmitted||(e.ended=!0,r.nextTick(L,e,t))}function L(t,e){if(c(\"endReadableNT\",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function z(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}O.prototype.read=function(t){c(\"read\",t),t=parseInt(t,10);var e=this._readableState,r=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return c(\"read: emitReadable\",e.length,e.ended),0===e.length&&e.ended?F(this):T(this),null;if(0===(t=R(t,e))&&e.ended)return 0===e.length&&F(this),null;var n,i=e.needReadable;return c(\"need readable\",i),(0===e.length||e.length-t<e.highWaterMark)&&c(\"length less than watermark\",i=!0),e.ended||e.reading?c(\"reading or ended\",i=!1):i&&(c(\"do read\"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=R(r,e))),null===(n=t>0?B(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&F(this)),null!==n&&this.emit(\"data\",n),n},O.prototype._read=function(t){k(this,new w(\"_read()\"))},O.prototype.pipe=function(t,e){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t)}i.pipesCount+=1,c(\"pipe count=%d opts=%j\",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?u:y;function s(e,r){c(\"onunpipe\"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c(\"cleanup\"),t.removeListener(\"close\",p),t.removeListener(\"finish\",m),t.removeListener(\"drain\",f),t.removeListener(\"error\",d),t.removeListener(\"unpipe\",s),n.removeListener(\"end\",u),n.removeListener(\"end\",y),n.removeListener(\"data\",h),l=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f())}function u(){c(\"onend\"),t.end()}i.endEmitted?r.nextTick(a):n.once(\"end\",a),t.on(\"unpipe\",s);var f=function(t){return function(){var e=t._readableState;c(\"pipeOnDrain\",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,\"data\")&&(e.flowing=!0,D(t))}}(n);t.on(\"drain\",f);var l=!1;function h(e){c(\"ondata\");var r=t.write(e);c(\"dest.write\",r),!1===r&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==z(i.pipes,t))&&!l&&(c(\"false write response, pause\",i.awaitDrain),i.awaitDrain++),n.pause())}function d(e){c(\"onerror\",e),y(),t.removeListener(\"error\",d),0===o(t,\"error\")&&k(t,e)}function p(){t.removeListener(\"finish\",m),y()}function m(){c(\"onfinish\"),t.removeListener(\"close\",p),y()}function y(){c(\"unpipe\"),n.unpipe(t)}return n.on(\"data\",h),function(t,e,r){if(\"function\"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,\"error\",d),t.once(\"close\",p),t.once(\"finish\",m),t.emit(\"pipe\",n),i.flowing||(c(\"pipe resume\"),n.resume()),t},O.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<i;o++)n[o].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var a=z(e.pipes,t);return-1===a||(e.pipes.splice(a,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit(\"unpipe\",this,r)),this},O.prototype.on=function(t,e){var n=a.prototype.on.call(this,t,e),i=this._readableState;return\"data\"===t?(i.readableListening=this.listenerCount(\"readable\")>0,!1!==i.flowing&&this.resume()):\"readable\"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,c(\"on readable\",i.length,i.reading),i.length?T(this):i.reading||r.nextTick(I,this))),n},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(t,e){var n=a.prototype.removeListener.call(this,t,e);return\"readable\"===t&&r.nextTick(A,this),n},O.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return\"readable\"!==t&&void 0!==t||r.nextTick(A,this),e},O.prototype.resume=function(){var t=this._readableState;return t.flowing||(c(\"resume\"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,r.nextTick(N,t,e))}(this,t)),t.paused=!1,this},O.prototype.pause=function(){return c(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(c(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this},O.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on(\"end\",(function(){if(c(\"wrapped end\"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on(\"data\",(function(i){(c(\"wrapped data\"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&\"function\"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o<x.length;o++)t.on(x[o],this.emit.bind(this,x[o]));return this._read=function(e){c(\"wrapped _read\",e),n&&(n=!1,t.resume())},this},\"function\"==typeof Symbol&&(O.prototype[Symbol.asyncIterator]=function(){return void 0===h&&(h=t(\"./internal/streams/async_iterator\")),h(this)}),Object.defineProperty(O.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(O.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(O.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),O._fromList=B,Object.defineProperty(O.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}}),\"function\"==typeof Symbol&&(O.from=function(e,r){return void 0===d&&(d=t(\"./internal/streams/from\")),d(O,e,r)})}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../errors\":477,\"./_stream_duplex\":478,\"./internal/streams/async_iterator\":483,\"./internal/streams/buffer_list\":484,\"./internal/streams/destroy\":485,\"./internal/streams/from\":487,\"./internal/streams/state\":489,\"./internal/streams/stream\":490,_process:467,buffer:216,events:367,inherits:387,\"string_decoder/\":520,util:185}],481:[function(t,e,r){\"use strict\";e.exports=f;var n=t(\"../errors\").codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=t(\"./_stream_duplex\");function c(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit(\"error\",new o);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function f(t){if(!(this instanceof f))return new f(t);u.call(this,t),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(\"function\"==typeof t.transform&&(this._transform=t.transform),\"function\"==typeof t.flush&&(this._flush=t.flush)),this.on(\"prefinish\",l)}function l(){var t=this;\"function\"!=typeof this._flush||this._readableState.destroyed?h(this,null,null):this._flush((function(e,r){h(t,e,r)}))}function h(t,e,r){if(e)return t.emit(\"error\",e);if(null!=r&&t.push(r),t._writableState.length)throw new s;if(t._transformState.transforming)throw new a;return t.push(null)}t(\"inherits\")(f,u),f.prototype.push=function(t,e){return this._transformState.needTransform=!1,u.prototype.push.call(this,t,e)},f.prototype._transform=function(t,e,r){r(new i(\"_transform()\"))},f.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},f.prototype._read=function(t){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},f.prototype._destroy=function(t,e){u.prototype._destroy.call(this,t,(function(t){e(t)}))}},{\"../errors\":477,\"./_stream_duplex\":478,inherits:387}],482:[function(t,e,r){(function(r,n){\"use strict\";function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree.next=t}(e,t)}}var o;e.exports=O,O.WritableState=S;var a={deprecate:t(\"util-deprecate\")},s=t(\"./internal/streams/stream\"),u=t(\"buffer\").Buffer,c=n.Uint8Array||function(){};var f,l=t(\"./internal/streams/destroy\"),h=t(\"./internal/streams/state\").getHighWaterMark,d=t(\"../errors\").codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_METHOD_NOT_IMPLEMENTED,y=d.ERR_MULTIPLE_CALLBACK,b=d.ERR_STREAM_CANNOT_PIPE,v=d.ERR_STREAM_DESTROYED,g=d.ERR_STREAM_NULL_VALUES,w=d.ERR_STREAM_WRITE_AFTER_END,_=d.ERR_UNKNOWN_ENCODING,k=l.errorOrDestroy;function x(){}function S(e,n,a){o=o||t(\"./_stream_duplex\"),e=e||{},\"boolean\"!=typeof a&&(a=n instanceof o),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=h(this,e,\"writableHighWaterMark\",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var n=t._writableState,i=n.sync,o=n.writecb;if(\"function\"!=typeof o)throw new y;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(n),e)!function(t,e,n,i,o){--e.pendingcb,n?(r.nextTick(o,i),r.nextTick(P,t,e),t._writableState.errorEmitted=!0,k(t,i)):(o(i),t._writableState.errorEmitted=!0,k(t,i),P(t,e))}(t,n,i,e,o);else{var a=T(n)||t.destroyed;a||n.corked||n.bufferProcessing||!n.bufferedRequest||R(t,n),i?r.nextTick(E,t,n,a,o):E(t,n,a,o)}}(n,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function O(e){var r=this instanceof(o=o||t(\"./_stream_duplex\"));if(!r&&!f.call(O,this))return new O(e);this._writableState=new S(e,this,r),this.writable=!0,e&&(\"function\"==typeof e.write&&(this._write=e.write),\"function\"==typeof e.writev&&(this._writev=e.writev),\"function\"==typeof e.destroy&&(this._destroy=e.destroy),\"function\"==typeof e.final&&(this._final=e.final)),s.call(this)}function j(t,e,r,n,i,o,a){e.writelen=n,e.writecb=a,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new v(\"write\")):r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function E(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}(t,e),e.pendingcb--,n(),P(t,e)}function R(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,o=new Array(n),a=e.corkedRequestsFree;a.entry=r;for(var s=0,u=!0;r;)o[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;o.allBuffers=u,j(t,e,!0,e.length,o,\"\",a.finish),e.pendingcb++,e.lastBufferedRequest=null,a.next?(e.corkedRequestsFree=a.next,a.next=null):e.corkedRequestsFree=new i(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,f=r.encoding,l=r.callback;if(j(t,e,!1,e.objectMode?1:c.length,c,f,l),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function T(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final((function(r){e.pendingcb--,r&&k(t,r),e.prefinished=!0,t.emit(\"prefinish\"),P(t,e)}))}function P(t,e){var n=T(e);if(n&&(function(t,e){e.prefinished||e.finalCalled||(\"function\"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit(\"prefinish\")):(e.pendingcb++,e.finalCalled=!0,r.nextTick(C,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit(\"finish\"),e.autoDestroy))){var i=t._readableState;(!i||i.autoDestroy&&i.endEmitted)&&t.destroy()}return n}t(\"inherits\")(O,s),S.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(S.prototype,\"buffer\",{get:a.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(t){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(O,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===O&&(t&&t._writableState instanceof S)}})):f=function(t){return t instanceof this},O.prototype.pipe=function(){k(this,new b)},O.prototype.write=function(t,e,n){var i,o=this._writableState,a=!1,s=!o.objectMode&&(i=t,u.isBuffer(i)||i instanceof c);return s&&!u.isBuffer(t)&&(t=function(t){return u.from(t)}(t)),\"function\"==typeof e&&(n=e,e=null),s?e=\"buffer\":e||(e=o.defaultEncoding),\"function\"!=typeof n&&(n=x),o.ending?function(t,e){var n=new w;k(t,n),r.nextTick(e,n)}(this,n):(s||function(t,e,n,i){var o;return null===n?o=new g:\"string\"==typeof n||e.objectMode||(o=new p(\"chunk\",[\"string\",\"Buffer\"],n)),!o||(k(t,o),r.nextTick(i,o),!1)}(this,o,t,n))&&(o.pendingcb++,a=function(t,e,r,n,i,o){if(!r){var a=function(t,e,r){t.objectMode||!1===t.decodeStrings||\"string\"!=typeof e||(e=u.from(e,r));return e}(e,n,i);n!==a&&(r=!0,i=\"buffer\",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var c=e.length<e.highWaterMark;c||(e.needDrain=!0);if(e.writing||e.corked){var f=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},f?f.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else j(t,e,!1,s,n,i,o);return c}(this,o,s,t,e,n)),a},O.prototype.cork=function(){this._writableState.corked++},O.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||R(this,t))},O.prototype.setDefaultEncoding=function(t){if(\"string\"==typeof t&&(t=t.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((t+\"\").toLowerCase())>-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(O.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(t,e,r){r(new m(\"_write()\"))},O.prototype._writev=null,O.prototype.end=function(t,e,n){var i=this._writableState;return\"function\"==typeof t?(n=t,t=null,e=null):\"function\"==typeof e&&(n=e,e=null),null!=t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||function(t,e,n){e.ending=!0,P(t,e),n&&(e.finished?r.nextTick(n):t.once(\"finish\",n));e.ended=!0,t.writable=!1}(this,i,n),this},Object.defineProperty(O.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),O.prototype.destroy=l.destroy,O.prototype._undestroy=l.undestroy,O.prototype._destroy=function(t,e){e(t)}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../errors\":477,\"./_stream_duplex\":478,\"./internal/streams/destroy\":485,\"./internal/streams/state\":489,\"./internal/streams/stream\":490,_process:467,buffer:216,inherits:387,\"util-deprecate\":522}],483:[function(t,e,r){(function(r){\"use strict\";var n;function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=t(\"./end-of-stream\"),a=Symbol(\"lastResolve\"),s=Symbol(\"lastReject\"),u=Symbol(\"error\"),c=Symbol(\"ended\"),f=Symbol(\"lastPromise\"),l=Symbol(\"handlePromise\"),h=Symbol(\"stream\");function d(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[h].read();null!==r&&(t[f]=null,t[a]=null,t[s]=null,e(d(r,!1)))}}function m(t){r.nextTick(p,t)}var y=Object.getPrototypeOf((function(){})),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[u];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise((function(e,n){r.nextTick((function(){t[u]?n(t[u]):e(d(void 0,!0))}))}));var n,i=this[f];if(i)n=new Promise(function(t,e){return function(r,n){t.then((function(){e[c]?r(d(void 0,!0)):e[l](r,n)}),n)}}(i,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(d(o,!1));n=new Promise(this[l])}return this[f]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,\"return\",(function(){var t=this;return new Promise((function(e,r){t[h].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),y);e.exports=function(t){var e,r=Object.create(b,(i(e={},h,{value:t,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,c,{value:t._readableState.endEmitted,writable:!0}),i(e,l,{value:function(t,e){var n=r[h].read();n?(r[f]=null,r[a]=null,r[s]=null,t(d(n,!1))):(r[a]=t,r[s]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&\"ERR_STREAM_PREMATURE_CLOSE\"!==t.code){var e=r[s];return null!==e&&(r[f]=null,r[a]=null,r[s]=null,e(t)),void(r[u]=t)}var n=r[a];null!==n&&(r[f]=null,r[a]=null,r[s]=null,n(d(void 0,!0))),r[c]=!0})),t.on(\"readable\",m.bind(null,r)),r}}).call(this,t(\"_process\"))},{\"./end-of-stream\":486,_process:467}],484:[function(t,e,r){\"use strict\";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var a=t(\"buffer\").Buffer,s=t(\"util\").inspect,u=s&&s.custom||\"inspect\";e.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.head=null,this.tail=null,this.length=0}var e,r,c;return e=t,(r=[{key:\"push\",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:\"unshift\",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:\"shift\",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(t){if(0===this.length)return\"\";for(var e=this.head,r=\"\"+e.data;e=e.next;)r+=t+e.data;return r}},{key:\"concat\",value:function(t){if(0===this.length)return a.alloc(0);for(var e,r,n,i=a.allocUnsafe(t>>>0),o=this.head,s=0;o;)e=o.data,r=i,n=s,a.prototype.copy.call(e,r,n),s+=o.data.length,o=o.next;return i}},{key:\"consume\",value:function(t,e){var r;return t<this.head.data.length?(r=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):r=t===this.head.data.length?this.shift():e?this._getString(t):this._getBuffer(t),r}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(t){var e=this.head,r=1,n=e.data;for(t-=n.length;e=e.next;){var i=e.data,o=t>i.length?i.length:t;if(o===i.length?n+=i:n+=i.slice(0,t),0==(t-=o)){o===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(o));break}++r}return this.length-=r,n}},{key:\"_getBuffer\",value:function(t){var e=a.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,o=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,o),0==(t-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,e}},{key:u,value:function(t,e){return s(this,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},e,{depth:0,customInspect:!1}))}}])&&o(e.prototype,r),c&&o(e,c),t}()},{buffer:216,util:185}],485:[function(t,e,r){(function(t){\"use strict\";function r(t,e){i(t,e),n(t)}function n(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit(\"close\")}function i(t,e){t.emit(\"error\",e)}e.exports={destroy:function(e,o){var a=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(o?o(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,t.nextTick(i,this,e)):t.nextTick(i,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!o&&e?a._writableState?a._writableState.errorEmitted?t.nextTick(n,a):(a._writableState.errorEmitted=!0,t.nextTick(r,a,e)):t.nextTick(r,a,e):o?(t.nextTick(n,a),o(e)):t.nextTick(n,a)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit(\"error\",e)}}}).call(this,t(\"_process\"))},{_process:467}],486:[function(t,e,r){\"use strict\";var n=t(\"../../../errors\").codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function t(e,r,o){if(\"function\"==typeof r)return t(e,null,r);r||(r={}),o=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];t.apply(this,n)}}}(o||i);var a=r.readable||!1!==r.readable&&e.readable,s=r.writable||!1!==r.writable&&e.writable,u=function(){e.writable||f()},c=e._writableState&&e._writableState.finished,f=function(){s=!1,c=!0,a||o.call(e)},l=e._readableState&&e._readableState.endEmitted,h=function(){a=!1,l=!0,s||o.call(e)},d=function(t){o.call(e,t)},p=function(){var t;return a&&!l?(e._readableState&&e._readableState.ended||(t=new n),o.call(e,t)):s&&!c?(e._writableState&&e._writableState.ended||(t=new n),o.call(e,t)):void 0},m=function(){e.req.on(\"finish\",f)};return!function(t){return t.setHeader&&\"function\"==typeof t.abort}(e)?s&&!e._writableState&&(e.on(\"end\",u),e.on(\"close\",u)):(e.on(\"complete\",f),e.on(\"abort\",p),e.req?m():e.on(\"request\",m)),e.on(\"end\",h),e.on(\"finish\",f),!1!==r.error&&e.on(\"error\",d),e.on(\"close\",p),function(){e.removeListener(\"complete\",f),e.removeListener(\"abort\",p),e.removeListener(\"request\",m),e.req&&e.req.removeListener(\"finish\",f),e.removeListener(\"end\",u),e.removeListener(\"close\",u),e.removeListener(\"finish\",f),e.removeListener(\"end\",h),e.removeListener(\"error\",d),e.removeListener(\"close\",p)}}},{\"../../../errors\":477}],487:[function(t,e,r){\"use strict\";e.exports=function(){throw new Error(\"Readable.from is not available in the browser\")}},{}],488:[function(t,e,r){\"use strict\";var n;var i=t(\"../../../errors\").codes,o=i.ERR_MISSING_ARGS,a=i.ERR_STREAM_DESTROYED;function s(t){if(t)throw t}function u(e,r,i,o){o=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(o);var s=!1;e.on(\"close\",(function(){s=!0})),void 0===n&&(n=t(\"./end-of-stream\")),n(e,{readable:r,writable:i},(function(t){if(t)return o(t);s=!0,o()}));var u=!1;return function(t){if(!s&&!u)return u=!0,function(t){return t.setHeader&&\"function\"==typeof t.abort}(e)?e.abort():\"function\"==typeof e.destroy?e.destroy():void o(t||new a(\"pipe\"))}}function c(t){t()}function f(t,e){return t.pipe(e)}function l(t){return t.length?\"function\"!=typeof t[t.length-1]?s:t.pop():s}e.exports=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n,i=l(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new o(\"streams\");var a=e.map((function(t,r){var o=r<e.length-1;return u(t,o,r>0,(function(t){n||(n=t),t&&a.forEach(c),o||(a.forEach(c),i(n))}))}));return e.reduce(f)}},{\"../../../errors\":477,\"./end-of-stream\":486}],489:[function(t,e,r){\"use strict\";var n=t(\"../../../errors\").codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(t,e,r,i){var o=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:\"highWaterMark\",o);return Math.floor(o)}return t.objectMode?16:16384}}},{\"../../../errors\":477}],490:[function(t,e,r){\"use strict\";e.exports=t(\"events\").EventEmitter},{events:367}],491:[function(t,e,r){\"use strict\";(r=e.exports=t(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=t(\"./lib/_stream_writable.js\"),r.Duplex=t(\"./lib/_stream_duplex.js\"),r.Transform=t(\"./lib/_stream_transform.js\"),r.PassThrough=t(\"./lib/_stream_passthrough.js\"),r.finished=t(\"./lib/internal/streams/end-of-stream.js\"),r.pipeline=t(\"./lib/internal/streams/pipeline.js\")},{\"./lib/_stream_duplex.js\":478,\"./lib/_stream_passthrough.js\":479,\"./lib/_stream_readable.js\":480,\"./lib/_stream_transform.js\":481,\"./lib/_stream_writable.js\":482,\"./lib/internal/streams/end-of-stream.js\":486,\"./lib/internal/streams/pipeline.js\":488}],492:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i=function(t){var e=Object.prototype,r=e.hasOwnProperty,i=\"function\"==typeof Symbol?Symbol:{},o=i.iterator||\"@@iterator\",a=i.asyncIterator||\"@@asyncIterator\",s=i.toStringTag||\"@@toStringTag\";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},\"\")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var i=e&&e.prototype instanceof h?e:h,o=Object.create(i.prototype),a=new S(n||[]);return o._invoke=function(t,e,r){var n=\"suspendedStart\";return function(i,o){if(\"executing\"===n)throw new Error(\"Generator is already running\");if(\"completed\"===n){if(\"throw\"===i)throw o;return j()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var s=_(a,r);if(s){if(s===l)continue;return s}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(\"suspendedStart\"===n)throw n=\"completed\",r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=\"executing\";var u=f(t,e,r);if(\"normal\"===u.type){if(n=r.done?\"completed\":\"suspendedYield\",u.arg===l)continue;return{value:u.arg,done:r.done}}\"throw\"===u.type&&(n=\"completed\",r.method=\"throw\",r.arg=u.arg)}}}(t,r,a),o}function f(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var l={};function h(){}function d(){}function p(){}var m={};m[o]=function(){return this};var y=Object.getPrototypeOf,b=y&&y(y(O([])));b&&b!==e&&r.call(b,o)&&(m=b);var v=p.prototype=h.prototype=Object.create(m);function g(t){[\"next\",\"throw\",\"return\"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){var i;this._invoke=function(o,a){function s(){return new e((function(i,s){!function i(o,a,s,u){var c=f(t[o],t,a);if(\"throw\"!==c.type){var l=c.arg,h=l.value;return h&&\"object\"===n(h)&&r.call(h,\"__await\")?e.resolve(h.__await).then((function(t){i(\"next\",t,s,u)}),(function(t){i(\"throw\",t,s,u)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return i(\"throw\",t,s,u)}))}u(c.arg)}(o,a,i,s)}))}return i=i?i.then(s,s):s()}}function _(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=void 0,_(t,e),\"throw\"===e.method))return l;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return l}var n=f(r,t.iterator,e.arg);if(\"throw\"===n.type)return e.method=\"throw\",e.arg=n.arg,e.delegate=null,l;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=void 0),e.delegate=null,l):i:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,l)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:j}}function j(){return{value:void 0,done:!0}}return d.prototype=v.constructor=p,p.constructor=d,d.displayName=u(p,s,\"GeneratorFunction\"),t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===d||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,u(t,s,\"GeneratorFunction\")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},g(w.prototype),w.prototype[a]=function(){return this},t.AsyncIterator=w,t.async=function(e,r,n,i,o){void 0===o&&(o=Promise);var a=new w(c(e,r,n,i),o);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(v),u(v,s,\"Generator\"),v[o]=function(){return this},v.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=O,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(x),!t)for(var e in this)\"t\"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type=\"throw\",a.arg=t,e.next=r,n&&(e.method=\"next\",e.arg=void 0),!!n}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if(\"root\"===o.tryLoc)return n(\"end\");if(o.tryLoc<=this.prev){var s=r.call(o,\"catchLoc\"),u=r.call(o,\"finallyLoc\");if(s&&u){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev<i.finallyLoc){var o=i;break}}o&&(\"break\"===t||\"continue\"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method=\"next\",this.next=o.finallyLoc,l):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var i=n.arg;x(r)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},\"next\"===this.method&&(this.arg=void 0),l}},t}(\"object\"===(void 0===e?\"undefined\":n(e))?e.exports:{});try{regeneratorRuntime=i}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(i)}},{}],493:[function(t,e,r){\"use strict\";var n=t(\"buffer\").Buffer,i=t(\"inherits\"),o=t(\"hash-base\"),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],f=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],h=[1352829926,1548603684,1836072691,2053994217,0];function d(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<<e|t>>>32-e}function m(t,e,r,n,i,o,a,s){return p(t+(e^r^n)+o+a|0,s)+i|0}function y(t,e,r,n,i,o,a,s){return p(t+(e&r|~e&n)+o+a|0,s)+i|0}function b(t,e,r,n,i,o,a,s){return p(t+((e|~r)^n)+o+a|0,s)+i|0}function v(t,e,r,n,i,o,a,s){return p(t+(e&n|r&~n)+o+a|0,s)+i|0}function g(t,e,r,n,i,o,a,s){return p(t+(e^(r|~n))+o+a|0,s)+i|0}i(d,o),d.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,d=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,x=0|this._d,S=0|this._e,O=0;O<80;O+=1){var j,E;O<16?(j=m(r,n,i,o,d,t[s[O]],l[0],c[O]),E=g(w,_,k,x,S,t[u[O]],h[0],f[O])):O<32?(j=y(r,n,i,o,d,t[s[O]],l[1],c[O]),E=v(w,_,k,x,S,t[u[O]],h[1],f[O])):O<48?(j=b(r,n,i,o,d,t[s[O]],l[2],c[O]),E=b(w,_,k,x,S,t[u[O]],h[2],f[O])):O<64?(j=v(r,n,i,o,d,t[s[O]],l[3],c[O]),E=y(w,_,k,x,S,t[u[O]],h[3],f[O])):(j=g(r,n,i,o,d,t[s[O]],l[4],c[O]),E=m(w,_,k,x,S,t[u[O]],h[4],f[O])),r=d,d=o,o=p(i,10),i=n,n=j,w=S,S=x,x=p(k,10),k=_,_=E}var R=this._b+i+x|0;this._b=this._c+o+S|0,this._c=this._d+d+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=R},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},e.exports=d},{buffer:216,\"hash-base\":370,inherits:387}],494:[function(t,e,r){\"use strict\";var n=t(\"buffer\"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,r),r.Buffer=a),o(i,a),a.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError(\"Argument must not be a number\");return i(t,e,r)},a.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");var n=i(t);return void 0!==e?\"string\"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return i(t)},a.allocUnsafeSlow=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(t)}},{buffer:216}],495:[function(t,e,r){(function(r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var i,o=t(\"buffer\"),a=o.Buffer,s={};for(i in o)o.hasOwnProperty(i)&&\"SlowBuffer\"!==i&&\"Buffer\"!==i&&(s[i]=o[i]);var u=s.Buffer={};for(i in a)a.hasOwnProperty(i)&&\"allocUnsafe\"!==i&&\"allocUnsafeSlow\"!==i&&(u[i]=a[i]);if(s.Buffer.prototype=a.prototype,u.from&&u.from!==Uint8Array.from||(u.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type '+n(t));if(t&&void 0===t.length)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+n(t));return a(t,e,r)}),u.alloc||(u.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError('The \"size\" argument must be of type number. Received type '+n(t));if(t<0||t>=2*(1<<30))throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var i=a(t);return e&&0!==e.length?\"string\"==typeof r?i.fill(e,r):i.fill(e):i.fill(0),i}),!s.kStringMaxLength)try{s.kStringMaxLength=r.binding(\"buffer\").kStringMaxLength}catch(t){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s}).call(this,t(\"_process\"))},{_process:467,buffer:216}],496:[function(t,e,r){\"use strict\";function n(t,e){var r;if(\"undefined\"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=s(t))||e&&t&&\"number\"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw o}}}}function i(t){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||s(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(t,e){if(t){if(\"string\"==typeof t)return u(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(t,e):void 0}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}Object.defineProperty(r,\"__esModule\",{value:!0});var c=t(\"xmlchars/xml/1.0/ed5\"),f=t(\"xmlchars/xml/1.1/ed2\"),l=t(\"xmlchars/xmlns/1.0/ed3\"),h=c.isS,d=c.isChar,p=c.isNameStartChar,m=c.isNameChar,y=c.S_LIST,b=c.NAME_RE,v=f.isChar,g=l.isNCNameStartChar,w=l.isNCNameChar,_=l.NC_NAME_RE,k=\"http://www.w3.org/XML/1998/namespace\",x=\"http://www.w3.org/2000/xmlns/\",S={__proto__:null,xml:k,xmlns:x},O={__proto__:null,amp:\"&\",gt:\">\",lt:\"<\",quot:'\"',apos:\"'\"},j=61,E=63,R=function(t){return 34===t||39===t},T=[34,39],C=[].concat(T,[91,62]),P=[].concat(T,[60,93]),M=[j,E].concat(a(y)),A=[].concat(a(y),[62,38,60]);function I(t,e,r){switch(e){case\"xml\":r!==k&&t.fail(\"xml prefix must be bound to \".concat(k,\".\"));break;case\"xmlns\":r!==x&&t.fail(\"xmlns prefix must be bound to \".concat(x,\".\"))}switch(r){case x:t.fail(\"\"===e?\"the default namespace may not be set to \".concat(r,\".\"):'may not assign a prefix (even \"xmlns\") to the URI '.concat(x,\".\"));break;case k:switch(e){case\"xml\":break;case\"\":t.fail(\"the default namespace may not be set to \".concat(r,\".\"));break;default:t.fail(\"may not assign the xml namespace to another prefix.\")}}}var N=function(t){return _.test(t)},D=function(t){return b.test(t)};r.EVENTS=[\"xmldecl\",\"text\",\"processinginstruction\",\"doctype\",\"comment\",\"opentagstart\",\"attribute\",\"opentag\",\"closetag\",\"cdata\",\"error\",\"end\",\"ready\"];var B={xmldecl:\"xmldeclHandler\",text:\"textHandler\",processinginstruction:\"piHandler\",doctype:\"doctypeHandler\",comment:\"commentHandler\",opentagstart:\"openTagStartHandler\",attribute:\"attributeHandler\",opentag:\"openTagHandler\",closetag:\"closeTagHandler\",cdata:\"cdataHandler\",error:\"errorHandler\",end:\"endHandler\",ready:\"readyHandler\"},F=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.opt=null!=e?e:{},this.fragmentOpt=!!this.opt.fragment;var r=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=!1!==this.opt.position,this.fileName=this.opt.fileName,r){this.nameStartCheck=g,this.nameCheck=w,this.isName=N,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},S);var n=this.opt.additionalNamespaces;null!=n&&(!function(t,e){for(var r=0,n=Object.keys(e);r<n.length;r++){var i=n[r];I(t,i,e[i])}}(this,n),Object.assign(this.ns,n))}else this.nameStartCheck=p,this.nameCheck=m,this.isName=D,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}var e,r,a;return e=t,(r=[{key:\"_init\",value:function(){var t;this.openWakaBang=\"\",this.text=\"\",this.name=\"\",this.piTarget=\"\",this.entity=\"\",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk=\"\",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=0,this.attribList=[];var e=this.fragmentOpt;this.state=e?13:0,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=e,this.xmlDeclPossible=!e,this.xmlDeclExpects=[\"version\"],this.entityReturnState=void 0;var r=this.opt.defaultXMLVersion;if(void 0===r){if(!0===this.opt.forceXMLVersion)throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");r=\"1.0\"}this.setXMLVersion(r),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(O),null===(t=this.readyHandler)||void 0===t||t.call(this)}},{key:\"on\",value:function(t,e){this[B[t]]=e}},{key:\"off\",value:function(t){this[B[t]]=void 0}},{key:\"makeError\",value:function(t){var e,r=null!==(e=this.fileName)&&void 0!==e?e:\"\";return this.trackPosition&&(r.length>0&&(r+=\":\"),r+=\"\".concat(this.line,\":\").concat(this.column)),r.length>0&&(r+=\": \"),new Error(r+t)}},{key:\"fail\",value:function(t){var e=this.makeError(t),r=this.errorHandler;if(void 0===r)throw e;return r(e),this}},{key:\"write\",value:function(t){if(this.closed)return this.fail(\"cannot write after close; assign an onready handler.\");var e=!1;null===t?(e=!0,t=\"\"):\"object\"===i(t)&&(t=t.toString()),void 0!==this.carriedFromPrevious&&(t=\"\".concat(this.carriedFromPrevious).concat(t),this.carriedFromPrevious=void 0);var r=t.length,n=t.charCodeAt(r-1);!e&&(13===n||n>=55296&&n<=56319)&&(this.carriedFromPrevious=t[r-1],r--,t=t.slice(0,r));var o=this.stateTable;for(this.chunk=t,this.i=0;this.i<r;)o[this.state].call(this);return this.chunkPosition+=r,e?this.end():this}},{key:\"close\",value:function(){return this.write(null)}},{key:\"getCode10\",value:function(){var t=this.chunk,e=this.i;if(this.prevI=e,this.i=e+1,e>=t.length)return-1;var r=t.charCodeAt(e);if(this.column++,r<55296){if(r>=32||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:return 10===t.charCodeAt(e+1)&&(this.i=e+2),this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;var n=65536+1024*(r-55296)+(t.charCodeAt(e+1)-56320);return this.i=e+2,n>1114111&&this.fail(\"disallowed character.\"),n}},{key:\"getCode11\",value:function(){var t=this.chunk,e=this.i;if(this.prevI=e,this.i=e+1,e>=t.length)return-1;var r=t.charCodeAt(e);if(this.column++,r<55296){if(r>31&&r<127||r>159&&8232!==r||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:var n=t.charCodeAt(e+1);10!==n&&133!==n||(this.i=e+2);case 133:case 8232:return this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;var i=65536+1024*(r-55296)+(t.charCodeAt(e+1)-56320);return this.i=e+2,i>1114111&&this.fail(\"disallowed character.\"),i}},{key:\"getCodeNorm\",value:function(){var t=this.getCode();return-2===t?10:t}},{key:\"unget\",value:function(){this.i=this.prevI,this.column--}},{key:\"captureTo\",value:function(t){for(var e=this.i,r=this.chunk;;){var n=this.getCode(),i=-2===n,o=i?10:n;if(-1===o||t.includes(o))return this.text+=r.slice(e,this.prevI),o;i&&(this.text+=\"\".concat(r.slice(e,this.prevI),\"\\n\"),e=this.i)}}},{key:\"captureToChar\",value:function(t){for(var e=this.i,r=this.chunk;;){var n=this.getCode();switch(n){case-2:this.text+=\"\".concat(r.slice(e,this.prevI),\"\\n\"),e=this.i,n=10;break;case-1:return this.text+=r.slice(e),!1}if(n===t)return this.text+=r.slice(e,this.prevI),!0}}},{key:\"captureNameChars\",value:function(){for(var t=this.chunk,e=this.i;;){var r=this.getCode();if(-1===r)return this.name+=t.slice(e),-1;if(!m(r))return this.name+=t.slice(e,this.prevI),-2===r?10:r}}},{key:\"skipSpaces\",value:function(){for(;;){var t=this.getCodeNorm();if(-1===t||!h(t))return t}}},{key:\"setXMLVersion\",value:function(t){this.currentXMLVersion=t,\"1.0\"===t?(this.isChar=d,this.getCode=this.getCode10):(this.isChar=v,this.getCode=this.getCode11)}},{key:\"sBegin\",value:function(){65279===this.chunk.charCodeAt(0)&&(this.i++,this.column++),this.state=1}},{key:\"sBeginWhitespace\",value:function(){var t=this.i,e=this.skipSpaces();switch(this.prevI!==t&&(this.xmlDeclPossible=!1),e){case 60:if(this.state=15,0!==this.text.length)throw new Error(\"no-empty text at start\");break;case-1:break;default:this.unget(),this.state=13,this.xmlDeclPossible=!1}}},{key:\"sDoctype\",value:function(){var t,e=this.captureTo(C);switch(e){case 62:null===(t=this.doctypeHandler)||void 0===t||t.call(this,this.text),this.text=\"\",this.state=13,this.doctype=!0;break;case-1:break;default:this.text+=String.fromCodePoint(e),91===e?this.state=4:R(e)&&(this.state=3,this.q=e)}}},{key:\"sDoctypeQuote\",value:function(){var t=this.q;this.captureToChar(t)&&(this.text+=String.fromCodePoint(t),this.q=null,this.state=2)}},{key:\"sDTD\",value:function(){var t=this.captureTo(P);-1!==t&&(this.text+=String.fromCodePoint(t),93===t?this.state=2:60===t?this.state=6:R(t)&&(this.state=5,this.q=t))}},{key:\"sDTDQuoted\",value:function(){var t=this.q;this.captureToChar(t)&&(this.text+=String.fromCodePoint(t),this.state=4,this.q=null)}},{key:\"sDTDOpenWaka\",value:function(){var t=this.getCodeNorm();switch(this.text+=String.fromCodePoint(t),t){case 33:this.state=7,this.openWakaBang=\"\";break;case E:this.state=11;break;default:this.state=4}}},{key:\"sDTDOpenWakaBang\",value:function(){var t=String.fromCodePoint(this.getCodeNorm()),e=this.openWakaBang+=t;this.text+=t,\"-\"!==e&&(this.state=\"--\"===e?8:4,this.openWakaBang=\"\")}},{key:\"sDTDComment\",value:function(){this.captureToChar(45)&&(this.text+=\"-\",this.state=9)}},{key:\"sDTDCommentEnding\",value:function(){var t=this.getCodeNorm();this.text+=String.fromCodePoint(t),this.state=45===t?10:8}},{key:\"sDTDCommentEnded\",value:function(){var t=this.getCodeNorm();this.text+=String.fromCodePoint(t),62===t?this.state=4:(this.fail(\"malformed comment.\"),this.state=8)}},{key:\"sDTDPI\",value:function(){this.captureToChar(E)&&(this.text+=\"?\",this.state=12)}},{key:\"sDTDPIEnding\",value:function(){var t=this.getCodeNorm();this.text+=String.fromCodePoint(t),62===t&&(this.state=4)}},{key:\"sText\",value:function(){0!==this.tags.length?this.handleTextInRoot():this.handleTextOutsideRoot()}},{key:\"sEntity\",value:function(){var t=this.i,e=this.chunk;t:for(;;)switch(this.getCode()){case-2:this.entity+=\"\".concat(e.slice(t,this.prevI),\"\\n\"),t=this.i;break;case 59:var r=this.entityReturnState,n=this.entity+e.slice(t,this.prevI);this.state=r;var i=void 0;\"\"===n?(this.fail(\"empty entity name.\"),i=\"&;\"):(i=this.parseEntity(n),this.entity=\"\"),13===r&&void 0===this.textHandler||(this.text+=i);break t;case-1:this.entity+=e.slice(t);break t}}},{key:\"sOpenWaka\",value:function(){var t=this.getCode();if(p(t))this.state=34,this.unget(),this.xmlDeclPossible=!1;else switch(t){case 47:this.state=43,this.xmlDeclPossible=!1;break;case 33:this.state=16,this.openWakaBang=\"\",this.xmlDeclPossible=!1;break;case E:this.state=23;break;default:this.fail(\"disallowed character in tag name\"),this.state=13,this.xmlDeclPossible=!1}}},{key:\"sOpenWakaBang\",value:function(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case\"[CDATA[\":this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0),this.state=20,this.openWakaBang=\"\";break;case\"--\":this.state=17,this.openWakaBang=\"\";break;case\"DOCTYPE\":this.state=2,(this.doctype||this.sawRoot)&&this.fail(\"inappropriately located doctype declaration.\"),this.openWakaBang=\"\";break;default:this.openWakaBang.length>=7&&this.fail(\"incorrect syntax.\")}}},{key:\"sComment\",value:function(){this.captureToChar(45)&&(this.state=18)}},{key:\"sCommentEnding\",value:function(){var t,e=this.getCodeNorm();45===e?(this.state=19,null===(t=this.commentHandler)||void 0===t||t.call(this,this.text),this.text=\"\"):(this.text+=\"-\".concat(String.fromCodePoint(e)),this.state=17)}},{key:\"sCommentEnded\",value:function(){var t=this.getCodeNorm();62!==t?(this.fail(\"malformed comment.\"),this.text+=\"--\".concat(String.fromCodePoint(t)),this.state=17):this.state=13}},{key:\"sCData\",value:function(){this.captureToChar(93)&&(this.state=21)}},{key:\"sCDataEnding\",value:function(){var t=this.getCodeNorm();93===t?this.state=22:(this.text+=\"]\".concat(String.fromCodePoint(t)),this.state=20)}},{key:\"sCDataEnding2\",value:function(){var t,e=this.getCodeNorm();switch(e){case 62:null===(t=this.cdataHandler)||void 0===t||t.call(this,this.text),this.text=\"\",this.state=13;break;case 93:this.text+=\"]\";break;default:this.text+=\"]]\".concat(String.fromCodePoint(e)),this.state=20}}},{key:\"sPIFirstChar\",value:function(){var t=this.getCodeNorm();this.nameStartCheck(t)?(this.piTarget+=String.fromCodePoint(t),this.state=24):t===E||h(t)?(this.fail(\"processing instruction without a target.\"),this.state=t===E?26:25):(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(t),this.state=24)}},{key:\"sPIRest\",value:function(){for(var t=this.chunk,e=this.i;;){var r=this.getCodeNorm();if(-1===r)return void(this.piTarget+=t.slice(e));if(!this.nameCheck(r)){this.piTarget+=t.slice(e,this.prevI);var n=r===E;n||h(r)?\"xml\"===this.piTarget?(this.xmlDeclPossible||this.fail(\"an XML declaration must be at the start of the document.\"),this.state=n?33:27):this.state=n?26:25:(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(r));break}}}},{key:\"sPIBody\",value:function(){if(0===this.text.length){var t=this.getCodeNorm();t===E?this.state=26:h(t)||(this.text=String.fromCodePoint(t))}else this.captureToChar(E)&&(this.state=26)}},{key:\"sPIEnding\",value:function(){var t,e=this.getCodeNorm();if(62===e){var r=this.piTarget;\"xml\"===r.toLowerCase()&&this.fail(\"the XML declaration must appear at the start of the document.\"),null===(t=this.piHandler)||void 0===t||t.call(this,{target:r,body:this.text}),this.piTarget=this.text=\"\",this.state=13}else e===E?this.text+=\"?\":(this.text+=\"?\".concat(String.fromCodePoint(e)),this.state=25);this.xmlDeclPossible=!1}},{key:\"sXMLDeclNameStart\",value:function(){var t=this.skipSpaces();t!==E?-1!==t&&(this.state=28,this.name=String.fromCodePoint(t)):this.state=33}},{key:\"sXMLDeclName\",value:function(){var t=this.captureTo(M);if(t===E)return this.state=33,this.name+=this.text,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(h(t)||t===j){if(this.name+=this.text,this.text=\"\",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail(\"did not expect any more name/value pairs.\");break;case 1:this.fail(\"expected the name \".concat(this.xmlDeclExpects[0],\".\"));break;default:this.fail(\"expected one of \".concat(this.xmlDeclExpects.join(\", \")))}this.state=t===j?30:29}}},{key:\"sXMLDeclEq\",value:function(){var t=this.getCodeNorm();if(t===E)return this.state=33,void this.fail(\"XML declaration is incomplete.\");h(t)||(t!==j&&this.fail(\"value required.\"),this.state=30)}},{key:\"sXMLDeclValueStart\",value:function(){var t=this.getCodeNorm();if(t===E)return this.state=33,void this.fail(\"XML declaration is incomplete.\");h(t)||(R(t)?this.q=t:(this.fail(\"value must be quoted.\"),this.q=32),this.state=31)}},{key:\"sXMLDeclValue\",value:function(){var t=this.captureTo([this.q,E]);if(t===E)return this.state=33,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(-1!==t){var e=this.text;switch(this.text=\"\",this.name){case\"version\":this.xmlDeclExpects=[\"encoding\",\"standalone\"];var r=e;this.xmlDecl.version=r,/^1\\.[0-9]+$/.test(r)?this.opt.forceXMLVersion||this.setXMLVersion(r):this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");break;case\"encoding\":/^[A-Za-z][A-Za-z0-9._-]*$/.test(e)||this.fail(\"encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/.\"),this.xmlDeclExpects=[\"standalone\"],this.xmlDecl.encoding=e;break;case\"standalone\":\"yes\"!==e&&\"no\"!==e&&this.fail('standalone value must match \"yes\" or \"no\".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=e}this.name=\"\",this.state=32}}},{key:\"sXMLDeclSeparator\",value:function(){var t=this.getCodeNorm();t!==E?(h(t)||(this.fail(\"whitespace required.\"),this.unget()),this.state=27):this.state=33}},{key:\"sXMLDeclEnding\",value:function(){var t;62===this.getCodeNorm()?(\"xml\"!==this.piTarget?this.fail(\"processing instructions are not allowed before root.\"):\"version\"!==this.name&&this.xmlDeclExpects.includes(\"version\")&&this.fail(\"XML declaration must contain a version.\"),null===(t=this.xmldeclHandler)||void 0===t||t.call(this,this.xmlDecl),this.name=\"\",this.piTarget=this.text=\"\",this.state=13):this.fail(\"The character ? is disallowed anywhere in XML declarations.\"),this.xmlDeclPossible=!1}},{key:\"sOpenTag\",value:function(){var t,e=this.captureNameChars();if(-1!==e){var r=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name=\"\",this.xmlnsOpt&&(this.topNS=r.ns=Object.create(null)),null===(t=this.openTagStartHandler)||void 0===t||t.call(this,r),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail(\"documents may contain only one root.\"),e){case 62:this.openTag();break;case 47:this.state=35;break;default:h(e)||this.fail(\"disallowed character in tag name.\"),this.state=36}}}},{key:\"sOpenTagSlash\",value:function(){62===this.getCode()?this.openSelfClosingTag():(this.fail(\"forward-slash in opening tag not followed by >.\"),this.state=36)}},{key:\"sAttrib\",value:function(){var t=this.skipSpaces();-1!==t&&(p(t)?(this.unget(),this.state=37):62===t?this.openTag():47===t?this.state=35:this.fail(\"disallowed character in attribute name.\"))}},{key:\"sAttribName\",value:function(){var t=this.captureNameChars();t===j?this.state=39:h(t)?this.state=38:62===t?(this.fail(\"attribute without value.\"),this.pushAttrib(this.name,this.name),this.name=this.text=\"\",this.openTag()):-1!==t&&this.fail(\"disallowed character in attribute name.\")}},{key:\"sAttribNameSawWhite\",value:function(){var t=this.skipSpaces();switch(t){case-1:return;case j:this.state=39;break;default:this.fail(\"attribute without value.\"),this.text=\"\",this.name=\"\",62===t?this.openTag():p(t)?(this.unget(),this.state=37):(this.fail(\"disallowed character in attribute name.\"),this.state=36)}}},{key:\"sAttribValue\",value:function(){var t=this.getCodeNorm();R(t)?(this.q=t,this.state=40):h(t)||(this.fail(\"unquoted attribute value.\"),this.state=42,this.unget())}},{key:\"sAttribValueQuoted\",value:function(){for(var t=this.q,e=this.chunk,r=this.i;;)switch(this.getCode()){case t:return this.pushAttrib(this.name,this.text+e.slice(r,this.prevI)),this.name=this.text=\"\",this.q=null,void(this.state=41);case 38:return this.text+=e.slice(r,this.prevI),this.state=14,void(this.entityReturnState=40);case 10:case-2:case 9:this.text+=\"\".concat(e.slice(r,this.prevI),\" \"),r=this.i;break;case 60:return this.text+=e.slice(r,this.prevI),void this.fail(\"disallowed character.\");case-1:return void(this.text+=e.slice(r))}}},{key:\"sAttribValueClosed\",value:function(){var t=this.getCodeNorm();h(t)?this.state=36:62===t?this.openTag():47===t?this.state=35:p(t)?(this.fail(\"no whitespace between attributes.\"),this.unget(),this.state=37):this.fail(\"disallowed character in attribute name.\")}},{key:\"sAttribValueUnquoted\",value:function(){var t=this.captureTo(A);switch(t){case 38:this.state=14,this.entityReturnState=42;break;case 60:this.fail(\"disallowed character.\");break;case-1:break;default:this.text.includes(\"]]>\")&&this.fail('the string \"]]>\" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text=\"\",62===t?this.openTag():this.state=36}}},{key:\"sCloseTag\",value:function(){var t=this.captureNameChars();62===t?this.closeTag():h(t)?this.state=44:-1!==t&&this.fail(\"disallowed character in closing tag.\")}},{key:\"sCloseTagSawWhite\",value:function(){switch(this.skipSpaces()){case 62:this.closeTag();break;case-1:break;default:this.fail(\"disallowed character in closing tag.\")}}},{key:\"handleTextInRoot\",value:function(){var t=this.i,e=this.forbiddenState,r=this.chunk,n=this.textHandler;t:for(;;)switch(this.getCode()){case 60:if(this.state=15,void 0!==n){var i=this.text,o=r.slice(t,this.prevI);0!==i.length?(n(i+o),this.text=\"\"):0!==o.length&&n(o)}e=0;break t;case 38:this.state=14,this.entityReturnState=13,void 0!==n&&(this.text+=r.slice(t,this.prevI)),e=0;break t;case 93:switch(e){case 0:e=1;break;case 1:e=2;break;case 2:break;default:throw new Error(\"impossible state\")}break;case 62:2===e&&this.fail('the string \"]]>\" is disallowed in char data.'),e=0;break;case-2:void 0!==n&&(this.text+=\"\".concat(r.slice(t,this.prevI),\"\\n\")),t=this.i,e=0;break;case-1:void 0!==n&&(this.text+=r.slice(t));break t;default:e=0}this.forbiddenState=e}},{key:\"handleTextOutsideRoot\",value:function(){var t=this.i,e=this.chunk,r=this.textHandler,n=!1;t:for(;;){var i=this.getCode();switch(i){case 60:if(this.state=15,void 0!==r){var o=this.text,a=e.slice(t,this.prevI);0!==o.length?(r(o+a),this.text=\"\"):0!==a.length&&r(a)}break t;case 38:this.state=14,this.entityReturnState=13,void 0!==r&&(this.text+=e.slice(t,this.prevI)),n=!0;break t;case-2:void 0!==r&&(this.text+=\"\".concat(e.slice(t,this.prevI),\"\\n\")),t=this.i;break;case-1:void 0!==r&&(this.text+=e.slice(t));break t;default:h(i)||(n=!0)}}n&&(this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0))}},{key:\"pushAttribNS\",value:function(t,e){var r,n=this.qname(t),i=n.prefix,o=n.local,a={name:t,prefix:i,local:o,value:e};if(this.attribList.push(a),null===(r=this.attributeHandler)||void 0===r||r.call(this,a),\"xmlns\"===i){var s=e.trim();\"1.0\"===this.currentXMLVersion&&\"\"===s&&this.fail(\"invalid attempt to undefine prefix in XML 1.0\"),this.topNS[o]=s,I(this,o,s)}else if(\"xmlns\"===t){var u=e.trim();this.topNS[\"\"]=u,I(this,\"\",u)}}},{key:\"pushAttribPlain\",value:function(t,e){var r,n={name:t,value:e};this.attribList.push(n),null===(r=this.attributeHandler)||void 0===r||r.call(this,n)}},{key:\"end\",value:function(){var t,e;this.sawRoot||this.fail(\"document must contain a root element.\");for(var r=this.tags;r.length>0;){var n=r.pop();this.fail(\"unclosed tag: \".concat(n.name))}0!==this.state&&13!==this.state&&this.fail(\"unexpected end.\");var i=this.text;return 0!==i.length&&(null===(t=this.textHandler)||void 0===t||t.call(this,i),this.text=\"\"),this._closed=!0,null===(e=this.endHandler)||void 0===e||e.call(this),this._init(),this}},{key:\"resolve\",value:function(t){var e,r,n=this.topNS[t];if(void 0!==n)return n;for(var i=this.tags,o=i.length-1;o>=0;o--)if(void 0!==(n=i[o].ns[t]))return n;return void 0!==(n=this.ns[t])?n:null===(r=(e=this.opt).resolvePrefix)||void 0===r?void 0:r.call(e,t)}},{key:\"qname\",value:function(t){var e=t.indexOf(\":\");if(-1===e)return{prefix:\"\",local:t};var r=t.slice(e+1),n=t.slice(0,e);return(\"\"===n||\"\"===r||r.includes(\":\"))&&this.fail(\"malformed name: \".concat(t,\".\")),{prefix:n,local:r}}},{key:\"processAttribsNS\",value:function(){var t,e=this.attribList,r=this.tag,i=this.qname(r.name),o=i.prefix,a=i.local;r.prefix=o,r.local=a;var s=r.uri=null!==(t=this.resolve(o))&&void 0!==t?t:\"\";if(\"\"!==o&&(\"xmlns\"===o&&this.fail('tags may not have \"xmlns\" as prefix.'),\"\"===s&&(this.fail(\"unbound namespace prefix: \".concat(JSON.stringify(o),\".\")),r.uri=o)),0!==e.length){var u,c=r.attributes,f=new Set,l=n(e);try{for(l.s();!(u=l.n()).done;){var h=u.value,d=h.name,p=h.prefix,m=h.local,y=void 0,b=void 0;\"\"===p?(y=\"xmlns\"===d?x:\"\",b=d):(void 0===(y=this.resolve(p))&&(this.fail(\"unbound namespace prefix: \".concat(JSON.stringify(p),\".\")),y=p),b=\"{\".concat(y,\"}\").concat(m)),f.has(b)&&this.fail(\"duplicate attribute: \".concat(b,\".\")),f.add(b),h.uri=y,c[d]=h}}catch(t){l.e(t)}finally{l.f()}this.attribList=[]}}},{key:\"processAttribsPlain\",value:function(){var t,e=this.attribList,r=this.tag.attributes,i=n(e);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=o.name,s=o.value;void 0!==r[a]&&this.fail(\"duplicate attribute: \".concat(a,\".\")),r[a]=s}}catch(t){i.e(t)}finally{i.f()}this.attribList=[]}},{key:\"openTag\",value:function(){var t;this.processAttribs();var e=this.tags,r=this.tag;r.isSelfClosing=!1,null===(t=this.openTagHandler)||void 0===t||t.call(this,r),e.push(r),this.state=13,this.name=\"\"}},{key:\"openSelfClosingTag\",value:function(){var t,e,r;this.processAttribs();var n=this.tags,i=this.tag;i.isSelfClosing=!0,null===(t=this.openTagHandler)||void 0===t||t.call(this,i),null===(e=this.closeTagHandler)||void 0===e||e.call(this,i),null===(this.tag=null!==(r=n[n.length-1])&&void 0!==r?r:null)&&(this.closedRoot=!0),this.state=13,this.name=\"\"}},{key:\"closeTag\",value:function(){var t=this.tags,e=this.name;if(this.state=13,this.name=\"\",\"\"===e)return this.fail(\"weird empty close tag.\"),void(this.text+=\"</>\");for(var r=this.closeTagHandler,n=t.length;n-- >0;){var i=this.tag=t.pop();if(this.topNS=i.ns,null==r||r(i),i.name===e)break;this.fail(\"unexpected close tag.\")}0===n?this.closedRoot=!0:n<0&&(this.fail(\"unmatched closing tag: \".concat(e,\".\")),this.text+=\"</\".concat(e,\">\"))}},{key:\"parseEntity\",value:function(t){if(\"#\"!==t[0]){var e=this.ENTITIES[t];return void 0!==e?e:(this.fail(this.isName(t)?\"undefined entity.\":\"disallowed character in entity name.\"),\"&\".concat(t,\";\"))}var r=NaN;return\"x\"===t[1]&&/^#x[0-9a-f]+$/i.test(t)?r=parseInt(t.slice(2),16):/^#[0-9]+$/.test(t)&&(r=parseInt(t.slice(1),10)),this.isChar(r)?String.fromCodePoint(r):(this.fail(\"malformed character entity.\"),\"&\".concat(t,\";\"))}},{key:\"closed\",get:function(){return this._closed}},{key:\"position\",get:function(){return this.chunkPosition+this.i}},{key:\"columnIndex\",get:function(){return this.position-this.positionAtNewLine}}])&&o(e.prototype,r),a&&o(e,a),t}();r.SaxesParser=F},{\"xmlchars/xml/1.0/ed5\":541,\"xmlchars/xml/1.1/ed2\":542,\"xmlchars/xmlns/1.0/ed3\":543}],497:[function(t,e,r){(function(t){\"use strict\";e.exports=\"function\"==typeof t?t:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}}).call(this,t(\"timers\").setImmediate)},{timers:521}],498:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){\"string\"==typeof t&&(e=e||\"utf8\",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,a=this._len,s=0;s<o;){for(var u=a%i,c=Math.min(o-s,i-u),f=0;f<c;f++)r[u+f]=t[s+f];s+=c,(a+=c)%i==0&&this._update(r)}return this._len+=o,this},i.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")},e.exports=i},{\"safe-buffer\":494}],499:[function(t,e,r){\"use strict\";var n=e.exports=function(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+\" is not supported (we accept pull requests)\");return new e};n.sha=t(\"./sha\"),n.sha1=t(\"./sha1\"),n.sha224=t(\"./sha224\"),n.sha256=t(\"./sha256\"),n.sha384=t(\"./sha384\"),n.sha512=t(\"./sha512\")},{\"./sha\":500,\"./sha1\":501,\"./sha224\":502,\"./sha256\":503,\"./sha384\":504,\"./sha512\":505}],500:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./hash\"),o=t(\"safe-buffer\").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t){return t<<30|t>>>2}function f(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)r[l]=t.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var h=0;h<80;++h){var d=~~(h/20),p=0|((e=n)<<5|e>>>27)+f(d,i,o,s)+u+r[h]+a[d];u=s,s=o,o=c(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=u},{\"./hash\":498,inherits:387,\"safe-buffer\":494}],501:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./hash\"),o=t(\"safe-buffer\").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t){return t<<5|t>>>27}function f(t){return t<<30|t>>>2}function l(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)r[h]=t.readInt32BE(4*h);for(;h<80;++h)r[h]=(e=r[h-3]^r[h-8]^r[h-14]^r[h-16])<<1|e>>>31;for(var d=0;d<80;++d){var p=~~(d/20),m=c(n)+l(p,i,o,s)+u+r[d]+a[p]|0;u=s,s=o,o=f(i),i=n,n=m}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},e.exports=u},{\"./hash\":498,inherits:387,\"safe-buffer\":494}],502:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./sha256\"),o=t(\"./hash\"),a=t(\"safe-buffer\").Buffer,s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},e.exports=u},{\"./hash\":498,\"./sha256\":503,inherits:387,\"safe-buffer\":494}],503:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./hash\"),o=t(\"safe-buffer\").Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function h(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,m=0|this._g,y=0|this._h,b=0;b<16;++b)r[b]=t.readInt32BE(4*b);for(;b<64;++b)r[b]=0|(((e=r[b-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+r[b-7]+d(r[b-15])+r[b-16];for(var v=0;v<64;++v){var g=y+h(u)+c(u,p,m)+a[v]+r[v]|0,w=l(n)+f(n,i,o)|0;y=m,m=p,p=u,u=s+g|0,s=o,o=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=y+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},e.exports=u},{\"./hash\":498,inherits:387,\"safe-buffer\":494}],504:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./sha512\"),o=t(\"./hash\"),a=t(\"safe-buffer\").Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},e.exports=u},{\"./hash\":498,\"./sha512\":505,inherits:387,\"safe-buffer\":494}],505:[function(t,e,r){\"use strict\";var n=t(\"inherits\"),i=t(\"./hash\"),o=t(\"safe-buffer\").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function c(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function h(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function y(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0<e>>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,x=0|this._dl,S=0|this._el,O=0|this._fl,j=0|this._gl,E=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var T=e[R-30],C=e[R-30+1],P=d(T,C),M=p(C,T),A=m(T=e[R-4],C=e[R-4+1]),I=y(C,T),N=e[R-14],D=e[R-14+1],B=e[R-32],F=e[R-32+1],L=M+D|0,z=P+N+b(L,M)|0;z=(z=z+A+b(L=L+I|0,I)|0)+B+b(L=L+F|0,F)|0,e[R]=z,e[R+1]=L}for(var U=0;U<160;U+=2){z=e[U],L=e[U+1];var H=f(r,n,i),V=f(w,_,k),q=l(r,w),W=l(w,r),$=h(s,S),X=h(S,s),K=a[U],Z=a[U+1],Y=c(s,u,v),G=c(S,O,j),J=E+X|0,Q=g+$+b(J,E)|0;Q=(Q=(Q=Q+Y+b(J=J+G|0,G)|0)+K+b(J=J+Z|0,Z)|0)+z+b(J=J+L|0,L)|0;var tt=W+V|0,et=q+H+b(tt,W)|0;g=v,E=j,v=u,j=O,u=s,O=S,s=o+Q+b(S=x+J|0,x)|0,o=i,x=k,i=n,k=_,n=r,_=w,r=Q+et+b(w=J+tt|0,J)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+x|0,this._el=this._el+S|0,this._fl=this._fl+O|0,this._gl=this._gl+j|0,this._hl=this._hl+E|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,_)|0,this._ch=this._ch+i+b(this._cl,k)|0,this._dh=this._dh+o+b(this._dl,x)|0,this._eh=this._eh+s+b(this._el,S)|0,this._fh=this._fh+u+b(this._fl,O)|0,this._gh=this._gh+v+b(this._gl,j)|0,this._hh=this._hh+g+b(this._hl,E)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},e.exports=u},{\"./hash\":498,inherits:387,\"safe-buffer\":494}],506:[function(t,e,r){\"use strict\";e.exports=i;var n=t(\"events\").EventEmitter;function i(){n.call(this)}t(\"inherits\")(i,n),i.Readable=t(\"readable-stream/readable.js\"),i.Writable=t(\"readable-stream/writable.js\"),i.Duplex=t(\"readable-stream/duplex.js\"),i.Transform=t(\"readable-stream/transform.js\"),i.PassThrough=t(\"readable-stream/passthrough.js\"),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on(\"data\",i),t.on(\"drain\",o),t._isStdio||e&&!1===e.end||(r.on(\"end\",s),r.on(\"close\",u));var a=!1;function s(){a||(a=!0,t.end())}function u(){a||(a=!0,\"function\"==typeof t.destroy&&t.destroy())}function c(t){if(f(),0===n.listenerCount(this,\"error\"))throw t}function f(){r.removeListener(\"data\",i),t.removeListener(\"drain\",o),r.removeListener(\"end\",s),r.removeListener(\"close\",u),r.removeListener(\"error\",c),t.removeListener(\"error\",c),r.removeListener(\"end\",f),r.removeListener(\"close\",f),t.removeListener(\"close\",f)}return r.on(\"error\",c),t.on(\"error\",c),r.on(\"end\",f),r.on(\"close\",f),t.on(\"close\",f),t.emit(\"pipe\",r),t}},{events:367,inherits:387,\"readable-stream/duplex.js\":507,\"readable-stream/passthrough.js\":516,\"readable-stream/readable.js\":517,\"readable-stream/transform.js\":518,\"readable-stream/writable.js\":519}],507:[function(t,e,r){\"use strict\";e.exports=t(\"./lib/_stream_duplex.js\")},{\"./lib/_stream_duplex.js\":508}],508:[function(t,e,r){\"use strict\";var n=t(\"process-nextick-args\"),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};e.exports=l;var o=Object.create(t(\"core-util-is\"));o.inherits=t(\"inherits\");var a=t(\"./_stream_readable\"),s=t(\"./_stream_writable\");o.inherits(l,a);for(var u=i(s.prototype),c=0;c<u.length;c++){var f=u[c];l.prototype[f]||(l.prototype[f]=s.prototype[f])}function l(t){if(!(this instanceof l))return new l(t);a.call(this,t),s.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once(\"end\",h)}function h(){this.allowHalfOpen||this._writableState.ended||n.nextTick(d,this)}function d(t){t.end()}Object.defineProperty(l.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,\"destroyed\",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}}),l.prototype._destroy=function(t,e){this.push(null),this.end(),n.nextTick(e,t)}},{\"./_stream_readable\":510,\"./_stream_writable\":512,\"core-util-is\":328,inherits:387,\"process-nextick-args\":466}],509:[function(t,e,r){\"use strict\";e.exports=o;var n=t(\"./_stream_transform\"),i=Object.create(t(\"core-util-is\"));function o(t){if(!(this instanceof o))return new o(t);n.call(this,t)}i.inherits=t(\"inherits\"),i.inherits(o,n),o.prototype._transform=function(t,e,r){r(null,t)}},{\"./_stream_transform\":511,\"core-util-is\":328,inherits:387}],510:[function(t,e,r){(function(r,n){\"use strict\";var i=t(\"process-nextick-args\");e.exports=g;var o,a=t(\"isarray\");g.ReadableState=v;t(\"events\").EventEmitter;var s=function(t,e){return t.listeners(e).length},u=t(\"./internal/streams/stream\"),c=t(\"safe-buffer\").Buffer,f=n.Uint8Array||function(){};var l=Object.create(t(\"core-util-is\"));l.inherits=t(\"inherits\");var h=t(\"util\"),d=void 0;d=h&&h.debuglog?h.debuglog(\"stream\"):function(){};var p,m=t(\"./internal/streams/BufferList\"),y=t(\"./internal/streams/destroy\");l.inherits(g,u);var b=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function v(e,r){e=e||{};var n=r instanceof(o=o||t(\"./_stream_duplex\"));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=t(\"string_decoder/\").StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function g(e){if(o=o||t(\"./_stream_duplex\"),!(this instanceof g))return new g(e);this._readableState=new v(e,this),this.readable=!0,e&&(\"function\"==typeof e.read&&(this._read=e.read),\"function\"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(t,e,r,n,i){var o,a=t._readableState;null===e?(a.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,x(t)}(t,a)):(i||(o=function(t,e){var r;n=e,c.isBuffer(n)||n instanceof f||\"string\"==typeof e||void 0===e||t.objectMode||(r=new TypeError(\"Invalid non-string/buffer chunk\"));var n;return r}(a,e)),o?t.emit(\"error\",o):a.objectMode||e&&e.length>0?(\"string\"==typeof e||a.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n?a.endEmitted?t.emit(\"error\",new Error(\"stream.unshift() after end event\")):_(t,a,e,!0):a.ended?t.emit(\"error\",new Error(\"stream.push() after EOF\")):(a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?_(t,a,e,!1):O(t,a)):_(t,a,e,!1))):n||(a.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}(a)}function _(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(t.emit(\"data\",r),t.read(0)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&x(t)),O(t,e)}Object.defineProperty(g.prototype,\"destroyed\",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),g.prototype.destroy=y.destroy,g.prototype._undestroy=y.undestroy,g.prototype._destroy=function(t,e){this.push(null),e(t)},g.prototype.push=function(t,e){var r,n=this._readableState;return n.objectMode?r=!0:\"string\"==typeof t&&((e=e||n.defaultEncoding)!==n.encoding&&(t=c.from(t,e),e=\"\"),r=!0),w(this,t,e,!1,r)},g.prototype.unshift=function(t){return w(this,t,null,!0,!1)},g.prototype.isPaused=function(){return!1===this._readableState.flowing},g.prototype.setEncoding=function(e){return p||(p=t(\"string_decoder/\").StringDecoder),this._readableState.decoder=new p(e),this._readableState.encoding=e,this};function k(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function x(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d(\"emitReadable\",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(S,t):S(t))}function S(t){d(\"emit readable\"),t.emit(\"readable\"),T(t)}function O(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(j,t,e))}function j(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(d(\"maybeReadMore read 0\"),t.read(0),r!==e.length);)r=e.length;e.readingMore=!1}function E(t){d(\"readable nexttick read 0\"),t.read(0)}function R(t,e){e.reading||(d(\"resume read 0\"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit(\"resume\"),T(t),e.flowing&&!e.reading&&t.read(0)}function T(t){var e=t._readableState;for(d(\"flow\",e.flowing);e.flowing&&null!==t.read(););}function C(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(\"\"):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;t<e.head.data.length?(n=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):n=t===e.head.data.length?e.shift():r?function(t,e){var r=e.head,n=1,i=r.data;t-=i.length;for(;r=r.next;){var o=r.data,a=t>o.length?o.length:t;if(a===o.length?i+=o:i+=o.slice(0,t),0===(t-=a)){a===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(a));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=c.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,a),0===(t-=a)){a===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(a));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function P(t){var e=t._readableState;if(e.length>0)throw new Error('\"endReadable()\" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(M,e,t))}function M(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"))}function A(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}g.prototype.read=function(t){d(\"read\",t),t=parseInt(t,10);var e=this._readableState,r=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return d(\"read: emitReadable\",e.length,e.ended),0===e.length&&e.ended?P(this):x(this),null;if(0===(t=k(t,e))&&e.ended)return 0===e.length&&P(this),null;var n,i=e.needReadable;return d(\"need readable\",i),(0===e.length||e.length-t<e.highWaterMark)&&d(\"length less than watermark\",i=!0),e.ended||e.reading?d(\"reading or ended\",i=!1):i&&(d(\"do read\"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=k(r,e))),null===(n=t>0?C(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&P(this)),null!==n&&this.emit(\"data\",n),n},g.prototype._read=function(t){this.emit(\"error\",new Error(\"_read() is not implemented\"))},g.prototype.pipe=function(t,e){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,d(\"pipe count=%d opts=%j\",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?f:g;function c(e,r){d(\"onunpipe\"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,d(\"cleanup\"),t.removeListener(\"close\",b),t.removeListener(\"finish\",v),t.removeListener(\"drain\",l),t.removeListener(\"error\",y),t.removeListener(\"unpipe\",c),n.removeListener(\"end\",f),n.removeListener(\"end\",g),n.removeListener(\"data\",m),h=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function f(){d(\"onend\"),t.end()}o.endEmitted?i.nextTick(u):n.once(\"end\",u),t.on(\"unpipe\",c);var l=function(t){return function(){var e=t._readableState;d(\"pipeOnDrain\",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,\"data\")&&(e.flowing=!0,T(t))}}(n);t.on(\"drain\",l);var h=!1;var p=!1;function m(e){d(\"ondata\"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==A(o.pipes,t))&&!h&&(d(\"false write response, pause\",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function y(e){d(\"onerror\",e),g(),t.removeListener(\"error\",y),0===s(t,\"error\")&&t.emit(\"error\",e)}function b(){t.removeListener(\"finish\",v),g()}function v(){d(\"onfinish\"),t.removeListener(\"close\",b),g()}function g(){d(\"unpipe\"),n.unpipe(t)}return n.on(\"data\",m),function(t,e,r){if(\"function\"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,\"error\",y),t.once(\"close\",b),t.once(\"finish\",v),t.emit(\"pipe\",n),o.flowing||(d(\"pipe resume\"),n.resume()),t},g.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<i;o++)n[o].emit(\"unpipe\",this,r);return this}var a=A(e.pipes,t);return-1===a||(e.pipes.splice(a,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit(\"unpipe\",this,r)),this},g.prototype.on=function(t,e){var r=u.prototype.on.call(this,t,e);if(\"data\"===t)!1!==this._readableState.flowing&&this.resume();else if(\"readable\"===t){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&x(this):i.nextTick(E,this))}return r},g.prototype.addListener=g.prototype.on,g.prototype.resume=function(){var t=this._readableState;return t.flowing||(d(\"resume\"),t.flowing=!0,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(R,t,e))}(this,t)),this},g.prototype.pause=function(){return d(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(d(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this},g.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on(\"end\",(function(){if(d(\"wrapped end\"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on(\"data\",(function(i){(d(\"wrapped data\"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&\"function\"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o<b.length;o++)t.on(b[o],this.emit.bind(this,b[o]));return this._read=function(e){d(\"wrapped _read\",e),n&&(n=!1,t.resume())},this},Object.defineProperty(g.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),g._fromList=C}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./_stream_duplex\":508,\"./internal/streams/BufferList\":513,\"./internal/streams/destroy\":514,\"./internal/streams/stream\":515,_process:467,\"core-util-is\":328,events:367,inherits:387,isarray:389,\"process-nextick-args\":466,\"safe-buffer\":494,\"string_decoder/\":520,util:185}],511:[function(t,e,r){\"use strict\";e.exports=a;var n=t(\"./_stream_duplex\"),i=Object.create(t(\"core-util-is\"));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit(\"error\",new Error(\"write callback called multiple times\"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function a(t){if(!(this instanceof a))return new a(t);n.call(this,t),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(\"function\"==typeof t.transform&&(this._transform=t.transform),\"function\"==typeof t.flush&&(this._flush=t.flush)),this.on(\"prefinish\",s)}function s(){var t=this;\"function\"==typeof this._flush?this._flush((function(e,r){u(t,e,r)})):u(this,null,null)}function u(t,e,r){if(e)return t.emit(\"error\",e);if(null!=r&&t.push(r),t._writableState.length)throw new Error(\"Calling transform done when ws.length != 0\");if(t._transformState.transforming)throw new Error(\"Calling transform done when still transforming\");return t.push(null)}i.inherits=t(\"inherits\"),i.inherits(a,n),a.prototype.push=function(t,e){return this._transformState.needTransform=!1,n.prototype.push.call(this,t,e)},a.prototype._transform=function(t,e,r){throw new Error(\"_transform() is not implemented\")},a.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},a.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},a.prototype._destroy=function(t,e){var r=this;n.prototype._destroy.call(this,t,(function(t){e(t),r.emit(\"close\")}))}},{\"./_stream_duplex\":508,\"core-util-is\":328,inherits:387}],512:[function(t,e,r){(function(r,n,i){\"use strict\";var o=t(\"process-nextick-args\");function a(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}e.exports=v;var s,u=!r.browser&&[\"v0.10\",\"v0.9.\"].indexOf(r.version.slice(0,5))>-1?i:o.nextTick;v.WritableState=b;var c=Object.create(t(\"core-util-is\"));c.inherits=t(\"inherits\");var f={deprecate:t(\"util-deprecate\")},l=t(\"./internal/streams/stream\"),h=t(\"safe-buffer\").Buffer,d=n.Uint8Array||function(){};var p,m=t(\"./internal/streams/destroy\");function y(){}function b(e,r){s=s||t(\"./_stream_duplex\"),e=e||{};var n=r instanceof s;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,c=e.writableHighWaterMark,f=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:f,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===e.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=e.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(S,t,e),t._writableState.errorEmitted=!0,t.emit(\"error\",n)):(i(n),t._writableState.errorEmitted=!0,t.emit(\"error\",n),S(t,e))}(t,r,n,e,i);else{var a=k(r);a||r.corked||r.bufferProcessing||!r.bufferedRequest||_(t,r),n?u(w,t,r,a,i):w(t,r,a,i)}}(r,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function v(e){if(s=s||t(\"./_stream_duplex\"),!(p.call(v,this)||this instanceof s))return new v(e);this._writableState=new b(e,this),this.writable=!0,e&&(\"function\"==typeof e.write&&(this._write=e.write),\"function\"==typeof e.writev&&(this._writev=e.writev),\"function\"==typeof e.destroy&&(this._destroy=e.destroy),\"function\"==typeof e.final&&(this._final=e.final)),l.call(this)}function g(t,e,r,n,i,o,a){e.writelen=n,e.writecb=a,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function w(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}(t,e),e.pendingcb--,n(),S(t,e)}function _(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,g(t,e,!0,e.length,i,\"\",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new a(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,f=r.encoding,l=r.callback;if(g(t,e,!1,e.objectMode?1:c.length,c,f,l),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function k(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function x(t,e){t._final((function(r){e.pendingcb--,r&&t.emit(\"error\",r),e.prefinished=!0,t.emit(\"prefinish\"),S(t,e)}))}function S(t,e){var r=k(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||(\"function\"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(x,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit(\"finish\"))),r}c.inherits(v,l),b.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(b.prototype,\"buffer\",{get:f.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(t){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===v&&(t&&t._writableState instanceof b)}})):p=function(t){return t instanceof this},v.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},v.prototype.write=function(t,e,r){var n,i=this._writableState,a=!1,s=!i.objectMode&&(n=t,h.isBuffer(n)||n instanceof d);return s&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),\"function\"==typeof e&&(r=e,e=null),s?e=\"buffer\":e||(e=i.defaultEncoding),\"function\"!=typeof r&&(r=y),i.ended?function(t,e){var r=new Error(\"write after end\");t.emit(\"error\",r),o.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,a=!1;return null===r?a=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||e.objectMode||(a=new TypeError(\"Invalid non-string/buffer chunk\")),a&&(t.emit(\"error\",a),o.nextTick(n,a),i=!1),i}(this,i,t,r))&&(i.pendingcb++,a=function(t,e,r,n,i,o){if(!r){var a=function(t,e,r){t.objectMode||!1===t.decodeStrings||\"string\"!=typeof e||(e=h.from(e,r));return e}(e,n,i);n!==a&&(r=!0,i=\"buffer\",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length<e.highWaterMark;u||(e.needDrain=!0);if(e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else g(t,e,!1,s,n,i,o);return u}(this,i,s,t,e,r)),a},v.prototype.cork=function(){this._writableState.corked++},v.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||_(this,t))},v.prototype.setDefaultEncoding=function(t){if(\"string\"==typeof t&&(t=t.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((t+\"\").toLowerCase())>-1))throw new TypeError(\"Unknown encoding: \"+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(v.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(t,e,r){r(new Error(\"_write() is not implemented\"))},v.prototype._writev=null,v.prototype.end=function(t,e,r){var n=this._writableState;\"function\"==typeof t?(r=t,t=null,e=null):\"function\"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,S(t,e),r&&(e.finished?o.nextTick(r):t.once(\"finish\",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),v.prototype.destroy=m.destroy,v.prototype._undestroy=m.undestroy,v.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},t(\"timers\").setImmediate)},{\"./_stream_duplex\":508,\"./internal/streams/destroy\":514,\"./internal/streams/stream\":515,_process:467,\"core-util-is\":328,inherits:387,\"process-nextick-args\":466,\"safe-buffer\":494,timers:521,\"util-deprecate\":522}],513:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=t(\"util\");e.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return\"\";for(var e=this.head,r=\"\"+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e,r,i,o=n.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=o,i=s,e.copy(r,i),s+=a.data.length,a=a.next;return o},t}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+\" \"+t})},{\"safe-buffer\":494,util:185}],514:[function(t,e,r){\"use strict\";var n=t(\"process-nextick-args\");function i(t,e){t.emit(\"error\",e)}e.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):!t||this._writableState&&this._writableState.errorEmitted||n.nextTick(i,this,t),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?(n.nextTick(i,r,t),r._writableState&&(r._writableState.errorEmitted=!0)):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{\"process-nextick-args\":466}],515:[function(t,e,r){arguments[4][490][0].apply(r,arguments)},{dup:490,events:367}],516:[function(t,e,r){\"use strict\";e.exports=t(\"./readable\").PassThrough},{\"./readable\":517}],517:[function(t,e,r){\"use strict\";(r=e.exports=t(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=t(\"./lib/_stream_writable.js\"),r.Duplex=t(\"./lib/_stream_duplex.js\"),r.Transform=t(\"./lib/_stream_transform.js\"),r.PassThrough=t(\"./lib/_stream_passthrough.js\")},{\"./lib/_stream_duplex.js\":508,\"./lib/_stream_passthrough.js\":509,\"./lib/_stream_readable.js\":510,\"./lib/_stream_transform.js\":511,\"./lib/_stream_writable.js\":512}],518:[function(t,e,r){\"use strict\";e.exports=t(\"./readable\").Transform},{\"./readable\":517}],519:[function(t,e,r){\"use strict\";e.exports=t(\"./lib/_stream_writable.js\")},{\"./lib/_stream_writable.js\":512}],520:[function(t,e,r){\"use strict\";var n=t(\"safe-buffer\").Buffer,i=n.isEncoding||function(t){switch((t=\"\"+t)&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return\"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0}}(t);if(\"string\"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}(t),this.encoding){case\"utf16le\":this.text=u,this.end=c,e=4;break;case\"utf8\":this.fillLast=s,e=4;break;case\"base64\":this.text=f,this.end=l,e=3;break;default:return this.write=h,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function a(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,\"\\ufffd\";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,\"\\ufffd\";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,\"\\ufffd\"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString(\"utf16le\",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function f(t,e){var r=(t.length-e)%3;return 0===r?t.toString(\"base64\",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-r))}function l(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):\"\"}r.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return\"\";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||\"\"},o.prototype.end=function(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+\"\\ufffd\":e},o.prototype.text=function(t,e){var r=function(t,e,r){var n=e.length-1;if(n<r)return 0;var i=a(e[n]);if(i>=0)return i>0&&(t.lastNeed=i-1),i;if(--n<r||-2===i)return 0;if((i=a(e[n]))>=0)return i>0&&(t.lastNeed=i-2),i;if(--n<r||-2===i)return 0;if((i=a(e[n]))>=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString(\"utf8\",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},{\"safe-buffer\":494}],521:[function(t,e,r){(function(e,n){\"use strict\";var i=t(\"process/browser.js\").nextTick,o=Function.prototype.apply,a=Array.prototype.slice,s={},u=0;function c(t,e){this._id=t,this._clearFn=e}r.setTimeout=function(){return new c(o.call(setTimeout,window,arguments),clearTimeout)},r.setInterval=function(){return new c(o.call(setInterval,window,arguments),clearInterval)},r.clearTimeout=r.clearInterval=function(t){t.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},r.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},r.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},r._unrefActive=r.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r.setImmediate=\"function\"==typeof e?e:function(t){var e=u++,n=!(arguments.length<2)&&a.call(arguments,1);return s[e]=!0,i((function(){s[e]&&(n?t.apply(null,n):t.call(null),r.clearImmediate(e))})),e},r.clearImmediate=\"function\"==typeof n?n:function(t){delete s[t]}}).call(this,t(\"timers\").setImmediate,t(\"timers\").clearImmediate)},{\"process/browser.js\":467,timers:521}],522:[function(t,e,r){(function(t){\"use strict\";function r(e){try{if(!t.localStorage)return!1}catch(t){return!1}var r=t.localStorage[e];return null!=r&&\"true\"===String(r).toLowerCase()}e.exports=function(t,e){if(r(\"noDeprecation\"))return t;var n=!1;return function(){if(!n){if(r(\"throwDeprecation\"))throw new Error(e);r(\"traceDeprecation\")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],523:[function(t,e,r){\"use strict\";\"function\"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],524:[function(t,e,r){\"use strict\";function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}e.exports=function(t){return t&&\"object\"===n(t)&&\"function\"==typeof t.copy&&\"function\"==typeof t.fill&&\"function\"==typeof t.readUInt8}},{}],525:[function(t,e,r){(function(e,n){\"use strict\";function i(t){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var o=/%[sdj%]/g;r.format=function(t){if(!v(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(u(arguments[r]));return e.join(\" \")}r=1;for(var n=arguments,i=n.length,a=String(t).replace(o,(function(t){if(\"%%\"===t)return\"%\";if(r>=i)return t;switch(t){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(t){return\"[Circular]\"}default:return t}})),s=n[r];r<i;s=n[++r])y(s)||!_(s)?a+=\" \"+s:a+=\" \"+u(s);return a},r.deprecate=function(t,i){if(g(n.process))return function(){return r.deprecate(t,i).apply(this,arguments)};if(!0===e.noDeprecation)return t;var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(i);e.traceDeprecation?console.trace(i):console.error(i),o=!0}return t.apply(this,arguments)}};var a,s={};function u(t,e){var n={seen:[],stylize:f};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(e)?n.showHidden=e:e&&r._extend(n,e),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),l(n,t,n.depth)}function c(t,e){var r=u.styles[e];return r?\"\\x1b[\"+u.colors[r][0]+\"m\"+t+\"\\x1b[\"+u.colors[r][1]+\"m\":t}function f(t,e){return t}function l(t,e,n){if(t.customInspect&&e&&S(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return v(i)||(i=l(t,i,n)),i}var o=function(t,e){if(g(e))return t.stylize(\"undefined\",\"undefined\");if(v(e)){var r=\"'\"+JSON.stringify(e).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return t.stylize(r,\"string\")}if(b(e))return t.stylize(\"\"+e,\"number\");if(m(e))return t.stylize(\"\"+e,\"boolean\");if(y(e))return t.stylize(\"null\",\"null\")}(t,e);if(o)return o;var a=Object.keys(e),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),x(e)&&(a.indexOf(\"message\")>=0||a.indexOf(\"description\")>=0))return h(e);if(0===a.length){if(S(e)){var u=e.name?\": \"+e.name:\"\";return t.stylize(\"[Function\"+u+\"]\",\"special\")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),\"regexp\");if(k(e))return t.stylize(Date.prototype.toString.call(e),\"date\");if(x(e))return h(e)}var c,f=\"\",_=!1,O=[\"{\",\"}\"];(p(e)&&(_=!0,O=[\"[\",\"]\"]),S(e))&&(f=\" [Function\"+(e.name?\": \"+e.name:\"\")+\"]\");return w(e)&&(f=\" \"+RegExp.prototype.toString.call(e)),k(e)&&(f=\" \"+Date.prototype.toUTCString.call(e)),x(e)&&(f=\" \"+h(e)),0!==a.length||_&&0!=e.length?n<0?w(e)?t.stylize(RegExp.prototype.toString.call(e),\"regexp\"):t.stylize(\"[Object]\",\"special\"):(t.seen.push(e),c=_?function(t,e,r,n,i){for(var o=[],a=0,s=e.length;a<s;++a)T(e,String(a))?o.push(d(t,e,r,n,String(a),!0)):o.push(\"\");return i.forEach((function(i){i.match(/^\\d+$/)||o.push(d(t,e,r,n,i,!0))})),o}(t,e,n,s,a):a.map((function(r){return d(t,e,n,s,r,_)})),t.seen.pop(),function(t,e,r){if(t.reduce((function(t,e){return e.indexOf(\"\\n\")>=0&&0,t+e.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0)>60)return r[0]+(\"\"===e?\"\":e+\"\\n \")+\" \"+t.join(\",\\n \")+\" \"+r[1];return r[0]+e+\" \"+t.join(\", \")+\" \"+r[1]}(c,f,O)):O[0]+f+O[1]}function h(t){return\"[\"+Error.prototype.toString.call(t)+\"]\"}function d(t,e,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize(\"[Getter/Setter]\",\"special\"):t.stylize(\"[Getter]\",\"special\"):u.set&&(s=t.stylize(\"[Setter]\",\"special\")),T(n,i)||(a=\"[\"+i+\"]\"),s||(t.seen.indexOf(u.value)<0?(s=y(r)?l(t,u.value,null):l(t,u.value,r-1)).indexOf(\"\\n\")>-1&&(s=o?s.split(\"\\n\").map((function(t){return\" \"+t})).join(\"\\n\").substr(2):\"\\n\"+s.split(\"\\n\").map((function(t){return\" \"+t})).join(\"\\n\")):s=t.stylize(\"[Circular]\",\"special\")),g(a)){if(o&&i.match(/^\\d+$/))return s;(a=JSON.stringify(\"\"+i)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,\"name\")):(a=a.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),a=t.stylize(a,\"string\"))}return a+\": \"+s}function p(t){return Array.isArray(t)}function m(t){return\"boolean\"==typeof t}function y(t){return null===t}function b(t){return\"number\"==typeof t}function v(t){return\"string\"==typeof t}function g(t){return void 0===t}function w(t){return _(t)&&\"[object RegExp]\"===O(t)}function _(t){return\"object\"===i(t)&&null!==t}function k(t){return _(t)&&\"[object Date]\"===O(t)}function x(t){return _(t)&&(\"[object Error]\"===O(t)||t instanceof Error)}function S(t){return\"function\"==typeof t}function O(t){return Object.prototype.toString.call(t)}function j(t){return t<10?\"0\"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(g(a)&&(a=e.env.NODE_DEBUG||\"\"),t=t.toUpperCase(),!s[t])if(new RegExp(\"\\\\b\"+t+\"\\\\b\",\"i\").test(a)){var n=e.pid;s[t]=function(){var e=r.format.apply(r,arguments);console.error(\"%s %d: %s\",t,n,e)}}else s[t]=function(){};return s[t]},r.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},r.isArray=p,r.isBoolean=m,r.isNull=y,r.isNullOrUndefined=function(t){return null==t},r.isNumber=b,r.isString=v,r.isSymbol=function(t){return\"symbol\"===i(t)},r.isUndefined=g,r.isRegExp=w,r.isObject=_,r.isDate=k,r.isError=x,r.isFunction=S,r.isPrimitive=function(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"===i(t)||void 0===t},r.isBuffer=t(\"./support/isBuffer\");var E=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function R(){var t=new Date,e=[j(t.getHours()),j(t.getMinutes()),j(t.getSeconds())].join(\":\");return[t.getDate(),E[t.getMonth()],e].join(\" \")}function T(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){console.log(\"%s - %s\",R(),r.format.apply(r,arguments))},r.inherits=t(\"inherits\"),r._extend=function(t,e){if(!e||!_(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./support/isBuffer\":524,_process:467,inherits:523}],526:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),Object.defineProperty(r,\"v1\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(r,\"v3\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(r,\"v4\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(r,\"v5\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(r,\"NIL\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(r,\"version\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(r,\"validate\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(r,\"stringify\",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(r,\"parse\",{enumerable:!0,get:function(){return l.default}});var n=h(t(\"./v1.js\")),i=h(t(\"./v3.js\")),o=h(t(\"./v4.js\")),a=h(t(\"./v5.js\")),s=h(t(\"./nil.js\")),u=h(t(\"./version.js\")),c=h(t(\"./validate.js\")),f=h(t(\"./stringify.js\")),l=h(t(\"./parse.js\"));function h(t){return t&&t.__esModule?t:{default:t}}},{\"./nil.js\":528,\"./parse.js\":529,\"./stringify.js\":533,\"./v1.js\":534,\"./v3.js\":535,\"./v4.js\":537,\"./v5.js\":538,\"./validate.js\":539,\"./version.js\":540}],527:[function(t,e,r){\"use strict\";function n(t){return 14+(t+64>>>9<<4)+1}function i(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function o(t,e,r,n,o,a){return i((s=i(i(e,t),i(n,a)))<<(u=o)|s>>>32-u,r);var s,u}function a(t,e,r,n,i,a,s){return o(e&r|~e&n,t,e,i,a,s)}function s(t,e,r,n,i,a,s){return o(e&n|r&~n,t,e,i,a,s)}function u(t,e,r,n,i,a,s){return o(e^r^n,t,e,i,a,s)}function c(t,e,r,n,i,a,s){return o(r^(e|~n),t,e,i,a,s)}Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var f=function(t){if(\"string\"==typeof t){var e=unescape(encodeURIComponent(t));t=new Uint8Array(e.length);for(var r=0;r<e.length;++r)t[r]=e.charCodeAt(r)}return function(t){for(var e=[],r=32*t.length,n=0;n<r;n+=8){var i=t[n>>5]>>>n%32&255,o=parseInt(\"0123456789abcdef\".charAt(i>>>4&15)+\"0123456789abcdef\".charAt(15&i),16);e.push(o)}return e}(function(t,e){t[e>>5]|=128<<e%32,t[n(e)-1]=e;for(var r=1732584193,o=-271733879,f=-1732584194,l=271733878,h=0;h<t.length;h+=16){var d=r,p=o,m=f,y=l;r=a(r,o,f,l,t[h],7,-680876936),l=a(l,r,o,f,t[h+1],12,-389564586),f=a(f,l,r,o,t[h+2],17,606105819),o=a(o,f,l,r,t[h+3],22,-1044525330),r=a(r,o,f,l,t[h+4],7,-176418897),l=a(l,r,o,f,t[h+5],12,1200080426),f=a(f,l,r,o,t[h+6],17,-1473231341),o=a(o,f,l,r,t[h+7],22,-45705983),r=a(r,o,f,l,t[h+8],7,1770035416),l=a(l,r,o,f,t[h+9],12,-1958414417),f=a(f,l,r,o,t[h+10],17,-42063),o=a(o,f,l,r,t[h+11],22,-1990404162),r=a(r,o,f,l,t[h+12],7,1804603682),l=a(l,r,o,f,t[h+13],12,-40341101),f=a(f,l,r,o,t[h+14],17,-1502002290),o=a(o,f,l,r,t[h+15],22,1236535329),r=s(r,o,f,l,t[h+1],5,-165796510),l=s(l,r,o,f,t[h+6],9,-1069501632),f=s(f,l,r,o,t[h+11],14,643717713),o=s(o,f,l,r,t[h],20,-373897302),r=s(r,o,f,l,t[h+5],5,-701558691),l=s(l,r,o,f,t[h+10],9,38016083),f=s(f,l,r,o,t[h+15],14,-660478335),o=s(o,f,l,r,t[h+4],20,-405537848),r=s(r,o,f,l,t[h+9],5,568446438),l=s(l,r,o,f,t[h+14],9,-1019803690),f=s(f,l,r,o,t[h+3],14,-187363961),o=s(o,f,l,r,t[h+8],20,1163531501),r=s(r,o,f,l,t[h+13],5,-1444681467),l=s(l,r,o,f,t[h+2],9,-51403784),f=s(f,l,r,o,t[h+7],14,1735328473),o=s(o,f,l,r,t[h+12],20,-1926607734),r=u(r,o,f,l,t[h+5],4,-378558),l=u(l,r,o,f,t[h+8],11,-2022574463),f=u(f,l,r,o,t[h+11],16,1839030562),o=u(o,f,l,r,t[h+14],23,-35309556),r=u(r,o,f,l,t[h+1],4,-1530992060),l=u(l,r,o,f,t[h+4],11,1272893353),f=u(f,l,r,o,t[h+7],16,-155497632),o=u(o,f,l,r,t[h+10],23,-1094730640),r=u(r,o,f,l,t[h+13],4,681279174),l=u(l,r,o,f,t[h],11,-358537222),f=u(f,l,r,o,t[h+3],16,-722521979),o=u(o,f,l,r,t[h+6],23,76029189),r=u(r,o,f,l,t[h+9],4,-640364487),l=u(l,r,o,f,t[h+12],11,-421815835),f=u(f,l,r,o,t[h+15],16,530742520),o=u(o,f,l,r,t[h+2],23,-995338651),r=c(r,o,f,l,t[h],6,-198630844),l=c(l,r,o,f,t[h+7],10,1126891415),f=c(f,l,r,o,t[h+14],15,-1416354905),o=c(o,f,l,r,t[h+5],21,-57434055),r=c(r,o,f,l,t[h+12],6,1700485571),l=c(l,r,o,f,t[h+3],10,-1894986606),f=c(f,l,r,o,t[h+10],15,-1051523),o=c(o,f,l,r,t[h+1],21,-2054922799),r=c(r,o,f,l,t[h+8],6,1873313359),l=c(l,r,o,f,t[h+15],10,-30611744),f=c(f,l,r,o,t[h+6],15,-1560198380),o=c(o,f,l,r,t[h+13],21,1309151649),r=c(r,o,f,l,t[h+4],6,-145523070),l=c(l,r,o,f,t[h+11],10,-1120210379),f=c(f,l,r,o,t[h+2],15,718787259),o=c(o,f,l,r,t[h+9],21,-343485551),r=i(r,d),o=i(o,p),f=i(f,m),l=i(l,y)}return[r,o,f,l]}(function(t){if(0===t.length)return[];for(var e=8*t.length,r=new Uint32Array(n(e)),i=0;i<e;i+=8)r[i>>5]|=(255&t[i/8])<<i%32;return r}(t),8*t.length))};r.default=f},{}],528:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;r.default=\"00000000-0000-0000-0000-000000000000\"},{}],529:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=t(\"./validate.js\"))&&n.__esModule?n:{default:n};var o=function(t){if(!(0,i.default)(t))throw TypeError(\"Invalid UUID\");var e,r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r};r.default=o},{\"./validate.js\":539}],530:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;r.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},{}],531:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(){if(!n)throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return n(i)};var n=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),i=new Uint8Array(16)},{}],532:[function(t,e,r){\"use strict\";function n(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function i(t,e){return t<<e|t>>>32-e}Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var o=function(t){var e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(\"string\"==typeof t){var o=unescape(encodeURIComponent(t));t=[];for(var a=0;a<o.length;++a)t.push(o.charCodeAt(a))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);for(var s=t.length/4+2,u=Math.ceil(s/16),c=new Array(u),f=0;f<u;++f){for(var l=new Uint32Array(16),h=0;h<16;++h)l[h]=t[64*f+4*h]<<24|t[64*f+4*h+1]<<16|t[64*f+4*h+2]<<8|t[64*f+4*h+3];c[f]=l}c[u-1][14]=8*(t.length-1)/Math.pow(2,32),c[u-1][14]=Math.floor(c[u-1][14]),c[u-1][15]=8*(t.length-1)&4294967295;for(var d=0;d<u;++d){for(var p=new Uint32Array(80),m=0;m<16;++m)p[m]=c[d][m];for(var y=16;y<80;++y)p[y]=i(p[y-3]^p[y-8]^p[y-14]^p[y-16],1);for(var b=r[0],v=r[1],g=r[2],w=r[3],_=r[4],k=0;k<80;++k){var x=Math.floor(k/20),S=i(b,5)+n(x,v,g,w)+_+e[x]+p[k]>>>0;_=w,w=g,g=i(v,30)>>>0,v=b,b=S}r[0]=r[0]+b>>>0,r[1]=r[1]+v>>>0,r[2]=r[2]+g>>>0,r[3]=r[3]+w>>>0,r[4]=r[4]+_>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]};r.default=o},{}],533:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=t(\"./validate.js\"))&&n.__esModule?n:{default:n};for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).substr(1));var s=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+\"-\"+o[t[e+4]]+o[t[e+5]]+\"-\"+o[t[e+6]]+o[t[e+7]]+\"-\"+o[t[e+8]]+o[t[e+9]]+\"-\"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase();if(!(0,i.default)(r))throw TypeError(\"Stringified UUID is invalid\");return r};r.default=s},{\"./validate.js\":539}],534:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i,o=s(t(\"./rng.js\")),a=s(t(\"./stringify.js\"));function s(t){return t&&t.__esModule?t:{default:t}}var u=0,c=0;var f=function(t,e,r){var s=e&&r||0,f=e||new Array(16),l=(t=t||{}).node||n,h=void 0!==t.clockseq?t.clockseq:i;if(null==l||null==h){var d=t.random||(t.rng||o.default)();null==l&&(l=n=[1|d[0],d[1],d[2],d[3],d[4],d[5]]),null==h&&(h=i=16383&(d[6]<<8|d[7]))}var p=void 0!==t.msecs?t.msecs:Date.now(),m=void 0!==t.nsecs?t.nsecs:c+1,y=p-u+(m-c)/1e4;if(y<0&&void 0===t.clockseq&&(h=h+1&16383),(y<0||p>u)&&void 0===t.nsecs&&(m=0),m>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");u=p,c=m,i=h;var b=(1e4*(268435455&(p+=122192928e5))+m)%4294967296;f[s++]=b>>>24&255,f[s++]=b>>>16&255,f[s++]=b>>>8&255,f[s++]=255&b;var v=p/4294967296*1e4&268435455;f[s++]=v>>>8&255,f[s++]=255&v,f[s++]=v>>>24&15|16,f[s++]=v>>>16&255,f[s++]=h>>>8|128,f[s++]=255&h;for(var g=0;g<6;++g)f[s+g]=l[g];return e||(0,a.default)(f)};r.default=f},{\"./rng.js\":531,\"./stringify.js\":533}],535:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=o(t(\"./v35.js\")),i=o(t(\"./md5.js\"));function o(t){return t&&t.__esModule?t:{default:t}}var a=(0,n.default)(\"v3\",48,i.default);r.default=a},{\"./md5.js\":527,\"./v35.js\":536}],536:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(t,e,r){function o(t,o,a,s){if(\"string\"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}(t)),\"string\"==typeof o&&(o=(0,i.default)(o)),16!==o.length)throw TypeError(\"Namespace must be array-like (16 iterable integer values, 0-255)\");var u=new Uint8Array(16+t.length);if(u.set(o),u.set(t,o.length),(u=r(u))[6]=15&u[6]|e,u[8]=63&u[8]|128,a){s=s||0;for(var c=0;c<16;++c)a[s+c]=u[c];return a}return(0,n.default)(u)}try{o.name=t}catch(t){}return o.DNS=a,o.URL=s,o},r.URL=r.DNS=void 0;var n=o(t(\"./stringify.js\")),i=o(t(\"./parse.js\"));function o(t){return t&&t.__esModule?t:{default:t}}var a=\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\";r.DNS=a;var s=\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\";r.URL=s},{\"./parse.js\":529,\"./stringify.js\":533}],537:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=o(t(\"./rng.js\")),i=o(t(\"./stringify.js\"));function o(t){return t&&t.__esModule?t:{default:t}}var a=function(t,e,r){var o=(t=t||{}).random||(t.rng||n.default)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e){r=r||0;for(var a=0;a<16;++a)e[r+a]=o[a];return e}return(0,i.default)(o)};r.default=a},{\"./rng.js\":531,\"./stringify.js\":533}],538:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=o(t(\"./v35.js\")),i=o(t(\"./sha1.js\"));function o(t){return t&&t.__esModule?t:{default:t}}var a=(0,n.default)(\"v5\",80,i.default);r.default=a},{\"./sha1.js\":532,\"./v35.js\":536}],539:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=t(\"./regex.js\"))&&n.__esModule?n:{default:n};var o=function(t){return\"string\"==typeof t&&i.default.test(t)};r.default=o},{\"./regex.js\":530}],540:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=t(\"./validate.js\"))&&n.__esModule?n:{default:n};var o=function(t){if(!(0,i.default)(t))throw TypeError(\"Invalid UUID\");return parseInt(t.substr(14,1),16)};r.default=o},{\"./validate.js\":539}],541:[function(t,e,r){\"use strict\";\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */Object.defineProperty(r,\"__esModule\",{value:!0}),r.CHAR=\"\\t\\n\\r -\\ud7ff\\ue000-\\ufffd\\ud800\\udc00-\\udbff\\udfff\",r.S=\" \\t\\r\\n\",r.NAME_START_CHAR=\":A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NAME_CHAR=\"-\"+r.NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.CHAR_RE=new RegExp(\"^[\"+r.CHAR+\"]$\",\"u\"),r.S_RE=new RegExp(\"^[\"+r.S+\"]+$\",\"u\"),r.NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"]$\",\"u\"),r.NAME_CHAR_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]$\",\"u\"),r.NAME_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"][\"+r.NAME_CHAR+\"]*$\",\"u\"),r.NMTOKEN_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]+$\",\"u\");function n(t){return t>=65&&t<=90||t>=97&&t<=122||58===t||95===t||8204===t||8205===t||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(t){return t>=32&&t<=55295||10===t||13===t||9===t||t>=57344&&t<=65533||t>=65536&&t<=1114111},r.isS=function(t){return 32===t||10===t||13===t||9===t},r.isNameStartChar=n,r.isNameChar=function(t){return n(t)||t>=48&&t<=57||45===t||46===t||183===t||t>=768&&t<=879||t>=8255&&t<=8256}},{}],542:[function(t,e,r){\"use strict\";\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */Object.defineProperty(r,\"__esModule\",{value:!0}),r.CHAR=\"\\x01-\\ud7ff\\ue000-\\ufffd\\ud800\\udc00-\\udbff\\udfff\",r.RESTRICTED_CHAR=\"\\x01-\\b\\v\\f\\x0e-\\x1f\\x7f-\\x84\\x86-\\x9f\",r.S=\" \\t\\r\\n\",r.NAME_START_CHAR=\":A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NAME_CHAR=\"-\"+r.NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.CHAR_RE=new RegExp(\"^[\"+r.CHAR+\"]$\",\"u\"),r.RESTRICTED_CHAR_RE=new RegExp(\"^[\"+r.RESTRICTED_CHAR+\"]$\",\"u\"),r.S_RE=new RegExp(\"^[\"+r.S+\"]+$\",\"u\"),r.NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"]$\",\"u\"),r.NAME_CHAR_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]$\",\"u\"),r.NAME_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"][\"+r.NAME_CHAR+\"]*$\",\"u\"),r.NMTOKEN_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]+$\",\"u\");function n(t){return t>=65&&t<=90||t>=97&&t<=122||58===t||95===t||8204===t||8205===t||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(t){return t>=1&&t<=55295||t>=57344&&t<=65533||t>=65536&&t<=1114111},r.isRestrictedChar=function(t){return t>=1&&t<=8||11===t||12===t||t>=14&&t<=31||t>=127&&t<=132||t>=134&&t<=159},r.isCharAndNotRestricted=function(t){return 9===t||10===t||13===t||t>31&&t<127||133===t||t>159&&t<=55295||t>=57344&&t<=65533||t>=65536&&t<=1114111},r.isS=function(t){return 32===t||10===t||13===t||9===t},r.isNameStartChar=n,r.isNameChar=function(t){return n(t)||t>=48&&t<=57||45===t||46===t||183===t||t>=768&&t<=879||t>=8255&&t<=8256}},{}],543:[function(t,e,r){\"use strict\";\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */function n(t){return t>=65&&t<=90||95===t||t>=97&&t<=122||t>=192&&t<=214||t>=216&&t<=246||t>=248&&t<=767||t>=880&&t<=893||t>=895&&t<=8191||t>=8204&&t<=8205||t>=8304&&t<=8591||t>=11264&&t<=12271||t>=12289&&t<=55295||t>=63744&&t<=64975||t>=65008&&t<=65533||t>=65536&&t<=983039}Object.defineProperty(r,\"__esModule\",{value:!0}),r.NC_NAME_START_CHAR=\"A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NC_NAME_CHAR=\"-\"+r.NC_NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.NC_NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"]$\",\"u\"),r.NC_NAME_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_CHAR+\"]$\",\"u\"),r.NC_NAME_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"][\"+r.NC_NAME_CHAR+\"]*$\",\"u\"),r.isNCNameStartChar=n,r.isNCNameChar=function(t){return n(t)||45===t||46===t||t>=48&&t<=57||183===t||t>=768&&t<=879||t>=8255&&t<=8256}},{}]},{},[15])(15)}));\n","(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","/*!\n\nJSZip v3.9.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=\"function\"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,t=0;t<h.length;t++)u(h[t]);return u}({1:[function(t,e,r){\"use strict\";var c=t(\"./utils\"),d=t(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(t){for(var e,r,i,n,s,a,o,h=[],u=0,l=t.length,f=l,d=\"string\"!==c.getTypeOf(t);u<t.length;)f=l-u,i=d?(e=t[u++],r=u<l?t[u++]:0,u<l?t[u++]:0):(e=t.charCodeAt(u++),r=u<l?t.charCodeAt(u++):0,u<l?t.charCodeAt(u++):0),n=e>>2,s=(3&e)<<4|r>>4,a=1<f?(15&r)<<2|i>>6:64,o=2<f?63&i:64,h.push(p.charAt(n)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(t){var e,r,i,n,s,a,o=0,h=0,u=\"data:\";if(t.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(t=t.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(t.charAt(t.length-1)===p.charAt(64)&&f--,t.charAt(t.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=d.uint8array?new Uint8Array(0|f):new Array(0|f);o<t.length;)e=p.indexOf(t.charAt(o++))<<2|(n=p.indexOf(t.charAt(o++)))>>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/Crc32Probe\"),a=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r<e;r++)i+=String.fromCharCode(255&t),t>>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var r=this.bytesWritten-t,i=function(t,e,r,i,n){var s=I.transformTo(\"string\",n(i));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(t,2)+A(t,2)+A(e,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,t,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()}),t.on(\"error\",function(t){e.error(t)}),this},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(t){var e=this._sources;if(!n.prototype.error.call(this,t))return!1;for(var r=0;r<e.length;r++)try{e[r].error(t)}catch(t){}return!0},s.prototype.lock=function(){n.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(t,e,r){\"use strict\";var u=t(\"../compressions\"),i=t(\"./ZipFileWorker\");r.generateWorker=function(t,a,e){var o=new i(a.streamFiles,e,a.platform,a.encodeFileName),h=0;try{t.forEach(function(t,e){h++;var r=function(t,e){var r=t||e,i=u[r];if(!i)throw new Error(r+\" is not a valid compression method !\");return i}(e.options.compression,a.compression),i=e.options.compressionOptions||a.compressionOptions||{},n=e.dir,s=e.date;e._compressWorker(r,i).withStreamInfo(\"file\",{name:t,dir:n,date:s,comment:e.comment||\"\",unixPermissions:e.unixPermissions,dosPermissions:e.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(t){o.error(t)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(t,e,r){\"use strict\";function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var t=new i;for(var e in this)\"function\"!=typeof this[e]&&(t[e]=this[e]);return t}}(i.prototype=t(\"./object\")).loadAsync=t(\"./load\"),i.support=t(\"./support\"),i.defaults=t(\"./defaults\"),i.version=\"3.9.1\",i.loadAsync=function(t,e){return(new i).loadAsync(t,e)},i.external=t(\"./external\"),e.exports=i},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(t,e,r){\"use strict\";var u=t(\"./utils\"),n=t(\"./external\"),i=t(\"./utf8\"),s=t(\"./zipEntries\"),a=t(\"./stream/Crc32Probe\"),l=t(\"./nodejsUtils\");function f(i){return new n.Promise(function(t,e){var r=i.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(t){e(t)}).on(\"end\",function(){r.streamInfo.crc32!==i.decompressed.crc32?e(new Error(\"Corrupted zip : CRC32 mismatch\")):t()}).resume()})}e.exports=function(t,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:i.utf8decode}),l.isNode&&l.isStream(t)?n.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",t,!0,o.optimizedBinaryString,o.base64).then(function(t){var e=new s(o);return e.load(t),e}).then(function(t){var e=[n.Promise.resolve(t)],r=t.files;if(o.checkCRC32)for(var i=0;i<r.length;i++)e.push(f(r[i]));return n.Promise.all(e)}).then(function(t){for(var e=t.shift(),r=e.files,i=0;i<r.length;i++){var n=r[i],s=n.fileNameStr,a=u.resolve(n.fileNameStr);h.file(a,n.decompressed,{binary:!0,optimizedBinaryString:!0,date:n.date,dir:n.dir,comment:n.fileCommentStr.length?n.fileCommentStr:null,unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions,createFolders:o.createFolders}),n.dir||(h.file(a).unsafeOriginalName=s)}return e.zipComment.length&&(h.comment=e.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../stream/GenericWorker\");function s(t,e){n.call(this,\"Nodejs stream input adapter for \"+t),this._upstreamEnded=!1,this._bindStream(e)}i.inherits(s,n),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on(\"data\",function(t){e.push({data:t,meta:{percent:0}})}).on(\"error\",function(t){e.isPaused?this.generatedError=t:e.error(t)}).on(\"end\",function(){e.isPaused?e._upstreamEnded=!0:e.end()})},s.prototype.pause=function(){return!!n.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(t,e,r){\"use strict\";var n=t(\"readable-stream\").Readable;function i(t,e,r){n.call(this,e),this._helper=t;var i=this;t.on(\"data\",function(t,e){i.push(t)||i._helper.pause(),r&&r(e)}).on(\"error\",function(t){i.emit(\"error\",t)}).on(\"end\",function(){i.push(null)})}t(\"../utils\").inherits(i,n),i.prototype._read=function(){this._helper.resume()},e.exports=i},{\"../utils\":32,\"readable-stream\":16}],14:[function(t,e,r){\"use strict\";e.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if(\"number\"==typeof t)throw new Error('The \"data\" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.pause&&\"function\"==typeof t.resume}}},{}],15:[function(t,e,r){\"use strict\";function s(t,e,r){var i,n=u.getTypeOf(e),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(t=g(t)),s.createFolders&&(i=_(t))&&b.call(this,i,!0);var a=\"string\"===n&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(e instanceof d&&0===e.uncompressedSize||s.dir||!e||0===e.length)&&(s.base64=!1,s.binary=!0,e=\"\",s.compression=\"STORE\",n=\"string\");var o=null;o=e instanceof d||e instanceof l?e:p.isNode&&p.isStream(e)?new m(t,e):u.prepareContent(t,e,s.binary,s.optimizedBinaryString,s.base64);var h=new c(t,o,s);this.files[t]=h}var n=t(\"./utf8\"),u=t(\"./utils\"),l=t(\"./stream/GenericWorker\"),a=t(\"./stream/StreamHelper\"),f=t(\"./defaults\"),d=t(\"./compressedObject\"),c=t(\"./zipObject\"),o=t(\"./generate\"),p=t(\"./nodejsUtils\"),m=t(\"./nodejs/NodejsStreamInputAdapter\"),_=function(t){\"/\"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf(\"/\");return 0<e?t.substring(0,e):\"\"},g=function(t){return\"/\"!==t.slice(-1)&&(t+=\"/\"),t},b=function(t,e){return e=void 0!==e?e:f.createFolders,t=g(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function h(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)}var i={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(t){var e,r,i;for(e in this.files)i=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,i)},filter:function(r){var i=[];return this.forEach(function(t,e){r(t,e)&&i.push(e)}),i},file:function(t,e,r){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,r),this;if(h(t)){var i=t;return this.filter(function(t,e){return!e.dir&&i.test(t)})}var n=this.files[this.root+t];return n&&!n.dir?n:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(t,e){return e.dir&&r.test(t)});var t=this.root+r,e=b.call(this,t),i=this.clone();return i.root=e.name,i},remove:function(r){r=this.root+r;var t=this.files[r];if(t||(\"/\"!==r.slice(-1)&&(r+=\"/\"),t=this.files[r]),t&&!t.dir)delete this.files[r];else for(var e=this.filter(function(t,e){return e.name.slice(0,r.length)===r}),i=0;i<e.length;i++)delete this.files[e[i].name];return this},generate:function(t){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(t){var e,r={};try{if((r=u.extend(t||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:n.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var i=r.comment||this.comment||\"\";e=o.generateWorker(this,r,i)}catch(t){(e=new l(\"error\")).error(t)}return new a(e,r.type||\"string\",r.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type=\"nodebuffer\"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=i},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(t,e,r){e.exports=t(\"stream\")},{stream:void 0}],17:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data[this.zero+t]},n.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===e&&this.data[s+1]===r&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return-1},n.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&r===s[1]&&i===s[2]&&n===s[3]},n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],18:[function(t,e,r){\"use strict\";var i=t(\"../utils\");function n(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}n.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+t+\"). Corrupted zip ?\")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r<this._listeners[t].length;r++)this._listeners[t][r].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.end()}),t.on(\"error\",function(t){e.error(t)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r<e.length;r++)s+=e[r].length;switch(t){case\"string\":return e.join(\"\");case\"array\":return Array.prototype.concat.apply([],e);case\"uint8array\":for(n=new Uint8Array(s),r=0;r<e.length;r++)n.set(e[r],i),i+=e[r].length;return n;case\"nodebuffer\":return Buffer.concat(e);default:throw new Error(\"concat : unsupported type '\"+t+\"'\")}}(n,i),a);e(t)}catch(t){r(t)}i=[]}).resume()})}function f(t,e,r){var i=e;switch(e){case\"blob\":case\"arraybuffer\":i=\"uint8array\";break;case\"base64\":i=\"string\"}try{this._internalType=i,this._outputType=e,this._mimeType=r,h.checkSupport(i),this._worker=t.pipe(new n(i)),t.lock()}catch(t){this._worker=new s(\"error\"),this._worker.error(t)}}f.prototype={accumulate:function(t){return l(this,t)},on:function(t,e){var r=this;return\"data\"===t?this._worker.on(t,function(t){e.call(r,t.data,t.meta)}):this._worker.on(t,function(){h.delay(e,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},t)}},e.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(t,e,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var i=new ArrayBuffer(0);try{r.blob=0===new Blob([i],{type:\"application/zip\"}).size}catch(t){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);n.append(i),r.blob=0===n.getBlob(\"application/zip\").size}catch(t){r.blob=!1}}}try{r.nodestream=!!t(\"readable-stream\").Readable}catch(t){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(t,e,s){\"use strict\";for(var o=t(\"./utils\"),h=t(\"./support\"),r=t(\"./nodejsUtils\"),i=t(\"./stream/GenericWorker\"),u=new Array(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;u[254]=u[254]=1;function a(){i.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){i.call(this,\"utf-8 encode\")}s.utf8encode=function(t){return h.nodebuffer?r.newBufferFrom(t,\"utf-8\"):function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=h.uint8array?new Uint8Array(o):new Array(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e<s;)if((i=t[e++])<128)a[r++]=i;else if(4<(n=u[i]))a[r++]=65533,e+=n-1;else{for(i&=2===n?31:3===n?15:7;1<n&&e<s;)i=i<<6|63&t[e++],n--;1<n?a[r++]=65533:i<65536?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r<t.length;++r)e[r]=255&t.charCodeAt(r);return e}a.newBlob=function(e,r){a.checkSupport(\"blob\");try{return new Blob([e],{type:r})}catch(t){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return i.append(e),i.getBlob(r)}catch(t){throw new Error(\"Bug : can't construct the Blob.\")}}};var s={stringifyByChunk:function(t,e,r){var i=[],n=0,s=t.length;if(s<=r)return String.fromCharCode.apply(null,t);for(;n<s;)\"array\"===e||\"nodebuffer\"===e?i.push(String.fromCharCode.apply(null,t.slice(n,Math.min(n+r,s)))):i.push(String.fromCharCode.apply(null,t.subarray(n,Math.min(n+r,s)))),n+=r;return i.join(\"\")},stringifyByChar:function(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(t){return!1}}()}};function f(t){var e=65536,r=a.getTypeOf(t),i=!0;if(\"uint8array\"===r?i=s.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(i=s.applyCanBeUsed.nodebuffer),i)for(;1<e;)try{return s.stringifyByChunk(t,r,e)}catch(t){e=Math.floor(e/2)}return s.stringifyByChar(t)}function d(t,e){for(var r=0;r<t.length;r++)e[r]=t[r];return e}a.applyFromCharCode=f;var c={};c.string={string:n,array:function(t){return l(t,new Array(t.length))},arraybuffer:function(t){return c.string.uint8array(t).buffer},uint8array:function(t){return l(t,new Uint8Array(t.length))},nodebuffer:function(t){return l(t,r.allocBuffer(t.length))}},c.array={string:f,array:n,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(t)}},c.arraybuffer={string:function(t){return f(new Uint8Array(t))},array:function(t){return d(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:n,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(new Uint8Array(t))}},c.uint8array={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:n,nodebuffer:function(t){return r.newBufferFrom(t)}},c.nodebuffer={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return c.nodebuffer.uint8array(t).buffer},uint8array:function(t){return d(t,new Uint8Array(t.length))},nodebuffer:n},a.transformTo=function(t,e){if(e=e||\"\",!t)return e;a.checkSupport(t);var r=a.getTypeOf(e);return c[r][t](e)},a.resolve=function(t){for(var e=t.split(\"/\"),r=[],i=0;i<e.length;i++){var n=e[i];\".\"===n||\"\"===n&&0!==i&&i!==e.length-1||(\"..\"===n?r.pop():r.push(n))}return r.join(\"/\")},a.getTypeOf=function(t){return\"string\"==typeof t?\"string\":\"[object Array]\"===Object.prototype.toString.call(t)?\"array\":o.nodebuffer&&r.isBuffer(t)?\"nodebuffer\":o.uint8array&&t instanceof Uint8Array?\"uint8array\":o.arraybuffer&&t instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(t){if(!o[t.toLowerCase()])throw new Error(t+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(t){var e,r,i=\"\";for(r=0;r<(t||\"\").length;r++)i+=\"\\\\x\"+((e=t.charCodeAt(r))<16?\"0\":\"\")+e.toString(16).toUpperCase();return i},a.delay=function(t,e,r){i(function(){t.apply(r||null,e||[])})},a.inherits=function(t,e){function r(){}r.prototype=e.prototype,t.prototype=new r},a.extend=function(){var t,e,r={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&void 0===r[e]&&(r[e]=arguments[t][e]);return r},a.prepareContent=function(r,t,i,n,s){return u.Promise.resolve(t).then(function(i){return o.blob&&(i instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(i)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(e,r){var t=new FileReader;t.onload=function(t){e(t.target.result)},t.onerror=function(t){r(t.target.error)},t.readAsArrayBuffer(i)}):i}).then(function(t){var e=a.getTypeOf(t);return e?(\"arraybuffer\"===e?t=a.transformTo(\"uint8array\",t):\"string\"===e&&(s?t=h.decode(t):i&&!0!==n&&(t=function(t){return l(t,o.uint8array?new Uint8Array(t.length):new Array(t.length))}(t))),t):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,\"set-immediate-shim\":54}],33:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),n=t(\"./utils\"),s=t(\"./signature\"),a=t(\"./zipEntry\"),o=(t(\"./utf8\"),t(\"./support\"));function h(t){this.files=[],this.loadOptions=t}h.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+n.pretty(e)+\", expected \"+n.pretty(t)+\")\")}},isSignature:function(t,e){var r=this.reader.index;this.reader.setIndex(t);var i=this.reader.readString(4)===e;return this.reader.setIndex(r),i},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=o.uint8array?\"uint8array\":\"array\",r=n.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,r,i=this.zip64EndOfCentralSize-44;0<i;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(t<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var i=e-r;if(0<i)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(i<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(i)+\" bytes.\")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utf8\":31,\"./utils\":32,\"./zipEntry\":34}],34:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),s=t(\"./utils\"),n=t(\"./compressedObject\"),a=t(\"./crc32\"),o=t(\"./utf8\"),h=t(\"./compressions\"),u=t(\"./support\");function l(t,e){this.options=t,this.loadOptions=e}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(e=function(t){for(var e in h)if(h.hasOwnProperty(e)&&h[e].magic===t)return h[e];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new n(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<n;)e=t.readInt(2),r=t.readInt(2),i=t.readData(r),this.extraFields[e]={id:e,length:r,value:i};t.setIndex(n)},handleUTF8:function(){var t=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var r=s.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var i=this.findExtraFieldUnicodeComment();if(null!==i)this.fileCommentStr=i;else{var n=s.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(n)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileName)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileComment)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null}},e.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(t,e,r){\"use strict\";function i(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=t(\"./stream/StreamHelper\"),n=t(\"./stream/DataWorker\"),a=t(\"./utf8\"),o=t(\"./compressedObject\"),h=t(\"./stream/GenericWorker\");i.prototype={internalStream:function(t){var e=null,r=\"string\";try{if(!t)throw new Error(\"No output type specified.\");var i=\"string\"===(r=t.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),e=this._decompressWorker();var n=!this._dataBinary;n&&!i&&(e=e.pipe(new a.Utf8EncodeWorker)),!n&&i&&(e=e.pipe(new a.Utf8DecodeWorker))}catch(t){(e=new h(\"error\")).error(t)}return new s(e,r,\"\")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||\"nodebuffer\").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof o&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new n(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)i.prototype[u[f]]=l;e.exports=i},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(t,l,e){(function(e){\"use strict\";var r,i,t=e.MutationObserver||e.WebKitMutationObserver;if(t){var n=0,s=new t(u),a=e.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=n=++n%2}}else if(e.setImmediate||void 0===e.MessageChannel)r=\"document\"in e&&\"onreadystatechange\"in e.document.createElement(\"script\")?function(){var t=e.document.createElement(\"script\");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var o=new e.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var t,e;i=!0;for(var r=h.length;r;){for(e=h,h=[],t=-1;++t<r;)e[t]();r=h.length}i=!1}l.exports=function(t){1!==h.push(t)||i||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(t,e,r){\"use strict\";var n=t(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],i=[\"PENDING\"];function o(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=i,this.queue=[],this.outcome=void 0,t!==u&&c(this,t)}function h(t,e,r){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,r,i){n(function(){var t;try{t=r(i)}catch(t){return l.reject(e,t)}t===e?l.reject(e,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(e,t)})}function d(t){var e=t&&t.then;if(t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function c(e,t){var r=!1;function i(t){r||(r=!0,l.reject(e,t))}function n(t){r||(r=!0,l.resolve(e,t))}var s=p(function(){t(n,i)});\"error\"===s.status&&i(s.value)}function p(t,e){var r={};try{r.value=t(e),r.status=\"success\"}catch(t){r.status=\"error\",r.value=t}return r}(e.exports=o).prototype.finally=function(e){if(\"function\"!=typeof e)return this;var r=this.constructor;return this.then(function(t){return r.resolve(e()).then(function(){return t})},function(t){return r.resolve(e()).then(function(){throw t})})},o.prototype.catch=function(t){return this.then(null,t)},o.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===a||\"function\"!=typeof e&&this.state===s)return this;var r=new this.constructor(u);this.state!==i?f(r,this.state===a?t:e,this.outcome):this.queue.push(new h(r,t,e));return r},h.prototype.callFulfilled=function(t){l.resolve(this.promise,t)},h.prototype.otherCallFulfilled=function(t){f(this.promise,this.onFulfilled,t)},h.prototype.callRejected=function(t){l.reject(this.promise,t)},h.prototype.otherCallRejected=function(t){f(this.promise,this.onRejected,t)},l.resolve=function(t,e){var r=p(d,e);if(\"error\"===r.status)return l.reject(t,r.value);var i=r.value;if(i)c(t,i);else{t.state=a,t.outcome=e;for(var n=-1,s=t.queue.length;++n<s;)t.queue[n].callFulfilled(e)}return t},l.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,i=t.queue.length;++r<i;)t.queue[r].callRejected(e);return t},o.resolve=function(t){if(t instanceof this)return t;return l.resolve(new this(u),t)},o.reject=function(t){var e=new this(u);return l.reject(e,t)},o.all=function(t){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);var s=new Array(i),a=0,e=-1,o=new this(u);for(;++e<i;)h(t[e],e);return o;function h(t,e){r.resolve(t).then(function(t){s[e]=t,++a!==i||n||(n=!0,l.resolve(o,s))},function(t){n||(n=!0,l.reject(o,t))})}},o.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var r=t.length,i=!1;if(!r)return this.resolve([]);var n=-1,s=new this(u);for(;++n<r;)a=t[n],e.resolve(a).then(function(t){i||(i=!0,l.resolve(s,t))},function(t){i||(i=!0,l.reject(s,t))});var a;return s}},{immediate:36}],38:[function(t,e,r){\"use strict\";var i={};(0,t(\"./lib/utils/common\").assign)(i,t(\"./lib/deflate\"),t(\"./lib/inflate\"),t(\"./lib/zlib/constants\")),e.exports=i},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(t,e,r){\"use strict\";var a=t(\"./zlib/deflate\"),o=t(\"./utils/common\"),h=t(\"./utils/strings\"),n=t(\"./zlib/messages\"),s=t(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,d=0,c=8;function p(t){if(!(this instanceof p))return new p(t);this.options=o.assign({level:f,method:c,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:\"\"},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==l)throw new Error(n[r]);if(e.header&&a.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(i=\"string\"==typeof e.dictionary?h.string2buf(e.dictionary):\"[object ArrayBuffer]\"===u.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(r=a.deflateSetDictionary(this.strm,i))!==l)throw new Error(n[r]);this._dict_set=!0}}function i(t,e){var r=new p(e);if(r.push(t,!0),r.err)throw r.msg||n[r.err];return r.result}p.prototype.push=function(t,e){var r,i,n=this.strm,s=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:!0===e?4:0,\"string\"==typeof t?n.input=h.string2buf(t):\"[object ArrayBuffer]\"===u.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new o.Buf8(s),n.next_out=0,n.avail_out=s),1!==(r=a.deflate(n,i))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==n.avail_out&&(0!==n.avail_in||4!==i&&2!==i)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(n.output,n.next_out))):this.onData(o.shrinkBuf(n.output,n.next_out)))}while((0<n.avail_in||0===n.avail_out)&&1!==r);return 4===i?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==i||(this.onEnd(l),!(n.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Deflate=p,r.deflate=i,r.deflateRaw=function(t,e){return(e=e||{}).raw=!0,i(t,e)},r.gzip=function(t,e){return(e=e||{}).gzip=!0,i(t,e)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(t,e,r){\"use strict\";var d=t(\"./zlib/inflate\"),c=t(\"./utils/common\"),p=t(\"./utils/strings\"),m=t(\"./zlib/constants\"),i=t(\"./zlib/messages\"),n=t(\"./zlib/zstream\"),s=t(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(t){if(!(this instanceof a))return new a(t);this.options=c.assign({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new n,this.strm.avail_out=0;var r=d.inflateInit2(this.strm,e.windowBits);if(r!==m.Z_OK)throw new Error(i[r]);this.header=new s,d.inflateGetHeader(this.strm,this.header)}function o(t,e){var r=new a(e);if(r.push(t,!0),r.err)throw r.msg||i[r.err];return r.result}a.prototype.push=function(t,e){var r,i,n,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;i=e===~~e?e:!0===e?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof t?h.input=p.binstring2buf(t):\"[object ArrayBuffer]\"===_.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new c.Buf8(u),h.next_out=0,h.avail_out=u),(r=d.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=d.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||i!==m.Z_FINISH&&i!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(n=p.utf8border(h.output,h.next_out),s=h.next_out-n,a=p.buf2string(h.output,n),h.next_out=s,h.avail_out=u-s,s&&c.arraySet(h.output,h.output,n,s,0),this.onData(a)):this.onData(c.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(i=m.Z_FINISH),i===m.Z_FINISH?(r=d.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):i!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(t){this.chunks.push(t)},a.prototype.onEnd=function(t){t===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=c.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(t,e){return(e=e||{}).raw=!0,o(t,e)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var i in r)r.hasOwnProperty(i)&&(t[i]=r[i])}}return t},r.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,r,i,n){if(e.subarray&&t.subarray)t.set(e.subarray(r,r+i),n);else for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){var e,r,i,n,s,a;for(e=i=0,r=t.length;e<r;e++)i+=t[e].length;for(a=new Uint8Array(i),e=n=0,r=t.length;e<r;e++)s=t[e],a.set(s,n),n+=s.length;return a}},s={arraySet:function(t,e,r,i,n){for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],42:[function(t,e,r){\"use strict\";var h=t(\"./common\"),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var u=new h.Buf8(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function l(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,h.shrinkBuf(t,e));for(var r=\"\",i=0;i<e;i++)r+=String.fromCharCode(t[i]);return r}u[254]=u[254]=1,r.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=new h.Buf8(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r<i;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,i,n,s,a=e||t.length,o=new Array(2*a);for(r=i=0;r<a;)if((n=t[r++])<128)o[i++]=n;else if(4<(s=u[n]))o[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;1<s&&r<a;)n=n<<6|63&t[r++],s--;1<s?o[i++]=65533:n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(n=n+e[i++]|0)|0,--a;);n%=65521,s%=65521}return n|s<<16|0}},{}],44:[function(t,e,r){\"use strict\";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,r){\"use strict\";var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4<t?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<d);if(i=S-(d-s),s=d-S,a<i){if(t.match_start=e,o<=(a=i))break;c=u[s+a-1],p=u[s+a]}}}while((e=f[e&l])>h&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,d.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=c(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),t.lookahead+=r,t.lookahead+t.insert>=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+x-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<x)););}while(t.lookahead<z&&0!==t.strm.avail_in)}function Z(t,e){for(var r,i;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==r&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r)),t.match_length>=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function W(t,e){for(var r,i,n;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=x-1,0!==r&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r),t.match_length<=5&&(1===t.strategy||t.match_length===x&&4096<t.strstart-t.match_start)&&(t.match_length=x-1)),t.prev_length>=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=x-1,t.strstart++,i&&(N(t,!1),0===t.strm.avail_out))return A}else if(t.match_available){if((i=u._tr_tally(t,0,t.window[t.strstart-1]))&&N(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return A}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=u._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function M(t,e,r,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=i,this.func=n}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new d.Buf16(2*w),this.dyn_dtree=new d.Buf16(2*(2*a+1)),this.bl_tree=new d.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new d.Buf16(k+1),this.heap=new d.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new d.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=n,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?C:E,t.adler=2===e.wrap?0:1,e.last_flush=l,u._tr_init(e),m):R(t,_)}function K(t){var e=G(t);return e===m&&function(t){t.window_size=2*t.w_size,D(t.head),t.max_lazy_match=h[t.level].max_lazy,t.good_match=h[t.level].good_length,t.nice_match=h[t.level].nice_length,t.max_chain_length=h[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=x-1,t.match_available=0,t.ins_h=0}(t.state),e}function Y(t,e,r,i,n,s){if(!t)return _;var a=1;if(e===g&&(e=6),i<0?(a=0,i=-i):15<i&&(a=2,i-=16),n<1||y<n||r!==v||i<8||15<i||e<0||9<e||s<0||b<s)return R(t,_);8===i&&(i=9);var o=new H;return(t.state=o).strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new d.Buf8(2*o.w_size),o.head=new d.Buf16(o.hash_size),o.prev=new d.Buf16(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new d.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=s,o.method=r,K(t)}h=[new M(0,0,0,0,function(t,e){var r=65535;for(r>t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5<e||e<0)return t?R(t,_):_;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return R(t,0===t.avail_out?-5:_);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===C)if(2===i.wrap)t.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0<t.strstart&&(i=a[n=t.strstart-1])===a[++n]&&i===a[++n]&&i===a[++n]){s=t.strstart+S;do{}while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);t.match_length=S-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?m:1)},r.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==C&&69!==e&&73!==e&&91!==e&&103!==e&&e!==E&&666!==e?R(t,_):(t.state=null,e===E?R(t,-3):m):_},r.deflateSetDictionary=function(t,e){var r,i,n,s,a,o,h,u,l=e.length;if(!t||!t.state)return _;if(2===(s=(r=t.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(t.adler=c(t.adler,e,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+x-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++,--n;);r.strstart=i,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,t.next_in=o,t.input=h,t.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(t,e,r){\"use strict\";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C;r=t.state,i=t.next_in,z=t.input,n=i+(t.avail_in-5),s=t.next_out,C=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,d=r.window,c=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;t:do{p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=m[c&g];e:for(;;){if(c>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<<y)-1)];continue e}if(32&y){r.mode=12;break t}t.msg=\"invalid literal/length code\",r.mode=30;break t}w=65535&v,(y&=15)&&(p<y&&(c+=z[i++]<<p,p+=8),w+=c&(1<<y)-1,c>>>=y,p-=y),p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=_[c&b];r:for(;;){if(c>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<<y)-1)];continue r}t.msg=\"invalid distance code\",r.mode=30;break t}if(k=65535&v,p<(y&=15)&&(c+=z[i++]<<p,(p+=8)<y&&(c+=z[i++]<<p,p+=8)),h<(k+=c&(1<<y)-1)){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(c>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(S=d,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=d[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=d[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(i<n&&s<o);i-=w=p>>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=s<o?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(t,e,r){\"use strict\";var I=t(\"../utils/common\"),O=t(\"./adler32\"),B=t(\"./crc32\"),R=t(\"./inffast\"),T=t(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,i=852,n=592;function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?U:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,o(t))):U}function u(t,e){var r,i;return t?(i=new s,(t.state=i).window=null,(r=h(t,e))!==N&&(t.state=null),r):U}var l,f,d=!0;function j(t){if(d){var e;for(l=new I.Buf32(512),f=new I.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(T(D,t.lens,0,288,l,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;T(F,t.lens,0,32,f,0,t.work,{bits:5}),d=!1}t.lencode=l,t.lenbits=9,t.distcode=f,t.distbits=5}function Z(t,e,r,i){var n,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),i>=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(t){return u(t,15)},r.inflateInit2=u,r.inflate=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return U;12===(r=t.state).mode&&(r.mode=13),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,f=o,d=h,x=N;t:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,t.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){t.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){t.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(65535&r.check)){t.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}t.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,2;t.adler=r.check=1,r.mode=12;case 12:if(5===e||6===e)break t;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o<c&&(c=o),h<c&&(c=h),0===c)break t;I.arraySet(n,i,s,c,a),o-=c,s+=c,h-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(h<c&&(c=h),h-=c,r.length-=c;n[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break t;n[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break t;o--,u|=i[s++]<<l,l+=8}if(d-=h,t.total_out+=d,r.total+=d,d&&(t.adler=r.check=r.flags?B(r.check,n,d,a-d):O(r.check,n,d,a-d)),d=h,(r.flags?u:L(u))!==r.check){t.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(4294967295&r.total)){t.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break t;case 30:x=-3;break t;case 31:return-4;case 32:default:return U}return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,(r.wsize||d!==t.avail_out&&r.mode<30&&(r.mode<27||4!==e))&&Z(t,t.output,t.next_out,d-t.avail_out)?(r.mode=31,-4):(f-=t.avail_in,d-=t.avail_out,t.total_in+=f,t.total_out+=d,r.total+=d,r.wrap&&d&&(t.adler=r.check=r.flags?B(r.check,n,d,t.next_out-d):O(r.check,n,d,t.next_out-d)),t.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===d||4===e)&&x===N&&(x=-5),x)},r.inflateEnd=function(t){if(!t||!t.state)return U;var e=t.state;return e.window&&(e.window=null),t.state=null,N},r.inflateGetHeader=function(t,e){var r;return t&&t.state?0==(2&(r=t.state).wrap)?U:((r.head=e).done=!1,N):U},r.inflateSetDictionary=function(t,e){var r,i=e.length;return t&&t.state?0!==(r=t.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,e,i,0)!==r.check?-3:Z(t,e,i,i)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(t,e,r){\"use strict\";var D=t(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,r,i,n,s,a,o){var h,u,l,f,d,c,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<i;v++)O[e[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===t||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<i;v++)0!==e[r+v]&&(a[B[e[r+v]]++]=v);if(c=0===t?(A=R=a,19):1===t?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,d=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===t&&852<C||2===t&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<c?(m=0,a[v]):a[v]>c?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;n[d+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),d+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===t&&852<C||2===t&&592<C)return 1;n[l=E&f]=k<<24|x<<16|d-s|0}}return 0!==E&&(n[d+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(t,e,r){\"use strict\";e.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\"),o=0,h=1;function i(t){for(var e=t.length;0<=--e;)t[e]=0}var s=0,a=29,u=256,l=u+1+a,f=30,d=19,_=2*l+1,g=15,c=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));i(z);var C=new Array(2*f);i(C);var E=new Array(512);i(E);var A=new Array(256);i(A);var I=new Array(a);i(I);var O,B,R,T=new Array(f);function D(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return t<256?E[t]:E[256+(t>>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<<t.bi_valid&65535,U(t,t.bi_buf),t.bi_buf=e>>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=r)}function L(t,e,r){P(t,r[2*e],r[2*e+1])}function j(t,e){for(var r=0;r|=1&t,t>>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e<l;e++)t.dyn_ltree[2*e]=0;for(e=0;e<f;e++)t.dyn_dtree[2*e]=0;for(e=0;e<d;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*m]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8<t.bi_valid?U(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function H(t,e,r,i){var n=2*e,s=2*r;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[r]}function G(t,e,r){for(var i=t.heap[r],n=r<<1;n<=t.heap_len&&(n<t.heap_len&&H(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!H(e,i,t.heap[n],t.depth));)t.heap[r]=t.heap[n],r=n,n<<=1;t.heap[r]=i}function K(t,e,r){var i,n,s,a,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],n=t.pending_buf[t.l_buf+o],o++,0===i?L(t,n,e):(L(t,(s=A[n])+u+1,e),0!==(a=w[s])&&P(t,n-=I[s],a),L(t,s=N(--i),r),0!==(a=k[s])&&P(t,i-=T[s],a)),o<t.last_lit;);L(t,m,e)}function Y(t,e){var r,i,n,s=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,u=-1;for(t.heap_len=0,t.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(t.heap[++t.heap_len]=u=r,t.depth[r]=0):s[2*r+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=u<2?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=a[2*n+1]);for(e.max_code=u,r=t.heap_len>>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u<i||(t.bl_count[s]++,a=0,c<=i&&(a=d[i-c]),o=h[2*i],t.opt_len+=o*(s+a),f&&(t.static_len+=o*(l[2*i+1]+a)));if(0!==m){do{for(s=p-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(i=t.bl_count[s];0!==i;)u<(n=t.heap[--r])||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),Z(s,u,t.bl_count)}function X(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),e[2*(r+1)+1]=65535,i=0;i<=r;i++)n=a,a=e[2*(i+1)+1],++o<h&&n===a||(o<u?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[2*b]++):o<=10?t.bl_tree[2*v]++:t.bl_tree[2*y]++,s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4))}function V(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),i=0;i<=r;i++)if(n=a,a=e[2*(i+1)+1],!(++o<h&&n===a)){if(o<u)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==s&&(L(t,n,t.bl_tree),o--),L(t,b,t.bl_tree),P(t,o-3,2)):o<=10?(L(t,v,t.bl_tree),P(t,o-3,3)):(L(t,y,t.bl_tree),P(t,o-11,7));s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4)}}i(T);var q=!1;function J(t,e,r,i){P(t,(s<<1)+(i?1:0),3),function(t,e,r,i){M(t),i&&(U(t,r),U(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}r._tr_init=function(t){q||(function(){var t,e,r,i,n,s=new Array(g+1);for(i=r=0;i<a-1;i++)for(I[i]=r,t=0;t<1<<w[i];t++)A[r++]=i;for(A[r-1]=i,i=n=0;i<16;i++)for(T[i]=n,t=0;t<1<<k[i];t++)E[n++]=i;for(n>>=7;i<f;i++)for(T[i]=n<<7,t=0;t<1<<k[i]-7;t++)E[256+n++]=i;for(e=0;e<=g;e++)s[e]=0;for(t=0;t<=143;)z[2*t+1]=8,t++,s[8]++;for(;t<=255;)z[2*t+1]=9,t++,s[9]++;for(;t<=279;)z[2*t+1]=7,t++,s[7]++;for(;t<=287;)z[2*t+1]=8,t++,s[8]++;for(Z(z,l+1,s),t=0;t<f;t++)C[2*t+1]=5,C[2*t]=j(t,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,d,p)}(),q=!0),t.l_desc=new F(t.dyn_ltree,O),t.d_desc=new F(t.dyn_dtree,B),t.bl_desc=new F(t.bl_tree,R),t.bi_buf=0,t.bi_valid=0,W(t)},r._tr_stored_block=J,r._tr_flush_block=function(t,e,r,i){var n,s,a=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e<u;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),Y(t,t.l_desc),Y(t,t.d_desc),a=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),Y(t,t.bl_desc),e=d-1;3<=e&&0===t.bl_tree[2*S[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n<i;n++)P(t,t.bl_tree[2*S[n]+1],3);V(t,t.dyn_ltree,e-1),V(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),K(t,t.dyn_ltree,t.dyn_dtree)),W(t),i&&M(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});","/**\n * lodash 3.0.3 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\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 * @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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\n * as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * lodash 4.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\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 * @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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 { 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 { 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 { 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';\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 { 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';\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 { __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","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nexport function race(...sources) {\n sources = argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));\n}\nexport function raceInit(sources) {\n return (subscriber) => {\n let subscriptions = [];\n for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (subscriptions) {\n for (let s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n }\n };\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","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 { 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';\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) => 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 { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\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 { 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 { 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 { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\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 { 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 { from } from '../observable/from';\nimport { take } from '../operators/take';\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 = null;\n let resetConnection = null;\n let subject = null;\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 = null;\n };\n const reset = () => {\n cancelReset();\n connection = subject = null;\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 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 from(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return null;\n }\n if (on === false) {\n return null;\n }\n return on(...args)\n .pipe(take(1))\n .subscribe(() => reset());\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 { 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 { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport const TimeoutError = createErrorClass((_super) => function TimeoutErrorImpl(info = null) {\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n});\nexport function timeout(config, schedulerArg) {\n const { first, each, with: _with = timeoutErrorFactory, scheduler = schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler, meta = null, } = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config);\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate((source, subscriber) => {\n let originalSourceSubscription;\n let timerSubscription;\n let lastValue = null;\n let seen = 0;\n const startTimer = (delay) => {\n timerSubscription = executeSchedule(subscriber, scheduler, () => {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta,\n lastValue,\n seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, () => {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\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 { 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 { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\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 this._scheduled = undefined;\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 { 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 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 = this.id || 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 intervalProvider.clearInterval(id);\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","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","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 isValidDate(value) {\n return value instanceof Date && !isNaN(value);\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 { 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 { 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","/******************************************************************************\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/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __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}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, NgModuleRef, ComponentFactoryResolver, Host, ɵRuntimeError, Attribute, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable } from '@angular/core';\n\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 */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\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/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\n\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/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\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\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/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\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/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * <code class=\"no-auto-link\">http://example.com#/foo</code>,\n * and `PathLocationStrategy` produces\n * <code class=\"no-auto-link\">http://example.com/foo</code> as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: provideLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: provideLocationStrategy }]\n }] });\nfunction provideLocationStrategy(platformLocation) {\n // See #23917\n const location = ɵɵinject(DOCUMENT).location;\n return new PathLocationStrategy(ɵɵinject(PlatformLocation), location && location.origin || '');\n}\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you must provide a {@link APP_BASE_HREF}\n * or add a `<base href>` element to the document.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `<base href>` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `<base href='/my/app/'/>` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `<base href>` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n if (href == null) {\n href = this._platformLocation.getBaseHrefFromDOM();\n }\n if (href == null) {\n throw new Error(`No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.`);\n }\n this._baseHref = href;\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PathLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\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/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\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/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * <code-example path='common/location/ts/path_location_component.ts'\n * region='LocationComponent'></code-example>\n *\n * @publicApi\n */\nclass Location {\n constructor(platformStrategy, platformLocation) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n this._platformStrategy = platformStrategy;\n const browserBaseHref = this._platformStrategy.getBaseHref();\n this._platformLocation = platformLocation;\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._platformStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._platformStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._platformLocation.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._platformStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._platformStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._platformStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._platformStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._platformStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformStrategy).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }, { token: PlatformLocation }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }, { type: PlatformLocation }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy), ɵɵinject(PlatformLocation));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\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\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/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, \"р.\", 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RUR\": [undefined, \"р.\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\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/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formating string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formating string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * <b>Important:</b> The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\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 */\nconst ISO8601_DATE_REGEX = /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.substr(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substr(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\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 */\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is supressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substr(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substr(0, pos).replace(/'/g, '');\n p.negSuf = negative.substr(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\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/**\n * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n\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/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\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 */\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\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/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * <some-element [ngClass]=\"'first second'\">...</some-element>\n *\n * <some-element [ngClass]=\"['first', 'second']\">...</some-element>\n *\n * <some-element [ngClass]=\"{'first': true, 'second': true, 'third': false}\">...</some-element>\n *\n * <some-element [ngClass]=\"stringExp|arrayExp|objExp\">...</some-element>\n *\n * <some-element [ngClass]=\"{'class1 class2 class3' : true}\">...</some-element>\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgClass, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{ selector: '[ngClass]' }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\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/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModuleFactory`: Optional module factory to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * <ng-container *ngComponentOutlet=\"componentTypeExpression\"></ng-container>\n * ```\n *\n * Customized injector/content\n * ```\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\n * injector: injectorExpression;\n * content: contentNodesExpression;\">\n * </ng-container>\n * ```\n *\n * Customized ngModuleFactory\n * ```\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\n * ngModuleFactory: moduleFactory;\">\n * </ng-container>\n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._componentRef = null;\n this._moduleRef = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._viewContainerRef.clear();\n this._componentRef = null;\n if (this.ngComponentOutlet) {\n const elInjector = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (this.ngComponentOutletNgModuleFactory) {\n const parentModule = elInjector.get(NgModuleRef);\n this._moduleRef = this.ngComponentOutletNgModuleFactory.create(parentModule.injector);\n }\n else {\n this._moduleRef = null;\n }\n }\n const componentFactoryResolver = this._moduleRef ? this._moduleRef.componentFactoryResolver :\n elInjector.get(ComponentFactoryResolver);\n const componentFactory = componentFactoryResolver.resolveComponentFactory(this.ngComponentOutlet);\n this._componentRef = this._viewContainerRef.createComponent(componentFactory, this._viewContainerRef.length, elInjector, this.ngComponentOutletContent);\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[ngComponentOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n\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/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `<li>` element.\n *\n * ```\n * <li *ngFor=\"let item of items; index as i; trackBy: trackByFn\">...</li>\n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `<ng-template>` element.\n * The content of the `<ng-template>` element is the `<li>` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * <ng-template ngFor let-item [ngForOf]=\"items\" let-i=\"index\" [ngForTrackBy]=\"trackByFn\">\n * <li>...</li>\n * </ng-template>\n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/built-in-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For futher discussion, see\n * [Structural Directives](guide/built-in-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n * <li *ngFor=\"let user of users; index as i; first as isFirst\">\n * {{i}}/{{users.length}}. {{user}} <span *ngIf=\"isFirst\">default</span>\n * </li>\n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable<T>`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `<input>` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef<Partial<NgForRowOf<T>>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch (_a) {\n throw new Error(`Cannot find a differ supporting object '${value}' of type '${getTypeName(value)}'. NgFor only supports binding to Iterables such as Arrays.`);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgForOf, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{ selector: '[ngFor][ngForOf]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\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/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `<ng-template>` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n * <div *ngIf=\"condition\">Content to render when condition is true.</div>\n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n * <ng-template [ngIf]=\"condition\"><div>Content to render when condition is\n * true.</div></ng-template>\n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n * <div *ngIf=\"condition; else elseBlock\">Content to render when condition is true.</div>\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n * <div *ngIf=\"condition; then thenBlock else elseBlock\"></div>\n * <ng-template #thenBlock>Content to render when condition is true.</ng-template>\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n * <div *ngIf=\"condition as value; else elseBlock\">{{value}}</div>\n * <ng-template #elseBlock>Content to render when value is null.</ng-template>\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `<ng-template>` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `<ng-template>` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n * <div class=\"hero-list\" *ngIf=\"heroes else loading\">\n * ...\n * </div>\n *\n * <ng-template #loading>\n * <div>Loading...</div>\n * </ng-template>\n * ```\n *\n * You can see that the \"else\" clause references the `<ng-template>`\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `<ng-template>` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `<ng-template>` tag.\n *\n * ```\n * <ng-template [ngIf]=\"heroes\" [ngIfElse]=\"loading\">\n * <div class=\"hero-list\">\n * ...\n * </div>\n * </ng-template>\n *\n * <ng-template #loading>\n * <div>Loading...</div>\n * </ng-template>\n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](https://angular.io/guide/built-in-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgIf, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{ selector: '[ngIf]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\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 */\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * <container-element [ngSwitch]=\"switch_expression\">\n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * <container-element [ngSwitch]=\"switch_expression\">\n * <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\n * ...\n * <some-element *ngSwitchDefault>...</some-element>\n * </container-element>\n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * <container-element [ngSwitch]=\"switch_expression\">\n * <!-- the same view can be shown in more than one case -->\n * <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\n * <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\n * <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\n * <!--default case when there are no matches -->\n * <some-element *ngSwitchDefault>...</some-element>\n * </container-element>\n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * <container-element [ngSwitch]=\"switch_expression\">\n * <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\n * <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\n * <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\n * <ng-container *ngSwitchCase=\"match_expression_3\">\n * <!-- use a ng-container to group multiple root nodes -->\n * <inner-element></inner-element>\n * <inner-other-element></inner-other-element>\n * </ng-container>\n * <some-element *ngSwitchDefault>...</some-element>\n * </container-element>\n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgSwitch, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitch]' }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * <container-element [ngSwitch]=\"switch_expression\">\n * <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\n * ...\n * <some-element *ngSwitchDefault>...</some-element>\n * </container-element>\n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitchCase]' }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgSwitchDefault, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitchDefault]' }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\n\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/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * <some-element [ngPlural]=\"value\">\n * <ng-template ngPluralCase=\"=0\">there is nothing</ng-template>\n * <ng-template ngPluralCase=\"=1\">there is one</ng-template>\n * <ng-template ngPluralCase=\"few\">there are a few</ng-template>\n * </some-element>\n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgPlural, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{ selector: '[ngPlural]' }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * <some-element [ngPlural]=\"value\">\n * <ng-template ngPluralCase=\"=0\">...</ng-template>\n * <ng-template ngPluralCase=\"other\">...</ng-template>\n * </some-element>\n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgPluralCase, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{ selector: '[ngPluralCase]' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }];\n } });\n\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/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * <some-element [ngStyle]=\"{'font-style': styleExp}\">...</some-element>\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * <some-element [ngStyle]=\"{'max-width.px': widthExp}\">...</some-element>\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * <some-element [ngStyle]=\"objExp\">...</some-element>\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.<unit>` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n value = value != null && unit ? `${value}${unit}` : value;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, value);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgStyle, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{ selector: '[ngStyle]' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\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/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * <ng-container *ngTemplateOutlet=\"templateRefExp; context: contextExp\"></ng-container>\n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n this._viewRef = this.ngTemplateOutlet ?\n viewContainerRef.createEmbeddedView(this.ngTemplateOutlet, this.ngTemplateOutletContext) :\n null;\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.4\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[ngTemplateOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }] } });\n\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/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\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 */\nfunction invalidPipeArgumentError(type, value) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'` :\n '';\n return new ɵRuntimeError(2100 /* INVALID_PIPE_ARGUMENT */, errorMessage);\n}\n\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 */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n onDestroy(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n onDestroy(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(_ref) {\n this._ref = _ref;\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AsyncPipe, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'async', pure: false }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\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/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * <code-example path=\"common/pipes/ts/lowerupper_pipe.ts\" region='LowerUpperPipe'></code-example>\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LowerCasePipe, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'lowercase' }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * <code-example path=\"common/pipes/ts/titlecase_pipe.ts\" region='TitleCasePipe'></code-example>\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.substr(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TitleCasePipe, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'titlecase' }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: UpperCasePipe, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'uppercase' }]\n }] });\n\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/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `<div>\n * <p>Today is {{today | date}}</p>\n * <p>Or if you prefer, {{today | date:'fullDate'}}</p>\n * <p>The time is {{today | date:'h:mm a z'}}</p>\n * </div>`\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n var _a;\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, (_a = timezone !== null && timezone !== void 0 ? timezone : this.defaultTimezone) !== null && _a !== void 0 ? _a : undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DatePipe, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'date', pure: true }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }];\n } });\n\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 */\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * http://userguide.icu-project.org/formatparse/messages.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nPluralPipe, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'i18nPlural', pure: true }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\n\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/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nSelectPipe, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'i18nSelect', pure: true }]\n }] });\n\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/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonPipe, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'json', pure: false }]\n }] });\n\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 */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyValuePipe, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'keyvalue', pure: false }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\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/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:<br>\n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * <!--will output '4'-->\n *\n * {{-3.6 | number:'1.0-0'}}\n * <!--will output '-4'-->\n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * <code-example path=\"common/pipes/ts/number_pipe.ts\" region='NumberPipe'></code-example>\n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DecimalPipe, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'number' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * <code-example path=\"common/pipes/ts/percent_pipe.ts\" region='PercentPipe'></code-example>\n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PercentPipe, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'percent' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n * <div class=\"alert is-helpful\">\n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n * </div>\n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * <code-example path=\"common/pipes/ts/currency_pipe.ts\" region='CurrencyPipe'></code-example>\n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CurrencyPipe, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'currency' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }];\n } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\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/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n * <li>b</li>\n * <li>c</li>\n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SlicePipe, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'slice', pure: false }]\n }] });\n\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/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\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// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * * The `providers` options configure the NgModule's injector to provide\n * localization dependencies to members.\n * * The `exports` options make the declared directives and pipes available for import\n * by other NgModules.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CommonModule, declarations: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\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 */\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\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/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.4');\n\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/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch (_a) {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch (_a) {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\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/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\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\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 file only reexports content of the `src` folder. Keep it that way.\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\n\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/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\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/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or overide for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n\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/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '2B': '+',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => { var _a; return (_a = STANDARD_ENCODING_REPLACEMENTS[t]) !== null && _a !== void 0 ? _a : s; });\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n this.map.set(key, Array.isArray(value) ? value : [value]);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\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/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken<boolean>(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest<any>, delegate: HttpHandler): Observable<HttpEvent<any>> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\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/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n var _a;\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = (_a = update.context) !== null && _a !== void 0 ? _a : this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n });\n }\n}\n\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/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n\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/**\n * Constructs an instance of `HttpRequestOptions<T>` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable<Hero[]>{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse<T>`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `<T>` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\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/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\n }] });\n\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// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending <script> is unsubscribed we'll move it to this document, so it won't be\n * executed.\n */\nlet foreignDocument;\n// Error text given when a JSONP script is injected, but doesn't invoke the callback\n// passed in its URL.\nconst JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\n// Error text given when a request is passed to the JsonpClientBackend that doesn't\n// have a request method JSONP.\nconst JSONP_ERR_WRONG_METHOD = 'JSONP requests must use JSONP request method.';\nconst JSONP_ERR_WRONG_RESPONSE_TYPE = 'JSONP requests must use Json response type.';\n/**\n * DI token/abstract type representing a map of JSONP callbacks.\n *\n * In the browser, this should always be the `window` object.\n *\n *\n */\nclass JsonpCallbackContext {\n}\n/**\n * Processes an `HttpRequest` with the JSONP method,\n * by performing JSONP style requests.\n * @see `HttpHandler`\n * @see `HttpXhrBackend`\n *\n * @publicApi\n */\nclass JsonpClientBackend {\n constructor(callbackMap, document) {\n this.callbackMap = callbackMap;\n this.document = document;\n /**\n * A resolved promise that can be used to schedule microtasks in the event handlers.\n */\n this.resolvedPromise = Promise.resolve();\n }\n /**\n * Get the name of the next callback method, by incrementing the global `nextRequestId`.\n */\n nextCallback() {\n return `ng_jsonp_callback_${nextRequestId++}`;\n }\n /**\n * Processes a JSONP request and returns an event stream of the results.\n * @param req The request object.\n * @returns An observable of the response events.\n *\n */\n handle(req) {\n // Firstly, check both the method and response type. If either doesn't match\n // then the request was improperly routed here and cannot be handled.\n if (req.method !== 'JSONP') {\n throw new Error(JSONP_ERR_WRONG_METHOD);\n }\n else if (req.responseType !== 'json') {\n throw new Error(JSONP_ERR_WRONG_RESPONSE_TYPE);\n }\n // Everything else happens inside the Observable boundary.\n return new Observable((observer) => {\n // The first step to make a request is to generate the callback name, and replace the\n // callback placeholder in the URL with the name. Care has to be taken here to ensure\n // a trailing &, if matched, gets inserted back into the URL in the correct place.\n const callback = this.nextCallback();\n const url = req.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/, `=${callback}$1`);\n // Construct the <script> tag and point it at the URL.\n const node = this.document.createElement('script');\n node.src = url;\n // A JSONP request requires waiting for multiple callbacks. These variables\n // are closed over and track state across those callbacks.\n // The response object, if one has been received, or null otherwise.\n let body = null;\n // Whether the response callback has been called.\n let finished = false;\n // Set the response callback in this.callbackMap (which will be the window\n // object in the browser. The script being loaded via the <script> tag will\n // eventually call this callback.\n this.callbackMap[callback] = (data) => {\n // Data has been received from the JSONP script. Firstly, delete this callback.\n delete this.callbackMap[callback];\n // Set state to indicate data was received.\n body = data;\n finished = true;\n };\n // cleanup() is a utility closure that removes the <script> from the page and\n // the response callback from the window. This logic is used in both the\n // success, error, and cancellation paths, so it's extracted out for convenience.\n const cleanup = () => {\n // Remove the <script> tag if it's still on the page.\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n // Remove the response callback from the callbackMap (window object in the\n // browser).\n delete this.callbackMap[callback];\n };\n // onLoad() is the success callback which runs after the response callback\n // if the JSONP script loads successfully. The event itself is unimportant.\n // If something went wrong, onLoad() may run without the response callback\n // having been invoked.\n const onLoad = (event) => {\n // We wrap it in an extra Promise, to ensure the microtask\n // is scheduled after the loaded endpoint has executed any potential microtask itself,\n // which is not guaranteed in Internet Explorer and EdgeHTML. See issue #39496\n this.resolvedPromise.then(() => {\n // Cleanup the page.\n cleanup();\n // Check whether the response callback has run.\n if (!finished) {\n // It hasn't, something went wrong with the request. Return an error via\n // the Observable error path. All JSONP errors have status 0.\n observer.error(new HttpErrorResponse({\n url,\n status: 0,\n statusText: 'JSONP Error',\n error: new Error(JSONP_ERR_NO_CALLBACK),\n }));\n return;\n }\n // Success. body either contains the response body or null if none was\n // returned.\n observer.next(new HttpResponse({\n body,\n status: 200 /* Ok */,\n statusText: 'OK',\n url,\n }));\n // Complete the stream, the response is over.\n observer.complete();\n });\n };\n // onError() is the error callback, which runs if the script returned generates\n // a Javascript error. It emits the error via the Observable error channel as\n // a HttpErrorResponse.\n const onError = (error) => {\n cleanup();\n // Wrap the error in a HttpErrorResponse.\n observer.error(new HttpErrorResponse({\n error,\n status: 0,\n statusText: 'JSONP Error',\n url,\n }));\n };\n // Subscribe to both the success (load) and error events on the <script> tag,\n // and add it to the page.\n node.addEventListener('load', onLoad);\n node.addEventListener('error', onError);\n this.document.body.appendChild(node);\n // The request has now been successfully sent.\n observer.next({ type: HttpEventType.Sent });\n // Cancellation handler.\n return () => {\n if (!finished) {\n this.removeListeners(node);\n }\n // And finally, clean up the page.\n cleanup();\n };\n });\n }\n removeListeners(script) {\n // Issue #34818\n // Changing <script>'s ownerDocument will prevent it from execution.\n // https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block\n if (!foreignDocument) {\n foreignDocument = this.document.implementation.createHTMLDocument();\n }\n foreignDocument.adoptNode(script);\n }\n}\nJsonpClientBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpClientBackend, deps: [{ token: JsonpCallbackContext }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nJsonpClientBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpClientBackend });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpClientBackend, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: JsonpCallbackContext }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n/**\n * Identifies requests with the method JSONP and\n * shifts them to the `JsonpClientBackend`.\n *\n * @see `HttpInterceptor`\n *\n * @publicApi\n */\nclass JsonpInterceptor {\n constructor(jsonp) {\n this.jsonp = jsonp;\n }\n /**\n * Identifies and handles a given JSONP request.\n * @param req The outgoing request object to handle.\n * @param next The next interceptor in the chain, or the backend\n * if no interceptors remain in the chain.\n * @returns An observable of the event stream.\n */\n intercept(req, next) {\n if (req.method === 'JSONP') {\n return this.jsonp.handle(req);\n }\n // Fall through for normal HTTP requests.\n return next.handle(req);\n }\n}\nJsonpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpInterceptor, deps: [{ token: JsonpClientBackend }], target: i0.ɵɵFactoryTarget.Injectable });\nJsonpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: JsonpInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: JsonpClientBackend }]; } });\n\nconst XSSI_PREFIX = /^\\)\\]\\}',?\\n/;\n/**\n * Determine an appropriate URL for the response, by checking either\n * XMLHttpRequest.responseURL or the X-Request-URL header.\n */\nfunction getResponseUrl(xhr) {\n if ('responseURL' in xhr && xhr.responseURL) {\n return xhr.responseURL;\n }\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\n return xhr.getResponseHeader('X-Request-URL');\n }\n return null;\n}\n/**\n * Uses `XMLHttpRequest` to send requests to a backend server.\n * @see `HttpHandler`\n * @see `JsonpClientBackend`\n *\n * @publicApi\n */\nclass HttpXhrBackend {\n constructor(xhrFactory) {\n this.xhrFactory = xhrFactory;\n }\n /**\n * Processes a request and returns a stream of response events.\n * @param req The request object.\n * @returns An observable of the response events.\n */\n handle(req) {\n // Quick check to give a better error message when a user attempts to use\n // HttpClient.jsonp() without installing the HttpClientJsonpModule\n if (req.method === 'JSONP') {\n throw new Error(`Attempted to construct Jsonp request without HttpClientJsonpModule installed.`);\n }\n // Everything happens on Observable subscription.\n return new Observable((observer) => {\n // Start by setting up the XHR object with request method, URL, and withCredentials flag.\n const xhr = this.xhrFactory.build();\n xhr.open(req.method, req.urlWithParams);\n if (!!req.withCredentials) {\n xhr.withCredentials = true;\n }\n // Add all the requested headers.\n req.headers.forEach((name, values) => xhr.setRequestHeader(name, values.join(',')));\n // Add an Accept header if one isn't present already.\n if (!req.headers.has('Accept')) {\n xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');\n }\n // Auto-detect the Content-Type header if one isn't present already.\n if (!req.headers.has('Content-Type')) {\n const detectedType = req.detectContentTypeHeader();\n // Sometimes Content-Type detection fails.\n if (detectedType !== null) {\n xhr.setRequestHeader('Content-Type', detectedType);\n }\n }\n // Set the responseType if one was requested.\n if (req.responseType) {\n const responseType = req.responseType.toLowerCase();\n // JSON responses need to be processed as text. This is because if the server\n // returns an XSSI-prefixed JSON response, the browser will fail to parse it,\n // xhr.response will be null, and xhr.responseText cannot be accessed to\n // retrieve the prefixed JSON data in order to strip the prefix. Thus, all JSON\n // is parsed by first requesting text and then applying JSON.parse.\n xhr.responseType = ((responseType !== 'json') ? responseType : 'text');\n }\n // Serialize the request body if one is present. If not, this will be set to null.\n const reqBody = req.serializeBody();\n // If progress events are enabled, response headers will be delivered\n // in two events - the HttpHeaderResponse event and the full HttpResponse\n // event. However, since response headers don't change in between these\n // two events, it doesn't make sense to parse them twice. So headerResponse\n // caches the data extracted from the response whenever it's first parsed,\n // to ensure parsing isn't duplicated.\n let headerResponse = null;\n // partialFromXhr extracts the HttpHeaderResponse from the current XMLHttpRequest\n // state, and memoizes it into headerResponse.\n const partialFromXhr = () => {\n if (headerResponse !== null) {\n return headerResponse;\n }\n const statusText = xhr.statusText || 'OK';\n // Parse headers from XMLHttpRequest - this step is lazy.\n const headers = new HttpHeaders(xhr.getAllResponseHeaders());\n // Read the response URL from the XMLHttpResponse instance and fall back on the\n // request URL.\n const url = getResponseUrl(xhr) || req.url;\n // Construct the HttpHeaderResponse and memoize it.\n headerResponse = new HttpHeaderResponse({ headers, status: xhr.status, statusText, url });\n return headerResponse;\n };\n // Next, a few closures are defined for the various events which XMLHttpRequest can\n // emit. This allows them to be unregistered as event listeners later.\n // First up is the load event, which represents a response being fully available.\n const onLoad = () => {\n // Read response state from the memoized partial data.\n let { headers, status, statusText, url } = partialFromXhr();\n // The body will be read out if present.\n let body = null;\n if (status !== 204 /* NoContent */) {\n // Use XMLHttpRequest.response if set, responseText otherwise.\n body = (typeof xhr.response === 'undefined') ? xhr.responseText : xhr.response;\n }\n // Normalize another potential bug (this one comes from CORS).\n if (status === 0) {\n status = !!body ? 200 /* Ok */ : 0;\n }\n // ok determines whether the response will be transmitted on the event or\n // error channel. Unsuccessful status codes (not 2xx) will always be errors,\n // but a successful status code can still result in an error if the user\n // asked for JSON data and the body cannot be parsed as such.\n let ok = status >= 200 && status < 300;\n // Check whether the body needs to be parsed as JSON (in many cases the browser\n // will have done that already).\n if (req.responseType === 'json' && typeof body === 'string') {\n // Save the original body, before attempting XSSI prefix stripping.\n const originalBody = body;\n body = body.replace(XSSI_PREFIX, '');\n try {\n // Attempt the parse. If it fails, a parse error should be delivered to the user.\n body = body !== '' ? JSON.parse(body) : null;\n }\n catch (error) {\n // Since the JSON.parse failed, it's reasonable to assume this might not have been a\n // JSON response. Restore the original body (including any XSSI prefix) to deliver\n // a better error response.\n body = originalBody;\n // If this was an error request to begin with, leave it as a string, it probably\n // just isn't JSON. Otherwise, deliver the parsing error to the user.\n if (ok) {\n // Even though the response status was 2xx, this is still an error.\n ok = false;\n // The parse error contains the text of the body that failed to parse.\n body = { error, text: body };\n }\n }\n }\n if (ok) {\n // A successful response is delivered on the event stream.\n observer.next(new HttpResponse({\n body,\n headers,\n status,\n statusText,\n url: url || undefined,\n }));\n // The full body has been received and delivered, no further events\n // are possible. This request is complete.\n observer.complete();\n }\n else {\n // An unsuccessful request is delivered on the error channel.\n observer.error(new HttpErrorResponse({\n // The error in this case is the response body (error from the server).\n error: body,\n headers,\n status,\n statusText,\n url: url || undefined,\n }));\n }\n };\n // The onError callback is called when something goes wrong at the network level.\n // Connection timeout, DNS error, offline, etc. These are actual errors, and are\n // transmitted on the error channel.\n const onError = (error) => {\n const { url } = partialFromXhr();\n const res = new HttpErrorResponse({\n error,\n status: xhr.status || 0,\n statusText: xhr.statusText || 'Unknown Error',\n url: url || undefined,\n });\n observer.error(res);\n };\n // The sentHeaders flag tracks whether the HttpResponseHeaders event\n // has been sent on the stream. This is necessary to track if progress\n // is enabled since the event will be sent on only the first download\n // progerss event.\n let sentHeaders = false;\n // The download progress event handler, which is only registered if\n // progress events are enabled.\n const onDownProgress = (event) => {\n // Send the HttpResponseHeaders event if it hasn't been sent already.\n if (!sentHeaders) {\n observer.next(partialFromXhr());\n sentHeaders = true;\n }\n // Start building the download progress event to deliver on the response\n // event stream.\n let progressEvent = {\n type: HttpEventType.DownloadProgress,\n loaded: event.loaded,\n };\n // Set the total number of bytes in the event if it's available.\n if (event.lengthComputable) {\n progressEvent.total = event.total;\n }\n // If the request was for text content and a partial response is\n // available on XMLHttpRequest, include it in the progress event\n // to allow for streaming reads.\n if (req.responseType === 'text' && !!xhr.responseText) {\n progressEvent.partialText = xhr.responseText;\n }\n // Finally, fire the event.\n observer.next(progressEvent);\n };\n // The upload progress event handler, which is only registered if\n // progress events are enabled.\n const onUpProgress = (event) => {\n // Upload progress events are simpler. Begin building the progress\n // event.\n let progress = {\n type: HttpEventType.UploadProgress,\n loaded: event.loaded,\n };\n // If the total number of bytes being uploaded is available, include\n // it.\n if (event.lengthComputable) {\n progress.total = event.total;\n }\n // Send the event.\n observer.next(progress);\n };\n // By default, register for load and error events.\n xhr.addEventListener('load', onLoad);\n xhr.addEventListener('error', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('abort', onError);\n // Progress events are only enabled if requested.\n if (req.reportProgress) {\n // Download progress is always enabled if requested.\n xhr.addEventListener('progress', onDownProgress);\n // Upload progress depends on whether there is a body to upload.\n if (reqBody !== null && xhr.upload) {\n xhr.upload.addEventListener('progress', onUpProgress);\n }\n }\n // Fire the request, and notify the event stream that it was fired.\n xhr.send(reqBody);\n observer.next({ type: HttpEventType.Sent });\n // This is the return from the Observable function, which is the\n // request cancellation handler.\n return () => {\n // On a cancellation, remove all registered event listeners.\n xhr.removeEventListener('error', onError);\n xhr.removeEventListener('abort', onError);\n xhr.removeEventListener('load', onLoad);\n xhr.removeEventListener('timeout', onError);\n if (req.reportProgress) {\n xhr.removeEventListener('progress', onDownProgress);\n if (reqBody !== null && xhr.upload) {\n xhr.upload.removeEventListener('progress', onUpProgress);\n }\n }\n // Finally, abort the in-flight request.\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n}\nHttpXhrBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXhrBackend, deps: [{ token: i1.XhrFactory }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXhrBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXhrBackend });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXhrBackend, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.XhrFactory }]; } });\n\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 */\nconst XSRF_COOKIE_NAME = new InjectionToken('XSRF_COOKIE_NAME');\nconst XSRF_HEADER_NAME = new InjectionToken('XSRF_HEADER_NAME');\n/**\n * Retrieves the current XSRF token to use with the next outgoing request.\n *\n * @publicApi\n */\nclass HttpXsrfTokenExtractor {\n}\n/**\n * `HttpXsrfTokenExtractor` which retrieves the token from a cookie.\n */\nclass HttpXsrfCookieExtractor {\n constructor(doc, platform, cookieName) {\n this.doc = doc;\n this.platform = platform;\n this.cookieName = cookieName;\n this.lastCookieString = '';\n this.lastToken = null;\n /**\n * @internal for testing\n */\n this.parseCount = 0;\n }\n getToken() {\n if (this.platform === 'server') {\n return null;\n }\n const cookieString = this.doc.cookie || '';\n if (cookieString !== this.lastCookieString) {\n this.parseCount++;\n this.lastToken = ɵparseCookieValue(cookieString, this.cookieName);\n this.lastCookieString = cookieString;\n }\n return this.lastToken;\n }\n}\nHttpXsrfCookieExtractor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfCookieExtractor, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: XSRF_COOKIE_NAME }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXsrfCookieExtractor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfCookieExtractor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfCookieExtractor, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [XSRF_COOKIE_NAME]\n }] }];\n } });\n/**\n * `HttpInterceptor` which adds an XSRF token to eligible outgoing requests.\n */\nclass HttpXsrfInterceptor {\n constructor(tokenService, headerName) {\n this.tokenService = tokenService;\n this.headerName = headerName;\n }\n intercept(req, next) {\n const lcUrl = req.url.toLowerCase();\n // Skip both non-mutating requests and absolute URLs.\n // Non-mutating requests don't require a token, and absolute URLs require special handling\n // anyway as the cookie set\n // on our origin is not the same as the token expected by another origin.\n if (req.method === 'GET' || req.method === 'HEAD' || lcUrl.startsWith('http://') ||\n lcUrl.startsWith('https://')) {\n return next.handle(req);\n }\n const token = this.tokenService.getToken();\n // Be careful not to overwrite an existing header of the same name.\n if (token !== null && !req.headers.has(this.headerName)) {\n req = req.clone({ headers: req.headers.set(this.headerName, token) });\n }\n return next.handle(req);\n }\n}\nHttpXsrfInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfInterceptor, deps: [{ token: HttpXsrfTokenExtractor }, { token: XSRF_HEADER_NAME }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXsrfInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpXsrfInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: HttpXsrfTokenExtractor }, { type: undefined, decorators: [{\n type: Inject,\n args: [XSRF_HEADER_NAME]\n }] }];\n } });\n\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/**\n * An injectable `HttpHandler` that applies multiple interceptors\n * to a request before passing it to the given `HttpBackend`.\n *\n * The interceptors are loaded lazily from the injector, to allow\n * interceptors to themselves inject classes depending indirectly\n * on `HttpInterceptingHandler` itself.\n * @see `HttpInterceptor`\n */\nclass HttpInterceptingHandler {\n constructor(backend, injector) {\n this.backend = backend;\n this.injector = injector;\n this.chain = null;\n }\n handle(req) {\n if (this.chain === null) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n this.chain = interceptors.reduceRight((next, interceptor) => new HttpInterceptorHandler(next, interceptor), this.backend);\n }\n return this.chain.handle(req);\n }\n}\nHttpInterceptingHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpInterceptingHandler, deps: [{ token: HttpBackend }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpInterceptingHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpInterceptingHandler });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpInterceptingHandler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpBackend }, { type: i0.Injector }]; } });\n/**\n * Constructs an `HttpHandler` that applies interceptors\n * to a request before passing it to the given `HttpBackend`.\n *\n * Use as a factory function within `HttpClientModule`.\n *\n *\n */\nfunction interceptingHandler(backend, interceptors = []) {\n if (!interceptors) {\n return backend;\n }\n return interceptors.reduceRight((next, interceptor) => new HttpInterceptorHandler(next, interceptor), backend);\n}\n/**\n * Factory function that determines where to store JSONP callbacks.\n *\n * Ordinarily JSONP callbacks are stored on the `window` object, but this may not exist\n * in test environments. In that case, callbacks are stored on an anonymous object instead.\n *\n *\n */\nfunction jsonpCallbackContext() {\n if (typeof window === 'object') {\n return window;\n }\n return {};\n}\n/**\n * Configures XSRF protection support for outgoing requests.\n *\n * For a server that supports a cookie-based XSRF protection system,\n * use directly to configure XSRF protection with the correct\n * cookie and header names.\n *\n * If no names are supplied, the default cookie name is `XSRF-TOKEN`\n * and the default header name is `X-XSRF-TOKEN`.\n *\n * @publicApi\n */\nclass HttpClientXsrfModule {\n /**\n * Disable the default XSRF protection.\n */\n static disable() {\n return {\n ngModule: HttpClientXsrfModule,\n providers: [\n { provide: HttpXsrfInterceptor, useClass: NoopInterceptor },\n ],\n };\n }\n /**\n * Configure XSRF protection.\n * @param options An object that can specify either or both\n * cookie name or header name.\n * - Cookie name default is `XSRF-TOKEN`.\n * - Header name default is `X-XSRF-TOKEN`.\n *\n */\n static withOptions(options = {}) {\n return {\n ngModule: HttpClientXsrfModule,\n providers: [\n options.cookieName ? { provide: XSRF_COOKIE_NAME, useValue: options.cookieName } : [],\n options.headerName ? { provide: XSRF_HEADER_NAME, useValue: options.headerName } : [],\n ],\n };\n }\n}\nHttpClientXsrfModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientXsrfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientXsrfModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientXsrfModule });\nHttpClientXsrfModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientXsrfModule, providers: [\n HttpXsrfInterceptor,\n { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },\n { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n { provide: XSRF_COOKIE_NAME, useValue: 'XSRF-TOKEN' },\n { provide: XSRF_HEADER_NAME, useValue: 'X-XSRF-TOKEN' },\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientXsrfModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n HttpXsrfInterceptor,\n { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },\n { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n { provide: XSRF_COOKIE_NAME, useValue: 'XSRF-TOKEN' },\n { provide: XSRF_HEADER_NAME, useValue: 'X-XSRF-TOKEN' },\n ],\n }]\n }] });\n/**\n * Configures the [dependency injector](guide/glossary#injector) for `HttpClient`\n * with supporting services for XSRF. Automatically imported by `HttpClientModule`.\n *\n * You can add interceptors to the chain behind `HttpClient` by binding them to the\n * multiprovider for built-in [DI token](guide/glossary#di-token) `HTTP_INTERCEPTORS`.\n *\n * @publicApi\n */\nclass HttpClientModule {\n}\nHttpClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientModule, imports: [HttpClientXsrfModule] });\nHttpClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientModule, providers: [\n HttpClient,\n { provide: HttpHandler, useClass: HttpInterceptingHandler },\n HttpXhrBackend,\n { provide: HttpBackend, useExisting: HttpXhrBackend },\n ], imports: [[\n HttpClientXsrfModule.withOptions({\n cookieName: 'XSRF-TOKEN',\n headerName: 'X-XSRF-TOKEN',\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientModule, decorators: [{\n type: NgModule,\n args: [{\n /**\n * Optional configuration for XSRF protection.\n */\n imports: [\n HttpClientXsrfModule.withOptions({\n cookieName: 'XSRF-TOKEN',\n headerName: 'X-XSRF-TOKEN',\n }),\n ],\n /**\n * Configures the [dependency injector](guide/glossary#injector) where it is imported\n * with supporting services for HTTP communications.\n */\n providers: [\n HttpClient,\n { provide: HttpHandler, useClass: HttpInterceptingHandler },\n HttpXhrBackend,\n { provide: HttpBackend, useExisting: HttpXhrBackend },\n ],\n }]\n }] });\n/**\n * Configures the [dependency injector](guide/glossary#injector) for `HttpClient`\n * with supporting services for JSONP.\n * Without this module, Jsonp requests reach the backend\n * with method JSONP, where they are rejected.\n *\n * You can add interceptors to the chain behind `HttpClient` by binding them to the\n * multiprovider for built-in [DI token](guide/glossary#di-token) `HTTP_INTERCEPTORS`.\n *\n * @publicApi\n */\nclass HttpClientJsonpModule {\n}\nHttpClientJsonpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientJsonpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientJsonpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientJsonpModule });\nHttpClientJsonpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientJsonpModule, providers: [\n JsonpClientBackend,\n { provide: JsonpCallbackContext, useFactory: jsonpCallbackContext },\n { provide: HTTP_INTERCEPTORS, useClass: JsonpInterceptor, multi: true },\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.4\", ngImport: i0, type: HttpClientJsonpModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n JsonpClientBackend,\n { provide: JsonpCallbackContext, useFactory: jsonpCallbackContext },\n { provide: HTTP_INTERCEPTORS, useClass: JsonpInterceptor, multi: true },\n ],\n }]\n }] });\n\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/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n * @see `XhrFactory`\n * @deprecated\n * `XhrFactory` has moved, please import `XhrFactory` from `@angular/common` instead.\n */\nconst XhrFactory = XhrFactory$1;\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { HTTP_INTERCEPTORS, HttpBackend, HttpClient, HttpClientJsonpModule, HttpClientModule, HttpClientXsrfModule, HttpContext, HttpContextToken, HttpErrorResponse, HttpEventType, HttpHandler, HttpHeaderResponse, HttpHeaders, HttpParams, HttpRequest, HttpResponse, HttpResponseBase, HttpUrlEncodingCodec, HttpXhrBackend, HttpXsrfTokenExtractor, JsonpClientBackend, JsonpInterceptor, XhrFactory, HttpInterceptingHandler as ɵHttpInterceptingHandler };\n","/**\n * @license Angular v13.3.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, Observable, merge as merge$1 } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\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 */\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\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 */\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n\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 */\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * @usageNotes\n * ### Example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see `forwardRef`\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\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/**\n * Base URL for the error details page.\n *\n * Keep the files below in full sync:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';\n\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/**\n * Class that represents a runtime error.\n * Formats and outputs the error message in a consistent way.\n *\n * Example:\n * ```\n * throw new RuntimeError(\n * RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,\n * ngDevMode && 'Injector has already been destroyed.');\n * ```\n *\n * Note: the `message` argument contains a descriptive error message as a string in development\n * mode (when the `ngDevMode` is defined). In production mode (after tree-shaking pass), the\n * `message` argument becomes `false`, thus we account for it in the typings and the runtime logic.\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/**\n * Called to format a runtime error.\n * See additional info on the `message` argument type in the `RuntimeError` class description.\n */\nfunction formatRuntimeError(code, message) {\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n const fullCode = `NG0${Math.abs(code)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && code < 0) {\n errorMessage = `${errorMessage}. Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\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/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n\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/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* CYCLIC_DI_DEPENDENCY */, `Circular dependency in DI detected for ${token}${depPath}`);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n let ngModuleDetail = '';\n if (ngModuleType && providers) {\n const providerDetail = providers.map(v => v == provider ? '?' + provider + '?' : '...');\n ngModuleDetail =\n ` - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`;\n }\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}'` + ngModuleDetail);\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const injectorDetails = injectorName ? ` in ${injectorName}` : '';\n throw new RuntimeError(-201 /* PROVIDER_NOT_FOUND */, `No provider for ${stringifyForError(token)} found${injectorDetails}`);\n}\n\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 */\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n // If we're in a worker, `Node` will not be defined.\n if (!(typeof Node !== 'undefined' && node instanceof Node) &&\n !(typeof node === 'object' && node != null &&\n node.constructor.name === 'WebWorkerRenderNode')) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\n\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/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call `inject` to access the `Injector` and request injection of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n const typeName = getTypeName(type);\n // TODO(FW-1307): Re-add ngDevMode when closure can handle it\n // ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${typeName}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${typeName}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/** Gets the name of a type, accounting for some cross-browser differences. */\nfunction getTypeName(type) {\n // `Function.prototype.name` behaves differently between IE and other browsers. In most browsers\n // it'll always return the name of the function itself, no matter how many other functions it\n // inherits from. On IE the function doesn't have its own `name` property, but it takes it from\n // the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most\n // browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around\n // the issue by converting the function to a string and parsing its name out that way via a regex.\n if (type.hasOwnProperty('name')) {\n return type.name;\n }\n const match = ('' + type).match(/^function\\s*([^\\s(]+)/);\n return match === null ? '' : match[1];\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\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/**\n * Injection flags for DI.\n *\n * @publicApi\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\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/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(stringify(token), 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\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/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\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/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n/**\n * Defines the possible states of the default change detector.\n * @see `ChangeDetectorRef`\n */\nvar ChangeDetectorStatus;\n(function (ChangeDetectorStatus) {\n /**\n * A state in which, after calling `detectChanges()`, the change detector\n * state becomes `Checked`, and must be explicitly invoked or reactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckOnce\"] = 0] = \"CheckOnce\";\n /**\n * A state in which change detection is skipped until the change detector mode\n * becomes `CheckOnce`.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Checked\"] = 1] = \"Checked\";\n /**\n * A state in which change detection continues automatically until explicitly\n * deactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckAlways\"] = 2] = \"CheckAlways\";\n /**\n * A state in which a change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Detached\"] = 3] = \"Detached\";\n /**\n * Indicates that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state do not detect changes.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Errored\"] = 4] = \"Errored\";\n /**\n * Indicates that the change detector has been destroyed.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Destroyed\"] = 5] = \"Destroyed\";\n})(ChangeDetectorStatus || (ChangeDetectorStatus = {}));\n/**\n * Reports whether a given strategy is currently the default for change detection.\n * @param changeDetectionStrategy The strategy to check.\n * @returns True if the given strategy is the current default, false otherwise.\n * @see `ChangeDetectorStatus`\n * @see `ChangeDetectorRef`\n */\nfunction isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return changeDetectionStrategy == null ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\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/**\n * Defines the CSS styles encapsulation policies for the {@link Component} decorator's\n * `encapsulation` option.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n // TODO: consider making `ViewEncapsulation` a `const enum` instead. See\n // https://github.com/angular/angular/issues/44119 for additional information.\n /**\n * Emulates a native Shadow DOM encapsulation behavior by adding a specific attribute to the\n * component's host element and applying the same attribute to all the CSS selectors provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls}.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Doesn't provide any sort of CSS style encapsulation, meaning that all the styles provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls} are applicable\n * to any HTML element of the application regardless of their host Component.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Uses the browser's native Shadow DOM API to encapsulate CSS styles, meaning that it creates\n * a ShadowRoot for the component's host element which is then used to encapsulate\n * all the Component's styling.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\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 */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case.\nconst _global = __globalThis || __global || __window || __self;\n\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 */\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n _global['ngDevMode'] = allowNgDevModeTrue && newCounters;\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object') {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\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/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\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 */\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n\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 */\nlet _renderCompCount = 0;\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const type = componentDefinition.type;\n const declaredInputs = {};\n const def = {\n type: type,\n providersResolver: null,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n factory: null,\n template: componentDefinition.template || null,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n hostBindings: componentDefinition.hostBindings || null,\n hostVars: componentDefinition.hostVars || 0,\n hostAttrs: componentDefinition.hostAttrs || null,\n contentQueries: componentDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputs: null,\n outputs: null,\n exportAs: componentDefinition.exportAs || null,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null,\n pipeDefs: null,\n selectors: componentDefinition.selectors || EMPTY_ARRAY,\n viewQuery: componentDefinition.viewQuery || null,\n features: componentDefinition.features || null,\n data: componentDefinition.data || {},\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n id: 'c',\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n setInput: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n };\n const directiveTypes = componentDefinition.directives;\n const feature = componentDefinition.features;\n const pipeTypes = componentDefinition.pipes;\n def.id += _renderCompCount++;\n def.inputs = invertObject(componentDefinition.inputs, declaredInputs),\n def.outputs = invertObject(componentDefinition.outputs),\n feature && feature.forEach((fn) => fn(def));\n def.directiveDefs = directiveTypes ?\n () => (typeof directiveTypes === 'function' ? directiveTypes() : directiveTypes)\n .map(extractDirectiveDef) :\n null;\n def.pipeDefs = pipeTypes ?\n () => (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef) :\n null;\n return def;\n });\n}\n/**\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\n * definition, when generating a direct reference in the component file would otherwise create an\n * import cycle.\n *\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\n *\n * @codeGenApi\n */\nfunction ɵɵsetComponentScope(type, directives, pipes) {\n const def = type.ɵcmp;\n def.directiveDefs = () => directives.map(extractDirectiveDef);\n def.pipeDefs = () => pipes.map(extractPipeDef);\n}\nfunction extractDirectiveDef(type) {\n const def = getComponentDef(type) || getDirectiveDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is neither 'ComponentType' or 'DirectiveType'.`);\n }\n return def;\n}\nfunction extractPipeDef(type) {\n const def = getPipeDef$1(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is not a 'PipeType'.`);\n }\n return def;\n}\nconst autoRegisterModuleById = {};\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n if (def.id != null) {\n autoRegisterModuleById[def.id] = def.type;\n }\n return res;\n });\n}\n/**\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\n * existing module definition.\n *\n * Scope metadata of modules is not used in production builds, so calls to this function can be\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\n * to become eligible for tree-shaking as well.\n *\n * @codeGenApi\n */\nfunction ɵɵsetNgModuleScope(type, scope) {\n return noSideEffects(() => {\n const ngModuleDef = getNgModuleDef(type, true);\n ngModuleDef.declarations = scope.declarations || EMPTY_ARRAY;\n ngModuleDef.imports = scope.imports || EMPTY_ARRAY;\n ngModuleDef.exports = scope.exports || EMPTY_ARRAY;\n });\n}\n/**\n * Inverts an inputs or outputs lookup such that the keys, which were the\n * minified keys, are part of the values, and the values are parsed so that\n * the publicName of the property is the new key\n *\n * e.g. for\n *\n * ```\n * class Comp {\n * @Input()\n * propName1: string;\n *\n * @Input('publicName2')\n * declaredPropName2: number;\n * }\n * ```\n *\n * will be serialized as\n *\n * ```\n * {\n * propName1: 'propName1',\n * declaredPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * which is than translated by the minifier as:\n *\n * ```\n * {\n * minifiedPropName1: 'propName1',\n * minifiedPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * becomes: (public name => minifiedName)\n *\n * ```\n * {\n * 'propName1': 'minifiedPropName1',\n * 'publicName2': 'minifiedPropName2',\n * }\n * ```\n *\n * Optionally the function can take `secondary` which will result in: (public name => declared name)\n *\n * ```\n * {\n * 'propName1': 'propName1',\n * 'publicName2': 'declaredPropName2',\n * }\n * ```\n *\n\n */\nfunction invertObject(obj, secondary) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n let publicName = obj[minifiedKey];\n let declaredName = publicName;\n if (Array.isArray(publicName)) {\n declaredName = publicName[1];\n publicName = publicName[0];\n }\n newLookup[publicName] = minifiedKey;\n if (secondary) {\n (secondary[publicName] = declaredName);\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nconst ɵɵdefineDirective = ɵɵdefineComponent;\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef$1(type) {\n return type[NG_PIPE_DEF] || null;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\n\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n/**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\n * that the `MOVED_VIEWS` are transplanted and on-push.\n */\nconst HAS_TRANSPLANTED_VIEWS = 2;\n// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\n// T_HOST is index 6\n// We already have this constants in LView, we don't need to re-create it.\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$8 = 1;\n\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// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst TRANSPLANTED_VIEWS_TO_REFRESH = 5;\nconst T_HOST = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR$1 = 9;\nconst RENDERER_FACTORY = 10;\nconst RENDERER = 11;\nconst SANITIZER = 12;\nconst CHILD_HEAD = 13;\nconst CHILD_TAIL = 14;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 15;\nconst DECLARATION_COMPONENT_VIEW = 16;\nconst DECLARATION_LCONTAINER = 17;\nconst PREORDER_HOOK_FLAGS = 18;\nconst QUERIES = 19;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 20;\n/**\n * Converts `TViewType` into human readable text.\n * Make sure this matches with `TViewType`\n */\nconst TViewTypeAsString = [\n 'Root',\n 'Component',\n 'Embedded', // 2\n];\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$7 = 1;\n\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/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 8 /* hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return (tNode.flags & 2 /* isComponentHost */) === 2 /* isComponentHost */;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* isDirectiveHost */) === 1 /* isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return def.template !== null;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* IsRoot */) !== 0;\n}\n\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// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n tNode.hasOwnProperty('tView_') &&\n assertEqual(tNode.tView_, tView, 'This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertDataNext(lView, index, arr) {\n if (arr == null)\n arr = lView;\n assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(lView, index) {\n const tView = lView[1];\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInVarsRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.bindingStartIndex, tView.expandoStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes (<ng-content>) must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || 'Component views should always have a parent view (component\\'s host view)');\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* PARENT */], 'injectorIndex should point to parent injector');\n}\n\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 */\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\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/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see `OnChanges`\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\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/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore === null || simpleChangesStore === void 0 ? void 0 : simpleChangesStore.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, value, publicName, privateName) {\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const declaredName = this.declaredInputs[publicName];\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n instance[privateName] = value;\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return instance[SIMPLE_CHANGES_STORE] = store;\n}\n\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 */\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\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 */\nconst SVG_NAMESPACE = 'svg';\nconst SVG_NAMESPACE_URI = 'http://www.w3.org/2000/svg';\nconst MATH_ML_NAMESPACE = 'math';\nconst MATH_ML_NAMESPACE_URI = 'http://www.w3.org/1998/MathML/';\nfunction getNamespaceUri(namespace) {\n const name = namespace.toLowerCase();\n return name === SVG_NAMESPACE ? SVG_NAMESPACE_URI :\n (name === MATH_ML_NAMESPACE ? MATH_ML_NAMESPACE_URI : null);\n}\n\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/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param document The object representing the global `document` in this environment.\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API. Meanwhile we just return `undefined` and let the application fail.\n return undefined;\n}\n\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// TODO: cleanup once the code is merged in angular/angular\nvar RendererStyleFlags3;\n(function (RendererStyleFlags3) {\n RendererStyleFlags3[RendererStyleFlags3[\"Important\"] = 1] = \"Important\";\n RendererStyleFlags3[RendererStyleFlags3[\"DashCase\"] = 2] = \"DashCase\";\n})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));\n/** Returns whether the `renderer` is a `ProceduralRenderer3` */\nfunction isProceduralRenderer(renderer) {\n return !!(renderer.listen);\n}\nconst domRendererFactory3 = {\n createRenderer: (hostElement, rendererType) => {\n return getDocument();\n }\n};\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$6 = 1;\n\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/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Returns `LContainer` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLContainer(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLContainer()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (value[TYPE] === true)\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents\n * whose\n * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh\n * or\n * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh\n */\nfunction updateTransplantedViewCount(lContainer, amount) {\n lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n let viewOrContainer = lContainer;\n let parent = lContainer[PARENT];\n while (parent !== null &&\n ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||\n (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {\n parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n viewOrContainer = parent;\n parent = parent[PARENT];\n }\n}\n\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 */\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n isInCheckNoChangesMode: false,\n};\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * <my-comp my-directive>\n * Should match component / directive.\n * </my-comp>\n * <div ngNonBindable>\n * <!-- ɵɵdisableBindings() -->\n * <my-comp my-directive>\n * Should not match component / directive because we are in ngNonBindable.\n * </my-comp>\n * <!-- ɵɵenableBindings() -->\n * </div>\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * <my-comp my-directive>\n * Should match component / directive.\n * </my-comp>\n * <div ngNonBindable>\n * <!-- ɵɵdisableBindings() -->\n * <my-comp my-directive>\n * Should not match component / directive because we are in ngNonBindable.\n * </my-comp>\n * <!-- ɵɵenableBindings() -->\n * </div>\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction setCurrentTNodeAsParent() {\n instructionState.lFrame.isParent = true;\n}\nfunction getContextLView() {\n return instructionState.lFrame.contextLView;\n}\nfunction isInCheckNoChangesMode() {\n // TODO(misko): remove this from the LView since it is ngDevMode=true mode only.\n return instructionState.isInCheckNoChangesMode;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n instructionState.isInCheckNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* Element */ | 8 /* ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = instructionState.lFrame = allocLFrame();\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, instructionState.lFrame.contextLView);\n return contextLView[CONTEXT];\n}\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode && index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, 'Can\\'t set index passed end of LView');\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace$1() {\n return instructionState.lFrame.currentNamespace;\n}\n\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/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = []))\n .push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks || (tView.contentHooks = [])).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks || (tView.contentHooks = [])).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks || (tView.contentCheckHooks = [])).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks || (tView.viewHooks = [])).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks || (tView.viewHooks = [])).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks || (tView.viewCheckHooks = [])).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {\n flags &= 2047 /* IndexWithinInitPhaseReset */;\n flags += 1 /* InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook)\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* NumberOfInitHooksCalledIncrementer */;\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n }\n else {\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n}\n\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 */\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array<any> {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array<any> {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$5 = 1;\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n (tNodeType & 1 /* Text */) && (text += '|Text');\n (tNodeType & 2 /* Element */) && (text += '|Element');\n (tNodeType & 4 /* Container */) && (text += '|Container');\n (tNodeType & 8 /* ElementContainer */) && (text += '|ElementContainer');\n (tNodeType & 16 /* Projection */) && (text += '|Projection');\n (tNodeType & 32 /* Icu */) && (text += '|IcuContainer');\n (tNodeType & 64 /* Placeholder */) && (text += '|Placeholder');\n return text.length > 0 ? text.substring(1) : text;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$4 = 1;\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n * <div my-dir [class]=\"exp\"></div>\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 16 /* hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n * <div my-dir [style]=\"exp\"></div>\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 32 /* hasStyleInput */) !== 0;\n}\n\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 */\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* Element */ || //\n type === 1 /* Text */ || //\n type === 4 /* Container */ || //\n type === 8 /* ElementContainer */ || //\n type === 32 /* Icu */ || //\n type === 16 /* Projection */ || //\n type === 64 /* Placeholder */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n const isProc = isProceduralRenderer(renderer);\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n isProc ?\n renderer.setAttribute(native, attrName, attrVal, namespaceURI) :\n native.setAttributeNS(namespaceURI, attrName, attrVal);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n if (isProc) {\n renderer.setProperty(native, attrName, attrVal);\n }\n }\n else {\n isProc ?\n renderer.setAttribute(native, attrName, attrVal) :\n native.setAttribute(attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* Bindings */ || marker === 4 /* Template */ ||\n marker === 6 /* I18n */;\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* ImplicitAttributes */ ||\n srcMarker === 2 /* Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\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/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n ngDevMode && assertNumber(parentLocation, 'Number expected');\n ngDevMode && assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* InjectorIndexMask */;\n ngDevMode &&\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n return parentLocation & 32767 /* InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // <ng-template> tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n\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/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n // First determine the `parentTNode` location. The parent pointer differs based on `TView.type`.\n const tView = lViewCursor[TVIEW];\n const tViewType = tView.type;\n if (tViewType === 2 /* Embedded */) {\n ngDevMode &&\n assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n parentTNode = tView.declTNode;\n }\n else if (tViewType === 1 /* Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n parentTNode = lViewCursor[T_HOST];\n }\n else {\n ngDevMode && assertEqual(tView.type, 0 /* Root */, 'Root type expected');\n parentTNode = null;\n }\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset << 16 /* ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * <my-component title=\"Hello\"></my-component>\n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* AnyContainer */ | 3 /* AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR$1];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return (flags & InjectFlags.Host) ?\n notFoundValueOrThrow(notFoundValue, token, flags) :\n lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n const value = bloomHash(flags);\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n }\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\nconst NOT_FOUND = {};\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && ((tNode.type & 3 /* AnyRNode */) !== 0));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && providerTokenOrDef.type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, 'Because flags do not contain \\`SkipSelf\\' we expect this to always succeed.');\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, flags, notFoundValue);\n }\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return t => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n\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/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\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 */\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\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/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));\n\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/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n * ```\n * interface MyInterface {...}\n * const myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));\n * // myInterface is inferred to be MyInterface.\n * ```\n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the `inject` function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\n * mentioned above, `'root'` is the default value for `providedIn`.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\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/**\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\n * that will populate the `entryComponents` field of components and NgModules\n * based on its `useValue` property value.\n * All components that are referenced in the `useValue` value (either directly\n * or in a nested array or map) are added to the `entryComponents` property.\n *\n * @usageNotes\n *\n * The following example shows how the router can populate the `entryComponents`\n * field of an NgModule based on a router configuration that refers\n * to components.\n *\n * ```typescript\n * // helper function inside the router\n * function provideRoutes(routes) {\n * return [\n * {provide: ROUTES, useValue: routes},\n * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\n * ];\n * }\n *\n * // user code\n * let routes = [\n * {path: '/root', component: RootComp},\n * {path: '/teams', component: TeamsComp}\n * ];\n *\n * @NgModule({\n * providers: [provideRoutes(routes)]\n * })\n * class ModuleWithRoutes {}\n * ```\n *\n * @publicApi\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\n */\nconst ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents');\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\n/**\n * Base class for query metadata.\n *\n * @see `ContentChildren`.\n * @see `ContentChild`.\n * @see `ViewChildren`.\n * @see `ViewChild`.\n *\n * @publicApi\n */\nclass Query {\n}\n/**\n * ContentChildren decorator and metadata.\n *\n *\n * @Annotation\n * @publicApi\n */\nconst ContentChildren = makePropDecorator('ContentChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data)), Query);\n/**\n * ContentChild decorator and metadata.\n *\n *\n * @Annotation\n *\n * @publicApi\n */\nconst ContentChild = makePropDecorator('ContentChild', (selector, data = {}) => (Object.assign({ selector, first: true, isViewQuery: false, descendants: true }, data)), Query);\n/**\n * ViewChildren decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data)), Query);\n/**\n * ViewChild decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChild = makePropDecorator('ViewChild', (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data)), Query);\n\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 */\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\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 */\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request\n .type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message +=\n `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message +=\n `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message +=\n `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message +=\n `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message +=\n `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\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/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\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/**\n * Equivalent to ES6 spread, add each item to an array.\n *\n * @param items The items to add\n * @param arr The array to which you want to add the items\n */\nfunction addAllToArray(items, arr) {\n for (let i = 0; i < items.length; i++) {\n arr.push(items[i]);\n }\n}\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list, dst) {\n if (dst === undefined)\n dst = list;\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n if (Array.isArray(item)) {\n // we need to inline it.\n if (dst === list) {\n // Our assumption that the list was already flat was wrong and\n // we need to clone flat since we need to write to it.\n dst = list.slice(0, i);\n }\n flatten(item, dst);\n }\n else if (dst !== list) {\n dst.push(item);\n }\n }\n return dst;\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Insert a `value` into an `array` so that the array remains sorted.\n *\n * NOTE:\n * - Duplicates are not allowed, and are ignored.\n * - This uses binary search algorithm for fast inserts.\n *\n * @param array A sorted array to insert into.\n * @param value The value to insert.\n * @returns index of the inserted value.\n */\nfunction arrayInsertSorted(array, value) {\n let index = arrayIndexOfSorted(array, value);\n if (index < 0) {\n // if we did not find it insert it.\n index = ~index;\n arrayInsert(array, index, value);\n }\n return index;\n}\n/**\n * Remove `value` from a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to remove from.\n * @param value The value to remove.\n * @returns index of the removed value.\n * - positive index if value found and removed.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction arrayRemoveSorted(array, value) {\n const index = arrayIndexOfSorted(array, value);\n if (index >= 0) {\n arraySplice(array, index, 1);\n }\n return index;\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\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/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\).*)\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{[^}]*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n isReflectionEnabled() {\n return true;\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect && this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n guards(type) {\n return {};\n }\n getter(name) {\n return new Function('o', 'return o.' + name + ';');\n }\n setter(name) {\n return new Function('o', 'v', 'return o.' + name + ' = v;');\n }\n method(name) {\n const functionBody = `if (!o.${name}) throw new Error('\"${name}\" is undefined');\n return o.${name}.apply(o, args);`;\n return new Function('o', 'args', functionBody);\n }\n // There is not a concept of import uri in Js, but this is useful in developing Dart applications.\n importUri(type) {\n // StaticSymbol\n if (typeof type === 'object' && type['filePath']) {\n return type['filePath'];\n }\n // Runtime type\n return `./${stringify(type)}`;\n }\n resourceUri(type) {\n return `./${stringify(type)}`;\n }\n resolveIdentifier(name, moduleUrl, members, runtime) {\n return runtime;\n }\n resolveEnum(enumIdentifier, name) {\n return enumIdentifier[name];\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\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 */\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\nconst USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `inject() must be called from an injection context` :\n '';\n throw new RuntimeError(203 /* MISSING_INJECTION_CONTEXT */, errorMessage);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n return _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n const msg = ngDevMode ?\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.` :\n 'invalid';\n throw new Error(msg);\n}\n/**\n * Injects a token from the currently active injector.\n *\n * Must be used in the context of a factory function such as one defined for an\n * `InjectionToken`. Throws an error if not called from such a context.\n *\n * Within such a factory function, using this function to request injection of a dependency\n * is faster and more type-safe than providing an additional array of dependencies\n * (as has been common with `useFactory` providers).\n *\n * @param token The injection token for the dependency to be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\n * @returns the injected value if injection is successful, `null` otherwise.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nconst inject = ɵɵinject;\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'Arguments array must have arguments.' :\n '';\n throw new RuntimeError(900 /* INVALID_DIFFER_INPUT */, errorMessage);\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.substr(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\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/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nmakeParamDecorator('Inject', (token) => ({ token })), -1 /* Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* Host */);\n\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 */\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map(dep => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new Error(`Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\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/**\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\n *\n * Example:\n * ```\n * @Component({\n * selector: 'my-comp',\n * templateUrl: 'my-comp.html', // This requires asynchronous resolution\n * })\n * class MyComponent{\n * }\n *\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\n *\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\n *\n * // Use browser's `fetch()` function as the default resource resolution strategy.\n * resolveComponentResources(fetch).then(() => {\n * // After resolution all URLs have been converted into `template` strings.\n * renderComponent(MyComponent);\n * });\n *\n * ```\n *\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\n * to call this method outside JIT mode.\n *\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\n */\nfunction resolveComponentResources(resourceResolver) {\n // Store all promises which are fetching the resources.\n const componentResolved = [];\n // Cache so that we don't fetch the same resource more than once.\n const urlMap = new Map();\n function cachedResourceResolve(url) {\n let promise = urlMap.get(url);\n if (!promise) {\n const resp = resourceResolver(url);\n urlMap.set(url, promise = resp.then(unwrapResponse));\n }\n return promise;\n }\n componentResourceResolutionQueue.forEach((component, type) => {\n const promises = [];\n if (component.templateUrl) {\n promises.push(cachedResourceResolve(component.templateUrl).then((template) => {\n component.template = template;\n }));\n }\n const styleUrls = component.styleUrls;\n const styles = component.styles || (component.styles = []);\n const styleOffset = component.styles.length;\n styleUrls && styleUrls.forEach((styleUrl, index) => {\n styles.push(''); // pre-allocate array.\n promises.push(cachedResourceResolve(styleUrl).then((style) => {\n styles[styleOffset + index] = style;\n styleUrls.splice(styleUrls.indexOf(styleUrl), 1);\n if (styleUrls.length == 0) {\n component.styleUrls = undefined;\n }\n }));\n });\n const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type));\n componentResolved.push(fullyResolved);\n });\n clearResolutionOfComponentResourcesQueue();\n return Promise.all(componentResolved).then(() => undefined);\n}\nlet componentResourceResolutionQueue = new Map();\n// Track when existing ɵcmp for a Type is waiting on resources.\nconst componentDefPendingResolution = new Set();\nfunction maybeQueueResolutionOfComponentResources(type, metadata) {\n if (componentNeedsResolution(metadata)) {\n componentResourceResolutionQueue.set(type, metadata);\n componentDefPendingResolution.add(type);\n }\n}\nfunction isComponentDefPendingResolution(type) {\n return componentDefPendingResolution.has(type);\n}\nfunction componentNeedsResolution(component) {\n return !!((component.templateUrl && !component.hasOwnProperty('template')) ||\n component.styleUrls && component.styleUrls.length);\n}\nfunction clearResolutionOfComponentResourcesQueue() {\n const old = componentResourceResolutionQueue;\n componentResourceResolutionQueue = new Map();\n return old;\n}\nfunction restoreComponentResolutionQueue(queue) {\n componentDefPendingResolution.clear();\n queue.forEach((_, type) => componentDefPendingResolution.add(type));\n componentResourceResolutionQueue = queue;\n}\nfunction isComponentResourceResolutionQueueEmpty() {\n return componentResourceResolutionQueue.size === 0;\n}\nfunction unwrapResponse(response) {\n return typeof response == 'string' ? response : response.text();\n}\nfunction componentDefResolved(type) {\n componentDefPendingResolution.delete(type);\n}\n\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/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy$1;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy$1() {\n if (policy$1 === undefined) {\n policy$1 = null;\n if (_global.trustedTypes) {\n try {\n policy$1 = _global.trustedTypes.createPolicy('angular', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy$1;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will cause a browser to load and execute a resource, e.g. when\n * assigning to script.src.\n */\nfunction trustedScriptURLFromString(url) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments. It\n * is only available in development mode, and should be stripped out of\n * production code.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from development code, as use in production code can lead to\n * XSS vulnerabilities.\n */\nfunction newTrustedFunctionForDev(...args) {\n if (typeof ngDevMode === 'undefined') {\n throw new Error('newTrustedFunctionForDev should never be called in production');\n }\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\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/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy = _global.trustedTypes\n .createPolicy('angular#unsafe-bypass', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedHTMLFromStringBypass(html) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptFromStringBypass(script) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptURLFromStringBypass(url) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n\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 */\nclass SafeValueImpl {\n constructor(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n }\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see https://g.co/ng/security#xss)`;\n }\n}\nclass SafeHtmlImpl extends SafeValueImpl {\n getTypeName() {\n return \"HTML\" /* Html */;\n }\n}\nclass SafeStyleImpl extends SafeValueImpl {\n getTypeName() {\n return \"Style\" /* Style */;\n }\n}\nclass SafeScriptImpl extends SafeValueImpl {\n getTypeName() {\n return \"Script\" /* Script */;\n }\n}\nclass SafeUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"URL\" /* Url */;\n }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"ResourceURL\" /* ResourceUrl */;\n }\n}\nfunction unwrapSafeValue(value) {\n return value instanceof SafeValueImpl ? value.changingThisBreaksApplicationSecurity :\n value;\n}\nfunction allowSanitizationBypassAndThrow(value, type) {\n const actualType = getSanitizationBypassType(value);\n if (actualType != null && actualType !== type) {\n // Allow ResourceURLs in URL contexts, they are strictly more trusted.\n if (actualType === \"ResourceURL\" /* ResourceUrl */ && type === \"URL\" /* Url */)\n return true;\n throw new Error(`Required a safe ${type}, got a ${actualType} (see https://g.co/ng/security#xss)`);\n }\n return actualType === type;\n}\nfunction getSanitizationBypassType(value) {\n return value instanceof SafeValueImpl && value.getTypeName() || null;\n}\n/**\n * Mark `html` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\n *\n * @param trustedHtml `html` string which needs to be implicitly trusted.\n * @returns a `html` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustHtml(trustedHtml) {\n return new SafeHtmlImpl(trustedHtml);\n}\n/**\n * Mark `style` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\n *\n * @param trustedStyle `style` string which needs to be implicitly trusted.\n * @returns a `style` hich has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustStyle(trustedStyle) {\n return new SafeStyleImpl(trustedStyle);\n}\n/**\n * Mark `script` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\n *\n * @param trustedScript `script` string which needs to be implicitly trusted.\n * @returns a `script` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustScript(trustedScript) {\n return new SafeScriptImpl(trustedScript);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\n *\n * @param trustedUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustUrl(trustedUrl) {\n return new SafeUrlImpl(trustedUrl);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\n *\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustResourceUrl(trustedResourceUrl) {\n return new SafeResourceUrlImpl(trustedResourceUrl);\n}\n\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/**\n * This helper is used to get hold of an inert tree of DOM elements containing dirty HTML\n * that needs sanitizing.\n * Depending upon browser support we use one of two strategies for doing this.\n * Default: DOMParser strategy\n * Fallback: InertDocument strategy\n */\nfunction getInertBodyHelper(defaultDoc) {\n const inertDocumentHelper = new InertDocumentHelper(defaultDoc);\n return isDOMParserAvailable() ? new DOMParserHelper(inertDocumentHelper) : inertDocumentHelper;\n}\n/**\n * Uses DOMParser to create and fill an inert body element.\n * This is the default strategy used in browsers that support it.\n */\nclass DOMParserHelper {\n constructor(inertDocumentHelper) {\n this.inertDocumentHelper = inertDocumentHelper;\n }\n getInertBodyElement(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `<meta>` do not get hoisted to the\n // `<head>` tag. Note that the `<body>` tag is closed implicitly to prevent unclosed tags\n // in `html` from consuming the otherwise explicit `</body>` tag.\n html = '<body><remove></remove>' + html;\n try {\n const body = new window.DOMParser()\n .parseFromString(trustedHTMLFromString(html), 'text/html')\n .body;\n if (body === null) {\n // In some browsers (e.g. Mozilla/5.0 iPad AppleWebKit Mobile) the `body` property only\n // becomes available in the following tick of the JS engine. In that case we fall back to\n // the `inertDocumentHelper` instead.\n return this.inertDocumentHelper.getInertBodyElement(html);\n }\n body.removeChild(body.firstChild);\n return body;\n }\n catch (_a) {\n return null;\n }\n }\n}\n/**\n * Use an HTML5 `template` element, if supported, or an inert body element created via\n * `createHtmlDocument` to create and fill an inert DOM element.\n * This is the fallback strategy if the browser does not support DOMParser.\n */\nclass InertDocumentHelper {\n constructor(defaultDoc) {\n this.defaultDoc = defaultDoc;\n this.inertDocument = this.defaultDoc.implementation.createHTMLDocument('sanitization-inert');\n if (this.inertDocument.body == null) {\n // usually there should be only one body element in the document, but IE doesn't have any, so\n // we need to create one.\n const inertHtml = this.inertDocument.createElement('html');\n this.inertDocument.appendChild(inertHtml);\n const inertBodyElement = this.inertDocument.createElement('body');\n inertHtml.appendChild(inertBodyElement);\n }\n }\n getInertBodyElement(html) {\n // Prefer using <template> element if supported.\n const templateEl = this.inertDocument.createElement('template');\n if ('content' in templateEl) {\n templateEl.innerHTML = trustedHTMLFromString(html);\n return templateEl;\n }\n // Note that previously we used to do something like `this.inertDocument.body.innerHTML = html`\n // and we returned the inert `body` node. This was changed, because IE seems to treat setting\n // `innerHTML` on an inserted element differently, compared to one that hasn't been inserted\n // yet. In particular, IE appears to split some of the text into multiple text nodes rather\n // than keeping them in a single one which ends up messing with Ivy's i18n parsing further\n // down the line. This has been worked around by creating a new inert `body` and using it as\n // the root node in which we insert the HTML.\n const inertBody = this.inertDocument.createElement('body');\n inertBody.innerHTML = trustedHTMLFromString(html);\n // Support: IE 11 only\n // strip custom-namespaced attributes on IE<=11\n if (this.defaultDoc.documentMode) {\n this.stripCustomNsAttrs(inertBody);\n }\n return inertBody;\n }\n /**\n * When IE11 comes across an unknown namespaced attribute e.g. 'xlink:foo' it adds 'xmlns:ns1'\n * attribute to declare ns1 namespace and prefixes the attribute with 'ns1' (e.g.\n * 'ns1:xlink:foo').\n *\n * This is undesirable since we don't want to allow any of these custom attributes. This method\n * strips them all.\n */\n stripCustomNsAttrs(el) {\n const elAttrs = el.attributes;\n // loop backwards so that we can support removals.\n for (let i = elAttrs.length - 1; 0 < i; i--) {\n const attrib = elAttrs.item(i);\n const attrName = attrib.name;\n if (attrName === 'xmlns:ns1' || attrName.indexOf('ns1:') === 0) {\n el.removeAttribute(attrName);\n }\n }\n let childNode = el.firstChild;\n while (childNode) {\n if (childNode.nodeType === Node.ELEMENT_NODE)\n this.stripCustomNsAttrs(childNode);\n childNode = childNode.nextSibling;\n }\n }\n}\n/**\n * We need to determine whether the DOMParser exists in the global context and\n * supports parsing HTML; HTML parsing support is not as wide as other formats, see\n * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#Browser_compatibility.\n *\n * @suppress {uselessCode}\n */\nfunction isDOMParserAvailable() {\n try {\n return !!new window.DOMParser().parseFromString(trustedHTMLFromString(''), 'text/html');\n }\n catch (_a) {\n return false;\n }\n}\n\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/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * This regular expression matches a subset of URLs that will not cause script\n * execution if used in URL context within a HTML document. Specifically, this\n * regular expression matches if (comment from here on and regex copied from\n * Soy's EscapingConventions):\n * (1) Either an allowed protocol (http, https, mailto or ftp).\n * (2) or no protocol. A protocol must be followed by a colon. The below\n * allows that by allowing colons only after one of the characters [/?#].\n * A colon after a hash (#) must be in the fragment.\n * Otherwise, a colon after a (?) must be in a query.\n * Otherwise, a colon after a single solidus (/) must be in a path.\n * Otherwise, a colon after a double solidus (//) must be in the authority\n * (before port).\n *\n * The pattern disallows &, used in HTML entity declarations before\n * one of the characters in [/?#]. This disallows HTML entities used in the\n * protocol name, which should never happen, e.g. \"http\" for \"http\".\n * It also disallows HTML entities in the first path part of a relative path,\n * e.g. \"foo<bar/baz\". Our existing escaping functions should not produce\n * that. More importantly, it disallows masking of a colon,\n * e.g. \"javascript:...\".\n *\n * This regular expression was taken from the Closure sanitization library.\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;\n/* A pattern that matches safe srcset values */\nconst SAFE_SRCSET_PATTERN = /^(?:(?:https?|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n/** A pattern that matches safe data URLs. Only matches image, video and audio types. */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\\/]+=*$/i;\nfunction _sanitizeUrl(url) {\n url = String(url);\n if (url.match(SAFE_URL_PATTERN) || url.match(DATA_URL_PATTERN))\n return url;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`WARNING: sanitizing unsafe URL value ${url} (see https://g.co/ng/security#xss)`);\n }\n return 'unsafe:' + url;\n}\nfunction sanitizeSrcset(srcset) {\n srcset = String(srcset);\n return srcset.split(',').map((srcset) => _sanitizeUrl(srcset.trim())).join(', ');\n}\n\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 */\nfunction tagSet(tags) {\n const res = {};\n for (const t of tags.split(','))\n res[t] = true;\n return res;\n}\nfunction merge(...sets) {\n const res = {};\n for (const s of sets) {\n for (const v in s) {\n if (s.hasOwnProperty(v))\n res[v] = true;\n }\n }\n return res;\n}\n// Good source of info about elements and attributes\n// https://html.spec.whatwg.org/#semantics\n// https://simon.html5.org/html-elements\n// Safe Void Elements - HTML5\n// https://html.spec.whatwg.org/#void-elements\nconst VOID_ELEMENTS = tagSet('area,br,col,hr,img,wbr');\n// Elements that you can, intentionally, leave open (and which close themselves)\n// https://html.spec.whatwg.org/#optional-tags\nconst OPTIONAL_END_TAG_BLOCK_ELEMENTS = tagSet('colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr');\nconst OPTIONAL_END_TAG_INLINE_ELEMENTS = tagSet('rp,rt');\nconst OPTIONAL_END_TAG_ELEMENTS = merge(OPTIONAL_END_TAG_INLINE_ELEMENTS, OPTIONAL_END_TAG_BLOCK_ELEMENTS);\n// Safe Block Elements - HTML5\nconst BLOCK_ELEMENTS = merge(OPTIONAL_END_TAG_BLOCK_ELEMENTS, tagSet('address,article,' +\n 'aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,' +\n 'h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul'));\n// Inline Elements - HTML5\nconst INLINE_ELEMENTS = merge(OPTIONAL_END_TAG_INLINE_ELEMENTS, tagSet('a,abbr,acronym,audio,b,' +\n 'bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,' +\n 'samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video'));\nconst VALID_ELEMENTS = merge(VOID_ELEMENTS, BLOCK_ELEMENTS, INLINE_ELEMENTS, OPTIONAL_END_TAG_ELEMENTS);\n// Attributes that have href and hence need to be sanitized\nconst URI_ATTRS = tagSet('background,cite,href,itemtype,longdesc,poster,src,xlink:href');\n// Attributes that have special href set hence need to be sanitized\nconst SRCSET_ATTRS = tagSet('srcset');\nconst HTML_ATTRS = tagSet('abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,' +\n 'compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,' +\n 'ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,' +\n 'scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,' +\n 'valign,value,vspace,width');\n// Accessibility attributes as per WAI-ARIA 1.1 (W3C Working Draft 14 December 2018)\nconst ARIA_ATTRS = tagSet('aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,' +\n 'aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,' +\n 'aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,' +\n 'aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,' +\n 'aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,' +\n 'aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,' +\n 'aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext');\n// NB: This currently consciously doesn't support SVG. SVG sanitization has had several security\n// issues in the past, so it seems safer to leave it out if possible. If support for binding SVG via\n// innerHTML is required, SVG attributes should be added here.\n// NB: Sanitization does not allow <form> elements or other active elements (<button> etc). Those\n// can be sanitized, but they increase security surface area without a legitimate use case, so they\n// are left out here.\nconst VALID_ATTRS = merge(URI_ATTRS, SRCSET_ATTRS, HTML_ATTRS, ARIA_ATTRS);\n// Elements whose content should not be traversed/preserved, if the elements themselves are invalid.\n//\n// Typically, `<invalid>Some content</invalid>` would traverse (and in this case preserve)\n// `Some content`, but strip `invalid-element` opening/closing tags. For some elements, though, we\n// don't want to preserve the content, if the elements themselves are going to be removed.\nconst SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS = tagSet('script,style,template');\n/**\n * SanitizingHtmlSerializer serializes a DOM fragment, stripping out any unsafe elements and unsafe\n * attributes.\n */\nclass SanitizingHtmlSerializer {\n constructor() {\n // Explicitly track if something was stripped, to avoid accidentally warning of sanitization just\n // because characters were re-encoded.\n this.sanitizedSomething = false;\n this.buf = [];\n }\n sanitizeChildren(el) {\n // This cannot use a TreeWalker, as it has to run on Angular's various DOM adapters.\n // However this code never accesses properties off of `document` before deleting its contents\n // again, so it shouldn't be vulnerable to DOM clobbering.\n let current = el.firstChild;\n let traverseContent = true;\n while (current) {\n if (current.nodeType === Node.ELEMENT_NODE) {\n traverseContent = this.startElement(current);\n }\n else if (current.nodeType === Node.TEXT_NODE) {\n this.chars(current.nodeValue);\n }\n else {\n // Strip non-element, non-text nodes.\n this.sanitizedSomething = true;\n }\n if (traverseContent && current.firstChild) {\n current = current.firstChild;\n continue;\n }\n while (current) {\n // Leaving the element. Walk up and to the right, closing tags as we go.\n if (current.nodeType === Node.ELEMENT_NODE) {\n this.endElement(current);\n }\n let next = this.checkClobberedElement(current, current.nextSibling);\n if (next) {\n current = next;\n break;\n }\n current = this.checkClobberedElement(current, current.parentNode);\n }\n }\n return this.buf.join('');\n }\n /**\n * Sanitizes an opening element tag (if valid) and returns whether the element's contents should\n * be traversed. Element content must always be traversed (even if the element itself is not\n * valid/safe), unless the element is one of `SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS`.\n *\n * @param element The element to sanitize.\n * @return True if the element's contents should be traversed.\n */\n startElement(element) {\n const tagName = element.nodeName.toLowerCase();\n if (!VALID_ELEMENTS.hasOwnProperty(tagName)) {\n this.sanitizedSomething = true;\n return !SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS.hasOwnProperty(tagName);\n }\n this.buf.push('<');\n this.buf.push(tagName);\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const elAttr = elAttrs.item(i);\n const attrName = elAttr.name;\n const lower = attrName.toLowerCase();\n if (!VALID_ATTRS.hasOwnProperty(lower)) {\n this.sanitizedSomething = true;\n continue;\n }\n let value = elAttr.value;\n // TODO(martinprobst): Special case image URIs for data:image/...\n if (URI_ATTRS[lower])\n value = _sanitizeUrl(value);\n if (SRCSET_ATTRS[lower])\n value = sanitizeSrcset(value);\n this.buf.push(' ', attrName, '=\"', encodeEntities(value), '\"');\n }\n this.buf.push('>');\n return true;\n }\n endElement(current) {\n const tagName = current.nodeName.toLowerCase();\n if (VALID_ELEMENTS.hasOwnProperty(tagName) && !VOID_ELEMENTS.hasOwnProperty(tagName)) {\n this.buf.push('</');\n this.buf.push(tagName);\n this.buf.push('>');\n }\n }\n chars(chars) {\n this.buf.push(encodeEntities(chars));\n }\n checkClobberedElement(node, nextNode) {\n if (nextNode &&\n (node.compareDocumentPosition(nextNode) &\n Node.DOCUMENT_POSITION_CONTAINED_BY) === Node.DOCUMENT_POSITION_CONTAINED_BY) {\n throw new Error(`Failed to sanitize html because the element is clobbered: ${node.outerHTML}`);\n }\n return nextNode;\n }\n}\n// Regular Expressions for parsing tags and attributes\nconst SURROGATE_PAIR_REGEXP = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n// ! to ~ is the ASCII range.\nconst NON_ALPHANUMERIC_REGEXP = /([^\\#-~ |!])/g;\n/**\n * Escapes all potentially dangerous characters, so that the\n * resulting string can be safely inserted into attribute or\n * element text.\n * @param value\n */\nfunction encodeEntities(value) {\n return value.replace(/&/g, '&')\n .replace(SURROGATE_PAIR_REGEXP, function (match) {\n const hi = match.charCodeAt(0);\n const low = match.charCodeAt(1);\n return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';\n })\n .replace(NON_ALPHANUMERIC_REGEXP, function (match) {\n return '&#' + match.charCodeAt(0) + ';';\n })\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\nlet inertBodyHelper;\n/**\n * Sanitizes the given unsafe, untrusted HTML fragment, and returns HTML text that is safe to add to\n * the DOM in a browser environment.\n */\nfunction _sanitizeHtml(defaultDoc, unsafeHtmlInput) {\n let inertBodyElement = null;\n try {\n inertBodyHelper = inertBodyHelper || getInertBodyHelper(defaultDoc);\n // Make sure unsafeHtml is actually a string (TypeScript types are not enforced at runtime).\n let unsafeHtml = unsafeHtmlInput ? String(unsafeHtmlInput) : '';\n inertBodyElement = inertBodyHelper.getInertBodyElement(unsafeHtml);\n // mXSS protection. Repeatedly parse the document to make sure it stabilizes, so that a browser\n // trying to auto-correct incorrect HTML cannot cause formerly inert HTML to become dangerous.\n let mXSSAttempts = 5;\n let parsedHtml = unsafeHtml;\n do {\n if (mXSSAttempts === 0) {\n throw new Error('Failed to sanitize html because the input is unstable');\n }\n mXSSAttempts--;\n unsafeHtml = parsedHtml;\n parsedHtml = inertBodyElement.innerHTML;\n inertBodyElement = inertBodyHelper.getInertBodyElement(unsafeHtml);\n } while (unsafeHtml !== parsedHtml);\n const sanitizer = new SanitizingHtmlSerializer();\n const safeHtml = sanitizer.sanitizeChildren(getTemplateContent(inertBodyElement) || inertBodyElement);\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && sanitizer.sanitizedSomething) {\n console.warn('WARNING: sanitizing HTML stripped some content, see https://g.co/ng/security#xss');\n }\n return trustedHTMLFromString(safeHtml);\n }\n finally {\n // In case anything goes wrong, clear out inertElement to reset the entire DOM structure.\n if (inertBodyElement) {\n const parent = getTemplateContent(inertBodyElement) || inertBodyElement;\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n }\n}\nfunction getTemplateContent(el) {\n return 'content' in el /** Microsoft/TypeScript#21517 */ && isTemplateElement(el) ?\n el.content :\n null;\n}\nfunction isTemplateElement(el) {\n return el.nodeType === Node.ELEMENT_NODE && el.nodeName === 'TEMPLATE';\n}\n\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/**\n * A SecurityContext marks a location that has dangerous security implications, e.g. a DOM property\n * like `innerHTML` that could cause Cross Site Scripting (XSS) security bugs when improperly\n * handled.\n *\n * See DomSanitizer for more details on security in Angular applications.\n *\n * @publicApi\n */\nvar SecurityContext;\n(function (SecurityContext) {\n SecurityContext[SecurityContext[\"NONE\"] = 0] = \"NONE\";\n SecurityContext[SecurityContext[\"HTML\"] = 1] = \"HTML\";\n SecurityContext[SecurityContext[\"STYLE\"] = 2] = \"STYLE\";\n SecurityContext[SecurityContext[\"SCRIPT\"] = 3] = \"SCRIPT\";\n SecurityContext[SecurityContext[\"URL\"] = 4] = \"URL\";\n SecurityContext[SecurityContext[\"RESOURCE_URL\"] = 5] = \"RESOURCE_URL\";\n})(SecurityContext || (SecurityContext = {}));\n\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/**\n * An `html` sanitizer which converts untrusted `html` **string** into trusted string by removing\n * dangerous content.\n *\n * This method parses the `html` and locates potentially dangerous content (such as urls and\n * javascript) and removes it.\n *\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustHtml}.\n *\n * @param unsafeHtml untrusted `html`, typically from the user.\n * @returns `html` string which is safe to display to user, because all of the dangerous javascript\n * and urls have been removed.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeHtml(unsafeHtml) {\n const sanitizer = getSanitizer();\n if (sanitizer) {\n return trustedHTMLFromStringBypass(sanitizer.sanitize(SecurityContext.HTML, unsafeHtml) || '');\n }\n if (allowSanitizationBypassAndThrow(unsafeHtml, \"HTML\" /* Html */)) {\n return trustedHTMLFromStringBypass(unwrapSafeValue(unsafeHtml));\n }\n return _sanitizeHtml(getDocument(), renderStringify(unsafeHtml));\n}\n/**\n * A `style` sanitizer which converts untrusted `style` **string** into trusted string by removing\n * dangerous content.\n *\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustStyle}.\n *\n * @param unsafeStyle untrusted `style`, typically from the user.\n * @returns `style` string which is safe to bind to the `style` properties.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeStyle(unsafeStyle) {\n const sanitizer = getSanitizer();\n if (sanitizer) {\n return sanitizer.sanitize(SecurityContext.STYLE, unsafeStyle) || '';\n }\n if (allowSanitizationBypassAndThrow(unsafeStyle, \"Style\" /* Style */)) {\n return unwrapSafeValue(unsafeStyle);\n }\n return renderStringify(unsafeStyle);\n}\n/**\n * A `url` sanitizer which converts untrusted `url` **string** into trusted string by removing\n * dangerous\n * content.\n *\n * This method parses the `url` and locates potentially dangerous content (such as javascript) and\n * removes it.\n *\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustUrl}.\n *\n * @param unsafeUrl untrusted `url`, typically from the user.\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\n * all of the dangerous javascript has been removed.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeUrl(unsafeUrl) {\n const sanitizer = getSanitizer();\n if (sanitizer) {\n return sanitizer.sanitize(SecurityContext.URL, unsafeUrl) || '';\n }\n if (allowSanitizationBypassAndThrow(unsafeUrl, \"URL\" /* Url */)) {\n return unwrapSafeValue(unsafeUrl);\n }\n return _sanitizeUrl(renderStringify(unsafeUrl));\n}\n/**\n * A `url` sanitizer which only lets trusted `url`s through.\n *\n * This passes only `url`s marked trusted by calling {@link bypassSanitizationTrustResourceUrl}.\n *\n * @param unsafeResourceUrl untrusted `url`, typically from the user.\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\n * only trusted `url`s have been allowed to pass.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeResourceUrl(unsafeResourceUrl) {\n const sanitizer = getSanitizer();\n if (sanitizer) {\n return trustedScriptURLFromStringBypass(sanitizer.sanitize(SecurityContext.RESOURCE_URL, unsafeResourceUrl) || '');\n }\n if (allowSanitizationBypassAndThrow(unsafeResourceUrl, \"ResourceURL\" /* ResourceUrl */)) {\n return trustedScriptURLFromStringBypass(unwrapSafeValue(unsafeResourceUrl));\n }\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)' :\n '';\n throw new RuntimeError(904 /* UNSAFE_VALUE_IN_RESOURCE_URL */, errorMessage);\n}\n/**\n * A `script` sanitizer which only lets trusted javascript through.\n *\n * This passes only `script`s marked trusted by calling {@link\n * bypassSanitizationTrustScript}.\n *\n * @param unsafeScript untrusted `script`, typically from the user.\n * @returns `url` string which is safe to bind to the `<script>` element such as `<img src>`,\n * because only trusted `scripts` have been allowed to pass.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeScript(unsafeScript) {\n const sanitizer = getSanitizer();\n if (sanitizer) {\n return trustedScriptFromStringBypass(sanitizer.sanitize(SecurityContext.SCRIPT, unsafeScript) || '');\n }\n if (allowSanitizationBypassAndThrow(unsafeScript, \"Script\" /* Script */)) {\n return trustedScriptFromStringBypass(unwrapSafeValue(unsafeScript));\n }\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'unsafe value used in a script context' :\n '';\n throw new RuntimeError(905 /* UNSAFE_VALUE_IN_SCRIPT */, errorMessage);\n}\n/**\n * A template tag function for promoting the associated constant literal to a\n * TrustedHTML. Interpolation is explicitly not allowed.\n *\n * @param html constant template literal containing trusted HTML.\n * @returns TrustedHTML wrapping `html`.\n *\n * @security This is a security-sensitive function and should only be used to\n * convert constant values of attributes and properties found in\n * application-provided Angular templates to TrustedHTML.\n *\n * @codeGenApi\n */\nfunction ɵɵtrustConstantHtml(html) {\n // The following runtime check ensures that the function was called as a\n // template tag (e.g. ɵɵtrustConstantHtml`content`), without any interpolation\n // (e.g. not ɵɵtrustConstantHtml`content ${variable}`). A TemplateStringsArray\n // is an array with a `raw` property that is also an array. The associated\n // template literal has no interpolation if and only if the length of the\n // TemplateStringsArray is 1.\n if (ngDevMode && (!Array.isArray(html) || !Array.isArray(html.raw) || html.length !== 1)) {\n throw new Error(`Unexpected interpolation in trusted HTML constant: ${html.join('?')}`);\n }\n return trustedHTMLFromString(html[0]);\n}\n/**\n * A template tag function for promoting the associated constant literal to a\n * TrustedScriptURL. Interpolation is explicitly not allowed.\n *\n * @param url constant template literal containing a trusted script URL.\n * @returns TrustedScriptURL wrapping `url`.\n *\n * @security This is a security-sensitive function and should only be used to\n * convert constant values of attributes and properties found in\n * application-provided Angular templates to TrustedScriptURL.\n *\n * @codeGenApi\n */\nfunction ɵɵtrustConstantResourceUrl(url) {\n // The following runtime check ensures that the function was called as a\n // template tag (e.g. ɵɵtrustConstantResourceUrl`content`), without any\n // interpolation (e.g. not ɵɵtrustConstantResourceUrl`content ${variable}`). A\n // TemplateStringsArray is an array with a `raw` property that is also an\n // array. The associated template literal has no interpolation if and only if\n // the length of the TemplateStringsArray is 1.\n if (ngDevMode && (!Array.isArray(url) || !Array.isArray(url.raw) || url.length !== 1)) {\n throw new Error(`Unexpected interpolation in trusted URL constant: ${url.join('?')}`);\n }\n return trustedScriptURLFromString(url[0]);\n}\n/**\n * Detects which sanitizer to use for URL property, based on tag name and prop name.\n *\n * The rules are based on the RESOURCE_URL context config from\n * `packages/compiler/src/schema/dom_security_schema.ts`.\n * If tag and prop names don't match Resource URL schema, use URL sanitizer.\n */\nfunction getUrlSanitizer(tag, prop) {\n if ((prop === 'src' &&\n (tag === 'embed' || tag === 'frame' || tag === 'iframe' || tag === 'media' ||\n tag === 'script')) ||\n (prop === 'href' && (tag === 'base' || tag === 'link'))) {\n return ɵɵsanitizeResourceUrl;\n }\n return ɵɵsanitizeUrl;\n}\n/**\n * Sanitizes URL, selecting sanitizer function based on tag and property names.\n *\n * This function is used in case we can't define security context at compile time, when only prop\n * name is available. This happens when we generate host bindings for Directives/Components. The\n * host element is unknown at compile time, so we defer calculation of specific sanitizer to\n * runtime.\n *\n * @param unsafeUrl untrusted `url`, typically from the user.\n * @param tag target element tag name.\n * @param prop name of the property that contains the value.\n * @returns `url` string which is safe to bind.\n *\n * @codeGenApi\n */\nfunction ɵɵsanitizeUrlOrResourceUrl(unsafeUrl, tag, prop) {\n return getUrlSanitizer(tag, prop)(unsafeUrl);\n}\nfunction validateAgainstEventProperties(name) {\n if (name.toLowerCase().startsWith('on')) {\n const errorMessage = `Binding to event property '${name}' is disallowed for security reasons, ` +\n `please use (${name.slice(2)})=...` +\n `\\nIf '${name}' is a directive input, make sure the directive is imported by the` +\n ` current module.`;\n throw new RuntimeError(306 /* INVALID_EVENT_BINDING */, errorMessage);\n }\n}\nfunction validateAgainstEventAttributes(name) {\n if (name.toLowerCase().startsWith('on')) {\n const errorMessage = `Binding to event attribute '${name}' is disallowed for security reasons, ` +\n `please use (${name.slice(2)})=...`;\n throw new RuntimeError(306 /* INVALID_EVENT_BINDING */, errorMessage);\n }\n}\nfunction getSanitizer() {\n const lView = getLView();\n return lView && lView[SANITIZER];\n}\n\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/**\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\n *\n * This function will examine the provided DOM element, component, or directive instance\\'s\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\n * value will be that of the newly created `LContext`.\n *\n * If the monkey-patched value is the `LView` instance then the context value for that\n * target will be created and the monkey-patch reference will be updated. Therefore when this\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\n * directive\\'s monkey-patch values.\n *\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\n * is found which contains a monkey-patch reference. When that occurs then the provided element\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\n * detected for a component/directive instance then it will throw an error (all components and\n * directives should be automatically monkey-patched by ivy).\n *\n * @param target Component, Directive or DOM Node.\n */\nfunction getLContext(target) {\n let mpValue = readPatchedData(target);\n if (mpValue) {\n // only when it's an array is it considered an LView instance\n // ... otherwise it's an already constructed LContext instance\n if (Array.isArray(mpValue)) {\n const lView = mpValue;\n let nodeIndex;\n let component = undefined;\n let directives = undefined;\n if (isComponentInstance(target)) {\n nodeIndex = findViaComponent(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided component was not found in the application');\n }\n component = target;\n }\n else if (isDirectiveInstance(target)) {\n nodeIndex = findViaDirective(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided directive was not found in the application');\n }\n directives = getDirectivesAtNodeIndex(nodeIndex, lView, false);\n }\n else {\n nodeIndex = findViaNativeElement(lView, target);\n if (nodeIndex == -1) {\n return null;\n }\n }\n // the goal is not to fill the entire context full of data because the lookups\n // are expensive. Instead, only the target data (the element, component, container, ICU\n // expression or directive details) are filled into the context. If called multiple times\n // with different target values then the missing target data will be filled in.\n const native = unwrapRNode(lView[nodeIndex]);\n const existingCtx = readPatchedData(native);\n const context = (existingCtx && !Array.isArray(existingCtx)) ?\n existingCtx :\n createLContext(lView, nodeIndex, native);\n // only when the component has been discovered then update the monkey-patch\n if (component && context.component === undefined) {\n context.component = component;\n attachPatchData(context.component, context);\n }\n // only when the directives have been discovered then update the monkey-patch\n if (directives && context.directives === undefined) {\n context.directives = directives;\n for (let i = 0; i < directives.length; i++) {\n attachPatchData(directives[i], context);\n }\n }\n attachPatchData(context.native, context);\n mpValue = context;\n }\n }\n else {\n const rElement = target;\n ngDevMode && assertDomNode(rElement);\n // if the context is not found then we need to traverse upwards up the DOM\n // to find the nearest element that has already been monkey patched with data\n let parent = rElement;\n while (parent = parent.parentNode) {\n const parentContext = readPatchedData(parent);\n if (parentContext) {\n let lView;\n if (Array.isArray(parentContext)) {\n lView = parentContext;\n }\n else {\n lView = parentContext.lView;\n }\n // the edge of the app was also reached here through another means\n // (maybe because the DOM was changed manually).\n if (!lView) {\n return null;\n }\n const index = findViaNativeElement(lView, rElement);\n if (index >= 0) {\n const native = unwrapRNode(lView[index]);\n const context = createLContext(lView, index, native);\n attachPatchData(native, context);\n mpValue = context;\n break;\n }\n }\n }\n }\n return mpValue || null;\n}\n/**\n * Creates an empty instance of a `LContext` context\n */\nfunction createLContext(lView, nodeIndex, native) {\n return {\n lView,\n nodeIndex,\n native,\n component: undefined,\n directives: undefined,\n localRefs: undefined,\n };\n}\n/**\n * Takes a component instance and returns the view for that component.\n *\n * @param componentInstance\n * @returns The component's view\n */\nfunction getComponentViewByInstance(componentInstance) {\n let lView = readPatchedData(componentInstance);\n let view;\n if (Array.isArray(lView)) {\n const nodeIndex = findViaComponent(lView, componentInstance);\n view = getComponentLViewByIndex(nodeIndex, lView);\n const context = createLContext(lView, nodeIndex, view[HOST]);\n context.component = componentInstance;\n attachPatchData(componentInstance, context);\n attachPatchData(context.native, context);\n }\n else {\n const context = lView;\n view = getComponentLViewByIndex(context.nodeIndex, context.lView);\n }\n return view;\n}\n/**\n * This property will be monkey-patched on elements, components and directives.\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\n/**\n * Assigns the given data to the given target (which could be a component,\n * directive or DOM node instance) using monkey-patching.\n */\nfunction attachPatchData(target, data) {\n ngDevMode && assertDefined(target, 'Target expected');\n target[MONKEY_PATCH_KEY_NAME] = data;\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n return target[MONKEY_PATCH_KEY_NAME] || null;\n}\nfunction readPatchedLView(target) {\n const value = readPatchedData(target);\n if (value) {\n return Array.isArray(value) ? value : value.lView;\n }\n return null;\n}\nfunction isComponentInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵcmp;\n}\nfunction isDirectiveInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵdir;\n}\n/**\n * Locates the element within the given LView and returns the matching index\n */\nfunction findViaNativeElement(lView, target) {\n const tView = lView[TVIEW];\n for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {\n if (unwrapRNode(lView[i]) === target) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Locates the next tNode (child, sibling or parent).\n */\nfunction traverseNextElement(tNode) {\n if (tNode.child) {\n return tNode.child;\n }\n else if (tNode.next) {\n return tNode.next;\n }\n else {\n // Let's take the following template: <div><span>text</span></div><component/>\n // After checking the text node, we need to find the next parent that has a \"next\" TNode,\n // in this case the parent `div`, so that we can find the component.\n while (tNode.parent && !tNode.parent.next) {\n tNode = tNode.parent;\n }\n return tNode.parent && tNode.parent.next;\n }\n}\n/**\n * Locates the component within the given LView and returns the matching index\n */\nfunction findViaComponent(lView, componentInstance) {\n const componentIndices = lView[TVIEW].components;\n if (componentIndices) {\n for (let i = 0; i < componentIndices.length; i++) {\n const elementComponentIndex = componentIndices[i];\n const componentView = getComponentLViewByIndex(elementComponentIndex, lView);\n if (componentView[CONTEXT] === componentInstance) {\n return elementComponentIndex;\n }\n }\n }\n else {\n const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView);\n const rootComponent = rootComponentView[CONTEXT];\n if (rootComponent === componentInstance) {\n // we are dealing with the root element here therefore we know that the\n // element is the very first element after the HEADER data in the lView\n return HEADER_OFFSET;\n }\n }\n return -1;\n}\n/**\n * Locates the directive within the given LView and returns the matching index\n */\nfunction findViaDirective(lView, directiveInstance) {\n // if a directive is monkey patched then it will (by default)\n // have a reference to the LView of the current view. The\n // element bound to the directive being search lives somewhere\n // in the view data. We loop through the nodes and check their\n // list of directives for the instance.\n let tNode = lView[TVIEW].firstChild;\n while (tNode) {\n const directiveIndexStart = tNode.directiveStart;\n const directiveIndexEnd = tNode.directiveEnd;\n for (let i = directiveIndexStart; i < directiveIndexEnd; i++) {\n if (lView[i] === directiveInstance) {\n return tNode.index;\n }\n }\n tNode = traverseNextElement(tNode);\n }\n return -1;\n}\n/**\n * Returns a list of directives extracted from the given view based on the\n * provided list of directive index values.\n *\n * @param nodeIndex The node index\n * @param lView The target view data\n * @param includeComponents Whether or not to include components in returned directives\n */\nfunction getDirectivesAtNodeIndex(nodeIndex, lView, includeComponents) {\n const tNode = lView[TVIEW].data[nodeIndex];\n let directiveStartIndex = tNode.directiveStart;\n if (directiveStartIndex == 0)\n return EMPTY_ARRAY;\n const directiveEndIndex = tNode.directiveEnd;\n if (!includeComponents && tNode.flags & 2 /* isComponentHost */)\n directiveStartIndex++;\n return lView.slice(directiveStartIndex, directiveEndIndex);\n}\nfunction getComponentAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n let directiveStartIndex = tNode.directiveStart;\n return tNode.flags & 2 /* isComponentHost */ ? lView[directiveStartIndex] : null;\n}\n/**\n * Returns a map of local references (local reference name => element or directive instance) that\n * exist on a given element.\n */\nfunction discoverLocalRefs(lView, nodeIndex) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode && tNode.localNames) {\n const result = {};\n let localIndex = tNode.index + 1;\n for (let i = 0; i < tNode.localNames.length; i += 2) {\n result[tNode.localNames[i]] = lView[localIndex];\n localIndex++;\n }\n return result;\n }\n return null;\n}\n\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 */\nconst ERROR_ORIGINAL_ERROR = 'ngOriginalError';\nconst ERROR_LOGGER = 'ngErrorLogger';\nfunction wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\nfunction getErrorLogger(error) {\n return error && error[ERROR_LOGGER] || defaultErrorLogger;\n}\nfunction defaultErrorLogger(console, ...values) {\n console.error(...values);\n}\n\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/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\n * intercept error handling, write a custom exception handler that replaces this default as\n * appropriate for your app.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class MyErrorHandler implements ErrorHandler {\n * handleError(error) {\n * // do something with the exception\n * }\n * }\n *\n * @NgModule({\n * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\n * })\n * class MyModule {}\n * ```\n *\n * @publicApi\n */\nclass ErrorHandler {\n constructor() {\n /**\n * @internal\n */\n this._console = console;\n }\n handleError(error) {\n const originalError = this._findOriginalError(error);\n // Note: Browser consoles show the place from where console.error was called.\n // We can use this to give users additional information about the error.\n const errorLogger = getErrorLogger(error);\n errorLogger(this._console, `ERROR`, error);\n if (originalError) {\n errorLogger(this._console, `ORIGINAL ERROR`, originalError);\n }\n }\n /** @internal */\n _findOriginalError(error) {\n let e = error && getOriginalError(error);\n while (e && getOriginalError(e)) {\n e = getOriginalError(e);\n }\n return e || null;\n }\n}\n\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/**\n * Defines a schema that allows an NgModule to contain the following:\n * - Non-Angular elements named with dash case (`-`).\n * - Element properties named with dash case (`-`).\n * Dash case is the naming convention for custom elements.\n *\n * @publicApi\n */\nconst CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\n/**\n * Defines a schema that allows any property on any element.\n *\n * This schema allows you to ignore the errors related to any unknown elements or properties in a\n * template. The usage of this schema is generally discouraged because it prevents useful validation\n * and may hide real errors in your template. Consider using the `CUSTOM_ELEMENTS_SCHEMA` instead.\n *\n * @publicApi\n */\nconst NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\n\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/**\n * Disallowed strings in the comment.\n *\n * see: https://html.spec.whatwg.org/multipage/syntax.html#comments\n */\nconst COMMENT_DISALLOWED = /^>|^->|<!--|-->|--!>|<!-$/g;\n/**\n * Delimiter in the disallowed strings which needs to be wrapped with zero with character.\n */\nconst COMMENT_DELIMITER = /(<|>)/;\nconst COMMENT_DELIMITER_ESCAPED = '\\u200B$1\\u200B';\n/**\n * Escape the content of comment strings so that it can be safely inserted into a comment node.\n *\n * The issue is that HTML does not specify any way to escape comment end text inside the comment.\n * Consider: `<!-- The way you close a comment is with \">\", and \"->\" at the beginning or by \"-->\" or\n * \"--!>\" at the end. -->`. Above the `\"-->\"` is meant to be text not an end to the comment. This\n * can be created programmatically through DOM APIs. (`<!--` are also disallowed.)\n *\n * see: https://html.spec.whatwg.org/multipage/syntax.html#comments\n *\n * ```\n * div.innerHTML = div.innerHTML\n * ```\n *\n * One would expect that the above code would be safe to do, but it turns out that because comment\n * text is not escaped, the comment may contain text which will prematurely close the comment\n * opening up the application for XSS attack. (In SSR we programmatically create comment nodes which\n * may contain such text and expect them to be safe.)\n *\n * This function escapes the comment text by looking for comment delimiters (`<` and `>`) and\n * surrounding them with `_>_` where the `_` is a zero width space `\\u200B`. The result is that if a\n * comment contains any of the comment start/end delimiters (such as `<!--`, `-->` or `--!>`) the\n * text it will render normally but it will not cause the HTML parser to close/open the comment.\n *\n * @param value text to make safe for comment node by escaping the comment open/close character\n * sequence.\n */\nfunction escapeCommentText(value) {\n return value.replace(COMMENT_DISALLOWED, (text) => text.replace(COMMENT_DELIMITER, COMMENT_DELIMITER_ESCAPED));\n}\n\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 */\nfunction normalizeDebugBindingName(name) {\n // Attribute names with `$` (eg `x-y$`) are valid per spec, but unsupported by some browsers\n name = camelCaseToDashCase(name.replace(/[$@]/g, '_'));\n return `ng-reflect-${name}`;\n}\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nfunction camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, (...m) => '-' + m[1].toLowerCase());\n}\nfunction normalizeDebugBindingValue(value) {\n try {\n // Limit the size of the value as otherwise the DOM just gets polluted.\n return value != null ? value.toString().slice(0, 30) : value;\n }\n catch (e) {\n return '[ERROR] Exception while trying to serialize the value';\n }\n}\n\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 */\nconst defaultScheduler = (() => (typeof requestAnimationFrame !== 'undefined' &&\n requestAnimationFrame || // browser only\n setTimeout // everything else\n)\n .bind(_global))();\n/**\n *\n * @codeGenApi\n */\nfunction ɵɵresolveWindow(element) {\n return element.ownerDocument.defaultView;\n}\n/**\n *\n * @codeGenApi\n */\nfunction ɵɵresolveDocument(element) {\n return element.ownerDocument;\n}\n/**\n *\n * @codeGenApi\n */\nfunction ɵɵresolveBody(element) {\n return element.ownerDocument.body;\n}\n/**\n * The special delimiter we use to separate property names, prefixes, and suffixes\n * in property binding metadata. See storeBindingMetadata().\n *\n * We intentionally use the Unicode \"REPLACEMENT CHARACTER\" (U+FFFD) as a delimiter\n * because it is a very uncommon character that is unlikely to be part of a user's\n * property names or interpolation strings. If it is in fact used in a property\n * binding, DebugElement.properties will not return the correct value for that\n * binding. However, there should be no runtime effect for real applications.\n *\n * This character is typically rendered as a question mark inside of a diamond.\n * See https://en.wikipedia.org/wiki/Specials_(Unicode_block)\n *\n */\nconst INTERPOLATION_DELIMITER = `�`;\n/**\n * Unwrap a value which might be behind a closure (for forward declaration reasons).\n */\nfunction maybeUnwrapFn(value) {\n if (value instanceof Function) {\n return value();\n }\n else {\n return value;\n }\n}\n\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/** Called when there are multiple component selectors that match a given node */\nfunction throwMultipleComponentError(tNode, first, second) {\n throw new RuntimeError(-300 /* MULTIPLE_COMPONENTS_MATCH */, `Multiple components match node with tagname ${tNode.value}: ` +\n `${stringifyForError(first)} and ` +\n `${stringifyForError(second)}`);\n}\n/** Throws an ExpressionChangedAfterChecked error if checkNoChanges mode is on. */\nfunction throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName) {\n const field = propName ? ` for '${propName}'` : '';\n let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${oldValue}'. Current value: '${currValue}'.`;\n if (creationMode) {\n msg +=\n ` It seems like the view has been created after its parent and its children have been dirty checked.` +\n ` Has it been created in a change detection hook?`;\n }\n throw new RuntimeError(-100 /* EXPRESSION_CHANGED_AFTER_CHECKED */, msg);\n}\nfunction constructDetailsForInterpolation(lView, rootIndex, expressionIndex, meta, changedValue) {\n const [propName, prefix, ...chunks] = meta.split(INTERPOLATION_DELIMITER);\n let oldValue = prefix, newValue = prefix;\n for (let i = 0; i < chunks.length; i++) {\n const slotIdx = rootIndex + i;\n oldValue += `${lView[slotIdx]}${chunks[i]}`;\n newValue += `${slotIdx === expressionIndex ? changedValue : lView[slotIdx]}${chunks[i]}`;\n }\n return { propName, oldValue, newValue };\n}\n/**\n * Constructs an object that contains details for the ExpressionChangedAfterItHasBeenCheckedError:\n * - property name (for property bindings or interpolations)\n * - old and new values, enriched using information from metadata\n *\n * More information on the metadata storage format can be found in `storePropertyBindingMetadata`\n * function description.\n */\nfunction getExpressionChangedErrorDetails(lView, bindingIndex, oldValue, newValue) {\n const tData = lView[TVIEW].data;\n const metadata = tData[bindingIndex];\n if (typeof metadata === 'string') {\n // metadata for property interpolation\n if (metadata.indexOf(INTERPOLATION_DELIMITER) > -1) {\n return constructDetailsForInterpolation(lView, bindingIndex, bindingIndex, metadata, newValue);\n }\n // metadata for property binding\n return { propName: metadata, oldValue, newValue };\n }\n // metadata is not available for this expression, check if this expression is a part of the\n // property interpolation by going from the current binding index left and look for a string that\n // contains INTERPOLATION_DELIMITER, the layout in tView.data for this case will look like this:\n // [..., 'id�Prefix � and � suffix', null, null, null, ...]\n if (metadata === null) {\n let idx = bindingIndex - 1;\n while (typeof tData[idx] !== 'string' && tData[idx + 1] === null) {\n idx--;\n }\n const meta = tData[idx];\n if (typeof meta === 'string') {\n const matches = meta.match(new RegExp(INTERPOLATION_DELIMITER, 'g'));\n // first interpolation delimiter separates property name from interpolation parts (in case of\n // property interpolations), so we subtract one from total number of found delimiters\n if (matches && (matches.length - 1) > bindingIndex - idx) {\n return constructDetailsForInterpolation(lView, idx, bindingIndex, meta, newValue);\n }\n }\n }\n return { propName: undefined, oldValue, newValue };\n}\n\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/**\n * Flags for renderer-specific style modifiers.\n * @publicApi\n */\nvar RendererStyleFlags2;\n(function (RendererStyleFlags2) {\n // TODO(misko): This needs to be refactored into a separate file so that it can be imported from\n // `node_manipulation.ts` Currently doing the import cause resolution order to change and fails\n // the tests. The work around is to have hard coded value in `node_manipulation.ts` for now.\n /**\n * Marks a style as important.\n */\n RendererStyleFlags2[RendererStyleFlags2[\"Important\"] = 1] = \"Important\";\n /**\n * Marks a style as using dash case naming (this-is-dash-case).\n */\n RendererStyleFlags2[RendererStyleFlags2[\"DashCase\"] = 2] = \"DashCase\";\n})(RendererStyleFlags2 || (RendererStyleFlags2 = {}));\n\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 */\nlet _icuContainerIterate;\n/**\n * Iterator which provides ability to visit all of the `TIcuContainerNode` root `RNode`s.\n */\nfunction icuContainerIterate(tIcuContainerNode, lView) {\n return _icuContainerIterate(tIcuContainerNode, lView);\n}\n/**\n * Ensures that `IcuContainerVisitor`'s implementation is present.\n *\n * This function is invoked when i18n instruction comes across an ICU. The purpose is to allow the\n * bundler to tree shake ICU logic and only load it if ICU instruction is executed.\n */\nfunction ensureIcuContainerVisitorLoaded(loader) {\n if (_icuContainerIterate === undefined) {\n // Do not inline this function. We want to keep `ensureIcuContainerVisitorLoaded` light, so it\n // can be inlined into call-site.\n _icuContainerIterate = loader();\n }\n}\n\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// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$3 = 1;\n\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/**\n * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of\n * that LContainer, which is an LView\n * @param lView the lView whose parent to get\n */\nfunction getLViewParent(lView) {\n ngDevMode && assertLView(lView);\n const parent = lView[PARENT];\n return isLContainer(parent) ? parent[PARENT] : parent;\n}\n/**\n * Retrieve the root view from any component or `LView` by walking the parent `LView` until\n * reaching the root `LView`.\n *\n * @param componentOrLView any component or `LView`\n */\nfunction getRootView(componentOrLView) {\n ngDevMode && assertDefined(componentOrLView, 'component');\n let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);\n while (lView && !(lView[FLAGS] & 512 /* IsRoot */)) {\n lView = getLViewParent(lView);\n }\n ngDevMode && assertLView(lView);\n return lView;\n}\n/**\n * Returns the `RootContext` instance that is associated with\n * the application where the target is situated. It does this by walking the parent views until it\n * gets to the root view, then getting the context off of that.\n *\n * @param viewOrComponent the `LView` or component to get the root context for.\n */\nfunction getRootContext(viewOrComponent) {\n const rootView = getRootView(viewOrComponent);\n ngDevMode &&\n assertDefined(rootView[CONTEXT], 'RootView has no context. Perhaps it is disconnected?');\n return rootView[CONTEXT];\n}\n/**\n * Gets the first `LContainer` in the LView or `null` if none exists.\n */\nfunction getFirstLContainer(lView) {\n return getNearestLContainer(lView[CHILD_HEAD]);\n}\n/**\n * Gets the next `LContainer` that is a sibling of the given container.\n */\nfunction getNextLContainer(container) {\n return getNearestLContainer(container[NEXT]);\n}\nfunction getNearestLContainer(viewOrContainer) {\n while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {\n viewOrContainer = viewOrContainer[NEXT];\n }\n return viewOrContainer;\n}\n\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 */\nconst unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$8 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$3 + unusedValueExportToPlacateAjd$6 + unusedValueExportToPlacateAjd$7;\n/**\n * NOTE: for performance reasons, the possible actions are inlined within the function instead of\n * being passed as an argument.\n */\nfunction applyToElementOrContainer(action, renderer, parent, lNodeToHandle, beforeNode) {\n // If this slot was allocated for a text node dynamically created by i18n, the text node itself\n // won't be created until i18nApply() in the update block, so this node should be skipped.\n // For more info, see \"ICU expressions should work inside an ngTemplateOutlet inside an ngFor\"\n // in `i18n_spec.ts`.\n if (lNodeToHandle != null) {\n let lContainer;\n let isComponent = false;\n // We are expecting an RNode, but in the case of a component or LContainer the `RNode` is\n // wrapped in an array which needs to be unwrapped. We need to know if it is a component and if\n // it has LContainer so that we can process all of those cases appropriately.\n if (isLContainer(lNodeToHandle)) {\n lContainer = lNodeToHandle;\n }\n else if (isLView(lNodeToHandle)) {\n isComponent = true;\n ngDevMode && assertDefined(lNodeToHandle[HOST], 'HOST must be defined for a component LView');\n lNodeToHandle = lNodeToHandle[HOST];\n }\n const rNode = unwrapRNode(lNodeToHandle);\n ngDevMode && !isProceduralRenderer(renderer) && assertDomNode(rNode);\n if (action === 0 /* Create */ && parent !== null) {\n if (beforeNode == null) {\n nativeAppendChild(renderer, parent, rNode);\n }\n else {\n nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true);\n }\n }\n else if (action === 1 /* Insert */ && parent !== null) {\n nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true);\n }\n else if (action === 2 /* Detach */) {\n nativeRemoveNode(renderer, rNode, isComponent);\n }\n else if (action === 3 /* Destroy */) {\n ngDevMode && ngDevMode.rendererDestroyNode++;\n renderer.destroyNode(rNode);\n }\n if (lContainer != null) {\n applyContainer(renderer, action, lContainer, parent, beforeNode);\n }\n }\n}\nfunction createTextNode(renderer, value) {\n ngDevMode && ngDevMode.rendererCreateTextNode++;\n ngDevMode && ngDevMode.rendererSetText++;\n return isProceduralRenderer(renderer) ? renderer.createText(value) :\n renderer.createTextNode(value);\n}\nfunction updateTextNode(renderer, rNode, value) {\n ngDevMode && ngDevMode.rendererSetText++;\n isProceduralRenderer(renderer) ? renderer.setValue(rNode, value) : rNode.textContent = value;\n}\nfunction createCommentNode(renderer, value) {\n ngDevMode && ngDevMode.rendererCreateComment++;\n // isProceduralRenderer check is not needed because both `Renderer2` and `Renderer3` have the same\n // method name.\n return renderer.createComment(escapeCommentText(value));\n}\n/**\n * Creates a native element from a tag name, using a renderer.\n * @param renderer A renderer to use\n * @param name the tag name\n * @param namespace Optional namespace for element.\n * @returns the element created\n */\nfunction createElementNode(renderer, name, namespace) {\n ngDevMode && ngDevMode.rendererCreateElement++;\n if (isProceduralRenderer(renderer)) {\n return renderer.createElement(name, namespace);\n }\n else {\n const namespaceUri = namespace !== null ? getNamespaceUri(namespace) : null;\n return namespaceUri === null ? renderer.createElement(name) :\n renderer.createElementNS(namespaceUri, name);\n }\n}\n/**\n * Removes all DOM elements associated with a view.\n *\n * Because some root nodes of the view may be containers, we sometimes need\n * to propagate deeply into the nested containers to remove all elements in the\n * views beneath it.\n *\n * @param tView The `TView' of the `LView` from which elements should be added or removed\n * @param lView The view from which elements should be added or removed\n */\nfunction removeViewFromContainer(tView, lView) {\n const renderer = lView[RENDERER];\n applyView(tView, lView, renderer, 2 /* Detach */, null, null);\n lView[HOST] = null;\n lView[T_HOST] = null;\n}\n/**\n * Adds all DOM elements associated with a view.\n *\n * Because some root nodes of the view may be containers, we sometimes need\n * to propagate deeply into the nested containers to add all elements in the\n * views beneath it.\n *\n * @param tView The `TView' of the `LView` from which elements should be added or removed\n * @param parentTNode The `TNode` where the `LView` should be attached to.\n * @param renderer Current renderer to use for DOM manipulations.\n * @param lView The view from which elements should be added or removed\n * @param parentNativeNode The parent `RElement` where it should be inserted into.\n * @param beforeNode The node before which elements should be added, if insert mode\n */\nfunction addViewToContainer(tView, parentTNode, renderer, lView, parentNativeNode, beforeNode) {\n lView[HOST] = parentNativeNode;\n lView[T_HOST] = parentTNode;\n applyView(tView, lView, renderer, 1 /* Insert */, parentNativeNode, beforeNode);\n}\n/**\n * Detach a `LView` from the DOM by detaching its nodes.\n *\n * @param tView The `TView' of the `LView` to be detached\n * @param lView the `LView` to be detached.\n */\nfunction renderDetachView(tView, lView) {\n applyView(tView, lView, lView[RENDERER], 2 /* Detach */, null, null);\n}\n/**\n * Traverses down and up the tree of views and containers to remove listeners and\n * call onDestroy callbacks.\n *\n * Notes:\n * - Because it's used for onDestroy calls, it needs to be bottom-up.\n * - Must process containers instead of their views to avoid splicing\n * when views are destroyed and re-added.\n * - Using a while loop because it's faster than recursion\n * - Destroy only called on movement to sibling or movement to parent (laterally or up)\n *\n * @param rootView The view to destroy\n */\nfunction destroyViewTree(rootView) {\n // If the view has no children, we can clean it up and return early.\n let lViewOrLContainer = rootView[CHILD_HEAD];\n if (!lViewOrLContainer) {\n return cleanUpView(rootView[TVIEW], rootView);\n }\n while (lViewOrLContainer) {\n let next = null;\n if (isLView(lViewOrLContainer)) {\n // If LView, traverse down to child.\n next = lViewOrLContainer[CHILD_HEAD];\n }\n else {\n ngDevMode && assertLContainer(lViewOrLContainer);\n // If container, traverse down to its first LView.\n const firstView = lViewOrLContainer[CONTAINER_HEADER_OFFSET];\n if (firstView)\n next = firstView;\n }\n if (!next) {\n // Only clean up view when moving to the side or up, as destroy hooks\n // should be called in order from the bottom up.\n while (lViewOrLContainer && !lViewOrLContainer[NEXT] && lViewOrLContainer !== rootView) {\n if (isLView(lViewOrLContainer)) {\n cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer);\n }\n lViewOrLContainer = lViewOrLContainer[PARENT];\n }\n if (lViewOrLContainer === null)\n lViewOrLContainer = rootView;\n if (isLView(lViewOrLContainer)) {\n cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer);\n }\n next = lViewOrLContainer && lViewOrLContainer[NEXT];\n }\n lViewOrLContainer = next;\n }\n}\n/**\n * Inserts a view into a container.\n *\n * This adds the view to the container's array of active views in the correct\n * position. It also adds the view's elements to the DOM if the container isn't a\n * root node of another view (in that case, the view's elements will be added when\n * the container's parent view is added later).\n *\n * @param tView The `TView' of the `LView` to insert\n * @param lView The view to insert\n * @param lContainer The container into which the view should be inserted\n * @param index Which index in the container to insert the child view into\n */\nfunction insertView(tView, lView, lContainer, index) {\n ngDevMode && assertLView(lView);\n ngDevMode && assertLContainer(lContainer);\n const indexInContainer = CONTAINER_HEADER_OFFSET + index;\n const containerLength = lContainer.length;\n if (index > 0) {\n // This is a new view, we need to add it to the children.\n lContainer[indexInContainer - 1][NEXT] = lView;\n }\n if (index < containerLength - CONTAINER_HEADER_OFFSET) {\n lView[NEXT] = lContainer[indexInContainer];\n addToArray(lContainer, CONTAINER_HEADER_OFFSET + index, lView);\n }\n else {\n lContainer.push(lView);\n lView[NEXT] = null;\n }\n lView[PARENT] = lContainer;\n // track views where declaration and insertion points are different\n const declarationLContainer = lView[DECLARATION_LCONTAINER];\n if (declarationLContainer !== null && lContainer !== declarationLContainer) {\n trackMovedView(declarationLContainer, lView);\n }\n // notify query that a new view has been added\n const lQueries = lView[QUERIES];\n if (lQueries !== null) {\n lQueries.insertView(tView);\n }\n // Sets the attached flag\n lView[FLAGS] |= 128 /* Attached */;\n}\n/**\n * Track views created from the declaration container (TemplateRef) and inserted into a\n * different LContainer.\n */\nfunction trackMovedView(declarationContainer, lView) {\n ngDevMode && assertDefined(lView, 'LView required');\n ngDevMode && assertLContainer(declarationContainer);\n const movedViews = declarationContainer[MOVED_VIEWS];\n const insertedLContainer = lView[PARENT];\n ngDevMode && assertLContainer(insertedLContainer);\n const insertedComponentLView = insertedLContainer[PARENT][DECLARATION_COMPONENT_VIEW];\n ngDevMode && assertDefined(insertedComponentLView, 'Missing insertedComponentLView');\n const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];\n ngDevMode && assertDefined(declaredComponentLView, 'Missing declaredComponentLView');\n if (declaredComponentLView !== insertedComponentLView) {\n // At this point the declaration-component is not same as insertion-component; this means that\n // this is a transplanted view. Mark the declared lView as having transplanted views so that\n // those views can participate in CD.\n declarationContainer[HAS_TRANSPLANTED_VIEWS] = true;\n }\n if (movedViews === null) {\n declarationContainer[MOVED_VIEWS] = [lView];\n }\n else {\n movedViews.push(lView);\n }\n}\nfunction detachMovedView(declarationContainer, lView) {\n ngDevMode && assertLContainer(declarationContainer);\n ngDevMode &&\n assertDefined(declarationContainer[MOVED_VIEWS], 'A projected view should belong to a non-empty projected views collection');\n const movedViews = declarationContainer[MOVED_VIEWS];\n const declarationViewIndex = movedViews.indexOf(lView);\n const insertionLContainer = lView[PARENT];\n ngDevMode && assertLContainer(insertionLContainer);\n // If the view was marked for refresh but then detached before it was checked (where the flag\n // would be cleared and the counter decremented), we need to decrement the view counter here\n // instead.\n if (lView[FLAGS] & 1024 /* RefreshTransplantedView */) {\n lView[FLAGS] &= ~1024 /* RefreshTransplantedView */;\n updateTransplantedViewCount(insertionLContainer, -1);\n }\n movedViews.splice(declarationViewIndex, 1);\n}\n/**\n * Detaches a view from a container.\n *\n * This method removes the view from the container's array of active views. It also\n * removes the view's elements from the DOM.\n *\n * @param lContainer The container from which to detach a view\n * @param removeIndex The index of the view to detach\n * @returns Detached LView instance.\n */\nfunction detachView(lContainer, removeIndex) {\n if (lContainer.length <= CONTAINER_HEADER_OFFSET)\n return;\n const indexInContainer = CONTAINER_HEADER_OFFSET + removeIndex;\n const viewToDetach = lContainer[indexInContainer];\n if (viewToDetach) {\n const declarationLContainer = viewToDetach[DECLARATION_LCONTAINER];\n if (declarationLContainer !== null && declarationLContainer !== lContainer) {\n detachMovedView(declarationLContainer, viewToDetach);\n }\n if (removeIndex > 0) {\n lContainer[indexInContainer - 1][NEXT] = viewToDetach[NEXT];\n }\n const removedLView = removeFromArray(lContainer, CONTAINER_HEADER_OFFSET + removeIndex);\n removeViewFromContainer(viewToDetach[TVIEW], viewToDetach);\n // notify query that a view has been removed\n const lQueries = removedLView[QUERIES];\n if (lQueries !== null) {\n lQueries.detachView(removedLView[TVIEW]);\n }\n viewToDetach[PARENT] = null;\n viewToDetach[NEXT] = null;\n // Unsets the attached flag\n viewToDetach[FLAGS] &= ~128 /* Attached */;\n }\n return viewToDetach;\n}\n/**\n * A standalone function which destroys an LView,\n * conducting clean up (e.g. removing listeners, calling onDestroys).\n *\n * @param tView The `TView' of the `LView` to be destroyed\n * @param lView The view to be destroyed.\n */\nfunction destroyLView(tView, lView) {\n if (!(lView[FLAGS] & 256 /* Destroyed */)) {\n const renderer = lView[RENDERER];\n if (isProceduralRenderer(renderer) && renderer.destroyNode) {\n applyView(tView, lView, renderer, 3 /* Destroy */, null, null);\n }\n destroyViewTree(lView);\n }\n}\n/**\n * Calls onDestroys hooks for all directives and pipes in a given view and then removes all\n * listeners. Listeners are removed as the last step so events delivered in the onDestroys hooks\n * can be propagated to @Output listeners.\n *\n * @param tView `TView` for the `LView` to clean up.\n * @param lView The LView to clean up\n */\nfunction cleanUpView(tView, lView) {\n if (!(lView[FLAGS] & 256 /* Destroyed */)) {\n // Usually the Attached flag is removed when the view is detached from its parent, however\n // if it's a root view, the flag won't be unset hence why we're also removing on destroy.\n lView[FLAGS] &= ~128 /* Attached */;\n // Mark the LView as destroyed *before* executing the onDestroy hooks. An onDestroy hook\n // runs arbitrary user code, which could include its own `viewRef.destroy()` (or similar). If\n // We don't flag the view as destroyed before the hooks, this could lead to an infinite loop.\n // This also aligns with the ViewEngine behavior. It also means that the onDestroy hook is\n // really more of an \"afterDestroy\" hook if you think about it.\n lView[FLAGS] |= 256 /* Destroyed */;\n executeOnDestroys(tView, lView);\n processCleanups(tView, lView);\n // For component views only, the local renderer is destroyed at clean up time.\n if (lView[TVIEW].type === 1 /* Component */ && isProceduralRenderer(lView[RENDERER])) {\n ngDevMode && ngDevMode.rendererDestroy++;\n lView[RENDERER].destroy();\n }\n const declarationContainer = lView[DECLARATION_LCONTAINER];\n // we are dealing with an embedded view that is still inserted into a container\n if (declarationContainer !== null && isLContainer(lView[PARENT])) {\n // and this is a projected view\n if (declarationContainer !== lView[PARENT]) {\n detachMovedView(declarationContainer, lView);\n }\n // For embedded views still attached to a container: remove query result from this view.\n const lQueries = lView[QUERIES];\n if (lQueries !== null) {\n lQueries.detachView(tView);\n }\n }\n }\n}\n/** Removes listeners and unsubscribes from output subscriptions */\nfunction processCleanups(tView, lView) {\n const tCleanup = tView.cleanup;\n const lCleanup = lView[CLEANUP];\n // `LCleanup` contains both share information with `TCleanup` as well as instance specific\n // information appended at the end. We need to know where the end of the `TCleanup` information\n // is, and we track this with `lastLCleanupIndex`.\n let lastLCleanupIndex = -1;\n if (tCleanup !== null) {\n for (let i = 0; i < tCleanup.length - 1; i += 2) {\n if (typeof tCleanup[i] === 'string') {\n // This is a native DOM listener\n const idxOrTargetGetter = tCleanup[i + 1];\n const target = typeof idxOrTargetGetter === 'function' ?\n idxOrTargetGetter(lView) :\n unwrapRNode(lView[idxOrTargetGetter]);\n const listener = lCleanup[lastLCleanupIndex = tCleanup[i + 2]];\n const useCaptureOrSubIdx = tCleanup[i + 3];\n if (typeof useCaptureOrSubIdx === 'boolean') {\n // native DOM listener registered with Renderer3\n target.removeEventListener(tCleanup[i], listener, useCaptureOrSubIdx);\n }\n else {\n if (useCaptureOrSubIdx >= 0) {\n // unregister\n lCleanup[lastLCleanupIndex = useCaptureOrSubIdx]();\n }\n else {\n // Subscription\n lCleanup[lastLCleanupIndex = -useCaptureOrSubIdx].unsubscribe();\n }\n }\n i += 2;\n }\n else {\n // This is a cleanup function that is grouped with the index of its context\n const context = lCleanup[lastLCleanupIndex = tCleanup[i + 1]];\n tCleanup[i].call(context);\n }\n }\n }\n if (lCleanup !== null) {\n for (let i = lastLCleanupIndex + 1; i < lCleanup.length; i++) {\n const instanceCleanupFn = lCleanup[i];\n ngDevMode && assertFunction(instanceCleanupFn, 'Expecting instance cleanup function.');\n instanceCleanupFn();\n }\n lView[CLEANUP] = null;\n }\n}\n/** Calls onDestroy hooks for this view */\nfunction executeOnDestroys(tView, lView) {\n let destroyHooks;\n if (tView != null && (destroyHooks = tView.destroyHooks) != null) {\n for (let i = 0; i < destroyHooks.length; i += 2) {\n const context = lView[destroyHooks[i]];\n // Only call the destroy hook if the context has been requested.\n if (!(context instanceof NodeInjectorFactory)) {\n const toCall = destroyHooks[i + 1];\n if (Array.isArray(toCall)) {\n for (let j = 0; j < toCall.length; j += 2) {\n const callContext = context[toCall[j]];\n const hook = toCall[j + 1];\n profiler(4 /* LifecycleHookStart */, callContext, hook);\n try {\n hook.call(callContext);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, callContext, hook);\n }\n }\n }\n else {\n profiler(4 /* LifecycleHookStart */, context, toCall);\n try {\n toCall.call(context);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, context, toCall);\n }\n }\n }\n }\n }\n}\n/**\n * Returns a native element if a node can be inserted into the given parent.\n *\n * There are two reasons why we may not be able to insert a element immediately.\n * - Projection: When creating a child content element of a component, we have to skip the\n * insertion because the content of a component will be projected.\n * `<component><content>delayed due to projection</content></component>`\n * - Parent container is disconnected: This can happen when we are inserting a view into\n * parent container, which itself is disconnected. For example the parent container is part\n * of a View which has not be inserted or is made for projection but has not been inserted\n * into destination.\n *\n * @param tView: Current `TView`.\n * @param tNode: `TNode` for which we wish to retrieve render parent.\n * @param lView: Current `LView`.\n */\nfunction getParentRElement(tView, tNode, lView) {\n return getClosestRElement(tView, tNode.parent, lView);\n}\n/**\n * Get closest `RElement` or `null` if it can't be found.\n *\n * If `TNode` is `TNodeType.Element` => return `RElement` at `LView[tNode.index]` location.\n * If `TNode` is `TNodeType.ElementContainer|IcuContain` => return the parent (recursively).\n * If `TNode` is `null` then return host `RElement`:\n * - return `null` if projection\n * - return `null` if parent container is disconnected (we have no parent.)\n *\n * @param tView: Current `TView`.\n * @param tNode: `TNode` for which we wish to retrieve `RElement` (or `null` if host element is\n * needed).\n * @param lView: Current `LView`.\n * @returns `null` if the `RElement` can't be determined at this time (no parent / projection)\n */\nfunction getClosestRElement(tView, tNode, lView) {\n let parentTNode = tNode;\n // Skip over element and ICU containers as those are represented by a comment node and\n // can't be used as a render parent.\n while (parentTNode !== null &&\n (parentTNode.type & (8 /* ElementContainer */ | 32 /* Icu */))) {\n tNode = parentTNode;\n parentTNode = tNode.parent;\n }\n // If the parent tNode is null, then we are inserting across views: either into an embedded view\n // or a component view.\n if (parentTNode === null) {\n // We are inserting a root element of the component view into the component host element and\n // it should always be eager.\n return lView[HOST];\n }\n else {\n ngDevMode && assertTNodeType(parentTNode, 3 /* AnyRNode */ | 4 /* Container */);\n if (parentTNode.flags & 2 /* isComponentHost */) {\n ngDevMode && assertTNodeForLView(parentTNode, lView);\n const encapsulation = tView.data[parentTNode.directiveStart].encapsulation;\n // We've got a parent which is an element in the current view. We just need to verify if the\n // parent element is not a component. Component's content nodes are not inserted immediately\n // because they will be projected, and so doing insert at this point would be wasteful.\n // Since the projection would then move it to its final destination. Note that we can't\n // make this assumption when using the Shadow DOM, because the native projection placeholders\n // (<content> or <slot>) have to be in place as elements are being inserted.\n if (encapsulation === ViewEncapsulation$1.None ||\n encapsulation === ViewEncapsulation$1.Emulated) {\n return null;\n }\n }\n return getNativeByTNode(parentTNode, lView);\n }\n}\n/**\n * Inserts a native node before another native node for a given parent using {@link Renderer3}.\n * This is a utility function that can be used when native nodes were determined - it abstracts an\n * actual renderer being used.\n */\nfunction nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {\n ngDevMode && ngDevMode.rendererInsertBefore++;\n if (isProceduralRenderer(renderer)) {\n renderer.insertBefore(parent, child, beforeNode, isMove);\n }\n else {\n parent.insertBefore(child, beforeNode, isMove);\n }\n}\nfunction nativeAppendChild(renderer, parent, child) {\n ngDevMode && ngDevMode.rendererAppendChild++;\n ngDevMode && assertDefined(parent, 'parent node must be defined');\n if (isProceduralRenderer(renderer)) {\n renderer.appendChild(parent, child);\n }\n else {\n parent.appendChild(child);\n }\n}\nfunction nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {\n if (beforeNode !== null) {\n nativeInsertBefore(renderer, parent, child, beforeNode, isMove);\n }\n else {\n nativeAppendChild(renderer, parent, child);\n }\n}\n/** Removes a node from the DOM given its native parent. */\nfunction nativeRemoveChild(renderer, parent, child, isHostElement) {\n if (isProceduralRenderer(renderer)) {\n renderer.removeChild(parent, child, isHostElement);\n }\n else {\n parent.removeChild(child);\n }\n}\n/**\n * Returns a native parent of a given native node.\n */\nfunction nativeParentNode(renderer, node) {\n return (isProceduralRenderer(renderer) ? renderer.parentNode(node) : node.parentNode);\n}\n/**\n * Returns a native sibling of a given native node.\n */\nfunction nativeNextSibling(renderer, node) {\n return isProceduralRenderer(renderer) ? renderer.nextSibling(node) : node.nextSibling;\n}\n/**\n * Find a node in front of which `currentTNode` should be inserted.\n *\n * This method determines the `RNode` in front of which we should insert the `currentRNode`. This\n * takes `TNode.insertBeforeIndex` into account if i18n code has been invoked.\n *\n * @param parentTNode parent `TNode`\n * @param currentTNode current `TNode` (The node which we would like to insert into the DOM)\n * @param lView current `LView`\n */\nfunction getInsertInFrontOfRNode(parentTNode, currentTNode, lView) {\n return _getInsertInFrontOfRNodeWithI18n(parentTNode, currentTNode, lView);\n}\n/**\n * Find a node in front of which `currentTNode` should be inserted. (Does not take i18n into\n * account)\n *\n * This method determines the `RNode` in front of which we should insert the `currentRNode`. This\n * does not take `TNode.insertBeforeIndex` into account.\n *\n * @param parentTNode parent `TNode`\n * @param currentTNode current `TNode` (The node which we would like to insert into the DOM)\n * @param lView current `LView`\n */\nfunction getInsertInFrontOfRNodeWithNoI18n(parentTNode, currentTNode, lView) {\n if (parentTNode.type & (8 /* ElementContainer */ | 32 /* Icu */)) {\n return getNativeByTNode(parentTNode, lView);\n }\n return null;\n}\n/**\n * Tree shakable boundary for `getInsertInFrontOfRNodeWithI18n` function.\n *\n * This function will only be set if i18n code runs.\n */\nlet _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithNoI18n;\n/**\n * Tree shakable boundary for `processI18nInsertBefore` function.\n *\n * This function will only be set if i18n code runs.\n */\nlet _processI18nInsertBefore;\nfunction setI18nHandling(getInsertInFrontOfRNodeWithI18n, processI18nInsertBefore) {\n _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithI18n;\n _processI18nInsertBefore = processI18nInsertBefore;\n}\n/**\n * Appends the `child` native node (or a collection of nodes) to the `parent`.\n *\n * @param tView The `TView' to be appended\n * @param lView The current LView\n * @param childRNode The native child (or children) that should be appended\n * @param childTNode The TNode of the child element\n */\nfunction appendChild(tView, lView, childRNode, childTNode) {\n const parentRNode = getParentRElement(tView, childTNode, lView);\n const renderer = lView[RENDERER];\n const parentTNode = childTNode.parent || lView[T_HOST];\n const anchorNode = getInsertInFrontOfRNode(parentTNode, childTNode, lView);\n if (parentRNode != null) {\n if (Array.isArray(childRNode)) {\n for (let i = 0; i < childRNode.length; i++) {\n nativeAppendOrInsertBefore(renderer, parentRNode, childRNode[i], anchorNode, false);\n }\n }\n else {\n nativeAppendOrInsertBefore(renderer, parentRNode, childRNode, anchorNode, false);\n }\n }\n _processI18nInsertBefore !== undefined &&\n _processI18nInsertBefore(renderer, childTNode, lView, childRNode, parentRNode);\n}\n/**\n * Returns the first native node for a given LView, starting from the provided TNode.\n *\n * Native nodes are returned in the order in which those appear in the native tree (DOM).\n */\nfunction getFirstNativeNode(lView, tNode) {\n if (tNode !== null) {\n ngDevMode &&\n assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */ | 32 /* Icu */ | 16 /* Projection */);\n const tNodeType = tNode.type;\n if (tNodeType & 3 /* AnyRNode */) {\n return getNativeByTNode(tNode, lView);\n }\n else if (tNodeType & 4 /* Container */) {\n return getBeforeNodeForView(-1, lView[tNode.index]);\n }\n else if (tNodeType & 8 /* ElementContainer */) {\n const elIcuContainerChild = tNode.child;\n if (elIcuContainerChild !== null) {\n return getFirstNativeNode(lView, elIcuContainerChild);\n }\n else {\n const rNodeOrLContainer = lView[tNode.index];\n if (isLContainer(rNodeOrLContainer)) {\n return getBeforeNodeForView(-1, rNodeOrLContainer);\n }\n else {\n return unwrapRNode(rNodeOrLContainer);\n }\n }\n }\n else if (tNodeType & 32 /* Icu */) {\n let nextRNode = icuContainerIterate(tNode, lView);\n let rNode = nextRNode();\n // If the ICU container has no nodes, than we use the ICU anchor as the node.\n return rNode || unwrapRNode(lView[tNode.index]);\n }\n else {\n const projectionNodes = getProjectionNodes(lView, tNode);\n if (projectionNodes !== null) {\n if (Array.isArray(projectionNodes)) {\n return projectionNodes[0];\n }\n const parentView = getLViewParent(lView[DECLARATION_COMPONENT_VIEW]);\n ngDevMode && assertParentView(parentView);\n return getFirstNativeNode(parentView, projectionNodes);\n }\n else {\n return getFirstNativeNode(lView, tNode.next);\n }\n }\n }\n return null;\n}\nfunction getProjectionNodes(lView, tNode) {\n if (tNode !== null) {\n const componentView = lView[DECLARATION_COMPONENT_VIEW];\n const componentHost = componentView[T_HOST];\n const slotIdx = tNode.projection;\n ngDevMode && assertProjectionSlots(lView);\n return componentHost.projection[slotIdx];\n }\n return null;\n}\nfunction getBeforeNodeForView(viewIndexInContainer, lContainer) {\n const nextViewIndex = CONTAINER_HEADER_OFFSET + viewIndexInContainer + 1;\n if (nextViewIndex < lContainer.length) {\n const lView = lContainer[nextViewIndex];\n const firstTNodeOfView = lView[TVIEW].firstChild;\n if (firstTNodeOfView !== null) {\n return getFirstNativeNode(lView, firstTNodeOfView);\n }\n }\n return lContainer[NATIVE];\n}\n/**\n * Removes a native node itself using a given renderer. To remove the node we are looking up its\n * parent from the native tree as not all platforms / browsers support the equivalent of\n * node.remove().\n *\n * @param renderer A renderer to be used\n * @param rNode The native node that should be removed\n * @param isHostElement A flag indicating if a node to be removed is a host of a component.\n */\nfunction nativeRemoveNode(renderer, rNode, isHostElement) {\n ngDevMode && ngDevMode.rendererRemoveNode++;\n const nativeParent = nativeParentNode(renderer, rNode);\n if (nativeParent) {\n nativeRemoveChild(renderer, nativeParent, rNode, isHostElement);\n }\n}\n/**\n * Performs the operation of `action` on the node. Typically this involves inserting or removing\n * nodes on the LView or projection boundary.\n */\nfunction applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) {\n while (tNode != null) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode &&\n assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */ | 16 /* Projection */ | 32 /* Icu */);\n const rawSlotValue = lView[tNode.index];\n const tNodeType = tNode.type;\n if (isProjection) {\n if (action === 0 /* Create */) {\n rawSlotValue && attachPatchData(unwrapRNode(rawSlotValue), lView);\n tNode.flags |= 4 /* isProjected */;\n }\n }\n if ((tNode.flags & 64 /* isDetached */) !== 64 /* isDetached */) {\n if (tNodeType & 8 /* ElementContainer */) {\n applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false);\n applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);\n }\n else if (tNodeType & 32 /* Icu */) {\n const nextRNode = icuContainerIterate(tNode, lView);\n let rNode;\n while (rNode = nextRNode()) {\n applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode);\n }\n applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);\n }\n else if (tNodeType & 16 /* Projection */) {\n applyProjectionRecursive(renderer, action, lView, tNode, parentRElement, beforeNode);\n }\n else {\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */ | 4 /* Container */);\n applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);\n }\n }\n tNode = isProjection ? tNode.projectionNext : tNode.next;\n }\n}\nfunction applyView(tView, lView, renderer, action, parentRElement, beforeNode) {\n applyNodes(renderer, action, tView.firstChild, lView, parentRElement, beforeNode, false);\n}\n/**\n * `applyProjection` performs operation on the projection.\n *\n * Inserting a projection requires us to locate the projected nodes from the parent component. The\n * complication is that those nodes themselves could be re-projected from their parent component.\n *\n * @param tView The `TView` of `LView` which needs to be inserted, detached, destroyed\n * @param lView The `LView` which needs to be inserted, detached, destroyed.\n * @param tProjectionNode node to project\n */\nfunction applyProjection(tView, lView, tProjectionNode) {\n const renderer = lView[RENDERER];\n const parentRNode = getParentRElement(tView, tProjectionNode, lView);\n const parentTNode = tProjectionNode.parent || lView[T_HOST];\n let beforeNode = getInsertInFrontOfRNode(parentTNode, tProjectionNode, lView);\n applyProjectionRecursive(renderer, 0 /* Create */, lView, tProjectionNode, parentRNode, beforeNode);\n}\n/**\n * `applyProjectionRecursive` performs operation on the projection specified by `action` (insert,\n * detach, destroy)\n *\n * Inserting a projection requires us to locate the projected nodes from the parent component. The\n * complication is that those nodes themselves could be re-projected from their parent component.\n *\n * @param renderer Render to use\n * @param action action to perform (insert, detach, destroy)\n * @param lView The LView which needs to be inserted, detached, destroyed.\n * @param tProjectionNode node to project\n * @param parentRElement parent DOM element for insertion/removal.\n * @param beforeNode Before which node the insertions should happen.\n */\nfunction applyProjectionRecursive(renderer, action, lView, tProjectionNode, parentRElement, beforeNode) {\n const componentLView = lView[DECLARATION_COMPONENT_VIEW];\n const componentNode = componentLView[T_HOST];\n ngDevMode &&\n assertEqual(typeof tProjectionNode.projection, 'number', 'expecting projection index');\n const nodeToProjectOrRNodes = componentNode.projection[tProjectionNode.projection];\n if (Array.isArray(nodeToProjectOrRNodes)) {\n // This should not exist, it is a bit of a hack. When we bootstrap a top level node and we\n // need to support passing projectable nodes, so we cheat and put them in the TNode\n // of the Host TView. (Yes we put instance info at the T Level). We can get away with it\n // because we know that that TView is not shared and therefore it will not be a problem.\n // This should be refactored and cleaned up.\n for (let i = 0; i < nodeToProjectOrRNodes.length; i++) {\n const rNode = nodeToProjectOrRNodes[i];\n applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode);\n }\n }\n else {\n let nodeToProject = nodeToProjectOrRNodes;\n const projectedComponentLView = componentLView[PARENT];\n applyNodes(renderer, action, nodeToProject, projectedComponentLView, parentRElement, beforeNode, true);\n }\n}\n/**\n * `applyContainer` performs an operation on the container and its views as specified by\n * `action` (insert, detach, destroy)\n *\n * Inserting a Container is complicated by the fact that the container may have Views which\n * themselves have containers or projections.\n *\n * @param renderer Renderer to use\n * @param action action to perform (insert, detach, destroy)\n * @param lContainer The LContainer which needs to be inserted, detached, destroyed.\n * @param parentRElement parent DOM element for insertion/removal.\n * @param beforeNode Before which node the insertions should happen.\n */\nfunction applyContainer(renderer, action, lContainer, parentRElement, beforeNode) {\n ngDevMode && assertLContainer(lContainer);\n const anchor = lContainer[NATIVE]; // LContainer has its own before node.\n const native = unwrapRNode(lContainer);\n // An LContainer can be created dynamically on any node by injecting ViewContainerRef.\n // Asking for a ViewContainerRef on an element will result in a creation of a separate anchor\n // node (comment in the DOM) that will be different from the LContainer's host node. In this\n // particular case we need to execute action on 2 nodes:\n // - container's host node (this is done in the executeActionOnElementOrContainer)\n // - container's host node (this is done here)\n if (anchor !== native) {\n // This is very strange to me (Misko). I would expect that the native is same as anchor. I\n // don't see a reason why they should be different, but they are.\n //\n // If they are we need to process the second anchor as well.\n applyToElementOrContainer(action, renderer, parentRElement, anchor, beforeNode);\n }\n for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {\n const lView = lContainer[i];\n applyView(lView[TVIEW], lView, renderer, action, parentRElement, anchor);\n }\n}\n/**\n * Writes class/style to element.\n *\n * @param renderer Renderer to use.\n * @param isClassBased `true` if it should be written to `class` (`false` to write to `style`)\n * @param rNode The Node to write to.\n * @param prop Property to write to. This would be the class/style name.\n * @param value Value to write. If `null`/`undefined`/`false` this is considered a remove (set/add\n * otherwise).\n */\nfunction applyStyling(renderer, isClassBased, rNode, prop, value) {\n const isProcedural = isProceduralRenderer(renderer);\n if (isClassBased) {\n // We actually want JS true/false here because any truthy value should add the class\n if (!value) {\n ngDevMode && ngDevMode.rendererRemoveClass++;\n if (isProcedural) {\n renderer.removeClass(rNode, prop);\n }\n else {\n rNode.classList.remove(prop);\n }\n }\n else {\n ngDevMode && ngDevMode.rendererAddClass++;\n if (isProcedural) {\n renderer.addClass(rNode, prop);\n }\n else {\n ngDevMode && assertDefined(rNode.classList, 'HTMLElement expected');\n rNode.classList.add(prop);\n }\n }\n }\n else {\n let flags = prop.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value == null /** || value === undefined */) {\n ngDevMode && ngDevMode.rendererRemoveStyle++;\n if (isProcedural) {\n renderer.removeStyle(rNode, prop, flags);\n }\n else {\n rNode.style.removeProperty(prop);\n }\n }\n else {\n // A value is important if it ends with `!important`. The style\n // parser strips any semicolons at the end of the value.\n const isImportant = typeof value === 'string' ? value.endsWith('!important') : false;\n if (isImportant) {\n // !important has to be stripped from the value for it to be valid.\n value = value.slice(0, -10);\n flags |= RendererStyleFlags2.Important;\n }\n ngDevMode && ngDevMode.rendererSetStyle++;\n if (isProcedural) {\n renderer.setStyle(rNode, prop, value, flags);\n }\n else {\n ngDevMode && assertDefined(rNode.style, 'HTMLElement expected');\n rNode.style.setProperty(prop, value, isImportant ? 'important' : '');\n }\n }\n }\n}\n/**\n * Write `cssText` to `RElement`.\n *\n * This function does direct write without any reconciliation. Used for writing initial values, so\n * that static styling values do not pull in the style parser.\n *\n * @param renderer Renderer to use\n * @param element The element which needs to be updated.\n * @param newValue The new class list to write.\n */\nfunction writeDirectStyle(renderer, element, newValue) {\n ngDevMode && assertString(newValue, '\\'newValue\\' should be a string');\n if (isProceduralRenderer(renderer)) {\n renderer.setAttribute(element, 'style', newValue);\n }\n else {\n element.style.cssText = newValue;\n }\n ngDevMode && ngDevMode.rendererSetStyle++;\n}\n/**\n * Write `className` to `RElement`.\n *\n * This function does direct write without any reconciliation. Used for writing initial values, so\n * that static styling values do not pull in the style parser.\n *\n * @param renderer Renderer to use\n * @param element The element which needs to be updated.\n * @param newValue The new class list to write.\n */\nfunction writeDirectClass(renderer, element, newValue) {\n ngDevMode && assertString(newValue, '\\'newValue\\' should be a string');\n if (isProceduralRenderer(renderer)) {\n if (newValue === '') {\n // There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.\n renderer.removeAttribute(element, 'class');\n }\n else {\n renderer.setAttribute(element, 'class', newValue);\n }\n }\n else {\n element.className = newValue;\n }\n ngDevMode && ngDevMode.rendererSetClassName++;\n}\n\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/**\n * Returns an index of `classToSearch` in `className` taking token boundaries into account.\n *\n * `classIndexOf('AB A', 'A', 0)` will be 3 (not 0 since `AB!==A`)\n *\n * @param className A string containing classes (whitespace separated)\n * @param classToSearch A class name to locate\n * @param startingIndex Starting location of search\n * @returns an index of the located class (or -1 if not found)\n */\nfunction classIndexOf(className, classToSearch, startingIndex) {\n ngDevMode && assertNotEqual(classToSearch, '', 'can not look for \"\" string.');\n let end = className.length;\n while (true) {\n const foundIndex = className.indexOf(classToSearch, startingIndex);\n if (foundIndex === -1)\n return foundIndex;\n if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32 /* SPACE */) {\n // Ensure that it has leading whitespace\n const length = classToSearch.length;\n if (foundIndex + length === end ||\n className.charCodeAt(foundIndex + length) <= 32 /* SPACE */) {\n // Ensure that it has trailing whitespace\n return foundIndex;\n }\n }\n // False positive, keep searching from where we left off.\n startingIndex = foundIndex + 1;\n }\n}\n\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 */\nconst unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$3;\nconst NG_TEMPLATE_SELECTOR = 'ng-template';\n/**\n * Search the `TAttributes` to see if it contains `cssClassToMatch` (case insensitive)\n *\n * @param attrs `TAttributes` to search through.\n * @param cssClassToMatch class to match (lowercase)\n * @param isProjectionMode Whether or not class matching should look into the attribute `class` in\n * addition to the `AttributeMarker.Classes`.\n */\nfunction isCssClassMatching(attrs, cssClassToMatch, isProjectionMode) {\n // TODO(misko): The fact that this function needs to know about `isProjectionMode` seems suspect.\n // It is strange to me that sometimes the class information comes in form of `class` attribute\n // and sometimes in form of `AttributeMarker.Classes`. Some investigation is needed to determine\n // if that is the right behavior.\n ngDevMode &&\n assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), 'Class name expected to be lowercase.');\n let i = 0;\n while (i < attrs.length) {\n let item = attrs[i++];\n if (isProjectionMode && item === 'class') {\n item = attrs[i];\n if (classIndexOf(item.toLowerCase(), cssClassToMatch, 0) !== -1) {\n return true;\n }\n }\n else if (item === 1 /* Classes */) {\n // We found the classes section. Start searching for the class.\n while (i < attrs.length && typeof (item = attrs[i++]) == 'string') {\n // while we have strings\n if (item.toLowerCase() === cssClassToMatch)\n return true;\n }\n return false;\n }\n }\n return false;\n}\n/**\n * Checks whether the `tNode` represents an inline template (e.g. `*ngFor`).\n *\n * @param tNode current TNode\n */\nfunction isInlineTemplate(tNode) {\n return tNode.type === 4 /* Container */ && tNode.value !== NG_TEMPLATE_SELECTOR;\n}\n/**\n * Function that checks whether a given tNode matches tag-based selector and has a valid type.\n *\n * Matching can be performed in 2 modes: projection mode (when we project nodes) and regular\n * directive matching mode:\n * - in the \"directive matching\" mode we do _not_ take TContainer's tagName into account if it is\n * different from NG_TEMPLATE_SELECTOR (value different from NG_TEMPLATE_SELECTOR indicates that a\n * tag name was extracted from * syntax so we would match the same directive twice);\n * - in the \"projection\" mode, we use a tag name potentially extracted from the * syntax processing\n * (applicable to TNodeType.Container only).\n */\nfunction hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) {\n const tagNameToCompare = tNode.type === 4 /* Container */ && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value;\n return currentSelector === tagNameToCompare;\n}\n/**\n * A utility function to match an Ivy node static data against a simple CSS selector\n *\n * @param node static data of the node to match\n * @param selector The selector to try matching against the node.\n * @param isProjectionMode if `true` we are matching for content projection, otherwise we are doing\n * directive matching.\n * @returns true if node matches the selector.\n */\nfunction isNodeMatchingSelector(tNode, selector, isProjectionMode) {\n ngDevMode && assertDefined(selector[0], 'Selector should have a tag name');\n let mode = 4 /* ELEMENT */;\n const nodeAttrs = tNode.attrs || [];\n // Find the index of first attribute that has no value, only a name.\n const nameOnlyMarkerIdx = getNameOnlyMarkerIndex(nodeAttrs);\n // When processing \":not\" selectors, we skip to the next \":not\" if the\n // current one doesn't match\n let skipToNextSelector = false;\n for (let i = 0; i < selector.length; i++) {\n const current = selector[i];\n if (typeof current === 'number') {\n // If we finish processing a :not selector and it hasn't failed, return false\n if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) {\n return false;\n }\n // If we are skipping to the next :not() and this mode flag is positive,\n // it's a part of the current :not() selector, and we should keep skipping\n if (skipToNextSelector && isPositive(current))\n continue;\n skipToNextSelector = false;\n mode = current | (mode & 1 /* NOT */);\n continue;\n }\n if (skipToNextSelector)\n continue;\n if (mode & 4 /* ELEMENT */) {\n mode = 2 /* ATTRIBUTE */ | mode & 1 /* NOT */;\n if (current !== '' && !hasTagAndTypeMatch(tNode, current, isProjectionMode) ||\n current === '' && selector.length === 1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else {\n const selectorAttrValue = mode & 8 /* CLASS */ ? current : selector[++i];\n // special case for matching against classes when a tNode has been instantiated with\n // class and style values as separate attribute values (e.g. ['title', CLASS, 'foo'])\n if ((mode & 8 /* CLASS */) && tNode.attrs !== null) {\n if (!isCssClassMatching(tNode.attrs, selectorAttrValue, isProjectionMode)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n continue;\n }\n const attrName = (mode & 8 /* CLASS */) ? 'class' : current;\n const attrIndexInNode = findAttrIndexInNode(attrName, nodeAttrs, isInlineTemplate(tNode), isProjectionMode);\n if (attrIndexInNode === -1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n continue;\n }\n if (selectorAttrValue !== '') {\n let nodeAttrValue;\n if (attrIndexInNode > nameOnlyMarkerIdx) {\n nodeAttrValue = '';\n }\n else {\n ngDevMode &&\n assertNotEqual(nodeAttrs[attrIndexInNode], 0 /* NamespaceURI */, 'We do not match directives on namespaced attributes');\n // we lowercase the attribute value to be able to match\n // selectors without case-sensitivity\n // (selectors are already in lowercase when generated)\n nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase();\n }\n const compareAgainstClassName = mode & 8 /* CLASS */ ? nodeAttrValue : null;\n if (compareAgainstClassName &&\n classIndexOf(compareAgainstClassName, selectorAttrValue, 0) !== -1 ||\n mode & 2 /* ATTRIBUTE */ && selectorAttrValue !== nodeAttrValue) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n }\n }\n return isPositive(mode) || skipToNextSelector;\n}\nfunction isPositive(mode) {\n return (mode & 1 /* NOT */) === 0;\n}\n/**\n * Examines the attribute's definition array for a node to find the index of the\n * attribute that matches the given `name`.\n *\n * NOTE: This will not match namespaced attributes.\n *\n * Attribute matching depends upon `isInlineTemplate` and `isProjectionMode`.\n * The following table summarizes which types of attributes we attempt to match:\n *\n * ===========================================================================================================\n * Modes | Normal Attributes | Bindings Attributes | Template Attributes | I18n\n * Attributes\n * ===========================================================================================================\n * Inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Inline + Directive | NO | NO | YES | NO\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Directive | YES | YES | NO | YES\n * ===========================================================================================================\n *\n * @param name the name of the attribute to find\n * @param attrs the attribute array to examine\n * @param isInlineTemplate true if the node being matched is an inline template (e.g. `*ngFor`)\n * rather than a manually expanded template node (e.g `<ng-template>`).\n * @param isProjectionMode true if we are matching against content projection otherwise we are\n * matching against directives.\n */\nfunction findAttrIndexInNode(name, attrs, isInlineTemplate, isProjectionMode) {\n if (attrs === null)\n return -1;\n let i = 0;\n if (isProjectionMode || !isInlineTemplate) {\n let bindingsMode = false;\n while (i < attrs.length) {\n const maybeAttrName = attrs[i];\n if (maybeAttrName === name) {\n return i;\n }\n else if (maybeAttrName === 3 /* Bindings */ || maybeAttrName === 6 /* I18n */) {\n bindingsMode = true;\n }\n else if (maybeAttrName === 1 /* Classes */ || maybeAttrName === 2 /* Styles */) {\n let value = attrs[++i];\n // We should skip classes here because we have a separate mechanism for\n // matching classes in projection mode.\n while (typeof value === 'string') {\n value = attrs[++i];\n }\n continue;\n }\n else if (maybeAttrName === 4 /* Template */) {\n // We do not care about Template attributes in this scenario.\n break;\n }\n else if (maybeAttrName === 0 /* NamespaceURI */) {\n // Skip the whole namespaced attribute and value. This is by design.\n i += 4;\n continue;\n }\n // In binding mode there are only names, rather than name-value pairs.\n i += bindingsMode ? 1 : 2;\n }\n // We did not match the attribute\n return -1;\n }\n else {\n return matchTemplateAttribute(attrs, name);\n }\n}\nfunction isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) {\n for (let i = 0; i < selector.length; i++) {\n if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) {\n return true;\n }\n }\n return false;\n}\nfunction getProjectAsAttrValue(tNode) {\n const nodeAttrs = tNode.attrs;\n if (nodeAttrs != null) {\n const ngProjectAsAttrIdx = nodeAttrs.indexOf(5 /* ProjectAs */);\n // only check for ngProjectAs in attribute names, don't accidentally match attribute's value\n // (attribute names are stored at even indexes)\n if ((ngProjectAsAttrIdx & 1) === 0) {\n return nodeAttrs[ngProjectAsAttrIdx + 1];\n }\n }\n return null;\n}\nfunction getNameOnlyMarkerIndex(nodeAttrs) {\n for (let i = 0; i < nodeAttrs.length; i++) {\n const nodeAttr = nodeAttrs[i];\n if (isNameOnlyAttributeMarker(nodeAttr)) {\n return i;\n }\n }\n return nodeAttrs.length;\n}\nfunction matchTemplateAttribute(attrs, name) {\n let i = attrs.indexOf(4 /* Template */);\n if (i > -1) {\n i++;\n while (i < attrs.length) {\n const attr = attrs[i];\n // Return in case we checked all template attrs and are switching to the next section in the\n // attrs array (that starts with a number that represents an attribute marker).\n if (typeof attr === 'number')\n return -1;\n if (attr === name)\n return i;\n i++;\n }\n }\n return -1;\n}\n/**\n * Checks whether a selector is inside a CssSelectorList\n * @param selector Selector to be checked.\n * @param list List in which to look for the selector.\n */\nfunction isSelectorInSelectorList(selector, list) {\n selectorListLoop: for (let i = 0; i < list.length; i++) {\n const currentSelectorInList = list[i];\n if (selector.length !== currentSelectorInList.length) {\n continue;\n }\n for (let j = 0; j < selector.length; j++) {\n if (selector[j] !== currentSelectorInList[j]) {\n continue selectorListLoop;\n }\n }\n return true;\n }\n return false;\n}\nfunction maybeWrapInNotSelector(isNegativeMode, chunk) {\n return isNegativeMode ? ':not(' + chunk.trim() + ')' : chunk;\n}\nfunction stringifyCSSSelector(selector) {\n let result = selector[0];\n let i = 1;\n let mode = 2 /* ATTRIBUTE */;\n let currentChunk = '';\n let isNegativeMode = false;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode & 2 /* ATTRIBUTE */) {\n const attrValue = selector[++i];\n currentChunk +=\n '[' + valueOrMarker + (attrValue.length > 0 ? '=\"' + attrValue + '\"' : '') + ']';\n }\n else if (mode & 8 /* CLASS */) {\n currentChunk += '.' + valueOrMarker;\n }\n else if (mode & 4 /* ELEMENT */) {\n currentChunk += ' ' + valueOrMarker;\n }\n }\n else {\n //\n // Append current chunk to the final result in case we come across SelectorFlag, which\n // indicates that the previous section of a selector is over. We need to accumulate content\n // between flags to make sure we wrap the chunk later in :not() selector if needed, e.g.\n // ```\n // ['', Flags.CLASS, '.classA', Flags.CLASS | Flags.NOT, '.classB', '.classC']\n // ```\n // should be transformed to `.classA :not(.classB .classC)`.\n //\n // Note: for negative selector part, we accumulate content between flags until we find the\n // next negative flag. This is needed to support a case where `:not()` rule contains more than\n // one chunk, e.g. the following selector:\n // ```\n // ['', Flags.ELEMENT | Flags.NOT, 'p', Flags.CLASS, 'foo', Flags.CLASS | Flags.NOT, 'bar']\n // ```\n // should be stringified to `:not(p.foo) :not(.bar)`\n //\n if (currentChunk !== '' && !isPositive(valueOrMarker)) {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n currentChunk = '';\n }\n mode = valueOrMarker;\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector.\n isNegativeMode = isNegativeMode || !isPositive(mode);\n }\n i++;\n }\n if (currentChunk !== '') {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n }\n return result;\n}\n/**\n * Generates string representation of CSS selector in parsed form.\n *\n * ComponentDef and DirectiveDef are generated with the selector in parsed form to avoid doing\n * additional parsing at runtime (for example, for directive matching). However in some cases (for\n * example, while bootstrapping a component), a string version of the selector is required to query\n * for the host element on the page. This function takes the parsed form of a selector and returns\n * its string representation.\n *\n * @param selectorList selector in parsed form\n * @returns string representation of a given selector\n */\nfunction stringifyCSSSelectorList(selectorList) {\n return selectorList.map(stringifyCSSSelector).join(',');\n}\n/**\n * Extracts attributes and classes information from a given CSS selector.\n *\n * This function is used while creating a component dynamically. In this case, the host element\n * (that is created dynamically) should contain attributes and classes specified in component's CSS\n * selector.\n *\n * @param selector CSS selector in parsed form (in a form of array)\n * @returns object with `attrs` and `classes` fields that contain extracted information\n */\nfunction extractAttrsAndClassesFromSelector(selector) {\n const attrs = [];\n const classes = [];\n let i = 1;\n let mode = 2 /* ATTRIBUTE */;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode === 2 /* ATTRIBUTE */) {\n if (valueOrMarker !== '') {\n attrs.push(valueOrMarker, selector[++i]);\n }\n }\n else if (mode === 8 /* CLASS */) {\n classes.push(valueOrMarker);\n }\n }\n else {\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector. Since attributes and classes are\n // extracted only for \"positive\" part of the selector, we can stop here.\n if (!isPositive(mode))\n break;\n mode = valueOrMarker;\n }\n i++;\n }\n return { attrs, classes };\n}\n\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/** A special value which designates that a value has not changed. */\nconst NO_CHANGE = (typeof ngDevMode === 'undefined' || ngDevMode) ? { __brand__: 'NO_CHANGE' } : {};\n\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/**\n * Advances to an element for later binding instructions.\n *\n * Used in conjunction with instructions like {@link property} to act on elements with specified\n * indices, for example those created with {@link element} or {@link elementStart}.\n *\n * ```ts\n * (rf: RenderFlags, ctx: any) => {\n * if (rf & 1) {\n * text(0, 'Hello');\n * text(1, 'Goodbye')\n * element(2, 'div');\n * }\n * if (rf & 2) {\n * advance(2); // Advance twice to the <div>.\n * property('title', 'test');\n * }\n * }\n * ```\n * @param delta Number of elements to advance forwards by.\n *\n * @codeGenApi\n */\nfunction ɵɵadvance(delta) {\n ngDevMode && assertGreaterThan(delta, 0, 'Can only advance forward');\n selectIndexInternal(getTView(), getLView(), getSelectedIndex() + delta, isInCheckNoChangesMode());\n}\nfunction selectIndexInternal(tView, lView, index, checkNoChangesMode) {\n ngDevMode && assertIndexInDeclRange(lView, index);\n // Flush the initial hooks for elements in the view that have been added up to this point.\n // PERF WARNING: do NOT extract this to a separate function without running benchmarks\n if (!checkNoChangesMode) {\n const hooksInitPhaseCompleted = (lView[FLAGS] & 3 /* InitPhaseStateMask */) === 3 /* InitPhaseCompleted */;\n if (hooksInitPhaseCompleted) {\n const preOrderCheckHooks = tView.preOrderCheckHooks;\n if (preOrderCheckHooks !== null) {\n executeCheckHooks(lView, preOrderCheckHooks, index);\n }\n }\n else {\n const preOrderHooks = tView.preOrderHooks;\n if (preOrderHooks !== null) {\n executeInitAndCheckHooks(lView, preOrderHooks, 0 /* OnInitHooksToBeRun */, index);\n }\n }\n }\n // We must set the selected index *after* running the hooks, because hooks may have side-effects\n // that cause other template functions to run, thus updating the selected index, which is global\n // state. If we run `setSelectedIndex` *before* we run the hooks, in some cases the selected index\n // will be altered by the time we leave the `ɵɵadvance` instruction.\n setSelectedIndex(index);\n}\n\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/**\n * THIS FILE CONTAINS CODE WHICH SHOULD BE TREE SHAKEN AND NEVER CALLED FROM PRODUCTION CODE!!!\n */\n/**\n * Creates an `Array` construction with a given name. This is useful when\n * looking for memory consumption to see what time of array it is.\n *\n *\n * @param name Name to give to the constructor\n * @returns A subclass of `Array` if possible. This can only be done in\n * environments which support `class` construct.\n */\nfunction createNamedArrayType(name) {\n // This should never be called in prod mode, so let's verify that is the case.\n if (ngDevMode) {\n try {\n // If this function were compromised the following could lead to arbitrary\n // script execution. We bless it with Trusted Types anyway since this\n // function is stripped out of production binaries.\n return (newTrustedFunctionForDev('Array', `return class ${name} extends Array{}`))(Array);\n }\n catch (e) {\n // If it does not work just give up and fall back to regular Array.\n return Array;\n }\n }\n else {\n throw new Error('Looks like we are in \\'prod mode\\', but we are creating a named Array type, which is wrong! Check your code');\n }\n}\n\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 */\nfunction toTStylingRange(prev, next) {\n ngDevMode && assertNumberInRange(prev, 0, 32767 /* UNSIGNED_MASK */);\n ngDevMode && assertNumberInRange(next, 0, 32767 /* UNSIGNED_MASK */);\n return (prev << 17 /* PREV_SHIFT */ | next << 2 /* NEXT_SHIFT */);\n}\nfunction getTStylingRangePrev(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange >> 17 /* PREV_SHIFT */) & 32767 /* UNSIGNED_MASK */;\n}\nfunction getTStylingRangePrevDuplicate(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange & 2 /* PREV_DUPLICATE */) ==\n 2 /* PREV_DUPLICATE */;\n}\nfunction setTStylingRangePrev(tStylingRange, previous) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n ngDevMode && assertNumberInRange(previous, 0, 32767 /* UNSIGNED_MASK */);\n return ((tStylingRange & ~4294836224 /* PREV_MASK */) |\n (previous << 17 /* PREV_SHIFT */));\n}\nfunction setTStylingRangePrevDuplicate(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange | 2 /* PREV_DUPLICATE */);\n}\nfunction getTStylingRangeNext(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange & 131068 /* NEXT_MASK */) >> 2 /* NEXT_SHIFT */;\n}\nfunction setTStylingRangeNext(tStylingRange, next) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n ngDevMode && assertNumberInRange(next, 0, 32767 /* UNSIGNED_MASK */);\n return ((tStylingRange & ~131068 /* NEXT_MASK */) | //\n next << 2 /* NEXT_SHIFT */);\n}\nfunction getTStylingRangeNextDuplicate(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange & 1 /* NEXT_DUPLICATE */) ===\n 1 /* NEXT_DUPLICATE */;\n}\nfunction setTStylingRangeNextDuplicate(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n return (tStylingRange | 1 /* NEXT_DUPLICATE */);\n}\nfunction getTStylingRangeTail(tStylingRange) {\n ngDevMode && assertNumber(tStylingRange, 'expected number');\n const next = getTStylingRangeNext(tStylingRange);\n return next === 0 ? getTStylingRangePrev(tStylingRange) : next;\n}\n\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/**\n * Patch a `debug` property on top of the existing object.\n *\n * NOTE: always call this method with `ngDevMode && attachDebugObject(...)`\n *\n * @param obj Object to patch\n * @param debug Value to patch\n */\nfunction attachDebugObject(obj, debug) {\n if (ngDevMode) {\n Object.defineProperty(obj, 'debug', { value: debug, enumerable: false });\n }\n else {\n throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');\n }\n}\n/**\n * Patch a `debug` property getter on top of the existing object.\n *\n * NOTE: always call this method with `ngDevMode && attachDebugObject(...)`\n *\n * @param obj Object to patch\n * @param debugGetter Getter returning a value to patch\n */\nfunction attachDebugGetter(obj, debugGetter) {\n if (ngDevMode) {\n Object.defineProperty(obj, 'debug', { get: debugGetter, enumerable: false });\n }\n else {\n throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');\n }\n}\n\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/*\n * This file contains conditionally attached classes which provide human readable (debug) level\n * information for `LView`, `LContainer` and other internal data structures. These data structures\n * are stored internally as array which makes it very difficult during debugging to reason about the\n * current state of the system.\n *\n * Patching the array with extra property does change the array's hidden class' but it does not\n * change the cost of access, therefore this patching should not have significant if any impact in\n * `ngDevMode` mode. (see: https://jsperf.com/array-vs-monkey-patch-array)\n *\n * So instead of seeing:\n * ```\n * Array(30) [Object, 659, null, …]\n * ```\n *\n * You get to see:\n * ```\n * LViewDebug {\n * views: [...],\n * flags: {attached: true, ...}\n * nodes: [\n * {html: '<div id=\"123\">', ..., nodes: [\n * {html: '<span>', ..., nodes: null}\n * ]}\n * ]\n * }\n * ```\n */\nlet LVIEW_COMPONENT_CACHE;\nlet LVIEW_EMBEDDED_CACHE;\nlet LVIEW_ROOT;\nlet LVIEW_COMPONENT;\nlet LVIEW_EMBEDDED;\n/**\n * This function clones a blueprint and creates LView.\n *\n * Simple slice will keep the same type, and we need it to be LView\n */\nfunction cloneToLViewFromTViewBlueprint(tView) {\n const debugTView = tView;\n const lView = getLViewToClone(debugTView.type, tView.template && tView.template.name);\n return lView.concat(tView.blueprint);\n}\nclass LRootView extends Array {\n}\nclass LComponentView extends Array {\n}\nclass LEmbeddedView extends Array {\n}\nfunction getLViewToClone(type, name) {\n switch (type) {\n case 0 /* Root */:\n if (LVIEW_ROOT === undefined)\n LVIEW_ROOT = new LRootView();\n return LVIEW_ROOT;\n case 1 /* Component */:\n if (!ngDevMode || !ngDevMode.namedConstructors) {\n if (LVIEW_COMPONENT === undefined)\n LVIEW_COMPONENT = new LComponentView();\n return LVIEW_COMPONENT;\n }\n if (LVIEW_COMPONENT_CACHE === undefined)\n LVIEW_COMPONENT_CACHE = new Map();\n let componentArray = LVIEW_COMPONENT_CACHE.get(name);\n if (componentArray === undefined) {\n componentArray = new (createNamedArrayType('LComponentView' + nameSuffix(name)))();\n LVIEW_COMPONENT_CACHE.set(name, componentArray);\n }\n return componentArray;\n case 2 /* Embedded */:\n if (!ngDevMode || !ngDevMode.namedConstructors) {\n if (LVIEW_EMBEDDED === undefined)\n LVIEW_EMBEDDED = new LEmbeddedView();\n return LVIEW_EMBEDDED;\n }\n if (LVIEW_EMBEDDED_CACHE === undefined)\n LVIEW_EMBEDDED_CACHE = new Map();\n let embeddedArray = LVIEW_EMBEDDED_CACHE.get(name);\n if (embeddedArray === undefined) {\n embeddedArray = new (createNamedArrayType('LEmbeddedView' + nameSuffix(name)))();\n LVIEW_EMBEDDED_CACHE.set(name, embeddedArray);\n }\n return embeddedArray;\n }\n}\nfunction nameSuffix(text) {\n if (text == null)\n return '';\n const index = text.lastIndexOf('_Template');\n return '_' + (index === -1 ? text : text.substr(0, index));\n}\n/**\n * This class is a debug version of Object literal so that we can have constructor name show up\n * in\n * debug tools in ngDevMode.\n */\nconst TViewConstructor = class TView {\n constructor(type, blueprint, template, queries, viewQuery, declTNode, data, bindingStartIndex, expandoStartIndex, hostBindingOpCodes, firstCreatePass, firstUpdatePass, staticViewQueries, staticContentQueries, preOrderHooks, preOrderCheckHooks, contentHooks, contentCheckHooks, viewHooks, viewCheckHooks, destroyHooks, cleanup, contentQueries, components, directiveRegistry, pipeRegistry, firstChild, schemas, consts, incompleteFirstPass, _decls, _vars) {\n this.type = type;\n this.blueprint = blueprint;\n this.template = template;\n this.queries = queries;\n this.viewQuery = viewQuery;\n this.declTNode = declTNode;\n this.data = data;\n this.bindingStartIndex = bindingStartIndex;\n this.expandoStartIndex = expandoStartIndex;\n this.hostBindingOpCodes = hostBindingOpCodes;\n this.firstCreatePass = firstCreatePass;\n this.firstUpdatePass = firstUpdatePass;\n this.staticViewQueries = staticViewQueries;\n this.staticContentQueries = staticContentQueries;\n this.preOrderHooks = preOrderHooks;\n this.preOrderCheckHooks = preOrderCheckHooks;\n this.contentHooks = contentHooks;\n this.contentCheckHooks = contentCheckHooks;\n this.viewHooks = viewHooks;\n this.viewCheckHooks = viewCheckHooks;\n this.destroyHooks = destroyHooks;\n this.cleanup = cleanup;\n this.contentQueries = contentQueries;\n this.components = components;\n this.directiveRegistry = directiveRegistry;\n this.pipeRegistry = pipeRegistry;\n this.firstChild = firstChild;\n this.schemas = schemas;\n this.consts = consts;\n this.incompleteFirstPass = incompleteFirstPass;\n this._decls = _decls;\n this._vars = _vars;\n }\n get template_() {\n const buf = [];\n processTNodeChildren(this.firstChild, buf);\n return buf.join('');\n }\n get type_() {\n return TViewTypeAsString[this.type] || `TViewType.?${this.type}?`;\n }\n};\nclass TNode {\n constructor(tView_, //\n type, //\n index, //\n insertBeforeIndex, //\n injectorIndex, //\n directiveStart, //\n directiveEnd, //\n directiveStylingLast, //\n propertyBindings, //\n flags, //\n providerIndexes, //\n value, //\n attrs, //\n mergedAttrs, //\n localNames, //\n initialInputs, //\n inputs, //\n outputs, //\n tViews, //\n next, //\n projectionNext, //\n child, //\n parent, //\n projection, //\n styles, //\n stylesWithoutHost, //\n residualStyles, //\n classes, //\n classesWithoutHost, //\n residualClasses, //\n classBindings, //\n styleBindings) {\n this.tView_ = tView_;\n this.type = type;\n this.index = index;\n this.insertBeforeIndex = insertBeforeIndex;\n this.injectorIndex = injectorIndex;\n this.directiveStart = directiveStart;\n this.directiveEnd = directiveEnd;\n this.directiveStylingLast = directiveStylingLast;\n this.propertyBindings = propertyBindings;\n this.flags = flags;\n this.providerIndexes = providerIndexes;\n this.value = value;\n this.attrs = attrs;\n this.mergedAttrs = mergedAttrs;\n this.localNames = localNames;\n this.initialInputs = initialInputs;\n this.inputs = inputs;\n this.outputs = outputs;\n this.tViews = tViews;\n this.next = next;\n this.projectionNext = projectionNext;\n this.child = child;\n this.parent = parent;\n this.projection = projection;\n this.styles = styles;\n this.stylesWithoutHost = stylesWithoutHost;\n this.residualStyles = residualStyles;\n this.classes = classes;\n this.classesWithoutHost = classesWithoutHost;\n this.residualClasses = residualClasses;\n this.classBindings = classBindings;\n this.styleBindings = styleBindings;\n }\n /**\n * Return a human debug version of the set of `NodeInjector`s which will be consulted when\n * resolving tokens from this `TNode`.\n *\n * When debugging applications, it is often difficult to determine which `NodeInjector`s will be\n * consulted. This method shows a list of `DebugNode`s representing the `TNode`s which will be\n * consulted in order when resolving a token starting at this `TNode`.\n *\n * The original data is stored in `LView` and `TView` with a lot of offset indexes, and so it is\n * difficult to reason about.\n *\n * @param lView The `LView` instance for this `TNode`.\n */\n debugNodeInjectorPath(lView) {\n const path = [];\n let injectorIndex = getInjectorIndex(this, lView);\n if (injectorIndex === -1) {\n // Looks like the current `TNode` does not have `NodeInjector` associated with it => look for\n // parent NodeInjector.\n const parentLocation = getParentInjectorLocation(this, lView);\n if (parentLocation !== NO_PARENT_INJECTOR) {\n // We found a parent, so start searching from the parent location.\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // No parents have been found, so there are no `NodeInjector`s to consult.\n }\n }\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n const tNode = lView[TVIEW].data[injectorIndex + 8 /* TNODE */];\n path.push(buildDebugNode(tNode, lView));\n const parentLocation = lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR) {\n injectorIndex = -1;\n }\n else {\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n return path;\n }\n get type_() {\n return toTNodeTypeAsString(this.type) || `TNodeType.?${this.type}?`;\n }\n get flags_() {\n const flags = [];\n if (this.flags & 16 /* hasClassInput */)\n flags.push('TNodeFlags.hasClassInput');\n if (this.flags & 8 /* hasContentQuery */)\n flags.push('TNodeFlags.hasContentQuery');\n if (this.flags & 32 /* hasStyleInput */)\n flags.push('TNodeFlags.hasStyleInput');\n if (this.flags & 128 /* hasHostBindings */)\n flags.push('TNodeFlags.hasHostBindings');\n if (this.flags & 2 /* isComponentHost */)\n flags.push('TNodeFlags.isComponentHost');\n if (this.flags & 1 /* isDirectiveHost */)\n flags.push('TNodeFlags.isDirectiveHost');\n if (this.flags & 64 /* isDetached */)\n flags.push('TNodeFlags.isDetached');\n if (this.flags & 4 /* isProjected */)\n flags.push('TNodeFlags.isProjected');\n return flags.join('|');\n }\n get template_() {\n if (this.type & 1 /* Text */)\n return this.value;\n const buf = [];\n const tagName = typeof this.value === 'string' && this.value || this.type_;\n buf.push('<', tagName);\n if (this.flags) {\n buf.push(' ', this.flags_);\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length;) {\n const attrName = this.attrs[i++];\n if (typeof attrName == 'number') {\n break;\n }\n const attrValue = this.attrs[i++];\n buf.push(' ', attrName, '=\"', attrValue, '\"');\n }\n }\n buf.push('>');\n processTNodeChildren(this.child, buf);\n buf.push('</', tagName, '>');\n return buf.join('');\n }\n get styleBindings_() {\n return toDebugStyleBinding(this, false);\n }\n get classBindings_() {\n return toDebugStyleBinding(this, true);\n }\n get providerIndexStart_() {\n return this.providerIndexes & 1048575 /* ProvidersStartIndexMask */;\n }\n get providerIndexEnd_() {\n return this.providerIndexStart_ +\n (this.providerIndexes >>> 20 /* CptViewProvidersCountShift */);\n }\n}\nconst TNodeDebug = TNode;\nfunction toDebugStyleBinding(tNode, isClassBased) {\n const tData = tNode.tView_.data;\n const bindings = [];\n const range = isClassBased ? tNode.classBindings : tNode.styleBindings;\n const prev = getTStylingRangePrev(range);\n const next = getTStylingRangeNext(range);\n let isTemplate = next !== 0;\n let cursor = isTemplate ? next : prev;\n while (cursor !== 0) {\n const itemKey = tData[cursor];\n const itemRange = tData[cursor + 1];\n bindings.unshift({\n key: itemKey,\n index: cursor,\n isTemplate: isTemplate,\n prevDuplicate: getTStylingRangePrevDuplicate(itemRange),\n nextDuplicate: getTStylingRangeNextDuplicate(itemRange),\n nextIndex: getTStylingRangeNext(itemRange),\n prevIndex: getTStylingRangePrev(itemRange),\n });\n if (cursor === prev)\n isTemplate = false;\n cursor = getTStylingRangePrev(itemRange);\n }\n bindings.push((isClassBased ? tNode.residualClasses : tNode.residualStyles) || null);\n return bindings;\n}\nfunction processTNodeChildren(tNode, buf) {\n while (tNode) {\n buf.push(tNode.template_);\n tNode = tNode.next;\n }\n}\nclass TViewData extends Array {\n}\nlet TVIEWDATA_EMPTY; // can't initialize here or it will not be tree shaken, because\n// `LView` constructor could have side-effects.\n/**\n * This function clones a blueprint and creates TData.\n *\n * Simple slice will keep the same type, and we need it to be TData\n */\nfunction cloneToTViewData(list) {\n if (TVIEWDATA_EMPTY === undefined)\n TVIEWDATA_EMPTY = new TViewData();\n return TVIEWDATA_EMPTY.concat(list);\n}\nclass LViewBlueprint extends Array {\n}\nclass MatchesArray extends Array {\n}\nclass TViewComponents extends Array {\n}\nclass TNodeLocalNames extends Array {\n}\nclass TNodeInitialInputs extends Array {\n}\nclass LCleanup extends Array {\n}\nclass TCleanup extends Array {\n}\nfunction attachLViewDebug(lView) {\n attachDebugObject(lView, new LViewDebug(lView));\n}\nfunction attachLContainerDebug(lContainer) {\n attachDebugObject(lContainer, new LContainerDebug(lContainer));\n}\nfunction toDebug(obj) {\n if (obj) {\n const debug = obj.debug;\n assertDefined(debug, 'Object does not have a debug representation.');\n return debug;\n }\n else {\n return obj;\n }\n}\n/**\n * Use this method to unwrap a native element in `LView` and convert it into HTML for easier\n * reading.\n *\n * @param value possibly wrapped native DOM node.\n * @param includeChildren If `true` then the serialized HTML form will include child elements\n * (same\n * as `outerHTML`). If `false` then the serialized HTML form will only contain the element\n * itself\n * (will not serialize child elements).\n */\nfunction toHtml(value, includeChildren = false) {\n const node = unwrapRNode(value);\n if (node) {\n switch (node.nodeType) {\n case Node.TEXT_NODE:\n return node.textContent;\n case Node.COMMENT_NODE:\n return `<!--${node.textContent}-->`;\n case Node.ELEMENT_NODE:\n const outerHTML = node.outerHTML;\n if (includeChildren) {\n return outerHTML;\n }\n else {\n const innerHTML = '>' + node.innerHTML + '<';\n return (outerHTML.split(innerHTML)[0]) + '>';\n }\n }\n }\n return null;\n}\nclass LViewDebug {\n constructor(_raw_lView) {\n this._raw_lView = _raw_lView;\n }\n /**\n * Flags associated with the `LView` unpacked into a more readable state.\n */\n get flags() {\n const flags = this._raw_lView[FLAGS];\n return {\n __raw__flags__: flags,\n initPhaseState: flags & 3 /* InitPhaseStateMask */,\n creationMode: !!(flags & 4 /* CreationMode */),\n firstViewPass: !!(flags & 8 /* FirstLViewPass */),\n checkAlways: !!(flags & 16 /* CheckAlways */),\n dirty: !!(flags & 64 /* Dirty */),\n attached: !!(flags & 128 /* Attached */),\n destroyed: !!(flags & 256 /* Destroyed */),\n isRoot: !!(flags & 512 /* IsRoot */),\n indexWithinInitPhase: flags >> 11 /* IndexWithinInitPhaseShift */,\n };\n }\n get parent() {\n return toDebug(this._raw_lView[PARENT]);\n }\n get hostHTML() {\n return toHtml(this._raw_lView[HOST], true);\n }\n get html() {\n return (this.nodes || []).map(mapToHTML).join('');\n }\n get context() {\n return this._raw_lView[CONTEXT];\n }\n /**\n * The tree of nodes associated with the current `LView`. The nodes have been normalized into\n * a tree structure with relevant details pulled out for readability.\n */\n get nodes() {\n const lView = this._raw_lView;\n const tNode = lView[TVIEW].firstChild;\n return toDebugNodes(tNode, lView);\n }\n get template() {\n return this.tView.template_;\n }\n get tView() {\n return this._raw_lView[TVIEW];\n }\n get cleanup() {\n return this._raw_lView[CLEANUP];\n }\n get injector() {\n return this._raw_lView[INJECTOR$1];\n }\n get rendererFactory() {\n return this._raw_lView[RENDERER_FACTORY];\n }\n get renderer() {\n return this._raw_lView[RENDERER];\n }\n get sanitizer() {\n return this._raw_lView[SANITIZER];\n }\n get childHead() {\n return toDebug(this._raw_lView[CHILD_HEAD]);\n }\n get next() {\n return toDebug(this._raw_lView[NEXT]);\n }\n get childTail() {\n return toDebug(this._raw_lView[CHILD_TAIL]);\n }\n get declarationView() {\n return toDebug(this._raw_lView[DECLARATION_VIEW]);\n }\n get queries() {\n return this._raw_lView[QUERIES];\n }\n get tHost() {\n return this._raw_lView[T_HOST];\n }\n get decls() {\n return toLViewRange(this.tView, this._raw_lView, HEADER_OFFSET, this.tView.bindingStartIndex);\n }\n get vars() {\n return toLViewRange(this.tView, this._raw_lView, this.tView.bindingStartIndex, this.tView.expandoStartIndex);\n }\n get expando() {\n return toLViewRange(this.tView, this._raw_lView, this.tView.expandoStartIndex, this._raw_lView.length);\n }\n /**\n * Normalized view of child views (and containers) attached at this location.\n */\n get childViews() {\n const childViews = [];\n let child = this.childHead;\n while (child) {\n childViews.push(child);\n child = child.next;\n }\n return childViews;\n }\n}\nfunction mapToHTML(node) {\n if (node.type === 'ElementContainer') {\n return (node.children || []).map(mapToHTML).join('');\n }\n else if (node.type === 'IcuContainer') {\n throw new Error('Not implemented');\n }\n else {\n return toHtml(node.native, true) || '';\n }\n}\nfunction toLViewRange(tView, lView, start, end) {\n let content = [];\n for (let index = start; index < end; index++) {\n content.push({ index: index, t: tView.data[index], l: lView[index] });\n }\n return { start: start, end: end, length: end - start, content: content };\n}\n/**\n * Turns a flat list of nodes into a tree by walking the associated `TNode` tree.\n *\n * @param tNode\n * @param lView\n */\nfunction toDebugNodes(tNode, lView) {\n if (tNode) {\n const debugNodes = [];\n let tNodeCursor = tNode;\n while (tNodeCursor) {\n debugNodes.push(buildDebugNode(tNodeCursor, lView));\n tNodeCursor = tNodeCursor.next;\n }\n return debugNodes;\n }\n else {\n return [];\n }\n}\nfunction buildDebugNode(tNode, lView) {\n const rawValue = lView[tNode.index];\n const native = unwrapRNode(rawValue);\n const factories = [];\n const instances = [];\n const tView = lView[TVIEW];\n for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {\n const def = tView.data[i];\n factories.push(def.type);\n instances.push(lView[i]);\n }\n return {\n html: toHtml(native),\n type: toTNodeTypeAsString(tNode.type),\n tNode,\n native: native,\n children: toDebugNodes(tNode.child, lView),\n factories,\n instances,\n injector: buildNodeInjectorDebug(tNode, tView, lView),\n get injectorResolutionPath() {\n return tNode.debugNodeInjectorPath(lView);\n },\n };\n}\nfunction buildNodeInjectorDebug(tNode, tView, lView) {\n const viewProviders = [];\n for (let i = tNode.providerIndexStart_; i < tNode.providerIndexEnd_; i++) {\n viewProviders.push(tView.data[i]);\n }\n const providers = [];\n for (let i = tNode.providerIndexEnd_; i < tNode.directiveEnd; i++) {\n providers.push(tView.data[i]);\n }\n const nodeInjectorDebug = {\n bloom: toBloom(lView, tNode.injectorIndex),\n cumulativeBloom: toBloom(tView.data, tNode.injectorIndex),\n providers,\n viewProviders,\n parentInjectorIndex: lView[tNode.providerIndexStart_ - 1],\n };\n return nodeInjectorDebug;\n}\n/**\n * Convert a number at `idx` location in `array` into binary representation.\n *\n * @param array\n * @param idx\n */\nfunction binary(array, idx) {\n const value = array[idx];\n // If not a number we print 8 `?` to retain alignment but let user know that it was called on\n // wrong type.\n if (typeof value !== 'number')\n return '????????';\n // We prefix 0s so that we have constant length number\n const text = '00000000' + value.toString(2);\n return text.substring(text.length - 8);\n}\n/**\n * Convert a bloom filter at location `idx` in `array` into binary representation.\n *\n * @param array\n * @param idx\n */\nfunction toBloom(array, idx) {\n if (idx < 0) {\n return 'NO_NODE_INJECTOR';\n }\n return `${binary(array, idx + 7)}_${binary(array, idx + 6)}_${binary(array, idx + 5)}_${binary(array, idx + 4)}_${binary(array, idx + 3)}_${binary(array, idx + 2)}_${binary(array, idx + 1)}_${binary(array, idx + 0)}`;\n}\nclass LContainerDebug {\n constructor(_raw_lContainer) {\n this._raw_lContainer = _raw_lContainer;\n }\n get hasTransplantedViews() {\n return this._raw_lContainer[HAS_TRANSPLANTED_VIEWS];\n }\n get views() {\n return this._raw_lContainer.slice(CONTAINER_HEADER_OFFSET)\n .map(toDebug);\n }\n get parent() {\n return toDebug(this._raw_lContainer[PARENT]);\n }\n get movedViews() {\n return this._raw_lContainer[MOVED_VIEWS];\n }\n get host() {\n return this._raw_lContainer[HOST];\n }\n get native() {\n return this._raw_lContainer[NATIVE];\n }\n get next() {\n return toDebug(this._raw_lContainer[NEXT]);\n }\n}\n\n/**\n * A permanent marker promise which signifies that the current CD tree is\n * clean.\n */\nconst _CLEAN_PROMISE = (() => Promise.resolve(null))();\n/**\n * Invoke `HostBindingsFunction`s for view.\n *\n * This methods executes `TView.hostBindingOpCodes`. It is used to execute the\n * `HostBindingsFunction`s associated with the current `LView`.\n *\n * @param tView Current `TView`.\n * @param lView Current `LView`.\n */\nfunction processHostBindingOpCodes(tView, lView) {\n const hostBindingOpCodes = tView.hostBindingOpCodes;\n if (hostBindingOpCodes === null)\n return;\n try {\n for (let i = 0; i < hostBindingOpCodes.length; i++) {\n const opCode = hostBindingOpCodes[i];\n if (opCode < 0) {\n // Negative numbers are element indexes.\n setSelectedIndex(~opCode);\n }\n else {\n // Positive numbers are NumberTuple which store bindingRootIndex and directiveIndex.\n const directiveIdx = opCode;\n const bindingRootIndx = hostBindingOpCodes[++i];\n const hostBindingFn = hostBindingOpCodes[++i];\n setBindingRootForHostBindings(bindingRootIndx, directiveIdx);\n const context = lView[directiveIdx];\n hostBindingFn(2 /* Update */, context);\n }\n }\n }\n finally {\n setSelectedIndex(-1);\n }\n}\n/** Refreshes all content queries declared by directives in a given view */\nfunction refreshContentQueries(tView, lView) {\n const contentQueries = tView.contentQueries;\n if (contentQueries !== null) {\n for (let i = 0; i < contentQueries.length; i += 2) {\n const queryStartIdx = contentQueries[i];\n const directiveDefIdx = contentQueries[i + 1];\n if (directiveDefIdx !== -1) {\n const directiveDef = tView.data[directiveDefIdx];\n ngDevMode && assertDefined(directiveDef, 'DirectiveDef not found.');\n ngDevMode &&\n assertDefined(directiveDef.contentQueries, 'contentQueries function should be defined');\n setCurrentQueryIndex(queryStartIdx);\n directiveDef.contentQueries(2 /* Update */, lView[directiveDefIdx], directiveDefIdx);\n }\n }\n }\n}\n/** Refreshes child components in the current view (update mode). */\nfunction refreshChildComponents(hostLView, components) {\n for (let i = 0; i < components.length; i++) {\n refreshComponent(hostLView, components[i]);\n }\n}\n/** Renders child components in the current view (creation mode). */\nfunction renderChildComponents(hostLView, components) {\n for (let i = 0; i < components.length; i++) {\n renderComponent$1(hostLView, components[i]);\n }\n}\nfunction createLView(parentLView, tView, context, flags, host, tHostNode, rendererFactory, renderer, sanitizer, injector) {\n const lView = ngDevMode ? cloneToLViewFromTViewBlueprint(tView) : tView.blueprint.slice();\n lView[HOST] = host;\n lView[FLAGS] = flags | 4 /* CreationMode */ | 128 /* Attached */ | 8 /* FirstLViewPass */;\n resetPreOrderHookFlags(lView);\n ngDevMode && tView.declTNode && parentLView && assertTNodeForLView(tView.declTNode, parentLView);\n lView[PARENT] = lView[DECLARATION_VIEW] = parentLView;\n lView[CONTEXT] = context;\n lView[RENDERER_FACTORY] = (rendererFactory || parentLView && parentLView[RENDERER_FACTORY]);\n ngDevMode && assertDefined(lView[RENDERER_FACTORY], 'RendererFactory is required');\n lView[RENDERER] = (renderer || parentLView && parentLView[RENDERER]);\n ngDevMode && assertDefined(lView[RENDERER], 'Renderer is required');\n lView[SANITIZER] = sanitizer || parentLView && parentLView[SANITIZER] || null;\n lView[INJECTOR$1] = injector || parentLView && parentLView[INJECTOR$1] || null;\n lView[T_HOST] = tHostNode;\n ngDevMode &&\n assertEqual(tView.type == 2 /* Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');\n lView[DECLARATION_COMPONENT_VIEW] =\n tView.type == 2 /* Embedded */ ? parentLView[DECLARATION_COMPONENT_VIEW] : lView;\n ngDevMode && attachLViewDebug(lView);\n return lView;\n}\nfunction getOrCreateTNode(tView, index, type, name, attrs) {\n ngDevMode && index !== 0 && // 0 are bogus nodes and they are OK. See `createContainerRef` in\n // `view_engine_compatibility` for additional context.\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'TNodes can\\'t be in the LView header.');\n // Keep this function short, so that the VM will inline it.\n ngDevMode && assertPureTNodeType(type);\n let tNode = tView.data[index];\n if (tNode === null) {\n tNode = createTNodeAtIndex(tView, index, type, name, attrs);\n if (isInI18nBlock()) {\n // If we are in i18n block then all elements should be pre declared through `Placeholder`\n // See `TNodeType.Placeholder` and `LFrame.inI18n` for more context.\n // If the `TNode` was not pre-declared than it means it was not mentioned which means it was\n // removed, so we mark it as detached.\n tNode.flags |= 64 /* isDetached */;\n }\n }\n else if (tNode.type & 64 /* Placeholder */) {\n tNode.type = type;\n tNode.value = name;\n tNode.attrs = attrs;\n const parent = getCurrentParentTNode();\n tNode.injectorIndex = parent === null ? -1 : parent.injectorIndex;\n ngDevMode && assertTNodeForTView(tNode, tView);\n ngDevMode && assertEqual(index, tNode.index, 'Expecting same index');\n }\n setCurrentTNode(tNode, true);\n return tNode;\n}\nfunction createTNodeAtIndex(tView, index, type, name, attrs) {\n const currentTNode = getCurrentTNodePlaceholderOk();\n const isParent = isCurrentTNodeParent();\n const parent = isParent ? currentTNode : currentTNode && currentTNode.parent;\n // Parents cannot cross component boundaries because components will be used in multiple places.\n const tNode = tView.data[index] =\n createTNode(tView, parent, type, index, name, attrs);\n // Assign a pointer to the first child node of a given view. The first node is not always the one\n // at index 0, in case of i18n, index 0 can be the instruction `i18nStart` and the first node has\n // the index 1 or more, so we can't just check node index.\n if (tView.firstChild === null) {\n tView.firstChild = tNode;\n }\n if (currentTNode !== null) {\n if (isParent) {\n // FIXME(misko): This logic looks unnecessarily complicated. Could we simplify?\n if (currentTNode.child == null && tNode.parent !== null) {\n // We are in the same view, which means we are adding content node to the parent view.\n currentTNode.child = tNode;\n }\n }\n else {\n if (currentTNode.next === null) {\n // In the case of i18n the `currentTNode` may already be linked, in which case we don't want\n // to break the links which i18n created.\n currentTNode.next = tNode;\n }\n }\n }\n return tNode;\n}\n/**\n * When elements are created dynamically after a view blueprint is created (e.g. through\n * i18nApply()), we need to adjust the blueprint for future\n * template passes.\n *\n * @param tView `TView` associated with `LView`\n * @param lView The `LView` containing the blueprint to adjust\n * @param numSlotsToAlloc The number of slots to alloc in the LView, should be >0\n * @param initialValue Initial value to store in blueprint\n */\nfunction allocExpando(tView, lView, numSlotsToAlloc, initialValue) {\n if (numSlotsToAlloc === 0)\n return -1;\n if (ngDevMode) {\n assertFirstCreatePass(tView);\n assertSame(tView, lView[TVIEW], '`LView` must be associated with `TView`!');\n assertEqual(tView.data.length, lView.length, 'Expecting LView to be same size as TView');\n assertEqual(tView.data.length, tView.blueprint.length, 'Expecting Blueprint to be same size as TView');\n assertFirstUpdatePass(tView);\n }\n const allocIdx = lView.length;\n for (let i = 0; i < numSlotsToAlloc; i++) {\n lView.push(initialValue);\n tView.blueprint.push(initialValue);\n tView.data.push(null);\n }\n return allocIdx;\n}\n//////////////////////////\n//// Render\n//////////////////////////\n/**\n * Processes a view in the creation mode. This includes a number of steps in a specific order:\n * - creating view query functions (if any);\n * - executing a template function in the creation mode;\n * - updating static queries (if any);\n * - creating child components defined in a given view.\n */\nfunction renderView(tView, lView, context) {\n ngDevMode && assertEqual(isCreationMode(lView), true, 'Should be run in creation mode');\n enterView(lView);\n try {\n const viewQuery = tView.viewQuery;\n if (viewQuery !== null) {\n executeViewQueryFn(1 /* Create */, viewQuery, context);\n }\n // Execute a template associated with this view, if it exists. A template function might not be\n // defined for the root component views.\n const templateFn = tView.template;\n if (templateFn !== null) {\n executeTemplate(tView, lView, templateFn, 1 /* Create */, context);\n }\n // This needs to be set before children are processed to support recursive components.\n // This must be set to false immediately after the first creation run because in an\n // ngFor loop, all the views will be created together before update mode runs and turns\n // off firstCreatePass. If we don't set it here, instances will perform directive\n // matching, etc again and again.\n if (tView.firstCreatePass) {\n tView.firstCreatePass = false;\n }\n // We resolve content queries specifically marked as `static` in creation mode. Dynamic\n // content queries are resolved during change detection (i.e. update mode), after embedded\n // views are refreshed (see block above).\n if (tView.staticContentQueries) {\n refreshContentQueries(tView, lView);\n }\n // We must materialize query results before child components are processed\n // in case a child component has projected a container. The LContainer needs\n // to exist so the embedded views are properly attached by the container.\n if (tView.staticViewQueries) {\n executeViewQueryFn(2 /* Update */, tView.viewQuery, context);\n }\n // Render child component views.\n const components = tView.components;\n if (components !== null) {\n renderChildComponents(lView, components);\n }\n }\n catch (error) {\n // If we didn't manage to get past the first template pass due to\n // an error, mark the view as corrupted so we can try to recover.\n if (tView.firstCreatePass) {\n tView.incompleteFirstPass = true;\n tView.firstCreatePass = false;\n }\n throw error;\n }\n finally {\n lView[FLAGS] &= ~4 /* CreationMode */;\n leaveView();\n }\n}\n/**\n * Processes a view in update mode. This includes a number of steps in a specific order:\n * - executing a template function in update mode;\n * - executing hooks;\n * - refreshing queries;\n * - setting host bindings;\n * - refreshing child (embedded and component) views.\n */\nfunction refreshView(tView, lView, templateFn, context) {\n ngDevMode && assertEqual(isCreationMode(lView), false, 'Should be run in update mode');\n const flags = lView[FLAGS];\n if ((flags & 256 /* Destroyed */) === 256 /* Destroyed */)\n return;\n enterView(lView);\n // Check no changes mode is a dev only mode used to verify that bindings have not changed\n // since they were assigned. We do not want to execute lifecycle hooks in that mode.\n const isInCheckNoChangesPass = isInCheckNoChangesMode();\n try {\n resetPreOrderHookFlags(lView);\n setBindingIndex(tView.bindingStartIndex);\n if (templateFn !== null) {\n executeTemplate(tView, lView, templateFn, 2 /* Update */, context);\n }\n const hooksInitPhaseCompleted = (flags & 3 /* InitPhaseStateMask */) === 3 /* InitPhaseCompleted */;\n // execute pre-order hooks (OnInit, OnChanges, DoCheck)\n // PERF WARNING: do NOT extract this to a separate function without running benchmarks\n if (!isInCheckNoChangesPass) {\n if (hooksInitPhaseCompleted) {\n const preOrderCheckHooks = tView.preOrderCheckHooks;\n if (preOrderCheckHooks !== null) {\n executeCheckHooks(lView, preOrderCheckHooks, null);\n }\n }\n else {\n const preOrderHooks = tView.preOrderHooks;\n if (preOrderHooks !== null) {\n executeInitAndCheckHooks(lView, preOrderHooks, 0 /* OnInitHooksToBeRun */, null);\n }\n incrementInitPhaseFlags(lView, 0 /* OnInitHooksToBeRun */);\n }\n }\n // First mark transplanted views that are declared in this lView as needing a refresh at their\n // insertion points. This is needed to avoid the situation where the template is defined in this\n // `LView` but its declaration appears after the insertion component.\n markTransplantedViewsForRefresh(lView);\n refreshEmbeddedViews(lView);\n // Content query results must be refreshed before content hooks are called.\n if (tView.contentQueries !== null) {\n refreshContentQueries(tView, lView);\n }\n // execute content hooks (AfterContentInit, AfterContentChecked)\n // PERF WARNING: do NOT extract this to a separate function without running benchmarks\n if (!isInCheckNoChangesPass) {\n if (hooksInitPhaseCompleted) {\n const contentCheckHooks = tView.contentCheckHooks;\n if (contentCheckHooks !== null) {\n executeCheckHooks(lView, contentCheckHooks);\n }\n }\n else {\n const contentHooks = tView.contentHooks;\n if (contentHooks !== null) {\n executeInitAndCheckHooks(lView, contentHooks, 1 /* AfterContentInitHooksToBeRun */);\n }\n incrementInitPhaseFlags(lView, 1 /* AfterContentInitHooksToBeRun */);\n }\n }\n processHostBindingOpCodes(tView, lView);\n // Refresh child component views.\n const components = tView.components;\n if (components !== null) {\n refreshChildComponents(lView, components);\n }\n // View queries must execute after refreshing child components because a template in this view\n // could be inserted in a child component. If the view query executes before child component\n // refresh, the template might not yet be inserted.\n const viewQuery = tView.viewQuery;\n if (viewQuery !== null) {\n executeViewQueryFn(2 /* Update */, viewQuery, context);\n }\n // execute view hooks (AfterViewInit, AfterViewChecked)\n // PERF WARNING: do NOT extract this to a separate function without running benchmarks\n if (!isInCheckNoChangesPass) {\n if (hooksInitPhaseCompleted) {\n const viewCheckHooks = tView.viewCheckHooks;\n if (viewCheckHooks !== null) {\n executeCheckHooks(lView, viewCheckHooks);\n }\n }\n else {\n const viewHooks = tView.viewHooks;\n if (viewHooks !== null) {\n executeInitAndCheckHooks(lView, viewHooks, 2 /* AfterViewInitHooksToBeRun */);\n }\n incrementInitPhaseFlags(lView, 2 /* AfterViewInitHooksToBeRun */);\n }\n }\n if (tView.firstUpdatePass === true) {\n // We need to make sure that we only flip the flag on successful `refreshView` only\n // Don't do this in `finally` block.\n // If we did this in `finally` block then an exception could block the execution of styling\n // instructions which in turn would be unable to insert themselves into the styling linked\n // list. The result of this would be that if the exception would not be throw on subsequent CD\n // the styling would be unable to process it data and reflect to the DOM.\n tView.firstUpdatePass = false;\n }\n // Do not reset the dirty state when running in check no changes mode. We don't want components\n // to behave differently depending on whether check no changes is enabled or not. For example:\n // Marking an OnPush component as dirty from within the `ngAfterViewInit` hook in order to\n // refresh a `NgClass` binding should work. If we would reset the dirty state in the check\n // no changes cycle, the component would be not be dirty for the next update pass. This would\n // be different in production mode where the component dirty state is not reset.\n if (!isInCheckNoChangesPass) {\n lView[FLAGS] &= ~(64 /* Dirty */ | 8 /* FirstLViewPass */);\n }\n if (lView[FLAGS] & 1024 /* RefreshTransplantedView */) {\n lView[FLAGS] &= ~1024 /* RefreshTransplantedView */;\n updateTransplantedViewCount(lView[PARENT], -1);\n }\n }\n finally {\n leaveView();\n }\n}\nfunction renderComponentOrTemplate(tView, lView, templateFn, context) {\n const rendererFactory = lView[RENDERER_FACTORY];\n const normalExecutionPath = !isInCheckNoChangesMode();\n const creationModeIsActive = isCreationMode(lView);\n try {\n if (normalExecutionPath && !creationModeIsActive && rendererFactory.begin) {\n rendererFactory.begin();\n }\n if (creationModeIsActive) {\n renderView(tView, lView, context);\n }\n refreshView(tView, lView, templateFn, context);\n }\n finally {\n if (normalExecutionPath && !creationModeIsActive && rendererFactory.end) {\n rendererFactory.end();\n }\n }\n}\nfunction executeTemplate(tView, lView, templateFn, rf, context) {\n const prevSelectedIndex = getSelectedIndex();\n const isUpdatePhase = rf & 2 /* Update */;\n try {\n setSelectedIndex(-1);\n if (isUpdatePhase && lView.length > HEADER_OFFSET) {\n // When we're updating, inherently select 0 so we don't\n // have to generate that instruction for most update blocks.\n selectIndexInternal(tView, lView, HEADER_OFFSET, isInCheckNoChangesMode());\n }\n const preHookType = isUpdatePhase ? 2 /* TemplateUpdateStart */ : 0 /* TemplateCreateStart */;\n profiler(preHookType, context);\n templateFn(rf, context);\n }\n finally {\n setSelectedIndex(prevSelectedIndex);\n const postHookType = isUpdatePhase ? 3 /* TemplateUpdateEnd */ : 1 /* TemplateCreateEnd */;\n profiler(postHookType, context);\n }\n}\n//////////////////////////\n//// Element\n//////////////////////////\nfunction executeContentQueries(tView, tNode, lView) {\n if (isContentQueryHost(tNode)) {\n const start = tNode.directiveStart;\n const end = tNode.directiveEnd;\n for (let directiveIndex = start; directiveIndex < end; directiveIndex++) {\n const def = tView.data[directiveIndex];\n if (def.contentQueries) {\n def.contentQueries(1 /* Create */, lView[directiveIndex], directiveIndex);\n }\n }\n }\n}\n/**\n * Creates directive instances.\n */\nfunction createDirectivesInstances(tView, lView, tNode) {\n if (!getBindingsEnabled())\n return;\n instantiateAllDirectives(tView, lView, tNode, getNativeByTNode(tNode, lView));\n if ((tNode.flags & 128 /* hasHostBindings */) === 128 /* hasHostBindings */) {\n invokeDirectivesHostBindings(tView, lView, tNode);\n }\n}\n/**\n * Takes a list of local names and indices and pushes the resolved local variable values\n * to LView in the same order as they are loaded in the template with load().\n */\nfunction saveResolvedLocalsInData(viewData, tNode, localRefExtractor = getNativeByTNode) {\n const localNames = tNode.localNames;\n if (localNames !== null) {\n let localIndex = tNode.index + 1;\n for (let i = 0; i < localNames.length; i += 2) {\n const index = localNames[i + 1];\n const value = index === -1 ?\n localRefExtractor(tNode, viewData) :\n viewData[index];\n viewData[localIndex++] = value;\n }\n }\n}\n/**\n * Gets TView from a template function or creates a new TView\n * if it doesn't already exist.\n *\n * @param def ComponentDef\n * @returns TView\n */\nfunction getOrCreateTComponentView(def) {\n const tView = def.tView;\n // Create a TView if there isn't one, or recreate it if the first create pass didn't\n // complete successfully since we can't know for sure whether it's in a usable shape.\n if (tView === null || tView.incompleteFirstPass) {\n // Declaration node here is null since this function is called when we dynamically create a\n // component and hence there is no declaration.\n const declTNode = null;\n return def.tView = createTView(1 /* Component */, declTNode, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts);\n }\n return tView;\n}\n/**\n * Creates a TView instance\n *\n * @param type Type of `TView`.\n * @param declTNode Declaration location of this `TView`.\n * @param templateFn Template function\n * @param decls The number of nodes, local refs, and pipes in this template\n * @param directives Registry of directives for this view\n * @param pipes Registry of pipes for this view\n * @param viewQuery View queries for this view\n * @param schemas Schemas for this view\n * @param consts Constants for this view\n */\nfunction createTView(type, declTNode, templateFn, decls, vars, directives, pipes, viewQuery, schemas, constsOrFactory) {\n ngDevMode && ngDevMode.tView++;\n const bindingStartIndex = HEADER_OFFSET + decls;\n // This length does not yet contain host bindings from child directives because at this point,\n // we don't know which directives are active on this template. As soon as a directive is matched\n // that has a host binding, we will update the blueprint with that def's hostVars count.\n const initialViewLength = bindingStartIndex + vars;\n const blueprint = createViewBlueprint(bindingStartIndex, initialViewLength);\n const consts = typeof constsOrFactory === 'function' ? constsOrFactory() : constsOrFactory;\n const tView = blueprint[TVIEW] = ngDevMode ?\n new TViewConstructor(type, // type: TViewType,\n blueprint, // blueprint: LView,\n templateFn, // template: ComponentTemplate<{}>|null,\n null, // queries: TQueries|null\n viewQuery, // viewQuery: ViewQueriesFunction<{}>|null,\n declTNode, // declTNode: TNode|null,\n cloneToTViewData(blueprint).fill(null, bindingStartIndex), // data: TData,\n bindingStartIndex, // bindingStartIndex: number,\n initialViewLength, // expandoStartIndex: number,\n null, // hostBindingOpCodes: HostBindingOpCodes,\n true, // firstCreatePass: boolean,\n true, // firstUpdatePass: boolean,\n false, // staticViewQueries: boolean,\n false, // staticContentQueries: boolean,\n null, // preOrderHooks: HookData|null,\n null, // preOrderCheckHooks: HookData|null,\n null, // contentHooks: HookData|null,\n null, // contentCheckHooks: HookData|null,\n null, // viewHooks: HookData|null,\n null, // viewCheckHooks: HookData|null,\n null, // destroyHooks: DestroyHookData|null,\n null, // cleanup: any[]|null,\n null, // contentQueries: number[]|null,\n null, // components: number[]|null,\n typeof directives === 'function' ? //\n directives() : //\n directives, // directiveRegistry: DirectiveDefList|null,\n typeof pipes === 'function' ? pipes() : pipes, // pipeRegistry: PipeDefList|null,\n null, // firstChild: TNode|null,\n schemas, // schemas: SchemaMetadata[]|null,\n consts, // consts: TConstants|null\n false, // incompleteFirstPass: boolean\n decls, // ngDevMode only: decls\n vars) :\n {\n type: type,\n blueprint: blueprint,\n template: templateFn,\n queries: null,\n viewQuery: viewQuery,\n declTNode: declTNode,\n data: blueprint.slice().fill(null, bindingStartIndex),\n bindingStartIndex: bindingStartIndex,\n expandoStartIndex: initialViewLength,\n hostBindingOpCodes: null,\n firstCreatePass: true,\n firstUpdatePass: true,\n staticViewQueries: false,\n staticContentQueries: false,\n preOrderHooks: null,\n preOrderCheckHooks: null,\n contentHooks: null,\n contentCheckHooks: null,\n viewHooks: null,\n viewCheckHooks: null,\n destroyHooks: null,\n cleanup: null,\n contentQueries: null,\n components: null,\n directiveRegistry: typeof directives === 'function' ? directives() : directives,\n pipeRegistry: typeof pipes === 'function' ? pipes() : pipes,\n firstChild: null,\n schemas: schemas,\n consts: consts,\n incompleteFirstPass: false\n };\n if (ngDevMode) {\n // For performance reasons it is important that the tView retains the same shape during runtime.\n // (To make sure that all of the code is monomorphic.) For this reason we seal the object to\n // prevent class transitions.\n Object.seal(tView);\n }\n return tView;\n}\nfunction createViewBlueprint(bindingStartIndex, initialViewLength) {\n const blueprint = ngDevMode ? new LViewBlueprint() : [];\n for (let i = 0; i < initialViewLength; i++) {\n blueprint.push(i < bindingStartIndex ? null : NO_CHANGE);\n }\n return blueprint;\n}\nfunction createError(text, token) {\n return new Error(`Renderer: ${text} [${stringifyForError(token)}]`);\n}\nfunction assertHostNodeExists(rElement, elementOrSelector) {\n if (!rElement) {\n if (typeof elementOrSelector === 'string') {\n throw createError('Host node with selector not found:', elementOrSelector);\n }\n else {\n throw createError('Host node is required:', elementOrSelector);\n }\n }\n}\n/**\n * Locates the host native element, used for bootstrapping existing nodes into rendering pipeline.\n *\n * @param rendererFactory Factory function to create renderer instance.\n * @param elementOrSelector Render element or CSS selector to locate the element.\n * @param encapsulation View Encapsulation defined for component that requests host element.\n */\nfunction locateHostElement(renderer, elementOrSelector, encapsulation) {\n if (isProceduralRenderer(renderer)) {\n // When using native Shadow DOM, do not clear host element to allow native slot projection\n const preserveContent = encapsulation === ViewEncapsulation$1.ShadowDom;\n return renderer.selectRootElement(elementOrSelector, preserveContent);\n }\n let rElement = typeof elementOrSelector === 'string' ?\n renderer.querySelector(elementOrSelector) :\n elementOrSelector;\n ngDevMode && assertHostNodeExists(rElement, elementOrSelector);\n // Always clear host element's content when Renderer3 is in use. For procedural renderer case we\n // make it depend on whether ShadowDom encapsulation is used (in which case the content should be\n // preserved to allow native slot projection). ShadowDom encapsulation requires procedural\n // renderer, and procedural renderer case is handled above.\n rElement.textContent = '';\n return rElement;\n}\n/**\n * Saves context for this cleanup function in LView.cleanupInstances.\n *\n * On the first template pass, saves in TView:\n * - Cleanup function\n * - Index of context we just saved in LView.cleanupInstances\n *\n * This function can also be used to store instance specific cleanup fns. In that case the `context`\n * is `null` and the function is store in `LView` (rather than it `TView`).\n */\nfunction storeCleanupWithContext(tView, lView, context, cleanupFn) {\n const lCleanup = getOrCreateLViewCleanup(lView);\n if (context === null) {\n // If context is null that this is instance specific callback. These callbacks can only be\n // inserted after template shared instances. For this reason in ngDevMode we freeze the TView.\n if (ngDevMode) {\n Object.freeze(getOrCreateTViewCleanup(tView));\n }\n lCleanup.push(cleanupFn);\n }\n else {\n lCleanup.push(context);\n if (tView.firstCreatePass) {\n getOrCreateTViewCleanup(tView).push(cleanupFn, lCleanup.length - 1);\n }\n }\n}\nfunction createTNode(tView, tParent, type, index, value, attrs) {\n ngDevMode && index !== 0 && // 0 are bogus nodes and they are OK. See `createContainerRef` in\n // `view_engine_compatibility` for additional context.\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'TNodes can\\'t be in the LView header.');\n ngDevMode && assertNotSame(attrs, undefined, '\\'undefined\\' is not valid value for \\'attrs\\'');\n ngDevMode && ngDevMode.tNode++;\n ngDevMode && tParent && assertTNodeForTView(tParent, tView);\n let injectorIndex = tParent ? tParent.injectorIndex : -1;\n const tNode = ngDevMode ?\n new TNodeDebug(tView, // tView_: TView\n type, // type: TNodeType\n index, // index: number\n null, // insertBeforeIndex: null|-1|number|number[]\n injectorIndex, // injectorIndex: number\n -1, // directiveStart: number\n -1, // directiveEnd: number\n -1, // directiveStylingLast: number\n null, // propertyBindings: number[]|null\n 0, // flags: TNodeFlags\n 0, // providerIndexes: TNodeProviderIndexes\n value, // value: string|null\n attrs, // attrs: (string|AttributeMarker|(string|SelectorFlags)[])[]|null\n null, // mergedAttrs\n null, // localNames: (string|number)[]|null\n undefined, // initialInputs: (string[]|null)[]|null|undefined\n null, // inputs: PropertyAliases|null\n null, // outputs: PropertyAliases|null\n null, // tViews: ITView|ITView[]|null\n null, // next: ITNode|null\n null, // projectionNext: ITNode|null\n null, // child: ITNode|null\n tParent, // parent: TElementNode|TContainerNode|null\n null, // projection: number|(ITNode|RNode[])[]|null\n null, // styles: string|null\n null, // stylesWithoutHost: string|null\n undefined, // residualStyles: string|null\n null, // classes: string|null\n null, // classesWithoutHost: string|null\n undefined, // residualClasses: string|null\n 0, // classBindings: TStylingRange;\n 0) :\n {\n type,\n index,\n insertBeforeIndex: null,\n injectorIndex,\n directiveStart: -1,\n directiveEnd: -1,\n directiveStylingLast: -1,\n propertyBindings: null,\n flags: 0,\n providerIndexes: 0,\n value: value,\n attrs: attrs,\n mergedAttrs: null,\n localNames: null,\n initialInputs: undefined,\n inputs: null,\n outputs: null,\n tViews: null,\n next: null,\n projectionNext: null,\n child: null,\n parent: tParent,\n projection: null,\n styles: null,\n stylesWithoutHost: null,\n residualStyles: undefined,\n classes: null,\n classesWithoutHost: null,\n residualClasses: undefined,\n classBindings: 0,\n styleBindings: 0,\n };\n if (ngDevMode) {\n // For performance reasons it is important that the tNode retains the same shape during runtime.\n // (To make sure that all of the code is monomorphic.) For this reason we seal the object to\n // prevent class transitions.\n Object.seal(tNode);\n }\n return tNode;\n}\nfunction generatePropertyAliases(inputAliasMap, directiveDefIdx, propStore) {\n for (let publicName in inputAliasMap) {\n if (inputAliasMap.hasOwnProperty(publicName)) {\n propStore = propStore === null ? {} : propStore;\n const internalName = inputAliasMap[publicName];\n if (propStore.hasOwnProperty(publicName)) {\n propStore[publicName].push(directiveDefIdx, internalName);\n }\n else {\n (propStore[publicName] = [directiveDefIdx, internalName]);\n }\n }\n }\n return propStore;\n}\n/**\n * Initializes data structures required to work with directive inputs and outputs.\n * Initialization is done for all directives matched on a given TNode.\n */\nfunction initializeInputAndOutputAliases(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n const start = tNode.directiveStart;\n const end = tNode.directiveEnd;\n const tViewData = tView.data;\n const tNodeAttrs = tNode.attrs;\n const inputsFromAttrs = ngDevMode ? new TNodeInitialInputs() : [];\n let inputsStore = null;\n let outputsStore = null;\n for (let i = start; i < end; i++) {\n const directiveDef = tViewData[i];\n const directiveInputs = directiveDef.inputs;\n // Do not use unbound attributes as inputs to structural directives, since structural\n // directive inputs can only be set using microsyntax (e.g. `<div *dir=\"exp\">`).\n // TODO(FW-1930): microsyntax expressions may also contain unbound/static attributes, which\n // should be set for inline templates.\n const initialInputs = (tNodeAttrs !== null && !isInlineTemplate(tNode)) ?\n generateInitialInputs(directiveInputs, tNodeAttrs) :\n null;\n inputsFromAttrs.push(initialInputs);\n inputsStore = generatePropertyAliases(directiveInputs, i, inputsStore);\n outputsStore = generatePropertyAliases(directiveDef.outputs, i, outputsStore);\n }\n if (inputsStore !== null) {\n if (inputsStore.hasOwnProperty('class')) {\n tNode.flags |= 16 /* hasClassInput */;\n }\n if (inputsStore.hasOwnProperty('style')) {\n tNode.flags |= 32 /* hasStyleInput */;\n }\n }\n tNode.initialInputs = inputsFromAttrs;\n tNode.inputs = inputsStore;\n tNode.outputs = outputsStore;\n}\n/**\n * Mapping between attributes names that don't correspond to their element property names.\n *\n * Performance note: this function is written as a series of if checks (instead of, say, a property\n * object lookup) for performance reasons - the series of `if` checks seems to be the fastest way of\n * mapping property names. Do NOT change without benchmarking.\n *\n * Note: this mapping has to be kept in sync with the equally named mapping in the template\n * type-checking machinery of ngtsc.\n */\nfunction mapPropName(name) {\n if (name === 'class')\n return 'className';\n if (name === 'for')\n return 'htmlFor';\n if (name === 'formaction')\n return 'formAction';\n if (name === 'innerHtml')\n return 'innerHTML';\n if (name === 'readonly')\n return 'readOnly';\n if (name === 'tabindex')\n return 'tabIndex';\n return name;\n}\nfunction elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, nativeOnly) {\n ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');\n const element = getNativeByTNode(tNode, lView);\n let inputData = tNode.inputs;\n let dataValue;\n if (!nativeOnly && inputData != null && (dataValue = inputData[propName])) {\n setInputsForProperty(tView, lView, dataValue, propName, value);\n if (isComponentHost(tNode))\n markDirtyIfOnPush(lView, tNode.index);\n if (ngDevMode) {\n setNgReflectProperties(lView, element, tNode.type, dataValue, value);\n }\n }\n else if (tNode.type & 3 /* AnyRNode */) {\n propName = mapPropName(propName);\n if (ngDevMode) {\n validateAgainstEventProperties(propName);\n if (!validateProperty(element, tNode.value, propName, tView.schemas)) {\n // Return here since we only log warnings for unknown properties.\n logUnknownPropertyError(propName, tNode.value);\n return;\n }\n ngDevMode.rendererSetProperty++;\n }\n // It is assumed that the sanitizer is only added when the compiler determines that the\n // property is risky, so sanitization can be done without further checks.\n value = sanitizer != null ? sanitizer(value, tNode.value || '', propName) : value;\n if (isProceduralRenderer(renderer)) {\n renderer.setProperty(element, propName, value);\n }\n else if (!isAnimationProp(propName)) {\n element.setProperty ? element.setProperty(propName, value) :\n element[propName] = value;\n }\n }\n else if (tNode.type & 12 /* AnyContainer */) {\n // If the node is a container and the property didn't\n // match any of the inputs or schemas we should throw.\n if (ngDevMode && !matchingSchemas(tView.schemas, tNode.value)) {\n logUnknownPropertyError(propName, tNode.value);\n }\n }\n}\n/** If node is an OnPush component, marks its LView dirty. */\nfunction markDirtyIfOnPush(lView, viewIndex) {\n ngDevMode && assertLView(lView);\n const childComponentLView = getComponentLViewByIndex(viewIndex, lView);\n if (!(childComponentLView[FLAGS] & 16 /* CheckAlways */)) {\n childComponentLView[FLAGS] |= 64 /* Dirty */;\n }\n}\nfunction setNgReflectProperty(lView, element, type, attrName, value) {\n const renderer = lView[RENDERER];\n attrName = normalizeDebugBindingName(attrName);\n const debugValue = normalizeDebugBindingValue(value);\n if (type & 3 /* AnyRNode */) {\n if (value == null) {\n isProceduralRenderer(renderer) ? renderer.removeAttribute(element, attrName) :\n element.removeAttribute(attrName);\n }\n else {\n isProceduralRenderer(renderer) ?\n renderer.setAttribute(element, attrName, debugValue) :\n element.setAttribute(attrName, debugValue);\n }\n }\n else {\n const textContent = escapeCommentText(`bindings=${JSON.stringify({ [attrName]: debugValue }, null, 2)}`);\n if (isProceduralRenderer(renderer)) {\n renderer.setValue(element, textContent);\n }\n else {\n element.textContent = textContent;\n }\n }\n}\nfunction setNgReflectProperties(lView, element, type, dataValue, value) {\n if (type & (3 /* AnyRNode */ | 4 /* Container */)) {\n /**\n * dataValue is an array containing runtime input or output names for the directives:\n * i+0: directive instance index\n * i+1: privateName\n *\n * e.g. [0, 'change', 'change-minified']\n * we want to set the reflected property with the privateName: dataValue[i+1]\n */\n for (let i = 0; i < dataValue.length; i += 2) {\n setNgReflectProperty(lView, element, type, dataValue[i + 1], value);\n }\n }\n}\n/**\n * Validates that the property of the element is known at runtime and returns\n * false if it's not the case.\n * This check is relevant for JIT-compiled components (for AOT-compiled\n * ones this check happens at build time).\n *\n * The property is considered known if either:\n * - it's a known property of the element\n * - the element is allowed by one of the schemas\n * - the property is used for animations\n *\n * @param element Element to validate\n * @param tagName Name of the tag to check\n * @param propName Name of the property to check\n * @param schemas Array of schemas\n */\nfunction validateProperty(element, tagName, propName, schemas) {\n // If `schemas` is set to `null`, that's an indication that this Component was compiled in AOT\n // mode where this check happens at compile time. In JIT mode, `schemas` is always present and\n // defined as an array (as an empty array in case `schemas` field is not defined) and we should\n // execute the check below.\n if (schemas === null)\n return true;\n // The property is considered valid if the element matches the schema, it exists on the element,\n // or it is synthetic, and we are in a browser context (web worker nodes should be skipped).\n if (matchingSchemas(schemas, tagName) || propName in element || isAnimationProp(propName)) {\n return true;\n }\n // Note: `typeof Node` returns 'function' in most browsers, but on IE it is 'object' so we\n // need to account for both here, while being careful with `typeof null` also returning 'object'.\n return typeof Node === 'undefined' || Node === null || !(element instanceof Node);\n}\n/**\n * Returns true if the tag name is allowed by specified schemas.\n * @param schemas Array of schemas\n * @param tagName Name of the tag\n */\nfunction matchingSchemas(schemas, tagName) {\n if (schemas !== null) {\n for (let i = 0; i < schemas.length; i++) {\n const schema = schemas[i];\n if (schema === NO_ERRORS_SCHEMA ||\n schema === CUSTOM_ELEMENTS_SCHEMA && tagName && tagName.indexOf('-') > -1) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * Logs an error that a property is not supported on an element.\n * @param propName Name of the invalid property.\n * @param tagName Name of the node on which we encountered the property.\n */\nfunction logUnknownPropertyError(propName, tagName) {\n const message = `Can't bind to '${propName}' since it isn't a known property of '${tagName}'.`;\n console.error(formatRuntimeError(303 /* UNKNOWN_BINDING */, message));\n}\n/**\n * Instantiate a root component.\n */\nfunction instantiateRootComponent(tView, lView, def) {\n const rootTNode = getCurrentTNode();\n if (tView.firstCreatePass) {\n if (def.providersResolver)\n def.providersResolver(def);\n const directiveIndex = allocExpando(tView, lView, 1, null);\n ngDevMode &&\n assertEqual(directiveIndex, rootTNode.directiveStart, 'Because this is a root component the allocated expando should match the TNode component.');\n configureViewWithDirective(tView, rootTNode, lView, directiveIndex, def);\n }\n const directive = getNodeInjectable(lView, tView, rootTNode.directiveStart, rootTNode);\n attachPatchData(directive, lView);\n const native = getNativeByTNode(rootTNode, lView);\n if (native) {\n attachPatchData(native, lView);\n }\n return directive;\n}\n/**\n * Resolve the matched directives on a node.\n */\nfunction resolveDirectives(tView, lView, tNode, localRefs) {\n // Please make sure to have explicit type for `exportsMap`. Inferred type triggers bug in\n // tsickle.\n ngDevMode && assertFirstCreatePass(tView);\n let hasDirectives = false;\n if (getBindingsEnabled()) {\n const directiveDefs = findDirectiveDefMatches(tView, lView, tNode);\n const exportsMap = localRefs === null ? null : { '': -1 };\n if (directiveDefs !== null) {\n hasDirectives = true;\n initTNodeFlags(tNode, tView.data.length, directiveDefs.length);\n // When the same token is provided by several directives on the same node, some rules apply in\n // the viewEngine:\n // - viewProviders have priority over providers\n // - the last directive in NgModule.declarations has priority over the previous one\n // So to match these rules, the order in which providers are added in the arrays is very\n // important.\n for (let i = 0; i < directiveDefs.length; i++) {\n const def = directiveDefs[i];\n if (def.providersResolver)\n def.providersResolver(def);\n }\n let preOrderHooksFound = false;\n let preOrderCheckHooksFound = false;\n let directiveIdx = allocExpando(tView, lView, directiveDefs.length, null);\n ngDevMode &&\n assertSame(directiveIdx, tNode.directiveStart, 'TNode.directiveStart should point to just allocated space');\n for (let i = 0; i < directiveDefs.length; i++) {\n const def = directiveDefs[i];\n // Merge the attrs in the order of matches. This assumes that the first directive is the\n // component itself, so that the component has the least priority.\n tNode.mergedAttrs = mergeHostAttrs(tNode.mergedAttrs, def.hostAttrs);\n configureViewWithDirective(tView, tNode, lView, directiveIdx, def);\n saveNameToExportMap(directiveIdx, def, exportsMap);\n if (def.contentQueries !== null)\n tNode.flags |= 8 /* hasContentQuery */;\n if (def.hostBindings !== null || def.hostAttrs !== null || def.hostVars !== 0)\n tNode.flags |= 128 /* hasHostBindings */;\n const lifeCycleHooks = def.type.prototype;\n // Only push a node index into the preOrderHooks array if this is the first\n // pre-order hook found on this node.\n if (!preOrderHooksFound &&\n (lifeCycleHooks.ngOnChanges || lifeCycleHooks.ngOnInit || lifeCycleHooks.ngDoCheck)) {\n // We will push the actual hook function into this array later during dir instantiation.\n // We cannot do it now because we must ensure hooks are registered in the same\n // order that directives are created (i.e. injection order).\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(tNode.index);\n preOrderHooksFound = true;\n }\n if (!preOrderCheckHooksFound && (lifeCycleHooks.ngOnChanges || lifeCycleHooks.ngDoCheck)) {\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(tNode.index);\n preOrderCheckHooksFound = true;\n }\n directiveIdx++;\n }\n initializeInputAndOutputAliases(tView, tNode);\n }\n if (exportsMap)\n cacheMatchingLocalNames(tNode, localRefs, exportsMap);\n }\n // Merge the template attrs last so that they have the highest priority.\n tNode.mergedAttrs = mergeHostAttrs(tNode.mergedAttrs, tNode.attrs);\n return hasDirectives;\n}\n/**\n * Add `hostBindings` to the `TView.hostBindingOpCodes`.\n *\n * @param tView `TView` to which the `hostBindings` should be added.\n * @param tNode `TNode` the element which contains the directive\n * @param lView `LView` current `LView`\n * @param directiveIdx Directive index in view.\n * @param directiveVarsIdx Where will the directive's vars be stored\n * @param def `ComponentDef`/`DirectiveDef`, which contains the `hostVars`/`hostBindings` to add.\n */\nfunction registerHostBindingOpCodes(tView, tNode, lView, directiveIdx, directiveVarsIdx, def) {\n ngDevMode && assertFirstCreatePass(tView);\n const hostBindings = def.hostBindings;\n if (hostBindings) {\n let hostBindingOpCodes = tView.hostBindingOpCodes;\n if (hostBindingOpCodes === null) {\n hostBindingOpCodes = tView.hostBindingOpCodes = [];\n }\n const elementIndx = ~tNode.index;\n if (lastSelectedElementIdx(hostBindingOpCodes) != elementIndx) {\n // Conditionally add select element so that we are more efficient in execution.\n // NOTE: this is strictly not necessary and it trades code size for runtime perf.\n // (We could just always add it.)\n hostBindingOpCodes.push(elementIndx);\n }\n hostBindingOpCodes.push(directiveIdx, directiveVarsIdx, hostBindings);\n }\n}\n/**\n * Returns the last selected element index in the `HostBindingOpCodes`\n *\n * For perf reasons we don't need to update the selected element index in `HostBindingOpCodes` only\n * if it changes. This method returns the last index (or '0' if not found.)\n *\n * Selected element index are only the ones which are negative.\n */\nfunction lastSelectedElementIdx(hostBindingOpCodes) {\n let i = hostBindingOpCodes.length;\n while (i > 0) {\n const value = hostBindingOpCodes[--i];\n if (typeof value === 'number' && value < 0) {\n return value;\n }\n }\n return 0;\n}\n/**\n * Instantiate all the directives that were previously resolved on the current node.\n */\nfunction instantiateAllDirectives(tView, lView, tNode, native) {\n const start = tNode.directiveStart;\n const end = tNode.directiveEnd;\n if (!tView.firstCreatePass) {\n getOrCreateNodeInjectorForNode(tNode, lView);\n }\n attachPatchData(native, lView);\n const initialInputs = tNode.initialInputs;\n for (let i = start; i < end; i++) {\n const def = tView.data[i];\n const isComponent = isComponentDef(def);\n if (isComponent) {\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */);\n addComponentLogic(lView, tNode, def);\n }\n const directive = getNodeInjectable(lView, tView, i, tNode);\n attachPatchData(directive, lView);\n if (initialInputs !== null) {\n setInputsFromAttrs(lView, i - start, directive, def, tNode, initialInputs);\n }\n if (isComponent) {\n const componentView = getComponentLViewByIndex(tNode.index, lView);\n componentView[CONTEXT] = directive;\n }\n }\n}\nfunction invokeDirectivesHostBindings(tView, lView, tNode) {\n const start = tNode.directiveStart;\n const end = tNode.directiveEnd;\n const firstCreatePass = tView.firstCreatePass;\n const elementIndex = tNode.index;\n const currentDirectiveIndex = getCurrentDirectiveIndex();\n try {\n setSelectedIndex(elementIndex);\n for (let dirIndex = start; dirIndex < end; dirIndex++) {\n const def = tView.data[dirIndex];\n const directive = lView[dirIndex];\n setCurrentDirectiveIndex(dirIndex);\n if (def.hostBindings !== null || def.hostVars !== 0 || def.hostAttrs !== null) {\n invokeHostBindingsInCreationMode(def, directive);\n }\n }\n }\n finally {\n setSelectedIndex(-1);\n setCurrentDirectiveIndex(currentDirectiveIndex);\n }\n}\n/**\n * Invoke the host bindings in creation mode.\n *\n * @param def `DirectiveDef` which may contain the `hostBindings` function.\n * @param directive Instance of directive.\n */\nfunction invokeHostBindingsInCreationMode(def, directive) {\n if (def.hostBindings !== null) {\n def.hostBindings(1 /* Create */, directive);\n }\n}\n/**\n * Matches the current node against all available selectors.\n * If a component is matched (at most one), it is returned in first position in the array.\n */\nfunction findDirectiveDefMatches(tView, viewData, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */);\n const registry = tView.directiveRegistry;\n let matches = null;\n if (registry) {\n for (let i = 0; i < registry.length; i++) {\n const def = registry[i];\n if (isNodeMatchingSelectorList(tNode, def.selectors, /* isProjectionMode */ false)) {\n matches || (matches = ngDevMode ? new MatchesArray() : []);\n diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, viewData), tView, def.type);\n if (isComponentDef(def)) {\n if (ngDevMode) {\n assertTNodeType(tNode, 2 /* Element */, `\"${tNode.value}\" tags cannot be used as component hosts. ` +\n `Please use a different tag to activate the ${stringify(def.type)} component.`);\n if (tNode.flags & 2 /* isComponentHost */) {\n // If another component has been matched previously, it's the first element in the\n // `matches` array, see how we store components/directives in `matches` below.\n throwMultipleComponentError(tNode, matches[0].type, def.type);\n }\n }\n markAsComponentHost(tView, tNode);\n // The component is always stored first with directives after.\n matches.unshift(def);\n }\n else {\n matches.push(def);\n }\n }\n }\n }\n return matches;\n}\n/**\n * Marks a given TNode as a component's host. This consists of:\n * - setting appropriate TNode flags;\n * - storing index of component's host element so it will be queued for view refresh during CD.\n */\nfunction markAsComponentHost(tView, hostTNode) {\n ngDevMode && assertFirstCreatePass(tView);\n hostTNode.flags |= 2 /* isComponentHost */;\n (tView.components || (tView.components = ngDevMode ? new TViewComponents() : []))\n .push(hostTNode.index);\n}\n/** Caches local names and their matching directive indices for query and template lookups. */\nfunction cacheMatchingLocalNames(tNode, localRefs, exportsMap) {\n if (localRefs) {\n const localNames = tNode.localNames = ngDevMode ? new TNodeLocalNames() : [];\n // Local names must be stored in tNode in the same order that localRefs are defined\n // in the template to ensure the data is loaded in the same slots as their refs\n // in the template (for template queries).\n for (let i = 0; i < localRefs.length; i += 2) {\n const index = exportsMap[localRefs[i + 1]];\n if (index == null)\n throw new RuntimeError(-301 /* EXPORT_NOT_FOUND */, ngDevMode && `Export of name '${localRefs[i + 1]}' not found!`);\n localNames.push(localRefs[i], index);\n }\n }\n}\n/**\n * Builds up an export map as directives are created, so local refs can be quickly mapped\n * to their directive instances.\n */\nfunction saveNameToExportMap(directiveIdx, def, exportsMap) {\n if (exportsMap) {\n if (def.exportAs) {\n for (let i = 0; i < def.exportAs.length; i++) {\n exportsMap[def.exportAs[i]] = directiveIdx;\n }\n }\n if (isComponentDef(def))\n exportsMap[''] = directiveIdx;\n }\n}\n/**\n * Initializes the flags on the current node, setting all indices to the initial index,\n * the directive count to 0, and adding the isComponent flag.\n * @param index the initial index\n */\nfunction initTNodeFlags(tNode, index, numberOfDirectives) {\n ngDevMode &&\n assertNotEqual(numberOfDirectives, tNode.directiveEnd - tNode.directiveStart, 'Reached the max number of directives');\n tNode.flags |= 1 /* isDirectiveHost */;\n // When the first directive is created on a node, save the index\n tNode.directiveStart = index;\n tNode.directiveEnd = index + numberOfDirectives;\n tNode.providerIndexes = index;\n}\n/**\n * Setup directive for instantiation.\n *\n * We need to create a `NodeInjectorFactory` which is then inserted in both the `Blueprint` as well\n * as `LView`. `TView` gets the `DirectiveDef`.\n *\n * @param tView `TView`\n * @param tNode `TNode`\n * @param lView `LView`\n * @param directiveIndex Index where the directive will be stored in the Expando.\n * @param def `DirectiveDef`\n */\nfunction configureViewWithDirective(tView, tNode, lView, directiveIndex, def) {\n ngDevMode &&\n assertGreaterThanOrEqual(directiveIndex, HEADER_OFFSET, 'Must be in Expando section');\n tView.data[directiveIndex] = def;\n const directiveFactory = def.factory || (def.factory = getFactoryDef(def.type, true));\n const nodeInjectorFactory = new NodeInjectorFactory(directiveFactory, isComponentDef(def), null);\n tView.blueprint[directiveIndex] = nodeInjectorFactory;\n lView[directiveIndex] = nodeInjectorFactory;\n registerHostBindingOpCodes(tView, tNode, lView, directiveIndex, allocExpando(tView, lView, def.hostVars, NO_CHANGE), def);\n}\nfunction addComponentLogic(lView, hostTNode, def) {\n const native = getNativeByTNode(hostTNode, lView);\n const tView = getOrCreateTComponentView(def);\n // Only component views should be added to the view tree directly. Embedded views are\n // accessed through their containers because they may be removed / re-added later.\n const rendererFactory = lView[RENDERER_FACTORY];\n const componentView = addToViewTree(lView, createLView(lView, tView, null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, native, hostTNode, rendererFactory, rendererFactory.createRenderer(native, def), null, null));\n // Component view will always be created before any injected LContainers,\n // so this is a regular element, wrap it with the component view\n lView[hostTNode.index] = componentView;\n}\nfunction elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace) {\n if (ngDevMode) {\n assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');\n validateAgainstEventAttributes(name);\n assertTNodeType(tNode, 2 /* Element */, `Attempted to set attribute \\`${name}\\` on a container node. ` +\n `Host bindings are not valid on ng-container or ng-template.`);\n }\n const element = getNativeByTNode(tNode, lView);\n setElementAttribute(lView[RENDERER], element, namespace, tNode.value, name, value, sanitizer);\n}\nfunction setElementAttribute(renderer, element, namespace, tagName, name, value, sanitizer) {\n if (value == null) {\n ngDevMode && ngDevMode.rendererRemoveAttribute++;\n isProceduralRenderer(renderer) ? renderer.removeAttribute(element, name, namespace) :\n element.removeAttribute(name);\n }\n else {\n ngDevMode && ngDevMode.rendererSetAttribute++;\n const strValue = sanitizer == null ? renderStringify(value) : sanitizer(value, tagName || '', name);\n if (isProceduralRenderer(renderer)) {\n renderer.setAttribute(element, name, strValue, namespace);\n }\n else {\n namespace ? element.setAttributeNS(namespace, name, strValue) :\n element.setAttribute(name, strValue);\n }\n }\n}\n/**\n * Sets initial input properties on directive instances from attribute data\n *\n * @param lView Current LView that is being processed.\n * @param directiveIndex Index of the directive in directives array\n * @param instance Instance of the directive on which to set the initial inputs\n * @param def The directive def that contains the list of inputs\n * @param tNode The static data for this node\n */\nfunction setInputsFromAttrs(lView, directiveIndex, instance, def, tNode, initialInputData) {\n const initialInputs = initialInputData[directiveIndex];\n if (initialInputs !== null) {\n const setInput = def.setInput;\n for (let i = 0; i < initialInputs.length;) {\n const publicName = initialInputs[i++];\n const privateName = initialInputs[i++];\n const value = initialInputs[i++];\n if (setInput !== null) {\n def.setInput(instance, value, publicName, privateName);\n }\n else {\n instance[privateName] = value;\n }\n if (ngDevMode) {\n const nativeElement = getNativeByTNode(tNode, lView);\n setNgReflectProperty(lView, nativeElement, tNode.type, privateName, value);\n }\n }\n }\n}\n/**\n * Generates initialInputData for a node and stores it in the template's static storage\n * so subsequent template invocations don't have to recalculate it.\n *\n * initialInputData is an array containing values that need to be set as input properties\n * for directives on this node, but only once on creation. We need this array to support\n * the case where you set an @Input property of a directive using attribute-like syntax.\n * e.g. if you have a `name` @Input, you can set it once like this:\n *\n * <my-component name=\"Bess\"></my-component>\n *\n * @param inputs The list of inputs from the directive def\n * @param attrs The static attrs on this node\n */\nfunction generateInitialInputs(inputs, attrs) {\n let inputsToStore = null;\n let i = 0;\n while (i < attrs.length) {\n const attrName = attrs[i];\n if (attrName === 0 /* NamespaceURI */) {\n // We do not allow inputs on namespaced attributes.\n i += 4;\n continue;\n }\n else if (attrName === 5 /* ProjectAs */) {\n // Skip over the `ngProjectAs` value.\n i += 2;\n continue;\n }\n // If we hit any other attribute markers, we're done anyway. None of those are valid inputs.\n if (typeof attrName === 'number')\n break;\n if (inputs.hasOwnProperty(attrName)) {\n if (inputsToStore === null)\n inputsToStore = [];\n inputsToStore.push(attrName, inputs[attrName], attrs[i + 1]);\n }\n i += 2;\n }\n return inputsToStore;\n}\n//////////////////////////\n//// ViewContainer & View\n//////////////////////////\n// Not sure why I need to do `any` here but TS complains later.\nconst LContainerArray = class LContainer extends Array {\n};\n/**\n * Creates a LContainer, either from a container instruction, or for a ViewContainerRef.\n *\n * @param hostNative The host element for the LContainer\n * @param hostTNode The host TNode for the LContainer\n * @param currentView The parent view of the LContainer\n * @param native The native comment element\n * @param isForViewContainerRef Optional a flag indicating the ViewContainerRef case\n * @returns LContainer\n */\nfunction createLContainer(hostNative, currentView, native, tNode) {\n ngDevMode && assertLView(currentView);\n ngDevMode && !isProceduralRenderer(currentView[RENDERER]) && assertDomNode(native);\n // https://jsperf.com/array-literal-vs-new-array-really\n const lContainer = new (ngDevMode ? LContainerArray : Array)(hostNative, // host native\n true, // Boolean `true` in this position signifies that this is an `LContainer`\n false, // has transplanted views\n currentView, // parent\n null, // next\n 0, // transplanted views to refresh count\n tNode, // t_host\n native, // native,\n null, // view refs\n null);\n ngDevMode &&\n assertEqual(lContainer.length, CONTAINER_HEADER_OFFSET, 'Should allocate correct number of slots for LContainer header.');\n ngDevMode && attachLContainerDebug(lContainer);\n return lContainer;\n}\n/**\n * Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes\n * them by executing an associated template function.\n */\nfunction refreshEmbeddedViews(lView) {\n for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {\n for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {\n const embeddedLView = lContainer[i];\n const embeddedTView = embeddedLView[TVIEW];\n ngDevMode && assertDefined(embeddedTView, 'TView must be allocated');\n if (viewAttachedToChangeDetector(embeddedLView)) {\n refreshView(embeddedTView, embeddedLView, embeddedTView.template, embeddedLView[CONTEXT]);\n }\n }\n }\n}\n/**\n * Mark transplanted views as needing to be refreshed at their insertion points.\n *\n * @param lView The `LView` that may have transplanted views.\n */\nfunction markTransplantedViewsForRefresh(lView) {\n for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {\n if (!lContainer[HAS_TRANSPLANTED_VIEWS])\n continue;\n const movedViews = lContainer[MOVED_VIEWS];\n ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');\n for (let i = 0; i < movedViews.length; i++) {\n const movedLView = movedViews[i];\n const insertionLContainer = movedLView[PARENT];\n ngDevMode && assertLContainer(insertionLContainer);\n // We don't want to increment the counter if the moved LView was already marked for\n // refresh.\n if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {\n updateTransplantedViewCount(insertionLContainer, 1);\n }\n // Note, it is possible that the `movedViews` is tracking views that are transplanted *and*\n // those that aren't (declaration component === insertion component). In the latter case,\n // it's fine to add the flag, as we will clear it immediately in\n // `refreshEmbeddedViews` for the view currently being refreshed.\n movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;\n }\n }\n}\n/////////////\n/**\n * Refreshes components by entering the component view and processing its bindings, queries, etc.\n *\n * @param componentHostIdx Element index in LView[] (adjusted for HEADER_OFFSET)\n */\nfunction refreshComponent(hostLView, componentHostIdx) {\n ngDevMode && assertEqual(isCreationMode(hostLView), false, 'Should be run in update mode');\n const componentView = getComponentLViewByIndex(componentHostIdx, hostLView);\n // Only attached components that are CheckAlways or OnPush and dirty should be refreshed\n if (viewAttachedToChangeDetector(componentView)) {\n const tView = componentView[TVIEW];\n if (componentView[FLAGS] & (16 /* CheckAlways */ | 64 /* Dirty */)) {\n refreshView(tView, componentView, tView.template, componentView[CONTEXT]);\n }\n else if (componentView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {\n // Only attached components that are CheckAlways or OnPush and dirty should be refreshed\n refreshContainsDirtyView(componentView);\n }\n }\n}\n/**\n * Refreshes all transplanted views marked with `LViewFlags.RefreshTransplantedView` that are\n * children or descendants of the given lView.\n *\n * @param lView The lView which contains descendant transplanted views that need to be refreshed.\n */\nfunction refreshContainsDirtyView(lView) {\n for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {\n for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {\n const embeddedLView = lContainer[i];\n if (embeddedLView[FLAGS] & 1024 /* RefreshTransplantedView */) {\n const embeddedTView = embeddedLView[TVIEW];\n ngDevMode && assertDefined(embeddedTView, 'TView must be allocated');\n refreshView(embeddedTView, embeddedLView, embeddedTView.template, embeddedLView[CONTEXT]);\n }\n else if (embeddedLView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {\n refreshContainsDirtyView(embeddedLView);\n }\n }\n }\n const tView = lView[TVIEW];\n // Refresh child component views.\n const components = tView.components;\n if (components !== null) {\n for (let i = 0; i < components.length; i++) {\n const componentView = getComponentLViewByIndex(components[i], lView);\n // Only attached components that are CheckAlways or OnPush and dirty should be refreshed\n if (viewAttachedToChangeDetector(componentView) &&\n componentView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {\n refreshContainsDirtyView(componentView);\n }\n }\n }\n}\nfunction renderComponent$1(hostLView, componentHostIdx) {\n ngDevMode && assertEqual(isCreationMode(hostLView), true, 'Should be run in creation mode');\n const componentView = getComponentLViewByIndex(componentHostIdx, hostLView);\n const componentTView = componentView[TVIEW];\n syncViewWithBlueprint(componentTView, componentView);\n renderView(componentTView, componentView, componentView[CONTEXT]);\n}\n/**\n * Syncs an LView instance with its blueprint if they have gotten out of sync.\n *\n * Typically, blueprints and their view instances should always be in sync, so the loop here\n * will be skipped. However, consider this case of two components side-by-side:\n *\n * App template:\n * ```\n * <comp></comp>\n * <comp></comp>\n * ```\n *\n * The following will happen:\n * 1. App template begins processing.\n * 2. First <comp> is matched as a component and its LView is created.\n * 3. Second <comp> is matched as a component and its LView is created.\n * 4. App template completes processing, so it's time to check child templates.\n * 5. First <comp> template is checked. It has a directive, so its def is pushed to blueprint.\n * 6. Second <comp> template is checked. Its blueprint has been updated by the first\n * <comp> template, but its LView was created before this update, so it is out of sync.\n *\n * Note that embedded views inside ngFor loops will never be out of sync because these views\n * are processed as soon as they are created.\n *\n * @param tView The `TView` that contains the blueprint for syncing\n * @param lView The view to sync\n */\nfunction syncViewWithBlueprint(tView, lView) {\n for (let i = lView.length; i < tView.blueprint.length; i++) {\n lView.push(tView.blueprint[i]);\n }\n}\n/**\n * Adds LView or LContainer to the end of the current view tree.\n *\n * This structure will be used to traverse through nested views to remove listeners\n * and call onDestroy callbacks.\n *\n * @param lView The view where LView or LContainer should be added\n * @param adjustedHostIndex Index of the view's host node in LView[], adjusted for header\n * @param lViewOrLContainer The LView or LContainer to add to the view tree\n * @returns The state passed in\n */\nfunction addToViewTree(lView, lViewOrLContainer) {\n // TODO(benlesh/misko): This implementation is incorrect, because it always adds the LContainer\n // to the end of the queue, which means if the developer retrieves the LContainers from RNodes out\n // of order, the change detection will run out of order, as the act of retrieving the the\n // LContainer from the RNode is what adds it to the queue.\n if (lView[CHILD_HEAD]) {\n lView[CHILD_TAIL][NEXT] = lViewOrLContainer;\n }\n else {\n lView[CHILD_HEAD] = lViewOrLContainer;\n }\n lView[CHILD_TAIL] = lViewOrLContainer;\n return lViewOrLContainer;\n}\n///////////////////////////////\n//// Change detection\n///////////////////////////////\n/**\n * Marks current view and all ancestors dirty.\n *\n * Returns the root view because it is found as a byproduct of marking the view tree\n * dirty, and can be used by methods that consume markViewDirty() to easily schedule\n * change detection. Otherwise, such methods would need to traverse up the view tree\n * an additional time to get the root view and schedule a tick on it.\n *\n * @param lView The starting LView to mark dirty\n * @returns the root LView\n */\nfunction markViewDirty(lView) {\n while (lView) {\n lView[FLAGS] |= 64 /* Dirty */;\n const parent = getLViewParent(lView);\n // Stop traversing up as soon as you find a root view that wasn't attached to any container\n if (isRootView(lView) && !parent) {\n return lView;\n }\n // continue otherwise\n lView = parent;\n }\n return null;\n}\n/**\n * Used to schedule change detection on the whole application.\n *\n * Unlike `tick`, `scheduleTick` coalesces multiple calls into one change detection run.\n * It is usually called indirectly by calling `markDirty` when the view needs to be\n * re-rendered.\n *\n * Typically `scheduleTick` uses `requestAnimationFrame` to coalesce multiple\n * `scheduleTick` requests. The scheduling function can be overridden in\n * `renderComponent`'s `scheduler` option.\n */\nfunction scheduleTick(rootContext, flags) {\n const nothingScheduled = rootContext.flags === 0 /* Empty */;\n if (nothingScheduled && rootContext.clean == _CLEAN_PROMISE) {\n // https://github.com/angular/angular/issues/39296\n // should only attach the flags when really scheduling a tick\n rootContext.flags |= flags;\n let res;\n rootContext.clean = new Promise((r) => res = r);\n rootContext.scheduler(() => {\n if (rootContext.flags & 1 /* DetectChanges */) {\n rootContext.flags &= ~1 /* DetectChanges */;\n tickRootContext(rootContext);\n }\n if (rootContext.flags & 2 /* FlushPlayers */) {\n rootContext.flags &= ~2 /* FlushPlayers */;\n const playerHandler = rootContext.playerHandler;\n if (playerHandler) {\n playerHandler.flushPlayers();\n }\n }\n rootContext.clean = _CLEAN_PROMISE;\n res(null);\n });\n }\n}\nfunction tickRootContext(rootContext) {\n for (let i = 0; i < rootContext.components.length; i++) {\n const rootComponent = rootContext.components[i];\n const lView = readPatchedLView(rootComponent);\n const tView = lView[TVIEW];\n renderComponentOrTemplate(tView, lView, tView.template, rootComponent);\n }\n}\nfunction detectChangesInternal(tView, lView, context) {\n const rendererFactory = lView[RENDERER_FACTORY];\n if (rendererFactory.begin)\n rendererFactory.begin();\n try {\n refreshView(tView, lView, tView.template, context);\n }\n catch (error) {\n handleError(lView, error);\n throw error;\n }\n finally {\n if (rendererFactory.end)\n rendererFactory.end();\n }\n}\n/**\n * Synchronously perform change detection on a root view and its components.\n *\n * @param lView The view which the change detection should be performed on.\n */\nfunction detectChangesInRootView(lView) {\n tickRootContext(lView[CONTEXT]);\n}\nfunction checkNoChangesInternal(tView, view, context) {\n setIsInCheckNoChangesMode(true);\n try {\n detectChangesInternal(tView, view, context);\n }\n finally {\n setIsInCheckNoChangesMode(false);\n }\n}\n/**\n * Checks the change detector on a root view and its components, and throws if any changes are\n * detected.\n *\n * This is used in development mode to verify that running change detection doesn't\n * introduce other changes.\n *\n * @param lView The view which the change detection should be checked on.\n */\nfunction checkNoChangesInRootView(lView) {\n setIsInCheckNoChangesMode(true);\n try {\n detectChangesInRootView(lView);\n }\n finally {\n setIsInCheckNoChangesMode(false);\n }\n}\nfunction executeViewQueryFn(flags, viewQueryFn, component) {\n ngDevMode && assertDefined(viewQueryFn, 'View queries function to execute must be defined.');\n setCurrentQueryIndex(0);\n viewQueryFn(flags, component);\n}\n///////////////////////////////\n//// Bindings & interpolations\n///////////////////////////////\n/**\n * Stores meta-data for a property binding to be used by TestBed's `DebugElement.properties`.\n *\n * In order to support TestBed's `DebugElement.properties` we need to save, for each binding:\n * - a bound property name;\n * - a static parts of interpolated strings;\n *\n * A given property metadata is saved at the binding's index in the `TView.data` (in other words, a\n * property binding metadata will be stored in `TView.data` at the same index as a bound value in\n * `LView`). Metadata are represented as `INTERPOLATION_DELIMITER`-delimited string with the\n * following format:\n * - `propertyName` for bound properties;\n * - `propertyName�prefix�interpolation_static_part1�..interpolation_static_partN�suffix` for\n * interpolated properties.\n *\n * @param tData `TData` where meta-data will be saved;\n * @param tNode `TNode` that is a target of the binding;\n * @param propertyName bound property name;\n * @param bindingIndex binding index in `LView`\n * @param interpolationParts static interpolation parts (for property interpolations)\n */\nfunction storePropertyBindingMetadata(tData, tNode, propertyName, bindingIndex, ...interpolationParts) {\n // Binding meta-data are stored only the first time a given property instruction is processed.\n // Since we don't have a concept of the \"first update pass\" we need to check for presence of the\n // binding meta-data to decide if one should be stored (or if was stored already).\n if (tData[bindingIndex] === null) {\n if (tNode.inputs == null || !tNode.inputs[propertyName]) {\n const propBindingIdxs = tNode.propertyBindings || (tNode.propertyBindings = []);\n propBindingIdxs.push(bindingIndex);\n let bindingMetadata = propertyName;\n if (interpolationParts.length > 0) {\n bindingMetadata +=\n INTERPOLATION_DELIMITER + interpolationParts.join(INTERPOLATION_DELIMITER);\n }\n tData[bindingIndex] = bindingMetadata;\n }\n }\n}\nconst CLEAN_PROMISE = _CLEAN_PROMISE;\nfunction getOrCreateLViewCleanup(view) {\n // top level variables should not be exported for performance reasons (PERF_NOTES.md)\n return view[CLEANUP] || (view[CLEANUP] = ngDevMode ? new LCleanup() : []);\n}\nfunction getOrCreateTViewCleanup(tView) {\n return tView.cleanup || (tView.cleanup = ngDevMode ? new TCleanup() : []);\n}\n/**\n * There are cases where the sub component's renderer needs to be included\n * instead of the current renderer (see the componentSyntheticHost* instructions).\n */\nfunction loadComponentRenderer(currentDef, tNode, lView) {\n // TODO(FW-2043): the `currentDef` is null when host bindings are invoked while creating root\n // component (see packages/core/src/render3/component.ts). This is not consistent with the process\n // of creating inner components, when current directive index is available in the state. In order\n // to avoid relying on current def being `null` (thus special-casing root component creation), the\n // process of creating root component should be unified with the process of creating inner\n // components.\n if (currentDef === null || isComponentDef(currentDef)) {\n lView = unwrapLView(lView[tNode.index]);\n }\n return lView[RENDERER];\n}\n/** Handles an error thrown in an LView. */\nfunction handleError(lView, error) {\n const injector = lView[INJECTOR$1];\n const errorHandler = injector ? injector.get(ErrorHandler, null) : null;\n errorHandler && errorHandler.handleError(error);\n}\n/**\n * Set the inputs of directives at the current node to corresponding value.\n *\n * @param tView The current TView\n * @param lView the `LView` which contains the directives.\n * @param inputs mapping between the public \"input\" name and privately-known,\n * possibly minified, property names to write to.\n * @param value Value to set.\n */\nfunction setInputsForProperty(tView, lView, inputs, publicName, value) {\n for (let i = 0; i < inputs.length;) {\n const index = inputs[i++];\n const privateName = inputs[i++];\n const instance = lView[index];\n ngDevMode && assertIndexInRange(lView, index);\n const def = tView.data[index];\n if (def.setInput !== null) {\n def.setInput(instance, value, publicName, privateName);\n }\n else {\n instance[privateName] = value;\n }\n }\n}\n/**\n * Updates a text binding at a given index in a given LView.\n */\nfunction textBindingInternal(lView, index, value) {\n ngDevMode && assertString(value, 'Value should be a string');\n ngDevMode && assertNotSame(value, NO_CHANGE, 'value should not be NO_CHANGE');\n ngDevMode && assertIndexInRange(lView, index);\n const element = getNativeByIndex(index, lView);\n ngDevMode && assertDefined(element, 'native element should exist');\n updateTextNode(lView[RENDERER], element, value);\n}\n\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/**\n * Compute the static styling (class/style) from `TAttributes`.\n *\n * This function should be called during `firstCreatePass` only.\n *\n * @param tNode The `TNode` into which the styling information should be loaded.\n * @param attrs `TAttributes` containing the styling information.\n * @param writeToHost Where should the resulting static styles be written?\n * - `false` Write to `TNode.stylesWithoutHost` / `TNode.classesWithoutHost`\n * - `true` Write to `TNode.styles` / `TNode.classes`\n */\nfunction computeStaticStyling(tNode, attrs, writeToHost) {\n ngDevMode &&\n assertFirstCreatePass(getTView(), 'Expecting to be called in first template pass only');\n let styles = writeToHost ? tNode.styles : null;\n let classes = writeToHost ? tNode.classes : null;\n let mode = 0;\n if (attrs !== null) {\n for (let i = 0; i < attrs.length; i++) {\n const value = attrs[i];\n if (typeof value === 'number') {\n mode = value;\n }\n else if (mode == 1 /* Classes */) {\n classes = concatStringsWithSpace(classes, value);\n }\n else if (mode == 2 /* Styles */) {\n const style = value;\n const styleValue = attrs[++i];\n styles = concatStringsWithSpace(styles, style + ': ' + styleValue + ';');\n }\n }\n }\n writeToHost ? tNode.styles = styles : tNode.stylesWithoutHost = styles;\n writeToHost ? tNode.classes = classes : tNode.classesWithoutHost = classes;\n}\n\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/**\n * Synchronously perform change detection on a component (and possibly its sub-components).\n *\n * This function triggers change detection in a synchronous way on a component.\n *\n * @param component The component which the change detection should be performed on.\n */\nfunction detectChanges(component) {\n const view = getComponentViewByInstance(component);\n detectChangesInternal(view[TVIEW], view, component);\n}\n/**\n * Marks the component as dirty (needing change detection). Marking a component dirty will\n * schedule a change detection on it at some point in the future.\n *\n * Marking an already dirty component as dirty won't do anything. Only one outstanding change\n * detection can be scheduled per component tree.\n *\n * @param component Component to mark as dirty.\n */\nfunction markDirty(component) {\n ngDevMode && assertDefined(component, 'component');\n const rootView = markViewDirty(getComponentViewByInstance(component));\n ngDevMode && assertDefined(rootView[CONTEXT], 'rootContext should be defined');\n scheduleTick(rootView[CONTEXT], 1 /* DetectChanges */);\n}\n/**\n * Used to perform change detection on the whole application.\n *\n * This is equivalent to `detectChanges`, but invoked on root component. Additionally, `tick`\n * executes lifecycle hooks and conditionally checks components based on their\n * `ChangeDetectionStrategy` and dirtiness.\n *\n * The preferred way to trigger change detection is to call `markDirty`. `markDirty` internally\n * schedules `tick` using a scheduler in order to coalesce multiple `markDirty` calls into a\n * single change detection run. By default, the scheduler is `requestAnimationFrame`, but can\n * be changed when calling `renderComponent` and providing the `scheduler` option.\n */\nfunction tick(component) {\n const rootView = getRootView(component);\n const rootContext = rootView[CONTEXT];\n tickRootContext(rootContext);\n}\n\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/**\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\n *\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\n * project.\n *\n * @publicApi\n */\nconst INJECTOR = new InjectionToken('INJECTOR', \n// Dissable tslint because this is const enum which gets inlined not top level prop access.\n// tslint:disable-next-line: no-toplevel-property-access\n-1 /* Injector */);\n\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 */\nclass NullInjector {\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n if (notFoundValue === THROW_IF_NOT_FOUND) {\n const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);\n error.name = 'NullInjectorError';\n throw error;\n }\n return notFoundValue;\n }\n}\n\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/**\n * An internal token whose presence in an injector indicates that the injector should treat itself\n * as a root scoped injector when processing requests for unknown tokens which may indicate\n * they are provided in the root scope.\n */\nconst INJECTOR_SCOPE = new InjectionToken('Set Injector scope.');\n\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/**\n * Marker which indicates that a value has not yet been created from the factory function.\n */\nconst NOT_YET = {};\n/**\n * Marker which indicates that the factory function for a token is in the process of being called.\n *\n * If the injector is asked to inject a token with its value set to CIRCULAR, that indicates\n * injection of a dependency has recursively attempted to inject the original token, and there is\n * a circular dependency among the providers.\n */\nconst CIRCULAR = {};\n/**\n * A lazily initialized NullInjector.\n */\nlet NULL_INJECTOR$1 = undefined;\nfunction getNullInjector() {\n if (NULL_INJECTOR$1 === undefined) {\n NULL_INJECTOR$1 = new NullInjector();\n }\n return NULL_INJECTOR$1;\n}\n/**\n * Create a new `Injector` which is configured using a `defType` of `InjectorType<any>`s.\n *\n * @publicApi\n */\nfunction createInjector(defType, parent = null, additionalProviders = null, name) {\n const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);\n injector._resolveInjectorDefTypes();\n return injector;\n}\n/**\n * Creates a new injector without eagerly resolving its injector types. Can be used in places\n * where resolving the injector types immediately can lead to an infinite loop. The injector types\n * should be resolved at a later point by calling `_resolveInjectorDefTypes`.\n */\nfunction createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name) {\n return new R3Injector(defType, additionalProviders, parent || getNullInjector(), name);\n}\nclass R3Injector {\n constructor(def, additionalProviders, parent, source = null) {\n this.parent = parent;\n /**\n * Map of tokens to records which contain the instances of those tokens.\n * - `null` value implies that we don't have the record. Used by tree-shakable injectors\n * to prevent further searches.\n */\n this.records = new Map();\n /**\n * The transitive set of `InjectorType`s which define this injector.\n */\n this.injectorDefTypes = new Set();\n /**\n * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\n */\n this.onDestroy = new Set();\n this._destroyed = false;\n const dedupStack = [];\n // Start off by creating Records for every provider declared in every InjectorType\n // included transitively in additional providers then do the same for `def`. This order is\n // important because `def` may include providers that override ones in additionalProviders.\n additionalProviders &&\n deepForEach(additionalProviders, provider => this.processProvider(provider, def, additionalProviders));\n deepForEach([def], injectorDef => this.processInjectorType(injectorDef, [], dedupStack));\n // Make sure the INJECTOR token provides this injector.\n this.records.set(INJECTOR, makeRecord(undefined, this));\n // Detect whether this injector has the APP_ROOT_SCOPE token and thus should provide\n // any injectable scoped to APP_ROOT_SCOPE.\n const record = this.records.get(INJECTOR_SCOPE);\n this.scope = record != null ? record.value : null;\n // Source name, used for debugging\n this.source = source || (typeof def === 'object' ? null : stringify(def));\n }\n /**\n * Flag indicating that this injector was previously destroyed.\n */\n get destroyed() {\n return this._destroyed;\n }\n /**\n * Destroy the injector and release references to every instance or provider associated with it.\n *\n * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\n * hook was found.\n */\n destroy() {\n this.assertNotDestroyed();\n // Set destroyed = true first, in case lifecycle hooks re-enter destroy().\n this._destroyed = true;\n try {\n // Call all the lifecycle hooks.\n this.onDestroy.forEach(service => service.ngOnDestroy());\n }\n finally {\n // Release all references.\n this.records.clear();\n this.onDestroy.clear();\n this.injectorDefTypes.clear();\n }\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {\n this.assertNotDestroyed();\n // Set the injection context.\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n // Check for the SkipSelf flag.\n if (!(flags & InjectFlags.SkipSelf)) {\n // SkipSelf isn't set, check if the record belongs to this injector.\n let record = this.records.get(token);\n if (record === undefined) {\n // No record, but maybe the token is scoped to this injector. Look for an injectable\n // def with a scope matching this injector.\n const def = couldBeInjectableType(token) && getInjectableDef(token);\n if (def && this.injectableDefInScope(def)) {\n // Found an injectable def and it's scoped to this injector. Pretend as if it was here\n // all along.\n record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET);\n }\n else {\n record = null;\n }\n this.records.set(token, record);\n }\n // If a record was found, get the instance for it and return it.\n if (record != null /* NOT null || undefined */) {\n return this.hydrate(token, record);\n }\n }\n // Select the next injector based on the Self flag - if self is set, the next injector is\n // the NullInjector, otherwise it's the parent.\n const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector();\n // Set the notFoundValue based on the Optional flag - if optional is set and notFoundValue\n // is undefined, the value is null, otherwise it's the notFoundValue.\n notFoundValue = (flags & InjectFlags.Optional) && notFoundValue === THROW_IF_NOT_FOUND ?\n null :\n notFoundValue;\n return nextInjector.get(token, notFoundValue);\n }\n catch (e) {\n if (e.name === 'NullInjectorError') {\n const path = e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || [];\n path.unshift(stringify(token));\n if (previousInjector) {\n // We still have a parent injector, keep throwing\n throw e;\n }\n else {\n // Format & throw the final error message when we don't have any previous injector\n return catchInjectorError(e, token, 'R3InjectorError', this.source);\n }\n }\n else {\n throw e;\n }\n }\n finally {\n // Lastly, restore the previous injection context.\n setInjectImplementation(previousInjectImplementation);\n setCurrentInjector(previousInjector);\n }\n }\n /** @internal */\n _resolveInjectorDefTypes() {\n this.injectorDefTypes.forEach(defType => this.get(defType));\n }\n toString() {\n const tokens = [], records = this.records;\n records.forEach((v, token) => tokens.push(stringify(token)));\n return `R3Injector[${tokens.join(', ')}]`;\n }\n assertNotDestroyed() {\n if (this._destroyed) {\n throw new RuntimeError(205 /* INJECTOR_ALREADY_DESTROYED */, ngDevMode && 'Injector has already been destroyed.');\n }\n }\n /**\n * Add an `InjectorType` or `InjectorTypeWithProviders` and all of its transitive providers\n * to this injector.\n *\n * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\n * the function will return \"true\" to indicate that the providers of the type definition need\n * to be processed. This allows us to process providers of injector types after all imports of\n * an injector definition are processed. (following View Engine semantics: see FW-1349)\n */\n processInjectorType(defOrWrappedDef, parents, dedupStack) {\n defOrWrappedDef = resolveForwardRef(defOrWrappedDef);\n if (!defOrWrappedDef)\n return false;\n // Either the defOrWrappedDef is an InjectorType (with injector def) or an\n // InjectorDefTypeWithProviders (aka ModuleWithProviders). Detecting either is a megamorphic\n // read, so care is taken to only do the read once.\n // First attempt to read the injector def (`ɵinj`).\n let def = getInjectorDef(defOrWrappedDef);\n // If that's not present, then attempt to read ngModule from the InjectorDefTypeWithProviders.\n const ngModule = (def == null) && defOrWrappedDef.ngModule || undefined;\n // Determine the InjectorType. In the case where `defOrWrappedDef` is an `InjectorType`,\n // then this is easy. In the case of an InjectorDefTypeWithProviders, then the definition type\n // is the `ngModule`.\n const defType = (ngModule === undefined) ? defOrWrappedDef : ngModule;\n // Check for circular dependencies.\n if (ngDevMode && parents.indexOf(defType) !== -1) {\n const defName = stringify(defType);\n const path = parents.map(stringify);\n throwCyclicDependencyError(defName, path);\n }\n // Check for multiple imports of the same module\n const isDuplicate = dedupStack.indexOf(defType) !== -1;\n // Finally, if defOrWrappedType was an `InjectorDefTypeWithProviders`, then the actual\n // `InjectorDef` is on its `ngModule`.\n if (ngModule !== undefined) {\n def = getInjectorDef(ngModule);\n }\n // If no definition was found, it might be from exports. Remove it.\n if (def == null) {\n return false;\n }\n // Add providers in the same way that @NgModule resolution did:\n // First, include providers from any imports.\n if (def.imports != null && !isDuplicate) {\n // Before processing defType's imports, add it to the set of parents. This way, if it ends\n // up deeply importing itself, this can be detected.\n ngDevMode && parents.push(defType);\n // Add it to the set of dedups. This way we can detect multiple imports of the same module\n dedupStack.push(defType);\n let importTypesWithProviders;\n try {\n deepForEach(def.imports, imported => {\n if (this.processInjectorType(imported, parents, dedupStack)) {\n if (importTypesWithProviders === undefined)\n importTypesWithProviders = [];\n // If the processed import is an injector type with providers, we store it in the\n // list of import types with providers, so that we can process those afterwards.\n importTypesWithProviders.push(imported);\n }\n });\n }\n finally {\n // Remove it from the parents set when finished.\n ngDevMode && parents.pop();\n }\n // Imports which are declared with providers (TypeWithProviders) need to be processed\n // after all imported modules are processed. This is similar to how View Engine\n // processes/merges module imports in the metadata resolver. See: FW-1349.\n if (importTypesWithProviders !== undefined) {\n for (let i = 0; i < importTypesWithProviders.length; i++) {\n const { ngModule, providers } = importTypesWithProviders[i];\n deepForEach(providers, provider => this.processProvider(provider, ngModule, providers || EMPTY_ARRAY));\n }\n }\n }\n // Track the InjectorType and add a provider for it. It's important that this is done after the\n // def's imports.\n this.injectorDefTypes.add(defType);\n const factory = getFactoryDef(defType) || (() => new defType());\n this.records.set(defType, makeRecord(factory, NOT_YET));\n // Next, include providers listed on the definition itself.\n const defProviders = def.providers;\n if (defProviders != null && !isDuplicate) {\n const injectorType = defOrWrappedDef;\n deepForEach(defProviders, provider => this.processProvider(provider, injectorType, defProviders));\n }\n return (ngModule !== undefined &&\n defOrWrappedDef.providers !== undefined);\n }\n /**\n * Process a `SingleProvider` and add it.\n */\n processProvider(provider, ngModuleType, providers) {\n // Determine the token from the provider. Either it's its own token, or has a {provide: ...}\n // property.\n provider = resolveForwardRef(provider);\n let token = isTypeProvider(provider) ? provider : resolveForwardRef(provider && provider.provide);\n // Construct a `Record` for the provider.\n const record = providerToRecord(provider, ngModuleType, providers);\n if (!isTypeProvider(provider) && provider.multi === true) {\n // If the provider indicates that it's a multi-provider, process it specially.\n // First check whether it's been defined already.\n let multiRecord = this.records.get(token);\n if (multiRecord) {\n // It has. Throw a nice error if\n if (ngDevMode && multiRecord.multi === undefined) {\n throwMixedMultiProviderError();\n }\n }\n else {\n multiRecord = makeRecord(undefined, NOT_YET, true);\n multiRecord.factory = () => injectArgs(multiRecord.multi);\n this.records.set(token, multiRecord);\n }\n token = provider;\n multiRecord.multi.push(provider);\n }\n else {\n const existing = this.records.get(token);\n if (ngDevMode && existing && existing.multi !== undefined) {\n throwMixedMultiProviderError();\n }\n }\n this.records.set(token, record);\n }\n hydrate(token, record) {\n if (ngDevMode && record.value === CIRCULAR) {\n throwCyclicDependencyError(stringify(token));\n }\n else if (record.value === NOT_YET) {\n record.value = CIRCULAR;\n record.value = record.factory();\n }\n if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {\n this.onDestroy.add(record.value);\n }\n return record.value;\n }\n injectableDefInScope(def) {\n if (!def.providedIn) {\n return false;\n }\n const providedIn = resolveForwardRef(def.providedIn);\n if (typeof providedIn === 'string') {\n return providedIn === 'any' || (providedIn === this.scope);\n }\n else {\n return this.injectorDefTypes.has(providedIn);\n }\n }\n}\nfunction injectableDefOrInjectorDefFactory(token) {\n // Most tokens will have an injectable def directly on them, which specifies a factory directly.\n const injectableDef = getInjectableDef(token);\n const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token);\n if (factory !== null) {\n return factory;\n }\n // InjectionTokens should have an injectable def (ɵprov) and thus should be handled above.\n // If it's missing that, it's an error.\n if (token instanceof InjectionToken) {\n throw new RuntimeError(204 /* INVALID_INJECTION_TOKEN */, ngDevMode && `Token ${stringify(token)} is missing a ɵprov definition.`);\n }\n // Undecorated types can sometimes be created if they have no constructor arguments.\n if (token instanceof Function) {\n return getUndecoratedInjectableFactory(token);\n }\n // There was no way to resolve a factory for this token.\n throw new RuntimeError(204 /* INVALID_INJECTION_TOKEN */, ngDevMode && 'unreachable');\n}\nfunction getUndecoratedInjectableFactory(token) {\n // If the token has parameters then it has dependencies that we cannot resolve implicitly.\n const paramLength = token.length;\n if (paramLength > 0) {\n const args = newArray(paramLength, '?');\n throw new RuntimeError(204 /* INVALID_INJECTION_TOKEN */, ngDevMode && `Can't resolve all parameters for ${stringify(token)}: (${args.join(', ')}).`);\n }\n // The constructor function appears to have no parameters.\n // This might be because it inherits from a super-class. In which case, use an injectable\n // def from an ancestor if there is one.\n // Otherwise this really is a simple class with no dependencies, so return a factory that\n // just instantiates the zero-arg constructor.\n const inheritedInjectableDef = getInheritedInjectableDef(token);\n if (inheritedInjectableDef !== null) {\n return () => inheritedInjectableDef.factory(token);\n }\n else {\n return () => new token();\n }\n}\nfunction providerToRecord(provider, ngModuleType, providers) {\n if (isValueProvider(provider)) {\n return makeRecord(undefined, provider.useValue);\n }\n else {\n const factory = providerToFactory(provider, ngModuleType, providers);\n return makeRecord(factory, NOT_YET);\n }\n}\n/**\n * Converts a `SingleProvider` into a factory function.\n *\n * @param provider provider to convert to factory\n */\nfunction providerToFactory(provider, ngModuleType, providers) {\n let factory = undefined;\n if (isTypeProvider(provider)) {\n const unwrappedProvider = resolveForwardRef(provider);\n return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider);\n }\n else {\n if (isValueProvider(provider)) {\n factory = () => resolveForwardRef(provider.useValue);\n }\n else if (isFactoryProvider(provider)) {\n factory = () => provider.useFactory(...injectArgs(provider.deps || []));\n }\n else if (isExistingProvider(provider)) {\n factory = () => ɵɵinject(resolveForwardRef(provider.useExisting));\n }\n else {\n const classRef = resolveForwardRef(provider &&\n (provider.useClass || provider.provide));\n if (ngDevMode && !classRef) {\n throwInvalidProviderError(ngModuleType, providers, provider);\n }\n if (hasDeps(provider)) {\n factory = () => new (classRef)(...injectArgs(provider.deps));\n }\n else {\n return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef);\n }\n }\n }\n return factory;\n}\nfunction makeRecord(factory, value, multi = false) {\n return {\n factory: factory,\n value: value,\n multi: multi ? [] : undefined,\n };\n}\nfunction isValueProvider(value) {\n return value !== null && typeof value == 'object' && USE_VALUE$1 in value;\n}\nfunction isExistingProvider(value) {\n return !!(value && value.useExisting);\n}\nfunction isFactoryProvider(value) {\n return !!(value && value.useFactory);\n}\nfunction isTypeProvider(value) {\n return typeof value === 'function';\n}\nfunction isClassProvider(value) {\n return !!value.useClass;\n}\nfunction hasDeps(value) {\n return !!value.deps;\n}\nfunction hasOnDestroy(value) {\n return value !== null && typeof value === 'object' &&\n typeof value.ngOnDestroy === 'function';\n}\nfunction couldBeInjectableType(value) {\n return (typeof value === 'function') ||\n (typeof value === 'object' && value instanceof InjectionToken);\n}\n\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/**\n * Concrete injectors implement this interface. Injectors are configured\n * with [providers](guide/glossary#provider) that associate\n * dependencies of various types with [injection tokens](guide/glossary#di-token).\n *\n * @see [\"DI Providers\"](guide/dependency-injection-providers).\n * @see `StaticProvider`\n *\n * @usageNotes\n *\n * The following example creates a service injector instance.\n *\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\n *\n * ### Usage example\n *\n * {@example core/di/ts/injector_spec.ts region='Injector'}\n *\n * `Injector` returns itself when given `Injector` as a token:\n *\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\n *\n * @publicApi\n */\nclass Injector {\n static create(options, parent) {\n var _a;\n if (Array.isArray(options)) {\n return createInjector({ name: '' }, parent, options, '');\n }\n else {\n const name = (_a = options.name) !== null && _a !== void 0 ? _a : '';\n return createInjector({ name }, options.parent, options.providers, name);\n }\n }\n}\nInjector.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND;\nInjector.NULL = ( /* @__PURE__ */new NullInjector());\n/** @nocollapse */\nInjector.ɵprov = ɵɵdefineInjectable({\n token: Injector,\n providedIn: 'any',\n factory: () => ɵɵinject(INJECTOR),\n});\n/**\n * @internal\n * @nocollapse\n */\nInjector.__NG_ELEMENT_ID__ = -1 /* Injector */;\n\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/**\n * Retrieves the component instance associated with a given DOM element.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * <app-root>\n * <div>\n * <child-comp></child-comp>\n * </div>\n * </app-root>\n * ```\n *\n * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`\n * associated with this DOM element.\n *\n * Calling the function on `<app-root>` will return the `MyApp` instance.\n *\n *\n * @param element DOM element from which the component should be retrieved.\n * @returns Component instance associated with the element or `null` if there\n * is no component associated with it.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getComponent$1(element) {\n assertDomElement(element);\n const context = getLContext(element);\n if (context === null)\n return null;\n if (context.component === undefined) {\n context.component = getComponentAtNodeIndex(context.nodeIndex, context.lView);\n }\n return context.component;\n}\n/**\n * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded\n * view that the element is part of. Otherwise retrieves the instance of the component whose view\n * owns the element (in this case, the result is the same as calling `getOwningComponent`).\n *\n * @param element Element for which to get the surrounding component instance.\n * @returns Instance of the component that is around the element or null if the element isn't\n * inside any component.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getContext(element) {\n assertDomElement(element);\n const context = getLContext(element);\n return context === null ? null : context.lView[CONTEXT];\n}\n/**\n * Retrieves the component instance whose view contains the DOM element.\n *\n * For example, if `<child-comp>` is used in the template of `<app-comp>`\n * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`\n * would return `<app-comp>`.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Component instance whose view owns the DOM element or null if the element is not\n * part of a component view.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getOwningComponent(elementOrDir) {\n const context = getLContext(elementOrDir);\n if (context === null)\n return null;\n let lView = context.lView;\n let parent;\n ngDevMode && assertLView(lView);\n while (lView[TVIEW].type === 2 /* Embedded */ && (parent = getLViewParent(lView))) {\n lView = parent;\n }\n return lView[FLAGS] & 512 /* IsRoot */ ? null : lView[CONTEXT];\n}\n/**\n * Retrieves all root components associated with a DOM element, directive or component instance.\n * Root components are those which have been bootstrapped by Angular.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Root components associated with the target object.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getRootComponents(elementOrDir) {\n return [...getRootContext(elementOrDir).components];\n}\n/**\n * Retrieves an `Injector` associated with an element, component or directive instance.\n *\n * @param elementOrDir DOM element, component or directive instance for which to\n * retrieve the injector.\n * @returns Injector associated with the element, component or directive instance.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getInjector(elementOrDir) {\n const context = getLContext(elementOrDir);\n if (context === null)\n return Injector.NULL;\n const tNode = context.lView[TVIEW].data[context.nodeIndex];\n return new NodeInjector(tNode, context.lView);\n}\n/**\n * Retrieve a set of injection tokens at a given DOM node.\n *\n * @param element Element for which the injection tokens should be retrieved.\n */\nfunction getInjectionTokens(element) {\n const context = getLContext(element);\n if (context === null)\n return [];\n const lView = context.lView;\n const tView = lView[TVIEW];\n const tNode = tView.data[context.nodeIndex];\n const providerTokens = [];\n const startIndex = tNode.providerIndexes & 1048575 /* ProvidersStartIndexMask */;\n const endIndex = tNode.directiveEnd;\n for (let i = startIndex; i < endIndex; i++) {\n let value = tView.data[i];\n if (isDirectiveDefHack(value)) {\n // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a\n // design flaw. We should always store same type so that we can be monomorphic. The issue\n // is that for Components/Directives we store the def instead the type. The correct behavior\n // is that we should always be storing injectable type in this location.\n value = value.type;\n }\n providerTokens.push(value);\n }\n return providerTokens;\n}\n/**\n * Retrieves directive instances associated with a given DOM node. Does not include\n * component instances.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * <app-root>\n * <button my-button></button>\n * <my-comp></my-comp>\n * </app-root>\n * ```\n *\n * Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`\n * directive that is associated with the DOM node.\n *\n * Calling `getDirectives` on `<my-comp>` will return an empty array.\n *\n * @param node DOM node for which to get the directives.\n * @returns Array of directives associated with the node.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getDirectives(node) {\n // Skip text nodes because we can't have directives associated with them.\n if (node instanceof Text) {\n return [];\n }\n const context = getLContext(node);\n if (context === null) {\n return [];\n }\n const lView = context.lView;\n const tView = lView[TVIEW];\n const nodeIndex = context.nodeIndex;\n if (!(tView === null || tView === void 0 ? void 0 : tView.data[nodeIndex])) {\n return [];\n }\n if (context.directives === undefined) {\n context.directives = getDirectivesAtNodeIndex(nodeIndex, lView, false);\n }\n // The `directives` in this case are a named array called `LComponentView`. Clone the\n // result so we don't expose an internal data structure in the user's console.\n return context.directives === null ? [] : [...context.directives];\n}\n/**\n * Returns the debug (partial) metadata for a particular directive or component instance.\n * The function accepts an instance of a directive or component and returns the corresponding\n * metadata.\n *\n * @param directiveOrComponentInstance Instance of a directive or component\n * @returns metadata of the passed directive or component\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getDirectiveMetadata$1(directiveOrComponentInstance) {\n const { constructor } = directiveOrComponentInstance;\n if (!constructor) {\n throw new Error('Unable to find the instance constructor');\n }\n // In case a component inherits from a directive, we may have component and directive metadata\n // To ensure we don't get the metadata of the directive, we want to call `getComponentDef` first.\n const componentDef = getComponentDef(constructor);\n if (componentDef) {\n return {\n inputs: componentDef.inputs,\n outputs: componentDef.outputs,\n encapsulation: componentDef.encapsulation,\n changeDetection: componentDef.onPush ? ChangeDetectionStrategy.OnPush :\n ChangeDetectionStrategy.Default\n };\n }\n const directiveDef = getDirectiveDef(constructor);\n if (directiveDef) {\n return { inputs: directiveDef.inputs, outputs: directiveDef.outputs };\n }\n return null;\n}\n/**\n * Retrieve map of local references.\n *\n * The references are retrieved as a map of local reference name to element or directive instance.\n *\n * @param target DOM element, component or directive instance for which to retrieve\n * the local references.\n */\nfunction getLocalRefs(target) {\n const context = getLContext(target);\n if (context === null)\n return {};\n if (context.localRefs === undefined) {\n context.localRefs = discoverLocalRefs(context.lView, context.nodeIndex);\n }\n return context.localRefs || {};\n}\n/**\n * Retrieves the host element of a component or directive instance.\n * The host element is the DOM element that matched the selector of the directive.\n *\n * @param componentOrDirective Component or directive instance for which the host\n * element should be retrieved.\n * @returns Host element of the target.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getHostElement(componentOrDirective) {\n return getLContext(componentOrDirective).native;\n}\n/**\n * Retrieves the rendered text for a given component.\n *\n * This function retrieves the host element of a component and\n * and then returns the `textContent` for that element. This implies\n * that the text returned will include re-projected content of\n * the component as well.\n *\n * @param component The component to return the content text for.\n */\nfunction getRenderedText(component) {\n const hostElement = getHostElement(component);\n return hostElement.textContent || '';\n}\n/**\n * Retrieves a list of event listeners associated with a DOM element. The list does include host\n * listeners, but it does not include event listeners defined outside of the Angular context\n * (e.g. through `addEventListener`).\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * <app-root>\n * <div (click)=\"doSomething()\"></div>\n * </app-root>\n * ```\n *\n * Calling `getListeners` on `<div>` will return an object that looks as follows:\n *\n * ```ts\n * {\n * name: 'click',\n * element: <div>,\n * callback: () => doSomething(),\n * useCapture: false\n * }\n * ```\n *\n * @param element Element for which the DOM listeners should be retrieved.\n * @returns Array of event listeners on the DOM element.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getListeners(element) {\n assertDomElement(element);\n const lContext = getLContext(element);\n if (lContext === null)\n return [];\n const lView = lContext.lView;\n const tView = lView[TVIEW];\n const lCleanup = lView[CLEANUP];\n const tCleanup = tView.cleanup;\n const listeners = [];\n if (tCleanup && lCleanup) {\n for (let i = 0; i < tCleanup.length;) {\n const firstParam = tCleanup[i++];\n const secondParam = tCleanup[i++];\n if (typeof firstParam === 'string') {\n const name = firstParam;\n const listenerElement = unwrapRNode(lView[secondParam]);\n const callback = lCleanup[tCleanup[i++]];\n const useCaptureOrIndx = tCleanup[i++];\n // if useCaptureOrIndx is boolean then report it as is.\n // if useCaptureOrIndx is positive number then it in unsubscribe method\n // if useCaptureOrIndx is negative number then it is a Subscription\n const type = (typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0) ? 'dom' : 'output';\n const useCapture = typeof useCaptureOrIndx === 'boolean' ? useCaptureOrIndx : false;\n if (element == listenerElement) {\n listeners.push({ element, name, callback, useCapture, type });\n }\n }\n }\n }\n listeners.sort(sortListeners);\n return listeners;\n}\nfunction sortListeners(a, b) {\n if (a.name == b.name)\n return 0;\n return a.name < b.name ? -1 : 1;\n}\n/**\n * This function should not exist because it is megamorphic and only mostly correct.\n *\n * See call site for more info.\n */\nfunction isDirectiveDefHack(obj) {\n return obj.type !== undefined && obj.template !== undefined && obj.declaredInputs !== undefined;\n}\n/**\n * Returns the attached `DebugNode` instance for an element in the DOM.\n *\n * @param element DOM element which is owned by an existing component's view.\n */\nfunction getDebugNode$1(element) {\n if (ngDevMode && !(element instanceof Node)) {\n throw new Error('Expecting instance of DOM Element');\n }\n const lContext = getLContext(element);\n if (lContext === null) {\n return null;\n }\n const lView = lContext.lView;\n const nodeIndex = lContext.nodeIndex;\n if (nodeIndex !== -1) {\n const valueInLView = lView[nodeIndex];\n // this means that value in the lView is a component with its own\n // data. In this situation the TNode is not accessed at the same spot.\n const tNode = isLView(valueInLView) ? valueInLView[T_HOST] : getTNode(lView[TVIEW], nodeIndex);\n ngDevMode &&\n assertEqual(tNode.index, nodeIndex, 'Expecting that TNode at index is same as index');\n return buildDebugNode(tNode, lView);\n }\n return null;\n}\n/**\n * Retrieve the component `LView` from component/element.\n *\n * NOTE: `LView` is a private and should not be leaked outside.\n * Don't export this method to `ng.*` on window.\n *\n * @param target DOM element or component instance for which to retrieve the LView.\n */\nfunction getComponentLView(target) {\n const lContext = getLContext(target);\n const nodeIndx = lContext.nodeIndex;\n const lView = lContext.lView;\n const componentLView = lView[nodeIndx];\n ngDevMode && assertLView(componentLView);\n return componentLView;\n}\n/** Asserts that a value is a DOM Element. */\nfunction assertDomElement(value) {\n if (typeof Element !== 'undefined' && !(value instanceof Element)) {\n throw new Error('Expecting instance of DOM Element');\n }\n}\n\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/**\n * Marks a component for check (in case of OnPush components) and synchronously\n * performs change detection on the application this component belongs to.\n *\n * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction applyChanges(component) {\n markDirty(component);\n getRootComponents(component).forEach(rootComponent => detectChanges(rootComponent));\n}\n\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/**\n * This file introduces series of globally accessible debug tools\n * to allow for the Angular debugging story to function.\n *\n * To see this in action run the following command:\n *\n * bazel run //packages/core/test/bundling/todo:devserver\n *\n * Then load `localhost:5432` and start using the console tools.\n */\n/**\n * This value reflects the property on the window where the dev\n * tools are patched (window.ng).\n * */\nconst GLOBAL_PUBLISH_EXPANDO_KEY = 'ng';\nlet _published = false;\n/**\n * Publishes a collection of default debug tools onto`window.ng`.\n *\n * These functions are available globally when Angular is in development\n * mode and are automatically stripped away from prod mode is on.\n */\nfunction publishDefaultGlobalUtils$1() {\n if (!_published) {\n _published = true;\n /**\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be\n * removed completely.\n */\n publishGlobalUtil('ɵsetProfiler', setProfiler);\n publishGlobalUtil('getDirectiveMetadata', getDirectiveMetadata$1);\n publishGlobalUtil('getComponent', getComponent$1);\n publishGlobalUtil('getContext', getContext);\n publishGlobalUtil('getListeners', getListeners);\n publishGlobalUtil('getOwningComponent', getOwningComponent);\n publishGlobalUtil('getHostElement', getHostElement);\n publishGlobalUtil('getInjector', getInjector);\n publishGlobalUtil('getRootComponents', getRootComponents);\n publishGlobalUtil('getDirectives', getDirectives);\n publishGlobalUtil('applyChanges', applyChanges);\n }\n}\n/**\n * Publishes the given function to `window.ng` so that it can be\n * used from the browser console when an application is not in production.\n */\nfunction publishGlobalUtil(name, fn) {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for AngularJS (via `goog.provide('ng....')`).\n const w = _global;\n ngDevMode && assertDefined(fn, 'function not defined');\n if (w) {\n let container = w[GLOBAL_PUBLISH_EXPANDO_KEY];\n if (!container) {\n container = w[GLOBAL_PUBLISH_EXPANDO_KEY] = {};\n }\n container[name] = fn;\n }\n }\n}\n\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// TODO: A hack to not pull in the NullInjector from @angular/core.\nconst NULL_INJECTOR = {\n get: (token, notFoundValue) => {\n throwProviderNotFoundError(token, 'NullInjector');\n }\n};\n/**\n * Bootstraps a Component into an existing host element and returns an instance\n * of the component.\n *\n * Use this function to bootstrap a component into the DOM tree. Each invocation\n * of this function will create a separate tree of components, injectors and\n * change detection cycles and lifetimes. To dynamically insert a new component\n * into an existing tree such that it shares the same injection, change detection\n * and object lifetime, use {@link ViewContainer#createComponent}.\n *\n * @param componentType Component to bootstrap\n * @param options Optional parameters which control bootstrapping\n */\nfunction renderComponent(componentType /* Type as workaround for: Microsoft/TypeScript/issues/4881 */, opts = {}) {\n ngDevMode && publishDefaultGlobalUtils$1();\n ngDevMode && assertComponentType(componentType);\n const rendererFactory = opts.rendererFactory || domRendererFactory3;\n const sanitizer = opts.sanitizer || null;\n const componentDef = getComponentDef(componentType);\n if (componentDef.type != componentType)\n componentDef.type = componentType;\n // The first index of the first selector is the tag name.\n const componentTag = componentDef.selectors[0][0];\n const hostRenderer = rendererFactory.createRenderer(null, null);\n const hostRNode = locateHostElement(hostRenderer, opts.host || componentTag, componentDef.encapsulation);\n const rootFlags = componentDef.onPush ? 64 /* Dirty */ | 512 /* IsRoot */ :\n 16 /* CheckAlways */ | 512 /* IsRoot */;\n const rootContext = createRootContext(opts.scheduler, opts.playerHandler);\n const renderer = rendererFactory.createRenderer(hostRNode, componentDef);\n const rootTView = createTView(0 /* Root */, null, null, 1, 0, null, null, null, null, null);\n const rootView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, renderer, null, opts.injector || null);\n enterView(rootView);\n let component;\n try {\n if (rendererFactory.begin)\n rendererFactory.begin();\n const componentView = createRootComponentView(hostRNode, componentDef, rootView, rendererFactory, renderer, sanitizer);\n component = createRootComponent(componentView, componentDef, rootView, rootContext, opts.hostFeatures || null);\n // create mode pass\n renderView(rootTView, rootView, null);\n // update mode pass\n refreshView(rootTView, rootView, null, null);\n }\n finally {\n leaveView();\n if (rendererFactory.end)\n rendererFactory.end();\n }\n return component;\n}\n/**\n * Creates the root component view and the root component node.\n *\n * @param rNode Render host element.\n * @param def ComponentDef\n * @param rootView The parent view where the host node is stored\n * @param rendererFactory Factory to be used for creating child renderers.\n * @param hostRenderer The current renderer\n * @param sanitizer The sanitizer, if provided\n *\n * @returns Component view created\n */\nfunction createRootComponentView(rNode, def, rootView, rendererFactory, hostRenderer, sanitizer) {\n const tView = rootView[TVIEW];\n const index = HEADER_OFFSET;\n ngDevMode && assertIndexInRange(rootView, index);\n rootView[index] = rNode;\n // '#host' is added here as we don't know the real host DOM name (we don't want to read it) and at\n // the same time we want to communicate the debug `TNode` that this is a special `TNode`\n // representing a host element.\n const tNode = getOrCreateTNode(tView, index, 2 /* Element */, '#host', null);\n const mergedAttrs = tNode.mergedAttrs = def.hostAttrs;\n if (mergedAttrs !== null) {\n computeStaticStyling(tNode, mergedAttrs, true);\n if (rNode !== null) {\n setUpAttributes(hostRenderer, rNode, mergedAttrs);\n if (tNode.classes !== null) {\n writeDirectClass(hostRenderer, rNode, tNode.classes);\n }\n if (tNode.styles !== null) {\n writeDirectStyle(hostRenderer, rNode, tNode.styles);\n }\n }\n }\n const viewRenderer = rendererFactory.createRenderer(rNode, def);\n const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null);\n if (tView.firstCreatePass) {\n diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, rootView), tView, def.type);\n markAsComponentHost(tView, tNode);\n initTNodeFlags(tNode, rootView.length, 1);\n }\n addToViewTree(rootView, componentView);\n // Store component view at node index, with node as the HOST\n return rootView[index] = componentView;\n}\n/**\n * Creates a root component and sets it up with features and host bindings. Shared by\n * renderComponent() and ViewContainerRef.createComponent().\n */\nfunction createRootComponent(componentView, componentDef, rootLView, rootContext, hostFeatures) {\n const tView = rootLView[TVIEW];\n // Create directive instance with factory() and store at next index in viewData\n const component = instantiateRootComponent(tView, rootLView, componentDef);\n rootContext.components.push(component);\n componentView[CONTEXT] = component;\n hostFeatures && hostFeatures.forEach((feature) => feature(component, componentDef));\n // We want to generate an empty QueryList for root content queries for backwards\n // compatibility with ViewEngine.\n if (componentDef.contentQueries) {\n const tNode = getCurrentTNode();\n ngDevMode && assertDefined(tNode, 'TNode expected');\n componentDef.contentQueries(1 /* Create */, component, tNode.directiveStart);\n }\n const rootTNode = getCurrentTNode();\n ngDevMode && assertDefined(rootTNode, 'tNode should have been already created');\n if (tView.firstCreatePass &&\n (componentDef.hostBindings !== null || componentDef.hostAttrs !== null)) {\n setSelectedIndex(rootTNode.index);\n const rootTView = rootLView[TVIEW];\n registerHostBindingOpCodes(rootTView, rootTNode, rootLView, rootTNode.directiveStart, rootTNode.directiveEnd, componentDef);\n invokeHostBindingsInCreationMode(componentDef, component);\n }\n return component;\n}\nfunction createRootContext(scheduler, playerHandler) {\n return {\n components: [],\n scheduler: scheduler || defaultScheduler,\n clean: CLEAN_PROMISE,\n playerHandler: playerHandler || null,\n flags: 0 /* Empty */\n };\n}\n/**\n * Used to enable lifecycle hooks on the root component.\n *\n * Include this feature when calling `renderComponent` if the root component\n * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't\n * be called properly.\n *\n * Example:\n *\n * ```\n * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});\n * ```\n */\nfunction LifecycleHooksFeature(component, def) {\n const lView = readPatchedLView(component);\n ngDevMode && assertDefined(lView, 'LView is required');\n const tView = lView[TVIEW];\n const tNode = getCurrentTNode();\n ngDevMode && assertDefined(tNode, 'TNode is required');\n registerPostOrderHooks(tView, tNode);\n}\n/**\n * Wait on component until it is rendered.\n *\n * This function returns a `Promise` which is resolved when the component's\n * change detection is executed. This is determined by finding the scheduler\n * associated with the `component`'s render tree and waiting until the scheduler\n * flushes. If nothing is scheduled, the function returns a resolved promise.\n *\n * Example:\n * ```\n * await whenRendered(myComponent);\n * ```\n *\n * @param component Component to wait upon\n * @returns Promise which resolves when the component is rendered.\n */\nfunction whenRendered(component) {\n return getRootContext(component).clean;\n}\n\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 */\nfunction getSuperType(type) {\n return Object.getPrototypeOf(type.prototype).constructor;\n}\n/**\n * Merges the definition from a super class to a sub class.\n * @param definition The definition that is a SubClass of another directive of component\n *\n * @codeGenApi\n */\nfunction ɵɵInheritDefinitionFeature(definition) {\n let superType = getSuperType(definition.type);\n let shouldInheritFields = true;\n const inheritanceChain = [definition];\n while (superType) {\n let superDef = undefined;\n if (isComponentDef(definition)) {\n // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.\n superDef = superType.ɵcmp || superType.ɵdir;\n }\n else {\n if (superType.ɵcmp) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `Directives cannot inherit Components. Directive ${stringifyForError(definition.type)} is attempting to extend component ${stringifyForError(superType)}` :\n '';\n throw new RuntimeError(903 /* INVALID_INHERITANCE */, errorMessage);\n }\n // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.\n superDef = superType.ɵdir;\n }\n if (superDef) {\n if (shouldInheritFields) {\n inheritanceChain.push(superDef);\n // Some fields in the definition may be empty, if there were no values to put in them that\n // would've justified object creation. Unwrap them if necessary.\n const writeableDef = definition;\n writeableDef.inputs = maybeUnwrapEmpty(definition.inputs);\n writeableDef.declaredInputs = maybeUnwrapEmpty(definition.declaredInputs);\n writeableDef.outputs = maybeUnwrapEmpty(definition.outputs);\n // Merge hostBindings\n const superHostBindings = superDef.hostBindings;\n superHostBindings && inheritHostBindings(definition, superHostBindings);\n // Merge queries\n const superViewQuery = superDef.viewQuery;\n const superContentQueries = superDef.contentQueries;\n superViewQuery && inheritViewQuery(definition, superViewQuery);\n superContentQueries && inheritContentQueries(definition, superContentQueries);\n // Merge inputs and outputs\n fillProperties(definition.inputs, superDef.inputs);\n fillProperties(definition.declaredInputs, superDef.declaredInputs);\n fillProperties(definition.outputs, superDef.outputs);\n // Merge animations metadata.\n // If `superDef` is a Component, the `data` field is present (defaults to an empty object).\n if (isComponentDef(superDef) && superDef.data.animation) {\n // If super def is a Component, the `definition` is also a Component, since Directives can\n // not inherit Components (we throw an error above and cannot reach this code).\n const defData = definition.data;\n defData.animation = (defData.animation || []).concat(superDef.data.animation);\n }\n }\n // Run parent features\n const features = superDef.features;\n if (features) {\n for (let i = 0; i < features.length; i++) {\n const feature = features[i];\n if (feature && feature.ngInherit) {\n feature(definition);\n }\n // If `InheritDefinitionFeature` is a part of the current `superDef`, it means that this\n // def already has all the necessary information inherited from its super class(es), so we\n // can stop merging fields from super classes. However we need to iterate through the\n // prototype chain to look for classes that might contain other \"features\" (like\n // NgOnChanges), which we should invoke for the original `definition`. We set the\n // `shouldInheritFields` flag to indicate that, essentially skipping fields inheritance\n // logic and only invoking functions from the \"features\" list.\n if (feature === ɵɵInheritDefinitionFeature) {\n shouldInheritFields = false;\n }\n }\n }\n }\n superType = Object.getPrototypeOf(superType);\n }\n mergeHostAttrsAcrossInheritance(inheritanceChain);\n}\n/**\n * Merge the `hostAttrs` and `hostVars` from the inherited parent to the base class.\n *\n * @param inheritanceChain A list of `WritableDefs` starting at the top most type and listing\n * sub-types in order. For each type take the `hostAttrs` and `hostVars` and merge it with the child\n * type.\n */\nfunction mergeHostAttrsAcrossInheritance(inheritanceChain) {\n let hostVars = 0;\n let hostAttrs = null;\n // We process the inheritance order from the base to the leaves here.\n for (let i = inheritanceChain.length - 1; i >= 0; i--) {\n const def = inheritanceChain[i];\n // For each `hostVars`, we need to add the superclass amount.\n def.hostVars = (hostVars += def.hostVars);\n // for each `hostAttrs` we need to merge it with superclass.\n def.hostAttrs =\n mergeHostAttrs(def.hostAttrs, hostAttrs = mergeHostAttrs(hostAttrs, def.hostAttrs));\n }\n}\nfunction maybeUnwrapEmpty(value) {\n if (value === EMPTY_OBJ) {\n return {};\n }\n else if (value === EMPTY_ARRAY) {\n return [];\n }\n else {\n return value;\n }\n}\nfunction inheritViewQuery(definition, superViewQuery) {\n const prevViewQuery = definition.viewQuery;\n if (prevViewQuery) {\n definition.viewQuery = (rf, ctx) => {\n superViewQuery(rf, ctx);\n prevViewQuery(rf, ctx);\n };\n }\n else {\n definition.viewQuery = superViewQuery;\n }\n}\nfunction inheritContentQueries(definition, superContentQueries) {\n const prevContentQueries = definition.contentQueries;\n if (prevContentQueries) {\n definition.contentQueries = (rf, ctx, directiveIndex) => {\n superContentQueries(rf, ctx, directiveIndex);\n prevContentQueries(rf, ctx, directiveIndex);\n };\n }\n else {\n definition.contentQueries = superContentQueries;\n }\n}\nfunction inheritHostBindings(definition, superHostBindings) {\n const prevHostBindings = definition.hostBindings;\n if (prevHostBindings) {\n definition.hostBindings = (rf, ctx) => {\n superHostBindings(rf, ctx);\n prevHostBindings(rf, ctx);\n };\n }\n else {\n definition.hostBindings = superHostBindings;\n }\n}\n\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/**\n * Fields which exist on either directive or component definitions, and need to be copied from\n * parent to child classes by the `ɵɵCopyDefinitionFeature`.\n */\nconst COPY_DIRECTIVE_FIELDS = [\n // The child class should use the providers of its parent.\n 'providersResolver',\n // Not listed here are any fields which are handled by the `ɵɵInheritDefinitionFeature`, such\n // as inputs, outputs, and host binding functions.\n];\n/**\n * Fields which exist only on component definitions, and need to be copied from parent to child\n * classes by the `ɵɵCopyDefinitionFeature`.\n *\n * The type here allows any field of `ComponentDef` which is not also a property of `DirectiveDef`,\n * since those should go in `COPY_DIRECTIVE_FIELDS` above.\n */\nconst COPY_COMPONENT_FIELDS = [\n // The child class should use the template function of its parent, including all template\n // semantics.\n 'template',\n 'decls',\n 'consts',\n 'vars',\n 'onPush',\n 'ngContentSelectors',\n // The child class should use the CSS styles of its parent, including all styling semantics.\n 'styles',\n 'encapsulation',\n // The child class should be checked by the runtime in the same way as its parent.\n 'schemas',\n];\n/**\n * Copies the fields not handled by the `ɵɵInheritDefinitionFeature` from the supertype of a\n * definition.\n *\n * This exists primarily to support ngcc migration of an existing View Engine pattern, where an\n * entire decorator is inherited from a parent to a child class. When ngcc detects this case, it\n * generates a skeleton definition on the child class, and applies this feature.\n *\n * The `ɵɵCopyDefinitionFeature` then copies any needed fields from the parent class' definition,\n * including things like the component template function.\n *\n * @param definition The definition of a child class which inherits from a parent class with its\n * own definition.\n *\n * @codeGenApi\n */\nfunction ɵɵCopyDefinitionFeature(definition) {\n let superType = getSuperType(definition.type);\n let superDef = undefined;\n if (isComponentDef(definition)) {\n // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.\n superDef = superType.ɵcmp;\n }\n else {\n // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.\n superDef = superType.ɵdir;\n }\n // Needed because `definition` fields are readonly.\n const defAny = definition;\n // Copy over any fields that apply to either directives or components.\n for (const field of COPY_DIRECTIVE_FIELDS) {\n defAny[field] = superDef[field];\n }\n if (isComponentDef(superDef)) {\n // Copy over any component-specific fields.\n for (const field of COPY_COMPONENT_FIELDS) {\n defAny[field] = superDef[field];\n }\n }\n}\n\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 */\nlet _symbolIterator = null;\nfunction getSymbolIterator() {\n if (!_symbolIterator) {\n const Symbol = _global['Symbol'];\n if (Symbol && Symbol.iterator) {\n _symbolIterator = Symbol.iterator;\n }\n else {\n // es6-shim specific logic\n const keys = Object.getOwnPropertyNames(Map.prototype);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (key !== 'entries' && key !== 'size' &&\n Map.prototype[key] === Map.prototype['entries']) {\n _symbolIterator = key;\n }\n }\n }\n }\n return _symbolIterator;\n}\n\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 */\nfunction devModeEqual(a, b) {\n const isListLikeIterableA = isListLikeIterable(a);\n const isListLikeIterableB = isListLikeIterable(b);\n if (isListLikeIterableA && isListLikeIterableB) {\n return areIterablesEqual(a, b, devModeEqual);\n }\n else {\n const isAObject = a && (typeof a === 'object' || typeof a === 'function');\n const isBObject = b && (typeof b === 'object' || typeof b === 'function');\n if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) {\n return true;\n }\n else {\n return Object.is(a, b);\n }\n }\n}\nfunction isListLikeIterable(obj) {\n if (!isJsObject(obj))\n return false;\n return Array.isArray(obj) ||\n (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]\n getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop\n}\nfunction areIterablesEqual(a, b, comparator) {\n const iterator1 = a[getSymbolIterator()]();\n const iterator2 = b[getSymbolIterator()]();\n while (true) {\n const item1 = iterator1.next();\n const item2 = iterator2.next();\n if (item1.done && item2.done)\n return true;\n if (item1.done || item2.done)\n return false;\n if (!comparator(item1.value, item2.value))\n return false;\n }\n}\nfunction iterateListLike(obj, fn) {\n if (Array.isArray(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn(obj[i]);\n }\n }\n else {\n const iterator = obj[getSymbolIterator()]();\n let item;\n while (!((item = iterator.next()).done)) {\n fn(item.value);\n }\n }\n}\nfunction isJsObject(o) {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\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// TODO(misko): consider inlining\n/** Updates binding and returns the value. */\nfunction updateBinding(lView, bindingIndex, value) {\n return lView[bindingIndex] = value;\n}\n/** Gets the current binding value. */\nfunction getBinding(lView, bindingIndex) {\n ngDevMode && assertIndexInRange(lView, bindingIndex);\n ngDevMode &&\n assertNotSame(lView[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.');\n return lView[bindingIndex];\n}\n/**\n * Updates binding if changed, then returns whether it was updated.\n *\n * This function also checks the `CheckNoChangesMode` and throws if changes are made.\n * Some changes (Objects/iterables) during `CheckNoChangesMode` are exempt to comply with VE\n * behavior.\n *\n * @param lView current `LView`\n * @param bindingIndex The binding in the `LView` to check\n * @param value New value to check against `lView[bindingIndex]`\n * @returns `true` if the bindings has changed. (Throws if binding has changed during\n * `CheckNoChangesMode`)\n */\nfunction bindingUpdated(lView, bindingIndex, value) {\n ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');\n ngDevMode &&\n assertLessThan(bindingIndex, lView.length, `Slot should have been initialized to NO_CHANGE`);\n const oldValue = lView[bindingIndex];\n if (Object.is(oldValue, value)) {\n return false;\n }\n else {\n if (ngDevMode && isInCheckNoChangesMode()) {\n // View engine didn't report undefined values as changed on the first checkNoChanges pass\n // (before the change detection was run).\n const oldValueToCompare = oldValue !== NO_CHANGE ? oldValue : undefined;\n if (!devModeEqual(oldValueToCompare, value)) {\n const details = getExpressionChangedErrorDetails(lView, bindingIndex, oldValueToCompare, value);\n throwErrorIfNoChangesMode(oldValue === NO_CHANGE, details.oldValue, details.newValue, details.propName);\n }\n // There was a change, but the `devModeEqual` decided that the change is exempt from an error.\n // For this reason we exit as if no change. The early exit is needed to prevent the changed\n // value to be written into `LView` (If we would write the new value that we would not see it\n // as change on next CD.)\n return false;\n }\n lView[bindingIndex] = value;\n return true;\n }\n}\n/** Updates 2 bindings if changed, then returns whether either was updated. */\nfunction bindingUpdated2(lView, bindingIndex, exp1, exp2) {\n const different = bindingUpdated(lView, bindingIndex, exp1);\n return bindingUpdated(lView, bindingIndex + 1, exp2) || different;\n}\n/** Updates 3 bindings if changed, then returns whether any was updated. */\nfunction bindingUpdated3(lView, bindingIndex, exp1, exp2, exp3) {\n const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);\n return bindingUpdated(lView, bindingIndex + 2, exp3) || different;\n}\n/** Updates 4 bindings if changed, then returns whether any was updated. */\nfunction bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {\n const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);\n return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;\n}\n\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/**\n * Updates the value of or removes a bound attribute on an Element.\n *\n * Used in the case of `[attr.title]=\"value\"`\n *\n * @param name name The name of the attribute.\n * @param value value The attribute is removed when value is `null` or `undefined`.\n * Otherwise the attribute value is set to the stringified value.\n * @param sanitizer An optional function used to sanitize the value.\n * @param namespace Optional namespace to use when setting the attribute.\n *\n * @codeGenApi\n */\nfunction ɵɵattribute(name, value, sanitizer, namespace) {\n const lView = getLView();\n const bindingIndex = nextBindingIndex();\n if (bindingUpdated(lView, bindingIndex, value)) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace);\n ngDevMode && storePropertyBindingMetadata(tView.data, tNode, 'attr.' + name, bindingIndex);\n }\n return ɵɵattribute;\n}\n\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/**\n * Create interpolation bindings with a variable number of expressions.\n *\n * If there are 1 to 8 expressions `interpolation1()` to `interpolation8()` should be used instead.\n * Those are faster because there is no need to create an array of expressions and iterate over it.\n *\n * `values`:\n * - has static text at even indexes,\n * - has evaluated expressions at odd indexes.\n *\n * Returns the concatenated string when any of the arguments changes, `NO_CHANGE` otherwise.\n */\nfunction interpolationV(lView, values) {\n ngDevMode && assertLessThan(2, values.length, 'should have at least 3 values');\n ngDevMode && assertEqual(values.length % 2, 1, 'should have an odd number of values');\n let isBindingUpdated = false;\n let bindingIndex = getBindingIndex();\n for (let i = 1; i < values.length; i += 2) {\n // Check if bindings (odd indexes) have changed\n isBindingUpdated = bindingUpdated(lView, bindingIndex++, values[i]) || isBindingUpdated;\n }\n setBindingIndex(bindingIndex);\n if (!isBindingUpdated) {\n return NO_CHANGE;\n }\n // Build the updated content\n let content = values[0];\n for (let i = 1; i < values.length; i += 2) {\n content += renderStringify(values[i]) + values[i + 1];\n }\n return content;\n}\n/**\n * Creates an interpolation binding with 1 expression.\n *\n * @param prefix static value used for concatenation only.\n * @param v0 value checked for change.\n * @param suffix static value used for concatenation only.\n */\nfunction interpolation1(lView, prefix, v0, suffix) {\n const different = bindingUpdated(lView, nextBindingIndex(), v0);\n return different ? prefix + renderStringify(v0) + suffix : NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 2 expressions.\n */\nfunction interpolation2(lView, prefix, v0, i0, v1, suffix) {\n const bindingIndex = getBindingIndex();\n const different = bindingUpdated2(lView, bindingIndex, v0, v1);\n incrementBindingIndex(2);\n return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + suffix : NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 3 expressions.\n */\nfunction interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix) {\n const bindingIndex = getBindingIndex();\n const different = bindingUpdated3(lView, bindingIndex, v0, v1, v2);\n incrementBindingIndex(3);\n return different ?\n prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + suffix :\n NO_CHANGE;\n}\n/**\n * Create an interpolation binding with 4 expressions.\n */\nfunction interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {\n const bindingIndex = getBindingIndex();\n const different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);\n incrementBindingIndex(4);\n return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +\n renderStringify(v2) + i2 + renderStringify(v3) + suffix :\n NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 5 expressions.\n */\nfunction interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {\n const bindingIndex = getBindingIndex();\n let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);\n different = bindingUpdated(lView, bindingIndex + 4, v4) || different;\n incrementBindingIndex(5);\n return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +\n renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + suffix :\n NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 6 expressions.\n */\nfunction interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {\n const bindingIndex = getBindingIndex();\n let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);\n different = bindingUpdated2(lView, bindingIndex + 4, v4, v5) || different;\n incrementBindingIndex(6);\n return different ?\n prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + i2 +\n renderStringify(v3) + i3 + renderStringify(v4) + i4 + renderStringify(v5) + suffix :\n NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 7 expressions.\n */\nfunction interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {\n const bindingIndex = getBindingIndex();\n let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);\n different = bindingUpdated3(lView, bindingIndex + 4, v4, v5, v6) || different;\n incrementBindingIndex(7);\n return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +\n renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +\n renderStringify(v5) + i5 + renderStringify(v6) + suffix :\n NO_CHANGE;\n}\n/**\n * Creates an interpolation binding with 8 expressions.\n */\nfunction interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {\n const bindingIndex = getBindingIndex();\n let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);\n different = bindingUpdated4(lView, bindingIndex + 4, v4, v5, v6, v7) || different;\n incrementBindingIndex(8);\n return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +\n renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +\n renderStringify(v5) + i5 + renderStringify(v6) + i6 + renderStringify(v7) + suffix :\n NO_CHANGE;\n}\n\n/**\n *\n * Update an interpolated attribute on an element with single bound value surrounded by text.\n *\n * Used when the value passed to a property has 1 interpolated value in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate1(attrName, prefix, v0, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation1(lView, prefix, v0, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 1, prefix, suffix);\n }\n return ɵɵattributeInterpolate1;\n}\n/**\n *\n * Update an interpolated attribute on an element with 2 bound values surrounded by text.\n *\n * Used when the value passed to a property has 2 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate2(attrName, prefix, v0, i0, v1, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 2, prefix, i0, suffix);\n }\n return ɵɵattributeInterpolate2;\n}\n/**\n *\n * Update an interpolated attribute on an element with 3 bound values surrounded by text.\n *\n * Used when the value passed to a property has 3 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate3(\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate3(attrName, prefix, v0, i0, v1, i1, v2, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 3, prefix, i0, i1, suffix);\n }\n return ɵɵattributeInterpolate3;\n}\n/**\n *\n * Update an interpolated attribute on an element with 4 bound values surrounded by text.\n *\n * Used when the value passed to a property has 4 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate4(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate4(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);\n }\n return ɵɵattributeInterpolate4;\n}\n/**\n *\n * Update an interpolated attribute on an element with 5 bound values surrounded by text.\n *\n * Used when the value passed to a property has 5 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate5(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate5(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);\n }\n return ɵɵattributeInterpolate5;\n}\n/**\n *\n * Update an interpolated attribute on an element with 6 bound values surrounded by text.\n *\n * Used when the value passed to a property has 6 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate6(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate6(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 6, prefix, i0, i1, i2, i3, i4, suffix);\n }\n return ɵɵattributeInterpolate6;\n}\n/**\n *\n * Update an interpolated attribute on an element with 7 bound values surrounded by text.\n *\n * Used when the value passed to a property has 7 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate7(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate7(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 7, prefix, i0, i1, i2, i3, i4, i5, suffix);\n }\n return ɵɵattributeInterpolate7;\n}\n/**\n *\n * Update an interpolated attribute on an element with 8 bound values surrounded by text.\n *\n * Used when the value passed to a property has 8 interpolated values in it:\n *\n * ```html\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolate8(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\n * ```\n *\n * @param attrName The name of the attribute to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param i6 Static value used for concatenation only.\n * @param v7 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolate8(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix, sanitizer, namespace) {\n const lView = getLView();\n const interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);\n ngDevMode &&\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 8, prefix, i0, i1, i2, i3, i4, i5, i6, suffix);\n }\n return ɵɵattributeInterpolate8;\n}\n/**\n * Update an interpolated attribute on an element with 9 or more bound values surrounded by text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div\n * title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵattributeInterpolateV(\n * 'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\n * 'suffix']);\n * ```\n *\n * @param attrName The name of the attribute to update.\n * @param values The collection of values and the strings in-between those values, beginning with\n * a string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵattributeInterpolateV(attrName, values, sanitizer, namespace) {\n const lView = getLView();\n const interpolated = interpolationV(lView, values);\n if (interpolated !== NO_CHANGE) {\n const tNode = getSelectedTNode();\n elementAttributeInternal(tNode, lView, attrName, interpolated, sanitizer, namespace);\n if (ngDevMode) {\n const interpolationInBetween = [values[0]]; // prefix\n for (let i = 2; i < values.length; i += 2) {\n interpolationInBetween.push(values[i]);\n }\n storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - interpolationInBetween.length + 1, ...interpolationInBetween);\n }\n }\n return ɵɵattributeInterpolateV;\n}\n\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 */\nfunction templateFirstCreatePass(index, tView, lView, templateFn, decls, vars, tagName, attrsIndex, localRefsIndex) {\n ngDevMode && assertFirstCreatePass(tView);\n ngDevMode && ngDevMode.firstCreatePass++;\n const tViewConsts = tView.consts;\n // TODO(pk): refactor getOrCreateTNode to have the \"create\" only version\n const tNode = getOrCreateTNode(tView, index, 4 /* Container */, tagName || null, getConstant(tViewConsts, attrsIndex));\n resolveDirectives(tView, lView, tNode, getConstant(tViewConsts, localRefsIndex));\n registerPostOrderHooks(tView, tNode);\n const embeddedTView = tNode.tViews = createTView(2 /* Embedded */, tNode, templateFn, decls, vars, tView.directiveRegistry, tView.pipeRegistry, null, tView.schemas, tViewConsts);\n if (tView.queries !== null) {\n tView.queries.template(tView, tNode);\n embeddedTView.queries = tView.queries.embeddedTView(tNode);\n }\n return tNode;\n}\n/**\n * Creates an LContainer for an ng-template (dynamically-inserted view), e.g.\n *\n * <ng-template #foo>\n * <div></div>\n * </ng-template>\n *\n * @param index The index of the container in the data array\n * @param templateFn Inline template\n * @param decls The number of nodes, local refs, and pipes for this template\n * @param vars The number of bindings for this template\n * @param tagName The name of the container element, if applicable\n * @param attrsIndex Index of template attributes in the `consts` array.\n * @param localRefs Index of the local references in the `consts` array.\n * @param localRefExtractor A function which extracts local-refs values from the template.\n * Defaults to the current element associated with the local-ref.\n *\n * @codeGenApi\n */\nfunction ɵɵtemplate(index, templateFn, decls, vars, tagName, attrsIndex, localRefsIndex, localRefExtractor) {\n const lView = getLView();\n const tView = getTView();\n const adjustedIndex = index + HEADER_OFFSET;\n const tNode = tView.firstCreatePass ? templateFirstCreatePass(adjustedIndex, tView, lView, templateFn, decls, vars, tagName, attrsIndex, localRefsIndex) :\n tView.data[adjustedIndex];\n setCurrentTNode(tNode, false);\n const comment = lView[RENDERER].createComment(ngDevMode ? 'container' : '');\n appendChild(tView, lView, comment, tNode);\n attachPatchData(comment, lView);\n addToViewTree(lView, lView[adjustedIndex] = createLContainer(comment, lView, comment, tNode));\n if (isDirectiveHost(tNode)) {\n createDirectivesInstances(tView, lView, tNode);\n }\n if (localRefsIndex != null) {\n saveResolvedLocalsInData(lView, tNode, localRefExtractor);\n }\n}\n\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/** Store a value in the `data` at a given `index`. */\nfunction store(tView, lView, index, value) {\n // We don't store any static data for local variables, so the first time\n // we see the template, we should store as null to avoid a sparse array\n if (index >= tView.data.length) {\n tView.data[index] = null;\n tView.blueprint[index] = null;\n }\n lView[index] = value;\n}\n/**\n * Retrieves a local reference from the current contextViewData.\n *\n * If the reference to retrieve is in a parent view, this instruction is used in conjunction\n * with a nextContext() call, which walks up the tree and updates the contextViewData instance.\n *\n * @param index The index of the local ref in contextViewData.\n *\n * @codeGenApi\n */\nfunction ɵɵreference(index) {\n const contextLView = getContextLView();\n return load(contextLView, HEADER_OFFSET + index);\n}\n\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/**\n * A mapping of the @angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of @angular/core.\n */\nconst angularCoreDiEnv = {\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n 'resolveForwardRef': resolveForwardRef,\n};\n\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/**\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\n * injectable def (`ɵprov`) onto the injectable type.\n */\nfunction compileInjectable(type, meta) {\n let ngInjectableDef = null;\n let ngFactoryDef = null;\n // if NG_PROV_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_PROV_DEF)) {\n Object.defineProperty(type, NG_PROV_DEF, {\n get: () => {\n if (ngInjectableDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'injectable', type });\n ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/ɵprov.js`, getInjectableMetadata(type, meta));\n }\n return ngInjectableDef;\n },\n });\n }\n // if NG_FACTORY_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_FACTORY_DEF)) {\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'injectable', type });\n ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/ɵfac.js`, {\n name: type.name,\n type,\n typeArgumentCount: 0,\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Injectable\n });\n }\n return ngFactoryDef;\n },\n // Leave this configurable so that the factories from directives or pipes can take precedence.\n configurable: true\n });\n }\n}\nconst USE_VALUE = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });\nfunction isUseClassProvider(meta) {\n return meta.useClass !== undefined;\n}\nfunction isUseValueProvider(meta) {\n return USE_VALUE in meta;\n}\nfunction isUseFactoryProvider(meta) {\n return meta.useFactory !== undefined;\n}\nfunction isUseExistingProvider(meta) {\n return meta.useExisting !== undefined;\n}\nfunction getInjectableMetadata(type, srcMeta) {\n // Allow the compilation of a class with a `@Injectable()` decorator without parameters\n const meta = srcMeta || { providedIn: null };\n const compilerMeta = {\n name: type.name,\n type: type,\n typeArgumentCount: 0,\n providedIn: meta.providedIn,\n };\n if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== undefined) {\n compilerMeta.deps = convertDependencies(meta.deps);\n }\n // Check to see if the user explicitly provided a `useXxxx` property.\n if (isUseClassProvider(meta)) {\n compilerMeta.useClass = meta.useClass;\n }\n else if (isUseValueProvider(meta)) {\n compilerMeta.useValue = meta.useValue;\n }\n else if (isUseFactoryProvider(meta)) {\n compilerMeta.useFactory = meta.useFactory;\n }\n else if (isUseExistingProvider(meta)) {\n compilerMeta.useExisting = meta.useExisting;\n }\n return compilerMeta;\n}\n\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/**\n * Injectable decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (type, meta) => compileInjectable(type, meta));\n\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 */\nfunction findFirstClosedCycle(keys) {\n const res = [];\n for (let i = 0; i < keys.length; ++i) {\n if (res.indexOf(keys[i]) > -1) {\n res.push(keys[i]);\n return res;\n }\n res.push(keys[i]);\n }\n return res;\n}\nfunction constructResolvingPath(keys) {\n if (keys.length > 1) {\n const reversed = findFirstClosedCycle(keys.slice().reverse());\n const tokenStrs = reversed.map(k => stringify(k.token));\n return ' (' + tokenStrs.join(' -> ') + ')';\n }\n return '';\n}\nfunction injectionError(injector, key, constructResolvingMessage, originalError) {\n const keys = [key];\n const errMsg = constructResolvingMessage(keys);\n const error = (originalError ? wrappedError(errMsg, originalError) : Error(errMsg));\n error.addKey = addKey;\n error.keys = keys;\n error.injectors = [injector];\n error.constructResolvingMessage = constructResolvingMessage;\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction addKey(injector, key) {\n this.injectors.push(injector);\n this.keys.push(key);\n // Note: This updated message won't be reflected in the `.stack` property\n this.message = this.constructResolvingMessage(this.keys);\n}\n/**\n * Thrown when trying to retrieve a dependency by key from {@link Injector}, but the\n * {@link Injector} does not have a {@link Provider} for the given key.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * class A {\n * constructor(b:B) {}\n * }\n *\n * expect(() => Injector.resolveAndCreate([A])).toThrowError();\n * ```\n */\nfunction noProviderError(injector, key) {\n return injectionError(injector, key, function (keys) {\n const first = stringify(keys[0].token);\n return `No provider for ${first}!${constructResolvingPath(keys)}`;\n });\n}\n/**\n * Thrown when dependencies form a cycle.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: \"one\", useFactory: (two) => \"two\", deps: [[new Inject(\"two\")]]},\n * {provide: \"two\", useFactory: (one) => \"one\", deps: [[new Inject(\"one\")]]}\n * ]);\n *\n * expect(() => injector.get(\"one\")).toThrowError();\n * ```\n *\n * Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.\n */\nfunction cyclicDependencyError(injector, key) {\n return injectionError(injector, key, function (keys) {\n return `Cannot instantiate cyclic dependency!${constructResolvingPath(keys)}`;\n });\n}\n/**\n * Thrown when a constructing type returns with an Error.\n *\n * The `InstantiationError` class contains the original error plus the dependency graph which caused\n * this object to be instantiated.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * class A {\n * constructor() {\n * throw new Error('message');\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([A]);\n\n * try {\n * injector.get(A);\n * } catch (e) {\n * expect(e instanceof InstantiationError).toBe(true);\n * expect(e.originalException.message).toEqual(\"message\");\n * expect(e.originalStack).toBeDefined();\n * }\n * ```\n */\nfunction instantiationError(injector, originalException, originalStack, key) {\n return injectionError(injector, key, function (keys) {\n const first = stringify(keys[0].token);\n return `${originalException.message}: Error during instantiation of ${first}!${constructResolvingPath(keys)}.`;\n }, originalException);\n}\n/**\n * Thrown when an object other then {@link Provider} (or `Type`) is passed to {@link Injector}\n * creation.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * expect(() => Injector.resolveAndCreate([\"not a type\"])).toThrowError();\n * ```\n */\nfunction invalidProviderError(provider) {\n return Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${provider}`);\n}\n/**\n * Thrown when the class has no annotation information.\n *\n * Lack of annotation information prevents the {@link Injector} from determining which dependencies\n * need to be injected into the constructor.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * class A {\n * constructor(b) {}\n * }\n *\n * expect(() => Injector.resolveAndCreate([A])).toThrowError();\n * ```\n *\n * This error is also thrown when the class not marked with {@link Injectable} has parameter types.\n *\n * ```typescript\n * class B {}\n *\n * class A {\n * constructor(b:B) {} // no information about the parameter types of A is available at runtime.\n * }\n *\n * expect(() => Injector.resolveAndCreate([A,B])).toThrowError();\n * ```\n *\n */\nfunction noAnnotationError(typeOrFunc, params) {\n const signature = [];\n for (let i = 0, ii = params.length; i < ii; i++) {\n const parameter = params[i];\n if (!parameter || parameter.length == 0) {\n signature.push('?');\n }\n else {\n signature.push(parameter.map(stringify).join(' '));\n }\n }\n return Error('Cannot resolve all parameters for \\'' + stringify(typeOrFunc) + '\\'(' +\n signature.join(', ') + '). ' +\n 'Make sure that all the parameters are decorated with Inject or have valid type annotations and that \\'' +\n stringify(typeOrFunc) + '\\' is decorated with Injectable.');\n}\n/**\n * Thrown when getting an object by index.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * class A {}\n *\n * var injector = Injector.resolveAndCreate([A]);\n *\n * expect(() => injector.getAt(100)).toThrowError();\n * ```\n *\n */\nfunction outOfBoundsError(index) {\n return Error(`Index ${index} is out-of-bounds.`);\n}\n// TODO: add a working example after alpha38 is released\n/**\n * Thrown when a multi provider and a regular provider are bound to the same token.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * expect(() => Injector.resolveAndCreate([\n * { provide: \"Strings\", useValue: \"string1\", multi: true},\n * { provide: \"Strings\", useValue: \"string2\", multi: false}\n * ])).toThrowError();\n * ```\n */\nfunction mixingMultiProvidersWithRegularProvidersError(provider1, provider2) {\n return Error(`Cannot mix multi providers and regular providers, got: ${provider1} ${provider2}`);\n}\n\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/**\n * A unique object used for retrieving items from the {@link ReflectiveInjector}.\n *\n * Keys have:\n * - a system-wide unique `id`.\n * - a `token`.\n *\n * `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows\n * the\n * injector to store created objects in a more efficient way.\n *\n * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when\n * resolving\n * providers.\n *\n * @deprecated No replacement\n * @publicApi\n */\nclass ReflectiveKey {\n /**\n * Private\n */\n constructor(token, id) {\n this.token = token;\n this.id = id;\n if (!token) {\n throw new Error('Token must be defined!');\n }\n this.displayName = stringify(this.token);\n }\n /**\n * Retrieves a `Key` for a token.\n */\n static get(token) {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n /**\n * @returns the number of keys registered in the system.\n */\n static get numberOfKeys() {\n return _globalKeyRegistry.numberOfKeys;\n }\n}\nclass KeyRegistry {\n constructor() {\n this._allKeys = new Map();\n }\n get(token) {\n if (token instanceof ReflectiveKey)\n return token;\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n const newKey = new ReflectiveKey(token, ReflectiveKey.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n get numberOfKeys() {\n return this._allKeys.size;\n }\n}\nconst _globalKeyRegistry = new KeyRegistry();\n\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/**\n * Provides access to reflection data about symbols. Used internally by Angular\n * to power dependency injection and compilation.\n */\nclass Reflector {\n constructor(reflectionCapabilities) {\n this.reflectionCapabilities = reflectionCapabilities;\n }\n updateCapabilities(caps) {\n this.reflectionCapabilities = caps;\n }\n factory(type) {\n return this.reflectionCapabilities.factory(type);\n }\n parameters(typeOrFunc) {\n return this.reflectionCapabilities.parameters(typeOrFunc);\n }\n annotations(typeOrFunc) {\n return this.reflectionCapabilities.annotations(typeOrFunc);\n }\n propMetadata(typeOrFunc) {\n return this.reflectionCapabilities.propMetadata(typeOrFunc);\n }\n hasLifecycleHook(type, lcProperty) {\n return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty);\n }\n getter(name) {\n return this.reflectionCapabilities.getter(name);\n }\n setter(name) {\n return this.reflectionCapabilities.setter(name);\n }\n method(name) {\n return this.reflectionCapabilities.method(name);\n }\n importUri(type) {\n return this.reflectionCapabilities.importUri(type);\n }\n resourceUri(type) {\n return this.reflectionCapabilities.resourceUri(type);\n }\n resolveIdentifier(name, moduleUrl, members, runtime) {\n return this.reflectionCapabilities.resolveIdentifier(name, moduleUrl, members, runtime);\n }\n resolveEnum(identifier, name) {\n return this.reflectionCapabilities.resolveEnum(identifier, name);\n }\n}\n\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/**\n * The {@link Reflector} used internally in Angular to access metadata\n * about symbols.\n */\nconst reflector = new Reflector(new ReflectionCapabilities());\n\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/**\n * `Dependency` is used by the framework to extend DI.\n * This is internal to Angular and should not be used directly.\n */\nclass ReflectiveDependency {\n constructor(key, optional, visibility) {\n this.key = key;\n this.optional = optional;\n this.visibility = visibility;\n }\n static fromKey(key) {\n return new ReflectiveDependency(key, false, null);\n }\n}\nconst _EMPTY_LIST = [];\nclass ResolvedReflectiveProvider_ {\n constructor(key, resolvedFactories, multiProvider) {\n this.key = key;\n this.resolvedFactories = resolvedFactories;\n this.multiProvider = multiProvider;\n this.resolvedFactory = this.resolvedFactories[0];\n }\n}\n/**\n * An internal resolved representation of a factory function created by resolving `Provider`.\n * @publicApi\n */\nclass ResolvedReflectiveFactory {\n constructor(\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n factory, \n /**\n * Arguments (dependencies) to the `factory` function.\n */\n dependencies) {\n this.factory = factory;\n this.dependencies = dependencies;\n }\n}\n/**\n * Resolve a single provider.\n */\nfunction resolveReflectiveFactory(provider) {\n let factoryFn;\n let resolvedDeps;\n if (provider.useClass) {\n const useClass = resolveForwardRef(provider.useClass);\n factoryFn = reflector.factory(useClass);\n resolvedDeps = _dependenciesFor(useClass);\n }\n else if (provider.useExisting) {\n factoryFn = (aliasInstance) => aliasInstance;\n resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))];\n }\n else if (provider.useFactory) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.deps);\n }\n else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n }\n return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);\n}\n/**\n * Converts the `Provider` into `ResolvedProvider`.\n *\n * `Injector` internally only uses `ResolvedProvider`, `Provider` contains convenience provider\n * syntax.\n */\nfunction resolveReflectiveProvider(provider) {\n return new ResolvedReflectiveProvider_(ReflectiveKey.get(provider.provide), [resolveReflectiveFactory(provider)], provider.multi || false);\n}\n/**\n * Resolve a list of Providers.\n */\nfunction resolveReflectiveProviders(providers) {\n const normalized = _normalizeProviders(providers, []);\n const resolved = normalized.map(resolveReflectiveProvider);\n const resolvedProviderMap = mergeResolvedReflectiveProviders(resolved, new Map());\n return Array.from(resolvedProviderMap.values());\n}\n/**\n * Merges a list of ResolvedProviders into a list where each key is contained exactly once and\n * multi providers have been merged.\n */\nfunction mergeResolvedReflectiveProviders(providers, normalizedProvidersMap) {\n for (let i = 0; i < providers.length; i++) {\n const provider = providers[i];\n const existing = normalizedProvidersMap.get(provider.key.id);\n if (existing) {\n if (provider.multiProvider !== existing.multiProvider) {\n throw mixingMultiProvidersWithRegularProvidersError(existing, provider);\n }\n if (provider.multiProvider) {\n for (let j = 0; j < provider.resolvedFactories.length; j++) {\n existing.resolvedFactories.push(provider.resolvedFactories[j]);\n }\n }\n else {\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n }\n else {\n let resolvedProvider;\n if (provider.multiProvider) {\n resolvedProvider = new ResolvedReflectiveProvider_(provider.key, provider.resolvedFactories.slice(), provider.multiProvider);\n }\n else {\n resolvedProvider = provider;\n }\n normalizedProvidersMap.set(provider.key.id, resolvedProvider);\n }\n }\n return normalizedProvidersMap;\n}\nfunction _normalizeProviders(providers, res) {\n providers.forEach(b => {\n if (b instanceof Type) {\n res.push({ provide: b, useClass: b });\n }\n else if (b && typeof b == 'object' && b.provide !== undefined) {\n res.push(b);\n }\n else if (Array.isArray(b)) {\n _normalizeProviders(b, res);\n }\n else {\n throw invalidProviderError(b);\n }\n });\n return res;\n}\nfunction constructDependencies(typeOrFunc, dependencies) {\n if (!dependencies) {\n return _dependenciesFor(typeOrFunc);\n }\n else {\n const params = dependencies.map(t => [t]);\n return dependencies.map(t => _extractToken(typeOrFunc, t, params));\n }\n}\nfunction _dependenciesFor(typeOrFunc) {\n const params = reflector.parameters(typeOrFunc);\n if (!params)\n return [];\n if (params.some(p => p == null)) {\n throw noAnnotationError(typeOrFunc, params);\n }\n return params.map(p => _extractToken(typeOrFunc, p, params));\n}\nfunction _extractToken(typeOrFunc, metadata, params) {\n let token = null;\n let optional = false;\n if (!Array.isArray(metadata)) {\n if (metadata instanceof Inject) {\n return _createDependency(metadata.token, optional, null);\n }\n else {\n return _createDependency(metadata, optional, null);\n }\n }\n let visibility = null;\n for (let i = 0; i < metadata.length; ++i) {\n const paramMetadata = metadata[i];\n if (paramMetadata instanceof Type) {\n token = paramMetadata;\n }\n else if (paramMetadata instanceof Inject) {\n token = paramMetadata.token;\n }\n else if (paramMetadata instanceof Optional) {\n optional = true;\n }\n else if (paramMetadata instanceof Self || paramMetadata instanceof SkipSelf) {\n visibility = paramMetadata;\n }\n else if (paramMetadata instanceof InjectionToken) {\n token = paramMetadata;\n }\n }\n token = resolveForwardRef(token);\n if (token != null) {\n return _createDependency(token, optional, visibility);\n }\n else {\n throw noAnnotationError(typeOrFunc, params);\n }\n}\nfunction _createDependency(token, optional, visibility) {\n return new ReflectiveDependency(ReflectiveKey.get(token), optional, visibility);\n}\n\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// Threshold for the dynamic version\nconst UNDEFINED = {};\n/**\n * A ReflectiveDependency injection container used for instantiating objects and resolving\n * dependencies.\n *\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the\n * constructor dependencies.\n *\n * In typical use, application code asks for the dependencies in the constructor and they are\n * resolved by the `Injector`.\n *\n * @usageNotes\n * ### Example\n *\n * The following example creates an `Injector` configured to create `Engine` and `Car`.\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * var car = injector.get(Car);\n * expect(car instanceof Car).toBe(true);\n * expect(car.engine instanceof Engine).toBe(true);\n * ```\n *\n * Notice, we don't use the `new` operator because we explicitly want to have the `Injector`\n * resolve all of the object's dependencies automatically.\n *\n * TODO: delete in v14.\n *\n * @deprecated from v5 - slow and brings in a lot of code, Use `Injector.create` instead.\n * @publicApi\n */\nclass ReflectiveInjector {\n /**\n * Turns an array of provider definitions into an array of resolved providers.\n *\n * A resolution is a process of flattening multiple nested arrays and converting individual\n * providers into an array of `ResolvedReflectiveProvider`s.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);\n *\n * expect(providers.length).toEqual(2);\n *\n * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);\n * expect(providers[0].key.displayName).toBe(\"Car\");\n * expect(providers[0].dependencies.length).toEqual(1);\n * expect(providers[0].factory).toBeDefined();\n *\n * expect(providers[1].key.displayName).toBe(\"Engine\");\n * });\n * ```\n *\n */\n static resolve(providers) {\n return resolveReflectiveProviders(providers);\n }\n /**\n * Resolves an array of providers and creates an injector from those providers.\n *\n * The passed-in providers can be an array of `Type`, `Provider`,\n * or a recursive array of more providers.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n */\n static resolveAndCreate(providers, parent) {\n const ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent);\n }\n /**\n * Creates an injector from previously resolved providers.\n *\n * This API is the recommended way to construct injectors in performance-sensitive parts.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * @Injectable()\n * class Engine {\n * }\n *\n * @Injectable()\n * class Car {\n * constructor(public engine:Engine) {}\n * }\n *\n * var providers = ReflectiveInjector.resolve([Car, Engine]);\n * var injector = ReflectiveInjector.fromResolvedProviders(providers);\n * expect(injector.get(Car) instanceof Car).toBe(true);\n * ```\n */\n static fromResolvedProviders(providers, parent) {\n return new ReflectiveInjector_(providers, parent);\n }\n}\nclass ReflectiveInjector_ {\n /**\n * Private\n */\n constructor(_providers, _parent) {\n /** @internal */\n this._constructionCounter = 0;\n this._providers = _providers;\n this.parent = _parent || null;\n const len = _providers.length;\n this.keyIds = [];\n this.objs = [];\n for (let i = 0; i < len; i++) {\n this.keyIds[i] = _providers[i].key.id;\n this.objs[i] = UNDEFINED;\n }\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n return this._getByKey(ReflectiveKey.get(token), null, notFoundValue);\n }\n resolveAndCreateChild(providers) {\n const ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);\n return this.createChildFromResolved(ResolvedReflectiveProviders);\n }\n createChildFromResolved(providers) {\n const inj = new ReflectiveInjector_(providers);\n inj.parent = this;\n return inj;\n }\n resolveAndInstantiate(provider) {\n return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]);\n }\n instantiateResolved(provider) {\n return this._instantiateProvider(provider);\n }\n getProviderAtIndex(index) {\n if (index < 0 || index >= this._providers.length) {\n throw outOfBoundsError(index);\n }\n return this._providers[index];\n }\n /** @internal */\n _new(provider) {\n if (this._constructionCounter++ > this._getMaxNumberOfObjects()) {\n throw cyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n _getMaxNumberOfObjects() {\n return this.objs.length;\n }\n _instantiateProvider(provider) {\n if (provider.multiProvider) {\n const res = [];\n for (let i = 0; i < provider.resolvedFactories.length; ++i) {\n res[i] = this._instantiate(provider, provider.resolvedFactories[i]);\n }\n return res;\n }\n else {\n return this._instantiate(provider, provider.resolvedFactories[0]);\n }\n }\n _instantiate(provider, ResolvedReflectiveFactory) {\n const factory = ResolvedReflectiveFactory.factory;\n let deps;\n try {\n deps =\n ResolvedReflectiveFactory.dependencies.map(dep => this._getByReflectiveDependency(dep));\n }\n catch (e) {\n if (e.addKey) {\n e.addKey(this, provider.key);\n }\n throw e;\n }\n let obj;\n try {\n obj = factory(...deps);\n }\n catch (e) {\n throw instantiationError(this, e, e.stack, provider.key);\n }\n return obj;\n }\n _getByReflectiveDependency(dep) {\n return this._getByKey(dep.key, dep.visibility, dep.optional ? null : THROW_IF_NOT_FOUND);\n }\n _getByKey(key, visibility, notFoundValue) {\n if (key === ReflectiveInjector_.INJECTOR_KEY) {\n return this;\n }\n if (visibility instanceof Self) {\n return this._getByKeySelf(key, notFoundValue);\n }\n else {\n return this._getByKeyDefault(key, notFoundValue, visibility);\n }\n }\n _getObjByKeyId(keyId) {\n for (let i = 0; i < this.keyIds.length; i++) {\n if (this.keyIds[i] === keyId) {\n if (this.objs[i] === UNDEFINED) {\n this.objs[i] = this._new(this._providers[i]);\n }\n return this.objs[i];\n }\n }\n return UNDEFINED;\n }\n /** @internal */\n _throwOrNull(key, notFoundValue) {\n if (notFoundValue !== THROW_IF_NOT_FOUND) {\n return notFoundValue;\n }\n else {\n throw noProviderError(this, key);\n }\n }\n /** @internal */\n _getByKeySelf(key, notFoundValue) {\n const obj = this._getObjByKeyId(key.id);\n return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue);\n }\n /** @internal */\n _getByKeyDefault(key, notFoundValue, visibility) {\n let inj;\n if (visibility instanceof SkipSelf) {\n inj = this.parent;\n }\n else {\n inj = this;\n }\n while (inj instanceof ReflectiveInjector_) {\n const inj_ = inj;\n const obj = inj_._getObjByKeyId(key.id);\n if (obj !== UNDEFINED)\n return obj;\n inj = inj_.parent;\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n }\n else {\n return this._throwOrNull(key, notFoundValue);\n }\n }\n get displayName() {\n const providers = _mapProviders(this, (b) => ' \"' + b.key.displayName + '\" ')\n .join(', ');\n return `ReflectiveInjector(providers: [${providers}])`;\n }\n toString() {\n return this.displayName;\n }\n}\nReflectiveInjector_.INJECTOR_KEY = ( /* @__PURE__ */ReflectiveKey.get(Injector));\nfunction _mapProviders(injector, fn) {\n const res = [];\n for (let i = 0; i < injector._providers.length; ++i) {\n res[i] = fn(injector.getProviderAtIndex(i));\n }\n return res;\n}\n\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\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\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 */\nfunction ɵɵdirectiveInject(token, flags = InjectFlags.Default) {\n const lView = getLView();\n // Fall back to inject() if view hasn't been created. This situation can happen in tests\n // if inject utilities are used before bootstrapping.\n if (lView === null) {\n // Verify that we will not get into infinite loop.\n ngDevMode && assertInjectImplementationNotEqual(ɵɵdirectiveInject);\n return ɵɵinject(token, flags);\n }\n const tNode = getCurrentTNode();\n return getOrCreateInjectable(tNode, lView, resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactory() {\n const msg = ngDevMode ? `This constructor was not compatible with Dependency Injection.` : 'invalid';\n throw new Error(msg);\n}\n\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/**\n * Update a property on a selected element.\n *\n * Operates on the element selected by index via the {@link select} instruction.\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled\n *\n * @param propName Name of property. Because it is going to DOM, this is not subject to\n * renaming as part of minification.\n * @param value New value to write.\n * @param sanitizer An optional function used to sanitize the value.\n * @returns This function returns itself so that it may be chained\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\n *\n * @codeGenApi\n */\nfunction ɵɵproperty(propName, value, sanitizer) {\n const lView = getLView();\n const bindingIndex = nextBindingIndex();\n if (bindingUpdated(lView, bindingIndex, value)) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, value, lView[RENDERER], sanitizer, false);\n ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);\n }\n return ɵɵproperty;\n}\n/**\n * Given `<div style=\"...\" my-dir>` and `MyDir` with `@Input('style')` we need to write to\n * directive input.\n */\nfunction setDirectiveInputsWhichShadowsStyling(tView, tNode, lView, value, isClassBased) {\n const inputs = tNode.inputs;\n const property = isClassBased ? 'class' : 'style';\n // We support both 'class' and `className` hence the fallback.\n setInputsForProperty(tView, lView, inputs[property], property, value);\n}\n\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 */\nfunction elementStartFirstCreatePass(index, tView, lView, native, name, attrsIndex, localRefsIndex) {\n ngDevMode && assertFirstCreatePass(tView);\n ngDevMode && ngDevMode.firstCreatePass++;\n const tViewConsts = tView.consts;\n const attrs = getConstant(tViewConsts, attrsIndex);\n const tNode = getOrCreateTNode(tView, index, 2 /* Element */, name, attrs);\n const hasDirectives = resolveDirectives(tView, lView, tNode, getConstant(tViewConsts, localRefsIndex));\n ngDevMode && validateElementIsKnown(native, tNode.value, tView.schemas, hasDirectives);\n if (tNode.attrs !== null) {\n computeStaticStyling(tNode, tNode.attrs, false);\n }\n if (tNode.mergedAttrs !== null) {\n computeStaticStyling(tNode, tNode.mergedAttrs, true);\n }\n if (tView.queries !== null) {\n tView.queries.elementStart(tView, tNode);\n }\n return tNode;\n}\n/**\n * Create DOM element. The instruction must later be followed by `elementEnd()` call.\n *\n * @param index Index of the element in the LView array\n * @param name Name of the DOM Node\n * @param attrsIndex Index of the element's attributes in the `consts` array.\n * @param localRefsIndex Index of the element's local references in the `consts` array.\n * @returns This function returns itself so that it may be chained.\n *\n * Attributes and localRefs are passed as an array of strings where elements with an even index\n * hold an attribute name and elements with an odd index hold an attribute value, ex.:\n * ['id', 'warning5', 'class', 'alert']\n *\n * @codeGenApi\n */\nfunction ɵɵelementStart(index, name, attrsIndex, localRefsIndex) {\n const lView = getLView();\n const tView = getTView();\n const adjustedIndex = HEADER_OFFSET + index;\n ngDevMode &&\n assertEqual(getBindingIndex(), tView.bindingStartIndex, 'elements should be created before any bindings');\n ngDevMode && assertIndexInRange(lView, adjustedIndex);\n const renderer = lView[RENDERER];\n const native = lView[adjustedIndex] = createElementNode(renderer, name, getNamespace$1());\n const tNode = tView.firstCreatePass ?\n elementStartFirstCreatePass(adjustedIndex, tView, lView, native, name, attrsIndex, localRefsIndex) :\n tView.data[adjustedIndex];\n setCurrentTNode(tNode, true);\n const mergedAttrs = tNode.mergedAttrs;\n if (mergedAttrs !== null) {\n setUpAttributes(renderer, native, mergedAttrs);\n }\n const classes = tNode.classes;\n if (classes !== null) {\n writeDirectClass(renderer, native, classes);\n }\n const styles = tNode.styles;\n if (styles !== null) {\n writeDirectStyle(renderer, native, styles);\n }\n if ((tNode.flags & 64 /* isDetached */) !== 64 /* isDetached */) {\n // In the i18n case, the translation may have removed this element, so only add it if it is not\n // detached. See `TNodeType.Placeholder` and `LFrame.inI18n` for more context.\n appendChild(tView, lView, native, tNode);\n }\n // any immediate children of a component or template container must be pre-emptively\n // monkey-patched with the component view data so that the element can be inspected\n // later on using any element discovery utility methods (see `element_discovery.ts`)\n if (getElementDepthCount() === 0) {\n attachPatchData(native, lView);\n }\n increaseElementDepthCount();\n if (isDirectiveHost(tNode)) {\n createDirectivesInstances(tView, lView, tNode);\n executeContentQueries(tView, tNode, lView);\n }\n if (localRefsIndex !== null) {\n saveResolvedLocalsInData(lView, tNode);\n }\n return ɵɵelementStart;\n}\n/**\n * Mark the end of the element.\n * @returns This function returns itself so that it may be chained.\n *\n * @codeGenApi\n */\nfunction ɵɵelementEnd() {\n let currentTNode = getCurrentTNode();\n ngDevMode && assertDefined(currentTNode, 'No parent node to close.');\n if (isCurrentTNodeParent()) {\n setCurrentTNodeAsNotParent();\n }\n else {\n ngDevMode && assertHasParent(getCurrentTNode());\n currentTNode = currentTNode.parent;\n setCurrentTNode(currentTNode, false);\n }\n const tNode = currentTNode;\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */);\n decreaseElementDepthCount();\n const tView = getTView();\n if (tView.firstCreatePass) {\n registerPostOrderHooks(tView, currentTNode);\n if (isContentQueryHost(currentTNode)) {\n tView.queries.elementEnd(currentTNode);\n }\n }\n if (tNode.classesWithoutHost != null && hasClassInput(tNode)) {\n setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.classesWithoutHost, true);\n }\n if (tNode.stylesWithoutHost != null && hasStyleInput(tNode)) {\n setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.stylesWithoutHost, false);\n }\n return ɵɵelementEnd;\n}\n/**\n * Creates an empty element using {@link elementStart} and {@link elementEnd}\n *\n * @param index Index of the element in the data array\n * @param name Name of the DOM Node\n * @param attrsIndex Index of the element's attributes in the `consts` array.\n * @param localRefsIndex Index of the element's local references in the `consts` array.\n * @returns This function returns itself so that it may be chained.\n *\n * @codeGenApi\n */\nfunction ɵɵelement(index, name, attrsIndex, localRefsIndex) {\n ɵɵelementStart(index, name, attrsIndex, localRefsIndex);\n ɵɵelementEnd();\n return ɵɵelement;\n}\n/**\n * Validates that the element is known at runtime and produces\n * an error if it's not the case.\n * This check is relevant for JIT-compiled components (for AOT-compiled\n * ones this check happens at build time).\n *\n * The element is considered known if either:\n * - it's a known HTML element\n * - it's a known custom element\n * - the element matches any directive\n * - the element is allowed by one of the schemas\n *\n * @param element Element to validate\n * @param tagName Name of the tag to check\n * @param schemas Array of schemas\n * @param hasDirectives Boolean indicating that the element matches any directive\n */\nfunction validateElementIsKnown(element, tagName, schemas, hasDirectives) {\n // If `schemas` is set to `null`, that's an indication that this Component was compiled in AOT\n // mode where this check happens at compile time. In JIT mode, `schemas` is always present and\n // defined as an array (as an empty array in case `schemas` field is not defined) and we should\n // execute the check below.\n if (schemas === null)\n return;\n // If the element matches any directive, it's considered as valid.\n if (!hasDirectives && tagName !== null) {\n // The element is unknown if it's an instance of HTMLUnknownElement, or it isn't registered\n // as a custom element. Note that unknown elements with a dash in their name won't be instances\n // of HTMLUnknownElement in browsers that support web components.\n const isUnknown = \n // Note that we can't check for `typeof HTMLUnknownElement === 'function'`,\n // because while most browsers return 'function', IE returns 'object'.\n (typeof HTMLUnknownElement !== 'undefined' && HTMLUnknownElement &&\n element instanceof HTMLUnknownElement) ||\n (typeof customElements !== 'undefined' && tagName.indexOf('-') > -1 &&\n !customElements.get(tagName));\n if (isUnknown && !matchingSchemas(schemas, tagName)) {\n let message = `'${tagName}' is not a known element:\\n`;\n message += `1. If '${tagName}' is an Angular component, then verify that it is part of this module.\\n`;\n if (tagName && tagName.indexOf('-') > -1) {\n message += `2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.`;\n }\n else {\n message +=\n `2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.`;\n }\n console.error(formatRuntimeError(304 /* UNKNOWN_ELEMENT */, message));\n }\n }\n}\n\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 */\nfunction elementContainerStartFirstCreatePass(index, tView, lView, attrsIndex, localRefsIndex) {\n ngDevMode && ngDevMode.firstCreatePass++;\n const tViewConsts = tView.consts;\n const attrs = getConstant(tViewConsts, attrsIndex);\n const tNode = getOrCreateTNode(tView, index, 8 /* ElementContainer */, 'ng-container', attrs);\n // While ng-container doesn't necessarily support styling, we use the style context to identify\n // and execute directives on the ng-container.\n if (attrs !== null) {\n computeStaticStyling(tNode, attrs, true);\n }\n const localRefs = getConstant(tViewConsts, localRefsIndex);\n resolveDirectives(tView, lView, tNode, localRefs);\n if (tView.queries !== null) {\n tView.queries.elementStart(tView, tNode);\n }\n return tNode;\n}\n/**\n * Creates a logical container for other nodes (<ng-container>) backed by a comment node in the DOM.\n * The instruction must later be followed by `elementContainerEnd()` call.\n *\n * @param index Index of the element in the LView array\n * @param attrsIndex Index of the container attributes in the `consts` array.\n * @param localRefsIndex Index of the container's local references in the `consts` array.\n * @returns This function returns itself so that it may be chained.\n *\n * Even if this instruction accepts a set of attributes no actual attribute values are propagated to\n * the DOM (as a comment node can't have attributes). Attributes are here only for directive\n * matching purposes and setting initial inputs of directives.\n *\n * @codeGenApi\n */\nfunction ɵɵelementContainerStart(index, attrsIndex, localRefsIndex) {\n const lView = getLView();\n const tView = getTView();\n const adjustedIndex = index + HEADER_OFFSET;\n ngDevMode && assertIndexInRange(lView, adjustedIndex);\n ngDevMode &&\n assertEqual(getBindingIndex(), tView.bindingStartIndex, 'element containers should be created before any bindings');\n const tNode = tView.firstCreatePass ?\n elementContainerStartFirstCreatePass(adjustedIndex, tView, lView, attrsIndex, localRefsIndex) :\n tView.data[adjustedIndex];\n setCurrentTNode(tNode, true);\n ngDevMode && ngDevMode.rendererCreateComment++;\n const native = lView[adjustedIndex] =\n lView[RENDERER].createComment(ngDevMode ? 'ng-container' : '');\n appendChild(tView, lView, native, tNode);\n attachPatchData(native, lView);\n if (isDirectiveHost(tNode)) {\n createDirectivesInstances(tView, lView, tNode);\n executeContentQueries(tView, tNode, lView);\n }\n if (localRefsIndex != null) {\n saveResolvedLocalsInData(lView, tNode);\n }\n return ɵɵelementContainerStart;\n}\n/**\n * Mark the end of the <ng-container>.\n * @returns This function returns itself so that it may be chained.\n *\n * @codeGenApi\n */\nfunction ɵɵelementContainerEnd() {\n let currentTNode = getCurrentTNode();\n const tView = getTView();\n if (isCurrentTNodeParent()) {\n setCurrentTNodeAsNotParent();\n }\n else {\n ngDevMode && assertHasParent(currentTNode);\n currentTNode = currentTNode.parent;\n setCurrentTNode(currentTNode, false);\n }\n ngDevMode && assertTNodeType(currentTNode, 8 /* ElementContainer */);\n if (tView.firstCreatePass) {\n registerPostOrderHooks(tView, currentTNode);\n if (isContentQueryHost(currentTNode)) {\n tView.queries.elementEnd(currentTNode);\n }\n }\n return ɵɵelementContainerEnd;\n}\n/**\n * Creates an empty logical container using {@link elementContainerStart}\n * and {@link elementContainerEnd}\n *\n * @param index Index of the element in the LView array\n * @param attrsIndex Index of the container attributes in the `consts` array.\n * @param localRefsIndex Index of the container's local references in the `consts` array.\n * @returns This function returns itself so that it may be chained.\n *\n * @codeGenApi\n */\nfunction ɵɵelementContainer(index, attrsIndex, localRefsIndex) {\n ɵɵelementContainerStart(index, attrsIndex, localRefsIndex);\n ɵɵelementContainerEnd();\n return ɵɵelementContainer;\n}\n\n/**\n * Returns the current OpaqueViewState instance.\n *\n * Used in conjunction with the restoreView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @codeGenApi\n */\nfunction ɵɵgetCurrentView() {\n return getLView();\n}\n\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/**\n * Determine if the argument is shaped like a Promise\n */\nfunction isPromise(obj) {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && typeof obj.then === 'function';\n}\n/**\n * Determine if the argument is a Subscribable\n */\nfunction isSubscribable(obj) {\n return !!obj && typeof obj.subscribe === 'function';\n}\n/**\n * Determine if the argument is an Observable\n *\n * Strictly this tests that the `obj` is `Subscribable`, since `Observable`\n * types need additional methods, such as `lift()`. But it is adequate for our\n * needs since within the Angular framework code we only ever need to use the\n * `subscribe()` method, and RxJS has mechanisms to wrap `Subscribable` objects\n * into `Observable` as needed.\n */\nconst isObservable = isSubscribable;\n\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/**\n * Adds an event listener to the current node.\n *\n * If an output exists on one of the node's directives, it also subscribes to the output\n * and saves the subscription for later cleanup.\n *\n * @param eventName Name of the event\n * @param listenerFn The function to be called when event emits\n * @param useCapture Whether or not to use capture in event listener\n * @param eventTargetResolver Function that returns global target information in case this listener\n * should be attached to a global object like window, document or body\n *\n * @codeGenApi\n */\nfunction ɵɵlistener(eventName, listenerFn, useCapture, eventTargetResolver) {\n const lView = getLView();\n const tView = getTView();\n const tNode = getCurrentTNode();\n listenerInternal(tView, lView, lView[RENDERER], tNode, eventName, listenerFn, !!useCapture, eventTargetResolver);\n return ɵɵlistener;\n}\n/**\n * Registers a synthetic host listener (e.g. `(@foo.start)`) on a component or directive.\n *\n * This instruction is for compatibility purposes and is designed to ensure that a\n * synthetic host listener (e.g. `@HostListener('@foo.start')`) properly gets rendered\n * in the component's renderer. Normally all host listeners are evaluated with the\n * parent component's renderer, but, in the case of animation @triggers, they need\n * to be evaluated with the sub component's renderer (because that's where the\n * animation triggers are defined).\n *\n * Do not use this instruction as a replacement for `listener`. This instruction\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\n *\n * @param eventName Name of the event\n * @param listenerFn The function to be called when event emits\n * @param useCapture Whether or not to use capture in event listener\n * @param eventTargetResolver Function that returns global target information in case this listener\n * should be attached to a global object like window, document or body\n *\n * @codeGenApi\n */\nfunction ɵɵsyntheticHostListener(eventName, listenerFn) {\n const tNode = getCurrentTNode();\n const lView = getLView();\n const tView = getTView();\n const currentDef = getCurrentDirectiveDef(tView.data);\n const renderer = loadComponentRenderer(currentDef, tNode, lView);\n listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, false);\n return ɵɵsyntheticHostListener;\n}\n/**\n * A utility function that checks if a given element has already an event handler registered for an\n * event with a specified name. The TView.cleanup data structure is used to find out which events\n * are registered for a given element.\n */\nfunction findExistingListener(tView, lView, eventName, tNodeIdx) {\n const tCleanup = tView.cleanup;\n if (tCleanup != null) {\n for (let i = 0; i < tCleanup.length - 1; i += 2) {\n const cleanupEventName = tCleanup[i];\n if (cleanupEventName === eventName && tCleanup[i + 1] === tNodeIdx) {\n // We have found a matching event name on the same node but it might not have been\n // registered yet, so we must explicitly verify entries in the LView cleanup data\n // structures.\n const lCleanup = lView[CLEANUP];\n const listenerIdxInLCleanup = tCleanup[i + 2];\n return lCleanup.length > listenerIdxInLCleanup ? lCleanup[listenerIdxInLCleanup] : null;\n }\n // TView.cleanup can have a mix of 4-elements entries (for event handler cleanups) or\n // 2-element entries (for directive and queries destroy hooks). As such we can encounter\n // blocks of 4 or 2 items in the tView.cleanup and this is why we iterate over 2 elements\n // first and jump another 2 elements if we detect listeners cleanup (4 elements). Also check\n // documentation of TView.cleanup for more details of this data structure layout.\n if (typeof cleanupEventName === 'string') {\n i += 2;\n }\n }\n }\n return null;\n}\nfunction listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, useCapture, eventTargetResolver) {\n const isTNodeDirectiveHost = isDirectiveHost(tNode);\n const firstCreatePass = tView.firstCreatePass;\n const tCleanup = firstCreatePass && getOrCreateTViewCleanup(tView);\n const context = lView[CONTEXT];\n // When the ɵɵlistener instruction was generated and is executed we know that there is either a\n // native listener or a directive output on this element. As such we we know that we will have to\n // register a listener and store its cleanup function on LView.\n const lCleanup = getOrCreateLViewCleanup(lView);\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */);\n let processOutputs = true;\n // Adding a native event listener is applicable when:\n // - The corresponding TNode represents a DOM element.\n // - The event target has a resolver (usually resulting in a global object,\n // such as `window` or `document`).\n if ((tNode.type & 3 /* AnyRNode */) || eventTargetResolver) {\n const native = getNativeByTNode(tNode, lView);\n const target = eventTargetResolver ? eventTargetResolver(native) : native;\n const lCleanupIndex = lCleanup.length;\n const idxOrTargetGetter = eventTargetResolver ?\n (_lView) => eventTargetResolver(unwrapRNode(_lView[tNode.index])) :\n tNode.index;\n // In order to match current behavior, native DOM event listeners must be added for all\n // events (including outputs).\n if (isProceduralRenderer(renderer)) {\n // There might be cases where multiple directives on the same element try to register an event\n // handler function for the same event. In this situation we want to avoid registration of\n // several native listeners as each registration would be intercepted by NgZone and\n // trigger change detection. This would mean that a single user action would result in several\n // change detections being invoked. To avoid this situation we want to have only one call to\n // native handler registration (for the same element and same type of event).\n //\n // In order to have just one native event handler in presence of multiple handler functions,\n // we just register a first handler function as a native event listener and then chain\n // (coalesce) other handler functions on top of the first native handler function.\n let existingListener = null;\n // Please note that the coalescing described here doesn't happen for events specifying an\n // alternative target (ex. (document:click)) - this is to keep backward compatibility with the\n // view engine.\n // Also, we don't have to search for existing listeners is there are no directives\n // matching on a given node as we can't register multiple event handlers for the same event in\n // a template (this would mean having duplicate attributes).\n if (!eventTargetResolver && isTNodeDirectiveHost) {\n existingListener = findExistingListener(tView, lView, eventName, tNode.index);\n }\n if (existingListener !== null) {\n // Attach a new listener to coalesced listeners list, maintaining the order in which\n // listeners are registered. For performance reasons, we keep a reference to the last\n // listener in that list (in `__ngLastListenerFn__` field), so we can avoid going through\n // the entire set each time we need to add a new listener.\n const lastListenerFn = existingListener.__ngLastListenerFn__ || existingListener;\n lastListenerFn.__ngNextListenerFn__ = listenerFn;\n existingListener.__ngLastListenerFn__ = listenerFn;\n processOutputs = false;\n }\n else {\n listenerFn = wrapListener(tNode, lView, context, listenerFn, false /** preventDefault */);\n const cleanupFn = renderer.listen(target, eventName, listenerFn);\n ngDevMode && ngDevMode.rendererAddEventListener++;\n lCleanup.push(listenerFn, cleanupFn);\n tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, lCleanupIndex + 1);\n }\n }\n else {\n listenerFn = wrapListener(tNode, lView, context, listenerFn, true /** preventDefault */);\n target.addEventListener(eventName, listenerFn, useCapture);\n ngDevMode && ngDevMode.rendererAddEventListener++;\n lCleanup.push(listenerFn);\n tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, useCapture);\n }\n }\n else {\n // Even if there is no native listener to add, we still need to wrap the listener so that OnPush\n // ancestors are marked dirty when an event occurs.\n listenerFn = wrapListener(tNode, lView, context, listenerFn, false /** preventDefault */);\n }\n // subscribe to directive outputs\n const outputs = tNode.outputs;\n let props;\n if (processOutputs && outputs !== null && (props = outputs[eventName])) {\n const propsLength = props.length;\n if (propsLength) {\n for (let i = 0; i < propsLength; i += 2) {\n const index = props[i];\n ngDevMode && assertIndexInRange(lView, index);\n const minifiedName = props[i + 1];\n const directiveInstance = lView[index];\n const output = directiveInstance[minifiedName];\n if (ngDevMode && !isObservable(output)) {\n throw new Error(`@Output ${minifiedName} not initialized in '${directiveInstance.constructor.name}'.`);\n }\n const subscription = output.subscribe(listenerFn);\n const idx = lCleanup.length;\n lCleanup.push(listenerFn, subscription);\n tCleanup && tCleanup.push(eventName, tNode.index, idx, -(idx + 1));\n }\n }\n }\n}\nfunction executeListenerWithErrorHandling(lView, context, listenerFn, e) {\n try {\n profiler(6 /* OutputStart */, context, listenerFn);\n // Only explicitly returning false from a listener should preventDefault\n return listenerFn(e) !== false;\n }\n catch (error) {\n handleError(lView, error);\n return false;\n }\n finally {\n profiler(7 /* OutputEnd */, context, listenerFn);\n }\n}\n/**\n * Wraps an event listener with a function that marks ancestors dirty and prevents default behavior,\n * if applicable.\n *\n * @param tNode The TNode associated with this listener\n * @param lView The LView that contains this listener\n * @param listenerFn The listener function to call\n * @param wrapWithPreventDefault Whether or not to prevent default behavior\n * (the procedural renderer does this already, so in those cases, we should skip)\n */\nfunction wrapListener(tNode, lView, context, listenerFn, wrapWithPreventDefault) {\n // Note: we are performing most of the work in the listener function itself\n // to optimize listener registration.\n return function wrapListenerIn_markDirtyAndPreventDefault(e) {\n // Ivy uses `Function` as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`.\n if (e === Function) {\n return listenerFn;\n }\n // In order to be backwards compatible with View Engine, events on component host nodes\n // must also mark the component view itself dirty (i.e. the view that it owns).\n const startView = tNode.flags & 2 /* isComponentHost */ ?\n getComponentLViewByIndex(tNode.index, lView) :\n lView;\n // See interfaces/view.ts for more on LViewFlags.ManualOnPush\n if ((lView[FLAGS] & 32 /* ManualOnPush */) === 0) {\n markViewDirty(startView);\n }\n let result = executeListenerWithErrorHandling(lView, context, listenerFn, e);\n // A just-invoked listener function might have coalesced listeners so we need to check for\n // their presence and invoke as needed.\n let nextListenerFn = wrapListenerIn_markDirtyAndPreventDefault.__ngNextListenerFn__;\n while (nextListenerFn) {\n // We should prevent default if any of the listeners explicitly return false\n result = executeListenerWithErrorHandling(lView, context, nextListenerFn, e) && result;\n nextListenerFn = nextListenerFn.__ngNextListenerFn__;\n }\n if (wrapWithPreventDefault && result === false) {\n e.preventDefault();\n // Necessary for legacy browsers that don't support preventDefault (e.g. IE)\n e.returnValue = false;\n }\n return result;\n };\n}\n\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\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/**\n * Retrieves a context at the level specified and saves it as the global, contextViewData.\n * Will get the next level up if level is not specified.\n *\n * This is used to save contexts of parent views so they can be bound in embedded views, or\n * in conjunction with reference() to bind a ref from a parent view.\n *\n * @param level The relative level of the view from which to grab context compared to contextVewData\n * @returns context\n *\n * @codeGenApi\n */\nfunction ɵɵnextContext(level = 1) {\n return nextContextImpl(level);\n}\n\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/**\n * Checks a given node against matching projection slots and returns the\n * determined slot index. Returns \"null\" if no slot matched the given node.\n *\n * This function takes into account the parsed ngProjectAs selector from the\n * node's attributes. If present, it will check whether the ngProjectAs selector\n * matches any of the projection slot selectors.\n */\nfunction matchingProjectionSlotIndex(tNode, projectionSlots) {\n let wildcardNgContentIndex = null;\n const ngProjectAsAttrVal = getProjectAsAttrValue(tNode);\n for (let i = 0; i < projectionSlots.length; i++) {\n const slotValue = projectionSlots[i];\n // The last wildcard projection slot should match all nodes which aren't matching\n // any selector. This is necessary to be backwards compatible with view engine.\n if (slotValue === '*') {\n wildcardNgContentIndex = i;\n continue;\n }\n // If we ran into an `ngProjectAs` attribute, we should match its parsed selector\n // to the list of selectors, otherwise we fall back to matching against the node.\n if (ngProjectAsAttrVal === null ?\n isNodeMatchingSelectorList(tNode, slotValue, /* isProjectionMode */ true) :\n isSelectorInSelectorList(ngProjectAsAttrVal, slotValue)) {\n return i; // first matching selector \"captures\" a given node\n }\n }\n return wildcardNgContentIndex;\n}\n/**\n * Instruction to distribute projectable nodes among <ng-content> occurrences in a given template.\n * It takes all the selectors from the entire component's template and decides where\n * each projected node belongs (it re-distributes nodes among \"buckets\" where each \"bucket\" is\n * backed by a selector).\n *\n * This function requires CSS selectors to be provided in 2 forms: parsed (by a compiler) and text,\n * un-parsed form.\n *\n * The parsed form is needed for efficient matching of a node against a given CSS selector.\n * The un-parsed, textual form is needed for support of the ngProjectAs attribute.\n *\n * Having a CSS selector in 2 different formats is not ideal, but alternatives have even more\n * drawbacks:\n * - having only a textual form would require runtime parsing of CSS selectors;\n * - we can't have only a parsed as we can't re-construct textual form from it (as entered by a\n * template author).\n *\n * @param projectionSlots? A collection of projection slots. A projection slot can be based\n * on a parsed CSS selectors or set to the wildcard selector (\"*\") in order to match\n * all nodes which do not match any selector. If not specified, a single wildcard\n * selector projection slot will be defined.\n *\n * @codeGenApi\n */\nfunction ɵɵprojectionDef(projectionSlots) {\n const componentNode = getLView()[DECLARATION_COMPONENT_VIEW][T_HOST];\n if (!componentNode.projection) {\n // If no explicit projection slots are defined, fall back to a single\n // projection slot with the wildcard selector.\n const numProjectionSlots = projectionSlots ? projectionSlots.length : 1;\n const projectionHeads = componentNode.projection =\n newArray(numProjectionSlots, null);\n const tails = projectionHeads.slice();\n let componentChild = componentNode.child;\n while (componentChild !== null) {\n const slotIndex = projectionSlots ? matchingProjectionSlotIndex(componentChild, projectionSlots) : 0;\n if (slotIndex !== null) {\n if (tails[slotIndex]) {\n tails[slotIndex].projectionNext = componentChild;\n }\n else {\n projectionHeads[slotIndex] = componentChild;\n }\n tails[slotIndex] = componentChild;\n }\n componentChild = componentChild.next;\n }\n }\n}\n/**\n * Inserts previously re-distributed projected nodes. This instruction must be preceded by a call\n * to the projectionDef instruction.\n *\n * @param nodeIndex\n * @param selectorIndex:\n * - 0 when the selector is `*` (or unspecified as this is the default value),\n * - 1 based index of the selector from the {@link projectionDef}\n *\n * @codeGenApi\n */\nfunction ɵɵprojection(nodeIndex, selectorIndex = 0, attrs) {\n const lView = getLView();\n const tView = getTView();\n const tProjectionNode = getOrCreateTNode(tView, HEADER_OFFSET + nodeIndex, 16 /* Projection */, null, attrs || null);\n // We can't use viewData[HOST_NODE] because projection nodes can be nested in embedded views.\n if (tProjectionNode.projection === null)\n tProjectionNode.projection = selectorIndex;\n // `<ng-content>` has no content\n setCurrentTNodeAsNotParent();\n if ((tProjectionNode.flags & 64 /* isDetached */) !== 64 /* isDetached */) {\n // re-distribution of projectable nodes is stored on a component's view level\n applyProjection(tView, lView, tProjectionNode);\n }\n}\n\n/**\n *\n * Update an interpolated property on an element with a lone bound value\n *\n * Used when the value passed to a property has 1 interpolated value in it, an no additional text\n * surrounds that interpolated value:\n *\n * ```html\n * <div title=\"{{v0}}\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate('title', v0);\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate(propName, v0, sanitizer) {\n ɵɵpropertyInterpolate1(propName, '', v0, '', sanitizer);\n return ɵɵpropertyInterpolate;\n}\n/**\n *\n * Update an interpolated property on an element with single bound value surrounded by text.\n *\n * Used when the value passed to a property has 1 interpolated value in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate1('title', 'prefix', v0, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate1(propName, prefix, v0, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation1(lView, prefix, v0, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 1, prefix, suffix);\n }\n return ɵɵpropertyInterpolate1;\n}\n/**\n *\n * Update an interpolated property on an element with 2 bound values surrounded by text.\n *\n * Used when the value passed to a property has 2 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate2(propName, prefix, v0, i0, v1, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 2, prefix, i0, suffix);\n }\n return ɵɵpropertyInterpolate2;\n}\n/**\n *\n * Update an interpolated property on an element with 3 bound values surrounded by text.\n *\n * Used when the value passed to a property has 3 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate3(\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate3(propName, prefix, v0, i0, v1, i1, v2, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 3, prefix, i0, i1, suffix);\n }\n return ɵɵpropertyInterpolate3;\n}\n/**\n *\n * Update an interpolated property on an element with 4 bound values surrounded by text.\n *\n * Used when the value passed to a property has 4 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate4(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate4(propName, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);\n }\n return ɵɵpropertyInterpolate4;\n}\n/**\n *\n * Update an interpolated property on an element with 5 bound values surrounded by text.\n *\n * Used when the value passed to a property has 5 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate5(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate5(propName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);\n }\n return ɵɵpropertyInterpolate5;\n}\n/**\n *\n * Update an interpolated property on an element with 6 bound values surrounded by text.\n *\n * Used when the value passed to a property has 6 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate6(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate6(propName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 6, prefix, i0, i1, i2, i3, i4, suffix);\n }\n return ɵɵpropertyInterpolate6;\n}\n/**\n *\n * Update an interpolated property on an element with 7 bound values surrounded by text.\n *\n * Used when the value passed to a property has 7 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate7(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate7(propName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 7, prefix, i0, i1, i2, i3, i4, i5, suffix);\n }\n return ɵɵpropertyInterpolate7;\n}\n/**\n *\n * Update an interpolated property on an element with 8 bound values surrounded by text.\n *\n * Used when the value passed to a property has 8 interpolated values in it:\n *\n * ```html\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolate8(\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param i6 Static value used for concatenation only.\n * @param v7 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolate8(propName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n ngDevMode &&\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 8, prefix, i0, i1, i2, i3, i4, i5, i6, suffix);\n }\n return ɵɵpropertyInterpolate8;\n}\n/**\n * Update an interpolated property on an element with 9 or more bound values surrounded by text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div\n * title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\n * ```\n *\n * Its compiled representation is::\n *\n * ```ts\n * ɵɵpropertyInterpolateV(\n * 'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\n * 'suffix']);\n * ```\n *\n * If the property name also exists as an input property on one of the element's directives,\n * the component property will be set instead of the element property. This check must\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\n *\n * @param propName The name of the property to update.\n * @param values The collection of values and the strings inbetween those values, beginning with a\n * string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\n * @param sanitizer An optional sanitizer function\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵpropertyInterpolateV(propName, values, sanitizer) {\n const lView = getLView();\n const interpolatedValue = interpolationV(lView, values);\n if (interpolatedValue !== NO_CHANGE) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);\n if (ngDevMode) {\n const interpolationInBetween = [values[0]]; // prefix\n for (let i = 2; i < values.length; i += 2) {\n interpolationInBetween.push(values[i]);\n }\n storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - interpolationInBetween.length + 1, ...interpolationInBetween);\n }\n }\n return ɵɵpropertyInterpolateV;\n}\n\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/**\n * NOTE: The word `styling` is used interchangeably as style or class styling.\n *\n * This file contains code to link styling instructions together so that they can be replayed in\n * priority order. The file exists because Ivy styling instruction execution order does not match\n * that of the priority order. The purpose of this code is to create a linked list so that the\n * instructions can be traversed in priority order when computing the styles.\n *\n * Assume we are dealing with the following code:\n * ```\n * @Component({\n * template: `\n * <my-cmp [style]=\" {color: '#001'} \"\n * [style.color]=\" #002 \"\n * dir-style-color-1\n * dir-style-color-2> `\n * })\n * class ExampleComponent {\n * static ngComp = ... {\n * ...\n * // Compiler ensures that `ɵɵstyleProp` is after `ɵɵstyleMap`\n * ɵɵstyleMap({color: '#001'});\n * ɵɵstyleProp('color', '#002');\n * ...\n * }\n * }\n *\n * @Directive({\n * selector: `[dir-style-color-1]',\n * })\n * class Style1Directive {\n * @HostBinding('style') style = {color: '#005'};\n * @HostBinding('style.color') color = '#006';\n *\n * static ngDir = ... {\n * ...\n * // Compiler ensures that `ɵɵstyleProp` is after `ɵɵstyleMap`\n * ɵɵstyleMap({color: '#005'});\n * ɵɵstyleProp('color', '#006');\n * ...\n * }\n * }\n *\n * @Directive({\n * selector: `[dir-style-color-2]',\n * })\n * class Style2Directive {\n * @HostBinding('style') style = {color: '#007'};\n * @HostBinding('style.color') color = '#008';\n *\n * static ngDir = ... {\n * ...\n * // Compiler ensures that `ɵɵstyleProp` is after `ɵɵstyleMap`\n * ɵɵstyleMap({color: '#007'});\n * ɵɵstyleProp('color', '#008');\n * ...\n * }\n * }\n *\n * @Directive({\n * selector: `my-cmp',\n * })\n * class MyComponent {\n * @HostBinding('style') style = {color: '#003'};\n * @HostBinding('style.color') color = '#004';\n *\n * static ngComp = ... {\n * ...\n * // Compiler ensures that `ɵɵstyleProp` is after `ɵɵstyleMap`\n * ɵɵstyleMap({color: '#003'});\n * ɵɵstyleProp('color', '#004');\n * ...\n * }\n * }\n * ```\n *\n * The Order of instruction execution is:\n *\n * NOTE: the comment binding location is for illustrative purposes only.\n *\n * ```\n * // Template: (ExampleComponent)\n * ɵɵstyleMap({color: '#001'}); // Binding index: 10\n * ɵɵstyleProp('color', '#002'); // Binding index: 12\n * // MyComponent\n * ɵɵstyleMap({color: '#003'}); // Binding index: 20\n * ɵɵstyleProp('color', '#004'); // Binding index: 22\n * // Style1Directive\n * ɵɵstyleMap({color: '#005'}); // Binding index: 24\n * ɵɵstyleProp('color', '#006'); // Binding index: 26\n * // Style2Directive\n * ɵɵstyleMap({color: '#007'}); // Binding index: 28\n * ɵɵstyleProp('color', '#008'); // Binding index: 30\n * ```\n *\n * The correct priority order of concatenation is:\n *\n * ```\n * // MyComponent\n * ɵɵstyleMap({color: '#003'}); // Binding index: 20\n * ɵɵstyleProp('color', '#004'); // Binding index: 22\n * // Style1Directive\n * ɵɵstyleMap({color: '#005'}); // Binding index: 24\n * ɵɵstyleProp('color', '#006'); // Binding index: 26\n * // Style2Directive\n * ɵɵstyleMap({color: '#007'}); // Binding index: 28\n * ɵɵstyleProp('color', '#008'); // Binding index: 30\n * // Template: (ExampleComponent)\n * ɵɵstyleMap({color: '#001'}); // Binding index: 10\n * ɵɵstyleProp('color', '#002'); // Binding index: 12\n * ```\n *\n * What color should be rendered?\n *\n * Once the items are correctly sorted in the list, the answer is simply the last item in the\n * concatenation list which is `#002`.\n *\n * To do so we keep a linked list of all of the bindings which pertain to this element.\n * Notice that the bindings are inserted in the order of execution, but the `TView.data` allows\n * us to traverse them in the order of priority.\n *\n * |Idx|`TView.data`|`LView` | Notes\n * |---|------------|-----------------|--------------\n * |...| | |\n * |10 |`null` |`{color: '#001'}`| `ɵɵstyleMap('color', {color: '#001'})`\n * |11 |`30 | 12` | ... |\n * |12 |`color` |`'#002'` | `ɵɵstyleProp('color', '#002')`\n * |13 |`10 | 0` | ... |\n * |...| | |\n * |20 |`null` |`{color: '#003'}`| `ɵɵstyleMap('color', {color: '#003'})`\n * |21 |`0 | 22` | ... |\n * |22 |`color` |`'#004'` | `ɵɵstyleProp('color', '#004')`\n * |23 |`20 | 24` | ... |\n * |24 |`null` |`{color: '#005'}`| `ɵɵstyleMap('color', {color: '#005'})`\n * |25 |`22 | 26` | ... |\n * |26 |`color` |`'#006'` | `ɵɵstyleProp('color', '#006')`\n * |27 |`24 | 28` | ... |\n * |28 |`null` |`{color: '#007'}`| `ɵɵstyleMap('color', {color: '#007'})`\n * |29 |`26 | 30` | ... |\n * |30 |`color` |`'#008'` | `ɵɵstyleProp('color', '#008')`\n * |31 |`28 | 10` | ... |\n *\n * The above data structure allows us to re-concatenate the styling no matter which data binding\n * changes.\n *\n * NOTE: in addition to keeping track of next/previous index the `TView.data` also stores prev/next\n * duplicate bit. The duplicate bit if true says there either is a binding with the same name or\n * there is a map (which may contain the name). This information is useful in knowing if other\n * styles with higher priority need to be searched for overwrites.\n *\n * NOTE: See `should support example in 'tnode_linked_list.ts' documentation` in\n * `tnode_linked_list_spec.ts` for working example.\n */\nlet __unused_const_as_closure_does_not_like_standalone_comment_blocks__;\n/**\n * Insert new `tStyleValue` at `TData` and link existing style bindings such that we maintain linked\n * list of styles and compute the duplicate flag.\n *\n * Note: this function is executed during `firstUpdatePass` only to populate the `TView.data`.\n *\n * The function works by keeping track of `tStylingRange` which contains two pointers pointing to\n * the head/tail of the template portion of the styles.\n * - if `isHost === false` (we are template) then insertion is at tail of `TStylingRange`\n * - if `isHost === true` (we are host binding) then insertion is at head of `TStylingRange`\n *\n * @param tData The `TData` to insert into.\n * @param tNode `TNode` associated with the styling element.\n * @param tStylingKey See `TStylingKey`.\n * @param index location of where `tStyleValue` should be stored (and linked into list.)\n * @param isHostBinding `true` if the insertion is for a `hostBinding`. (insertion is in front of\n * template.)\n * @param isClassBinding True if the associated `tStylingKey` as a `class` styling.\n * `tNode.classBindings` should be used (or `tNode.styleBindings` otherwise.)\n */\nfunction insertTStylingBinding(tData, tNode, tStylingKeyWithStatic, index, isHostBinding, isClassBinding) {\n ngDevMode && assertFirstUpdatePass(getTView());\n let tBindings = isClassBinding ? tNode.classBindings : tNode.styleBindings;\n let tmplHead = getTStylingRangePrev(tBindings);\n let tmplTail = getTStylingRangeNext(tBindings);\n tData[index] = tStylingKeyWithStatic;\n let isKeyDuplicateOfStatic = false;\n let tStylingKey;\n if (Array.isArray(tStylingKeyWithStatic)) {\n // We are case when the `TStylingKey` contains static fields as well.\n const staticKeyValueArray = tStylingKeyWithStatic;\n tStylingKey = staticKeyValueArray[1]; // unwrap.\n // We need to check if our key is present in the static so that we can mark it as duplicate.\n if (tStylingKey === null ||\n keyValueArrayIndexOf(staticKeyValueArray, tStylingKey) > 0) {\n // tStylingKey is present in the statics, need to mark it as duplicate.\n isKeyDuplicateOfStatic = true;\n }\n }\n else {\n tStylingKey = tStylingKeyWithStatic;\n }\n if (isHostBinding) {\n // We are inserting host bindings\n // If we don't have template bindings then `tail` is 0.\n const hasTemplateBindings = tmplTail !== 0;\n // This is important to know because that means that the `head` can't point to the first\n // template bindings (there are none.) Instead the head points to the tail of the template.\n if (hasTemplateBindings) {\n // template head's \"prev\" will point to last host binding or to 0 if no host bindings yet\n const previousNode = getTStylingRangePrev(tData[tmplHead + 1]);\n tData[index + 1] = toTStylingRange(previousNode, tmplHead);\n // if a host binding has already been registered, we need to update the next of that host\n // binding to point to this one\n if (previousNode !== 0) {\n // We need to update the template-tail value to point to us.\n tData[previousNode + 1] =\n setTStylingRangeNext(tData[previousNode + 1], index);\n }\n // The \"previous\" of the template binding head should point to this host binding\n tData[tmplHead + 1] = setTStylingRangePrev(tData[tmplHead + 1], index);\n }\n else {\n tData[index + 1] = toTStylingRange(tmplHead, 0);\n // if a host binding has already been registered, we need to update the next of that host\n // binding to point to this one\n if (tmplHead !== 0) {\n // We need to update the template-tail value to point to us.\n tData[tmplHead + 1] = setTStylingRangeNext(tData[tmplHead + 1], index);\n }\n // if we don't have template, the head points to template-tail, and needs to be advanced.\n tmplHead = index;\n }\n }\n else {\n // We are inserting in template section.\n // We need to set this binding's \"previous\" to the current template tail\n tData[index + 1] = toTStylingRange(tmplTail, 0);\n ngDevMode &&\n assertEqual(tmplHead !== 0 && tmplTail === 0, false, 'Adding template bindings after hostBindings is not allowed.');\n if (tmplHead === 0) {\n tmplHead = index;\n }\n else {\n // We need to update the previous value \"next\" to point to this binding\n tData[tmplTail + 1] = setTStylingRangeNext(tData[tmplTail + 1], index);\n }\n tmplTail = index;\n }\n // Now we need to update / compute the duplicates.\n // Starting with our location search towards head (least priority)\n if (isKeyDuplicateOfStatic) {\n tData[index + 1] = setTStylingRangePrevDuplicate(tData[index + 1]);\n }\n markDuplicates(tData, tStylingKey, index, true, isClassBinding);\n markDuplicates(tData, tStylingKey, index, false, isClassBinding);\n markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClassBinding);\n tBindings = toTStylingRange(tmplHead, tmplTail);\n if (isClassBinding) {\n tNode.classBindings = tBindings;\n }\n else {\n tNode.styleBindings = tBindings;\n }\n}\n/**\n * Look into the residual styling to see if the current `tStylingKey` is duplicate of residual.\n *\n * @param tNode `TNode` where the residual is stored.\n * @param tStylingKey `TStylingKey` to store.\n * @param tData `TData` associated with the current `LView`.\n * @param index location of where `tStyleValue` should be stored (and linked into list.)\n * @param isClassBinding True if the associated `tStylingKey` as a `class` styling.\n * `tNode.classBindings` should be used (or `tNode.styleBindings` otherwise.)\n */\nfunction markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClassBinding) {\n const residual = isClassBinding ? tNode.residualClasses : tNode.residualStyles;\n if (residual != null /* or undefined */ && typeof tStylingKey == 'string' &&\n keyValueArrayIndexOf(residual, tStylingKey) >= 0) {\n // We have duplicate in the residual so mark ourselves as duplicate.\n tData[index + 1] = setTStylingRangeNextDuplicate(tData[index + 1]);\n }\n}\n/**\n * Marks `TStyleValue`s as duplicates if another style binding in the list has the same\n * `TStyleValue`.\n *\n * NOTE: this function is intended to be called twice once with `isPrevDir` set to `true` and once\n * with it set to `false` to search both the previous as well as next items in the list.\n *\n * No duplicate case\n * ```\n * [style.color]\n * [style.width.px] <<- index\n * [style.height.px]\n * ```\n *\n * In the above case adding `[style.width.px]` to the existing `[style.color]` produces no\n * duplicates because `width` is not found in any other part of the linked list.\n *\n * Duplicate case\n * ```\n * [style.color]\n * [style.width.em]\n * [style.width.px] <<- index\n * ```\n * In the above case adding `[style.width.px]` will produce a duplicate with `[style.width.em]`\n * because `width` is found in the chain.\n *\n * Map case 1\n * ```\n * [style.width.px]\n * [style.color]\n * [style] <<- index\n * ```\n * In the above case adding `[style]` will produce a duplicate with any other bindings because\n * `[style]` is a Map and as such is fully dynamic and could produce `color` or `width`.\n *\n * Map case 2\n * ```\n * [style]\n * [style.width.px]\n * [style.color] <<- index\n * ```\n * In the above case adding `[style.color]` will produce a duplicate because there is already a\n * `[style]` binding which is a Map and as such is fully dynamic and could produce `color` or\n * `width`.\n *\n * NOTE: Once `[style]` (Map) is added into the system all things are mapped as duplicates.\n * NOTE: We use `style` as example, but same logic is applied to `class`es as well.\n *\n * @param tData `TData` where the linked list is stored.\n * @param tStylingKey `TStylingKeyPrimitive` which contains the value to compare to other keys in\n * the linked list.\n * @param index Starting location in the linked list to search from\n * @param isPrevDir Direction.\n * - `true` for previous (lower priority);\n * - `false` for next (higher priority).\n */\nfunction markDuplicates(tData, tStylingKey, index, isPrevDir, isClassBinding) {\n const tStylingAtIndex = tData[index + 1];\n const isMap = tStylingKey === null;\n let cursor = isPrevDir ? getTStylingRangePrev(tStylingAtIndex) : getTStylingRangeNext(tStylingAtIndex);\n let foundDuplicate = false;\n // We keep iterating as long as we have a cursor\n // AND either:\n // - we found what we are looking for, OR\n // - we are a map in which case we have to continue searching even after we find what we were\n // looking for since we are a wild card and everything needs to be flipped to duplicate.\n while (cursor !== 0 && (foundDuplicate === false || isMap)) {\n ngDevMode && assertIndexInRange(tData, cursor);\n const tStylingValueAtCursor = tData[cursor];\n const tStyleRangeAtCursor = tData[cursor + 1];\n if (isStylingMatch(tStylingValueAtCursor, tStylingKey)) {\n foundDuplicate = true;\n tData[cursor + 1] = isPrevDir ? setTStylingRangeNextDuplicate(tStyleRangeAtCursor) :\n setTStylingRangePrevDuplicate(tStyleRangeAtCursor);\n }\n cursor = isPrevDir ? getTStylingRangePrev(tStyleRangeAtCursor) :\n getTStylingRangeNext(tStyleRangeAtCursor);\n }\n if (foundDuplicate) {\n // if we found a duplicate, than mark ourselves.\n tData[index + 1] = isPrevDir ? setTStylingRangePrevDuplicate(tStylingAtIndex) :\n setTStylingRangeNextDuplicate(tStylingAtIndex);\n }\n}\n/**\n * Determines if two `TStylingKey`s are a match.\n *\n * When computing whether a binding contains a duplicate, we need to compare if the instruction\n * `TStylingKey` has a match.\n *\n * Here are examples of `TStylingKey`s which match given `tStylingKeyCursor` is:\n * - `color`\n * - `color` // Match another color\n * - `null` // That means that `tStylingKey` is a `classMap`/`styleMap` instruction\n * - `['', 'color', 'other', true]` // wrapped `color` so match\n * - `['', null, 'other', true]` // wrapped `null` so match\n * - `['', 'width', 'color', 'value']` // wrapped static value contains a match on `'color'`\n * - `null` // `tStylingKeyCursor` always match as it is `classMap`/`styleMap` instruction\n *\n * @param tStylingKeyCursor\n * @param tStylingKey\n */\nfunction isStylingMatch(tStylingKeyCursor, tStylingKey) {\n ngDevMode &&\n assertNotEqual(Array.isArray(tStylingKey), true, 'Expected that \\'tStylingKey\\' has been unwrapped');\n if (tStylingKeyCursor === null || // If the cursor is `null` it means that we have map at that\n // location so we must assume that we have a match.\n tStylingKey == null || // If `tStylingKey` is `null` then it is a map therefor assume that it\n // contains a match.\n (Array.isArray(tStylingKeyCursor) ? tStylingKeyCursor[1] : tStylingKeyCursor) ===\n tStylingKey // If the keys match explicitly than we are a match.\n ) {\n return true;\n }\n else if (Array.isArray(tStylingKeyCursor) && typeof tStylingKey === 'string') {\n // if we did not find a match, but `tStylingKeyCursor` is `KeyValueArray` that means cursor has\n // statics and we need to check those as well.\n return keyValueArrayIndexOf(tStylingKeyCursor, tStylingKey) >=\n 0; // see if we are matching the key\n }\n return false;\n}\n\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// Global state of the parser. (This makes parser non-reentrant, but that is not an issue)\nconst parserState = {\n textEnd: 0,\n key: 0,\n keyEnd: 0,\n value: 0,\n valueEnd: 0,\n};\n/**\n * Retrieves the last parsed `key` of style.\n * @param text the text to substring the key from.\n */\nfunction getLastParsedKey(text) {\n return text.substring(parserState.key, parserState.keyEnd);\n}\n/**\n * Retrieves the last parsed `value` of style.\n * @param text the text to substring the key from.\n */\nfunction getLastParsedValue(text) {\n return text.substring(parserState.value, parserState.valueEnd);\n}\n/**\n * Initializes `className` string for parsing and parses the first token.\n *\n * This function is intended to be used in this format:\n * ```\n * for (let i = parseClassName(text); i >= 0; i = parseClassNameNext(text, i)) {\n * const key = getLastParsedKey();\n * ...\n * }\n * ```\n * @param text `className` to parse\n * @returns index where the next invocation of `parseClassNameNext` should resume.\n */\nfunction parseClassName(text) {\n resetParserState(text);\n return parseClassNameNext(text, consumeWhitespace(text, 0, parserState.textEnd));\n}\n/**\n * Parses next `className` token.\n *\n * This function is intended to be used in this format:\n * ```\n * for (let i = parseClassName(text); i >= 0; i = parseClassNameNext(text, i)) {\n * const key = getLastParsedKey();\n * ...\n * }\n * ```\n *\n * @param text `className` to parse\n * @param index where the parsing should resume.\n * @returns index where the next invocation of `parseClassNameNext` should resume.\n */\nfunction parseClassNameNext(text, index) {\n const end = parserState.textEnd;\n if (end === index) {\n return -1;\n }\n index = parserState.keyEnd = consumeClassToken(text, parserState.key = index, end);\n return consumeWhitespace(text, index, end);\n}\n/**\n * Initializes `cssText` string for parsing and parses the first key/values.\n *\n * This function is intended to be used in this format:\n * ```\n * for (let i = parseStyle(text); i >= 0; i = parseStyleNext(text, i))) {\n * const key = getLastParsedKey();\n * const value = getLastParsedValue();\n * ...\n * }\n * ```\n * @param text `cssText` to parse\n * @returns index where the next invocation of `parseStyleNext` should resume.\n */\nfunction parseStyle(text) {\n resetParserState(text);\n return parseStyleNext(text, consumeWhitespace(text, 0, parserState.textEnd));\n}\n/**\n * Parses the next `cssText` key/values.\n *\n * This function is intended to be used in this format:\n * ```\n * for (let i = parseStyle(text); i >= 0; i = parseStyleNext(text, i))) {\n * const key = getLastParsedKey();\n * const value = getLastParsedValue();\n * ...\n * }\n *\n * @param text `cssText` to parse\n * @param index where the parsing should resume.\n * @returns index where the next invocation of `parseStyleNext` should resume.\n */\nfunction parseStyleNext(text, startIndex) {\n const end = parserState.textEnd;\n let index = parserState.key = consumeWhitespace(text, startIndex, end);\n if (end === index) {\n // we reached an end so just quit\n return -1;\n }\n index = parserState.keyEnd = consumeStyleKey(text, index, end);\n index = consumeSeparator(text, index, end, 58 /* COLON */);\n index = parserState.value = consumeWhitespace(text, index, end);\n index = parserState.valueEnd = consumeStyleValue(text, index, end);\n return consumeSeparator(text, index, end, 59 /* SEMI_COLON */);\n}\n/**\n * Reset the global state of the styling parser.\n * @param text The styling text to parse.\n */\nfunction resetParserState(text) {\n parserState.key = 0;\n parserState.keyEnd = 0;\n parserState.value = 0;\n parserState.valueEnd = 0;\n parserState.textEnd = text.length;\n}\n/**\n * Returns index of next non-whitespace character.\n *\n * @param text Text to scan\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index of next non-whitespace character (May be the same as `start` if no whitespace at\n * that location.)\n */\nfunction consumeWhitespace(text, startIndex, endIndex) {\n while (startIndex < endIndex && text.charCodeAt(startIndex) <= 32 /* SPACE */) {\n startIndex++;\n }\n return startIndex;\n}\n/**\n * Returns index of last char in class token.\n *\n * @param text Text to scan\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index after last char in class token.\n */\nfunction consumeClassToken(text, startIndex, endIndex) {\n while (startIndex < endIndex && text.charCodeAt(startIndex) > 32 /* SPACE */) {\n startIndex++;\n }\n return startIndex;\n}\n/**\n * Consumes all of the characters belonging to style key and token.\n *\n * @param text Text to scan\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index after last style key character.\n */\nfunction consumeStyleKey(text, startIndex, endIndex) {\n let ch;\n while (startIndex < endIndex &&\n ((ch = text.charCodeAt(startIndex)) === 45 /* DASH */ || ch === 95 /* UNDERSCORE */ ||\n ((ch & -33 /* UPPER_CASE */) >= 65 /* A */ && (ch & -33 /* UPPER_CASE */) <= 90 /* Z */) ||\n (ch >= 48 /* ZERO */ && ch <= 57 /* NINE */))) {\n startIndex++;\n }\n return startIndex;\n}\n/**\n * Consumes all whitespace and the separator `:` after the style key.\n *\n * @param text Text to scan\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index after separator and surrounding whitespace.\n */\nfunction consumeSeparator(text, startIndex, endIndex, separator) {\n startIndex = consumeWhitespace(text, startIndex, endIndex);\n if (startIndex < endIndex) {\n if (ngDevMode && text.charCodeAt(startIndex) !== separator) {\n malformedStyleError(text, String.fromCharCode(separator), startIndex);\n }\n startIndex++;\n }\n return startIndex;\n}\n/**\n * Consumes style value honoring `url()` and `\"\"` text.\n *\n * @param text Text to scan\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index after last style value character.\n */\nfunction consumeStyleValue(text, startIndex, endIndex) {\n let ch1 = -1; // 1st previous character\n let ch2 = -1; // 2nd previous character\n let ch3 = -1; // 3rd previous character\n let i = startIndex;\n let lastChIndex = i;\n while (i < endIndex) {\n const ch = text.charCodeAt(i++);\n if (ch === 59 /* SEMI_COLON */) {\n return lastChIndex;\n }\n else if (ch === 34 /* DOUBLE_QUOTE */ || ch === 39 /* SINGLE_QUOTE */) {\n lastChIndex = i = consumeQuotedText(text, ch, i, endIndex);\n }\n else if (startIndex ===\n i - 4 && // We have seen only 4 characters so far \"URL(\" (Ignore \"foo_URL()\")\n ch3 === 85 /* U */ &&\n ch2 === 82 /* R */ && ch1 === 76 /* L */ && ch === 40 /* OPEN_PAREN */) {\n lastChIndex = i = consumeQuotedText(text, 41 /* CLOSE_PAREN */, i, endIndex);\n }\n else if (ch > 32 /* SPACE */) {\n // if we have a non-whitespace character then capture its location\n lastChIndex = i;\n }\n ch3 = ch2;\n ch2 = ch1;\n ch1 = ch & -33 /* UPPER_CASE */;\n }\n return lastChIndex;\n}\n/**\n * Consumes all of the quoted characters.\n *\n * @param text Text to scan\n * @param quoteCharCode CharCode of either `\"` or `'` quote or `)` for `url(...)`.\n * @param startIndex Starting index of character where the scan should start.\n * @param endIndex Ending index of character where the scan should end.\n * @returns Index after quoted characters.\n */\nfunction consumeQuotedText(text, quoteCharCode, startIndex, endIndex) {\n let ch1 = -1; // 1st previous character\n let index = startIndex;\n while (index < endIndex) {\n const ch = text.charCodeAt(index++);\n if (ch == quoteCharCode && ch1 !== 92 /* BACK_SLASH */) {\n return index;\n }\n if (ch == 92 /* BACK_SLASH */ && ch1 === 92 /* BACK_SLASH */) {\n // two back slashes cancel each other out. For example `\"\\\\\"` should properly end the\n // quotation. (It should not assume that the last `\"` is escaped.)\n ch1 = 0;\n }\n else {\n ch1 = ch;\n }\n }\n throw ngDevMode ? malformedStyleError(text, String.fromCharCode(quoteCharCode), endIndex) :\n new Error();\n}\nfunction malformedStyleError(text, expecting, index) {\n ngDevMode && assertEqual(typeof text === 'string', true, 'String expected here');\n throw throwError(`Malformed style at location ${index} in string '` + text.substring(0, index) + '[>>' +\n text.substring(index, index + 1) + '<<]' + text.substr(index + 1) +\n `'. Expecting '${expecting}'.`);\n}\n\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/**\n * Update a style binding on an element with the provided value.\n *\n * If the style value is falsy then it will be removed from the element\n * (or assigned a different value depending if there are any styles placed\n * on the element with `styleMap` or any static styles that are\n * present from when the element was created with `styling`).\n *\n * Note that the styling element is updated as part of `stylingApply`.\n *\n * @param prop A valid CSS property.\n * @param value New value to write (`null` or an empty string to remove).\n * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.\n *\n * Note that this will apply the provided style value to the host element if this function is called\n * within a host binding function.\n *\n * @codeGenApi\n */\nfunction ɵɵstyleProp(prop, value, suffix) {\n checkStylingProperty(prop, value, suffix, false);\n return ɵɵstyleProp;\n}\n/**\n * Update a class binding on an element with the provided value.\n *\n * This instruction is meant to handle the `[class.foo]=\"exp\"` case and,\n * therefore, the class binding itself must already be allocated using\n * `styling` within the creation block.\n *\n * @param prop A valid CSS class (only one).\n * @param value A true/false value which will turn the class on or off.\n *\n * Note that this will apply the provided class value to the host element if this function\n * is called within a host binding function.\n *\n * @codeGenApi\n */\nfunction ɵɵclassProp(className, value) {\n checkStylingProperty(className, value, null, true);\n return ɵɵclassProp;\n}\n/**\n * Update style bindings using an object literal on an element.\n *\n * This instruction is meant to apply styling via the `[style]=\"exp\"` template bindings.\n * When styles are applied to the element they will then be updated with respect to\n * any styles/classes set via `styleProp`. If any styles are set to falsy\n * then they will be removed from the element.\n *\n * Note that the styling instruction will not be applied until `stylingApply` is called.\n *\n * @param styles A key/value style map of the styles that will be applied to the given element.\n * Any missing styles (that have already been applied to the element beforehand) will be\n * removed (unset) from the element's styling.\n *\n * Note that this will apply the provided styleMap value to the host element if this function\n * is called within a host binding.\n *\n * @codeGenApi\n */\nfunction ɵɵstyleMap(styles) {\n checkStylingMap(styleKeyValueArraySet, styleStringParser, styles, false);\n}\n/**\n * Parse text as style and add values to KeyValueArray.\n *\n * This code is pulled out to a separate function so that it can be tree shaken away if it is not\n * needed. It is only referenced from `ɵɵstyleMap`.\n *\n * @param keyValueArray KeyValueArray to add parsed values to.\n * @param text text to parse.\n */\nfunction styleStringParser(keyValueArray, text) {\n for (let i = parseStyle(text); i >= 0; i = parseStyleNext(text, i)) {\n styleKeyValueArraySet(keyValueArray, getLastParsedKey(text), getLastParsedValue(text));\n }\n}\n/**\n * Update class bindings using an object literal or class-string on an element.\n *\n * This instruction is meant to apply styling via the `[class]=\"exp\"` template bindings.\n * When classes are applied to the element they will then be updated with\n * respect to any styles/classes set via `classProp`. If any\n * classes are set to falsy then they will be removed from the element.\n *\n * Note that the styling instruction will not be applied until `stylingApply` is called.\n * Note that this will the provided classMap value to the host element if this function is called\n * within a host binding.\n *\n * @param classes A key/value map or string of CSS classes that will be added to the\n * given element. Any missing classes (that have already been applied to the element\n * beforehand) will be removed (unset) from the element's list of CSS classes.\n *\n * @codeGenApi\n */\nfunction ɵɵclassMap(classes) {\n checkStylingMap(keyValueArraySet, classStringParser, classes, true);\n}\n/**\n * Parse text as class and add values to KeyValueArray.\n *\n * This code is pulled out to a separate function so that it can be tree shaken away if it is not\n * needed. It is only referenced from `ɵɵclassMap`.\n *\n * @param keyValueArray KeyValueArray to add parsed values to.\n * @param text text to parse.\n */\nfunction classStringParser(keyValueArray, text) {\n for (let i = parseClassName(text); i >= 0; i = parseClassNameNext(text, i)) {\n keyValueArraySet(keyValueArray, getLastParsedKey(text), true);\n }\n}\n/**\n * Common code between `ɵɵclassProp` and `ɵɵstyleProp`.\n *\n * @param prop property name.\n * @param value binding value.\n * @param suffix suffix for the property (e.g. `em` or `px`)\n * @param isClassBased `true` if `class` change (`false` if `style`)\n */\nfunction checkStylingProperty(prop, value, suffix, isClassBased) {\n const lView = getLView();\n const tView = getTView();\n // Styling instructions use 2 slots per binding.\n // 1. one for the value / TStylingKey\n // 2. one for the intermittent-value / TStylingRange\n const bindingIndex = incrementBindingIndex(2);\n if (tView.firstUpdatePass) {\n stylingFirstUpdatePass(tView, prop, bindingIndex, isClassBased);\n }\n if (value !== NO_CHANGE && bindingUpdated(lView, bindingIndex, value)) {\n const tNode = tView.data[getSelectedIndex()];\n updateStyling(tView, tNode, lView, lView[RENDERER], prop, lView[bindingIndex + 1] = normalizeSuffix(value, suffix), isClassBased, bindingIndex);\n }\n}\n/**\n * Common code between `ɵɵclassMap` and `ɵɵstyleMap`.\n *\n * @param keyValueArraySet (See `keyValueArraySet` in \"util/array_utils\") Gets passed in as a\n * function so that `style` can be processed. This is done for tree shaking purposes.\n * @param stringParser Parser used to parse `value` if `string`. (Passed in as `style` and `class`\n * have different parsers.)\n * @param value bound value from application\n * @param isClassBased `true` if `class` change (`false` if `style`)\n */\nfunction checkStylingMap(keyValueArraySet, stringParser, value, isClassBased) {\n const tView = getTView();\n const bindingIndex = incrementBindingIndex(2);\n if (tView.firstUpdatePass) {\n stylingFirstUpdatePass(tView, null, bindingIndex, isClassBased);\n }\n const lView = getLView();\n if (value !== NO_CHANGE && bindingUpdated(lView, bindingIndex, value)) {\n // `getSelectedIndex()` should be here (rather than in instruction) so that it is guarded by the\n // if so as not to read unnecessarily.\n const tNode = tView.data[getSelectedIndex()];\n if (hasStylingInputShadow(tNode, isClassBased) && !isInHostBindings(tView, bindingIndex)) {\n if (ngDevMode) {\n // verify that if we are shadowing then `TData` is appropriately marked so that we skip\n // processing this binding in styling resolution.\n const tStylingKey = tView.data[bindingIndex];\n assertEqual(Array.isArray(tStylingKey) ? tStylingKey[1] : tStylingKey, false, 'Styling linked list shadow input should be marked as \\'false\\'');\n }\n // VE does not concatenate the static portion like we are doing here.\n // Instead VE just ignores the static completely if dynamic binding is present.\n // Because of locality we have already set the static portion because we don't know if there\n // is a dynamic portion until later. If we would ignore the static portion it would look like\n // the binding has removed it. This would confuse `[ngStyle]`/`[ngClass]` to do the wrong\n // thing as it would think that the static portion was removed. For this reason we\n // concatenate it so that `[ngStyle]`/`[ngClass]` can continue to work on changed.\n let staticPrefix = isClassBased ? tNode.classesWithoutHost : tNode.stylesWithoutHost;\n ngDevMode && isClassBased === false && staticPrefix !== null &&\n assertEqual(staticPrefix.endsWith(';'), true, 'Expecting static portion to end with \\';\\'');\n if (staticPrefix !== null) {\n // We want to make sure that falsy values of `value` become empty strings.\n value = concatStringsWithSpace(staticPrefix, value ? value : '');\n }\n // Given `<div [style] my-dir>` such that `my-dir` has `@Input('style')`.\n // This takes over the `[style]` binding. (Same for `[class]`)\n setDirectiveInputsWhichShadowsStyling(tView, tNode, lView, value, isClassBased);\n }\n else {\n updateStylingMap(tView, tNode, lView, lView[RENDERER], lView[bindingIndex + 1], lView[bindingIndex + 1] = toStylingKeyValueArray(keyValueArraySet, stringParser, value), isClassBased, bindingIndex);\n }\n }\n}\n/**\n * Determines when the binding is in `hostBindings` section\n *\n * @param tView Current `TView`\n * @param bindingIndex index of binding which we would like if it is in `hostBindings`\n */\nfunction isInHostBindings(tView, bindingIndex) {\n // All host bindings are placed after the expando section.\n return bindingIndex >= tView.expandoStartIndex;\n}\n/**\n * Collects the necessary information to insert the binding into a linked list of style bindings\n * using `insertTStylingBinding`.\n *\n * @param tView `TView` where the binding linked list will be stored.\n * @param tStylingKey Property/key of the binding.\n * @param bindingIndex Index of binding associated with the `prop`\n * @param isClassBased `true` if `class` change (`false` if `style`)\n */\nfunction stylingFirstUpdatePass(tView, tStylingKey, bindingIndex, isClassBased) {\n ngDevMode && assertFirstUpdatePass(tView);\n const tData = tView.data;\n if (tData[bindingIndex + 1] === null) {\n // The above check is necessary because we don't clear first update pass until first successful\n // (no exception) template execution. This prevents the styling instruction from double adding\n // itself to the list.\n // `getSelectedIndex()` should be here (rather than in instruction) so that it is guarded by the\n // if so as not to read unnecessarily.\n const tNode = tData[getSelectedIndex()];\n ngDevMode && assertDefined(tNode, 'TNode expected');\n const isHostBindings = isInHostBindings(tView, bindingIndex);\n if (hasStylingInputShadow(tNode, isClassBased) && tStylingKey === null && !isHostBindings) {\n // `tStylingKey === null` implies that we are either `[style]` or `[class]` binding.\n // If there is a directive which uses `@Input('style')` or `@Input('class')` than\n // we need to neutralize this binding since that directive is shadowing it.\n // We turn this into a noop by setting the key to `false`\n tStylingKey = false;\n }\n tStylingKey = wrapInStaticStylingKey(tData, tNode, tStylingKey, isClassBased);\n insertTStylingBinding(tData, tNode, tStylingKey, bindingIndex, isHostBindings, isClassBased);\n }\n}\n/**\n * Adds static styling information to the binding if applicable.\n *\n * The linked list of styles not only stores the list and keys, but also stores static styling\n * information on some of the keys. This function determines if the key should contain the styling\n * information and computes it.\n *\n * See `TStylingStatic` for more details.\n *\n * @param tData `TData` where the linked list is stored.\n * @param tNode `TNode` for which the styling is being computed.\n * @param stylingKey `TStylingKeyPrimitive` which may need to be wrapped into `TStylingKey`\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction wrapInStaticStylingKey(tData, tNode, stylingKey, isClassBased) {\n const hostDirectiveDef = getCurrentDirectiveDef(tData);\n let residual = isClassBased ? tNode.residualClasses : tNode.residualStyles;\n if (hostDirectiveDef === null) {\n // We are in template node.\n // If template node already had styling instruction then it has already collected the static\n // styling and there is no need to collect them again. We know that we are the first styling\n // instruction because the `TNode.*Bindings` points to 0 (nothing has been inserted yet).\n const isFirstStylingInstructionInTemplate = (isClassBased ? tNode.classBindings : tNode.styleBindings) === 0;\n if (isFirstStylingInstructionInTemplate) {\n // It would be nice to be able to get the statics from `mergeAttrs`, however, at this point\n // they are already merged and it would not be possible to figure which property belongs where\n // in the priority.\n stylingKey = collectStylingFromDirectives(null, tData, tNode, stylingKey, isClassBased);\n stylingKey = collectStylingFromTAttrs(stylingKey, tNode.attrs, isClassBased);\n // We know that if we have styling binding in template we can't have residual.\n residual = null;\n }\n }\n else {\n // We are in host binding node and there was no binding instruction in template node.\n // This means that we need to compute the residual.\n const directiveStylingLast = tNode.directiveStylingLast;\n const isFirstStylingInstructionInHostBinding = directiveStylingLast === -1 || tData[directiveStylingLast] !== hostDirectiveDef;\n if (isFirstStylingInstructionInHostBinding) {\n stylingKey =\n collectStylingFromDirectives(hostDirectiveDef, tData, tNode, stylingKey, isClassBased);\n if (residual === null) {\n // - If `null` than either:\n // - Template styling instruction already ran and it has consumed the static\n // styling into its `TStylingKey` and so there is no need to update residual. Instead\n // we need to update the `TStylingKey` associated with the first template node\n // instruction. OR\n // - Some other styling instruction ran and determined that there are no residuals\n let templateStylingKey = getTemplateHeadTStylingKey(tData, tNode, isClassBased);\n if (templateStylingKey !== undefined && Array.isArray(templateStylingKey)) {\n // Only recompute if `templateStylingKey` had static values. (If no static value found\n // then there is nothing to do since this operation can only produce less static keys, not\n // more.)\n templateStylingKey = collectStylingFromDirectives(null, tData, tNode, templateStylingKey[1] /* unwrap previous statics */, isClassBased);\n templateStylingKey =\n collectStylingFromTAttrs(templateStylingKey, tNode.attrs, isClassBased);\n setTemplateHeadTStylingKey(tData, tNode, isClassBased, templateStylingKey);\n }\n }\n else {\n // We only need to recompute residual if it is not `null`.\n // - If existing residual (implies there was no template styling). This means that some of\n // the statics may have moved from the residual to the `stylingKey` and so we have to\n // recompute.\n // - If `undefined` this is the first time we are running.\n residual = collectResidual(tData, tNode, isClassBased);\n }\n }\n }\n if (residual !== undefined) {\n isClassBased ? (tNode.residualClasses = residual) : (tNode.residualStyles = residual);\n }\n return stylingKey;\n}\n/**\n * Retrieve the `TStylingKey` for the template styling instruction.\n *\n * This is needed since `hostBinding` styling instructions are inserted after the template\n * instruction. While the template instruction needs to update the residual in `TNode` the\n * `hostBinding` instructions need to update the `TStylingKey` of the template instruction because\n * the template instruction is downstream from the `hostBindings` instructions.\n *\n * @param tData `TData` where the linked list is stored.\n * @param tNode `TNode` for which the styling is being computed.\n * @param isClassBased `true` if `class` (`false` if `style`)\n * @return `TStylingKey` if found or `undefined` if not found.\n */\nfunction getTemplateHeadTStylingKey(tData, tNode, isClassBased) {\n const bindings = isClassBased ? tNode.classBindings : tNode.styleBindings;\n if (getTStylingRangeNext(bindings) === 0) {\n // There does not seem to be a styling instruction in the `template`.\n return undefined;\n }\n return tData[getTStylingRangePrev(bindings)];\n}\n/**\n * Update the `TStylingKey` of the first template instruction in `TNode`.\n *\n * Logically `hostBindings` styling instructions are of lower priority than that of the template.\n * However, they execute after the template styling instructions. This means that they get inserted\n * in front of the template styling instructions.\n *\n * If we have a template styling instruction and a new `hostBindings` styling instruction is\n * executed it means that it may need to steal static fields from the template instruction. This\n * method allows us to update the first template instruction `TStylingKey` with a new value.\n *\n * Assume:\n * ```\n * <div my-dir style=\"color: red\" [style.color]=\"tmplExp\"></div>\n *\n * @Directive({\n * host: {\n * 'style': 'width: 100px',\n * '[style.color]': 'dirExp',\n * }\n * })\n * class MyDir {}\n * ```\n *\n * when `[style.color]=\"tmplExp\"` executes it creates this data structure.\n * ```\n * ['', 'color', 'color', 'red', 'width', '100px'],\n * ```\n *\n * The reason for this is that the template instruction does not know if there are styling\n * instructions and must assume that there are none and must collect all of the static styling.\n * (both\n * `color' and 'width`)\n *\n * When `'[style.color]': 'dirExp',` executes we need to insert a new data into the linked list.\n * ```\n * ['', 'color', 'width', '100px'], // newly inserted\n * ['', 'color', 'color', 'red', 'width', '100px'], // this is wrong\n * ```\n *\n * Notice that the template statics is now wrong as it incorrectly contains `width` so we need to\n * update it like so:\n * ```\n * ['', 'color', 'width', '100px'],\n * ['', 'color', 'color', 'red'], // UPDATE\n * ```\n *\n * @param tData `TData` where the linked list is stored.\n * @param tNode `TNode` for which the styling is being computed.\n * @param isClassBased `true` if `class` (`false` if `style`)\n * @param tStylingKey New `TStylingKey` which is replacing the old one.\n */\nfunction setTemplateHeadTStylingKey(tData, tNode, isClassBased, tStylingKey) {\n const bindings = isClassBased ? tNode.classBindings : tNode.styleBindings;\n ngDevMode &&\n assertNotEqual(getTStylingRangeNext(bindings), 0, 'Expecting to have at least one template styling binding.');\n tData[getTStylingRangePrev(bindings)] = tStylingKey;\n}\n/**\n * Collect all static values after the current `TNode.directiveStylingLast` index.\n *\n * Collect the remaining styling information which has not yet been collected by an existing\n * styling instruction.\n *\n * @param tData `TData` where the `DirectiveDefs` are stored.\n * @param tNode `TNode` which contains the directive range.\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction collectResidual(tData, tNode, isClassBased) {\n let residual = undefined;\n const directiveEnd = tNode.directiveEnd;\n ngDevMode &&\n assertNotEqual(tNode.directiveStylingLast, -1, 'By the time this function gets called at least one hostBindings-node styling instruction must have executed.');\n // We add `1 + tNode.directiveStart` because we need to skip the current directive (as we are\n // collecting things after the last `hostBindings` directive which had a styling instruction.)\n for (let i = 1 + tNode.directiveStylingLast; i < directiveEnd; i++) {\n const attrs = tData[i].hostAttrs;\n residual = collectStylingFromTAttrs(residual, attrs, isClassBased);\n }\n return collectStylingFromTAttrs(residual, tNode.attrs, isClassBased);\n}\n/**\n * Collect the static styling information with lower priority than `hostDirectiveDef`.\n *\n * (This is opposite of residual styling.)\n *\n * @param hostDirectiveDef `DirectiveDef` for which we want to collect lower priority static\n * styling. (Or `null` if template styling)\n * @param tData `TData` where the linked list is stored.\n * @param tNode `TNode` for which the styling is being computed.\n * @param stylingKey Existing `TStylingKey` to update or wrap.\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction collectStylingFromDirectives(hostDirectiveDef, tData, tNode, stylingKey, isClassBased) {\n // We need to loop because there can be directives which have `hostAttrs` but don't have\n // `hostBindings` so this loop catches up to the current directive..\n let currentDirective = null;\n const directiveEnd = tNode.directiveEnd;\n let directiveStylingLast = tNode.directiveStylingLast;\n if (directiveStylingLast === -1) {\n directiveStylingLast = tNode.directiveStart;\n }\n else {\n directiveStylingLast++;\n }\n while (directiveStylingLast < directiveEnd) {\n currentDirective = tData[directiveStylingLast];\n ngDevMode && assertDefined(currentDirective, 'expected to be defined');\n stylingKey = collectStylingFromTAttrs(stylingKey, currentDirective.hostAttrs, isClassBased);\n if (currentDirective === hostDirectiveDef)\n break;\n directiveStylingLast++;\n }\n if (hostDirectiveDef !== null) {\n // we only advance the styling cursor if we are collecting data from host bindings.\n // Template executes before host bindings and so if we would update the index,\n // host bindings would not get their statics.\n tNode.directiveStylingLast = directiveStylingLast;\n }\n return stylingKey;\n}\n/**\n * Convert `TAttrs` into `TStylingStatic`.\n *\n * @param stylingKey existing `TStylingKey` to update or wrap.\n * @param attrs `TAttributes` to process.\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction collectStylingFromTAttrs(stylingKey, attrs, isClassBased) {\n const desiredMarker = isClassBased ? 1 /* Classes */ : 2 /* Styles */;\n let currentMarker = -1 /* ImplicitAttributes */;\n if (attrs !== null) {\n for (let i = 0; i < attrs.length; i++) {\n const item = attrs[i];\n if (typeof item === 'number') {\n currentMarker = item;\n }\n else {\n if (currentMarker === desiredMarker) {\n if (!Array.isArray(stylingKey)) {\n stylingKey = stylingKey === undefined ? [] : ['', stylingKey];\n }\n keyValueArraySet(stylingKey, item, isClassBased ? true : attrs[++i]);\n }\n }\n }\n }\n return stylingKey === undefined ? null : stylingKey;\n}\n/**\n * Convert user input to `KeyValueArray`.\n *\n * This function takes user input which could be `string`, Object literal, or iterable and converts\n * it into a consistent representation. The output of this is `KeyValueArray` (which is an array\n * where\n * even indexes contain keys and odd indexes contain values for those keys).\n *\n * The advantage of converting to `KeyValueArray` is that we can perform diff in an input\n * independent\n * way.\n * (ie we can compare `foo bar` to `['bar', 'baz'] and determine a set of changes which need to be\n * applied)\n *\n * The fact that `KeyValueArray` is sorted is very important because it allows us to compute the\n * difference in linear fashion without the need to allocate any additional data.\n *\n * For example if we kept this as a `Map` we would have to iterate over previous `Map` to determine\n * which values need to be deleted, over the new `Map` to determine additions, and we would have to\n * keep additional `Map` to keep track of duplicates or items which have not yet been visited.\n *\n * @param keyValueArraySet (See `keyValueArraySet` in \"util/array_utils\") Gets passed in as a\n * function so that `style` can be processed. This is done\n * for tree shaking purposes.\n * @param stringParser The parser is passed in so that it will be tree shakable. See\n * `styleStringParser` and `classStringParser`\n * @param value The value to parse/convert to `KeyValueArray`\n */\nfunction toStylingKeyValueArray(keyValueArraySet, stringParser, value) {\n if (value == null /*|| value === undefined */ || value === '')\n return EMPTY_ARRAY;\n const styleKeyValueArray = [];\n const unwrappedValue = unwrapSafeValue(value);\n if (Array.isArray(unwrappedValue)) {\n for (let i = 0; i < unwrappedValue.length; i++) {\n keyValueArraySet(styleKeyValueArray, unwrappedValue[i], true);\n }\n }\n else if (typeof unwrappedValue === 'object') {\n for (const key in unwrappedValue) {\n if (unwrappedValue.hasOwnProperty(key)) {\n keyValueArraySet(styleKeyValueArray, key, unwrappedValue[key]);\n }\n }\n }\n else if (typeof unwrappedValue === 'string') {\n stringParser(styleKeyValueArray, unwrappedValue);\n }\n else {\n ngDevMode &&\n throwError('Unsupported styling type ' + typeof unwrappedValue + ': ' + unwrappedValue);\n }\n return styleKeyValueArray;\n}\n/**\n * Set a `value` for a `key`.\n *\n * See: `keyValueArraySet` for details\n *\n * @param keyValueArray KeyValueArray to add to.\n * @param key Style key to add.\n * @param value The value to set.\n */\nfunction styleKeyValueArraySet(keyValueArray, key, value) {\n keyValueArraySet(keyValueArray, key, unwrapSafeValue(value));\n}\n/**\n * Update map based styling.\n *\n * Map based styling could be anything which contains more than one binding. For example `string`,\n * or object literal. Dealing with all of these types would complicate the logic so\n * instead this function expects that the complex input is first converted into normalized\n * `KeyValueArray`. The advantage of normalization is that we get the values sorted, which makes it\n * very cheap to compute deltas between the previous and current value.\n *\n * @param tView Associated `TView.data` contains the linked list of binding priorities.\n * @param tNode `TNode` where the binding is located.\n * @param lView `LView` contains the values associated with other styling binding at this `TNode`.\n * @param renderer Renderer to use if any updates.\n * @param oldKeyValueArray Previous value represented as `KeyValueArray`\n * @param newKeyValueArray Current value represented as `KeyValueArray`\n * @param isClassBased `true` if `class` (`false` if `style`)\n * @param bindingIndex Binding index of the binding.\n */\nfunction updateStylingMap(tView, tNode, lView, renderer, oldKeyValueArray, newKeyValueArray, isClassBased, bindingIndex) {\n if (oldKeyValueArray === NO_CHANGE) {\n // On first execution the oldKeyValueArray is NO_CHANGE => treat it as empty KeyValueArray.\n oldKeyValueArray = EMPTY_ARRAY;\n }\n let oldIndex = 0;\n let newIndex = 0;\n let oldKey = 0 < oldKeyValueArray.length ? oldKeyValueArray[0] : null;\n let newKey = 0 < newKeyValueArray.length ? newKeyValueArray[0] : null;\n while (oldKey !== null || newKey !== null) {\n ngDevMode && assertLessThan(oldIndex, 999, 'Are we stuck in infinite loop?');\n ngDevMode && assertLessThan(newIndex, 999, 'Are we stuck in infinite loop?');\n const oldValue = oldIndex < oldKeyValueArray.length ? oldKeyValueArray[oldIndex + 1] : undefined;\n const newValue = newIndex < newKeyValueArray.length ? newKeyValueArray[newIndex + 1] : undefined;\n let setKey = null;\n let setValue = undefined;\n if (oldKey === newKey) {\n // UPDATE: Keys are equal => new value is overwriting old value.\n oldIndex += 2;\n newIndex += 2;\n if (oldValue !== newValue) {\n setKey = newKey;\n setValue = newValue;\n }\n }\n else if (newKey === null || oldKey !== null && oldKey < newKey) {\n // DELETE: oldKey key is missing or we did not find the oldKey in the newValue\n // (because the keyValueArray is sorted and `newKey` is found later alphabetically).\n // `\"background\" < \"color\"` so we need to delete `\"background\"` because it is not found in the\n // new array.\n oldIndex += 2;\n setKey = oldKey;\n }\n else {\n // CREATE: newKey's is earlier alphabetically than oldKey's (or no oldKey) => we have new key.\n // `\"color\" > \"background\"` so we need to add `color` because it is in new array but not in\n // old array.\n ngDevMode && assertDefined(newKey, 'Expecting to have a valid key');\n newIndex += 2;\n setKey = newKey;\n setValue = newValue;\n }\n if (setKey !== null) {\n updateStyling(tView, tNode, lView, renderer, setKey, setValue, isClassBased, bindingIndex);\n }\n oldKey = oldIndex < oldKeyValueArray.length ? oldKeyValueArray[oldIndex] : null;\n newKey = newIndex < newKeyValueArray.length ? newKeyValueArray[newIndex] : null;\n }\n}\n/**\n * Update a simple (property name) styling.\n *\n * This function takes `prop` and updates the DOM to that value. The function takes the binding\n * value as well as binding priority into consideration to determine which value should be written\n * to DOM. (For example it may be determined that there is a higher priority overwrite which blocks\n * the DOM write, or if the value goes to `undefined` a lower priority overwrite may be consulted.)\n *\n * @param tView Associated `TView.data` contains the linked list of binding priorities.\n * @param tNode `TNode` where the binding is located.\n * @param lView `LView` contains the values associated with other styling binding at this `TNode`.\n * @param renderer Renderer to use if any updates.\n * @param prop Either style property name or a class name.\n * @param value Either style value for `prop` or `true`/`false` if `prop` is class.\n * @param isClassBased `true` if `class` (`false` if `style`)\n * @param bindingIndex Binding index of the binding.\n */\nfunction updateStyling(tView, tNode, lView, renderer, prop, value, isClassBased, bindingIndex) {\n if (!(tNode.type & 3 /* AnyRNode */)) {\n // It is possible to have styling on non-elements (such as ng-container).\n // This is rare, but it does happen. In such a case, just ignore the binding.\n return;\n }\n const tData = tView.data;\n const tRange = tData[bindingIndex + 1];\n const higherPriorityValue = getTStylingRangeNextDuplicate(tRange) ?\n findStylingValue(tData, tNode, lView, prop, getTStylingRangeNext(tRange), isClassBased) :\n undefined;\n if (!isStylingValuePresent(higherPriorityValue)) {\n // We don't have a next duplicate, or we did not find a duplicate value.\n if (!isStylingValuePresent(value)) {\n // We should delete current value or restore to lower priority value.\n if (getTStylingRangePrevDuplicate(tRange)) {\n // We have a possible prev duplicate, let's retrieve it.\n value = findStylingValue(tData, null, lView, prop, bindingIndex, isClassBased);\n }\n }\n const rNode = getNativeByIndex(getSelectedIndex(), lView);\n applyStyling(renderer, isClassBased, rNode, prop, value);\n }\n}\n/**\n * Search for styling value with higher priority which is overwriting current value, or a\n * value of lower priority to which we should fall back if the value is `undefined`.\n *\n * When value is being applied at a location, related values need to be consulted.\n * - If there is a higher priority binding, we should be using that one instead.\n * For example `<div [style]=\"{color:exp1}\" [style.color]=\"exp2\">` change to `exp1`\n * requires that we check `exp2` to see if it is set to value other than `undefined`.\n * - If there is a lower priority binding and we are changing to `undefined`\n * For example `<div [style]=\"{color:exp1}\" [style.color]=\"exp2\">` change to `exp2` to\n * `undefined` requires that we check `exp1` (and static values) and use that as new value.\n *\n * NOTE: The styling stores two values.\n * 1. The raw value which came from the application is stored at `index + 0` location. (This value\n * is used for dirty checking).\n * 2. The normalized value is stored at `index + 1`.\n *\n * @param tData `TData` used for traversing the priority.\n * @param tNode `TNode` to use for resolving static styling. Also controls search direction.\n * - `TNode` search next and quit as soon as `isStylingValuePresent(value)` is true.\n * If no value found consult `tNode.residualStyle`/`tNode.residualClass` for default value.\n * - `null` search prev and go all the way to end. Return last value where\n * `isStylingValuePresent(value)` is true.\n * @param lView `LView` used for retrieving the actual values.\n * @param prop Property which we are interested in.\n * @param index Starting index in the linked list of styling bindings where the search should start.\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction findStylingValue(tData, tNode, lView, prop, index, isClassBased) {\n // `TNode` to use for resolving static styling. Also controls search direction.\n // - `TNode` search next and quit as soon as `isStylingValuePresent(value)` is true.\n // If no value found consult `tNode.residualStyle`/`tNode.residualClass` for default value.\n // - `null` search prev and go all the way to end. Return last value where\n // `isStylingValuePresent(value)` is true.\n const isPrevDirection = tNode === null;\n let value = undefined;\n while (index > 0) {\n const rawKey = tData[index];\n const containsStatics = Array.isArray(rawKey);\n // Unwrap the key if we contain static values.\n const key = containsStatics ? rawKey[1] : rawKey;\n const isStylingMap = key === null;\n let valueAtLViewIndex = lView[index + 1];\n if (valueAtLViewIndex === NO_CHANGE) {\n // In firstUpdatePass the styling instructions create a linked list of styling.\n // On subsequent passes it is possible for a styling instruction to try to read a binding\n // which\n // has not yet executed. In that case we will find `NO_CHANGE` and we should assume that\n // we have `undefined` (or empty array in case of styling-map instruction) instead. This\n // allows the resolution to apply the value (which may later be overwritten when the\n // binding actually executes.)\n valueAtLViewIndex = isStylingMap ? EMPTY_ARRAY : undefined;\n }\n let currentValue = isStylingMap ? keyValueArrayGet(valueAtLViewIndex, prop) :\n key === prop ? valueAtLViewIndex : undefined;\n if (containsStatics && !isStylingValuePresent(currentValue)) {\n currentValue = keyValueArrayGet(rawKey, prop);\n }\n if (isStylingValuePresent(currentValue)) {\n value = currentValue;\n if (isPrevDirection) {\n return value;\n }\n }\n const tRange = tData[index + 1];\n index = isPrevDirection ? getTStylingRangePrev(tRange) : getTStylingRangeNext(tRange);\n }\n if (tNode !== null) {\n // in case where we are going in next direction AND we did not find anything, we need to\n // consult residual styling\n let residual = isClassBased ? tNode.residualClasses : tNode.residualStyles;\n if (residual != null /** OR residual !=== undefined */) {\n value = keyValueArrayGet(residual, prop);\n }\n }\n return value;\n}\n/**\n * Determines if the binding value should be used (or if the value is 'undefined' and hence priority\n * resolution should be used.)\n *\n * @param value Binding style value.\n */\nfunction isStylingValuePresent(value) {\n // Currently only `undefined` value is considered non-binding. That is `undefined` says I don't\n // have an opinion as to what this binding should be and you should consult other bindings by\n // priority to determine the valid value.\n // This is extracted into a single function so that we have a single place to control this.\n return value !== undefined;\n}\n/**\n * Normalizes and/or adds a suffix to the value.\n *\n * If value is `null`/`undefined` no suffix is added\n * @param value\n * @param suffix\n */\nfunction normalizeSuffix(value, suffix) {\n if (value == null /** || value === undefined */) {\n // do nothing\n }\n else if (typeof suffix === 'string') {\n value = value + suffix;\n }\n else if (typeof value === 'object') {\n value = stringify(unwrapSafeValue(value));\n }\n return value;\n}\n/**\n * Tests if the `TNode` has input shadow.\n *\n * An input shadow is when a directive steals (shadows) the input by using `@Input('style')` or\n * `@Input('class')` as input.\n *\n * @param tNode `TNode` which we would like to see if it has shadow.\n * @param isClassBased `true` if `class` (`false` if `style`)\n */\nfunction hasStylingInputShadow(tNode, isClassBased) {\n return (tNode.flags & (isClassBased ? 16 /* hasClassInput */ : 32 /* hasStyleInput */)) !== 0;\n}\n\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/**\n * Create static text node\n *\n * @param index Index of the node in the data array\n * @param value Static string value to write.\n *\n * @codeGenApi\n */\nfunction ɵɵtext(index, value = '') {\n const lView = getLView();\n const tView = getTView();\n const adjustedIndex = index + HEADER_OFFSET;\n ngDevMode &&\n assertEqual(getBindingIndex(), tView.bindingStartIndex, 'text nodes should be created before any bindings');\n ngDevMode && assertIndexInRange(lView, adjustedIndex);\n const tNode = tView.firstCreatePass ?\n getOrCreateTNode(tView, adjustedIndex, 1 /* Text */, value, null) :\n tView.data[adjustedIndex];\n const textNative = lView[adjustedIndex] = createTextNode(lView[RENDERER], value);\n appendChild(tView, lView, textNative, tNode);\n // Text nodes are self closing.\n setCurrentTNode(tNode, false);\n}\n\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/**\n *\n * Update text content with a lone bound value\n *\n * Used when a text node has 1 interpolated value in it, an no additional text\n * surrounds that interpolated value:\n *\n * ```html\n * <div>{{v0}}</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate(v0);\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate(v0) {\n ɵɵtextInterpolate1('', v0, '');\n return ɵɵtextInterpolate;\n}\n/**\n *\n * Update text content with single bound value surrounded by other text.\n *\n * Used when a text node has 1 interpolated value in it:\n *\n * ```html\n * <div>prefix{{v0}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate1('prefix', v0, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate1(prefix, v0, suffix) {\n const lView = getLView();\n const interpolated = interpolation1(lView, prefix, v0, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate1;\n}\n/**\n *\n * Update text content with 2 bound values surrounded by other text.\n *\n * Used when a text node has 2 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate2('prefix', v0, '-', v1, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate2(prefix, v0, i0, v1, suffix) {\n const lView = getLView();\n const interpolated = interpolation2(lView, prefix, v0, i0, v1, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate2;\n}\n/**\n *\n * Update text content with 3 bound values surrounded by other text.\n *\n * Used when a text node has 3 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate3(\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate3(prefix, v0, i0, v1, i1, v2, suffix) {\n const lView = getLView();\n const interpolated = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate3;\n}\n/**\n *\n * Update text content with 4 bound values surrounded by other text.\n *\n * Used when a text node has 4 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate4(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see ɵɵtextInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate4(prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {\n const lView = getLView();\n const interpolated = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate4;\n}\n/**\n *\n * Update text content with 5 bound values surrounded by other text.\n *\n * Used when a text node has 5 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate5(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate5(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {\n const lView = getLView();\n const interpolated = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate5;\n}\n/**\n *\n * Update text content with 6 bound values surrounded by other text.\n *\n * Used when a text node has 6 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate6(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\n * ```\n *\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change. @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate6(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {\n const lView = getLView();\n const interpolated = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate6;\n}\n/**\n *\n * Update text content with 7 bound values surrounded by other text.\n *\n * Used when a text node has 7 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate7(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate7(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {\n const lView = getLView();\n const interpolated = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate7;\n}\n/**\n *\n * Update text content with 8 bound values surrounded by other text.\n *\n * Used when a text node has 8 interpolated values in it:\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolate8(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\n * ```\n * @returns itself, so that it may be chained.\n * @see textInterpolateV\n * @codeGenApi\n */\nfunction ɵɵtextInterpolate8(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {\n const lView = getLView();\n const interpolated = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolate8;\n}\n/**\n * Update text content with 9 or more bound values other surrounded by text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix</div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵtextInterpolateV(\n * ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\n * 'suffix']);\n * ```\n *.\n * @param values The collection of values and the strings in between those values, beginning with\n * a string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\n *\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵtextInterpolateV(values) {\n const lView = getLView();\n const interpolated = interpolationV(lView, values);\n if (interpolated !== NO_CHANGE) {\n textBindingInternal(lView, getSelectedIndex(), interpolated);\n }\n return ɵɵtextInterpolateV;\n}\n\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/**\n *\n * Update an interpolated class on an element with single bound value surrounded by text.\n *\n * Used when the value passed to a property has 1 interpolated value in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate1('prefix', v0, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate1(prefix, v0, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation1(lView, prefix, v0, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 2 bound values surrounded by text.\n *\n * Used when the value passed to a property has 2 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate2('prefix', v0, '-', v1, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate2(prefix, v0, i0, v1, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 3 bound values surrounded by text.\n *\n * Used when the value passed to a property has 3 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate3(\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate3(prefix, v0, i0, v1, i1, v2, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 4 bound values surrounded by text.\n *\n * Used when the value passed to a property has 4 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate4(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate4(prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 5 bound values surrounded by text.\n *\n * Used when the value passed to a property has 5 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate5(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate5(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 6 bound values surrounded by text.\n *\n * Used when the value passed to a property has 6 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate6(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate6(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 7 bound values surrounded by text.\n *\n * Used when the value passed to a property has 7 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate7(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate7(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n *\n * Update an interpolated class on an element with 8 bound values surrounded by text.\n *\n * Used when the value passed to a property has 8 interpolated values in it:\n *\n * ```html\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolate8(\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param i6 Static value used for concatenation only.\n * @param v7 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolate8(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n/**\n * Update an interpolated class on an element with 9 or more bound values surrounded by text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div\n * class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵclassMapInterpolateV(\n * ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\n * 'suffix']);\n * ```\n *.\n * @param values The collection of values and the strings in-between those values, beginning with\n * a string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\n * @codeGenApi\n */\nfunction ɵɵclassMapInterpolateV(values) {\n const lView = getLView();\n const interpolatedValue = interpolationV(lView, values);\n checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true);\n}\n\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/**\n *\n * Update an interpolated style on an element with single bound value surrounded by text.\n *\n * Used when the value passed to a property has 1 interpolated value in it:\n *\n * ```html\n * <div style=\"key: {{v0}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate1('key: ', v0, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate1(prefix, v0, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation1(lView, prefix, v0, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 2 bound values surrounded by text.\n *\n * Used when the value passed to a property has 2 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate2('key: ', v0, '; key1: ', v1, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate2(prefix, v0, i0, v1, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 3 bound values surrounded by text.\n *\n * Used when the value passed to a property has 3 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key2: {{v1}}; key2: {{v2}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate3(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate3(prefix, v0, i0, v1, i1, v2, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 4 bound values surrounded by text.\n *\n * Used when the value passed to a property has 4 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate4(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate4(prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 5 bound values surrounded by text.\n *\n * Used when the value passed to a property has 5 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate5(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate5(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 6 bound values surrounded by text.\n *\n * Used when the value passed to a property has 6 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}};\n * key5: {{v5}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate6(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\n * 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate6(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 7 bound values surrounded by text.\n *\n * Used when the value passed to a property has 7 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\n * key6: {{v6}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate7(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\n * '; key6: ', v6, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate7(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n *\n * Update an interpolated style on an element with 8 bound values surrounded by text.\n *\n * Used when the value passed to a property has 8 interpolated values in it:\n *\n * ```html\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\n * key6: {{v6}}; key7: {{v7}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolate8(\n * 'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\n * '; key6: ', v6, '; key7: ', v7, 'suffix');\n * ```\n *\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param i6 Static value used for concatenation only.\n * @param v7 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolate8(prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {\n const lView = getLView();\n const interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n ɵɵstyleMap(interpolatedValue);\n}\n/**\n * Update an interpolated style on an element with 9 or more bound values surrounded by text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div\n * class=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\n * key6: {{v6}}; key7: {{v7}}; key8: {{v8}}; key9: {{v9}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstyleMapInterpolateV(\n * ['key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\n * '; key6: ', v6, '; key7: ', v7, '; key8: ', v8, '; key9: ', v9, 'suffix']);\n * ```\n *.\n * @param values The collection of values and the strings in-between those values, beginning with\n * a string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '; key2: ', value1, '; key2: ', value2, ..., value99, 'suffix']`)\n * @codeGenApi\n */\nfunction ɵɵstyleMapInterpolateV(values) {\n const lView = getLView();\n const interpolatedValue = interpolationV(lView, values);\n ɵɵstyleMap(interpolatedValue);\n}\n\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/**\n *\n * Update an interpolated style property on an element with single bound value surrounded by text.\n *\n * Used when the value passed to a property has 1 interpolated value in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate1(0, 'prefix', v0, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate1(prop, prefix, v0, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation1(lView, prefix, v0, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate1;\n}\n/**\n *\n * Update an interpolated style property on an element with 2 bound values surrounded by text.\n *\n * Used when the value passed to a property has 2 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate2(0, 'prefix', v0, '-', v1, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate2(prop, prefix, v0, i0, v1, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate2;\n}\n/**\n *\n * Update an interpolated style property on an element with 3 bound values surrounded by text.\n *\n * Used when the value passed to a property has 3 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate3(0, 'prefix', v0, '-', v1, '-', v2, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate3(prop, prefix, v0, i0, v1, i1, v2, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate3;\n}\n/**\n *\n * Update an interpolated style property on an element with 4 bound values surrounded by text.\n *\n * Used when the value passed to a property has 4 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate4(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate4(prop, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate4;\n}\n/**\n *\n * Update an interpolated style property on an element with 5 bound values surrounded by text.\n *\n * Used when the value passed to a property has 5 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate5(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate5(prop, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate5;\n}\n/**\n *\n * Update an interpolated style property on an element with 6 bound values surrounded by text.\n *\n * Used when the value passed to a property has 6 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate6(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate6(prop, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate6;\n}\n/**\n *\n * Update an interpolated style property on an element with 7 bound values surrounded by text.\n *\n * Used when the value passed to a property has 7 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate7(\n * 0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate7(prop, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate7;\n}\n/**\n *\n * Update an interpolated style property on an element with 8 bound values surrounded by text.\n *\n * Used when the value passed to a property has 8 interpolated values in it:\n *\n * ```html\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolate8(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6,\n * '-', v7, 'suffix');\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`.\n * @param prefix Static value used for concatenation only.\n * @param v0 Value checked for change.\n * @param i0 Static value used for concatenation only.\n * @param v1 Value checked for change.\n * @param i1 Static value used for concatenation only.\n * @param v2 Value checked for change.\n * @param i2 Static value used for concatenation only.\n * @param v3 Value checked for change.\n * @param i3 Static value used for concatenation only.\n * @param v4 Value checked for change.\n * @param i4 Static value used for concatenation only.\n * @param v5 Value checked for change.\n * @param i5 Static value used for concatenation only.\n * @param v6 Value checked for change.\n * @param i6 Static value used for concatenation only.\n * @param v7 Value checked for change.\n * @param suffix Static value used for concatenation only.\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolate8(prop, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolate8;\n}\n/**\n * Update an interpolated style property on an element with 9 or more bound values surrounded by\n * text.\n *\n * Used when the number of interpolated values exceeds 8.\n *\n * ```html\n * <div\n * style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\">\n * </div>\n * ```\n *\n * Its compiled representation is:\n *\n * ```ts\n * ɵɵstylePropInterpolateV(\n * 0, ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\n * 'suffix']);\n * ```\n *\n * @param styleIndex Index of style to update. This index value refers to the\n * index of the style in the style bindings array that was passed into\n * `styling`..\n * @param values The collection of values and the strings in-between those values, beginning with\n * a string prefix and ending with a string suffix.\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\n * @returns itself, so that it may be chained.\n * @codeGenApi\n */\nfunction ɵɵstylePropInterpolateV(prop, values, valueSuffix) {\n const lView = getLView();\n const interpolatedValue = interpolationV(lView, values);\n checkStylingProperty(prop, interpolatedValue, valueSuffix, false);\n return ɵɵstylePropInterpolateV;\n}\n\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/**\n * Update a property on a host element. Only applies to native node properties, not inputs.\n *\n * Operates on the element selected by index via the {@link select} instruction.\n *\n * @param propName Name of property. Because it is going to DOM, this is not subject to\n * renaming as part of minification.\n * @param value New value to write.\n * @param sanitizer An optional function used to sanitize the value.\n * @returns This function returns itself so that it may be chained\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\n *\n * @codeGenApi\n */\nfunction ɵɵhostProperty(propName, value, sanitizer) {\n const lView = getLView();\n const bindingIndex = nextBindingIndex();\n if (bindingUpdated(lView, bindingIndex, value)) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n elementPropertyInternal(tView, tNode, lView, propName, value, lView[RENDERER], sanitizer, true);\n ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);\n }\n return ɵɵhostProperty;\n}\n/**\n * Updates a synthetic host binding (e.g. `[@foo]`) on a component or directive.\n *\n * This instruction is for compatibility purposes and is designed to ensure that a\n * synthetic host binding (e.g. `@HostBinding('@foo')`) properly gets rendered in\n * the component's renderer. Normally all host bindings are evaluated with the parent\n * component's renderer, but, in the case of animation @triggers, they need to be\n * evaluated with the sub component's renderer (because that's where the animation\n * triggers are defined).\n *\n * Do not use this instruction as a replacement for `elementProperty`. This instruction\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\n *\n * @param index The index of the element to update in the data array\n * @param propName Name of property. Because it is going to DOM, this is not subject to\n * renaming as part of minification.\n * @param value New value to write.\n * @param sanitizer An optional function used to sanitize the value.\n *\n * @codeGenApi\n */\nfunction ɵɵsyntheticHostProperty(propName, value, sanitizer) {\n const lView = getLView();\n const bindingIndex = nextBindingIndex();\n if (bindingUpdated(lView, bindingIndex, value)) {\n const tView = getTView();\n const tNode = getSelectedTNode();\n const currentDef = getCurrentDirectiveDef(tView.data);\n const renderer = loadComponentRenderer(currentDef, tNode, lView);\n elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, true);\n ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);\n }\n return ɵɵsyntheticHostProperty;\n}\n\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/**\n * NOTE: changes to the `ngI18nClosureMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nif (typeof ngI18nClosureMode === 'undefined') {\n // These property accesses can be ignored because ngI18nClosureMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // Make sure to refer to ngI18nClosureMode as ['ngI18nClosureMode'] for closure.\n // NOTE: we need to have it in IIFE so that the tree-shaker is happy.\n (function () {\n // tslint:disable-next-line:no-toplevel-property-access\n _global['ngI18nClosureMode'] =\n // TODO(FW-1250): validate that this actually, you know, works.\n // tslint:disable-next-line:no-toplevel-property-access\n typeof goog !== 'undefined' && typeof goog.getMsg === 'function';\n })();\n}\n\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}\nvar localeEn = [\"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\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/**\n * This const is used to store the locale data registered with `registerLocaleData`\n */\nlet LOCALE_DATA = {};\n/**\n * Register locale data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature `registerLocaleData(data: any, extraData?: any)` is deprecated since v5.1\n */\nfunction registerLocaleData(data, localeId, extraData) {\n if (typeof localeId !== 'string') {\n extraData = localeId;\n localeId = data[LocaleDataIndex.LocaleId];\n }\n localeId = localeId.toLowerCase().replace(/_/g, '-');\n LOCALE_DATA[localeId] = data;\n if (extraData) {\n LOCALE_DATA[localeId][LocaleDataIndex.ExtraData] = extraData;\n }\n}\n/**\n * Finds the locale data for a given locale.\n *\n * @param locale The locale code.\n * @returns The locale data.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction findLocaleData(locale) {\n const normalizedLocale = normalizeLocale(locale);\n let match = getLocaleData(normalizedLocale);\n if (match) {\n return match;\n }\n // let's try to find a parent locale\n const parentLocale = normalizedLocale.split('-')[0];\n match = getLocaleData(parentLocale);\n if (match) {\n return match;\n }\n if (parentLocale === 'en') {\n return localeEn;\n }\n throw new Error(`Missing locale data for the locale \"${locale}\".`);\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n */\nfunction getLocaleCurrencyCode(locale) {\n const data = findLocaleData(locale);\n return data[LocaleDataIndex.CurrencyCode] || null;\n}\n/**\n * Retrieves the plural function used by ICU expressions to determine the plural case to use\n * for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The plural function for the locale.\n * @see `NgPlural`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocalePluralCase(locale) {\n const data = findLocaleData(locale);\n return data[LocaleDataIndex.PluralCase];\n}\n/**\n * Helper function to get the given `normalizedLocale` from `LOCALE_DATA`\n * or from the global `ng.common.locale`.\n */\nfunction getLocaleData(normalizedLocale) {\n if (!(normalizedLocale in LOCALE_DATA)) {\n LOCALE_DATA[normalizedLocale] = _global.ng && _global.ng.common && _global.ng.common.locales &&\n _global.ng.common.locales[normalizedLocale];\n }\n return LOCALE_DATA[normalizedLocale];\n}\n/**\n * Helper function to remove all the locale data from `LOCALE_DATA`.\n */\nfunction unregisterAllLocaleData() {\n LOCALE_DATA = {};\n}\n/**\n * Index of each type of locale data from the locale data array\n */\nvar LocaleDataIndex;\n(function (LocaleDataIndex) {\n LocaleDataIndex[LocaleDataIndex[\"LocaleId\"] = 0] = \"LocaleId\";\n LocaleDataIndex[LocaleDataIndex[\"DayPeriodsFormat\"] = 1] = \"DayPeriodsFormat\";\n LocaleDataIndex[LocaleDataIndex[\"DayPeriodsStandalone\"] = 2] = \"DayPeriodsStandalone\";\n LocaleDataIndex[LocaleDataIndex[\"DaysFormat\"] = 3] = \"DaysFormat\";\n LocaleDataIndex[LocaleDataIndex[\"DaysStandalone\"] = 4] = \"DaysStandalone\";\n LocaleDataIndex[LocaleDataIndex[\"MonthsFormat\"] = 5] = \"MonthsFormat\";\n LocaleDataIndex[LocaleDataIndex[\"MonthsStandalone\"] = 6] = \"MonthsStandalone\";\n LocaleDataIndex[LocaleDataIndex[\"Eras\"] = 7] = \"Eras\";\n LocaleDataIndex[LocaleDataIndex[\"FirstDayOfWeek\"] = 8] = \"FirstDayOfWeek\";\n LocaleDataIndex[LocaleDataIndex[\"WeekendRange\"] = 9] = \"WeekendRange\";\n LocaleDataIndex[LocaleDataIndex[\"DateFormat\"] = 10] = \"DateFormat\";\n LocaleDataIndex[LocaleDataIndex[\"TimeFormat\"] = 11] = \"TimeFormat\";\n LocaleDataIndex[LocaleDataIndex[\"DateTimeFormat\"] = 12] = \"DateTimeFormat\";\n LocaleDataIndex[LocaleDataIndex[\"NumberSymbols\"] = 13] = \"NumberSymbols\";\n LocaleDataIndex[LocaleDataIndex[\"NumberFormats\"] = 14] = \"NumberFormats\";\n LocaleDataIndex[LocaleDataIndex[\"CurrencyCode\"] = 15] = \"CurrencyCode\";\n LocaleDataIndex[LocaleDataIndex[\"CurrencySymbol\"] = 16] = \"CurrencySymbol\";\n LocaleDataIndex[LocaleDataIndex[\"CurrencyName\"] = 17] = \"CurrencyName\";\n LocaleDataIndex[LocaleDataIndex[\"Currencies\"] = 18] = \"Currencies\";\n LocaleDataIndex[LocaleDataIndex[\"Directionality\"] = 19] = \"Directionality\";\n LocaleDataIndex[LocaleDataIndex[\"PluralCase\"] = 20] = \"PluralCase\";\n LocaleDataIndex[LocaleDataIndex[\"ExtraData\"] = 21] = \"ExtraData\";\n})(LocaleDataIndex || (LocaleDataIndex = {}));\n/**\n * Returns the canonical form of a locale name - lowercase with `_` replaced with `-`.\n */\nfunction normalizeLocale(locale) {\n return locale.toLowerCase().replace(/_/g, '-');\n}\n\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 */\nconst pluralMapping = ['zero', 'one', 'two', 'few', 'many'];\n/**\n * Returns the plural case based on the locale\n */\nfunction getPluralCase(value, locale) {\n const plural = getLocalePluralCase(locale)(parseInt(value, 10));\n const result = pluralMapping[plural];\n return (result !== undefined) ? result : 'other';\n}\n/**\n * The locale id that the application is using by default (for translations and ICU expressions).\n */\nconst DEFAULT_LOCALE_ID = 'en-US';\n/**\n * USD currency code that the application uses by default for CurrencyPipe when no\n * DEFAULT_CURRENCY_CODE is provided.\n */\nconst USD_CURRENCY_CODE = 'USD';\n\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/**\n * Marks that the next string is an element name.\n *\n * See `I18nMutateOpCodes` documentation.\n */\nconst ELEMENT_MARKER = {\n marker: 'element'\n};\n/**\n * Marks that the next string is comment text need for ICU.\n *\n * See `I18nMutateOpCodes` documentation.\n */\nconst ICU_MARKER = {\n marker: 'ICU'\n};\n/**\n * See `I18nCreateOpCodes`\n */\nvar I18nCreateOpCode;\n(function (I18nCreateOpCode) {\n /**\n * Number of bits to shift index so that it can be combined with the `APPEND_EAGERLY` and\n * `COMMENT`.\n */\n I18nCreateOpCode[I18nCreateOpCode[\"SHIFT\"] = 2] = \"SHIFT\";\n /**\n * Should the node be appended to parent imedditatly after creation.\n */\n I18nCreateOpCode[I18nCreateOpCode[\"APPEND_EAGERLY\"] = 1] = \"APPEND_EAGERLY\";\n /**\n * If set the node should be comment (rather than a text) node.\n */\n I18nCreateOpCode[I18nCreateOpCode[\"COMMENT\"] = 2] = \"COMMENT\";\n})(I18nCreateOpCode || (I18nCreateOpCode = {}));\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$2 = 1;\n\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/**\n * The locale id that the application is currently using (for translations and ICU expressions).\n * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine\n * but is now defined as a global value.\n */\nlet LOCALE_ID$1 = DEFAULT_LOCALE_ID;\n/**\n * Sets the locale id that will be used for translations and ICU expressions.\n * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine\n * but is now defined as a global value.\n *\n * @param localeId\n */\nfunction setLocaleId(localeId) {\n assertDefined(localeId, `Expected localeId to be defined`);\n if (typeof localeId === 'string') {\n LOCALE_ID$1 = localeId.toLowerCase().replace(/_/g, '-');\n }\n}\n/**\n * Gets the locale id that will be used for translations and ICU expressions.\n * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine\n * but is now defined as a global value.\n */\nfunction getLocaleId() {\n return LOCALE_ID$1;\n}\n\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/**\n * Find a node in front of which `currentTNode` should be inserted (takes i18n into account).\n *\n * This method determines the `RNode` in front of which we should insert the `currentRNode`. This\n * takes `TNode.insertBeforeIndex` into account.\n *\n * @param parentTNode parent `TNode`\n * @param currentTNode current `TNode` (The node which we would like to insert into the DOM)\n * @param lView current `LView`\n */\nfunction getInsertInFrontOfRNodeWithI18n(parentTNode, currentTNode, lView) {\n const tNodeInsertBeforeIndex = currentTNode.insertBeforeIndex;\n const insertBeforeIndex = Array.isArray(tNodeInsertBeforeIndex) ? tNodeInsertBeforeIndex[0] : tNodeInsertBeforeIndex;\n if (insertBeforeIndex === null) {\n return getInsertInFrontOfRNodeWithNoI18n(parentTNode, currentTNode, lView);\n }\n else {\n ngDevMode && assertIndexInRange(lView, insertBeforeIndex);\n return unwrapRNode(lView[insertBeforeIndex]);\n }\n}\n/**\n * Process `TNode.insertBeforeIndex` by adding i18n text nodes.\n *\n * See `TNode.insertBeforeIndex`\n */\nfunction processI18nInsertBefore(renderer, childTNode, lView, childRNode, parentRElement) {\n const tNodeInsertBeforeIndex = childTNode.insertBeforeIndex;\n if (Array.isArray(tNodeInsertBeforeIndex)) {\n // An array indicates that there are i18n nodes that need to be added as children of this\n // `childRNode`. These i18n nodes were created before this `childRNode` was available and so\n // only now can be added. The first element of the array is the normal index where we should\n // insert the `childRNode`. Additional elements are the extra nodes to be added as children of\n // `childRNode`.\n ngDevMode && assertDomNode(childRNode);\n let i18nParent = childRNode;\n let anchorRNode = null;\n if (!(childTNode.type & 3 /* AnyRNode */)) {\n anchorRNode = i18nParent;\n i18nParent = parentRElement;\n }\n if (i18nParent !== null && (childTNode.flags & 2 /* isComponentHost */) === 0) {\n for (let i = 1; i < tNodeInsertBeforeIndex.length; i++) {\n // No need to `unwrapRNode` because all of the indexes point to i18n text nodes.\n // see `assertDomNode` below.\n const i18nChild = lView[tNodeInsertBeforeIndex[i]];\n nativeInsertBefore(renderer, i18nParent, i18nChild, anchorRNode, false);\n }\n }\n }\n}\n\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/**\n * Add `tNode` to `previousTNodes` list and update relevant `TNode`s in `previousTNodes` list\n * `tNode.insertBeforeIndex`.\n *\n * Things to keep in mind:\n * 1. All i18n text nodes are encoded as `TNodeType.Element` and are created eagerly by the\n * `ɵɵi18nStart` instruction.\n * 2. All `TNodeType.Placeholder` `TNodes` are elements which will be created later by\n * `ɵɵelementStart` instruction.\n * 3. `ɵɵelementStart` instruction will create `TNode`s in the ascending `TNode.index` order. (So a\n * smaller index `TNode` is guaranteed to be created before a larger one)\n *\n * We use the above three invariants to determine `TNode.insertBeforeIndex`.\n *\n * In an ideal world `TNode.insertBeforeIndex` would always be `TNode.next.index`. However,\n * this will not work because `TNode.next.index` may be larger than `TNode.index` which means that\n * the next node is not yet created and therefore we can't insert in front of it.\n *\n * Rule1: `TNode.insertBeforeIndex = null` if `TNode.next === null` (Initial condition, as we don't\n * know if there will be further `TNode`s inserted after.)\n * Rule2: If `previousTNode` is created after the `tNode` being inserted, then\n * `previousTNode.insertBeforeNode = tNode.index` (So when a new `tNode` is added we check\n * previous to see if we can update its `insertBeforeTNode`)\n *\n * See `TNode.insertBeforeIndex` for more context.\n *\n * @param previousTNodes A list of previous TNodes so that we can easily traverse `TNode`s in\n * reverse order. (If `TNode` would have `previous` this would not be necessary.)\n * @param newTNode A TNode to add to the `previousTNodes` list.\n */\nfunction addTNodeAndUpdateInsertBeforeIndex(previousTNodes, newTNode) {\n // Start with Rule1\n ngDevMode &&\n assertEqual(newTNode.insertBeforeIndex, null, 'We expect that insertBeforeIndex is not set');\n previousTNodes.push(newTNode);\n if (previousTNodes.length > 1) {\n for (let i = previousTNodes.length - 2; i >= 0; i--) {\n const existingTNode = previousTNodes[i];\n // Text nodes are created eagerly and so they don't need their `indexBeforeIndex` updated.\n // It is safe to ignore them.\n if (!isI18nText(existingTNode)) {\n if (isNewTNodeCreatedBefore(existingTNode, newTNode) &&\n getInsertBeforeIndex(existingTNode) === null) {\n // If it was created before us in time, (and it does not yet have `insertBeforeIndex`)\n // then add the `insertBeforeIndex`.\n setInsertBeforeIndex(existingTNode, newTNode.index);\n }\n }\n }\n }\n}\nfunction isI18nText(tNode) {\n return !(tNode.type & 64 /* Placeholder */);\n}\nfunction isNewTNodeCreatedBefore(existingTNode, newTNode) {\n return isI18nText(newTNode) || existingTNode.index > newTNode.index;\n}\nfunction getInsertBeforeIndex(tNode) {\n const index = tNode.insertBeforeIndex;\n return Array.isArray(index) ? index[0] : index;\n}\nfunction setInsertBeforeIndex(tNode, value) {\n const index = tNode.insertBeforeIndex;\n if (Array.isArray(index)) {\n // Array is stored if we have to insert child nodes. See `TNode.insertBeforeIndex`\n index[0] = value;\n }\n else {\n setI18nHandling(getInsertInFrontOfRNodeWithI18n, processI18nInsertBefore);\n tNode.insertBeforeIndex = value;\n }\n}\n\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/**\n * Retrieve `TIcu` at a given `index`.\n *\n * The `TIcu` can be stored either directly (if it is nested ICU) OR\n * it is stored inside tho `TIcuContainer` if it is top level ICU.\n *\n * The reason for this is that the top level ICU need a `TNode` so that they are part of the render\n * tree, but nested ICU's have no TNode, because we don't know ahead of time if the nested ICU is\n * expressed (parent ICU may have selected a case which does not contain it.)\n *\n * @param tView Current `TView`.\n * @param index Index where the value should be read from.\n */\nfunction getTIcu(tView, index) {\n const value = tView.data[index];\n if (value === null || typeof value === 'string')\n return null;\n if (ngDevMode &&\n !(value.hasOwnProperty('tViews') || value.hasOwnProperty('currentCaseLViewIndex'))) {\n throwError('We expect to get \\'null\\'|\\'TIcu\\'|\\'TIcuContainer\\', but got: ' + value);\n }\n // Here the `value.hasOwnProperty('currentCaseLViewIndex')` is a polymorphic read as it can be\n // either TIcu or TIcuContainerNode. This is not ideal, but we still think it is OK because it\n // will be just two cases which fits into the browser inline cache (inline cache can take up to\n // 4)\n const tIcu = value.hasOwnProperty('currentCaseLViewIndex') ? value :\n value.value;\n ngDevMode && assertTIcu(tIcu);\n return tIcu;\n}\n/**\n * Store `TIcu` at a give `index`.\n *\n * The `TIcu` can be stored either directly (if it is nested ICU) OR\n * it is stored inside tho `TIcuContainer` if it is top level ICU.\n *\n * The reason for this is that the top level ICU need a `TNode` so that they are part of the render\n * tree, but nested ICU's have no TNode, because we don't know ahead of time if the nested ICU is\n * expressed (parent ICU may have selected a case which does not contain it.)\n *\n * @param tView Current `TView`.\n * @param index Index where the value should be stored at in `Tview.data`\n * @param tIcu The TIcu to store.\n */\nfunction setTIcu(tView, index, tIcu) {\n const tNode = tView.data[index];\n ngDevMode &&\n assertEqual(tNode === null || tNode.hasOwnProperty('tViews'), true, 'We expect to get \\'null\\'|\\'TIcuContainer\\'');\n if (tNode === null) {\n tView.data[index] = tIcu;\n }\n else {\n ngDevMode && assertTNodeType(tNode, 32 /* Icu */);\n tNode.value = tIcu;\n }\n}\n/**\n * Set `TNode.insertBeforeIndex` taking the `Array` into account.\n *\n * See `TNode.insertBeforeIndex`\n */\nfunction setTNodeInsertBeforeIndex(tNode, index) {\n ngDevMode && assertTNode(tNode);\n let insertBeforeIndex = tNode.insertBeforeIndex;\n if (insertBeforeIndex === null) {\n setI18nHandling(getInsertInFrontOfRNodeWithI18n, processI18nInsertBefore);\n insertBeforeIndex = tNode.insertBeforeIndex =\n [null /* may be updated to number later */, index];\n }\n else {\n assertEqual(Array.isArray(insertBeforeIndex), true, 'Expecting array here');\n insertBeforeIndex.push(index);\n }\n}\n/**\n * Create `TNode.type=TNodeType.Placeholder` node.\n *\n * See `TNodeType.Placeholder` for more information.\n */\nfunction createTNodePlaceholder(tView, previousTNodes, index) {\n const tNode = createTNodeAtIndex(tView, index, 64 /* Placeholder */, null, null);\n addTNodeAndUpdateInsertBeforeIndex(previousTNodes, tNode);\n return tNode;\n}\n/**\n * Returns current ICU case.\n *\n * ICU cases are stored as index into the `TIcu.cases`.\n * At times it is necessary to communicate that the ICU case just switched and that next ICU update\n * should update all bindings regardless of the mask. In such a case the we store negative numbers\n * for cases which have just been switched. This function removes the negative flag.\n */\nfunction getCurrentICUCaseIndex(tIcu, lView) {\n const currentCase = lView[tIcu.currentCaseLViewIndex];\n return currentCase === null ? currentCase : (currentCase < 0 ? ~currentCase : currentCase);\n}\nfunction getParentFromIcuCreateOpCode(mergedCode) {\n return mergedCode >>> 17 /* SHIFT_PARENT */;\n}\nfunction getRefFromIcuCreateOpCode(mergedCode) {\n return (mergedCode & 131070 /* MASK_REF */) >>> 1 /* SHIFT_REF */;\n}\nfunction getInstructionFromIcuCreateOpCode(mergedCode) {\n return mergedCode & 1 /* MASK_INSTRUCTION */;\n}\nfunction icuCreateOpCode(opCode, parentIdx, refIdx) {\n ngDevMode && assertGreaterThanOrEqual(parentIdx, 0, 'Missing parent index');\n ngDevMode && assertGreaterThan(refIdx, 0, 'Missing ref index');\n return opCode | parentIdx << 17 /* SHIFT_PARENT */ | refIdx << 1 /* SHIFT_REF */;\n}\n\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/**\n * Keep track of which input bindings in `ɵɵi18nExp` have changed.\n *\n * This is used to efficiently update expressions in i18n only when the corresponding input has\n * changed.\n *\n * 1) Each bit represents which of the `ɵɵi18nExp` has changed.\n * 2) There are 32 bits allowed in JS.\n * 3) Bit 32 is special as it is shared for all changes past 32. (In other words if you have more\n * than 32 `ɵɵi18nExp` then all changes past 32nd `ɵɵi18nExp` will be mapped to same bit. This means\n * that we may end up changing more than we need to. But i18n expressions with 32 bindings is rare\n * so in practice it should not be an issue.)\n */\nlet changeMask = 0b0;\n/**\n * Keeps track of which bit needs to be updated in `changeMask`\n *\n * This value gets incremented on every call to `ɵɵi18nExp`\n */\nlet changeMaskCounter = 0;\n/**\n * Keep track of which input bindings in `ɵɵi18nExp` have changed.\n *\n * `setMaskBit` gets invoked by each call to `ɵɵi18nExp`.\n *\n * @param hasChange did `ɵɵi18nExp` detect a change.\n */\nfunction setMaskBit(hasChange) {\n if (hasChange) {\n changeMask = changeMask | (1 << Math.min(changeMaskCounter, 31));\n }\n changeMaskCounter++;\n}\nfunction applyI18n(tView, lView, index) {\n if (changeMaskCounter > 0) {\n ngDevMode && assertDefined(tView, `tView should be defined`);\n const tI18n = tView.data[index];\n // When `index` points to an `ɵɵi18nAttributes` then we have an array otherwise `TI18n`\n const updateOpCodes = Array.isArray(tI18n) ? tI18n : tI18n.update;\n const bindingsStartIndex = getBindingIndex() - changeMaskCounter - 1;\n applyUpdateOpCodes(tView, lView, updateOpCodes, bindingsStartIndex, changeMask);\n }\n // Reset changeMask & maskBit to default for the next update cycle\n changeMask = 0b0;\n changeMaskCounter = 0;\n}\n/**\n * Apply `I18nCreateOpCodes` op-codes as stored in `TI18n.create`.\n *\n * Creates text (and comment) nodes which are internationalized.\n *\n * @param lView Current lView\n * @param createOpCodes Set of op-codes to apply\n * @param parentRNode Parent node (so that direct children can be added eagerly) or `null` if it is\n * a root node.\n * @param insertInFrontOf DOM node that should be used as an anchor.\n */\nfunction applyCreateOpCodes(lView, createOpCodes, parentRNode, insertInFrontOf) {\n const renderer = lView[RENDERER];\n for (let i = 0; i < createOpCodes.length; i++) {\n const opCode = createOpCodes[i++];\n const text = createOpCodes[i];\n const isComment = (opCode & I18nCreateOpCode.COMMENT) === I18nCreateOpCode.COMMENT;\n const appendNow = (opCode & I18nCreateOpCode.APPEND_EAGERLY) === I18nCreateOpCode.APPEND_EAGERLY;\n const index = opCode >>> I18nCreateOpCode.SHIFT;\n let rNode = lView[index];\n if (rNode === null) {\n // We only create new DOM nodes if they don't already exist: If ICU switches case back to a\n // case which was already instantiated, no need to create new DOM nodes.\n rNode = lView[index] =\n isComment ? renderer.createComment(text) : createTextNode(renderer, text);\n }\n if (appendNow && parentRNode !== null) {\n nativeInsertBefore(renderer, parentRNode, rNode, insertInFrontOf, false);\n }\n }\n}\n/**\n * Apply `I18nMutateOpCodes` OpCodes.\n *\n * @param tView Current `TView`\n * @param mutableOpCodes Mutable OpCodes to process\n * @param lView Current `LView`\n * @param anchorRNode place where the i18n node should be inserted.\n */\nfunction applyMutableOpCodes(tView, mutableOpCodes, lView, anchorRNode) {\n ngDevMode && assertDomNode(anchorRNode);\n const renderer = lView[RENDERER];\n // `rootIdx` represents the node into which all inserts happen.\n let rootIdx = null;\n // `rootRNode` represents the real node into which we insert. This can be different from\n // `lView[rootIdx]` if we have projection.\n // - null we don't have a parent (as can be the case in when we are inserting into a root of\n // LView which has no parent.)\n // - `RElement` The element representing the root after taking projection into account.\n let rootRNode;\n for (let i = 0; i < mutableOpCodes.length; i++) {\n const opCode = mutableOpCodes[i];\n if (typeof opCode == 'string') {\n const textNodeIndex = mutableOpCodes[++i];\n if (lView[textNodeIndex] === null) {\n ngDevMode && ngDevMode.rendererCreateTextNode++;\n ngDevMode && assertIndexInRange(lView, textNodeIndex);\n lView[textNodeIndex] = createTextNode(renderer, opCode);\n }\n }\n else if (typeof opCode == 'number') {\n switch (opCode & 1 /* MASK_INSTRUCTION */) {\n case 0 /* AppendChild */:\n const parentIdx = getParentFromIcuCreateOpCode(opCode);\n if (rootIdx === null) {\n // The first operation should save the `rootIdx` because the first operation\n // must insert into the root. (Only subsequent operations can insert into a dynamic\n // parent)\n rootIdx = parentIdx;\n rootRNode = nativeParentNode(renderer, anchorRNode);\n }\n let insertInFrontOf;\n let parentRNode;\n if (parentIdx === rootIdx) {\n insertInFrontOf = anchorRNode;\n parentRNode = rootRNode;\n }\n else {\n insertInFrontOf = null;\n parentRNode = unwrapRNode(lView[parentIdx]);\n }\n // FIXME(misko): Refactor with `processI18nText`\n if (parentRNode !== null) {\n // This can happen if the `LView` we are adding to is not attached to a parent `LView`.\n // In such a case there is no \"root\" we can attach to. This is fine, as we still need to\n // create the elements. When the `LView` gets later added to a parent these \"root\" nodes\n // get picked up and added.\n ngDevMode && assertDomNode(parentRNode);\n const refIdx = getRefFromIcuCreateOpCode(opCode);\n ngDevMode && assertGreaterThan(refIdx, HEADER_OFFSET, 'Missing ref');\n // `unwrapRNode` is not needed here as all of these point to RNodes as part of the i18n\n // which can't have components.\n const child = lView[refIdx];\n ngDevMode && assertDomNode(child);\n nativeInsertBefore(renderer, parentRNode, child, insertInFrontOf, false);\n const tIcu = getTIcu(tView, refIdx);\n if (tIcu !== null && typeof tIcu === 'object') {\n // If we just added a comment node which has ICU then that ICU may have already been\n // rendered and therefore we need to re-add it here.\n ngDevMode && assertTIcu(tIcu);\n const caseIndex = getCurrentICUCaseIndex(tIcu, lView);\n if (caseIndex !== null) {\n applyMutableOpCodes(tView, tIcu.create[caseIndex], lView, lView[tIcu.anchorIdx]);\n }\n }\n }\n break;\n case 1 /* Attr */:\n const elementNodeIndex = opCode >>> 1 /* SHIFT_REF */;\n const attrName = mutableOpCodes[++i];\n const attrValue = mutableOpCodes[++i];\n // This code is used for ICU expressions only, since we don't support\n // directives/components in ICUs, we don't need to worry about inputs here\n setElementAttribute(renderer, getNativeByIndex(elementNodeIndex, lView), null, null, attrName, attrValue, null);\n break;\n default:\n if (ngDevMode) {\n throw new RuntimeError(700 /* INVALID_I18N_STRUCTURE */, `Unable to determine the type of mutate operation for \"${opCode}\"`);\n }\n }\n }\n else {\n switch (opCode) {\n case ICU_MARKER:\n const commentValue = mutableOpCodes[++i];\n const commentNodeIndex = mutableOpCodes[++i];\n if (lView[commentNodeIndex] === null) {\n ngDevMode &&\n assertEqual(typeof commentValue, 'string', `Expected \"${commentValue}\" to be a comment node value`);\n ngDevMode && ngDevMode.rendererCreateComment++;\n ngDevMode && assertIndexInExpandoRange(lView, commentNodeIndex);\n const commentRNode = lView[commentNodeIndex] =\n createCommentNode(renderer, commentValue);\n // FIXME(misko): Attaching patch data is only needed for the root (Also add tests)\n attachPatchData(commentRNode, lView);\n }\n break;\n case ELEMENT_MARKER:\n const tagName = mutableOpCodes[++i];\n const elementNodeIndex = mutableOpCodes[++i];\n if (lView[elementNodeIndex] === null) {\n ngDevMode &&\n assertEqual(typeof tagName, 'string', `Expected \"${tagName}\" to be an element node tag name`);\n ngDevMode && ngDevMode.rendererCreateElement++;\n ngDevMode && assertIndexInExpandoRange(lView, elementNodeIndex);\n const elementRNode = lView[elementNodeIndex] =\n createElementNode(renderer, tagName, null);\n // FIXME(misko): Attaching patch data is only needed for the root (Also add tests)\n attachPatchData(elementRNode, lView);\n }\n break;\n default:\n ngDevMode &&\n throwError(`Unable to determine the type of mutate operation for \"${opCode}\"`);\n }\n }\n }\n}\n/**\n * Apply `I18nUpdateOpCodes` OpCodes\n *\n * @param tView Current `TView`\n * @param lView Current `LView`\n * @param updateOpCodes OpCodes to process\n * @param bindingsStartIndex Location of the first `ɵɵi18nApply`\n * @param changeMask Each bit corresponds to a `ɵɵi18nExp` (Counting backwards from\n * `bindingsStartIndex`)\n */\nfunction applyUpdateOpCodes(tView, lView, updateOpCodes, bindingsStartIndex, changeMask) {\n for (let i = 0; i < updateOpCodes.length; i++) {\n // bit code to check if we should apply the next update\n const checkBit = updateOpCodes[i];\n // Number of opCodes to skip until next set of update codes\n const skipCodes = updateOpCodes[++i];\n if (checkBit & changeMask) {\n // The value has been updated since last checked\n let value = '';\n for (let j = i + 1; j <= (i + skipCodes); j++) {\n const opCode = updateOpCodes[j];\n if (typeof opCode == 'string') {\n value += opCode;\n }\n else if (typeof opCode == 'number') {\n if (opCode < 0) {\n // Negative opCode represent `i18nExp` values offset.\n value += renderStringify(lView[bindingsStartIndex - opCode]);\n }\n else {\n const nodeIndex = (opCode >>> 2 /* SHIFT_REF */);\n switch (opCode & 3 /* MASK_OPCODE */) {\n case 1 /* Attr */:\n const propName = updateOpCodes[++j];\n const sanitizeFn = updateOpCodes[++j];\n const tNodeOrTagName = tView.data[nodeIndex];\n ngDevMode && assertDefined(tNodeOrTagName, 'Experting TNode or string');\n if (typeof tNodeOrTagName === 'string') {\n // IF we don't have a `TNode`, then we are an element in ICU (as ICU content does\n // not have TNode), in which case we know that there are no directives, and hence\n // we use attribute setting.\n setElementAttribute(lView[RENDERER], lView[nodeIndex], null, tNodeOrTagName, propName, value, sanitizeFn);\n }\n else {\n elementPropertyInternal(tView, tNodeOrTagName, lView, propName, value, lView[RENDERER], sanitizeFn, false);\n }\n break;\n case 0 /* Text */:\n const rText = lView[nodeIndex];\n rText !== null && updateTextNode(lView[RENDERER], rText, value);\n break;\n case 2 /* IcuSwitch */:\n applyIcuSwitchCase(tView, getTIcu(tView, nodeIndex), lView, value);\n break;\n case 3 /* IcuUpdate */:\n applyIcuUpdateCase(tView, getTIcu(tView, nodeIndex), bindingsStartIndex, lView);\n break;\n }\n }\n }\n }\n }\n else {\n const opCode = updateOpCodes[i + 1];\n if (opCode > 0 && (opCode & 3 /* MASK_OPCODE */) === 3 /* IcuUpdate */) {\n // Special case for the `icuUpdateCase`. It could be that the mask did not match, but\n // we still need to execute `icuUpdateCase` because the case has changed recently due to\n // previous `icuSwitchCase` instruction. (`icuSwitchCase` and `icuUpdateCase` always come in\n // pairs.)\n const nodeIndex = (opCode >>> 2 /* SHIFT_REF */);\n const tIcu = getTIcu(tView, nodeIndex);\n const currentIndex = lView[tIcu.currentCaseLViewIndex];\n if (currentIndex < 0) {\n applyIcuUpdateCase(tView, tIcu, bindingsStartIndex, lView);\n }\n }\n }\n i += skipCodes;\n }\n}\n/**\n * Apply OpCodes associated with updating an existing ICU.\n *\n * @param tView Current `TView`\n * @param tIcu Current `TIcu`\n * @param bindingsStartIndex Location of the first `ɵɵi18nApply`\n * @param lView Current `LView`\n */\nfunction applyIcuUpdateCase(tView, tIcu, bindingsStartIndex, lView) {\n ngDevMode && assertIndexInRange(lView, tIcu.currentCaseLViewIndex);\n let activeCaseIndex = lView[tIcu.currentCaseLViewIndex];\n if (activeCaseIndex !== null) {\n let mask = changeMask;\n if (activeCaseIndex < 0) {\n // Clear the flag.\n // Negative number means that the ICU was freshly created and we need to force the update.\n activeCaseIndex = lView[tIcu.currentCaseLViewIndex] = ~activeCaseIndex;\n // -1 is same as all bits on, which simulates creation since it marks all bits dirty\n mask = -1;\n }\n applyUpdateOpCodes(tView, lView, tIcu.update[activeCaseIndex], bindingsStartIndex, mask);\n }\n}\n/**\n * Apply OpCodes associated with switching a case on ICU.\n *\n * This involves tearing down existing case and than building up a new case.\n *\n * @param tView Current `TView`\n * @param tIcu Current `TIcu`\n * @param lView Current `LView`\n * @param value Value of the case to update to.\n */\nfunction applyIcuSwitchCase(tView, tIcu, lView, value) {\n // Rebuild a new case for this ICU\n const caseIndex = getCaseIndex(tIcu, value);\n let activeCaseIndex = getCurrentICUCaseIndex(tIcu, lView);\n if (activeCaseIndex !== caseIndex) {\n applyIcuSwitchCaseRemove(tView, tIcu, lView);\n lView[tIcu.currentCaseLViewIndex] = caseIndex === null ? null : ~caseIndex;\n if (caseIndex !== null) {\n // Add the nodes for the new case\n const anchorRNode = lView[tIcu.anchorIdx];\n if (anchorRNode) {\n ngDevMode && assertDomNode(anchorRNode);\n applyMutableOpCodes(tView, tIcu.create[caseIndex], lView, anchorRNode);\n }\n }\n }\n}\n/**\n * Apply OpCodes associated with tearing ICU case.\n *\n * This involves tearing down existing case and than building up a new case.\n *\n * @param tView Current `TView`\n * @param tIcu Current `TIcu`\n * @param lView Current `LView`\n */\nfunction applyIcuSwitchCaseRemove(tView, tIcu, lView) {\n let activeCaseIndex = getCurrentICUCaseIndex(tIcu, lView);\n if (activeCaseIndex !== null) {\n const removeCodes = tIcu.remove[activeCaseIndex];\n for (let i = 0; i < removeCodes.length; i++) {\n const nodeOrIcuIndex = removeCodes[i];\n if (nodeOrIcuIndex > 0) {\n // Positive numbers are `RNode`s.\n const rNode = getNativeByIndex(nodeOrIcuIndex, lView);\n rNode !== null && nativeRemoveNode(lView[RENDERER], rNode);\n }\n else {\n // Negative numbers are ICUs\n applyIcuSwitchCaseRemove(tView, getTIcu(tView, ~nodeOrIcuIndex), lView);\n }\n }\n }\n}\n/**\n * Returns the index of the current case of an ICU expression depending on the main binding value\n *\n * @param icuExpression\n * @param bindingValue The value of the main binding used by this ICU expression\n */\nfunction getCaseIndex(icuExpression, bindingValue) {\n let index = icuExpression.cases.indexOf(bindingValue);\n if (index === -1) {\n switch (icuExpression.type) {\n case 1 /* plural */: {\n const resolvedCase = getPluralCase(bindingValue, getLocaleId());\n index = icuExpression.cases.indexOf(resolvedCase);\n if (index === -1 && resolvedCase !== 'other') {\n index = icuExpression.cases.indexOf('other');\n }\n break;\n }\n case 0 /* select */: {\n index = icuExpression.cases.indexOf('other');\n break;\n }\n }\n }\n return index === -1 ? null : index;\n}\n\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 */\nfunction loadIcuContainerVisitor() {\n const _stack = [];\n let _index = -1;\n let _lView;\n let _removes;\n /**\n * Retrieves a set of root nodes from `TIcu.remove`. Used by `TNodeType.ICUContainer`\n * to determine which root belong to the ICU.\n *\n * Example of usage.\n * ```\n * const nextRNode = icuContainerIteratorStart(tIcuContainerNode, lView);\n * let rNode: RNode|null;\n * while(rNode = nextRNode()) {\n * console.log(rNode);\n * }\n * ```\n *\n * @param tIcuContainerNode Current `TIcuContainerNode`\n * @param lView `LView` where the `RNode`s should be looked up.\n */\n function icuContainerIteratorStart(tIcuContainerNode, lView) {\n _lView = lView;\n while (_stack.length)\n _stack.pop();\n ngDevMode && assertTNodeForLView(tIcuContainerNode, lView);\n enterIcu(tIcuContainerNode.value, lView);\n return icuContainerIteratorNext;\n }\n function enterIcu(tIcu, lView) {\n _index = 0;\n const currentCase = getCurrentICUCaseIndex(tIcu, lView);\n if (currentCase !== null) {\n ngDevMode && assertNumberInRange(currentCase, 0, tIcu.cases.length - 1);\n _removes = tIcu.remove[currentCase];\n }\n else {\n _removes = EMPTY_ARRAY;\n }\n }\n function icuContainerIteratorNext() {\n if (_index < _removes.length) {\n const removeOpCode = _removes[_index++];\n ngDevMode && assertNumber(removeOpCode, 'Expecting OpCode number');\n if (removeOpCode > 0) {\n const rNode = _lView[removeOpCode];\n ngDevMode && assertDomNode(rNode);\n return rNode;\n }\n else {\n _stack.push(_index, _removes);\n // ICUs are represented by negative indices\n const tIcuIndex = ~removeOpCode;\n const tIcu = _lView[TVIEW].data[tIcuIndex];\n ngDevMode && assertTIcu(tIcu);\n enterIcu(tIcu, _lView);\n return icuContainerIteratorNext();\n }\n }\n else {\n if (_stack.length === 0) {\n return null;\n }\n else {\n _removes = _stack.pop();\n _index = _stack.pop();\n return icuContainerIteratorNext();\n }\n }\n }\n return icuContainerIteratorStart;\n}\n\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/**\n * Converts `I18nCreateOpCodes` array into a human readable format.\n *\n * This function is attached to the `I18nCreateOpCodes.debug` property if `ngDevMode` is enabled.\n * This function provides a human readable view of the opcodes. This is useful when debugging the\n * application as well as writing more readable tests.\n *\n * @param this `I18nCreateOpCodes` if attached as a method.\n * @param opcodes `I18nCreateOpCodes` if invoked as a function.\n */\nfunction i18nCreateOpCodesToString(opcodes) {\n const createOpCodes = opcodes || (Array.isArray(this) ? this : []);\n let lines = [];\n for (let i = 0; i < createOpCodes.length; i++) {\n const opCode = createOpCodes[i++];\n const text = createOpCodes[i];\n const isComment = (opCode & I18nCreateOpCode.COMMENT) === I18nCreateOpCode.COMMENT;\n const appendNow = (opCode & I18nCreateOpCode.APPEND_EAGERLY) === I18nCreateOpCode.APPEND_EAGERLY;\n const index = opCode >>> I18nCreateOpCode.SHIFT;\n lines.push(`lView[${index}] = document.${isComment ? 'createComment' : 'createText'}(${JSON.stringify(text)});`);\n if (appendNow) {\n lines.push(`parent.appendChild(lView[${index}]);`);\n }\n }\n return lines;\n}\n/**\n * Converts `I18nUpdateOpCodes` array into a human readable format.\n *\n * This function is attached to the `I18nUpdateOpCodes.debug` property if `ngDevMode` is enabled.\n * This function provides a human readable view of the opcodes. This is useful when debugging the\n * application as well as writing more readable tests.\n *\n * @param this `I18nUpdateOpCodes` if attached as a method.\n * @param opcodes `I18nUpdateOpCodes` if invoked as a function.\n */\nfunction i18nUpdateOpCodesToString(opcodes) {\n const parser = new OpCodeParser(opcodes || (Array.isArray(this) ? this : []));\n let lines = [];\n function consumeOpCode(value) {\n const ref = value >>> 2 /* SHIFT_REF */;\n const opCode = value & 3 /* MASK_OPCODE */;\n switch (opCode) {\n case 0 /* Text */:\n return `(lView[${ref}] as Text).textContent = $$$`;\n case 1 /* Attr */:\n const attrName = parser.consumeString();\n const sanitizationFn = parser.consumeFunction();\n const value = sanitizationFn ? `(${sanitizationFn})($$$)` : '$$$';\n return `(lView[${ref}] as Element).setAttribute('${attrName}', ${value})`;\n case 2 /* IcuSwitch */:\n return `icuSwitchCase(${ref}, $$$)`;\n case 3 /* IcuUpdate */:\n return `icuUpdateCase(${ref})`;\n }\n throw new Error('unexpected OpCode');\n }\n while (parser.hasMore()) {\n let mask = parser.consumeNumber();\n let size = parser.consumeNumber();\n const end = parser.i + size;\n const statements = [];\n let statement = '';\n while (parser.i < end) {\n let value = parser.consumeNumberOrString();\n if (typeof value === 'string') {\n statement += value;\n }\n else if (value < 0) {\n // Negative numbers are ref indexes\n // Here `i` refers to current binding index. It is to signify that the value is relative,\n // rather than absolute.\n statement += '${lView[i' + value + ']}';\n }\n else {\n // Positive numbers are operations.\n const opCodeText = consumeOpCode(value);\n statements.push(opCodeText.replace('$$$', '`' + statement + '`') + ';');\n statement = '';\n }\n }\n lines.push(`if (mask & 0b${mask.toString(2)}) { ${statements.join(' ')} }`);\n }\n return lines;\n}\n/**\n * Converts `I18nCreateOpCodes` array into a human readable format.\n *\n * This function is attached to the `I18nCreateOpCodes.debug` if `ngDevMode` is enabled. This\n * function provides a human readable view of the opcodes. This is useful when debugging the\n * application as well as writing more readable tests.\n *\n * @param this `I18nCreateOpCodes` if attached as a method.\n * @param opcodes `I18nCreateOpCodes` if invoked as a function.\n */\nfunction icuCreateOpCodesToString(opcodes) {\n const parser = new OpCodeParser(opcodes || (Array.isArray(this) ? this : []));\n let lines = [];\n function consumeOpCode(opCode) {\n const parent = getParentFromIcuCreateOpCode(opCode);\n const ref = getRefFromIcuCreateOpCode(opCode);\n switch (getInstructionFromIcuCreateOpCode(opCode)) {\n case 0 /* AppendChild */:\n return `(lView[${parent}] as Element).appendChild(lView[${lastRef}])`;\n case 1 /* Attr */:\n return `(lView[${ref}] as Element).setAttribute(\"${parser.consumeString()}\", \"${parser.consumeString()}\")`;\n }\n throw new Error('Unexpected OpCode: ' + getInstructionFromIcuCreateOpCode(opCode));\n }\n let lastRef = -1;\n while (parser.hasMore()) {\n let value = parser.consumeNumberStringOrMarker();\n if (value === ICU_MARKER) {\n const text = parser.consumeString();\n lastRef = parser.consumeNumber();\n lines.push(`lView[${lastRef}] = document.createComment(\"${text}\")`);\n }\n else if (value === ELEMENT_MARKER) {\n const text = parser.consumeString();\n lastRef = parser.consumeNumber();\n lines.push(`lView[${lastRef}] = document.createElement(\"${text}\")`);\n }\n else if (typeof value === 'string') {\n lastRef = parser.consumeNumber();\n lines.push(`lView[${lastRef}] = document.createTextNode(\"${value}\")`);\n }\n else if (typeof value === 'number') {\n const line = consumeOpCode(value);\n line && lines.push(line);\n }\n else {\n throw new Error('Unexpected value');\n }\n }\n return lines;\n}\n/**\n * Converts `I18nRemoveOpCodes` array into a human readable format.\n *\n * This function is attached to the `I18nRemoveOpCodes.debug` if `ngDevMode` is enabled. This\n * function provides a human readable view of the opcodes. This is useful when debugging the\n * application as well as writing more readable tests.\n *\n * @param this `I18nRemoveOpCodes` if attached as a method.\n * @param opcodes `I18nRemoveOpCodes` if invoked as a function.\n */\nfunction i18nRemoveOpCodesToString(opcodes) {\n const removeCodes = opcodes || (Array.isArray(this) ? this : []);\n let lines = [];\n for (let i = 0; i < removeCodes.length; i++) {\n const nodeOrIcuIndex = removeCodes[i];\n if (nodeOrIcuIndex > 0) {\n // Positive numbers are `RNode`s.\n lines.push(`remove(lView[${nodeOrIcuIndex}])`);\n }\n else {\n // Negative numbers are ICUs\n lines.push(`removeNestedICU(${~nodeOrIcuIndex})`);\n }\n }\n return lines;\n}\nclass OpCodeParser {\n constructor(codes) {\n this.i = 0;\n this.codes = codes;\n }\n hasMore() {\n return this.i < this.codes.length;\n }\n consumeNumber() {\n let value = this.codes[this.i++];\n assertNumber(value, 'expecting number in OpCode');\n return value;\n }\n consumeString() {\n let value = this.codes[this.i++];\n assertString(value, 'expecting string in OpCode');\n return value;\n }\n consumeFunction() {\n let value = this.codes[this.i++];\n if (value === null || typeof value === 'function') {\n return value;\n }\n throw new Error('expecting function in OpCode');\n }\n consumeNumberOrString() {\n let value = this.codes[this.i++];\n if (typeof value === 'string') {\n return value;\n }\n assertNumber(value, 'expecting number or string in OpCode');\n return value;\n }\n consumeNumberStringOrMarker() {\n let value = this.codes[this.i++];\n if (typeof value === 'string' || typeof value === 'number' || value == ICU_MARKER ||\n value == ELEMENT_MARKER) {\n return value;\n }\n assertNumber(value, 'expecting number, string, ICU_MARKER or ELEMENT_MARKER in OpCode');\n return value;\n }\n}\n\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 */\nconst BINDING_REGEXP = /�(\\d+):?\\d*�/gi;\nconst ICU_REGEXP = /({\\s*�\\d+:?\\d*�\\s*,\\s*\\S{6}\\s*,[\\s\\S]*})/gi;\nconst NESTED_ICU = /�(\\d+)�/;\nconst ICU_BLOCK_REGEXP = /^\\s*(�\\d+:?\\d*�)\\s*,\\s*(select|plural)\\s*,/;\nconst MARKER = `�`;\nconst SUBTEMPLATE_REGEXP = /�\\/?\\*(\\d+:\\d+)�/gi;\nconst PH_REGEXP = /�(\\/?[#*]\\d+):?\\d*�/gi;\n/**\n * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see:\n * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32\n * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character\n * and later on replaced by a space. We are re-implementing the same idea here, since translations\n * might contain this special character.\n */\nconst NGSP_UNICODE_REGEXP = /\\uE500/g;\nfunction replaceNgsp(value) {\n return value.replace(NGSP_UNICODE_REGEXP, ' ');\n}\n/**\n * Create dynamic nodes from i18n translation block.\n *\n * - Text nodes are created synchronously\n * - TNodes are linked into tree lazily\n *\n * @param tView Current `TView`\n * @parentTNodeIndex index to the parent TNode of this i18n block\n * @param lView Current `LView`\n * @param index Index of `ɵɵi18nStart` instruction.\n * @param message Message to translate.\n * @param subTemplateIndex Index into the sub template of message translation. (ie in case of\n * `ngIf`) (-1 otherwise)\n */\nfunction i18nStartFirstCreatePass(tView, parentTNodeIndex, lView, index, message, subTemplateIndex) {\n const rootTNode = getCurrentParentTNode();\n const createOpCodes = [];\n const updateOpCodes = [];\n const existingTNodeStack = [[]];\n if (ngDevMode) {\n attachDebugGetter(createOpCodes, i18nCreateOpCodesToString);\n attachDebugGetter(updateOpCodes, i18nUpdateOpCodesToString);\n }\n message = getTranslationForTemplate(message, subTemplateIndex);\n const msgParts = replaceNgsp(message).split(PH_REGEXP);\n for (let i = 0; i < msgParts.length; i++) {\n let value = msgParts[i];\n if ((i & 1) === 0) {\n // Even indexes are text (including bindings & ICU expressions)\n const parts = i18nParseTextIntoPartsAndICU(value);\n for (let j = 0; j < parts.length; j++) {\n let part = parts[j];\n if ((j & 1) === 0) {\n // `j` is odd therefore `part` is string\n const text = part;\n ngDevMode && assertString(text, 'Parsed ICU part should be string');\n if (text !== '') {\n i18nStartFirstCreatePassProcessTextNode(tView, rootTNode, existingTNodeStack[0], createOpCodes, updateOpCodes, lView, text);\n }\n }\n else {\n // `j` is Even therefor `part` is an `ICUExpression`\n const icuExpression = part;\n // Verify that ICU expression has the right shape. Translations might contain invalid\n // constructions (while original messages were correct), so ICU parsing at runtime may\n // not succeed (thus `icuExpression` remains a string).\n // Note: we intentionally retain the error here by not using `ngDevMode`, because\n // the value can change based on the locale and users aren't guaranteed to hit\n // an invalid string while they're developing.\n if (typeof icuExpression !== 'object') {\n throw new Error(`Unable to parse ICU expression in \"${message}\" message.`);\n }\n const icuContainerTNode = createTNodeAndAddOpCode(tView, rootTNode, existingTNodeStack[0], lView, createOpCodes, ngDevMode ? `ICU ${index}:${icuExpression.mainBinding}` : '', true);\n const icuNodeIndex = icuContainerTNode.index;\n ngDevMode &&\n assertGreaterThanOrEqual(icuNodeIndex, HEADER_OFFSET, 'Index must be in absolute LView offset');\n icuStart(tView, lView, updateOpCodes, parentTNodeIndex, icuExpression, icuNodeIndex);\n }\n }\n }\n else {\n // Odd indexes are placeholders (elements and sub-templates)\n // At this point value is something like: '/#1:2' (originally coming from '�/#1:2�')\n const isClosing = value.charCodeAt(0) === 47 /* SLASH */;\n const type = value.charCodeAt(isClosing ? 1 : 0);\n ngDevMode && assertOneOf(type, 42 /* STAR */, 35 /* HASH */);\n const index = HEADER_OFFSET + Number.parseInt(value.substring((isClosing ? 2 : 1)));\n if (isClosing) {\n existingTNodeStack.shift();\n setCurrentTNode(getCurrentParentTNode(), false);\n }\n else {\n const tNode = createTNodePlaceholder(tView, existingTNodeStack[0], index);\n existingTNodeStack.unshift([]);\n setCurrentTNode(tNode, true);\n }\n }\n }\n tView.data[index] = {\n create: createOpCodes,\n update: updateOpCodes,\n };\n}\n/**\n * Allocate space in i18n Range add create OpCode instruction to create a text or comment node.\n *\n * @param tView Current `TView` needed to allocate space in i18n range.\n * @param rootTNode Root `TNode` of the i18n block. This node determines if the new TNode will be\n * added as part of the `i18nStart` instruction or as part of the `TNode.insertBeforeIndex`.\n * @param existingTNodes internal state for `addTNodeAndUpdateInsertBeforeIndex`.\n * @param lView Current `LView` needed to allocate space in i18n range.\n * @param createOpCodes Array storing `I18nCreateOpCodes` where new opCodes will be added.\n * @param text Text to be added when the `Text` or `Comment` node will be created.\n * @param isICU true if a `Comment` node for ICU (instead of `Text`) node should be created.\n */\nfunction createTNodeAndAddOpCode(tView, rootTNode, existingTNodes, lView, createOpCodes, text, isICU) {\n const i18nNodeIdx = allocExpando(tView, lView, 1, null);\n let opCode = i18nNodeIdx << I18nCreateOpCode.SHIFT;\n let parentTNode = getCurrentParentTNode();\n if (rootTNode === parentTNode) {\n // FIXME(misko): A null `parentTNode` should represent when we fall of the `LView` boundary.\n // (there is no parent), but in some circumstances (because we are inconsistent about how we set\n // `previousOrParentTNode`) it could point to `rootTNode` So this is a work around.\n parentTNode = null;\n }\n if (parentTNode === null) {\n // If we don't have a parent that means that we can eagerly add nodes.\n // If we have a parent than these nodes can't be added now (as the parent has not been created\n // yet) and instead the `parentTNode` is responsible for adding it. See\n // `TNode.insertBeforeIndex`\n opCode |= I18nCreateOpCode.APPEND_EAGERLY;\n }\n if (isICU) {\n opCode |= I18nCreateOpCode.COMMENT;\n ensureIcuContainerVisitorLoaded(loadIcuContainerVisitor);\n }\n createOpCodes.push(opCode, text === null ? '' : text);\n // We store `{{?}}` so that when looking at debug `TNodeType.template` we can see where the\n // bindings are.\n const tNode = createTNodeAtIndex(tView, i18nNodeIdx, isICU ? 32 /* Icu */ : 1 /* Text */, text === null ? (ngDevMode ? '{{?}}' : '') : text, null);\n addTNodeAndUpdateInsertBeforeIndex(existingTNodes, tNode);\n const tNodeIdx = tNode.index;\n setCurrentTNode(tNode, false /* Text nodes are self closing */);\n if (parentTNode !== null && rootTNode !== parentTNode) {\n // We are a child of deeper node (rather than a direct child of `i18nStart` instruction.)\n // We have to make sure to add ourselves to the parent.\n setTNodeInsertBeforeIndex(parentTNode, tNodeIdx);\n }\n return tNode;\n}\n/**\n * Processes text node in i18n block.\n *\n * Text nodes can have:\n * - Create instruction in `createOpCodes` for creating the text node.\n * - Allocate spec for text node in i18n range of `LView`\n * - If contains binding:\n * - bindings => allocate space in i18n range of `LView` to store the binding value.\n * - populate `updateOpCodes` with update instructions.\n *\n * @param tView Current `TView`\n * @param rootTNode Root `TNode` of the i18n block. This node determines if the new TNode will\n * be added as part of the `i18nStart` instruction or as part of the\n * `TNode.insertBeforeIndex`.\n * @param existingTNodes internal state for `addTNodeAndUpdateInsertBeforeIndex`.\n * @param createOpCodes Location where the creation OpCodes will be stored.\n * @param lView Current `LView`\n * @param text The translated text (which may contain binding)\n */\nfunction i18nStartFirstCreatePassProcessTextNode(tView, rootTNode, existingTNodes, createOpCodes, updateOpCodes, lView, text) {\n const hasBinding = text.match(BINDING_REGEXP);\n const tNode = createTNodeAndAddOpCode(tView, rootTNode, existingTNodes, lView, createOpCodes, hasBinding ? null : text, false);\n if (hasBinding) {\n generateBindingUpdateOpCodes(updateOpCodes, text, tNode.index, null, 0, null);\n }\n}\n/**\n * See `i18nAttributes` above.\n */\nfunction i18nAttributesFirstPass(tView, index, values) {\n const previousElement = getCurrentTNode();\n const previousElementIndex = previousElement.index;\n const updateOpCodes = [];\n if (ngDevMode) {\n attachDebugGetter(updateOpCodes, i18nUpdateOpCodesToString);\n }\n if (tView.firstCreatePass && tView.data[index] === null) {\n for (let i = 0; i < values.length; i += 2) {\n const attrName = values[i];\n const message = values[i + 1];\n if (message !== '') {\n // Check if attribute value contains an ICU and throw an error if that's the case.\n // ICUs in element attributes are not supported.\n // Note: we intentionally retain the error here by not using `ngDevMode`, because\n // the `value` can change based on the locale and users aren't guaranteed to hit\n // an invalid string while they're developing.\n if (ICU_REGEXP.test(message)) {\n throw new Error(`ICU expressions are not supported in attributes. Message: \"${message}\".`);\n }\n // i18n attributes that hit this code path are guaranteed to have bindings, because\n // the compiler treats static i18n attributes as regular attribute bindings.\n // Since this may not be the first i18n attribute on this element we need to pass in how\n // many previous bindings there have already been.\n generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes), null);\n }\n }\n tView.data[index] = updateOpCodes;\n }\n}\n/**\n * Generate the OpCodes to update the bindings of a string.\n *\n * @param updateOpCodes Place where the update opcodes will be stored.\n * @param str The string containing the bindings.\n * @param destinationNode Index of the destination node which will receive the binding.\n * @param attrName Name of the attribute, if the string belongs to an attribute.\n * @param sanitizeFn Sanitization function used to sanitize the string after update, if necessary.\n * @param bindingStart The lView index of the next expression that can be bound via an opCode.\n * @returns The mask value for these bindings\n */\nfunction generateBindingUpdateOpCodes(updateOpCodes, str, destinationNode, attrName, bindingStart, sanitizeFn) {\n ngDevMode &&\n assertGreaterThanOrEqual(destinationNode, HEADER_OFFSET, 'Index must be in absolute LView offset');\n const maskIndex = updateOpCodes.length; // Location of mask\n const sizeIndex = maskIndex + 1; // location of size for skipping\n updateOpCodes.push(null, null); // Alloc space for mask and size\n const startIndex = maskIndex + 2; // location of first allocation.\n if (ngDevMode) {\n attachDebugGetter(updateOpCodes, i18nUpdateOpCodesToString);\n }\n const textParts = str.split(BINDING_REGEXP);\n let mask = 0;\n for (let j = 0; j < textParts.length; j++) {\n const textValue = textParts[j];\n if (j & 1) {\n // Odd indexes are bindings\n const bindingIndex = bindingStart + parseInt(textValue, 10);\n updateOpCodes.push(-1 - bindingIndex);\n mask = mask | toMaskBit(bindingIndex);\n }\n else if (textValue !== '') {\n // Even indexes are text\n updateOpCodes.push(textValue);\n }\n }\n updateOpCodes.push(destinationNode << 2 /* SHIFT_REF */ |\n (attrName ? 1 /* Attr */ : 0 /* Text */));\n if (attrName) {\n updateOpCodes.push(attrName, sanitizeFn);\n }\n updateOpCodes[maskIndex] = mask;\n updateOpCodes[sizeIndex] = updateOpCodes.length - startIndex;\n return mask;\n}\n/**\n * Count the number of bindings in the given `opCodes`.\n *\n * It could be possible to speed this up, by passing the number of bindings found back from\n * `generateBindingUpdateOpCodes()` to `i18nAttributesFirstPass()` but this would then require more\n * complexity in the code and/or transient objects to be created.\n *\n * Since this function is only called once when the template is instantiated, is trivial in the\n * first instance (since `opCodes` will be an empty array), and it is not common for elements to\n * contain multiple i18n bound attributes, it seems like this is a reasonable compromise.\n */\nfunction countBindings(opCodes) {\n let count = 0;\n for (let i = 0; i < opCodes.length; i++) {\n const opCode = opCodes[i];\n // Bindings are negative numbers.\n if (typeof opCode === 'number' && opCode < 0) {\n count++;\n }\n }\n return count;\n}\n/**\n * Convert binding index to mask bit.\n *\n * Each index represents a single bit on the bit-mask. Because bit-mask only has 32 bits, we make\n * the 32nd bit share all masks for all bindings higher than 32. Since it is extremely rare to\n * have more than 32 bindings this will be hit very rarely. The downside of hitting this corner\n * case is that we will execute binding code more often than necessary. (penalty of performance)\n */\nfunction toMaskBit(bindingIndex) {\n return 1 << Math.min(bindingIndex, 31);\n}\nfunction isRootTemplateMessage(subTemplateIndex) {\n return subTemplateIndex === -1;\n}\n/**\n * Removes everything inside the sub-templates of a message.\n */\nfunction removeInnerTemplateTranslation(message) {\n let match;\n let res = '';\n let index = 0;\n let inTemplate = false;\n let tagMatched;\n while ((match = SUBTEMPLATE_REGEXP.exec(message)) !== null) {\n if (!inTemplate) {\n res += message.substring(index, match.index + match[0].length);\n tagMatched = match[1];\n inTemplate = true;\n }\n else {\n if (match[0] === `${MARKER}/*${tagMatched}${MARKER}`) {\n index = match.index;\n inTemplate = false;\n }\n }\n }\n ngDevMode &&\n assertEqual(inTemplate, false, `Tag mismatch: unable to find the end of the sub-template in the translation \"${message}\"`);\n res += message.substr(index);\n return res;\n}\n/**\n * Extracts a part of a message and removes the rest.\n *\n * This method is used for extracting a part of the message associated with a template. A\n * translated message can span multiple templates.\n *\n * Example:\n * ```\n * <div i18n>Translate <span *ngIf>me</span>!</div>\n * ```\n *\n * @param message The message to crop\n * @param subTemplateIndex Index of the sub-template to extract. If undefined it returns the\n * external template and removes all sub-templates.\n */\nfunction getTranslationForTemplate(message, subTemplateIndex) {\n if (isRootTemplateMessage(subTemplateIndex)) {\n // We want the root template message, ignore all sub-templates\n return removeInnerTemplateTranslation(message);\n }\n else {\n // We want a specific sub-template\n const start = message.indexOf(`:${subTemplateIndex}${MARKER}`) + 2 + subTemplateIndex.toString().length;\n const end = message.search(new RegExp(`${MARKER}\\\\/\\\\*\\\\d+:${subTemplateIndex}${MARKER}`));\n return removeInnerTemplateTranslation(message.substring(start, end));\n }\n}\n/**\n * Generate the OpCodes for ICU expressions.\n *\n * @param icuExpression\n * @param index Index where the anchor is stored and an optional `TIcuContainerNode`\n * - `lView[anchorIdx]` points to a `Comment` node representing the anchor for the ICU.\n * - `tView.data[anchorIdx]` points to the `TIcuContainerNode` if ICU is root (`null` otherwise)\n */\nfunction icuStart(tView, lView, updateOpCodes, parentIdx, icuExpression, anchorIdx) {\n ngDevMode && assertDefined(icuExpression, 'ICU expression must be defined');\n let bindingMask = 0;\n const tIcu = {\n type: icuExpression.type,\n currentCaseLViewIndex: allocExpando(tView, lView, 1, null),\n anchorIdx,\n cases: [],\n create: [],\n remove: [],\n update: []\n };\n addUpdateIcuSwitch(updateOpCodes, icuExpression, anchorIdx);\n setTIcu(tView, anchorIdx, tIcu);\n const values = icuExpression.values;\n for (let i = 0; i < values.length; i++) {\n // Each value is an array of strings & other ICU expressions\n const valueArr = values[i];\n const nestedIcus = [];\n for (let j = 0; j < valueArr.length; j++) {\n const value = valueArr[j];\n if (typeof value !== 'string') {\n // It is an nested ICU expression\n const icuIndex = nestedIcus.push(value) - 1;\n // Replace nested ICU expression by a comment node\n valueArr[j] = `<!--�${icuIndex}�-->`;\n }\n }\n bindingMask = parseIcuCase(tView, tIcu, lView, updateOpCodes, parentIdx, icuExpression.cases[i], valueArr.join(''), nestedIcus) |\n bindingMask;\n }\n if (bindingMask) {\n addUpdateIcuUpdate(updateOpCodes, bindingMask, anchorIdx);\n }\n}\n/**\n * Parses text containing an ICU expression and produces a JSON object for it.\n * Original code from closure library, modified for Angular.\n *\n * @param pattern Text containing an ICU expression that needs to be parsed.\n *\n */\nfunction parseICUBlock(pattern) {\n const cases = [];\n const values = [];\n let icuType = 1 /* plural */;\n let mainBinding = 0;\n pattern = pattern.replace(ICU_BLOCK_REGEXP, function (str, binding, type) {\n if (type === 'select') {\n icuType = 0 /* select */;\n }\n else {\n icuType = 1 /* plural */;\n }\n mainBinding = parseInt(binding.substr(1), 10);\n return '';\n });\n const parts = i18nParseTextIntoPartsAndICU(pattern);\n // Looking for (key block)+ sequence. One of the keys has to be \"other\".\n for (let pos = 0; pos < parts.length;) {\n let key = parts[pos++].trim();\n if (icuType === 1 /* plural */) {\n // Key can be \"=x\", we just want \"x\"\n key = key.replace(/\\s*(?:=)?(\\w+)\\s*/, '$1');\n }\n if (key.length) {\n cases.push(key);\n }\n const blocks = i18nParseTextIntoPartsAndICU(parts[pos++]);\n if (cases.length > values.length) {\n values.push(blocks);\n }\n }\n // TODO(ocombe): support ICU expressions in attributes, see #21615\n return { type: icuType, mainBinding: mainBinding, cases, values };\n}\n/**\n * Breaks pattern into strings and top level {...} blocks.\n * Can be used to break a message into text and ICU expressions, or to break an ICU expression\n * into keys and cases. Original code from closure library, modified for Angular.\n *\n * @param pattern (sub)Pattern to be broken.\n * @returns An `Array<string|IcuExpression>` where:\n * - odd positions: `string` => text between ICU expressions\n * - even positions: `ICUExpression` => ICU expression parsed into `ICUExpression` record.\n */\nfunction i18nParseTextIntoPartsAndICU(pattern) {\n if (!pattern) {\n return [];\n }\n let prevPos = 0;\n const braceStack = [];\n const results = [];\n const braces = /[{}]/g;\n // lastIndex doesn't get set to 0 so we have to.\n braces.lastIndex = 0;\n let match;\n while (match = braces.exec(pattern)) {\n const pos = match.index;\n if (match[0] == '}') {\n braceStack.pop();\n if (braceStack.length == 0) {\n // End of the block.\n const block = pattern.substring(prevPos, pos);\n if (ICU_BLOCK_REGEXP.test(block)) {\n results.push(parseICUBlock(block));\n }\n else {\n results.push(block);\n }\n prevPos = pos + 1;\n }\n }\n else {\n if (braceStack.length == 0) {\n const substring = pattern.substring(prevPos, pos);\n results.push(substring);\n prevPos = pos + 1;\n }\n braceStack.push('{');\n }\n }\n const substring = pattern.substring(prevPos);\n results.push(substring);\n return results;\n}\n/**\n * Parses a node, its children and its siblings, and generates the mutate & update OpCodes.\n *\n */\nfunction parseIcuCase(tView, tIcu, lView, updateOpCodes, parentIdx, caseName, unsafeCaseHtml, nestedIcus) {\n const create = [];\n const remove = [];\n const update = [];\n if (ngDevMode) {\n attachDebugGetter(create, icuCreateOpCodesToString);\n attachDebugGetter(remove, i18nRemoveOpCodesToString);\n attachDebugGetter(update, i18nUpdateOpCodesToString);\n }\n tIcu.cases.push(caseName);\n tIcu.create.push(create);\n tIcu.remove.push(remove);\n tIcu.update.push(update);\n const inertBodyHelper = getInertBodyHelper(getDocument());\n const inertBodyElement = inertBodyHelper.getInertBodyElement(unsafeCaseHtml);\n ngDevMode && assertDefined(inertBodyElement, 'Unable to generate inert body element');\n const inertRootNode = getTemplateContent(inertBodyElement) || inertBodyElement;\n if (inertRootNode) {\n return walkIcuTree(tView, tIcu, lView, updateOpCodes, create, remove, update, inertRootNode, parentIdx, nestedIcus, 0);\n }\n else {\n return 0;\n }\n}\nfunction walkIcuTree(tView, tIcu, lView, sharedUpdateOpCodes, create, remove, update, parentNode, parentIdx, nestedIcus, depth) {\n let bindingMask = 0;\n let currentNode = parentNode.firstChild;\n while (currentNode) {\n const newIndex = allocExpando(tView, lView, 1, null);\n switch (currentNode.nodeType) {\n case Node.ELEMENT_NODE:\n const element = currentNode;\n const tagName = element.tagName.toLowerCase();\n if (VALID_ELEMENTS.hasOwnProperty(tagName)) {\n addCreateNodeAndAppend(create, ELEMENT_MARKER, tagName, parentIdx, newIndex);\n tView.data[newIndex] = tagName;\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attr = elAttrs.item(i);\n const lowerAttrName = attr.name.toLowerCase();\n const hasBinding = !!attr.value.match(BINDING_REGEXP);\n // we assume the input string is safe, unless it's using a binding\n if (hasBinding) {\n if (VALID_ATTRS.hasOwnProperty(lowerAttrName)) {\n if (URI_ATTRS[lowerAttrName]) {\n generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, _sanitizeUrl);\n }\n else if (SRCSET_ATTRS[lowerAttrName]) {\n generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, sanitizeSrcset);\n }\n else {\n generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, null);\n }\n }\n else {\n ngDevMode &&\n console.warn(`WARNING: ignoring unsafe attribute value ` +\n `${lowerAttrName} on element ${tagName} ` +\n `(see https://g.co/ng/security#xss)`);\n }\n }\n else {\n addCreateAttribute(create, newIndex, attr);\n }\n }\n // Parse the children of this node (if any)\n bindingMask = walkIcuTree(tView, tIcu, lView, sharedUpdateOpCodes, create, remove, update, currentNode, newIndex, nestedIcus, depth + 1) |\n bindingMask;\n addRemoveNode(remove, newIndex, depth);\n }\n break;\n case Node.TEXT_NODE:\n const value = currentNode.textContent || '';\n const hasBinding = value.match(BINDING_REGEXP);\n addCreateNodeAndAppend(create, null, hasBinding ? '' : value, parentIdx, newIndex);\n addRemoveNode(remove, newIndex, depth);\n if (hasBinding) {\n bindingMask =\n generateBindingUpdateOpCodes(update, value, newIndex, null, 0, null) | bindingMask;\n }\n break;\n case Node.COMMENT_NODE:\n // Check if the comment node is a placeholder for a nested ICU\n const isNestedIcu = NESTED_ICU.exec(currentNode.textContent || '');\n if (isNestedIcu) {\n const nestedIcuIndex = parseInt(isNestedIcu[1], 10);\n const icuExpression = nestedIcus[nestedIcuIndex];\n // Create the comment node that will anchor the ICU expression\n addCreateNodeAndAppend(create, ICU_MARKER, ngDevMode ? `nested ICU ${nestedIcuIndex}` : '', parentIdx, newIndex);\n icuStart(tView, lView, sharedUpdateOpCodes, parentIdx, icuExpression, newIndex);\n addRemoveNestedIcu(remove, newIndex, depth);\n }\n break;\n }\n currentNode = currentNode.nextSibling;\n }\n return bindingMask;\n}\nfunction addRemoveNode(remove, index, depth) {\n if (depth === 0) {\n remove.push(index);\n }\n}\nfunction addRemoveNestedIcu(remove, index, depth) {\n if (depth === 0) {\n remove.push(~index); // remove ICU at `index`\n remove.push(index); // remove ICU comment at `index`\n }\n}\nfunction addUpdateIcuSwitch(update, icuExpression, index) {\n update.push(toMaskBit(icuExpression.mainBinding), 2, -1 - icuExpression.mainBinding, index << 2 /* SHIFT_REF */ | 2 /* IcuSwitch */);\n}\nfunction addUpdateIcuUpdate(update, bindingMask, index) {\n update.push(bindingMask, 1, index << 2 /* SHIFT_REF */ | 3 /* IcuUpdate */);\n}\nfunction addCreateNodeAndAppend(create, marker, text, appendToParentIdx, createAtIdx) {\n if (marker !== null) {\n create.push(marker);\n }\n create.push(text, createAtIdx, icuCreateOpCode(0 /* AppendChild */, appendToParentIdx, createAtIdx));\n}\nfunction addCreateAttribute(create, newIndex, attr) {\n create.push(newIndex << 1 /* SHIFT_REF */ | 1 /* Attr */, attr.name, attr.value);\n}\n\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// i18nPostprocess consts\nconst ROOT_TEMPLATE_ID = 0;\nconst PP_MULTI_VALUE_PLACEHOLDERS_REGEXP = /\\[(�.+?�?)\\]/;\nconst PP_PLACEHOLDERS_REGEXP = /\\[(�.+?�?)\\]|(�\\/?\\*\\d+:\\d+�)/g;\nconst PP_ICU_VARS_REGEXP = /({\\s*)(VAR_(PLURAL|SELECT)(_\\d+)?)(\\s*,)/g;\nconst PP_ICU_PLACEHOLDERS_REGEXP = /{([A-Z0-9_]+)}/g;\nconst PP_ICUS_REGEXP = /�I18N_EXP_(ICU(_\\d+)?)�/g;\nconst PP_CLOSE_TEMPLATE_REGEXP = /\\/\\*/;\nconst PP_TEMPLATE_ID_REGEXP = /\\d+\\:(\\d+)/;\n/**\n * Handles message string post-processing for internationalization.\n *\n * Handles message string post-processing by transforming it from intermediate\n * format (that might contain some markers that we need to replace) to the final\n * form, consumable by i18nStart instruction. Post processing steps include:\n *\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\n * in case multiple ICUs have the same placeholder name\n *\n * @param message Raw translation string for post processing\n * @param replacements Set of replacements that should be applied\n *\n * @returns Transformed string that can be consumed by i18nStart instruction\n *\n * @codeGenApi\n */\nfunction i18nPostprocess(message, replacements = {}) {\n /**\n * Step 1: resolve all multi-value placeholders like [�#5�|�*1:1��#2:1�|�#4:1�]\n *\n * Note: due to the way we process nested templates (BFS), multi-value placeholders are typically\n * grouped by templates, for example: [�#5�|�#6�|�#1:1�|�#3:2�] where �#5� and �#6� belong to root\n * template, �#1:1� belong to nested template with index 1 and �#1:2� - nested template with index\n * 3. However in real templates the order might be different: i.e. �#1:1� and/or �#3:2� may go in\n * front of �#6�. The post processing step restores the right order by keeping track of the\n * template id stack and looks for placeholders that belong to the currently active template.\n */\n let result = message;\n if (PP_MULTI_VALUE_PLACEHOLDERS_REGEXP.test(message)) {\n const matches = {};\n const templateIdsStack = [ROOT_TEMPLATE_ID];\n result = result.replace(PP_PLACEHOLDERS_REGEXP, (m, phs, tmpl) => {\n const content = phs || tmpl;\n const placeholders = matches[content] || [];\n if (!placeholders.length) {\n content.split('|').forEach((placeholder) => {\n const match = placeholder.match(PP_TEMPLATE_ID_REGEXP);\n const templateId = match ? parseInt(match[1], 10) : ROOT_TEMPLATE_ID;\n const isCloseTemplateTag = PP_CLOSE_TEMPLATE_REGEXP.test(placeholder);\n placeholders.push([templateId, isCloseTemplateTag, placeholder]);\n });\n matches[content] = placeholders;\n }\n if (!placeholders.length) {\n throw new Error(`i18n postprocess: unmatched placeholder - ${content}`);\n }\n const currentTemplateId = templateIdsStack[templateIdsStack.length - 1];\n let idx = 0;\n // find placeholder index that matches current template id\n for (let i = 0; i < placeholders.length; i++) {\n if (placeholders[i][0] === currentTemplateId) {\n idx = i;\n break;\n }\n }\n // update template id stack based on the current tag extracted\n const [templateId, isCloseTemplateTag, placeholder] = placeholders[idx];\n if (isCloseTemplateTag) {\n templateIdsStack.pop();\n }\n else if (currentTemplateId !== templateId) {\n templateIdsStack.push(templateId);\n }\n // remove processed tag from the list\n placeholders.splice(idx, 1);\n return placeholder;\n });\n }\n // return current result if no replacements specified\n if (!Object.keys(replacements).length) {\n return result;\n }\n /**\n * Step 2: replace all ICU vars (like \"VAR_PLURAL\")\n */\n result = result.replace(PP_ICU_VARS_REGEXP, (match, start, key, _type, _idx, end) => {\n return replacements.hasOwnProperty(key) ? `${start}${replacements[key]}${end}` : match;\n });\n /**\n * Step 3: replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\n */\n result = result.replace(PP_ICU_PLACEHOLDERS_REGEXP, (match, key) => {\n return replacements.hasOwnProperty(key) ? replacements[key] : match;\n });\n /**\n * Step 4: replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�) in case\n * multiple ICUs have the same placeholder name\n */\n result = result.replace(PP_ICUS_REGEXP, (match, key) => {\n if (replacements.hasOwnProperty(key)) {\n const list = replacements[key];\n if (!list.length) {\n throw new Error(`i18n postprocess: unmatched ICU - ${match} with key: ${key}`);\n }\n return list.shift();\n }\n return match;\n });\n return result;\n}\n\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/**\n * Marks a block of text as translatable.\n *\n * The instructions `i18nStart` and `i18nEnd` mark the translation block in the template.\n * The translation `message` is the value which is locale specific. The translation string may\n * contain placeholders which associate inner elements and sub-templates within the translation.\n *\n * The translation `message` placeholders are:\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\n * interpolated into. The placeholder `index` points to the expression binding index. An optional\n * `block` that matches the sub-template in which it was declared.\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*: Marks the beginning\n * and end of DOM element that were embedded in the original translation block. The placeholder\n * `index` points to the element index in the template instructions set. An optional `block` that\n * matches the sub-template in which it was declared.\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\n * split up and translated separately in each angular template function. The `index` points to the\n * `template` instruction index. A `block` that matches the sub-template in which it was declared.\n *\n * @param index A unique index of the translation in the static block.\n * @param messageIndex An index of the translation message from the `def.consts` array.\n * @param subTemplateIndex Optional sub-template index in the `message`.\n *\n * @codeGenApi\n */\nfunction ɵɵi18nStart(index, messageIndex, subTemplateIndex = -1) {\n const tView = getTView();\n const lView = getLView();\n const adjustedIndex = HEADER_OFFSET + index;\n ngDevMode && assertDefined(tView, `tView should be defined`);\n const message = getConstant(tView.consts, messageIndex);\n const parentTNode = getCurrentParentTNode();\n if (tView.firstCreatePass) {\n i18nStartFirstCreatePass(tView, parentTNode === null ? 0 : parentTNode.index, lView, adjustedIndex, message, subTemplateIndex);\n }\n const tI18n = tView.data[adjustedIndex];\n const sameViewParentTNode = parentTNode === lView[T_HOST] ? null : parentTNode;\n const parentRNode = getClosestRElement(tView, sameViewParentTNode, lView);\n // If `parentTNode` is an `ElementContainer` than it has `<!--ng-container--->`.\n // When we do inserts we have to make sure to insert in front of `<!--ng-container--->`.\n const insertInFrontOf = parentTNode && (parentTNode.type & 8 /* ElementContainer */) ?\n lView[parentTNode.index] :\n null;\n applyCreateOpCodes(lView, tI18n.create, parentRNode, insertInFrontOf);\n setInI18nBlock(true);\n}\n/**\n * Translates a translation block marked by `i18nStart` and `i18nEnd`. It inserts the text/ICU nodes\n * into the render tree, moves the placeholder nodes and removes the deleted nodes.\n *\n * @codeGenApi\n */\nfunction ɵɵi18nEnd() {\n setInI18nBlock(false);\n}\n/**\n *\n * Use this instruction to create a translation block that doesn't contain any placeholder.\n * It calls both {@link i18nStart} and {@link i18nEnd} in one instruction.\n *\n * The translation `message` is the value which is locale specific. The translation string may\n * contain placeholders which associate inner elements and sub-templates within the translation.\n *\n * The translation `message` placeholders are:\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\n * interpolated into. The placeholder `index` points to the expression binding index. An optional\n * `block` that matches the sub-template in which it was declared.\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*: Marks the beginning\n * and end of DOM element that were embedded in the original translation block. The placeholder\n * `index` points to the element index in the template instructions set. An optional `block` that\n * matches the sub-template in which it was declared.\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\n * split up and translated separately in each angular template function. The `index` points to the\n * `template` instruction index. A `block` that matches the sub-template in which it was declared.\n *\n * @param index A unique index of the translation in the static block.\n * @param messageIndex An index of the translation message from the `def.consts` array.\n * @param subTemplateIndex Optional sub-template index in the `message`.\n *\n * @codeGenApi\n */\nfunction ɵɵi18n(index, messageIndex, subTemplateIndex) {\n ɵɵi18nStart(index, messageIndex, subTemplateIndex);\n ɵɵi18nEnd();\n}\n/**\n * Marks a list of attributes as translatable.\n *\n * @param index A unique index in the static block\n * @param values\n *\n * @codeGenApi\n */\nfunction ɵɵi18nAttributes(index, attrsIndex) {\n const tView = getTView();\n ngDevMode && assertDefined(tView, `tView should be defined`);\n const attrs = getConstant(tView.consts, attrsIndex);\n i18nAttributesFirstPass(tView, index + HEADER_OFFSET, attrs);\n}\n/**\n * Stores the values of the bindings during each update cycle in order to determine if we need to\n * update the translated nodes.\n *\n * @param value The binding's value\n * @returns This function returns itself so that it may be chained\n * (e.g. `i18nExp(ctx.name)(ctx.title)`)\n *\n * @codeGenApi\n */\nfunction ɵɵi18nExp(value) {\n const lView = getLView();\n setMaskBit(bindingUpdated(lView, nextBindingIndex(), value));\n return ɵɵi18nExp;\n}\n/**\n * Updates a translation block or an i18n attribute when the bindings have changed.\n *\n * @param index Index of either {@link i18nStart} (translation block) or {@link i18nAttributes}\n * (i18n attribute) on which it should update the content.\n *\n * @codeGenApi\n */\nfunction ɵɵi18nApply(index) {\n applyI18n(getTView(), getLView(), index + HEADER_OFFSET);\n}\n/**\n * Handles message string post-processing for internationalization.\n *\n * Handles message string post-processing by transforming it from intermediate\n * format (that might contain some markers that we need to replace) to the final\n * form, consumable by i18nStart instruction. Post processing steps include:\n *\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\n * in case multiple ICUs have the same placeholder name\n *\n * @param message Raw translation string for post processing\n * @param replacements Set of replacements that should be applied\n *\n * @returns Transformed string that can be consumed by i18nStart instruction\n *\n * @codeGenApi\n */\nfunction ɵɵi18nPostprocess(message, replacements = {}) {\n return i18nPostprocess(message, replacements);\n}\n\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\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/**\n * Resolves the providers which are defined in the DirectiveDef.\n *\n * When inserting the tokens and the factories in their respective arrays, we can assume that\n * this method is called first for the component (if any), and then for other directives on the same\n * node.\n * As a consequence,the providers are always processed in that order:\n * 1) The view providers of the component\n * 2) The providers of the component\n * 3) The providers of the other directives\n * This matches the structure of the injectables arrays of a view (for each node).\n * So the tokens and the factories can be pushed at the end of the arrays, except\n * in one case for multi providers.\n *\n * @param def the directive definition\n * @param providers: Array of `providers`.\n * @param viewProviders: Array of `viewProviders`.\n */\nfunction providersResolver(def, providers, viewProviders) {\n const tView = getTView();\n if (tView.firstCreatePass) {\n const isComponent = isComponentDef(def);\n // The list of view providers is processed first, and the flags are updated\n resolveProvider(viewProviders, tView.data, tView.blueprint, isComponent, true);\n // Then, the list of providers is processed, and the flags are updated\n resolveProvider(providers, tView.data, tView.blueprint, isComponent, false);\n }\n}\n/**\n * Resolves a provider and publishes it to the DI system.\n */\nfunction resolveProvider(provider, tInjectables, lInjectablesBlueprint, isComponent, isViewProvider) {\n provider = resolveForwardRef(provider);\n if (Array.isArray(provider)) {\n // Recursively call `resolveProvider`\n // Recursion is OK in this case because this code will not be in hot-path once we implement\n // cloning of the initial state.\n for (let i = 0; i < provider.length; i++) {\n resolveProvider(provider[i], tInjectables, lInjectablesBlueprint, isComponent, isViewProvider);\n }\n }\n else {\n const tView = getTView();\n const lView = getLView();\n let token = isTypeProvider(provider) ? provider : resolveForwardRef(provider.provide);\n let providerFactory = providerToFactory(provider);\n const tNode = getCurrentTNode();\n const beginIndex = tNode.providerIndexes & 1048575 /* ProvidersStartIndexMask */;\n const endIndex = tNode.directiveStart;\n const cptViewProvidersCount = tNode.providerIndexes >> 20 /* CptViewProvidersCountShift */;\n if (isTypeProvider(provider) || !provider.multi) {\n // Single provider case: the factory is created and pushed immediately\n const factory = new NodeInjectorFactory(providerFactory, isViewProvider, ɵɵdirectiveInject);\n const existingFactoryIndex = indexOf(token, tInjectables, isViewProvider ? beginIndex : beginIndex + cptViewProvidersCount, endIndex);\n if (existingFactoryIndex === -1) {\n diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, lView), tView, token);\n registerDestroyHooksIfSupported(tView, provider, tInjectables.length);\n tInjectables.push(token);\n tNode.directiveStart++;\n tNode.directiveEnd++;\n if (isViewProvider) {\n tNode.providerIndexes += 1048576 /* CptViewProvidersCountShifter */;\n }\n lInjectablesBlueprint.push(factory);\n lView.push(factory);\n }\n else {\n lInjectablesBlueprint[existingFactoryIndex] = factory;\n lView[existingFactoryIndex] = factory;\n }\n }\n else {\n // Multi provider case:\n // We create a multi factory which is going to aggregate all the values.\n // Since the output of such a factory depends on content or view injection,\n // we create two of them, which are linked together.\n //\n // The first one (for view providers) is always in the first block of the injectables array,\n // and the second one (for providers) is always in the second block.\n // This is important because view providers have higher priority. When a multi token\n // is being looked up, the view providers should be found first.\n // Note that it is not possible to have a multi factory in the third block (directive block).\n //\n // The algorithm to process multi providers is as follows:\n // 1) If the multi provider comes from the `viewProviders` of the component:\n // a) If the special view providers factory doesn't exist, it is created and pushed.\n // b) Else, the multi provider is added to the existing multi factory.\n // 2) If the multi provider comes from the `providers` of the component or of another\n // directive:\n // a) If the multi factory doesn't exist, it is created and provider pushed into it.\n // It is also linked to the multi factory for view providers, if it exists.\n // b) Else, the multi provider is added to the existing multi factory.\n const existingProvidersFactoryIndex = indexOf(token, tInjectables, beginIndex + cptViewProvidersCount, endIndex);\n const existingViewProvidersFactoryIndex = indexOf(token, tInjectables, beginIndex, beginIndex + cptViewProvidersCount);\n const doesProvidersFactoryExist = existingProvidersFactoryIndex >= 0 &&\n lInjectablesBlueprint[existingProvidersFactoryIndex];\n const doesViewProvidersFactoryExist = existingViewProvidersFactoryIndex >= 0 &&\n lInjectablesBlueprint[existingViewProvidersFactoryIndex];\n if (isViewProvider && !doesViewProvidersFactoryExist ||\n !isViewProvider && !doesProvidersFactoryExist) {\n // Cases 1.a and 2.a\n diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, lView), tView, token);\n const factory = multiFactory(isViewProvider ? multiViewProvidersFactoryResolver : multiProvidersFactoryResolver, lInjectablesBlueprint.length, isViewProvider, isComponent, providerFactory);\n if (!isViewProvider && doesViewProvidersFactoryExist) {\n lInjectablesBlueprint[existingViewProvidersFactoryIndex].providerFactory = factory;\n }\n registerDestroyHooksIfSupported(tView, provider, tInjectables.length, 0);\n tInjectables.push(token);\n tNode.directiveStart++;\n tNode.directiveEnd++;\n if (isViewProvider) {\n tNode.providerIndexes += 1048576 /* CptViewProvidersCountShifter */;\n }\n lInjectablesBlueprint.push(factory);\n lView.push(factory);\n }\n else {\n // Cases 1.b and 2.b\n const indexInFactory = multiFactoryAdd(lInjectablesBlueprint[isViewProvider ? existingViewProvidersFactoryIndex :\n existingProvidersFactoryIndex], providerFactory, !isViewProvider && isComponent);\n registerDestroyHooksIfSupported(tView, provider, existingProvidersFactoryIndex > -1 ? existingProvidersFactoryIndex :\n existingViewProvidersFactoryIndex, indexInFactory);\n }\n if (!isViewProvider && isComponent && doesViewProvidersFactoryExist) {\n lInjectablesBlueprint[existingViewProvidersFactoryIndex].componentProviders++;\n }\n }\n }\n}\n/**\n * Registers the `ngOnDestroy` hook of a provider, if the provider supports destroy hooks.\n * @param tView `TView` in which to register the hook.\n * @param provider Provider whose hook should be registered.\n * @param contextIndex Index under which to find the context for the hook when it's being invoked.\n * @param indexInFactory Only required for `multi` providers. Index of the provider in the multi\n * provider factory.\n */\nfunction registerDestroyHooksIfSupported(tView, provider, contextIndex, indexInFactory) {\n const providerIsTypeProvider = isTypeProvider(provider);\n const providerIsClassProvider = isClassProvider(provider);\n if (providerIsTypeProvider || providerIsClassProvider) {\n // Resolve forward references as `useClass` can hold a forward reference.\n const classToken = providerIsClassProvider ? resolveForwardRef(provider.useClass) : provider;\n const prototype = classToken.prototype;\n const ngOnDestroy = prototype.ngOnDestroy;\n if (ngOnDestroy) {\n const hooks = tView.destroyHooks || (tView.destroyHooks = []);\n if (!providerIsTypeProvider && provider.multi) {\n ngDevMode &&\n assertDefined(indexInFactory, 'indexInFactory when registering multi factory destroy hook');\n const existingCallbacksIndex = hooks.indexOf(contextIndex);\n if (existingCallbacksIndex === -1) {\n hooks.push(contextIndex, [indexInFactory, ngOnDestroy]);\n }\n else {\n hooks[existingCallbacksIndex + 1].push(indexInFactory, ngOnDestroy);\n }\n }\n else {\n hooks.push(contextIndex, ngOnDestroy);\n }\n }\n }\n}\n/**\n * Add a factory in a multi factory.\n * @returns Index at which the factory was inserted.\n */\nfunction multiFactoryAdd(multiFactory, factory, isComponentProvider) {\n if (isComponentProvider) {\n multiFactory.componentProviders++;\n }\n return multiFactory.multi.push(factory) - 1;\n}\n/**\n * Returns the index of item in the array, but only in the begin to end range.\n */\nfunction indexOf(item, arr, begin, end) {\n for (let i = begin; i < end; i++) {\n if (arr[i] === item)\n return i;\n }\n return -1;\n}\n/**\n * Use this with `multi` `providers`.\n */\nfunction multiProvidersFactoryResolver(_, tData, lData, tNode) {\n return multiResolve(this.multi, []);\n}\n/**\n * Use this with `multi` `viewProviders`.\n *\n * This factory knows how to concatenate itself with the existing `multi` `providers`.\n */\nfunction multiViewProvidersFactoryResolver(_, tData, lView, tNode) {\n const factories = this.multi;\n let result;\n if (this.providerFactory) {\n const componentCount = this.providerFactory.componentProviders;\n const multiProviders = getNodeInjectable(lView, lView[TVIEW], this.providerFactory.index, tNode);\n // Copy the section of the array which contains `multi` `providers` from the component\n result = multiProviders.slice(0, componentCount);\n // Insert the `viewProvider` instances.\n multiResolve(factories, result);\n // Copy the section of the array which contains `multi` `providers` from other directives\n for (let i = componentCount; i < multiProviders.length; i++) {\n result.push(multiProviders[i]);\n }\n }\n else {\n result = [];\n // Insert the `viewProvider` instances.\n multiResolve(factories, result);\n }\n return result;\n}\n/**\n * Maps an array of factories into an array of values.\n */\nfunction multiResolve(factories, result) {\n for (let i = 0; i < factories.length; i++) {\n const factory = factories[i];\n result.push(factory());\n }\n return result;\n}\n/**\n * Creates a multi factory.\n */\nfunction multiFactory(factoryFn, index, isViewProvider, isComponent, f) {\n const factory = new NodeInjectorFactory(factoryFn, isViewProvider, ɵɵdirectiveInject);\n factory.multi = [];\n factory.index = index;\n factory.componentProviders = 0;\n multiFactoryAdd(factory, f, isComponent && !isViewProvider);\n return factory;\n}\n\n/**\n * This feature resolves the providers of a directive (or component),\n * and publish them into the DI system, making it visible to others for injection.\n *\n * For example:\n * ```ts\n * class ComponentWithProviders {\n * constructor(private greeter: GreeterDE) {}\n *\n * static ɵcmp = defineComponent({\n * type: ComponentWithProviders,\n * selectors: [['component-with-providers']],\n * factory: () => new ComponentWithProviders(directiveInject(GreeterDE as any)),\n * decls: 1,\n * vars: 1,\n * template: function(fs: RenderFlags, ctx: ComponentWithProviders) {\n * if (fs & RenderFlags.Create) {\n * ɵɵtext(0);\n * }\n * if (fs & RenderFlags.Update) {\n * ɵɵtextInterpolate(ctx.greeter.greet());\n * }\n * },\n * features: [ɵɵProvidersFeature([GreeterDE])]\n * });\n * }\n * ```\n *\n * @param definition\n *\n * @codeGenApi\n */\nfunction ɵɵProvidersFeature(providers, viewProviders = []) {\n return (definition) => {\n definition.providersResolver =\n (def, processProvidersFn) => {\n return providersResolver(def, //\n processProvidersFn ? processProvidersFn(providers) : providers, //\n viewProviders);\n };\n };\n}\n\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/**\n * Represents a component created by a `ComponentFactory`.\n * Provides access to the component instance and related objects,\n * and provides the means of destroying the instance.\n *\n * @publicApi\n */\nclass ComponentRef$1 {\n}\n/**\n * Base class for a factory that can create a component dynamically.\n * Instantiate a factory for a given type of component with `resolveComponentFactory()`.\n * Use the resulting `ComponentFactory.create()` method to create a component of that type.\n *\n * @see [Dynamic Components](guide/dynamic-component-loader)\n *\n * @publicApi\n *\n * @deprecated Angular no longer requires Component factories. Please use other APIs where\n * Component class can be used directly.\n */\nclass ComponentFactory$1 {\n}\n\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 */\nfunction noComponentFactoryError(component) {\n const error = Error(`No component factory found for ${stringify(component)}. Did you add it to @NgModule.entryComponents?`);\n error[ERROR_COMPONENT] = component;\n return error;\n}\nconst ERROR_COMPONENT = 'ngComponent';\nfunction getComponent(error) {\n return error[ERROR_COMPONENT];\n}\nclass _NullComponentFactoryResolver {\n resolveComponentFactory(component) {\n throw noComponentFactoryError(component);\n }\n}\n/**\n * A simple registry that maps `Components` to generated `ComponentFactory` classes\n * that can be used to create instances of components.\n * Use to obtain the factory for a given component type,\n * then use the factory's `create()` method to create a component of that type.\n *\n * Note: since v13, dynamic component creation via\n * [`ViewContainerRef.createComponent`](api/core/ViewContainerRef#createComponent)\n * does **not** require resolving component factory: component class can be used directly.\n *\n * @publicApi\n *\n * @deprecated Angular no longer requires Component factories. Please use other APIs where\n * Component class can be used directly.\n */\nclass ComponentFactoryResolver$1 {\n}\nComponentFactoryResolver$1.NULL = ( /* @__PURE__ */new _NullComponentFactoryResolver());\n\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/**\n * Creates an ElementRef from the most recent node.\n *\n * @returns The ElementRef instance to use\n */\nfunction injectElementRef() {\n return createElementRef(getCurrentTNode(), getLView());\n}\n/**\n * Creates an ElementRef given a node.\n *\n * @param tNode The node for which you'd like an ElementRef\n * @param lView The view to which the node belongs\n * @returns The ElementRef instance to use\n */\nfunction createElementRef(tNode, lView) {\n return new ElementRef(getNativeByTNode(tNode, lView));\n}\n/**\n * A wrapper around a native element inside of a View.\n *\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\n * element.\n *\n * @security Permitting direct access to the DOM can make your application more vulnerable to\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\n * [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,\n// i.e. users have to ask for what they need. With that, we can build better analysis tools\n// and could do better codegen in the future.\nclass ElementRef {\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n}\n/**\n * @internal\n * @nocollapse\n */\nElementRef.__NG_ELEMENT_ID__ = injectElementRef;\n/**\n * Unwraps `ElementRef` and return the `nativeElement`.\n *\n * @param value value to unwrap\n * @returns `nativeElement` if `ElementRef` otherwise returns value as is.\n */\nfunction unwrapElementRef(value) {\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\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 */\nconst Renderer2Interceptor = new InjectionToken('Renderer2Interceptor');\n/**\n * Creates and initializes a custom renderer that implements the `Renderer2` base class.\n *\n * @publicApi\n */\nclass RendererFactory2 {\n}\n/**\n * Extend this base class to implement custom rendering. By default, Angular\n * renders a template into DOM. You can use custom rendering to intercept\n * rendering calls, or to render to something other than DOM.\n *\n * Create your custom renderer using `RendererFactory2`.\n *\n * Use a custom renderer to bypass Angular's templating and\n * make custom UI changes that can't be expressed declaratively.\n * For example if you need to set a property or an attribute whose name is\n * not statically known, use the `setProperty()` or\n * `setAttribute()` method.\n *\n * @publicApi\n */\nclass Renderer2 {\n}\n/**\n * @internal\n * @nocollapse\n */\nRenderer2.__NG_ELEMENT_ID__ = () => injectRenderer2();\n/** Returns a Renderer2 (or throws when application was bootstrapped with Renderer3) */\nfunction getOrCreateRenderer2(lView) {\n const renderer = lView[RENDERER];\n if (ngDevMode && !isProceduralRenderer(renderer)) {\n throw new Error('Cannot inject Renderer2 when the application uses Renderer3!');\n }\n return renderer;\n}\n/** Injects a Renderer2 for the current component. */\nfunction injectRenderer2() {\n // We need the Renderer to be based on the component that it's being injected into, however since\n // DI happens before we've entered its view, `getLView` will return the parent view instead.\n const lView = getLView();\n const tNode = getCurrentTNode();\n const nodeAtIndex = getComponentLViewByIndex(tNode.index, lView);\n return getOrCreateRenderer2(isLView(nodeAtIndex) ? nodeAtIndex : lView);\n}\n\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/**\n * Sanitizer is used by the views to sanitize potentially dangerous values.\n *\n * @publicApi\n */\nclass Sanitizer {\n}\n/** @nocollapse */\nSanitizer.ɵprov = ɵɵdefineInjectable({\n token: Sanitizer,\n providedIn: 'root',\n factory: () => null,\n});\n\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/**\n * @description Represents the version of Angular\n *\n * @publicApi\n */\nclass Version {\n constructor(full) {\n this.full = full;\n this.major = full.split('.')[0];\n this.minor = full.split('.')[1];\n this.patch = full.split('.').slice(2).join('.');\n }\n}\n/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.4');\n\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 default value is when checking the hierarchy for a token.\n//\n// It means both:\n// - the token is not provided by the current injector,\n// - only the element injectors should be checked (ie do not check module injectors\n//\n// mod1\n// /\n// el1 mod2\n// \\ /\n// el2\n//\n// When requesting el2.injector.get(token), we should check in the following order and return the\n// first found value:\n// - el2.injector.get(token, default)\n// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module\n// - mod2.injector.get(token, default)\nconst NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};\n\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 */\nfunction collectNativeNodes(tView, lView, tNode, result, isProjection = false) {\n while (tNode !== null) {\n ngDevMode &&\n assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */ | 16 /* Projection */ | 32 /* Icu */);\n const lNode = lView[tNode.index];\n if (lNode !== null) {\n result.push(unwrapRNode(lNode));\n }\n // A given lNode can represent either a native node or a LContainer (when it is a host of a\n // ViewContainerRef). When we find a LContainer we need to descend into it to collect root nodes\n // from the views in this container.\n if (isLContainer(lNode)) {\n for (let i = CONTAINER_HEADER_OFFSET; i < lNode.length; i++) {\n const lViewInAContainer = lNode[i];\n const lViewFirstChildTNode = lViewInAContainer[TVIEW].firstChild;\n if (lViewFirstChildTNode !== null) {\n collectNativeNodes(lViewInAContainer[TVIEW], lViewInAContainer, lViewFirstChildTNode, result);\n }\n }\n }\n const tNodeType = tNode.type;\n if (tNodeType & 8 /* ElementContainer */) {\n collectNativeNodes(tView, lView, tNode.child, result);\n }\n else if (tNodeType & 32 /* Icu */) {\n const nextRNode = icuContainerIterate(tNode, lView);\n let rNode;\n while (rNode = nextRNode()) {\n result.push(rNode);\n }\n }\n else if (tNodeType & 16 /* Projection */) {\n const nodesInSlot = getProjectionNodes(lView, tNode);\n if (Array.isArray(nodesInSlot)) {\n result.push(...nodesInSlot);\n }\n else {\n const parentView = getLViewParent(lView[DECLARATION_COMPONENT_VIEW]);\n ngDevMode && assertParentView(parentView);\n collectNativeNodes(parentView[TVIEW], parentView, nodesInSlot, result, true);\n }\n }\n tNode = isProjection ? tNode.projectionNext : tNode.next;\n }\n return result;\n}\n\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 */\nclass ViewRef$1 {\n constructor(\n /**\n * This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.\n *\n * When ViewRef is created for a dynamic component, this also represents the `LView` for the\n * component.\n *\n * For a \"regular\" ViewRef created for an embedded view, this is the `LView` for the embedded\n * view.\n *\n * @internal\n */\n _lView, \n /**\n * This represents the `LView` associated with the point where `ChangeDetectorRef` was\n * requested.\n *\n * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.\n */\n _cdRefInjectingView) {\n this._lView = _lView;\n this._cdRefInjectingView = _cdRefInjectingView;\n this._appRef = null;\n this._attachedToViewContainer = false;\n }\n get rootNodes() {\n const lView = this._lView;\n const tView = lView[TVIEW];\n return collectNativeNodes(tView, lView, tView.firstChild, []);\n }\n get context() {\n return this._lView[CONTEXT];\n }\n set context(value) {\n this._lView[CONTEXT] = value;\n }\n get destroyed() {\n return (this._lView[FLAGS] & 256 /* Destroyed */) === 256 /* Destroyed */;\n }\n destroy() {\n if (this._appRef) {\n this._appRef.detachView(this);\n }\n else if (this._attachedToViewContainer) {\n const parent = this._lView[PARENT];\n if (isLContainer(parent)) {\n const viewRefs = parent[VIEW_REFS];\n const index = viewRefs ? viewRefs.indexOf(this) : -1;\n if (index > -1) {\n ngDevMode &&\n assertEqual(index, parent.indexOf(this._lView) - CONTAINER_HEADER_OFFSET, 'An attached view should be in the same position within its container as its ViewRef in the VIEW_REFS array.');\n detachView(parent, index);\n removeFromArray(viewRefs, index);\n }\n }\n this._attachedToViewContainer = false;\n }\n destroyLView(this._lView[TVIEW], this._lView);\n }\n onDestroy(callback) {\n storeCleanupWithContext(this._lView[TVIEW], this._lView, null, callback);\n }\n /**\n * Marks a view and all of its ancestors dirty.\n *\n * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is\n * checked when it needs to be re-rendered but the two normal triggers haven't marked it\n * dirty (i.e. inputs haven't changed and events haven't fired in the view).\n *\n * <!-- TODO: Add a link to a chapter on OnPush components -->\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * @Component({\n * selector: 'app-root',\n * template: `Number of ticks: {{numberOfTicks}}`\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * })\n * class AppComponent {\n * numberOfTicks = 0;\n *\n * constructor(private ref: ChangeDetectorRef) {\n * setInterval(() => {\n * this.numberOfTicks++;\n * // the following is required, otherwise the view will not be updated\n * this.ref.markForCheck();\n * }, 1000);\n * }\n * }\n * ```\n */\n markForCheck() {\n markViewDirty(this._cdRefInjectingView || this._lView);\n }\n /**\n * Detaches the view from the change detection tree.\n *\n * Detached views will not be checked during change detection runs until they are\n * re-attached, even if they are dirty. `detach` can be used in combination with\n * {@link ChangeDetectorRef#detectChanges detectChanges} to implement local change\n * detection checks.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\n *\n * @usageNotes\n * ### Example\n *\n * The following example defines a component with a large list of readonly data.\n * Imagine the data changes constantly, many times per second. For performance reasons,\n * we want to check and update the list every five seconds. We can do that by detaching\n * the component's change detector and doing a local check every five seconds.\n *\n * ```typescript\n * class DataProvider {\n * // in a real application the returned data will be different every time\n * get data() {\n * return [1,2,3,4,5];\n * }\n * }\n *\n * @Component({\n * selector: 'giant-list',\n * template: `\n * <li *ngFor=\"let d of dataProvider.data\">Data {{d}}</li>\n * `,\n * })\n * class GiantList {\n * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {\n * ref.detach();\n * setInterval(() => {\n * this.ref.detectChanges();\n * }, 5000);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * providers: [DataProvider],\n * template: `\n * <giant-list><giant-list>\n * `,\n * })\n * class App {\n * }\n * ```\n */\n detach() {\n this._lView[FLAGS] &= ~128 /* Attached */;\n }\n /**\n * Re-attaches a view to the change detection tree.\n *\n * This can be used to re-attach views that were previously detached from the tree\n * using {@link ChangeDetectorRef#detach detach}. Views are attached to the tree by default.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n *\n * @usageNotes\n * ### Example\n *\n * The following example creates a component displaying `live` data. The component will detach\n * its change detector from the main change detector tree when the component's live property\n * is set to false.\n *\n * ```typescript\n * class DataProvider {\n * data = 1;\n *\n * constructor() {\n * setInterval(() => {\n * this.data = this.data * 2;\n * }, 500);\n * }\n * }\n *\n * @Component({\n * selector: 'live-data',\n * inputs: ['live'],\n * template: 'Data: {{dataProvider.data}}'\n * })\n * class LiveData {\n * constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}\n *\n * set live(value) {\n * if (value) {\n * this.ref.reattach();\n * } else {\n * this.ref.detach();\n * }\n * }\n * }\n *\n * @Component({\n * selector: 'app-root',\n * providers: [DataProvider],\n * template: `\n * Live Update: <input type=\"checkbox\" [(ngModel)]=\"live\">\n * <live-data [live]=\"live\"><live-data>\n * `,\n * })\n * class AppComponent {\n * live = true;\n * }\n * ```\n */\n reattach() {\n this._lView[FLAGS] |= 128 /* Attached */;\n }\n /**\n * Checks the view and its children.\n *\n * This can also be used in combination with {@link ChangeDetectorRef#detach detach} to implement\n * local change detection checks.\n *\n * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\n * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\n *\n * @usageNotes\n * ### Example\n *\n * The following example defines a component with a large list of readonly data.\n * Imagine, the data changes constantly, many times per second. For performance reasons,\n * we want to check and update the list every five seconds.\n *\n * We can do that by detaching the component's change detector and doing a local change detection\n * check every five seconds.\n *\n * See {@link ChangeDetectorRef#detach detach} for more information.\n */\n detectChanges() {\n detectChangesInternal(this._lView[TVIEW], this._lView, this.context);\n }\n /**\n * Checks the change detector and its children, and throws if any changes are detected.\n *\n * This is used in development mode to verify that running change detection doesn't\n * introduce other changes.\n */\n checkNoChanges() {\n checkNoChangesInternal(this._lView[TVIEW], this._lView, this.context);\n }\n attachToViewContainerRef() {\n if (this._appRef) {\n const errorMessage = ngDevMode ? 'This view is already attached directly to the ApplicationRef!' : '';\n throw new RuntimeError(902 /* VIEW_ALREADY_ATTACHED */, errorMessage);\n }\n this._attachedToViewContainer = true;\n }\n detachFromAppRef() {\n this._appRef = null;\n renderDetachView(this._lView[TVIEW], this._lView);\n }\n attachToAppRef(appRef) {\n if (this._attachedToViewContainer) {\n const errorMessage = ngDevMode ? 'This view is already attached to a ViewContainer!' : '';\n throw new RuntimeError(902 /* VIEW_ALREADY_ATTACHED */, errorMessage);\n }\n this._appRef = appRef;\n }\n}\n/** @internal */\nclass RootViewRef extends ViewRef$1 {\n constructor(_view) {\n super(_view);\n this._view = _view;\n }\n detectChanges() {\n detectChangesInRootView(this._view);\n }\n checkNoChanges() {\n checkNoChangesInRootView(this._view);\n }\n get context() {\n return null;\n }\n}\n\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 */\nclass ComponentFactoryResolver extends ComponentFactoryResolver$1 {\n /**\n * @param ngModule The NgModuleRef to which all resolved factories are bound.\n */\n constructor(ngModule) {\n super();\n this.ngModule = ngModule;\n }\n resolveComponentFactory(component) {\n ngDevMode && assertComponentType(component);\n const componentDef = getComponentDef(component);\n return new ComponentFactory(componentDef, this.ngModule);\n }\n}\nfunction toRefArray(map) {\n const array = [];\n for (let nonMinified in map) {\n if (map.hasOwnProperty(nonMinified)) {\n const minified = map[nonMinified];\n array.push({ propName: minified, templateName: nonMinified });\n }\n }\n return array;\n}\nfunction getNamespace(elementName) {\n const name = elementName.toLowerCase();\n return name === 'svg' ? SVG_NAMESPACE : (name === 'math' ? MATH_ML_NAMESPACE : null);\n}\nfunction createChainedInjector(rootViewInjector, moduleInjector) {\n return {\n get: (token, notFoundValue, flags) => {\n const value = rootViewInjector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);\n if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||\n notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {\n // Return the value from the root element injector when\n // - it provides it\n // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n // - the module injector should not be checked\n // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n return value;\n }\n return moduleInjector.get(token, notFoundValue, flags);\n }\n };\n}\n/**\n * Render3 implementation of {@link viewEngine_ComponentFactory}.\n */\nclass ComponentFactory extends ComponentFactory$1 {\n /**\n * @param componentDef The component definition.\n * @param ngModule The NgModuleRef to which the factory is bound.\n */\n constructor(componentDef, ngModule) {\n super();\n this.componentDef = componentDef;\n this.ngModule = ngModule;\n this.componentType = componentDef.type;\n this.selector = stringifyCSSSelectorList(componentDef.selectors);\n this.ngContentSelectors =\n componentDef.ngContentSelectors ? componentDef.ngContentSelectors : [];\n this.isBoundToModule = !!ngModule;\n }\n get inputs() {\n return toRefArray(this.componentDef.inputs);\n }\n get outputs() {\n return toRefArray(this.componentDef.outputs);\n }\n create(injector, projectableNodes, rootSelectorOrNode, ngModule) {\n ngModule = ngModule || this.ngModule;\n const rootViewInjector = ngModule ? createChainedInjector(injector, ngModule.injector) : injector;\n const rendererFactory = rootViewInjector.get(RendererFactory2, domRendererFactory3);\n const sanitizer = rootViewInjector.get(Sanitizer, null);\n const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);\n // Determine a tag name used for creating host elements when this component is created\n // dynamically. Default to 'div' if this component did not specify any tag name in its selector.\n const elementName = this.componentDef.selectors[0][0] || 'div';\n const hostRNode = rootSelectorOrNode ?\n locateHostElement(hostRenderer, rootSelectorOrNode, this.componentDef.encapsulation) :\n createElementNode(rendererFactory.createRenderer(null, this.componentDef), elementName, getNamespace(elementName));\n const rootFlags = this.componentDef.onPush ? 64 /* Dirty */ | 512 /* IsRoot */ :\n 16 /* CheckAlways */ | 512 /* IsRoot */;\n const rootContext = createRootContext();\n // Create the root view. Uses empty TView and ContentTemplate.\n const rootTView = createTView(0 /* Root */, null, null, 1, 0, null, null, null, null, null);\n const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector);\n // rootView is the parent when bootstrapping\n // TODO(misko): it looks like we are entering view here but we don't really need to as\n // `renderView` does that. However as the code is written it is needed because\n // `createRootComponentView` and `createRootComponent` both read global state. Fixing those\n // issues would allow us to drop this.\n enterView(rootLView);\n let component;\n let tElementNode;\n try {\n const componentView = createRootComponentView(hostRNode, this.componentDef, rootLView, rendererFactory, hostRenderer);\n if (hostRNode) {\n if (rootSelectorOrNode) {\n setUpAttributes(hostRenderer, hostRNode, ['ng-version', VERSION.full]);\n }\n else {\n // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`\n // is not defined), also apply attributes and classes extracted from component selector.\n // Extract attributes and classes from the first selector only to match VE behavior.\n const { attrs, classes } = extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);\n if (attrs) {\n setUpAttributes(hostRenderer, hostRNode, attrs);\n }\n if (classes && classes.length > 0) {\n writeDirectClass(hostRenderer, hostRNode, classes.join(' '));\n }\n }\n }\n tElementNode = getTNode(rootTView, HEADER_OFFSET);\n if (projectableNodes !== undefined) {\n const projection = tElementNode.projection = [];\n for (let i = 0; i < this.ngContentSelectors.length; i++) {\n const nodesforSlot = projectableNodes[i];\n // Projectable nodes can be passed as array of arrays or an array of iterables (ngUpgrade\n // case). Here we do normalize passed data structure to be an array of arrays to avoid\n // complex checks down the line.\n // We also normalize the length of the passed in projectable nodes (to match the number of\n // <ng-container> slots defined by a component).\n projection.push(nodesforSlot != null ? Array.from(nodesforSlot) : null);\n }\n }\n // TODO: should LifecycleHooksFeature and other host features be generated by the compiler and\n // executed here?\n // Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref\n component = createRootComponent(componentView, this.componentDef, rootLView, rootContext, [LifecycleHooksFeature]);\n renderView(rootTView, rootLView, null);\n }\n finally {\n leaveView();\n }\n return new ComponentRef(this.componentType, component, createElementRef(tElementNode, rootLView), rootLView, tElementNode);\n }\n}\nconst componentFactoryResolver = new ComponentFactoryResolver();\n/**\n * Creates a ComponentFactoryResolver and stores it on the injector. Or, if the\n * ComponentFactoryResolver\n * already exists, retrieves the existing ComponentFactoryResolver.\n *\n * @returns The ComponentFactoryResolver instance to use\n */\nfunction injectComponentFactoryResolver() {\n return componentFactoryResolver;\n}\n/**\n * Represents an instance of a Component created via a {@link ComponentFactory}.\n *\n * `ComponentRef` provides access to the Component Instance as well other objects related to this\n * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}\n * method.\n *\n */\nclass ComponentRef extends ComponentRef$1 {\n constructor(componentType, instance, location, _rootLView, _tNode) {\n super();\n this.location = location;\n this._rootLView = _rootLView;\n this._tNode = _tNode;\n this.instance = instance;\n this.hostView = this.changeDetectorRef = new RootViewRef(_rootLView);\n this.componentType = componentType;\n }\n get injector() {\n return new NodeInjector(this._tNode, this._rootLView);\n }\n destroy() {\n this.hostView.destroy();\n }\n onDestroy(callback) {\n this.hostView.onDestroy(callback);\n }\n}\n\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/**\n * Adds decorator, constructor, and property metadata to a given type via static metadata fields\n * on the type.\n *\n * These metadata fields can later be read with Angular's `ReflectionCapabilities` API.\n *\n * Calls to `setClassMetadata` can be guarded by ngDevMode, resulting in the metadata assignments\n * being tree-shaken away during production builds.\n */\nfunction setClassMetadata(type, decorators, ctorParameters, propDecorators) {\n return noSideEffects(() => {\n const clazz = type;\n if (decorators !== null) {\n if (clazz.hasOwnProperty('decorators') && clazz.decorators !== undefined) {\n clazz.decorators.push(...decorators);\n }\n else {\n clazz.decorators = decorators;\n }\n }\n if (ctorParameters !== null) {\n // Rather than merging, clobber the existing parameters. If other projects exist which\n // use tsickle-style annotations and reflect over them in the same way, this could\n // cause issues, but that is vanishingly unlikely.\n clazz.ctorParameters = ctorParameters;\n }\n if (propDecorators !== null) {\n // The property decorator objects are merged as it is possible different fields have\n // different decorator types. Decorators on individual fields are not merged, as it's\n // also incredibly unlikely that a field will be decorated both with an Angular\n // decorator and a non-Angular decorator that's also been downleveled.\n if (clazz.hasOwnProperty('propDecorators') && clazz.propDecorators !== undefined) {\n clazz.propDecorators = Object.assign(Object.assign({}, clazz.propDecorators), propDecorators);\n }\n else {\n clazz.propDecorators = propDecorators;\n }\n }\n });\n}\n\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/**\n * Represents an instance of an `NgModule` created by an `NgModuleFactory`.\n * Provides access to the `NgModule` instance and related objects.\n *\n * @publicApi\n */\nclass NgModuleRef$1 {\n}\n/**\n * @publicApi\n *\n * @deprecated\n * This class was mostly used as a part of ViewEngine-based JIT API and is no longer needed in Ivy\n * JIT mode. See [JIT API changes due to ViewEngine deprecation](guide/deprecations#jit-api-changes)\n * for additional context. Angular provides APIs that accept NgModule classes directly (such as\n * [PlatformRef.bootstrapModule](api/core/PlatformRef#bootstrapModule) and\n * [createNgModuleRef](api/core/createNgModuleRef)), consider switching to those APIs instead of\n * using factory-based ones.\n */\nclass NgModuleFactory$1 {\n}\n\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/**\n * Map of module-id to the corresponding NgModule.\n * - In pre Ivy we track NgModuleFactory,\n * - In post Ivy we track the NgModuleType\n */\nconst modules = new Map();\n/**\n * Registers a loaded module. Should only be called from generated NgModuleFactory code.\n * @publicApi\n */\nfunction registerModuleFactory(id, factory) {\n const existing = modules.get(id);\n assertSameOrNotExisting(id, existing && existing.moduleType, factory.moduleType);\n modules.set(id, factory);\n}\nfunction assertSameOrNotExisting(id, type, incoming) {\n if (type && type !== incoming) {\n throw new Error(`Duplicate module registered for ${id} - ${stringify(type)} vs ${stringify(type.name)}`);\n }\n}\nfunction registerNgModuleType(ngModuleType) {\n const visited = new Set();\n recurse(ngModuleType);\n function recurse(ngModuleType) {\n // The imports array of an NgModule must refer to other NgModules,\n // so an error is thrown if no module definition is available.\n const def = getNgModuleDef(ngModuleType, /* throwNotFound */ true);\n const id = def.id;\n if (id !== null) {\n const existing = modules.get(id);\n assertSameOrNotExisting(id, existing, ngModuleType);\n modules.set(id, ngModuleType);\n }\n const imports = maybeUnwrapFn(def.imports);\n for (const i of imports) {\n if (!visited.has(i)) {\n visited.add(i);\n recurse(i);\n }\n }\n }\n}\nfunction clearModulesForTest() {\n modules.clear();\n}\nfunction getRegisteredNgModuleType(id) {\n return (modules.get(id) || autoRegisterModuleById[id]);\n}\n\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/**\n * Returns a new NgModuleRef instance based on the NgModule class and parent injector provided.\n * @param ngModule NgModule class.\n * @param parentInjector Optional injector instance to use as a parent for the module injector. If\n * not provided, `NullInjector` will be used instead.\n * @publicApi\n */\nfunction createNgModuleRef(ngModule, parentInjector) {\n return new NgModuleRef(ngModule, parentInjector !== null && parentInjector !== void 0 ? parentInjector : null);\n}\nclass NgModuleRef extends NgModuleRef$1 {\n constructor(ngModuleType, _parent) {\n super();\n this._parent = _parent;\n // tslint:disable-next-line:require-internal-with-underscore\n this._bootstrapComponents = [];\n this.injector = this;\n this.destroyCbs = [];\n // When bootstrapping a module we have a dependency graph that looks like this:\n // ApplicationRef -> ComponentFactoryResolver -> NgModuleRef. The problem is that if the\n // module being resolved tries to inject the ComponentFactoryResolver, it'll create a\n // circular dependency which will result in a runtime error, because the injector doesn't\n // exist yet. We work around the issue by creating the ComponentFactoryResolver ourselves\n // and providing it, rather than letting the injector resolve it.\n this.componentFactoryResolver = new ComponentFactoryResolver(this);\n const ngModuleDef = getNgModuleDef(ngModuleType);\n ngDevMode &&\n assertDefined(ngModuleDef, `NgModule '${stringify(ngModuleType)}' is not a subtype of 'NgModuleType'.`);\n this._bootstrapComponents = maybeUnwrapFn(ngModuleDef.bootstrap);\n this._r3Injector = createInjectorWithoutInjectorInstances(ngModuleType, _parent, [\n { provide: NgModuleRef$1, useValue: this }, {\n provide: ComponentFactoryResolver$1,\n useValue: this.componentFactoryResolver\n }\n ], stringify(ngModuleType));\n // We need to resolve the injector types separately from the injector creation, because\n // the module might be trying to use this ref in its constructor for DI which will cause a\n // circular error that will eventually error out, because the injector isn't created yet.\n this._r3Injector._resolveInjectorDefTypes();\n this.instance = this.get(ngModuleType);\n }\n get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND, injectFlags = InjectFlags.Default) {\n if (token === Injector || token === NgModuleRef$1 || token === INJECTOR) {\n return this;\n }\n return this._r3Injector.get(token, notFoundValue, injectFlags);\n }\n destroy() {\n ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');\n const injector = this._r3Injector;\n !injector.destroyed && injector.destroy();\n this.destroyCbs.forEach(fn => fn());\n this.destroyCbs = null;\n }\n onDestroy(callback) {\n ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');\n this.destroyCbs.push(callback);\n }\n}\nclass NgModuleFactory extends NgModuleFactory$1 {\n constructor(moduleType) {\n super();\n this.moduleType = moduleType;\n const ngModuleDef = getNgModuleDef(moduleType);\n if (ngModuleDef !== null) {\n // Register the NgModule with Angular's module registry. The location (and hence timing) of\n // this call is critical to ensure this works correctly (modules get registered when expected)\n // without bloating bundles (modules are registered when otherwise not referenced).\n //\n // In View Engine, registration occurs in the .ngfactory.js file as a side effect. This has\n // several practical consequences:\n //\n // - If an .ngfactory file is not imported from, the module won't be registered (and can be\n // tree shaken).\n // - If an .ngfactory file is imported from, the module will be registered even if an instance\n // is not actually created (via `create` below).\n // - Since an .ngfactory file in View Engine references the .ngfactory files of the NgModule's\n // imports,\n //\n // In Ivy, things are a bit different. .ngfactory files still exist for compatibility, but are\n // not a required API to use - there are other ways to obtain an NgModuleFactory for a given\n // NgModule. Thus, relying on a side effect in the .ngfactory file is not sufficient. Instead,\n // the side effect of registration is added here, in the constructor of NgModuleFactory,\n // ensuring no matter how a factory is created, the module is registered correctly.\n //\n // An alternative would be to include the registration side effect inline following the actual\n // NgModule definition. This also has the correct timing, but breaks tree-shaking - modules\n // will be registered and retained even if they're otherwise never referenced.\n registerNgModuleType(moduleType);\n }\n }\n create(parentInjector) {\n return new NgModuleRef(this.moduleType, parentInjector);\n }\n}\n\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/**\n * Bindings for pure functions are stored after regular bindings.\n *\n * |-------decls------|---------vars---------| |----- hostVars (dir1) ------|\n * ------------------------------------------------------------------------------------------\n * | nodes/refs/pipes | bindings | fn slots | injector | dir1 | host bindings | host slots |\n * ------------------------------------------------------------------------------------------\n * ^ ^\n * TView.bindingStartIndex TView.expandoStartIndex\n *\n * Pure function instructions are given an offset from the binding root. Adding the offset to the\n * binding root gives the first index where the bindings are stored. In component views, the binding\n * root is the bindingStartIndex. In host bindings, the binding root is the expandoStartIndex +\n * any directive instances + any hostVars in directives evaluated before it.\n *\n * See VIEW_DATA.md for more information about host binding resolution.\n */\n/**\n * If the value hasn't been saved, calls the pure function to store and return the\n * value. If it has been saved, returns the saved value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn Function that returns a value\n * @param thisArg Optional calling context of pureFn\n * @returns value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction0(slotOffset, pureFn, thisArg) {\n const bindingIndex = getBindingRoot() + slotOffset;\n const lView = getLView();\n return lView[bindingIndex] === NO_CHANGE ?\n updateBinding(lView, bindingIndex, thisArg ? pureFn.call(thisArg) : pureFn()) :\n getBinding(lView, bindingIndex);\n}\n/**\n * If the value of the provided exp has changed, calls the pure function to return\n * an updated value. Or if the value has not changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn Function that returns an updated value\n * @param exp Updated expression value\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction1(slotOffset, pureFn, exp, thisArg) {\n return pureFunction1Internal(getLView(), getBindingRoot(), slotOffset, pureFn, exp, thisArg);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction2(slotOffset, pureFn, exp1, exp2, thisArg) {\n return pureFunction2Internal(getLView(), getBindingRoot(), slotOffset, pureFn, exp1, exp2, thisArg);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction3(slotOffset, pureFn, exp1, exp2, exp3, thisArg) {\n return pureFunction3Internal(getLView(), getBindingRoot(), slotOffset, pureFn, exp1, exp2, exp3, thisArg);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction4(slotOffset, pureFn, exp1, exp2, exp3, exp4, thisArg) {\n return pureFunction4Internal(getLView(), getBindingRoot(), slotOffset, pureFn, exp1, exp2, exp3, exp4, thisArg);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param exp5\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction5(slotOffset, pureFn, exp1, exp2, exp3, exp4, exp5, thisArg) {\n const bindingIndex = getBindingRoot() + slotOffset;\n const lView = getLView();\n const different = bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4);\n return bindingUpdated(lView, bindingIndex + 4, exp5) || different ?\n updateBinding(lView, bindingIndex + 5, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4, exp5) :\n pureFn(exp1, exp2, exp3, exp4, exp5)) :\n getBinding(lView, bindingIndex + 5);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param exp5\n * @param exp6\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction6(slotOffset, pureFn, exp1, exp2, exp3, exp4, exp5, exp6, thisArg) {\n const bindingIndex = getBindingRoot() + slotOffset;\n const lView = getLView();\n const different = bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4);\n return bindingUpdated2(lView, bindingIndex + 4, exp5, exp6) || different ?\n updateBinding(lView, bindingIndex + 6, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4, exp5, exp6) :\n pureFn(exp1, exp2, exp3, exp4, exp5, exp6)) :\n getBinding(lView, bindingIndex + 6);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param exp5\n * @param exp6\n * @param exp7\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction7(slotOffset, pureFn, exp1, exp2, exp3, exp4, exp5, exp6, exp7, thisArg) {\n const bindingIndex = getBindingRoot() + slotOffset;\n const lView = getLView();\n let different = bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4);\n return bindingUpdated3(lView, bindingIndex + 4, exp5, exp6, exp7) || different ?\n updateBinding(lView, bindingIndex + 7, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4, exp5, exp6, exp7) :\n pureFn(exp1, exp2, exp3, exp4, exp5, exp6, exp7)) :\n getBinding(lView, bindingIndex + 7);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param exp5\n * @param exp6\n * @param exp7\n * @param exp8\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunction8(slotOffset, pureFn, exp1, exp2, exp3, exp4, exp5, exp6, exp7, exp8, thisArg) {\n const bindingIndex = getBindingRoot() + slotOffset;\n const lView = getLView();\n const different = bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4);\n return bindingUpdated4(lView, bindingIndex + 4, exp5, exp6, exp7, exp8) || different ?\n updateBinding(lView, bindingIndex + 8, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4, exp5, exp6, exp7, exp8) :\n pureFn(exp1, exp2, exp3, exp4, exp5, exp6, exp7, exp8)) :\n getBinding(lView, bindingIndex + 8);\n}\n/**\n * pureFunction instruction that can support any number of bindings.\n *\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn A pure function that takes binding values and builds an object or array\n * containing those values.\n * @param exps An array of binding values\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n * @codeGenApi\n */\nfunction ɵɵpureFunctionV(slotOffset, pureFn, exps, thisArg) {\n return pureFunctionVInternal(getLView(), getBindingRoot(), slotOffset, pureFn, exps, thisArg);\n}\n/**\n * Results of a pure function invocation are stored in LView in a dedicated slot that is initialized\n * to NO_CHANGE. In rare situations a pure pipe might throw an exception on the very first\n * invocation and not produce any valid results. In this case LView would keep holding the NO_CHANGE\n * value. The NO_CHANGE is not something that we can use in expressions / bindings thus we convert\n * it to `undefined`.\n */\nfunction getPureFunctionReturnValue(lView, returnValueIndex) {\n ngDevMode && assertIndexInRange(lView, returnValueIndex);\n const lastReturnValue = lView[returnValueIndex];\n return lastReturnValue === NO_CHANGE ? undefined : lastReturnValue;\n}\n/**\n * If the value of the provided exp has changed, calls the pure function to return\n * an updated value. Or if the value has not changed, returns cached value.\n *\n * @param lView LView in which the function is being executed.\n * @param bindingRoot Binding root index.\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn Function that returns an updated value\n * @param exp Updated expression value\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n */\nfunction pureFunction1Internal(lView, bindingRoot, slotOffset, pureFn, exp, thisArg) {\n const bindingIndex = bindingRoot + slotOffset;\n return bindingUpdated(lView, bindingIndex, exp) ?\n updateBinding(lView, bindingIndex + 1, thisArg ? pureFn.call(thisArg, exp) : pureFn(exp)) :\n getPureFunctionReturnValue(lView, bindingIndex + 1);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param lView LView in which the function is being executed.\n * @param bindingRoot Binding root index.\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n */\nfunction pureFunction2Internal(lView, bindingRoot, slotOffset, pureFn, exp1, exp2, thisArg) {\n const bindingIndex = bindingRoot + slotOffset;\n return bindingUpdated2(lView, bindingIndex, exp1, exp2) ?\n updateBinding(lView, bindingIndex + 2, thisArg ? pureFn.call(thisArg, exp1, exp2) : pureFn(exp1, exp2)) :\n getPureFunctionReturnValue(lView, bindingIndex + 2);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param lView LView in which the function is being executed.\n * @param bindingRoot Binding root index.\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n */\nfunction pureFunction3Internal(lView, bindingRoot, slotOffset, pureFn, exp1, exp2, exp3, thisArg) {\n const bindingIndex = bindingRoot + slotOffset;\n return bindingUpdated3(lView, bindingIndex, exp1, exp2, exp3) ?\n updateBinding(lView, bindingIndex + 3, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3) : pureFn(exp1, exp2, exp3)) :\n getPureFunctionReturnValue(lView, bindingIndex + 3);\n}\n/**\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param lView LView in which the function is being executed.\n * @param bindingRoot Binding root index.\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn\n * @param exp1\n * @param exp2\n * @param exp3\n * @param exp4\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n *\n */\nfunction pureFunction4Internal(lView, bindingRoot, slotOffset, pureFn, exp1, exp2, exp3, exp4, thisArg) {\n const bindingIndex = bindingRoot + slotOffset;\n return bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) ?\n updateBinding(lView, bindingIndex + 4, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4) : pureFn(exp1, exp2, exp3, exp4)) :\n getPureFunctionReturnValue(lView, bindingIndex + 4);\n}\n/**\n * pureFunction instruction that can support any number of bindings.\n *\n * If the value of any provided exp has changed, calls the pure function to return\n * an updated value. Or if no values have changed, returns cached value.\n *\n * @param lView LView in which the function is being executed.\n * @param bindingRoot Binding root index.\n * @param slotOffset the offset from binding root to the reserved slot\n * @param pureFn A pure function that takes binding values and builds an object or array\n * containing those values.\n * @param exps An array of binding values\n * @param thisArg Optional calling context of pureFn\n * @returns Updated or cached value\n */\nfunction pureFunctionVInternal(lView, bindingRoot, slotOffset, pureFn, exps, thisArg) {\n let bindingIndex = bindingRoot + slotOffset;\n let different = false;\n for (let i = 0; i < exps.length; i++) {\n bindingUpdated(lView, bindingIndex++, exps[i]) && (different = true);\n }\n return different ? updateBinding(lView, bindingIndex, pureFn.apply(thisArg, exps)) :\n getPureFunctionReturnValue(lView, bindingIndex);\n}\n\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/**\n * Create a pipe.\n *\n * @param index Pipe index where the pipe will be stored.\n * @param pipeName The name of the pipe\n * @returns T the instance of the pipe.\n *\n * @codeGenApi\n */\nfunction ɵɵpipe(index, pipeName) {\n const tView = getTView();\n let pipeDef;\n const adjustedIndex = index + HEADER_OFFSET;\n if (tView.firstCreatePass) {\n // The `getPipeDef` throws if a pipe with a given name is not found\n // (so we use non-null assertion below).\n pipeDef = getPipeDef(pipeName, tView.pipeRegistry);\n tView.data[adjustedIndex] = pipeDef;\n if (pipeDef.onDestroy) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(adjustedIndex, pipeDef.onDestroy);\n }\n }\n else {\n pipeDef = tView.data[adjustedIndex];\n }\n const pipeFactory = pipeDef.factory || (pipeDef.factory = getFactoryDef(pipeDef.type, true));\n const previousInjectImplementation = setInjectImplementation(ɵɵdirectiveInject);\n try {\n // DI for pipes is supposed to behave like directives when placed on a component\n // host node, which means that we have to disable access to `viewProviders`.\n const previousIncludeViewProviders = setIncludeViewProviders(false);\n const pipeInstance = pipeFactory();\n setIncludeViewProviders(previousIncludeViewProviders);\n store(tView, getLView(), adjustedIndex, pipeInstance);\n return pipeInstance;\n }\n finally {\n // we have to restore the injector implementation in finally, just in case the creation of the\n // pipe throws an error.\n setInjectImplementation(previousInjectImplementation);\n }\n}\n/**\n * Searches the pipe registry for a pipe with the given name. If one is found,\n * returns the pipe. Otherwise, an error is thrown because the pipe cannot be resolved.\n *\n * @param name Name of pipe to resolve\n * @param registry Full list of available pipes\n * @returns Matching PipeDef\n */\nfunction getPipeDef(name, registry) {\n if (registry) {\n for (let i = registry.length - 1; i >= 0; i--) {\n const pipeDef = registry[i];\n if (name === pipeDef.name) {\n return pipeDef;\n }\n }\n }\n if (ngDevMode) {\n const lView = getLView();\n const declarationLView = lView[DECLARATION_COMPONENT_VIEW];\n const context = declarationLView[CONTEXT];\n const component = context ? ` in the '${context.constructor.name}' component` : '';\n throw new RuntimeError(-302 /* PIPE_NOT_FOUND */, `The pipe '${name}' could not be found${component}!`);\n }\n}\n/**\n * Invokes a pipe with 1 arguments.\n *\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\n * the pipe only when an input to the pipe changes.\n *\n * @param index Pipe index where the pipe was stored on creation.\n * @param slotOffset the offset in the reserved slot space\n * @param v1 1st argument to {@link PipeTransform#transform}.\n *\n * @codeGenApi\n */\nfunction ɵɵpipeBind1(index, slotOffset, v1) {\n const adjustedIndex = index + HEADER_OFFSET;\n const lView = getLView();\n const pipeInstance = load(lView, adjustedIndex);\n return isPure(lView, adjustedIndex) ?\n pureFunction1Internal(lView, getBindingRoot(), slotOffset, pipeInstance.transform, v1, pipeInstance) :\n pipeInstance.transform(v1);\n}\n/**\n * Invokes a pipe with 2 arguments.\n *\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\n * the pipe only when an input to the pipe changes.\n *\n * @param index Pipe index where the pipe was stored on creation.\n * @param slotOffset the offset in the reserved slot space\n * @param v1 1st argument to {@link PipeTransform#transform}.\n * @param v2 2nd argument to {@link PipeTransform#transform}.\n *\n * @codeGenApi\n */\nfunction ɵɵpipeBind2(index, slotOffset, v1, v2) {\n const adjustedIndex = index + HEADER_OFFSET;\n const lView = getLView();\n const pipeInstance = load(lView, adjustedIndex);\n return isPure(lView, adjustedIndex) ?\n pureFunction2Internal(lView, getBindingRoot(), slotOffset, pipeInstance.transform, v1, v2, pipeInstance) :\n pipeInstance.transform(v1, v2);\n}\n/**\n * Invokes a pipe with 3 arguments.\n *\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\n * the pipe only when an input to the pipe changes.\n *\n * @param index Pipe index where the pipe was stored on creation.\n * @param slotOffset the offset in the reserved slot space\n * @param v1 1st argument to {@link PipeTransform#transform}.\n * @param v2 2nd argument to {@link PipeTransform#transform}.\n * @param v3 4rd argument to {@link PipeTransform#transform}.\n *\n * @codeGenApi\n */\nfunction ɵɵpipeBind3(index, slotOffset, v1, v2, v3) {\n const adjustedIndex = index + HEADER_OFFSET;\n const lView = getLView();\n const pipeInstance = load(lView, adjustedIndex);\n return isPure(lView, adjustedIndex) ?\n pureFunction3Internal(lView, getBindingRoot(), slotOffset, pipeInstance.transform, v1, v2, v3, pipeInstance) :\n pipeInstance.transform(v1, v2, v3);\n}\n/**\n * Invokes a pipe with 4 arguments.\n *\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\n * the pipe only when an input to the pipe changes.\n *\n * @param index Pipe index where the pipe was stored on creation.\n * @param slotOffset the offset in the reserved slot space\n * @param v1 1st argument to {@link PipeTransform#transform}.\n * @param v2 2nd argument to {@link PipeTransform#transform}.\n * @param v3 3rd argument to {@link PipeTransform#transform}.\n * @param v4 4th argument to {@link PipeTransform#transform}.\n *\n * @codeGenApi\n */\nfunction ɵɵpipeBind4(index, slotOffset, v1, v2, v3, v4) {\n const adjustedIndex = index + HEADER_OFFSET;\n const lView = getLView();\n const pipeInstance = load(lView, adjustedIndex);\n return isPure(lView, adjustedIndex) ? pureFunction4Internal(lView, getBindingRoot(), slotOffset, pipeInstance.transform, v1, v2, v3, v4, pipeInstance) :\n pipeInstance.transform(v1, v2, v3, v4);\n}\n/**\n * Invokes a pipe with variable number of arguments.\n *\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\n * the pipe only when an input to the pipe changes.\n *\n * @param index Pipe index where the pipe was stored on creation.\n * @param slotOffset the offset in the reserved slot space\n * @param values Array of arguments to pass to {@link PipeTransform#transform} method.\n *\n * @codeGenApi\n */\nfunction ɵɵpipeBindV(index, slotOffset, values) {\n const adjustedIndex = index + HEADER_OFFSET;\n const lView = getLView();\n const pipeInstance = load(lView, adjustedIndex);\n return isPure(lView, adjustedIndex) ?\n pureFunctionVInternal(lView, getBindingRoot(), slotOffset, pipeInstance.transform, values, pipeInstance) :\n pipeInstance.transform.apply(pipeInstance, values);\n}\nfunction isPure(lView, index) {\n return lView[TVIEW].data[index].pure;\n}\n\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 */\nclass EventEmitter_ extends Subject {\n constructor(isAsync = false) {\n super();\n this.__isAsync = isAsync;\n }\n emit(value) {\n super.next(value);\n }\n subscribe(observerOrNext, error, complete) {\n var _a, _b, _c;\n let nextFn = observerOrNext;\n let errorFn = error || (() => null);\n let completeFn = complete;\n if (observerOrNext && typeof observerOrNext === 'object') {\n const observer = observerOrNext;\n nextFn = (_a = observer.next) === null || _a === void 0 ? void 0 : _a.bind(observer);\n errorFn = (_b = observer.error) === null || _b === void 0 ? void 0 : _b.bind(observer);\n completeFn = (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.bind(observer);\n }\n if (this.__isAsync) {\n errorFn = _wrapInTimeout(errorFn);\n if (nextFn) {\n nextFn = _wrapInTimeout(nextFn);\n }\n if (completeFn) {\n completeFn = _wrapInTimeout(completeFn);\n }\n }\n const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });\n if (observerOrNext instanceof Subscription) {\n observerOrNext.add(sink);\n }\n return sink;\n }\n}\nfunction _wrapInTimeout(fn) {\n return (value) => {\n setTimeout(fn, undefined, value);\n };\n}\n/**\n * @publicApi\n */\nconst EventEmitter = EventEmitter_;\n\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 */\nfunction symbolIterator() {\n return this._results[getSymbolIterator()]();\n}\n/**\n * An unmodifiable list of items that Angular keeps up to date when the state\n * of the application changes.\n *\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\n * provide.\n *\n * Implements an iterable interface, therefore it can be used in both ES6\n * javascript `for (var i of items)` loops as well as in Angular templates with\n * `*ngFor=\"let i of myList\"`.\n *\n * Changes can be observed by subscribing to the changes `Observable`.\n *\n * NOTE: In the future this class will implement an `Observable` interface.\n *\n * @usageNotes\n * ### Example\n * ```typescript\n * @Component({...})\n * class Container {\n * @ViewChildren(Item) items:QueryList<Item>;\n * }\n * ```\n *\n * @publicApi\n */\nclass QueryList {\n /**\n * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\n * has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\n * the same result)\n */\n constructor(_emitDistinctChangesOnly = false) {\n this._emitDistinctChangesOnly = _emitDistinctChangesOnly;\n this.dirty = true;\n this._results = [];\n this._changesDetected = false;\n this._changes = null;\n this.length = 0;\n this.first = undefined;\n this.last = undefined;\n // This function should be declared on the prototype, but doing so there will cause the class\n // declaration to have side-effects and become not tree-shakable. For this reason we do it in\n // the constructor.\n // [getSymbolIterator()](): Iterator<T> { ... }\n const symbol = getSymbolIterator();\n const proto = QueryList.prototype;\n if (!proto[symbol])\n proto[symbol] = symbolIterator;\n }\n /**\n * Returns `Observable` of `QueryList` notifying the subscriber of changes.\n */\n get changes() {\n return this._changes || (this._changes = new EventEmitter());\n }\n /**\n * Returns the QueryList entry at `index`.\n */\n get(index) {\n return this._results[index];\n }\n /**\n * See\n * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n */\n map(fn) {\n return this._results.map(fn);\n }\n /**\n * See\n * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)\n */\n filter(fn) {\n return this._results.filter(fn);\n }\n /**\n * See\n * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\n */\n find(fn) {\n return this._results.find(fn);\n }\n /**\n * See\n * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n */\n reduce(fn, init) {\n return this._results.reduce(fn, init);\n }\n /**\n * See\n * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\n */\n forEach(fn) {\n this._results.forEach(fn);\n }\n /**\n * See\n * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n */\n some(fn) {\n return this._results.some(fn);\n }\n /**\n * Returns a copy of the internal results list as an Array.\n */\n toArray() {\n return this._results.slice();\n }\n toString() {\n return this._results.toString();\n }\n /**\n * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\n * on change detection, it will not notify of changes to the queries, unless a new change\n * occurs.\n *\n * @param resultsTree The query results to store\n * @param identityAccessor Optional function for extracting stable object identity from a value\n * in the array. This function is executed for each element of the query result list while\n * comparing current query list with the new one (provided as a first argument of the `reset`\n * function) to detect if the lists are different. If the function is not provided, elements\n * are compared as is (without any pre-processing).\n */\n reset(resultsTree, identityAccessor) {\n // Cast to `QueryListInternal` so that we can mutate fields which are readonly for the usage of\n // QueryList (but not for QueryList itself.)\n const self = this;\n self.dirty = false;\n const newResultFlat = flatten(resultsTree);\n if (this._changesDetected = !arrayEquals(self._results, newResultFlat, identityAccessor)) {\n self._results = newResultFlat;\n self.length = newResultFlat.length;\n self.last = newResultFlat[this.length - 1];\n self.first = newResultFlat[0];\n }\n }\n /**\n * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\n */\n notifyOnChanges() {\n if (this._changes && (this._changesDetected || !this._emitDistinctChangesOnly))\n this._changes.emit(this);\n }\n /** internal */\n setDirty() {\n this.dirty = true;\n }\n /** internal */\n destroy() {\n this.changes.complete();\n this.changes.unsubscribe();\n }\n}\nSymbol.iterator;\n\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/**\n * Represents an embedded template that can be used to instantiate embedded views.\n * To instantiate embedded views based on a template, use the `ViewContainerRef`\n * method `createEmbeddedView()`.\n *\n * Access a `TemplateRef` instance by placing a directive on an `<ng-template>`\n * element (or directive prefixed with `*`). The `TemplateRef` for the embedded view\n * is injected into the constructor of the directive,\n * using the `TemplateRef` token.\n *\n * You can also use a `Query` to find a `TemplateRef` associated with\n * a component or a directive.\n *\n * @see `ViewContainerRef`\n * @see [Navigate the Component Tree with DI](guide/dependency-injection-navtree)\n *\n * @publicApi\n */\nclass TemplateRef {\n}\n/**\n * @internal\n * @nocollapse\n */\nTemplateRef.__NG_ELEMENT_ID__ = injectTemplateRef;\nconst ViewEngineTemplateRef = TemplateRef;\n// TODO(alxhub): combine interface and implementation. Currently this is challenging since something\n// in g3 depends on them being separate.\nconst R3TemplateRef = class TemplateRef extends ViewEngineTemplateRef {\n constructor(_declarationLView, _declarationTContainer, elementRef) {\n super();\n this._declarationLView = _declarationLView;\n this._declarationTContainer = _declarationTContainer;\n this.elementRef = elementRef;\n }\n createEmbeddedView(context) {\n const embeddedTView = this._declarationTContainer.tViews;\n const embeddedLView = createLView(this._declarationLView, embeddedTView, context, 16 /* CheckAlways */, null, embeddedTView.declTNode, null, null, null, null);\n const declarationLContainer = this._declarationLView[this._declarationTContainer.index];\n ngDevMode && assertLContainer(declarationLContainer);\n embeddedLView[DECLARATION_LCONTAINER] = declarationLContainer;\n const declarationViewLQueries = this._declarationLView[QUERIES];\n if (declarationViewLQueries !== null) {\n embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);\n }\n renderView(embeddedTView, embeddedLView, context);\n return new ViewRef$1(embeddedLView);\n }\n};\n/**\n * Creates a TemplateRef given a node.\n *\n * @returns The TemplateRef instance to use\n */\nfunction injectTemplateRef() {\n return createTemplateRef(getCurrentTNode(), getLView());\n}\n/**\n * Creates a TemplateRef and stores it on the injector.\n *\n * @param hostTNode The node on which a TemplateRef is requested\n * @param hostLView The `LView` to which the node belongs\n * @returns The TemplateRef instance or null if we can't create a TemplateRef on a given node type\n */\nfunction createTemplateRef(hostTNode, hostLView) {\n if (hostTNode.type & 4 /* Container */) {\n ngDevMode && assertDefined(hostTNode.tViews, 'TView must be allocated');\n return new R3TemplateRef(hostLView, hostTNode, createElementRef(hostTNode, hostLView));\n }\n return null;\n}\n\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/**\n * Represents a container where one or more views can be attached to a component.\n *\n * Can contain *host views* (created by instantiating a\n * component with the `createComponent()` method), and *embedded views*\n * (created by instantiating a `TemplateRef` with the `createEmbeddedView()` method).\n *\n * A view container instance can contain other view containers,\n * creating a [view hierarchy](guide/glossary#view-tree).\n *\n * @see `ComponentRef`\n * @see `EmbeddedViewRef`\n *\n * @publicApi\n */\nclass ViewContainerRef {\n}\n/**\n * @internal\n * @nocollapse\n */\nViewContainerRef.__NG_ELEMENT_ID__ = injectViewContainerRef;\n/**\n * Creates a ViewContainerRef and stores it on the injector. Or, if the ViewContainerRef\n * already exists, retrieves the existing ViewContainerRef.\n *\n * @returns The ViewContainerRef instance to use\n */\nfunction injectViewContainerRef() {\n const previousTNode = getCurrentTNode();\n return createContainerRef(previousTNode, getLView());\n}\nconst VE_ViewContainerRef = ViewContainerRef;\n// TODO(alxhub): cleaning up this indirection triggers a subtle bug in Closure in g3. Once the fix\n// for that lands, this can be cleaned up.\nconst R3ViewContainerRef = class ViewContainerRef extends VE_ViewContainerRef {\n constructor(_lContainer, _hostTNode, _hostLView) {\n super();\n this._lContainer = _lContainer;\n this._hostTNode = _hostTNode;\n this._hostLView = _hostLView;\n }\n get element() {\n return createElementRef(this._hostTNode, this._hostLView);\n }\n get injector() {\n return new NodeInjector(this._hostTNode, this._hostLView);\n }\n /** @deprecated No replacement */\n get parentInjector() {\n const parentLocation = getParentInjectorLocation(this._hostTNode, this._hostLView);\n if (hasParentInjector(parentLocation)) {\n const parentView = getParentInjectorView(parentLocation, this._hostLView);\n const injectorIndex = getParentInjectorIndex(parentLocation);\n ngDevMode && assertNodeInjector(parentView, injectorIndex);\n const parentTNode = parentView[TVIEW].data[injectorIndex + 8 /* TNODE */];\n return new NodeInjector(parentTNode, parentView);\n }\n else {\n return new NodeInjector(null, this._hostLView);\n }\n }\n clear() {\n while (this.length > 0) {\n this.remove(this.length - 1);\n }\n }\n get(index) {\n const viewRefs = getViewRefs(this._lContainer);\n return viewRefs !== null && viewRefs[index] || null;\n }\n get length() {\n return this._lContainer.length - CONTAINER_HEADER_OFFSET;\n }\n createEmbeddedView(templateRef, context, index) {\n const viewRef = templateRef.createEmbeddedView(context || {});\n this.insert(viewRef, index);\n return viewRef;\n }\n createComponent(componentFactoryOrType, indexOrOptions, injector, projectableNodes, ngModuleRef) {\n const isComponentFactory = componentFactoryOrType && !isType(componentFactoryOrType);\n let index;\n // This function supports 2 signatures and we need to handle options correctly for both:\n // 1. When first argument is a Component type. This signature also requires extra\n // options to be provided as as object (more ergonomic option).\n // 2. First argument is a Component factory. In this case extra options are represented as\n // positional arguments. This signature is less ergonomic and will be deprecated.\n if (isComponentFactory) {\n if (ngDevMode) {\n assertEqual(typeof indexOrOptions !== 'object', true, 'It looks like Component factory was provided as the first argument ' +\n 'and an options object as the second argument. This combination of arguments ' +\n 'is incompatible. You can either change the first argument to provide Component ' +\n 'type or change the second argument to be a number (representing an index at ' +\n 'which to insert the new component\\'s host view into this container)');\n }\n index = indexOrOptions;\n }\n else {\n if (ngDevMode) {\n assertDefined(getComponentDef(componentFactoryOrType), `Provided Component class doesn't contain Component definition. ` +\n `Please check whether provided class has @Component decorator.`);\n assertEqual(typeof indexOrOptions !== 'number', true, 'It looks like Component type was provided as the first argument ' +\n 'and a number (representing an index at which to insert the new component\\'s ' +\n 'host view into this container as the second argument. This combination of arguments ' +\n 'is incompatible. Please use an object as the second argument instead.');\n }\n const options = (indexOrOptions || {});\n index = options.index;\n injector = options.injector;\n projectableNodes = options.projectableNodes;\n ngModuleRef = options.ngModuleRef;\n }\n const componentFactory = isComponentFactory ?\n componentFactoryOrType :\n new ComponentFactory(getComponentDef(componentFactoryOrType));\n const contextInjector = injector || this.parentInjector;\n // If an `NgModuleRef` is not provided explicitly, try retrieving it from the DI tree.\n if (!ngModuleRef && componentFactory.ngModule == null) {\n // For the `ComponentFactory` case, entering this logic is very unlikely, since we expect that\n // an instance of a `ComponentFactory`, resolved via `ComponentFactoryResolver` would have an\n // `ngModule` field. This is possible in some test scenarios and potentially in some JIT-based\n // use-cases. For the `ComponentFactory` case we preserve backwards-compatibility and try\n // using a provided injector first, then fall back to the parent injector of this\n // `ViewContainerRef` instance.\n //\n // For the factory-less case, it's critical to establish a connection with the module\n // injector tree (by retrieving an instance of an `NgModuleRef` and accessing its injector),\n // so that a component can use DI tokens provided in MgModules. For this reason, we can not\n // rely on the provided injector, since it might be detached from the DI tree (for example, if\n // it was created via `Injector.create` without specifying a parent injector, or if an\n // injector is retrieved from an `NgModuleRef` created via `createNgModuleRef` using an\n // NgModule outside of a module tree). Instead, we always use `ViewContainerRef`'s parent\n // injector, which is normally connected to the DI tree, which includes module injector\n // subtree.\n const _injector = isComponentFactory ? contextInjector : this.parentInjector;\n // DO NOT REFACTOR. The code here used to have a `injector.get(NgModuleRef, null) ||\n // undefined` expression which seems to cause internal google apps to fail. This is documented\n // in the following internal bug issue: go/b/142967802\n const result = _injector.get(NgModuleRef$1, null);\n if (result) {\n ngModuleRef = result;\n }\n }\n const componentRef = componentFactory.create(contextInjector, projectableNodes, undefined, ngModuleRef);\n this.insert(componentRef.hostView, index);\n return componentRef;\n }\n insert(viewRef, index) {\n const lView = viewRef._lView;\n const tView = lView[TVIEW];\n if (ngDevMode && viewRef.destroyed) {\n throw new Error('Cannot insert a destroyed View in a ViewContainer!');\n }\n if (viewAttachedToContainer(lView)) {\n // If view is already attached, detach it first so we clean up references appropriately.\n const prevIdx = this.indexOf(viewRef);\n // A view might be attached either to this or a different container. The `prevIdx` for\n // those cases will be:\n // equal to -1 for views attached to this ViewContainerRef\n // >= 0 for views attached to a different ViewContainerRef\n if (prevIdx !== -1) {\n this.detach(prevIdx);\n }\n else {\n const prevLContainer = lView[PARENT];\n ngDevMode &&\n assertEqual(isLContainer(prevLContainer), true, 'An attached view should have its PARENT point to a container.');\n // We need to re-create a R3ViewContainerRef instance since those are not stored on\n // LView (nor anywhere else).\n const prevVCRef = new R3ViewContainerRef(prevLContainer, prevLContainer[T_HOST], prevLContainer[PARENT]);\n prevVCRef.detach(prevVCRef.indexOf(viewRef));\n }\n }\n // Logical operation of adding `LView` to `LContainer`\n const adjustedIdx = this._adjustIndex(index);\n const lContainer = this._lContainer;\n insertView(tView, lView, lContainer, adjustedIdx);\n // Physical operation of adding the DOM nodes.\n const beforeNode = getBeforeNodeForView(adjustedIdx, lContainer);\n const renderer = lView[RENDERER];\n const parentRNode = nativeParentNode(renderer, lContainer[NATIVE]);\n if (parentRNode !== null) {\n addViewToContainer(tView, lContainer[T_HOST], renderer, lView, parentRNode, beforeNode);\n }\n viewRef.attachToViewContainerRef();\n addToArray(getOrCreateViewRefs(lContainer), adjustedIdx, viewRef);\n return viewRef;\n }\n move(viewRef, newIndex) {\n if (ngDevMode && viewRef.destroyed) {\n throw new Error('Cannot move a destroyed View in a ViewContainer!');\n }\n return this.insert(viewRef, newIndex);\n }\n indexOf(viewRef) {\n const viewRefsArr = getViewRefs(this._lContainer);\n return viewRefsArr !== null ? viewRefsArr.indexOf(viewRef) : -1;\n }\n remove(index) {\n const adjustedIdx = this._adjustIndex(index, -1);\n const detachedView = detachView(this._lContainer, adjustedIdx);\n if (detachedView) {\n // Before destroying the view, remove it from the container's array of `ViewRef`s.\n // This ensures the view container length is updated before calling\n // `destroyLView`, which could recursively call view container methods that\n // rely on an accurate container length.\n // (e.g. a method on this view container being called by a child directive's OnDestroy\n // lifecycle hook)\n removeFromArray(getOrCreateViewRefs(this._lContainer), adjustedIdx);\n destroyLView(detachedView[TVIEW], detachedView);\n }\n }\n detach(index) {\n const adjustedIdx = this._adjustIndex(index, -1);\n const view = detachView(this._lContainer, adjustedIdx);\n const wasDetached = view && removeFromArray(getOrCreateViewRefs(this._lContainer), adjustedIdx) != null;\n return wasDetached ? new ViewRef$1(view) : null;\n }\n _adjustIndex(index, shift = 0) {\n if (index == null) {\n return this.length + shift;\n }\n if (ngDevMode) {\n assertGreaterThan(index, -1, `ViewRef index must be positive, got ${index}`);\n // +1 because it's legal to insert at the end.\n assertLessThan(index, this.length + 1 + shift, 'index');\n }\n return index;\n }\n};\nfunction getViewRefs(lContainer) {\n return lContainer[VIEW_REFS];\n}\nfunction getOrCreateViewRefs(lContainer) {\n return (lContainer[VIEW_REFS] || (lContainer[VIEW_REFS] = []));\n}\n/**\n * Creates a ViewContainerRef and stores it on the injector.\n *\n * @param ViewContainerRefToken The ViewContainerRef type\n * @param ElementRefToken The ElementRef type\n * @param hostTNode The node that is requesting a ViewContainerRef\n * @param hostLView The view to which the node belongs\n * @returns The ViewContainerRef instance to use\n */\nfunction createContainerRef(hostTNode, hostLView) {\n ngDevMode && assertTNodeType(hostTNode, 12 /* AnyContainer */ | 3 /* AnyRNode */);\n let lContainer;\n const slotValue = hostLView[hostTNode.index];\n if (isLContainer(slotValue)) {\n // If the host is a container, we don't need to create a new LContainer\n lContainer = slotValue;\n }\n else {\n let commentNode;\n // If the host is an element container, the native host element is guaranteed to be a\n // comment and we can reuse that comment as anchor element for the new LContainer.\n // The comment node in question is already part of the DOM structure so we don't need to append\n // it again.\n if (hostTNode.type & 8 /* ElementContainer */) {\n commentNode = unwrapRNode(slotValue);\n }\n else {\n // If the host is a regular element, we have to insert a comment node manually which will\n // be used as an anchor when inserting elements. In this specific case we use low-level DOM\n // manipulation to insert it.\n const renderer = hostLView[RENDERER];\n ngDevMode && ngDevMode.rendererCreateComment++;\n commentNode = renderer.createComment(ngDevMode ? 'container' : '');\n const hostNative = getNativeByTNode(hostTNode, hostLView);\n const parentOfHostNative = nativeParentNode(renderer, hostNative);\n nativeInsertBefore(renderer, parentOfHostNative, commentNode, nativeNextSibling(renderer, hostNative), false);\n }\n hostLView[hostTNode.index] = lContainer =\n createLContainer(slotValue, hostLView, commentNode, hostTNode);\n addToViewTree(hostLView, lContainer);\n }\n return new R3ViewContainerRef(lContainer, hostTNode, hostLView);\n}\n\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// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$1 = 1;\n\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// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd = 1;\n\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 */\nconst unusedValueToPlacateAjd = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd;\nclass LQuery_ {\n constructor(queryList) {\n this.queryList = queryList;\n this.matches = null;\n }\n clone() {\n return new LQuery_(this.queryList);\n }\n setDirty() {\n this.queryList.setDirty();\n }\n}\nclass LQueries_ {\n constructor(queries = []) {\n this.queries = queries;\n }\n createEmbeddedView(tView) {\n const tQueries = tView.queries;\n if (tQueries !== null) {\n const noOfInheritedQueries = tView.contentQueries !== null ? tView.contentQueries[0] : tQueries.length;\n const viewLQueries = [];\n // An embedded view has queries propagated from a declaration view at the beginning of the\n // TQueries collection and up until a first content query declared in the embedded view. Only\n // propagated LQueries are created at this point (LQuery corresponding to declared content\n // queries will be instantiated from the content query instructions for each directive).\n for (let i = 0; i < noOfInheritedQueries; i++) {\n const tQuery = tQueries.getByIndex(i);\n const parentLQuery = this.queries[tQuery.indexInDeclarationView];\n viewLQueries.push(parentLQuery.clone());\n }\n return new LQueries_(viewLQueries);\n }\n return null;\n }\n insertView(tView) {\n this.dirtyQueriesWithMatches(tView);\n }\n detachView(tView) {\n this.dirtyQueriesWithMatches(tView);\n }\n dirtyQueriesWithMatches(tView) {\n for (let i = 0; i < this.queries.length; i++) {\n if (getTQuery(tView, i).matches !== null) {\n this.queries[i].setDirty();\n }\n }\n }\n}\nclass TQueryMetadata_ {\n constructor(predicate, flags, read = null) {\n this.predicate = predicate;\n this.flags = flags;\n this.read = read;\n }\n}\nclass TQueries_ {\n constructor(queries = []) {\n this.queries = queries;\n }\n elementStart(tView, tNode) {\n ngDevMode &&\n assertFirstCreatePass(tView, 'Queries should collect results on the first template pass only');\n for (let i = 0; i < this.queries.length; i++) {\n this.queries[i].elementStart(tView, tNode);\n }\n }\n elementEnd(tNode) {\n for (let i = 0; i < this.queries.length; i++) {\n this.queries[i].elementEnd(tNode);\n }\n }\n embeddedTView(tNode) {\n let queriesForTemplateRef = null;\n for (let i = 0; i < this.length; i++) {\n const childQueryIndex = queriesForTemplateRef !== null ? queriesForTemplateRef.length : 0;\n const tqueryClone = this.getByIndex(i).embeddedTView(tNode, childQueryIndex);\n if (tqueryClone) {\n tqueryClone.indexInDeclarationView = i;\n if (queriesForTemplateRef !== null) {\n queriesForTemplateRef.push(tqueryClone);\n }\n else {\n queriesForTemplateRef = [tqueryClone];\n }\n }\n }\n return queriesForTemplateRef !== null ? new TQueries_(queriesForTemplateRef) : null;\n }\n template(tView, tNode) {\n ngDevMode &&\n assertFirstCreatePass(tView, 'Queries should collect results on the first template pass only');\n for (let i = 0; i < this.queries.length; i++) {\n this.queries[i].template(tView, tNode);\n }\n }\n getByIndex(index) {\n ngDevMode && assertIndexInRange(this.queries, index);\n return this.queries[index];\n }\n get length() {\n return this.queries.length;\n }\n track(tquery) {\n this.queries.push(tquery);\n }\n}\nclass TQuery_ {\n constructor(metadata, nodeIndex = -1) {\n this.metadata = metadata;\n this.matches = null;\n this.indexInDeclarationView = -1;\n this.crossesNgTemplate = false;\n /**\n * A flag indicating if a given query still applies to nodes it is crossing. We use this flag\n * (alongside with _declarationNodeIndex) to know when to stop applying content queries to\n * elements in a template.\n */\n this._appliesToNextNode = true;\n this._declarationNodeIndex = nodeIndex;\n }\n elementStart(tView, tNode) {\n if (this.isApplyingToNode(tNode)) {\n this.matchTNode(tView, tNode);\n }\n }\n elementEnd(tNode) {\n if (this._declarationNodeIndex === tNode.index) {\n this._appliesToNextNode = false;\n }\n }\n template(tView, tNode) {\n this.elementStart(tView, tNode);\n }\n embeddedTView(tNode, childQueryIndex) {\n if (this.isApplyingToNode(tNode)) {\n this.crossesNgTemplate = true;\n // A marker indicating a `<ng-template>` element (a placeholder for query results from\n // embedded views created based on this `<ng-template>`).\n this.addMatch(-tNode.index, childQueryIndex);\n return new TQuery_(this.metadata);\n }\n return null;\n }\n isApplyingToNode(tNode) {\n if (this._appliesToNextNode &&\n (this.metadata.flags & 1 /* descendants */) !== 1 /* descendants */) {\n const declarationNodeIdx = this._declarationNodeIndex;\n let parent = tNode.parent;\n // Determine if a given TNode is a \"direct\" child of a node on which a content query was\n // declared (only direct children of query's host node can match with the descendants: false\n // option). There are 3 main use-case / conditions to consider here:\n // - <needs-target><i #target></i></needs-target>: here <i #target> parent node is a query\n // host node;\n // - <needs-target><ng-template [ngIf]=\"true\"><i #target></i></ng-template></needs-target>:\n // here <i #target> parent node is null;\n // - <needs-target><ng-container><i #target></i></ng-container></needs-target>: here we need\n // to go past `<ng-container>` to determine <i #target> parent node (but we shouldn't traverse\n // up past the query's host node!).\n while (parent !== null && (parent.type & 8 /* ElementContainer */) &&\n parent.index !== declarationNodeIdx) {\n parent = parent.parent;\n }\n return declarationNodeIdx === (parent !== null ? parent.index : -1);\n }\n return this._appliesToNextNode;\n }\n matchTNode(tView, tNode) {\n const predicate = this.metadata.predicate;\n if (Array.isArray(predicate)) {\n for (let i = 0; i < predicate.length; i++) {\n const name = predicate[i];\n this.matchTNodeWithReadOption(tView, tNode, getIdxOfMatchingSelector(tNode, name));\n // Also try matching the name to a provider since strings can be used as DI tokens too.\n this.matchTNodeWithReadOption(tView, tNode, locateDirectiveOrProvider(tNode, tView, name, false, false));\n }\n }\n else {\n if (predicate === TemplateRef) {\n if (tNode.type & 4 /* Container */) {\n this.matchTNodeWithReadOption(tView, tNode, -1);\n }\n }\n else {\n this.matchTNodeWithReadOption(tView, tNode, locateDirectiveOrProvider(tNode, tView, predicate, false, false));\n }\n }\n }\n matchTNodeWithReadOption(tView, tNode, nodeMatchIdx) {\n if (nodeMatchIdx !== null) {\n const read = this.metadata.read;\n if (read !== null) {\n if (read === ElementRef || read === ViewContainerRef ||\n read === TemplateRef && (tNode.type & 4 /* Container */)) {\n this.addMatch(tNode.index, -2);\n }\n else {\n const directiveOrProviderIdx = locateDirectiveOrProvider(tNode, tView, read, false, false);\n if (directiveOrProviderIdx !== null) {\n this.addMatch(tNode.index, directiveOrProviderIdx);\n }\n }\n }\n else {\n this.addMatch(tNode.index, nodeMatchIdx);\n }\n }\n }\n addMatch(tNodeIdx, matchIdx) {\n if (this.matches === null) {\n this.matches = [tNodeIdx, matchIdx];\n }\n else {\n this.matches.push(tNodeIdx, matchIdx);\n }\n }\n}\n/**\n * Iterates over local names for a given node and returns directive index\n * (or -1 if a local name points to an element).\n *\n * @param tNode static data of a node to check\n * @param selector selector to match\n * @returns directive index, -1 or null if a selector didn't match any of the local names\n */\nfunction getIdxOfMatchingSelector(tNode, selector) {\n const localNames = tNode.localNames;\n if (localNames !== null) {\n for (let i = 0; i < localNames.length; i += 2) {\n if (localNames[i] === selector) {\n return localNames[i + 1];\n }\n }\n }\n return null;\n}\nfunction createResultByTNodeType(tNode, currentView) {\n if (tNode.type & (3 /* AnyRNode */ | 8 /* ElementContainer */)) {\n return createElementRef(tNode, currentView);\n }\n else if (tNode.type & 4 /* Container */) {\n return createTemplateRef(tNode, currentView);\n }\n return null;\n}\nfunction createResultForNode(lView, tNode, matchingIdx, read) {\n if (matchingIdx === -1) {\n // if read token and / or strategy is not specified, detect it using appropriate tNode type\n return createResultByTNodeType(tNode, lView);\n }\n else if (matchingIdx === -2) {\n // read a special token from a node injector\n return createSpecialToken(lView, tNode, read);\n }\n else {\n // read a token\n return getNodeInjectable(lView, lView[TVIEW], matchingIdx, tNode);\n }\n}\nfunction createSpecialToken(lView, tNode, read) {\n if (read === ElementRef) {\n return createElementRef(tNode, lView);\n }\n else if (read === TemplateRef) {\n return createTemplateRef(tNode, lView);\n }\n else if (read === ViewContainerRef) {\n ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */);\n return createContainerRef(tNode, lView);\n }\n else {\n ngDevMode &&\n throwError(`Special token to read should be one of ElementRef, TemplateRef or ViewContainerRef but got ${stringify(read)}.`);\n }\n}\n/**\n * A helper function that creates query results for a given view. This function is meant to do the\n * processing once and only once for a given view instance (a set of results for a given view\n * doesn't change).\n */\nfunction materializeViewResults(tView, lView, tQuery, queryIndex) {\n const lQuery = lView[QUERIES].queries[queryIndex];\n if (lQuery.matches === null) {\n const tViewData = tView.data;\n const tQueryMatches = tQuery.matches;\n const result = [];\n for (let i = 0; i < tQueryMatches.length; i += 2) {\n const matchedNodeIdx = tQueryMatches[i];\n if (matchedNodeIdx < 0) {\n // we at the <ng-template> marker which might have results in views created based on this\n // <ng-template> - those results will be in separate views though, so here we just leave\n // null as a placeholder\n result.push(null);\n }\n else {\n ngDevMode && assertIndexInRange(tViewData, matchedNodeIdx);\n const tNode = tViewData[matchedNodeIdx];\n result.push(createResultForNode(lView, tNode, tQueryMatches[i + 1], tQuery.metadata.read));\n }\n }\n lQuery.matches = result;\n }\n return lQuery.matches;\n}\n/**\n * A helper function that collects (already materialized) query results from a tree of views,\n * starting with a provided LView.\n */\nfunction collectQueryResults(tView, lView, queryIndex, result) {\n const tQuery = tView.queries.getByIndex(queryIndex);\n const tQueryMatches = tQuery.matches;\n if (tQueryMatches !== null) {\n const lViewResults = materializeViewResults(tView, lView, tQuery, queryIndex);\n for (let i = 0; i < tQueryMatches.length; i += 2) {\n const tNodeIdx = tQueryMatches[i];\n if (tNodeIdx > 0) {\n result.push(lViewResults[i / 2]);\n }\n else {\n const childQueryIndex = tQueryMatches[i + 1];\n const declarationLContainer = lView[-tNodeIdx];\n ngDevMode && assertLContainer(declarationLContainer);\n // collect matches for views inserted in this container\n for (let i = CONTAINER_HEADER_OFFSET; i < declarationLContainer.length; i++) {\n const embeddedLView = declarationLContainer[i];\n if (embeddedLView[DECLARATION_LCONTAINER] === embeddedLView[PARENT]) {\n collectQueryResults(embeddedLView[TVIEW], embeddedLView, childQueryIndex, result);\n }\n }\n // collect matches for views created from this declaration container and inserted into\n // different containers\n if (declarationLContainer[MOVED_VIEWS] !== null) {\n const embeddedLViews = declarationLContainer[MOVED_VIEWS];\n for (let i = 0; i < embeddedLViews.length; i++) {\n const embeddedLView = embeddedLViews[i];\n collectQueryResults(embeddedLView[TVIEW], embeddedLView, childQueryIndex, result);\n }\n }\n }\n }\n }\n return result;\n}\n/**\n * Refreshes a query by combining matches from all active views and removing matches from deleted\n * views.\n *\n * @returns `true` if a query got dirty during change detection or if this is a static query\n * resolving in creation mode, `false` otherwise.\n *\n * @codeGenApi\n */\nfunction ɵɵqueryRefresh(queryList) {\n const lView = getLView();\n const tView = getTView();\n const queryIndex = getCurrentQueryIndex();\n setCurrentQueryIndex(queryIndex + 1);\n const tQuery = getTQuery(tView, queryIndex);\n if (queryList.dirty &&\n (isCreationMode(lView) ===\n ((tQuery.metadata.flags & 2 /* isStatic */) === 2 /* isStatic */))) {\n if (tQuery.matches === null) {\n queryList.reset([]);\n }\n else {\n const result = tQuery.crossesNgTemplate ?\n collectQueryResults(tView, lView, queryIndex, []) :\n materializeViewResults(tView, lView, tQuery, queryIndex);\n queryList.reset(result, unwrapElementRef);\n queryList.notifyOnChanges();\n }\n return true;\n }\n return false;\n}\n/**\n * Creates new QueryList, stores the reference in LView and returns QueryList.\n *\n * @param predicate The type for which the query will search\n * @param flags Flags associated with the query\n * @param read What to save in the query\n *\n * @codeGenApi\n */\nfunction ɵɵviewQuery(predicate, flags, read) {\n ngDevMode && assertNumber(flags, 'Expecting flags');\n const tView = getTView();\n if (tView.firstCreatePass) {\n createTQuery(tView, new TQueryMetadata_(predicate, flags, read), -1);\n if ((flags & 2 /* isStatic */) === 2 /* isStatic */) {\n tView.staticViewQueries = true;\n }\n }\n createLQuery(tView, getLView(), flags);\n}\n/**\n * Registers a QueryList, associated with a content query, for later refresh (part of a view\n * refresh).\n *\n * @param directiveIndex Current directive index\n * @param predicate The type for which the query will search\n * @param flags Flags associated with the query\n * @param read What to save in the query\n * @returns QueryList<T>\n *\n * @codeGenApi\n */\nfunction ɵɵcontentQuery(directiveIndex, predicate, flags, read) {\n ngDevMode && assertNumber(flags, 'Expecting flags');\n const tView = getTView();\n if (tView.firstCreatePass) {\n const tNode = getCurrentTNode();\n createTQuery(tView, new TQueryMetadata_(predicate, flags, read), tNode.index);\n saveContentQueryAndDirectiveIndex(tView, directiveIndex);\n if ((flags & 2 /* isStatic */) === 2 /* isStatic */) {\n tView.staticContentQueries = true;\n }\n }\n createLQuery(tView, getLView(), flags);\n}\n/**\n * Loads a QueryList corresponding to the current view or content query.\n *\n * @codeGenApi\n */\nfunction ɵɵloadQuery() {\n return loadQueryInternal(getLView(), getCurrentQueryIndex());\n}\nfunction loadQueryInternal(lView, queryIndex) {\n ngDevMode &&\n assertDefined(lView[QUERIES], 'LQueries should be defined when trying to load a query');\n ngDevMode && assertIndexInRange(lView[QUERIES].queries, queryIndex);\n return lView[QUERIES].queries[queryIndex].queryList;\n}\nfunction createLQuery(tView, lView, flags) {\n const queryList = new QueryList((flags & 4 /* emitDistinctChangesOnly */) === 4 /* emitDistinctChangesOnly */);\n storeCleanupWithContext(tView, lView, queryList, queryList.destroy);\n if (lView[QUERIES] === null)\n lView[QUERIES] = new LQueries_();\n lView[QUERIES].queries.push(new LQuery_(queryList));\n}\nfunction createTQuery(tView, metadata, nodeIndex) {\n if (tView.queries === null)\n tView.queries = new TQueries_();\n tView.queries.track(new TQuery_(metadata, nodeIndex));\n}\nfunction saveContentQueryAndDirectiveIndex(tView, directiveIndex) {\n const tViewContentQueries = tView.contentQueries || (tView.contentQueries = []);\n const lastSavedDirectiveIndex = tViewContentQueries.length ? tViewContentQueries[tViewContentQueries.length - 1] : -1;\n if (directiveIndex !== lastSavedDirectiveIndex) {\n tViewContentQueries.push(tView.queries.length - 1, directiveIndex);\n }\n}\nfunction getTQuery(tView, index) {\n ngDevMode && assertDefined(tView.queries, 'TQueries must be defined to retrieve a TQuery');\n return tView.queries.getByIndex(index);\n}\n\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/**\n * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the\n * `<ng-template>` element.\n *\n * @codeGenApi\n */\nfunction ɵɵtemplateRefExtractor(tNode, lView) {\n return createTemplateRef(tNode, lView);\n}\n\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\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/**\n * A mapping of the @angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of @angular/core.\n */\nconst angularCoreEnv = (() => ({\n 'ɵɵattribute': ɵɵattribute,\n 'ɵɵattributeInterpolate1': ɵɵattributeInterpolate1,\n 'ɵɵattributeInterpolate2': ɵɵattributeInterpolate2,\n 'ɵɵattributeInterpolate3': ɵɵattributeInterpolate3,\n 'ɵɵattributeInterpolate4': ɵɵattributeInterpolate4,\n 'ɵɵattributeInterpolate5': ɵɵattributeInterpolate5,\n 'ɵɵattributeInterpolate6': ɵɵattributeInterpolate6,\n 'ɵɵattributeInterpolate7': ɵɵattributeInterpolate7,\n 'ɵɵattributeInterpolate8': ɵɵattributeInterpolate8,\n 'ɵɵattributeInterpolateV': ɵɵattributeInterpolateV,\n 'ɵɵdefineComponent': ɵɵdefineComponent,\n 'ɵɵdefineDirective': ɵɵdefineDirective,\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵdefineNgModule': ɵɵdefineNgModule,\n 'ɵɵdefinePipe': ɵɵdefinePipe,\n 'ɵɵdirectiveInject': ɵɵdirectiveInject,\n 'ɵɵgetInheritedFactory': ɵɵgetInheritedFactory,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵinjectAttribute': ɵɵinjectAttribute,\n 'ɵɵinvalidFactory': ɵɵinvalidFactory,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n 'ɵɵtemplateRefExtractor': ɵɵtemplateRefExtractor,\n 'ɵɵNgOnChangesFeature': ɵɵNgOnChangesFeature,\n 'ɵɵProvidersFeature': ɵɵProvidersFeature,\n 'ɵɵCopyDefinitionFeature': ɵɵCopyDefinitionFeature,\n 'ɵɵInheritDefinitionFeature': ɵɵInheritDefinitionFeature,\n 'ɵɵnextContext': ɵɵnextContext,\n 'ɵɵnamespaceHTML': ɵɵnamespaceHTML,\n 'ɵɵnamespaceMathML': ɵɵnamespaceMathML,\n 'ɵɵnamespaceSVG': ɵɵnamespaceSVG,\n 'ɵɵenableBindings': ɵɵenableBindings,\n 'ɵɵdisableBindings': ɵɵdisableBindings,\n 'ɵɵelementStart': ɵɵelementStart,\n 'ɵɵelementEnd': ɵɵelementEnd,\n 'ɵɵelement': ɵɵelement,\n 'ɵɵelementContainerStart': ɵɵelementContainerStart,\n 'ɵɵelementContainerEnd': ɵɵelementContainerEnd,\n 'ɵɵelementContainer': ɵɵelementContainer,\n 'ɵɵpureFunction0': ɵɵpureFunction0,\n 'ɵɵpureFunction1': ɵɵpureFunction1,\n 'ɵɵpureFunction2': ɵɵpureFunction2,\n 'ɵɵpureFunction3': ɵɵpureFunction3,\n 'ɵɵpureFunction4': ɵɵpureFunction4,\n 'ɵɵpureFunction5': ɵɵpureFunction5,\n 'ɵɵpureFunction6': ɵɵpureFunction6,\n 'ɵɵpureFunction7': ɵɵpureFunction7,\n 'ɵɵpureFunction8': ɵɵpureFunction8,\n 'ɵɵpureFunctionV': ɵɵpureFunctionV,\n 'ɵɵgetCurrentView': ɵɵgetCurrentView,\n 'ɵɵrestoreView': ɵɵrestoreView,\n 'ɵɵlistener': ɵɵlistener,\n 'ɵɵprojection': ɵɵprojection,\n 'ɵɵsyntheticHostProperty': ɵɵsyntheticHostProperty,\n 'ɵɵsyntheticHostListener': ɵɵsyntheticHostListener,\n 'ɵɵpipeBind1': ɵɵpipeBind1,\n 'ɵɵpipeBind2': ɵɵpipeBind2,\n 'ɵɵpipeBind3': ɵɵpipeBind3,\n 'ɵɵpipeBind4': ɵɵpipeBind4,\n 'ɵɵpipeBindV': ɵɵpipeBindV,\n 'ɵɵprojectionDef': ɵɵprojectionDef,\n 'ɵɵhostProperty': ɵɵhostProperty,\n 'ɵɵproperty': ɵɵproperty,\n 'ɵɵpropertyInterpolate': ɵɵpropertyInterpolate,\n 'ɵɵpropertyInterpolate1': ɵɵpropertyInterpolate1,\n 'ɵɵpropertyInterpolate2': ɵɵpropertyInterpolate2,\n 'ɵɵpropertyInterpolate3': ɵɵpropertyInterpolate3,\n 'ɵɵpropertyInterpolate4': ɵɵpropertyInterpolate4,\n 'ɵɵpropertyInterpolate5': ɵɵpropertyInterpolate5,\n 'ɵɵpropertyInterpolate6': ɵɵpropertyInterpolate6,\n 'ɵɵpropertyInterpolate7': ɵɵpropertyInterpolate7,\n 'ɵɵpropertyInterpolate8': ɵɵpropertyInterpolate8,\n 'ɵɵpropertyInterpolateV': ɵɵpropertyInterpolateV,\n 'ɵɵpipe': ɵɵpipe,\n 'ɵɵqueryRefresh': ɵɵqueryRefresh,\n 'ɵɵviewQuery': ɵɵviewQuery,\n 'ɵɵloadQuery': ɵɵloadQuery,\n 'ɵɵcontentQuery': ɵɵcontentQuery,\n 'ɵɵreference': ɵɵreference,\n 'ɵɵclassMap': ɵɵclassMap,\n 'ɵɵclassMapInterpolate1': ɵɵclassMapInterpolate1,\n 'ɵɵclassMapInterpolate2': ɵɵclassMapInterpolate2,\n 'ɵɵclassMapInterpolate3': ɵɵclassMapInterpolate3,\n 'ɵɵclassMapInterpolate4': ɵɵclassMapInterpolate4,\n 'ɵɵclassMapInterpolate5': ɵɵclassMapInterpolate5,\n 'ɵɵclassMapInterpolate6': ɵɵclassMapInterpolate6,\n 'ɵɵclassMapInterpolate7': ɵɵclassMapInterpolate7,\n 'ɵɵclassMapInterpolate8': ɵɵclassMapInterpolate8,\n 'ɵɵclassMapInterpolateV': ɵɵclassMapInterpolateV,\n 'ɵɵstyleMap': ɵɵstyleMap,\n 'ɵɵstyleMapInterpolate1': ɵɵstyleMapInterpolate1,\n 'ɵɵstyleMapInterpolate2': ɵɵstyleMapInterpolate2,\n 'ɵɵstyleMapInterpolate3': ɵɵstyleMapInterpolate3,\n 'ɵɵstyleMapInterpolate4': ɵɵstyleMapInterpolate4,\n 'ɵɵstyleMapInterpolate5': ɵɵstyleMapInterpolate5,\n 'ɵɵstyleMapInterpolate6': ɵɵstyleMapInterpolate6,\n 'ɵɵstyleMapInterpolate7': ɵɵstyleMapInterpolate7,\n 'ɵɵstyleMapInterpolate8': ɵɵstyleMapInterpolate8,\n 'ɵɵstyleMapInterpolateV': ɵɵstyleMapInterpolateV,\n 'ɵɵstyleProp': ɵɵstyleProp,\n 'ɵɵstylePropInterpolate1': ɵɵstylePropInterpolate1,\n 'ɵɵstylePropInterpolate2': ɵɵstylePropInterpolate2,\n 'ɵɵstylePropInterpolate3': ɵɵstylePropInterpolate3,\n 'ɵɵstylePropInterpolate4': ɵɵstylePropInterpolate4,\n 'ɵɵstylePropInterpolate5': ɵɵstylePropInterpolate5,\n 'ɵɵstylePropInterpolate6': ɵɵstylePropInterpolate6,\n 'ɵɵstylePropInterpolate7': ɵɵstylePropInterpolate7,\n 'ɵɵstylePropInterpolate8': ɵɵstylePropInterpolate8,\n 'ɵɵstylePropInterpolateV': ɵɵstylePropInterpolateV,\n 'ɵɵclassProp': ɵɵclassProp,\n 'ɵɵadvance': ɵɵadvance,\n 'ɵɵtemplate': ɵɵtemplate,\n 'ɵɵtext': ɵɵtext,\n 'ɵɵtextInterpolate': ɵɵtextInterpolate,\n 'ɵɵtextInterpolate1': ɵɵtextInterpolate1,\n 'ɵɵtextInterpolate2': ɵɵtextInterpolate2,\n 'ɵɵtextInterpolate3': ɵɵtextInterpolate3,\n 'ɵɵtextInterpolate4': ɵɵtextInterpolate4,\n 'ɵɵtextInterpolate5': ɵɵtextInterpolate5,\n 'ɵɵtextInterpolate6': ɵɵtextInterpolate6,\n 'ɵɵtextInterpolate7': ɵɵtextInterpolate7,\n 'ɵɵtextInterpolate8': ɵɵtextInterpolate8,\n 'ɵɵtextInterpolateV': ɵɵtextInterpolateV,\n 'ɵɵi18n': ɵɵi18n,\n 'ɵɵi18nAttributes': ɵɵi18nAttributes,\n 'ɵɵi18nExp': ɵɵi18nExp,\n 'ɵɵi18nStart': ɵɵi18nStart,\n 'ɵɵi18nEnd': ɵɵi18nEnd,\n 'ɵɵi18nApply': ɵɵi18nApply,\n 'ɵɵi18nPostprocess': ɵɵi18nPostprocess,\n 'ɵɵresolveWindow': ɵɵresolveWindow,\n 'ɵɵresolveDocument': ɵɵresolveDocument,\n 'ɵɵresolveBody': ɵɵresolveBody,\n 'ɵɵsetComponentScope': ɵɵsetComponentScope,\n 'ɵɵsetNgModuleScope': ɵɵsetNgModuleScope,\n 'ɵɵsanitizeHtml': ɵɵsanitizeHtml,\n 'ɵɵsanitizeStyle': ɵɵsanitizeStyle,\n 'ɵɵsanitizeResourceUrl': ɵɵsanitizeResourceUrl,\n 'ɵɵsanitizeScript': ɵɵsanitizeScript,\n 'ɵɵsanitizeUrl': ɵɵsanitizeUrl,\n 'ɵɵsanitizeUrlOrResourceUrl': ɵɵsanitizeUrlOrResourceUrl,\n 'ɵɵtrustConstantHtml': ɵɵtrustConstantHtml,\n 'ɵɵtrustConstantResourceUrl': ɵɵtrustConstantResourceUrl,\n 'forwardRef': forwardRef,\n 'resolveForwardRef': resolveForwardRef,\n}))();\n\nlet jitOptions = null;\nfunction setJitOptions(options) {\n if (jitOptions !== null) {\n if (options.defaultEncapsulation !== jitOptions.defaultEncapsulation) {\n ngDevMode &&\n console.error('Provided value for `defaultEncapsulation` can not be changed once it has been set.');\n return;\n }\n if (options.preserveWhitespaces !== jitOptions.preserveWhitespaces) {\n ngDevMode &&\n console.error('Provided value for `preserveWhitespaces` can not be changed once it has been set.');\n return;\n }\n }\n jitOptions = options;\n}\nfunction getJitOptions() {\n return jitOptions;\n}\nfunction resetJitOptions() {\n jitOptions = null;\n}\n\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 */\nconst moduleQueue = [];\n/**\n * Enqueues moduleDef to be checked later to see if scope can be set on its\n * component declarations.\n */\nfunction enqueueModuleForDelayedScoping(moduleType, ngModule) {\n moduleQueue.push({ moduleType, ngModule });\n}\nlet flushingModuleQueue = false;\n/**\n * Loops over queued module definitions, if a given module definition has all of its\n * declarations resolved, it dequeues that module definition and sets the scope on\n * its declarations.\n */\nfunction flushModuleScopingQueueAsMuchAsPossible() {\n if (!flushingModuleQueue) {\n flushingModuleQueue = true;\n try {\n for (let i = moduleQueue.length - 1; i >= 0; i--) {\n const { moduleType, ngModule } = moduleQueue[i];\n if (ngModule.declarations && ngModule.declarations.every(isResolvedDeclaration)) {\n // dequeue\n moduleQueue.splice(i, 1);\n setScopeOnDeclaredComponents(moduleType, ngModule);\n }\n }\n }\n finally {\n flushingModuleQueue = false;\n }\n }\n}\n/**\n * Returns truthy if a declaration has resolved. If the declaration happens to be\n * an array of declarations, it will recurse to check each declaration in that array\n * (which may also be arrays).\n */\nfunction isResolvedDeclaration(declaration) {\n if (Array.isArray(declaration)) {\n return declaration.every(isResolvedDeclaration);\n }\n return !!resolveForwardRef(declaration);\n}\n/**\n * Compiles a module in JIT mode.\n *\n * This function automatically gets called when a class has a `@NgModule` decorator.\n */\nfunction compileNgModule(moduleType, ngModule = {}) {\n compileNgModuleDefs(moduleType, ngModule);\n // Because we don't know if all declarations have resolved yet at the moment the\n // NgModule decorator is executing, we're enqueueing the setting of module scope\n // on its declarations to be run at a later time when all declarations for the module,\n // including forward refs, have resolved.\n enqueueModuleForDelayedScoping(moduleType, ngModule);\n}\n/**\n * Compiles and adds the `ɵmod`, `ɵfac` and `ɵinj` properties to the module class.\n *\n * It's possible to compile a module via this API which will allow duplicate declarations in its\n * root.\n */\nfunction compileNgModuleDefs(moduleType, ngModule, allowDuplicateDeclarationsInRoot = false) {\n ngDevMode && assertDefined(moduleType, 'Required value moduleType');\n ngDevMode && assertDefined(ngModule, 'Required value ngModule');\n const declarations = flatten(ngModule.declarations || EMPTY_ARRAY);\n let ngModuleDef = null;\n Object.defineProperty(moduleType, NG_MOD_DEF, {\n configurable: true,\n get: () => {\n if (ngModuleDef === null) {\n if (ngDevMode && ngModule.imports && ngModule.imports.indexOf(moduleType) > -1) {\n // We need to assert this immediately, because allowing it to continue will cause it to\n // go into an infinite loop before we've reached the point where we throw all the errors.\n throw new Error(`'${stringifyForError(moduleType)}' module can't import itself`);\n }\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'NgModule', type: moduleType });\n ngModuleDef = compiler.compileNgModule(angularCoreEnv, `ng:///${moduleType.name}/ɵmod.js`, {\n type: moduleType,\n bootstrap: flatten(ngModule.bootstrap || EMPTY_ARRAY).map(resolveForwardRef),\n declarations: declarations.map(resolveForwardRef),\n imports: flatten(ngModule.imports || EMPTY_ARRAY)\n .map(resolveForwardRef)\n .map(expandModuleWithProviders),\n exports: flatten(ngModule.exports || EMPTY_ARRAY)\n .map(resolveForwardRef)\n .map(expandModuleWithProviders),\n schemas: ngModule.schemas ? flatten(ngModule.schemas) : null,\n id: ngModule.id || null,\n });\n // Set `schemas` on ngModuleDef to an empty array in JIT mode to indicate that runtime\n // should verify that there are no unknown elements in a template. In AOT mode, that check\n // happens at compile time and `schemas` information is not present on Component and Module\n // defs after compilation (so the check doesn't happen the second time at runtime).\n if (!ngModuleDef.schemas) {\n ngModuleDef.schemas = [];\n }\n }\n return ngModuleDef;\n }\n });\n let ngFactoryDef = null;\n Object.defineProperty(moduleType, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'NgModule', type: moduleType });\n ngFactoryDef = compiler.compileFactory(angularCoreEnv, `ng:///${moduleType.name}/ɵfac.js`, {\n name: moduleType.name,\n type: moduleType,\n deps: reflectDependencies(moduleType),\n target: compiler.FactoryTarget.NgModule,\n typeArgumentCount: 0,\n });\n }\n return ngFactoryDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n let ngInjectorDef = null;\n Object.defineProperty(moduleType, NG_INJ_DEF, {\n get: () => {\n if (ngInjectorDef === null) {\n ngDevMode &&\n verifySemanticsOfNgModuleDef(moduleType, allowDuplicateDeclarationsInRoot);\n const meta = {\n name: moduleType.name,\n type: moduleType,\n providers: ngModule.providers || EMPTY_ARRAY,\n imports: [\n (ngModule.imports || EMPTY_ARRAY).map(resolveForwardRef),\n (ngModule.exports || EMPTY_ARRAY).map(resolveForwardRef),\n ],\n };\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'NgModule', type: moduleType });\n ngInjectorDef =\n compiler.compileInjector(angularCoreEnv, `ng:///${moduleType.name}/ɵinj.js`, meta);\n }\n return ngInjectorDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n}\nfunction verifySemanticsOfNgModuleDef(moduleType, allowDuplicateDeclarationsInRoot, importingModule) {\n if (verifiedNgModule.get(moduleType))\n return;\n verifiedNgModule.set(moduleType, true);\n moduleType = resolveForwardRef(moduleType);\n let ngModuleDef;\n if (importingModule) {\n ngModuleDef = getNgModuleDef(moduleType);\n if (!ngModuleDef) {\n throw new Error(`Unexpected value '${moduleType.name}' imported by the module '${importingModule.name}'. Please add an @NgModule annotation.`);\n }\n }\n else {\n ngModuleDef = getNgModuleDef(moduleType, true);\n }\n const errors = [];\n const declarations = maybeUnwrapFn(ngModuleDef.declarations);\n const imports = maybeUnwrapFn(ngModuleDef.imports);\n flatten(imports).map(unwrapModuleWithProvidersImports).forEach(mod => {\n verifySemanticsOfNgModuleImport(mod, moduleType);\n verifySemanticsOfNgModuleDef(mod, false, moduleType);\n });\n const exports = maybeUnwrapFn(ngModuleDef.exports);\n declarations.forEach(verifyDeclarationsHaveDefinitions);\n declarations.forEach(verifyDirectivesHaveSelector);\n const combinedDeclarations = [\n ...declarations.map(resolveForwardRef),\n ...flatten(imports.map(computeCombinedExports)).map(resolveForwardRef),\n ];\n exports.forEach(verifyExportsAreDeclaredOrReExported);\n declarations.forEach(decl => verifyDeclarationIsUnique(decl, allowDuplicateDeclarationsInRoot));\n declarations.forEach(verifyComponentEntryComponentsIsPartOfNgModule);\n const ngModule = getAnnotation(moduleType, 'NgModule');\n if (ngModule) {\n ngModule.imports &&\n flatten(ngModule.imports).map(unwrapModuleWithProvidersImports).forEach(mod => {\n verifySemanticsOfNgModuleImport(mod, moduleType);\n verifySemanticsOfNgModuleDef(mod, false, moduleType);\n });\n ngModule.bootstrap && deepForEach(ngModule.bootstrap, verifyCorrectBootstrapType);\n ngModule.bootstrap && deepForEach(ngModule.bootstrap, verifyComponentIsPartOfNgModule);\n ngModule.entryComponents &&\n deepForEach(ngModule.entryComponents, verifyComponentIsPartOfNgModule);\n }\n // Throw Error if any errors were detected.\n if (errors.length) {\n throw new Error(errors.join('\\n'));\n }\n ////////////////////////////////////////////////////////////////////////////////////////////////\n function verifyDeclarationsHaveDefinitions(type) {\n type = resolveForwardRef(type);\n const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);\n if (!def) {\n errors.push(`Unexpected value '${stringifyForError(type)}' declared by the module '${stringifyForError(moduleType)}'. Please add a @Pipe/@Directive/@Component annotation.`);\n }\n }\n function verifyDirectivesHaveSelector(type) {\n type = resolveForwardRef(type);\n const def = getDirectiveDef(type);\n if (!getComponentDef(type) && def && def.selectors.length == 0) {\n errors.push(`Directive ${stringifyForError(type)} has no selector, please add it!`);\n }\n }\n function verifyExportsAreDeclaredOrReExported(type) {\n type = resolveForwardRef(type);\n const kind = getComponentDef(type) && 'component' || getDirectiveDef(type) && 'directive' ||\n getPipeDef$1(type) && 'pipe';\n if (kind) {\n // only checked if we are declared as Component, Directive, or Pipe\n // Modules don't need to be declared or imported.\n if (combinedDeclarations.lastIndexOf(type) === -1) {\n // We are exporting something which we don't explicitly declare or import.\n errors.push(`Can't export ${kind} ${stringifyForError(type)} from ${stringifyForError(moduleType)} as it was neither declared nor imported!`);\n }\n }\n }\n function verifyDeclarationIsUnique(type, suppressErrors) {\n type = resolveForwardRef(type);\n const existingModule = ownerNgModule.get(type);\n if (existingModule && existingModule !== moduleType) {\n if (!suppressErrors) {\n const modules = [existingModule, moduleType].map(stringifyForError).sort();\n errors.push(`Type ${stringifyForError(type)} is part of the declarations of 2 modules: ${modules[0]} and ${modules[1]}! ` +\n `Please consider moving ${stringifyForError(type)} to a higher module that imports ${modules[0]} and ${modules[1]}. ` +\n `You can also create a new NgModule that exports and includes ${stringifyForError(type)} then import that NgModule in ${modules[0]} and ${modules[1]}.`);\n }\n }\n else {\n // Mark type as having owner.\n ownerNgModule.set(type, moduleType);\n }\n }\n function verifyComponentIsPartOfNgModule(type) {\n type = resolveForwardRef(type);\n const existingModule = ownerNgModule.get(type);\n if (!existingModule) {\n errors.push(`Component ${stringifyForError(type)} is not part of any NgModule or the module has not been imported into your module.`);\n }\n }\n function verifyCorrectBootstrapType(type) {\n type = resolveForwardRef(type);\n if (!getComponentDef(type)) {\n errors.push(`${stringifyForError(type)} cannot be used as an entry component.`);\n }\n }\n function verifyComponentEntryComponentsIsPartOfNgModule(type) {\n type = resolveForwardRef(type);\n if (getComponentDef(type)) {\n // We know we are component\n const component = getAnnotation(type, 'Component');\n if (component && component.entryComponents) {\n deepForEach(component.entryComponents, verifyComponentIsPartOfNgModule);\n }\n }\n }\n function verifySemanticsOfNgModuleImport(type, importingModule) {\n type = resolveForwardRef(type);\n if (getComponentDef(type) || getDirectiveDef(type)) {\n throw new Error(`Unexpected directive '${type.name}' imported by the module '${importingModule.name}'. Please add an @NgModule annotation.`);\n }\n if (getPipeDef$1(type)) {\n throw new Error(`Unexpected pipe '${type.name}' imported by the module '${importingModule.name}'. Please add an @NgModule annotation.`);\n }\n }\n}\nfunction unwrapModuleWithProvidersImports(typeOrWithProviders) {\n typeOrWithProviders = resolveForwardRef(typeOrWithProviders);\n return typeOrWithProviders.ngModule || typeOrWithProviders;\n}\nfunction getAnnotation(type, name) {\n let annotation = null;\n collect(type.__annotations__);\n collect(type.decorators);\n return annotation;\n function collect(annotations) {\n if (annotations) {\n annotations.forEach(readAnnotation);\n }\n }\n function readAnnotation(decorator) {\n if (!annotation) {\n const proto = Object.getPrototypeOf(decorator);\n if (proto.ngMetadataName == name) {\n annotation = decorator;\n }\n else if (decorator.type) {\n const proto = Object.getPrototypeOf(decorator.type);\n if (proto.ngMetadataName == name) {\n annotation = decorator.args[0];\n }\n }\n }\n }\n}\n/**\n * Keep track of compiled components. This is needed because in tests we often want to compile the\n * same component with more than one NgModule. This would cause an error unless we reset which\n * NgModule the component belongs to. We keep the list of compiled components here so that the\n * TestBed can reset it later.\n */\nlet ownerNgModule = new WeakMap();\nlet verifiedNgModule = new WeakMap();\nfunction resetCompiledComponents() {\n ownerNgModule = new WeakMap();\n verifiedNgModule = new WeakMap();\n moduleQueue.length = 0;\n}\n/**\n * Computes the combined declarations of explicit declarations, as well as declarations inherited by\n * traversing the exports of imported modules.\n * @param type\n */\nfunction computeCombinedExports(type) {\n type = resolveForwardRef(type);\n const ngModuleDef = getNgModuleDef(type, true);\n return [...flatten(maybeUnwrapFn(ngModuleDef.exports).map((type) => {\n const ngModuleDef = getNgModuleDef(type);\n if (ngModuleDef) {\n verifySemanticsOfNgModuleDef(type, false);\n return computeCombinedExports(type);\n }\n else {\n return type;\n }\n }))];\n}\n/**\n * Some declared components may be compiled asynchronously, and thus may not have their\n * ɵcmp set yet. If this is the case, then a reference to the module is written into\n * the `ngSelectorScope` property of the declared type.\n */\nfunction setScopeOnDeclaredComponents(moduleType, ngModule) {\n const declarations = flatten(ngModule.declarations || EMPTY_ARRAY);\n const transitiveScopes = transitiveScopesFor(moduleType);\n declarations.forEach(declaration => {\n if (declaration.hasOwnProperty(NG_COMP_DEF)) {\n // A `ɵcmp` field exists - go ahead and patch the component directly.\n const component = declaration;\n const componentDef = getComponentDef(component);\n patchComponentDefWithScope(componentDef, transitiveScopes);\n }\n else if (!declaration.hasOwnProperty(NG_DIR_DEF) && !declaration.hasOwnProperty(NG_PIPE_DEF)) {\n // Set `ngSelectorScope` for future reference when the component compilation finishes.\n declaration.ngSelectorScope = moduleType;\n }\n });\n}\n/**\n * Patch the definition of a component with directives and pipes from the compilation scope of\n * a given module.\n */\nfunction patchComponentDefWithScope(componentDef, transitiveScopes) {\n componentDef.directiveDefs = () => Array.from(transitiveScopes.compilation.directives)\n .map(dir => dir.hasOwnProperty(NG_COMP_DEF) ? getComponentDef(dir) : getDirectiveDef(dir))\n .filter(def => !!def);\n componentDef.pipeDefs = () => Array.from(transitiveScopes.compilation.pipes).map(pipe => getPipeDef$1(pipe));\n componentDef.schemas = transitiveScopes.schemas;\n // Since we avoid Components/Directives/Pipes recompiling in case there are no overrides, we\n // may face a problem where previously compiled defs available to a given Component/Directive\n // are cached in TView and may become stale (in case any of these defs gets recompiled). In\n // order to avoid this problem, we force fresh TView to be created.\n componentDef.tView = null;\n}\n/**\n * Compute the pair of transitive scopes (compilation scope and exported scope) for a given module.\n *\n * This operation is memoized and the result is cached on the module's definition. This function can\n * be called on modules with components that have not fully compiled yet, but the result should not\n * be used until they have.\n *\n * @param moduleType module that transitive scope should be calculated for.\n */\nfunction transitiveScopesFor(moduleType) {\n if (!isNgModule(moduleType)) {\n throw new Error(`${moduleType.name} does not have a module def (ɵmod property)`);\n }\n const def = getNgModuleDef(moduleType);\n if (def.transitiveCompileScopes !== null) {\n return def.transitiveCompileScopes;\n }\n const scopes = {\n schemas: def.schemas || null,\n compilation: {\n directives: new Set(),\n pipes: new Set(),\n },\n exported: {\n directives: new Set(),\n pipes: new Set(),\n },\n };\n maybeUnwrapFn(def.imports).forEach((imported) => {\n const importedType = imported;\n if (!isNgModule(importedType)) {\n throw new Error(`Importing ${importedType.name} which does not have a ɵmod property`);\n }\n // When this module imports another, the imported module's exported directives and pipes are\n // added to the compilation scope of this module.\n const importedScope = transitiveScopesFor(importedType);\n importedScope.exported.directives.forEach(entry => scopes.compilation.directives.add(entry));\n importedScope.exported.pipes.forEach(entry => scopes.compilation.pipes.add(entry));\n });\n maybeUnwrapFn(def.declarations).forEach(declared => {\n const declaredWithDefs = declared;\n if (getPipeDef$1(declaredWithDefs)) {\n scopes.compilation.pipes.add(declared);\n }\n else {\n // Either declared has a ɵcmp or ɵdir, or it's a component which hasn't\n // had its template compiled yet. In either case, it gets added to the compilation's\n // directives.\n scopes.compilation.directives.add(declared);\n }\n });\n maybeUnwrapFn(def.exports).forEach((exported) => {\n const exportedType = exported;\n // Either the type is a module, a pipe, or a component/directive (which may not have a\n // ɵcmp as it might be compiled asynchronously).\n if (isNgModule(exportedType)) {\n // When this module exports another, the exported module's exported directives and pipes are\n // added to both the compilation and exported scopes of this module.\n const exportedScope = transitiveScopesFor(exportedType);\n exportedScope.exported.directives.forEach(entry => {\n scopes.compilation.directives.add(entry);\n scopes.exported.directives.add(entry);\n });\n exportedScope.exported.pipes.forEach(entry => {\n scopes.compilation.pipes.add(entry);\n scopes.exported.pipes.add(entry);\n });\n }\n else if (getPipeDef$1(exportedType)) {\n scopes.exported.pipes.add(exportedType);\n }\n else {\n scopes.exported.directives.add(exportedType);\n }\n });\n def.transitiveCompileScopes = scopes;\n return scopes;\n}\nfunction expandModuleWithProviders(value) {\n if (isModuleWithProviders(value)) {\n return value.ngModule;\n }\n return value;\n}\nfunction isModuleWithProviders(value) {\n return value.ngModule !== undefined;\n}\nfunction isNgModule(value) {\n return !!getNgModuleDef(value);\n}\n\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/**\n * Keep track of the compilation depth to avoid reentrancy issues during JIT compilation. This\n * matters in the following scenario:\n *\n * Consider a component 'A' that extends component 'B', both declared in module 'M'. During\n * the compilation of 'A' the definition of 'B' is requested to capture the inheritance chain,\n * potentially triggering compilation of 'B'. If this nested compilation were to trigger\n * `flushModuleScopingQueueAsMuchAsPossible` it may happen that module 'M' is still pending in the\n * queue, resulting in 'A' and 'B' to be patched with the NgModule scope. As the compilation of\n * 'A' is still in progress, this would introduce a circular dependency on its compilation. To avoid\n * this issue, the module scope queue is only flushed for compilations at the depth 0, to ensure\n * all compilations have finished.\n */\nlet compilationDepth = 0;\n/**\n * Compile an Angular component according to its decorator metadata, and patch the resulting\n * component def (ɵcmp) onto the component type.\n *\n * Compilation may be asynchronous (due to the need to resolve URLs for the component template or\n * other resources, for example). In the event that compilation is not immediate, `compileComponent`\n * will enqueue resource resolution into a global queue and will fail to return the `ɵcmp`\n * until the global queue has been resolved with a call to `resolveComponentResources`.\n */\nfunction compileComponent(type, metadata) {\n // Initialize ngDevMode. This must be the first statement in compileComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n let ngComponentDef = null;\n // Metadata may have resources which need to be resolved.\n maybeQueueResolutionOfComponentResources(type, metadata);\n // Note that we're using the same function as `Directive`, because that's only subset of metadata\n // that we need to create the ngFactoryDef. We're avoiding using the component metadata\n // because we'd have to resolve the asynchronous templates.\n addDirectiveFactoryDef(type, metadata);\n Object.defineProperty(type, NG_COMP_DEF, {\n get: () => {\n if (ngComponentDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'component', type: type });\n if (componentNeedsResolution(metadata)) {\n const error = [`Component '${type.name}' is not resolved:`];\n if (metadata.templateUrl) {\n error.push(` - templateUrl: ${metadata.templateUrl}`);\n }\n if (metadata.styleUrls && metadata.styleUrls.length) {\n error.push(` - styleUrls: ${JSON.stringify(metadata.styleUrls)}`);\n }\n error.push(`Did you run and wait for 'resolveComponentResources()'?`);\n throw new Error(error.join('\\n'));\n }\n // This const was called `jitOptions` previously but had to be renamed to `options` because\n // of a bug with Terser that caused optimized JIT builds to throw a `ReferenceError`.\n // This bug was investigated in https://github.com/angular/angular-cli/issues/17264.\n // We should not rename it back until https://github.com/terser/terser/issues/615 is fixed.\n const options = getJitOptions();\n let preserveWhitespaces = metadata.preserveWhitespaces;\n if (preserveWhitespaces === undefined) {\n if (options !== null && options.preserveWhitespaces !== undefined) {\n preserveWhitespaces = options.preserveWhitespaces;\n }\n else {\n preserveWhitespaces = false;\n }\n }\n let encapsulation = metadata.encapsulation;\n if (encapsulation === undefined) {\n if (options !== null && options.defaultEncapsulation !== undefined) {\n encapsulation = options.defaultEncapsulation;\n }\n else {\n encapsulation = ViewEncapsulation$1.Emulated;\n }\n }\n const templateUrl = metadata.templateUrl || `ng:///${type.name}/template.html`;\n const meta = Object.assign(Object.assign({}, directiveMetadata(type, metadata)), { typeSourceSpan: compiler.createParseSourceSpan('Component', type.name, templateUrl), template: metadata.template || '', preserveWhitespaces, styles: metadata.styles || EMPTY_ARRAY, animations: metadata.animations, directives: [], changeDetection: metadata.changeDetection, pipes: new Map(), encapsulation, interpolation: metadata.interpolation, viewProviders: metadata.viewProviders || null });\n compilationDepth++;\n try {\n if (meta.usesInheritance) {\n addDirectiveDefToUndecoratedParents(type);\n }\n ngComponentDef = compiler.compileComponent(angularCoreEnv, templateUrl, meta);\n }\n finally {\n // Ensure that the compilation depth is decremented even when the compilation failed.\n compilationDepth--;\n }\n if (compilationDepth === 0) {\n // When NgModule decorator executed, we enqueued the module definition such that\n // it would only dequeue and add itself as module scope to all of its declarations,\n // but only if if all of its declarations had resolved. This call runs the check\n // to see if any modules that are in the queue can be dequeued and add scope to\n // their declarations.\n flushModuleScopingQueueAsMuchAsPossible();\n }\n // If component compilation is async, then the @NgModule annotation which declares the\n // component may execute and set an ngSelectorScope property on the component type. This\n // allows the component to patch itself with directiveDefs from the module after it\n // finishes compiling.\n if (hasSelectorScope(type)) {\n const scopes = transitiveScopesFor(type.ngSelectorScope);\n patchComponentDefWithScope(ngComponentDef, scopes);\n }\n }\n return ngComponentDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n}\nfunction hasSelectorScope(component) {\n return component.ngSelectorScope !== undefined;\n}\n/**\n * Compile an Angular directive according to its decorator metadata, and patch the resulting\n * directive def onto the component type.\n *\n * In the event that compilation is not immediate, `compileDirective` will return a `Promise` which\n * will resolve when compilation completes and the directive becomes usable.\n */\nfunction compileDirective(type, directive) {\n let ngDirectiveDef = null;\n addDirectiveFactoryDef(type, directive || {});\n Object.defineProperty(type, NG_DIR_DEF, {\n get: () => {\n if (ngDirectiveDef === null) {\n // `directive` can be null in the case of abstract directives as a base class\n // that use `@Directive()` with no selector. In that case, pass empty object to the\n // `directiveMetadata` function instead of null.\n const meta = getDirectiveMetadata(type, directive || {});\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'directive', type });\n ngDirectiveDef =\n compiler.compileDirective(angularCoreEnv, meta.sourceMapUrl, meta.metadata);\n }\n return ngDirectiveDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n}\nfunction getDirectiveMetadata(type, metadata) {\n const name = type && type.name;\n const sourceMapUrl = `ng:///${name}/ɵdir.js`;\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'directive', type });\n const facade = directiveMetadata(type, metadata);\n facade.typeSourceSpan = compiler.createParseSourceSpan('Directive', name, sourceMapUrl);\n if (facade.usesInheritance) {\n addDirectiveDefToUndecoratedParents(type);\n }\n return { metadata: facade, sourceMapUrl };\n}\nfunction addDirectiveFactoryDef(type, metadata) {\n let ngFactoryDef = null;\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const meta = getDirectiveMetadata(type, metadata);\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'directive', type });\n ngFactoryDef = compiler.compileFactory(angularCoreEnv, `ng:///${type.name}/ɵfac.js`, {\n name: meta.metadata.name,\n type: meta.metadata.type,\n typeArgumentCount: 0,\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Directive\n });\n }\n return ngFactoryDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n}\nfunction extendsDirectlyFromObject(type) {\n return Object.getPrototypeOf(type.prototype) === Object.prototype;\n}\n/**\n * Extract the `R3DirectiveMetadata` for a particular directive (either a `Directive` or a\n * `Component`).\n */\nfunction directiveMetadata(type, metadata) {\n // Reflect inputs and outputs.\n const reflect = getReflect();\n const propMetadata = reflect.ownPropMetadata(type);\n return {\n name: type.name,\n type: type,\n selector: metadata.selector !== undefined ? metadata.selector : null,\n host: metadata.host || EMPTY_OBJ,\n propMetadata: propMetadata,\n inputs: metadata.inputs || EMPTY_ARRAY,\n outputs: metadata.outputs || EMPTY_ARRAY,\n queries: extractQueriesMetadata(type, propMetadata, isContentQuery),\n lifecycle: { usesOnChanges: reflect.hasLifecycleHook(type, 'ngOnChanges') },\n typeSourceSpan: null,\n usesInheritance: !extendsDirectlyFromObject(type),\n exportAs: extractExportAs(metadata.exportAs),\n providers: metadata.providers || null,\n viewQueries: extractQueriesMetadata(type, propMetadata, isViewQuery)\n };\n}\n/**\n * Adds a directive definition to all parent classes of a type that don't have an Angular decorator.\n */\nfunction addDirectiveDefToUndecoratedParents(type) {\n const objPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objPrototype) {\n // Since inheritance works if the class was annotated already, we only need to add\n // the def if there are no annotations and the def hasn't been created already.\n if (!getDirectiveDef(parent) && !getComponentDef(parent) &&\n shouldAddAbstractDirective(parent)) {\n compileDirective(parent, null);\n }\n parent = Object.getPrototypeOf(parent);\n }\n}\nfunction convertToR3QueryPredicate(selector) {\n return typeof selector === 'string' ? splitByComma(selector) : resolveForwardRef(selector);\n}\nfunction convertToR3QueryMetadata(propertyName, ann) {\n return {\n propertyName: propertyName,\n predicate: convertToR3QueryPredicate(ann.selector),\n descendants: ann.descendants,\n first: ann.first,\n read: ann.read ? ann.read : null,\n static: !!ann.static,\n emitDistinctChangesOnly: !!ann.emitDistinctChangesOnly,\n };\n}\nfunction extractQueriesMetadata(type, propMetadata, isQueryAnn) {\n const queriesMeta = [];\n for (const field in propMetadata) {\n if (propMetadata.hasOwnProperty(field)) {\n const annotations = propMetadata[field];\n annotations.forEach(ann => {\n if (isQueryAnn(ann)) {\n if (!ann.selector) {\n throw new Error(`Can't construct a query for the property \"${field}\" of ` +\n `\"${stringifyForError(type)}\" since the query selector wasn't defined.`);\n }\n if (annotations.some(isInputAnnotation)) {\n throw new Error(`Cannot combine @Input decorators with query decorators`);\n }\n queriesMeta.push(convertToR3QueryMetadata(field, ann));\n }\n });\n }\n }\n return queriesMeta;\n}\nfunction extractExportAs(exportAs) {\n return exportAs === undefined ? null : splitByComma(exportAs);\n}\nfunction isContentQuery(value) {\n const name = value.ngMetadataName;\n return name === 'ContentChild' || name === 'ContentChildren';\n}\nfunction isViewQuery(value) {\n const name = value.ngMetadataName;\n return name === 'ViewChild' || name === 'ViewChildren';\n}\nfunction isInputAnnotation(value) {\n return value.ngMetadataName === 'Input';\n}\nfunction splitByComma(value) {\n return value.split(',').map(piece => piece.trim());\n}\nconst LIFECYCLE_HOOKS = [\n 'ngOnChanges', 'ngOnInit', 'ngOnDestroy', 'ngDoCheck', 'ngAfterViewInit', 'ngAfterViewChecked',\n 'ngAfterContentInit', 'ngAfterContentChecked'\n];\nfunction shouldAddAbstractDirective(type) {\n const reflect = getReflect();\n if (LIFECYCLE_HOOKS.some(hookName => reflect.hasLifecycleHook(type, hookName))) {\n return true;\n }\n const propMetadata = reflect.propMetadata(type);\n for (const field in propMetadata) {\n const annotations = propMetadata[field];\n for (let i = 0; i < annotations.length; i++) {\n const current = annotations[i];\n const metadataName = current.ngMetadataName;\n if (isInputAnnotation(current) || isContentQuery(current) || isViewQuery(current) ||\n metadataName === 'Output' || metadataName === 'HostBinding' ||\n metadataName === 'HostListener') {\n return true;\n }\n }\n }\n return false;\n}\n\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 */\nfunction compilePipe(type, meta) {\n let ngPipeDef = null;\n let ngFactoryDef = null;\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const metadata = getPipeMetadata(type, meta);\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'pipe', type: metadata.type });\n ngFactoryDef = compiler.compileFactory(angularCoreEnv, `ng:///${metadata.name}/ɵfac.js`, {\n name: metadata.name,\n type: metadata.type,\n typeArgumentCount: 0,\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Pipe\n });\n }\n return ngFactoryDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n Object.defineProperty(type, NG_PIPE_DEF, {\n get: () => {\n if (ngPipeDef === null) {\n const metadata = getPipeMetadata(type, meta);\n const compiler = getCompilerFacade({ usage: 0 /* Decorator */, kind: 'pipe', type: metadata.type });\n ngPipeDef =\n compiler.compilePipe(angularCoreEnv, `ng:///${metadata.name}/ɵpipe.js`, metadata);\n }\n return ngPipeDef;\n },\n // Make the property configurable in dev mode to allow overriding in tests\n configurable: !!ngDevMode,\n });\n}\nfunction getPipeMetadata(type, meta) {\n return {\n type: type,\n name: type.name,\n pipeName: meta.name,\n pure: meta.pure !== undefined ? meta.pure : true\n };\n}\n\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/**\n * Type of the Directive metadata.\n *\n * @publicApi\n */\nconst Directive = makeDecorator('Directive', (dir = {}) => dir, undefined, undefined, (type, meta) => compileDirective(type, meta));\n/**\n * Component decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Component = makeDecorator('Component', (c = {}) => (Object.assign({ changeDetection: ChangeDetectionStrategy.Default }, c)), Directive, undefined, (type, meta) => compileComponent(type, meta));\n/**\n * @Annotation\n * @publicApi\n */\nconst Pipe = makeDecorator('Pipe', (p) => (Object.assign({ pure: true }, p)), undefined, undefined, (type, meta) => compilePipe(type, meta));\n/**\n * @Annotation\n * @publicApi\n */\nconst Input = makePropDecorator('Input', (bindingPropertyName) => ({ bindingPropertyName }));\n/**\n * @Annotation\n * @publicApi\n */\nconst Output = makePropDecorator('Output', (bindingPropertyName) => ({ bindingPropertyName }));\n/**\n * @Annotation\n * @publicApi\n */\nconst HostBinding = makePropDecorator('HostBinding', (hostPropertyName) => ({ hostPropertyName }));\n/**\n * Decorator that binds a DOM event to a host listener and supplies configuration metadata.\n * Angular invokes the supplied handler method when the host element emits the specified event,\n * and updates the bound element with the result.\n *\n * If the handler method returns false, applies `preventDefault` on the bound element.\n *\n * @usageNotes\n *\n * The following example declares a directive\n * that attaches a click listener to a button and counts clicks.\n *\n * ```ts\n * @Directive({selector: 'button[counting]'})\n * class CountClicks {\n * numberOfClicks = 0;\n *\n * @HostListener('click', ['$event.target'])\n * onClick(btn) {\n * console.log('button', btn, 'number of clicks:', this.numberOfClicks++);\n * }\n * }\n *\n * @Component({\n * selector: 'app',\n * template: '<button counting>Increment</button>',\n * })\n * class App {}\n *\n * ```\n *\n * The following example registers another DOM event handler that listens for `Enter` key-press\n * events on the global `window`.\n * ``` ts\n * import { HostListener, Component } from \"@angular/core\";\n *\n * @Component({\n * selector: 'app',\n * template: `<h1>Hello, you have pressed enter {{counter}} number of times!</h1> Press enter key\n * to increment the counter.\n * <button (click)=\"resetCounter()\">Reset Counter</button>`\n * })\n * class AppComponent {\n * counter = 0;\n * @HostListener('window:keydown.enter', ['$event'])\n * handleKeyDown(event: KeyboardEvent) {\n * this.counter++;\n * }\n * resetCounter() {\n * this.counter = 0;\n * }\n * }\n * ```\n * The list of valid key names for `keydown` and `keyup` events\n * can be found here:\n * https://www.w3.org/TR/DOM-Level-3-Events-key/#named-key-attribute-values\n *\n * Note that keys can also be combined, e.g. `@HostListener('keydown.shift.a')`.\n *\n * The global target names that can be used to prefix an event name are\n * `document:`, `window:` and `body:`.\n *\n * @Annotation\n * @publicApi\n */\nconst HostListener = makePropDecorator('HostListener', (eventName, args) => ({ eventName, args }));\n\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/**\n * @Annotation\n * @publicApi\n */\nconst NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, undefined, \n/**\n * Decorator that marks the following class as an NgModule, and supplies\n * configuration metadata for it.\n *\n * * The `declarations` and `entryComponents` options configure the compiler\n * with information about what belongs to the NgModule.\n * * The `providers` options configures the NgModule's injector to provide\n * dependencies the NgModule members.\n * * The `imports` and `exports` options bring in members from other modules, and make\n * this module's members available to others.\n */\n(type, meta) => compileNgModule(type, meta));\n\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\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 */\nfunction noop(...args) {\n // Do nothing.\n}\n\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/**\n * The existence of this constant (in this particular file) informs the Angular compiler that the\n * current program is actually @angular/core, which needs to be compiled specially.\n */\nconst ITS_JUST_ANGULAR = true;\n\n/**\n * A [DI token](guide/glossary#di-token \"DI token definition\") that you can use to provide\n * one or more initialization functions.\n *\n * The provided functions are injected at application startup and executed during\n * app initialization. If any of these functions returns a Promise or an Observable, initialization\n * does not complete until the Promise is resolved or the Observable is completed.\n *\n * You can, for example, create a factory function that loads language data\n * or an external configuration, and provide that function to the `APP_INITIALIZER` token.\n * The function is executed during the application bootstrap process,\n * and the needed data is available on startup.\n *\n * @see `ApplicationInitStatus`\n *\n * @usageNotes\n *\n * The following example illustrates how to configure a multi-provider using `APP_INITIALIZER` token\n * and a function returning a promise.\n *\n * ```\n * function initializeApp(): Promise<any> {\n * return new Promise((resolve, reject) => {\n * // Do some asynchronous stuff\n * resolve();\n * });\n * }\n *\n * @NgModule({\n * imports: [BrowserModule],\n * declarations: [AppComponent],\n * bootstrap: [AppComponent],\n * providers: [{\n * provide: APP_INITIALIZER,\n * useFactory: () => initializeApp,\n * multi: true\n * }]\n * })\n * export class AppModule {}\n * ```\n *\n * It's also possible to configure a multi-provider using `APP_INITIALIZER` token and a function\n * returning an observable, see an example below. Note: the `HttpClient` in this example is used for\n * demo purposes to illustrate how the factory function can work with other providers available\n * through DI.\n *\n * ```\n * function initializeAppFactory(httpClient: HttpClient): () => Observable<any> {\n * return () => httpClient.get(\"https://someUrl.com/api/user\")\n * .pipe(\n * tap(user => { ... })\n * );\n * }\n *\n * @NgModule({\n * imports: [BrowserModule, HttpClientModule],\n * declarations: [AppComponent],\n * bootstrap: [AppComponent],\n * providers: [{\n * provide: APP_INITIALIZER,\n * useFactory: initializeAppFactory,\n * deps: [HttpClient],\n * multi: true\n * }]\n * })\n * export class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_INITIALIZER = new InjectionToken('Application Initializer');\n/**\n * A class that reflects the state of running {@link APP_INITIALIZER} functions.\n *\n * @publicApi\n */\nclass ApplicationInitStatus {\n constructor(appInits) {\n this.appInits = appInits;\n this.resolve = noop;\n this.reject = noop;\n this.initialized = false;\n this.done = false;\n this.donePromise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n /** @internal */\n runInitializers() {\n if (this.initialized) {\n return;\n }\n const asyncInitPromises = [];\n const complete = () => {\n this.done = true;\n this.resolve();\n };\n if (this.appInits) {\n for (let i = 0; i < this.appInits.length; i++) {\n const initResult = this.appInits[i]();\n if (isPromise(initResult)) {\n asyncInitPromises.push(initResult);\n }\n else if (isObservable(initResult)) {\n const observableAsPromise = new Promise((resolve, reject) => {\n initResult.subscribe({ complete: resolve, error: reject });\n });\n asyncInitPromises.push(observableAsPromise);\n }\n }\n }\n Promise.all(asyncInitPromises)\n .then(() => {\n complete();\n })\n .catch(e => {\n this.reject(e);\n });\n if (asyncInitPromises.length === 0) {\n complete();\n }\n this.initialized = true;\n }\n}\nApplicationInitStatus.ɵfac = function ApplicationInitStatus_Factory(t) { return new (t || ApplicationInitStatus)(ɵɵinject(APP_INITIALIZER, 8)); };\nApplicationInitStatus.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationInitStatus, factory: ApplicationInitStatus.ɵfac, providedIn: 'root' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(ApplicationInitStatus, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [APP_INITIALIZER]\n }, {\n type: Optional\n }] }];\n }, null);\n})();\n\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/**\n * A [DI token](guide/glossary#di-token \"DI token definition\") representing a unique string ID, used\n * primarily for prefixing application attributes and CSS styles when\n * {@link ViewEncapsulation#Emulated ViewEncapsulation.Emulated} is being used.\n *\n * BY default, the value is randomly generated and assigned to the application by Angular.\n * To provide a custom ID value, use a DI provider <!-- TODO: provider --> to configure\n * the root {@link Injector} that uses this token.\n *\n * @publicApi\n */\nconst APP_ID = new InjectionToken('AppId', {\n providedIn: 'root',\n factory: _appIdRandomProviderFactory,\n});\nfunction _appIdRandomProviderFactory() {\n return `${_randomChar()}${_randomChar()}${_randomChar()}`;\n}\n/**\n * Providers that generate a random `APP_ID_TOKEN`.\n * @publicApi\n */\nconst APP_ID_RANDOM_PROVIDER = {\n provide: APP_ID,\n useFactory: _appIdRandomProviderFactory,\n deps: [],\n};\nfunction _randomChar() {\n return String.fromCharCode(97 + Math.floor(Math.random() * 25));\n}\n/**\n * A function that is executed when a platform is initialized.\n * @publicApi\n */\nconst PLATFORM_INITIALIZER = new InjectionToken('Platform Initializer');\n/**\n * A token that indicates an opaque platform ID.\n * @publicApi\n */\nconst PLATFORM_ID = new InjectionToken('Platform ID', {\n providedIn: 'platform',\n factory: () => 'unknown', // set a default platform name, when none set explicitly\n});\n/**\n * A [DI token](guide/glossary#di-token \"DI token definition\") that provides a set of callbacks to\n * be called for every component that is bootstrapped.\n *\n * Each callback must take a `ComponentRef` instance and return nothing.\n *\n * `(componentRef: ComponentRef) => void`\n *\n * @publicApi\n */\nconst APP_BOOTSTRAP_LISTENER = new InjectionToken('appBootstrapListener');\n/**\n * A [DI token](guide/glossary#di-token \"DI token definition\") that indicates the root directory of\n * the application\n * @publicApi\n */\nconst PACKAGE_ROOT_URL = new InjectionToken('Application Packages Root URL');\n\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 */\nclass Console {\n log(message) {\n // tslint:disable-next-line:no-console\n console.log(message);\n }\n // Note: for reporting errors use `DOM.logError()` as it is platform specific\n warn(message) {\n // tslint:disable-next-line:no-console\n console.warn(message);\n }\n}\nConsole.ɵfac = function Console_Factory(t) { return new (t || Console)(); };\nConsole.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Console, factory: Console.ɵfac, providedIn: 'platform' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(Console, [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], null, null);\n})();\n\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/**\n * Work out the locale from the potential global properties.\n *\n * * Closure Compiler: use `goog.LOCALE`.\n * * Ivy enabled: use `$localize.locale`\n */\nfunction getGlobalLocale() {\n if (typeof ngI18nClosureMode !== 'undefined' && ngI18nClosureMode &&\n typeof goog !== 'undefined' && goog.LOCALE !== 'en') {\n // * The default `goog.LOCALE` value is `en`, while Angular used `en-US`.\n // * In order to preserve backwards compatibility, we use Angular default value over\n // Closure Compiler's one.\n return goog.LOCALE;\n }\n else {\n // KEEP `typeof $localize !== 'undefined' && $localize.locale` IN SYNC WITH THE LOCALIZE\n // COMPILE-TIME INLINER.\n //\n // * During compile time inlining of translations the expression will be replaced\n // with a string literal that is the current locale. Other forms of this expression are not\n // guaranteed to be replaced.\n //\n // * During runtime translation evaluation, the developer is required to set `$localize.locale`\n // if required, or just to provide their own `LOCALE_ID` provider.\n return (typeof $localize !== 'undefined' && $localize.locale) || DEFAULT_LOCALE_ID;\n }\n}\n/**\n * Provide this token to set the locale of your application.\n * It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,\n * DecimalPipe and PercentPipe) and by ICU expressions.\n *\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * import { LOCALE_ID } from '@angular/core';\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { AppModule } from './app/app.module';\n *\n * platformBrowserDynamic().bootstrapModule(AppModule, {\n * providers: [{provide: LOCALE_ID, useValue: 'en-US' }]\n * });\n * ```\n *\n * @publicApi\n */\nconst LOCALE_ID = new InjectionToken('LocaleId', {\n providedIn: 'root',\n factory: () => inject(LOCALE_ID, InjectFlags.Optional | InjectFlags.SkipSelf) || getGlobalLocale(),\n});\n/**\n * Provide this token to set the default currency code your application uses for\n * CurrencyPipe when there is no currency code passed into it. This is only used by\n * CurrencyPipe and has no relation to locale currency. Defaults to USD if not configured.\n *\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\n *\n * <div class=\"alert is-helpful\">\n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v10 the default currency code will be taken from the current locale.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n * </div>\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { AppModule } from './app/app.module';\n *\n * platformBrowserDynamic().bootstrapModule(AppModule, {\n * providers: [{provide: DEFAULT_CURRENCY_CODE, useValue: 'EUR' }]\n * });\n * ```\n *\n * @publicApi\n */\nconst DEFAULT_CURRENCY_CODE = new InjectionToken('DefaultCurrencyCode', {\n providedIn: 'root',\n factory: () => USD_CURRENCY_CODE,\n});\n/**\n * Use this token at bootstrap to provide the content of your translation file (`xtb`,\n * `xlf` or `xlf2`) when you want to translate your application in another language.\n *\n * See the [i18n guide](guide/i18n-common-merge) for more information.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * import { TRANSLATIONS } from '@angular/core';\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { AppModule } from './app/app.module';\n *\n * // content of your translation file\n * const translations = '....';\n *\n * platformBrowserDynamic().bootstrapModule(AppModule, {\n * providers: [{provide: TRANSLATIONS, useValue: translations }]\n * });\n * ```\n *\n * @publicApi\n */\nconst TRANSLATIONS = new InjectionToken('Translations');\n/**\n * Provide this token at bootstrap to set the format of your {@link TRANSLATIONS}: `xtb`,\n * `xlf` or `xlf2`.\n *\n * See the [i18n guide](guide/i18n-common-merge) for more information.\n *\n * @usageNotes\n * ### Example\n *\n * ```typescript\n * import { TRANSLATIONS_FORMAT } from '@angular/core';\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { AppModule } from './app/app.module';\n *\n * platformBrowserDynamic().bootstrapModule(AppModule, {\n * providers: [{provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }]\n * });\n * ```\n *\n * @publicApi\n */\nconst TRANSLATIONS_FORMAT = new InjectionToken('TranslationsFormat');\n/**\n * Use this enum at bootstrap as an option of `bootstrapModule` to define the strategy\n * that the compiler should use in case of missing translations:\n * - Error: throw if you have missing translations.\n * - Warning (default): show a warning in the console and/or shell.\n * - Ignore: do nothing.\n *\n * See the [i18n guide](guide/i18n-common-merge#report-missing-translations) for more information.\n *\n * @usageNotes\n * ### Example\n * ```typescript\n * import { MissingTranslationStrategy } from '@angular/core';\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { AppModule } from './app/app.module';\n *\n * platformBrowserDynamic().bootstrapModule(AppModule, {\n * missingTranslation: MissingTranslationStrategy.Error\n * });\n * ```\n *\n * @publicApi\n */\nvar MissingTranslationStrategy;\n(function (MissingTranslationStrategy) {\n MissingTranslationStrategy[MissingTranslationStrategy[\"Error\"] = 0] = \"Error\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Warning\"] = 1] = \"Warning\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Ignore\"] = 2] = \"Ignore\";\n})(MissingTranslationStrategy || (MissingTranslationStrategy = {}));\n\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/**\n * Combination of NgModuleFactory and ComponentFactories.\n *\n * @publicApi\n *\n * @deprecated\n * Ivy JIT mode doesn't require accessing this symbol.\n * See [JIT API changes due to ViewEngine deprecation](guide/deprecations#jit-api-changes) for\n * additional context.\n */\nclass ModuleWithComponentFactories {\n constructor(ngModuleFactory, componentFactories) {\n this.ngModuleFactory = ngModuleFactory;\n this.componentFactories = componentFactories;\n }\n}\n/**\n * Low-level service for running the angular compiler during runtime\n * to create {@link ComponentFactory}s, which\n * can later be used to create and render a Component instance.\n *\n * Each `@NgModule` provides an own `Compiler` to its injector,\n * that will use the directives/pipes of the ng module for compilation\n * of components.\n *\n * @publicApi\n *\n * @deprecated\n * Ivy JIT mode doesn't require accessing this symbol.\n * See [JIT API changes due to ViewEngine deprecation](guide/deprecations#jit-api-changes) for\n * additional context.\n */\nclass Compiler {\n /**\n * Compiles the given NgModule and all of its components. All templates of the components listed\n * in `entryComponents` have to be inlined.\n */\n compileModuleSync(moduleType) {\n return new NgModuleFactory(moduleType);\n }\n /**\n * Compiles the given NgModule and all of its components\n */\n compileModuleAsync(moduleType) {\n return Promise.resolve(this.compileModuleSync(moduleType));\n }\n /**\n * Same as {@link #compileModuleSync} but also creates ComponentFactories for all components.\n */\n compileModuleAndAllComponentsSync(moduleType) {\n const ngModuleFactory = this.compileModuleSync(moduleType);\n const moduleDef = getNgModuleDef(moduleType);\n const componentFactories = maybeUnwrapFn(moduleDef.declarations)\n .reduce((factories, declaration) => {\n const componentDef = getComponentDef(declaration);\n componentDef && factories.push(new ComponentFactory(componentDef));\n return factories;\n }, []);\n return new ModuleWithComponentFactories(ngModuleFactory, componentFactories);\n }\n /**\n * Same as {@link #compileModuleAsync} but also creates ComponentFactories for all components.\n */\n compileModuleAndAllComponentsAsync(moduleType) {\n return Promise.resolve(this.compileModuleAndAllComponentsSync(moduleType));\n }\n /**\n * Clears all caches.\n */\n clearCache() { }\n /**\n * Clears the cache for the given component/ngModule.\n */\n clearCacheFor(type) { }\n /**\n * Returns the id for a given NgModule, if one is defined and known to the compiler.\n */\n getModuleId(moduleType) {\n return undefined;\n }\n}\nCompiler.ɵfac = function Compiler_Factory(t) { return new (t || Compiler)(); };\nCompiler.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Compiler, factory: Compiler.ɵfac, providedIn: 'root' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(Compiler, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null);\n})();\n/**\n * Token to provide CompilerOptions in the platform injector.\n *\n * @publicApi\n */\nconst COMPILER_OPTIONS = new InjectionToken('compilerOptions');\n/**\n * A factory for creating a Compiler\n *\n * @publicApi\n *\n * @deprecated\n * Ivy JIT mode doesn't require accessing this symbol.\n * See [JIT API changes due to ViewEngine deprecation](guide/deprecations#jit-api-changes) for\n * additional context.\n */\nclass CompilerFactory {\n}\n\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 */\nconst promise = (() => Promise.resolve(0))();\nfunction scheduleMicroTask(fn) {\n if (typeof Zone === 'undefined') {\n // use promise to schedule microTask instead of use Zone\n promise.then(() => {\n fn && fn.apply(null, null);\n });\n }\n else {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n }\n}\n\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 */\nfunction getNativeRequestAnimationFrame() {\n let nativeRequestAnimationFrame = _global['requestAnimationFrame'];\n let nativeCancelAnimationFrame = _global['cancelAnimationFrame'];\n if (typeof Zone !== 'undefined' && nativeRequestAnimationFrame && nativeCancelAnimationFrame) {\n // use unpatched version of requestAnimationFrame(native delegate) if possible\n // to avoid another Change detection\n const unpatchedRequestAnimationFrame = nativeRequestAnimationFrame[Zone.__symbol__('OriginalDelegate')];\n if (unpatchedRequestAnimationFrame) {\n nativeRequestAnimationFrame = unpatchedRequestAnimationFrame;\n }\n const unpatchedCancelAnimationFrame = nativeCancelAnimationFrame[Zone.__symbol__('OriginalDelegate')];\n if (unpatchedCancelAnimationFrame) {\n nativeCancelAnimationFrame = unpatchedCancelAnimationFrame;\n }\n }\n return { nativeRequestAnimationFrame, nativeCancelAnimationFrame };\n}\n\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/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * <!-- TODO: add/fix links to:\n * - docs explaining zones and the use of zones in Angular and change-detection\n * - link to runOutsideAngular/run (throughout this file!)\n * -->\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * import {Component, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo',\n * template: `\n * <h2>Demo: NgZone</h2>\n *\n * <p>Progress: {{progress}}%</p>\n * <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\n *\n * <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\n * <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\n * `,\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => { console.log('Outside Done!'); });\n * });\n * });\n * }\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback), 10);\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass NgZone {\n constructor({ enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false }) {\n this.hasPendingMacrotasks = false;\n this.hasPendingMicrotasks = false;\n /**\n * Whether there are no outstanding microtasks or macrotasks.\n */\n this.isStable = true;\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n this.onUnstable = new EventEmitter(false);\n /**\n * Notifies when there is no more microtasks enqueued in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n this.onMicrotaskEmpty = new EventEmitter(false);\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n this.onStable = new EventEmitter(false);\n /**\n * Notifies that an error has been delivered.\n */\n this.onError = new EventEmitter(false);\n if (typeof Zone == 'undefined') {\n throw new Error(`In this configuration Angular requires Zone.js`);\n }\n Zone.assertZonePatched();\n const self = this;\n self._nesting = 0;\n self._outer = self._inner = Zone.current;\n if (Zone['TaskTrackingZoneSpec']) {\n self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']);\n }\n if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {\n self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);\n }\n // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be\n // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.\n self.shouldCoalesceEventChangeDetection =\n !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;\n self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;\n self.lastRequestAnimationFrameId = -1;\n self.nativeRequestAnimationFrame = getNativeRequestAnimationFrame().nativeRequestAnimationFrame;\n forkInnerZoneWithAngularBehavior(self);\n }\n static isInAngularZone() {\n // Zone needs to be checked, because this method might be called even when NoopNgZone is used.\n return typeof Zone !== 'undefined' && Zone.current.get('isAngularZone') === true;\n }\n static assertInAngularZone() {\n if (!NgZone.isInAngularZone()) {\n throw new Error('Expected to be in Angular Zone, but it is not!');\n }\n }\n static assertNotInAngularZone() {\n if (NgZone.isInAngularZone()) {\n throw new Error('Expected to not be in Angular Zone, but it is!');\n }\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run(fn, applyThis, applyArgs) {\n return this._inner.run(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone as a task and returns value\n * returned by the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n runTask(fn, applyThis, applyArgs, name) {\n const zone = this._inner;\n const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);\n try {\n return zone.runTask(task, applyThis, applyArgs);\n }\n finally {\n zone.cancelTask(task);\n }\n }\n /**\n * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\n * rethrown.\n */\n runGuarded(fn, applyThis, applyArgs) {\n return this._inner.runGuarded(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\n * work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular(fn) {\n return this._outer.run(fn);\n }\n}\nconst EMPTY_PAYLOAD = {};\nfunction checkStable(zone) {\n // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent\n // re-entry. The case is:\n //\n // @Component({...})\n // export class AppComponent {\n // constructor(private ngZone: NgZone) {\n // this.ngZone.onStable.subscribe(() => {\n // this.ngZone.run(() => console.log('stable'););\n // });\n // }\n //\n // The onStable subscriber run another function inside ngZone\n // which causes `checkStable()` re-entry.\n // But this fix causes some issues in g3, so this fix will be\n // launched in another PR.\n if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {\n try {\n zone._nesting++;\n zone.onMicrotaskEmpty.emit(null);\n }\n finally {\n zone._nesting--;\n if (!zone.hasPendingMicrotasks) {\n try {\n zone.runOutsideAngular(() => zone.onStable.emit(null));\n }\n finally {\n zone.isStable = true;\n }\n }\n }\n }\n}\nfunction delayChangeDetectionForEvents(zone) {\n /**\n * We also need to check _nesting here\n * Consider the following case with shouldCoalesceRunChangeDetection = true\n *\n * ngZone.run(() => {});\n * ngZone.run(() => {});\n *\n * We want the two `ngZone.run()` only trigger one change detection\n * when shouldCoalesceRunChangeDetection is true.\n * And because in this case, change detection run in async way(requestAnimationFrame),\n * so we also need to check the _nesting here to prevent multiple\n * change detections.\n */\n if (zone.isCheckStableRunning || zone.lastRequestAnimationFrameId !== -1) {\n return;\n }\n zone.lastRequestAnimationFrameId = zone.nativeRequestAnimationFrame.call(_global, () => {\n // This is a work around for https://github.com/angular/angular/issues/36839.\n // The core issue is that when event coalescing is enabled it is possible for microtasks\n // to get flushed too early (As is the case with `Promise.then`) between the\n // coalescing eventTasks.\n //\n // To workaround this we schedule a \"fake\" eventTask before we process the\n // coalescing eventTasks. The benefit of this is that the \"fake\" container eventTask\n // will prevent the microtasks queue from getting drained in between the coalescing\n // eventTask execution.\n if (!zone.fakeTopEventTask) {\n zone.fakeTopEventTask = Zone.root.scheduleEventTask('fakeTopEventTask', () => {\n zone.lastRequestAnimationFrameId = -1;\n updateMicroTaskStatus(zone);\n zone.isCheckStableRunning = true;\n checkStable(zone);\n zone.isCheckStableRunning = false;\n }, undefined, () => { }, () => { });\n }\n zone.fakeTopEventTask.invoke();\n });\n updateMicroTaskStatus(zone);\n}\nfunction forkInnerZoneWithAngularBehavior(zone) {\n const delayChangeDetectionForEventsDelegate = () => {\n delayChangeDetectionForEvents(zone);\n };\n zone._inner = zone._inner.fork({\n name: 'angular',\n properties: { 'isAngularZone': true },\n onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {\n try {\n onEnter(zone);\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n finally {\n if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||\n zone.shouldCoalesceRunChangeDetection) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {\n try {\n onEnter(zone);\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n finally {\n if (zone.shouldCoalesceRunChangeDetection) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onHasTask: (delegate, current, target, hasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current === target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n zone._hasPendingMicrotasks = hasTaskState.microTask;\n updateMicroTaskStatus(zone);\n checkStable(zone);\n }\n else if (hasTaskState.change == 'macroTask') {\n zone.hasPendingMacrotasks = hasTaskState.macroTask;\n }\n }\n },\n onHandleError: (delegate, current, target, error) => {\n delegate.handleError(target, error);\n zone.runOutsideAngular(() => zone.onError.emit(error));\n return false;\n }\n });\n}\nfunction updateMicroTaskStatus(zone) {\n if (zone._hasPendingMicrotasks ||\n ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&\n zone.lastRequestAnimationFrameId !== -1)) {\n zone.hasPendingMicrotasks = true;\n }\n else {\n zone.hasPendingMicrotasks = false;\n }\n}\nfunction onEnter(zone) {\n zone._nesting++;\n if (zone.isStable) {\n zone.isStable = false;\n zone.onUnstable.emit(null);\n }\n}\nfunction onLeave(zone) {\n zone._nesting--;\n checkStable(zone);\n}\n/**\n * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls\n * to framework to perform rendering.\n */\nclass NoopNgZone {\n constructor() {\n this.hasPendingMicrotasks = false;\n this.hasPendingMacrotasks = false;\n this.isStable = true;\n this.onUnstable = new EventEmitter();\n this.onMicrotaskEmpty = new EventEmitter();\n this.onStable = new EventEmitter();\n this.onError = new EventEmitter();\n }\n run(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runGuarded(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runOutsideAngular(fn) {\n return fn();\n }\n runTask(fn, applyThis, applyArgs, name) {\n return fn.apply(applyThis, applyArgs);\n }\n}\n\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/**\n * The Testability service provides testing hooks that can be accessed from\n * the browser. Each bootstrapped Angular application on the page will have\n * an instance of Testability.\n * @publicApi\n */\nclass Testability {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n this._pendingCount = 0;\n this._isZoneStable = true;\n /**\n * Whether any work was done since the last 'whenStable' callback. This is\n * useful to detect if this could have potentially destabilized another\n * component while it is stabilizing.\n * @internal\n */\n this._didWork = false;\n this._callbacks = [];\n this.taskTrackingZone = null;\n this._watchAngularEvents();\n _ngZone.run(() => {\n this.taskTrackingZone =\n typeof Zone == 'undefined' ? null : Zone.current.get('TaskTrackingZone');\n });\n }\n _watchAngularEvents() {\n this._ngZone.onUnstable.subscribe({\n next: () => {\n this._didWork = true;\n this._isZoneStable = false;\n }\n });\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.subscribe({\n next: () => {\n NgZone.assertNotInAngularZone();\n scheduleMicroTask(() => {\n this._isZoneStable = true;\n this._runCallbacksIfReady();\n });\n }\n });\n });\n }\n /**\n * Increases the number of pending request\n * @deprecated pending requests are now tracked with zones.\n */\n increasePendingRequestCount() {\n this._pendingCount += 1;\n this._didWork = true;\n return this._pendingCount;\n }\n /**\n * Decreases the number of pending request\n * @deprecated pending requests are now tracked with zones\n */\n decreasePendingRequestCount() {\n this._pendingCount -= 1;\n if (this._pendingCount < 0) {\n throw new Error('pending async requests below zero');\n }\n this._runCallbacksIfReady();\n return this._pendingCount;\n }\n /**\n * Whether an associated application is stable\n */\n isStable() {\n return this._isZoneStable && this._pendingCount === 0 && !this._ngZone.hasPendingMacrotasks;\n }\n _runCallbacksIfReady() {\n if (this.isStable()) {\n // Schedules the call backs in a new frame so that it is always async.\n scheduleMicroTask(() => {\n while (this._callbacks.length !== 0) {\n let cb = this._callbacks.pop();\n clearTimeout(cb.timeoutId);\n cb.doneCb(this._didWork);\n }\n this._didWork = false;\n });\n }\n else {\n // Still not stable, send updates.\n let pending = this.getPendingTasks();\n this._callbacks = this._callbacks.filter((cb) => {\n if (cb.updateCb && cb.updateCb(pending)) {\n clearTimeout(cb.timeoutId);\n return false;\n }\n return true;\n });\n this._didWork = true;\n }\n }\n getPendingTasks() {\n if (!this.taskTrackingZone) {\n return [];\n }\n // Copy the tasks data so that we don't leak tasks.\n return this.taskTrackingZone.macroTasks.map((t) => {\n return {\n source: t.source,\n // From TaskTrackingZone:\n // https://github.com/angular/zone.js/blob/master/lib/zone-spec/task-tracking.ts#L40\n creationLocation: t.creationLocation,\n data: t.data\n };\n });\n }\n addCallback(cb, timeout, updateCb) {\n let timeoutId = -1;\n if (timeout && timeout > 0) {\n timeoutId = setTimeout(() => {\n this._callbacks = this._callbacks.filter((cb) => cb.timeoutId !== timeoutId);\n cb(this._didWork, this.getPendingTasks());\n }, timeout);\n }\n this._callbacks.push({ doneCb: cb, timeoutId: timeoutId, updateCb: updateCb });\n }\n /**\n * Wait for the application to be stable with a timeout. If the timeout is reached before that\n * happens, the callback receives a list of the macro tasks that were pending, otherwise null.\n *\n * @param doneCb The callback to invoke when Angular is stable or the timeout expires\n * whichever comes first.\n * @param timeout Optional. The maximum time to wait for Angular to become stable. If not\n * specified, whenStable() will wait forever.\n * @param updateCb Optional. If specified, this callback will be invoked whenever the set of\n * pending macrotasks changes. If this callback returns true doneCb will not be invoked\n * and no further updates will be issued.\n */\n whenStable(doneCb, timeout, updateCb) {\n if (updateCb && !this.taskTrackingZone) {\n throw new Error('Task tracking zone is required when passing an update callback to ' +\n 'whenStable(). Is \"zone.js/plugins/task-tracking\" loaded?');\n }\n // These arguments are 'Function' above to keep the public API simple.\n this.addCallback(doneCb, timeout, updateCb);\n this._runCallbacksIfReady();\n }\n /**\n * Get the number of pending requests\n * @deprecated pending requests are now tracked with zones\n */\n getPendingRequestCount() {\n return this._pendingCount;\n }\n /**\n * Find providers by name\n * @param using The root element to search from\n * @param provider The name of binding variable\n * @param exactMatch Whether using exactMatch\n */\n findProviders(using, provider, exactMatch) {\n // TODO(juliemr): implement.\n return [];\n }\n}\nTestability.ɵfac = function Testability_Factory(t) { return new (t || Testability)(ɵɵinject(NgZone)); };\nTestability.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Testability, factory: Testability.ɵfac });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(Testability, [{\n type: Injectable\n }], function () { return [{ type: NgZone }]; }, null);\n})();\n/**\n * A global registry of {@link Testability} instances for specific elements.\n * @publicApi\n */\nclass TestabilityRegistry {\n constructor() {\n /** @internal */\n this._applications = new Map();\n _testabilityGetter.addToWindow(this);\n }\n /**\n * Registers an application with a testability hook so that it can be tracked\n * @param token token of application, root element\n * @param testability Testability hook\n */\n registerApplication(token, testability) {\n this._applications.set(token, testability);\n }\n /**\n * Unregisters an application.\n * @param token token of application, root element\n */\n unregisterApplication(token) {\n this._applications.delete(token);\n }\n /**\n * Unregisters all applications\n */\n unregisterAllApplications() {\n this._applications.clear();\n }\n /**\n * Get a testability hook associated with the application\n * @param elem root element\n */\n getTestability(elem) {\n return this._applications.get(elem) || null;\n }\n /**\n * Get all registered testabilities\n */\n getAllTestabilities() {\n return Array.from(this._applications.values());\n }\n /**\n * Get all registered applications(root elements)\n */\n getAllRootElements() {\n return Array.from(this._applications.keys());\n }\n /**\n * Find testability of a node in the Tree\n * @param elem node\n * @param findInAncestors whether finding testability in ancestors if testability was not found in\n * current node\n */\n findTestabilityInTree(elem, findInAncestors = true) {\n return _testabilityGetter.findTestabilityInTree(this, elem, findInAncestors);\n }\n}\nTestabilityRegistry.ɵfac = function TestabilityRegistry_Factory(t) { return new (t || TestabilityRegistry)(); };\nTestabilityRegistry.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: TestabilityRegistry, factory: TestabilityRegistry.ɵfac, providedIn: 'platform' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(TestabilityRegistry, [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], function () { return []; }, null);\n})();\nclass _NoopGetTestability {\n addToWindow(registry) { }\n findTestabilityInTree(registry, elem, findInAncestors) {\n return null;\n }\n}\n/**\n * Set the {@link GetTestability} implementation used by the Angular testing framework.\n * @publicApi\n */\nfunction setTestabilityGetter(getter) {\n _testabilityGetter = getter;\n}\nlet _testabilityGetter = new _NoopGetTestability();\n\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 */\nlet _platformInjector = null;\n/**\n * Internal token to indicate whether having multiple bootstrapped platform should be allowed (only\n * one bootstrapped platform is allowed by default). This token helps to support SSR scenarios.\n */\nconst ALLOW_MULTIPLE_PLATFORMS = new InjectionToken('AllowMultipleToken');\n/**\n * Internal token that allows to register extra callbacks that should be invoked during the\n * `PlatformRef.destroy` operation. This token is needed to avoid a direct reference to the\n * `PlatformRef` class (i.e. register the callback via `PlatformRef.onDestroy`), thus making the\n * entire class tree-shakeable.\n */\nconst PLATFORM_ON_DESTROY = new InjectionToken('PlatformOnDestroy');\nfunction compileNgModuleFactory(injector, options, moduleType) {\n ngDevMode && assertNgModuleType(moduleType);\n const moduleFactory = new NgModuleFactory(moduleType);\n // All of the logic below is irrelevant for AOT-compiled code.\n if (typeof ngJitMode !== 'undefined' && !ngJitMode) {\n return Promise.resolve(moduleFactory);\n }\n const compilerOptions = injector.get(COMPILER_OPTIONS, []).concat(options);\n // Configure the compiler to use the provided options. This call may fail when multiple modules\n // are bootstrapped with incompatible options, as a component can only be compiled according to\n // a single set of options.\n setJitOptions({\n defaultEncapsulation: _lastDefined(compilerOptions.map(opts => opts.defaultEncapsulation)),\n preserveWhitespaces: _lastDefined(compilerOptions.map(opts => opts.preserveWhitespaces)),\n });\n if (isComponentResourceResolutionQueueEmpty()) {\n return Promise.resolve(moduleFactory);\n }\n const compilerProviders = _mergeArrays(compilerOptions.map(o => o.providers));\n // In case there are no compiler providers, we just return the module factory as\n // there won't be any resource loader. This can happen with Ivy, because AOT compiled\n // modules can be still passed through \"bootstrapModule\". In that case we shouldn't\n // unnecessarily require the JIT compiler.\n if (compilerProviders.length === 0) {\n return Promise.resolve(moduleFactory);\n }\n const compiler = getCompilerFacade({\n usage: 0 /* Decorator */,\n kind: 'NgModule',\n type: moduleType,\n });\n const compilerInjector = Injector.create({ providers: compilerProviders });\n const resourceLoader = compilerInjector.get(compiler.ResourceLoader);\n // The resource loader can also return a string while the \"resolveComponentResources\"\n // always expects a promise. Therefore we need to wrap the returned value in a promise.\n return resolveComponentResources(url => Promise.resolve(resourceLoader.get(url)))\n .then(() => moduleFactory);\n}\nfunction publishDefaultGlobalUtils() {\n ngDevMode && publishDefaultGlobalUtils$1();\n}\nfunction isBoundToModule(cf) {\n return cf.isBoundToModule;\n}\n/**\n * A token for third-party components that can register themselves with NgProbe.\n *\n * @publicApi\n */\nclass NgProbeToken {\n constructor(name, token) {\n this.name = name;\n this.token = token;\n }\n}\n/**\n * Creates a platform.\n * Platforms must be created on launch using this function.\n *\n * @publicApi\n */\nfunction createPlatform(injector) {\n if (_platformInjector && !_platformInjector.get(ALLOW_MULTIPLE_PLATFORMS, false)) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'There can be only one platform. Destroy the previous one to create a new one.' :\n '';\n throw new RuntimeError(400 /* MULTIPLE_PLATFORMS */, errorMessage);\n }\n publishDefaultGlobalUtils();\n _platformInjector = injector;\n const platform = injector.get(PlatformRef);\n const inits = injector.get(PLATFORM_INITIALIZER, null);\n if (inits)\n inits.forEach(initFn => initFn());\n return platform;\n}\n/**\n * Creates a factory for a platform. Can be used to provide or override `Providers` specific to\n * your application's runtime needs, such as `PLATFORM_INITIALIZER` and `PLATFORM_ID`.\n * @param parentPlatformFactory Another platform factory to modify. Allows you to compose factories\n * to build up configurations that might be required by different libraries or parts of the\n * application.\n * @param name Identifies the new platform factory.\n * @param providers A set of dependency providers for platforms created with the new factory.\n *\n * @publicApi\n */\nfunction createPlatformFactory(parentPlatformFactory, name, providers = []) {\n const desc = `Platform: ${name}`;\n const marker = new InjectionToken(desc);\n return (extraProviders = []) => {\n let platform = getPlatform();\n if (!platform || platform.injector.get(ALLOW_MULTIPLE_PLATFORMS, false)) {\n const platformProviders = [\n ...providers,\n ...extraProviders,\n { provide: marker, useValue: true }\n ];\n if (parentPlatformFactory) {\n parentPlatformFactory(platformProviders);\n }\n else {\n createPlatform(createPlatformInjector(platformProviders, desc));\n }\n }\n return assertPlatform(marker);\n };\n}\n/**\n * Checks that there is currently a platform that contains the given token as a provider.\n *\n * @publicApi\n */\nfunction assertPlatform(requiredToken) {\n const platform = getPlatform();\n if (!platform) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ? 'No platform exists!' : '';\n throw new RuntimeError(401 /* PLATFORM_NOT_FOUND */, errorMessage);\n }\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n !platform.injector.get(requiredToken, null)) {\n throw new RuntimeError(400 /* MULTIPLE_PLATFORMS */, 'A platform with a different configuration has been created. Please destroy it first.');\n }\n return platform;\n}\n/**\n * Helper function to create an instance of a platform injector (that maintains the 'platform'\n * scope).\n */\nfunction createPlatformInjector(providers = [], name) {\n return Injector.create({\n name,\n providers: [\n { provide: INJECTOR_SCOPE, useValue: 'platform' },\n { provide: PLATFORM_ON_DESTROY, useValue: () => _platformInjector = null },\n ...providers\n ],\n });\n}\n/**\n * Destroys the current Angular platform and all Angular applications on the page.\n * Destroys all modules and listeners registered with the platform.\n *\n * @publicApi\n */\nfunction destroyPlatform() {\n var _a;\n (_a = getPlatform()) === null || _a === void 0 ? void 0 : _a.destroy();\n}\n/**\n * Returns the current platform.\n *\n * @publicApi\n */\nfunction getPlatform() {\n var _a;\n return (_a = _platformInjector === null || _platformInjector === void 0 ? void 0 : _platformInjector.get(PlatformRef)) !== null && _a !== void 0 ? _a : null;\n}\n/**\n * The Angular platform is the entry point for Angular on a web page.\n * Each page has exactly one platform. Services (such as reflection) which are common\n * to every Angular application running on the page are bound in its scope.\n * A page's platform is initialized implicitly when a platform is created using a platform\n * factory such as `PlatformBrowser`, or explicitly by calling the `createPlatform()` function.\n *\n * @publicApi\n */\nclass PlatformRef {\n /** @internal */\n constructor(_injector) {\n this._injector = _injector;\n this._modules = [];\n this._destroyListeners = [];\n this._destroyed = false;\n }\n /**\n * Creates an instance of an `@NgModule` for the given platform.\n *\n * @deprecated Passing NgModule factories as the `PlatformRef.bootstrapModuleFactory` function\n * argument is deprecated. Use the `PlatformRef.bootstrapModule` API instead.\n */\n bootstrapModuleFactory(moduleFactory, options) {\n // Note: We need to create the NgZone _before_ we instantiate the module,\n // as instantiating the module creates some providers eagerly.\n // So we create a mini parent injector that just contains the new NgZone and\n // pass that as parent to the NgModuleFactory.\n const ngZoneOption = options ? options.ngZone : undefined;\n const ngZoneEventCoalescing = (options && options.ngZoneEventCoalescing) || false;\n const ngZoneRunCoalescing = (options && options.ngZoneRunCoalescing) || false;\n const ngZone = getNgZone(ngZoneOption, { ngZoneEventCoalescing, ngZoneRunCoalescing });\n const providers = [{ provide: NgZone, useValue: ngZone }];\n // Note: Create ngZoneInjector within ngZone.run so that all of the instantiated services are\n // created within the Angular zone\n // Do not try to replace ngZone.run with ApplicationRef#run because ApplicationRef would then be\n // created outside of the Angular zone.\n return ngZone.run(() => {\n const ngZoneInjector = Injector.create({ providers: providers, parent: this.injector, name: moduleFactory.moduleType.name });\n const moduleRef = moduleFactory.create(ngZoneInjector);\n const exceptionHandler = moduleRef.injector.get(ErrorHandler, null);\n if (!exceptionHandler) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'No ErrorHandler. Is platform module (BrowserModule) included?' :\n '';\n throw new RuntimeError(402 /* ERROR_HANDLER_NOT_FOUND */, errorMessage);\n }\n ngZone.runOutsideAngular(() => {\n const subscription = ngZone.onError.subscribe({\n next: (error) => {\n exceptionHandler.handleError(error);\n }\n });\n moduleRef.onDestroy(() => {\n remove(this._modules, moduleRef);\n subscription.unsubscribe();\n });\n });\n return _callAndReportToErrorHandler(exceptionHandler, ngZone, () => {\n const initStatus = moduleRef.injector.get(ApplicationInitStatus);\n initStatus.runInitializers();\n return initStatus.donePromise.then(() => {\n // If the `LOCALE_ID` provider is defined at bootstrap then we set the value for ivy\n const localeId = moduleRef.injector.get(LOCALE_ID, DEFAULT_LOCALE_ID);\n setLocaleId(localeId || DEFAULT_LOCALE_ID);\n this._moduleDoBootstrap(moduleRef);\n return moduleRef;\n });\n });\n });\n }\n /**\n * Creates an instance of an `@NgModule` for a given platform.\n *\n * @usageNotes\n * ### Simple Example\n *\n * ```typescript\n * @NgModule({\n * imports: [BrowserModule]\n * })\n * class MyModule {}\n *\n * let moduleRef = platformBrowser().bootstrapModule(MyModule);\n * ```\n *\n */\n bootstrapModule(moduleType, compilerOptions = []) {\n const options = optionsReducer({}, compilerOptions);\n return compileNgModuleFactory(this.injector, options, moduleType)\n .then(moduleFactory => this.bootstrapModuleFactory(moduleFactory, options));\n }\n _moduleDoBootstrap(moduleRef) {\n const appRef = moduleRef.injector.get(ApplicationRef);\n if (moduleRef._bootstrapComponents.length > 0) {\n moduleRef._bootstrapComponents.forEach(f => appRef.bootstrap(f));\n }\n else if (moduleRef.instance.ngDoBootstrap) {\n moduleRef.instance.ngDoBootstrap(appRef);\n }\n else {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `The module ${stringify(moduleRef.instance.constructor)} was bootstrapped, ` +\n `but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. ` +\n `Please define one of these.` :\n '';\n throw new RuntimeError(403 /* BOOTSTRAP_COMPONENTS_NOT_FOUND */, errorMessage);\n }\n this._modules.push(moduleRef);\n }\n /**\n * Registers a listener to be called when the platform is destroyed.\n */\n onDestroy(callback) {\n this._destroyListeners.push(callback);\n }\n /**\n * Retrieves the platform {@link Injector}, which is the parent injector for\n * every Angular application on the page and provides singleton providers.\n */\n get injector() {\n return this._injector;\n }\n /**\n * Destroys the current Angular platform and all Angular applications on the page.\n * Destroys all modules and listeners registered with the platform.\n */\n destroy() {\n if (this._destroyed) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'The platform has already been destroyed!' :\n '';\n throw new RuntimeError(404 /* ALREADY_DESTROYED_PLATFORM */, errorMessage);\n }\n this._modules.slice().forEach(module => module.destroy());\n this._destroyListeners.forEach(listener => listener());\n const destroyListener = this._injector.get(PLATFORM_ON_DESTROY, null);\n destroyListener === null || destroyListener === void 0 ? void 0 : destroyListener();\n this._destroyed = true;\n }\n get destroyed() {\n return this._destroyed;\n }\n}\nPlatformRef.ɵfac = function PlatformRef_Factory(t) { return new (t || PlatformRef)(ɵɵinject(Injector)); };\nPlatformRef.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: PlatformRef, factory: PlatformRef.ɵfac, providedIn: 'platform' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(PlatformRef, [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], function () { return [{ type: Injector }]; }, null);\n})();\nfunction getNgZone(ngZoneOption, extra) {\n let ngZone;\n if (ngZoneOption === 'noop') {\n ngZone = new NoopNgZone();\n }\n else {\n ngZone = (ngZoneOption === 'zone.js' ? undefined : ngZoneOption) || new NgZone({\n enableLongStackTrace: typeof ngDevMode === 'undefined' ? false : !!ngDevMode,\n shouldCoalesceEventChangeDetection: !!(extra === null || extra === void 0 ? void 0 : extra.ngZoneEventCoalescing),\n shouldCoalesceRunChangeDetection: !!(extra === null || extra === void 0 ? void 0 : extra.ngZoneRunCoalescing)\n });\n }\n return ngZone;\n}\nfunction _callAndReportToErrorHandler(errorHandler, ngZone, callback) {\n try {\n const result = callback();\n if (isPromise(result)) {\n return result.catch((e) => {\n ngZone.runOutsideAngular(() => errorHandler.handleError(e));\n // rethrow as the exception handler might not do it\n throw e;\n });\n }\n return result;\n }\n catch (e) {\n ngZone.runOutsideAngular(() => errorHandler.handleError(e));\n // rethrow as the exception handler might not do it\n throw e;\n }\n}\nfunction optionsReducer(dst, objs) {\n if (Array.isArray(objs)) {\n dst = objs.reduce(optionsReducer, dst);\n }\n else {\n dst = Object.assign(Object.assign({}, dst), objs);\n }\n return dst;\n}\n/**\n * A reference to an Angular application running on a page.\n *\n * @usageNotes\n *\n * {@a is-stable-examples}\n * ### isStable examples and caveats\n *\n * Note two important points about `isStable`, demonstrated in the examples below:\n * - the application will never be stable if you start any kind\n * of recurrent asynchronous task when the application starts\n * (for example for a polling process, started with a `setInterval`, a `setTimeout`\n * or using RxJS operators like `interval`);\n * - the `isStable` Observable runs outside of the Angular zone.\n *\n * Let's imagine that you start a recurrent task\n * (here incrementing a counter, using RxJS `interval`),\n * and at the same time subscribe to `isStable`.\n *\n * ```\n * constructor(appRef: ApplicationRef) {\n * appRef.isStable.pipe(\n * filter(stable => stable)\n * ).subscribe(() => console.log('App is stable now');\n * interval(1000).subscribe(counter => console.log(counter));\n * }\n * ```\n * In this example, `isStable` will never emit `true`,\n * and the trace \"App is stable now\" will never get logged.\n *\n * If you want to execute something when the app is stable,\n * you have to wait for the application to be stable\n * before starting your polling process.\n *\n * ```\n * constructor(appRef: ApplicationRef) {\n * appRef.isStable.pipe(\n * first(stable => stable),\n * tap(stable => console.log('App is stable now')),\n * switchMap(() => interval(1000))\n * ).subscribe(counter => console.log(counter));\n * }\n * ```\n * In this example, the trace \"App is stable now\" will be logged\n * and then the counter starts incrementing every second.\n *\n * Note also that this Observable runs outside of the Angular zone,\n * which means that the code in the subscription\n * to this Observable will not trigger the change detection.\n *\n * Let's imagine that instead of logging the counter value,\n * you update a field of your component\n * and display it in its template.\n *\n * ```\n * constructor(appRef: ApplicationRef) {\n * appRef.isStable.pipe(\n * first(stable => stable),\n * switchMap(() => interval(1000))\n * ).subscribe(counter => this.value = counter);\n * }\n * ```\n * As the `isStable` Observable runs outside the zone,\n * the `value` field will be updated properly,\n * but the template will not be refreshed!\n *\n * You'll have to manually trigger the change detection to update the template.\n *\n * ```\n * constructor(appRef: ApplicationRef, cd: ChangeDetectorRef) {\n * appRef.isStable.pipe(\n * first(stable => stable),\n * switchMap(() => interval(1000))\n * ).subscribe(counter => {\n * this.value = counter;\n * cd.detectChanges();\n * });\n * }\n * ```\n *\n * Or make the subscription callback run inside the zone.\n *\n * ```\n * constructor(appRef: ApplicationRef, zone: NgZone) {\n * appRef.isStable.pipe(\n * first(stable => stable),\n * switchMap(() => interval(1000))\n * ).subscribe(counter => zone.run(() => this.value = counter));\n * }\n * ```\n *\n * @publicApi\n */\nclass ApplicationRef {\n /** @internal */\n constructor(_zone, _injector, _exceptionHandler, _initStatus) {\n this._zone = _zone;\n this._injector = _injector;\n this._exceptionHandler = _exceptionHandler;\n this._initStatus = _initStatus;\n /** @internal */\n this._bootstrapListeners = [];\n this._views = [];\n this._runningTick = false;\n this._stable = true;\n /**\n * Get a list of component types registered to this application.\n * This list is populated even before the component is created.\n */\n this.componentTypes = [];\n /**\n * Get a list of components registered to this application.\n */\n this.components = [];\n this._onMicrotaskEmptySubscription = this._zone.onMicrotaskEmpty.subscribe({\n next: () => {\n this._zone.run(() => {\n this.tick();\n });\n }\n });\n const isCurrentlyStable = new Observable((observer) => {\n this._stable = this._zone.isStable && !this._zone.hasPendingMacrotasks &&\n !this._zone.hasPendingMicrotasks;\n this._zone.runOutsideAngular(() => {\n observer.next(this._stable);\n observer.complete();\n });\n });\n const isStable = new Observable((observer) => {\n // Create the subscription to onStable outside the Angular Zone so that\n // the callback is run outside the Angular Zone.\n let stableSub;\n this._zone.runOutsideAngular(() => {\n stableSub = this._zone.onStable.subscribe(() => {\n NgZone.assertNotInAngularZone();\n // Check whether there are no pending macro/micro tasks in the next tick\n // to allow for NgZone to update the state.\n scheduleMicroTask(() => {\n if (!this._stable && !this._zone.hasPendingMacrotasks &&\n !this._zone.hasPendingMicrotasks) {\n this._stable = true;\n observer.next(true);\n }\n });\n });\n });\n const unstableSub = this._zone.onUnstable.subscribe(() => {\n NgZone.assertInAngularZone();\n if (this._stable) {\n this._stable = false;\n this._zone.runOutsideAngular(() => {\n observer.next(false);\n });\n }\n });\n return () => {\n stableSub.unsubscribe();\n unstableSub.unsubscribe();\n };\n });\n this.isStable =\n merge$1(isCurrentlyStable, isStable.pipe(share()));\n }\n /**\n * Bootstrap a component onto the element identified by its selector or, optionally, to a\n * specified element.\n *\n * @usageNotes\n * ### Bootstrap process\n *\n * When bootstrapping a component, Angular mounts it onto a target DOM element\n * and kicks off automatic change detection. The target DOM element can be\n * provided using the `rootSelectorOrNode` argument.\n *\n * If the target DOM element is not provided, Angular tries to find one on a page\n * using the `selector` of the component that is being bootstrapped\n * (first matched element is used).\n *\n * ### Example\n *\n * Generally, we define the component to bootstrap in the `bootstrap` array of `NgModule`,\n * but it requires us to know the component while writing the application code.\n *\n * Imagine a situation where we have to wait for an API call to decide about the component to\n * bootstrap. We can use the `ngDoBootstrap` hook of the `NgModule` and call this method to\n * dynamically bootstrap a component.\n *\n * {@example core/ts/platform/platform.ts region='componentSelector'}\n *\n * Optionally, a component can be mounted onto a DOM element that does not match the\n * selector of the bootstrapped component.\n *\n * In the following example, we are providing a CSS selector to match the target element.\n *\n * {@example core/ts/platform/platform.ts region='cssSelector'}\n *\n * While in this example, we are providing reference to a DOM node.\n *\n * {@example core/ts/platform/platform.ts region='domNode'}\n */\n bootstrap(componentOrFactory, rootSelectorOrNode) {\n if (!this._initStatus.done) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'Cannot bootstrap as there are still asynchronous initializers running. ' +\n 'Bootstrap components in the `ngDoBootstrap` method of the root module.' :\n '';\n throw new RuntimeError(405 /* ASYNC_INITIALIZERS_STILL_RUNNING */, errorMessage);\n }\n let componentFactory;\n if (componentOrFactory instanceof ComponentFactory$1) {\n componentFactory = componentOrFactory;\n }\n else {\n const resolver = this._injector.get(ComponentFactoryResolver$1);\n componentFactory = resolver.resolveComponentFactory(componentOrFactory);\n }\n this.componentTypes.push(componentFactory.componentType);\n // Create a factory associated with the current module if it's not bound to some other\n const ngModule = isBoundToModule(componentFactory) ? undefined : this._injector.get(NgModuleRef$1);\n const selectorOrNode = rootSelectorOrNode || componentFactory.selector;\n const compRef = componentFactory.create(Injector.NULL, [], selectorOrNode, ngModule);\n const nativeElement = compRef.location.nativeElement;\n const testability = compRef.injector.get(Testability, null);\n const testabilityRegistry = testability && compRef.injector.get(TestabilityRegistry);\n if (testability && testabilityRegistry) {\n testabilityRegistry.registerApplication(nativeElement, testability);\n }\n compRef.onDestroy(() => {\n this.detachView(compRef.hostView);\n remove(this.components, compRef);\n if (testabilityRegistry) {\n testabilityRegistry.unregisterApplication(nativeElement);\n }\n });\n this._loadComponent(compRef);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const _console = this._injector.get(Console);\n _console.log(`Angular is running in development mode. Call enableProdMode() to enable production mode.`);\n }\n return compRef;\n }\n /**\n * Invoke this method to explicitly process change detection and its side-effects.\n *\n * In development mode, `tick()` also performs a second change detection cycle to ensure that no\n * further changes are detected. If additional changes are picked up during this second cycle,\n * bindings in the app have side-effects that cannot be resolved in a single change detection\n * pass.\n * In this case, Angular throws an error, since an Angular application can only have one change\n * detection pass during which all change detection must complete.\n */\n tick() {\n if (this._runningTick) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n 'ApplicationRef.tick is called recursively' :\n '';\n throw new RuntimeError(101 /* RECURSIVE_APPLICATION_REF_TICK */, errorMessage);\n }\n try {\n this._runningTick = true;\n for (let view of this._views) {\n view.detectChanges();\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let view of this._views) {\n view.checkNoChanges();\n }\n }\n }\n catch (e) {\n // Attention: Don't rethrow as it could cancel subscriptions to Observables!\n this._zone.runOutsideAngular(() => this._exceptionHandler.handleError(e));\n }\n finally {\n this._runningTick = false;\n }\n }\n /**\n * Attaches a view so that it will be dirty checked.\n * The view will be automatically detached when it is destroyed.\n * This will throw if the view is already attached to a ViewContainer.\n */\n attachView(viewRef) {\n const view = viewRef;\n this._views.push(view);\n view.attachToAppRef(this);\n }\n /**\n * Detaches a view from dirty checking again.\n */\n detachView(viewRef) {\n const view = viewRef;\n remove(this._views, view);\n view.detachFromAppRef();\n }\n _loadComponent(componentRef) {\n this.attachView(componentRef.hostView);\n this.tick();\n this.components.push(componentRef);\n // Get the listeners lazily to prevent DI cycles.\n const listeners = this._injector.get(APP_BOOTSTRAP_LISTENER, []).concat(this._bootstrapListeners);\n listeners.forEach((listener) => listener(componentRef));\n }\n /** @internal */\n ngOnDestroy() {\n this._views.slice().forEach((view) => view.destroy());\n this._onMicrotaskEmptySubscription.unsubscribe();\n }\n /**\n * Returns the number of attached views.\n */\n get viewCount() {\n return this._views.length;\n }\n}\nApplicationRef.ɵfac = function ApplicationRef_Factory(t) { return new (t || ApplicationRef)(ɵɵinject(NgZone), ɵɵinject(Injector), ɵɵinject(ErrorHandler), ɵɵinject(ApplicationInitStatus)); };\nApplicationRef.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' });\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(ApplicationRef, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgZone }, { type: Injector }, { type: ErrorHandler }, { type: ApplicationInitStatus }]; }, null);\n})();\nfunction remove(list, el) {\n const index = list.indexOf(el);\n if (index > -1) {\n list.splice(index, 1);\n }\n}\nfunction _lastDefined(args) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (args[i] !== undefined) {\n return args[i];\n }\n }\n return undefined;\n}\nfunction _mergeArrays(parts) {\n const result = [];\n parts.forEach((part) => part && result.push(...part));\n return result;\n}\n\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/**\n * This file is used to control if the default rendering pipeline should be `ViewEngine` or `Ivy`.\n *\n * For more information on how to run and debug tests with either Ivy or View Engine (legacy),\n * please see [BAZEL.md](./docs/BAZEL.md).\n */\nlet _devMode = true;\nlet _runModeLocked = false;\n/**\n * Returns whether Angular is in development mode. After called once,\n * the value is locked and won't change any more.\n *\n * By default, this is true, unless a user calls `enableProdMode` before calling this.\n *\n * @publicApi\n */\nfunction isDevMode() {\n _runModeLocked = true;\n return _devMode;\n}\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n *\n * @publicApi\n */\nfunction enableProdMode() {\n if (_runModeLocked) {\n throw new Error('Cannot enable prod mode after platform setup.');\n }\n // The below check is there so when ngDevMode is set via terser\n // `global['ngDevMode'] = false;` is also dropped.\n if (typeof ngDevMode === undefined || !!ngDevMode) {\n _global['ngDevMode'] = false;\n }\n _devMode = false;\n}\n\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\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\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/**\n * Returns the NgModuleFactory with the given id (specified using [@NgModule.id\n * field](api/core/NgModule#id)), if it exists and has been loaded. Factories for NgModules that do\n * not specify an `id` cannot be retrieved. Throws if an NgModule cannot be found.\n * @publicApi\n * @deprecated Use `getNgModuleById` instead.\n */\nfunction getModuleFactory(id) {\n const type = getRegisteredNgModuleType(id);\n if (!type)\n throw noModuleError(id);\n return new NgModuleFactory(type);\n}\n/**\n * Returns the NgModule class with the given id (specified using [@NgModule.id\n * field](api/core/NgModule#id)), if it exists and has been loaded. Classes for NgModules that do\n * not specify an `id` cannot be retrieved. Throws if an NgModule cannot be found.\n * @publicApi\n */\nfunction getNgModuleById(id) {\n const type = getRegisteredNgModuleType(id);\n if (!type)\n throw noModuleError(id);\n return type;\n}\nfunction noModuleError(id) {\n return new Error(`No module with ID ${id} loaded`);\n}\n\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/**\n * Base class that provides change detection functionality.\n * A change-detection tree collects all views that are to be checked for changes.\n * Use the methods to add and remove views from the tree, initiate change-detection,\n * and explicitly mark views as _dirty_, meaning that they have changed and need to be re-rendered.\n *\n * @see [Using change detection hooks](guide/lifecycle-hooks#using-change-detection-hooks)\n * @see [Defining custom change detection](guide/lifecycle-hooks#defining-custom-change-detection)\n *\n * @usageNotes\n *\n * The following examples demonstrate how to modify default change-detection behavior\n * to perform explicit detection when needed.\n *\n * ### Use `markForCheck()` with `CheckOnce` strategy\n *\n * The following example sets the `OnPush` change-detection strategy for a component\n * (`CheckOnce`, rather than the default `CheckAlways`), then forces a second check\n * after an interval. See [live demo](https://plnkr.co/edit/GC512b?p=preview).\n *\n * <code-example path=\"core/ts/change_detect/change-detection.ts\"\n * region=\"mark-for-check\"></code-example>\n *\n * ### Detach change detector to limit how often check occurs\n *\n * The following example defines a component with a large list of read-only data\n * that is expected to change constantly, many times per second.\n * To improve performance, we want to check and update the list\n * less often than the changes actually occur. To do that, we detach\n * the component's change detector and perform an explicit local check every five seconds.\n *\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"detach\"></code-example>\n *\n *\n * ### Reattaching a detached component\n *\n * The following example creates a component displaying live data.\n * The component detaches its change detector from the main change detector tree\n * when the `live` property is set to false, and reattaches it when the property\n * becomes true.\n *\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"reattach\"></code-example>\n *\n * @publicApi\n */\nclass ChangeDetectorRef {\n}\n/**\n * @internal\n * @nocollapse\n */\nChangeDetectorRef.__NG_ELEMENT_ID__ = injectChangeDetectorRef;\n/** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */\nfunction injectChangeDetectorRef(flags) {\n return createViewRef(getCurrentTNode(), getLView(), (flags & 16 /* ForPipe */) === 16 /* ForPipe */);\n}\n/**\n * Creates a ViewRef and stores it on the injector as ChangeDetectorRef (public alias).\n *\n * @param tNode The node that is requesting a ChangeDetectorRef\n * @param lView The view to which the node belongs\n * @param isPipe Whether the view is being injected into a pipe.\n * @returns The ChangeDetectorRef to use\n */\nfunction createViewRef(tNode, lView, isPipe) {\n if (isComponentHost(tNode) && !isPipe) {\n // The LView represents the location where the component is declared.\n // Instead we want the LView for the component View and so we need to look it up.\n const componentView = getComponentLViewByIndex(tNode.index, lView); // look down\n return new ViewRef$1(componentView, componentView);\n }\n else if (tNode.type & (3 /* AnyRNode */ | 12 /* AnyContainer */ | 32 /* Icu */)) {\n // The LView represents the location where the injection is requested from.\n // We need to locate the containing LView (in case where the `lView` is an embedded view)\n const hostComponentView = lView[DECLARATION_COMPONENT_VIEW]; // look up\n return new ViewRef$1(hostComponentView, lView);\n }\n return null;\n}\n\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/**\n * Represents an Angular [view](guide/glossary#view \"Definition\").\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nclass ViewRef extends ChangeDetectorRef {\n}\n/**\n * Represents an Angular [view](guide/glossary#view) in a view container.\n * An [embedded view](guide/glossary#view-tree) can be referenced from a component\n * other than the hosting component whose template defines it, or it can be defined\n * independently by a `TemplateRef`.\n *\n * Properties of elements in a view can change, but the structure (number and order) of elements in\n * a view cannot. Change the structure of elements by inserting, moving, or\n * removing nested views in a view container.\n *\n * @see `ViewContainerRef`\n *\n * @usageNotes\n *\n * The following template breaks down into two separate `TemplateRef` instances,\n * an outer one and an inner one.\n *\n * ```\n * Count: {{items.length}}\n * <ul>\n * <li *ngFor=\"let item of items\">{{item}}</li>\n * </ul>\n * ```\n *\n * This is the outer `TemplateRef`:\n *\n * ```\n * Count: {{items.length}}\n * <ul>\n * <ng-template ngFor let-item [ngForOf]=\"items\"></ng-template>\n * </ul>\n * ```\n *\n * This is the inner `TemplateRef`:\n *\n * ```\n * <li>{{item}}</li>\n * ```\n *\n * The outer and inner `TemplateRef` instances are assembled into views as follows:\n *\n * ```\n * <!-- ViewRef: outer-0 -->\n * Count: 2\n * <ul>\n * <ng-template view-container-ref></ng-template>\n * <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->\n * <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->\n * </ul>\n * <!-- /ViewRef: outer-0 -->\n * ```\n * @publicApi\n */\nclass EmbeddedViewRef extends ViewRef {\n}\n\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\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 file exists for easily patching NgModuleFactoryLoader in g3\nvar ng_module_factory_loader_impl = {};\n\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/**\n * @publicApi\n */\nclass DebugEventListener {\n constructor(name, callback) {\n this.name = name;\n this.callback = callback;\n }\n}\n/**\n * @publicApi\n */\nfunction asNativeElements(debugEls) {\n return debugEls.map((el) => el.nativeElement);\n}\n/**\n * @publicApi\n */\nclass DebugNode {\n constructor(nativeNode) {\n this.nativeNode = nativeNode;\n }\n /**\n * The `DebugElement` parent. Will be `null` if this is the root element.\n */\n get parent() {\n const parent = this.nativeNode.parentNode;\n return parent ? new DebugElement(parent) : null;\n }\n /**\n * The host dependency injector. For example, the root element's component instance injector.\n */\n get injector() {\n return getInjector(this.nativeNode);\n }\n /**\n * The element's own component instance, if it has one.\n */\n get componentInstance() {\n const nativeElement = this.nativeNode;\n return nativeElement &&\n (getComponent$1(nativeElement) || getOwningComponent(nativeElement));\n }\n /**\n * An object that provides parent context for this element. Often an ancestor component instance\n * that governs this element.\n *\n * When an element is repeated within *ngFor, the context is an `NgForOf` whose `$implicit`\n * property is the value of the row instance value. For example, the `hero` in `*ngFor=\"let hero\n * of heroes\"`.\n */\n get context() {\n return getComponent$1(this.nativeNode) || getContext(this.nativeNode);\n }\n /**\n * The callbacks attached to the component's @Output properties and/or the element's event\n * properties.\n */\n get listeners() {\n return getListeners(this.nativeNode).filter(listener => listener.type === 'dom');\n }\n /**\n * Dictionary of objects associated with template local variables (e.g. #foo), keyed by the local\n * variable name.\n */\n get references() {\n return getLocalRefs(this.nativeNode);\n }\n /**\n * This component's injector lookup tokens. Includes the component itself plus the tokens that the\n * component lists in its providers metadata.\n */\n get providerTokens() {\n return getInjectionTokens(this.nativeNode);\n }\n}\n/**\n * @publicApi\n *\n * @see [Component testing scenarios](guide/testing-components-scenarios)\n * @see [Basics of testing components](guide/testing-components-basics)\n * @see [Testing utility APIs](guide/testing-utility-apis)\n */\nclass DebugElement extends DebugNode {\n constructor(nativeNode) {\n ngDevMode && assertDomNode(nativeNode);\n super(nativeNode);\n }\n /**\n * The underlying DOM element at the root of the component.\n */\n get nativeElement() {\n return this.nativeNode.nodeType == Node.ELEMENT_NODE ? this.nativeNode : null;\n }\n /**\n * The element tag name, if it is an element.\n */\n get name() {\n const context = getLContext(this.nativeNode);\n if (context !== null) {\n const lView = context.lView;\n const tData = lView[TVIEW].data;\n const tNode = tData[context.nodeIndex];\n return tNode.value;\n }\n else {\n return this.nativeNode.nodeName;\n }\n }\n /**\n * Gets a map of property names to property values for an element.\n *\n * This map includes:\n * - Regular property bindings (e.g. `[id]=\"id\"`)\n * - Host property bindings (e.g. `host: { '[id]': \"id\" }`)\n * - Interpolated property bindings (e.g. `id=\"{{ value }}\")\n *\n * It does not include:\n * - input property bindings (e.g. `[myCustomInput]=\"value\"`)\n * - attribute bindings (e.g. `[attr.role]=\"menu\"`)\n */\n get properties() {\n const context = getLContext(this.nativeNode);\n if (context === null) {\n return {};\n }\n const lView = context.lView;\n const tData = lView[TVIEW].data;\n const tNode = tData[context.nodeIndex];\n const properties = {};\n // Collect properties from the DOM.\n copyDomProperties(this.nativeElement, properties);\n // Collect properties from the bindings. This is needed for animation renderer which has\n // synthetic properties which don't get reflected into the DOM.\n collectPropertyBindings(properties, tNode, lView, tData);\n return properties;\n }\n /**\n * A map of attribute names to attribute values for an element.\n */\n get attributes() {\n const attributes = {};\n const element = this.nativeElement;\n if (!element) {\n return attributes;\n }\n const context = getLContext(element);\n if (context === null) {\n return {};\n }\n const lView = context.lView;\n const tNodeAttrs = lView[TVIEW].data[context.nodeIndex].attrs;\n const lowercaseTNodeAttrs = [];\n // For debug nodes we take the element's attribute directly from the DOM since it allows us\n // to account for ones that weren't set via bindings (e.g. ViewEngine keeps track of the ones\n // that are set through `Renderer2`). The problem is that the browser will lowercase all names,\n // however since we have the attributes already on the TNode, we can preserve the case by going\n // through them once, adding them to the `attributes` map and putting their lower-cased name\n // into an array. Afterwards when we're going through the native DOM attributes, we can check\n // whether we haven't run into an attribute already through the TNode.\n if (tNodeAttrs) {\n let i = 0;\n while (i < tNodeAttrs.length) {\n const attrName = tNodeAttrs[i];\n // Stop as soon as we hit a marker. We only care about the regular attributes. Everything\n // else will be handled below when we read the final attributes off the DOM.\n if (typeof attrName !== 'string')\n break;\n const attrValue = tNodeAttrs[i + 1];\n attributes[attrName] = attrValue;\n lowercaseTNodeAttrs.push(attrName.toLowerCase());\n i += 2;\n }\n }\n const eAttrs = element.attributes;\n for (let i = 0; i < eAttrs.length; i++) {\n const attr = eAttrs[i];\n const lowercaseName = attr.name.toLowerCase();\n // Make sure that we don't assign the same attribute both in its\n // case-sensitive form and the lower-cased one from the browser.\n if (lowercaseTNodeAttrs.indexOf(lowercaseName) === -1) {\n // Save the lowercase name to align the behavior between browsers.\n // IE preserves the case, while all other browser convert it to lower case.\n attributes[lowercaseName] = attr.value;\n }\n }\n return attributes;\n }\n /**\n * The inline styles of the DOM element.\n *\n * Will be `null` if there is no `style` property on the underlying DOM element.\n *\n * @see [ElementCSSInlineStyle](https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style)\n */\n get styles() {\n if (this.nativeElement && this.nativeElement.style) {\n return this.nativeElement.style;\n }\n return {};\n }\n /**\n * A map containing the class names on the element as keys.\n *\n * This map is derived from the `className` property of the DOM element.\n *\n * Note: The values of this object will always be `true`. The class key will not appear in the KV\n * object if it does not exist on the element.\n *\n * @see [Element.className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className)\n */\n get classes() {\n const result = {};\n const element = this.nativeElement;\n // SVG elements return an `SVGAnimatedString` instead of a plain string for the `className`.\n const className = element.className;\n const classes = typeof className !== 'string' ? className.baseVal.split(' ') : className.split(' ');\n classes.forEach((value) => result[value] = true);\n return result;\n }\n /**\n * The `childNodes` of the DOM element as a `DebugNode` array.\n *\n * @see [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes)\n */\n get childNodes() {\n const childNodes = this.nativeNode.childNodes;\n const children = [];\n for (let i = 0; i < childNodes.length; i++) {\n const element = childNodes[i];\n children.push(getDebugNode(element));\n }\n return children;\n }\n /**\n * The immediate `DebugElement` children. Walk the tree by descending through `children`.\n */\n get children() {\n const nativeElement = this.nativeElement;\n if (!nativeElement)\n return [];\n const childNodes = nativeElement.children;\n const children = [];\n for (let i = 0; i < childNodes.length; i++) {\n const element = childNodes[i];\n children.push(getDebugNode(element));\n }\n return children;\n }\n /**\n * @returns the first `DebugElement` that matches the predicate at any depth in the subtree.\n */\n query(predicate) {\n const results = this.queryAll(predicate);\n return results[0] || null;\n }\n /**\n * @returns All `DebugElement` matches for the predicate at any depth in the subtree.\n */\n queryAll(predicate) {\n const matches = [];\n _queryAll(this, predicate, matches, true);\n return matches;\n }\n /**\n * @returns All `DebugNode` matches for the predicate at any depth in the subtree.\n */\n queryAllNodes(predicate) {\n const matches = [];\n _queryAll(this, predicate, matches, false);\n return matches;\n }\n /**\n * Triggers the event by its name if there is a corresponding listener in the element's\n * `listeners` collection.\n *\n * If the event lacks a listener or there's some other problem, consider\n * calling `nativeElement.dispatchEvent(eventObject)`.\n *\n * @param eventName The name of the event to trigger\n * @param eventObj The _event object_ expected by the handler\n *\n * @see [Testing components scenarios](guide/testing-components-scenarios#trigger-event-handler)\n */\n triggerEventHandler(eventName, eventObj) {\n const node = this.nativeNode;\n const invokedListeners = [];\n this.listeners.forEach(listener => {\n if (listener.name === eventName) {\n const callback = listener.callback;\n callback.call(node, eventObj);\n invokedListeners.push(callback);\n }\n });\n // We need to check whether `eventListeners` exists, because it's something\n // that Zone.js only adds to `EventTarget` in browser environments.\n if (typeof node.eventListeners === 'function') {\n // Note that in Ivy we wrap event listeners with a call to `event.preventDefault` in some\n // cases. We use '__ngUnwrap__' as a special token that gives us access to the actual event\n // listener.\n node.eventListeners(eventName).forEach((listener) => {\n // In order to ensure that we can detect the special __ngUnwrap__ token described above, we\n // use `toString` on the listener and see if it contains the token. We use this approach to\n // ensure that it still worked with compiled code since it cannot remove or rename string\n // literals. We also considered using a special function name (i.e. if(listener.name ===\n // special)) but that was more cumbersome and we were also concerned the compiled code could\n // strip the name, turning the condition in to (\"\" === \"\") and always returning true.\n if (listener.toString().indexOf('__ngUnwrap__') !== -1) {\n const unwrappedListener = listener('__ngUnwrap__');\n return invokedListeners.indexOf(unwrappedListener) === -1 &&\n unwrappedListener.call(node, eventObj);\n }\n });\n }\n }\n}\nfunction copyDomProperties(element, properties) {\n if (element) {\n // Skip own properties (as those are patched)\n let obj = Object.getPrototypeOf(element);\n const NodePrototype = Node.prototype;\n while (obj !== null && obj !== NodePrototype) {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n for (let key in descriptors) {\n if (!key.startsWith('__') && !key.startsWith('on')) {\n // don't include properties starting with `__` and `on`.\n // `__` are patched values which should not be included.\n // `on` are listeners which also should not be included.\n const value = element[key];\n if (isPrimitiveValue(value)) {\n properties[key] = value;\n }\n }\n }\n obj = Object.getPrototypeOf(obj);\n }\n }\n}\nfunction isPrimitiveValue(value) {\n return typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number' ||\n value === null;\n}\nfunction _queryAll(parentElement, predicate, matches, elementsOnly) {\n const context = getLContext(parentElement.nativeNode);\n if (context !== null) {\n const parentTNode = context.lView[TVIEW].data[context.nodeIndex];\n _queryNodeChildren(parentTNode, context.lView, predicate, matches, elementsOnly, parentElement.nativeNode);\n }\n else {\n // If the context is null, then `parentElement` was either created with Renderer2 or native DOM\n // APIs.\n _queryNativeNodeDescendants(parentElement.nativeNode, predicate, matches, elementsOnly);\n }\n}\n/**\n * Recursively match the current TNode against the predicate, and goes on with the next ones.\n *\n * @param tNode the current TNode\n * @param lView the LView of this TNode\n * @param predicate the predicate to match\n * @param matches the list of positive matches\n * @param elementsOnly whether only elements should be searched\n * @param rootNativeNode the root native node on which predicate should not be matched\n */\nfunction _queryNodeChildren(tNode, lView, predicate, matches, elementsOnly, rootNativeNode) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const nativeNode = getNativeByTNodeOrNull(tNode, lView);\n // For each type of TNode, specific logic is executed.\n if (tNode.type & (3 /* AnyRNode */ | 8 /* ElementContainer */)) {\n // Case 1: the TNode is an element\n // The native node has to be checked.\n _addQueryMatch(nativeNode, predicate, matches, elementsOnly, rootNativeNode);\n if (isComponentHost(tNode)) {\n // If the element is the host of a component, then all nodes in its view have to be processed.\n // Note: the component's content (tNode.child) will be processed from the insertion points.\n const componentView = getComponentLViewByIndex(tNode.index, lView);\n if (componentView && componentView[TVIEW].firstChild) {\n _queryNodeChildren(componentView[TVIEW].firstChild, componentView, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n else {\n if (tNode.child) {\n // Otherwise, its children have to be processed.\n _queryNodeChildren(tNode.child, lView, predicate, matches, elementsOnly, rootNativeNode);\n }\n // We also have to query the DOM directly in order to catch elements inserted through\n // Renderer2. Note that this is __not__ optimal, because we're walking similar trees multiple\n // times. ViewEngine could do it more efficiently, because all the insertions go through\n // Renderer2, however that's not the case in Ivy. This approach is being used because:\n // 1. Matching the ViewEngine behavior would mean potentially introducing a depedency\n // from `Renderer2` to Ivy which could bring Ivy code into ViewEngine.\n // 2. We would have to make `Renderer3` \"know\" about debug nodes.\n // 3. It allows us to capture nodes that were inserted directly via the DOM.\n nativeNode && _queryNativeNodeDescendants(nativeNode, predicate, matches, elementsOnly);\n }\n // In all cases, if a dynamic container exists for this node, each view inside it has to be\n // processed.\n const nodeOrContainer = lView[tNode.index];\n if (isLContainer(nodeOrContainer)) {\n _queryNodeChildrenInContainer(nodeOrContainer, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n else if (tNode.type & 4 /* Container */) {\n // Case 2: the TNode is a container\n // The native node has to be checked.\n const lContainer = lView[tNode.index];\n _addQueryMatch(lContainer[NATIVE], predicate, matches, elementsOnly, rootNativeNode);\n // Each view inside the container has to be processed.\n _queryNodeChildrenInContainer(lContainer, predicate, matches, elementsOnly, rootNativeNode);\n }\n else if (tNode.type & 16 /* Projection */) {\n // Case 3: the TNode is a projection insertion point (i.e. a <ng-content>).\n // The nodes projected at this location all need to be processed.\n const componentView = lView[DECLARATION_COMPONENT_VIEW];\n const componentHost = componentView[T_HOST];\n const head = componentHost.projection[tNode.projection];\n if (Array.isArray(head)) {\n for (let nativeNode of head) {\n _addQueryMatch(nativeNode, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n else if (head) {\n const nextLView = componentView[PARENT];\n const nextTNode = nextLView[TVIEW].data[head.index];\n _queryNodeChildren(nextTNode, nextLView, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n else if (tNode.child) {\n // Case 4: the TNode is a view.\n _queryNodeChildren(tNode.child, lView, predicate, matches, elementsOnly, rootNativeNode);\n }\n // We don't want to go to the next sibling of the root node.\n if (rootNativeNode !== nativeNode) {\n // To determine the next node to be processed, we need to use the next or the projectionNext\n // link, depending on whether the current node has been projected.\n const nextTNode = (tNode.flags & 4 /* isProjected */) ? tNode.projectionNext : tNode.next;\n if (nextTNode) {\n _queryNodeChildren(nextTNode, lView, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n}\n/**\n * Process all TNodes in a given container.\n *\n * @param lContainer the container to be processed\n * @param predicate the predicate to match\n * @param matches the list of positive matches\n * @param elementsOnly whether only elements should be searched\n * @param rootNativeNode the root native node on which predicate should not be matched\n */\nfunction _queryNodeChildrenInContainer(lContainer, predicate, matches, elementsOnly, rootNativeNode) {\n for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {\n const childView = lContainer[i];\n const firstChild = childView[TVIEW].firstChild;\n if (firstChild) {\n _queryNodeChildren(firstChild, childView, predicate, matches, elementsOnly, rootNativeNode);\n }\n }\n}\n/**\n * Match the current native node against the predicate.\n *\n * @param nativeNode the current native node\n * @param predicate the predicate to match\n * @param matches the list of positive matches\n * @param elementsOnly whether only elements should be searched\n * @param rootNativeNode the root native node on which predicate should not be matched\n */\nfunction _addQueryMatch(nativeNode, predicate, matches, elementsOnly, rootNativeNode) {\n if (rootNativeNode !== nativeNode) {\n const debugNode = getDebugNode(nativeNode);\n if (!debugNode) {\n return;\n }\n // Type of the \"predicate and \"matches\" array are set based on the value of\n // the \"elementsOnly\" parameter. TypeScript is not able to properly infer these\n // types with generics, so we manually cast the parameters accordingly.\n if (elementsOnly && (debugNode instanceof DebugElement) && predicate(debugNode) &&\n matches.indexOf(debugNode) === -1) {\n matches.push(debugNode);\n }\n else if (!elementsOnly && predicate(debugNode) &&\n matches.indexOf(debugNode) === -1) {\n matches.push(debugNode);\n }\n }\n}\n/**\n * Match all the descendants of a DOM node against a predicate.\n *\n * @param nativeNode the current native node\n * @param predicate the predicate to match\n * @param matches the list where matches are stored\n * @param elementsOnly whether only elements should be searched\n */\nfunction _queryNativeNodeDescendants(parentNode, predicate, matches, elementsOnly) {\n const nodes = parentNode.childNodes;\n const length = nodes.length;\n for (let i = 0; i < length; i++) {\n const node = nodes[i];\n const debugNode = getDebugNode(node);\n if (debugNode) {\n if (elementsOnly && (debugNode instanceof DebugElement) && predicate(debugNode) &&\n matches.indexOf(debugNode) === -1) {\n matches.push(debugNode);\n }\n else if (!elementsOnly && predicate(debugNode) &&\n matches.indexOf(debugNode) === -1) {\n matches.push(debugNode);\n }\n _queryNativeNodeDescendants(node, predicate, matches, elementsOnly);\n }\n }\n}\n/**\n * Iterates through the property bindings for a given node and generates\n * a map of property names to values. This map only contains property bindings\n * defined in templates, not in host bindings.\n */\nfunction collectPropertyBindings(properties, tNode, lView, tData) {\n let bindingIndexes = tNode.propertyBindings;\n if (bindingIndexes !== null) {\n for (let i = 0; i < bindingIndexes.length; i++) {\n const bindingIndex = bindingIndexes[i];\n const propMetadata = tData[bindingIndex];\n const metadataParts = propMetadata.split(INTERPOLATION_DELIMITER);\n const propertyName = metadataParts[0];\n if (metadataParts.length > 1) {\n let value = metadataParts[1];\n for (let j = 1; j < metadataParts.length - 1; j++) {\n value += renderStringify(lView[bindingIndex + j - 1]) + metadataParts[j + 1];\n }\n properties[propertyName] = value;\n }\n else {\n properties[propertyName] = lView[bindingIndex];\n }\n }\n }\n}\n// Need to keep the nodes in a global Map so that multiple angular apps are supported.\nconst _nativeNodeToDebugNode = new Map();\nconst NG_DEBUG_PROPERTY = '__ng_debug__';\n/**\n * @publicApi\n */\nfunction getDebugNode(nativeNode) {\n if (nativeNode instanceof Node) {\n if (!(nativeNode.hasOwnProperty(NG_DEBUG_PROPERTY))) {\n nativeNode[NG_DEBUG_PROPERTY] = nativeNode.nodeType == Node.ELEMENT_NODE ?\n new DebugElement(nativeNode) :\n new DebugNode(nativeNode);\n }\n return nativeNode[NG_DEBUG_PROPERTY];\n }\n return null;\n}\n// TODO: cleanup all references to this function and remove it.\nfunction getDebugNodeR2(_nativeNode) {\n return null;\n}\nfunction getAllDebugNodes() {\n return Array.from(_nativeNodeToDebugNode.values());\n}\nfunction indexDebugNode(node) {\n _nativeNodeToDebugNode.set(node.nativeNode, node);\n}\nfunction removeDebugNodeFromIndex(node) {\n _nativeNodeToDebugNode.delete(node.nativeNode);\n}\n\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 */\nclass DefaultIterableDifferFactory {\n constructor() { }\n supports(obj) {\n return isListLikeIterable(obj);\n }\n create(trackByFn) {\n return new DefaultIterableDiffer(trackByFn);\n }\n}\nconst trackByIdentity = (index, item) => item;\n/**\n * @deprecated v4.0.0 - Should not be part of public API.\n * @publicApi\n */\nclass DefaultIterableDiffer {\n constructor(trackByFn) {\n this.length = 0;\n // Keeps track of the used records at any point in time (during & across `_check()` calls)\n this._linkedRecords = null;\n // Keeps track of the removed records at any point in time during `_check()` calls.\n this._unlinkedRecords = null;\n this._previousItHead = null;\n this._itHead = null;\n this._itTail = null;\n this._additionsHead = null;\n this._additionsTail = null;\n this._movesHead = null;\n this._movesTail = null;\n this._removalsHead = null;\n this._removalsTail = null;\n // Keeps track of records where custom track by is the same, but item identity has changed\n this._identityChangesHead = null;\n this._identityChangesTail = null;\n this._trackByFn = trackByFn || trackByIdentity;\n }\n forEachItem(fn) {\n let record;\n for (record = this._itHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n forEachOperation(fn) {\n let nextIt = this._itHead;\n let nextRemove = this._removalsHead;\n let addRemoveOffset = 0;\n let moveOffsets = null;\n while (nextIt || nextRemove) {\n // Figure out which is the next record to process\n // Order: remove, add, move\n const record = !nextRemove ||\n nextIt &&\n nextIt.currentIndex <\n getPreviousIndex(nextRemove, addRemoveOffset, moveOffsets) ?\n nextIt :\n nextRemove;\n const adjPreviousIndex = getPreviousIndex(record, addRemoveOffset, moveOffsets);\n const currentIndex = record.currentIndex;\n // consume the item, and adjust the addRemoveOffset and update moveDistance if necessary\n if (record === nextRemove) {\n addRemoveOffset--;\n nextRemove = nextRemove._nextRemoved;\n }\n else {\n nextIt = nextIt._next;\n if (record.previousIndex == null) {\n addRemoveOffset++;\n }\n else {\n // INVARIANT: currentIndex < previousIndex\n if (!moveOffsets)\n moveOffsets = [];\n const localMovePreviousIndex = adjPreviousIndex - addRemoveOffset;\n const localCurrentIndex = currentIndex - addRemoveOffset;\n if (localMovePreviousIndex != localCurrentIndex) {\n for (let i = 0; i < localMovePreviousIndex; i++) {\n const offset = i < moveOffsets.length ? moveOffsets[i] : (moveOffsets[i] = 0);\n const index = offset + i;\n if (localCurrentIndex <= index && index < localMovePreviousIndex) {\n moveOffsets[i] = offset + 1;\n }\n }\n const previousIndex = record.previousIndex;\n moveOffsets[previousIndex] = localCurrentIndex - localMovePreviousIndex;\n }\n }\n }\n if (adjPreviousIndex !== currentIndex) {\n fn(record, adjPreviousIndex, currentIndex);\n }\n }\n }\n forEachPreviousItem(fn) {\n let record;\n for (record = this._previousItHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n forEachAddedItem(fn) {\n let record;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n forEachMovedItem(fn) {\n let record;\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n fn(record);\n }\n }\n forEachRemovedItem(fn) {\n let record;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n forEachIdentityChange(fn) {\n let record;\n for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) {\n fn(record);\n }\n }\n diff(collection) {\n if (collection == null)\n collection = [];\n if (!isListLikeIterable(collection)) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `Error trying to diff '${stringify(collection)}'. Only arrays and iterables are allowed` :\n '';\n throw new RuntimeError(900 /* INVALID_DIFFER_INPUT */, errorMessage);\n }\n if (this.check(collection)) {\n return this;\n }\n else {\n return null;\n }\n }\n onDestroy() { }\n check(collection) {\n this._reset();\n let record = this._itHead;\n let mayBeDirty = false;\n let index;\n let item;\n let itemTrackBy;\n if (Array.isArray(collection)) {\n this.length = collection.length;\n for (let index = 0; index < this.length; index++) {\n item = collection[index];\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !Object.is(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n }\n else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!Object.is(record.item, item))\n this._addIdentityChange(record, item);\n }\n record = record._next;\n }\n }\n else {\n index = 0;\n iterateListLike(collection, (item) => {\n itemTrackBy = this._trackByFn(index, item);\n if (record === null || !Object.is(record.trackById, itemTrackBy)) {\n record = this._mismatch(record, item, itemTrackBy, index);\n mayBeDirty = true;\n }\n else {\n if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, itemTrackBy, index);\n }\n if (!Object.is(record.item, item))\n this._addIdentityChange(record, item);\n }\n record = record._next;\n index++;\n });\n this.length = index;\n }\n this._truncate(record);\n this.collection = collection;\n return this.isDirty;\n }\n /* CollectionChanges is considered dirty if it has any additions, moves, removals, or identity\n * changes.\n */\n get isDirty() {\n return this._additionsHead !== null || this._movesHead !== null ||\n this._removalsHead !== null || this._identityChangesHead !== null;\n }\n /**\n * Reset the state of the change objects to show no changes. This means set previousKey to\n * currentKey, and clear all of the queues (additions, moves, removals).\n * Set the previousIndexes of moved and added items to their currentIndexes\n * Reset the list of additions, moves and removals\n *\n * @internal\n */\n _reset() {\n if (this.isDirty) {\n let record;\n for (record = this._previousItHead = this._itHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n record.previousIndex = record.currentIndex;\n }\n this._additionsHead = this._additionsTail = null;\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n record.previousIndex = record.currentIndex;\n }\n this._movesHead = this._movesTail = null;\n this._removalsHead = this._removalsTail = null;\n this._identityChangesHead = this._identityChangesTail = null;\n // TODO(vicb): when assert gets supported\n // assert(!this.isDirty);\n }\n }\n /**\n * This is the core function which handles differences between collections.\n *\n * - `record` is the record which we saw at this position last time. If null then it is a new\n * item.\n * - `item` is the current item in the collection\n * - `index` is the position of the item in the collection\n *\n * @internal\n */\n _mismatch(record, item, itemTrackBy, index) {\n // The previous record after which we will append the current one.\n let previousRecord;\n if (record === null) {\n previousRecord = this._itTail;\n }\n else {\n previousRecord = record._prev;\n // Remove the record from the collection since we know it does not match the item.\n this._remove(record);\n }\n // See if we have evicted the item, which used to be at some anterior position of _itHead list.\n record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy, null);\n if (record !== null) {\n // It is an item which we have evicted earlier: reinsert it back into the list.\n // But first we need to check if identity changed, so we can update in view if necessary.\n if (!Object.is(record.item, item))\n this._addIdentityChange(record, item);\n this._reinsertAfter(record, previousRecord, index);\n }\n else {\n // Attempt to see if the item is at some posterior position of _itHead list.\n record = this._linkedRecords === null ? null : this._linkedRecords.get(itemTrackBy, index);\n if (record !== null) {\n // We have the item in _itHead at/after `index` position. We need to move it forward in the\n // collection.\n // But first we need to check if identity changed, so we can update in view if necessary.\n if (!Object.is(record.item, item))\n this._addIdentityChange(record, item);\n this._moveAfter(record, previousRecord, index);\n }\n else {\n // It is a new item: add it.\n record =\n this._addAfter(new IterableChangeRecord_(item, itemTrackBy), previousRecord, index);\n }\n }\n return record;\n }\n /**\n * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)\n *\n * Use case: `[a, a]` => `[b, a, a]`\n *\n * If we did not have this check then the insertion of `b` would:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) leave `a` at index `1` as is. <-- this is wrong!\n * 3) reinsert `a` at index 2. <-- this is wrong!\n *\n * The correct behavior is:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) reinsert `a` at index 1.\n * 3) move `a` at from `1` to `2`.\n *\n *\n * Double check that we have not evicted a duplicate item. We need to check if the item type may\n * have already been removed:\n * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted\n * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a\n * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'\n * at the end.\n *\n * @internal\n */\n _verifyReinsertion(record, item, itemTrackBy, index) {\n let reinsertRecord = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy, null);\n if (reinsertRecord !== null) {\n record = this._reinsertAfter(reinsertRecord, record._prev, index);\n }\n else if (record.currentIndex != index) {\n record.currentIndex = index;\n this._addToMoves(record, index);\n }\n return record;\n }\n /**\n * Get rid of any excess {@link IterableChangeRecord_}s from the previous collection\n *\n * - `record` The first excess {@link IterableChangeRecord_}.\n *\n * @internal\n */\n _truncate(record) {\n // Anything after that needs to be removed;\n while (record !== null) {\n const nextRecord = record._next;\n this._addToRemovals(this._unlink(record));\n record = nextRecord;\n }\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.clear();\n }\n if (this._additionsTail !== null) {\n this._additionsTail._nextAdded = null;\n }\n if (this._movesTail !== null) {\n this._movesTail._nextMoved = null;\n }\n if (this._itTail !== null) {\n this._itTail._next = null;\n }\n if (this._removalsTail !== null) {\n this._removalsTail._nextRemoved = null;\n }\n if (this._identityChangesTail !== null) {\n this._identityChangesTail._nextIdentityChange = null;\n }\n }\n /** @internal */\n _reinsertAfter(record, prevRecord, index) {\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.remove(record);\n }\n const prev = record._prevRemoved;\n const next = record._nextRemoved;\n if (prev === null) {\n this._removalsHead = next;\n }\n else {\n prev._nextRemoved = next;\n }\n if (next === null) {\n this._removalsTail = prev;\n }\n else {\n next._prevRemoved = prev;\n }\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n /** @internal */\n _moveAfter(record, prevRecord, index) {\n this._unlink(record);\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n /** @internal */\n _addAfter(record, prevRecord, index) {\n this._insertAfter(record, prevRecord, index);\n if (this._additionsTail === null) {\n // TODO(vicb):\n // assert(this._additionsHead === null);\n this._additionsTail = this._additionsHead = record;\n }\n else {\n // TODO(vicb):\n // assert(_additionsTail._nextAdded === null);\n // assert(record._nextAdded === null);\n this._additionsTail = this._additionsTail._nextAdded = record;\n }\n return record;\n }\n /** @internal */\n _insertAfter(record, prevRecord, index) {\n // TODO(vicb):\n // assert(record != prevRecord);\n // assert(record._next === null);\n // assert(record._prev === null);\n const next = prevRecord === null ? this._itHead : prevRecord._next;\n // TODO(vicb):\n // assert(next != record);\n // assert(prevRecord != record);\n record._next = next;\n record._prev = prevRecord;\n if (next === null) {\n this._itTail = record;\n }\n else {\n next._prev = record;\n }\n if (prevRecord === null) {\n this._itHead = record;\n }\n else {\n prevRecord._next = record;\n }\n if (this._linkedRecords === null) {\n this._linkedRecords = new _DuplicateMap();\n }\n this._linkedRecords.put(record);\n record.currentIndex = index;\n return record;\n }\n /** @internal */\n _remove(record) {\n return this._addToRemovals(this._unlink(record));\n }\n /** @internal */\n _unlink(record) {\n if (this._linkedRecords !== null) {\n this._linkedRecords.remove(record);\n }\n const prev = record._prev;\n const next = record._next;\n // TODO(vicb):\n // assert((record._prev = null) === null);\n // assert((record._next = null) === null);\n if (prev === null) {\n this._itHead = next;\n }\n else {\n prev._next = next;\n }\n if (next === null) {\n this._itTail = prev;\n }\n else {\n next._prev = prev;\n }\n return record;\n }\n /** @internal */\n _addToMoves(record, toIndex) {\n // TODO(vicb):\n // assert(record._nextMoved === null);\n if (record.previousIndex === toIndex) {\n return record;\n }\n if (this._movesTail === null) {\n // TODO(vicb):\n // assert(_movesHead === null);\n this._movesTail = this._movesHead = record;\n }\n else {\n // TODO(vicb):\n // assert(_movesTail._nextMoved === null);\n this._movesTail = this._movesTail._nextMoved = record;\n }\n return record;\n }\n _addToRemovals(record) {\n if (this._unlinkedRecords === null) {\n this._unlinkedRecords = new _DuplicateMap();\n }\n this._unlinkedRecords.put(record);\n record.currentIndex = null;\n record._nextRemoved = null;\n if (this._removalsTail === null) {\n // TODO(vicb):\n // assert(_removalsHead === null);\n this._removalsTail = this._removalsHead = record;\n record._prevRemoved = null;\n }\n else {\n // TODO(vicb):\n // assert(_removalsTail._nextRemoved === null);\n // assert(record._nextRemoved === null);\n record._prevRemoved = this._removalsTail;\n this._removalsTail = this._removalsTail._nextRemoved = record;\n }\n return record;\n }\n /** @internal */\n _addIdentityChange(record, item) {\n record.item = item;\n if (this._identityChangesTail === null) {\n this._identityChangesTail = this._identityChangesHead = record;\n }\n else {\n this._identityChangesTail = this._identityChangesTail._nextIdentityChange = record;\n }\n return record;\n }\n}\nclass IterableChangeRecord_ {\n constructor(item, trackById) {\n this.item = item;\n this.trackById = trackById;\n this.currentIndex = null;\n this.previousIndex = null;\n /** @internal */\n this._nextPrevious = null;\n /** @internal */\n this._prev = null;\n /** @internal */\n this._next = null;\n /** @internal */\n this._prevDup = null;\n /** @internal */\n this._nextDup = null;\n /** @internal */\n this._prevRemoved = null;\n /** @internal */\n this._nextRemoved = null;\n /** @internal */\n this._nextAdded = null;\n /** @internal */\n this._nextMoved = null;\n /** @internal */\n this._nextIdentityChange = null;\n }\n}\n// A linked list of IterableChangeRecords with the same IterableChangeRecord_.item\nclass _DuplicateItemRecordList {\n constructor() {\n /** @internal */\n this._head = null;\n /** @internal */\n this._tail = null;\n }\n /**\n * Append the record to the list of duplicates.\n *\n * Note: by design all records in the list of duplicates hold the same value in record.item.\n */\n add(record) {\n if (this._head === null) {\n this._head = this._tail = record;\n record._nextDup = null;\n record._prevDup = null;\n }\n else {\n // TODO(vicb):\n // assert(record.item == _head.item ||\n // record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);\n this._tail._nextDup = record;\n record._prevDup = this._tail;\n record._nextDup = null;\n this._tail = record;\n }\n }\n // Returns a IterableChangeRecord_ having IterableChangeRecord_.trackById == trackById and\n // IterableChangeRecord_.currentIndex >= atOrAfterIndex\n get(trackById, atOrAfterIndex) {\n let record;\n for (record = this._head; record !== null; record = record._nextDup) {\n if ((atOrAfterIndex === null || atOrAfterIndex <= record.currentIndex) &&\n Object.is(record.trackById, trackById)) {\n return record;\n }\n }\n return null;\n }\n /**\n * Remove one {@link IterableChangeRecord_} from the list of duplicates.\n *\n * Returns whether the list of duplicates is empty.\n */\n remove(record) {\n // TODO(vicb):\n // assert(() {\n // // verify that the record being removed is in the list.\n // for (IterableChangeRecord_ cursor = _head; cursor != null; cursor = cursor._nextDup) {\n // if (identical(cursor, record)) return true;\n // }\n // return false;\n //});\n const prev = record._prevDup;\n const next = record._nextDup;\n if (prev === null) {\n this._head = next;\n }\n else {\n prev._nextDup = next;\n }\n if (next === null) {\n this._tail = prev;\n }\n else {\n next._prevDup = prev;\n }\n return this._head === null;\n }\n}\nclass _DuplicateMap {\n constructor() {\n this.map = new Map();\n }\n put(record) {\n const key = record.trackById;\n let duplicates = this.map.get(key);\n if (!duplicates) {\n duplicates = new _DuplicateItemRecordList();\n this.map.set(key, duplicates);\n }\n duplicates.add(record);\n }\n /**\n * Retrieve the `value` using key. Because the IterableChangeRecord_ value may be one which we\n * have already iterated over, we use the `atOrAfterIndex` to pretend it is not there.\n *\n * Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we\n * have any more `a`s needs to return the second `a`.\n */\n get(trackById, atOrAfterIndex) {\n const key = trackById;\n const recordList = this.map.get(key);\n return recordList ? recordList.get(trackById, atOrAfterIndex) : null;\n }\n /**\n * Removes a {@link IterableChangeRecord_} from the list of duplicates.\n *\n * The list of duplicates also is removed from the map if it gets empty.\n */\n remove(record) {\n const key = record.trackById;\n const recordList = this.map.get(key);\n // Remove the list of duplicates when it gets empty\n if (recordList.remove(record)) {\n this.map.delete(key);\n }\n return record;\n }\n get isEmpty() {\n return this.map.size === 0;\n }\n clear() {\n this.map.clear();\n }\n}\nfunction getPreviousIndex(item, addRemoveOffset, moveOffsets) {\n const previousIndex = item.previousIndex;\n if (previousIndex === null)\n return previousIndex;\n let moveOffset = 0;\n if (moveOffsets && previousIndex < moveOffsets.length) {\n moveOffset = moveOffsets[previousIndex];\n }\n return previousIndex + addRemoveOffset + moveOffset;\n}\n\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 */\nclass DefaultKeyValueDifferFactory {\n constructor() { }\n supports(obj) {\n return obj instanceof Map || isJsObject(obj);\n }\n create() {\n return new DefaultKeyValueDiffer();\n }\n}\nclass DefaultKeyValueDiffer {\n constructor() {\n this._records = new Map();\n this._mapHead = null;\n // _appendAfter is used in the check loop\n this._appendAfter = null;\n this._previousMapHead = null;\n this._changesHead = null;\n this._changesTail = null;\n this._additionsHead = null;\n this._additionsTail = null;\n this._removalsHead = null;\n this._removalsTail = null;\n }\n get isDirty() {\n return this._additionsHead !== null || this._changesHead !== null ||\n this._removalsHead !== null;\n }\n forEachItem(fn) {\n let record;\n for (record = this._mapHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n forEachPreviousItem(fn) {\n let record;\n for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n forEachChangedItem(fn) {\n let record;\n for (record = this._changesHead; record !== null; record = record._nextChanged) {\n fn(record);\n }\n }\n forEachAddedItem(fn) {\n let record;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n forEachRemovedItem(fn) {\n let record;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n diff(map) {\n if (!map) {\n map = new Map();\n }\n else if (!(map instanceof Map || isJsObject(map))) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `Error trying to diff '${stringify(map)}'. Only maps and objects are allowed` :\n '';\n throw new RuntimeError(900 /* INVALID_DIFFER_INPUT */, errorMessage);\n }\n return this.check(map) ? this : null;\n }\n onDestroy() { }\n /**\n * Check the current state of the map vs the previous.\n * The algorithm is optimised for when the keys do no change.\n */\n check(map) {\n this._reset();\n let insertBefore = this._mapHead;\n this._appendAfter = null;\n this._forEach(map, (value, key) => {\n if (insertBefore && insertBefore.key === key) {\n this._maybeAddToChanges(insertBefore, value);\n this._appendAfter = insertBefore;\n insertBefore = insertBefore._next;\n }\n else {\n const record = this._getOrCreateRecordForKey(key, value);\n insertBefore = this._insertBeforeOrAppend(insertBefore, record);\n }\n });\n // Items remaining at the end of the list have been deleted\n if (insertBefore) {\n if (insertBefore._prev) {\n insertBefore._prev._next = null;\n }\n this._removalsHead = insertBefore;\n for (let record = insertBefore; record !== null; record = record._nextRemoved) {\n if (record === this._mapHead) {\n this._mapHead = null;\n }\n this._records.delete(record.key);\n record._nextRemoved = record._next;\n record.previousValue = record.currentValue;\n record.currentValue = null;\n record._prev = null;\n record._next = null;\n }\n }\n // Make sure tails have no next records from previous runs\n if (this._changesTail)\n this._changesTail._nextChanged = null;\n if (this._additionsTail)\n this._additionsTail._nextAdded = null;\n return this.isDirty;\n }\n /**\n * Inserts a record before `before` or append at the end of the list when `before` is null.\n *\n * Notes:\n * - This method appends at `this._appendAfter`,\n * - This method updates `this._appendAfter`,\n * - The return value is the new value for the insertion pointer.\n */\n _insertBeforeOrAppend(before, record) {\n if (before) {\n const prev = before._prev;\n record._next = before;\n record._prev = prev;\n before._prev = record;\n if (prev) {\n prev._next = record;\n }\n if (before === this._mapHead) {\n this._mapHead = record;\n }\n this._appendAfter = before;\n return before;\n }\n if (this._appendAfter) {\n this._appendAfter._next = record;\n record._prev = this._appendAfter;\n }\n else {\n this._mapHead = record;\n }\n this._appendAfter = record;\n return null;\n }\n _getOrCreateRecordForKey(key, value) {\n if (this._records.has(key)) {\n const record = this._records.get(key);\n this._maybeAddToChanges(record, value);\n const prev = record._prev;\n const next = record._next;\n if (prev) {\n prev._next = next;\n }\n if (next) {\n next._prev = prev;\n }\n record._next = null;\n record._prev = null;\n return record;\n }\n const record = new KeyValueChangeRecord_(key);\n this._records.set(key, record);\n record.currentValue = value;\n this._addToAdditions(record);\n return record;\n }\n /** @internal */\n _reset() {\n if (this.isDirty) {\n let record;\n // let `_previousMapHead` contain the state of the map before the changes\n this._previousMapHead = this._mapHead;\n for (record = this._previousMapHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n // Update `record.previousValue` with the value of the item before the changes\n // We need to update all changed items (that's those which have been added and changed)\n for (record = this._changesHead; record !== null; record = record._nextChanged) {\n record.previousValue = record.currentValue;\n }\n for (record = this._additionsHead; record != null; record = record._nextAdded) {\n record.previousValue = record.currentValue;\n }\n this._changesHead = this._changesTail = null;\n this._additionsHead = this._additionsTail = null;\n this._removalsHead = null;\n }\n }\n // Add the record or a given key to the list of changes only when the value has actually changed\n _maybeAddToChanges(record, newValue) {\n if (!Object.is(newValue, record.currentValue)) {\n record.previousValue = record.currentValue;\n record.currentValue = newValue;\n this._addToChanges(record);\n }\n }\n _addToAdditions(record) {\n if (this._additionsHead === null) {\n this._additionsHead = this._additionsTail = record;\n }\n else {\n this._additionsTail._nextAdded = record;\n this._additionsTail = record;\n }\n }\n _addToChanges(record) {\n if (this._changesHead === null) {\n this._changesHead = this._changesTail = record;\n }\n else {\n this._changesTail._nextChanged = record;\n this._changesTail = record;\n }\n }\n /** @internal */\n _forEach(obj, fn) {\n if (obj instanceof Map) {\n obj.forEach(fn);\n }\n else {\n Object.keys(obj).forEach(k => fn(obj[k], k));\n }\n }\n}\nclass KeyValueChangeRecord_ {\n constructor(key) {\n this.key = key;\n this.previousValue = null;\n this.currentValue = null;\n /** @internal */\n this._nextPrevious = null;\n /** @internal */\n this._next = null;\n /** @internal */\n this._prev = null;\n /** @internal */\n this._nextAdded = null;\n /** @internal */\n this._nextRemoved = null;\n /** @internal */\n this._nextChanged = null;\n }\n}\n\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 */\nfunction defaultIterableDiffersFactory() {\n return new IterableDiffers([new DefaultIterableDifferFactory()]);\n}\n/**\n * A repository of different iterable diffing strategies used by NgFor, NgClass, and others.\n *\n * @publicApi\n */\nclass IterableDiffers {\n constructor(factories) {\n this.factories = factories;\n }\n static create(factories, parent) {\n if (parent != null) {\n const copied = parent.factories.slice();\n factories = factories.concat(copied);\n }\n return new IterableDiffers(factories);\n }\n /**\n * Takes an array of {@link IterableDifferFactory} and returns a provider used to extend the\n * inherited {@link IterableDiffers} instance with the provided factories and return a new\n * {@link IterableDiffers} instance.\n *\n * @usageNotes\n * ### Example\n *\n * The following example shows how to extend an existing list of factories,\n * which will only be applied to the injector for this component and its children.\n * This step is all that's required to make a new {@link IterableDiffer} available.\n *\n * ```\n * @Component({\n * viewProviders: [\n * IterableDiffers.extend([new ImmutableListDiffer()])\n * ]\n * })\n * ```\n */\n static extend(factories) {\n return {\n provide: IterableDiffers,\n useFactory: (parent) => {\n // if parent is null, it means that we are in the root injector and we have just overridden\n // the default injection mechanism for IterableDiffers, in such a case just assume\n // `defaultIterableDiffersFactory`.\n return IterableDiffers.create(factories, parent || defaultIterableDiffersFactory());\n },\n // Dependency technically isn't optional, but we can provide a better error message this way.\n deps: [[IterableDiffers, new SkipSelf(), new Optional()]]\n };\n }\n find(iterable) {\n const factory = this.factories.find(f => f.supports(iterable));\n if (factory != null) {\n return factory;\n }\n else {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `Cannot find a differ supporting object '${iterable}' of type '${getTypeNameForDebugging(iterable)}'` :\n '';\n throw new RuntimeError(901 /* NO_SUPPORTING_DIFFER_FACTORY */, errorMessage);\n }\n }\n}\n/** @nocollapse */\nIterableDiffers.ɵprov = ɵɵdefineInjectable({ token: IterableDiffers, providedIn: 'root', factory: defaultIterableDiffersFactory });\nfunction getTypeNameForDebugging(type) {\n return type['name'] || typeof type;\n}\n\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 */\nfunction defaultKeyValueDiffersFactory() {\n return new KeyValueDiffers([new DefaultKeyValueDifferFactory()]);\n}\n/**\n * A repository of different Map diffing strategies used by NgClass, NgStyle, and others.\n *\n * @publicApi\n */\nclass KeyValueDiffers {\n constructor(factories) {\n this.factories = factories;\n }\n static create(factories, parent) {\n if (parent) {\n const copied = parent.factories.slice();\n factories = factories.concat(copied);\n }\n return new KeyValueDiffers(factories);\n }\n /**\n * Takes an array of {@link KeyValueDifferFactory} and returns a provider used to extend the\n * inherited {@link KeyValueDiffers} instance with the provided factories and return a new\n * {@link KeyValueDiffers} instance.\n *\n * @usageNotes\n * ### Example\n *\n * The following example shows how to extend an existing list of factories,\n * which will only be applied to the injector for this component and its children.\n * This step is all that's required to make a new {@link KeyValueDiffer} available.\n *\n * ```\n * @Component({\n * viewProviders: [\n * KeyValueDiffers.extend([new ImmutableMapDiffer()])\n * ]\n * })\n * ```\n */\n static extend(factories) {\n return {\n provide: KeyValueDiffers,\n useFactory: (parent) => {\n // if parent is null, it means that we are in the root injector and we have just overridden\n // the default injection mechanism for KeyValueDiffers, in such a case just assume\n // `defaultKeyValueDiffersFactory`.\n return KeyValueDiffers.create(factories, parent || defaultKeyValueDiffersFactory());\n },\n // Dependency technically isn't optional, but we can provide a better error message this way.\n deps: [[KeyValueDiffers, new SkipSelf(), new Optional()]]\n };\n }\n find(kv) {\n const factory = this.factories.find(f => f.supports(kv));\n if (factory) {\n return factory;\n }\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `Cannot find a differ supporting object '${kv}'` :\n '';\n throw new RuntimeError(901 /* NO_SUPPORTING_DIFFER_FACTORY */, errorMessage);\n }\n}\n/** @nocollapse */\nKeyValueDiffers.ɵprov = ɵɵdefineInjectable({ token: KeyValueDiffers, providedIn: 'root', factory: defaultKeyValueDiffersFactory });\n\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/**\n * Structural diffing for `Object`s and `Map`s.\n */\nconst keyValDiff = [new DefaultKeyValueDifferFactory()];\n/**\n * Structural diffing for `Iterable` types such as `Array`s.\n */\nconst iterableDiff = [new DefaultIterableDifferFactory()];\nconst defaultIterableDiffers = new IterableDiffers(iterableDiff);\nconst defaultKeyValueDiffers = new KeyValueDiffers(keyValDiff);\n\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\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/**\n * This platform has to be included in any other platform\n *\n * @publicApi\n */\nconst platformCore = createPlatformFactory(null, 'core', []);\n\n/**\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command. Eagerly injects\n * `ApplicationRef` to instantiate it.\n *\n * @publicApi\n */\nclass ApplicationModule {\n // Inject ApplicationRef to make it eager...\n constructor(appRef) { }\n}\nApplicationModule.ɵfac = function ApplicationModule_Factory(t) { return new (t || ApplicationModule)(ɵɵinject(ApplicationRef)); };\nApplicationModule.ɵmod = /*@__PURE__*/ ɵɵdefineNgModule({ type: ApplicationModule });\nApplicationModule.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && setClassMetadata(ApplicationModule, [{\n type: NgModule\n }], function () { return [{ type: ApplicationRef }]; }, null);\n})();\n\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// TODO(alxhub): allows tests to compile, can be removed when tests have been updated.\nconst ɵivyEnabled = true;\n\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/**\n * Compiles a partial directive declaration object into a full directive definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareDirective(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'directive', type: decl.type });\n return compiler.compileDirectiveDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵfac.js`, decl);\n}\n/**\n * Evaluates the class metadata declaration.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareClassMetadata(decl) {\n var _a, _b;\n setClassMetadata(decl.type, decl.decorators, (_a = decl.ctorParameters) !== null && _a !== void 0 ? _a : null, (_b = decl.propDecorators) !== null && _b !== void 0 ? _b : null);\n}\n/**\n * Compiles a partial component declaration object into a full component definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareComponent(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'component', type: decl.type });\n return compiler.compileComponentDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵcmp.js`, decl);\n}\n/**\n * Compiles a partial pipe declaration object into a full pipe definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareFactory(decl) {\n const compiler = getCompilerFacade({\n usage: 1 /* PartialDeclaration */,\n kind: getFactoryKind(decl.target),\n type: decl.type\n });\n return compiler.compileFactoryDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵfac.js`, decl);\n}\nfunction getFactoryKind(target) {\n switch (target) {\n case FactoryTarget.Directive:\n return 'directive';\n case FactoryTarget.Component:\n return 'component';\n case FactoryTarget.Injectable:\n return 'injectable';\n case FactoryTarget.Pipe:\n return 'pipe';\n case FactoryTarget.NgModule:\n return 'NgModule';\n }\n}\n/**\n * Compiles a partial injectable declaration object into a full injectable definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareInjectable(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'injectable', type: decl.type });\n return compiler.compileInjectableDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵprov.js`, decl);\n}\n/**\n * Compiles a partial injector declaration object into a full injector definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareInjector(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'NgModule', type: decl.type });\n return compiler.compileInjectorDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵinj.js`, decl);\n}\n/**\n * Compiles a partial NgModule declaration object into a full NgModule definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclareNgModule(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'NgModule', type: decl.type });\n return compiler.compileNgModuleDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵmod.js`, decl);\n}\n/**\n * Compiles a partial pipe declaration object into a full pipe definition object.\n *\n * @codeGenApi\n */\nfunction ɵɵngDeclarePipe(decl) {\n const compiler = getCompilerFacade({ usage: 1 /* PartialDeclaration */, kind: 'pipe', type: decl.type });\n return compiler.compilePipeDeclaration(angularCoreEnv, `ng:///${decl.type.name}/ɵpipe.js`, decl);\n}\n\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// clang-format on\n\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 */\nif (typeof ngDevMode !== 'undefined' && ngDevMode) {\n // This helper is to give a reasonable error message to people upgrading to v9 that have not yet\n // installed `@angular/localize` in their app.\n // tslint:disable-next-line: no-toplevel-property-access\n _global.$localize = _global.$localize || function () {\n throw new Error('It looks like your application or one of its dependencies is using i18n.\\n' +\n 'Angular 9 introduced a global `$localize()` function that needs to be loaded.\\n' +\n 'Please run `ng add @angular/localize` from the Angular CLI.\\n' +\n '(For non-CLI projects, add `import \\'@angular/localize/init\\';` to your `polyfills.ts` file.\\n' +\n 'For server-side rendering applications add the import to your `main.server.ts` file.)');\n };\n}\n\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 file only reexports content of the `src` folder. Keep it that way.\n\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ANALYZE_FOR_ENTRY_COMPONENTS, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, Directive, ElementRef, EmbeddedViewRef, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertPlatform, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, inject, isDevMode, platformCore, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, ViewRef$1 as ɵViewRef, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, getDebugNode as ɵgetDebugNode, getDebugNodeR2 as ɵgetDebugNodeR2, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, isBoundToModule as ɵisBoundToModule, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isListLikeIterable as ɵisListLikeIterable, isObservable as ɵisObservable, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, ɵivyEnabled, makeDecorator as ɵmakeDecorator, markDirty as ɵmarkDirty, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, registerNgModuleType as ɵregisterNgModuleType, renderComponent as ɵrenderComponent, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenRendered as ɵwhenRendered, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵviewQuery };\n","import * as i0 from '@angular/core';\nimport { Injectable, Optional, Inject, NgModule, InjectionToken } from '@angular/core';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders, HttpParams, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { __awaiter } from 'tslib';\nimport { Subject, of, from, race, throwError, combineLatest, merge } from 'rxjs';\nimport { filter, tap, debounceTime, delay, switchMap, map, first, catchError, timeout, take, mergeMap } from 'rxjs/operators';\nimport fsha256 from 'fast-sha256';\n\nclass DateTimeProvider {\r\n}\r\nclass SystemDateTimeProvider extends DateTimeProvider {\r\n now() {\r\n return Date.now();\r\n }\r\n new() {\r\n return new Date();\r\n }\r\n}\r\nSystemDateTimeProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: SystemDateTimeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\r\nSystemDateTimeProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: SystemDateTimeProvider });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: SystemDateTimeProvider, decorators: [{\r\n type: Injectable\r\n }] });\n\n/**\r\n * Additional options that can be passed to tryLogin.\r\n */\r\nclass LoginOptions {\r\n constructor() {\r\n /**\r\n * Set this to true to disable the nonce\r\n * check which is used to avoid\r\n * replay attacks.\r\n * This flag should never be true in\r\n * production environments.\r\n */\r\n this.disableNonceCheck = false;\r\n /**\r\n * Normally, you want to clear your hash fragment after\r\n * the lib read the token(s) so that they are not displayed\r\n * anymore in the url. If not, set this to true. For code flow\r\n * this controls removing query string values.\r\n */\r\n this.preventClearHashAfterLogin = false;\r\n }\r\n}\r\n/**\r\n * Defines the logging interface the OAuthService uses\r\n * internally. Is compatible with the `console` object,\r\n * but you can provide your own implementation as well\r\n * through dependency injection.\r\n */\r\nclass OAuthLogger {\r\n}\r\n/**\r\n * Defines a simple storage that can be used for\r\n * storing the tokens at client side.\r\n * Is compatible to localStorage and sessionStorage,\r\n * but you can also create your own implementations.\r\n */\r\nclass OAuthStorage {\r\n}\r\nclass MemoryStorage {\r\n constructor() {\r\n this.data = new Map();\r\n }\r\n getItem(key) {\r\n return this.data.get(key);\r\n }\r\n removeItem(key) {\r\n this.data.delete(key);\r\n }\r\n setItem(key, data) {\r\n this.data.set(key, data);\r\n }\r\n}\r\nMemoryStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: MemoryStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nMemoryStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: MemoryStorage });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: MemoryStorage, decorators: [{\r\n type: Injectable\r\n }] });\r\n/**\r\n * Represents the received tokens, the received state\r\n * and the parsed claims from the id-token.\r\n */\r\nclass ReceivedTokens {\r\n}\n\nclass OAuthEvent {\r\n constructor(type) {\r\n this.type = type;\r\n }\r\n}\r\nclass OAuthSuccessEvent extends OAuthEvent {\r\n constructor(type, info = null) {\r\n super(type);\r\n this.info = info;\r\n }\r\n}\r\nclass OAuthInfoEvent extends OAuthEvent {\r\n constructor(type, info = null) {\r\n super(type);\r\n this.info = info;\r\n }\r\n}\r\nclass OAuthErrorEvent extends OAuthEvent {\r\n constructor(type, reason, params = null) {\r\n super(type);\r\n this.reason = reason;\r\n this.params = params;\r\n }\r\n}\n\n// see: https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_.22Unicode_Problem.22\r\nfunction b64DecodeUnicode(str) {\r\n const base64 = str.replace(/\\-/g, '+').replace(/\\_/g, '/');\r\n return decodeURIComponent(atob(base64)\r\n .split('')\r\n .map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join(''));\r\n}\r\nfunction base64UrlEncode(str) {\r\n const base64 = btoa(str);\r\n return base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\r\n}\n\nclass AuthConfig {\r\n constructor(json) {\r\n /**\r\n * The client's id as registered with the auth server\r\n */\r\n this.clientId = '';\r\n /**\r\n * The client's redirectUri as registered with the auth server\r\n */\r\n this.redirectUri = '';\r\n /**\r\n * An optional second redirectUri where the auth server\r\n * redirects the user to after logging out.\r\n */\r\n this.postLogoutRedirectUri = '';\r\n /**\r\n * Defines whether to use 'redirectUri' as a replacement\r\n * of 'postLogoutRedirectUri' if the latter is not set.\r\n */\r\n this.redirectUriAsPostLogoutRedirectUriFallback = true;\r\n /**\r\n * The auth server's endpoint that allows to log\r\n * the user in when using implicit flow.\r\n */\r\n this.loginUrl = '';\r\n /**\r\n * The requested scopes\r\n */\r\n this.scope = 'openid profile';\r\n this.resource = '';\r\n this.rngUrl = '';\r\n /**\r\n * Defines whether to use OpenId Connect during\r\n * implicit flow.\r\n */\r\n this.oidc = true;\r\n /**\r\n * Defines whether to request an access token during\r\n * implicit flow.\r\n */\r\n this.requestAccessToken = true;\r\n this.options = null;\r\n /**\r\n * The issuer's uri.\r\n */\r\n this.issuer = '';\r\n /**\r\n * The logout url.\r\n */\r\n this.logoutUrl = '';\r\n /**\r\n * Defines whether to clear the hash fragment after logging in.\r\n */\r\n this.clearHashAfterLogin = true;\r\n /**\r\n * Url of the token endpoint as defined by OpenId Connect and OAuth 2.\r\n */\r\n this.tokenEndpoint = null;\r\n /**\r\n * Url of the revocation endpoint as defined by OpenId Connect and OAuth 2.\r\n */\r\n this.revocationEndpoint = null;\r\n /**\r\n * Names of known parameters sent out in the TokenResponse. https://tools.ietf.org/html/rfc6749#section-5.1\r\n */\r\n this.customTokenParameters = [];\r\n /**\r\n * Url of the userinfo endpoint as defined by OpenId Connect.\r\n */\r\n this.userinfoEndpoint = null;\r\n this.responseType = '';\r\n /**\r\n * Defines whether additional debug information should\r\n * be shown at the console. Note that in certain browsers\r\n * the verbosity of the console needs to be explicitly set\r\n * to include Debug level messages.\r\n */\r\n this.showDebugInformation = false;\r\n /**\r\n * The redirect uri used when doing silent refresh.\r\n */\r\n this.silentRefreshRedirectUri = '';\r\n this.silentRefreshMessagePrefix = '';\r\n /**\r\n * Set this to true to display the iframe used for\r\n * silent refresh for debugging.\r\n */\r\n this.silentRefreshShowIFrame = false;\r\n /**\r\n * Timeout for silent refresh.\r\n * @internal\r\n * depreacted b/c of typo, see silentRefreshTimeout\r\n */\r\n this.siletRefreshTimeout = 1000 * 20;\r\n /**\r\n * Timeout for silent refresh.\r\n */\r\n this.silentRefreshTimeout = 1000 * 20;\r\n /**\r\n * Some auth servers don't allow using password flow\r\n * w/o a client secret while the standards do not\r\n * demand for it. In this case, you can set a password\r\n * here. As this password is exposed to the public\r\n * it does not bring additional security and is therefore\r\n * as good as using no password.\r\n */\r\n this.dummyClientSecret = null;\r\n /**\r\n * Defines whether https is required.\r\n * The default value is remoteOnly which only allows\r\n * http for localhost, while every other domains need\r\n * to be used with https.\r\n */\r\n this.requireHttps = 'remoteOnly';\r\n /**\r\n * Defines whether every url provided by the discovery\r\n * document has to start with the issuer's url.\r\n */\r\n this.strictDiscoveryDocumentValidation = true;\r\n /**\r\n * JSON Web Key Set (https://tools.ietf.org/html/rfc7517)\r\n * with keys used to validate received id_tokens.\r\n * This is taken out of the disovery document. Can be set manually too.\r\n */\r\n this.jwks = null;\r\n /**\r\n * Map with additional query parameter that are appended to\r\n * the request when initializing implicit flow.\r\n */\r\n this.customQueryParams = null;\r\n this.silentRefreshIFrameName = 'angular-oauth-oidc-silent-refresh-iframe';\r\n /**\r\n * Defines when the token_timeout event should be raised.\r\n * If you set this to the default value 0.75, the event\r\n * is triggered after 75% of the token's life time.\r\n */\r\n this.timeoutFactor = 0.75;\r\n /**\r\n * If true, the lib will try to check whether the user\r\n * is still logged in on a regular basis as described\r\n * in http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification\r\n */\r\n this.sessionChecksEnabled = false;\r\n /**\r\n * Interval in msec for checking the session\r\n * according to http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification\r\n */\r\n this.sessionCheckIntervall = 3 * 1000;\r\n /**\r\n * Url for the iframe used for session checks\r\n */\r\n this.sessionCheckIFrameUrl = null;\r\n /**\r\n * Name of the iframe to use for session checks\r\n */\r\n this.sessionCheckIFrameName = 'angular-oauth-oidc-check-session-iframe';\r\n /**\r\n * This property has been introduced to disable at_hash checks\r\n * and is indented for Identity Provider that does not deliver\r\n * an at_hash EVEN THOUGH its recommended by the OIDC specs.\r\n * Of course, when disabling these checks then we are bypassing\r\n * a security check which means we are more vulnerable.\r\n */\r\n this.disableAtHashCheck = false;\r\n /**\r\n * Defines wether to check the subject of a refreshed token after silent refresh.\r\n * Normally, it should be the same as before.\r\n */\r\n this.skipSubjectCheck = false;\r\n this.useIdTokenHintForSilentRefresh = false;\r\n /**\r\n * Defined whether to skip the validation of the issuer in the discovery document.\r\n * Normally, the discovey document's url starts with the url of the issuer.\r\n */\r\n this.skipIssuerCheck = false;\r\n /**\r\n * final state sent to issuer is built as follows:\r\n * state = nonce + nonceStateSeparator + additional state\r\n * Default separator is ';' (encoded %3B).\r\n * In rare cases, this character might be forbidden or inconvenient to use by the issuer so it can be customized.\r\n */\r\n this.nonceStateSeparator = ';';\r\n /**\r\n * Set this to true to use HTTP BASIC auth for AJAX calls\r\n */\r\n this.useHttpBasicAuth = false;\r\n /**\r\n * The interceptors waits this time span if there is no token\r\n */\r\n this.waitForTokenInMsec = 0;\r\n /**\r\n * Code Flow is by defauld used together with PKCI which is also higly recommented.\r\n * You can disbale it here by setting this flag to true.\r\n * https://tools.ietf.org/html/rfc7636#section-1.1\r\n */\r\n this.disablePKCE = false;\r\n /**\r\n * Set this to true to preserve the requested route including query parameters after code flow login.\r\n * This setting enables deep linking for the code flow.\r\n */\r\n this.preserveRequestedRoute = false;\r\n /**\r\n * This property allows you to override the method that is used to open the login url,\r\n * allowing a way for implementations to specify their own method of routing to new\r\n * urls.\r\n */\r\n this.openUri = (uri) => {\r\n location.href = uri;\r\n };\r\n if (json) {\r\n Object.assign(this, json);\r\n }\r\n }\r\n}\n\n/**\r\n * This custom encoder allows charactes like +, % and / to be used in passwords\r\n */\r\nclass WebHttpUrlEncodingCodec {\r\n encodeKey(k) {\r\n return encodeURIComponent(k);\r\n }\r\n encodeValue(v) {\r\n return encodeURIComponent(v);\r\n }\r\n decodeKey(k) {\r\n return decodeURIComponent(k);\r\n }\r\n decodeValue(v) {\r\n return decodeURIComponent(v);\r\n }\r\n}\n\n/**\r\n * Interface for Handlers that are hooked in to\r\n * validate tokens.\r\n */\r\nclass ValidationHandler {\r\n}\r\n/**\r\n * This abstract implementation of ValidationHandler already implements\r\n * the method validateAtHash. However, to make use of it,\r\n * you have to override the method calcHash.\r\n */\r\nclass AbstractValidationHandler {\r\n /**\r\n * Validates the at_hash in an id_token against the received access_token.\r\n */\r\n validateAtHash(params) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let hashAlg = this.inferHashAlgorithm(params.idTokenHeader);\r\n let tokenHash = yield this.calcHash(params.accessToken, hashAlg); // sha256(accessToken, { asString: true });\r\n let leftMostHalf = tokenHash.substr(0, tokenHash.length / 2);\r\n let atHash = base64UrlEncode(leftMostHalf);\r\n let claimsAtHash = params.idTokenClaims['at_hash'].replace(/=/g, '');\r\n if (atHash !== claimsAtHash) {\r\n console.error('exptected at_hash: ' + atHash);\r\n console.error('actual at_hash: ' + claimsAtHash);\r\n }\r\n return atHash === claimsAtHash;\r\n });\r\n }\r\n /**\r\n * Infers the name of the hash algorithm to use\r\n * from the alg field of an id_token.\r\n *\r\n * @param jwtHeader the id_token's parsed header\r\n */\r\n inferHashAlgorithm(jwtHeader) {\r\n let alg = jwtHeader['alg'];\r\n if (!alg.match(/^.S[0-9]{3}$/)) {\r\n throw new Error('Algorithm not supported: ' + alg);\r\n }\r\n return 'sha-' + alg.substr(2);\r\n }\r\n}\n\nclass UrlHelperService {\r\n getHashFragmentParams(customHashFragment) {\r\n let hash = customHashFragment || window.location.hash;\r\n hash = decodeURIComponent(hash);\r\n if (hash.indexOf('#') !== 0) {\r\n return {};\r\n }\r\n const questionMarkPosition = hash.indexOf('?');\r\n if (questionMarkPosition > -1) {\r\n hash = hash.substr(questionMarkPosition + 1);\r\n }\r\n else {\r\n hash = hash.substr(1);\r\n }\r\n return this.parseQueryString(hash);\r\n }\r\n parseQueryString(queryString) {\r\n const data = {};\r\n let pairs, pair, separatorIndex, escapedKey, escapedValue, key, value;\r\n if (queryString === null) {\r\n return data;\r\n }\r\n pairs = queryString.split('&');\r\n for (let i = 0; i < pairs.length; i++) {\r\n pair = pairs[i];\r\n separatorIndex = pair.indexOf('=');\r\n if (separatorIndex === -1) {\r\n escapedKey = pair;\r\n escapedValue = null;\r\n }\r\n else {\r\n escapedKey = pair.substr(0, separatorIndex);\r\n escapedValue = pair.substr(separatorIndex + 1);\r\n }\r\n key = decodeURIComponent(escapedKey);\r\n value = decodeURIComponent(escapedValue);\r\n if (key.substr(0, 1) === '/') {\r\n key = key.substr(1);\r\n }\r\n data[key] = value;\r\n }\r\n return data;\r\n }\r\n}\r\nUrlHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: UrlHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nUrlHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: UrlHelperService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: UrlHelperService, decorators: [{\r\n type: Injectable\r\n }] });\n\n/**\r\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\r\n *\r\n * @version 0.9.0\r\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\r\n * @copyright Chen, Yi-Cyuan 2014-2017\r\n * @license MIT\r\n */\r\n/*jslint bitwise: true */\r\nfunction factory() {\r\n var ERROR = 'input is invalid type';\r\n var WINDOW = typeof window === 'object';\r\n var root = WINDOW ? window : {};\r\n if (root.JS_SHA256_NO_WINDOW) {\r\n WINDOW = false;\r\n }\r\n var WEB_WORKER = !WINDOW && typeof self === 'object';\r\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\r\n if (NODE_JS) {\r\n root = global;\r\n }\r\n else if (WEB_WORKER) {\r\n root = self;\r\n }\r\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\r\n var AMD = typeof define === 'function' && define.amd;\r\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\r\n const HEX_CHARS = '0123456789abcdef'.split('');\r\n const EXTRA = [-2147483648, 8388608, 32768, 128];\r\n const SHIFT = [24, 16, 8, 0];\r\n const K = [\r\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\r\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\r\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\r\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\r\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\r\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\r\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\r\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\r\n ];\r\n const OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\r\n var blocks = [];\r\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\r\n Array.isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === '[object Array]';\r\n };\r\n }\r\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\r\n ArrayBuffer.isView = function (obj) {\r\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\r\n };\r\n }\r\n var createOutputMethod = function (outputType, is224) {\r\n return function (message) {\r\n return new Sha256(is224, true).update(message)[outputType]();\r\n };\r\n };\r\n var createMethod = function (is224) {\r\n var method = createOutputMethod('hex', is224);\r\n if (NODE_JS) {\r\n method = nodeWrap(method, is224);\r\n }\r\n method.create = function () {\r\n return new Sha256(is224);\r\n };\r\n method.update = function (message) {\r\n return method.create().update(message);\r\n };\r\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\r\n var type = OUTPUT_TYPES[i];\r\n method[type] = createOutputMethod(type, is224);\r\n }\r\n return method;\r\n };\r\n var nodeWrap = function (method, is224) {\r\n var crypto = eval(\"require('crypto')\");\r\n var Buffer = eval(\"require('buffer').Buffer\");\r\n var algorithm = is224 ? 'sha224' : 'sha256';\r\n var nodeMethod = function (message) {\r\n if (typeof message === 'string') {\r\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\r\n }\r\n else {\r\n if (message === null || message === undefined) {\r\n throw new Error(ERROR);\r\n }\r\n else if (message.constructor === ArrayBuffer) {\r\n message = new Uint8Array(message);\r\n }\r\n }\r\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\r\n message.constructor === Buffer) {\r\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\r\n }\r\n else {\r\n return method(message);\r\n }\r\n };\r\n return nodeMethod;\r\n };\r\n var createHmacOutputMethod = function (outputType, is224) {\r\n return function (key, message) {\r\n return new HmacSha256(key, is224, true).update(message)[outputType]();\r\n };\r\n };\r\n var createHmacMethod = function (is224) {\r\n var method = createHmacOutputMethod('hex', is224);\r\n method.create = function (key) {\r\n return new HmacSha256(key, is224);\r\n };\r\n method.update = function (key, message) {\r\n return method.create(key).update(message);\r\n };\r\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\r\n var type = OUTPUT_TYPES[i];\r\n method[type] = createHmacOutputMethod(type, is224);\r\n }\r\n return method;\r\n };\r\n function Sha256(is224, sharedMemory) {\r\n if (sharedMemory) {\r\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\r\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\r\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\r\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\r\n this.blocks = blocks;\r\n }\r\n else {\r\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n }\r\n if (is224) {\r\n this.h0 = 0xc1059ed8;\r\n this.h1 = 0x367cd507;\r\n this.h2 = 0x3070dd17;\r\n this.h3 = 0xf70e5939;\r\n this.h4 = 0xffc00b31;\r\n this.h5 = 0x68581511;\r\n this.h6 = 0x64f98fa7;\r\n this.h7 = 0xbefa4fa4;\r\n }\r\n else { // 256\r\n this.h0 = 0x6a09e667;\r\n this.h1 = 0xbb67ae85;\r\n this.h2 = 0x3c6ef372;\r\n this.h3 = 0xa54ff53a;\r\n this.h4 = 0x510e527f;\r\n this.h5 = 0x9b05688c;\r\n this.h6 = 0x1f83d9ab;\r\n this.h7 = 0x5be0cd19;\r\n }\r\n this.block = this.start = this.bytes = this.hBytes = 0;\r\n this.finalized = this.hashed = false;\r\n this.first = true;\r\n this.is224 = is224;\r\n }\r\n Sha256.prototype.update = function (message) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n var notString, type = typeof message;\r\n if (type !== 'string') {\r\n if (type === 'object') {\r\n if (message === null) {\r\n throw new Error(ERROR);\r\n }\r\n else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\r\n message = new Uint8Array(message);\r\n }\r\n else if (!Array.isArray(message)) {\r\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\r\n throw new Error(ERROR);\r\n }\r\n }\r\n }\r\n else {\r\n throw new Error(ERROR);\r\n }\r\n notString = true;\r\n }\r\n var code, index = 0, i, length = message.length, blocks = this.blocks;\r\n while (index < length) {\r\n if (this.hashed) {\r\n this.hashed = false;\r\n blocks[0] = this.block;\r\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\r\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\r\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\r\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\r\n }\r\n if (notString) {\r\n for (i = this.start; index < length && i < 64; ++index) {\r\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\r\n }\r\n }\r\n else {\r\n for (i = this.start; index < length && i < 64; ++index) {\r\n code = message.charCodeAt(index);\r\n if (code < 0x80) {\r\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\r\n }\r\n else if (code < 0x800) {\r\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\r\n }\r\n else if (code < 0xd800 || code >= 0xe000) {\r\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\r\n }\r\n else {\r\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\r\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\r\n }\r\n }\r\n }\r\n this.lastByteIndex = i;\r\n this.bytes += i - this.start;\r\n if (i >= 64) {\r\n this.block = blocks[16];\r\n this.start = i - 64;\r\n this.hash();\r\n this.hashed = true;\r\n }\r\n else {\r\n this.start = i;\r\n }\r\n }\r\n if (this.bytes > 4294967295) {\r\n this.hBytes += this.bytes / 4294967296 << 0;\r\n this.bytes = this.bytes % 4294967296;\r\n }\r\n return this;\r\n };\r\n Sha256.prototype.finalize = function () {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n var blocks = this.blocks, i = this.lastByteIndex;\r\n blocks[16] = this.block;\r\n blocks[i >> 2] |= EXTRA[i & 3];\r\n this.block = blocks[16];\r\n if (i >= 56) {\r\n if (!this.hashed) {\r\n this.hash();\r\n }\r\n blocks[0] = this.block;\r\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\r\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\r\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\r\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\r\n }\r\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\r\n blocks[15] = this.bytes << 3;\r\n this.hash();\r\n };\r\n Sha256.prototype.hash = function () {\r\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6, h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\r\n for (j = 16; j < 64; ++j) {\r\n // rightrotate\r\n t1 = blocks[j - 15];\r\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\r\n t1 = blocks[j - 2];\r\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\r\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\r\n }\r\n bc = b & c;\r\n for (j = 0; j < 64; j += 4) {\r\n if (this.first) {\r\n if (this.is224) {\r\n ab = 300032;\r\n t1 = blocks[0] - 1413257819;\r\n h = t1 - 150054599 << 0;\r\n d = t1 + 24177077 << 0;\r\n }\r\n else {\r\n ab = 704751109;\r\n t1 = blocks[0] - 210244248;\r\n h = t1 - 1521486534 << 0;\r\n d = t1 + 143694565 << 0;\r\n }\r\n this.first = false;\r\n }\r\n else {\r\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\r\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\r\n ab = a & b;\r\n maj = ab ^ (a & c) ^ bc;\r\n ch = (e & f) ^ (~e & g);\r\n t1 = h + s1 + ch + K[j] + blocks[j];\r\n t2 = s0 + maj;\r\n h = d + t1 << 0;\r\n d = t1 + t2 << 0;\r\n }\r\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\r\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\r\n da = d & a;\r\n maj = da ^ (d & b) ^ ab;\r\n ch = (h & e) ^ (~h & f);\r\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\r\n t2 = s0 + maj;\r\n g = c + t1 << 0;\r\n c = t1 + t2 << 0;\r\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\r\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\r\n cd = c & d;\r\n maj = cd ^ (c & a) ^ da;\r\n ch = (g & h) ^ (~g & e);\r\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\r\n t2 = s0 + maj;\r\n f = b + t1 << 0;\r\n b = t1 + t2 << 0;\r\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\r\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\r\n bc = b & c;\r\n maj = bc ^ (b & d) ^ cd;\r\n ch = (f & g) ^ (~f & h);\r\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\r\n t2 = s0 + maj;\r\n e = a + t1 << 0;\r\n a = t1 + t2 << 0;\r\n }\r\n this.h0 = this.h0 + a << 0;\r\n this.h1 = this.h1 + b << 0;\r\n this.h2 = this.h2 + c << 0;\r\n this.h3 = this.h3 + d << 0;\r\n this.h4 = this.h4 + e << 0;\r\n this.h5 = this.h5 + f << 0;\r\n this.h6 = this.h6 + g << 0;\r\n this.h7 = this.h7 + h << 0;\r\n };\r\n Sha256.prototype.hex = function () {\r\n this.finalize();\r\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7;\r\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\r\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\r\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\r\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\r\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\r\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\r\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\r\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\r\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\r\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\r\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\r\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\r\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\r\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\r\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\r\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\r\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\r\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\r\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\r\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\r\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\r\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\r\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\r\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\r\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\r\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\r\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\r\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\r\n if (!this.is224) {\r\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\r\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\r\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\r\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\r\n }\r\n return hex;\r\n };\r\n Sha256.prototype.toString = Sha256.prototype.hex;\r\n Sha256.prototype.digest = function () {\r\n this.finalize();\r\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7;\r\n var arr = [\r\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\r\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\r\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\r\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\r\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\r\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\r\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\r\n ];\r\n if (!this.is224) {\r\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\r\n }\r\n return arr;\r\n };\r\n Sha256.prototype.array = Sha256.prototype.digest;\r\n Sha256.prototype.arrayBuffer = function () {\r\n this.finalize();\r\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\r\n var dataView = new DataView(buffer);\r\n dataView.setUint32(0, this.h0);\r\n dataView.setUint32(4, this.h1);\r\n dataView.setUint32(8, this.h2);\r\n dataView.setUint32(12, this.h3);\r\n dataView.setUint32(16, this.h4);\r\n dataView.setUint32(20, this.h5);\r\n dataView.setUint32(24, this.h6);\r\n if (!this.is224) {\r\n dataView.setUint32(28, this.h7);\r\n }\r\n return buffer;\r\n };\r\n function HmacSha256(key, is224, sharedMemory) {\r\n var i, type = typeof key;\r\n if (type === 'string') {\r\n var bytes = [], length = key.length, index = 0, code;\r\n for (i = 0; i < length; ++i) {\r\n code = key.charCodeAt(i);\r\n if (code < 0x80) {\r\n bytes[index++] = code;\r\n }\r\n else if (code < 0x800) {\r\n bytes[index++] = (0xc0 | (code >> 6));\r\n bytes[index++] = (0x80 | (code & 0x3f));\r\n }\r\n else if (code < 0xd800 || code >= 0xe000) {\r\n bytes[index++] = (0xe0 | (code >> 12));\r\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\r\n bytes[index++] = (0x80 | (code & 0x3f));\r\n }\r\n else {\r\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\r\n bytes[index++] = (0xf0 | (code >> 18));\r\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\r\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\r\n bytes[index++] = (0x80 | (code & 0x3f));\r\n }\r\n }\r\n key = bytes;\r\n }\r\n else {\r\n if (type === 'object') {\r\n if (key === null) {\r\n throw new Error(ERROR);\r\n }\r\n else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\r\n key = new Uint8Array(key);\r\n }\r\n else if (!Array.isArray(key)) {\r\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\r\n throw new Error(ERROR);\r\n }\r\n }\r\n }\r\n else {\r\n throw new Error(ERROR);\r\n }\r\n }\r\n if (key.length > 64) {\r\n key = (new Sha256(is224, true)).update(key).array();\r\n }\r\n var oKeyPad = [], iKeyPad = [];\r\n for (i = 0; i < 64; ++i) {\r\n var b = key[i] || 0;\r\n oKeyPad[i] = 0x5c ^ b;\r\n iKeyPad[i] = 0x36 ^ b;\r\n }\r\n Sha256.call(this, is224, sharedMemory);\r\n this.update(iKeyPad);\r\n this.oKeyPad = oKeyPad;\r\n this.inner = true;\r\n this.sharedMemory = sharedMemory;\r\n }\r\n HmacSha256.prototype = new Sha256();\r\n HmacSha256.prototype.finalize = function () {\r\n Sha256.prototype.finalize.call(this);\r\n if (this.inner) {\r\n this.inner = false;\r\n var innerHash = this.array();\r\n Sha256.call(this, this.is224, this.sharedMemory);\r\n this.update(this.oKeyPad);\r\n this.update(innerHash);\r\n Sha256.prototype.finalize.call(this);\r\n }\r\n };\r\n var exports = createMethod();\r\n exports.sha256 = exports;\r\n exports.sha224 = createMethod(true);\r\n exports.sha256.hmac = createHmacMethod();\r\n exports.sha224.hmac = createHmacMethod(true);\r\n return exports;\r\n}\n\nconst sha256 = factory();\r\n/**\r\n * Abstraction for crypto algorithms\r\n */\r\nclass HashHandler {\r\n}\r\nfunction decodeUTF8(s) {\r\n if (typeof s !== 'string')\r\n throw new TypeError('expected string');\r\n var i, d = s, b = new Uint8Array(d.length);\r\n for (i = 0; i < d.length; i++)\r\n b[i] = d.charCodeAt(i);\r\n return b;\r\n}\r\nfunction encodeUTF8(arr) {\r\n var i, s = [];\r\n for (i = 0; i < arr.length; i++)\r\n s.push(String.fromCharCode(arr[i]));\r\n return s.join('');\r\n}\r\nclass DefaultHashHandler {\r\n calcHash(valueToHash, algorithm) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // const encoder = new TextEncoder();\r\n // const hashArray = await window.crypto.subtle.digest(algorithm, data);\r\n // const data = encoder.encode(valueToHash);\r\n // const fhash = fsha256(valueToHash);\r\n const candHash = encodeUTF8(fsha256(decodeUTF8(valueToHash)));\r\n // const hashArray = (sha256 as any).array(valueToHash);\r\n // // const hashString = this.toHashString(hashArray);\r\n // const hashString = this.toHashString2(hashArray);\r\n // console.debug('hash orig - cand', candHash, hashString);\r\n // alert(1);\r\n return candHash;\r\n });\r\n }\r\n toHashString2(byteArray) {\r\n let result = '';\r\n for (let e of byteArray) {\r\n result += String.fromCharCode(e);\r\n }\r\n return result;\r\n }\r\n toHashString(buffer) {\r\n const byteArray = new Uint8Array(buffer);\r\n let result = '';\r\n for (let e of byteArray) {\r\n result += String.fromCharCode(e);\r\n }\r\n return result;\r\n }\r\n}\r\nDefaultHashHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultHashHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nDefaultHashHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultHashHandler });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultHashHandler, decorators: [{\r\n type: Injectable\r\n }] });\n\n/**\r\n * Service for logging in and logging out with\r\n * OIDC and OAuth2. Supports implicit flow and\r\n * password flow.\r\n */\r\nclass OAuthService extends AuthConfig {\r\n constructor(ngZone, http, storage, tokenValidationHandler, config, urlHelper, logger, crypto, document, dateTimeService) {\r\n var _a;\r\n super();\r\n this.ngZone = ngZone;\r\n this.http = http;\r\n this.config = config;\r\n this.urlHelper = urlHelper;\r\n this.logger = logger;\r\n this.crypto = crypto;\r\n this.dateTimeService = dateTimeService;\r\n /**\r\n * @internal\r\n * Deprecated: use property events instead\r\n */\r\n this.discoveryDocumentLoaded = false;\r\n /**\r\n * The received (passed around) state, when logging\r\n * in with implicit flow.\r\n */\r\n this.state = '';\r\n this.eventsSubject = new Subject();\r\n this.discoveryDocumentLoadedSubject = new Subject();\r\n this.grantTypesSupported = [];\r\n this.inImplicitFlow = false;\r\n this.saveNoncesInLocalStorage = false;\r\n this.debug('angular-oauth2-oidc v10');\r\n // See https://github.com/manfredsteyer/angular-oauth2-oidc/issues/773 for why this is needed\r\n this.document = document;\r\n if (!config) {\r\n config = {};\r\n }\r\n this.discoveryDocumentLoaded$ =\r\n this.discoveryDocumentLoadedSubject.asObservable();\r\n this.events = this.eventsSubject.asObservable();\r\n if (tokenValidationHandler) {\r\n this.tokenValidationHandler = tokenValidationHandler;\r\n }\r\n if (config) {\r\n this.configure(config);\r\n }\r\n try {\r\n if (storage) {\r\n this.setStorage(storage);\r\n }\r\n else if (typeof sessionStorage !== 'undefined') {\r\n this.setStorage(sessionStorage);\r\n }\r\n }\r\n catch (e) {\r\n console.error('No OAuthStorage provided and cannot access default (sessionStorage).' +\r\n 'Consider providing a custom OAuthStorage implementation in your module.', e);\r\n }\r\n // in IE, sessionStorage does not always survive a redirect\r\n if (this.checkLocalStorageAccessable()) {\r\n const ua = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\r\n const msie = (ua === null || ua === void 0 ? void 0 : ua.includes('MSIE ')) || (ua === null || ua === void 0 ? void 0 : ua.includes('Trident'));\r\n if (msie) {\r\n this.saveNoncesInLocalStorage = true;\r\n }\r\n }\r\n this.setupRefreshTimer();\r\n }\r\n checkLocalStorageAccessable() {\r\n if (typeof window === 'undefined')\r\n return false;\r\n const test = 'test';\r\n try {\r\n if (typeof window['localStorage'] === 'undefined')\r\n return false;\r\n localStorage.setItem(test, test);\r\n localStorage.removeItem(test);\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n }\r\n /**\r\n * Use this method to configure the service\r\n * @param config the configuration\r\n */\r\n configure(config) {\r\n // For the sake of downward compatibility with\r\n // original configuration API\r\n Object.assign(this, new AuthConfig(), config);\r\n this.config = Object.assign({}, new AuthConfig(), config);\r\n if (this.sessionChecksEnabled) {\r\n this.setupSessionCheck();\r\n }\r\n this.configChanged();\r\n }\r\n configChanged() {\r\n this.setupRefreshTimer();\r\n }\r\n restartSessionChecksIfStillLoggedIn() {\r\n if (this.hasValidIdToken()) {\r\n this.initSessionCheck();\r\n }\r\n }\r\n restartRefreshTimerIfStillLoggedIn() {\r\n this.setupExpirationTimers();\r\n }\r\n setupSessionCheck() {\r\n this.events\r\n .pipe(filter((e) => e.type === 'token_received'))\r\n .subscribe((e) => {\r\n this.initSessionCheck();\r\n });\r\n }\r\n /**\r\n * Will setup up silent refreshing for when the token is\r\n * about to expire. When the user is logged out via this.logOut method, the\r\n * silent refreshing will pause and not refresh the tokens until the user is\r\n * logged back in via receiving a new token.\r\n * @param params Additional parameter to pass\r\n * @param listenTo Setup automatic refresh of a specific token type\r\n */\r\n setupAutomaticSilentRefresh(params = {}, listenTo, noPrompt = true) {\r\n let shouldRunSilentRefresh = true;\r\n this.clearAutomaticRefreshTimer();\r\n this.automaticRefreshSubscription = this.events\r\n .pipe(tap((e) => {\r\n if (e.type === 'token_received') {\r\n shouldRunSilentRefresh = true;\r\n }\r\n else if (e.type === 'logout') {\r\n shouldRunSilentRefresh = false;\r\n }\r\n }), filter((e) => e.type === 'token_expires' &&\r\n (listenTo == null || listenTo === 'any' || e.info === listenTo)), debounceTime(1000))\r\n .subscribe((_) => {\r\n if (shouldRunSilentRefresh) {\r\n // this.silentRefresh(params, noPrompt).catch(_ => {\r\n this.refreshInternal(params, noPrompt).catch((_) => {\r\n this.debug('Automatic silent refresh did not work');\r\n });\r\n }\r\n });\r\n this.restartRefreshTimerIfStillLoggedIn();\r\n }\r\n refreshInternal(params, noPrompt) {\r\n if (!this.useSilentRefresh && this.responseType === 'code') {\r\n return this.refreshToken();\r\n }\r\n else {\r\n return this.silentRefresh(params, noPrompt);\r\n }\r\n }\r\n /**\r\n * Convenience method that first calls `loadDiscoveryDocument(...)` and\r\n * directly chains using the `then(...)` part of the promise to call\r\n * the `tryLogin(...)` method.\r\n *\r\n * @param options LoginOptions to pass through to `tryLogin(...)`\r\n */\r\n loadDiscoveryDocumentAndTryLogin(options = null) {\r\n return this.loadDiscoveryDocument().then((doc) => {\r\n return this.tryLogin(options);\r\n });\r\n }\r\n /**\r\n * Convenience method that first calls `loadDiscoveryDocumentAndTryLogin(...)`\r\n * and if then chains to `initLoginFlow()`, but only if there is no valid\r\n * IdToken or no valid AccessToken.\r\n *\r\n * @param options LoginOptions to pass through to `tryLogin(...)`\r\n */\r\n loadDiscoveryDocumentAndLogin(options = null) {\r\n options = options || {};\r\n return this.loadDiscoveryDocumentAndTryLogin(options).then((_) => {\r\n if (!this.hasValidIdToken() || !this.hasValidAccessToken()) {\r\n const state = typeof options.state === 'string' ? options.state : '';\r\n this.initLoginFlow(state);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n }\r\n debug(...args) {\r\n if (this.showDebugInformation) {\r\n this.logger.debug.apply(this.logger, args);\r\n }\r\n }\r\n validateUrlFromDiscoveryDocument(url) {\r\n const errors = [];\r\n const httpsCheck = this.validateUrlForHttps(url);\r\n const issuerCheck = this.validateUrlAgainstIssuer(url);\r\n if (!httpsCheck) {\r\n errors.push('https for all urls required. Also for urls received by discovery.');\r\n }\r\n if (!issuerCheck) {\r\n errors.push('Every url in discovery document has to start with the issuer url.' +\r\n 'Also see property strictDiscoveryDocumentValidation.');\r\n }\r\n return errors;\r\n }\r\n validateUrlForHttps(url) {\r\n if (!url) {\r\n return true;\r\n }\r\n const lcUrl = url.toLowerCase();\r\n if (this.requireHttps === false) {\r\n return true;\r\n }\r\n if ((lcUrl.match(/^http:\\/\\/localhost($|[:\\/])/) ||\r\n lcUrl.match(/^http:\\/\\/localhost($|[:\\/])/)) &&\r\n this.requireHttps === 'remoteOnly') {\r\n return true;\r\n }\r\n return lcUrl.startsWith('https://');\r\n }\r\n assertUrlNotNullAndCorrectProtocol(url, description) {\r\n if (!url) {\r\n throw new Error(`'${description}' should not be null`);\r\n }\r\n if (!this.validateUrlForHttps(url)) {\r\n throw new Error(`'${description}' must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).`);\r\n }\r\n }\r\n validateUrlAgainstIssuer(url) {\r\n if (!this.strictDiscoveryDocumentValidation) {\r\n return true;\r\n }\r\n if (!url) {\r\n return true;\r\n }\r\n return url.toLowerCase().startsWith(this.issuer.toLowerCase());\r\n }\r\n setupRefreshTimer() {\r\n if (typeof window === 'undefined') {\r\n this.debug('timer not supported on this plattform');\r\n return;\r\n }\r\n if (this.hasValidIdToken() || this.hasValidAccessToken()) {\r\n this.clearAccessTokenTimer();\r\n this.clearIdTokenTimer();\r\n this.setupExpirationTimers();\r\n }\r\n if (this.tokenReceivedSubscription)\r\n this.tokenReceivedSubscription.unsubscribe();\r\n this.tokenReceivedSubscription = this.events\r\n .pipe(filter((e) => e.type === 'token_received'))\r\n .subscribe((_) => {\r\n this.clearAccessTokenTimer();\r\n this.clearIdTokenTimer();\r\n this.setupExpirationTimers();\r\n });\r\n }\r\n setupExpirationTimers() {\r\n if (this.hasValidAccessToken()) {\r\n this.setupAccessTokenTimer();\r\n }\r\n if (this.hasValidIdToken()) {\r\n this.setupIdTokenTimer();\r\n }\r\n }\r\n setupAccessTokenTimer() {\r\n const expiration = this.getAccessTokenExpiration();\r\n const storedAt = this.getAccessTokenStoredAt();\r\n const timeout = this.calcTimeout(storedAt, expiration);\r\n this.ngZone.runOutsideAngular(() => {\r\n this.accessTokenTimeoutSubscription = of(new OAuthInfoEvent('token_expires', 'access_token'))\r\n .pipe(delay(timeout))\r\n .subscribe((e) => {\r\n this.ngZone.run(() => {\r\n this.eventsSubject.next(e);\r\n });\r\n });\r\n });\r\n }\r\n setupIdTokenTimer() {\r\n const expiration = this.getIdTokenExpiration();\r\n const storedAt = this.getIdTokenStoredAt();\r\n const timeout = this.calcTimeout(storedAt, expiration);\r\n this.ngZone.runOutsideAngular(() => {\r\n this.idTokenTimeoutSubscription = of(new OAuthInfoEvent('token_expires', 'id_token'))\r\n .pipe(delay(timeout))\r\n .subscribe((e) => {\r\n this.ngZone.run(() => {\r\n this.eventsSubject.next(e);\r\n });\r\n });\r\n });\r\n }\r\n /**\r\n * Stops timers for automatic refresh.\r\n * To restart it, call setupAutomaticSilentRefresh again.\r\n */\r\n stopAutomaticRefresh() {\r\n this.clearAccessTokenTimer();\r\n this.clearIdTokenTimer();\r\n this.clearAutomaticRefreshTimer();\r\n }\r\n clearAccessTokenTimer() {\r\n if (this.accessTokenTimeoutSubscription) {\r\n this.accessTokenTimeoutSubscription.unsubscribe();\r\n }\r\n }\r\n clearIdTokenTimer() {\r\n if (this.idTokenTimeoutSubscription) {\r\n this.idTokenTimeoutSubscription.unsubscribe();\r\n }\r\n }\r\n clearAutomaticRefreshTimer() {\r\n if (this.automaticRefreshSubscription) {\r\n this.automaticRefreshSubscription.unsubscribe();\r\n }\r\n }\r\n calcTimeout(storedAt, expiration) {\r\n const now = this.dateTimeService.now();\r\n const delta = (expiration - storedAt) * this.timeoutFactor - (now - storedAt);\r\n return Math.max(0, delta);\r\n }\r\n /**\r\n * DEPRECATED. Use a provider for OAuthStorage instead:\r\n *\r\n * { provide: OAuthStorage, useFactory: oAuthStorageFactory }\r\n * export function oAuthStorageFactory(): OAuthStorage { return localStorage; }\r\n * Sets a custom storage used to store the received\r\n * tokens on client side. By default, the browser's\r\n * sessionStorage is used.\r\n * @ignore\r\n *\r\n * @param storage\r\n */\r\n setStorage(storage) {\r\n this._storage = storage;\r\n this.configChanged();\r\n }\r\n /**\r\n * Loads the discovery document to configure most\r\n * properties of this service. The url of the discovery\r\n * document is infered from the issuer's url according\r\n * to the OpenId Connect spec. To use another url you\r\n * can pass it to to optional parameter fullUrl.\r\n *\r\n * @param fullUrl\r\n */\r\n loadDiscoveryDocument(fullUrl = null) {\r\n return new Promise((resolve, reject) => {\r\n if (!fullUrl) {\r\n fullUrl = this.issuer || '';\r\n if (!fullUrl.endsWith('/')) {\r\n fullUrl += '/';\r\n }\r\n fullUrl += '.well-known/openid-configuration';\r\n }\r\n if (!this.validateUrlForHttps(fullUrl)) {\r\n reject(\"issuer must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n return;\r\n }\r\n this.http.get(fullUrl).subscribe((doc) => {\r\n if (!this.validateDiscoveryDocument(doc)) {\r\n this.eventsSubject.next(new OAuthErrorEvent('discovery_document_validation_error', null));\r\n reject('discovery_document_validation_error');\r\n return;\r\n }\r\n this.loginUrl = doc.authorization_endpoint;\r\n this.logoutUrl = doc.end_session_endpoint || this.logoutUrl;\r\n this.grantTypesSupported = doc.grant_types_supported;\r\n this.issuer = doc.issuer;\r\n this.tokenEndpoint = doc.token_endpoint;\r\n this.userinfoEndpoint =\r\n doc.userinfo_endpoint || this.userinfoEndpoint;\r\n this.jwksUri = doc.jwks_uri;\r\n this.sessionCheckIFrameUrl =\r\n doc.check_session_iframe || this.sessionCheckIFrameUrl;\r\n this.discoveryDocumentLoaded = true;\r\n this.discoveryDocumentLoadedSubject.next(doc);\r\n this.revocationEndpoint =\r\n doc.revocation_endpoint || this.revocationEndpoint;\r\n if (this.sessionChecksEnabled) {\r\n this.restartSessionChecksIfStillLoggedIn();\r\n }\r\n this.loadJwks()\r\n .then((jwks) => {\r\n const result = {\r\n discoveryDocument: doc,\r\n jwks: jwks,\r\n };\r\n const event = new OAuthSuccessEvent('discovery_document_loaded', result);\r\n this.eventsSubject.next(event);\r\n resolve(event);\r\n return;\r\n })\r\n .catch((err) => {\r\n this.eventsSubject.next(new OAuthErrorEvent('discovery_document_load_error', err));\r\n reject(err);\r\n return;\r\n });\r\n }, (err) => {\r\n this.logger.error('error loading discovery document', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('discovery_document_load_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n loadJwks() {\r\n return new Promise((resolve, reject) => {\r\n if (this.jwksUri) {\r\n this.http.get(this.jwksUri).subscribe((jwks) => {\r\n this.jwks = jwks;\r\n this.eventsSubject.next(new OAuthSuccessEvent('discovery_document_loaded'));\r\n resolve(jwks);\r\n }, (err) => {\r\n this.logger.error('error loading jwks', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('jwks_load_error', err));\r\n reject(err);\r\n });\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n });\r\n }\r\n validateDiscoveryDocument(doc) {\r\n let errors;\r\n if (!this.skipIssuerCheck && doc.issuer !== this.issuer) {\r\n this.logger.error('invalid issuer in discovery document', 'expected: ' + this.issuer, 'current: ' + doc.issuer);\r\n return false;\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.authorization_endpoint);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating authorization_endpoint in discovery document', errors);\r\n return false;\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.end_session_endpoint);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating end_session_endpoint in discovery document', errors);\r\n return false;\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.token_endpoint);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating token_endpoint in discovery document', errors);\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.revocation_endpoint);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating revocation_endpoint in discovery document', errors);\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.userinfo_endpoint);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating userinfo_endpoint in discovery document', errors);\r\n return false;\r\n }\r\n errors = this.validateUrlFromDiscoveryDocument(doc.jwks_uri);\r\n if (errors.length > 0) {\r\n this.logger.error('error validating jwks_uri in discovery document', errors);\r\n return false;\r\n }\r\n if (this.sessionChecksEnabled && !doc.check_session_iframe) {\r\n this.logger.warn('sessionChecksEnabled is activated but discovery document' +\r\n ' does not contain a check_session_iframe field');\r\n }\r\n return true;\r\n }\r\n /**\r\n * Uses password flow to exchange userName and password for an\r\n * access_token. After receiving the access_token, this method\r\n * uses it to query the userinfo endpoint in order to get information\r\n * about the user in question.\r\n *\r\n * When using this, make sure that the property oidc is set to false.\r\n * Otherwise stricter validations take place that make this operation\r\n * fail.\r\n *\r\n * @param userName\r\n * @param password\r\n * @param headers Optional additional http-headers.\r\n */\r\n fetchTokenUsingPasswordFlowAndLoadUserProfile(userName, password, headers = new HttpHeaders()) {\r\n return this.fetchTokenUsingPasswordFlow(userName, password, headers).then(() => this.loadUserProfile());\r\n }\r\n /**\r\n * Loads the user profile by accessing the user info endpoint defined by OpenId Connect.\r\n *\r\n * When using this with OAuth2 password flow, make sure that the property oidc is set to false.\r\n * Otherwise stricter validations take place that make this operation fail.\r\n */\r\n loadUserProfile() {\r\n if (!this.hasValidAccessToken()) {\r\n throw new Error('Can not load User Profile without access_token');\r\n }\r\n if (!this.validateUrlForHttps(this.userinfoEndpoint)) {\r\n throw new Error(\"userinfoEndpoint must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n }\r\n return new Promise((resolve, reject) => {\r\n const headers = new HttpHeaders().set('Authorization', 'Bearer ' + this.getAccessToken());\r\n this.http\r\n .get(this.userinfoEndpoint, {\r\n headers,\r\n observe: 'response',\r\n responseType: 'text',\r\n })\r\n .subscribe((response) => {\r\n this.debug('userinfo received', JSON.stringify(response));\r\n if (response.headers\r\n .get('content-type')\r\n .startsWith('application/json')) {\r\n let info = JSON.parse(response.body);\r\n const existingClaims = this.getIdentityClaims() || {};\r\n if (!this.skipSubjectCheck) {\r\n if (this.oidc &&\r\n (!existingClaims['sub'] || info.sub !== existingClaims['sub'])) {\r\n const err = 'if property oidc is true, the received user-id (sub) has to be the user-id ' +\r\n 'of the user that has logged in with oidc.\\n' +\r\n 'if you are not using oidc but just oauth2 password flow set oidc to false';\r\n reject(err);\r\n return;\r\n }\r\n }\r\n info = Object.assign({}, existingClaims, info);\r\n this._storage.setItem('id_token_claims_obj', JSON.stringify(info));\r\n this.eventsSubject.next(new OAuthSuccessEvent('user_profile_loaded'));\r\n resolve({ info });\r\n }\r\n else {\r\n this.debug('userinfo is not JSON, treating it as JWE/JWS');\r\n this.eventsSubject.next(new OAuthSuccessEvent('user_profile_loaded'));\r\n resolve(JSON.parse(response.body));\r\n }\r\n }, (err) => {\r\n this.logger.error('error loading user info', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('user_profile_load_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n /**\r\n * Uses password flow to exchange userName and password for an access_token.\r\n * @param userName\r\n * @param password\r\n * @param headers Optional additional http-headers.\r\n */\r\n fetchTokenUsingPasswordFlow(userName, password, headers = new HttpHeaders()) {\r\n const parameters = {\r\n username: userName,\r\n password: password,\r\n };\r\n return this.fetchTokenUsingGrant('password', parameters, headers);\r\n }\r\n /**\r\n * Uses a custom grant type to retrieve tokens.\r\n * @param grantType Grant type.\r\n * @param parameters Parameters to pass.\r\n * @param headers Optional additional HTTP headers.\r\n */\r\n fetchTokenUsingGrant(grantType, parameters, headers = new HttpHeaders()) {\r\n this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint, 'tokenEndpoint');\r\n /**\r\n * A `HttpParameterCodec` that uses `encodeURIComponent` and `decodeURIComponent` to\r\n * serialize and parse URL parameter keys and values.\r\n *\r\n * @stable\r\n */\r\n let params = new HttpParams({ encoder: new WebHttpUrlEncodingCodec() })\r\n .set('grant_type', grantType)\r\n .set('scope', this.scope);\r\n if (this.useHttpBasicAuth) {\r\n const header = btoa(`${this.clientId}:${this.dummyClientSecret}`);\r\n headers = headers.set('Authorization', 'Basic ' + header);\r\n }\r\n if (!this.useHttpBasicAuth) {\r\n params = params.set('client_id', this.clientId);\r\n }\r\n if (!this.useHttpBasicAuth && this.dummyClientSecret) {\r\n params = params.set('client_secret', this.dummyClientSecret);\r\n }\r\n if (this.customQueryParams) {\r\n for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {\r\n params = params.set(key, this.customQueryParams[key]);\r\n }\r\n }\r\n // set explicit parameters last, to allow overwriting\r\n for (const key of Object.keys(parameters)) {\r\n params = params.set(key, parameters[key]);\r\n }\r\n headers = headers.set('Content-Type', 'application/x-www-form-urlencoded');\r\n return new Promise((resolve, reject) => {\r\n this.http\r\n .post(this.tokenEndpoint, params, { headers })\r\n .subscribe((tokenResponse) => {\r\n this.debug('tokenResponse', tokenResponse);\r\n this.storeAccessTokenResponse(tokenResponse.access_token, tokenResponse.refresh_token, tokenResponse.expires_in ||\r\n this.fallbackAccessTokenExpirationTimeInSec, tokenResponse.scope, this.extractRecognizedCustomParameters(tokenResponse));\r\n if (this.oidc && tokenResponse.id_token) {\r\n this.processIdToken(tokenResponse.id_token, tokenResponse.access_token).then((result) => {\r\n this.storeIdToken(result);\r\n resolve(tokenResponse);\r\n });\r\n }\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n resolve(tokenResponse);\r\n }, (err) => {\r\n this.logger.error('Error performing ${grantType} flow', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('token_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n /**\r\n * Refreshes the token using a refresh_token.\r\n * This does not work for implicit flow, b/c\r\n * there is no refresh_token in this flow.\r\n * A solution for this is provided by the\r\n * method silentRefresh.\r\n */\r\n refreshToken() {\r\n this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint, 'tokenEndpoint');\r\n return new Promise((resolve, reject) => {\r\n let params = new HttpParams({ encoder: new WebHttpUrlEncodingCodec() })\r\n .set('grant_type', 'refresh_token')\r\n .set('scope', this.scope)\r\n .set('refresh_token', this._storage.getItem('refresh_token'));\r\n let headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\r\n if (this.useHttpBasicAuth) {\r\n const header = btoa(`${this.clientId}:${this.dummyClientSecret}`);\r\n headers = headers.set('Authorization', 'Basic ' + header);\r\n }\r\n if (!this.useHttpBasicAuth) {\r\n params = params.set('client_id', this.clientId);\r\n }\r\n if (!this.useHttpBasicAuth && this.dummyClientSecret) {\r\n params = params.set('client_secret', this.dummyClientSecret);\r\n }\r\n if (this.customQueryParams) {\r\n for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {\r\n params = params.set(key, this.customQueryParams[key]);\r\n }\r\n }\r\n this.http\r\n .post(this.tokenEndpoint, params, { headers })\r\n .pipe(switchMap((tokenResponse) => {\r\n if (tokenResponse.id_token) {\r\n return from(this.processIdToken(tokenResponse.id_token, tokenResponse.access_token, true)).pipe(tap((result) => this.storeIdToken(result)), map((_) => tokenResponse));\r\n }\r\n else {\r\n return of(tokenResponse);\r\n }\r\n }))\r\n .subscribe((tokenResponse) => {\r\n this.debug('refresh tokenResponse', tokenResponse);\r\n this.storeAccessTokenResponse(tokenResponse.access_token, tokenResponse.refresh_token, tokenResponse.expires_in ||\r\n this.fallbackAccessTokenExpirationTimeInSec, tokenResponse.scope, this.extractRecognizedCustomParameters(tokenResponse));\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_refreshed'));\r\n resolve(tokenResponse);\r\n }, (err) => {\r\n this.logger.error('Error refreshing token', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('token_refresh_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n removeSilentRefreshEventListener() {\r\n if (this.silentRefreshPostMessageEventListener) {\r\n window.removeEventListener('message', this.silentRefreshPostMessageEventListener);\r\n this.silentRefreshPostMessageEventListener = null;\r\n }\r\n }\r\n setupSilentRefreshEventListener() {\r\n this.removeSilentRefreshEventListener();\r\n this.silentRefreshPostMessageEventListener = (e) => {\r\n const message = this.processMessageEventMessage(e);\r\n this.tryLogin({\r\n customHashFragment: message,\r\n preventClearHashAfterLogin: true,\r\n customRedirectUri: this.silentRefreshRedirectUri || this.redirectUri,\r\n }).catch((err) => this.debug('tryLogin during silent refresh failed', err));\r\n };\r\n window.addEventListener('message', this.silentRefreshPostMessageEventListener);\r\n }\r\n /**\r\n * Performs a silent refresh for implicit flow.\r\n * Use this method to get new tokens when/before\r\n * the existing tokens expire.\r\n */\r\n silentRefresh(params = {}, noPrompt = true) {\r\n const claims = this.getIdentityClaims() || {};\r\n if (this.useIdTokenHintForSilentRefresh && this.hasValidIdToken()) {\r\n params['id_token_hint'] = this.getIdToken();\r\n }\r\n if (!this.validateUrlForHttps(this.loginUrl)) {\r\n throw new Error(\"loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n }\r\n if (typeof this.document === 'undefined') {\r\n throw new Error('silent refresh is not supported on this platform');\r\n }\r\n const existingIframe = this.document.getElementById(this.silentRefreshIFrameName);\r\n if (existingIframe) {\r\n this.document.body.removeChild(existingIframe);\r\n }\r\n this.silentRefreshSubject = claims['sub'];\r\n const iframe = this.document.createElement('iframe');\r\n iframe.id = this.silentRefreshIFrameName;\r\n this.setupSilentRefreshEventListener();\r\n const redirectUri = this.silentRefreshRedirectUri || this.redirectUri;\r\n this.createLoginUrl(null, null, redirectUri, noPrompt, params).then((url) => {\r\n iframe.setAttribute('src', url);\r\n if (!this.silentRefreshShowIFrame) {\r\n iframe.style['display'] = 'none';\r\n }\r\n this.document.body.appendChild(iframe);\r\n });\r\n const errors = this.events.pipe(filter((e) => e instanceof OAuthErrorEvent), first());\r\n const success = this.events.pipe(filter((e) => e.type === 'token_received'), first());\r\n const timeout = of(new OAuthErrorEvent('silent_refresh_timeout', null)).pipe(delay(this.silentRefreshTimeout));\r\n return race([errors, success, timeout])\r\n .pipe(map((e) => {\r\n if (e instanceof OAuthErrorEvent) {\r\n if (e.type === 'silent_refresh_timeout') {\r\n this.eventsSubject.next(e);\r\n }\r\n else {\r\n e = new OAuthErrorEvent('silent_refresh_error', e);\r\n this.eventsSubject.next(e);\r\n }\r\n throw e;\r\n }\r\n else if (e.type === 'token_received') {\r\n e = new OAuthSuccessEvent('silently_refreshed');\r\n this.eventsSubject.next(e);\r\n }\r\n return e;\r\n }))\r\n .toPromise();\r\n }\r\n /**\r\n * This method exists for backwards compatibility.\r\n * {@link OAuthService#initLoginFlowInPopup} handles both code\r\n * and implicit flows.\r\n */\r\n initImplicitFlowInPopup(options) {\r\n return this.initLoginFlowInPopup(options);\r\n }\r\n initLoginFlowInPopup(options) {\r\n options = options || {};\r\n return this.createLoginUrl(null, null, this.silentRefreshRedirectUri, false, {\r\n display: 'popup',\r\n }).then((url) => {\r\n return new Promise((resolve, reject) => {\r\n /**\r\n * Error handling section\r\n */\r\n const checkForPopupClosedInterval = 500;\r\n let windowRef = null;\r\n // If we got no window reference we open a window\r\n // else we are using the window already opened\r\n if (!options.windowRef) {\r\n windowRef = window.open(url, 'ngx-oauth2-oidc-login', this.calculatePopupFeatures(options));\r\n }\r\n else if (options.windowRef && !options.windowRef.closed) {\r\n windowRef = options.windowRef;\r\n windowRef.location.href = url;\r\n }\r\n let checkForPopupClosedTimer;\r\n const tryLogin = (hash) => {\r\n this.tryLogin({\r\n customHashFragment: hash,\r\n preventClearHashAfterLogin: true,\r\n customRedirectUri: this.silentRefreshRedirectUri,\r\n }).then(() => {\r\n cleanup();\r\n resolve(true);\r\n }, (err) => {\r\n cleanup();\r\n reject(err);\r\n });\r\n };\r\n const checkForPopupClosed = () => {\r\n if (!windowRef || windowRef.closed) {\r\n cleanup();\r\n reject(new OAuthErrorEvent('popup_closed', {}));\r\n }\r\n };\r\n if (!windowRef) {\r\n reject(new OAuthErrorEvent('popup_blocked', {}));\r\n }\r\n else {\r\n checkForPopupClosedTimer = window.setInterval(checkForPopupClosed, checkForPopupClosedInterval);\r\n }\r\n const cleanup = () => {\r\n window.clearInterval(checkForPopupClosedTimer);\r\n window.removeEventListener('storage', storageListener);\r\n window.removeEventListener('message', listener);\r\n if (windowRef !== null) {\r\n windowRef.close();\r\n }\r\n windowRef = null;\r\n };\r\n const listener = (e) => {\r\n const message = this.processMessageEventMessage(e);\r\n if (message && message !== null) {\r\n window.removeEventListener('storage', storageListener);\r\n tryLogin(message);\r\n }\r\n else {\r\n console.log('false event firing');\r\n }\r\n };\r\n const storageListener = (event) => {\r\n if (event.key === 'auth_hash') {\r\n window.removeEventListener('message', listener);\r\n tryLogin(event.newValue);\r\n }\r\n };\r\n window.addEventListener('message', listener);\r\n window.addEventListener('storage', storageListener);\r\n });\r\n });\r\n }\r\n calculatePopupFeatures(options) {\r\n // Specify an static height and width and calculate centered position\r\n const height = options.height || 470;\r\n const width = options.width || 500;\r\n const left = window.screenLeft + (window.outerWidth - width) / 2;\r\n const top = window.screenTop + (window.outerHeight - height) / 2;\r\n return `location=no,toolbar=no,width=${width},height=${height},top=${top},left=${left}`;\r\n }\r\n processMessageEventMessage(e) {\r\n let expectedPrefix = '#';\r\n if (this.silentRefreshMessagePrefix) {\r\n expectedPrefix += this.silentRefreshMessagePrefix;\r\n }\r\n if (!e || !e.data || typeof e.data !== 'string') {\r\n return;\r\n }\r\n const prefixedMessage = e.data;\r\n if (!prefixedMessage.startsWith(expectedPrefix)) {\r\n return;\r\n }\r\n return '#' + prefixedMessage.substr(expectedPrefix.length);\r\n }\r\n canPerformSessionCheck() {\r\n if (!this.sessionChecksEnabled) {\r\n return false;\r\n }\r\n if (!this.sessionCheckIFrameUrl) {\r\n console.warn('sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl');\r\n return false;\r\n }\r\n const sessionState = this.getSessionState();\r\n if (!sessionState) {\r\n console.warn('sessionChecksEnabled is activated but there is no session_state');\r\n return false;\r\n }\r\n if (typeof this.document === 'undefined') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n setupSessionCheckEventListener() {\r\n this.removeSessionCheckEventListener();\r\n this.sessionCheckEventListener = (e) => {\r\n const origin = e.origin.toLowerCase();\r\n const issuer = this.issuer.toLowerCase();\r\n this.debug('sessionCheckEventListener');\r\n if (!issuer.startsWith(origin)) {\r\n this.debug('sessionCheckEventListener', 'wrong origin', origin, 'expected', issuer, 'event', e);\r\n return;\r\n }\r\n // only run in Angular zone if it is 'changed' or 'error'\r\n switch (e.data) {\r\n case 'unchanged':\r\n this.ngZone.run(() => {\r\n this.handleSessionUnchanged();\r\n });\r\n break;\r\n case 'changed':\r\n this.ngZone.run(() => {\r\n this.handleSessionChange();\r\n });\r\n break;\r\n case 'error':\r\n this.ngZone.run(() => {\r\n this.handleSessionError();\r\n });\r\n break;\r\n }\r\n this.debug('got info from session check inframe', e);\r\n };\r\n // prevent Angular from refreshing the view on every message (runs in intervals)\r\n this.ngZone.runOutsideAngular(() => {\r\n window.addEventListener('message', this.sessionCheckEventListener);\r\n });\r\n }\r\n handleSessionUnchanged() {\r\n this.debug('session check', 'session unchanged');\r\n this.eventsSubject.next(new OAuthInfoEvent('session_unchanged'));\r\n }\r\n handleSessionChange() {\r\n this.eventsSubject.next(new OAuthInfoEvent('session_changed'));\r\n this.stopSessionCheckTimer();\r\n if (!this.useSilentRefresh && this.responseType === 'code') {\r\n this.refreshToken()\r\n .then((_) => {\r\n this.debug('token refresh after session change worked');\r\n })\r\n .catch((_) => {\r\n this.debug('token refresh did not work after session changed');\r\n this.eventsSubject.next(new OAuthInfoEvent('session_terminated'));\r\n this.logOut(true);\r\n });\r\n }\r\n else if (this.silentRefreshRedirectUri) {\r\n this.silentRefresh().catch((_) => this.debug('silent refresh failed after session changed'));\r\n this.waitForSilentRefreshAfterSessionChange();\r\n }\r\n else {\r\n this.eventsSubject.next(new OAuthInfoEvent('session_terminated'));\r\n this.logOut(true);\r\n }\r\n }\r\n waitForSilentRefreshAfterSessionChange() {\r\n this.events\r\n .pipe(filter((e) => e.type === 'silently_refreshed' ||\r\n e.type === 'silent_refresh_timeout' ||\r\n e.type === 'silent_refresh_error'), first())\r\n .subscribe((e) => {\r\n if (e.type !== 'silently_refreshed') {\r\n this.debug('silent refresh did not work after session changed');\r\n this.eventsSubject.next(new OAuthInfoEvent('session_terminated'));\r\n this.logOut(true);\r\n }\r\n });\r\n }\r\n handleSessionError() {\r\n this.stopSessionCheckTimer();\r\n this.eventsSubject.next(new OAuthInfoEvent('session_error'));\r\n }\r\n removeSessionCheckEventListener() {\r\n if (this.sessionCheckEventListener) {\r\n window.removeEventListener('message', this.sessionCheckEventListener);\r\n this.sessionCheckEventListener = null;\r\n }\r\n }\r\n initSessionCheck() {\r\n if (!this.canPerformSessionCheck()) {\r\n return;\r\n }\r\n const existingIframe = this.document.getElementById(this.sessionCheckIFrameName);\r\n if (existingIframe) {\r\n this.document.body.removeChild(existingIframe);\r\n }\r\n const iframe = this.document.createElement('iframe');\r\n iframe.id = this.sessionCheckIFrameName;\r\n this.setupSessionCheckEventListener();\r\n const url = this.sessionCheckIFrameUrl;\r\n iframe.setAttribute('src', url);\r\n iframe.style.display = 'none';\r\n this.document.body.appendChild(iframe);\r\n this.startSessionCheckTimer();\r\n }\r\n startSessionCheckTimer() {\r\n this.stopSessionCheckTimer();\r\n this.ngZone.runOutsideAngular(() => {\r\n this.sessionCheckTimer = setInterval(this.checkSession.bind(this), this.sessionCheckIntervall);\r\n });\r\n }\r\n stopSessionCheckTimer() {\r\n if (this.sessionCheckTimer) {\r\n clearInterval(this.sessionCheckTimer);\r\n this.sessionCheckTimer = null;\r\n }\r\n }\r\n checkSession() {\r\n const iframe = this.document.getElementById(this.sessionCheckIFrameName);\r\n if (!iframe) {\r\n this.logger.warn('checkSession did not find iframe', this.sessionCheckIFrameName);\r\n }\r\n const sessionState = this.getSessionState();\r\n if (!sessionState) {\r\n this.stopSessionCheckTimer();\r\n }\r\n const message = this.clientId + ' ' + sessionState;\r\n iframe.contentWindow.postMessage(message, this.issuer);\r\n }\r\n createLoginUrl(state = '', loginHint = '', customRedirectUri = '', noPrompt = false, params = {}) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const that = this;\r\n let redirectUri;\r\n if (customRedirectUri) {\r\n redirectUri = customRedirectUri;\r\n }\r\n else {\r\n redirectUri = this.redirectUri;\r\n }\r\n const nonce = yield this.createAndSaveNonce();\r\n if (state) {\r\n state =\r\n nonce + this.config.nonceStateSeparator + encodeURIComponent(state);\r\n }\r\n else {\r\n state = nonce;\r\n }\r\n if (!this.requestAccessToken && !this.oidc) {\r\n throw new Error('Either requestAccessToken or oidc or both must be true');\r\n }\r\n if (this.config.responseType) {\r\n this.responseType = this.config.responseType;\r\n }\r\n else {\r\n if (this.oidc && this.requestAccessToken) {\r\n this.responseType = 'id_token token';\r\n }\r\n else if (this.oidc && !this.requestAccessToken) {\r\n this.responseType = 'id_token';\r\n }\r\n else {\r\n this.responseType = 'token';\r\n }\r\n }\r\n const seperationChar = that.loginUrl.indexOf('?') > -1 ? '&' : '?';\r\n let scope = that.scope;\r\n if (this.oidc && !scope.match(/(^|\\s)openid($|\\s)/)) {\r\n scope = 'openid ' + scope;\r\n }\r\n let url = that.loginUrl +\r\n seperationChar +\r\n 'response_type=' +\r\n encodeURIComponent(that.responseType) +\r\n '&client_id=' +\r\n encodeURIComponent(that.clientId) +\r\n '&state=' +\r\n encodeURIComponent(state) +\r\n '&redirect_uri=' +\r\n encodeURIComponent(redirectUri) +\r\n '&scope=' +\r\n encodeURIComponent(scope);\r\n if (this.responseType.includes('code') && !this.disablePKCE) {\r\n const [challenge, verifier] = yield this.createChallangeVerifierPairForPKCE();\r\n if (this.saveNoncesInLocalStorage &&\r\n typeof window['localStorage'] !== 'undefined') {\r\n localStorage.setItem('PKCE_verifier', verifier);\r\n }\r\n else {\r\n this._storage.setItem('PKCE_verifier', verifier);\r\n }\r\n url += '&code_challenge=' + challenge;\r\n url += '&code_challenge_method=S256';\r\n }\r\n if (loginHint) {\r\n url += '&login_hint=' + encodeURIComponent(loginHint);\r\n }\r\n if (that.resource) {\r\n url += '&resource=' + encodeURIComponent(that.resource);\r\n }\r\n if (that.oidc) {\r\n url += '&nonce=' + encodeURIComponent(nonce);\r\n }\r\n if (noPrompt) {\r\n url += '&prompt=none';\r\n }\r\n for (const key of Object.keys(params)) {\r\n url +=\r\n '&' + encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\r\n }\r\n if (this.customQueryParams) {\r\n for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {\r\n url +=\r\n '&' + key + '=' + encodeURIComponent(this.customQueryParams[key]);\r\n }\r\n }\r\n return url;\r\n });\r\n }\r\n initImplicitFlowInternal(additionalState = '', params = '') {\r\n if (this.inImplicitFlow) {\r\n return;\r\n }\r\n this.inImplicitFlow = true;\r\n if (!this.validateUrlForHttps(this.loginUrl)) {\r\n throw new Error(\"loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n }\r\n let addParams = {};\r\n let loginHint = null;\r\n if (typeof params === 'string') {\r\n loginHint = params;\r\n }\r\n else if (typeof params === 'object') {\r\n addParams = params;\r\n }\r\n this.createLoginUrl(additionalState, loginHint, null, false, addParams)\r\n .then(this.config.openUri)\r\n .catch((error) => {\r\n console.error('Error in initImplicitFlow', error);\r\n this.inImplicitFlow = false;\r\n });\r\n }\r\n /**\r\n * Starts the implicit flow and redirects to user to\r\n * the auth servers' login url.\r\n *\r\n * @param additionalState Optional state that is passed around.\r\n * You'll find this state in the property `state` after `tryLogin` logged in the user.\r\n * @param params Hash with additional parameter. If it is a string, it is used for the\r\n * parameter loginHint (for the sake of compatibility with former versions)\r\n */\r\n initImplicitFlow(additionalState = '', params = '') {\r\n if (this.loginUrl !== '') {\r\n this.initImplicitFlowInternal(additionalState, params);\r\n }\r\n else {\r\n this.events\r\n .pipe(filter((e) => e.type === 'discovery_document_loaded'))\r\n .subscribe((_) => this.initImplicitFlowInternal(additionalState, params));\r\n }\r\n }\r\n /**\r\n * Reset current implicit flow\r\n *\r\n * @description This method allows resetting the current implict flow in order to be initialized again.\r\n */\r\n resetImplicitFlow() {\r\n this.inImplicitFlow = false;\r\n }\r\n callOnTokenReceivedIfExists(options) {\r\n const that = this;\r\n if (options.onTokenReceived) {\r\n const tokenParams = {\r\n idClaims: that.getIdentityClaims(),\r\n idToken: that.getIdToken(),\r\n accessToken: that.getAccessToken(),\r\n state: that.state,\r\n };\r\n options.onTokenReceived(tokenParams);\r\n }\r\n }\r\n storeAccessTokenResponse(accessToken, refreshToken, expiresIn, grantedScopes, customParameters) {\r\n this._storage.setItem('access_token', accessToken);\r\n if (grantedScopes && !Array.isArray(grantedScopes)) {\r\n this._storage.setItem('granted_scopes', JSON.stringify(grantedScopes.split(' ')));\r\n }\r\n else if (grantedScopes && Array.isArray(grantedScopes)) {\r\n this._storage.setItem('granted_scopes', JSON.stringify(grantedScopes));\r\n }\r\n this._storage.setItem('access_token_stored_at', '' + this.dateTimeService.now());\r\n if (expiresIn) {\r\n const expiresInMilliSeconds = expiresIn * 1000;\r\n const now = this.dateTimeService.new();\r\n const expiresAt = now.getTime() + expiresInMilliSeconds;\r\n this._storage.setItem('expires_at', '' + expiresAt);\r\n }\r\n if (refreshToken) {\r\n this._storage.setItem('refresh_token', refreshToken);\r\n }\r\n if (customParameters) {\r\n customParameters.forEach((value, key) => {\r\n this._storage.setItem(key, value);\r\n });\r\n }\r\n }\r\n /**\r\n * Delegates to tryLoginImplicitFlow for the sake of competability\r\n * @param options Optional options.\r\n */\r\n tryLogin(options = null) {\r\n if (this.config.responseType === 'code') {\r\n return this.tryLoginCodeFlow(options).then((_) => true);\r\n }\r\n else {\r\n return this.tryLoginImplicitFlow(options);\r\n }\r\n }\r\n parseQueryString(queryString) {\r\n if (!queryString || queryString.length === 0) {\r\n return {};\r\n }\r\n if (queryString.charAt(0) === '?') {\r\n queryString = queryString.substr(1);\r\n }\r\n return this.urlHelper.parseQueryString(queryString);\r\n }\r\n tryLoginCodeFlow(options = null) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n options = options || {};\r\n const querySource = options.customHashFragment\r\n ? options.customHashFragment.substring(1)\r\n : window.location.search;\r\n const parts = this.getCodePartsFromUrl(querySource);\r\n const code = parts['code'];\r\n const state = parts['state'];\r\n const sessionState = parts['session_state'];\r\n if (!options.preventClearHashAfterLogin) {\r\n const href = location.origin +\r\n location.pathname +\r\n location.search\r\n .replace(/code=[^&\\$]*/, '')\r\n .replace(/scope=[^&\\$]*/, '')\r\n .replace(/state=[^&\\$]*/, '')\r\n .replace(/session_state=[^&\\$]*/, '')\r\n .replace(/^\\?&/, '?')\r\n .replace(/&$/, '')\r\n .replace(/^\\?$/, '')\r\n .replace(/&+/g, '&')\r\n .replace(/\\?&/, '?')\r\n .replace(/\\?$/, '') +\r\n location.hash;\r\n history.replaceState(null, window.name, href);\r\n }\r\n let [nonceInState, userState] = this.parseState(state);\r\n this.state = userState;\r\n if (parts['error']) {\r\n this.debug('error trying to login');\r\n this.handleLoginError(options, parts);\r\n const err = new OAuthErrorEvent('code_error', {}, parts);\r\n this.eventsSubject.next(err);\r\n return Promise.reject(err);\r\n }\r\n if (!options.disableNonceCheck) {\r\n if (!nonceInState) {\r\n this.saveRequestedRoute();\r\n return Promise.resolve();\r\n }\r\n if (!options.disableOAuth2StateCheck) {\r\n const success = this.validateNonce(nonceInState);\r\n if (!success) {\r\n const event = new OAuthErrorEvent('invalid_nonce_in_state', null);\r\n this.eventsSubject.next(event);\r\n return Promise.reject(event);\r\n }\r\n }\r\n this.storeSessionState(sessionState);\r\n if (code) {\r\n yield this.getTokenFromCode(code, options);\r\n this.restoreRequestedRoute();\r\n return Promise.resolve();\r\n }\r\n else {\r\n return Promise.resolve();\r\n }\r\n }\r\n return Promise.reject();\r\n });\r\n }\r\n saveRequestedRoute() {\r\n if (this.config.preserveRequestedRoute) {\r\n this._storage.setItem('requested_route', window.location.pathname + window.location.search);\r\n }\r\n }\r\n restoreRequestedRoute() {\r\n const requestedRoute = this._storage.getItem('requested_route');\r\n if (requestedRoute) {\r\n history.replaceState(null, '', window.location.origin + requestedRoute);\r\n }\r\n }\r\n /**\r\n * Retrieve the returned auth code from the redirect uri that has been called.\r\n * If required also check hash, as we could use hash location strategy.\r\n */\r\n getCodePartsFromUrl(queryString) {\r\n if (!queryString || queryString.length === 0) {\r\n return this.urlHelper.getHashFragmentParams();\r\n }\r\n // normalize query string\r\n if (queryString.charAt(0) === '?') {\r\n queryString = queryString.substr(1);\r\n }\r\n return this.urlHelper.parseQueryString(queryString);\r\n }\r\n /**\r\n * Get token using an intermediate code. Works for the Authorization Code flow.\r\n */\r\n getTokenFromCode(code, options) {\r\n let params = new HttpParams({ encoder: new WebHttpUrlEncodingCodec() })\r\n .set('grant_type', 'authorization_code')\r\n .set('code', code)\r\n .set('redirect_uri', options.customRedirectUri || this.redirectUri);\r\n if (!this.disablePKCE) {\r\n let PKCEVerifier;\r\n if (this.saveNoncesInLocalStorage &&\r\n typeof window['localStorage'] !== 'undefined') {\r\n PKCEVerifier = localStorage.getItem('PKCE_verifier');\r\n }\r\n else {\r\n PKCEVerifier = this._storage.getItem('PKCE_verifier');\r\n }\r\n if (!PKCEVerifier) {\r\n console.warn('No PKCE verifier found in oauth storage!');\r\n }\r\n else {\r\n params = params.set('code_verifier', PKCEVerifier);\r\n }\r\n }\r\n return this.fetchAndProcessToken(params, options);\r\n }\r\n fetchAndProcessToken(params, options) {\r\n options = options || {};\r\n this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint, 'tokenEndpoint');\r\n let headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\r\n if (this.useHttpBasicAuth) {\r\n const header = btoa(`${this.clientId}:${this.dummyClientSecret}`);\r\n headers = headers.set('Authorization', 'Basic ' + header);\r\n }\r\n if (!this.useHttpBasicAuth) {\r\n params = params.set('client_id', this.clientId);\r\n }\r\n if (!this.useHttpBasicAuth && this.dummyClientSecret) {\r\n params = params.set('client_secret', this.dummyClientSecret);\r\n }\r\n return new Promise((resolve, reject) => {\r\n if (this.customQueryParams) {\r\n for (let key of Object.getOwnPropertyNames(this.customQueryParams)) {\r\n params = params.set(key, this.customQueryParams[key]);\r\n }\r\n }\r\n this.http\r\n .post(this.tokenEndpoint, params, { headers })\r\n .subscribe((tokenResponse) => {\r\n this.debug('refresh tokenResponse', tokenResponse);\r\n this.storeAccessTokenResponse(tokenResponse.access_token, tokenResponse.refresh_token, tokenResponse.expires_in ||\r\n this.fallbackAccessTokenExpirationTimeInSec, tokenResponse.scope, this.extractRecognizedCustomParameters(tokenResponse));\r\n if (this.oidc && tokenResponse.id_token) {\r\n this.processIdToken(tokenResponse.id_token, tokenResponse.access_token, options.disableNonceCheck)\r\n .then((result) => {\r\n this.storeIdToken(result);\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_refreshed'));\r\n resolve(tokenResponse);\r\n })\r\n .catch((reason) => {\r\n this.eventsSubject.next(new OAuthErrorEvent('token_validation_error', reason));\r\n console.error('Error validating tokens');\r\n console.error(reason);\r\n reject(reason);\r\n });\r\n }\r\n else {\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_refreshed'));\r\n resolve(tokenResponse);\r\n }\r\n }, (err) => {\r\n console.error('Error getting token', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('token_refresh_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n /**\r\n * Checks whether there are tokens in the hash fragment\r\n * as a result of the implicit flow. These tokens are\r\n * parsed, validated and used to sign the user in to the\r\n * current client.\r\n *\r\n * @param options Optional options.\r\n */\r\n tryLoginImplicitFlow(options = null) {\r\n options = options || {};\r\n let parts;\r\n if (options.customHashFragment) {\r\n parts = this.urlHelper.getHashFragmentParams(options.customHashFragment);\r\n }\r\n else {\r\n parts = this.urlHelper.getHashFragmentParams();\r\n }\r\n this.debug('parsed url', parts);\r\n const state = parts['state'];\r\n let [nonceInState, userState] = this.parseState(state);\r\n this.state = userState;\r\n if (parts['error']) {\r\n this.debug('error trying to login');\r\n this.handleLoginError(options, parts);\r\n const err = new OAuthErrorEvent('token_error', {}, parts);\r\n this.eventsSubject.next(err);\r\n return Promise.reject(err);\r\n }\r\n const accessToken = parts['access_token'];\r\n const idToken = parts['id_token'];\r\n const sessionState = parts['session_state'];\r\n const grantedScopes = parts['scope'];\r\n if (!this.requestAccessToken && !this.oidc) {\r\n return Promise.reject('Either requestAccessToken or oidc (or both) must be true.');\r\n }\r\n if (this.requestAccessToken && !accessToken) {\r\n return Promise.resolve(false);\r\n }\r\n if (this.requestAccessToken && !options.disableOAuth2StateCheck && !state) {\r\n return Promise.resolve(false);\r\n }\r\n if (this.oidc && !idToken) {\r\n return Promise.resolve(false);\r\n }\r\n if (this.sessionChecksEnabled && !sessionState) {\r\n this.logger.warn('session checks (Session Status Change Notification) ' +\r\n 'were activated in the configuration but the id_token ' +\r\n 'does not contain a session_state claim');\r\n }\r\n if (this.requestAccessToken && !options.disableNonceCheck) {\r\n const success = this.validateNonce(nonceInState);\r\n if (!success) {\r\n const event = new OAuthErrorEvent('invalid_nonce_in_state', null);\r\n this.eventsSubject.next(event);\r\n return Promise.reject(event);\r\n }\r\n }\r\n if (this.requestAccessToken) {\r\n this.storeAccessTokenResponse(accessToken, null, parts['expires_in'] || this.fallbackAccessTokenExpirationTimeInSec, grantedScopes);\r\n }\r\n if (!this.oidc) {\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n if (this.clearHashAfterLogin && !options.preventClearHashAfterLogin) {\r\n this.clearLocationHash();\r\n }\r\n this.callOnTokenReceivedIfExists(options);\r\n return Promise.resolve(true);\r\n }\r\n return this.processIdToken(idToken, accessToken, options.disableNonceCheck)\r\n .then((result) => {\r\n if (options.validationHandler) {\r\n return options\r\n .validationHandler({\r\n accessToken: accessToken,\r\n idClaims: result.idTokenClaims,\r\n idToken: result.idToken,\r\n state: state,\r\n })\r\n .then((_) => result);\r\n }\r\n return result;\r\n })\r\n .then((result) => {\r\n this.storeIdToken(result);\r\n this.storeSessionState(sessionState);\r\n if (this.clearHashAfterLogin && !options.preventClearHashAfterLogin) {\r\n this.clearLocationHash();\r\n }\r\n this.eventsSubject.next(new OAuthSuccessEvent('token_received'));\r\n this.callOnTokenReceivedIfExists(options);\r\n this.inImplicitFlow = false;\r\n return true;\r\n })\r\n .catch((reason) => {\r\n this.eventsSubject.next(new OAuthErrorEvent('token_validation_error', reason));\r\n this.logger.error('Error validating tokens');\r\n this.logger.error(reason);\r\n return Promise.reject(reason);\r\n });\r\n }\r\n parseState(state) {\r\n let nonce = state;\r\n let userState = '';\r\n if (state) {\r\n const idx = state.indexOf(this.config.nonceStateSeparator);\r\n if (idx > -1) {\r\n nonce = state.substr(0, idx);\r\n userState = state.substr(idx + this.config.nonceStateSeparator.length);\r\n }\r\n }\r\n return [nonce, userState];\r\n }\r\n validateNonce(nonceInState) {\r\n let savedNonce;\r\n if (this.saveNoncesInLocalStorage &&\r\n typeof window['localStorage'] !== 'undefined') {\r\n savedNonce = localStorage.getItem('nonce');\r\n }\r\n else {\r\n savedNonce = this._storage.getItem('nonce');\r\n }\r\n if (savedNonce !== nonceInState) {\r\n const err = 'Validating access_token failed, wrong state/nonce.';\r\n console.error(err, savedNonce, nonceInState);\r\n return false;\r\n }\r\n return true;\r\n }\r\n storeIdToken(idToken) {\r\n this._storage.setItem('id_token', idToken.idToken);\r\n this._storage.setItem('id_token_claims_obj', idToken.idTokenClaimsJson);\r\n this._storage.setItem('id_token_expires_at', '' + idToken.idTokenExpiresAt);\r\n this._storage.setItem('id_token_stored_at', '' + this.dateTimeService.now());\r\n }\r\n storeSessionState(sessionState) {\r\n this._storage.setItem('session_state', sessionState);\r\n }\r\n getSessionState() {\r\n return this._storage.getItem('session_state');\r\n }\r\n handleLoginError(options, parts) {\r\n if (options.onLoginError) {\r\n options.onLoginError(parts);\r\n }\r\n if (this.clearHashAfterLogin && !options.preventClearHashAfterLogin) {\r\n this.clearLocationHash();\r\n }\r\n }\r\n getClockSkewInMsec(defaultSkewMsc = 600000) {\r\n if (!this.clockSkewInSec) {\r\n return defaultSkewMsc;\r\n }\r\n return this.clockSkewInSec * 1000;\r\n }\r\n /**\r\n * @ignore\r\n */\r\n processIdToken(idToken, accessToken, skipNonceCheck = false) {\r\n const tokenParts = idToken.split('.');\r\n const headerBase64 = this.padBase64(tokenParts[0]);\r\n const headerJson = b64DecodeUnicode(headerBase64);\r\n const header = JSON.parse(headerJson);\r\n const claimsBase64 = this.padBase64(tokenParts[1]);\r\n const claimsJson = b64DecodeUnicode(claimsBase64);\r\n const claims = JSON.parse(claimsJson);\r\n let savedNonce;\r\n if (this.saveNoncesInLocalStorage &&\r\n typeof window['localStorage'] !== 'undefined') {\r\n savedNonce = localStorage.getItem('nonce');\r\n }\r\n else {\r\n savedNonce = this._storage.getItem('nonce');\r\n }\r\n if (Array.isArray(claims.aud)) {\r\n if (claims.aud.every((v) => v !== this.clientId)) {\r\n const err = 'Wrong audience: ' + claims.aud.join(',');\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n }\r\n else {\r\n if (claims.aud !== this.clientId) {\r\n const err = 'Wrong audience: ' + claims.aud;\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n }\r\n if (!claims.sub) {\r\n const err = 'No sub claim in id_token';\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n /* For now, we only check whether the sub against\r\n * silentRefreshSubject when sessionChecksEnabled is on\r\n * We will reconsider in a later version to do this\r\n * in every other case too.\r\n */\r\n if (this.sessionChecksEnabled &&\r\n this.silentRefreshSubject &&\r\n this.silentRefreshSubject !== claims['sub']) {\r\n const err = 'After refreshing, we got an id_token for another user (sub). ' +\r\n `Expected sub: ${this.silentRefreshSubject}, received sub: ${claims['sub']}`;\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n if (!claims.iat) {\r\n const err = 'No iat claim in id_token';\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n if (!this.skipIssuerCheck && claims.iss !== this.issuer) {\r\n const err = 'Wrong issuer: ' + claims.iss;\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n if (!skipNonceCheck && claims.nonce !== savedNonce) {\r\n const err = 'Wrong nonce: ' + claims.nonce;\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n // at_hash is not applicable to authorization code flow\r\n // addressing https://github.com/manfredsteyer/angular-oauth2-oidc/issues/661\r\n // i.e. Based on spec the at_hash check is only true for implicit code flow on Ping Federate\r\n // https://www.pingidentity.com/developer/en/resources/openid-connect-developers-guide.html\r\n if (this.hasOwnProperty('responseType') &&\r\n (this.responseType === 'code' || this.responseType === 'id_token')) {\r\n this.disableAtHashCheck = true;\r\n }\r\n if (!this.disableAtHashCheck &&\r\n this.requestAccessToken &&\r\n !claims['at_hash']) {\r\n const err = 'An at_hash is needed!';\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n const now = this.dateTimeService.now();\r\n const issuedAtMSec = claims.iat * 1000;\r\n const expiresAtMSec = claims.exp * 1000;\r\n const clockSkewInMSec = this.getClockSkewInMsec(); // (this.getClockSkewInMsec() || 600) * 1000;\r\n if (issuedAtMSec - clockSkewInMSec >= now ||\r\n expiresAtMSec + clockSkewInMSec <= now) {\r\n const err = 'Token has expired';\r\n console.error(err);\r\n console.error({\r\n now: now,\r\n issuedAtMSec: issuedAtMSec,\r\n expiresAtMSec: expiresAtMSec,\r\n });\r\n return Promise.reject(err);\r\n }\r\n const validationParams = {\r\n accessToken: accessToken,\r\n idToken: idToken,\r\n jwks: this.jwks,\r\n idTokenClaims: claims,\r\n idTokenHeader: header,\r\n loadKeys: () => this.loadJwks(),\r\n };\r\n if (this.disableAtHashCheck) {\r\n return this.checkSignature(validationParams).then((_) => {\r\n const result = {\r\n idToken: idToken,\r\n idTokenClaims: claims,\r\n idTokenClaimsJson: claimsJson,\r\n idTokenHeader: header,\r\n idTokenHeaderJson: headerJson,\r\n idTokenExpiresAt: expiresAtMSec,\r\n };\r\n return result;\r\n });\r\n }\r\n return this.checkAtHash(validationParams).then((atHashValid) => {\r\n if (!this.disableAtHashCheck && this.requestAccessToken && !atHashValid) {\r\n const err = 'Wrong at_hash';\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n return this.checkSignature(validationParams).then((_) => {\r\n const atHashCheckEnabled = !this.disableAtHashCheck;\r\n const result = {\r\n idToken: idToken,\r\n idTokenClaims: claims,\r\n idTokenClaimsJson: claimsJson,\r\n idTokenHeader: header,\r\n idTokenHeaderJson: headerJson,\r\n idTokenExpiresAt: expiresAtMSec,\r\n };\r\n if (atHashCheckEnabled) {\r\n return this.checkAtHash(validationParams).then((atHashValid) => {\r\n if (this.requestAccessToken && !atHashValid) {\r\n const err = 'Wrong at_hash';\r\n this.logger.warn(err);\r\n return Promise.reject(err);\r\n }\r\n else {\r\n return result;\r\n }\r\n });\r\n }\r\n else {\r\n return result;\r\n }\r\n });\r\n });\r\n }\r\n /**\r\n * Returns the received claims about the user.\r\n */\r\n getIdentityClaims() {\r\n const claims = this._storage.getItem('id_token_claims_obj');\r\n if (!claims) {\r\n return null;\r\n }\r\n return JSON.parse(claims);\r\n }\r\n /**\r\n * Returns the granted scopes from the server.\r\n */\r\n getGrantedScopes() {\r\n const scopes = this._storage.getItem('granted_scopes');\r\n if (!scopes) {\r\n return null;\r\n }\r\n return JSON.parse(scopes);\r\n }\r\n /**\r\n * Returns the current id_token.\r\n */\r\n getIdToken() {\r\n return this._storage ? this._storage.getItem('id_token') : null;\r\n }\r\n padBase64(base64data) {\r\n while (base64data.length % 4 !== 0) {\r\n base64data += '=';\r\n }\r\n return base64data;\r\n }\r\n /**\r\n * Returns the current access_token.\r\n */\r\n getAccessToken() {\r\n return this._storage ? this._storage.getItem('access_token') : null;\r\n }\r\n getRefreshToken() {\r\n return this._storage ? this._storage.getItem('refresh_token') : null;\r\n }\r\n /**\r\n * Returns the expiration date of the access_token\r\n * as milliseconds since 1970.\r\n */\r\n getAccessTokenExpiration() {\r\n if (!this._storage.getItem('expires_at')) {\r\n return null;\r\n }\r\n return parseInt(this._storage.getItem('expires_at'), 10);\r\n }\r\n getAccessTokenStoredAt() {\r\n return parseInt(this._storage.getItem('access_token_stored_at'), 10);\r\n }\r\n getIdTokenStoredAt() {\r\n return parseInt(this._storage.getItem('id_token_stored_at'), 10);\r\n }\r\n /**\r\n * Returns the expiration date of the id_token\r\n * as milliseconds since 1970.\r\n */\r\n getIdTokenExpiration() {\r\n if (!this._storage.getItem('id_token_expires_at')) {\r\n return null;\r\n }\r\n return parseInt(this._storage.getItem('id_token_expires_at'), 10);\r\n }\r\n /**\r\n * Checkes, whether there is a valid access_token.\r\n */\r\n hasValidAccessToken() {\r\n if (this.getAccessToken()) {\r\n const expiresAt = this._storage.getItem('expires_at');\r\n const now = this.dateTimeService.new();\r\n if (expiresAt &&\r\n parseInt(expiresAt, 10) < now.getTime() - this.getClockSkewInMsec()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Checks whether there is a valid id_token.\r\n */\r\n hasValidIdToken() {\r\n if (this.getIdToken()) {\r\n const expiresAt = this._storage.getItem('id_token_expires_at');\r\n const now = this.dateTimeService.new();\r\n if (expiresAt &&\r\n parseInt(expiresAt, 10) < now.getTime() - this.getClockSkewInMsec()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Retrieve a saved custom property of the TokenReponse object. Only if predefined in authconfig.\r\n */\r\n getCustomTokenResponseProperty(requestedProperty) {\r\n return this._storage &&\r\n this.config.customTokenParameters &&\r\n this.config.customTokenParameters.indexOf(requestedProperty) >= 0 &&\r\n this._storage.getItem(requestedProperty) !== null\r\n ? JSON.parse(this._storage.getItem(requestedProperty))\r\n : null;\r\n }\r\n /**\r\n * Returns the auth-header that can be used\r\n * to transmit the access_token to a service\r\n */\r\n authorizationHeader() {\r\n return 'Bearer ' + this.getAccessToken();\r\n }\r\n logOut(customParameters = {}, state = '') {\r\n let noRedirectToLogoutUrl = false;\r\n if (typeof customParameters === 'boolean') {\r\n noRedirectToLogoutUrl = customParameters;\r\n customParameters = {};\r\n }\r\n const id_token = this.getIdToken();\r\n this._storage.removeItem('access_token');\r\n this._storage.removeItem('id_token');\r\n this._storage.removeItem('refresh_token');\r\n if (this.saveNoncesInLocalStorage) {\r\n localStorage.removeItem('nonce');\r\n localStorage.removeItem('PKCE_verifier');\r\n }\r\n else {\r\n this._storage.removeItem('nonce');\r\n this._storage.removeItem('PKCE_verifier');\r\n }\r\n this._storage.removeItem('expires_at');\r\n this._storage.removeItem('id_token_claims_obj');\r\n this._storage.removeItem('id_token_expires_at');\r\n this._storage.removeItem('id_token_stored_at');\r\n this._storage.removeItem('access_token_stored_at');\r\n this._storage.removeItem('granted_scopes');\r\n this._storage.removeItem('session_state');\r\n if (this.config.customTokenParameters) {\r\n this.config.customTokenParameters.forEach((customParam) => this._storage.removeItem(customParam));\r\n }\r\n this.silentRefreshSubject = null;\r\n this.eventsSubject.next(new OAuthInfoEvent('logout'));\r\n if (!this.logoutUrl) {\r\n return;\r\n }\r\n if (noRedirectToLogoutUrl) {\r\n return;\r\n }\r\n if (!id_token && !this.postLogoutRedirectUri) {\r\n return;\r\n }\r\n let logoutUrl;\r\n if (!this.validateUrlForHttps(this.logoutUrl)) {\r\n throw new Error(\"logoutUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n }\r\n // For backward compatibility\r\n if (this.logoutUrl.indexOf('{{') > -1) {\r\n logoutUrl = this.logoutUrl\r\n .replace(/\\{\\{id_token\\}\\}/, encodeURIComponent(id_token))\r\n .replace(/\\{\\{client_id\\}\\}/, encodeURIComponent(this.clientId));\r\n }\r\n else {\r\n let params = new HttpParams({ encoder: new WebHttpUrlEncodingCodec() });\r\n if (id_token) {\r\n params = params.set('id_token_hint', id_token);\r\n }\r\n const postLogoutUrl = this.postLogoutRedirectUri ||\r\n (this.redirectUriAsPostLogoutRedirectUriFallback && this.redirectUri) ||\r\n '';\r\n if (postLogoutUrl) {\r\n params = params.set('post_logout_redirect_uri', postLogoutUrl);\r\n if (state) {\r\n params = params.set('state', state);\r\n }\r\n }\r\n for (let key in customParameters) {\r\n params = params.set(key, customParameters[key]);\r\n }\r\n logoutUrl =\r\n this.logoutUrl +\r\n (this.logoutUrl.indexOf('?') > -1 ? '&' : '?') +\r\n params.toString();\r\n }\r\n this.config.openUri(logoutUrl);\r\n }\r\n /**\r\n * @ignore\r\n */\r\n createAndSaveNonce() {\r\n const that = this;\r\n return this.createNonce().then(function (nonce) {\r\n // Use localStorage for nonce if possible\r\n // localStorage is the only storage who survives a\r\n // redirect in ALL browsers (also IE)\r\n // Otherwiese we'd force teams who have to support\r\n // IE into using localStorage for everything\r\n if (that.saveNoncesInLocalStorage &&\r\n typeof window['localStorage'] !== 'undefined') {\r\n localStorage.setItem('nonce', nonce);\r\n }\r\n else {\r\n that._storage.setItem('nonce', nonce);\r\n }\r\n return nonce;\r\n });\r\n }\r\n /**\r\n * @ignore\r\n */\r\n ngOnDestroy() {\r\n this.clearAccessTokenTimer();\r\n this.clearIdTokenTimer();\r\n this.removeSilentRefreshEventListener();\r\n const silentRefreshFrame = this.document.getElementById(this.silentRefreshIFrameName);\r\n if (silentRefreshFrame) {\r\n silentRefreshFrame.remove();\r\n }\r\n this.stopSessionCheckTimer();\r\n this.removeSessionCheckEventListener();\r\n const sessionCheckFrame = this.document.getElementById(this.sessionCheckIFrameName);\r\n if (sessionCheckFrame) {\r\n sessionCheckFrame.remove();\r\n }\r\n }\r\n createNonce() {\r\n return new Promise((resolve) => {\r\n if (this.rngUrl) {\r\n throw new Error('createNonce with rng-web-api has not been implemented so far');\r\n }\r\n /*\r\n * This alphabet is from:\r\n * https://tools.ietf.org/html/rfc7636#section-4.1\r\n *\r\n * [A-Z] / [a-z] / [0-9] / \"-\" / \".\" / \"_\" / \"~\"\r\n */\r\n const unreserved = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\r\n let size = 45;\r\n let id = '';\r\n const crypto = typeof self === 'undefined' ? null : self.crypto || self['msCrypto'];\r\n if (crypto) {\r\n let bytes = new Uint8Array(size);\r\n crypto.getRandomValues(bytes);\r\n // Needed for IE\r\n if (!bytes.map) {\r\n bytes.map = Array.prototype.map;\r\n }\r\n bytes = bytes.map((x) => unreserved.charCodeAt(x % unreserved.length));\r\n id = String.fromCharCode.apply(null, bytes);\r\n }\r\n else {\r\n while (0 < size--) {\r\n id += unreserved[(Math.random() * unreserved.length) | 0];\r\n }\r\n }\r\n resolve(base64UrlEncode(id));\r\n });\r\n }\r\n checkAtHash(params) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.tokenValidationHandler) {\r\n this.logger.warn('No tokenValidationHandler configured. Cannot check at_hash.');\r\n return true;\r\n }\r\n return this.tokenValidationHandler.validateAtHash(params);\r\n });\r\n }\r\n checkSignature(params) {\r\n if (!this.tokenValidationHandler) {\r\n this.logger.warn('No tokenValidationHandler configured. Cannot check signature.');\r\n return Promise.resolve(null);\r\n }\r\n return this.tokenValidationHandler.validateSignature(params);\r\n }\r\n /**\r\n * Start the implicit flow or the code flow,\r\n * depending on your configuration.\r\n */\r\n initLoginFlow(additionalState = '', params = {}) {\r\n if (this.responseType === 'code') {\r\n return this.initCodeFlow(additionalState, params);\r\n }\r\n else {\r\n return this.initImplicitFlow(additionalState, params);\r\n }\r\n }\r\n /**\r\n * Starts the authorization code flow and redirects to user to\r\n * the auth servers login url.\r\n */\r\n initCodeFlow(additionalState = '', params = {}) {\r\n if (this.loginUrl !== '') {\r\n this.initCodeFlowInternal(additionalState, params);\r\n }\r\n else {\r\n this.events\r\n .pipe(filter((e) => e.type === 'discovery_document_loaded'))\r\n .subscribe((_) => this.initCodeFlowInternal(additionalState, params));\r\n }\r\n }\r\n initCodeFlowInternal(additionalState = '', params = {}) {\r\n if (!this.validateUrlForHttps(this.loginUrl)) {\r\n throw new Error(\"loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).\");\r\n }\r\n let addParams = {};\r\n let loginHint = null;\r\n if (typeof params === 'string') {\r\n loginHint = params;\r\n }\r\n else if (typeof params === 'object') {\r\n addParams = params;\r\n }\r\n this.createLoginUrl(additionalState, loginHint, null, false, addParams)\r\n .then(this.config.openUri)\r\n .catch((error) => {\r\n console.error('Error in initAuthorizationCodeFlow');\r\n console.error(error);\r\n });\r\n }\r\n createChallangeVerifierPairForPKCE() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.crypto) {\r\n throw new Error('PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?');\r\n }\r\n const verifier = yield this.createNonce();\r\n const challengeRaw = yield this.crypto.calcHash(verifier, 'sha-256');\r\n const challenge = base64UrlEncode(challengeRaw);\r\n return [challenge, verifier];\r\n });\r\n }\r\n extractRecognizedCustomParameters(tokenResponse) {\r\n let foundParameters = new Map();\r\n if (!this.config.customTokenParameters) {\r\n return foundParameters;\r\n }\r\n this.config.customTokenParameters.forEach((recognizedParameter) => {\r\n if (tokenResponse[recognizedParameter]) {\r\n foundParameters.set(recognizedParameter, JSON.stringify(tokenResponse[recognizedParameter]));\r\n }\r\n });\r\n return foundParameters;\r\n }\r\n /**\r\n * Revokes the auth token to secure the vulnarability\r\n * of the token issued allowing the authorization server to clean\r\n * up any security credentials associated with the authorization\r\n */\r\n revokeTokenAndLogout(customParameters = {}, ignoreCorsIssues = false) {\r\n let revokeEndpoint = this.revocationEndpoint;\r\n let accessToken = this.getAccessToken();\r\n let refreshToken = this.getRefreshToken();\r\n if (!accessToken) {\r\n return;\r\n }\r\n let params = new HttpParams({ encoder: new WebHttpUrlEncodingCodec() });\r\n let headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\r\n if (this.useHttpBasicAuth) {\r\n const header = btoa(`${this.clientId}:${this.dummyClientSecret}`);\r\n headers = headers.set('Authorization', 'Basic ' + header);\r\n }\r\n if (!this.useHttpBasicAuth) {\r\n params = params.set('client_id', this.clientId);\r\n }\r\n if (!this.useHttpBasicAuth && this.dummyClientSecret) {\r\n params = params.set('client_secret', this.dummyClientSecret);\r\n }\r\n if (this.customQueryParams) {\r\n for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {\r\n params = params.set(key, this.customQueryParams[key]);\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n let revokeAccessToken;\r\n let revokeRefreshToken;\r\n if (accessToken) {\r\n let revokationParams = params\r\n .set('token', accessToken)\r\n .set('token_type_hint', 'access_token');\r\n revokeAccessToken = this.http.post(revokeEndpoint, revokationParams, { headers });\r\n }\r\n else {\r\n revokeAccessToken = of(null);\r\n }\r\n if (refreshToken) {\r\n let revokationParams = params\r\n .set('token', refreshToken)\r\n .set('token_type_hint', 'refresh_token');\r\n revokeRefreshToken = this.http.post(revokeEndpoint, revokationParams, { headers });\r\n }\r\n else {\r\n revokeRefreshToken = of(null);\r\n }\r\n if (ignoreCorsIssues) {\r\n revokeAccessToken = revokeAccessToken.pipe(catchError((err) => {\r\n if (err.status === 0) {\r\n return of(null);\r\n }\r\n return throwError(err);\r\n }));\r\n revokeRefreshToken = revokeRefreshToken.pipe(catchError((err) => {\r\n if (err.status === 0) {\r\n return of(null);\r\n }\r\n return throwError(err);\r\n }));\r\n }\r\n combineLatest([revokeAccessToken, revokeRefreshToken]).subscribe((res) => {\r\n this.logOut(customParameters);\r\n resolve(res);\r\n this.logger.info('Token successfully revoked');\r\n }, (err) => {\r\n this.logger.error('Error revoking token', err);\r\n this.eventsSubject.next(new OAuthErrorEvent('token_revoke_error', err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n /**\r\n * Clear location.hash if it's present\r\n */\r\n clearLocationHash() {\r\n // Checking for empty hash is necessary for Firefox\r\n // as setting an empty hash to an empty string adds # to the URL\r\n if (location.hash != '') {\r\n location.hash = '';\r\n }\r\n }\r\n}\r\nOAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthService, deps: [{ token: i0.NgZone }, { token: i1.HttpClient }, { token: OAuthStorage, optional: true }, { token: ValidationHandler, optional: true }, { token: AuthConfig, optional: true }, { token: UrlHelperService }, { token: OAuthLogger }, { token: HashHandler, optional: true }, { token: DOCUMENT }, { token: DateTimeProvider }], target: i0.ɵɵFactoryTarget.Injectable });\r\nOAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthService, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: i0.NgZone }, { type: i1.HttpClient }, { type: OAuthStorage, decorators: [{\r\n type: Optional\r\n }] }, { type: ValidationHandler, decorators: [{\r\n type: Optional\r\n }] }, { type: AuthConfig, decorators: [{\r\n type: Optional\r\n }] }, { type: UrlHelperService }, { type: OAuthLogger }, { type: HashHandler, decorators: [{\r\n type: Optional\r\n }] }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }, { type: DateTimeProvider }];\r\n } });\n\nclass OAuthModuleConfig {\r\n}\r\nclass OAuthResourceServerConfig {\r\n}\n\nclass OAuthResourceServerErrorHandler {\r\n}\r\nclass OAuthNoopResourceServerErrorHandler {\r\n handleError(err) {\r\n return throwError(err);\r\n }\r\n}\n\nclass DefaultOAuthInterceptor {\r\n constructor(oAuthService, errorHandler, moduleConfig) {\r\n this.oAuthService = oAuthService;\r\n this.errorHandler = errorHandler;\r\n this.moduleConfig = moduleConfig;\r\n }\r\n checkUrl(url) {\r\n if (this.moduleConfig.resourceServer.customUrlValidation) {\r\n return this.moduleConfig.resourceServer.customUrlValidation(url);\r\n }\r\n if (this.moduleConfig.resourceServer.allowedUrls) {\r\n return !!this.moduleConfig.resourceServer.allowedUrls.find((u) => url.toLowerCase().startsWith(u.toLowerCase()));\r\n }\r\n return true;\r\n }\r\n intercept(req, next) {\r\n const url = req.url.toLowerCase();\r\n if (!this.moduleConfig ||\r\n !this.moduleConfig.resourceServer ||\r\n !this.checkUrl(url)) {\r\n return next.handle(req);\r\n }\r\n const sendAccessToken = this.moduleConfig.resourceServer.sendAccessToken;\r\n if (!sendAccessToken) {\r\n return next\r\n .handle(req)\r\n .pipe(catchError((err) => this.errorHandler.handleError(err)));\r\n }\r\n return merge(of(this.oAuthService.getAccessToken()).pipe(filter((token) => !!token)), this.oAuthService.events.pipe(filter((e) => e.type === 'token_received'), timeout(this.oAuthService.waitForTokenInMsec || 0), catchError((_) => of(null)), // timeout is not an error\r\n map((_) => this.oAuthService.getAccessToken()))).pipe(take(1), mergeMap((token) => {\r\n if (token) {\r\n const header = 'Bearer ' + token;\r\n const headers = req.headers.set('Authorization', header);\r\n req = req.clone({ headers });\r\n }\r\n return next\r\n .handle(req)\r\n .pipe(catchError((err) => this.errorHandler.handleError(err)));\r\n }));\r\n }\r\n}\r\nDefaultOAuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultOAuthInterceptor, deps: [{ token: OAuthService }, { token: OAuthResourceServerErrorHandler }, { token: OAuthModuleConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\nDefaultOAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultOAuthInterceptor });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: DefaultOAuthInterceptor, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: OAuthService }, { type: OAuthResourceServerErrorHandler }, { type: OAuthModuleConfig, decorators: [{\r\n type: Optional\r\n }] }];\r\n } });\n\n/**\r\n * A validation handler that isn't validating nothing.\r\n * Can be used to skip validation (at your own risk).\r\n */\r\nclass NullValidationHandler {\r\n validateSignature(validationParams) {\r\n return Promise.resolve(null);\r\n }\r\n validateAtHash(validationParams) {\r\n return Promise.resolve(true);\r\n }\r\n}\n\nfunction createDefaultLogger() {\r\n return console;\r\n}\r\nfunction createDefaultStorage() {\r\n return typeof sessionStorage !== 'undefined'\r\n ? sessionStorage\r\n : new MemoryStorage();\r\n}\n\nclass OAuthModule {\r\n static forRoot(config = null, validationHandlerClass = NullValidationHandler) {\r\n return {\r\n ngModule: OAuthModule,\r\n providers: [\r\n OAuthService,\r\n UrlHelperService,\r\n { provide: OAuthLogger, useFactory: createDefaultLogger },\r\n { provide: OAuthStorage, useFactory: createDefaultStorage },\r\n { provide: ValidationHandler, useClass: validationHandlerClass },\r\n { provide: HashHandler, useClass: DefaultHashHandler },\r\n {\r\n provide: OAuthResourceServerErrorHandler,\r\n useClass: OAuthNoopResourceServerErrorHandler,\r\n },\r\n { provide: OAuthModuleConfig, useValue: config },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: DefaultOAuthInterceptor,\r\n multi: true,\r\n },\r\n { provide: DateTimeProvider, useClass: SystemDateTimeProvider },\r\n ],\r\n };\r\n }\r\n}\r\nOAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nOAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthModule, imports: [CommonModule] });\r\nOAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthModule, imports: [[CommonModule]] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.1\", ngImport: i0, type: OAuthModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n imports: [CommonModule],\r\n declarations: [],\r\n exports: [],\r\n }]\r\n }] });\n\nconst err = `PLEASE READ THIS CAREFULLY:\n\nBeginning with angular-oauth2-oidc version 9, the JwksValidationHandler\nhas been moved to an library of its own. If you need it for implementing\nOAuth2/OIDC **implicit flow**, please install it using npm:\n\n npm i angular-oauth2-oidc-jwks --save\n\nAfter that, you can import it into your application:\n\n import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';\n\nPlease note, that this dependency is not needed for the **code flow**,\nwhich is nowadays the **recommented** one for single page applications.\nThis also results in smaller bundle sizes.\n`;\r\n/**\r\n * This is just a dummy of the JwksValidationHandler\r\n * telling the users that the real one has been moved\r\n * to an library of its own, namely angular-oauth2-oidc-utils\r\n */\r\nclass JwksValidationHandler extends NullValidationHandler {\r\n constructor() {\r\n super();\r\n console.error(err);\r\n }\r\n}\n\nconst AUTH_CONFIG = new InjectionToken('AUTH_CONFIG');\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { AUTH_CONFIG, AbstractValidationHandler, AuthConfig, DateTimeProvider, DefaultHashHandler, DefaultOAuthInterceptor, HashHandler, JwksValidationHandler, LoginOptions, MemoryStorage, NullValidationHandler, OAuthErrorEvent, OAuthEvent, OAuthInfoEvent, OAuthLogger, OAuthModule, OAuthModuleConfig, OAuthNoopResourceServerErrorHandler, OAuthResourceServerConfig, OAuthResourceServerErrorHandler, OAuthService, OAuthStorage, OAuthSuccessEvent, ReceivedTokens, SystemDateTimeProvider, UrlHelperService, ValidationHandler };\n"],"sourceRoot":"webpack:///","file":"main.a60f6bf44cbf081b.js"}